;
diff --git a/scopegraphs-render-docs/doc/js/accessibility.d.ts b/scopegraphs-render-docs/doc/js/accessibility.d.ts
new file mode 100644
index 0000000..126ec0b
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/accessibility.d.ts
@@ -0,0 +1,27 @@
+/**
+ * Accessibility (a11y) functions, types, helpers
+ * @see https://www.w3.org/WAI/
+ * @see https://www.w3.org/TR/wai-aria-1.1/
+ * @see https://www.w3.org/TR/svg-aam-1.0/
+ *
+ */
+import { D3Element } from './mermaidAPI';
+/**
+ * Add role and aria-roledescription to the svg element
+ *
+ * @param svg - d3 object that contains the SVG HTML element
+ * @param diagramType - diagram name for to the aria-roledescription
+ */
+export declare function setA11yDiagramInfo(svg: D3Element, diagramType: string | null | undefined): void;
+/**
+ * Add an accessible title and/or description element to a chart.
+ * The title is usually not displayed and the description is never displayed.
+ *
+ * The following charts display their title as a visual and accessibility element: gantt
+ *
+ * @param svg - d3 node to insert the a11y title and desc info
+ * @param a11yTitle - a11y title. null and undefined are meaningful: means to skip it
+ * @param a11yDesc - a11y description. null and undefined are meaningful: means to skip it
+ * @param baseId - id used to construct the a11y title and description id
+ */
+export declare function addSVGa11yTitleDescription(svg: D3Element, a11yTitle: string | null | undefined, a11yDesc: string | null | undefined, baseId: string): void;
diff --git a/scopegraphs-render-docs/doc/js/accessibility.spec.d.ts b/scopegraphs-render-docs/doc/js/accessibility.spec.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/accessibility.spec.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/scopegraphs-render-docs/doc/js/arc-c50f0902.js b/scopegraphs-render-docs/doc/js/arc-c50f0902.js
new file mode 100644
index 0000000..e426fcb
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/arc-c50f0902.js
@@ -0,0 +1,145 @@
+import { c as constant, p as path } from "./constant-b644328d.js";
+import { O as pi, P as cos, Q as sin, R as halfPi, T as epsilon, K as tau, V as sqrt, W as min, X as abs, Y as atan2, Z as asin, _ as acos, $ as max } from "./utils-1aebe9b6.js";
+function arcInnerRadius(d) {
+ return d.innerRadius;
+}
+function arcOuterRadius(d) {
+ return d.outerRadius;
+}
+function arcStartAngle(d) {
+ return d.startAngle;
+}
+function arcEndAngle(d) {
+ return d.endAngle;
+}
+function arcPadAngle(d) {
+ return d && d.padAngle;
+}
+function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
+ var x10 = x1 - x0, y10 = y1 - y0, x32 = x3 - x2, y32 = y3 - y2, t = y32 * x10 - x32 * y10;
+ if (t * t < epsilon)
+ return;
+ t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
+ return [x0 + t * x10, y0 + t * y10];
+}
+function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
+ var x01 = x0 - x1, y01 = y0 - y1, lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x11 = x0 + ox, y11 = y0 + oy, x10 = x1 + ox, y10 = y1 + oy, x00 = (x11 + x10) / 2, y00 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r = r1 - rc, D = x11 * y10 - x10 * y11, d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x00, dy0 = cy0 - y00, dx1 = cx1 - x00, dy1 = cy1 - y00;
+ if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1)
+ cx0 = cx1, cy0 = cy1;
+ return {
+ cx: cx0,
+ cy: cy0,
+ x01: -ox,
+ y01: -oy,
+ x11: cx0 * (r1 / r - 1),
+ y11: cy0 * (r1 / r - 1)
+ };
+}
+function d3arc() {
+ var innerRadius = arcInnerRadius, outerRadius = arcOuterRadius, cornerRadius = constant(0), padRadius = null, startAngle = arcStartAngle, endAngle = arcEndAngle, padAngle = arcPadAngle, context = null;
+ function arc() {
+ var buffer, r, r0 = +innerRadius.apply(this, arguments), r1 = +outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) - halfPi, a1 = endAngle.apply(this, arguments) - halfPi, da = abs(a1 - a0), cw = a1 > a0;
+ if (!context)
+ context = buffer = path();
+ if (r1 < r0)
+ r = r1, r1 = r0, r0 = r;
+ if (!(r1 > epsilon))
+ context.moveTo(0, 0);
+ else if (da > tau - epsilon) {
+ context.moveTo(r1 * cos(a0), r1 * sin(a0));
+ context.arc(0, 0, r1, a0, a1, !cw);
+ if (r0 > epsilon) {
+ context.moveTo(r0 * cos(a1), r0 * sin(a1));
+ context.arc(0, 0, r0, a1, a0, cw);
+ }
+ } else {
+ var a01 = a0, a11 = a1, a00 = a0, a10 = a1, da0 = da, da1 = da, ap = padAngle.apply(this, arguments) / 2, rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), rc0 = rc, rc1 = rc, t0, t1;
+ if (rp > epsilon) {
+ var p0 = asin(rp / r0 * sin(ap)), p1 = asin(rp / r1 * sin(ap));
+ if ((da0 -= p0 * 2) > epsilon)
+ p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;
+ else
+ da0 = 0, a00 = a10 = (a0 + a1) / 2;
+ if ((da1 -= p1 * 2) > epsilon)
+ p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;
+ else
+ da1 = 0, a01 = a11 = (a0 + a1) / 2;
+ }
+ var x01 = r1 * cos(a01), y01 = r1 * sin(a01), x10 = r0 * cos(a10), y10 = r0 * sin(a10);
+ if (rc > epsilon) {
+ var x11 = r1 * cos(a11), y11 = r1 * sin(a11), x00 = r0 * cos(a00), y00 = r0 * sin(a00), oc;
+ if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {
+ var ax = x01 - oc[0], ay = y01 - oc[1], bx = x11 - oc[0], by = y11 - oc[1], kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
+ rc0 = min(rc, (r0 - lc) / (kc - 1));
+ rc1 = min(rc, (r1 - lc) / (kc + 1));
+ }
+ }
+ if (!(da1 > epsilon))
+ context.moveTo(x01, y01);
+ else if (rc1 > epsilon) {
+ t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
+ t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
+ context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
+ if (rc1 < rc)
+ context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
+ else {
+ context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
+ context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
+ context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
+ }
+ } else
+ context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
+ if (!(r0 > epsilon) || !(da0 > epsilon))
+ context.lineTo(x10, y10);
+ else if (rc0 > epsilon) {
+ t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
+ t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
+ context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
+ if (rc0 < rc)
+ context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
+ else {
+ context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
+ context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);
+ context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
+ }
+ } else
+ context.arc(0, 0, r0, a10, a00, cw);
+ }
+ context.closePath();
+ if (buffer)
+ return context = null, buffer + "" || null;
+ }
+ arc.centroid = function() {
+ var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;
+ return [cos(a) * r, sin(a) * r];
+ };
+ arc.innerRadius = function(_) {
+ return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant(+_), arc) : innerRadius;
+ };
+ arc.outerRadius = function(_) {
+ return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant(+_), arc) : outerRadius;
+ };
+ arc.cornerRadius = function(_) {
+ return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant(+_), arc) : cornerRadius;
+ };
+ arc.padRadius = function(_) {
+ return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant(+_), arc) : padRadius;
+ };
+ arc.startAngle = function(_) {
+ return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), arc) : startAngle;
+ };
+ arc.endAngle = function(_) {
+ return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), arc) : endAngle;
+ };
+ arc.padAngle = function(_) {
+ return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), arc) : padAngle;
+ };
+ arc.context = function(_) {
+ return arguments.length ? (context = _ == null ? null : _, arc) : context;
+ };
+ return arc;
+}
+export {
+ d3arc as d
+};
+//# sourceMappingURL=arc-c50f0902.js.map
diff --git a/scopegraphs-render-docs/doc/js/arc-f7872e1e.js b/scopegraphs-render-docs/doc/js/arc-f7872e1e.js
new file mode 100644
index 0000000..288fe32
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/arc-f7872e1e.js
@@ -0,0 +1,85 @@
+import { c as V, p as sn } from "./constant-2fe7eae5.js";
+import { O as en, P as Z, Q as O, R as rn, T as y, K as ln, V as z, W as b, X as un, Y as t, Z as an, _ as on, $ as tn } from "./utils-8ea37061.js";
+function fn(l) {
+ return l.innerRadius;
+}
+function cn(l) {
+ return l.outerRadius;
+}
+function yn(l) {
+ return l.startAngle;
+}
+function gn(l) {
+ return l.endAngle;
+}
+function mn(l) {
+ return l && l.padAngle;
+}
+function pn(l, x, D, q, h, v, W, r) {
+ var s = D - l, n = q - x, m = W - h, i = r - v, u = i * s - m * n;
+ if (!(u * u < y))
+ return u = (m * (x - v) - i * (l - h)) / u, [l + u * s, x + u * n];
+}
+function H(l, x, D, q, h, v, W) {
+ var r = l - D, s = x - q, n = (W ? v : -v) / z(r * r + s * s), m = n * s, i = -n * r, u = l + m, f = x + i, c = D + m, E = q + i, o = (u + c) / 2, I = (f + E) / 2, p = c - u, g = E - f, R = p * p + g * g, K = h - v, P = u * E - c * f, Q = (g < 0 ? -1 : 1) * z(tn(0, K * K * R - P * P)), S = (P * g - p * Q) / R, d = (-P * p - g * Q) / R, A = (P * g + p * Q) / R, T = (-P * p + g * Q) / R, e = S - o, a = d - I, X = A - o, Y = T - I;
+ return e * e + a * a > X * X + Y * Y && (S = A, d = T), {
+ cx: S,
+ cy: d,
+ x01: -m,
+ y01: -i,
+ x11: S * (h / K - 1),
+ y11: d * (h / K - 1)
+ };
+}
+function hn() {
+ var l = fn, x = cn, D = V(0), q = null, h = yn, v = gn, W = mn, r = null;
+ function s() {
+ var n, m, i = +l.apply(this, arguments), u = +x.apply(this, arguments), f = h.apply(this, arguments) - rn, c = v.apply(this, arguments) - rn, E = un(c - f), o = c > f;
+ if (r || (r = n = sn()), u < i && (m = u, u = i, i = m), !(u > y))
+ r.moveTo(0, 0);
+ else if (E > ln - y)
+ r.moveTo(u * Z(f), u * O(f)), r.arc(0, 0, u, f, c, !o), i > y && (r.moveTo(i * Z(c), i * O(c)), r.arc(0, 0, i, c, f, o));
+ else {
+ var I = f, p = c, g = f, R = c, K = E, P = E, Q = W.apply(this, arguments) / 2, S = Q > y && (q ? +q.apply(this, arguments) : z(i * i + u * u)), d = b(un(u - i) / 2, +D.apply(this, arguments)), A = d, T = d, e, a;
+ if (S > y) {
+ var X = an(S / i * O(Q)), Y = an(S / u * O(Q));
+ (K -= X * 2) > y ? (X *= o ? 1 : -1, g += X, R -= X) : (K = 0, g = R = (f + c) / 2), (P -= Y * 2) > y ? (Y *= o ? 1 : -1, I += Y, p -= Y) : (P = 0, I = p = (f + c) / 2);
+ }
+ var $ = u * Z(I), j = u * O(I), B = i * Z(R), C = i * O(R);
+ if (d > y) {
+ var F = u * Z(p), G = u * O(p), J = i * Z(g), L = i * O(g), w;
+ if (E < en && (w = pn($, j, J, L, F, G, B, C))) {
+ var M = $ - w[0], N = j - w[1], U = F - w[0], k = G - w[1], _ = 1 / O(on((M * U + N * k) / (z(M * M + N * N) * z(U * U + k * k))) / 2), nn = z(w[0] * w[0] + w[1] * w[1]);
+ A = b(d, (i - nn) / (_ - 1)), T = b(d, (u - nn) / (_ + 1));
+ }
+ }
+ P > y ? T > y ? (e = H(J, L, $, j, u, T, o), a = H(F, G, B, C, u, T, o), r.moveTo(e.cx + e.x01, e.cy + e.y01), T < d ? r.arc(e.cx, e.cy, T, t(e.y01, e.x01), t(a.y01, a.x01), !o) : (r.arc(e.cx, e.cy, T, t(e.y01, e.x01), t(e.y11, e.x11), !o), r.arc(0, 0, u, t(e.cy + e.y11, e.cx + e.x11), t(a.cy + a.y11, a.cx + a.x11), !o), r.arc(a.cx, a.cy, T, t(a.y11, a.x11), t(a.y01, a.x01), !o))) : (r.moveTo($, j), r.arc(0, 0, u, I, p, !o)) : r.moveTo($, j), !(i > y) || !(K > y) ? r.lineTo(B, C) : A > y ? (e = H(B, C, F, G, i, -A, o), a = H($, j, J, L, i, -A, o), r.lineTo(e.cx + e.x01, e.cy + e.y01), A < d ? r.arc(e.cx, e.cy, A, t(e.y01, e.x01), t(a.y01, a.x01), !o) : (r.arc(e.cx, e.cy, A, t(e.y01, e.x01), t(e.y11, e.x11), !o), r.arc(0, 0, i, t(e.cy + e.y11, e.cx + e.x11), t(a.cy + a.y11, a.cx + a.x11), o), r.arc(a.cx, a.cy, A, t(a.y11, a.x11), t(a.y01, a.x01), !o))) : r.arc(0, 0, i, R, g, o);
+ }
+ if (r.closePath(), n)
+ return r = null, n + "" || null;
+ }
+ return s.centroid = function() {
+ var n = (+l.apply(this, arguments) + +x.apply(this, arguments)) / 2, m = (+h.apply(this, arguments) + +v.apply(this, arguments)) / 2 - en / 2;
+ return [Z(m) * n, O(m) * n];
+ }, s.innerRadius = function(n) {
+ return arguments.length ? (l = typeof n == "function" ? n : V(+n), s) : l;
+ }, s.outerRadius = function(n) {
+ return arguments.length ? (x = typeof n == "function" ? n : V(+n), s) : x;
+ }, s.cornerRadius = function(n) {
+ return arguments.length ? (D = typeof n == "function" ? n : V(+n), s) : D;
+ }, s.padRadius = function(n) {
+ return arguments.length ? (q = n == null ? null : typeof n == "function" ? n : V(+n), s) : q;
+ }, s.startAngle = function(n) {
+ return arguments.length ? (h = typeof n == "function" ? n : V(+n), s) : h;
+ }, s.endAngle = function(n) {
+ return arguments.length ? (v = typeof n == "function" ? n : V(+n), s) : v;
+ }, s.padAngle = function(n) {
+ return arguments.length ? (W = typeof n == "function" ? n : V(+n), s) : W;
+ }, s.context = function(n) {
+ return arguments.length ? (r = n ?? null, s) : r;
+ }, s;
+}
+export {
+ hn as d
+};
+//# sourceMappingURL=arc-f7872e1e.js.map
diff --git a/scopegraphs-render-docs/doc/js/array-2ff2c7a6.js b/scopegraphs-render-docs/doc/js/array-2ff2c7a6.js
new file mode 100644
index 0000000..d9d798a
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/array-2ff2c7a6.js
@@ -0,0 +1,7 @@
+function t(r) {
+ return typeof r == "object" && "length" in r ? r : Array.from(r);
+}
+export {
+ t as a
+};
+//# sourceMappingURL=array-2ff2c7a6.js.map
diff --git a/scopegraphs-render-docs/doc/js/array-b7dcf730.js b/scopegraphs-render-docs/doc/js/array-b7dcf730.js
new file mode 100644
index 0000000..a37a9a7
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/array-b7dcf730.js
@@ -0,0 +1,7 @@
+function array(x) {
+ return typeof x === "object" && "length" in x ? x : Array.from(x);
+}
+export {
+ array as a
+};
+//# sourceMappingURL=array-b7dcf730.js.map
diff --git a/scopegraphs-render-docs/doc/js/assignWithDepth.d.ts b/scopegraphs-render-docs/doc/js/assignWithDepth.d.ts
new file mode 100644
index 0000000..48afd39
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/assignWithDepth.d.ts
@@ -0,0 +1,31 @@
+export default assignWithDepth;
+/**
+ * @function assignWithDepth Extends the functionality of {@link ObjectConstructor.assign} with the
+ * ability to merge arbitrary-depth objects For each key in src with path `k` (recursively)
+ * performs an Object.assign(dst[`k`], src[`k`]) with a slight change from the typical handling of
+ * undefined for dst[`k`]: instead of raising an error, dst[`k`] is auto-initialized to {} and
+ * effectively merged with src[`k`] Additionally, dissimilar types will not clobber unless the
+ * config.clobber parameter === true. Example:
+ *
+ * ```js
+ * let config_0 = { foo: { bar: 'bar' }, bar: 'foo' };
+ * let config_1 = { foo: 'foo', bar: 'bar' };
+ * let result = assignWithDepth(config_0, config_1);
+ * console.log(result);
+ * //-> result: { foo: { bar: 'bar' }, bar: 'bar' }
+ * ```
+ *
+ * Traditional Object.assign would have clobbered foo in config_0 with foo in config_1. If src is a
+ * destructured array of objects and dst is not an array, assignWithDepth will apply each element
+ * of src to dst in order.
+ * @param {any} dst - The destination of the merge
+ * @param {any} src - The source object(s) to merge into destination
+ * @param {{ depth: number; clobber: boolean }} [config={ depth: 2, clobber: false }] - Depth: depth
+ * to traverse within src and dst for merging - clobber: should dissimilar types clobber (default:
+ * { depth: 2, clobber: false }). Default is `{ depth: 2, clobber: false }`
+ * @returns {any}
+ */
+declare function assignWithDepth(dst: any, src: any, config?: {
+ depth: number;
+ clobber: boolean;
+} | undefined): any;
diff --git a/scopegraphs-render-docs/doc/js/c4Diagram-44c43e89.js b/scopegraphs-render-docs/doc/js/c4Diagram-44c43e89.js
new file mode 100644
index 0000000..af11b63
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/c4Diagram-44c43e89.js
@@ -0,0 +1,2535 @@
+import { m as mermaidAPI } from "./mermaidAPI-3ae0f2f0.js";
+import { o as setAccTitle, p as getAccTitle, q as getAccDescription, v as setAccDescription, g as getConfig, b as sanitizeText, e as common, d as assignWithDepth, l as log } from "./commonDb-573409be.js";
+import { select } from "d3";
+import { sanitizeUrl } from "@braintree/sanitize-url";
+import { j as calculateTextWidth, k as configureSvgSize, w as wrapLabel, m as calculateTextHeight } from "./utils-d622194a.js";
+import "stylis";
+import "dompurify";
+import "lodash-es/isEmpty.js";
+import "dayjs";
+import "khroma";
+import "lodash-es/memoize.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 6], $V1 = [1, 7], $V2 = [1, 8], $V3 = [1, 9], $V4 = [1, 16], $V5 = [1, 11], $V6 = [1, 12], $V7 = [1, 13], $V8 = [1, 14], $V9 = [1, 15], $Va = [1, 27], $Vb = [1, 33], $Vc = [1, 34], $Vd = [1, 35], $Ve = [1, 36], $Vf = [1, 37], $Vg = [1, 72], $Vh = [1, 73], $Vi = [1, 74], $Vj = [1, 75], $Vk = [1, 76], $Vl = [1, 77], $Vm = [1, 78], $Vn = [1, 38], $Vo = [1, 39], $Vp = [1, 40], $Vq = [1, 41], $Vr = [1, 42], $Vs = [1, 43], $Vt = [1, 44], $Vu = [1, 45], $Vv = [1, 46], $Vw = [1, 47], $Vx = [1, 48], $Vy = [1, 49], $Vz = [1, 50], $VA = [1, 51], $VB = [1, 52], $VC = [1, 53], $VD = [1, 54], $VE = [1, 55], $VF = [1, 56], $VG = [1, 57], $VH = [1, 59], $VI = [1, 60], $VJ = [1, 61], $VK = [1, 62], $VL = [1, 63], $VM = [1, 64], $VN = [1, 65], $VO = [1, 66], $VP = [1, 67], $VQ = [1, 68], $VR = [1, 69], $VS = [24, 52], $VT = [24, 44, 46, 47, 48, 49, 50, 51, 52, 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], $VU = [15, 24, 44, 46, 47, 48, 49, 50, 51, 52, 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], $VV = [1, 94], $VW = [1, 95], $VX = [1, 96], $VY = [1, 97], $VZ = [15, 24, 52], $V_ = [7, 8, 9, 10, 18, 22, 25, 26, 27, 28], $V$ = [15, 24, 43, 52], $V01 = [15, 24, 43, 52, 86, 87, 89, 90], $V11 = [15, 43], $V21 = [44, 46, 47, 48, 49, 50, 51, 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];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "direction": 5, "directive": 6, "direction_tb": 7, "direction_bt": 8, "direction_rl": 9, "direction_lr": 10, "graphConfig": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, "NEWLINE": 15, ":": 16, "argDirective": 17, "open_directive": 18, "type_directive": 19, "arg_directive": 20, "close_directive": 21, "C4_CONTEXT": 22, "statements": 23, "EOF": 24, "C4_CONTAINER": 25, "C4_COMPONENT": 26, "C4_DYNAMIC": 27, "C4_DEPLOYMENT": 28, "otherStatements": 29, "diagramStatements": 30, "otherStatement": 31, "title": 32, "accDescription": 33, "acc_title": 34, "acc_title_value": 35, "acc_descr": 36, "acc_descr_value": 37, "acc_descr_multiline_value": 38, "boundaryStatement": 39, "boundaryStartStatement": 40, "boundaryStopStatement": 41, "boundaryStart": 42, "LBRACE": 43, "ENTERPRISE_BOUNDARY": 44, "attributes": 45, "SYSTEM_BOUNDARY": 46, "BOUNDARY": 47, "CONTAINER_BOUNDARY": 48, "NODE": 49, "NODE_L": 50, "NODE_R": 51, "RBRACE": 52, "diagramStatement": 53, "PERSON": 54, "PERSON_EXT": 55, "SYSTEM": 56, "SYSTEM_DB": 57, "SYSTEM_QUEUE": 58, "SYSTEM_EXT": 59, "SYSTEM_EXT_DB": 60, "SYSTEM_EXT_QUEUE": 61, "CONTAINER": 62, "CONTAINER_DB": 63, "CONTAINER_QUEUE": 64, "CONTAINER_EXT": 65, "CONTAINER_EXT_DB": 66, "CONTAINER_EXT_QUEUE": 67, "COMPONENT": 68, "COMPONENT_DB": 69, "COMPONENT_QUEUE": 70, "COMPONENT_EXT": 71, "COMPONENT_EXT_DB": 72, "COMPONENT_EXT_QUEUE": 73, "REL": 74, "BIREL": 75, "REL_U": 76, "REL_D": 77, "REL_L": 78, "REL_R": 79, "REL_B": 80, "REL_INDEX": 81, "UPDATE_EL_STYLE": 82, "UPDATE_REL_STYLE": 83, "UPDATE_LAYOUT_CONFIG": 84, "attribute": 85, "STR": 86, "STR_KEY": 87, "STR_VALUE": 88, "ATTRIBUTE": 89, "ATTRIBUTE_EMPTY": 90, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 7: "direction_tb", 8: "direction_bt", 9: "direction_rl", 10: "direction_lr", 15: "NEWLINE", 16: ":", 18: "open_directive", 19: "type_directive", 20: "arg_directive", 21: "close_directive", 22: "C4_CONTEXT", 24: "EOF", 25: "C4_CONTAINER", 26: "C4_COMPONENT", 27: "C4_DYNAMIC", 28: "C4_DEPLOYMENT", 32: "title", 33: "accDescription", 34: "acc_title", 35: "acc_title_value", 36: "acc_descr", 37: "acc_descr_value", 38: "acc_descr_multiline_value", 43: "LBRACE", 44: "ENTERPRISE_BOUNDARY", 46: "SYSTEM_BOUNDARY", 47: "BOUNDARY", 48: "CONTAINER_BOUNDARY", 49: "NODE", 50: "NODE_L", 51: "NODE_R", 52: "RBRACE", 54: "PERSON", 55: "PERSON_EXT", 56: "SYSTEM", 57: "SYSTEM_DB", 58: "SYSTEM_QUEUE", 59: "SYSTEM_EXT", 60: "SYSTEM_EXT_DB", 61: "SYSTEM_EXT_QUEUE", 62: "CONTAINER", 63: "CONTAINER_DB", 64: "CONTAINER_QUEUE", 65: "CONTAINER_EXT", 66: "CONTAINER_EXT_DB", 67: "CONTAINER_EXT_QUEUE", 68: "COMPONENT", 69: "COMPONENT_DB", 70: "COMPONENT_QUEUE", 71: "COMPONENT_EXT", 72: "COMPONENT_EXT_DB", 73: "COMPONENT_EXT_QUEUE", 74: "REL", 75: "BIREL", 76: "REL_U", 77: "REL_D", 78: "REL_L", 79: "REL_R", 80: "REL_B", 81: "REL_INDEX", 82: "UPDATE_EL_STYLE", 83: "UPDATE_REL_STYLE", 84: "UPDATE_LAYOUT_CONFIG", 86: "STR", 87: "STR_KEY", 88: "STR_VALUE", 89: "ATTRIBUTE", 90: "ATTRIBUTE_EMPTY" },
+ productions_: [0, [3, 1], [3, 1], [3, 2], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [6, 4], [6, 6], [12, 1], [13, 1], [17, 1], [14, 1], [11, 4], [11, 4], [11, 4], [11, 4], [11, 4], [23, 1], [23, 1], [23, 2], [29, 1], [29, 2], [29, 3], [31, 1], [31, 1], [31, 2], [31, 2], [31, 1], [39, 3], [40, 3], [40, 3], [40, 4], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [41, 1], [30, 1], [30, 2], [30, 3], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 1], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [45, 1], [45, 2], [85, 1], [85, 2], [85, 1], [85, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 4:
+ yy.setDirection("TB");
+ break;
+ case 5:
+ yy.setDirection("BT");
+ break;
+ case 6:
+ yy.setDirection("RL");
+ break;
+ case 7:
+ yy.setDirection("LR");
+ break;
+ case 11:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 12:
+ break;
+ case 13:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 14:
+ yy.parseDirective("}%%", "close_directive", "c4Context");
+ break;
+ case 15:
+ case 16:
+ case 17:
+ case 18:
+ case 19:
+ yy.setC4Type($$[$0 - 3]);
+ break;
+ case 26:
+ yy.setTitle($$[$0].substring(6));
+ this.$ = $$[$0].substring(6);
+ break;
+ case 27:
+ yy.setAccDescription($$[$0].substring(15));
+ this.$ = $$[$0].substring(15);
+ break;
+ case 28:
+ this.$ = $$[$0].trim();
+ yy.setTitle(this.$);
+ break;
+ case 29:
+ case 30:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 35:
+ case 36:
+ $$[$0].splice(2, 0, "ENTERPRISE");
+ yy.addPersonOrSystemBoundary(...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 37:
+ yy.addPersonOrSystemBoundary(...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 38:
+ $$[$0].splice(2, 0, "CONTAINER");
+ yy.addContainerBoundary(...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 39:
+ yy.addDeploymentNode("node", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 40:
+ yy.addDeploymentNode("nodeL", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 41:
+ yy.addDeploymentNode("nodeR", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 42:
+ yy.popBoundaryParseStack();
+ break;
+ case 46:
+ yy.addPersonOrSystem("person", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 47:
+ yy.addPersonOrSystem("external_person", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 48:
+ yy.addPersonOrSystem("system", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 49:
+ yy.addPersonOrSystem("system_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 50:
+ yy.addPersonOrSystem("system_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 51:
+ yy.addPersonOrSystem("external_system", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 52:
+ yy.addPersonOrSystem("external_system_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 53:
+ yy.addPersonOrSystem("external_system_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 54:
+ yy.addContainer("container", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 55:
+ yy.addContainer("container_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 56:
+ yy.addContainer("container_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 57:
+ yy.addContainer("external_container", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 58:
+ yy.addContainer("external_container_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 59:
+ yy.addContainer("external_container_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 60:
+ yy.addComponent("component", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 61:
+ yy.addComponent("component_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 62:
+ yy.addComponent("component_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 63:
+ yy.addComponent("external_component", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 64:
+ yy.addComponent("external_component_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 65:
+ yy.addComponent("external_component_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 67:
+ yy.addRel("rel", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 68:
+ yy.addRel("birel", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 69:
+ yy.addRel("rel_u", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 70:
+ yy.addRel("rel_d", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 71:
+ yy.addRel("rel_l", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 72:
+ yy.addRel("rel_r", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 73:
+ yy.addRel("rel_b", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 74:
+ $$[$0].splice(0, 1);
+ yy.addRel("rel", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 75:
+ yy.updateElStyle("update_el_style", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 76:
+ yy.updateRelStyle("update_rel_style", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 77:
+ yy.updateLayoutConfig("update_layout_config", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 78:
+ this.$ = [$$[$0]];
+ break;
+ case 79:
+ $$[$0].unshift($$[$0 - 1]);
+ this.$ = $$[$0];
+ break;
+ case 80:
+ case 82:
+ this.$ = $$[$0].trim();
+ break;
+ case 81:
+ let kv = {};
+ kv[$$[$0 - 1].trim()] = $$[$0].trim();
+ this.$ = kv;
+ break;
+ case 83:
+ this.$ = "";
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: $V0, 8: $V1, 9: $V2, 10: $V3, 11: 5, 12: 10, 18: $V4, 22: $V5, 25: $V6, 26: $V7, 27: $V8, 28: $V9 }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 3: 17, 4: 2, 5: 3, 6: 4, 7: $V0, 8: $V1, 9: $V2, 10: $V3, 11: 5, 12: 10, 18: $V4, 22: $V5, 25: $V6, 26: $V7, 27: $V8, 28: $V9 }, { 1: [2, 8] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 1: [2, 7] }, { 13: 18, 19: [1, 19] }, { 15: [1, 20] }, { 15: [1, 21] }, { 15: [1, 22] }, { 15: [1, 23] }, { 15: [1, 24] }, { 19: [2, 11] }, { 1: [2, 3] }, { 14: 25, 16: [1, 26], 21: $Va }, o([16, 21], [2, 12]), { 23: 28, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 79, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 80, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 81, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 82, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 15: [1, 83] }, { 17: 84, 20: [1, 85] }, { 15: [2, 14] }, { 24: [1, 86] }, o($VS, [2, 20], { 53: 32, 39: 58, 40: 70, 42: 71, 30: 87, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }), o($VS, [2, 21]), o($VT, [2, 23], { 15: [1, 88] }), o($VS, [2, 43], { 15: [1, 89] }), o($VU, [2, 26]), o($VU, [2, 27]), { 35: [1, 90] }, { 37: [1, 91] }, o($VU, [2, 30]), { 45: 92, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 98, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 99, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 100, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 101, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 102, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 103, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 104, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 105, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 106, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 107, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 108, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 109, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 110, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 111, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 112, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 113, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 114, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 115, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 116, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, o($VZ, [2, 66]), { 45: 117, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 118, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 119, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 120, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 121, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 122, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 123, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 124, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 125, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 126, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 127, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 30: 128, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 15: [1, 130], 43: [1, 129] }, { 45: 131, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 132, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 133, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 134, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 135, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 136, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 137, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 24: [1, 138] }, { 24: [1, 139] }, { 24: [1, 140] }, { 24: [1, 141] }, o($V_, [2, 9]), { 14: 142, 21: $Va }, { 21: [2, 13] }, { 1: [2, 15] }, o($VS, [2, 22]), o($VT, [2, 24], { 31: 31, 29: 143, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf }), o($VS, [2, 44], { 29: 29, 30: 30, 31: 31, 53: 32, 39: 58, 40: 70, 42: 71, 23: 144, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }), o($VU, [2, 28]), o($VU, [2, 29]), o($VZ, [2, 46]), o($V$, [2, 78], { 85: 93, 45: 145, 86: $VV, 87: $VW, 89: $VX, 90: $VY }), o($V01, [2, 80]), { 88: [1, 146] }, o($V01, [2, 82]), o($V01, [2, 83]), o($VZ, [2, 47]), o($VZ, [2, 48]), o($VZ, [2, 49]), o($VZ, [2, 50]), o($VZ, [2, 51]), o($VZ, [2, 52]), o($VZ, [2, 53]), o($VZ, [2, 54]), o($VZ, [2, 55]), o($VZ, [2, 56]), o($VZ, [2, 57]), o($VZ, [2, 58]), o($VZ, [2, 59]), o($VZ, [2, 60]), o($VZ, [2, 61]), o($VZ, [2, 62]), o($VZ, [2, 63]), o($VZ, [2, 64]), o($VZ, [2, 65]), o($VZ, [2, 67]), o($VZ, [2, 68]), o($VZ, [2, 69]), o($VZ, [2, 70]), o($VZ, [2, 71]), o($VZ, [2, 72]), o($VZ, [2, 73]), o($VZ, [2, 74]), o($VZ, [2, 75]), o($VZ, [2, 76]), o($VZ, [2, 77]), { 41: 147, 52: [1, 148] }, { 15: [1, 149] }, { 43: [1, 150] }, o($V11, [2, 35]), o($V11, [2, 36]), o($V11, [2, 37]), o($V11, [2, 38]), o($V11, [2, 39]), o($V11, [2, 40]), o($V11, [2, 41]), { 1: [2, 16] }, { 1: [2, 17] }, { 1: [2, 18] }, { 1: [2, 19] }, { 15: [1, 151] }, o($VT, [2, 25]), o($VS, [2, 45]), o($V$, [2, 79]), o($V01, [2, 81]), o($VZ, [2, 31]), o($VZ, [2, 42]), o($V21, [2, 32]), o($V21, [2, 33], { 15: [1, 152] }), o($V_, [2, 10]), o($V21, [2, 34])],
+ defaultActions: { 2: [2, 1], 3: [2, 2], 5: [2, 8], 6: [2, 4], 7: [2, 5], 8: [2, 6], 9: [2, 7], 16: [2, 11], 17: [2, 3], 27: [2, 14], 85: [2, 13], 86: [2, 15], 138: [2, 16], 139: [2, 17], 140: [2, 18], 141: [2, 19] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c2 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c2 + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: {},
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 18;
+ case 1:
+ return 7;
+ case 2:
+ return 8;
+ case 3:
+ return 9;
+ case 4:
+ return 10;
+ case 5:
+ this.begin("type_directive");
+ return 19;
+ case 6:
+ this.popState();
+ this.begin("arg_directive");
+ return 16;
+ case 7:
+ this.popState();
+ this.popState();
+ return 21;
+ case 8:
+ return 20;
+ case 9:
+ return 32;
+ case 10:
+ return 33;
+ case 11:
+ this.begin("acc_title");
+ return 34;
+ case 12:
+ this.popState();
+ return "acc_title_value";
+ case 13:
+ this.begin("acc_descr");
+ return 36;
+ case 14:
+ this.popState();
+ return "acc_descr_value";
+ case 15:
+ this.begin("acc_descr_multiline");
+ break;
+ case 16:
+ this.popState();
+ break;
+ case 17:
+ return "acc_descr_multiline_value";
+ case 18:
+ break;
+ case 19:
+ c;
+ break;
+ case 20:
+ return 15;
+ case 21:
+ break;
+ case 22:
+ return 22;
+ case 23:
+ return 25;
+ case 24:
+ return 26;
+ case 25:
+ return 27;
+ case 26:
+ return 28;
+ case 27:
+ this.begin("person_ext");
+ return 55;
+ case 28:
+ this.begin("person");
+ return 54;
+ case 29:
+ this.begin("system_ext_queue");
+ return 61;
+ case 30:
+ this.begin("system_ext_db");
+ return 60;
+ case 31:
+ this.begin("system_ext");
+ return 59;
+ case 32:
+ this.begin("system_queue");
+ return 58;
+ case 33:
+ this.begin("system_db");
+ return 57;
+ case 34:
+ this.begin("system");
+ return 56;
+ case 35:
+ this.begin("boundary");
+ return 47;
+ case 36:
+ this.begin("enterprise_boundary");
+ return 44;
+ case 37:
+ this.begin("system_boundary");
+ return 46;
+ case 38:
+ this.begin("container_ext_queue");
+ return 67;
+ case 39:
+ this.begin("container_ext_db");
+ return 66;
+ case 40:
+ this.begin("container_ext");
+ return 65;
+ case 41:
+ this.begin("container_queue");
+ return 64;
+ case 42:
+ this.begin("container_db");
+ return 63;
+ case 43:
+ this.begin("container");
+ return 62;
+ case 44:
+ this.begin("container_boundary");
+ return 48;
+ case 45:
+ this.begin("component_ext_queue");
+ return 73;
+ case 46:
+ this.begin("component_ext_db");
+ return 72;
+ case 47:
+ this.begin("component_ext");
+ return 71;
+ case 48:
+ this.begin("component_queue");
+ return 70;
+ case 49:
+ this.begin("component_db");
+ return 69;
+ case 50:
+ this.begin("component");
+ return 68;
+ case 51:
+ this.begin("node");
+ return 49;
+ case 52:
+ this.begin("node");
+ return 49;
+ case 53:
+ this.begin("node_l");
+ return 50;
+ case 54:
+ this.begin("node_r");
+ return 51;
+ case 55:
+ this.begin("rel");
+ return 74;
+ case 56:
+ this.begin("birel");
+ return 75;
+ case 57:
+ this.begin("rel_u");
+ return 76;
+ case 58:
+ this.begin("rel_u");
+ return 76;
+ case 59:
+ this.begin("rel_d");
+ return 77;
+ case 60:
+ this.begin("rel_d");
+ return 77;
+ case 61:
+ this.begin("rel_l");
+ return 78;
+ case 62:
+ this.begin("rel_l");
+ return 78;
+ case 63:
+ this.begin("rel_r");
+ return 79;
+ case 64:
+ this.begin("rel_r");
+ return 79;
+ case 65:
+ this.begin("rel_b");
+ return 80;
+ case 66:
+ this.begin("rel_index");
+ return 81;
+ case 67:
+ this.begin("update_el_style");
+ return 82;
+ case 68:
+ this.begin("update_rel_style");
+ return 83;
+ case 69:
+ this.begin("update_layout_config");
+ return 84;
+ case 70:
+ return "EOF_IN_STRUCT";
+ case 71:
+ this.begin("attribute");
+ return "ATTRIBUTE_EMPTY";
+ case 72:
+ this.begin("attribute");
+ break;
+ case 73:
+ this.popState();
+ this.popState();
+ break;
+ case 74:
+ return 90;
+ case 75:
+ break;
+ case 76:
+ return 90;
+ case 77:
+ this.begin("string");
+ break;
+ case 78:
+ this.popState();
+ break;
+ case 79:
+ return "STR";
+ case 80:
+ this.begin("string_kv");
+ break;
+ case 81:
+ this.begin("string_kv_key");
+ return "STR_KEY";
+ case 82:
+ this.popState();
+ this.begin("string_kv_value");
+ break;
+ case 83:
+ return "STR_VALUE";
+ case 84:
+ this.popState();
+ this.popState();
+ break;
+ case 85:
+ return "STR";
+ case 86:
+ return "LBRACE";
+ case 87:
+ return "RBRACE";
+ case 88:
+ return "SPACE";
+ case 89:
+ return "EOL";
+ case 90:
+ return 24;
+ }
+ },
+ rules: [/^(?:%%\{)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:title\s[^#\n;]+)/, /^(?:accDescription\s[^#\n;]+)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:C4Context\b)/, /^(?:C4Container\b)/, /^(?:C4Component\b)/, /^(?:C4Dynamic\b)/, /^(?:C4Deployment\b)/, /^(?:Person_Ext\b)/, /^(?:Person\b)/, /^(?:SystemQueue_Ext\b)/, /^(?:SystemDb_Ext\b)/, /^(?:System_Ext\b)/, /^(?:SystemQueue\b)/, /^(?:SystemDb\b)/, /^(?:System\b)/, /^(?:Boundary\b)/, /^(?:Enterprise_Boundary\b)/, /^(?:System_Boundary\b)/, /^(?:ContainerQueue_Ext\b)/, /^(?:ContainerDb_Ext\b)/, /^(?:Container_Ext\b)/, /^(?:ContainerQueue\b)/, /^(?:ContainerDb\b)/, /^(?:Container\b)/, /^(?:Container_Boundary\b)/, /^(?:ComponentQueue_Ext\b)/, /^(?:ComponentDb_Ext\b)/, /^(?:Component_Ext\b)/, /^(?:ComponentQueue\b)/, /^(?:ComponentDb\b)/, /^(?:Component\b)/, /^(?:Deployment_Node\b)/, /^(?:Node\b)/, /^(?:Node_L\b)/, /^(?:Node_R\b)/, /^(?:Rel\b)/, /^(?:BiRel\b)/, /^(?:Rel_Up\b)/, /^(?:Rel_U\b)/, /^(?:Rel_Down\b)/, /^(?:Rel_D\b)/, /^(?:Rel_Left\b)/, /^(?:Rel_L\b)/, /^(?:Rel_Right\b)/, /^(?:Rel_R\b)/, /^(?:Rel_Back\b)/, /^(?:RelIndex\b)/, /^(?:UpdateElementStyle\b)/, /^(?:UpdateRelStyle\b)/, /^(?:UpdateLayoutConfig\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*["]["])/, /^(?:[ ]*["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[ ]*[\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:[^,]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[\s]+)/, /^(?:[\n\r]+)/, /^(?:$)/],
+ conditions: { "acc_descr_multiline": { "rules": [16, 17], "inclusive": false }, "acc_descr": { "rules": [14], "inclusive": false }, "acc_title": { "rules": [12], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [7, 8], "inclusive": false }, "type_directive": { "rules": [6, 7], "inclusive": false }, "open_directive": { "rules": [5], "inclusive": false }, "string_kv_value": { "rules": [83, 84], "inclusive": false }, "string_kv_key": { "rules": [82], "inclusive": false }, "string_kv": { "rules": [81], "inclusive": false }, "string": { "rules": [78, 79], "inclusive": false }, "attribute": { "rules": [73, 74, 75, 76, 77, 80, 85], "inclusive": false }, "update_layout_config": { "rules": [70, 71, 72, 73], "inclusive": false }, "update_rel_style": { "rules": [70, 71, 72, 73], "inclusive": false }, "update_el_style": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_b": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_r": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_l": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_d": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_u": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_bi": { "rules": [], "inclusive": false }, "rel": { "rules": [70, 71, 72, 73], "inclusive": false }, "node_r": { "rules": [70, 71, 72, 73], "inclusive": false }, "node_l": { "rules": [70, 71, 72, 73], "inclusive": false }, "node": { "rules": [70, 71, 72, 73], "inclusive": false }, "index": { "rules": [], "inclusive": false }, "rel_index": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_ext_queue": { "rules": [], "inclusive": false }, "component_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "component": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_ext_queue": { "rules": [], "inclusive": false }, "container_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "container": { "rules": [70, 71, 72, 73], "inclusive": false }, "birel": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "enterprise_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "system": { "rules": [70, 71, 72, 73], "inclusive": false }, "person_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "person": { "rules": [70, 71, 72, 73], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 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, 86, 87, 88, 89, 90], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const c4Parser = parser;
+let c4ShapeArray = [];
+let boundaryParseStack = [""];
+let currentBoundaryParse = "global";
+let parentBoundaryParse = "";
+let boundarys = [
+ {
+ alias: "global",
+ label: { text: "global" },
+ type: { text: "global" },
+ tags: null,
+ link: null,
+ parentBoundary: ""
+ }
+];
+let rels = [];
+let title = "";
+let wrapEnabled = false;
+let c4ShapeInRow$1 = 4;
+let c4BoundaryInRow$1 = 2;
+var c4Type;
+const getC4Type = function() {
+ return c4Type;
+};
+const setC4Type = function(c4TypeParam) {
+ let sanitizedText = sanitizeText(c4TypeParam, getConfig());
+ c4Type = sanitizedText;
+};
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const addRel = function(type, from, to, label, techn, descr, sprite, tags, link) {
+ if (type === void 0 || type === null || from === void 0 || from === null || to === void 0 || to === null || label === void 0 || label === null) {
+ return;
+ }
+ let rel = {};
+ const old = rels.find((rel2) => rel2.from === from && rel2.to === to);
+ if (old) {
+ rel = old;
+ } else {
+ rels.push(rel);
+ }
+ rel.type = type;
+ rel.from = from;
+ rel.to = to;
+ rel.label = { text: label };
+ if (techn === void 0 || techn === null) {
+ rel.techn = { text: "" };
+ } else {
+ if (typeof techn === "object") {
+ let [key, value] = Object.entries(techn)[0];
+ rel[key] = { text: value };
+ } else {
+ rel.techn = { text: techn };
+ }
+ }
+ if (descr === void 0 || descr === null) {
+ rel.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value] = Object.entries(descr)[0];
+ rel[key] = { text: value };
+ } else {
+ rel.descr = { text: descr };
+ }
+ }
+ if (typeof sprite === "object") {
+ let [key, value] = Object.entries(sprite)[0];
+ rel[key] = value;
+ } else {
+ rel.sprite = sprite;
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ rel[key] = value;
+ } else {
+ rel.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ rel[key] = value;
+ } else {
+ rel.link = link;
+ }
+ rel.wrap = autoWrap();
+};
+const addPersonOrSystem = function(typeC4Shape, alias, label, descr, sprite, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let personOrSystem = {};
+ const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias);
+ if (old && alias === old.alias) {
+ personOrSystem = old;
+ } else {
+ personOrSystem.alias = alias;
+ c4ShapeArray.push(personOrSystem);
+ }
+ if (label === void 0 || label === null) {
+ personOrSystem.label = { text: "" };
+ } else {
+ personOrSystem.label = { text: label };
+ }
+ if (descr === void 0 || descr === null) {
+ personOrSystem.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value] = Object.entries(descr)[0];
+ personOrSystem[key] = { text: value };
+ } else {
+ personOrSystem.descr = { text: descr };
+ }
+ }
+ if (typeof sprite === "object") {
+ let [key, value] = Object.entries(sprite)[0];
+ personOrSystem[key] = value;
+ } else {
+ personOrSystem.sprite = sprite;
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ personOrSystem[key] = value;
+ } else {
+ personOrSystem.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ personOrSystem[key] = value;
+ } else {
+ personOrSystem.link = link;
+ }
+ personOrSystem.typeC4Shape = { text: typeC4Shape };
+ personOrSystem.parentBoundary = currentBoundaryParse;
+ personOrSystem.wrap = autoWrap();
+};
+const addContainer = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let container = {};
+ const old = c4ShapeArray.find((container2) => container2.alias === alias);
+ if (old && alias === old.alias) {
+ container = old;
+ } else {
+ container.alias = alias;
+ c4ShapeArray.push(container);
+ }
+ if (label === void 0 || label === null) {
+ container.label = { text: "" };
+ } else {
+ container.label = { text: label };
+ }
+ if (techn === void 0 || techn === null) {
+ container.techn = { text: "" };
+ } else {
+ if (typeof techn === "object") {
+ let [key, value] = Object.entries(techn)[0];
+ container[key] = { text: value };
+ } else {
+ container.techn = { text: techn };
+ }
+ }
+ if (descr === void 0 || descr === null) {
+ container.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value] = Object.entries(descr)[0];
+ container[key] = { text: value };
+ } else {
+ container.descr = { text: descr };
+ }
+ }
+ if (typeof sprite === "object") {
+ let [key, value] = Object.entries(sprite)[0];
+ container[key] = value;
+ } else {
+ container.sprite = sprite;
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ container[key] = value;
+ } else {
+ container.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ container[key] = value;
+ } else {
+ container.link = link;
+ }
+ container.wrap = autoWrap();
+ container.typeC4Shape = { text: typeC4Shape };
+ container.parentBoundary = currentBoundaryParse;
+};
+const addComponent = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let component = {};
+ const old = c4ShapeArray.find((component2) => component2.alias === alias);
+ if (old && alias === old.alias) {
+ component = old;
+ } else {
+ component.alias = alias;
+ c4ShapeArray.push(component);
+ }
+ if (label === void 0 || label === null) {
+ component.label = { text: "" };
+ } else {
+ component.label = { text: label };
+ }
+ if (techn === void 0 || techn === null) {
+ component.techn = { text: "" };
+ } else {
+ if (typeof techn === "object") {
+ let [key, value] = Object.entries(techn)[0];
+ component[key] = { text: value };
+ } else {
+ component.techn = { text: techn };
+ }
+ }
+ if (descr === void 0 || descr === null) {
+ component.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value] = Object.entries(descr)[0];
+ component[key] = { text: value };
+ } else {
+ component.descr = { text: descr };
+ }
+ }
+ if (typeof sprite === "object") {
+ let [key, value] = Object.entries(sprite)[0];
+ component[key] = value;
+ } else {
+ component.sprite = sprite;
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ component[key] = value;
+ } else {
+ component.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ component[key] = value;
+ } else {
+ component.link = link;
+ }
+ component.wrap = autoWrap();
+ component.typeC4Shape = { text: typeC4Shape };
+ component.parentBoundary = currentBoundaryParse;
+};
+const addPersonOrSystemBoundary = function(alias, label, type, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let boundary = {};
+ const old = boundarys.find((boundary2) => boundary2.alias === alias);
+ if (old && alias === old.alias) {
+ boundary = old;
+ } else {
+ boundary.alias = alias;
+ boundarys.push(boundary);
+ }
+ if (label === void 0 || label === null) {
+ boundary.label = { text: "" };
+ } else {
+ boundary.label = { text: label };
+ }
+ if (type === void 0 || type === null) {
+ boundary.type = { text: "system" };
+ } else {
+ if (typeof type === "object") {
+ let [key, value] = Object.entries(type)[0];
+ boundary[key] = { text: value };
+ } else {
+ boundary.type = { text: type };
+ }
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ boundary[key] = value;
+ } else {
+ boundary.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ boundary[key] = value;
+ } else {
+ boundary.link = link;
+ }
+ boundary.parentBoundary = currentBoundaryParse;
+ boundary.wrap = autoWrap();
+ parentBoundaryParse = currentBoundaryParse;
+ currentBoundaryParse = alias;
+ boundaryParseStack.push(parentBoundaryParse);
+};
+const addContainerBoundary = function(alias, label, type, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let boundary = {};
+ const old = boundarys.find((boundary2) => boundary2.alias === alias);
+ if (old && alias === old.alias) {
+ boundary = old;
+ } else {
+ boundary.alias = alias;
+ boundarys.push(boundary);
+ }
+ if (label === void 0 || label === null) {
+ boundary.label = { text: "" };
+ } else {
+ boundary.label = { text: label };
+ }
+ if (type === void 0 || type === null) {
+ boundary.type = { text: "container" };
+ } else {
+ if (typeof type === "object") {
+ let [key, value] = Object.entries(type)[0];
+ boundary[key] = { text: value };
+ } else {
+ boundary.type = { text: type };
+ }
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ boundary[key] = value;
+ } else {
+ boundary.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ boundary[key] = value;
+ } else {
+ boundary.link = link;
+ }
+ boundary.parentBoundary = currentBoundaryParse;
+ boundary.wrap = autoWrap();
+ parentBoundaryParse = currentBoundaryParse;
+ currentBoundaryParse = alias;
+ boundaryParseStack.push(parentBoundaryParse);
+};
+const addDeploymentNode = function(nodeType, alias, label, type, descr, sprite, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let boundary = {};
+ const old = boundarys.find((boundary2) => boundary2.alias === alias);
+ if (old && alias === old.alias) {
+ boundary = old;
+ } else {
+ boundary.alias = alias;
+ boundarys.push(boundary);
+ }
+ if (label === void 0 || label === null) {
+ boundary.label = { text: "" };
+ } else {
+ boundary.label = { text: label };
+ }
+ if (type === void 0 || type === null) {
+ boundary.type = { text: "node" };
+ } else {
+ if (typeof type === "object") {
+ let [key, value] = Object.entries(type)[0];
+ boundary[key] = { text: value };
+ } else {
+ boundary.type = { text: type };
+ }
+ }
+ if (descr === void 0 || descr === null) {
+ boundary.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value] = Object.entries(descr)[0];
+ boundary[key] = { text: value };
+ } else {
+ boundary.descr = { text: descr };
+ }
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ boundary[key] = value;
+ } else {
+ boundary.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ boundary[key] = value;
+ } else {
+ boundary.link = link;
+ }
+ boundary.nodeType = nodeType;
+ boundary.parentBoundary = currentBoundaryParse;
+ boundary.wrap = autoWrap();
+ parentBoundaryParse = currentBoundaryParse;
+ currentBoundaryParse = alias;
+ boundaryParseStack.push(parentBoundaryParse);
+};
+const popBoundaryParseStack = function() {
+ currentBoundaryParse = parentBoundaryParse;
+ boundaryParseStack.pop();
+ parentBoundaryParse = boundaryParseStack.pop();
+ boundaryParseStack.push(parentBoundaryParse);
+};
+const updateElStyle = function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {
+ let old = c4ShapeArray.find((element) => element.alias === elementName);
+ if (old === void 0) {
+ old = boundarys.find((element) => element.alias === elementName);
+ if (old === void 0) {
+ return;
+ }
+ }
+ if (bgColor !== void 0 && bgColor !== null) {
+ if (typeof bgColor === "object") {
+ let [key, value] = Object.entries(bgColor)[0];
+ old[key] = value;
+ } else {
+ old.bgColor = bgColor;
+ }
+ }
+ if (fontColor !== void 0 && fontColor !== null) {
+ if (typeof fontColor === "object") {
+ let [key, value] = Object.entries(fontColor)[0];
+ old[key] = value;
+ } else {
+ old.fontColor = fontColor;
+ }
+ }
+ if (borderColor !== void 0 && borderColor !== null) {
+ if (typeof borderColor === "object") {
+ let [key, value] = Object.entries(borderColor)[0];
+ old[key] = value;
+ } else {
+ old.borderColor = borderColor;
+ }
+ }
+ if (shadowing !== void 0 && shadowing !== null) {
+ if (typeof shadowing === "object") {
+ let [key, value] = Object.entries(shadowing)[0];
+ old[key] = value;
+ } else {
+ old.shadowing = shadowing;
+ }
+ }
+ if (shape !== void 0 && shape !== null) {
+ if (typeof shape === "object") {
+ let [key, value] = Object.entries(shape)[0];
+ old[key] = value;
+ } else {
+ old.shape = shape;
+ }
+ }
+ if (sprite !== void 0 && sprite !== null) {
+ if (typeof sprite === "object") {
+ let [key, value] = Object.entries(sprite)[0];
+ old[key] = value;
+ } else {
+ old.sprite = sprite;
+ }
+ }
+ if (techn !== void 0 && techn !== null) {
+ if (typeof techn === "object") {
+ let [key, value] = Object.entries(techn)[0];
+ old[key] = value;
+ } else {
+ old.techn = techn;
+ }
+ }
+ if (legendText !== void 0 && legendText !== null) {
+ if (typeof legendText === "object") {
+ let [key, value] = Object.entries(legendText)[0];
+ old[key] = value;
+ } else {
+ old.legendText = legendText;
+ }
+ }
+ if (legendSprite !== void 0 && legendSprite !== null) {
+ if (typeof legendSprite === "object") {
+ let [key, value] = Object.entries(legendSprite)[0];
+ old[key] = value;
+ } else {
+ old.legendSprite = legendSprite;
+ }
+ }
+};
+const updateRelStyle = function(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) {
+ const old = rels.find((rel) => rel.from === from && rel.to === to);
+ if (old === void 0) {
+ return;
+ }
+ if (textColor !== void 0 && textColor !== null) {
+ if (typeof textColor === "object") {
+ let [key, value] = Object.entries(textColor)[0];
+ old[key] = value;
+ } else {
+ old.textColor = textColor;
+ }
+ }
+ if (lineColor !== void 0 && lineColor !== null) {
+ if (typeof lineColor === "object") {
+ let [key, value] = Object.entries(lineColor)[0];
+ old[key] = value;
+ } else {
+ old.lineColor = lineColor;
+ }
+ }
+ if (offsetX !== void 0 && offsetX !== null) {
+ if (typeof offsetX === "object") {
+ let [key, value] = Object.entries(offsetX)[0];
+ old[key] = parseInt(value);
+ } else {
+ old.offsetX = parseInt(offsetX);
+ }
+ }
+ if (offsetY !== void 0 && offsetY !== null) {
+ if (typeof offsetY === "object") {
+ let [key, value] = Object.entries(offsetY)[0];
+ old[key] = parseInt(value);
+ } else {
+ old.offsetY = parseInt(offsetY);
+ }
+ }
+};
+const updateLayoutConfig = function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {
+ let c4ShapeInRowValue = c4ShapeInRow$1;
+ let c4BoundaryInRowValue = c4BoundaryInRow$1;
+ if (typeof c4ShapeInRowParam === "object") {
+ const value = Object.values(c4ShapeInRowParam)[0];
+ c4ShapeInRowValue = parseInt(value);
+ } else {
+ c4ShapeInRowValue = parseInt(c4ShapeInRowParam);
+ }
+ if (typeof c4BoundaryInRowParam === "object") {
+ const value = Object.values(c4BoundaryInRowParam)[0];
+ c4BoundaryInRowValue = parseInt(value);
+ } else {
+ c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);
+ }
+ if (c4ShapeInRowValue >= 1) {
+ c4ShapeInRow$1 = c4ShapeInRowValue;
+ }
+ if (c4BoundaryInRowValue >= 1) {
+ c4BoundaryInRow$1 = c4BoundaryInRowValue;
+ }
+};
+const getC4ShapeInRow = function() {
+ return c4ShapeInRow$1;
+};
+const getC4BoundaryInRow = function() {
+ return c4BoundaryInRow$1;
+};
+const getCurrentBoundaryParse = function() {
+ return currentBoundaryParse;
+};
+const getParentBoundaryParse = function() {
+ return parentBoundaryParse;
+};
+const getC4ShapeArray = function(parentBoundary) {
+ if (parentBoundary === void 0 || parentBoundary === null) {
+ return c4ShapeArray;
+ } else {
+ return c4ShapeArray.filter((personOrSystem) => {
+ return personOrSystem.parentBoundary === parentBoundary;
+ });
+ }
+};
+const getC4Shape = function(alias) {
+ return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);
+};
+const getC4ShapeKeys = function(parentBoundary) {
+ return Object.keys(getC4ShapeArray(parentBoundary));
+};
+const getBoundarys = function(parentBoundary) {
+ if (parentBoundary === void 0 || parentBoundary === null) {
+ return boundarys;
+ } else {
+ return boundarys.filter((boundary) => boundary.parentBoundary === parentBoundary);
+ }
+};
+const getRels = function() {
+ return rels;
+};
+const getTitle = function() {
+ return title;
+};
+const setWrap = function(wrapSetting) {
+ wrapEnabled = wrapSetting;
+};
+const autoWrap = function() {
+ return wrapEnabled;
+};
+const clear = function() {
+ c4ShapeArray = [];
+ boundarys = [
+ {
+ alias: "global",
+ label: { text: "global" },
+ type: { text: "global" },
+ tags: null,
+ link: null,
+ parentBoundary: ""
+ }
+ ];
+ parentBoundaryParse = "";
+ currentBoundaryParse = "global";
+ boundaryParseStack = [""];
+ rels = [];
+ boundaryParseStack = [""];
+ title = "";
+ wrapEnabled = false;
+ c4ShapeInRow$1 = 4;
+ c4BoundaryInRow$1 = 2;
+};
+const LINETYPE = {
+ 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,
+ SOLID_POINT: 24,
+ DOTTED_POINT: 25
+};
+const ARROWTYPE = {
+ FILLED: 0,
+ OPEN: 1
+};
+const PLACEMENT = {
+ LEFTOF: 0,
+ RIGHTOF: 1,
+ OVER: 2
+};
+const setTitle = function(txt) {
+ let sanitizedText = sanitizeText(txt, getConfig());
+ title = sanitizedText;
+};
+const c4Db = {
+ addPersonOrSystem,
+ addPersonOrSystemBoundary,
+ addContainer,
+ addContainerBoundary,
+ addComponent,
+ addDeploymentNode,
+ popBoundaryParseStack,
+ addRel,
+ updateElStyle,
+ updateRelStyle,
+ updateLayoutConfig,
+ autoWrap,
+ setWrap,
+ getC4ShapeArray,
+ getC4Shape,
+ getC4ShapeKeys,
+ getBoundarys,
+ getCurrentBoundaryParse,
+ getParentBoundaryParse,
+ getRels,
+ getTitle,
+ getC4Type,
+ getC4ShapeInRow,
+ getC4BoundaryInRow,
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ setAccDescription,
+ parseDirective,
+ getConfig: () => getConfig().c4,
+ clear,
+ LINETYPE,
+ ARROWTYPE,
+ PLACEMENT,
+ setTitle,
+ setC4Type
+ // apply,
+};
+const drawRect = function(elem, rectData) {
+ const rectElem = elem.append("rect");
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.y);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", rectData.width);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (rectData.attrs !== "undefined" && rectData.attrs !== null) {
+ for (let attrKey in rectData.attrs) {
+ rectElem.attr(attrKey, rectData.attrs[attrKey]);
+ }
+ }
+ if (rectData.class !== "undefined") {
+ rectElem.attr("class", rectData.class);
+ }
+ return rectElem;
+};
+const drawImage = function(elem, width, height, x, y, link) {
+ const imageElem = elem.append("image");
+ imageElem.attr("width", width);
+ imageElem.attr("height", height);
+ imageElem.attr("x", x);
+ imageElem.attr("y", y);
+ let sanitizedLink = link.startsWith("data:image/png;base64") ? link : sanitizeUrl(link);
+ imageElem.attr("xlink:href", sanitizedLink);
+};
+const drawRels$1 = (elem, rels2, conf2) => {
+ const relsElem = elem.append("g");
+ let i = 0;
+ for (let rel of rels2) {
+ let textColor = rel.textColor ? rel.textColor : "#444444";
+ let strokeColor = rel.lineColor ? rel.lineColor : "#444444";
+ let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;
+ let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;
+ let url = "";
+ if (i === 0) {
+ let line = relsElem.append("line");
+ line.attr("x1", rel.startPoint.x);
+ line.attr("y1", rel.startPoint.y);
+ line.attr("x2", rel.endPoint.x);
+ line.attr("y2", rel.endPoint.y);
+ line.attr("stroke-width", "1");
+ line.attr("stroke", strokeColor);
+ line.style("fill", "none");
+ if (rel.type !== "rel_b") {
+ line.attr("marker-end", "url(" + url + "#arrowhead)");
+ }
+ if (rel.type === "birel" || rel.type === "rel_b") {
+ line.attr("marker-start", "url(" + url + "#arrowend)");
+ }
+ i = -1;
+ } else {
+ let line = relsElem.append("path");
+ line.attr("fill", "none").attr("stroke-width", "1").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx", rel.startPoint.x).replaceAll("starty", rel.startPoint.y).replaceAll(
+ "controlx",
+ rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4
+ ).replaceAll("controly", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll("stopx", rel.endPoint.x).replaceAll("stopy", rel.endPoint.y)
+ );
+ if (rel.type !== "rel_b") {
+ line.attr("marker-end", "url(" + url + "#arrowhead)");
+ }
+ if (rel.type === "birel" || rel.type === "rel_b") {
+ line.attr("marker-start", "url(" + url + "#arrowend)");
+ }
+ }
+ let messageConf = conf2.messageFont();
+ _drawTextCandidateFunc(conf2)(
+ rel.label.text,
+ relsElem,
+ Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,
+ Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY,
+ rel.label.width,
+ rel.label.height,
+ { fill: textColor },
+ messageConf
+ );
+ if (rel.techn && rel.techn.text !== "") {
+ messageConf = conf2.messageFont();
+ _drawTextCandidateFunc(conf2)(
+ "[" + rel.techn.text + "]",
+ relsElem,
+ Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,
+ Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY,
+ Math.max(rel.label.width, rel.techn.width),
+ rel.techn.height,
+ { fill: textColor, "font-style": "italic" },
+ messageConf
+ );
+ }
+ }
+};
+const drawBoundary$1 = function(elem, boundary, conf2) {
+ const boundaryElem = elem.append("g");
+ let fillColor = boundary.bgColor ? boundary.bgColor : "none";
+ let strokeColor = boundary.borderColor ? boundary.borderColor : "#444444";
+ let fontColor = boundary.fontColor ? boundary.fontColor : "black";
+ let attrsValue = { "stroke-width": 1, "stroke-dasharray": "7.0,7.0" };
+ if (boundary.nodeType) {
+ attrsValue = { "stroke-width": 1 };
+ }
+ let rectData = {
+ x: boundary.x,
+ y: boundary.y,
+ fill: fillColor,
+ stroke: strokeColor,
+ width: boundary.width,
+ height: boundary.height,
+ rx: 2.5,
+ ry: 2.5,
+ attrs: attrsValue
+ };
+ drawRect(boundaryElem, rectData);
+ let boundaryConf = conf2.boundaryFont();
+ boundaryConf.fontWeight = "bold";
+ boundaryConf.fontSize = boundaryConf.fontSize + 2;
+ boundaryConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf2)(
+ boundary.label.text,
+ boundaryElem,
+ boundary.x,
+ boundary.y + boundary.label.Y,
+ boundary.width,
+ boundary.height,
+ { fill: "#444444" },
+ boundaryConf
+ );
+ if (boundary.type && boundary.type.text !== "") {
+ boundaryConf = conf2.boundaryFont();
+ boundaryConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf2)(
+ boundary.type.text,
+ boundaryElem,
+ boundary.x,
+ boundary.y + boundary.type.Y,
+ boundary.width,
+ boundary.height,
+ { fill: "#444444" },
+ boundaryConf
+ );
+ }
+ if (boundary.descr && boundary.descr.text !== "") {
+ boundaryConf = conf2.boundaryFont();
+ boundaryConf.fontSize = boundaryConf.fontSize - 2;
+ boundaryConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf2)(
+ boundary.descr.text,
+ boundaryElem,
+ boundary.x,
+ boundary.y + boundary.descr.Y,
+ boundary.width,
+ boundary.height,
+ { fill: "#444444" },
+ boundaryConf
+ );
+ }
+};
+const drawC4Shape = function(elem, c4Shape, conf2) {
+ var _a;
+ let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + "_bg_color"];
+ let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + "_border_color"];
+ let fontColor = c4Shape.fontColor ? c4Shape.fontColor : "#FFFFFF";
+ let personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
+ break;
+ case "external_person":
+ personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";
+ break;
+ }
+ const c4ShapeElem = elem.append("g");
+ c4ShapeElem.attr("class", "person-man");
+ const rect = getNoteRect();
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ case "system":
+ case "external_system":
+ case "container":
+ case "external_container":
+ case "component":
+ case "external_component":
+ rect.x = c4Shape.x;
+ rect.y = c4Shape.y;
+ rect.fill = fillColor;
+ rect.width = c4Shape.width;
+ rect.height = c4Shape.height;
+ rect.stroke = strokeColor;
+ rect.rx = 2.5;
+ rect.ry = 2.5;
+ rect.attrs = { "stroke-width": 0.5 };
+ drawRect(c4ShapeElem, rect);
+ break;
+ case "system_db":
+ case "external_system_db":
+ case "container_db":
+ case "external_container_db":
+ case "component_db":
+ case "external_component_db":
+ c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2).replaceAll("height", c4Shape.height)
+ );
+ c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2)
+ );
+ break;
+ case "system_queue":
+ case "external_system_queue":
+ case "container_queue":
+ case "external_container_queue":
+ case "component_queue":
+ case "external_component_queue":
+ c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("width", c4Shape.width).replaceAll("half", c4Shape.height / 2)
+ );
+ c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx", c4Shape.x + c4Shape.width).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.height / 2)
+ );
+ break;
+ }
+ let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text);
+ c4ShapeElem.append("text").attr("fill", fontColor).attr("font-family", c4ShapeFontConf.fontFamily).attr("font-size", c4ShapeFontConf.fontSize - 2).attr("font-style", "italic").attr("lengthAdjust", "spacing").attr("textLength", c4Shape.typeC4Shape.width).attr("x", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr("y", c4Shape.y + c4Shape.typeC4Shape.Y).text("<<" + c4Shape.typeC4Shape.text + ">>");
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ drawImage(
+ c4ShapeElem,
+ 48,
+ 48,
+ c4Shape.x + c4Shape.width / 2 - 24,
+ c4Shape.y + c4Shape.image.Y,
+ personImg
+ );
+ break;
+ }
+ let textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"]();
+ textFontConf.fontWeight = "bold";
+ textFontConf.fontSize = textFontConf.fontSize + 2;
+ textFontConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf2)(
+ c4Shape.label.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.label.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor },
+ textFontConf
+ );
+ textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"]();
+ textFontConf.fontColor = fontColor;
+ if (c4Shape.techn && ((_a = c4Shape.techn) == null ? void 0 : _a.text) !== "") {
+ _drawTextCandidateFunc(conf2)(
+ c4Shape.techn.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.techn.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor, "font-style": "italic" },
+ textFontConf
+ );
+ } else if (c4Shape.type && c4Shape.type.text !== "") {
+ _drawTextCandidateFunc(conf2)(
+ c4Shape.type.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.type.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor, "font-style": "italic" },
+ textFontConf
+ );
+ }
+ if (c4Shape.descr && c4Shape.descr.text !== "") {
+ textFontConf = conf2.personFont();
+ textFontConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf2)(
+ c4Shape.descr.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.descr.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor },
+ textFontConf
+ );
+ }
+ return c4Shape.height;
+};
+const insertDatabaseIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
+ );
+};
+const insertComputerIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
+ );
+};
+const insertClockIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
+ );
+};
+const insertArrowHead = function(elem) {
+ elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z");
+};
+const insertArrowEnd = function(elem) {
+ elem.append("defs").append("marker").attr("id", "arrowend").attr("refX", 1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 10 0 L 0 5 L 10 10 z");
+};
+const insertArrowFilledHead = function(elem) {
+ elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).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");
+};
+const insertDynamicNumber = function(elem) {
+ elem.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);
+};
+const insertArrowCrossHead = function(elem) {
+ const defs = elem.append("defs");
+ const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 16).attr("refY", 4);
+ marker.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");
+ marker.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");
+};
+const getNoteRect = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: "#EDF2AE",
+ stroke: "#666",
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+};
+const getC4ShapeFont = (cnf, typeC4Shape) => {
+ return {
+ fontFamily: cnf[typeC4Shape + "FontFamily"],
+ fontSize: cnf[typeC4Shape + "FontSize"],
+ fontWeight: cnf[typeC4Shape + "FontWeight"]
+ };
+};
+const _drawTextCandidateFunc = function() {
+ function byText(content, g, x, y, width, height, textAttrs) {
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text, textAttrs);
+ }
+ function byTspan(content, g, x, y, width, height, textAttrs, conf2) {
+ const { fontSize, fontFamily, fontWeight } = conf2;
+ const lines = content.split(common.lineBreakRegex);
+ for (let i = 0; i < lines.length; i++) {
+ const dy = i * fontSize - fontSize * (lines.length - 1) / 2;
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y).style("text-anchor", "middle").attr("dominant-baseline", "middle").style("font-size", fontSize).style("font-weight", fontWeight).style("font-family", fontFamily);
+ text.append("tspan").attr("dy", dy).text(lines[i]).attr("alignment-baseline", "mathematical");
+ _setTextAttrs(text, textAttrs);
+ }
+ }
+ function byFo(content, g, x, y, width, height, textAttrs, conf2) {
+ const s = g.append("switch");
+ const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height);
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, s, x, y, width, height, textAttrs, conf2);
+ _setTextAttrs(text, textAttrs);
+ }
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (fromTextAttrsDict.hasOwnProperty(key)) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ return function(conf2) {
+ return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
+ };
+}();
+const svgDraw = {
+ drawRect,
+ drawBoundary: drawBoundary$1,
+ drawC4Shape,
+ drawRels: drawRels$1,
+ drawImage,
+ insertArrowHead,
+ insertArrowEnd,
+ insertArrowFilledHead,
+ insertDynamicNumber,
+ insertArrowCrossHead,
+ insertDatabaseIcon,
+ insertComputerIcon,
+ insertClockIcon,
+ getNoteRect,
+ sanitizeUrl
+ // TODO why is this exported?
+};
+let globalBoundaryMaxX = 0, globalBoundaryMaxY = 0;
+let c4ShapeInRow = 4;
+let c4BoundaryInRow = 2;
+parser.yy = c4Db;
+let conf = {};
+class Bounds {
+ constructor(diagObj) {
+ this.name = "";
+ this.data = {};
+ this.data.startx = void 0;
+ this.data.stopx = void 0;
+ this.data.starty = void 0;
+ this.data.stopy = void 0;
+ this.data.widthLimit = void 0;
+ this.nextData = {};
+ this.nextData.startx = void 0;
+ this.nextData.stopx = void 0;
+ this.nextData.starty = void 0;
+ this.nextData.stopy = void 0;
+ this.nextData.cnt = 0;
+ setConf(diagObj.db.getConfig());
+ }
+ setData(startx, stopx, starty, stopy) {
+ this.nextData.startx = this.data.startx = startx;
+ this.nextData.stopx = this.data.stopx = stopx;
+ this.nextData.starty = this.data.starty = starty;
+ this.nextData.stopy = this.data.stopy = stopy;
+ }
+ updateVal(obj, key, val, fun) {
+ if (obj[key] === void 0) {
+ obj[key] = val;
+ } else {
+ obj[key] = fun(val, obj[key]);
+ }
+ }
+ insert(c4Shape) {
+ this.nextData.cnt = this.nextData.cnt + 1;
+ let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2;
+ let _stopx = _startx + c4Shape.width;
+ let _starty = this.nextData.starty + c4Shape.margin * 2;
+ let _stopy = _starty + c4Shape.height;
+ if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow) {
+ _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;
+ _starty = this.nextData.stopy + c4Shape.margin * 2;
+ this.nextData.stopx = _stopx = _startx + c4Shape.width;
+ this.nextData.starty = this.nextData.stopy;
+ this.nextData.stopy = _stopy = _starty + c4Shape.height;
+ this.nextData.cnt = 1;
+ }
+ c4Shape.x = _startx;
+ c4Shape.y = _starty;
+ this.updateVal(this.data, "startx", _startx, Math.min);
+ this.updateVal(this.data, "starty", _starty, Math.min);
+ this.updateVal(this.data, "stopx", _stopx, Math.max);
+ this.updateVal(this.data, "stopy", _stopy, Math.max);
+ this.updateVal(this.nextData, "startx", _startx, Math.min);
+ this.updateVal(this.nextData, "starty", _starty, Math.min);
+ this.updateVal(this.nextData, "stopx", _stopx, Math.max);
+ this.updateVal(this.nextData, "stopy", _stopy, Math.max);
+ }
+ init(diagObj) {
+ this.name = "";
+ this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0,
+ widthLimit: void 0
+ };
+ this.nextData = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0,
+ cnt: 0
+ };
+ setConf(diagObj.db.getConfig());
+ }
+ bumpLastMargin(margin) {
+ this.data.stopx += margin;
+ this.data.stopy += margin;
+ }
+}
+const setConf = function(cnf) {
+ assignWithDepth(conf, cnf);
+ if (cnf.fontFamily) {
+ conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;
+ }
+ if (cnf.fontSize) {
+ conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;
+ }
+ if (cnf.fontWeight) {
+ conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;
+ }
+};
+const c4ShapeFont = (cnf, typeC4Shape) => {
+ return {
+ fontFamily: cnf[typeC4Shape + "FontFamily"],
+ fontSize: cnf[typeC4Shape + "FontSize"],
+ fontWeight: cnf[typeC4Shape + "FontWeight"]
+ };
+};
+const boundaryFont = (cnf) => {
+ return {
+ fontFamily: cnf.boundaryFontFamily,
+ fontSize: cnf.boundaryFontSize,
+ fontWeight: cnf.boundaryFontWeight
+ };
+};
+const messageFont = (cnf) => {
+ return {
+ fontFamily: cnf.messageFontFamily,
+ fontSize: cnf.messageFontSize,
+ fontWeight: cnf.messageFontWeight
+ };
+};
+function calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {
+ if (!c4Shape[textType].width) {
+ if (c4ShapeTextWrap) {
+ c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);
+ c4Shape[textType].textLines = c4Shape[textType].text.split(common.lineBreakRegex).length;
+ c4Shape[textType].width = textLimitWidth;
+ c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);
+ } else {
+ let lines = c4Shape[textType].text.split(common.lineBreakRegex);
+ c4Shape[textType].textLines = lines.length;
+ let lineHeight = 0;
+ c4Shape[textType].height = 0;
+ c4Shape[textType].width = 0;
+ for (const line of lines) {
+ c4Shape[textType].width = Math.max(
+ calculateTextWidth(line, textConf),
+ c4Shape[textType].width
+ );
+ lineHeight = calculateTextHeight(line, textConf);
+ c4Shape[textType].height = c4Shape[textType].height + lineHeight;
+ }
+ }
+ }
+}
+const drawBoundary = function(diagram2, boundary, bounds) {
+ boundary.x = bounds.data.startx;
+ boundary.y = bounds.data.starty;
+ boundary.width = bounds.data.stopx - bounds.data.startx;
+ boundary.height = bounds.data.stopy - bounds.data.starty;
+ boundary.label.y = conf.c4ShapeMargin - 35;
+ let boundaryTextWrap = boundary.wrap && conf.wrap;
+ let boundaryLabelConf = boundaryFont(conf);
+ boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;
+ boundaryLabelConf.fontWeight = "bold";
+ let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);
+ calcC4ShapeTextWH("label", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);
+ svgDraw.drawBoundary(diagram2, boundary, conf);
+};
+const drawC4ShapeArray = function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) {
+ let Y = 0;
+ for (const c4ShapeKey of c4ShapeKeys) {
+ Y = 0;
+ const c4Shape = c4ShapeArray2[c4ShapeKey];
+ let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;
+ c4Shape.typeC4Shape.width = calculateTextWidth(
+ "<<" + c4Shape.typeC4Shape.text + ">>",
+ c4ShapeTypeConf
+ );
+ c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;
+ c4Shape.typeC4Shape.Y = conf.c4ShapePadding;
+ Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;
+ c4Shape.image = { width: 0, height: 0, Y: 0 };
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ c4Shape.image.width = 48;
+ c4Shape.image.height = 48;
+ c4Shape.image.Y = Y;
+ Y = c4Shape.image.Y + c4Shape.image.height;
+ break;
+ }
+ if (c4Shape.sprite) {
+ c4Shape.image.width = 48;
+ c4Shape.image.height = 48;
+ c4Shape.image.Y = Y;
+ Y = c4Shape.image.Y + c4Shape.image.height;
+ }
+ let c4ShapeTextWrap = c4Shape.wrap && conf.wrap;
+ let textLimitWidth = conf.width - conf.c4ShapePadding * 2;
+ let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;
+ c4ShapeLabelConf.fontWeight = "bold";
+ calcC4ShapeTextWH("label", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);
+ c4Shape["label"].Y = Y + 8;
+ Y = c4Shape["label"].Y + c4Shape["label"].height;
+ if (c4Shape.type && c4Shape.type.text !== "") {
+ c4Shape.type.text = "[" + c4Shape.type.text + "]";
+ let c4ShapeTypeConf2 = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ calcC4ShapeTextWH("type", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth);
+ c4Shape["type"].Y = Y + 5;
+ Y = c4Shape["type"].Y + c4Shape["type"].height;
+ } else if (c4Shape.techn && c4Shape.techn.text !== "") {
+ c4Shape.techn.text = "[" + c4Shape.techn.text + "]";
+ let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text);
+ calcC4ShapeTextWH("techn", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);
+ c4Shape["techn"].Y = Y + 5;
+ Y = c4Shape["techn"].Y + c4Shape["techn"].height;
+ }
+ let rectHeight = Y;
+ let rectWidth = c4Shape.label.width;
+ if (c4Shape.descr && c4Shape.descr.text !== "") {
+ let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ calcC4ShapeTextWH("descr", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);
+ c4Shape["descr"].Y = Y + 20;
+ Y = c4Shape["descr"].Y + c4Shape["descr"].height;
+ rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);
+ rectHeight = Y - c4Shape["descr"].textLines * 5;
+ }
+ rectWidth = rectWidth + conf.c4ShapePadding;
+ c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width);
+ c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height);
+ c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin;
+ currentBounds.insert(c4Shape);
+ svgDraw.drawC4Shape(diagram2, c4Shape, conf);
+ }
+ currentBounds.bumpLastMargin(conf.c4ShapeMargin);
+};
+class Point {
+ constructor(x, y) {
+ this.x = x;
+ this.y = y;
+ }
+}
+let getIntersectPoint = function(fromNode, endPoint) {
+ let x1 = fromNode.x;
+ let y1 = fromNode.y;
+ let x2 = endPoint.x;
+ let y2 = endPoint.y;
+ let fromCenterX = x1 + fromNode.width / 2;
+ let fromCenterY = y1 + fromNode.height / 2;
+ let dx = Math.abs(x1 - x2);
+ let dy = Math.abs(y1 - y2);
+ let tanDYX = dy / dx;
+ let fromDYX = fromNode.height / fromNode.width;
+ let returnPoint = null;
+ if (y1 == y2 && x1 < x2) {
+ returnPoint = new Point(x1 + fromNode.width, fromCenterY);
+ } else if (y1 == y2 && x1 > x2) {
+ returnPoint = new Point(x1, fromCenterY);
+ } else if (x1 == x2 && y1 < y2) {
+ returnPoint = new Point(fromCenterX, y1 + fromNode.height);
+ } else if (x1 == x2 && y1 > y2) {
+ returnPoint = new Point(fromCenterX, y1);
+ }
+ if (x1 > x2 && y1 < y2) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point(x1, fromCenterY + tanDYX * fromNode.width / 2);
+ } else {
+ returnPoint = new Point(
+ fromCenterX - dx / dy * fromNode.height / 2,
+ y1 + fromNode.height
+ );
+ }
+ } else if (x1 < x2 && y1 < y2) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2);
+ } else {
+ returnPoint = new Point(
+ fromCenterX + dx / dy * fromNode.height / 2,
+ y1 + fromNode.height
+ );
+ }
+ } else if (x1 < x2 && y1 > y2) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2);
+ } else {
+ returnPoint = new Point(fromCenterX + fromNode.height / 2 * dx / dy, y1);
+ }
+ } else if (x1 > x2 && y1 > y2) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point(x1, fromCenterY - fromNode.width / 2 * tanDYX);
+ } else {
+ returnPoint = new Point(fromCenterX - fromNode.height / 2 * dx / dy, y1);
+ }
+ }
+ return returnPoint;
+};
+let getIntersectPoints = function(fromNode, endNode) {
+ let endIntersectPoint = { x: 0, y: 0 };
+ endIntersectPoint.x = endNode.x + endNode.width / 2;
+ endIntersectPoint.y = endNode.y + endNode.height / 2;
+ let startPoint = getIntersectPoint(fromNode, endIntersectPoint);
+ endIntersectPoint.x = fromNode.x + fromNode.width / 2;
+ endIntersectPoint.y = fromNode.y + fromNode.height / 2;
+ let endPoint = getIntersectPoint(endNode, endIntersectPoint);
+ return { startPoint, endPoint };
+};
+const drawRels = function(diagram2, rels2, getC4ShapeObj, diagObj) {
+ let i = 0;
+ for (let rel of rels2) {
+ i = i + 1;
+ let relTextWrap = rel.wrap && conf.wrap;
+ let relConf = messageFont(conf);
+ let diagramType = diagObj.db.getC4Type();
+ if (diagramType === "C4Dynamic") {
+ rel.label.text = i + ": " + rel.label.text;
+ }
+ let textLimitWidth = calculateTextWidth(rel.label.text, relConf);
+ calcC4ShapeTextWH("label", rel, relTextWrap, relConf, textLimitWidth);
+ if (rel.techn && rel.techn.text !== "") {
+ textLimitWidth = calculateTextWidth(rel.techn.text, relConf);
+ calcC4ShapeTextWH("techn", rel, relTextWrap, relConf, textLimitWidth);
+ }
+ if (rel.descr && rel.descr.text !== "") {
+ textLimitWidth = calculateTextWidth(rel.descr.text, relConf);
+ calcC4ShapeTextWH("descr", rel, relTextWrap, relConf, textLimitWidth);
+ }
+ let fromNode = getC4ShapeObj(rel.from);
+ let endNode = getC4ShapeObj(rel.to);
+ let points = getIntersectPoints(fromNode, endNode);
+ rel.startPoint = points.startPoint;
+ rel.endPoint = points.endPoint;
+ }
+ svgDraw.drawRels(diagram2, rels2, conf);
+};
+function drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) {
+ let currentBounds = new Bounds(diagObj);
+ currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundaries.length);
+ for (let [i, currentBoundary] of currentBoundaries.entries()) {
+ let Y = 0;
+ currentBoundary.image = { width: 0, height: 0, Y: 0 };
+ if (currentBoundary.sprite) {
+ currentBoundary.image.width = 48;
+ currentBoundary.image.height = 48;
+ currentBoundary.image.Y = Y;
+ Y = currentBoundary.image.Y + currentBoundary.image.height;
+ }
+ let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;
+ let currentBoundaryLabelConf = boundaryFont(conf);
+ currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;
+ currentBoundaryLabelConf.fontWeight = "bold";
+ calcC4ShapeTextWH(
+ "label",
+ currentBoundary,
+ currentBoundaryTextWrap,
+ currentBoundaryLabelConf,
+ currentBounds.data.widthLimit
+ );
+ currentBoundary["label"].Y = Y + 8;
+ Y = currentBoundary["label"].Y + currentBoundary["label"].height;
+ if (currentBoundary.type && currentBoundary.type.text !== "") {
+ currentBoundary.type.text = "[" + currentBoundary.type.text + "]";
+ let currentBoundaryTypeConf = boundaryFont(conf);
+ calcC4ShapeTextWH(
+ "type",
+ currentBoundary,
+ currentBoundaryTextWrap,
+ currentBoundaryTypeConf,
+ currentBounds.data.widthLimit
+ );
+ currentBoundary["type"].Y = Y + 5;
+ Y = currentBoundary["type"].Y + currentBoundary["type"].height;
+ }
+ if (currentBoundary.descr && currentBoundary.descr.text !== "") {
+ let currentBoundaryDescrConf = boundaryFont(conf);
+ currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;
+ calcC4ShapeTextWH(
+ "descr",
+ currentBoundary,
+ currentBoundaryTextWrap,
+ currentBoundaryDescrConf,
+ currentBounds.data.widthLimit
+ );
+ currentBoundary["descr"].Y = Y + 20;
+ Y = currentBoundary["descr"].Y + currentBoundary["descr"].height;
+ }
+ if (i == 0 || i % c4BoundaryInRow === 0) {
+ let _x = parentBounds.data.startx + conf.diagramMarginX;
+ let _y = parentBounds.data.stopy + conf.diagramMarginY + Y;
+ currentBounds.setData(_x, _x, _y, _y);
+ } else {
+ let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx;
+ let _y = currentBounds.data.starty;
+ currentBounds.setData(_x, _x, _y, _y);
+ }
+ currentBounds.name = currentBoundary.alias;
+ let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);
+ let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);
+ if (currentPersonOrSystemKeys.length > 0) {
+ drawC4ShapeArray(
+ currentBounds,
+ diagram2,
+ currentPersonOrSystemArray,
+ currentPersonOrSystemKeys
+ );
+ }
+ parentBoundaryAlias = currentBoundary.alias;
+ let nextCurrentBoundarys = diagObj.db.getBoundarys(parentBoundaryAlias);
+ if (nextCurrentBoundarys.length > 0) {
+ drawInsideBoundary(
+ diagram2,
+ parentBoundaryAlias,
+ currentBounds,
+ nextCurrentBoundarys,
+ diagObj
+ );
+ }
+ if (currentBoundary.alias !== "global") {
+ drawBoundary(diagram2, currentBoundary, currentBounds);
+ }
+ parentBounds.data.stopy = Math.max(
+ currentBounds.data.stopy + conf.c4ShapeMargin,
+ parentBounds.data.stopy
+ );
+ parentBounds.data.stopx = Math.max(
+ currentBounds.data.stopx + conf.c4ShapeMargin,
+ parentBounds.data.stopx
+ );
+ globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);
+ globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);
+ }
+}
+const draw = function(_text, id, _version, diagObj) {
+ conf = getConfig().c4;
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ let db = diagObj.db;
+ diagObj.db.setWrap(conf.wrap);
+ c4ShapeInRow = db.getC4ShapeInRow();
+ c4BoundaryInRow = db.getC4BoundaryInRow();
+ log.debug(`C:${JSON.stringify(conf, null, 2)}`);
+ const diagram2 = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : select(`[id="${id}"]`);
+ svgDraw.insertComputerIcon(diagram2);
+ svgDraw.insertDatabaseIcon(diagram2);
+ svgDraw.insertClockIcon(diagram2);
+ let screenBounds = new Bounds(diagObj);
+ screenBounds.setData(
+ conf.diagramMarginX,
+ conf.diagramMarginX,
+ conf.diagramMarginY,
+ conf.diagramMarginY
+ );
+ screenBounds.data.widthLimit = screen.availWidth;
+ globalBoundaryMaxX = conf.diagramMarginX;
+ globalBoundaryMaxY = conf.diagramMarginY;
+ const title2 = diagObj.db.getTitle();
+ let currentBoundaries = diagObj.db.getBoundarys("");
+ drawInsideBoundary(diagram2, "", screenBounds, currentBoundaries, diagObj);
+ svgDraw.insertArrowHead(diagram2);
+ svgDraw.insertArrowEnd(diagram2);
+ svgDraw.insertArrowCrossHead(diagram2);
+ svgDraw.insertArrowFilledHead(diagram2);
+ drawRels(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);
+ screenBounds.data.stopx = globalBoundaryMaxX;
+ screenBounds.data.stopy = globalBoundaryMaxY;
+ const box = screenBounds.data;
+ let boxHeight = box.stopy - box.starty;
+ let height = boxHeight + 2 * conf.diagramMarginY;
+ let boxWidth = box.stopx - box.startx;
+ const width = boxWidth + 2 * conf.diagramMarginX;
+ if (title2) {
+ diagram2.append("text").text(title2).attr("x", (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr("y", box.starty + conf.diagramMarginY);
+ }
+ configureSvgSize(diagram2, height, width, conf.useMaxWidth);
+ const extraVertForTitle = title2 ? 60 : 0;
+ diagram2.attr(
+ "viewBox",
+ box.startx - conf.diagramMarginX + " -" + (conf.diagramMarginY + extraVertForTitle) + " " + width + " " + (height + extraVertForTitle)
+ );
+ log.debug(`models:`, box);
+};
+const c4Renderer = {
+ drawPersonOrSystemArray: drawC4ShapeArray,
+ drawBoundary,
+ setConf,
+ draw
+};
+const getStyles = (options) => `.person {
+ stroke: ${options.personBorder};
+ fill: ${options.personBkg};
+ }
+`;
+const c4Styles = getStyles;
+const diagram = {
+ parser: c4Parser,
+ db: c4Db,
+ renderer: c4Renderer,
+ styles: c4Styles,
+ init: (cnf) => {
+ c4Renderer.setConf(cnf.c4);
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=c4Diagram-44c43e89.js.map
diff --git a/scopegraphs-render-docs/doc/js/c4Diagram-be8b5c2c.js b/scopegraphs-render-docs/doc/js/c4Diagram-be8b5c2c.js
new file mode 100644
index 0000000..be93fe6
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/c4Diagram-be8b5c2c.js
@@ -0,0 +1,2527 @@
+import { m as mermaidAPI } from "./mermaidAPI-c841a67f.js";
+import { q as setAccTitle, v as getAccTitle, w as getAccDescription, x as setAccDescription, g as getConfig, b as sanitizeText, f as common, d as assignWithDepth, h as select, l as log } from "./commonDb-89160e91.js";
+import { s as sanitizeUrl_1, q as calculateTextWidth, v as configureSvgSize, w as wrapLabel, x as calculateTextHeight } from "./utils-1aebe9b6.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 6], $V1 = [1, 7], $V2 = [1, 8], $V3 = [1, 9], $V4 = [1, 16], $V5 = [1, 11], $V6 = [1, 12], $V7 = [1, 13], $V8 = [1, 14], $V9 = [1, 15], $Va = [1, 27], $Vb = [1, 33], $Vc = [1, 34], $Vd = [1, 35], $Ve = [1, 36], $Vf = [1, 37], $Vg = [1, 72], $Vh = [1, 73], $Vi = [1, 74], $Vj = [1, 75], $Vk = [1, 76], $Vl = [1, 77], $Vm = [1, 78], $Vn = [1, 38], $Vo = [1, 39], $Vp = [1, 40], $Vq = [1, 41], $Vr = [1, 42], $Vs = [1, 43], $Vt = [1, 44], $Vu = [1, 45], $Vv = [1, 46], $Vw = [1, 47], $Vx = [1, 48], $Vy = [1, 49], $Vz = [1, 50], $VA = [1, 51], $VB = [1, 52], $VC = [1, 53], $VD = [1, 54], $VE = [1, 55], $VF = [1, 56], $VG = [1, 57], $VH = [1, 59], $VI = [1, 60], $VJ = [1, 61], $VK = [1, 62], $VL = [1, 63], $VM = [1, 64], $VN = [1, 65], $VO = [1, 66], $VP = [1, 67], $VQ = [1, 68], $VR = [1, 69], $VS = [24, 52], $VT = [24, 44, 46, 47, 48, 49, 50, 51, 52, 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], $VU = [15, 24, 44, 46, 47, 48, 49, 50, 51, 52, 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], $VV = [1, 94], $VW = [1, 95], $VX = [1, 96], $VY = [1, 97], $VZ = [15, 24, 52], $V_ = [7, 8, 9, 10, 18, 22, 25, 26, 27, 28], $V$ = [15, 24, 43, 52], $V01 = [15, 24, 43, 52, 86, 87, 89, 90], $V11 = [15, 43], $V21 = [44, 46, 47, 48, 49, 50, 51, 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];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "direction": 5, "directive": 6, "direction_tb": 7, "direction_bt": 8, "direction_rl": 9, "direction_lr": 10, "graphConfig": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, "NEWLINE": 15, ":": 16, "argDirective": 17, "open_directive": 18, "type_directive": 19, "arg_directive": 20, "close_directive": 21, "C4_CONTEXT": 22, "statements": 23, "EOF": 24, "C4_CONTAINER": 25, "C4_COMPONENT": 26, "C4_DYNAMIC": 27, "C4_DEPLOYMENT": 28, "otherStatements": 29, "diagramStatements": 30, "otherStatement": 31, "title": 32, "accDescription": 33, "acc_title": 34, "acc_title_value": 35, "acc_descr": 36, "acc_descr_value": 37, "acc_descr_multiline_value": 38, "boundaryStatement": 39, "boundaryStartStatement": 40, "boundaryStopStatement": 41, "boundaryStart": 42, "LBRACE": 43, "ENTERPRISE_BOUNDARY": 44, "attributes": 45, "SYSTEM_BOUNDARY": 46, "BOUNDARY": 47, "CONTAINER_BOUNDARY": 48, "NODE": 49, "NODE_L": 50, "NODE_R": 51, "RBRACE": 52, "diagramStatement": 53, "PERSON": 54, "PERSON_EXT": 55, "SYSTEM": 56, "SYSTEM_DB": 57, "SYSTEM_QUEUE": 58, "SYSTEM_EXT": 59, "SYSTEM_EXT_DB": 60, "SYSTEM_EXT_QUEUE": 61, "CONTAINER": 62, "CONTAINER_DB": 63, "CONTAINER_QUEUE": 64, "CONTAINER_EXT": 65, "CONTAINER_EXT_DB": 66, "CONTAINER_EXT_QUEUE": 67, "COMPONENT": 68, "COMPONENT_DB": 69, "COMPONENT_QUEUE": 70, "COMPONENT_EXT": 71, "COMPONENT_EXT_DB": 72, "COMPONENT_EXT_QUEUE": 73, "REL": 74, "BIREL": 75, "REL_U": 76, "REL_D": 77, "REL_L": 78, "REL_R": 79, "REL_B": 80, "REL_INDEX": 81, "UPDATE_EL_STYLE": 82, "UPDATE_REL_STYLE": 83, "UPDATE_LAYOUT_CONFIG": 84, "attribute": 85, "STR": 86, "STR_KEY": 87, "STR_VALUE": 88, "ATTRIBUTE": 89, "ATTRIBUTE_EMPTY": 90, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 7: "direction_tb", 8: "direction_bt", 9: "direction_rl", 10: "direction_lr", 15: "NEWLINE", 16: ":", 18: "open_directive", 19: "type_directive", 20: "arg_directive", 21: "close_directive", 22: "C4_CONTEXT", 24: "EOF", 25: "C4_CONTAINER", 26: "C4_COMPONENT", 27: "C4_DYNAMIC", 28: "C4_DEPLOYMENT", 32: "title", 33: "accDescription", 34: "acc_title", 35: "acc_title_value", 36: "acc_descr", 37: "acc_descr_value", 38: "acc_descr_multiline_value", 43: "LBRACE", 44: "ENTERPRISE_BOUNDARY", 46: "SYSTEM_BOUNDARY", 47: "BOUNDARY", 48: "CONTAINER_BOUNDARY", 49: "NODE", 50: "NODE_L", 51: "NODE_R", 52: "RBRACE", 54: "PERSON", 55: "PERSON_EXT", 56: "SYSTEM", 57: "SYSTEM_DB", 58: "SYSTEM_QUEUE", 59: "SYSTEM_EXT", 60: "SYSTEM_EXT_DB", 61: "SYSTEM_EXT_QUEUE", 62: "CONTAINER", 63: "CONTAINER_DB", 64: "CONTAINER_QUEUE", 65: "CONTAINER_EXT", 66: "CONTAINER_EXT_DB", 67: "CONTAINER_EXT_QUEUE", 68: "COMPONENT", 69: "COMPONENT_DB", 70: "COMPONENT_QUEUE", 71: "COMPONENT_EXT", 72: "COMPONENT_EXT_DB", 73: "COMPONENT_EXT_QUEUE", 74: "REL", 75: "BIREL", 76: "REL_U", 77: "REL_D", 78: "REL_L", 79: "REL_R", 80: "REL_B", 81: "REL_INDEX", 82: "UPDATE_EL_STYLE", 83: "UPDATE_REL_STYLE", 84: "UPDATE_LAYOUT_CONFIG", 86: "STR", 87: "STR_KEY", 88: "STR_VALUE", 89: "ATTRIBUTE", 90: "ATTRIBUTE_EMPTY" },
+ productions_: [0, [3, 1], [3, 1], [3, 2], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [6, 4], [6, 6], [12, 1], [13, 1], [17, 1], [14, 1], [11, 4], [11, 4], [11, 4], [11, 4], [11, 4], [23, 1], [23, 1], [23, 2], [29, 1], [29, 2], [29, 3], [31, 1], [31, 1], [31, 2], [31, 2], [31, 1], [39, 3], [40, 3], [40, 3], [40, 4], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [41, 1], [30, 1], [30, 2], [30, 3], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 1], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [45, 1], [45, 2], [85, 1], [85, 2], [85, 1], [85, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 4:
+ yy.setDirection("TB");
+ break;
+ case 5:
+ yy.setDirection("BT");
+ break;
+ case 6:
+ yy.setDirection("RL");
+ break;
+ case 7:
+ yy.setDirection("LR");
+ break;
+ case 11:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 12:
+ break;
+ case 13:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 14:
+ yy.parseDirective("}%%", "close_directive", "c4Context");
+ break;
+ case 15:
+ case 16:
+ case 17:
+ case 18:
+ case 19:
+ yy.setC4Type($$[$0 - 3]);
+ break;
+ case 26:
+ yy.setTitle($$[$0].substring(6));
+ this.$ = $$[$0].substring(6);
+ break;
+ case 27:
+ yy.setAccDescription($$[$0].substring(15));
+ this.$ = $$[$0].substring(15);
+ break;
+ case 28:
+ this.$ = $$[$0].trim();
+ yy.setTitle(this.$);
+ break;
+ case 29:
+ case 30:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 35:
+ case 36:
+ $$[$0].splice(2, 0, "ENTERPRISE");
+ yy.addPersonOrSystemBoundary(...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 37:
+ yy.addPersonOrSystemBoundary(...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 38:
+ $$[$0].splice(2, 0, "CONTAINER");
+ yy.addContainerBoundary(...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 39:
+ yy.addDeploymentNode("node", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 40:
+ yy.addDeploymentNode("nodeL", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 41:
+ yy.addDeploymentNode("nodeR", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 42:
+ yy.popBoundaryParseStack();
+ break;
+ case 46:
+ yy.addPersonOrSystem("person", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 47:
+ yy.addPersonOrSystem("external_person", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 48:
+ yy.addPersonOrSystem("system", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 49:
+ yy.addPersonOrSystem("system_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 50:
+ yy.addPersonOrSystem("system_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 51:
+ yy.addPersonOrSystem("external_system", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 52:
+ yy.addPersonOrSystem("external_system_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 53:
+ yy.addPersonOrSystem("external_system_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 54:
+ yy.addContainer("container", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 55:
+ yy.addContainer("container_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 56:
+ yy.addContainer("container_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 57:
+ yy.addContainer("external_container", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 58:
+ yy.addContainer("external_container_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 59:
+ yy.addContainer("external_container_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 60:
+ yy.addComponent("component", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 61:
+ yy.addComponent("component_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 62:
+ yy.addComponent("component_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 63:
+ yy.addComponent("external_component", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 64:
+ yy.addComponent("external_component_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 65:
+ yy.addComponent("external_component_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 67:
+ yy.addRel("rel", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 68:
+ yy.addRel("birel", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 69:
+ yy.addRel("rel_u", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 70:
+ yy.addRel("rel_d", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 71:
+ yy.addRel("rel_l", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 72:
+ yy.addRel("rel_r", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 73:
+ yy.addRel("rel_b", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 74:
+ $$[$0].splice(0, 1);
+ yy.addRel("rel", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 75:
+ yy.updateElStyle("update_el_style", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 76:
+ yy.updateRelStyle("update_rel_style", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 77:
+ yy.updateLayoutConfig("update_layout_config", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 78:
+ this.$ = [$$[$0]];
+ break;
+ case 79:
+ $$[$0].unshift($$[$0 - 1]);
+ this.$ = $$[$0];
+ break;
+ case 80:
+ case 82:
+ this.$ = $$[$0].trim();
+ break;
+ case 81:
+ let kv = {};
+ kv[$$[$0 - 1].trim()] = $$[$0].trim();
+ this.$ = kv;
+ break;
+ case 83:
+ this.$ = "";
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: $V0, 8: $V1, 9: $V2, 10: $V3, 11: 5, 12: 10, 18: $V4, 22: $V5, 25: $V6, 26: $V7, 27: $V8, 28: $V9 }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 3: 17, 4: 2, 5: 3, 6: 4, 7: $V0, 8: $V1, 9: $V2, 10: $V3, 11: 5, 12: 10, 18: $V4, 22: $V5, 25: $V6, 26: $V7, 27: $V8, 28: $V9 }, { 1: [2, 8] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 1: [2, 7] }, { 13: 18, 19: [1, 19] }, { 15: [1, 20] }, { 15: [1, 21] }, { 15: [1, 22] }, { 15: [1, 23] }, { 15: [1, 24] }, { 19: [2, 11] }, { 1: [2, 3] }, { 14: 25, 16: [1, 26], 21: $Va }, o([16, 21], [2, 12]), { 23: 28, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 79, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 80, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 81, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 82, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 15: [1, 83] }, { 17: 84, 20: [1, 85] }, { 15: [2, 14] }, { 24: [1, 86] }, o($VS, [2, 20], { 53: 32, 39: 58, 40: 70, 42: 71, 30: 87, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }), o($VS, [2, 21]), o($VT, [2, 23], { 15: [1, 88] }), o($VS, [2, 43], { 15: [1, 89] }), o($VU, [2, 26]), o($VU, [2, 27]), { 35: [1, 90] }, { 37: [1, 91] }, o($VU, [2, 30]), { 45: 92, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 98, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 99, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 100, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 101, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 102, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 103, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 104, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 105, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 106, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 107, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 108, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 109, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 110, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 111, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 112, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 113, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 114, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 115, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 116, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, o($VZ, [2, 66]), { 45: 117, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 118, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 119, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 120, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 121, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 122, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 123, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 124, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 125, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 126, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 127, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 30: 128, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 15: [1, 130], 43: [1, 129] }, { 45: 131, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 132, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 133, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 134, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 135, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 136, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 137, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 24: [1, 138] }, { 24: [1, 139] }, { 24: [1, 140] }, { 24: [1, 141] }, o($V_, [2, 9]), { 14: 142, 21: $Va }, { 21: [2, 13] }, { 1: [2, 15] }, o($VS, [2, 22]), o($VT, [2, 24], { 31: 31, 29: 143, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf }), o($VS, [2, 44], { 29: 29, 30: 30, 31: 31, 53: 32, 39: 58, 40: 70, 42: 71, 23: 144, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }), o($VU, [2, 28]), o($VU, [2, 29]), o($VZ, [2, 46]), o($V$, [2, 78], { 85: 93, 45: 145, 86: $VV, 87: $VW, 89: $VX, 90: $VY }), o($V01, [2, 80]), { 88: [1, 146] }, o($V01, [2, 82]), o($V01, [2, 83]), o($VZ, [2, 47]), o($VZ, [2, 48]), o($VZ, [2, 49]), o($VZ, [2, 50]), o($VZ, [2, 51]), o($VZ, [2, 52]), o($VZ, [2, 53]), o($VZ, [2, 54]), o($VZ, [2, 55]), o($VZ, [2, 56]), o($VZ, [2, 57]), o($VZ, [2, 58]), o($VZ, [2, 59]), o($VZ, [2, 60]), o($VZ, [2, 61]), o($VZ, [2, 62]), o($VZ, [2, 63]), o($VZ, [2, 64]), o($VZ, [2, 65]), o($VZ, [2, 67]), o($VZ, [2, 68]), o($VZ, [2, 69]), o($VZ, [2, 70]), o($VZ, [2, 71]), o($VZ, [2, 72]), o($VZ, [2, 73]), o($VZ, [2, 74]), o($VZ, [2, 75]), o($VZ, [2, 76]), o($VZ, [2, 77]), { 41: 147, 52: [1, 148] }, { 15: [1, 149] }, { 43: [1, 150] }, o($V11, [2, 35]), o($V11, [2, 36]), o($V11, [2, 37]), o($V11, [2, 38]), o($V11, [2, 39]), o($V11, [2, 40]), o($V11, [2, 41]), { 1: [2, 16] }, { 1: [2, 17] }, { 1: [2, 18] }, { 1: [2, 19] }, { 15: [1, 151] }, o($VT, [2, 25]), o($VS, [2, 45]), o($V$, [2, 79]), o($V01, [2, 81]), o($VZ, [2, 31]), o($VZ, [2, 42]), o($V21, [2, 32]), o($V21, [2, 33], { 15: [1, 152] }), o($V_, [2, 10]), o($V21, [2, 34])],
+ defaultActions: { 2: [2, 1], 3: [2, 2], 5: [2, 8], 6: [2, 4], 7: [2, 5], 8: [2, 6], 9: [2, 7], 16: [2, 11], 17: [2, 3], 27: [2, 14], 85: [2, 13], 86: [2, 15], 138: [2, 16], 139: [2, 17], 140: [2, 18], 141: [2, 19] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c2 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c2 + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: {},
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 18;
+ case 1:
+ return 7;
+ case 2:
+ return 8;
+ case 3:
+ return 9;
+ case 4:
+ return 10;
+ case 5:
+ this.begin("type_directive");
+ return 19;
+ case 6:
+ this.popState();
+ this.begin("arg_directive");
+ return 16;
+ case 7:
+ this.popState();
+ this.popState();
+ return 21;
+ case 8:
+ return 20;
+ case 9:
+ return 32;
+ case 10:
+ return 33;
+ case 11:
+ this.begin("acc_title");
+ return 34;
+ case 12:
+ this.popState();
+ return "acc_title_value";
+ case 13:
+ this.begin("acc_descr");
+ return 36;
+ case 14:
+ this.popState();
+ return "acc_descr_value";
+ case 15:
+ this.begin("acc_descr_multiline");
+ break;
+ case 16:
+ this.popState();
+ break;
+ case 17:
+ return "acc_descr_multiline_value";
+ case 18:
+ break;
+ case 19:
+ c;
+ break;
+ case 20:
+ return 15;
+ case 21:
+ break;
+ case 22:
+ return 22;
+ case 23:
+ return 25;
+ case 24:
+ return 26;
+ case 25:
+ return 27;
+ case 26:
+ return 28;
+ case 27:
+ this.begin("person_ext");
+ return 55;
+ case 28:
+ this.begin("person");
+ return 54;
+ case 29:
+ this.begin("system_ext_queue");
+ return 61;
+ case 30:
+ this.begin("system_ext_db");
+ return 60;
+ case 31:
+ this.begin("system_ext");
+ return 59;
+ case 32:
+ this.begin("system_queue");
+ return 58;
+ case 33:
+ this.begin("system_db");
+ return 57;
+ case 34:
+ this.begin("system");
+ return 56;
+ case 35:
+ this.begin("boundary");
+ return 47;
+ case 36:
+ this.begin("enterprise_boundary");
+ return 44;
+ case 37:
+ this.begin("system_boundary");
+ return 46;
+ case 38:
+ this.begin("container_ext_queue");
+ return 67;
+ case 39:
+ this.begin("container_ext_db");
+ return 66;
+ case 40:
+ this.begin("container_ext");
+ return 65;
+ case 41:
+ this.begin("container_queue");
+ return 64;
+ case 42:
+ this.begin("container_db");
+ return 63;
+ case 43:
+ this.begin("container");
+ return 62;
+ case 44:
+ this.begin("container_boundary");
+ return 48;
+ case 45:
+ this.begin("component_ext_queue");
+ return 73;
+ case 46:
+ this.begin("component_ext_db");
+ return 72;
+ case 47:
+ this.begin("component_ext");
+ return 71;
+ case 48:
+ this.begin("component_queue");
+ return 70;
+ case 49:
+ this.begin("component_db");
+ return 69;
+ case 50:
+ this.begin("component");
+ return 68;
+ case 51:
+ this.begin("node");
+ return 49;
+ case 52:
+ this.begin("node");
+ return 49;
+ case 53:
+ this.begin("node_l");
+ return 50;
+ case 54:
+ this.begin("node_r");
+ return 51;
+ case 55:
+ this.begin("rel");
+ return 74;
+ case 56:
+ this.begin("birel");
+ return 75;
+ case 57:
+ this.begin("rel_u");
+ return 76;
+ case 58:
+ this.begin("rel_u");
+ return 76;
+ case 59:
+ this.begin("rel_d");
+ return 77;
+ case 60:
+ this.begin("rel_d");
+ return 77;
+ case 61:
+ this.begin("rel_l");
+ return 78;
+ case 62:
+ this.begin("rel_l");
+ return 78;
+ case 63:
+ this.begin("rel_r");
+ return 79;
+ case 64:
+ this.begin("rel_r");
+ return 79;
+ case 65:
+ this.begin("rel_b");
+ return 80;
+ case 66:
+ this.begin("rel_index");
+ return 81;
+ case 67:
+ this.begin("update_el_style");
+ return 82;
+ case 68:
+ this.begin("update_rel_style");
+ return 83;
+ case 69:
+ this.begin("update_layout_config");
+ return 84;
+ case 70:
+ return "EOF_IN_STRUCT";
+ case 71:
+ this.begin("attribute");
+ return "ATTRIBUTE_EMPTY";
+ case 72:
+ this.begin("attribute");
+ break;
+ case 73:
+ this.popState();
+ this.popState();
+ break;
+ case 74:
+ return 90;
+ case 75:
+ break;
+ case 76:
+ return 90;
+ case 77:
+ this.begin("string");
+ break;
+ case 78:
+ this.popState();
+ break;
+ case 79:
+ return "STR";
+ case 80:
+ this.begin("string_kv");
+ break;
+ case 81:
+ this.begin("string_kv_key");
+ return "STR_KEY";
+ case 82:
+ this.popState();
+ this.begin("string_kv_value");
+ break;
+ case 83:
+ return "STR_VALUE";
+ case 84:
+ this.popState();
+ this.popState();
+ break;
+ case 85:
+ return "STR";
+ case 86:
+ return "LBRACE";
+ case 87:
+ return "RBRACE";
+ case 88:
+ return "SPACE";
+ case 89:
+ return "EOL";
+ case 90:
+ return 24;
+ }
+ },
+ rules: [/^(?:%%\{)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:title\s[^#\n;]+)/, /^(?:accDescription\s[^#\n;]+)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:C4Context\b)/, /^(?:C4Container\b)/, /^(?:C4Component\b)/, /^(?:C4Dynamic\b)/, /^(?:C4Deployment\b)/, /^(?:Person_Ext\b)/, /^(?:Person\b)/, /^(?:SystemQueue_Ext\b)/, /^(?:SystemDb_Ext\b)/, /^(?:System_Ext\b)/, /^(?:SystemQueue\b)/, /^(?:SystemDb\b)/, /^(?:System\b)/, /^(?:Boundary\b)/, /^(?:Enterprise_Boundary\b)/, /^(?:System_Boundary\b)/, /^(?:ContainerQueue_Ext\b)/, /^(?:ContainerDb_Ext\b)/, /^(?:Container_Ext\b)/, /^(?:ContainerQueue\b)/, /^(?:ContainerDb\b)/, /^(?:Container\b)/, /^(?:Container_Boundary\b)/, /^(?:ComponentQueue_Ext\b)/, /^(?:ComponentDb_Ext\b)/, /^(?:Component_Ext\b)/, /^(?:ComponentQueue\b)/, /^(?:ComponentDb\b)/, /^(?:Component\b)/, /^(?:Deployment_Node\b)/, /^(?:Node\b)/, /^(?:Node_L\b)/, /^(?:Node_R\b)/, /^(?:Rel\b)/, /^(?:BiRel\b)/, /^(?:Rel_Up\b)/, /^(?:Rel_U\b)/, /^(?:Rel_Down\b)/, /^(?:Rel_D\b)/, /^(?:Rel_Left\b)/, /^(?:Rel_L\b)/, /^(?:Rel_Right\b)/, /^(?:Rel_R\b)/, /^(?:Rel_Back\b)/, /^(?:RelIndex\b)/, /^(?:UpdateElementStyle\b)/, /^(?:UpdateRelStyle\b)/, /^(?:UpdateLayoutConfig\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*["]["])/, /^(?:[ ]*["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[ ]*[\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:[^,]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[\s]+)/, /^(?:[\n\r]+)/, /^(?:$)/],
+ conditions: { "acc_descr_multiline": { "rules": [16, 17], "inclusive": false }, "acc_descr": { "rules": [14], "inclusive": false }, "acc_title": { "rules": [12], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [7, 8], "inclusive": false }, "type_directive": { "rules": [6, 7], "inclusive": false }, "open_directive": { "rules": [5], "inclusive": false }, "string_kv_value": { "rules": [83, 84], "inclusive": false }, "string_kv_key": { "rules": [82], "inclusive": false }, "string_kv": { "rules": [81], "inclusive": false }, "string": { "rules": [78, 79], "inclusive": false }, "attribute": { "rules": [73, 74, 75, 76, 77, 80, 85], "inclusive": false }, "update_layout_config": { "rules": [70, 71, 72, 73], "inclusive": false }, "update_rel_style": { "rules": [70, 71, 72, 73], "inclusive": false }, "update_el_style": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_b": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_r": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_l": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_d": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_u": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_bi": { "rules": [], "inclusive": false }, "rel": { "rules": [70, 71, 72, 73], "inclusive": false }, "node_r": { "rules": [70, 71, 72, 73], "inclusive": false }, "node_l": { "rules": [70, 71, 72, 73], "inclusive": false }, "node": { "rules": [70, 71, 72, 73], "inclusive": false }, "index": { "rules": [], "inclusive": false }, "rel_index": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_ext_queue": { "rules": [], "inclusive": false }, "component_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "component": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_ext_queue": { "rules": [], "inclusive": false }, "container_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "container": { "rules": [70, 71, 72, 73], "inclusive": false }, "birel": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "enterprise_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "system": { "rules": [70, 71, 72, 73], "inclusive": false }, "person_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "person": { "rules": [70, 71, 72, 73], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 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, 86, 87, 88, 89, 90], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const c4Parser = parser;
+let c4ShapeArray = [];
+let boundaryParseStack = [""];
+let currentBoundaryParse = "global";
+let parentBoundaryParse = "";
+let boundarys = [
+ {
+ alias: "global",
+ label: { text: "global" },
+ type: { text: "global" },
+ tags: null,
+ link: null,
+ parentBoundary: ""
+ }
+];
+let rels = [];
+let title = "";
+let wrapEnabled = false;
+let c4ShapeInRow$1 = 4;
+let c4BoundaryInRow$1 = 2;
+var c4Type;
+const getC4Type = function() {
+ return c4Type;
+};
+const setC4Type = function(c4TypeParam) {
+ let sanitizedText = sanitizeText(c4TypeParam, getConfig());
+ c4Type = sanitizedText;
+};
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const addRel = function(type, from, to, label, techn, descr, sprite, tags, link) {
+ if (type === void 0 || type === null || from === void 0 || from === null || to === void 0 || to === null || label === void 0 || label === null) {
+ return;
+ }
+ let rel = {};
+ const old = rels.find((rel2) => rel2.from === from && rel2.to === to);
+ if (old) {
+ rel = old;
+ } else {
+ rels.push(rel);
+ }
+ rel.type = type;
+ rel.from = from;
+ rel.to = to;
+ rel.label = { text: label };
+ if (techn === void 0 || techn === null) {
+ rel.techn = { text: "" };
+ } else {
+ if (typeof techn === "object") {
+ let [key, value] = Object.entries(techn)[0];
+ rel[key] = { text: value };
+ } else {
+ rel.techn = { text: techn };
+ }
+ }
+ if (descr === void 0 || descr === null) {
+ rel.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value] = Object.entries(descr)[0];
+ rel[key] = { text: value };
+ } else {
+ rel.descr = { text: descr };
+ }
+ }
+ if (typeof sprite === "object") {
+ let [key, value] = Object.entries(sprite)[0];
+ rel[key] = value;
+ } else {
+ rel.sprite = sprite;
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ rel[key] = value;
+ } else {
+ rel.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ rel[key] = value;
+ } else {
+ rel.link = link;
+ }
+ rel.wrap = autoWrap();
+};
+const addPersonOrSystem = function(typeC4Shape, alias, label, descr, sprite, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let personOrSystem = {};
+ const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias);
+ if (old && alias === old.alias) {
+ personOrSystem = old;
+ } else {
+ personOrSystem.alias = alias;
+ c4ShapeArray.push(personOrSystem);
+ }
+ if (label === void 0 || label === null) {
+ personOrSystem.label = { text: "" };
+ } else {
+ personOrSystem.label = { text: label };
+ }
+ if (descr === void 0 || descr === null) {
+ personOrSystem.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value] = Object.entries(descr)[0];
+ personOrSystem[key] = { text: value };
+ } else {
+ personOrSystem.descr = { text: descr };
+ }
+ }
+ if (typeof sprite === "object") {
+ let [key, value] = Object.entries(sprite)[0];
+ personOrSystem[key] = value;
+ } else {
+ personOrSystem.sprite = sprite;
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ personOrSystem[key] = value;
+ } else {
+ personOrSystem.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ personOrSystem[key] = value;
+ } else {
+ personOrSystem.link = link;
+ }
+ personOrSystem.typeC4Shape = { text: typeC4Shape };
+ personOrSystem.parentBoundary = currentBoundaryParse;
+ personOrSystem.wrap = autoWrap();
+};
+const addContainer = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let container = {};
+ const old = c4ShapeArray.find((container2) => container2.alias === alias);
+ if (old && alias === old.alias) {
+ container = old;
+ } else {
+ container.alias = alias;
+ c4ShapeArray.push(container);
+ }
+ if (label === void 0 || label === null) {
+ container.label = { text: "" };
+ } else {
+ container.label = { text: label };
+ }
+ if (techn === void 0 || techn === null) {
+ container.techn = { text: "" };
+ } else {
+ if (typeof techn === "object") {
+ let [key, value] = Object.entries(techn)[0];
+ container[key] = { text: value };
+ } else {
+ container.techn = { text: techn };
+ }
+ }
+ if (descr === void 0 || descr === null) {
+ container.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value] = Object.entries(descr)[0];
+ container[key] = { text: value };
+ } else {
+ container.descr = { text: descr };
+ }
+ }
+ if (typeof sprite === "object") {
+ let [key, value] = Object.entries(sprite)[0];
+ container[key] = value;
+ } else {
+ container.sprite = sprite;
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ container[key] = value;
+ } else {
+ container.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ container[key] = value;
+ } else {
+ container.link = link;
+ }
+ container.wrap = autoWrap();
+ container.typeC4Shape = { text: typeC4Shape };
+ container.parentBoundary = currentBoundaryParse;
+};
+const addComponent = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let component = {};
+ const old = c4ShapeArray.find((component2) => component2.alias === alias);
+ if (old && alias === old.alias) {
+ component = old;
+ } else {
+ component.alias = alias;
+ c4ShapeArray.push(component);
+ }
+ if (label === void 0 || label === null) {
+ component.label = { text: "" };
+ } else {
+ component.label = { text: label };
+ }
+ if (techn === void 0 || techn === null) {
+ component.techn = { text: "" };
+ } else {
+ if (typeof techn === "object") {
+ let [key, value] = Object.entries(techn)[0];
+ component[key] = { text: value };
+ } else {
+ component.techn = { text: techn };
+ }
+ }
+ if (descr === void 0 || descr === null) {
+ component.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value] = Object.entries(descr)[0];
+ component[key] = { text: value };
+ } else {
+ component.descr = { text: descr };
+ }
+ }
+ if (typeof sprite === "object") {
+ let [key, value] = Object.entries(sprite)[0];
+ component[key] = value;
+ } else {
+ component.sprite = sprite;
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ component[key] = value;
+ } else {
+ component.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ component[key] = value;
+ } else {
+ component.link = link;
+ }
+ component.wrap = autoWrap();
+ component.typeC4Shape = { text: typeC4Shape };
+ component.parentBoundary = currentBoundaryParse;
+};
+const addPersonOrSystemBoundary = function(alias, label, type, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let boundary = {};
+ const old = boundarys.find((boundary2) => boundary2.alias === alias);
+ if (old && alias === old.alias) {
+ boundary = old;
+ } else {
+ boundary.alias = alias;
+ boundarys.push(boundary);
+ }
+ if (label === void 0 || label === null) {
+ boundary.label = { text: "" };
+ } else {
+ boundary.label = { text: label };
+ }
+ if (type === void 0 || type === null) {
+ boundary.type = { text: "system" };
+ } else {
+ if (typeof type === "object") {
+ let [key, value] = Object.entries(type)[0];
+ boundary[key] = { text: value };
+ } else {
+ boundary.type = { text: type };
+ }
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ boundary[key] = value;
+ } else {
+ boundary.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ boundary[key] = value;
+ } else {
+ boundary.link = link;
+ }
+ boundary.parentBoundary = currentBoundaryParse;
+ boundary.wrap = autoWrap();
+ parentBoundaryParse = currentBoundaryParse;
+ currentBoundaryParse = alias;
+ boundaryParseStack.push(parentBoundaryParse);
+};
+const addContainerBoundary = function(alias, label, type, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let boundary = {};
+ const old = boundarys.find((boundary2) => boundary2.alias === alias);
+ if (old && alias === old.alias) {
+ boundary = old;
+ } else {
+ boundary.alias = alias;
+ boundarys.push(boundary);
+ }
+ if (label === void 0 || label === null) {
+ boundary.label = { text: "" };
+ } else {
+ boundary.label = { text: label };
+ }
+ if (type === void 0 || type === null) {
+ boundary.type = { text: "container" };
+ } else {
+ if (typeof type === "object") {
+ let [key, value] = Object.entries(type)[0];
+ boundary[key] = { text: value };
+ } else {
+ boundary.type = { text: type };
+ }
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ boundary[key] = value;
+ } else {
+ boundary.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ boundary[key] = value;
+ } else {
+ boundary.link = link;
+ }
+ boundary.parentBoundary = currentBoundaryParse;
+ boundary.wrap = autoWrap();
+ parentBoundaryParse = currentBoundaryParse;
+ currentBoundaryParse = alias;
+ boundaryParseStack.push(parentBoundaryParse);
+};
+const addDeploymentNode = function(nodeType, alias, label, type, descr, sprite, tags, link) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let boundary = {};
+ const old = boundarys.find((boundary2) => boundary2.alias === alias);
+ if (old && alias === old.alias) {
+ boundary = old;
+ } else {
+ boundary.alias = alias;
+ boundarys.push(boundary);
+ }
+ if (label === void 0 || label === null) {
+ boundary.label = { text: "" };
+ } else {
+ boundary.label = { text: label };
+ }
+ if (type === void 0 || type === null) {
+ boundary.type = { text: "node" };
+ } else {
+ if (typeof type === "object") {
+ let [key, value] = Object.entries(type)[0];
+ boundary[key] = { text: value };
+ } else {
+ boundary.type = { text: type };
+ }
+ }
+ if (descr === void 0 || descr === null) {
+ boundary.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value] = Object.entries(descr)[0];
+ boundary[key] = { text: value };
+ } else {
+ boundary.descr = { text: descr };
+ }
+ }
+ if (typeof tags === "object") {
+ let [key, value] = Object.entries(tags)[0];
+ boundary[key] = value;
+ } else {
+ boundary.tags = tags;
+ }
+ if (typeof link === "object") {
+ let [key, value] = Object.entries(link)[0];
+ boundary[key] = value;
+ } else {
+ boundary.link = link;
+ }
+ boundary.nodeType = nodeType;
+ boundary.parentBoundary = currentBoundaryParse;
+ boundary.wrap = autoWrap();
+ parentBoundaryParse = currentBoundaryParse;
+ currentBoundaryParse = alias;
+ boundaryParseStack.push(parentBoundaryParse);
+};
+const popBoundaryParseStack = function() {
+ currentBoundaryParse = parentBoundaryParse;
+ boundaryParseStack.pop();
+ parentBoundaryParse = boundaryParseStack.pop();
+ boundaryParseStack.push(parentBoundaryParse);
+};
+const updateElStyle = function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {
+ let old = c4ShapeArray.find((element) => element.alias === elementName);
+ if (old === void 0) {
+ old = boundarys.find((element) => element.alias === elementName);
+ if (old === void 0) {
+ return;
+ }
+ }
+ if (bgColor !== void 0 && bgColor !== null) {
+ if (typeof bgColor === "object") {
+ let [key, value] = Object.entries(bgColor)[0];
+ old[key] = value;
+ } else {
+ old.bgColor = bgColor;
+ }
+ }
+ if (fontColor !== void 0 && fontColor !== null) {
+ if (typeof fontColor === "object") {
+ let [key, value] = Object.entries(fontColor)[0];
+ old[key] = value;
+ } else {
+ old.fontColor = fontColor;
+ }
+ }
+ if (borderColor !== void 0 && borderColor !== null) {
+ if (typeof borderColor === "object") {
+ let [key, value] = Object.entries(borderColor)[0];
+ old[key] = value;
+ } else {
+ old.borderColor = borderColor;
+ }
+ }
+ if (shadowing !== void 0 && shadowing !== null) {
+ if (typeof shadowing === "object") {
+ let [key, value] = Object.entries(shadowing)[0];
+ old[key] = value;
+ } else {
+ old.shadowing = shadowing;
+ }
+ }
+ if (shape !== void 0 && shape !== null) {
+ if (typeof shape === "object") {
+ let [key, value] = Object.entries(shape)[0];
+ old[key] = value;
+ } else {
+ old.shape = shape;
+ }
+ }
+ if (sprite !== void 0 && sprite !== null) {
+ if (typeof sprite === "object") {
+ let [key, value] = Object.entries(sprite)[0];
+ old[key] = value;
+ } else {
+ old.sprite = sprite;
+ }
+ }
+ if (techn !== void 0 && techn !== null) {
+ if (typeof techn === "object") {
+ let [key, value] = Object.entries(techn)[0];
+ old[key] = value;
+ } else {
+ old.techn = techn;
+ }
+ }
+ if (legendText !== void 0 && legendText !== null) {
+ if (typeof legendText === "object") {
+ let [key, value] = Object.entries(legendText)[0];
+ old[key] = value;
+ } else {
+ old.legendText = legendText;
+ }
+ }
+ if (legendSprite !== void 0 && legendSprite !== null) {
+ if (typeof legendSprite === "object") {
+ let [key, value] = Object.entries(legendSprite)[0];
+ old[key] = value;
+ } else {
+ old.legendSprite = legendSprite;
+ }
+ }
+};
+const updateRelStyle = function(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) {
+ const old = rels.find((rel) => rel.from === from && rel.to === to);
+ if (old === void 0) {
+ return;
+ }
+ if (textColor !== void 0 && textColor !== null) {
+ if (typeof textColor === "object") {
+ let [key, value] = Object.entries(textColor)[0];
+ old[key] = value;
+ } else {
+ old.textColor = textColor;
+ }
+ }
+ if (lineColor !== void 0 && lineColor !== null) {
+ if (typeof lineColor === "object") {
+ let [key, value] = Object.entries(lineColor)[0];
+ old[key] = value;
+ } else {
+ old.lineColor = lineColor;
+ }
+ }
+ if (offsetX !== void 0 && offsetX !== null) {
+ if (typeof offsetX === "object") {
+ let [key, value] = Object.entries(offsetX)[0];
+ old[key] = parseInt(value);
+ } else {
+ old.offsetX = parseInt(offsetX);
+ }
+ }
+ if (offsetY !== void 0 && offsetY !== null) {
+ if (typeof offsetY === "object") {
+ let [key, value] = Object.entries(offsetY)[0];
+ old[key] = parseInt(value);
+ } else {
+ old.offsetY = parseInt(offsetY);
+ }
+ }
+};
+const updateLayoutConfig = function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {
+ let c4ShapeInRowValue = c4ShapeInRow$1;
+ let c4BoundaryInRowValue = c4BoundaryInRow$1;
+ if (typeof c4ShapeInRowParam === "object") {
+ const value = Object.values(c4ShapeInRowParam)[0];
+ c4ShapeInRowValue = parseInt(value);
+ } else {
+ c4ShapeInRowValue = parseInt(c4ShapeInRowParam);
+ }
+ if (typeof c4BoundaryInRowParam === "object") {
+ const value = Object.values(c4BoundaryInRowParam)[0];
+ c4BoundaryInRowValue = parseInt(value);
+ } else {
+ c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);
+ }
+ if (c4ShapeInRowValue >= 1) {
+ c4ShapeInRow$1 = c4ShapeInRowValue;
+ }
+ if (c4BoundaryInRowValue >= 1) {
+ c4BoundaryInRow$1 = c4BoundaryInRowValue;
+ }
+};
+const getC4ShapeInRow = function() {
+ return c4ShapeInRow$1;
+};
+const getC4BoundaryInRow = function() {
+ return c4BoundaryInRow$1;
+};
+const getCurrentBoundaryParse = function() {
+ return currentBoundaryParse;
+};
+const getParentBoundaryParse = function() {
+ return parentBoundaryParse;
+};
+const getC4ShapeArray = function(parentBoundary) {
+ if (parentBoundary === void 0 || parentBoundary === null) {
+ return c4ShapeArray;
+ } else {
+ return c4ShapeArray.filter((personOrSystem) => {
+ return personOrSystem.parentBoundary === parentBoundary;
+ });
+ }
+};
+const getC4Shape = function(alias) {
+ return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);
+};
+const getC4ShapeKeys = function(parentBoundary) {
+ return Object.keys(getC4ShapeArray(parentBoundary));
+};
+const getBoundarys = function(parentBoundary) {
+ if (parentBoundary === void 0 || parentBoundary === null) {
+ return boundarys;
+ } else {
+ return boundarys.filter((boundary) => boundary.parentBoundary === parentBoundary);
+ }
+};
+const getRels = function() {
+ return rels;
+};
+const getTitle = function() {
+ return title;
+};
+const setWrap = function(wrapSetting) {
+ wrapEnabled = wrapSetting;
+};
+const autoWrap = function() {
+ return wrapEnabled;
+};
+const clear = function() {
+ c4ShapeArray = [];
+ boundarys = [
+ {
+ alias: "global",
+ label: { text: "global" },
+ type: { text: "global" },
+ tags: null,
+ link: null,
+ parentBoundary: ""
+ }
+ ];
+ parentBoundaryParse = "";
+ currentBoundaryParse = "global";
+ boundaryParseStack = [""];
+ rels = [];
+ boundaryParseStack = [""];
+ title = "";
+ wrapEnabled = false;
+ c4ShapeInRow$1 = 4;
+ c4BoundaryInRow$1 = 2;
+};
+const LINETYPE = {
+ 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,
+ SOLID_POINT: 24,
+ DOTTED_POINT: 25
+};
+const ARROWTYPE = {
+ FILLED: 0,
+ OPEN: 1
+};
+const PLACEMENT = {
+ LEFTOF: 0,
+ RIGHTOF: 1,
+ OVER: 2
+};
+const setTitle = function(txt) {
+ let sanitizedText = sanitizeText(txt, getConfig());
+ title = sanitizedText;
+};
+const c4Db = {
+ addPersonOrSystem,
+ addPersonOrSystemBoundary,
+ addContainer,
+ addContainerBoundary,
+ addComponent,
+ addDeploymentNode,
+ popBoundaryParseStack,
+ addRel,
+ updateElStyle,
+ updateRelStyle,
+ updateLayoutConfig,
+ autoWrap,
+ setWrap,
+ getC4ShapeArray,
+ getC4Shape,
+ getC4ShapeKeys,
+ getBoundarys,
+ getCurrentBoundaryParse,
+ getParentBoundaryParse,
+ getRels,
+ getTitle,
+ getC4Type,
+ getC4ShapeInRow,
+ getC4BoundaryInRow,
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ setAccDescription,
+ parseDirective,
+ getConfig: () => getConfig().c4,
+ clear,
+ LINETYPE,
+ ARROWTYPE,
+ PLACEMENT,
+ setTitle,
+ setC4Type
+ // apply,
+};
+const drawRect = function(elem, rectData) {
+ const rectElem = elem.append("rect");
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.y);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", rectData.width);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (rectData.attrs !== "undefined" && rectData.attrs !== null) {
+ for (let attrKey in rectData.attrs) {
+ rectElem.attr(attrKey, rectData.attrs[attrKey]);
+ }
+ }
+ if (rectData.class !== "undefined") {
+ rectElem.attr("class", rectData.class);
+ }
+ return rectElem;
+};
+const drawImage = function(elem, width, height, x, y, link) {
+ const imageElem = elem.append("image");
+ imageElem.attr("width", width);
+ imageElem.attr("height", height);
+ imageElem.attr("x", x);
+ imageElem.attr("y", y);
+ let sanitizedLink = link.startsWith("data:image/png;base64") ? link : sanitizeUrl_1(link);
+ imageElem.attr("xlink:href", sanitizedLink);
+};
+const drawRels$1 = (elem, rels2, conf2) => {
+ const relsElem = elem.append("g");
+ let i = 0;
+ for (let rel of rels2) {
+ let textColor = rel.textColor ? rel.textColor : "#444444";
+ let strokeColor = rel.lineColor ? rel.lineColor : "#444444";
+ let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;
+ let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;
+ let url = "";
+ if (i === 0) {
+ let line = relsElem.append("line");
+ line.attr("x1", rel.startPoint.x);
+ line.attr("y1", rel.startPoint.y);
+ line.attr("x2", rel.endPoint.x);
+ line.attr("y2", rel.endPoint.y);
+ line.attr("stroke-width", "1");
+ line.attr("stroke", strokeColor);
+ line.style("fill", "none");
+ if (rel.type !== "rel_b") {
+ line.attr("marker-end", "url(" + url + "#arrowhead)");
+ }
+ if (rel.type === "birel" || rel.type === "rel_b") {
+ line.attr("marker-start", "url(" + url + "#arrowend)");
+ }
+ i = -1;
+ } else {
+ let line = relsElem.append("path");
+ line.attr("fill", "none").attr("stroke-width", "1").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx", rel.startPoint.x).replaceAll("starty", rel.startPoint.y).replaceAll(
+ "controlx",
+ rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4
+ ).replaceAll("controly", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll("stopx", rel.endPoint.x).replaceAll("stopy", rel.endPoint.y)
+ );
+ if (rel.type !== "rel_b") {
+ line.attr("marker-end", "url(" + url + "#arrowhead)");
+ }
+ if (rel.type === "birel" || rel.type === "rel_b") {
+ line.attr("marker-start", "url(" + url + "#arrowend)");
+ }
+ }
+ let messageConf = conf2.messageFont();
+ _drawTextCandidateFunc(conf2)(
+ rel.label.text,
+ relsElem,
+ Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,
+ Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY,
+ rel.label.width,
+ rel.label.height,
+ { fill: textColor },
+ messageConf
+ );
+ if (rel.techn && rel.techn.text !== "") {
+ messageConf = conf2.messageFont();
+ _drawTextCandidateFunc(conf2)(
+ "[" + rel.techn.text + "]",
+ relsElem,
+ Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,
+ Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY,
+ Math.max(rel.label.width, rel.techn.width),
+ rel.techn.height,
+ { fill: textColor, "font-style": "italic" },
+ messageConf
+ );
+ }
+ }
+};
+const drawBoundary$1 = function(elem, boundary, conf2) {
+ const boundaryElem = elem.append("g");
+ let fillColor = boundary.bgColor ? boundary.bgColor : "none";
+ let strokeColor = boundary.borderColor ? boundary.borderColor : "#444444";
+ let fontColor = boundary.fontColor ? boundary.fontColor : "black";
+ let attrsValue = { "stroke-width": 1, "stroke-dasharray": "7.0,7.0" };
+ if (boundary.nodeType) {
+ attrsValue = { "stroke-width": 1 };
+ }
+ let rectData = {
+ x: boundary.x,
+ y: boundary.y,
+ fill: fillColor,
+ stroke: strokeColor,
+ width: boundary.width,
+ height: boundary.height,
+ rx: 2.5,
+ ry: 2.5,
+ attrs: attrsValue
+ };
+ drawRect(boundaryElem, rectData);
+ let boundaryConf = conf2.boundaryFont();
+ boundaryConf.fontWeight = "bold";
+ boundaryConf.fontSize = boundaryConf.fontSize + 2;
+ boundaryConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf2)(
+ boundary.label.text,
+ boundaryElem,
+ boundary.x,
+ boundary.y + boundary.label.Y,
+ boundary.width,
+ boundary.height,
+ { fill: "#444444" },
+ boundaryConf
+ );
+ if (boundary.type && boundary.type.text !== "") {
+ boundaryConf = conf2.boundaryFont();
+ boundaryConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf2)(
+ boundary.type.text,
+ boundaryElem,
+ boundary.x,
+ boundary.y + boundary.type.Y,
+ boundary.width,
+ boundary.height,
+ { fill: "#444444" },
+ boundaryConf
+ );
+ }
+ if (boundary.descr && boundary.descr.text !== "") {
+ boundaryConf = conf2.boundaryFont();
+ boundaryConf.fontSize = boundaryConf.fontSize - 2;
+ boundaryConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf2)(
+ boundary.descr.text,
+ boundaryElem,
+ boundary.x,
+ boundary.y + boundary.descr.Y,
+ boundary.width,
+ boundary.height,
+ { fill: "#444444" },
+ boundaryConf
+ );
+ }
+};
+const drawC4Shape = function(elem, c4Shape, conf2) {
+ var _a;
+ let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + "_bg_color"];
+ let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + "_border_color"];
+ let fontColor = c4Shape.fontColor ? c4Shape.fontColor : "#FFFFFF";
+ let personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
+ break;
+ case "external_person":
+ personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";
+ break;
+ }
+ const c4ShapeElem = elem.append("g");
+ c4ShapeElem.attr("class", "person-man");
+ const rect = getNoteRect();
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ case "system":
+ case "external_system":
+ case "container":
+ case "external_container":
+ case "component":
+ case "external_component":
+ rect.x = c4Shape.x;
+ rect.y = c4Shape.y;
+ rect.fill = fillColor;
+ rect.width = c4Shape.width;
+ rect.height = c4Shape.height;
+ rect.stroke = strokeColor;
+ rect.rx = 2.5;
+ rect.ry = 2.5;
+ rect.attrs = { "stroke-width": 0.5 };
+ drawRect(c4ShapeElem, rect);
+ break;
+ case "system_db":
+ case "external_system_db":
+ case "container_db":
+ case "external_container_db":
+ case "component_db":
+ case "external_component_db":
+ c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2).replaceAll("height", c4Shape.height)
+ );
+ c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2)
+ );
+ break;
+ case "system_queue":
+ case "external_system_queue":
+ case "container_queue":
+ case "external_container_queue":
+ case "component_queue":
+ case "external_component_queue":
+ c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("width", c4Shape.width).replaceAll("half", c4Shape.height / 2)
+ );
+ c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx", c4Shape.x + c4Shape.width).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.height / 2)
+ );
+ break;
+ }
+ let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text);
+ c4ShapeElem.append("text").attr("fill", fontColor).attr("font-family", c4ShapeFontConf.fontFamily).attr("font-size", c4ShapeFontConf.fontSize - 2).attr("font-style", "italic").attr("lengthAdjust", "spacing").attr("textLength", c4Shape.typeC4Shape.width).attr("x", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr("y", c4Shape.y + c4Shape.typeC4Shape.Y).text("<<" + c4Shape.typeC4Shape.text + ">>");
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ drawImage(
+ c4ShapeElem,
+ 48,
+ 48,
+ c4Shape.x + c4Shape.width / 2 - 24,
+ c4Shape.y + c4Shape.image.Y,
+ personImg
+ );
+ break;
+ }
+ let textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"]();
+ textFontConf.fontWeight = "bold";
+ textFontConf.fontSize = textFontConf.fontSize + 2;
+ textFontConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf2)(
+ c4Shape.label.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.label.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor },
+ textFontConf
+ );
+ textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"]();
+ textFontConf.fontColor = fontColor;
+ if (c4Shape.techn && ((_a = c4Shape.techn) == null ? void 0 : _a.text) !== "") {
+ _drawTextCandidateFunc(conf2)(
+ c4Shape.techn.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.techn.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor, "font-style": "italic" },
+ textFontConf
+ );
+ } else if (c4Shape.type && c4Shape.type.text !== "") {
+ _drawTextCandidateFunc(conf2)(
+ c4Shape.type.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.type.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor, "font-style": "italic" },
+ textFontConf
+ );
+ }
+ if (c4Shape.descr && c4Shape.descr.text !== "") {
+ textFontConf = conf2.personFont();
+ textFontConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf2)(
+ c4Shape.descr.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.descr.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor },
+ textFontConf
+ );
+ }
+ return c4Shape.height;
+};
+const insertDatabaseIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
+ );
+};
+const insertComputerIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
+ );
+};
+const insertClockIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
+ );
+};
+const insertArrowHead = function(elem) {
+ elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z");
+};
+const insertArrowEnd = function(elem) {
+ elem.append("defs").append("marker").attr("id", "arrowend").attr("refX", 1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 10 0 L 0 5 L 10 10 z");
+};
+const insertArrowFilledHead = function(elem) {
+ elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).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");
+};
+const insertDynamicNumber = function(elem) {
+ elem.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);
+};
+const insertArrowCrossHead = function(elem) {
+ const defs = elem.append("defs");
+ const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 16).attr("refY", 4);
+ marker.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");
+ marker.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");
+};
+const getNoteRect = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: "#EDF2AE",
+ stroke: "#666",
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+};
+const getC4ShapeFont = (cnf, typeC4Shape) => {
+ return {
+ fontFamily: cnf[typeC4Shape + "FontFamily"],
+ fontSize: cnf[typeC4Shape + "FontSize"],
+ fontWeight: cnf[typeC4Shape + "FontWeight"]
+ };
+};
+const _drawTextCandidateFunc = function() {
+ function byText(content, g, x, y, width, height, textAttrs) {
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text, textAttrs);
+ }
+ function byTspan(content, g, x, y, width, height, textAttrs, conf2) {
+ const { fontSize, fontFamily, fontWeight } = conf2;
+ const lines = content.split(common.lineBreakRegex);
+ for (let i = 0; i < lines.length; i++) {
+ const dy = i * fontSize - fontSize * (lines.length - 1) / 2;
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y).style("text-anchor", "middle").attr("dominant-baseline", "middle").style("font-size", fontSize).style("font-weight", fontWeight).style("font-family", fontFamily);
+ text.append("tspan").attr("dy", dy).text(lines[i]).attr("alignment-baseline", "mathematical");
+ _setTextAttrs(text, textAttrs);
+ }
+ }
+ function byFo(content, g, x, y, width, height, textAttrs, conf2) {
+ const s = g.append("switch");
+ const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height);
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, s, x, y, width, height, textAttrs, conf2);
+ _setTextAttrs(text, textAttrs);
+ }
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (fromTextAttrsDict.hasOwnProperty(key)) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ return function(conf2) {
+ return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
+ };
+}();
+const svgDraw = {
+ drawRect,
+ drawBoundary: drawBoundary$1,
+ drawC4Shape,
+ drawRels: drawRels$1,
+ drawImage,
+ insertArrowHead,
+ insertArrowEnd,
+ insertArrowFilledHead,
+ insertDynamicNumber,
+ insertArrowCrossHead,
+ insertDatabaseIcon,
+ insertComputerIcon,
+ insertClockIcon,
+ getNoteRect,
+ sanitizeUrl: sanitizeUrl_1
+ // TODO why is this exported?
+};
+let globalBoundaryMaxX = 0, globalBoundaryMaxY = 0;
+let c4ShapeInRow = 4;
+let c4BoundaryInRow = 2;
+parser.yy = c4Db;
+let conf = {};
+class Bounds {
+ constructor(diagObj) {
+ this.name = "";
+ this.data = {};
+ this.data.startx = void 0;
+ this.data.stopx = void 0;
+ this.data.starty = void 0;
+ this.data.stopy = void 0;
+ this.data.widthLimit = void 0;
+ this.nextData = {};
+ this.nextData.startx = void 0;
+ this.nextData.stopx = void 0;
+ this.nextData.starty = void 0;
+ this.nextData.stopy = void 0;
+ this.nextData.cnt = 0;
+ setConf(diagObj.db.getConfig());
+ }
+ setData(startx, stopx, starty, stopy) {
+ this.nextData.startx = this.data.startx = startx;
+ this.nextData.stopx = this.data.stopx = stopx;
+ this.nextData.starty = this.data.starty = starty;
+ this.nextData.stopy = this.data.stopy = stopy;
+ }
+ updateVal(obj, key, val, fun) {
+ if (obj[key] === void 0) {
+ obj[key] = val;
+ } else {
+ obj[key] = fun(val, obj[key]);
+ }
+ }
+ insert(c4Shape) {
+ this.nextData.cnt = this.nextData.cnt + 1;
+ let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2;
+ let _stopx = _startx + c4Shape.width;
+ let _starty = this.nextData.starty + c4Shape.margin * 2;
+ let _stopy = _starty + c4Shape.height;
+ if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow) {
+ _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;
+ _starty = this.nextData.stopy + c4Shape.margin * 2;
+ this.nextData.stopx = _stopx = _startx + c4Shape.width;
+ this.nextData.starty = this.nextData.stopy;
+ this.nextData.stopy = _stopy = _starty + c4Shape.height;
+ this.nextData.cnt = 1;
+ }
+ c4Shape.x = _startx;
+ c4Shape.y = _starty;
+ this.updateVal(this.data, "startx", _startx, Math.min);
+ this.updateVal(this.data, "starty", _starty, Math.min);
+ this.updateVal(this.data, "stopx", _stopx, Math.max);
+ this.updateVal(this.data, "stopy", _stopy, Math.max);
+ this.updateVal(this.nextData, "startx", _startx, Math.min);
+ this.updateVal(this.nextData, "starty", _starty, Math.min);
+ this.updateVal(this.nextData, "stopx", _stopx, Math.max);
+ this.updateVal(this.nextData, "stopy", _stopy, Math.max);
+ }
+ init(diagObj) {
+ this.name = "";
+ this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0,
+ widthLimit: void 0
+ };
+ this.nextData = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0,
+ cnt: 0
+ };
+ setConf(diagObj.db.getConfig());
+ }
+ bumpLastMargin(margin) {
+ this.data.stopx += margin;
+ this.data.stopy += margin;
+ }
+}
+const setConf = function(cnf) {
+ assignWithDepth(conf, cnf);
+ if (cnf.fontFamily) {
+ conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;
+ }
+ if (cnf.fontSize) {
+ conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;
+ }
+ if (cnf.fontWeight) {
+ conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;
+ }
+};
+const c4ShapeFont = (cnf, typeC4Shape) => {
+ return {
+ fontFamily: cnf[typeC4Shape + "FontFamily"],
+ fontSize: cnf[typeC4Shape + "FontSize"],
+ fontWeight: cnf[typeC4Shape + "FontWeight"]
+ };
+};
+const boundaryFont = (cnf) => {
+ return {
+ fontFamily: cnf.boundaryFontFamily,
+ fontSize: cnf.boundaryFontSize,
+ fontWeight: cnf.boundaryFontWeight
+ };
+};
+const messageFont = (cnf) => {
+ return {
+ fontFamily: cnf.messageFontFamily,
+ fontSize: cnf.messageFontSize,
+ fontWeight: cnf.messageFontWeight
+ };
+};
+function calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {
+ if (!c4Shape[textType].width) {
+ if (c4ShapeTextWrap) {
+ c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);
+ c4Shape[textType].textLines = c4Shape[textType].text.split(common.lineBreakRegex).length;
+ c4Shape[textType].width = textLimitWidth;
+ c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);
+ } else {
+ let lines = c4Shape[textType].text.split(common.lineBreakRegex);
+ c4Shape[textType].textLines = lines.length;
+ let lineHeight = 0;
+ c4Shape[textType].height = 0;
+ c4Shape[textType].width = 0;
+ for (const line of lines) {
+ c4Shape[textType].width = Math.max(
+ calculateTextWidth(line, textConf),
+ c4Shape[textType].width
+ );
+ lineHeight = calculateTextHeight(line, textConf);
+ c4Shape[textType].height = c4Shape[textType].height + lineHeight;
+ }
+ }
+ }
+}
+const drawBoundary = function(diagram2, boundary, bounds) {
+ boundary.x = bounds.data.startx;
+ boundary.y = bounds.data.starty;
+ boundary.width = bounds.data.stopx - bounds.data.startx;
+ boundary.height = bounds.data.stopy - bounds.data.starty;
+ boundary.label.y = conf.c4ShapeMargin - 35;
+ let boundaryTextWrap = boundary.wrap && conf.wrap;
+ let boundaryLabelConf = boundaryFont(conf);
+ boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;
+ boundaryLabelConf.fontWeight = "bold";
+ let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);
+ calcC4ShapeTextWH("label", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);
+ svgDraw.drawBoundary(diagram2, boundary, conf);
+};
+const drawC4ShapeArray = function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) {
+ let Y = 0;
+ for (const c4ShapeKey of c4ShapeKeys) {
+ Y = 0;
+ const c4Shape = c4ShapeArray2[c4ShapeKey];
+ let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;
+ c4Shape.typeC4Shape.width = calculateTextWidth(
+ "<<" + c4Shape.typeC4Shape.text + ">>",
+ c4ShapeTypeConf
+ );
+ c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;
+ c4Shape.typeC4Shape.Y = conf.c4ShapePadding;
+ Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;
+ c4Shape.image = { width: 0, height: 0, Y: 0 };
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ c4Shape.image.width = 48;
+ c4Shape.image.height = 48;
+ c4Shape.image.Y = Y;
+ Y = c4Shape.image.Y + c4Shape.image.height;
+ break;
+ }
+ if (c4Shape.sprite) {
+ c4Shape.image.width = 48;
+ c4Shape.image.height = 48;
+ c4Shape.image.Y = Y;
+ Y = c4Shape.image.Y + c4Shape.image.height;
+ }
+ let c4ShapeTextWrap = c4Shape.wrap && conf.wrap;
+ let textLimitWidth = conf.width - conf.c4ShapePadding * 2;
+ let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;
+ c4ShapeLabelConf.fontWeight = "bold";
+ calcC4ShapeTextWH("label", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);
+ c4Shape["label"].Y = Y + 8;
+ Y = c4Shape["label"].Y + c4Shape["label"].height;
+ if (c4Shape.type && c4Shape.type.text !== "") {
+ c4Shape.type.text = "[" + c4Shape.type.text + "]";
+ let c4ShapeTypeConf2 = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ calcC4ShapeTextWH("type", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth);
+ c4Shape["type"].Y = Y + 5;
+ Y = c4Shape["type"].Y + c4Shape["type"].height;
+ } else if (c4Shape.techn && c4Shape.techn.text !== "") {
+ c4Shape.techn.text = "[" + c4Shape.techn.text + "]";
+ let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text);
+ calcC4ShapeTextWH("techn", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);
+ c4Shape["techn"].Y = Y + 5;
+ Y = c4Shape["techn"].Y + c4Shape["techn"].height;
+ }
+ let rectHeight = Y;
+ let rectWidth = c4Shape.label.width;
+ if (c4Shape.descr && c4Shape.descr.text !== "") {
+ let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ calcC4ShapeTextWH("descr", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);
+ c4Shape["descr"].Y = Y + 20;
+ Y = c4Shape["descr"].Y + c4Shape["descr"].height;
+ rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);
+ rectHeight = Y - c4Shape["descr"].textLines * 5;
+ }
+ rectWidth = rectWidth + conf.c4ShapePadding;
+ c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width);
+ c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height);
+ c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin;
+ currentBounds.insert(c4Shape);
+ svgDraw.drawC4Shape(diagram2, c4Shape, conf);
+ }
+ currentBounds.bumpLastMargin(conf.c4ShapeMargin);
+};
+class Point {
+ constructor(x, y) {
+ this.x = x;
+ this.y = y;
+ }
+}
+let getIntersectPoint = function(fromNode, endPoint) {
+ let x1 = fromNode.x;
+ let y1 = fromNode.y;
+ let x2 = endPoint.x;
+ let y2 = endPoint.y;
+ let fromCenterX = x1 + fromNode.width / 2;
+ let fromCenterY = y1 + fromNode.height / 2;
+ let dx = Math.abs(x1 - x2);
+ let dy = Math.abs(y1 - y2);
+ let tanDYX = dy / dx;
+ let fromDYX = fromNode.height / fromNode.width;
+ let returnPoint = null;
+ if (y1 == y2 && x1 < x2) {
+ returnPoint = new Point(x1 + fromNode.width, fromCenterY);
+ } else if (y1 == y2 && x1 > x2) {
+ returnPoint = new Point(x1, fromCenterY);
+ } else if (x1 == x2 && y1 < y2) {
+ returnPoint = new Point(fromCenterX, y1 + fromNode.height);
+ } else if (x1 == x2 && y1 > y2) {
+ returnPoint = new Point(fromCenterX, y1);
+ }
+ if (x1 > x2 && y1 < y2) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point(x1, fromCenterY + tanDYX * fromNode.width / 2);
+ } else {
+ returnPoint = new Point(
+ fromCenterX - dx / dy * fromNode.height / 2,
+ y1 + fromNode.height
+ );
+ }
+ } else if (x1 < x2 && y1 < y2) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2);
+ } else {
+ returnPoint = new Point(
+ fromCenterX + dx / dy * fromNode.height / 2,
+ y1 + fromNode.height
+ );
+ }
+ } else if (x1 < x2 && y1 > y2) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2);
+ } else {
+ returnPoint = new Point(fromCenterX + fromNode.height / 2 * dx / dy, y1);
+ }
+ } else if (x1 > x2 && y1 > y2) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point(x1, fromCenterY - fromNode.width / 2 * tanDYX);
+ } else {
+ returnPoint = new Point(fromCenterX - fromNode.height / 2 * dx / dy, y1);
+ }
+ }
+ return returnPoint;
+};
+let getIntersectPoints = function(fromNode, endNode) {
+ let endIntersectPoint = { x: 0, y: 0 };
+ endIntersectPoint.x = endNode.x + endNode.width / 2;
+ endIntersectPoint.y = endNode.y + endNode.height / 2;
+ let startPoint = getIntersectPoint(fromNode, endIntersectPoint);
+ endIntersectPoint.x = fromNode.x + fromNode.width / 2;
+ endIntersectPoint.y = fromNode.y + fromNode.height / 2;
+ let endPoint = getIntersectPoint(endNode, endIntersectPoint);
+ return { startPoint, endPoint };
+};
+const drawRels = function(diagram2, rels2, getC4ShapeObj, diagObj) {
+ let i = 0;
+ for (let rel of rels2) {
+ i = i + 1;
+ let relTextWrap = rel.wrap && conf.wrap;
+ let relConf = messageFont(conf);
+ let diagramType = diagObj.db.getC4Type();
+ if (diagramType === "C4Dynamic") {
+ rel.label.text = i + ": " + rel.label.text;
+ }
+ let textLimitWidth = calculateTextWidth(rel.label.text, relConf);
+ calcC4ShapeTextWH("label", rel, relTextWrap, relConf, textLimitWidth);
+ if (rel.techn && rel.techn.text !== "") {
+ textLimitWidth = calculateTextWidth(rel.techn.text, relConf);
+ calcC4ShapeTextWH("techn", rel, relTextWrap, relConf, textLimitWidth);
+ }
+ if (rel.descr && rel.descr.text !== "") {
+ textLimitWidth = calculateTextWidth(rel.descr.text, relConf);
+ calcC4ShapeTextWH("descr", rel, relTextWrap, relConf, textLimitWidth);
+ }
+ let fromNode = getC4ShapeObj(rel.from);
+ let endNode = getC4ShapeObj(rel.to);
+ let points = getIntersectPoints(fromNode, endNode);
+ rel.startPoint = points.startPoint;
+ rel.endPoint = points.endPoint;
+ }
+ svgDraw.drawRels(diagram2, rels2, conf);
+};
+function drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) {
+ let currentBounds = new Bounds(diagObj);
+ currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundaries.length);
+ for (let [i, currentBoundary] of currentBoundaries.entries()) {
+ let Y = 0;
+ currentBoundary.image = { width: 0, height: 0, Y: 0 };
+ if (currentBoundary.sprite) {
+ currentBoundary.image.width = 48;
+ currentBoundary.image.height = 48;
+ currentBoundary.image.Y = Y;
+ Y = currentBoundary.image.Y + currentBoundary.image.height;
+ }
+ let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;
+ let currentBoundaryLabelConf = boundaryFont(conf);
+ currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;
+ currentBoundaryLabelConf.fontWeight = "bold";
+ calcC4ShapeTextWH(
+ "label",
+ currentBoundary,
+ currentBoundaryTextWrap,
+ currentBoundaryLabelConf,
+ currentBounds.data.widthLimit
+ );
+ currentBoundary["label"].Y = Y + 8;
+ Y = currentBoundary["label"].Y + currentBoundary["label"].height;
+ if (currentBoundary.type && currentBoundary.type.text !== "") {
+ currentBoundary.type.text = "[" + currentBoundary.type.text + "]";
+ let currentBoundaryTypeConf = boundaryFont(conf);
+ calcC4ShapeTextWH(
+ "type",
+ currentBoundary,
+ currentBoundaryTextWrap,
+ currentBoundaryTypeConf,
+ currentBounds.data.widthLimit
+ );
+ currentBoundary["type"].Y = Y + 5;
+ Y = currentBoundary["type"].Y + currentBoundary["type"].height;
+ }
+ if (currentBoundary.descr && currentBoundary.descr.text !== "") {
+ let currentBoundaryDescrConf = boundaryFont(conf);
+ currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;
+ calcC4ShapeTextWH(
+ "descr",
+ currentBoundary,
+ currentBoundaryTextWrap,
+ currentBoundaryDescrConf,
+ currentBounds.data.widthLimit
+ );
+ currentBoundary["descr"].Y = Y + 20;
+ Y = currentBoundary["descr"].Y + currentBoundary["descr"].height;
+ }
+ if (i == 0 || i % c4BoundaryInRow === 0) {
+ let _x = parentBounds.data.startx + conf.diagramMarginX;
+ let _y = parentBounds.data.stopy + conf.diagramMarginY + Y;
+ currentBounds.setData(_x, _x, _y, _y);
+ } else {
+ let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx;
+ let _y = currentBounds.data.starty;
+ currentBounds.setData(_x, _x, _y, _y);
+ }
+ currentBounds.name = currentBoundary.alias;
+ let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);
+ let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);
+ if (currentPersonOrSystemKeys.length > 0) {
+ drawC4ShapeArray(
+ currentBounds,
+ diagram2,
+ currentPersonOrSystemArray,
+ currentPersonOrSystemKeys
+ );
+ }
+ parentBoundaryAlias = currentBoundary.alias;
+ let nextCurrentBoundarys = diagObj.db.getBoundarys(parentBoundaryAlias);
+ if (nextCurrentBoundarys.length > 0) {
+ drawInsideBoundary(
+ diagram2,
+ parentBoundaryAlias,
+ currentBounds,
+ nextCurrentBoundarys,
+ diagObj
+ );
+ }
+ if (currentBoundary.alias !== "global") {
+ drawBoundary(diagram2, currentBoundary, currentBounds);
+ }
+ parentBounds.data.stopy = Math.max(
+ currentBounds.data.stopy + conf.c4ShapeMargin,
+ parentBounds.data.stopy
+ );
+ parentBounds.data.stopx = Math.max(
+ currentBounds.data.stopx + conf.c4ShapeMargin,
+ parentBounds.data.stopx
+ );
+ globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);
+ globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);
+ }
+}
+const draw = function(_text, id, _version, diagObj) {
+ conf = getConfig().c4;
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ let db = diagObj.db;
+ diagObj.db.setWrap(conf.wrap);
+ c4ShapeInRow = db.getC4ShapeInRow();
+ c4BoundaryInRow = db.getC4BoundaryInRow();
+ log.debug(`C:${JSON.stringify(conf, null, 2)}`);
+ const diagram2 = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : select(`[id="${id}"]`);
+ svgDraw.insertComputerIcon(diagram2);
+ svgDraw.insertDatabaseIcon(diagram2);
+ svgDraw.insertClockIcon(diagram2);
+ let screenBounds = new Bounds(diagObj);
+ screenBounds.setData(
+ conf.diagramMarginX,
+ conf.diagramMarginX,
+ conf.diagramMarginY,
+ conf.diagramMarginY
+ );
+ screenBounds.data.widthLimit = screen.availWidth;
+ globalBoundaryMaxX = conf.diagramMarginX;
+ globalBoundaryMaxY = conf.diagramMarginY;
+ const title2 = diagObj.db.getTitle();
+ let currentBoundaries = diagObj.db.getBoundarys("");
+ drawInsideBoundary(diagram2, "", screenBounds, currentBoundaries, diagObj);
+ svgDraw.insertArrowHead(diagram2);
+ svgDraw.insertArrowEnd(diagram2);
+ svgDraw.insertArrowCrossHead(diagram2);
+ svgDraw.insertArrowFilledHead(diagram2);
+ drawRels(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);
+ screenBounds.data.stopx = globalBoundaryMaxX;
+ screenBounds.data.stopy = globalBoundaryMaxY;
+ const box = screenBounds.data;
+ let boxHeight = box.stopy - box.starty;
+ let height = boxHeight + 2 * conf.diagramMarginY;
+ let boxWidth = box.stopx - box.startx;
+ const width = boxWidth + 2 * conf.diagramMarginX;
+ if (title2) {
+ diagram2.append("text").text(title2).attr("x", (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr("y", box.starty + conf.diagramMarginY);
+ }
+ configureSvgSize(diagram2, height, width, conf.useMaxWidth);
+ const extraVertForTitle = title2 ? 60 : 0;
+ diagram2.attr(
+ "viewBox",
+ box.startx - conf.diagramMarginX + " -" + (conf.diagramMarginY + extraVertForTitle) + " " + width + " " + (height + extraVertForTitle)
+ );
+ log.debug(`models:`, box);
+};
+const c4Renderer = {
+ drawPersonOrSystemArray: drawC4ShapeArray,
+ drawBoundary,
+ setConf,
+ draw
+};
+const getStyles = (options) => `.person {
+ stroke: ${options.personBorder};
+ fill: ${options.personBkg};
+ }
+`;
+const c4Styles = getStyles;
+const diagram = {
+ parser: c4Parser,
+ db: c4Db,
+ renderer: c4Renderer,
+ styles: c4Styles,
+ init: (cnf) => {
+ c4Renderer.setConf(cnf.c4);
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=c4Diagram-be8b5c2c.js.map
diff --git a/scopegraphs-render-docs/doc/js/c4Diagram-d4b415eb.js b/scopegraphs-render-docs/doc/js/c4Diagram-d4b415eb.js
new file mode 100644
index 0000000..7312df2
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/c4Diagram-d4b415eb.js
@@ -0,0 +1,1623 @@
+import { m as Ve } from "./mermaidAPI-67f627de.js";
+import { q as je, v as Ue, w as Fe, x as ze, g as Ut, b as ve, f as le, d as Xe, h as Qt, l as _e } from "./commonDb-41f8b4c5.js";
+import { s as ke, q as Yt, v as We, w as Qe, x as xe } from "./utils-8ea37061.js";
+var qt = function() {
+ var e = function(Ot, _, x, m) {
+ for (x = x || {}, m = Ot.length; m--; x[Ot[m]] = _)
+ ;
+ return x;
+ }, t = [1, 6], i = [1, 7], o = [1, 8], l = [1, 9], n = [1, 16], r = [1, 11], a = [1, 12], s = [1, 13], u = [1, 14], d = [1, 15], y = [1, 27], p = [1, 33], C = [1, 34], T = [1, 35], R = [1, 36], D = [1, 37], L = [1, 72], Y = [1, 73], Q = [1, 74], H = [1, 75], q = [1, 76], G = [1, 77], K = [1, 78], J = [1, 38], Z = [1, 39], $ = [1, 40], tt = [1, 41], et = [1, 42], nt = [1, 43], it = [1, 44], st = [1, 45], at = [1, 46], rt = [1, 47], lt = [1, 48], ot = [1, 49], ct = [1, 50], ht = [1, 51], ut = [1, 52], dt = [1, 53], ft = [1, 54], pt = [1, 55], yt = [1, 56], gt = [1, 57], bt = [1, 59], _t = [1, 60], xt = [1, 61], mt = [1, 62], Et = [1, 63], vt = [1, 64], kt = [1, 65], At = [1, 66], Ct = [1, 67], wt = [1, 68], Tt = [1, 69], Nt = [24, 52], $t = [24, 44, 46, 47, 48, 49, 50, 51, 52, 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], It = [15, 24, 44, 46, 47, 48, 49, 50, 51, 52, 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], E = [1, 94], v = [1, 95], k = [1, 96], A = [1, 97], w = [15, 24, 52], fe = [7, 8, 9, 10, 18, 22, 25, 26, 27, 28], pe = [15, 24, 43, 52], zt = [15, 24, 43, 52, 86, 87, 89, 90], Dt = [15, 43], te = [44, 46, 47, 48, 49, 50, 51, 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], ee = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, mermaidDoc: 4, direction: 5, directive: 6, direction_tb: 7, direction_bt: 8, direction_rl: 9, direction_lr: 10, graphConfig: 11, openDirective: 12, typeDirective: 13, closeDirective: 14, NEWLINE: 15, ":": 16, argDirective: 17, open_directive: 18, type_directive: 19, arg_directive: 20, close_directive: 21, C4_CONTEXT: 22, statements: 23, EOF: 24, C4_CONTAINER: 25, C4_COMPONENT: 26, C4_DYNAMIC: 27, C4_DEPLOYMENT: 28, otherStatements: 29, diagramStatements: 30, otherStatement: 31, title: 32, accDescription: 33, acc_title: 34, acc_title_value: 35, acc_descr: 36, acc_descr_value: 37, acc_descr_multiline_value: 38, boundaryStatement: 39, boundaryStartStatement: 40, boundaryStopStatement: 41, boundaryStart: 42, LBRACE: 43, ENTERPRISE_BOUNDARY: 44, attributes: 45, SYSTEM_BOUNDARY: 46, BOUNDARY: 47, CONTAINER_BOUNDARY: 48, NODE: 49, NODE_L: 50, NODE_R: 51, RBRACE: 52, diagramStatement: 53, PERSON: 54, PERSON_EXT: 55, SYSTEM: 56, SYSTEM_DB: 57, SYSTEM_QUEUE: 58, SYSTEM_EXT: 59, SYSTEM_EXT_DB: 60, SYSTEM_EXT_QUEUE: 61, CONTAINER: 62, CONTAINER_DB: 63, CONTAINER_QUEUE: 64, CONTAINER_EXT: 65, CONTAINER_EXT_DB: 66, CONTAINER_EXT_QUEUE: 67, COMPONENT: 68, COMPONENT_DB: 69, COMPONENT_QUEUE: 70, COMPONENT_EXT: 71, COMPONENT_EXT_DB: 72, COMPONENT_EXT_QUEUE: 73, REL: 74, BIREL: 75, REL_U: 76, REL_D: 77, REL_L: 78, REL_R: 79, REL_B: 80, REL_INDEX: 81, UPDATE_EL_STYLE: 82, UPDATE_REL_STYLE: 83, UPDATE_LAYOUT_CONFIG: 84, attribute: 85, STR: 86, STR_KEY: 87, STR_VALUE: 88, ATTRIBUTE: 89, ATTRIBUTE_EMPTY: 90, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 7: "direction_tb", 8: "direction_bt", 9: "direction_rl", 10: "direction_lr", 15: "NEWLINE", 16: ":", 18: "open_directive", 19: "type_directive", 20: "arg_directive", 21: "close_directive", 22: "C4_CONTEXT", 24: "EOF", 25: "C4_CONTAINER", 26: "C4_COMPONENT", 27: "C4_DYNAMIC", 28: "C4_DEPLOYMENT", 32: "title", 33: "accDescription", 34: "acc_title", 35: "acc_title_value", 36: "acc_descr", 37: "acc_descr_value", 38: "acc_descr_multiline_value", 43: "LBRACE", 44: "ENTERPRISE_BOUNDARY", 46: "SYSTEM_BOUNDARY", 47: "BOUNDARY", 48: "CONTAINER_BOUNDARY", 49: "NODE", 50: "NODE_L", 51: "NODE_R", 52: "RBRACE", 54: "PERSON", 55: "PERSON_EXT", 56: "SYSTEM", 57: "SYSTEM_DB", 58: "SYSTEM_QUEUE", 59: "SYSTEM_EXT", 60: "SYSTEM_EXT_DB", 61: "SYSTEM_EXT_QUEUE", 62: "CONTAINER", 63: "CONTAINER_DB", 64: "CONTAINER_QUEUE", 65: "CONTAINER_EXT", 66: "CONTAINER_EXT_DB", 67: "CONTAINER_EXT_QUEUE", 68: "COMPONENT", 69: "COMPONENT_DB", 70: "COMPONENT_QUEUE", 71: "COMPONENT_EXT", 72: "COMPONENT_EXT_DB", 73: "COMPONENT_EXT_QUEUE", 74: "REL", 75: "BIREL", 76: "REL_U", 77: "REL_D", 78: "REL_L", 79: "REL_R", 80: "REL_B", 81: "REL_INDEX", 82: "UPDATE_EL_STYLE", 83: "UPDATE_REL_STYLE", 84: "UPDATE_LAYOUT_CONFIG", 86: "STR", 87: "STR_KEY", 88: "STR_VALUE", 89: "ATTRIBUTE", 90: "ATTRIBUTE_EMPTY" },
+ productions_: [0, [3, 1], [3, 1], [3, 2], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [6, 4], [6, 6], [12, 1], [13, 1], [17, 1], [14, 1], [11, 4], [11, 4], [11, 4], [11, 4], [11, 4], [23, 1], [23, 1], [23, 2], [29, 1], [29, 2], [29, 3], [31, 1], [31, 1], [31, 2], [31, 2], [31, 1], [39, 3], [40, 3], [40, 3], [40, 4], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [41, 1], [30, 1], [30, 2], [30, 3], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 1], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [45, 1], [45, 2], [85, 1], [85, 2], [85, 1], [85, 1]],
+ performAction: function(_, x, m, g, O, h, Vt) {
+ var f = h.length - 1;
+ switch (O) {
+ case 4:
+ g.setDirection("TB");
+ break;
+ case 5:
+ g.setDirection("BT");
+ break;
+ case 6:
+ g.setDirection("RL");
+ break;
+ case 7:
+ g.setDirection("LR");
+ break;
+ case 11:
+ g.parseDirective("%%{", "open_directive");
+ break;
+ case 12:
+ break;
+ case 13:
+ h[f] = h[f].trim().replace(/'/g, '"'), g.parseDirective(h[f], "arg_directive");
+ break;
+ case 14:
+ g.parseDirective("}%%", "close_directive", "c4Context");
+ break;
+ case 15:
+ case 16:
+ case 17:
+ case 18:
+ case 19:
+ g.setC4Type(h[f - 3]);
+ break;
+ case 26:
+ g.setTitle(h[f].substring(6)), this.$ = h[f].substring(6);
+ break;
+ case 27:
+ g.setAccDescription(h[f].substring(15)), this.$ = h[f].substring(15);
+ break;
+ case 28:
+ this.$ = h[f].trim(), g.setTitle(this.$);
+ break;
+ case 29:
+ case 30:
+ this.$ = h[f].trim(), g.setAccDescription(this.$);
+ break;
+ case 35:
+ case 36:
+ h[f].splice(2, 0, "ENTERPRISE"), g.addPersonOrSystemBoundary(...h[f]), this.$ = h[f];
+ break;
+ case 37:
+ g.addPersonOrSystemBoundary(...h[f]), this.$ = h[f];
+ break;
+ case 38:
+ h[f].splice(2, 0, "CONTAINER"), g.addContainerBoundary(...h[f]), this.$ = h[f];
+ break;
+ case 39:
+ g.addDeploymentNode("node", ...h[f]), this.$ = h[f];
+ break;
+ case 40:
+ g.addDeploymentNode("nodeL", ...h[f]), this.$ = h[f];
+ break;
+ case 41:
+ g.addDeploymentNode("nodeR", ...h[f]), this.$ = h[f];
+ break;
+ case 42:
+ g.popBoundaryParseStack();
+ break;
+ case 46:
+ g.addPersonOrSystem("person", ...h[f]), this.$ = h[f];
+ break;
+ case 47:
+ g.addPersonOrSystem("external_person", ...h[f]), this.$ = h[f];
+ break;
+ case 48:
+ g.addPersonOrSystem("system", ...h[f]), this.$ = h[f];
+ break;
+ case 49:
+ g.addPersonOrSystem("system_db", ...h[f]), this.$ = h[f];
+ break;
+ case 50:
+ g.addPersonOrSystem("system_queue", ...h[f]), this.$ = h[f];
+ break;
+ case 51:
+ g.addPersonOrSystem("external_system", ...h[f]), this.$ = h[f];
+ break;
+ case 52:
+ g.addPersonOrSystem("external_system_db", ...h[f]), this.$ = h[f];
+ break;
+ case 53:
+ g.addPersonOrSystem("external_system_queue", ...h[f]), this.$ = h[f];
+ break;
+ case 54:
+ g.addContainer("container", ...h[f]), this.$ = h[f];
+ break;
+ case 55:
+ g.addContainer("container_db", ...h[f]), this.$ = h[f];
+ break;
+ case 56:
+ g.addContainer("container_queue", ...h[f]), this.$ = h[f];
+ break;
+ case 57:
+ g.addContainer("external_container", ...h[f]), this.$ = h[f];
+ break;
+ case 58:
+ g.addContainer("external_container_db", ...h[f]), this.$ = h[f];
+ break;
+ case 59:
+ g.addContainer("external_container_queue", ...h[f]), this.$ = h[f];
+ break;
+ case 60:
+ g.addComponent("component", ...h[f]), this.$ = h[f];
+ break;
+ case 61:
+ g.addComponent("component_db", ...h[f]), this.$ = h[f];
+ break;
+ case 62:
+ g.addComponent("component_queue", ...h[f]), this.$ = h[f];
+ break;
+ case 63:
+ g.addComponent("external_component", ...h[f]), this.$ = h[f];
+ break;
+ case 64:
+ g.addComponent("external_component_db", ...h[f]), this.$ = h[f];
+ break;
+ case 65:
+ g.addComponent("external_component_queue", ...h[f]), this.$ = h[f];
+ break;
+ case 67:
+ g.addRel("rel", ...h[f]), this.$ = h[f];
+ break;
+ case 68:
+ g.addRel("birel", ...h[f]), this.$ = h[f];
+ break;
+ case 69:
+ g.addRel("rel_u", ...h[f]), this.$ = h[f];
+ break;
+ case 70:
+ g.addRel("rel_d", ...h[f]), this.$ = h[f];
+ break;
+ case 71:
+ g.addRel("rel_l", ...h[f]), this.$ = h[f];
+ break;
+ case 72:
+ g.addRel("rel_r", ...h[f]), this.$ = h[f];
+ break;
+ case 73:
+ g.addRel("rel_b", ...h[f]), this.$ = h[f];
+ break;
+ case 74:
+ h[f].splice(0, 1), g.addRel("rel", ...h[f]), this.$ = h[f];
+ break;
+ case 75:
+ g.updateElStyle("update_el_style", ...h[f]), this.$ = h[f];
+ break;
+ case 76:
+ g.updateRelStyle("update_rel_style", ...h[f]), this.$ = h[f];
+ break;
+ case 77:
+ g.updateLayoutConfig("update_layout_config", ...h[f]), this.$ = h[f];
+ break;
+ case 78:
+ this.$ = [h[f]];
+ break;
+ case 79:
+ h[f].unshift(h[f - 1]), this.$ = h[f];
+ break;
+ case 80:
+ case 82:
+ this.$ = h[f].trim();
+ break;
+ case 81:
+ let Pt = {};
+ Pt[h[f - 1].trim()] = h[f].trim(), this.$ = Pt;
+ break;
+ case 83:
+ this.$ = "";
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: t, 8: i, 9: o, 10: l, 11: 5, 12: 10, 18: n, 22: r, 25: a, 26: s, 27: u, 28: d }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 3: 17, 4: 2, 5: 3, 6: 4, 7: t, 8: i, 9: o, 10: l, 11: 5, 12: 10, 18: n, 22: r, 25: a, 26: s, 27: u, 28: d }, { 1: [2, 8] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 1: [2, 7] }, { 13: 18, 19: [1, 19] }, { 15: [1, 20] }, { 15: [1, 21] }, { 15: [1, 22] }, { 15: [1, 23] }, { 15: [1, 24] }, { 19: [2, 11] }, { 1: [2, 3] }, { 14: 25, 16: [1, 26], 21: y }, e([16, 21], [2, 12]), { 23: 28, 29: 29, 30: 30, 31: 31, 32: p, 33: C, 34: T, 36: R, 38: D, 39: 58, 40: 70, 42: 71, 44: L, 46: Y, 47: Q, 48: H, 49: q, 50: G, 51: K, 53: 32, 54: J, 55: Z, 56: $, 57: tt, 58: et, 59: nt, 60: it, 61: st, 62: at, 63: rt, 64: lt, 65: ot, 66: ct, 67: ht, 68: ut, 69: dt, 70: ft, 71: pt, 72: yt, 73: gt, 74: bt, 75: _t, 76: xt, 77: mt, 78: Et, 79: vt, 80: kt, 81: At, 82: Ct, 83: wt, 84: Tt }, { 23: 79, 29: 29, 30: 30, 31: 31, 32: p, 33: C, 34: T, 36: R, 38: D, 39: 58, 40: 70, 42: 71, 44: L, 46: Y, 47: Q, 48: H, 49: q, 50: G, 51: K, 53: 32, 54: J, 55: Z, 56: $, 57: tt, 58: et, 59: nt, 60: it, 61: st, 62: at, 63: rt, 64: lt, 65: ot, 66: ct, 67: ht, 68: ut, 69: dt, 70: ft, 71: pt, 72: yt, 73: gt, 74: bt, 75: _t, 76: xt, 77: mt, 78: Et, 79: vt, 80: kt, 81: At, 82: Ct, 83: wt, 84: Tt }, { 23: 80, 29: 29, 30: 30, 31: 31, 32: p, 33: C, 34: T, 36: R, 38: D, 39: 58, 40: 70, 42: 71, 44: L, 46: Y, 47: Q, 48: H, 49: q, 50: G, 51: K, 53: 32, 54: J, 55: Z, 56: $, 57: tt, 58: et, 59: nt, 60: it, 61: st, 62: at, 63: rt, 64: lt, 65: ot, 66: ct, 67: ht, 68: ut, 69: dt, 70: ft, 71: pt, 72: yt, 73: gt, 74: bt, 75: _t, 76: xt, 77: mt, 78: Et, 79: vt, 80: kt, 81: At, 82: Ct, 83: wt, 84: Tt }, { 23: 81, 29: 29, 30: 30, 31: 31, 32: p, 33: C, 34: T, 36: R, 38: D, 39: 58, 40: 70, 42: 71, 44: L, 46: Y, 47: Q, 48: H, 49: q, 50: G, 51: K, 53: 32, 54: J, 55: Z, 56: $, 57: tt, 58: et, 59: nt, 60: it, 61: st, 62: at, 63: rt, 64: lt, 65: ot, 66: ct, 67: ht, 68: ut, 69: dt, 70: ft, 71: pt, 72: yt, 73: gt, 74: bt, 75: _t, 76: xt, 77: mt, 78: Et, 79: vt, 80: kt, 81: At, 82: Ct, 83: wt, 84: Tt }, { 23: 82, 29: 29, 30: 30, 31: 31, 32: p, 33: C, 34: T, 36: R, 38: D, 39: 58, 40: 70, 42: 71, 44: L, 46: Y, 47: Q, 48: H, 49: q, 50: G, 51: K, 53: 32, 54: J, 55: Z, 56: $, 57: tt, 58: et, 59: nt, 60: it, 61: st, 62: at, 63: rt, 64: lt, 65: ot, 66: ct, 67: ht, 68: ut, 69: dt, 70: ft, 71: pt, 72: yt, 73: gt, 74: bt, 75: _t, 76: xt, 77: mt, 78: Et, 79: vt, 80: kt, 81: At, 82: Ct, 83: wt, 84: Tt }, { 15: [1, 83] }, { 17: 84, 20: [1, 85] }, { 15: [2, 14] }, { 24: [1, 86] }, e(Nt, [2, 20], { 53: 32, 39: 58, 40: 70, 42: 71, 30: 87, 44: L, 46: Y, 47: Q, 48: H, 49: q, 50: G, 51: K, 54: J, 55: Z, 56: $, 57: tt, 58: et, 59: nt, 60: it, 61: st, 62: at, 63: rt, 64: lt, 65: ot, 66: ct, 67: ht, 68: ut, 69: dt, 70: ft, 71: pt, 72: yt, 73: gt, 74: bt, 75: _t, 76: xt, 77: mt, 78: Et, 79: vt, 80: kt, 81: At, 82: Ct, 83: wt, 84: Tt }), e(Nt, [2, 21]), e($t, [2, 23], { 15: [1, 88] }), e(Nt, [2, 43], { 15: [1, 89] }), e(It, [2, 26]), e(It, [2, 27]), { 35: [1, 90] }, { 37: [1, 91] }, e(It, [2, 30]), { 45: 92, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 98, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 99, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 100, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 101, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 102, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 103, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 104, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 105, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 106, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 107, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 108, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 109, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 110, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 111, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 112, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 113, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 114, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 115, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 116, 85: 93, 86: E, 87: v, 89: k, 90: A }, e(w, [2, 66]), { 45: 117, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 118, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 119, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 120, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 121, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 122, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 123, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 124, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 125, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 126, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 127, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 30: 128, 39: 58, 40: 70, 42: 71, 44: L, 46: Y, 47: Q, 48: H, 49: q, 50: G, 51: K, 53: 32, 54: J, 55: Z, 56: $, 57: tt, 58: et, 59: nt, 60: it, 61: st, 62: at, 63: rt, 64: lt, 65: ot, 66: ct, 67: ht, 68: ut, 69: dt, 70: ft, 71: pt, 72: yt, 73: gt, 74: bt, 75: _t, 76: xt, 77: mt, 78: Et, 79: vt, 80: kt, 81: At, 82: Ct, 83: wt, 84: Tt }, { 15: [1, 130], 43: [1, 129] }, { 45: 131, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 132, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 133, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 134, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 135, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 136, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 45: 137, 85: 93, 86: E, 87: v, 89: k, 90: A }, { 24: [1, 138] }, { 24: [1, 139] }, { 24: [1, 140] }, { 24: [1, 141] }, e(fe, [2, 9]), { 14: 142, 21: y }, { 21: [2, 13] }, { 1: [2, 15] }, e(Nt, [2, 22]), e($t, [2, 24], { 31: 31, 29: 143, 32: p, 33: C, 34: T, 36: R, 38: D }), e(Nt, [2, 44], { 29: 29, 30: 30, 31: 31, 53: 32, 39: 58, 40: 70, 42: 71, 23: 144, 32: p, 33: C, 34: T, 36: R, 38: D, 44: L, 46: Y, 47: Q, 48: H, 49: q, 50: G, 51: K, 54: J, 55: Z, 56: $, 57: tt, 58: et, 59: nt, 60: it, 61: st, 62: at, 63: rt, 64: lt, 65: ot, 66: ct, 67: ht, 68: ut, 69: dt, 70: ft, 71: pt, 72: yt, 73: gt, 74: bt, 75: _t, 76: xt, 77: mt, 78: Et, 79: vt, 80: kt, 81: At, 82: Ct, 83: wt, 84: Tt }), e(It, [2, 28]), e(It, [2, 29]), e(w, [2, 46]), e(pe, [2, 78], { 85: 93, 45: 145, 86: E, 87: v, 89: k, 90: A }), e(zt, [2, 80]), { 88: [1, 146] }, e(zt, [2, 82]), e(zt, [2, 83]), e(w, [2, 47]), e(w, [2, 48]), e(w, [2, 49]), e(w, [2, 50]), e(w, [2, 51]), e(w, [2, 52]), e(w, [2, 53]), e(w, [2, 54]), e(w, [2, 55]), e(w, [2, 56]), e(w, [2, 57]), e(w, [2, 58]), e(w, [2, 59]), e(w, [2, 60]), e(w, [2, 61]), e(w, [2, 62]), e(w, [2, 63]), e(w, [2, 64]), e(w, [2, 65]), e(w, [2, 67]), e(w, [2, 68]), e(w, [2, 69]), e(w, [2, 70]), e(w, [2, 71]), e(w, [2, 72]), e(w, [2, 73]), e(w, [2, 74]), e(w, [2, 75]), e(w, [2, 76]), e(w, [2, 77]), { 41: 147, 52: [1, 148] }, { 15: [1, 149] }, { 43: [1, 150] }, e(Dt, [2, 35]), e(Dt, [2, 36]), e(Dt, [2, 37]), e(Dt, [2, 38]), e(Dt, [2, 39]), e(Dt, [2, 40]), e(Dt, [2, 41]), { 1: [2, 16] }, { 1: [2, 17] }, { 1: [2, 18] }, { 1: [2, 19] }, { 15: [1, 151] }, e($t, [2, 25]), e(Nt, [2, 45]), e(pe, [2, 79]), e(zt, [2, 81]), e(w, [2, 31]), e(w, [2, 42]), e(te, [2, 32]), e(te, [2, 33], { 15: [1, 152] }), e(fe, [2, 10]), e(te, [2, 34])],
+ defaultActions: { 2: [2, 1], 3: [2, 2], 5: [2, 8], 6: [2, 4], 7: [2, 5], 8: [2, 6], 9: [2, 7], 16: [2, 11], 17: [2, 3], 27: [2, 14], 85: [2, 13], 86: [2, 15], 138: [2, 16], 139: [2, 17], 140: [2, 18], 141: [2, 19] },
+ parseError: function(_, x) {
+ if (x.recoverable)
+ this.trace(_);
+ else {
+ var m = new Error(_);
+ throw m.hash = x, m;
+ }
+ },
+ parse: function(_) {
+ var x = this, m = [0], g = [], O = [null], h = [], Vt = this.table, f = "", Pt = 0, ye = 0, Ne = 2, ge = 1, Be = h.slice.call(arguments, 1), S = Object.create(this.lexer), Mt = { yy: {} };
+ for (var ie in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, ie) && (Mt.yy[ie] = this.yy[ie]);
+ S.setInput(_, Mt.yy), Mt.yy.lexer = S, Mt.yy.parser = this, typeof S.yylloc > "u" && (S.yylloc = {});
+ var se = S.yylloc;
+ h.push(se);
+ var Ye = S.options && S.options.ranges;
+ typeof Mt.yy.parseError == "function" ? this.parseError = Mt.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function Ie() {
+ var X;
+ return X = g.pop() || S.lex() || ge, typeof X != "number" && (X instanceof Array && (g = X, X = g.pop()), X = x.symbols_[X] || X), X;
+ }
+ for (var M, Lt, N, ae, Bt = {}, Xt, z, be, Wt; ; ) {
+ if (Lt = m[m.length - 1], this.defaultActions[Lt] ? N = this.defaultActions[Lt] : ((M === null || typeof M > "u") && (M = Ie()), N = Vt[Lt] && Vt[Lt][M]), typeof N > "u" || !N.length || !N[0]) {
+ var re = "";
+ Wt = [];
+ for (Xt in Vt[Lt])
+ this.terminals_[Xt] && Xt > Ne && Wt.push("'" + this.terminals_[Xt] + "'");
+ S.showPosition ? re = "Parse error on line " + (Pt + 1) + `:
+` + S.showPosition() + `
+Expecting ` + Wt.join(", ") + ", got '" + (this.terminals_[M] || M) + "'" : re = "Parse error on line " + (Pt + 1) + ": Unexpected " + (M == ge ? "end of input" : "'" + (this.terminals_[M] || M) + "'"), this.parseError(re, {
+ text: S.match,
+ token: this.terminals_[M] || M,
+ line: S.yylineno,
+ loc: se,
+ expected: Wt
+ });
+ }
+ if (N[0] instanceof Array && N.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + Lt + ", token: " + M);
+ switch (N[0]) {
+ case 1:
+ m.push(M), O.push(S.yytext), h.push(S.yylloc), m.push(N[1]), M = null, ye = S.yyleng, f = S.yytext, Pt = S.yylineno, se = S.yylloc;
+ break;
+ case 2:
+ if (z = this.productions_[N[1]][1], Bt.$ = O[O.length - z], Bt._$ = {
+ first_line: h[h.length - (z || 1)].first_line,
+ last_line: h[h.length - 1].last_line,
+ first_column: h[h.length - (z || 1)].first_column,
+ last_column: h[h.length - 1].last_column
+ }, Ye && (Bt._$.range = [
+ h[h.length - (z || 1)].range[0],
+ h[h.length - 1].range[1]
+ ]), ae = this.performAction.apply(Bt, [
+ f,
+ ye,
+ Pt,
+ Mt.yy,
+ N[1],
+ O,
+ h
+ ].concat(Be)), typeof ae < "u")
+ return ae;
+ z && (m = m.slice(0, -1 * z * 2), O = O.slice(0, -1 * z), h = h.slice(0, -1 * z)), m.push(this.productions_[N[1]][0]), O.push(Bt.$), h.push(Bt._$), be = Vt[m[m.length - 2]][m[m.length - 1]], m.push(be);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, Le = function() {
+ var Ot = {
+ EOF: 1,
+ parseError: function(x, m) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(x, m);
+ else
+ throw new Error(x);
+ },
+ // resets the lexer, sets new input
+ setInput: function(_, x) {
+ return this.yy = x || this.yy || {}, this._input = _, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var _ = this._input[0];
+ this.yytext += _, this.yyleng++, this.offset++, this.match += _, this.matched += _;
+ var x = _.match(/(?:\r\n?|\n).*/g);
+ return x ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), _;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(_) {
+ var x = _.length, m = _.split(/(?:\r\n?|\n)/g);
+ this._input = _ + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - x), this.offset -= x;
+ var g = 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), m.length - 1 && (this.yylineno -= m.length - 1);
+ var O = 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: m ? (m.length === g.length ? this.yylloc.first_column : 0) + g[g.length - m.length].length - m[0].length : this.yylloc.first_column - x
+ }, this.options.ranges && (this.yylloc.range = [O[0], O[0] + this.yyleng - x]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(_) {
+ this.unput(this.match.slice(_));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var _ = this.matched.substr(0, this.matched.length - this.match.length);
+ return (_.length > 20 ? "..." : "") + _.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var _ = this.match;
+ return _.length < 20 && (_ += this._input.substr(0, 20 - _.length)), (_.substr(0, 20) + (_.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var _ = this.pastInput(), x = new Array(_.length + 1).join("-");
+ return _ + this.upcomingInput() + `
+` + x + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(_, x) {
+ var m, g, O;
+ if (this.options.backtrack_lexer && (O = {
+ 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 && (O.yylloc.range = this.yylloc.range.slice(0))), g = _[0].match(/(?:\r\n?|\n).*/g), g && (this.yylineno += g.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: g ? g[g.length - 1].length - g[g.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + _[0].length
+ }, this.yytext += _[0], this.match += _[0], this.matches = _, 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(_[0].length), this.matched += _[0], m = this.performAction.call(this, this.yy, this, x, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), m)
+ return m;
+ if (this._backtrack) {
+ for (var h in O)
+ this[h] = O[h];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var _, x, m, g;
+ this._more || (this.yytext = "", this.match = "");
+ for (var O = this._currentRules(), h = 0; h < O.length; h++)
+ if (m = this._input.match(this.rules[O[h]]), m && (!x || m[0].length > x[0].length)) {
+ if (x = m, g = h, this.options.backtrack_lexer) {
+ if (_ = this.test_match(m, O[h]), _ !== !1)
+ return _;
+ if (this._backtrack) {
+ x = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return x ? (_ = this.test_match(x, O[g]), _ !== !1 ? _ : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var x = this.next();
+ return x || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(x) {
+ this.conditionStack.push(x);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var x = this.conditionStack.length - 1;
+ return x > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(x) {
+ return x = this.conditionStack.length - 1 - Math.abs(x || 0), x >= 0 ? this.conditionStack[x] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(x) {
+ this.begin(x);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: {},
+ performAction: function(x, m, g, O) {
+ switch (g) {
+ case 0:
+ return this.begin("open_directive"), 18;
+ case 1:
+ return 7;
+ case 2:
+ return 8;
+ case 3:
+ return 9;
+ case 4:
+ return 10;
+ case 5:
+ return this.begin("type_directive"), 19;
+ case 6:
+ return this.popState(), this.begin("arg_directive"), 16;
+ case 7:
+ return this.popState(), this.popState(), 21;
+ case 8:
+ return 20;
+ case 9:
+ return 32;
+ case 10:
+ return 33;
+ case 11:
+ return this.begin("acc_title"), 34;
+ case 12:
+ return this.popState(), "acc_title_value";
+ case 13:
+ return this.begin("acc_descr"), 36;
+ case 14:
+ return this.popState(), "acc_descr_value";
+ case 15:
+ this.begin("acc_descr_multiline");
+ break;
+ case 16:
+ this.popState();
+ break;
+ case 17:
+ return "acc_descr_multiline_value";
+ case 18:
+ break;
+ case 19:
+ c;
+ break;
+ case 20:
+ return 15;
+ case 21:
+ break;
+ case 22:
+ return 22;
+ case 23:
+ return 25;
+ case 24:
+ return 26;
+ case 25:
+ return 27;
+ case 26:
+ return 28;
+ case 27:
+ return this.begin("person_ext"), 55;
+ case 28:
+ return this.begin("person"), 54;
+ case 29:
+ return this.begin("system_ext_queue"), 61;
+ case 30:
+ return this.begin("system_ext_db"), 60;
+ case 31:
+ return this.begin("system_ext"), 59;
+ case 32:
+ return this.begin("system_queue"), 58;
+ case 33:
+ return this.begin("system_db"), 57;
+ case 34:
+ return this.begin("system"), 56;
+ case 35:
+ return this.begin("boundary"), 47;
+ case 36:
+ return this.begin("enterprise_boundary"), 44;
+ case 37:
+ return this.begin("system_boundary"), 46;
+ case 38:
+ return this.begin("container_ext_queue"), 67;
+ case 39:
+ return this.begin("container_ext_db"), 66;
+ case 40:
+ return this.begin("container_ext"), 65;
+ case 41:
+ return this.begin("container_queue"), 64;
+ case 42:
+ return this.begin("container_db"), 63;
+ case 43:
+ return this.begin("container"), 62;
+ case 44:
+ return this.begin("container_boundary"), 48;
+ case 45:
+ return this.begin("component_ext_queue"), 73;
+ case 46:
+ return this.begin("component_ext_db"), 72;
+ case 47:
+ return this.begin("component_ext"), 71;
+ case 48:
+ return this.begin("component_queue"), 70;
+ case 49:
+ return this.begin("component_db"), 69;
+ case 50:
+ return this.begin("component"), 68;
+ case 51:
+ return this.begin("node"), 49;
+ case 52:
+ return this.begin("node"), 49;
+ case 53:
+ return this.begin("node_l"), 50;
+ case 54:
+ return this.begin("node_r"), 51;
+ case 55:
+ return this.begin("rel"), 74;
+ case 56:
+ return this.begin("birel"), 75;
+ case 57:
+ return this.begin("rel_u"), 76;
+ case 58:
+ return this.begin("rel_u"), 76;
+ case 59:
+ return this.begin("rel_d"), 77;
+ case 60:
+ return this.begin("rel_d"), 77;
+ case 61:
+ return this.begin("rel_l"), 78;
+ case 62:
+ return this.begin("rel_l"), 78;
+ case 63:
+ return this.begin("rel_r"), 79;
+ case 64:
+ return this.begin("rel_r"), 79;
+ case 65:
+ return this.begin("rel_b"), 80;
+ case 66:
+ return this.begin("rel_index"), 81;
+ case 67:
+ return this.begin("update_el_style"), 82;
+ case 68:
+ return this.begin("update_rel_style"), 83;
+ case 69:
+ return this.begin("update_layout_config"), 84;
+ case 70:
+ return "EOF_IN_STRUCT";
+ case 71:
+ return this.begin("attribute"), "ATTRIBUTE_EMPTY";
+ case 72:
+ this.begin("attribute");
+ break;
+ case 73:
+ this.popState(), this.popState();
+ break;
+ case 74:
+ return 90;
+ case 75:
+ break;
+ case 76:
+ return 90;
+ case 77:
+ this.begin("string");
+ break;
+ case 78:
+ this.popState();
+ break;
+ case 79:
+ return "STR";
+ case 80:
+ this.begin("string_kv");
+ break;
+ case 81:
+ return this.begin("string_kv_key"), "STR_KEY";
+ case 82:
+ this.popState(), this.begin("string_kv_value");
+ break;
+ case 83:
+ return "STR_VALUE";
+ case 84:
+ this.popState(), this.popState();
+ break;
+ case 85:
+ return "STR";
+ case 86:
+ return "LBRACE";
+ case 87:
+ return "RBRACE";
+ case 88:
+ return "SPACE";
+ case 89:
+ return "EOL";
+ case 90:
+ return 24;
+ }
+ },
+ rules: [/^(?:%%\{)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:title\s[^#\n;]+)/, /^(?:accDescription\s[^#\n;]+)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:C4Context\b)/, /^(?:C4Container\b)/, /^(?:C4Component\b)/, /^(?:C4Dynamic\b)/, /^(?:C4Deployment\b)/, /^(?:Person_Ext\b)/, /^(?:Person\b)/, /^(?:SystemQueue_Ext\b)/, /^(?:SystemDb_Ext\b)/, /^(?:System_Ext\b)/, /^(?:SystemQueue\b)/, /^(?:SystemDb\b)/, /^(?:System\b)/, /^(?:Boundary\b)/, /^(?:Enterprise_Boundary\b)/, /^(?:System_Boundary\b)/, /^(?:ContainerQueue_Ext\b)/, /^(?:ContainerDb_Ext\b)/, /^(?:Container_Ext\b)/, /^(?:ContainerQueue\b)/, /^(?:ContainerDb\b)/, /^(?:Container\b)/, /^(?:Container_Boundary\b)/, /^(?:ComponentQueue_Ext\b)/, /^(?:ComponentDb_Ext\b)/, /^(?:Component_Ext\b)/, /^(?:ComponentQueue\b)/, /^(?:ComponentDb\b)/, /^(?:Component\b)/, /^(?:Deployment_Node\b)/, /^(?:Node\b)/, /^(?:Node_L\b)/, /^(?:Node_R\b)/, /^(?:Rel\b)/, /^(?:BiRel\b)/, /^(?:Rel_Up\b)/, /^(?:Rel_U\b)/, /^(?:Rel_Down\b)/, /^(?:Rel_D\b)/, /^(?:Rel_Left\b)/, /^(?:Rel_L\b)/, /^(?:Rel_Right\b)/, /^(?:Rel_R\b)/, /^(?:Rel_Back\b)/, /^(?:RelIndex\b)/, /^(?:UpdateElementStyle\b)/, /^(?:UpdateRelStyle\b)/, /^(?:UpdateLayoutConfig\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*["]["])/, /^(?:[ ]*["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[ ]*[\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:[^,]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[\s]+)/, /^(?:[\n\r]+)/, /^(?:$)/],
+ conditions: { acc_descr_multiline: { rules: [16, 17], inclusive: !1 }, acc_descr: { rules: [14], inclusive: !1 }, acc_title: { rules: [12], inclusive: !1 }, close_directive: { rules: [], inclusive: !1 }, arg_directive: { rules: [7, 8], inclusive: !1 }, type_directive: { rules: [6, 7], inclusive: !1 }, open_directive: { rules: [5], inclusive: !1 }, string_kv_value: { rules: [83, 84], inclusive: !1 }, string_kv_key: { rules: [82], inclusive: !1 }, string_kv: { rules: [81], inclusive: !1 }, string: { rules: [78, 79], inclusive: !1 }, attribute: { rules: [73, 74, 75, 76, 77, 80, 85], inclusive: !1 }, update_layout_config: { rules: [70, 71, 72, 73], inclusive: !1 }, update_rel_style: { rules: [70, 71, 72, 73], inclusive: !1 }, update_el_style: { rules: [70, 71, 72, 73], inclusive: !1 }, rel_b: { rules: [70, 71, 72, 73], inclusive: !1 }, rel_r: { rules: [70, 71, 72, 73], inclusive: !1 }, rel_l: { rules: [70, 71, 72, 73], inclusive: !1 }, rel_d: { rules: [70, 71, 72, 73], inclusive: !1 }, rel_u: { rules: [70, 71, 72, 73], inclusive: !1 }, rel_bi: { rules: [], inclusive: !1 }, rel: { rules: [70, 71, 72, 73], inclusive: !1 }, node_r: { rules: [70, 71, 72, 73], inclusive: !1 }, node_l: { rules: [70, 71, 72, 73], inclusive: !1 }, node: { rules: [70, 71, 72, 73], inclusive: !1 }, index: { rules: [], inclusive: !1 }, rel_index: { rules: [70, 71, 72, 73], inclusive: !1 }, component_ext_queue: { rules: [], inclusive: !1 }, component_ext_db: { rules: [70, 71, 72, 73], inclusive: !1 }, component_ext: { rules: [70, 71, 72, 73], inclusive: !1 }, component_queue: { rules: [70, 71, 72, 73], inclusive: !1 }, component_db: { rules: [70, 71, 72, 73], inclusive: !1 }, component: { rules: [70, 71, 72, 73], inclusive: !1 }, container_boundary: { rules: [70, 71, 72, 73], inclusive: !1 }, container_ext_queue: { rules: [], inclusive: !1 }, container_ext_db: { rules: [70, 71, 72, 73], inclusive: !1 }, container_ext: { rules: [70, 71, 72, 73], inclusive: !1 }, container_queue: { rules: [70, 71, 72, 73], inclusive: !1 }, container_db: { rules: [70, 71, 72, 73], inclusive: !1 }, container: { rules: [70, 71, 72, 73], inclusive: !1 }, birel: { rules: [70, 71, 72, 73], inclusive: !1 }, system_boundary: { rules: [70, 71, 72, 73], inclusive: !1 }, enterprise_boundary: { rules: [70, 71, 72, 73], inclusive: !1 }, boundary: { rules: [70, 71, 72, 73], inclusive: !1 }, system_ext_queue: { rules: [70, 71, 72, 73], inclusive: !1 }, system_ext_db: { rules: [70, 71, 72, 73], inclusive: !1 }, system_ext: { rules: [70, 71, 72, 73], inclusive: !1 }, system_queue: { rules: [70, 71, 72, 73], inclusive: !1 }, system_db: { rules: [70, 71, 72, 73], inclusive: !1 }, system: { rules: [70, 71, 72, 73], inclusive: !1 }, person_ext: { rules: [70, 71, 72, 73], inclusive: !1 }, person: { rules: [70, 71, 72, 73], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 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, 86, 87, 88, 89, 90], inclusive: !0 } }
+ };
+ return Ot;
+ }();
+ ee.lexer = Le;
+ function ne() {
+ this.yy = {};
+ }
+ return ne.prototype = ee, ee.Parser = ne, new ne();
+}();
+qt.parser = qt;
+const He = qt;
+let j = [], Rt = [""], P = "global", V = "", F = [
+ {
+ alias: "global",
+ label: { text: "global" },
+ type: { text: "global" },
+ tags: null,
+ link: null,
+ parentBoundary: ""
+ }
+], Ft = [], he = "", ue = !1, Gt = 4, Kt = 2;
+var Ae;
+const qe = function() {
+ return Ae;
+}, Ge = function(e) {
+ Ae = ve(e, Ut());
+}, Ke = function(e, t, i) {
+ Ve.parseDirective(this, e, t, i);
+}, Je = function(e, t, i, o, l, n, r, a, s) {
+ if (e == null || t === void 0 || t === null || i === void 0 || i === null || o === void 0 || o === null)
+ return;
+ let u = {};
+ const d = Ft.find((y) => y.from === t && y.to === i);
+ if (d ? u = d : Ft.push(u), u.type = e, u.from = t, u.to = i, u.label = { text: o }, l == null)
+ u.techn = { text: "" };
+ else if (typeof l == "object") {
+ let [y, p] = Object.entries(l)[0];
+ u[y] = { text: p };
+ } else
+ u.techn = { text: l };
+ if (n == null)
+ u.descr = { text: "" };
+ else if (typeof n == "object") {
+ let [y, p] = Object.entries(n)[0];
+ u[y] = { text: p };
+ } else
+ u.descr = { text: n };
+ if (typeof r == "object") {
+ let [y, p] = Object.entries(r)[0];
+ u[y] = p;
+ } else
+ u.sprite = r;
+ if (typeof a == "object") {
+ let [y, p] = Object.entries(a)[0];
+ u[y] = p;
+ } else
+ u.tags = a;
+ if (typeof s == "object") {
+ let [y, p] = Object.entries(s)[0];
+ u[y] = p;
+ } else
+ u.link = s;
+ u.wrap = St();
+}, Ze = function(e, t, i, o, l, n, r) {
+ if (t === null || i === null)
+ return;
+ let a = {};
+ const s = j.find((u) => u.alias === t);
+ if (s && t === s.alias ? a = s : (a.alias = t, j.push(a)), i == null ? a.label = { text: "" } : a.label = { text: i }, o == null)
+ a.descr = { text: "" };
+ else if (typeof o == "object") {
+ let [u, d] = Object.entries(o)[0];
+ a[u] = { text: d };
+ } else
+ a.descr = { text: o };
+ if (typeof l == "object") {
+ let [u, d] = Object.entries(l)[0];
+ a[u] = d;
+ } else
+ a.sprite = l;
+ if (typeof n == "object") {
+ let [u, d] = Object.entries(n)[0];
+ a[u] = d;
+ } else
+ a.tags = n;
+ if (typeof r == "object") {
+ let [u, d] = Object.entries(r)[0];
+ a[u] = d;
+ } else
+ a.link = r;
+ a.typeC4Shape = { text: e }, a.parentBoundary = P, a.wrap = St();
+}, $e = function(e, t, i, o, l, n, r, a) {
+ if (t === null || i === null)
+ return;
+ let s = {};
+ const u = j.find((d) => d.alias === t);
+ if (u && t === u.alias ? s = u : (s.alias = t, j.push(s)), i == null ? s.label = { text: "" } : s.label = { text: i }, o == null)
+ s.techn = { text: "" };
+ else if (typeof o == "object") {
+ let [d, y] = Object.entries(o)[0];
+ s[d] = { text: y };
+ } else
+ s.techn = { text: o };
+ if (l == null)
+ s.descr = { text: "" };
+ else if (typeof l == "object") {
+ let [d, y] = Object.entries(l)[0];
+ s[d] = { text: y };
+ } else
+ s.descr = { text: l };
+ if (typeof n == "object") {
+ let [d, y] = Object.entries(n)[0];
+ s[d] = y;
+ } else
+ s.sprite = n;
+ if (typeof r == "object") {
+ let [d, y] = Object.entries(r)[0];
+ s[d] = y;
+ } else
+ s.tags = r;
+ if (typeof a == "object") {
+ let [d, y] = Object.entries(a)[0];
+ s[d] = y;
+ } else
+ s.link = a;
+ s.wrap = St(), s.typeC4Shape = { text: e }, s.parentBoundary = P;
+}, t0 = function(e, t, i, o, l, n, r, a) {
+ if (t === null || i === null)
+ return;
+ let s = {};
+ const u = j.find((d) => d.alias === t);
+ if (u && t === u.alias ? s = u : (s.alias = t, j.push(s)), i == null ? s.label = { text: "" } : s.label = { text: i }, o == null)
+ s.techn = { text: "" };
+ else if (typeof o == "object") {
+ let [d, y] = Object.entries(o)[0];
+ s[d] = { text: y };
+ } else
+ s.techn = { text: o };
+ if (l == null)
+ s.descr = { text: "" };
+ else if (typeof l == "object") {
+ let [d, y] = Object.entries(l)[0];
+ s[d] = { text: y };
+ } else
+ s.descr = { text: l };
+ if (typeof n == "object") {
+ let [d, y] = Object.entries(n)[0];
+ s[d] = y;
+ } else
+ s.sprite = n;
+ if (typeof r == "object") {
+ let [d, y] = Object.entries(r)[0];
+ s[d] = y;
+ } else
+ s.tags = r;
+ if (typeof a == "object") {
+ let [d, y] = Object.entries(a)[0];
+ s[d] = y;
+ } else
+ s.link = a;
+ s.wrap = St(), s.typeC4Shape = { text: e }, s.parentBoundary = P;
+}, e0 = function(e, t, i, o, l) {
+ if (e === null || t === null)
+ return;
+ let n = {};
+ const r = F.find((a) => a.alias === e);
+ if (r && e === r.alias ? n = r : (n.alias = e, F.push(n)), t == null ? n.label = { text: "" } : n.label = { text: t }, i == null)
+ n.type = { text: "system" };
+ else if (typeof i == "object") {
+ let [a, s] = Object.entries(i)[0];
+ n[a] = { text: s };
+ } else
+ n.type = { text: i };
+ if (typeof o == "object") {
+ let [a, s] = Object.entries(o)[0];
+ n[a] = s;
+ } else
+ n.tags = o;
+ if (typeof l == "object") {
+ let [a, s] = Object.entries(l)[0];
+ n[a] = s;
+ } else
+ n.link = l;
+ n.parentBoundary = P, n.wrap = St(), V = P, P = e, Rt.push(V);
+}, n0 = function(e, t, i, o, l) {
+ if (e === null || t === null)
+ return;
+ let n = {};
+ const r = F.find((a) => a.alias === e);
+ if (r && e === r.alias ? n = r : (n.alias = e, F.push(n)), t == null ? n.label = { text: "" } : n.label = { text: t }, i == null)
+ n.type = { text: "container" };
+ else if (typeof i == "object") {
+ let [a, s] = Object.entries(i)[0];
+ n[a] = { text: s };
+ } else
+ n.type = { text: i };
+ if (typeof o == "object") {
+ let [a, s] = Object.entries(o)[0];
+ n[a] = s;
+ } else
+ n.tags = o;
+ if (typeof l == "object") {
+ let [a, s] = Object.entries(l)[0];
+ n[a] = s;
+ } else
+ n.link = l;
+ n.parentBoundary = P, n.wrap = St(), V = P, P = e, Rt.push(V);
+}, i0 = function(e, t, i, o, l, n, r, a) {
+ if (t === null || i === null)
+ return;
+ let s = {};
+ const u = F.find((d) => d.alias === t);
+ if (u && t === u.alias ? s = u : (s.alias = t, F.push(s)), i == null ? s.label = { text: "" } : s.label = { text: i }, o == null)
+ s.type = { text: "node" };
+ else if (typeof o == "object") {
+ let [d, y] = Object.entries(o)[0];
+ s[d] = { text: y };
+ } else
+ s.type = { text: o };
+ if (l == null)
+ s.descr = { text: "" };
+ else if (typeof l == "object") {
+ let [d, y] = Object.entries(l)[0];
+ s[d] = { text: y };
+ } else
+ s.descr = { text: l };
+ if (typeof r == "object") {
+ let [d, y] = Object.entries(r)[0];
+ s[d] = y;
+ } else
+ s.tags = r;
+ if (typeof a == "object") {
+ let [d, y] = Object.entries(a)[0];
+ s[d] = y;
+ } else
+ s.link = a;
+ s.nodeType = e, s.parentBoundary = P, s.wrap = St(), V = P, P = t, Rt.push(V);
+}, s0 = function() {
+ P = V, Rt.pop(), V = Rt.pop(), Rt.push(V);
+}, a0 = function(e, t, i, o, l, n, r, a, s, u, d) {
+ let y = j.find((p) => p.alias === t);
+ if (!(y === void 0 && (y = F.find((p) => p.alias === t), y === void 0))) {
+ if (i != null)
+ if (typeof i == "object") {
+ let [p, C] = Object.entries(i)[0];
+ y[p] = C;
+ } else
+ y.bgColor = i;
+ if (o != null)
+ if (typeof o == "object") {
+ let [p, C] = Object.entries(o)[0];
+ y[p] = C;
+ } else
+ y.fontColor = o;
+ if (l != null)
+ if (typeof l == "object") {
+ let [p, C] = Object.entries(l)[0];
+ y[p] = C;
+ } else
+ y.borderColor = l;
+ if (n != null)
+ if (typeof n == "object") {
+ let [p, C] = Object.entries(n)[0];
+ y[p] = C;
+ } else
+ y.shadowing = n;
+ if (r != null)
+ if (typeof r == "object") {
+ let [p, C] = Object.entries(r)[0];
+ y[p] = C;
+ } else
+ y.shape = r;
+ if (a != null)
+ if (typeof a == "object") {
+ let [p, C] = Object.entries(a)[0];
+ y[p] = C;
+ } else
+ y.sprite = a;
+ if (s != null)
+ if (typeof s == "object") {
+ let [p, C] = Object.entries(s)[0];
+ y[p] = C;
+ } else
+ y.techn = s;
+ if (u != null)
+ if (typeof u == "object") {
+ let [p, C] = Object.entries(u)[0];
+ y[p] = C;
+ } else
+ y.legendText = u;
+ if (d != null)
+ if (typeof d == "object") {
+ let [p, C] = Object.entries(d)[0];
+ y[p] = C;
+ } else
+ y.legendSprite = d;
+ }
+}, r0 = function(e, t, i, o, l, n, r) {
+ const a = Ft.find((s) => s.from === t && s.to === i);
+ if (a !== void 0) {
+ if (o != null)
+ if (typeof o == "object") {
+ let [s, u] = Object.entries(o)[0];
+ a[s] = u;
+ } else
+ a.textColor = o;
+ if (l != null)
+ if (typeof l == "object") {
+ let [s, u] = Object.entries(l)[0];
+ a[s] = u;
+ } else
+ a.lineColor = l;
+ if (n != null)
+ if (typeof n == "object") {
+ let [s, u] = Object.entries(n)[0];
+ a[s] = parseInt(u);
+ } else
+ a.offsetX = parseInt(n);
+ if (r != null)
+ if (typeof r == "object") {
+ let [s, u] = Object.entries(r)[0];
+ a[s] = parseInt(u);
+ } else
+ a.offsetY = parseInt(r);
+ }
+}, l0 = function(e, t, i) {
+ let o = Gt, l = Kt;
+ if (typeof t == "object") {
+ const n = Object.values(t)[0];
+ o = parseInt(n);
+ } else
+ o = parseInt(t);
+ if (typeof i == "object") {
+ const n = Object.values(i)[0];
+ l = parseInt(n);
+ } else
+ l = parseInt(i);
+ o >= 1 && (Gt = o), l >= 1 && (Kt = l);
+}, o0 = function() {
+ return Gt;
+}, c0 = function() {
+ return Kt;
+}, h0 = function() {
+ return P;
+}, u0 = function() {
+ return V;
+}, Ce = function(e) {
+ return e == null ? j : j.filter((t) => t.parentBoundary === e);
+}, d0 = function(e) {
+ return j.find((t) => t.alias === e);
+}, f0 = function(e) {
+ return Object.keys(Ce(e));
+}, p0 = function(e) {
+ return e == null ? F : F.filter((t) => t.parentBoundary === e);
+}, y0 = function() {
+ return Ft;
+}, g0 = function() {
+ return he;
+}, b0 = function(e) {
+ ue = e;
+}, St = function() {
+ return ue;
+}, _0 = function() {
+ j = [], F = [
+ {
+ alias: "global",
+ label: { text: "global" },
+ type: { text: "global" },
+ tags: null,
+ link: null,
+ parentBoundary: ""
+ }
+ ], V = "", P = "global", Rt = [""], Ft = [], Rt = [""], he = "", ue = !1, Gt = 4, Kt = 2;
+}, x0 = {
+ 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,
+ SOLID_POINT: 24,
+ DOTTED_POINT: 25
+}, m0 = {
+ FILLED: 0,
+ OPEN: 1
+}, E0 = {
+ LEFTOF: 0,
+ RIGHTOF: 1,
+ OVER: 2
+}, v0 = function(e) {
+ he = ve(e, Ut());
+}, we = {
+ addPersonOrSystem: Ze,
+ addPersonOrSystemBoundary: e0,
+ addContainer: $e,
+ addContainerBoundary: n0,
+ addComponent: t0,
+ addDeploymentNode: i0,
+ popBoundaryParseStack: s0,
+ addRel: Je,
+ updateElStyle: a0,
+ updateRelStyle: r0,
+ updateLayoutConfig: l0,
+ autoWrap: St,
+ setWrap: b0,
+ getC4ShapeArray: Ce,
+ getC4Shape: d0,
+ getC4ShapeKeys: f0,
+ getBoundarys: p0,
+ getCurrentBoundaryParse: h0,
+ getParentBoundaryParse: u0,
+ getRels: y0,
+ getTitle: g0,
+ getC4Type: qe,
+ getC4ShapeInRow: o0,
+ getC4BoundaryInRow: c0,
+ setAccTitle: je,
+ getAccTitle: Ue,
+ getAccDescription: Fe,
+ setAccDescription: ze,
+ parseDirective: Ke,
+ getConfig: () => Ut().c4,
+ clear: _0,
+ LINETYPE: x0,
+ ARROWTYPE: m0,
+ PLACEMENT: E0,
+ setTitle: v0,
+ setC4Type: Ge
+ // apply,
+}, de = function(e, t) {
+ const i = e.append("rect");
+ if (i.attr("x", t.x), i.attr("y", t.y), i.attr("fill", t.fill), i.attr("stroke", t.stroke), i.attr("width", t.width), i.attr("height", t.height), i.attr("rx", t.rx), i.attr("ry", t.ry), t.attrs !== "undefined" && t.attrs !== null)
+ for (let o in t.attrs)
+ i.attr(o, t.attrs[o]);
+ return t.class !== "undefined" && i.attr("class", t.class), i;
+}, Te = function(e, t, i, o, l, n) {
+ const r = e.append("image");
+ r.attr("width", t), r.attr("height", i), r.attr("x", o), r.attr("y", l);
+ let a = n.startsWith("data:image/png;base64") ? n : ke(n);
+ r.attr("xlink:href", a);
+}, k0 = (e, t, i) => {
+ const o = e.append("g");
+ let l = 0;
+ for (let n of t) {
+ let r = n.textColor ? n.textColor : "#444444", a = n.lineColor ? n.lineColor : "#444444", s = n.offsetX ? parseInt(n.offsetX) : 0, u = n.offsetY ? parseInt(n.offsetY) : 0, d = "";
+ if (l === 0) {
+ let p = o.append("line");
+ p.attr("x1", n.startPoint.x), p.attr("y1", n.startPoint.y), p.attr("x2", n.endPoint.x), p.attr("y2", n.endPoint.y), p.attr("stroke-width", "1"), p.attr("stroke", a), p.style("fill", "none"), n.type !== "rel_b" && p.attr("marker-end", "url(" + d + "#arrowhead)"), (n.type === "birel" || n.type === "rel_b") && p.attr("marker-start", "url(" + d + "#arrowend)"), l = -1;
+ } else {
+ let p = o.append("path");
+ p.attr("fill", "none").attr("stroke-width", "1").attr("stroke", a).attr(
+ "d",
+ "Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx", n.startPoint.x).replaceAll("starty", n.startPoint.y).replaceAll(
+ "controlx",
+ n.startPoint.x + (n.endPoint.x - n.startPoint.x) / 2 - (n.endPoint.x - n.startPoint.x) / 4
+ ).replaceAll("controly", n.startPoint.y + (n.endPoint.y - n.startPoint.y) / 2).replaceAll("stopx", n.endPoint.x).replaceAll("stopy", n.endPoint.y)
+ ), n.type !== "rel_b" && p.attr("marker-end", "url(" + d + "#arrowhead)"), (n.type === "birel" || n.type === "rel_b") && p.attr("marker-start", "url(" + d + "#arrowend)");
+ }
+ let y = i.messageFont();
+ W(i)(
+ n.label.text,
+ o,
+ Math.min(n.startPoint.x, n.endPoint.x) + Math.abs(n.endPoint.x - n.startPoint.x) / 2 + s,
+ Math.min(n.startPoint.y, n.endPoint.y) + Math.abs(n.endPoint.y - n.startPoint.y) / 2 + u,
+ n.label.width,
+ n.label.height,
+ { fill: r },
+ y
+ ), n.techn && n.techn.text !== "" && (y = i.messageFont(), W(i)(
+ "[" + n.techn.text + "]",
+ o,
+ Math.min(n.startPoint.x, n.endPoint.x) + Math.abs(n.endPoint.x - n.startPoint.x) / 2 + s,
+ Math.min(n.startPoint.y, n.endPoint.y) + Math.abs(n.endPoint.y - n.startPoint.y) / 2 + i.messageFontSize + 5 + u,
+ Math.max(n.label.width, n.techn.width),
+ n.techn.height,
+ { fill: r, "font-style": "italic" },
+ y
+ ));
+ }
+}, A0 = function(e, t, i) {
+ const o = e.append("g");
+ let l = t.bgColor ? t.bgColor : "none", n = t.borderColor ? t.borderColor : "#444444", r = t.fontColor ? t.fontColor : "black", a = { "stroke-width": 1, "stroke-dasharray": "7.0,7.0" };
+ t.nodeType && (a = { "stroke-width": 1 });
+ let s = {
+ x: t.x,
+ y: t.y,
+ fill: l,
+ stroke: n,
+ width: t.width,
+ height: t.height,
+ rx: 2.5,
+ ry: 2.5,
+ attrs: a
+ };
+ de(o, s);
+ let u = i.boundaryFont();
+ u.fontWeight = "bold", u.fontSize = u.fontSize + 2, u.fontColor = r, W(i)(
+ t.label.text,
+ o,
+ t.x,
+ t.y + t.label.Y,
+ t.width,
+ t.height,
+ { fill: "#444444" },
+ u
+ ), t.type && t.type.text !== "" && (u = i.boundaryFont(), u.fontColor = r, W(i)(
+ t.type.text,
+ o,
+ t.x,
+ t.y + t.type.Y,
+ t.width,
+ t.height,
+ { fill: "#444444" },
+ u
+ )), t.descr && t.descr.text !== "" && (u = i.boundaryFont(), u.fontSize = u.fontSize - 2, u.fontColor = r, W(i)(
+ t.descr.text,
+ o,
+ t.x,
+ t.y + t.descr.Y,
+ t.width,
+ t.height,
+ { fill: "#444444" },
+ u
+ ));
+}, C0 = function(e, t, i) {
+ var y;
+ let o = t.bgColor ? t.bgColor : i[t.typeC4Shape.text + "_bg_color"], l = t.borderColor ? t.borderColor : i[t.typeC4Shape.text + "_border_color"], n = t.fontColor ? t.fontColor : "#FFFFFF", r = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
+ switch (t.typeC4Shape.text) {
+ case "person":
+ r = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
+ break;
+ case "external_person":
+ r = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";
+ break;
+ }
+ const a = e.append("g");
+ a.attr("class", "person-man");
+ const s = Oe();
+ switch (t.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ case "system":
+ case "external_system":
+ case "container":
+ case "external_container":
+ case "component":
+ case "external_component":
+ s.x = t.x, s.y = t.y, s.fill = o, s.width = t.width, s.height = t.height, s.stroke = l, s.rx = 2.5, s.ry = 2.5, s.attrs = { "stroke-width": 0.5 }, de(a, s);
+ break;
+ case "system_db":
+ case "external_system_db":
+ case "container_db":
+ case "external_container_db":
+ case "component_db":
+ case "external_component_db":
+ a.append("path").attr("fill", o).attr("stroke-width", "0.5").attr("stroke", l).attr(
+ "d",
+ "Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx", t.x).replaceAll("starty", t.y).replaceAll("half", t.width / 2).replaceAll("height", t.height)
+ ), a.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", l).attr(
+ "d",
+ "Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx", t.x).replaceAll("starty", t.y).replaceAll("half", t.width / 2)
+ );
+ break;
+ case "system_queue":
+ case "external_system_queue":
+ case "container_queue":
+ case "external_container_queue":
+ case "component_queue":
+ case "external_component_queue":
+ a.append("path").attr("fill", o).attr("stroke-width", "0.5").attr("stroke", l).attr(
+ "d",
+ "Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx", t.x).replaceAll("starty", t.y).replaceAll("width", t.width).replaceAll("half", t.height / 2)
+ ), a.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", l).attr(
+ "d",
+ "Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx", t.x + t.width).replaceAll("starty", t.y).replaceAll("half", t.height / 2)
+ );
+ break;
+ }
+ let u = L0(i, t.typeC4Shape.text);
+ switch (a.append("text").attr("fill", n).attr("font-family", u.fontFamily).attr("font-size", u.fontSize - 2).attr("font-style", "italic").attr("lengthAdjust", "spacing").attr("textLength", t.typeC4Shape.width).attr("x", t.x + t.width / 2 - t.typeC4Shape.width / 2).attr("y", t.y + t.typeC4Shape.Y).text("<<" + t.typeC4Shape.text + ">>"), t.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ Te(
+ a,
+ 48,
+ 48,
+ t.x + t.width / 2 - 24,
+ t.y + t.image.Y,
+ r
+ );
+ break;
+ }
+ let d = i[t.typeC4Shape.text + "Font"]();
+ return d.fontWeight = "bold", d.fontSize = d.fontSize + 2, d.fontColor = n, W(i)(
+ t.label.text,
+ a,
+ t.x,
+ t.y + t.label.Y,
+ t.width,
+ t.height,
+ { fill: n },
+ d
+ ), d = i[t.typeC4Shape.text + "Font"](), d.fontColor = n, t.techn && ((y = t.techn) == null ? void 0 : y.text) !== "" ? W(i)(
+ t.techn.text,
+ a,
+ t.x,
+ t.y + t.techn.Y,
+ t.width,
+ t.height,
+ { fill: n, "font-style": "italic" },
+ d
+ ) : t.type && t.type.text !== "" && W(i)(
+ t.type.text,
+ a,
+ t.x,
+ t.y + t.type.Y,
+ t.width,
+ t.height,
+ { fill: n, "font-style": "italic" },
+ d
+ ), t.descr && t.descr.text !== "" && (d = i.personFont(), d.fontColor = n, W(i)(
+ t.descr.text,
+ a,
+ t.x,
+ t.y + t.descr.Y,
+ t.width,
+ t.height,
+ { fill: n },
+ d
+ )), t.height;
+}, w0 = function(e) {
+ e.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
+ );
+}, T0 = function(e) {
+ e.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
+ );
+}, O0 = function(e) {
+ e.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
+ );
+}, R0 = function(e) {
+ e.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z");
+}, S0 = function(e) {
+ e.append("defs").append("marker").attr("id", "arrowend").attr("refX", 1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 10 0 L 0 5 L 10 10 z");
+}, D0 = function(e) {
+ e.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).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");
+}, P0 = function(e) {
+ e.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);
+}, M0 = function(e) {
+ const i = e.append("defs").append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 16).attr("refY", 4);
+ i.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"), i.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");
+}, Oe = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: "#EDF2AE",
+ stroke: "#666",
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+}, L0 = (e, t) => ({
+ fontFamily: e[t + "FontFamily"],
+ fontSize: e[t + "FontSize"],
+ fontWeight: e[t + "FontWeight"]
+}), W = function() {
+ function e(l, n, r, a, s, u, d) {
+ const y = n.append("text").attr("x", r + s / 2).attr("y", a + u / 2 + 5).style("text-anchor", "middle").text(l);
+ o(y, d);
+ }
+ function t(l, n, r, a, s, u, d, y) {
+ const { fontSize: p, fontFamily: C, fontWeight: T } = y, R = l.split(le.lineBreakRegex);
+ for (let D = 0; D < R.length; D++) {
+ const L = D * p - p * (R.length - 1) / 2, Y = n.append("text").attr("x", r + s / 2).attr("y", a).style("text-anchor", "middle").attr("dominant-baseline", "middle").style("font-size", p).style("font-weight", T).style("font-family", C);
+ Y.append("tspan").attr("dy", L).text(R[D]).attr("alignment-baseline", "mathematical"), o(Y, d);
+ }
+ }
+ function i(l, n, r, a, s, u, d, y) {
+ const p = n.append("switch"), T = p.append("foreignObject").attr("x", r).attr("y", a).attr("width", s).attr("height", u).append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ T.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(l), t(l, p, r, a, s, u, d, y), o(T, d);
+ }
+ function o(l, n) {
+ for (const r in n)
+ n.hasOwnProperty(r) && l.attr(r, n[r]);
+ }
+ return function(l) {
+ return l.textPlacement === "fo" ? i : l.textPlacement === "old" ? e : t;
+ };
+}(), U = {
+ drawRect: de,
+ drawBoundary: A0,
+ drawC4Shape: C0,
+ drawRels: k0,
+ drawImage: Te,
+ insertArrowHead: R0,
+ insertArrowEnd: S0,
+ insertArrowFilledHead: D0,
+ insertDynamicNumber: P0,
+ insertArrowCrossHead: M0,
+ insertDatabaseIcon: w0,
+ insertComputerIcon: T0,
+ insertClockIcon: O0,
+ getNoteRect: Oe,
+ sanitizeUrl: ke
+ // TODO why is this exported?
+};
+let Jt = 0, Zt = 0, Re = 4, oe = 2;
+qt.yy = we;
+let b = {};
+class Se {
+ constructor(t) {
+ this.name = "", this.data = {}, this.data.startx = void 0, this.data.stopx = void 0, this.data.starty = void 0, this.data.stopy = void 0, this.data.widthLimit = void 0, this.nextData = {}, this.nextData.startx = void 0, this.nextData.stopx = void 0, this.nextData.starty = void 0, this.nextData.stopy = void 0, this.nextData.cnt = 0, ce(t.db.getConfig());
+ }
+ setData(t, i, o, l) {
+ this.nextData.startx = this.data.startx = t, this.nextData.stopx = this.data.stopx = i, this.nextData.starty = this.data.starty = o, this.nextData.stopy = this.data.stopy = l;
+ }
+ updateVal(t, i, o, l) {
+ t[i] === void 0 ? t[i] = o : t[i] = l(o, t[i]);
+ }
+ insert(t) {
+ this.nextData.cnt = this.nextData.cnt + 1;
+ let i = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + t.margin : this.nextData.stopx + t.margin * 2, o = i + t.width, l = this.nextData.starty + t.margin * 2, n = l + t.height;
+ (i >= this.data.widthLimit || o >= this.data.widthLimit || this.nextData.cnt > Re) && (i = this.nextData.startx + t.margin + b.nextLinePaddingX, l = this.nextData.stopy + t.margin * 2, this.nextData.stopx = o = i + t.width, this.nextData.starty = this.nextData.stopy, this.nextData.stopy = n = l + t.height, this.nextData.cnt = 1), t.x = i, t.y = l, this.updateVal(this.data, "startx", i, Math.min), this.updateVal(this.data, "starty", l, Math.min), this.updateVal(this.data, "stopx", o, Math.max), this.updateVal(this.data, "stopy", n, Math.max), this.updateVal(this.nextData, "startx", i, Math.min), this.updateVal(this.nextData, "starty", l, Math.min), this.updateVal(this.nextData, "stopx", o, Math.max), this.updateVal(this.nextData, "stopy", n, Math.max);
+ }
+ init(t) {
+ this.name = "", this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0,
+ widthLimit: void 0
+ }, this.nextData = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0,
+ cnt: 0
+ }, ce(t.db.getConfig());
+ }
+ bumpLastMargin(t) {
+ this.data.stopx += t, this.data.stopy += t;
+ }
+}
+const ce = function(e) {
+ Xe(b, e), e.fontFamily && (b.personFontFamily = b.systemFontFamily = b.messageFontFamily = e.fontFamily), e.fontSize && (b.personFontSize = b.systemFontSize = b.messageFontSize = e.fontSize), e.fontWeight && (b.personFontWeight = b.systemFontWeight = b.messageFontWeight = e.fontWeight);
+}, jt = (e, t) => ({
+ fontFamily: e[t + "FontFamily"],
+ fontSize: e[t + "FontSize"],
+ fontWeight: e[t + "FontWeight"]
+}), Ht = (e) => ({
+ fontFamily: e.boundaryFontFamily,
+ fontSize: e.boundaryFontSize,
+ fontWeight: e.boundaryFontWeight
+}), N0 = (e) => ({
+ fontFamily: e.messageFontFamily,
+ fontSize: e.messageFontSize,
+ fontWeight: e.messageFontWeight
+});
+function I(e, t, i, o, l) {
+ if (!t[e].width)
+ if (i)
+ t[e].text = Qe(t[e].text, l, o), t[e].textLines = t[e].text.split(le.lineBreakRegex).length, t[e].width = l, t[e].height = xe(t[e].text, o);
+ else {
+ let n = t[e].text.split(le.lineBreakRegex);
+ t[e].textLines = n.length;
+ let r = 0;
+ t[e].height = 0, t[e].width = 0;
+ for (const a of n)
+ t[e].width = Math.max(
+ Yt(a, o),
+ t[e].width
+ ), r = xe(a, o), t[e].height = t[e].height + r;
+ }
+}
+const De = function(e, t, i) {
+ t.x = i.data.startx, t.y = i.data.starty, t.width = i.data.stopx - i.data.startx, t.height = i.data.stopy - i.data.starty, t.label.y = b.c4ShapeMargin - 35;
+ let o = t.wrap && b.wrap, l = Ht(b);
+ l.fontSize = l.fontSize + 2, l.fontWeight = "bold";
+ let n = Yt(t.label.text, l);
+ I("label", t, o, l, n), U.drawBoundary(e, t, b);
+}, Pe = function(e, t, i, o) {
+ let l = 0;
+ for (const n of o) {
+ l = 0;
+ const r = i[n];
+ let a = jt(b, r.typeC4Shape.text);
+ switch (a.fontSize = a.fontSize - 2, r.typeC4Shape.width = Yt(
+ "<<" + r.typeC4Shape.text + ">>",
+ a
+ ), r.typeC4Shape.height = a.fontSize + 2, r.typeC4Shape.Y = b.c4ShapePadding, l = r.typeC4Shape.Y + r.typeC4Shape.height - 4, r.image = { width: 0, height: 0, Y: 0 }, r.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ r.image.width = 48, r.image.height = 48, r.image.Y = l, l = r.image.Y + r.image.height;
+ break;
+ }
+ r.sprite && (r.image.width = 48, r.image.height = 48, r.image.Y = l, l = r.image.Y + r.image.height);
+ let s = r.wrap && b.wrap, u = b.width - b.c4ShapePadding * 2, d = jt(b, r.typeC4Shape.text);
+ if (d.fontSize = d.fontSize + 2, d.fontWeight = "bold", I("label", r, s, d, u), r.label.Y = l + 8, l = r.label.Y + r.label.height, r.type && r.type.text !== "") {
+ r.type.text = "[" + r.type.text + "]";
+ let C = jt(b, r.typeC4Shape.text);
+ I("type", r, s, C, u), r.type.Y = l + 5, l = r.type.Y + r.type.height;
+ } else if (r.techn && r.techn.text !== "") {
+ r.techn.text = "[" + r.techn.text + "]";
+ let C = jt(b, r.techn.text);
+ I("techn", r, s, C, u), r.techn.Y = l + 5, l = r.techn.Y + r.techn.height;
+ }
+ let y = l, p = r.label.width;
+ if (r.descr && r.descr.text !== "") {
+ let C = jt(b, r.typeC4Shape.text);
+ I("descr", r, s, C, u), r.descr.Y = l + 20, l = r.descr.Y + r.descr.height, p = Math.max(r.label.width, r.descr.width), y = l - r.descr.textLines * 5;
+ }
+ p = p + b.c4ShapePadding, r.width = Math.max(r.width || b.width, p, b.width), r.height = Math.max(r.height || b.height, y, b.height), r.margin = r.margin || b.c4ShapeMargin, e.insert(r), U.drawC4Shape(t, r, b);
+ }
+ e.bumpLastMargin(b.c4ShapeMargin);
+};
+class B {
+ constructor(t, i) {
+ this.x = t, this.y = i;
+ }
+}
+let me = function(e, t) {
+ let i = e.x, o = e.y, l = t.x, n = t.y, r = i + e.width / 2, a = o + e.height / 2, s = Math.abs(i - l), u = Math.abs(o - n), d = u / s, y = e.height / e.width, p = null;
+ return o == n && i < l ? p = new B(i + e.width, a) : o == n && i > l ? p = new B(i, a) : i == l && o < n ? p = new B(r, o + e.height) : i == l && o > n && (p = new B(r, o)), i > l && o < n ? y >= d ? p = new B(i, a + d * e.width / 2) : p = new B(
+ r - s / u * e.height / 2,
+ o + e.height
+ ) : i < l && o < n ? y >= d ? p = new B(i + e.width, a + d * e.width / 2) : p = new B(
+ r + s / u * e.height / 2,
+ o + e.height
+ ) : i < l && o > n ? y >= d ? p = new B(i + e.width, a - d * e.width / 2) : p = new B(r + e.height / 2 * s / u, o) : i > l && o > n && (y >= d ? p = new B(i, a - e.width / 2 * d) : p = new B(r - e.height / 2 * s / u, o)), p;
+}, B0 = function(e, t) {
+ let i = { x: 0, y: 0 };
+ i.x = t.x + t.width / 2, i.y = t.y + t.height / 2;
+ let o = me(e, i);
+ i.x = e.x + e.width / 2, i.y = e.y + e.height / 2;
+ let l = me(t, i);
+ return { startPoint: o, endPoint: l };
+};
+const Y0 = function(e, t, i, o) {
+ let l = 0;
+ for (let n of t) {
+ l = l + 1;
+ let r = n.wrap && b.wrap, a = N0(b);
+ o.db.getC4Type() === "C4Dynamic" && (n.label.text = l + ": " + n.label.text);
+ let u = Yt(n.label.text, a);
+ I("label", n, r, a, u), n.techn && n.techn.text !== "" && (u = Yt(n.techn.text, a), I("techn", n, r, a, u)), n.descr && n.descr.text !== "" && (u = Yt(n.descr.text, a), I("descr", n, r, a, u));
+ let d = i(n.from), y = i(n.to), p = B0(d, y);
+ n.startPoint = p.startPoint, n.endPoint = p.endPoint;
+ }
+ U.drawRels(e, t, b);
+};
+function Me(e, t, i, o, l) {
+ let n = new Se(l);
+ n.data.widthLimit = i.data.widthLimit / Math.min(oe, o.length);
+ for (let [r, a] of o.entries()) {
+ let s = 0;
+ a.image = { width: 0, height: 0, Y: 0 }, a.sprite && (a.image.width = 48, a.image.height = 48, a.image.Y = s, s = a.image.Y + a.image.height);
+ let u = a.wrap && b.wrap, d = Ht(b);
+ if (d.fontSize = d.fontSize + 2, d.fontWeight = "bold", I(
+ "label",
+ a,
+ u,
+ d,
+ n.data.widthLimit
+ ), a.label.Y = s + 8, s = a.label.Y + a.label.height, a.type && a.type.text !== "") {
+ a.type.text = "[" + a.type.text + "]";
+ let T = Ht(b);
+ I(
+ "type",
+ a,
+ u,
+ T,
+ n.data.widthLimit
+ ), a.type.Y = s + 5, s = a.type.Y + a.type.height;
+ }
+ if (a.descr && a.descr.text !== "") {
+ let T = Ht(b);
+ T.fontSize = T.fontSize - 2, I(
+ "descr",
+ a,
+ u,
+ T,
+ n.data.widthLimit
+ ), a.descr.Y = s + 20, s = a.descr.Y + a.descr.height;
+ }
+ if (r == 0 || r % oe === 0) {
+ let T = i.data.startx + b.diagramMarginX, R = i.data.stopy + b.diagramMarginY + s;
+ n.setData(T, T, R, R);
+ } else {
+ let T = n.data.stopx !== n.data.startx ? n.data.stopx + b.diagramMarginX : n.data.startx, R = n.data.starty;
+ n.setData(T, T, R, R);
+ }
+ n.name = a.alias;
+ let y = l.db.getC4ShapeArray(a.alias), p = l.db.getC4ShapeKeys(a.alias);
+ p.length > 0 && Pe(
+ n,
+ e,
+ y,
+ p
+ ), t = a.alias;
+ let C = l.db.getBoundarys(t);
+ C.length > 0 && Me(
+ e,
+ t,
+ n,
+ C,
+ l
+ ), a.alias !== "global" && De(e, a, n), i.data.stopy = Math.max(
+ n.data.stopy + b.c4ShapeMargin,
+ i.data.stopy
+ ), i.data.stopx = Math.max(
+ n.data.stopx + b.c4ShapeMargin,
+ i.data.stopx
+ ), Jt = Math.max(Jt, i.data.stopx), Zt = Math.max(Zt, i.data.stopy);
+ }
+}
+const I0 = function(e, t, i, o) {
+ b = Ut().c4;
+ const l = Ut().securityLevel;
+ let n;
+ l === "sandbox" && (n = Qt("#i" + t));
+ const r = l === "sandbox" ? Qt(n.nodes()[0].contentDocument.body) : Qt("body");
+ let a = o.db;
+ o.db.setWrap(b.wrap), Re = a.getC4ShapeInRow(), oe = a.getC4BoundaryInRow(), _e.debug(`C:${JSON.stringify(b, null, 2)}`);
+ const s = l === "sandbox" ? r.select(`[id="${t}"]`) : Qt(`[id="${t}"]`);
+ U.insertComputerIcon(s), U.insertDatabaseIcon(s), U.insertClockIcon(s);
+ let u = new Se(o);
+ u.setData(
+ b.diagramMarginX,
+ b.diagramMarginX,
+ b.diagramMarginY,
+ b.diagramMarginY
+ ), u.data.widthLimit = screen.availWidth, Jt = b.diagramMarginX, Zt = b.diagramMarginY;
+ const d = o.db.getTitle();
+ let y = o.db.getBoundarys("");
+ Me(s, "", u, y, o), U.insertArrowHead(s), U.insertArrowEnd(s), U.insertArrowCrossHead(s), U.insertArrowFilledHead(s), Y0(s, o.db.getRels(), o.db.getC4Shape, o), u.data.stopx = Jt, u.data.stopy = Zt;
+ const p = u.data;
+ let T = p.stopy - p.starty + 2 * b.diagramMarginY;
+ const D = p.stopx - p.startx + 2 * b.diagramMarginX;
+ d && s.append("text").text(d).attr("x", (p.stopx - p.startx) / 2 - 4 * b.diagramMarginX).attr("y", p.starty + b.diagramMarginY), We(s, T, D, b.useMaxWidth);
+ const L = d ? 60 : 0;
+ s.attr(
+ "viewBox",
+ p.startx - b.diagramMarginX + " -" + (b.diagramMarginY + L) + " " + D + " " + (T + L)
+ ), _e.debug("models:", p);
+}, Ee = {
+ drawPersonOrSystemArray: Pe,
+ drawBoundary: De,
+ setConf: ce,
+ draw: I0
+}, V0 = (e) => `.person {
+ stroke: ${e.personBorder};
+ fill: ${e.personBkg};
+ }
+`, j0 = V0, X0 = {
+ parser: He,
+ db: we,
+ renderer: Ee,
+ styles: j0,
+ init: (e) => {
+ Ee.setConf(e.c4);
+ }
+};
+export {
+ X0 as diagram
+};
+//# sourceMappingURL=c4Diagram-d4b415eb.js.map
diff --git a/scopegraphs-render-docs/doc/js/classDiagram-634fc78b.js b/scopegraphs-render-docs/doc/js/classDiagram-634fc78b.js
new file mode 100644
index 0000000..b089196
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/classDiagram-634fc78b.js
@@ -0,0 +1,146 @@
+import { p as parser, d as db, s as styles } from "./styles-16907e1b.js";
+import { select } from "d3";
+import { layout } from "dagre-d3-es/src/dagre/index.js";
+import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
+import { g as getConfig, l as log } from "./commonDb-573409be.js";
+import { s as svgDraw } from "./svgDraw-2526cba0.js";
+import { k as configureSvgSize } from "./utils-d622194a.js";
+import "./mermaidAPI-3ae0f2f0.js";
+import "stylis";
+import "dompurify";
+import "lodash-es/isEmpty.js";
+import "dayjs";
+import "khroma";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+let idCache = {};
+const padding = 20;
+const getGraphId = function(label) {
+ const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);
+ if (foundEntry) {
+ return foundEntry[0];
+ }
+};
+const insertMarkers = function(elem) {
+ elem.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");
+ elem.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");
+ elem.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");
+ elem.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");
+ elem.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");
+ elem.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");
+ elem.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");
+ elem.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");
+};
+const draw = function(text, id, _version, diagObj) {
+ const conf = getConfig().class;
+ idCache = {};
+ log.info("Rendering diagram " + text);
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const diagram2 = root.select(`[id='${id}']`);
+ insertMarkers(diagram2);
+ const g = new graphlib.Graph({
+ multigraph: true
+ });
+ g.setGraph({
+ isMultiGraph: true
+ });
+ g.setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const classes = diagObj.db.getClasses();
+ const keys = Object.keys(classes);
+ for (const key of keys) {
+ const classDef = classes[key];
+ const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj);
+ idCache[node.id] = node;
+ g.setNode(node.id, node);
+ log.info("Org height: " + node.height);
+ }
+ const relations = diagObj.db.getRelations();
+ relations.forEach(function(relation) {
+ log.info(
+ "tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)
+ );
+ g.setEdge(
+ getGraphId(relation.id1),
+ getGraphId(relation.id2),
+ {
+ relation
+ },
+ relation.title || "DEFAULT"
+ );
+ });
+ const notes = diagObj.db.getNotes();
+ notes.forEach(function(note) {
+ log.debug(`Adding note: ${JSON.stringify(note)}`);
+ const node = svgDraw.drawNote(diagram2, note, conf, diagObj);
+ idCache[node.id] = node;
+ g.setNode(node.id, node);
+ if (note.class && note.class in classes) {
+ g.setEdge(
+ note.id,
+ getGraphId(note.class),
+ {
+ relation: {
+ id1: note.id,
+ id2: note.class,
+ relation: {
+ type1: "none",
+ type2: "none",
+ lineType: 10
+ }
+ }
+ },
+ "DEFAULT"
+ );
+ }
+ });
+ layout(g);
+ g.nodes().forEach(function(v) {
+ if (v !== void 0 && g.node(v) !== void 0) {
+ log.debug("Node " + v + ": " + JSON.stringify(g.node(v)));
+ root.select("#" + (diagObj.db.lookUpDomId(v) || v)).attr(
+ "transform",
+ "translate(" + (g.node(v).x - g.node(v).width / 2) + "," + (g.node(v).y - g.node(v).height / 2) + " )"
+ );
+ }
+ });
+ g.edges().forEach(function(e) {
+ if (e !== void 0 && g.edge(e) !== void 0) {
+ log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e)));
+ svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj);
+ }
+ });
+ const svgBounds = diagram2.node().getBBox();
+ const width = svgBounds.width + padding * 2;
+ const height = svgBounds.height + padding * 2;
+ configureSvgSize(diagram2, height, width, conf.useMaxWidth);
+ const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;
+ log.debug(`viewBox ${vBox}`);
+ diagram2.attr("viewBox", vBox);
+};
+const renderer = {
+ draw
+};
+const diagram = {
+ parser,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ if (!cnf.class) {
+ cnf.class = {};
+ }
+ cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ db.clear();
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=classDiagram-634fc78b.js.map
diff --git a/scopegraphs-render-docs/doc/js/classDiagram-6d218cdd.js b/scopegraphs-render-docs/doc/js/classDiagram-6d218cdd.js
new file mode 100644
index 0000000..8c9f580
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/classDiagram-6d218cdd.js
@@ -0,0 +1,140 @@
+import { p as parser, d as db, s as styles } from "./styles-123f2a17.js";
+import { g as getConfig, l as log, h as select } from "./commonDb-89160e91.js";
+import { G as Graph, l as layout } from "./layout-3ff13c4c.js";
+import { s as svgDraw } from "./svgDraw-dd61ddfa.js";
+import { v as configureSvgSize } from "./utils-1aebe9b6.js";
+import "./mermaidAPI-c841a67f.js";
+import "./line-fbe8f138.js";
+import "./array-b7dcf730.js";
+import "./constant-b644328d.js";
+let idCache = {};
+const padding = 20;
+const getGraphId = function(label) {
+ const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);
+ if (foundEntry) {
+ return foundEntry[0];
+ }
+};
+const insertMarkers = function(elem) {
+ elem.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");
+ elem.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");
+ elem.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");
+ elem.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");
+ elem.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");
+ elem.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");
+ elem.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");
+ elem.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");
+};
+const draw = function(text, id, _version, diagObj) {
+ const conf = getConfig().class;
+ idCache = {};
+ log.info("Rendering diagram " + text);
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const diagram2 = root.select(`[id='${id}']`);
+ insertMarkers(diagram2);
+ const g = new Graph({
+ multigraph: true
+ });
+ g.setGraph({
+ isMultiGraph: true
+ });
+ g.setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const classes = diagObj.db.getClasses();
+ const keys = Object.keys(classes);
+ for (const key of keys) {
+ const classDef = classes[key];
+ const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj);
+ idCache[node.id] = node;
+ g.setNode(node.id, node);
+ log.info("Org height: " + node.height);
+ }
+ const relations = diagObj.db.getRelations();
+ relations.forEach(function(relation) {
+ log.info(
+ "tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)
+ );
+ g.setEdge(
+ getGraphId(relation.id1),
+ getGraphId(relation.id2),
+ {
+ relation
+ },
+ relation.title || "DEFAULT"
+ );
+ });
+ const notes = diagObj.db.getNotes();
+ notes.forEach(function(note) {
+ log.debug(`Adding note: ${JSON.stringify(note)}`);
+ const node = svgDraw.drawNote(diagram2, note, conf, diagObj);
+ idCache[node.id] = node;
+ g.setNode(node.id, node);
+ if (note.class && note.class in classes) {
+ g.setEdge(
+ note.id,
+ getGraphId(note.class),
+ {
+ relation: {
+ id1: note.id,
+ id2: note.class,
+ relation: {
+ type1: "none",
+ type2: "none",
+ lineType: 10
+ }
+ }
+ },
+ "DEFAULT"
+ );
+ }
+ });
+ layout(g);
+ g.nodes().forEach(function(v) {
+ if (v !== void 0 && g.node(v) !== void 0) {
+ log.debug("Node " + v + ": " + JSON.stringify(g.node(v)));
+ root.select("#" + (diagObj.db.lookUpDomId(v) || v)).attr(
+ "transform",
+ "translate(" + (g.node(v).x - g.node(v).width / 2) + "," + (g.node(v).y - g.node(v).height / 2) + " )"
+ );
+ }
+ });
+ g.edges().forEach(function(e) {
+ if (e !== void 0 && g.edge(e) !== void 0) {
+ log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e)));
+ svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj);
+ }
+ });
+ const svgBounds = diagram2.node().getBBox();
+ const width = svgBounds.width + padding * 2;
+ const height = svgBounds.height + padding * 2;
+ configureSvgSize(diagram2, height, width, conf.useMaxWidth);
+ const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;
+ log.debug(`viewBox ${vBox}`);
+ diagram2.attr("viewBox", vBox);
+};
+const renderer = {
+ draw
+};
+const diagram = {
+ parser,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ if (!cnf.class) {
+ cnf.class = {};
+ }
+ cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ db.clear();
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=classDiagram-6d218cdd.js.map
diff --git a/scopegraphs-render-docs/doc/js/classDiagram-7b4b2ee6.js b/scopegraphs-render-docs/doc/js/classDiagram-7b4b2ee6.js
new file mode 100644
index 0000000..f912d87
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/classDiagram-7b4b2ee6.js
@@ -0,0 +1,94 @@
+import { p as W, d as M, s as H } from "./styles-b64b35cd.js";
+import { g as S, l as d, h as u } from "./commonDb-41f8b4c5.js";
+import { G as X, l as Y } from "./layout-492ec81d.js";
+import { s as l } from "./svgDraw-0a992cdb.js";
+import { v as Z } from "./utils-8ea37061.js";
+import "./mermaidAPI-67f627de.js";
+import "./line-05ccbb85.js";
+import "./array-2ff2c7a6.js";
+import "./constant-2fe7eae5.js";
+let h = {};
+const g = 20, p = function(e) {
+ const s = Object.entries(h).find((k) => k[1].label === e);
+ if (s)
+ return s[0];
+}, D = function(e) {
+ e.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"), e.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"), e.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"), e.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"), e.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"), e.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"), e.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"), e.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");
+}, $ = function(e, s, k, a) {
+ const f = S().class;
+ h = {}, d.info("Rendering diagram " + e);
+ const L = S().securityLevel;
+ let y;
+ L === "sandbox" && (y = u("#i" + s));
+ const x = L === "sandbox" ? u(y.nodes()[0].contentDocument.body) : u("body"), n = x.select(`[id='${s}']`);
+ D(n);
+ const r = new X({
+ multigraph: !0
+ });
+ r.setGraph({
+ isMultiGraph: !0
+ }), r.setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const m = a.db.getClasses(), N = Object.keys(m);
+ for (const t of N) {
+ const o = m[t], i = l.drawClass(n, o, f, a);
+ h[i.id] = i, r.setNode(i.id, i), d.info("Org height: " + i.height);
+ }
+ a.db.getRelations().forEach(function(t) {
+ d.info(
+ "tjoho" + p(t.id1) + p(t.id2) + JSON.stringify(t)
+ ), r.setEdge(
+ p(t.id1),
+ p(t.id2),
+ {
+ relation: t
+ },
+ t.title || "DEFAULT"
+ );
+ }), a.db.getNotes().forEach(function(t) {
+ d.debug(`Adding note: ${JSON.stringify(t)}`);
+ const o = l.drawNote(n, t, f, a);
+ h[o.id] = o, r.setNode(o.id, o), t.class && t.class in m && r.setEdge(
+ t.id,
+ p(t.class),
+ {
+ relation: {
+ id1: t.id,
+ id2: t.class,
+ relation: {
+ type1: "none",
+ type2: "none",
+ lineType: 10
+ }
+ }
+ },
+ "DEFAULT"
+ );
+ }), Y(r), r.nodes().forEach(function(t) {
+ t !== void 0 && r.node(t) !== void 0 && (d.debug("Node " + t + ": " + JSON.stringify(r.node(t))), x.select("#" + (a.db.lookUpDomId(t) || t)).attr(
+ "transform",
+ "translate(" + (r.node(t).x - r.node(t).width / 2) + "," + (r.node(t).y - r.node(t).height / 2) + " )"
+ ));
+ }), r.edges().forEach(function(t) {
+ t !== void 0 && r.edge(t) !== void 0 && (d.debug("Edge " + t.v + " -> " + t.w + ": " + JSON.stringify(r.edge(t))), l.drawEdge(n, r.edge(t), r.edge(t).relation, f, a));
+ });
+ const c = n.node().getBBox(), E = c.width + g * 2, b = c.height + g * 2;
+ Z(n, b, E, f.useMaxWidth);
+ const w = `${c.x - g} ${c.y - g} ${E} ${b}`;
+ d.debug(`viewBox ${w}`), n.attr("viewBox", w);
+}, B = {
+ draw: $
+}, z = {
+ parser: W,
+ db: M,
+ renderer: B,
+ styles: H,
+ init: (e) => {
+ e.class || (e.class = {}), e.class.arrowMarkerAbsolute = e.arrowMarkerAbsolute, M.clear();
+ }
+};
+export {
+ z as diagram
+};
+//# sourceMappingURL=classDiagram-7b4b2ee6.js.map
diff --git a/scopegraphs-render-docs/doc/js/classDiagram-v2-556a8c31.js b/scopegraphs-render-docs/doc/js/classDiagram-v2-556a8c31.js
new file mode 100644
index 0000000..9f7936d
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/classDiagram-v2-556a8c31.js
@@ -0,0 +1,198 @@
+import { p as M, d as k, s as B } from "./styles-b64b35cd.js";
+import { l as p, g as r, h as v, f as C } from "./commonDb-41f8b4c5.js";
+import { G as R } from "./layout-492ec81d.js";
+import { r as G } from "./index-6271e032.js";
+import { u as I, B as _, A as D, y as A, z } from "./utils-8ea37061.js";
+import "./mermaidAPI-67f627de.js";
+import "./edges-de377bae.js";
+import "./createText-23817c58.js";
+import "./svgDraw-0a992cdb.js";
+import "./line-05ccbb85.js";
+import "./array-2ff2c7a6.js";
+import "./constant-2fe7eae5.js";
+const E = (o) => C.sanitizeText(o, r());
+let S = {
+ dividerMargin: 10,
+ padding: 5,
+ textHeight: 10,
+ curve: void 0
+};
+const $ = function(o, l, b, a) {
+ const e = Object.keys(o);
+ p.info("keys:", e), p.info(o), e.forEach(function(s) {
+ var y, f;
+ const t = o[s];
+ let i = "";
+ t.cssClasses.length > 0 && (i = i + " " + t.cssClasses.join(" "));
+ const n = { labelStyle: "", style: "" }, m = t.label ?? t.id, c = 0, u = "class_box", d = {
+ labelStyle: n.labelStyle,
+ shape: u,
+ labelText: E(m),
+ classData: t,
+ rx: c,
+ ry: c,
+ class: i,
+ style: n.style,
+ id: t.id,
+ domId: t.domId,
+ tooltip: a.db.getTooltip(t.id) || "",
+ haveCallback: t.haveCallback,
+ link: t.link,
+ width: t.type === "group" ? 500 : void 0,
+ type: t.type,
+ // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
+ padding: ((y = r().flowchart) == null ? void 0 : y.padding) ?? ((f = r().class) == null ? void 0 : f.padding)
+ };
+ l.setNode(t.id, d), p.info("setNode", d);
+ });
+}, q = function(o, l, b, a) {
+ p.info(o), o.forEach(function(e, s) {
+ var x, h;
+ const t = e, i = "", n = { labelStyle: "", style: "" }, m = t.text, c = 0, u = "note", d = {
+ labelStyle: n.labelStyle,
+ shape: u,
+ labelText: E(m),
+ noteData: t,
+ rx: c,
+ ry: c,
+ class: i,
+ style: n.style,
+ id: t.id,
+ domId: t.id,
+ tooltip: "",
+ type: "note",
+ // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
+ padding: ((x = r().flowchart) == null ? void 0 : x.padding) ?? ((h = r().class) == null ? void 0 : h.padding)
+ };
+ if (l.setNode(t.id, d), p.info("setNode", d), !t.class || !(t.class in a))
+ return;
+ const y = b + s, f = {
+ id: `edgeNote${y}`,
+ //Set relationship style and line type
+ classes: "relation",
+ pattern: "dotted",
+ // Set link type for rendering
+ arrowhead: "none",
+ //Set edge extra labels
+ startLabelRight: "",
+ endLabelLeft: "",
+ //Set relation arrow types
+ arrowTypeStart: "none",
+ arrowTypeEnd: "none",
+ style: "fill:none",
+ labelStyle: "",
+ curve: D(S.curve, A)
+ };
+ l.setEdge(t.id, t.class, f, y);
+ });
+}, F = function(o, l) {
+ const b = r().flowchart;
+ let a = 0;
+ o.forEach(function(e) {
+ var t;
+ a++;
+ const s = {
+ //Set relationship style and line type
+ classes: "relation",
+ pattern: e.relation.lineType == 1 ? "dashed" : "solid",
+ id: "id" + a,
+ // Set link type for rendering
+ arrowhead: e.type === "arrow_open" ? "none" : "normal",
+ //Set edge extra labels
+ startLabelRight: e.relationTitle1 === "none" ? "" : e.relationTitle1,
+ endLabelLeft: e.relationTitle2 === "none" ? "" : e.relationTitle2,
+ //Set relation arrow types
+ arrowTypeStart: L(e.relation.type1),
+ arrowTypeEnd: L(e.relation.type2),
+ style: "fill:none",
+ labelStyle: "",
+ curve: D(b == null ? void 0 : b.curve, A)
+ };
+ if (p.info(s, e), e.style !== void 0) {
+ const i = z(e.style);
+ s.style = i.style, s.labelStyle = i.labelStyle;
+ }
+ e.text = e.title, e.text === void 0 ? e.style !== void 0 && (s.arrowheadStyle = "fill: #333") : (s.arrowheadStyle = "fill: #333", s.labelpos = "c", ((t = r().flowchart) == null ? void 0 : t.htmlLabels) ?? r().htmlLabels ? (s.labelType = "html", s.label = '' + e.text + "") : (s.labelType = "text", s.label = e.text.replace(C.lineBreakRegex, `
+`), e.style === void 0 && (s.style = s.style || "stroke: #333; stroke-width: 1.5px;fill:none"), s.labelStyle = s.labelStyle.replace("color:", "fill:"))), l.setEdge(e.id1, e.id2, s, a);
+ });
+}, H = function(o) {
+ S = {
+ ...S,
+ ...o
+ };
+}, P = function(o, l, b, a) {
+ p.info("Drawing class - ", l);
+ const e = r().flowchart ?? r().class, s = r().securityLevel;
+ p.info("config:", e);
+ const t = (e == null ? void 0 : e.nodeSpacing) ?? 50, i = (e == null ? void 0 : e.rankSpacing) ?? 50, n = new R({
+ multigraph: !0,
+ compound: !0
+ }).setGraph({
+ rankdir: a.db.getDirection(),
+ nodesep: t,
+ ranksep: i,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ }), m = a.db.getClasses(), c = a.db.getRelations(), u = a.db.getNotes();
+ p.info(c), $(m, n, l, a), F(c, n), q(u, n, c.length + 1, m);
+ let d;
+ s === "sandbox" && (d = v("#i" + l));
+ const y = s === "sandbox" ? (
+ // @ts-ignore Ignore type error for now
+ v(d.nodes()[0].contentDocument.body)
+ ) : v("body"), f = y.select(`[id="${l}"]`), x = y.select("#" + l + " g");
+ if (G(
+ x,
+ n,
+ ["aggregation", "extension", "composition", "dependency", "lollipop"],
+ "classDiagram",
+ l
+ ), I.insertTitle(f, "classTitleText", (e == null ? void 0 : e.titleTopMargin) ?? 5, a.db.getDiagramTitle()), _(n, f, e == null ? void 0 : e.diagramPadding, e == null ? void 0 : e.useMaxWidth), !(e != null && e.htmlLabels)) {
+ const h = s === "sandbox" ? d.nodes()[0].contentDocument : document, N = h.querySelectorAll('[id="' + l + '"] .edgeLabel .label');
+ for (const w of N) {
+ const T = w.getBBox(), g = h.createElementNS("http://www.w3.org/2000/svg", "rect");
+ g.setAttribute("rx", 0), g.setAttribute("ry", 0), g.setAttribute("width", T.width), g.setAttribute("height", T.height), w.insertBefore(g, w.firstChild);
+ }
+ }
+};
+function L(o) {
+ let l;
+ switch (o) {
+ case 0:
+ l = "aggregation";
+ break;
+ case 1:
+ l = "extension";
+ break;
+ case 2:
+ l = "composition";
+ break;
+ case 3:
+ l = "dependency";
+ break;
+ case 4:
+ l = "lollipop";
+ break;
+ default:
+ l = "none";
+ }
+ return l;
+}
+const V = {
+ setConf: H,
+ draw: P
+}, se = {
+ parser: M,
+ db: k,
+ renderer: V,
+ styles: B,
+ init: (o) => {
+ o.class || (o.class = {}), o.class.arrowMarkerAbsolute = o.arrowMarkerAbsolute, k.clear();
+ }
+};
+export {
+ se as diagram
+};
+//# sourceMappingURL=classDiagram-v2-556a8c31.js.map
diff --git a/scopegraphs-render-docs/doc/js/classDiagram-v2-6aaa1e9f.js b/scopegraphs-render-docs/doc/js/classDiagram-v2-6aaa1e9f.js
new file mode 100644
index 0000000..3355b68
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/classDiagram-v2-6aaa1e9f.js
@@ -0,0 +1,270 @@
+import { p as parser, d as db, s as styles } from "./styles-123f2a17.js";
+import { l as log, g as getConfig, h as select, f as common } from "./commonDb-89160e91.js";
+import { G as Graph } from "./layout-3ff13c4c.js";
+import { r as render } from "./index-c47ff54b.js";
+import { u as utils, B as setupGraphViewbox, A as interpolateToCurve, y as curveLinear, z as getStylesFromArray } from "./utils-1aebe9b6.js";
+import "./mermaidAPI-c841a67f.js";
+import "./edges-17d4be60.js";
+import "./createText-b0d5c0ec.js";
+import "./svgDraw-dd61ddfa.js";
+import "./line-fbe8f138.js";
+import "./array-b7dcf730.js";
+import "./constant-b644328d.js";
+const sanitizeText = (txt) => common.sanitizeText(txt, getConfig());
+let conf = {
+ dividerMargin: 10,
+ padding: 5,
+ textHeight: 10,
+ curve: void 0
+};
+const addClasses = function(classes, g, _id, diagObj) {
+ const keys = Object.keys(classes);
+ log.info("keys:", keys);
+ log.info(classes);
+ keys.forEach(function(id) {
+ var _a, _b;
+ const vertex = classes[id];
+ let cssClassStr = "";
+ if (vertex.cssClasses.length > 0) {
+ cssClassStr = cssClassStr + " " + vertex.cssClasses.join(" ");
+ }
+ const styles2 = { labelStyle: "", style: "" };
+ const vertexText = vertex.label ?? vertex.id;
+ const radius = 0;
+ const shape = "class_box";
+ const node = {
+ labelStyle: styles2.labelStyle,
+ shape,
+ labelText: sanitizeText(vertexText),
+ classData: vertex,
+ rx: radius,
+ ry: radius,
+ class: cssClassStr,
+ style: styles2.style,
+ id: vertex.id,
+ domId: vertex.domId,
+ tooltip: diagObj.db.getTooltip(vertex.id) || "",
+ haveCallback: vertex.haveCallback,
+ link: vertex.link,
+ width: vertex.type === "group" ? 500 : void 0,
+ type: vertex.type,
+ // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
+ padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)
+ };
+ g.setNode(vertex.id, node);
+ log.info("setNode", node);
+ });
+};
+const addNotes = function(notes, g, startEdgeId, classes) {
+ log.info(notes);
+ notes.forEach(function(note, i) {
+ var _a, _b;
+ const vertex = note;
+ const cssNoteStr = "";
+ const styles2 = { labelStyle: "", style: "" };
+ const vertexText = vertex.text;
+ const radius = 0;
+ const shape = "note";
+ const node = {
+ labelStyle: styles2.labelStyle,
+ shape,
+ labelText: sanitizeText(vertexText),
+ noteData: vertex,
+ rx: radius,
+ ry: radius,
+ class: cssNoteStr,
+ style: styles2.style,
+ id: vertex.id,
+ domId: vertex.id,
+ tooltip: "",
+ type: "note",
+ // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
+ padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)
+ };
+ g.setNode(vertex.id, node);
+ log.info("setNode", node);
+ if (!vertex.class || !(vertex.class in classes)) {
+ return;
+ }
+ const edgeId = startEdgeId + i;
+ const edgeData = {
+ id: `edgeNote${edgeId}`,
+ //Set relationship style and line type
+ classes: "relation",
+ pattern: "dotted",
+ // Set link type for rendering
+ arrowhead: "none",
+ //Set edge extra labels
+ startLabelRight: "",
+ endLabelLeft: "",
+ //Set relation arrow types
+ arrowTypeStart: "none",
+ arrowTypeEnd: "none",
+ style: "fill:none",
+ labelStyle: "",
+ curve: interpolateToCurve(conf.curve, curveLinear)
+ };
+ g.setEdge(vertex.id, vertex.class, edgeData, edgeId);
+ });
+};
+const addRelations = function(relations, g) {
+ const conf2 = getConfig().flowchart;
+ let cnt = 0;
+ relations.forEach(function(edge) {
+ var _a;
+ cnt++;
+ const edgeData = {
+ //Set relationship style and line type
+ classes: "relation",
+ pattern: edge.relation.lineType == 1 ? "dashed" : "solid",
+ id: "id" + cnt,
+ // Set link type for rendering
+ arrowhead: edge.type === "arrow_open" ? "none" : "normal",
+ //Set edge extra labels
+ startLabelRight: edge.relationTitle1 === "none" ? "" : edge.relationTitle1,
+ endLabelLeft: edge.relationTitle2 === "none" ? "" : edge.relationTitle2,
+ //Set relation arrow types
+ arrowTypeStart: getArrowMarker(edge.relation.type1),
+ arrowTypeEnd: getArrowMarker(edge.relation.type2),
+ style: "fill:none",
+ labelStyle: "",
+ curve: interpolateToCurve(conf2 == null ? void 0 : conf2.curve, curveLinear)
+ };
+ log.info(edgeData, edge);
+ if (edge.style !== void 0) {
+ const styles2 = getStylesFromArray(edge.style);
+ edgeData.style = styles2.style;
+ edgeData.labelStyle = styles2.labelStyle;
+ }
+ edge.text = edge.title;
+ if (edge.text === void 0) {
+ if (edge.style !== void 0) {
+ edgeData.arrowheadStyle = "fill: #333";
+ }
+ } else {
+ edgeData.arrowheadStyle = "fill: #333";
+ edgeData.labelpos = "c";
+ if (((_a = getConfig().flowchart) == null ? void 0 : _a.htmlLabels) ?? getConfig().htmlLabels) {
+ edgeData.labelType = "html";
+ edgeData.label = '' + edge.text + "";
+ } else {
+ edgeData.labelType = "text";
+ edgeData.label = edge.text.replace(common.lineBreakRegex, "\n");
+ if (edge.style === void 0) {
+ edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none";
+ }
+ edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
+ }
+ }
+ g.setEdge(edge.id1, edge.id2, edgeData, cnt);
+ });
+};
+const setConf = function(cnf) {
+ conf = {
+ ...conf,
+ ...cnf
+ };
+};
+const draw = function(text, id, _version, diagObj) {
+ log.info("Drawing class - ", id);
+ const conf2 = getConfig().flowchart ?? getConfig().class;
+ const securityLevel = getConfig().securityLevel;
+ log.info("config:", conf2);
+ const nodeSpacing = (conf2 == null ? void 0 : conf2.nodeSpacing) ?? 50;
+ const rankSpacing = (conf2 == null ? void 0 : conf2.rankSpacing) ?? 50;
+ const g = new Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: diagObj.db.getDirection(),
+ nodesep: nodeSpacing,
+ ranksep: rankSpacing,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const classes = diagObj.db.getClasses();
+ const relations = diagObj.db.getRelations();
+ const notes = diagObj.db.getNotes();
+ log.info(relations);
+ addClasses(classes, g, id, diagObj);
+ addRelations(relations, g);
+ addNotes(notes, g, relations.length + 1, classes);
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? (
+ // @ts-ignore Ignore type error for now
+ select(sandboxElement.nodes()[0].contentDocument.body)
+ ) : select("body");
+ const svg = root.select(`[id="${id}"]`);
+ const element = root.select("#" + id + " g");
+ render(
+ element,
+ g,
+ ["aggregation", "extension", "composition", "dependency", "lollipop"],
+ "classDiagram",
+ id
+ );
+ utils.insertTitle(svg, "classTitleText", (conf2 == null ? void 0 : conf2.titleTopMargin) ?? 5, diagObj.db.getDiagramTitle());
+ setupGraphViewbox(g, svg, conf2 == null ? void 0 : conf2.diagramPadding, conf2 == null ? void 0 : conf2.useMaxWidth);
+ if (!(conf2 == null ? void 0 : conf2.htmlLabels)) {
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
+ for (const label of labels) {
+ const dim = label.getBBox();
+ const rect = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
+ rect.setAttribute("rx", 0);
+ rect.setAttribute("ry", 0);
+ rect.setAttribute("width", dim.width);
+ rect.setAttribute("height", dim.height);
+ label.insertBefore(rect, label.firstChild);
+ }
+ }
+};
+function getArrowMarker(type) {
+ let marker;
+ switch (type) {
+ case 0:
+ marker = "aggregation";
+ break;
+ case 1:
+ marker = "extension";
+ break;
+ case 2:
+ marker = "composition";
+ break;
+ case 3:
+ marker = "dependency";
+ break;
+ case 4:
+ marker = "lollipop";
+ break;
+ default:
+ marker = "none";
+ }
+ return marker;
+}
+const renderer = {
+ setConf,
+ draw
+};
+const diagram = {
+ parser,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ if (!cnf.class) {
+ cnf.class = {};
+ }
+ cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ db.clear();
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=classDiagram-v2-6aaa1e9f.js.map
diff --git a/scopegraphs-render-docs/doc/js/classDiagram-v2-72bddc41.js b/scopegraphs-render-docs/doc/js/classDiagram-v2-72bddc41.js
new file mode 100644
index 0000000..dd46f85
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/classDiagram-v2-72bddc41.js
@@ -0,0 +1,278 @@
+import { p as parser, d as db, s as styles } from "./styles-16907e1b.js";
+import { select, curveLinear } from "d3";
+import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
+import { l as log, g as getConfig, e as common } from "./commonDb-573409be.js";
+import { r as render } from "./index-5219d011.js";
+import { u as utils, s as setupGraphViewbox, o as interpolateToCurve, n as getStylesFromArray } from "./utils-d622194a.js";
+import "./mermaidAPI-3ae0f2f0.js";
+import "stylis";
+import "dompurify";
+import "lodash-es/isEmpty.js";
+import "dayjs";
+import "khroma";
+import "dagre-d3-es/src/dagre/index.js";
+import "dagre-d3-es/src/graphlib/json.js";
+import "./edges-2e77835f.js";
+import "./createText-1f5f8f92.js";
+import "@khanacademy/simple-markdown";
+import "./svgDraw-2526cba0.js";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+const sanitizeText = (txt) => common.sanitizeText(txt, getConfig());
+let conf = {
+ dividerMargin: 10,
+ padding: 5,
+ textHeight: 10,
+ curve: void 0
+};
+const addClasses = function(classes, g, _id, diagObj) {
+ const keys = Object.keys(classes);
+ log.info("keys:", keys);
+ log.info(classes);
+ keys.forEach(function(id) {
+ var _a, _b;
+ const vertex = classes[id];
+ let cssClassStr = "";
+ if (vertex.cssClasses.length > 0) {
+ cssClassStr = cssClassStr + " " + vertex.cssClasses.join(" ");
+ }
+ const styles2 = { labelStyle: "", style: "" };
+ const vertexText = vertex.label ?? vertex.id;
+ const radius = 0;
+ const shape = "class_box";
+ const node = {
+ labelStyle: styles2.labelStyle,
+ shape,
+ labelText: sanitizeText(vertexText),
+ classData: vertex,
+ rx: radius,
+ ry: radius,
+ class: cssClassStr,
+ style: styles2.style,
+ id: vertex.id,
+ domId: vertex.domId,
+ tooltip: diagObj.db.getTooltip(vertex.id) || "",
+ haveCallback: vertex.haveCallback,
+ link: vertex.link,
+ width: vertex.type === "group" ? 500 : void 0,
+ type: vertex.type,
+ // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
+ padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)
+ };
+ g.setNode(vertex.id, node);
+ log.info("setNode", node);
+ });
+};
+const addNotes = function(notes, g, startEdgeId, classes) {
+ log.info(notes);
+ notes.forEach(function(note, i) {
+ var _a, _b;
+ const vertex = note;
+ const cssNoteStr = "";
+ const styles2 = { labelStyle: "", style: "" };
+ const vertexText = vertex.text;
+ const radius = 0;
+ const shape = "note";
+ const node = {
+ labelStyle: styles2.labelStyle,
+ shape,
+ labelText: sanitizeText(vertexText),
+ noteData: vertex,
+ rx: radius,
+ ry: radius,
+ class: cssNoteStr,
+ style: styles2.style,
+ id: vertex.id,
+ domId: vertex.id,
+ tooltip: "",
+ type: "note",
+ // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
+ padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)
+ };
+ g.setNode(vertex.id, node);
+ log.info("setNode", node);
+ if (!vertex.class || !(vertex.class in classes)) {
+ return;
+ }
+ const edgeId = startEdgeId + i;
+ const edgeData = {
+ id: `edgeNote${edgeId}`,
+ //Set relationship style and line type
+ classes: "relation",
+ pattern: "dotted",
+ // Set link type for rendering
+ arrowhead: "none",
+ //Set edge extra labels
+ startLabelRight: "",
+ endLabelLeft: "",
+ //Set relation arrow types
+ arrowTypeStart: "none",
+ arrowTypeEnd: "none",
+ style: "fill:none",
+ labelStyle: "",
+ curve: interpolateToCurve(conf.curve, curveLinear)
+ };
+ g.setEdge(vertex.id, vertex.class, edgeData, edgeId);
+ });
+};
+const addRelations = function(relations, g) {
+ const conf2 = getConfig().flowchart;
+ let cnt = 0;
+ relations.forEach(function(edge) {
+ var _a;
+ cnt++;
+ const edgeData = {
+ //Set relationship style and line type
+ classes: "relation",
+ pattern: edge.relation.lineType == 1 ? "dashed" : "solid",
+ id: "id" + cnt,
+ // Set link type for rendering
+ arrowhead: edge.type === "arrow_open" ? "none" : "normal",
+ //Set edge extra labels
+ startLabelRight: edge.relationTitle1 === "none" ? "" : edge.relationTitle1,
+ endLabelLeft: edge.relationTitle2 === "none" ? "" : edge.relationTitle2,
+ //Set relation arrow types
+ arrowTypeStart: getArrowMarker(edge.relation.type1),
+ arrowTypeEnd: getArrowMarker(edge.relation.type2),
+ style: "fill:none",
+ labelStyle: "",
+ curve: interpolateToCurve(conf2 == null ? void 0 : conf2.curve, curveLinear)
+ };
+ log.info(edgeData, edge);
+ if (edge.style !== void 0) {
+ const styles2 = getStylesFromArray(edge.style);
+ edgeData.style = styles2.style;
+ edgeData.labelStyle = styles2.labelStyle;
+ }
+ edge.text = edge.title;
+ if (edge.text === void 0) {
+ if (edge.style !== void 0) {
+ edgeData.arrowheadStyle = "fill: #333";
+ }
+ } else {
+ edgeData.arrowheadStyle = "fill: #333";
+ edgeData.labelpos = "c";
+ if (((_a = getConfig().flowchart) == null ? void 0 : _a.htmlLabels) ?? getConfig().htmlLabels) {
+ edgeData.labelType = "html";
+ edgeData.label = '' + edge.text + "";
+ } else {
+ edgeData.labelType = "text";
+ edgeData.label = edge.text.replace(common.lineBreakRegex, "\n");
+ if (edge.style === void 0) {
+ edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none";
+ }
+ edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
+ }
+ }
+ g.setEdge(edge.id1, edge.id2, edgeData, cnt);
+ });
+};
+const setConf = function(cnf) {
+ conf = {
+ ...conf,
+ ...cnf
+ };
+};
+const draw = function(text, id, _version, diagObj) {
+ log.info("Drawing class - ", id);
+ const conf2 = getConfig().flowchart ?? getConfig().class;
+ const securityLevel = getConfig().securityLevel;
+ log.info("config:", conf2);
+ const nodeSpacing = (conf2 == null ? void 0 : conf2.nodeSpacing) ?? 50;
+ const rankSpacing = (conf2 == null ? void 0 : conf2.rankSpacing) ?? 50;
+ const g = new graphlib.Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: diagObj.db.getDirection(),
+ nodesep: nodeSpacing,
+ ranksep: rankSpacing,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const classes = diagObj.db.getClasses();
+ const relations = diagObj.db.getRelations();
+ const notes = diagObj.db.getNotes();
+ log.info(relations);
+ addClasses(classes, g, id, diagObj);
+ addRelations(relations, g);
+ addNotes(notes, g, relations.length + 1, classes);
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? (
+ // @ts-ignore Ignore type error for now
+ select(sandboxElement.nodes()[0].contentDocument.body)
+ ) : select("body");
+ const svg = root.select(`[id="${id}"]`);
+ const element = root.select("#" + id + " g");
+ render(
+ element,
+ g,
+ ["aggregation", "extension", "composition", "dependency", "lollipop"],
+ "classDiagram",
+ id
+ );
+ utils.insertTitle(svg, "classTitleText", (conf2 == null ? void 0 : conf2.titleTopMargin) ?? 5, diagObj.db.getDiagramTitle());
+ setupGraphViewbox(g, svg, conf2 == null ? void 0 : conf2.diagramPadding, conf2 == null ? void 0 : conf2.useMaxWidth);
+ if (!(conf2 == null ? void 0 : conf2.htmlLabels)) {
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
+ for (const label of labels) {
+ const dim = label.getBBox();
+ const rect = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
+ rect.setAttribute("rx", 0);
+ rect.setAttribute("ry", 0);
+ rect.setAttribute("width", dim.width);
+ rect.setAttribute("height", dim.height);
+ label.insertBefore(rect, label.firstChild);
+ }
+ }
+};
+function getArrowMarker(type) {
+ let marker;
+ switch (type) {
+ case 0:
+ marker = "aggregation";
+ break;
+ case 1:
+ marker = "extension";
+ break;
+ case 2:
+ marker = "composition";
+ break;
+ case 3:
+ marker = "dependency";
+ break;
+ case 4:
+ marker = "lollipop";
+ break;
+ default:
+ marker = "none";
+ }
+ return marker;
+}
+const renderer = {
+ setConf,
+ draw
+};
+const diagram = {
+ parser,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ if (!cnf.class) {
+ cnf.class = {};
+ }
+ cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ db.clear();
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=classDiagram-v2-72bddc41.js.map
diff --git a/scopegraphs-render-docs/doc/js/commonDb-41f8b4c5.js b/scopegraphs-render-docs/doc/js/commonDb-41f8b4c5.js
new file mode 100644
index 0000000..2804d96
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/commonDb-41f8b4c5.js
@@ -0,0 +1,5186 @@
+var Do = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
+function mh(t) {
+ return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
+}
+var xi = {}, Ro = {
+ get exports() {
+ return xi;
+ },
+ set exports(t) {
+ xi = t;
+ }
+};
+(function(t, e) {
+ (function(i, r) {
+ t.exports = r();
+ })(Do, function() {
+ var i = 1e3, r = 6e4, o = 36e5, n = "millisecond", s = "second", l = "minute", h = "hour", u = "day", f = "week", g = "month", x = "quarter", _ = "year", M = "date", z = "Invalid Date", j = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, Ot = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, nt = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(k) {
+ var y = ["th", "st", "nd", "rd"], p = k % 100;
+ return "[" + k + (y[(p - 20) % 10] || y[p] || y[0]) + "]";
+ } }, Q = function(k, y, p) {
+ var B = String(k);
+ return !B || B.length >= y ? k : "" + Array(y + 1 - B.length).join(p) + k;
+ }, H = { s: Q, z: function(k) {
+ var y = -k.utcOffset(), p = Math.abs(y), B = Math.floor(p / 60), b = p % 60;
+ return (y <= 0 ? "+" : "-") + Q(B, 2, "0") + ":" + Q(b, 2, "0");
+ }, m: function k(y, p) {
+ if (y.date() < p.date())
+ return -k(p, y);
+ var B = 12 * (p.year() - y.year()) + (p.month() - y.month()), b = y.clone().add(B, g), F = p - b < 0, w = y.clone().add(B + (F ? -1 : 1), g);
+ return +(-(B + (p - b) / (F ? b - w : w - b)) || 0);
+ }, a: function(k) {
+ return k < 0 ? Math.ceil(k) || 0 : Math.floor(k);
+ }, p: function(k) {
+ return { M: g, y: _, w: f, d: u, D: M, h, m: l, s, ms: n, Q: x }[k] || String(k || "").toLowerCase().replace(/s$/, "");
+ }, u: function(k) {
+ return k === void 0;
+ } }, at = "en", lt = {};
+ lt[at] = nt;
+ var It = function(k) {
+ return k instanceof qt;
+ }, Ht = function k(y, p, B) {
+ var b;
+ if (!y)
+ return at;
+ if (typeof y == "string") {
+ var F = y.toLowerCase();
+ lt[F] && (b = F), p && (lt[F] = p, b = F);
+ var w = y.split("-");
+ if (!b && w.length > 1)
+ return k(w[0]);
+ } else {
+ var O = y.name;
+ lt[O] = y, b = O;
+ }
+ return !B && b && (at = b), b || !B && at;
+ }, W = function(k, y) {
+ if (It(k))
+ return k.clone();
+ var p = typeof y == "object" ? y : {};
+ return p.date = k, p.args = arguments, new qt(p);
+ }, D = H;
+ D.l = Ht, D.i = It, D.w = function(k, y) {
+ return W(k, { locale: y.$L, utc: y.$u, x: y.$x, $offset: y.$offset });
+ };
+ var qt = function() {
+ function k(p) {
+ this.$L = Ht(p.locale, null, !0), this.parse(p);
+ }
+ var y = k.prototype;
+ return y.parse = function(p) {
+ this.$d = function(B) {
+ var b = B.date, F = B.utc;
+ if (b === null)
+ return new Date(NaN);
+ if (D.u(b))
+ return new Date();
+ if (b instanceof Date)
+ return new Date(b);
+ if (typeof b == "string" && !/Z$/i.test(b)) {
+ var w = b.match(j);
+ if (w) {
+ var O = w[2] - 1 || 0, $ = (w[7] || "0").substring(0, 3);
+ return F ? new Date(Date.UTC(w[1], O, w[3] || 1, w[4] || 0, w[5] || 0, w[6] || 0, $)) : new Date(w[1], O, w[3] || 1, w[4] || 0, w[5] || 0, w[6] || 0, $);
+ }
+ }
+ return new Date(b);
+ }(p), this.$x = p.x || {}, this.init();
+ }, y.init = function() {
+ var p = this.$d;
+ this.$y = p.getFullYear(), this.$M = p.getMonth(), this.$D = p.getDate(), this.$W = p.getDay(), this.$H = p.getHours(), this.$m = p.getMinutes(), this.$s = p.getSeconds(), this.$ms = p.getMilliseconds();
+ }, y.$utils = function() {
+ return D;
+ }, y.isValid = function() {
+ return this.$d.toString() !== z;
+ }, y.isSame = function(p, B) {
+ var b = W(p);
+ return this.startOf(B) <= b && b <= this.endOf(B);
+ }, y.isAfter = function(p, B) {
+ return W(p) < this.startOf(B);
+ }, y.isBefore = function(p, B) {
+ return this.endOf(B) < W(p);
+ }, y.$g = function(p, B, b) {
+ return D.u(p) ? this[B] : this.set(b, p);
+ }, y.unix = function() {
+ return Math.floor(this.valueOf() / 1e3);
+ }, y.valueOf = function() {
+ return this.$d.getTime();
+ }, y.startOf = function(p, B) {
+ var b = this, F = !!D.u(B) || B, w = D.p(p), O = function(bt, G) {
+ var ct = D.w(b.$u ? Date.UTC(b.$y, G, bt) : new Date(b.$y, G, bt), b);
+ return F ? ct : ct.endOf(u);
+ }, $ = function(bt, G) {
+ return D.w(b.toDate()[bt].apply(b.toDate("s"), (F ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(G)), b);
+ }, A = this.$W, P = this.$M, R = this.$D, ht = "set" + (this.$u ? "UTC" : "");
+ switch (w) {
+ case _:
+ return F ? O(1, 0) : O(31, 11);
+ case g:
+ return F ? O(1, P) : O(0, P + 1);
+ case f:
+ var N = this.$locale().weekStart || 0, dt = (A < N ? A + 7 : A) - N;
+ return O(F ? R - dt : R + (6 - dt), P);
+ case u:
+ case M:
+ return $(ht + "Hours", 0);
+ case h:
+ return $(ht + "Minutes", 1);
+ case l:
+ return $(ht + "Seconds", 2);
+ case s:
+ return $(ht + "Milliseconds", 3);
+ default:
+ return this.clone();
+ }
+ }, y.endOf = function(p) {
+ return this.startOf(p, !1);
+ }, y.$set = function(p, B) {
+ var b, F = D.p(p), w = "set" + (this.$u ? "UTC" : ""), O = (b = {}, b[u] = w + "Date", b[M] = w + "Date", b[g] = w + "Month", b[_] = w + "FullYear", b[h] = w + "Hours", b[l] = w + "Minutes", b[s] = w + "Seconds", b[n] = w + "Milliseconds", b)[F], $ = F === u ? this.$D + (B - this.$W) : B;
+ if (F === g || F === _) {
+ var A = this.clone().set(M, 1);
+ A.$d[O]($), A.init(), this.$d = A.set(M, Math.min(this.$D, A.daysInMonth())).$d;
+ } else
+ O && this.$d[O]($);
+ return this.init(), this;
+ }, y.set = function(p, B) {
+ return this.clone().$set(p, B);
+ }, y.get = function(p) {
+ return this[D.p(p)]();
+ }, y.add = function(p, B) {
+ var b, F = this;
+ p = Number(p);
+ var w = D.p(B), O = function(P) {
+ var R = W(F);
+ return D.w(R.date(R.date() + Math.round(P * p)), F);
+ };
+ if (w === g)
+ return this.set(g, this.$M + p);
+ if (w === _)
+ return this.set(_, this.$y + p);
+ if (w === u)
+ return O(1);
+ if (w === f)
+ return O(7);
+ var $ = (b = {}, b[l] = r, b[h] = o, b[s] = i, b)[w] || 1, A = this.$d.getTime() + p * $;
+ return D.w(A, this);
+ }, y.subtract = function(p, B) {
+ return this.add(-1 * p, B);
+ }, y.format = function(p) {
+ var B = this, b = this.$locale();
+ if (!this.isValid())
+ return b.invalidDate || z;
+ var F = p || "YYYY-MM-DDTHH:mm:ssZ", w = D.z(this), O = this.$H, $ = this.$m, A = this.$M, P = b.weekdays, R = b.months, ht = function(G, ct, Ut, Dt) {
+ return G && (G[ct] || G(B, F)) || Ut[ct].slice(0, Dt);
+ }, N = function(G) {
+ return D.s(O % 12 || 12, G, "0");
+ }, dt = b.meridiem || function(G, ct, Ut) {
+ var Dt = G < 12 ? "AM" : "PM";
+ return Ut ? Dt.toLowerCase() : Dt;
+ }, bt = { YY: String(this.$y).slice(-2), YYYY: this.$y, M: A + 1, MM: D.s(A + 1, 2, "0"), MMM: ht(b.monthsShort, A, R, 3), MMMM: ht(R, A), D: this.$D, DD: D.s(this.$D, 2, "0"), d: String(this.$W), dd: ht(b.weekdaysMin, this.$W, P, 2), ddd: ht(b.weekdaysShort, this.$W, P, 3), dddd: P[this.$W], H: String(O), HH: D.s(O, 2, "0"), h: N(1), hh: N(2), a: dt(O, $, !0), A: dt(O, $, !1), m: String($), mm: D.s($, 2, "0"), s: String(this.$s), ss: D.s(this.$s, 2, "0"), SSS: D.s(this.$ms, 3, "0"), Z: w };
+ return F.replace(Ot, function(G, ct) {
+ return ct || bt[G] || w.replace(":", "");
+ });
+ }, y.utcOffset = function() {
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
+ }, y.diff = function(p, B, b) {
+ var F, w = D.p(B), O = W(p), $ = (O.utcOffset() - this.utcOffset()) * r, A = this - O, P = D.m(this, O);
+ return P = (F = {}, F[_] = P / 12, F[g] = P, F[x] = P / 3, F[f] = (A - $) / 6048e5, F[u] = (A - $) / 864e5, F[h] = A / o, F[l] = A / r, F[s] = A / i, F)[w] || A, b ? P : D.a(P);
+ }, y.daysInMonth = function() {
+ return this.endOf(g).$D;
+ }, y.$locale = function() {
+ return lt[this.$L];
+ }, y.locale = function(p, B) {
+ if (!p)
+ return this.$L;
+ var b = this.clone(), F = Ht(p, B, !0);
+ return F && (b.$L = F), b;
+ }, y.clone = function() {
+ return D.w(this.$d, this);
+ }, y.toDate = function() {
+ return new Date(this.valueOf());
+ }, y.toJSON = function() {
+ return this.isValid() ? this.toISOString() : null;
+ }, y.toISOString = function() {
+ return this.$d.toISOString();
+ }, y.toString = function() {
+ return this.$d.toUTCString();
+ }, k;
+ }(), ie = qt.prototype;
+ return W.prototype = ie, [["$ms", n], ["$s", s], ["$m", l], ["$H", h], ["$W", u], ["$M", g], ["$y", _], ["$D", M]].forEach(function(k) {
+ ie[k[1]] = function(y) {
+ return this.$g(y, k[0], k[1]);
+ };
+ }), W.extend = function(k, y) {
+ return k.$i || (k(y, qt, W), k.$i = !0), W;
+ }, W.locale = Ht, W.isDayjs = It, W.unix = function(k) {
+ return W(1e3 * k);
+ }, W.en = lt[at], W.Ls = lt, W.p = {}, W;
+ });
+})(Ro);
+const No = xi, Bt = {
+ trace: 0,
+ debug: 1,
+ info: 2,
+ warn: 3,
+ error: 4,
+ fatal: 5
+}, et = {
+ trace: (...t) => {
+ },
+ debug: (...t) => {
+ },
+ info: (...t) => {
+ },
+ warn: (...t) => {
+ },
+ error: (...t) => {
+ },
+ fatal: (...t) => {
+ }
+}, Ch = function(t = "fatal") {
+ let e = Bt.fatal;
+ typeof t == "string" ? (t = t.toLowerCase(), t in Bt && (e = Bt[t])) : typeof t == "number" && (e = t), et.trace = () => {
+ }, et.debug = () => {
+ }, et.info = () => {
+ }, et.warn = () => {
+ }, et.error = () => {
+ }, et.fatal = () => {
+ }, e <= Bt.fatal && (et.fatal = console.error ? console.error.bind(console, ut("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", ut("FATAL"))), e <= Bt.error && (et.error = console.error ? console.error.bind(console, ut("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", ut("ERROR"))), e <= Bt.warn && (et.warn = console.warn ? console.warn.bind(console, ut("WARN"), "color: orange") : console.log.bind(console, "\x1B[33m", ut("WARN"))), e <= Bt.info && (et.info = console.info ? console.info.bind(console, ut("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", ut("INFO"))), e <= Bt.debug && (et.debug = console.debug ? console.debug.bind(console, ut("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", ut("DEBUG"))), e <= Bt.trace && (et.trace = console.debug ? console.debug.bind(console, ut("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", ut("TRACE")));
+}, ut = (t) => `%c${No().format("ss.SSS")} : ${t} : `;
+var zo = { value: () => {
+} };
+function Mr() {
+ for (var t = 0, e = arguments.length, i = {}, r; t < e; ++t) {
+ if (!(r = arguments[t] + "") || r in i || /[\s.]/.test(r))
+ throw new Error("illegal type: " + r);
+ i[r] = [];
+ }
+ return new Me(i);
+}
+function Me(t) {
+ this._ = t;
+}
+function $o(t, e) {
+ return t.trim().split(/^|\s+/).map(function(i) {
+ var r = "", o = i.indexOf(".");
+ if (o >= 0 && (r = i.slice(o + 1), i = i.slice(0, o)), i && !e.hasOwnProperty(i))
+ throw new Error("unknown type: " + i);
+ return { type: i, name: r };
+ });
+}
+Me.prototype = Mr.prototype = {
+ constructor: Me,
+ on: function(t, e) {
+ var i = this._, r = $o(t + "", i), o, n = -1, s = r.length;
+ if (arguments.length < 2) {
+ for (; ++n < s; )
+ if ((o = (t = r[n]).type) && (o = Wo(i[o], t.name)))
+ return o;
+ return;
+ }
+ if (e != null && typeof e != "function")
+ throw new Error("invalid callback: " + e);
+ for (; ++n < s; )
+ if (o = (t = r[n]).type)
+ i[o] = ar(i[o], t.name, e);
+ else if (e == null)
+ for (o in i)
+ i[o] = ar(i[o], t.name, null);
+ return this;
+ },
+ copy: function() {
+ var t = {}, e = this._;
+ for (var i in e)
+ t[i] = e[i].slice();
+ return new Me(t);
+ },
+ call: function(t, e) {
+ if ((o = arguments.length - 2) > 0)
+ for (var i = new Array(o), r = 0, o, n; r < o; ++r)
+ i[r] = arguments[r + 2];
+ if (!this._.hasOwnProperty(t))
+ throw new Error("unknown type: " + t);
+ for (n = this._[t], r = 0, o = n.length; r < o; ++r)
+ n[r].value.apply(e, i);
+ },
+ apply: function(t, e, i) {
+ if (!this._.hasOwnProperty(t))
+ throw new Error("unknown type: " + t);
+ for (var r = this._[t], o = 0, n = r.length; o < n; ++o)
+ r[o].value.apply(e, i);
+ }
+};
+function Wo(t, e) {
+ for (var i = 0, r = t.length, o; i < r; ++i)
+ if ((o = t[i]).name === e)
+ return o.value;
+}
+function ar(t, e, i) {
+ for (var r = 0, o = t.length; r < o; ++r)
+ if (t[r].name === e) {
+ t[r] = zo, t = t.slice(0, r).concat(t.slice(r + 1));
+ break;
+ }
+ return i != null && t.push({ name: e, value: i }), t;
+}
+var Ti = "http://www.w3.org/1999/xhtml";
+const lr = {
+ svg: "http://www.w3.org/2000/svg",
+ xhtml: Ti,
+ xlink: "http://www.w3.org/1999/xlink",
+ xml: "http://www.w3.org/XML/1998/namespace",
+ xmlns: "http://www.w3.org/2000/xmlns/"
+};
+function Xe(t) {
+ var e = t += "", i = e.indexOf(":");
+ return i >= 0 && (e = t.slice(0, i)) !== "xmlns" && (t = t.slice(i + 1)), lr.hasOwnProperty(e) ? { space: lr[e], local: t } : t;
+}
+function Po(t) {
+ return function() {
+ var e = this.ownerDocument, i = this.namespaceURI;
+ return i === Ti && e.documentElement.namespaceURI === Ti ? e.createElement(t) : e.createElementNS(i, t);
+ };
+}
+function Ho(t) {
+ return function() {
+ return this.ownerDocument.createElementNS(t.space, t.local);
+ };
+}
+function Or(t) {
+ var e = Xe(t);
+ return (e.local ? Ho : Po)(e);
+}
+function qo() {
+}
+function Ii(t) {
+ return t == null ? qo : function() {
+ return this.querySelector(t);
+ };
+}
+function Uo(t) {
+ typeof t != "function" && (t = Ii(t));
+ for (var e = this._groups, i = e.length, r = new Array(i), o = 0; o < i; ++o)
+ for (var n = e[o], s = n.length, l = r[o] = new Array(s), h, u, f = 0; f < s; ++f)
+ (h = n[f]) && (u = t.call(h, h.__data__, f, n)) && ("__data__" in h && (u.__data__ = h.__data__), l[f] = u);
+ return new st(r, this._parents);
+}
+function Go(t) {
+ return t == null ? [] : Array.isArray(t) ? t : Array.from(t);
+}
+function Vo() {
+ return [];
+}
+function Ir(t) {
+ return t == null ? Vo : function() {
+ return this.querySelectorAll(t);
+ };
+}
+function Yo(t) {
+ return function() {
+ return Go(t.apply(this, arguments));
+ };
+}
+function Xo(t) {
+ typeof t == "function" ? t = Yo(t) : t = Ir(t);
+ for (var e = this._groups, i = e.length, r = [], o = [], n = 0; n < i; ++n)
+ for (var s = e[n], l = s.length, h, u = 0; u < l; ++u)
+ (h = s[u]) && (r.push(t.call(h, h.__data__, u, s)), o.push(h));
+ return new st(r, o);
+}
+function Dr(t) {
+ return function() {
+ return this.matches(t);
+ };
+}
+function Rr(t) {
+ return function(e) {
+ return e.matches(t);
+ };
+}
+var jo = Array.prototype.find;
+function Ko(t) {
+ return function() {
+ return jo.call(this.children, t);
+ };
+}
+function Zo() {
+ return this.firstElementChild;
+}
+function Jo(t) {
+ return this.select(t == null ? Zo : Ko(typeof t == "function" ? t : Rr(t)));
+}
+var Qo = Array.prototype.filter;
+function tn() {
+ return Array.from(this.children);
+}
+function en(t) {
+ return function() {
+ return Qo.call(this.children, t);
+ };
+}
+function rn(t) {
+ return this.selectAll(t == null ? tn : en(typeof t == "function" ? t : Rr(t)));
+}
+function on(t) {
+ typeof t != "function" && (t = Dr(t));
+ for (var e = this._groups, i = e.length, r = new Array(i), o = 0; o < i; ++o)
+ for (var n = e[o], s = n.length, l = r[o] = [], h, u = 0; u < s; ++u)
+ (h = n[u]) && t.call(h, h.__data__, u, n) && l.push(h);
+ return new st(r, this._parents);
+}
+function Nr(t) {
+ return new Array(t.length);
+}
+function nn() {
+ return new st(this._enter || this._groups.map(Nr), this._parents);
+}
+function We(t, e) {
+ this.ownerDocument = t.ownerDocument, this.namespaceURI = t.namespaceURI, this._next = null, this._parent = t, this.__data__ = e;
+}
+We.prototype = {
+ constructor: We,
+ 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);
+ }
+};
+function sn(t) {
+ return function() {
+ return t;
+ };
+}
+function an(t, e, i, r, o, n) {
+ for (var s = 0, l, h = e.length, u = n.length; s < u; ++s)
+ (l = e[s]) ? (l.__data__ = n[s], r[s] = l) : i[s] = new We(t, n[s]);
+ for (; s < h; ++s)
+ (l = e[s]) && (o[s] = l);
+}
+function ln(t, e, i, r, o, n, s) {
+ var l, h, u = /* @__PURE__ */ new Map(), f = e.length, g = n.length, x = new Array(f), _;
+ for (l = 0; l < f; ++l)
+ (h = e[l]) && (x[l] = _ = s.call(h, h.__data__, l, e) + "", u.has(_) ? o[l] = h : u.set(_, h));
+ for (l = 0; l < g; ++l)
+ _ = s.call(t, n[l], l, n) + "", (h = u.get(_)) ? (r[l] = h, h.__data__ = n[l], u.delete(_)) : i[l] = new We(t, n[l]);
+ for (l = 0; l < f; ++l)
+ (h = e[l]) && u.get(x[l]) === h && (o[l] = h);
+}
+function hn(t) {
+ return t.__data__;
+}
+function cn(t, e) {
+ if (!arguments.length)
+ return Array.from(this, hn);
+ var i = e ? ln : an, r = this._parents, o = this._groups;
+ typeof t != "function" && (t = sn(t));
+ for (var n = o.length, s = new Array(n), l = new Array(n), h = new Array(n), u = 0; u < n; ++u) {
+ var f = r[u], g = o[u], x = g.length, _ = un(t.call(f, f && f.__data__, u, r)), M = _.length, z = l[u] = new Array(M), j = s[u] = new Array(M), Ot = h[u] = new Array(x);
+ i(f, g, z, j, Ot, _, e);
+ for (var nt = 0, Q = 0, H, at; nt < M; ++nt)
+ if (H = z[nt]) {
+ for (nt >= Q && (Q = nt + 1); !(at = j[Q]) && ++Q < M; )
+ ;
+ H._next = at || null;
+ }
+ }
+ return s = new st(s, r), s._enter = l, s._exit = h, s;
+}
+function un(t) {
+ return typeof t == "object" && "length" in t ? t : Array.from(t);
+}
+function fn() {
+ return new st(this._exit || this._groups.map(Nr), this._parents);
+}
+function dn(t, e, i) {
+ var r = this.enter(), o = this, n = this.exit();
+ return typeof t == "function" ? (r = t(r), r && (r = r.selection())) : r = r.append(t + ""), e != null && (o = e(o), o && (o = o.selection())), i == null ? n.remove() : i(n), r && o ? r.merge(o).order() : o;
+}
+function gn(t) {
+ for (var e = t.selection ? t.selection() : t, i = this._groups, r = e._groups, o = i.length, n = r.length, s = Math.min(o, n), l = new Array(o), h = 0; h < s; ++h)
+ for (var u = i[h], f = r[h], g = u.length, x = l[h] = new Array(g), _, M = 0; M < g; ++M)
+ (_ = u[M] || f[M]) && (x[M] = _);
+ for (; h < o; ++h)
+ l[h] = i[h];
+ return new st(l, this._parents);
+}
+function pn() {
+ for (var t = this._groups, e = -1, i = t.length; ++e < i; )
+ for (var r = t[e], o = r.length - 1, n = r[o], s; --o >= 0; )
+ (s = r[o]) && (n && s.compareDocumentPosition(n) ^ 4 && n.parentNode.insertBefore(s, n), n = s);
+ return this;
+}
+function mn(t) {
+ t || (t = Cn);
+ function e(g, x) {
+ return g && x ? t(g.__data__, x.__data__) : !g - !x;
+ }
+ for (var i = this._groups, r = i.length, o = new Array(r), n = 0; n < r; ++n) {
+ for (var s = i[n], l = s.length, h = o[n] = new Array(l), u, f = 0; f < l; ++f)
+ (u = s[f]) && (h[f] = u);
+ h.sort(e);
+ }
+ return new st(o, this._parents).order();
+}
+function Cn(t, e) {
+ return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN;
+}
+function yn() {
+ var t = arguments[0];
+ return arguments[0] = this, t.apply(null, arguments), this;
+}
+function bn() {
+ return Array.from(this);
+}
+function _n() {
+ for (var t = this._groups, e = 0, i = t.length; e < i; ++e)
+ for (var r = t[e], o = 0, n = r.length; o < n; ++o) {
+ var s = r[o];
+ if (s)
+ return s;
+ }
+ return null;
+}
+function xn() {
+ let t = 0;
+ for (const e of this)
+ ++t;
+ return t;
+}
+function Tn() {
+ return !this.node();
+}
+function kn(t) {
+ for (var e = this._groups, i = 0, r = e.length; i < r; ++i)
+ for (var o = e[i], n = 0, s = o.length, l; n < s; ++n)
+ (l = o[n]) && t.call(l, l.__data__, n, o);
+ return this;
+}
+function Sn(t) {
+ return function() {
+ this.removeAttribute(t);
+ };
+}
+function Bn(t) {
+ return function() {
+ this.removeAttributeNS(t.space, t.local);
+ };
+}
+function vn(t, e) {
+ return function() {
+ this.setAttribute(t, e);
+ };
+}
+function wn(t, e) {
+ return function() {
+ this.setAttributeNS(t.space, t.local, e);
+ };
+}
+function Ln(t, e) {
+ return function() {
+ var i = e.apply(this, arguments);
+ i == null ? this.removeAttribute(t) : this.setAttribute(t, i);
+ };
+}
+function Fn(t, e) {
+ return function() {
+ var i = e.apply(this, arguments);
+ i == null ? this.removeAttributeNS(t.space, t.local) : this.setAttributeNS(t.space, t.local, i);
+ };
+}
+function An(t, e) {
+ var i = Xe(t);
+ if (arguments.length < 2) {
+ var r = this.node();
+ return i.local ? r.getAttributeNS(i.space, i.local) : r.getAttribute(i);
+ }
+ return this.each((e == null ? i.local ? Bn : Sn : typeof e == "function" ? i.local ? Fn : Ln : i.local ? wn : vn)(i, e));
+}
+function zr(t) {
+ return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView;
+}
+function En(t) {
+ return function() {
+ this.style.removeProperty(t);
+ };
+}
+function Mn(t, e, i) {
+ return function() {
+ this.style.setProperty(t, e, i);
+ };
+}
+function On(t, e, i) {
+ return function() {
+ var r = e.apply(this, arguments);
+ r == null ? this.style.removeProperty(t) : this.style.setProperty(t, r, i);
+ };
+}
+function In(t, e, i) {
+ return arguments.length > 1 ? this.each((e == null ? En : typeof e == "function" ? On : Mn)(t, e, i ?? "")) : Qt(this.node(), t);
+}
+function Qt(t, e) {
+ return t.style.getPropertyValue(e) || zr(t).getComputedStyle(t, null).getPropertyValue(e);
+}
+function Dn(t) {
+ return function() {
+ delete this[t];
+ };
+}
+function Rn(t, e) {
+ return function() {
+ this[t] = e;
+ };
+}
+function Nn(t, e) {
+ return function() {
+ var i = e.apply(this, arguments);
+ i == null ? delete this[t] : this[t] = i;
+ };
+}
+function zn(t, e) {
+ return arguments.length > 1 ? this.each((e == null ? Dn : typeof e == "function" ? Nn : Rn)(t, e)) : this.node()[t];
+}
+function $r(t) {
+ return t.trim().split(/^|\s+/);
+}
+function Di(t) {
+ return t.classList || new Wr(t);
+}
+function Wr(t) {
+ this._node = t, this._names = $r(t.getAttribute("class") || "");
+}
+Wr.prototype = {
+ add: function(t) {
+ var e = this._names.indexOf(t);
+ e < 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 Pr(t, e) {
+ for (var i = Di(t), r = -1, o = e.length; ++r < o; )
+ i.add(e[r]);
+}
+function Hr(t, e) {
+ for (var i = Di(t), r = -1, o = e.length; ++r < o; )
+ i.remove(e[r]);
+}
+function $n(t) {
+ return function() {
+ Pr(this, t);
+ };
+}
+function Wn(t) {
+ return function() {
+ Hr(this, t);
+ };
+}
+function Pn(t, e) {
+ return function() {
+ (e.apply(this, arguments) ? Pr : Hr)(this, t);
+ };
+}
+function Hn(t, e) {
+ var i = $r(t + "");
+ if (arguments.length < 2) {
+ for (var r = Di(this.node()), o = -1, n = i.length; ++o < n; )
+ if (!r.contains(i[o]))
+ return !1;
+ return !0;
+ }
+ return this.each((typeof e == "function" ? Pn : e ? $n : Wn)(i, e));
+}
+function qn() {
+ this.textContent = "";
+}
+function Un(t) {
+ return function() {
+ this.textContent = t;
+ };
+}
+function Gn(t) {
+ return function() {
+ var e = t.apply(this, arguments);
+ this.textContent = e ?? "";
+ };
+}
+function Vn(t) {
+ return arguments.length ? this.each(t == null ? qn : (typeof t == "function" ? Gn : Un)(t)) : this.node().textContent;
+}
+function Yn() {
+ this.innerHTML = "";
+}
+function Xn(t) {
+ return function() {
+ this.innerHTML = t;
+ };
+}
+function jn(t) {
+ return function() {
+ var e = t.apply(this, arguments);
+ this.innerHTML = e ?? "";
+ };
+}
+function Kn(t) {
+ return arguments.length ? this.each(t == null ? Yn : (typeof t == "function" ? jn : Xn)(t)) : this.node().innerHTML;
+}
+function Zn() {
+ this.nextSibling && this.parentNode.appendChild(this);
+}
+function Jn() {
+ return this.each(Zn);
+}
+function Qn() {
+ this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild);
+}
+function ts() {
+ return this.each(Qn);
+}
+function es(t) {
+ var e = typeof t == "function" ? t : Or(t);
+ return this.select(function() {
+ return this.appendChild(e.apply(this, arguments));
+ });
+}
+function is() {
+ return null;
+}
+function rs(t, e) {
+ var i = typeof t == "function" ? t : Or(t), r = e == null ? is : typeof e == "function" ? e : Ii(e);
+ return this.select(function() {
+ return this.insertBefore(i.apply(this, arguments), r.apply(this, arguments) || null);
+ });
+}
+function os() {
+ var t = this.parentNode;
+ t && t.removeChild(this);
+}
+function ns() {
+ return this.each(os);
+}
+function ss() {
+ var t = this.cloneNode(!1), e = this.parentNode;
+ return e ? e.insertBefore(t, this.nextSibling) : t;
+}
+function as() {
+ var t = this.cloneNode(!0), e = this.parentNode;
+ return e ? e.insertBefore(t, this.nextSibling) : t;
+}
+function ls(t) {
+ return this.select(t ? as : ss);
+}
+function hs(t) {
+ return arguments.length ? this.property("__data__", t) : this.node().__data__;
+}
+function cs(t) {
+ return function(e) {
+ t.call(this, e, this.__data__);
+ };
+}
+function us(t) {
+ return t.trim().split(/^|\s+/).map(function(e) {
+ var i = "", r = e.indexOf(".");
+ return r >= 0 && (i = e.slice(r + 1), e = e.slice(0, r)), { type: e, name: i };
+ });
+}
+function fs(t) {
+ return function() {
+ var e = this.__on;
+ if (e) {
+ for (var i = 0, r = -1, o = e.length, n; i < o; ++i)
+ n = e[i], (!t.type || n.type === t.type) && n.name === t.name ? this.removeEventListener(n.type, n.listener, n.options) : e[++r] = n;
+ ++r ? e.length = r : delete this.__on;
+ }
+ };
+}
+function ds(t, e, i) {
+ return function() {
+ var r = this.__on, o, n = cs(e);
+ if (r) {
+ for (var s = 0, l = r.length; s < l; ++s)
+ if ((o = r[s]).type === t.type && o.name === t.name) {
+ this.removeEventListener(o.type, o.listener, o.options), this.addEventListener(o.type, o.listener = n, o.options = i), o.value = e;
+ return;
+ }
+ }
+ this.addEventListener(t.type, n, i), o = { type: t.type, name: t.name, value: e, listener: n, options: i }, r ? r.push(o) : this.__on = [o];
+ };
+}
+function gs(t, e, i) {
+ var r = us(t + ""), o, n = r.length, s;
+ if (arguments.length < 2) {
+ var l = this.node().__on;
+ if (l) {
+ for (var h = 0, u = l.length, f; h < u; ++h)
+ for (o = 0, f = l[h]; o < n; ++o)
+ if ((s = r[o]).type === f.type && s.name === f.name)
+ return f.value;
+ }
+ return;
+ }
+ for (l = e ? ds : fs, o = 0; o < n; ++o)
+ this.each(l(r[o], e, i));
+ return this;
+}
+function qr(t, e, i) {
+ var r = zr(t), o = r.CustomEvent;
+ typeof o == "function" ? o = new o(e, i) : (o = r.document.createEvent("Event"), i ? (o.initEvent(e, i.bubbles, i.cancelable), o.detail = i.detail) : o.initEvent(e, !1, !1)), t.dispatchEvent(o);
+}
+function ps(t, e) {
+ return function() {
+ return qr(this, t, e);
+ };
+}
+function ms(t, e) {
+ return function() {
+ return qr(this, t, e.apply(this, arguments));
+ };
+}
+function Cs(t, e) {
+ return this.each((typeof e == "function" ? ms : ps)(t, e));
+}
+function* ys() {
+ for (var t = this._groups, e = 0, i = t.length; e < i; ++e)
+ for (var r = t[e], o = 0, n = r.length, s; o < n; ++o)
+ (s = r[o]) && (yield s);
+}
+var Ur = [null];
+function st(t, e) {
+ this._groups = t, this._parents = e;
+}
+function Ce() {
+ return new st([[document.documentElement]], Ur);
+}
+function bs() {
+ return this;
+}
+st.prototype = Ce.prototype = {
+ constructor: st,
+ select: Uo,
+ selectAll: Xo,
+ selectChild: Jo,
+ selectChildren: rn,
+ filter: on,
+ data: cn,
+ enter: nn,
+ exit: fn,
+ join: dn,
+ merge: gn,
+ selection: bs,
+ order: pn,
+ sort: mn,
+ call: yn,
+ nodes: bn,
+ node: _n,
+ size: xn,
+ empty: Tn,
+ each: kn,
+ attr: An,
+ style: In,
+ property: zn,
+ classed: Hn,
+ text: Vn,
+ html: Kn,
+ raise: Jn,
+ lower: ts,
+ append: es,
+ insert: rs,
+ remove: ns,
+ clone: ls,
+ datum: hs,
+ on: gs,
+ dispatch: Cs,
+ [Symbol.iterator]: ys
+};
+function yh(t) {
+ return typeof t == "string" ? new st([[document.querySelector(t)]], [document.documentElement]) : new st([[t]], Ur);
+}
+function Ri(t, e, i) {
+ t.prototype = e.prototype = i, i.constructor = t;
+}
+function Gr(t, e) {
+ var i = Object.create(t.prototype);
+ for (var r in e)
+ i[r] = e[r];
+ return i;
+}
+function ye() {
+}
+var de = 0.7, Pe = 1 / de, Zt = "\\s*([+-]?\\d+)\\s*", ge = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", _t = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", _s = /^#([0-9a-f]{3,8})$/, xs = new RegExp(`^rgb\\(${Zt},${Zt},${Zt}\\)$`), Ts = new RegExp(`^rgb\\(${_t},${_t},${_t}\\)$`), ks = new RegExp(`^rgba\\(${Zt},${Zt},${Zt},${ge}\\)$`), Ss = new RegExp(`^rgba\\(${_t},${_t},${_t},${ge}\\)$`), Bs = new RegExp(`^hsl\\(${ge},${_t},${_t}\\)$`), vs = new RegExp(`^hsla\\(${ge},${_t},${_t},${ge}\\)$`), hr = {
+ 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
+};
+Ri(ye, pe, {
+ copy(t) {
+ return Object.assign(new this.constructor(), this, t);
+ },
+ displayable() {
+ return this.rgb().displayable();
+ },
+ hex: cr,
+ // Deprecated! Use color.formatHex.
+ formatHex: cr,
+ formatHex8: ws,
+ formatHsl: Ls,
+ formatRgb: ur,
+ toString: ur
+});
+function cr() {
+ return this.rgb().formatHex();
+}
+function ws() {
+ return this.rgb().formatHex8();
+}
+function Ls() {
+ return Vr(this).formatHsl();
+}
+function ur() {
+ return this.rgb().formatRgb();
+}
+function pe(t) {
+ var e, i;
+ return t = (t + "").trim().toLowerCase(), (e = _s.exec(t)) ? (i = e[1].length, e = parseInt(e[1], 16), i === 6 ? fr(e) : i === 3 ? new ot(e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | e & 240, (e & 15) << 4 | e & 15, 1) : i === 8 ? Be(e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, (e & 255) / 255) : i === 4 ? Be(e >> 12 & 15 | e >> 8 & 240, e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | e & 240, ((e & 15) << 4 | e & 15) / 255) : null) : (e = xs.exec(t)) ? new ot(e[1], e[2], e[3], 1) : (e = Ts.exec(t)) ? new ot(e[1] * 255 / 100, e[2] * 255 / 100, e[3] * 255 / 100, 1) : (e = ks.exec(t)) ? Be(e[1], e[2], e[3], e[4]) : (e = Ss.exec(t)) ? Be(e[1] * 255 / 100, e[2] * 255 / 100, e[3] * 255 / 100, e[4]) : (e = Bs.exec(t)) ? pr(e[1], e[2] / 100, e[3] / 100, 1) : (e = vs.exec(t)) ? pr(e[1], e[2] / 100, e[3] / 100, e[4]) : hr.hasOwnProperty(t) ? fr(hr[t]) : t === "transparent" ? new ot(NaN, NaN, NaN, 0) : null;
+}
+function fr(t) {
+ return new ot(t >> 16 & 255, t >> 8 & 255, t & 255, 1);
+}
+function Be(t, e, i, r) {
+ return r <= 0 && (t = e = i = NaN), new ot(t, e, i, r);
+}
+function Fs(t) {
+ return t instanceof ye || (t = pe(t)), t ? (t = t.rgb(), new ot(t.r, t.g, t.b, t.opacity)) : new ot();
+}
+function ki(t, e, i, r) {
+ return arguments.length === 1 ? Fs(t) : new ot(t, e, i, r ?? 1);
+}
+function ot(t, e, i, r) {
+ this.r = +t, this.g = +e, this.b = +i, this.opacity = +r;
+}
+Ri(ot, ki, Gr(ye, {
+ brighter(t) {
+ return t = t == null ? Pe : Math.pow(Pe, t), new ot(this.r * t, this.g * t, this.b * t, this.opacity);
+ },
+ darker(t) {
+ return t = t == null ? de : Math.pow(de, t), new ot(this.r * t, this.g * t, this.b * t, this.opacity);
+ },
+ rgb() {
+ return this;
+ },
+ clamp() {
+ return new ot(Wt(this.r), Wt(this.g), Wt(this.b), He(this.opacity));
+ },
+ displayable() {
+ return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;
+ },
+ hex: dr,
+ // Deprecated! Use color.formatHex.
+ formatHex: dr,
+ formatHex8: As,
+ formatRgb: gr,
+ toString: gr
+}));
+function dr() {
+ return `#${$t(this.r)}${$t(this.g)}${$t(this.b)}`;
+}
+function As() {
+ return `#${$t(this.r)}${$t(this.g)}${$t(this.b)}${$t((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
+}
+function gr() {
+ const t = He(this.opacity);
+ return `${t === 1 ? "rgb(" : "rgba("}${Wt(this.r)}, ${Wt(this.g)}, ${Wt(this.b)}${t === 1 ? ")" : `, ${t})`}`;
+}
+function He(t) {
+ return isNaN(t) ? 1 : Math.max(0, Math.min(1, t));
+}
+function Wt(t) {
+ return Math.max(0, Math.min(255, Math.round(t) || 0));
+}
+function $t(t) {
+ return t = Wt(t), (t < 16 ? "0" : "") + t.toString(16);
+}
+function pr(t, e, i, r) {
+ return r <= 0 ? t = e = i = NaN : i <= 0 || i >= 1 ? t = e = NaN : e <= 0 && (t = NaN), new mt(t, e, i, r);
+}
+function Vr(t) {
+ if (t instanceof mt)
+ return new mt(t.h, t.s, t.l, t.opacity);
+ if (t instanceof ye || (t = pe(t)), !t)
+ return new mt();
+ if (t instanceof mt)
+ return t;
+ t = t.rgb();
+ var e = t.r / 255, i = t.g / 255, r = t.b / 255, o = Math.min(e, i, r), n = Math.max(e, i, r), s = NaN, l = n - o, h = (n + o) / 2;
+ return l ? (e === n ? s = (i - r) / l + (i < r) * 6 : i === n ? s = (r - e) / l + 2 : s = (e - i) / l + 4, l /= h < 0.5 ? n + o : 2 - n - o, s *= 60) : l = h > 0 && h < 1 ? 0 : s, new mt(s, l, h, t.opacity);
+}
+function Es(t, e, i, r) {
+ return arguments.length === 1 ? Vr(t) : new mt(t, e, i, r ?? 1);
+}
+function mt(t, e, i, r) {
+ this.h = +t, this.s = +e, this.l = +i, this.opacity = +r;
+}
+Ri(mt, Es, Gr(ye, {
+ brighter(t) {
+ return t = t == null ? Pe : Math.pow(Pe, t), new mt(this.h, this.s, this.l * t, this.opacity);
+ },
+ darker(t) {
+ return t = t == null ? de : Math.pow(de, t), new mt(this.h, this.s, this.l * t, this.opacity);
+ },
+ rgb() {
+ var t = this.h % 360 + (this.h < 0) * 360, e = isNaN(t) || isNaN(this.s) ? 0 : this.s, i = this.l, r = i + (i < 0.5 ? i : 1 - i) * e, o = 2 * i - r;
+ return new ot(
+ di(t >= 240 ? t - 240 : t + 120, o, r),
+ di(t, o, r),
+ di(t < 120 ? t + 240 : t - 120, o, r),
+ this.opacity
+ );
+ },
+ clamp() {
+ return new mt(mr(this.h), ve(this.s), ve(this.l), He(this.opacity));
+ },
+ displayable() {
+ return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
+ },
+ formatHsl() {
+ const t = He(this.opacity);
+ return `${t === 1 ? "hsl(" : "hsla("}${mr(this.h)}, ${ve(this.s) * 100}%, ${ve(this.l) * 100}%${t === 1 ? ")" : `, ${t})`}`;
+ }
+}));
+function mr(t) {
+ return t = (t || 0) % 360, t < 0 ? t + 360 : t;
+}
+function ve(t) {
+ return Math.max(0, Math.min(1, t || 0));
+}
+function di(t, e, i) {
+ return (t < 60 ? e + (i - e) * t / 60 : t < 180 ? i : t < 240 ? e + (i - e) * (240 - t) / 60 : e) * 255;
+}
+const Ni = (t) => () => t;
+function Yr(t, e) {
+ return function(i) {
+ return t + i * e;
+ };
+}
+function Ms(t, e, i) {
+ return t = Math.pow(t, i), e = Math.pow(e, i) - t, i = 1 / i, function(r) {
+ return Math.pow(t + r * e, i);
+ };
+}
+function bh(t, e) {
+ var i = e - t;
+ return i ? Yr(t, i > 180 || i < -180 ? i - 360 * Math.round(i / 360) : i) : Ni(isNaN(t) ? e : t);
+}
+function Os(t) {
+ return (t = +t) == 1 ? Xr : function(e, i) {
+ return i - e ? Ms(e, i, t) : Ni(isNaN(e) ? i : e);
+ };
+}
+function Xr(t, e) {
+ var i = e - t;
+ return i ? Yr(t, i) : Ni(isNaN(t) ? e : t);
+}
+const Cr = function t(e) {
+ var i = Os(e);
+ function r(o, n) {
+ var s = i((o = ki(o)).r, (n = ki(n)).r), l = i(o.g, n.g), h = i(o.b, n.b), u = Xr(o.opacity, n.opacity);
+ return function(f) {
+ return o.r = s(f), o.g = l(f), o.b = h(f), o.opacity = u(f), o + "";
+ };
+ }
+ return r.gamma = t, r;
+}(1);
+function At(t, e) {
+ return t = +t, e = +e, function(i) {
+ return t * (1 - i) + e * i;
+ };
+}
+var Si = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, gi = new RegExp(Si.source, "g");
+function Is(t) {
+ return function() {
+ return t;
+ };
+}
+function Ds(t) {
+ return function(e) {
+ return t(e) + "";
+ };
+}
+function Rs(t, e) {
+ var i = Si.lastIndex = gi.lastIndex = 0, r, o, n, s = -1, l = [], h = [];
+ for (t = t + "", e = e + ""; (r = Si.exec(t)) && (o = gi.exec(e)); )
+ (n = o.index) > i && (n = e.slice(i, n), l[s] ? l[s] += n : l[++s] = n), (r = r[0]) === (o = o[0]) ? l[s] ? l[s] += o : l[++s] = o : (l[++s] = null, h.push({ i: s, x: At(r, o) })), i = gi.lastIndex;
+ return i < e.length && (n = e.slice(i), l[s] ? l[s] += n : l[++s] = n), l.length < 2 ? h[0] ? Ds(h[0].x) : Is(e) : (e = h.length, function(u) {
+ for (var f = 0, g; f < e; ++f)
+ l[(g = h[f]).i] = g.x(u);
+ return l.join("");
+ });
+}
+var yr = 180 / Math.PI, Bi = {
+ translateX: 0,
+ translateY: 0,
+ rotate: 0,
+ skewX: 0,
+ scaleX: 1,
+ scaleY: 1
+};
+function jr(t, e, i, r, o, n) {
+ var s, l, h;
+ return (s = Math.sqrt(t * t + e * e)) && (t /= s, e /= s), (h = t * i + e * r) && (i -= t * h, r -= e * h), (l = Math.sqrt(i * i + r * r)) && (i /= l, r /= l, h /= l), t * r < e * i && (t = -t, e = -e, h = -h, s = -s), {
+ translateX: o,
+ translateY: n,
+ rotate: Math.atan2(e, t) * yr,
+ skewX: Math.atan(h) * yr,
+ scaleX: s,
+ scaleY: l
+ };
+}
+var we;
+function Ns(t) {
+ const e = new (typeof DOMMatrix == "function" ? DOMMatrix : WebKitCSSMatrix)(t + "");
+ return e.isIdentity ? Bi : jr(e.a, e.b, e.c, e.d, e.e, e.f);
+}
+function zs(t) {
+ return t == null || (we || (we = document.createElementNS("http://www.w3.org/2000/svg", "g")), we.setAttribute("transform", t), !(t = we.transform.baseVal.consolidate())) ? Bi : (t = t.matrix, jr(t.a, t.b, t.c, t.d, t.e, t.f));
+}
+function Kr(t, e, i, r) {
+ function o(u) {
+ return u.length ? u.pop() + " " : "";
+ }
+ function n(u, f, g, x, _, M) {
+ if (u !== g || f !== x) {
+ var z = _.push("translate(", null, e, null, i);
+ M.push({ i: z - 4, x: At(u, g) }, { i: z - 2, x: At(f, x) });
+ } else
+ (g || x) && _.push("translate(" + g + e + x + i);
+ }
+ function s(u, f, g, x) {
+ u !== f ? (u - f > 180 ? f += 360 : f - u > 180 && (u += 360), x.push({ i: g.push(o(g) + "rotate(", null, r) - 2, x: At(u, f) })) : f && g.push(o(g) + "rotate(" + f + r);
+ }
+ function l(u, f, g, x) {
+ u !== f ? x.push({ i: g.push(o(g) + "skewX(", null, r) - 2, x: At(u, f) }) : f && g.push(o(g) + "skewX(" + f + r);
+ }
+ function h(u, f, g, x, _, M) {
+ if (u !== g || f !== x) {
+ var z = _.push(o(_) + "scale(", null, ",", null, ")");
+ M.push({ i: z - 4, x: At(u, g) }, { i: z - 2, x: At(f, x) });
+ } else
+ (g !== 1 || x !== 1) && _.push(o(_) + "scale(" + g + "," + x + ")");
+ }
+ return function(u, f) {
+ var g = [], x = [];
+ return u = t(u), f = t(f), n(u.translateX, u.translateY, f.translateX, f.translateY, g, x), s(u.rotate, f.rotate, g, x), l(u.skewX, f.skewX, g, x), h(u.scaleX, u.scaleY, f.scaleX, f.scaleY, g, x), u = f = null, function(_) {
+ for (var M = -1, z = x.length, j; ++M < z; )
+ g[(j = x[M]).i] = j.x(_);
+ return g.join("");
+ };
+ };
+}
+var $s = Kr(Ns, "px, ", "px)", "deg)"), Ws = Kr(zs, ", ", ")", ")"), te = 0, ae = 0, ne = 0, Zr = 1e3, qe, le, Ue = 0, Pt = 0, je = 0, me = typeof performance == "object" && performance.now ? performance : Date, Jr = typeof window == "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(t) {
+ setTimeout(t, 17);
+};
+function zi() {
+ return Pt || (Jr(Ps), Pt = me.now() + je);
+}
+function Ps() {
+ Pt = 0;
+}
+function Ge() {
+ this._call = this._time = this._next = null;
+}
+Ge.prototype = Qr.prototype = {
+ constructor: Ge,
+ restart: function(t, e, i) {
+ if (typeof t != "function")
+ throw new TypeError("callback is not a function");
+ i = (i == null ? zi() : +i) + (e == null ? 0 : +e), !this._next && le !== this && (le ? le._next = this : qe = this, le = this), this._call = t, this._time = i, vi();
+ },
+ stop: function() {
+ this._call && (this._call = null, this._time = 1 / 0, vi());
+ }
+};
+function Qr(t, e, i) {
+ var r = new Ge();
+ return r.restart(t, e, i), r;
+}
+function Hs() {
+ zi(), ++te;
+ for (var t = qe, e; t; )
+ (e = Pt - t._time) >= 0 && t._call.call(void 0, e), t = t._next;
+ --te;
+}
+function br() {
+ Pt = (Ue = me.now()) + je, te = ae = 0;
+ try {
+ Hs();
+ } finally {
+ te = 0, Us(), Pt = 0;
+ }
+}
+function qs() {
+ var t = me.now(), e = t - Ue;
+ e > Zr && (je -= e, Ue = t);
+}
+function Us() {
+ for (var t, e = qe, i, r = 1 / 0; e; )
+ e._call ? (r > e._time && (r = e._time), t = e, e = e._next) : (i = e._next, e._next = null, e = t ? t._next = i : qe = i);
+ le = t, vi(r);
+}
+function vi(t) {
+ if (!te) {
+ ae && (ae = clearTimeout(ae));
+ var e = t - Pt;
+ e > 24 ? (t < 1 / 0 && (ae = setTimeout(br, t - me.now() - je)), ne && (ne = clearInterval(ne))) : (ne || (Ue = me.now(), ne = setInterval(qs, Zr)), te = 1, Jr(br));
+ }
+}
+function _r(t, e, i) {
+ var r = new Ge();
+ return e = e == null ? 0 : +e, r.restart((o) => {
+ r.stop(), t(o + e);
+ }, e, i), r;
+}
+var Gs = Mr("start", "end", "cancel", "interrupt"), Vs = [], to = 0, xr = 1, wi = 2, Oe = 3, Tr = 4, Li = 5, Ie = 6;
+function Ke(t, e, i, r, o, n) {
+ var s = t.__transition;
+ if (!s)
+ t.__transition = {};
+ else if (i in s)
+ return;
+ Ys(t, i, {
+ name: e,
+ index: r,
+ // For context during callback.
+ group: o,
+ // For context during callback.
+ on: Gs,
+ tween: Vs,
+ time: n.time,
+ delay: n.delay,
+ duration: n.duration,
+ ease: n.ease,
+ timer: null,
+ state: to
+ });
+}
+function $i(t, e) {
+ var i = yt(t, e);
+ if (i.state > to)
+ throw new Error("too late; already scheduled");
+ return i;
+}
+function xt(t, e) {
+ var i = yt(t, e);
+ if (i.state > Oe)
+ throw new Error("too late; already running");
+ return i;
+}
+function yt(t, e) {
+ var i = t.__transition;
+ if (!i || !(i = i[e]))
+ throw new Error("transition not found");
+ return i;
+}
+function Ys(t, e, i) {
+ var r = t.__transition, o;
+ r[e] = i, i.timer = Qr(n, 0, i.time);
+ function n(u) {
+ i.state = xr, i.timer.restart(s, i.delay, i.time), i.delay <= u && s(u - i.delay);
+ }
+ function s(u) {
+ var f, g, x, _;
+ if (i.state !== xr)
+ return h();
+ for (f in r)
+ if (_ = r[f], _.name === i.name) {
+ if (_.state === Oe)
+ return _r(s);
+ _.state === Tr ? (_.state = Ie, _.timer.stop(), _.on.call("interrupt", t, t.__data__, _.index, _.group), delete r[f]) : +f < e && (_.state = Ie, _.timer.stop(), _.on.call("cancel", t, t.__data__, _.index, _.group), delete r[f]);
+ }
+ if (_r(function() {
+ i.state === Oe && (i.state = Tr, i.timer.restart(l, i.delay, i.time), l(u));
+ }), i.state = wi, i.on.call("start", t, t.__data__, i.index, i.group), i.state === wi) {
+ for (i.state = Oe, o = new Array(x = i.tween.length), f = 0, g = -1; f < x; ++f)
+ (_ = i.tween[f].value.call(t, t.__data__, i.index, i.group)) && (o[++g] = _);
+ o.length = g + 1;
+ }
+ }
+ function l(u) {
+ for (var f = u < i.duration ? i.ease.call(null, u / i.duration) : (i.timer.restart(h), i.state = Li, 1), g = -1, x = o.length; ++g < x; )
+ o[g].call(t, f);
+ i.state === Li && (i.on.call("end", t, t.__data__, i.index, i.group), h());
+ }
+ function h() {
+ i.state = Ie, i.timer.stop(), delete r[e];
+ for (var u in r)
+ return;
+ delete t.__transition;
+ }
+}
+function Xs(t, e) {
+ var i = t.__transition, r, o, n = !0, s;
+ if (i) {
+ e = e == null ? null : e + "";
+ for (s in i) {
+ if ((r = i[s]).name !== e) {
+ n = !1;
+ continue;
+ }
+ o = r.state > wi && r.state < Li, r.state = Ie, r.timer.stop(), r.on.call(o ? "interrupt" : "cancel", t, t.__data__, r.index, r.group), delete i[s];
+ }
+ n && delete t.__transition;
+ }
+}
+function js(t) {
+ return this.each(function() {
+ Xs(this, t);
+ });
+}
+function Ks(t, e) {
+ var i, r;
+ return function() {
+ var o = xt(this, t), n = o.tween;
+ if (n !== i) {
+ r = i = n;
+ for (var s = 0, l = r.length; s < l; ++s)
+ if (r[s].name === e) {
+ r = r.slice(), r.splice(s, 1);
+ break;
+ }
+ }
+ o.tween = r;
+ };
+}
+function Zs(t, e, i) {
+ var r, o;
+ if (typeof i != "function")
+ throw new Error();
+ return function() {
+ var n = xt(this, t), s = n.tween;
+ if (s !== r) {
+ o = (r = s).slice();
+ for (var l = { name: e, value: i }, h = 0, u = o.length; h < u; ++h)
+ if (o[h].name === e) {
+ o[h] = l;
+ break;
+ }
+ h === u && o.push(l);
+ }
+ n.tween = o;
+ };
+}
+function Js(t, e) {
+ var i = this._id;
+ if (t += "", arguments.length < 2) {
+ for (var r = yt(this.node(), i).tween, o = 0, n = r.length, s; o < n; ++o)
+ if ((s = r[o]).name === t)
+ return s.value;
+ return null;
+ }
+ return this.each((e == null ? Ks : Zs)(i, t, e));
+}
+function Wi(t, e, i) {
+ var r = t._id;
+ return t.each(function() {
+ var o = xt(this, r);
+ (o.value || (o.value = {}))[e] = i.apply(this, arguments);
+ }), function(o) {
+ return yt(o, r).value[e];
+ };
+}
+function eo(t, e) {
+ var i;
+ return (typeof e == "number" ? At : e instanceof pe ? Cr : (i = pe(e)) ? (e = i, Cr) : Rs)(t, e);
+}
+function Qs(t) {
+ return function() {
+ this.removeAttribute(t);
+ };
+}
+function ta(t) {
+ return function() {
+ this.removeAttributeNS(t.space, t.local);
+ };
+}
+function ea(t, e, i) {
+ var r, o = i + "", n;
+ return function() {
+ var s = this.getAttribute(t);
+ return s === o ? null : s === r ? n : n = e(r = s, i);
+ };
+}
+function ia(t, e, i) {
+ var r, o = i + "", n;
+ return function() {
+ var s = this.getAttributeNS(t.space, t.local);
+ return s === o ? null : s === r ? n : n = e(r = s, i);
+ };
+}
+function ra(t, e, i) {
+ var r, o, n;
+ return function() {
+ var s, l = i(this), h;
+ return l == null ? void this.removeAttribute(t) : (s = this.getAttribute(t), h = l + "", s === h ? null : s === r && h === o ? n : (o = h, n = e(r = s, l)));
+ };
+}
+function oa(t, e, i) {
+ var r, o, n;
+ return function() {
+ var s, l = i(this), h;
+ return l == null ? void this.removeAttributeNS(t.space, t.local) : (s = this.getAttributeNS(t.space, t.local), h = l + "", s === h ? null : s === r && h === o ? n : (o = h, n = e(r = s, l)));
+ };
+}
+function na(t, e) {
+ var i = Xe(t), r = i === "transform" ? Ws : eo;
+ return this.attrTween(t, typeof e == "function" ? (i.local ? oa : ra)(i, r, Wi(this, "attr." + t, e)) : e == null ? (i.local ? ta : Qs)(i) : (i.local ? ia : ea)(i, r, e));
+}
+function sa(t, e) {
+ return function(i) {
+ this.setAttribute(t, e.call(this, i));
+ };
+}
+function aa(t, e) {
+ return function(i) {
+ this.setAttributeNS(t.space, t.local, e.call(this, i));
+ };
+}
+function la(t, e) {
+ var i, r;
+ function o() {
+ var n = e.apply(this, arguments);
+ return n !== r && (i = (r = n) && aa(t, n)), i;
+ }
+ return o._value = e, o;
+}
+function ha(t, e) {
+ var i, r;
+ function o() {
+ var n = e.apply(this, arguments);
+ return n !== r && (i = (r = n) && sa(t, n)), i;
+ }
+ return o._value = e, o;
+}
+function ca(t, e) {
+ var i = "attr." + t;
+ if (arguments.length < 2)
+ return (i = this.tween(i)) && i._value;
+ if (e == null)
+ return this.tween(i, null);
+ if (typeof e != "function")
+ throw new Error();
+ var r = Xe(t);
+ return this.tween(i, (r.local ? la : ha)(r, e));
+}
+function ua(t, e) {
+ return function() {
+ $i(this, t).delay = +e.apply(this, arguments);
+ };
+}
+function fa(t, e) {
+ return e = +e, function() {
+ $i(this, t).delay = e;
+ };
+}
+function da(t) {
+ var e = this._id;
+ return arguments.length ? this.each((typeof t == "function" ? ua : fa)(e, t)) : yt(this.node(), e).delay;
+}
+function ga(t, e) {
+ return function() {
+ xt(this, t).duration = +e.apply(this, arguments);
+ };
+}
+function pa(t, e) {
+ return e = +e, function() {
+ xt(this, t).duration = e;
+ };
+}
+function ma(t) {
+ var e = this._id;
+ return arguments.length ? this.each((typeof t == "function" ? ga : pa)(e, t)) : yt(this.node(), e).duration;
+}
+function Ca(t, e) {
+ if (typeof e != "function")
+ throw new Error();
+ return function() {
+ xt(this, t).ease = e;
+ };
+}
+function ya(t) {
+ var e = this._id;
+ return arguments.length ? this.each(Ca(e, t)) : yt(this.node(), e).ease;
+}
+function ba(t, e) {
+ return function() {
+ var i = e.apply(this, arguments);
+ if (typeof i != "function")
+ throw new Error();
+ xt(this, t).ease = i;
+ };
+}
+function _a(t) {
+ if (typeof t != "function")
+ throw new Error();
+ return this.each(ba(this._id, t));
+}
+function xa(t) {
+ typeof t != "function" && (t = Dr(t));
+ for (var e = this._groups, i = e.length, r = new Array(i), o = 0; o < i; ++o)
+ for (var n = e[o], s = n.length, l = r[o] = [], h, u = 0; u < s; ++u)
+ (h = n[u]) && t.call(h, h.__data__, u, n) && l.push(h);
+ return new wt(r, this._parents, this._name, this._id);
+}
+function Ta(t) {
+ if (t._id !== this._id)
+ throw new Error();
+ for (var e = this._groups, i = t._groups, r = e.length, o = i.length, n = Math.min(r, o), s = new Array(r), l = 0; l < n; ++l)
+ for (var h = e[l], u = i[l], f = h.length, g = s[l] = new Array(f), x, _ = 0; _ < f; ++_)
+ (x = h[_] || u[_]) && (g[_] = x);
+ for (; l < r; ++l)
+ s[l] = e[l];
+ return new wt(s, this._parents, this._name, this._id);
+}
+function ka(t) {
+ return (t + "").trim().split(/^|\s+/).every(function(e) {
+ var i = e.indexOf(".");
+ return i >= 0 && (e = e.slice(0, i)), !e || e === "start";
+ });
+}
+function Sa(t, e, i) {
+ var r, o, n = ka(e) ? $i : xt;
+ return function() {
+ var s = n(this, t), l = s.on;
+ l !== r && (o = (r = l).copy()).on(e, i), s.on = o;
+ };
+}
+function Ba(t, e) {
+ var i = this._id;
+ return arguments.length < 2 ? yt(this.node(), i).on.on(t) : this.each(Sa(i, t, e));
+}
+function va(t) {
+ return function() {
+ var e = this.parentNode;
+ for (var i in this.__transition)
+ if (+i !== t)
+ return;
+ e && e.removeChild(this);
+ };
+}
+function wa() {
+ return this.on("end.remove", va(this._id));
+}
+function La(t) {
+ var e = this._name, i = this._id;
+ typeof t != "function" && (t = Ii(t));
+ for (var r = this._groups, o = r.length, n = new Array(o), s = 0; s < o; ++s)
+ for (var l = r[s], h = l.length, u = n[s] = new Array(h), f, g, x = 0; x < h; ++x)
+ (f = l[x]) && (g = t.call(f, f.__data__, x, l)) && ("__data__" in f && (g.__data__ = f.__data__), u[x] = g, Ke(u[x], e, i, x, u, yt(f, i)));
+ return new wt(n, this._parents, e, i);
+}
+function Fa(t) {
+ var e = this._name, i = this._id;
+ typeof t != "function" && (t = Ir(t));
+ for (var r = this._groups, o = r.length, n = [], s = [], l = 0; l < o; ++l)
+ for (var h = r[l], u = h.length, f, g = 0; g < u; ++g)
+ if (f = h[g]) {
+ for (var x = t.call(f, f.__data__, g, h), _, M = yt(f, i), z = 0, j = x.length; z < j; ++z)
+ (_ = x[z]) && Ke(_, e, i, z, x, M);
+ n.push(x), s.push(f);
+ }
+ return new wt(n, s, e, i);
+}
+var Aa = Ce.prototype.constructor;
+function Ea() {
+ return new Aa(this._groups, this._parents);
+}
+function Ma(t, e) {
+ var i, r, o;
+ return function() {
+ var n = Qt(this, t), s = (this.style.removeProperty(t), Qt(this, t));
+ return n === s ? null : n === i && s === r ? o : o = e(i = n, r = s);
+ };
+}
+function io(t) {
+ return function() {
+ this.style.removeProperty(t);
+ };
+}
+function Oa(t, e, i) {
+ var r, o = i + "", n;
+ return function() {
+ var s = Qt(this, t);
+ return s === o ? null : s === r ? n : n = e(r = s, i);
+ };
+}
+function Ia(t, e, i) {
+ var r, o, n;
+ return function() {
+ var s = Qt(this, t), l = i(this), h = l + "";
+ return l == null && (h = l = (this.style.removeProperty(t), Qt(this, t))), s === h ? null : s === r && h === o ? n : (o = h, n = e(r = s, l));
+ };
+}
+function Da(t, e) {
+ var i, r, o, n = "style." + e, s = "end." + n, l;
+ return function() {
+ var h = xt(this, t), u = h.on, f = h.value[n] == null ? l || (l = io(e)) : void 0;
+ (u !== i || o !== f) && (r = (i = u).copy()).on(s, o = f), h.on = r;
+ };
+}
+function Ra(t, e, i) {
+ var r = (t += "") == "transform" ? $s : eo;
+ return e == null ? this.styleTween(t, Ma(t, r)).on("end.style." + t, io(t)) : typeof e == "function" ? this.styleTween(t, Ia(t, r, Wi(this, "style." + t, e))).each(Da(this._id, t)) : this.styleTween(t, Oa(t, r, e), i).on("end.style." + t, null);
+}
+function Na(t, e, i) {
+ return function(r) {
+ this.style.setProperty(t, e.call(this, r), i);
+ };
+}
+function za(t, e, i) {
+ var r, o;
+ function n() {
+ var s = e.apply(this, arguments);
+ return s !== o && (r = (o = s) && Na(t, s, i)), r;
+ }
+ return n._value = e, n;
+}
+function $a(t, e, i) {
+ var r = "style." + (t += "");
+ if (arguments.length < 2)
+ return (r = this.tween(r)) && r._value;
+ if (e == null)
+ return this.tween(r, null);
+ if (typeof e != "function")
+ throw new Error();
+ return this.tween(r, za(t, e, i ?? ""));
+}
+function Wa(t) {
+ return function() {
+ this.textContent = t;
+ };
+}
+function Pa(t) {
+ return function() {
+ var e = t(this);
+ this.textContent = e ?? "";
+ };
+}
+function Ha(t) {
+ return this.tween("text", typeof t == "function" ? Pa(Wi(this, "text", t)) : Wa(t == null ? "" : t + ""));
+}
+function qa(t) {
+ return function(e) {
+ this.textContent = t.call(this, e);
+ };
+}
+function Ua(t) {
+ var e, i;
+ function r() {
+ var o = t.apply(this, arguments);
+ return o !== i && (e = (i = o) && qa(o)), e;
+ }
+ return r._value = t, r;
+}
+function Ga(t) {
+ var e = "text";
+ if (arguments.length < 1)
+ return (e = this.tween(e)) && e._value;
+ if (t == null)
+ return this.tween(e, null);
+ if (typeof t != "function")
+ throw new Error();
+ return this.tween(e, Ua(t));
+}
+function Va() {
+ for (var t = this._name, e = this._id, i = ro(), r = this._groups, o = r.length, n = 0; n < o; ++n)
+ for (var s = r[n], l = s.length, h, u = 0; u < l; ++u)
+ if (h = s[u]) {
+ var f = yt(h, e);
+ Ke(h, t, i, u, s, {
+ time: f.time + f.delay + f.duration,
+ delay: 0,
+ duration: f.duration,
+ ease: f.ease
+ });
+ }
+ return new wt(r, this._parents, t, i);
+}
+function Ya() {
+ var t, e, i = this, r = i._id, o = i.size();
+ return new Promise(function(n, s) {
+ var l = { value: s }, h = { value: function() {
+ --o === 0 && n();
+ } };
+ i.each(function() {
+ var u = xt(this, r), f = u.on;
+ f !== t && (e = (t = f).copy(), e._.cancel.push(l), e._.interrupt.push(l), e._.end.push(h)), u.on = e;
+ }), o === 0 && n();
+ });
+}
+var Xa = 0;
+function wt(t, e, i, r) {
+ this._groups = t, this._parents = e, this._name = i, this._id = r;
+}
+function ro() {
+ return ++Xa;
+}
+var vt = Ce.prototype;
+wt.prototype = {
+ constructor: wt,
+ select: La,
+ selectAll: Fa,
+ selectChild: vt.selectChild,
+ selectChildren: vt.selectChildren,
+ filter: xa,
+ merge: Ta,
+ selection: Ea,
+ transition: Va,
+ call: vt.call,
+ nodes: vt.nodes,
+ node: vt.node,
+ size: vt.size,
+ empty: vt.empty,
+ each: vt.each,
+ on: Ba,
+ attr: na,
+ attrTween: ca,
+ style: Ra,
+ styleTween: $a,
+ text: Ha,
+ textTween: Ga,
+ remove: wa,
+ tween: Js,
+ delay: da,
+ duration: ma,
+ ease: ya,
+ easeVarying: _a,
+ end: Ya,
+ [Symbol.iterator]: vt[Symbol.iterator]
+};
+function ja(t) {
+ return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
+}
+var Ka = {
+ time: null,
+ // Set on use.
+ delay: 0,
+ duration: 250,
+ ease: ja
+};
+function Za(t, e) {
+ for (var i; !(i = t.__transition) || !(i = i[e]); )
+ if (!(t = t.parentNode))
+ throw new Error(`transition ${e} not found`);
+ return i;
+}
+function Ja(t) {
+ var e, i;
+ t instanceof wt ? (e = t._id, t = t._name) : (e = ro(), (i = Ka).time = zi(), t = t == null ? null : t + "");
+ for (var r = this._groups, o = r.length, n = 0; n < o; ++n)
+ for (var s = r[n], l = s.length, h, u = 0; u < l; ++u)
+ (h = s[u]) && Ke(h, t, e, u, s, i || Za(h, e));
+ return new wt(r, this._parents, t, e);
+}
+Ce.prototype.interrupt = js;
+Ce.prototype.transition = Ja;
+function he(t, e, i) {
+ this.k = t, this.x = e, this.y = i;
+}
+he.prototype = {
+ constructor: he,
+ scale: function(t) {
+ return t === 1 ? this : new he(this.k * t, this.x, this.y);
+ },
+ translate: function(t, e) {
+ return t === 0 & e === 0 ? this : new he(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 + ")";
+ }
+};
+he.prototype;
+/*! @license DOMPurify 2.4.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.5/LICENSE */
+function Et(t) {
+ return Et = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
+ return typeof e;
+ } : function(e) {
+ return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
+ }, Et(t);
+}
+function Fi(t, e) {
+ return Fi = Object.setPrototypeOf || function(r, o) {
+ return r.__proto__ = o, r;
+ }, Fi(t, e);
+}
+function Qa() {
+ if (typeof Reflect > "u" || !Reflect.construct || Reflect.construct.sham)
+ return !1;
+ if (typeof Proxy == "function")
+ return !0;
+ try {
+ return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
+ })), !0;
+ } catch {
+ return !1;
+ }
+}
+function De(t, e, i) {
+ return Qa() ? De = Reflect.construct : De = function(o, n, s) {
+ var l = [null];
+ l.push.apply(l, n);
+ var h = Function.bind.apply(o, l), u = new h();
+ return s && Fi(u, s.prototype), u;
+ }, De.apply(null, arguments);
+}
+function pt(t) {
+ return tl(t) || el(t) || il(t) || rl();
+}
+function tl(t) {
+ if (Array.isArray(t))
+ return Ai(t);
+}
+function el(t) {
+ if (typeof Symbol < "u" && t[Symbol.iterator] != null || t["@@iterator"] != null)
+ return Array.from(t);
+}
+function il(t, e) {
+ if (t) {
+ if (typeof t == "string")
+ return Ai(t, e);
+ var i = Object.prototype.toString.call(t).slice(8, -1);
+ if (i === "Object" && t.constructor && (i = t.constructor.name), i === "Map" || i === "Set")
+ return Array.from(t);
+ if (i === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))
+ return Ai(t, e);
+ }
+}
+function Ai(t, e) {
+ (e == null || e > t.length) && (e = t.length);
+ for (var i = 0, r = new Array(e); i < e; i++)
+ r[i] = t[i];
+ return r;
+}
+function rl() {
+ throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
+}
+var ol = Object.hasOwnProperty, kr = Object.setPrototypeOf, nl = Object.isFrozen, sl = Object.getPrototypeOf, al = Object.getOwnPropertyDescriptor, J = Object.freeze, Ct = Object.seal, ll = Object.create, oo = typeof Reflect < "u" && Reflect, Ve = oo.apply, Ei = oo.construct;
+Ve || (Ve = function(e, i, r) {
+ return e.apply(i, r);
+});
+J || (J = function(e) {
+ return e;
+});
+Ct || (Ct = function(e) {
+ return e;
+});
+Ei || (Ei = function(e, i) {
+ return De(e, pt(i));
+});
+var hl = ft(Array.prototype.forEach), Sr = ft(Array.prototype.pop), se = ft(Array.prototype.push), Re = ft(String.prototype.toLowerCase), pi = ft(String.prototype.toString), cl = ft(String.prototype.match), gt = ft(String.prototype.replace), ul = ft(String.prototype.indexOf), fl = ft(String.prototype.trim), K = ft(RegExp.prototype.test), mi = dl(TypeError);
+function ft(t) {
+ return function(e) {
+ for (var i = arguments.length, r = new Array(i > 1 ? i - 1 : 0), o = 1; o < i; o++)
+ r[o - 1] = arguments[o];
+ return Ve(t, e, r);
+ };
+}
+function dl(t) {
+ return function() {
+ for (var e = arguments.length, i = new Array(e), r = 0; r < e; r++)
+ i[r] = arguments[r];
+ return Ei(t, i);
+ };
+}
+function E(t, e, i) {
+ i = i || Re, kr && kr(t, null);
+ for (var r = e.length; r--; ) {
+ var o = e[r];
+ if (typeof o == "string") {
+ var n = i(o);
+ n !== o && (nl(e) || (e[r] = n), o = n);
+ }
+ t[o] = !0;
+ }
+ return t;
+}
+function zt(t) {
+ var e = ll(null), i;
+ for (i in t)
+ Ve(ol, t, [i]) === !0 && (e[i] = t[i]);
+ return e;
+}
+function Le(t, e) {
+ for (; t !== null; ) {
+ var i = al(t, e);
+ if (i) {
+ if (i.get)
+ return ft(i.get);
+ if (typeof i.value == "function")
+ return ft(i.value);
+ }
+ t = sl(t);
+ }
+ function r(o) {
+ return console.warn("fallback value for", o), null;
+ }
+ return r;
+}
+var Br = J(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), Ci = J(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), yi = J(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), gl = J(["animate", "color-profile", "cursor", "discard", "fedropshadow", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), bi = J(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover"]), pl = J(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), vr = J(["#text"]), wr = J(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]), _i = J(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), Lr = J(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), Fe = J(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), ml = Ct(/\{\{[\w\W]*|[\w\W]*\}\}/gm), Cl = Ct(/<%[\w\W]*|[\w\W]*%>/gm), yl = Ct(/\${[\w\W]*}/gm), bl = Ct(/^data-[\-\w.\u00B7-\uFFFF]/), _l = Ct(/^aria-[\-\w]+$/), xl = Ct(
+ /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
+ // eslint-disable-line no-useless-escape
+), Tl = Ct(/^(?:\w+script|data):/i), kl = Ct(
+ /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
+ // eslint-disable-line no-control-regex
+), Sl = Ct(/^html$/i), Bl = function() {
+ return typeof window > "u" ? null : window;
+}, vl = function(e, i) {
+ if (Et(e) !== "object" || typeof e.createPolicy != "function")
+ return null;
+ var r = null, o = "data-tt-policy-suffix";
+ i.currentScript && i.currentScript.hasAttribute(o) && (r = i.currentScript.getAttribute(o));
+ var n = "dompurify" + (r ? "#" + r : "");
+ try {
+ return e.createPolicy(n, {
+ createHTML: function(l) {
+ return l;
+ },
+ createScriptURL: function(l) {
+ return l;
+ }
+ });
+ } catch {
+ return console.warn("TrustedTypes policy " + n + " could not be created."), null;
+ }
+};
+function no() {
+ var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Bl(), e = function(a) {
+ return no(a);
+ };
+ if (e.version = "2.4.5", e.removed = [], !t || !t.document || t.document.nodeType !== 9)
+ return e.isSupported = !1, e;
+ var i = t.document, r = t.document, o = t.DocumentFragment, n = t.HTMLTemplateElement, s = t.Node, l = t.Element, h = t.NodeFilter, u = t.NamedNodeMap, f = u === void 0 ? t.NamedNodeMap || t.MozNamedAttrMap : u, g = t.HTMLFormElement, x = t.DOMParser, _ = t.trustedTypes, M = l.prototype, z = Le(M, "cloneNode"), j = Le(M, "nextSibling"), Ot = Le(M, "childNodes"), nt = Le(M, "parentNode");
+ if (typeof n == "function") {
+ var Q = r.createElement("template");
+ Q.content && Q.content.ownerDocument && (r = Q.content.ownerDocument);
+ }
+ var H = vl(_, i), at = H ? H.createHTML("") : "", lt = r, It = lt.implementation, Ht = lt.createNodeIterator, W = lt.createDocumentFragment, D = lt.getElementsByTagName, qt = i.importNode, ie = {};
+ try {
+ ie = zt(r).documentMode ? r.documentMode : {};
+ } catch {
+ }
+ var k = {};
+ e.isSupported = typeof nt == "function" && It && typeof It.createHTMLDocument < "u" && ie !== 9;
+ var y = ml, p = Cl, B = yl, b = bl, F = _l, w = Tl, O = kl, $ = xl, A = null, P = E({}, [].concat(pt(Br), pt(Ci), pt(yi), pt(bi), pt(vr))), R = null, ht = E({}, [].concat(pt(wr), pt(_i), pt(Lr), pt(Fe))), N = Object.seal(Object.create(null, {
+ tagNameCheck: {
+ writable: !0,
+ configurable: !1,
+ enumerable: !0,
+ value: null
+ },
+ attributeNameCheck: {
+ writable: !0,
+ configurable: !1,
+ enumerable: !0,
+ value: null
+ },
+ allowCustomizedBuiltInElements: {
+ writable: !0,
+ configurable: !1,
+ enumerable: !0,
+ value: !1
+ }
+ })), dt = null, bt = null, G = !0, ct = !0, Ut = !1, Dt = !0, Gt = !1, Rt = !1, ri = !1, oi = !1, Vt = !1, be = !1, _e = !1, Gi = !0, Vi = !1, vo = "user-content-", ni = !0, re = !1, Yt = {}, Xt = null, Yi = E({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]), Xi = null, ji = E({}, ["audio", "video", "img", "source", "image", "track"]), si = null, Ki = E({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), xe = "http://www.w3.org/1998/Math/MathML", Te = "http://www.w3.org/2000/svg", Tt = "http://www.w3.org/1999/xhtml", jt = Tt, ai = !1, li = null, wo = E({}, [xe, Te, Tt], pi), Nt, Lo = ["application/xhtml+xml", "text/html"], Fo = "text/html", q, Kt = null, Ao = r.createElement("form"), Zi = function(a) {
+ return a instanceof RegExp || a instanceof Function;
+ }, hi = function(a) {
+ Kt && Kt === a || ((!a || Et(a) !== "object") && (a = {}), a = zt(a), Nt = // eslint-disable-next-line unicorn/prefer-includes
+ Lo.indexOf(a.PARSER_MEDIA_TYPE) === -1 ? Nt = Fo : Nt = a.PARSER_MEDIA_TYPE, q = Nt === "application/xhtml+xml" ? pi : Re, A = "ALLOWED_TAGS" in a ? E({}, a.ALLOWED_TAGS, q) : P, R = "ALLOWED_ATTR" in a ? E({}, a.ALLOWED_ATTR, q) : ht, li = "ALLOWED_NAMESPACES" in a ? E({}, a.ALLOWED_NAMESPACES, pi) : wo, si = "ADD_URI_SAFE_ATTR" in a ? E(
+ zt(Ki),
+ // eslint-disable-line indent
+ a.ADD_URI_SAFE_ATTR,
+ // eslint-disable-line indent
+ q
+ // eslint-disable-line indent
+ ) : Ki, Xi = "ADD_DATA_URI_TAGS" in a ? E(
+ zt(ji),
+ // eslint-disable-line indent
+ a.ADD_DATA_URI_TAGS,
+ // eslint-disable-line indent
+ q
+ // eslint-disable-line indent
+ ) : ji, Xt = "FORBID_CONTENTS" in a ? E({}, a.FORBID_CONTENTS, q) : Yi, dt = "FORBID_TAGS" in a ? E({}, a.FORBID_TAGS, q) : {}, bt = "FORBID_ATTR" in a ? E({}, a.FORBID_ATTR, q) : {}, Yt = "USE_PROFILES" in a ? a.USE_PROFILES : !1, G = a.ALLOW_ARIA_ATTR !== !1, ct = a.ALLOW_DATA_ATTR !== !1, Ut = a.ALLOW_UNKNOWN_PROTOCOLS || !1, Dt = a.ALLOW_SELF_CLOSE_IN_ATTR !== !1, Gt = a.SAFE_FOR_TEMPLATES || !1, Rt = a.WHOLE_DOCUMENT || !1, Vt = a.RETURN_DOM || !1, be = a.RETURN_DOM_FRAGMENT || !1, _e = a.RETURN_TRUSTED_TYPE || !1, oi = a.FORCE_BODY || !1, Gi = a.SANITIZE_DOM !== !1, Vi = a.SANITIZE_NAMED_PROPS || !1, ni = a.KEEP_CONTENT !== !1, re = a.IN_PLACE || !1, $ = a.ALLOWED_URI_REGEXP || $, jt = a.NAMESPACE || Tt, N = a.CUSTOM_ELEMENT_HANDLING || {}, a.CUSTOM_ELEMENT_HANDLING && Zi(a.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (N.tagNameCheck = a.CUSTOM_ELEMENT_HANDLING.tagNameCheck), a.CUSTOM_ELEMENT_HANDLING && Zi(a.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (N.attributeNameCheck = a.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), a.CUSTOM_ELEMENT_HANDLING && typeof a.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (N.allowCustomizedBuiltInElements = a.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), Gt && (ct = !1), be && (Vt = !0), Yt && (A = E({}, pt(vr)), R = [], Yt.html === !0 && (E(A, Br), E(R, wr)), Yt.svg === !0 && (E(A, Ci), E(R, _i), E(R, Fe)), Yt.svgFilters === !0 && (E(A, yi), E(R, _i), E(R, Fe)), Yt.mathMl === !0 && (E(A, bi), E(R, Lr), E(R, Fe))), a.ADD_TAGS && (A === P && (A = zt(A)), E(A, a.ADD_TAGS, q)), a.ADD_ATTR && (R === ht && (R = zt(R)), E(R, a.ADD_ATTR, q)), a.ADD_URI_SAFE_ATTR && E(si, a.ADD_URI_SAFE_ATTR, q), a.FORBID_CONTENTS && (Xt === Yi && (Xt = zt(Xt)), E(Xt, a.FORBID_CONTENTS, q)), ni && (A["#text"] = !0), Rt && E(A, ["html", "head", "body"]), A.table && (E(A, ["tbody"]), delete dt.tbody), J && J(a), Kt = a);
+ }, Ji = E({}, ["mi", "mo", "mn", "ms", "mtext"]), Qi = E({}, ["foreignobject", "desc", "title", "annotation-xml"]), Eo = E({}, ["title", "style", "font", "a", "script"]), ke = E({}, Ci);
+ E(ke, yi), E(ke, gl);
+ var ci = E({}, bi);
+ E(ci, pl);
+ var Mo = function(a) {
+ var d = nt(a);
+ (!d || !d.tagName) && (d = {
+ namespaceURI: jt,
+ tagName: "template"
+ });
+ var C = Re(a.tagName), I = Re(d.tagName);
+ return li[a.namespaceURI] ? a.namespaceURI === Te ? d.namespaceURI === Tt ? C === "svg" : d.namespaceURI === xe ? C === "svg" && (I === "annotation-xml" || Ji[I]) : Boolean(ke[C]) : a.namespaceURI === xe ? d.namespaceURI === Tt ? C === "math" : d.namespaceURI === Te ? C === "math" && Qi[I] : Boolean(ci[C]) : a.namespaceURI === Tt ? d.namespaceURI === Te && !Qi[I] || d.namespaceURI === xe && !Ji[I] ? !1 : !ci[C] && (Eo[C] || !ke[C]) : !!(Nt === "application/xhtml+xml" && li[a.namespaceURI]) : !1;
+ }, kt = function(a) {
+ se(e.removed, {
+ element: a
+ });
+ try {
+ a.parentNode.removeChild(a);
+ } catch {
+ try {
+ a.outerHTML = at;
+ } catch {
+ a.remove();
+ }
+ }
+ }, ui = function(a, d) {
+ try {
+ se(e.removed, {
+ attribute: d.getAttributeNode(a),
+ from: d
+ });
+ } catch {
+ se(e.removed, {
+ attribute: null,
+ from: d
+ });
+ }
+ if (d.removeAttribute(a), a === "is" && !R[a])
+ if (Vt || be)
+ try {
+ kt(d);
+ } catch {
+ }
+ else
+ try {
+ d.setAttribute(a, "");
+ } catch {
+ }
+ }, tr = function(a) {
+ var d, C;
+ if (oi)
+ a = "" + a;
+ else {
+ var I = cl(a, /^[\r\n\t ]+/);
+ C = I && I[0];
+ }
+ Nt === "application/xhtml+xml" && jt === Tt && (a = '
' + a + "");
+ var tt = H ? H.createHTML(a) : a;
+ if (jt === Tt)
+ try {
+ d = new x().parseFromString(tt, Nt);
+ } catch {
+ }
+ if (!d || !d.documentElement) {
+ d = It.createDocument(jt, "template", null);
+ try {
+ d.documentElement.innerHTML = ai ? at : tt;
+ } catch {
+ }
+ }
+ var Y = d.body || d.documentElement;
+ return a && C && Y.insertBefore(r.createTextNode(C), Y.childNodes[0] || null), jt === Tt ? D.call(d, Rt ? "html" : "body")[0] : Rt ? d.documentElement : Y;
+ }, er = function(a) {
+ return Ht.call(
+ a.ownerDocument || a,
+ a,
+ // eslint-disable-next-line no-bitwise
+ h.SHOW_ELEMENT | h.SHOW_COMMENT | h.SHOW_TEXT,
+ null,
+ !1
+ );
+ }, Oo = function(a) {
+ return a instanceof g && (typeof a.nodeName != "string" || typeof a.textContent != "string" || typeof a.removeChild != "function" || !(a.attributes instanceof f) || typeof a.removeAttribute != "function" || typeof a.setAttribute != "function" || typeof a.namespaceURI != "string" || typeof a.insertBefore != "function" || typeof a.hasChildNodes != "function");
+ }, oe = function(a) {
+ return Et(s) === "object" ? a instanceof s : a && Et(a) === "object" && typeof a.nodeType == "number" && typeof a.nodeName == "string";
+ }, St = function(a, d, C) {
+ k[a] && hl(k[a], function(I) {
+ I.call(e, d, C, Kt);
+ });
+ }, ir = function(a) {
+ var d;
+ if (St("beforeSanitizeElements", a, null), Oo(a) || K(/[\u0080-\uFFFF]/, a.nodeName))
+ return kt(a), !0;
+ var C = q(a.nodeName);
+ if (St("uponSanitizeElement", a, {
+ tagName: C,
+ allowedTags: A
+ }), a.hasChildNodes() && !oe(a.firstElementChild) && (!oe(a.content) || !oe(a.content.firstElementChild)) && K(/<[/\w]/g, a.innerHTML) && K(/<[/\w]/g, a.textContent) || C === "select" && K(/= 0; --V)
+ I.insertBefore(z(tt[V], !0), j(a));
+ }
+ return kt(a), !0;
+ }
+ return a instanceof l && !Mo(a) || (C === "noscript" || C === "noembed") && K(/<\/no(script|embed)/i, a.innerHTML) ? (kt(a), !0) : (Gt && a.nodeType === 3 && (d = a.textContent, d = gt(d, y, " "), d = gt(d, p, " "), d = gt(d, B, " "), a.textContent !== d && (se(e.removed, {
+ element: a.cloneNode()
+ }), a.textContent = d)), St("afterSanitizeElements", a, null), !1);
+ }, rr = function(a, d, C) {
+ if (Gi && (d === "id" || d === "name") && (C in r || C in Ao))
+ return !1;
+ if (!(ct && !bt[d] && K(b, d))) {
+ if (!(G && K(F, d))) {
+ if (!R[d] || bt[d]) {
+ if (
+ // First condition does a very basic check if a) it's basically a valid custom element tagname AND
+ // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
+ // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
+ !(or(a) && (N.tagNameCheck instanceof RegExp && K(N.tagNameCheck, a) || N.tagNameCheck instanceof Function && N.tagNameCheck(a)) && (N.attributeNameCheck instanceof RegExp && K(N.attributeNameCheck, d) || N.attributeNameCheck instanceof Function && N.attributeNameCheck(d)) || // Alternative, second condition checks if it's an `is`-attribute, AND
+ // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
+ d === "is" && N.allowCustomizedBuiltInElements && (N.tagNameCheck instanceof RegExp && K(N.tagNameCheck, C) || N.tagNameCheck instanceof Function && N.tagNameCheck(C)))
+ )
+ return !1;
+ } else if (!si[d]) {
+ if (!K($, gt(C, O, ""))) {
+ if (!((d === "src" || d === "xlink:href" || d === "href") && a !== "script" && ul(C, "data:") === 0 && Xi[a])) {
+ if (!(Ut && !K(w, gt(C, O, "")))) {
+ if (C)
+ return !1;
+ }
+ }
+ }
+ }
+ }
+ }
+ return !0;
+ }, or = function(a) {
+ return a.indexOf("-") > 0;
+ }, nr = function(a) {
+ var d, C, I, tt;
+ St("beforeSanitizeAttributes", a, null);
+ var Y = a.attributes;
+ if (Y) {
+ var V = {
+ attrName: "",
+ attrValue: "",
+ keepAttr: !0,
+ allowedAttributes: R
+ };
+ for (tt = Y.length; tt--; ) {
+ d = Y[tt];
+ var Se = d, U = Se.name, fi = Se.namespaceURI;
+ if (C = U === "value" ? d.value : fl(d.value), I = q(U), V.attrName = I, V.attrValue = C, V.keepAttr = !0, V.forceKeepAttr = void 0, St("uponSanitizeAttribute", a, V), C = V.attrValue, !V.forceKeepAttr && (ui(U, a), !!V.keepAttr)) {
+ if (!Dt && K(/\/>/i, C)) {
+ ui(U, a);
+ continue;
+ }
+ Gt && (C = gt(C, y, " "), C = gt(C, p, " "), C = gt(C, B, " "));
+ var sr = q(a.nodeName);
+ if (rr(sr, I, C)) {
+ if (Vi && (I === "id" || I === "name") && (ui(U, a), C = vo + C), H && Et(_) === "object" && typeof _.getAttributeType == "function" && !fi)
+ switch (_.getAttributeType(sr, I)) {
+ case "TrustedHTML":
+ C = H.createHTML(C);
+ break;
+ case "TrustedScriptURL":
+ C = H.createScriptURL(C);
+ break;
+ }
+ try {
+ fi ? a.setAttributeNS(fi, U, C) : a.setAttribute(U, C), Sr(e.removed);
+ } catch {
+ }
+ }
+ }
+ }
+ St("afterSanitizeAttributes", a, null);
+ }
+ }, Io = function T(a) {
+ var d, C = er(a);
+ for (St("beforeSanitizeShadowDOM", a, null); d = C.nextNode(); )
+ St("uponSanitizeShadowNode", d, null), !ir(d) && (d.content instanceof o && T(d.content), nr(d));
+ St("afterSanitizeShadowDOM", a, null);
+ };
+ return e.sanitize = function(T) {
+ var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, d, C, I, tt, Y;
+ if (ai = !T, ai && (T = ""), typeof T != "string" && !oe(T)) {
+ if (typeof T.toString != "function")
+ throw mi("toString is not a function");
+ if (T = T.toString(), typeof T != "string")
+ throw mi("dirty is not a string, aborting");
+ }
+ if (!e.isSupported) {
+ if (Et(t.toStaticHTML) === "object" || typeof t.toStaticHTML == "function") {
+ if (typeof T == "string")
+ return t.toStaticHTML(T);
+ if (oe(T))
+ return t.toStaticHTML(T.outerHTML);
+ }
+ return T;
+ }
+ if (ri || hi(a), e.removed = [], typeof T == "string" && (re = !1), re) {
+ if (T.nodeName) {
+ var V = q(T.nodeName);
+ if (!A[V] || dt[V])
+ throw mi("root node is forbidden and cannot be sanitized in-place");
+ }
+ } else if (T instanceof s)
+ d = tr(""), C = d.ownerDocument.importNode(T, !0), C.nodeType === 1 && C.nodeName === "BODY" || C.nodeName === "HTML" ? d = C : d.appendChild(C);
+ else {
+ if (!Vt && !Gt && !Rt && // eslint-disable-next-line unicorn/prefer-includes
+ T.indexOf("<") === -1)
+ return H && _e ? H.createHTML(T) : T;
+ if (d = tr(T), !d)
+ return Vt ? null : _e ? at : "";
+ }
+ d && oi && kt(d.firstChild);
+ for (var Se = er(re ? T : d); I = Se.nextNode(); )
+ I.nodeType === 3 && I === tt || ir(I) || (I.content instanceof o && Io(I.content), nr(I), tt = I);
+ if (tt = null, re)
+ return T;
+ if (Vt) {
+ if (be)
+ for (Y = W.call(d.ownerDocument); d.firstChild; )
+ Y.appendChild(d.firstChild);
+ else
+ Y = d;
+ return (R.shadowroot || R.shadowrootmod) && (Y = qt.call(i, Y, !0)), Y;
+ }
+ var U = Rt ? d.outerHTML : d.innerHTML;
+ return Rt && A["!doctype"] && d.ownerDocument && d.ownerDocument.doctype && d.ownerDocument.doctype.name && K(Sl, d.ownerDocument.doctype.name) && (U = "
+` + U), Gt && (U = gt(U, y, " "), U = gt(U, p, " "), U = gt(U, B, " ")), H && _e ? H.createHTML(U) : U;
+ }, e.setConfig = function(T) {
+ hi(T), ri = !0;
+ }, e.clearConfig = function() {
+ Kt = null, ri = !1;
+ }, e.isValidAttribute = function(T, a, d) {
+ Kt || hi({});
+ var C = q(T), I = q(a);
+ return rr(C, I, d);
+ }, e.addHook = function(T, a) {
+ typeof a == "function" && (k[T] = k[T] || [], se(k[T], a));
+ }, e.removeHook = function(T) {
+ if (k[T])
+ return Sr(k[T]);
+ }, e.removeHooks = function(T) {
+ k[T] && (k[T] = []);
+ }, e.removeAllHooks = function() {
+ k = {};
+ }, e;
+}
+var Mi = no();
+const wl = (t) => t ? ao(t).replace(/\\n/g, "#br#").split("#br#") : [""], so = (t) => Mi.sanitize(t), Fr = (t, e) => {
+ var i;
+ if (((i = e.flowchart) == null ? void 0 : i.htmlLabels) !== !1) {
+ const r = e.securityLevel;
+ r === "antiscript" || r === "strict" ? t = so(t) : r !== "loose" && (t = ao(t), t = t.replace(//g, ">"), t = t.replace(/=/g, "="), t = El(t));
+ }
+ return t;
+}, Ye = (t, e) => t && (e.dompurifyConfig ? t = Mi.sanitize(Fr(t, e), e.dompurifyConfig).toString() : t = Mi.sanitize(Fr(t, e), {
+ FORBID_TAGS: ["style"]
+}).toString(), t), Ll = (t, e) => typeof t == "string" ? Ye(t, e) : t.flat().map((i) => Ye(i, e)), Ze = /
/gi, Fl = (t) => Ze.test(t), Al = (t) => t.split(Ze), El = (t) => t.replace(/#br#/g, "
"), ao = (t) => t.replace(Ze, "#br#"), Ml = (t) => {
+ let e = "";
+ return t && (e = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, e = e.replaceAll(/\(/g, "\\("), e = e.replaceAll(/\)/g, "\\)")), e;
+}, Ol = (t) => !(t === !1 || ["false", "null", "0"].includes(String(t).trim().toLowerCase())), Il = function(t) {
+ let e = t;
+ if (t.split("~").length - 1 >= 2) {
+ let i = e;
+ do
+ e = i, i = e.replace(/~([^\s,:;]+)~/, "<$1>");
+ while (i != e);
+ return Il(i);
+ } else
+ return e;
+}, _h = {
+ getRows: wl,
+ sanitizeText: Ye,
+ sanitizeTextOrArray: Ll,
+ hasBreaks: Fl,
+ splitBreaks: Al,
+ lineBreakRegex: Ze,
+ removeScript: so,
+ getUrl: Ml,
+ evaluate: Ol
+}, Ne = {
+ /* CLAMP */
+ min: {
+ r: 0,
+ g: 0,
+ b: 0,
+ s: 0,
+ l: 0,
+ a: 0
+ },
+ max: {
+ r: 255,
+ g: 255,
+ b: 255,
+ h: 360,
+ s: 100,
+ l: 100,
+ a: 1
+ },
+ clamp: {
+ r: (t) => t >= 255 ? 255 : t < 0 ? 0 : t,
+ g: (t) => t >= 255 ? 255 : t < 0 ? 0 : t,
+ b: (t) => t >= 255 ? 255 : t < 0 ? 0 : t,
+ h: (t) => t % 360,
+ s: (t) => t >= 100 ? 100 : t < 0 ? 0 : t,
+ l: (t) => t >= 100 ? 100 : t < 0 ? 0 : t,
+ a: (t) => t >= 1 ? 1 : t < 0 ? 0 : t
+ },
+ /* CONVERSION */
+ //SOURCE: https://planetcalc.com/7779
+ toLinear: (t) => {
+ const e = t / 255;
+ return t > 0.03928 ? Math.pow((e + 0.055) / 1.055, 2.4) : e / 12.92;
+ },
+ //SOURCE: https://gist.github.com/mjackson/5311256
+ hue2rgb: (t, e, i) => (i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? t + (e - t) * 6 * i : i < 1 / 2 ? e : i < 2 / 3 ? t + (e - t) * (2 / 3 - i) * 6 : t),
+ hsl2rgb: ({ h: t, s: e, l: i }, r) => {
+ if (!e)
+ return i * 2.55;
+ t /= 360, e /= 100, i /= 100;
+ const o = i < 0.5 ? i * (1 + e) : i + e - i * e, n = 2 * i - o;
+ switch (r) {
+ case "r":
+ return Ne.hue2rgb(n, o, t + 1 / 3) * 255;
+ case "g":
+ return Ne.hue2rgb(n, o, t) * 255;
+ case "b":
+ return Ne.hue2rgb(n, o, t - 1 / 3) * 255;
+ }
+ },
+ rgb2hsl: ({ r: t, g: e, b: i }, r) => {
+ t /= 255, e /= 255, i /= 255;
+ const o = Math.max(t, e, i), n = Math.min(t, e, i), s = (o + n) / 2;
+ if (r === "l")
+ return s * 100;
+ if (o === n)
+ return 0;
+ const l = o - n, h = s > 0.5 ? l / (2 - o - n) : l / (o + n);
+ if (r === "s")
+ return h * 100;
+ switch (o) {
+ case t:
+ return ((e - i) / l + (e < i ? 6 : 0)) * 60;
+ case e:
+ return ((i - t) / l + 2) * 60;
+ case i:
+ return ((t - e) / l + 4) * 60;
+ default:
+ return -1;
+ }
+ }
+}, Dl = Ne, Rl = {
+ /* API */
+ clamp: (t, e, i) => e > i ? Math.min(e, Math.max(i, t)) : Math.min(i, Math.max(e, t)),
+ round: (t) => Math.round(t * 1e10) / 1e10
+}, Nl = Rl, zl = {
+ /* API */
+ dec2hex: (t) => {
+ const e = Math.round(t).toString(16);
+ return e.length > 1 ? e : `0${e}`;
+ }
+}, $l = zl, Wl = {
+ channel: Dl,
+ lang: Nl,
+ unit: $l
+}, L = Wl, Ft = {};
+for (let t = 0; t <= 255; t++)
+ Ft[t] = L.unit.dec2hex(t);
+const X = {
+ ALL: 0,
+ RGB: 1,
+ HSL: 2
+};
+class Pl {
+ constructor() {
+ this.type = X.ALL;
+ }
+ /* API */
+ get() {
+ return this.type;
+ }
+ set(e) {
+ if (this.type && this.type !== e)
+ throw new Error("Cannot change both RGB and HSL channels at the same time");
+ this.type = e;
+ }
+ reset() {
+ this.type = X.ALL;
+ }
+ is(e) {
+ return this.type === e;
+ }
+}
+const Hl = Pl;
+class ql {
+ /* CONSTRUCTOR */
+ constructor(e, i) {
+ this.color = i, this.changed = !1, this.data = e, this.type = new Hl();
+ }
+ /* API */
+ set(e, i) {
+ return this.color = i, this.changed = !1, this.data = e, this.type.type = X.ALL, this;
+ }
+ /* HELPERS */
+ _ensureHSL() {
+ const e = this.data, { h: i, s: r, l: o } = e;
+ i === void 0 && (e.h = L.channel.rgb2hsl(e, "h")), r === void 0 && (e.s = L.channel.rgb2hsl(e, "s")), o === void 0 && (e.l = L.channel.rgb2hsl(e, "l"));
+ }
+ _ensureRGB() {
+ const e = this.data, { r: i, g: r, b: o } = e;
+ i === void 0 && (e.r = L.channel.hsl2rgb(e, "r")), r === void 0 && (e.g = L.channel.hsl2rgb(e, "g")), o === void 0 && (e.b = L.channel.hsl2rgb(e, "b"));
+ }
+ /* GETTERS */
+ get r() {
+ const e = this.data, i = e.r;
+ return !this.type.is(X.HSL) && i !== void 0 ? i : (this._ensureHSL(), L.channel.hsl2rgb(e, "r"));
+ }
+ get g() {
+ const e = this.data, i = e.g;
+ return !this.type.is(X.HSL) && i !== void 0 ? i : (this._ensureHSL(), L.channel.hsl2rgb(e, "g"));
+ }
+ get b() {
+ const e = this.data, i = e.b;
+ return !this.type.is(X.HSL) && i !== void 0 ? i : (this._ensureHSL(), L.channel.hsl2rgb(e, "b"));
+ }
+ get h() {
+ const e = this.data, i = e.h;
+ return !this.type.is(X.RGB) && i !== void 0 ? i : (this._ensureRGB(), L.channel.rgb2hsl(e, "h"));
+ }
+ get s() {
+ const e = this.data, i = e.s;
+ return !this.type.is(X.RGB) && i !== void 0 ? i : (this._ensureRGB(), L.channel.rgb2hsl(e, "s"));
+ }
+ get l() {
+ const e = this.data, i = e.l;
+ return !this.type.is(X.RGB) && i !== void 0 ? i : (this._ensureRGB(), L.channel.rgb2hsl(e, "l"));
+ }
+ get a() {
+ return this.data.a;
+ }
+ /* SETTERS */
+ set r(e) {
+ this.type.set(X.RGB), this.changed = !0, this.data.r = e;
+ }
+ set g(e) {
+ this.type.set(X.RGB), this.changed = !0, this.data.g = e;
+ }
+ set b(e) {
+ this.type.set(X.RGB), this.changed = !0, this.data.b = e;
+ }
+ set h(e) {
+ this.type.set(X.HSL), this.changed = !0, this.data.h = e;
+ }
+ set s(e) {
+ this.type.set(X.HSL), this.changed = !0, this.data.s = e;
+ }
+ set l(e) {
+ this.type.set(X.HSL), this.changed = !0, this.data.l = e;
+ }
+ set a(e) {
+ this.changed = !0, this.data.a = e;
+ }
+}
+const Ul = ql, Gl = new Ul({ r: 0, g: 0, b: 0, a: 0 }, "transparent"), Je = Gl, lo = {
+ /* VARIABLES */
+ re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,
+ /* API */
+ parse: (t) => {
+ if (t.charCodeAt(0) !== 35)
+ return;
+ const e = t.match(lo.re);
+ if (!e)
+ return;
+ const i = e[1], r = parseInt(i, 16), o = i.length, n = o % 4 === 0, s = o > 4, l = s ? 1 : 17, h = s ? 8 : 4, u = n ? 0 : -1, f = s ? 255 : 15;
+ return Je.set({
+ r: (r >> h * (u + 3) & f) * l,
+ g: (r >> h * (u + 2) & f) * l,
+ b: (r >> h * (u + 1) & f) * l,
+ a: n ? (r & f) * l / 255 : 1
+ }, t);
+ },
+ stringify: (t) => {
+ const { r: e, g: i, b: r, a: o } = t;
+ return o < 1 ? `#${Ft[Math.round(e)]}${Ft[Math.round(i)]}${Ft[Math.round(r)]}${Ft[Math.round(o * 255)]}` : `#${Ft[Math.round(e)]}${Ft[Math.round(i)]}${Ft[Math.round(r)]}`;
+ }
+}, ce = lo, ze = {
+ /* VARIABLES */
+ re: /^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,
+ hueRe: /^(.+?)(deg|grad|rad|turn)$/i,
+ /* HELPERS */
+ _hue2deg: (t) => {
+ const e = t.match(ze.hueRe);
+ if (e) {
+ const [, i, r] = e;
+ switch (r) {
+ case "grad":
+ return L.channel.clamp.h(parseFloat(i) * 0.9);
+ case "rad":
+ return L.channel.clamp.h(parseFloat(i) * 180 / Math.PI);
+ case "turn":
+ return L.channel.clamp.h(parseFloat(i) * 360);
+ }
+ }
+ return L.channel.clamp.h(parseFloat(t));
+ },
+ /* API */
+ parse: (t) => {
+ const e = t.charCodeAt(0);
+ if (e !== 104 && e !== 72)
+ return;
+ const i = t.match(ze.re);
+ if (!i)
+ return;
+ const [, r, o, n, s, l] = i;
+ return Je.set({
+ h: ze._hue2deg(r),
+ s: L.channel.clamp.s(parseFloat(o)),
+ l: L.channel.clamp.l(parseFloat(n)),
+ a: s ? L.channel.clamp.a(l ? parseFloat(s) / 100 : parseFloat(s)) : 1
+ }, t);
+ },
+ stringify: (t) => {
+ const { h: e, s: i, l: r, a: o } = t;
+ return o < 1 ? `hsla(${L.lang.round(e)}, ${L.lang.round(i)}%, ${L.lang.round(r)}%, ${o})` : `hsl(${L.lang.round(e)}, ${L.lang.round(i)}%, ${L.lang.round(r)}%)`;
+ }
+}, Ae = ze, $e = {
+ /* VARIABLES */
+ colors: {
+ aliceblue: "#f0f8ff",
+ antiquewhite: "#faebd7",
+ aqua: "#00ffff",
+ aquamarine: "#7fffd4",
+ azure: "#f0ffff",
+ beige: "#f5f5dc",
+ bisque: "#ffe4c4",
+ black: "#000000",
+ blanchedalmond: "#ffebcd",
+ blue: "#0000ff",
+ blueviolet: "#8a2be2",
+ brown: "#a52a2a",
+ burlywood: "#deb887",
+ cadetblue: "#5f9ea0",
+ chartreuse: "#7fff00",
+ chocolate: "#d2691e",
+ coral: "#ff7f50",
+ cornflowerblue: "#6495ed",
+ cornsilk: "#fff8dc",
+ crimson: "#dc143c",
+ cyanaqua: "#00ffff",
+ darkblue: "#00008b",
+ darkcyan: "#008b8b",
+ darkgoldenrod: "#b8860b",
+ darkgray: "#a9a9a9",
+ darkgreen: "#006400",
+ darkgrey: "#a9a9a9",
+ darkkhaki: "#bdb76b",
+ darkmagenta: "#8b008b",
+ darkolivegreen: "#556b2f",
+ darkorange: "#ff8c00",
+ darkorchid: "#9932cc",
+ darkred: "#8b0000",
+ darksalmon: "#e9967a",
+ darkseagreen: "#8fbc8f",
+ darkslateblue: "#483d8b",
+ darkslategray: "#2f4f4f",
+ darkslategrey: "#2f4f4f",
+ darkturquoise: "#00ced1",
+ darkviolet: "#9400d3",
+ deeppink: "#ff1493",
+ deepskyblue: "#00bfff",
+ dimgray: "#696969",
+ dimgrey: "#696969",
+ dodgerblue: "#1e90ff",
+ firebrick: "#b22222",
+ floralwhite: "#fffaf0",
+ forestgreen: "#228b22",
+ fuchsia: "#ff00ff",
+ gainsboro: "#dcdcdc",
+ ghostwhite: "#f8f8ff",
+ gold: "#ffd700",
+ goldenrod: "#daa520",
+ gray: "#808080",
+ green: "#008000",
+ greenyellow: "#adff2f",
+ grey: "#808080",
+ honeydew: "#f0fff0",
+ hotpink: "#ff69b4",
+ indianred: "#cd5c5c",
+ indigo: "#4b0082",
+ ivory: "#fffff0",
+ khaki: "#f0e68c",
+ lavender: "#e6e6fa",
+ lavenderblush: "#fff0f5",
+ lawngreen: "#7cfc00",
+ lemonchiffon: "#fffacd",
+ lightblue: "#add8e6",
+ lightcoral: "#f08080",
+ lightcyan: "#e0ffff",
+ lightgoldenrodyellow: "#fafad2",
+ lightgray: "#d3d3d3",
+ lightgreen: "#90ee90",
+ lightgrey: "#d3d3d3",
+ lightpink: "#ffb6c1",
+ lightsalmon: "#ffa07a",
+ lightseagreen: "#20b2aa",
+ lightskyblue: "#87cefa",
+ lightslategray: "#778899",
+ lightslategrey: "#778899",
+ lightsteelblue: "#b0c4de",
+ lightyellow: "#ffffe0",
+ lime: "#00ff00",
+ limegreen: "#32cd32",
+ linen: "#faf0e6",
+ magenta: "#ff00ff",
+ maroon: "#800000",
+ mediumaquamarine: "#66cdaa",
+ mediumblue: "#0000cd",
+ mediumorchid: "#ba55d3",
+ mediumpurple: "#9370db",
+ mediumseagreen: "#3cb371",
+ mediumslateblue: "#7b68ee",
+ mediumspringgreen: "#00fa9a",
+ mediumturquoise: "#48d1cc",
+ mediumvioletred: "#c71585",
+ midnightblue: "#191970",
+ mintcream: "#f5fffa",
+ mistyrose: "#ffe4e1",
+ moccasin: "#ffe4b5",
+ navajowhite: "#ffdead",
+ navy: "#000080",
+ oldlace: "#fdf5e6",
+ olive: "#808000",
+ olivedrab: "#6b8e23",
+ orange: "#ffa500",
+ orangered: "#ff4500",
+ orchid: "#da70d6",
+ palegoldenrod: "#eee8aa",
+ palegreen: "#98fb98",
+ paleturquoise: "#afeeee",
+ palevioletred: "#db7093",
+ papayawhip: "#ffefd5",
+ peachpuff: "#ffdab9",
+ peru: "#cd853f",
+ pink: "#ffc0cb",
+ plum: "#dda0dd",
+ powderblue: "#b0e0e6",
+ purple: "#800080",
+ rebeccapurple: "#663399",
+ red: "#ff0000",
+ rosybrown: "#bc8f8f",
+ royalblue: "#4169e1",
+ saddlebrown: "#8b4513",
+ salmon: "#fa8072",
+ sandybrown: "#f4a460",
+ seagreen: "#2e8b57",
+ seashell: "#fff5ee",
+ sienna: "#a0522d",
+ silver: "#c0c0c0",
+ skyblue: "#87ceeb",
+ slateblue: "#6a5acd",
+ slategray: "#708090",
+ slategrey: "#708090",
+ snow: "#fffafa",
+ springgreen: "#00ff7f",
+ tan: "#d2b48c",
+ teal: "#008080",
+ thistle: "#d8bfd8",
+ transparent: "#00000000",
+ turquoise: "#40e0d0",
+ violet: "#ee82ee",
+ wheat: "#f5deb3",
+ white: "#ffffff",
+ whitesmoke: "#f5f5f5",
+ yellow: "#ffff00",
+ yellowgreen: "#9acd32"
+ },
+ /* API */
+ parse: (t) => {
+ t = t.toLowerCase();
+ const e = $e.colors[t];
+ if (e)
+ return ce.parse(e);
+ },
+ stringify: (t) => {
+ const e = ce.stringify(t);
+ for (const i in $e.colors)
+ if ($e.colors[i] === e)
+ return i;
+ }
+}, Ar = $e, ho = {
+ /* VARIABLES */
+ re: /^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,
+ /* API */
+ parse: (t) => {
+ const e = t.charCodeAt(0);
+ if (e !== 114 && e !== 82)
+ return;
+ const i = t.match(ho.re);
+ if (!i)
+ return;
+ const [, r, o, n, s, l, h, u, f] = i;
+ return Je.set({
+ r: L.channel.clamp.r(o ? parseFloat(r) * 2.55 : parseFloat(r)),
+ g: L.channel.clamp.g(s ? parseFloat(n) * 2.55 : parseFloat(n)),
+ b: L.channel.clamp.b(h ? parseFloat(l) * 2.55 : parseFloat(l)),
+ a: u ? L.channel.clamp.a(f ? parseFloat(u) / 100 : parseFloat(u)) : 1
+ }, t);
+ },
+ stringify: (t) => {
+ const { r: e, g: i, b: r, a: o } = t;
+ return o < 1 ? `rgba(${L.lang.round(e)}, ${L.lang.round(i)}, ${L.lang.round(r)}, ${L.lang.round(o)})` : `rgb(${L.lang.round(e)}, ${L.lang.round(i)}, ${L.lang.round(r)})`;
+ }
+}, Ee = ho, Vl = {
+ /* VARIABLES */
+ format: {
+ keyword: Ar,
+ hex: ce,
+ rgb: Ee,
+ rgba: Ee,
+ hsl: Ae,
+ hsla: Ae
+ },
+ /* API */
+ parse: (t) => {
+ if (typeof t != "string")
+ return t;
+ const e = ce.parse(t) || Ee.parse(t) || Ae.parse(t) || Ar.parse(t);
+ if (e)
+ return e;
+ throw new Error(`Unsupported color format: "${t}"`);
+ },
+ stringify: (t) => !t.changed && t.color ? t.color : t.type.is(X.HSL) || t.data.r === void 0 ? Ae.stringify(t) : t.a < 1 || !Number.isInteger(t.r) || !Number.isInteger(t.g) || !Number.isInteger(t.b) ? Ee.stringify(t) : ce.stringify(t)
+}, Lt = Vl, Yl = (t, e) => {
+ const i = Lt.parse(t);
+ for (const r in e)
+ i[r] = L.channel.clamp[r](e[r]);
+ return Lt.stringify(i);
+}, co = Yl, Xl = (t, e, i = 0, r = 1) => {
+ if (typeof t != "number")
+ return co(t, { a: e });
+ const o = Je.set({
+ r: L.channel.clamp.r(t),
+ g: L.channel.clamp.g(e),
+ b: L.channel.clamp.b(i),
+ a: L.channel.clamp.a(r)
+ });
+ return Lt.stringify(o);
+}, ue = Xl, jl = (t, e, i) => {
+ const r = Lt.parse(t), o = r[e], n = L.channel.clamp[e](o + i);
+ return o !== n && (r[e] = n), Lt.stringify(r);
+}, uo = jl, Kl = (t, e) => uo(t, "l", e), S = Kl, Zl = (t, e) => uo(t, "l", -e), v = Zl, Jl = (t, e) => {
+ const i = Lt.parse(t), r = {};
+ for (const o in e)
+ e[o] && (r[o] = i[o] + e[o]);
+ return co(t, r);
+}, c = Jl, Ql = (t, e, i = 50) => {
+ const { r, g: o, b: n, a: s } = Lt.parse(t), { r: l, g: h, b: u, a: f } = Lt.parse(e), g = i / 100, x = g * 2 - 1, _ = s - f, z = ((x * _ === -1 ? x : (x + _) / (1 + x * _)) + 1) / 2, j = 1 - z, Ot = r * z + l * j, nt = o * z + h * j, Q = n * z + u * j, H = s * g + f * (1 - g);
+ return ue(Ot, nt, Q, H);
+}, th = Ql, eh = (t, e = 100) => {
+ const i = Lt.parse(t);
+ return i.r = 255 - i.r, i.g = 255 - i.g, i.b = 255 - i.b, th(i, t, e);
+}, m = eh, Z = (t, e) => e ? c(t, { s: -40, l: 10 }) : c(t, { s: -40, l: -10 }), Qe = "#ffffff", ti = "#f2f2f2";
+let ih = class {
+ constructor() {
+ this.background = "#f4f4f4", this.primaryColor = "#fff4dd", this.noteBkgColor = "#fff5ad", this.noteTextColor = "#333", this.THEME_COLOR_LIMIT = 12, this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif', this.fontSize = "16px";
+ }
+ updateColors() {
+ if (this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333"), this.secondaryColor = this.secondaryColor || c(this.primaryColor, { h: -120 }), this.tertiaryColor = this.tertiaryColor || c(this.primaryColor, { h: 180, l: 5 }), this.primaryBorderColor = this.primaryBorderColor || Z(this.primaryColor, this.darkMode), this.secondaryBorderColor = this.secondaryBorderColor || Z(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = this.tertiaryBorderColor || Z(this.tertiaryColor, this.darkMode), this.noteBorderColor = this.noteBorderColor || Z(this.noteBkgColor, this.darkMode), this.noteBkgColor = this.noteBkgColor || "#fff5ad", this.noteTextColor = this.noteTextColor || "#333", this.secondaryTextColor = this.secondaryTextColor || m(this.secondaryColor), this.tertiaryTextColor = this.tertiaryTextColor || m(this.tertiaryColor), this.lineColor = this.lineColor || m(this.background), this.textColor = this.textColor || this.primaryTextColor, this.nodeBkg = this.nodeBkg || this.primaryColor, this.mainBkg = this.mainBkg || this.primaryColor, this.nodeBorder = this.nodeBorder || this.primaryBorderColor, this.clusterBkg = this.clusterBkg || this.tertiaryColor, this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor, this.defaultLinkColor = this.defaultLinkColor || this.lineColor, this.titleColor = this.titleColor || this.tertiaryTextColor, this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? v(this.secondaryColor, 30) : this.secondaryColor), this.nodeTextColor = this.nodeTextColor || this.primaryTextColor, this.actorBorder = this.actorBorder || this.primaryBorderColor, this.actorBkg = this.actorBkg || this.mainBkg, this.actorTextColor = this.actorTextColor || this.primaryTextColor, this.actorLineColor = this.actorLineColor || "grey", this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg, this.signalColor = this.signalColor || this.textColor, this.signalTextColor = this.signalTextColor || this.textColor, this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder, this.labelTextColor = this.labelTextColor || this.actorTextColor, this.loopTextColor = this.loopTextColor || this.actorTextColor, this.activationBorderColor = this.activationBorderColor || v(this.secondaryColor, 10), this.activationBkgColor = this.activationBkgColor || this.secondaryColor, this.sequenceNumberColor = this.sequenceNumberColor || m(this.lineColor), this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor, this.altSectionBkgColor = this.altSectionBkgColor || "white", this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor, this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor, this.excludeBkgColor = this.excludeBkgColor || "#eeeeee", this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor, this.taskBkgColor = this.taskBkgColor || this.primaryColor, this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor, this.activeTaskBkgColor = this.activeTaskBkgColor || S(this.primaryColor, 23), this.gridColor = this.gridColor || "lightgrey", this.doneTaskBkgColor = this.doneTaskBkgColor || "lightgrey", this.doneTaskBorderColor = this.doneTaskBorderColor || "grey", this.critBorderColor = this.critBorderColor || "#ff8888", this.critBkgColor = this.critBkgColor || "red", this.todayLineColor = this.todayLineColor || "red", this.taskTextColor = this.taskTextColor || this.textColor, this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor, this.taskTextLightColor = this.taskTextLightColor || this.textColor, this.taskTextColor = this.taskTextColor || this.primaryTextColor, this.taskTextDarkColor = this.taskTextDarkColor || this.textColor, this.taskTextClickableColor = this.taskTextClickableColor || "#003163", this.personBorder = this.personBorder || this.primaryBorderColor, this.personBkg = this.personBkg || this.mainBkg, this.transitionColor = this.transitionColor || this.lineColor, this.transitionLabelColor = this.transitionLabelColor || this.textColor, this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor, this.stateBkg = this.stateBkg || this.mainBkg, this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg, this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor, this.altBackground = this.altBackground || this.tertiaryColor, this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg, this.compositeBorder = this.compositeBorder || this.nodeBorder, this.innerEndBackground = this.nodeBorder, this.errorBkgColor = this.errorBkgColor || this.tertiaryColor, this.errorTextColor = this.errorTextColor || this.tertiaryTextColor, this.transitionColor = this.transitionColor || this.lineColor, this.specialStateColor = this.lineColor, this.cScale0 = this.cScale0 || this.primaryColor, this.cScale1 = this.cScale1 || this.secondaryColor, this.cScale2 = this.cScale2 || this.tertiaryColor, this.cScale3 = this.cScale3 || c(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || c(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || c(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || c(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || c(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || c(this.primaryColor, { h: 210, l: 150 }), this.cScale9 = this.cScale9 || c(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || c(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || c(this.primaryColor, { h: 330 }), this.darkMode)
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++)
+ this["cScale" + i] = v(this["cScale" + i], 75);
+ else
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++)
+ this["cScale" + i] = v(this["cScale" + i], 25);
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++)
+ this["cScaleInv" + i] = this["cScaleInv" + i] || m(this["cScale" + i]);
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++)
+ this.darkMode ? this["cScalePeer" + i] = this["cScalePeer" + i] || S(this["cScale" + i], 10) : this["cScalePeer" + i] = this["cScalePeer" + i] || v(this["cScale" + i], 10);
+ this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++)
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
+ const e = this.darkMode ? -4 : -1;
+ for (let i = 0; i < 5; i++)
+ this["surface" + i] = this["surface" + i] || c(this.mainBkg, { h: 180, s: -15, l: e * (5 + i * 3) }), this["surfacePeer" + i] = this["surfacePeer" + i] || c(this.mainBkg, { h: 180, s: -15, l: e * (8 + i * 3) });
+ this.classText = this.classText || this.textColor, this.fillType0 = this.fillType0 || this.primaryColor, this.fillType1 = this.fillType1 || this.secondaryColor, this.fillType2 = this.fillType2 || c(this.primaryColor, { h: 64 }), this.fillType3 = this.fillType3 || c(this.secondaryColor, { h: 64 }), this.fillType4 = this.fillType4 || c(this.primaryColor, { h: -64 }), this.fillType5 = this.fillType5 || c(this.secondaryColor, { h: -64 }), this.fillType6 = this.fillType6 || c(this.primaryColor, { h: 128 }), this.fillType7 = this.fillType7 || c(this.secondaryColor, { h: 128 }), this.pie1 = this.pie1 || this.primaryColor, this.pie2 = this.pie2 || this.secondaryColor, this.pie3 = this.pie3 || this.tertiaryColor, this.pie4 = this.pie4 || c(this.primaryColor, { l: -10 }), this.pie5 = this.pie5 || c(this.secondaryColor, { l: -10 }), this.pie6 = this.pie6 || c(this.tertiaryColor, { l: -10 }), this.pie7 = this.pie7 || c(this.primaryColor, { h: 60, l: -10 }), this.pie8 = this.pie8 || c(this.primaryColor, { h: -60, l: -10 }), this.pie9 = this.pie9 || c(this.primaryColor, { h: 120, l: 0 }), this.pie10 = this.pie10 || c(this.primaryColor, { h: 60, l: -20 }), this.pie11 = this.pie11 || c(this.primaryColor, { h: -60, l: -20 }), this.pie12 = this.pie12 || c(this.primaryColor, { h: 120, l: -10 }), this.pieTitleTextSize = this.pieTitleTextSize || "25px", this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor, this.pieSectionTextSize = this.pieSectionTextSize || "17px", this.pieSectionTextColor = this.pieSectionTextColor || this.textColor, this.pieLegendTextSize = this.pieLegendTextSize || "17px", this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor, this.pieStrokeColor = this.pieStrokeColor || "black", this.pieStrokeWidth = this.pieStrokeWidth || "2px", this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px", this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black", this.pieOpacity = this.pieOpacity || "0.7", this.requirementBackground = this.requirementBackground || this.primaryColor, this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor, this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor, this.requirementTextColor = this.requirementTextColor || this.primaryTextColor, this.relationColor = this.relationColor || this.lineColor, this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? v(this.secondaryColor, 30) : this.secondaryColor), this.relationLabelColor = this.relationLabelColor || this.actorTextColor, this.git0 = this.git0 || this.primaryColor, this.git1 = this.git1 || this.secondaryColor, this.git2 = this.git2 || this.tertiaryColor, this.git3 = this.git3 || c(this.primaryColor, { h: -30 }), this.git4 = this.git4 || c(this.primaryColor, { h: -60 }), this.git5 = this.git5 || c(this.primaryColor, { h: -90 }), this.git6 = this.git6 || c(this.primaryColor, { h: 60 }), this.git7 = this.git7 || c(this.primaryColor, { h: 120 }), this.darkMode ? (this.git0 = S(this.git0, 25), this.git1 = S(this.git1, 25), this.git2 = S(this.git2, 25), this.git3 = S(this.git3, 25), this.git4 = S(this.git4, 25), this.git5 = S(this.git5, 25), this.git6 = S(this.git6, 25), this.git7 = S(this.git7, 25)) : (this.git0 = v(this.git0, 25), this.git1 = v(this.git1, 25), this.git2 = v(this.git2, 25), this.git3 = v(this.git3, 25), this.git4 = v(this.git4, 25), this.git5 = v(this.git5, 25), this.git6 = v(this.git6, 25), this.git7 = v(this.git7, 25)), this.gitInv0 = this.gitInv0 || m(this.git0), this.gitInv1 = this.gitInv1 || m(this.git1), this.gitInv2 = this.gitInv2 || m(this.git2), this.gitInv3 = this.gitInv3 || m(this.git3), this.gitInv4 = this.gitInv4 || m(this.git4), this.gitInv5 = this.gitInv5 || m(this.git5), this.gitInv6 = this.gitInv6 || m(this.git6), this.gitInv7 = this.gitInv7 || m(this.git7), this.branchLabelColor = this.branchLabelColor || (this.darkMode ? "black" : this.labelTextColor), this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor, this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor, this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor, this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor, this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor, this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor, this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor, this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor, this.tagLabelColor = this.tagLabelColor || this.primaryTextColor, this.tagLabelBackground = this.tagLabelBackground || this.primaryColor, this.tagLabelBorder = this.tagBorder || this.primaryBorderColor, this.tagLabelFontSize = this.tagLabelFontSize || "10px", this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor, this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor, this.commitLabelFontSize = this.commitLabelFontSize || "10px", this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || Qe, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || ti;
+ }
+ calculate(e) {
+ if (typeof e != "object") {
+ this.updateColors();
+ return;
+ }
+ const i = Object.keys(e);
+ i.forEach((r) => {
+ this[r] = e[r];
+ }), this.updateColors(), i.forEach((r) => {
+ this[r] = e[r];
+ });
+ }
+};
+const rh = (t) => {
+ const e = new ih();
+ return e.calculate(t), e;
+};
+let oh = class {
+ constructor() {
+ this.background = "#333", this.primaryColor = "#1f2020", this.secondaryColor = S(this.primaryColor, 16), this.tertiaryColor = c(this.primaryColor, { h: -160 }), this.primaryBorderColor = m(this.background), this.secondaryBorderColor = Z(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = Z(this.tertiaryColor, this.darkMode), this.primaryTextColor = m(this.primaryColor), this.secondaryTextColor = m(this.secondaryColor), this.tertiaryTextColor = m(this.tertiaryColor), this.lineColor = m(this.background), this.textColor = m(this.background), this.mainBkg = "#1f2020", this.secondBkg = "calculated", this.mainContrastColor = "lightgrey", this.darkTextColor = S(m("#323D47"), 10), this.lineColor = "calculated", this.border1 = "#81B1DB", this.border2 = ue(255, 255, 255, 0.25), this.arrowheadColor = "calculated", this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif', this.fontSize = "16px", this.labelBackground = "#181818", this.textColor = "#ccc", this.THEME_COLOR_LIMIT = 12, this.nodeBkg = "calculated", this.nodeBorder = "calculated", this.clusterBkg = "calculated", this.clusterBorder = "calculated", this.defaultLinkColor = "calculated", this.titleColor = "#F9FFFE", this.edgeLabelBackground = "calculated", this.actorBorder = "calculated", this.actorBkg = "calculated", this.actorTextColor = "calculated", this.actorLineColor = "calculated", this.signalColor = "calculated", this.signalTextColor = "calculated", this.labelBoxBkgColor = "calculated", this.labelBoxBorderColor = "calculated", this.labelTextColor = "calculated", this.loopTextColor = "calculated", this.noteBorderColor = "calculated", this.noteBkgColor = "#fff5ad", this.noteTextColor = "calculated", this.activationBorderColor = "calculated", this.activationBkgColor = "calculated", this.sequenceNumberColor = "black", this.sectionBkgColor = v("#EAE8D9", 30), this.altSectionBkgColor = "calculated", this.sectionBkgColor2 = "#EAE8D9", this.taskBorderColor = ue(255, 255, 255, 70), this.taskBkgColor = "calculated", this.taskTextColor = "calculated", this.taskTextLightColor = "calculated", this.taskTextOutsideColor = "calculated", this.taskTextClickableColor = "#003163", this.activeTaskBorderColor = ue(255, 255, 255, 50), this.activeTaskBkgColor = "#81B1DB", this.gridColor = "calculated", this.doneTaskBkgColor = "calculated", this.doneTaskBorderColor = "grey", this.critBorderColor = "#E83737", this.critBkgColor = "#E83737", this.taskTextDarkColor = "calculated", this.todayLineColor = "#DB5757", this.personBorder = "calculated", this.personBkg = "calculated", this.labelColor = "calculated", this.errorBkgColor = "#a44141", this.errorTextColor = "#ddd";
+ }
+ updateColors() {
+ this.secondBkg = S(this.mainBkg, 16), this.lineColor = this.mainContrastColor, this.arrowheadColor = this.mainContrastColor, this.nodeBkg = this.mainBkg, this.nodeBorder = this.border1, this.clusterBkg = this.secondBkg, this.clusterBorder = this.border2, this.defaultLinkColor = this.lineColor, this.edgeLabelBackground = S(this.labelBackground, 25), this.actorBorder = this.border1, this.actorBkg = this.mainBkg, this.actorTextColor = this.mainContrastColor, this.actorLineColor = this.mainContrastColor, this.signalColor = this.mainContrastColor, this.signalTextColor = this.mainContrastColor, this.labelBoxBkgColor = this.actorBkg, this.labelBoxBorderColor = this.actorBorder, this.labelTextColor = this.mainContrastColor, this.loopTextColor = this.mainContrastColor, this.noteBorderColor = this.secondaryBorderColor, this.noteBkgColor = this.secondBkg, this.noteTextColor = this.secondaryTextColor, this.activationBorderColor = this.border1, this.activationBkgColor = this.secondBkg, this.altSectionBkgColor = this.background, this.taskBkgColor = S(this.mainBkg, 23), this.taskTextColor = this.darkTextColor, this.taskTextLightColor = this.mainContrastColor, this.taskTextOutsideColor = this.taskTextLightColor, this.gridColor = this.mainContrastColor, this.doneTaskBkgColor = this.mainContrastColor, this.taskTextDarkColor = this.darkTextColor, this.transitionColor = this.transitionColor || this.lineColor, this.transitionLabelColor = this.transitionLabelColor || this.textColor, this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor, this.stateBkg = this.stateBkg || this.mainBkg, this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg, this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor, this.altBackground = this.altBackground || "#555", this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg, this.compositeBorder = this.compositeBorder || this.nodeBorder, this.innerEndBackground = this.primaryBorderColor, this.specialStateColor = "#f4f4f4", this.errorBkgColor = this.errorBkgColor || this.tertiaryColor, this.errorTextColor = this.errorTextColor || this.tertiaryTextColor, this.fillType0 = this.primaryColor, this.fillType1 = this.secondaryColor, this.fillType2 = c(this.primaryColor, { h: 64 }), this.fillType3 = c(this.secondaryColor, { h: 64 }), this.fillType4 = c(this.primaryColor, { h: -64 }), this.fillType5 = c(this.secondaryColor, { h: -64 }), this.fillType6 = c(this.primaryColor, { h: 128 }), this.fillType7 = c(this.secondaryColor, { h: 128 }), this.cScale1 = this.cScale1 || "#0b0000", this.cScale2 = this.cScale2 || "#4d1037", this.cScale3 = this.cScale3 || "#3f5258", this.cScale4 = this.cScale4 || "#4f2f1b", this.cScale5 = this.cScale5 || "#6e0a0a", this.cScale6 = this.cScale6 || "#3b0048", this.cScale7 = this.cScale7 || "#995a01", this.cScale8 = this.cScale8 || "#154706", this.cScale9 = this.cScale9 || "#161722", this.cScale10 = this.cScale10 || "#00296f", this.cScale11 = this.cScale11 || "#01629c", this.cScale12 = this.cScale12 || "#010029", this.cScale0 = this.cScale0 || this.primaryColor, this.cScale1 = this.cScale1 || this.secondaryColor, this.cScale2 = this.cScale2 || this.tertiaryColor, this.cScale3 = this.cScale3 || c(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || c(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || c(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || c(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || c(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || c(this.primaryColor, { h: 210 }), this.cScale9 = this.cScale9 || c(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || c(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || c(this.primaryColor, { h: 330 });
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["cScaleInv" + e] = this["cScaleInv" + e] || m(this["cScale" + e]);
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["cScalePeer" + e] = this["cScalePeer" + e] || S(this["cScale" + e], 10);
+ for (let e = 0; e < 5; e++)
+ this["surface" + e] = this["surface" + e] || c(this.mainBkg, { h: 30, s: -30, l: -(-10 + e * 4) }), this["surfacePeer" + e] = this["surfacePeer" + e] || c(this.mainBkg, { h: 30, s: -30, l: -(-7 + e * 4) });
+ this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["cScaleLabel" + e] = this["cScaleLabel" + e] || this.scaleLabelColor;
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["pie" + e] = this["cScale" + e];
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px", this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor, this.pieSectionTextSize = this.pieSectionTextSize || "17px", this.pieSectionTextColor = this.pieSectionTextColor || this.textColor, this.pieLegendTextSize = this.pieLegendTextSize || "17px", this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor, this.pieStrokeColor = this.pieStrokeColor || "black", this.pieStrokeWidth = this.pieStrokeWidth || "2px", this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px", this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black", this.pieOpacity = this.pieOpacity || "0.7", this.classText = this.primaryTextColor, this.requirementBackground = this.requirementBackground || this.primaryColor, this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor, this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor, this.requirementTextColor = this.requirementTextColor || this.primaryTextColor, this.relationColor = this.relationColor || this.lineColor, this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? v(this.secondaryColor, 30) : this.secondaryColor), this.relationLabelColor = this.relationLabelColor || this.actorTextColor, this.git0 = S(this.secondaryColor, 20), this.git1 = S(this.pie2 || this.secondaryColor, 20), this.git2 = S(this.pie3 || this.tertiaryColor, 20), this.git3 = S(this.pie4 || c(this.primaryColor, { h: -30 }), 20), this.git4 = S(this.pie5 || c(this.primaryColor, { h: -60 }), 20), this.git5 = S(this.pie6 || c(this.primaryColor, { h: -90 }), 10), this.git6 = S(this.pie7 || c(this.primaryColor, { h: 60 }), 10), this.git7 = S(this.pie8 || c(this.primaryColor, { h: 120 }), 20), this.gitInv0 = this.gitInv0 || m(this.git0), this.gitInv1 = this.gitInv1 || m(this.git1), this.gitInv2 = this.gitInv2 || m(this.git2), this.gitInv3 = this.gitInv3 || m(this.git3), this.gitInv4 = this.gitInv4 || m(this.git4), this.gitInv5 = this.gitInv5 || m(this.git5), this.gitInv6 = this.gitInv6 || m(this.git6), this.gitInv7 = this.gitInv7 || m(this.git7), this.tagLabelColor = this.tagLabelColor || this.primaryTextColor, this.tagLabelBackground = this.tagLabelBackground || this.primaryColor, this.tagLabelBorder = this.tagBorder || this.primaryBorderColor, this.tagLabelFontSize = this.tagLabelFontSize || "10px", this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor, this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor, this.commitLabelFontSize = this.commitLabelFontSize || "10px", this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || S(this.background, 12), this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || S(this.background, 2);
+ }
+ calculate(e) {
+ if (typeof e != "object") {
+ this.updateColors();
+ return;
+ }
+ const i = Object.keys(e);
+ i.forEach((r) => {
+ this[r] = e[r];
+ }), this.updateColors(), i.forEach((r) => {
+ this[r] = e[r];
+ });
+ }
+};
+const nh = (t) => {
+ const e = new oh();
+ return e.calculate(t), e;
+};
+let sh = class {
+ constructor() {
+ this.background = "#f4f4f4", this.primaryColor = "#ECECFF", this.secondaryColor = c(this.primaryColor, { h: 120 }), this.secondaryColor = "#ffffde", this.tertiaryColor = c(this.primaryColor, { h: -160 }), this.primaryBorderColor = Z(this.primaryColor, this.darkMode), this.secondaryBorderColor = Z(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = Z(this.tertiaryColor, this.darkMode), this.primaryTextColor = m(this.primaryColor), this.secondaryTextColor = m(this.secondaryColor), this.tertiaryTextColor = m(this.tertiaryColor), this.lineColor = m(this.background), this.textColor = m(this.background), this.background = "white", this.mainBkg = "#ECECFF", this.secondBkg = "#ffffde", this.lineColor = "#333333", this.border1 = "#9370DB", this.border2 = "#aaaa33", this.arrowheadColor = "#333333", this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif', this.fontSize = "16px", this.labelBackground = "#e8e8e8", this.textColor = "#333", this.THEME_COLOR_LIMIT = 12, this.nodeBkg = "calculated", this.nodeBorder = "calculated", this.clusterBkg = "calculated", this.clusterBorder = "calculated", this.defaultLinkColor = "calculated", this.titleColor = "calculated", this.edgeLabelBackground = "calculated", this.actorBorder = "calculated", this.actorBkg = "calculated", this.actorTextColor = "black", this.actorLineColor = "grey", this.signalColor = "calculated", this.signalTextColor = "calculated", this.labelBoxBkgColor = "calculated", this.labelBoxBorderColor = "calculated", this.labelTextColor = "calculated", this.loopTextColor = "calculated", this.noteBorderColor = "calculated", this.noteBkgColor = "#fff5ad", this.noteTextColor = "calculated", this.activationBorderColor = "#666", this.activationBkgColor = "#f4f4f4", this.sequenceNumberColor = "white", this.sectionBkgColor = "calculated", this.altSectionBkgColor = "calculated", this.sectionBkgColor2 = "calculated", this.excludeBkgColor = "#eeeeee", this.taskBorderColor = "calculated", this.taskBkgColor = "calculated", this.taskTextLightColor = "calculated", this.taskTextColor = this.taskTextLightColor, this.taskTextDarkColor = "calculated", this.taskTextOutsideColor = this.taskTextDarkColor, this.taskTextClickableColor = "calculated", this.activeTaskBorderColor = "calculated", this.activeTaskBkgColor = "calculated", this.gridColor = "calculated", this.doneTaskBkgColor = "calculated", this.doneTaskBorderColor = "calculated", this.critBorderColor = "calculated", this.critBkgColor = "calculated", this.todayLineColor = "calculated", this.sectionBkgColor = ue(102, 102, 255, 0.49), this.altSectionBkgColor = "white", this.sectionBkgColor2 = "#fff400", this.taskBorderColor = "#534fbc", this.taskBkgColor = "#8a90dd", this.taskTextLightColor = "white", this.taskTextColor = "calculated", this.taskTextDarkColor = "black", this.taskTextOutsideColor = "calculated", this.taskTextClickableColor = "#003163", this.activeTaskBorderColor = "#534fbc", this.activeTaskBkgColor = "#bfc7ff", this.gridColor = "lightgrey", this.doneTaskBkgColor = "lightgrey", this.doneTaskBorderColor = "grey", this.critBorderColor = "#ff8888", this.critBkgColor = "red", this.todayLineColor = "red", this.personBorder = "calculated", this.personBkg = "calculated", this.labelColor = "black", this.errorBkgColor = "#552222", this.errorTextColor = "#552222", this.updateColors();
+ }
+ updateColors() {
+ this.cScale0 = this.cScale0 || this.primaryColor, this.cScale1 = this.cScale1 || this.secondaryColor, this.cScale2 = this.cScale2 || this.tertiaryColor, this.cScale3 = this.cScale3 || c(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || c(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || c(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || c(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || c(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || c(this.primaryColor, { h: 210 }), this.cScale9 = this.cScale9 || c(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || c(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || c(this.primaryColor, { h: 330 }), this["cScalePeer" + 1] = this["cScalePeer" + 1] || v(this.secondaryColor, 45), this["cScalePeer" + 2] = this["cScalePeer" + 2] || v(this.tertiaryColor, 40);
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["cScale" + e] = v(this["cScale" + e], 10), this["cScalePeer" + e] = this["cScalePeer" + e] || v(this["cScale" + e], 25);
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["cScaleInv" + e] = this["cScaleInv" + e] || c(this["cScale" + e], { h: 180 });
+ for (let e = 0; e < 5; e++)
+ this["surface" + e] = this["surface" + e] || c(this.mainBkg, { h: 30, l: -(5 + e * 5) }), this["surfacePeer" + e] = this["surfacePeer" + e] || c(this.mainBkg, { h: 30, l: -(7 + e * 5) });
+ if (this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor, this.labelTextColor !== "calculated") {
+ this.cScaleLabel0 = this.cScaleLabel0 || m(this.labelTextColor), this.cScaleLabel3 = this.cScaleLabel3 || m(this.labelTextColor);
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["cScaleLabel" + e] = this["cScaleLabel" + e] || this.labelTextColor;
+ }
+ this.nodeBkg = this.mainBkg, this.nodeBorder = this.border1, this.clusterBkg = this.secondBkg, this.clusterBorder = this.border2, this.defaultLinkColor = this.lineColor, this.titleColor = this.textColor, this.edgeLabelBackground = this.labelBackground, this.actorBorder = S(this.border1, 23), this.actorBkg = this.mainBkg, this.labelBoxBkgColor = this.actorBkg, this.signalColor = this.textColor, this.signalTextColor = this.textColor, this.labelBoxBorderColor = this.actorBorder, this.labelTextColor = this.actorTextColor, this.loopTextColor = this.actorTextColor, this.noteBorderColor = this.border2, this.noteTextColor = this.actorTextColor, this.taskTextColor = this.taskTextLightColor, this.taskTextOutsideColor = this.taskTextDarkColor, this.transitionColor = this.transitionColor || this.lineColor, this.transitionLabelColor = this.transitionLabelColor || this.textColor, this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor, this.stateBkg = this.stateBkg || this.mainBkg, this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg, this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor, this.altBackground = this.altBackground || "#f0f0f0", this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg, this.compositeBorder = this.compositeBorder || this.nodeBorder, this.innerEndBackground = this.nodeBorder, this.specialStateColor = this.lineColor, this.errorBkgColor = this.errorBkgColor || this.tertiaryColor, this.errorTextColor = this.errorTextColor || this.tertiaryTextColor, this.transitionColor = this.transitionColor || this.lineColor, this.classText = this.primaryTextColor, this.fillType0 = this.primaryColor, this.fillType1 = this.secondaryColor, this.fillType2 = c(this.primaryColor, { h: 64 }), this.fillType3 = c(this.secondaryColor, { h: 64 }), this.fillType4 = c(this.primaryColor, { h: -64 }), this.fillType5 = c(this.secondaryColor, { h: -64 }), this.fillType6 = c(this.primaryColor, { h: 128 }), this.fillType7 = c(this.secondaryColor, { h: 128 }), this.pie1 = this.pie1 || this.primaryColor, this.pie2 = this.pie2 || this.secondaryColor, this.pie3 = this.pie3 || c(this.tertiaryColor, { l: -40 }), this.pie4 = this.pie4 || c(this.primaryColor, { l: -10 }), this.pie5 = this.pie5 || c(this.secondaryColor, { l: -30 }), this.pie6 = this.pie6 || c(this.tertiaryColor, { l: -20 }), this.pie7 = this.pie7 || c(this.primaryColor, { h: 60, l: -20 }), this.pie8 = this.pie8 || c(this.primaryColor, { h: -60, l: -40 }), this.pie9 = this.pie9 || c(this.primaryColor, { h: 120, l: -40 }), this.pie10 = this.pie10 || c(this.primaryColor, { h: 60, l: -40 }), this.pie11 = this.pie11 || c(this.primaryColor, { h: -90, l: -40 }), this.pie12 = this.pie12 || c(this.primaryColor, { h: 120, l: -30 }), this.pieTitleTextSize = this.pieTitleTextSize || "25px", this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor, this.pieSectionTextSize = this.pieSectionTextSize || "17px", this.pieSectionTextColor = this.pieSectionTextColor || this.textColor, this.pieLegendTextSize = this.pieLegendTextSize || "17px", this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor, this.pieStrokeColor = this.pieStrokeColor || "black", this.pieStrokeWidth = this.pieStrokeWidth || "2px", this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px", this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black", this.pieOpacity = this.pieOpacity || "0.7", this.requirementBackground = this.requirementBackground || this.primaryColor, this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor, this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor, this.requirementTextColor = this.requirementTextColor || this.primaryTextColor, this.relationColor = this.relationColor || this.lineColor, this.relationLabelBackground = this.relationLabelBackground || this.labelBackground, this.relationLabelColor = this.relationLabelColor || this.actorTextColor, this.git0 = this.git0 || this.primaryColor, this.git1 = this.git1 || this.secondaryColor, this.git2 = this.git2 || this.tertiaryColor, this.git3 = this.git3 || c(this.primaryColor, { h: -30 }), this.git4 = this.git4 || c(this.primaryColor, { h: -60 }), this.git5 = this.git5 || c(this.primaryColor, { h: -90 }), this.git6 = this.git6 || c(this.primaryColor, { h: 60 }), this.git7 = this.git7 || c(this.primaryColor, { h: 120 }), this.darkMode ? (this.git0 = S(this.git0, 25), this.git1 = S(this.git1, 25), this.git2 = S(this.git2, 25), this.git3 = S(this.git3, 25), this.git4 = S(this.git4, 25), this.git5 = S(this.git5, 25), this.git6 = S(this.git6, 25), this.git7 = S(this.git7, 25)) : (this.git0 = v(this.git0, 25), this.git1 = v(this.git1, 25), this.git2 = v(this.git2, 25), this.git3 = v(this.git3, 25), this.git4 = v(this.git4, 25), this.git5 = v(this.git5, 25), this.git6 = v(this.git6, 25), this.git7 = v(this.git7, 25)), this.gitInv0 = this.gitInv0 || v(m(this.git0), 25), this.gitInv1 = this.gitInv1 || m(this.git1), this.gitInv2 = this.gitInv2 || m(this.git2), this.gitInv3 = this.gitInv3 || m(this.git3), this.gitInv4 = this.gitInv4 || m(this.git4), this.gitInv5 = this.gitInv5 || m(this.git5), this.gitInv6 = this.gitInv6 || m(this.git6), this.gitInv7 = this.gitInv7 || m(this.git7), this.gitBranchLabel0 = this.gitBranchLabel0 || m(this.labelTextColor), this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor, this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor, this.gitBranchLabel3 = this.gitBranchLabel3 || m(this.labelTextColor), this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor, this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor, this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor, this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor, this.tagLabelColor = this.tagLabelColor || this.primaryTextColor, this.tagLabelBackground = this.tagLabelBackground || this.primaryColor, this.tagLabelBorder = this.tagBorder || this.primaryBorderColor, this.tagLabelFontSize = this.tagLabelFontSize || "10px", this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor, this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor, this.commitLabelFontSize = this.commitLabelFontSize || "10px", this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || Qe, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || ti;
+ }
+ calculate(e) {
+ if (typeof e != "object") {
+ this.updateColors();
+ return;
+ }
+ const i = Object.keys(e);
+ i.forEach((r) => {
+ this[r] = e[r];
+ }), this.updateColors(), i.forEach((r) => {
+ this[r] = e[r];
+ });
+ }
+};
+const ah = (t) => {
+ const e = new sh();
+ return e.calculate(t), e;
+};
+let lh = class {
+ constructor() {
+ this.background = "#f4f4f4", this.primaryColor = "#cde498", this.secondaryColor = "#cdffb2", this.background = "white", this.mainBkg = "#cde498", this.secondBkg = "#cdffb2", this.lineColor = "green", this.border1 = "#13540c", this.border2 = "#6eaa49", this.arrowheadColor = "green", this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif', this.fontSize = "16px", this.tertiaryColor = S("#cde498", 10), this.primaryBorderColor = Z(this.primaryColor, this.darkMode), this.secondaryBorderColor = Z(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = Z(this.tertiaryColor, this.darkMode), this.primaryTextColor = m(this.primaryColor), this.secondaryTextColor = m(this.secondaryColor), this.tertiaryTextColor = m(this.primaryColor), this.lineColor = m(this.background), this.textColor = m(this.background), this.THEME_COLOR_LIMIT = 12, this.nodeBkg = "calculated", this.nodeBorder = "calculated", this.clusterBkg = "calculated", this.clusterBorder = "calculated", this.defaultLinkColor = "calculated", this.titleColor = "#333", this.edgeLabelBackground = "#e8e8e8", this.actorBorder = "calculated", this.actorBkg = "calculated", this.actorTextColor = "black", this.actorLineColor = "grey", this.signalColor = "#333", this.signalTextColor = "#333", this.labelBoxBkgColor = "calculated", this.labelBoxBorderColor = "#326932", this.labelTextColor = "calculated", this.loopTextColor = "calculated", this.noteBorderColor = "calculated", this.noteBkgColor = "#fff5ad", this.noteTextColor = "calculated", this.activationBorderColor = "#666", this.activationBkgColor = "#f4f4f4", this.sequenceNumberColor = "white", this.sectionBkgColor = "#6eaa49", this.altSectionBkgColor = "white", this.sectionBkgColor2 = "#6eaa49", this.excludeBkgColor = "#eeeeee", this.taskBorderColor = "calculated", this.taskBkgColor = "#487e3a", this.taskTextLightColor = "white", this.taskTextColor = "calculated", this.taskTextDarkColor = "black", this.taskTextOutsideColor = "calculated", this.taskTextClickableColor = "#003163", this.activeTaskBorderColor = "calculated", this.activeTaskBkgColor = "calculated", this.gridColor = "lightgrey", this.doneTaskBkgColor = "lightgrey", this.doneTaskBorderColor = "grey", this.critBorderColor = "#ff8888", this.critBkgColor = "red", this.todayLineColor = "red", this.personBorder = "calculated", this.personBkg = "calculated", this.labelColor = "black", this.errorBkgColor = "#552222", this.errorTextColor = "#552222";
+ }
+ updateColors() {
+ this.cScale0 = this.cScale0 || this.primaryColor, this.cScale1 = this.cScale1 || this.secondaryColor, this.cScale2 = this.cScale2 || this.tertiaryColor, this.cScale3 = this.cScale3 || c(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || c(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || c(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || c(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || c(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || c(this.primaryColor, { h: 210 }), this.cScale9 = this.cScale9 || c(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || c(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || c(this.primaryColor, { h: 330 }), this["cScalePeer" + 1] = this["cScalePeer" + 1] || v(this.secondaryColor, 45), this["cScalePeer" + 2] = this["cScalePeer" + 2] || v(this.tertiaryColor, 40);
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["cScale" + e] = v(this["cScale" + e], 10), this["cScalePeer" + e] = this["cScalePeer" + e] || v(this["cScale" + e], 25);
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["cScaleInv" + e] = this["cScaleInv" + e] || c(this["cScale" + e], { h: 180 });
+ this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["cScaleLabel" + e] = this["cScaleLabel" + e] || this.scaleLabelColor;
+ for (let e = 0; e < 5; e++)
+ this["surface" + e] = this["surface" + e] || c(this.mainBkg, { h: 30, s: -30, l: -(5 + e * 5) }), this["surfacePeer" + e] = this["surfacePeer" + e] || c(this.mainBkg, { h: 30, s: -30, l: -(8 + e * 5) });
+ this.nodeBkg = this.mainBkg, this.nodeBorder = this.border1, this.clusterBkg = this.secondBkg, this.clusterBorder = this.border2, this.defaultLinkColor = this.lineColor, this.actorBorder = v(this.mainBkg, 20), this.actorBkg = this.mainBkg, this.labelBoxBkgColor = this.actorBkg, this.labelTextColor = this.actorTextColor, this.loopTextColor = this.actorTextColor, this.noteBorderColor = this.border2, this.noteTextColor = this.actorTextColor, this.taskBorderColor = this.border1, this.taskTextColor = this.taskTextLightColor, this.taskTextOutsideColor = this.taskTextDarkColor, this.activeTaskBorderColor = this.taskBorderColor, this.activeTaskBkgColor = this.mainBkg, this.transitionColor = this.transitionColor || this.lineColor, this.transitionLabelColor = this.transitionLabelColor || this.textColor, this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor, this.stateBkg = this.stateBkg || this.mainBkg, this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg, this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor, this.altBackground = this.altBackground || "#f0f0f0", this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg, this.compositeBorder = this.compositeBorder || this.nodeBorder, this.innerEndBackground = this.primaryBorderColor, this.specialStateColor = this.lineColor, this.errorBkgColor = this.errorBkgColor || this.tertiaryColor, this.errorTextColor = this.errorTextColor || this.tertiaryTextColor, this.transitionColor = this.transitionColor || this.lineColor, this.classText = this.primaryTextColor, this.fillType0 = this.primaryColor, this.fillType1 = this.secondaryColor, this.fillType2 = c(this.primaryColor, { h: 64 }), this.fillType3 = c(this.secondaryColor, { h: 64 }), this.fillType4 = c(this.primaryColor, { h: -64 }), this.fillType5 = c(this.secondaryColor, { h: -64 }), this.fillType6 = c(this.primaryColor, { h: 128 }), this.fillType7 = c(this.secondaryColor, { h: 128 }), this.pie1 = this.pie1 || this.primaryColor, this.pie2 = this.pie2 || this.secondaryColor, this.pie3 = this.pie3 || this.tertiaryColor, this.pie4 = this.pie4 || c(this.primaryColor, { l: -30 }), this.pie5 = this.pie5 || c(this.secondaryColor, { l: -30 }), this.pie6 = this.pie6 || c(this.tertiaryColor, { h: 40, l: -40 }), this.pie7 = this.pie7 || c(this.primaryColor, { h: 60, l: -10 }), this.pie8 = this.pie8 || c(this.primaryColor, { h: -60, l: -10 }), this.pie9 = this.pie9 || c(this.primaryColor, { h: 120, l: 0 }), this.pie10 = this.pie10 || c(this.primaryColor, { h: 60, l: -50 }), this.pie11 = this.pie11 || c(this.primaryColor, { h: -60, l: -50 }), this.pie12 = this.pie12 || c(this.primaryColor, { h: 120, l: -50 }), this.pieTitleTextSize = this.pieTitleTextSize || "25px", this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor, this.pieSectionTextSize = this.pieSectionTextSize || "17px", this.pieSectionTextColor = this.pieSectionTextColor || this.textColor, this.pieLegendTextSize = this.pieLegendTextSize || "17px", this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor, this.pieStrokeColor = this.pieStrokeColor || "black", this.pieStrokeWidth = this.pieStrokeWidth || "2px", this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px", this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black", this.pieOpacity = this.pieOpacity || "0.7", this.requirementBackground = this.requirementBackground || this.primaryColor, this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor, this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor, this.requirementTextColor = this.requirementTextColor || this.primaryTextColor, this.relationColor = this.relationColor || this.lineColor, this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground, this.relationLabelColor = this.relationLabelColor || this.actorTextColor, this.git0 = this.git0 || this.primaryColor, this.git1 = this.git1 || this.secondaryColor, this.git2 = this.git2 || this.tertiaryColor, this.git3 = this.git3 || c(this.primaryColor, { h: -30 }), this.git4 = this.git4 || c(this.primaryColor, { h: -60 }), this.git5 = this.git5 || c(this.primaryColor, { h: -90 }), this.git6 = this.git6 || c(this.primaryColor, { h: 60 }), this.git7 = this.git7 || c(this.primaryColor, { h: 120 }), this.darkMode ? (this.git0 = S(this.git0, 25), this.git1 = S(this.git1, 25), this.git2 = S(this.git2, 25), this.git3 = S(this.git3, 25), this.git4 = S(this.git4, 25), this.git5 = S(this.git5, 25), this.git6 = S(this.git6, 25), this.git7 = S(this.git7, 25)) : (this.git0 = v(this.git0, 25), this.git1 = v(this.git1, 25), this.git2 = v(this.git2, 25), this.git3 = v(this.git3, 25), this.git4 = v(this.git4, 25), this.git5 = v(this.git5, 25), this.git6 = v(this.git6, 25), this.git7 = v(this.git7, 25)), this.gitInv0 = this.gitInv0 || m(this.git0), this.gitInv1 = this.gitInv1 || m(this.git1), this.gitInv2 = this.gitInv2 || m(this.git2), this.gitInv3 = this.gitInv3 || m(this.git3), this.gitInv4 = this.gitInv4 || m(this.git4), this.gitInv5 = this.gitInv5 || m(this.git5), this.gitInv6 = this.gitInv6 || m(this.git6), this.gitInv7 = this.gitInv7 || m(this.git7), this.tagLabelColor = this.tagLabelColor || this.primaryTextColor, this.tagLabelBackground = this.tagLabelBackground || this.primaryColor, this.tagLabelBorder = this.tagBorder || this.primaryBorderColor, this.tagLabelFontSize = this.tagLabelFontSize || "10px", this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor, this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor, this.commitLabelFontSize = this.commitLabelFontSize || "10px", this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || Qe, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || ti;
+ }
+ calculate(e) {
+ if (typeof e != "object") {
+ this.updateColors();
+ return;
+ }
+ const i = Object.keys(e);
+ i.forEach((r) => {
+ this[r] = e[r];
+ }), this.updateColors(), i.forEach((r) => {
+ this[r] = e[r];
+ });
+ }
+};
+const hh = (t) => {
+ const e = new lh();
+ return e.calculate(t), e;
+};
+class ch {
+ constructor() {
+ this.primaryColor = "#eee", this.contrast = "#707070", this.secondaryColor = S(this.contrast, 55), this.background = "#ffffff", this.tertiaryColor = c(this.primaryColor, { h: -160 }), this.primaryBorderColor = Z(this.primaryColor, this.darkMode), this.secondaryBorderColor = Z(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = Z(this.tertiaryColor, this.darkMode), this.primaryTextColor = m(this.primaryColor), this.secondaryTextColor = m(this.secondaryColor), this.tertiaryTextColor = m(this.tertiaryColor), this.lineColor = m(this.background), this.textColor = m(this.background), this.mainBkg = "#eee", this.secondBkg = "calculated", this.lineColor = "#666", this.border1 = "#999", this.border2 = "calculated", this.note = "#ffa", this.text = "#333", this.critical = "#d42", this.done = "#bbb", this.arrowheadColor = "#333333", this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif', this.fontSize = "16px", this.THEME_COLOR_LIMIT = 12, this.nodeBkg = "calculated", this.nodeBorder = "calculated", this.clusterBkg = "calculated", this.clusterBorder = "calculated", this.defaultLinkColor = "calculated", this.titleColor = "calculated", this.edgeLabelBackground = "white", this.actorBorder = "calculated", this.actorBkg = "calculated", this.actorTextColor = "calculated", this.actorLineColor = "calculated", this.signalColor = "calculated", this.signalTextColor = "calculated", this.labelBoxBkgColor = "calculated", this.labelBoxBorderColor = "calculated", this.labelTextColor = "calculated", this.loopTextColor = "calculated", this.noteBorderColor = "calculated", this.noteBkgColor = "calculated", this.noteTextColor = "calculated", this.activationBorderColor = "#666", this.activationBkgColor = "#f4f4f4", this.sequenceNumberColor = "white", this.sectionBkgColor = "calculated", this.altSectionBkgColor = "white", this.sectionBkgColor2 = "calculated", this.excludeBkgColor = "#eeeeee", this.taskBorderColor = "calculated", this.taskBkgColor = "calculated", this.taskTextLightColor = "white", this.taskTextColor = "calculated", this.taskTextDarkColor = "calculated", this.taskTextOutsideColor = "calculated", this.taskTextClickableColor = "#003163", this.activeTaskBorderColor = "calculated", this.activeTaskBkgColor = "calculated", this.gridColor = "calculated", this.doneTaskBkgColor = "calculated", this.doneTaskBorderColor = "calculated", this.critBkgColor = "calculated", this.critBorderColor = "calculated", this.todayLineColor = "calculated", this.personBorder = "calculated", this.personBkg = "calculated", this.labelColor = "black", this.errorBkgColor = "#552222", this.errorTextColor = "#552222";
+ }
+ updateColors() {
+ this.secondBkg = S(this.contrast, 55), this.border2 = this.contrast, this.cScale0 = this.cScale0 || "#555", this.cScale1 = this.cScale1 || "#F4F4F4", this.cScale2 = this.cScale2 || "#555", this.cScale3 = this.cScale3 || "#BBB", this.cScale4 = this.cScale4 || "#777", this.cScale5 = this.cScale5 || "#999", this.cScale6 = this.cScale6 || "#DDD", this.cScale7 = this.cScale7 || "#FFF", this.cScale8 = this.cScale8 || "#DDD", this.cScale9 = this.cScale9 || "#BBB", this.cScale10 = this.cScale10 || "#999", this.cScale11 = this.cScale11 || "#777";
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["cScaleInv" + e] = this["cScaleInv" + e] || m(this["cScale" + e]);
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this.darkMode ? this["cScalePeer" + e] = this["cScalePeer" + e] || S(this["cScale" + e], 10) : this["cScalePeer" + e] = this["cScalePeer" + e] || v(this["cScale" + e], 10);
+ this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor), this.cScaleLabel0 = this.cScaleLabel0 || this.cScale1, this.cScaleLabel2 = this.cScaleLabel2 || this.cScale1;
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["cScaleLabel" + e] = this["cScaleLabel" + e] || this.scaleLabelColor;
+ for (let e = 0; e < 5; e++)
+ this["surface" + e] = this["surface" + e] || c(this.mainBkg, { l: -(5 + e * 5) }), this["surfacePeer" + e] = this["surfacePeer" + e] || c(this.mainBkg, { l: -(8 + e * 5) });
+ this.nodeBkg = this.mainBkg, this.nodeBorder = this.border1, this.clusterBkg = this.secondBkg, this.clusterBorder = this.border2, this.defaultLinkColor = this.lineColor, this.titleColor = this.text, this.actorBorder = S(this.border1, 23), this.actorBkg = this.mainBkg, this.actorTextColor = this.text, this.actorLineColor = this.lineColor, this.signalColor = this.text, this.signalTextColor = this.text, this.labelBoxBkgColor = this.actorBkg, this.labelBoxBorderColor = this.actorBorder, this.labelTextColor = this.text, this.loopTextColor = this.text, this.noteBorderColor = "#999", this.noteBkgColor = "#666", this.noteTextColor = "#fff", this.sectionBkgColor = S(this.contrast, 30), this.sectionBkgColor2 = S(this.contrast, 30), this.taskBorderColor = v(this.contrast, 10), this.taskBkgColor = this.contrast, this.taskTextColor = this.taskTextLightColor, this.taskTextDarkColor = this.text, this.taskTextOutsideColor = this.taskTextDarkColor, this.activeTaskBorderColor = this.taskBorderColor, this.activeTaskBkgColor = this.mainBkg, this.gridColor = S(this.border1, 30), this.doneTaskBkgColor = this.done, this.doneTaskBorderColor = this.lineColor, this.critBkgColor = this.critical, this.critBorderColor = v(this.critBkgColor, 10), this.todayLineColor = this.critBkgColor, this.transitionColor = this.transitionColor || "#000", this.transitionLabelColor = this.transitionLabelColor || this.textColor, this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor, this.stateBkg = this.stateBkg || this.mainBkg, this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg, this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor, this.altBackground = this.altBackground || "#f4f4f4", this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg, this.stateBorder = this.stateBorder || "#000", this.innerEndBackground = this.primaryBorderColor, this.specialStateColor = "#222", this.errorBkgColor = this.errorBkgColor || this.tertiaryColor, this.errorTextColor = this.errorTextColor || this.tertiaryTextColor, this.classText = this.primaryTextColor, this.fillType0 = this.primaryColor, this.fillType1 = this.secondaryColor, this.fillType2 = c(this.primaryColor, { h: 64 }), this.fillType3 = c(this.secondaryColor, { h: 64 }), this.fillType4 = c(this.primaryColor, { h: -64 }), this.fillType5 = c(this.secondaryColor, { h: -64 }), this.fillType6 = c(this.primaryColor, { h: 128 }), this.fillType7 = c(this.secondaryColor, { h: 128 });
+ for (let e = 0; e < this.THEME_COLOR_LIMIT; e++)
+ this["pie" + e] = this["cScale" + e];
+ this.pie12 = this.pie0, this.pieTitleTextSize = this.pieTitleTextSize || "25px", this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor, this.pieSectionTextSize = this.pieSectionTextSize || "17px", this.pieSectionTextColor = this.pieSectionTextColor || this.textColor, this.pieLegendTextSize = this.pieLegendTextSize || "17px", this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor, this.pieStrokeColor = this.pieStrokeColor || "black", this.pieStrokeWidth = this.pieStrokeWidth || "2px", this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px", this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black", this.pieOpacity = this.pieOpacity || "0.7", this.requirementBackground = this.requirementBackground || this.primaryColor, this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor, this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor, this.requirementTextColor = this.requirementTextColor || this.primaryTextColor, this.relationColor = this.relationColor || this.lineColor, this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground, this.relationLabelColor = this.relationLabelColor || this.actorTextColor, this.git0 = v(this.pie1, 25) || this.primaryColor, this.git1 = this.pie2 || this.secondaryColor, this.git2 = this.pie3 || this.tertiaryColor, this.git3 = this.pie4 || c(this.primaryColor, { h: -30 }), this.git4 = this.pie5 || c(this.primaryColor, { h: -60 }), this.git5 = this.pie6 || c(this.primaryColor, { h: -90 }), this.git6 = this.pie7 || c(this.primaryColor, { h: 60 }), this.git7 = this.pie8 || c(this.primaryColor, { h: 120 }), this.gitInv0 = this.gitInv0 || m(this.git0), this.gitInv1 = this.gitInv1 || m(this.git1), this.gitInv2 = this.gitInv2 || m(this.git2), this.gitInv3 = this.gitInv3 || m(this.git3), this.gitInv4 = this.gitInv4 || m(this.git4), this.gitInv5 = this.gitInv5 || m(this.git5), this.gitInv6 = this.gitInv6 || m(this.git6), this.gitInv7 = this.gitInv7 || m(this.git7), this.branchLabelColor = this.branchLabelColor || this.labelTextColor, this.gitBranchLabel0 = this.branchLabelColor, this.gitBranchLabel1 = "white", this.gitBranchLabel2 = this.branchLabelColor, this.gitBranchLabel3 = "white", this.gitBranchLabel4 = this.branchLabelColor, this.gitBranchLabel5 = this.branchLabelColor, this.gitBranchLabel6 = this.branchLabelColor, this.gitBranchLabel7 = this.branchLabelColor, this.tagLabelColor = this.tagLabelColor || this.primaryTextColor, this.tagLabelBackground = this.tagLabelBackground || this.primaryColor, this.tagLabelBorder = this.tagBorder || this.primaryBorderColor, this.tagLabelFontSize = this.tagLabelFontSize || "10px", this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor, this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor, this.commitLabelFontSize = this.commitLabelFontSize || "10px", this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || Qe, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || ti;
+ }
+ calculate(e) {
+ if (typeof e != "object") {
+ this.updateColors();
+ return;
+ }
+ const i = Object.keys(e);
+ i.forEach((r) => {
+ this[r] = e[r];
+ }), this.updateColors(), i.forEach((r) => {
+ this[r] = e[r];
+ });
+ }
+}
+const uh = (t) => {
+ const e = new ch();
+ return e.calculate(t), e;
+}, Jt = {
+ base: {
+ getThemeVariables: rh
+ },
+ dark: {
+ getThemeVariables: nh
+ },
+ default: {
+ getThemeVariables: ah
+ },
+ forest: {
+ getThemeVariables: hh
+ },
+ neutral: {
+ getThemeVariables: uh
+ }
+}, Mt = {
+ /**
+ * Theme , the CSS style sheet
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |
+ * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |
+ *
+ * **Notes:** To disable any pre-defined mermaid theme, use "null".
+ *
+ * @example
+ *
+ * ```js
+ * {
+ * "theme": "forest",
+ * "themeCSS": ".node rect { fill: red; }"
+ * }
+ * ```
+ */
+ theme: "default",
+ themeVariables: Jt.default.getThemeVariables(),
+ themeCSS: void 0,
+ /* **maxTextSize** - The maximum allowed size of the users text diagram */
+ maxTextSize: 5e4,
+ darkMode: !1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |
+ * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'.
+ */
+ fontFamily: '"trebuchet ms", verdana, arial, sans-serif;',
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------------------------------------------------- | ---------------- | -------- | --------------------------------------------- |
+ * | logLevel | This option decides the amount of logging to be used. | string \| number | Required | 'trace','debug','info','warn','error','fatal' |
+ *
+ * **Notes:**
+ *
+ * - Trace: 0
+ * - Debug: 1
+ * - Info: 2
+ * - Warn: 3
+ * - Error: 4
+ * - Fatal: 5 (default)
+ */
+ logLevel: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ |
+ * | securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' |
+ *
+ * **Notes**:
+ *
+ * - **strict**: (**default**) tags in text are encoded, click functionality is disabled
+ * - **loose**: tags in text are allowed, click functionality is enabled
+ * - **antiscript**: html tags in text are allowed, (only script element is removed), click
+ * functionality is enabled
+ * - **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This
+ * prevent any JavaScript from running in the context. This may hinder interactive functionality
+ * of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc.
+ */
+ securityLevel: "strict",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |
+ * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: true
+ */
+ startOnLoad: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |
+ * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |
+ *
+ * **Notes**:
+ *
+ * This matters if you are using base tag settings.
+ *
+ * Default value: false
+ */
+ arrowMarkerAbsolute: !1,
+ /**
+ * This option controls which currentConfig keys are considered _secure_ and can only be changed
+ * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the
+ * `secure` keys in the current currentConfig. This prevents malicious graph directives from
+ * overriding a site's default security.
+ *
+ * **Notes**:
+ *
+ * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
+ */
+ secure: ["secure", "securityLevel", "startOnLoad", "maxTextSize"],
+ /**
+ * This option controls if the generated ids of nodes in the SVG are generated randomly or based
+ * on a seed. If set to false, the IDs are generated based on the current date and thus are not
+ * deterministic. This is the default behavior.
+ *
+ * **Notes**:
+ *
+ * This matters if your files are checked into source control e.g. git and should not change unless
+ * content is changed.
+ *
+ * Default value: false
+ */
+ deterministicIds: !1,
+ /**
+ * This option is the optional seed for deterministic ids. if set to undefined but
+ * deterministicIds is true, a simple number iterator is used. You can set this attribute to base
+ * the seed on a static string.
+ */
+ deterministicIDSeed: void 0,
+ /** The object containing configurations specific for flowcharts */
+ flowchart: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the flowchart | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
+ * expressed in pixels
+ *
+ * Default value: 8
+ */
+ diagramPadding: 8,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |
+ * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: true.
+ */
+ htmlLabels: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |
+ * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |
+ *
+ * **Notes:**
+ *
+ * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the
+ * vertical spacing for LR as well as RL graphs.**
+ *
+ * Default value: 50
+ */
+ nodeSpacing: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |
+ * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |
+ *
+ * **Notes**:
+ *
+ * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal
+ * spacing for LR as well as RL graphs.
+ *
+ * Default value 50
+ */
+ rankSpacing: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |
+ * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |
+ *
+ * **Notes:**
+ *
+ * Default Value: 'basis'
+ */
+ curve: "basis",
+ // Only used in new experimental rendering
+ // represents the padding between the labels and the shape
+ padding: 15,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper, elk |
+ *
+ * **Notes:**
+ *
+ * Decides which rendering engine that is to be used for the rendering. Legal values are:
+ * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid, elk for layout using
+ * elkjs
+ *
+ * Default value: 'dagre-wrapper'
+ */
+ defaultRenderer: "dagre-wrapper",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | wrappingWidth | See notes | number | 4 | width of nodes where text is wrapped |
+ *
+ * **Notes:**
+ *
+ * When using markdown strings the text ius wrapped automatically, this
+ * value sets the max width of a text before it continues on a new line.
+ * Default value: 'dagre-wrapper'
+ */
+ wrappingWidth: 200
+ },
+ /** The object containing configurations specific for sequence diagrams */
+ sequence: {
+ hideUnusedParticipants: !1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------------- | ------- | -------- | ------------------ |
+ * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value :10
+ */
+ activationWidth: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------- | ------- | -------- | ------------------ |
+ * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ actorMargin: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------- | ------- | -------- | ------------------ |
+ * | width | Width of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 150
+ */
+ width: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | height | Height of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 65
+ */
+ height: 65,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------------ | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 5
+ */
+ boxTextMargin: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------- | ------- | -------- | ------------------ |
+ * | noteMargin | margin around notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ noteMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ---------------------- | ------- | -------- | ------------------ |
+ * | messageMargin | Space between messages | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 35
+ */
+ messageMargin: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ------ | -------- | ------------------------- |
+ * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ messageAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ------- | -------- | ----------- |
+ * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: true
+ */
+ mirrorActors: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |
+ * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |
+ *
+ * **Notes:**
+ *
+ * Default value: false.
+ */
+ forceMenus: !1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
+ * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Depending on css styling this might need adjustment.
+ *
+ * Default value: 1
+ */
+ bottomMarginAdj: 1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
+ * scaling with the available space. If set to false, the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ------------------------------------ | ------- | -------- | ----------- |
+ * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * This will display arrows that start and begin at the same node as right angles, rather than a
+ * curve
+ *
+ * Default value: false
+ */
+ rightAngles: !1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------------- | ------------------------------- | ------- | -------- | ----------- |
+ * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: false
+ */
+ showSequenceNumbers: !1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
+ * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |
+ *
+ * **Notes:** **Default value 14**..
+ */
+ actorFontSize: 14,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |
+ * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: "'Open Sans", sans-serif'
+ */
+ actorFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of the actor's description
+ *
+ * **Notes:** Default value: 400.
+ */
+ actorFontWeight: 400,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |
+ * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 14
+ */
+ noteFontSize: 14,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |
+ * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif'
+ */
+ noteFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
+ /**
+ * This sets the font weight of the note's description
+ *
+ * **Notes:** Default value: 400
+ */
+ noteFontWeight: 400,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |
+ * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ noteAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |
+ * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |
+ *
+ * **Notes:** Default value: 16
+ */
+ messageFontSize: 16,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |
+ * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif'
+ */
+ messageFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
+ /**
+ * This sets the font weight of the message's description
+ *
+ * **Notes:** Default value: 400.
+ */
+ messageFontWeight: 400,
+ /**
+ * This sets the auto-wrap state for the diagram
+ *
+ * **Notes:** Default value: false.
+ */
+ wrap: !1,
+ /**
+ * This sets the auto-wrap padding for the diagram (sides only)
+ *
+ * **Notes:** Default value: 0.
+ */
+ wrapPadding: 10,
+ /**
+ * This sets the width of the loop-box (loop, alt, opt, par)
+ *
+ * **Notes:** Default value: 50.
+ */
+ labelBoxWidth: 50,
+ /**
+ * This sets the height of the loop-box (loop, alt, opt, par)
+ *
+ * **Notes:** Default value: 20.
+ */
+ labelBoxHeight: 20,
+ messageFont: function() {
+ return {
+ fontFamily: this.messageFontFamily,
+ fontSize: this.messageFontSize,
+ fontWeight: this.messageFontWeight
+ };
+ },
+ noteFont: function() {
+ return {
+ fontFamily: this.noteFontFamily,
+ fontSize: this.noteFontSize,
+ fontWeight: this.noteFontWeight
+ };
+ },
+ actorFont: function() {
+ return {
+ fontFamily: this.actorFontFamily,
+ fontSize: this.actorFontSize,
+ fontWeight: this.actorFontWeight
+ };
+ }
+ },
+ /** The object containing configurations specific for gantt diagrams */
+ gantt: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------------------------------- | ------- | -------- | ------------------ |
+ * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 20
+ */
+ barHeight: 20,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |
+ *
+ * **Notes:** Default value: 4
+ */
+ barGap: 4,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ topPadding: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 75
+ */
+ rightPadding: 75,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 75
+ */
+ leftPadding: 75,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 35
+ */
+ gridLineStartPadding: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------- | ------- | -------- | ------------------ |
+ * | fontSize | Font size | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 11
+ */
+ fontSize: 11,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------- | ------- | -------- | ------------------ |
+ * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 11
+ */
+ sectionFontSize: 11,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |
+ * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:** Default value: 4
+ */
+ numberSectionStyles: 4,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ------------------------- | ------ | -------- | --------- |
+ * | displayMode | Controls the display mode | string | 4 | 'compact' |
+ *
+ * **Notes**:
+ *
+ * - **compact**: Enables displaying multiple tasks on the same row.
+ */
+ displayMode: "",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ---------------------------- | ---- | -------- | ---------------- |
+ * | axisFormat | Date/time format of the axis | 3 | Required | Date in yy-mm-dd |
+ *
+ * **Notes:**
+ *
+ * This might need adjustment to match your locale and preferences
+ *
+ * Default value: '%Y-%m-%d'.
+ */
+ axisFormat: "%Y-%m-%d",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ------------| ------ | -------- | ------- |
+ * | tickInterval | axis ticks | string | Optional | string |
+ *
+ * **Notes:**
+ *
+ * Pattern is /^([1-9][0-9]*)(minute|hour|day|week|month)$/
+ *
+ * Default value: undefined
+ */
+ tickInterval: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------- | ------- | -------- | ----------- |
+ * | topAxis | See notes | Boolean | 4 | True, False |
+ *
+ * **Notes:** when this flag is set date labels will be added to the top of the chart
+ *
+ * **Default value false**.
+ */
+ topAxis: !1,
+ useWidth: void 0
+ },
+ /** The object containing configurations specific for journey diagrams */
+ journey: {
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------- | ------- | -------- | ------------------ |
+ * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ leftMargin: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------- | ------- | -------- | ------------------ |
+ * | width | Width of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 150
+ */
+ width: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | height | Height of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 65
+ */
+ height: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------------ | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 5
+ */
+ boxTextMargin: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------- | ------- | -------- | ------------------ |
+ * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ noteMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ----------------------- | ------- | -------- | ------------------ |
+ * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Space between messages.
+ *
+ * Default value: 35
+ */
+ messageMargin: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
+ * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ messageAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
+ * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Depending on css styling this might need adjustment.
+ *
+ * Default value: 1
+ */
+ bottomMarginAdj: 1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------------------- | ---- | -------- | ----------- |
+ * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * This will display arrows that start and begin at the same node as right angles, rather than a
+ * curves
+ *
+ * Default value: false
+ */
+ rightAngles: !1,
+ taskFontSize: 14,
+ taskFontFamily: '"Open Sans", sans-serif',
+ taskMargin: 50,
+ // width of activation box
+ activationWidth: 10,
+ // text placement as: tspan | fo | old only text as before
+ textPlacement: "fo",
+ actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
+ sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
+ sectionColours: ["#fff"]
+ },
+ /** The object containing configurations specific for timeline diagrams */
+ timeline: {
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------- | ------- | -------- | ------------------ |
+ * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ leftMargin: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------- | ------- | -------- | ------------------ |
+ * | width | Width of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 150
+ */
+ width: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | height | Height of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 65
+ */
+ height: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------------ | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 5
+ */
+ boxTextMargin: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------- | ------- | -------- | ------------------ |
+ * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ noteMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ----------------------- | ------- | -------- | ------------------ |
+ * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Space between messages.
+ *
+ * Default value: 35
+ */
+ messageMargin: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
+ * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ messageAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
+ * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Depending on css styling this might need adjustment.
+ *
+ * Default value: 1
+ */
+ bottomMarginAdj: 1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------------------- | ---- | -------- | ----------- |
+ * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * This will display arrows that start and begin at the same node as right angles, rather than a
+ * curves
+ *
+ * Default value: false
+ */
+ rightAngles: !1,
+ taskFontSize: 14,
+ taskFontFamily: '"Open Sans", sans-serif',
+ taskMargin: 50,
+ // width of activation box
+ activationWidth: 10,
+ // text placement as: tspan | fo | old only text as before
+ textPlacement: "fo",
+ actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
+ sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
+ sectionColours: ["#fff"],
+ disableMulticolor: !1
+ },
+ class: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the class diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ arrowMarkerAbsolute: !1,
+ dividerMargin: 10,
+ padding: 5,
+ textHeight: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
+ *
+ * **Notes**:
+ *
+ * Decides which rendering engine that is to be used for the rendering. Legal values are:
+ * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
+ *
+ * Default value: 'dagre-d3'
+ */
+ defaultRenderer: "dagre-wrapper"
+ },
+ state: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the state diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ dividerMargin: 10,
+ sizeUnit: 5,
+ padding: 8,
+ textHeight: 10,
+ titleShift: -15,
+ noteMargin: 10,
+ forkWidth: 70,
+ forkHeight: 7,
+ // Used
+ miniPadding: 2,
+ // Font size factor, this is used to guess the width of the edges labels before rendering by dagre
+ // layout. This might need updating if/when switching font
+ fontSizeFactor: 5.02,
+ fontSize: 24,
+ labelHeight: 16,
+ edgeLengthFactor: "20",
+ compositTitleSize: 35,
+ radius: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
+ *
+ * **Notes:**
+ *
+ * Decides which rendering engine that is to be used for the rendering. Legal values are:
+ * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
+ *
+ * Default value: 'dagre-d3'
+ */
+ defaultRenderer: "dagre-wrapper"
+ },
+ /** The object containing configurations specific for entity relationship diagrams */
+ er: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
+ * expressed in pixels
+ *
+ * Default value: 20
+ */
+ diagramPadding: 20,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |
+ * | layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" |
+ *
+ * **Notes:**
+ *
+ * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.
+ *
+ * T = top, B = bottom, L = left, and R = right.
+ *
+ * Default value: 'TB'
+ */
+ layoutDirection: "TB",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |
+ * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Expressed in pixels. Default value: 100
+ */
+ minEntityWidth: 100,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |
+ * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:** Expressed in pixels Default value: 75
+ */
+ minEntityHeight: 75,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ |
+ * | entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * The minimum internal padding between text in an entity box and the enclosing box borders,
+ * expressed in pixels.
+ *
+ * Default value: 15
+ */
+ entityPadding: 15,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------------------------------- | ------ | -------- | -------------------- |
+ * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |
+ *
+ * **Notes:** Default value: 'gray'
+ */
+ stroke: "gray",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------------- | ------ | -------- | -------------------- |
+ * | fill | Fill color of entity boxes | string | 4 | Any recognized color |
+ *
+ * **Notes:** Default value: 'honeydew'
+ */
+ fill: "honeydew",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------- | ------- | -------- | ------------------ |
+ * | fontSize | Font Size in pixels | Integer | | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Font size (expressed as an integer representing a number of pixels) Default value: 12
+ */
+ fontSize: 12,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set to true, the diagram width is locked to 100% and scaled based on
+ * available space. If set to false, the diagram reserves its absolute width.
+ *
+ * Default value: true
+ */
+ useMaxWidth: !0
+ },
+ /** The object containing configurations specific for pie diagrams */
+ pie: {
+ useWidth: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set to true, the diagram width is locked to 100% and scaled based on
+ * available space. If set to false, the diagram reserves its absolute width.
+ *
+ * Default value: true
+ */
+ useMaxWidth: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | -------------------------------------------------------------------------------- | ------- | -------- | ------------------- |
+ * | textPosition | Axial position of slice's label from zero at the center to 1 at the outside edge | Number | Optional | Decimal from 0 to 1 |
+ *
+ * **Notes:** Default value: 0.75
+ */
+ textPosition: 0.75
+ },
+ /** The object containing configurations specific for req diagrams */
+ requirement: {
+ useWidth: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set to true, the diagram width is locked to 100% and scaled based on
+ * available space. If set to false, the diagram reserves its absolute width.
+ *
+ * Default value: true
+ */
+ useMaxWidth: !0,
+ rect_fill: "#f9f9f9",
+ text_color: "#333",
+ rect_border_size: "0.5px",
+ rect_border_color: "#bbb",
+ rect_min_width: 200,
+ rect_min_height: 200,
+ fontSize: 14,
+ rect_padding: 10,
+ line_height: 20
+ },
+ gitGraph: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the Git diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ diagramPadding: 8,
+ nodeLabel: {
+ width: 75,
+ height: 100,
+ x: -25,
+ y: 0
+ },
+ mainBranchName: "main",
+ mainBranchOrder: 0,
+ showCommitLabel: !0,
+ showBranches: !0,
+ rotateCommitLabel: !0
+ },
+ /** The object containing configurations specific for c4 diagrams */
+ c4: {
+ useWidth: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | --------------------- | ------- | -------- | ------------------ |
+ * | c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ c4ShapeMargin: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------- | ------- | -------- | ------------------ |
+ * | c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 20
+ */
+ c4ShapePadding: 20,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | width | Width of person boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 216
+ */
+ width: 216,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ---------------------- | ------- | -------- | ------------------ |
+ * | height | Height of person boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 60
+ */
+ height: 60,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------- | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
+ * scaling with the available space. If set to false, the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: !0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ----------- | ------- | -------- | ------------------ |
+ * | c4ShapeInRow | See Notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** How many shapes to place in each row.
+ *
+ * Default value: 4
+ */
+ c4ShapeInRow: 4,
+ nextLinePaddingX: 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ------------------ |
+ * | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** How many boundaries to place in each row.
+ *
+ * Default value: 2
+ */
+ c4BoundaryInRow: 2,
+ /**
+ * This sets the font size of Person shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ personFontSize: 14,
+ /**
+ * This sets the font family of Person shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ personFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Person shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ personFontWeight: "normal",
+ /**
+ * This sets the font size of External Person shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_personFontSize: 14,
+ /**
+ * This sets the font family of External Person shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_personFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Person shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_personFontWeight: "normal",
+ /**
+ * This sets the font size of System shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ systemFontSize: 14,
+ /**
+ * This sets the font family of System shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ systemFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of System shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ systemFontWeight: "normal",
+ /**
+ * This sets the font size of External System shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_systemFontSize: 14,
+ /**
+ * This sets the font family of External System shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_systemFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External System shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_systemFontWeight: "normal",
+ /**
+ * This sets the font size of System DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ system_dbFontSize: 14,
+ /**
+ * This sets the font family of System DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ system_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of System DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ system_dbFontWeight: "normal",
+ /**
+ * This sets the font size of External System DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_system_dbFontSize: 14,
+ /**
+ * This sets the font family of External System DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_system_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External System DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_system_dbFontWeight: "normal",
+ /**
+ * This sets the font size of System Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ system_queueFontSize: 14,
+ /**
+ * This sets the font family of System Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ system_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of System Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ system_queueFontWeight: "normal",
+ /**
+ * This sets the font size of External System Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_system_queueFontSize: 14,
+ /**
+ * This sets the font family of External System Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_system_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External System Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_system_queueFontWeight: "normal",
+ /**
+ * This sets the font size of Boundary shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ boundaryFontSize: 14,
+ /**
+ * This sets the font family of Boundary shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ boundaryFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Boundary shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ boundaryFontWeight: "normal",
+ /**
+ * This sets the font size of Message shape for the diagram
+ *
+ * **Notes:** Default value: 12.
+ */
+ messageFontSize: 12,
+ /**
+ * This sets the font family of Message shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ messageFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Message shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ messageFontWeight: "normal",
+ /**
+ * This sets the font size of Container shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ containerFontSize: 14,
+ /**
+ * This sets the font family of Container shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ containerFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Container shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ containerFontWeight: "normal",
+ /**
+ * This sets the font size of External Container shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_containerFontSize: 14,
+ /**
+ * This sets the font family of External Container shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_containerFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Container shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_containerFontWeight: "normal",
+ /**
+ * This sets the font size of Container DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ container_dbFontSize: 14,
+ /**
+ * This sets the font family of Container DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ container_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Container DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ container_dbFontWeight: "normal",
+ /**
+ * This sets the font size of External Container DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_container_dbFontSize: 14,
+ /**
+ * This sets the font family of External Container DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_container_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Container DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_container_dbFontWeight: "normal",
+ /**
+ * This sets the font size of Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ container_queueFontSize: 14,
+ /**
+ * This sets the font family of Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ container_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ container_queueFontWeight: "normal",
+ /**
+ * This sets the font size of External Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_container_queueFontSize: 14,
+ /**
+ * This sets the font family of External Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_container_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_container_queueFontWeight: "normal",
+ /**
+ * This sets the font size of Component shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ componentFontSize: 14,
+ /**
+ * This sets the font family of Component shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ componentFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Component shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ componentFontWeight: "normal",
+ /**
+ * This sets the font size of External Component shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_componentFontSize: 14,
+ /**
+ * This sets the font family of External Component shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_componentFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Component shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_componentFontWeight: "normal",
+ /**
+ * This sets the font size of Component DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ component_dbFontSize: 14,
+ /**
+ * This sets the font family of Component DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ component_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Component DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ component_dbFontWeight: "normal",
+ /**
+ * This sets the font size of External Component DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_component_dbFontSize: 14,
+ /**
+ * This sets the font family of External Component DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_component_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Component DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_component_dbFontWeight: "normal",
+ /**
+ * This sets the font size of Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ component_queueFontSize: 14,
+ /**
+ * This sets the font family of Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ component_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ component_queueFontWeight: "normal",
+ /**
+ * This sets the font size of External Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_component_queueFontSize: 14,
+ /**
+ * This sets the font family of External Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_component_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_component_queueFontWeight: "normal",
+ /**
+ * This sets the auto-wrap state for the diagram
+ *
+ * **Notes:** Default value: true.
+ */
+ wrap: !0,
+ /**
+ * This sets the auto-wrap padding for the diagram (sides only)
+ *
+ * **Notes:** Default value: 0.
+ */
+ wrapPadding: 10,
+ personFont: function() {
+ return {
+ fontFamily: this.personFontFamily,
+ fontSize: this.personFontSize,
+ fontWeight: this.personFontWeight
+ };
+ },
+ external_personFont: function() {
+ return {
+ fontFamily: this.external_personFontFamily,
+ fontSize: this.external_personFontSize,
+ fontWeight: this.external_personFontWeight
+ };
+ },
+ systemFont: function() {
+ return {
+ fontFamily: this.systemFontFamily,
+ fontSize: this.systemFontSize,
+ fontWeight: this.systemFontWeight
+ };
+ },
+ external_systemFont: function() {
+ return {
+ fontFamily: this.external_systemFontFamily,
+ fontSize: this.external_systemFontSize,
+ fontWeight: this.external_systemFontWeight
+ };
+ },
+ system_dbFont: function() {
+ return {
+ fontFamily: this.system_dbFontFamily,
+ fontSize: this.system_dbFontSize,
+ fontWeight: this.system_dbFontWeight
+ };
+ },
+ external_system_dbFont: function() {
+ return {
+ fontFamily: this.external_system_dbFontFamily,
+ fontSize: this.external_system_dbFontSize,
+ fontWeight: this.external_system_dbFontWeight
+ };
+ },
+ system_queueFont: function() {
+ return {
+ fontFamily: this.system_queueFontFamily,
+ fontSize: this.system_queueFontSize,
+ fontWeight: this.system_queueFontWeight
+ };
+ },
+ external_system_queueFont: function() {
+ return {
+ fontFamily: this.external_system_queueFontFamily,
+ fontSize: this.external_system_queueFontSize,
+ fontWeight: this.external_system_queueFontWeight
+ };
+ },
+ containerFont: function() {
+ return {
+ fontFamily: this.containerFontFamily,
+ fontSize: this.containerFontSize,
+ fontWeight: this.containerFontWeight
+ };
+ },
+ external_containerFont: function() {
+ return {
+ fontFamily: this.external_containerFontFamily,
+ fontSize: this.external_containerFontSize,
+ fontWeight: this.external_containerFontWeight
+ };
+ },
+ container_dbFont: function() {
+ return {
+ fontFamily: this.container_dbFontFamily,
+ fontSize: this.container_dbFontSize,
+ fontWeight: this.container_dbFontWeight
+ };
+ },
+ external_container_dbFont: function() {
+ return {
+ fontFamily: this.external_container_dbFontFamily,
+ fontSize: this.external_container_dbFontSize,
+ fontWeight: this.external_container_dbFontWeight
+ };
+ },
+ container_queueFont: function() {
+ return {
+ fontFamily: this.container_queueFontFamily,
+ fontSize: this.container_queueFontSize,
+ fontWeight: this.container_queueFontWeight
+ };
+ },
+ external_container_queueFont: function() {
+ return {
+ fontFamily: this.external_container_queueFontFamily,
+ fontSize: this.external_container_queueFontSize,
+ fontWeight: this.external_container_queueFontWeight
+ };
+ },
+ componentFont: function() {
+ return {
+ fontFamily: this.componentFontFamily,
+ fontSize: this.componentFontSize,
+ fontWeight: this.componentFontWeight
+ };
+ },
+ external_componentFont: function() {
+ return {
+ fontFamily: this.external_componentFontFamily,
+ fontSize: this.external_componentFontSize,
+ fontWeight: this.external_componentFontWeight
+ };
+ },
+ component_dbFont: function() {
+ return {
+ fontFamily: this.component_dbFontFamily,
+ fontSize: this.component_dbFontSize,
+ fontWeight: this.component_dbFontWeight
+ };
+ },
+ external_component_dbFont: function() {
+ return {
+ fontFamily: this.external_component_dbFontFamily,
+ fontSize: this.external_component_dbFontSize,
+ fontWeight: this.external_component_dbFontWeight
+ };
+ },
+ component_queueFont: function() {
+ return {
+ fontFamily: this.component_queueFontFamily,
+ fontSize: this.component_queueFontSize,
+ fontWeight: this.component_queueFontWeight
+ };
+ },
+ external_component_queueFont: function() {
+ return {
+ fontFamily: this.external_component_queueFontFamily,
+ fontSize: this.external_component_queueFontSize,
+ fontWeight: this.external_component_queueFontWeight
+ };
+ },
+ boundaryFont: function() {
+ return {
+ fontFamily: this.boundaryFontFamily,
+ fontSize: this.boundaryFontSize,
+ fontWeight: this.boundaryFontWeight
+ };
+ },
+ messageFont: function() {
+ return {
+ fontFamily: this.messageFontFamily,
+ fontSize: this.messageFontSize,
+ fontWeight: this.messageFontWeight
+ };
+ },
+ // ' Colors
+ // ' ##################################
+ person_bg_color: "#08427B",
+ person_border_color: "#073B6F",
+ external_person_bg_color: "#686868",
+ external_person_border_color: "#8A8A8A",
+ system_bg_color: "#1168BD",
+ system_border_color: "#3C7FC0",
+ system_db_bg_color: "#1168BD",
+ system_db_border_color: "#3C7FC0",
+ system_queue_bg_color: "#1168BD",
+ system_queue_border_color: "#3C7FC0",
+ external_system_bg_color: "#999999",
+ external_system_border_color: "#8A8A8A",
+ external_system_db_bg_color: "#999999",
+ external_system_db_border_color: "#8A8A8A",
+ external_system_queue_bg_color: "#999999",
+ external_system_queue_border_color: "#8A8A8A",
+ container_bg_color: "#438DD5",
+ container_border_color: "#3C7FC0",
+ container_db_bg_color: "#438DD5",
+ container_db_border_color: "#3C7FC0",
+ container_queue_bg_color: "#438DD5",
+ container_queue_border_color: "#3C7FC0",
+ external_container_bg_color: "#B3B3B3",
+ external_container_border_color: "#A6A6A6",
+ external_container_db_bg_color: "#B3B3B3",
+ external_container_db_border_color: "#A6A6A6",
+ external_container_queue_bg_color: "#B3B3B3",
+ external_container_queue_border_color: "#A6A6A6",
+ component_bg_color: "#85BBF0",
+ component_border_color: "#78A8D8",
+ component_db_bg_color: "#85BBF0",
+ component_db_border_color: "#78A8D8",
+ component_queue_bg_color: "#85BBF0",
+ component_queue_border_color: "#78A8D8",
+ external_component_bg_color: "#CCCCCC",
+ external_component_border_color: "#BFBFBF",
+ external_component_db_bg_color: "#CCCCCC",
+ external_component_db_border_color: "#BFBFBF",
+ external_component_queue_bg_color: "#CCCCCC",
+ external_component_queue_border_color: "#BFBFBF"
+ },
+ mindmap: {
+ useMaxWidth: !0,
+ padding: 10,
+ maxNodeWidth: 200
+ },
+ fontSize: 16
+};
+Mt.class && (Mt.class.arrowMarkerAbsolute = Mt.arrowMarkerAbsolute);
+Mt.gitGraph && (Mt.gitGraph.arrowMarkerAbsolute = Mt.arrowMarkerAbsolute);
+const fo = (t, e = "") => Object.keys(t).reduce((i, r) => Array.isArray(t[r]) ? i : typeof t[r] == "object" && t[r] !== null ? [...i, e + r, ...fo(t[r], "")] : [...i, e + r], []), Bh = fo(Mt, ""), fh = Mt, Oi = function(t, e, i) {
+ const { depth: r, clobber: o } = Object.assign({ depth: 2, clobber: !1 }, i);
+ return Array.isArray(e) && !Array.isArray(t) ? (e.forEach((n) => Oi(t, n, i)), t) : Array.isArray(e) && Array.isArray(t) ? (e.forEach((n) => {
+ t.includes(n) || t.push(n);
+ }), t) : t === void 0 || r <= 0 ? t != null && typeof t == "object" && typeof e == "object" ? Object.assign(t, e) : e : (e !== void 0 && typeof t == "object" && typeof e == "object" && Object.keys(e).forEach((n) => {
+ typeof e[n] == "object" && (t[n] === void 0 || typeof t[n] == "object") ? (t[n] === void 0 && (t[n] = Array.isArray(e[n]) ? [] : {}), t[n] = Oi(t[n], e[n], { depth: r - 1, clobber: o })) : (o || typeof t[n] != "object" && typeof e[n] != "object") && (t[n] = e[n]);
+ }), t);
+}, rt = Oi, Pi = Object.freeze(fh);
+let it = rt({}, Pi), go, ee = [], fe = rt({}, Pi);
+const ei = (t, e) => {
+ let i = rt({}, t), r = {};
+ for (const o of e)
+ mo(o), r = rt(r, o);
+ if (i = rt(i, r), r.theme && r.theme in Jt) {
+ const o = rt({}, go), n = rt(
+ o.themeVariables || {},
+ r.themeVariables
+ );
+ i.theme && i.theme in Jt && (i.themeVariables = Jt[i.theme].getThemeVariables(n));
+ }
+ return fe = i, yo(fe), fe;
+}, vh = (t) => (it = rt({}, Pi), it = rt(it, t), t.theme && Jt[t.theme] && (it.themeVariables = Jt[t.theme].getThemeVariables(t.themeVariables)), ei(it, ee), it), wh = (t) => {
+ go = rt({}, t);
+}, Lh = (t) => (it = rt(it, t), ei(it, ee), it), Fh = () => rt({}, it), Ah = (t) => (yo(t), rt(fe, t), po()), po = () => rt({}, fe), mo = (t) => {
+ ["secure", ...it.secure ?? []].forEach((e) => {
+ t[e] !== void 0 && (et.debug(`Denied attempt to modify a secure key ${e}`, t[e]), delete t[e]);
+ }), Object.keys(t).forEach((e) => {
+ e.indexOf("__") === 0 && delete t[e];
+ }), Object.keys(t).forEach((e) => {
+ typeof t[e] == "string" && (t[e].includes("<") || t[e].includes(">") || t[e].includes("url(data:")) && delete t[e], typeof t[e] == "object" && mo(t[e]);
+ });
+}, Eh = (t) => {
+ t.fontFamily && (t.themeVariables ? t.themeVariables.fontFamily || (t.themeVariables = { fontFamily: t.fontFamily }) : t.themeVariables = { fontFamily: t.fontFamily }), ee.push(t), ei(it, ee);
+}, Mh = (t = it) => {
+ ee = [], ei(t, ee);
+};
+var Co = /* @__PURE__ */ ((t) => (t.LAZY_LOAD_DEPRECATED = "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.", t))(Co || {});
+const Er = {}, dh = (t) => {
+ Er[t] || (et.warn(Co[t]), Er[t] = !0);
+}, yo = (t) => {
+ t && (t.lazyLoadedDiagrams || t.loadExternalDiagramsAtStartup) && dh("LAZY_LOAD_DEPRECATED");
+};
+let Hi = "", ii = "", qi = "";
+const Ui = (t) => Ye(t, po()), bo = function() {
+ Hi = "", qi = "", ii = "";
+}, _o = function(t) {
+ Hi = Ui(t).replace(/^\s+/g, "");
+}, xo = function() {
+ return Hi || ii;
+}, To = function(t) {
+ qi = Ui(t).replace(/\n\s+/g, `
+`);
+}, ko = function() {
+ return qi;
+}, So = function(t) {
+ ii = Ui(t);
+}, Bo = function() {
+ return ii;
+}, gh = {
+ getAccTitle: xo,
+ setAccTitle: _o,
+ getDiagramTitle: Bo,
+ setDiagramTitle: So,
+ getAccDescription: ko,
+ setAccDescription: To,
+ clear: bo
+}, Oh = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ clear: bo,
+ default: gh,
+ getAccDescription: ko,
+ getAccTitle: xo,
+ getDiagramTitle: Bo,
+ setAccDescription: To,
+ setAccTitle: _o,
+ setDiagramTitle: So
+}, Symbol.toStringTag, { value: "Module" }));
+export {
+ bo as A,
+ Ur as B,
+ Go as C,
+ Il as D,
+ Ri as E,
+ Gr as F,
+ ye as G,
+ Fs as H,
+ Ni as I,
+ At as J,
+ pe as K,
+ Cr as L,
+ Rs as M,
+ Xr as N,
+ bh as O,
+ Do as P,
+ No as Q,
+ ot as R,
+ st as S,
+ mh as T,
+ S as U,
+ v as V,
+ Lt as W,
+ L as _,
+ Eh as a,
+ Ye as b,
+ Oh as c,
+ rt as d,
+ Bh as e,
+ _h as f,
+ po as g,
+ yh as h,
+ Ah as i,
+ Fh as j,
+ Pi as k,
+ et as l,
+ Ol as m,
+ wh as n,
+ vh as o,
+ Mi as p,
+ _o as q,
+ Mh as r,
+ Ch as s,
+ Jt as t,
+ Lh as u,
+ xo as v,
+ ko as w,
+ To as x,
+ So as y,
+ Bo as z
+};
+//# sourceMappingURL=commonDb-41f8b4c5.js.map
diff --git a/scopegraphs-render-docs/doc/js/commonDb-573409be.js b/scopegraphs-render-docs/doc/js/commonDb-573409be.js
new file mode 100644
index 0000000..1bbc96b
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/commonDb-573409be.js
@@ -0,0 +1,3542 @@
+import DOMPurify from "dompurify";
+import dayjs from "dayjs";
+import { adjust, invert, darken, lighten, rgba } from "khroma";
+const LEVELS = {
+ trace: 0,
+ debug: 1,
+ info: 2,
+ warn: 3,
+ error: 4,
+ fatal: 5
+};
+const log = {
+ trace: (..._args) => {
+ },
+ debug: (..._args) => {
+ },
+ info: (..._args) => {
+ },
+ warn: (..._args) => {
+ },
+ error: (..._args) => {
+ },
+ fatal: (..._args) => {
+ }
+};
+const setLogLevel = function(level = "fatal") {
+ let numericLevel = LEVELS.fatal;
+ if (typeof level === "string") {
+ level = level.toLowerCase();
+ if (level in LEVELS) {
+ numericLevel = LEVELS[level];
+ }
+ } else if (typeof level === "number") {
+ numericLevel = level;
+ }
+ log.trace = () => {
+ };
+ log.debug = () => {
+ };
+ log.info = () => {
+ };
+ log.warn = () => {
+ };
+ log.error = () => {
+ };
+ log.fatal = () => {
+ };
+ if (numericLevel <= LEVELS.fatal) {
+ log.fatal = console.error ? console.error.bind(console, format("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", format("FATAL"));
+ }
+ if (numericLevel <= LEVELS.error) {
+ log.error = console.error ? console.error.bind(console, format("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", format("ERROR"));
+ }
+ if (numericLevel <= LEVELS.warn) {
+ log.warn = console.warn ? console.warn.bind(console, format("WARN"), "color: orange") : console.log.bind(console, `\x1B[33m`, format("WARN"));
+ }
+ if (numericLevel <= LEVELS.info) {
+ log.info = console.info ? console.info.bind(console, format("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", format("INFO"));
+ }
+ if (numericLevel <= LEVELS.debug) {
+ log.debug = console.debug ? console.debug.bind(console, format("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("DEBUG"));
+ }
+ if (numericLevel <= LEVELS.trace) {
+ log.trace = console.debug ? console.debug.bind(console, format("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("TRACE"));
+ }
+};
+const format = (level) => {
+ const time = dayjs().format("ss.SSS");
+ return `%c${time} : ${level} : `;
+};
+const getRows = (s) => {
+ if (!s) {
+ return [""];
+ }
+ const str = breakToPlaceholder(s).replace(/\\n/g, "#br#");
+ return str.split("#br#");
+};
+const removeScript = (txt) => {
+ return DOMPurify.sanitize(txt);
+};
+const sanitizeMore = (text, config2) => {
+ var _a;
+ if (((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels) !== false) {
+ const level = config2.securityLevel;
+ if (level === "antiscript" || level === "strict") {
+ text = removeScript(text);
+ } else if (level !== "loose") {
+ text = breakToPlaceholder(text);
+ text = text.replace(//g, ">");
+ text = text.replace(/=/g, "=");
+ text = placeholderToBreak(text);
+ }
+ }
+ return text;
+};
+const sanitizeText$1 = (text, config2) => {
+ if (!text) {
+ return text;
+ }
+ if (config2.dompurifyConfig) {
+ text = DOMPurify.sanitize(sanitizeMore(text, config2), config2.dompurifyConfig).toString();
+ } else {
+ text = DOMPurify.sanitize(sanitizeMore(text, config2), {
+ FORBID_TAGS: ["style"]
+ }).toString();
+ }
+ return text;
+};
+const sanitizeTextOrArray = (a, config2) => {
+ if (typeof a === "string") {
+ return sanitizeText$1(a, config2);
+ }
+ return a.flat().map((x) => sanitizeText$1(x, config2));
+};
+const lineBreakRegex = /
/gi;
+const hasBreaks = (text) => {
+ return lineBreakRegex.test(text);
+};
+const splitBreaks = (text) => {
+ return text.split(lineBreakRegex);
+};
+const placeholderToBreak = (s) => {
+ return s.replace(/#br#/g, "
");
+};
+const breakToPlaceholder = (s) => {
+ return s.replace(lineBreakRegex, "#br#");
+};
+const getUrl = (useAbsolute) => {
+ let url = "";
+ if (useAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replaceAll(/\(/g, "\\(");
+ url = url.replaceAll(/\)/g, "\\)");
+ }
+ return url;
+};
+const evaluate = (val) => val === false || ["false", "null", "0"].includes(String(val).trim().toLowerCase()) ? false : true;
+const parseGenericTypes = function(text) {
+ let cleanedText = text;
+ if (text.split("~").length - 1 >= 2) {
+ let newCleanedText = cleanedText;
+ do {
+ cleanedText = newCleanedText;
+ newCleanedText = cleanedText.replace(/~([^\s,:;]+)~/, "<$1>");
+ } while (newCleanedText != cleanedText);
+ return parseGenericTypes(newCleanedText);
+ } else {
+ return cleanedText;
+ }
+};
+const common = {
+ getRows,
+ sanitizeText: sanitizeText$1,
+ sanitizeTextOrArray,
+ hasBreaks,
+ splitBreaks,
+ lineBreakRegex,
+ removeScript,
+ getUrl,
+ evaluate
+};
+const mkBorder = (col, darkMode) => darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 });
+const oldAttributeBackgroundColorOdd = "#ffffff";
+const oldAttributeBackgroundColorEven = "#f2f2f2";
+let Theme$4 = class Theme {
+ constructor() {
+ this.background = "#f4f4f4";
+ this.primaryColor = "#fff4dd";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "#333";
+ this.THEME_COLOR_LIMIT = 12;
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ }
+ updateColors() {
+ this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333");
+ this.secondaryColor = this.secondaryColor || adjust(this.primaryColor, { h: -120 });
+ this.tertiaryColor = this.tertiaryColor || adjust(this.primaryColor, { h: 180, l: 5 });
+ this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);
+ this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);
+ this.noteBkgColor = this.noteBkgColor || "#fff5ad";
+ this.noteTextColor = this.noteTextColor || "#333";
+ this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);
+ this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);
+ this.lineColor = this.lineColor || invert(this.background);
+ this.textColor = this.textColor || this.primaryTextColor;
+ this.nodeBkg = this.nodeBkg || this.primaryColor;
+ this.mainBkg = this.mainBkg || this.primaryColor;
+ this.nodeBorder = this.nodeBorder || this.primaryBorderColor;
+ this.clusterBkg = this.clusterBkg || this.tertiaryColor;
+ this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;
+ this.defaultLinkColor = this.defaultLinkColor || this.lineColor;
+ this.titleColor = this.titleColor || this.tertiaryTextColor;
+ this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);
+ this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;
+ this.actorBorder = this.actorBorder || this.primaryBorderColor;
+ this.actorBkg = this.actorBkg || this.mainBkg;
+ this.actorTextColor = this.actorTextColor || this.primaryTextColor;
+ this.actorLineColor = this.actorLineColor || "grey";
+ this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;
+ this.signalColor = this.signalColor || this.textColor;
+ this.signalTextColor = this.signalTextColor || this.textColor;
+ this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;
+ this.labelTextColor = this.labelTextColor || this.actorTextColor;
+ this.loopTextColor = this.loopTextColor || this.actorTextColor;
+ this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);
+ this.activationBkgColor = this.activationBkgColor || this.secondaryColor;
+ this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);
+ this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;
+ this.altSectionBkgColor = this.altSectionBkgColor || "white";
+ this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;
+ this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;
+ this.excludeBkgColor = this.excludeBkgColor || "#eeeeee";
+ this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;
+ this.taskBkgColor = this.taskBkgColor || this.primaryColor;
+ this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;
+ this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);
+ this.gridColor = this.gridColor || "lightgrey";
+ this.doneTaskBkgColor = this.doneTaskBkgColor || "lightgrey";
+ this.doneTaskBorderColor = this.doneTaskBorderColor || "grey";
+ this.critBorderColor = this.critBorderColor || "#ff8888";
+ this.critBkgColor = this.critBkgColor || "red";
+ this.todayLineColor = this.todayLineColor || "red";
+ this.taskTextColor = this.taskTextColor || this.textColor;
+ this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;
+ this.taskTextLightColor = this.taskTextLightColor || this.textColor;
+ this.taskTextColor = this.taskTextColor || this.primaryTextColor;
+ this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;
+ this.taskTextClickableColor = this.taskTextClickableColor || "#003163";
+ this.personBorder = this.personBorder || this.primaryBorderColor;
+ this.personBkg = this.personBkg || this.mainBkg;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || this.tertiaryColor;
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.nodeBorder;
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.specialStateColor = this.lineColor;
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210, l: 150 });
+ this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });
+ if (this.darkMode) {
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScale" + i] = darken(this["cScale" + i], 75);
+ }
+ } else {
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScale" + i] = darken(this["cScale" + i], 25);
+ }
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleInv" + i] = this["cScaleInv" + i] || invert(this["cScale" + i]);
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ if (this.darkMode) {
+ this["cScalePeer" + i] = this["cScalePeer" + i] || lighten(this["cScale" + i], 10);
+ } else {
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken(this["cScale" + i], 10);
+ }
+ }
+ this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
+ }
+ const multiplier = this.darkMode ? -4 : -1;
+ for (let i = 0; i < 5; i++) {
+ this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) });
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) });
+ }
+ this.classText = this.classText || this.textColor;
+ this.fillType0 = this.fillType0 || this.primaryColor;
+ this.fillType1 = this.fillType1 || this.secondaryColor;
+ this.fillType2 = this.fillType2 || adjust(this.primaryColor, { h: 64 });
+ this.fillType3 = this.fillType3 || adjust(this.secondaryColor, { h: 64 });
+ this.fillType4 = this.fillType4 || adjust(this.primaryColor, { h: -64 });
+ this.fillType5 = this.fillType5 || adjust(this.secondaryColor, { h: -64 });
+ this.fillType6 = this.fillType6 || adjust(this.primaryColor, { h: 128 });
+ this.fillType7 = this.fillType7 || adjust(this.secondaryColor, { h: 128 });
+ this.pie1 = this.pie1 || this.primaryColor;
+ this.pie2 = this.pie2 || this.secondaryColor;
+ this.pie3 = this.pie3 || this.tertiaryColor;
+ this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });
+ this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 });
+ this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 });
+ this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 });
+ this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });
+ this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });
+ this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -20 });
+ this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 });
+ this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 });
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = this.git0 || this.primaryColor;
+ this.git1 = this.git1 || this.secondaryColor;
+ this.git2 = this.git2 || this.tertiaryColor;
+ this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });
+ this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });
+ this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });
+ this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });
+ this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });
+ if (this.darkMode) {
+ this.git0 = lighten(this.git0, 25);
+ this.git1 = lighten(this.git1, 25);
+ this.git2 = lighten(this.git2, 25);
+ this.git3 = lighten(this.git3, 25);
+ this.git4 = lighten(this.git4, 25);
+ this.git5 = lighten(this.git5, 25);
+ this.git6 = lighten(this.git6, 25);
+ this.git7 = lighten(this.git7, 25);
+ } else {
+ this.git0 = darken(this.git0, 25);
+ this.git1 = darken(this.git1, 25);
+ this.git2 = darken(this.git2, 25);
+ this.git3 = darken(this.git3, 25);
+ this.git4 = darken(this.git4, 25);
+ this.git5 = darken(this.git5, 25);
+ this.git6 = darken(this.git6, 25);
+ this.git7 = darken(this.git7, 25);
+ }
+ this.gitInv0 = this.gitInv0 || invert(this.git0);
+ this.gitInv1 = this.gitInv1 || invert(this.git1);
+ this.gitInv2 = this.gitInv2 || invert(this.git2);
+ this.gitInv3 = this.gitInv3 || invert(this.git3);
+ this.gitInv4 = this.gitInv4 || invert(this.git4);
+ this.gitInv5 = this.gitInv5 || invert(this.git5);
+ this.gitInv6 = this.gitInv6 || invert(this.git6);
+ this.gitInv7 = this.gitInv7 || invert(this.git7);
+ this.branchLabelColor = this.branchLabelColor || (this.darkMode ? "black" : this.labelTextColor);
+ this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;
+ this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys = Object.keys(overrides);
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ this.updateColors();
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ }
+};
+const getThemeVariables$4 = (userOverrides) => {
+ const theme2 = new Theme$4();
+ theme2.calculate(userOverrides);
+ return theme2;
+};
+let Theme$3 = class Theme2 {
+ constructor() {
+ this.background = "#333";
+ this.primaryColor = "#1f2020";
+ this.secondaryColor = lighten(this.primaryColor, 16);
+ this.tertiaryColor = adjust(this.primaryColor, { h: -160 });
+ this.primaryBorderColor = invert(this.background);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert(this.primaryColor);
+ this.secondaryTextColor = invert(this.secondaryColor);
+ this.tertiaryTextColor = invert(this.tertiaryColor);
+ this.lineColor = invert(this.background);
+ this.textColor = invert(this.background);
+ this.mainBkg = "#1f2020";
+ this.secondBkg = "calculated";
+ this.mainContrastColor = "lightgrey";
+ this.darkTextColor = lighten(invert("#323D47"), 10);
+ this.lineColor = "calculated";
+ this.border1 = "#81B1DB";
+ this.border2 = rgba(255, 255, 255, 0.25);
+ this.arrowheadColor = "calculated";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.labelBackground = "#181818";
+ this.textColor = "#ccc";
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "#F9FFFE";
+ this.edgeLabelBackground = "calculated";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "calculated";
+ this.actorLineColor = "calculated";
+ this.signalColor = "calculated";
+ this.signalTextColor = "calculated";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "calculated";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "calculated";
+ this.activationBkgColor = "calculated";
+ this.sequenceNumberColor = "black";
+ this.sectionBkgColor = darken("#EAE8D9", 30);
+ this.altSectionBkgColor = "calculated";
+ this.sectionBkgColor2 = "#EAE8D9";
+ this.taskBorderColor = rgba(255, 255, 255, 70);
+ this.taskBkgColor = "calculated";
+ this.taskTextColor = "calculated";
+ this.taskTextLightColor = "calculated";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = rgba(255, 255, 255, 50);
+ this.activeTaskBkgColor = "#81B1DB";
+ this.gridColor = "calculated";
+ this.doneTaskBkgColor = "calculated";
+ this.doneTaskBorderColor = "grey";
+ this.critBorderColor = "#E83737";
+ this.critBkgColor = "#E83737";
+ this.taskTextDarkColor = "calculated";
+ this.todayLineColor = "#DB5757";
+ this.personBorder = "calculated";
+ this.personBkg = "calculated";
+ this.labelColor = "calculated";
+ this.errorBkgColor = "#a44141";
+ this.errorTextColor = "#ddd";
+ }
+ updateColors() {
+ this.secondBkg = lighten(this.mainBkg, 16);
+ this.lineColor = this.mainContrastColor;
+ this.arrowheadColor = this.mainContrastColor;
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.edgeLabelBackground = lighten(this.labelBackground, 25);
+ this.actorBorder = this.border1;
+ this.actorBkg = this.mainBkg;
+ this.actorTextColor = this.mainContrastColor;
+ this.actorLineColor = this.mainContrastColor;
+ this.signalColor = this.mainContrastColor;
+ this.signalTextColor = this.mainContrastColor;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.labelBoxBorderColor = this.actorBorder;
+ this.labelTextColor = this.mainContrastColor;
+ this.loopTextColor = this.mainContrastColor;
+ this.noteBorderColor = this.secondaryBorderColor;
+ this.noteBkgColor = this.secondBkg;
+ this.noteTextColor = this.secondaryTextColor;
+ this.activationBorderColor = this.border1;
+ this.activationBkgColor = this.secondBkg;
+ this.altSectionBkgColor = this.background;
+ this.taskBkgColor = lighten(this.mainBkg, 23);
+ this.taskTextColor = this.darkTextColor;
+ this.taskTextLightColor = this.mainContrastColor;
+ this.taskTextOutsideColor = this.taskTextLightColor;
+ this.gridColor = this.mainContrastColor;
+ this.doneTaskBkgColor = this.mainContrastColor;
+ this.taskTextDarkColor = this.darkTextColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#555";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.primaryBorderColor;
+ this.specialStateColor = "#f4f4f4";
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust(this.secondaryColor, { h: 128 });
+ this.cScale1 = this.cScale1 || "#0b0000";
+ this.cScale2 = this.cScale2 || "#4d1037";
+ this.cScale3 = this.cScale3 || "#3f5258";
+ this.cScale4 = this.cScale4 || "#4f2f1b";
+ this.cScale5 = this.cScale5 || "#6e0a0a";
+ this.cScale6 = this.cScale6 || "#3b0048";
+ this.cScale7 = this.cScale7 || "#995a01";
+ this.cScale8 = this.cScale8 || "#154706";
+ this.cScale9 = this.cScale9 || "#161722";
+ this.cScale10 = this.cScale10 || "#00296f";
+ this.cScale11 = this.cScale11 || "#01629c";
+ this.cScale12 = this.cScale12 || "#010029";
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });
+ this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleInv" + i] = this["cScaleInv" + i] || invert(this["cScale" + i]);
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScalePeer" + i] = this["cScalePeer" + i] || lighten(this["cScale" + i], 10);
+ }
+ for (let i = 0; i < 5; i++) {
+ this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) });
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) });
+ }
+ this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["pie" + i] = this["cScale" + i];
+ }
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.classText = this.primaryTextColor;
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = lighten(this.secondaryColor, 20);
+ this.git1 = lighten(this.pie2 || this.secondaryColor, 20);
+ this.git2 = lighten(this.pie3 || this.tertiaryColor, 20);
+ this.git3 = lighten(this.pie4 || adjust(this.primaryColor, { h: -30 }), 20);
+ this.git4 = lighten(this.pie5 || adjust(this.primaryColor, { h: -60 }), 20);
+ this.git5 = lighten(this.pie6 || adjust(this.primaryColor, { h: -90 }), 10);
+ this.git6 = lighten(this.pie7 || adjust(this.primaryColor, { h: 60 }), 10);
+ this.git7 = lighten(this.pie8 || adjust(this.primaryColor, { h: 120 }), 20);
+ this.gitInv0 = this.gitInv0 || invert(this.git0);
+ this.gitInv1 = this.gitInv1 || invert(this.git1);
+ this.gitInv2 = this.gitInv2 || invert(this.git2);
+ this.gitInv3 = this.gitInv3 || invert(this.git3);
+ this.gitInv4 = this.gitInv4 || invert(this.git4);
+ this.gitInv5 = this.gitInv5 || invert(this.git5);
+ this.gitInv6 = this.gitInv6 || invert(this.git6);
+ this.gitInv7 = this.gitInv7 || invert(this.git7);
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten(this.background, 12);
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten(this.background, 2);
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys = Object.keys(overrides);
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ this.updateColors();
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ }
+};
+const getThemeVariables$3 = (userOverrides) => {
+ const theme2 = new Theme$3();
+ theme2.calculate(userOverrides);
+ return theme2;
+};
+let Theme$2 = class Theme3 {
+ constructor() {
+ this.background = "#f4f4f4";
+ this.primaryColor = "#ECECFF";
+ this.secondaryColor = adjust(this.primaryColor, { h: 120 });
+ this.secondaryColor = "#ffffde";
+ this.tertiaryColor = adjust(this.primaryColor, { h: -160 });
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert(this.primaryColor);
+ this.secondaryTextColor = invert(this.secondaryColor);
+ this.tertiaryTextColor = invert(this.tertiaryColor);
+ this.lineColor = invert(this.background);
+ this.textColor = invert(this.background);
+ this.background = "white";
+ this.mainBkg = "#ECECFF";
+ this.secondBkg = "#ffffde";
+ this.lineColor = "#333333";
+ this.border1 = "#9370DB";
+ this.border2 = "#aaaa33";
+ this.arrowheadColor = "#333333";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.labelBackground = "#e8e8e8";
+ this.textColor = "#333";
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "calculated";
+ this.edgeLabelBackground = "calculated";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "black";
+ this.actorLineColor = "grey";
+ this.signalColor = "calculated";
+ this.signalTextColor = "calculated";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "calculated";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "#666";
+ this.activationBkgColor = "#f4f4f4";
+ this.sequenceNumberColor = "white";
+ this.sectionBkgColor = "calculated";
+ this.altSectionBkgColor = "calculated";
+ this.sectionBkgColor2 = "calculated";
+ this.excludeBkgColor = "#eeeeee";
+ this.taskBorderColor = "calculated";
+ this.taskBkgColor = "calculated";
+ this.taskTextLightColor = "calculated";
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextDarkColor = "calculated";
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.taskTextClickableColor = "calculated";
+ this.activeTaskBorderColor = "calculated";
+ this.activeTaskBkgColor = "calculated";
+ this.gridColor = "calculated";
+ this.doneTaskBkgColor = "calculated";
+ this.doneTaskBorderColor = "calculated";
+ this.critBorderColor = "calculated";
+ this.critBkgColor = "calculated";
+ this.todayLineColor = "calculated";
+ this.sectionBkgColor = rgba(102, 102, 255, 0.49);
+ this.altSectionBkgColor = "white";
+ this.sectionBkgColor2 = "#fff400";
+ this.taskBorderColor = "#534fbc";
+ this.taskBkgColor = "#8a90dd";
+ this.taskTextLightColor = "white";
+ this.taskTextColor = "calculated";
+ this.taskTextDarkColor = "black";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = "#534fbc";
+ this.activeTaskBkgColor = "#bfc7ff";
+ this.gridColor = "lightgrey";
+ this.doneTaskBkgColor = "lightgrey";
+ this.doneTaskBorderColor = "grey";
+ this.critBorderColor = "#ff8888";
+ this.critBkgColor = "red";
+ this.todayLineColor = "red";
+ this.personBorder = "calculated";
+ this.personBkg = "calculated";
+ this.labelColor = "black";
+ this.errorBkgColor = "#552222";
+ this.errorTextColor = "#552222";
+ this.updateColors();
+ }
+ updateColors() {
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });
+ this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });
+ this["cScalePeer" + 1] = this["cScalePeer" + 1] || darken(this.secondaryColor, 45);
+ this["cScalePeer" + 2] = this["cScalePeer" + 2] || darken(this.tertiaryColor, 40);
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScale" + i] = darken(this["cScale" + i], 10);
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken(this["cScale" + i], 25);
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleInv" + i] = this["cScaleInv" + i] || adjust(this["cScale" + i], { h: 180 });
+ }
+ for (let i = 0; i < 5; i++) {
+ this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { h: 30, l: -(5 + i * 5) });
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(this.mainBkg, { h: 30, l: -(7 + i * 5) });
+ }
+ this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
+ if (this.labelTextColor !== "calculated") {
+ this.cScaleLabel0 = this.cScaleLabel0 || invert(this.labelTextColor);
+ this.cScaleLabel3 = this.cScaleLabel3 || invert(this.labelTextColor);
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.labelTextColor;
+ }
+ }
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.titleColor = this.textColor;
+ this.edgeLabelBackground = this.labelBackground;
+ this.actorBorder = lighten(this.border1, 23);
+ this.actorBkg = this.mainBkg;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.signalColor = this.textColor;
+ this.signalTextColor = this.textColor;
+ this.labelBoxBorderColor = this.actorBorder;
+ this.labelTextColor = this.actorTextColor;
+ this.loopTextColor = this.actorTextColor;
+ this.noteBorderColor = this.border2;
+ this.noteTextColor = this.actorTextColor;
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#f0f0f0";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.nodeBorder;
+ this.specialStateColor = this.lineColor;
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.classText = this.primaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust(this.secondaryColor, { h: 128 });
+ this.pie1 = this.pie1 || this.primaryColor;
+ this.pie2 = this.pie2 || this.secondaryColor;
+ this.pie3 = this.pie3 || adjust(this.tertiaryColor, { l: -40 });
+ this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });
+ this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });
+ this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -20 });
+ this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -20 });
+ this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -40 });
+ this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: -40 });
+ this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -40 });
+ this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -90, l: -40 });
+ this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -30 });
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = this.git0 || this.primaryColor;
+ this.git1 = this.git1 || this.secondaryColor;
+ this.git2 = this.git2 || this.tertiaryColor;
+ this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });
+ this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });
+ this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });
+ this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });
+ this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });
+ if (this.darkMode) {
+ this.git0 = lighten(this.git0, 25);
+ this.git1 = lighten(this.git1, 25);
+ this.git2 = lighten(this.git2, 25);
+ this.git3 = lighten(this.git3, 25);
+ this.git4 = lighten(this.git4, 25);
+ this.git5 = lighten(this.git5, 25);
+ this.git6 = lighten(this.git6, 25);
+ this.git7 = lighten(this.git7, 25);
+ } else {
+ this.git0 = darken(this.git0, 25);
+ this.git1 = darken(this.git1, 25);
+ this.git2 = darken(this.git2, 25);
+ this.git3 = darken(this.git3, 25);
+ this.git4 = darken(this.git4, 25);
+ this.git5 = darken(this.git5, 25);
+ this.git6 = darken(this.git6, 25);
+ this.git7 = darken(this.git7, 25);
+ }
+ this.gitInv0 = this.gitInv0 || darken(invert(this.git0), 25);
+ this.gitInv1 = this.gitInv1 || invert(this.git1);
+ this.gitInv2 = this.gitInv2 || invert(this.git2);
+ this.gitInv3 = this.gitInv3 || invert(this.git3);
+ this.gitInv4 = this.gitInv4 || invert(this.git4);
+ this.gitInv5 = this.gitInv5 || invert(this.git5);
+ this.gitInv6 = this.gitInv6 || invert(this.git6);
+ this.gitInv7 = this.gitInv7 || invert(this.git7);
+ this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
+ this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys = Object.keys(overrides);
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ this.updateColors();
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ }
+};
+const getThemeVariables$2 = (userOverrides) => {
+ const theme2 = new Theme$2();
+ theme2.calculate(userOverrides);
+ return theme2;
+};
+let Theme$1 = class Theme4 {
+ constructor() {
+ this.background = "#f4f4f4";
+ this.primaryColor = "#cde498";
+ this.secondaryColor = "#cdffb2";
+ this.background = "white";
+ this.mainBkg = "#cde498";
+ this.secondBkg = "#cdffb2";
+ this.lineColor = "green";
+ this.border1 = "#13540c";
+ this.border2 = "#6eaa49";
+ this.arrowheadColor = "green";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.tertiaryColor = lighten("#cde498", 10);
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert(this.primaryColor);
+ this.secondaryTextColor = invert(this.secondaryColor);
+ this.tertiaryTextColor = invert(this.primaryColor);
+ this.lineColor = invert(this.background);
+ this.textColor = invert(this.background);
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "#333";
+ this.edgeLabelBackground = "#e8e8e8";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "black";
+ this.actorLineColor = "grey";
+ this.signalColor = "#333";
+ this.signalTextColor = "#333";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "#326932";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "#666";
+ this.activationBkgColor = "#f4f4f4";
+ this.sequenceNumberColor = "white";
+ this.sectionBkgColor = "#6eaa49";
+ this.altSectionBkgColor = "white";
+ this.sectionBkgColor2 = "#6eaa49";
+ this.excludeBkgColor = "#eeeeee";
+ this.taskBorderColor = "calculated";
+ this.taskBkgColor = "#487e3a";
+ this.taskTextLightColor = "white";
+ this.taskTextColor = "calculated";
+ this.taskTextDarkColor = "black";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = "calculated";
+ this.activeTaskBkgColor = "calculated";
+ this.gridColor = "lightgrey";
+ this.doneTaskBkgColor = "lightgrey";
+ this.doneTaskBorderColor = "grey";
+ this.critBorderColor = "#ff8888";
+ this.critBkgColor = "red";
+ this.todayLineColor = "red";
+ this.personBorder = "calculated";
+ this.personBkg = "calculated";
+ this.labelColor = "black";
+ this.errorBkgColor = "#552222";
+ this.errorTextColor = "#552222";
+ }
+ updateColors() {
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });
+ this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });
+ this["cScalePeer" + 1] = this["cScalePeer" + 1] || darken(this.secondaryColor, 45);
+ this["cScalePeer" + 2] = this["cScalePeer" + 2] || darken(this.tertiaryColor, 40);
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScale" + i] = darken(this["cScale" + i], 10);
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken(this["cScale" + i], 25);
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleInv" + i] = this["cScaleInv" + i] || adjust(this["cScale" + i], { h: 180 });
+ }
+ this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
+ }
+ for (let i = 0; i < 5; i++) {
+ this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) });
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) });
+ }
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.actorBorder = darken(this.mainBkg, 20);
+ this.actorBkg = this.mainBkg;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.labelTextColor = this.actorTextColor;
+ this.loopTextColor = this.actorTextColor;
+ this.noteBorderColor = this.border2;
+ this.noteTextColor = this.actorTextColor;
+ this.taskBorderColor = this.border1;
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.activeTaskBorderColor = this.taskBorderColor;
+ this.activeTaskBkgColor = this.mainBkg;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#f0f0f0";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.primaryBorderColor;
+ this.specialStateColor = this.lineColor;
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.classText = this.primaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust(this.secondaryColor, { h: 128 });
+ this.pie1 = this.pie1 || this.primaryColor;
+ this.pie2 = this.pie2 || this.secondaryColor;
+ this.pie3 = this.pie3 || this.tertiaryColor;
+ this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -30 });
+ this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });
+ this.pie6 = this.pie6 || adjust(this.tertiaryColor, { h: 40, l: -40 });
+ this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 });
+ this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });
+ this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });
+ this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -50 });
+ this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -50 });
+ this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -50 });
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = this.git0 || this.primaryColor;
+ this.git1 = this.git1 || this.secondaryColor;
+ this.git2 = this.git2 || this.tertiaryColor;
+ this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });
+ this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });
+ this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });
+ this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });
+ this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });
+ if (this.darkMode) {
+ this.git0 = lighten(this.git0, 25);
+ this.git1 = lighten(this.git1, 25);
+ this.git2 = lighten(this.git2, 25);
+ this.git3 = lighten(this.git3, 25);
+ this.git4 = lighten(this.git4, 25);
+ this.git5 = lighten(this.git5, 25);
+ this.git6 = lighten(this.git6, 25);
+ this.git7 = lighten(this.git7, 25);
+ } else {
+ this.git0 = darken(this.git0, 25);
+ this.git1 = darken(this.git1, 25);
+ this.git2 = darken(this.git2, 25);
+ this.git3 = darken(this.git3, 25);
+ this.git4 = darken(this.git4, 25);
+ this.git5 = darken(this.git5, 25);
+ this.git6 = darken(this.git6, 25);
+ this.git7 = darken(this.git7, 25);
+ }
+ this.gitInv0 = this.gitInv0 || invert(this.git0);
+ this.gitInv1 = this.gitInv1 || invert(this.git1);
+ this.gitInv2 = this.gitInv2 || invert(this.git2);
+ this.gitInv3 = this.gitInv3 || invert(this.git3);
+ this.gitInv4 = this.gitInv4 || invert(this.git4);
+ this.gitInv5 = this.gitInv5 || invert(this.git5);
+ this.gitInv6 = this.gitInv6 || invert(this.git6);
+ this.gitInv7 = this.gitInv7 || invert(this.git7);
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys = Object.keys(overrides);
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ this.updateColors();
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ }
+};
+const getThemeVariables$1 = (userOverrides) => {
+ const theme2 = new Theme$1();
+ theme2.calculate(userOverrides);
+ return theme2;
+};
+class Theme5 {
+ constructor() {
+ this.primaryColor = "#eee";
+ this.contrast = "#707070";
+ this.secondaryColor = lighten(this.contrast, 55);
+ this.background = "#ffffff";
+ this.tertiaryColor = adjust(this.primaryColor, { h: -160 });
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert(this.primaryColor);
+ this.secondaryTextColor = invert(this.secondaryColor);
+ this.tertiaryTextColor = invert(this.tertiaryColor);
+ this.lineColor = invert(this.background);
+ this.textColor = invert(this.background);
+ this.mainBkg = "#eee";
+ this.secondBkg = "calculated";
+ this.lineColor = "#666";
+ this.border1 = "#999";
+ this.border2 = "calculated";
+ this.note = "#ffa";
+ this.text = "#333";
+ this.critical = "#d42";
+ this.done = "#bbb";
+ this.arrowheadColor = "#333333";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "calculated";
+ this.edgeLabelBackground = "white";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "calculated";
+ this.actorLineColor = "calculated";
+ this.signalColor = "calculated";
+ this.signalTextColor = "calculated";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "calculated";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "calculated";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "#666";
+ this.activationBkgColor = "#f4f4f4";
+ this.sequenceNumberColor = "white";
+ this.sectionBkgColor = "calculated";
+ this.altSectionBkgColor = "white";
+ this.sectionBkgColor2 = "calculated";
+ this.excludeBkgColor = "#eeeeee";
+ this.taskBorderColor = "calculated";
+ this.taskBkgColor = "calculated";
+ this.taskTextLightColor = "white";
+ this.taskTextColor = "calculated";
+ this.taskTextDarkColor = "calculated";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = "calculated";
+ this.activeTaskBkgColor = "calculated";
+ this.gridColor = "calculated";
+ this.doneTaskBkgColor = "calculated";
+ this.doneTaskBorderColor = "calculated";
+ this.critBkgColor = "calculated";
+ this.critBorderColor = "calculated";
+ this.todayLineColor = "calculated";
+ this.personBorder = "calculated";
+ this.personBkg = "calculated";
+ this.labelColor = "black";
+ this.errorBkgColor = "#552222";
+ this.errorTextColor = "#552222";
+ }
+ updateColors() {
+ this.secondBkg = lighten(this.contrast, 55);
+ this.border2 = this.contrast;
+ this.cScale0 = this.cScale0 || "#555";
+ this.cScale1 = this.cScale1 || "#F4F4F4";
+ this.cScale2 = this.cScale2 || "#555";
+ this.cScale3 = this.cScale3 || "#BBB";
+ this.cScale4 = this.cScale4 || "#777";
+ this.cScale5 = this.cScale5 || "#999";
+ this.cScale6 = this.cScale6 || "#DDD";
+ this.cScale7 = this.cScale7 || "#FFF";
+ this.cScale8 = this.cScale8 || "#DDD";
+ this.cScale9 = this.cScale9 || "#BBB";
+ this.cScale10 = this.cScale10 || "#999";
+ this.cScale11 = this.cScale11 || "#777";
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleInv" + i] = this["cScaleInv" + i] || invert(this["cScale" + i]);
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ if (this.darkMode) {
+ this["cScalePeer" + i] = this["cScalePeer" + i] || lighten(this["cScale" + i], 10);
+ } else {
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken(this["cScale" + i], 10);
+ }
+ }
+ this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
+ this["cScaleLabel0"] = this["cScaleLabel0"] || this.cScale1;
+ this["cScaleLabel2"] = this["cScaleLabel2"] || this.cScale1;
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
+ }
+ for (let i = 0; i < 5; i++) {
+ this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { l: -(5 + i * 5) });
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(this.mainBkg, { l: -(8 + i * 5) });
+ }
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.titleColor = this.text;
+ this.actorBorder = lighten(this.border1, 23);
+ this.actorBkg = this.mainBkg;
+ this.actorTextColor = this.text;
+ this.actorLineColor = this.lineColor;
+ this.signalColor = this.text;
+ this.signalTextColor = this.text;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.labelBoxBorderColor = this.actorBorder;
+ this.labelTextColor = this.text;
+ this.loopTextColor = this.text;
+ this.noteBorderColor = "#999";
+ this.noteBkgColor = "#666";
+ this.noteTextColor = "#fff";
+ this.sectionBkgColor = lighten(this.contrast, 30);
+ this.sectionBkgColor2 = lighten(this.contrast, 30);
+ this.taskBorderColor = darken(this.contrast, 10);
+ this.taskBkgColor = this.contrast;
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextDarkColor = this.text;
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.activeTaskBorderColor = this.taskBorderColor;
+ this.activeTaskBkgColor = this.mainBkg;
+ this.gridColor = lighten(this.border1, 30);
+ this.doneTaskBkgColor = this.done;
+ this.doneTaskBorderColor = this.lineColor;
+ this.critBkgColor = this.critical;
+ this.critBorderColor = darken(this.critBkgColor, 10);
+ this.todayLineColor = this.critBkgColor;
+ this.transitionColor = this.transitionColor || "#000";
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#f4f4f4";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.stateBorder = this.stateBorder || "#000";
+ this.innerEndBackground = this.primaryBorderColor;
+ this.specialStateColor = "#222";
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.classText = this.primaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust(this.secondaryColor, { h: 128 });
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["pie" + i] = this["cScale" + i];
+ }
+ this.pie12 = this.pie0;
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = darken(this.pie1, 25) || this.primaryColor;
+ this.git1 = this.pie2 || this.secondaryColor;
+ this.git2 = this.pie3 || this.tertiaryColor;
+ this.git3 = this.pie4 || adjust(this.primaryColor, { h: -30 });
+ this.git4 = this.pie5 || adjust(this.primaryColor, { h: -60 });
+ this.git5 = this.pie6 || adjust(this.primaryColor, { h: -90 });
+ this.git6 = this.pie7 || adjust(this.primaryColor, { h: 60 });
+ this.git7 = this.pie8 || adjust(this.primaryColor, { h: 120 });
+ this.gitInv0 = this.gitInv0 || invert(this.git0);
+ this.gitInv1 = this.gitInv1 || invert(this.git1);
+ this.gitInv2 = this.gitInv2 || invert(this.git2);
+ this.gitInv3 = this.gitInv3 || invert(this.git3);
+ this.gitInv4 = this.gitInv4 || invert(this.git4);
+ this.gitInv5 = this.gitInv5 || invert(this.git5);
+ this.gitInv6 = this.gitInv6 || invert(this.git6);
+ this.gitInv7 = this.gitInv7 || invert(this.git7);
+ this.branchLabelColor = this.branchLabelColor || this.labelTextColor;
+ this.gitBranchLabel0 = this.branchLabelColor;
+ this.gitBranchLabel1 = "white";
+ this.gitBranchLabel2 = this.branchLabelColor;
+ this.gitBranchLabel3 = "white";
+ this.gitBranchLabel4 = this.branchLabelColor;
+ this.gitBranchLabel5 = this.branchLabelColor;
+ this.gitBranchLabel6 = this.branchLabelColor;
+ this.gitBranchLabel7 = this.branchLabelColor;
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys = Object.keys(overrides);
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ this.updateColors();
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ }
+}
+const getThemeVariables = (userOverrides) => {
+ const theme2 = new Theme5();
+ theme2.calculate(userOverrides);
+ return theme2;
+};
+const theme = {
+ base: {
+ getThemeVariables: getThemeVariables$4
+ },
+ dark: {
+ getThemeVariables: getThemeVariables$3
+ },
+ default: {
+ getThemeVariables: getThemeVariables$2
+ },
+ forest: {
+ getThemeVariables: getThemeVariables$1
+ },
+ neutral: {
+ getThemeVariables
+ }
+};
+const config = {
+ /**
+ * Theme , the CSS style sheet
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |
+ * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |
+ *
+ * **Notes:** To disable any pre-defined mermaid theme, use "null".
+ *
+ * @example
+ *
+ * ```js
+ * {
+ * "theme": "forest",
+ * "themeCSS": ".node rect { fill: red; }"
+ * }
+ * ```
+ */
+ theme: "default",
+ themeVariables: theme["default"].getThemeVariables(),
+ themeCSS: void 0,
+ /* **maxTextSize** - The maximum allowed size of the users text diagram */
+ maxTextSize: 5e4,
+ darkMode: false,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |
+ * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'.
+ */
+ fontFamily: '"trebuchet ms", verdana, arial, sans-serif;',
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------------------------------------------------- | ---------------- | -------- | --------------------------------------------- |
+ * | logLevel | This option decides the amount of logging to be used. | string \| number | Required | 'trace','debug','info','warn','error','fatal' |
+ *
+ * **Notes:**
+ *
+ * - Trace: 0
+ * - Debug: 1
+ * - Info: 2
+ * - Warn: 3
+ * - Error: 4
+ * - Fatal: 5 (default)
+ */
+ logLevel: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ |
+ * | securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' |
+ *
+ * **Notes**:
+ *
+ * - **strict**: (**default**) tags in text are encoded, click functionality is disabled
+ * - **loose**: tags in text are allowed, click functionality is enabled
+ * - **antiscript**: html tags in text are allowed, (only script element is removed), click
+ * functionality is enabled
+ * - **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This
+ * prevent any JavaScript from running in the context. This may hinder interactive functionality
+ * of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc.
+ */
+ securityLevel: "strict",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |
+ * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: true
+ */
+ startOnLoad: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |
+ * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |
+ *
+ * **Notes**:
+ *
+ * This matters if you are using base tag settings.
+ *
+ * Default value: false
+ */
+ arrowMarkerAbsolute: false,
+ /**
+ * This option controls which currentConfig keys are considered _secure_ and can only be changed
+ * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the
+ * `secure` keys in the current currentConfig. This prevents malicious graph directives from
+ * overriding a site's default security.
+ *
+ * **Notes**:
+ *
+ * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
+ */
+ secure: ["secure", "securityLevel", "startOnLoad", "maxTextSize"],
+ /**
+ * This option controls if the generated ids of nodes in the SVG are generated randomly or based
+ * on a seed. If set to false, the IDs are generated based on the current date and thus are not
+ * deterministic. This is the default behavior.
+ *
+ * **Notes**:
+ *
+ * This matters if your files are checked into source control e.g. git and should not change unless
+ * content is changed.
+ *
+ * Default value: false
+ */
+ deterministicIds: false,
+ /**
+ * This option is the optional seed for deterministic ids. if set to undefined but
+ * deterministicIds is true, a simple number iterator is used. You can set this attribute to base
+ * the seed on a static string.
+ */
+ deterministicIDSeed: void 0,
+ /** The object containing configurations specific for flowcharts */
+ flowchart: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the flowchart | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
+ * expressed in pixels
+ *
+ * Default value: 8
+ */
+ diagramPadding: 8,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |
+ * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: true.
+ */
+ htmlLabels: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |
+ * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |
+ *
+ * **Notes:**
+ *
+ * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the
+ * vertical spacing for LR as well as RL graphs.**
+ *
+ * Default value: 50
+ */
+ nodeSpacing: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |
+ * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |
+ *
+ * **Notes**:
+ *
+ * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal
+ * spacing for LR as well as RL graphs.
+ *
+ * Default value 50
+ */
+ rankSpacing: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |
+ * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |
+ *
+ * **Notes:**
+ *
+ * Default Value: 'basis'
+ */
+ curve: "basis",
+ // Only used in new experimental rendering
+ // represents the padding between the labels and the shape
+ padding: 15,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper, elk |
+ *
+ * **Notes:**
+ *
+ * Decides which rendering engine that is to be used for the rendering. Legal values are:
+ * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid, elk for layout using
+ * elkjs
+ *
+ * Default value: 'dagre-wrapper'
+ */
+ defaultRenderer: "dagre-wrapper",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | wrappingWidth | See notes | number | 4 | width of nodes where text is wrapped |
+ *
+ * **Notes:**
+ *
+ * When using markdown strings the text ius wrapped automatically, this
+ * value sets the max width of a text before it continues on a new line.
+ * Default value: 'dagre-wrapper'
+ */
+ wrappingWidth: 200
+ },
+ /** The object containing configurations specific for sequence diagrams */
+ sequence: {
+ hideUnusedParticipants: false,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------------- | ------- | -------- | ------------------ |
+ * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value :10
+ */
+ activationWidth: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------- | ------- | -------- | ------------------ |
+ * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ actorMargin: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------- | ------- | -------- | ------------------ |
+ * | width | Width of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 150
+ */
+ width: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | height | Height of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 65
+ */
+ height: 65,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------------ | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 5
+ */
+ boxTextMargin: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------- | ------- | -------- | ------------------ |
+ * | noteMargin | margin around notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ noteMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ---------------------- | ------- | -------- | ------------------ |
+ * | messageMargin | Space between messages | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 35
+ */
+ messageMargin: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ------ | -------- | ------------------------- |
+ * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ messageAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ------- | -------- | ----------- |
+ * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: true
+ */
+ mirrorActors: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |
+ * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |
+ *
+ * **Notes:**
+ *
+ * Default value: false.
+ */
+ forceMenus: false,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
+ * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Depending on css styling this might need adjustment.
+ *
+ * Default value: 1
+ */
+ bottomMarginAdj: 1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
+ * scaling with the available space. If set to false, the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ------------------------------------ | ------- | -------- | ----------- |
+ * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * This will display arrows that start and begin at the same node as right angles, rather than a
+ * curve
+ *
+ * Default value: false
+ */
+ rightAngles: false,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------------- | ------------------------------- | ------- | -------- | ----------- |
+ * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: false
+ */
+ showSequenceNumbers: false,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
+ * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |
+ *
+ * **Notes:** **Default value 14**..
+ */
+ actorFontSize: 14,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |
+ * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: "'Open Sans", sans-serif'
+ */
+ actorFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of the actor's description
+ *
+ * **Notes:** Default value: 400.
+ */
+ actorFontWeight: 400,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |
+ * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 14
+ */
+ noteFontSize: 14,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |
+ * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif'
+ */
+ noteFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
+ /**
+ * This sets the font weight of the note's description
+ *
+ * **Notes:** Default value: 400
+ */
+ noteFontWeight: 400,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |
+ * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ noteAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |
+ * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |
+ *
+ * **Notes:** Default value: 16
+ */
+ messageFontSize: 16,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |
+ * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif'
+ */
+ messageFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
+ /**
+ * This sets the font weight of the message's description
+ *
+ * **Notes:** Default value: 400.
+ */
+ messageFontWeight: 400,
+ /**
+ * This sets the auto-wrap state for the diagram
+ *
+ * **Notes:** Default value: false.
+ */
+ wrap: false,
+ /**
+ * This sets the auto-wrap padding for the diagram (sides only)
+ *
+ * **Notes:** Default value: 0.
+ */
+ wrapPadding: 10,
+ /**
+ * This sets the width of the loop-box (loop, alt, opt, par)
+ *
+ * **Notes:** Default value: 50.
+ */
+ labelBoxWidth: 50,
+ /**
+ * This sets the height of the loop-box (loop, alt, opt, par)
+ *
+ * **Notes:** Default value: 20.
+ */
+ labelBoxHeight: 20,
+ messageFont: function() {
+ return {
+ fontFamily: this.messageFontFamily,
+ fontSize: this.messageFontSize,
+ fontWeight: this.messageFontWeight
+ };
+ },
+ noteFont: function() {
+ return {
+ fontFamily: this.noteFontFamily,
+ fontSize: this.noteFontSize,
+ fontWeight: this.noteFontWeight
+ };
+ },
+ actorFont: function() {
+ return {
+ fontFamily: this.actorFontFamily,
+ fontSize: this.actorFontSize,
+ fontWeight: this.actorFontWeight
+ };
+ }
+ },
+ /** The object containing configurations specific for gantt diagrams */
+ gantt: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------------------------------- | ------- | -------- | ------------------ |
+ * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 20
+ */
+ barHeight: 20,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |
+ *
+ * **Notes:** Default value: 4
+ */
+ barGap: 4,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ topPadding: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 75
+ */
+ rightPadding: 75,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 75
+ */
+ leftPadding: 75,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 35
+ */
+ gridLineStartPadding: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------- | ------- | -------- | ------------------ |
+ * | fontSize | Font size | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 11
+ */
+ fontSize: 11,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------- | ------- | -------- | ------------------ |
+ * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 11
+ */
+ sectionFontSize: 11,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |
+ * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:** Default value: 4
+ */
+ numberSectionStyles: 4,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ------------------------- | ------ | -------- | --------- |
+ * | displayMode | Controls the display mode | string | 4 | 'compact' |
+ *
+ * **Notes**:
+ *
+ * - **compact**: Enables displaying multiple tasks on the same row.
+ */
+ displayMode: "",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ---------------------------- | ---- | -------- | ---------------- |
+ * | axisFormat | Date/time format of the axis | 3 | Required | Date in yy-mm-dd |
+ *
+ * **Notes:**
+ *
+ * This might need adjustment to match your locale and preferences
+ *
+ * Default value: '%Y-%m-%d'.
+ */
+ axisFormat: "%Y-%m-%d",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ------------| ------ | -------- | ------- |
+ * | tickInterval | axis ticks | string | Optional | string |
+ *
+ * **Notes:**
+ *
+ * Pattern is /^([1-9][0-9]*)(minute|hour|day|week|month)$/
+ *
+ * Default value: undefined
+ */
+ tickInterval: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------- | ------- | -------- | ----------- |
+ * | topAxis | See notes | Boolean | 4 | True, False |
+ *
+ * **Notes:** when this flag is set date labels will be added to the top of the chart
+ *
+ * **Default value false**.
+ */
+ topAxis: false,
+ useWidth: void 0
+ },
+ /** The object containing configurations specific for journey diagrams */
+ journey: {
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------- | ------- | -------- | ------------------ |
+ * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ leftMargin: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------- | ------- | -------- | ------------------ |
+ * | width | Width of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 150
+ */
+ width: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | height | Height of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 65
+ */
+ height: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------------ | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 5
+ */
+ boxTextMargin: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------- | ------- | -------- | ------------------ |
+ * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ noteMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ----------------------- | ------- | -------- | ------------------ |
+ * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Space between messages.
+ *
+ * Default value: 35
+ */
+ messageMargin: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
+ * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ messageAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
+ * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Depending on css styling this might need adjustment.
+ *
+ * Default value: 1
+ */
+ bottomMarginAdj: 1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------------------- | ---- | -------- | ----------- |
+ * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * This will display arrows that start and begin at the same node as right angles, rather than a
+ * curves
+ *
+ * Default value: false
+ */
+ rightAngles: false,
+ taskFontSize: 14,
+ taskFontFamily: '"Open Sans", sans-serif',
+ taskMargin: 50,
+ // width of activation box
+ activationWidth: 10,
+ // text placement as: tspan | fo | old only text as before
+ textPlacement: "fo",
+ actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
+ sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
+ sectionColours: ["#fff"]
+ },
+ /** The object containing configurations specific for timeline diagrams */
+ timeline: {
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------- | ------- | -------- | ------------------ |
+ * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ leftMargin: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------- | ------- | -------- | ------------------ |
+ * | width | Width of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 150
+ */
+ width: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | height | Height of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 65
+ */
+ height: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------------ | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 5
+ */
+ boxTextMargin: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------- | ------- | -------- | ------------------ |
+ * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ noteMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ----------------------- | ------- | -------- | ------------------ |
+ * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Space between messages.
+ *
+ * Default value: 35
+ */
+ messageMargin: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
+ * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ messageAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
+ * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Depending on css styling this might need adjustment.
+ *
+ * Default value: 1
+ */
+ bottomMarginAdj: 1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------------------- | ---- | -------- | ----------- |
+ * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * This will display arrows that start and begin at the same node as right angles, rather than a
+ * curves
+ *
+ * Default value: false
+ */
+ rightAngles: false,
+ taskFontSize: 14,
+ taskFontFamily: '"Open Sans", sans-serif',
+ taskMargin: 50,
+ // width of activation box
+ activationWidth: 10,
+ // text placement as: tspan | fo | old only text as before
+ textPlacement: "fo",
+ actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
+ sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
+ sectionColours: ["#fff"],
+ disableMulticolor: false
+ },
+ class: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the class diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ arrowMarkerAbsolute: false,
+ dividerMargin: 10,
+ padding: 5,
+ textHeight: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
+ *
+ * **Notes**:
+ *
+ * Decides which rendering engine that is to be used for the rendering. Legal values are:
+ * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
+ *
+ * Default value: 'dagre-d3'
+ */
+ defaultRenderer: "dagre-wrapper"
+ },
+ state: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the state diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ dividerMargin: 10,
+ sizeUnit: 5,
+ padding: 8,
+ textHeight: 10,
+ titleShift: -15,
+ noteMargin: 10,
+ forkWidth: 70,
+ forkHeight: 7,
+ // Used
+ miniPadding: 2,
+ // Font size factor, this is used to guess the width of the edges labels before rendering by dagre
+ // layout. This might need updating if/when switching font
+ fontSizeFactor: 5.02,
+ fontSize: 24,
+ labelHeight: 16,
+ edgeLengthFactor: "20",
+ compositTitleSize: 35,
+ radius: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
+ *
+ * **Notes:**
+ *
+ * Decides which rendering engine that is to be used for the rendering. Legal values are:
+ * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
+ *
+ * Default value: 'dagre-d3'
+ */
+ defaultRenderer: "dagre-wrapper"
+ },
+ /** The object containing configurations specific for entity relationship diagrams */
+ er: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
+ * expressed in pixels
+ *
+ * Default value: 20
+ */
+ diagramPadding: 20,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |
+ * | layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" |
+ *
+ * **Notes:**
+ *
+ * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.
+ *
+ * T = top, B = bottom, L = left, and R = right.
+ *
+ * Default value: 'TB'
+ */
+ layoutDirection: "TB",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |
+ * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Expressed in pixels. Default value: 100
+ */
+ minEntityWidth: 100,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |
+ * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:** Expressed in pixels Default value: 75
+ */
+ minEntityHeight: 75,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ |
+ * | entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * The minimum internal padding between text in an entity box and the enclosing box borders,
+ * expressed in pixels.
+ *
+ * Default value: 15
+ */
+ entityPadding: 15,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------------------------------- | ------ | -------- | -------------------- |
+ * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |
+ *
+ * **Notes:** Default value: 'gray'
+ */
+ stroke: "gray",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------------- | ------ | -------- | -------------------- |
+ * | fill | Fill color of entity boxes | string | 4 | Any recognized color |
+ *
+ * **Notes:** Default value: 'honeydew'
+ */
+ fill: "honeydew",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------- | ------- | -------- | ------------------ |
+ * | fontSize | Font Size in pixels | Integer | | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Font size (expressed as an integer representing a number of pixels) Default value: 12
+ */
+ fontSize: 12,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set to true, the diagram width is locked to 100% and scaled based on
+ * available space. If set to false, the diagram reserves its absolute width.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true
+ },
+ /** The object containing configurations specific for pie diagrams */
+ pie: {
+ useWidth: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set to true, the diagram width is locked to 100% and scaled based on
+ * available space. If set to false, the diagram reserves its absolute width.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | -------------------------------------------------------------------------------- | ------- | -------- | ------------------- |
+ * | textPosition | Axial position of slice's label from zero at the center to 1 at the outside edge | Number | Optional | Decimal from 0 to 1 |
+ *
+ * **Notes:** Default value: 0.75
+ */
+ textPosition: 0.75
+ },
+ /** The object containing configurations specific for req diagrams */
+ requirement: {
+ useWidth: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set to true, the diagram width is locked to 100% and scaled based on
+ * available space. If set to false, the diagram reserves its absolute width.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ rect_fill: "#f9f9f9",
+ text_color: "#333",
+ rect_border_size: "0.5px",
+ rect_border_color: "#bbb",
+ rect_min_width: 200,
+ rect_min_height: 200,
+ fontSize: 14,
+ rect_padding: 10,
+ line_height: 20
+ },
+ gitGraph: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the Git diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ diagramPadding: 8,
+ nodeLabel: {
+ width: 75,
+ height: 100,
+ x: -25,
+ y: 0
+ },
+ mainBranchName: "main",
+ mainBranchOrder: 0,
+ showCommitLabel: true,
+ showBranches: true,
+ rotateCommitLabel: true
+ },
+ /** The object containing configurations specific for c4 diagrams */
+ c4: {
+ useWidth: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | --------------------- | ------- | -------- | ------------------ |
+ * | c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ c4ShapeMargin: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------- | ------- | -------- | ------------------ |
+ * | c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 20
+ */
+ c4ShapePadding: 20,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | width | Width of person boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 216
+ */
+ width: 216,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ---------------------- | ------- | -------- | ------------------ |
+ * | height | Height of person boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 60
+ */
+ height: 60,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------- | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
+ * scaling with the available space. If set to false, the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ----------- | ------- | -------- | ------------------ |
+ * | c4ShapeInRow | See Notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** How many shapes to place in each row.
+ *
+ * Default value: 4
+ */
+ c4ShapeInRow: 4,
+ nextLinePaddingX: 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ------------------ |
+ * | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** How many boundaries to place in each row.
+ *
+ * Default value: 2
+ */
+ c4BoundaryInRow: 2,
+ /**
+ * This sets the font size of Person shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ personFontSize: 14,
+ /**
+ * This sets the font family of Person shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ personFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Person shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ personFontWeight: "normal",
+ /**
+ * This sets the font size of External Person shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_personFontSize: 14,
+ /**
+ * This sets the font family of External Person shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_personFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Person shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_personFontWeight: "normal",
+ /**
+ * This sets the font size of System shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ systemFontSize: 14,
+ /**
+ * This sets the font family of System shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ systemFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of System shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ systemFontWeight: "normal",
+ /**
+ * This sets the font size of External System shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_systemFontSize: 14,
+ /**
+ * This sets the font family of External System shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_systemFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External System shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_systemFontWeight: "normal",
+ /**
+ * This sets the font size of System DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ system_dbFontSize: 14,
+ /**
+ * This sets the font family of System DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ system_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of System DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ system_dbFontWeight: "normal",
+ /**
+ * This sets the font size of External System DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_system_dbFontSize: 14,
+ /**
+ * This sets the font family of External System DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_system_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External System DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_system_dbFontWeight: "normal",
+ /**
+ * This sets the font size of System Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ system_queueFontSize: 14,
+ /**
+ * This sets the font family of System Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ system_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of System Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ system_queueFontWeight: "normal",
+ /**
+ * This sets the font size of External System Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_system_queueFontSize: 14,
+ /**
+ * This sets the font family of External System Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_system_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External System Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_system_queueFontWeight: "normal",
+ /**
+ * This sets the font size of Boundary shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ boundaryFontSize: 14,
+ /**
+ * This sets the font family of Boundary shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ boundaryFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Boundary shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ boundaryFontWeight: "normal",
+ /**
+ * This sets the font size of Message shape for the diagram
+ *
+ * **Notes:** Default value: 12.
+ */
+ messageFontSize: 12,
+ /**
+ * This sets the font family of Message shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ messageFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Message shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ messageFontWeight: "normal",
+ /**
+ * This sets the font size of Container shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ containerFontSize: 14,
+ /**
+ * This sets the font family of Container shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ containerFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Container shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ containerFontWeight: "normal",
+ /**
+ * This sets the font size of External Container shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_containerFontSize: 14,
+ /**
+ * This sets the font family of External Container shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_containerFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Container shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_containerFontWeight: "normal",
+ /**
+ * This sets the font size of Container DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ container_dbFontSize: 14,
+ /**
+ * This sets the font family of Container DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ container_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Container DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ container_dbFontWeight: "normal",
+ /**
+ * This sets the font size of External Container DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_container_dbFontSize: 14,
+ /**
+ * This sets the font family of External Container DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_container_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Container DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_container_dbFontWeight: "normal",
+ /**
+ * This sets the font size of Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ container_queueFontSize: 14,
+ /**
+ * This sets the font family of Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ container_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ container_queueFontWeight: "normal",
+ /**
+ * This sets the font size of External Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_container_queueFontSize: 14,
+ /**
+ * This sets the font family of External Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_container_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_container_queueFontWeight: "normal",
+ /**
+ * This sets the font size of Component shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ componentFontSize: 14,
+ /**
+ * This sets the font family of Component shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ componentFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Component shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ componentFontWeight: "normal",
+ /**
+ * This sets the font size of External Component shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_componentFontSize: 14,
+ /**
+ * This sets the font family of External Component shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_componentFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Component shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_componentFontWeight: "normal",
+ /**
+ * This sets the font size of Component DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ component_dbFontSize: 14,
+ /**
+ * This sets the font family of Component DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ component_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Component DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ component_dbFontWeight: "normal",
+ /**
+ * This sets the font size of External Component DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_component_dbFontSize: 14,
+ /**
+ * This sets the font family of External Component DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_component_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Component DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_component_dbFontWeight: "normal",
+ /**
+ * This sets the font size of Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ component_queueFontSize: 14,
+ /**
+ * This sets the font family of Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ component_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ component_queueFontWeight: "normal",
+ /**
+ * This sets the font size of External Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_component_queueFontSize: 14,
+ /**
+ * This sets the font family of External Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_component_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_component_queueFontWeight: "normal",
+ /**
+ * This sets the auto-wrap state for the diagram
+ *
+ * **Notes:** Default value: true.
+ */
+ wrap: true,
+ /**
+ * This sets the auto-wrap padding for the diagram (sides only)
+ *
+ * **Notes:** Default value: 0.
+ */
+ wrapPadding: 10,
+ personFont: function() {
+ return {
+ fontFamily: this.personFontFamily,
+ fontSize: this.personFontSize,
+ fontWeight: this.personFontWeight
+ };
+ },
+ external_personFont: function() {
+ return {
+ fontFamily: this.external_personFontFamily,
+ fontSize: this.external_personFontSize,
+ fontWeight: this.external_personFontWeight
+ };
+ },
+ systemFont: function() {
+ return {
+ fontFamily: this.systemFontFamily,
+ fontSize: this.systemFontSize,
+ fontWeight: this.systemFontWeight
+ };
+ },
+ external_systemFont: function() {
+ return {
+ fontFamily: this.external_systemFontFamily,
+ fontSize: this.external_systemFontSize,
+ fontWeight: this.external_systemFontWeight
+ };
+ },
+ system_dbFont: function() {
+ return {
+ fontFamily: this.system_dbFontFamily,
+ fontSize: this.system_dbFontSize,
+ fontWeight: this.system_dbFontWeight
+ };
+ },
+ external_system_dbFont: function() {
+ return {
+ fontFamily: this.external_system_dbFontFamily,
+ fontSize: this.external_system_dbFontSize,
+ fontWeight: this.external_system_dbFontWeight
+ };
+ },
+ system_queueFont: function() {
+ return {
+ fontFamily: this.system_queueFontFamily,
+ fontSize: this.system_queueFontSize,
+ fontWeight: this.system_queueFontWeight
+ };
+ },
+ external_system_queueFont: function() {
+ return {
+ fontFamily: this.external_system_queueFontFamily,
+ fontSize: this.external_system_queueFontSize,
+ fontWeight: this.external_system_queueFontWeight
+ };
+ },
+ containerFont: function() {
+ return {
+ fontFamily: this.containerFontFamily,
+ fontSize: this.containerFontSize,
+ fontWeight: this.containerFontWeight
+ };
+ },
+ external_containerFont: function() {
+ return {
+ fontFamily: this.external_containerFontFamily,
+ fontSize: this.external_containerFontSize,
+ fontWeight: this.external_containerFontWeight
+ };
+ },
+ container_dbFont: function() {
+ return {
+ fontFamily: this.container_dbFontFamily,
+ fontSize: this.container_dbFontSize,
+ fontWeight: this.container_dbFontWeight
+ };
+ },
+ external_container_dbFont: function() {
+ return {
+ fontFamily: this.external_container_dbFontFamily,
+ fontSize: this.external_container_dbFontSize,
+ fontWeight: this.external_container_dbFontWeight
+ };
+ },
+ container_queueFont: function() {
+ return {
+ fontFamily: this.container_queueFontFamily,
+ fontSize: this.container_queueFontSize,
+ fontWeight: this.container_queueFontWeight
+ };
+ },
+ external_container_queueFont: function() {
+ return {
+ fontFamily: this.external_container_queueFontFamily,
+ fontSize: this.external_container_queueFontSize,
+ fontWeight: this.external_container_queueFontWeight
+ };
+ },
+ componentFont: function() {
+ return {
+ fontFamily: this.componentFontFamily,
+ fontSize: this.componentFontSize,
+ fontWeight: this.componentFontWeight
+ };
+ },
+ external_componentFont: function() {
+ return {
+ fontFamily: this.external_componentFontFamily,
+ fontSize: this.external_componentFontSize,
+ fontWeight: this.external_componentFontWeight
+ };
+ },
+ component_dbFont: function() {
+ return {
+ fontFamily: this.component_dbFontFamily,
+ fontSize: this.component_dbFontSize,
+ fontWeight: this.component_dbFontWeight
+ };
+ },
+ external_component_dbFont: function() {
+ return {
+ fontFamily: this.external_component_dbFontFamily,
+ fontSize: this.external_component_dbFontSize,
+ fontWeight: this.external_component_dbFontWeight
+ };
+ },
+ component_queueFont: function() {
+ return {
+ fontFamily: this.component_queueFontFamily,
+ fontSize: this.component_queueFontSize,
+ fontWeight: this.component_queueFontWeight
+ };
+ },
+ external_component_queueFont: function() {
+ return {
+ fontFamily: this.external_component_queueFontFamily,
+ fontSize: this.external_component_queueFontSize,
+ fontWeight: this.external_component_queueFontWeight
+ };
+ },
+ boundaryFont: function() {
+ return {
+ fontFamily: this.boundaryFontFamily,
+ fontSize: this.boundaryFontSize,
+ fontWeight: this.boundaryFontWeight
+ };
+ },
+ messageFont: function() {
+ return {
+ fontFamily: this.messageFontFamily,
+ fontSize: this.messageFontSize,
+ fontWeight: this.messageFontWeight
+ };
+ },
+ // ' Colors
+ // ' ##################################
+ person_bg_color: "#08427B",
+ person_border_color: "#073B6F",
+ external_person_bg_color: "#686868",
+ external_person_border_color: "#8A8A8A",
+ system_bg_color: "#1168BD",
+ system_border_color: "#3C7FC0",
+ system_db_bg_color: "#1168BD",
+ system_db_border_color: "#3C7FC0",
+ system_queue_bg_color: "#1168BD",
+ system_queue_border_color: "#3C7FC0",
+ external_system_bg_color: "#999999",
+ external_system_border_color: "#8A8A8A",
+ external_system_db_bg_color: "#999999",
+ external_system_db_border_color: "#8A8A8A",
+ external_system_queue_bg_color: "#999999",
+ external_system_queue_border_color: "#8A8A8A",
+ container_bg_color: "#438DD5",
+ container_border_color: "#3C7FC0",
+ container_db_bg_color: "#438DD5",
+ container_db_border_color: "#3C7FC0",
+ container_queue_bg_color: "#438DD5",
+ container_queue_border_color: "#3C7FC0",
+ external_container_bg_color: "#B3B3B3",
+ external_container_border_color: "#A6A6A6",
+ external_container_db_bg_color: "#B3B3B3",
+ external_container_db_border_color: "#A6A6A6",
+ external_container_queue_bg_color: "#B3B3B3",
+ external_container_queue_border_color: "#A6A6A6",
+ component_bg_color: "#85BBF0",
+ component_border_color: "#78A8D8",
+ component_db_bg_color: "#85BBF0",
+ component_db_border_color: "#78A8D8",
+ component_queue_bg_color: "#85BBF0",
+ component_queue_border_color: "#78A8D8",
+ external_component_bg_color: "#CCCCCC",
+ external_component_border_color: "#BFBFBF",
+ external_component_db_bg_color: "#CCCCCC",
+ external_component_db_border_color: "#BFBFBF",
+ external_component_queue_bg_color: "#CCCCCC",
+ external_component_queue_border_color: "#BFBFBF"
+ },
+ mindmap: {
+ useMaxWidth: true,
+ padding: 10,
+ maxNodeWidth: 200
+ },
+ fontSize: 16
+};
+if (config.class) {
+ config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
+}
+if (config.gitGraph) {
+ config.gitGraph.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
+}
+const keyify = (obj, prefix = "") => Object.keys(obj).reduce((res, el) => {
+ if (Array.isArray(obj[el])) {
+ return res;
+ } else if (typeof obj[el] === "object" && obj[el] !== null) {
+ return [...res, prefix + el, ...keyify(obj[el], "")];
+ }
+ return [...res, prefix + el];
+}, []);
+const configKeys = keyify(config, "");
+const config$1 = config;
+const assignWithDepth = function(dst, src, config2) {
+ const { depth, clobber } = Object.assign({ depth: 2, clobber: false }, config2);
+ if (Array.isArray(src) && !Array.isArray(dst)) {
+ src.forEach((s) => assignWithDepth(dst, s, config2));
+ return dst;
+ } else if (Array.isArray(src) && Array.isArray(dst)) {
+ src.forEach((s) => {
+ if (!dst.includes(s)) {
+ dst.push(s);
+ }
+ });
+ return dst;
+ }
+ if (dst === void 0 || depth <= 0) {
+ if (dst !== void 0 && dst !== null && typeof dst === "object" && typeof src === "object") {
+ return Object.assign(dst, src);
+ } else {
+ return src;
+ }
+ }
+ if (src !== void 0 && typeof dst === "object" && typeof src === "object") {
+ Object.keys(src).forEach((key) => {
+ if (typeof src[key] === "object" && (dst[key] === void 0 || typeof dst[key] === "object")) {
+ if (dst[key] === void 0) {
+ dst[key] = Array.isArray(src[key]) ? [] : {};
+ }
+ dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });
+ } else if (clobber || typeof dst[key] !== "object" && typeof src[key] !== "object") {
+ dst[key] = src[key];
+ }
+ });
+ }
+ return dst;
+};
+const assignWithDepth$1 = assignWithDepth;
+const defaultConfig = Object.freeze(config$1);
+let siteConfig = assignWithDepth$1({}, defaultConfig);
+let configFromInitialize;
+let directives = [];
+let currentConfig = assignWithDepth$1({}, defaultConfig);
+const updateCurrentConfig = (siteCfg, _directives) => {
+ let cfg = assignWithDepth$1({}, siteCfg);
+ let sumOfDirectives = {};
+ for (const d of _directives) {
+ sanitize(d);
+ sumOfDirectives = assignWithDepth$1(sumOfDirectives, d);
+ }
+ cfg = assignWithDepth$1(cfg, sumOfDirectives);
+ if (sumOfDirectives.theme && sumOfDirectives.theme in theme) {
+ const tmpConfigFromInitialize = assignWithDepth$1({}, configFromInitialize);
+ const themeVariables = assignWithDepth$1(
+ tmpConfigFromInitialize.themeVariables || {},
+ sumOfDirectives.themeVariables
+ );
+ if (cfg.theme && cfg.theme in theme) {
+ cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);
+ }
+ }
+ currentConfig = cfg;
+ checkConfig(currentConfig);
+ return currentConfig;
+};
+const setSiteConfig = (conf) => {
+ siteConfig = assignWithDepth$1({}, defaultConfig);
+ siteConfig = assignWithDepth$1(siteConfig, conf);
+ if (conf.theme && theme[conf.theme]) {
+ siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables);
+ }
+ updateCurrentConfig(siteConfig, directives);
+ return siteConfig;
+};
+const saveConfigFromInitialize = (conf) => {
+ configFromInitialize = assignWithDepth$1({}, conf);
+};
+const updateSiteConfig = (conf) => {
+ siteConfig = assignWithDepth$1(siteConfig, conf);
+ updateCurrentConfig(siteConfig, directives);
+ return siteConfig;
+};
+const getSiteConfig = () => {
+ return assignWithDepth$1({}, siteConfig);
+};
+const setConfig = (conf) => {
+ checkConfig(conf);
+ assignWithDepth$1(currentConfig, conf);
+ return getConfig();
+};
+const getConfig = () => {
+ return assignWithDepth$1({}, currentConfig);
+};
+const sanitize = (options) => {
+ ["secure", ...siteConfig.secure ?? []].forEach((key) => {
+ if (options[key] !== void 0) {
+ log.debug(`Denied attempt to modify a secure key ${key}`, options[key]);
+ delete options[key];
+ }
+ });
+ Object.keys(options).forEach((key) => {
+ if (key.indexOf("__") === 0) {
+ delete options[key];
+ }
+ });
+ Object.keys(options).forEach((key) => {
+ if (typeof options[key] === "string" && (options[key].includes("<") || options[key].includes(">") || options[key].includes("url(data:"))) {
+ delete options[key];
+ }
+ if (typeof options[key] === "object") {
+ sanitize(options[key]);
+ }
+ });
+};
+const addDirective = (directive) => {
+ if (directive.fontFamily) {
+ if (!directive.themeVariables) {
+ directive.themeVariables = { fontFamily: directive.fontFamily };
+ } else {
+ if (!directive.themeVariables.fontFamily) {
+ directive.themeVariables = { fontFamily: directive.fontFamily };
+ }
+ }
+ }
+ directives.push(directive);
+ updateCurrentConfig(siteConfig, directives);
+};
+const reset = (config2 = siteConfig) => {
+ directives = [];
+ updateCurrentConfig(config2, directives);
+};
+var ConfigWarning = /* @__PURE__ */ ((ConfigWarning2) => {
+ ConfigWarning2["LAZY_LOAD_DEPRECATED"] = "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.";
+ return ConfigWarning2;
+})(ConfigWarning || {});
+const issuedWarnings = {};
+const issueWarning = (warning) => {
+ if (issuedWarnings[warning]) {
+ return;
+ }
+ log.warn(ConfigWarning[warning]);
+ issuedWarnings[warning] = true;
+};
+const checkConfig = (config2) => {
+ if (!config2) {
+ return;
+ }
+ if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {
+ issueWarning("LAZY_LOAD_DEPRECATED");
+ }
+};
+let title = "";
+let diagramTitle = "";
+let description = "";
+const sanitizeText = (txt) => sanitizeText$1(txt, getConfig());
+const clear = function() {
+ title = "";
+ description = "";
+ diagramTitle = "";
+};
+const setAccTitle = function(txt) {
+ title = sanitizeText(txt).replace(/^\s+/g, "");
+};
+const getAccTitle = function() {
+ return title || diagramTitle;
+};
+const setAccDescription = function(txt) {
+ description = sanitizeText(txt).replace(/\n\s+/g, "\n");
+};
+const getAccDescription = function() {
+ return description;
+};
+const setDiagramTitle = function(txt) {
+ diagramTitle = sanitizeText(txt);
+};
+const getDiagramTitle = function() {
+ return diagramTitle;
+};
+const commonDb = {
+ getAccTitle,
+ setAccTitle,
+ getDiagramTitle,
+ setDiagramTitle,
+ getAccDescription,
+ setAccDescription,
+ clear
+};
+const commonDb$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ clear,
+ default: commonDb,
+ getAccDescription,
+ getAccTitle,
+ getDiagramTitle,
+ setAccDescription,
+ setAccTitle,
+ setDiagramTitle
+}, Symbol.toStringTag, { value: "Module" }));
+export {
+ addDirective as a,
+ sanitizeText$1 as b,
+ commonDb$1 as c,
+ assignWithDepth$1 as d,
+ common as e,
+ configKeys as f,
+ getConfig as g,
+ setConfig as h,
+ getSiteConfig as i,
+ defaultConfig as j,
+ evaluate as k,
+ log as l,
+ saveConfigFromInitialize as m,
+ setSiteConfig as n,
+ setAccTitle as o,
+ getAccTitle as p,
+ getAccDescription as q,
+ reset as r,
+ setLogLevel as s,
+ theme as t,
+ updateSiteConfig as u,
+ setAccDescription as v,
+ setDiagramTitle as w,
+ getDiagramTitle as x,
+ clear as y,
+ parseGenericTypes as z
+};
+//# sourceMappingURL=commonDb-573409be.js.map
diff --git a/scopegraphs-render-docs/doc/js/commonDb-89160e91.js b/scopegraphs-render-docs/doc/js/commonDb-89160e91.js
new file mode 100644
index 0000000..4a38c49
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/commonDb-89160e91.js
@@ -0,0 +1,7605 @@
+var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
+function getDefaultExportFromCjs(x) {
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
+}
+var dayjs_minExports = {};
+var dayjs_min = {
+ get exports() {
+ return dayjs_minExports;
+ },
+ set exports(v) {
+ dayjs_minExports = v;
+ }
+};
+(function(module, exports) {
+ !function(t, e) {
+ module.exports = e();
+ }(commonjsGlobal, function() {
+ var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", f = "month", h = "quarter", c = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t2) {
+ var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100;
+ return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]";
+ } }, m = function(t2, e2, n2) {
+ var r2 = String(t2);
+ return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2;
+ }, v = { s: m, z: function(t2) {
+ var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60;
+ return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0");
+ }, m: function t2(e2, n2) {
+ if (e2.date() < n2.date())
+ return -t2(n2, e2);
+ var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, f), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), f);
+ return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0);
+ }, a: function(t2) {
+ return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2);
+ }, p: function(t2) {
+ return { M: f, y: c, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: h }[t2] || String(t2 || "").toLowerCase().replace(/s$/, "");
+ }, u: function(t2) {
+ return void 0 === t2;
+ } }, g = "en", D = {};
+ D[g] = M;
+ var p = function(t2) {
+ return t2 instanceof _2;
+ }, S = function t2(e2, n2, r2) {
+ var i2;
+ if (!e2)
+ return g;
+ if ("string" == typeof e2) {
+ var s2 = e2.toLowerCase();
+ D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2);
+ var u2 = e2.split("-");
+ if (!i2 && u2.length > 1)
+ return t2(u2[0]);
+ } else {
+ var a2 = e2.name;
+ D[a2] = e2, i2 = a2;
+ }
+ return !r2 && i2 && (g = i2), i2 || !r2 && g;
+ }, w = function(t2, e2) {
+ if (p(t2))
+ return t2.clone();
+ var n2 = "object" == typeof e2 ? e2 : {};
+ return n2.date = t2, n2.args = arguments, new _2(n2);
+ }, O = v;
+ O.l = S, O.i = p, O.w = function(t2, e2) {
+ return w(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset });
+ };
+ var _2 = function() {
+ function M2(t2) {
+ this.$L = S(t2.locale, null, true), this.parse(t2);
+ }
+ var m2 = M2.prototype;
+ return m2.parse = function(t2) {
+ this.$d = function(t3) {
+ var e2 = t3.date, n2 = t3.utc;
+ if (null === e2)
+ return new Date(NaN);
+ if (O.u(e2))
+ return new Date();
+ if (e2 instanceof Date)
+ return new Date(e2);
+ if ("string" == typeof e2 && !/Z$/i.test(e2)) {
+ var r2 = e2.match($);
+ if (r2) {
+ var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3);
+ return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2);
+ }
+ }
+ return new Date(e2);
+ }(t2), this.$x = t2.x || {}, this.init();
+ }, m2.init = function() {
+ var t2 = this.$d;
+ this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds();
+ }, m2.$utils = function() {
+ return O;
+ }, m2.isValid = function() {
+ return !(this.$d.toString() === l);
+ }, m2.isSame = function(t2, e2) {
+ var n2 = w(t2);
+ return this.startOf(e2) <= n2 && n2 <= this.endOf(e2);
+ }, m2.isAfter = function(t2, e2) {
+ return w(t2) < this.startOf(e2);
+ }, m2.isBefore = function(t2, e2) {
+ return this.endOf(e2) < w(t2);
+ }, m2.$g = function(t2, e2, n2) {
+ return O.u(t2) ? this[e2] : this.set(n2, t2);
+ }, m2.unix = function() {
+ return Math.floor(this.valueOf() / 1e3);
+ }, m2.valueOf = function() {
+ return this.$d.getTime();
+ }, m2.startOf = function(t2, e2) {
+ var n2 = this, r2 = !!O.u(e2) || e2, h2 = O.p(t2), l2 = function(t3, e3) {
+ var i2 = O.w(n2.$u ? Date.UTC(n2.$y, e3, t3) : new Date(n2.$y, e3, t3), n2);
+ return r2 ? i2 : i2.endOf(a);
+ }, $2 = function(t3, e3) {
+ return O.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n2);
+ }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : "");
+ switch (h2) {
+ case c:
+ return r2 ? l2(1, 0) : l2(31, 11);
+ case f:
+ return r2 ? l2(1, M3) : l2(0, M3 + 1);
+ case o:
+ var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2;
+ return l2(r2 ? m3 - D2 : m3 + (6 - D2), M3);
+ case a:
+ case d:
+ return $2(v2 + "Hours", 0);
+ case u:
+ return $2(v2 + "Minutes", 1);
+ case s:
+ return $2(v2 + "Seconds", 2);
+ case i:
+ return $2(v2 + "Milliseconds", 3);
+ default:
+ return this.clone();
+ }
+ }, m2.endOf = function(t2) {
+ return this.startOf(t2, false);
+ }, m2.$set = function(t2, e2) {
+ var n2, o2 = O.p(t2), h2 = "set" + (this.$u ? "UTC" : ""), l2 = (n2 = {}, n2[a] = h2 + "Date", n2[d] = h2 + "Date", n2[f] = h2 + "Month", n2[c] = h2 + "FullYear", n2[u] = h2 + "Hours", n2[s] = h2 + "Minutes", n2[i] = h2 + "Seconds", n2[r] = h2 + "Milliseconds", n2)[o2], $2 = o2 === a ? this.$D + (e2 - this.$W) : e2;
+ if (o2 === f || o2 === c) {
+ var y2 = this.clone().set(d, 1);
+ y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d;
+ } else
+ l2 && this.$d[l2]($2);
+ return this.init(), this;
+ }, m2.set = function(t2, e2) {
+ return this.clone().$set(t2, e2);
+ }, m2.get = function(t2) {
+ return this[O.p(t2)]();
+ }, m2.add = function(r2, h2) {
+ var d2, l2 = this;
+ r2 = Number(r2);
+ var $2 = O.p(h2), y2 = function(t2) {
+ var e2 = w(l2);
+ return O.w(e2.date(e2.date() + Math.round(t2 * r2)), l2);
+ };
+ if ($2 === f)
+ return this.set(f, this.$M + r2);
+ if ($2 === c)
+ return this.set(c, this.$y + r2);
+ if ($2 === a)
+ return y2(1);
+ if ($2 === o)
+ return y2(7);
+ var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t, d2)[$2] || 1, m3 = this.$d.getTime() + r2 * M3;
+ return O.w(m3, this);
+ }, m2.subtract = function(t2, e2) {
+ return this.add(-1 * t2, e2);
+ }, m2.format = function(t2) {
+ var e2 = this, n2 = this.$locale();
+ if (!this.isValid())
+ return n2.invalidDate || l;
+ var r2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", i2 = O.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, f2 = n2.months, h2 = function(t3, n3, i3, s3) {
+ return t3 && (t3[n3] || t3(e2, r2)) || i3[n3].slice(0, s3);
+ }, c2 = function(t3) {
+ return O.s(s2 % 12 || 12, t3, "0");
+ }, d2 = n2.meridiem || function(t3, e3, n3) {
+ var r3 = t3 < 12 ? "AM" : "PM";
+ return n3 ? r3.toLowerCase() : r3;
+ }, $2 = { YY: String(this.$y).slice(-2), YYYY: this.$y, M: a2 + 1, MM: O.s(a2 + 1, 2, "0"), MMM: h2(n2.monthsShort, a2, f2, 3), MMMM: h2(f2, a2), D: this.$D, DD: O.s(this.$D, 2, "0"), d: String(this.$W), dd: h2(n2.weekdaysMin, this.$W, o2, 2), ddd: h2(n2.weekdaysShort, this.$W, o2, 3), dddd: o2[this.$W], H: String(s2), HH: O.s(s2, 2, "0"), h: c2(1), hh: c2(2), a: d2(s2, u2, true), A: d2(s2, u2, false), m: String(u2), mm: O.s(u2, 2, "0"), s: String(this.$s), ss: O.s(this.$s, 2, "0"), SSS: O.s(this.$ms, 3, "0"), Z: i2 };
+ return r2.replace(y, function(t3, e3) {
+ return e3 || $2[t3] || i2.replace(":", "");
+ });
+ }, m2.utcOffset = function() {
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
+ }, m2.diff = function(r2, d2, l2) {
+ var $2, y2 = O.p(d2), M3 = w(r2), m3 = (M3.utcOffset() - this.utcOffset()) * e, v2 = this - M3, g2 = O.m(this, M3);
+ return g2 = ($2 = {}, $2[c] = g2 / 12, $2[f] = g2, $2[h] = g2 / 3, $2[o] = (v2 - m3) / 6048e5, $2[a] = (v2 - m3) / 864e5, $2[u] = v2 / n, $2[s] = v2 / e, $2[i] = v2 / t, $2)[y2] || v2, l2 ? g2 : O.a(g2);
+ }, m2.daysInMonth = function() {
+ return this.endOf(f).$D;
+ }, m2.$locale = function() {
+ return D[this.$L];
+ }, m2.locale = function(t2, e2) {
+ if (!t2)
+ return this.$L;
+ var n2 = this.clone(), r2 = S(t2, e2, true);
+ return r2 && (n2.$L = r2), n2;
+ }, m2.clone = function() {
+ return O.w(this.$d, this);
+ }, m2.toDate = function() {
+ return new Date(this.valueOf());
+ }, m2.toJSON = function() {
+ return this.isValid() ? this.toISOString() : null;
+ }, m2.toISOString = function() {
+ return this.$d.toISOString();
+ }, m2.toString = function() {
+ return this.$d.toUTCString();
+ }, M2;
+ }(), T = _2.prototype;
+ return w.prototype = T, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", f], ["$y", c], ["$D", d]].forEach(function(t2) {
+ T[t2[1]] = function(e2) {
+ return this.$g(e2, t2[0], t2[1]);
+ };
+ }), w.extend = function(t2, e2) {
+ return t2.$i || (t2(e2, _2, w), t2.$i = true), w;
+ }, w.locale = S, w.isDayjs = p, w.unix = function(t2) {
+ return w(1e3 * t2);
+ }, w.en = D[g], w.Ls = D, w.p = {}, w;
+ });
+})(dayjs_min);
+const dayjs = dayjs_minExports;
+const LEVELS = {
+ trace: 0,
+ debug: 1,
+ info: 2,
+ warn: 3,
+ error: 4,
+ fatal: 5
+};
+const log = {
+ trace: (..._args) => {
+ },
+ debug: (..._args) => {
+ },
+ info: (..._args) => {
+ },
+ warn: (..._args) => {
+ },
+ error: (..._args) => {
+ },
+ fatal: (..._args) => {
+ }
+};
+const setLogLevel = function(level = "fatal") {
+ let numericLevel = LEVELS.fatal;
+ if (typeof level === "string") {
+ level = level.toLowerCase();
+ if (level in LEVELS) {
+ numericLevel = LEVELS[level];
+ }
+ } else if (typeof level === "number") {
+ numericLevel = level;
+ }
+ log.trace = () => {
+ };
+ log.debug = () => {
+ };
+ log.info = () => {
+ };
+ log.warn = () => {
+ };
+ log.error = () => {
+ };
+ log.fatal = () => {
+ };
+ if (numericLevel <= LEVELS.fatal) {
+ log.fatal = console.error ? console.error.bind(console, format("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", format("FATAL"));
+ }
+ if (numericLevel <= LEVELS.error) {
+ log.error = console.error ? console.error.bind(console, format("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", format("ERROR"));
+ }
+ if (numericLevel <= LEVELS.warn) {
+ log.warn = console.warn ? console.warn.bind(console, format("WARN"), "color: orange") : console.log.bind(console, `\x1B[33m`, format("WARN"));
+ }
+ if (numericLevel <= LEVELS.info) {
+ log.info = console.info ? console.info.bind(console, format("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", format("INFO"));
+ }
+ if (numericLevel <= LEVELS.debug) {
+ log.debug = console.debug ? console.debug.bind(console, format("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("DEBUG"));
+ }
+ if (numericLevel <= LEVELS.trace) {
+ log.trace = console.debug ? console.debug.bind(console, format("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("TRACE"));
+ }
+};
+const format = (level) => {
+ const time = dayjs().format("ss.SSS");
+ return `%c${time} : ${level} : `;
+};
+var noop = { value: () => {
+} };
+function dispatch() {
+ for (var i = 0, n = arguments.length, _2 = {}, t; i < n; ++i) {
+ if (!(t = arguments[i] + "") || t in _2 || /[\s.]/.test(t))
+ throw new Error("illegal type: " + t);
+ _2[t] = [];
+ }
+ return new Dispatch(_2);
+}
+function Dispatch(_2) {
+ this._ = _2;
+}
+function parseTypenames$1(typenames, types) {
+ return typenames.trim().split(/^|\s+/).map(function(t) {
+ var name = "", i = t.indexOf(".");
+ if (i >= 0)
+ name = t.slice(i + 1), t = t.slice(0, i);
+ if (t && !types.hasOwnProperty(t))
+ throw new Error("unknown type: " + t);
+ return { type: t, name };
+ });
+}
+Dispatch.prototype = dispatch.prototype = {
+ constructor: Dispatch,
+ on: function(typename, callback) {
+ var _2 = this._, T = parseTypenames$1(typename + "", _2), t, i = -1, n = T.length;
+ if (arguments.length < 2) {
+ while (++i < n)
+ if ((t = (typename = T[i]).type) && (t = get$1(_2[t], typename.name)))
+ return t;
+ return;
+ }
+ if (callback != null && typeof callback !== "function")
+ throw new Error("invalid callback: " + callback);
+ while (++i < n) {
+ if (t = (typename = T[i]).type)
+ _2[t] = set$1(_2[t], typename.name, callback);
+ else if (callback == null)
+ for (t in _2)
+ _2[t] = set$1(_2[t], typename.name, null);
+ }
+ return this;
+ },
+ copy: function() {
+ var copy = {}, _2 = this._;
+ for (var t in _2)
+ copy[t] = _2[t].slice();
+ return new Dispatch(copy);
+ },
+ call: function(type, that) {
+ if ((n = arguments.length - 2) > 0)
+ for (var args = new Array(n), i = 0, n, t; i < n; ++i)
+ args[i] = arguments[i + 2];
+ if (!this._.hasOwnProperty(type))
+ throw new Error("unknown type: " + type);
+ for (t = this._[type], i = 0, n = t.length; i < n; ++i)
+ t[i].value.apply(that, args);
+ },
+ apply: function(type, that, args) {
+ if (!this._.hasOwnProperty(type))
+ throw new Error("unknown type: " + type);
+ for (var t = this._[type], i = 0, n = t.length; i < n; ++i)
+ t[i].value.apply(that, args);
+ }
+};
+function get$1(type, name) {
+ for (var i = 0, n = type.length, c; i < n; ++i) {
+ if ((c = type[i]).name === name) {
+ return c.value;
+ }
+ }
+}
+function set$1(type, name, callback) {
+ for (var i = 0, n = type.length; i < n; ++i) {
+ if (type[i].name === name) {
+ type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));
+ break;
+ }
+ }
+ if (callback != null)
+ type.push({ name, value: callback });
+ return type;
+}
+var xhtml = "http://www.w3.org/1999/xhtml";
+const namespaces = {
+ svg: "http://www.w3.org/2000/svg",
+ xhtml,
+ xlink: "http://www.w3.org/1999/xlink",
+ xml: "http://www.w3.org/XML/1998/namespace",
+ xmlns: "http://www.w3.org/2000/xmlns/"
+};
+function namespace(name) {
+ var prefix = name += "", i = prefix.indexOf(":");
+ if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns")
+ name = name.slice(i + 1);
+ return namespaces.hasOwnProperty(prefix) ? { space: namespaces[prefix], local: name } : name;
+}
+function creatorInherit(name) {
+ return function() {
+ var document2 = this.ownerDocument, uri = this.namespaceURI;
+ return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name) : document2.createElementNS(uri, name);
+ };
+}
+function creatorFixed(fullname) {
+ return function() {
+ return this.ownerDocument.createElementNS(fullname.space, fullname.local);
+ };
+}
+function creator(name) {
+ var fullname = namespace(name);
+ return (fullname.local ? creatorFixed : creatorInherit)(fullname);
+}
+function none() {
+}
+function selector(selector2) {
+ return selector2 == null ? none : function() {
+ return this.querySelector(selector2);
+ };
+}
+function selection_select(select2) {
+ if (typeof select2 !== "function")
+ select2 = selector(select2);
+ for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
+ for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
+ if ((node = group[i]) && (subnode = select2.call(node, node.__data__, i, group))) {
+ if ("__data__" in node)
+ subnode.__data__ = node.__data__;
+ subgroup[i] = subnode;
+ }
+ }
+ }
+ return new Selection$1(subgroups, this._parents);
+}
+function array(x) {
+ return x == null ? [] : Array.isArray(x) ? x : Array.from(x);
+}
+function empty() {
+ return [];
+}
+function selectorAll(selector2) {
+ return selector2 == null ? empty : function() {
+ return this.querySelectorAll(selector2);
+ };
+}
+function arrayAll(select2) {
+ return function() {
+ return array(select2.apply(this, arguments));
+ };
+}
+function selection_selectAll(select2) {
+ if (typeof select2 === "function")
+ select2 = arrayAll(select2);
+ else
+ select2 = selectorAll(select2);
+ for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
+ for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
+ if (node = group[i]) {
+ subgroups.push(select2.call(node, node.__data__, i, group));
+ parents.push(node);
+ }
+ }
+ }
+ return new Selection$1(subgroups, parents);
+}
+function matcher(selector2) {
+ return function() {
+ return this.matches(selector2);
+ };
+}
+function childMatcher(selector2) {
+ return function(node) {
+ return node.matches(selector2);
+ };
+}
+var find = Array.prototype.find;
+function childFind(match) {
+ return function() {
+ return find.call(this.children, match);
+ };
+}
+function childFirst() {
+ return this.firstElementChild;
+}
+function selection_selectChild(match) {
+ return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match)));
+}
+var filter = Array.prototype.filter;
+function children() {
+ return Array.from(this.children);
+}
+function childrenFilter(match) {
+ return function() {
+ return filter.call(this.children, match);
+ };
+}
+function selection_selectChildren(match) {
+ return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match)));
+}
+function selection_filter(match) {
+ if (typeof match !== "function")
+ match = matcher(match);
+ for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
+ for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
+ if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
+ subgroup.push(node);
+ }
+ }
+ }
+ return new Selection$1(subgroups, this._parents);
+}
+function sparse(update) {
+ return new Array(update.length);
+}
+function selection_enter() {
+ return new Selection$1(this._enter || this._groups.map(sparse), this._parents);
+}
+function EnterNode(parent, datum2) {
+ this.ownerDocument = parent.ownerDocument;
+ this.namespaceURI = parent.namespaceURI;
+ this._next = null;
+ this._parent = parent;
+ this.__data__ = datum2;
+}
+EnterNode.prototype = {
+ constructor: EnterNode,
+ appendChild: function(child) {
+ return this._parent.insertBefore(child, this._next);
+ },
+ insertBefore: function(child, next) {
+ return this._parent.insertBefore(child, next);
+ },
+ querySelector: function(selector2) {
+ return this._parent.querySelector(selector2);
+ },
+ querySelectorAll: function(selector2) {
+ return this._parent.querySelectorAll(selector2);
+ }
+};
+function constant$1(x) {
+ return function() {
+ return x;
+ };
+}
+function bindIndex(parent, group, enter, update, exit, data) {
+ var i = 0, node, groupLength = group.length, dataLength = data.length;
+ for (; i < dataLength; ++i) {
+ if (node = group[i]) {
+ node.__data__ = data[i];
+ update[i] = node;
+ } else {
+ enter[i] = new EnterNode(parent, data[i]);
+ }
+ }
+ for (; i < groupLength; ++i) {
+ if (node = group[i]) {
+ exit[i] = node;
+ }
+ }
+}
+function bindKey(parent, group, enter, update, exit, data, key) {
+ var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;
+ for (i = 0; i < groupLength; ++i) {
+ if (node = group[i]) {
+ keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + "";
+ if (nodeByKeyValue.has(keyValue)) {
+ exit[i] = node;
+ } else {
+ nodeByKeyValue.set(keyValue, node);
+ }
+ }
+ }
+ for (i = 0; i < dataLength; ++i) {
+ keyValue = key.call(parent, data[i], i, data) + "";
+ if (node = nodeByKeyValue.get(keyValue)) {
+ update[i] = node;
+ node.__data__ = data[i];
+ nodeByKeyValue.delete(keyValue);
+ } else {
+ enter[i] = new EnterNode(parent, data[i]);
+ }
+ }
+ for (i = 0; i < groupLength; ++i) {
+ if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) {
+ exit[i] = node;
+ }
+ }
+}
+function datum(node) {
+ return node.__data__;
+}
+function selection_data(value, key) {
+ if (!arguments.length)
+ return Array.from(this, datum);
+ var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups;
+ if (typeof value !== "function")
+ value = constant$1(value);
+ for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
+ var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);
+ bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
+ for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
+ if (previous = enterGroup[i0]) {
+ if (i0 >= i1)
+ i1 = i0 + 1;
+ while (!(next = updateGroup[i1]) && ++i1 < dataLength)
+ ;
+ previous._next = next || null;
+ }
+ }
+ }
+ update = new Selection$1(update, parents);
+ update._enter = enter;
+ update._exit = exit;
+ return update;
+}
+function arraylike(data) {
+ return typeof data === "object" && "length" in data ? data : Array.from(data);
+}
+function selection_exit() {
+ return new Selection$1(this._exit || this._groups.map(sparse), this._parents);
+}
+function selection_join(onenter, onupdate, onexit) {
+ var enter = this.enter(), update = this, exit = this.exit();
+ if (typeof onenter === "function") {
+ enter = onenter(enter);
+ if (enter)
+ enter = enter.selection();
+ } else {
+ enter = enter.append(onenter + "");
+ }
+ if (onupdate != null) {
+ update = onupdate(update);
+ if (update)
+ update = update.selection();
+ }
+ if (onexit == null)
+ exit.remove();
+ else
+ onexit(exit);
+ return enter && update ? enter.merge(update).order() : update;
+}
+function selection_merge(context) {
+ var selection2 = context.selection ? context.selection() : context;
+ for (var groups0 = this._groups, groups1 = selection2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
+ for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
+ if (node = group0[i] || group1[i]) {
+ merge[i] = node;
+ }
+ }
+ }
+ for (; j < m0; ++j) {
+ merges[j] = groups0[j];
+ }
+ return new Selection$1(merges, this._parents);
+}
+function selection_order() {
+ for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) {
+ for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
+ if (node = group[i]) {
+ if (next && node.compareDocumentPosition(next) ^ 4)
+ next.parentNode.insertBefore(node, next);
+ next = node;
+ }
+ }
+ }
+ return this;
+}
+function selection_sort(compare) {
+ if (!compare)
+ compare = ascending;
+ function compareNode(a, b) {
+ return a && b ? compare(a.__data__, b.__data__) : !a - !b;
+ }
+ for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
+ for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
+ if (node = group[i]) {
+ sortgroup[i] = node;
+ }
+ }
+ sortgroup.sort(compareNode);
+ }
+ return new Selection$1(sortgroups, this._parents).order();
+}
+function ascending(a, b) {
+ return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
+}
+function selection_call() {
+ var callback = arguments[0];
+ arguments[0] = this;
+ callback.apply(null, arguments);
+ return this;
+}
+function selection_nodes() {
+ return Array.from(this);
+}
+function selection_node() {
+ for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
+ for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
+ var node = group[i];
+ if (node)
+ return node;
+ }
+ }
+ return null;
+}
+function selection_size() {
+ let size = 0;
+ for (const node of this)
+ ++size;
+ return size;
+}
+function selection_empty() {
+ return !this.node();
+}
+function selection_each(callback) {
+ for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
+ for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
+ if (node = group[i])
+ callback.call(node, node.__data__, i, group);
+ }
+ }
+ return this;
+}
+function attrRemove$1(name) {
+ return function() {
+ this.removeAttribute(name);
+ };
+}
+function attrRemoveNS$1(fullname) {
+ return function() {
+ this.removeAttributeNS(fullname.space, fullname.local);
+ };
+}
+function attrConstant$1(name, value) {
+ return function() {
+ this.setAttribute(name, value);
+ };
+}
+function attrConstantNS$1(fullname, value) {
+ return function() {
+ this.setAttributeNS(fullname.space, fullname.local, value);
+ };
+}
+function attrFunction$1(name, value) {
+ return function() {
+ var v = value.apply(this, arguments);
+ if (v == null)
+ this.removeAttribute(name);
+ else
+ this.setAttribute(name, v);
+ };
+}
+function attrFunctionNS$1(fullname, value) {
+ return function() {
+ var v = value.apply(this, arguments);
+ if (v == null)
+ this.removeAttributeNS(fullname.space, fullname.local);
+ else
+ this.setAttributeNS(fullname.space, fullname.local, v);
+ };
+}
+function selection_attr(name, value) {
+ var fullname = namespace(name);
+ if (arguments.length < 2) {
+ var node = this.node();
+ return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);
+ }
+ return this.each((value == null ? fullname.local ? attrRemoveNS$1 : attrRemove$1 : typeof value === "function" ? fullname.local ? attrFunctionNS$1 : attrFunction$1 : fullname.local ? attrConstantNS$1 : attrConstant$1)(fullname, value));
+}
+function defaultView(node) {
+ return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView;
+}
+function styleRemove$1(name) {
+ return function() {
+ this.style.removeProperty(name);
+ };
+}
+function styleConstant$1(name, value, priority) {
+ return function() {
+ this.style.setProperty(name, value, priority);
+ };
+}
+function styleFunction$1(name, value, priority) {
+ return function() {
+ var v = value.apply(this, arguments);
+ if (v == null)
+ this.style.removeProperty(name);
+ else
+ this.style.setProperty(name, v, priority);
+ };
+}
+function selection_style(name, value, priority) {
+ return arguments.length > 1 ? this.each((value == null ? styleRemove$1 : typeof value === "function" ? styleFunction$1 : styleConstant$1)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name);
+}
+function styleValue(node, name) {
+ return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);
+}
+function propertyRemove(name) {
+ return function() {
+ delete this[name];
+ };
+}
+function propertyConstant(name, value) {
+ return function() {
+ this[name] = value;
+ };
+}
+function propertyFunction(name, value) {
+ return function() {
+ var v = value.apply(this, arguments);
+ if (v == null)
+ delete this[name];
+ else
+ this[name] = v;
+ };
+}
+function selection_property(name, value) {
+ return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];
+}
+function classArray(string) {
+ return string.trim().split(/^|\s+/);
+}
+function classList(node) {
+ return node.classList || new ClassList(node);
+}
+function ClassList(node) {
+ this._node = node;
+ this._names = classArray(node.getAttribute("class") || "");
+}
+ClassList.prototype = {
+ add: function(name) {
+ var i = this._names.indexOf(name);
+ if (i < 0) {
+ this._names.push(name);
+ this._node.setAttribute("class", this._names.join(" "));
+ }
+ },
+ remove: function(name) {
+ var i = this._names.indexOf(name);
+ if (i >= 0) {
+ this._names.splice(i, 1);
+ this._node.setAttribute("class", this._names.join(" "));
+ }
+ },
+ contains: function(name) {
+ return this._names.indexOf(name) >= 0;
+ }
+};
+function classedAdd(node, names) {
+ var list = classList(node), i = -1, n = names.length;
+ while (++i < n)
+ list.add(names[i]);
+}
+function classedRemove(node, names) {
+ var list = classList(node), i = -1, n = names.length;
+ while (++i < n)
+ list.remove(names[i]);
+}
+function classedTrue(names) {
+ return function() {
+ classedAdd(this, names);
+ };
+}
+function classedFalse(names) {
+ return function() {
+ classedRemove(this, names);
+ };
+}
+function classedFunction(names, value) {
+ return function() {
+ (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
+ };
+}
+function selection_classed(name, value) {
+ var names = classArray(name + "");
+ if (arguments.length < 2) {
+ var list = classList(this.node()), i = -1, n = names.length;
+ while (++i < n)
+ if (!list.contains(names[i]))
+ return false;
+ return true;
+ }
+ return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value));
+}
+function textRemove() {
+ this.textContent = "";
+}
+function textConstant$1(value) {
+ return function() {
+ this.textContent = value;
+ };
+}
+function textFunction$1(value) {
+ return function() {
+ var v = value.apply(this, arguments);
+ this.textContent = v == null ? "" : v;
+ };
+}
+function selection_text(value) {
+ return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction$1 : textConstant$1)(value)) : this.node().textContent;
+}
+function htmlRemove() {
+ this.innerHTML = "";
+}
+function htmlConstant(value) {
+ return function() {
+ this.innerHTML = value;
+ };
+}
+function htmlFunction(value) {
+ return function() {
+ var v = value.apply(this, arguments);
+ this.innerHTML = v == null ? "" : v;
+ };
+}
+function selection_html(value) {
+ return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;
+}
+function raise() {
+ if (this.nextSibling)
+ this.parentNode.appendChild(this);
+}
+function selection_raise() {
+ return this.each(raise);
+}
+function lower() {
+ if (this.previousSibling)
+ this.parentNode.insertBefore(this, this.parentNode.firstChild);
+}
+function selection_lower() {
+ return this.each(lower);
+}
+function selection_append(name) {
+ var create2 = typeof name === "function" ? name : creator(name);
+ return this.select(function() {
+ return this.appendChild(create2.apply(this, arguments));
+ });
+}
+function constantNull() {
+ return null;
+}
+function selection_insert(name, before) {
+ var create2 = typeof name === "function" ? name : creator(name), select2 = before == null ? constantNull : typeof before === "function" ? before : selector(before);
+ return this.select(function() {
+ return this.insertBefore(create2.apply(this, arguments), select2.apply(this, arguments) || null);
+ });
+}
+function remove() {
+ var parent = this.parentNode;
+ if (parent)
+ parent.removeChild(this);
+}
+function selection_remove() {
+ return this.each(remove);
+}
+function selection_cloneShallow() {
+ var clone2 = this.cloneNode(false), parent = this.parentNode;
+ return parent ? parent.insertBefore(clone2, this.nextSibling) : clone2;
+}
+function selection_cloneDeep() {
+ var clone2 = this.cloneNode(true), parent = this.parentNode;
+ return parent ? parent.insertBefore(clone2, this.nextSibling) : clone2;
+}
+function selection_clone(deep) {
+ return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
+}
+function selection_datum(value) {
+ return arguments.length ? this.property("__data__", value) : this.node().__data__;
+}
+function contextListener(listener) {
+ return function(event) {
+ listener.call(this, event, this.__data__);
+ };
+}
+function parseTypenames(typenames) {
+ return typenames.trim().split(/^|\s+/).map(function(t) {
+ var name = "", i = t.indexOf(".");
+ if (i >= 0)
+ name = t.slice(i + 1), t = t.slice(0, i);
+ return { type: t, name };
+ });
+}
+function onRemove(typename) {
+ return function() {
+ var on = this.__on;
+ if (!on)
+ return;
+ for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
+ if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
+ this.removeEventListener(o.type, o.listener, o.options);
+ } else {
+ on[++i] = o;
+ }
+ }
+ if (++i)
+ on.length = i;
+ else
+ delete this.__on;
+ };
+}
+function onAdd(typename, value, options) {
+ return function() {
+ var on = this.__on, o, listener = contextListener(value);
+ if (on)
+ for (var j = 0, m = on.length; j < m; ++j) {
+ if ((o = on[j]).type === typename.type && o.name === typename.name) {
+ this.removeEventListener(o.type, o.listener, o.options);
+ this.addEventListener(o.type, o.listener = listener, o.options = options);
+ o.value = value;
+ return;
+ }
+ }
+ this.addEventListener(typename.type, listener, options);
+ o = { type: typename.type, name: typename.name, value, listener, options };
+ if (!on)
+ this.__on = [o];
+ else
+ on.push(o);
+ };
+}
+function selection_on(typename, value, options) {
+ var typenames = parseTypenames(typename + ""), i, n = typenames.length, t;
+ if (arguments.length < 2) {
+ var on = this.node().__on;
+ if (on)
+ for (var j = 0, m = on.length, o; j < m; ++j) {
+ for (i = 0, o = on[j]; i < n; ++i) {
+ if ((t = typenames[i]).type === o.type && t.name === o.name) {
+ return o.value;
+ }
+ }
+ }
+ return;
+ }
+ on = value ? onAdd : onRemove;
+ for (i = 0; i < n; ++i)
+ this.each(on(typenames[i], value, options));
+ return this;
+}
+function dispatchEvent(node, type, params) {
+ var window2 = defaultView(node), event = window2.CustomEvent;
+ if (typeof event === "function") {
+ event = new event(type, params);
+ } else {
+ event = window2.document.createEvent("Event");
+ if (params)
+ event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
+ else
+ event.initEvent(type, false, false);
+ }
+ node.dispatchEvent(event);
+}
+function dispatchConstant(type, params) {
+ return function() {
+ return dispatchEvent(this, type, params);
+ };
+}
+function dispatchFunction(type, params) {
+ return function() {
+ return dispatchEvent(this, type, params.apply(this, arguments));
+ };
+}
+function selection_dispatch(type, params) {
+ return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type, params));
+}
+function* selection_iterator() {
+ for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
+ for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
+ if (node = group[i])
+ yield node;
+ }
+ }
+}
+var root = [null];
+function Selection$1(groups, parents) {
+ this._groups = groups;
+ this._parents = parents;
+}
+function selection() {
+ return new Selection$1([[document.documentElement]], root);
+}
+function selection_selection() {
+ return this;
+}
+Selection$1.prototype = selection.prototype = {
+ constructor: Selection$1,
+ select: selection_select,
+ selectAll: selection_selectAll,
+ selectChild: selection_selectChild,
+ selectChildren: selection_selectChildren,
+ filter: selection_filter,
+ data: selection_data,
+ enter: selection_enter,
+ exit: selection_exit,
+ join: selection_join,
+ merge: selection_merge,
+ selection: selection_selection,
+ order: selection_order,
+ sort: selection_sort,
+ call: selection_call,
+ nodes: selection_nodes,
+ node: selection_node,
+ size: selection_size,
+ empty: selection_empty,
+ each: selection_each,
+ attr: selection_attr,
+ style: selection_style,
+ property: selection_property,
+ classed: selection_classed,
+ text: selection_text,
+ html: selection_html,
+ raise: selection_raise,
+ lower: selection_lower,
+ append: selection_append,
+ insert: selection_insert,
+ remove: selection_remove,
+ clone: selection_clone,
+ datum: selection_datum,
+ on: selection_on,
+ dispatch: selection_dispatch,
+ [Symbol.iterator]: selection_iterator
+};
+function select(selector2) {
+ return typeof selector2 === "string" ? new Selection$1([[document.querySelector(selector2)]], [document.documentElement]) : new Selection$1([[selector2]], root);
+}
+function define(constructor, factory, prototype) {
+ constructor.prototype = factory.prototype = prototype;
+ prototype.constructor = constructor;
+}
+function extend(parent, definition) {
+ var prototype = Object.create(parent.prototype);
+ for (var key in definition)
+ prototype[key] = definition[key];
+ return prototype;
+}
+function Color$2() {
+}
+var darker = 0.7;
+var brighter = 1 / darker;
+var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
+var named = {
+ 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
+};
+define(Color$2, color, {
+ copy(channels2) {
+ return Object.assign(new this.constructor(), this, channels2);
+ },
+ displayable() {
+ return this.rgb().displayable();
+ },
+ hex: color_formatHex,
+ // Deprecated! Use color.formatHex.
+ formatHex: color_formatHex,
+ formatHex8: color_formatHex8,
+ formatHsl: color_formatHsl,
+ formatRgb: color_formatRgb,
+ toString: color_formatRgb
+});
+function color_formatHex() {
+ return this.rgb().formatHex();
+}
+function color_formatHex8() {
+ return this.rgb().formatHex8();
+}
+function color_formatHsl() {
+ return hslConvert(this).formatHsl();
+}
+function color_formatRgb() {
+ return this.rgb().formatRgb();
+}
+function color(format2) {
+ var m, l;
+ format2 = (format2 + "").trim().toLowerCase();
+ return (m = reHex.exec(format2)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba$2(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba$2(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format2)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format2)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format2)) ? rgba$2(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format2)) ? rgba$2(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format2)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format2)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format2) ? rgbn(named[format2]) : format2 === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null;
+}
+function rgbn(n) {
+ return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);
+}
+function rgba$2(r, g, b, a) {
+ if (a <= 0)
+ r = g = b = NaN;
+ return new Rgb(r, g, b, a);
+}
+function rgbConvert(o) {
+ if (!(o instanceof Color$2))
+ o = color(o);
+ if (!o)
+ return new Rgb();
+ o = o.rgb();
+ return new Rgb(o.r, o.g, o.b, o.opacity);
+}
+function rgb(r, g, b, opacity) {
+ return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
+}
+function Rgb(r, g, b, opacity) {
+ this.r = +r;
+ this.g = +g;
+ this.b = +b;
+ this.opacity = +opacity;
+}
+define(Rgb, rgb, extend(Color$2, {
+ brighter(k) {
+ k = k == null ? brighter : Math.pow(brighter, k);
+ return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
+ },
+ darker(k) {
+ k = k == null ? darker : Math.pow(darker, k);
+ return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
+ },
+ rgb() {
+ return this;
+ },
+ clamp() {
+ return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
+ },
+ displayable() {
+ return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);
+ },
+ hex: rgb_formatHex,
+ // Deprecated! Use color.formatHex.
+ formatHex: rgb_formatHex,
+ formatHex8: rgb_formatHex8,
+ formatRgb: rgb_formatRgb,
+ toString: rgb_formatRgb
+}));
+function rgb_formatHex() {
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
+}
+function rgb_formatHex8() {
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
+}
+function rgb_formatRgb() {
+ const a = clampa(this.opacity);
+ return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
+}
+function clampa(opacity) {
+ return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
+}
+function clampi(value) {
+ return Math.max(0, Math.min(255, Math.round(value) || 0));
+}
+function hex(value) {
+ value = clampi(value);
+ return (value < 16 ? "0" : "") + value.toString(16);
+}
+function hsla(h, s, l, a) {
+ if (a <= 0)
+ h = s = l = NaN;
+ else if (l <= 0 || l >= 1)
+ h = s = NaN;
+ else if (s <= 0)
+ h = NaN;
+ return new Hsl(h, s, l, a);
+}
+function hslConvert(o) {
+ if (o instanceof Hsl)
+ return new Hsl(o.h, o.s, o.l, o.opacity);
+ if (!(o instanceof Color$2))
+ o = color(o);
+ if (!o)
+ return new Hsl();
+ if (o instanceof Hsl)
+ return o;
+ o = o.rgb();
+ var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, l = (max + min) / 2;
+ if (s) {
+ if (r === max)
+ h = (g - b) / s + (g < b) * 6;
+ else if (g === max)
+ h = (b - r) / s + 2;
+ else
+ h = (r - g) / s + 4;
+ s /= l < 0.5 ? max + min : 2 - max - min;
+ h *= 60;
+ } else {
+ s = l > 0 && l < 1 ? 0 : h;
+ }
+ return new Hsl(h, s, l, o.opacity);
+}
+function hsl(h, s, l, opacity) {
+ return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
+}
+function Hsl(h, s, l, opacity) {
+ this.h = +h;
+ this.s = +s;
+ this.l = +l;
+ this.opacity = +opacity;
+}
+define(Hsl, hsl, extend(Color$2, {
+ brighter(k) {
+ k = k == null ? brighter : Math.pow(brighter, k);
+ return new Hsl(this.h, this.s, this.l * k, this.opacity);
+ },
+ darker(k) {
+ k = k == null ? darker : Math.pow(darker, k);
+ return new Hsl(this.h, this.s, this.l * k, this.opacity);
+ },
+ rgb() {
+ var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2;
+ return new Rgb(
+ hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
+ hsl2rgb(h, m1, m2),
+ hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
+ this.opacity
+ );
+ },
+ clamp() {
+ return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
+ },
+ displayable() {
+ return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1);
+ },
+ formatHsl() {
+ const a = clampa(this.opacity);
+ return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
+ }
+}));
+function clamph(value) {
+ value = (value || 0) % 360;
+ return value < 0 ? value + 360 : value;
+}
+function clampt(value) {
+ return Math.max(0, Math.min(1, value || 0));
+}
+function hsl2rgb(h, m1, m2) {
+ return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;
+}
+const constant = (x) => () => x;
+function linear(a, d) {
+ return function(t) {
+ return a + t * d;
+ };
+}
+function exponential(a, b, y) {
+ return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
+ return Math.pow(a + t * b, y);
+ };
+}
+function hue(a, b) {
+ var d = b - a;
+ return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);
+}
+function gamma(y) {
+ return (y = +y) === 1 ? nogamma : function(a, b) {
+ return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);
+ };
+}
+function nogamma(a, b) {
+ var d = b - a;
+ return d ? linear(a, d) : constant(isNaN(a) ? b : a);
+}
+const interpolateRgb = function rgbGamma(y) {
+ var color2 = gamma(y);
+ function rgb$1(start2, end) {
+ var r = color2((start2 = rgb(start2)).r, (end = rgb(end)).r), g = color2(start2.g, end.g), b = color2(start2.b, end.b), opacity = nogamma(start2.opacity, end.opacity);
+ return function(t) {
+ start2.r = r(t);
+ start2.g = g(t);
+ start2.b = b(t);
+ start2.opacity = opacity(t);
+ return start2 + "";
+ };
+ }
+ rgb$1.gamma = rgbGamma;
+ return rgb$1;
+}(1);
+function interpolateNumber(a, b) {
+ return a = +a, b = +b, function(t) {
+ return a * (1 - t) + b * t;
+ };
+}
+var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g");
+function zero(b) {
+ return function() {
+ return b;
+ };
+}
+function one(b) {
+ return function(t) {
+ return b(t) + "";
+ };
+}
+function interpolateString(a, b) {
+ var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];
+ a = a + "", b = b + "";
+ while ((am = reA.exec(a)) && (bm = reB.exec(b))) {
+ if ((bs = bm.index) > bi) {
+ bs = b.slice(bi, bs);
+ if (s[i])
+ s[i] += bs;
+ else
+ s[++i] = bs;
+ }
+ if ((am = am[0]) === (bm = bm[0])) {
+ if (s[i])
+ s[i] += bm;
+ else
+ s[++i] = bm;
+ } else {
+ s[++i] = null;
+ q.push({ i, x: interpolateNumber(am, bm) });
+ }
+ bi = reB.lastIndex;
+ }
+ if (bi < b.length) {
+ bs = b.slice(bi);
+ if (s[i])
+ s[i] += bs;
+ else
+ s[++i] = bs;
+ }
+ return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) {
+ for (var i2 = 0, o; i2 < b; ++i2)
+ s[(o = q[i2]).i] = o.x(t);
+ return s.join("");
+ });
+}
+var degrees = 180 / Math.PI;
+var identity = {
+ translateX: 0,
+ translateY: 0,
+ rotate: 0,
+ skewX: 0,
+ scaleX: 1,
+ scaleY: 1
+};
+function decompose(a, b, c, d, e, f) {
+ var scaleX, scaleY, skewX;
+ if (scaleX = Math.sqrt(a * a + b * b))
+ a /= scaleX, b /= scaleX;
+ if (skewX = a * c + b * d)
+ c -= a * skewX, d -= b * skewX;
+ if (scaleY = Math.sqrt(c * c + d * d))
+ c /= scaleY, d /= scaleY, skewX /= scaleY;
+ if (a * d < b * c)
+ a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
+ return {
+ translateX: e,
+ translateY: f,
+ rotate: Math.atan2(b, a) * degrees,
+ skewX: Math.atan(skewX) * degrees,
+ scaleX,
+ scaleY
+ };
+}
+var svgNode;
+function parseCss(value) {
+ const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + "");
+ return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);
+}
+function parseSvg(value) {
+ if (value == null)
+ return identity;
+ if (!svgNode)
+ svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
+ svgNode.setAttribute("transform", value);
+ if (!(value = svgNode.transform.baseVal.consolidate()))
+ return identity;
+ value = value.matrix;
+ return decompose(value.a, value.b, value.c, value.d, value.e, value.f);
+}
+function interpolateTransform(parse, pxComma, pxParen, degParen) {
+ function pop(s) {
+ return s.length ? s.pop() + " " : "";
+ }
+ function translate(xa, ya, xb, yb, s, q) {
+ if (xa !== xb || ya !== yb) {
+ var i = s.push("translate(", null, pxComma, null, pxParen);
+ q.push({ i: i - 4, x: interpolateNumber(xa, xb) }, { i: i - 2, x: interpolateNumber(ya, yb) });
+ } else if (xb || yb) {
+ s.push("translate(" + xb + pxComma + yb + pxParen);
+ }
+ }
+ function rotate(a, b, s, q) {
+ if (a !== b) {
+ if (a - b > 180)
+ b += 360;
+ else if (b - a > 180)
+ a += 360;
+ q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: interpolateNumber(a, b) });
+ } else if (b) {
+ s.push(pop(s) + "rotate(" + b + degParen);
+ }
+ }
+ function skewX(a, b, s, q) {
+ if (a !== b) {
+ q.push({ i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: interpolateNumber(a, b) });
+ } else if (b) {
+ s.push(pop(s) + "skewX(" + b + degParen);
+ }
+ }
+ function scale(xa, ya, xb, yb, s, q) {
+ if (xa !== xb || ya !== yb) {
+ var i = s.push(pop(s) + "scale(", null, ",", null, ")");
+ q.push({ i: i - 4, x: interpolateNumber(xa, xb) }, { i: i - 2, x: interpolateNumber(ya, yb) });
+ } else if (xb !== 1 || yb !== 1) {
+ s.push(pop(s) + "scale(" + xb + "," + yb + ")");
+ }
+ }
+ return function(a, b) {
+ var s = [], q = [];
+ a = parse(a), b = parse(b);
+ translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
+ rotate(a.rotate, b.rotate, s, q);
+ skewX(a.skewX, b.skewX, s, q);
+ scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
+ a = b = null;
+ return function(t) {
+ var i = -1, n = q.length, o;
+ while (++i < n)
+ s[(o = q[i]).i] = o.x(t);
+ return s.join("");
+ };
+ };
+}
+var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)");
+var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")");
+var frame = 0, timeout$1 = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) {
+ setTimeout(f, 17);
+};
+function now() {
+ return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
+}
+function clearNow() {
+ clockNow = 0;
+}
+function Timer() {
+ this._call = this._time = this._next = null;
+}
+Timer.prototype = timer.prototype = {
+ constructor: Timer,
+ restart: function(callback, delay, time) {
+ if (typeof callback !== "function")
+ throw new TypeError("callback is not a function");
+ time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
+ if (!this._next && taskTail !== this) {
+ if (taskTail)
+ taskTail._next = this;
+ else
+ taskHead = this;
+ taskTail = this;
+ }
+ this._call = callback;
+ this._time = time;
+ sleep();
+ },
+ stop: function() {
+ if (this._call) {
+ this._call = null;
+ this._time = Infinity;
+ sleep();
+ }
+ }
+};
+function timer(callback, delay, time) {
+ var t = new Timer();
+ t.restart(callback, delay, time);
+ return t;
+}
+function timerFlush() {
+ now();
+ ++frame;
+ var t = taskHead, e;
+ while (t) {
+ if ((e = clockNow - t._time) >= 0)
+ t._call.call(void 0, e);
+ t = t._next;
+ }
+ --frame;
+}
+function wake() {
+ clockNow = (clockLast = clock.now()) + clockSkew;
+ frame = timeout$1 = 0;
+ try {
+ timerFlush();
+ } finally {
+ frame = 0;
+ nap();
+ clockNow = 0;
+ }
+}
+function poke() {
+ var now2 = clock.now(), delay = now2 - clockLast;
+ if (delay > pokeDelay)
+ clockSkew -= delay, clockLast = now2;
+}
+function nap() {
+ var t0, t1 = taskHead, t2, time = Infinity;
+ while (t1) {
+ if (t1._call) {
+ if (time > t1._time)
+ time = t1._time;
+ t0 = t1, t1 = t1._next;
+ } else {
+ t2 = t1._next, t1._next = null;
+ t1 = t0 ? t0._next = t2 : taskHead = t2;
+ }
+ }
+ taskTail = t0;
+ sleep(time);
+}
+function sleep(time) {
+ if (frame)
+ return;
+ if (timeout$1)
+ timeout$1 = clearTimeout(timeout$1);
+ var delay = time - clockNow;
+ if (delay > 24) {
+ if (time < Infinity)
+ timeout$1 = setTimeout(wake, time - clock.now() - clockSkew);
+ if (interval)
+ interval = clearInterval(interval);
+ } else {
+ if (!interval)
+ clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
+ frame = 1, setFrame(wake);
+ }
+}
+function timeout(callback, delay, time) {
+ var t = new Timer();
+ delay = delay == null ? 0 : +delay;
+ t.restart((elapsed) => {
+ t.stop();
+ callback(elapsed + delay);
+ }, delay, time);
+ return t;
+}
+var emptyOn = dispatch("start", "end", "cancel", "interrupt");
+var emptyTween = [];
+var CREATED = 0;
+var SCHEDULED = 1;
+var STARTING = 2;
+var STARTED = 3;
+var RUNNING = 4;
+var ENDING = 5;
+var ENDED = 6;
+function schedule(node, name, id2, index, group, timing) {
+ var schedules = node.__transition;
+ if (!schedules)
+ node.__transition = {};
+ else if (id2 in schedules)
+ return;
+ create$1(node, id2, {
+ name,
+ index,
+ // For context during callback.
+ group,
+ // For context during callback.
+ on: emptyOn,
+ tween: emptyTween,
+ time: timing.time,
+ delay: timing.delay,
+ duration: timing.duration,
+ ease: timing.ease,
+ timer: null,
+ state: CREATED
+ });
+}
+function init(node, id2) {
+ var schedule2 = get(node, id2);
+ if (schedule2.state > CREATED)
+ throw new Error("too late; already scheduled");
+ return schedule2;
+}
+function set(node, id2) {
+ var schedule2 = get(node, id2);
+ if (schedule2.state > STARTED)
+ throw new Error("too late; already running");
+ return schedule2;
+}
+function get(node, id2) {
+ var schedule2 = node.__transition;
+ if (!schedule2 || !(schedule2 = schedule2[id2]))
+ throw new Error("transition not found");
+ return schedule2;
+}
+function create$1(node, id2, self2) {
+ var schedules = node.__transition, tween;
+ schedules[id2] = self2;
+ self2.timer = timer(schedule2, 0, self2.time);
+ function schedule2(elapsed) {
+ self2.state = SCHEDULED;
+ self2.timer.restart(start2, self2.delay, self2.time);
+ if (self2.delay <= elapsed)
+ start2(elapsed - self2.delay);
+ }
+ function start2(elapsed) {
+ var i, j, n, o;
+ if (self2.state !== SCHEDULED)
+ return stop();
+ for (i in schedules) {
+ o = schedules[i];
+ if (o.name !== self2.name)
+ continue;
+ if (o.state === STARTED)
+ return timeout(start2);
+ if (o.state === RUNNING) {
+ o.state = ENDED;
+ o.timer.stop();
+ o.on.call("interrupt", node, node.__data__, o.index, o.group);
+ delete schedules[i];
+ } else if (+i < id2) {
+ o.state = ENDED;
+ o.timer.stop();
+ o.on.call("cancel", node, node.__data__, o.index, o.group);
+ delete schedules[i];
+ }
+ }
+ timeout(function() {
+ if (self2.state === STARTED) {
+ self2.state = RUNNING;
+ self2.timer.restart(tick, self2.delay, self2.time);
+ tick(elapsed);
+ }
+ });
+ self2.state = STARTING;
+ self2.on.call("start", node, node.__data__, self2.index, self2.group);
+ if (self2.state !== STARTING)
+ return;
+ self2.state = STARTED;
+ tween = new Array(n = self2.tween.length);
+ for (i = 0, j = -1; i < n; ++i) {
+ if (o = self2.tween[i].value.call(node, node.__data__, self2.index, self2.group)) {
+ tween[++j] = o;
+ }
+ }
+ tween.length = j + 1;
+ }
+ function tick(elapsed) {
+ var t = elapsed < self2.duration ? self2.ease.call(null, elapsed / self2.duration) : (self2.timer.restart(stop), self2.state = ENDING, 1), i = -1, n = tween.length;
+ while (++i < n) {
+ tween[i].call(node, t);
+ }
+ if (self2.state === ENDING) {
+ self2.on.call("end", node, node.__data__, self2.index, self2.group);
+ stop();
+ }
+ }
+ function stop() {
+ self2.state = ENDED;
+ self2.timer.stop();
+ delete schedules[id2];
+ for (var i in schedules)
+ return;
+ delete node.__transition;
+ }
+}
+function interrupt(node, name) {
+ var schedules = node.__transition, schedule2, active, empty2 = true, i;
+ if (!schedules)
+ return;
+ name = name == null ? null : name + "";
+ for (i in schedules) {
+ if ((schedule2 = schedules[i]).name !== name) {
+ empty2 = false;
+ continue;
+ }
+ active = schedule2.state > STARTING && schedule2.state < ENDING;
+ schedule2.state = ENDED;
+ schedule2.timer.stop();
+ schedule2.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule2.index, schedule2.group);
+ delete schedules[i];
+ }
+ if (empty2)
+ delete node.__transition;
+}
+function selection_interrupt(name) {
+ return this.each(function() {
+ interrupt(this, name);
+ });
+}
+function tweenRemove(id2, name) {
+ var tween0, tween1;
+ return function() {
+ var schedule2 = set(this, id2), tween = schedule2.tween;
+ if (tween !== tween0) {
+ tween1 = tween0 = tween;
+ for (var i = 0, n = tween1.length; i < n; ++i) {
+ if (tween1[i].name === name) {
+ tween1 = tween1.slice();
+ tween1.splice(i, 1);
+ break;
+ }
+ }
+ }
+ schedule2.tween = tween1;
+ };
+}
+function tweenFunction(id2, name, value) {
+ var tween0, tween1;
+ if (typeof value !== "function")
+ throw new Error();
+ return function() {
+ var schedule2 = set(this, id2), tween = schedule2.tween;
+ if (tween !== tween0) {
+ tween1 = (tween0 = tween).slice();
+ for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) {
+ if (tween1[i].name === name) {
+ tween1[i] = t;
+ break;
+ }
+ }
+ if (i === n)
+ tween1.push(t);
+ }
+ schedule2.tween = tween1;
+ };
+}
+function transition_tween(name, value) {
+ var id2 = this._id;
+ name += "";
+ if (arguments.length < 2) {
+ var tween = get(this.node(), id2).tween;
+ for (var i = 0, n = tween.length, t; i < n; ++i) {
+ if ((t = tween[i]).name === name) {
+ return t.value;
+ }
+ }
+ return null;
+ }
+ return this.each((value == null ? tweenRemove : tweenFunction)(id2, name, value));
+}
+function tweenValue(transition, name, value) {
+ var id2 = transition._id;
+ transition.each(function() {
+ var schedule2 = set(this, id2);
+ (schedule2.value || (schedule2.value = {}))[name] = value.apply(this, arguments);
+ });
+ return function(node) {
+ return get(node, id2).value[name];
+ };
+}
+function interpolate(a, b) {
+ var c;
+ return (typeof b === "number" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b);
+}
+function attrRemove(name) {
+ return function() {
+ this.removeAttribute(name);
+ };
+}
+function attrRemoveNS(fullname) {
+ return function() {
+ this.removeAttributeNS(fullname.space, fullname.local);
+ };
+}
+function attrConstant(name, interpolate2, value1) {
+ var string00, string1 = value1 + "", interpolate0;
+ return function() {
+ var string0 = this.getAttribute(name);
+ return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);
+ };
+}
+function attrConstantNS(fullname, interpolate2, value1) {
+ var string00, string1 = value1 + "", interpolate0;
+ return function() {
+ var string0 = this.getAttributeNS(fullname.space, fullname.local);
+ return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);
+ };
+}
+function attrFunction(name, interpolate2, value) {
+ var string00, string10, interpolate0;
+ return function() {
+ var string0, value1 = value(this), string1;
+ if (value1 == null)
+ return void this.removeAttribute(name);
+ string0 = this.getAttribute(name);
+ string1 = value1 + "";
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
+ };
+}
+function attrFunctionNS(fullname, interpolate2, value) {
+ var string00, string10, interpolate0;
+ return function() {
+ var string0, value1 = value(this), string1;
+ if (value1 == null)
+ return void this.removeAttributeNS(fullname.space, fullname.local);
+ string0 = this.getAttributeNS(fullname.space, fullname.local);
+ string1 = value1 + "";
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
+ };
+}
+function transition_attr(name, value) {
+ var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate;
+ return this.attrTween(name, typeof value === "function" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));
+}
+function attrInterpolate(name, i) {
+ return function(t) {
+ this.setAttribute(name, i.call(this, t));
+ };
+}
+function attrInterpolateNS(fullname, i) {
+ return function(t) {
+ this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));
+ };
+}
+function attrTweenNS(fullname, value) {
+ var t0, i0;
+ function tween() {
+ var i = value.apply(this, arguments);
+ if (i !== i0)
+ t0 = (i0 = i) && attrInterpolateNS(fullname, i);
+ return t0;
+ }
+ tween._value = value;
+ return tween;
+}
+function attrTween(name, value) {
+ var t0, i0;
+ function tween() {
+ var i = value.apply(this, arguments);
+ if (i !== i0)
+ t0 = (i0 = i) && attrInterpolate(name, i);
+ return t0;
+ }
+ tween._value = value;
+ return tween;
+}
+function transition_attrTween(name, value) {
+ var key = "attr." + name;
+ if (arguments.length < 2)
+ return (key = this.tween(key)) && key._value;
+ if (value == null)
+ return this.tween(key, null);
+ if (typeof value !== "function")
+ throw new Error();
+ var fullname = namespace(name);
+ return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
+}
+function delayFunction(id2, value) {
+ return function() {
+ init(this, id2).delay = +value.apply(this, arguments);
+ };
+}
+function delayConstant(id2, value) {
+ return value = +value, function() {
+ init(this, id2).delay = value;
+ };
+}
+function transition_delay(value) {
+ var id2 = this._id;
+ return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id2, value)) : get(this.node(), id2).delay;
+}
+function durationFunction(id2, value) {
+ return function() {
+ set(this, id2).duration = +value.apply(this, arguments);
+ };
+}
+function durationConstant(id2, value) {
+ return value = +value, function() {
+ set(this, id2).duration = value;
+ };
+}
+function transition_duration(value) {
+ var id2 = this._id;
+ return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id2, value)) : get(this.node(), id2).duration;
+}
+function easeConstant(id2, value) {
+ if (typeof value !== "function")
+ throw new Error();
+ return function() {
+ set(this, id2).ease = value;
+ };
+}
+function transition_ease(value) {
+ var id2 = this._id;
+ return arguments.length ? this.each(easeConstant(id2, value)) : get(this.node(), id2).ease;
+}
+function easeVarying(id2, value) {
+ return function() {
+ var v = value.apply(this, arguments);
+ if (typeof v !== "function")
+ throw new Error();
+ set(this, id2).ease = v;
+ };
+}
+function transition_easeVarying(value) {
+ if (typeof value !== "function")
+ throw new Error();
+ return this.each(easeVarying(this._id, value));
+}
+function transition_filter(match) {
+ if (typeof match !== "function")
+ match = matcher(match);
+ for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
+ for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
+ if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
+ subgroup.push(node);
+ }
+ }
+ }
+ return new Transition(subgroups, this._parents, this._name, this._id);
+}
+function transition_merge(transition) {
+ if (transition._id !== this._id)
+ throw new Error();
+ for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
+ for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
+ if (node = group0[i] || group1[i]) {
+ merge[i] = node;
+ }
+ }
+ }
+ for (; j < m0; ++j) {
+ merges[j] = groups0[j];
+ }
+ return new Transition(merges, this._parents, this._name, this._id);
+}
+function start(name) {
+ return (name + "").trim().split(/^|\s+/).every(function(t) {
+ var i = t.indexOf(".");
+ if (i >= 0)
+ t = t.slice(0, i);
+ return !t || t === "start";
+ });
+}
+function onFunction(id2, name, listener) {
+ var on0, on1, sit = start(name) ? init : set;
+ return function() {
+ var schedule2 = sit(this, id2), on = schedule2.on;
+ if (on !== on0)
+ (on1 = (on0 = on).copy()).on(name, listener);
+ schedule2.on = on1;
+ };
+}
+function transition_on(name, listener) {
+ var id2 = this._id;
+ return arguments.length < 2 ? get(this.node(), id2).on.on(name) : this.each(onFunction(id2, name, listener));
+}
+function removeFunction(id2) {
+ return function() {
+ var parent = this.parentNode;
+ for (var i in this.__transition)
+ if (+i !== id2)
+ return;
+ if (parent)
+ parent.removeChild(this);
+ };
+}
+function transition_remove() {
+ return this.on("end.remove", removeFunction(this._id));
+}
+function transition_select(select2) {
+ var name = this._name, id2 = this._id;
+ if (typeof select2 !== "function")
+ select2 = selector(select2);
+ for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
+ for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
+ if ((node = group[i]) && (subnode = select2.call(node, node.__data__, i, group))) {
+ if ("__data__" in node)
+ subnode.__data__ = node.__data__;
+ subgroup[i] = subnode;
+ schedule(subgroup[i], name, id2, i, subgroup, get(node, id2));
+ }
+ }
+ }
+ return new Transition(subgroups, this._parents, name, id2);
+}
+function transition_selectAll(select2) {
+ var name = this._name, id2 = this._id;
+ if (typeof select2 !== "function")
+ select2 = selectorAll(select2);
+ for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
+ for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
+ if (node = group[i]) {
+ for (var children2 = select2.call(node, node.__data__, i, group), child, inherit2 = get(node, id2), k = 0, l = children2.length; k < l; ++k) {
+ if (child = children2[k]) {
+ schedule(child, name, id2, k, children2, inherit2);
+ }
+ }
+ subgroups.push(children2);
+ parents.push(node);
+ }
+ }
+ }
+ return new Transition(subgroups, parents, name, id2);
+}
+var Selection = selection.prototype.constructor;
+function transition_selection() {
+ return new Selection(this._groups, this._parents);
+}
+function styleNull(name, interpolate2) {
+ var string00, string10, interpolate0;
+ return function() {
+ var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name));
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1);
+ };
+}
+function styleRemove(name) {
+ return function() {
+ this.style.removeProperty(name);
+ };
+}
+function styleConstant(name, interpolate2, value1) {
+ var string00, string1 = value1 + "", interpolate0;
+ return function() {
+ var string0 = styleValue(this, name);
+ return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);
+ };
+}
+function styleFunction(name, interpolate2, value) {
+ var string00, string10, interpolate0;
+ return function() {
+ var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + "";
+ if (value1 == null)
+ string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
+ };
+}
+function styleMaybeRemove(id2, name) {
+ var on0, on1, listener0, key = "style." + name, event = "end." + key, remove2;
+ return function() {
+ var schedule2 = set(this, id2), on = schedule2.on, listener = schedule2.value[key] == null ? remove2 || (remove2 = styleRemove(name)) : void 0;
+ if (on !== on0 || listener0 !== listener)
+ (on1 = (on0 = on).copy()).on(event, listener0 = listener);
+ schedule2.on = on1;
+ };
+}
+function transition_style(name, value, priority) {
+ var i = (name += "") === "transform" ? interpolateTransformCss : interpolate;
+ return value == null ? this.styleTween(name, styleNull(name, i)).on("end.style." + name, styleRemove(name)) : typeof value === "function" ? this.styleTween(name, styleFunction(name, i, tweenValue(this, "style." + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant(name, i, value), priority).on("end.style." + name, null);
+}
+function styleInterpolate(name, i, priority) {
+ return function(t) {
+ this.style.setProperty(name, i.call(this, t), priority);
+ };
+}
+function styleTween(name, value, priority) {
+ var t, i0;
+ function tween() {
+ var i = value.apply(this, arguments);
+ if (i !== i0)
+ t = (i0 = i) && styleInterpolate(name, i, priority);
+ return t;
+ }
+ tween._value = value;
+ return tween;
+}
+function transition_styleTween(name, value, priority) {
+ var key = "style." + (name += "");
+ if (arguments.length < 2)
+ return (key = this.tween(key)) && key._value;
+ if (value == null)
+ return this.tween(key, null);
+ if (typeof value !== "function")
+ throw new Error();
+ return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
+}
+function textConstant(value) {
+ return function() {
+ this.textContent = value;
+ };
+}
+function textFunction(value) {
+ return function() {
+ var value1 = value(this);
+ this.textContent = value1 == null ? "" : value1;
+ };
+}
+function transition_text(value) {
+ return this.tween("text", typeof value === "function" ? textFunction(tweenValue(this, "text", value)) : textConstant(value == null ? "" : value + ""));
+}
+function textInterpolate(i) {
+ return function(t) {
+ this.textContent = i.call(this, t);
+ };
+}
+function textTween(value) {
+ var t0, i0;
+ function tween() {
+ var i = value.apply(this, arguments);
+ if (i !== i0)
+ t0 = (i0 = i) && textInterpolate(i);
+ return t0;
+ }
+ tween._value = value;
+ return tween;
+}
+function transition_textTween(value) {
+ var key = "text";
+ if (arguments.length < 1)
+ return (key = this.tween(key)) && key._value;
+ if (value == null)
+ return this.tween(key, null);
+ if (typeof value !== "function")
+ throw new Error();
+ return this.tween(key, textTween(value));
+}
+function transition_transition() {
+ var name = this._name, id0 = this._id, id1 = newId();
+ for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
+ for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
+ if (node = group[i]) {
+ var inherit2 = get(node, id0);
+ schedule(node, name, id1, i, group, {
+ time: inherit2.time + inherit2.delay + inherit2.duration,
+ delay: 0,
+ duration: inherit2.duration,
+ ease: inherit2.ease
+ });
+ }
+ }
+ }
+ return new Transition(groups, this._parents, name, id1);
+}
+function transition_end() {
+ var on0, on1, that = this, id2 = that._id, size = that.size();
+ return new Promise(function(resolve, reject) {
+ var cancel = { value: reject }, end = { value: function() {
+ if (--size === 0)
+ resolve();
+ } };
+ that.each(function() {
+ var schedule2 = set(this, id2), on = schedule2.on;
+ if (on !== on0) {
+ on1 = (on0 = on).copy();
+ on1._.cancel.push(cancel);
+ on1._.interrupt.push(cancel);
+ on1._.end.push(end);
+ }
+ schedule2.on = on1;
+ });
+ if (size === 0)
+ resolve();
+ });
+}
+var id = 0;
+function Transition(groups, parents, name, id2) {
+ this._groups = groups;
+ this._parents = parents;
+ this._name = name;
+ this._id = id2;
+}
+function newId() {
+ return ++id;
+}
+var selection_prototype = selection.prototype;
+Transition.prototype = {
+ constructor: Transition,
+ select: transition_select,
+ selectAll: transition_selectAll,
+ selectChild: selection_prototype.selectChild,
+ selectChildren: selection_prototype.selectChildren,
+ filter: transition_filter,
+ merge: transition_merge,
+ selection: transition_selection,
+ transition: transition_transition,
+ call: selection_prototype.call,
+ nodes: selection_prototype.nodes,
+ node: selection_prototype.node,
+ size: selection_prototype.size,
+ empty: selection_prototype.empty,
+ each: selection_prototype.each,
+ on: transition_on,
+ attr: transition_attr,
+ attrTween: transition_attrTween,
+ style: transition_style,
+ styleTween: transition_styleTween,
+ text: transition_text,
+ textTween: transition_textTween,
+ remove: transition_remove,
+ tween: transition_tween,
+ delay: transition_delay,
+ duration: transition_duration,
+ ease: transition_ease,
+ easeVarying: transition_easeVarying,
+ end: transition_end,
+ [Symbol.iterator]: selection_prototype[Symbol.iterator]
+};
+function cubicInOut(t) {
+ return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
+}
+var defaultTiming = {
+ time: null,
+ // Set on use.
+ delay: 0,
+ duration: 250,
+ ease: cubicInOut
+};
+function inherit(node, id2) {
+ var timing;
+ while (!(timing = node.__transition) || !(timing = timing[id2])) {
+ if (!(node = node.parentNode)) {
+ throw new Error(`transition ${id2} not found`);
+ }
+ }
+ return timing;
+}
+function selection_transition(name) {
+ var id2, timing;
+ if (name instanceof Transition) {
+ id2 = name._id, name = name._name;
+ } else {
+ id2 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + "";
+ }
+ for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
+ for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
+ if (node = group[i]) {
+ schedule(node, name, id2, i, group, timing || inherit(node, id2));
+ }
+ }
+ }
+ return new Transition(groups, this._parents, name, id2);
+}
+selection.prototype.interrupt = selection_interrupt;
+selection.prototype.transition = selection_transition;
+function Transform(k, x, y) {
+ this.k = k;
+ this.x = x;
+ this.y = y;
+}
+Transform.prototype = {
+ constructor: Transform,
+ scale: function(k) {
+ return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
+ },
+ translate: function(x, y) {
+ return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);
+ },
+ apply: function(point) {
+ return [point[0] * this.k + this.x, point[1] * this.k + this.y];
+ },
+ applyX: function(x) {
+ return x * this.k + this.x;
+ },
+ applyY: function(y) {
+ return y * this.k + this.y;
+ },
+ invert: function(location) {
+ return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
+ },
+ invertX: function(x) {
+ return (x - this.x) / this.k;
+ },
+ invertY: function(y) {
+ return (y - this.y) / this.k;
+ },
+ rescaleX: function(x) {
+ return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));
+ },
+ rescaleY: function(y) {
+ return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));
+ },
+ toString: function() {
+ return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
+ }
+};
+Transform.prototype;
+/*! @license DOMPurify 2.4.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.5/LICENSE */
+function _typeof(obj) {
+ "@babel/helpers - typeof";
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
+ return typeof obj2;
+ } : function(obj2) {
+ return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
+ }, _typeof(obj);
+}
+function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf2(o2, p2) {
+ o2.__proto__ = p2;
+ return o2;
+ };
+ return _setPrototypeOf(o, p);
+}
+function _isNativeReflectConstruct() {
+ if (typeof Reflect === "undefined" || !Reflect.construct)
+ return false;
+ if (Reflect.construct.sham)
+ return false;
+ if (typeof Proxy === "function")
+ return true;
+ try {
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
+ }));
+ return true;
+ } catch (e) {
+ return false;
+ }
+}
+function _construct(Parent, args, Class) {
+ if (_isNativeReflectConstruct()) {
+ _construct = Reflect.construct;
+ } else {
+ _construct = function _construct2(Parent2, args2, Class2) {
+ var a = [null];
+ a.push.apply(a, args2);
+ var Constructor = Function.bind.apply(Parent2, a);
+ var instance = new Constructor();
+ if (Class2)
+ _setPrototypeOf(instance, Class2.prototype);
+ return instance;
+ };
+ }
+ return _construct.apply(null, arguments);
+}
+function _toConsumableArray(arr) {
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
+}
+function _arrayWithoutHoles(arr) {
+ if (Array.isArray(arr))
+ return _arrayLikeToArray(arr);
+}
+function _iterableToArray(iter) {
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
+ return Array.from(iter);
+}
+function _unsupportedIterableToArray(o, minLen) {
+ if (!o)
+ return;
+ if (typeof o === "string")
+ return _arrayLikeToArray(o, minLen);
+ var n = Object.prototype.toString.call(o).slice(8, -1);
+ if (n === "Object" && o.constructor)
+ n = o.constructor.name;
+ if (n === "Map" || n === "Set")
+ return Array.from(o);
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
+ return _arrayLikeToArray(o, minLen);
+}
+function _arrayLikeToArray(arr, len) {
+ if (len == null || len > arr.length)
+ len = arr.length;
+ for (var i = 0, arr2 = new Array(len); i < len; i++)
+ arr2[i] = arr[i];
+ return arr2;
+}
+function _nonIterableSpread() {
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+}
+var hasOwnProperty = Object.hasOwnProperty, setPrototypeOf = Object.setPrototypeOf, isFrozen = Object.isFrozen, getPrototypeOf = Object.getPrototypeOf, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+var freeze = Object.freeze, seal = Object.seal, create = Object.create;
+var _ref = typeof Reflect !== "undefined" && Reflect, apply = _ref.apply, construct = _ref.construct;
+if (!apply) {
+ apply = function apply2(fun, thisValue, args) {
+ return fun.apply(thisValue, args);
+ };
+}
+if (!freeze) {
+ freeze = function freeze2(x) {
+ return x;
+ };
+}
+if (!seal) {
+ seal = function seal2(x) {
+ return x;
+ };
+}
+if (!construct) {
+ construct = function construct2(Func, args) {
+ return _construct(Func, _toConsumableArray(args));
+ };
+}
+var arrayForEach = unapply(Array.prototype.forEach);
+var arrayPop = unapply(Array.prototype.pop);
+var arrayPush = unapply(Array.prototype.push);
+var stringToLowerCase = unapply(String.prototype.toLowerCase);
+var stringToString = unapply(String.prototype.toString);
+var stringMatch = unapply(String.prototype.match);
+var stringReplace = unapply(String.prototype.replace);
+var stringIndexOf = unapply(String.prototype.indexOf);
+var stringTrim = unapply(String.prototype.trim);
+var regExpTest = unapply(RegExp.prototype.test);
+var typeErrorCreate = unconstruct(TypeError);
+function unapply(func) {
+ return function(thisArg) {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+ return apply(func, thisArg, args);
+ };
+}
+function unconstruct(func) {
+ return function() {
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ args[_key2] = arguments[_key2];
+ }
+ return construct(func, args);
+ };
+}
+function addToSet(set2, array2, transformCaseFunc) {
+ transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;
+ if (setPrototypeOf) {
+ setPrototypeOf(set2, null);
+ }
+ var l = array2.length;
+ while (l--) {
+ var element = array2[l];
+ if (typeof element === "string") {
+ var lcElement = transformCaseFunc(element);
+ if (lcElement !== element) {
+ if (!isFrozen(array2)) {
+ array2[l] = lcElement;
+ }
+ element = lcElement;
+ }
+ }
+ set2[element] = true;
+ }
+ return set2;
+}
+function clone(object) {
+ var newObject = create(null);
+ var property;
+ for (property in object) {
+ if (apply(hasOwnProperty, object, [property]) === true) {
+ newObject[property] = object[property];
+ }
+ }
+ return newObject;
+}
+function lookupGetter(object, prop) {
+ while (object !== null) {
+ var desc = getOwnPropertyDescriptor(object, prop);
+ if (desc) {
+ if (desc.get) {
+ return unapply(desc.get);
+ }
+ if (typeof desc.value === "function") {
+ return unapply(desc.value);
+ }
+ }
+ object = getPrototypeOf(object);
+ }
+ function fallbackValue(element) {
+ console.warn("fallback value for", element);
+ return null;
+ }
+ return fallbackValue;
+}
+var html$1 = freeze(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]);
+var svg$1 = freeze(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]);
+var svgFilters = freeze(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]);
+var svgDisallowed = freeze(["animate", "color-profile", "cursor", "discard", "fedropshadow", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]);
+var mathMl$1 = freeze(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover"]);
+var mathMlDisallowed = freeze(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]);
+var text = freeze(["#text"]);
+var html = freeze(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]);
+var svg = freeze(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]);
+var mathMl = freeze(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]);
+var xml = freeze(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]);
+var MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
+var ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
+var TMPLIT_EXPR = seal(/\${[\w\W]*}/gm);
+var DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/);
+var ARIA_ATTR = seal(/^aria-[\-\w]+$/);
+var IS_ALLOWED_URI = seal(
+ /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
+ // eslint-disable-line no-useless-escape
+);
+var IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
+var ATTR_WHITESPACE = seal(
+ /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
+ // eslint-disable-line no-control-regex
+);
+var DOCTYPE_NAME = seal(/^html$/i);
+var getGlobal = function getGlobal2() {
+ return typeof window === "undefined" ? null : window;
+};
+var _createTrustedTypesPolicy = function _createTrustedTypesPolicy2(trustedTypes, document2) {
+ if (_typeof(trustedTypes) !== "object" || typeof trustedTypes.createPolicy !== "function") {
+ return null;
+ }
+ var suffix = null;
+ var ATTR_NAME = "data-tt-policy-suffix";
+ if (document2.currentScript && document2.currentScript.hasAttribute(ATTR_NAME)) {
+ suffix = document2.currentScript.getAttribute(ATTR_NAME);
+ }
+ var policyName = "dompurify" + (suffix ? "#" + suffix : "");
+ try {
+ return trustedTypes.createPolicy(policyName, {
+ createHTML: function createHTML(html2) {
+ return html2;
+ },
+ createScriptURL: function createScriptURL(scriptUrl) {
+ return scriptUrl;
+ }
+ });
+ } catch (_2) {
+ console.warn("TrustedTypes policy " + policyName + " could not be created.");
+ return null;
+ }
+};
+function createDOMPurify() {
+ var window2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
+ var DOMPurify = function DOMPurify2(root2) {
+ return createDOMPurify(root2);
+ };
+ DOMPurify.version = "2.4.5";
+ DOMPurify.removed = [];
+ if (!window2 || !window2.document || window2.document.nodeType !== 9) {
+ DOMPurify.isSupported = false;
+ return DOMPurify;
+ }
+ var originalDocument = window2.document;
+ var document2 = window2.document;
+ var DocumentFragment = window2.DocumentFragment, HTMLTemplateElement = window2.HTMLTemplateElement, Node = window2.Node, Element = window2.Element, NodeFilter = window2.NodeFilter, _window$NamedNodeMap = window2.NamedNodeMap, NamedNodeMap = _window$NamedNodeMap === void 0 ? window2.NamedNodeMap || window2.MozNamedAttrMap : _window$NamedNodeMap, HTMLFormElement = window2.HTMLFormElement, DOMParser = window2.DOMParser, trustedTypes = window2.trustedTypes;
+ var ElementPrototype = Element.prototype;
+ var cloneNode = lookupGetter(ElementPrototype, "cloneNode");
+ var getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
+ var getChildNodes = lookupGetter(ElementPrototype, "childNodes");
+ var getParentNode = lookupGetter(ElementPrototype, "parentNode");
+ if (typeof HTMLTemplateElement === "function") {
+ var template = document2.createElement("template");
+ if (template.content && template.content.ownerDocument) {
+ document2 = template.content.ownerDocument;
+ }
+ }
+ var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);
+ var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML("") : "";
+ var _document = document2, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;
+ var importNode = originalDocument.importNode;
+ var documentMode = {};
+ try {
+ documentMode = clone(document2).documentMode ? document2.documentMode : {};
+ } catch (_2) {
+ }
+ var hooks = {};
+ DOMPurify.isSupported = typeof getParentNode === "function" && implementation && typeof implementation.createHTMLDocument !== "undefined" && documentMode !== 9;
+ var MUSTACHE_EXPR$1 = MUSTACHE_EXPR, ERB_EXPR$1 = ERB_EXPR, TMPLIT_EXPR$1 = TMPLIT_EXPR, DATA_ATTR$1 = DATA_ATTR, ARIA_ATTR$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$1 = ATTR_WHITESPACE;
+ var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;
+ var ALLOWED_TAGS = null;
+ var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));
+ var ALLOWED_ATTR = null;
+ var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));
+ var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {
+ tagNameCheck: {
+ writable: true,
+ configurable: false,
+ enumerable: true,
+ value: null
+ },
+ attributeNameCheck: {
+ writable: true,
+ configurable: false,
+ enumerable: true,
+ value: null
+ },
+ allowCustomizedBuiltInElements: {
+ writable: true,
+ configurable: false,
+ enumerable: true,
+ value: false
+ }
+ }));
+ var FORBID_TAGS = null;
+ var FORBID_ATTR = null;
+ var ALLOW_ARIA_ATTR = true;
+ var ALLOW_DATA_ATTR = true;
+ var ALLOW_UNKNOWN_PROTOCOLS = false;
+ var ALLOW_SELF_CLOSE_IN_ATTR = true;
+ var SAFE_FOR_TEMPLATES = false;
+ var WHOLE_DOCUMENT = false;
+ var SET_CONFIG = false;
+ var FORCE_BODY = false;
+ var RETURN_DOM = false;
+ var RETURN_DOM_FRAGMENT = false;
+ var RETURN_TRUSTED_TYPE = false;
+ var SANITIZE_DOM = true;
+ var SANITIZE_NAMED_PROPS = false;
+ var SANITIZE_NAMED_PROPS_PREFIX = "user-content-";
+ var KEEP_CONTENT = true;
+ var IN_PLACE = false;
+ var USE_PROFILES = {};
+ var FORBID_CONTENTS = null;
+ var DEFAULT_FORBID_CONTENTS = addToSet({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
+ var DATA_URI_TAGS = null;
+ var DEFAULT_DATA_URI_TAGS = addToSet({}, ["audio", "video", "img", "source", "image", "track"]);
+ var URI_SAFE_ATTRIBUTES = null;
+ var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]);
+ var MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML";
+ var SVG_NAMESPACE = "http://www.w3.org/2000/svg";
+ var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
+ var NAMESPACE = HTML_NAMESPACE;
+ var IS_EMPTY_INPUT = false;
+ var ALLOWED_NAMESPACES = null;
+ var DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
+ var PARSER_MEDIA_TYPE;
+ var SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"];
+ var DEFAULT_PARSER_MEDIA_TYPE = "text/html";
+ var transformCaseFunc;
+ var CONFIG = null;
+ var formElement = document2.createElement("form");
+ var isRegexOrFunction = function isRegexOrFunction2(testValue) {
+ return testValue instanceof RegExp || testValue instanceof Function;
+ };
+ var _parseConfig = function _parseConfig2(cfg) {
+ if (CONFIG && CONFIG === cfg) {
+ return;
+ }
+ if (!cfg || _typeof(cfg) !== "object") {
+ cfg = {};
+ }
+ cfg = clone(cfg);
+ PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes
+ SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;
+ transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? stringToString : stringToLowerCase;
+ ALLOWED_TAGS = "ALLOWED_TAGS" in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
+ ALLOWED_ATTR = "ALLOWED_ATTR" in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
+ ALLOWED_NAMESPACES = "ALLOWED_NAMESPACES" in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
+ URI_SAFE_ATTRIBUTES = "ADD_URI_SAFE_ATTR" in cfg ? addToSet(
+ clone(DEFAULT_URI_SAFE_ATTRIBUTES),
+ // eslint-disable-line indent
+ cfg.ADD_URI_SAFE_ATTR,
+ // eslint-disable-line indent
+ transformCaseFunc
+ // eslint-disable-line indent
+ ) : DEFAULT_URI_SAFE_ATTRIBUTES;
+ DATA_URI_TAGS = "ADD_DATA_URI_TAGS" in cfg ? addToSet(
+ clone(DEFAULT_DATA_URI_TAGS),
+ // eslint-disable-line indent
+ cfg.ADD_DATA_URI_TAGS,
+ // eslint-disable-line indent
+ transformCaseFunc
+ // eslint-disable-line indent
+ ) : DEFAULT_DATA_URI_TAGS;
+ FORBID_CONTENTS = "FORBID_CONTENTS" in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
+ FORBID_TAGS = "FORBID_TAGS" in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};
+ FORBID_ATTR = "FORBID_ATTR" in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};
+ USE_PROFILES = "USE_PROFILES" in cfg ? cfg.USE_PROFILES : false;
+ ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
+ ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
+ ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
+ ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false;
+ SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;
+ WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;
+ RETURN_DOM = cfg.RETURN_DOM || false;
+ RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;
+ RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;
+ FORCE_BODY = cfg.FORCE_BODY || false;
+ SANITIZE_DOM = cfg.SANITIZE_DOM !== false;
+ SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;
+ KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
+ IN_PLACE = cfg.IN_PLACE || false;
+ IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;
+ NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
+ CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
+ if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
+ CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
+ }
+ if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {
+ CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
+ }
+ if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") {
+ CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
+ }
+ if (SAFE_FOR_TEMPLATES) {
+ ALLOW_DATA_ATTR = false;
+ }
+ if (RETURN_DOM_FRAGMENT) {
+ RETURN_DOM = true;
+ }
+ if (USE_PROFILES) {
+ ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));
+ ALLOWED_ATTR = [];
+ if (USE_PROFILES.html === true) {
+ addToSet(ALLOWED_TAGS, html$1);
+ addToSet(ALLOWED_ATTR, html);
+ }
+ if (USE_PROFILES.svg === true) {
+ addToSet(ALLOWED_TAGS, svg$1);
+ addToSet(ALLOWED_ATTR, svg);
+ addToSet(ALLOWED_ATTR, xml);
+ }
+ if (USE_PROFILES.svgFilters === true) {
+ addToSet(ALLOWED_TAGS, svgFilters);
+ addToSet(ALLOWED_ATTR, svg);
+ addToSet(ALLOWED_ATTR, xml);
+ }
+ if (USE_PROFILES.mathMl === true) {
+ addToSet(ALLOWED_TAGS, mathMl$1);
+ addToSet(ALLOWED_ATTR, mathMl);
+ addToSet(ALLOWED_ATTR, xml);
+ }
+ }
+ if (cfg.ADD_TAGS) {
+ if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
+ ALLOWED_TAGS = clone(ALLOWED_TAGS);
+ }
+ addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
+ }
+ if (cfg.ADD_ATTR) {
+ if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
+ ALLOWED_ATTR = clone(ALLOWED_ATTR);
+ }
+ addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
+ }
+ if (cfg.ADD_URI_SAFE_ATTR) {
+ addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
+ }
+ if (cfg.FORBID_CONTENTS) {
+ if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
+ FORBID_CONTENTS = clone(FORBID_CONTENTS);
+ }
+ addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
+ }
+ if (KEEP_CONTENT) {
+ ALLOWED_TAGS["#text"] = true;
+ }
+ if (WHOLE_DOCUMENT) {
+ addToSet(ALLOWED_TAGS, ["html", "head", "body"]);
+ }
+ if (ALLOWED_TAGS.table) {
+ addToSet(ALLOWED_TAGS, ["tbody"]);
+ delete FORBID_TAGS.tbody;
+ }
+ if (freeze) {
+ freeze(cfg);
+ }
+ CONFIG = cfg;
+ };
+ var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ["mi", "mo", "mn", "ms", "mtext"]);
+ var HTML_INTEGRATION_POINTS = addToSet({}, ["foreignobject", "desc", "title", "annotation-xml"]);
+ var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ["title", "style", "font", "a", "script"]);
+ var ALL_SVG_TAGS = addToSet({}, svg$1);
+ addToSet(ALL_SVG_TAGS, svgFilters);
+ addToSet(ALL_SVG_TAGS, svgDisallowed);
+ var ALL_MATHML_TAGS = addToSet({}, mathMl$1);
+ addToSet(ALL_MATHML_TAGS, mathMlDisallowed);
+ var _checkValidNamespace = function _checkValidNamespace2(element) {
+ var parent = getParentNode(element);
+ if (!parent || !parent.tagName) {
+ parent = {
+ namespaceURI: NAMESPACE,
+ tagName: "template"
+ };
+ }
+ var tagName = stringToLowerCase(element.tagName);
+ var parentTagName = stringToLowerCase(parent.tagName);
+ if (!ALLOWED_NAMESPACES[element.namespaceURI]) {
+ return false;
+ }
+ if (element.namespaceURI === SVG_NAMESPACE) {
+ if (parent.namespaceURI === HTML_NAMESPACE) {
+ return tagName === "svg";
+ }
+ if (parent.namespaceURI === MATHML_NAMESPACE) {
+ return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
+ }
+ return Boolean(ALL_SVG_TAGS[tagName]);
+ }
+ if (element.namespaceURI === MATHML_NAMESPACE) {
+ if (parent.namespaceURI === HTML_NAMESPACE) {
+ return tagName === "math";
+ }
+ if (parent.namespaceURI === SVG_NAMESPACE) {
+ return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName];
+ }
+ return Boolean(ALL_MATHML_TAGS[tagName]);
+ }
+ if (element.namespaceURI === HTML_NAMESPACE) {
+ if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
+ return false;
+ }
+ if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
+ return false;
+ }
+ return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
+ }
+ if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && ALLOWED_NAMESPACES[element.namespaceURI]) {
+ return true;
+ }
+ return false;
+ };
+ var _forceRemove = function _forceRemove2(node) {
+ arrayPush(DOMPurify.removed, {
+ element: node
+ });
+ try {
+ node.parentNode.removeChild(node);
+ } catch (_2) {
+ try {
+ node.outerHTML = emptyHTML;
+ } catch (_3) {
+ node.remove();
+ }
+ }
+ };
+ var _removeAttribute = function _removeAttribute2(name, node) {
+ try {
+ arrayPush(DOMPurify.removed, {
+ attribute: node.getAttributeNode(name),
+ from: node
+ });
+ } catch (_2) {
+ arrayPush(DOMPurify.removed, {
+ attribute: null,
+ from: node
+ });
+ }
+ node.removeAttribute(name);
+ if (name === "is" && !ALLOWED_ATTR[name]) {
+ if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
+ try {
+ _forceRemove(node);
+ } catch (_2) {
+ }
+ } else {
+ try {
+ node.setAttribute(name, "");
+ } catch (_2) {
+ }
+ }
+ }
+ };
+ var _initDocument = function _initDocument2(dirty) {
+ var doc;
+ var leadingWhitespace;
+ if (FORCE_BODY) {
+ dirty = "" + dirty;
+ } else {
+ var matches = stringMatch(dirty, /^[\r\n\t ]+/);
+ leadingWhitespace = matches && matches[0];
+ }
+ if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE === HTML_NAMESPACE) {
+ dirty = '' + dirty + "";
+ }
+ var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
+ if (NAMESPACE === HTML_NAMESPACE) {
+ try {
+ doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
+ } catch (_2) {
+ }
+ }
+ if (!doc || !doc.documentElement) {
+ doc = implementation.createDocument(NAMESPACE, "template", null);
+ try {
+ doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;
+ } catch (_2) {
+ }
+ }
+ var body = doc.body || doc.documentElement;
+ if (dirty && leadingWhitespace) {
+ body.insertBefore(document2.createTextNode(leadingWhitespace), body.childNodes[0] || null);
+ }
+ if (NAMESPACE === HTML_NAMESPACE) {
+ return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0];
+ }
+ return WHOLE_DOCUMENT ? doc.documentElement : body;
+ };
+ var _createIterator = function _createIterator2(root2) {
+ return createNodeIterator.call(
+ root2.ownerDocument || root2,
+ root2,
+ // eslint-disable-next-line no-bitwise
+ NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT,
+ null,
+ false
+ );
+ };
+ var _isClobbered = function _isClobbered2(elm) {
+ return elm instanceof HTMLFormElement && (typeof elm.nodeName !== "string" || typeof elm.textContent !== "string" || typeof elm.removeChild !== "function" || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== "function" || typeof elm.setAttribute !== "function" || typeof elm.namespaceURI !== "string" || typeof elm.insertBefore !== "function" || typeof elm.hasChildNodes !== "function");
+ };
+ var _isNode = function _isNode2(object) {
+ return _typeof(Node) === "object" ? object instanceof Node : object && _typeof(object) === "object" && typeof object.nodeType === "number" && typeof object.nodeName === "string";
+ };
+ var _executeHook = function _executeHook2(entryPoint, currentNode, data) {
+ if (!hooks[entryPoint]) {
+ return;
+ }
+ arrayForEach(hooks[entryPoint], function(hook) {
+ hook.call(DOMPurify, currentNode, data, CONFIG);
+ });
+ };
+ var _sanitizeElements = function _sanitizeElements2(currentNode) {
+ var content;
+ _executeHook("beforeSanitizeElements", currentNode, null);
+ if (_isClobbered(currentNode)) {
+ _forceRemove(currentNode);
+ return true;
+ }
+ if (regExpTest(/[\u0080-\uFFFF]/, currentNode.nodeName)) {
+ _forceRemove(currentNode);
+ return true;
+ }
+ var tagName = transformCaseFunc(currentNode.nodeName);
+ _executeHook("uponSanitizeElement", currentNode, {
+ tagName,
+ allowedTags: ALLOWED_TAGS
+ });
+ if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
+ _forceRemove(currentNode);
+ return true;
+ }
+ if (tagName === "select" && regExpTest(/= 0; --i) {
+ parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));
+ }
+ }
+ }
+ _forceRemove(currentNode);
+ return true;
+ }
+ if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
+ _forceRemove(currentNode);
+ return true;
+ }
+ if ((tagName === "noscript" || tagName === "noembed") && regExpTest(/<\/no(script|embed)/i, currentNode.innerHTML)) {
+ _forceRemove(currentNode);
+ return true;
+ }
+ if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
+ content = currentNode.textContent;
+ content = stringReplace(content, MUSTACHE_EXPR$1, " ");
+ content = stringReplace(content, ERB_EXPR$1, " ");
+ content = stringReplace(content, TMPLIT_EXPR$1, " ");
+ if (currentNode.textContent !== content) {
+ arrayPush(DOMPurify.removed, {
+ element: currentNode.cloneNode()
+ });
+ currentNode.textContent = content;
+ }
+ }
+ _executeHook("afterSanitizeElements", currentNode, null);
+ return false;
+ };
+ var _isValidAttribute = function _isValidAttribute2(lcTag, lcName, value) {
+ if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document2 || value in formElement)) {
+ return false;
+ }
+ if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName))
+ ;
+ else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName))
+ ;
+ else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
+ if (
+ // First condition does a very basic check if a) it's basically a valid custom element tagname AND
+ // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
+ // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
+ _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
+ // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
+ lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))
+ )
+ ;
+ else {
+ return false;
+ }
+ } else if (URI_SAFE_ATTRIBUTES[lcName])
+ ;
+ else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, "")))
+ ;
+ else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag])
+ ;
+ else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, "")))
+ ;
+ else if (!value)
+ ;
+ else {
+ return false;
+ }
+ return true;
+ };
+ var _basicCustomElementTest = function _basicCustomElementTest2(tagName) {
+ return tagName.indexOf("-") > 0;
+ };
+ var _sanitizeAttributes = function _sanitizeAttributes2(currentNode) {
+ var attr;
+ var value;
+ var lcName;
+ var l;
+ _executeHook("beforeSanitizeAttributes", currentNode, null);
+ var attributes = currentNode.attributes;
+ if (!attributes) {
+ return;
+ }
+ var hookEvent = {
+ attrName: "",
+ attrValue: "",
+ keepAttr: true,
+ allowedAttributes: ALLOWED_ATTR
+ };
+ l = attributes.length;
+ while (l--) {
+ attr = attributes[l];
+ var _attr = attr, name = _attr.name, namespaceURI = _attr.namespaceURI;
+ value = name === "value" ? attr.value : stringTrim(attr.value);
+ lcName = transformCaseFunc(name);
+ hookEvent.attrName = lcName;
+ hookEvent.attrValue = value;
+ hookEvent.keepAttr = true;
+ hookEvent.forceKeepAttr = void 0;
+ _executeHook("uponSanitizeAttribute", currentNode, hookEvent);
+ value = hookEvent.attrValue;
+ if (hookEvent.forceKeepAttr) {
+ continue;
+ }
+ _removeAttribute(name, currentNode);
+ if (!hookEvent.keepAttr) {
+ continue;
+ }
+ if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) {
+ _removeAttribute(name, currentNode);
+ continue;
+ }
+ if (SAFE_FOR_TEMPLATES) {
+ value = stringReplace(value, MUSTACHE_EXPR$1, " ");
+ value = stringReplace(value, ERB_EXPR$1, " ");
+ value = stringReplace(value, TMPLIT_EXPR$1, " ");
+ }
+ var lcTag = transformCaseFunc(currentNode.nodeName);
+ if (!_isValidAttribute(lcTag, lcName, value)) {
+ continue;
+ }
+ if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name")) {
+ _removeAttribute(name, currentNode);
+ value = SANITIZE_NAMED_PROPS_PREFIX + value;
+ }
+ if (trustedTypesPolicy && _typeof(trustedTypes) === "object" && typeof trustedTypes.getAttributeType === "function") {
+ if (namespaceURI)
+ ;
+ else {
+ switch (trustedTypes.getAttributeType(lcTag, lcName)) {
+ case "TrustedHTML":
+ value = trustedTypesPolicy.createHTML(value);
+ break;
+ case "TrustedScriptURL":
+ value = trustedTypesPolicy.createScriptURL(value);
+ break;
+ }
+ }
+ }
+ try {
+ if (namespaceURI) {
+ currentNode.setAttributeNS(namespaceURI, name, value);
+ } else {
+ currentNode.setAttribute(name, value);
+ }
+ arrayPop(DOMPurify.removed);
+ } catch (_2) {
+ }
+ }
+ _executeHook("afterSanitizeAttributes", currentNode, null);
+ };
+ var _sanitizeShadowDOM = function _sanitizeShadowDOM2(fragment) {
+ var shadowNode;
+ var shadowIterator = _createIterator(fragment);
+ _executeHook("beforeSanitizeShadowDOM", fragment, null);
+ while (shadowNode = shadowIterator.nextNode()) {
+ _executeHook("uponSanitizeShadowNode", shadowNode, null);
+ if (_sanitizeElements(shadowNode)) {
+ continue;
+ }
+ if (shadowNode.content instanceof DocumentFragment) {
+ _sanitizeShadowDOM2(shadowNode.content);
+ }
+ _sanitizeAttributes(shadowNode);
+ }
+ _executeHook("afterSanitizeShadowDOM", fragment, null);
+ };
+ DOMPurify.sanitize = function(dirty) {
+ var cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
+ var body;
+ var importedNode;
+ var currentNode;
+ var oldNode;
+ var returnNode;
+ IS_EMPTY_INPUT = !dirty;
+ if (IS_EMPTY_INPUT) {
+ dirty = "";
+ }
+ if (typeof dirty !== "string" && !_isNode(dirty)) {
+ if (typeof dirty.toString !== "function") {
+ throw typeErrorCreate("toString is not a function");
+ } else {
+ dirty = dirty.toString();
+ if (typeof dirty !== "string") {
+ throw typeErrorCreate("dirty is not a string, aborting");
+ }
+ }
+ }
+ if (!DOMPurify.isSupported) {
+ if (_typeof(window2.toStaticHTML) === "object" || typeof window2.toStaticHTML === "function") {
+ if (typeof dirty === "string") {
+ return window2.toStaticHTML(dirty);
+ }
+ if (_isNode(dirty)) {
+ return window2.toStaticHTML(dirty.outerHTML);
+ }
+ }
+ return dirty;
+ }
+ if (!SET_CONFIG) {
+ _parseConfig(cfg);
+ }
+ DOMPurify.removed = [];
+ if (typeof dirty === "string") {
+ IN_PLACE = false;
+ }
+ if (IN_PLACE) {
+ if (dirty.nodeName) {
+ var tagName = transformCaseFunc(dirty.nodeName);
+ if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
+ throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
+ }
+ }
+ } else if (dirty instanceof Node) {
+ body = _initDocument("");
+ importedNode = body.ownerDocument.importNode(dirty, true);
+ if (importedNode.nodeType === 1 && importedNode.nodeName === "BODY") {
+ body = importedNode;
+ } else if (importedNode.nodeName === "HTML") {
+ body = importedNode;
+ } else {
+ body.appendChild(importedNode);
+ }
+ } else {
+ if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes
+ dirty.indexOf("<") === -1) {
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
+ }
+ body = _initDocument(dirty);
+ if (!body) {
+ return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : "";
+ }
+ }
+ if (body && FORCE_BODY) {
+ _forceRemove(body.firstChild);
+ }
+ var nodeIterator = _createIterator(IN_PLACE ? dirty : body);
+ while (currentNode = nodeIterator.nextNode()) {
+ if (currentNode.nodeType === 3 && currentNode === oldNode) {
+ continue;
+ }
+ if (_sanitizeElements(currentNode)) {
+ continue;
+ }
+ if (currentNode.content instanceof DocumentFragment) {
+ _sanitizeShadowDOM(currentNode.content);
+ }
+ _sanitizeAttributes(currentNode);
+ oldNode = currentNode;
+ }
+ oldNode = null;
+ if (IN_PLACE) {
+ return dirty;
+ }
+ if (RETURN_DOM) {
+ if (RETURN_DOM_FRAGMENT) {
+ returnNode = createDocumentFragment.call(body.ownerDocument);
+ while (body.firstChild) {
+ returnNode.appendChild(body.firstChild);
+ }
+ } else {
+ returnNode = body;
+ }
+ if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmod) {
+ returnNode = importNode.call(originalDocument, returnNode, true);
+ }
+ return returnNode;
+ }
+ var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
+ if (WHOLE_DOCUMENT && ALLOWED_TAGS["!doctype"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
+ serializedHTML = "\n" + serializedHTML;
+ }
+ if (SAFE_FOR_TEMPLATES) {
+ serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, " ");
+ serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, " ");
+ serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR$1, " ");
+ }
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
+ };
+ DOMPurify.setConfig = function(cfg) {
+ _parseConfig(cfg);
+ SET_CONFIG = true;
+ };
+ DOMPurify.clearConfig = function() {
+ CONFIG = null;
+ SET_CONFIG = false;
+ };
+ DOMPurify.isValidAttribute = function(tag, attr, value) {
+ if (!CONFIG) {
+ _parseConfig({});
+ }
+ var lcTag = transformCaseFunc(tag);
+ var lcName = transformCaseFunc(attr);
+ return _isValidAttribute(lcTag, lcName, value);
+ };
+ DOMPurify.addHook = function(entryPoint, hookFunction) {
+ if (typeof hookFunction !== "function") {
+ return;
+ }
+ hooks[entryPoint] = hooks[entryPoint] || [];
+ arrayPush(hooks[entryPoint], hookFunction);
+ };
+ DOMPurify.removeHook = function(entryPoint) {
+ if (hooks[entryPoint]) {
+ return arrayPop(hooks[entryPoint]);
+ }
+ };
+ DOMPurify.removeHooks = function(entryPoint) {
+ if (hooks[entryPoint]) {
+ hooks[entryPoint] = [];
+ }
+ };
+ DOMPurify.removeAllHooks = function() {
+ hooks = {};
+ };
+ return DOMPurify;
+}
+var purify = createDOMPurify();
+const getRows = (s) => {
+ if (!s) {
+ return [""];
+ }
+ const str = breakToPlaceholder(s).replace(/\\n/g, "#br#");
+ return str.split("#br#");
+};
+const removeScript = (txt) => {
+ return purify.sanitize(txt);
+};
+const sanitizeMore = (text2, config2) => {
+ var _a;
+ if (((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels) !== false) {
+ const level = config2.securityLevel;
+ if (level === "antiscript" || level === "strict") {
+ text2 = removeScript(text2);
+ } else if (level !== "loose") {
+ text2 = breakToPlaceholder(text2);
+ text2 = text2.replace(//g, ">");
+ text2 = text2.replace(/=/g, "=");
+ text2 = placeholderToBreak(text2);
+ }
+ }
+ return text2;
+};
+const sanitizeText$1 = (text2, config2) => {
+ if (!text2) {
+ return text2;
+ }
+ if (config2.dompurifyConfig) {
+ text2 = purify.sanitize(sanitizeMore(text2, config2), config2.dompurifyConfig).toString();
+ } else {
+ text2 = purify.sanitize(sanitizeMore(text2, config2), {
+ FORBID_TAGS: ["style"]
+ }).toString();
+ }
+ return text2;
+};
+const sanitizeTextOrArray = (a, config2) => {
+ if (typeof a === "string") {
+ return sanitizeText$1(a, config2);
+ }
+ return a.flat().map((x) => sanitizeText$1(x, config2));
+};
+const lineBreakRegex = /
/gi;
+const hasBreaks = (text2) => {
+ return lineBreakRegex.test(text2);
+};
+const splitBreaks = (text2) => {
+ return text2.split(lineBreakRegex);
+};
+const placeholderToBreak = (s) => {
+ return s.replace(/#br#/g, "
");
+};
+const breakToPlaceholder = (s) => {
+ return s.replace(lineBreakRegex, "#br#");
+};
+const getUrl = (useAbsolute) => {
+ let url = "";
+ if (useAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replaceAll(/\(/g, "\\(");
+ url = url.replaceAll(/\)/g, "\\)");
+ }
+ return url;
+};
+const evaluate = (val) => val === false || ["false", "null", "0"].includes(String(val).trim().toLowerCase()) ? false : true;
+const parseGenericTypes = function(text2) {
+ let cleanedText = text2;
+ if (text2.split("~").length - 1 >= 2) {
+ let newCleanedText = cleanedText;
+ do {
+ cleanedText = newCleanedText;
+ newCleanedText = cleanedText.replace(/~([^\s,:;]+)~/, "<$1>");
+ } while (newCleanedText != cleanedText);
+ return parseGenericTypes(newCleanedText);
+ } else {
+ return cleanedText;
+ }
+};
+const common = {
+ getRows,
+ sanitizeText: sanitizeText$1,
+ sanitizeTextOrArray,
+ hasBreaks,
+ splitBreaks,
+ lineBreakRegex,
+ removeScript,
+ getUrl,
+ evaluate
+};
+const Channel = {
+ /* CLAMP */
+ min: {
+ r: 0,
+ g: 0,
+ b: 0,
+ s: 0,
+ l: 0,
+ a: 0
+ },
+ max: {
+ r: 255,
+ g: 255,
+ b: 255,
+ h: 360,
+ s: 100,
+ l: 100,
+ a: 1
+ },
+ clamp: {
+ r: (r) => r >= 255 ? 255 : r < 0 ? 0 : r,
+ g: (g) => g >= 255 ? 255 : g < 0 ? 0 : g,
+ b: (b) => b >= 255 ? 255 : b < 0 ? 0 : b,
+ h: (h) => h % 360,
+ s: (s) => s >= 100 ? 100 : s < 0 ? 0 : s,
+ l: (l) => l >= 100 ? 100 : l < 0 ? 0 : l,
+ a: (a) => a >= 1 ? 1 : a < 0 ? 0 : a
+ },
+ /* CONVERSION */
+ //SOURCE: https://planetcalc.com/7779
+ toLinear: (c) => {
+ const n = c / 255;
+ return c > 0.03928 ? Math.pow((n + 0.055) / 1.055, 2.4) : n / 12.92;
+ },
+ //SOURCE: https://gist.github.com/mjackson/5311256
+ hue2rgb: (p, q, t) => {
+ if (t < 0)
+ t += 1;
+ if (t > 1)
+ t -= 1;
+ if (t < 1 / 6)
+ return p + (q - p) * 6 * t;
+ if (t < 1 / 2)
+ return q;
+ if (t < 2 / 3)
+ return p + (q - p) * (2 / 3 - t) * 6;
+ return p;
+ },
+ hsl2rgb: ({ h, s, l }, channel2) => {
+ if (!s)
+ return l * 2.55;
+ h /= 360;
+ s /= 100;
+ l /= 100;
+ const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
+ const p = 2 * l - q;
+ switch (channel2) {
+ case "r":
+ return Channel.hue2rgb(p, q, h + 1 / 3) * 255;
+ case "g":
+ return Channel.hue2rgb(p, q, h) * 255;
+ case "b":
+ return Channel.hue2rgb(p, q, h - 1 / 3) * 255;
+ }
+ },
+ rgb2hsl: ({ r, g, b }, channel2) => {
+ r /= 255;
+ g /= 255;
+ b /= 255;
+ const max = Math.max(r, g, b);
+ const min = Math.min(r, g, b);
+ const l = (max + min) / 2;
+ if (channel2 === "l")
+ return l * 100;
+ if (max === min)
+ return 0;
+ const d = max - min;
+ const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
+ if (channel2 === "s")
+ return s * 100;
+ switch (max) {
+ case r:
+ return ((g - b) / d + (g < b ? 6 : 0)) * 60;
+ case g:
+ return ((b - r) / d + 2) * 60;
+ case b:
+ return ((r - g) / d + 4) * 60;
+ default:
+ return -1;
+ }
+ }
+};
+const channel = Channel;
+const Lang = {
+ /* API */
+ clamp: (number, lower2, upper) => {
+ if (lower2 > upper)
+ return Math.min(lower2, Math.max(upper, number));
+ return Math.min(upper, Math.max(lower2, number));
+ },
+ round: (number) => {
+ return Math.round(number * 1e10) / 1e10;
+ }
+};
+const lang = Lang;
+const Unit = {
+ /* API */
+ dec2hex: (dec) => {
+ const hex2 = Math.round(dec).toString(16);
+ return hex2.length > 1 ? hex2 : `0${hex2}`;
+ }
+};
+const unit = Unit;
+const Utils = {
+ channel,
+ lang,
+ unit
+};
+const _ = Utils;
+const DEC2HEX = {};
+for (let i = 0; i <= 255; i++)
+ DEC2HEX[i] = _.unit.dec2hex(i);
+const TYPE = {
+ ALL: 0,
+ RGB: 1,
+ HSL: 2
+};
+class Type {
+ constructor() {
+ this.type = TYPE.ALL;
+ }
+ /* API */
+ get() {
+ return this.type;
+ }
+ set(type) {
+ if (this.type && this.type !== type)
+ throw new Error("Cannot change both RGB and HSL channels at the same time");
+ this.type = type;
+ }
+ reset() {
+ this.type = TYPE.ALL;
+ }
+ is(type) {
+ return this.type === type;
+ }
+}
+const Type$1 = Type;
+class Channels {
+ /* CONSTRUCTOR */
+ constructor(data, color2) {
+ this.color = color2;
+ this.changed = false;
+ this.data = data;
+ this.type = new Type$1();
+ }
+ /* API */
+ set(data, color2) {
+ this.color = color2;
+ this.changed = false;
+ this.data = data;
+ this.type.type = TYPE.ALL;
+ return this;
+ }
+ /* HELPERS */
+ _ensureHSL() {
+ const data = this.data;
+ const { h, s, l } = data;
+ if (h === void 0)
+ data.h = _.channel.rgb2hsl(data, "h");
+ if (s === void 0)
+ data.s = _.channel.rgb2hsl(data, "s");
+ if (l === void 0)
+ data.l = _.channel.rgb2hsl(data, "l");
+ }
+ _ensureRGB() {
+ const data = this.data;
+ const { r, g, b } = data;
+ if (r === void 0)
+ data.r = _.channel.hsl2rgb(data, "r");
+ if (g === void 0)
+ data.g = _.channel.hsl2rgb(data, "g");
+ if (b === void 0)
+ data.b = _.channel.hsl2rgb(data, "b");
+ }
+ /* GETTERS */
+ get r() {
+ const data = this.data;
+ const r = data.r;
+ if (!this.type.is(TYPE.HSL) && r !== void 0)
+ return r;
+ this._ensureHSL();
+ return _.channel.hsl2rgb(data, "r");
+ }
+ get g() {
+ const data = this.data;
+ const g = data.g;
+ if (!this.type.is(TYPE.HSL) && g !== void 0)
+ return g;
+ this._ensureHSL();
+ return _.channel.hsl2rgb(data, "g");
+ }
+ get b() {
+ const data = this.data;
+ const b = data.b;
+ if (!this.type.is(TYPE.HSL) && b !== void 0)
+ return b;
+ this._ensureHSL();
+ return _.channel.hsl2rgb(data, "b");
+ }
+ get h() {
+ const data = this.data;
+ const h = data.h;
+ if (!this.type.is(TYPE.RGB) && h !== void 0)
+ return h;
+ this._ensureRGB();
+ return _.channel.rgb2hsl(data, "h");
+ }
+ get s() {
+ const data = this.data;
+ const s = data.s;
+ if (!this.type.is(TYPE.RGB) && s !== void 0)
+ return s;
+ this._ensureRGB();
+ return _.channel.rgb2hsl(data, "s");
+ }
+ get l() {
+ const data = this.data;
+ const l = data.l;
+ if (!this.type.is(TYPE.RGB) && l !== void 0)
+ return l;
+ this._ensureRGB();
+ return _.channel.rgb2hsl(data, "l");
+ }
+ get a() {
+ return this.data.a;
+ }
+ /* SETTERS */
+ set r(r) {
+ this.type.set(TYPE.RGB);
+ this.changed = true;
+ this.data.r = r;
+ }
+ set g(g) {
+ this.type.set(TYPE.RGB);
+ this.changed = true;
+ this.data.g = g;
+ }
+ set b(b) {
+ this.type.set(TYPE.RGB);
+ this.changed = true;
+ this.data.b = b;
+ }
+ set h(h) {
+ this.type.set(TYPE.HSL);
+ this.changed = true;
+ this.data.h = h;
+ }
+ set s(s) {
+ this.type.set(TYPE.HSL);
+ this.changed = true;
+ this.data.s = s;
+ }
+ set l(l) {
+ this.type.set(TYPE.HSL);
+ this.changed = true;
+ this.data.l = l;
+ }
+ set a(a) {
+ this.changed = true;
+ this.data.a = a;
+ }
+}
+const Channels$1 = Channels;
+const channels = new Channels$1({ r: 0, g: 0, b: 0, a: 0 }, "transparent");
+const ChannelsReusable = channels;
+const Hex = {
+ /* VARIABLES */
+ re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,
+ /* API */
+ parse: (color2) => {
+ if (color2.charCodeAt(0) !== 35)
+ return;
+ const match = color2.match(Hex.re);
+ if (!match)
+ return;
+ const hex2 = match[1];
+ const dec = parseInt(hex2, 16);
+ const length = hex2.length;
+ const hasAlpha = length % 4 === 0;
+ const isFullLength = length > 4;
+ const multiplier = isFullLength ? 1 : 17;
+ const bits = isFullLength ? 8 : 4;
+ const bitsOffset = hasAlpha ? 0 : -1;
+ const mask = isFullLength ? 255 : 15;
+ return ChannelsReusable.set({
+ r: (dec >> bits * (bitsOffset + 3) & mask) * multiplier,
+ g: (dec >> bits * (bitsOffset + 2) & mask) * multiplier,
+ b: (dec >> bits * (bitsOffset + 1) & mask) * multiplier,
+ a: hasAlpha ? (dec & mask) * multiplier / 255 : 1
+ }, color2);
+ },
+ stringify: (channels2) => {
+ const { r, g, b, a } = channels2;
+ if (a < 1) {
+ return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`;
+ } else {
+ return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`;
+ }
+ }
+};
+const Hex$1 = Hex;
+const HSL = {
+ /* VARIABLES */
+ re: /^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,
+ hueRe: /^(.+?)(deg|grad|rad|turn)$/i,
+ /* HELPERS */
+ _hue2deg: (hue2) => {
+ const match = hue2.match(HSL.hueRe);
+ if (match) {
+ const [, number, unit2] = match;
+ switch (unit2) {
+ case "grad":
+ return _.channel.clamp.h(parseFloat(number) * 0.9);
+ case "rad":
+ return _.channel.clamp.h(parseFloat(number) * 180 / Math.PI);
+ case "turn":
+ return _.channel.clamp.h(parseFloat(number) * 360);
+ }
+ }
+ return _.channel.clamp.h(parseFloat(hue2));
+ },
+ /* API */
+ parse: (color2) => {
+ const charCode = color2.charCodeAt(0);
+ if (charCode !== 104 && charCode !== 72)
+ return;
+ const match = color2.match(HSL.re);
+ if (!match)
+ return;
+ const [, h, s, l, a, isAlphaPercentage] = match;
+ return ChannelsReusable.set({
+ h: HSL._hue2deg(h),
+ s: _.channel.clamp.s(parseFloat(s)),
+ l: _.channel.clamp.l(parseFloat(l)),
+ a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
+ }, color2);
+ },
+ stringify: (channels2) => {
+ const { h, s, l, a } = channels2;
+ if (a < 1) {
+ return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`;
+ } else {
+ return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`;
+ }
+ }
+};
+const HSL$1 = HSL;
+const Keyword = {
+ /* VARIABLES */
+ colors: {
+ aliceblue: "#f0f8ff",
+ antiquewhite: "#faebd7",
+ aqua: "#00ffff",
+ aquamarine: "#7fffd4",
+ azure: "#f0ffff",
+ beige: "#f5f5dc",
+ bisque: "#ffe4c4",
+ black: "#000000",
+ blanchedalmond: "#ffebcd",
+ blue: "#0000ff",
+ blueviolet: "#8a2be2",
+ brown: "#a52a2a",
+ burlywood: "#deb887",
+ cadetblue: "#5f9ea0",
+ chartreuse: "#7fff00",
+ chocolate: "#d2691e",
+ coral: "#ff7f50",
+ cornflowerblue: "#6495ed",
+ cornsilk: "#fff8dc",
+ crimson: "#dc143c",
+ cyanaqua: "#00ffff",
+ darkblue: "#00008b",
+ darkcyan: "#008b8b",
+ darkgoldenrod: "#b8860b",
+ darkgray: "#a9a9a9",
+ darkgreen: "#006400",
+ darkgrey: "#a9a9a9",
+ darkkhaki: "#bdb76b",
+ darkmagenta: "#8b008b",
+ darkolivegreen: "#556b2f",
+ darkorange: "#ff8c00",
+ darkorchid: "#9932cc",
+ darkred: "#8b0000",
+ darksalmon: "#e9967a",
+ darkseagreen: "#8fbc8f",
+ darkslateblue: "#483d8b",
+ darkslategray: "#2f4f4f",
+ darkslategrey: "#2f4f4f",
+ darkturquoise: "#00ced1",
+ darkviolet: "#9400d3",
+ deeppink: "#ff1493",
+ deepskyblue: "#00bfff",
+ dimgray: "#696969",
+ dimgrey: "#696969",
+ dodgerblue: "#1e90ff",
+ firebrick: "#b22222",
+ floralwhite: "#fffaf0",
+ forestgreen: "#228b22",
+ fuchsia: "#ff00ff",
+ gainsboro: "#dcdcdc",
+ ghostwhite: "#f8f8ff",
+ gold: "#ffd700",
+ goldenrod: "#daa520",
+ gray: "#808080",
+ green: "#008000",
+ greenyellow: "#adff2f",
+ grey: "#808080",
+ honeydew: "#f0fff0",
+ hotpink: "#ff69b4",
+ indianred: "#cd5c5c",
+ indigo: "#4b0082",
+ ivory: "#fffff0",
+ khaki: "#f0e68c",
+ lavender: "#e6e6fa",
+ lavenderblush: "#fff0f5",
+ lawngreen: "#7cfc00",
+ lemonchiffon: "#fffacd",
+ lightblue: "#add8e6",
+ lightcoral: "#f08080",
+ lightcyan: "#e0ffff",
+ lightgoldenrodyellow: "#fafad2",
+ lightgray: "#d3d3d3",
+ lightgreen: "#90ee90",
+ lightgrey: "#d3d3d3",
+ lightpink: "#ffb6c1",
+ lightsalmon: "#ffa07a",
+ lightseagreen: "#20b2aa",
+ lightskyblue: "#87cefa",
+ lightslategray: "#778899",
+ lightslategrey: "#778899",
+ lightsteelblue: "#b0c4de",
+ lightyellow: "#ffffe0",
+ lime: "#00ff00",
+ limegreen: "#32cd32",
+ linen: "#faf0e6",
+ magenta: "#ff00ff",
+ maroon: "#800000",
+ mediumaquamarine: "#66cdaa",
+ mediumblue: "#0000cd",
+ mediumorchid: "#ba55d3",
+ mediumpurple: "#9370db",
+ mediumseagreen: "#3cb371",
+ mediumslateblue: "#7b68ee",
+ mediumspringgreen: "#00fa9a",
+ mediumturquoise: "#48d1cc",
+ mediumvioletred: "#c71585",
+ midnightblue: "#191970",
+ mintcream: "#f5fffa",
+ mistyrose: "#ffe4e1",
+ moccasin: "#ffe4b5",
+ navajowhite: "#ffdead",
+ navy: "#000080",
+ oldlace: "#fdf5e6",
+ olive: "#808000",
+ olivedrab: "#6b8e23",
+ orange: "#ffa500",
+ orangered: "#ff4500",
+ orchid: "#da70d6",
+ palegoldenrod: "#eee8aa",
+ palegreen: "#98fb98",
+ paleturquoise: "#afeeee",
+ palevioletred: "#db7093",
+ papayawhip: "#ffefd5",
+ peachpuff: "#ffdab9",
+ peru: "#cd853f",
+ pink: "#ffc0cb",
+ plum: "#dda0dd",
+ powderblue: "#b0e0e6",
+ purple: "#800080",
+ rebeccapurple: "#663399",
+ red: "#ff0000",
+ rosybrown: "#bc8f8f",
+ royalblue: "#4169e1",
+ saddlebrown: "#8b4513",
+ salmon: "#fa8072",
+ sandybrown: "#f4a460",
+ seagreen: "#2e8b57",
+ seashell: "#fff5ee",
+ sienna: "#a0522d",
+ silver: "#c0c0c0",
+ skyblue: "#87ceeb",
+ slateblue: "#6a5acd",
+ slategray: "#708090",
+ slategrey: "#708090",
+ snow: "#fffafa",
+ springgreen: "#00ff7f",
+ tan: "#d2b48c",
+ teal: "#008080",
+ thistle: "#d8bfd8",
+ transparent: "#00000000",
+ turquoise: "#40e0d0",
+ violet: "#ee82ee",
+ wheat: "#f5deb3",
+ white: "#ffffff",
+ whitesmoke: "#f5f5f5",
+ yellow: "#ffff00",
+ yellowgreen: "#9acd32"
+ },
+ /* API */
+ parse: (color2) => {
+ color2 = color2.toLowerCase();
+ const hex2 = Keyword.colors[color2];
+ if (!hex2)
+ return;
+ return Hex$1.parse(hex2);
+ },
+ stringify: (channels2) => {
+ const hex2 = Hex$1.stringify(channels2);
+ for (const name in Keyword.colors) {
+ if (Keyword.colors[name] === hex2)
+ return name;
+ }
+ return;
+ }
+};
+const Keyword$1 = Keyword;
+const RGB = {
+ /* VARIABLES */
+ re: /^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,
+ /* API */
+ parse: (color2) => {
+ const charCode = color2.charCodeAt(0);
+ if (charCode !== 114 && charCode !== 82)
+ return;
+ const match = color2.match(RGB.re);
+ if (!match)
+ return;
+ const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;
+ return ChannelsReusable.set({
+ r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),
+ g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),
+ b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),
+ a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
+ }, color2);
+ },
+ stringify: (channels2) => {
+ const { r, g, b, a } = channels2;
+ if (a < 1) {
+ return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`;
+ } else {
+ return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`;
+ }
+ }
+};
+const RGB$1 = RGB;
+const Color = {
+ /* VARIABLES */
+ format: {
+ keyword: Keyword$1,
+ hex: Hex$1,
+ rgb: RGB$1,
+ rgba: RGB$1,
+ hsl: HSL$1,
+ hsla: HSL$1
+ },
+ /* API */
+ parse: (color2) => {
+ if (typeof color2 !== "string")
+ return color2;
+ const channels2 = Hex$1.parse(color2) || RGB$1.parse(color2) || HSL$1.parse(color2) || Keyword$1.parse(color2);
+ if (channels2)
+ return channels2;
+ throw new Error(`Unsupported color format: "${color2}"`);
+ },
+ stringify: (channels2) => {
+ if (!channels2.changed && channels2.color)
+ return channels2.color;
+ if (channels2.type.is(TYPE.HSL) || channels2.data.r === void 0) {
+ return HSL$1.stringify(channels2);
+ } else if (channels2.a < 1 || !Number.isInteger(channels2.r) || !Number.isInteger(channels2.g) || !Number.isInteger(channels2.b)) {
+ return RGB$1.stringify(channels2);
+ } else {
+ return Hex$1.stringify(channels2);
+ }
+ }
+};
+const Color$1 = Color;
+const change = (color2, channels2) => {
+ const ch = Color$1.parse(color2);
+ for (const c in channels2) {
+ ch[c] = _.channel.clamp[c](channels2[c]);
+ }
+ return Color$1.stringify(ch);
+};
+const change$1 = change;
+const rgba = (r, g, b = 0, a = 1) => {
+ if (typeof r !== "number")
+ return change$1(r, { a: g });
+ const channels2 = ChannelsReusable.set({
+ r: _.channel.clamp.r(r),
+ g: _.channel.clamp.g(g),
+ b: _.channel.clamp.b(b),
+ a: _.channel.clamp.a(a)
+ });
+ return Color$1.stringify(channels2);
+};
+const rgba$1 = rgba;
+const adjustChannel = (color2, channel2, amount) => {
+ const channels2 = Color$1.parse(color2);
+ const amountCurrent = channels2[channel2];
+ const amountNext = _.channel.clamp[channel2](amountCurrent + amount);
+ if (amountCurrent !== amountNext)
+ channels2[channel2] = amountNext;
+ return Color$1.stringify(channels2);
+};
+const adjustChannel$1 = adjustChannel;
+const lighten = (color2, amount) => {
+ return adjustChannel$1(color2, "l", amount);
+};
+const lighten$1 = lighten;
+const darken = (color2, amount) => {
+ return adjustChannel$1(color2, "l", -amount);
+};
+const darken$1 = darken;
+const adjust = (color2, channels2) => {
+ const ch = Color$1.parse(color2);
+ const changes = {};
+ for (const c in channels2) {
+ if (!channels2[c])
+ continue;
+ changes[c] = ch[c] + channels2[c];
+ }
+ return change$1(color2, changes);
+};
+const adjust$1 = adjust;
+const mix = (color1, color2, weight = 50) => {
+ const { r: r1, g: g1, b: b1, a: a1 } = Color$1.parse(color1);
+ const { r: r2, g: g2, b: b2, a: a2 } = Color$1.parse(color2);
+ const weightScale = weight / 100;
+ const weightNormalized = weightScale * 2 - 1;
+ const alphaDelta = a1 - a2;
+ const weight1combined = weightNormalized * alphaDelta === -1 ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta);
+ const weight1 = (weight1combined + 1) / 2;
+ const weight2 = 1 - weight1;
+ const r = r1 * weight1 + r2 * weight2;
+ const g = g1 * weight1 + g2 * weight2;
+ const b = b1 * weight1 + b2 * weight2;
+ const a = a1 * weightScale + a2 * (1 - weightScale);
+ return rgba$1(r, g, b, a);
+};
+const mix$1 = mix;
+const invert = (color2, weight = 100) => {
+ const inverse = Color$1.parse(color2);
+ inverse.r = 255 - inverse.r;
+ inverse.g = 255 - inverse.g;
+ inverse.b = 255 - inverse.b;
+ return mix$1(inverse, color2, weight);
+};
+const invert$1 = invert;
+const mkBorder = (col, darkMode) => darkMode ? adjust$1(col, { s: -40, l: 10 }) : adjust$1(col, { s: -40, l: -10 });
+const oldAttributeBackgroundColorOdd = "#ffffff";
+const oldAttributeBackgroundColorEven = "#f2f2f2";
+let Theme$4 = class Theme {
+ constructor() {
+ this.background = "#f4f4f4";
+ this.primaryColor = "#fff4dd";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "#333";
+ this.THEME_COLOR_LIMIT = 12;
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ }
+ updateColors() {
+ this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333");
+ this.secondaryColor = this.secondaryColor || adjust$1(this.primaryColor, { h: -120 });
+ this.tertiaryColor = this.tertiaryColor || adjust$1(this.primaryColor, { h: 180, l: 5 });
+ this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);
+ this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);
+ this.noteBkgColor = this.noteBkgColor || "#fff5ad";
+ this.noteTextColor = this.noteTextColor || "#333";
+ this.secondaryTextColor = this.secondaryTextColor || invert$1(this.secondaryColor);
+ this.tertiaryTextColor = this.tertiaryTextColor || invert$1(this.tertiaryColor);
+ this.lineColor = this.lineColor || invert$1(this.background);
+ this.textColor = this.textColor || this.primaryTextColor;
+ this.nodeBkg = this.nodeBkg || this.primaryColor;
+ this.mainBkg = this.mainBkg || this.primaryColor;
+ this.nodeBorder = this.nodeBorder || this.primaryBorderColor;
+ this.clusterBkg = this.clusterBkg || this.tertiaryColor;
+ this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;
+ this.defaultLinkColor = this.defaultLinkColor || this.lineColor;
+ this.titleColor = this.titleColor || this.tertiaryTextColor;
+ this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor);
+ this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;
+ this.actorBorder = this.actorBorder || this.primaryBorderColor;
+ this.actorBkg = this.actorBkg || this.mainBkg;
+ this.actorTextColor = this.actorTextColor || this.primaryTextColor;
+ this.actorLineColor = this.actorLineColor || "grey";
+ this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;
+ this.signalColor = this.signalColor || this.textColor;
+ this.signalTextColor = this.signalTextColor || this.textColor;
+ this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;
+ this.labelTextColor = this.labelTextColor || this.actorTextColor;
+ this.loopTextColor = this.loopTextColor || this.actorTextColor;
+ this.activationBorderColor = this.activationBorderColor || darken$1(this.secondaryColor, 10);
+ this.activationBkgColor = this.activationBkgColor || this.secondaryColor;
+ this.sequenceNumberColor = this.sequenceNumberColor || invert$1(this.lineColor);
+ this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;
+ this.altSectionBkgColor = this.altSectionBkgColor || "white";
+ this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;
+ this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;
+ this.excludeBkgColor = this.excludeBkgColor || "#eeeeee";
+ this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;
+ this.taskBkgColor = this.taskBkgColor || this.primaryColor;
+ this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;
+ this.activeTaskBkgColor = this.activeTaskBkgColor || lighten$1(this.primaryColor, 23);
+ this.gridColor = this.gridColor || "lightgrey";
+ this.doneTaskBkgColor = this.doneTaskBkgColor || "lightgrey";
+ this.doneTaskBorderColor = this.doneTaskBorderColor || "grey";
+ this.critBorderColor = this.critBorderColor || "#ff8888";
+ this.critBkgColor = this.critBkgColor || "red";
+ this.todayLineColor = this.todayLineColor || "red";
+ this.taskTextColor = this.taskTextColor || this.textColor;
+ this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;
+ this.taskTextLightColor = this.taskTextLightColor || this.textColor;
+ this.taskTextColor = this.taskTextColor || this.primaryTextColor;
+ this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;
+ this.taskTextClickableColor = this.taskTextClickableColor || "#003163";
+ this.personBorder = this.personBorder || this.primaryBorderColor;
+ this.personBkg = this.personBkg || this.mainBkg;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || this.tertiaryColor;
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.nodeBorder;
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.specialStateColor = this.lineColor;
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust$1(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust$1(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust$1(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust$1(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust$1(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust$1(this.primaryColor, { h: 210, l: 150 });
+ this.cScale9 = this.cScale9 || adjust$1(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust$1(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust$1(this.primaryColor, { h: 330 });
+ if (this.darkMode) {
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScale" + i] = darken$1(this["cScale" + i], 75);
+ }
+ } else {
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScale" + i] = darken$1(this["cScale" + i], 25);
+ }
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleInv" + i] = this["cScaleInv" + i] || invert$1(this["cScale" + i]);
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ if (this.darkMode) {
+ this["cScalePeer" + i] = this["cScalePeer" + i] || lighten$1(this["cScale" + i], 10);
+ } else {
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken$1(this["cScale" + i], 10);
+ }
+ }
+ this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
+ }
+ const multiplier = this.darkMode ? -4 : -1;
+ for (let i = 0; i < 5; i++) {
+ this["surface" + i] = this["surface" + i] || adjust$1(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) });
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust$1(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) });
+ }
+ this.classText = this.classText || this.textColor;
+ this.fillType0 = this.fillType0 || this.primaryColor;
+ this.fillType1 = this.fillType1 || this.secondaryColor;
+ this.fillType2 = this.fillType2 || adjust$1(this.primaryColor, { h: 64 });
+ this.fillType3 = this.fillType3 || adjust$1(this.secondaryColor, { h: 64 });
+ this.fillType4 = this.fillType4 || adjust$1(this.primaryColor, { h: -64 });
+ this.fillType5 = this.fillType5 || adjust$1(this.secondaryColor, { h: -64 });
+ this.fillType6 = this.fillType6 || adjust$1(this.primaryColor, { h: 128 });
+ this.fillType7 = this.fillType7 || adjust$1(this.secondaryColor, { h: 128 });
+ this.pie1 = this.pie1 || this.primaryColor;
+ this.pie2 = this.pie2 || this.secondaryColor;
+ this.pie3 = this.pie3 || this.tertiaryColor;
+ this.pie4 = this.pie4 || adjust$1(this.primaryColor, { l: -10 });
+ this.pie5 = this.pie5 || adjust$1(this.secondaryColor, { l: -10 });
+ this.pie6 = this.pie6 || adjust$1(this.tertiaryColor, { l: -10 });
+ this.pie7 = this.pie7 || adjust$1(this.primaryColor, { h: 60, l: -10 });
+ this.pie8 = this.pie8 || adjust$1(this.primaryColor, { h: -60, l: -10 });
+ this.pie9 = this.pie9 || adjust$1(this.primaryColor, { h: 120, l: 0 });
+ this.pie10 = this.pie10 || adjust$1(this.primaryColor, { h: 60, l: -20 });
+ this.pie11 = this.pie11 || adjust$1(this.primaryColor, { h: -60, l: -20 });
+ this.pie12 = this.pie12 || adjust$1(this.primaryColor, { h: 120, l: -10 });
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor);
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = this.git0 || this.primaryColor;
+ this.git1 = this.git1 || this.secondaryColor;
+ this.git2 = this.git2 || this.tertiaryColor;
+ this.git3 = this.git3 || adjust$1(this.primaryColor, { h: -30 });
+ this.git4 = this.git4 || adjust$1(this.primaryColor, { h: -60 });
+ this.git5 = this.git5 || adjust$1(this.primaryColor, { h: -90 });
+ this.git6 = this.git6 || adjust$1(this.primaryColor, { h: 60 });
+ this.git7 = this.git7 || adjust$1(this.primaryColor, { h: 120 });
+ if (this.darkMode) {
+ this.git0 = lighten$1(this.git0, 25);
+ this.git1 = lighten$1(this.git1, 25);
+ this.git2 = lighten$1(this.git2, 25);
+ this.git3 = lighten$1(this.git3, 25);
+ this.git4 = lighten$1(this.git4, 25);
+ this.git5 = lighten$1(this.git5, 25);
+ this.git6 = lighten$1(this.git6, 25);
+ this.git7 = lighten$1(this.git7, 25);
+ } else {
+ this.git0 = darken$1(this.git0, 25);
+ this.git1 = darken$1(this.git1, 25);
+ this.git2 = darken$1(this.git2, 25);
+ this.git3 = darken$1(this.git3, 25);
+ this.git4 = darken$1(this.git4, 25);
+ this.git5 = darken$1(this.git5, 25);
+ this.git6 = darken$1(this.git6, 25);
+ this.git7 = darken$1(this.git7, 25);
+ }
+ this.gitInv0 = this.gitInv0 || invert$1(this.git0);
+ this.gitInv1 = this.gitInv1 || invert$1(this.git1);
+ this.gitInv2 = this.gitInv2 || invert$1(this.git2);
+ this.gitInv3 = this.gitInv3 || invert$1(this.git3);
+ this.gitInv4 = this.gitInv4 || invert$1(this.git4);
+ this.gitInv5 = this.gitInv5 || invert$1(this.git5);
+ this.gitInv6 = this.gitInv6 || invert$1(this.git6);
+ this.gitInv7 = this.gitInv7 || invert$1(this.git7);
+ this.branchLabelColor = this.branchLabelColor || (this.darkMode ? "black" : this.labelTextColor);
+ this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;
+ this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys = Object.keys(overrides);
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ this.updateColors();
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ }
+};
+const getThemeVariables$4 = (userOverrides) => {
+ const theme2 = new Theme$4();
+ theme2.calculate(userOverrides);
+ return theme2;
+};
+let Theme$3 = class Theme2 {
+ constructor() {
+ this.background = "#333";
+ this.primaryColor = "#1f2020";
+ this.secondaryColor = lighten$1(this.primaryColor, 16);
+ this.tertiaryColor = adjust$1(this.primaryColor, { h: -160 });
+ this.primaryBorderColor = invert$1(this.background);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert$1(this.primaryColor);
+ this.secondaryTextColor = invert$1(this.secondaryColor);
+ this.tertiaryTextColor = invert$1(this.tertiaryColor);
+ this.lineColor = invert$1(this.background);
+ this.textColor = invert$1(this.background);
+ this.mainBkg = "#1f2020";
+ this.secondBkg = "calculated";
+ this.mainContrastColor = "lightgrey";
+ this.darkTextColor = lighten$1(invert$1("#323D47"), 10);
+ this.lineColor = "calculated";
+ this.border1 = "#81B1DB";
+ this.border2 = rgba$1(255, 255, 255, 0.25);
+ this.arrowheadColor = "calculated";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.labelBackground = "#181818";
+ this.textColor = "#ccc";
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "#F9FFFE";
+ this.edgeLabelBackground = "calculated";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "calculated";
+ this.actorLineColor = "calculated";
+ this.signalColor = "calculated";
+ this.signalTextColor = "calculated";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "calculated";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "calculated";
+ this.activationBkgColor = "calculated";
+ this.sequenceNumberColor = "black";
+ this.sectionBkgColor = darken$1("#EAE8D9", 30);
+ this.altSectionBkgColor = "calculated";
+ this.sectionBkgColor2 = "#EAE8D9";
+ this.taskBorderColor = rgba$1(255, 255, 255, 70);
+ this.taskBkgColor = "calculated";
+ this.taskTextColor = "calculated";
+ this.taskTextLightColor = "calculated";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = rgba$1(255, 255, 255, 50);
+ this.activeTaskBkgColor = "#81B1DB";
+ this.gridColor = "calculated";
+ this.doneTaskBkgColor = "calculated";
+ this.doneTaskBorderColor = "grey";
+ this.critBorderColor = "#E83737";
+ this.critBkgColor = "#E83737";
+ this.taskTextDarkColor = "calculated";
+ this.todayLineColor = "#DB5757";
+ this.personBorder = "calculated";
+ this.personBkg = "calculated";
+ this.labelColor = "calculated";
+ this.errorBkgColor = "#a44141";
+ this.errorTextColor = "#ddd";
+ }
+ updateColors() {
+ this.secondBkg = lighten$1(this.mainBkg, 16);
+ this.lineColor = this.mainContrastColor;
+ this.arrowheadColor = this.mainContrastColor;
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.edgeLabelBackground = lighten$1(this.labelBackground, 25);
+ this.actorBorder = this.border1;
+ this.actorBkg = this.mainBkg;
+ this.actorTextColor = this.mainContrastColor;
+ this.actorLineColor = this.mainContrastColor;
+ this.signalColor = this.mainContrastColor;
+ this.signalTextColor = this.mainContrastColor;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.labelBoxBorderColor = this.actorBorder;
+ this.labelTextColor = this.mainContrastColor;
+ this.loopTextColor = this.mainContrastColor;
+ this.noteBorderColor = this.secondaryBorderColor;
+ this.noteBkgColor = this.secondBkg;
+ this.noteTextColor = this.secondaryTextColor;
+ this.activationBorderColor = this.border1;
+ this.activationBkgColor = this.secondBkg;
+ this.altSectionBkgColor = this.background;
+ this.taskBkgColor = lighten$1(this.mainBkg, 23);
+ this.taskTextColor = this.darkTextColor;
+ this.taskTextLightColor = this.mainContrastColor;
+ this.taskTextOutsideColor = this.taskTextLightColor;
+ this.gridColor = this.mainContrastColor;
+ this.doneTaskBkgColor = this.mainContrastColor;
+ this.taskTextDarkColor = this.darkTextColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#555";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.primaryBorderColor;
+ this.specialStateColor = "#f4f4f4";
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust$1(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust$1(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust$1(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust$1(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust$1(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust$1(this.secondaryColor, { h: 128 });
+ this.cScale1 = this.cScale1 || "#0b0000";
+ this.cScale2 = this.cScale2 || "#4d1037";
+ this.cScale3 = this.cScale3 || "#3f5258";
+ this.cScale4 = this.cScale4 || "#4f2f1b";
+ this.cScale5 = this.cScale5 || "#6e0a0a";
+ this.cScale6 = this.cScale6 || "#3b0048";
+ this.cScale7 = this.cScale7 || "#995a01";
+ this.cScale8 = this.cScale8 || "#154706";
+ this.cScale9 = this.cScale9 || "#161722";
+ this.cScale10 = this.cScale10 || "#00296f";
+ this.cScale11 = this.cScale11 || "#01629c";
+ this.cScale12 = this.cScale12 || "#010029";
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust$1(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust$1(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust$1(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust$1(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust$1(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust$1(this.primaryColor, { h: 210 });
+ this.cScale9 = this.cScale9 || adjust$1(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust$1(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust$1(this.primaryColor, { h: 330 });
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleInv" + i] = this["cScaleInv" + i] || invert$1(this["cScale" + i]);
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScalePeer" + i] = this["cScalePeer" + i] || lighten$1(this["cScale" + i], 10);
+ }
+ for (let i = 0; i < 5; i++) {
+ this["surface" + i] = this["surface" + i] || adjust$1(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) });
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust$1(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) });
+ }
+ this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["pie" + i] = this["cScale" + i];
+ }
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.classText = this.primaryTextColor;
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor);
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = lighten$1(this.secondaryColor, 20);
+ this.git1 = lighten$1(this.pie2 || this.secondaryColor, 20);
+ this.git2 = lighten$1(this.pie3 || this.tertiaryColor, 20);
+ this.git3 = lighten$1(this.pie4 || adjust$1(this.primaryColor, { h: -30 }), 20);
+ this.git4 = lighten$1(this.pie5 || adjust$1(this.primaryColor, { h: -60 }), 20);
+ this.git5 = lighten$1(this.pie6 || adjust$1(this.primaryColor, { h: -90 }), 10);
+ this.git6 = lighten$1(this.pie7 || adjust$1(this.primaryColor, { h: 60 }), 10);
+ this.git7 = lighten$1(this.pie8 || adjust$1(this.primaryColor, { h: 120 }), 20);
+ this.gitInv0 = this.gitInv0 || invert$1(this.git0);
+ this.gitInv1 = this.gitInv1 || invert$1(this.git1);
+ this.gitInv2 = this.gitInv2 || invert$1(this.git2);
+ this.gitInv3 = this.gitInv3 || invert$1(this.git3);
+ this.gitInv4 = this.gitInv4 || invert$1(this.git4);
+ this.gitInv5 = this.gitInv5 || invert$1(this.git5);
+ this.gitInv6 = this.gitInv6 || invert$1(this.git6);
+ this.gitInv7 = this.gitInv7 || invert$1(this.git7);
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten$1(this.background, 12);
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten$1(this.background, 2);
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys = Object.keys(overrides);
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ this.updateColors();
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ }
+};
+const getThemeVariables$3 = (userOverrides) => {
+ const theme2 = new Theme$3();
+ theme2.calculate(userOverrides);
+ return theme2;
+};
+let Theme$2 = class Theme3 {
+ constructor() {
+ this.background = "#f4f4f4";
+ this.primaryColor = "#ECECFF";
+ this.secondaryColor = adjust$1(this.primaryColor, { h: 120 });
+ this.secondaryColor = "#ffffde";
+ this.tertiaryColor = adjust$1(this.primaryColor, { h: -160 });
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert$1(this.primaryColor);
+ this.secondaryTextColor = invert$1(this.secondaryColor);
+ this.tertiaryTextColor = invert$1(this.tertiaryColor);
+ this.lineColor = invert$1(this.background);
+ this.textColor = invert$1(this.background);
+ this.background = "white";
+ this.mainBkg = "#ECECFF";
+ this.secondBkg = "#ffffde";
+ this.lineColor = "#333333";
+ this.border1 = "#9370DB";
+ this.border2 = "#aaaa33";
+ this.arrowheadColor = "#333333";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.labelBackground = "#e8e8e8";
+ this.textColor = "#333";
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "calculated";
+ this.edgeLabelBackground = "calculated";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "black";
+ this.actorLineColor = "grey";
+ this.signalColor = "calculated";
+ this.signalTextColor = "calculated";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "calculated";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "#666";
+ this.activationBkgColor = "#f4f4f4";
+ this.sequenceNumberColor = "white";
+ this.sectionBkgColor = "calculated";
+ this.altSectionBkgColor = "calculated";
+ this.sectionBkgColor2 = "calculated";
+ this.excludeBkgColor = "#eeeeee";
+ this.taskBorderColor = "calculated";
+ this.taskBkgColor = "calculated";
+ this.taskTextLightColor = "calculated";
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextDarkColor = "calculated";
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.taskTextClickableColor = "calculated";
+ this.activeTaskBorderColor = "calculated";
+ this.activeTaskBkgColor = "calculated";
+ this.gridColor = "calculated";
+ this.doneTaskBkgColor = "calculated";
+ this.doneTaskBorderColor = "calculated";
+ this.critBorderColor = "calculated";
+ this.critBkgColor = "calculated";
+ this.todayLineColor = "calculated";
+ this.sectionBkgColor = rgba$1(102, 102, 255, 0.49);
+ this.altSectionBkgColor = "white";
+ this.sectionBkgColor2 = "#fff400";
+ this.taskBorderColor = "#534fbc";
+ this.taskBkgColor = "#8a90dd";
+ this.taskTextLightColor = "white";
+ this.taskTextColor = "calculated";
+ this.taskTextDarkColor = "black";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = "#534fbc";
+ this.activeTaskBkgColor = "#bfc7ff";
+ this.gridColor = "lightgrey";
+ this.doneTaskBkgColor = "lightgrey";
+ this.doneTaskBorderColor = "grey";
+ this.critBorderColor = "#ff8888";
+ this.critBkgColor = "red";
+ this.todayLineColor = "red";
+ this.personBorder = "calculated";
+ this.personBkg = "calculated";
+ this.labelColor = "black";
+ this.errorBkgColor = "#552222";
+ this.errorTextColor = "#552222";
+ this.updateColors();
+ }
+ updateColors() {
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust$1(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust$1(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust$1(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust$1(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust$1(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust$1(this.primaryColor, { h: 210 });
+ this.cScale9 = this.cScale9 || adjust$1(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust$1(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust$1(this.primaryColor, { h: 330 });
+ this["cScalePeer" + 1] = this["cScalePeer" + 1] || darken$1(this.secondaryColor, 45);
+ this["cScalePeer" + 2] = this["cScalePeer" + 2] || darken$1(this.tertiaryColor, 40);
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScale" + i] = darken$1(this["cScale" + i], 10);
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken$1(this["cScale" + i], 25);
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleInv" + i] = this["cScaleInv" + i] || adjust$1(this["cScale" + i], { h: 180 });
+ }
+ for (let i = 0; i < 5; i++) {
+ this["surface" + i] = this["surface" + i] || adjust$1(this.mainBkg, { h: 30, l: -(5 + i * 5) });
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust$1(this.mainBkg, { h: 30, l: -(7 + i * 5) });
+ }
+ this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
+ if (this.labelTextColor !== "calculated") {
+ this.cScaleLabel0 = this.cScaleLabel0 || invert$1(this.labelTextColor);
+ this.cScaleLabel3 = this.cScaleLabel3 || invert$1(this.labelTextColor);
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.labelTextColor;
+ }
+ }
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.titleColor = this.textColor;
+ this.edgeLabelBackground = this.labelBackground;
+ this.actorBorder = lighten$1(this.border1, 23);
+ this.actorBkg = this.mainBkg;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.signalColor = this.textColor;
+ this.signalTextColor = this.textColor;
+ this.labelBoxBorderColor = this.actorBorder;
+ this.labelTextColor = this.actorTextColor;
+ this.loopTextColor = this.actorTextColor;
+ this.noteBorderColor = this.border2;
+ this.noteTextColor = this.actorTextColor;
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#f0f0f0";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.nodeBorder;
+ this.specialStateColor = this.lineColor;
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.classText = this.primaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust$1(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust$1(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust$1(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust$1(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust$1(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust$1(this.secondaryColor, { h: 128 });
+ this.pie1 = this.pie1 || this.primaryColor;
+ this.pie2 = this.pie2 || this.secondaryColor;
+ this.pie3 = this.pie3 || adjust$1(this.tertiaryColor, { l: -40 });
+ this.pie4 = this.pie4 || adjust$1(this.primaryColor, { l: -10 });
+ this.pie5 = this.pie5 || adjust$1(this.secondaryColor, { l: -30 });
+ this.pie6 = this.pie6 || adjust$1(this.tertiaryColor, { l: -20 });
+ this.pie7 = this.pie7 || adjust$1(this.primaryColor, { h: 60, l: -20 });
+ this.pie8 = this.pie8 || adjust$1(this.primaryColor, { h: -60, l: -40 });
+ this.pie9 = this.pie9 || adjust$1(this.primaryColor, { h: 120, l: -40 });
+ this.pie10 = this.pie10 || adjust$1(this.primaryColor, { h: 60, l: -40 });
+ this.pie11 = this.pie11 || adjust$1(this.primaryColor, { h: -90, l: -40 });
+ this.pie12 = this.pie12 || adjust$1(this.primaryColor, { h: 120, l: -30 });
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = this.git0 || this.primaryColor;
+ this.git1 = this.git1 || this.secondaryColor;
+ this.git2 = this.git2 || this.tertiaryColor;
+ this.git3 = this.git3 || adjust$1(this.primaryColor, { h: -30 });
+ this.git4 = this.git4 || adjust$1(this.primaryColor, { h: -60 });
+ this.git5 = this.git5 || adjust$1(this.primaryColor, { h: -90 });
+ this.git6 = this.git6 || adjust$1(this.primaryColor, { h: 60 });
+ this.git7 = this.git7 || adjust$1(this.primaryColor, { h: 120 });
+ if (this.darkMode) {
+ this.git0 = lighten$1(this.git0, 25);
+ this.git1 = lighten$1(this.git1, 25);
+ this.git2 = lighten$1(this.git2, 25);
+ this.git3 = lighten$1(this.git3, 25);
+ this.git4 = lighten$1(this.git4, 25);
+ this.git5 = lighten$1(this.git5, 25);
+ this.git6 = lighten$1(this.git6, 25);
+ this.git7 = lighten$1(this.git7, 25);
+ } else {
+ this.git0 = darken$1(this.git0, 25);
+ this.git1 = darken$1(this.git1, 25);
+ this.git2 = darken$1(this.git2, 25);
+ this.git3 = darken$1(this.git3, 25);
+ this.git4 = darken$1(this.git4, 25);
+ this.git5 = darken$1(this.git5, 25);
+ this.git6 = darken$1(this.git6, 25);
+ this.git7 = darken$1(this.git7, 25);
+ }
+ this.gitInv0 = this.gitInv0 || darken$1(invert$1(this.git0), 25);
+ this.gitInv1 = this.gitInv1 || invert$1(this.git1);
+ this.gitInv2 = this.gitInv2 || invert$1(this.git2);
+ this.gitInv3 = this.gitInv3 || invert$1(this.git3);
+ this.gitInv4 = this.gitInv4 || invert$1(this.git4);
+ this.gitInv5 = this.gitInv5 || invert$1(this.git5);
+ this.gitInv6 = this.gitInv6 || invert$1(this.git6);
+ this.gitInv7 = this.gitInv7 || invert$1(this.git7);
+ this.gitBranchLabel0 = this.gitBranchLabel0 || invert$1(this.labelTextColor);
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
+ this.gitBranchLabel3 = this.gitBranchLabel3 || invert$1(this.labelTextColor);
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys = Object.keys(overrides);
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ this.updateColors();
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ }
+};
+const getThemeVariables$2 = (userOverrides) => {
+ const theme2 = new Theme$2();
+ theme2.calculate(userOverrides);
+ return theme2;
+};
+let Theme$1 = class Theme4 {
+ constructor() {
+ this.background = "#f4f4f4";
+ this.primaryColor = "#cde498";
+ this.secondaryColor = "#cdffb2";
+ this.background = "white";
+ this.mainBkg = "#cde498";
+ this.secondBkg = "#cdffb2";
+ this.lineColor = "green";
+ this.border1 = "#13540c";
+ this.border2 = "#6eaa49";
+ this.arrowheadColor = "green";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.tertiaryColor = lighten$1("#cde498", 10);
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert$1(this.primaryColor);
+ this.secondaryTextColor = invert$1(this.secondaryColor);
+ this.tertiaryTextColor = invert$1(this.primaryColor);
+ this.lineColor = invert$1(this.background);
+ this.textColor = invert$1(this.background);
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "#333";
+ this.edgeLabelBackground = "#e8e8e8";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "black";
+ this.actorLineColor = "grey";
+ this.signalColor = "#333";
+ this.signalTextColor = "#333";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "#326932";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "#666";
+ this.activationBkgColor = "#f4f4f4";
+ this.sequenceNumberColor = "white";
+ this.sectionBkgColor = "#6eaa49";
+ this.altSectionBkgColor = "white";
+ this.sectionBkgColor2 = "#6eaa49";
+ this.excludeBkgColor = "#eeeeee";
+ this.taskBorderColor = "calculated";
+ this.taskBkgColor = "#487e3a";
+ this.taskTextLightColor = "white";
+ this.taskTextColor = "calculated";
+ this.taskTextDarkColor = "black";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = "calculated";
+ this.activeTaskBkgColor = "calculated";
+ this.gridColor = "lightgrey";
+ this.doneTaskBkgColor = "lightgrey";
+ this.doneTaskBorderColor = "grey";
+ this.critBorderColor = "#ff8888";
+ this.critBkgColor = "red";
+ this.todayLineColor = "red";
+ this.personBorder = "calculated";
+ this.personBkg = "calculated";
+ this.labelColor = "black";
+ this.errorBkgColor = "#552222";
+ this.errorTextColor = "#552222";
+ }
+ updateColors() {
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust$1(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust$1(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust$1(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust$1(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust$1(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust$1(this.primaryColor, { h: 210 });
+ this.cScale9 = this.cScale9 || adjust$1(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust$1(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust$1(this.primaryColor, { h: 330 });
+ this["cScalePeer" + 1] = this["cScalePeer" + 1] || darken$1(this.secondaryColor, 45);
+ this["cScalePeer" + 2] = this["cScalePeer" + 2] || darken$1(this.tertiaryColor, 40);
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScale" + i] = darken$1(this["cScale" + i], 10);
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken$1(this["cScale" + i], 25);
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleInv" + i] = this["cScaleInv" + i] || adjust$1(this["cScale" + i], { h: 180 });
+ }
+ this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
+ }
+ for (let i = 0; i < 5; i++) {
+ this["surface" + i] = this["surface" + i] || adjust$1(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) });
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust$1(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) });
+ }
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.actorBorder = darken$1(this.mainBkg, 20);
+ this.actorBkg = this.mainBkg;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.labelTextColor = this.actorTextColor;
+ this.loopTextColor = this.actorTextColor;
+ this.noteBorderColor = this.border2;
+ this.noteTextColor = this.actorTextColor;
+ this.taskBorderColor = this.border1;
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.activeTaskBorderColor = this.taskBorderColor;
+ this.activeTaskBkgColor = this.mainBkg;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#f0f0f0";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.primaryBorderColor;
+ this.specialStateColor = this.lineColor;
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.classText = this.primaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust$1(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust$1(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust$1(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust$1(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust$1(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust$1(this.secondaryColor, { h: 128 });
+ this.pie1 = this.pie1 || this.primaryColor;
+ this.pie2 = this.pie2 || this.secondaryColor;
+ this.pie3 = this.pie3 || this.tertiaryColor;
+ this.pie4 = this.pie4 || adjust$1(this.primaryColor, { l: -30 });
+ this.pie5 = this.pie5 || adjust$1(this.secondaryColor, { l: -30 });
+ this.pie6 = this.pie6 || adjust$1(this.tertiaryColor, { h: 40, l: -40 });
+ this.pie7 = this.pie7 || adjust$1(this.primaryColor, { h: 60, l: -10 });
+ this.pie8 = this.pie8 || adjust$1(this.primaryColor, { h: -60, l: -10 });
+ this.pie9 = this.pie9 || adjust$1(this.primaryColor, { h: 120, l: 0 });
+ this.pie10 = this.pie10 || adjust$1(this.primaryColor, { h: 60, l: -50 });
+ this.pie11 = this.pie11 || adjust$1(this.primaryColor, { h: -60, l: -50 });
+ this.pie12 = this.pie12 || adjust$1(this.primaryColor, { h: 120, l: -50 });
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = this.git0 || this.primaryColor;
+ this.git1 = this.git1 || this.secondaryColor;
+ this.git2 = this.git2 || this.tertiaryColor;
+ this.git3 = this.git3 || adjust$1(this.primaryColor, { h: -30 });
+ this.git4 = this.git4 || adjust$1(this.primaryColor, { h: -60 });
+ this.git5 = this.git5 || adjust$1(this.primaryColor, { h: -90 });
+ this.git6 = this.git6 || adjust$1(this.primaryColor, { h: 60 });
+ this.git7 = this.git7 || adjust$1(this.primaryColor, { h: 120 });
+ if (this.darkMode) {
+ this.git0 = lighten$1(this.git0, 25);
+ this.git1 = lighten$1(this.git1, 25);
+ this.git2 = lighten$1(this.git2, 25);
+ this.git3 = lighten$1(this.git3, 25);
+ this.git4 = lighten$1(this.git4, 25);
+ this.git5 = lighten$1(this.git5, 25);
+ this.git6 = lighten$1(this.git6, 25);
+ this.git7 = lighten$1(this.git7, 25);
+ } else {
+ this.git0 = darken$1(this.git0, 25);
+ this.git1 = darken$1(this.git1, 25);
+ this.git2 = darken$1(this.git2, 25);
+ this.git3 = darken$1(this.git3, 25);
+ this.git4 = darken$1(this.git4, 25);
+ this.git5 = darken$1(this.git5, 25);
+ this.git6 = darken$1(this.git6, 25);
+ this.git7 = darken$1(this.git7, 25);
+ }
+ this.gitInv0 = this.gitInv0 || invert$1(this.git0);
+ this.gitInv1 = this.gitInv1 || invert$1(this.git1);
+ this.gitInv2 = this.gitInv2 || invert$1(this.git2);
+ this.gitInv3 = this.gitInv3 || invert$1(this.git3);
+ this.gitInv4 = this.gitInv4 || invert$1(this.git4);
+ this.gitInv5 = this.gitInv5 || invert$1(this.git5);
+ this.gitInv6 = this.gitInv6 || invert$1(this.git6);
+ this.gitInv7 = this.gitInv7 || invert$1(this.git7);
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys = Object.keys(overrides);
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ this.updateColors();
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ }
+};
+const getThemeVariables$1 = (userOverrides) => {
+ const theme2 = new Theme$1();
+ theme2.calculate(userOverrides);
+ return theme2;
+};
+class Theme5 {
+ constructor() {
+ this.primaryColor = "#eee";
+ this.contrast = "#707070";
+ this.secondaryColor = lighten$1(this.contrast, 55);
+ this.background = "#ffffff";
+ this.tertiaryColor = adjust$1(this.primaryColor, { h: -160 });
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert$1(this.primaryColor);
+ this.secondaryTextColor = invert$1(this.secondaryColor);
+ this.tertiaryTextColor = invert$1(this.tertiaryColor);
+ this.lineColor = invert$1(this.background);
+ this.textColor = invert$1(this.background);
+ this.mainBkg = "#eee";
+ this.secondBkg = "calculated";
+ this.lineColor = "#666";
+ this.border1 = "#999";
+ this.border2 = "calculated";
+ this.note = "#ffa";
+ this.text = "#333";
+ this.critical = "#d42";
+ this.done = "#bbb";
+ this.arrowheadColor = "#333333";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "calculated";
+ this.edgeLabelBackground = "white";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "calculated";
+ this.actorLineColor = "calculated";
+ this.signalColor = "calculated";
+ this.signalTextColor = "calculated";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "calculated";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "calculated";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "#666";
+ this.activationBkgColor = "#f4f4f4";
+ this.sequenceNumberColor = "white";
+ this.sectionBkgColor = "calculated";
+ this.altSectionBkgColor = "white";
+ this.sectionBkgColor2 = "calculated";
+ this.excludeBkgColor = "#eeeeee";
+ this.taskBorderColor = "calculated";
+ this.taskBkgColor = "calculated";
+ this.taskTextLightColor = "white";
+ this.taskTextColor = "calculated";
+ this.taskTextDarkColor = "calculated";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = "calculated";
+ this.activeTaskBkgColor = "calculated";
+ this.gridColor = "calculated";
+ this.doneTaskBkgColor = "calculated";
+ this.doneTaskBorderColor = "calculated";
+ this.critBkgColor = "calculated";
+ this.critBorderColor = "calculated";
+ this.todayLineColor = "calculated";
+ this.personBorder = "calculated";
+ this.personBkg = "calculated";
+ this.labelColor = "black";
+ this.errorBkgColor = "#552222";
+ this.errorTextColor = "#552222";
+ }
+ updateColors() {
+ this.secondBkg = lighten$1(this.contrast, 55);
+ this.border2 = this.contrast;
+ this.cScale0 = this.cScale0 || "#555";
+ this.cScale1 = this.cScale1 || "#F4F4F4";
+ this.cScale2 = this.cScale2 || "#555";
+ this.cScale3 = this.cScale3 || "#BBB";
+ this.cScale4 = this.cScale4 || "#777";
+ this.cScale5 = this.cScale5 || "#999";
+ this.cScale6 = this.cScale6 || "#DDD";
+ this.cScale7 = this.cScale7 || "#FFF";
+ this.cScale8 = this.cScale8 || "#DDD";
+ this.cScale9 = this.cScale9 || "#BBB";
+ this.cScale10 = this.cScale10 || "#999";
+ this.cScale11 = this.cScale11 || "#777";
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleInv" + i] = this["cScaleInv" + i] || invert$1(this["cScale" + i]);
+ }
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ if (this.darkMode) {
+ this["cScalePeer" + i] = this["cScalePeer" + i] || lighten$1(this["cScale" + i], 10);
+ } else {
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken$1(this["cScale" + i], 10);
+ }
+ }
+ this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
+ this["cScaleLabel0"] = this["cScaleLabel0"] || this.cScale1;
+ this["cScaleLabel2"] = this["cScaleLabel2"] || this.cScale1;
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
+ }
+ for (let i = 0; i < 5; i++) {
+ this["surface" + i] = this["surface" + i] || adjust$1(this.mainBkg, { l: -(5 + i * 5) });
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust$1(this.mainBkg, { l: -(8 + i * 5) });
+ }
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.titleColor = this.text;
+ this.actorBorder = lighten$1(this.border1, 23);
+ this.actorBkg = this.mainBkg;
+ this.actorTextColor = this.text;
+ this.actorLineColor = this.lineColor;
+ this.signalColor = this.text;
+ this.signalTextColor = this.text;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.labelBoxBorderColor = this.actorBorder;
+ this.labelTextColor = this.text;
+ this.loopTextColor = this.text;
+ this.noteBorderColor = "#999";
+ this.noteBkgColor = "#666";
+ this.noteTextColor = "#fff";
+ this.sectionBkgColor = lighten$1(this.contrast, 30);
+ this.sectionBkgColor2 = lighten$1(this.contrast, 30);
+ this.taskBorderColor = darken$1(this.contrast, 10);
+ this.taskBkgColor = this.contrast;
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextDarkColor = this.text;
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.activeTaskBorderColor = this.taskBorderColor;
+ this.activeTaskBkgColor = this.mainBkg;
+ this.gridColor = lighten$1(this.border1, 30);
+ this.doneTaskBkgColor = this.done;
+ this.doneTaskBorderColor = this.lineColor;
+ this.critBkgColor = this.critical;
+ this.critBorderColor = darken$1(this.critBkgColor, 10);
+ this.todayLineColor = this.critBkgColor;
+ this.transitionColor = this.transitionColor || "#000";
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#f4f4f4";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.stateBorder = this.stateBorder || "#000";
+ this.innerEndBackground = this.primaryBorderColor;
+ this.specialStateColor = "#222";
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.classText = this.primaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust$1(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust$1(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust$1(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust$1(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust$1(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust$1(this.secondaryColor, { h: 128 });
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
+ this["pie" + i] = this["cScale" + i];
+ }
+ this.pie12 = this.pie0;
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = darken$1(this.pie1, 25) || this.primaryColor;
+ this.git1 = this.pie2 || this.secondaryColor;
+ this.git2 = this.pie3 || this.tertiaryColor;
+ this.git3 = this.pie4 || adjust$1(this.primaryColor, { h: -30 });
+ this.git4 = this.pie5 || adjust$1(this.primaryColor, { h: -60 });
+ this.git5 = this.pie6 || adjust$1(this.primaryColor, { h: -90 });
+ this.git6 = this.pie7 || adjust$1(this.primaryColor, { h: 60 });
+ this.git7 = this.pie8 || adjust$1(this.primaryColor, { h: 120 });
+ this.gitInv0 = this.gitInv0 || invert$1(this.git0);
+ this.gitInv1 = this.gitInv1 || invert$1(this.git1);
+ this.gitInv2 = this.gitInv2 || invert$1(this.git2);
+ this.gitInv3 = this.gitInv3 || invert$1(this.git3);
+ this.gitInv4 = this.gitInv4 || invert$1(this.git4);
+ this.gitInv5 = this.gitInv5 || invert$1(this.git5);
+ this.gitInv6 = this.gitInv6 || invert$1(this.git6);
+ this.gitInv7 = this.gitInv7 || invert$1(this.git7);
+ this.branchLabelColor = this.branchLabelColor || this.labelTextColor;
+ this.gitBranchLabel0 = this.branchLabelColor;
+ this.gitBranchLabel1 = "white";
+ this.gitBranchLabel2 = this.branchLabelColor;
+ this.gitBranchLabel3 = "white";
+ this.gitBranchLabel4 = this.branchLabelColor;
+ this.gitBranchLabel5 = this.branchLabelColor;
+ this.gitBranchLabel6 = this.branchLabelColor;
+ this.gitBranchLabel7 = this.branchLabelColor;
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys = Object.keys(overrides);
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ this.updateColors();
+ keys.forEach((k) => {
+ this[k] = overrides[k];
+ });
+ }
+}
+const getThemeVariables = (userOverrides) => {
+ const theme2 = new Theme5();
+ theme2.calculate(userOverrides);
+ return theme2;
+};
+const theme = {
+ base: {
+ getThemeVariables: getThemeVariables$4
+ },
+ dark: {
+ getThemeVariables: getThemeVariables$3
+ },
+ default: {
+ getThemeVariables: getThemeVariables$2
+ },
+ forest: {
+ getThemeVariables: getThemeVariables$1
+ },
+ neutral: {
+ getThemeVariables
+ }
+};
+const config = {
+ /**
+ * Theme , the CSS style sheet
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |
+ * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |
+ *
+ * **Notes:** To disable any pre-defined mermaid theme, use "null".
+ *
+ * @example
+ *
+ * ```js
+ * {
+ * "theme": "forest",
+ * "themeCSS": ".node rect { fill: red; }"
+ * }
+ * ```
+ */
+ theme: "default",
+ themeVariables: theme["default"].getThemeVariables(),
+ themeCSS: void 0,
+ /* **maxTextSize** - The maximum allowed size of the users text diagram */
+ maxTextSize: 5e4,
+ darkMode: false,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |
+ * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'.
+ */
+ fontFamily: '"trebuchet ms", verdana, arial, sans-serif;',
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------------------------------------------------- | ---------------- | -------- | --------------------------------------------- |
+ * | logLevel | This option decides the amount of logging to be used. | string \| number | Required | 'trace','debug','info','warn','error','fatal' |
+ *
+ * **Notes:**
+ *
+ * - Trace: 0
+ * - Debug: 1
+ * - Info: 2
+ * - Warn: 3
+ * - Error: 4
+ * - Fatal: 5 (default)
+ */
+ logLevel: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ |
+ * | securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' |
+ *
+ * **Notes**:
+ *
+ * - **strict**: (**default**) tags in text are encoded, click functionality is disabled
+ * - **loose**: tags in text are allowed, click functionality is enabled
+ * - **antiscript**: html tags in text are allowed, (only script element is removed), click
+ * functionality is enabled
+ * - **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This
+ * prevent any JavaScript from running in the context. This may hinder interactive functionality
+ * of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc.
+ */
+ securityLevel: "strict",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |
+ * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: true
+ */
+ startOnLoad: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |
+ * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |
+ *
+ * **Notes**:
+ *
+ * This matters if you are using base tag settings.
+ *
+ * Default value: false
+ */
+ arrowMarkerAbsolute: false,
+ /**
+ * This option controls which currentConfig keys are considered _secure_ and can only be changed
+ * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the
+ * `secure` keys in the current currentConfig. This prevents malicious graph directives from
+ * overriding a site's default security.
+ *
+ * **Notes**:
+ *
+ * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
+ */
+ secure: ["secure", "securityLevel", "startOnLoad", "maxTextSize"],
+ /**
+ * This option controls if the generated ids of nodes in the SVG are generated randomly or based
+ * on a seed. If set to false, the IDs are generated based on the current date and thus are not
+ * deterministic. This is the default behavior.
+ *
+ * **Notes**:
+ *
+ * This matters if your files are checked into source control e.g. git and should not change unless
+ * content is changed.
+ *
+ * Default value: false
+ */
+ deterministicIds: false,
+ /**
+ * This option is the optional seed for deterministic ids. if set to undefined but
+ * deterministicIds is true, a simple number iterator is used. You can set this attribute to base
+ * the seed on a static string.
+ */
+ deterministicIDSeed: void 0,
+ /** The object containing configurations specific for flowcharts */
+ flowchart: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the flowchart | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
+ * expressed in pixels
+ *
+ * Default value: 8
+ */
+ diagramPadding: 8,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |
+ * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: true.
+ */
+ htmlLabels: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |
+ * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |
+ *
+ * **Notes:**
+ *
+ * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the
+ * vertical spacing for LR as well as RL graphs.**
+ *
+ * Default value: 50
+ */
+ nodeSpacing: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |
+ * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |
+ *
+ * **Notes**:
+ *
+ * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal
+ * spacing for LR as well as RL graphs.
+ *
+ * Default value 50
+ */
+ rankSpacing: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |
+ * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |
+ *
+ * **Notes:**
+ *
+ * Default Value: 'basis'
+ */
+ curve: "basis",
+ // Only used in new experimental rendering
+ // represents the padding between the labels and the shape
+ padding: 15,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper, elk |
+ *
+ * **Notes:**
+ *
+ * Decides which rendering engine that is to be used for the rendering. Legal values are:
+ * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid, elk for layout using
+ * elkjs
+ *
+ * Default value: 'dagre-wrapper'
+ */
+ defaultRenderer: "dagre-wrapper",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | wrappingWidth | See notes | number | 4 | width of nodes where text is wrapped |
+ *
+ * **Notes:**
+ *
+ * When using markdown strings the text ius wrapped automatically, this
+ * value sets the max width of a text before it continues on a new line.
+ * Default value: 'dagre-wrapper'
+ */
+ wrappingWidth: 200
+ },
+ /** The object containing configurations specific for sequence diagrams */
+ sequence: {
+ hideUnusedParticipants: false,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------------- | ------- | -------- | ------------------ |
+ * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value :10
+ */
+ activationWidth: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------- | ------- | -------- | ------------------ |
+ * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ actorMargin: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------- | ------- | -------- | ------------------ |
+ * | width | Width of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 150
+ */
+ width: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | height | Height of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 65
+ */
+ height: 65,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------------ | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 5
+ */
+ boxTextMargin: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------- | ------- | -------- | ------------------ |
+ * | noteMargin | margin around notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ noteMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ---------------------- | ------- | -------- | ------------------ |
+ * | messageMargin | Space between messages | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 35
+ */
+ messageMargin: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ------ | -------- | ------------------------- |
+ * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ messageAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ------- | -------- | ----------- |
+ * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: true
+ */
+ mirrorActors: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |
+ * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |
+ *
+ * **Notes:**
+ *
+ * Default value: false.
+ */
+ forceMenus: false,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
+ * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Depending on css styling this might need adjustment.
+ *
+ * Default value: 1
+ */
+ bottomMarginAdj: 1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
+ * scaling with the available space. If set to false, the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ------------------------------------ | ------- | -------- | ----------- |
+ * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * This will display arrows that start and begin at the same node as right angles, rather than a
+ * curve
+ *
+ * Default value: false
+ */
+ rightAngles: false,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------------- | ------------------------------- | ------- | -------- | ----------- |
+ * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |
+ *
+ * **Notes:** Default value: false
+ */
+ showSequenceNumbers: false,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
+ * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |
+ *
+ * **Notes:** **Default value 14**..
+ */
+ actorFontSize: 14,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |
+ * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: "'Open Sans", sans-serif'
+ */
+ actorFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of the actor's description
+ *
+ * **Notes:** Default value: 400.
+ */
+ actorFontWeight: 400,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |
+ * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 14
+ */
+ noteFontSize: 14,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |
+ * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif'
+ */
+ noteFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
+ /**
+ * This sets the font weight of the note's description
+ *
+ * **Notes:** Default value: 400
+ */
+ noteFontWeight: 400,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |
+ * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ noteAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |
+ * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |
+ *
+ * **Notes:** Default value: 16
+ */
+ messageFontSize: 16,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |
+ * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |
+ *
+ * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif'
+ */
+ messageFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
+ /**
+ * This sets the font weight of the message's description
+ *
+ * **Notes:** Default value: 400.
+ */
+ messageFontWeight: 400,
+ /**
+ * This sets the auto-wrap state for the diagram
+ *
+ * **Notes:** Default value: false.
+ */
+ wrap: false,
+ /**
+ * This sets the auto-wrap padding for the diagram (sides only)
+ *
+ * **Notes:** Default value: 0.
+ */
+ wrapPadding: 10,
+ /**
+ * This sets the width of the loop-box (loop, alt, opt, par)
+ *
+ * **Notes:** Default value: 50.
+ */
+ labelBoxWidth: 50,
+ /**
+ * This sets the height of the loop-box (loop, alt, opt, par)
+ *
+ * **Notes:** Default value: 20.
+ */
+ labelBoxHeight: 20,
+ messageFont: function() {
+ return {
+ fontFamily: this.messageFontFamily,
+ fontSize: this.messageFontSize,
+ fontWeight: this.messageFontWeight
+ };
+ },
+ noteFont: function() {
+ return {
+ fontFamily: this.noteFontFamily,
+ fontSize: this.noteFontSize,
+ fontWeight: this.noteFontWeight
+ };
+ },
+ actorFont: function() {
+ return {
+ fontFamily: this.actorFontFamily,
+ fontSize: this.actorFontSize,
+ fontWeight: this.actorFontWeight
+ };
+ }
+ },
+ /** The object containing configurations specific for gantt diagrams */
+ gantt: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------------------------------- | ------- | -------- | ------------------ |
+ * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 20
+ */
+ barHeight: 20,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |
+ *
+ * **Notes:** Default value: 4
+ */
+ barGap: 4,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ topPadding: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 75
+ */
+ rightPadding: 75,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |
+ * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 75
+ */
+ leftPadding: 75,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 35
+ */
+ gridLineStartPadding: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------- | ------- | -------- | ------------------ |
+ * | fontSize | Font size | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 11
+ */
+ fontSize: 11,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------- | ------- | -------- | ------------------ |
+ * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 11
+ */
+ sectionFontSize: 11,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |
+ * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:** Default value: 4
+ */
+ numberSectionStyles: 4,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ------------------------- | ------ | -------- | --------- |
+ * | displayMode | Controls the display mode | string | 4 | 'compact' |
+ *
+ * **Notes**:
+ *
+ * - **compact**: Enables displaying multiple tasks on the same row.
+ */
+ displayMode: "",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ---------------------------- | ---- | -------- | ---------------- |
+ * | axisFormat | Date/time format of the axis | 3 | Required | Date in yy-mm-dd |
+ *
+ * **Notes:**
+ *
+ * This might need adjustment to match your locale and preferences
+ *
+ * Default value: '%Y-%m-%d'.
+ */
+ axisFormat: "%Y-%m-%d",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ------------| ------ | -------- | ------- |
+ * | tickInterval | axis ticks | string | Optional | string |
+ *
+ * **Notes:**
+ *
+ * Pattern is /^([1-9][0-9]*)(minute|hour|day|week|month)$/
+ *
+ * Default value: undefined
+ */
+ tickInterval: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------- | ------- | -------- | ----------- |
+ * | topAxis | See notes | Boolean | 4 | True, False |
+ *
+ * **Notes:** when this flag is set date labels will be added to the top of the chart
+ *
+ * **Default value false**.
+ */
+ topAxis: false,
+ useWidth: void 0
+ },
+ /** The object containing configurations specific for journey diagrams */
+ journey: {
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------- | ------- | -------- | ------------------ |
+ * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ leftMargin: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------- | ------- | -------- | ------------------ |
+ * | width | Width of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 150
+ */
+ width: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | height | Height of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 65
+ */
+ height: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------------ | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 5
+ */
+ boxTextMargin: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------- | ------- | -------- | ------------------ |
+ * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ noteMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ----------------------- | ------- | -------- | ------------------ |
+ * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Space between messages.
+ *
+ * Default value: 35
+ */
+ messageMargin: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
+ * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ messageAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
+ * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Depending on css styling this might need adjustment.
+ *
+ * Default value: 1
+ */
+ bottomMarginAdj: 1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------------------- | ---- | -------- | ----------- |
+ * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * This will display arrows that start and begin at the same node as right angles, rather than a
+ * curves
+ *
+ * Default value: false
+ */
+ rightAngles: false,
+ taskFontSize: 14,
+ taskFontFamily: '"Open Sans", sans-serif',
+ taskMargin: 50,
+ // width of activation box
+ activationWidth: 10,
+ // text placement as: tspan | fo | old only text as before
+ textPlacement: "fo",
+ actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
+ sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
+ sectionColours: ["#fff"]
+ },
+ /** The object containing configurations specific for timeline diagrams */
+ timeline: {
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------- | ------- | -------- | ------------------ |
+ * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ leftMargin: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------- | ------- | -------- | ------------------ |
+ * | width | Width of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 150
+ */
+ width: 150,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | height | Height of actor boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 65
+ */
+ height: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------------ | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
+ * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 5
+ */
+ boxTextMargin: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ---------- | ------------------- | ------- | -------- | ------------------ |
+ * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ noteMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ----------------------- | ------- | -------- | ------------------ |
+ * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Space between messages.
+ *
+ * Default value: 35
+ */
+ messageMargin: 35,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
+ * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
+ *
+ * **Notes:** Default value: 'center'
+ */
+ messageAlign: "center",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
+ * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Depending on css styling this might need adjustment.
+ *
+ * Default value: 1
+ */
+ bottomMarginAdj: 1,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | --------------------------------- | ---- | -------- | ----------- |
+ * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * This will display arrows that start and begin at the same node as right angles, rather than a
+ * curves
+ *
+ * Default value: false
+ */
+ rightAngles: false,
+ taskFontSize: 14,
+ taskFontFamily: '"Open Sans", sans-serif',
+ taskMargin: 50,
+ // width of activation box
+ activationWidth: 10,
+ // text placement as: tspan | fo | old only text as before
+ textPlacement: "fo",
+ actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
+ sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
+ sectionColours: ["#fff"],
+ disableMulticolor: false
+ },
+ class: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the class diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ arrowMarkerAbsolute: false,
+ dividerMargin: 10,
+ padding: 5,
+ textHeight: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
+ *
+ * **Notes**:
+ *
+ * Decides which rendering engine that is to be used for the rendering. Legal values are:
+ * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
+ *
+ * Default value: 'dagre-d3'
+ */
+ defaultRenderer: "dagre-wrapper"
+ },
+ state: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the state diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ dividerMargin: 10,
+ sizeUnit: 5,
+ padding: 8,
+ textHeight: 10,
+ titleShift: -15,
+ noteMargin: 10,
+ forkWidth: 70,
+ forkHeight: 7,
+ // Used
+ miniPadding: 2,
+ // Font size factor, this is used to guess the width of the edges labels before rendering by dagre
+ // layout. This might need updating if/when switching font
+ fontSizeFactor: 5.02,
+ fontSize: 24,
+ labelHeight: 16,
+ edgeLengthFactor: "20",
+ compositTitleSize: 35,
+ radius: 5,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See notes | boolean | 4 | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set the height and width is set to 100% and is then scaling with the
+ * available space if not the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ----------------------- |
+ * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
+ *
+ * **Notes:**
+ *
+ * Decides which rendering engine that is to be used for the rendering. Legal values are:
+ * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
+ *
+ * Default value: 'dagre-d3'
+ */
+ defaultRenderer: "dagre-wrapper"
+ },
+ /** The object containing configurations specific for entity relationship diagrams */
+ er: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
+ * expressed in pixels
+ *
+ * Default value: 20
+ */
+ diagramPadding: 20,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |
+ * | layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" |
+ *
+ * **Notes:**
+ *
+ * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.
+ *
+ * T = top, B = bottom, L = left, and R = right.
+ *
+ * Default value: 'TB'
+ */
+ layoutDirection: "TB",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |
+ * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Expressed in pixels. Default value: 100
+ */
+ minEntityWidth: 100,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |
+ * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:** Expressed in pixels Default value: 75
+ */
+ minEntityHeight: 75,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ |
+ * | entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * The minimum internal padding between text in an entity box and the enclosing box borders,
+ * expressed in pixels.
+ *
+ * Default value: 15
+ */
+ entityPadding: 15,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ----------------------------------- | ------ | -------- | -------------------- |
+ * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |
+ *
+ * **Notes:** Default value: 'gray'
+ */
+ stroke: "gray",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------------- | ------ | -------- | -------------------- |
+ * | fill | Fill color of entity boxes | string | 4 | Any recognized color |
+ *
+ * **Notes:** Default value: 'honeydew'
+ */
+ fill: "honeydew",
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------- | ------- | -------- | ------------------ |
+ * | fontSize | Font Size in pixels | Integer | | Any Positive Value |
+ *
+ * **Notes:**
+ *
+ * Font size (expressed as an integer representing a number of pixels) Default value: 12
+ */
+ fontSize: 12,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set to true, the diagram width is locked to 100% and scaled based on
+ * available space. If set to false, the diagram reserves its absolute width.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true
+ },
+ /** The object containing configurations specific for pie diagrams */
+ pie: {
+ useWidth: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set to true, the diagram width is locked to 100% and scaled based on
+ * available space. If set to false, the diagram reserves its absolute width.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | -------------------------------------------------------------------------------- | ------- | -------- | ------------------- |
+ * | textPosition | Axial position of slice's label from zero at the center to 1 at the outside edge | Number | Optional | Decimal from 0 to 1 |
+ *
+ * **Notes:** Default value: 0.75
+ */
+ textPosition: 0.75
+ },
+ /** The object containing configurations specific for req diagrams */
+ requirement: {
+ useWidth: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:**
+ *
+ * When this flag is set to true, the diagram width is locked to 100% and scaled based on
+ * available space. If set to false, the diagram reserves its absolute width.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ rect_fill: "#f9f9f9",
+ text_color: "#333",
+ rect_border_size: "0.5px",
+ rect_border_color: "#bbb",
+ rect_min_width: 200,
+ rect_min_height: 200,
+ fontSize: 14,
+ rect_padding: 10,
+ line_height: 20
+ },
+ gitGraph: {
+ /**
+ * ### titleTopMargin
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | titleTopMargin | Margin top for the text over the Git diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 25
+ */
+ titleTopMargin: 25,
+ diagramPadding: 8,
+ nodeLabel: {
+ width: 75,
+ height: 100,
+ x: -25,
+ y: 0
+ },
+ mainBranchName: "main",
+ mainBranchOrder: 0,
+ showCommitLabel: true,
+ showBranches: true,
+ rotateCommitLabel: true
+ },
+ /** The object containing configurations specific for c4 diagrams */
+ c4: {
+ useWidth: void 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ diagramMarginX: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ------------------------------------------- | ------- | -------- | ------------------ |
+ * | diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ diagramMarginY: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------- | --------------------- | ------- | -------- | ------------------ |
+ * | c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 50
+ */
+ c4ShapeMargin: 50,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | -------------- | ---------------------- | ------- | -------- | ------------------ |
+ * | c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 20
+ */
+ c4ShapePadding: 20,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | --------------------- | ------- | -------- | ------------------ |
+ * | width | Width of person boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 216
+ */
+ width: 216,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ---------------------- | ------- | -------- | ------------------ |
+ * | height | Height of person boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 60
+ */
+ height: 60,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | ------------------- | ------- | -------- | ------------------ |
+ * | boxMargin | Margin around boxes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** Default value: 10
+ */
+ boxMargin: 10,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ----------- | ----------- | ------- | -------- | ----------- |
+ * | useMaxWidth | See Notes | boolean | Required | true, false |
+ *
+ * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
+ * scaling with the available space. If set to false, the absolute space required is used.
+ *
+ * Default value: true
+ */
+ useMaxWidth: true,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | ------------ | ----------- | ------- | -------- | ------------------ |
+ * | c4ShapeInRow | See Notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** How many shapes to place in each row.
+ *
+ * Default value: 4
+ */
+ c4ShapeInRow: 4,
+ nextLinePaddingX: 0,
+ /**
+ * | Parameter | Description | Type | Required | Values |
+ * | --------------- | ----------- | ------- | -------- | ------------------ |
+ * | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value |
+ *
+ * **Notes:** How many boundaries to place in each row.
+ *
+ * Default value: 2
+ */
+ c4BoundaryInRow: 2,
+ /**
+ * This sets the font size of Person shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ personFontSize: 14,
+ /**
+ * This sets the font family of Person shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ personFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Person shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ personFontWeight: "normal",
+ /**
+ * This sets the font size of External Person shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_personFontSize: 14,
+ /**
+ * This sets the font family of External Person shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_personFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Person shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_personFontWeight: "normal",
+ /**
+ * This sets the font size of System shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ systemFontSize: 14,
+ /**
+ * This sets the font family of System shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ systemFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of System shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ systemFontWeight: "normal",
+ /**
+ * This sets the font size of External System shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_systemFontSize: 14,
+ /**
+ * This sets the font family of External System shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_systemFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External System shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_systemFontWeight: "normal",
+ /**
+ * This sets the font size of System DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ system_dbFontSize: 14,
+ /**
+ * This sets the font family of System DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ system_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of System DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ system_dbFontWeight: "normal",
+ /**
+ * This sets the font size of External System DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_system_dbFontSize: 14,
+ /**
+ * This sets the font family of External System DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_system_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External System DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_system_dbFontWeight: "normal",
+ /**
+ * This sets the font size of System Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ system_queueFontSize: 14,
+ /**
+ * This sets the font family of System Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ system_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of System Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ system_queueFontWeight: "normal",
+ /**
+ * This sets the font size of External System Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_system_queueFontSize: 14,
+ /**
+ * This sets the font family of External System Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_system_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External System Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_system_queueFontWeight: "normal",
+ /**
+ * This sets the font size of Boundary shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ boundaryFontSize: 14,
+ /**
+ * This sets the font family of Boundary shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ boundaryFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Boundary shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ boundaryFontWeight: "normal",
+ /**
+ * This sets the font size of Message shape for the diagram
+ *
+ * **Notes:** Default value: 12.
+ */
+ messageFontSize: 12,
+ /**
+ * This sets the font family of Message shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ messageFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Message shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ messageFontWeight: "normal",
+ /**
+ * This sets the font size of Container shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ containerFontSize: 14,
+ /**
+ * This sets the font family of Container shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ containerFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Container shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ containerFontWeight: "normal",
+ /**
+ * This sets the font size of External Container shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_containerFontSize: 14,
+ /**
+ * This sets the font family of External Container shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_containerFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Container shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_containerFontWeight: "normal",
+ /**
+ * This sets the font size of Container DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ container_dbFontSize: 14,
+ /**
+ * This sets the font family of Container DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ container_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Container DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ container_dbFontWeight: "normal",
+ /**
+ * This sets the font size of External Container DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_container_dbFontSize: 14,
+ /**
+ * This sets the font family of External Container DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_container_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Container DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_container_dbFontWeight: "normal",
+ /**
+ * This sets the font size of Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ container_queueFontSize: 14,
+ /**
+ * This sets the font family of Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ container_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ container_queueFontWeight: "normal",
+ /**
+ * This sets the font size of External Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_container_queueFontSize: 14,
+ /**
+ * This sets the font family of External Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_container_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Container Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_container_queueFontWeight: "normal",
+ /**
+ * This sets the font size of Component shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ componentFontSize: 14,
+ /**
+ * This sets the font family of Component shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ componentFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Component shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ componentFontWeight: "normal",
+ /**
+ * This sets the font size of External Component shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_componentFontSize: 14,
+ /**
+ * This sets the font family of External Component shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_componentFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Component shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_componentFontWeight: "normal",
+ /**
+ * This sets the font size of Component DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ component_dbFontSize: 14,
+ /**
+ * This sets the font family of Component DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ component_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Component DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ component_dbFontWeight: "normal",
+ /**
+ * This sets the font size of External Component DB shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_component_dbFontSize: 14,
+ /**
+ * This sets the font family of External Component DB shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_component_dbFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Component DB shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_component_dbFontWeight: "normal",
+ /**
+ * This sets the font size of Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ component_queueFontSize: 14,
+ /**
+ * This sets the font family of Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ component_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ component_queueFontWeight: "normal",
+ /**
+ * This sets the font size of External Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: 14.
+ */
+ external_component_queueFontSize: 14,
+ /**
+ * This sets the font family of External Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: "Open Sans", sans-serif.
+ */
+ external_component_queueFontFamily: '"Open Sans", sans-serif',
+ /**
+ * This sets the font weight of External Component Queue shape for the diagram
+ *
+ * **Notes:** Default value: normal.
+ */
+ external_component_queueFontWeight: "normal",
+ /**
+ * This sets the auto-wrap state for the diagram
+ *
+ * **Notes:** Default value: true.
+ */
+ wrap: true,
+ /**
+ * This sets the auto-wrap padding for the diagram (sides only)
+ *
+ * **Notes:** Default value: 0.
+ */
+ wrapPadding: 10,
+ personFont: function() {
+ return {
+ fontFamily: this.personFontFamily,
+ fontSize: this.personFontSize,
+ fontWeight: this.personFontWeight
+ };
+ },
+ external_personFont: function() {
+ return {
+ fontFamily: this.external_personFontFamily,
+ fontSize: this.external_personFontSize,
+ fontWeight: this.external_personFontWeight
+ };
+ },
+ systemFont: function() {
+ return {
+ fontFamily: this.systemFontFamily,
+ fontSize: this.systemFontSize,
+ fontWeight: this.systemFontWeight
+ };
+ },
+ external_systemFont: function() {
+ return {
+ fontFamily: this.external_systemFontFamily,
+ fontSize: this.external_systemFontSize,
+ fontWeight: this.external_systemFontWeight
+ };
+ },
+ system_dbFont: function() {
+ return {
+ fontFamily: this.system_dbFontFamily,
+ fontSize: this.system_dbFontSize,
+ fontWeight: this.system_dbFontWeight
+ };
+ },
+ external_system_dbFont: function() {
+ return {
+ fontFamily: this.external_system_dbFontFamily,
+ fontSize: this.external_system_dbFontSize,
+ fontWeight: this.external_system_dbFontWeight
+ };
+ },
+ system_queueFont: function() {
+ return {
+ fontFamily: this.system_queueFontFamily,
+ fontSize: this.system_queueFontSize,
+ fontWeight: this.system_queueFontWeight
+ };
+ },
+ external_system_queueFont: function() {
+ return {
+ fontFamily: this.external_system_queueFontFamily,
+ fontSize: this.external_system_queueFontSize,
+ fontWeight: this.external_system_queueFontWeight
+ };
+ },
+ containerFont: function() {
+ return {
+ fontFamily: this.containerFontFamily,
+ fontSize: this.containerFontSize,
+ fontWeight: this.containerFontWeight
+ };
+ },
+ external_containerFont: function() {
+ return {
+ fontFamily: this.external_containerFontFamily,
+ fontSize: this.external_containerFontSize,
+ fontWeight: this.external_containerFontWeight
+ };
+ },
+ container_dbFont: function() {
+ return {
+ fontFamily: this.container_dbFontFamily,
+ fontSize: this.container_dbFontSize,
+ fontWeight: this.container_dbFontWeight
+ };
+ },
+ external_container_dbFont: function() {
+ return {
+ fontFamily: this.external_container_dbFontFamily,
+ fontSize: this.external_container_dbFontSize,
+ fontWeight: this.external_container_dbFontWeight
+ };
+ },
+ container_queueFont: function() {
+ return {
+ fontFamily: this.container_queueFontFamily,
+ fontSize: this.container_queueFontSize,
+ fontWeight: this.container_queueFontWeight
+ };
+ },
+ external_container_queueFont: function() {
+ return {
+ fontFamily: this.external_container_queueFontFamily,
+ fontSize: this.external_container_queueFontSize,
+ fontWeight: this.external_container_queueFontWeight
+ };
+ },
+ componentFont: function() {
+ return {
+ fontFamily: this.componentFontFamily,
+ fontSize: this.componentFontSize,
+ fontWeight: this.componentFontWeight
+ };
+ },
+ external_componentFont: function() {
+ return {
+ fontFamily: this.external_componentFontFamily,
+ fontSize: this.external_componentFontSize,
+ fontWeight: this.external_componentFontWeight
+ };
+ },
+ component_dbFont: function() {
+ return {
+ fontFamily: this.component_dbFontFamily,
+ fontSize: this.component_dbFontSize,
+ fontWeight: this.component_dbFontWeight
+ };
+ },
+ external_component_dbFont: function() {
+ return {
+ fontFamily: this.external_component_dbFontFamily,
+ fontSize: this.external_component_dbFontSize,
+ fontWeight: this.external_component_dbFontWeight
+ };
+ },
+ component_queueFont: function() {
+ return {
+ fontFamily: this.component_queueFontFamily,
+ fontSize: this.component_queueFontSize,
+ fontWeight: this.component_queueFontWeight
+ };
+ },
+ external_component_queueFont: function() {
+ return {
+ fontFamily: this.external_component_queueFontFamily,
+ fontSize: this.external_component_queueFontSize,
+ fontWeight: this.external_component_queueFontWeight
+ };
+ },
+ boundaryFont: function() {
+ return {
+ fontFamily: this.boundaryFontFamily,
+ fontSize: this.boundaryFontSize,
+ fontWeight: this.boundaryFontWeight
+ };
+ },
+ messageFont: function() {
+ return {
+ fontFamily: this.messageFontFamily,
+ fontSize: this.messageFontSize,
+ fontWeight: this.messageFontWeight
+ };
+ },
+ // ' Colors
+ // ' ##################################
+ person_bg_color: "#08427B",
+ person_border_color: "#073B6F",
+ external_person_bg_color: "#686868",
+ external_person_border_color: "#8A8A8A",
+ system_bg_color: "#1168BD",
+ system_border_color: "#3C7FC0",
+ system_db_bg_color: "#1168BD",
+ system_db_border_color: "#3C7FC0",
+ system_queue_bg_color: "#1168BD",
+ system_queue_border_color: "#3C7FC0",
+ external_system_bg_color: "#999999",
+ external_system_border_color: "#8A8A8A",
+ external_system_db_bg_color: "#999999",
+ external_system_db_border_color: "#8A8A8A",
+ external_system_queue_bg_color: "#999999",
+ external_system_queue_border_color: "#8A8A8A",
+ container_bg_color: "#438DD5",
+ container_border_color: "#3C7FC0",
+ container_db_bg_color: "#438DD5",
+ container_db_border_color: "#3C7FC0",
+ container_queue_bg_color: "#438DD5",
+ container_queue_border_color: "#3C7FC0",
+ external_container_bg_color: "#B3B3B3",
+ external_container_border_color: "#A6A6A6",
+ external_container_db_bg_color: "#B3B3B3",
+ external_container_db_border_color: "#A6A6A6",
+ external_container_queue_bg_color: "#B3B3B3",
+ external_container_queue_border_color: "#A6A6A6",
+ component_bg_color: "#85BBF0",
+ component_border_color: "#78A8D8",
+ component_db_bg_color: "#85BBF0",
+ component_db_border_color: "#78A8D8",
+ component_queue_bg_color: "#85BBF0",
+ component_queue_border_color: "#78A8D8",
+ external_component_bg_color: "#CCCCCC",
+ external_component_border_color: "#BFBFBF",
+ external_component_db_bg_color: "#CCCCCC",
+ external_component_db_border_color: "#BFBFBF",
+ external_component_queue_bg_color: "#CCCCCC",
+ external_component_queue_border_color: "#BFBFBF"
+ },
+ mindmap: {
+ useMaxWidth: true,
+ padding: 10,
+ maxNodeWidth: 200
+ },
+ fontSize: 16
+};
+if (config.class) {
+ config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
+}
+if (config.gitGraph) {
+ config.gitGraph.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
+}
+const keyify = (obj, prefix = "") => Object.keys(obj).reduce((res, el) => {
+ if (Array.isArray(obj[el])) {
+ return res;
+ } else if (typeof obj[el] === "object" && obj[el] !== null) {
+ return [...res, prefix + el, ...keyify(obj[el], "")];
+ }
+ return [...res, prefix + el];
+}, []);
+const configKeys = keyify(config, "");
+const config$1 = config;
+const assignWithDepth = function(dst, src, config2) {
+ const { depth, clobber } = Object.assign({ depth: 2, clobber: false }, config2);
+ if (Array.isArray(src) && !Array.isArray(dst)) {
+ src.forEach((s) => assignWithDepth(dst, s, config2));
+ return dst;
+ } else if (Array.isArray(src) && Array.isArray(dst)) {
+ src.forEach((s) => {
+ if (!dst.includes(s)) {
+ dst.push(s);
+ }
+ });
+ return dst;
+ }
+ if (dst === void 0 || depth <= 0) {
+ if (dst !== void 0 && dst !== null && typeof dst === "object" && typeof src === "object") {
+ return Object.assign(dst, src);
+ } else {
+ return src;
+ }
+ }
+ if (src !== void 0 && typeof dst === "object" && typeof src === "object") {
+ Object.keys(src).forEach((key) => {
+ if (typeof src[key] === "object" && (dst[key] === void 0 || typeof dst[key] === "object")) {
+ if (dst[key] === void 0) {
+ dst[key] = Array.isArray(src[key]) ? [] : {};
+ }
+ dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });
+ } else if (clobber || typeof dst[key] !== "object" && typeof src[key] !== "object") {
+ dst[key] = src[key];
+ }
+ });
+ }
+ return dst;
+};
+const assignWithDepth$1 = assignWithDepth;
+const defaultConfig = Object.freeze(config$1);
+let siteConfig = assignWithDepth$1({}, defaultConfig);
+let configFromInitialize;
+let directives = [];
+let currentConfig = assignWithDepth$1({}, defaultConfig);
+const updateCurrentConfig = (siteCfg, _directives) => {
+ let cfg = assignWithDepth$1({}, siteCfg);
+ let sumOfDirectives = {};
+ for (const d of _directives) {
+ sanitize(d);
+ sumOfDirectives = assignWithDepth$1(sumOfDirectives, d);
+ }
+ cfg = assignWithDepth$1(cfg, sumOfDirectives);
+ if (sumOfDirectives.theme && sumOfDirectives.theme in theme) {
+ const tmpConfigFromInitialize = assignWithDepth$1({}, configFromInitialize);
+ const themeVariables = assignWithDepth$1(
+ tmpConfigFromInitialize.themeVariables || {},
+ sumOfDirectives.themeVariables
+ );
+ if (cfg.theme && cfg.theme in theme) {
+ cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);
+ }
+ }
+ currentConfig = cfg;
+ checkConfig(currentConfig);
+ return currentConfig;
+};
+const setSiteConfig = (conf) => {
+ siteConfig = assignWithDepth$1({}, defaultConfig);
+ siteConfig = assignWithDepth$1(siteConfig, conf);
+ if (conf.theme && theme[conf.theme]) {
+ siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables);
+ }
+ updateCurrentConfig(siteConfig, directives);
+ return siteConfig;
+};
+const saveConfigFromInitialize = (conf) => {
+ configFromInitialize = assignWithDepth$1({}, conf);
+};
+const updateSiteConfig = (conf) => {
+ siteConfig = assignWithDepth$1(siteConfig, conf);
+ updateCurrentConfig(siteConfig, directives);
+ return siteConfig;
+};
+const getSiteConfig = () => {
+ return assignWithDepth$1({}, siteConfig);
+};
+const setConfig = (conf) => {
+ checkConfig(conf);
+ assignWithDepth$1(currentConfig, conf);
+ return getConfig();
+};
+const getConfig = () => {
+ return assignWithDepth$1({}, currentConfig);
+};
+const sanitize = (options) => {
+ ["secure", ...siteConfig.secure ?? []].forEach((key) => {
+ if (options[key] !== void 0) {
+ log.debug(`Denied attempt to modify a secure key ${key}`, options[key]);
+ delete options[key];
+ }
+ });
+ Object.keys(options).forEach((key) => {
+ if (key.indexOf("__") === 0) {
+ delete options[key];
+ }
+ });
+ Object.keys(options).forEach((key) => {
+ if (typeof options[key] === "string" && (options[key].includes("<") || options[key].includes(">") || options[key].includes("url(data:"))) {
+ delete options[key];
+ }
+ if (typeof options[key] === "object") {
+ sanitize(options[key]);
+ }
+ });
+};
+const addDirective = (directive) => {
+ if (directive.fontFamily) {
+ if (!directive.themeVariables) {
+ directive.themeVariables = { fontFamily: directive.fontFamily };
+ } else {
+ if (!directive.themeVariables.fontFamily) {
+ directive.themeVariables = { fontFamily: directive.fontFamily };
+ }
+ }
+ }
+ directives.push(directive);
+ updateCurrentConfig(siteConfig, directives);
+};
+const reset = (config2 = siteConfig) => {
+ directives = [];
+ updateCurrentConfig(config2, directives);
+};
+var ConfigWarning = /* @__PURE__ */ ((ConfigWarning2) => {
+ ConfigWarning2["LAZY_LOAD_DEPRECATED"] = "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.";
+ return ConfigWarning2;
+})(ConfigWarning || {});
+const issuedWarnings = {};
+const issueWarning = (warning) => {
+ if (issuedWarnings[warning]) {
+ return;
+ }
+ log.warn(ConfigWarning[warning]);
+ issuedWarnings[warning] = true;
+};
+const checkConfig = (config2) => {
+ if (!config2) {
+ return;
+ }
+ if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {
+ issueWarning("LAZY_LOAD_DEPRECATED");
+ }
+};
+let title = "";
+let diagramTitle = "";
+let description = "";
+const sanitizeText = (txt) => sanitizeText$1(txt, getConfig());
+const clear = function() {
+ title = "";
+ description = "";
+ diagramTitle = "";
+};
+const setAccTitle = function(txt) {
+ title = sanitizeText(txt).replace(/^\s+/g, "");
+};
+const getAccTitle = function() {
+ return title || diagramTitle;
+};
+const setAccDescription = function(txt) {
+ description = sanitizeText(txt).replace(/\n\s+/g, "\n");
+};
+const getAccDescription = function() {
+ return description;
+};
+const setDiagramTitle = function(txt) {
+ diagramTitle = sanitizeText(txt);
+};
+const getDiagramTitle = function() {
+ return diagramTitle;
+};
+const commonDb = {
+ getAccTitle,
+ setAccTitle,
+ getDiagramTitle,
+ setDiagramTitle,
+ getAccDescription,
+ setAccDescription,
+ clear
+};
+const commonDb$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ clear,
+ default: commonDb,
+ getAccDescription,
+ getAccTitle,
+ getDiagramTitle,
+ setAccDescription,
+ setAccTitle,
+ setDiagramTitle
+}, Symbol.toStringTag, { value: "Module" }));
+export {
+ clear as A,
+ root as B,
+ array as C,
+ parseGenericTypes as D,
+ define as E,
+ extend as F,
+ Color$2 as G,
+ rgbConvert as H,
+ constant as I,
+ interpolateNumber as J,
+ color as K,
+ interpolateRgb as L,
+ interpolateString as M,
+ nogamma as N,
+ hue as O,
+ commonjsGlobal as P,
+ dayjs as Q,
+ Rgb as R,
+ Selection$1 as S,
+ getDefaultExportFromCjs as T,
+ lighten$1 as U,
+ darken$1 as V,
+ Color$1 as W,
+ _,
+ addDirective as a,
+ sanitizeText$1 as b,
+ commonDb$1 as c,
+ assignWithDepth$1 as d,
+ configKeys as e,
+ common as f,
+ getConfig as g,
+ select as h,
+ setConfig as i,
+ getSiteConfig as j,
+ defaultConfig as k,
+ log as l,
+ evaluate as m,
+ saveConfigFromInitialize as n,
+ setSiteConfig as o,
+ purify as p,
+ setAccTitle as q,
+ reset as r,
+ setLogLevel as s,
+ theme as t,
+ updateSiteConfig as u,
+ getAccTitle as v,
+ getAccDescription as w,
+ setAccDescription as x,
+ setDiagramTitle as y,
+ getDiagramTitle as z
+};
+//# sourceMappingURL=commonDb-89160e91.js.map
diff --git a/scopegraphs-render-docs/doc/js/commonDb.d.ts b/scopegraphs-render-docs/doc/js/commonDb.d.ts
new file mode 100644
index 0000000..625b6eb
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/commonDb.d.ts
@@ -0,0 +1,17 @@
+export declare const clear: () => void;
+export declare const setAccTitle: (txt: string) => void;
+export declare const getAccTitle: () => string;
+export declare const setAccDescription: (txt: string) => void;
+export declare const getAccDescription: () => string;
+export declare const setDiagramTitle: (txt: string) => void;
+export declare const getDiagramTitle: () => string;
+declare const _default: {
+ getAccTitle: () => string;
+ setAccTitle: (txt: string) => void;
+ getDiagramTitle: () => string;
+ setDiagramTitle: (txt: string) => void;
+ getAccDescription: () => string;
+ setAccDescription: (txt: string) => void;
+ clear: () => void;
+};
+export default _default;
diff --git a/scopegraphs-render-docs/doc/js/config.d.ts b/scopegraphs-render-docs/doc/js/config.d.ts
new file mode 100644
index 0000000..7de7db0
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/config.d.ts
@@ -0,0 +1,98 @@
+import type { MermaidConfig } from './config.type';
+export declare const defaultConfig: MermaidConfig;
+export declare const updateCurrentConfig: (siteCfg: MermaidConfig, _directives: any[]) => MermaidConfig;
+/**
+ * ## setSiteConfig
+ *
+ * | Function | Description | Type | Values |
+ * | ------------- | ------------------------------------- | ----------- | --------------------------------------- |
+ * | setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |
+ *
+ * **Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls
+ * to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig)
+ * will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this
+ * function _Default value: At default, will mirror Global Config_
+ *
+ * @param conf - The base currentConfig to use as siteConfig
+ * @returns The new siteConfig
+ */
+export declare const setSiteConfig: (conf: MermaidConfig) => MermaidConfig;
+export declare const saveConfigFromInitialize: (conf: MermaidConfig) => void;
+export declare const updateSiteConfig: (conf: MermaidConfig) => MermaidConfig;
+/**
+ * ## getSiteConfig
+ *
+ * | Function | Description | Type | Values |
+ * | ------------- | ------------------------------------------------- | ----------- | -------------------------------- |
+ * | setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig |
+ *
+ * **Notes**: Returns **any** values in siteConfig.
+ *
+ * @returns The siteConfig
+ */
+export declare const getSiteConfig: () => MermaidConfig;
+/**
+ * ## setConfig
+ *
+ * | Function | Description | Type | Values |
+ * | ------------- | ------------------------------------- | ----------- | --------------------------------------- |
+ * | setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |
+ *
+ * **Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure
+ * keys. Any values found in conf with key found in siteConfig.secure will be replaced with the
+ * corresponding siteConfig value.
+ *
+ * @param conf - The potential currentConfig
+ * @returns The currentConfig merged with the sanitized conf
+ */
+export declare const setConfig: (conf: MermaidConfig) => MermaidConfig;
+/**
+ * ## getConfig
+ *
+ * | Function | Description | Type | Return Values |
+ * | --------- | ------------------------- | ----------- | ------------------------------ |
+ * | getConfig | Obtains the currentConfig | Get Request | Any Values from current Config |
+ *
+ * **Notes**: Returns **any** the currentConfig
+ *
+ * @returns The currentConfig
+ */
+export declare const getConfig: () => MermaidConfig;
+/**
+ * ## sanitize
+ *
+ * | Function | Description | Type | Values |
+ * | -------- | -------------------------------------- | ----------- | ------ |
+ * | sanitize | Sets the siteConfig to desired values. | Put Request | None |
+ *
+ * Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies
+ * options in-place
+ *
+ * @param options - The potential setConfig parameter
+ */
+export declare const sanitize: (options: any) => void;
+/**
+ * Pushes in a directive to the configuration
+ *
+ * @param directive - The directive to push in
+ */
+export declare const addDirective: (directive: any) => void;
+/**
+ * ## reset
+ *
+ * | Function | Description | Type | Required | Values |
+ * | -------- | ---------------------------- | ----------- | -------- | ------ |
+ * | reset | Resets currentConfig to conf | Put Request | Required | None |
+ *
+ * ## conf
+ *
+ * | Parameter | Description | Type | Required | Values |
+ * | --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- |
+ * | conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array |
+ *
+ * **Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`)
+ *
+ * @param config - base set of values, which currentConfig could be **reset** to.
+ * Defaults to the current siteConfig (e.g returned by {@link getSiteConfig}).
+ */
+export declare const reset: (config?: MermaidConfig) => void;
diff --git a/scopegraphs-render-docs/doc/js/config.type.d.ts b/scopegraphs-render-docs/doc/js/config.type.d.ts
new file mode 100644
index 0000000..b0f9c26
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/config.type.d.ts
@@ -0,0 +1,378 @@
+import DOMPurify from 'dompurify';
+export interface MermaidConfig {
+ theme?: string;
+ themeVariables?: any;
+ themeCSS?: string;
+ maxTextSize?: number;
+ darkMode?: boolean;
+ htmlLabels?: boolean;
+ fontFamily?: string;
+ altFontFamily?: string;
+ logLevel?: number;
+ securityLevel?: string;
+ startOnLoad?: boolean;
+ arrowMarkerAbsolute?: boolean;
+ secure?: string[];
+ deterministicIds?: boolean;
+ deterministicIDSeed?: string;
+ flowchart?: FlowchartDiagramConfig;
+ sequence?: SequenceDiagramConfig;
+ gantt?: GanttDiagramConfig;
+ journey?: JourneyDiagramConfig;
+ timeline?: TimelineDiagramConfig;
+ class?: ClassDiagramConfig;
+ state?: StateDiagramConfig;
+ er?: ErDiagramConfig;
+ pie?: PieDiagramConfig;
+ requirement?: RequirementDiagramConfig;
+ mindmap?: MindmapDiagramConfig;
+ gitGraph?: GitGraphDiagramConfig;
+ c4?: C4DiagramConfig;
+ dompurifyConfig?: DOMPurify.Config;
+ wrap?: boolean;
+ fontSize?: number;
+}
+export interface BaseDiagramConfig {
+ useWidth?: number;
+ useMaxWidth?: boolean;
+}
+export interface C4DiagramConfig extends BaseDiagramConfig {
+ diagramMarginX?: number;
+ diagramMarginY?: number;
+ c4ShapeMargin?: number;
+ c4ShapePadding?: number;
+ width?: number;
+ height?: number;
+ boxMargin?: number;
+ c4ShapeInRow?: number;
+ nextLinePaddingX?: number;
+ c4BoundaryInRow?: number;
+ personFontSize?: string | number;
+ personFontFamily?: string;
+ personFontWeight?: string | number;
+ external_personFontSize?: string | number;
+ external_personFontFamily?: string;
+ external_personFontWeight?: string | number;
+ systemFontSize?: string | number;
+ systemFontFamily?: string;
+ systemFontWeight?: string | number;
+ external_systemFontSize?: string | number;
+ external_systemFontFamily?: string;
+ external_systemFontWeight?: string | number;
+ system_dbFontSize?: string | number;
+ system_dbFontFamily?: string;
+ system_dbFontWeight?: string | number;
+ external_system_dbFontSize?: string | number;
+ external_system_dbFontFamily?: string;
+ external_system_dbFontWeight?: string | number;
+ system_queueFontSize?: string | number;
+ system_queueFontFamily?: string;
+ system_queueFontWeight?: string | number;
+ external_system_queueFontSize?: string | number;
+ external_system_queueFontFamily?: string;
+ external_system_queueFontWeight?: string | number;
+ boundaryFontSize?: string | number;
+ boundaryFontFamily?: string;
+ boundaryFontWeight?: string | number;
+ messageFontSize?: string | number;
+ messageFontFamily?: string;
+ messageFontWeight?: string | number;
+ containerFontSize?: string | number;
+ containerFontFamily?: string;
+ containerFontWeight?: string | number;
+ external_containerFontSize?: string | number;
+ external_containerFontFamily?: string;
+ external_containerFontWeight?: string | number;
+ container_dbFontSize?: string | number;
+ container_dbFontFamily?: string;
+ container_dbFontWeight?: string | number;
+ external_container_dbFontSize?: string | number;
+ external_container_dbFontFamily?: string;
+ external_container_dbFontWeight?: string | number;
+ container_queueFontSize?: string | number;
+ container_queueFontFamily?: string;
+ container_queueFontWeight?: string | number;
+ external_container_queueFontSize?: string | number;
+ external_container_queueFontFamily?: string;
+ external_container_queueFontWeight?: string | number;
+ componentFontSize?: string | number;
+ componentFontFamily?: string;
+ componentFontWeight?: string | number;
+ external_componentFontSize?: string | number;
+ external_componentFontFamily?: string;
+ external_componentFontWeight?: string | number;
+ component_dbFontSize?: string | number;
+ component_dbFontFamily?: string;
+ component_dbFontWeight?: string | number;
+ external_component_dbFontSize?: string | number;
+ external_component_dbFontFamily?: string;
+ external_component_dbFontWeight?: string | number;
+ component_queueFontSize?: string | number;
+ component_queueFontFamily?: string;
+ component_queueFontWeight?: string | number;
+ external_component_queueFontSize?: string | number;
+ external_component_queueFontFamily?: string;
+ external_component_queueFontWeight?: string | number;
+ wrap?: boolean;
+ wrapPadding?: number;
+ person_bg_color?: string;
+ person_border_color?: string;
+ external_person_bg_color?: string;
+ external_person_border_color?: string;
+ system_bg_color?: string;
+ system_border_color?: string;
+ system_db_bg_color?: string;
+ system_db_border_color?: string;
+ system_queue_bg_color?: string;
+ system_queue_border_color?: string;
+ external_system_bg_color?: string;
+ external_system_border_color?: string;
+ external_system_db_bg_color?: string;
+ external_system_db_border_color?: string;
+ external_system_queue_bg_color?: string;
+ external_system_queue_border_color?: string;
+ container_bg_color?: string;
+ container_border_color?: string;
+ container_db_bg_color?: string;
+ container_db_border_color?: string;
+ container_queue_bg_color?: string;
+ container_queue_border_color?: string;
+ external_container_bg_color?: string;
+ external_container_border_color?: string;
+ external_container_db_bg_color?: string;
+ external_container_db_border_color?: string;
+ external_container_queue_bg_color?: string;
+ external_container_queue_border_color?: string;
+ component_bg_color?: string;
+ component_border_color?: string;
+ component_db_bg_color?: string;
+ component_db_border_color?: string;
+ component_queue_bg_color?: string;
+ component_queue_border_color?: string;
+ external_component_bg_color?: string;
+ external_component_border_color?: string;
+ external_component_db_bg_color?: string;
+ external_component_db_border_color?: string;
+ external_component_queue_bg_color?: string;
+ external_component_queue_border_color?: string;
+ personFont?: FontCalculator;
+ external_personFont?: FontCalculator;
+ systemFont?: FontCalculator;
+ external_systemFont?: FontCalculator;
+ system_dbFont?: FontCalculator;
+ external_system_dbFont?: FontCalculator;
+ system_queueFont?: FontCalculator;
+ external_system_queueFont?: FontCalculator;
+ containerFont?: FontCalculator;
+ external_containerFont?: FontCalculator;
+ container_dbFont?: FontCalculator;
+ external_container_dbFont?: FontCalculator;
+ container_queueFont?: FontCalculator;
+ external_container_queueFont?: FontCalculator;
+ componentFont?: FontCalculator;
+ external_componentFont?: FontCalculator;
+ component_dbFont?: FontCalculator;
+ external_component_dbFont?: FontCalculator;
+ component_queueFont?: FontCalculator;
+ external_component_queueFont?: FontCalculator;
+ boundaryFont?: FontCalculator;
+ messageFont?: FontCalculator;
+}
+export interface GitGraphDiagramConfig extends BaseDiagramConfig {
+ titleTopMargin?: number;
+ diagramPadding?: number;
+ nodeLabel?: NodeLabel;
+ mainBranchName?: string;
+ mainBranchOrder?: number;
+ showCommitLabel?: boolean;
+ showBranches?: boolean;
+ rotateCommitLabel?: boolean;
+ arrowMarkerAbsolute?: boolean;
+}
+export interface NodeLabel {
+ width?: number;
+ height?: number;
+ x?: number;
+ y?: number;
+}
+export interface RequirementDiagramConfig extends BaseDiagramConfig {
+ rect_fill?: string;
+ text_color?: string;
+ rect_border_size?: string;
+ rect_border_color?: string;
+ rect_min_width?: number;
+ rect_min_height?: number;
+ fontSize?: number;
+ rect_padding?: number;
+ line_height?: number;
+}
+export interface MindmapDiagramConfig extends BaseDiagramConfig {
+ useMaxWidth: boolean;
+ padding: number;
+ maxNodeWidth: number;
+}
+export interface PieDiagramConfig extends BaseDiagramConfig {
+ textPosition?: number;
+}
+export interface ErDiagramConfig extends BaseDiagramConfig {
+ titleTopMargin?: number;
+ diagramPadding?: number;
+ layoutDirection?: string;
+ minEntityWidth?: number;
+ minEntityHeight?: number;
+ entityPadding?: number;
+ stroke?: string;
+ fill?: string;
+ fontSize?: number;
+}
+export interface StateDiagramConfig extends BaseDiagramConfig {
+ titleTopMargin?: number;
+ arrowMarkerAbsolute?: boolean;
+ dividerMargin?: number;
+ sizeUnit?: number;
+ padding?: number;
+ textHeight?: number;
+ titleShift?: number;
+ noteMargin?: number;
+ forkWidth?: number;
+ forkHeight?: number;
+ miniPadding?: number;
+ fontSizeFactor?: number;
+ fontSize?: number;
+ labelHeight?: number;
+ edgeLengthFactor?: string;
+ compositTitleSize?: number;
+ radius?: number;
+ defaultRenderer?: string;
+}
+export interface ClassDiagramConfig extends BaseDiagramConfig {
+ titleTopMargin?: number;
+ arrowMarkerAbsolute?: boolean;
+ dividerMargin?: number;
+ padding?: number;
+ textHeight?: number;
+ defaultRenderer?: string;
+ nodeSpacing?: number;
+ rankSpacing?: number;
+ diagramPadding?: number;
+ htmlLabels?: boolean;
+}
+export interface JourneyDiagramConfig extends BaseDiagramConfig {
+ diagramMarginX?: number;
+ diagramMarginY?: number;
+ leftMargin?: number;
+ width?: number;
+ height?: number;
+ boxMargin?: number;
+ boxTextMargin?: number;
+ noteMargin?: number;
+ messageMargin?: number;
+ messageAlign?: string;
+ bottomMarginAdj?: number;
+ rightAngles?: boolean;
+ taskFontSize?: string | number;
+ taskFontFamily?: string;
+ taskMargin?: number;
+ activationWidth?: number;
+ textPlacement?: string;
+ actorColours?: string[];
+ sectionFills?: string[];
+ sectionColours?: string[];
+}
+export interface TimelineDiagramConfig extends BaseDiagramConfig {
+ diagramMarginX?: number;
+ diagramMarginY?: number;
+ leftMargin?: number;
+ width?: number;
+ height?: number;
+ padding?: number;
+ boxMargin?: number;
+ boxTextMargin?: number;
+ noteMargin?: number;
+ messageMargin?: number;
+ messageAlign?: string;
+ bottomMarginAdj?: number;
+ rightAngles?: boolean;
+ taskFontSize?: string | number;
+ taskFontFamily?: string;
+ taskMargin?: number;
+ activationWidth?: number;
+ textPlacement?: string;
+ actorColours?: string[];
+ sectionFills?: string[];
+ sectionColours?: string[];
+ disableMulticolor?: boolean;
+ useMaxWidth?: boolean;
+}
+export interface GanttDiagramConfig extends BaseDiagramConfig {
+ titleTopMargin?: number;
+ barHeight?: number;
+ barGap?: number;
+ topPadding?: number;
+ rightPadding?: number;
+ leftPadding?: number;
+ gridLineStartPadding?: number;
+ fontSize?: number;
+ sectionFontSize?: string | number;
+ numberSectionStyles?: number;
+ axisFormat?: string;
+ tickInterval?: string;
+ topAxis?: boolean;
+ displayMode?: string;
+}
+export interface SequenceDiagramConfig extends BaseDiagramConfig {
+ arrowMarkerAbsolute?: boolean;
+ hideUnusedParticipants?: boolean;
+ activationWidth?: number;
+ diagramMarginX?: number;
+ diagramMarginY?: number;
+ actorMargin?: number;
+ width?: number;
+ height?: number;
+ boxMargin?: number;
+ boxTextMargin?: number;
+ noteMargin?: number;
+ messageMargin?: number;
+ messageAlign?: string;
+ mirrorActors?: boolean;
+ forceMenus?: boolean;
+ bottomMarginAdj?: number;
+ rightAngles?: boolean;
+ showSequenceNumbers?: boolean;
+ actorFontSize?: string | number;
+ actorFontFamily?: string;
+ actorFontWeight?: string | number;
+ noteFontSize?: string | number;
+ noteFontFamily?: string;
+ noteFontWeight?: string | number;
+ noteAlign?: string;
+ messageFontSize?: string | number;
+ messageFontFamily?: string;
+ messageFontWeight?: string | number;
+ wrap?: boolean;
+ wrapPadding?: number;
+ labelBoxWidth?: number;
+ labelBoxHeight?: number;
+ messageFont?: FontCalculator;
+ noteFont?: FontCalculator;
+ actorFont?: FontCalculator;
+}
+export interface FlowchartDiagramConfig extends BaseDiagramConfig {
+ titleTopMargin?: number;
+ arrowMarkerAbsolute?: boolean;
+ diagramPadding?: number;
+ htmlLabels?: boolean;
+ nodeSpacing?: number;
+ rankSpacing?: number;
+ curve?: string;
+ padding?: number;
+ defaultRenderer?: string;
+ wrappingWidth?: number;
+}
+export interface FontConfig {
+ fontSize?: string | number;
+ fontFamily?: string;
+ fontWeight?: string | number;
+}
+export declare type FontCalculator = () => Partial;
+export {};
diff --git a/scopegraphs-render-docs/doc/js/constant-2fe7eae5.js b/scopegraphs-render-docs/doc/js/constant-2fe7eae5.js
new file mode 100644
index 0000000..1c01158
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/constant-2fe7eae5.js
@@ -0,0 +1,64 @@
+const p = Math.PI, v = 2 * p, c = 1e-6, q = v - c;
+function y() {
+ this._x0 = this._y0 = // start of current subpath
+ this._x1 = this._y1 = null, this._ = "";
+}
+function C() {
+ return new y();
+}
+y.prototype = C.prototype = {
+ constructor: y,
+ moveTo: function(i, s) {
+ this._ += "M" + (this._x0 = this._x1 = +i) + "," + (this._y0 = this._y1 = +s);
+ },
+ closePath: function() {
+ this._x1 !== null && (this._x1 = this._x0, this._y1 = this._y0, this._ += "Z");
+ },
+ lineTo: function(i, s) {
+ this._ += "L" + (this._x1 = +i) + "," + (this._y1 = +s);
+ },
+ quadraticCurveTo: function(i, s, t, h) {
+ this._ += "Q" + +i + "," + +s + "," + (this._x1 = +t) + "," + (this._y1 = +h);
+ },
+ bezierCurveTo: function(i, s, t, h, _, e) {
+ this._ += "C" + +i + "," + +s + "," + +t + "," + +h + "," + (this._x1 = +_) + "," + (this._y1 = +e);
+ },
+ arcTo: function(i, s, t, h, _) {
+ i = +i, s = +s, t = +t, h = +h, _ = +_;
+ var e = this._x1, r = this._y1, f = t - i, a = h - s, n = e - i, u = r - s, o = n * n + u * u;
+ if (_ < 0)
+ throw new Error("negative radius: " + _);
+ if (this._x1 === null)
+ this._ += "M" + (this._x1 = i) + "," + (this._y1 = s);
+ else if (o > c)
+ if (!(Math.abs(u * f - a * n) > c) || !_)
+ this._ += "L" + (this._x1 = i) + "," + (this._y1 = s);
+ else {
+ var M = t - e, l = h - r, d = f * f + a * a, g = M * M + l * l, b = Math.sqrt(d), T = Math.sqrt(o), A = _ * Math.tan((p - Math.acos((d + o - g) / (2 * b * T))) / 2), x = A / T, L = A / b;
+ Math.abs(x - 1) > c && (this._ += "L" + (i + x * n) + "," + (s + x * u)), this._ += "A" + _ + "," + _ + ",0,0," + +(u * M > n * l) + "," + (this._x1 = i + L * f) + "," + (this._y1 = s + L * a);
+ }
+ },
+ arc: function(i, s, t, h, _, e) {
+ i = +i, s = +s, t = +t, e = !!e;
+ var r = t * Math.cos(h), f = t * Math.sin(h), a = i + r, n = s + f, u = 1 ^ e, o = e ? h - _ : _ - h;
+ if (t < 0)
+ throw new Error("negative radius: " + t);
+ this._x1 === null ? this._ += "M" + a + "," + n : (Math.abs(this._x1 - a) > c || Math.abs(this._y1 - n) > c) && (this._ += "L" + a + "," + n), t && (o < 0 && (o = o % v + v), o > q ? this._ += "A" + t + "," + t + ",0,1," + u + "," + (i - r) + "," + (s - f) + "A" + t + "," + t + ",0,1," + u + "," + (this._x1 = a) + "," + (this._y1 = n) : o > c && (this._ += "A" + t + "," + t + ",0," + +(o >= p) + "," + u + "," + (this._x1 = i + t * Math.cos(_)) + "," + (this._y1 = s + t * Math.sin(_))));
+ },
+ rect: function(i, s, t, h) {
+ this._ += "M" + (this._x0 = this._x1 = +i) + "," + (this._y0 = this._y1 = +s) + "h" + +t + "v" + +h + "h" + -t + "Z";
+ },
+ toString: function() {
+ return this._;
+ }
+};
+function E(i) {
+ return function() {
+ return i;
+ };
+}
+export {
+ E as c,
+ C as p
+};
+//# sourceMappingURL=constant-2fe7eae5.js.map
diff --git a/scopegraphs-render-docs/doc/js/constant-b644328d.js b/scopegraphs-render-docs/doc/js/constant-b644328d.js
new file mode 100644
index 0000000..0378bf7
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/constant-b644328d.js
@@ -0,0 +1,85 @@
+const pi = Math.PI, tau = 2 * pi, epsilon = 1e-6, tauEpsilon = tau - epsilon;
+function Path() {
+ this._x0 = this._y0 = // start of current subpath
+ this._x1 = this._y1 = null;
+ this._ = "";
+}
+function path() {
+ return new Path();
+}
+Path.prototype = path.prototype = {
+ constructor: Path,
+ moveTo: function(x, y) {
+ this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
+ },
+ closePath: function() {
+ if (this._x1 !== null) {
+ this._x1 = this._x0, this._y1 = this._y0;
+ this._ += "Z";
+ }
+ },
+ lineTo: function(x, y) {
+ this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
+ },
+ quadraticCurveTo: function(x1, y1, x, y) {
+ this._ += "Q" + +x1 + "," + +y1 + "," + (this._x1 = +x) + "," + (this._y1 = +y);
+ },
+ bezierCurveTo: function(x1, y1, x2, y2, x, y) {
+ this._ += "C" + +x1 + "," + +y1 + "," + +x2 + "," + +y2 + "," + (this._x1 = +x) + "," + (this._y1 = +y);
+ },
+ arcTo: function(x1, y1, x2, y2, r) {
+ x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
+ var x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01;
+ if (r < 0)
+ throw new Error("negative radius: " + r);
+ if (this._x1 === null) {
+ this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
+ } else if (!(l01_2 > epsilon))
+ ;
+ else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
+ this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
+ } else {
+ var x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21;
+ if (Math.abs(t01 - 1) > epsilon) {
+ this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
+ }
+ this._ += "A" + r + "," + r + ",0,0," + +(y01 * x20 > x01 * y20) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
+ }
+ },
+ arc: function(x, y, r, a0, a1, ccw) {
+ x = +x, y = +y, r = +r, ccw = !!ccw;
+ var dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x + dx, y0 = y + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0;
+ if (r < 0)
+ throw new Error("negative radius: " + r);
+ if (this._x1 === null) {
+ this._ += "M" + x0 + "," + y0;
+ } else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
+ this._ += "L" + x0 + "," + y0;
+ }
+ if (!r)
+ return;
+ if (da < 0)
+ da = da % tau + tau;
+ if (da > tauEpsilon) {
+ this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
+ } else if (da > epsilon) {
+ this._ += "A" + r + "," + r + ",0," + +(da >= pi) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
+ }
+ },
+ rect: function(x, y, w, h) {
+ this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + +w + "v" + +h + "h" + -w + "Z";
+ },
+ toString: function() {
+ return this._;
+ }
+};
+function constant(x) {
+ return function constant2() {
+ return x;
+ };
+}
+export {
+ constant as c,
+ path as p
+};
+//# sourceMappingURL=constant-b644328d.js.map
diff --git a/scopegraphs-render-docs/doc/js/createText-1f5f8f92.js b/scopegraphs-render-docs/doc/js/createText-1f5f8f92.js
new file mode 100644
index 0000000..b4b718c
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/createText-1f5f8f92.js
@@ -0,0 +1,183 @@
+import "d3";
+import { l as log } from "./commonDb-573409be.js";
+import { d as decodeEntities } from "./mermaidAPI-3ae0f2f0.js";
+import SimpleMarkdown from "@khanacademy/simple-markdown";
+function preprocessMarkdown(markdown) {
+ const withoutMultipleNewlines = markdown.replace(/\n{2,}/g, "\n");
+ const withoutExtraSpaces = withoutMultipleNewlines.replace(/^\s+/gm, "");
+ return withoutExtraSpaces;
+}
+function markdownToLines(markdown) {
+ const preprocessedMarkdown = preprocessMarkdown(markdown);
+ const mdParse = SimpleMarkdown.defaultBlockParse;
+ const syntaxTree = mdParse(preprocessedMarkdown);
+ let lines = [[]];
+ let currentLine = 0;
+ function processNode(node, parentType) {
+ if (node.type === "text") {
+ const textLines = node.content.split("\n");
+ textLines.forEach((textLine, index) => {
+ if (index !== 0) {
+ currentLine++;
+ lines.push([]);
+ }
+ textLine.split(" ").forEach((word) => {
+ if (word) {
+ lines[currentLine].push({ content: word, type: parentType || "normal" });
+ }
+ });
+ });
+ } else if (node.type === "strong" || node.type === "em") {
+ node.content.forEach((contentNode) => {
+ processNode(contentNode, node.type);
+ });
+ }
+ }
+ syntaxTree.forEach((treeNode) => {
+ if (treeNode.type === "paragraph") {
+ treeNode.content.forEach((contentNode) => {
+ processNode(contentNode);
+ });
+ }
+ });
+ return lines;
+}
+function markdownToHTML(markdown) {
+ const mdParse = SimpleMarkdown.defaultBlockParse;
+ const syntaxTree = mdParse(markdown);
+ function output(node) {
+ if (node.type === "text") {
+ return node.content.replace(/\n/g, "
");
+ } else if (node.type === "strong") {
+ return `${node.content.map(output).join("")}`;
+ } else if (node.type === "em") {
+ return `${node.content.map(output).join("")}`;
+ } else if (node.type === "paragraph") {
+ return `${node.content.map(output).join("")}
`;
+ } else {
+ return "";
+ }
+ }
+ return syntaxTree.map(output).join("");
+}
+function applyStyle(dom, styleFn) {
+ if (styleFn) {
+ dom.attr("style", styleFn);
+ }
+}
+function addHtmlSpan(element, node, width, classes) {
+ const fo = element.append("foreignObject");
+ const div = fo.append("xhtml:div");
+ const label = node.label;
+ const labelClass = node.isNode ? "nodeLabel" : "edgeLabel";
+ div.html(
+ `" + label + ""
+ );
+ applyStyle(div, node.labelStyle);
+ div.style("display", "table-cell");
+ div.style("white-space", "nowrap");
+ div.style("max-width", width + "px");
+ div.attr("xmlns", "http://www.w3.org/1999/xhtml");
+ let bbox = div.node().getBoundingClientRect();
+ if (bbox.width === width) {
+ div.style("display", "table");
+ div.style("white-space", "break-spaces");
+ div.style("width", width + "px");
+ bbox = div.node().getBoundingClientRect();
+ }
+ fo.style("width", bbox.width);
+ fo.style("height", bbox.height);
+ return fo.node();
+}
+function createTspan(textElement, lineIndex, lineHeight) {
+ return textElement.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", lineIndex * lineHeight - 0.1 + "em").attr("dy", lineHeight + "em");
+}
+function createFormattedText(width, g, structuredText, addBackground = false) {
+ const lineHeight = 1.1;
+ const labelGroup = g.append("g");
+ let bkg = labelGroup.insert("rect").attr("class", "background");
+ const textElement = labelGroup.append("text").attr("y", "-10.1");
+ let lineIndex = -1;
+ structuredText.forEach((line) => {
+ lineIndex++;
+ let tspan = createTspan(textElement, lineIndex, lineHeight);
+ let words = [...line].reverse();
+ let currentWord;
+ let wrappedLine = [];
+ while (words.length) {
+ currentWord = words.pop();
+ wrappedLine.push(currentWord);
+ updateTextContentAndStyles(tspan, wrappedLine);
+ if (tspan.node().getComputedTextLength() > width) {
+ wrappedLine.pop();
+ words.push(currentWord);
+ updateTextContentAndStyles(tspan, wrappedLine);
+ wrappedLine = [];
+ lineIndex++;
+ tspan = createTspan(textElement, lineIndex, lineHeight);
+ }
+ }
+ });
+ if (addBackground) {
+ const bbox = textElement.node().getBBox();
+ const padding = 2;
+ bkg.attr("x", -padding).attr("y", -padding).attr("width", bbox.width + 2 * padding).attr("height", bbox.height + 2 * padding);
+ return labelGroup.node();
+ } else {
+ return textElement.node();
+ }
+}
+function updateTextContentAndStyles(tspan, wrappedLine) {
+ tspan.text("");
+ wrappedLine.forEach((word, index) => {
+ const innerTspan = tspan.append("tspan").attr("font-style", word.type === "em" ? "italic" : "normal").attr("class", "text-inner-tspan").attr("font-weight", word.type === "strong" ? "bold" : "normal");
+ if (index === 0) {
+ innerTspan.text(word.content);
+ } else {
+ innerTspan.text(" " + word.content);
+ }
+ });
+}
+const createText = (el, text = "", {
+ style = "",
+ isTitle = false,
+ classes = "",
+ useHtmlLabels = true,
+ isNode = true,
+ width,
+ addSvgBackground = false
+} = {}) => {
+ log.info("createText", text, style, isTitle, classes, useHtmlLabels, isNode, addSvgBackground);
+ if (useHtmlLabels) {
+ const htmlText = markdownToHTML(text);
+ const node = {
+ isNode,
+ label: decodeEntities(htmlText).replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s) => ``
+ ),
+ labelStyle: style.replace("fill:", "color:")
+ };
+ let vertexNode = addHtmlSpan(el, node, width, classes);
+ return vertexNode;
+ } else {
+ const structuredText = markdownToLines(text);
+ const special = ['"', "'", ".", ",", ":", ";", "!", "?", "(", ")", "[", "]", "{", "}"];
+ let lastWord;
+ structuredText.forEach((line) => {
+ line.forEach((word) => {
+ if (special.includes(word.content) && lastWord) {
+ lastWord.content += word.content;
+ word.content = "";
+ }
+ lastWord = word;
+ });
+ });
+ const svgLabel = createFormattedText(width, el, structuredText, addSvgBackground);
+ return svgLabel;
+ }
+};
+export {
+ createText as c
+};
+//# sourceMappingURL=createText-1f5f8f92.js.map
diff --git a/scopegraphs-render-docs/doc/js/createText-23817c58.js b/scopegraphs-render-docs/doc/js/createText-23817c58.js
new file mode 100644
index 0000000..c2a7225
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/createText-23817c58.js
@@ -0,0 +1,1093 @@
+import { l as lt } from "./commonDb-41f8b4c5.js";
+import { p as ut } from "./mermaidAPI-67f627de.js";
+var it = /\r\n?/g, ot = /\t/g, ct = /\f/g, J = function(t) {
+ return t.replace(it, `
+`).replace(ct, "").replace(ot, " ");
+}, Q = function(t, e) {
+ var r = t || {};
+ if (e != null)
+ for (var a in e)
+ Object.prototype.hasOwnProperty.call(e, a) && (r[a] = e[a]);
+ return r;
+}, V = function(t, e) {
+ var r = Object.keys(t).filter(function(i) {
+ var u = t[i];
+ if (u == null || u.match == null)
+ return !1;
+ var c = u.order;
+ return (typeof c != "number" || !isFinite(c)) && typeof console < "u" && console.warn("simple-markdown: Invalid order for rule `" + i + "`: " + String(c)), !0;
+ });
+ r.sort(function(i, u) {
+ var c = t[i], f = t[u], s = c.order, p = f.order;
+ if (s !== p)
+ return s - p;
+ var h = c.quality ? 0 : 1, g = f.quality ? 0 : 1;
+ return h !== g ? h - g : i < u ? -1 : i > u ? 1 : 0;
+ });
+ var a, l = function i(u, c) {
+ var f = [];
+ for (c = c || a, a = c; u; ) {
+ var s = null, p = null, h = null, g = NaN, S = 0, x = r[0], y = t[x];
+ do {
+ var E = y.order, b = c.prevCapture == null ? "" : c.prevCapture[0], k = y.match(u, c, b);
+ if (k) {
+ var A = y.quality ? y.quality(k, c, b) : 0;
+ A <= g || (s = x, p = y, h = k, g = A);
+ }
+ S++, x = r[S], y = t[x];
+ } while (
+ // keep looping while we're still within the ruleList
+ y && // if we don't have a match yet, continue
+ (!h || // or if we have a match, but the next rule is
+ // at the same order, and has a quality measurement
+ // functions, then this rule must have a quality
+ // measurement function (since they are sorted before
+ // those without), and we need to check if there is
+ // a better quality match
+ y.order === E && y.quality)
+ );
+ if (p == null || h == null)
+ throw new Error("Could not find a matching rule for the below content. The rule with highest `order` should always match content provided to it. Check the definition of `match` for '" + r[r.length - 1] + `'. It seems to not match the following source:
+` + u);
+ if (h.index)
+ throw new Error("`match` must return a capture starting at index 0 (the current parse index). Did you forget a ^ at the start of the RegExp?");
+ var w = p.parse(h, i, c);
+ if (Array.isArray(w))
+ Array.prototype.push.apply(f, w);
+ else {
+ if (w == null || typeof w != "object")
+ throw new Error("parse() function returned invalid parse result: '".concat(w, "'"));
+ w.type == null && (w.type = s), f.push(w);
+ }
+ c.prevCapture = h, u = u.substring(c.prevCapture[0].length);
+ }
+ return f;
+ }, o = function(u, c) {
+ return a = Q(c, e), !a.inline && !a.disableAutoBlockNewlines && (u = u + `
+
+`), a.prevCapture = null, l(J(u), a);
+ };
+ return o;
+}, _ = function(t) {
+ var e = function(a, l, o) {
+ return l.inline ? t.exec(a) : null;
+ };
+ return e.regex = t, e;
+}, T = function(t) {
+ var e = function(a, l) {
+ return l.inline ? null : t.exec(a);
+ };
+ return e.regex = t, e;
+}, j = function(t) {
+ var e = function(a, l) {
+ return t.exec(a);
+ };
+ return e.regex = t, e;
+}, ft = typeof Symbol == "function" && Symbol.for && Symbol.for("react.element") || 60103, v = function(t, e, r) {
+ var a = {
+ $$typeof: ft,
+ type: t,
+ key: e ?? void 0,
+ ref: null,
+ props: r,
+ _owner: null
+ };
+ return a;
+}, d = function(t, e, r, a) {
+ r = r || {}, a = typeof a < "u" ? a : !0;
+ var l = "";
+ for (var o in r) {
+ var i = r[o];
+ // $FlowFixMe
+ Object.prototype.hasOwnProperty.call(r, o) && i && (l += " " + R(o) + '="' + R(i) + '"');
+ }
+ var u = "<" + t + l + ">";
+ return a ? u + e + "" + t + ">" : u;
+}, U = {}, I = function(t) {
+ if (t == null)
+ return null;
+ try {
+ var e = new URL(t, "https://localhost").protocol;
+ if (e.indexOf("javascript:") === 0 || e.indexOf("vbscript:") === 0 || e.indexOf("data:") === 0)
+ return null;
+ } catch {
+ return null;
+ }
+ return t;
+}, st = /[<>&"']/g, pt = {
+ "<": "<",
+ ">": ">",
+ "&": "&",
+ '"': """,
+ "'": "'",
+ "/": "/",
+ "`": "`"
+}, R = function(t) {
+ return String(t).replace(st, function(e) {
+ return pt[e];
+ });
+}, ht = /\\([^0-9A-Za-z\s])/g, M = function(t) {
+ return t.replace(ht, "$1");
+}, B = function(t, e, r) {
+ var a = r.inline || !1;
+ r.inline = !0;
+ var l = t(e, r);
+ return r.inline = a, l;
+}, mt = function(t, e, r) {
+ var a = r.inline || !1;
+ r.inline = !1;
+ var l = t(e + `
+
+`, r);
+ return r.inline = a, l;
+}, O = function(t, e, r) {
+ return {
+ content: B(e, t[1], r)
+ };
+}, F = function() {
+ return {};
+}, N = "(?:[*+-]|\\d+\\.)", tt = "( *)(" + N + ") +", K = new RegExp("^" + tt), gt = new RegExp(tt + "[^\\n]*(?:\\n(?!\\1" + N + ` )[^\\n]*)*(
+|$)`, "gm"), et = /\n{2,}$/, vt = /^ (?= *`)|(` *) $/g, dt = et, z = / *\n+$/, yt = new RegExp("^( *)(" + N + `) [\\s\\S]+?(?:
+{2,}(?! )(?!\\1` + N + ` )\\n*|\\s*
+*$)`), xt = /(?:^|\n)( *)$/, P = function() {
+ var n = /^ *\| *| *\| *$/g, t = / *$/, e = /^ *-+: *$/, r = /^ *:-+: *$/, a = /^ *:-+ *$/, l = function(s) {
+ return e.test(s) ? "right" : r.test(s) ? "center" : a.test(s) ? "left" : null;
+ }, o = function(s, p, h, g) {
+ g && (s = s.replace(n, ""));
+ var S = s.trim().split("|");
+ return S.map(l);
+ }, i = function(s, p, h, g) {
+ var S = h.inTable;
+ h.inTable = !0;
+ var x = p(s.trim(), h);
+ h.inTable = S;
+ var y = [[]];
+ return x.forEach(function(E, b) {
+ E.type === "tableSeparator" ? (!g || b !== 0 && b !== x.length - 1) && y.push([]) : (E.type === "text" && (x[b + 1] == null || x[b + 1].type === "tableSeparator") && (E.content = E.content.replace(t, "")), y[y.length - 1].push(E));
+ }), y;
+ }, u = function(s, p, h, g) {
+ var S = s.trim().split(`
+`);
+ return S.map(function(x) {
+ return i(x, p, h, g);
+ });
+ }, c = function(s) {
+ return function(p, h, g) {
+ g.inline = !0;
+ var S = i(p[1], h, g, s), x = o(p[2], h, g, s), y = u(p[3], h, g, s);
+ return g.inline = !1, {
+ type: "table",
+ header: S,
+ align: x,
+ cells: y
+ };
+ };
+ };
+ return {
+ parseTable: c(!0),
+ parseNpTable: c(!1),
+ TABLE_REGEX: /^ *(\|.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/,
+ NPTABLE_REGEX: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/
+ };
+}(), C = "(?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*", G = `\\s*((?:\\([^)]*\\)|[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['"]([\\s\\S]*?)['"])?\\s*`, _t = /mailto:/i, X = function(t, e, r) {
+ var a = (t[2] || t[1]).replace(/\s+/g, " ").toLowerCase();
+ if (e._defs && e._defs[a]) {
+ var l = e._defs[a];
+ r.target = l.target, r.title = l.title;
+ }
+ return e._refs = e._refs || {}, e._refs[a] = e._refs[a] || [], e._refs[a].push(r), r;
+}, m = 0, L = {
+ Array: {
+ react: function(t, e, r) {
+ for (var a = r.key, l = [], o = 0, i = 0; o < t.length; o++, i++) {
+ r.key = "" + o;
+ var u = t[o];
+ if (u.type === "text")
+ for (u = {
+ type: "text",
+ content: u.content
+ }; o + 1 < t.length && t[o + 1].type === "text"; o++)
+ u.content += t[o + 1].content;
+ l.push(e(u, r));
+ }
+ return r.key = a, l;
+ },
+ html: function(t, e, r) {
+ for (var a = "", l = 0; l < t.length; l++) {
+ var o = t[l];
+ if (o.type === "text")
+ for (o = {
+ type: "text",
+ content: o.content
+ }; l + 1 < t.length && t[l + 1].type === "text"; l++)
+ o.content += t[l + 1].content;
+ a += e(o, r);
+ }
+ return a;
+ }
+ },
+ heading: {
+ order: m++,
+ match: T(/^ *(#{1,6})([^\n]+?)#* *(?:\n *)+\n/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ return {
+ level: n[1].length,
+ content: B(t, n[2].trim(), e)
+ };
+ }),
+ react: function(t, e, r) {
+ return v("h" + t.level, r.key, {
+ children: e(t.content, r)
+ });
+ },
+ html: function(t, e, r) {
+ return d("h" + t.level, e(t.content, r));
+ }
+ },
+ nptable: {
+ order: m++,
+ match: T(P.NPTABLE_REGEX),
+ parse: P.parseNpTable,
+ react: null,
+ html: null
+ },
+ lheading: {
+ order: m++,
+ match: T(/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ return {
+ type: "heading",
+ level: n[2] === "=" ? 1 : 2,
+ content: B(t, n[1], e)
+ };
+ }),
+ react: null,
+ html: null
+ },
+ hr: {
+ order: m++,
+ match: T(/^( *[-*_]){3,} *(?:\n *)+\n/),
+ parse: F,
+ react: function(t, e, r) {
+ return v("hr", r.key, U);
+ },
+ html: function(t, e, r) {
+ return "
";
+ }
+ },
+ codeBlock: {
+ order: m++,
+ match: T(/^(?: [^\n]+\n*)+(?:\n *)+\n/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ var r = n[0].replace(/^ /gm, "").replace(/\n+$/, "");
+ return {
+ lang: void 0,
+ content: r
+ };
+ }),
+ react: function(t, e, r) {
+ var a = t.lang ? "markdown-code-" + t.lang : void 0;
+ return v("pre", r.key, {
+ children: v("code", null, {
+ className: a,
+ children: t.content
+ })
+ });
+ },
+ html: function(t, e, r) {
+ var a = t.lang ? "markdown-code-" + t.lang : void 0, l = d("code", R(t.content), {
+ class: a
+ });
+ return d("pre", l);
+ }
+ },
+ fence: {
+ order: m++,
+ match: T(/^ *(`{3,}|~{3,}) *(?:(\S+) *)?\n([\s\S]+?)\n?\1 *(?:\n *)+\n/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ return {
+ type: "codeBlock",
+ lang: n[2] || void 0,
+ content: n[3]
+ };
+ }),
+ react: null,
+ html: null
+ },
+ blockQuote: {
+ order: m++,
+ match: T(/^( *>[^\n]+(\n[^\n]+)*\n*)+\n{2,}/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ var r = n[0].replace(/^ *> ?/gm, "");
+ return {
+ content: t(r, e)
+ };
+ }),
+ react: function(t, e, r) {
+ return v("blockquote", r.key, {
+ children: e(t.content, r)
+ });
+ },
+ html: function(t, e, r) {
+ return d("blockquote", e(t.content, r));
+ }
+ },
+ list: {
+ order: m++,
+ // $FlowFixMe
+ match: function(t, e) {
+ var r = e.prevCapture == null ? "" : e.prevCapture[0], a = xt.exec(r), l = e._list || !e.inline;
+ return a && l ? (t = a[1] + t, yt.exec(t)) : null;
+ },
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ var r = n[2], a = r.length > 1, l = a ? +r : void 0, o = n[0].replace(dt, `
+`).match(gt), i = !1, u = o.map(function(c, f) {
+ var s = K.exec(c), p = s ? s[0].length : 0, h = new RegExp("^ {1," + p + "}", "gm"), g = c.replace(h, "").replace(K, ""), S = f === o.length - 1, x = g.indexOf(`
+
+`) !== -1, y = x || S && i;
+ i = y;
+ var E = e.inline, b = e._list;
+ e._list = !0;
+ var k;
+ y ? (e.inline = !1, k = g.replace(z, `
+
+`)) : (e.inline = !0, k = g.replace(z, ""));
+ var A = t(k, e);
+ return e.inline = E, e._list = b, A;
+ });
+ return {
+ ordered: a,
+ start: l,
+ items: u
+ };
+ }),
+ react: function(t, e, r) {
+ var a = t.ordered ? "ol" : "ul";
+ return v(a, r.key, {
+ start: t.start,
+ children: t.items.map(function(l, o) {
+ return v("li", "" + o, {
+ children: e(l, r)
+ });
+ })
+ });
+ },
+ html: function(t, e, r) {
+ var a = t.items.map(function(i) {
+ return d("li", e(i, r));
+ }).join(""), l = t.ordered ? "ol" : "ul", o = {
+ start: t.start
+ };
+ return d(l, a, o);
+ }
+ },
+ def: {
+ order: m++,
+ // TODO(aria): This will match without a blank line before the next
+ // block element, which is inconsistent with most of the rest of
+ // simple-markdown.
+ match: T(/^ *\[([^\]]+)\]: *([^\s>]*)>?(?: +["(]([^\n]+)[")])? *\n(?: *\n)*/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ var r = n[1].replace(/\s+/g, " ").toLowerCase(), a = n[2], l = n[3];
+ return e._refs && e._refs[r] && e._refs[r].forEach(function(o) {
+ o.target = a, o.title = l;
+ }), e._defs = e._defs || {}, e._defs[r] = {
+ target: a,
+ title: l
+ }, {
+ def: r,
+ target: a,
+ title: l
+ };
+ }),
+ react: function() {
+ return null;
+ },
+ html: function() {
+ return "";
+ }
+ },
+ table: {
+ order: m++,
+ match: T(P.TABLE_REGEX),
+ parse: P.parseTable,
+ react: function(t, e, r) {
+ var a = function(u) {
+ return t.align[u] == null ? {} : {
+ textAlign: t.align[u]
+ };
+ }, l = t.header.map(function(i, u) {
+ return v("th", "" + u, {
+ style: a(u),
+ scope: "col",
+ children: e(i, r)
+ });
+ }), o = t.cells.map(function(i, u) {
+ return v("tr", "" + u, {
+ children: i.map(function(c, f) {
+ return v("td", "" + f, {
+ style: a(f),
+ children: e(c, r)
+ });
+ })
+ });
+ });
+ return v("table", r.key, {
+ children: [v("thead", "thead", {
+ children: v("tr", null, {
+ children: l
+ })
+ }), v("tbody", "tbody", {
+ children: o
+ })]
+ });
+ },
+ html: function(t, e, r) {
+ var a = function(f) {
+ return t.align[f] == null ? "" : "text-align:" + t.align[f] + ";";
+ }, l = t.header.map(function(c, f) {
+ return d("th", e(c, r), {
+ style: a(f),
+ scope: "col"
+ });
+ }).join(""), o = t.cells.map(function(c) {
+ var f = c.map(function(s, p) {
+ return d("td", e(s, r), {
+ style: a(p)
+ });
+ }).join("");
+ return d("tr", f);
+ }).join(""), i = d("thead", d("tr", l)), u = d("tbody", o);
+ return d("table", i + u);
+ }
+ },
+ newline: {
+ order: m++,
+ match: T(/^(?:\n *)*\n/),
+ parse: F,
+ react: function(t, e, r) {
+ return `
+`;
+ },
+ html: function(t, e, r) {
+ return `
+`;
+ }
+ },
+ paragraph: {
+ order: m++,
+ match: T(/^((?:[^\n]|\n(?! *\n))+)(?:\n *)+\n/),
+ parse: O,
+ react: function(t, e, r) {
+ return v("div", r.key, {
+ className: "paragraph",
+ children: e(t.content, r)
+ });
+ },
+ html: function(t, e, r) {
+ var a = {
+ class: "paragraph"
+ };
+ return d("div", e(t.content, r), a);
+ }
+ },
+ escape: {
+ order: m++,
+ // We don't allow escaping numbers, letters, or spaces here so that
+ // backslashes used in plain text still get rendered. But allowing
+ // escaping anything else provides a very flexible escape mechanism,
+ // regardless of how this grammar is extended.
+ match: _(/^\\([^0-9A-Za-z\s])/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ return {
+ type: "text",
+ content: n[1]
+ };
+ }),
+ react: null,
+ html: null
+ },
+ tableSeparator: {
+ order: m++,
+ // $FlowFixMe
+ match: function(t, e) {
+ return e.inTable ? /^ *\| */.exec(t) : null;
+ },
+ parse: function() {
+ return {
+ type: "tableSeparator"
+ };
+ },
+ // These shouldn't be reached, but in case they are, be reasonable:
+ react: function() {
+ return " | ";
+ },
+ html: function() {
+ return " | ";
+ }
+ },
+ autolink: {
+ order: m++,
+ match: _(/^<([^: >]+:\/[^ >]+)>/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ return {
+ type: "link",
+ content: [{
+ type: "text",
+ content: n[1]
+ }],
+ target: n[1]
+ };
+ }),
+ react: null,
+ html: null
+ },
+ mailto: {
+ order: m++,
+ match: _(/^<([^ >]+@[^ >]+)>/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ var r = n[1], a = n[1];
+ return _t.test(a) || (a = "mailto:" + a), {
+ type: "link",
+ content: [{
+ type: "text",
+ content: r
+ }],
+ target: a
+ };
+ }),
+ react: null,
+ html: null
+ },
+ url: {
+ order: m++,
+ match: _(/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ return {
+ type: "link",
+ content: [{
+ type: "text",
+ content: n[1]
+ }],
+ target: n[1],
+ title: void 0
+ };
+ }),
+ react: null,
+ html: null
+ },
+ link: {
+ order: m++,
+ match: _(new RegExp("^\\[(" + C + ")\\]\\(" + G + "\\)")),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ var r = {
+ content: t(n[1], e),
+ target: M(n[2]),
+ title: n[3]
+ };
+ return r;
+ }),
+ react: function(t, e, r) {
+ return v("a", r.key, {
+ href: I(t.target),
+ title: t.title,
+ children: e(t.content, r)
+ });
+ },
+ html: function(t, e, r) {
+ var a = {
+ href: I(t.target),
+ title: t.title
+ };
+ return d("a", e(t.content, r), a);
+ }
+ },
+ image: {
+ order: m++,
+ match: _(new RegExp("^!\\[(" + C + ")\\]\\(" + G + "\\)")),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ var r = {
+ alt: n[1],
+ target: M(n[2]),
+ title: n[3]
+ };
+ return r;
+ }),
+ react: function(t, e, r) {
+ return v("img", r.key, {
+ src: I(t.target),
+ alt: t.alt,
+ title: t.title
+ });
+ },
+ html: function(t, e, r) {
+ var a = {
+ src: I(t.target),
+ alt: t.alt,
+ title: t.title
+ };
+ return d("img", "", a, !1);
+ }
+ },
+ reflink: {
+ order: m++,
+ match: _(new RegExp(
+ // The first [part] of the link
+ "^\\[(" + C + ")\\]\\s*\\[([^\\]]*)\\]"
+ )),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ return X(n, e, {
+ type: "link",
+ content: t(n[1], e)
+ });
+ }),
+ react: null,
+ html: null
+ },
+ refimage: {
+ order: m++,
+ match: _(new RegExp(
+ // The first [part] of the link
+ "^!\\[(" + C + ")\\]\\s*\\[([^\\]]*)\\]"
+ )),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ return X(n, e, {
+ type: "image",
+ alt: n[1]
+ });
+ }),
+ react: null,
+ html: null
+ },
+ em: {
+ order: m,
+ match: _(new RegExp(
+ // only match _s surrounding words.
+ "^\\b_((?:__|\\\\[\\s\\S]|[^\\\\_])+?)_\\b|^\\*(?=\\S)((?:\\*\\*|\\\\[\\s\\S]|\\s+(?:\\\\[\\s\\S]|[^\\s\\*\\\\]|\\*\\*)|[^\\s\\*\\\\])+?)\\*(?!\\*)"
+ )),
+ quality: function(t) {
+ return t[0].length + 0.2;
+ },
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ return {
+ content: t(n[2] || n[1], e)
+ };
+ }),
+ react: function(t, e, r) {
+ return v("em", r.key, {
+ children: e(t.content, r)
+ });
+ },
+ html: function(t, e, r) {
+ return d("em", e(t.content, r));
+ }
+ },
+ strong: {
+ order: m,
+ match: _(/^\*\*((?:\\[\s\S]|[^\\])+?)\*\*(?!\*)/),
+ quality: function(t) {
+ return t[0].length + 0.1;
+ },
+ parse: O,
+ react: function(t, e, r) {
+ return v("strong", r.key, {
+ children: e(t.content, r)
+ });
+ },
+ html: function(t, e, r) {
+ return d("strong", e(t.content, r));
+ }
+ },
+ u: {
+ order: m++,
+ match: _(/^__((?:\\[\s\S]|[^\\])+?)__(?!_)/),
+ quality: function(t) {
+ return t[0].length;
+ },
+ parse: O,
+ react: function(t, e, r) {
+ return v("u", r.key, {
+ children: e(t.content, r)
+ });
+ },
+ html: function(t, e, r) {
+ return d("u", e(t.content, r));
+ }
+ },
+ del: {
+ order: m++,
+ match: _(/^~~(?=\S)((?:\\[\s\S]|~(?!~)|[^\s~\\]|\s(?!~~))+?)~~/),
+ parse: O,
+ react: function(t, e, r) {
+ return v("del", r.key, {
+ children: e(t.content, r)
+ });
+ },
+ html: function(t, e, r) {
+ return d("del", e(t.content, r));
+ }
+ },
+ inlineCode: {
+ order: m++,
+ match: _(/^(`+)([\s\S]*?[^`])\1(?!`)/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ return {
+ content: n[2].replace(vt, "$1")
+ };
+ }),
+ react: function(t, e, r) {
+ return v("code", r.key, {
+ children: t.content
+ });
+ },
+ html: function(t, e, r) {
+ return d("code", R(t.content));
+ }
+ },
+ br: {
+ order: m++,
+ match: j(/^ {2,}\n/),
+ parse: F,
+ react: function(t, e, r) {
+ return v("br", r.key, U);
+ },
+ html: function(t, e, r) {
+ return "
";
+ }
+ },
+ text: {
+ order: m++,
+ // Here we look for anything followed by non-symbols,
+ // double newlines, or double-space-newlines
+ // We break on any symbol characters so that this grammar
+ // is easy to extend without needing to modify this regex
+ match: j(/^[\s\S]+?(?=[^0-9A-Za-z\s\u00c0-\uffff]|\n\n| {2,}\n|\w+:\S|$)/),
+ parse: function(n) {
+ function t(e, r, a) {
+ return n.apply(this, arguments);
+ }
+ return t.toString = function() {
+ return n.toString();
+ }, t;
+ }(function(n, t, e) {
+ return {
+ content: n[0]
+ };
+ }),
+ react: function(t, e, r) {
+ return t.content;
+ },
+ html: function(t, e, r) {
+ return R(t.content);
+ }
+ }
+}, St = function(t, e) {
+ !e && typeof console < "u" && console.warn("simple-markdown ruleOutput should take 'react' or 'html' as the second argument.");
+ var r = function(l, o, i) {
+ return t[l.type][e](l, o, i);
+ };
+ return r;
+}, Tt = function(t) {
+ var e = function r(a, l) {
+ if (l = l || {}, Array.isArray(a)) {
+ for (var o = l.key, i = [], u = null, c = 0; c < a.length; c++) {
+ l.key = "" + c;
+ var f = r(a[c], l);
+ typeof f == "string" && typeof u == "string" ? (u = u + f, i[i.length - 1] = u) : (i.push(f), u = f);
+ }
+ return l.key = o, i;
+ } else
+ return t(a, r, l);
+ };
+ return e;
+}, Et = function(t) {
+ var e = function r(a, l) {
+ return l = l || {}, Array.isArray(a) ? a.map(function(o) {
+ return r(o, l);
+ }).join("") : t(a, r, l);
+ };
+ return e;
+}, H = function(t, e) {
+ var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
+ if (!e)
+ throw new Error("simple-markdown: outputFor: `property` must be defined. if you just upgraded, you probably need to replace `outputFor` with `reactFor`");
+ var a, l = t.Array || L.Array, o = l[e];
+ if (!o)
+ throw new Error("simple-markdown: outputFor: to join nodes of type `" + e + "` you must provide an `Array:` joiner rule with that type, Please see the docs for details on specifying an Array rule.");
+ var i = o, u = function f(s, p) {
+ return p = p || a, a = p, Array.isArray(s) ? i(s, f, p) : t[s.type][e](s, f, p);
+ }, c = function(s, p) {
+ return a = Q(p, r), u(s, a);
+ };
+ return c;
+}, $ = V(L), D = function(t, e) {
+ return e = e || {}, e.inline = !1, $(t, e);
+}, bt = function(t, e) {
+ return e = e || {}, e.inline = !0, $(t, e);
+}, W = function(t, e) {
+ var r = et.test(t);
+ return e = e || {}, e.inline = !r, $(t, e);
+}, q = H(L, "react"), nt = H(L, "html"), rt = function(t, e) {
+ return q(D(t, e), e);
+}, wt = function(t, e) {
+ return nt(D(t, e), e);
+}, kt = function(t) {
+ var e = {};
+ for (var r in t)
+ r !== "source" && // $FlowFixMe
+ Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);
+ return e.children = rt(t.source), v("div", null, e);
+}, at = {
+ defaultRules: L,
+ parserFor: V,
+ outputFor: H,
+ inlineRegex: _,
+ blockRegex: T,
+ anyScopeRegex: j,
+ parseInline: B,
+ parseBlock: mt,
+ // default wrappers:
+ markdownToReact: rt,
+ markdownToHtml: wt,
+ ReactMarkdown: kt,
+ defaultBlockParse: D,
+ defaultInlineParse: bt,
+ defaultImplicitParse: W,
+ defaultReactOutput: q,
+ defaultHtmlOutput: nt,
+ preprocess: J,
+ sanitizeText: R,
+ sanitizeUrl: I,
+ unescapeUrl: M,
+ htmlTag: d,
+ reactElement: v,
+ // deprecated:
+ defaultRawParse: $,
+ ruleOutput: St,
+ reactFor: Tt,
+ htmlFor: Et,
+ defaultParse: function() {
+ return typeof console < "u" && console.warn("defaultParse is deprecated, please use `defaultImplicitParse`"), W.apply(null, arguments);
+ },
+ defaultOutput: function() {
+ return typeof console < "u" && console.warn("defaultOutput is deprecated, please use `defaultReactOutput`"), q.apply(null, arguments);
+ }
+};
+function Rt(n) {
+ return n.replace(/\n{2,}/g, `
+`).replace(/^\s+/gm, "");
+}
+function It(n) {
+ const t = Rt(n), e = at.defaultBlockParse, r = e(t);
+ let a = [[]], l = 0;
+ function o(i, u) {
+ i.type === "text" ? i.content.split(`
+`).forEach((f, s) => {
+ s !== 0 && (l++, a.push([])), f.split(" ").forEach((p) => {
+ p && a[l].push({ content: p, type: u || "normal" });
+ });
+ }) : (i.type === "strong" || i.type === "em") && i.content.forEach((c) => {
+ o(c, i.type);
+ });
+ }
+ return r.forEach((i) => {
+ i.type === "paragraph" && i.content.forEach((u) => {
+ o(u);
+ });
+ }), a;
+}
+function Lt(n) {
+ const t = at.defaultBlockParse, e = t(n);
+ function r(a) {
+ return a.type === "text" ? a.content.replace(/\n/g, "
") : a.type === "strong" ? `${a.content.map(r).join("")}` : a.type === "em" ? `${a.content.map(r).join("")}` : a.type === "paragraph" ? `${a.content.map(r).join("")}
` : "";
+ }
+ return e.map(r).join("");
+}
+function At(n, t) {
+ t && n.attr("style", t);
+}
+function Ot(n, t, e, r) {
+ const a = n.append("foreignObject"), l = a.append("xhtml:div"), o = t.label, i = t.isNode ? "nodeLabel" : "edgeLabel";
+ l.html(
+ `" + o + ""
+ ), At(l, t.labelStyle), l.style("display", "table-cell"), l.style("white-space", "nowrap"), l.style("max-width", e + "px"), l.attr("xmlns", "http://www.w3.org/1999/xhtml");
+ let u = l.node().getBoundingClientRect();
+ return u.width === e && (l.style("display", "table"), l.style("white-space", "break-spaces"), l.style("width", e + "px"), u = l.node().getBoundingClientRect()), a.style("width", u.width), a.style("height", u.height), a.node();
+}
+function Z(n, t, e) {
+ return n.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", t * e - 0.1 + "em").attr("dy", e + "em");
+}
+function Pt(n, t, e, r = !1) {
+ const l = t.append("g");
+ let o = l.insert("rect").attr("class", "background");
+ const i = l.append("text").attr("y", "-10.1");
+ let u = -1;
+ if (e.forEach((c) => {
+ u++;
+ let f = Z(i, u, 1.1), s = [...c].reverse(), p, h = [];
+ for (; s.length; )
+ p = s.pop(), h.push(p), Y(f, h), f.node().getComputedTextLength() > n && (h.pop(), s.push(p), Y(f, h), h = [], u++, f = Z(i, u, 1.1));
+ }), r) {
+ const c = i.node().getBBox(), f = 2;
+ return o.attr("x", -f).attr("y", -f).attr("width", c.width + 2 * f).attr("height", c.height + 2 * f), l.node();
+ } else
+ return i.node();
+}
+function Y(n, t) {
+ n.text(""), t.forEach((e, r) => {
+ const a = n.append("tspan").attr("font-style", e.type === "em" ? "italic" : "normal").attr("class", "text-inner-tspan").attr("font-weight", e.type === "strong" ? "bold" : "normal");
+ r === 0 ? a.text(e.content) : a.text(" " + e.content);
+ });
+}
+const Nt = (n, t = "", {
+ style: e = "",
+ isTitle: r = !1,
+ classes: a = "",
+ useHtmlLabels: l = !0,
+ isNode: o = !0,
+ width: i,
+ addSvgBackground: u = !1
+} = {}) => {
+ if (lt.info("createText", t, e, r, a, l, o, u), l) {
+ const c = Lt(t), f = {
+ isNode: o,
+ label: ut(c).replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (p) => ``
+ ),
+ labelStyle: e.replace("fill:", "color:")
+ };
+ return Ot(n, f, i, a);
+ } else {
+ const c = It(t), f = ['"', "'", ".", ",", ":", ";", "!", "?", "(", ")", "[", "]", "{", "}"];
+ let s;
+ return c.forEach((h) => {
+ h.forEach((g) => {
+ f.includes(g.content) && s && (s.content += g.content, g.content = ""), s = g;
+ });
+ }), Pt(i, n, c, u);
+ }
+};
+export {
+ Nt as c
+};
+//# sourceMappingURL=createText-23817c58.js.map
diff --git a/scopegraphs-render-docs/doc/js/createText-b0d5c0ec.js b/scopegraphs-render-docs/doc/js/createText-b0d5c0ec.js
new file mode 100644
index 0000000..f3e166f
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/createText-b0d5c0ec.js
@@ -0,0 +1,1448 @@
+import { l as log } from "./commonDb-89160e91.js";
+import { p as decodeEntities } from "./mermaidAPI-c841a67f.js";
+var CR_NEWLINE_R = /\r\n?/g;
+var TAB_R = /\t/g;
+var FORMFEED_R = /\f/g;
+var preprocess = function preprocess2(source) {
+ return source.replace(CR_NEWLINE_R, "\n").replace(FORMFEED_R, "").replace(TAB_R, " ");
+};
+var populateInitialState = function populateInitialState2(givenState, defaultState) {
+ var state = givenState || {};
+ if (defaultState != null) {
+ for (var prop in defaultState) {
+ if (Object.prototype.hasOwnProperty.call(defaultState, prop)) {
+ state[prop] = defaultState[prop];
+ }
+ }
+ }
+ return state;
+};
+var parserFor = function parserFor2(rules, defaultState) {
+ var ruleList = Object.keys(rules).filter(function(type) {
+ var rule = rules[type];
+ if (rule == null || rule.match == null) {
+ return false;
+ }
+ var order = rule.order;
+ if ((typeof order !== "number" || !isFinite(order)) && typeof console !== "undefined") {
+ console.warn("simple-markdown: Invalid order for rule `" + type + "`: " + String(order));
+ }
+ return true;
+ });
+ ruleList.sort(function(typeA, typeB) {
+ var ruleA = rules[typeA];
+ var ruleB = rules[typeB];
+ var orderA = ruleA.order;
+ var orderB = ruleB.order;
+ if (orderA !== orderB) {
+ return orderA - orderB;
+ }
+ var secondaryOrderA = ruleA.quality ? 0 : 1;
+ var secondaryOrderB = ruleB.quality ? 0 : 1;
+ if (secondaryOrderA !== secondaryOrderB) {
+ return secondaryOrderA - secondaryOrderB;
+ } else if (typeA < typeB) {
+ return -1;
+ } else if (typeA > typeB) {
+ return 1;
+ } else {
+ return 0;
+ }
+ });
+ var latestState;
+ var nestedParse = function nestedParse2(source, state) {
+ var result = [];
+ state = state || latestState;
+ latestState = state;
+ while (source) {
+ var ruleType = null;
+ var rule = null;
+ var capture = null;
+ var quality4 = NaN;
+ var i = 0;
+ var currRuleType = ruleList[0];
+ var currRule = rules[currRuleType];
+ do {
+ var currOrder2 = currRule.order;
+ var prevCaptureStr = state.prevCapture == null ? "" : state.prevCapture[0];
+ var currCapture = currRule.match(source, state, prevCaptureStr);
+ if (currCapture) {
+ var currQuality = currRule.quality ? currRule.quality(currCapture, state, prevCaptureStr) : 0;
+ if (!(currQuality <= quality4)) {
+ ruleType = currRuleType;
+ rule = currRule;
+ capture = currCapture;
+ quality4 = currQuality;
+ }
+ }
+ i++;
+ currRuleType = ruleList[i];
+ currRule = rules[currRuleType];
+ } while (
+ // keep looping while we're still within the ruleList
+ currRule && // if we don't have a match yet, continue
+ (!capture || // or if we have a match, but the next rule is
+ // at the same order, and has a quality measurement
+ // functions, then this rule must have a quality
+ // measurement function (since they are sorted before
+ // those without), and we need to check if there is
+ // a better quality match
+ currRule.order === currOrder2 && currRule.quality)
+ );
+ if (rule == null || capture == null) {
+ throw new Error("Could not find a matching rule for the below content. The rule with highest `order` should always match content provided to it. Check the definition of `match` for '" + ruleList[ruleList.length - 1] + "'. It seems to not match the following source:\n" + source);
+ }
+ if (capture.index) {
+ throw new Error("`match` must return a capture starting at index 0 (the current parse index). Did you forget a ^ at the start of the RegExp?");
+ }
+ var parsed = rule.parse(capture, nestedParse2, state);
+ if (Array.isArray(parsed)) {
+ Array.prototype.push.apply(result, parsed);
+ } else {
+ if (parsed == null || typeof parsed !== "object") {
+ throw new Error("parse() function returned invalid parse result: '".concat(parsed, "'"));
+ }
+ if (parsed.type == null) {
+ parsed.type = ruleType;
+ }
+ result.push(parsed);
+ }
+ state.prevCapture = capture;
+ source = source.substring(state.prevCapture[0].length);
+ }
+ return result;
+ };
+ var outerParse = function outerParse2(source, state) {
+ latestState = populateInitialState(state, defaultState);
+ if (!latestState.inline && !latestState.disableAutoBlockNewlines) {
+ source = source + "\n\n";
+ }
+ latestState.prevCapture = null;
+ return nestedParse(preprocess(source), latestState);
+ };
+ return outerParse;
+};
+var inlineRegex = function inlineRegex2(regex) {
+ var match3 = function match4(source, state, prevCapture) {
+ if (state.inline) {
+ return regex.exec(source);
+ } else {
+ return null;
+ }
+ };
+ match3.regex = regex;
+ return match3;
+};
+var blockRegex = function blockRegex2(regex) {
+ var match3 = function match4(source, state) {
+ if (state.inline) {
+ return null;
+ } else {
+ return regex.exec(source);
+ }
+ };
+ match3.regex = regex;
+ return match3;
+};
+var anyScopeRegex = function anyScopeRegex2(regex) {
+ var match3 = function match4(source, state) {
+ return regex.exec(source);
+ };
+ match3.regex = regex;
+ return match3;
+};
+var TYPE_SYMBOL = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 60103;
+var reactElement = function reactElement2(type, key, props) {
+ var element = {
+ $$typeof: TYPE_SYMBOL,
+ type,
+ key: key == null ? void 0 : key,
+ ref: null,
+ props,
+ _owner: null
+ };
+ return element;
+};
+var htmlTag = function htmlTag2(tagName, content, attributes, isClosed) {
+ attributes = attributes || {};
+ isClosed = typeof isClosed !== "undefined" ? isClosed : true;
+ var attributeString = "";
+ for (var attr in attributes) {
+ var attribute = attributes[attr];
+ if (
+ // $FlowFixMe
+ Object.prototype.hasOwnProperty.call(attributes, attr) && attribute
+ ) {
+ attributeString += " " + sanitizeText(attr) + '="' + sanitizeText(attribute) + '"';
+ }
+ }
+ var unclosedTag = "<" + tagName + attributeString + ">";
+ if (isClosed) {
+ return unclosedTag + content + "" + tagName + ">";
+ } else {
+ return unclosedTag;
+ }
+};
+var EMPTY_PROPS = {};
+var sanitizeUrl = function sanitizeUrl2(url) {
+ if (url == null) {
+ return null;
+ }
+ try {
+ var prot = new URL(url, "https://localhost").protocol;
+ if (prot.indexOf("javascript:") === 0 || prot.indexOf("vbscript:") === 0 || prot.indexOf("data:") === 0) {
+ return null;
+ }
+ } catch (e) {
+ return null;
+ }
+ return url;
+};
+var SANITIZE_TEXT_R = /[<>&"']/g;
+var SANITIZE_TEXT_CODES = {
+ "<": "<",
+ ">": ">",
+ "&": "&",
+ '"': """,
+ "'": "'",
+ "/": "/",
+ "`": "`"
+};
+var sanitizeText = function sanitizeText2(text) {
+ return String(text).replace(SANITIZE_TEXT_R, function(chr) {
+ return SANITIZE_TEXT_CODES[chr];
+ });
+};
+var UNESCAPE_URL_R = /\\([^0-9A-Za-z\s])/g;
+var unescapeUrl = function unescapeUrl2(rawUrlString) {
+ return rawUrlString.replace(UNESCAPE_URL_R, "$1");
+};
+var parseInline = function parseInline2(parse2, content, state) {
+ var isCurrentlyInline = state.inline || false;
+ state.inline = true;
+ var result = parse2(content, state);
+ state.inline = isCurrentlyInline;
+ return result;
+};
+var parseBlock = function parseBlock2(parse2, content, state) {
+ var isCurrentlyInline = state.inline || false;
+ state.inline = false;
+ var result = parse2(content + "\n\n", state);
+ state.inline = isCurrentlyInline;
+ return result;
+};
+var parseCaptureInline = function parseCaptureInline2(capture, parse2, state) {
+ return {
+ content: parseInline(parse2, capture[1], state)
+ };
+};
+var ignoreCapture = function ignoreCapture2() {
+ return {};
+};
+var LIST_BULLET = "(?:[*+-]|\\d+\\.)";
+var LIST_ITEM_PREFIX = "( *)(" + LIST_BULLET + ") +";
+var LIST_ITEM_PREFIX_R = new RegExp("^" + LIST_ITEM_PREFIX);
+var LIST_ITEM_R = new RegExp(LIST_ITEM_PREFIX + "[^\\n]*(?:\\n(?!\\1" + LIST_BULLET + " )[^\\n]*)*(\n|$)", "gm");
+var BLOCK_END_R = /\n{2,}$/;
+var INLINE_CODE_ESCAPE_BACKTICKS_R = /^ (?= *`)|(` *) $/g;
+var LIST_BLOCK_END_R = BLOCK_END_R;
+var LIST_ITEM_END_R = / *\n+$/;
+var LIST_R = new RegExp("^( *)(" + LIST_BULLET + ") [\\s\\S]+?(?:\n{2,}(?! )(?!\\1" + LIST_BULLET + " )\\n*|\\s*\n*$)");
+var LIST_LOOKBEHIND_R = /(?:^|\n)( *)$/;
+var TABLES = function() {
+ var TABLE_ROW_SEPARATOR_TRIM = /^ *\| *| *\| *$/g;
+ var TABLE_CELL_END_TRIM = / *$/;
+ var TABLE_RIGHT_ALIGN = /^ *-+: *$/;
+ var TABLE_CENTER_ALIGN = /^ *:-+: *$/;
+ var TABLE_LEFT_ALIGN = /^ *:-+ *$/;
+ var parseTableAlignCapture = function parseTableAlignCapture2(alignCapture) {
+ if (TABLE_RIGHT_ALIGN.test(alignCapture)) {
+ return "right";
+ } else if (TABLE_CENTER_ALIGN.test(alignCapture)) {
+ return "center";
+ } else if (TABLE_LEFT_ALIGN.test(alignCapture)) {
+ return "left";
+ } else {
+ return null;
+ }
+ };
+ var parseTableAlign = function parseTableAlign2(source, parse2, state, trimEndSeparators) {
+ if (trimEndSeparators) {
+ source = source.replace(TABLE_ROW_SEPARATOR_TRIM, "");
+ }
+ var alignText = source.trim().split("|");
+ return alignText.map(parseTableAlignCapture);
+ };
+ var parseTableRow = function parseTableRow2(source, parse2, state, trimEndSeparators) {
+ var prevInTable = state.inTable;
+ state.inTable = true;
+ var tableRow = parse2(source.trim(), state);
+ state.inTable = prevInTable;
+ var cells = [[]];
+ tableRow.forEach(function(node, i) {
+ if (node.type === "tableSeparator") {
+ if (!trimEndSeparators || i !== 0 && i !== tableRow.length - 1) {
+ cells.push([]);
+ }
+ } else {
+ if (node.type === "text" && (tableRow[i + 1] == null || tableRow[i + 1].type === "tableSeparator")) {
+ node.content = node.content.replace(TABLE_CELL_END_TRIM, "");
+ }
+ cells[cells.length - 1].push(node);
+ }
+ });
+ return cells;
+ };
+ var parseTableCells = function parseTableCells2(source, parse2, state, trimEndSeparators) {
+ var rowsText = source.trim().split("\n");
+ return rowsText.map(function(rowText) {
+ return parseTableRow(rowText, parse2, state, trimEndSeparators);
+ });
+ };
+ var parseTable = function parseTable2(trimEndSeparators) {
+ return function(capture, parse2, state) {
+ state.inline = true;
+ var header = parseTableRow(capture[1], parse2, state, trimEndSeparators);
+ var align = parseTableAlign(capture[2], parse2, state, trimEndSeparators);
+ var cells = parseTableCells(capture[3], parse2, state, trimEndSeparators);
+ state.inline = false;
+ return {
+ type: "table",
+ header,
+ align,
+ cells
+ };
+ };
+ };
+ return {
+ parseTable: parseTable(true),
+ parseNpTable: parseTable(false),
+ TABLE_REGEX: /^ *(\|.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/,
+ NPTABLE_REGEX: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/
+ };
+}();
+var LINK_INSIDE = "(?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*";
+var LINK_HREF_AND_TITLE = `\\s*((?:\\([^)]*\\)|[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['"]([\\s\\S]*?)['"])?\\s*`;
+var AUTOLINK_MAILTO_CHECK_R = /mailto:/i;
+var parseRef = function parseRef2(capture, state, refNode) {
+ var ref = (capture[2] || capture[1]).replace(/\s+/g, " ").toLowerCase();
+ if (state._defs && state._defs[ref]) {
+ var def = state._defs[ref];
+ refNode.target = def.target;
+ refNode.title = def.title;
+ }
+ state._refs = state._refs || {};
+ state._refs[ref] = state._refs[ref] || [];
+ state._refs[ref].push(refNode);
+ return refNode;
+};
+var currOrder = 0;
+var defaultRules = {
+ Array: {
+ react: function react(arr, output, state) {
+ var oldKey = state.key;
+ var result = [];
+ for (var i = 0, key = 0; i < arr.length; i++, key++) {
+ state.key = "" + i;
+ var node = arr[i];
+ if (node.type === "text") {
+ node = {
+ type: "text",
+ content: node.content
+ };
+ for (; i + 1 < arr.length && arr[i + 1].type === "text"; i++) {
+ node.content += arr[i + 1].content;
+ }
+ }
+ result.push(output(node, state));
+ }
+ state.key = oldKey;
+ return result;
+ },
+ html: function html(arr, output, state) {
+ var result = "";
+ for (var i = 0; i < arr.length; i++) {
+ var node = arr[i];
+ if (node.type === "text") {
+ node = {
+ type: "text",
+ content: node.content
+ };
+ for (; i + 1 < arr.length && arr[i + 1].type === "text"; i++) {
+ node.content += arr[i + 1].content;
+ }
+ }
+ result += output(node, state);
+ }
+ return result;
+ }
+ },
+ heading: {
+ order: currOrder++,
+ match: blockRegex(/^ *(#{1,6})([^\n]+?)#* *(?:\n *)+\n/),
+ parse: function(_parse) {
+ function parse2(_x, _x2, _x3) {
+ return _parse.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ return {
+ level: capture[1].length,
+ content: parseInline(parse2, capture[2].trim(), state)
+ };
+ }),
+ react: function react2(node, output, state) {
+ return reactElement("h" + node.level, state.key, {
+ children: output(node.content, state)
+ });
+ },
+ html: function html2(node, output, state) {
+ return htmlTag("h" + node.level, output(node.content, state));
+ }
+ },
+ nptable: {
+ order: currOrder++,
+ match: blockRegex(TABLES.NPTABLE_REGEX),
+ parse: TABLES.parseNpTable,
+ react: null,
+ html: null
+ },
+ lheading: {
+ order: currOrder++,
+ match: blockRegex(/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/),
+ parse: function(_parse2) {
+ function parse2(_x4, _x5, _x6) {
+ return _parse2.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse2.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ return {
+ type: "heading",
+ level: capture[2] === "=" ? 1 : 2,
+ content: parseInline(parse2, capture[1], state)
+ };
+ }),
+ react: null,
+ html: null
+ },
+ hr: {
+ order: currOrder++,
+ match: blockRegex(/^( *[-*_]){3,} *(?:\n *)+\n/),
+ parse: ignoreCapture,
+ react: function react3(node, output, state) {
+ return reactElement("hr", state.key, EMPTY_PROPS);
+ },
+ html: function html3(node, output, state) {
+ return "
";
+ }
+ },
+ codeBlock: {
+ order: currOrder++,
+ match: blockRegex(/^(?: [^\n]+\n*)+(?:\n *)+\n/),
+ parse: function(_parse3) {
+ function parse2(_x7, _x8, _x9) {
+ return _parse3.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse3.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ var content = capture[0].replace(/^ /gm, "").replace(/\n+$/, "");
+ return {
+ lang: void 0,
+ content
+ };
+ }),
+ react: function react4(node, output, state) {
+ var className = node.lang ? "markdown-code-" + node.lang : void 0;
+ return reactElement("pre", state.key, {
+ children: reactElement("code", null, {
+ className,
+ children: node.content
+ })
+ });
+ },
+ html: function html4(node, output, state) {
+ var className = node.lang ? "markdown-code-" + node.lang : void 0;
+ var codeBlock = htmlTag("code", sanitizeText(node.content), {
+ class: className
+ });
+ return htmlTag("pre", codeBlock);
+ }
+ },
+ fence: {
+ order: currOrder++,
+ match: blockRegex(/^ *(`{3,}|~{3,}) *(?:(\S+) *)?\n([\s\S]+?)\n?\1 *(?:\n *)+\n/),
+ parse: function(_parse4) {
+ function parse2(_x10, _x11, _x12) {
+ return _parse4.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse4.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ return {
+ type: "codeBlock",
+ lang: capture[2] || void 0,
+ content: capture[3]
+ };
+ }),
+ react: null,
+ html: null
+ },
+ blockQuote: {
+ order: currOrder++,
+ match: blockRegex(/^( *>[^\n]+(\n[^\n]+)*\n*)+\n{2,}/),
+ parse: function(_parse5) {
+ function parse2(_x13, _x14, _x15) {
+ return _parse5.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse5.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ var content = capture[0].replace(/^ *> ?/gm, "");
+ return {
+ content: parse2(content, state)
+ };
+ }),
+ react: function react5(node, output, state) {
+ return reactElement("blockquote", state.key, {
+ children: output(node.content, state)
+ });
+ },
+ html: function html5(node, output, state) {
+ return htmlTag("blockquote", output(node.content, state));
+ }
+ },
+ list: {
+ order: currOrder++,
+ // $FlowFixMe
+ match: function match(source, state) {
+ var prevCaptureStr = state.prevCapture == null ? "" : state.prevCapture[0];
+ var isStartOfLineCapture = LIST_LOOKBEHIND_R.exec(prevCaptureStr);
+ var isListBlock = state._list || !state.inline;
+ if (isStartOfLineCapture && isListBlock) {
+ source = isStartOfLineCapture[1] + source;
+ return LIST_R.exec(source);
+ } else {
+ return null;
+ }
+ },
+ parse: function(_parse6) {
+ function parse2(_x16, _x17, _x18) {
+ return _parse6.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse6.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ var bullet = capture[2];
+ var ordered = bullet.length > 1;
+ var start = ordered ? +bullet : void 0;
+ var items = capture[0].replace(LIST_BLOCK_END_R, "\n").match(LIST_ITEM_R);
+ var lastItemWasAParagraph = false;
+ var itemContent = items.map(function(item, i) {
+ var prefixCapture = LIST_ITEM_PREFIX_R.exec(item);
+ var space = prefixCapture ? prefixCapture[0].length : 0;
+ var spaceRegex = new RegExp("^ {1," + space + "}", "gm");
+ var content = item.replace(spaceRegex, "").replace(LIST_ITEM_PREFIX_R, "");
+ var isLastItem = i === items.length - 1;
+ var containsBlocks = content.indexOf("\n\n") !== -1;
+ var thisItemIsAParagraph = containsBlocks || isLastItem && lastItemWasAParagraph;
+ lastItemWasAParagraph = thisItemIsAParagraph;
+ var oldStateInline = state.inline;
+ var oldStateList = state._list;
+ state._list = true;
+ var adjustedContent;
+ if (thisItemIsAParagraph) {
+ state.inline = false;
+ adjustedContent = content.replace(LIST_ITEM_END_R, "\n\n");
+ } else {
+ state.inline = true;
+ adjustedContent = content.replace(LIST_ITEM_END_R, "");
+ }
+ var result = parse2(adjustedContent, state);
+ state.inline = oldStateInline;
+ state._list = oldStateList;
+ return result;
+ });
+ return {
+ ordered,
+ start,
+ items: itemContent
+ };
+ }),
+ react: function react6(node, output, state) {
+ var ListWrapper = node.ordered ? "ol" : "ul";
+ return reactElement(ListWrapper, state.key, {
+ start: node.start,
+ children: node.items.map(function(item, i) {
+ return reactElement("li", "" + i, {
+ children: output(item, state)
+ });
+ })
+ });
+ },
+ html: function html6(node, output, state) {
+ var listItems = node.items.map(function(item) {
+ return htmlTag("li", output(item, state));
+ }).join("");
+ var listTag = node.ordered ? "ol" : "ul";
+ var attributes = {
+ start: node.start
+ };
+ return htmlTag(listTag, listItems, attributes);
+ }
+ },
+ def: {
+ order: currOrder++,
+ // TODO(aria): This will match without a blank line before the next
+ // block element, which is inconsistent with most of the rest of
+ // simple-markdown.
+ match: blockRegex(/^ *\[([^\]]+)\]: *([^\s>]*)>?(?: +["(]([^\n]+)[")])? *\n(?: *\n)*/),
+ parse: function(_parse7) {
+ function parse2(_x19, _x20, _x21) {
+ return _parse7.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse7.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ var def = capture[1].replace(/\s+/g, " ").toLowerCase();
+ var target = capture[2];
+ var title = capture[3];
+ if (state._refs && state._refs[def]) {
+ state._refs[def].forEach(function(refNode) {
+ refNode.target = target;
+ refNode.title = title;
+ });
+ }
+ state._defs = state._defs || {};
+ state._defs[def] = {
+ target,
+ title
+ };
+ return {
+ def,
+ target,
+ title
+ };
+ }),
+ react: function react7() {
+ return null;
+ },
+ html: function html7() {
+ return "";
+ }
+ },
+ table: {
+ order: currOrder++,
+ match: blockRegex(TABLES.TABLE_REGEX),
+ parse: TABLES.parseTable,
+ react: function react8(node, output, state) {
+ var getStyle = function getStyle2(colIndex) {
+ return node.align[colIndex] == null ? {} : {
+ textAlign: node.align[colIndex]
+ };
+ };
+ var headers = node.header.map(function(content, i) {
+ return reactElement("th", "" + i, {
+ style: getStyle(i),
+ scope: "col",
+ children: output(content, state)
+ });
+ });
+ var rows = node.cells.map(function(row, r) {
+ return reactElement("tr", "" + r, {
+ children: row.map(function(content, c) {
+ return reactElement("td", "" + c, {
+ style: getStyle(c),
+ children: output(content, state)
+ });
+ })
+ });
+ });
+ return reactElement("table", state.key, {
+ children: [reactElement("thead", "thead", {
+ children: reactElement("tr", null, {
+ children: headers
+ })
+ }), reactElement("tbody", "tbody", {
+ children: rows
+ })]
+ });
+ },
+ html: function html8(node, output, state) {
+ var getStyle = function getStyle2(colIndex) {
+ return node.align[colIndex] == null ? "" : "text-align:" + node.align[colIndex] + ";";
+ };
+ var headers = node.header.map(function(content, i) {
+ return htmlTag("th", output(content, state), {
+ style: getStyle(i),
+ scope: "col"
+ });
+ }).join("");
+ var rows = node.cells.map(function(row) {
+ var cols = row.map(function(content, c) {
+ return htmlTag("td", output(content, state), {
+ style: getStyle(c)
+ });
+ }).join("");
+ return htmlTag("tr", cols);
+ }).join("");
+ var thead = htmlTag("thead", htmlTag("tr", headers));
+ var tbody = htmlTag("tbody", rows);
+ return htmlTag("table", thead + tbody);
+ }
+ },
+ newline: {
+ order: currOrder++,
+ match: blockRegex(/^(?:\n *)*\n/),
+ parse: ignoreCapture,
+ react: function react9(node, output, state) {
+ return "\n";
+ },
+ html: function html9(node, output, state) {
+ return "\n";
+ }
+ },
+ paragraph: {
+ order: currOrder++,
+ match: blockRegex(/^((?:[^\n]|\n(?! *\n))+)(?:\n *)+\n/),
+ parse: parseCaptureInline,
+ react: function react10(node, output, state) {
+ return reactElement("div", state.key, {
+ className: "paragraph",
+ children: output(node.content, state)
+ });
+ },
+ html: function html10(node, output, state) {
+ var attributes = {
+ class: "paragraph"
+ };
+ return htmlTag("div", output(node.content, state), attributes);
+ }
+ },
+ escape: {
+ order: currOrder++,
+ // We don't allow escaping numbers, letters, or spaces here so that
+ // backslashes used in plain text still get rendered. But allowing
+ // escaping anything else provides a very flexible escape mechanism,
+ // regardless of how this grammar is extended.
+ match: inlineRegex(/^\\([^0-9A-Za-z\s])/),
+ parse: function(_parse8) {
+ function parse2(_x22, _x23, _x24) {
+ return _parse8.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse8.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ return {
+ type: "text",
+ content: capture[1]
+ };
+ }),
+ react: null,
+ html: null
+ },
+ tableSeparator: {
+ order: currOrder++,
+ // $FlowFixMe
+ match: function match2(source, state) {
+ if (!state.inTable) {
+ return null;
+ }
+ return /^ *\| */.exec(source);
+ },
+ parse: function parse() {
+ return {
+ type: "tableSeparator"
+ };
+ },
+ // These shouldn't be reached, but in case they are, be reasonable:
+ react: function react11() {
+ return " | ";
+ },
+ html: function html11() {
+ return " | ";
+ }
+ },
+ autolink: {
+ order: currOrder++,
+ match: inlineRegex(/^<([^: >]+:\/[^ >]+)>/),
+ parse: function(_parse9) {
+ function parse2(_x25, _x26, _x27) {
+ return _parse9.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse9.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ return {
+ type: "link",
+ content: [{
+ type: "text",
+ content: capture[1]
+ }],
+ target: capture[1]
+ };
+ }),
+ react: null,
+ html: null
+ },
+ mailto: {
+ order: currOrder++,
+ match: inlineRegex(/^<([^ >]+@[^ >]+)>/),
+ parse: function(_parse10) {
+ function parse2(_x28, _x29, _x30) {
+ return _parse10.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse10.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ var address = capture[1];
+ var target = capture[1];
+ if (!AUTOLINK_MAILTO_CHECK_R.test(target)) {
+ target = "mailto:" + target;
+ }
+ return {
+ type: "link",
+ content: [{
+ type: "text",
+ content: address
+ }],
+ target
+ };
+ }),
+ react: null,
+ html: null
+ },
+ url: {
+ order: currOrder++,
+ match: inlineRegex(/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/),
+ parse: function(_parse11) {
+ function parse2(_x31, _x32, _x33) {
+ return _parse11.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse11.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ return {
+ type: "link",
+ content: [{
+ type: "text",
+ content: capture[1]
+ }],
+ target: capture[1],
+ title: void 0
+ };
+ }),
+ react: null,
+ html: null
+ },
+ link: {
+ order: currOrder++,
+ match: inlineRegex(new RegExp("^\\[(" + LINK_INSIDE + ")\\]\\(" + LINK_HREF_AND_TITLE + "\\)")),
+ parse: function(_parse12) {
+ function parse2(_x34, _x35, _x36) {
+ return _parse12.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse12.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ var link = {
+ content: parse2(capture[1], state),
+ target: unescapeUrl(capture[2]),
+ title: capture[3]
+ };
+ return link;
+ }),
+ react: function react12(node, output, state) {
+ return reactElement("a", state.key, {
+ href: sanitizeUrl(node.target),
+ title: node.title,
+ children: output(node.content, state)
+ });
+ },
+ html: function html12(node, output, state) {
+ var attributes = {
+ href: sanitizeUrl(node.target),
+ title: node.title
+ };
+ return htmlTag("a", output(node.content, state), attributes);
+ }
+ },
+ image: {
+ order: currOrder++,
+ match: inlineRegex(new RegExp("^!\\[(" + LINK_INSIDE + ")\\]\\(" + LINK_HREF_AND_TITLE + "\\)")),
+ parse: function(_parse13) {
+ function parse2(_x37, _x38, _x39) {
+ return _parse13.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse13.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ var image = {
+ alt: capture[1],
+ target: unescapeUrl(capture[2]),
+ title: capture[3]
+ };
+ return image;
+ }),
+ react: function react13(node, output, state) {
+ return reactElement("img", state.key, {
+ src: sanitizeUrl(node.target),
+ alt: node.alt,
+ title: node.title
+ });
+ },
+ html: function html13(node, output, state) {
+ var attributes = {
+ src: sanitizeUrl(node.target),
+ alt: node.alt,
+ title: node.title
+ };
+ return htmlTag("img", "", attributes, false);
+ }
+ },
+ reflink: {
+ order: currOrder++,
+ match: inlineRegex(new RegExp(
+ // The first [part] of the link
+ "^\\[(" + LINK_INSIDE + ")\\]\\s*\\[([^\\]]*)\\]"
+ )),
+ parse: function(_parse14) {
+ function parse2(_x40, _x41, _x42) {
+ return _parse14.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse14.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ return parseRef(capture, state, {
+ type: "link",
+ content: parse2(capture[1], state)
+ });
+ }),
+ react: null,
+ html: null
+ },
+ refimage: {
+ order: currOrder++,
+ match: inlineRegex(new RegExp(
+ // The first [part] of the link
+ "^!\\[(" + LINK_INSIDE + ")\\]\\s*\\[([^\\]]*)\\]"
+ )),
+ parse: function(_parse15) {
+ function parse2(_x43, _x44, _x45) {
+ return _parse15.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse15.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ return parseRef(capture, state, {
+ type: "image",
+ alt: capture[1]
+ });
+ }),
+ react: null,
+ html: null
+ },
+ em: {
+ order: currOrder,
+ match: inlineRegex(new RegExp(
+ // only match _s surrounding words.
+ "^\\b_((?:__|\\\\[\\s\\S]|[^\\\\_])+?)_\\b|^\\*(?=\\S)((?:\\*\\*|\\\\[\\s\\S]|\\s+(?:\\\\[\\s\\S]|[^\\s\\*\\\\]|\\*\\*)|[^\\s\\*\\\\])+?)\\*(?!\\*)"
+ )),
+ quality: function quality(capture) {
+ return capture[0].length + 0.2;
+ },
+ parse: function(_parse16) {
+ function parse2(_x46, _x47, _x48) {
+ return _parse16.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse16.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ return {
+ content: parse2(capture[2] || capture[1], state)
+ };
+ }),
+ react: function react14(node, output, state) {
+ return reactElement("em", state.key, {
+ children: output(node.content, state)
+ });
+ },
+ html: function html14(node, output, state) {
+ return htmlTag("em", output(node.content, state));
+ }
+ },
+ strong: {
+ order: currOrder,
+ match: inlineRegex(/^\*\*((?:\\[\s\S]|[^\\])+?)\*\*(?!\*)/),
+ quality: function quality2(capture) {
+ return capture[0].length + 0.1;
+ },
+ parse: parseCaptureInline,
+ react: function react15(node, output, state) {
+ return reactElement("strong", state.key, {
+ children: output(node.content, state)
+ });
+ },
+ html: function html15(node, output, state) {
+ return htmlTag("strong", output(node.content, state));
+ }
+ },
+ u: {
+ order: currOrder++,
+ match: inlineRegex(/^__((?:\\[\s\S]|[^\\])+?)__(?!_)/),
+ quality: function quality3(capture) {
+ return capture[0].length;
+ },
+ parse: parseCaptureInline,
+ react: function react16(node, output, state) {
+ return reactElement("u", state.key, {
+ children: output(node.content, state)
+ });
+ },
+ html: function html16(node, output, state) {
+ return htmlTag("u", output(node.content, state));
+ }
+ },
+ del: {
+ order: currOrder++,
+ match: inlineRegex(/^~~(?=\S)((?:\\[\s\S]|~(?!~)|[^\s~\\]|\s(?!~~))+?)~~/),
+ parse: parseCaptureInline,
+ react: function react17(node, output, state) {
+ return reactElement("del", state.key, {
+ children: output(node.content, state)
+ });
+ },
+ html: function html17(node, output, state) {
+ return htmlTag("del", output(node.content, state));
+ }
+ },
+ inlineCode: {
+ order: currOrder++,
+ match: inlineRegex(/^(`+)([\s\S]*?[^`])\1(?!`)/),
+ parse: function(_parse17) {
+ function parse2(_x49, _x50, _x51) {
+ return _parse17.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse17.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ return {
+ content: capture[2].replace(INLINE_CODE_ESCAPE_BACKTICKS_R, "$1")
+ };
+ }),
+ react: function react18(node, output, state) {
+ return reactElement("code", state.key, {
+ children: node.content
+ });
+ },
+ html: function html18(node, output, state) {
+ return htmlTag("code", sanitizeText(node.content));
+ }
+ },
+ br: {
+ order: currOrder++,
+ match: anyScopeRegex(/^ {2,}\n/),
+ parse: ignoreCapture,
+ react: function react19(node, output, state) {
+ return reactElement("br", state.key, EMPTY_PROPS);
+ },
+ html: function html19(node, output, state) {
+ return "
";
+ }
+ },
+ text: {
+ order: currOrder++,
+ // Here we look for anything followed by non-symbols,
+ // double newlines, or double-space-newlines
+ // We break on any symbol characters so that this grammar
+ // is easy to extend without needing to modify this regex
+ match: anyScopeRegex(/^[\s\S]+?(?=[^0-9A-Za-z\s\u00c0-\uffff]|\n\n| {2,}\n|\w+:\S|$)/),
+ parse: function(_parse18) {
+ function parse2(_x52, _x53, _x54) {
+ return _parse18.apply(this, arguments);
+ }
+ parse2.toString = function() {
+ return _parse18.toString();
+ };
+ return parse2;
+ }(function(capture, parse2, state) {
+ return {
+ content: capture[0]
+ };
+ }),
+ react: function react20(node, output, state) {
+ return node.content;
+ },
+ html: function html20(node, output, state) {
+ return sanitizeText(node.content);
+ }
+ }
+};
+var ruleOutput = function ruleOutput2(rules, property) {
+ if (!property && typeof console !== "undefined") {
+ console.warn("simple-markdown ruleOutput should take 'react' or 'html' as the second argument.");
+ }
+ var nestedRuleOutput = function nestedRuleOutput2(ast, outputFunc, state) {
+ return rules[ast.type][property](ast, outputFunc, state);
+ };
+ return nestedRuleOutput;
+};
+var reactFor = function reactFor2(outputFunc) {
+ var nestedOutput = function nestedOutput2(ast, state) {
+ state = state || {};
+ if (Array.isArray(ast)) {
+ var oldKey = state.key;
+ var result = [];
+ var lastResult = null;
+ for (var i = 0; i < ast.length; i++) {
+ state.key = "" + i;
+ var nodeOut = nestedOutput2(ast[i], state);
+ if (typeof nodeOut === "string" && typeof lastResult === "string") {
+ lastResult = lastResult + nodeOut;
+ result[result.length - 1] = lastResult;
+ } else {
+ result.push(nodeOut);
+ lastResult = nodeOut;
+ }
+ }
+ state.key = oldKey;
+ return result;
+ } else {
+ return outputFunc(ast, nestedOutput2, state);
+ }
+ };
+ return nestedOutput;
+};
+var htmlFor = function htmlFor2(outputFunc) {
+ var nestedOutput = function nestedOutput2(ast, state) {
+ state = state || {};
+ if (Array.isArray(ast)) {
+ return ast.map(function(node) {
+ return nestedOutput2(node, state);
+ }).join("");
+ } else {
+ return outputFunc(ast, nestedOutput2, state);
+ }
+ };
+ return nestedOutput;
+};
+var outputFor = function outputFor2(rules, property) {
+ var defaultState = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
+ if (!property) {
+ throw new Error("simple-markdown: outputFor: `property` must be defined. if you just upgraded, you probably need to replace `outputFor` with `reactFor`");
+ }
+ var latestState;
+ var arrayRule = rules.Array || defaultRules.Array;
+ var arrayRuleCheck = arrayRule[property];
+ if (!arrayRuleCheck) {
+ throw new Error("simple-markdown: outputFor: to join nodes of type `" + property + "` you must provide an `Array:` joiner rule with that type, Please see the docs for details on specifying an Array rule.");
+ }
+ var arrayRuleOutput = arrayRuleCheck;
+ var nestedOutput = function nestedOutput2(ast, state) {
+ state = state || latestState;
+ latestState = state;
+ if (Array.isArray(ast)) {
+ return arrayRuleOutput(ast, nestedOutput2, state);
+ } else {
+ return rules[ast.type][property](ast, nestedOutput2, state);
+ }
+ };
+ var outerOutput = function outerOutput2(ast, state) {
+ latestState = populateInitialState(state, defaultState);
+ return nestedOutput(ast, latestState);
+ };
+ return outerOutput;
+};
+var defaultRawParse = parserFor(defaultRules);
+var defaultBlockParse = function defaultBlockParse2(source, state) {
+ state = state || {};
+ state.inline = false;
+ return defaultRawParse(source, state);
+};
+var defaultInlineParse = function defaultInlineParse2(source, state) {
+ state = state || {};
+ state.inline = true;
+ return defaultRawParse(source, state);
+};
+var defaultImplicitParse = function defaultImplicitParse2(source, state) {
+ var isBlock = BLOCK_END_R.test(source);
+ state = state || {};
+ state.inline = !isBlock;
+ return defaultRawParse(source, state);
+};
+var defaultReactOutput = outputFor(defaultRules, "react");
+var defaultHtmlOutput = outputFor(defaultRules, "html");
+var markdownToReact = function markdownToReact2(source, state) {
+ return defaultReactOutput(defaultBlockParse(source, state), state);
+};
+var markdownToHtml = function markdownToHtml2(source, state) {
+ return defaultHtmlOutput(defaultBlockParse(source, state), state);
+};
+var ReactMarkdown = function ReactMarkdown2(props) {
+ var divProps = {};
+ for (var prop in props) {
+ if (prop !== "source" && // $FlowFixMe
+ Object.prototype.hasOwnProperty.call(props, prop)) {
+ divProps[prop] = props[prop];
+ }
+ }
+ divProps.children = markdownToReact(props.source);
+ return reactElement("div", null, divProps);
+};
+var SimpleMarkdown = {
+ defaultRules,
+ parserFor,
+ outputFor,
+ inlineRegex,
+ blockRegex,
+ anyScopeRegex,
+ parseInline,
+ parseBlock,
+ // default wrappers:
+ markdownToReact,
+ markdownToHtml,
+ ReactMarkdown,
+ defaultBlockParse,
+ defaultInlineParse,
+ defaultImplicitParse,
+ defaultReactOutput,
+ defaultHtmlOutput,
+ preprocess,
+ sanitizeText,
+ sanitizeUrl,
+ unescapeUrl,
+ htmlTag,
+ reactElement,
+ // deprecated:
+ defaultRawParse,
+ ruleOutput,
+ reactFor,
+ htmlFor,
+ defaultParse: function defaultParse() {
+ if (typeof console !== "undefined") {
+ console.warn("defaultParse is deprecated, please use `defaultImplicitParse`");
+ }
+ return defaultImplicitParse.apply(null, arguments);
+ },
+ defaultOutput: function defaultOutput() {
+ if (typeof console !== "undefined") {
+ console.warn("defaultOutput is deprecated, please use `defaultReactOutput`");
+ }
+ return defaultReactOutput.apply(null, arguments);
+ }
+};
+function preprocessMarkdown(markdown) {
+ const withoutMultipleNewlines = markdown.replace(/\n{2,}/g, "\n");
+ const withoutExtraSpaces = withoutMultipleNewlines.replace(/^\s+/gm, "");
+ return withoutExtraSpaces;
+}
+function markdownToLines(markdown) {
+ const preprocessedMarkdown = preprocessMarkdown(markdown);
+ const mdParse = SimpleMarkdown.defaultBlockParse;
+ const syntaxTree = mdParse(preprocessedMarkdown);
+ let lines = [[]];
+ let currentLine = 0;
+ function processNode(node, parentType) {
+ if (node.type === "text") {
+ const textLines = node.content.split("\n");
+ textLines.forEach((textLine, index) => {
+ if (index !== 0) {
+ currentLine++;
+ lines.push([]);
+ }
+ textLine.split(" ").forEach((word) => {
+ if (word) {
+ lines[currentLine].push({ content: word, type: parentType || "normal" });
+ }
+ });
+ });
+ } else if (node.type === "strong" || node.type === "em") {
+ node.content.forEach((contentNode) => {
+ processNode(contentNode, node.type);
+ });
+ }
+ }
+ syntaxTree.forEach((treeNode) => {
+ if (treeNode.type === "paragraph") {
+ treeNode.content.forEach((contentNode) => {
+ processNode(contentNode);
+ });
+ }
+ });
+ return lines;
+}
+function markdownToHTML(markdown) {
+ const mdParse = SimpleMarkdown.defaultBlockParse;
+ const syntaxTree = mdParse(markdown);
+ function output(node) {
+ if (node.type === "text") {
+ return node.content.replace(/\n/g, "
");
+ } else if (node.type === "strong") {
+ return `${node.content.map(output).join("")}`;
+ } else if (node.type === "em") {
+ return `${node.content.map(output).join("")}`;
+ } else if (node.type === "paragraph") {
+ return `${node.content.map(output).join("")}
`;
+ } else {
+ return "";
+ }
+ }
+ return syntaxTree.map(output).join("");
+}
+function applyStyle(dom, styleFn) {
+ if (styleFn) {
+ dom.attr("style", styleFn);
+ }
+}
+function addHtmlSpan(element, node, width, classes) {
+ const fo = element.append("foreignObject");
+ const div = fo.append("xhtml:div");
+ const label = node.label;
+ const labelClass = node.isNode ? "nodeLabel" : "edgeLabel";
+ div.html(
+ `" + label + ""
+ );
+ applyStyle(div, node.labelStyle);
+ div.style("display", "table-cell");
+ div.style("white-space", "nowrap");
+ div.style("max-width", width + "px");
+ div.attr("xmlns", "http://www.w3.org/1999/xhtml");
+ let bbox = div.node().getBoundingClientRect();
+ if (bbox.width === width) {
+ div.style("display", "table");
+ div.style("white-space", "break-spaces");
+ div.style("width", width + "px");
+ bbox = div.node().getBoundingClientRect();
+ }
+ fo.style("width", bbox.width);
+ fo.style("height", bbox.height);
+ return fo.node();
+}
+function createTspan(textElement, lineIndex, lineHeight) {
+ return textElement.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", lineIndex * lineHeight - 0.1 + "em").attr("dy", lineHeight + "em");
+}
+function createFormattedText(width, g, structuredText, addBackground = false) {
+ const lineHeight = 1.1;
+ const labelGroup = g.append("g");
+ let bkg = labelGroup.insert("rect").attr("class", "background");
+ const textElement = labelGroup.append("text").attr("y", "-10.1");
+ let lineIndex = -1;
+ structuredText.forEach((line) => {
+ lineIndex++;
+ let tspan = createTspan(textElement, lineIndex, lineHeight);
+ let words = [...line].reverse();
+ let currentWord;
+ let wrappedLine = [];
+ while (words.length) {
+ currentWord = words.pop();
+ wrappedLine.push(currentWord);
+ updateTextContentAndStyles(tspan, wrappedLine);
+ if (tspan.node().getComputedTextLength() > width) {
+ wrappedLine.pop();
+ words.push(currentWord);
+ updateTextContentAndStyles(tspan, wrappedLine);
+ wrappedLine = [];
+ lineIndex++;
+ tspan = createTspan(textElement, lineIndex, lineHeight);
+ }
+ }
+ });
+ if (addBackground) {
+ const bbox = textElement.node().getBBox();
+ const padding = 2;
+ bkg.attr("x", -padding).attr("y", -padding).attr("width", bbox.width + 2 * padding).attr("height", bbox.height + 2 * padding);
+ return labelGroup.node();
+ } else {
+ return textElement.node();
+ }
+}
+function updateTextContentAndStyles(tspan, wrappedLine) {
+ tspan.text("");
+ wrappedLine.forEach((word, index) => {
+ const innerTspan = tspan.append("tspan").attr("font-style", word.type === "em" ? "italic" : "normal").attr("class", "text-inner-tspan").attr("font-weight", word.type === "strong" ? "bold" : "normal");
+ if (index === 0) {
+ innerTspan.text(word.content);
+ } else {
+ innerTspan.text(" " + word.content);
+ }
+ });
+}
+const createText = (el, text = "", {
+ style = "",
+ isTitle = false,
+ classes = "",
+ useHtmlLabels = true,
+ isNode = true,
+ width,
+ addSvgBackground = false
+} = {}) => {
+ log.info("createText", text, style, isTitle, classes, useHtmlLabels, isNode, addSvgBackground);
+ if (useHtmlLabels) {
+ const htmlText = markdownToHTML(text);
+ const node = {
+ isNode,
+ label: decodeEntities(htmlText).replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s) => ``
+ ),
+ labelStyle: style.replace("fill:", "color:")
+ };
+ let vertexNode = addHtmlSpan(el, node, width, classes);
+ return vertexNode;
+ } else {
+ const structuredText = markdownToLines(text);
+ const special = ['"', "'", ".", ",", ":", ";", "!", "?", "(", ")", "[", "]", "{", "}"];
+ let lastWord;
+ structuredText.forEach((line) => {
+ line.forEach((word) => {
+ if (special.includes(word.content) && lastWord) {
+ lastWord.content += word.content;
+ word.content = "";
+ }
+ lastWord = word;
+ });
+ });
+ const svgLabel = createFormattedText(width, el, structuredText, addSvgBackground);
+ return svgLabel;
+ }
+};
+export {
+ createText as c
+};
+//# sourceMappingURL=createText-b0d5c0ec.js.map
diff --git a/scopegraphs-render-docs/doc/js/defaultConfig.d.ts b/scopegraphs-render-docs/doc/js/defaultConfig.d.ts
new file mode 100644
index 0000000..d5bb535
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/defaultConfig.d.ts
@@ -0,0 +1,34 @@
+import { MermaidConfig } from './config.type';
+/**
+ * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click
+ * here](8.6.0_docs.md)].**
+ *
+ * ## **What follows are config instructions for older versions**
+ *
+ * These are the default options which can be overridden with the initialization call like so:
+ *
+ * **Example 1:**
+ *
+ * ```js
+ * mermaid.initialize({ flowchart:{ htmlLabels: false } });
+ * ```
+ *
+ * **Example 2:**
+ *
+ * ```html
+ *
+ * ```
+ *
+ * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults).
+ * A description of each option follows below.
+ */
+declare const config: Partial;
+export declare const configKeys: string[];
+export default config;
diff --git a/scopegraphs-render-docs/doc/js/diagram.spec.d.ts b/scopegraphs-render-docs/doc/js/diagram.spec.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/diagram.spec.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/scopegraphs-render-docs/doc/js/directiveUtils.d.ts b/scopegraphs-render-docs/doc/js/directiveUtils.d.ts
new file mode 100644
index 0000000..d2a9581
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/directiveUtils.d.ts
@@ -0,0 +1 @@
+export declare const parseDirective: (p: any, statement: string, context: string, type: string) => void;
diff --git a/scopegraphs-render-docs/doc/js/docs.d.mts b/scopegraphs-render-docs/doc/js/docs.d.mts
new file mode 100644
index 0000000..d6c9551
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/docs.d.mts
@@ -0,0 +1,30 @@
+import type { Root } from 'mdast';
+export declare const transformToBlockQuote: (content: string, type: string, customTitle?: string | null) => string;
+/** Options for {@link transformMarkdownAst} */
+interface TransformMarkdownAstOptions {
+ /**
+ * Used to indicate the original/source file.
+ */
+ originalFilename: string;
+ /** If `true`, add a warning that the file is autogenerated */
+ addAutogeneratedWarning?: boolean;
+ /**
+ * If `true`, remove the YAML metadata from the Markdown input.
+ * Generally, YAML metadata is only used for Vitepress.
+ */
+ removeYAML?: boolean;
+}
+/**
+ * Remark plugin that transforms mermaid repo markdown to Vitepress/GFM markdown.
+ *
+ * For any AST node that is a code block: transform it as needed:
+ * - blocks marked as MERMAID_DIAGRAM_ONLY will be set to a 'mermaid' code block so it will be rendered as (only) a diagram
+ * - blocks marked as MERMAID_EXAMPLE_KEYWORDS will be copied and the original node will be a code only block and the copy with be rendered as the diagram
+ * - blocks marked as BLOCK_QUOTE_KEYWORDS will be transformed into block quotes
+ *
+ * If `addAutogeneratedWarning` is `true`, generates a header stating that this file is autogenerated.
+ *
+ * @returns plugin function for Remark
+ */
+export declare function transformMarkdownAst({ originalFilename, addAutogeneratedWarning, removeYAML, }: TransformMarkdownAstOptions): (tree: Root, _file?: any) => Root;
+export {};
diff --git a/scopegraphs-render-docs/doc/js/docs.spec.d.ts b/scopegraphs-render-docs/doc/js/docs.spec.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/docs.spec.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/scopegraphs-render-docs/doc/js/edges-17d4be60.js b/scopegraphs-render-docs/doc/js/edges-17d4be60.js
new file mode 100644
index 0000000..f812b0f
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/edges-17d4be60.js
@@ -0,0 +1,1449 @@
+import { l as log, m as evaluate, g as getConfig, h as select, b as sanitizeText } from "./commonDb-89160e91.js";
+import { c as createText } from "./createText-b0d5c0ec.js";
+import { p as decodeEntities } from "./mermaidAPI-c841a67f.js";
+import { p as parseMember } from "./svgDraw-dd61ddfa.js";
+import { u as utils, G as curveBasis } from "./utils-1aebe9b6.js";
+import { l as line } from "./line-fbe8f138.js";
+const insertMarkers = (elem, markerArray, type, id) => {
+ markerArray.forEach((markerName) => {
+ markers[markerName](elem, type, id);
+ });
+};
+const extension = (elem, type, id) => {
+ log.trace("Making markers for ", id);
+ elem.append("defs").append("marker").attr("id", type + "-extensionStart").attr("class", "marker extension " + type).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");
+ elem.append("defs").append("marker").attr("id", type + "-extensionEnd").attr("class", "marker extension " + type).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");
+};
+const composition = (elem, type) => {
+ elem.append("defs").append("marker").attr("id", type + "-compositionStart").attr("class", "marker composition " + type).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");
+ elem.append("defs").append("marker").attr("id", type + "-compositionEnd").attr("class", "marker composition " + type).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");
+};
+const aggregation = (elem, type) => {
+ elem.append("defs").append("marker").attr("id", type + "-aggregationStart").attr("class", "marker aggregation " + type).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");
+ elem.append("defs").append("marker").attr("id", type + "-aggregationEnd").attr("class", "marker aggregation " + type).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");
+};
+const dependency = (elem, type) => {
+ elem.append("defs").append("marker").attr("id", type + "-dependencyStart").attr("class", "marker dependency " + type).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");
+ elem.append("defs").append("marker").attr("id", type + "-dependencyEnd").attr("class", "marker dependency " + type).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");
+};
+const lollipop = (elem, type) => {
+ elem.append("defs").append("marker").attr("id", type + "-lollipopStart").attr("class", "marker lollipop " + type).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "white").attr("cx", 6).attr("cy", 7).attr("r", 6);
+};
+const point = (elem, type) => {
+ elem.append("marker").attr("id", type + "-pointEnd").attr("class", "marker " + type).attr("viewBox", "0 0 12 20").attr("refX", 10).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", type + "-pointStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 0).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+};
+const circle$1 = (elem, type) => {
+ elem.append("marker").attr("id", type + "-circleEnd").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", type + "-circleStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+};
+const cross = (elem, type) => {
+ elem.append("marker").attr("id", type + "-crossEnd").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", type + "-crossStart").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
+};
+const barb = (elem, type) => {
+ elem.append("defs").append("marker").attr("id", type + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "strokeWidth").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
+};
+const markers = {
+ extension,
+ composition,
+ aggregation,
+ dependency,
+ lollipop,
+ point,
+ circle: circle$1,
+ cross,
+ barb
+};
+const insertMarkers$1 = insertMarkers;
+function applyStyle(dom, styleFn) {
+ if (styleFn) {
+ dom.attr("style", styleFn);
+ }
+}
+function addHtmlLabel(node) {
+ const fo = select(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject"));
+ const div = fo.append("xhtml:div");
+ const label = node.label;
+ const labelClass = node.isNode ? "nodeLabel" : "edgeLabel";
+ div.html(
+ '" + label + ""
+ );
+ applyStyle(div, node.labelStyle);
+ div.style("display", "inline-block");
+ div.style("white-space", "nowrap");
+ div.attr("xmlns", "http://www.w3.org/1999/xhtml");
+ return fo.node();
+}
+const createLabel = (_vertexText, style, isTitle, isNode) => {
+ let vertexText = _vertexText || "";
+ if (typeof vertexText === "object") {
+ vertexText = vertexText[0];
+ }
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ vertexText = vertexText.replace(/\\n|\n/g, "
");
+ log.info("vertexText" + vertexText);
+ const node = {
+ isNode,
+ label: decodeEntities(vertexText).replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s) => ``
+ ),
+ labelStyle: style.replace("fill:", "color:")
+ };
+ let vertexNode = addHtmlLabel(node);
+ return vertexNode;
+ } else {
+ const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("style", style.replace("color:", "fill:"));
+ let rows = [];
+ if (typeof vertexText === "string") {
+ rows = vertexText.split(/\\n|\n|
/gi);
+ } else if (Array.isArray(vertexText)) {
+ rows = vertexText;
+ } else {
+ rows = [];
+ }
+ for (const row of rows) {
+ const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
+ tspan.setAttribute("dy", "1em");
+ tspan.setAttribute("x", "0");
+ if (isTitle) {
+ tspan.setAttribute("class", "title-row");
+ } else {
+ tspan.setAttribute("class", "row");
+ }
+ tspan.textContent = row.trim();
+ svgLabel.appendChild(tspan);
+ }
+ return svgLabel;
+ }
+};
+const createLabel$1 = createLabel;
+const labelHelper = (parent, node, _classes, isNode) => {
+ let classes;
+ const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig().flowchart.htmlLabels);
+ if (!_classes) {
+ classes = "node default";
+ } else {
+ classes = _classes;
+ }
+ const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id);
+ const label = shapeSvg.insert("g").attr("class", "label").attr("style", node.labelStyle);
+ let labelText;
+ if (node.labelText === void 0) {
+ labelText = "";
+ } else {
+ labelText = typeof node.labelText === "string" ? node.labelText : node.labelText[0];
+ }
+ const textNode = label.node();
+ let text;
+ if (node.labelType === "markdown") {
+ text = createText(label, sanitizeText(decodeEntities(labelText), getConfig()), {
+ useHtmlLabels,
+ width: node.width || getConfig().flowchart.wrappingWidth,
+ classes: "markdown-node-label"
+ });
+ } else {
+ text = textNode.appendChild(
+ createLabel$1(
+ sanitizeText(decodeEntities(labelText), getConfig()),
+ node.labelStyle,
+ false,
+ isNode
+ )
+ );
+ }
+ let bbox = text.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = text.children[0];
+ const dv = select(text);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ const halfPadding = node.padding / 2;
+ if (useHtmlLabels) {
+ label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ } else {
+ label.attr("transform", "translate(" + 0 + ", " + -bbox.height / 2 + ")");
+ }
+ if (node.centerLabel) {
+ label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ }
+ label.insert("rect", ":first-child");
+ return { shapeSvg, bbox, halfPadding, label };
+};
+const updateNodeBounds = (node, element) => {
+ const bbox = element.node().getBBox();
+ node.width = bbox.width;
+ node.height = bbox.height;
+};
+function insertPolygonShape(parent, w, h, points) {
+ return parent.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d) {
+ return d.x + "," + d.y;
+ }).join(" ")
+ ).attr("class", "label-container").attr("transform", "translate(" + -w / 2 + "," + h / 2 + ")");
+}
+function intersectNode(node, point2) {
+ return node.intersect(point2);
+}
+function intersectEllipse(node, rx, ry, point2) {
+ var cx = node.x;
+ var cy = node.y;
+ var px = cx - point2.x;
+ var py = cy - point2.y;
+ var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
+ var dx = Math.abs(rx * ry * px / det);
+ if (point2.x < cx) {
+ dx = -dx;
+ }
+ var dy = Math.abs(rx * ry * py / det);
+ if (point2.y < cy) {
+ dy = -dy;
+ }
+ return { x: cx + dx, y: cy + dy };
+}
+function intersectCircle(node, rx, point2) {
+ return intersectEllipse(node, rx, rx, point2);
+}
+function intersectLine(p1, p2, q1, q2) {
+ var a1, a2, b1, b2, c1, c2;
+ var r1, r2, r3, r4;
+ var denom, offset, num;
+ var x, y;
+ a1 = p2.y - p1.y;
+ b1 = p1.x - p2.x;
+ c1 = p2.x * p1.y - p1.x * p2.y;
+ r3 = a1 * q1.x + b1 * q1.y + c1;
+ r4 = a1 * q2.x + b1 * q2.y + c1;
+ if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {
+ return;
+ }
+ a2 = q2.y - q1.y;
+ b2 = q1.x - q2.x;
+ c2 = q2.x * q1.y - q1.x * q2.y;
+ r1 = a2 * p1.x + b2 * p1.y + c2;
+ r2 = a2 * p2.x + b2 * p2.y + c2;
+ if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {
+ return;
+ }
+ denom = a1 * b2 - a2 * b1;
+ if (denom === 0) {
+ return;
+ }
+ offset = Math.abs(denom / 2);
+ num = b1 * c2 - b2 * c1;
+ x = num < 0 ? (num - offset) / denom : (num + offset) / denom;
+ num = a2 * c1 - a1 * c2;
+ y = num < 0 ? (num - offset) / denom : (num + offset) / denom;
+ return { x, y };
+}
+function sameSign(r1, r2) {
+ return r1 * r2 > 0;
+}
+function intersectPolygon(node, polyPoints, point2) {
+ var x1 = node.x;
+ var y1 = node.y;
+ var intersections = [];
+ var minX = Number.POSITIVE_INFINITY;
+ var minY = Number.POSITIVE_INFINITY;
+ if (typeof polyPoints.forEach === "function") {
+ polyPoints.forEach(function(entry) {
+ minX = Math.min(minX, entry.x);
+ minY = Math.min(minY, entry.y);
+ });
+ } else {
+ minX = Math.min(minX, polyPoints.x);
+ minY = Math.min(minY, polyPoints.y);
+ }
+ var left = x1 - node.width / 2 - minX;
+ var top = y1 - node.height / 2 - minY;
+ for (var i = 0; i < polyPoints.length; i++) {
+ var p1 = polyPoints[i];
+ var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];
+ var intersect2 = intersectLine(
+ node,
+ point2,
+ { x: left + p1.x, y: top + p1.y },
+ { x: left + p2.x, y: top + p2.y }
+ );
+ if (intersect2) {
+ intersections.push(intersect2);
+ }
+ }
+ if (!intersections.length) {
+ return node;
+ }
+ if (intersections.length > 1) {
+ intersections.sort(function(p, q) {
+ var pdx = p.x - point2.x;
+ var pdy = p.y - point2.y;
+ var distp = Math.sqrt(pdx * pdx + pdy * pdy);
+ var qdx = q.x - point2.x;
+ var qdy = q.y - point2.y;
+ var distq = Math.sqrt(qdx * qdx + qdy * qdy);
+ return distp < distq ? -1 : distp === distq ? 0 : 1;
+ });
+ }
+ return intersections[0];
+}
+const intersectRect = (node, point2) => {
+ var x = node.x;
+ var y = node.y;
+ var dx = point2.x - x;
+ var dy = point2.y - y;
+ var w = node.width / 2;
+ var h = node.height / 2;
+ var sx, sy;
+ if (Math.abs(dy) * w > Math.abs(dx) * h) {
+ if (dy < 0) {
+ h = -h;
+ }
+ sx = dy === 0 ? 0 : h * dx / dy;
+ sy = h;
+ } else {
+ if (dx < 0) {
+ w = -w;
+ }
+ sx = w;
+ sy = dx === 0 ? 0 : w * dy / dx;
+ }
+ return { x: x + sx, y: y + sy };
+};
+const intersectRect$1 = intersectRect;
+const intersect = {
+ node: intersectNode,
+ circle: intersectCircle,
+ ellipse: intersectEllipse,
+ polygon: intersectPolygon,
+ rect: intersectRect$1
+};
+const note = (parent, node) => {
+ const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart.htmlLabels;
+ if (!useHtmlLabels) {
+ node.centerLabel = true;
+ }
+ const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, "node " + node.classes, true);
+ log.info("Classes = ", node.classes);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ rect2.attr("rx", node.rx).attr("ry", node.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding);
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const note$1 = note;
+const question = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const s = w + h;
+ const points = [
+ { x: s / 2, y: 0 },
+ { x: s, y: -s / 2 },
+ { x: s / 2, y: -s },
+ { x: 0, y: -s / 2 }
+ ];
+ log.info("Question main (Circle)");
+ const questionElem = insertPolygonShape(shapeSvg, s, s, points);
+ questionElem.attr("style", node.style);
+ updateNodeBounds(node, questionElem);
+ node.intersect = function(point2) {
+ log.warn("Intersect called");
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const choice = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id);
+ const s = 28;
+ const points = [
+ { x: 0, y: s / 2 },
+ { x: s / 2, y: 0 },
+ { x: 0, y: -s / 2 },
+ { x: -s / 2, y: 0 }
+ ];
+ const choice2 = shapeSvg.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d) {
+ return d.x + "," + d.y;
+ }).join(" ")
+ );
+ choice2.attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28);
+ node.width = 28;
+ node.height = 28;
+ node.intersect = function(point2) {
+ return intersect.circle(node, 14, point2);
+ };
+ return shapeSvg;
+};
+const hexagon = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const f = 4;
+ const h = bbox.height + node.padding;
+ const m = h / f;
+ const w = bbox.width + 2 * m + node.padding;
+ const points = [
+ { x: m, y: 0 },
+ { x: w - m, y: 0 },
+ { x: w, y: -h / 2 },
+ { x: w - m, y: -h },
+ { x: m, y: -h },
+ { x: 0, y: -h / 2 }
+ ];
+ const hex = insertPolygonShape(shapeSvg, w, h, points);
+ hex.attr("style", node.style);
+ updateNodeBounds(node, hex);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const rect_left_inv_arrow = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: -h / 2, y: 0 },
+ { x: w, y: 0 },
+ { x: w, y: -h },
+ { x: -h / 2, y: -h },
+ { x: 0, y: -h / 2 }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ node.width = w + h;
+ node.height = h;
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const lean_right = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: -2 * h / 6, y: 0 },
+ { x: w - h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: -h },
+ { x: h / 6, y: -h }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const lean_left = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: 2 * h / 6, y: 0 },
+ { x: w + h / 6, y: 0 },
+ { x: w - 2 * h / 6, y: -h },
+ { x: -h / 6, y: -h }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const trapezoid = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: -2 * h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: 0 },
+ { x: w - h / 6, y: -h },
+ { x: h / 6, y: -h }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const inv_trapezoid = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: h / 6, y: 0 },
+ { x: w - h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: -h },
+ { x: -2 * h / 6, y: -h }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const rect_right_inv_arrow = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: 0, y: 0 },
+ { x: w + h / 2, y: 0 },
+ { x: w, y: -h / 2 },
+ { x: w + h / 2, y: -h },
+ { x: 0, y: -h }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const cylinder = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const rx = w / 2;
+ const ry = rx / (2.5 + w / 50);
+ const h = bbox.height + ry + node.padding;
+ const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 a " + rx + "," + ry + " 0,0,0 " + -w + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 l 0," + -h;
+ const el = shapeSvg.attr("label-offset-y", ry).insert("path", ":first-child").attr("style", node.style).attr("d", shape).attr("transform", "translate(" + -w / 2 + "," + -(h / 2 + ry) + ")");
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ const pos = intersect.rect(node, point2);
+ const x = pos.x - node.x;
+ if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {
+ let y = ry * ry * (1 - x * x / (rx * rx));
+ if (y != 0) {
+ y = Math.sqrt(y);
+ }
+ y = ry - y;
+ if (point2.y - node.y > 0) {
+ y = -y;
+ }
+ pos.y += y;
+ }
+ return pos;
+ };
+ return shapeSvg;
+};
+const rect = (parent, node) => {
+ const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, "node " + node.classes, true);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const totalWidth = bbox.width + node.padding;
+ const totalHeight = bbox.height + node.padding;
+ rect2.attr("class", "basic label-container").attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", totalWidth).attr("height", totalHeight);
+ if (node.props) {
+ const propKeys = new Set(Object.keys(node.props));
+ if (node.props.borders) {
+ applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);
+ propKeys.delete("borders");
+ }
+ propKeys.forEach((propKey) => {
+ log.warn(`Unknown node property ${propKey}`);
+ });
+ }
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const labelRect = (parent, node) => {
+ const { shapeSvg } = labelHelper(parent, node, "label", true);
+ log.trace("Classes = ", node.classes);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const totalWidth = 0;
+ const totalHeight = 0;
+ rect2.attr("width", totalWidth).attr("height", totalHeight);
+ shapeSvg.attr("class", "label edgeLabel");
+ if (node.props) {
+ const propKeys = new Set(Object.keys(node.props));
+ if (node.props.borders) {
+ applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);
+ propKeys.delete("borders");
+ }
+ propKeys.forEach((propKey) => {
+ log.warn(`Unknown node property ${propKey}`);
+ });
+ }
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+function applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) {
+ const strokeDashArray = [];
+ const addBorder = (length) => {
+ strokeDashArray.push(length, 0);
+ };
+ const skipBorder = (length) => {
+ strokeDashArray.push(0, length);
+ };
+ if (borders.includes("t")) {
+ log.debug("add top border");
+ addBorder(totalWidth);
+ } else {
+ skipBorder(totalWidth);
+ }
+ if (borders.includes("r")) {
+ log.debug("add right border");
+ addBorder(totalHeight);
+ } else {
+ skipBorder(totalHeight);
+ }
+ if (borders.includes("b")) {
+ log.debug("add bottom border");
+ addBorder(totalWidth);
+ } else {
+ skipBorder(totalWidth);
+ }
+ if (borders.includes("l")) {
+ log.debug("add left border");
+ addBorder(totalHeight);
+ } else {
+ skipBorder(totalHeight);
+ }
+ rect2.attr("stroke-dasharray", strokeDashArray.join(" "));
+}
+const rectWithTitle = (parent, node) => {
+ let classes;
+ if (!node.classes) {
+ classes = "node default";
+ } else {
+ classes = "node " + node.classes;
+ }
+ const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const innerLine = shapeSvg.insert("line");
+ const label = shapeSvg.insert("g").attr("class", "label");
+ const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;
+ let title = "";
+ if (typeof text2 === "object") {
+ title = text2[0];
+ } else {
+ title = text2;
+ }
+ log.info("Label text abc79", title, text2, typeof text2 === "object");
+ const text = label.node().appendChild(createLabel$1(title, node.labelStyle, true, true));
+ let bbox = { width: 0, height: 0 };
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = text.children[0];
+ const dv = select(text);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ log.info("Text 2", text2);
+ const textRows = text2.slice(1, text2.length);
+ let titleBox = text.getBBox();
+ const descr = label.node().appendChild(
+ createLabel$1(textRows.join ? textRows.join("
") : textRows, node.labelStyle, true, true)
+ );
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = descr.children[0];
+ const dv = select(descr);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ const halfPadding = node.padding / 2;
+ select(descr).attr(
+ "transform",
+ "translate( " + // (titleBox.width - bbox.width) / 2 +
+ (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ", " + (titleBox.height + halfPadding + 5) + ")"
+ );
+ select(text).attr(
+ "transform",
+ "translate( " + // (titleBox.width - bbox.width) / 2 +
+ (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ", " + 0 + ")"
+ );
+ bbox = label.node().getBBox();
+ label.attr(
+ "transform",
+ "translate(" + -bbox.width / 2 + ", " + (-bbox.height / 2 - halfPadding + 3) + ")"
+ );
+ rect2.attr("class", "outer title-state").attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding);
+ innerLine.attr("class", "divider").attr("x1", -bbox.width / 2 - halfPadding).attr("x2", bbox.width / 2 + halfPadding).attr("y1", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr("y2", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const stadium = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const h = bbox.height + node.padding;
+ const w = bbox.width + h / 4 + node.padding;
+ const rect2 = shapeSvg.insert("rect", ":first-child").attr("style", node.style).attr("rx", h / 2).attr("ry", h / 2).attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h);
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const circle = (parent, node) => {
+ const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, void 0, true);
+ const circle2 = shapeSvg.insert("circle", ":first-child");
+ circle2.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding);
+ log.info("Circle main");
+ updateNodeBounds(node, circle2);
+ node.intersect = function(point2) {
+ log.info("Circle intersect", node, bbox.width / 2 + halfPadding, point2);
+ return intersect.circle(node, bbox.width / 2 + halfPadding, point2);
+ };
+ return shapeSvg;
+};
+const doublecircle = (parent, node) => {
+ const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, void 0, true);
+ const gap = 5;
+ const circleGroup = shapeSvg.insert("g", ":first-child");
+ const outerCircle = circleGroup.insert("circle");
+ const innerCircle = circleGroup.insert("circle");
+ outerCircle.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding + gap).attr("width", bbox.width + node.padding + gap * 2).attr("height", bbox.height + node.padding + gap * 2);
+ innerCircle.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding);
+ log.info("DoubleCircle main");
+ updateNodeBounds(node, outerCircle);
+ node.intersect = function(point2) {
+ log.info("DoubleCircle intersect", node, bbox.width / 2 + halfPadding + gap, point2);
+ return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point2);
+ };
+ return shapeSvg;
+};
+const subroutine = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: 0, y: 0 },
+ { x: w, y: 0 },
+ { x: w, y: -h },
+ { x: 0, y: -h },
+ { x: 0, y: 0 },
+ { x: -8, y: 0 },
+ { x: w + 8, y: 0 },
+ { x: w + 8, y: -h },
+ { x: -8, y: -h },
+ { x: -8, y: 0 }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const start = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id);
+ const circle2 = shapeSvg.insert("circle", ":first-child");
+ circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
+ updateNodeBounds(node, circle2);
+ node.intersect = function(point2) {
+ return intersect.circle(node, 7, point2);
+ };
+ return shapeSvg;
+};
+const forkJoin = (parent, node, dir) => {
+ const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id);
+ let width = 70;
+ let height = 10;
+ if (dir === "LR") {
+ width = 10;
+ height = 70;
+ }
+ const shape = shapeSvg.append("rect").attr("x", -1 * width / 2).attr("y", -1 * height / 2).attr("width", width).attr("height", height).attr("class", "fork-join");
+ updateNodeBounds(node, shape);
+ node.height = node.height + node.padding / 2;
+ node.width = node.width + node.padding / 2;
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const end = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id);
+ const innerCircle = shapeSvg.insert("circle", ":first-child");
+ const circle2 = shapeSvg.insert("circle", ":first-child");
+ circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
+ innerCircle.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10);
+ updateNodeBounds(node, circle2);
+ node.intersect = function(point2) {
+ return intersect.circle(node, 7, point2);
+ };
+ return shapeSvg;
+};
+const class_box = (parent, node) => {
+ const halfPadding = node.padding / 2;
+ const rowPadding = 4;
+ const lineHeight = 8;
+ let classes;
+ if (!node.classes) {
+ classes = "node default";
+ } else {
+ classes = "node " + node.classes;
+ }
+ const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const topLine = shapeSvg.insert("line");
+ const bottomLine = shapeSvg.insert("line");
+ let maxWidth = 0;
+ let maxHeight = rowPadding;
+ const labelContainer = shapeSvg.insert("g").attr("class", "label");
+ let verticalPos = 0;
+ const hasInterface = node.classData.annotations && node.classData.annotations[0];
+ const interfaceLabelText = node.classData.annotations[0] ? "«" + node.classData.annotations[0] + "»" : "";
+ const interfaceLabel = labelContainer.node().appendChild(createLabel$1(interfaceLabelText, node.labelStyle, true, true));
+ let interfaceBBox = interfaceLabel.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = interfaceLabel.children[0];
+ const dv = select(interfaceLabel);
+ interfaceBBox = div.getBoundingClientRect();
+ dv.attr("width", interfaceBBox.width);
+ dv.attr("height", interfaceBBox.height);
+ }
+ if (node.classData.annotations[0]) {
+ maxHeight += interfaceBBox.height + rowPadding;
+ maxWidth += interfaceBBox.width;
+ }
+ let classTitleString = node.classData.label;
+ if (node.classData.type !== void 0 && node.classData.type !== "") {
+ if (getConfig().flowchart.htmlLabels) {
+ classTitleString += "<" + node.classData.type + ">";
+ } else {
+ classTitleString += "<" + node.classData.type + ">";
+ }
+ }
+ const classTitleLabel = labelContainer.node().appendChild(createLabel$1(classTitleString, node.labelStyle, true, true));
+ select(classTitleLabel).attr("class", "classTitle");
+ let classTitleBBox = classTitleLabel.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = classTitleLabel.children[0];
+ const dv = select(classTitleLabel);
+ classTitleBBox = div.getBoundingClientRect();
+ dv.attr("width", classTitleBBox.width);
+ dv.attr("height", classTitleBBox.height);
+ }
+ maxHeight += classTitleBBox.height + rowPadding;
+ if (classTitleBBox.width > maxWidth) {
+ maxWidth = classTitleBBox.width;
+ }
+ const classAttributes = [];
+ node.classData.members.forEach((str) => {
+ const parsedInfo = parseMember(str);
+ let parsedText = parsedInfo.displayText;
+ if (getConfig().flowchart.htmlLabels) {
+ parsedText = parsedText.replace(//g, ">");
+ }
+ const lbl = labelContainer.node().appendChild(
+ createLabel$1(
+ parsedText,
+ parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,
+ true,
+ true
+ )
+ );
+ let bbox = lbl.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = lbl.children[0];
+ const dv = select(lbl);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ if (bbox.width > maxWidth) {
+ maxWidth = bbox.width;
+ }
+ maxHeight += bbox.height + rowPadding;
+ classAttributes.push(lbl);
+ });
+ maxHeight += lineHeight;
+ const classMethods = [];
+ node.classData.methods.forEach((str) => {
+ const parsedInfo = parseMember(str);
+ let displayText = parsedInfo.displayText;
+ if (getConfig().flowchart.htmlLabels) {
+ displayText = displayText.replace(//g, ">");
+ }
+ const lbl = labelContainer.node().appendChild(
+ createLabel$1(
+ displayText,
+ parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,
+ true,
+ true
+ )
+ );
+ let bbox = lbl.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = lbl.children[0];
+ const dv = select(lbl);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ if (bbox.width > maxWidth) {
+ maxWidth = bbox.width;
+ }
+ maxHeight += bbox.height + rowPadding;
+ classMethods.push(lbl);
+ });
+ maxHeight += lineHeight;
+ if (hasInterface) {
+ let diffX2 = (maxWidth - interfaceBBox.width) / 2;
+ select(interfaceLabel).attr(
+ "transform",
+ "translate( " + (-1 * maxWidth / 2 + diffX2) + ", " + -1 * maxHeight / 2 + ")"
+ );
+ verticalPos = interfaceBBox.height + rowPadding;
+ }
+ let diffX = (maxWidth - classTitleBBox.width) / 2;
+ select(classTitleLabel).attr(
+ "transform",
+ "translate( " + (-1 * maxWidth / 2 + diffX) + ", " + (-1 * maxHeight / 2 + verticalPos) + ")"
+ );
+ verticalPos += classTitleBBox.height + rowPadding;
+ topLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
+ verticalPos += lineHeight;
+ classAttributes.forEach((lbl) => {
+ select(lbl).attr(
+ "transform",
+ "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + ")"
+ );
+ verticalPos += classTitleBBox.height + rowPadding;
+ });
+ verticalPos += lineHeight;
+ bottomLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
+ verticalPos += lineHeight;
+ classMethods.forEach((lbl) => {
+ select(lbl).attr(
+ "transform",
+ "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos) + ")"
+ );
+ verticalPos += classTitleBBox.height + rowPadding;
+ });
+ rect2.attr("class", "outer title-state").attr("x", -maxWidth / 2 - halfPadding).attr("y", -(maxHeight / 2) - halfPadding).attr("width", maxWidth + node.padding).attr("height", maxHeight + node.padding);
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const shapes = {
+ rhombus: question,
+ question,
+ rect,
+ labelRect,
+ rectWithTitle,
+ choice,
+ circle,
+ doublecircle,
+ stadium,
+ hexagon,
+ rect_left_inv_arrow,
+ lean_right,
+ lean_left,
+ trapezoid,
+ inv_trapezoid,
+ rect_right_inv_arrow,
+ cylinder,
+ start,
+ end,
+ note: note$1,
+ subroutine,
+ fork: forkJoin,
+ join: forkJoin,
+ class_box
+};
+let nodeElems = {};
+const insertNode = (elem, node, dir) => {
+ let newEl;
+ let el;
+ if (node.link) {
+ let target;
+ if (getConfig().securityLevel === "sandbox") {
+ target = "_top";
+ } else if (node.linkTarget) {
+ target = node.linkTarget || "_blank";
+ }
+ newEl = elem.insert("svg:a").attr("xlink:href", node.link).attr("target", target);
+ el = shapes[node.shape](newEl, node, dir);
+ } else {
+ el = shapes[node.shape](elem, node, dir);
+ newEl = el;
+ }
+ if (node.tooltip) {
+ el.attr("title", node.tooltip);
+ }
+ if (node.class) {
+ el.attr("class", "node default " + node.class);
+ }
+ nodeElems[node.id] = newEl;
+ if (node.haveCallback) {
+ nodeElems[node.id].attr("class", nodeElems[node.id].attr("class") + " clickable");
+ }
+ return newEl;
+};
+const setNodeElem = (elem, node) => {
+ nodeElems[node.id] = elem;
+};
+const clear$1 = () => {
+ nodeElems = {};
+};
+const positionNode = (node) => {
+ const el = nodeElems[node.id];
+ log.trace(
+ "Transforming node",
+ node.diff,
+ node,
+ "translate(" + (node.x - node.width / 2 - 5) + ", " + node.width / 2 + ")"
+ );
+ const padding = 8;
+ const diff = node.diff || 0;
+ if (node.clusterNode) {
+ el.attr(
+ "transform",
+ "translate(" + (node.x + diff - node.width / 2) + ", " + (node.y - node.height / 2 - padding) + ")"
+ );
+ } else {
+ el.attr("transform", "translate(" + node.x + ", " + node.y + ")");
+ }
+ return diff;
+};
+let edgeLabels = {};
+let terminalLabels = {};
+const clear = () => {
+ edgeLabels = {};
+ terminalLabels = {};
+};
+const insertEdgeLabel = (elem, edge) => {
+ const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);
+ const labelElement = edge.labelType === "markdown" ? createText(elem, edge.label, {
+ style: edge.labelStyle,
+ useHtmlLabels,
+ addSvgBackground: true
+ }) : createLabel$1(edge.label, edge.labelStyle);
+ log.info("abc82", edge, edge.labelType);
+ const edgeLabel = elem.insert("g").attr("class", "edgeLabel");
+ const label = edgeLabel.insert("g").attr("class", "label");
+ label.node().appendChild(labelElement);
+ let bbox = labelElement.getBBox();
+ if (useHtmlLabels) {
+ const div = labelElement.children[0];
+ const dv = select(labelElement);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ edgeLabels[edge.id] = edgeLabel;
+ edge.width = bbox.width;
+ edge.height = bbox.height;
+ let fo;
+ if (edge.startLabelLeft) {
+ const startLabelElement = createLabel$1(edge.startLabelLeft, edge.labelStyle);
+ const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
+ const inner = startEdgeLabelLeft.insert("g").attr("class", "inner");
+ fo = inner.node().appendChild(startLabelElement);
+ const slBox = startLabelElement.getBBox();
+ inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ if (!terminalLabels[edge.id]) {
+ terminalLabels[edge.id] = {};
+ }
+ terminalLabels[edge.id].startLeft = startEdgeLabelLeft;
+ setTerminalWidth(fo, edge.startLabelLeft);
+ }
+ if (edge.startLabelRight) {
+ const startLabelElement = createLabel$1(edge.startLabelRight, edge.labelStyle);
+ const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
+ const inner = startEdgeLabelRight.insert("g").attr("class", "inner");
+ fo = startEdgeLabelRight.node().appendChild(startLabelElement);
+ inner.node().appendChild(startLabelElement);
+ const slBox = startLabelElement.getBBox();
+ inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ if (!terminalLabels[edge.id]) {
+ terminalLabels[edge.id] = {};
+ }
+ terminalLabels[edge.id].startRight = startEdgeLabelRight;
+ setTerminalWidth(fo, edge.startLabelRight);
+ }
+ if (edge.endLabelLeft) {
+ const endLabelElement = createLabel$1(edge.endLabelLeft, edge.labelStyle);
+ const endEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
+ const inner = endEdgeLabelLeft.insert("g").attr("class", "inner");
+ fo = inner.node().appendChild(endLabelElement);
+ const slBox = endLabelElement.getBBox();
+ inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ endEdgeLabelLeft.node().appendChild(endLabelElement);
+ if (!terminalLabels[edge.id]) {
+ terminalLabels[edge.id] = {};
+ }
+ terminalLabels[edge.id].endLeft = endEdgeLabelLeft;
+ setTerminalWidth(fo, edge.endLabelLeft);
+ }
+ if (edge.endLabelRight) {
+ const endLabelElement = createLabel$1(edge.endLabelRight, edge.labelStyle);
+ const endEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
+ const inner = endEdgeLabelRight.insert("g").attr("class", "inner");
+ fo = inner.node().appendChild(endLabelElement);
+ const slBox = endLabelElement.getBBox();
+ inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ endEdgeLabelRight.node().appendChild(endLabelElement);
+ if (!terminalLabels[edge.id]) {
+ terminalLabels[edge.id] = {};
+ }
+ terminalLabels[edge.id].endRight = endEdgeLabelRight;
+ setTerminalWidth(fo, edge.endLabelRight);
+ }
+ return labelElement;
+};
+function setTerminalWidth(fo, value) {
+ if (getConfig().flowchart.htmlLabels && fo) {
+ fo.style.width = value.length * 9 + "px";
+ fo.style.height = "12px";
+ }
+}
+const positionEdgeLabel = (edge, paths) => {
+ log.info("Moving label abc78 ", edge.id, edge.label, edgeLabels[edge.id]);
+ let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;
+ if (edge.label) {
+ const el = edgeLabels[edge.id];
+ let x = edge.x;
+ let y = edge.y;
+ if (path) {
+ const pos = utils.calcLabelPosition(path);
+ log.info(
+ "Moving label " + edge.label + " from (",
+ x,
+ ",",
+ y,
+ ") to (",
+ pos.x,
+ ",",
+ pos.y,
+ ") abc78"
+ );
+ if (paths.updatedPath) {
+ x = pos.x;
+ y = pos.y;
+ }
+ }
+ el.attr("transform", "translate(" + x + ", " + y + ")");
+ }
+ if (edge.startLabelLeft) {
+ const el = terminalLabels[edge.id].startLeft;
+ let x = edge.x;
+ let y = edge.y;
+ if (path) {
+ const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, "start_left", path);
+ x = pos.x;
+ y = pos.y;
+ }
+ el.attr("transform", "translate(" + x + ", " + y + ")");
+ }
+ if (edge.startLabelRight) {
+ const el = terminalLabels[edge.id].startRight;
+ let x = edge.x;
+ let y = edge.y;
+ if (path) {
+ const pos = utils.calcTerminalLabelPosition(
+ edge.arrowTypeStart ? 10 : 0,
+ "start_right",
+ path
+ );
+ x = pos.x;
+ y = pos.y;
+ }
+ el.attr("transform", "translate(" + x + ", " + y + ")");
+ }
+ if (edge.endLabelLeft) {
+ const el = terminalLabels[edge.id].endLeft;
+ let x = edge.x;
+ let y = edge.y;
+ if (path) {
+ const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_left", path);
+ x = pos.x;
+ y = pos.y;
+ }
+ el.attr("transform", "translate(" + x + ", " + y + ")");
+ }
+ if (edge.endLabelRight) {
+ const el = terminalLabels[edge.id].endRight;
+ let x = edge.x;
+ let y = edge.y;
+ if (path) {
+ const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_right", path);
+ x = pos.x;
+ y = pos.y;
+ }
+ el.attr("transform", "translate(" + x + ", " + y + ")");
+ }
+};
+const outsideNode = (node, point2) => {
+ const x = node.x;
+ const y = node.y;
+ const dx = Math.abs(point2.x - x);
+ const dy = Math.abs(point2.y - y);
+ const w = node.width / 2;
+ const h = node.height / 2;
+ if (dx >= w || dy >= h) {
+ return true;
+ }
+ return false;
+};
+const intersection = (node, outsidePoint, insidePoint) => {
+ log.warn(`intersection calc abc89:
+ outsidePoint: ${JSON.stringify(outsidePoint)}
+ insidePoint : ${JSON.stringify(insidePoint)}
+ node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);
+ const x = node.x;
+ const y = node.y;
+ const dx = Math.abs(x - insidePoint.x);
+ const w = node.width / 2;
+ let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;
+ const h = node.height / 2;
+ const Q = Math.abs(outsidePoint.y - insidePoint.y);
+ const R = Math.abs(outsidePoint.x - insidePoint.x);
+ if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {
+ let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;
+ r = R * q / Q;
+ const res = {
+ x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,
+ y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q
+ };
+ if (r === 0) {
+ res.x = outsidePoint.x;
+ res.y = outsidePoint.y;
+ }
+ if (R === 0) {
+ res.x = outsidePoint.x;
+ }
+ if (Q === 0) {
+ res.y = outsidePoint.y;
+ }
+ log.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);
+ return res;
+ } else {
+ if (insidePoint.x < outsidePoint.x) {
+ r = outsidePoint.x - w - x;
+ } else {
+ r = x - w - outsidePoint.x;
+ }
+ let q = Q * r / R;
+ let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;
+ let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;
+ log.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });
+ if (r === 0) {
+ _x = outsidePoint.x;
+ _y = outsidePoint.y;
+ }
+ if (R === 0) {
+ _x = outsidePoint.x;
+ }
+ if (Q === 0) {
+ _y = outsidePoint.y;
+ }
+ return { x: _x, y: _y };
+ }
+};
+const cutPathAtIntersect = (_points, boundryNode) => {
+ log.warn("abc88 cutPathAtIntersect", _points, boundryNode);
+ let points = [];
+ let lastPointOutside = _points[0];
+ let isInside = false;
+ _points.forEach((point2) => {
+ log.info("abc88 checking point", point2, boundryNode);
+ if (!outsideNode(boundryNode, point2) && !isInside) {
+ const inter = intersection(boundryNode, lastPointOutside, point2);
+ log.warn("abc88 inside", point2, lastPointOutside, inter);
+ log.warn("abc88 intersection", inter);
+ let pointPresent = false;
+ points.forEach((p) => {
+ pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;
+ });
+ if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {
+ points.push(inter);
+ } else {
+ log.warn("abc88 no intersect", inter, points);
+ }
+ isInside = true;
+ } else {
+ log.warn("abc88 outside", point2, lastPointOutside);
+ lastPointOutside = point2;
+ if (!isInside) {
+ points.push(point2);
+ }
+ }
+ });
+ log.warn("abc88 returning points", points);
+ return points;
+};
+const insertEdge = function(elem, e, edge, clusterDb, diagramType, graph) {
+ let points = edge.points;
+ let pointsHasChanged = false;
+ const tail = graph.node(e.v);
+ var head = graph.node(e.w);
+ log.info("abc88 InsertEdge: ", edge);
+ if (head.intersect && tail.intersect) {
+ points = points.slice(1, edge.points.length - 1);
+ points.unshift(tail.intersect(points[0]));
+ log.info(
+ "Last point",
+ points[points.length - 1],
+ head,
+ head.intersect(points[points.length - 1])
+ );
+ points.push(head.intersect(points[points.length - 1]));
+ }
+ if (edge.toCluster) {
+ log.info("to cluster abc88", clusterDb[edge.toCluster]);
+ points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);
+ pointsHasChanged = true;
+ }
+ if (edge.fromCluster) {
+ log.info("from cluster abc88", clusterDb[edge.fromCluster]);
+ points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();
+ pointsHasChanged = true;
+ }
+ const lineData = points.filter((p) => !Number.isNaN(p.y));
+ let curve;
+ if (diagramType === "graph" || diagramType === "flowchart") {
+ curve = edge.curve || curveBasis;
+ } else {
+ curve = curveBasis;
+ }
+ const lineFunction = line().x(function(d) {
+ return d.x;
+ }).y(function(d) {
+ return d.y;
+ }).curve(curve);
+ let strokeClasses;
+ switch (edge.thickness) {
+ case "normal":
+ strokeClasses = "edge-thickness-normal";
+ break;
+ case "thick":
+ strokeClasses = "edge-thickness-thick";
+ break;
+ case "invisible":
+ strokeClasses = "edge-thickness-thick";
+ break;
+ default:
+ strokeClasses = "";
+ }
+ switch (edge.pattern) {
+ case "solid":
+ strokeClasses += " edge-pattern-solid";
+ break;
+ case "dotted":
+ strokeClasses += " edge-pattern-dotted";
+ break;
+ case "dashed":
+ strokeClasses += " edge-pattern-dashed";
+ break;
+ }
+ const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edge.style);
+ let url = "";
+ if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ log.info("arrowTypeStart", edge.arrowTypeStart);
+ log.info("arrowTypeEnd", edge.arrowTypeEnd);
+ switch (edge.arrowTypeStart) {
+ case "arrow_cross":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-crossStart)");
+ break;
+ case "arrow_point":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-pointStart)");
+ break;
+ case "arrow_barb":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-barbStart)");
+ break;
+ case "arrow_circle":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-circleStart)");
+ break;
+ case "aggregation":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-aggregationStart)");
+ break;
+ case "extension":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-extensionStart)");
+ break;
+ case "composition":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-compositionStart)");
+ break;
+ case "dependency":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-dependencyStart)");
+ break;
+ case "lollipop":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-lollipopStart)");
+ break;
+ }
+ switch (edge.arrowTypeEnd) {
+ case "arrow_cross":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-crossEnd)");
+ break;
+ case "arrow_point":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-pointEnd)");
+ break;
+ case "arrow_barb":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-barbEnd)");
+ break;
+ case "arrow_circle":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-circleEnd)");
+ break;
+ case "aggregation":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-aggregationEnd)");
+ break;
+ case "extension":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-extensionEnd)");
+ break;
+ case "composition":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-compositionEnd)");
+ break;
+ case "dependency":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-dependencyEnd)");
+ break;
+ case "lollipop":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-lollipopEnd)");
+ break;
+ }
+ let paths = {};
+ if (pointsHasChanged) {
+ paths.updatedPath = points;
+ }
+ paths.originalPath = edge.points;
+ return paths;
+};
+export {
+ insertMarkers$1 as a,
+ clear$1 as b,
+ createLabel$1 as c,
+ clear as d,
+ insertNode as e,
+ insertEdgeLabel as f,
+ insertEdge as g,
+ positionEdgeLabel as h,
+ intersectRect$1 as i,
+ labelHelper as l,
+ positionNode as p,
+ setNodeElem as s,
+ updateNodeBounds as u
+};
+//# sourceMappingURL=edges-17d4be60.js.map
diff --git a/scopegraphs-render-docs/doc/js/edges-2e77835f.js b/scopegraphs-render-docs/doc/js/edges-2e77835f.js
new file mode 100644
index 0000000..ca3f09b
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/edges-2e77835f.js
@@ -0,0 +1,1449 @@
+import { l as log, k as evaluate, g as getConfig, b as sanitizeText } from "./commonDb-573409be.js";
+import { select, curveBasis, line } from "d3";
+import { c as createText } from "./createText-1f5f8f92.js";
+import { d as decodeEntities } from "./mermaidAPI-3ae0f2f0.js";
+import { p as parseMember } from "./svgDraw-2526cba0.js";
+import { u as utils } from "./utils-d622194a.js";
+const insertMarkers = (elem, markerArray, type, id) => {
+ markerArray.forEach((markerName) => {
+ markers[markerName](elem, type, id);
+ });
+};
+const extension = (elem, type, id) => {
+ log.trace("Making markers for ", id);
+ elem.append("defs").append("marker").attr("id", type + "-extensionStart").attr("class", "marker extension " + type).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");
+ elem.append("defs").append("marker").attr("id", type + "-extensionEnd").attr("class", "marker extension " + type).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");
+};
+const composition = (elem, type) => {
+ elem.append("defs").append("marker").attr("id", type + "-compositionStart").attr("class", "marker composition " + type).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");
+ elem.append("defs").append("marker").attr("id", type + "-compositionEnd").attr("class", "marker composition " + type).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");
+};
+const aggregation = (elem, type) => {
+ elem.append("defs").append("marker").attr("id", type + "-aggregationStart").attr("class", "marker aggregation " + type).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");
+ elem.append("defs").append("marker").attr("id", type + "-aggregationEnd").attr("class", "marker aggregation " + type).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");
+};
+const dependency = (elem, type) => {
+ elem.append("defs").append("marker").attr("id", type + "-dependencyStart").attr("class", "marker dependency " + type).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");
+ elem.append("defs").append("marker").attr("id", type + "-dependencyEnd").attr("class", "marker dependency " + type).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");
+};
+const lollipop = (elem, type) => {
+ elem.append("defs").append("marker").attr("id", type + "-lollipopStart").attr("class", "marker lollipop " + type).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "white").attr("cx", 6).attr("cy", 7).attr("r", 6);
+};
+const point = (elem, type) => {
+ elem.append("marker").attr("id", type + "-pointEnd").attr("class", "marker " + type).attr("viewBox", "0 0 12 20").attr("refX", 10).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", type + "-pointStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 0).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+};
+const circle$1 = (elem, type) => {
+ elem.append("marker").attr("id", type + "-circleEnd").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", type + "-circleStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+};
+const cross = (elem, type) => {
+ elem.append("marker").attr("id", type + "-crossEnd").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", type + "-crossStart").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
+};
+const barb = (elem, type) => {
+ elem.append("defs").append("marker").attr("id", type + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "strokeWidth").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
+};
+const markers = {
+ extension,
+ composition,
+ aggregation,
+ dependency,
+ lollipop,
+ point,
+ circle: circle$1,
+ cross,
+ barb
+};
+const insertMarkers$1 = insertMarkers;
+function applyStyle(dom, styleFn) {
+ if (styleFn) {
+ dom.attr("style", styleFn);
+ }
+}
+function addHtmlLabel(node) {
+ const fo = select(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject"));
+ const div = fo.append("xhtml:div");
+ const label = node.label;
+ const labelClass = node.isNode ? "nodeLabel" : "edgeLabel";
+ div.html(
+ '" + label + ""
+ );
+ applyStyle(div, node.labelStyle);
+ div.style("display", "inline-block");
+ div.style("white-space", "nowrap");
+ div.attr("xmlns", "http://www.w3.org/1999/xhtml");
+ return fo.node();
+}
+const createLabel = (_vertexText, style, isTitle, isNode) => {
+ let vertexText = _vertexText || "";
+ if (typeof vertexText === "object") {
+ vertexText = vertexText[0];
+ }
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ vertexText = vertexText.replace(/\\n|\n/g, "
");
+ log.info("vertexText" + vertexText);
+ const node = {
+ isNode,
+ label: decodeEntities(vertexText).replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s) => ``
+ ),
+ labelStyle: style.replace("fill:", "color:")
+ };
+ let vertexNode = addHtmlLabel(node);
+ return vertexNode;
+ } else {
+ const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("style", style.replace("color:", "fill:"));
+ let rows = [];
+ if (typeof vertexText === "string") {
+ rows = vertexText.split(/\\n|\n|
/gi);
+ } else if (Array.isArray(vertexText)) {
+ rows = vertexText;
+ } else {
+ rows = [];
+ }
+ for (const row of rows) {
+ const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
+ tspan.setAttribute("dy", "1em");
+ tspan.setAttribute("x", "0");
+ if (isTitle) {
+ tspan.setAttribute("class", "title-row");
+ } else {
+ tspan.setAttribute("class", "row");
+ }
+ tspan.textContent = row.trim();
+ svgLabel.appendChild(tspan);
+ }
+ return svgLabel;
+ }
+};
+const createLabel$1 = createLabel;
+const labelHelper = (parent, node, _classes, isNode) => {
+ let classes;
+ const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig().flowchart.htmlLabels);
+ if (!_classes) {
+ classes = "node default";
+ } else {
+ classes = _classes;
+ }
+ const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id);
+ const label = shapeSvg.insert("g").attr("class", "label").attr("style", node.labelStyle);
+ let labelText;
+ if (node.labelText === void 0) {
+ labelText = "";
+ } else {
+ labelText = typeof node.labelText === "string" ? node.labelText : node.labelText[0];
+ }
+ const textNode = label.node();
+ let text;
+ if (node.labelType === "markdown") {
+ text = createText(label, sanitizeText(decodeEntities(labelText), getConfig()), {
+ useHtmlLabels,
+ width: node.width || getConfig().flowchart.wrappingWidth,
+ classes: "markdown-node-label"
+ });
+ } else {
+ text = textNode.appendChild(
+ createLabel$1(
+ sanitizeText(decodeEntities(labelText), getConfig()),
+ node.labelStyle,
+ false,
+ isNode
+ )
+ );
+ }
+ let bbox = text.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = text.children[0];
+ const dv = select(text);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ const halfPadding = node.padding / 2;
+ if (useHtmlLabels) {
+ label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ } else {
+ label.attr("transform", "translate(" + 0 + ", " + -bbox.height / 2 + ")");
+ }
+ if (node.centerLabel) {
+ label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ }
+ label.insert("rect", ":first-child");
+ return { shapeSvg, bbox, halfPadding, label };
+};
+const updateNodeBounds = (node, element) => {
+ const bbox = element.node().getBBox();
+ node.width = bbox.width;
+ node.height = bbox.height;
+};
+function insertPolygonShape(parent, w, h, points) {
+ return parent.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d) {
+ return d.x + "," + d.y;
+ }).join(" ")
+ ).attr("class", "label-container").attr("transform", "translate(" + -w / 2 + "," + h / 2 + ")");
+}
+function intersectNode(node, point2) {
+ return node.intersect(point2);
+}
+function intersectEllipse(node, rx, ry, point2) {
+ var cx = node.x;
+ var cy = node.y;
+ var px = cx - point2.x;
+ var py = cy - point2.y;
+ var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
+ var dx = Math.abs(rx * ry * px / det);
+ if (point2.x < cx) {
+ dx = -dx;
+ }
+ var dy = Math.abs(rx * ry * py / det);
+ if (point2.y < cy) {
+ dy = -dy;
+ }
+ return { x: cx + dx, y: cy + dy };
+}
+function intersectCircle(node, rx, point2) {
+ return intersectEllipse(node, rx, rx, point2);
+}
+function intersectLine(p1, p2, q1, q2) {
+ var a1, a2, b1, b2, c1, c2;
+ var r1, r2, r3, r4;
+ var denom, offset, num;
+ var x, y;
+ a1 = p2.y - p1.y;
+ b1 = p1.x - p2.x;
+ c1 = p2.x * p1.y - p1.x * p2.y;
+ r3 = a1 * q1.x + b1 * q1.y + c1;
+ r4 = a1 * q2.x + b1 * q2.y + c1;
+ if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {
+ return;
+ }
+ a2 = q2.y - q1.y;
+ b2 = q1.x - q2.x;
+ c2 = q2.x * q1.y - q1.x * q2.y;
+ r1 = a2 * p1.x + b2 * p1.y + c2;
+ r2 = a2 * p2.x + b2 * p2.y + c2;
+ if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {
+ return;
+ }
+ denom = a1 * b2 - a2 * b1;
+ if (denom === 0) {
+ return;
+ }
+ offset = Math.abs(denom / 2);
+ num = b1 * c2 - b2 * c1;
+ x = num < 0 ? (num - offset) / denom : (num + offset) / denom;
+ num = a2 * c1 - a1 * c2;
+ y = num < 0 ? (num - offset) / denom : (num + offset) / denom;
+ return { x, y };
+}
+function sameSign(r1, r2) {
+ return r1 * r2 > 0;
+}
+function intersectPolygon(node, polyPoints, point2) {
+ var x1 = node.x;
+ var y1 = node.y;
+ var intersections = [];
+ var minX = Number.POSITIVE_INFINITY;
+ var minY = Number.POSITIVE_INFINITY;
+ if (typeof polyPoints.forEach === "function") {
+ polyPoints.forEach(function(entry) {
+ minX = Math.min(minX, entry.x);
+ minY = Math.min(minY, entry.y);
+ });
+ } else {
+ minX = Math.min(minX, polyPoints.x);
+ minY = Math.min(minY, polyPoints.y);
+ }
+ var left = x1 - node.width / 2 - minX;
+ var top = y1 - node.height / 2 - minY;
+ for (var i = 0; i < polyPoints.length; i++) {
+ var p1 = polyPoints[i];
+ var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];
+ var intersect2 = intersectLine(
+ node,
+ point2,
+ { x: left + p1.x, y: top + p1.y },
+ { x: left + p2.x, y: top + p2.y }
+ );
+ if (intersect2) {
+ intersections.push(intersect2);
+ }
+ }
+ if (!intersections.length) {
+ return node;
+ }
+ if (intersections.length > 1) {
+ intersections.sort(function(p, q) {
+ var pdx = p.x - point2.x;
+ var pdy = p.y - point2.y;
+ var distp = Math.sqrt(pdx * pdx + pdy * pdy);
+ var qdx = q.x - point2.x;
+ var qdy = q.y - point2.y;
+ var distq = Math.sqrt(qdx * qdx + qdy * qdy);
+ return distp < distq ? -1 : distp === distq ? 0 : 1;
+ });
+ }
+ return intersections[0];
+}
+const intersectRect = (node, point2) => {
+ var x = node.x;
+ var y = node.y;
+ var dx = point2.x - x;
+ var dy = point2.y - y;
+ var w = node.width / 2;
+ var h = node.height / 2;
+ var sx, sy;
+ if (Math.abs(dy) * w > Math.abs(dx) * h) {
+ if (dy < 0) {
+ h = -h;
+ }
+ sx = dy === 0 ? 0 : h * dx / dy;
+ sy = h;
+ } else {
+ if (dx < 0) {
+ w = -w;
+ }
+ sx = w;
+ sy = dx === 0 ? 0 : w * dy / dx;
+ }
+ return { x: x + sx, y: y + sy };
+};
+const intersectRect$1 = intersectRect;
+const intersect = {
+ node: intersectNode,
+ circle: intersectCircle,
+ ellipse: intersectEllipse,
+ polygon: intersectPolygon,
+ rect: intersectRect$1
+};
+const note = (parent, node) => {
+ const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart.htmlLabels;
+ if (!useHtmlLabels) {
+ node.centerLabel = true;
+ }
+ const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, "node " + node.classes, true);
+ log.info("Classes = ", node.classes);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ rect2.attr("rx", node.rx).attr("ry", node.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding);
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const note$1 = note;
+const question = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const s = w + h;
+ const points = [
+ { x: s / 2, y: 0 },
+ { x: s, y: -s / 2 },
+ { x: s / 2, y: -s },
+ { x: 0, y: -s / 2 }
+ ];
+ log.info("Question main (Circle)");
+ const questionElem = insertPolygonShape(shapeSvg, s, s, points);
+ questionElem.attr("style", node.style);
+ updateNodeBounds(node, questionElem);
+ node.intersect = function(point2) {
+ log.warn("Intersect called");
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const choice = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id);
+ const s = 28;
+ const points = [
+ { x: 0, y: s / 2 },
+ { x: s / 2, y: 0 },
+ { x: 0, y: -s / 2 },
+ { x: -s / 2, y: 0 }
+ ];
+ const choice2 = shapeSvg.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d) {
+ return d.x + "," + d.y;
+ }).join(" ")
+ );
+ choice2.attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28);
+ node.width = 28;
+ node.height = 28;
+ node.intersect = function(point2) {
+ return intersect.circle(node, 14, point2);
+ };
+ return shapeSvg;
+};
+const hexagon = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const f = 4;
+ const h = bbox.height + node.padding;
+ const m = h / f;
+ const w = bbox.width + 2 * m + node.padding;
+ const points = [
+ { x: m, y: 0 },
+ { x: w - m, y: 0 },
+ { x: w, y: -h / 2 },
+ { x: w - m, y: -h },
+ { x: m, y: -h },
+ { x: 0, y: -h / 2 }
+ ];
+ const hex = insertPolygonShape(shapeSvg, w, h, points);
+ hex.attr("style", node.style);
+ updateNodeBounds(node, hex);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const rect_left_inv_arrow = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: -h / 2, y: 0 },
+ { x: w, y: 0 },
+ { x: w, y: -h },
+ { x: -h / 2, y: -h },
+ { x: 0, y: -h / 2 }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ node.width = w + h;
+ node.height = h;
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const lean_right = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: -2 * h / 6, y: 0 },
+ { x: w - h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: -h },
+ { x: h / 6, y: -h }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const lean_left = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: 2 * h / 6, y: 0 },
+ { x: w + h / 6, y: 0 },
+ { x: w - 2 * h / 6, y: -h },
+ { x: -h / 6, y: -h }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const trapezoid = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: -2 * h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: 0 },
+ { x: w - h / 6, y: -h },
+ { x: h / 6, y: -h }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const inv_trapezoid = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: h / 6, y: 0 },
+ { x: w - h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: -h },
+ { x: -2 * h / 6, y: -h }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const rect_right_inv_arrow = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: 0, y: 0 },
+ { x: w + h / 2, y: 0 },
+ { x: w, y: -h / 2 },
+ { x: w + h / 2, y: -h },
+ { x: 0, y: -h }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const cylinder = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const rx = w / 2;
+ const ry = rx / (2.5 + w / 50);
+ const h = bbox.height + ry + node.padding;
+ const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 a " + rx + "," + ry + " 0,0,0 " + -w + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 l 0," + -h;
+ const el = shapeSvg.attr("label-offset-y", ry).insert("path", ":first-child").attr("style", node.style).attr("d", shape).attr("transform", "translate(" + -w / 2 + "," + -(h / 2 + ry) + ")");
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ const pos = intersect.rect(node, point2);
+ const x = pos.x - node.x;
+ if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {
+ let y = ry * ry * (1 - x * x / (rx * rx));
+ if (y != 0) {
+ y = Math.sqrt(y);
+ }
+ y = ry - y;
+ if (point2.y - node.y > 0) {
+ y = -y;
+ }
+ pos.y += y;
+ }
+ return pos;
+ };
+ return shapeSvg;
+};
+const rect = (parent, node) => {
+ const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, "node " + node.classes, true);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const totalWidth = bbox.width + node.padding;
+ const totalHeight = bbox.height + node.padding;
+ rect2.attr("class", "basic label-container").attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", totalWidth).attr("height", totalHeight);
+ if (node.props) {
+ const propKeys = new Set(Object.keys(node.props));
+ if (node.props.borders) {
+ applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);
+ propKeys.delete("borders");
+ }
+ propKeys.forEach((propKey) => {
+ log.warn(`Unknown node property ${propKey}`);
+ });
+ }
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const labelRect = (parent, node) => {
+ const { shapeSvg } = labelHelper(parent, node, "label", true);
+ log.trace("Classes = ", node.classes);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const totalWidth = 0;
+ const totalHeight = 0;
+ rect2.attr("width", totalWidth).attr("height", totalHeight);
+ shapeSvg.attr("class", "label edgeLabel");
+ if (node.props) {
+ const propKeys = new Set(Object.keys(node.props));
+ if (node.props.borders) {
+ applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);
+ propKeys.delete("borders");
+ }
+ propKeys.forEach((propKey) => {
+ log.warn(`Unknown node property ${propKey}`);
+ });
+ }
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+function applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) {
+ const strokeDashArray = [];
+ const addBorder = (length) => {
+ strokeDashArray.push(length, 0);
+ };
+ const skipBorder = (length) => {
+ strokeDashArray.push(0, length);
+ };
+ if (borders.includes("t")) {
+ log.debug("add top border");
+ addBorder(totalWidth);
+ } else {
+ skipBorder(totalWidth);
+ }
+ if (borders.includes("r")) {
+ log.debug("add right border");
+ addBorder(totalHeight);
+ } else {
+ skipBorder(totalHeight);
+ }
+ if (borders.includes("b")) {
+ log.debug("add bottom border");
+ addBorder(totalWidth);
+ } else {
+ skipBorder(totalWidth);
+ }
+ if (borders.includes("l")) {
+ log.debug("add left border");
+ addBorder(totalHeight);
+ } else {
+ skipBorder(totalHeight);
+ }
+ rect2.attr("stroke-dasharray", strokeDashArray.join(" "));
+}
+const rectWithTitle = (parent, node) => {
+ let classes;
+ if (!node.classes) {
+ classes = "node default";
+ } else {
+ classes = "node " + node.classes;
+ }
+ const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const innerLine = shapeSvg.insert("line");
+ const label = shapeSvg.insert("g").attr("class", "label");
+ const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;
+ let title = "";
+ if (typeof text2 === "object") {
+ title = text2[0];
+ } else {
+ title = text2;
+ }
+ log.info("Label text abc79", title, text2, typeof text2 === "object");
+ const text = label.node().appendChild(createLabel$1(title, node.labelStyle, true, true));
+ let bbox = { width: 0, height: 0 };
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = text.children[0];
+ const dv = select(text);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ log.info("Text 2", text2);
+ const textRows = text2.slice(1, text2.length);
+ let titleBox = text.getBBox();
+ const descr = label.node().appendChild(
+ createLabel$1(textRows.join ? textRows.join("
") : textRows, node.labelStyle, true, true)
+ );
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = descr.children[0];
+ const dv = select(descr);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ const halfPadding = node.padding / 2;
+ select(descr).attr(
+ "transform",
+ "translate( " + // (titleBox.width - bbox.width) / 2 +
+ (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ", " + (titleBox.height + halfPadding + 5) + ")"
+ );
+ select(text).attr(
+ "transform",
+ "translate( " + // (titleBox.width - bbox.width) / 2 +
+ (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ", " + 0 + ")"
+ );
+ bbox = label.node().getBBox();
+ label.attr(
+ "transform",
+ "translate(" + -bbox.width / 2 + ", " + (-bbox.height / 2 - halfPadding + 3) + ")"
+ );
+ rect2.attr("class", "outer title-state").attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding);
+ innerLine.attr("class", "divider").attr("x1", -bbox.width / 2 - halfPadding).attr("x2", bbox.width / 2 + halfPadding).attr("y1", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr("y2", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const stadium = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const h = bbox.height + node.padding;
+ const w = bbox.width + h / 4 + node.padding;
+ const rect2 = shapeSvg.insert("rect", ":first-child").attr("style", node.style).attr("rx", h / 2).attr("ry", h / 2).attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h);
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const circle = (parent, node) => {
+ const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, void 0, true);
+ const circle2 = shapeSvg.insert("circle", ":first-child");
+ circle2.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding);
+ log.info("Circle main");
+ updateNodeBounds(node, circle2);
+ node.intersect = function(point2) {
+ log.info("Circle intersect", node, bbox.width / 2 + halfPadding, point2);
+ return intersect.circle(node, bbox.width / 2 + halfPadding, point2);
+ };
+ return shapeSvg;
+};
+const doublecircle = (parent, node) => {
+ const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, void 0, true);
+ const gap = 5;
+ const circleGroup = shapeSvg.insert("g", ":first-child");
+ const outerCircle = circleGroup.insert("circle");
+ const innerCircle = circleGroup.insert("circle");
+ outerCircle.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding + gap).attr("width", bbox.width + node.padding + gap * 2).attr("height", bbox.height + node.padding + gap * 2);
+ innerCircle.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding);
+ log.info("DoubleCircle main");
+ updateNodeBounds(node, outerCircle);
+ node.intersect = function(point2) {
+ log.info("DoubleCircle intersect", node, bbox.width / 2 + halfPadding + gap, point2);
+ return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point2);
+ };
+ return shapeSvg;
+};
+const subroutine = (parent, node) => {
+ const { shapeSvg, bbox } = labelHelper(parent, node, void 0, true);
+ const w = bbox.width + node.padding;
+ const h = bbox.height + node.padding;
+ const points = [
+ { x: 0, y: 0 },
+ { x: w, y: 0 },
+ { x: w, y: -h },
+ { x: 0, y: -h },
+ { x: 0, y: 0 },
+ { x: -8, y: 0 },
+ { x: w + 8, y: 0 },
+ { x: w + 8, y: -h },
+ { x: -8, y: -h },
+ { x: -8, y: 0 }
+ ];
+ const el = insertPolygonShape(shapeSvg, w, h, points);
+ el.attr("style", node.style);
+ updateNodeBounds(node, el);
+ node.intersect = function(point2) {
+ return intersect.polygon(node, points, point2);
+ };
+ return shapeSvg;
+};
+const start = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id);
+ const circle2 = shapeSvg.insert("circle", ":first-child");
+ circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
+ updateNodeBounds(node, circle2);
+ node.intersect = function(point2) {
+ return intersect.circle(node, 7, point2);
+ };
+ return shapeSvg;
+};
+const forkJoin = (parent, node, dir) => {
+ const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id);
+ let width = 70;
+ let height = 10;
+ if (dir === "LR") {
+ width = 10;
+ height = 70;
+ }
+ const shape = shapeSvg.append("rect").attr("x", -1 * width / 2).attr("y", -1 * height / 2).attr("width", width).attr("height", height).attr("class", "fork-join");
+ updateNodeBounds(node, shape);
+ node.height = node.height + node.padding / 2;
+ node.width = node.width + node.padding / 2;
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const end = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id);
+ const innerCircle = shapeSvg.insert("circle", ":first-child");
+ const circle2 = shapeSvg.insert("circle", ":first-child");
+ circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
+ innerCircle.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10);
+ updateNodeBounds(node, circle2);
+ node.intersect = function(point2) {
+ return intersect.circle(node, 7, point2);
+ };
+ return shapeSvg;
+};
+const class_box = (parent, node) => {
+ const halfPadding = node.padding / 2;
+ const rowPadding = 4;
+ const lineHeight = 8;
+ let classes;
+ if (!node.classes) {
+ classes = "node default";
+ } else {
+ classes = "node " + node.classes;
+ }
+ const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const topLine = shapeSvg.insert("line");
+ const bottomLine = shapeSvg.insert("line");
+ let maxWidth = 0;
+ let maxHeight = rowPadding;
+ const labelContainer = shapeSvg.insert("g").attr("class", "label");
+ let verticalPos = 0;
+ const hasInterface = node.classData.annotations && node.classData.annotations[0];
+ const interfaceLabelText = node.classData.annotations[0] ? "«" + node.classData.annotations[0] + "»" : "";
+ const interfaceLabel = labelContainer.node().appendChild(createLabel$1(interfaceLabelText, node.labelStyle, true, true));
+ let interfaceBBox = interfaceLabel.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = interfaceLabel.children[0];
+ const dv = select(interfaceLabel);
+ interfaceBBox = div.getBoundingClientRect();
+ dv.attr("width", interfaceBBox.width);
+ dv.attr("height", interfaceBBox.height);
+ }
+ if (node.classData.annotations[0]) {
+ maxHeight += interfaceBBox.height + rowPadding;
+ maxWidth += interfaceBBox.width;
+ }
+ let classTitleString = node.classData.label;
+ if (node.classData.type !== void 0 && node.classData.type !== "") {
+ if (getConfig().flowchart.htmlLabels) {
+ classTitleString += "<" + node.classData.type + ">";
+ } else {
+ classTitleString += "<" + node.classData.type + ">";
+ }
+ }
+ const classTitleLabel = labelContainer.node().appendChild(createLabel$1(classTitleString, node.labelStyle, true, true));
+ select(classTitleLabel).attr("class", "classTitle");
+ let classTitleBBox = classTitleLabel.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = classTitleLabel.children[0];
+ const dv = select(classTitleLabel);
+ classTitleBBox = div.getBoundingClientRect();
+ dv.attr("width", classTitleBBox.width);
+ dv.attr("height", classTitleBBox.height);
+ }
+ maxHeight += classTitleBBox.height + rowPadding;
+ if (classTitleBBox.width > maxWidth) {
+ maxWidth = classTitleBBox.width;
+ }
+ const classAttributes = [];
+ node.classData.members.forEach((str) => {
+ const parsedInfo = parseMember(str);
+ let parsedText = parsedInfo.displayText;
+ if (getConfig().flowchart.htmlLabels) {
+ parsedText = parsedText.replace(//g, ">");
+ }
+ const lbl = labelContainer.node().appendChild(
+ createLabel$1(
+ parsedText,
+ parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,
+ true,
+ true
+ )
+ );
+ let bbox = lbl.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = lbl.children[0];
+ const dv = select(lbl);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ if (bbox.width > maxWidth) {
+ maxWidth = bbox.width;
+ }
+ maxHeight += bbox.height + rowPadding;
+ classAttributes.push(lbl);
+ });
+ maxHeight += lineHeight;
+ const classMethods = [];
+ node.classData.methods.forEach((str) => {
+ const parsedInfo = parseMember(str);
+ let displayText = parsedInfo.displayText;
+ if (getConfig().flowchart.htmlLabels) {
+ displayText = displayText.replace(//g, ">");
+ }
+ const lbl = labelContainer.node().appendChild(
+ createLabel$1(
+ displayText,
+ parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,
+ true,
+ true
+ )
+ );
+ let bbox = lbl.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = lbl.children[0];
+ const dv = select(lbl);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ if (bbox.width > maxWidth) {
+ maxWidth = bbox.width;
+ }
+ maxHeight += bbox.height + rowPadding;
+ classMethods.push(lbl);
+ });
+ maxHeight += lineHeight;
+ if (hasInterface) {
+ let diffX2 = (maxWidth - interfaceBBox.width) / 2;
+ select(interfaceLabel).attr(
+ "transform",
+ "translate( " + (-1 * maxWidth / 2 + diffX2) + ", " + -1 * maxHeight / 2 + ")"
+ );
+ verticalPos = interfaceBBox.height + rowPadding;
+ }
+ let diffX = (maxWidth - classTitleBBox.width) / 2;
+ select(classTitleLabel).attr(
+ "transform",
+ "translate( " + (-1 * maxWidth / 2 + diffX) + ", " + (-1 * maxHeight / 2 + verticalPos) + ")"
+ );
+ verticalPos += classTitleBBox.height + rowPadding;
+ topLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
+ verticalPos += lineHeight;
+ classAttributes.forEach((lbl) => {
+ select(lbl).attr(
+ "transform",
+ "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + ")"
+ );
+ verticalPos += classTitleBBox.height + rowPadding;
+ });
+ verticalPos += lineHeight;
+ bottomLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
+ verticalPos += lineHeight;
+ classMethods.forEach((lbl) => {
+ select(lbl).attr(
+ "transform",
+ "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos) + ")"
+ );
+ verticalPos += classTitleBBox.height + rowPadding;
+ });
+ rect2.attr("class", "outer title-state").attr("x", -maxWidth / 2 - halfPadding).attr("y", -(maxHeight / 2) - halfPadding).attr("width", maxWidth + node.padding).attr("height", maxHeight + node.padding);
+ updateNodeBounds(node, rect2);
+ node.intersect = function(point2) {
+ return intersect.rect(node, point2);
+ };
+ return shapeSvg;
+};
+const shapes = {
+ rhombus: question,
+ question,
+ rect,
+ labelRect,
+ rectWithTitle,
+ choice,
+ circle,
+ doublecircle,
+ stadium,
+ hexagon,
+ rect_left_inv_arrow,
+ lean_right,
+ lean_left,
+ trapezoid,
+ inv_trapezoid,
+ rect_right_inv_arrow,
+ cylinder,
+ start,
+ end,
+ note: note$1,
+ subroutine,
+ fork: forkJoin,
+ join: forkJoin,
+ class_box
+};
+let nodeElems = {};
+const insertNode = (elem, node, dir) => {
+ let newEl;
+ let el;
+ if (node.link) {
+ let target;
+ if (getConfig().securityLevel === "sandbox") {
+ target = "_top";
+ } else if (node.linkTarget) {
+ target = node.linkTarget || "_blank";
+ }
+ newEl = elem.insert("svg:a").attr("xlink:href", node.link).attr("target", target);
+ el = shapes[node.shape](newEl, node, dir);
+ } else {
+ el = shapes[node.shape](elem, node, dir);
+ newEl = el;
+ }
+ if (node.tooltip) {
+ el.attr("title", node.tooltip);
+ }
+ if (node.class) {
+ el.attr("class", "node default " + node.class);
+ }
+ nodeElems[node.id] = newEl;
+ if (node.haveCallback) {
+ nodeElems[node.id].attr("class", nodeElems[node.id].attr("class") + " clickable");
+ }
+ return newEl;
+};
+const setNodeElem = (elem, node) => {
+ nodeElems[node.id] = elem;
+};
+const clear$1 = () => {
+ nodeElems = {};
+};
+const positionNode = (node) => {
+ const el = nodeElems[node.id];
+ log.trace(
+ "Transforming node",
+ node.diff,
+ node,
+ "translate(" + (node.x - node.width / 2 - 5) + ", " + node.width / 2 + ")"
+ );
+ const padding = 8;
+ const diff = node.diff || 0;
+ if (node.clusterNode) {
+ el.attr(
+ "transform",
+ "translate(" + (node.x + diff - node.width / 2) + ", " + (node.y - node.height / 2 - padding) + ")"
+ );
+ } else {
+ el.attr("transform", "translate(" + node.x + ", " + node.y + ")");
+ }
+ return diff;
+};
+let edgeLabels = {};
+let terminalLabels = {};
+const clear = () => {
+ edgeLabels = {};
+ terminalLabels = {};
+};
+const insertEdgeLabel = (elem, edge) => {
+ const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);
+ const labelElement = edge.labelType === "markdown" ? createText(elem, edge.label, {
+ style: edge.labelStyle,
+ useHtmlLabels,
+ addSvgBackground: true
+ }) : createLabel$1(edge.label, edge.labelStyle);
+ log.info("abc82", edge, edge.labelType);
+ const edgeLabel = elem.insert("g").attr("class", "edgeLabel");
+ const label = edgeLabel.insert("g").attr("class", "label");
+ label.node().appendChild(labelElement);
+ let bbox = labelElement.getBBox();
+ if (useHtmlLabels) {
+ const div = labelElement.children[0];
+ const dv = select(labelElement);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ edgeLabels[edge.id] = edgeLabel;
+ edge.width = bbox.width;
+ edge.height = bbox.height;
+ let fo;
+ if (edge.startLabelLeft) {
+ const startLabelElement = createLabel$1(edge.startLabelLeft, edge.labelStyle);
+ const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
+ const inner = startEdgeLabelLeft.insert("g").attr("class", "inner");
+ fo = inner.node().appendChild(startLabelElement);
+ const slBox = startLabelElement.getBBox();
+ inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ if (!terminalLabels[edge.id]) {
+ terminalLabels[edge.id] = {};
+ }
+ terminalLabels[edge.id].startLeft = startEdgeLabelLeft;
+ setTerminalWidth(fo, edge.startLabelLeft);
+ }
+ if (edge.startLabelRight) {
+ const startLabelElement = createLabel$1(edge.startLabelRight, edge.labelStyle);
+ const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
+ const inner = startEdgeLabelRight.insert("g").attr("class", "inner");
+ fo = startEdgeLabelRight.node().appendChild(startLabelElement);
+ inner.node().appendChild(startLabelElement);
+ const slBox = startLabelElement.getBBox();
+ inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ if (!terminalLabels[edge.id]) {
+ terminalLabels[edge.id] = {};
+ }
+ terminalLabels[edge.id].startRight = startEdgeLabelRight;
+ setTerminalWidth(fo, edge.startLabelRight);
+ }
+ if (edge.endLabelLeft) {
+ const endLabelElement = createLabel$1(edge.endLabelLeft, edge.labelStyle);
+ const endEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
+ const inner = endEdgeLabelLeft.insert("g").attr("class", "inner");
+ fo = inner.node().appendChild(endLabelElement);
+ const slBox = endLabelElement.getBBox();
+ inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ endEdgeLabelLeft.node().appendChild(endLabelElement);
+ if (!terminalLabels[edge.id]) {
+ terminalLabels[edge.id] = {};
+ }
+ terminalLabels[edge.id].endLeft = endEdgeLabelLeft;
+ setTerminalWidth(fo, edge.endLabelLeft);
+ }
+ if (edge.endLabelRight) {
+ const endLabelElement = createLabel$1(edge.endLabelRight, edge.labelStyle);
+ const endEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
+ const inner = endEdgeLabelRight.insert("g").attr("class", "inner");
+ fo = inner.node().appendChild(endLabelElement);
+ const slBox = endLabelElement.getBBox();
+ inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ endEdgeLabelRight.node().appendChild(endLabelElement);
+ if (!terminalLabels[edge.id]) {
+ terminalLabels[edge.id] = {};
+ }
+ terminalLabels[edge.id].endRight = endEdgeLabelRight;
+ setTerminalWidth(fo, edge.endLabelRight);
+ }
+ return labelElement;
+};
+function setTerminalWidth(fo, value) {
+ if (getConfig().flowchart.htmlLabels && fo) {
+ fo.style.width = value.length * 9 + "px";
+ fo.style.height = "12px";
+ }
+}
+const positionEdgeLabel = (edge, paths) => {
+ log.info("Moving label abc78 ", edge.id, edge.label, edgeLabels[edge.id]);
+ let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;
+ if (edge.label) {
+ const el = edgeLabels[edge.id];
+ let x = edge.x;
+ let y = edge.y;
+ if (path) {
+ const pos = utils.calcLabelPosition(path);
+ log.info(
+ "Moving label " + edge.label + " from (",
+ x,
+ ",",
+ y,
+ ") to (",
+ pos.x,
+ ",",
+ pos.y,
+ ") abc78"
+ );
+ if (paths.updatedPath) {
+ x = pos.x;
+ y = pos.y;
+ }
+ }
+ el.attr("transform", "translate(" + x + ", " + y + ")");
+ }
+ if (edge.startLabelLeft) {
+ const el = terminalLabels[edge.id].startLeft;
+ let x = edge.x;
+ let y = edge.y;
+ if (path) {
+ const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, "start_left", path);
+ x = pos.x;
+ y = pos.y;
+ }
+ el.attr("transform", "translate(" + x + ", " + y + ")");
+ }
+ if (edge.startLabelRight) {
+ const el = terminalLabels[edge.id].startRight;
+ let x = edge.x;
+ let y = edge.y;
+ if (path) {
+ const pos = utils.calcTerminalLabelPosition(
+ edge.arrowTypeStart ? 10 : 0,
+ "start_right",
+ path
+ );
+ x = pos.x;
+ y = pos.y;
+ }
+ el.attr("transform", "translate(" + x + ", " + y + ")");
+ }
+ if (edge.endLabelLeft) {
+ const el = terminalLabels[edge.id].endLeft;
+ let x = edge.x;
+ let y = edge.y;
+ if (path) {
+ const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_left", path);
+ x = pos.x;
+ y = pos.y;
+ }
+ el.attr("transform", "translate(" + x + ", " + y + ")");
+ }
+ if (edge.endLabelRight) {
+ const el = terminalLabels[edge.id].endRight;
+ let x = edge.x;
+ let y = edge.y;
+ if (path) {
+ const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_right", path);
+ x = pos.x;
+ y = pos.y;
+ }
+ el.attr("transform", "translate(" + x + ", " + y + ")");
+ }
+};
+const outsideNode = (node, point2) => {
+ const x = node.x;
+ const y = node.y;
+ const dx = Math.abs(point2.x - x);
+ const dy = Math.abs(point2.y - y);
+ const w = node.width / 2;
+ const h = node.height / 2;
+ if (dx >= w || dy >= h) {
+ return true;
+ }
+ return false;
+};
+const intersection = (node, outsidePoint, insidePoint) => {
+ log.warn(`intersection calc abc89:
+ outsidePoint: ${JSON.stringify(outsidePoint)}
+ insidePoint : ${JSON.stringify(insidePoint)}
+ node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);
+ const x = node.x;
+ const y = node.y;
+ const dx = Math.abs(x - insidePoint.x);
+ const w = node.width / 2;
+ let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;
+ const h = node.height / 2;
+ const Q = Math.abs(outsidePoint.y - insidePoint.y);
+ const R = Math.abs(outsidePoint.x - insidePoint.x);
+ if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {
+ let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;
+ r = R * q / Q;
+ const res = {
+ x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,
+ y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q
+ };
+ if (r === 0) {
+ res.x = outsidePoint.x;
+ res.y = outsidePoint.y;
+ }
+ if (R === 0) {
+ res.x = outsidePoint.x;
+ }
+ if (Q === 0) {
+ res.y = outsidePoint.y;
+ }
+ log.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);
+ return res;
+ } else {
+ if (insidePoint.x < outsidePoint.x) {
+ r = outsidePoint.x - w - x;
+ } else {
+ r = x - w - outsidePoint.x;
+ }
+ let q = Q * r / R;
+ let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;
+ let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;
+ log.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });
+ if (r === 0) {
+ _x = outsidePoint.x;
+ _y = outsidePoint.y;
+ }
+ if (R === 0) {
+ _x = outsidePoint.x;
+ }
+ if (Q === 0) {
+ _y = outsidePoint.y;
+ }
+ return { x: _x, y: _y };
+ }
+};
+const cutPathAtIntersect = (_points, boundryNode) => {
+ log.warn("abc88 cutPathAtIntersect", _points, boundryNode);
+ let points = [];
+ let lastPointOutside = _points[0];
+ let isInside = false;
+ _points.forEach((point2) => {
+ log.info("abc88 checking point", point2, boundryNode);
+ if (!outsideNode(boundryNode, point2) && !isInside) {
+ const inter = intersection(boundryNode, lastPointOutside, point2);
+ log.warn("abc88 inside", point2, lastPointOutside, inter);
+ log.warn("abc88 intersection", inter);
+ let pointPresent = false;
+ points.forEach((p) => {
+ pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;
+ });
+ if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {
+ points.push(inter);
+ } else {
+ log.warn("abc88 no intersect", inter, points);
+ }
+ isInside = true;
+ } else {
+ log.warn("abc88 outside", point2, lastPointOutside);
+ lastPointOutside = point2;
+ if (!isInside) {
+ points.push(point2);
+ }
+ }
+ });
+ log.warn("abc88 returning points", points);
+ return points;
+};
+const insertEdge = function(elem, e, edge, clusterDb, diagramType, graph) {
+ let points = edge.points;
+ let pointsHasChanged = false;
+ const tail = graph.node(e.v);
+ var head = graph.node(e.w);
+ log.info("abc88 InsertEdge: ", edge);
+ if (head.intersect && tail.intersect) {
+ points = points.slice(1, edge.points.length - 1);
+ points.unshift(tail.intersect(points[0]));
+ log.info(
+ "Last point",
+ points[points.length - 1],
+ head,
+ head.intersect(points[points.length - 1])
+ );
+ points.push(head.intersect(points[points.length - 1]));
+ }
+ if (edge.toCluster) {
+ log.info("to cluster abc88", clusterDb[edge.toCluster]);
+ points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);
+ pointsHasChanged = true;
+ }
+ if (edge.fromCluster) {
+ log.info("from cluster abc88", clusterDb[edge.fromCluster]);
+ points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();
+ pointsHasChanged = true;
+ }
+ const lineData = points.filter((p) => !Number.isNaN(p.y));
+ let curve;
+ if (diagramType === "graph" || diagramType === "flowchart") {
+ curve = edge.curve || curveBasis;
+ } else {
+ curve = curveBasis;
+ }
+ const lineFunction = line().x(function(d) {
+ return d.x;
+ }).y(function(d) {
+ return d.y;
+ }).curve(curve);
+ let strokeClasses;
+ switch (edge.thickness) {
+ case "normal":
+ strokeClasses = "edge-thickness-normal";
+ break;
+ case "thick":
+ strokeClasses = "edge-thickness-thick";
+ break;
+ case "invisible":
+ strokeClasses = "edge-thickness-thick";
+ break;
+ default:
+ strokeClasses = "";
+ }
+ switch (edge.pattern) {
+ case "solid":
+ strokeClasses += " edge-pattern-solid";
+ break;
+ case "dotted":
+ strokeClasses += " edge-pattern-dotted";
+ break;
+ case "dashed":
+ strokeClasses += " edge-pattern-dashed";
+ break;
+ }
+ const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edge.style);
+ let url = "";
+ if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ log.info("arrowTypeStart", edge.arrowTypeStart);
+ log.info("arrowTypeEnd", edge.arrowTypeEnd);
+ switch (edge.arrowTypeStart) {
+ case "arrow_cross":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-crossStart)");
+ break;
+ case "arrow_point":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-pointStart)");
+ break;
+ case "arrow_barb":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-barbStart)");
+ break;
+ case "arrow_circle":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-circleStart)");
+ break;
+ case "aggregation":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-aggregationStart)");
+ break;
+ case "extension":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-extensionStart)");
+ break;
+ case "composition":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-compositionStart)");
+ break;
+ case "dependency":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-dependencyStart)");
+ break;
+ case "lollipop":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-lollipopStart)");
+ break;
+ }
+ switch (edge.arrowTypeEnd) {
+ case "arrow_cross":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-crossEnd)");
+ break;
+ case "arrow_point":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-pointEnd)");
+ break;
+ case "arrow_barb":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-barbEnd)");
+ break;
+ case "arrow_circle":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-circleEnd)");
+ break;
+ case "aggregation":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-aggregationEnd)");
+ break;
+ case "extension":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-extensionEnd)");
+ break;
+ case "composition":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-compositionEnd)");
+ break;
+ case "dependency":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-dependencyEnd)");
+ break;
+ case "lollipop":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-lollipopEnd)");
+ break;
+ }
+ let paths = {};
+ if (pointsHasChanged) {
+ paths.updatedPath = points;
+ }
+ paths.originalPath = edge.points;
+ return paths;
+};
+export {
+ insertMarkers$1 as a,
+ clear$1 as b,
+ createLabel$1 as c,
+ clear as d,
+ insertNode as e,
+ insertEdgeLabel as f,
+ insertEdge as g,
+ positionEdgeLabel as h,
+ intersectRect$1 as i,
+ labelHelper as l,
+ positionNode as p,
+ setNodeElem as s,
+ updateNodeBounds as u
+};
+//# sourceMappingURL=edges-2e77835f.js.map
diff --git a/scopegraphs-render-docs/doc/js/edges-de377bae.js b/scopegraphs-render-docs/doc/js/edges-de377bae.js
new file mode 100644
index 0000000..576adc1
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/edges-de377bae.js
@@ -0,0 +1,809 @@
+import { l as u, m as R, g as w, h as v, b as z } from "./commonDb-41f8b4c5.js";
+import { c as P } from "./createText-23817c58.js";
+import { p as D } from "./mermaidAPI-67f627de.js";
+import { p as Q } from "./svgDraw-0a992cdb.js";
+import { u as U, G as V } from "./utils-8ea37061.js";
+import { l as et } from "./line-05ccbb85.js";
+const st = (r, t, e, n) => {
+ t.forEach((a) => {
+ bt[a](r, e, n);
+ });
+}, it = (r, t, e) => {
+ u.trace("Making markers for ", e), r.append("defs").append("marker").attr("id", t + "-extensionStart").attr("class", "marker extension " + t).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"), r.append("defs").append("marker").attr("id", t + "-extensionEnd").attr("class", "marker extension " + t).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");
+}, nt = (r, t) => {
+ r.append("defs").append("marker").attr("id", t + "-compositionStart").attr("class", "marker composition " + t).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"), r.append("defs").append("marker").attr("id", t + "-compositionEnd").attr("class", "marker composition " + t).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");
+}, lt = (r, t) => {
+ r.append("defs").append("marker").attr("id", t + "-aggregationStart").attr("class", "marker aggregation " + t).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"), r.append("defs").append("marker").attr("id", t + "-aggregationEnd").attr("class", "marker aggregation " + t).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");
+}, ct = (r, t) => {
+ r.append("defs").append("marker").attr("id", t + "-dependencyStart").attr("class", "marker dependency " + t).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"), r.append("defs").append("marker").attr("id", t + "-dependencyEnd").attr("class", "marker dependency " + t).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");
+}, ht = (r, t) => {
+ r.append("defs").append("marker").attr("id", t + "-lollipopStart").attr("class", "marker lollipop " + t).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "white").attr("cx", 6).attr("cy", 7).attr("r", 6);
+}, ot = (r, t) => {
+ r.append("marker").attr("id", t + "-pointEnd").attr("class", "marker " + t).attr("viewBox", "0 0 12 20").attr("refX", 10).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"), r.append("marker").attr("id", t + "-pointStart").attr("class", "marker " + t).attr("viewBox", "0 0 10 10").attr("refX", 0).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+}, ft = (r, t) => {
+ r.append("marker").attr("id", t + "-circleEnd").attr("class", "marker " + t).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"), r.append("marker").attr("id", t + "-circleStart").attr("class", "marker " + t).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+}, dt = (r, t) => {
+ r.append("marker").attr("id", t + "-crossEnd").attr("class", "marker cross " + t).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0"), r.append("marker").attr("id", t + "-crossStart").attr("class", "marker cross " + t).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
+}, pt = (r, t) => {
+ r.append("defs").append("marker").attr("id", t + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "strokeWidth").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
+}, bt = {
+ extension: it,
+ composition: nt,
+ aggregation: lt,
+ dependency: ct,
+ lollipop: ht,
+ point: ot,
+ circle: ft,
+ cross: dt,
+ barb: pt
+}, Pt = st;
+function xt(r, t) {
+ t && r.attr("style", t);
+}
+function ut(r) {
+ const t = v(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject")), e = t.append("xhtml:div"), n = r.label, a = r.isNode ? "nodeLabel" : "edgeLabel";
+ return e.html(
+ '" + n + ""
+ ), xt(e, r.labelStyle), e.style("display", "inline-block"), e.style("white-space", "nowrap"), e.attr("xmlns", "http://www.w3.org/1999/xhtml"), t.node();
+}
+const yt = (r, t, e, n) => {
+ let a = r || "";
+ if (typeof a == "object" && (a = a[0]), R(w().flowchart.htmlLabels)) {
+ a = a.replace(/\\n|\n/g, "
"), u.info("vertexText" + a);
+ const s = {
+ isNode: n,
+ label: D(a).replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (l) => ``
+ ),
+ labelStyle: t.replace("fill:", "color:")
+ };
+ return ut(s);
+ } else {
+ const s = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ s.setAttribute("style", t.replace("color:", "fill:"));
+ let i = [];
+ typeof a == "string" ? i = a.split(/\\n|\n|
/gi) : Array.isArray(a) ? i = a : i = [];
+ for (const l of i) {
+ const c = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ c.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), c.setAttribute("dy", "1em"), c.setAttribute("x", "0"), e ? c.setAttribute("class", "title-row") : c.setAttribute("class", "row"), c.textContent = l.trim(), s.appendChild(c);
+ }
+ return s;
+ }
+}, T = yt, S = (r, t, e, n) => {
+ let a;
+ const s = t.useHtmlLabels || R(w().flowchart.htmlLabels);
+ e ? a = e : a = "node default";
+ const i = r.insert("g").attr("class", a).attr("id", t.domId || t.id), l = i.insert("g").attr("class", "label").attr("style", t.labelStyle);
+ let c;
+ t.labelText === void 0 ? c = "" : c = typeof t.labelText == "string" ? t.labelText : t.labelText[0];
+ const o = l.node();
+ let h;
+ t.labelType === "markdown" ? h = P(l, z(D(c), w()), {
+ useHtmlLabels: s,
+ width: t.width || w().flowchart.wrappingWidth,
+ classes: "markdown-node-label"
+ }) : h = o.appendChild(
+ T(
+ z(D(c), w()),
+ t.labelStyle,
+ !1,
+ n
+ )
+ );
+ let f = h.getBBox();
+ if (R(w().flowchart.htmlLabels)) {
+ const d = h.children[0], p = v(h);
+ f = d.getBoundingClientRect(), p.attr("width", f.width), p.attr("height", f.height);
+ }
+ const b = t.padding / 2;
+ return s ? l.attr("transform", "translate(" + -f.width / 2 + ", " + -f.height / 2 + ")") : l.attr("transform", "translate(" + 0 + ", " + -f.height / 2 + ")"), t.centerLabel && l.attr("transform", "translate(" + -f.width / 2 + ", " + -f.height / 2 + ")"), l.insert("rect", ":first-child"), { shapeSvg: i, bbox: f, halfPadding: b, label: l };
+}, m = (r, t) => {
+ const e = t.node().getBBox();
+ r.width = e.width, r.height = e.height;
+};
+function _(r, t, e, n) {
+ return r.insert("polygon", ":first-child").attr(
+ "points",
+ n.map(function(a) {
+ return a.x + "," + a.y;
+ }).join(" ")
+ ).attr("class", "label-container").attr("transform", "translate(" + -t / 2 + "," + e / 2 + ")");
+}
+function gt(r, t) {
+ return r.intersect(t);
+}
+function tt(r, t, e, n) {
+ var a = r.x, s = r.y, i = a - n.x, l = s - n.y, c = Math.sqrt(t * t * l * l + e * e * i * i), o = Math.abs(t * e * i / c);
+ n.x < a && (o = -o);
+ var h = Math.abs(t * e * l / c);
+ return n.y < s && (h = -h), { x: a + o, y: s + h };
+}
+function wt(r, t, e) {
+ return tt(r, t, t, e);
+}
+function mt(r, t, e, n) {
+ var a, s, i, l, c, o, h, f, b, d, p, x, y, k, H;
+ if (a = t.y - r.y, i = r.x - t.x, c = t.x * r.y - r.x * t.y, b = a * e.x + i * e.y + c, d = a * n.x + i * n.y + c, !(b !== 0 && d !== 0 && J(b, d)) && (s = n.y - e.y, l = e.x - n.x, o = n.x * e.y - e.x * n.y, h = s * r.x + l * r.y + o, f = s * t.x + l * t.y + o, !(h !== 0 && f !== 0 && J(h, f)) && (p = a * l - s * i, p !== 0)))
+ return x = Math.abs(p / 2), y = i * o - l * c, k = y < 0 ? (y - x) / p : (y + x) / p, y = s * c - a * o, H = y < 0 ? (y - x) / p : (y + x) / p, { x: k, y: H };
+}
+function J(r, t) {
+ return r * t > 0;
+}
+function kt(r, t, e) {
+ var n = r.x, a = r.y, s = [], i = Number.POSITIVE_INFINITY, l = Number.POSITIVE_INFINITY;
+ typeof t.forEach == "function" ? t.forEach(function(p) {
+ i = Math.min(i, p.x), l = Math.min(l, p.y);
+ }) : (i = Math.min(i, t.x), l = Math.min(l, t.y));
+ for (var c = n - r.width / 2 - i, o = a - r.height / 2 - l, h = 0; h < t.length; h++) {
+ var f = t[h], b = t[h < t.length - 1 ? h + 1 : 0], d = mt(
+ r,
+ e,
+ { x: c + f.x, y: o + f.y },
+ { x: c + b.x, y: o + b.y }
+ );
+ d && s.push(d);
+ }
+ return s.length ? (s.length > 1 && s.sort(function(p, x) {
+ var y = p.x - e.x, k = p.y - e.y, H = Math.sqrt(y * y + k * k), N = x.x - e.x, B = x.y - e.y, X = Math.sqrt(N * N + B * B);
+ return H < X ? -1 : H === X ? 0 : 1;
+ }), s[0]) : r;
+}
+const Lt = (r, t) => {
+ var e = r.x, n = r.y, a = t.x - e, s = t.y - n, i = r.width / 2, l = r.height / 2, c, o;
+ return Math.abs(s) * i > Math.abs(a) * l ? (s < 0 && (l = -l), c = s === 0 ? 0 : l * a / s, o = l) : (a < 0 && (i = -i), c = i, o = a === 0 ? 0 : i * s / a), { x: e + c, y: n + o };
+}, vt = Lt, g = {
+ node: gt,
+ circle: wt,
+ ellipse: tt,
+ polygon: kt,
+ rect: vt
+}, St = (r, t) => {
+ t.useHtmlLabels || w().flowchart.htmlLabels || (t.centerLabel = !0);
+ const { shapeSvg: n, bbox: a, halfPadding: s } = S(r, t, "node " + t.classes, !0);
+ u.info("Classes = ", t.classes);
+ const i = n.insert("rect", ":first-child");
+ return i.attr("rx", t.rx).attr("ry", t.ry).attr("x", -a.width / 2 - s).attr("y", -a.height / 2 - s).attr("width", a.width + t.padding).attr("height", a.height + t.padding), m(t, i), t.intersect = function(l) {
+ return g.rect(t, l);
+ }, n;
+}, Et = St, q = (r, t) => {
+ const { shapeSvg: e, bbox: n } = S(r, t, void 0, !0), a = n.width + t.padding, s = n.height + t.padding, i = a + s, l = [
+ { x: i / 2, y: 0 },
+ { x: i, y: -i / 2 },
+ { x: i / 2, y: -i },
+ { x: 0, y: -i / 2 }
+ ];
+ u.info("Question main (Circle)");
+ const c = _(e, i, i, l);
+ return c.attr("style", t.style), m(t, c), t.intersect = function(o) {
+ return u.warn("Intersect called"), g.polygon(t, l, o);
+ }, e;
+}, Bt = (r, t) => {
+ const e = r.insert("g").attr("class", "node default").attr("id", t.domId || t.id), n = 28, a = [
+ { x: 0, y: n / 2 },
+ { x: n / 2, y: 0 },
+ { x: 0, y: -n / 2 },
+ { x: -n / 2, y: 0 }
+ ];
+ return e.insert("polygon", ":first-child").attr(
+ "points",
+ a.map(function(i) {
+ return i.x + "," + i.y;
+ }).join(" ")
+ ).attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28), t.width = 28, t.height = 28, t.intersect = function(i) {
+ return g.circle(t, 14, i);
+ }, e;
+}, Mt = (r, t) => {
+ const { shapeSvg: e, bbox: n } = S(r, t, void 0, !0), a = 4, s = n.height + t.padding, i = s / a, l = n.width + 2 * i + t.padding, c = [
+ { x: i, y: 0 },
+ { x: l - i, y: 0 },
+ { x: l, y: -s / 2 },
+ { x: l - i, y: -s },
+ { x: i, y: -s },
+ { x: 0, y: -s / 2 }
+ ], o = _(e, l, s, c);
+ return o.attr("style", t.style), m(t, o), t.intersect = function(h) {
+ return g.polygon(t, c, h);
+ }, e;
+}, Ct = (r, t) => {
+ const { shapeSvg: e, bbox: n } = S(r, t, void 0, !0), a = n.width + t.padding, s = n.height + t.padding, i = [
+ { x: -s / 2, y: 0 },
+ { x: a, y: 0 },
+ { x: a, y: -s },
+ { x: -s / 2, y: -s },
+ { x: 0, y: -s / 2 }
+ ];
+ return _(e, a, s, i).attr("style", t.style), t.width = a + s, t.height = s, t.intersect = function(c) {
+ return g.polygon(t, i, c);
+ }, e;
+}, Tt = (r, t) => {
+ const { shapeSvg: e, bbox: n } = S(r, t, void 0, !0), a = n.width + t.padding, s = n.height + t.padding, i = [
+ { x: -2 * s / 6, y: 0 },
+ { x: a - s / 6, y: 0 },
+ { x: a + 2 * s / 6, y: -s },
+ { x: s / 6, y: -s }
+ ], l = _(e, a, s, i);
+ return l.attr("style", t.style), m(t, l), t.intersect = function(c) {
+ return g.polygon(t, i, c);
+ }, e;
+}, Rt = (r, t) => {
+ const { shapeSvg: e, bbox: n } = S(r, t, void 0, !0), a = n.width + t.padding, s = n.height + t.padding, i = [
+ { x: 2 * s / 6, y: 0 },
+ { x: a + s / 6, y: 0 },
+ { x: a - 2 * s / 6, y: -s },
+ { x: -s / 6, y: -s }
+ ], l = _(e, a, s, i);
+ return l.attr("style", t.style), m(t, l), t.intersect = function(c) {
+ return g.polygon(t, i, c);
+ }, e;
+}, Ht = (r, t) => {
+ const { shapeSvg: e, bbox: n } = S(r, t, void 0, !0), a = n.width + t.padding, s = n.height + t.padding, i = [
+ { x: -2 * s / 6, y: 0 },
+ { x: a + 2 * s / 6, y: 0 },
+ { x: a - s / 6, y: -s },
+ { x: s / 6, y: -s }
+ ], l = _(e, a, s, i);
+ return l.attr("style", t.style), m(t, l), t.intersect = function(c) {
+ return g.polygon(t, i, c);
+ }, e;
+}, It = (r, t) => {
+ const { shapeSvg: e, bbox: n } = S(r, t, void 0, !0), a = n.width + t.padding, s = n.height + t.padding, i = [
+ { x: s / 6, y: 0 },
+ { x: a - s / 6, y: 0 },
+ { x: a + 2 * s / 6, y: -s },
+ { x: -2 * s / 6, y: -s }
+ ], l = _(e, a, s, i);
+ return l.attr("style", t.style), m(t, l), t.intersect = function(c) {
+ return g.polygon(t, i, c);
+ }, e;
+}, _t = (r, t) => {
+ const { shapeSvg: e, bbox: n } = S(r, t, void 0, !0), a = n.width + t.padding, s = n.height + t.padding, i = [
+ { x: 0, y: 0 },
+ { x: a + s / 2, y: 0 },
+ { x: a, y: -s / 2 },
+ { x: a + s / 2, y: -s },
+ { x: 0, y: -s }
+ ], l = _(e, a, s, i);
+ return l.attr("style", t.style), m(t, l), t.intersect = function(c) {
+ return g.polygon(t, i, c);
+ }, e;
+}, Nt = (r, t) => {
+ const { shapeSvg: e, bbox: n } = S(r, t, void 0, !0), a = n.width + t.padding, s = a / 2, i = s / (2.5 + a / 50), l = n.height + i + t.padding, c = "M 0," + i + " a " + s + "," + i + " 0,0,0 " + a + " 0 a " + s + "," + i + " 0,0,0 " + -a + " 0 l 0," + l + " a " + s + "," + i + " 0,0,0 " + a + " 0 l 0," + -l, o = e.attr("label-offset-y", i).insert("path", ":first-child").attr("style", t.style).attr("d", c).attr("transform", "translate(" + -a / 2 + "," + -(l / 2 + i) + ")");
+ return m(t, o), t.intersect = function(h) {
+ const f = g.rect(t, h), b = f.x - t.x;
+ if (s != 0 && (Math.abs(b) < t.width / 2 || Math.abs(b) == t.width / 2 && Math.abs(f.y - t.y) > t.height / 2 - i)) {
+ let d = i * i * (1 - b * b / (s * s));
+ d != 0 && (d = Math.sqrt(d)), d = i - d, h.y - t.y > 0 && (d = -d), f.y += d;
+ }
+ return f;
+ }, e;
+}, $t = (r, t) => {
+ const { shapeSvg: e, bbox: n, halfPadding: a } = S(r, t, "node " + t.classes, !0), s = e.insert("rect", ":first-child"), i = n.width + t.padding, l = n.height + t.padding;
+ if (s.attr("class", "basic label-container").attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("x", -n.width / 2 - a).attr("y", -n.height / 2 - a).attr("width", i).attr("height", l), t.props) {
+ const c = new Set(Object.keys(t.props));
+ t.props.borders && (rt(s, t.props.borders, i, l), c.delete("borders")), c.forEach((o) => {
+ u.warn(`Unknown node property ${o}`);
+ });
+ }
+ return m(t, s), t.intersect = function(c) {
+ return g.rect(t, c);
+ }, e;
+}, Wt = (r, t) => {
+ const { shapeSvg: e } = S(r, t, "label", !0);
+ u.trace("Classes = ", t.classes);
+ const n = e.insert("rect", ":first-child"), a = 0, s = 0;
+ if (n.attr("width", a).attr("height", s), e.attr("class", "label edgeLabel"), t.props) {
+ const i = new Set(Object.keys(t.props));
+ t.props.borders && (rt(n, t.props.borders, a, s), i.delete("borders")), i.forEach((l) => {
+ u.warn(`Unknown node property ${l}`);
+ });
+ }
+ return m(t, n), t.intersect = function(i) {
+ return g.rect(t, i);
+ }, e;
+};
+function rt(r, t, e, n) {
+ const a = [], s = (l) => {
+ a.push(l, 0);
+ }, i = (l) => {
+ a.push(0, l);
+ };
+ t.includes("t") ? (u.debug("add top border"), s(e)) : i(e), t.includes("r") ? (u.debug("add right border"), s(n)) : i(n), t.includes("b") ? (u.debug("add bottom border"), s(e)) : i(e), t.includes("l") ? (u.debug("add left border"), s(n)) : i(n), r.attr("stroke-dasharray", a.join(" "));
+}
+const Xt = (r, t) => {
+ let e;
+ t.classes ? e = "node " + t.classes : e = "node default";
+ const n = r.insert("g").attr("class", e).attr("id", t.domId || t.id), a = n.insert("rect", ":first-child"), s = n.insert("line"), i = n.insert("g").attr("class", "label"), l = t.labelText.flat ? t.labelText.flat() : t.labelText;
+ let c = "";
+ typeof l == "object" ? c = l[0] : c = l, u.info("Label text abc79", c, l, typeof l == "object");
+ const o = i.node().appendChild(T(c, t.labelStyle, !0, !0));
+ let h = { width: 0, height: 0 };
+ if (R(w().flowchart.htmlLabels)) {
+ const x = o.children[0], y = v(o);
+ h = x.getBoundingClientRect(), y.attr("width", h.width), y.attr("height", h.height);
+ }
+ u.info("Text 2", l);
+ const f = l.slice(1, l.length);
+ let b = o.getBBox();
+ const d = i.node().appendChild(
+ T(f.join ? f.join("
") : f, t.labelStyle, !0, !0)
+ );
+ if (R(w().flowchart.htmlLabels)) {
+ const x = d.children[0], y = v(d);
+ h = x.getBoundingClientRect(), y.attr("width", h.width), y.attr("height", h.height);
+ }
+ const p = t.padding / 2;
+ return v(d).attr(
+ "transform",
+ "translate( " + // (titleBox.width - bbox.width) / 2 +
+ (h.width > b.width ? 0 : (b.width - h.width) / 2) + ", " + (b.height + p + 5) + ")"
+ ), v(o).attr(
+ "transform",
+ "translate( " + // (titleBox.width - bbox.width) / 2 +
+ (h.width < b.width ? 0 : -(b.width - h.width) / 2) + ", " + 0 + ")"
+ ), h = i.node().getBBox(), i.attr(
+ "transform",
+ "translate(" + -h.width / 2 + ", " + (-h.height / 2 - p + 3) + ")"
+ ), a.attr("class", "outer title-state").attr("x", -h.width / 2 - p).attr("y", -h.height / 2 - p).attr("width", h.width + t.padding).attr("height", h.height + t.padding), s.attr("class", "divider").attr("x1", -h.width / 2 - p).attr("x2", h.width / 2 + p).attr("y1", -h.height / 2 - p + b.height + p).attr("y2", -h.height / 2 - p + b.height + p), m(t, a), t.intersect = function(x) {
+ return g.rect(t, x);
+ }, n;
+}, Yt = (r, t) => {
+ const { shapeSvg: e, bbox: n } = S(r, t, void 0, !0), a = n.height + t.padding, s = n.width + a / 4 + t.padding, i = e.insert("rect", ":first-child").attr("style", t.style).attr("rx", a / 2).attr("ry", a / 2).attr("x", -s / 2).attr("y", -a / 2).attr("width", s).attr("height", a);
+ return m(t, i), t.intersect = function(l) {
+ return g.rect(t, l);
+ }, e;
+}, Ut = (r, t) => {
+ const { shapeSvg: e, bbox: n, halfPadding: a } = S(r, t, void 0, !0), s = e.insert("circle", ":first-child");
+ return s.attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("r", n.width / 2 + a).attr("width", n.width + t.padding).attr("height", n.height + t.padding), u.info("Circle main"), m(t, s), t.intersect = function(i) {
+ return u.info("Circle intersect", t, n.width / 2 + a, i), g.circle(t, n.width / 2 + a, i);
+ }, e;
+}, At = (r, t) => {
+ const { shapeSvg: e, bbox: n, halfPadding: a } = S(r, t, void 0, !0), s = 5, i = e.insert("g", ":first-child"), l = i.insert("circle"), c = i.insert("circle");
+ return l.attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("r", n.width / 2 + a + s).attr("width", n.width + t.padding + s * 2).attr("height", n.height + t.padding + s * 2), c.attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("r", n.width / 2 + a).attr("width", n.width + t.padding).attr("height", n.height + t.padding), u.info("DoubleCircle main"), m(t, l), t.intersect = function(o) {
+ return u.info("DoubleCircle intersect", t, n.width / 2 + a + s, o), g.circle(t, n.width / 2 + a + s, o);
+ }, e;
+}, Ot = (r, t) => {
+ const { shapeSvg: e, bbox: n } = S(r, t, void 0, !0), a = n.width + t.padding, s = n.height + t.padding, i = [
+ { x: 0, y: 0 },
+ { x: a, y: 0 },
+ { x: a, y: -s },
+ { x: 0, y: -s },
+ { x: 0, y: 0 },
+ { x: -8, y: 0 },
+ { x: a + 8, y: 0 },
+ { x: a + 8, y: -s },
+ { x: -8, y: -s },
+ { x: -8, y: 0 }
+ ], l = _(e, a, s, i);
+ return l.attr("style", t.style), m(t, l), t.intersect = function(c) {
+ return g.polygon(t, i, c);
+ }, e;
+}, jt = (r, t) => {
+ const e = r.insert("g").attr("class", "node default").attr("id", t.domId || t.id), n = e.insert("circle", ":first-child");
+ return n.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14), m(t, n), t.intersect = function(a) {
+ return g.circle(t, 7, a);
+ }, e;
+}, F = (r, t, e) => {
+ const n = r.insert("g").attr("class", "node default").attr("id", t.domId || t.id);
+ let a = 70, s = 10;
+ e === "LR" && (a = 10, s = 70);
+ const i = n.append("rect").attr("x", -1 * a / 2).attr("y", -1 * s / 2).attr("width", a).attr("height", s).attr("class", "fork-join");
+ return m(t, i), t.height = t.height + t.padding / 2, t.width = t.width + t.padding / 2, t.intersect = function(l) {
+ return g.rect(t, l);
+ }, n;
+}, Dt = (r, t) => {
+ const e = r.insert("g").attr("class", "node default").attr("id", t.domId || t.id), n = e.insert("circle", ":first-child"), a = e.insert("circle", ":first-child");
+ return a.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14), n.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10), m(t, a), t.intersect = function(s) {
+ return g.circle(t, 7, s);
+ }, e;
+}, Zt = (r, t) => {
+ const e = t.padding / 2, n = 4, a = 8;
+ let s;
+ t.classes ? s = "node " + t.classes : s = "node default";
+ const i = r.insert("g").attr("class", s).attr("id", t.domId || t.id), l = i.insert("rect", ":first-child"), c = i.insert("line"), o = i.insert("line");
+ let h = 0, f = n;
+ const b = i.insert("g").attr("class", "label");
+ let d = 0;
+ const p = t.classData.annotations && t.classData.annotations[0], x = t.classData.annotations[0] ? "«" + t.classData.annotations[0] + "»" : "", y = b.node().appendChild(T(x, t.labelStyle, !0, !0));
+ let k = y.getBBox();
+ if (R(w().flowchart.htmlLabels)) {
+ const E = y.children[0], M = v(y);
+ k = E.getBoundingClientRect(), M.attr("width", k.width), M.attr("height", k.height);
+ }
+ t.classData.annotations[0] && (f += k.height + n, h += k.width);
+ let H = t.classData.label;
+ t.classData.type !== void 0 && t.classData.type !== "" && (w().flowchart.htmlLabels ? H += "<" + t.classData.type + ">" : H += "<" + t.classData.type + ">");
+ const N = b.node().appendChild(T(H, t.labelStyle, !0, !0));
+ v(N).attr("class", "classTitle");
+ let B = N.getBBox();
+ if (R(w().flowchart.htmlLabels)) {
+ const E = N.children[0], M = v(N);
+ B = E.getBoundingClientRect(), M.attr("width", B.width), M.attr("height", B.height);
+ }
+ f += B.height + n, B.width > h && (h = B.width);
+ const X = [];
+ t.classData.members.forEach((E) => {
+ const M = Q(E);
+ let $ = M.displayText;
+ w().flowchart.htmlLabels && ($ = $.replace(//g, ">"));
+ const I = b.node().appendChild(
+ T(
+ $,
+ M.cssStyle ? M.cssStyle : t.labelStyle,
+ !0,
+ !0
+ )
+ );
+ let C = I.getBBox();
+ if (R(w().flowchart.htmlLabels)) {
+ const j = I.children[0], Y = v(I);
+ C = j.getBoundingClientRect(), Y.attr("width", C.width), Y.attr("height", C.height);
+ }
+ C.width > h && (h = C.width), f += C.height + n, X.push(I);
+ }), f += a;
+ const Z = [];
+ if (t.classData.methods.forEach((E) => {
+ const M = Q(E);
+ let $ = M.displayText;
+ w().flowchart.htmlLabels && ($ = $.replace(//g, ">"));
+ const I = b.node().appendChild(
+ T(
+ $,
+ M.cssStyle ? M.cssStyle : t.labelStyle,
+ !0,
+ !0
+ )
+ );
+ let C = I.getBBox();
+ if (R(w().flowchart.htmlLabels)) {
+ const j = I.children[0], Y = v(I);
+ C = j.getBoundingClientRect(), Y.attr("width", C.width), Y.attr("height", C.height);
+ }
+ C.width > h && (h = C.width), f += C.height + n, Z.push(I);
+ }), f += a, p) {
+ let E = (h - k.width) / 2;
+ v(y).attr(
+ "transform",
+ "translate( " + (-1 * h / 2 + E) + ", " + -1 * f / 2 + ")"
+ ), d = k.height + n;
+ }
+ let at = (h - B.width) / 2;
+ return v(N).attr(
+ "transform",
+ "translate( " + (-1 * h / 2 + at) + ", " + (-1 * f / 2 + d) + ")"
+ ), d += B.height + n, c.attr("class", "divider").attr("x1", -h / 2 - e).attr("x2", h / 2 + e).attr("y1", -f / 2 - e + a + d).attr("y2", -f / 2 - e + a + d), d += a, X.forEach((E) => {
+ v(E).attr(
+ "transform",
+ "translate( " + -h / 2 + ", " + (-1 * f / 2 + d + a / 2) + ")"
+ ), d += B.height + n;
+ }), d += a, o.attr("class", "divider").attr("x1", -h / 2 - e).attr("x2", h / 2 + e).attr("y1", -f / 2 - e + a + d).attr("y2", -f / 2 - e + a + d), d += a, Z.forEach((E) => {
+ v(E).attr(
+ "transform",
+ "translate( " + -h / 2 + ", " + (-1 * f / 2 + d) + ")"
+ ), d += B.height + n;
+ }), l.attr("class", "outer title-state").attr("x", -h / 2 - e).attr("y", -(f / 2) - e).attr("width", h + t.padding).attr("height", f + t.padding), m(t, l), t.intersect = function(E) {
+ return g.rect(t, E);
+ }, i;
+}, G = {
+ rhombus: q,
+ question: q,
+ rect: $t,
+ labelRect: Wt,
+ rectWithTitle: Xt,
+ choice: Bt,
+ circle: Ut,
+ doublecircle: At,
+ stadium: Yt,
+ hexagon: Mt,
+ rect_left_inv_arrow: Ct,
+ lean_right: Tt,
+ lean_left: Rt,
+ trapezoid: Ht,
+ inv_trapezoid: It,
+ rect_right_inv_arrow: _t,
+ cylinder: Nt,
+ start: jt,
+ end: Dt,
+ note: Et,
+ subroutine: Ot,
+ fork: F,
+ join: F,
+ class_box: Zt
+};
+let W = {};
+const tr = (r, t, e) => {
+ let n, a;
+ if (t.link) {
+ let s;
+ w().securityLevel === "sandbox" ? s = "_top" : t.linkTarget && (s = t.linkTarget || "_blank"), n = r.insert("svg:a").attr("xlink:href", t.link).attr("target", s), a = G[t.shape](n, t, e);
+ } else
+ a = G[t.shape](r, t, e), n = a;
+ return t.tooltip && a.attr("title", t.tooltip), t.class && a.attr("class", "node default " + t.class), W[t.id] = n, t.haveCallback && W[t.id].attr("class", W[t.id].attr("class") + " clickable"), n;
+}, rr = (r, t) => {
+ W[t.id] = r;
+}, ar = () => {
+ W = {};
+}, er = (r) => {
+ const t = W[r.id];
+ u.trace(
+ "Transforming node",
+ r.diff,
+ r,
+ "translate(" + (r.x - r.width / 2 - 5) + ", " + r.width / 2 + ")"
+ );
+ const e = 8, n = r.diff || 0;
+ return r.clusterNode ? t.attr(
+ "transform",
+ "translate(" + (r.x + n - r.width / 2) + ", " + (r.y - r.height / 2 - e) + ")"
+ ) : t.attr("transform", "translate(" + r.x + ", " + r.y + ")"), n;
+};
+let O = {}, L = {};
+const sr = () => {
+ O = {}, L = {};
+}, ir = (r, t) => {
+ const e = R(w().flowchart.htmlLabels), n = t.labelType === "markdown" ? P(r, t.label, {
+ style: t.labelStyle,
+ useHtmlLabels: e,
+ addSvgBackground: !0
+ }) : T(t.label, t.labelStyle);
+ u.info("abc82", t, t.labelType);
+ const a = r.insert("g").attr("class", "edgeLabel"), s = a.insert("g").attr("class", "label");
+ s.node().appendChild(n);
+ let i = n.getBBox();
+ if (e) {
+ const c = n.children[0], o = v(n);
+ i = c.getBoundingClientRect(), o.attr("width", i.width), o.attr("height", i.height);
+ }
+ s.attr("transform", "translate(" + -i.width / 2 + ", " + -i.height / 2 + ")"), O[t.id] = a, t.width = i.width, t.height = i.height;
+ let l;
+ if (t.startLabelLeft) {
+ const c = T(t.startLabelLeft, t.labelStyle), o = r.insert("g").attr("class", "edgeTerminals"), h = o.insert("g").attr("class", "inner");
+ l = h.node().appendChild(c);
+ const f = c.getBBox();
+ h.attr("transform", "translate(" + -f.width / 2 + ", " + -f.height / 2 + ")"), L[t.id] || (L[t.id] = {}), L[t.id].startLeft = o, A(l, t.startLabelLeft);
+ }
+ if (t.startLabelRight) {
+ const c = T(t.startLabelRight, t.labelStyle), o = r.insert("g").attr("class", "edgeTerminals"), h = o.insert("g").attr("class", "inner");
+ l = o.node().appendChild(c), h.node().appendChild(c);
+ const f = c.getBBox();
+ h.attr("transform", "translate(" + -f.width / 2 + ", " + -f.height / 2 + ")"), L[t.id] || (L[t.id] = {}), L[t.id].startRight = o, A(l, t.startLabelRight);
+ }
+ if (t.endLabelLeft) {
+ const c = T(t.endLabelLeft, t.labelStyle), o = r.insert("g").attr("class", "edgeTerminals"), h = o.insert("g").attr("class", "inner");
+ l = h.node().appendChild(c);
+ const f = c.getBBox();
+ h.attr("transform", "translate(" + -f.width / 2 + ", " + -f.height / 2 + ")"), o.node().appendChild(c), L[t.id] || (L[t.id] = {}), L[t.id].endLeft = o, A(l, t.endLabelLeft);
+ }
+ if (t.endLabelRight) {
+ const c = T(t.endLabelRight, t.labelStyle), o = r.insert("g").attr("class", "edgeTerminals"), h = o.insert("g").attr("class", "inner");
+ l = h.node().appendChild(c);
+ const f = c.getBBox();
+ h.attr("transform", "translate(" + -f.width / 2 + ", " + -f.height / 2 + ")"), o.node().appendChild(c), L[t.id] || (L[t.id] = {}), L[t.id].endRight = o, A(l, t.endLabelRight);
+ }
+ return n;
+};
+function A(r, t) {
+ w().flowchart.htmlLabels && r && (r.style.width = t.length * 9 + "px", r.style.height = "12px");
+}
+const nr = (r, t) => {
+ u.info("Moving label abc78 ", r.id, r.label, O[r.id]);
+ let e = t.updatedPath ? t.updatedPath : t.originalPath;
+ if (r.label) {
+ const n = O[r.id];
+ let a = r.x, s = r.y;
+ if (e) {
+ const i = U.calcLabelPosition(e);
+ u.info(
+ "Moving label " + r.label + " from (",
+ a,
+ ",",
+ s,
+ ") to (",
+ i.x,
+ ",",
+ i.y,
+ ") abc78"
+ ), t.updatedPath && (a = i.x, s = i.y);
+ }
+ n.attr("transform", "translate(" + a + ", " + s + ")");
+ }
+ if (r.startLabelLeft) {
+ const n = L[r.id].startLeft;
+ let a = r.x, s = r.y;
+ if (e) {
+ const i = U.calcTerminalLabelPosition(r.arrowTypeStart ? 10 : 0, "start_left", e);
+ a = i.x, s = i.y;
+ }
+ n.attr("transform", "translate(" + a + ", " + s + ")");
+ }
+ if (r.startLabelRight) {
+ const n = L[r.id].startRight;
+ let a = r.x, s = r.y;
+ if (e) {
+ const i = U.calcTerminalLabelPosition(
+ r.arrowTypeStart ? 10 : 0,
+ "start_right",
+ e
+ );
+ a = i.x, s = i.y;
+ }
+ n.attr("transform", "translate(" + a + ", " + s + ")");
+ }
+ if (r.endLabelLeft) {
+ const n = L[r.id].endLeft;
+ let a = r.x, s = r.y;
+ if (e) {
+ const i = U.calcTerminalLabelPosition(r.arrowTypeEnd ? 10 : 0, "end_left", e);
+ a = i.x, s = i.y;
+ }
+ n.attr("transform", "translate(" + a + ", " + s + ")");
+ }
+ if (r.endLabelRight) {
+ const n = L[r.id].endRight;
+ let a = r.x, s = r.y;
+ if (e) {
+ const i = U.calcTerminalLabelPosition(r.arrowTypeEnd ? 10 : 0, "end_right", e);
+ a = i.x, s = i.y;
+ }
+ n.attr("transform", "translate(" + a + ", " + s + ")");
+ }
+}, zt = (r, t) => {
+ const e = r.x, n = r.y, a = Math.abs(t.x - e), s = Math.abs(t.y - n), i = r.width / 2, l = r.height / 2;
+ return a >= i || s >= l;
+}, Qt = (r, t, e) => {
+ u.warn(`intersection calc abc89:
+ outsidePoint: ${JSON.stringify(t)}
+ insidePoint : ${JSON.stringify(e)}
+ node : x:${r.x} y:${r.y} w:${r.width} h:${r.height}`);
+ const n = r.x, a = r.y, s = Math.abs(n - e.x), i = r.width / 2;
+ let l = e.x < t.x ? i - s : i + s;
+ const c = r.height / 2, o = Math.abs(t.y - e.y), h = Math.abs(t.x - e.x);
+ if (Math.abs(a - t.y) * i > Math.abs(n - t.x) * c) {
+ let f = e.y < t.y ? t.y - c - a : a - c - t.y;
+ l = h * f / o;
+ const b = {
+ x: e.x < t.x ? e.x + l : e.x - h + l,
+ y: e.y < t.y ? e.y + o - f : e.y - o + f
+ };
+ return l === 0 && (b.x = t.x, b.y = t.y), h === 0 && (b.x = t.x), o === 0 && (b.y = t.y), u.warn(`abc89 topp/bott calc, Q ${o}, q ${f}, R ${h}, r ${l}`, b), b;
+ } else {
+ e.x < t.x ? l = t.x - i - n : l = n - i - t.x;
+ let f = o * l / h, b = e.x < t.x ? e.x + h - l : e.x - h + l, d = e.y < t.y ? e.y + f : e.y - f;
+ return u.warn(`sides calc abc89, Q ${o}, q ${f}, R ${h}, r ${l}`, { _x: b, _y: d }), l === 0 && (b = t.x, d = t.y), h === 0 && (b = t.x), o === 0 && (d = t.y), { x: b, y: d };
+ }
+}, K = (r, t) => {
+ u.warn("abc88 cutPathAtIntersect", r, t);
+ let e = [], n = r[0], a = !1;
+ return r.forEach((s) => {
+ if (u.info("abc88 checking point", s, t), !zt(t, s) && !a) {
+ const i = Qt(t, n, s);
+ u.warn("abc88 inside", s, n, i), u.warn("abc88 intersection", i);
+ let l = !1;
+ e.forEach((c) => {
+ l = l || c.x === i.x && c.y === i.y;
+ }), e.some((c) => c.x === i.x && c.y === i.y) ? u.warn("abc88 no intersect", i, e) : e.push(i), a = !0;
+ } else
+ u.warn("abc88 outside", s, n), n = s, a || e.push(s);
+ }), u.warn("abc88 returning points", e), e;
+}, lr = function(r, t, e, n, a, s) {
+ let i = e.points, l = !1;
+ const c = s.node(t.v);
+ var o = s.node(t.w);
+ u.info("abc88 InsertEdge: ", e), o.intersect && c.intersect && (i = i.slice(1, e.points.length - 1), i.unshift(c.intersect(i[0])), u.info(
+ "Last point",
+ i[i.length - 1],
+ o,
+ o.intersect(i[i.length - 1])
+ ), i.push(o.intersect(i[i.length - 1]))), e.toCluster && (u.info("to cluster abc88", n[e.toCluster]), i = K(e.points, n[e.toCluster].node), l = !0), e.fromCluster && (u.info("from cluster abc88", n[e.fromCluster]), i = K(i.reverse(), n[e.fromCluster].node).reverse(), l = !0);
+ const h = i.filter((k) => !Number.isNaN(k.y));
+ let f;
+ a === "graph" || a === "flowchart" ? f = e.curve || V : f = V;
+ const b = et().x(function(k) {
+ return k.x;
+ }).y(function(k) {
+ return k.y;
+ }).curve(f);
+ let d;
+ switch (e.thickness) {
+ case "normal":
+ d = "edge-thickness-normal";
+ break;
+ case "thick":
+ d = "edge-thickness-thick";
+ break;
+ case "invisible":
+ d = "edge-thickness-thick";
+ break;
+ default:
+ d = "";
+ }
+ switch (e.pattern) {
+ case "solid":
+ d += " edge-pattern-solid";
+ break;
+ case "dotted":
+ d += " edge-pattern-dotted";
+ break;
+ case "dashed":
+ d += " edge-pattern-dashed";
+ break;
+ }
+ const p = r.append("path").attr("d", b(h)).attr("id", e.id).attr("class", " " + d + (e.classes ? " " + e.classes : "")).attr("style", e.style);
+ let x = "";
+ switch ((w().flowchart.arrowMarkerAbsolute || w().state.arrowMarkerAbsolute) && (x = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, x = x.replace(/\(/g, "\\("), x = x.replace(/\)/g, "\\)")), u.info("arrowTypeStart", e.arrowTypeStart), u.info("arrowTypeEnd", e.arrowTypeEnd), e.arrowTypeStart) {
+ case "arrow_cross":
+ p.attr("marker-start", "url(" + x + "#" + a + "-crossStart)");
+ break;
+ case "arrow_point":
+ p.attr("marker-start", "url(" + x + "#" + a + "-pointStart)");
+ break;
+ case "arrow_barb":
+ p.attr("marker-start", "url(" + x + "#" + a + "-barbStart)");
+ break;
+ case "arrow_circle":
+ p.attr("marker-start", "url(" + x + "#" + a + "-circleStart)");
+ break;
+ case "aggregation":
+ p.attr("marker-start", "url(" + x + "#" + a + "-aggregationStart)");
+ break;
+ case "extension":
+ p.attr("marker-start", "url(" + x + "#" + a + "-extensionStart)");
+ break;
+ case "composition":
+ p.attr("marker-start", "url(" + x + "#" + a + "-compositionStart)");
+ break;
+ case "dependency":
+ p.attr("marker-start", "url(" + x + "#" + a + "-dependencyStart)");
+ break;
+ case "lollipop":
+ p.attr("marker-start", "url(" + x + "#" + a + "-lollipopStart)");
+ break;
+ }
+ switch (e.arrowTypeEnd) {
+ case "arrow_cross":
+ p.attr("marker-end", "url(" + x + "#" + a + "-crossEnd)");
+ break;
+ case "arrow_point":
+ p.attr("marker-end", "url(" + x + "#" + a + "-pointEnd)");
+ break;
+ case "arrow_barb":
+ p.attr("marker-end", "url(" + x + "#" + a + "-barbEnd)");
+ break;
+ case "arrow_circle":
+ p.attr("marker-end", "url(" + x + "#" + a + "-circleEnd)");
+ break;
+ case "aggregation":
+ p.attr("marker-end", "url(" + x + "#" + a + "-aggregationEnd)");
+ break;
+ case "extension":
+ p.attr("marker-end", "url(" + x + "#" + a + "-extensionEnd)");
+ break;
+ case "composition":
+ p.attr("marker-end", "url(" + x + "#" + a + "-compositionEnd)");
+ break;
+ case "dependency":
+ p.attr("marker-end", "url(" + x + "#" + a + "-dependencyEnd)");
+ break;
+ case "lollipop":
+ p.attr("marker-end", "url(" + x + "#" + a + "-lollipopEnd)");
+ break;
+ }
+ let y = {};
+ return l && (y.updatedPath = i), y.originalPath = e.points, y;
+};
+export {
+ Pt as a,
+ ar as b,
+ T as c,
+ sr as d,
+ tr as e,
+ ir as f,
+ lr as g,
+ nr as h,
+ vt as i,
+ S as l,
+ er as p,
+ rr as s,
+ m as u
+};
+//# sourceMappingURL=edges-de377bae.js.map
diff --git a/scopegraphs-render-docs/doc/js/erDiagram-20cc9db4.js b/scopegraphs-render-docs/doc/js/erDiagram-20cc9db4.js
new file mode 100644
index 0000000..65ef5be
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/erDiagram-20cc9db4.js
@@ -0,0 +1,1166 @@
+import { g as getConfig, o as setAccTitle, p as getAccTitle, v as setAccDescription, q as getAccDescription, w as setDiagramTitle, x as getDiagramTitle, l as log, y as clear$1, z as parseGenericTypes } from "./commonDb-573409be.js";
+import { m as mermaidAPI } from "./mermaidAPI-3ae0f2f0.js";
+import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
+import { select, line, curveBasis } from "d3";
+import { layout } from "dagre-d3-es/src/dagre/index.js";
+import { u as utils, k as configureSvgSize } from "./utils-d622194a.js";
+import { v5 } from "uuid";
+import "dompurify";
+import "dayjs";
+import "khroma";
+import "stylis";
+import "lodash-es/isEmpty.js";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 23, 25, 27, 29, 30, 31, 51], $V3 = [1, 17], $V4 = [1, 18], $V5 = [1, 19], $V6 = [1, 20], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 25], $Va = [1, 30], $Vb = [1, 31], $Vc = [1, 32], $Vd = [1, 33], $Ve = [6, 9, 11, 15, 20, 23, 25, 27, 29, 30, 31, 44, 45, 46, 47, 51], $Vf = [1, 45], $Vg = [30, 31, 48, 49], $Vh = [4, 6, 9, 11, 23, 25, 27, 29, 30, 31, 51], $Vi = [44, 45, 46, 47], $Vj = [22, 37], $Vk = [1, 65], $Vl = [1, 64], $Vm = [22, 37, 39, 41];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "ER_DIAGRAM": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "entityName": 17, "relSpec": 18, "role": 19, "BLOCK_START": 20, "attributes": 21, "BLOCK_STOP": 22, "title": 23, "title_value": 24, "acc_title": 25, "acc_title_value": 26, "acc_descr": 27, "acc_descr_value": 28, "acc_descr_multiline_value": 29, "ALPHANUM": 30, "ENTITY_NAME": 31, "attribute": 32, "attributeType": 33, "attributeName": 34, "attributeKeyTypeList": 35, "attributeComment": 36, "ATTRIBUTE_WORD": 37, "attributeKeyType": 38, "COMMA": 39, "ATTRIBUTE_KEY": 40, "COMMENT": 41, "cardinality": 42, "relType": 43, "ZERO_OR_ONE": 44, "ZERO_OR_MORE": 45, "ONE_OR_MORE": 46, "ONLY_ONE": 47, "NON_IDENTIFYING": 48, "IDENTIFYING": 49, "WORD": 50, "open_directive": 51, "type_directive": 52, "arg_directive": 53, "close_directive": 54, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "ER_DIAGRAM", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 20: "BLOCK_START", 22: "BLOCK_STOP", 23: "title", 24: "title_value", 25: "acc_title", 26: "acc_title_value", 27: "acc_descr", 28: "acc_descr_value", 29: "acc_descr_multiline_value", 30: "ALPHANUM", 31: "ENTITY_NAME", 37: "ATTRIBUTE_WORD", 39: "COMMA", 40: "ATTRIBUTE_KEY", 41: "COMMENT", 44: "ZERO_OR_ONE", 45: "ZERO_OR_MORE", 46: "ONE_OR_MORE", 47: "ONLY_ONE", 48: "NON_IDENTIFYING", 49: "IDENTIFYING", 50: "WORD", 51: "open_directive", 52: "type_directive", 53: "arg_directive", 54: "close_directive" },
+ productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 5], [10, 4], [10, 3], [10, 1], [10, 2], [10, 2], [10, 2], [10, 1], [17, 1], [17, 1], [21, 1], [21, 2], [32, 2], [32, 3], [32, 3], [32, 4], [33, 1], [34, 1], [35, 1], [35, 3], [38, 1], [36, 1], [18, 3], [42, 1], [42, 1], [42, 1], [42, 1], [43, 1], [43, 1], [19, 1], [19, 1], [19, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ break;
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = $$[$0];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 12:
+ yy.addEntity($$[$0 - 4]);
+ yy.addEntity($$[$0 - 2]);
+ yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]);
+ break;
+ case 13:
+ yy.addEntity($$[$0 - 3]);
+ yy.addAttributes($$[$0 - 3], $$[$0 - 1]);
+ break;
+ case 14:
+ yy.addEntity($$[$0 - 2]);
+ break;
+ case 15:
+ yy.addEntity($$[$0]);
+ break;
+ case 16:
+ case 17:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 18:
+ case 19:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 20:
+ case 43:
+ this.$ = $$[$0];
+ break;
+ case 21:
+ case 41:
+ case 42:
+ this.$ = $$[$0].replace(/"/g, "");
+ break;
+ case 22:
+ case 30:
+ this.$ = [$$[$0]];
+ break;
+ case 23:
+ $$[$0].push($$[$0 - 1]);
+ this.$ = $$[$0];
+ break;
+ case 24:
+ this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] };
+ break;
+ case 25:
+ this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] };
+ break;
+ case 26:
+ this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] };
+ break;
+ case 27:
+ this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] };
+ break;
+ case 28:
+ case 29:
+ case 32:
+ this.$ = $$[$0];
+ break;
+ case 31:
+ $$[$0 - 2].push($$[$0]);
+ this.$ = $$[$0 - 2];
+ break;
+ case 33:
+ this.$ = $$[$0].replace(/"/g, "");
+ break;
+ case 34:
+ this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };
+ break;
+ case 35:
+ this.$ = yy.Cardinality.ZERO_OR_ONE;
+ break;
+ case 36:
+ this.$ = yy.Cardinality.ZERO_OR_MORE;
+ break;
+ case 37:
+ this.$ = yy.Cardinality.ONE_OR_MORE;
+ break;
+ case 38:
+ this.$ = yy.Cardinality.ONLY_ONE;
+ break;
+ case 39:
+ this.$ = yy.Identification.NON_IDENTIFYING;
+ break;
+ case 40:
+ this.$ = yy.Identification.IDENTIFYING;
+ break;
+ case 44:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 45:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 46:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 47:
+ yy.parseDirective("}%%", "close_directive", "er");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 51: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 51: $V1 }, { 13: 8, 52: [1, 9] }, { 52: [2, 44] }, { 6: [1, 10], 7: 15, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: 16, 23: $V3, 25: $V4, 27: $V5, 29: $V6, 30: $V7, 31: $V8, 51: $V1 }, { 1: [2, 2] }, { 14: 23, 15: [1, 24], 54: $V9 }, o([15, 54], [2, 45]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 15, 10: 26, 12: 4, 17: 16, 23: $V3, 25: $V4, 27: $V5, 29: $V6, 30: $V7, 31: $V8, 51: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), o($V2, [2, 15], { 18: 27, 42: 29, 20: [1, 28], 44: $Va, 45: $Vb, 46: $Vc, 47: $Vd }), { 24: [1, 34] }, { 26: [1, 35] }, { 28: [1, 36] }, o($V2, [2, 19]), o($Ve, [2, 20]), o($Ve, [2, 21]), { 11: [1, 37] }, { 16: 38, 53: [1, 39] }, { 11: [2, 47] }, o($V2, [2, 5]), { 17: 40, 30: $V7, 31: $V8 }, { 21: 41, 22: [1, 42], 32: 43, 33: 44, 37: $Vf }, { 43: 46, 48: [1, 47], 49: [1, 48] }, o($Vg, [2, 35]), o($Vg, [2, 36]), o($Vg, [2, 37]), o($Vg, [2, 38]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($Vh, [2, 9]), { 14: 49, 54: $V9 }, { 54: [2, 46] }, { 15: [1, 50] }, { 22: [1, 51] }, o($V2, [2, 14]), { 21: 52, 22: [2, 22], 32: 43, 33: 44, 37: $Vf }, { 34: 53, 37: [1, 54] }, { 37: [2, 28] }, { 42: 55, 44: $Va, 45: $Vb, 46: $Vc, 47: $Vd }, o($Vi, [2, 39]), o($Vi, [2, 40]), { 11: [1, 56] }, { 19: 57, 30: [1, 60], 31: [1, 59], 50: [1, 58] }, o($V2, [2, 13]), { 22: [2, 23] }, o($Vj, [2, 24], { 35: 61, 36: 62, 38: 63, 40: $Vk, 41: $Vl }), o([22, 37, 40, 41], [2, 29]), o([30, 31], [2, 34]), o($Vh, [2, 10]), o($V2, [2, 12]), o($V2, [2, 41]), o($V2, [2, 42]), o($V2, [2, 43]), o($Vj, [2, 25], { 36: 66, 39: [1, 67], 41: $Vl }), o($Vj, [2, 26]), o($Vm, [2, 30]), o($Vj, [2, 33]), o($Vm, [2, 32]), o($Vj, [2, 27]), { 38: 68, 40: $Vk }, o($Vm, [2, 31])],
+ defaultActions: { 5: [2, 44], 7: [2, 2], 25: [2, 47], 39: [2, 46], 45: [2, 28], 52: [2, 23] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("acc_title");
+ return 25;
+ case 1:
+ this.popState();
+ return "acc_title_value";
+ case 2:
+ this.begin("acc_descr");
+ return 27;
+ case 3:
+ this.popState();
+ return "acc_descr_value";
+ case 4:
+ this.begin("acc_descr_multiline");
+ break;
+ case 5:
+ this.popState();
+ break;
+ case 6:
+ return "acc_descr_multiline_value";
+ case 7:
+ this.begin("open_directive");
+ return 51;
+ case 8:
+ this.begin("type_directive");
+ return 52;
+ case 9:
+ this.popState();
+ this.begin("arg_directive");
+ return 15;
+ case 10:
+ this.popState();
+ this.popState();
+ return 54;
+ case 11:
+ return 53;
+ case 12:
+ return 11;
+ case 13:
+ break;
+ case 14:
+ return 9;
+ case 15:
+ return 31;
+ case 16:
+ return 50;
+ case 17:
+ return 4;
+ case 18:
+ this.begin("block");
+ return 20;
+ case 19:
+ return 39;
+ case 20:
+ break;
+ case 21:
+ return 40;
+ case 22:
+ return 37;
+ case 23:
+ return 37;
+ case 24:
+ return 41;
+ case 25:
+ break;
+ case 26:
+ this.popState();
+ return 22;
+ case 27:
+ return yy_.yytext[0];
+ case 28:
+ return 44;
+ case 29:
+ return 46;
+ case 30:
+ return 46;
+ case 31:
+ return 46;
+ case 32:
+ return 44;
+ case 33:
+ return 44;
+ case 34:
+ return 45;
+ case 35:
+ return 45;
+ case 36:
+ return 45;
+ case 37:
+ return 45;
+ case 38:
+ return 45;
+ case 39:
+ return 46;
+ case 40:
+ return 45;
+ case 41:
+ return 46;
+ case 42:
+ return 47;
+ case 43:
+ return 47;
+ case 44:
+ return 47;
+ case 45:
+ return 47;
+ case 46:
+ return 44;
+ case 47:
+ return 45;
+ case 48:
+ return 46;
+ case 49:
+ return 48;
+ case 50:
+ return 49;
+ case 51:
+ return 49;
+ case 52:
+ return 48;
+ case 53:
+ return 48;
+ case 54:
+ return 48;
+ case 55:
+ return 30;
+ case 56:
+ return yy_.yytext[0];
+ case 57:
+ return 6;
+ }
+ },
+ rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:[\s]+)/i, /^(?:"[^"%\r\n\v\b\\]+")/i, /^(?:"[^"]*")/i, /^(?:erDiagram\b)/i, /^(?:\{)/i, /^(?:,)/i, /^(?:\s+)/i, /^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i, /^(?:"[^"]*")/i, /^(?:[\n]+)/i, /^(?:\})/i, /^(?:.)/i, /^(?:one or zero\b)/i, /^(?:one or more\b)/i, /^(?:one or many\b)/i, /^(?:1\+)/i, /^(?:\|o\b)/i, /^(?:zero or one\b)/i, /^(?:zero or more\b)/i, /^(?:zero or many\b)/i, /^(?:0\+)/i, /^(?:\}o\b)/i, /^(?:many\(0\))/i, /^(?:many\(1\))/i, /^(?:many\b)/i, /^(?:\}\|)/i, /^(?:one\b)/i, /^(?:only one\b)/i, /^(?:1\b)/i, /^(?:\|\|)/i, /^(?:o\|)/i, /^(?:o\{)/i, /^(?:\|\{)/i, /^(?:\.\.)/i, /^(?:--)/i, /^(?:to\b)/i, /^(?:optionally to\b)/i, /^(?:\.-)/i, /^(?:-\.)/i, /^(?:[A-Za-z][A-Za-z0-9\-_]*)/i, /^(?:.)/i, /^(?:$)/i],
+ conditions: { "acc_descr_multiline": { "rules": [5, 6], "inclusive": false }, "acc_descr": { "rules": [3], "inclusive": false }, "acc_title": { "rules": [1], "inclusive": false }, "open_directive": { "rules": [8], "inclusive": false }, "type_directive": { "rules": [9, 10], "inclusive": false }, "arg_directive": { "rules": [10, 11], "inclusive": false }, "block": { "rules": [19, 20, 21, 22, 23, 24, 25, 26, 27], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 12, 13, 14, 15, 16, 17, 18, 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], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const erParser = parser;
+let entities = {};
+let relationships = [];
+const Cardinality = {
+ ZERO_OR_ONE: "ZERO_OR_ONE",
+ ZERO_OR_MORE: "ZERO_OR_MORE",
+ ONE_OR_MORE: "ONE_OR_MORE",
+ ONLY_ONE: "ONLY_ONE"
+};
+const Identification = {
+ NON_IDENTIFYING: "NON_IDENTIFYING",
+ IDENTIFYING: "IDENTIFYING"
+};
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const addEntity = function(name) {
+ if (entities[name] === void 0) {
+ entities[name] = { attributes: [] };
+ log.info("Added new entity :", name);
+ }
+ return entities[name];
+};
+const getEntities = () => entities;
+const addAttributes = function(entityName, attribs) {
+ let entity = addEntity(entityName);
+ let i;
+ for (i = attribs.length - 1; i >= 0; i--) {
+ entity.attributes.push(attribs[i]);
+ log.debug("Added attribute ", attribs[i].attributeName);
+ }
+};
+const addRelationship = function(entA, rolA, entB, rSpec) {
+ let rel = {
+ entityA: entA,
+ roleA: rolA,
+ entityB: entB,
+ relSpec: rSpec
+ };
+ relationships.push(rel);
+ log.debug("Added new relationship :", rel);
+};
+const getRelationships = () => relationships;
+const clear = function() {
+ entities = {};
+ relationships = [];
+ clear$1();
+};
+const erDb = {
+ Cardinality,
+ Identification,
+ parseDirective,
+ getConfig: () => getConfig().er,
+ addEntity,
+ addAttributes,
+ getEntities,
+ addRelationship,
+ getRelationships,
+ clear,
+ setAccTitle,
+ getAccTitle,
+ setAccDescription,
+ getAccDescription,
+ setDiagramTitle,
+ getDiagramTitle
+};
+const ERMarkers = {
+ ONLY_ONE_START: "ONLY_ONE_START",
+ ONLY_ONE_END: "ONLY_ONE_END",
+ ZERO_OR_ONE_START: "ZERO_OR_ONE_START",
+ ZERO_OR_ONE_END: "ZERO_OR_ONE_END",
+ ONE_OR_MORE_START: "ONE_OR_MORE_START",
+ ONE_OR_MORE_END: "ONE_OR_MORE_END",
+ ZERO_OR_MORE_START: "ZERO_OR_MORE_START",
+ ZERO_OR_MORE_END: "ZERO_OR_MORE_END"
+};
+const insertMarkers = function(elem, conf2) {
+ let marker;
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18 M15,0 L15,18");
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_END).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,0 L3,18 M9,0 L9,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6);
+ marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_END).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6);
+ marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,0 L21,18");
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27");
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_END).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6);
+ marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_END).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6);
+ marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18");
+ return;
+};
+const erMarkers = {
+ ERMarkers,
+ insertMarkers
+};
+const BAD_ID_CHARS_REGEXP = /[^\dA-Za-z](\W)*/g;
+let conf = {};
+let entityNameIds = /* @__PURE__ */ new Map();
+const setConf = function(cnf) {
+ const keys = Object.keys(cnf);
+ for (const key of keys) {
+ conf[key] = cnf[key];
+ }
+};
+const drawAttributes = (groupNode, entityTextNode, attributes) => {
+ const heightPadding = conf.entityPadding / 3;
+ const widthPadding = conf.entityPadding / 3;
+ const attrFontSize = conf.fontSize * 0.85;
+ const labelBBox = entityTextNode.node().getBBox();
+ const attributeNodes = [];
+ let hasKeyType = false;
+ let hasComment = false;
+ let maxTypeWidth = 0;
+ let maxNameWidth = 0;
+ let maxKeyWidth = 0;
+ let maxCommentWidth = 0;
+ let cumulativeHeight = labelBBox.height + heightPadding * 2;
+ let attrNum = 1;
+ attributes.forEach((item) => {
+ if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) {
+ hasKeyType = true;
+ }
+ if (item.attributeComment !== void 0) {
+ hasComment = true;
+ }
+ });
+ attributes.forEach((item) => {
+ const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`;
+ let nodeHeight = 0;
+ const attributeType = parseGenericTypes(item.attributeType);
+ const typeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-type`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(attributeType);
+ const nameNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-name`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeName);
+ const attributeNode = {};
+ attributeNode.tn = typeNode;
+ attributeNode.nn = nameNode;
+ const typeBBox = typeNode.node().getBBox();
+ const nameBBox = nameNode.node().getBBox();
+ maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width);
+ maxNameWidth = Math.max(maxNameWidth, nameBBox.width);
+ nodeHeight = Math.max(typeBBox.height, nameBBox.height);
+ if (hasKeyType) {
+ const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(",") : "";
+ const keyTypeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-key`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(keyTypeNodeText);
+ attributeNode.kn = keyTypeNode;
+ const keyTypeBBox = keyTypeNode.node().getBBox();
+ maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width);
+ nodeHeight = Math.max(nodeHeight, keyTypeBBox.height);
+ }
+ if (hasComment) {
+ const commentNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-comment`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeComment || "");
+ attributeNode.cn = commentNode;
+ const commentNodeBBox = commentNode.node().getBBox();
+ maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width);
+ nodeHeight = Math.max(nodeHeight, commentNodeBBox.height);
+ }
+ attributeNode.height = nodeHeight;
+ attributeNodes.push(attributeNode);
+ cumulativeHeight += nodeHeight + heightPadding * 2;
+ attrNum += 1;
+ });
+ let widthPaddingFactor = 4;
+ if (hasKeyType) {
+ widthPaddingFactor += 2;
+ }
+ if (hasComment) {
+ widthPaddingFactor += 2;
+ }
+ const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth;
+ const bBox = {
+ width: Math.max(
+ conf.minEntityWidth,
+ Math.max(
+ labelBBox.width + conf.entityPadding * 2,
+ maxWidth + widthPadding * widthPaddingFactor
+ )
+ ),
+ height: attributes.length > 0 ? cumulativeHeight : Math.max(conf.minEntityHeight, labelBBox.height + conf.entityPadding * 2)
+ };
+ if (attributes.length > 0) {
+ const spareColumnWidth = Math.max(
+ 0,
+ (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2)
+ );
+ entityTextNode.attr(
+ "transform",
+ "translate(" + bBox.width / 2 + "," + (heightPadding + labelBBox.height / 2) + ")"
+ );
+ let heightOffset = labelBBox.height + heightPadding * 2;
+ let attribStyle = "attributeBoxOdd";
+ attributeNodes.forEach((attributeNode) => {
+ const alignY = heightOffset + heightPadding + attributeNode.height / 2;
+ attributeNode.tn.attr("transform", "translate(" + widthPadding + "," + alignY + ")");
+ const typeRect = groupNode.insert("rect", "#" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr("x", 0).attr("y", heightOffset).attr("width", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ const nameXOffset = parseFloat(typeRect.attr("x")) + parseFloat(typeRect.attr("width"));
+ attributeNode.nn.attr(
+ "transform",
+ "translate(" + (nameXOffset + widthPadding) + "," + alignY + ")"
+ );
+ const nameRect = groupNode.insert("rect", "#" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr("x", nameXOffset).attr("y", heightOffset).attr("width", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ let keyTypeAndCommentXOffset = parseFloat(nameRect.attr("x")) + parseFloat(nameRect.attr("width"));
+ if (hasKeyType) {
+ attributeNode.kn.attr(
+ "transform",
+ "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")"
+ );
+ const keyTypeRect = groupNode.insert("rect", "#" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr("x")) + parseFloat(keyTypeRect.attr("width"));
+ }
+ if (hasComment) {
+ attributeNode.cn.attr(
+ "transform",
+ "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")"
+ );
+ groupNode.insert("rect", "#" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, "true").attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ }
+ heightOffset += attributeNode.height + heightPadding * 2;
+ attribStyle = attribStyle === "attributeBoxOdd" ? "attributeBoxEven" : "attributeBoxOdd";
+ });
+ } else {
+ bBox.height = Math.max(conf.minEntityHeight, cumulativeHeight);
+ entityTextNode.attr("transform", "translate(" + bBox.width / 2 + "," + bBox.height / 2 + ")");
+ }
+ return bBox;
+};
+const drawEntities = function(svgNode, entities2, graph) {
+ const keys = Object.keys(entities2);
+ let firstOne;
+ keys.forEach(function(entityName) {
+ const entityId = generateId(entityName, "entity");
+ entityNameIds.set(entityName, entityId);
+ const groupNode = svgNode.append("g").attr("id", entityId);
+ firstOne = firstOne === void 0 ? entityId : firstOne;
+ const textId = "text-" + entityId;
+ const textNode = groupNode.append("text").classed("er entityLabel", true).attr("id", textId).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "middle").style("font-family", getConfig().fontFamily).style("font-size", conf.fontSize + "px").text(entityName);
+ const { width: entityWidth, height: entityHeight } = drawAttributes(
+ groupNode,
+ textNode,
+ entities2[entityName].attributes
+ );
+ const rectNode = groupNode.insert("rect", "#" + textId).classed("er entityBox", true).attr("x", 0).attr("y", 0).attr("width", entityWidth).attr("height", entityHeight);
+ const rectBBox = rectNode.node().getBBox();
+ graph.setNode(entityId, {
+ width: rectBBox.width,
+ height: rectBBox.height,
+ shape: "rect",
+ id: entityId
+ });
+ });
+ return firstOne;
+};
+const adjustEntities = function(svgNode, graph) {
+ graph.nodes().forEach(function(v) {
+ if (v !== void 0 && graph.node(v) !== void 0) {
+ svgNode.select("#" + v).attr(
+ "transform",
+ "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )"
+ );
+ }
+ });
+};
+const getEdgeName = function(rel) {
+ return (rel.entityA + rel.roleA + rel.entityB).replace(/\s/g, "");
+};
+const addRelationships = function(relationships2, g) {
+ relationships2.forEach(function(r) {
+ g.setEdge(
+ entityNameIds.get(r.entityA),
+ entityNameIds.get(r.entityB),
+ { relationship: r },
+ getEdgeName(r)
+ );
+ });
+ return relationships2;
+};
+let relCnt = 0;
+const drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {
+ relCnt++;
+ const edge = g.edge(
+ entityNameIds.get(rel.entityA),
+ entityNameIds.get(rel.entityB),
+ getEdgeName(rel)
+ );
+ const lineFunction = line().x(function(d) {
+ return d.x;
+ }).y(function(d) {
+ return d.y;
+ }).curve(curveBasis);
+ const svgPath = svg.insert("path", "#" + insert).classed("er relationshipLine", true).attr("d", lineFunction(edge.points)).style("stroke", conf.stroke).style("fill", "none");
+ if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) {
+ svgPath.attr("stroke-dasharray", "8,8");
+ }
+ let url = "";
+ if (conf.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ switch (rel.relSpec.cardA) {
+ case diagObj.db.Cardinality.ZERO_OR_ONE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_END + ")");
+ break;
+ case diagObj.db.Cardinality.ZERO_OR_MORE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_END + ")");
+ break;
+ case diagObj.db.Cardinality.ONE_OR_MORE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_END + ")");
+ break;
+ case diagObj.db.Cardinality.ONLY_ONE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_END + ")");
+ break;
+ }
+ switch (rel.relSpec.cardB) {
+ case diagObj.db.Cardinality.ZERO_OR_ONE:
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_START + ")"
+ );
+ break;
+ case diagObj.db.Cardinality.ZERO_OR_MORE:
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_START + ")"
+ );
+ break;
+ case diagObj.db.Cardinality.ONE_OR_MORE:
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_START + ")"
+ );
+ break;
+ case diagObj.db.Cardinality.ONLY_ONE:
+ svgPath.attr("marker-start", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_START + ")");
+ break;
+ }
+ const len = svgPath.node().getTotalLength();
+ const labelPoint = svgPath.node().getPointAtLength(len * 0.5);
+ const labelId = "rel" + relCnt;
+ const labelNode = svg.append("text").classed("er relationshipLabel", true).attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).style("text-anchor", "middle").style("dominant-baseline", "middle").style("font-family", getConfig().fontFamily).style("font-size", conf.fontSize + "px").text(rel.roleA);
+ const labelBBox = labelNode.node().getBBox();
+ svg.insert("rect", "#" + labelId).classed("er relationshipLabelBox", true).attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height);
+};
+const draw = function(text, id, _version, diagObj) {
+ conf = getConfig().er;
+ log.info("Drawing ER diagram");
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const svg = root.select(`[id='${id}']`);
+ erMarkers.insertMarkers(svg, conf);
+ let g;
+ g = new graphlib.Graph({
+ multigraph: true,
+ directed: true,
+ compound: false
+ }).setGraph({
+ rankdir: conf.layoutDirection,
+ marginx: 20,
+ marginy: 20,
+ nodesep: 100,
+ edgesep: 100,
+ ranksep: 100
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g);
+ const relationships2 = addRelationships(diagObj.db.getRelationships(), g);
+ layout(g);
+ adjustEntities(svg, g);
+ relationships2.forEach(function(rel) {
+ drawRelationshipFromLayout(svg, rel, g, firstEntity, diagObj);
+ });
+ const padding = conf.diagramPadding;
+ utils.insertTitle(svg, "entityTitleText", conf.titleTopMargin, diagObj.db.getDiagramTitle());
+ const svgBounds = svg.node().getBBox();
+ const width = svgBounds.width + padding * 2;
+ const height = svgBounds.height + padding * 2;
+ configureSvgSize(svg, height, width, conf.useMaxWidth);
+ svg.attr("viewBox", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);
+};
+const MERMAID_ERDIAGRAM_UUID = "28e9f9db-3c8d-5aa5-9faf-44286ae5937c";
+function generateId(str = "", prefix = "") {
+ const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, "");
+ return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${v5(
+ str,
+ MERMAID_ERDIAGRAM_UUID
+ )}`;
+}
+function strWithHyphen(str = "") {
+ return str.length > 0 ? `${str}-` : "";
+}
+const erRenderer = {
+ setConf,
+ draw
+};
+const getStyles = (options) => `
+ .entityBox {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+ }
+
+ .attributeBoxOdd {
+ fill: ${options.attributeBackgroundColorOdd};
+ stroke: ${options.nodeBorder};
+ }
+
+ .attributeBoxEven {
+ fill: ${options.attributeBackgroundColorEven};
+ stroke: ${options.nodeBorder};
+ }
+
+ .relationshipLabelBox {
+ fill: ${options.tertiaryColor};
+ opacity: 0.7;
+ background-color: ${options.tertiaryColor};
+ rect {
+ opacity: 0.5;
+ }
+ }
+
+ .relationshipLine {
+ stroke: ${options.lineColor};
+ }
+
+ .entityTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor};
+ }
+`;
+const erStyles = getStyles;
+const diagram = {
+ parser: erParser,
+ db: erDb,
+ renderer: erRenderer,
+ styles: erStyles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=erDiagram-20cc9db4.js.map
diff --git a/scopegraphs-render-docs/doc/js/erDiagram-215b0341.js b/scopegraphs-render-docs/doc/js/erDiagram-215b0341.js
new file mode 100644
index 0000000..ec14c43
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/erDiagram-215b0341.js
@@ -0,0 +1,920 @@
+import { g as U, q as xt, v as kt, x as Ot, w as bt, y as Rt, z as Nt, l as tt, A as Tt, h as at, D as vt } from "./commonDb-41f8b4c5.js";
+import { m as At } from "./mermaidAPI-67f627de.js";
+import { G as Mt, l as It } from "./layout-492ec81d.js";
+import { u as wt, v as St, G as Dt } from "./utils-8ea37061.js";
+import { l as Bt } from "./line-05ccbb85.js";
+import "./array-2ff2c7a6.js";
+import "./constant-2fe7eae5.js";
+var ot = function() {
+ var t = function(v, n, s, d) {
+ for (s = s || {}, d = v.length; d--; s[v[d]] = n)
+ ;
+ return s;
+ }, r = [1, 2], e = [1, 5], a = [6, 9, 11, 23, 25, 27, 29, 30, 31, 51], c = [1, 17], p = [1, 18], f = [1, 19], l = [1, 20], h = [1, 21], _ = [1, 22], g = [1, 25], E = [1, 30], O = [1, 31], y = [1, 32], M = [1, 33], B = [6, 9, 11, 15, 20, 23, 25, 27, 29, 30, 31, 44, 45, 46, 47, 51], V = [1, 45], z = [30, 31, 48, 49], L = [4, 6, 9, 11, 23, 25, 27, 29, 30, 31, 51], R = [44, 45, 46, 47], N = [22, 37], T = [1, 65], x = [1, 64], S = [22, 37, 39, 41], C = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, ER_DIAGRAM: 4, document: 5, EOF: 6, directive: 7, line: 8, SPACE: 9, statement: 10, NEWLINE: 11, openDirective: 12, typeDirective: 13, closeDirective: 14, ":": 15, argDirective: 16, entityName: 17, relSpec: 18, role: 19, BLOCK_START: 20, attributes: 21, BLOCK_STOP: 22, title: 23, title_value: 24, acc_title: 25, acc_title_value: 26, acc_descr: 27, acc_descr_value: 28, acc_descr_multiline_value: 29, ALPHANUM: 30, ENTITY_NAME: 31, attribute: 32, attributeType: 33, attributeName: 34, attributeKeyTypeList: 35, attributeComment: 36, ATTRIBUTE_WORD: 37, attributeKeyType: 38, COMMA: 39, ATTRIBUTE_KEY: 40, COMMENT: 41, cardinality: 42, relType: 43, ZERO_OR_ONE: 44, ZERO_OR_MORE: 45, ONE_OR_MORE: 46, ONLY_ONE: 47, NON_IDENTIFYING: 48, IDENTIFYING: 49, WORD: 50, open_directive: 51, type_directive: 52, arg_directive: 53, close_directive: 54, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 4: "ER_DIAGRAM", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 20: "BLOCK_START", 22: "BLOCK_STOP", 23: "title", 24: "title_value", 25: "acc_title", 26: "acc_title_value", 27: "acc_descr", 28: "acc_descr_value", 29: "acc_descr_multiline_value", 30: "ALPHANUM", 31: "ENTITY_NAME", 37: "ATTRIBUTE_WORD", 39: "COMMA", 40: "ATTRIBUTE_KEY", 41: "COMMENT", 44: "ZERO_OR_ONE", 45: "ZERO_OR_MORE", 46: "ONE_OR_MORE", 47: "ONLY_ONE", 48: "NON_IDENTIFYING", 49: "IDENTIFYING", 50: "WORD", 51: "open_directive", 52: "type_directive", 53: "arg_directive", 54: "close_directive" },
+ productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 5], [10, 4], [10, 3], [10, 1], [10, 2], [10, 2], [10, 2], [10, 1], [17, 1], [17, 1], [21, 1], [21, 2], [32, 2], [32, 3], [32, 3], [32, 4], [33, 1], [34, 1], [35, 1], [35, 3], [38, 1], [36, 1], [18, 3], [42, 1], [42, 1], [42, 1], [42, 1], [43, 1], [43, 1], [19, 1], [19, 1], [19, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
+ performAction: function(n, s, d, u, m, i, X) {
+ var o = i.length - 1;
+ switch (m) {
+ case 1:
+ break;
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ i[o - 1].push(i[o]), this.$ = i[o - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = i[o];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 12:
+ u.addEntity(i[o - 4]), u.addEntity(i[o - 2]), u.addRelationship(i[o - 4], i[o], i[o - 2], i[o - 3]);
+ break;
+ case 13:
+ u.addEntity(i[o - 3]), u.addAttributes(i[o - 3], i[o - 1]);
+ break;
+ case 14:
+ u.addEntity(i[o - 2]);
+ break;
+ case 15:
+ u.addEntity(i[o]);
+ break;
+ case 16:
+ case 17:
+ this.$ = i[o].trim(), u.setAccTitle(this.$);
+ break;
+ case 18:
+ case 19:
+ this.$ = i[o].trim(), u.setAccDescription(this.$);
+ break;
+ case 20:
+ case 43:
+ this.$ = i[o];
+ break;
+ case 21:
+ case 41:
+ case 42:
+ this.$ = i[o].replace(/"/g, "");
+ break;
+ case 22:
+ case 30:
+ this.$ = [i[o]];
+ break;
+ case 23:
+ i[o].push(i[o - 1]), this.$ = i[o];
+ break;
+ case 24:
+ this.$ = { attributeType: i[o - 1], attributeName: i[o] };
+ break;
+ case 25:
+ this.$ = { attributeType: i[o - 2], attributeName: i[o - 1], attributeKeyTypeList: i[o] };
+ break;
+ case 26:
+ this.$ = { attributeType: i[o - 2], attributeName: i[o - 1], attributeComment: i[o] };
+ break;
+ case 27:
+ this.$ = { attributeType: i[o - 3], attributeName: i[o - 2], attributeKeyTypeList: i[o - 1], attributeComment: i[o] };
+ break;
+ case 28:
+ case 29:
+ case 32:
+ this.$ = i[o];
+ break;
+ case 31:
+ i[o - 2].push(i[o]), this.$ = i[o - 2];
+ break;
+ case 33:
+ this.$ = i[o].replace(/"/g, "");
+ break;
+ case 34:
+ this.$ = { cardA: i[o], relType: i[o - 1], cardB: i[o - 2] };
+ break;
+ case 35:
+ this.$ = u.Cardinality.ZERO_OR_ONE;
+ break;
+ case 36:
+ this.$ = u.Cardinality.ZERO_OR_MORE;
+ break;
+ case 37:
+ this.$ = u.Cardinality.ONE_OR_MORE;
+ break;
+ case 38:
+ this.$ = u.Cardinality.ONLY_ONE;
+ break;
+ case 39:
+ this.$ = u.Identification.NON_IDENTIFYING;
+ break;
+ case 40:
+ this.$ = u.Identification.IDENTIFYING;
+ break;
+ case 44:
+ u.parseDirective("%%{", "open_directive");
+ break;
+ case 45:
+ u.parseDirective(i[o], "type_directive");
+ break;
+ case 46:
+ i[o] = i[o].trim().replace(/'/g, '"'), u.parseDirective(i[o], "arg_directive");
+ break;
+ case 47:
+ u.parseDirective("}%%", "close_directive", "er");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: r, 7: 3, 12: 4, 51: e }, { 1: [3] }, t(a, [2, 3], { 5: 6 }), { 3: 7, 4: r, 7: 3, 12: 4, 51: e }, { 13: 8, 52: [1, 9] }, { 52: [2, 44] }, { 6: [1, 10], 7: 15, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: 16, 23: c, 25: p, 27: f, 29: l, 30: h, 31: _, 51: e }, { 1: [2, 2] }, { 14: 23, 15: [1, 24], 54: g }, t([15, 54], [2, 45]), t(a, [2, 8], { 1: [2, 1] }), t(a, [2, 4]), { 7: 15, 10: 26, 12: 4, 17: 16, 23: c, 25: p, 27: f, 29: l, 30: h, 31: _, 51: e }, t(a, [2, 6]), t(a, [2, 7]), t(a, [2, 11]), t(a, [2, 15], { 18: 27, 42: 29, 20: [1, 28], 44: E, 45: O, 46: y, 47: M }), { 24: [1, 34] }, { 26: [1, 35] }, { 28: [1, 36] }, t(a, [2, 19]), t(B, [2, 20]), t(B, [2, 21]), { 11: [1, 37] }, { 16: 38, 53: [1, 39] }, { 11: [2, 47] }, t(a, [2, 5]), { 17: 40, 30: h, 31: _ }, { 21: 41, 22: [1, 42], 32: 43, 33: 44, 37: V }, { 43: 46, 48: [1, 47], 49: [1, 48] }, t(z, [2, 35]), t(z, [2, 36]), t(z, [2, 37]), t(z, [2, 38]), t(a, [2, 16]), t(a, [2, 17]), t(a, [2, 18]), t(L, [2, 9]), { 14: 49, 54: g }, { 54: [2, 46] }, { 15: [1, 50] }, { 22: [1, 51] }, t(a, [2, 14]), { 21: 52, 22: [2, 22], 32: 43, 33: 44, 37: V }, { 34: 53, 37: [1, 54] }, { 37: [2, 28] }, { 42: 55, 44: E, 45: O, 46: y, 47: M }, t(R, [2, 39]), t(R, [2, 40]), { 11: [1, 56] }, { 19: 57, 30: [1, 60], 31: [1, 59], 50: [1, 58] }, t(a, [2, 13]), { 22: [2, 23] }, t(N, [2, 24], { 35: 61, 36: 62, 38: 63, 40: T, 41: x }), t([22, 37, 40, 41], [2, 29]), t([30, 31], [2, 34]), t(L, [2, 10]), t(a, [2, 12]), t(a, [2, 41]), t(a, [2, 42]), t(a, [2, 43]), t(N, [2, 25], { 36: 66, 39: [1, 67], 41: x }), t(N, [2, 26]), t(S, [2, 30]), t(N, [2, 33]), t(S, [2, 32]), t(N, [2, 27]), { 38: 68, 40: T }, t(S, [2, 31])],
+ defaultActions: { 5: [2, 44], 7: [2, 2], 25: [2, 47], 39: [2, 46], 45: [2, 28], 52: [2, 23] },
+ parseError: function(n, s) {
+ if (s.recoverable)
+ this.trace(n);
+ else {
+ var d = new Error(n);
+ throw d.hash = s, d;
+ }
+ },
+ parse: function(n) {
+ var s = this, d = [0], u = [], m = [null], i = [], X = this.table, o = "", q = 0, lt = 0, _t = 2, ht = 1, gt = i.slice.call(arguments, 1), b = Object.create(this.lexer), G = { yy: {} };
+ for (var et in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, et) && (G.yy[et] = this.yy[et]);
+ b.setInput(n, G.yy), G.yy.lexer = b, G.yy.parser = this, typeof b.yylloc > "u" && (b.yylloc = {});
+ var rt = b.yylloc;
+ i.push(rt);
+ var mt = b.options && b.options.ranges;
+ typeof G.yy.parseError == "function" ? this.parseError = G.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function Et() {
+ var F;
+ return F = u.pop() || b.lex() || ht, typeof F != "number" && (F instanceof Array && (u = F, F = u.pop()), F = s.symbols_[F] || F), F;
+ }
+ for (var I, K, w, it, H = {}, J, Z, dt, $; ; ) {
+ if (K = d[d.length - 1], this.defaultActions[K] ? w = this.defaultActions[K] : ((I === null || typeof I > "u") && (I = Et()), w = X[K] && X[K][I]), typeof w > "u" || !w.length || !w[0]) {
+ var nt = "";
+ $ = [];
+ for (J in X[K])
+ this.terminals_[J] && J > _t && $.push("'" + this.terminals_[J] + "'");
+ b.showPosition ? nt = "Parse error on line " + (q + 1) + `:
+` + b.showPosition() + `
+Expecting ` + $.join(", ") + ", got '" + (this.terminals_[I] || I) + "'" : nt = "Parse error on line " + (q + 1) + ": Unexpected " + (I == ht ? "end of input" : "'" + (this.terminals_[I] || I) + "'"), this.parseError(nt, {
+ text: b.match,
+ token: this.terminals_[I] || I,
+ line: b.yylineno,
+ loc: rt,
+ expected: $
+ });
+ }
+ if (w[0] instanceof Array && w.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + K + ", token: " + I);
+ switch (w[0]) {
+ case 1:
+ d.push(I), m.push(b.yytext), i.push(b.yylloc), d.push(w[1]), I = null, lt = b.yyleng, o = b.yytext, q = b.yylineno, rt = b.yylloc;
+ break;
+ case 2:
+ if (Z = this.productions_[w[1]][1], H.$ = m[m.length - Z], H._$ = {
+ first_line: i[i.length - (Z || 1)].first_line,
+ last_line: i[i.length - 1].last_line,
+ first_column: i[i.length - (Z || 1)].first_column,
+ last_column: i[i.length - 1].last_column
+ }, mt && (H._$.range = [
+ i[i.length - (Z || 1)].range[0],
+ i[i.length - 1].range[1]
+ ]), it = this.performAction.apply(H, [
+ o,
+ lt,
+ q,
+ G.yy,
+ w[1],
+ m,
+ i
+ ].concat(gt)), typeof it < "u")
+ return it;
+ Z && (d = d.slice(0, -1 * Z * 2), m = m.slice(0, -1 * Z), i = i.slice(0, -1 * Z)), d.push(this.productions_[w[1]][0]), m.push(H.$), i.push(H._$), dt = X[d[d.length - 2]][d[d.length - 1]], d.push(dt);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, D = function() {
+ var v = {
+ EOF: 1,
+ parseError: function(s, d) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(s, d);
+ else
+ throw new Error(s);
+ },
+ // resets the lexer, sets new input
+ setInput: function(n, s) {
+ return this.yy = s || this.yy || {}, this._input = n, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var n = this._input[0];
+ this.yytext += n, this.yyleng++, this.offset++, this.match += n, this.matched += n;
+ var s = n.match(/(?:\r\n?|\n).*/g);
+ return s ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), n;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(n) {
+ var s = n.length, d = n.split(/(?:\r\n?|\n)/g);
+ this._input = n + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - s), this.offset -= s;
+ var u = 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), d.length - 1 && (this.yylineno -= d.length - 1);
+ var m = 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: d ? (d.length === u.length ? this.yylloc.first_column : 0) + u[u.length - d.length].length - d[0].length : this.yylloc.first_column - s
+ }, this.options.ranges && (this.yylloc.range = [m[0], m[0] + this.yyleng - s]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var n = this.matched.substr(0, this.matched.length - this.match.length);
+ return (n.length > 20 ? "..." : "") + n.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var n = this.match;
+ return n.length < 20 && (n += this._input.substr(0, 20 - n.length)), (n.substr(0, 20) + (n.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var n = this.pastInput(), s = new Array(n.length + 1).join("-");
+ return n + this.upcomingInput() + `
+` + s + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(n, s) {
+ var d, u, m;
+ if (this.options.backtrack_lexer && (m = {
+ 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 && (m.yylloc.range = this.yylloc.range.slice(0))), u = n[0].match(/(?:\r\n?|\n).*/g), u && (this.yylineno += u.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: u ? u[u.length - 1].length - u[u.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + n[0].length
+ }, this.yytext += n[0], this.match += n[0], this.matches = n, 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(n[0].length), this.matched += n[0], d = this.performAction.call(this, this.yy, this, s, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), d)
+ return d;
+ if (this._backtrack) {
+ for (var i in m)
+ this[i] = m[i];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var n, s, d, u;
+ this._more || (this.yytext = "", this.match = "");
+ for (var m = this._currentRules(), i = 0; i < m.length; i++)
+ if (d = this._input.match(this.rules[m[i]]), d && (!s || d[0].length > s[0].length)) {
+ if (s = d, u = i, this.options.backtrack_lexer) {
+ if (n = this.test_match(d, m[i]), n !== !1)
+ return n;
+ if (this._backtrack) {
+ s = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return s ? (n = this.test_match(s, m[u]), n !== !1 ? n : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var s = this.next();
+ return s || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(s) {
+ this.conditionStack.push(s);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var s = this.conditionStack.length - 1;
+ return s > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(s) {
+ return s = this.conditionStack.length - 1 - Math.abs(s || 0), s >= 0 ? this.conditionStack[s] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(s) {
+ this.begin(s);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": !0 },
+ performAction: function(s, d, u, m) {
+ switch (u) {
+ case 0:
+ return this.begin("acc_title"), 25;
+ case 1:
+ return this.popState(), "acc_title_value";
+ case 2:
+ return this.begin("acc_descr"), 27;
+ case 3:
+ return this.popState(), "acc_descr_value";
+ case 4:
+ this.begin("acc_descr_multiline");
+ break;
+ case 5:
+ this.popState();
+ break;
+ case 6:
+ return "acc_descr_multiline_value";
+ case 7:
+ return this.begin("open_directive"), 51;
+ case 8:
+ return this.begin("type_directive"), 52;
+ case 9:
+ return this.popState(), this.begin("arg_directive"), 15;
+ case 10:
+ return this.popState(), this.popState(), 54;
+ case 11:
+ return 53;
+ case 12:
+ return 11;
+ case 13:
+ break;
+ case 14:
+ return 9;
+ case 15:
+ return 31;
+ case 16:
+ return 50;
+ case 17:
+ return 4;
+ case 18:
+ return this.begin("block"), 20;
+ case 19:
+ return 39;
+ case 20:
+ break;
+ case 21:
+ return 40;
+ case 22:
+ return 37;
+ case 23:
+ return 37;
+ case 24:
+ return 41;
+ case 25:
+ break;
+ case 26:
+ return this.popState(), 22;
+ case 27:
+ return d.yytext[0];
+ case 28:
+ return 44;
+ case 29:
+ return 46;
+ case 30:
+ return 46;
+ case 31:
+ return 46;
+ case 32:
+ return 44;
+ case 33:
+ return 44;
+ case 34:
+ return 45;
+ case 35:
+ return 45;
+ case 36:
+ return 45;
+ case 37:
+ return 45;
+ case 38:
+ return 45;
+ case 39:
+ return 46;
+ case 40:
+ return 45;
+ case 41:
+ return 46;
+ case 42:
+ return 47;
+ case 43:
+ return 47;
+ case 44:
+ return 47;
+ case 45:
+ return 47;
+ case 46:
+ return 44;
+ case 47:
+ return 45;
+ case 48:
+ return 46;
+ case 49:
+ return 48;
+ case 50:
+ return 49;
+ case 51:
+ return 49;
+ case 52:
+ return 48;
+ case 53:
+ return 48;
+ case 54:
+ return 48;
+ case 55:
+ return 30;
+ case 56:
+ return d.yytext[0];
+ case 57:
+ return 6;
+ }
+ },
+ rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:[\s]+)/i, /^(?:"[^"%\r\n\v\b\\]+")/i, /^(?:"[^"]*")/i, /^(?:erDiagram\b)/i, /^(?:\{)/i, /^(?:,)/i, /^(?:\s+)/i, /^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i, /^(?:"[^"]*")/i, /^(?:[\n]+)/i, /^(?:\})/i, /^(?:.)/i, /^(?:one or zero\b)/i, /^(?:one or more\b)/i, /^(?:one or many\b)/i, /^(?:1\+)/i, /^(?:\|o\b)/i, /^(?:zero or one\b)/i, /^(?:zero or more\b)/i, /^(?:zero or many\b)/i, /^(?:0\+)/i, /^(?:\}o\b)/i, /^(?:many\(0\))/i, /^(?:many\(1\))/i, /^(?:many\b)/i, /^(?:\}\|)/i, /^(?:one\b)/i, /^(?:only one\b)/i, /^(?:1\b)/i, /^(?:\|\|)/i, /^(?:o\|)/i, /^(?:o\{)/i, /^(?:\|\{)/i, /^(?:\.\.)/i, /^(?:--)/i, /^(?:to\b)/i, /^(?:optionally to\b)/i, /^(?:\.-)/i, /^(?:-\.)/i, /^(?:[A-Za-z][A-Za-z0-9\-_]*)/i, /^(?:.)/i, /^(?:$)/i],
+ conditions: { acc_descr_multiline: { rules: [5, 6], inclusive: !1 }, acc_descr: { rules: [3], inclusive: !1 }, acc_title: { rules: [1], inclusive: !1 }, open_directive: { rules: [8], inclusive: !1 }, type_directive: { rules: [9, 10], inclusive: !1 }, arg_directive: { rules: [10, 11], inclusive: !1 }, block: { rules: [19, 20, 21, 22, 23, 24, 25, 26, 27], inclusive: !1 }, INITIAL: { rules: [0, 2, 4, 7, 12, 13, 14, 15, 16, 17, 18, 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], inclusive: !0 } }
+ };
+ return v;
+ }();
+ C.lexer = D;
+ function Y() {
+ this.yy = {};
+ }
+ return Y.prototype = C, C.Parser = Y, new Y();
+}();
+ot.parser = ot;
+const Lt = ot;
+let Q = {}, ct = [];
+const Ct = {
+ ZERO_OR_ONE: "ZERO_OR_ONE",
+ ZERO_OR_MORE: "ZERO_OR_MORE",
+ ONE_OR_MORE: "ONE_OR_MORE",
+ ONLY_ONE: "ONLY_ONE"
+}, Yt = {
+ NON_IDENTIFYING: "NON_IDENTIFYING",
+ IDENTIFYING: "IDENTIFYING"
+}, Zt = function(t, r, e) {
+ At.parseDirective(this, t, r, e);
+}, yt = function(t) {
+ return Q[t] === void 0 && (Q[t] = { attributes: [] }, tt.info("Added new entity :", t)), Q[t];
+}, Ft = () => Q, Pt = function(t, r) {
+ let e = yt(t), a;
+ for (a = r.length - 1; a >= 0; a--)
+ e.attributes.push(r[a]), tt.debug("Added attribute ", r[a].attributeName);
+}, Wt = function(t, r, e, a) {
+ let c = {
+ entityA: t,
+ roleA: r,
+ entityB: e,
+ relSpec: a
+ };
+ ct.push(c), tt.debug("Added new relationship :", c);
+}, Ut = () => ct, Vt = function() {
+ Q = {}, ct = [], Tt();
+}, zt = {
+ Cardinality: Ct,
+ Identification: Yt,
+ parseDirective: Zt,
+ getConfig: () => U().er,
+ addEntity: yt,
+ addAttributes: Pt,
+ getEntities: Ft,
+ addRelationship: Wt,
+ getRelationships: Ut,
+ clear: Vt,
+ setAccTitle: xt,
+ getAccTitle: kt,
+ setAccDescription: Ot,
+ getAccDescription: bt,
+ setDiagramTitle: Rt,
+ getDiagramTitle: Nt
+}, P = {
+ ONLY_ONE_START: "ONLY_ONE_START",
+ ONLY_ONE_END: "ONLY_ONE_END",
+ ZERO_OR_ONE_START: "ZERO_OR_ONE_START",
+ ZERO_OR_ONE_END: "ZERO_OR_ONE_END",
+ ONE_OR_MORE_START: "ONE_OR_MORE_START",
+ ONE_OR_MORE_END: "ONE_OR_MORE_END",
+ ZERO_OR_MORE_START: "ZERO_OR_MORE_START",
+ ZERO_OR_MORE_END: "ZERO_OR_MORE_END"
+}, Gt = function(t, r) {
+ let e;
+ t.append("defs").append("marker").attr("id", P.ONLY_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", r.stroke).attr("fill", "none").attr("d", "M9,0 L9,18 M15,0 L15,18"), t.append("defs").append("marker").attr("id", P.ONLY_ONE_END).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", r.stroke).attr("fill", "none").attr("d", "M3,0 L3,18 M9,0 L9,18"), e = t.append("defs").append("marker").attr("id", P.ZERO_OR_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto"), e.append("circle").attr("stroke", r.stroke).attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6), e.append("path").attr("stroke", r.stroke).attr("fill", "none").attr("d", "M9,0 L9,18"), e = t.append("defs").append("marker").attr("id", P.ZERO_OR_ONE_END).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto"), e.append("circle").attr("stroke", r.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6), e.append("path").attr("stroke", r.stroke).attr("fill", "none").attr("d", "M21,0 L21,18"), t.append("defs").append("marker").attr("id", P.ONE_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", r.stroke).attr("fill", "none").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"), t.append("defs").append("marker").attr("id", P.ONE_OR_MORE_END).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", r.stroke).attr("fill", "none").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"), e = t.append("defs").append("marker").attr("id", P.ZERO_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto"), e.append("circle").attr("stroke", r.stroke).attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6), e.append("path").attr("stroke", r.stroke).attr("fill", "none").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18"), e = t.append("defs").append("marker").attr("id", P.ZERO_OR_MORE_END).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto"), e.append("circle").attr("stroke", r.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6), e.append("path").attr("stroke", r.stroke).attr("fill", "none").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18");
+}, W = {
+ ERMarkers: P,
+ insertMarkers: Gt
+}, Kt = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
+function Ht(t) {
+ return typeof t == "string" && Kt.test(t);
+}
+const A = [];
+for (let t = 0; t < 256; ++t)
+ A.push((t + 256).toString(16).slice(1));
+function Xt(t, r = 0) {
+ return (A[t[r + 0]] + A[t[r + 1]] + A[t[r + 2]] + A[t[r + 3]] + "-" + A[t[r + 4]] + A[t[r + 5]] + "-" + A[t[r + 6]] + A[t[r + 7]] + "-" + A[t[r + 8]] + A[t[r + 9]] + "-" + A[t[r + 10]] + A[t[r + 11]] + A[t[r + 12]] + A[t[r + 13]] + A[t[r + 14]] + A[t[r + 15]]).toLowerCase();
+}
+function Qt(t) {
+ if (!Ht(t))
+ throw TypeError("Invalid UUID");
+ let r;
+ const e = new Uint8Array(16);
+ return e[0] = (r = parseInt(t.slice(0, 8), 16)) >>> 24, e[1] = r >>> 16 & 255, e[2] = r >>> 8 & 255, e[3] = r & 255, e[4] = (r = parseInt(t.slice(9, 13), 16)) >>> 8, e[5] = r & 255, e[6] = (r = parseInt(t.slice(14, 18), 16)) >>> 8, e[7] = r & 255, e[8] = (r = parseInt(t.slice(19, 23), 16)) >>> 8, e[9] = r & 255, e[10] = (r = parseInt(t.slice(24, 36), 16)) / 1099511627776 & 255, e[11] = r / 4294967296 & 255, e[12] = r >>> 24 & 255, e[13] = r >>> 16 & 255, e[14] = r >>> 8 & 255, e[15] = r & 255, e;
+}
+function jt(t) {
+ t = unescape(encodeURIComponent(t));
+ const r = [];
+ for (let e = 0; e < t.length; ++e)
+ r.push(t.charCodeAt(e));
+ return r;
+}
+const qt = "6ba7b810-9dad-11d1-80b4-00c04fd430c8", Jt = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
+function $t(t, r, e) {
+ function a(c, p, f, l) {
+ var h;
+ if (typeof c == "string" && (c = jt(c)), typeof p == "string" && (p = Qt(p)), ((h = p) === null || h === void 0 ? void 0 : h.length) !== 16)
+ throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
+ let _ = new Uint8Array(16 + c.length);
+ if (_.set(p), _.set(c, p.length), _ = e(_), _[6] = _[6] & 15 | r, _[8] = _[8] & 63 | 128, f) {
+ l = l || 0;
+ for (let g = 0; g < 16; ++g)
+ f[l + g] = _[g];
+ return f;
+ }
+ return Xt(_);
+ }
+ try {
+ a.name = t;
+ } catch {
+ }
+ return a.DNS = qt, a.URL = Jt, a;
+}
+function te(t, r, e, a) {
+ switch (t) {
+ case 0:
+ return r & e ^ ~r & a;
+ case 1:
+ return r ^ e ^ a;
+ case 2:
+ return r & e ^ r & a ^ e & a;
+ case 3:
+ return r ^ e ^ a;
+ }
+}
+function st(t, r) {
+ return t << r | t >>> 32 - r;
+}
+function ee(t) {
+ const r = [1518500249, 1859775393, 2400959708, 3395469782], e = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];
+ if (typeof t == "string") {
+ const f = unescape(encodeURIComponent(t));
+ t = [];
+ for (let l = 0; l < f.length; ++l)
+ t.push(f.charCodeAt(l));
+ } else
+ Array.isArray(t) || (t = Array.prototype.slice.call(t));
+ t.push(128);
+ const a = t.length / 4 + 2, c = Math.ceil(a / 16), p = new Array(c);
+ for (let f = 0; f < c; ++f) {
+ const l = new Uint32Array(16);
+ for (let h = 0; h < 16; ++h)
+ l[h] = t[f * 64 + h * 4] << 24 | t[f * 64 + h * 4 + 1] << 16 | t[f * 64 + h * 4 + 2] << 8 | t[f * 64 + h * 4 + 3];
+ p[f] = l;
+ }
+ p[c - 1][14] = (t.length - 1) * 8 / Math.pow(2, 32), p[c - 1][14] = Math.floor(p[c - 1][14]), p[c - 1][15] = (t.length - 1) * 8 & 4294967295;
+ for (let f = 0; f < c; ++f) {
+ const l = new Uint32Array(80);
+ for (let y = 0; y < 16; ++y)
+ l[y] = p[f][y];
+ for (let y = 16; y < 80; ++y)
+ l[y] = st(l[y - 3] ^ l[y - 8] ^ l[y - 14] ^ l[y - 16], 1);
+ let h = e[0], _ = e[1], g = e[2], E = e[3], O = e[4];
+ for (let y = 0; y < 80; ++y) {
+ const M = Math.floor(y / 20), B = st(h, 5) + te(M, _, g, E) + O + r[M] + l[y] >>> 0;
+ O = E, E = g, g = st(_, 30) >>> 0, _ = h, h = B;
+ }
+ e[0] = e[0] + h >>> 0, e[1] = e[1] + _ >>> 0, e[2] = e[2] + g >>> 0, e[3] = e[3] + E >>> 0, e[4] = e[4] + O >>> 0;
+ }
+ return [e[0] >> 24 & 255, e[0] >> 16 & 255, e[0] >> 8 & 255, e[0] & 255, e[1] >> 24 & 255, e[1] >> 16 & 255, e[1] >> 8 & 255, e[1] & 255, e[2] >> 24 & 255, e[2] >> 16 & 255, e[2] >> 8 & 255, e[2] & 255, e[3] >> 24 & 255, e[3] >> 16 & 255, e[3] >> 8 & 255, e[3] & 255, e[4] >> 24 & 255, e[4] >> 16 & 255, e[4] >> 8 & 255, e[4] & 255];
+}
+const re = $t("v5", 80, ee), ie = re, ne = /[^\dA-Za-z](\W)*/g;
+let k = {}, j = /* @__PURE__ */ new Map();
+const ae = function(t) {
+ const r = Object.keys(t);
+ for (const e of r)
+ k[e] = t[e];
+}, se = (t, r, e) => {
+ const a = k.entityPadding / 3, c = k.entityPadding / 3, p = k.fontSize * 0.85, f = r.node().getBBox(), l = [];
+ let h = !1, _ = !1, g = 0, E = 0, O = 0, y = 0, M = f.height + a * 2, B = 1;
+ e.forEach((R) => {
+ R.attributeKeyTypeList !== void 0 && R.attributeKeyTypeList.length > 0 && (h = !0), R.attributeComment !== void 0 && (_ = !0);
+ }), e.forEach((R) => {
+ const N = `${r.node().id}-attr-${B}`;
+ let T = 0;
+ const x = vt(R.attributeType), S = t.append("text").classed("er entityLabel", !0).attr("id", `${N}-type`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", U().fontFamily).style("font-size", p + "px").text(x), C = t.append("text").classed("er entityLabel", !0).attr("id", `${N}-name`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", U().fontFamily).style("font-size", p + "px").text(R.attributeName), D = {};
+ D.tn = S, D.nn = C;
+ const Y = S.node().getBBox(), v = C.node().getBBox();
+ if (g = Math.max(g, Y.width), E = Math.max(E, v.width), T = Math.max(Y.height, v.height), h) {
+ const n = R.attributeKeyTypeList !== void 0 ? R.attributeKeyTypeList.join(",") : "", s = t.append("text").classed("er entityLabel", !0).attr("id", `${N}-key`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", U().fontFamily).style("font-size", p + "px").text(n);
+ D.kn = s;
+ const d = s.node().getBBox();
+ O = Math.max(O, d.width), T = Math.max(T, d.height);
+ }
+ if (_) {
+ const n = t.append("text").classed("er entityLabel", !0).attr("id", `${N}-comment`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", U().fontFamily).style("font-size", p + "px").text(R.attributeComment || "");
+ D.cn = n;
+ const s = n.node().getBBox();
+ y = Math.max(y, s.width), T = Math.max(T, s.height);
+ }
+ D.height = T, l.push(D), M += T + a * 2, B += 1;
+ });
+ let V = 4;
+ h && (V += 2), _ && (V += 2);
+ const z = g + E + O + y, L = {
+ width: Math.max(
+ k.minEntityWidth,
+ Math.max(
+ f.width + k.entityPadding * 2,
+ z + c * V
+ )
+ ),
+ height: e.length > 0 ? M : Math.max(k.minEntityHeight, f.height + k.entityPadding * 2)
+ };
+ if (e.length > 0) {
+ const R = Math.max(
+ 0,
+ (L.width - z - c * V) / (V / 2)
+ );
+ r.attr(
+ "transform",
+ "translate(" + L.width / 2 + "," + (a + f.height / 2) + ")"
+ );
+ let N = f.height + a * 2, T = "attributeBoxOdd";
+ l.forEach((x) => {
+ const S = N + a + x.height / 2;
+ x.tn.attr("transform", "translate(" + c + "," + S + ")");
+ const C = t.insert("rect", "#" + x.tn.node().id).classed(`er ${T}`, !0).attr("x", 0).attr("y", N).attr("width", g + c * 2 + R).attr("height", x.height + a * 2), D = parseFloat(C.attr("x")) + parseFloat(C.attr("width"));
+ x.nn.attr(
+ "transform",
+ "translate(" + (D + c) + "," + S + ")"
+ );
+ const Y = t.insert("rect", "#" + x.nn.node().id).classed(`er ${T}`, !0).attr("x", D).attr("y", N).attr("width", E + c * 2 + R).attr("height", x.height + a * 2);
+ let v = parseFloat(Y.attr("x")) + parseFloat(Y.attr("width"));
+ if (h) {
+ x.kn.attr(
+ "transform",
+ "translate(" + (v + c) + "," + S + ")"
+ );
+ const n = t.insert("rect", "#" + x.kn.node().id).classed(`er ${T}`, !0).attr("x", v).attr("y", N).attr("width", O + c * 2 + R).attr("height", x.height + a * 2);
+ v = parseFloat(n.attr("x")) + parseFloat(n.attr("width"));
+ }
+ _ && (x.cn.attr(
+ "transform",
+ "translate(" + (v + c) + "," + S + ")"
+ ), t.insert("rect", "#" + x.cn.node().id).classed(`er ${T}`, "true").attr("x", v).attr("y", N).attr("width", y + c * 2 + R).attr("height", x.height + a * 2)), N += x.height + a * 2, T = T === "attributeBoxOdd" ? "attributeBoxEven" : "attributeBoxOdd";
+ });
+ } else
+ L.height = Math.max(k.minEntityHeight, M), r.attr("transform", "translate(" + L.width / 2 + "," + L.height / 2 + ")");
+ return L;
+}, oe = function(t, r, e) {
+ const a = Object.keys(r);
+ let c;
+ return a.forEach(function(p) {
+ const f = fe(p, "entity");
+ j.set(p, f);
+ const l = t.append("g").attr("id", f);
+ c = c === void 0 ? f : c;
+ const h = "text-" + f, _ = l.append("text").classed("er entityLabel", !0).attr("id", h).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "middle").style("font-family", U().fontFamily).style("font-size", k.fontSize + "px").text(p), { width: g, height: E } = se(
+ l,
+ _,
+ r[p].attributes
+ ), y = l.insert("rect", "#" + h).classed("er entityBox", !0).attr("x", 0).attr("y", 0).attr("width", g).attr("height", E).node().getBBox();
+ e.setNode(f, {
+ width: y.width,
+ height: y.height,
+ shape: "rect",
+ id: f
+ });
+ }), c;
+}, ce = function(t, r) {
+ r.nodes().forEach(function(e) {
+ e !== void 0 && r.node(e) !== void 0 && t.select("#" + e).attr(
+ "transform",
+ "translate(" + (r.node(e).x - r.node(e).width / 2) + "," + (r.node(e).y - r.node(e).height / 2) + " )"
+ );
+ });
+}, pt = function(t) {
+ return (t.entityA + t.roleA + t.entityB).replace(/\s/g, "");
+}, le = function(t, r) {
+ return t.forEach(function(e) {
+ r.setEdge(
+ j.get(e.entityA),
+ j.get(e.entityB),
+ { relationship: e },
+ pt(e)
+ );
+ }), t;
+};
+let ut = 0;
+const he = function(t, r, e, a, c) {
+ ut++;
+ const p = e.edge(
+ j.get(r.entityA),
+ j.get(r.entityB),
+ pt(r)
+ ), f = Bt().x(function(M) {
+ return M.x;
+ }).y(function(M) {
+ return M.y;
+ }).curve(Dt), l = t.insert("path", "#" + a).classed("er relationshipLine", !0).attr("d", f(p.points)).style("stroke", k.stroke).style("fill", "none");
+ r.relSpec.relType === c.db.Identification.NON_IDENTIFYING && l.attr("stroke-dasharray", "8,8");
+ let h = "";
+ switch (k.arrowMarkerAbsolute && (h = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, h = h.replace(/\(/g, "\\("), h = h.replace(/\)/g, "\\)")), r.relSpec.cardA) {
+ case c.db.Cardinality.ZERO_OR_ONE:
+ l.attr("marker-end", "url(" + h + "#" + W.ERMarkers.ZERO_OR_ONE_END + ")");
+ break;
+ case c.db.Cardinality.ZERO_OR_MORE:
+ l.attr("marker-end", "url(" + h + "#" + W.ERMarkers.ZERO_OR_MORE_END + ")");
+ break;
+ case c.db.Cardinality.ONE_OR_MORE:
+ l.attr("marker-end", "url(" + h + "#" + W.ERMarkers.ONE_OR_MORE_END + ")");
+ break;
+ case c.db.Cardinality.ONLY_ONE:
+ l.attr("marker-end", "url(" + h + "#" + W.ERMarkers.ONLY_ONE_END + ")");
+ break;
+ }
+ switch (r.relSpec.cardB) {
+ case c.db.Cardinality.ZERO_OR_ONE:
+ l.attr(
+ "marker-start",
+ "url(" + h + "#" + W.ERMarkers.ZERO_OR_ONE_START + ")"
+ );
+ break;
+ case c.db.Cardinality.ZERO_OR_MORE:
+ l.attr(
+ "marker-start",
+ "url(" + h + "#" + W.ERMarkers.ZERO_OR_MORE_START + ")"
+ );
+ break;
+ case c.db.Cardinality.ONE_OR_MORE:
+ l.attr(
+ "marker-start",
+ "url(" + h + "#" + W.ERMarkers.ONE_OR_MORE_START + ")"
+ );
+ break;
+ case c.db.Cardinality.ONLY_ONE:
+ l.attr("marker-start", "url(" + h + "#" + W.ERMarkers.ONLY_ONE_START + ")");
+ break;
+ }
+ const _ = l.node().getTotalLength(), g = l.node().getPointAtLength(_ * 0.5), E = "rel" + ut, y = t.append("text").classed("er relationshipLabel", !0).attr("id", E).attr("x", g.x).attr("y", g.y).style("text-anchor", "middle").style("dominant-baseline", "middle").style("font-family", U().fontFamily).style("font-size", k.fontSize + "px").text(r.roleA).node().getBBox();
+ t.insert("rect", "#" + E).classed("er relationshipLabelBox", !0).attr("x", g.x - y.width / 2).attr("y", g.y - y.height / 2).attr("width", y.width).attr("height", y.height);
+}, de = function(t, r, e, a) {
+ k = U().er, tt.info("Drawing ER diagram");
+ const c = U().securityLevel;
+ let p;
+ c === "sandbox" && (p = at("#i" + r));
+ const l = (c === "sandbox" ? at(p.nodes()[0].contentDocument.body) : at("body")).select(`[id='${r}']`);
+ W.insertMarkers(l, k);
+ let h;
+ h = new Mt({
+ multigraph: !0,
+ directed: !0,
+ compound: !1
+ }).setGraph({
+ rankdir: k.layoutDirection,
+ marginx: 20,
+ marginy: 20,
+ nodesep: 100,
+ edgesep: 100,
+ ranksep: 100
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const _ = oe(l, a.db.getEntities(), h), g = le(a.db.getRelationships(), h);
+ It(h), ce(l, h), g.forEach(function(B) {
+ he(l, B, h, _, a);
+ });
+ const E = k.diagramPadding;
+ wt.insertTitle(l, "entityTitleText", k.titleTopMargin, a.db.getDiagramTitle());
+ const O = l.node().getBBox(), y = O.width + E * 2, M = O.height + E * 2;
+ St(l, M, y, k.useMaxWidth), l.attr("viewBox", `${O.x - E} ${O.y - E} ${y} ${M}`);
+}, ue = "28e9f9db-3c8d-5aa5-9faf-44286ae5937c";
+function fe(t = "", r = "") {
+ const e = t.replace(ne, "");
+ return `${ft(r)}${ft(e)}${ie(
+ t,
+ ue
+ )}`;
+}
+function ft(t = "") {
+ return t.length > 0 ? `${t}-` : "";
+}
+const ye = {
+ setConf: ae,
+ draw: de
+}, pe = (t) => `
+ .entityBox {
+ fill: ${t.mainBkg};
+ stroke: ${t.nodeBorder};
+ }
+
+ .attributeBoxOdd {
+ fill: ${t.attributeBackgroundColorOdd};
+ stroke: ${t.nodeBorder};
+ }
+
+ .attributeBoxEven {
+ fill: ${t.attributeBackgroundColorEven};
+ stroke: ${t.nodeBorder};
+ }
+
+ .relationshipLabelBox {
+ fill: ${t.tertiaryColor};
+ opacity: 0.7;
+ background-color: ${t.tertiaryColor};
+ rect {
+ opacity: 0.5;
+ }
+ }
+
+ .relationshipLine {
+ stroke: ${t.lineColor};
+ }
+
+ .entityTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${t.textColor};
+ }
+`, _e = pe, Re = {
+ parser: Lt,
+ db: zt,
+ renderer: ye,
+ styles: _e
+};
+export {
+ Re as diagram
+};
+//# sourceMappingURL=erDiagram-215b0341.js.map
diff --git a/scopegraphs-render-docs/doc/js/erDiagram-dfd3761e.js b/scopegraphs-render-docs/doc/js/erDiagram-dfd3761e.js
new file mode 100644
index 0000000..57b1b29
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/erDiagram-dfd3761e.js
@@ -0,0 +1,1312 @@
+import { g as getConfig, q as setAccTitle, v as getAccTitle, x as setAccDescription, w as getAccDescription, y as setDiagramTitle, z as getDiagramTitle, l as log, A as clear$1, h as select, D as parseGenericTypes } from "./commonDb-89160e91.js";
+import { m as mermaidAPI } from "./mermaidAPI-c841a67f.js";
+import { G as Graph, l as layout } from "./layout-3ff13c4c.js";
+import { u as utils, v as configureSvgSize, G as curveBasis } from "./utils-1aebe9b6.js";
+import { l as line } from "./line-fbe8f138.js";
+import "./array-b7dcf730.js";
+import "./constant-b644328d.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 23, 25, 27, 29, 30, 31, 51], $V3 = [1, 17], $V4 = [1, 18], $V5 = [1, 19], $V6 = [1, 20], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 25], $Va = [1, 30], $Vb = [1, 31], $Vc = [1, 32], $Vd = [1, 33], $Ve = [6, 9, 11, 15, 20, 23, 25, 27, 29, 30, 31, 44, 45, 46, 47, 51], $Vf = [1, 45], $Vg = [30, 31, 48, 49], $Vh = [4, 6, 9, 11, 23, 25, 27, 29, 30, 31, 51], $Vi = [44, 45, 46, 47], $Vj = [22, 37], $Vk = [1, 65], $Vl = [1, 64], $Vm = [22, 37, 39, 41];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "ER_DIAGRAM": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "entityName": 17, "relSpec": 18, "role": 19, "BLOCK_START": 20, "attributes": 21, "BLOCK_STOP": 22, "title": 23, "title_value": 24, "acc_title": 25, "acc_title_value": 26, "acc_descr": 27, "acc_descr_value": 28, "acc_descr_multiline_value": 29, "ALPHANUM": 30, "ENTITY_NAME": 31, "attribute": 32, "attributeType": 33, "attributeName": 34, "attributeKeyTypeList": 35, "attributeComment": 36, "ATTRIBUTE_WORD": 37, "attributeKeyType": 38, "COMMA": 39, "ATTRIBUTE_KEY": 40, "COMMENT": 41, "cardinality": 42, "relType": 43, "ZERO_OR_ONE": 44, "ZERO_OR_MORE": 45, "ONE_OR_MORE": 46, "ONLY_ONE": 47, "NON_IDENTIFYING": 48, "IDENTIFYING": 49, "WORD": 50, "open_directive": 51, "type_directive": 52, "arg_directive": 53, "close_directive": 54, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "ER_DIAGRAM", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 20: "BLOCK_START", 22: "BLOCK_STOP", 23: "title", 24: "title_value", 25: "acc_title", 26: "acc_title_value", 27: "acc_descr", 28: "acc_descr_value", 29: "acc_descr_multiline_value", 30: "ALPHANUM", 31: "ENTITY_NAME", 37: "ATTRIBUTE_WORD", 39: "COMMA", 40: "ATTRIBUTE_KEY", 41: "COMMENT", 44: "ZERO_OR_ONE", 45: "ZERO_OR_MORE", 46: "ONE_OR_MORE", 47: "ONLY_ONE", 48: "NON_IDENTIFYING", 49: "IDENTIFYING", 50: "WORD", 51: "open_directive", 52: "type_directive", 53: "arg_directive", 54: "close_directive" },
+ productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 5], [10, 4], [10, 3], [10, 1], [10, 2], [10, 2], [10, 2], [10, 1], [17, 1], [17, 1], [21, 1], [21, 2], [32, 2], [32, 3], [32, 3], [32, 4], [33, 1], [34, 1], [35, 1], [35, 3], [38, 1], [36, 1], [18, 3], [42, 1], [42, 1], [42, 1], [42, 1], [43, 1], [43, 1], [19, 1], [19, 1], [19, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ break;
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = $$[$0];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 12:
+ yy.addEntity($$[$0 - 4]);
+ yy.addEntity($$[$0 - 2]);
+ yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]);
+ break;
+ case 13:
+ yy.addEntity($$[$0 - 3]);
+ yy.addAttributes($$[$0 - 3], $$[$0 - 1]);
+ break;
+ case 14:
+ yy.addEntity($$[$0 - 2]);
+ break;
+ case 15:
+ yy.addEntity($$[$0]);
+ break;
+ case 16:
+ case 17:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 18:
+ case 19:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 20:
+ case 43:
+ this.$ = $$[$0];
+ break;
+ case 21:
+ case 41:
+ case 42:
+ this.$ = $$[$0].replace(/"/g, "");
+ break;
+ case 22:
+ case 30:
+ this.$ = [$$[$0]];
+ break;
+ case 23:
+ $$[$0].push($$[$0 - 1]);
+ this.$ = $$[$0];
+ break;
+ case 24:
+ this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] };
+ break;
+ case 25:
+ this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] };
+ break;
+ case 26:
+ this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] };
+ break;
+ case 27:
+ this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] };
+ break;
+ case 28:
+ case 29:
+ case 32:
+ this.$ = $$[$0];
+ break;
+ case 31:
+ $$[$0 - 2].push($$[$0]);
+ this.$ = $$[$0 - 2];
+ break;
+ case 33:
+ this.$ = $$[$0].replace(/"/g, "");
+ break;
+ case 34:
+ this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };
+ break;
+ case 35:
+ this.$ = yy.Cardinality.ZERO_OR_ONE;
+ break;
+ case 36:
+ this.$ = yy.Cardinality.ZERO_OR_MORE;
+ break;
+ case 37:
+ this.$ = yy.Cardinality.ONE_OR_MORE;
+ break;
+ case 38:
+ this.$ = yy.Cardinality.ONLY_ONE;
+ break;
+ case 39:
+ this.$ = yy.Identification.NON_IDENTIFYING;
+ break;
+ case 40:
+ this.$ = yy.Identification.IDENTIFYING;
+ break;
+ case 44:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 45:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 46:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 47:
+ yy.parseDirective("}%%", "close_directive", "er");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 51: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 51: $V1 }, { 13: 8, 52: [1, 9] }, { 52: [2, 44] }, { 6: [1, 10], 7: 15, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: 16, 23: $V3, 25: $V4, 27: $V5, 29: $V6, 30: $V7, 31: $V8, 51: $V1 }, { 1: [2, 2] }, { 14: 23, 15: [1, 24], 54: $V9 }, o([15, 54], [2, 45]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 15, 10: 26, 12: 4, 17: 16, 23: $V3, 25: $V4, 27: $V5, 29: $V6, 30: $V7, 31: $V8, 51: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), o($V2, [2, 15], { 18: 27, 42: 29, 20: [1, 28], 44: $Va, 45: $Vb, 46: $Vc, 47: $Vd }), { 24: [1, 34] }, { 26: [1, 35] }, { 28: [1, 36] }, o($V2, [2, 19]), o($Ve, [2, 20]), o($Ve, [2, 21]), { 11: [1, 37] }, { 16: 38, 53: [1, 39] }, { 11: [2, 47] }, o($V2, [2, 5]), { 17: 40, 30: $V7, 31: $V8 }, { 21: 41, 22: [1, 42], 32: 43, 33: 44, 37: $Vf }, { 43: 46, 48: [1, 47], 49: [1, 48] }, o($Vg, [2, 35]), o($Vg, [2, 36]), o($Vg, [2, 37]), o($Vg, [2, 38]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($Vh, [2, 9]), { 14: 49, 54: $V9 }, { 54: [2, 46] }, { 15: [1, 50] }, { 22: [1, 51] }, o($V2, [2, 14]), { 21: 52, 22: [2, 22], 32: 43, 33: 44, 37: $Vf }, { 34: 53, 37: [1, 54] }, { 37: [2, 28] }, { 42: 55, 44: $Va, 45: $Vb, 46: $Vc, 47: $Vd }, o($Vi, [2, 39]), o($Vi, [2, 40]), { 11: [1, 56] }, { 19: 57, 30: [1, 60], 31: [1, 59], 50: [1, 58] }, o($V2, [2, 13]), { 22: [2, 23] }, o($Vj, [2, 24], { 35: 61, 36: 62, 38: 63, 40: $Vk, 41: $Vl }), o([22, 37, 40, 41], [2, 29]), o([30, 31], [2, 34]), o($Vh, [2, 10]), o($V2, [2, 12]), o($V2, [2, 41]), o($V2, [2, 42]), o($V2, [2, 43]), o($Vj, [2, 25], { 36: 66, 39: [1, 67], 41: $Vl }), o($Vj, [2, 26]), o($Vm, [2, 30]), o($Vj, [2, 33]), o($Vm, [2, 32]), o($Vj, [2, 27]), { 38: 68, 40: $Vk }, o($Vm, [2, 31])],
+ defaultActions: { 5: [2, 44], 7: [2, 2], 25: [2, 47], 39: [2, 46], 45: [2, 28], 52: [2, 23] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse2(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("acc_title");
+ return 25;
+ case 1:
+ this.popState();
+ return "acc_title_value";
+ case 2:
+ this.begin("acc_descr");
+ return 27;
+ case 3:
+ this.popState();
+ return "acc_descr_value";
+ case 4:
+ this.begin("acc_descr_multiline");
+ break;
+ case 5:
+ this.popState();
+ break;
+ case 6:
+ return "acc_descr_multiline_value";
+ case 7:
+ this.begin("open_directive");
+ return 51;
+ case 8:
+ this.begin("type_directive");
+ return 52;
+ case 9:
+ this.popState();
+ this.begin("arg_directive");
+ return 15;
+ case 10:
+ this.popState();
+ this.popState();
+ return 54;
+ case 11:
+ return 53;
+ case 12:
+ return 11;
+ case 13:
+ break;
+ case 14:
+ return 9;
+ case 15:
+ return 31;
+ case 16:
+ return 50;
+ case 17:
+ return 4;
+ case 18:
+ this.begin("block");
+ return 20;
+ case 19:
+ return 39;
+ case 20:
+ break;
+ case 21:
+ return 40;
+ case 22:
+ return 37;
+ case 23:
+ return 37;
+ case 24:
+ return 41;
+ case 25:
+ break;
+ case 26:
+ this.popState();
+ return 22;
+ case 27:
+ return yy_.yytext[0];
+ case 28:
+ return 44;
+ case 29:
+ return 46;
+ case 30:
+ return 46;
+ case 31:
+ return 46;
+ case 32:
+ return 44;
+ case 33:
+ return 44;
+ case 34:
+ return 45;
+ case 35:
+ return 45;
+ case 36:
+ return 45;
+ case 37:
+ return 45;
+ case 38:
+ return 45;
+ case 39:
+ return 46;
+ case 40:
+ return 45;
+ case 41:
+ return 46;
+ case 42:
+ return 47;
+ case 43:
+ return 47;
+ case 44:
+ return 47;
+ case 45:
+ return 47;
+ case 46:
+ return 44;
+ case 47:
+ return 45;
+ case 48:
+ return 46;
+ case 49:
+ return 48;
+ case 50:
+ return 49;
+ case 51:
+ return 49;
+ case 52:
+ return 48;
+ case 53:
+ return 48;
+ case 54:
+ return 48;
+ case 55:
+ return 30;
+ case 56:
+ return yy_.yytext[0];
+ case 57:
+ return 6;
+ }
+ },
+ rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:[\s]+)/i, /^(?:"[^"%\r\n\v\b\\]+")/i, /^(?:"[^"]*")/i, /^(?:erDiagram\b)/i, /^(?:\{)/i, /^(?:,)/i, /^(?:\s+)/i, /^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i, /^(?:"[^"]*")/i, /^(?:[\n]+)/i, /^(?:\})/i, /^(?:.)/i, /^(?:one or zero\b)/i, /^(?:one or more\b)/i, /^(?:one or many\b)/i, /^(?:1\+)/i, /^(?:\|o\b)/i, /^(?:zero or one\b)/i, /^(?:zero or more\b)/i, /^(?:zero or many\b)/i, /^(?:0\+)/i, /^(?:\}o\b)/i, /^(?:many\(0\))/i, /^(?:many\(1\))/i, /^(?:many\b)/i, /^(?:\}\|)/i, /^(?:one\b)/i, /^(?:only one\b)/i, /^(?:1\b)/i, /^(?:\|\|)/i, /^(?:o\|)/i, /^(?:o\{)/i, /^(?:\|\{)/i, /^(?:\.\.)/i, /^(?:--)/i, /^(?:to\b)/i, /^(?:optionally to\b)/i, /^(?:\.-)/i, /^(?:-\.)/i, /^(?:[A-Za-z][A-Za-z0-9\-_]*)/i, /^(?:.)/i, /^(?:$)/i],
+ conditions: { "acc_descr_multiline": { "rules": [5, 6], "inclusive": false }, "acc_descr": { "rules": [3], "inclusive": false }, "acc_title": { "rules": [1], "inclusive": false }, "open_directive": { "rules": [8], "inclusive": false }, "type_directive": { "rules": [9, 10], "inclusive": false }, "arg_directive": { "rules": [10, 11], "inclusive": false }, "block": { "rules": [19, 20, 21, 22, 23, 24, 25, 26, 27], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 12, 13, 14, 15, 16, 17, 18, 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], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const erParser = parser;
+let entities = {};
+let relationships = [];
+const Cardinality = {
+ ZERO_OR_ONE: "ZERO_OR_ONE",
+ ZERO_OR_MORE: "ZERO_OR_MORE",
+ ONE_OR_MORE: "ONE_OR_MORE",
+ ONLY_ONE: "ONLY_ONE"
+};
+const Identification = {
+ NON_IDENTIFYING: "NON_IDENTIFYING",
+ IDENTIFYING: "IDENTIFYING"
+};
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const addEntity = function(name) {
+ if (entities[name] === void 0) {
+ entities[name] = { attributes: [] };
+ log.info("Added new entity :", name);
+ }
+ return entities[name];
+};
+const getEntities = () => entities;
+const addAttributes = function(entityName, attribs) {
+ let entity = addEntity(entityName);
+ let i;
+ for (i = attribs.length - 1; i >= 0; i--) {
+ entity.attributes.push(attribs[i]);
+ log.debug("Added attribute ", attribs[i].attributeName);
+ }
+};
+const addRelationship = function(entA, rolA, entB, rSpec) {
+ let rel = {
+ entityA: entA,
+ roleA: rolA,
+ entityB: entB,
+ relSpec: rSpec
+ };
+ relationships.push(rel);
+ log.debug("Added new relationship :", rel);
+};
+const getRelationships = () => relationships;
+const clear = function() {
+ entities = {};
+ relationships = [];
+ clear$1();
+};
+const erDb = {
+ Cardinality,
+ Identification,
+ parseDirective,
+ getConfig: () => getConfig().er,
+ addEntity,
+ addAttributes,
+ getEntities,
+ addRelationship,
+ getRelationships,
+ clear,
+ setAccTitle,
+ getAccTitle,
+ setAccDescription,
+ getAccDescription,
+ setDiagramTitle,
+ getDiagramTitle
+};
+const ERMarkers = {
+ ONLY_ONE_START: "ONLY_ONE_START",
+ ONLY_ONE_END: "ONLY_ONE_END",
+ ZERO_OR_ONE_START: "ZERO_OR_ONE_START",
+ ZERO_OR_ONE_END: "ZERO_OR_ONE_END",
+ ONE_OR_MORE_START: "ONE_OR_MORE_START",
+ ONE_OR_MORE_END: "ONE_OR_MORE_END",
+ ZERO_OR_MORE_START: "ZERO_OR_MORE_START",
+ ZERO_OR_MORE_END: "ZERO_OR_MORE_END"
+};
+const insertMarkers = function(elem, conf2) {
+ let marker;
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18 M15,0 L15,18");
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_END).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,0 L3,18 M9,0 L9,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6);
+ marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_END).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6);
+ marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,0 L21,18");
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27");
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_END).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6);
+ marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_END).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6);
+ marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18");
+ return;
+};
+const erMarkers = {
+ ERMarkers,
+ insertMarkers
+};
+const REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
+function validate(uuid) {
+ return typeof uuid === "string" && REGEX.test(uuid);
+}
+const byteToHex = [];
+for (let i = 0; i < 256; ++i) {
+ byteToHex.push((i + 256).toString(16).slice(1));
+}
+function unsafeStringify(arr, offset = 0) {
+ return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
+}
+function parse(uuid) {
+ if (!validate(uuid)) {
+ throw TypeError("Invalid UUID");
+ }
+ let v;
+ const arr = new Uint8Array(16);
+ arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
+ arr[1] = v >>> 16 & 255;
+ arr[2] = v >>> 8 & 255;
+ arr[3] = v & 255;
+ arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
+ arr[5] = v & 255;
+ arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
+ arr[7] = v & 255;
+ arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
+ arr[9] = v & 255;
+ arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255;
+ arr[11] = v / 4294967296 & 255;
+ arr[12] = v >>> 24 & 255;
+ arr[13] = v >>> 16 & 255;
+ arr[14] = v >>> 8 & 255;
+ arr[15] = v & 255;
+ return arr;
+}
+function stringToBytes(str) {
+ str = unescape(encodeURIComponent(str));
+ const bytes = [];
+ for (let i = 0; i < str.length; ++i) {
+ bytes.push(str.charCodeAt(i));
+ }
+ return bytes;
+}
+const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
+const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
+function v35(name, version, hashfunc) {
+ function generateUUID(value, namespace, buf, offset) {
+ var _namespace;
+ if (typeof value === "string") {
+ value = stringToBytes(value);
+ }
+ if (typeof namespace === "string") {
+ namespace = parse(namespace);
+ }
+ if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {
+ throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
+ }
+ let bytes = new Uint8Array(16 + value.length);
+ bytes.set(namespace);
+ bytes.set(value, namespace.length);
+ bytes = hashfunc(bytes);
+ bytes[6] = bytes[6] & 15 | version;
+ bytes[8] = bytes[8] & 63 | 128;
+ if (buf) {
+ offset = offset || 0;
+ for (let i = 0; i < 16; ++i) {
+ buf[offset + i] = bytes[i];
+ }
+ return buf;
+ }
+ return unsafeStringify(bytes);
+ }
+ try {
+ generateUUID.name = name;
+ } catch (err) {
+ }
+ generateUUID.DNS = DNS;
+ generateUUID.URL = URL;
+ return generateUUID;
+}
+function f(s, x, y, z) {
+ switch (s) {
+ case 0:
+ return x & y ^ ~x & z;
+ case 1:
+ return x ^ y ^ z;
+ case 2:
+ return x & y ^ x & z ^ y & z;
+ case 3:
+ return x ^ y ^ z;
+ }
+}
+function ROTL(x, n) {
+ return x << n | x >>> 32 - n;
+}
+function sha1(bytes) {
+ const K = [1518500249, 1859775393, 2400959708, 3395469782];
+ const H = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];
+ if (typeof bytes === "string") {
+ const msg = unescape(encodeURIComponent(bytes));
+ bytes = [];
+ for (let i = 0; i < msg.length; ++i) {
+ bytes.push(msg.charCodeAt(i));
+ }
+ } else if (!Array.isArray(bytes)) {
+ bytes = Array.prototype.slice.call(bytes);
+ }
+ bytes.push(128);
+ const l = bytes.length / 4 + 2;
+ const N = Math.ceil(l / 16);
+ const M = new Array(N);
+ for (let i = 0; i < N; ++i) {
+ const arr = new Uint32Array(16);
+ for (let j = 0; j < 16; ++j) {
+ arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];
+ }
+ M[i] = arr;
+ }
+ M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
+ M[N - 1][14] = Math.floor(M[N - 1][14]);
+ M[N - 1][15] = (bytes.length - 1) * 8 & 4294967295;
+ for (let i = 0; i < N; ++i) {
+ const W = new Uint32Array(80);
+ for (let t = 0; t < 16; ++t) {
+ W[t] = M[i][t];
+ }
+ for (let t = 16; t < 80; ++t) {
+ W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
+ }
+ let a = H[0];
+ let b = H[1];
+ let c = H[2];
+ let d = H[3];
+ let e = H[4];
+ for (let t = 0; t < 80; ++t) {
+ const s = Math.floor(t / 20);
+ const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;
+ e = d;
+ d = c;
+ c = ROTL(b, 30) >>> 0;
+ b = a;
+ a = T;
+ }
+ H[0] = H[0] + a >>> 0;
+ H[1] = H[1] + b >>> 0;
+ H[2] = H[2] + c >>> 0;
+ H[3] = H[3] + d >>> 0;
+ H[4] = H[4] + e >>> 0;
+ }
+ return [H[0] >> 24 & 255, H[0] >> 16 & 255, H[0] >> 8 & 255, H[0] & 255, H[1] >> 24 & 255, H[1] >> 16 & 255, H[1] >> 8 & 255, H[1] & 255, H[2] >> 24 & 255, H[2] >> 16 & 255, H[2] >> 8 & 255, H[2] & 255, H[3] >> 24 & 255, H[3] >> 16 & 255, H[3] >> 8 & 255, H[3] & 255, H[4] >> 24 & 255, H[4] >> 16 & 255, H[4] >> 8 & 255, H[4] & 255];
+}
+const v5 = v35("v5", 80, sha1);
+const uuid5 = v5;
+const BAD_ID_CHARS_REGEXP = /[^\dA-Za-z](\W)*/g;
+let conf = {};
+let entityNameIds = /* @__PURE__ */ new Map();
+const setConf = function(cnf) {
+ const keys = Object.keys(cnf);
+ for (const key of keys) {
+ conf[key] = cnf[key];
+ }
+};
+const drawAttributes = (groupNode, entityTextNode, attributes) => {
+ const heightPadding = conf.entityPadding / 3;
+ const widthPadding = conf.entityPadding / 3;
+ const attrFontSize = conf.fontSize * 0.85;
+ const labelBBox = entityTextNode.node().getBBox();
+ const attributeNodes = [];
+ let hasKeyType = false;
+ let hasComment = false;
+ let maxTypeWidth = 0;
+ let maxNameWidth = 0;
+ let maxKeyWidth = 0;
+ let maxCommentWidth = 0;
+ let cumulativeHeight = labelBBox.height + heightPadding * 2;
+ let attrNum = 1;
+ attributes.forEach((item) => {
+ if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) {
+ hasKeyType = true;
+ }
+ if (item.attributeComment !== void 0) {
+ hasComment = true;
+ }
+ });
+ attributes.forEach((item) => {
+ const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`;
+ let nodeHeight = 0;
+ const attributeType = parseGenericTypes(item.attributeType);
+ const typeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-type`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(attributeType);
+ const nameNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-name`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeName);
+ const attributeNode = {};
+ attributeNode.tn = typeNode;
+ attributeNode.nn = nameNode;
+ const typeBBox = typeNode.node().getBBox();
+ const nameBBox = nameNode.node().getBBox();
+ maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width);
+ maxNameWidth = Math.max(maxNameWidth, nameBBox.width);
+ nodeHeight = Math.max(typeBBox.height, nameBBox.height);
+ if (hasKeyType) {
+ const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(",") : "";
+ const keyTypeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-key`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(keyTypeNodeText);
+ attributeNode.kn = keyTypeNode;
+ const keyTypeBBox = keyTypeNode.node().getBBox();
+ maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width);
+ nodeHeight = Math.max(nodeHeight, keyTypeBBox.height);
+ }
+ if (hasComment) {
+ const commentNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-comment`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeComment || "");
+ attributeNode.cn = commentNode;
+ const commentNodeBBox = commentNode.node().getBBox();
+ maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width);
+ nodeHeight = Math.max(nodeHeight, commentNodeBBox.height);
+ }
+ attributeNode.height = nodeHeight;
+ attributeNodes.push(attributeNode);
+ cumulativeHeight += nodeHeight + heightPadding * 2;
+ attrNum += 1;
+ });
+ let widthPaddingFactor = 4;
+ if (hasKeyType) {
+ widthPaddingFactor += 2;
+ }
+ if (hasComment) {
+ widthPaddingFactor += 2;
+ }
+ const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth;
+ const bBox = {
+ width: Math.max(
+ conf.minEntityWidth,
+ Math.max(
+ labelBBox.width + conf.entityPadding * 2,
+ maxWidth + widthPadding * widthPaddingFactor
+ )
+ ),
+ height: attributes.length > 0 ? cumulativeHeight : Math.max(conf.minEntityHeight, labelBBox.height + conf.entityPadding * 2)
+ };
+ if (attributes.length > 0) {
+ const spareColumnWidth = Math.max(
+ 0,
+ (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2)
+ );
+ entityTextNode.attr(
+ "transform",
+ "translate(" + bBox.width / 2 + "," + (heightPadding + labelBBox.height / 2) + ")"
+ );
+ let heightOffset = labelBBox.height + heightPadding * 2;
+ let attribStyle = "attributeBoxOdd";
+ attributeNodes.forEach((attributeNode) => {
+ const alignY = heightOffset + heightPadding + attributeNode.height / 2;
+ attributeNode.tn.attr("transform", "translate(" + widthPadding + "," + alignY + ")");
+ const typeRect = groupNode.insert("rect", "#" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr("x", 0).attr("y", heightOffset).attr("width", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ const nameXOffset = parseFloat(typeRect.attr("x")) + parseFloat(typeRect.attr("width"));
+ attributeNode.nn.attr(
+ "transform",
+ "translate(" + (nameXOffset + widthPadding) + "," + alignY + ")"
+ );
+ const nameRect = groupNode.insert("rect", "#" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr("x", nameXOffset).attr("y", heightOffset).attr("width", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ let keyTypeAndCommentXOffset = parseFloat(nameRect.attr("x")) + parseFloat(nameRect.attr("width"));
+ if (hasKeyType) {
+ attributeNode.kn.attr(
+ "transform",
+ "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")"
+ );
+ const keyTypeRect = groupNode.insert("rect", "#" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr("x")) + parseFloat(keyTypeRect.attr("width"));
+ }
+ if (hasComment) {
+ attributeNode.cn.attr(
+ "transform",
+ "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")"
+ );
+ groupNode.insert("rect", "#" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, "true").attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ }
+ heightOffset += attributeNode.height + heightPadding * 2;
+ attribStyle = attribStyle === "attributeBoxOdd" ? "attributeBoxEven" : "attributeBoxOdd";
+ });
+ } else {
+ bBox.height = Math.max(conf.minEntityHeight, cumulativeHeight);
+ entityTextNode.attr("transform", "translate(" + bBox.width / 2 + "," + bBox.height / 2 + ")");
+ }
+ return bBox;
+};
+const drawEntities = function(svgNode, entities2, graph) {
+ const keys = Object.keys(entities2);
+ let firstOne;
+ keys.forEach(function(entityName) {
+ const entityId = generateId(entityName, "entity");
+ entityNameIds.set(entityName, entityId);
+ const groupNode = svgNode.append("g").attr("id", entityId);
+ firstOne = firstOne === void 0 ? entityId : firstOne;
+ const textId = "text-" + entityId;
+ const textNode = groupNode.append("text").classed("er entityLabel", true).attr("id", textId).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "middle").style("font-family", getConfig().fontFamily).style("font-size", conf.fontSize + "px").text(entityName);
+ const { width: entityWidth, height: entityHeight } = drawAttributes(
+ groupNode,
+ textNode,
+ entities2[entityName].attributes
+ );
+ const rectNode = groupNode.insert("rect", "#" + textId).classed("er entityBox", true).attr("x", 0).attr("y", 0).attr("width", entityWidth).attr("height", entityHeight);
+ const rectBBox = rectNode.node().getBBox();
+ graph.setNode(entityId, {
+ width: rectBBox.width,
+ height: rectBBox.height,
+ shape: "rect",
+ id: entityId
+ });
+ });
+ return firstOne;
+};
+const adjustEntities = function(svgNode, graph) {
+ graph.nodes().forEach(function(v) {
+ if (v !== void 0 && graph.node(v) !== void 0) {
+ svgNode.select("#" + v).attr(
+ "transform",
+ "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )"
+ );
+ }
+ });
+};
+const getEdgeName = function(rel) {
+ return (rel.entityA + rel.roleA + rel.entityB).replace(/\s/g, "");
+};
+const addRelationships = function(relationships2, g) {
+ relationships2.forEach(function(r) {
+ g.setEdge(
+ entityNameIds.get(r.entityA),
+ entityNameIds.get(r.entityB),
+ { relationship: r },
+ getEdgeName(r)
+ );
+ });
+ return relationships2;
+};
+let relCnt = 0;
+const drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {
+ relCnt++;
+ const edge = g.edge(
+ entityNameIds.get(rel.entityA),
+ entityNameIds.get(rel.entityB),
+ getEdgeName(rel)
+ );
+ const lineFunction = line().x(function(d) {
+ return d.x;
+ }).y(function(d) {
+ return d.y;
+ }).curve(curveBasis);
+ const svgPath = svg.insert("path", "#" + insert).classed("er relationshipLine", true).attr("d", lineFunction(edge.points)).style("stroke", conf.stroke).style("fill", "none");
+ if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) {
+ svgPath.attr("stroke-dasharray", "8,8");
+ }
+ let url = "";
+ if (conf.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ switch (rel.relSpec.cardA) {
+ case diagObj.db.Cardinality.ZERO_OR_ONE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_END + ")");
+ break;
+ case diagObj.db.Cardinality.ZERO_OR_MORE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_END + ")");
+ break;
+ case diagObj.db.Cardinality.ONE_OR_MORE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_END + ")");
+ break;
+ case diagObj.db.Cardinality.ONLY_ONE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_END + ")");
+ break;
+ }
+ switch (rel.relSpec.cardB) {
+ case diagObj.db.Cardinality.ZERO_OR_ONE:
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_START + ")"
+ );
+ break;
+ case diagObj.db.Cardinality.ZERO_OR_MORE:
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_START + ")"
+ );
+ break;
+ case diagObj.db.Cardinality.ONE_OR_MORE:
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_START + ")"
+ );
+ break;
+ case diagObj.db.Cardinality.ONLY_ONE:
+ svgPath.attr("marker-start", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_START + ")");
+ break;
+ }
+ const len = svgPath.node().getTotalLength();
+ const labelPoint = svgPath.node().getPointAtLength(len * 0.5);
+ const labelId = "rel" + relCnt;
+ const labelNode = svg.append("text").classed("er relationshipLabel", true).attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).style("text-anchor", "middle").style("dominant-baseline", "middle").style("font-family", getConfig().fontFamily).style("font-size", conf.fontSize + "px").text(rel.roleA);
+ const labelBBox = labelNode.node().getBBox();
+ svg.insert("rect", "#" + labelId).classed("er relationshipLabelBox", true).attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height);
+};
+const draw = function(text, id, _version, diagObj) {
+ conf = getConfig().er;
+ log.info("Drawing ER diagram");
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const svg = root.select(`[id='${id}']`);
+ erMarkers.insertMarkers(svg, conf);
+ let g;
+ g = new Graph({
+ multigraph: true,
+ directed: true,
+ compound: false
+ }).setGraph({
+ rankdir: conf.layoutDirection,
+ marginx: 20,
+ marginy: 20,
+ nodesep: 100,
+ edgesep: 100,
+ ranksep: 100
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g);
+ const relationships2 = addRelationships(diagObj.db.getRelationships(), g);
+ layout(g);
+ adjustEntities(svg, g);
+ relationships2.forEach(function(rel) {
+ drawRelationshipFromLayout(svg, rel, g, firstEntity, diagObj);
+ });
+ const padding = conf.diagramPadding;
+ utils.insertTitle(svg, "entityTitleText", conf.titleTopMargin, diagObj.db.getDiagramTitle());
+ const svgBounds = svg.node().getBBox();
+ const width = svgBounds.width + padding * 2;
+ const height = svgBounds.height + padding * 2;
+ configureSvgSize(svg, height, width, conf.useMaxWidth);
+ svg.attr("viewBox", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);
+};
+const MERMAID_ERDIAGRAM_UUID = "28e9f9db-3c8d-5aa5-9faf-44286ae5937c";
+function generateId(str = "", prefix = "") {
+ const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, "");
+ return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${uuid5(
+ str,
+ MERMAID_ERDIAGRAM_UUID
+ )}`;
+}
+function strWithHyphen(str = "") {
+ return str.length > 0 ? `${str}-` : "";
+}
+const erRenderer = {
+ setConf,
+ draw
+};
+const getStyles = (options) => `
+ .entityBox {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+ }
+
+ .attributeBoxOdd {
+ fill: ${options.attributeBackgroundColorOdd};
+ stroke: ${options.nodeBorder};
+ }
+
+ .attributeBoxEven {
+ fill: ${options.attributeBackgroundColorEven};
+ stroke: ${options.nodeBorder};
+ }
+
+ .relationshipLabelBox {
+ fill: ${options.tertiaryColor};
+ opacity: 0.7;
+ background-color: ${options.tertiaryColor};
+ rect {
+ opacity: 0.5;
+ }
+ }
+
+ .relationshipLine {
+ stroke: ${options.lineColor};
+ }
+
+ .entityTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor};
+ }
+`;
+const erStyles = getStyles;
+const diagram = {
+ parser: erParser,
+ db: erDb,
+ renderer: erRenderer,
+ styles: erStyles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=erDiagram-dfd3761e.js.map
diff --git a/scopegraphs-render-docs/doc/js/errors.d.ts b/scopegraphs-render-docs/doc/js/errors.d.ts
new file mode 100644
index 0000000..90e14e7
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/errors.d.ts
@@ -0,0 +1,3 @@
+export declare class UnknownDiagramError extends Error {
+ constructor(message: string);
+}
diff --git a/scopegraphs-render-docs/doc/js/flowDb-39497bf7.js b/scopegraphs-render-docs/doc/js/flowDb-39497bf7.js
new file mode 100644
index 0000000..8c0f86e
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowDb-39497bf7.js
@@ -0,0 +1,1116 @@
+import { k as Ne, q as Oe, v as Pe, w as we, x as Ue, y as Me, z as Ge, g as w2, l as U2, A as Ke, f as je, h as i2 } from "./commonDb-41f8b4c5.js";
+import { u as M2 } from "./utils-8ea37061.js";
+import { m as We } from "./mermaidAPI-67f627de.js";
+var O2 = function() {
+ var e = function(H1, a, o, T) {
+ for (o = o || {}, T = H1.length; T--; o[H1[T]] = a)
+ ;
+ return o;
+ }, u = [1, 9], n = [1, 7], i = [1, 6], c = [1, 8], _ = [1, 20, 21, 22, 23, 38, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], B = [2, 10], u1 = [1, 20], H = [1, 21], s1 = [1, 22], A1 = [1, 23], Y1 = [1, 30], Q1 = [1, 32], X1 = [1, 33], s2 = [1, 34], q = [1, 62], c1 = [1, 48], m1 = [1, 52], o2 = [1, 36], l2 = [1, 37], h2 = [1, 38], f2 = [1, 39], A2 = [1, 40], V1 = [1, 56], x1 = [1, 63], v1 = [1, 51], R1 = [1, 53], L1 = [1, 55], I1 = [1, 59], N1 = [1, 60], d2 = [1, 41], p2 = [1, 42], E2 = [1, 43], b2 = [1, 44], O1 = [1, 61], P1 = [1, 50], w1 = [1, 54], U1 = [1, 57], M1 = [1, 58], G1 = [1, 49], j2 = [1, 66], u2 = [1, 71], Q = [1, 20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], d1 = [1, 75], p1 = [1, 74], E1 = [1, 76], k2 = [20, 21, 23, 81, 82], n1 = [1, 99], l = [1, 104], h = [1, 107], f = [1, 108], r1 = [1, 101], A = [1, 106], d = [1, 109], i1 = [1, 102], p = [1, 114], E = [1, 113], b = [1, 103], k = [1, 105], D = [1, 110], g = [1, 111], F = [1, 112], C = [1, 115], S2 = [20, 21, 22, 23, 81, 82], t1 = [20, 21, 22, 23, 53, 81, 82], Z = [20, 21, 22, 23, 40, 52, 53, 55, 57, 59, 61, 63, 65, 66, 67, 69, 71, 73, 74, 76, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], Y = [20, 21, 23], W2 = [20, 21, 23, 52, 66, 67, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], m2 = [1, 12, 20, 21, 22, 23, 24, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], n2 = [52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], S = [1, 150], m = [1, 158], V = [1, 159], x = [1, 160], v = [1, 161], R = [1, 145], L = [1, 146], J = [1, 141], $ = [1, 142], I = [1, 153], N = [1, 154], O = [1, 155], P = [1, 156], w = [1, 157], U = [1, 162], M = [1, 163], G = [1, 148], K = [1, 151], j = [1, 147], W = [1, 144], V2 = [20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], Y2 = [1, 166], $1 = [20, 21, 22, 23, 26, 52, 66, 67, 92, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], y = [20, 21, 22, 23, 24, 26, 38, 40, 41, 42, 52, 56, 58, 60, 62, 64, 66, 67, 68, 70, 72, 73, 75, 77, 81, 82, 87, 88, 89, 90, 91, 92, 93, 96, 106, 107, 110, 112, 113, 114, 115, 123, 124, 125, 126, 127, 128], z2 = [12, 21, 22, 24], H2 = [22, 107], b1 = [1, 251], k1 = [1, 246], D1 = [1, 247], g1 = [1, 255], F1 = [1, 252], C1 = [1, 249], _1 = [1, 248], B1 = [1, 250], T1 = [1, 253], y1 = [1, 254], S1 = [1, 256], z1 = [1, 274], Q2 = [20, 21, 23, 107], o1 = [20, 21, 22, 23, 66, 67, 87, 103, 106, 107, 110, 111, 112, 113, 114], x2 = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, mermaidDoc: 4, directive: 5, openDirective: 6, typeDirective: 7, closeDirective: 8, separator: 9, ":": 10, argDirective: 11, open_directive: 12, type_directive: 13, arg_directive: 14, close_directive: 15, graphConfig: 16, document: 17, line: 18, statement: 19, SEMI: 20, NEWLINE: 21, SPACE: 22, EOF: 23, GRAPH: 24, NODIR: 25, DIR: 26, FirstStmtSeperator: 27, ending: 28, endToken: 29, spaceList: 30, spaceListNewline: 31, verticeStatement: 32, styleStatement: 33, linkStyleStatement: 34, classDefStatement: 35, classStatement: 36, clickStatement: 37, subgraph: 38, text: 39, SQS: 40, SQE: 41, end: 42, direction: 43, acc_title: 44, acc_title_value: 45, acc_descr: 46, acc_descr_value: 47, acc_descr_multiline_value: 48, link: 49, node: 50, vertex: 51, AMP: 52, STYLE_SEPARATOR: 53, idString: 54, DOUBLECIRCLESTART: 55, DOUBLECIRCLEEND: 56, PS: 57, PE: 58, "(-": 59, "-)": 60, STADIUMSTART: 61, STADIUMEND: 62, SUBROUTINESTART: 63, SUBROUTINEEND: 64, VERTEX_WITH_PROPS_START: 65, ALPHA: 66, COLON: 67, PIPE: 68, CYLINDERSTART: 69, CYLINDEREND: 70, DIAMOND_START: 71, DIAMOND_STOP: 72, TAGEND: 73, TRAPSTART: 74, TRAPEND: 75, INVTRAPSTART: 76, INVTRAPEND: 77, linkStatement: 78, arrowText: 79, TESTSTR: 80, START_LINK: 81, LINK: 82, textToken: 83, STR: 84, MD_STR: 85, keywords: 86, STYLE: 87, LINKSTYLE: 88, CLASSDEF: 89, CLASS: 90, CLICK: 91, DOWN: 92, UP: 93, textNoTags: 94, textNoTagsToken: 95, DEFAULT: 96, stylesOpt: 97, alphaNum: 98, CALLBACKNAME: 99, CALLBACKARGS: 100, HREF: 101, LINK_TARGET: 102, HEX: 103, numList: 104, INTERPOLATE: 105, NUM: 106, COMMA: 107, style: 108, styleComponent: 109, MINUS: 110, UNIT: 111, BRKT: 112, DOT: 113, PCT: 114, TAGSTART: 115, alphaNumToken: 116, idStringToken: 117, alphaNumStatement: 118, direction_tb: 119, direction_bt: 120, direction_rl: 121, direction_lr: 122, PUNCTUATION: 123, UNICODE_TEXT: 124, PLUS: 125, EQUALS: 126, MULT: 127, UNDERSCORE: 128, graphCodeTokens: 129, ARROW_CROSS: 130, ARROW_POINT: 131, ARROW_CIRCLE: 132, ARROW_OPEN: 133, QUOTE: 134, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 10: ":", 12: "open_directive", 13: "type_directive", 14: "arg_directive", 15: "close_directive", 20: "SEMI", 21: "NEWLINE", 22: "SPACE", 23: "EOF", 24: "GRAPH", 25: "NODIR", 26: "DIR", 38: "subgraph", 40: "SQS", 41: "SQE", 42: "end", 44: "acc_title", 45: "acc_title_value", 46: "acc_descr", 47: "acc_descr_value", 48: "acc_descr_multiline_value", 52: "AMP", 53: "STYLE_SEPARATOR", 55: "DOUBLECIRCLESTART", 56: "DOUBLECIRCLEEND", 57: "PS", 58: "PE", 59: "(-", 60: "-)", 61: "STADIUMSTART", 62: "STADIUMEND", 63: "SUBROUTINESTART", 64: "SUBROUTINEEND", 65: "VERTEX_WITH_PROPS_START", 66: "ALPHA", 67: "COLON", 68: "PIPE", 69: "CYLINDERSTART", 70: "CYLINDEREND", 71: "DIAMOND_START", 72: "DIAMOND_STOP", 73: "TAGEND", 74: "TRAPSTART", 75: "TRAPEND", 76: "INVTRAPSTART", 77: "INVTRAPEND", 80: "TESTSTR", 81: "START_LINK", 82: "LINK", 84: "STR", 85: "MD_STR", 87: "STYLE", 88: "LINKSTYLE", 89: "CLASSDEF", 90: "CLASS", 91: "CLICK", 92: "DOWN", 93: "UP", 96: "DEFAULT", 99: "CALLBACKNAME", 100: "CALLBACKARGS", 101: "HREF", 102: "LINK_TARGET", 103: "HEX", 105: "INTERPOLATE", 106: "NUM", 107: "COMMA", 110: "MINUS", 111: "UNIT", 112: "BRKT", 113: "DOT", 114: "PCT", 115: "TAGSTART", 119: "direction_tb", 120: "direction_bt", 121: "direction_rl", 122: "direction_lr", 123: "PUNCTUATION", 124: "UNICODE_TEXT", 125: "PLUS", 126: "EQUALS", 127: "MULT", 128: "UNDERSCORE", 130: "ARROW_CROSS", 131: "ARROW_POINT", 132: "ARROW_CIRCLE", 133: "ARROW_OPEN", 134: "QUOTE" },
+ productions_: [0, [3, 1], [3, 2], [5, 4], [5, 6], [6, 1], [7, 1], [11, 1], [8, 1], [4, 2], [17, 0], [17, 2], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [16, 2], [16, 2], [16, 2], [16, 3], [28, 2], [28, 1], [29, 1], [29, 1], [29, 1], [27, 1], [27, 1], [27, 2], [31, 2], [31, 2], [31, 1], [31, 1], [30, 2], [30, 1], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 9], [19, 6], [19, 4], [19, 1], [19, 2], [19, 2], [19, 1], [9, 1], [9, 1], [9, 1], [32, 3], [32, 4], [32, 2], [32, 1], [50, 1], [50, 5], [50, 3], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 8], [51, 4], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 4], [51, 4], [51, 1], [49, 2], [49, 3], [49, 3], [49, 1], [49, 3], [78, 1], [79, 3], [39, 1], [39, 2], [39, 1], [39, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [94, 1], [94, 2], [35, 5], [35, 5], [36, 5], [37, 2], [37, 4], [37, 3], [37, 5], [37, 2], [37, 4], [37, 4], [37, 6], [37, 2], [37, 4], [37, 2], [37, 4], [37, 4], [37, 6], [33, 5], [33, 5], [34, 5], [34, 5], [34, 9], [34, 9], [34, 7], [34, 7], [104, 1], [104, 3], [97, 1], [97, 3], [108, 1], [108, 2], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [95, 1], [95, 1], [95, 1], [95, 1], [54, 1], [54, 2], [98, 1], [98, 2], [118, 1], [118, 1], [118, 1], [118, 1], [43, 1], [43, 1], [43, 1], [43, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1]],
+ performAction: function(a, o, T, r, X, t, r2) {
+ var s = t.length - 1;
+ switch (X) {
+ case 5:
+ r.parseDirective("%%{", "open_directive");
+ break;
+ case 6:
+ r.parseDirective(t[s], "type_directive");
+ break;
+ case 7:
+ t[s] = t[s].trim().replace(/'/g, '"'), r.parseDirective(t[s], "arg_directive");
+ break;
+ case 8:
+ r.parseDirective("}%%", "close_directive", "flowchart");
+ break;
+ case 10:
+ this.$ = [];
+ break;
+ case 11:
+ (!Array.isArray(t[s]) || t[s].length > 0) && t[s - 1].push(t[s]), this.$ = t[s - 1];
+ break;
+ case 12:
+ case 97:
+ case 153:
+ case 155:
+ case 156:
+ this.$ = t[s];
+ break;
+ case 19:
+ r.setDirection("TB"), this.$ = "TB";
+ break;
+ case 20:
+ r.setDirection(t[s - 1]), this.$ = t[s - 1];
+ break;
+ case 35:
+ this.$ = t[s - 1].nodes;
+ break;
+ case 36:
+ case 37:
+ case 38:
+ case 39:
+ case 40:
+ this.$ = [];
+ break;
+ case 41:
+ this.$ = r.addSubGraph(t[s - 6], t[s - 1], t[s - 4]);
+ break;
+ case 42:
+ this.$ = r.addSubGraph(t[s - 3], t[s - 1], t[s - 3]);
+ break;
+ case 43:
+ this.$ = r.addSubGraph(void 0, t[s - 1], void 0);
+ break;
+ case 45:
+ this.$ = t[s].trim(), r.setAccTitle(this.$);
+ break;
+ case 46:
+ case 47:
+ this.$ = t[s].trim(), r.setAccDescription(this.$);
+ break;
+ case 51:
+ r.addLink(t[s - 2].stmt, t[s], t[s - 1]), this.$ = { stmt: t[s], nodes: t[s].concat(t[s - 2].nodes) };
+ break;
+ case 52:
+ r.addLink(t[s - 3].stmt, t[s - 1], t[s - 2]), this.$ = { stmt: t[s - 1], nodes: t[s - 1].concat(t[s - 3].nodes) };
+ break;
+ case 53:
+ this.$ = { stmt: t[s - 1], nodes: t[s - 1] };
+ break;
+ case 54:
+ this.$ = { stmt: t[s], nodes: t[s] };
+ break;
+ case 55:
+ this.$ = [t[s]];
+ break;
+ case 56:
+ this.$ = t[s - 4].concat(t[s]);
+ break;
+ case 57:
+ this.$ = [t[s - 2]], r.setClass(t[s - 2], t[s]);
+ break;
+ case 58:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "square");
+ break;
+ case 59:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "doublecircle");
+ break;
+ case 60:
+ this.$ = t[s - 5], r.addVertex(t[s - 5], t[s - 2], "circle");
+ break;
+ case 61:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "ellipse");
+ break;
+ case 62:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "stadium");
+ break;
+ case 63:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "subroutine");
+ break;
+ case 64:
+ this.$ = t[s - 7], r.addVertex(t[s - 7], t[s - 1], "rect", void 0, void 0, void 0, Object.fromEntries([[t[s - 5], t[s - 3]]]));
+ break;
+ case 65:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "cylinder");
+ break;
+ case 66:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "round");
+ break;
+ case 67:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "diamond");
+ break;
+ case 68:
+ this.$ = t[s - 5], r.addVertex(t[s - 5], t[s - 2], "hexagon");
+ break;
+ case 69:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "odd");
+ break;
+ case 70:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "trapezoid");
+ break;
+ case 71:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "inv_trapezoid");
+ break;
+ case 72:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "lean_right");
+ break;
+ case 73:
+ this.$ = t[s - 3], r.addVertex(t[s - 3], t[s - 1], "lean_left");
+ break;
+ case 74:
+ this.$ = t[s], r.addVertex(t[s]);
+ break;
+ case 75:
+ t[s - 1].text = t[s], this.$ = t[s - 1];
+ break;
+ case 76:
+ case 77:
+ t[s - 2].text = t[s - 1], this.$ = t[s - 2];
+ break;
+ case 78:
+ this.$ = t[s];
+ break;
+ case 79:
+ var l1 = r.destructLink(t[s], t[s - 2]);
+ this.$ = { type: l1.type, stroke: l1.stroke, length: l1.length, text: t[s - 1] };
+ break;
+ case 80:
+ var l1 = r.destructLink(t[s]);
+ this.$ = { type: l1.type, stroke: l1.stroke, length: l1.length };
+ break;
+ case 81:
+ this.$ = t[s - 1];
+ break;
+ case 82:
+ this.$ = { text: t[s], type: "text" };
+ break;
+ case 83:
+ this.$ = { text: t[s - 1].text + "" + t[s], type: t[s - 1].type };
+ break;
+ case 84:
+ this.$ = { text: t[s], type: "text" };
+ break;
+ case 85:
+ this.$ = { text: t[s], type: "markdown" };
+ break;
+ case 98:
+ case 154:
+ this.$ = t[s - 1] + "" + t[s];
+ break;
+ case 99:
+ case 100:
+ this.$ = t[s - 4], r.addClass(t[s - 2], t[s]);
+ break;
+ case 101:
+ this.$ = t[s - 4], r.setClass(t[s - 2], t[s]);
+ break;
+ case 102:
+ case 110:
+ this.$ = t[s - 1], r.setClickEvent(t[s - 1], t[s]);
+ break;
+ case 103:
+ case 111:
+ this.$ = t[s - 3], r.setClickEvent(t[s - 3], t[s - 2]), r.setTooltip(t[s - 3], t[s]);
+ break;
+ case 104:
+ this.$ = t[s - 2], r.setClickEvent(t[s - 2], t[s - 1], t[s]);
+ break;
+ case 105:
+ this.$ = t[s - 4], r.setClickEvent(t[s - 4], t[s - 3], t[s - 2]), r.setTooltip(t[s - 4], t[s]);
+ break;
+ case 106:
+ case 112:
+ this.$ = t[s - 1], r.setLink(t[s - 1], t[s]);
+ break;
+ case 107:
+ case 113:
+ this.$ = t[s - 3], r.setLink(t[s - 3], t[s - 2]), r.setTooltip(t[s - 3], t[s]);
+ break;
+ case 108:
+ case 114:
+ this.$ = t[s - 3], r.setLink(t[s - 3], t[s - 2], t[s]);
+ break;
+ case 109:
+ case 115:
+ this.$ = t[s - 5], r.setLink(t[s - 5], t[s - 4], t[s]), r.setTooltip(t[s - 5], t[s - 2]);
+ break;
+ case 116:
+ this.$ = t[s - 4], r.addVertex(t[s - 2], void 0, void 0, t[s]);
+ break;
+ case 117:
+ case 119:
+ this.$ = t[s - 4], r.updateLink(t[s - 2], t[s]);
+ break;
+ case 118:
+ this.$ = t[s - 4], r.updateLink([t[s - 2]], t[s]);
+ break;
+ case 120:
+ this.$ = t[s - 8], r.updateLinkInterpolate([t[s - 6]], t[s - 2]), r.updateLink([t[s - 6]], t[s]);
+ break;
+ case 121:
+ this.$ = t[s - 8], r.updateLinkInterpolate(t[s - 6], t[s - 2]), r.updateLink(t[s - 6], t[s]);
+ break;
+ case 122:
+ this.$ = t[s - 6], r.updateLinkInterpolate([t[s - 4]], t[s]);
+ break;
+ case 123:
+ this.$ = t[s - 6], r.updateLinkInterpolate(t[s - 4], t[s]);
+ break;
+ case 124:
+ case 126:
+ this.$ = [t[s]];
+ break;
+ case 125:
+ case 127:
+ t[s - 2].push(t[s]), this.$ = t[s - 2];
+ break;
+ case 129:
+ this.$ = t[s - 1] + t[s];
+ break;
+ case 151:
+ this.$ = t[s];
+ break;
+ case 152:
+ this.$ = t[s - 1] + "" + t[s];
+ break;
+ case 157:
+ this.$ = "v";
+ break;
+ case 158:
+ this.$ = "-";
+ break;
+ case 159:
+ this.$ = { stmt: "dir", value: "TB" };
+ break;
+ case 160:
+ this.$ = { stmt: "dir", value: "BT" };
+ break;
+ case 161:
+ this.$ = { stmt: "dir", value: "RL" };
+ break;
+ case 162:
+ this.$ = { stmt: "dir", value: "LR" };
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: 5, 12: u, 16: 4, 21: n, 22: i, 24: c }, { 1: [3] }, { 1: [2, 1] }, { 3: 10, 4: 2, 5: 3, 6: 5, 12: u, 16: 4, 21: n, 22: i, 24: c }, e(_, B, { 17: 11 }), { 7: 12, 13: [1, 13] }, { 16: 14, 21: n, 22: i, 24: c }, { 16: 15, 21: n, 22: i, 24: c }, { 25: [1, 16], 26: [1, 17] }, { 13: [2, 5] }, { 1: [2, 2] }, { 1: [2, 9], 18: 18, 19: 19, 20: u1, 21: H, 22: s1, 23: A1, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: Y1, 43: 31, 44: Q1, 46: X1, 48: s2, 50: 35, 51: 45, 52: q, 54: 46, 66: c1, 67: m1, 87: o2, 88: l2, 89: h2, 90: f2, 91: A2, 92: V1, 96: x1, 106: v1, 107: R1, 110: L1, 112: I1, 113: N1, 117: 47, 119: d2, 120: p2, 121: E2, 122: b2, 123: O1, 124: P1, 125: w1, 126: U1, 127: M1, 128: G1 }, { 8: 64, 10: [1, 65], 15: j2 }, e([10, 15], [2, 6]), e(_, [2, 17]), e(_, [2, 18]), e(_, [2, 19]), { 20: [1, 68], 21: [1, 69], 22: u2, 27: 67, 30: 70 }, e(Q, [2, 11]), e(Q, [2, 12]), e(Q, [2, 13]), e(Q, [2, 14]), e(Q, [2, 15]), e(Q, [2, 16]), { 9: 72, 20: d1, 21: p1, 23: E1, 49: 73, 78: 77, 81: [1, 78], 82: [1, 79] }, { 9: 80, 20: d1, 21: p1, 23: E1 }, { 9: 81, 20: d1, 21: p1, 23: E1 }, { 9: 82, 20: d1, 21: p1, 23: E1 }, { 9: 83, 20: d1, 21: p1, 23: E1 }, { 9: 84, 20: d1, 21: p1, 23: E1 }, { 9: 86, 20: d1, 21: p1, 22: [1, 85], 23: E1 }, e(Q, [2, 44]), { 45: [1, 87] }, { 47: [1, 88] }, e(Q, [2, 47]), e(k2, [2, 54], { 30: 89, 22: u2 }), { 22: [1, 90] }, { 22: [1, 91] }, { 22: [1, 92] }, { 22: [1, 93] }, { 26: n1, 52: l, 66: h, 67: f, 84: [1, 97], 92: r1, 98: 96, 99: [1, 94], 101: [1, 95], 106: A, 107: d, 110: i1, 112: p, 113: E, 116: 100, 118: 98, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(Q, [2, 159]), e(Q, [2, 160]), e(Q, [2, 161]), e(Q, [2, 162]), e(S2, [2, 55], { 53: [1, 116] }), e(t1, [2, 74], { 117: 129, 40: [1, 117], 52: q, 55: [1, 118], 57: [1, 119], 59: [1, 120], 61: [1, 121], 63: [1, 122], 65: [1, 123], 66: c1, 67: m1, 69: [1, 124], 71: [1, 125], 73: [1, 126], 74: [1, 127], 76: [1, 128], 92: V1, 96: x1, 106: v1, 107: R1, 110: L1, 112: I1, 113: N1, 123: O1, 124: P1, 125: w1, 126: U1, 127: M1, 128: G1 }), e(Z, [2, 151]), e(Z, [2, 176]), e(Z, [2, 177]), e(Z, [2, 178]), e(Z, [2, 179]), e(Z, [2, 180]), e(Z, [2, 181]), e(Z, [2, 182]), e(Z, [2, 183]), e(Z, [2, 184]), e(Z, [2, 185]), e(Z, [2, 186]), e(Z, [2, 187]), e(Z, [2, 188]), e(Z, [2, 189]), e(Z, [2, 190]), e(Z, [2, 191]), { 9: 130, 20: d1, 21: p1, 23: E1 }, { 11: 131, 14: [1, 132] }, e(Y, [2, 8]), e(_, [2, 20]), e(_, [2, 26]), e(_, [2, 27]), { 21: [1, 133] }, e(W2, [2, 34], { 30: 134, 22: u2 }), e(Q, [2, 35]), { 50: 135, 51: 45, 52: q, 54: 46, 66: c1, 67: m1, 92: V1, 96: x1, 106: v1, 107: R1, 110: L1, 112: I1, 113: N1, 117: 47, 123: O1, 124: P1, 125: w1, 126: U1, 127: M1, 128: G1 }, e(m2, [2, 48]), e(m2, [2, 49]), e(m2, [2, 50]), e(n2, [2, 78], { 79: 136, 68: [1, 138], 80: [1, 137] }), { 22: S, 24: m, 26: V, 38: x, 39: 139, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e([52, 66, 67, 68, 80, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 80]), e(Q, [2, 36]), e(Q, [2, 37]), e(Q, [2, 38]), e(Q, [2, 39]), e(Q, [2, 40]), { 22: S, 24: m, 26: V, 38: x, 39: 164, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(V2, B, { 17: 165 }), e(Q, [2, 45]), e(Q, [2, 46]), e(k2, [2, 53], { 52: Y2 }), { 26: n1, 52: l, 66: h, 67: f, 92: r1, 98: 167, 103: [1, 168], 106: A, 107: d, 110: i1, 112: p, 113: E, 116: 100, 118: 98, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 96: [1, 169], 104: 170, 106: [1, 171] }, { 26: n1, 52: l, 66: h, 67: f, 92: r1, 96: [1, 172], 98: 173, 106: A, 107: d, 110: i1, 112: p, 113: E, 116: 100, 118: 98, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 26: n1, 52: l, 66: h, 67: f, 92: r1, 98: 174, 106: A, 107: d, 110: i1, 112: p, 113: E, 116: 100, 118: 98, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(Y, [2, 102], { 22: [1, 175], 100: [1, 176] }), e(Y, [2, 106], { 22: [1, 177] }), e(Y, [2, 110], { 116: 100, 118: 179, 22: [1, 178], 26: n1, 52: l, 66: h, 67: f, 92: r1, 106: A, 107: d, 110: i1, 112: p, 113: E, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }), e(Y, [2, 112], { 22: [1, 180] }), e($1, [2, 153]), e($1, [2, 155]), e($1, [2, 156]), e($1, [2, 157]), e($1, [2, 158]), e(y, [2, 163]), e(y, [2, 164]), e(y, [2, 165]), e(y, [2, 166]), e(y, [2, 167]), e(y, [2, 168]), e(y, [2, 169]), e(y, [2, 170]), e(y, [2, 171]), e(y, [2, 172]), e(y, [2, 173]), e(y, [2, 174]), e(y, [2, 175]), { 52: q, 54: 181, 66: c1, 67: m1, 92: V1, 96: x1, 106: v1, 107: R1, 110: L1, 112: I1, 113: N1, 117: 47, 123: O1, 124: P1, 125: w1, 126: U1, 127: M1, 128: G1 }, { 22: S, 24: m, 26: V, 38: x, 39: 182, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 39: 183, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 39: 185, 42: v, 52: l, 57: [1, 184], 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 39: 186, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 39: 187, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 39: 188, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 66: [1, 189] }, { 22: S, 24: m, 26: V, 38: x, 39: 190, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 39: 191, 42: v, 52: l, 66: h, 67: f, 71: [1, 192], 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 39: 193, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 39: 194, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 39: 195, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(Z, [2, 152]), e(z2, [2, 3]), { 8: 196, 15: j2 }, { 15: [2, 7] }, e(_, [2, 28]), e(W2, [2, 33]), e(k2, [2, 51], { 30: 197, 22: u2 }), e(n2, [2, 75], { 22: [1, 198] }), { 22: [1, 199] }, { 22: S, 24: m, 26: V, 38: x, 39: 200, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 82: [1, 201], 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(y, [2, 82]), e(y, [2, 84]), e(y, [2, 85]), e(y, [2, 141]), e(y, [2, 142]), e(y, [2, 143]), e(y, [2, 144]), e(y, [2, 145]), e(y, [2, 146]), e(y, [2, 147]), e(y, [2, 148]), e(y, [2, 149]), e(y, [2, 150]), e(y, [2, 86]), e(y, [2, 87]), e(y, [2, 88]), e(y, [2, 89]), e(y, [2, 90]), e(y, [2, 91]), e(y, [2, 92]), e(y, [2, 93]), e(y, [2, 94]), e(y, [2, 95]), e(y, [2, 96]), { 9: 204, 20: d1, 21: p1, 22: S, 23: E1, 24: m, 26: V, 38: x, 40: [1, 203], 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 18: 18, 19: 19, 20: u1, 21: H, 22: s1, 23: A1, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: Y1, 42: [1, 205], 43: 31, 44: Q1, 46: X1, 48: s2, 50: 35, 51: 45, 52: q, 54: 46, 66: c1, 67: m1, 87: o2, 88: l2, 89: h2, 90: f2, 91: A2, 92: V1, 96: x1, 106: v1, 107: R1, 110: L1, 112: I1, 113: N1, 117: 47, 119: d2, 120: p2, 121: E2, 122: b2, 123: O1, 124: P1, 125: w1, 126: U1, 127: M1, 128: G1 }, { 22: u2, 30: 206 }, { 22: [1, 207], 26: n1, 52: l, 66: h, 67: f, 92: r1, 106: A, 107: d, 110: i1, 112: p, 113: E, 116: 100, 118: 179, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: [1, 208] }, { 22: [1, 209] }, { 22: [1, 210], 107: [1, 211] }, e(H2, [2, 124]), { 22: [1, 212] }, { 22: [1, 213], 26: n1, 52: l, 66: h, 67: f, 92: r1, 106: A, 107: d, 110: i1, 112: p, 113: E, 116: 100, 118: 179, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: [1, 214], 26: n1, 52: l, 66: h, 67: f, 92: r1, 106: A, 107: d, 110: i1, 112: p, 113: E, 116: 100, 118: 179, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 84: [1, 215] }, e(Y, [2, 104], { 22: [1, 216] }), { 84: [1, 217], 102: [1, 218] }, { 84: [1, 219] }, e($1, [2, 154]), { 84: [1, 220], 102: [1, 221] }, e(S2, [2, 57], { 117: 129, 52: q, 66: c1, 67: m1, 92: V1, 96: x1, 106: v1, 107: R1, 110: L1, 112: I1, 113: N1, 123: O1, 124: P1, 125: w1, 126: U1, 127: M1, 128: G1 }), { 22: S, 24: m, 26: V, 38: x, 41: [1, 222], 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 56: [1, 223], 66: h, 67: f, 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 39: 224, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 58: [1, 225], 66: h, 67: f, 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 60: [1, 226], 66: h, 67: f, 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 62: [1, 227], 66: h, 67: f, 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 64: [1, 228], 66: h, 67: f, 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 67: [1, 229] }, { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 66: h, 67: f, 70: [1, 230], 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 66: h, 67: f, 72: [1, 231], 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 39: 232, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 41: [1, 233], 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 66: h, 67: f, 73: R, 75: [1, 234], 77: [1, 235], 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 66: h, 67: f, 73: R, 75: [1, 237], 77: [1, 236], 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 9: 238, 20: d1, 21: p1, 23: E1 }, e(k2, [2, 52], { 52: Y2 }), e(n2, [2, 77]), e(n2, [2, 76]), { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 66: h, 67: f, 68: [1, 239], 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(n2, [2, 79]), e(y, [2, 83]), { 22: S, 24: m, 26: V, 38: x, 39: 240, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(V2, B, { 17: 241 }), e(Q, [2, 43]), { 51: 242, 52: q, 54: 46, 66: c1, 67: m1, 92: V1, 96: x1, 106: v1, 107: R1, 110: L1, 112: I1, 113: N1, 117: 47, 123: O1, 124: P1, 125: w1, 126: U1, 127: M1, 128: G1 }, { 22: b1, 66: k1, 67: D1, 87: g1, 97: 243, 103: F1, 106: C1, 108: 244, 109: 245, 110: _1, 111: B1, 112: T1, 113: y1, 114: S1 }, { 22: b1, 66: k1, 67: D1, 87: g1, 97: 257, 103: F1, 106: C1, 108: 244, 109: 245, 110: _1, 111: B1, 112: T1, 113: y1, 114: S1 }, { 22: b1, 66: k1, 67: D1, 87: g1, 97: 258, 103: F1, 105: [1, 259], 106: C1, 108: 244, 109: 245, 110: _1, 111: B1, 112: T1, 113: y1, 114: S1 }, { 22: b1, 66: k1, 67: D1, 87: g1, 97: 260, 103: F1, 105: [1, 261], 106: C1, 108: 244, 109: 245, 110: _1, 111: B1, 112: T1, 113: y1, 114: S1 }, { 106: [1, 262] }, { 22: b1, 66: k1, 67: D1, 87: g1, 97: 263, 103: F1, 106: C1, 108: 244, 109: 245, 110: _1, 111: B1, 112: T1, 113: y1, 114: S1 }, { 22: b1, 66: k1, 67: D1, 87: g1, 97: 264, 103: F1, 106: C1, 108: 244, 109: 245, 110: _1, 111: B1, 112: T1, 113: y1, 114: S1 }, { 26: n1, 52: l, 66: h, 67: f, 92: r1, 98: 265, 106: A, 107: d, 110: i1, 112: p, 113: E, 116: 100, 118: 98, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(Y, [2, 103]), { 84: [1, 266] }, e(Y, [2, 107], { 22: [1, 267] }), e(Y, [2, 108]), e(Y, [2, 111]), e(Y, [2, 113], { 22: [1, 268] }), e(Y, [2, 114]), e(t1, [2, 58]), e(t1, [2, 59]), { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 58: [1, 269], 66: h, 67: f, 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(t1, [2, 66]), e(t1, [2, 61]), e(t1, [2, 62]), e(t1, [2, 63]), { 66: [1, 270] }, e(t1, [2, 65]), e(t1, [2, 67]), { 22: S, 24: m, 26: V, 38: x, 42: v, 52: l, 66: h, 67: f, 72: [1, 271], 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(t1, [2, 69]), e(t1, [2, 70]), e(t1, [2, 72]), e(t1, [2, 71]), e(t1, [2, 73]), e(z2, [2, 4]), e([22, 52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 81]), { 22: S, 24: m, 26: V, 38: x, 41: [1, 272], 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 18: 18, 19: 19, 20: u1, 21: H, 22: s1, 23: A1, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: Y1, 42: [1, 273], 43: 31, 44: Q1, 46: X1, 48: s2, 50: 35, 51: 45, 52: q, 54: 46, 66: c1, 67: m1, 87: o2, 88: l2, 89: h2, 90: f2, 91: A2, 92: V1, 96: x1, 106: v1, 107: R1, 110: L1, 112: I1, 113: N1, 117: 47, 119: d2, 120: p2, 121: E2, 122: b2, 123: O1, 124: P1, 125: w1, 126: U1, 127: M1, 128: G1 }, e(S2, [2, 56]), e(Y, [2, 116], { 107: z1 }), e(Q2, [2, 126], { 109: 275, 22: b1, 66: k1, 67: D1, 87: g1, 103: F1, 106: C1, 110: _1, 111: B1, 112: T1, 113: y1, 114: S1 }), e(o1, [2, 128]), e(o1, [2, 130]), e(o1, [2, 131]), e(o1, [2, 132]), e(o1, [2, 133]), e(o1, [2, 134]), e(o1, [2, 135]), e(o1, [2, 136]), e(o1, [2, 137]), e(o1, [2, 138]), e(o1, [2, 139]), e(o1, [2, 140]), e(Y, [2, 117], { 107: z1 }), e(Y, [2, 118], { 107: z1 }), { 22: [1, 276] }, e(Y, [2, 119], { 107: z1 }), { 22: [1, 277] }, e(H2, [2, 125]), e(Y, [2, 99], { 107: z1 }), e(Y, [2, 100], { 107: z1 }), e(Y, [2, 101], { 116: 100, 118: 179, 26: n1, 52: l, 66: h, 67: f, 92: r1, 106: A, 107: d, 110: i1, 112: p, 113: E, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }), e(Y, [2, 105]), { 102: [1, 278] }, { 102: [1, 279] }, { 58: [1, 280] }, { 68: [1, 281] }, { 72: [1, 282] }, { 9: 283, 20: d1, 21: p1, 23: E1 }, e(Q, [2, 42]), { 22: b1, 66: k1, 67: D1, 87: g1, 103: F1, 106: C1, 108: 284, 109: 245, 110: _1, 111: B1, 112: T1, 113: y1, 114: S1 }, e(o1, [2, 129]), { 26: n1, 52: l, 66: h, 67: f, 92: r1, 98: 285, 106: A, 107: d, 110: i1, 112: p, 113: E, 116: 100, 118: 98, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 26: n1, 52: l, 66: h, 67: f, 92: r1, 98: 286, 106: A, 107: d, 110: i1, 112: p, 113: E, 116: 100, 118: 98, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(Y, [2, 109]), e(Y, [2, 115]), e(t1, [2, 60]), { 22: S, 24: m, 26: V, 38: x, 39: 287, 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 140, 84: J, 85: $, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, e(t1, [2, 68]), e(V2, B, { 17: 288 }), e(Q2, [2, 127], { 109: 275, 22: b1, 66: k1, 67: D1, 87: g1, 103: F1, 106: C1, 110: _1, 111: B1, 112: T1, 113: y1, 114: S1 }), e(Y, [2, 122], { 116: 100, 118: 179, 22: [1, 289], 26: n1, 52: l, 66: h, 67: f, 92: r1, 106: A, 107: d, 110: i1, 112: p, 113: E, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }), e(Y, [2, 123], { 116: 100, 118: 179, 22: [1, 290], 26: n1, 52: l, 66: h, 67: f, 92: r1, 106: A, 107: d, 110: i1, 112: p, 113: E, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }), { 22: S, 24: m, 26: V, 38: x, 41: [1, 291], 42: v, 52: l, 66: h, 67: f, 73: R, 81: L, 83: 202, 86: 152, 87: I, 88: N, 89: O, 90: P, 91: w, 92: U, 93: M, 95: 143, 96: G, 106: A, 107: d, 110: K, 112: p, 113: E, 114: j, 115: W, 116: 149, 123: b, 124: k, 125: D, 126: g, 127: F, 128: C }, { 18: 18, 19: 19, 20: u1, 21: H, 22: s1, 23: A1, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: Y1, 42: [1, 292], 43: 31, 44: Q1, 46: X1, 48: s2, 50: 35, 51: 45, 52: q, 54: 46, 66: c1, 67: m1, 87: o2, 88: l2, 89: h2, 90: f2, 91: A2, 92: V1, 96: x1, 106: v1, 107: R1, 110: L1, 112: I1, 113: N1, 117: 47, 119: d2, 120: p2, 121: E2, 122: b2, 123: O1, 124: P1, 125: w1, 126: U1, 127: M1, 128: G1 }, { 22: b1, 66: k1, 67: D1, 87: g1, 97: 293, 103: F1, 106: C1, 108: 244, 109: 245, 110: _1, 111: B1, 112: T1, 113: y1, 114: S1 }, { 22: b1, 66: k1, 67: D1, 87: g1, 97: 294, 103: F1, 106: C1, 108: 244, 109: 245, 110: _1, 111: B1, 112: T1, 113: y1, 114: S1 }, e(t1, [2, 64]), e(Q, [2, 41]), e(Y, [2, 120], { 107: z1 }), e(Y, [2, 121], { 107: z1 })],
+ defaultActions: { 2: [2, 1], 9: [2, 5], 10: [2, 2], 132: [2, 7] },
+ parseError: function(a, o) {
+ if (o.recoverable)
+ this.trace(a);
+ else {
+ var T = new Error(a);
+ throw T.hash = o, T;
+ }
+ },
+ parse: function(a) {
+ var o = this, T = [0], r = [], X = [null], t = [], r2 = this.table, s = "", l1 = 0, X2 = 0, ve = 2, q2 = 1, Re = t.slice.call(arguments, 1), e1 = Object.create(this.lexer), q1 = { yy: {} };
+ for (var R2 in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, R2) && (q1.yy[R2] = this.yy[R2]);
+ e1.setInput(a, q1.yy), q1.yy.lexer = e1, q1.yy.parser = this, typeof e1.yylloc > "u" && (e1.yylloc = {});
+ var L2 = e1.yylloc;
+ t.push(L2);
+ var Le = e1.options && e1.options.ranges;
+ typeof q1.yy.parseError == "function" ? this.parseError = q1.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function Ie() {
+ var j1;
+ return j1 = r.pop() || e1.lex() || q2, typeof j1 != "number" && (j1 instanceof Array && (r = j1, j1 = r.pop()), j1 = o.symbols_[j1] || j1), j1;
+ }
+ for (var a1, Z1, h1, I2, e2 = {}, D2, K1, Z2, g2; ; ) {
+ if (Z1 = T[T.length - 1], this.defaultActions[Z1] ? h1 = this.defaultActions[Z1] : ((a1 === null || typeof a1 > "u") && (a1 = Ie()), h1 = r2[Z1] && r2[Z1][a1]), typeof h1 > "u" || !h1.length || !h1[0]) {
+ var N2 = "";
+ g2 = [];
+ for (D2 in r2[Z1])
+ this.terminals_[D2] && D2 > ve && g2.push("'" + this.terminals_[D2] + "'");
+ e1.showPosition ? N2 = "Parse error on line " + (l1 + 1) + `:
+` + e1.showPosition() + `
+Expecting ` + g2.join(", ") + ", got '" + (this.terminals_[a1] || a1) + "'" : N2 = "Parse error on line " + (l1 + 1) + ": Unexpected " + (a1 == q2 ? "end of input" : "'" + (this.terminals_[a1] || a1) + "'"), this.parseError(N2, {
+ text: e1.match,
+ token: this.terminals_[a1] || a1,
+ line: e1.yylineno,
+ loc: L2,
+ expected: g2
+ });
+ }
+ if (h1[0] instanceof Array && h1.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + Z1 + ", token: " + a1);
+ switch (h1[0]) {
+ case 1:
+ T.push(a1), X.push(e1.yytext), t.push(e1.yylloc), T.push(h1[1]), a1 = null, X2 = e1.yyleng, s = e1.yytext, l1 = e1.yylineno, L2 = e1.yylloc;
+ break;
+ case 2:
+ if (K1 = this.productions_[h1[1]][1], e2.$ = X[X.length - K1], e2._$ = {
+ first_line: t[t.length - (K1 || 1)].first_line,
+ last_line: t[t.length - 1].last_line,
+ first_column: t[t.length - (K1 || 1)].first_column,
+ last_column: t[t.length - 1].last_column
+ }, Le && (e2._$.range = [
+ t[t.length - (K1 || 1)].range[0],
+ t[t.length - 1].range[1]
+ ]), I2 = this.performAction.apply(e2, [
+ s,
+ X2,
+ l1,
+ q1.yy,
+ h1[1],
+ X,
+ t
+ ].concat(Re)), typeof I2 < "u")
+ return I2;
+ K1 && (T = T.slice(0, -1 * K1 * 2), X = X.slice(0, -1 * K1), t = t.slice(0, -1 * K1)), T.push(this.productions_[h1[1]][0]), X.push(e2.$), t.push(e2._$), Z2 = r2[T[T.length - 2]][T[T.length - 1]], T.push(Z2);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, xe = function() {
+ var H1 = {
+ EOF: 1,
+ parseError: function(o, T) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(o, T);
+ else
+ throw new Error(o);
+ },
+ // resets the lexer, sets new input
+ setInput: function(a, o) {
+ return this.yy = o || this.yy || {}, this._input = a, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var a = this._input[0];
+ this.yytext += a, this.yyleng++, this.offset++, this.match += a, this.matched += a;
+ var o = a.match(/(?:\r\n?|\n).*/g);
+ return o ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), a;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(a) {
+ var o = a.length, T = a.split(/(?:\r\n?|\n)/g);
+ this._input = a + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - o), this.offset -= o;
+ 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), T.length - 1 && (this.yylineno -= T.length - 1);
+ var X = 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: T ? (T.length === r.length ? this.yylloc.first_column : 0) + r[r.length - T.length].length - T[0].length : this.yylloc.first_column - o
+ }, this.options.ranges && (this.yylloc.range = [X[0], X[0] + this.yyleng - o]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(a) {
+ this.unput(this.match.slice(a));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var a = this.matched.substr(0, this.matched.length - this.match.length);
+ return (a.length > 20 ? "..." : "") + a.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var a = this.match;
+ return a.length < 20 && (a += this._input.substr(0, 20 - a.length)), (a.substr(0, 20) + (a.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var a = this.pastInput(), o = new Array(a.length + 1).join("-");
+ return a + this.upcomingInput() + `
+` + o + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(a, o) {
+ var T, r, X;
+ if (this.options.backtrack_lexer && (X = {
+ 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 && (X.yylloc.range = this.yylloc.range.slice(0))), r = a[0].match(/(?:\r\n?|\n).*/g), r && (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 + a[0].length
+ }, this.yytext += a[0], this.match += a[0], this.matches = a, 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(a[0].length), this.matched += a[0], T = this.performAction.call(this, this.yy, this, o, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), T)
+ return T;
+ if (this._backtrack) {
+ for (var t in X)
+ this[t] = X[t];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var a, o, T, r;
+ this._more || (this.yytext = "", this.match = "");
+ for (var X = this._currentRules(), t = 0; t < X.length; t++)
+ if (T = this._input.match(this.rules[X[t]]), T && (!o || T[0].length > o[0].length)) {
+ if (o = T, r = t, this.options.backtrack_lexer) {
+ if (a = this.test_match(T, X[t]), a !== !1)
+ return a;
+ if (this._backtrack) {
+ o = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return o ? (a = this.test_match(o, X[r]), a !== !1 ? a : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var o = this.next();
+ return o || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(o) {
+ this.conditionStack.push(o);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var o = this.conditionStack.length - 1;
+ return o > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(o) {
+ return o = this.conditionStack.length - 1 - Math.abs(o || 0), o >= 0 ? this.conditionStack[o] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(o) {
+ this.begin(o);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: {},
+ performAction: function(o, T, r, X) {
+ switch (r) {
+ case 0:
+ return this.begin("open_directive"), 12;
+ case 1:
+ return this.begin("type_directive"), 13;
+ case 2:
+ return this.popState(), this.begin("arg_directive"), 10;
+ case 3:
+ return this.popState(), this.popState(), 15;
+ case 4:
+ return 14;
+ case 5:
+ return this.begin("acc_title"), 44;
+ case 6:
+ return this.popState(), "acc_title_value";
+ case 7:
+ return this.begin("acc_descr"), 46;
+ case 8:
+ return this.popState(), "acc_descr_value";
+ case 9:
+ this.begin("acc_descr_multiline");
+ break;
+ case 10:
+ this.popState();
+ break;
+ case 11:
+ return "acc_descr_multiline_value";
+ case 12:
+ this.begin("md_string");
+ break;
+ case 13:
+ return "MD_STR";
+ case 14:
+ this.popState();
+ break;
+ case 15:
+ this.begin("string");
+ break;
+ case 16:
+ this.popState();
+ break;
+ case 17:
+ return "STR";
+ case 18:
+ return 87;
+ case 19:
+ return 96;
+ case 20:
+ return 88;
+ case 21:
+ return 105;
+ case 22:
+ return 89;
+ case 23:
+ return 90;
+ case 24:
+ this.begin("href");
+ break;
+ case 25:
+ this.popState();
+ break;
+ case 26:
+ return 101;
+ case 27:
+ this.begin("callbackname");
+ break;
+ case 28:
+ this.popState();
+ break;
+ case 29:
+ this.popState(), this.begin("callbackargs");
+ break;
+ case 30:
+ return 99;
+ case 31:
+ this.popState();
+ break;
+ case 32:
+ return 100;
+ case 33:
+ this.begin("click");
+ break;
+ case 34:
+ this.popState();
+ break;
+ case 35:
+ return 91;
+ case 36:
+ return o.lex.firstGraph() && this.begin("dir"), 24;
+ case 37:
+ return o.lex.firstGraph() && this.begin("dir"), 24;
+ case 38:
+ return o.lex.firstGraph() && this.begin("dir"), 24;
+ case 39:
+ return 38;
+ case 40:
+ return 42;
+ case 41:
+ return 102;
+ case 42:
+ return 102;
+ case 43:
+ return 102;
+ case 44:
+ return 102;
+ case 45:
+ return this.popState(), 25;
+ case 46:
+ return this.popState(), 26;
+ case 47:
+ return this.popState(), 26;
+ case 48:
+ return this.popState(), 26;
+ case 49:
+ return this.popState(), 26;
+ case 50:
+ return this.popState(), 26;
+ case 51:
+ return this.popState(), 26;
+ case 52:
+ return this.popState(), 26;
+ case 53:
+ return this.popState(), 26;
+ case 54:
+ return this.popState(), 26;
+ case 55:
+ return this.popState(), 26;
+ case 56:
+ return 119;
+ case 57:
+ return 120;
+ case 58:
+ return 121;
+ case 59:
+ return 122;
+ case 60:
+ return 106;
+ case 61:
+ return 112;
+ case 62:
+ return 53;
+ case 63:
+ return 67;
+ case 64:
+ return 52;
+ case 65:
+ return 20;
+ case 66:
+ return 107;
+ case 67:
+ return 127;
+ case 68:
+ return 82;
+ case 69:
+ return 82;
+ case 70:
+ return 82;
+ case 71:
+ return 82;
+ case 72:
+ return 81;
+ case 73:
+ return 81;
+ case 74:
+ return 81;
+ case 75:
+ return 59;
+ case 76:
+ return 60;
+ case 77:
+ return 61;
+ case 78:
+ return 62;
+ case 79:
+ return 63;
+ case 80:
+ return 64;
+ case 81:
+ return 65;
+ case 82:
+ return 69;
+ case 83:
+ return 70;
+ case 84:
+ return 55;
+ case 85:
+ return 56;
+ case 86:
+ return 110;
+ case 87:
+ return 113;
+ case 88:
+ return 128;
+ case 89:
+ return 125;
+ case 90:
+ return 114;
+ case 91:
+ return 126;
+ case 92:
+ return 126;
+ case 93:
+ return 115;
+ case 94:
+ return 73;
+ case 95:
+ return 93;
+ case 96:
+ return "SEP";
+ case 97:
+ return 92;
+ case 98:
+ return 66;
+ case 99:
+ return 75;
+ case 100:
+ return 74;
+ case 101:
+ return 77;
+ case 102:
+ return 76;
+ case 103:
+ return 123;
+ case 104:
+ return 124;
+ case 105:
+ return 68;
+ case 106:
+ return 57;
+ case 107:
+ return 58;
+ case 108:
+ return 40;
+ case 109:
+ return 41;
+ case 110:
+ return 71;
+ case 111:
+ return 72;
+ case 112:
+ return 134;
+ case 113:
+ return 21;
+ case 114:
+ return 22;
+ case 115:
+ return 23;
+ }
+ },
+ rules: [/^(?:%%\{)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:href[\s]+["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:click[\s]+)/, /^(?:[\s\n])/, /^(?:[^\s\n]*)/, /^(?:flowchart-elk\b)/, /^(?:graph\b)/, /^(?:flowchart\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:(\r?\n)*\s*\n)/, /^(?:\s*LR\b)/, /^(?:\s*RL\b)/, /^(?:\s*TB\b)/, /^(?:\s*BT\b)/, /^(?:\s*TD\b)/, /^(?:\s*BR\b)/, /^(?:\s*<)/, /^(?:\s*>)/, /^(?:\s*\^)/, /^(?:\s*v\b)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*~~[\~]+\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:\s*[xo<]?-\.\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)+)/, /^(?:\s)/, /^(?:$)/],
+ conditions: { close_directive: { rules: [], inclusive: !1 }, arg_directive: { rules: [3, 4], inclusive: !1 }, type_directive: { rules: [2, 3], inclusive: !1 }, open_directive: { rules: [1], inclusive: !1 }, callbackargs: { rules: [31, 32], inclusive: !1 }, callbackname: { rules: [28, 29, 30], inclusive: !1 }, href: { rules: [25, 26], inclusive: !1 }, click: { rules: [34, 35], inclusive: !1 }, vertex: { rules: [], inclusive: !1 }, dir: { rules: [45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], inclusive: !1 }, acc_descr_multiline: { rules: [10, 11], inclusive: !1 }, acc_descr: { rules: [8], inclusive: !1 }, acc_title: { rules: [6], inclusive: !1 }, md_string: { rules: [13, 14], inclusive: !1 }, string: { rules: [16, 17], inclusive: !1 }, INITIAL: { rules: [0, 5, 7, 9, 12, 15, 18, 19, 20, 21, 22, 23, 24, 27, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 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, 108, 109, 110, 111, 112, 113, 114, 115], inclusive: !0 } }
+ };
+ return H1;
+ }();
+ x2.lexer = xe;
+ function v2() {
+ this.yy = {};
+ }
+ return v2.prototype = x2, x2.Parser = v2, new v2();
+}();
+O2.parser = O2;
+const st = O2, Ye = "flowchart-";
+let J2 = 0, G2 = w2(), z = {}, J1 = [], t2 = {}, W1 = [], C2 = {}, K2 = {}, F2 = 0, P2 = !0, f1, _2, B2 = [];
+const T2 = (e) => je.sanitizeText(e, G2), $2 = function(e, u, n) {
+ We.parseDirective(this, e, u, n);
+}, c2 = function(e) {
+ const u = Object.keys(z);
+ for (const n of u)
+ if (z[n].id === e)
+ return z[n].domId;
+ return e;
+}, ee = function(e, u, n, i, c, _, B = {}) {
+ let u1, H = e;
+ H !== void 0 && H.trim().length !== 0 && (z[H] === void 0 && (z[H] = {
+ id: H,
+ labelType: "text",
+ domId: Ye + H + "-" + J2,
+ styles: [],
+ classes: []
+ }), J2++, u !== void 0 ? (G2 = w2(), u1 = T2(u.text.trim()), z[H].labelType = u.type, u1[0] === '"' && u1[u1.length - 1] === '"' && (u1 = u1.substring(1, u1.length - 1)), z[H].text = u1) : z[H].text === void 0 && (z[H].text = e), n !== void 0 && (z[H].type = n), i != null && i.forEach(function(s1) {
+ z[H].styles.push(s1);
+ }), c != null && c.forEach(function(s1) {
+ z[H].classes.push(s1);
+ }), _ !== void 0 && (z[H].dir = _), z[H].props === void 0 ? z[H].props = B : B !== void 0 && Object.assign(z[H].props, B));
+}, te = function(e, u, n) {
+ const _ = { start: e, end: u, type: void 0, text: "", labelType: "text" };
+ U2.info("abc78 Got edge...", _);
+ const B = n.text;
+ B !== void 0 && (_.text = T2(B.text.trim()), _.text[0] === '"' && _.text[_.text.length - 1] === '"' && (_.text = _.text.substring(1, _.text.length - 1)), _.labelType = B.type), n !== void 0 && (_.type = n.type, _.stroke = n.stroke, _.length = n.length), J1.push(_);
+}, se = function(e, u, n) {
+ U2.info("addLink (abc78)", e, u, n);
+ let i, c;
+ for (i = 0; i < e.length; i++)
+ for (c = 0; c < u.length; c++)
+ te(e[i], u[c], n);
+}, ue = function(e, u) {
+ e.forEach(function(n) {
+ n === "default" ? J1.defaultInterpolate = u : J1[n].interpolate = u;
+ });
+}, ne = function(e, u) {
+ e.forEach(function(n) {
+ n === "default" ? J1.defaultStyle = u : (M2.isSubstringInArray("fill", u) === -1 && u.push("fill:none"), J1[n].style = u);
+ });
+}, re = function(e, u) {
+ t2[e] === void 0 && (t2[e] = { id: e, styles: [], textStyles: [] }), u != null && u.forEach(function(n) {
+ if (n.match("color")) {
+ const c = n.replace("fill", "bgFill").replace("color", "fill");
+ t2[e].textStyles.push(c);
+ }
+ t2[e].styles.push(n);
+ });
+}, ie = function(e) {
+ f1 = e, f1.match(/.*) && (f1 = "RL"), f1.match(/.*\^/) && (f1 = "BT"), f1.match(/.*>/) && (f1 = "LR"), f1.match(/.*v/) && (f1 = "TB"), f1 === "TD" && (f1 = "TB");
+}, y2 = function(e, u) {
+ e.split(",").forEach(function(n) {
+ let i = n;
+ z[i] !== void 0 && z[i].classes.push(u), C2[i] !== void 0 && C2[i].classes.push(u);
+ });
+}, ze = function(e, u) {
+ e.split(",").forEach(function(n) {
+ u !== void 0 && (K2[_2 === "gen-1" ? c2(n) : n] = T2(u));
+ });
+}, He = function(e, u, n) {
+ let i = c2(e);
+ if (w2().securityLevel !== "loose" || u === void 0)
+ return;
+ let c = [];
+ if (typeof n == "string") {
+ c = n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let _ = 0; _ < c.length; _++) {
+ let B = c[_].trim();
+ B.charAt(0) === '"' && B.charAt(B.length - 1) === '"' && (B = B.substr(1, B.length - 2)), c[_] = B;
+ }
+ }
+ c.length === 0 && c.push(e), z[e] !== void 0 && (z[e].haveCallback = !0, B2.push(function() {
+ const _ = document.querySelector(`[id="${i}"]`);
+ _ !== null && _.addEventListener(
+ "click",
+ function() {
+ M2.runFunc(u, ...c);
+ },
+ !1
+ );
+ }));
+}, ae = function(e, u, n) {
+ e.split(",").forEach(function(i) {
+ z[i] !== void 0 && (z[i].link = M2.formatUrl(u, G2), z[i].linkTarget = n);
+ }), y2(e, "clickable");
+}, ce = function(e) {
+ return K2[e];
+}, oe = function(e, u, n) {
+ e.split(",").forEach(function(i) {
+ He(i, u, n);
+ }), y2(e, "clickable");
+}, le = function(e) {
+ B2.forEach(function(u) {
+ u(e);
+ });
+}, he = function() {
+ return f1.trim();
+}, fe = function() {
+ return z;
+}, Ae = function() {
+ return J1;
+}, de = function() {
+ return t2;
+}, pe = function(e) {
+ let u = i2(".mermaidTooltip");
+ (u._groups || u)[0][0] === null && (u = i2("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0)), i2(e).select("svg").selectAll("g.node").on("mouseover", function() {
+ const c = i2(this);
+ if (c.attr("title") === null)
+ return;
+ const B = this.getBoundingClientRect();
+ u.transition().duration(200).style("opacity", ".9"), u.text(c.attr("title")).style("left", window.scrollX + B.left + (B.right - B.left) / 2 + "px").style("top", window.scrollY + B.top - 14 + document.body.scrollTop + "px"), u.html(u.html().replace(/<br\/>/g, "
")), c.classed("hover", !0);
+ }).on("mouseout", function() {
+ u.transition().duration(500).style("opacity", 0), i2(this).classed("hover", !1);
+ });
+};
+B2.push(pe);
+const Ee = function(e = "gen-1") {
+ z = {}, t2 = {}, J1 = [], B2 = [pe], W1 = [], C2 = {}, F2 = 0, K2 = [], P2 = !0, _2 = e, Ke();
+}, be = (e) => {
+ _2 = e || "gen-2";
+}, ke = function() {
+ return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;";
+}, De = function(e, u, n) {
+ let i = e.text.trim(), c = n.text;
+ e === n && n.text.match(/\s/) && (i = void 0);
+ function _(A1) {
+ const Y1 = { boolean: {}, number: {}, string: {} }, Q1 = [];
+ let X1;
+ return { nodeList: A1.filter(function(q) {
+ const c1 = typeof q;
+ return q.stmt && q.stmt === "dir" ? (X1 = q.value, !1) : q.trim() === "" ? !1 : c1 in Y1 ? Y1[c1].hasOwnProperty(q) ? !1 : Y1[c1][q] = !0 : Q1.includes(q) ? !1 : Q1.push(q);
+ }), dir: X1 };
+ }
+ let B = [];
+ const { nodeList: u1, dir: H } = _(B.concat.apply(B, u));
+ if (B = u1, _2 === "gen-1")
+ for (let A1 = 0; A1 < B.length; A1++)
+ B[A1] = c2(B[A1]);
+ i = i || "subGraph" + F2, c = c || "", c = T2(c), F2 = F2 + 1;
+ const s1 = {
+ id: i,
+ nodes: B,
+ title: c.trim(),
+ classes: [],
+ dir: H,
+ labelType: n.type
+ };
+ return U2.info("Adding", s1.id, s1.nodes, s1.dir), s1.nodes = me(s1, W1).nodes, W1.push(s1), C2[i] = s1, i;
+}, Qe = function(e) {
+ for (const [u, n] of W1.entries())
+ if (n.id === e)
+ return u;
+ return -1;
+};
+let a2 = -1;
+const ge = [], Fe = function(e, u) {
+ const n = W1[u].nodes;
+ if (a2 = a2 + 1, a2 > 2e3)
+ return;
+ if (ge[a2] = u, W1[u].id === e)
+ return {
+ result: !0,
+ count: 0
+ };
+ let i = 0, c = 1;
+ for (; i < n.length; ) {
+ const _ = Qe(n[i]);
+ if (_ >= 0) {
+ const B = Fe(e, _);
+ if (B.result)
+ return {
+ result: !0,
+ count: c + B.count
+ };
+ c = c + B.count;
+ }
+ i = i + 1;
+ }
+ return {
+ result: !1,
+ count: c
+ };
+}, Ce = function(e) {
+ return ge[e];
+}, _e = function() {
+ a2 = -1, W1.length > 0 && Fe("none", W1.length - 1);
+}, Be = function() {
+ return W1;
+}, Te = () => P2 ? (P2 = !1, !0) : !1, Xe = (e) => {
+ let u = e.trim(), n = "arrow_open";
+ switch (u[0]) {
+ case "<":
+ n = "arrow_point", u = u.slice(1);
+ break;
+ case "x":
+ n = "arrow_cross", u = u.slice(1);
+ break;
+ case "o":
+ n = "arrow_circle", u = u.slice(1);
+ break;
+ }
+ let i = "normal";
+ return u.includes("=") && (i = "thick"), u.includes(".") && (i = "dotted"), { type: n, stroke: i };
+}, qe = (e, u) => {
+ const n = u.length;
+ let i = 0;
+ for (let c = 0; c < n; ++c)
+ u[c] === e && ++i;
+ return i;
+}, Ze = (e) => {
+ const u = e.trim();
+ let n = u.slice(0, -1), i = "arrow_open";
+ switch (u.slice(-1)) {
+ case "x":
+ i = "arrow_cross", u[0] === "x" && (i = "double_" + i, n = n.slice(1));
+ break;
+ case ">":
+ i = "arrow_point", u[0] === "<" && (i = "double_" + i, n = n.slice(1));
+ break;
+ case "o":
+ i = "arrow_circle", u[0] === "o" && (i = "double_" + i, n = n.slice(1));
+ break;
+ }
+ let c = "normal", _ = n.length - 1;
+ n[0] === "=" && (c = "thick"), n[0] === "~" && (c = "invisible");
+ let B = qe(".", n);
+ return B && (c = "dotted", _ = B), { type: i, stroke: c, length: _ };
+}, ye = (e, u) => {
+ const n = Ze(e);
+ let i;
+ if (u) {
+ if (i = Xe(u), i.stroke !== n.stroke)
+ return { type: "INVALID", stroke: "INVALID" };
+ if (i.type === "arrow_open")
+ i.type = n.type;
+ else {
+ if (i.type !== n.type)
+ return { type: "INVALID", stroke: "INVALID" };
+ i.type = "double_" + i.type;
+ }
+ return i.type === "double_arrow" && (i.type = "double_arrow_point"), i.length = n.length, i;
+ }
+ return n;
+}, Se = (e, u) => {
+ let n = !1;
+ return e.forEach((i) => {
+ i.nodes.indexOf(u) >= 0 && (n = !0);
+ }), n;
+}, me = (e, u) => {
+ const n = [];
+ return e.nodes.forEach((i, c) => {
+ Se(u, i) || n.push(e.nodes[c]);
+ }), { nodes: n };
+}, Ve = {
+ firstGraph: Te
+}, Je = {
+ parseDirective: $2,
+ defaultConfig: () => Ne.flowchart,
+ setAccTitle: Oe,
+ getAccTitle: Pe,
+ getAccDescription: we,
+ setAccDescription: Ue,
+ addVertex: ee,
+ lookUpDomId: c2,
+ addLink: se,
+ updateLinkInterpolate: ue,
+ updateLink: ne,
+ addClass: re,
+ setDirection: ie,
+ setClass: y2,
+ setTooltip: ze,
+ getTooltip: ce,
+ setClickEvent: oe,
+ setLink: ae,
+ bindFunctions: le,
+ getDirection: he,
+ getVertices: fe,
+ getEdges: Ae,
+ getClasses: de,
+ clear: Ee,
+ setGen: be,
+ defaultStyle: ke,
+ addSubGraph: De,
+ getDepthFirstPos: Ce,
+ indexNodes: _e,
+ getSubGraphs: Be,
+ destructLink: ye,
+ lex: Ve,
+ exists: Se,
+ makeUniq: me,
+ setDiagramTitle: Me,
+ getDiagramTitle: Ge
+}, ut = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ addClass: re,
+ addLink: se,
+ addSingleLink: te,
+ addSubGraph: De,
+ addVertex: ee,
+ bindFunctions: le,
+ clear: Ee,
+ default: Je,
+ defaultStyle: ke,
+ destructLink: ye,
+ firstGraph: Te,
+ getClasses: de,
+ getDepthFirstPos: Ce,
+ getDirection: he,
+ getEdges: Ae,
+ getSubGraphs: Be,
+ getTooltip: ce,
+ getVertices: fe,
+ indexNodes: _e,
+ lex: Ve,
+ lookUpDomId: c2,
+ parseDirective: $2,
+ setClass: y2,
+ setClickEvent: oe,
+ setDirection: ie,
+ setGen: be,
+ setLink: ae,
+ updateLink: ne,
+ updateLinkInterpolate: ue
+}, Symbol.toStringTag, { value: "Module" }));
+export {
+ ut as d,
+ Je as f,
+ st as p
+};
+//# sourceMappingURL=flowDb-39497bf7.js.map
diff --git a/scopegraphs-render-docs/doc/js/flowDb-52e24d17.js b/scopegraphs-render-docs/doc/js/flowDb-52e24d17.js
new file mode 100644
index 0000000..67ab7e4
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowDb-52e24d17.js
@@ -0,0 +1,1669 @@
+import { select } from "d3";
+import { u as utils } from "./utils-d622194a.js";
+import { j as defaultConfig, o as setAccTitle, p as getAccTitle, q as getAccDescription, v as setAccDescription, w as setDiagramTitle, x as getDiagramTitle, g as getConfig, l as log, y as clear$1, e as common } from "./commonDb-573409be.js";
+import { m as mermaidAPI } from "./mermaidAPI-3ae0f2f0.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 9], $V1 = [1, 7], $V2 = [1, 6], $V3 = [1, 8], $V4 = [1, 20, 21, 22, 23, 38, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $V5 = [2, 10], $V6 = [1, 20], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 30], $Vb = [1, 32], $Vc = [1, 33], $Vd = [1, 34], $Ve = [1, 62], $Vf = [1, 48], $Vg = [1, 52], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 38], $Vk = [1, 39], $Vl = [1, 40], $Vm = [1, 56], $Vn = [1, 63], $Vo = [1, 51], $Vp = [1, 53], $Vq = [1, 55], $Vr = [1, 59], $Vs = [1, 60], $Vt = [1, 41], $Vu = [1, 42], $Vv = [1, 43], $Vw = [1, 44], $Vx = [1, 61], $Vy = [1, 50], $Vz = [1, 54], $VA = [1, 57], $VB = [1, 58], $VC = [1, 49], $VD = [1, 66], $VE = [1, 71], $VF = [1, 20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $VG = [1, 75], $VH = [1, 74], $VI = [1, 76], $VJ = [20, 21, 23, 81, 82], $VK = [1, 99], $VL = [1, 104], $VM = [1, 107], $VN = [1, 108], $VO = [1, 101], $VP = [1, 106], $VQ = [1, 109], $VR = [1, 102], $VS = [1, 114], $VT = [1, 113], $VU = [1, 103], $VV = [1, 105], $VW = [1, 110], $VX = [1, 111], $VY = [1, 112], $VZ = [1, 115], $V_ = [20, 21, 22, 23, 81, 82], $V$ = [20, 21, 22, 23, 53, 81, 82], $V01 = [20, 21, 22, 23, 40, 52, 53, 55, 57, 59, 61, 63, 65, 66, 67, 69, 71, 73, 74, 76, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V11 = [20, 21, 23], $V21 = [20, 21, 23, 52, 66, 67, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V31 = [1, 12, 20, 21, 22, 23, 24, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $V41 = [52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V51 = [1, 150], $V61 = [1, 158], $V71 = [1, 159], $V81 = [1, 160], $V91 = [1, 161], $Va1 = [1, 145], $Vb1 = [1, 146], $Vc1 = [1, 141], $Vd1 = [1, 142], $Ve1 = [1, 153], $Vf1 = [1, 154], $Vg1 = [1, 155], $Vh1 = [1, 156], $Vi1 = [1, 157], $Vj1 = [1, 162], $Vk1 = [1, 163], $Vl1 = [1, 148], $Vm1 = [1, 151], $Vn1 = [1, 147], $Vo1 = [1, 144], $Vp1 = [20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $Vq1 = [1, 166], $Vr1 = [20, 21, 22, 23, 26, 52, 66, 67, 92, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $Vs1 = [20, 21, 22, 23, 24, 26, 38, 40, 41, 42, 52, 56, 58, 60, 62, 64, 66, 67, 68, 70, 72, 73, 75, 77, 81, 82, 87, 88, 89, 90, 91, 92, 93, 96, 106, 107, 110, 112, 113, 114, 115, 123, 124, 125, 126, 127, 128], $Vt1 = [12, 21, 22, 24], $Vu1 = [22, 107], $Vv1 = [1, 251], $Vw1 = [1, 246], $Vx1 = [1, 247], $Vy1 = [1, 255], $Vz1 = [1, 252], $VA1 = [1, 249], $VB1 = [1, 248], $VC1 = [1, 250], $VD1 = [1, 253], $VE1 = [1, 254], $VF1 = [1, 256], $VG1 = [1, 274], $VH1 = [20, 21, 23, 107], $VI1 = [20, 21, 22, 23, 66, 67, 87, 103, 106, 107, 110, 111, 112, 113, 114];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "directive": 5, "openDirective": 6, "typeDirective": 7, "closeDirective": 8, "separator": 9, ":": 10, "argDirective": 11, "open_directive": 12, "type_directive": 13, "arg_directive": 14, "close_directive": 15, "graphConfig": 16, "document": 17, "line": 18, "statement": 19, "SEMI": 20, "NEWLINE": 21, "SPACE": 22, "EOF": 23, "GRAPH": 24, "NODIR": 25, "DIR": 26, "FirstStmtSeperator": 27, "ending": 28, "endToken": 29, "spaceList": 30, "spaceListNewline": 31, "verticeStatement": 32, "styleStatement": 33, "linkStyleStatement": 34, "classDefStatement": 35, "classStatement": 36, "clickStatement": 37, "subgraph": 38, "text": 39, "SQS": 40, "SQE": 41, "end": 42, "direction": 43, "acc_title": 44, "acc_title_value": 45, "acc_descr": 46, "acc_descr_value": 47, "acc_descr_multiline_value": 48, "link": 49, "node": 50, "vertex": 51, "AMP": 52, "STYLE_SEPARATOR": 53, "idString": 54, "DOUBLECIRCLESTART": 55, "DOUBLECIRCLEEND": 56, "PS": 57, "PE": 58, "(-": 59, "-)": 60, "STADIUMSTART": 61, "STADIUMEND": 62, "SUBROUTINESTART": 63, "SUBROUTINEEND": 64, "VERTEX_WITH_PROPS_START": 65, "ALPHA": 66, "COLON": 67, "PIPE": 68, "CYLINDERSTART": 69, "CYLINDEREND": 70, "DIAMOND_START": 71, "DIAMOND_STOP": 72, "TAGEND": 73, "TRAPSTART": 74, "TRAPEND": 75, "INVTRAPSTART": 76, "INVTRAPEND": 77, "linkStatement": 78, "arrowText": 79, "TESTSTR": 80, "START_LINK": 81, "LINK": 82, "textToken": 83, "STR": 84, "MD_STR": 85, "keywords": 86, "STYLE": 87, "LINKSTYLE": 88, "CLASSDEF": 89, "CLASS": 90, "CLICK": 91, "DOWN": 92, "UP": 93, "textNoTags": 94, "textNoTagsToken": 95, "DEFAULT": 96, "stylesOpt": 97, "alphaNum": 98, "CALLBACKNAME": 99, "CALLBACKARGS": 100, "HREF": 101, "LINK_TARGET": 102, "HEX": 103, "numList": 104, "INTERPOLATE": 105, "NUM": 106, "COMMA": 107, "style": 108, "styleComponent": 109, "MINUS": 110, "UNIT": 111, "BRKT": 112, "DOT": 113, "PCT": 114, "TAGSTART": 115, "alphaNumToken": 116, "idStringToken": 117, "alphaNumStatement": 118, "direction_tb": 119, "direction_bt": 120, "direction_rl": 121, "direction_lr": 122, "PUNCTUATION": 123, "UNICODE_TEXT": 124, "PLUS": 125, "EQUALS": 126, "MULT": 127, "UNDERSCORE": 128, "graphCodeTokens": 129, "ARROW_CROSS": 130, "ARROW_POINT": 131, "ARROW_CIRCLE": 132, "ARROW_OPEN": 133, "QUOTE": 134, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 10: ":", 12: "open_directive", 13: "type_directive", 14: "arg_directive", 15: "close_directive", 20: "SEMI", 21: "NEWLINE", 22: "SPACE", 23: "EOF", 24: "GRAPH", 25: "NODIR", 26: "DIR", 38: "subgraph", 40: "SQS", 41: "SQE", 42: "end", 44: "acc_title", 45: "acc_title_value", 46: "acc_descr", 47: "acc_descr_value", 48: "acc_descr_multiline_value", 52: "AMP", 53: "STYLE_SEPARATOR", 55: "DOUBLECIRCLESTART", 56: "DOUBLECIRCLEEND", 57: "PS", 58: "PE", 59: "(-", 60: "-)", 61: "STADIUMSTART", 62: "STADIUMEND", 63: "SUBROUTINESTART", 64: "SUBROUTINEEND", 65: "VERTEX_WITH_PROPS_START", 66: "ALPHA", 67: "COLON", 68: "PIPE", 69: "CYLINDERSTART", 70: "CYLINDEREND", 71: "DIAMOND_START", 72: "DIAMOND_STOP", 73: "TAGEND", 74: "TRAPSTART", 75: "TRAPEND", 76: "INVTRAPSTART", 77: "INVTRAPEND", 80: "TESTSTR", 81: "START_LINK", 82: "LINK", 84: "STR", 85: "MD_STR", 87: "STYLE", 88: "LINKSTYLE", 89: "CLASSDEF", 90: "CLASS", 91: "CLICK", 92: "DOWN", 93: "UP", 96: "DEFAULT", 99: "CALLBACKNAME", 100: "CALLBACKARGS", 101: "HREF", 102: "LINK_TARGET", 103: "HEX", 105: "INTERPOLATE", 106: "NUM", 107: "COMMA", 110: "MINUS", 111: "UNIT", 112: "BRKT", 113: "DOT", 114: "PCT", 115: "TAGSTART", 119: "direction_tb", 120: "direction_bt", 121: "direction_rl", 122: "direction_lr", 123: "PUNCTUATION", 124: "UNICODE_TEXT", 125: "PLUS", 126: "EQUALS", 127: "MULT", 128: "UNDERSCORE", 130: "ARROW_CROSS", 131: "ARROW_POINT", 132: "ARROW_CIRCLE", 133: "ARROW_OPEN", 134: "QUOTE" },
+ productions_: [0, [3, 1], [3, 2], [5, 4], [5, 6], [6, 1], [7, 1], [11, 1], [8, 1], [4, 2], [17, 0], [17, 2], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [16, 2], [16, 2], [16, 2], [16, 3], [28, 2], [28, 1], [29, 1], [29, 1], [29, 1], [27, 1], [27, 1], [27, 2], [31, 2], [31, 2], [31, 1], [31, 1], [30, 2], [30, 1], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 9], [19, 6], [19, 4], [19, 1], [19, 2], [19, 2], [19, 1], [9, 1], [9, 1], [9, 1], [32, 3], [32, 4], [32, 2], [32, 1], [50, 1], [50, 5], [50, 3], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 8], [51, 4], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 4], [51, 4], [51, 1], [49, 2], [49, 3], [49, 3], [49, 1], [49, 3], [78, 1], [79, 3], [39, 1], [39, 2], [39, 1], [39, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [94, 1], [94, 2], [35, 5], [35, 5], [36, 5], [37, 2], [37, 4], [37, 3], [37, 5], [37, 2], [37, 4], [37, 4], [37, 6], [37, 2], [37, 4], [37, 2], [37, 4], [37, 4], [37, 6], [33, 5], [33, 5], [34, 5], [34, 5], [34, 9], [34, 9], [34, 7], [34, 7], [104, 1], [104, 3], [97, 1], [97, 3], [108, 1], [108, 2], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [95, 1], [95, 1], [95, 1], [95, 1], [54, 1], [54, 2], [98, 1], [98, 2], [118, 1], [118, 1], [118, 1], [118, 1], [43, 1], [43, 1], [43, 1], [43, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 5:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 6:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 7:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 8:
+ yy.parseDirective("}%%", "close_directive", "flowchart");
+ break;
+ case 10:
+ this.$ = [];
+ break;
+ case 11:
+ if (!Array.isArray($$[$0]) || $$[$0].length > 0) {
+ $$[$0 - 1].push($$[$0]);
+ }
+ this.$ = $$[$0 - 1];
+ break;
+ case 12:
+ case 97:
+ case 153:
+ case 155:
+ case 156:
+ this.$ = $$[$0];
+ break;
+ case 19:
+ yy.setDirection("TB");
+ this.$ = "TB";
+ break;
+ case 20:
+ yy.setDirection($$[$0 - 1]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 35:
+ this.$ = $$[$0 - 1].nodes;
+ break;
+ case 36:
+ case 37:
+ case 38:
+ case 39:
+ case 40:
+ this.$ = [];
+ break;
+ case 41:
+ this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]);
+ break;
+ case 42:
+ this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]);
+ break;
+ case 43:
+ this.$ = yy.addSubGraph(void 0, $$[$0 - 1], void 0);
+ break;
+ case 45:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 46:
+ case 47:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 51:
+ yy.addLink($$[$0 - 2].stmt, $$[$0], $$[$0 - 1]);
+ this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0 - 2].nodes) };
+ break;
+ case 52:
+ yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]);
+ this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) };
+ break;
+ case 53:
+ this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1] };
+ break;
+ case 54:
+ this.$ = { stmt: $$[$0], nodes: $$[$0] };
+ break;
+ case 55:
+ this.$ = [$$[$0]];
+ break;
+ case 56:
+ this.$ = $$[$0 - 4].concat($$[$0]);
+ break;
+ case 57:
+ this.$ = [$$[$0 - 2]];
+ yy.setClass($$[$0 - 2], $$[$0]);
+ break;
+ case 58:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "square");
+ break;
+ case 59:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "doublecircle");
+ break;
+ case 60:
+ this.$ = $$[$0 - 5];
+ yy.addVertex($$[$0 - 5], $$[$0 - 2], "circle");
+ break;
+ case 61:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "ellipse");
+ break;
+ case 62:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "stadium");
+ break;
+ case 63:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "subroutine");
+ break;
+ case 64:
+ this.$ = $$[$0 - 7];
+ yy.addVertex($$[$0 - 7], $$[$0 - 1], "rect", void 0, void 0, void 0, Object.fromEntries([[$$[$0 - 5], $$[$0 - 3]]]));
+ break;
+ case 65:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "cylinder");
+ break;
+ case 66:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "round");
+ break;
+ case 67:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "diamond");
+ break;
+ case 68:
+ this.$ = $$[$0 - 5];
+ yy.addVertex($$[$0 - 5], $$[$0 - 2], "hexagon");
+ break;
+ case 69:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "odd");
+ break;
+ case 70:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "trapezoid");
+ break;
+ case 71:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "inv_trapezoid");
+ break;
+ case 72:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_right");
+ break;
+ case 73:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_left");
+ break;
+ case 74:
+ this.$ = $$[$0];
+ yy.addVertex($$[$0]);
+ break;
+ case 75:
+ $$[$0 - 1].text = $$[$0];
+ this.$ = $$[$0 - 1];
+ break;
+ case 76:
+ case 77:
+ $$[$0 - 2].text = $$[$0 - 1];
+ this.$ = $$[$0 - 2];
+ break;
+ case 78:
+ this.$ = $$[$0];
+ break;
+ case 79:
+ var inf = yy.destructLink($$[$0], $$[$0 - 2]);
+ this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length, "text": $$[$0 - 1] };
+ break;
+ case 80:
+ var inf = yy.destructLink($$[$0]);
+ this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length };
+ break;
+ case 81:
+ this.$ = $$[$0 - 1];
+ break;
+ case 82:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 83:
+ this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
+ break;
+ case 84:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 85:
+ this.$ = { text: $$[$0], type: "markdown" };
+ break;
+ case 98:
+ case 154:
+ this.$ = $$[$0 - 1] + "" + $$[$0];
+ break;
+ case 99:
+ case 100:
+ this.$ = $$[$0 - 4];
+ yy.addClass($$[$0 - 2], $$[$0]);
+ break;
+ case 101:
+ this.$ = $$[$0 - 4];
+ yy.setClass($$[$0 - 2], $$[$0]);
+ break;
+ case 102:
+ case 110:
+ this.$ = $$[$0 - 1];
+ yy.setClickEvent($$[$0 - 1], $$[$0]);
+ break;
+ case 103:
+ case 111:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 2]);
+ yy.setTooltip($$[$0 - 3], $$[$0]);
+ break;
+ case 104:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 105:
+ this.$ = $$[$0 - 4];
+ yy.setClickEvent($$[$0 - 4], $$[$0 - 3], $$[$0 - 2]);
+ yy.setTooltip($$[$0 - 4], $$[$0]);
+ break;
+ case 106:
+ case 112:
+ this.$ = $$[$0 - 1];
+ yy.setLink($$[$0 - 1], $$[$0]);
+ break;
+ case 107:
+ case 113:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 3], $$[$0 - 2]);
+ yy.setTooltip($$[$0 - 3], $$[$0]);
+ break;
+ case 108:
+ case 114:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);
+ break;
+ case 109:
+ case 115:
+ this.$ = $$[$0 - 5];
+ yy.setLink($$[$0 - 5], $$[$0 - 4], $$[$0]);
+ yy.setTooltip($$[$0 - 5], $$[$0 - 2]);
+ break;
+ case 116:
+ this.$ = $$[$0 - 4];
+ yy.addVertex($$[$0 - 2], void 0, void 0, $$[$0]);
+ break;
+ case 117:
+ case 119:
+ this.$ = $$[$0 - 4];
+ yy.updateLink($$[$0 - 2], $$[$0]);
+ break;
+ case 118:
+ this.$ = $$[$0 - 4];
+ yy.updateLink([$$[$0 - 2]], $$[$0]);
+ break;
+ case 120:
+ this.$ = $$[$0 - 8];
+ yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]);
+ yy.updateLink([$$[$0 - 6]], $$[$0]);
+ break;
+ case 121:
+ this.$ = $$[$0 - 8];
+ yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);
+ yy.updateLink($$[$0 - 6], $$[$0]);
+ break;
+ case 122:
+ this.$ = $$[$0 - 6];
+ yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]);
+ break;
+ case 123:
+ this.$ = $$[$0 - 6];
+ yy.updateLinkInterpolate($$[$0 - 4], $$[$0]);
+ break;
+ case 124:
+ case 126:
+ this.$ = [$$[$0]];
+ break;
+ case 125:
+ case 127:
+ $$[$0 - 2].push($$[$0]);
+ this.$ = $$[$0 - 2];
+ break;
+ case 129:
+ this.$ = $$[$0 - 1] + $$[$0];
+ break;
+ case 151:
+ this.$ = $$[$0];
+ break;
+ case 152:
+ this.$ = $$[$0 - 1] + "" + $$[$0];
+ break;
+ case 157:
+ this.$ = "v";
+ break;
+ case 158:
+ this.$ = "-";
+ break;
+ case 159:
+ this.$ = { stmt: "dir", value: "TB" };
+ break;
+ case 160:
+ this.$ = { stmt: "dir", value: "BT" };
+ break;
+ case 161:
+ this.$ = { stmt: "dir", value: "RL" };
+ break;
+ case 162:
+ this.$ = { stmt: "dir", value: "LR" };
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: 5, 12: $V0, 16: 4, 21: $V1, 22: $V2, 24: $V3 }, { 1: [3] }, { 1: [2, 1] }, { 3: 10, 4: 2, 5: 3, 6: 5, 12: $V0, 16: 4, 21: $V1, 22: $V2, 24: $V3 }, o($V4, $V5, { 17: 11 }), { 7: 12, 13: [1, 13] }, { 16: 14, 21: $V1, 22: $V2, 24: $V3 }, { 16: 15, 21: $V1, 22: $V2, 24: $V3 }, { 25: [1, 16], 26: [1, 17] }, { 13: [2, 5] }, { 1: [2, 2] }, { 1: [2, 9], 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 8: 64, 10: [1, 65], 15: $VD }, o([10, 15], [2, 6]), o($V4, [2, 17]), o($V4, [2, 18]), o($V4, [2, 19]), { 20: [1, 68], 21: [1, 69], 22: $VE, 27: 67, 30: 70 }, o($VF, [2, 11]), o($VF, [2, 12]), o($VF, [2, 13]), o($VF, [2, 14]), o($VF, [2, 15]), o($VF, [2, 16]), { 9: 72, 20: $VG, 21: $VH, 23: $VI, 49: 73, 78: 77, 81: [1, 78], 82: [1, 79] }, { 9: 80, 20: $VG, 21: $VH, 23: $VI }, { 9: 81, 20: $VG, 21: $VH, 23: $VI }, { 9: 82, 20: $VG, 21: $VH, 23: $VI }, { 9: 83, 20: $VG, 21: $VH, 23: $VI }, { 9: 84, 20: $VG, 21: $VH, 23: $VI }, { 9: 86, 20: $VG, 21: $VH, 22: [1, 85], 23: $VI }, o($VF, [2, 44]), { 45: [1, 87] }, { 47: [1, 88] }, o($VF, [2, 47]), o($VJ, [2, 54], { 30: 89, 22: $VE }), { 22: [1, 90] }, { 22: [1, 91] }, { 22: [1, 92] }, { 22: [1, 93] }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 84: [1, 97], 92: $VO, 98: 96, 99: [1, 94], 101: [1, 95], 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($VF, [2, 159]), o($VF, [2, 160]), o($VF, [2, 161]), o($VF, [2, 162]), o($V_, [2, 55], { 53: [1, 116] }), o($V$, [2, 74], { 117: 129, 40: [1, 117], 52: $Ve, 55: [1, 118], 57: [1, 119], 59: [1, 120], 61: [1, 121], 63: [1, 122], 65: [1, 123], 66: $Vf, 67: $Vg, 69: [1, 124], 71: [1, 125], 73: [1, 126], 74: [1, 127], 76: [1, 128], 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }), o($V01, [2, 151]), o($V01, [2, 176]), o($V01, [2, 177]), o($V01, [2, 178]), o($V01, [2, 179]), o($V01, [2, 180]), o($V01, [2, 181]), o($V01, [2, 182]), o($V01, [2, 183]), o($V01, [2, 184]), o($V01, [2, 185]), o($V01, [2, 186]), o($V01, [2, 187]), o($V01, [2, 188]), o($V01, [2, 189]), o($V01, [2, 190]), o($V01, [2, 191]), { 9: 130, 20: $VG, 21: $VH, 23: $VI }, { 11: 131, 14: [1, 132] }, o($V11, [2, 8]), o($V4, [2, 20]), o($V4, [2, 26]), o($V4, [2, 27]), { 21: [1, 133] }, o($V21, [2, 34], { 30: 134, 22: $VE }), o($VF, [2, 35]), { 50: 135, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, o($V31, [2, 48]), o($V31, [2, 49]), o($V31, [2, 50]), o($V41, [2, 78], { 79: 136, 68: [1, 138], 80: [1, 137] }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 139, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o([52, 66, 67, 68, 80, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 80]), o($VF, [2, 36]), o($VF, [2, 37]), o($VF, [2, 38]), o($VF, [2, 39]), o($VF, [2, 40]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 164, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vp1, $V5, { 17: 165 }), o($VF, [2, 45]), o($VF, [2, 46]), o($VJ, [2, 53], { 52: $Vq1 }), { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 167, 103: [1, 168], 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 96: [1, 169], 104: 170, 106: [1, 171] }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 96: [1, 172], 98: 173, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 174, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 102], { 22: [1, 175], 100: [1, 176] }), o($V11, [2, 106], { 22: [1, 177] }), o($V11, [2, 110], { 116: 100, 118: 179, 22: [1, 178], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 112], { 22: [1, 180] }), o($Vr1, [2, 153]), o($Vr1, [2, 155]), o($Vr1, [2, 156]), o($Vr1, [2, 157]), o($Vr1, [2, 158]), o($Vs1, [2, 163]), o($Vs1, [2, 164]), o($Vs1, [2, 165]), o($Vs1, [2, 166]), o($Vs1, [2, 167]), o($Vs1, [2, 168]), o($Vs1, [2, 169]), o($Vs1, [2, 170]), o($Vs1, [2, 171]), o($Vs1, [2, 172]), o($Vs1, [2, 173]), o($Vs1, [2, 174]), o($Vs1, [2, 175]), { 52: $Ve, 54: 181, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 182, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 183, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 185, 42: $V91, 52: $VL, 57: [1, 184], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 186, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 187, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 188, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 66: [1, 189] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 190, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 191, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 71: [1, 192], 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 193, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 194, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 195, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V01, [2, 152]), o($Vt1, [2, 3]), { 8: 196, 15: $VD }, { 15: [2, 7] }, o($V4, [2, 28]), o($V21, [2, 33]), o($VJ, [2, 51], { 30: 197, 22: $VE }), o($V41, [2, 75], { 22: [1, 198] }), { 22: [1, 199] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 200, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 82: [1, 201], 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vs1, [2, 82]), o($Vs1, [2, 84]), o($Vs1, [2, 85]), o($Vs1, [2, 141]), o($Vs1, [2, 142]), o($Vs1, [2, 143]), o($Vs1, [2, 144]), o($Vs1, [2, 145]), o($Vs1, [2, 146]), o($Vs1, [2, 147]), o($Vs1, [2, 148]), o($Vs1, [2, 149]), o($Vs1, [2, 150]), o($Vs1, [2, 86]), o($Vs1, [2, 87]), o($Vs1, [2, 88]), o($Vs1, [2, 89]), o($Vs1, [2, 90]), o($Vs1, [2, 91]), o($Vs1, [2, 92]), o($Vs1, [2, 93]), o($Vs1, [2, 94]), o($Vs1, [2, 95]), o($Vs1, [2, 96]), { 9: 204, 20: $VG, 21: $VH, 22: $V51, 23: $VI, 24: $V61, 26: $V71, 38: $V81, 40: [1, 203], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 205], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $VE, 30: 206 }, { 22: [1, 207], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: [1, 208] }, { 22: [1, 209] }, { 22: [1, 210], 107: [1, 211] }, o($Vu1, [2, 124]), { 22: [1, 212] }, { 22: [1, 213], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: [1, 214], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 84: [1, 215] }, o($V11, [2, 104], { 22: [1, 216] }), { 84: [1, 217], 102: [1, 218] }, { 84: [1, 219] }, o($Vr1, [2, 154]), { 84: [1, 220], 102: [1, 221] }, o($V_, [2, 57], { 117: 129, 52: $Ve, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 222], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 56: [1, 223], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 224, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 58: [1, 225], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 60: [1, 226], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 62: [1, 227], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 64: [1, 228], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 67: [1, 229] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 70: [1, 230], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 72: [1, 231], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 232, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 233], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 75: [1, 234], 77: [1, 235], 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 75: [1, 237], 77: [1, 236], 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 9: 238, 20: $VG, 21: $VH, 23: $VI }, o($VJ, [2, 52], { 52: $Vq1 }), o($V41, [2, 77]), o($V41, [2, 76]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 68: [1, 239], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V41, [2, 79]), o($Vs1, [2, 83]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 240, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vp1, $V5, { 17: 241 }), o($VF, [2, 43]), { 51: 242, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 243, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 257, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 258, 103: $Vz1, 105: [1, 259], 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 260, 103: $Vz1, 105: [1, 261], 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 106: [1, 262] }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 263, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 264, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 265, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 103]), { 84: [1, 266] }, o($V11, [2, 107], { 22: [1, 267] }), o($V11, [2, 108]), o($V11, [2, 111]), o($V11, [2, 113], { 22: [1, 268] }), o($V11, [2, 114]), o($V$, [2, 58]), o($V$, [2, 59]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 58: [1, 269], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 66]), o($V$, [2, 61]), o($V$, [2, 62]), o($V$, [2, 63]), { 66: [1, 270] }, o($V$, [2, 65]), o($V$, [2, 67]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 72: [1, 271], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 69]), o($V$, [2, 70]), o($V$, [2, 72]), o($V$, [2, 71]), o($V$, [2, 73]), o($Vt1, [2, 4]), o([22, 52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 81]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 272], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 273], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, o($V_, [2, 56]), o($V11, [2, 116], { 107: $VG1 }), o($VH1, [2, 126], { 109: 275, 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }), o($VI1, [2, 128]), o($VI1, [2, 130]), o($VI1, [2, 131]), o($VI1, [2, 132]), o($VI1, [2, 133]), o($VI1, [2, 134]), o($VI1, [2, 135]), o($VI1, [2, 136]), o($VI1, [2, 137]), o($VI1, [2, 138]), o($VI1, [2, 139]), o($VI1, [2, 140]), o($V11, [2, 117], { 107: $VG1 }), o($V11, [2, 118], { 107: $VG1 }), { 22: [1, 276] }, o($V11, [2, 119], { 107: $VG1 }), { 22: [1, 277] }, o($Vu1, [2, 125]), o($V11, [2, 99], { 107: $VG1 }), o($V11, [2, 100], { 107: $VG1 }), o($V11, [2, 101], { 116: 100, 118: 179, 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 105]), { 102: [1, 278] }, { 102: [1, 279] }, { 58: [1, 280] }, { 68: [1, 281] }, { 72: [1, 282] }, { 9: 283, 20: $VG, 21: $VH, 23: $VI }, o($VF, [2, 42]), { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 108: 284, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, o($VI1, [2, 129]), { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 285, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 286, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 109]), o($V11, [2, 115]), o($V$, [2, 60]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 287, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 68]), o($Vp1, $V5, { 17: 288 }), o($VH1, [2, 127], { 109: 275, 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }), o($V11, [2, 122], { 116: 100, 118: 179, 22: [1, 289], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 123], { 116: 100, 118: 179, 22: [1, 290], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 291], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 292], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 293, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 294, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, o($V$, [2, 64]), o($VF, [2, 41]), o($V11, [2, 120], { 107: $VG1 }), o($V11, [2, 121], { 107: $VG1 })],
+ defaultActions: { 2: [2, 1], 9: [2, 5], 10: [2, 2], 132: [2, 7] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex2() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex2() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: {},
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 12;
+ case 1:
+ this.begin("type_directive");
+ return 13;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 10;
+ case 3:
+ this.popState();
+ this.popState();
+ return 15;
+ case 4:
+ return 14;
+ case 5:
+ this.begin("acc_title");
+ return 44;
+ case 6:
+ this.popState();
+ return "acc_title_value";
+ case 7:
+ this.begin("acc_descr");
+ return 46;
+ case 8:
+ this.popState();
+ return "acc_descr_value";
+ case 9:
+ this.begin("acc_descr_multiline");
+ break;
+ case 10:
+ this.popState();
+ break;
+ case 11:
+ return "acc_descr_multiline_value";
+ case 12:
+ this.begin("md_string");
+ break;
+ case 13:
+ return "MD_STR";
+ case 14:
+ this.popState();
+ break;
+ case 15:
+ this.begin("string");
+ break;
+ case 16:
+ this.popState();
+ break;
+ case 17:
+ return "STR";
+ case 18:
+ return 87;
+ case 19:
+ return 96;
+ case 20:
+ return 88;
+ case 21:
+ return 105;
+ case 22:
+ return 89;
+ case 23:
+ return 90;
+ case 24:
+ this.begin("href");
+ break;
+ case 25:
+ this.popState();
+ break;
+ case 26:
+ return 101;
+ case 27:
+ this.begin("callbackname");
+ break;
+ case 28:
+ this.popState();
+ break;
+ case 29:
+ this.popState();
+ this.begin("callbackargs");
+ break;
+ case 30:
+ return 99;
+ case 31:
+ this.popState();
+ break;
+ case 32:
+ return 100;
+ case 33:
+ this.begin("click");
+ break;
+ case 34:
+ this.popState();
+ break;
+ case 35:
+ return 91;
+ case 36:
+ if (yy.lex.firstGraph()) {
+ this.begin("dir");
+ }
+ return 24;
+ case 37:
+ if (yy.lex.firstGraph()) {
+ this.begin("dir");
+ }
+ return 24;
+ case 38:
+ if (yy.lex.firstGraph()) {
+ this.begin("dir");
+ }
+ return 24;
+ case 39:
+ return 38;
+ case 40:
+ return 42;
+ case 41:
+ return 102;
+ case 42:
+ return 102;
+ case 43:
+ return 102;
+ case 44:
+ return 102;
+ case 45:
+ this.popState();
+ return 25;
+ case 46:
+ this.popState();
+ return 26;
+ case 47:
+ this.popState();
+ return 26;
+ case 48:
+ this.popState();
+ return 26;
+ case 49:
+ this.popState();
+ return 26;
+ case 50:
+ this.popState();
+ return 26;
+ case 51:
+ this.popState();
+ return 26;
+ case 52:
+ this.popState();
+ return 26;
+ case 53:
+ this.popState();
+ return 26;
+ case 54:
+ this.popState();
+ return 26;
+ case 55:
+ this.popState();
+ return 26;
+ case 56:
+ return 119;
+ case 57:
+ return 120;
+ case 58:
+ return 121;
+ case 59:
+ return 122;
+ case 60:
+ return 106;
+ case 61:
+ return 112;
+ case 62:
+ return 53;
+ case 63:
+ return 67;
+ case 64:
+ return 52;
+ case 65:
+ return 20;
+ case 66:
+ return 107;
+ case 67:
+ return 127;
+ case 68:
+ return 82;
+ case 69:
+ return 82;
+ case 70:
+ return 82;
+ case 71:
+ return 82;
+ case 72:
+ return 81;
+ case 73:
+ return 81;
+ case 74:
+ return 81;
+ case 75:
+ return 59;
+ case 76:
+ return 60;
+ case 77:
+ return 61;
+ case 78:
+ return 62;
+ case 79:
+ return 63;
+ case 80:
+ return 64;
+ case 81:
+ return 65;
+ case 82:
+ return 69;
+ case 83:
+ return 70;
+ case 84:
+ return 55;
+ case 85:
+ return 56;
+ case 86:
+ return 110;
+ case 87:
+ return 113;
+ case 88:
+ return 128;
+ case 89:
+ return 125;
+ case 90:
+ return 114;
+ case 91:
+ return 126;
+ case 92:
+ return 126;
+ case 93:
+ return 115;
+ case 94:
+ return 73;
+ case 95:
+ return 93;
+ case 96:
+ return "SEP";
+ case 97:
+ return 92;
+ case 98:
+ return 66;
+ case 99:
+ return 75;
+ case 100:
+ return 74;
+ case 101:
+ return 77;
+ case 102:
+ return 76;
+ case 103:
+ return 123;
+ case 104:
+ return 124;
+ case 105:
+ return 68;
+ case 106:
+ return 57;
+ case 107:
+ return 58;
+ case 108:
+ return 40;
+ case 109:
+ return 41;
+ case 110:
+ return 71;
+ case 111:
+ return 72;
+ case 112:
+ return 134;
+ case 113:
+ return 21;
+ case 114:
+ return 22;
+ case 115:
+ return 23;
+ }
+ },
+ rules: [/^(?:%%\{)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:href[\s]+["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:click[\s]+)/, /^(?:[\s\n])/, /^(?:[^\s\n]*)/, /^(?:flowchart-elk\b)/, /^(?:graph\b)/, /^(?:flowchart\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:(\r?\n)*\s*\n)/, /^(?:\s*LR\b)/, /^(?:\s*RL\b)/, /^(?:\s*TB\b)/, /^(?:\s*BT\b)/, /^(?:\s*TD\b)/, /^(?:\s*BR\b)/, /^(?:\s*<)/, /^(?:\s*>)/, /^(?:\s*\^)/, /^(?:\s*v\b)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*~~[\~]+\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:\s*[xo<]?-\.\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)+)/, /^(?:\s)/, /^(?:$)/],
+ conditions: { "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "callbackargs": { "rules": [31, 32], "inclusive": false }, "callbackname": { "rules": [28, 29, 30], "inclusive": false }, "href": { "rules": [25, 26], "inclusive": false }, "click": { "rules": [34, 35], "inclusive": false }, "vertex": { "rules": [], "inclusive": false }, "dir": { "rules": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], "inclusive": false }, "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "md_string": { "rules": [13, 14], "inclusive": false }, "string": { "rules": [16, 17], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 15, 18, 19, 20, 21, 22, 23, 24, 27, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 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, 108, 109, 110, 111, 112, 113, 114, 115], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+const MERMAID_DOM_ID_PREFIX = "flowchart-";
+let vertexCounter = 0;
+let config = getConfig();
+let vertices = {};
+let edges = [];
+let classes = {};
+let subGraphs = [];
+let subGraphLookup = {};
+let tooltips = {};
+let subCount = 0;
+let firstGraphFlag = true;
+let direction;
+let version;
+let funs = [];
+const sanitizeText = (txt) => common.sanitizeText(txt, config);
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const lookUpDomId = function(id) {
+ const veritceKeys = Object.keys(vertices);
+ for (const veritceKey of veritceKeys) {
+ if (vertices[veritceKey].id === id) {
+ return vertices[veritceKey].domId;
+ }
+ }
+ return id;
+};
+const addVertex = function(_id, textObj, type, style, classes2, dir, props = {}) {
+ let txt;
+ let id = _id;
+ if (id === void 0) {
+ return;
+ }
+ if (id.trim().length === 0) {
+ return;
+ }
+ if (vertices[id] === void 0) {
+ vertices[id] = {
+ id,
+ labelType: "text",
+ domId: MERMAID_DOM_ID_PREFIX + id + "-" + vertexCounter,
+ styles: [],
+ classes: []
+ };
+ }
+ vertexCounter++;
+ if (textObj !== void 0) {
+ config = getConfig();
+ txt = sanitizeText(textObj.text.trim());
+ vertices[id].labelType = textObj.type;
+ if (txt[0] === '"' && txt[txt.length - 1] === '"') {
+ txt = txt.substring(1, txt.length - 1);
+ }
+ vertices[id].text = txt;
+ } else {
+ if (vertices[id].text === void 0) {
+ vertices[id].text = _id;
+ }
+ }
+ if (type !== void 0) {
+ vertices[id].type = type;
+ }
+ if (style !== void 0 && style !== null) {
+ style.forEach(function(s) {
+ vertices[id].styles.push(s);
+ });
+ }
+ if (classes2 !== void 0 && classes2 !== null) {
+ classes2.forEach(function(s) {
+ vertices[id].classes.push(s);
+ });
+ }
+ if (dir !== void 0) {
+ vertices[id].dir = dir;
+ }
+ if (vertices[id].props === void 0) {
+ vertices[id].props = props;
+ } else if (props !== void 0) {
+ Object.assign(vertices[id].props, props);
+ }
+};
+const addSingleLink = function(_start, _end, type) {
+ let start = _start;
+ let end = _end;
+ const edge = { start, end, type: void 0, text: "", labelType: "text" };
+ log.info("abc78 Got edge...", edge);
+ const linkTextObj = type.text;
+ if (linkTextObj !== void 0) {
+ edge.text = sanitizeText(linkTextObj.text.trim());
+ if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') {
+ edge.text = edge.text.substring(1, edge.text.length - 1);
+ }
+ edge.labelType = linkTextObj.type;
+ }
+ if (type !== void 0) {
+ edge.type = type.type;
+ edge.stroke = type.stroke;
+ edge.length = type.length;
+ }
+ edges.push(edge);
+};
+const addLink = function(_start, _end, type) {
+ log.info("addLink (abc78)", _start, _end, type);
+ let i, j;
+ for (i = 0; i < _start.length; i++) {
+ for (j = 0; j < _end.length; j++) {
+ addSingleLink(_start[i], _end[j], type);
+ }
+ }
+};
+const updateLinkInterpolate = function(positions, interp) {
+ positions.forEach(function(pos) {
+ if (pos === "default") {
+ edges.defaultInterpolate = interp;
+ } else {
+ edges[pos].interpolate = interp;
+ }
+ });
+};
+const updateLink = function(positions, style) {
+ positions.forEach(function(pos) {
+ if (pos === "default") {
+ edges.defaultStyle = style;
+ } else {
+ if (utils.isSubstringInArray("fill", style) === -1) {
+ style.push("fill:none");
+ }
+ edges[pos].style = style;
+ }
+ });
+};
+const addClass = function(id, style) {
+ if (classes[id] === void 0) {
+ classes[id] = { id, styles: [], textStyles: [] };
+ }
+ if (style !== void 0 && style !== null) {
+ style.forEach(function(s) {
+ if (s.match("color")) {
+ const newStyle1 = s.replace("fill", "bgFill");
+ const newStyle2 = newStyle1.replace("color", "fill");
+ classes[id].textStyles.push(newStyle2);
+ }
+ classes[id].styles.push(s);
+ });
+ }
+};
+const setDirection = function(dir) {
+ direction = dir;
+ if (direction.match(/.*)) {
+ direction = "RL";
+ }
+ if (direction.match(/.*\^/)) {
+ direction = "BT";
+ }
+ if (direction.match(/.*>/)) {
+ direction = "LR";
+ }
+ if (direction.match(/.*v/)) {
+ direction = "TB";
+ }
+ if (direction === "TD") {
+ direction = "TB";
+ }
+};
+const setClass = function(ids, className) {
+ ids.split(",").forEach(function(_id) {
+ let id = _id;
+ if (vertices[id] !== void 0) {
+ vertices[id].classes.push(className);
+ }
+ if (subGraphLookup[id] !== void 0) {
+ subGraphLookup[id].classes.push(className);
+ }
+ });
+};
+const setTooltip = function(ids, tooltip) {
+ ids.split(",").forEach(function(id) {
+ if (tooltip !== void 0) {
+ tooltips[version === "gen-1" ? lookUpDomId(id) : id] = sanitizeText(tooltip);
+ }
+ });
+};
+const setClickFun = function(id, functionName, functionArgs) {
+ let domId = lookUpDomId(id);
+ if (getConfig().securityLevel !== "loose") {
+ return;
+ }
+ if (functionName === void 0) {
+ return;
+ }
+ let argList = [];
+ if (typeof functionArgs === "string") {
+ argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let i = 0; i < argList.length; i++) {
+ let item = argList[i].trim();
+ if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
+ item = item.substr(1, item.length - 2);
+ }
+ argList[i] = item;
+ }
+ }
+ if (argList.length === 0) {
+ argList.push(id);
+ }
+ if (vertices[id] !== void 0) {
+ vertices[id].haveCallback = true;
+ funs.push(function() {
+ const elem = document.querySelector(`[id="${domId}"]`);
+ if (elem !== null) {
+ elem.addEventListener(
+ "click",
+ function() {
+ utils.runFunc(functionName, ...argList);
+ },
+ false
+ );
+ }
+ });
+ }
+};
+const setLink = function(ids, linkStr, target) {
+ ids.split(",").forEach(function(id) {
+ if (vertices[id] !== void 0) {
+ vertices[id].link = utils.formatUrl(linkStr, config);
+ vertices[id].linkTarget = target;
+ }
+ });
+ setClass(ids, "clickable");
+};
+const getTooltip = function(id) {
+ return tooltips[id];
+};
+const setClickEvent = function(ids, functionName, functionArgs) {
+ ids.split(",").forEach(function(id) {
+ setClickFun(id, functionName, functionArgs);
+ });
+ setClass(ids, "clickable");
+};
+const bindFunctions = function(element) {
+ funs.forEach(function(fun) {
+ fun(element);
+ });
+};
+const getDirection = function() {
+ return direction.trim();
+};
+const getVertices = function() {
+ return vertices;
+};
+const getEdges = function() {
+ return edges;
+};
+const getClasses = function() {
+ return classes;
+};
+const setupToolTips = function(element) {
+ let tooltipElem = select(".mermaidTooltip");
+ if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
+ tooltipElem = select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0);
+ }
+ const svg = select(element).select("svg");
+ const nodes = svg.selectAll("g.node");
+ nodes.on("mouseover", function() {
+ const el = select(this);
+ const title = el.attr("title");
+ if (title === null) {
+ return;
+ }
+ const rect = this.getBoundingClientRect();
+ tooltipElem.transition().duration(200).style("opacity", ".9");
+ tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect.left + (rect.right - rect.left) / 2 + "px").style("top", window.scrollY + rect.top - 14 + document.body.scrollTop + "px");
+ tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
"));
+ el.classed("hover", true);
+ }).on("mouseout", function() {
+ tooltipElem.transition().duration(500).style("opacity", 0);
+ const el = select(this);
+ el.classed("hover", false);
+ });
+};
+funs.push(setupToolTips);
+const clear = function(ver = "gen-1") {
+ vertices = {};
+ classes = {};
+ edges = [];
+ funs = [setupToolTips];
+ subGraphs = [];
+ subGraphLookup = {};
+ subCount = 0;
+ tooltips = [];
+ firstGraphFlag = true;
+ version = ver;
+ clear$1();
+};
+const setGen = (ver) => {
+ version = ver || "gen-2";
+};
+const defaultStyle = function() {
+ return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;";
+};
+const addSubGraph = function(_id, list, _title) {
+ let id = _id.text.trim();
+ let title = _title.text;
+ if (_id === _title && _title.text.match(/\s/)) {
+ id = void 0;
+ }
+ function uniq(a) {
+ const prims = { boolean: {}, number: {}, string: {} };
+ const objs = [];
+ let dir2;
+ const nodeList2 = a.filter(function(item) {
+ const type = typeof item;
+ if (item.stmt && item.stmt === "dir") {
+ dir2 = item.value;
+ return false;
+ }
+ if (item.trim() === "") {
+ return false;
+ }
+ if (type in prims) {
+ return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true;
+ } else {
+ return objs.includes(item) ? false : objs.push(item);
+ }
+ });
+ return { nodeList: nodeList2, dir: dir2 };
+ }
+ let nodeList = [];
+ const { nodeList: nl, dir } = uniq(nodeList.concat.apply(nodeList, list));
+ nodeList = nl;
+ if (version === "gen-1") {
+ for (let i = 0; i < nodeList.length; i++) {
+ nodeList[i] = lookUpDomId(nodeList[i]);
+ }
+ }
+ id = id || "subGraph" + subCount;
+ title = title || "";
+ title = sanitizeText(title);
+ subCount = subCount + 1;
+ const subGraph = {
+ id,
+ nodes: nodeList,
+ title: title.trim(),
+ classes: [],
+ dir,
+ labelType: _title.type
+ };
+ log.info("Adding", subGraph.id, subGraph.nodes, subGraph.dir);
+ subGraph.nodes = makeUniq(subGraph, subGraphs).nodes;
+ subGraphs.push(subGraph);
+ subGraphLookup[id] = subGraph;
+ return id;
+};
+const getPosForId = function(id) {
+ for (const [i, subGraph] of subGraphs.entries()) {
+ if (subGraph.id === id) {
+ return i;
+ }
+ }
+ return -1;
+};
+let secCount = -1;
+const posCrossRef = [];
+const indexNodes2 = function(id, pos) {
+ const nodes = subGraphs[pos].nodes;
+ secCount = secCount + 1;
+ if (secCount > 2e3) {
+ return;
+ }
+ posCrossRef[secCount] = pos;
+ if (subGraphs[pos].id === id) {
+ return {
+ result: true,
+ count: 0
+ };
+ }
+ let count = 0;
+ let posCount = 1;
+ while (count < nodes.length) {
+ const childPos = getPosForId(nodes[count]);
+ if (childPos >= 0) {
+ const res = indexNodes2(id, childPos);
+ if (res.result) {
+ return {
+ result: true,
+ count: posCount + res.count
+ };
+ } else {
+ posCount = posCount + res.count;
+ }
+ }
+ count = count + 1;
+ }
+ return {
+ result: false,
+ count: posCount
+ };
+};
+const getDepthFirstPos = function(pos) {
+ return posCrossRef[pos];
+};
+const indexNodes = function() {
+ secCount = -1;
+ if (subGraphs.length > 0) {
+ indexNodes2("none", subGraphs.length - 1);
+ }
+};
+const getSubGraphs = function() {
+ return subGraphs;
+};
+const firstGraph = () => {
+ if (firstGraphFlag) {
+ firstGraphFlag = false;
+ return true;
+ }
+ return false;
+};
+const destructStartLink = (_str) => {
+ let str = _str.trim();
+ let type = "arrow_open";
+ switch (str[0]) {
+ case "<":
+ type = "arrow_point";
+ str = str.slice(1);
+ break;
+ case "x":
+ type = "arrow_cross";
+ str = str.slice(1);
+ break;
+ case "o":
+ type = "arrow_circle";
+ str = str.slice(1);
+ break;
+ }
+ let stroke = "normal";
+ if (str.includes("=")) {
+ stroke = "thick";
+ }
+ if (str.includes(".")) {
+ stroke = "dotted";
+ }
+ return { type, stroke };
+};
+const countChar = (char, str) => {
+ const length = str.length;
+ let count = 0;
+ for (let i = 0; i < length; ++i) {
+ if (str[i] === char) {
+ ++count;
+ }
+ }
+ return count;
+};
+const destructEndLink = (_str) => {
+ const str = _str.trim();
+ let line = str.slice(0, -1);
+ let type = "arrow_open";
+ switch (str.slice(-1)) {
+ case "x":
+ type = "arrow_cross";
+ if (str[0] === "x") {
+ type = "double_" + type;
+ line = line.slice(1);
+ }
+ break;
+ case ">":
+ type = "arrow_point";
+ if (str[0] === "<") {
+ type = "double_" + type;
+ line = line.slice(1);
+ }
+ break;
+ case "o":
+ type = "arrow_circle";
+ if (str[0] === "o") {
+ type = "double_" + type;
+ line = line.slice(1);
+ }
+ break;
+ }
+ let stroke = "normal";
+ let length = line.length - 1;
+ if (line[0] === "=") {
+ stroke = "thick";
+ }
+ if (line[0] === "~") {
+ stroke = "invisible";
+ }
+ let dots = countChar(".", line);
+ if (dots) {
+ stroke = "dotted";
+ length = dots;
+ }
+ return { type, stroke, length };
+};
+const destructLink = (_str, _startStr) => {
+ const info = destructEndLink(_str);
+ let startInfo;
+ if (_startStr) {
+ startInfo = destructStartLink(_startStr);
+ if (startInfo.stroke !== info.stroke) {
+ return { type: "INVALID", stroke: "INVALID" };
+ }
+ if (startInfo.type === "arrow_open") {
+ startInfo.type = info.type;
+ } else {
+ if (startInfo.type !== info.type) {
+ return { type: "INVALID", stroke: "INVALID" };
+ }
+ startInfo.type = "double_" + startInfo.type;
+ }
+ if (startInfo.type === "double_arrow") {
+ startInfo.type = "double_arrow_point";
+ }
+ startInfo.length = info.length;
+ return startInfo;
+ }
+ return info;
+};
+const exists = (allSgs, _id) => {
+ let res = false;
+ allSgs.forEach((sg) => {
+ const pos = sg.nodes.indexOf(_id);
+ if (pos >= 0) {
+ res = true;
+ }
+ });
+ return res;
+};
+const makeUniq = (sg, allSubgraphs) => {
+ const res = [];
+ sg.nodes.forEach((_id, pos) => {
+ if (!exists(allSubgraphs, _id)) {
+ res.push(sg.nodes[pos]);
+ }
+ });
+ return { nodes: res };
+};
+const lex = {
+ firstGraph
+};
+const flowDb = {
+ parseDirective,
+ defaultConfig: () => defaultConfig.flowchart,
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ setAccDescription,
+ addVertex,
+ lookUpDomId,
+ addLink,
+ updateLinkInterpolate,
+ updateLink,
+ addClass,
+ setDirection,
+ setClass,
+ setTooltip,
+ getTooltip,
+ setClickEvent,
+ setLink,
+ bindFunctions,
+ getDirection,
+ getVertices,
+ getEdges,
+ getClasses,
+ clear,
+ setGen,
+ defaultStyle,
+ addSubGraph,
+ getDepthFirstPos,
+ indexNodes,
+ getSubGraphs,
+ destructLink,
+ lex,
+ exists,
+ makeUniq,
+ setDiagramTitle,
+ getDiagramTitle
+};
+const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ addClass,
+ addLink,
+ addSingleLink,
+ addSubGraph,
+ addVertex,
+ bindFunctions,
+ clear,
+ default: flowDb,
+ defaultStyle,
+ destructLink,
+ firstGraph,
+ getClasses,
+ getDepthFirstPos,
+ getDirection,
+ getEdges,
+ getSubGraphs,
+ getTooltip,
+ getVertices,
+ indexNodes,
+ lex,
+ lookUpDomId,
+ parseDirective,
+ setClass,
+ setClickEvent,
+ setDirection,
+ setGen,
+ setLink,
+ updateLink,
+ updateLinkInterpolate
+}, Symbol.toStringTag, { value: "Module" }));
+export {
+ db as d,
+ flowDb as f,
+ parser$1 as p
+};
+//# sourceMappingURL=flowDb-52e24d17.js.map
diff --git a/scopegraphs-render-docs/doc/js/flowDb-bb61b53c.js b/scopegraphs-render-docs/doc/js/flowDb-bb61b53c.js
new file mode 100644
index 0000000..cd07c27
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowDb-bb61b53c.js
@@ -0,0 +1,1668 @@
+import { k as defaultConfig, q as setAccTitle, v as getAccTitle, w as getAccDescription, x as setAccDescription, y as setDiagramTitle, z as getDiagramTitle, g as getConfig, l as log, A as clear$1, f as common, h as select } from "./commonDb-89160e91.js";
+import { u as utils } from "./utils-1aebe9b6.js";
+import { m as mermaidAPI } from "./mermaidAPI-c841a67f.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 9], $V1 = [1, 7], $V2 = [1, 6], $V3 = [1, 8], $V4 = [1, 20, 21, 22, 23, 38, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $V5 = [2, 10], $V6 = [1, 20], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 30], $Vb = [1, 32], $Vc = [1, 33], $Vd = [1, 34], $Ve = [1, 62], $Vf = [1, 48], $Vg = [1, 52], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 38], $Vk = [1, 39], $Vl = [1, 40], $Vm = [1, 56], $Vn = [1, 63], $Vo = [1, 51], $Vp = [1, 53], $Vq = [1, 55], $Vr = [1, 59], $Vs = [1, 60], $Vt = [1, 41], $Vu = [1, 42], $Vv = [1, 43], $Vw = [1, 44], $Vx = [1, 61], $Vy = [1, 50], $Vz = [1, 54], $VA = [1, 57], $VB = [1, 58], $VC = [1, 49], $VD = [1, 66], $VE = [1, 71], $VF = [1, 20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $VG = [1, 75], $VH = [1, 74], $VI = [1, 76], $VJ = [20, 21, 23, 81, 82], $VK = [1, 99], $VL = [1, 104], $VM = [1, 107], $VN = [1, 108], $VO = [1, 101], $VP = [1, 106], $VQ = [1, 109], $VR = [1, 102], $VS = [1, 114], $VT = [1, 113], $VU = [1, 103], $VV = [1, 105], $VW = [1, 110], $VX = [1, 111], $VY = [1, 112], $VZ = [1, 115], $V_ = [20, 21, 22, 23, 81, 82], $V$ = [20, 21, 22, 23, 53, 81, 82], $V01 = [20, 21, 22, 23, 40, 52, 53, 55, 57, 59, 61, 63, 65, 66, 67, 69, 71, 73, 74, 76, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V11 = [20, 21, 23], $V21 = [20, 21, 23, 52, 66, 67, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V31 = [1, 12, 20, 21, 22, 23, 24, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $V41 = [52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V51 = [1, 150], $V61 = [1, 158], $V71 = [1, 159], $V81 = [1, 160], $V91 = [1, 161], $Va1 = [1, 145], $Vb1 = [1, 146], $Vc1 = [1, 141], $Vd1 = [1, 142], $Ve1 = [1, 153], $Vf1 = [1, 154], $Vg1 = [1, 155], $Vh1 = [1, 156], $Vi1 = [1, 157], $Vj1 = [1, 162], $Vk1 = [1, 163], $Vl1 = [1, 148], $Vm1 = [1, 151], $Vn1 = [1, 147], $Vo1 = [1, 144], $Vp1 = [20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $Vq1 = [1, 166], $Vr1 = [20, 21, 22, 23, 26, 52, 66, 67, 92, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $Vs1 = [20, 21, 22, 23, 24, 26, 38, 40, 41, 42, 52, 56, 58, 60, 62, 64, 66, 67, 68, 70, 72, 73, 75, 77, 81, 82, 87, 88, 89, 90, 91, 92, 93, 96, 106, 107, 110, 112, 113, 114, 115, 123, 124, 125, 126, 127, 128], $Vt1 = [12, 21, 22, 24], $Vu1 = [22, 107], $Vv1 = [1, 251], $Vw1 = [1, 246], $Vx1 = [1, 247], $Vy1 = [1, 255], $Vz1 = [1, 252], $VA1 = [1, 249], $VB1 = [1, 248], $VC1 = [1, 250], $VD1 = [1, 253], $VE1 = [1, 254], $VF1 = [1, 256], $VG1 = [1, 274], $VH1 = [20, 21, 23, 107], $VI1 = [20, 21, 22, 23, 66, 67, 87, 103, 106, 107, 110, 111, 112, 113, 114];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "directive": 5, "openDirective": 6, "typeDirective": 7, "closeDirective": 8, "separator": 9, ":": 10, "argDirective": 11, "open_directive": 12, "type_directive": 13, "arg_directive": 14, "close_directive": 15, "graphConfig": 16, "document": 17, "line": 18, "statement": 19, "SEMI": 20, "NEWLINE": 21, "SPACE": 22, "EOF": 23, "GRAPH": 24, "NODIR": 25, "DIR": 26, "FirstStmtSeperator": 27, "ending": 28, "endToken": 29, "spaceList": 30, "spaceListNewline": 31, "verticeStatement": 32, "styleStatement": 33, "linkStyleStatement": 34, "classDefStatement": 35, "classStatement": 36, "clickStatement": 37, "subgraph": 38, "text": 39, "SQS": 40, "SQE": 41, "end": 42, "direction": 43, "acc_title": 44, "acc_title_value": 45, "acc_descr": 46, "acc_descr_value": 47, "acc_descr_multiline_value": 48, "link": 49, "node": 50, "vertex": 51, "AMP": 52, "STYLE_SEPARATOR": 53, "idString": 54, "DOUBLECIRCLESTART": 55, "DOUBLECIRCLEEND": 56, "PS": 57, "PE": 58, "(-": 59, "-)": 60, "STADIUMSTART": 61, "STADIUMEND": 62, "SUBROUTINESTART": 63, "SUBROUTINEEND": 64, "VERTEX_WITH_PROPS_START": 65, "ALPHA": 66, "COLON": 67, "PIPE": 68, "CYLINDERSTART": 69, "CYLINDEREND": 70, "DIAMOND_START": 71, "DIAMOND_STOP": 72, "TAGEND": 73, "TRAPSTART": 74, "TRAPEND": 75, "INVTRAPSTART": 76, "INVTRAPEND": 77, "linkStatement": 78, "arrowText": 79, "TESTSTR": 80, "START_LINK": 81, "LINK": 82, "textToken": 83, "STR": 84, "MD_STR": 85, "keywords": 86, "STYLE": 87, "LINKSTYLE": 88, "CLASSDEF": 89, "CLASS": 90, "CLICK": 91, "DOWN": 92, "UP": 93, "textNoTags": 94, "textNoTagsToken": 95, "DEFAULT": 96, "stylesOpt": 97, "alphaNum": 98, "CALLBACKNAME": 99, "CALLBACKARGS": 100, "HREF": 101, "LINK_TARGET": 102, "HEX": 103, "numList": 104, "INTERPOLATE": 105, "NUM": 106, "COMMA": 107, "style": 108, "styleComponent": 109, "MINUS": 110, "UNIT": 111, "BRKT": 112, "DOT": 113, "PCT": 114, "TAGSTART": 115, "alphaNumToken": 116, "idStringToken": 117, "alphaNumStatement": 118, "direction_tb": 119, "direction_bt": 120, "direction_rl": 121, "direction_lr": 122, "PUNCTUATION": 123, "UNICODE_TEXT": 124, "PLUS": 125, "EQUALS": 126, "MULT": 127, "UNDERSCORE": 128, "graphCodeTokens": 129, "ARROW_CROSS": 130, "ARROW_POINT": 131, "ARROW_CIRCLE": 132, "ARROW_OPEN": 133, "QUOTE": 134, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 10: ":", 12: "open_directive", 13: "type_directive", 14: "arg_directive", 15: "close_directive", 20: "SEMI", 21: "NEWLINE", 22: "SPACE", 23: "EOF", 24: "GRAPH", 25: "NODIR", 26: "DIR", 38: "subgraph", 40: "SQS", 41: "SQE", 42: "end", 44: "acc_title", 45: "acc_title_value", 46: "acc_descr", 47: "acc_descr_value", 48: "acc_descr_multiline_value", 52: "AMP", 53: "STYLE_SEPARATOR", 55: "DOUBLECIRCLESTART", 56: "DOUBLECIRCLEEND", 57: "PS", 58: "PE", 59: "(-", 60: "-)", 61: "STADIUMSTART", 62: "STADIUMEND", 63: "SUBROUTINESTART", 64: "SUBROUTINEEND", 65: "VERTEX_WITH_PROPS_START", 66: "ALPHA", 67: "COLON", 68: "PIPE", 69: "CYLINDERSTART", 70: "CYLINDEREND", 71: "DIAMOND_START", 72: "DIAMOND_STOP", 73: "TAGEND", 74: "TRAPSTART", 75: "TRAPEND", 76: "INVTRAPSTART", 77: "INVTRAPEND", 80: "TESTSTR", 81: "START_LINK", 82: "LINK", 84: "STR", 85: "MD_STR", 87: "STYLE", 88: "LINKSTYLE", 89: "CLASSDEF", 90: "CLASS", 91: "CLICK", 92: "DOWN", 93: "UP", 96: "DEFAULT", 99: "CALLBACKNAME", 100: "CALLBACKARGS", 101: "HREF", 102: "LINK_TARGET", 103: "HEX", 105: "INTERPOLATE", 106: "NUM", 107: "COMMA", 110: "MINUS", 111: "UNIT", 112: "BRKT", 113: "DOT", 114: "PCT", 115: "TAGSTART", 119: "direction_tb", 120: "direction_bt", 121: "direction_rl", 122: "direction_lr", 123: "PUNCTUATION", 124: "UNICODE_TEXT", 125: "PLUS", 126: "EQUALS", 127: "MULT", 128: "UNDERSCORE", 130: "ARROW_CROSS", 131: "ARROW_POINT", 132: "ARROW_CIRCLE", 133: "ARROW_OPEN", 134: "QUOTE" },
+ productions_: [0, [3, 1], [3, 2], [5, 4], [5, 6], [6, 1], [7, 1], [11, 1], [8, 1], [4, 2], [17, 0], [17, 2], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [16, 2], [16, 2], [16, 2], [16, 3], [28, 2], [28, 1], [29, 1], [29, 1], [29, 1], [27, 1], [27, 1], [27, 2], [31, 2], [31, 2], [31, 1], [31, 1], [30, 2], [30, 1], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 9], [19, 6], [19, 4], [19, 1], [19, 2], [19, 2], [19, 1], [9, 1], [9, 1], [9, 1], [32, 3], [32, 4], [32, 2], [32, 1], [50, 1], [50, 5], [50, 3], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 8], [51, 4], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 4], [51, 4], [51, 1], [49, 2], [49, 3], [49, 3], [49, 1], [49, 3], [78, 1], [79, 3], [39, 1], [39, 2], [39, 1], [39, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [94, 1], [94, 2], [35, 5], [35, 5], [36, 5], [37, 2], [37, 4], [37, 3], [37, 5], [37, 2], [37, 4], [37, 4], [37, 6], [37, 2], [37, 4], [37, 2], [37, 4], [37, 4], [37, 6], [33, 5], [33, 5], [34, 5], [34, 5], [34, 9], [34, 9], [34, 7], [34, 7], [104, 1], [104, 3], [97, 1], [97, 3], [108, 1], [108, 2], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [95, 1], [95, 1], [95, 1], [95, 1], [54, 1], [54, 2], [98, 1], [98, 2], [118, 1], [118, 1], [118, 1], [118, 1], [43, 1], [43, 1], [43, 1], [43, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 5:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 6:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 7:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 8:
+ yy.parseDirective("}%%", "close_directive", "flowchart");
+ break;
+ case 10:
+ this.$ = [];
+ break;
+ case 11:
+ if (!Array.isArray($$[$0]) || $$[$0].length > 0) {
+ $$[$0 - 1].push($$[$0]);
+ }
+ this.$ = $$[$0 - 1];
+ break;
+ case 12:
+ case 97:
+ case 153:
+ case 155:
+ case 156:
+ this.$ = $$[$0];
+ break;
+ case 19:
+ yy.setDirection("TB");
+ this.$ = "TB";
+ break;
+ case 20:
+ yy.setDirection($$[$0 - 1]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 35:
+ this.$ = $$[$0 - 1].nodes;
+ break;
+ case 36:
+ case 37:
+ case 38:
+ case 39:
+ case 40:
+ this.$ = [];
+ break;
+ case 41:
+ this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]);
+ break;
+ case 42:
+ this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]);
+ break;
+ case 43:
+ this.$ = yy.addSubGraph(void 0, $$[$0 - 1], void 0);
+ break;
+ case 45:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 46:
+ case 47:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 51:
+ yy.addLink($$[$0 - 2].stmt, $$[$0], $$[$0 - 1]);
+ this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0 - 2].nodes) };
+ break;
+ case 52:
+ yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]);
+ this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) };
+ break;
+ case 53:
+ this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1] };
+ break;
+ case 54:
+ this.$ = { stmt: $$[$0], nodes: $$[$0] };
+ break;
+ case 55:
+ this.$ = [$$[$0]];
+ break;
+ case 56:
+ this.$ = $$[$0 - 4].concat($$[$0]);
+ break;
+ case 57:
+ this.$ = [$$[$0 - 2]];
+ yy.setClass($$[$0 - 2], $$[$0]);
+ break;
+ case 58:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "square");
+ break;
+ case 59:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "doublecircle");
+ break;
+ case 60:
+ this.$ = $$[$0 - 5];
+ yy.addVertex($$[$0 - 5], $$[$0 - 2], "circle");
+ break;
+ case 61:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "ellipse");
+ break;
+ case 62:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "stadium");
+ break;
+ case 63:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "subroutine");
+ break;
+ case 64:
+ this.$ = $$[$0 - 7];
+ yy.addVertex($$[$0 - 7], $$[$0 - 1], "rect", void 0, void 0, void 0, Object.fromEntries([[$$[$0 - 5], $$[$0 - 3]]]));
+ break;
+ case 65:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "cylinder");
+ break;
+ case 66:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "round");
+ break;
+ case 67:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "diamond");
+ break;
+ case 68:
+ this.$ = $$[$0 - 5];
+ yy.addVertex($$[$0 - 5], $$[$0 - 2], "hexagon");
+ break;
+ case 69:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "odd");
+ break;
+ case 70:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "trapezoid");
+ break;
+ case 71:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "inv_trapezoid");
+ break;
+ case 72:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_right");
+ break;
+ case 73:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_left");
+ break;
+ case 74:
+ this.$ = $$[$0];
+ yy.addVertex($$[$0]);
+ break;
+ case 75:
+ $$[$0 - 1].text = $$[$0];
+ this.$ = $$[$0 - 1];
+ break;
+ case 76:
+ case 77:
+ $$[$0 - 2].text = $$[$0 - 1];
+ this.$ = $$[$0 - 2];
+ break;
+ case 78:
+ this.$ = $$[$0];
+ break;
+ case 79:
+ var inf = yy.destructLink($$[$0], $$[$0 - 2]);
+ this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length, "text": $$[$0 - 1] };
+ break;
+ case 80:
+ var inf = yy.destructLink($$[$0]);
+ this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length };
+ break;
+ case 81:
+ this.$ = $$[$0 - 1];
+ break;
+ case 82:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 83:
+ this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
+ break;
+ case 84:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 85:
+ this.$ = { text: $$[$0], type: "markdown" };
+ break;
+ case 98:
+ case 154:
+ this.$ = $$[$0 - 1] + "" + $$[$0];
+ break;
+ case 99:
+ case 100:
+ this.$ = $$[$0 - 4];
+ yy.addClass($$[$0 - 2], $$[$0]);
+ break;
+ case 101:
+ this.$ = $$[$0 - 4];
+ yy.setClass($$[$0 - 2], $$[$0]);
+ break;
+ case 102:
+ case 110:
+ this.$ = $$[$0 - 1];
+ yy.setClickEvent($$[$0 - 1], $$[$0]);
+ break;
+ case 103:
+ case 111:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 2]);
+ yy.setTooltip($$[$0 - 3], $$[$0]);
+ break;
+ case 104:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 105:
+ this.$ = $$[$0 - 4];
+ yy.setClickEvent($$[$0 - 4], $$[$0 - 3], $$[$0 - 2]);
+ yy.setTooltip($$[$0 - 4], $$[$0]);
+ break;
+ case 106:
+ case 112:
+ this.$ = $$[$0 - 1];
+ yy.setLink($$[$0 - 1], $$[$0]);
+ break;
+ case 107:
+ case 113:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 3], $$[$0 - 2]);
+ yy.setTooltip($$[$0 - 3], $$[$0]);
+ break;
+ case 108:
+ case 114:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);
+ break;
+ case 109:
+ case 115:
+ this.$ = $$[$0 - 5];
+ yy.setLink($$[$0 - 5], $$[$0 - 4], $$[$0]);
+ yy.setTooltip($$[$0 - 5], $$[$0 - 2]);
+ break;
+ case 116:
+ this.$ = $$[$0 - 4];
+ yy.addVertex($$[$0 - 2], void 0, void 0, $$[$0]);
+ break;
+ case 117:
+ case 119:
+ this.$ = $$[$0 - 4];
+ yy.updateLink($$[$0 - 2], $$[$0]);
+ break;
+ case 118:
+ this.$ = $$[$0 - 4];
+ yy.updateLink([$$[$0 - 2]], $$[$0]);
+ break;
+ case 120:
+ this.$ = $$[$0 - 8];
+ yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]);
+ yy.updateLink([$$[$0 - 6]], $$[$0]);
+ break;
+ case 121:
+ this.$ = $$[$0 - 8];
+ yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);
+ yy.updateLink($$[$0 - 6], $$[$0]);
+ break;
+ case 122:
+ this.$ = $$[$0 - 6];
+ yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]);
+ break;
+ case 123:
+ this.$ = $$[$0 - 6];
+ yy.updateLinkInterpolate($$[$0 - 4], $$[$0]);
+ break;
+ case 124:
+ case 126:
+ this.$ = [$$[$0]];
+ break;
+ case 125:
+ case 127:
+ $$[$0 - 2].push($$[$0]);
+ this.$ = $$[$0 - 2];
+ break;
+ case 129:
+ this.$ = $$[$0 - 1] + $$[$0];
+ break;
+ case 151:
+ this.$ = $$[$0];
+ break;
+ case 152:
+ this.$ = $$[$0 - 1] + "" + $$[$0];
+ break;
+ case 157:
+ this.$ = "v";
+ break;
+ case 158:
+ this.$ = "-";
+ break;
+ case 159:
+ this.$ = { stmt: "dir", value: "TB" };
+ break;
+ case 160:
+ this.$ = { stmt: "dir", value: "BT" };
+ break;
+ case 161:
+ this.$ = { stmt: "dir", value: "RL" };
+ break;
+ case 162:
+ this.$ = { stmt: "dir", value: "LR" };
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: 5, 12: $V0, 16: 4, 21: $V1, 22: $V2, 24: $V3 }, { 1: [3] }, { 1: [2, 1] }, { 3: 10, 4: 2, 5: 3, 6: 5, 12: $V0, 16: 4, 21: $V1, 22: $V2, 24: $V3 }, o($V4, $V5, { 17: 11 }), { 7: 12, 13: [1, 13] }, { 16: 14, 21: $V1, 22: $V2, 24: $V3 }, { 16: 15, 21: $V1, 22: $V2, 24: $V3 }, { 25: [1, 16], 26: [1, 17] }, { 13: [2, 5] }, { 1: [2, 2] }, { 1: [2, 9], 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 8: 64, 10: [1, 65], 15: $VD }, o([10, 15], [2, 6]), o($V4, [2, 17]), o($V4, [2, 18]), o($V4, [2, 19]), { 20: [1, 68], 21: [1, 69], 22: $VE, 27: 67, 30: 70 }, o($VF, [2, 11]), o($VF, [2, 12]), o($VF, [2, 13]), o($VF, [2, 14]), o($VF, [2, 15]), o($VF, [2, 16]), { 9: 72, 20: $VG, 21: $VH, 23: $VI, 49: 73, 78: 77, 81: [1, 78], 82: [1, 79] }, { 9: 80, 20: $VG, 21: $VH, 23: $VI }, { 9: 81, 20: $VG, 21: $VH, 23: $VI }, { 9: 82, 20: $VG, 21: $VH, 23: $VI }, { 9: 83, 20: $VG, 21: $VH, 23: $VI }, { 9: 84, 20: $VG, 21: $VH, 23: $VI }, { 9: 86, 20: $VG, 21: $VH, 22: [1, 85], 23: $VI }, o($VF, [2, 44]), { 45: [1, 87] }, { 47: [1, 88] }, o($VF, [2, 47]), o($VJ, [2, 54], { 30: 89, 22: $VE }), { 22: [1, 90] }, { 22: [1, 91] }, { 22: [1, 92] }, { 22: [1, 93] }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 84: [1, 97], 92: $VO, 98: 96, 99: [1, 94], 101: [1, 95], 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($VF, [2, 159]), o($VF, [2, 160]), o($VF, [2, 161]), o($VF, [2, 162]), o($V_, [2, 55], { 53: [1, 116] }), o($V$, [2, 74], { 117: 129, 40: [1, 117], 52: $Ve, 55: [1, 118], 57: [1, 119], 59: [1, 120], 61: [1, 121], 63: [1, 122], 65: [1, 123], 66: $Vf, 67: $Vg, 69: [1, 124], 71: [1, 125], 73: [1, 126], 74: [1, 127], 76: [1, 128], 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }), o($V01, [2, 151]), o($V01, [2, 176]), o($V01, [2, 177]), o($V01, [2, 178]), o($V01, [2, 179]), o($V01, [2, 180]), o($V01, [2, 181]), o($V01, [2, 182]), o($V01, [2, 183]), o($V01, [2, 184]), o($V01, [2, 185]), o($V01, [2, 186]), o($V01, [2, 187]), o($V01, [2, 188]), o($V01, [2, 189]), o($V01, [2, 190]), o($V01, [2, 191]), { 9: 130, 20: $VG, 21: $VH, 23: $VI }, { 11: 131, 14: [1, 132] }, o($V11, [2, 8]), o($V4, [2, 20]), o($V4, [2, 26]), o($V4, [2, 27]), { 21: [1, 133] }, o($V21, [2, 34], { 30: 134, 22: $VE }), o($VF, [2, 35]), { 50: 135, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, o($V31, [2, 48]), o($V31, [2, 49]), o($V31, [2, 50]), o($V41, [2, 78], { 79: 136, 68: [1, 138], 80: [1, 137] }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 139, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o([52, 66, 67, 68, 80, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 80]), o($VF, [2, 36]), o($VF, [2, 37]), o($VF, [2, 38]), o($VF, [2, 39]), o($VF, [2, 40]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 164, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vp1, $V5, { 17: 165 }), o($VF, [2, 45]), o($VF, [2, 46]), o($VJ, [2, 53], { 52: $Vq1 }), { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 167, 103: [1, 168], 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 96: [1, 169], 104: 170, 106: [1, 171] }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 96: [1, 172], 98: 173, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 174, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 102], { 22: [1, 175], 100: [1, 176] }), o($V11, [2, 106], { 22: [1, 177] }), o($V11, [2, 110], { 116: 100, 118: 179, 22: [1, 178], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 112], { 22: [1, 180] }), o($Vr1, [2, 153]), o($Vr1, [2, 155]), o($Vr1, [2, 156]), o($Vr1, [2, 157]), o($Vr1, [2, 158]), o($Vs1, [2, 163]), o($Vs1, [2, 164]), o($Vs1, [2, 165]), o($Vs1, [2, 166]), o($Vs1, [2, 167]), o($Vs1, [2, 168]), o($Vs1, [2, 169]), o($Vs1, [2, 170]), o($Vs1, [2, 171]), o($Vs1, [2, 172]), o($Vs1, [2, 173]), o($Vs1, [2, 174]), o($Vs1, [2, 175]), { 52: $Ve, 54: 181, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 182, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 183, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 185, 42: $V91, 52: $VL, 57: [1, 184], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 186, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 187, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 188, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 66: [1, 189] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 190, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 191, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 71: [1, 192], 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 193, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 194, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 195, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V01, [2, 152]), o($Vt1, [2, 3]), { 8: 196, 15: $VD }, { 15: [2, 7] }, o($V4, [2, 28]), o($V21, [2, 33]), o($VJ, [2, 51], { 30: 197, 22: $VE }), o($V41, [2, 75], { 22: [1, 198] }), { 22: [1, 199] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 200, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 82: [1, 201], 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vs1, [2, 82]), o($Vs1, [2, 84]), o($Vs1, [2, 85]), o($Vs1, [2, 141]), o($Vs1, [2, 142]), o($Vs1, [2, 143]), o($Vs1, [2, 144]), o($Vs1, [2, 145]), o($Vs1, [2, 146]), o($Vs1, [2, 147]), o($Vs1, [2, 148]), o($Vs1, [2, 149]), o($Vs1, [2, 150]), o($Vs1, [2, 86]), o($Vs1, [2, 87]), o($Vs1, [2, 88]), o($Vs1, [2, 89]), o($Vs1, [2, 90]), o($Vs1, [2, 91]), o($Vs1, [2, 92]), o($Vs1, [2, 93]), o($Vs1, [2, 94]), o($Vs1, [2, 95]), o($Vs1, [2, 96]), { 9: 204, 20: $VG, 21: $VH, 22: $V51, 23: $VI, 24: $V61, 26: $V71, 38: $V81, 40: [1, 203], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 205], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $VE, 30: 206 }, { 22: [1, 207], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: [1, 208] }, { 22: [1, 209] }, { 22: [1, 210], 107: [1, 211] }, o($Vu1, [2, 124]), { 22: [1, 212] }, { 22: [1, 213], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: [1, 214], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 84: [1, 215] }, o($V11, [2, 104], { 22: [1, 216] }), { 84: [1, 217], 102: [1, 218] }, { 84: [1, 219] }, o($Vr1, [2, 154]), { 84: [1, 220], 102: [1, 221] }, o($V_, [2, 57], { 117: 129, 52: $Ve, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 222], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 56: [1, 223], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 224, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 58: [1, 225], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 60: [1, 226], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 62: [1, 227], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 64: [1, 228], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 67: [1, 229] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 70: [1, 230], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 72: [1, 231], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 232, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 233], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 75: [1, 234], 77: [1, 235], 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 75: [1, 237], 77: [1, 236], 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 9: 238, 20: $VG, 21: $VH, 23: $VI }, o($VJ, [2, 52], { 52: $Vq1 }), o($V41, [2, 77]), o($V41, [2, 76]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 68: [1, 239], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V41, [2, 79]), o($Vs1, [2, 83]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 240, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vp1, $V5, { 17: 241 }), o($VF, [2, 43]), { 51: 242, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 243, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 257, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 258, 103: $Vz1, 105: [1, 259], 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 260, 103: $Vz1, 105: [1, 261], 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 106: [1, 262] }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 263, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 264, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 265, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 103]), { 84: [1, 266] }, o($V11, [2, 107], { 22: [1, 267] }), o($V11, [2, 108]), o($V11, [2, 111]), o($V11, [2, 113], { 22: [1, 268] }), o($V11, [2, 114]), o($V$, [2, 58]), o($V$, [2, 59]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 58: [1, 269], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 66]), o($V$, [2, 61]), o($V$, [2, 62]), o($V$, [2, 63]), { 66: [1, 270] }, o($V$, [2, 65]), o($V$, [2, 67]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 72: [1, 271], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 69]), o($V$, [2, 70]), o($V$, [2, 72]), o($V$, [2, 71]), o($V$, [2, 73]), o($Vt1, [2, 4]), o([22, 52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 81]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 272], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 273], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, o($V_, [2, 56]), o($V11, [2, 116], { 107: $VG1 }), o($VH1, [2, 126], { 109: 275, 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }), o($VI1, [2, 128]), o($VI1, [2, 130]), o($VI1, [2, 131]), o($VI1, [2, 132]), o($VI1, [2, 133]), o($VI1, [2, 134]), o($VI1, [2, 135]), o($VI1, [2, 136]), o($VI1, [2, 137]), o($VI1, [2, 138]), o($VI1, [2, 139]), o($VI1, [2, 140]), o($V11, [2, 117], { 107: $VG1 }), o($V11, [2, 118], { 107: $VG1 }), { 22: [1, 276] }, o($V11, [2, 119], { 107: $VG1 }), { 22: [1, 277] }, o($Vu1, [2, 125]), o($V11, [2, 99], { 107: $VG1 }), o($V11, [2, 100], { 107: $VG1 }), o($V11, [2, 101], { 116: 100, 118: 179, 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 105]), { 102: [1, 278] }, { 102: [1, 279] }, { 58: [1, 280] }, { 68: [1, 281] }, { 72: [1, 282] }, { 9: 283, 20: $VG, 21: $VH, 23: $VI }, o($VF, [2, 42]), { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 108: 284, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, o($VI1, [2, 129]), { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 285, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 286, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 109]), o($V11, [2, 115]), o($V$, [2, 60]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 287, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 68]), o($Vp1, $V5, { 17: 288 }), o($VH1, [2, 127], { 109: 275, 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }), o($V11, [2, 122], { 116: 100, 118: 179, 22: [1, 289], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 123], { 116: 100, 118: 179, 22: [1, 290], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 291], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 292], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 293, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 294, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, o($V$, [2, 64]), o($VF, [2, 41]), o($V11, [2, 120], { 107: $VG1 }), o($V11, [2, 121], { 107: $VG1 })],
+ defaultActions: { 2: [2, 1], 9: [2, 5], 10: [2, 2], 132: [2, 7] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex2() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex2() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: {},
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 12;
+ case 1:
+ this.begin("type_directive");
+ return 13;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 10;
+ case 3:
+ this.popState();
+ this.popState();
+ return 15;
+ case 4:
+ return 14;
+ case 5:
+ this.begin("acc_title");
+ return 44;
+ case 6:
+ this.popState();
+ return "acc_title_value";
+ case 7:
+ this.begin("acc_descr");
+ return 46;
+ case 8:
+ this.popState();
+ return "acc_descr_value";
+ case 9:
+ this.begin("acc_descr_multiline");
+ break;
+ case 10:
+ this.popState();
+ break;
+ case 11:
+ return "acc_descr_multiline_value";
+ case 12:
+ this.begin("md_string");
+ break;
+ case 13:
+ return "MD_STR";
+ case 14:
+ this.popState();
+ break;
+ case 15:
+ this.begin("string");
+ break;
+ case 16:
+ this.popState();
+ break;
+ case 17:
+ return "STR";
+ case 18:
+ return 87;
+ case 19:
+ return 96;
+ case 20:
+ return 88;
+ case 21:
+ return 105;
+ case 22:
+ return 89;
+ case 23:
+ return 90;
+ case 24:
+ this.begin("href");
+ break;
+ case 25:
+ this.popState();
+ break;
+ case 26:
+ return 101;
+ case 27:
+ this.begin("callbackname");
+ break;
+ case 28:
+ this.popState();
+ break;
+ case 29:
+ this.popState();
+ this.begin("callbackargs");
+ break;
+ case 30:
+ return 99;
+ case 31:
+ this.popState();
+ break;
+ case 32:
+ return 100;
+ case 33:
+ this.begin("click");
+ break;
+ case 34:
+ this.popState();
+ break;
+ case 35:
+ return 91;
+ case 36:
+ if (yy.lex.firstGraph()) {
+ this.begin("dir");
+ }
+ return 24;
+ case 37:
+ if (yy.lex.firstGraph()) {
+ this.begin("dir");
+ }
+ return 24;
+ case 38:
+ if (yy.lex.firstGraph()) {
+ this.begin("dir");
+ }
+ return 24;
+ case 39:
+ return 38;
+ case 40:
+ return 42;
+ case 41:
+ return 102;
+ case 42:
+ return 102;
+ case 43:
+ return 102;
+ case 44:
+ return 102;
+ case 45:
+ this.popState();
+ return 25;
+ case 46:
+ this.popState();
+ return 26;
+ case 47:
+ this.popState();
+ return 26;
+ case 48:
+ this.popState();
+ return 26;
+ case 49:
+ this.popState();
+ return 26;
+ case 50:
+ this.popState();
+ return 26;
+ case 51:
+ this.popState();
+ return 26;
+ case 52:
+ this.popState();
+ return 26;
+ case 53:
+ this.popState();
+ return 26;
+ case 54:
+ this.popState();
+ return 26;
+ case 55:
+ this.popState();
+ return 26;
+ case 56:
+ return 119;
+ case 57:
+ return 120;
+ case 58:
+ return 121;
+ case 59:
+ return 122;
+ case 60:
+ return 106;
+ case 61:
+ return 112;
+ case 62:
+ return 53;
+ case 63:
+ return 67;
+ case 64:
+ return 52;
+ case 65:
+ return 20;
+ case 66:
+ return 107;
+ case 67:
+ return 127;
+ case 68:
+ return 82;
+ case 69:
+ return 82;
+ case 70:
+ return 82;
+ case 71:
+ return 82;
+ case 72:
+ return 81;
+ case 73:
+ return 81;
+ case 74:
+ return 81;
+ case 75:
+ return 59;
+ case 76:
+ return 60;
+ case 77:
+ return 61;
+ case 78:
+ return 62;
+ case 79:
+ return 63;
+ case 80:
+ return 64;
+ case 81:
+ return 65;
+ case 82:
+ return 69;
+ case 83:
+ return 70;
+ case 84:
+ return 55;
+ case 85:
+ return 56;
+ case 86:
+ return 110;
+ case 87:
+ return 113;
+ case 88:
+ return 128;
+ case 89:
+ return 125;
+ case 90:
+ return 114;
+ case 91:
+ return 126;
+ case 92:
+ return 126;
+ case 93:
+ return 115;
+ case 94:
+ return 73;
+ case 95:
+ return 93;
+ case 96:
+ return "SEP";
+ case 97:
+ return 92;
+ case 98:
+ return 66;
+ case 99:
+ return 75;
+ case 100:
+ return 74;
+ case 101:
+ return 77;
+ case 102:
+ return 76;
+ case 103:
+ return 123;
+ case 104:
+ return 124;
+ case 105:
+ return 68;
+ case 106:
+ return 57;
+ case 107:
+ return 58;
+ case 108:
+ return 40;
+ case 109:
+ return 41;
+ case 110:
+ return 71;
+ case 111:
+ return 72;
+ case 112:
+ return 134;
+ case 113:
+ return 21;
+ case 114:
+ return 22;
+ case 115:
+ return 23;
+ }
+ },
+ rules: [/^(?:%%\{)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:href[\s]+["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:click[\s]+)/, /^(?:[\s\n])/, /^(?:[^\s\n]*)/, /^(?:flowchart-elk\b)/, /^(?:graph\b)/, /^(?:flowchart\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:(\r?\n)*\s*\n)/, /^(?:\s*LR\b)/, /^(?:\s*RL\b)/, /^(?:\s*TB\b)/, /^(?:\s*BT\b)/, /^(?:\s*TD\b)/, /^(?:\s*BR\b)/, /^(?:\s*<)/, /^(?:\s*>)/, /^(?:\s*\^)/, /^(?:\s*v\b)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*~~[\~]+\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:\s*[xo<]?-\.\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)+)/, /^(?:\s)/, /^(?:$)/],
+ conditions: { "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "callbackargs": { "rules": [31, 32], "inclusive": false }, "callbackname": { "rules": [28, 29, 30], "inclusive": false }, "href": { "rules": [25, 26], "inclusive": false }, "click": { "rules": [34, 35], "inclusive": false }, "vertex": { "rules": [], "inclusive": false }, "dir": { "rules": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], "inclusive": false }, "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "md_string": { "rules": [13, 14], "inclusive": false }, "string": { "rules": [16, 17], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 15, 18, 19, 20, 21, 22, 23, 24, 27, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 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, 108, 109, 110, 111, 112, 113, 114, 115], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+const MERMAID_DOM_ID_PREFIX = "flowchart-";
+let vertexCounter = 0;
+let config = getConfig();
+let vertices = {};
+let edges = [];
+let classes = {};
+let subGraphs = [];
+let subGraphLookup = {};
+let tooltips = {};
+let subCount = 0;
+let firstGraphFlag = true;
+let direction;
+let version;
+let funs = [];
+const sanitizeText = (txt) => common.sanitizeText(txt, config);
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const lookUpDomId = function(id) {
+ const veritceKeys = Object.keys(vertices);
+ for (const veritceKey of veritceKeys) {
+ if (vertices[veritceKey].id === id) {
+ return vertices[veritceKey].domId;
+ }
+ }
+ return id;
+};
+const addVertex = function(_id, textObj, type, style, classes2, dir, props = {}) {
+ let txt;
+ let id = _id;
+ if (id === void 0) {
+ return;
+ }
+ if (id.trim().length === 0) {
+ return;
+ }
+ if (vertices[id] === void 0) {
+ vertices[id] = {
+ id,
+ labelType: "text",
+ domId: MERMAID_DOM_ID_PREFIX + id + "-" + vertexCounter,
+ styles: [],
+ classes: []
+ };
+ }
+ vertexCounter++;
+ if (textObj !== void 0) {
+ config = getConfig();
+ txt = sanitizeText(textObj.text.trim());
+ vertices[id].labelType = textObj.type;
+ if (txt[0] === '"' && txt[txt.length - 1] === '"') {
+ txt = txt.substring(1, txt.length - 1);
+ }
+ vertices[id].text = txt;
+ } else {
+ if (vertices[id].text === void 0) {
+ vertices[id].text = _id;
+ }
+ }
+ if (type !== void 0) {
+ vertices[id].type = type;
+ }
+ if (style !== void 0 && style !== null) {
+ style.forEach(function(s) {
+ vertices[id].styles.push(s);
+ });
+ }
+ if (classes2 !== void 0 && classes2 !== null) {
+ classes2.forEach(function(s) {
+ vertices[id].classes.push(s);
+ });
+ }
+ if (dir !== void 0) {
+ vertices[id].dir = dir;
+ }
+ if (vertices[id].props === void 0) {
+ vertices[id].props = props;
+ } else if (props !== void 0) {
+ Object.assign(vertices[id].props, props);
+ }
+};
+const addSingleLink = function(_start, _end, type) {
+ let start = _start;
+ let end = _end;
+ const edge = { start, end, type: void 0, text: "", labelType: "text" };
+ log.info("abc78 Got edge...", edge);
+ const linkTextObj = type.text;
+ if (linkTextObj !== void 0) {
+ edge.text = sanitizeText(linkTextObj.text.trim());
+ if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') {
+ edge.text = edge.text.substring(1, edge.text.length - 1);
+ }
+ edge.labelType = linkTextObj.type;
+ }
+ if (type !== void 0) {
+ edge.type = type.type;
+ edge.stroke = type.stroke;
+ edge.length = type.length;
+ }
+ edges.push(edge);
+};
+const addLink = function(_start, _end, type) {
+ log.info("addLink (abc78)", _start, _end, type);
+ let i, j;
+ for (i = 0; i < _start.length; i++) {
+ for (j = 0; j < _end.length; j++) {
+ addSingleLink(_start[i], _end[j], type);
+ }
+ }
+};
+const updateLinkInterpolate = function(positions, interp) {
+ positions.forEach(function(pos) {
+ if (pos === "default") {
+ edges.defaultInterpolate = interp;
+ } else {
+ edges[pos].interpolate = interp;
+ }
+ });
+};
+const updateLink = function(positions, style) {
+ positions.forEach(function(pos) {
+ if (pos === "default") {
+ edges.defaultStyle = style;
+ } else {
+ if (utils.isSubstringInArray("fill", style) === -1) {
+ style.push("fill:none");
+ }
+ edges[pos].style = style;
+ }
+ });
+};
+const addClass = function(id, style) {
+ if (classes[id] === void 0) {
+ classes[id] = { id, styles: [], textStyles: [] };
+ }
+ if (style !== void 0 && style !== null) {
+ style.forEach(function(s) {
+ if (s.match("color")) {
+ const newStyle1 = s.replace("fill", "bgFill");
+ const newStyle2 = newStyle1.replace("color", "fill");
+ classes[id].textStyles.push(newStyle2);
+ }
+ classes[id].styles.push(s);
+ });
+ }
+};
+const setDirection = function(dir) {
+ direction = dir;
+ if (direction.match(/.*)) {
+ direction = "RL";
+ }
+ if (direction.match(/.*\^/)) {
+ direction = "BT";
+ }
+ if (direction.match(/.*>/)) {
+ direction = "LR";
+ }
+ if (direction.match(/.*v/)) {
+ direction = "TB";
+ }
+ if (direction === "TD") {
+ direction = "TB";
+ }
+};
+const setClass = function(ids, className) {
+ ids.split(",").forEach(function(_id) {
+ let id = _id;
+ if (vertices[id] !== void 0) {
+ vertices[id].classes.push(className);
+ }
+ if (subGraphLookup[id] !== void 0) {
+ subGraphLookup[id].classes.push(className);
+ }
+ });
+};
+const setTooltip = function(ids, tooltip) {
+ ids.split(",").forEach(function(id) {
+ if (tooltip !== void 0) {
+ tooltips[version === "gen-1" ? lookUpDomId(id) : id] = sanitizeText(tooltip);
+ }
+ });
+};
+const setClickFun = function(id, functionName, functionArgs) {
+ let domId = lookUpDomId(id);
+ if (getConfig().securityLevel !== "loose") {
+ return;
+ }
+ if (functionName === void 0) {
+ return;
+ }
+ let argList = [];
+ if (typeof functionArgs === "string") {
+ argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let i = 0; i < argList.length; i++) {
+ let item = argList[i].trim();
+ if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
+ item = item.substr(1, item.length - 2);
+ }
+ argList[i] = item;
+ }
+ }
+ if (argList.length === 0) {
+ argList.push(id);
+ }
+ if (vertices[id] !== void 0) {
+ vertices[id].haveCallback = true;
+ funs.push(function() {
+ const elem = document.querySelector(`[id="${domId}"]`);
+ if (elem !== null) {
+ elem.addEventListener(
+ "click",
+ function() {
+ utils.runFunc(functionName, ...argList);
+ },
+ false
+ );
+ }
+ });
+ }
+};
+const setLink = function(ids, linkStr, target) {
+ ids.split(",").forEach(function(id) {
+ if (vertices[id] !== void 0) {
+ vertices[id].link = utils.formatUrl(linkStr, config);
+ vertices[id].linkTarget = target;
+ }
+ });
+ setClass(ids, "clickable");
+};
+const getTooltip = function(id) {
+ return tooltips[id];
+};
+const setClickEvent = function(ids, functionName, functionArgs) {
+ ids.split(",").forEach(function(id) {
+ setClickFun(id, functionName, functionArgs);
+ });
+ setClass(ids, "clickable");
+};
+const bindFunctions = function(element) {
+ funs.forEach(function(fun) {
+ fun(element);
+ });
+};
+const getDirection = function() {
+ return direction.trim();
+};
+const getVertices = function() {
+ return vertices;
+};
+const getEdges = function() {
+ return edges;
+};
+const getClasses = function() {
+ return classes;
+};
+const setupToolTips = function(element) {
+ let tooltipElem = select(".mermaidTooltip");
+ if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
+ tooltipElem = select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0);
+ }
+ const svg = select(element).select("svg");
+ const nodes = svg.selectAll("g.node");
+ nodes.on("mouseover", function() {
+ const el = select(this);
+ const title = el.attr("title");
+ if (title === null) {
+ return;
+ }
+ const rect = this.getBoundingClientRect();
+ tooltipElem.transition().duration(200).style("opacity", ".9");
+ tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect.left + (rect.right - rect.left) / 2 + "px").style("top", window.scrollY + rect.top - 14 + document.body.scrollTop + "px");
+ tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
"));
+ el.classed("hover", true);
+ }).on("mouseout", function() {
+ tooltipElem.transition().duration(500).style("opacity", 0);
+ const el = select(this);
+ el.classed("hover", false);
+ });
+};
+funs.push(setupToolTips);
+const clear = function(ver = "gen-1") {
+ vertices = {};
+ classes = {};
+ edges = [];
+ funs = [setupToolTips];
+ subGraphs = [];
+ subGraphLookup = {};
+ subCount = 0;
+ tooltips = [];
+ firstGraphFlag = true;
+ version = ver;
+ clear$1();
+};
+const setGen = (ver) => {
+ version = ver || "gen-2";
+};
+const defaultStyle = function() {
+ return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;";
+};
+const addSubGraph = function(_id, list, _title) {
+ let id = _id.text.trim();
+ let title = _title.text;
+ if (_id === _title && _title.text.match(/\s/)) {
+ id = void 0;
+ }
+ function uniq(a) {
+ const prims = { boolean: {}, number: {}, string: {} };
+ const objs = [];
+ let dir2;
+ const nodeList2 = a.filter(function(item) {
+ const type = typeof item;
+ if (item.stmt && item.stmt === "dir") {
+ dir2 = item.value;
+ return false;
+ }
+ if (item.trim() === "") {
+ return false;
+ }
+ if (type in prims) {
+ return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true;
+ } else {
+ return objs.includes(item) ? false : objs.push(item);
+ }
+ });
+ return { nodeList: nodeList2, dir: dir2 };
+ }
+ let nodeList = [];
+ const { nodeList: nl, dir } = uniq(nodeList.concat.apply(nodeList, list));
+ nodeList = nl;
+ if (version === "gen-1") {
+ for (let i = 0; i < nodeList.length; i++) {
+ nodeList[i] = lookUpDomId(nodeList[i]);
+ }
+ }
+ id = id || "subGraph" + subCount;
+ title = title || "";
+ title = sanitizeText(title);
+ subCount = subCount + 1;
+ const subGraph = {
+ id,
+ nodes: nodeList,
+ title: title.trim(),
+ classes: [],
+ dir,
+ labelType: _title.type
+ };
+ log.info("Adding", subGraph.id, subGraph.nodes, subGraph.dir);
+ subGraph.nodes = makeUniq(subGraph, subGraphs).nodes;
+ subGraphs.push(subGraph);
+ subGraphLookup[id] = subGraph;
+ return id;
+};
+const getPosForId = function(id) {
+ for (const [i, subGraph] of subGraphs.entries()) {
+ if (subGraph.id === id) {
+ return i;
+ }
+ }
+ return -1;
+};
+let secCount = -1;
+const posCrossRef = [];
+const indexNodes2 = function(id, pos) {
+ const nodes = subGraphs[pos].nodes;
+ secCount = secCount + 1;
+ if (secCount > 2e3) {
+ return;
+ }
+ posCrossRef[secCount] = pos;
+ if (subGraphs[pos].id === id) {
+ return {
+ result: true,
+ count: 0
+ };
+ }
+ let count = 0;
+ let posCount = 1;
+ while (count < nodes.length) {
+ const childPos = getPosForId(nodes[count]);
+ if (childPos >= 0) {
+ const res = indexNodes2(id, childPos);
+ if (res.result) {
+ return {
+ result: true,
+ count: posCount + res.count
+ };
+ } else {
+ posCount = posCount + res.count;
+ }
+ }
+ count = count + 1;
+ }
+ return {
+ result: false,
+ count: posCount
+ };
+};
+const getDepthFirstPos = function(pos) {
+ return posCrossRef[pos];
+};
+const indexNodes = function() {
+ secCount = -1;
+ if (subGraphs.length > 0) {
+ indexNodes2("none", subGraphs.length - 1);
+ }
+};
+const getSubGraphs = function() {
+ return subGraphs;
+};
+const firstGraph = () => {
+ if (firstGraphFlag) {
+ firstGraphFlag = false;
+ return true;
+ }
+ return false;
+};
+const destructStartLink = (_str) => {
+ let str = _str.trim();
+ let type = "arrow_open";
+ switch (str[0]) {
+ case "<":
+ type = "arrow_point";
+ str = str.slice(1);
+ break;
+ case "x":
+ type = "arrow_cross";
+ str = str.slice(1);
+ break;
+ case "o":
+ type = "arrow_circle";
+ str = str.slice(1);
+ break;
+ }
+ let stroke = "normal";
+ if (str.includes("=")) {
+ stroke = "thick";
+ }
+ if (str.includes(".")) {
+ stroke = "dotted";
+ }
+ return { type, stroke };
+};
+const countChar = (char, str) => {
+ const length = str.length;
+ let count = 0;
+ for (let i = 0; i < length; ++i) {
+ if (str[i] === char) {
+ ++count;
+ }
+ }
+ return count;
+};
+const destructEndLink = (_str) => {
+ const str = _str.trim();
+ let line = str.slice(0, -1);
+ let type = "arrow_open";
+ switch (str.slice(-1)) {
+ case "x":
+ type = "arrow_cross";
+ if (str[0] === "x") {
+ type = "double_" + type;
+ line = line.slice(1);
+ }
+ break;
+ case ">":
+ type = "arrow_point";
+ if (str[0] === "<") {
+ type = "double_" + type;
+ line = line.slice(1);
+ }
+ break;
+ case "o":
+ type = "arrow_circle";
+ if (str[0] === "o") {
+ type = "double_" + type;
+ line = line.slice(1);
+ }
+ break;
+ }
+ let stroke = "normal";
+ let length = line.length - 1;
+ if (line[0] === "=") {
+ stroke = "thick";
+ }
+ if (line[0] === "~") {
+ stroke = "invisible";
+ }
+ let dots = countChar(".", line);
+ if (dots) {
+ stroke = "dotted";
+ length = dots;
+ }
+ return { type, stroke, length };
+};
+const destructLink = (_str, _startStr) => {
+ const info = destructEndLink(_str);
+ let startInfo;
+ if (_startStr) {
+ startInfo = destructStartLink(_startStr);
+ if (startInfo.stroke !== info.stroke) {
+ return { type: "INVALID", stroke: "INVALID" };
+ }
+ if (startInfo.type === "arrow_open") {
+ startInfo.type = info.type;
+ } else {
+ if (startInfo.type !== info.type) {
+ return { type: "INVALID", stroke: "INVALID" };
+ }
+ startInfo.type = "double_" + startInfo.type;
+ }
+ if (startInfo.type === "double_arrow") {
+ startInfo.type = "double_arrow_point";
+ }
+ startInfo.length = info.length;
+ return startInfo;
+ }
+ return info;
+};
+const exists = (allSgs, _id) => {
+ let res = false;
+ allSgs.forEach((sg) => {
+ const pos = sg.nodes.indexOf(_id);
+ if (pos >= 0) {
+ res = true;
+ }
+ });
+ return res;
+};
+const makeUniq = (sg, allSubgraphs) => {
+ const res = [];
+ sg.nodes.forEach((_id, pos) => {
+ if (!exists(allSubgraphs, _id)) {
+ res.push(sg.nodes[pos]);
+ }
+ });
+ return { nodes: res };
+};
+const lex = {
+ firstGraph
+};
+const flowDb = {
+ parseDirective,
+ defaultConfig: () => defaultConfig.flowchart,
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ setAccDescription,
+ addVertex,
+ lookUpDomId,
+ addLink,
+ updateLinkInterpolate,
+ updateLink,
+ addClass,
+ setDirection,
+ setClass,
+ setTooltip,
+ getTooltip,
+ setClickEvent,
+ setLink,
+ bindFunctions,
+ getDirection,
+ getVertices,
+ getEdges,
+ getClasses,
+ clear,
+ setGen,
+ defaultStyle,
+ addSubGraph,
+ getDepthFirstPos,
+ indexNodes,
+ getSubGraphs,
+ destructLink,
+ lex,
+ exists,
+ makeUniq,
+ setDiagramTitle,
+ getDiagramTitle
+};
+const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ addClass,
+ addLink,
+ addSingleLink,
+ addSubGraph,
+ addVertex,
+ bindFunctions,
+ clear,
+ default: flowDb,
+ defaultStyle,
+ destructLink,
+ firstGraph,
+ getClasses,
+ getDepthFirstPos,
+ getDirection,
+ getEdges,
+ getSubGraphs,
+ getTooltip,
+ getVertices,
+ indexNodes,
+ lex,
+ lookUpDomId,
+ parseDirective,
+ setClass,
+ setClickEvent,
+ setDirection,
+ setGen,
+ setLink,
+ updateLink,
+ updateLinkInterpolate
+}, Symbol.toStringTag, { value: "Module" }));
+export {
+ db as d,
+ flowDb as f,
+ parser$1 as p
+};
+//# sourceMappingURL=flowDb-bb61b53c.js.map
diff --git a/scopegraphs-render-docs/doc/js/flowDiagram-3d69eb42.js b/scopegraphs-render-docs/doc/js/flowDiagram-3d69eb42.js
new file mode 100644
index 0000000..63ff593
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowDiagram-3d69eb42.js
@@ -0,0 +1,1285 @@
+import { p as parser$1, f as flowDb } from "./flowDb-bb61b53c.js";
+import { h as has, u as uniqueId, r as range, p as pick, l as layout, d as defaults, f as forEach, G as Graph } from "./layout-3ff13c4c.js";
+import { h as select, m as evaluate, g as getConfig, f as common, l as log } from "./commonDb-89160e91.js";
+import { a as applyStyle, b as addHtmlLabel, i as isSubgraph, c as applyTransition, e as edgeToId, d as applyClass, f as flowRendererV2, g as flowStyles } from "./styles-fd236c01.js";
+import { l as line } from "./line-fbe8f138.js";
+import { y as curveLinear, z as getStylesFromArray, A as interpolateToCurve, B as setupGraphViewbox } from "./utils-1aebe9b6.js";
+import { s as selectAll } from "./selectAll-7c7a6d44.js";
+import "./mermaidAPI-c841a67f.js";
+import "./index-c47ff54b.js";
+import "./edges-17d4be60.js";
+import "./createText-b0d5c0ec.js";
+import "./svgDraw-dd61ddfa.js";
+import "./array-b7dcf730.js";
+import "./constant-b644328d.js";
+function responseText(response) {
+ if (!response.ok)
+ throw new Error(response.status + " " + response.statusText);
+ return response.text();
+}
+function text(input, init) {
+ return fetch(input, init).then(responseText);
+}
+function parser(type) {
+ return (input, init) => text(input, init).then((text2) => new DOMParser().parseFromString(text2, type));
+}
+var svg = parser("image/svg+xml");
+var arrows = {
+ normal,
+ vee,
+ undirected
+};
+function setArrows(value) {
+ arrows = value;
+}
+function normal(parent, id, edge, type) {
+ var marker = parent.append("marker").attr("id", id).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
+ var path = marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ applyStyle(path, edge[type + "Style"]);
+ if (edge[type + "Class"]) {
+ path.attr("class", edge[type + "Class"]);
+ }
+}
+function vee(parent, id, edge, type) {
+ var marker = parent.append("marker").attr("id", id).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
+ var path = marker.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");
+ applyStyle(path, edge[type + "Style"]);
+ if (edge[type + "Class"]) {
+ path.attr("class", edge[type + "Class"]);
+ }
+}
+function undirected(parent, id, edge, type) {
+ var marker = parent.append("marker").attr("id", id).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
+ var path = marker.append("path").attr("d", "M 0 5 L 10 5").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ applyStyle(path, edge[type + "Style"]);
+ if (edge[type + "Class"]) {
+ path.attr("class", edge[type + "Class"]);
+ }
+}
+function addSVGLabel(root, node) {
+ var domNode = root;
+ domNode.node().appendChild(node.label);
+ applyStyle(domNode, node.labelStyle);
+ return domNode;
+}
+function addTextLabel(root, node) {
+ var domNode = root.append("text");
+ var lines = processEscapeSequences(node.label).split("\n");
+ for (var i = 0; i < lines.length; i++) {
+ domNode.append("tspan").attr("xml:space", "preserve").attr("dy", "1em").attr("x", "1").text(lines[i]);
+ }
+ applyStyle(domNode, node.labelStyle);
+ return domNode;
+}
+function processEscapeSequences(text2) {
+ var newText = "";
+ var escaped = false;
+ var ch;
+ for (var i = 0; i < text2.length; ++i) {
+ ch = text2[i];
+ if (escaped) {
+ switch (ch) {
+ case "n":
+ newText += "\n";
+ break;
+ default:
+ newText += ch;
+ }
+ escaped = false;
+ } else if (ch === "\\") {
+ escaped = true;
+ } else {
+ newText += ch;
+ }
+ }
+ return newText;
+}
+function addLabel(root, node, location2) {
+ var label = node.label;
+ var labelSvg = root.append("g");
+ if (node.labelType === "svg") {
+ addSVGLabel(labelSvg, node);
+ } else if (typeof label !== "string" || node.labelType === "html") {
+ addHtmlLabel(labelSvg, node);
+ } else {
+ addTextLabel(labelSvg, node);
+ }
+ var labelBBox = labelSvg.node().getBBox();
+ var y;
+ switch (location2) {
+ case "top":
+ y = -node.height / 2;
+ break;
+ case "bottom":
+ y = node.height / 2 - labelBBox.height;
+ break;
+ default:
+ y = -labelBBox.height / 2;
+ }
+ labelSvg.attr("transform", "translate(" + -labelBBox.width / 2 + "," + y + ")");
+ return labelSvg;
+}
+var createClusters = function(selection, g) {
+ var clusters = g.nodes().filter(function(v) {
+ return isSubgraph(g, v);
+ });
+ var svgClusters = selection.selectAll("g.cluster").data(clusters, function(v) {
+ return v;
+ });
+ applyTransition(svgClusters.exit(), g).style("opacity", 0).remove();
+ var enterSelection = svgClusters.enter().append("g").attr("class", "cluster").attr("id", function(v) {
+ var node = g.node(v);
+ return node.id;
+ }).style("opacity", 0).each(function(v) {
+ var node = g.node(v);
+ var thisGroup = select(this);
+ select(this).append("rect");
+ var labelGroup = thisGroup.append("g").attr("class", "label");
+ addLabel(labelGroup, node, node.clusterLabelPos);
+ });
+ svgClusters = svgClusters.merge(enterSelection);
+ svgClusters = applyTransition(svgClusters, g).style("opacity", 1);
+ svgClusters.selectAll("rect").each(function(c) {
+ var node = g.node(c);
+ var domCluster = select(this);
+ applyStyle(domCluster, node.style);
+ });
+ return svgClusters;
+};
+function setCreateClusters(value) {
+ createClusters = value;
+}
+let createEdgeLabels = function(selection, g) {
+ var svgEdgeLabels = selection.selectAll("g.edgeLabel").data(g.edges(), function(e) {
+ return edgeToId(e);
+ }).classed("update", true);
+ svgEdgeLabels.exit().remove();
+ svgEdgeLabels.enter().append("g").classed("edgeLabel", true).style("opacity", 0);
+ svgEdgeLabels = selection.selectAll("g.edgeLabel");
+ svgEdgeLabels.each(function(e) {
+ var root = select(this);
+ root.select(".label").remove();
+ var edge = g.edge(e);
+ var label = addLabel(root, g.edge(e), 0).classed("label", true);
+ var bbox = label.node().getBBox();
+ if (edge.labelId) {
+ label.attr("id", edge.labelId);
+ }
+ if (!has(edge, "width")) {
+ edge.width = bbox.width;
+ }
+ if (!has(edge, "height")) {
+ edge.height = bbox.height;
+ }
+ });
+ var exitSelection;
+ if (svgEdgeLabels.exit) {
+ exitSelection = svgEdgeLabels.exit();
+ } else {
+ exitSelection = svgEdgeLabels.selectAll(null);
+ }
+ applyTransition(exitSelection, g).style("opacity", 0).remove();
+ return svgEdgeLabels;
+};
+function setCreateEdgeLabels(value) {
+ createEdgeLabels = value;
+}
+function intersectNode(node, point) {
+ return node.intersect(point);
+}
+var createEdgePaths = function(selection, g, arrows2) {
+ var previousPaths = selection.selectAll("g.edgePath").data(g.edges(), function(e) {
+ return edgeToId(e);
+ }).classed("update", true);
+ var newPaths = enter(previousPaths, g);
+ exit(previousPaths, g);
+ var svgPaths = previousPaths.merge !== void 0 ? previousPaths.merge(newPaths) : previousPaths;
+ applyTransition(svgPaths, g).style("opacity", 1);
+ svgPaths.each(function(e) {
+ var domEdge = select(this);
+ var edge = g.edge(e);
+ edge.elem = this;
+ if (edge.id) {
+ domEdge.attr("id", edge.id);
+ }
+ applyClass(
+ domEdge,
+ edge["class"],
+ (domEdge.classed("update") ? "update " : "") + "edgePath"
+ );
+ });
+ svgPaths.selectAll("path.path").each(function(e) {
+ var edge = g.edge(e);
+ edge.arrowheadId = uniqueId("arrowhead");
+ var domEdge = select(this).attr("marker-end", function() {
+ return "url(" + makeFragmentRef(location.href, edge.arrowheadId) + ")";
+ }).style("fill", "none");
+ applyTransition(domEdge, g).attr("d", function(e2) {
+ return calcPoints(g, e2);
+ });
+ applyStyle(domEdge, edge.style);
+ });
+ svgPaths.selectAll("defs *").remove();
+ svgPaths.selectAll("defs").each(function(e) {
+ var edge = g.edge(e);
+ var arrowhead = arrows2[edge.arrowhead];
+ arrowhead(select(this), edge.arrowheadId, edge, "arrowhead");
+ });
+ return svgPaths;
+};
+function setCreateEdgePaths(value) {
+ createEdgePaths = value;
+}
+function makeFragmentRef(url, fragmentId) {
+ var baseUrl = url.split("#")[0];
+ return baseUrl + "#" + fragmentId;
+}
+function calcPoints(g, e) {
+ var edge = g.edge(e);
+ var tail = g.node(e.v);
+ var head = g.node(e.w);
+ var points = edge.points.slice(1, edge.points.length - 1);
+ points.unshift(intersectNode(tail, points[0]));
+ points.push(intersectNode(head, points[points.length - 1]));
+ return createLine(edge, points);
+}
+function createLine(edge, points) {
+ var line$1 = (line || svg.line)().x(function(d) {
+ return d.x;
+ }).y(function(d) {
+ return d.y;
+ });
+ (line$1.curve || line$1.interpolate)(edge.curve);
+ return line$1(points);
+}
+function getCoords(elem) {
+ var bbox = elem.getBBox();
+ var matrix = elem.ownerSVGElement.getScreenCTM().inverse().multiply(elem.getScreenCTM()).translate(bbox.width / 2, bbox.height / 2);
+ return { x: matrix.e, y: matrix.f };
+}
+function enter(svgPaths, g) {
+ var svgPathsEnter = svgPaths.enter().append("g").attr("class", "edgePath").style("opacity", 0);
+ svgPathsEnter.append("path").attr("class", "path").attr("d", function(e) {
+ var edge = g.edge(e);
+ var sourceElem = g.node(e.v).elem;
+ var points = range(edge.points.length).map(function() {
+ return getCoords(sourceElem);
+ });
+ return createLine(edge, points);
+ });
+ svgPathsEnter.append("defs");
+ return svgPathsEnter;
+}
+function exit(svgPaths, g) {
+ var svgPathExit = svgPaths.exit();
+ applyTransition(svgPathExit, g).style("opacity", 0).remove();
+}
+var createNodes = function(selection, g, shapes2) {
+ var simpleNodes = g.nodes().filter(function(v) {
+ return !isSubgraph(g, v);
+ });
+ var svgNodes = selection.selectAll("g.node").data(simpleNodes, function(v) {
+ return v;
+ }).classed("update", true);
+ svgNodes.exit().remove();
+ svgNodes.enter().append("g").attr("class", "node").style("opacity", 0);
+ svgNodes = selection.selectAll("g.node");
+ svgNodes.each(function(v) {
+ var node = g.node(v);
+ var thisGroup = select(this);
+ applyClass(
+ thisGroup,
+ node["class"],
+ (thisGroup.classed("update") ? "update " : "") + "node"
+ );
+ thisGroup.select("g.label").remove();
+ var labelGroup = thisGroup.append("g").attr("class", "label");
+ var labelDom = addLabel(labelGroup, node);
+ var shape = shapes2[node.shape];
+ var bbox = pick(labelDom.node().getBBox(), "width", "height");
+ node.elem = this;
+ if (node.id) {
+ thisGroup.attr("id", node.id);
+ }
+ if (node.labelId) {
+ labelGroup.attr("id", node.labelId);
+ }
+ if (has(node, "width")) {
+ bbox.width = node.width;
+ }
+ if (has(node, "height")) {
+ bbox.height = node.height;
+ }
+ bbox.width += node.paddingLeft + node.paddingRight;
+ bbox.height += node.paddingTop + node.paddingBottom;
+ labelGroup.attr(
+ "transform",
+ "translate(" + (node.paddingLeft - node.paddingRight) / 2 + "," + (node.paddingTop - node.paddingBottom) / 2 + ")"
+ );
+ var root = select(this);
+ root.select(".label-container").remove();
+ var shapeSvg = shape(root, bbox, node).classed("label-container", true);
+ applyStyle(shapeSvg, node.style);
+ var shapeBBox = shapeSvg.node().getBBox();
+ node.width = shapeBBox.width;
+ node.height = shapeBBox.height;
+ });
+ var exitSelection;
+ if (svgNodes.exit) {
+ exitSelection = svgNodes.exit();
+ } else {
+ exitSelection = svgNodes.selectAll(null);
+ }
+ applyTransition(exitSelection, g).style("opacity", 0).remove();
+ return svgNodes;
+};
+function setCreateNodes(value) {
+ createNodes = value;
+}
+function positionClusters(selection, g) {
+ var created = selection.filter(function() {
+ return !select(this).classed("update");
+ });
+ function translate(v) {
+ var node = g.node(v);
+ return "translate(" + node.x + "," + node.y + ")";
+ }
+ created.attr("transform", translate);
+ applyTransition(selection, g).style("opacity", 1).attr("transform", translate);
+ applyTransition(created.selectAll("rect"), g).attr("width", function(v) {
+ return g.node(v).width;
+ }).attr("height", function(v) {
+ return g.node(v).height;
+ }).attr("x", function(v) {
+ var node = g.node(v);
+ return -node.width / 2;
+ }).attr("y", function(v) {
+ var node = g.node(v);
+ return -node.height / 2;
+ });
+}
+function positionEdgeLabels(selection, g) {
+ var created = selection.filter(function() {
+ return !select(this).classed("update");
+ });
+ function translate(e) {
+ var edge = g.edge(e);
+ return has(edge, "x") ? "translate(" + edge.x + "," + edge.y + ")" : "";
+ }
+ created.attr("transform", translate);
+ applyTransition(selection, g).style("opacity", 1).attr("transform", translate);
+}
+function positionNodes(selection, g) {
+ var created = selection.filter(function() {
+ return !select(this).classed("update");
+ });
+ function translate(v) {
+ var node = g.node(v);
+ return "translate(" + node.x + "," + node.y + ")";
+ }
+ created.attr("transform", translate);
+ applyTransition(selection, g).style("opacity", 1).attr("transform", translate);
+}
+function intersectEllipse(node, rx, ry, point) {
+ var cx = node.x;
+ var cy = node.y;
+ var px = cx - point.x;
+ var py = cy - point.y;
+ var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
+ var dx = Math.abs(rx * ry * px / det);
+ if (point.x < cx) {
+ dx = -dx;
+ }
+ var dy = Math.abs(rx * ry * py / det);
+ if (point.y < cy) {
+ dy = -dy;
+ }
+ return { x: cx + dx, y: cy + dy };
+}
+function intersectCircle(node, rx, point) {
+ return intersectEllipse(node, rx, rx, point);
+}
+function intersectLine(p1, p2, q1, q2) {
+ var a1, a2, b1, b2, c1, c2;
+ var r1, r2, r3, r4;
+ var denom, offset, num;
+ var x, y;
+ a1 = p2.y - p1.y;
+ b1 = p1.x - p2.x;
+ c1 = p2.x * p1.y - p1.x * p2.y;
+ r3 = a1 * q1.x + b1 * q1.y + c1;
+ r4 = a1 * q2.x + b1 * q2.y + c1;
+ if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {
+ return;
+ }
+ a2 = q2.y - q1.y;
+ b2 = q1.x - q2.x;
+ c2 = q2.x * q1.y - q1.x * q2.y;
+ r1 = a2 * p1.x + b2 * p1.y + c2;
+ r2 = a2 * p2.x + b2 * p2.y + c2;
+ if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {
+ return;
+ }
+ denom = a1 * b2 - a2 * b1;
+ if (denom === 0) {
+ return;
+ }
+ offset = Math.abs(denom / 2);
+ num = b1 * c2 - b2 * c1;
+ x = num < 0 ? (num - offset) / denom : (num + offset) / denom;
+ num = a2 * c1 - a1 * c2;
+ y = num < 0 ? (num - offset) / denom : (num + offset) / denom;
+ return { x, y };
+}
+function sameSign(r1, r2) {
+ return r1 * r2 > 0;
+}
+function intersectPolygon(node, polyPoints, point) {
+ var x1 = node.x;
+ var y1 = node.y;
+ var intersections = [];
+ var minX = Number.POSITIVE_INFINITY;
+ var minY = Number.POSITIVE_INFINITY;
+ polyPoints.forEach(function(entry) {
+ minX = Math.min(minX, entry.x);
+ minY = Math.min(minY, entry.y);
+ });
+ var left = x1 - node.width / 2 - minX;
+ var top = y1 - node.height / 2 - minY;
+ for (var i = 0; i < polyPoints.length; i++) {
+ var p1 = polyPoints[i];
+ var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];
+ var intersect = intersectLine(
+ node,
+ point,
+ { x: left + p1.x, y: top + p1.y },
+ { x: left + p2.x, y: top + p2.y }
+ );
+ if (intersect) {
+ intersections.push(intersect);
+ }
+ }
+ if (!intersections.length) {
+ console.log("NO INTERSECTION FOUND, RETURN NODE CENTER", node);
+ return node;
+ }
+ if (intersections.length > 1) {
+ intersections.sort(function(p, q) {
+ var pdx = p.x - point.x;
+ var pdy = p.y - point.y;
+ var distp = Math.sqrt(pdx * pdx + pdy * pdy);
+ var qdx = q.x - point.x;
+ var qdy = q.y - point.y;
+ var distq = Math.sqrt(qdx * qdx + qdy * qdy);
+ return distp < distq ? -1 : distp === distq ? 0 : 1;
+ });
+ }
+ return intersections[0];
+}
+function intersectRect(node, point) {
+ var x = node.x;
+ var y = node.y;
+ var dx = point.x - x;
+ var dy = point.y - y;
+ var w = node.width / 2;
+ var h = node.height / 2;
+ var sx, sy;
+ if (Math.abs(dy) * w > Math.abs(dx) * h) {
+ if (dy < 0) {
+ h = -h;
+ }
+ sx = dy === 0 ? 0 : h * dx / dy;
+ sy = h;
+ } else {
+ if (dx < 0) {
+ w = -w;
+ }
+ sx = w;
+ sy = dx === 0 ? 0 : w * dy / dx;
+ }
+ return { x: x + sx, y: y + sy };
+}
+var shapes = {
+ rect,
+ ellipse,
+ circle,
+ diamond
+};
+function setShapes(value) {
+ shapes = value;
+}
+function rect(parent, bbox, node) {
+ var shapeSvg = parent.insert("rect", ":first-child").attr("rx", node.rx).attr("ry", node.ry).attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("width", bbox.width).attr("height", bbox.height);
+ node.intersect = function(point) {
+ return intersectRect(node, point);
+ };
+ return shapeSvg;
+}
+function ellipse(parent, bbox, node) {
+ var rx = bbox.width / 2;
+ var ry = bbox.height / 2;
+ var shapeSvg = parent.insert("ellipse", ":first-child").attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("rx", rx).attr("ry", ry);
+ node.intersect = function(point) {
+ return intersectEllipse(node, rx, ry, point);
+ };
+ return shapeSvg;
+}
+function circle(parent, bbox, node) {
+ var r = Math.max(bbox.width, bbox.height) / 2;
+ var shapeSvg = parent.insert("circle", ":first-child").attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("r", r);
+ node.intersect = function(point) {
+ return intersectCircle(node, r, point);
+ };
+ return shapeSvg;
+}
+function diamond(parent, bbox, node) {
+ var w = bbox.width * Math.SQRT2 / 2;
+ var h = bbox.height * Math.SQRT2 / 2;
+ var points = [
+ { x: 0, y: -h },
+ { x: -w, y: 0 },
+ { x: 0, y: h },
+ { x: w, y: 0 }
+ ];
+ var shapeSvg = parent.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(p) {
+ return p.x + "," + p.y;
+ }).join(" ")
+ );
+ node.intersect = function(p) {
+ return intersectPolygon(node, points, p);
+ };
+ return shapeSvg;
+}
+function render() {
+ var fn = function(svg2, g) {
+ preProcessGraph(g);
+ var outputGroup = createOrSelectGroup(svg2, "output");
+ var clustersGroup = createOrSelectGroup(outputGroup, "clusters");
+ var edgePathsGroup = createOrSelectGroup(outputGroup, "edgePaths");
+ var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, "edgeLabels"), g);
+ var nodes = createNodes(createOrSelectGroup(outputGroup, "nodes"), g, shapes);
+ layout(g);
+ positionNodes(nodes, g);
+ positionEdgeLabels(edgeLabels, g);
+ createEdgePaths(edgePathsGroup, g, arrows);
+ var clusters = createClusters(clustersGroup, g);
+ positionClusters(clusters, g);
+ postProcessGraph(g);
+ };
+ fn.createNodes = function(value) {
+ if (!arguments.length)
+ return createNodes;
+ setCreateNodes(value);
+ return fn;
+ };
+ fn.createClusters = function(value) {
+ if (!arguments.length)
+ return createClusters;
+ setCreateClusters(value);
+ return fn;
+ };
+ fn.createEdgeLabels = function(value) {
+ if (!arguments.length)
+ return createEdgeLabels;
+ setCreateEdgeLabels(value);
+ return fn;
+ };
+ fn.createEdgePaths = function(value) {
+ if (!arguments.length)
+ return createEdgePaths;
+ setCreateEdgePaths(value);
+ return fn;
+ };
+ fn.shapes = function(value) {
+ if (!arguments.length)
+ return shapes;
+ setShapes(value);
+ return fn;
+ };
+ fn.arrows = function(value) {
+ if (!arguments.length)
+ return arrows;
+ setArrows(value);
+ return fn;
+ };
+ return fn;
+}
+var NODE_DEFAULT_ATTRS = {
+ paddingLeft: 10,
+ paddingRight: 10,
+ paddingTop: 10,
+ paddingBottom: 10,
+ rx: 0,
+ ry: 0,
+ shape: "rect"
+};
+var EDGE_DEFAULT_ATTRS = {
+ arrowhead: "normal",
+ curve: curveLinear
+};
+function preProcessGraph(g) {
+ g.nodes().forEach(function(v) {
+ var node = g.node(v);
+ if (!has(node, "label") && !g.children(v).length) {
+ node.label = v;
+ }
+ if (has(node, "paddingX")) {
+ defaults(node, {
+ paddingLeft: node.paddingX,
+ paddingRight: node.paddingX
+ });
+ }
+ if (has(node, "paddingY")) {
+ defaults(node, {
+ paddingTop: node.paddingY,
+ paddingBottom: node.paddingY
+ });
+ }
+ if (has(node, "padding")) {
+ defaults(node, {
+ paddingLeft: node.padding,
+ paddingRight: node.padding,
+ paddingTop: node.padding,
+ paddingBottom: node.padding
+ });
+ }
+ defaults(node, NODE_DEFAULT_ATTRS);
+ forEach(["paddingLeft", "paddingRight", "paddingTop", "paddingBottom"], function(k) {
+ node[k] = Number(node[k]);
+ });
+ if (has(node, "width")) {
+ node._prevWidth = node.width;
+ }
+ if (has(node, "height")) {
+ node._prevHeight = node.height;
+ }
+ });
+ g.edges().forEach(function(e) {
+ var edge = g.edge(e);
+ if (!has(edge, "label")) {
+ edge.label = "";
+ }
+ defaults(edge, EDGE_DEFAULT_ATTRS);
+ });
+}
+function postProcessGraph(g) {
+ forEach(g.nodes(), function(v) {
+ var node = g.node(v);
+ if (has(node, "_prevWidth")) {
+ node.width = node._prevWidth;
+ } else {
+ delete node.width;
+ }
+ if (has(node, "_prevHeight")) {
+ node.height = node._prevHeight;
+ } else {
+ delete node.height;
+ }
+ delete node._prevWidth;
+ delete node._prevHeight;
+ });
+}
+function createOrSelectGroup(root, name) {
+ var selection = root.select("g." + name);
+ if (selection.empty()) {
+ selection = root.append("g").attr("class", name);
+ }
+ return selection;
+}
+function question(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const s = (w + h) * 0.9;
+ const points = [
+ { x: s / 2, y: 0 },
+ { x: s, y: -s / 2 },
+ { x: s / 2, y: -s },
+ { x: 0, y: -s / 2 }
+ ];
+ const shapeSvg = insertPolygonShape(parent, s, s, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function hexagon(parent, bbox, node) {
+ const f = 4;
+ const h = bbox.height;
+ const m = h / f;
+ const w = bbox.width + 2 * m;
+ const points = [
+ { x: m, y: 0 },
+ { x: w - m, y: 0 },
+ { x: w, y: -h / 2 },
+ { x: w - m, y: -h },
+ { x: m, y: -h },
+ { x: 0, y: -h / 2 }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function rect_left_inv_arrow(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: -h / 2, y: 0 },
+ { x: w, y: 0 },
+ { x: w, y: -h },
+ { x: -h / 2, y: -h },
+ { x: 0, y: -h / 2 }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function lean_right(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: -2 * h / 6, y: 0 },
+ { x: w - h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: -h },
+ { x: h / 6, y: -h }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function lean_left(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: 2 * h / 6, y: 0 },
+ { x: w + h / 6, y: 0 },
+ { x: w - 2 * h / 6, y: -h },
+ { x: -h / 6, y: -h }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function trapezoid(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: -2 * h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: 0 },
+ { x: w - h / 6, y: -h },
+ { x: h / 6, y: -h }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function inv_trapezoid(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: h / 6, y: 0 },
+ { x: w - h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: -h },
+ { x: -2 * h / 6, y: -h }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function rect_right_inv_arrow(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: 0, y: 0 },
+ { x: w + h / 2, y: 0 },
+ { x: w, y: -h / 2 },
+ { x: w + h / 2, y: -h },
+ { x: 0, y: -h }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function stadium(parent, bbox, node) {
+ const h = bbox.height;
+ const w = bbox.width + h / 4;
+ const shapeSvg = parent.insert("rect", ":first-child").attr("rx", h / 2).attr("ry", h / 2).attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h);
+ node.intersect = function(point) {
+ return intersectRect(node, point);
+ };
+ return shapeSvg;
+}
+function subroutine(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: 0, y: 0 },
+ { x: w, y: 0 },
+ { x: w, y: -h },
+ { x: 0, y: -h },
+ { x: 0, y: 0 },
+ { x: -8, y: 0 },
+ { x: w + 8, y: 0 },
+ { x: w + 8, y: -h },
+ { x: -8, y: -h },
+ { x: -8, y: 0 }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function cylinder(parent, bbox, node) {
+ const w = bbox.width;
+ const rx = w / 2;
+ const ry = rx / (2.5 + w / 50);
+ const h = bbox.height + ry;
+ const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 a " + rx + "," + ry + " 0,0,0 " + -w + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 l 0," + -h;
+ const shapeSvg = parent.attr("label-offset-y", ry).insert("path", ":first-child").attr("d", shape).attr("transform", "translate(" + -w / 2 + "," + -(h / 2 + ry) + ")");
+ node.intersect = function(point) {
+ const pos = intersectRect(node, point);
+ const x = pos.x - node.x;
+ if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {
+ let y = ry * ry * (1 - x * x / (rx * rx));
+ if (y != 0) {
+ y = Math.sqrt(y);
+ }
+ y = ry - y;
+ if (point.y - node.y > 0) {
+ y = -y;
+ }
+ pos.y += y;
+ }
+ return pos;
+ };
+ return shapeSvg;
+}
+function addToRender(render2) {
+ render2.shapes().question = question;
+ render2.shapes().hexagon = hexagon;
+ render2.shapes().stadium = stadium;
+ render2.shapes().subroutine = subroutine;
+ render2.shapes().cylinder = cylinder;
+ render2.shapes().rect_left_inv_arrow = rect_left_inv_arrow;
+ render2.shapes().lean_right = lean_right;
+ render2.shapes().lean_left = lean_left;
+ render2.shapes().trapezoid = trapezoid;
+ render2.shapes().inv_trapezoid = inv_trapezoid;
+ render2.shapes().rect_right_inv_arrow = rect_right_inv_arrow;
+}
+function addToRenderV2(addShape) {
+ addShape({ question });
+ addShape({ hexagon });
+ addShape({ stadium });
+ addShape({ subroutine });
+ addShape({ cylinder });
+ addShape({ rect_left_inv_arrow });
+ addShape({ lean_right });
+ addShape({ lean_left });
+ addShape({ trapezoid });
+ addShape({ inv_trapezoid });
+ addShape({ rect_right_inv_arrow });
+}
+function insertPolygonShape(parent, w, h, points) {
+ return parent.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d) {
+ return d.x + "," + d.y;
+ }).join(" ")
+ ).attr("transform", "translate(" + -w / 2 + "," + h / 2 + ")");
+}
+const flowChartShapes = {
+ addToRender,
+ addToRenderV2
+};
+const conf = {};
+const setConf = function(cnf) {
+ const keys = Object.keys(cnf);
+ for (const key of keys) {
+ conf[key] = cnf[key];
+ }
+};
+const addVertices = function(vert, g, svgId, root, _doc, diagObj) {
+ const svg2 = !root ? select(`[id="${svgId}"]`) : root.select(`[id="${svgId}"]`);
+ const doc = !_doc ? document : _doc;
+ const keys = Object.keys(vert);
+ keys.forEach(function(id) {
+ const vertex = vert[id];
+ let classStr = "default";
+ if (vertex.classes.length > 0) {
+ classStr = vertex.classes.join(" ");
+ }
+ const styles = getStylesFromArray(vertex.styles);
+ let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
+ let vertexNode;
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const node = {
+ label: vertexText.replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s) => ``
+ )
+ };
+ vertexNode = addHtmlLabel(svg2, node).node();
+ vertexNode.parentNode.removeChild(vertexNode);
+ } else {
+ const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("style", styles.labelStyle.replace("color:", "fill:"));
+ const rows = vertexText.split(common.lineBreakRegex);
+ for (const row of rows) {
+ const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
+ tspan.setAttribute("dy", "1em");
+ tspan.setAttribute("x", "1");
+ tspan.textContent = row;
+ svgLabel.appendChild(tspan);
+ }
+ vertexNode = svgLabel;
+ }
+ let radious = 0;
+ let _shape = "";
+ switch (vertex.type) {
+ case "round":
+ radious = 5;
+ _shape = "rect";
+ break;
+ case "square":
+ _shape = "rect";
+ break;
+ case "diamond":
+ _shape = "question";
+ break;
+ case "hexagon":
+ _shape = "hexagon";
+ break;
+ case "odd":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "lean_right":
+ _shape = "lean_right";
+ break;
+ case "lean_left":
+ _shape = "lean_left";
+ break;
+ case "trapezoid":
+ _shape = "trapezoid";
+ break;
+ case "inv_trapezoid":
+ _shape = "inv_trapezoid";
+ break;
+ case "odd_right":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "circle":
+ _shape = "circle";
+ break;
+ case "ellipse":
+ _shape = "ellipse";
+ break;
+ case "stadium":
+ _shape = "stadium";
+ break;
+ case "subroutine":
+ _shape = "subroutine";
+ break;
+ case "cylinder":
+ _shape = "cylinder";
+ break;
+ case "group":
+ _shape = "rect";
+ break;
+ default:
+ _shape = "rect";
+ }
+ log.warn("Adding node", vertex.id, vertex.domId);
+ g.setNode(diagObj.db.lookUpDomId(vertex.id), {
+ labelType: "svg",
+ labelStyle: styles.labelStyle,
+ shape: _shape,
+ label: vertexNode,
+ rx: radious,
+ ry: radious,
+ class: classStr,
+ style: styles.style,
+ id: diagObj.db.lookUpDomId(vertex.id)
+ });
+ });
+};
+const addEdges = function(edges, g, diagObj) {
+ let cnt = 0;
+ let defaultStyle;
+ let defaultLabelStyle;
+ if (edges.defaultStyle !== void 0) {
+ const defaultStyles = getStylesFromArray(edges.defaultStyle);
+ defaultStyle = defaultStyles.style;
+ defaultLabelStyle = defaultStyles.labelStyle;
+ }
+ edges.forEach(function(edge) {
+ cnt++;
+ var linkId = "L-" + edge.start + "-" + edge.end;
+ var linkNameStart = "LS-" + edge.start;
+ var linkNameEnd = "LE-" + edge.end;
+ const edgeData = {};
+ if (edge.type === "arrow_open") {
+ edgeData.arrowhead = "none";
+ } else {
+ edgeData.arrowhead = "normal";
+ }
+ let style = "";
+ let labelStyle = "";
+ if (edge.style !== void 0) {
+ const styles = getStylesFromArray(edge.style);
+ style = styles.style;
+ labelStyle = styles.labelStyle;
+ } else {
+ switch (edge.stroke) {
+ case "normal":
+ style = "fill:none";
+ if (defaultStyle !== void 0) {
+ style = defaultStyle;
+ }
+ if (defaultLabelStyle !== void 0) {
+ labelStyle = defaultLabelStyle;
+ }
+ break;
+ case "dotted":
+ style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
+ break;
+ case "thick":
+ style = " stroke-width: 3.5px;fill:none";
+ break;
+ }
+ }
+ edgeData.style = style;
+ edgeData.labelStyle = labelStyle;
+ if (edge.interpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
+ } else if (edges.defaultInterpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);
+ } else {
+ edgeData.curve = interpolateToCurve(conf.curve, curveLinear);
+ }
+ if (edge.text === void 0) {
+ if (edge.style !== void 0) {
+ edgeData.arrowheadStyle = "fill: #333";
+ }
+ } else {
+ edgeData.arrowheadStyle = "fill: #333";
+ edgeData.labelpos = "c";
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ edgeData.labelType = "html";
+ edgeData.label = `${edge.text.replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s) => ``
+ )}`;
+ } else {
+ edgeData.labelType = "text";
+ edgeData.label = edge.text.replace(common.lineBreakRegex, "\n");
+ if (edge.style === void 0) {
+ edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none";
+ }
+ edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
+ }
+ }
+ edgeData.id = linkId;
+ edgeData.class = linkNameStart + " " + linkNameEnd;
+ edgeData.minlen = edge.length || 1;
+ g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt);
+ });
+};
+const getClasses = function(text2, diagObj) {
+ log.info("Extracting classes");
+ diagObj.db.clear();
+ try {
+ diagObj.parse(text2);
+ return diagObj.db.getClasses();
+ } catch (e) {
+ log.error(e);
+ return {};
+ }
+};
+const draw = function(text2, id, _version, diagObj) {
+ log.info("Drawing flowchart");
+ diagObj.db.clear();
+ const { securityLevel, flowchart: conf2 } = getConfig();
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ try {
+ diagObj.parser.parse(text2);
+ } catch (err) {
+ log.debug("Parsing failed");
+ }
+ let dir = diagObj.db.getDirection();
+ if (dir === void 0) {
+ dir = "TD";
+ }
+ const nodeSpacing = conf2.nodeSpacing || 50;
+ const rankSpacing = conf2.rankSpacing || 50;
+ const g = new Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: dir,
+ nodesep: nodeSpacing,
+ ranksep: rankSpacing,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ let subG;
+ const subGraphs = diagObj.db.getSubGraphs();
+ for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {
+ subG = subGraphs[i2];
+ diagObj.db.addVertex(subG.id, subG.title, "group", void 0, subG.classes);
+ }
+ const vert = diagObj.db.getVertices();
+ log.warn("Get vertices", vert);
+ const edges = diagObj.db.getEdges();
+ let i = 0;
+ for (i = subGraphs.length - 1; i >= 0; i--) {
+ subG = subGraphs[i];
+ selectAll("cluster").append("text");
+ for (let j = 0; j < subG.nodes.length; j++) {
+ log.warn(
+ "Setting subgraph",
+ subG.nodes[j],
+ diagObj.db.lookUpDomId(subG.nodes[j]),
+ diagObj.db.lookUpDomId(subG.id)
+ );
+ g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id));
+ }
+ }
+ addVertices(vert, g, id, root, doc, diagObj);
+ addEdges(edges, g, diagObj);
+ const render$1 = new render();
+ flowChartShapes.addToRender(render$1);
+ render$1.arrows().none = function normal2(parent, id2, edge, type) {
+ const marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
+ const path = marker.append("path").attr("d", "M 0 0 L 0 0 L 0 0 z");
+ applyStyle(path, edge[type + "Style"]);
+ };
+ render$1.arrows().normal = function normal2(parent, id2) {
+ const marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
+ marker.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");
+ };
+ const svg2 = root.select(`[id="${id}"]`);
+ const element = root.select("#" + id + " g");
+ render$1(element, g);
+ element.selectAll("g.node").attr("title", function() {
+ return diagObj.db.getTooltip(this.id);
+ });
+ diagObj.db.indexNodes("subGraph" + i);
+ for (i = 0; i < subGraphs.length; i++) {
+ subG = subGraphs[i];
+ if (subG.title !== "undefined") {
+ const clusterRects = doc.querySelectorAll(
+ "#" + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"] rect'
+ );
+ const clusterEl = doc.querySelectorAll(
+ "#" + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"]'
+ );
+ const xPos = clusterRects[0].x.baseVal.value;
+ const yPos = clusterRects[0].y.baseVal.value;
+ const _width = clusterRects[0].width.baseVal.value;
+ const cluster = select(clusterEl[0]);
+ const te = cluster.select(".label");
+ te.attr("transform", `translate(${xPos + _width / 2}, ${yPos + 14})`);
+ te.attr("id", id + "Text");
+ for (let j = 0; j < subG.classes.length; j++) {
+ clusterEl[0].classList.add(subG.classes[j]);
+ }
+ }
+ }
+ if (!conf2.htmlLabels) {
+ const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
+ for (const label of labels) {
+ const dim = label.getBBox();
+ const rect2 = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
+ rect2.setAttribute("rx", 0);
+ rect2.setAttribute("ry", 0);
+ rect2.setAttribute("width", dim.width);
+ rect2.setAttribute("height", dim.height);
+ label.insertBefore(rect2, label.firstChild);
+ }
+ }
+ setupGraphViewbox(g, svg2, conf2.diagramPadding, conf2.useMaxWidth);
+ const keys = Object.keys(vert);
+ keys.forEach(function(key) {
+ const vertex = vert[key];
+ if (vertex.link) {
+ const node = root.select("#" + id + ' [id="' + diagObj.db.lookUpDomId(key) + '"]');
+ if (node) {
+ const link = doc.createElementNS("http://www.w3.org/2000/svg", "a");
+ link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" "));
+ link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link);
+ link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener");
+ if (securityLevel === "sandbox") {
+ link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top");
+ } else if (vertex.linkTarget) {
+ link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget);
+ }
+ const linkNode = node.insert(function() {
+ return link;
+ }, ":first-child");
+ const shape = node.select(".label-container");
+ if (shape) {
+ linkNode.append(function() {
+ return shape.node();
+ });
+ }
+ const label = node.select(".label");
+ if (label) {
+ linkNode.append(function() {
+ return label.node();
+ });
+ }
+ }
+ }
+ });
+};
+const flowRenderer = {
+ setConf,
+ addVertices,
+ addEdges,
+ getClasses,
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db: flowDb,
+ renderer: flowRendererV2,
+ styles: flowStyles,
+ init: (cnf) => {
+ if (!cnf.flowchart) {
+ cnf.flowchart = {};
+ }
+ cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ flowRenderer.setConf(cnf.flowchart);
+ flowDb.clear();
+ flowDb.setGen("gen-1");
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=flowDiagram-3d69eb42.js.map
diff --git a/scopegraphs-render-docs/doc/js/flowDiagram-46a15f6f.js b/scopegraphs-render-docs/doc/js/flowDiagram-46a15f6f.js
new file mode 100644
index 0000000..83bbb8d
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowDiagram-46a15f6f.js
@@ -0,0 +1,621 @@
+import { p as parser, f as flowDb } from "./flowDb-52e24d17.js";
+import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
+import { select, curveLinear, selectAll } from "d3";
+import { k as evaluate, g as getConfig, e as common, l as log } from "./commonDb-573409be.js";
+import { render } from "dagre-d3-es";
+import { applyStyle } from "dagre-d3-es/src/dagre-js/util.js";
+import { addHtmlLabel } from "dagre-d3-es/src/dagre-js/label/add-html-label.js";
+import { n as getStylesFromArray, o as interpolateToCurve, s as setupGraphViewbox } from "./utils-d622194a.js";
+import { intersectPolygon } from "dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js";
+import { intersectRect } from "dagre-d3-es/src/dagre-js/intersect/intersect-rect.js";
+import { f as flowRendererV2, a as flowStyles } from "./styles-26373982.js";
+import "./mermaidAPI-3ae0f2f0.js";
+import "stylis";
+import "dompurify";
+import "lodash-es/isEmpty.js";
+import "dayjs";
+import "khroma";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+import "./index-5219d011.js";
+import "dagre-d3-es/src/dagre/index.js";
+import "dagre-d3-es/src/graphlib/json.js";
+import "./edges-2e77835f.js";
+import "./createText-1f5f8f92.js";
+import "@khanacademy/simple-markdown";
+import "./svgDraw-2526cba0.js";
+function question(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const s = (w + h) * 0.9;
+ const points = [
+ { x: s / 2, y: 0 },
+ { x: s, y: -s / 2 },
+ { x: s / 2, y: -s },
+ { x: 0, y: -s / 2 }
+ ];
+ const shapeSvg = insertPolygonShape(parent, s, s, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function hexagon(parent, bbox, node) {
+ const f = 4;
+ const h = bbox.height;
+ const m = h / f;
+ const w = bbox.width + 2 * m;
+ const points = [
+ { x: m, y: 0 },
+ { x: w - m, y: 0 },
+ { x: w, y: -h / 2 },
+ { x: w - m, y: -h },
+ { x: m, y: -h },
+ { x: 0, y: -h / 2 }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function rect_left_inv_arrow(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: -h / 2, y: 0 },
+ { x: w, y: 0 },
+ { x: w, y: -h },
+ { x: -h / 2, y: -h },
+ { x: 0, y: -h / 2 }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function lean_right(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: -2 * h / 6, y: 0 },
+ { x: w - h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: -h },
+ { x: h / 6, y: -h }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function lean_left(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: 2 * h / 6, y: 0 },
+ { x: w + h / 6, y: 0 },
+ { x: w - 2 * h / 6, y: -h },
+ { x: -h / 6, y: -h }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function trapezoid(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: -2 * h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: 0 },
+ { x: w - h / 6, y: -h },
+ { x: h / 6, y: -h }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function inv_trapezoid(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: h / 6, y: 0 },
+ { x: w - h / 6, y: 0 },
+ { x: w + 2 * h / 6, y: -h },
+ { x: -2 * h / 6, y: -h }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function rect_right_inv_arrow(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: 0, y: 0 },
+ { x: w + h / 2, y: 0 },
+ { x: w, y: -h / 2 },
+ { x: w + h / 2, y: -h },
+ { x: 0, y: -h }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function stadium(parent, bbox, node) {
+ const h = bbox.height;
+ const w = bbox.width + h / 4;
+ const shapeSvg = parent.insert("rect", ":first-child").attr("rx", h / 2).attr("ry", h / 2).attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h);
+ node.intersect = function(point) {
+ return intersectRect(node, point);
+ };
+ return shapeSvg;
+}
+function subroutine(parent, bbox, node) {
+ const w = bbox.width;
+ const h = bbox.height;
+ const points = [
+ { x: 0, y: 0 },
+ { x: w, y: 0 },
+ { x: w, y: -h },
+ { x: 0, y: -h },
+ { x: 0, y: 0 },
+ { x: -8, y: 0 },
+ { x: w + 8, y: 0 },
+ { x: w + 8, y: -h },
+ { x: -8, y: -h },
+ { x: -8, y: 0 }
+ ];
+ const shapeSvg = insertPolygonShape(parent, w, h, points);
+ node.intersect = function(point) {
+ return intersectPolygon(node, points, point);
+ };
+ return shapeSvg;
+}
+function cylinder(parent, bbox, node) {
+ const w = bbox.width;
+ const rx = w / 2;
+ const ry = rx / (2.5 + w / 50);
+ const h = bbox.height + ry;
+ const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 a " + rx + "," + ry + " 0,0,0 " + -w + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 l 0," + -h;
+ const shapeSvg = parent.attr("label-offset-y", ry).insert("path", ":first-child").attr("d", shape).attr("transform", "translate(" + -w / 2 + "," + -(h / 2 + ry) + ")");
+ node.intersect = function(point) {
+ const pos = intersectRect(node, point);
+ const x = pos.x - node.x;
+ if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {
+ let y = ry * ry * (1 - x * x / (rx * rx));
+ if (y != 0) {
+ y = Math.sqrt(y);
+ }
+ y = ry - y;
+ if (point.y - node.y > 0) {
+ y = -y;
+ }
+ pos.y += y;
+ }
+ return pos;
+ };
+ return shapeSvg;
+}
+function addToRender(render2) {
+ render2.shapes().question = question;
+ render2.shapes().hexagon = hexagon;
+ render2.shapes().stadium = stadium;
+ render2.shapes().subroutine = subroutine;
+ render2.shapes().cylinder = cylinder;
+ render2.shapes().rect_left_inv_arrow = rect_left_inv_arrow;
+ render2.shapes().lean_right = lean_right;
+ render2.shapes().lean_left = lean_left;
+ render2.shapes().trapezoid = trapezoid;
+ render2.shapes().inv_trapezoid = inv_trapezoid;
+ render2.shapes().rect_right_inv_arrow = rect_right_inv_arrow;
+}
+function addToRenderV2(addShape) {
+ addShape({ question });
+ addShape({ hexagon });
+ addShape({ stadium });
+ addShape({ subroutine });
+ addShape({ cylinder });
+ addShape({ rect_left_inv_arrow });
+ addShape({ lean_right });
+ addShape({ lean_left });
+ addShape({ trapezoid });
+ addShape({ inv_trapezoid });
+ addShape({ rect_right_inv_arrow });
+}
+function insertPolygonShape(parent, w, h, points) {
+ return parent.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d) {
+ return d.x + "," + d.y;
+ }).join(" ")
+ ).attr("transform", "translate(" + -w / 2 + "," + h / 2 + ")");
+}
+const flowChartShapes = {
+ addToRender,
+ addToRenderV2
+};
+const conf = {};
+const setConf = function(cnf) {
+ const keys = Object.keys(cnf);
+ for (const key of keys) {
+ conf[key] = cnf[key];
+ }
+};
+const addVertices = function(vert, g, svgId, root, _doc, diagObj) {
+ const svg = !root ? select(`[id="${svgId}"]`) : root.select(`[id="${svgId}"]`);
+ const doc = !_doc ? document : _doc;
+ const keys = Object.keys(vert);
+ keys.forEach(function(id) {
+ const vertex = vert[id];
+ let classStr = "default";
+ if (vertex.classes.length > 0) {
+ classStr = vertex.classes.join(" ");
+ }
+ const styles = getStylesFromArray(vertex.styles);
+ let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
+ let vertexNode;
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const node = {
+ label: vertexText.replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s) => ``
+ )
+ };
+ vertexNode = addHtmlLabel(svg, node).node();
+ vertexNode.parentNode.removeChild(vertexNode);
+ } else {
+ const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("style", styles.labelStyle.replace("color:", "fill:"));
+ const rows = vertexText.split(common.lineBreakRegex);
+ for (const row of rows) {
+ const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
+ tspan.setAttribute("dy", "1em");
+ tspan.setAttribute("x", "1");
+ tspan.textContent = row;
+ svgLabel.appendChild(tspan);
+ }
+ vertexNode = svgLabel;
+ }
+ let radious = 0;
+ let _shape = "";
+ switch (vertex.type) {
+ case "round":
+ radious = 5;
+ _shape = "rect";
+ break;
+ case "square":
+ _shape = "rect";
+ break;
+ case "diamond":
+ _shape = "question";
+ break;
+ case "hexagon":
+ _shape = "hexagon";
+ break;
+ case "odd":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "lean_right":
+ _shape = "lean_right";
+ break;
+ case "lean_left":
+ _shape = "lean_left";
+ break;
+ case "trapezoid":
+ _shape = "trapezoid";
+ break;
+ case "inv_trapezoid":
+ _shape = "inv_trapezoid";
+ break;
+ case "odd_right":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "circle":
+ _shape = "circle";
+ break;
+ case "ellipse":
+ _shape = "ellipse";
+ break;
+ case "stadium":
+ _shape = "stadium";
+ break;
+ case "subroutine":
+ _shape = "subroutine";
+ break;
+ case "cylinder":
+ _shape = "cylinder";
+ break;
+ case "group":
+ _shape = "rect";
+ break;
+ default:
+ _shape = "rect";
+ }
+ log.warn("Adding node", vertex.id, vertex.domId);
+ g.setNode(diagObj.db.lookUpDomId(vertex.id), {
+ labelType: "svg",
+ labelStyle: styles.labelStyle,
+ shape: _shape,
+ label: vertexNode,
+ rx: radious,
+ ry: radious,
+ class: classStr,
+ style: styles.style,
+ id: diagObj.db.lookUpDomId(vertex.id)
+ });
+ });
+};
+const addEdges = function(edges, g, diagObj) {
+ let cnt = 0;
+ let defaultStyle;
+ let defaultLabelStyle;
+ if (edges.defaultStyle !== void 0) {
+ const defaultStyles = getStylesFromArray(edges.defaultStyle);
+ defaultStyle = defaultStyles.style;
+ defaultLabelStyle = defaultStyles.labelStyle;
+ }
+ edges.forEach(function(edge) {
+ cnt++;
+ var linkId = "L-" + edge.start + "-" + edge.end;
+ var linkNameStart = "LS-" + edge.start;
+ var linkNameEnd = "LE-" + edge.end;
+ const edgeData = {};
+ if (edge.type === "arrow_open") {
+ edgeData.arrowhead = "none";
+ } else {
+ edgeData.arrowhead = "normal";
+ }
+ let style = "";
+ let labelStyle = "";
+ if (edge.style !== void 0) {
+ const styles = getStylesFromArray(edge.style);
+ style = styles.style;
+ labelStyle = styles.labelStyle;
+ } else {
+ switch (edge.stroke) {
+ case "normal":
+ style = "fill:none";
+ if (defaultStyle !== void 0) {
+ style = defaultStyle;
+ }
+ if (defaultLabelStyle !== void 0) {
+ labelStyle = defaultLabelStyle;
+ }
+ break;
+ case "dotted":
+ style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
+ break;
+ case "thick":
+ style = " stroke-width: 3.5px;fill:none";
+ break;
+ }
+ }
+ edgeData.style = style;
+ edgeData.labelStyle = labelStyle;
+ if (edge.interpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
+ } else if (edges.defaultInterpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);
+ } else {
+ edgeData.curve = interpolateToCurve(conf.curve, curveLinear);
+ }
+ if (edge.text === void 0) {
+ if (edge.style !== void 0) {
+ edgeData.arrowheadStyle = "fill: #333";
+ }
+ } else {
+ edgeData.arrowheadStyle = "fill: #333";
+ edgeData.labelpos = "c";
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ edgeData.labelType = "html";
+ edgeData.label = `${edge.text.replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s) => ``
+ )}`;
+ } else {
+ edgeData.labelType = "text";
+ edgeData.label = edge.text.replace(common.lineBreakRegex, "\n");
+ if (edge.style === void 0) {
+ edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none";
+ }
+ edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
+ }
+ }
+ edgeData.id = linkId;
+ edgeData.class = linkNameStart + " " + linkNameEnd;
+ edgeData.minlen = edge.length || 1;
+ g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt);
+ });
+};
+const getClasses = function(text, diagObj) {
+ log.info("Extracting classes");
+ diagObj.db.clear();
+ try {
+ diagObj.parse(text);
+ return diagObj.db.getClasses();
+ } catch (e) {
+ log.error(e);
+ return {};
+ }
+};
+const draw = function(text, id, _version, diagObj) {
+ log.info("Drawing flowchart");
+ diagObj.db.clear();
+ const { securityLevel, flowchart: conf2 } = getConfig();
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ try {
+ diagObj.parser.parse(text);
+ } catch (err) {
+ log.debug("Parsing failed");
+ }
+ let dir = diagObj.db.getDirection();
+ if (dir === void 0) {
+ dir = "TD";
+ }
+ const nodeSpacing = conf2.nodeSpacing || 50;
+ const rankSpacing = conf2.rankSpacing || 50;
+ const g = new graphlib.Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: dir,
+ nodesep: nodeSpacing,
+ ranksep: rankSpacing,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ let subG;
+ const subGraphs = diagObj.db.getSubGraphs();
+ for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {
+ subG = subGraphs[i2];
+ diagObj.db.addVertex(subG.id, subG.title, "group", void 0, subG.classes);
+ }
+ const vert = diagObj.db.getVertices();
+ log.warn("Get vertices", vert);
+ const edges = diagObj.db.getEdges();
+ let i = 0;
+ for (i = subGraphs.length - 1; i >= 0; i--) {
+ subG = subGraphs[i];
+ selectAll("cluster").append("text");
+ for (let j = 0; j < subG.nodes.length; j++) {
+ log.warn(
+ "Setting subgraph",
+ subG.nodes[j],
+ diagObj.db.lookUpDomId(subG.nodes[j]),
+ diagObj.db.lookUpDomId(subG.id)
+ );
+ g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id));
+ }
+ }
+ addVertices(vert, g, id, root, doc, diagObj);
+ addEdges(edges, g, diagObj);
+ const render$1 = new render();
+ flowChartShapes.addToRender(render$1);
+ render$1.arrows().none = function normal(parent, id2, edge, type) {
+ const marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
+ const path = marker.append("path").attr("d", "M 0 0 L 0 0 L 0 0 z");
+ applyStyle(path, edge[type + "Style"]);
+ };
+ render$1.arrows().normal = function normal(parent, id2) {
+ const marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
+ marker.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");
+ };
+ const svg = root.select(`[id="${id}"]`);
+ const element = root.select("#" + id + " g");
+ render$1(element, g);
+ element.selectAll("g.node").attr("title", function() {
+ return diagObj.db.getTooltip(this.id);
+ });
+ diagObj.db.indexNodes("subGraph" + i);
+ for (i = 0; i < subGraphs.length; i++) {
+ subG = subGraphs[i];
+ if (subG.title !== "undefined") {
+ const clusterRects = doc.querySelectorAll(
+ "#" + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"] rect'
+ );
+ const clusterEl = doc.querySelectorAll(
+ "#" + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"]'
+ );
+ const xPos = clusterRects[0].x.baseVal.value;
+ const yPos = clusterRects[0].y.baseVal.value;
+ const _width = clusterRects[0].width.baseVal.value;
+ const cluster = select(clusterEl[0]);
+ const te = cluster.select(".label");
+ te.attr("transform", `translate(${xPos + _width / 2}, ${yPos + 14})`);
+ te.attr("id", id + "Text");
+ for (let j = 0; j < subG.classes.length; j++) {
+ clusterEl[0].classList.add(subG.classes[j]);
+ }
+ }
+ }
+ if (!conf2.htmlLabels) {
+ const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
+ for (const label of labels) {
+ const dim = label.getBBox();
+ const rect = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
+ rect.setAttribute("rx", 0);
+ rect.setAttribute("ry", 0);
+ rect.setAttribute("width", dim.width);
+ rect.setAttribute("height", dim.height);
+ label.insertBefore(rect, label.firstChild);
+ }
+ }
+ setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth);
+ const keys = Object.keys(vert);
+ keys.forEach(function(key) {
+ const vertex = vert[key];
+ if (vertex.link) {
+ const node = root.select("#" + id + ' [id="' + diagObj.db.lookUpDomId(key) + '"]');
+ if (node) {
+ const link = doc.createElementNS("http://www.w3.org/2000/svg", "a");
+ link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" "));
+ link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link);
+ link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener");
+ if (securityLevel === "sandbox") {
+ link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top");
+ } else if (vertex.linkTarget) {
+ link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget);
+ }
+ const linkNode = node.insert(function() {
+ return link;
+ }, ":first-child");
+ const shape = node.select(".label-container");
+ if (shape) {
+ linkNode.append(function() {
+ return shape.node();
+ });
+ }
+ const label = node.select(".label");
+ if (label) {
+ linkNode.append(function() {
+ return label.node();
+ });
+ }
+ }
+ }
+ });
+};
+const flowRenderer = {
+ setConf,
+ addVertices,
+ addEdges,
+ getClasses,
+ draw
+};
+const diagram = {
+ parser,
+ db: flowDb,
+ renderer: flowRendererV2,
+ styles: flowStyles,
+ init: (cnf) => {
+ if (!cnf.flowchart) {
+ cnf.flowchart = {};
+ }
+ cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ flowRenderer.setConf(cnf.flowchart);
+ flowDb.clear();
+ flowDb.setGen("gen-1");
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=flowDiagram-46a15f6f.js.map
diff --git a/scopegraphs-render-docs/doc/js/flowDiagram-7d05970f.js b/scopegraphs-render-docs/doc/js/flowDiagram-7d05970f.js
new file mode 100644
index 0000000..79dcb90
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowDiagram-7d05970f.js
@@ -0,0 +1,802 @@
+import { p as St, f as $ } from "./flowDb-39497bf7.js";
+import { h as S, u as Lt, r as Et, p as _t, l as Tt, d as D, f as tt, G as At } from "./layout-492ec81d.js";
+import { h as x, m as et, g as J, f as rt, l as I } from "./commonDb-41f8b4c5.js";
+import { a as A, b as at, i as nt, c as _, e as st, d as it, f as Nt, g as Ct } from "./styles-3ce90e7a.js";
+import { l as It } from "./line-05ccbb85.js";
+import { y as G, z as V, A as z, B as Bt } from "./utils-8ea37061.js";
+import { s as Mt } from "./selectAll-4d781168.js";
+import "./mermaidAPI-67f627de.js";
+import "./index-6271e032.js";
+import "./edges-de377bae.js";
+import "./createText-23817c58.js";
+import "./svgDraw-0a992cdb.js";
+import "./array-2ff2c7a6.js";
+import "./constant-2fe7eae5.js";
+function Dt(r) {
+ if (!r.ok)
+ throw new Error(r.status + " " + r.statusText);
+ return r.text();
+}
+function Pt(r, e) {
+ return fetch(r, e).then(Dt);
+}
+function Rt(r) {
+ return (e, t) => Pt(e, t).then((n) => new DOMParser().parseFromString(n, r));
+}
+var Gt = Rt("image/svg+xml"), Y = {
+ normal: Wt,
+ vee: $t,
+ undirected: zt
+};
+function Ut(r) {
+ Y = r;
+}
+function Wt(r, e, t, n) {
+ var a = r.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"), s = a.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ A(s, t[n + "Style"]), t[n + "Class"] && s.attr("class", t[n + "Class"]);
+}
+function $t(r, e, t, n) {
+ var a = r.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"), s = a.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");
+ A(s, t[n + "Style"]), t[n + "Class"] && s.attr("class", t[n + "Class"]);
+}
+function zt(r, e, t, n) {
+ var a = r.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"), s = a.append("path").attr("d", "M 0 5 L 10 5").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ A(s, t[n + "Style"]), t[n + "Class"] && s.attr("class", t[n + "Class"]);
+}
+function Vt(r, e) {
+ var t = r;
+ return t.node().appendChild(e.label), A(t, e.labelStyle), t;
+}
+function Yt(r, e) {
+ for (var t = r.append("text"), n = Ht(e.label).split(`
+`), a = 0; a < n.length; a++)
+ t.append("tspan").attr("xml:space", "preserve").attr("dy", "1em").attr("x", "1").text(n[a]);
+ return A(t, e.labelStyle), t;
+}
+function Ht(r) {
+ for (var e = "", t = !1, n, a = 0; a < r.length; ++a)
+ if (n = r[a], t) {
+ switch (n) {
+ case "n":
+ e += `
+`;
+ break;
+ default:
+ e += n;
+ }
+ t = !1;
+ } else
+ n === "\\" ? t = !0 : e += n;
+ return e;
+}
+function K(r, e, t) {
+ var n = e.label, a = r.append("g");
+ e.labelType === "svg" ? Vt(a, e) : typeof n != "string" || e.labelType === "html" ? at(a, e) : Yt(a, e);
+ var s = a.node().getBBox(), i;
+ switch (t) {
+ case "top":
+ i = -e.height / 2;
+ break;
+ case "bottom":
+ i = e.height / 2 - s.height;
+ break;
+ default:
+ i = -s.height / 2;
+ }
+ return a.attr("transform", "translate(" + -s.width / 2 + "," + i + ")"), a;
+}
+var H = function(r, e) {
+ var t = e.nodes().filter(function(s) {
+ return nt(e, s);
+ }), n = r.selectAll("g.cluster").data(t, function(s) {
+ return s;
+ });
+ _(n.exit(), e).style("opacity", 0).remove();
+ var a = n.enter().append("g").attr("class", "cluster").attr("id", function(s) {
+ var i = e.node(s);
+ return i.id;
+ }).style("opacity", 0).each(function(s) {
+ var i = e.node(s), o = x(this);
+ x(this).append("rect");
+ var c = o.append("g").attr("class", "label");
+ K(c, i, i.clusterLabelPos);
+ });
+ return n = n.merge(a), n = _(n, e).style("opacity", 1), n.selectAll("rect").each(function(s) {
+ var i = e.node(s), o = x(this);
+ A(o, i.style);
+ }), n;
+};
+function Xt(r) {
+ H = r;
+}
+let X = function(r, e) {
+ var t = r.selectAll("g.edgeLabel").data(e.edges(), function(a) {
+ return st(a);
+ }).classed("update", !0);
+ t.exit().remove(), t.enter().append("g").classed("edgeLabel", !0).style("opacity", 0), t = r.selectAll("g.edgeLabel"), t.each(function(a) {
+ var s = x(this);
+ s.select(".label").remove();
+ var i = e.edge(a), o = K(s, e.edge(a), 0).classed("label", !0), c = o.node().getBBox();
+ i.labelId && o.attr("id", i.labelId), S(i, "width") || (i.width = c.width), S(i, "height") || (i.height = c.height);
+ });
+ var n;
+ return t.exit ? n = t.exit() : n = t.selectAll(null), _(n, e).style("opacity", 0).remove(), t;
+};
+function Ft(r) {
+ X = r;
+}
+function O(r, e) {
+ return r.intersect(e);
+}
+var F = function(r, e, t) {
+ var n = r.selectAll("g.edgePath").data(e.edges(), function(i) {
+ return st(i);
+ }).classed("update", !0), a = Zt(n, e);
+ Ot(n, e);
+ var s = n.merge !== void 0 ? n.merge(a) : n;
+ return _(s, e).style("opacity", 1), s.each(function(i) {
+ var o = x(this), c = e.edge(i);
+ c.elem = this, c.id && o.attr("id", c.id), it(
+ o,
+ c.class,
+ (o.classed("update") ? "update " : "") + "edgePath"
+ );
+ }), s.selectAll("path.path").each(function(i) {
+ var o = e.edge(i);
+ o.arrowheadId = Lt("arrowhead");
+ var c = x(this).attr("marker-end", function() {
+ return "url(" + Qt(location.href, o.arrowheadId) + ")";
+ }).style("fill", "none");
+ _(c, e).attr("d", function(d) {
+ return Jt(e, d);
+ }), A(c, o.style);
+ }), s.selectAll("defs *").remove(), s.selectAll("defs").each(function(i) {
+ var o = e.edge(i), c = t[o.arrowhead];
+ c(x(this), o.arrowheadId, o, "arrowhead");
+ }), s;
+};
+function qt(r) {
+ F = r;
+}
+function Qt(r, e) {
+ var t = r.split("#")[0];
+ return t + "#" + e;
+}
+function Jt(r, e) {
+ var t = r.edge(e), n = r.node(e.v), a = r.node(e.w), s = t.points.slice(1, t.points.length - 1);
+ return s.unshift(O(n, s[0])), s.push(O(a, s[s.length - 1])), ot(t, s);
+}
+function ot(r, e) {
+ var t = (It || Gt.line)().x(function(n) {
+ return n.x;
+ }).y(function(n) {
+ return n.y;
+ });
+ return (t.curve || t.interpolate)(r.curve), t(e);
+}
+function Kt(r) {
+ var e = r.getBBox(), t = r.ownerSVGElement.getScreenCTM().inverse().multiply(r.getScreenCTM()).translate(e.width / 2, e.height / 2);
+ return { x: t.e, y: t.f };
+}
+function Zt(r, e) {
+ var t = r.enter().append("g").attr("class", "edgePath").style("opacity", 0);
+ return t.append("path").attr("class", "path").attr("d", function(n) {
+ var a = e.edge(n), s = e.node(n.v).elem, i = Et(a.points.length).map(function() {
+ return Kt(s);
+ });
+ return ot(a, i);
+ }), t.append("defs"), t;
+}
+function Ot(r, e) {
+ var t = r.exit();
+ _(t, e).style("opacity", 0).remove();
+}
+var q = function(r, e, t) {
+ var n = e.nodes().filter(function(i) {
+ return !nt(e, i);
+ }), a = r.selectAll("g.node").data(n, function(i) {
+ return i;
+ }).classed("update", !0);
+ a.exit().remove(), a.enter().append("g").attr("class", "node").style("opacity", 0), a = r.selectAll("g.node"), a.each(function(i) {
+ var o = e.node(i), c = x(this);
+ it(
+ c,
+ o.class,
+ (c.classed("update") ? "update " : "") + "node"
+ ), c.select("g.label").remove();
+ var d = c.append("g").attr("class", "label"), l = K(d, o), v = t[o.shape], h = _t(l.node().getBBox(), "width", "height");
+ o.elem = this, o.id && c.attr("id", o.id), o.labelId && d.attr("id", o.labelId), S(o, "width") && (h.width = o.width), S(o, "height") && (h.height = o.height), h.width += o.paddingLeft + o.paddingRight, h.height += o.paddingTop + o.paddingBottom, d.attr(
+ "transform",
+ "translate(" + (o.paddingLeft - o.paddingRight) / 2 + "," + (o.paddingTop - o.paddingBottom) / 2 + ")"
+ );
+ var u = x(this);
+ u.select(".label-container").remove();
+ var p = v(u, h, o).classed("label-container", !0);
+ A(p, o.style);
+ var m = p.node().getBBox();
+ o.width = m.width, o.height = m.height;
+ });
+ var s;
+ return a.exit ? s = a.exit() : s = a.selectAll(null), _(s, e).style("opacity", 0).remove(), a;
+};
+function jt(r) {
+ q = r;
+}
+function te(r, e) {
+ var t = r.filter(function() {
+ return !x(this).classed("update");
+ });
+ function n(a) {
+ var s = e.node(a);
+ return "translate(" + s.x + "," + s.y + ")";
+ }
+ t.attr("transform", n), _(r, e).style("opacity", 1).attr("transform", n), _(t.selectAll("rect"), e).attr("width", function(a) {
+ return e.node(a).width;
+ }).attr("height", function(a) {
+ return e.node(a).height;
+ }).attr("x", function(a) {
+ var s = e.node(a);
+ return -s.width / 2;
+ }).attr("y", function(a) {
+ var s = e.node(a);
+ return -s.height / 2;
+ });
+}
+function ee(r, e) {
+ var t = r.filter(function() {
+ return !x(this).classed("update");
+ });
+ function n(a) {
+ var s = e.edge(a);
+ return S(s, "x") ? "translate(" + s.x + "," + s.y + ")" : "";
+ }
+ t.attr("transform", n), _(r, e).style("opacity", 1).attr("transform", n);
+}
+function re(r, e) {
+ var t = r.filter(function() {
+ return !x(this).classed("update");
+ });
+ function n(a) {
+ var s = e.node(a);
+ return "translate(" + s.x + "," + s.y + ")";
+ }
+ t.attr("transform", n), _(r, e).style("opacity", 1).attr("transform", n);
+}
+function lt(r, e, t, n) {
+ var a = r.x, s = r.y, i = a - n.x, o = s - n.y, c = Math.sqrt(e * e * o * o + t * t * i * i), d = Math.abs(e * t * i / c);
+ n.x < a && (d = -d);
+ var l = Math.abs(e * t * o / c);
+ return n.y < s && (l = -l), { x: a + d, y: s + l };
+}
+function ae(r, e, t) {
+ return lt(r, e, e, t);
+}
+function ne(r, e, t, n) {
+ var a, s, i, o, c, d, l, v, h, u, p, m, f, y, k;
+ if (a = e.y - r.y, i = r.x - e.x, c = e.x * r.y - r.x * e.y, h = a * t.x + i * t.y + c, u = a * n.x + i * n.y + c, !(h !== 0 && u !== 0 && j(h, u)) && (s = n.y - t.y, o = t.x - n.x, d = n.x * t.y - t.x * n.y, l = s * r.x + o * r.y + d, v = s * e.x + o * e.y + d, !(l !== 0 && v !== 0 && j(l, v)) && (p = a * o - s * i, p !== 0)))
+ return m = Math.abs(p / 2), f = i * d - o * c, y = f < 0 ? (f - m) / p : (f + m) / p, f = s * c - a * d, k = f < 0 ? (f - m) / p : (f + m) / p, { x: y, y: k };
+}
+function j(r, e) {
+ return r * e > 0;
+}
+function T(r, e, t) {
+ var n = r.x, a = r.y, s = [], i = Number.POSITIVE_INFINITY, o = Number.POSITIVE_INFINITY;
+ e.forEach(function(p) {
+ i = Math.min(i, p.x), o = Math.min(o, p.y);
+ });
+ for (var c = n - r.width / 2 - i, d = a - r.height / 2 - o, l = 0; l < e.length; l++) {
+ var v = e[l], h = e[l < e.length - 1 ? l + 1 : 0], u = ne(
+ r,
+ t,
+ { x: c + v.x, y: d + v.y },
+ { x: c + h.x, y: d + h.y }
+ );
+ u && s.push(u);
+ }
+ return s.length ? (s.length > 1 && s.sort(function(p, m) {
+ var f = p.x - t.x, y = p.y - t.y, k = Math.sqrt(f * f + y * y), B = m.x - t.x, E = m.y - t.y, U = Math.sqrt(B * B + E * E);
+ return k < U ? -1 : k === U ? 0 : 1;
+ }), s[0]) : (console.log("NO INTERSECTION FOUND, RETURN NODE CENTER", r), r);
+}
+function Z(r, e) {
+ var t = r.x, n = r.y, a = e.x - t, s = e.y - n, i = r.width / 2, o = r.height / 2, c, d;
+ return Math.abs(s) * i > Math.abs(a) * o ? (s < 0 && (o = -o), c = s === 0 ? 0 : o * a / s, d = o) : (a < 0 && (i = -i), c = i, d = a === 0 ? 0 : i * s / a), { x: t + c, y: n + d };
+}
+var Q = {
+ rect: ie,
+ ellipse: oe,
+ circle: le,
+ diamond: ce
+};
+function se(r) {
+ Q = r;
+}
+function ie(r, e, t) {
+ var n = r.insert("rect", ":first-child").attr("rx", t.rx).attr("ry", t.ry).attr("x", -e.width / 2).attr("y", -e.height / 2).attr("width", e.width).attr("height", e.height);
+ return t.intersect = function(a) {
+ return Z(t, a);
+ }, n;
+}
+function oe(r, e, t) {
+ var n = e.width / 2, a = e.height / 2, s = r.insert("ellipse", ":first-child").attr("x", -e.width / 2).attr("y", -e.height / 2).attr("rx", n).attr("ry", a);
+ return t.intersect = function(i) {
+ return lt(t, n, a, i);
+ }, s;
+}
+function le(r, e, t) {
+ var n = Math.max(e.width, e.height) / 2, a = r.insert("circle", ":first-child").attr("x", -e.width / 2).attr("y", -e.height / 2).attr("r", n);
+ return t.intersect = function(s) {
+ return ae(t, n, s);
+ }, a;
+}
+function ce(r, e, t) {
+ var n = e.width * Math.SQRT2 / 2, a = e.height * Math.SQRT2 / 2, s = [
+ { x: 0, y: -a },
+ { x: -n, y: 0 },
+ { x: 0, y: a },
+ { x: n, y: 0 }
+ ], i = r.insert("polygon", ":first-child").attr(
+ "points",
+ s.map(function(o) {
+ return o.x + "," + o.y;
+ }).join(" ")
+ );
+ return t.intersect = function(o) {
+ return T(t, s, o);
+ }, i;
+}
+function de() {
+ var r = function(e, t) {
+ fe(t);
+ var n = P(e, "output"), a = P(n, "clusters"), s = P(n, "edgePaths"), i = X(P(n, "edgeLabels"), t), o = q(P(n, "nodes"), t, Q);
+ Tt(t), re(o, t), ee(i, t), F(s, t, Y);
+ var c = H(a, t);
+ te(c, t), pe(t);
+ };
+ return r.createNodes = function(e) {
+ return arguments.length ? (jt(e), r) : q;
+ }, r.createClusters = function(e) {
+ return arguments.length ? (Xt(e), r) : H;
+ }, r.createEdgeLabels = function(e) {
+ return arguments.length ? (Ft(e), r) : X;
+ }, r.createEdgePaths = function(e) {
+ return arguments.length ? (qt(e), r) : F;
+ }, r.shapes = function(e) {
+ return arguments.length ? (se(e), r) : Q;
+ }, r.arrows = function(e) {
+ return arguments.length ? (Ut(e), r) : Y;
+ }, r;
+}
+var he = {
+ paddingLeft: 10,
+ paddingRight: 10,
+ paddingTop: 10,
+ paddingBottom: 10,
+ rx: 0,
+ ry: 0,
+ shape: "rect"
+}, ue = {
+ arrowhead: "normal",
+ curve: G
+};
+function fe(r) {
+ r.nodes().forEach(function(e) {
+ var t = r.node(e);
+ !S(t, "label") && !r.children(e).length && (t.label = e), S(t, "paddingX") && D(t, {
+ paddingLeft: t.paddingX,
+ paddingRight: t.paddingX
+ }), S(t, "paddingY") && D(t, {
+ paddingTop: t.paddingY,
+ paddingBottom: t.paddingY
+ }), S(t, "padding") && D(t, {
+ paddingLeft: t.padding,
+ paddingRight: t.padding,
+ paddingTop: t.padding,
+ paddingBottom: t.padding
+ }), D(t, he), tt(["paddingLeft", "paddingRight", "paddingTop", "paddingBottom"], function(n) {
+ t[n] = Number(t[n]);
+ }), S(t, "width") && (t._prevWidth = t.width), S(t, "height") && (t._prevHeight = t.height);
+ }), r.edges().forEach(function(e) {
+ var t = r.edge(e);
+ S(t, "label") || (t.label = ""), D(t, ue);
+ });
+}
+function pe(r) {
+ tt(r.nodes(), function(e) {
+ var t = r.node(e);
+ S(t, "_prevWidth") ? t.width = t._prevWidth : delete t.width, S(t, "_prevHeight") ? t.height = t._prevHeight : delete t.height, delete t._prevWidth, delete t._prevHeight;
+ });
+}
+function P(r, e) {
+ var t = r.select("g." + e);
+ return t.empty() && (t = r.append("g").attr("class", e)), t;
+}
+function ct(r, e, t) {
+ const n = e.width, a = e.height, s = (n + a) * 0.9, i = [
+ { x: s / 2, y: 0 },
+ { x: s, y: -s / 2 },
+ { x: s / 2, y: -s },
+ { x: 0, y: -s / 2 }
+ ], o = N(r, s, s, i);
+ return t.intersect = function(c) {
+ return T(t, i, c);
+ }, o;
+}
+function dt(r, e, t) {
+ const a = e.height, s = a / 4, i = e.width + 2 * s, o = [
+ { x: s, y: 0 },
+ { x: i - s, y: 0 },
+ { x: i, y: -a / 2 },
+ { x: i - s, y: -a },
+ { x: s, y: -a },
+ { x: 0, y: -a / 2 }
+ ], c = N(r, i, a, o);
+ return t.intersect = function(d) {
+ return T(t, o, d);
+ }, c;
+}
+function ht(r, e, t) {
+ const n = e.width, a = e.height, s = [
+ { x: -a / 2, y: 0 },
+ { x: n, y: 0 },
+ { x: n, y: -a },
+ { x: -a / 2, y: -a },
+ { x: 0, y: -a / 2 }
+ ], i = N(r, n, a, s);
+ return t.intersect = function(o) {
+ return T(t, s, o);
+ }, i;
+}
+function ut(r, e, t) {
+ const n = e.width, a = e.height, s = [
+ { x: -2 * a / 6, y: 0 },
+ { x: n - a / 6, y: 0 },
+ { x: n + 2 * a / 6, y: -a },
+ { x: a / 6, y: -a }
+ ], i = N(r, n, a, s);
+ return t.intersect = function(o) {
+ return T(t, s, o);
+ }, i;
+}
+function ft(r, e, t) {
+ const n = e.width, a = e.height, s = [
+ { x: 2 * a / 6, y: 0 },
+ { x: n + a / 6, y: 0 },
+ { x: n - 2 * a / 6, y: -a },
+ { x: -a / 6, y: -a }
+ ], i = N(r, n, a, s);
+ return t.intersect = function(o) {
+ return T(t, s, o);
+ }, i;
+}
+function pt(r, e, t) {
+ const n = e.width, a = e.height, s = [
+ { x: -2 * a / 6, y: 0 },
+ { x: n + 2 * a / 6, y: 0 },
+ { x: n - a / 6, y: -a },
+ { x: a / 6, y: -a }
+ ], i = N(r, n, a, s);
+ return t.intersect = function(o) {
+ return T(t, s, o);
+ }, i;
+}
+function vt(r, e, t) {
+ const n = e.width, a = e.height, s = [
+ { x: a / 6, y: 0 },
+ { x: n - a / 6, y: 0 },
+ { x: n + 2 * a / 6, y: -a },
+ { x: -2 * a / 6, y: -a }
+ ], i = N(r, n, a, s);
+ return t.intersect = function(o) {
+ return T(t, s, o);
+ }, i;
+}
+function yt(r, e, t) {
+ const n = e.width, a = e.height, s = [
+ { x: 0, y: 0 },
+ { x: n + a / 2, y: 0 },
+ { x: n, y: -a / 2 },
+ { x: n + a / 2, y: -a },
+ { x: 0, y: -a }
+ ], i = N(r, n, a, s);
+ return t.intersect = function(o) {
+ return T(t, s, o);
+ }, i;
+}
+function gt(r, e, t) {
+ const n = e.height, a = e.width + n / 4, s = r.insert("rect", ":first-child").attr("rx", n / 2).attr("ry", n / 2).attr("x", -a / 2).attr("y", -n / 2).attr("width", a).attr("height", n);
+ return t.intersect = function(i) {
+ return Z(t, i);
+ }, s;
+}
+function mt(r, e, t) {
+ const n = e.width, a = e.height, s = [
+ { x: 0, y: 0 },
+ { x: n, y: 0 },
+ { x: n, y: -a },
+ { x: 0, y: -a },
+ { x: 0, y: 0 },
+ { x: -8, y: 0 },
+ { x: n + 8, y: 0 },
+ { x: n + 8, y: -a },
+ { x: -8, y: -a },
+ { x: -8, y: 0 }
+ ], i = N(r, n, a, s);
+ return t.intersect = function(o) {
+ return T(t, s, o);
+ }, i;
+}
+function wt(r, e, t) {
+ const n = e.width, a = n / 2, s = a / (2.5 + n / 50), i = e.height + s, o = "M 0," + s + " a " + a + "," + s + " 0,0,0 " + n + " 0 a " + a + "," + s + " 0,0,0 " + -n + " 0 l 0," + i + " a " + a + "," + s + " 0,0,0 " + n + " 0 l 0," + -i, c = r.attr("label-offset-y", s).insert("path", ":first-child").attr("d", o).attr("transform", "translate(" + -n / 2 + "," + -(i / 2 + s) + ")");
+ return t.intersect = function(d) {
+ const l = Z(t, d), v = l.x - t.x;
+ if (a != 0 && (Math.abs(v) < t.width / 2 || Math.abs(v) == t.width / 2 && Math.abs(l.y - t.y) > t.height / 2 - s)) {
+ let h = s * s * (1 - v * v / (a * a));
+ h != 0 && (h = Math.sqrt(h)), h = s - h, d.y - t.y > 0 && (h = -h), l.y += h;
+ }
+ return l;
+ }, c;
+}
+function ve(r) {
+ r.shapes().question = ct, r.shapes().hexagon = dt, r.shapes().stadium = gt, r.shapes().subroutine = mt, r.shapes().cylinder = wt, r.shapes().rect_left_inv_arrow = ht, r.shapes().lean_right = ut, r.shapes().lean_left = ft, r.shapes().trapezoid = pt, r.shapes().inv_trapezoid = vt, r.shapes().rect_right_inv_arrow = yt;
+}
+function ye(r) {
+ r({ question: ct }), r({ hexagon: dt }), r({ stadium: gt }), r({ subroutine: mt }), r({ cylinder: wt }), r({ rect_left_inv_arrow: ht }), r({ lean_right: ut }), r({ lean_left: ft }), r({ trapezoid: pt }), r({ inv_trapezoid: vt }), r({ rect_right_inv_arrow: yt });
+}
+function N(r, e, t, n) {
+ return r.insert("polygon", ":first-child").attr(
+ "points",
+ n.map(function(a) {
+ return a.x + "," + a.y;
+ }).join(" ")
+ ).attr("transform", "translate(" + -e / 2 + "," + t / 2 + ")");
+}
+const ge = {
+ addToRender: ve,
+ addToRenderV2: ye
+}, xt = {}, me = function(r) {
+ const e = Object.keys(r);
+ for (const t of e)
+ xt[t] = r[t];
+}, bt = function(r, e, t, n, a, s) {
+ const i = n ? n.select(`[id="${t}"]`) : x(`[id="${t}"]`), o = a || document;
+ Object.keys(r).forEach(function(d) {
+ const l = r[d];
+ let v = "default";
+ l.classes.length > 0 && (v = l.classes.join(" "));
+ const h = V(l.styles);
+ let u = l.text !== void 0 ? l.text : l.id, p;
+ if (et(J().flowchart.htmlLabels)) {
+ const y = {
+ label: u.replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (k) => ``
+ )
+ };
+ p = at(i, y).node(), p.parentNode.removeChild(p);
+ } else {
+ const y = o.createElementNS("http://www.w3.org/2000/svg", "text");
+ y.setAttribute("style", h.labelStyle.replace("color:", "fill:"));
+ const k = u.split(rt.lineBreakRegex);
+ for (const B of k) {
+ const E = o.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ E.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), E.setAttribute("dy", "1em"), E.setAttribute("x", "1"), E.textContent = B, y.appendChild(E);
+ }
+ p = y;
+ }
+ let m = 0, f = "";
+ switch (l.type) {
+ case "round":
+ m = 5, f = "rect";
+ break;
+ case "square":
+ f = "rect";
+ break;
+ case "diamond":
+ f = "question";
+ break;
+ case "hexagon":
+ f = "hexagon";
+ break;
+ case "odd":
+ f = "rect_left_inv_arrow";
+ break;
+ case "lean_right":
+ f = "lean_right";
+ break;
+ case "lean_left":
+ f = "lean_left";
+ break;
+ case "trapezoid":
+ f = "trapezoid";
+ break;
+ case "inv_trapezoid":
+ f = "inv_trapezoid";
+ break;
+ case "odd_right":
+ f = "rect_left_inv_arrow";
+ break;
+ case "circle":
+ f = "circle";
+ break;
+ case "ellipse":
+ f = "ellipse";
+ break;
+ case "stadium":
+ f = "stadium";
+ break;
+ case "subroutine":
+ f = "subroutine";
+ break;
+ case "cylinder":
+ f = "cylinder";
+ break;
+ case "group":
+ f = "rect";
+ break;
+ default:
+ f = "rect";
+ }
+ I.warn("Adding node", l.id, l.domId), e.setNode(s.db.lookUpDomId(l.id), {
+ labelType: "svg",
+ labelStyle: h.labelStyle,
+ shape: f,
+ label: p,
+ rx: m,
+ ry: m,
+ class: v,
+ style: h.style,
+ id: s.db.lookUpDomId(l.id)
+ });
+ });
+}, kt = function(r, e, t) {
+ let n = 0, a, s;
+ if (r.defaultStyle !== void 0) {
+ const i = V(r.defaultStyle);
+ a = i.style, s = i.labelStyle;
+ }
+ r.forEach(function(i) {
+ n++;
+ var o = "L-" + i.start + "-" + i.end, c = "LS-" + i.start, d = "LE-" + i.end;
+ const l = {};
+ i.type === "arrow_open" ? l.arrowhead = "none" : l.arrowhead = "normal";
+ let v = "", h = "";
+ if (i.style !== void 0) {
+ const u = V(i.style);
+ v = u.style, h = u.labelStyle;
+ } else
+ switch (i.stroke) {
+ case "normal":
+ v = "fill:none", a !== void 0 && (v = a), s !== void 0 && (h = s);
+ break;
+ case "dotted":
+ v = "fill:none;stroke-width:2px;stroke-dasharray:3;";
+ break;
+ case "thick":
+ v = " stroke-width: 3.5px;fill:none";
+ break;
+ }
+ l.style = v, l.labelStyle = h, i.interpolate !== void 0 ? l.curve = z(i.interpolate, G) : r.defaultInterpolate !== void 0 ? l.curve = z(r.defaultInterpolate, G) : l.curve = z(xt.curve, G), i.text === void 0 ? i.style !== void 0 && (l.arrowheadStyle = "fill: #333") : (l.arrowheadStyle = "fill: #333", l.labelpos = "c", et(J().flowchart.htmlLabels) ? (l.labelType = "html", l.label = `${i.text.replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (u) => ``
+ )}`) : (l.labelType = "text", l.label = i.text.replace(rt.lineBreakRegex, `
+`), i.style === void 0 && (l.style = l.style || "stroke: #333; stroke-width: 1.5px;fill:none"), l.labelStyle = l.labelStyle.replace("color:", "fill:"))), l.id = o, l.class = c + " " + d, l.minlen = i.length || 1, e.setEdge(t.db.lookUpDomId(i.start), t.db.lookUpDomId(i.end), l, n);
+ });
+}, we = function(r, e) {
+ I.info("Extracting classes"), e.db.clear();
+ try {
+ return e.parse(r), e.db.getClasses();
+ } catch (t) {
+ return I.error(t), {};
+ }
+}, xe = function(r, e, t, n) {
+ I.info("Drawing flowchart"), n.db.clear();
+ const { securityLevel: a, flowchart: s } = J();
+ let i;
+ a === "sandbox" && (i = x("#i" + e));
+ const o = a === "sandbox" ? x(i.nodes()[0].contentDocument.body) : x("body"), c = a === "sandbox" ? i.nodes()[0].contentDocument : document;
+ try {
+ n.parser.parse(r);
+ } catch {
+ I.debug("Parsing failed");
+ }
+ let d = n.db.getDirection();
+ d === void 0 && (d = "TD");
+ const l = s.nodeSpacing || 50, v = s.rankSpacing || 50, h = new At({
+ multigraph: !0,
+ compound: !0
+ }).setGraph({
+ rankdir: d,
+ nodesep: l,
+ ranksep: v,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ let u;
+ const p = n.db.getSubGraphs();
+ for (let g = p.length - 1; g >= 0; g--)
+ u = p[g], n.db.addVertex(u.id, u.title, "group", void 0, u.classes);
+ const m = n.db.getVertices();
+ I.warn("Get vertices", m);
+ const f = n.db.getEdges();
+ let y = 0;
+ for (y = p.length - 1; y >= 0; y--) {
+ u = p[y], Mt("cluster").append("text");
+ for (let g = 0; g < u.nodes.length; g++)
+ I.warn(
+ "Setting subgraph",
+ u.nodes[g],
+ n.db.lookUpDomId(u.nodes[g]),
+ n.db.lookUpDomId(u.id)
+ ), h.setParent(n.db.lookUpDomId(u.nodes[g]), n.db.lookUpDomId(u.id));
+ }
+ bt(m, h, e, o, c, n), kt(f, h, n);
+ const k = new de();
+ ge.addToRender(k), k.arrows().none = function(b, L, w, M) {
+ const C = b.append("marker").attr("id", L).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");
+ A(C, w[M + "Style"]);
+ }, k.arrows().normal = function(b, L) {
+ b.append("marker").attr("id", L).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");
+ };
+ const B = o.select(`[id="${e}"]`), E = o.select("#" + e + " g");
+ for (k(E, h), E.selectAll("g.node").attr("title", function() {
+ return n.db.getTooltip(this.id);
+ }), n.db.indexNodes("subGraph" + y), y = 0; y < p.length; y++)
+ if (u = p[y], u.title !== "undefined") {
+ const g = c.querySelectorAll(
+ "#" + e + ' [id="' + n.db.lookUpDomId(u.id) + '"] rect'
+ ), b = c.querySelectorAll(
+ "#" + e + ' [id="' + n.db.lookUpDomId(u.id) + '"]'
+ ), L = g[0].x.baseVal.value, w = g[0].y.baseVal.value, M = g[0].width.baseVal.value, C = x(b[0]).select(".label");
+ C.attr("transform", `translate(${L + M / 2}, ${w + 14})`), C.attr("id", e + "Text");
+ for (let W = 0; W < u.classes.length; W++)
+ b[0].classList.add(u.classes[W]);
+ }
+ if (!s.htmlLabels) {
+ const g = c.querySelectorAll('[id="' + e + '"] .edgeLabel .label');
+ for (const b of g) {
+ const L = b.getBBox(), w = c.createElementNS("http://www.w3.org/2000/svg", "rect");
+ w.setAttribute("rx", 0), w.setAttribute("ry", 0), w.setAttribute("width", L.width), w.setAttribute("height", L.height), b.insertBefore(w, b.firstChild);
+ }
+ }
+ Bt(h, B, s.diagramPadding, s.useMaxWidth), Object.keys(m).forEach(function(g) {
+ const b = m[g];
+ if (b.link) {
+ const L = o.select("#" + e + ' [id="' + n.db.lookUpDomId(g) + '"]');
+ if (L) {
+ const w = c.createElementNS("http://www.w3.org/2000/svg", "a");
+ w.setAttributeNS("http://www.w3.org/2000/svg", "class", b.classes.join(" ")), w.setAttributeNS("http://www.w3.org/2000/svg", "href", b.link), w.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener"), a === "sandbox" ? w.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top") : b.linkTarget && w.setAttributeNS("http://www.w3.org/2000/svg", "target", b.linkTarget);
+ const M = L.insert(function() {
+ return w;
+ }, ":first-child"), R = L.select(".label-container");
+ R && M.append(function() {
+ return R.node();
+ });
+ const C = L.select(".label");
+ C && M.append(function() {
+ return C.node();
+ });
+ }
+ }
+ });
+}, be = {
+ setConf: me,
+ addVertices: bt,
+ addEdges: kt,
+ getClasses: we,
+ draw: xe
+}, Re = {
+ parser: St,
+ db: $,
+ renderer: Nt,
+ styles: Ct,
+ init: (r) => {
+ r.flowchart || (r.flowchart = {}), r.flowchart.arrowMarkerAbsolute = r.arrowMarkerAbsolute, be.setConf(r.flowchart), $.clear(), $.setGen("gen-1");
+ }
+};
+export {
+ Re as diagram
+};
+//# sourceMappingURL=flowDiagram-7d05970f.js.map
diff --git a/scopegraphs-render-docs/doc/js/flowDiagram-v2-6bfe9e0e.js b/scopegraphs-render-docs/doc/js/flowDiagram-v2-6bfe9e0e.js
new file mode 100644
index 0000000..f18b81b
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowDiagram-v2-6bfe9e0e.js
@@ -0,0 +1,27 @@
+import { p as e, f as o } from "./flowDb-39497bf7.js";
+import { f as t, g as a } from "./styles-3ce90e7a.js";
+import { i } from "./commonDb-41f8b4c5.js";
+import "./utils-8ea37061.js";
+import "./mermaidAPI-67f627de.js";
+import "./layout-492ec81d.js";
+import "./index-6271e032.js";
+import "./edges-de377bae.js";
+import "./createText-23817c58.js";
+import "./svgDraw-0a992cdb.js";
+import "./line-05ccbb85.js";
+import "./array-2ff2c7a6.js";
+import "./constant-2fe7eae5.js";
+import "./selectAll-4d781168.js";
+const n = {
+ parser: e,
+ db: o,
+ renderer: t,
+ styles: a,
+ init: (r) => {
+ r.flowchart || (r.flowchart = {}), r.flowchart.arrowMarkerAbsolute = r.arrowMarkerAbsolute, i({ flowchart: { arrowMarkerAbsolute: r.arrowMarkerAbsolute } }), t.setConf(r.flowchart), o.clear(), o.setGen("gen-2");
+ }
+};
+export {
+ n as diagram
+};
+//# sourceMappingURL=flowDiagram-v2-6bfe9e0e.js.map
diff --git a/scopegraphs-render-docs/doc/js/flowDiagram-v2-8e52592d.js b/scopegraphs-render-docs/doc/js/flowDiagram-v2-8e52592d.js
new file mode 100644
index 0000000..2e0eae2
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowDiagram-v2-8e52592d.js
@@ -0,0 +1,42 @@
+import { p as parser, f as flowDb } from "./flowDb-52e24d17.js";
+import { f as flowRendererV2, a as flowStyles } from "./styles-26373982.js";
+import { h as setConfig } from "./commonDb-573409be.js";
+import "d3";
+import "./utils-d622194a.js";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+import "./mermaidAPI-3ae0f2f0.js";
+import "stylis";
+import "dompurify";
+import "lodash-es/isEmpty.js";
+import "dagre-d3-es/src/graphlib/index.js";
+import "./index-5219d011.js";
+import "dagre-d3-es/src/dagre/index.js";
+import "dagre-d3-es/src/graphlib/json.js";
+import "./edges-2e77835f.js";
+import "./createText-1f5f8f92.js";
+import "@khanacademy/simple-markdown";
+import "./svgDraw-2526cba0.js";
+import "dagre-d3-es/src/dagre-js/label/add-html-label.js";
+import "dayjs";
+import "khroma";
+const diagram = {
+ parser,
+ db: flowDb,
+ renderer: flowRendererV2,
+ styles: flowStyles,
+ init: (cnf) => {
+ if (!cnf.flowchart) {
+ cnf.flowchart = {};
+ }
+ cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } });
+ flowRendererV2.setConf(cnf.flowchart);
+ flowDb.clear();
+ flowDb.setGen("gen-2");
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=flowDiagram-v2-8e52592d.js.map
diff --git a/scopegraphs-render-docs/doc/js/flowDiagram-v2-e9772692.js b/scopegraphs-render-docs/doc/js/flowDiagram-v2-e9772692.js
new file mode 100644
index 0000000..684d10e
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowDiagram-v2-e9772692.js
@@ -0,0 +1,34 @@
+import { p as parser, f as flowDb } from "./flowDb-bb61b53c.js";
+import { f as flowRendererV2, g as flowStyles } from "./styles-fd236c01.js";
+import { i as setConfig } from "./commonDb-89160e91.js";
+import "./utils-1aebe9b6.js";
+import "./mermaidAPI-c841a67f.js";
+import "./layout-3ff13c4c.js";
+import "./index-c47ff54b.js";
+import "./edges-17d4be60.js";
+import "./createText-b0d5c0ec.js";
+import "./svgDraw-dd61ddfa.js";
+import "./line-fbe8f138.js";
+import "./array-b7dcf730.js";
+import "./constant-b644328d.js";
+import "./selectAll-7c7a6d44.js";
+const diagram = {
+ parser,
+ db: flowDb,
+ renderer: flowRendererV2,
+ styles: flowStyles,
+ init: (cnf) => {
+ if (!cnf.flowchart) {
+ cnf.flowchart = {};
+ }
+ cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } });
+ flowRendererV2.setConf(cnf.flowchart);
+ flowDb.clear();
+ flowDb.setGen("gen-2");
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=flowDiagram-v2-e9772692.js.map
diff --git a/scopegraphs-render-docs/doc/js/flowchart-elk-definition-55d9b0bb.js b/scopegraphs-render-docs/doc/js/flowchart-elk-definition-55d9b0bb.js
new file mode 100644
index 0000000..db67133
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowchart-elk-definition-55d9b0bb.js
@@ -0,0 +1,46675 @@
+import { d as bMe, p as wMe } from "./flowDb-39497bf7.js";
+import { P as qee, T as gMe, l as K1, h as lI, g as OH, f as pMe } from "./commonDb-41f8b4c5.js";
+import { a as vMe, e as mMe, l as kMe, f as yMe } from "./edges-de377bae.js";
+import { B as jMe, z as V1n, A as X1n, y as IH } from "./utils-8ea37061.js";
+import { l as EMe } from "./line-05ccbb85.js";
+import "./mermaidAPI-67f627de.js";
+import "./createText-23817c58.js";
+import "./svgDraw-0a992cdb.js";
+import "./array-2ff2c7a6.js";
+import "./constant-2fe7eae5.js";
+const CMe = (ye, It, ft) => {
+ const { parentById: dt } = ft, Kt = /* @__PURE__ */ new Set();
+ let qt = ye;
+ for (; qt; ) {
+ if (Kt.add(qt), qt === It)
+ return qt;
+ qt = dt[qt];
+ }
+ for (qt = It; qt; ) {
+ if (Kt.has(qt))
+ return qt;
+ qt = dt[qt];
+ }
+ return "root";
+};
+function PH(ye) {
+ throw new Error('Could not dynamically require "' + ye + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
+}
+var Q1n = {}, TMe = {
+ get exports() {
+ return Q1n;
+ },
+ set exports(ye) {
+ Q1n = ye;
+ }
+};
+(function(ye, It) {
+ (function(ft) {
+ ye.exports = ft();
+ })(function() {
+ return function() {
+ function ft(dt, Kt, qt) {
+ function j(Dt, Gt) {
+ if (!Kt[Dt]) {
+ if (!dt[Dt]) {
+ var Ue = typeof PH == "function" && PH;
+ if (!Gt && Ue)
+ return Ue(Dt, !0);
+ if (Ot)
+ return Ot(Dt, !0);
+ var ki = new Error("Cannot find module '" + Dt + "'");
+ throw ki.code = "MODULE_NOT_FOUND", ki;
+ }
+ var nr = Kt[Dt] = { exports: {} };
+ dt[Dt][0].call(nr.exports, function(Mn) {
+ var ic = dt[Dt][1][Mn];
+ return j(ic || Mn);
+ }, nr, nr.exports, ft, dt, Kt, qt);
+ }
+ return Kt[Dt].exports;
+ }
+ for (var Ot = typeof PH == "function" && PH, ku = 0; ku < qt.length; ku++)
+ j(qt[ku]);
+ return j;
+ }
+ return ft;
+ }()({ 1: [function(ft, dt, Kt) {
+ Object.defineProperty(Kt, "__esModule", {
+ value: !0
+ });
+ var qt = function() {
+ function Dt(Gt, Ue) {
+ for (var ki = 0; ki < Ue.length; ki++) {
+ var nr = Ue[ki];
+ nr.enumerable = nr.enumerable || !1, nr.configurable = !0, "value" in nr && (nr.writable = !0), Object.defineProperty(Gt, nr.key, nr);
+ }
+ }
+ return function(Gt, Ue, ki) {
+ return Ue && Dt(Gt.prototype, Ue), ki && Dt(Gt, ki), Gt;
+ };
+ }();
+ function j(Dt, Gt) {
+ if (!(Dt instanceof Gt))
+ throw new TypeError("Cannot call a class as a function");
+ }
+ var Ot = function() {
+ function Dt() {
+ var Gt = this, Ue = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, ki = Ue.defaultLayoutOptions, nr = ki === void 0 ? {} : ki, Mn = Ue.algorithms, ic = Mn === void 0 ? ["layered", "stress", "mrtree", "radial", "force", "disco", "sporeOverlap", "sporeCompaction", "rectpacking"] : Mn, yu = Ue.workerFactory, oo = Ue.workerUrl;
+ if (j(this, Dt), this.defaultLayoutOptions = nr, this.initialized = !1, typeof oo > "u" && typeof yu > "u")
+ throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");
+ var vr = yu;
+ typeof oo < "u" && typeof yu > "u" && (vr = function(e1) {
+ return new Worker(e1);
+ });
+ var Yl = vr(oo);
+ if (typeof Yl.postMessage != "function")
+ throw new TypeError("Created worker does not provide the required 'postMessage' function.");
+ this.worker = new ku(Yl), this.worker.postMessage({
+ cmd: "register",
+ algorithms: ic
+ }).then(function(H1) {
+ return Gt.initialized = !0;
+ }).catch(console.err);
+ }
+ return qt(Dt, [{
+ key: "layout",
+ value: function(Ue) {
+ var ki = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, nr = ki.layoutOptions, Mn = nr === void 0 ? this.defaultLayoutOptions : nr, ic = ki.logging, yu = ic === void 0 ? !1 : ic, oo = ki.measureExecutionTime, vr = oo === void 0 ? !1 : oo;
+ return Ue ? this.worker.postMessage({
+ cmd: "layout",
+ graph: Ue,
+ layoutOptions: Mn,
+ options: {
+ logging: yu,
+ measureExecutionTime: vr
+ }
+ }) : Promise.reject(new Error("Missing mandatory parameter 'graph'."));
+ }
+ }, {
+ key: "knownLayoutAlgorithms",
+ value: function() {
+ return this.worker.postMessage({ cmd: "algorithms" });
+ }
+ }, {
+ key: "knownLayoutOptions",
+ value: function() {
+ return this.worker.postMessage({ cmd: "options" });
+ }
+ }, {
+ key: "knownLayoutCategories",
+ value: function() {
+ return this.worker.postMessage({ cmd: "categories" });
+ }
+ }, {
+ key: "terminateWorker",
+ value: function() {
+ this.worker.terminate();
+ }
+ }]), Dt;
+ }();
+ Kt.default = Ot;
+ var ku = function() {
+ function Dt(Gt) {
+ var Ue = this;
+ if (j(this, Dt), Gt === void 0)
+ throw new Error("Missing mandatory parameter 'worker'.");
+ this.resolvers = {}, this.worker = Gt, this.worker.onmessage = function(ki) {
+ setTimeout(function() {
+ Ue.receive(Ue, ki);
+ }, 0);
+ };
+ }
+ return qt(Dt, [{
+ key: "postMessage",
+ value: function(Ue) {
+ var ki = this.id || 0;
+ this.id = ki + 1, Ue.id = ki;
+ var nr = this;
+ return new Promise(function(Mn, ic) {
+ nr.resolvers[ki] = function(yu, oo) {
+ yu ? (nr.convertGwtStyleError(yu), ic(yu)) : Mn(oo);
+ }, nr.worker.postMessage(Ue);
+ });
+ }
+ }, {
+ key: "receive",
+ value: function(Ue, ki) {
+ var nr = ki.data, Mn = Ue.resolvers[nr.id];
+ Mn && (delete Ue.resolvers[nr.id], nr.error ? Mn(nr.error) : Mn(null, nr.data));
+ }
+ }, {
+ key: "terminate",
+ value: function() {
+ this.worker.terminate && this.worker.terminate();
+ }
+ }, {
+ key: "convertGwtStyleError",
+ value: function(Ue) {
+ if (Ue) {
+ var ki = Ue.__java$exception;
+ ki && (ki.cause && ki.cause.backingJsObject && (Ue.cause = ki.cause.backingJsObject, this.convertGwtStyleError(Ue.cause)), delete Ue.__java$exception);
+ }
+ }
+ }]), Dt;
+ }();
+ }, {}], 2: [function(ft, dt, Kt) {
+ (function(qt) {
+ (function() {
+ var j;
+ typeof window < "u" ? j = window : typeof qt < "u" ? j = qt : typeof self < "u" && (j = self);
+ var Ot;
+ function ku() {
+ }
+ function Dt() {
+ }
+ function Gt() {
+ }
+ function Ue() {
+ }
+ function ki() {
+ }
+ function nr() {
+ }
+ function Mn() {
+ }
+ function ic() {
+ }
+ function yu() {
+ }
+ function oo() {
+ }
+ function vr() {
+ }
+ function Yl() {
+ }
+ function H1() {
+ }
+ function e1() {
+ }
+ function Zl() {
+ }
+ function Dv() {
+ }
+ function q1() {
+ }
+ function Ch() {
+ }
+ function J1n() {
+ }
+ function Y1n() {
+ }
+ function zy() {
+ }
+ function Z1n() {
+ }
+ function nln() {
+ }
+ function eln() {
+ }
+ function tln() {
+ }
+ function Xg() {
+ }
+ function N() {
+ }
+ function iln() {
+ }
+ function aI() {
+ }
+ function rln() {
+ }
+ function cln() {
+ }
+ function uln() {
+ }
+ function sln() {
+ }
+ function DH() {
+ }
+ function oln() {
+ }
+ function fln() {
+ }
+ function hln() {
+ }
+ function G1() {
+ }
+ function z1() {
+ }
+ function dI() {
+ }
+ function lln() {
+ }
+ function aln() {
+ }
+ function dln() {
+ }
+ function $H() {
+ }
+ function bln() {
+ }
+ function wln() {
+ }
+ function Vg() {
+ }
+ function Qg() {
+ }
+ function gln() {
+ }
+ function pln() {
+ }
+ function vln() {
+ }
+ function mln() {
+ }
+ function FH() {
+ }
+ function U1() {
+ }
+ function Jg() {
+ }
+ function Yg() {
+ }
+ function kln() {
+ }
+ function Vee() {
+ }
+ function bI() {
+ }
+ function yln() {
+ }
+ function jln() {
+ }
+ function Eln() {
+ }
+ function Cln() {
+ }
+ function Tln() {
+ }
+ function Mln() {
+ }
+ function Aln() {
+ }
+ function Sln() {
+ }
+ function Pln() {
+ }
+ function Iln() {
+ }
+ function Oln() {
+ }
+ function Dln() {
+ }
+ function $ln() {
+ }
+ function Fln() {
+ }
+ function xln() {
+ }
+ function Lln() {
+ }
+ function Nln() {
+ }
+ function Bln() {
+ }
+ function Rln() {
+ }
+ function _ln() {
+ }
+ function Kln() {
+ }
+ function Hln() {
+ }
+ function qln() {
+ }
+ function Gln() {
+ }
+ function zln() {
+ }
+ function Uln() {
+ }
+ function Wln() {
+ }
+ function Xln() {
+ }
+ function Vln() {
+ }
+ function Qln() {
+ }
+ function Jln() {
+ }
+ function Yln() {
+ }
+ function Zln() {
+ }
+ function xH() {
+ }
+ function nan() {
+ }
+ function ean() {
+ }
+ function tan() {
+ }
+ function ian() {
+ }
+ function wI() {
+ }
+ function gI() {
+ }
+ function Uy() {
+ }
+ function ran() {
+ }
+ function can() {
+ }
+ function pI() {
+ }
+ function uan() {
+ }
+ function san() {
+ }
+ function oan() {
+ }
+ function Wy() {
+ }
+ function fan() {
+ }
+ function han() {
+ }
+ function lan() {
+ }
+ function aan() {
+ }
+ function dan() {
+ }
+ function ban() {
+ }
+ function wan() {
+ }
+ function gan() {
+ }
+ function pan() {
+ }
+ function LH() {
+ }
+ function van() {
+ }
+ function man() {
+ }
+ function kan() {
+ }
+ function yan() {
+ }
+ function jan() {
+ }
+ function NH() {
+ }
+ function Ean() {
+ }
+ function Can() {
+ }
+ function Tan() {
+ }
+ function Man() {
+ }
+ function Aan() {
+ }
+ function San() {
+ }
+ function Pan() {
+ }
+ function Ian() {
+ }
+ function Oan() {
+ }
+ function Dan() {
+ }
+ function $an() {
+ }
+ function Fan() {
+ }
+ function xan() {
+ }
+ function Lan() {
+ }
+ function vI() {
+ }
+ function Nan() {
+ }
+ function Ban() {
+ }
+ function Ran() {
+ }
+ function _an() {
+ }
+ function Kan() {
+ }
+ function BH() {
+ }
+ function Han() {
+ }
+ function qan() {
+ }
+ function Gan() {
+ }
+ function zan() {
+ }
+ function Uan() {
+ }
+ function Wan() {
+ }
+ function Xan() {
+ }
+ function Van() {
+ }
+ function Qan() {
+ }
+ function Jan() {
+ }
+ function Yan() {
+ }
+ function Zan() {
+ }
+ function ndn() {
+ }
+ function edn() {
+ }
+ function tdn() {
+ }
+ function idn() {
+ }
+ function rdn() {
+ }
+ function cdn() {
+ }
+ function udn() {
+ }
+ function sdn() {
+ }
+ function odn() {
+ }
+ function fdn() {
+ }
+ function hdn() {
+ }
+ function ldn() {
+ }
+ function adn() {
+ }
+ function ddn() {
+ }
+ function bdn() {
+ }
+ function wdn() {
+ }
+ function gdn() {
+ }
+ function pdn() {
+ }
+ function vdn() {
+ }
+ function mdn() {
+ }
+ function kdn() {
+ }
+ function ydn() {
+ }
+ function jdn() {
+ }
+ function Edn() {
+ }
+ function Cdn() {
+ }
+ function Tdn() {
+ }
+ function Mdn() {
+ }
+ function Adn() {
+ }
+ function Sdn() {
+ }
+ function Pdn() {
+ }
+ function Idn() {
+ }
+ function Odn() {
+ }
+ function Ddn() {
+ }
+ function $dn() {
+ }
+ function Fdn() {
+ }
+ function xdn() {
+ }
+ function Ldn() {
+ }
+ function Ndn() {
+ }
+ function Bdn() {
+ }
+ function Rdn() {
+ }
+ function _dn() {
+ }
+ function Kdn() {
+ }
+ function Hdn() {
+ }
+ function qdn() {
+ }
+ function Gdn() {
+ }
+ function zdn() {
+ }
+ function Udn() {
+ }
+ function Wdn() {
+ }
+ function Xdn() {
+ }
+ function Vdn() {
+ }
+ function Qdn() {
+ }
+ function Jdn() {
+ }
+ function Ydn() {
+ }
+ function Zdn() {
+ }
+ function n0n() {
+ }
+ function e0n() {
+ }
+ function t0n() {
+ }
+ function i0n() {
+ }
+ function r0n() {
+ }
+ function c0n() {
+ }
+ function u0n() {
+ }
+ function s0n() {
+ }
+ function o0n() {
+ }
+ function f0n() {
+ }
+ function h0n() {
+ }
+ function l0n() {
+ }
+ function a0n() {
+ }
+ function d0n() {
+ }
+ function b0n() {
+ }
+ function w0n() {
+ }
+ function g0n() {
+ }
+ function p0n() {
+ }
+ function v0n() {
+ }
+ function m0n() {
+ }
+ function k0n() {
+ }
+ function y0n() {
+ }
+ function j0n() {
+ }
+ function E0n() {
+ }
+ function C0n() {
+ }
+ function T0n() {
+ }
+ function M0n() {
+ }
+ function A0n() {
+ }
+ function S0n() {
+ }
+ function P0n() {
+ }
+ function I0n() {
+ }
+ function O0n() {
+ }
+ function D0n() {
+ }
+ function $0n() {
+ }
+ function RH() {
+ }
+ function F0n() {
+ }
+ function x0n() {
+ }
+ function L0n() {
+ }
+ function N0n() {
+ }
+ function B0n() {
+ }
+ function R0n() {
+ }
+ function _0n() {
+ }
+ function K0n() {
+ }
+ function H0n() {
+ }
+ function q0n() {
+ }
+ function G0n() {
+ }
+ function z0n() {
+ }
+ function U0n() {
+ }
+ function W0n() {
+ }
+ function X0n() {
+ }
+ function V0n() {
+ }
+ function Q0n() {
+ }
+ function J0n() {
+ }
+ function Y0n() {
+ }
+ function Z0n() {
+ }
+ function nbn() {
+ }
+ function ebn() {
+ }
+ function tbn() {
+ }
+ function ibn() {
+ }
+ function rbn() {
+ }
+ function cbn() {
+ }
+ function ubn() {
+ }
+ function sbn() {
+ }
+ function obn() {
+ }
+ function fbn() {
+ }
+ function hbn() {
+ }
+ function lbn() {
+ }
+ function abn() {
+ }
+ function dbn() {
+ }
+ function bbn() {
+ }
+ function wbn() {
+ }
+ function gbn() {
+ }
+ function pbn() {
+ }
+ function vbn() {
+ }
+ function mbn() {
+ }
+ function kbn() {
+ }
+ function ybn() {
+ }
+ function jbn() {
+ }
+ function Ebn() {
+ }
+ function Cbn() {
+ }
+ function Tbn() {
+ }
+ function Mbn() {
+ }
+ function Abn() {
+ }
+ function Sbn() {
+ }
+ function Pbn() {
+ }
+ function Ibn() {
+ }
+ function Obn() {
+ }
+ function Dbn() {
+ }
+ function $bn() {
+ }
+ function Fbn() {
+ }
+ function xbn() {
+ }
+ function Lbn() {
+ }
+ function Nbn() {
+ }
+ function Bbn() {
+ }
+ function Rbn() {
+ }
+ function _bn() {
+ }
+ function Kbn() {
+ }
+ function Hbn() {
+ }
+ function qbn() {
+ }
+ function Gbn() {
+ }
+ function zbn() {
+ }
+ function Ubn() {
+ }
+ function _H() {
+ }
+ function Wbn() {
+ }
+ function Xbn() {
+ }
+ function Vbn() {
+ }
+ function Qbn() {
+ }
+ function Jbn() {
+ }
+ function Ybn() {
+ }
+ function Zbn() {
+ }
+ function nwn() {
+ }
+ function ewn() {
+ }
+ function twn() {
+ }
+ function iwn() {
+ }
+ function rwn() {
+ }
+ function cwn() {
+ }
+ function uwn() {
+ }
+ function swn() {
+ }
+ function own() {
+ }
+ function fwn() {
+ }
+ function hwn() {
+ }
+ function lwn() {
+ }
+ function awn() {
+ }
+ function KH() {
+ }
+ function dwn() {
+ }
+ function bwn() {
+ }
+ function wwn() {
+ }
+ function gwn() {
+ }
+ function pwn() {
+ }
+ function vwn() {
+ }
+ function HH() {
+ }
+ function qH() {
+ }
+ function mwn() {
+ }
+ function GH() {
+ }
+ function zH() {
+ }
+ function kwn() {
+ }
+ function ywn() {
+ }
+ function jwn() {
+ }
+ function Ewn() {
+ }
+ function Cwn() {
+ }
+ function Twn() {
+ }
+ function Mwn() {
+ }
+ function Awn() {
+ }
+ function Swn() {
+ }
+ function UH() {
+ }
+ function Pwn() {
+ }
+ function Iwn() {
+ }
+ function Own() {
+ }
+ function Dwn() {
+ }
+ function $wn() {
+ }
+ function Fwn() {
+ }
+ function xwn() {
+ }
+ function Lwn() {
+ }
+ function Nwn() {
+ }
+ function Bwn() {
+ }
+ function Rwn() {
+ }
+ function _wn() {
+ }
+ function Kwn() {
+ }
+ function Hwn() {
+ }
+ function qwn() {
+ }
+ function Gwn() {
+ }
+ function zwn() {
+ }
+ function Uwn() {
+ }
+ function Wwn() {
+ }
+ function Xwn() {
+ }
+ function Vwn() {
+ }
+ function Qwn() {
+ }
+ function Jwn() {
+ }
+ function Ywn() {
+ }
+ function Zwn() {
+ }
+ function ngn() {
+ }
+ function egn() {
+ }
+ function tgn() {
+ }
+ function ign() {
+ }
+ function rgn() {
+ }
+ function cgn() {
+ }
+ function ugn() {
+ }
+ function sgn() {
+ }
+ function ogn() {
+ }
+ function fgn() {
+ }
+ function hgn() {
+ }
+ function lgn() {
+ }
+ function agn() {
+ }
+ function dgn() {
+ }
+ function bgn() {
+ }
+ function wgn() {
+ }
+ function ggn() {
+ }
+ function pgn() {
+ }
+ function vgn() {
+ }
+ function mgn() {
+ }
+ function kgn() {
+ }
+ function ygn() {
+ }
+ function jgn() {
+ }
+ function Egn() {
+ }
+ function Cgn() {
+ }
+ function Tgn() {
+ }
+ function Mgn() {
+ }
+ function Agn() {
+ }
+ function Sgn() {
+ }
+ function Pgn() {
+ }
+ function Ign() {
+ }
+ function Ogn() {
+ }
+ function Dgn() {
+ }
+ function $gn() {
+ }
+ function Fgn() {
+ }
+ function xgn() {
+ }
+ function Lgn() {
+ }
+ function Ngn() {
+ }
+ function Bgn() {
+ }
+ function Rgn() {
+ }
+ function _gn() {
+ }
+ function Kgn() {
+ }
+ function Hgn() {
+ }
+ function mI() {
+ }
+ function kI() {
+ }
+ function yI() {
+ }
+ function qgn() {
+ }
+ function Ggn() {
+ }
+ function zgn() {
+ }
+ function Ugn() {
+ }
+ function Wgn() {
+ }
+ function WH() {
+ }
+ function Xgn() {
+ }
+ function Vgn() {
+ }
+ function Qee() {
+ }
+ function Qgn() {
+ }
+ function Jgn() {
+ }
+ function Ygn() {
+ }
+ function Zgn() {
+ }
+ function n2n() {
+ }
+ function e2n() {
+ }
+ function t2n() {
+ }
+ function na() {
+ }
+ function i2n() {
+ }
+ function Zg() {
+ }
+ function XH() {
+ }
+ function r2n() {
+ }
+ function c2n() {
+ }
+ function u2n() {
+ }
+ function s2n() {
+ }
+ function o2n() {
+ }
+ function f2n() {
+ }
+ function h2n() {
+ }
+ function l2n() {
+ }
+ function a2n() {
+ }
+ function d2n() {
+ }
+ function b2n() {
+ }
+ function w2n() {
+ }
+ function g2n() {
+ }
+ function p2n() {
+ }
+ function v2n() {
+ }
+ function m2n() {
+ }
+ function k2n() {
+ }
+ function y2n() {
+ }
+ function j2n() {
+ }
+ function E2n() {
+ }
+ function C2n() {
+ }
+ function dn() {
+ }
+ function T2n() {
+ }
+ function M2n() {
+ }
+ function A2n() {
+ }
+ function S2n() {
+ }
+ function P2n() {
+ }
+ function I2n() {
+ }
+ function O2n() {
+ }
+ function D2n() {
+ }
+ function $2n() {
+ }
+ function F2n() {
+ }
+ function jI() {
+ }
+ function x2n() {
+ }
+ function L2n() {
+ }
+ function N2n() {
+ }
+ function B2n() {
+ }
+ function R2n() {
+ }
+ function VH() {
+ }
+ function Xy() {
+ }
+ function Vy() {
+ }
+ function _2n() {
+ }
+ function QH() {
+ }
+ function Qy() {
+ }
+ function K2n() {
+ }
+ function H2n() {
+ }
+ function q2n() {
+ }
+ function G2n() {
+ }
+ function z2n() {
+ }
+ function U2n() {
+ }
+ function Jy() {
+ }
+ function W2n() {
+ }
+ function X2n() {
+ }
+ function V2n() {
+ }
+ function Yy() {
+ }
+ function Q2n() {
+ }
+ function JH() {
+ }
+ function J2n() {
+ }
+ function EI() {
+ }
+ function YH() {
+ }
+ function Y2n() {
+ }
+ function Z2n() {
+ }
+ function npn() {
+ }
+ function epn() {
+ }
+ function Jee() {
+ }
+ function tpn() {
+ }
+ function ipn() {
+ }
+ function rpn() {
+ }
+ function cpn() {
+ }
+ function upn() {
+ }
+ function spn() {
+ }
+ function opn() {
+ }
+ function fpn() {
+ }
+ function hpn() {
+ }
+ function lpn() {
+ }
+ function Np() {
+ }
+ function CI() {
+ }
+ function apn() {
+ }
+ function dpn() {
+ }
+ function bpn() {
+ }
+ function wpn() {
+ }
+ function gpn() {
+ }
+ function ppn() {
+ }
+ function vpn() {
+ }
+ function mpn() {
+ }
+ function kpn() {
+ }
+ function ypn() {
+ }
+ function jpn() {
+ }
+ function Epn() {
+ }
+ function Cpn() {
+ }
+ function Tpn() {
+ }
+ function Mpn() {
+ }
+ function Apn() {
+ }
+ function Spn() {
+ }
+ function Ppn() {
+ }
+ function Ipn() {
+ }
+ function Opn() {
+ }
+ function Dpn() {
+ }
+ function $pn() {
+ }
+ function Fpn() {
+ }
+ function xpn() {
+ }
+ function Lpn() {
+ }
+ function Npn() {
+ }
+ function Bpn() {
+ }
+ function Rpn() {
+ }
+ function _pn() {
+ }
+ function Kpn() {
+ }
+ function Hpn() {
+ }
+ function qpn() {
+ }
+ function Gpn() {
+ }
+ function zpn() {
+ }
+ function Upn() {
+ }
+ function Wpn() {
+ }
+ function Xpn() {
+ }
+ function Vpn() {
+ }
+ function Qpn() {
+ }
+ function Jpn() {
+ }
+ function Ypn() {
+ }
+ function Zpn() {
+ }
+ function n3n() {
+ }
+ function e3n() {
+ }
+ function t3n() {
+ }
+ function i3n() {
+ }
+ function r3n() {
+ }
+ function c3n() {
+ }
+ function u3n() {
+ }
+ function s3n() {
+ }
+ function o3n() {
+ }
+ function f3n() {
+ }
+ function h3n() {
+ }
+ function l3n() {
+ }
+ function a3n() {
+ }
+ function d3n() {
+ }
+ function b3n() {
+ }
+ function w3n() {
+ }
+ function g3n() {
+ }
+ function p3n() {
+ }
+ function v3n() {
+ }
+ function m3n() {
+ }
+ function k3n() {
+ }
+ function y3n() {
+ }
+ function j3n() {
+ }
+ function E3n() {
+ }
+ function C3n() {
+ }
+ function T3n() {
+ }
+ function M3n() {
+ }
+ function A3n() {
+ }
+ function S3n() {
+ }
+ function P3n() {
+ }
+ function I3n() {
+ }
+ function O3n() {
+ }
+ function D3n() {
+ }
+ function $3n() {
+ }
+ function F3n() {
+ }
+ function x3n() {
+ }
+ function L3n() {
+ }
+ function N3n() {
+ }
+ function B3n() {
+ }
+ function R3n() {
+ }
+ function _3n() {
+ }
+ function K3n() {
+ }
+ function H3n() {
+ }
+ function q3n() {
+ }
+ function G3n() {
+ }
+ function z3n() {
+ }
+ function U3n() {
+ }
+ function W3n() {
+ }
+ function X3n() {
+ }
+ function V3n() {
+ }
+ function Q3n() {
+ }
+ function J3n() {
+ }
+ function Y3n() {
+ }
+ function Z3n() {
+ }
+ function n4n() {
+ }
+ function e4n() {
+ }
+ function t4n() {
+ }
+ function i4n() {
+ }
+ function r4n() {
+ }
+ function ZH() {
+ }
+ function c4n() {
+ }
+ function u4n() {
+ }
+ function TI() {
+ Rv();
+ }
+ function s4n() {
+ pF();
+ }
+ function o4n() {
+ a6();
+ }
+ function f4n() {
+ WT();
+ }
+ function h4n() {
+ YJ();
+ }
+ function l4n() {
+ Go();
+ }
+ function a4n() {
+ fJ();
+ }
+ function d4n() {
+ C7();
+ }
+ function b4n() {
+ q9();
+ }
+ function w4n() {
+ H9();
+ }
+ function g4n() {
+ w8();
+ }
+ function p4n() {
+ m7n();
+ }
+ function v4n() {
+ x2();
+ }
+ function m4n() {
+ Sj();
+ }
+ function k4n() {
+ ISn();
+ }
+ function y4n() {
+ qIn();
+ }
+ function j4n() {
+ oPn();
+ }
+ function E4n() {
+ TMn();
+ }
+ function C4n() {
+ X3();
+ }
+ function T4n() {
+ kl();
+ }
+ function M4n() {
+ GIn();
+ }
+ function A4n() {
+ vAn();
+ }
+ function S4n() {
+ zZ();
+ }
+ function P4n() {
+ OFn();
+ }
+ function I4n() {
+ MMn();
+ }
+ function O4n() {
+ nn();
+ }
+ function D4n() {
+ CMn();
+ }
+ function $4n() {
+ zIn();
+ }
+ function F4n() {
+ XOn();
+ }
+ function x4n() {
+ SMn();
+ }
+ function L4n() {
+ dPn();
+ }
+ function N4n() {
+ k7n();
+ }
+ function B4n() {
+ $Y();
+ }
+ function R4n() {
+ pb();
+ }
+ function _4n() {
+ vOn();
+ }
+ function K4n() {
+ S7();
+ }
+ function H4n() {
+ Ux();
+ }
+ function q4n() {
+ ZF();
+ }
+ function G4n() {
+ n0();
+ }
+ function z4n() {
+ PV();
+ }
+ function U4n() {
+ AMn();
+ }
+ function W4n() {
+ RBn();
+ }
+ function X4n() {
+ IY();
+ }
+ function V4n() {
+ Bx();
+ }
+ function Q4n() {
+ DC();
+ }
+ function J4n() {
+ nM();
+ }
+ function nq() {
+ Xe();
+ }
+ function Y4n() {
+ wT();
+ }
+ function Z4n() {
+ NQ();
+ }
+ function eq() {
+ mM();
+ }
+ function Fo() {
+ bEn();
+ }
+ function tq() {
+ eF();
+ }
+ function nvn() {
+ pZ();
+ }
+ function iq(n) {
+ _n(n);
+ }
+ function evn(n) {
+ this.a = n;
+ }
+ function Zy(n) {
+ this.a = n;
+ }
+ function tvn(n) {
+ this.a = n;
+ }
+ function ivn(n) {
+ this.a = n;
+ }
+ function rvn(n) {
+ this.a = n;
+ }
+ function cvn(n) {
+ this.a = n;
+ }
+ function uvn(n) {
+ this.a = n;
+ }
+ function svn(n) {
+ this.a = n;
+ }
+ function rq(n) {
+ this.a = n;
+ }
+ function cq(n) {
+ this.a = n;
+ }
+ function ovn(n) {
+ this.a = n;
+ }
+ function MI(n) {
+ this.a = n;
+ }
+ function fvn(n) {
+ this.a = n;
+ }
+ function AI(n) {
+ this.a = n;
+ }
+ function hvn(n) {
+ this.a = n;
+ }
+ function SI(n) {
+ this.a = n;
+ }
+ function lvn(n) {
+ this.a = n;
+ }
+ function PI(n) {
+ this.a = n;
+ }
+ function avn(n) {
+ this.a = n;
+ }
+ function dvn(n) {
+ this.a = n;
+ }
+ function bvn(n) {
+ this.a = n;
+ }
+ function uq(n) {
+ this.b = n;
+ }
+ function wvn(n) {
+ this.c = n;
+ }
+ function gvn(n) {
+ this.a = n;
+ }
+ function pvn(n) {
+ this.a = n;
+ }
+ function vvn(n) {
+ this.a = n;
+ }
+ function mvn(n) {
+ this.a = n;
+ }
+ function kvn(n) {
+ this.a = n;
+ }
+ function yvn(n) {
+ this.a = n;
+ }
+ function jvn(n) {
+ this.a = n;
+ }
+ function Evn(n) {
+ this.a = n;
+ }
+ function Cvn(n) {
+ this.a = n;
+ }
+ function Tvn(n) {
+ this.a = n;
+ }
+ function Mvn(n) {
+ this.a = n;
+ }
+ function Avn(n) {
+ this.a = n;
+ }
+ function Svn(n) {
+ this.a = n;
+ }
+ function sq(n) {
+ this.a = n;
+ }
+ function oq(n) {
+ this.a = n;
+ }
+ function nj(n) {
+ this.a = n;
+ }
+ function M9(n) {
+ this.a = n;
+ }
+ function ea() {
+ this.a = [];
+ }
+ function Pvn(n, e) {
+ n.a = e;
+ }
+ function Yee(n, e) {
+ n.a = e;
+ }
+ function Zee(n, e) {
+ n.b = e;
+ }
+ function nte(n, e) {
+ n.b = e;
+ }
+ function ete(n, e) {
+ n.b = e;
+ }
+ function fq(n, e) {
+ n.j = e;
+ }
+ function tte(n, e) {
+ n.g = e;
+ }
+ function ite(n, e) {
+ n.i = e;
+ }
+ function rte(n, e) {
+ n.c = e;
+ }
+ function cte(n, e) {
+ n.d = e;
+ }
+ function ute(n, e) {
+ n.d = e;
+ }
+ function ste(n, e) {
+ n.c = e;
+ }
+ function ta(n, e) {
+ n.k = e;
+ }
+ function ote(n, e) {
+ n.c = e;
+ }
+ function hq(n, e) {
+ n.c = e;
+ }
+ function lq(n, e) {
+ n.a = e;
+ }
+ function fte(n, e) {
+ n.a = e;
+ }
+ function hte(n, e) {
+ n.f = e;
+ }
+ function lte(n, e) {
+ n.a = e;
+ }
+ function ate(n, e) {
+ n.b = e;
+ }
+ function II(n, e) {
+ n.d = e;
+ }
+ function ej(n, e) {
+ n.i = e;
+ }
+ function aq(n, e) {
+ n.o = e;
+ }
+ function dte(n, e) {
+ n.r = e;
+ }
+ function bte(n, e) {
+ n.a = e;
+ }
+ function wte(n, e) {
+ n.b = e;
+ }
+ function Ivn(n, e) {
+ n.e = e;
+ }
+ function gte(n, e) {
+ n.f = e;
+ }
+ function dq(n, e) {
+ n.g = e;
+ }
+ function pte(n, e) {
+ n.e = e;
+ }
+ function vte(n, e) {
+ n.f = e;
+ }
+ function mte(n, e) {
+ n.f = e;
+ }
+ function kte(n, e) {
+ n.n = e;
+ }
+ function yte(n, e) {
+ n.a = e;
+ }
+ function jte(n, e) {
+ n.a = e;
+ }
+ function Ete(n, e) {
+ n.c = e;
+ }
+ function Cte(n, e) {
+ n.c = e;
+ }
+ function Tte(n, e) {
+ n.d = e;
+ }
+ function Mte(n, e) {
+ n.e = e;
+ }
+ function Ate(n, e) {
+ n.g = e;
+ }
+ function Ste(n, e) {
+ n.a = e;
+ }
+ function Pte(n, e) {
+ n.c = e;
+ }
+ function Ite(n, e) {
+ n.d = e;
+ }
+ function Ote(n, e) {
+ n.e = e;
+ }
+ function Dte(n, e) {
+ n.f = e;
+ }
+ function $te(n, e) {
+ n.j = e;
+ }
+ function Fte(n, e) {
+ n.a = e;
+ }
+ function xte(n, e) {
+ n.b = e;
+ }
+ function Lte(n, e) {
+ n.a = e;
+ }
+ function Ovn(n) {
+ n.b = n.a;
+ }
+ function Dvn(n) {
+ n.c = n.d.d;
+ }
+ function $v(n) {
+ this.d = n;
+ }
+ function ia(n) {
+ this.a = n;
+ }
+ function Bp(n) {
+ this.a = n;
+ }
+ function bq(n) {
+ this.a = n;
+ }
+ function Th(n) {
+ this.a = n;
+ }
+ function A9(n) {
+ this.a = n;
+ }
+ function $vn(n) {
+ this.a = n;
+ }
+ function wq(n) {
+ this.a = n;
+ }
+ function S9(n) {
+ this.a = n;
+ }
+ function gq(n) {
+ this.a = n;
+ }
+ function pq(n) {
+ this.a = n;
+ }
+ function vq(n) {
+ this.a = n;
+ }
+ function N0(n) {
+ this.a = n;
+ }
+ function P9(n) {
+ this.a = n;
+ }
+ function I9(n) {
+ this.a = n;
+ }
+ function mq(n) {
+ this.b = n;
+ }
+ function Rp(n) {
+ this.b = n;
+ }
+ function _p(n) {
+ this.b = n;
+ }
+ function OI(n) {
+ this.a = n;
+ }
+ function Fvn(n) {
+ this.a = n;
+ }
+ function kq(n) {
+ this.a = n;
+ }
+ function DI(n) {
+ this.c = n;
+ }
+ function E(n) {
+ this.c = n;
+ }
+ function xvn(n) {
+ this.c = n;
+ }
+ function yq(n) {
+ this.a = n;
+ }
+ function jq(n) {
+ this.a = n;
+ }
+ function Eq(n) {
+ this.a = n;
+ }
+ function Cq(n) {
+ this.a = n;
+ }
+ function ut(n) {
+ this.a = n;
+ }
+ function Lvn(n) {
+ this.a = n;
+ }
+ function Tq(n) {
+ this.a = n;
+ }
+ function Mq(n) {
+ this.a = n;
+ }
+ function Nvn(n) {
+ this.a = n;
+ }
+ function Bvn(n) {
+ this.a = n;
+ }
+ function Fv(n) {
+ this.a = n;
+ }
+ function Rvn(n) {
+ this.a = n;
+ }
+ function _vn(n) {
+ this.a = n;
+ }
+ function Kvn(n) {
+ this.a = n;
+ }
+ function Hvn(n) {
+ this.a = n;
+ }
+ function qvn(n) {
+ this.a = n;
+ }
+ function Gvn(n) {
+ this.a = n;
+ }
+ function zvn(n) {
+ this.a = n;
+ }
+ function Uvn(n) {
+ this.a = n;
+ }
+ function Wvn(n) {
+ this.a = n;
+ }
+ function Xvn(n) {
+ this.a = n;
+ }
+ function Vvn(n) {
+ this.a = n;
+ }
+ function Qvn(n) {
+ this.a = n;
+ }
+ function Jvn(n) {
+ this.a = n;
+ }
+ function Yvn(n) {
+ this.a = n;
+ }
+ function Zvn(n) {
+ this.a = n;
+ }
+ function n5n(n) {
+ this.a = n;
+ }
+ function e5n(n) {
+ this.a = n;
+ }
+ function O9(n) {
+ this.a = n;
+ }
+ function t5n(n) {
+ this.a = n;
+ }
+ function i5n(n) {
+ this.a = n;
+ }
+ function tj(n) {
+ this.a = n;
+ }
+ function r5n(n) {
+ this.a = n;
+ }
+ function c5n(n) {
+ this.a = n;
+ }
+ function Kp(n) {
+ this.a = n;
+ }
+ function Aq(n) {
+ this.a = n;
+ }
+ function u5n(n) {
+ this.a = n;
+ }
+ function s5n(n) {
+ this.a = n;
+ }
+ function o5n(n) {
+ this.a = n;
+ }
+ function f5n(n) {
+ this.a = n;
+ }
+ function h5n(n) {
+ this.a = n;
+ }
+ function Sq(n) {
+ this.a = n;
+ }
+ function Pq(n) {
+ this.a = n;
+ }
+ function Iq(n) {
+ this.a = n;
+ }
+ function ij(n) {
+ this.a = n;
+ }
+ function rj(n) {
+ this.e = n;
+ }
+ function Hp(n) {
+ this.a = n;
+ }
+ function l5n(n) {
+ this.a = n;
+ }
+ function n2(n) {
+ this.a = n;
+ }
+ function Oq(n) {
+ this.a = n;
+ }
+ function a5n(n) {
+ this.a = n;
+ }
+ function d5n(n) {
+ this.a = n;
+ }
+ function b5n(n) {
+ this.a = n;
+ }
+ function w5n(n) {
+ this.a = n;
+ }
+ function g5n(n) {
+ this.a = n;
+ }
+ function p5n(n) {
+ this.a = n;
+ }
+ function v5n(n) {
+ this.a = n;
+ }
+ function m5n(n) {
+ this.a = n;
+ }
+ function k5n(n) {
+ this.a = n;
+ }
+ function y5n(n) {
+ this.a = n;
+ }
+ function j5n(n) {
+ this.a = n;
+ }
+ function Dq(n) {
+ this.a = n;
+ }
+ function E5n(n) {
+ this.a = n;
+ }
+ function C5n(n) {
+ this.a = n;
+ }
+ function T5n(n) {
+ this.a = n;
+ }
+ function M5n(n) {
+ this.a = n;
+ }
+ function A5n(n) {
+ this.a = n;
+ }
+ function S5n(n) {
+ this.a = n;
+ }
+ function P5n(n) {
+ this.a = n;
+ }
+ function I5n(n) {
+ this.a = n;
+ }
+ function O5n(n) {
+ this.a = n;
+ }
+ function D5n(n) {
+ this.a = n;
+ }
+ function $5n(n) {
+ this.a = n;
+ }
+ function F5n(n) {
+ this.a = n;
+ }
+ function x5n(n) {
+ this.a = n;
+ }
+ function L5n(n) {
+ this.a = n;
+ }
+ function N5n(n) {
+ this.a = n;
+ }
+ function B5n(n) {
+ this.a = n;
+ }
+ function R5n(n) {
+ this.a = n;
+ }
+ function _5n(n) {
+ this.a = n;
+ }
+ function K5n(n) {
+ this.a = n;
+ }
+ function H5n(n) {
+ this.a = n;
+ }
+ function q5n(n) {
+ this.a = n;
+ }
+ function G5n(n) {
+ this.a = n;
+ }
+ function z5n(n) {
+ this.a = n;
+ }
+ function U5n(n) {
+ this.a = n;
+ }
+ function W5n(n) {
+ this.a = n;
+ }
+ function X5n(n) {
+ this.a = n;
+ }
+ function V5n(n) {
+ this.a = n;
+ }
+ function Q5n(n) {
+ this.a = n;
+ }
+ function J5n(n) {
+ this.a = n;
+ }
+ function Y5n(n) {
+ this.a = n;
+ }
+ function Z5n(n) {
+ this.a = n;
+ }
+ function n6n(n) {
+ this.a = n;
+ }
+ function e6n(n) {
+ this.a = n;
+ }
+ function t6n(n) {
+ this.a = n;
+ }
+ function i6n(n) {
+ this.a = n;
+ }
+ function r6n(n) {
+ this.a = n;
+ }
+ function c6n(n) {
+ this.a = n;
+ }
+ function u6n(n) {
+ this.c = n;
+ }
+ function s6n(n) {
+ this.b = n;
+ }
+ function o6n(n) {
+ this.a = n;
+ }
+ function f6n(n) {
+ this.a = n;
+ }
+ function h6n(n) {
+ this.a = n;
+ }
+ function l6n(n) {
+ this.a = n;
+ }
+ function a6n(n) {
+ this.a = n;
+ }
+ function d6n(n) {
+ this.a = n;
+ }
+ function b6n(n) {
+ this.a = n;
+ }
+ function w6n(n) {
+ this.a = n;
+ }
+ function g6n(n) {
+ this.a = n;
+ }
+ function p6n(n) {
+ this.a = n;
+ }
+ function v6n(n) {
+ this.a = n;
+ }
+ function m6n(n) {
+ this.a = n;
+ }
+ function k6n(n) {
+ this.a = n;
+ }
+ function y6n(n) {
+ this.a = n;
+ }
+ function j6n(n) {
+ this.a = n;
+ }
+ function E6n(n) {
+ this.a = n;
+ }
+ function C6n(n) {
+ this.a = n;
+ }
+ function T6n(n) {
+ this.a = n;
+ }
+ function M6n(n) {
+ this.a = n;
+ }
+ function A6n(n) {
+ this.a = n;
+ }
+ function S6n(n) {
+ this.a = n;
+ }
+ function P6n(n) {
+ this.a = n;
+ }
+ function I6n(n) {
+ this.a = n;
+ }
+ function O6n(n) {
+ this.a = n;
+ }
+ function W1(n) {
+ this.a = n;
+ }
+ function e2(n) {
+ this.a = n;
+ }
+ function D6n(n) {
+ this.a = n;
+ }
+ function $6n(n) {
+ this.a = n;
+ }
+ function F6n(n) {
+ this.a = n;
+ }
+ function x6n(n) {
+ this.a = n;
+ }
+ function L6n(n) {
+ this.a = n;
+ }
+ function N6n(n) {
+ this.a = n;
+ }
+ function B6n(n) {
+ this.a = n;
+ }
+ function R6n(n) {
+ this.a = n;
+ }
+ function _6n(n) {
+ this.a = n;
+ }
+ function K6n(n) {
+ this.a = n;
+ }
+ function H6n(n) {
+ this.a = n;
+ }
+ function q6n(n) {
+ this.a = n;
+ }
+ function G6n(n) {
+ this.a = n;
+ }
+ function z6n(n) {
+ this.a = n;
+ }
+ function U6n(n) {
+ this.a = n;
+ }
+ function W6n(n) {
+ this.a = n;
+ }
+ function cj(n) {
+ this.a = n;
+ }
+ function X6n(n) {
+ this.a = n;
+ }
+ function V6n(n) {
+ this.a = n;
+ }
+ function Q6n(n) {
+ this.a = n;
+ }
+ function J6n(n) {
+ this.a = n;
+ }
+ function Y6n(n) {
+ this.a = n;
+ }
+ function Z6n(n) {
+ this.a = n;
+ }
+ function nmn(n) {
+ this.a = n;
+ }
+ function emn(n) {
+ this.a = n;
+ }
+ function tmn(n) {
+ this.a = n;
+ }
+ function imn(n) {
+ this.a = n;
+ }
+ function rmn(n) {
+ this.a = n;
+ }
+ function cmn(n) {
+ this.a = n;
+ }
+ function umn(n) {
+ this.a = n;
+ }
+ function smn(n) {
+ this.a = n;
+ }
+ function omn(n) {
+ this.a = n;
+ }
+ function fmn(n) {
+ this.a = n;
+ }
+ function hmn(n) {
+ this.a = n;
+ }
+ function lmn(n) {
+ this.a = n;
+ }
+ function amn(n) {
+ this.a = n;
+ }
+ function dmn(n) {
+ this.a = n;
+ }
+ function bmn(n) {
+ this.a = n;
+ }
+ function wmn(n) {
+ this.a = n;
+ }
+ function gmn(n) {
+ this.a = n;
+ }
+ function pmn(n) {
+ this.a = n;
+ }
+ function vmn(n) {
+ this.a = n;
+ }
+ function mmn(n) {
+ this.a = n;
+ }
+ function kmn(n) {
+ this.a = n;
+ }
+ function ymn(n) {
+ this.a = n;
+ }
+ function $q(n) {
+ this.a = n;
+ }
+ function kt(n) {
+ this.b = n;
+ }
+ function jmn(n) {
+ this.f = n;
+ }
+ function Fq(n) {
+ this.a = n;
+ }
+ function Emn(n) {
+ this.a = n;
+ }
+ function Cmn(n) {
+ this.a = n;
+ }
+ function Tmn(n) {
+ this.a = n;
+ }
+ function Mmn(n) {
+ this.a = n;
+ }
+ function Amn(n) {
+ this.a = n;
+ }
+ function Smn(n) {
+ this.a = n;
+ }
+ function Pmn(n) {
+ this.a = n;
+ }
+ function Imn(n) {
+ this.a = n;
+ }
+ function D9(n) {
+ this.a = n;
+ }
+ function Omn(n) {
+ this.a = n;
+ }
+ function Dmn(n) {
+ this.b = n;
+ }
+ function xq(n) {
+ this.c = n;
+ }
+ function uj(n) {
+ this.e = n;
+ }
+ function $mn(n) {
+ this.a = n;
+ }
+ function sj(n) {
+ this.a = n;
+ }
+ function oj(n) {
+ this.a = n;
+ }
+ function $I(n) {
+ this.a = n;
+ }
+ function Fmn(n) {
+ this.a = n;
+ }
+ function xmn(n) {
+ this.d = n;
+ }
+ function Lq(n) {
+ this.a = n;
+ }
+ function Nq(n) {
+ this.a = n;
+ }
+ function ud(n) {
+ this.e = n;
+ }
+ function Nte() {
+ this.a = 0;
+ }
+ function gw() {
+ byn(this);
+ }
+ function X() {
+ RO(this);
+ }
+ function we() {
+ Eu(this);
+ }
+ function FI() {
+ vTn(this);
+ }
+ function Lmn() {
+ }
+ function sd() {
+ this.c = p1n;
+ }
+ function Bte(n, e) {
+ e.Wb(n);
+ }
+ function Nmn(n, e) {
+ n.b += e;
+ }
+ function Bmn(n) {
+ n.b = new JI();
+ }
+ function T(n) {
+ return n.e;
+ }
+ function Rte(n) {
+ return n.a;
+ }
+ function _te(n) {
+ return n.a;
+ }
+ function Kte(n) {
+ return n.a;
+ }
+ function Hte(n) {
+ return n.a;
+ }
+ function qte(n) {
+ return n.a;
+ }
+ function Gte() {
+ return null;
+ }
+ function zte() {
+ return null;
+ }
+ function Ute() {
+ EG(), iTe();
+ }
+ function Wte(n) {
+ n.b.tf(n.e);
+ }
+ function xv(n, e) {
+ n.b = e - n.b;
+ }
+ function Lv(n, e) {
+ n.a = e - n.a;
+ }
+ function Rmn(n, e) {
+ e.ad(n.a);
+ }
+ function Xte(n, e) {
+ si(e, n);
+ }
+ function Vte(n, e, t) {
+ n.Od(t, e);
+ }
+ function $9(n, e) {
+ n.e = e, e.b = n;
+ }
+ function Bq(n) {
+ Df(), this.a = n;
+ }
+ function _mn(n) {
+ Df(), this.a = n;
+ }
+ function Kmn(n) {
+ Df(), this.a = n;
+ }
+ function Rq(n) {
+ eb(), this.a = n;
+ }
+ function Hmn(n) {
+ m3(), aR.be(n);
+ }
+ function ra() {
+ Jyn.call(this);
+ }
+ function _q() {
+ Jyn.call(this);
+ }
+ function Kq() {
+ ra.call(this);
+ }
+ function xI() {
+ ra.call(this);
+ }
+ function qmn() {
+ ra.call(this);
+ }
+ function F9() {
+ ra.call(this);
+ }
+ function su() {
+ ra.call(this);
+ }
+ function Nv() {
+ ra.call(this);
+ }
+ function je() {
+ ra.call(this);
+ }
+ function ps() {
+ ra.call(this);
+ }
+ function Gmn() {
+ ra.call(this);
+ }
+ function rc() {
+ ra.call(this);
+ }
+ function zmn() {
+ ra.call(this);
+ }
+ function Umn() {
+ this.a = this;
+ }
+ function fj() {
+ this.Bb |= 256;
+ }
+ function Wmn() {
+ this.b = new Vkn();
+ }
+ function Hq() {
+ Hq = N, new we();
+ }
+ function qq() {
+ Kq.call(this);
+ }
+ function Xmn(n, e) {
+ n.length = e;
+ }
+ function hj(n, e) {
+ W(n.a, e);
+ }
+ function Qte(n, e) {
+ nY(n.c, e);
+ }
+ function Jte(n, e) {
+ ci(n.b, e);
+ }
+ function Yte(n, e) {
+ KT(n.a, e);
+ }
+ function Zte(n, e) {
+ MF(n.a, e);
+ }
+ function qp(n, e) {
+ et(n.e, e);
+ }
+ function t2(n) {
+ iM(n.c, n.b);
+ }
+ function nie(n, e) {
+ n.kc().Nb(e);
+ }
+ function Gq(n) {
+ this.a = Yge(n);
+ }
+ function hi() {
+ this.a = new we();
+ }
+ function Vmn() {
+ this.a = new we();
+ }
+ function lj() {
+ this.a = new X();
+ }
+ function LI() {
+ this.a = new X();
+ }
+ function zq() {
+ this.a = new X();
+ }
+ function Ls() {
+ this.a = new Dln();
+ }
+ function ca() {
+ this.a = new MSn();
+ }
+ function Uq() {
+ this.a = new LH();
+ }
+ function Wq() {
+ this.a = new l7n();
+ }
+ function Qmn() {
+ this.a = new ZMn();
+ }
+ function Xq() {
+ this.a = new wMn();
+ }
+ function Vq() {
+ this.a = new Rjn();
+ }
+ function Jmn() {
+ this.a = new X();
+ }
+ function Qq() {
+ this.a = new X();
+ }
+ function Ymn() {
+ this.a = new X();
+ }
+ function Zmn() {
+ this.a = new X();
+ }
+ function n9n() {
+ this.d = new X();
+ }
+ function e9n() {
+ this.a = new hi();
+ }
+ function t9n() {
+ this.a = new we();
+ }
+ function i9n() {
+ this.b = new we();
+ }
+ function r9n() {
+ this.b = new X();
+ }
+ function Jq() {
+ this.e = new X();
+ }
+ function c9n() {
+ this.d = new X();
+ }
+ function u9n() {
+ this.a = new T4n();
+ }
+ function s9n() {
+ X.call(this);
+ }
+ function Yq() {
+ lj.call(this);
+ }
+ function o9n() {
+ kE.call(this);
+ }
+ function f9n() {
+ Qq.call(this);
+ }
+ function NI() {
+ Bv.call(this);
+ }
+ function Bv() {
+ Lmn.call(this);
+ }
+ function i2() {
+ Lmn.call(this);
+ }
+ function Zq() {
+ i2.call(this);
+ }
+ function h9n() {
+ UTn.call(this);
+ }
+ function l9n() {
+ UTn.call(this);
+ }
+ function a9n() {
+ uG.call(this);
+ }
+ function d9n() {
+ uG.call(this);
+ }
+ function b9n() {
+ uG.call(this);
+ }
+ function w9n() {
+ sG.call(this);
+ }
+ function ou() {
+ Ct.call(this);
+ }
+ function nG() {
+ R2n.call(this);
+ }
+ function eG() {
+ R2n.call(this);
+ }
+ function g9n() {
+ D9n.call(this);
+ }
+ function p9n() {
+ D9n.call(this);
+ }
+ function v9n() {
+ we.call(this);
+ }
+ function m9n() {
+ we.call(this);
+ }
+ function k9n() {
+ we.call(this);
+ }
+ function y9n() {
+ hi.call(this);
+ }
+ function BI() {
+ _In.call(this);
+ }
+ function j9n() {
+ fj.call(this);
+ }
+ function RI() {
+ Oz.call(this);
+ }
+ function _I() {
+ Oz.call(this);
+ }
+ function tG() {
+ we.call(this);
+ }
+ function KI() {
+ we.call(this);
+ }
+ function E9n() {
+ we.call(this);
+ }
+ function iG() {
+ Yy.call(this);
+ }
+ function C9n() {
+ Yy.call(this);
+ }
+ function T9n() {
+ iG.call(this);
+ }
+ function M9n() {
+ ZH.call(this);
+ }
+ function A9n(n) {
+ lIn.call(this, n);
+ }
+ function S9n(n) {
+ lIn.call(this, n);
+ }
+ function rG(n) {
+ rq.call(this, n);
+ }
+ function cG(n) {
+ e7n.call(this, n);
+ }
+ function eie(n) {
+ cG.call(this, n);
+ }
+ function tie(n) {
+ e7n.call(this, n);
+ }
+ function Gp() {
+ this.a = new Ct();
+ }
+ function uG() {
+ this.a = new hi();
+ }
+ function sG() {
+ this.a = new we();
+ }
+ function P9n() {
+ this.a = new X();
+ }
+ function I9n() {
+ this.j = new X();
+ }
+ function oG() {
+ this.a = new _gn();
+ }
+ function O9n() {
+ this.a = new M8n();
+ }
+ function D9n() {
+ this.a = new V2n();
+ }
+ function HI() {
+ HI = N, uR = new Q9n();
+ }
+ function qI() {
+ qI = N, cR = new V9n();
+ }
+ function Rv() {
+ Rv = N, rR = new Dt();
+ }
+ function aj() {
+ aj = N, fR = new Vyn();
+ }
+ function iie(n) {
+ cG.call(this, n);
+ }
+ function rie(n) {
+ cG.call(this, n);
+ }
+ function $9n(n) {
+ m$.call(this, n);
+ }
+ function F9n(n) {
+ m$.call(this, n);
+ }
+ function x9n(n) {
+ sEn.call(this, n);
+ }
+ function GI(n) {
+ C5e.call(this, n);
+ }
+ function od(n) {
+ K0.call(this, n);
+ }
+ function _v(n) {
+ Cj.call(this, n);
+ }
+ function fG(n) {
+ Cj.call(this, n);
+ }
+ function L9n(n) {
+ Cj.call(this, n);
+ }
+ function _r(n) {
+ yCn.call(this, n);
+ }
+ function N9n(n) {
+ _r.call(this, n);
+ }
+ function r2() {
+ M9.call(this, {});
+ }
+ function dj(n) {
+ r3(), this.a = n;
+ }
+ function Kv(n) {
+ n.b = null, n.c = 0;
+ }
+ function cie(n, e) {
+ n.e = e, BNn(n, e);
+ }
+ function uie(n, e) {
+ n.a = e, h6e(n);
+ }
+ function zI(n, e, t) {
+ n.a[e.g] = t;
+ }
+ function sie(n, e, t) {
+ M4e(t, n, e);
+ }
+ function oie(n, e) {
+ $ue(e.i, n.n);
+ }
+ function B9n(n, e) {
+ Fwe(n).td(e);
+ }
+ function fie(n, e) {
+ return n * n / e;
+ }
+ function R9n(n, e) {
+ return n.g - e.g;
+ }
+ function hie(n) {
+ return new nj(n);
+ }
+ function lie(n) {
+ return new nb(n);
+ }
+ function bj(n) {
+ _r.call(this, n);
+ }
+ function mr(n) {
+ _r.call(this, n);
+ }
+ function _9n(n) {
+ _r.call(this, n);
+ }
+ function UI(n) {
+ yCn.call(this, n);
+ }
+ function WI(n) {
+ AV(), this.a = n;
+ }
+ function K9n(n) {
+ dEn(), this.a = n;
+ }
+ function B0(n) {
+ ED(), this.f = n;
+ }
+ function XI(n) {
+ ED(), this.f = n;
+ }
+ function zp(n) {
+ _r.call(this, n);
+ }
+ function Hn(n) {
+ _r.call(this, n);
+ }
+ function $r(n) {
+ _r.call(this, n);
+ }
+ function H9n(n) {
+ _r.call(this, n);
+ }
+ function c2(n) {
+ _r.call(this, n);
+ }
+ function on(n) {
+ return _n(n), n;
+ }
+ function K(n) {
+ return _n(n), n;
+ }
+ function x9(n) {
+ return _n(n), n;
+ }
+ function hG(n) {
+ return _n(n), n;
+ }
+ function aie(n) {
+ return _n(n), n;
+ }
+ function Hv(n) {
+ return n.b == n.c;
+ }
+ function R0(n) {
+ return !!n && n.b;
+ }
+ function die(n) {
+ return !!n && n.k;
+ }
+ function bie(n) {
+ return !!n && n.j;
+ }
+ function Ku(n) {
+ _n(n), this.a = n;
+ }
+ function lG(n) {
+ return Ea(n), n;
+ }
+ function qv(n) {
+ EW(n, n.length);
+ }
+ function t1(n) {
+ _r.call(this, n);
+ }
+ function Af(n) {
+ _r.call(this, n);
+ }
+ function VI(n) {
+ _r.call(this, n);
+ }
+ function pw(n) {
+ _r.call(this, n);
+ }
+ function Gv(n) {
+ _r.call(this, n);
+ }
+ function Ce(n) {
+ _r.call(this, n);
+ }
+ function QI(n) {
+ Vz.call(this, n, 0);
+ }
+ function JI() {
+ iX.call(this, 12, 3);
+ }
+ function aG() {
+ aG = N, din = new J1n();
+ }
+ function q9n() {
+ q9n = N, ain = new ku();
+ }
+ function wj() {
+ wj = N, dm = new H1();
+ }
+ function G9n() {
+ G9n = N, mzn = new Zl();
+ }
+ function z9n() {
+ throw T(new je());
+ }
+ function dG() {
+ throw T(new je());
+ }
+ function U9n() {
+ throw T(new je());
+ }
+ function wie() {
+ throw T(new je());
+ }
+ function gie() {
+ throw T(new je());
+ }
+ function pie() {
+ throw T(new je());
+ }
+ function YI() {
+ this.a = Te(pe(Qi));
+ }
+ function u2(n) {
+ Df(), this.a = pe(n);
+ }
+ function W9n(n, e) {
+ n.Td(e), e.Sd(n);
+ }
+ function vie(n, e) {
+ n.a.ec().Mc(e);
+ }
+ function mie(n, e, t) {
+ n.c.lf(e, t);
+ }
+ function bG(n) {
+ mr.call(this, n);
+ }
+ function Sf(n) {
+ Hn.call(this, n);
+ }
+ function i1() {
+ A9.call(this, "");
+ }
+ function zv() {
+ A9.call(this, "");
+ }
+ function X1() {
+ A9.call(this, "");
+ }
+ function _0() {
+ A9.call(this, "");
+ }
+ function wG(n) {
+ mr.call(this, n);
+ }
+ function Up(n) {
+ Rp.call(this, n);
+ }
+ function ZI(n) {
+ lE.call(this, n);
+ }
+ function X9n(n) {
+ Up.call(this, n);
+ }
+ function V9n() {
+ AI.call(this, null);
+ }
+ function Q9n() {
+ AI.call(this, null);
+ }
+ function gj() {
+ gj = N, m3();
+ }
+ function J9n() {
+ J9n = N, Pzn = Z4e();
+ }
+ function Y9n(n) {
+ return n.a ? n.b : 0;
+ }
+ function kie(n) {
+ return n.a ? n.b : 0;
+ }
+ function yie(n, e) {
+ return n.a - e.a;
+ }
+ function jie(n, e) {
+ return n.a - e.a;
+ }
+ function Eie(n, e) {
+ return n.a - e.a;
+ }
+ function pj(n, e) {
+ return WX(n, e);
+ }
+ function M(n, e) {
+ return vMn(n, e);
+ }
+ function Cie(n, e) {
+ return e in n.a;
+ }
+ function Z9n(n, e) {
+ return n.f = e, n;
+ }
+ function Tie(n, e) {
+ return n.b = e, n;
+ }
+ function n8n(n, e) {
+ return n.c = e, n;
+ }
+ function Mie(n, e) {
+ return n.g = e, n;
+ }
+ function gG(n, e) {
+ return n.a = e, n;
+ }
+ function pG(n, e) {
+ return n.f = e, n;
+ }
+ function Aie(n, e) {
+ return n.k = e, n;
+ }
+ function vG(n, e) {
+ return n.a = e, n;
+ }
+ function Sie(n, e) {
+ return n.e = e, n;
+ }
+ function mG(n, e) {
+ return n.e = e, n;
+ }
+ function Pie(n, e) {
+ return n.f = e, n;
+ }
+ function Iie(n, e) {
+ n.b = !0, n.d = e;
+ }
+ function Oie(n, e) {
+ n.b = new kr(e);
+ }
+ function Die(n, e, t) {
+ e.td(n.a[t]);
+ }
+ function $ie(n, e, t) {
+ e.we(n.a[t]);
+ }
+ function Fie(n, e) {
+ return n.b - e.b;
+ }
+ function xie(n, e) {
+ return n.g - e.g;
+ }
+ function Lie(n, e) {
+ return n.s - e.s;
+ }
+ function Nie(n, e) {
+ return n ? 0 : e - 1;
+ }
+ function e8n(n, e) {
+ return n ? 0 : e - 1;
+ }
+ function Bie(n, e) {
+ return n ? e - 1 : 0;
+ }
+ function Rie(n, e) {
+ return e.Yf(n);
+ }
+ function fd(n, e) {
+ return n.b = e, n;
+ }
+ function vj(n, e) {
+ return n.a = e, n;
+ }
+ function hd(n, e) {
+ return n.c = e, n;
+ }
+ function ld(n, e) {
+ return n.d = e, n;
+ }
+ function ad(n, e) {
+ return n.e = e, n;
+ }
+ function kG(n, e) {
+ return n.f = e, n;
+ }
+ function Uv(n, e) {
+ return n.a = e, n;
+ }
+ function Wp(n, e) {
+ return n.b = e, n;
+ }
+ function Xp(n, e) {
+ return n.c = e, n;
+ }
+ function gn(n, e) {
+ return n.c = e, n;
+ }
+ function Dn(n, e) {
+ return n.b = e, n;
+ }
+ function pn(n, e) {
+ return n.d = e, n;
+ }
+ function vn(n, e) {
+ return n.e = e, n;
+ }
+ function _ie(n, e) {
+ return n.f = e, n;
+ }
+ function mn(n, e) {
+ return n.g = e, n;
+ }
+ function kn(n, e) {
+ return n.a = e, n;
+ }
+ function yn(n, e) {
+ return n.i = e, n;
+ }
+ function jn(n, e) {
+ return n.j = e, n;
+ }
+ function t8n(n, e) {
+ return n.k = e, n;
+ }
+ function Kie(n, e) {
+ return n.j = e, n;
+ }
+ function Hie(n, e) {
+ kl(), Hr(e, n);
+ }
+ function qie(n, e, t) {
+ Nfe(n.a, e, t);
+ }
+ function i8n(n) {
+ kTn.call(this, n);
+ }
+ function yG(n) {
+ kTn.call(this, n);
+ }
+ function mj(n) {
+ uD.call(this, n);
+ }
+ function r8n(n) {
+ u2e.call(this, n);
+ }
+ function V1(n) {
+ Nd.call(this, n);
+ }
+ function c8n(n) {
+ XD.call(this, n);
+ }
+ function u8n(n) {
+ XD.call(this, n);
+ }
+ function s8n() {
+ Mz.call(this, "");
+ }
+ function Li() {
+ this.a = 0, this.b = 0;
+ }
+ function o8n() {
+ this.b = 0, this.a = 0;
+ }
+ function f8n(n, e) {
+ n.b = 0, lb(n, e);
+ }
+ function Gie(n, e) {
+ n.c = e, n.b = !0;
+ }
+ function h8n(n, e) {
+ return n.c._b(e);
+ }
+ function xo(n) {
+ return n.e && n.e();
+ }
+ function nO(n) {
+ return n ? n.d : null;
+ }
+ function l8n(n, e) {
+ return NDn(n.b, e);
+ }
+ function zie(n) {
+ return n ? n.g : null;
+ }
+ function Uie(n) {
+ return n ? n.i : null;
+ }
+ function Q1(n) {
+ return Sh(n), n.o;
+ }
+ function dd() {
+ dd = N, Ane = h4e();
+ }
+ function a8n() {
+ a8n = N, mi = jve();
+ }
+ function Vp() {
+ Vp = N, g1n = a4e();
+ }
+ function d8n() {
+ d8n = N, lee = l4e();
+ }
+ function jG() {
+ jG = N, fc = s6e();
+ }
+ function EG() {
+ EG = N, Ul = L3();
+ }
+ function b8n() {
+ throw T(new je());
+ }
+ function w8n() {
+ throw T(new je());
+ }
+ function g8n() {
+ throw T(new je());
+ }
+ function p8n() {
+ throw T(new je());
+ }
+ function v8n() {
+ throw T(new je());
+ }
+ function m8n() {
+ throw T(new je());
+ }
+ function kj(n) {
+ this.a = new s2(n);
+ }
+ function CG(n) {
+ b_n(), gTe(this, n);
+ }
+ function J1(n) {
+ this.a = new AD(n);
+ }
+ function vw(n, e) {
+ for (; n.ye(e); )
+ ;
+ }
+ function TG(n, e) {
+ for (; n.sd(e); )
+ ;
+ }
+ function mw(n, e) {
+ return n.a += e, n;
+ }
+ function eO(n, e) {
+ return n.a += e, n;
+ }
+ function r1(n, e) {
+ return n.a += e, n;
+ }
+ function bd(n, e) {
+ return n.a += e, n;
+ }
+ function Wv(n) {
+ return ol(n), n.a;
+ }
+ function yj(n) {
+ return n.b != n.d.c;
+ }
+ function k8n(n) {
+ return n.l | n.m << 22;
+ }
+ function MG(n, e) {
+ return n.d[e.p];
+ }
+ function y8n(n, e) {
+ return Q8e(n, e);
+ }
+ function AG(n, e, t) {
+ n.splice(e, t);
+ }
+ function j8n(n) {
+ n.c ? cBn(n) : uBn(n);
+ }
+ function jj(n) {
+ this.a = 0, this.b = n;
+ }
+ function E8n() {
+ this.a = new B7(Pon);
+ }
+ function C8n() {
+ this.b = new B7(won);
+ }
+ function T8n() {
+ this.b = new B7(OK);
+ }
+ function M8n() {
+ this.b = new B7(OK);
+ }
+ function A8n() {
+ throw T(new je());
+ }
+ function S8n() {
+ throw T(new je());
+ }
+ function P8n() {
+ throw T(new je());
+ }
+ function I8n() {
+ throw T(new je());
+ }
+ function O8n() {
+ throw T(new je());
+ }
+ function D8n() {
+ throw T(new je());
+ }
+ function $8n() {
+ throw T(new je());
+ }
+ function F8n() {
+ throw T(new je());
+ }
+ function x8n() {
+ throw T(new je());
+ }
+ function L8n() {
+ throw T(new je());
+ }
+ function Wie() {
+ throw T(new rc());
+ }
+ function Xie() {
+ throw T(new rc());
+ }
+ function L9(n) {
+ this.a = new N8n(n);
+ }
+ function N8n(n) {
+ cbe(this, n, cve());
+ }
+ function N9(n) {
+ return !n || rTn(n);
+ }
+ function B9(n) {
+ return Tf[n] != -1;
+ }
+ function Vie() {
+ _A != 0 && (_A = 0), KA = -1;
+ }
+ function B8n() {
+ iR == null && (iR = []);
+ }
+ function Qie(n, e) {
+ $x(R(n.a), e);
+ }
+ function Jie(n, e) {
+ $x(R(n.a), e);
+ }
+ function R9(n, e) {
+ Sw.call(this, n, e);
+ }
+ function Qp(n, e) {
+ R9.call(this, n, e);
+ }
+ function SG(n, e) {
+ this.b = n, this.c = e;
+ }
+ function R8n(n, e) {
+ this.b = n, this.a = e;
+ }
+ function _8n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function K8n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function H8n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function q8n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function G8n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function z8n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function U8n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function W8n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function X8n(n, e) {
+ this.b = n, this.a = e;
+ }
+ function V8n(n, e) {
+ this.b = n, this.a = e;
+ }
+ function Q8n(n, e) {
+ this.b = n, this.a = e;
+ }
+ function J8n(n, e) {
+ this.b = n, this.a = e;
+ }
+ function Oe(n, e) {
+ this.f = n, this.g = e;
+ }
+ function Jp(n, e) {
+ this.e = n, this.d = e;
+ }
+ function wd(n, e) {
+ this.g = n, this.i = e;
+ }
+ function tO(n, e) {
+ this.a = n, this.b = e;
+ }
+ function Y8n(n, e) {
+ this.a = n, this.f = e;
+ }
+ function Z8n(n, e) {
+ this.b = n, this.c = e;
+ }
+ function Yie(n, e) {
+ this.a = n, this.b = e;
+ }
+ function n7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function iO(n, e) {
+ this.a = n, this.b = e;
+ }
+ function e7n(n) {
+ Bz(n.dc()), this.c = n;
+ }
+ function Ej(n) {
+ this.b = u(pe(n), 83);
+ }
+ function t7n(n) {
+ this.a = u(pe(n), 83);
+ }
+ function K0(n) {
+ this.a = u(pe(n), 15);
+ }
+ function i7n(n) {
+ this.a = u(pe(n), 15);
+ }
+ function Cj(n) {
+ this.b = u(pe(n), 47);
+ }
+ function Tj() {
+ this.q = new j.Date();
+ }
+ function Zf() {
+ Zf = N, Sin = new iln();
+ }
+ function Yp() {
+ Yp = N, W4 = new eln();
+ }
+ function Xv(n) {
+ return n.f.c + n.g.c;
+ }
+ function _9(n, e) {
+ return n.b.Hc(e);
+ }
+ function r7n(n, e) {
+ return n.b.Ic(e);
+ }
+ function c7n(n, e) {
+ return n.b.Qc(e);
+ }
+ function u7n(n, e) {
+ return n.b.Hc(e);
+ }
+ function s7n(n, e) {
+ return n.c.uc(e);
+ }
+ function Mh(n, e) {
+ return n.a._b(e);
+ }
+ function o7n(n, e) {
+ return tt(n.c, e);
+ }
+ function f7n(n, e) {
+ return zu(n.b, e);
+ }
+ function h7n(n, e) {
+ return n > e && e < L6;
+ }
+ function Zie(n, e) {
+ return n.Gc(e), n;
+ }
+ function nre(n, e) {
+ return Xi(n, e), n;
+ }
+ function ere(n) {
+ return ZCn(), n ? vzn : pzn;
+ }
+ function s2(n) {
+ VOn.call(this, n, 0);
+ }
+ function l7n() {
+ AD.call(this, null);
+ }
+ function PG() {
+ P$.call(this, null);
+ }
+ function o2(n) {
+ this.c = n, GPn(this);
+ }
+ function Ct() {
+ jyn(this), Rs(this);
+ }
+ function Rt(n, e) {
+ ol(n), n.a.Nb(e);
+ }
+ function a7n(n, e) {
+ return n.Gc(e), n;
+ }
+ function tre(n, e) {
+ return n.a.f = e, n;
+ }
+ function d7n(n, e) {
+ return n.a.d = e, n;
+ }
+ function b7n(n, e) {
+ return n.a.g = e, n;
+ }
+ function w7n(n, e) {
+ return n.a.j = e, n;
+ }
+ function fo(n, e) {
+ return n.a.a = e, n;
+ }
+ function ho(n, e) {
+ return n.a.d = e, n;
+ }
+ function lo(n, e) {
+ return n.a.e = e, n;
+ }
+ function ao(n, e) {
+ return n.a.g = e, n;
+ }
+ function K9(n, e) {
+ return n.a.f = e, n;
+ }
+ function ire(n) {
+ return n.b = !1, n;
+ }
+ function Zp() {
+ Zp = N, _in = new Qkn();
+ }
+ function Mj() {
+ Mj = N, Ozn = new Jkn();
+ }
+ function n3() {
+ n3 = N, Uin = new dln();
+ }
+ function g7n() {
+ g7n = N, OWn = new _an();
+ }
+ function Aj() {
+ Aj = N, SR = new ojn();
+ }
+ function ua() {
+ ua = N, X4 = new yln();
+ }
+ function Vv() {
+ Vv = N, $Wn = new Kan();
+ }
+ function p7n() {
+ p7n = N, Kzn = new Mln();
+ }
+ function IG() {
+ IG = N, kWn = new Ean();
+ }
+ function H9() {
+ H9 = N, LWn = new Li();
+ }
+ function v7n() {
+ v7n = N, yWn = new Ian();
+ }
+ function OG() {
+ OG = N, jWn = new dCn();
+ }
+ function DG() {
+ DG = N, qrn = new San();
+ }
+ function q9() {
+ q9 = N, NWn = new bdn();
+ }
+ function m7n() {
+ m7n = N, KWn = new Ydn();
+ }
+ function Qv() {
+ Qv = N, WWn = new $bn();
+ }
+ function Sj() {
+ Sj = N, jg = new iwn();
+ }
+ function k7n() {
+ k7n = N, wYn = new li();
+ }
+ function Pj() {
+ Pj = N, DK = new j7n();
+ }
+ function Ij() {
+ Ij = N, $K = new jjn();
+ }
+ function Jv() {
+ Jv = N, hy = new aTn();
+ }
+ function Oj() {
+ Oj = N, NQn = new D2n();
+ }
+ function y7n() {
+ HIn(), this.c = new JI();
+ }
+ function j7n() {
+ Oe.call(this, hHn, 0);
+ }
+ function gd(n, e) {
+ Sa(n.c.b, e.c, e);
+ }
+ function Yv(n, e) {
+ Sa(n.c.c, e.b, e);
+ }
+ function rre(n, e, t) {
+ yr(n.d, e.f, t);
+ }
+ function cre(n, e, t, i) {
+ xpe(n, i, e, t);
+ }
+ function ure(n, e, t, i) {
+ i8e(i, n, e, t);
+ }
+ function sre(n, e, t, i) {
+ kCe(i, n, e, t);
+ }
+ function Dj(n, e) {
+ return n.a = e.g, n;
+ }
+ function E7n(n, e) {
+ return G3e(n.a, e);
+ }
+ function ore(n) {
+ return n.b ? n.b : n.a;
+ }
+ function fre(n) {
+ return (n.c + n.a) / 2;
+ }
+ function H0() {
+ H0 = N, Tne = new B2n();
+ }
+ function C7n() {
+ C7n = N, $ne = new H2n();
+ }
+ function T7n() {
+ T7n = N, Une = new m9n();
+ }
+ function M7n() {
+ M7n = N, Wne = new k9n();
+ }
+ function Y1() {
+ Y1 = N, co = new tG();
+ }
+ function $G() {
+ $G = N, w1n = new E9n();
+ }
+ function Zv() {
+ Zv = N, pH = new Syn();
+ }
+ function c1() {
+ c1 = N, Ly = new Pyn();
+ }
+ function rO() {
+ rO = N, see = new i3n();
+ }
+ function er() {
+ er = N, fee = new r3n();
+ }
+ function $j() {
+ $j = N, eI = new we();
+ }
+ function FG() {
+ FG = N, M1n = new X();
+ }
+ function Z1() {
+ Z1 = N, Ql = new u4n();
+ }
+ function hre(n) {
+ j.clearTimeout(n);
+ }
+ function xG(n) {
+ this.a = u(pe(n), 224);
+ }
+ function Fj(n) {
+ return u(n, 42).cd();
+ }
+ function G9(n) {
+ return n.b < n.d.gc();
+ }
+ function A7n(n, e) {
+ return kD(n.a, e);
+ }
+ function S7n(n, e) {
+ return hc(n, e) > 0;
+ }
+ function cO(n, e) {
+ return hc(n, e) < 0;
+ }
+ function n5(n, e) {
+ return n.a.get(e);
+ }
+ function lre(n, e) {
+ return e.split(n);
+ }
+ function P7n(n, e) {
+ return zu(n.e, e);
+ }
+ function LG(n) {
+ return _n(n), !1;
+ }
+ function xj(n) {
+ xn.call(this, n, 21);
+ }
+ function are(n, e) {
+ uMn.call(this, n, e);
+ }
+ function Lj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function uO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function NG(n) {
+ _D(), sEn.call(this, n);
+ }
+ function BG(n, e) {
+ hCn(n, n.length, e);
+ }
+ function z9(n, e) {
+ RCn(n, n.length, e);
+ }
+ function dre(n, e, t) {
+ e.ud(n.a.Ge(t));
+ }
+ function bre(n, e, t) {
+ e.we(n.a.Fe(t));
+ }
+ function wre(n, e, t) {
+ e.td(n.a.Kb(t));
+ }
+ function gre(n, e, t) {
+ n.Mb(t) && e.td(t);
+ }
+ function e5(n, e, t) {
+ n.splice(e, 0, t);
+ }
+ function pre(n, e) {
+ return hu(n.e, e);
+ }
+ function Nj(n, e) {
+ this.d = n, this.e = e;
+ }
+ function I7n(n, e) {
+ this.b = n, this.a = e;
+ }
+ function O7n(n, e) {
+ this.b = n, this.a = e;
+ }
+ function RG(n, e) {
+ this.b = n, this.a = e;
+ }
+ function D7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function $7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function F7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function x7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function f2(n, e) {
+ this.a = n, this.b = e;
+ }
+ function _G(n, e) {
+ this.b = n, this.a = e;
+ }
+ function KG(n, e) {
+ this.b = n, this.a = e;
+ }
+ function Bj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Rj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function HG(n, e) {
+ Oe.call(this, n, e);
+ }
+ function qG(n, e) {
+ Oe.call(this, n, e);
+ }
+ function kw(n, e) {
+ Oe.call(this, n, e);
+ }
+ function sO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function oO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function fO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function _j(n, e) {
+ Oe.call(this, n, e);
+ }
+ function GG(n, e) {
+ Oe.call(this, n, e);
+ }
+ function hO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function U9(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Kj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function lO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function t5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function zG(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Ut(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Hj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function L7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function N7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function B7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function R7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function _7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function K7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function H7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function q7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function G7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function UG(n, e) {
+ this.b = n, this.a = e;
+ }
+ function z7n(n, e) {
+ this.b = n, this.a = e;
+ }
+ function U7n(n, e) {
+ this.b = n, this.a = e;
+ }
+ function W7n(n, e) {
+ this.b = n, this.a = e;
+ }
+ function e3(n, e) {
+ this.c = n, this.d = e;
+ }
+ function X7n(n, e) {
+ this.e = n, this.d = e;
+ }
+ function V7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function Q7n(n, e) {
+ this.b = e, this.c = n;
+ }
+ function qj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function W9(n, e) {
+ Oe.call(this, n, e);
+ }
+ function aO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function i5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function WG(n, e) {
+ Oe.call(this, n, e);
+ }
+ function dO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function bO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function X9(n, e) {
+ Oe.call(this, n, e);
+ }
+ function XG(n, e) {
+ Oe.call(this, n, e);
+ }
+ function wO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function r5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function VG(n, e) {
+ Oe.call(this, n, e);
+ }
+ function c5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function u5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function q0(n, e) {
+ Oe.call(this, n, e);
+ }
+ function gO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function pO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function QG(n, e) {
+ Oe.call(this, n, e);
+ }
+ function s5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function vO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Gj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function V9(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Q9(n, e) {
+ Oe.call(this, n, e);
+ }
+ function h2(n, e) {
+ Oe.call(this, n, e);
+ }
+ function mO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function JG(n, e) {
+ Oe.call(this, n, e);
+ }
+ function kO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function yO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function YG(n, e) {
+ Oe.call(this, n, e);
+ }
+ function jO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function EO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function CO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function TO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function ZG(n, e) {
+ Oe.call(this, n, e);
+ }
+ function J7n(n, e) {
+ this.b = n, this.a = e;
+ }
+ function Y7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function Z7n(n, e) {
+ this.a = n, this.b = e;
+ }
+ function nkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function ekn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function nz(n, e) {
+ Oe.call(this, n, e);
+ }
+ function ez(n, e) {
+ Oe.call(this, n, e);
+ }
+ function tkn(n, e) {
+ this.b = n, this.d = e;
+ }
+ function tz(n, e) {
+ Oe.call(this, n, e);
+ }
+ function iz(n, e) {
+ Oe.call(this, n, e);
+ }
+ function ikn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function rkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function zj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function o5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function rz(n, e) {
+ Oe.call(this, n, e);
+ }
+ function cz(n, e) {
+ Oe.call(this, n, e);
+ }
+ function uz(n, e) {
+ Oe.call(this, n, e);
+ }
+ function MO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function sz(n, e) {
+ Oe.call(this, n, e);
+ }
+ function AO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Uj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function SO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function PO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function J9(n, e) {
+ Oe.call(this, n, e);
+ }
+ function IO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function oz(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Y9(n, e) {
+ Oe.call(this, n, e);
+ }
+ function fz(n, e) {
+ Oe.call(this, n, e);
+ }
+ function vre(n, e) {
+ return hu(n.c, e);
+ }
+ function mre(n, e) {
+ return hu(e.b, n);
+ }
+ function kre(n, e) {
+ return -n.b.Je(e);
+ }
+ function hz(n, e) {
+ return hu(n.g, e);
+ }
+ function Z9(n, e) {
+ Oe.call(this, n, e);
+ }
+ function l2(n, e) {
+ Oe.call(this, n, e);
+ }
+ function ckn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function ukn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function fn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function f5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function h5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function n8(n, e) {
+ Oe.call(this, n, e);
+ }
+ function OO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Wj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function l5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function DO(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Xj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function yw(n, e) {
+ Oe.call(this, n, e);
+ }
+ function e8(n, e) {
+ Oe.call(this, n, e);
+ }
+ function a5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function d5(n, e) {
+ Oe.call(this, n, e);
+ }
+ function t8(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Vj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function jw(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Qj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function skn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function okn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function fkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function hkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function lkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function akn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function Pi(n, e) {
+ this.a = n, this.b = e;
+ }
+ function Jj(n, e) {
+ Oe.call(this, n, e);
+ }
+ function dkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function bkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function wkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function gkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function pkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function vkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function mkn(n, e) {
+ this.b = n, this.a = e;
+ }
+ function kkn(n, e) {
+ this.b = n, this.a = e;
+ }
+ function ykn(n, e) {
+ this.b = n, this.a = e;
+ }
+ function jkn(n, e) {
+ this.b = n, this.a = e;
+ }
+ function Ekn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function Ckn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function yre(n, e) {
+ J9e(n.a, u(e, 56));
+ }
+ function Tkn(n, e) {
+ f0e(n.a, u(e, 11));
+ }
+ function jre(n, e) {
+ return f3(), e != n;
+ }
+ function Mkn() {
+ return J9n(), new Pzn();
+ }
+ function Akn() {
+ c$(), this.b = new hi();
+ }
+ function Skn() {
+ hM(), this.a = new hi();
+ }
+ function Pkn() {
+ tX(), lW.call(this);
+ }
+ function a2(n, e) {
+ Oe.call(this, n, e);
+ }
+ function Ikn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function Okn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function Yj(n, e) {
+ this.a = n, this.b = e;
+ }
+ function Dkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function $kn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function Fkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function xkn(n, e) {
+ this.d = n, this.b = e;
+ }
+ function lz(n, e) {
+ this.d = n, this.e = e;
+ }
+ function Lkn(n, e) {
+ this.f = n, this.c = e;
+ }
+ function i8(n, e) {
+ this.b = n, this.c = e;
+ }
+ function az(n, e) {
+ this.i = n, this.g = e;
+ }
+ function Nkn(n, e) {
+ this.e = n, this.a = e;
+ }
+ function Bkn(n, e) {
+ this.a = n, this.b = e;
+ }
+ function dz(n, e) {
+ n.i = null, nT(n, e);
+ }
+ function Ere(n, e) {
+ n && it($y, n, e);
+ }
+ function Rkn(n, e) {
+ return NF(n.a, e);
+ }
+ function Zj(n) {
+ return g7(n.c, n.b);
+ }
+ function Vr(n) {
+ return n ? n.dd() : null;
+ }
+ function B(n) {
+ return n ?? null;
+ }
+ function G0(n) {
+ return typeof n === X2;
+ }
+ function z0(n) {
+ return typeof n === UZ;
+ }
+ function yi(n) {
+ return typeof n === EL;
+ }
+ function nl(n, e) {
+ return n.Hd().Xb(e);
+ }
+ function nE(n, e) {
+ return Rbe(n.Kc(), e);
+ }
+ function pd(n, e) {
+ return hc(n, e) == 0;
+ }
+ function Cre(n, e) {
+ return hc(n, e) >= 0;
+ }
+ function b5(n, e) {
+ return hc(n, e) != 0;
+ }
+ function Tre(n) {
+ return "" + (_n(n), n);
+ }
+ function r8(n, e) {
+ return n.substr(e);
+ }
+ function _kn(n) {
+ return $u(n), n.d.gc();
+ }
+ function $O(n) {
+ return yme(n, n.c), n;
+ }
+ function eE(n) {
+ return A5(n == null), n;
+ }
+ function w5(n, e) {
+ return n.a += "" + e, n;
+ }
+ function dr(n, e) {
+ return n.a += "" + e, n;
+ }
+ function g5(n, e) {
+ return n.a += "" + e, n;
+ }
+ function cc(n, e) {
+ return n.a += "" + e, n;
+ }
+ function De(n, e) {
+ return n.a += "" + e, n;
+ }
+ function bz(n, e) {
+ return n.a += "" + e, n;
+ }
+ function Kkn(n, e) {
+ Ht(n, e, n.a, n.a.a);
+ }
+ function sa(n, e) {
+ Ht(n, e, n.c.b, n.c);
+ }
+ function Mre(n, e, t) {
+ QFn(e, Mx(n, t));
+ }
+ function Are(n, e, t) {
+ QFn(e, Mx(n, t));
+ }
+ function Sre(n, e) {
+ k0e(new ie(n), e);
+ }
+ function Hkn(n, e) {
+ n.q.setTime(Fd(e));
+ }
+ function qkn(n, e) {
+ kW.call(this, n, e);
+ }
+ function Gkn(n, e) {
+ kW.call(this, n, e);
+ }
+ function FO(n, e) {
+ kW.call(this, n, e);
+ }
+ function zkn(n) {
+ Eu(this), Z5(this, n);
+ }
+ function wz(n) {
+ return Ln(n, 0), null;
+ }
+ function Lo(n) {
+ return n.a = 0, n.b = 0, n;
+ }
+ function Ukn(n, e) {
+ return n.a = e.g + 1, n;
+ }
+ function Pre(n, e) {
+ return n.j[e.p] == 2;
+ }
+ function gz(n) {
+ return lhe(u(n, 79));
+ }
+ function Wkn() {
+ Wkn = N, EUn = Fe(qF());
+ }
+ function Xkn() {
+ Xkn = N, _Wn = Fe(INn());
+ }
+ function Vkn() {
+ this.b = new s2(ob(12));
+ }
+ function Qkn() {
+ this.b = 0, this.a = !1;
+ }
+ function Jkn() {
+ this.b = 0, this.a = !1;
+ }
+ function p5(n) {
+ this.a = n, TI.call(this);
+ }
+ function Ykn(n) {
+ this.a = n, TI.call(this);
+ }
+ function In(n, e) {
+ ri.call(this, n, e);
+ }
+ function xO(n, e) {
+ Q0.call(this, n, e);
+ }
+ function Ew(n, e) {
+ az.call(this, n, e);
+ }
+ function LO(n, e) {
+ K3.call(this, n, e);
+ }
+ function Zkn(n, e) {
+ c8.call(this, n, e);
+ }
+ function He(n, e) {
+ $j(), it(eI, n, e);
+ }
+ function NO(n, e) {
+ return Yu(n.a, 0, e);
+ }
+ function nyn(n, e) {
+ return n.a.a.a.cc(e);
+ }
+ function eyn(n, e) {
+ return B(n) === B(e);
+ }
+ function Ire(n, e) {
+ return ni(n.a, e.a);
+ }
+ function Ore(n, e) {
+ return zc(n.a, e.a);
+ }
+ function Dre(n, e) {
+ return LCn(n.a, e.a);
+ }
+ function Pf(n, e) {
+ return n.indexOf(e);
+ }
+ function vd(n, e) {
+ return n == e ? 0 : n ? 1 : -1;
+ }
+ function tE(n) {
+ return n < 10 ? "0" + n : "" + n;
+ }
+ function $re(n) {
+ return pe(n), new p5(n);
+ }
+ function tyn(n) {
+ return Nc(n.l, n.m, n.h);
+ }
+ function t3(n) {
+ return zt((_n(n), n));
+ }
+ function Fre(n) {
+ return zt((_n(n), n));
+ }
+ function iyn(n, e) {
+ return zc(n.g, e.g);
+ }
+ function Fr(n) {
+ return typeof n === UZ;
+ }
+ function xre(n) {
+ return n == w0 || n == qb;
+ }
+ function Lre(n) {
+ return n == w0 || n == Hb;
+ }
+ function pz(n) {
+ return xr(n.b.b, n, 0);
+ }
+ function ryn(n) {
+ this.a = Mkn(), this.b = n;
+ }
+ function cyn(n) {
+ this.a = Mkn(), this.b = n;
+ }
+ function Nre(n, e) {
+ return W(n.a, e), e;
+ }
+ function Bre(n, e) {
+ return W(n.c, e), n;
+ }
+ function uyn(n, e) {
+ return rs(n.a, e), n;
+ }
+ function Rre(n, e) {
+ return wo(), e.a += n;
+ }
+ function _re(n, e) {
+ return wo(), e.a += n;
+ }
+ function Kre(n, e) {
+ return wo(), e.c += n;
+ }
+ function vz(n, e) {
+ A3(n, 0, n.length, e);
+ }
+ function Ah() {
+ Tq.call(this, new wa());
+ }
+ function syn() {
+ xE.call(this, 0, 0, 0, 0);
+ }
+ function d2() {
+ ks.call(this, 0, 0, 0, 0);
+ }
+ function kr(n) {
+ this.a = n.a, this.b = n.b;
+ }
+ function el(n) {
+ return n == Ys || n == Ao;
+ }
+ function i3(n) {
+ return n == Jh || n == Qh;
+ }
+ function oyn(n) {
+ return n == xg || n == Fg;
+ }
+ function Cw(n) {
+ return n != jf && n != Hl;
+ }
+ function Hu(n) {
+ return n.Lg() && n.Mg();
+ }
+ function fyn(n) {
+ return JE(u(n, 118));
+ }
+ function iE(n) {
+ return rs(new li(), n);
+ }
+ function hyn(n, e) {
+ return new K3(e, n);
+ }
+ function Hre(n, e) {
+ return new K3(e, n);
+ }
+ function mz(n, e, t) {
+ UC(n, e), WC(n, t);
+ }
+ function rE(n, e, t) {
+ _d(n, e), Rd(n, t);
+ }
+ function Jo(n, e, t) {
+ Yc(n, e), Zc(n, t);
+ }
+ function cE(n, e, t) {
+ O3(n, e), $3(n, t);
+ }
+ function uE(n, e, t) {
+ D3(n, e), F3(n, t);
+ }
+ function BO(n, e) {
+ W3(n, e), x3(n, n.D);
+ }
+ function kz(n) {
+ Lkn.call(this, n, !0);
+ }
+ function lyn(n, e, t) {
+ fU.call(this, n, e, t);
+ }
+ function tl(n) {
+ yl(), qbe.call(this, n);
+ }
+ function ayn() {
+ Lj.call(this, "Head", 1);
+ }
+ function dyn() {
+ Lj.call(this, "Tail", 3);
+ }
+ function RO(n) {
+ n.c = F(Zn, rn, 1, 0, 5, 1);
+ }
+ function byn(n) {
+ n.a = F(Zn, rn, 1, 8, 5, 1);
+ }
+ function wyn(n) {
+ Jc(n.xf(), new i5n(n));
+ }
+ function Tw(n) {
+ return n != null ? mt(n) : 0;
+ }
+ function qre(n, e) {
+ return fb(e, nf(n));
+ }
+ function Gre(n, e) {
+ return fb(e, nf(n));
+ }
+ function zre(n, e) {
+ return n[n.length] = e;
+ }
+ function Ure(n, e) {
+ return n[n.length] = e;
+ }
+ function yz(n) {
+ return zoe(n.b.Kc(), n.a);
+ }
+ function Wre(n, e) {
+ return ZC(BD(n.d), e);
+ }
+ function Xre(n, e) {
+ return ZC(BD(n.g), e);
+ }
+ function Vre(n, e) {
+ return ZC(BD(n.j), e);
+ }
+ function tr(n, e) {
+ ri.call(this, n.b, e);
+ }
+ function md(n) {
+ xE.call(this, n, n, n, n);
+ }
+ function jz(n) {
+ return n.b && uL(n), n.a;
+ }
+ function Ez(n) {
+ return n.b && uL(n), n.c;
+ }
+ function Qre(n, e) {
+ pf || (n.b = e);
+ }
+ function _O(n, e, t) {
+ return Mt(n, e, t), t;
+ }
+ function gyn(n, e, t) {
+ Mt(n.c[e.g], e.g, t);
+ }
+ function Jre(n, e, t) {
+ u(n.c, 69).Xh(e, t);
+ }
+ function Yre(n, e, t) {
+ Jo(t, t.i + n, t.j + e);
+ }
+ function Zre(n, e) {
+ me(wc(n.a), IMn(e));
+ }
+ function nce(n, e) {
+ me(Ou(n.a), OMn(e));
+ }
+ function v5(n) {
+ Je(), ud.call(this, n);
+ }
+ function ece(n) {
+ return n == null ? 0 : mt(n);
+ }
+ function pyn() {
+ pyn = N, hK = new f6(cH);
+ }
+ function Ee() {
+ Ee = N, new vyn(), new X();
+ }
+ function vyn() {
+ new we(), new we(), new we();
+ }
+ function Cz() {
+ Cz = N, Hq(), bin = new we();
+ }
+ function Yo() {
+ Yo = N, j.Math.log(2);
+ }
+ function vs() {
+ vs = N, Eh = (C7n(), $ne);
+ }
+ function tce() {
+ throw T(new t1(rzn));
+ }
+ function ice() {
+ throw T(new t1(rzn));
+ }
+ function rce() {
+ throw T(new t1(czn));
+ }
+ function cce() {
+ throw T(new t1(czn));
+ }
+ function myn(n) {
+ this.a = n, HU.call(this, n);
+ }
+ function KO(n) {
+ this.a = n, Ej.call(this, n);
+ }
+ function HO(n) {
+ this.a = n, Ej.call(this, n);
+ }
+ function wi(n, e) {
+ mD(n.c, n.c.length, e);
+ }
+ function Kr(n) {
+ return n.a < n.c.c.length;
+ }
+ function Tz(n) {
+ return n.a < n.c.a.length;
+ }
+ function kyn(n, e) {
+ return n.a ? n.b : e.De();
+ }
+ function zc(n, e) {
+ return n < e ? -1 : n > e ? 1 : 0;
+ }
+ function yyn(n, e) {
+ return hc(n, e) > 0 ? n : e;
+ }
+ function Nc(n, e, t) {
+ return { l: n, m: e, h: t };
+ }
+ function uce(n, e) {
+ n.a != null && Tkn(e, n.a);
+ }
+ function jyn(n) {
+ n.a = new aI(), n.c = new aI();
+ }
+ function sE(n) {
+ this.b = n, this.a = new X();
+ }
+ function Eyn(n) {
+ this.b = new oan(), this.a = n;
+ }
+ function Mz(n) {
+ vU.call(this), this.a = n;
+ }
+ function Cyn() {
+ Lj.call(this, "Range", 2);
+ }
+ function Tyn() {
+ kJ(), this.a = new B7(Hrn);
+ }
+ function sce(n, e) {
+ pe(e), Iw(n).Jc(new oo());
+ }
+ function oce(n, e) {
+ return Zu(), e.n.b += n;
+ }
+ function fce(n, e, t) {
+ return it(n.g, t, e);
+ }
+ function hce(n, e, t) {
+ return it(n.k, t, e);
+ }
+ function lce(n, e) {
+ return it(n.a, e.a, e);
+ }
+ function Mw(n, e, t) {
+ return _Q(e, t, n.c);
+ }
+ function Az(n) {
+ return new fn(n.c, n.d);
+ }
+ function ace(n) {
+ return new fn(n.c, n.d);
+ }
+ function Qr(n) {
+ return new fn(n.a, n.b);
+ }
+ function Myn(n, e) {
+ return xEe(n.a, e, null);
+ }
+ function dce(n) {
+ Ki(n, null), Ti(n, null);
+ }
+ function Ayn(n) {
+ s$(n, null), o$(n, null);
+ }
+ function Syn() {
+ c8.call(this, null, null);
+ }
+ function Pyn() {
+ wE.call(this, null, null);
+ }
+ function Sz(n) {
+ this.a = n, we.call(this);
+ }
+ function bce(n) {
+ this.b = (Pn(), new DI(n));
+ }
+ function oE(n) {
+ n.j = F(Ain, q, 310, 0, 0, 1);
+ }
+ function wce(n, e, t) {
+ n.c.Vc(e, u(t, 133));
+ }
+ function gce(n, e, t) {
+ n.c.ji(e, u(t, 133));
+ }
+ function Iyn(n, e) {
+ de(n), n.Gc(u(e, 15));
+ }
+ function m5(n, e) {
+ return Jje(n.c, n.b, e);
+ }
+ function pce(n, e) {
+ return new Yyn(n.Kc(), e);
+ }
+ function qO(n, e) {
+ return gwe(n.Kc(), e) != -1;
+ }
+ function Pz(n, e) {
+ return n.a.Bc(e) != null;
+ }
+ function fE(n) {
+ return n.Ob() ? n.Pb() : null;
+ }
+ function Oyn(n) {
+ return Ks(n, 0, n.length);
+ }
+ function I(n, e) {
+ return n != null && WF(n, e);
+ }
+ function vce(n, e) {
+ n.q.setHours(e), S6(n, e);
+ }
+ function Dyn(n, e) {
+ n.c && (ZU(e), rMn(e));
+ }
+ function mce(n, e, t) {
+ u(n.Kb(t), 164).Nb(e);
+ }
+ function kce(n, e, t) {
+ return SEe(n, e, t), t;
+ }
+ function $yn(n, e, t) {
+ n.a = e ^ 1502, n.b = t ^ tN;
+ }
+ function GO(n, e, t) {
+ return n.a[e.g][t.g];
+ }
+ function Zo(n, e) {
+ return n.a[e.c.p][e.p];
+ }
+ function yce(n, e) {
+ return n.e[e.c.p][e.p];
+ }
+ function jce(n, e) {
+ return n.c[e.c.p][e.p];
+ }
+ function Ece(n, e) {
+ return n.j[e.p] = D9e(e);
+ }
+ function Cce(n, e) {
+ return DX(n.f, e.tg());
+ }
+ function Tce(n, e) {
+ return DX(n.b, e.tg());
+ }
+ function Mce(n, e) {
+ return n.a < PU(e) ? -1 : 1;
+ }
+ function Ace(n, e, t) {
+ return t ? e != 0 : e != n - 1;
+ }
+ function Sce(n, e, t) {
+ return n.a = e, n.b = t, n;
+ }
+ function If(n, e) {
+ return n.a *= e, n.b *= e, n;
+ }
+ function k5(n, e, t) {
+ return Mt(n.g, e, t), t;
+ }
+ function Pce(n, e, t, i) {
+ Mt(n.a[e.g], t.g, i);
+ }
+ function Ice(n, e) {
+ W0(e, n.a.a.a, n.a.a.b);
+ }
+ function Fyn(n) {
+ n.a = u(Rn(n.b.a, 4), 126);
+ }
+ function xyn(n) {
+ n.a = u(Rn(n.b.a, 4), 126);
+ }
+ function Oce(n) {
+ T8(n, Dqn), _x(n, DCe(n));
+ }
+ function r3() {
+ r3 = N, UA = new dj(null);
+ }
+ function Iz() {
+ Iz = N, Iz(), Dzn = new aln();
+ }
+ function Oz() {
+ this.Bb |= 256, this.Bb |= 512;
+ }
+ function ie(n) {
+ this.i = n, this.f = this.i.j;
+ }
+ function Yt(n, e, t) {
+ v8.call(this, n, e, t);
+ }
+ function hE(n, e, t) {
+ Yt.call(this, n, e, t);
+ }
+ function fu(n, e, t) {
+ Yt.call(this, n, e, t);
+ }
+ function Lyn(n, e, t) {
+ hE.call(this, n, e, t);
+ }
+ function Dz(n, e, t) {
+ v8.call(this, n, e, t);
+ }
+ function Aw(n, e, t) {
+ v8.call(this, n, e, t);
+ }
+ function $z(n, e, t) {
+ ME.call(this, n, e, t);
+ }
+ function Nyn(n, e, t) {
+ ME.call(this, n, e, t);
+ }
+ function Byn(n, e, t) {
+ $z.call(this, n, e, t);
+ }
+ function Ryn(n, e, t) {
+ Dz.call(this, n, e, t);
+ }
+ function Sw(n, e) {
+ this.a = n, Ej.call(this, e);
+ }
+ function _yn(n, e) {
+ this.a = n, QI.call(this, e);
+ }
+ function Kyn(n, e) {
+ this.a = n, QI.call(this, e);
+ }
+ function Hyn(n, e) {
+ this.a = n, QI.call(this, e);
+ }
+ function Fz(n) {
+ this.a = n, wvn.call(this, n.d);
+ }
+ function il(n) {
+ this.c = n, this.a = this.c.a;
+ }
+ function xz(n, e) {
+ this.a = e, QI.call(this, n);
+ }
+ function qyn(n, e) {
+ this.a = e, m$.call(this, n);
+ }
+ function Gyn(n, e) {
+ this.a = n, m$.call(this, e);
+ }
+ function Dce(n, e) {
+ return vW(CD(n.c)).Xb(e);
+ }
+ function Lz(n, e) {
+ return Wge(n, new X1(), e).a;
+ }
+ function ue(n, e) {
+ return pe(e), new zyn(n, e);
+ }
+ function zyn(n, e) {
+ this.a = e, Cj.call(this, n);
+ }
+ function Nz(n) {
+ this.b = n, this.a = this.b.a.e;
+ }
+ function Uyn(n) {
+ n.b.Qb(), --n.d.f.d, NE(n.d);
+ }
+ function Wyn(n) {
+ AI.call(this, u(pe(n), 35));
+ }
+ function Xyn(n) {
+ AI.call(this, u(pe(n), 35));
+ }
+ function Vyn() {
+ Oe.call(this, "INSTANCE", 0);
+ }
+ function Bz(n) {
+ if (!n)
+ throw T(new F9());
+ }
+ function Rz(n) {
+ if (!n)
+ throw T(new su());
+ }
+ function _z(n) {
+ if (!n)
+ throw T(new rc());
+ }
+ function Qyn() {
+ Qyn = N, rO(), oee = new nvn();
+ }
+ function qn() {
+ qn = N, Ga = !1, G4 = !0;
+ }
+ function Ns(n) {
+ A9.call(this, (_n(n), n));
+ }
+ function Ju(n) {
+ A9.call(this, (_n(n), n));
+ }
+ function lE(n) {
+ Rp.call(this, n), this.a = n;
+ }
+ function Kz(n) {
+ _p.call(this, n), this.a = n;
+ }
+ function Hz(n) {
+ Up.call(this, n), this.a = n;
+ }
+ function Jyn() {
+ oE(this), eC(this), this._d();
+ }
+ function Yyn(n, e) {
+ this.a = e, Cj.call(this, n);
+ }
+ function Zyn(n, e) {
+ return new Wxn(n.a, n.b, e);
+ }
+ function aE(n, e) {
+ return n.lastIndexOf(e);
+ }
+ function qz(n, e, t) {
+ return n.indexOf(e, t);
+ }
+ function y5(n) {
+ return n == null ? tu : Nr(n);
+ }
+ function $ce(n) {
+ return n == null ? null : n.name;
+ }
+ function Gz(n) {
+ return n.a != null ? n.a : null;
+ }
+ function Fce(n) {
+ return yj(n.a) ? xMn(n) : null;
+ }
+ function zO(n, e) {
+ return R5(n.a, e) != null;
+ }
+ function hu(n, e) {
+ return !!e && n.b[e.g] == e;
+ }
+ function kd(n) {
+ return n.$H || (n.$H = ++WTe);
+ }
+ function xce(n) {
+ return n.l + n.m * J2 + n.h * Fa;
+ }
+ function njn(n, e) {
+ return W(e.a, n.a), n.a;
+ }
+ function ejn(n, e) {
+ return W(e.b, n.a), n.a;
+ }
+ function yd(n, e) {
+ return W(e.a, n.a), n.a;
+ }
+ function jd(n) {
+ return ne(n.a != null), n.a;
+ }
+ function UO(n) {
+ Tq.call(this, new _X(n));
+ }
+ function zz(n, e) {
+ UQ.call(this, n, e, null);
+ }
+ function j5(n) {
+ this.a = n, mq.call(this, n);
+ }
+ function dE() {
+ dE = N, JA = new ri(DKn, 0);
+ }
+ function bE(n, e) {
+ return ++n.b, W(n.a, e);
+ }
+ function Uz(n, e) {
+ return ++n.b, Vc(n.a, e);
+ }
+ function Lce(n, e) {
+ return ni(n.n.a, e.n.a);
+ }
+ function Nce(n, e) {
+ return ni(n.c.d, e.c.d);
+ }
+ function Bce(n, e) {
+ return ni(n.c.c, e.c.c);
+ }
+ function Uc(n, e) {
+ return u(ct(n.b, e), 15);
+ }
+ function Rce(n, e) {
+ return n.n.b = (_n(e), e);
+ }
+ function _ce(n, e) {
+ return n.n.b = (_n(e), e);
+ }
+ function E5(n) {
+ return Kr(n.a) || Kr(n.b);
+ }
+ function Kce(n, e, t) {
+ return SAn(n, e, t, n.b);
+ }
+ function Wz(n, e, t) {
+ return SAn(n, e, t, n.c);
+ }
+ function Xz(n, e, t) {
+ u(q8(n, e), 21).Fc(t);
+ }
+ function Hce(n, e, t) {
+ MF(n.a, t), KT(n.a, e);
+ }
+ function c8(n, e) {
+ Zv(), this.a = n, this.b = e;
+ }
+ function wE(n, e) {
+ c1(), this.b = n, this.c = e;
+ }
+ function WO(n, e) {
+ ED(), this.f = e, this.d = n;
+ }
+ function Vz(n, e) {
+ $X(e, n), this.d = n, this.c = e;
+ }
+ function u1(n) {
+ var e;
+ e = n.a, n.a = n.b, n.b = e;
+ }
+ function qce(n) {
+ return wo(), !!n && !n.dc();
+ }
+ function Gce(n) {
+ return new rb(3, n);
+ }
+ function Qz(n, e) {
+ return new Yjn(n, n.gc(), e);
+ }
+ function zce(n) {
+ return aj(), $e((EMn(), dzn), n);
+ }
+ function b2(n) {
+ this.d = n, ie.call(this, n);
+ }
+ function w2(n) {
+ this.c = n, ie.call(this, n);
+ }
+ function u8(n) {
+ this.c = n, b2.call(this, n);
+ }
+ function tjn() {
+ Qv(), this.b = new R5n(this);
+ }
+ function nh(n) {
+ return is(n, Ib), new Ic(n);
+ }
+ function ijn(n) {
+ return m3(), parseInt(n) || -1;
+ }
+ function Yu(n, e, t) {
+ return n.substr(e, t - e);
+ }
+ function c3(n, e, t) {
+ return qz(n, eu(e), t);
+ }
+ function XO(n) {
+ return IW(n.c, n.c.length);
+ }
+ function Uce(n) {
+ return n.f != null ? n.f : "" + n.g;
+ }
+ function VO(n) {
+ return n.f != null ? n.f : "" + n.g;
+ }
+ function QO(n) {
+ return ne(n.b != 0), n.a.a.c;
+ }
+ function gE(n) {
+ return ne(n.b != 0), n.c.b.c;
+ }
+ function s8(n) {
+ I(n, 150) && u(n, 150).Gh();
+ }
+ function pE(n) {
+ return n.b = u(FTn(n.a), 42);
+ }
+ function Jz(n) {
+ Zp(), this.b = n, this.a = !0;
+ }
+ function rjn(n) {
+ Mj(), this.b = n, this.a = !0;
+ }
+ function cjn(n) {
+ n.d = new sjn(n), n.e = new we();
+ }
+ function ujn(n) {
+ if (!n)
+ throw T(new ps());
+ }
+ function Yz(n) {
+ if (!n)
+ throw T(new F9());
+ }
+ function U0(n) {
+ if (!n)
+ throw T(new su());
+ }
+ function Wce(n) {
+ if (!n)
+ throw T(new xI());
+ }
+ function ne(n) {
+ if (!n)
+ throw T(new rc());
+ }
+ function sjn(n) {
+ qU.call(this, n, null, null);
+ }
+ function ojn() {
+ Oe.call(this, "POLYOMINO", 0);
+ }
+ function fjn(n, e, t, i) {
+ pW.call(this, n, e, t, i);
+ }
+ function Xce(n, e) {
+ return kl(), Tn(n, e.e, e);
+ }
+ function Vce(n, e, t) {
+ return Oj(), t.qg(n, e);
+ }
+ function ai(n, e) {
+ return !!n.q && zu(n.q, e);
+ }
+ function Qce(n, e) {
+ return n > 0 ? e * e / n : e * e * 100;
+ }
+ function Jce(n, e) {
+ return n > 0 ? e / (n * n) : e * 100;
+ }
+ function Yce(n, e, t) {
+ return W(e, t$n(n, t));
+ }
+ function Zce(n, e, t) {
+ DC(), n.Xe(e) && t.td(n);
+ }
+ function u3(n, e, t) {
+ var i;
+ i = n.Zc(e), i.Rb(t);
+ }
+ function W0(n, e, t) {
+ return n.a += e, n.b += t, n;
+ }
+ function nue(n, e, t) {
+ return n.a *= e, n.b *= t, n;
+ }
+ function o8(n, e, t) {
+ return n.a -= e, n.b -= t, n;
+ }
+ function Zz(n, e) {
+ return n.a = e.a, n.b = e.b, n;
+ }
+ function vE(n) {
+ return n.a = -n.a, n.b = -n.b, n;
+ }
+ function hjn(n) {
+ this.c = n, this.a = 1, this.b = 1;
+ }
+ function ljn(n) {
+ this.c = n, Yc(n, 0), Zc(n, 0);
+ }
+ function ajn(n) {
+ Ct.call(this), V5(this, n);
+ }
+ function djn(n) {
+ yL(), Bmn(this), this.mf(n);
+ }
+ function bjn(n, e) {
+ Zv(), c8.call(this, n, e);
+ }
+ function nU(n, e) {
+ c1(), wE.call(this, n, e);
+ }
+ function wjn(n, e) {
+ c1(), wE.call(this, n, e);
+ }
+ function gjn(n, e) {
+ c1(), nU.call(this, n, e);
+ }
+ function qu(n, e, t) {
+ Wu.call(this, n, e, t, 2);
+ }
+ function JO(n, e) {
+ vs(), FE.call(this, n, e);
+ }
+ function pjn(n, e) {
+ vs(), JO.call(this, n, e);
+ }
+ function eU(n, e) {
+ vs(), JO.call(this, n, e);
+ }
+ function vjn(n, e) {
+ vs(), eU.call(this, n, e);
+ }
+ function tU(n, e) {
+ vs(), FE.call(this, n, e);
+ }
+ function mjn(n, e) {
+ vs(), tU.call(this, n, e);
+ }
+ function kjn(n, e) {
+ vs(), FE.call(this, n, e);
+ }
+ function eue(n, e) {
+ return n.c.Fc(u(e, 133));
+ }
+ function iU(n, e, t) {
+ return jM(G8(n, e), t);
+ }
+ function tue(n, e, t) {
+ return e.Qk(n.e, n.c, t);
+ }
+ function iue(n, e, t) {
+ return e.Rk(n.e, n.c, t);
+ }
+ function YO(n, e) {
+ return gl(n.e, u(e, 49));
+ }
+ function rue(n, e, t) {
+ s6(Ou(n.a), e, OMn(t));
+ }
+ function cue(n, e, t) {
+ s6(wc(n.a), e, IMn(t));
+ }
+ function rU(n, e) {
+ e.$modCount = n.$modCount;
+ }
+ function C5() {
+ C5 = N, Xm = new kt("root");
+ }
+ function s3() {
+ s3 = N, xy = new g9n(), new p9n();
+ }
+ function yjn() {
+ this.a = new Dd(), this.b = new Dd();
+ }
+ function cU() {
+ _In.call(this), this.Bb |= Ji;
+ }
+ function jjn() {
+ Oe.call(this, "GROW_TREE", 0);
+ }
+ function uue(n) {
+ return n == null ? null : CCe(n);
+ }
+ function sue(n) {
+ return n == null ? null : D5e(n);
+ }
+ function oue(n) {
+ return n == null ? null : Nr(n);
+ }
+ function fue(n) {
+ return n == null ? null : Nr(n);
+ }
+ function Sh(n) {
+ n.o == null && u9e(n);
+ }
+ function sn(n) {
+ return A5(n == null || G0(n)), n;
+ }
+ function Y(n) {
+ return A5(n == null || z0(n)), n;
+ }
+ function Te(n) {
+ return A5(n == null || yi(n)), n;
+ }
+ function uU(n) {
+ this.q = new j.Date(Fd(n));
+ }
+ function f8(n, e) {
+ this.c = n, Jp.call(this, n, e);
+ }
+ function mE(n, e) {
+ this.a = n, f8.call(this, n, e);
+ }
+ function hue(n, e) {
+ this.d = n, Dvn(this), this.b = e;
+ }
+ function sU(n, e) {
+ P$.call(this, n), this.a = e;
+ }
+ function oU(n, e) {
+ P$.call(this, n), this.a = e;
+ }
+ function lue(n) {
+ xQ.call(this, 0, 0), this.f = n;
+ }
+ function fU(n, e, t) {
+ IC.call(this, n, e, t, null);
+ }
+ function Ejn(n, e, t) {
+ IC.call(this, n, e, t, null);
+ }
+ function aue(n, e, t) {
+ return n.ue(e, t) <= 0 ? t : e;
+ }
+ function due(n, e, t) {
+ return n.ue(e, t) <= 0 ? e : t;
+ }
+ function bue(n, e) {
+ return u(Ld(n.b, e), 149);
+ }
+ function wue(n, e) {
+ return u(Ld(n.c, e), 229);
+ }
+ function ZO(n) {
+ return u(un(n.a, n.b), 287);
+ }
+ function Cjn(n) {
+ return new fn(n.c, n.d + n.a);
+ }
+ function Tjn(n) {
+ return Zu(), oyn(u(n, 197));
+ }
+ function X0() {
+ X0 = N, prn = Cn((Vu(), rd));
+ }
+ function gue(n, e) {
+ e.a ? e7e(n, e) : zO(n.a, e.b);
+ }
+ function Mjn(n, e) {
+ pf || W(n.a, e);
+ }
+ function pue(n, e) {
+ return H9(), _3(e.d.i, n);
+ }
+ function vue(n, e) {
+ return x2(), new SBn(e, n);
+ }
+ function Of(n, e) {
+ return T8(e, ann), n.f = e, n;
+ }
+ function hU(n, e, t) {
+ return t = ss(n, e, 3, t), t;
+ }
+ function lU(n, e, t) {
+ return t = ss(n, e, 6, t), t;
+ }
+ function aU(n, e, t) {
+ return t = ss(n, e, 9, t), t;
+ }
+ function h8(n, e, t) {
+ ++n.j, n.Ki(), A$(n, e, t);
+ }
+ function Ajn(n, e, t) {
+ ++n.j, n.Hi(e, n.oi(e, t));
+ }
+ function Sjn(n, e, t) {
+ var i;
+ i = n.Zc(e), i.Rb(t);
+ }
+ function Pjn(n, e, t) {
+ return MZ(n.c, n.b, e, t);
+ }
+ function dU(n, e) {
+ return (e & nt) % n.d.length;
+ }
+ function ri(n, e) {
+ kt.call(this, n), this.a = e;
+ }
+ function bU(n, e) {
+ xq.call(this, n), this.a = e;
+ }
+ function nD(n, e) {
+ xq.call(this, n), this.a = e;
+ }
+ function Ijn(n, e) {
+ this.c = n, Nd.call(this, e);
+ }
+ function Ojn(n, e) {
+ this.a = n, Dmn.call(this, e);
+ }
+ function l8(n, e) {
+ this.a = n, Dmn.call(this, e);
+ }
+ function Djn(n) {
+ this.a = (is(n, Ib), new Ic(n));
+ }
+ function $jn(n) {
+ this.a = (is(n, Ib), new Ic(n));
+ }
+ function a8(n) {
+ return !n.a && (n.a = new vr()), n.a;
+ }
+ function Fjn(n) {
+ return n > 8 ? 0 : n + 1;
+ }
+ function mue(n, e) {
+ return qn(), n == e ? 0 : n ? 1 : -1;
+ }
+ function wU(n, e, t) {
+ return m2(n, u(e, 22), t);
+ }
+ function kue(n, e, t) {
+ return n.apply(e, t);
+ }
+ function xjn(n, e, t) {
+ return n.a += Ks(e, 0, t), n;
+ }
+ function gU(n, e) {
+ var t;
+ return t = n.e, n.e = e, t;
+ }
+ function yue(n, e) {
+ var t;
+ t = n[eN], t.call(n, e);
+ }
+ function jue(n, e) {
+ var t;
+ t = n[eN], t.call(n, e);
+ }
+ function V0(n, e) {
+ n.a.Vc(n.b, e), ++n.b, n.c = -1;
+ }
+ function Ljn(n) {
+ Eu(n.e), n.d.b = n.d, n.d.a = n.d;
+ }
+ function d8(n) {
+ n.b ? d8(n.b) : n.f.c.zc(n.e, n.d);
+ }
+ function Eue(n, e, t) {
+ ua(), Pvn(n, e.Ce(n.a, t));
+ }
+ function Cue(n, e) {
+ return nO(v$n(n.a, e, !0));
+ }
+ function Tue(n, e) {
+ return nO(m$n(n.a, e, !0));
+ }
+ function bo(n, e) {
+ return pj(new Array(e), n);
+ }
+ function eD(n) {
+ return String.fromCharCode(n);
+ }
+ function Mue(n) {
+ return n == null ? null : n.message;
+ }
+ function Njn() {
+ this.a = new X(), this.b = new X();
+ }
+ function Bjn() {
+ this.a = new LH(), this.b = new Wmn();
+ }
+ function Rjn() {
+ this.b = new Li(), this.c = new X();
+ }
+ function pU() {
+ this.d = new Li(), this.e = new Li();
+ }
+ function vU() {
+ this.n = new Li(), this.o = new Li();
+ }
+ function kE() {
+ this.n = new i2(), this.i = new d2();
+ }
+ function _jn() {
+ this.a = new m4n(), this.b = new uwn();
+ }
+ function Kjn() {
+ this.a = new X(), this.d = new X();
+ }
+ function Hjn() {
+ this.b = new hi(), this.a = new hi();
+ }
+ function qjn() {
+ this.b = new we(), this.a = new we();
+ }
+ function Gjn() {
+ this.b = new C8n(), this.a = new ogn();
+ }
+ function zjn() {
+ kE.call(this), this.a = new Li();
+ }
+ function T5(n) {
+ Jbe.call(this, n, (FC(), vR));
+ }
+ function mU(n, e, t, i) {
+ xE.call(this, n, e, t, i);
+ }
+ function Aue(n, e, t) {
+ t != null && JC(e, rx(n, t));
+ }
+ function Sue(n, e, t) {
+ t != null && YC(e, rx(n, t));
+ }
+ function kU(n, e, t) {
+ return t = ss(n, e, 11, t), t;
+ }
+ function st(n, e) {
+ return n.a += e.a, n.b += e.b, n;
+ }
+ function ji(n, e) {
+ return n.a -= e.a, n.b -= e.b, n;
+ }
+ function Pue(n, e) {
+ return n.n.a = (_n(e), e + 10);
+ }
+ function Iue(n, e) {
+ return n.n.a = (_n(e), e + 10);
+ }
+ function Oue(n, e) {
+ return e == n || s4(sM(e), n);
+ }
+ function Ujn(n, e) {
+ return it(n.a, e, "") == null;
+ }
+ function Due(n, e) {
+ return H9(), !_3(e.d.i, n);
+ }
+ function $ue(n, e) {
+ el(n.f) ? Qme(n, e) : Fve(n, e);
+ }
+ function Fue(n, e) {
+ var t;
+ return t = e.Hh(n.a), t;
+ }
+ function Q0(n, e) {
+ mr.call(this, rm + n + _a + e);
+ }
+ function g2(n, e, t, i) {
+ V.call(this, n, e, t, i);
+ }
+ function yU(n, e, t, i) {
+ V.call(this, n, e, t, i);
+ }
+ function Wjn(n, e, t, i) {
+ yU.call(this, n, e, t, i);
+ }
+ function Xjn(n, e, t, i) {
+ zE.call(this, n, e, t, i);
+ }
+ function tD(n, e, t, i) {
+ zE.call(this, n, e, t, i);
+ }
+ function jU(n, e, t, i) {
+ zE.call(this, n, e, t, i);
+ }
+ function Vjn(n, e, t, i) {
+ tD.call(this, n, e, t, i);
+ }
+ function EU(n, e, t, i) {
+ tD.call(this, n, e, t, i);
+ }
+ function Fn(n, e, t, i) {
+ jU.call(this, n, e, t, i);
+ }
+ function Qjn(n, e, t, i) {
+ EU.call(this, n, e, t, i);
+ }
+ function Jjn(n, e, t, i) {
+ yW.call(this, n, e, t, i);
+ }
+ function Yjn(n, e, t) {
+ this.a = n, Vz.call(this, e, t);
+ }
+ function Zjn(n, e, t) {
+ this.c = e, this.b = t, this.a = n;
+ }
+ function xue(n, e, t) {
+ return n.d = u(e.Kb(t), 164);
+ }
+ function CU(n, e) {
+ return n.Aj().Nh().Kh(n, e);
+ }
+ function TU(n, e) {
+ return n.Aj().Nh().Ih(n, e);
+ }
+ function nEn(n, e) {
+ return _n(n), B(n) === B(e);
+ }
+ function An(n, e) {
+ return _n(n), B(n) === B(e);
+ }
+ function iD(n, e) {
+ return nO(v$n(n.a, e, !1));
+ }
+ function rD(n, e) {
+ return nO(m$n(n.a, e, !1));
+ }
+ function Lue(n, e) {
+ return n.b.sd(new $7n(n, e));
+ }
+ function Nue(n, e) {
+ return n.b.sd(new F7n(n, e));
+ }
+ function eEn(n, e) {
+ return n.b.sd(new x7n(n, e));
+ }
+ function MU(n, e, t) {
+ return n.lastIndexOf(e, t);
+ }
+ function Bue(n, e, t) {
+ return ni(n[e.b], n[t.b]);
+ }
+ function Rue(n, e) {
+ return H(e, (nn(), Jk), n);
+ }
+ function _ue(n, e) {
+ return zc(e.a.d.p, n.a.d.p);
+ }
+ function Kue(n, e) {
+ return zc(n.a.d.p, e.a.d.p);
+ }
+ function Hue(n, e) {
+ return ni(n.c - n.s, e.c - e.s);
+ }
+ function tEn(n) {
+ return n.c ? xr(n.c.a, n, 0) : -1;
+ }
+ function que(n) {
+ return n < 100 ? null : new V1(n);
+ }
+ function p2(n) {
+ return n == id || n == jh || n == Sc;
+ }
+ function iEn(n, e) {
+ return I(e, 15) && fBn(n.c, e);
+ }
+ function Gue(n, e) {
+ pf || e && (n.d = e);
+ }
+ function cD(n, e) {
+ var t;
+ return t = e, !!VV(n, t);
+ }
+ function AU(n, e) {
+ this.c = n, DD.call(this, n, e);
+ }
+ function rEn(n) {
+ this.c = n, FO.call(this, IM, 0);
+ }
+ function cEn(n, e) {
+ Voe.call(this, n, n.length, e);
+ }
+ function zue(n, e, t) {
+ return u(n.c, 69).lk(e, t);
+ }
+ function yE(n, e, t) {
+ return u(n.c, 69).mk(e, t);
+ }
+ function Uue(n, e, t) {
+ return tue(n, u(e, 332), t);
+ }
+ function SU(n, e, t) {
+ return iue(n, u(e, 332), t);
+ }
+ function Wue(n, e, t) {
+ return ixn(n, u(e, 332), t);
+ }
+ function uEn(n, e, t) {
+ return zve(n, u(e, 332), t);
+ }
+ function M5(n, e) {
+ return e == null ? null : db(n.b, e);
+ }
+ function PU(n) {
+ return z0(n) ? (_n(n), n) : n.ke();
+ }
+ function jE(n) {
+ return !isNaN(n) && !isFinite(n);
+ }
+ function sEn(n) {
+ Df(), this.a = (Pn(), new Up(n));
+ }
+ function b8(n) {
+ f3(), this.d = n, this.a = new gw();
+ }
+ function ms(n, e, t) {
+ this.a = n, this.b = e, this.c = t;
+ }
+ function oEn(n, e, t) {
+ this.a = n, this.b = e, this.c = t;
+ }
+ function fEn(n, e, t) {
+ this.d = n, this.b = t, this.a = e;
+ }
+ function uD(n) {
+ jyn(this), Rs(this), Xi(this, n);
+ }
+ function lu(n) {
+ RO(this), GU(this.c, 0, n.Pc());
+ }
+ function hEn(n) {
+ Uu(n.a), sPn(n.c, n.b), n.b = null;
+ }
+ function lEn(n) {
+ this.a = n, Zf(), nu(Date.now());
+ }
+ function aEn() {
+ aEn = N, Xin = new ku(), XA = new ku();
+ }
+ function sD() {
+ sD = N, Rin = new rln(), Izn = new cln();
+ }
+ function dEn() {
+ dEn = N, Bne = F(Zn, rn, 1, 0, 5, 1);
+ }
+ function bEn() {
+ bEn = N, tee = F(Zn, rn, 1, 0, 5, 1);
+ }
+ function IU() {
+ IU = N, iee = F(Zn, rn, 1, 0, 5, 1);
+ }
+ function Df() {
+ Df = N, new Bq((Pn(), Pn(), cr));
+ }
+ function Xue(n) {
+ return FC(), $e((vPn(), $zn), n);
+ }
+ function Vue(n) {
+ return hf(), $e((NSn(), Rzn), n);
+ }
+ function Que(n) {
+ return $T(), $e((GAn(), zzn), n);
+ }
+ function Jue(n) {
+ return RC(), $e((zAn(), Uzn), n);
+ }
+ function Yue(n) {
+ return dM(), $e((OOn(), Wzn), n);
+ }
+ function Zue(n) {
+ return _o(), $e((FSn(), Qzn), n);
+ }
+ function nse(n) {
+ return Cu(), $e((xSn(), Yzn), n);
+ }
+ function ese(n) {
+ return Qc(), $e((LSn(), nUn), n);
+ }
+ function tse(n) {
+ return SM(), $e((Wkn(), EUn), n);
+ }
+ function ise(n) {
+ return qd(), $e((kPn(), TUn), n);
+ }
+ function rse(n) {
+ return K2(), $e((yPn(), AUn), n);
+ }
+ function cse(n) {
+ return d6(), $e((jPn(), IUn), n);
+ }
+ function use(n) {
+ return Aj(), $e((jAn(), OUn), n);
+ }
+ function sse(n) {
+ return _C(), $e((UAn(), XUn), n);
+ }
+ function ose(n) {
+ return W5(), $e((BSn(), wWn), n);
+ }
+ function fse(n) {
+ return Vi(), $e((YPn(), mWn), n);
+ }
+ function hse(n) {
+ return q3(), $e((mPn(), CWn), n);
+ }
+ function lse(n) {
+ return Gd(), $e((RSn(), IWn), n);
+ }
+ function OU(n, e) {
+ if (!n)
+ throw T(new Hn(e));
+ }
+ function ase(n) {
+ return Qn(), $e((mIn(), FWn), n);
+ }
+ function DU(n) {
+ xE.call(this, n.d, n.c, n.a, n.b);
+ }
+ function oD(n) {
+ xE.call(this, n.d, n.c, n.a, n.b);
+ }
+ function $U(n, e, t) {
+ this.b = n, this.c = e, this.a = t;
+ }
+ function EE(n, e, t) {
+ this.b = n, this.a = e, this.c = t;
+ }
+ function wEn(n, e, t) {
+ this.a = n, this.b = e, this.c = t;
+ }
+ function FU(n, e, t) {
+ this.a = n, this.b = e, this.c = t;
+ }
+ function gEn(n, e, t) {
+ this.a = n, this.b = e, this.c = t;
+ }
+ function xU(n, e, t) {
+ this.a = n, this.b = e, this.c = t;
+ }
+ function pEn(n, e, t) {
+ this.b = n, this.a = e, this.c = t;
+ }
+ function CE(n, e, t) {
+ this.e = e, this.b = n, this.d = t;
+ }
+ function dse(n, e, t) {
+ return ua(), n.a.Od(e, t), e;
+ }
+ function fD(n) {
+ var e;
+ return e = new $ln(), e.e = n, e;
+ }
+ function LU(n) {
+ var e;
+ return e = new n9n(), e.b = n, e;
+ }
+ function w8() {
+ w8 = N, sS = new xdn(), oS = new Ldn();
+ }
+ function wo() {
+ wo = N, XWn = new vbn(), VWn = new mbn();
+ }
+ function bse(n) {
+ return aT(), $e((CPn(), qWn), n);
+ }
+ function wse(n) {
+ return ff(), $e((MPn(), YWn), n);
+ }
+ function gse(n) {
+ return lM(), $e((kOn(), uXn), n);
+ }
+ function pse(n) {
+ return q2(), $e((jIn(), sXn), n);
+ }
+ function vse(n) {
+ return OC(), $e((YAn(), oXn), n);
+ }
+ function mse(n) {
+ return F2(), $e((_Sn(), fXn), n);
+ }
+ function kse(n) {
+ return Vw(), $e((WPn(), nXn), n);
+ }
+ function yse(n) {
+ return Hd(), $e((qSn(), cXn), n);
+ }
+ function jse(n) {
+ return VC(), $e((KSn(), hXn), n);
+ }
+ function Ese(n) {
+ return Ia(), $e((zPn(), lXn), n);
+ }
+ function Cse(n) {
+ return V8(), $e((XAn(), aXn), n);
+ }
+ function Tse(n) {
+ return ja(), $e((HSn(), bXn), n);
+ }
+ function Mse(n) {
+ return eM(), $e((MIn(), wXn), n);
+ }
+ function Ase(n) {
+ return K8(), $e((VAn(), gXn), n);
+ }
+ function Sse(n) {
+ return A7(), $e((CIn(), pXn), n);
+ }
+ function Pse(n) {
+ return f4(), $e((EIn(), vXn), n);
+ }
+ function Ise(n) {
+ return or(), $e((UOn(), mXn), n);
+ }
+ function Ose(n) {
+ return H3(), $e((zSn(), kXn), n);
+ }
+ function Dse(n) {
+ return Lh(), $e((GSn(), jXn), n);
+ }
+ function $se(n) {
+ return kC(), $e((ZAn(), EXn), n);
+ }
+ function Fse(n) {
+ return As(), $e((XPn(), CXn), n);
+ }
+ function xse(n) {
+ return JT(), $e((TIn(), RQn), n);
+ }
+ function Lse(n) {
+ return i6(), $e((USn(), _Qn), n);
+ }
+ function Nse(n) {
+ return gb(), $e((APn(), KQn), n);
+ }
+ function Bse(n) {
+ return ur(), $e((VSn(), WQn), n);
+ }
+ function Rse(n) {
+ return Zw(), $e((mOn(), qQn), n);
+ }
+ function _se(n) {
+ return Bh(), $e((XSn(), GQn), n);
+ }
+ function Kse(n) {
+ return z8(), $e((JAn(), zQn), n);
+ }
+ function Hse(n) {
+ return oT(), $e((WSn(), XQn), n);
+ }
+ function qse(n) {
+ return b6(), $e((UPn(), HQn), n);
+ }
+ function Gse(n) {
+ return x8(), $e((QAn(), VQn), n);
+ }
+ function zse(n) {
+ return V3(), $e((JSn(), QQn), n);
+ }
+ function Use(n) {
+ return uT(), $e((YSn(), JQn), n);
+ }
+ function Wse(n) {
+ return dT(), $e((QSn(), YQn), n);
+ }
+ function Xse(n) {
+ return Kd(), $e((ZSn(), lJn), n);
+ }
+ function Vse(n) {
+ return z5(), $e((eSn(), gJn), n);
+ }
+ function Qse(n) {
+ return Ff(), $e((tSn(), EJn), n);
+ }
+ function Jse(n) {
+ return ef(), $e((iSn(), TJn), n);
+ }
+ function Yse(n) {
+ return No(), $e((nSn(), _Jn), n);
+ }
+ function Zse(n) {
+ return Od(), $e((rSn(), WJn), n);
+ }
+ function noe(n) {
+ return r4(), $e((EPn(), XJn), n);
+ }
+ function eoe(n) {
+ return k6(), $e((AIn(), QJn), n);
+ }
+ function toe(n) {
+ return aC(), $e((sSn(), hYn), n);
+ }
+ function ioe(n) {
+ return iT(), $e((uSn(), gYn), n);
+ }
+ function roe(n) {
+ return gC(), $e((cSn(), lYn), n);
+ }
+ function coe(n) {
+ return CT(), $e((nPn(), vYn), n);
+ }
+ function uoe(n) {
+ return $C(), $e((oSn(), mYn), n);
+ }
+ function soe(n) {
+ return f7(), $e((ePn(), kYn), n);
+ }
+ function ooe(n) {
+ return qT(), $e((TPn(), xYn), n);
+ }
+ function foe(n) {
+ return sT(), $e((iPn(), LYn), n);
+ }
+ function hoe(n) {
+ return ET(), $e((tPn(), NYn), n);
+ }
+ function loe(n) {
+ return w4(), $e((JPn(), iZn), n);
+ }
+ function aoe(n) {
+ return w7(), $e((rPn(), rZn), n);
+ }
+ function doe(n) {
+ return Pj(), $e((kAn(), cZn), n);
+ }
+ function boe(n) {
+ return Ij(), $e((mAn(), sZn), n);
+ }
+ function woe(n) {
+ return L8(), $e((hSn(), oZn), n);
+ }
+ function goe(n) {
+ return P7(), $e((VPn(), fZn), n);
+ }
+ function poe(n) {
+ return Jv(), $e((yAn(), TZn), n);
+ }
+ function voe(n) {
+ return c7(), $e((fSn(), MZn), n);
+ }
+ function moe(n) {
+ return Ho(), $e((QPn(), DZn), n);
+ }
+ function koe(n) {
+ return y1(), $e((yOn(), FZn), n);
+ }
+ function yoe(n) {
+ return oh(), $e((yIn(), xZn), n);
+ }
+ function joe(n) {
+ return mb(), $e((kIn(), KZn), n);
+ }
+ function Eoe(n) {
+ return rr(), $e((Xkn(), _Wn), n);
+ }
+ function Coe(n) {
+ return N3(), $e((WAn(), RWn), n);
+ }
+ function Toe(n) {
+ return sr(), $e((ZPn(), tne), n);
+ }
+ function Moe(n) {
+ return sf(), $e((uPn(), ine), n);
+ }
+ function Aoe(n) {
+ return Kh(), $e((IPn(), rne), n);
+ }
+ function Soe(n) {
+ return ZT(), $e((PIn(), cne), n);
+ }
+ function Poe(n) {
+ return Rh(), $e((cPn(), sne), n);
+ }
+ function Ioe(n) {
+ return cs(), $e((PPn(), fne), n);
+ }
+ function Ooe(n) {
+ return Eb(), $e((IOn(), hne), n);
+ }
+ function Doe(n) {
+ return qw(), $e((nIn(), lne), n);
+ }
+ function $oe(n) {
+ return Ai(), $e((wIn(), ane), n);
+ }
+ function Foe(n) {
+ return Tu(), $e((SIn(), dne), n);
+ }
+ function xoe(n) {
+ return Vu(), $e((DPn(), mne), n);
+ }
+ function Loe(n) {
+ return xu(), $e((WOn(), kne), n);
+ }
+ function Noe(n) {
+ return J(), $e((eIn(), bne), n);
+ }
+ function Boe(n) {
+ return AT(), $e((OPn(), yne), n);
+ }
+ function Roe(n) {
+ return Xu(), $e((SPn(), Cne), n);
+ }
+ function _oe(n) {
+ return a4(), $e((jOn(), Nne), n);
+ }
+ function Koe(n, e) {
+ return _n(n), n + (_n(e), e);
+ }
+ function Hoe(n, e) {
+ return Zf(), me(R(n.a), e);
+ }
+ function qoe(n, e) {
+ return Zf(), me(R(n.a), e);
+ }
+ function hD(n, e) {
+ this.c = n, this.a = e, this.b = e - n;
+ }
+ function vEn(n, e, t) {
+ this.a = n, this.b = e, this.c = t;
+ }
+ function NU(n, e, t) {
+ this.a = n, this.b = e, this.c = t;
+ }
+ function BU(n, e, t) {
+ this.a = n, this.b = e, this.c = t;
+ }
+ function mEn(n, e, t) {
+ this.a = n, this.b = e, this.c = t;
+ }
+ function kEn(n, e, t) {
+ this.a = n, this.b = e, this.c = t;
+ }
+ function s1(n, e, t) {
+ this.e = n, this.a = e, this.c = t;
+ }
+ function yEn(n, e, t) {
+ vs(), QW.call(this, n, e, t);
+ }
+ function lD(n, e, t) {
+ vs(), FW.call(this, n, e, t);
+ }
+ function RU(n, e, t) {
+ vs(), FW.call(this, n, e, t);
+ }
+ function _U(n, e, t) {
+ vs(), FW.call(this, n, e, t);
+ }
+ function jEn(n, e, t) {
+ vs(), lD.call(this, n, e, t);
+ }
+ function KU(n, e, t) {
+ vs(), lD.call(this, n, e, t);
+ }
+ function EEn(n, e, t) {
+ vs(), KU.call(this, n, e, t);
+ }
+ function CEn(n, e, t) {
+ vs(), RU.call(this, n, e, t);
+ }
+ function TEn(n, e, t) {
+ vs(), _U.call(this, n, e, t);
+ }
+ function g8(n, e) {
+ return pe(n), pe(e), new U8n(n, e);
+ }
+ function v2(n, e) {
+ return pe(n), pe(e), new BEn(n, e);
+ }
+ function Goe(n, e) {
+ return pe(n), pe(e), new REn(n, e);
+ }
+ function zoe(n, e) {
+ return pe(n), pe(e), new X8n(n, e);
+ }
+ function u(n, e) {
+ return A5(n == null || WF(n, e)), n;
+ }
+ function o3(n) {
+ var e;
+ return e = new X(), _$(e, n), e;
+ }
+ function Uoe(n) {
+ var e;
+ return e = new hi(), _$(e, n), e;
+ }
+ function MEn(n) {
+ var e;
+ return e = new Wq(), nF(e, n), e;
+ }
+ function p8(n) {
+ var e;
+ return e = new Ct(), nF(e, n), e;
+ }
+ function Woe(n) {
+ return !n.e && (n.e = new X()), n.e;
+ }
+ function Xoe(n) {
+ return !n.c && (n.c = new Np()), n.c;
+ }
+ function W(n, e) {
+ return n.c[n.c.length] = e, !0;
+ }
+ function AEn(n, e) {
+ this.c = n, this.b = e, this.a = !1;
+ }
+ function HU(n) {
+ this.d = n, Dvn(this), this.b = _fe(n.d);
+ }
+ function SEn() {
+ this.a = ";,;", this.b = "", this.c = "";
+ }
+ function Voe(n, e, t) {
+ PCn.call(this, e, t), this.a = n;
+ }
+ function PEn(n, e, t) {
+ this.b = n, qkn.call(this, e, t);
+ }
+ function qU(n, e, t) {
+ this.c = n, Nj.call(this, e, t);
+ }
+ function GU(n, e, t) {
+ aY(t, 0, n, e, t.length, !1);
+ }
+ function eh(n, e, t, i, r) {
+ n.b = e, n.c = t, n.d = i, n.a = r;
+ }
+ function Qoe(n, e) {
+ e && (n.b = e, n.a = (ol(e), e.a));
+ }
+ function zU(n, e, t, i, r) {
+ n.d = e, n.c = t, n.a = i, n.b = r;
+ }
+ function UU(n) {
+ var e, t;
+ e = n.b, t = n.c, n.b = t, n.c = e;
+ }
+ function WU(n) {
+ var e, t;
+ t = n.d, e = n.a, n.d = e, n.a = t;
+ }
+ function XU(n) {
+ return dl(the(Fr(n) ? _s(n) : n));
+ }
+ function Joe(n, e) {
+ return zc(zEn(n.d), zEn(e.d));
+ }
+ function Yoe(n, e) {
+ return e == (J(), Gn) ? n.c : n.d;
+ }
+ function f3() {
+ f3 = N, don = (J(), Gn), dP = Vn;
+ }
+ function IEn() {
+ this.b = K(Y(cn((Go(), xR))));
+ }
+ function OEn(n) {
+ return ua(), F(Zn, rn, 1, n, 5, 1);
+ }
+ function Zoe(n) {
+ return new fn(n.c + n.b, n.d + n.a);
+ }
+ function nfe(n, e) {
+ return Sj(), zc(n.d.p, e.d.p);
+ }
+ function aD(n) {
+ return ne(n.b != 0), Cs(n, n.a.a);
+ }
+ function efe(n) {
+ return ne(n.b != 0), Cs(n, n.c.b);
+ }
+ function VU(n, e) {
+ if (!n)
+ throw T(new _9n(e));
+ }
+ function TE(n, e) {
+ if (!n)
+ throw T(new Hn(e));
+ }
+ function QU(n, e, t) {
+ e3.call(this, n, e), this.b = t;
+ }
+ function v8(n, e, t) {
+ lz.call(this, n, e), this.c = t;
+ }
+ function DEn(n, e, t) {
+ fIn.call(this, e, t), this.d = n;
+ }
+ function JU(n) {
+ IU(), Yy.call(this), this.th(n);
+ }
+ function $En(n, e, t) {
+ this.a = n, Ew.call(this, e, t);
+ }
+ function FEn(n, e, t) {
+ this.a = n, Ew.call(this, e, t);
+ }
+ function ME(n, e, t) {
+ lz.call(this, n, e), this.c = t;
+ }
+ function xEn() {
+ C3(), khe.call(this, (Y1(), co));
+ }
+ function LEn(n) {
+ return n != null && !$F(n, a9, d9);
+ }
+ function tfe(n, e) {
+ return (zDn(n) << 4 | zDn(e)) & Wt;
+ }
+ function ife(n, e) {
+ return QE(), ex(n, e), new fTn(n, e);
+ }
+ function oa(n, e) {
+ var t;
+ n.n && (t = e, W(n.f, t));
+ }
+ function h3(n, e, t) {
+ var i;
+ i = new nb(t), Ro(n, e, i);
+ }
+ function rfe(n, e) {
+ var t;
+ return t = n.c, wV(n, e), t;
+ }
+ function YU(n, e) {
+ return e < 0 ? n.g = -1 : n.g = e, n;
+ }
+ function AE(n, e) {
+ return H0e(n), n.a *= e, n.b *= e, n;
+ }
+ function NEn(n, e, t, i, r) {
+ n.c = e, n.d = t, n.b = i, n.a = r;
+ }
+ function Ke(n, e) {
+ return Ht(n, e, n.c.b, n.c), !0;
+ }
+ function ZU(n) {
+ n.a.b = n.b, n.b.a = n.a, n.a = n.b = null;
+ }
+ function dD(n) {
+ this.b = n, this.a = Cd(this.b.a).Ed();
+ }
+ function BEn(n, e) {
+ this.b = n, this.a = e, TI.call(this);
+ }
+ function REn(n, e) {
+ this.a = n, this.b = e, TI.call(this);
+ }
+ function _En(n, e) {
+ PCn.call(this, e, 1040), this.a = n;
+ }
+ function m8(n) {
+ return n == 0 || isNaN(n) ? n : n < 0 ? -1 : 1;
+ }
+ function cfe(n) {
+ return C2(), fh(n) == At(vl(n));
+ }
+ function ufe(n) {
+ return C2(), vl(n) == At(fh(n));
+ }
+ function Ed(n, e) {
+ return v6(n, new e3(e.a, e.b));
+ }
+ function sfe(n) {
+ return !Wi(n) && n.c.i.c == n.d.i.c;
+ }
+ function SE(n) {
+ var e;
+ return e = n.n, n.a.b + e.d + e.a;
+ }
+ function KEn(n) {
+ var e;
+ return e = n.n, n.e.b + e.d + e.a;
+ }
+ function nW(n) {
+ var e;
+ return e = n.n, n.e.a + e.b + e.c;
+ }
+ function HEn(n) {
+ return Je(), new th(0, n);
+ }
+ function ofe(n) {
+ return n.a ? n.a : WD(n);
+ }
+ function A5(n) {
+ if (!n)
+ throw T(new zp(null));
+ }
+ function qEn() {
+ qEn = N, mH = (Pn(), new OI(XB));
+ }
+ function PE() {
+ PE = N, new JQ((HI(), uR), (qI(), cR));
+ }
+ function GEn() {
+ GEn = N, jin = F(Ui, q, 19, 256, 0, 1);
+ }
+ function bD(n, e, t, i) {
+ MQ.call(this, n, e, t, i, 0, 0);
+ }
+ function ffe(n, e, t) {
+ return it(n.b, u(t.b, 17), e);
+ }
+ function hfe(n, e, t) {
+ return it(n.b, u(t.b, 17), e);
+ }
+ function lfe(n, e) {
+ return W(n, new fn(e.a, e.b));
+ }
+ function afe(n, e) {
+ return n.c < e.c ? -1 : n.c == e.c ? 0 : 1;
+ }
+ function wD(n) {
+ return n.e.c.length + n.g.c.length;
+ }
+ function zEn(n) {
+ return n.e.c.length - n.g.c.length;
+ }
+ function UEn(n) {
+ return n.b.c.length - n.e.c.length;
+ }
+ function dfe(n) {
+ return Zu(), (J(), qc).Hc(n.j);
+ }
+ function WEn(n) {
+ IU(), JU.call(this, n), this.a = -1;
+ }
+ function IE(n, e) {
+ i8.call(this, n, e), this.a = this;
+ }
+ function Et(n, e) {
+ var t;
+ return t = LD(n, e), t.i = 2, t;
+ }
+ function OE(n, e) {
+ var t;
+ return ++n.j, t = n.Ti(e), t;
+ }
+ function Ze(n, e, t) {
+ return n.a = -1, Xz(n, e.g, t), n;
+ }
+ function bfe(n, e, t) {
+ cCe(n.a, n.b, n.c, u(e, 202), t);
+ }
+ function wfe(n, e) {
+ pV(n, e == null ? null : (_n(e), e));
+ }
+ function gfe(n, e) {
+ bV(n, e == null ? null : (_n(e), e));
+ }
+ function pfe(n, e) {
+ bV(n, e == null ? null : (_n(e), e));
+ }
+ function gD(n, e, t) {
+ return new Zjn(yhe(n).Ie(), t, e);
+ }
+ function fa(n, e, t, i, r, c) {
+ return JFn(n, e, t, i, r, 0, c);
+ }
+ function XEn() {
+ XEn = N, min = F(op, q, 217, 256, 0, 1);
+ }
+ function VEn() {
+ VEn = N, Ein = F(d0, q, 162, 256, 0, 1);
+ }
+ function QEn() {
+ QEn = N, Min = F(b0, q, 184, 256, 0, 1);
+ }
+ function JEn() {
+ JEn = N, yin = F(bm, q, 172, 128, 0, 1);
+ }
+ function eW() {
+ eh(this, !1, !1, !1, !1);
+ }
+ function pD(n) {
+ eb(), this.a = (Pn(), new OI(pe(n)));
+ }
+ function DE(n) {
+ for (pe(n); n.Ob(); )
+ n.Pb(), n.Qb();
+ }
+ function vfe(n) {
+ n.a.cd(), u(n.a.dd(), 14).gc(), dG();
+ }
+ function tW(n) {
+ this.c = n, this.b = this.c.d.vc().Kc();
+ }
+ function YEn(n) {
+ this.c = n, this.a = new o2(this.c.a);
+ }
+ function S5(n) {
+ this.a = new s2(n.gc()), Xi(this, n);
+ }
+ function iW(n) {
+ Tq.call(this, new wa()), Xi(this, n);
+ }
+ function ZEn(n, e) {
+ return n.a += Ks(e, 0, e.length), n;
+ }
+ function un(n, e) {
+ return Ln(e, n.c.length), n.c[e];
+ }
+ function nCn(n, e) {
+ return Ln(e, n.a.length), n.a[e];
+ }
+ function $n(n, e) {
+ ua(), P$.call(this, n), this.a = e;
+ }
+ function mfe(n, e) {
+ return Aa(Hi(Aa(n.a).a, e.a));
+ }
+ function kfe(n, e) {
+ return _n(n), Y8(n, (_n(e), e));
+ }
+ function yfe(n, e) {
+ return _n(e), Y8(e, (_n(n), n));
+ }
+ function jfe(n, e) {
+ return Mt(e, 0, rW(e[0], Aa(1)));
+ }
+ function rW(n, e) {
+ return mfe(u(n, 162), u(e, 162));
+ }
+ function eCn(n) {
+ return n.c - u(un(n.a, n.b), 287).b;
+ }
+ function tCn(n) {
+ return n.q ? n.q : (Pn(), Pn(), ph);
+ }
+ function iCn(n) {
+ return n.e.Hd().gc() * n.c.Hd().gc();
+ }
+ function Efe(n, e, t) {
+ return zc(e.d[n.g], t.d[n.g]);
+ }
+ function Cfe(n, e, t) {
+ return zc(n.d[e.p], n.d[t.p]);
+ }
+ function Tfe(n, e, t) {
+ return zc(n.d[e.p], n.d[t.p]);
+ }
+ function Mfe(n, e, t) {
+ return zc(n.d[e.p], n.d[t.p]);
+ }
+ function Afe(n, e, t) {
+ return zc(n.d[e.p], n.d[t.p]);
+ }
+ function cW(n, e, t) {
+ return j.Math.min(t / n, 1 / e);
+ }
+ function rCn(n, e) {
+ return n ? 0 : j.Math.max(0, e - 1);
+ }
+ function Sfe(n, e) {
+ var t;
+ for (t = 0; t < e; ++t)
+ n[t] = -1;
+ }
+ function cCn(n) {
+ var e;
+ return e = ZFn(n), e ? cCn(e) : n;
+ }
+ function Pfe(n, e) {
+ return n.a == null && bBn(n), n.a[e];
+ }
+ function Gu(n) {
+ return n.c ? n.c.f : n.e.b;
+ }
+ function au(n) {
+ return n.c ? n.c.g : n.e.a;
+ }
+ function $E(n) {
+ Nd.call(this, n.gc()), $t(this, n);
+ }
+ function FE(n, e) {
+ vs(), uj.call(this, e), this.a = n;
+ }
+ function P5(n, e, t) {
+ this.a = n, Yt.call(this, e, t, 2);
+ }
+ function xE(n, e, t, i) {
+ zU(this, n, e, t, i);
+ }
+ function th(n, e) {
+ Je(), ud.call(this, n), this.a = e;
+ }
+ function uCn(n) {
+ this.b = new Ct(), this.a = n, this.c = -1;
+ }
+ function sCn() {
+ this.d = new fn(0, 0), this.e = new hi();
+ }
+ function oCn(n) {
+ Vz.call(this, 0, 0), this.a = n, this.b = 0;
+ }
+ function fCn(n) {
+ this.a = n, this.c = new we(), kwe(this);
+ }
+ function uW(n) {
+ if (n.e.c != n.b)
+ throw T(new ps());
+ }
+ function sW(n) {
+ if (n.c.e != n.a)
+ throw T(new ps());
+ }
+ function ge(n) {
+ return Fr(n) ? n | 0 : k8n(n);
+ }
+ function LE(n, e) {
+ return Je(), new PW(n, e);
+ }
+ function vD(n, e) {
+ return n == null ? e == null : An(n, e);
+ }
+ function Ife(n, e) {
+ return n == null ? e == null : DT(n, e);
+ }
+ function m2(n, e, t) {
+ return ko(n.a, e), TW(n, e.g, t);
+ }
+ function mD(n, e, t) {
+ mDn(0, e, n.length), A3(n, 0, e, t);
+ }
+ function J0(n, e, t) {
+ ib(e, n.c.length), e5(n.c, e, t);
+ }
+ function hCn(n, e, t) {
+ var i;
+ for (i = 0; i < e; ++i)
+ n[i] = t;
+ }
+ function pt(n, e) {
+ var t;
+ return t = Cn(n), qV(t, e), t;
+ }
+ function Ofe(n, e) {
+ return !n && (n = []), n[n.length] = e, n;
+ }
+ function Dfe(n, e) {
+ return n.a.get(e) !== void 0;
+ }
+ function lCn(n, e) {
+ return ube(new vln(), new Rvn(n), e);
+ }
+ function $fe(n) {
+ return n == null ? UA : new dj(_n(n));
+ }
+ function kD(n, e) {
+ return I(e, 22) && hu(n, u(e, 22));
+ }
+ function aCn(n, e) {
+ return I(e, 22) && L0e(n, u(e, 22));
+ }
+ function oW(n) {
+ return Fu(n, 26) * N6 + Fu(n, 27) * B6;
+ }
+ function fW(n) {
+ return Array.isArray(n) && n.im === Xg;
+ }
+ function NE(n) {
+ n.b ? NE(n.b) : n.d.dc() && n.f.c.Bc(n.e);
+ }
+ function yD(n, e) {
+ st(n.c, e), n.b.c += e.a, n.b.d += e.b;
+ }
+ function Ffe(n, e) {
+ yD(n, ji(new fn(e.a, e.b), n.c));
+ }
+ function jD(n, e) {
+ this.b = new Ct(), this.a = n, this.c = e;
+ }
+ function dCn() {
+ this.b = new $an(), this.c = new GTn(this);
+ }
+ function hW() {
+ this.d = new Iln(), this.e = new qTn(this);
+ }
+ function lW() {
+ tX(), this.f = new Ct(), this.e = new Ct();
+ }
+ function bCn() {
+ Zu(), this.k = new we(), this.d = new hi();
+ }
+ function ED() {
+ ED = N, Mne = new tr((Xe(), Bu), 0);
+ }
+ function wCn() {
+ wCn = N, lzn = new oCn(F(Zn, rn, 1, 0, 5, 1));
+ }
+ function xfe(n, e, t) {
+ sNn(t, n, 1), W(e, new R7n(t, n));
+ }
+ function Lfe(n, e, t) {
+ g6(t, n, 1), W(e, new U7n(t, n));
+ }
+ function Nfe(n, e, t) {
+ return ci(n, new f2(e.a, t.a));
+ }
+ function Bfe(n, e, t) {
+ return -zc(n.f[e.p], n.f[t.p]);
+ }
+ function BE(n, e, t) {
+ var i;
+ n && (i = n.i, i.c = e, i.b = t);
+ }
+ function RE(n, e, t) {
+ var i;
+ n && (i = n.i, i.d = e, i.a = t);
+ }
+ function ju(n, e, t) {
+ return n.a = -1, Xz(n, e.g + 1, t), n;
+ }
+ function aW(n, e, t) {
+ return t = ss(n, u(e, 49), 7, t), t;
+ }
+ function dW(n, e, t) {
+ return t = ss(n, u(e, 49), 3, t), t;
+ }
+ function gCn(n, e, t) {
+ this.a = n, hE.call(this, e, t, 22);
+ }
+ function pCn(n, e, t) {
+ this.a = n, hE.call(this, e, t, 14);
+ }
+ function vCn(n, e, t, i) {
+ vs(), YMn.call(this, n, e, t, i);
+ }
+ function mCn(n, e, t, i) {
+ vs(), YMn.call(this, n, e, t, i);
+ }
+ function Rfe(n, e) {
+ e.Bb & sc && !n.a.o && (n.a.o = e);
+ }
+ function kCn(n) {
+ return n != null && OD(n) && n.im !== Xg;
+ }
+ function bW(n) {
+ return !Array.isArray(n) && n.im === Xg;
+ }
+ function _fe(n) {
+ return I(n, 15) ? u(n, 15).Yc() : n.Kc();
+ }
+ function wW(n) {
+ return n.Qc(F(Zn, rn, 1, n.gc(), 5, 1));
+ }
+ function I5(n, e) {
+ return npe(G8(n, e)) ? e.Qh() : null;
+ }
+ function gW(n) {
+ n ? uJ(n, (Zf(), Sin)) : Zf();
+ }
+ function re(n) {
+ this.a = (wCn(), lzn), this.d = u(pe(n), 47);
+ }
+ function pW(n, e, t, i) {
+ this.a = n, IC.call(this, n, e, t, i);
+ }
+ function ha(n) {
+ Z1(), this.a = 0, this.b = n - 1, this.c = 1;
+ }
+ function yCn(n) {
+ oE(this), this.g = n, eC(this), this._d();
+ }
+ function Cd(n) {
+ return n.c ? n.c : n.c = n.Id();
+ }
+ function CD(n) {
+ return n.d ? n.d : n.d = n.Jd();
+ }
+ function vW(n) {
+ var e;
+ return e = n.c, e || (n.c = n.Dd());
+ }
+ function jCn(n) {
+ var e;
+ return e = n.f, e || (n.f = n.Dc());
+ }
+ function k2(n) {
+ var e;
+ return e = n.i, e || (n.i = n.bc());
+ }
+ function ECn(n) {
+ return Je(), new e$(10, n, 0);
+ }
+ function O5(n) {
+ return Fr(n) ? "" + n : oBn(n);
+ }
+ function _E(n) {
+ if (n.e.j != n.d)
+ throw T(new ps());
+ }
+ function Ph(n, e) {
+ return dl(Pxn(Fr(n) ? _s(n) : n, e));
+ }
+ function rl(n, e) {
+ return dl(SY(Fr(n) ? _s(n) : n, e));
+ }
+ function Y0(n, e) {
+ return dl(H5e(Fr(n) ? _s(n) : n, e));
+ }
+ function Kfe(n, e) {
+ return mue((_n(n), n), (_n(e), e));
+ }
+ function TD(n, e) {
+ return ni((_n(n), n), (_n(e), e));
+ }
+ function CCn(n, e) {
+ return pe(e), n.a.Ad(e) && !n.b.Ad(e);
+ }
+ function Hfe(n, e) {
+ return Nc(n.l & e.l, n.m & e.m, n.h & e.h);
+ }
+ function qfe(n, e) {
+ return Nc(n.l | e.l, n.m | e.m, n.h | e.h);
+ }
+ function Gfe(n, e) {
+ return Nc(n.l ^ e.l, n.m ^ e.m, n.h ^ e.h);
+ }
+ function KE(n, e) {
+ return d7(n, (_n(e), new Nvn(e)));
+ }
+ function HE(n, e) {
+ return d7(n, (_n(e), new Bvn(e)));
+ }
+ function TCn(n) {
+ return du(), u(n, 11).e.c.length != 0;
+ }
+ function MCn(n) {
+ return du(), u(n, 11).g.c.length != 0;
+ }
+ function zfe(n, e) {
+ return x2(), ni(e.a.o.a, n.a.o.a);
+ }
+ function ACn(n, e, t) {
+ return SCe(n, u(e, 11), u(t, 11));
+ }
+ function Ufe(n) {
+ return n.e ? xX(n.e) : null;
+ }
+ function mW(n) {
+ n.d || (n.d = n.b.Kc(), n.c = n.b.gc());
+ }
+ function Wfe(n, e, t) {
+ n.a.Mb(t) && (n.b = !0, e.td(t));
+ }
+ function l3(n, e) {
+ if (n < 0 || n >= e)
+ throw T(new qq());
+ }
+ function Xfe(n, e, t) {
+ return Mt(e, 0, rW(e[0], t[0])), e;
+ }
+ function Vfe(n, e, t) {
+ e.Ye(t, K(Y(te(n.b, t))) * n.a);
+ }
+ function SCn(n, e, t) {
+ return eg(), B3(n, e) && B3(n, t);
+ }
+ function D5(n) {
+ return Tu(), !n.Hc(Zh) && !n.Hc(ql);
+ }
+ function qE(n) {
+ return new fn(n.c + n.b / 2, n.d + n.a / 2);
+ }
+ function MD(n, e) {
+ return e.kh() ? gl(n.b, u(e, 49)) : e;
+ }
+ function kW(n, e) {
+ this.e = n, this.d = e & 64 ? e | Nf : e;
+ }
+ function PCn(n, e) {
+ this.c = 0, this.d = n, this.b = e | 64 | Nf;
+ }
+ function GE(n) {
+ this.b = new Ic(11), this.a = (Ow(), n);
+ }
+ function AD(n) {
+ this.b = null, this.a = (Ow(), n || Lin);
+ }
+ function ICn(n) {
+ this.a = Z$n(n.a), this.b = new lu(n.b);
+ }
+ function OCn(n) {
+ this.b = n, b2.call(this, n), Fyn(this);
+ }
+ function DCn(n) {
+ this.b = n, u8.call(this, n), xyn(this);
+ }
+ function Z0(n, e, t) {
+ this.a = n, g2.call(this, e, t, 5, 6);
+ }
+ function yW(n, e, t, i) {
+ this.b = n, Yt.call(this, e, t, i);
+ }
+ function gi(n, e, t, i, r) {
+ D$.call(this, n, e, t, i, r, -1);
+ }
+ function $5(n, e, t, i, r) {
+ R8.call(this, n, e, t, i, r, -1);
+ }
+ function V(n, e, t, i) {
+ Yt.call(this, n, e, t), this.b = i;
+ }
+ function zE(n, e, t, i) {
+ v8.call(this, n, e, t), this.b = i;
+ }
+ function $Cn(n) {
+ Lkn.call(this, n, !1), this.a = !1;
+ }
+ function FCn(n, e) {
+ this.b = n, wvn.call(this, n.b), this.a = e;
+ }
+ function xCn(n, e) {
+ eb(), Yie.call(this, n, mT(new Ku(e)));
+ }
+ function UE(n, e) {
+ return Je(), new xW(n, e, 0);
+ }
+ function SD(n, e) {
+ return Je(), new xW(6, n, e);
+ }
+ function Qfe(n, e) {
+ return An(n.substr(0, e.length), e);
+ }
+ function zu(n, e) {
+ return yi(e) ? QD(n, e) : !!Sr(n.f, e);
+ }
+ function Oi(n, e) {
+ for (_n(e); n.Ob(); )
+ e.td(n.Pb());
+ }
+ function Pw(n, e, t) {
+ yl(), this.e = n, this.d = e, this.a = t;
+ }
+ function o1(n, e, t, i) {
+ var r;
+ r = n.i, r.i = e, r.a = t, r.b = i;
+ }
+ function jW(n) {
+ var e;
+ for (e = n; e.f; )
+ e = e.f;
+ return e;
+ }
+ function y2(n) {
+ var e;
+ return e = t6(n), ne(e != null), e;
+ }
+ function Jfe(n) {
+ var e;
+ return e = Lge(n), ne(e != null), e;
+ }
+ function a3(n, e) {
+ var t;
+ return t = n.a.gc(), $X(e, t), t - e;
+ }
+ function EW(n, e) {
+ var t;
+ for (t = 0; t < e; ++t)
+ n[t] = !1;
+ }
+ function Yfe(n, e, t, i) {
+ var r;
+ for (r = e; r < t; ++r)
+ n[r] = i;
+ }
+ function L(n, e, t, i) {
+ mDn(e, t, n.length), Yfe(n, e, t, i);
+ }
+ function Zfe(n, e, t) {
+ l3(t, n.a.c.length), js(n.a, t, e);
+ }
+ function CW(n, e, t) {
+ this.c = n, this.a = e, Pn(), this.b = t;
+ }
+ function TW(n, e, t) {
+ var i;
+ return i = n.b[e], n.b[e] = t, i;
+ }
+ function ci(n, e) {
+ var t;
+ return t = n.a.zc(e, n), t == null;
+ }
+ function nhe(n) {
+ if (!n)
+ throw T(new rc());
+ return n.d;
+ }
+ function MW(n, e) {
+ if (n == null)
+ throw T(new c2(e));
+ }
+ function AW(n, e) {
+ return e ? Xi(n, e) : !1;
+ }
+ function ih(n, e, t) {
+ return Xwe(n, e.g, t), ko(n.c, e), n;
+ }
+ function ehe(n) {
+ return cg(n, (sr(), Ys)), n.d = !0, n;
+ }
+ function PD(n) {
+ return !n.j && $te(n, kke(n.g, n.b)), n.j;
+ }
+ function F5(n) {
+ U0(n.b != -1), h1(n.c, n.a = n.b), n.b = -1;
+ }
+ function Eu(n) {
+ n.f = new ryn(n), n.g = new cyn(n), cC(n);
+ }
+ function ID(n) {
+ return new $n(null, uhe(n, n.length));
+ }
+ function cl(n) {
+ return new re(new xz(n.a.length, n.a));
+ }
+ function the(n) {
+ return Nc(~n.l & Lu, ~n.m & Lu, ~n.h & Uh);
+ }
+ function OD(n) {
+ return typeof n === Q7 || typeof n === CL;
+ }
+ function ihe(n) {
+ return n == xt ? Ak : n == Qt ? "-INF" : "" + n;
+ }
+ function rhe(n) {
+ return n == xt ? Ak : n == Qt ? "-INF" : "" + n;
+ }
+ function che(n, e) {
+ return n > 0 ? j.Math.log(n / e) : -100;
+ }
+ function LCn(n, e) {
+ return hc(n, e) < 0 ? -1 : hc(n, e) > 0 ? 1 : 0;
+ }
+ function SW(n, e, t) {
+ return ARn(n, u(e, 46), u(t, 167));
+ }
+ function NCn(n, e) {
+ return u(vW(Cd(n.a)).Xb(e), 42).cd();
+ }
+ function uhe(n, e) {
+ return P0e(e, n.length), new _En(n, e);
+ }
+ function DD(n, e) {
+ this.d = n, ie.call(this, n), this.e = e;
+ }
+ function Td(n) {
+ this.d = (_n(n), n), this.a = 0, this.c = IM;
+ }
+ function PW(n, e) {
+ ud.call(this, 1), this.a = n, this.b = e;
+ }
+ function BCn(n, e) {
+ return n.c ? BCn(n.c, e) : W(n.b, e), n;
+ }
+ function she(n, e, t) {
+ var i;
+ return i = sb(n, e), g$(n, e, t), i;
+ }
+ function IW(n, e) {
+ var t;
+ return t = n.slice(0, e), WX(t, n);
+ }
+ function RCn(n, e, t) {
+ var i;
+ for (i = 0; i < e; ++i)
+ Mt(n, i, t);
+ }
+ function _Cn(n, e, t, i, r) {
+ for (; e < t; )
+ i[r++] = Di(n, e++);
+ }
+ function ohe(n, e) {
+ return ni(n.c.c + n.c.b, e.c.c + e.c.b);
+ }
+ function k8(n, e) {
+ return bT(n.a, e, (qn(), Ga)) == null;
+ }
+ function y8(n, e) {
+ Ht(n.d, e, n.b.b, n.b), ++n.a, n.c = null;
+ }
+ function j8(n, e) {
+ Iyn(n, I(e, 153) ? e : u(e, 1937).gl());
+ }
+ function Md(n, e) {
+ Rt(Wc(n.Oc(), new Qbn()), new X5n(e));
+ }
+ function d3(n, e, t, i, r) {
+ wx(n, u(ct(e.k, t), 15), t, i, r);
+ }
+ function WE(n) {
+ n.s = NaN, n.c = NaN, WLn(n, n.e), WLn(n, n.j);
+ }
+ function KCn(n) {
+ n.a = null, n.e = null, Eu(n.b), n.d = 0, ++n.c;
+ }
+ function $D(n) {
+ return j.Math.abs(n.d.e - n.e.e) - n.a;
+ }
+ function fhe(n, e, t) {
+ return u(n.c._c(e, u(t, 133)), 42);
+ }
+ function hhe() {
+ return aj(), A(M(azn, 1), z, 538, 0, [fR]);
+ }
+ function lhe(n) {
+ return C2(), At(fh(n)) == At(vl(n));
+ }
+ function HCn(n) {
+ pU.call(this), this.a = n, W(n.a, this);
+ }
+ function FD(n, e) {
+ this.d = Nge(n), this.c = e, this.a = 0.5 * e;
+ }
+ function qCn() {
+ wa.call(this), this.a = !0, this.b = !0;
+ }
+ function ee(n) {
+ return (n.i == null && Lf(n), n.i).length;
+ }
+ function GCn(n) {
+ return I(n, 99) && (u(n, 18).Bb & sc) != 0;
+ }
+ function ahe(n, e) {
+ ++n.j, px(n, n.i, e), nme(n, u(e, 332));
+ }
+ function xD(n, e) {
+ return e = n.nk(null, e), lxn(n, null, e);
+ }
+ function $t(n, e) {
+ return n.hi() && (e = dMn(n, e)), n.Wh(e);
+ }
+ function w(n, e, t) {
+ var i;
+ return i = LD(n, e), $In(t, i), i;
+ }
+ function LD(n, e) {
+ var t;
+ return t = new RV(), t.j = n, t.d = e, t;
+ }
+ function pe(n) {
+ if (n == null)
+ throw T(new Nv());
+ return n;
+ }
+ function ND(n) {
+ var e;
+ return e = n.j, e || (n.j = new mvn(n));
+ }
+ function zCn(n) {
+ var e;
+ return e = n.f, e || (n.f = new Fz(n));
+ }
+ function OW(n) {
+ var e;
+ return e = n.k, e || (n.k = new cq(n));
+ }
+ function XE(n) {
+ var e;
+ return e = n.k, e || (n.k = new cq(n));
+ }
+ function x5(n) {
+ var e;
+ return e = n.g, e || (n.g = new rq(n));
+ }
+ function dhe(n) {
+ var e;
+ return e = n.i, e || (n.i = new fvn(n));
+ }
+ function BD(n) {
+ var e;
+ return e = n.d, e || (n.d = new SI(n));
+ }
+ function UCn(n) {
+ return pe(n), I(n, 475) ? u(n, 475) : Nr(n);
+ }
+ function DW(n) {
+ return I(n, 607) ? n : new eMn(n);
+ }
+ function WCn(n, e) {
+ return D8(e, n.c.b.c.gc()), new z8n(n, e);
+ }
+ function XCn(n, e, t) {
+ return Je(), new qMn(n, e, t);
+ }
+ function Mt(n, e, t) {
+ return Wce(t == null || tye(n, t)), n[e] = t;
+ }
+ function $W(n, e) {
+ var t;
+ return t = n.a.gc(), D8(e, t), t - 1 - e;
+ }
+ function b3(n, e) {
+ return n.a += String.fromCharCode(e), n;
+ }
+ function ul(n, e) {
+ return n.a += String.fromCharCode(e), n;
+ }
+ function RD(n, e) {
+ for (_n(e); n.c < n.d; )
+ n.ze(e, n.c++);
+ }
+ function te(n, e) {
+ return yi(e) ? mc(n, e) : Vr(Sr(n.f, e));
+ }
+ function bhe(n, e) {
+ return C2(), n == fh(e) ? vl(e) : fh(e);
+ }
+ function whe(n, e) {
+ j2(n, new nb(e.f != null ? e.f : "" + e.g));
+ }
+ function ghe(n, e) {
+ j2(n, new nb(e.f != null ? e.f : "" + e.g));
+ }
+ function VCn(n) {
+ this.b = new X(), this.a = new X(), this.c = n;
+ }
+ function Bs(n) {
+ this.c = new Li(), this.a = new X(), this.b = n;
+ }
+ function QCn(n) {
+ pU.call(this), this.a = new Li(), this.c = n;
+ }
+ function nb(n) {
+ if (n == null)
+ throw T(new Nv());
+ this.a = n;
+ }
+ function JCn(n) {
+ Hq(), this.b = new X(), this.a = n, dEe(this, n);
+ }
+ function YCn(n) {
+ this.c = n, this.a = new Ct(), this.b = new Ct();
+ }
+ function ZCn() {
+ ZCn = N, pzn = new oq(!1), vzn = new oq(!0);
+ }
+ function eb() {
+ eb = N, Df(), sR = new JD((Pn(), Pn(), cr));
+ }
+ function _D() {
+ _D = N, Df(), lin = new NG((Pn(), Pn(), zA));
+ }
+ function sl() {
+ sl = N, Nn = Z6e(), Sn(), lw && u4e();
+ }
+ function phe(n, e) {
+ return x2(), u(br(n, e.d), 15).Fc(e);
+ }
+ function vhe(n, e, t, i) {
+ return t == 0 || (t - i) / t < n.e || e >= n.g;
+ }
+ function KD(n, e, t) {
+ var i;
+ return i = Y$(n, e, t), rZ(n, i);
+ }
+ function j2(n, e) {
+ var t;
+ t = n.a.length, sb(n, t), g$(n, t, e);
+ }
+ function nTn(n, e) {
+ var t;
+ t = console[n], t.call(console, e);
+ }
+ function eTn(n, e) {
+ var t;
+ ++n.j, t = n.Vi(), n.Ii(n.oi(t, e));
+ }
+ function mhe(n, e, t) {
+ u(e.b, 65), Jc(e.a, new NU(n, t, e));
+ }
+ function FW(n, e, t) {
+ uj.call(this, e), this.a = n, this.b = t;
+ }
+ function xW(n, e, t) {
+ ud.call(this, n), this.a = e, this.b = t;
+ }
+ function LW(n, e, t) {
+ this.a = n, xq.call(this, e), this.b = t;
+ }
+ function tTn(n, e, t) {
+ this.a = n, aX.call(this, 8, e, null, t);
+ }
+ function khe(n) {
+ this.a = (_n(xe), xe), this.b = n, new tG();
+ }
+ function iTn(n) {
+ this.c = n, this.b = this.c.a, this.a = this.c.e;
+ }
+ function NW(n) {
+ this.c = n, this.b = n.a.d.a, rU(n.a.e, this);
+ }
+ function Uu(n) {
+ U0(n.c != -1), n.d.$c(n.c), n.b = n.c, n.c = -1;
+ }
+ function L5(n) {
+ return j.Math.sqrt(n.a * n.a + n.b * n.b);
+ }
+ function Ad(n, e) {
+ return l3(e, n.a.c.length), un(n.a, e);
+ }
+ function $f(n, e) {
+ return B(n) === B(e) || n != null && tt(n, e);
+ }
+ function yhe(n) {
+ return 0 >= n ? new PG() : sbe(n - 1);
+ }
+ function jhe(n) {
+ return dw ? QD(dw, n) : !1;
+ }
+ function rTn(n) {
+ return n ? n.dc() : !n.Kc().Ob();
+ }
+ function qi(n) {
+ return !n.a && n.c ? n.c.b : n.a;
+ }
+ function Ehe(n) {
+ return !n.a && (n.a = new Yt(Gl, n, 4)), n.a;
+ }
+ function Sd(n) {
+ return !n.d && (n.d = new Yt(ar, n, 1)), n.d;
+ }
+ function _n(n) {
+ if (n == null)
+ throw T(new Nv());
+ return n;
+ }
+ function N5(n) {
+ n.c ? n.c.He() : (n.d = !0, S8e(n));
+ }
+ function ol(n) {
+ n.c ? ol(n.c) : (Ma(n), n.d = !0);
+ }
+ function cTn(n) {
+ KW(n.a), n.b = F(Zn, rn, 1, n.b.length, 5, 1);
+ }
+ function Che(n, e) {
+ return zc(e.j.c.length, n.j.c.length);
+ }
+ function The(n, e) {
+ n.c < 0 || n.b.b < n.c ? sa(n.b, e) : n.a._e(e);
+ }
+ function Mhe(n, e) {
+ var t;
+ t = n.Yg(e), t >= 0 ? n.Bh(t) : bY(n, e);
+ }
+ function uTn(n) {
+ var e, t;
+ return e = n.c.i.c, t = n.d.i.c, e == t;
+ }
+ function Ahe(n) {
+ if (n.p != 4)
+ throw T(new su());
+ return n.e;
+ }
+ function She(n) {
+ if (n.p != 3)
+ throw T(new su());
+ return n.e;
+ }
+ function Phe(n) {
+ if (n.p != 6)
+ throw T(new su());
+ return n.f;
+ }
+ function Ihe(n) {
+ if (n.p != 6)
+ throw T(new su());
+ return n.k;
+ }
+ function Ohe(n) {
+ if (n.p != 3)
+ throw T(new su());
+ return n.j;
+ }
+ function Dhe(n) {
+ if (n.p != 4)
+ throw T(new su());
+ return n.j;
+ }
+ function BW(n) {
+ return !n.b && (n.b = new sj(new KI())), n.b;
+ }
+ function Pd(n) {
+ return n.c == -2 && Pte(n, Qve(n.g, n.b)), n.c;
+ }
+ function w3(n, e) {
+ var t;
+ return t = LD("", n), t.n = e, t.i = 1, t;
+ }
+ function $he(n, e) {
+ yD(u(e.b, 65), n), Jc(e.a, new Aq(n));
+ }
+ function Fhe(n, e) {
+ me((!n.a && (n.a = new l8(n, n)), n.a), e);
+ }
+ function sTn(n, e) {
+ this.b = n, DD.call(this, n, e), Fyn(this);
+ }
+ function oTn(n, e) {
+ this.b = n, AU.call(this, n, e), xyn(this);
+ }
+ function RW(n, e, t, i) {
+ wd.call(this, n, e), this.d = t, this.a = i;
+ }
+ function VE(n, e, t, i) {
+ wd.call(this, n, t), this.a = e, this.f = i;
+ }
+ function fTn(n, e) {
+ bce.call(this, obe(pe(n), pe(e))), this.a = e;
+ }
+ function hTn() {
+ UJ.call(this, Ha, (d8n(), lee)), tEe(this);
+ }
+ function lTn() {
+ UJ.call(this, Xs, (Vp(), g1n)), lje(this);
+ }
+ function aTn() {
+ Oe.call(this, "DELAUNAY_TRIANGULATION", 0);
+ }
+ function xhe(n) {
+ return String.fromCharCode.apply(null, n);
+ }
+ function it(n, e, t) {
+ return yi(e) ? yr(n, e, t) : Rc(n.f, e, t);
+ }
+ function _W(n) {
+ return Pn(), n ? n.ve() : (Ow(), Ow(), Bin);
+ }
+ function Lhe(n, e, t) {
+ return L2(), t.pg(n, u(e.cd(), 146));
+ }
+ function dTn(n, e) {
+ return PE(), new JQ(new Xyn(n), new Wyn(e));
+ }
+ function Nhe(n) {
+ return is(n, AL), KC(Hi(Hi(5, n), n / 10 | 0));
+ }
+ function QE() {
+ QE = N, hzn = new GI(A(M(qa, 1), OM, 42, 0, []));
+ }
+ function bTn(n) {
+ return !n.d && (n.d = new Rp(n.c.Cc())), n.d;
+ }
+ function g3(n) {
+ return !n.a && (n.a = new X9n(n.c.vc())), n.a;
+ }
+ function wTn(n) {
+ return !n.b && (n.b = new Up(n.c.ec())), n.b;
+ }
+ function rh(n, e) {
+ for (; e-- > 0; )
+ n = n << 1 | (n < 0 ? 1 : 0);
+ return n;
+ }
+ function vc(n, e) {
+ return B(n) === B(e) || n != null && tt(n, e);
+ }
+ function Bhe(n, e) {
+ return qn(), u(e.b, 19).a < n;
+ }
+ function Rhe(n, e) {
+ return qn(), u(e.a, 19).a < n;
+ }
+ function br(n, e) {
+ return kD(n.a, e) ? n.b[u(e, 22).g] : null;
+ }
+ function _he(n, e, t, i) {
+ n.a = Yu(n.a, 0, e) + ("" + i) + r8(n.a, t);
+ }
+ function gTn(n, e) {
+ n.u.Hc((Tu(), Zh)) && G6e(n, e), Mde(n, e);
+ }
+ function Di(n, e) {
+ return Me(e, n.length), n.charCodeAt(e);
+ }
+ function pTn() {
+ _r.call(this, "There is no more element.");
+ }
+ function B5(n) {
+ this.d = n, this.a = this.d.b, this.b = this.d.c;
+ }
+ function vTn(n) {
+ n.b = !1, n.c = !1, n.d = !1, n.a = !1;
+ }
+ function Ge(n, e, t, i) {
+ return pOn(n, e, t, !1), kT(n, i), n;
+ }
+ function Khe(n) {
+ return n.j.c = F(Zn, rn, 1, 0, 5, 1), n.a = -1, n;
+ }
+ function Hhe(n) {
+ return !n.c && (n.c = new Fn(he, n, 5, 8)), n.c;
+ }
+ function qhe(n) {
+ return !n.b && (n.b = new Fn(he, n, 4, 7)), n.b;
+ }
+ function JE(n) {
+ return !n.n && (n.n = new V(Rr, n, 1, 7)), n.n;
+ }
+ function HD(n) {
+ return !n.c && (n.c = new V(Ru, n, 9, 9)), n.c;
+ }
+ function p3(n) {
+ return n.e == K4 && Ote(n, spe(n.g, n.b)), n.e;
+ }
+ function E8(n) {
+ return n.f == K4 && Dte(n, X3e(n.g, n.b)), n.f;
+ }
+ function Iw(n) {
+ var e;
+ return e = n.b, !e && (n.b = e = new ovn(n)), e;
+ }
+ function KW(n) {
+ var e;
+ for (e = n.Kc(); e.Ob(); )
+ e.Pb(), e.Qb();
+ }
+ function v3(n) {
+ if ($u(n.d), n.d.d != n.c)
+ throw T(new ps());
+ }
+ function HW(n, e) {
+ this.b = n, this.c = e, this.a = new o2(this.b);
+ }
+ function qD(n, e, t) {
+ this.a = JZ, this.d = n, this.b = e, this.c = t;
+ }
+ function mTn(n, e) {
+ this.d = (_n(n), n), this.a = 16449, this.c = e;
+ }
+ function Ghe(n, e) {
+ JDn(n, K(Nh(e, "x")), K(Nh(e, "y")));
+ }
+ function zhe(n, e) {
+ JDn(n, K(Nh(e, "x")), K(Nh(e, "y")));
+ }
+ function gt(n, e) {
+ return Ma(n), new $n(n, new UX(e, n.a));
+ }
+ function Wc(n, e) {
+ return Ma(n), new $n(n, new FX(e, n.a));
+ }
+ function YE(n, e) {
+ return Ma(n), new sU(n, new SSn(e, n.a));
+ }
+ function ZE(n, e) {
+ return Ma(n), new oU(n, new PSn(e, n.a));
+ }
+ function Uhe(n, e) {
+ return new WTn(u(pe(n), 62), u(pe(e), 62));
+ }
+ function Whe(n, e) {
+ return DG(), ni((_n(n), n), (_n(e), e));
+ }
+ function Xhe() {
+ return Aj(), A(M(krn, 1), z, 481, 0, [SR]);
+ }
+ function Vhe() {
+ return Pj(), A(M(lfn, 1), z, 482, 0, [DK]);
+ }
+ function Qhe() {
+ return Ij(), A(M(uZn, 1), z, 551, 0, [$K]);
+ }
+ function Jhe() {
+ return Jv(), A(M(Dfn, 1), z, 530, 0, [hy]);
+ }
+ function kTn(n) {
+ this.a = new X(), this.e = F(be, q, 48, n, 0, 2);
+ }
+ function GD(n, e, t, i) {
+ this.a = n, this.e = e, this.d = t, this.c = i;
+ }
+ function nC(n, e, t, i) {
+ this.a = n, this.c = e, this.b = t, this.d = i;
+ }
+ function qW(n, e, t, i) {
+ this.c = n, this.b = e, this.a = t, this.d = i;
+ }
+ function yTn(n, e, t, i) {
+ this.c = n, this.b = e, this.d = t, this.a = i;
+ }
+ function ks(n, e, t, i) {
+ this.c = n, this.d = e, this.b = t, this.a = i;
+ }
+ function jTn(n, e, t, i) {
+ this.a = n, this.d = e, this.c = t, this.b = i;
+ }
+ function E2(n, e, t, i) {
+ Oe.call(this, n, e), this.a = t, this.b = i;
+ }
+ function ETn(n, e, t, i) {
+ this.a = n, this.c = e, this.d = t, this.b = i;
+ }
+ function Yhe(n, e, t) {
+ oje(n.a, t), cwe(t), xme(n.b, t), Mje(e, t);
+ }
+ function zD(n, e, t) {
+ var i, r;
+ return i = _Z(n), r = e.Kh(t, i), r;
+ }
+ function CTn(n, e) {
+ var t, i;
+ return t = n / e, i = zt(t), t > i && ++i, i;
+ }
+ function Ih(n) {
+ var e, t;
+ return t = (e = new sd(), e), I3(t, n), t;
+ }
+ function UD(n) {
+ var e, t;
+ return t = (e = new sd(), e), VJ(t, n), t;
+ }
+ function Zhe(n, e) {
+ var t;
+ return t = te(n.f, e), MV(e, t), null;
+ }
+ function WD(n) {
+ var e;
+ return e = hbe(n), e || null;
+ }
+ function TTn(n) {
+ return !n.b && (n.b = new V(bi, n, 12, 3)), n.b;
+ }
+ function n1e(n) {
+ return n != null && _9(tI, n.toLowerCase());
+ }
+ function e1e(n, e) {
+ return ni(au(n) * Gu(n), au(e) * Gu(e));
+ }
+ function t1e(n, e) {
+ return ni(au(n) * Gu(n), au(e) * Gu(e));
+ }
+ function i1e(n, e) {
+ return ni(n.d.c + n.d.b / 2, e.d.c + e.d.b / 2);
+ }
+ function r1e(n, e) {
+ return ni(n.g.c + n.g.b / 2, e.g.c + e.g.b / 2);
+ }
+ function MTn(n, e, t) {
+ t.a ? Zc(n, e.b - n.f / 2) : Yc(n, e.a - n.g / 2);
+ }
+ function ATn(n, e, t, i) {
+ this.a = n, this.b = e, this.c = t, this.d = i;
+ }
+ function STn(n, e, t, i) {
+ this.a = n, this.b = e, this.c = t, this.d = i;
+ }
+ function la(n, e, t, i) {
+ this.e = n, this.a = e, this.c = t, this.d = i;
+ }
+ function PTn(n, e, t, i) {
+ this.a = n, this.c = e, this.d = t, this.b = i;
+ }
+ function ITn(n, e, t, i) {
+ vs(), jSn.call(this, e, t, i), this.a = n;
+ }
+ function OTn(n, e, t, i) {
+ vs(), jSn.call(this, e, t, i), this.a = n;
+ }
+ function DTn(n, e) {
+ this.a = n, hue.call(this, n, u(n.d, 15).Zc(e));
+ }
+ function XD(n) {
+ this.f = n, this.c = this.f.e, n.f > 0 && GFn(this);
+ }
+ function $Tn(n, e, t, i) {
+ this.b = n, this.c = i, FO.call(this, e, t);
+ }
+ function FTn(n) {
+ return ne(n.b < n.d.gc()), n.d.Xb(n.c = n.b++);
+ }
+ function Rs(n) {
+ n.a.a = n.c, n.c.b = n.a, n.a.b = n.c.a = null, n.b = 0;
+ }
+ function GW(n, e) {
+ return n.b = e.b, n.c = e.c, n.d = e.d, n.a = e.a, n;
+ }
+ function eC(n) {
+ return n.n && (n.e !== nKn && n._d(), n.j = null), n;
+ }
+ function xTn(n) {
+ return A5(n == null || OD(n) && n.im !== Xg), n;
+ }
+ function LTn(n) {
+ this.b = new X(), Zt(this.b, this.b), this.a = n;
+ }
+ function C2() {
+ C2 = N, eS = new X(), DR = new we(), OR = new X();
+ }
+ function Pn() {
+ Pn = N, cr = new nln(), ph = new tln(), zA = new Z1n();
+ }
+ function Ow() {
+ Ow = N, Lin = new DH(), Nin = new DH(), Bin = new oln();
+ }
+ function zW() {
+ zW = N, Hzn = new Aln(), Gzn = new hW(), qzn = new Sln();
+ }
+ function c1e() {
+ Vin == 256 && (Xin = XA, XA = new ku(), Vin = 0), ++Vin;
+ }
+ function T2(n) {
+ var e;
+ return e = n.f, e || (n.f = new Jp(n, n.c));
+ }
+ function u1e(n) {
+ return Yd(n) && on(sn(hn(n, (nn(), Xa))));
+ }
+ function s1e(n, e) {
+ return Tn(n, u(k(e, (nn(), lv)), 19), e);
+ }
+ function NTn(n, e) {
+ return Kw(n.j, e.s, e.c) + Kw(e.e, n.s, n.c);
+ }
+ function BTn(n, e) {
+ n.e && !n.e.a && (Nmn(n.e, e), BTn(n.e, e));
+ }
+ function RTn(n, e) {
+ n.d && !n.d.a && (Nmn(n.d, e), RTn(n.d, e));
+ }
+ function o1e(n, e) {
+ return -ni(au(n) * Gu(n), au(e) * Gu(e));
+ }
+ function f1e(n) {
+ return u(n.cd(), 146).tg() + ":" + Nr(n.dd());
+ }
+ function h1e(n) {
+ wo();
+ var e;
+ e = u(n.g, 10), e.n.a = n.d.c + e.d.b;
+ }
+ function l1e(n, e, t) {
+ return Qv(), t2e(u(te(n.e, e), 522), t);
+ }
+ function a1e(n, e) {
+ return Du(n), Du(e), R9n(u(n, 22), u(e, 22));
+ }
+ function d1e(n, e, t) {
+ n.i = 0, n.e = 0, e != t && uDn(n, e, t);
+ }
+ function b1e(n, e, t) {
+ n.i = 0, n.e = 0, e != t && sDn(n, e, t);
+ }
+ function aa(n, e, t) {
+ var i, r;
+ i = PU(t), r = new nj(i), Ro(n, e, r);
+ }
+ function VD(n, e, t, i, r, c) {
+ R8.call(this, n, e, t, i, r, c ? -2 : -1);
+ }
+ function _Tn(n, e, t, i) {
+ lz.call(this, e, t), this.b = n, this.a = i;
+ }
+ function UW(n, e) {
+ new Ct(), this.a = new ou(), this.b = n, this.c = e;
+ }
+ function w1e(n, e) {
+ return u(k(n, (G(), gp)), 15).Fc(e), e;
+ }
+ function tC(n, e) {
+ if (n == null)
+ throw T(new c2(e));
+ return n;
+ }
+ function ot(n) {
+ return !n.q && (n.q = new V(ro, n, 11, 10)), n.q;
+ }
+ function R(n) {
+ return !n.s && (n.s = new V(uu, n, 21, 17)), n.s;
+ }
+ function iC(n) {
+ return !n.a && (n.a = new V(Pt, n, 10, 11)), n.a;
+ }
+ function rC(n) {
+ return I(n, 14) ? new S5(u(n, 14)) : Uoe(n.Kc());
+ }
+ function g1e(n) {
+ return new _yn(n, n.e.Hd().gc() * n.c.Hd().gc());
+ }
+ function p1e(n) {
+ return new Kyn(n, n.e.Hd().gc() * n.c.Hd().gc());
+ }
+ function WW(n) {
+ return n && n.hashCode ? n.hashCode() : kd(n);
+ }
+ function QD(n, e) {
+ return e == null ? !!Sr(n.f, null) : Dfe(n.g, e);
+ }
+ function v1e(n) {
+ return pe(n), oFn(new re(ue(n.a.Kc(), new Mn())));
+ }
+ function C8(n) {
+ return Pn(), I(n, 54) ? new ZI(n) : new lE(n);
+ }
+ function KTn(n, e, t) {
+ return n.f ? n.f.Ne(e, t) : !1;
+ }
+ function m1e(n, e) {
+ return n.a = Yu(n.a, 0, e) + "" + r8(n.a, e + 1), n;
+ }
+ function k1e(n, e) {
+ var t;
+ return t = Pz(n.a, e), t && (e.d = null), t;
+ }
+ function cC(n) {
+ var e, t;
+ t = n, e = t.$modCount | 0, t.$modCount = e + 1;
+ }
+ function XW(n) {
+ this.b = n, this.c = n, n.e = null, n.c = null, this.a = 1;
+ }
+ function HTn(n) {
+ this.b = n, this.a = new J1(u(pe(new san()), 62));
+ }
+ function qTn(n) {
+ this.c = n, this.b = new J1(u(pe(new Pln()), 62));
+ }
+ function GTn(n) {
+ this.c = n, this.b = new J1(u(pe(new Dan()), 62));
+ }
+ function zTn() {
+ this.a = new Qq(), this.b = new f9n(), this.d = new Ban();
+ }
+ function Id() {
+ this.a = new ou(), this.b = (is(3, Ib), new Ic(3));
+ }
+ function UTn() {
+ this.b = new hi(), this.d = new Ct(), this.e = new Yq();
+ }
+ function uC(n) {
+ this.c = n.c, this.d = n.d, this.b = n.b, this.a = n.a;
+ }
+ function WTn(n, e) {
+ eie.call(this, new AD(n)), this.a = n, this.b = e;
+ }
+ function XTn() {
+ jx(this, new eq()), this.wb = (sl(), Nn), Vp();
+ }
+ function y1e(n) {
+ le(n, "No crossing minimization", 1), ce(n);
+ }
+ function j1e(n) {
+ gj(), j.setTimeout(function() {
+ throw n;
+ }, 0);
+ }
+ function Ar(n) {
+ return n.u || (Iu(n), n.u = new Ojn(n, n)), n.u;
+ }
+ function Xc(n) {
+ var e;
+ return e = u(Rn(n, 16), 26), e || n.zh();
+ }
+ function VTn(n, e) {
+ return I(e, 146) && An(n.b, u(e, 146).tg());
+ }
+ function E1e(n, e) {
+ return n.a ? e.Wg().Kc() : u(e.Wg(), 69).Zh();
+ }
+ function C1e(n) {
+ return n.k == (Qn(), ii) && ai(n, (G(), Am));
+ }
+ function JD(n) {
+ this.a = (Pn(), I(n, 54) ? new ZI(n) : new lE(n));
+ }
+ function m3() {
+ m3 = N;
+ var n, e;
+ e = !z2e(), n = new Yl(), aR = e ? new Y1n() : n;
+ }
+ function YD(n, e) {
+ var t;
+ return t = Q1(n.gm), e == null ? t : t + ": " + e;
+ }
+ function QTn(n, e) {
+ var t;
+ return t = n.b.Qc(e), KAn(t, n.b.gc()), t;
+ }
+ function T8(n, e) {
+ if (n == null)
+ throw T(new c2(e));
+ return n;
+ }
+ function Sr(n, e) {
+ return yDn(n, e, ule(n, e == null ? 0 : n.b.se(e)));
+ }
+ function T1e(n, e, t) {
+ return t >= 0 && An(n.substr(t, e.length), e);
+ }
+ function fl(n, e, t, i, r, c, o) {
+ return new v$(n.e, e, t, i, r, c, o);
+ }
+ function JTn(n, e, t, i, r, c) {
+ this.a = n, z$.call(this, e, t, i, r, c);
+ }
+ function YTn(n, e, t, i, r, c) {
+ this.a = n, z$.call(this, e, t, i, r, c);
+ }
+ function ZTn(n, e) {
+ this.g = n, this.d = A(M(vh, 1), E1, 10, 0, [e]);
+ }
+ function f1(n, e) {
+ this.e = n, this.a = Zn, this.b = jBn(e), this.c = e;
+ }
+ function nMn(n, e) {
+ kE.call(this), eV(this), this.a = n, this.c = e;
+ }
+ function M8(n, e, t, i) {
+ Mt(n.c[e.g], t.g, i), Mt(n.c[t.g], e.g, i);
+ }
+ function ZD(n, e, t, i) {
+ Mt(n.c[e.g], e.g, t), Mt(n.b[e.g], e.g, i);
+ }
+ function M1e() {
+ return x8(), A(M(ron, 1), z, 376, 0, [uK, iy]);
+ }
+ function A1e() {
+ return K8(), A(M(Qcn, 1), z, 479, 0, [Vcn, xS]);
+ }
+ function S1e() {
+ return V8(), A(M(Wcn, 1), z, 419, 0, [$S, Ucn]);
+ }
+ function P1e() {
+ return OC(), A(M(Rcn, 1), z, 422, 0, [Bcn, s_]);
+ }
+ function I1e() {
+ return kC(), A(M(fun, 1), z, 420, 0, [j_, oun]);
+ }
+ function O1e() {
+ return z8(), A(M(non, 1), z, 421, 0, [iK, rK]);
+ }
+ function D1e() {
+ return z5(), A(M(wJn, 1), z, 523, 0, [Hm, Km]);
+ }
+ function $1e() {
+ return No(), A(M(RJn, 1), z, 520, 0, [iw, Nl]);
+ }
+ function F1e() {
+ return Ff(), A(M(jJn, 1), z, 516, 0, [A0, I1]);
+ }
+ function x1e() {
+ return ef(), A(M(CJn, 1), z, 515, 0, [Ya, kf]);
+ }
+ function L1e() {
+ return Od(), A(M(UJn, 1), z, 455, 0, [Bl, Lg]);
+ }
+ function N1e() {
+ return gC(), A(M(Son, 1), z, 425, 0, [yK, Aon]);
+ }
+ function B1e() {
+ return aC(), A(M(Mon, 1), z, 480, 0, [kK, Ton]);
+ }
+ function R1e() {
+ return iT(), A(M(Pon, 1), z, 495, 0, [EP, vv]);
+ }
+ function _1e() {
+ return $C(), A(M(Oon, 1), z, 426, 0, [Ion, TK]);
+ }
+ function K1e() {
+ return c7(), A(M(Ffn, 1), z, 429, 0, [DP, $fn]);
+ }
+ function H1e() {
+ return L8(), A(M(afn, 1), z, 430, 0, [FK, IP]);
+ }
+ function q1e() {
+ return $T(), A(M(Jin, 1), z, 428, 0, [yR, Qin]);
+ }
+ function G1e() {
+ return RC(), A(M(Zin, 1), z, 427, 0, [Yin, jR]);
+ }
+ function z1e() {
+ return _C(), A(M(Arn, 1), z, 424, 0, [$R, tS]);
+ }
+ function U1e() {
+ return N3(), A(M(BWn, 1), z, 511, 0, [_k, UR]);
+ }
+ function sC(n, e, t, i) {
+ return t >= 0 ? n.jh(e, t, i) : n.Sg(null, t, i);
+ }
+ function n$(n) {
+ return n.b.b == 0 ? n.a.$e() : aD(n.b);
+ }
+ function W1e(n) {
+ if (n.p != 5)
+ throw T(new su());
+ return ge(n.f);
+ }
+ function X1e(n) {
+ if (n.p != 5)
+ throw T(new su());
+ return ge(n.k);
+ }
+ function VW(n) {
+ return B(n.a) === B((eF(), gH)) && Vje(n), n.a;
+ }
+ function eMn(n) {
+ this.a = u(pe(n), 271), this.b = (Pn(), new Hz(n));
+ }
+ function tMn(n, e) {
+ bte(this, new fn(n.a, n.b)), wte(this, p8(e));
+ }
+ function Od() {
+ Od = N, Bl = new iz(Y2, 0), Lg = new iz(Z2, 1);
+ }
+ function Ff() {
+ Ff = N, A0 = new ez(Z2, 0), I1 = new ez(Y2, 1);
+ }
+ function Dd() {
+ rie.call(this, new s2(ob(12))), Bz(!0), this.a = 2;
+ }
+ function e$(n, e, t) {
+ Je(), ud.call(this, n), this.b = e, this.a = t;
+ }
+ function QW(n, e, t) {
+ vs(), uj.call(this, e), this.a = n, this.b = t;
+ }
+ function iMn(n) {
+ kE.call(this), eV(this), this.a = n, this.c = !0;
+ }
+ function rMn(n) {
+ var e;
+ e = n.c.d.b, n.b = e, n.a = n.c.d, e.a = n.c.d.b = n;
+ }
+ function oC(n) {
+ var e;
+ ebe(n.a), wyn(n.a), e = new tj(n.a), TQ(e);
+ }
+ function V1e(n, e) {
+ dBn(n, !0), Jc(n.e.wf(), new $U(n, !0, e));
+ }
+ function fC(n, e) {
+ return NAn(e), Y0e(n, F(be, Le, 25, e, 15, 1), e);
+ }
+ function Q1e(n, e) {
+ return C2(), n == At(fh(e)) || n == At(vl(e));
+ }
+ function mc(n, e) {
+ return e == null ? Vr(Sr(n.f, null)) : n5(n.g, e);
+ }
+ function J1e(n) {
+ return n.b == 0 ? null : (ne(n.b != 0), Cs(n, n.a.a));
+ }
+ function zt(n) {
+ return Math.max(Math.min(n, nt), -2147483648) | 0;
+ }
+ function Y1e(n, e) {
+ var t = lR[n.charCodeAt(0)];
+ return t ?? n;
+ }
+ function hC(n, e) {
+ return tC(n, "set1"), tC(e, "set2"), new n7n(n, e);
+ }
+ function Z1e(n, e) {
+ var t;
+ return t = W0e(n.f, e), st(vE(t), n.f.d);
+ }
+ function R5(n, e) {
+ var t, i;
+ return t = e, i = new dI(), e_n(n, t, i), i.d;
+ }
+ function t$(n, e, t, i) {
+ var r;
+ r = new zjn(), e.a[t.g] = r, m2(n.b, i, r);
+ }
+ function JW(n, e, t) {
+ var i;
+ i = n.Yg(e), i >= 0 ? n.sh(i, t) : _Y(n, e, t);
+ }
+ function Dw(n, e, t) {
+ dC(), n && it(dH, n, e), n && it($y, n, t);
+ }
+ function cMn(n, e, t) {
+ this.i = new X(), this.b = n, this.g = e, this.a = t;
+ }
+ function lC(n, e, t) {
+ this.c = new X(), this.e = n, this.f = e, this.b = t;
+ }
+ function YW(n, e, t) {
+ this.a = new X(), this.e = n, this.f = e, this.c = t;
+ }
+ function uMn(n, e) {
+ oE(this), this.f = e, this.g = n, eC(this), this._d();
+ }
+ function A8(n, e) {
+ var t;
+ t = n.q.getHours(), n.q.setDate(e), S6(n, t);
+ }
+ function sMn(n, e) {
+ var t;
+ for (pe(e), t = n.a; t; t = t.c)
+ e.Od(t.g, t.i);
+ }
+ function oMn(n) {
+ var e;
+ return e = new kj(ob(n.length)), qV(e, n), e;
+ }
+ function nle(n) {
+ function e() {
+ }
+ return e.prototype = n || {}, new e();
+ }
+ function ele(n, e) {
+ return NOn(n, e) ? (xIn(n), !0) : !1;
+ }
+ function Oh(n, e) {
+ if (e == null)
+ throw T(new Nv());
+ return Y2e(n, e);
+ }
+ function tle(n) {
+ if (n.qe())
+ return null;
+ var e = n.n;
+ return RA[e];
+ }
+ function S8(n) {
+ return n.Db >> 16 != 3 ? null : u(n.Cb, 33);
+ }
+ function nf(n) {
+ return n.Db >> 16 != 9 ? null : u(n.Cb, 33);
+ }
+ function fMn(n) {
+ return n.Db >> 16 != 6 ? null : u(n.Cb, 79);
+ }
+ function hMn(n) {
+ return n.Db >> 16 != 7 ? null : u(n.Cb, 235);
+ }
+ function lMn(n) {
+ return n.Db >> 16 != 7 ? null : u(n.Cb, 160);
+ }
+ function At(n) {
+ return n.Db >> 16 != 11 ? null : u(n.Cb, 33);
+ }
+ function aMn(n, e) {
+ var t;
+ return t = n.Yg(e), t >= 0 ? n.lh(t) : Ox(n, e);
+ }
+ function dMn(n, e) {
+ var t;
+ return t = new iW(e), bxn(t, n), new lu(t);
+ }
+ function ZW(n) {
+ var e;
+ return e = n.d, e = n.si(n.f), me(n, e), e.Ob();
+ }
+ function bMn(n, e) {
+ return n.b += e.b, n.c += e.c, n.d += e.d, n.a += e.a, n;
+ }
+ function i$(n, e) {
+ return j.Math.abs(n) < j.Math.abs(e) ? n : e;
+ }
+ function ile(n) {
+ return !n.a && (n.a = new V(Pt, n, 10, 11)), n.a.i > 0;
+ }
+ function wMn() {
+ this.a = new Ah(), this.e = new hi(), this.g = 0, this.i = 0;
+ }
+ function gMn(n) {
+ this.a = n, this.b = F(aJn, q, 1944, n.e.length, 0, 2);
+ }
+ function r$(n, e, t) {
+ var i;
+ i = iDn(n, e, t), n.b = new tT(i.c.length);
+ }
+ function ef() {
+ ef = N, Ya = new nz(hN, 0), kf = new nz("UP", 1);
+ }
+ function aC() {
+ aC = N, kK = new rz(IHn, 0), Ton = new rz("FAN", 1);
+ }
+ function dC() {
+ dC = N, dH = new we(), $y = new we(), Ere(Szn, new U2n());
+ }
+ function rle(n) {
+ if (n.p != 0)
+ throw T(new su());
+ return b5(n.f, 0);
+ }
+ function cle(n) {
+ if (n.p != 0)
+ throw T(new su());
+ return b5(n.k, 0);
+ }
+ function pMn(n) {
+ return n.Db >> 16 != 3 ? null : u(n.Cb, 147);
+ }
+ function k3(n) {
+ return n.Db >> 16 != 6 ? null : u(n.Cb, 235);
+ }
+ function tb(n) {
+ return n.Db >> 16 != 17 ? null : u(n.Cb, 26);
+ }
+ function vMn(n, e) {
+ var t = n.a = n.a || [];
+ return t[e] || (t[e] = n.le(e));
+ }
+ function ule(n, e) {
+ var t;
+ return t = n.a.get(e), t ?? new Array();
+ }
+ function sle(n, e) {
+ var t;
+ t = n.q.getHours(), n.q.setMonth(e), S6(n, t);
+ }
+ function yr(n, e, t) {
+ return e == null ? Rc(n.f, null, t) : zd(n.g, e, t);
+ }
+ function _5(n, e, t, i, r, c) {
+ return new xh(n.e, e, n.aj(), t, i, r, c);
+ }
+ function P8(n, e, t) {
+ return n.a = Yu(n.a, 0, e) + ("" + t) + r8(n.a, e), n;
+ }
+ function ole(n, e, t) {
+ return W(n.a, (QE(), ex(e, t), new wd(e, t))), n;
+ }
+ function nX(n) {
+ return _z(n.c), n.e = n.a = n.c, n.c = n.c.c, ++n.d, n.a.f;
+ }
+ function mMn(n) {
+ return _z(n.e), n.c = n.a = n.e, n.e = n.e.e, --n.d, n.a.f;
+ }
+ function Ti(n, e) {
+ n.d && Vc(n.d.e, n), n.d = e, n.d && W(n.d.e, n);
+ }
+ function Ki(n, e) {
+ n.c && Vc(n.c.g, n), n.c = e, n.c && W(n.c.g, n);
+ }
+ function jr(n, e) {
+ n.c && Vc(n.c.a, n), n.c = e, n.c && W(n.c.a, n);
+ }
+ function Hr(n, e) {
+ n.i && Vc(n.i.j, n), n.i = e, n.i && W(n.i.j, n);
+ }
+ function kMn(n, e, t) {
+ this.a = e, this.c = n, this.b = (pe(t), new lu(t));
+ }
+ function yMn(n, e, t) {
+ this.a = e, this.c = n, this.b = (pe(t), new lu(t));
+ }
+ function jMn(n, e) {
+ this.a = n, this.c = Qr(this.a), this.b = new uC(e);
+ }
+ function fle(n) {
+ var e;
+ return Ma(n), e = new hi(), gt(n, new Qvn(e));
+ }
+ function ib(n, e) {
+ if (n < 0 || n > e)
+ throw T(new mr(cnn + n + unn + e));
+ }
+ function eX(n, e) {
+ return aCn(n.a, e) ? TW(n, u(e, 22).g, null) : null;
+ }
+ function hle(n) {
+ return yF(), qn(), u(n.a, 81).d.e != 0;
+ }
+ function EMn() {
+ EMn = N, dzn = Fe((aj(), A(M(azn, 1), z, 538, 0, [fR])));
+ }
+ function CMn() {
+ CMn = N, ZQn = ju(new li(), (Vi(), Or), (rr(), Kk));
+ }
+ function tX() {
+ tX = N, nJn = ju(new li(), (Vi(), Or), (rr(), Kk));
+ }
+ function TMn() {
+ TMn = N, tJn = ju(new li(), (Vi(), Or), (rr(), Kk));
+ }
+ function MMn() {
+ MMn = N, pJn = Ze(new li(), (Vi(), Or), (rr(), km));
+ }
+ function Zu() {
+ Zu = N, kJn = Ze(new li(), (Vi(), Or), (rr(), km));
+ }
+ function AMn() {
+ AMn = N, yJn = Ze(new li(), (Vi(), Or), (rr(), km));
+ }
+ function c$() {
+ c$ = N, MJn = Ze(new li(), (Vi(), Or), (rr(), km));
+ }
+ function SMn() {
+ SMn = N, aYn = ju(new li(), (r4(), Gm), (k6(), lK));
+ }
+ function da(n, e, t, i) {
+ this.c = n, this.d = i, s$(this, e), o$(this, t);
+ }
+ function M2(n) {
+ this.c = new Ct(), this.b = n.b, this.d = n.c, this.a = n.a;
+ }
+ function u$(n) {
+ this.a = j.Math.cos(n), this.b = j.Math.sin(n);
+ }
+ function s$(n, e) {
+ n.a && Vc(n.a.k, n), n.a = e, n.a && W(n.a.k, n);
+ }
+ function o$(n, e) {
+ n.b && Vc(n.b.f, n), n.b = e, n.b && W(n.b.f, n);
+ }
+ function PMn(n, e) {
+ mhe(n, n.b, n.c), u(n.b.b, 65), e && u(e.b, 65).b;
+ }
+ function lle(n, e) {
+ vQ(n, e), I(n.Cb, 88) && jb(Iu(u(n.Cb, 88)), 2);
+ }
+ function f$(n, e) {
+ I(n.Cb, 88) && jb(Iu(u(n.Cb, 88)), 4), Oc(n, e);
+ }
+ function bC(n, e) {
+ I(n.Cb, 179) && (u(n.Cb, 179).tb = null), Oc(n, e);
+ }
+ function kc(n, e) {
+ return er(), R$(e) ? new IE(e, n) : new i8(e, n);
+ }
+ function ale(n, e) {
+ var t, i;
+ t = e.c, i = t != null, i && j2(n, new nb(e.c));
+ }
+ function IMn(n) {
+ var e, t;
+ return t = (Vp(), e = new sd(), e), I3(t, n), t;
+ }
+ function OMn(n) {
+ var e, t;
+ return t = (Vp(), e = new sd(), e), I3(t, n), t;
+ }
+ function DMn(n, e) {
+ var t;
+ return t = new Bs(n), e.c[e.c.length] = t, t;
+ }
+ function $Mn(n, e) {
+ var t;
+ return t = u(db(T2(n.a), e), 14), t ? t.gc() : 0;
+ }
+ function FMn(n) {
+ var e;
+ return Ma(n), e = (Ow(), Ow(), Nin), qC(n, e);
+ }
+ function xMn(n) {
+ for (var e; ; )
+ if (e = n.Pb(), !n.Ob())
+ return e;
+ }
+ function iX(n, e) {
+ tie.call(this, new s2(ob(n))), is(e, X_n), this.a = e;
+ }
+ function ch(n, e, t) {
+ HDn(e, t, n.gc()), this.c = n, this.a = e, this.b = t - e;
+ }
+ function LMn(n, e, t) {
+ var i;
+ HDn(e, t, n.c.length), i = t - e, AG(n.c, e, i);
+ }
+ function dle(n, e) {
+ $yn(n, ge(ui(rl(e, 24), FM)), ge(ui(e, FM)));
+ }
+ function Ln(n, e) {
+ if (n < 0 || n >= e)
+ throw T(new mr(cnn + n + unn + e));
+ }
+ function Me(n, e) {
+ if (n < 0 || n >= e)
+ throw T(new wG(cnn + n + unn + e));
+ }
+ function xn(n, e) {
+ this.b = (_n(n), n), this.a = e & Ob ? e : e | 64 | Nf;
+ }
+ function NMn(n) {
+ byn(this), Xmn(this.a, KV(j.Math.max(8, n)) << 1);
+ }
+ function tf(n) {
+ return Gr(A(M(di, 1), q, 8, 0, [n.i.n, n.n, n.a]));
+ }
+ function ble() {
+ return hf(), A(M(Nu, 1), z, 132, 0, [Win, hs, _b]);
+ }
+ function wle() {
+ return _o(), A(M(Kb, 1), z, 232, 0, [Zr, xc, nc]);
+ }
+ function gle() {
+ return Cu(), A(M(Jzn, 1), z, 461, 0, [Xf, Il, Co]);
+ }
+ function ple() {
+ return Qc(), A(M(Zzn, 1), z, 462, 0, [Wo, Ol, To]);
+ }
+ function vle() {
+ return Gd(), A(M(zrn, 1), z, 423, 0, [yg, Grn, qR]);
+ }
+ function mle() {
+ return W5(), A(M(Krn, 1), z, 379, 0, [NR, LR, BR]);
+ }
+ function kle() {
+ return i6(), A(M(Gsn, 1), z, 378, 0, [J_, qsn, oP]);
+ }
+ function yle() {
+ return F2(), A(M(Kcn, 1), z, 314, 0, [ap, qk, _cn]);
+ }
+ function jle() {
+ return VC(), A(M(qcn, 1), z, 337, 0, [Hcn, DS, o_]);
+ }
+ function Ele() {
+ return ja(), A(M(dXn, 1), z, 450, 0, [l_, rv, Tg]);
+ }
+ function Cle() {
+ return Hd(), A(M(YR, 1), z, 361, 0, [p0, $l, g0]);
+ }
+ function Tle() {
+ return Lh(), A(M(yXn, 1), z, 303, 0, [zk, Ag, dp]);
+ }
+ function Mle() {
+ return H3(), A(M(y_, 1), z, 292, 0, [m_, k_, Gk]);
+ }
+ function Ale() {
+ return ur(), A(M(UQn, 1), z, 452, 0, [Bm, Au, Lc]);
+ }
+ function Sle() {
+ return Bh(), A(M(Zsn, 1), z, 339, 0, [Ll, Ysn, tK]);
+ }
+ function Ple() {
+ return oT(), A(M(ion, 1), z, 375, 0, [eon, cK, ton]);
+ }
+ function Ile() {
+ return dT(), A(M(hon, 1), z, 377, 0, [fK, gv, tw]);
+ }
+ function Ole() {
+ return V3(), A(M(uon, 1), z, 336, 0, [sK, con, Rm]);
+ }
+ function Dle() {
+ return uT(), A(M(fon, 1), z, 338, 0, [oon, oK, son]);
+ }
+ function $le() {
+ return Kd(), A(M(hJn, 1), z, 454, 0, [ry, _m, aP]);
+ }
+ function Fle() {
+ return CT(), A(M(pYn, 1), z, 442, 0, [CK, jK, EK]);
+ }
+ function xle() {
+ return f7(), A(M(Fon, 1), z, 380, 0, [CP, Don, $on]);
+ }
+ function Lle() {
+ return ET(), A(M(Yon, 1), z, 381, 0, [Jon, IK, Qon]);
+ }
+ function Nle() {
+ return sT(), A(M(Xon, 1), z, 293, 0, [PK, Won, Uon]);
+ }
+ function Ble() {
+ return w7(), A(M(OK, 1), z, 437, 0, [AP, SP, PP]);
+ }
+ function Rle() {
+ return Rh(), A(M(Khn, 1), z, 334, 0, [HP, F1, i9]);
+ }
+ function _le() {
+ return sf(), A(M(Phn, 1), z, 272, 0, [yv, uw, jv]);
+ }
+ function Kle(n, e) {
+ return o9e(n, e, I(e, 99) && (u(e, 18).Bb & Ji) != 0);
+ }
+ function Hle(n, e, t) {
+ var i;
+ return i = O6(n, e, !1), i.b <= e && i.a <= t;
+ }
+ function BMn(n, e, t) {
+ var i;
+ i = new Ywn(), i.b = e, i.a = t, ++e.b, W(n.d, i);
+ }
+ function qle(n, e) {
+ var t;
+ return t = (_n(n), n).g, Yz(!!t), _n(e), t(e);
+ }
+ function rX(n, e) {
+ var t, i;
+ return i = a3(n, e), t = n.a.Zc(i), new Z8n(n, t);
+ }
+ function Gle(n) {
+ return n.Db >> 16 != 6 ? null : u(Fx(n), 235);
+ }
+ function zle(n) {
+ if (n.p != 2)
+ throw T(new su());
+ return ge(n.f) & Wt;
+ }
+ function Ule(n) {
+ if (n.p != 2)
+ throw T(new su());
+ return ge(n.k) & Wt;
+ }
+ function Wle(n) {
+ return n.a == (C3(), uI) && Ste(n, C9e(n.g, n.b)), n.a;
+ }
+ function A2(n) {
+ return n.d == (C3(), uI) && Ite(n, pke(n.g, n.b)), n.d;
+ }
+ function y(n) {
+ return ne(n.a < n.c.c.length), n.b = n.a++, n.c.c[n.b];
+ }
+ function Xle(n, e) {
+ n.b = n.b | e.b, n.c = n.c | e.c, n.d = n.d | e.d, n.a = n.a | e.a;
+ }
+ function ui(n, e) {
+ return dl(Hfe(Fr(n) ? _s(n) : n, Fr(e) ? _s(e) : e));
+ }
+ function rf(n, e) {
+ return dl(qfe(Fr(n) ? _s(n) : n, Fr(e) ? _s(e) : e));
+ }
+ function h$(n, e) {
+ return dl(Gfe(Fr(n) ? _s(n) : n, Fr(e) ? _s(e) : e));
+ }
+ function Vle(n) {
+ return Hi(Ph(nu(Fu(n, 32)), 32), nu(Fu(n, 32)));
+ }
+ function $d(n) {
+ return pe(n), I(n, 14) ? new lu(u(n, 14)) : o3(n.Kc());
+ }
+ function Qle(n, e) {
+ return X5(), n.c == e.c ? ni(e.d, n.d) : ni(n.c, e.c);
+ }
+ function Jle(n, e) {
+ return X5(), n.c == e.c ? ni(n.d, e.d) : ni(n.c, e.c);
+ }
+ function Yle(n, e) {
+ return X5(), n.c == e.c ? ni(n.d, e.d) : ni(e.c, n.c);
+ }
+ function Zle(n, e) {
+ return X5(), n.c == e.c ? ni(e.d, n.d) : ni(e.c, n.c);
+ }
+ function nae(n, e) {
+ var t;
+ t = K(Y(n.a.We((Xe(), KP)))), M_n(n, e, t);
+ }
+ function eae(n, e) {
+ var t;
+ t = u(te(n.g, e), 57), Jc(e.d, new H7n(n, t));
+ }
+ function tae(n, e) {
+ var t, i;
+ return t = CFn(n), i = CFn(e), t < i ? -1 : t > i ? 1 : 0;
+ }
+ function RMn(n, e) {
+ var t, i;
+ return t = F$(e), i = t, u(te(n.c, i), 19).a;
+ }
+ function _Mn(n, e) {
+ var t;
+ for (t = n + ""; t.length < e; )
+ t = "0" + t;
+ return t;
+ }
+ function wC(n) {
+ return n.c == null || n.c.length == 0 ? "n_" + n.g : "n_" + n.c;
+ }
+ function cX(n) {
+ return n.c == null || n.c.length == 0 ? "n_" + n.b : "n_" + n.c;
+ }
+ function uX(n, e) {
+ return n && n.equals ? n.equals(e) : B(n) === B(e);
+ }
+ function sX(n, e) {
+ return e == 0 ? !!n.o && n.o.f != 0 : zF(n, e);
+ }
+ function go(n, e, t) {
+ var i;
+ n.n && e && t && (i = new L2n(), W(n.e, i));
+ }
+ function l$(n, e, t) {
+ var i;
+ i = n.d[e.p], n.d[e.p] = n.d[t.p], n.d[t.p] = i;
+ }
+ function KMn(n, e, t) {
+ this.d = n, this.j = e, this.e = t, this.o = -1, this.p = 3;
+ }
+ function HMn(n, e, t) {
+ this.d = n, this.k = e, this.f = t, this.o = -1, this.p = 5;
+ }
+ function qMn(n, e, t) {
+ ud.call(this, 25), this.b = n, this.a = e, this.c = t;
+ }
+ function ns(n) {
+ Je(), ud.call(this, n), this.c = !1, this.a = !1;
+ }
+ function GMn(n, e, t, i, r, c) {
+ rV.call(this, n, e, t, i, r), c && (this.o = -2);
+ }
+ function zMn(n, e, t, i, r, c) {
+ cV.call(this, n, e, t, i, r), c && (this.o = -2);
+ }
+ function UMn(n, e, t, i, r, c) {
+ PX.call(this, n, e, t, i, r), c && (this.o = -2);
+ }
+ function WMn(n, e, t, i, r, c) {
+ oV.call(this, n, e, t, i, r), c && (this.o = -2);
+ }
+ function XMn(n, e, t, i, r, c) {
+ IX.call(this, n, e, t, i, r), c && (this.o = -2);
+ }
+ function VMn(n, e, t, i, r, c) {
+ uV.call(this, n, e, t, i, r), c && (this.o = -2);
+ }
+ function QMn(n, e, t, i, r, c) {
+ sV.call(this, n, e, t, i, r), c && (this.o = -2);
+ }
+ function JMn(n, e, t, i, r, c) {
+ OX.call(this, n, e, t, i, r), c && (this.o = -2);
+ }
+ function YMn(n, e, t, i) {
+ uj.call(this, t), this.b = n, this.c = e, this.d = i;
+ }
+ function oX(n, e) {
+ this.a = new X(), this.d = new X(), this.f = n, this.c = e;
+ }
+ function ZMn() {
+ this.c = new Tyn(), this.a = new zTn(), this.b = new i9n(), g7n();
+ }
+ function nAn() {
+ L2(), this.b = new we(), this.a = new we(), this.c = new X();
+ }
+ function eAn(n, e) {
+ this.g = n, this.d = (C3(), uI), this.a = uI, this.b = e;
+ }
+ function tAn(n, e) {
+ this.f = n, this.a = (C3(), cI), this.c = cI, this.b = e;
+ }
+ function fX(n, e) {
+ !n.c && (n.c = new Ft(n, 0)), yM(n.c, (ht(), w9), e);
+ }
+ function gC() {
+ gC = N, yK = new cz("DFS", 0), Aon = new cz("BFS", 1);
+ }
+ function iae(n, e, t) {
+ var i;
+ return i = u(n.Zb().xc(e), 14), !!i && i.Hc(t);
+ }
+ function iAn(n, e, t) {
+ var i;
+ return i = u(n.Zb().xc(e), 14), !!i && i.Mc(t);
+ }
+ function rAn(n, e, t, i) {
+ return n.a += "" + Yu(e == null ? tu : Nr(e), t, i), n;
+ }
+ function Jr(n, e, t, i, r, c) {
+ return pOn(n, e, t, c), dQ(n, i), bQ(n, r), n;
+ }
+ function a$(n) {
+ return ne(n.b.b != n.d.a), n.c = n.b = n.b.b, --n.a, n.c.c;
+ }
+ function K5(n) {
+ for (; n.d > 0 && n.a[--n.d] == 0; )
+ ;
+ n.a[n.d++] == 0 && (n.e = 0);
+ }
+ function cAn(n) {
+ return n.a ? n.e.length == 0 ? n.a.a : n.a.a + ("" + n.e) : n.c;
+ }
+ function rae(n) {
+ return !!n.a && Ou(n.a.a).i != 0 && !(n.b && YF(n.b));
+ }
+ function cae(n) {
+ return !!n.u && wc(n.u.a).i != 0 && !(n.n && JF(n.n));
+ }
+ function uAn(n) {
+ return gD(n.e.Hd().gc() * n.c.Hd().gc(), 16, new ivn(n));
+ }
+ function uae(n, e) {
+ return LCn(nu(n.q.getTime()), nu(e.q.getTime()));
+ }
+ function xf(n) {
+ return u(lf(n, F(GR, MN, 17, n.c.length, 0, 1)), 474);
+ }
+ function I8(n) {
+ return u(lf(n, F(vh, E1, 10, n.c.length, 0, 1)), 193);
+ }
+ function sae(n) {
+ return Zu(), !Wi(n) && !(!Wi(n) && n.c.i.c == n.d.i.c);
+ }
+ function sAn(n, e, t) {
+ var i;
+ i = (pe(n), new lu(n)), N3e(new kMn(i, e, t));
+ }
+ function O8(n, e, t) {
+ var i;
+ i = (pe(n), new lu(n)), B3e(new yMn(i, e, t));
+ }
+ function oAn(n, e) {
+ var t;
+ return t = 1 - e, n.a[t] = eT(n.a[t], t), eT(n, e);
+ }
+ function fAn(n, e) {
+ var t;
+ n.e = new oG(), t = Tb(e), wi(t, n.c), tBn(n, t, 0);
+ }
+ function Mi(n, e, t, i) {
+ var r;
+ r = new XH(), r.a = e, r.b = t, r.c = i, Ke(n.a, r);
+ }
+ function Z(n, e, t, i) {
+ var r;
+ r = new XH(), r.a = e, r.b = t, r.c = i, Ke(n.b, r);
+ }
+ function po(n) {
+ var e, t, i;
+ return e = new qCn(), t = Zx(e, n), UEe(e), i = t, i;
+ }
+ function hX() {
+ var n, e, t;
+ return e = (t = (n = new sd(), n), t), W(M1n, e), e;
+ }
+ function pC(n) {
+ return n.j.c = F(Zn, rn, 1, 0, 5, 1), KW(n.c), Khe(n.a), n;
+ }
+ function $w(n) {
+ return Qv(), I(n.g, 10) ? u(n.g, 10) : null;
+ }
+ function oae(n) {
+ return Iw(n).dc() ? !1 : (sce(n, new Dv()), !0);
+ }
+ function fae(n) {
+ if (!("stack" in n))
+ try {
+ throw n;
+ } catch {
+ }
+ return n;
+ }
+ function D8(n, e) {
+ if (n < 0 || n >= e)
+ throw T(new mr(j6e(n, e)));
+ return n;
+ }
+ function hAn(n, e, t) {
+ if (n < 0 || e < n || e > t)
+ throw T(new mr(W5e(n, e, t)));
+ }
+ function d$(n, e) {
+ if (ci(n.a, e), e.d)
+ throw T(new _r(gKn));
+ e.d = n;
+ }
+ function b$(n, e) {
+ if (e.$modCount != n.$modCount)
+ throw T(new ps());
+ }
+ function lAn(n, e) {
+ return I(e, 42) ? ix(n.a, u(e, 42)) : !1;
+ }
+ function aAn(n, e) {
+ return I(e, 42) ? ix(n.a, u(e, 42)) : !1;
+ }
+ function dAn(n, e) {
+ return I(e, 42) ? ix(n.a, u(e, 42)) : !1;
+ }
+ function hae(n, e) {
+ return n.a <= n.b ? (e.ud(n.a++), !0) : !1;
+ }
+ function Fd(n) {
+ var e;
+ return Fr(n) ? (e = n, e == -0 ? 0 : e) : m0e(n);
+ }
+ function vC(n) {
+ var e;
+ return ol(n), e = new hln(), vw(n.a, new Xvn(e)), e;
+ }
+ function bAn(n) {
+ var e;
+ return ol(n), e = new fln(), vw(n.a, new Wvn(e)), e;
+ }
+ function Ii(n, e) {
+ this.a = n, $v.call(this, n), ib(e, n.gc()), this.b = e;
+ }
+ function lX(n) {
+ this.e = n, this.b = this.e.a.entries(), this.a = new Array();
+ }
+ function lae(n) {
+ return gD(n.e.Hd().gc() * n.c.Hd().gc(), 273, new tvn(n));
+ }
+ function mC(n) {
+ return new Ic((is(n, AL), KC(Hi(Hi(5, n), n / 10 | 0))));
+ }
+ function wAn(n) {
+ return u(lf(n, F(xWn, WKn, 11, n.c.length, 0, 1)), 1943);
+ }
+ function aae(n, e, t) {
+ return t.f.c.length > 0 ? SW(n.a, e, t) : SW(n.b, e, t);
+ }
+ function dae(n, e, t) {
+ n.d && Vc(n.d.e, n), n.d = e, n.d && J0(n.d.e, t, n);
+ }
+ function w$(n, e) {
+ uTe(e, n), WU(n.d), WU(u(k(n, (nn(), eP)), 207));
+ }
+ function H5(n, e) {
+ cTe(e, n), UU(n.d), UU(u(k(n, (nn(), eP)), 207));
+ }
+ function xd(n, e) {
+ var t, i;
+ return t = Oh(n, e), i = null, t && (i = t.fe()), i;
+ }
+ function y3(n, e) {
+ var t, i;
+ return t = sb(n, e), i = null, t && (i = t.ie()), i;
+ }
+ function q5(n, e) {
+ var t, i;
+ return t = Oh(n, e), i = null, t && (i = t.ie()), i;
+ }
+ function Dh(n, e) {
+ var t, i;
+ return t = Oh(n, e), i = null, t && (i = tY(t)), i;
+ }
+ function bae(n, e, t) {
+ var i;
+ return i = t4(t), gM(n.g, i, e), gM(n.i, e, t), e;
+ }
+ function wae(n, e, t) {
+ var i;
+ i = q2e();
+ try {
+ return kue(n, e, t);
+ } finally {
+ Mae(i);
+ }
+ }
+ function gAn(n) {
+ var e;
+ e = n.Wg(), this.a = I(e, 69) ? u(e, 69).Zh() : e.Kc();
+ }
+ function li() {
+ I9n.call(this), this.j.c = F(Zn, rn, 1, 0, 5, 1), this.a = -1;
+ }
+ function aX(n, e, t, i) {
+ this.d = n, this.n = e, this.g = t, this.o = i, this.p = -1;
+ }
+ function pAn(n, e, t, i) {
+ this.e = i, this.d = null, this.c = n, this.a = e, this.b = t;
+ }
+ function dX(n, e, t) {
+ this.d = new c6n(this), this.e = n, this.i = e, this.f = t;
+ }
+ function kC() {
+ kC = N, j_ = new QG(P4, 0), oun = new QG("TOP_LEFT", 1);
+ }
+ function vAn() {
+ vAn = N, aon = dTn(Q(1), Q(4)), lon = dTn(Q(1), Q(2));
+ }
+ function mAn() {
+ mAn = N, sZn = Fe((Ij(), A(M(uZn, 1), z, 551, 0, [$K])));
+ }
+ function kAn() {
+ kAn = N, cZn = Fe((Pj(), A(M(lfn, 1), z, 482, 0, [DK])));
+ }
+ function yAn() {
+ yAn = N, TZn = Fe((Jv(), A(M(Dfn, 1), z, 530, 0, [hy])));
+ }
+ function jAn() {
+ jAn = N, OUn = Fe((Aj(), A(M(krn, 1), z, 481, 0, [SR])));
+ }
+ function gae() {
+ return qd(), A(M(CUn, 1), z, 406, 0, [Ok, Ik, MR, AR]);
+ }
+ function pae() {
+ return FC(), A(M(WA, 1), z, 297, 0, [vR, qin, Gin, zin]);
+ }
+ function vae() {
+ return d6(), A(M(PUn, 1), z, 394, 0, [Lk, YA, ZA, Nk]);
+ }
+ function mae() {
+ return K2(), A(M(MUn, 1), z, 323, 0, [$k, Dk, Fk, xk]);
+ }
+ function kae() {
+ return q3(), A(M(EWn, 1), z, 405, 0, [w0, qb, Hb, kg]);
+ }
+ function yae() {
+ return aT(), A(M(HWn, 1), z, 360, 0, [QR, TS, MS, Hk]);
+ }
+ function EAn(n, e, t, i) {
+ return I(t, 54) ? new fjn(n, e, t, i) : new pW(n, e, t, i);
+ }
+ function jae() {
+ return ff(), A(M(JWn, 1), z, 411, 0, [lp, Z4, nv, JR]);
+ }
+ function Eae(n) {
+ var e;
+ return n.j == (J(), ae) && (e = zLn(n), hu(e, Vn));
+ }
+ function Cae(n, e) {
+ var t;
+ t = e.a, Ki(t, e.c.d), Ti(t, e.d.d), hb(t.a, n.n);
+ }
+ function CAn(n, e) {
+ return u(jd(KE(u(ct(n.k, e), 15).Oc(), jg)), 113);
+ }
+ function TAn(n, e) {
+ return u(jd(HE(u(ct(n.k, e), 15).Oc(), jg)), 113);
+ }
+ function Tae(n) {
+ return new xn(jbe(u(n.a.dd(), 14).gc(), n.a.cd()), 16);
+ }
+ function j3(n) {
+ return I(n, 14) ? u(n, 14).dc() : !n.Kc().Ob();
+ }
+ function S2(n) {
+ return Qv(), I(n.g, 145) ? u(n.g, 145) : null;
+ }
+ function MAn(n) {
+ if (n.e.g != n.b)
+ throw T(new ps());
+ return !!n.c && n.d > 0;
+ }
+ function Re(n) {
+ return ne(n.b != n.d.c), n.c = n.b, n.b = n.b.a, ++n.a, n.c.c;
+ }
+ function bX(n, e) {
+ _n(e), Mt(n.a, n.c, e), n.c = n.c + 1 & n.a.length - 1, AFn(n);
+ }
+ function hl(n, e) {
+ _n(e), n.b = n.b - 1 & n.a.length - 1, Mt(n.a, n.b, e), AFn(n);
+ }
+ function AAn(n, e) {
+ var t;
+ for (t = n.j.c.length; t < e; t++)
+ W(n.j, n.rg());
+ }
+ function SAn(n, e, t, i) {
+ var r;
+ return r = i[e.g][t.g], K(Y(k(n.a, r)));
+ }
+ function wX(n, e, t, i, r) {
+ this.i = n, this.a = e, this.e = t, this.j = i, this.f = r;
+ }
+ function PAn(n, e, t, i, r) {
+ this.a = n, this.e = e, this.f = t, this.b = i, this.g = r;
+ }
+ function Mae(n) {
+ n && j0e((aG(), din)), --_A, n && KA != -1 && (hre(KA), KA = -1);
+ }
+ function Aae() {
+ return gb(), A(M(Z_, 1), z, 197, 0, [fP, Y_, xg, Fg]);
+ }
+ function Sae() {
+ return r4(), A(M(won, 1), z, 393, 0, [gP, qm, uy, Gm]);
+ }
+ function Pae() {
+ return qT(), A(M(zon, 1), z, 340, 0, [SK, qon, Gon, Hon]);
+ }
+ function Iae() {
+ return Vu(), A(M(o9, 1), z, 374, 0, [Ay, rd, My, sw]);
+ }
+ function Oae() {
+ return cs(), A(M(one, 1), z, 285, 0, [Ey, kh, _l, jy]);
+ }
+ function Dae() {
+ return Kh(), A(M(cH, 1), z, 218, 0, [rH, yy, Ev, Sp]);
+ }
+ function $ae() {
+ return AT(), A(M(Qhn, 1), z, 311, 0, [oH, Whn, Vhn, Xhn]);
+ }
+ function Fae() {
+ return Xu(), A(M(Ene, 1), z, 396, 0, [ws, Yhn, Jhn, Zhn]);
+ }
+ function xae(n) {
+ return dC(), zu(dH, n) ? u(te(dH, n), 331).ug() : null;
+ }
+ function ys(n, e, t) {
+ return e < 0 ? Ox(n, t) : u(t, 66).Nj().Sj(n, n.yh(), e);
+ }
+ function Lae(n, e, t) {
+ var i;
+ return i = t4(t), gM(n.d, i, e), it(n.e, e, t), e;
+ }
+ function Nae(n, e, t) {
+ var i;
+ return i = t4(t), gM(n.j, i, e), it(n.k, e, t), e;
+ }
+ function IAn(n) {
+ var e, t;
+ return e = (dd(), t = new VH(), t), n && _x(e, n), e;
+ }
+ function gX(n) {
+ var e;
+ return e = n.ri(n.i), n.i > 0 && pc(n.g, 0, e, 0, n.i), e;
+ }
+ function OAn(n, e) {
+ $j();
+ var t;
+ return t = u(te(eI, n), 55), !t || t.wj(e);
+ }
+ function Bae(n) {
+ if (n.p != 1)
+ throw T(new su());
+ return ge(n.f) << 24 >> 24;
+ }
+ function Rae(n) {
+ if (n.p != 1)
+ throw T(new su());
+ return ge(n.k) << 24 >> 24;
+ }
+ function _ae(n) {
+ if (n.p != 7)
+ throw T(new su());
+ return ge(n.k) << 16 >> 16;
+ }
+ function Kae(n) {
+ if (n.p != 7)
+ throw T(new su());
+ return ge(n.f) << 16 >> 16;
+ }
+ function $h(n) {
+ var e;
+ for (e = 0; n.Ob(); )
+ n.Pb(), e = Hi(e, 1);
+ return KC(e);
+ }
+ function DAn(n, e) {
+ var t;
+ return t = new _0(), n.xd(t), t.a += "..", e.yd(t), t.a;
+ }
+ function Hae(n, e, t) {
+ var i;
+ i = u(te(n.g, t), 57), W(n.a.c, new Pi(e, i));
+ }
+ function qae(n, e, t) {
+ return TD(Y(Vr(Sr(n.f, e))), Y(Vr(Sr(n.f, t))));
+ }
+ function yC(n, e, t) {
+ return vM(n, e, t, I(e, 99) && (u(e, 18).Bb & Ji) != 0);
+ }
+ function Gae(n, e, t) {
+ return v4(n, e, t, I(e, 99) && (u(e, 18).Bb & Ji) != 0);
+ }
+ function zae(n, e, t) {
+ return b9e(n, e, t, I(e, 99) && (u(e, 18).Bb & Ji) != 0);
+ }
+ function pX(n, e) {
+ return n == (Qn(), ii) && e == ii ? 4 : n == ii || e == ii ? 8 : 32;
+ }
+ function $An(n, e) {
+ return B(e) === B(n) ? "(this Map)" : e == null ? tu : Nr(e);
+ }
+ function Uae(n, e) {
+ return u(e == null ? Vr(Sr(n.f, null)) : n5(n.g, e), 281);
+ }
+ function FAn(n, e, t) {
+ var i;
+ return i = t4(t), it(n.b, i, e), it(n.c, e, t), e;
+ }
+ function xAn(n, e) {
+ var t;
+ for (t = e; t; )
+ W0(n, t.i, t.j), t = At(t);
+ return n;
+ }
+ function vX(n, e) {
+ var t;
+ return t = C8(o3(new x$(n, e))), DE(new x$(n, e)), t;
+ }
+ function uh(n, e) {
+ er();
+ var t;
+ return t = u(n, 66).Mj(), M5e(t, e), t.Ok(e);
+ }
+ function Wae(n, e, t, i, r) {
+ var c;
+ c = m9e(r, t, i), W(e, p6e(r, c)), o5e(n, r, e);
+ }
+ function LAn(n, e, t) {
+ n.i = 0, n.e = 0, e != t && (sDn(n, e, t), uDn(n, e, t));
+ }
+ function mX(n, e) {
+ var t;
+ t = n.q.getHours(), n.q.setFullYear(e + Cl), S6(n, t);
+ }
+ function Xae(n, e, t) {
+ if (t) {
+ var i = t.ee();
+ n.a[e] = i(t);
+ } else
+ delete n.a[e];
+ }
+ function g$(n, e, t) {
+ if (t) {
+ var i = t.ee();
+ t = i(t);
+ } else
+ t = void 0;
+ n.a[e] = t;
+ }
+ function NAn(n) {
+ if (n < 0)
+ throw T(new H9n("Negative array size: " + n));
+ }
+ function wc(n) {
+ return n.n || (Iu(n), n.n = new gCn(n, ar, n), Ar(n)), n.n;
+ }
+ function G5(n) {
+ return ne(n.a < n.c.a.length), n.b = n.a, GPn(n), n.c.b[n.b];
+ }
+ function kX(n) {
+ n.b != n.c && (n.a = F(Zn, rn, 1, 8, 5, 1), n.b = 0, n.c = 0);
+ }
+ function BAn(n) {
+ this.b = new we(), this.c = new we(), this.d = new we(), this.a = n;
+ }
+ function rb(n, e) {
+ Je(), ud.call(this, n), this.a = e, this.c = -1, this.b = -1;
+ }
+ function cb(n, e, t, i) {
+ KMn.call(this, 1, t, i), this.c = n, this.b = e;
+ }
+ function p$(n, e, t, i) {
+ HMn.call(this, 1, t, i), this.c = n, this.b = e;
+ }
+ function v$(n, e, t, i, r, c, o) {
+ z$.call(this, e, i, r, c, o), this.c = n, this.a = t;
+ }
+ function ba(n, e, t) {
+ this.e = n, this.a = Zn, this.b = jBn(e), this.c = e, this.d = t;
+ }
+ function m$(n) {
+ this.e = n, this.c = this.e.a, this.b = this.e.g, this.d = this.e.i;
+ }
+ function RAn(n) {
+ this.c = n, this.a = u(Hs(n), 148), this.b = this.a.Aj().Nh();
+ }
+ function yX(n) {
+ this.d = n, this.b = this.d.a.entries(), this.a = this.b.next();
+ }
+ function wa() {
+ we.call(this), cjn(this), this.d.b = this.d, this.d.a = this.d;
+ }
+ function _An(n, e) {
+ pU.call(this), this.a = n, this.b = e, W(this.a.b, this);
+ }
+ function Vae(n, e) {
+ var t;
+ return t = e != null ? mc(n, e) : Vr(Sr(n.f, e)), eE(t);
+ }
+ function Qae(n, e) {
+ var t;
+ return t = e != null ? mc(n, e) : Vr(Sr(n.f, e)), eE(t);
+ }
+ function KAn(n, e) {
+ var t;
+ for (t = 0; t < e; ++t)
+ Mt(n, t, new kq(u(n[t], 42)));
+ }
+ function Jae(n, e) {
+ var t;
+ for (t = n.d - 1; t >= 0 && n.a[t] === e[t]; t--)
+ ;
+ return t < 0;
+ }
+ function HAn(n, e) {
+ X3();
+ var t;
+ return t = n.j.g - e.j.g, t != 0 ? t : 0;
+ }
+ function qAn(n, e) {
+ return _n(e), n.a != null ? $fe(e.Kb(n.a)) : UA;
+ }
+ function jC(n) {
+ var e;
+ return n ? new iW(n) : (e = new Ah(), nF(e, n), e);
+ }
+ function es(n, e) {
+ var t;
+ return e.b.Kb(xPn(n, e.c.Ee(), (t = new Yvn(e), t)));
+ }
+ function EC(n) {
+ _J(), $yn(this, ge(ui(rl(n, 24), FM)), ge(ui(n, FM)));
+ }
+ function GAn() {
+ GAn = N, zzn = Fe(($T(), A(M(Jin, 1), z, 428, 0, [yR, Qin])));
+ }
+ function zAn() {
+ zAn = N, Uzn = Fe((RC(), A(M(Zin, 1), z, 427, 0, [Yin, jR])));
+ }
+ function UAn() {
+ UAn = N, XUn = Fe((_C(), A(M(Arn, 1), z, 424, 0, [$R, tS])));
+ }
+ function WAn() {
+ WAn = N, RWn = Fe((N3(), A(M(BWn, 1), z, 511, 0, [_k, UR])));
+ }
+ function XAn() {
+ XAn = N, aXn = Fe((V8(), A(M(Wcn, 1), z, 419, 0, [$S, Ucn])));
+ }
+ function VAn() {
+ VAn = N, gXn = Fe((K8(), A(M(Qcn, 1), z, 479, 0, [Vcn, xS])));
+ }
+ function QAn() {
+ QAn = N, VQn = Fe((x8(), A(M(ron, 1), z, 376, 0, [uK, iy])));
+ }
+ function JAn() {
+ JAn = N, zQn = Fe((z8(), A(M(non, 1), z, 421, 0, [iK, rK])));
+ }
+ function YAn() {
+ YAn = N, oXn = Fe((OC(), A(M(Rcn, 1), z, 422, 0, [Bcn, s_])));
+ }
+ function ZAn() {
+ ZAn = N, EXn = Fe((kC(), A(M(fun, 1), z, 420, 0, [j_, oun])));
+ }
+ function nSn() {
+ nSn = N, _Jn = Fe((No(), A(M(RJn, 1), z, 520, 0, [iw, Nl])));
+ }
+ function eSn() {
+ eSn = N, gJn = Fe((z5(), A(M(wJn, 1), z, 523, 0, [Hm, Km])));
+ }
+ function tSn() {
+ tSn = N, EJn = Fe((Ff(), A(M(jJn, 1), z, 516, 0, [A0, I1])));
+ }
+ function iSn() {
+ iSn = N, TJn = Fe((ef(), A(M(CJn, 1), z, 515, 0, [Ya, kf])));
+ }
+ function rSn() {
+ rSn = N, WJn = Fe((Od(), A(M(UJn, 1), z, 455, 0, [Bl, Lg])));
+ }
+ function cSn() {
+ cSn = N, lYn = Fe((gC(), A(M(Son, 1), z, 425, 0, [yK, Aon])));
+ }
+ function uSn() {
+ uSn = N, gYn = Fe((iT(), A(M(Pon, 1), z, 495, 0, [EP, vv])));
+ }
+ function sSn() {
+ sSn = N, hYn = Fe((aC(), A(M(Mon, 1), z, 480, 0, [kK, Ton])));
+ }
+ function oSn() {
+ oSn = N, mYn = Fe(($C(), A(M(Oon, 1), z, 426, 0, [Ion, TK])));
+ }
+ function fSn() {
+ fSn = N, MZn = Fe((c7(), A(M(Ffn, 1), z, 429, 0, [DP, $fn])));
+ }
+ function hSn() {
+ hSn = N, oZn = Fe((L8(), A(M(afn, 1), z, 430, 0, [FK, IP])));
+ }
+ function z5() {
+ z5 = N, Hm = new ZG("UPPER", 0), Km = new ZG("LOWER", 1);
+ }
+ function Yae(n, e) {
+ var t;
+ t = new r2(), aa(t, "x", e.a), aa(t, "y", e.b), j2(n, t);
+ }
+ function Zae(n, e) {
+ var t;
+ t = new r2(), aa(t, "x", e.a), aa(t, "y", e.b), j2(n, t);
+ }
+ function nde(n, e) {
+ var t, i;
+ i = !1;
+ do
+ t = YOn(n, e), i = i | t;
+ while (t);
+ return i;
+ }
+ function jX(n, e) {
+ var t, i;
+ for (t = e, i = 0; t > 0; )
+ i += n.a[t], t -= t & -t;
+ return i;
+ }
+ function lSn(n, e) {
+ var t;
+ for (t = e; t; )
+ W0(n, -t.i, -t.j), t = At(t);
+ return n;
+ }
+ function $i(n, e) {
+ var t, i;
+ for (_n(e), i = n.Kc(); i.Ob(); )
+ t = i.Pb(), e.td(t);
+ }
+ function aSn(n, e) {
+ var t;
+ return t = e.cd(), new wd(t, n.e.pc(t, u(e.dd(), 14)));
+ }
+ function Ht(n, e, t, i) {
+ var r;
+ r = new aI(), r.c = e, r.b = t, r.a = i, i.b = t.a = r, ++n.b;
+ }
+ function js(n, e, t) {
+ var i;
+ return i = (Ln(e, n.c.length), n.c[e]), n.c[e] = t, i;
+ }
+ function ede(n, e, t) {
+ return u(e == null ? Rc(n.f, null, t) : zd(n.g, e, t), 281);
+ }
+ function k$(n) {
+ return n.c && n.d ? cX(n.c) + "->" + cX(n.d) : "e_" + kd(n);
+ }
+ function E3(n, e) {
+ return (Ma(n), Wv(new $n(n, new UX(e, n.a)))).sd(X4);
+ }
+ function tde() {
+ return Vi(), A(M(Hrn, 1), z, 356, 0, [Vf, Dl, Kc, Tc, Or]);
+ }
+ function ide() {
+ return J(), A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn]);
+ }
+ function rde(n) {
+ return gj(), function() {
+ return wae(n, this, arguments);
+ };
+ }
+ function cde() {
+ return Date.now ? Date.now() : new Date().getTime();
+ }
+ function Wi(n) {
+ return !n.c || !n.d ? !1 : !!n.c.i && n.c.i == n.d.i;
+ }
+ function dSn(n) {
+ if (!n.c.Sb())
+ throw T(new rc());
+ return n.a = !0, n.c.Ub();
+ }
+ function $8(n) {
+ n.i = 0, z9(n.b, null), z9(n.c, null), n.a = null, n.e = null, ++n.g;
+ }
+ function EX(n) {
+ are.call(this, n == null ? tu : Nr(n), I(n, 78) ? u(n, 78) : null);
+ }
+ function bSn(n) {
+ R_n(), Bmn(this), this.a = new Ct(), QV(this, n), Ke(this.a, n);
+ }
+ function wSn() {
+ RO(this), this.b = new fn(xt, xt), this.a = new fn(Qt, Qt);
+ }
+ function gSn(n, e) {
+ this.c = 0, this.b = e, Gkn.call(this, n, 17493), this.a = this.c;
+ }
+ function y$(n) {
+ CC(), !pf && (this.c = n, this.e = !0, this.a = new X());
+ }
+ function CC() {
+ CC = N, pf = !0, xzn = !1, Lzn = !1, Bzn = !1, Nzn = !1;
+ }
+ function CX(n, e) {
+ return I(e, 149) ? An(n.c, u(e, 149).c) : !1;
+ }
+ function TX(n, e) {
+ var t;
+ return t = 0, n && (t += n.f.a / 2), e && (t += e.f.a / 2), t;
+ }
+ function j$(n, e) {
+ var t;
+ return t = u(Ld(n.d, e), 23), t || u(Ld(n.e, e), 23);
+ }
+ function pSn(n) {
+ this.b = n, ie.call(this, n), this.a = u(Rn(this.b.a, 4), 126);
+ }
+ function vSn(n) {
+ this.b = n, w2.call(this, n), this.a = u(Rn(this.b.a, 4), 126);
+ }
+ function Iu(n) {
+ return n.t || (n.t = new Smn(n), s6(new K9n(n), 0, n.t)), n.t;
+ }
+ function ude() {
+ return sr(), A(M(e9, 1), z, 103, 0, [mh, Ao, Ys, Qh, Jh]);
+ }
+ function sde() {
+ return qw(), A(M(c9, 1), z, 249, 0, [Kl, Cy, Hhn, r9, qhn]);
+ }
+ function ode() {
+ return Ho(), A(M($1, 1), z, 175, 0, [Xn, vi, Yf, Za, D1]);
+ }
+ function fde() {
+ return P7(), A(M(gfn, 1), z, 316, 0, [dfn, xK, wfn, LK, bfn]);
+ }
+ function hde() {
+ return b6(), A(M(Usn, 1), z, 315, 0, [zsn, nK, eK, Lm, Nm]);
+ }
+ function lde() {
+ return Ia(), A(M(zcn, 1), z, 335, 0, [f_, Gcn, h_, Em, jm]);
+ }
+ function ade() {
+ return w4(), A(M(tZn, 1), z, 355, 0, [Ng, Ep, Qm, Vm, Jm]);
+ }
+ function dde() {
+ return Vw(), A(M(ZWn, 1), z, 363, 0, [SS, IS, OS, PS, AS]);
+ }
+ function bde() {
+ return As(), A(M(jun, 1), z, 163, 0, [Qk, Sm, Fl, Pm, Wb]);
+ }
+ function C3() {
+ C3 = N;
+ var n, e;
+ cI = (Vp(), e = new fj(), e), uI = (n = new BI(), n);
+ }
+ function mSn(n) {
+ var e;
+ return n.c || (e = n.r, I(e, 88) && (n.c = u(e, 26))), n.c;
+ }
+ function wde(n) {
+ return n.e = 3, n.d = n.Yb(), n.e != 2 ? (n.e = 0, !0) : !1;
+ }
+ function E$(n) {
+ var e, t, i;
+ return e = n & Lu, t = n >> 22 & Lu, i = n < 0 ? Uh : 0, Nc(e, t, i);
+ }
+ function gde(n) {
+ var e, t, i, r;
+ for (t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], N5(e);
+ }
+ function pde(n, e) {
+ var t, i;
+ t = u(dge(n.c, e), 14), t && (i = t.gc(), t.$b(), n.d -= i);
+ }
+ function kSn(n, e) {
+ var t, i;
+ return t = e.cd(), i = VV(n, t), !!i && vc(i.e, e.dd());
+ }
+ function P2(n, e) {
+ return e == 0 || n.e == 0 ? n : e > 0 ? p$n(n, e) : RNn(n, -e);
+ }
+ function MX(n, e) {
+ return e == 0 || n.e == 0 ? n : e > 0 ? RNn(n, e) : p$n(n, -e);
+ }
+ function ve(n) {
+ if (Se(n))
+ return n.c = n.a, n.a.Pb();
+ throw T(new rc());
+ }
+ function ySn(n) {
+ var e, t;
+ return e = n.c.i, t = n.d.i, e.k == (Qn(), Vt) && t.k == Vt;
+ }
+ function C$(n) {
+ var e;
+ return e = new Id(), Pr(e, n), H(e, (nn(), Mr), null), e;
+ }
+ function T$(n, e, t) {
+ var i;
+ return i = n.Yg(e), i >= 0 ? n._g(i, t, !0) : Zd(n, e, t);
+ }
+ function AX(n, e, t, i) {
+ var r;
+ for (r = 0; r < CR; r++)
+ RE(n.a[e.g][r], t, i[e.g]);
+ }
+ function SX(n, e, t, i) {
+ var r;
+ for (r = 0; r < QA; r++)
+ BE(n.a[r][e.g], t, i[e.g]);
+ }
+ function PX(n, e, t, i, r) {
+ KMn.call(this, e, i, r), this.c = n, this.a = t;
+ }
+ function IX(n, e, t, i, r) {
+ HMn.call(this, e, i, r), this.c = n, this.a = t;
+ }
+ function OX(n, e, t, i, r) {
+ ESn.call(this, e, i, r), this.c = n, this.a = t;
+ }
+ function vo(n, e, t, i, r) {
+ ESn.call(this, e, i, r), this.c = n, this.b = t;
+ }
+ function jSn(n, e, t) {
+ uj.call(this, t), this.b = n, this.c = e, this.d = (LF(), vH);
+ }
+ function ESn(n, e, t) {
+ this.d = n, this.k = e ? 1 : 0, this.f = t ? 1 : 0, this.o = -1, this.p = 0;
+ }
+ function CSn(n, e, t) {
+ var i;
+ i = new Sz(n.a), Z5(i, n.a.a), Rc(i.f, e, t), n.a.a = i;
+ }
+ function F8(n, e) {
+ n.qi(n.i + 1), k5(n, n.i, n.oi(n.i, e)), n.bi(n.i++, e), n.ci();
+ }
+ function U5(n) {
+ var e, t;
+ ++n.j, e = n.g, t = n.i, n.g = null, n.i = 0, n.di(t, e), n.ci();
+ }
+ function cf(n) {
+ var e, t;
+ return pe(n), e = Nhe(n.length), t = new Ic(e), qV(t, n), t;
+ }
+ function I2(n) {
+ var e;
+ return e = (pe(n), n ? new lu(n) : o3(n.Kc())), Ax(e), mT(e);
+ }
+ function h1(n, e) {
+ var t;
+ return t = (Ln(e, n.c.length), n.c[e]), AG(n.c, e, 1), t;
+ }
+ function ct(n, e) {
+ var t;
+ return t = u(n.c.xc(e), 14), !t && (t = n.ic(e)), n.pc(e, t);
+ }
+ function DX(n, e) {
+ var t, i;
+ return t = (_n(n), n), i = (_n(e), e), t == i ? 0 : t < i ? -1 : 1;
+ }
+ function TSn(n) {
+ var e;
+ return e = n.e + n.f, isNaN(e) && jE(n.d) ? n.d : e;
+ }
+ function Fh(n, e) {
+ return n.a ? De(n.a, n.b) : n.a = new Ju(n.d), g5(n.a, e), n;
+ }
+ function $X(n, e) {
+ if (n < 0 || n > e)
+ throw T(new mr(fY(n, e, "index")));
+ return n;
+ }
+ function M$(n, e, t, i) {
+ var r;
+ return r = F(be, Le, 25, e, 15, 1), Pve(r, n, e, t, i), r;
+ }
+ function vde(n, e) {
+ var t;
+ t = n.q.getHours() + (e / 60 | 0), n.q.setMinutes(e), S6(n, t);
+ }
+ function mde(n, e) {
+ return j.Math.min(ll(e.a, n.d.d.c), ll(e.b, n.d.d.c));
+ }
+ function O2(n, e) {
+ return yi(e) ? e == null ? MY(n.f, null) : FOn(n.g, e) : MY(n.f, e);
+ }
+ function uf(n) {
+ this.c = n, this.a = new E(this.c.a), this.b = new E(this.c.b);
+ }
+ function TC() {
+ this.e = new X(), this.c = new X(), this.d = new X(), this.b = new X();
+ }
+ function MSn() {
+ this.g = new zq(), this.b = new zq(), this.a = new X(), this.k = new X();
+ }
+ function ASn(n, e, t) {
+ this.a = n, this.c = e, this.d = t, W(e.e, this), W(t.b, this);
+ }
+ function SSn(n, e) {
+ qkn.call(this, e.rd(), e.qd() & -6), _n(n), this.a = n, this.b = e;
+ }
+ function PSn(n, e) {
+ Gkn.call(this, e.rd(), e.qd() & -6), _n(n), this.a = n, this.b = e;
+ }
+ function FX(n, e) {
+ FO.call(this, e.rd(), e.qd() & -6), _n(n), this.a = n, this.b = e;
+ }
+ function MC(n, e, t) {
+ this.a = n, this.b = e, this.c = t, W(n.t, this), W(e.i, this);
+ }
+ function AC() {
+ this.b = new Ct(), this.a = new Ct(), this.b = new Ct(), this.a = new Ct();
+ }
+ function SC() {
+ SC = N, Ym = new kt("org.eclipse.elk.labels.labelManager");
+ }
+ function ISn() {
+ ISn = N, $cn = new ri("separateLayerConnections", (aT(), QR));
+ }
+ function No() {
+ No = N, iw = new tz("REGULAR", 0), Nl = new tz("CRITICAL", 1);
+ }
+ function x8() {
+ x8 = N, uK = new YG("STACKED", 0), iy = new YG("SEQUENCED", 1);
+ }
+ function L8() {
+ L8 = N, FK = new oz("FIXED", 0), IP = new oz("CENTER_NODE", 1);
+ }
+ function kde(n, e) {
+ var t;
+ return t = CEe(n, e), n.b = new tT(t.c.length), Lje(n, t);
+ }
+ function yde(n, e, t) {
+ var i;
+ return ++n.e, --n.f, i = u(n.d[e].$c(t), 133), i.dd();
+ }
+ function OSn(n) {
+ var e;
+ return n.a || (e = n.r, I(e, 148) && (n.a = u(e, 148))), n.a;
+ }
+ function xX(n) {
+ if (n.a) {
+ if (n.e)
+ return xX(n.e);
+ } else
+ return n;
+ return null;
+ }
+ function jde(n, e) {
+ return n.p < e.p ? 1 : n.p > e.p ? -1 : 0;
+ }
+ function PC(n, e) {
+ return _n(e), n.c < n.d ? (n.ze(e, n.c++), !0) : !1;
+ }
+ function DSn(n, e) {
+ return zu(n.a, e) ? (O2(n.a, e), !0) : !1;
+ }
+ function Ede(n) {
+ var e, t;
+ return e = n.cd(), t = u(n.dd(), 14), g8(t.Nc(), new svn(e));
+ }
+ function Cde(n) {
+ var e;
+ return e = u(IW(n.b, n.b.length), 9), new ms(n.a, e, n.c);
+ }
+ function Tde(n) {
+ var e;
+ return Ma(n), e = new PEn(n, n.a.e, n.a.d | 4), new sU(n, e);
+ }
+ function $Sn(n) {
+ var e;
+ for (ol(n), e = 0; n.a.sd(new jln()); )
+ e = Hi(e, 1);
+ return e;
+ }
+ function LX(n, e, t) {
+ var i, r;
+ for (i = 0, r = 0; r < e.length; r++)
+ i += n.$f(e[r], i, t);
+ }
+ function Mde(n, e) {
+ var t;
+ n.C && (t = u(br(n.b, e), 124).n, t.d = n.C.d, t.a = n.C.a);
+ }
+ function D2(n, e, t) {
+ return D8(e, n.e.Hd().gc()), D8(t, n.c.Hd().gc()), n.a[e][t];
+ }
+ function l1(n, e) {
+ yl(), this.e = n, this.d = 1, this.a = A(M(be, 1), Le, 25, 15, [e]);
+ }
+ function IC(n, e, t, i) {
+ this.f = n, this.e = e, this.d = t, this.b = i, this.c = i ? i.d : null;
+ }
+ function NX(n) {
+ var e, t, i, r;
+ r = n.d, e = n.a, t = n.b, i = n.c, n.d = t, n.a = i, n.b = r, n.c = e;
+ }
+ function Ade(n, e, t, i) {
+ cRn(n, e, t, v4(n, e, i, I(e, 99) && (u(e, 18).Bb & Ji) != 0));
+ }
+ function Sde(n, e) {
+ le(e, "Label management", 1), eE(k(n, (SC(), Ym))), ce(e);
+ }
+ function Ic(n) {
+ RO(this), TE(n >= 0, "Initial capacity must not be negative");
+ }
+ function FSn() {
+ FSn = N, Qzn = Fe((_o(), A(M(Kb, 1), z, 232, 0, [Zr, xc, nc])));
+ }
+ function xSn() {
+ xSn = N, Yzn = Fe((Cu(), A(M(Jzn, 1), z, 461, 0, [Xf, Il, Co])));
+ }
+ function LSn() {
+ LSn = N, nUn = Fe((Qc(), A(M(Zzn, 1), z, 462, 0, [Wo, Ol, To])));
+ }
+ function NSn() {
+ NSn = N, Rzn = Fe((hf(), A(M(Nu, 1), z, 132, 0, [Win, hs, _b])));
+ }
+ function BSn() {
+ BSn = N, wWn = Fe((W5(), A(M(Krn, 1), z, 379, 0, [NR, LR, BR])));
+ }
+ function RSn() {
+ RSn = N, IWn = Fe((Gd(), A(M(zrn, 1), z, 423, 0, [yg, Grn, qR])));
+ }
+ function _Sn() {
+ _Sn = N, fXn = Fe((F2(), A(M(Kcn, 1), z, 314, 0, [ap, qk, _cn])));
+ }
+ function KSn() {
+ KSn = N, hXn = Fe((VC(), A(M(qcn, 1), z, 337, 0, [Hcn, DS, o_])));
+ }
+ function HSn() {
+ HSn = N, bXn = Fe((ja(), A(M(dXn, 1), z, 450, 0, [l_, rv, Tg])));
+ }
+ function qSn() {
+ qSn = N, cXn = Fe((Hd(), A(M(YR, 1), z, 361, 0, [p0, $l, g0])));
+ }
+ function GSn() {
+ GSn = N, jXn = Fe((Lh(), A(M(yXn, 1), z, 303, 0, [zk, Ag, dp])));
+ }
+ function zSn() {
+ zSn = N, kXn = Fe((H3(), A(M(y_, 1), z, 292, 0, [m_, k_, Gk])));
+ }
+ function USn() {
+ USn = N, _Qn = Fe((i6(), A(M(Gsn, 1), z, 378, 0, [J_, qsn, oP])));
+ }
+ function WSn() {
+ WSn = N, XQn = Fe((oT(), A(M(ion, 1), z, 375, 0, [eon, cK, ton])));
+ }
+ function XSn() {
+ XSn = N, GQn = Fe((Bh(), A(M(Zsn, 1), z, 339, 0, [Ll, Ysn, tK])));
+ }
+ function VSn() {
+ VSn = N, WQn = Fe((ur(), A(M(UQn, 1), z, 452, 0, [Bm, Au, Lc])));
+ }
+ function QSn() {
+ QSn = N, YQn = Fe((dT(), A(M(hon, 1), z, 377, 0, [fK, gv, tw])));
+ }
+ function JSn() {
+ JSn = N, QQn = Fe((V3(), A(M(uon, 1), z, 336, 0, [sK, con, Rm])));
+ }
+ function YSn() {
+ YSn = N, JQn = Fe((uT(), A(M(fon, 1), z, 338, 0, [oon, oK, son])));
+ }
+ function ZSn() {
+ ZSn = N, lJn = Fe((Kd(), A(M(hJn, 1), z, 454, 0, [ry, _m, aP])));
+ }
+ function nPn() {
+ nPn = N, vYn = Fe((CT(), A(M(pYn, 1), z, 442, 0, [CK, jK, EK])));
+ }
+ function ePn() {
+ ePn = N, kYn = Fe((f7(), A(M(Fon, 1), z, 380, 0, [CP, Don, $on])));
+ }
+ function tPn() {
+ tPn = N, NYn = Fe((ET(), A(M(Yon, 1), z, 381, 0, [Jon, IK, Qon])));
+ }
+ function iPn() {
+ iPn = N, LYn = Fe((sT(), A(M(Xon, 1), z, 293, 0, [PK, Won, Uon])));
+ }
+ function rPn() {
+ rPn = N, rZn = Fe((w7(), A(M(OK, 1), z, 437, 0, [AP, SP, PP])));
+ }
+ function cPn() {
+ cPn = N, sne = Fe((Rh(), A(M(Khn, 1), z, 334, 0, [HP, F1, i9])));
+ }
+ function uPn() {
+ uPn = N, ine = Fe((sf(), A(M(Phn, 1), z, 272, 0, [yv, uw, jv])));
+ }
+ function Pde() {
+ return Ai(), A(M(Ghn, 1), z, 98, 0, [Hl, jf, Cv, id, jh, Sc]);
+ }
+ function ga(n, e) {
+ return !n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), NF(n.o, e);
+ }
+ function Ide(n) {
+ return !n.g && (n.g = new Qy()), !n.g.d && (n.g.d = new Tmn(n)), n.g.d;
+ }
+ function Ode(n) {
+ return !n.g && (n.g = new Qy()), !n.g.a && (n.g.a = new Mmn(n)), n.g.a;
+ }
+ function Dde(n) {
+ return !n.g && (n.g = new Qy()), !n.g.b && (n.g.b = new Cmn(n)), n.g.b;
+ }
+ function N8(n) {
+ return !n.g && (n.g = new Qy()), !n.g.c && (n.g.c = new Amn(n)), n.g.c;
+ }
+ function $de(n, e, t) {
+ var i, r;
+ for (r = new K3(e, n), i = 0; i < t; ++i)
+ RT(r);
+ return r;
+ }
+ function A$(n, e, t) {
+ var i, r;
+ if (t != null)
+ for (i = 0; i < e; ++i)
+ r = t[i], n.fi(i, r);
+ }
+ function S$(n, e, t, i) {
+ var r;
+ return r = F(be, Le, 25, e + 1, 15, 1), wye(r, n, e, t, i), r;
+ }
+ function F(n, e, t, i, r, c) {
+ var o;
+ return o = vFn(r, i), r != 10 && A(M(n, c), e, t, r, o), o;
+ }
+ function Fde(n, e, t, i) {
+ return t && (i = t.gh(e, yt(t.Tg(), n.c.Lj()), null, i)), i;
+ }
+ function xde(n, e, t, i) {
+ return t && (i = t.ih(e, yt(t.Tg(), n.c.Lj()), null, i)), i;
+ }
+ function BX(n, e, t) {
+ u(n.b, 65), u(n.b, 65), u(n.b, 65), Jc(n.a, new wEn(t, e, n));
+ }
+ function RX(n, e, t) {
+ if (n < 0 || e > t || e < n)
+ throw T(new wG(xM + n + rnn + e + tnn + t));
+ }
+ function T3(n) {
+ if (!n)
+ throw T(new $r("Unable to add element to queue"));
+ }
+ function P$(n) {
+ n ? (this.c = n, this.b = null) : (this.c = null, this.b = new X());
+ }
+ function I$(n, e) {
+ Nj.call(this, n, e), this.a = F(GTe, OM, 436, 2, 0, 1), this.b = !0;
+ }
+ function _X(n) {
+ VOn.call(this, n, 0), cjn(this), this.d.b = this.d, this.d.a = this.d;
+ }
+ function O$(n) {
+ var e;
+ return e = n.b, e.b == 0 ? null : u(qo(e, 0), 188).b;
+ }
+ function sPn(n, e) {
+ var t;
+ return t = new dI(), t.c = !0, t.d = e.dd(), e_n(n, e.cd(), t);
+ }
+ function Lde(n, e) {
+ var t;
+ t = n.q.getHours() + (e / 3600 | 0), n.q.setSeconds(e), S6(n, t);
+ }
+ function KX(n, e, t) {
+ var i;
+ i = n.b[t.c.p][t.p], i.b += e.b, i.c += e.c, i.a += e.a, ++i.a;
+ }
+ function ll(n, e) {
+ var t, i;
+ return t = n.a - e.a, i = n.b - e.b, j.Math.sqrt(t * t + i * i);
+ }
+ function OC() {
+ OC = N, Bcn = new WG("QUADRATIC", 0), s_ = new WG("SCANLINE", 1);
+ }
+ function oPn() {
+ oPn = N, eJn = ju(Ze(new li(), (Vi(), Vf), (rr(), WR)), Or, Kk);
+ }
+ function Nde() {
+ return mb(), A(M(UK, 1), z, 291, 0, [zK, gy, wy, GK, dy, by]);
+ }
+ function Bde() {
+ return oh(), A(M(Rfn, 1), z, 248, 0, [HK, ly, ay, xP, $P, FP]);
+ }
+ function Rde() {
+ return q2(), A(M(iv, 1), z, 227, 0, [tv, ym, ev, Gb, Cg, Eg]);
+ }
+ function _de() {
+ return f4(), A(M(sun, 1), z, 275, 0, [Cm, iun, uun, cun, run, tun]);
+ }
+ function Kde() {
+ return A7(), A(M(eun, 1), z, 274, 0, [LS, Ycn, nun, Jcn, Zcn, p_]);
+ }
+ function Hde() {
+ return JT(), A(M(Hsn, 1), z, 313, 0, [Q_, _sn, V_, Rsn, Ksn, sP]);
+ }
+ function qde() {
+ return eM(), A(M(Xcn, 1), z, 276, 0, [d_, a_, w_, b_, g_, FS]);
+ }
+ function Gde() {
+ return k6(), A(M(VJn, 1), z, 327, 0, [pP, aK, bK, dK, wK, lK]);
+ }
+ function zde() {
+ return Tu(), A(M(qP, 1), z, 273, 0, [ql, Zh, Ty, s9, u9, Pp]);
+ }
+ function Ude() {
+ return ZT(), A(M(xhn, 1), z, 312, 0, [uH, Dhn, Fhn, Ihn, $hn, Ohn]);
+ }
+ function Wde() {
+ return Qn(), A(M(zR, 1), z, 267, 0, [ii, pi, Vt, Mc, Qu, vf]);
+ }
+ function fPn(n) {
+ U0(!!n.c), b$(n.e, n), n.c.Qb(), n.c = null, n.b = OV(n), rU(n.e, n);
+ }
+ function hPn(n) {
+ return b$(n.c.a.e, n), ne(n.b != n.c.a.d), n.a = n.b, n.b = n.b.a, n.a;
+ }
+ function HX(n) {
+ var e;
+ return !n.a && n.b != -1 && (e = n.c.Tg(), n.a = On(e, n.b)), n.a;
+ }
+ function me(n, e) {
+ return n.hi() && n.Hc(e) ? !1 : (n.Yh(e), !0);
+ }
+ function Bo(n, e) {
+ return T8(e, "Horizontal alignment cannot be null"), n.b = e, n;
+ }
+ function lPn(n, e, t) {
+ Je();
+ var i;
+ return i = jl(n, e), t && i && jhe(n) && (i = null), i;
+ }
+ function a1(n, e, t) {
+ var i, r;
+ for (r = n.Kc(); r.Ob(); )
+ i = u(r.Pb(), 37), M6(i, e, t);
+ }
+ function qX(n, e) {
+ var t, i;
+ for (i = e.Kc(); i.Ob(); )
+ t = u(i.Pb(), 37), $Bn(n, t, 0, 0);
+ }
+ function GX(n, e, t) {
+ var i;
+ n.d[e.g] = t, i = n.g.c, i[e.g] = j.Math.max(i[e.g], t + 1);
+ }
+ function B8(n, e) {
+ var t, i, r;
+ return r = n.r, i = n.d, t = O6(n, e, !0), t.b != r || t.a != i;
+ }
+ function aPn(n, e) {
+ return P7n(n.e, e) || Sa(n.e, e, new q$n(e)), u(Ld(n.e, e), 113);
+ }
+ function pa(n, e, t, i) {
+ return _n(n), _n(e), _n(t), _n(i), new CW(n, e, new lln());
+ }
+ function Wu(n, e, t, i) {
+ this.rj(), this.a = e, this.b = n, this.c = new yW(this, e, t, i);
+ }
+ function D$(n, e, t, i, r, c) {
+ aX.call(this, e, i, r, c), this.c = n, this.b = t;
+ }
+ function R8(n, e, t, i, r, c) {
+ aX.call(this, e, i, r, c), this.c = n, this.a = t;
+ }
+ function Xde(n, e, t) {
+ var i, r, c;
+ i = Oh(n, t), r = null, i && (r = tY(i)), c = r, _$n(e, t, c);
+ }
+ function Vde(n, e, t) {
+ var i, r, c;
+ i = Oh(n, t), r = null, i && (r = tY(i)), c = r, _$n(e, t, c);
+ }
+ function _8(n, e, t) {
+ var i, r;
+ return r = (i = d4(n.b, e), i), r ? jM(G8(n, r), t) : null;
+ }
+ function M3(n, e) {
+ var t;
+ return t = n.Yg(e), t >= 0 ? n._g(t, !0, !0) : Zd(n, e, !0);
+ }
+ function Qde(n, e) {
+ return ni(K(Y(k(n, (G(), y0)))), K(Y(k(e, y0))));
+ }
+ function dPn() {
+ dPn = N, dYn = Vd(Vd(Dj(new li(), (r4(), qm)), (k6(), pP)), aK);
+ }
+ function Jde(n, e, t) {
+ var i;
+ return i = iDn(n, e, t), n.b = new tT(i.c.length), JY(n, i);
+ }
+ function Yde(n) {
+ if (n.b <= 0)
+ throw T(new rc());
+ return --n.b, n.a -= n.c.c, Q(n.a);
+ }
+ function Zde(n) {
+ var e;
+ if (!n.a)
+ throw T(new pTn());
+ return e = n.a, n.a = At(n.a), e;
+ }
+ function n0e(n) {
+ for (; !n.a; )
+ if (!eEn(n.c, new Vvn(n)))
+ return !1;
+ return !0;
+ }
+ function $2(n) {
+ var e;
+ return pe(n), I(n, 198) ? (e = u(n, 198), e) : new bvn(n);
+ }
+ function e0e(n) {
+ DC(), u(n.We((Xe(), cw)), 174).Fc((Tu(), Ty)), n.Ye(eH, null);
+ }
+ function DC() {
+ DC = N, PZn = new e2n(), OZn = new t2n(), IZn = Rwe((Xe(), eH), PZn, Rl, OZn);
+ }
+ function $C() {
+ $C = N, Ion = new sz("LEAF_NUMBER", 0), TK = new sz("NODE_SIZE", 1);
+ }
+ function t0e(n, e, t) {
+ n.a = e, n.c = t, n.b.a.$b(), Rs(n.d), n.e.a.c = F(Zn, rn, 1, 0, 5, 1);
+ }
+ function $$(n) {
+ n.a = F(be, Le, 25, n.b + 1, 15, 1), n.c = F(be, Le, 25, n.b, 15, 1), n.d = 0;
+ }
+ function i0e(n, e) {
+ n.a.ue(e.d, n.b) > 0 && (W(n.c, new QU(e.c, e.d, n.d)), n.b = e.d);
+ }
+ function zX(n, e) {
+ if (n.g == null || e >= n.i)
+ throw T(new xO(e, n.i));
+ return n.g[e];
+ }
+ function bPn(n, e, t) {
+ if (U3(n, t), t != null && !n.wj(t))
+ throw T(new xI());
+ return t;
+ }
+ function wPn(n) {
+ var e;
+ if (n.Ek())
+ for (e = n.i - 1; e >= 0; --e)
+ D(n, e);
+ return gX(n);
+ }
+ function r0e(n) {
+ var e, t;
+ if (!n.b)
+ return null;
+ for (t = n.b; e = t.a[0]; )
+ t = e;
+ return t;
+ }
+ function c0e(n, e) {
+ var t, i;
+ return NAn(e), t = (i = n.slice(0, e), WX(i, n)), t.length = e, t;
+ }
+ function A3(n, e, t, i) {
+ var r;
+ i = (Ow(), i || Lin), r = n.slice(e, t), hY(r, n, e, t, -e, i);
+ }
+ function Es(n, e, t, i, r) {
+ return e < 0 ? Zd(n, t, i) : u(t, 66).Nj().Pj(n, n.yh(), e, i, r);
+ }
+ function u0e(n) {
+ return I(n, 172) ? "" + u(n, 172).a : n == null ? null : Nr(n);
+ }
+ function s0e(n) {
+ return I(n, 172) ? "" + u(n, 172).a : n == null ? null : Nr(n);
+ }
+ function gPn(n, e) {
+ if (e.a)
+ throw T(new _r(gKn));
+ ci(n.a, e), e.a = n, !n.j && (n.j = e);
+ }
+ function UX(n, e) {
+ FO.call(this, e.rd(), e.qd() & -16449), _n(n), this.a = n, this.c = e;
+ }
+ function pPn(n, e) {
+ var t, i;
+ return i = e / n.c.Hd().gc() | 0, t = e % n.c.Hd().gc(), D2(n, i, t);
+ }
+ function Cu() {
+ Cu = N, Xf = new oO(Y2, 0), Il = new oO(P4, 1), Co = new oO(Z2, 2);
+ }
+ function FC() {
+ FC = N, vR = new Lj("All", 0), qin = new ayn(), Gin = new Cyn(), zin = new dyn();
+ }
+ function vPn() {
+ vPn = N, $zn = Fe((FC(), A(M(WA, 1), z, 297, 0, [vR, qin, Gin, zin])));
+ }
+ function mPn() {
+ mPn = N, CWn = Fe((q3(), A(M(EWn, 1), z, 405, 0, [w0, qb, Hb, kg])));
+ }
+ function kPn() {
+ kPn = N, TUn = Fe((qd(), A(M(CUn, 1), z, 406, 0, [Ok, Ik, MR, AR])));
+ }
+ function yPn() {
+ yPn = N, AUn = Fe((K2(), A(M(MUn, 1), z, 323, 0, [$k, Dk, Fk, xk])));
+ }
+ function jPn() {
+ jPn = N, IUn = Fe((d6(), A(M(PUn, 1), z, 394, 0, [Lk, YA, ZA, Nk])));
+ }
+ function EPn() {
+ EPn = N, XJn = Fe((r4(), A(M(won, 1), z, 393, 0, [gP, qm, uy, Gm])));
+ }
+ function CPn() {
+ CPn = N, qWn = Fe((aT(), A(M(HWn, 1), z, 360, 0, [QR, TS, MS, Hk])));
+ }
+ function TPn() {
+ TPn = N, xYn = Fe((qT(), A(M(zon, 1), z, 340, 0, [SK, qon, Gon, Hon])));
+ }
+ function MPn() {
+ MPn = N, YWn = Fe((ff(), A(M(JWn, 1), z, 411, 0, [lp, Z4, nv, JR])));
+ }
+ function APn() {
+ APn = N, KQn = Fe((gb(), A(M(Z_, 1), z, 197, 0, [fP, Y_, xg, Fg])));
+ }
+ function SPn() {
+ SPn = N, Cne = Fe((Xu(), A(M(Ene, 1), z, 396, 0, [ws, Yhn, Jhn, Zhn])));
+ }
+ function PPn() {
+ PPn = N, fne = Fe((cs(), A(M(one, 1), z, 285, 0, [Ey, kh, _l, jy])));
+ }
+ function IPn() {
+ IPn = N, rne = Fe((Kh(), A(M(cH, 1), z, 218, 0, [rH, yy, Ev, Sp])));
+ }
+ function OPn() {
+ OPn = N, yne = Fe((AT(), A(M(Qhn, 1), z, 311, 0, [oH, Whn, Vhn, Xhn])));
+ }
+ function DPn() {
+ DPn = N, mne = Fe((Vu(), A(M(o9, 1), z, 374, 0, [Ay, rd, My, sw])));
+ }
+ function $Pn() {
+ $Pn = N, mM(), F1n = xt, Mee = Qt, x1n = new S9(xt), Aee = new S9(Qt);
+ }
+ function K8() {
+ K8 = N, Vcn = new VG(Wh, 0), xS = new VG("IMPROVE_STRAIGHTNESS", 1);
+ }
+ function o0e(n, e) {
+ return f3(), W(n, new Pi(e, Q(e.e.c.length + e.g.c.length)));
+ }
+ function f0e(n, e) {
+ return f3(), W(n, new Pi(e, Q(e.e.c.length + e.g.c.length)));
+ }
+ function WX(n, e) {
+ return U8(e) != 10 && A(Du(e), e.hm, e.__elementTypeId$, U8(e), n), n;
+ }
+ function Vc(n, e) {
+ var t;
+ return t = xr(n, e, 0), t == -1 ? !1 : (h1(n, t), !0);
+ }
+ function FPn(n, e) {
+ var t;
+ return t = u(O2(n.e, e), 387), t ? (ZU(t), t.e) : null;
+ }
+ function S3(n) {
+ var e;
+ return Fr(n) && (e = 0 - n, !isNaN(e)) ? e : dl(G3(n));
+ }
+ function xr(n, e, t) {
+ for (; t < n.c.length; ++t)
+ if (vc(e, n.c[t]))
+ return t;
+ return -1;
+ }
+ function xPn(n, e, t) {
+ var i;
+ return ol(n), i = new bI(), i.a = e, n.a.Nb(new O7n(i, t)), i.a;
+ }
+ function h0e(n) {
+ var e;
+ return ol(n), e = F(Ci, pr, 25, 0, 15, 1), vw(n.a, new Uvn(e)), e;
+ }
+ function F$(n) {
+ var e, t;
+ return t = u(un(n.j, 0), 11), e = u(k(t, (G(), rt)), 11), e;
+ }
+ function XX(n) {
+ var e;
+ if (!V$(n))
+ throw T(new rc());
+ return n.e = 1, e = n.d, n.d = null, e;
+ }
+ function x$(n, e) {
+ var t;
+ this.f = n, this.b = e, t = u(te(n.b, e), 283), this.c = t ? t.b : null;
+ }
+ function LPn() {
+ wo(), this.b = new we(), this.f = new we(), this.g = new we(), this.e = new we();
+ }
+ function NPn(n, e) {
+ this.a = F(vh, E1, 10, n.a.c.length, 0, 1), lf(n.a, this.a), this.b = e;
+ }
+ function H8(n) {
+ var e;
+ for (e = n.p + 1; e < n.c.a.c.length; ++e)
+ --u(un(n.c.a, e), 10).p;
+ }
+ function L$(n) {
+ var e;
+ e = n.Ai(), e != null && n.d != -1 && u(e, 92).Ng(n), n.i && n.i.Fi();
+ }
+ function xC(n) {
+ oE(this), this.g = n ? YD(n, n.$d()) : null, this.f = n, eC(this), this._d();
+ }
+ function xh(n, e, t, i, r, c, o) {
+ z$.call(this, e, i, r, c, o), this.c = n, this.b = t;
+ }
+ function ub(n, e, t, i, r) {
+ return _n(n), _n(e), _n(t), _n(i), _n(r), new CW(n, e, i);
+ }
+ function q8(n, e) {
+ if (e < 0)
+ throw T(new mr(KHn + e));
+ return AAn(n, e + 1), un(n.j, e);
+ }
+ function BPn(n, e, t, i) {
+ if (!n)
+ throw T(new Hn(T6(e, A(M(Zn, 1), rn, 1, 5, [t, i]))));
+ }
+ function LC(n, e) {
+ return vc(e, un(n.f, 0)) || vc(e, un(n.f, 1)) || vc(e, un(n.f, 2));
+ }
+ function l0e(n, e) {
+ p2(u(u(n.f, 33).We((Xe(), n9)), 98)) && l2e(HD(u(n.f, 33)), e);
+ }
+ function G8(n, e) {
+ var t, i;
+ return t = u(e, 675), i = t.Oh(), !i && t.Rh(i = new Nkn(n, e)), i;
+ }
+ function Er(n, e) {
+ var t, i;
+ return t = u(e, 677), i = t.pk(), !i && t.tk(i = new eAn(n, e)), i;
+ }
+ function Ou(n) {
+ return n.b || (n.b = new pCn(n, ar, n), !n.a && (n.a = new l8(n, n))), n.b;
+ }
+ function W5() {
+ W5 = N, NR = new hO("XY", 0), LR = new hO("X", 1), BR = new hO("Y", 2);
+ }
+ function Qc() {
+ Qc = N, Wo = new fO("TOP", 0), Ol = new fO(P4, 1), To = new fO(dnn, 2);
+ }
+ function Lh() {
+ Lh = N, zk = new pO(Wh, 0), Ag = new pO("TOP", 1), dp = new pO(dnn, 2);
+ }
+ function z8() {
+ z8 = N, iK = new JG("INPUT_ORDER", 0), rK = new JG("PORT_DEGREE", 1);
+ }
+ function P3() {
+ P3 = N, win = Nc(Lu, Lu, 524287), kzn = Nc(0, 0, tk), gin = E$(1), E$(2), pin = E$(0);
+ }
+ function VX(n, e, t) {
+ n.a.c = F(Zn, rn, 1, 0, 5, 1), eEe(n, e, t), n.a.c.length == 0 || $ke(n, e);
+ }
+ function NC(n) {
+ var e, t;
+ return t = n.length, e = F(xs, Bf, 25, t, 15, 1), _Cn(n, 0, t, e, 0), e;
+ }
+ function QX(n) {
+ var e;
+ return n.dh() || (e = ee(n.Tg()) - n.Ah(), n.ph().bk(e)), n.Pg();
+ }
+ function JX(n) {
+ var e;
+ return e = va(Rn(n, 32)), e == null && (Bc(n), e = va(Rn(n, 32))), e;
+ }
+ function N$(n, e) {
+ var t;
+ return t = yt(n.d, e), t >= 0 ? BT(n, t, !0, !0) : Zd(n, e, !0);
+ }
+ function YX(n, e) {
+ Qv();
+ var t, i;
+ return t = S2(n), i = S2(e), !!t && !!i && !Q$n(t.k, i.k);
+ }
+ function a0e(n, e) {
+ Yc(n, e == null || jE((_n(e), e)) || isNaN((_n(e), e)) ? 0 : (_n(e), e));
+ }
+ function d0e(n, e) {
+ Zc(n, e == null || jE((_n(e), e)) || isNaN((_n(e), e)) ? 0 : (_n(e), e));
+ }
+ function b0e(n, e) {
+ _d(n, e == null || jE((_n(e), e)) || isNaN((_n(e), e)) ? 0 : (_n(e), e));
+ }
+ function w0e(n, e) {
+ Rd(n, e == null || jE((_n(e), e)) || isNaN((_n(e), e)) ? 0 : (_n(e), e));
+ }
+ function RPn(n) {
+ (this.q ? this.q : (Pn(), Pn(), ph)).Ac(n.q ? n.q : (Pn(), Pn(), ph));
+ }
+ function g0e(n, e) {
+ return I(e, 99) && u(e, 18).Bb & Ji ? new LO(e, n) : new K3(e, n);
+ }
+ function p0e(n, e) {
+ return I(e, 99) && u(e, 18).Bb & Ji ? new LO(e, n) : new K3(e, n);
+ }
+ function _Pn(n, e) {
+ vrn = new Wy(), SUn = e, gm = n, u(gm.b, 65), BX(gm, vrn, null), $Rn(gm);
+ }
+ function B$(n, e, t) {
+ var i;
+ return i = n.g[e], k5(n, e, n.oi(e, t)), n.gi(e, t, i), n.ci(), i;
+ }
+ function BC(n, e) {
+ var t;
+ return t = n.Xc(e), t >= 0 ? (n.$c(t), !0) : !1;
+ }
+ function R$(n) {
+ var e;
+ return n.d != n.r && (e = Hs(n), n.e = !!e && e.Cj() == yGn, n.d = e), n.e;
+ }
+ function _$(n, e) {
+ var t;
+ for (pe(n), pe(e), t = !1; e.Ob(); )
+ t = t | n.Fc(e.Pb());
+ return t;
+ }
+ function Ld(n, e) {
+ var t;
+ return t = u(te(n.e, e), 387), t ? (Dyn(n, t), t.e) : null;
+ }
+ function KPn(n) {
+ var e, t;
+ return e = n / 60 | 0, t = n % 60, t == 0 ? "" + e : "" + e + ":" + ("" + t);
+ }
+ function qr(n, e) {
+ var t, i;
+ return Ma(n), i = new FX(e, n.a), t = new rEn(i), new $n(n, t);
+ }
+ function sb(n, e) {
+ var t = n.a[e], i = (cF(), dR)[typeof t];
+ return i ? i(t) : tQ(typeof t);
+ }
+ function v0e(n) {
+ switch (n.g) {
+ case 0:
+ return nt;
+ case 1:
+ return -1;
+ default:
+ return 0;
+ }
+ }
+ function m0e(n) {
+ return mJ(n, (P3(), pin)) < 0 ? -xce(G3(n)) : n.l + n.m * J2 + n.h * Fa;
+ }
+ function U8(n) {
+ return n.__elementTypeCategory$ == null ? 10 : n.__elementTypeCategory$;
+ }
+ function K$(n) {
+ var e;
+ return e = n.b.c.length == 0 ? null : un(n.b, 0), e != null && J$(n, 0), e;
+ }
+ function HPn(n, e) {
+ for (; e[0] < n.length && Pf(` \r
+`, eu(Di(n, e[0]))) >= 0; )
+ ++e[0];
+ }
+ function W8(n, e) {
+ this.e = e, this.a = xOn(n), this.a < 54 ? this.f = Fd(n) : this.c = m7(n);
+ }
+ function qPn(n, e, t, i) {
+ Je(), ud.call(this, 26), this.c = n, this.a = e, this.d = t, this.b = i;
+ }
+ function sh(n, e, t) {
+ var i, r;
+ for (i = 10, r = 0; r < t - 1; r++)
+ e < i && (n.a += "0"), i *= 10;
+ n.a += e;
+ }
+ function k0e(n, e) {
+ var t;
+ for (t = 0; n.e != n.i.gc(); )
+ bfe(e, oe(n), Q(t)), t != nt && ++t;
+ }
+ function ZX(n, e) {
+ var t;
+ for (++n.d, ++n.c[e], t = e + 1; t < n.a.length; )
+ ++n.a[t], t += t & -t;
+ }
+ function y0e(n, e) {
+ var t, i, r;
+ r = e.c.i, t = u(te(n.f, r), 57), i = t.d.c - t.e.c, EV(e.a, i, 0);
+ }
+ function X8(n) {
+ var e, t;
+ return e = n + 128, t = (XEn(), min)[e], !t && (t = min[e] = new $vn(n)), t;
+ }
+ function $e(n, e) {
+ var t;
+ return _n(e), t = n[":" + e], M0e(!!t, A(M(Zn, 1), rn, 1, 5, [e])), t;
+ }
+ function j0e(n) {
+ var e, t;
+ if (n.b) {
+ t = null;
+ do
+ e = n.b, n.b = null, t = _xn(e, t);
+ while (n.b);
+ n.b = t;
+ }
+ }
+ function E0e(n) {
+ var e, t;
+ if (n.a) {
+ t = null;
+ do
+ e = n.a, n.a = null, t = _xn(e, t);
+ while (n.a);
+ n.a = t;
+ }
+ }
+ function GPn(n) {
+ var e;
+ for (++n.a, e = n.c.a.length; n.a < e; ++n.a)
+ if (n.c.b[n.a])
+ return;
+ }
+ function C0e(n, e) {
+ var t, i;
+ for (i = e.c, t = i + 1; t <= e.f; t++)
+ n.a[t] > n.a[i] && (i = t);
+ return i;
+ }
+ function T0e(n, e) {
+ var t;
+ return t = Ud(n.e.c, e.e.c), t == 0 ? ni(n.e.d, e.e.d) : t;
+ }
+ function Fw(n, e) {
+ return e.e == 0 || n.e == 0 ? U4 : (l4(), Hx(n, e));
+ }
+ function M0e(n, e) {
+ if (!n)
+ throw T(new Hn(P8e("Enum constant undefined: %s", e)));
+ }
+ function X5() {
+ X5 = N, AWn = new Pan(), SWn = new Aan(), TWn = new Fan(), MWn = new xan(), PWn = new Lan();
+ }
+ function RC() {
+ RC = N, Yin = new qG("BY_SIZE", 0), jR = new qG("BY_SIZE_AND_SHAPE", 1);
+ }
+ function _C() {
+ _C = N, $R = new GG("EADES", 0), tS = new GG("FRUCHTERMAN_REINGOLD", 1);
+ }
+ function V8() {
+ V8 = N, $S = new XG("READING_DIRECTION", 0), Ucn = new XG("ROTATION", 1);
+ }
+ function zPn() {
+ zPn = N, lXn = Fe((Ia(), A(M(zcn, 1), z, 335, 0, [f_, Gcn, h_, Em, jm])));
+ }
+ function UPn() {
+ UPn = N, HQn = Fe((b6(), A(M(Usn, 1), z, 315, 0, [zsn, nK, eK, Lm, Nm])));
+ }
+ function WPn() {
+ WPn = N, nXn = Fe((Vw(), A(M(ZWn, 1), z, 363, 0, [SS, IS, OS, PS, AS])));
+ }
+ function XPn() {
+ XPn = N, CXn = Fe((As(), A(M(jun, 1), z, 163, 0, [Qk, Sm, Fl, Pm, Wb])));
+ }
+ function VPn() {
+ VPn = N, fZn = Fe((P7(), A(M(gfn, 1), z, 316, 0, [dfn, xK, wfn, LK, bfn])));
+ }
+ function QPn() {
+ QPn = N, DZn = Fe((Ho(), A(M($1, 1), z, 175, 0, [Xn, vi, Yf, Za, D1])));
+ }
+ function JPn() {
+ JPn = N, iZn = Fe((w4(), A(M(tZn, 1), z, 355, 0, [Ng, Ep, Qm, Vm, Jm])));
+ }
+ function YPn() {
+ YPn = N, mWn = Fe((Vi(), A(M(Hrn, 1), z, 356, 0, [Vf, Dl, Kc, Tc, Or])));
+ }
+ function ZPn() {
+ ZPn = N, tne = Fe((sr(), A(M(e9, 1), z, 103, 0, [mh, Ao, Ys, Qh, Jh])));
+ }
+ function nIn() {
+ nIn = N, lne = Fe((qw(), A(M(c9, 1), z, 249, 0, [Kl, Cy, Hhn, r9, qhn])));
+ }
+ function eIn() {
+ eIn = N, bne = Fe((J(), A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn])));
+ }
+ function H$(n, e) {
+ var t;
+ return t = u(te(n.a, e), 134), t || (t = new pI(), it(n.a, e, t)), t;
+ }
+ function tIn(n) {
+ var e;
+ return e = u(k(n, (G(), v0)), 305), e ? e.a == n : !1;
+ }
+ function iIn(n) {
+ var e;
+ return e = u(k(n, (G(), v0)), 305), e ? e.i == n : !1;
+ }
+ function rIn(n, e) {
+ return _n(e), mW(n), n.d.Ob() ? (e.td(n.d.Pb()), !0) : !1;
+ }
+ function KC(n) {
+ return hc(n, nt) > 0 ? nt : hc(n, Bi) < 0 ? Bi : ge(n);
+ }
+ function ob(n) {
+ return n < 3 ? (is(n, Y_n), n + 1) : n < L6 ? zt(n / 0.75 + 1) : nt;
+ }
+ function On(n, e) {
+ var t;
+ return t = (n.i == null && Lf(n), n.i), e >= 0 && e < t.length ? t[e] : null;
+ }
+ function Ro(n, e, t) {
+ var i;
+ if (e == null)
+ throw T(new Nv());
+ return i = Oh(n, e), Xae(n, e, t), i;
+ }
+ function cIn(n) {
+ return n.a >= -0.01 && n.a <= bf && (n.a = 0), n.b >= -0.01 && n.b <= bf && (n.b = 0), n;
+ }
+ function uIn(n, e) {
+ return e == (sD(), sD(), Izn) ? n.toLocaleLowerCase() : n.toLowerCase();
+ }
+ function nV(n) {
+ return (n.i & 2 ? "interface " : n.i & 1 ? "" : "class ") + (Sh(n), n.o);
+ }
+ function Cr(n) {
+ var e, t;
+ t = (e = new RI(), e), me((!n.q && (n.q = new V(ro, n, 11, 10)), n.q), t);
+ }
+ function A0e(n, e) {
+ var t;
+ return t = e > 0 ? e - 1 : e, t8n(Kie(OIn(YU(new Gp(), t), n.n), n.j), n.k);
+ }
+ function S0e(n, e, t, i) {
+ var r;
+ n.j = -1, EY(n, iY(n, e, t), (er(), r = u(e, 66).Mj(), r.Ok(i)));
+ }
+ function sIn(n) {
+ this.g = n, this.f = new X(), this.a = j.Math.min(this.g.c.c, this.g.d.c);
+ }
+ function oIn(n) {
+ this.b = new X(), this.a = new X(), this.c = new X(), this.d = new X(), this.e = n;
+ }
+ function fIn(n, e) {
+ this.a = new we(), this.e = new we(), this.b = (i6(), oP), this.c = n, this.b = e;
+ }
+ function hIn(n, e, t) {
+ kE.call(this), eV(this), this.a = n, this.c = t, this.b = e.d, this.f = e.e;
+ }
+ function lIn(n) {
+ this.d = n, this.c = n.c.vc().Kc(), this.b = null, this.a = null, this.e = (aj(), fR);
+ }
+ function Nd(n) {
+ if (n < 0)
+ throw T(new Hn("Illegal Capacity: " + n));
+ this.g = this.ri(n);
+ }
+ function P0e(n, e) {
+ if (0 > n || n > e)
+ throw T(new bG("fromIndex: 0, toIndex: " + n + tnn + e));
+ }
+ function I0e(n) {
+ var e;
+ if (n.a == n.b.a)
+ throw T(new rc());
+ return e = n.a, n.c = e, n.a = n.a.e, e;
+ }
+ function HC(n) {
+ var e;
+ U0(!!n.c), e = n.c.a, Cs(n.d, n.c), n.b == n.c ? n.b = e : --n.a, n.c = null;
+ }
+ function qC(n, e) {
+ var t;
+ return Ma(n), t = new $Tn(n, n.a.rd(), n.a.qd() | 4, e), new $n(n, t);
+ }
+ function O0e(n, e) {
+ var t, i;
+ return t = u(db(n.d, e), 14), t ? (i = e, n.e.pc(i, t)) : null;
+ }
+ function GC(n, e) {
+ var t, i;
+ for (i = n.Kc(); i.Ob(); )
+ t = u(i.Pb(), 70), H(t, (G(), pp), e);
+ }
+ function D0e(n) {
+ var e;
+ return e = K(Y(k(n, (nn(), S1)))), e < 0 && (e = 0, H(n, S1, e)), e;
+ }
+ function $0e(n, e, t) {
+ var i;
+ i = j.Math.max(0, n.b / 2 - 0.5), g6(t, i, 1), W(e, new N7n(t, i));
+ }
+ function F0e(n, e, t) {
+ var i;
+ return i = n.a.e[u(e.a, 10).p] - n.a.e[u(t.a, 10).p], zt(m8(i));
+ }
+ function aIn(n, e, t, i, r, c) {
+ var o;
+ o = C$(i), Ki(o, r), Ti(o, c), Tn(n.a, i, new EE(o, e, t.f));
+ }
+ function dIn(n, e) {
+ var t;
+ if (t = R7(n.Tg(), e), !t)
+ throw T(new Hn(Sl + e + MB));
+ return t;
+ }
+ function fb(n, e) {
+ var t;
+ for (t = n; At(t); )
+ if (t = At(t), t == e)
+ return !0;
+ return !1;
+ }
+ function x0e(n, e) {
+ var t, i, r;
+ for (i = e.a.cd(), t = u(e.a.dd(), 14).gc(), r = 0; r < t; r++)
+ n.td(i);
+ }
+ function Jc(n, e) {
+ var t, i, r, c;
+ for (_n(e), i = n.c, r = 0, c = i.length; r < c; ++r)
+ t = i[r], e.td(t);
+ }
+ function Cs(n, e) {
+ var t;
+ return t = e.c, e.a.b = e.b, e.b.a = e.a, e.a = e.b = null, e.c = null, --n.b, t;
+ }
+ function L0e(n, e) {
+ return e && n.b[e.g] == e ? (Mt(n.b, e.g, null), --n.c, !0) : !1;
+ }
+ function bIn(n, e) {
+ return !!Y5(n, e, ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15))));
+ }
+ function N0e(n, e) {
+ p2(u(k(u(n.e, 10), (nn(), Nt)), 98)) && (Pn(), wi(u(n.e, 10).j, e));
+ }
+ function eV(n) {
+ n.b = (Cu(), Il), n.f = (Qc(), Ol), n.d = (is(2, Ib), new Ic(2)), n.e = new Li();
+ }
+ function _o() {
+ _o = N, Zr = new sO("BEGIN", 0), xc = new sO(P4, 1), nc = new sO("END", 2);
+ }
+ function sf() {
+ sf = N, yv = new OO(P4, 0), uw = new OO("HEAD", 1), jv = new OO("TAIL", 2);
+ }
+ function B0e() {
+ return a4(), A(M(nI, 1), z, 237, 0, [aH, YP, ZP, JP, lH, QP, VP, hH]);
+ }
+ function R0e() {
+ return y1(), A(M($Zn, 1), z, 277, 0, [Lfn, _i, oc, mv, Dr, Bt, Cp, yf]);
+ }
+ function _0e() {
+ return lM(), A(M(Ncn, 1), z, 270, 0, [n_, i_, ZR, u_, t_, e_, c_, r_]);
+ }
+ function K0e() {
+ return Zw(), A(M(Jsn, 1), z, 260, 0, [hP, ey, ty, Xsn, Vsn, Wsn, Qsn, lP]);
+ }
+ function wIn() {
+ wIn = N, ane = Fe((Ai(), A(M(Ghn, 1), z, 98, 0, [Hl, jf, Cv, id, jh, Sc])));
+ }
+ function gIn() {
+ gIn = N, QA = (_o(), A(M(Kb, 1), z, 232, 0, [Zr, xc, nc])).length, CR = QA;
+ }
+ function zC(n) {
+ this.b = (pe(n), new lu(n)), this.a = new X(), this.d = new X(), this.e = new Li();
+ }
+ function H0e(n) {
+ var e;
+ return e = j.Math.sqrt(n.a * n.a + n.b * n.b), e > 0 && (n.a /= e, n.b /= e), n;
+ }
+ function ts(n) {
+ var e;
+ return n.w ? n.w : (e = Gle(n), e && !e.kh() && (n.w = e), e);
+ }
+ function q0e(n) {
+ var e;
+ return n == null ? null : (e = u(n, 190), Gve(e, e.length));
+ }
+ function D(n, e) {
+ if (n.g == null || e >= n.i)
+ throw T(new xO(e, n.i));
+ return n.li(e, n.g[e]);
+ }
+ function G0e(n) {
+ var e, t;
+ for (e = n.a.d.j, t = n.c.d.j; e != t; )
+ ko(n.b, e), e = yT(e);
+ ko(n.b, e);
+ }
+ function z0e(n) {
+ var e;
+ for (e = 0; e < n.c.length; e++)
+ (Ln(e, n.c.length), u(n.c[e], 11)).p = e;
+ }
+ function U0e(n, e, t) {
+ var i, r, c;
+ for (r = e[t], i = 0; i < r.length; i++)
+ c = r[i], n.e[c.c.p][c.p] = i;
+ }
+ function q$(n, e) {
+ var t, i, r, c;
+ for (i = n.d, r = 0, c = i.length; r < c; ++r)
+ t = i[r], Zo(n.g, t).a = e;
+ }
+ function hb(n, e) {
+ var t, i;
+ for (i = _e(n, 0); i.b != i.d.c; )
+ t = u(Re(i), 8), st(t, e);
+ return n;
+ }
+ function W0e(n, e) {
+ var t;
+ return t = ji(Qr(u(te(n.g, e), 8)), Az(u(te(n.f, e), 460).b)), t;
+ }
+ function Bd(n) {
+ var e;
+ return b$(n.e, n), ne(n.b), n.c = n.a, e = u(n.a.Pb(), 42), n.b = OV(n), e;
+ }
+ function va(n) {
+ var e;
+ return A5(n == null || Array.isArray(n) && (e = U8(n), !(e >= 14 && e <= 16))), n;
+ }
+ function pIn(n, e, t) {
+ var i = function() {
+ return n.apply(i, arguments);
+ };
+ return e.apply(i, t), i;
+ }
+ function vIn(n, e, t) {
+ var i, r;
+ i = e;
+ do
+ r = K(n.p[i.p]) + t, n.p[i.p] = r, i = n.a[i.p];
+ while (i != e);
+ }
+ function I3(n, e) {
+ var t, i;
+ i = n.a, t = Tge(n, e, null), i != e && !n.e && (t = y4(n, e, t)), t && t.Fi();
+ }
+ function tV(n, e) {
+ return Yo(), mo(El), j.Math.abs(n - e) <= El || n == e || isNaN(n) && isNaN(e);
+ }
+ function iV(n, e) {
+ return Yo(), mo(El), j.Math.abs(n - e) <= El || n == e || isNaN(n) && isNaN(e);
+ }
+ function X0e(n, e) {
+ return kl(), zc(n.b.c.length - n.e.c.length, e.b.c.length - e.e.c.length);
+ }
+ function xw(n, e) {
+ return Uie(J5(n, e, ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15)))));
+ }
+ function mIn() {
+ mIn = N, FWn = Fe((Qn(), A(M(zR, 1), z, 267, 0, [ii, pi, Vt, Mc, Qu, vf])));
+ }
+ function kIn() {
+ kIn = N, KZn = Fe((mb(), A(M(UK, 1), z, 291, 0, [zK, gy, wy, GK, dy, by])));
+ }
+ function yIn() {
+ yIn = N, xZn = Fe((oh(), A(M(Rfn, 1), z, 248, 0, [HK, ly, ay, xP, $P, FP])));
+ }
+ function jIn() {
+ jIn = N, sXn = Fe((q2(), A(M(iv, 1), z, 227, 0, [tv, ym, ev, Gb, Cg, Eg])));
+ }
+ function EIn() {
+ EIn = N, vXn = Fe((f4(), A(M(sun, 1), z, 275, 0, [Cm, iun, uun, cun, run, tun])));
+ }
+ function CIn() {
+ CIn = N, pXn = Fe((A7(), A(M(eun, 1), z, 274, 0, [LS, Ycn, nun, Jcn, Zcn, p_])));
+ }
+ function TIn() {
+ TIn = N, RQn = Fe((JT(), A(M(Hsn, 1), z, 313, 0, [Q_, _sn, V_, Rsn, Ksn, sP])));
+ }
+ function MIn() {
+ MIn = N, wXn = Fe((eM(), A(M(Xcn, 1), z, 276, 0, [d_, a_, w_, b_, g_, FS])));
+ }
+ function AIn() {
+ AIn = N, QJn = Fe((k6(), A(M(VJn, 1), z, 327, 0, [pP, aK, bK, dK, wK, lK])));
+ }
+ function SIn() {
+ SIn = N, dne = Fe((Tu(), A(M(qP, 1), z, 273, 0, [ql, Zh, Ty, s9, u9, Pp])));
+ }
+ function PIn() {
+ PIn = N, cne = Fe((ZT(), A(M(xhn, 1), z, 312, 0, [uH, Dhn, Fhn, Ihn, $hn, Ohn])));
+ }
+ function V0e() {
+ return Eb(), A(M(lr, 1), z, 93, 0, [So, Yh, Po, Oo, yh, no, as, Io, Zs]);
+ }
+ function UC(n, e) {
+ var t;
+ t = n.a, n.a = e, n.Db & 4 && !(n.Db & 1) && et(n, new cb(n, 0, t, n.a));
+ }
+ function WC(n, e) {
+ var t;
+ t = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && et(n, new cb(n, 1, t, n.b));
+ }
+ function O3(n, e) {
+ var t;
+ t = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && et(n, new cb(n, 3, t, n.b));
+ }
+ function Rd(n, e) {
+ var t;
+ t = n.f, n.f = e, n.Db & 4 && !(n.Db & 1) && et(n, new cb(n, 3, t, n.f));
+ }
+ function _d(n, e) {
+ var t;
+ t = n.g, n.g = e, n.Db & 4 && !(n.Db & 1) && et(n, new cb(n, 4, t, n.g));
+ }
+ function Yc(n, e) {
+ var t;
+ t = n.i, n.i = e, n.Db & 4 && !(n.Db & 1) && et(n, new cb(n, 5, t, n.i));
+ }
+ function Zc(n, e) {
+ var t;
+ t = n.j, n.j = e, n.Db & 4 && !(n.Db & 1) && et(n, new cb(n, 6, t, n.j));
+ }
+ function D3(n, e) {
+ var t;
+ t = n.j, n.j = e, n.Db & 4 && !(n.Db & 1) && et(n, new cb(n, 1, t, n.j));
+ }
+ function $3(n, e) {
+ var t;
+ t = n.c, n.c = e, n.Db & 4 && !(n.Db & 1) && et(n, new cb(n, 4, t, n.c));
+ }
+ function F3(n, e) {
+ var t;
+ t = n.k, n.k = e, n.Db & 4 && !(n.Db & 1) && et(n, new cb(n, 2, t, n.k));
+ }
+ function G$(n, e) {
+ var t;
+ t = n.d, n.d = e, n.Db & 4 && !(n.Db & 1) && et(n, new p$(n, 2, t, n.d));
+ }
+ function d1(n, e) {
+ var t;
+ t = n.s, n.s = e, n.Db & 4 && !(n.Db & 1) && et(n, new p$(n, 4, t, n.s));
+ }
+ function lb(n, e) {
+ var t;
+ t = n.t, n.t = e, n.Db & 4 && !(n.Db & 1) && et(n, new p$(n, 5, t, n.t));
+ }
+ function x3(n, e) {
+ var t;
+ t = n.F, n.F = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 5, t, e));
+ }
+ function Q8(n, e) {
+ var t;
+ return t = u(te(($j(), eI), n), 55), t ? t.xj(e) : F(Zn, rn, 1, e, 5, 1);
+ }
+ function Nh(n, e) {
+ var t, i;
+ return t = e in n.a, t && (i = Oh(n, e).he(), i) ? i.a : null;
+ }
+ function Q0e(n, e) {
+ var t, i, r;
+ return t = (i = (dd(), r = new QH(), r), e && zY(i, e), i), aV(t, n), t;
+ }
+ function IIn(n, e, t) {
+ if (U3(n, t), !n.Bk() && t != null && !n.wj(t))
+ throw T(new xI());
+ return t;
+ }
+ function OIn(n, e) {
+ return n.n = e, n.n ? (n.f = new X(), n.e = new X()) : (n.f = null, n.e = null), n;
+ }
+ function Ae(n, e, t, i, r, c) {
+ var o;
+ return o = LD(n, e), $In(t, o), o.i = r ? 8 : 0, o.f = i, o.e = r, o.g = c, o;
+ }
+ function rV(n, e, t, i, r) {
+ this.d = e, this.k = i, this.f = r, this.o = -1, this.p = 1, this.c = n, this.a = t;
+ }
+ function cV(n, e, t, i, r) {
+ this.d = e, this.k = i, this.f = r, this.o = -1, this.p = 2, this.c = n, this.a = t;
+ }
+ function uV(n, e, t, i, r) {
+ this.d = e, this.k = i, this.f = r, this.o = -1, this.p = 6, this.c = n, this.a = t;
+ }
+ function sV(n, e, t, i, r) {
+ this.d = e, this.k = i, this.f = r, this.o = -1, this.p = 7, this.c = n, this.a = t;
+ }
+ function oV(n, e, t, i, r) {
+ this.d = e, this.j = i, this.e = r, this.o = -1, this.p = 4, this.c = n, this.a = t;
+ }
+ function DIn(n, e) {
+ var t, i, r, c;
+ for (i = e, r = 0, c = i.length; r < c; ++r)
+ t = i[r], gPn(n.a, t);
+ return n;
+ }
+ function of(n) {
+ var e, t, i, r;
+ for (t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], pe(e);
+ return new Ykn(n);
+ }
+ function J0e(n) {
+ var e = /function(?:\s+([\w$]+))?\s*\(/, t = e.exec(n);
+ return t && t[1] || SL;
+ }
+ function $In(n, e) {
+ if (n) {
+ e.n = n;
+ var t = tle(e);
+ if (!t) {
+ RA[n] = [e];
+ return;
+ }
+ t.gm = e;
+ }
+ }
+ function Y0e(n, e, t) {
+ var i, r;
+ return r = n.length, i = j.Math.min(t, r), aY(n, 0, e, 0, i, !0), e;
+ }
+ function FIn(n, e, t) {
+ var i, r;
+ for (r = e.Kc(); r.Ob(); )
+ i = u(r.Pb(), 79), ci(n, u(t.Kb(i), 33));
+ }
+ function Z0e() {
+ B8n();
+ for (var n = iR, e = 0; e < arguments.length; e++)
+ n.push(arguments[e]);
+ }
+ function V5(n, e) {
+ var t, i, r, c;
+ for (i = e, r = 0, c = i.length; r < c; ++r)
+ t = i[r], Ht(n, t, n.c.b, n.c);
+ }
+ function XC(n, e) {
+ n.b = j.Math.max(n.b, e.d), n.e += e.r + (n.a.c.length == 0 ? 0 : n.c), W(n.a, e);
+ }
+ function xIn(n) {
+ U0(n.c >= 0), Q2e(n.d, n.c) < 0 && (n.a = n.a - 1 & n.d.a.length - 1, n.b = n.d.c), n.c = -1;
+ }
+ function fV(n) {
+ return n.a < 54 ? n.f < 0 ? -1 : n.f > 0 ? 1 : 0 : (!n.c && (n.c = h7(n.f)), n.c).e;
+ }
+ function mo(n) {
+ if (!(n >= 0))
+ throw T(new Hn("tolerance (" + n + ") must be >= 0"));
+ return n;
+ }
+ function L3() {
+ return _K || (_K = new yBn(), _w(_K, A(M(mg, 1), rn, 130, 0, [new nq()]))), _K;
+ }
+ function ur() {
+ ur = N, Bm = new kO(K6, 0), Au = new kO("INPUT", 1), Lc = new kO("OUTPUT", 2);
+ }
+ function VC() {
+ VC = N, Hcn = new bO("ARD", 0), DS = new bO("MSD", 1), o_ = new bO("MANUAL", 2);
+ }
+ function Kd() {
+ Kd = N, ry = new TO("BARYCENTER", 0), _m = new TO(cHn, 1), aP = new TO(uHn, 2);
+ }
+ function J8(n, e) {
+ var t;
+ if (t = n.gc(), e < 0 || e > t)
+ throw T(new Q0(e, t));
+ return new AU(n, e);
+ }
+ function LIn(n, e) {
+ var t;
+ return I(e, 42) ? n.c.Mc(e) : (t = NF(n, e), IT(n, e), t);
+ }
+ function wr(n, e, t) {
+ return Ta(n, e), Oc(n, t), d1(n, 0), lb(n, 1), p1(n, !0), g1(n, !0), n;
+ }
+ function is(n, e) {
+ if (n < 0)
+ throw T(new Hn(e + " cannot be negative but was: " + n));
+ return n;
+ }
+ function NIn(n, e) {
+ var t, i;
+ for (t = 0, i = n.gc(); t < i; ++t)
+ if (vc(e, n.Xb(t)))
+ return t;
+ return -1;
+ }
+ function QC(n) {
+ var e, t;
+ for (t = n.c.Cc().Kc(); t.Ob(); )
+ e = u(t.Pb(), 14), e.$b();
+ n.c.$b(), n.d = 0;
+ }
+ function nbe(n) {
+ var e, t, i, r;
+ for (t = n.a, i = 0, r = t.length; i < r; ++i)
+ e = t[i], RCn(e, e.length, null);
+ }
+ function hV(n) {
+ var e, t;
+ if (n == 0)
+ return 32;
+ for (t = 0, e = 1; !(e & n); e <<= 1)
+ ++t;
+ return t;
+ }
+ function ebe(n) {
+ var e, t;
+ for (t = new E(EFn(n)); t.a < t.c.c.length; )
+ e = u(y(t), 680), e.Gf();
+ }
+ function BIn(n) {
+ IG(), this.g = new we(), this.f = new we(), this.b = new we(), this.c = new Dd(), this.i = n;
+ }
+ function lV() {
+ this.f = new Li(), this.d = new Zq(), this.c = new Li(), this.a = new X(), this.b = new X();
+ }
+ function RIn(n, e, t, i) {
+ this.rj(), this.a = e, this.b = n, this.c = null, this.c = new Jjn(this, e, t, i);
+ }
+ function z$(n, e, t, i, r) {
+ this.d = n, this.n = e, this.g = t, this.o = i, this.p = -1, r || (this.o = -2 - i - 1);
+ }
+ function _In() {
+ Oz.call(this), this.n = -1, this.g = null, this.i = null, this.j = null, this.Bb |= Eo;
+ }
+ function tbe() {
+ return xu(), A(M(Uhn, 1), z, 259, 0, [Tv, Py, GP, f9, zP, WP, UP, sH, Sy]);
+ }
+ function ibe() {
+ return dM(), A(M(wrn, 1), z, 250, 0, [brn, hrn, lrn, frn, ER, drn, arn, orn, srn]);
+ }
+ function KIn() {
+ KIn = N, yzn = A(M(be, 1), Le, 25, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]);
+ }
+ function HIn() {
+ HIn = N, iJn = Ze(Ze(Ze(new li(), (Vi(), Vf), (rr(), mm)), Dl, Y4), Kc, J4);
+ }
+ function qIn() {
+ qIn = N, rJn = Ze(Ze(Ze(new li(), (Vi(), Vf), (rr(), mm)), Dl, Y4), Kc, J4);
+ }
+ function GIn() {
+ GIn = N, cJn = Ze(Ze(Ze(new li(), (Vi(), Vf), (rr(), mm)), Dl, Y4), Kc, J4);
+ }
+ function zIn() {
+ zIn = N, oJn = ju(Ze(Ze(new li(), (Vi(), Kc), (rr(), pS)), Tc, aS), Or, gS);
+ }
+ function F2() {
+ F2 = N, ap = new dO("LAYER_SWEEP", 0), qk = new dO(PN, 1), _cn = new dO(Wh, 2);
+ }
+ function rbe(n, e) {
+ var t, i;
+ return t = n.c, i = e.e[n.p], i > 0 ? u(un(t.a, i - 1), 10) : null;
+ }
+ function Q5(n, e) {
+ var t;
+ t = n.k, n.k = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 2, t, n.k));
+ }
+ function JC(n, e) {
+ var t;
+ t = n.f, n.f = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 8, t, n.f));
+ }
+ function YC(n, e) {
+ var t;
+ t = n.i, n.i = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 7, t, n.i));
+ }
+ function aV(n, e) {
+ var t;
+ t = n.a, n.a = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 8, t, n.a));
+ }
+ function dV(n, e) {
+ var t;
+ t = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 0, t, n.b));
+ }
+ function bV(n, e) {
+ var t;
+ t = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 0, t, n.b));
+ }
+ function wV(n, e) {
+ var t;
+ t = n.c, n.c = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 1, t, n.c));
+ }
+ function gV(n, e) {
+ var t;
+ t = n.c, n.c = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 1, t, n.c));
+ }
+ function U$(n, e) {
+ var t;
+ t = n.c, n.c = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 4, t, n.c));
+ }
+ function pV(n, e) {
+ var t;
+ t = n.d, n.d = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 1, t, n.d));
+ }
+ function W$(n, e) {
+ var t;
+ t = n.D, n.D = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 2, t, n.D));
+ }
+ function X$(n, e) {
+ n.r > 0 && n.c < n.r && (n.c += e, n.i && n.i.d > 0 && n.g != 0 && X$(n.i, e / n.r * n.i.d));
+ }
+ function cbe(n, e, t) {
+ var i;
+ n.b = e, n.a = t, i = (n.a & 512) == 512 ? new M9n() : new ZH(), n.c = y7e(i, n.b, n.a);
+ }
+ function UIn(n, e) {
+ return Gh(n.e, e) ? (er(), R$(e) ? new IE(e, n) : new i8(e, n)) : new Bkn(e, n);
+ }
+ function ZC(n, e) {
+ return zie(Y5(n.a, e, ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15)))));
+ }
+ function ube(n, e, t) {
+ return ub(n, new qvn(e), new kln(), new Gvn(t), A(M(Nu, 1), z, 132, 0, []));
+ }
+ function sbe(n) {
+ var e, t;
+ return 0 > n ? new PG() : (e = n + 1, t = new gSn(e, n), new oU(null, t));
+ }
+ function obe(n, e) {
+ Pn();
+ var t;
+ return t = new s2(1), yi(n) ? yr(t, n, e) : Rc(t.f, n, e), new DI(t);
+ }
+ function fbe(n, e) {
+ var t, i;
+ return t = n.o + n.p, i = e.o + e.p, t < i ? -1 : t == i ? 0 : 1;
+ }
+ function hbe(n) {
+ var e;
+ return e = k(n, (G(), rt)), I(e, 160) ? c$n(u(e, 160)) : null;
+ }
+ function WIn(n) {
+ var e;
+ return n = j.Math.max(n, 2), e = KV(n), n > e ? (e <<= 1, e > 0 ? e : L6) : e;
+ }
+ function V$(n) {
+ switch (Rz(n.e != 3), n.e) {
+ case 2:
+ return !1;
+ case 0:
+ return !0;
+ }
+ return wde(n);
+ }
+ function XIn(n, e) {
+ var t;
+ return I(e, 8) ? (t = u(e, 8), n.a == t.a && n.b == t.b) : !1;
+ }
+ function Q$(n, e, t) {
+ var i, r, c;
+ return c = e >> 5, r = e & 31, i = ui(Y0(n.n[t][c], ge(Ph(r, 1))), 3), i;
+ }
+ function lbe(n, e) {
+ var t, i;
+ for (i = e.vc().Kc(); i.Ob(); )
+ t = u(i.Pb(), 42), XT(n, t.cd(), t.dd());
+ }
+ function abe(n, e) {
+ var t;
+ t = new Wy(), u(e.b, 65), u(e.b, 65), u(e.b, 65), Jc(e.a, new BU(n, t, e));
+ }
+ function vV(n, e) {
+ var t;
+ t = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 21, t, n.b));
+ }
+ function mV(n, e) {
+ var t;
+ t = n.d, n.d = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 11, t, n.d));
+ }
+ function nT(n, e) {
+ var t;
+ t = n.j, n.j = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 13, t, n.j));
+ }
+ function VIn(n, e, t) {
+ var i, r, c;
+ for (c = n.a.length - 1, r = n.b, i = 0; i < t; r = r + 1 & c, ++i)
+ Mt(e, i, n.a[r]);
+ }
+ function ko(n, e) {
+ var t;
+ return _n(e), t = e.g, n.b[t] ? !1 : (Mt(n.b, t, e), ++n.c, !0);
+ }
+ function QIn(n, e) {
+ var t;
+ return t = e == null ? -1 : xr(n.b, e, 0), t < 0 ? !1 : (J$(n, t), !0);
+ }
+ function J$(n, e) {
+ var t;
+ t = h1(n.b, n.b.c.length - 1), e < n.b.c.length && (js(n.b, e, t), hLn(n, e));
+ }
+ function dbe(n, e) {
+ (CC(), pf ? null : e.c).length == 0 && Mjn(e, new $H()), yr(n.a, pf ? null : e.c, e);
+ }
+ function bbe(n, e) {
+ le(e, "Hierarchical port constraint processing", 1), jpe(n), ETe(n), ce(e);
+ }
+ function wbe(n, e) {
+ var t, i;
+ for (i = e.Kc(); i.Ob(); )
+ t = u(i.Pb(), 266), n.b = !0, ci(n.e, t), t.b = n;
+ }
+ function eT(n, e) {
+ var t, i;
+ return t = 1 - e, i = n.a[t], n.a[t] = i.a[e], i.a[e] = n, n.b = !0, i.b = !1, i;
+ }
+ function gbe(n, e) {
+ var t, i;
+ return t = u(k(n, (nn(), nw)), 8), i = u(k(e, nw), 8), ni(t.b, i.b);
+ }
+ function JIn(n) {
+ hW.call(this), this.b = K(Y(k(n, (nn(), Mo)))), this.a = u(k(n, Vh), 218);
+ }
+ function YIn(n, e, t) {
+ dX.call(this, n, e, t), this.a = new we(), this.b = new we(), this.d = new d6n(this);
+ }
+ function ZIn(n) {
+ this.e = n, this.d = new kj(ob(k2(this.e).gc())), this.c = this.e.a, this.b = this.e.c;
+ }
+ function tT(n) {
+ this.b = n, this.a = F(be, Le, 25, n + 1, 15, 1), this.c = F(be, Le, 25, n, 15, 1), this.d = 0;
+ }
+ function Y$(n, e, t) {
+ var i;
+ return i = new X(), XY(n, e, i, t, !0, !0), n.b = new tT(i.c.length), i;
+ }
+ function nOn(n, e) {
+ var t;
+ return t = u(te(n.c, e), 458), t || (t = new c9n(), t.c = e, it(n.c, t.c, t)), t;
+ }
+ function Z$(n, e) {
+ var t = n.a, i = 0;
+ for (var r in t)
+ t.hasOwnProperty(r) && (e[i++] = r);
+ return e;
+ }
+ function kV(n) {
+ var e;
+ return n.b == null ? (c1(), c1(), Ly) : (e = n.Lk() ? n.Kk() : n.Jk(), e);
+ }
+ function eOn(n) {
+ var e, t;
+ for (t = new ie(n); t.e != t.i.gc(); )
+ e = u(oe(t), 33), Yc(e, 0), Zc(e, 0);
+ }
+ function al() {
+ al = N, hp = new kt(Ann), cS = new kt(_Kn), vm = new kt(KKn), Bk = new kt(HKn);
+ }
+ function N3() {
+ N3 = N, _k = new zG("TO_INTERNAL_LTR", 0), UR = new zG("TO_INPUT_DIRECTION", 1);
+ }
+ function iT() {
+ iT = N, EP = new uz("P1_NODE_PLACEMENT", 0), vv = new uz("P2_EDGE_ROUTING", 1);
+ }
+ function Hd() {
+ Hd = N, p0 = new aO("START", 0), $l = new aO("MIDDLE", 1), g0 = new aO("END", 2);
+ }
+ function x2() {
+ x2 = N, VR = new ri("edgelabelcenterednessanalysis.includelabel", (qn(), Ga));
+ }
+ function pbe(n, e) {
+ Rt(gt(new $n(null, new xn(new Bp(n.b), 1)), new skn(n, e)), new fkn(n, e));
+ }
+ function tOn() {
+ this.c = new jj(0), this.b = new jj(SHn), this.d = new jj(AHn), this.a = new jj(kN);
+ }
+ function yV(n) {
+ var e, t;
+ for (t = n.c.a.ec().Kc(); t.Ob(); )
+ e = u(t.Pb(), 214), hte(e, new Cxn(e.e));
+ }
+ function iOn(n) {
+ var e, t;
+ for (t = n.c.a.ec().Kc(); t.Ob(); )
+ e = u(t.Pb(), 214), fte(e, new ICn(e.f));
+ }
+ function Oc(n, e) {
+ var t;
+ t = n.zb, n.zb = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 1, t, n.zb));
+ }
+ function rT(n, e) {
+ var t;
+ t = n.xb, n.xb = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 3, t, n.xb));
+ }
+ function cT(n, e) {
+ var t;
+ t = n.yb, n.yb = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 2, t, n.yb));
+ }
+ function St(n, e) {
+ var t, i;
+ t = (i = new BI(), i), t.n = e, me((!n.s && (n.s = new V(uu, n, 21, 17)), n.s), t);
+ }
+ function bt(n, e) {
+ var t, i;
+ i = (t = new cU(), t), i.n = e, me((!n.s && (n.s = new V(uu, n, 21, 17)), n.s), i);
+ }
+ function Lw(n, e) {
+ var t, i;
+ for (t = n.Pc(), A3(t, 0, t.length, e), i = 0; i < t.length; i++)
+ n._c(i, t[i]);
+ }
+ function Xi(n, e) {
+ var t, i, r;
+ for (_n(e), t = !1, r = e.Kc(); r.Ob(); )
+ i = r.Pb(), t = t | n.Fc(i);
+ return t;
+ }
+ function rOn(n) {
+ var e, t, i;
+ for (e = 0, i = n.Kc(); i.Ob(); )
+ t = i.Pb(), e += t != null ? mt(t) : 0, e = ~~e;
+ return e;
+ }
+ function cOn(n) {
+ var e;
+ return n == 0 ? "UTC" : (n < 0 ? (n = -n, e = "UTC+") : e = "UTC-", e + KPn(n));
+ }
+ function nF(n, e) {
+ var t;
+ return I(e, 14) ? (t = u(e, 14), n.Gc(t)) : _$(n, u(pe(e), 20).Kc());
+ }
+ function uOn(n, e, t) {
+ fIn.call(this, e, t), this.d = F(vh, E1, 10, n.a.c.length, 0, 1), lf(n.a, this.d);
+ }
+ function vbe(n) {
+ n.a = null, n.e = null, n.b.c = F(Zn, rn, 1, 0, 5, 1), n.f.c = F(Zn, rn, 1, 0, 5, 1), n.c = null;
+ }
+ function sOn(n, e) {
+ e ? n.B == null && (n.B = n.D, n.D = null) : n.B != null && (n.D = n.B, n.B = null);
+ }
+ function oOn(n, e) {
+ return K(Y(jd(d7(Wc(new $n(null, new xn(n.c.b, 16)), new n6n(n)), e))));
+ }
+ function jV(n, e) {
+ return K(Y(jd(d7(Wc(new $n(null, new xn(n.c.b, 16)), new Z5n(n)), e))));
+ }
+ function mbe(n, e) {
+ le(e, rHn, 1), Rt(qr(new $n(null, new xn(n.b, 16)), new ndn()), new edn()), ce(e);
+ }
+ function kbe(n, e) {
+ var t, i;
+ return t = u(hn(n, (pb(), TP)), 19), i = u(hn(e, TP), 19), zc(t.a, i.a);
+ }
+ function EV(n, e, t) {
+ var i, r;
+ for (r = _e(n, 0); r.b != r.d.c; )
+ i = u(Re(r), 8), i.a += e, i.b += t;
+ return n;
+ }
+ function J5(n, e, t) {
+ var i;
+ for (i = n.b[t & n.f]; i; i = i.b)
+ if (t == i.a && $f(e, i.g))
+ return i;
+ return null;
+ }
+ function Y5(n, e, t) {
+ var i;
+ for (i = n.c[t & n.f]; i; i = i.d)
+ if (t == i.f && $f(e, i.i))
+ return i;
+ return null;
+ }
+ function ybe(n, e, t) {
+ var i, r, c;
+ for (i = 0, r = 0; r < t; r++)
+ c = e[r], n[r] = c << 1 | i, i = c >>> 31;
+ i != 0 && (n[t] = i);
+ }
+ function jbe(n, e) {
+ Pn();
+ var t, i;
+ for (i = new X(), t = 0; t < n; ++t)
+ i.c[i.c.length] = e;
+ return new ZI(i);
+ }
+ function fOn(n) {
+ var e;
+ return e = bAn(n), pd(e.a, 0) ? (Zp(), Zp(), _in) : (Zp(), new Jz(e.b));
+ }
+ function hOn(n) {
+ var e;
+ return e = bAn(n), pd(e.a, 0) ? (Zp(), Zp(), _in) : (Zp(), new Jz(e.c));
+ }
+ function Ebe(n) {
+ var e;
+ return e = vC(n), pd(e.a, 0) ? (Mj(), Mj(), Ozn) : (Mj(), new rjn(e.b));
+ }
+ function Cbe(n) {
+ return n.b.c.i.k == (Qn(), Vt) ? u(k(n.b.c.i, (G(), rt)), 11) : n.b.c;
+ }
+ function lOn(n) {
+ return n.b.d.i.k == (Qn(), Vt) ? u(k(n.b.d.i, (G(), rt)), 11) : n.b.d;
+ }
+ function _t(n, e, t, i, r, c, o, f, h, l, a, d, g) {
+ return iLn(n, e, t, i, r, c, o, f, h, l, a, d, g), SF(n, !1), n;
+ }
+ function Ts(n, e, t, i, r, c, o) {
+ Oe.call(this, n, e), this.d = t, this.e = i, this.c = r, this.b = c, this.a = cf(o);
+ }
+ function Tbe(n, e) {
+ typeof window === Q7 && typeof window.$gwt === Q7 && (window.$gwt[n] = e);
+ }
+ function Mbe(n, e) {
+ return q3(), n == w0 && e == qb || n == qb && e == w0 || n == kg && e == Hb || n == Hb && e == kg;
+ }
+ function Abe(n, e) {
+ return q3(), n == w0 && e == Hb || n == w0 && e == kg || n == qb && e == kg || n == qb && e == Hb;
+ }
+ function aOn(n, e) {
+ return Yo(), mo(bf), j.Math.abs(0 - e) <= bf || e == 0 || isNaN(0) && isNaN(e) ? 0 : n / e;
+ }
+ function Sbe() {
+ return or(), A(M(v_, 1), z, 256, 0, [NS, Ds, Tm, BS, sv, Mg, Mm, cv, uv, RS]);
+ }
+ function eF() {
+ eF = N, b9 = new y9n(), gH = A(M(uu, 1), gg, 170, 0, []), ree = A(M(ro, 1), Qtn, 59, 0, []);
+ }
+ function uT() {
+ uT = N, oon = new EO("NO", 0), oK = new EO("GREEDY", 1), son = new EO("LOOK_BACK", 2);
+ }
+ function du() {
+ du = N, Jrn = new qan(), Vrn = new Han(), Qrn = new Gan(), Xrn = new zan(), Yrn = new Uan(), Zrn = new Wan();
+ }
+ function Pbe(n) {
+ var e, t, i;
+ for (i = 0, t = new E(n.b); t.a < t.c.c.length; )
+ e = u(y(t), 29), e.p = i, ++i;
+ }
+ function Ibe(n, e) {
+ var t;
+ return t = HJ(n), pY(new fn(t.c, t.d), new fn(t.b, t.a), n.rf(), e, n.Hf());
+ }
+ function yc(n, e) {
+ var t;
+ return n.b ? null : (t = A0e(n, n.g), Ke(n.a, t), t.i = n, n.d = e, t);
+ }
+ function Obe(n, e, t) {
+ le(t, "DFS Treeifying phase", 1), _2e(n, e), L8e(n, e), n.a = null, n.b = null, ce(t);
+ }
+ function dOn(n, e, t) {
+ this.g = n, this.d = e, this.e = t, this.a = new X(), P6e(this), Pn(), wi(this.a, null);
+ }
+ function CV(n) {
+ this.i = n.gc(), this.i > 0 && (this.g = this.ri(this.i + (this.i / 8 | 0) + 1), n.Qc(this.g));
+ }
+ function Ft(n, e) {
+ ME.call(this, cee, n, e), this.b = this, this.a = _c(n.Tg(), On(this.e.Tg(), this.c));
+ }
+ function Z5(n, e) {
+ var t, i;
+ for (_n(e), i = e.vc().Kc(); i.Ob(); )
+ t = u(i.Pb(), 42), n.zc(t.cd(), t.dd());
+ }
+ function Dbe(n, e, t) {
+ var i;
+ for (i = t.Kc(); i.Ob(); )
+ if (!yC(n, e, i.Pb()))
+ return !1;
+ return !0;
+ }
+ function $be(n, e, t, i, r) {
+ var c;
+ return t && (c = yt(e.Tg(), n.c), r = t.gh(e, -1 - (c == -1 ? i : c), null, r)), r;
+ }
+ function Fbe(n, e, t, i, r) {
+ var c;
+ return t && (c = yt(e.Tg(), n.c), r = t.ih(e, -1 - (c == -1 ? i : c), null, r)), r;
+ }
+ function bOn(n) {
+ var e;
+ if (n.b == -2) {
+ if (n.e == 0)
+ e = -1;
+ else
+ for (e = 0; n.a[e] == 0; e++)
+ ;
+ n.b = e;
+ }
+ return n.b;
+ }
+ function wOn(n) {
+ switch (n.g) {
+ case 2:
+ return J(), Gn;
+ case 4:
+ return J(), Vn;
+ default:
+ return n;
+ }
+ }
+ function gOn(n) {
+ switch (n.g) {
+ case 1:
+ return J(), ae;
+ case 3:
+ return J(), Kn;
+ default:
+ return n;
+ }
+ }
+ function xbe(n) {
+ var e, t, i;
+ return n.j == (J(), Kn) && (e = zLn(n), t = hu(e, Vn), i = hu(e, Gn), i || i && t);
+ }
+ function Lbe(n) {
+ var e, t;
+ return e = u(n.e && n.e(), 9), t = u(IW(e, e.length), 9), new ms(e, t, e.length);
+ }
+ function Nbe(n, e) {
+ le(e, rHn, 1), TQ(ire(new tj((Vv(), new GD(n, !1, !1, new BH()))))), ce(e);
+ }
+ function Y8(n, e) {
+ return qn(), yi(n) ? DX(n, Te(e)) : z0(n) ? TD(n, Y(e)) : G0(n) ? Kfe(n, sn(e)) : n.wd(e);
+ }
+ function TV(n, e) {
+ e.q = n, n.d = j.Math.max(n.d, e.r), n.b += e.d + (n.a.c.length == 0 ? 0 : n.c), W(n.a, e);
+ }
+ function B3(n, e) {
+ var t, i, r, c;
+ return r = n.c, t = n.c + n.b, c = n.d, i = n.d + n.a, e.a > r && e.a < t && e.b > c && e.b < i;
+ }
+ function pOn(n, e, t, i) {
+ I(n.Cb, 179) && (u(n.Cb, 179).tb = null), Oc(n, t), e && J6e(n, e), i && n.xk(!0);
+ }
+ function MV(n, e) {
+ var t;
+ t = u(e, 183), aa(t, "x", n.i), aa(t, "y", n.j), aa(t, OB, n.g), aa(t, IB, n.f);
+ }
+ function AV() {
+ AV = N, fJn = Vd(Ukn(Ze(Ze(new li(), (Vi(), Kc), (rr(), pS)), Tc, aS), Or), gS);
+ }
+ function vOn() {
+ vOn = N, dJn = Vd(Ukn(Ze(Ze(new li(), (Vi(), Kc), (rr(), pS)), Tc, aS), Or), gS);
+ }
+ function sT() {
+ sT = N, PK = new SO(Wh, 0), Won = new SO("POLAR_COORDINATE", 1), Uon = new SO("ID", 2);
+ }
+ function oT() {
+ oT = N, eon = new yO("EQUALLY", 0), cK = new yO(NM, 1), ton = new yO("NORTH_SOUTH", 2);
+ }
+ function mOn() {
+ mOn = N, qQn = Fe((Zw(), A(M(Jsn, 1), z, 260, 0, [hP, ey, ty, Xsn, Vsn, Wsn, Qsn, lP])));
+ }
+ function kOn() {
+ kOn = N, uXn = Fe((lM(), A(M(Ncn, 1), z, 270, 0, [n_, i_, ZR, u_, t_, e_, c_, r_])));
+ }
+ function yOn() {
+ yOn = N, FZn = Fe((y1(), A(M($Zn, 1), z, 277, 0, [Lfn, _i, oc, mv, Dr, Bt, Cp, yf])));
+ }
+ function jOn() {
+ jOn = N, Nne = Fe((a4(), A(M(nI, 1), z, 237, 0, [aH, YP, ZP, JP, lH, QP, VP, hH])));
+ }
+ function R3() {
+ R3 = N, pm = new ri("debugSVG", (qn(), !1)), mrn = new ri("overlapsExisted", !0);
+ }
+ function EOn(n, e) {
+ return ub(new _vn(n), new Kvn(e), new Hvn(e), new mln(), A(M(Nu, 1), z, 132, 0, []));
+ }
+ function Bbe() {
+ var n;
+ return mR || (mR = new Vmn(), n = new y$(""), Qre(n, (n3(), Uin)), dbe(mR, n)), mR;
+ }
+ function Rbe(n, e) {
+ var t;
+ for (pe(e); n.Ob(); )
+ if (t = n.Pb(), !IV(u(t, 10)))
+ return !1;
+ return !0;
+ }
+ function COn(n, e) {
+ var t;
+ return t = Vx(L3(), n), t ? (gr(e, (Xe(), kv), t), !0) : !1;
+ }
+ function rs(n, e) {
+ var t;
+ for (t = 0; t < e.j.c.length; t++)
+ u(q8(n, t), 21).Gc(u(q8(e, t), 14));
+ return n;
+ }
+ function _be(n, e) {
+ var t, i;
+ for (i = new E(e.b); i.a < i.c.c.length; )
+ t = u(y(i), 29), n.a[t.p] = h5e(t);
+ }
+ function n6(n, e) {
+ var t, i;
+ for (_n(e), i = n.vc().Kc(); i.Ob(); )
+ t = u(i.Pb(), 42), e.Od(t.cd(), t.dd());
+ }
+ function fT(n, e) {
+ var t;
+ I(e, 83) ? (u(n.c, 76).Xj(), t = u(e, 83), lbe(n, t)) : u(n.c, 76).Wb(e);
+ }
+ function ma(n) {
+ return I(n, 152) ? I2(u(n, 152)) : I(n, 131) ? u(n, 131).a : I(n, 54) ? new od(n) : new K0(n);
+ }
+ function Kbe(n, e) {
+ return e < n.b.gc() ? u(n.b.Xb(e), 10) : e == n.b.gc() ? n.a : u(un(n.e, e - n.b.gc() - 1), 10);
+ }
+ function TOn(n, e) {
+ n.a = Hi(n.a, 1), n.c = j.Math.min(n.c, e), n.b = j.Math.max(n.b, e), n.d = Hi(n.d, e);
+ }
+ function Hbe(n, e) {
+ var t;
+ le(e, "Edge and layer constraint edge reversal", 1), t = z7e(n), sCe(t), ce(e);
+ }
+ function MOn(n) {
+ var e;
+ n.d == null ? (++n.e, n.f = 0, xDn(null)) : (++n.e, e = n.d, n.d = null, n.f = 0, xDn(e));
+ }
+ function dl(n) {
+ var e;
+ return e = n.h, e == 0 ? n.l + n.m * J2 : e == Uh ? n.l + n.m * J2 - Fa : n;
+ }
+ function AOn(n) {
+ return X0(), n.A.Hc((Vu(), sw)) && !n.B.Hc((xu(), Py)) ? f$n(n) : null;
+ }
+ function qbe(n) {
+ if (_n(n), n.length == 0)
+ throw T(new Sf("Zero length BigInteger"));
+ tke(this, n);
+ }
+ function Nw(n) {
+ if (!n)
+ throw T(new $r("no calls to next() since the last call to remove()"));
+ }
+ function nu(n) {
+ return ik < n && n < Fa ? n < 0 ? j.Math.ceil(n) : j.Math.floor(n) : dl(f8e(n));
+ }
+ function Gbe(n, e) {
+ var t, i, r;
+ for (t = n.c.Ee(), r = e.Kc(); r.Ob(); )
+ i = r.Pb(), n.a.Od(t, i);
+ return n.b.Kb(t);
+ }
+ function et(n, e) {
+ var t, i, r;
+ if (t = n.Jg(), t != null && n.Mg())
+ for (i = 0, r = t.length; i < r; ++i)
+ t[i].ui(e);
+ }
+ function _3(n, e) {
+ var t, i;
+ for (t = n, i = qi(t).e; i; ) {
+ if (t = i, t == e)
+ return !0;
+ i = qi(t).e;
+ }
+ return !1;
+ }
+ function zbe(n, e, t) {
+ var i, r;
+ return i = n.a.f[e.p], r = n.a.f[t.p], i < r ? -1 : i == r ? 0 : 1;
+ }
+ function ka(n, e, t) {
+ var i, r;
+ return r = u(M5(n.d, e), 19), i = u(M5(n.b, t), 19), !r || !i ? null : D2(n, r.a, i.a);
+ }
+ function Ube(n, e) {
+ var t, i;
+ for (i = new ie(n); i.e != i.i.gc(); )
+ t = u(oe(i), 33), Jo(t, t.i + e.b, t.j + e.d);
+ }
+ function Wbe(n, e) {
+ var t, i;
+ for (i = new E(e); i.a < i.c.c.length; )
+ t = u(y(i), 70), W(n.d, t), i5e(n, t);
+ }
+ function Xbe(n, e) {
+ var t, i;
+ i = new X(), t = e;
+ do
+ i.c[i.c.length] = t, t = u(te(n.k, t), 17);
+ while (t);
+ return i;
+ }
+ function Rn(n, e) {
+ var t;
+ return n.Db & e ? (t = ux(n, e), t == -1 ? n.Eb : va(n.Eb)[t]) : null;
+ }
+ function Yr(n, e) {
+ var t, i;
+ return t = (i = new tq(), i), t.G = e, !n.rb && (n.rb = new Z0(n, Qo, n)), me(n.rb, t), t;
+ }
+ function ze(n, e) {
+ var t, i;
+ return t = (i = new fj(), i), t.G = e, !n.rb && (n.rb = new Z0(n, Qo, n)), me(n.rb, t), t;
+ }
+ function SV(n, e) {
+ switch (e) {
+ case 1:
+ return !!n.n && n.n.i != 0;
+ case 2:
+ return n.k != null;
+ }
+ return sX(n, e);
+ }
+ function SOn(n) {
+ switch (n.a.g) {
+ case 1:
+ return new Skn();
+ case 3:
+ return new MFn();
+ default:
+ return new W4n();
+ }
+ }
+ function hT(n) {
+ var e;
+ if (n.g > 1 || n.Ob())
+ return ++n.a, n.g = 0, e = n.i, n.Ob(), e;
+ throw T(new rc());
+ }
+ function Vbe(n) {
+ pyn();
+ var e;
+ return A7n(hK, n) || (e = new ngn(), e.a = n, wU(hK, n, e)), u(br(hK, n), 635);
+ }
+ function _s(n) {
+ var e, t, i, r;
+ return r = n, i = 0, r < 0 && (r += Fa, i = Uh), t = zt(r / J2), e = zt(r - t * J2), Nc(e, t, i);
+ }
+ function Z8(n) {
+ var e, t, i;
+ for (i = 0, t = new o2(n.a); t.a < t.c.a.length; )
+ e = G5(t), n.b.Hc(e) && ++i;
+ return i;
+ }
+ function Qbe(n) {
+ var e, t, i;
+ for (e = 1, i = n.Kc(); i.Ob(); )
+ t = i.Pb(), e = 31 * e + (t == null ? 0 : mt(t)), e = ~~e;
+ return e;
+ }
+ function Jbe(n, e) {
+ var t;
+ this.c = n, t = new X(), rJ(n, t, e, n.b, null, !1, null, !1), this.a = new Ii(t, 0);
+ }
+ function K3(n, e) {
+ this.b = n, this.e = e, this.d = e.j, this.f = (er(), u(n, 66).Oj()), this.k = _c(e.e.Tg(), n);
+ }
+ function ya(n, e, t) {
+ this.b = (_n(n), n), this.d = (_n(e), e), this.e = (_n(t), t), this.c = this.d + ("" + this.e);
+ }
+ function POn() {
+ this.a = u(cn((Go(), iS)), 19).a, this.c = K(Y(cn(rS))), this.b = K(Y(cn(FR)));
+ }
+ function IOn() {
+ IOn = N, hne = Fe((Eb(), A(M(lr, 1), z, 93, 0, [So, Yh, Po, Oo, yh, no, as, Io, Zs])));
+ }
+ function OOn() {
+ OOn = N, Wzn = Fe((dM(), A(M(wrn, 1), z, 250, 0, [brn, hrn, lrn, frn, ER, drn, arn, orn, srn])));
+ }
+ function qd() {
+ qd = N, Ok = new _j("UP", 0), Ik = new _j(hN, 1), MR = new _j(Y2, 2), AR = new _j(Z2, 3);
+ }
+ function PV() {
+ PV = N, mon = (aC(), kK), nYn = new In(Zen, mon), von = (gC(), yK), ZJn = new In(ntn, von);
+ }
+ function H3() {
+ H3 = N, m_ = new gO("ONE_SIDED", 0), k_ = new gO("TWO_SIDED", 1), Gk = new gO("OFF", 2);
+ }
+ function DOn(n) {
+ n.r = new hi(), n.w = new hi(), n.t = new X(), n.i = new X(), n.d = new hi(), n.a = new d2(), n.c = new we();
+ }
+ function n7(n) {
+ this.n = new X(), this.e = new Ct(), this.j = new Ct(), this.k = new X(), this.f = new X(), this.p = n;
+ }
+ function $On(n, e) {
+ n.c && (LBn(n, e, !0), Rt(new $n(null, new xn(e, 16)), new o6n(n))), LBn(n, e, !1);
+ }
+ function Ybe(n, e, t) {
+ return n == (Kd(), aP) ? new ywn() : Fu(e, 1) != 0 ? new yG(t.length) : new i8n(t.length);
+ }
+ function Pr(n, e) {
+ var t;
+ return e && (t = e.Ve(), t.dc() || (n.q ? Z5(n.q, t) : n.q = new zkn(t))), n;
+ }
+ function FOn(n, e) {
+ var t;
+ return t = n.a.get(e), t === void 0 ? ++n.d : (jue(n.a, e), --n.c, cC(n.b)), t;
+ }
+ function Zbe(n, e) {
+ var t, i, r;
+ return t = e.p - n.p, t == 0 ? (i = n.f.a * n.f.b, r = e.f.a * e.f.b, ni(i, r)) : t;
+ }
+ function nwe(n, e) {
+ var t, i;
+ return t = n.f.c.length, i = e.f.c.length, t < i ? -1 : t == i ? 0 : 1;
+ }
+ function ewe(n) {
+ return n.b.c.length != 0 && u(un(n.b, 0), 70).a ? u(un(n.b, 0), 70).a : WD(n);
+ }
+ function twe(n) {
+ var e;
+ if (n) {
+ if (e = n, e.dc())
+ throw T(new rc());
+ return e.Xb(e.gc() - 1);
+ }
+ return xMn(n.Kc());
+ }
+ function xOn(n) {
+ var e;
+ return hc(n, 0) < 0 && (n = XU(n)), e = ge(rl(n, 32)), 64 - (e != 0 ? x7(e) : x7(ge(n)) + 32);
+ }
+ function IV(n) {
+ var e;
+ return e = u(k(n, (G(), ec)), 61), n.k == (Qn(), Vt) && (e == (J(), Gn) || e == Vn);
+ }
+ function iwe(n, e, t) {
+ var i, r;
+ r = u(k(n, (nn(), Mr)), 74), r && (i = new ou(), vF(i, 0, r), hb(i, t), Xi(e, i));
+ }
+ function lT(n, e, t) {
+ var i, r, c, o;
+ o = qi(n), i = o.d, r = o.c, c = n.n, e && (c.a = c.a - i.b - r.a), t && (c.b = c.b - i.d - r.b);
+ }
+ function rwe(n, e) {
+ var t, i;
+ return t = n.j, i = e.j, t != i ? t.g - i.g : n.p == e.p ? 0 : t == (J(), Kn) ? n.p - e.p : e.p - n.p;
+ }
+ function cwe(n) {
+ var e, t;
+ for (ICe(n), t = new E(n.d); t.a < t.c.c.length; )
+ e = u(y(t), 101), e.i && R5e(e);
+ }
+ function e6(n, e, t, i, r) {
+ Mt(n.c[e.g], t.g, i), Mt(n.c[t.g], e.g, i), Mt(n.b[e.g], t.g, r), Mt(n.b[t.g], e.g, r);
+ }
+ function uwe(n, e, t, i) {
+ u(t.b, 65), u(t.b, 65), u(i.b, 65), u(i.b, 65), u(i.b, 65), Jc(i.a, new NU(n, e, i));
+ }
+ function swe(n, e) {
+ n.d == (sr(), Ys) || n.d == Jh ? u(e.a, 57).c.Fc(u(e.b, 57)) : u(e.b, 57).c.Fc(u(e.a, 57));
+ }
+ function tF(n, e, t, i) {
+ return t == 1 ? (!n.n && (n.n = new V(Rr, n, 1, 7)), Gi(n.n, e, i)) : QJ(n, e, t, i);
+ }
+ function e7(n, e) {
+ var t, i;
+ return i = (t = new CI(), t), Oc(i, e), me((!n.A && (n.A = new fu(Gc, n, 7)), n.A), i), i;
+ }
+ function owe(n, e, t) {
+ var i, r, c, o;
+ return c = null, o = e, r = xd(o, FB), i = new dkn(n, t), c = (A4e(i.a, i.b, r), r), c;
+ }
+ function iF(n) {
+ var e;
+ return (!n.a || !(n.Bb & 1) && n.a.kh()) && (e = Hs(n), I(e, 148) && (n.a = u(e, 148))), n.a;
+ }
+ function t7(n, e) {
+ var t, i;
+ for (_n(e), i = e.Kc(); i.Ob(); )
+ if (t = i.Pb(), !n.Hc(t))
+ return !1;
+ return !0;
+ }
+ function fwe(n, e) {
+ var t, i, r;
+ return t = n.l + e.l, i = n.m + e.m + (t >> 22), r = n.h + e.h + (i >> 22), Nc(t & Lu, i & Lu, r & Uh);
+ }
+ function LOn(n, e) {
+ var t, i, r;
+ return t = n.l - e.l, i = n.m - e.m + (t >> 22), r = n.h - e.h + (i >> 22), Nc(t & Lu, i & Lu, r & Uh);
+ }
+ function i7(n) {
+ var e;
+ return n < 128 ? (e = (JEn(), yin)[n], !e && (e = yin[n] = new wq(n)), e) : new wq(n);
+ }
+ function jt(n) {
+ var e;
+ return I(n, 78) ? n : (e = n && n.__java$exception, e || (e = new TDn(n), Hmn(e)), e);
+ }
+ function r7(n) {
+ if (I(n, 186))
+ return u(n, 118);
+ if (n)
+ return null;
+ throw T(new c2(Oqn));
+ }
+ function NOn(n, e) {
+ if (e == null)
+ return !1;
+ for (; n.a != n.b; )
+ if (tt(e, vT(n)))
+ return !0;
+ return !1;
+ }
+ function OV(n) {
+ return n.a.Ob() ? !0 : n.a != n.d ? !1 : (n.a = new lX(n.e.f), n.a.Ob());
+ }
+ function Zt(n, e) {
+ var t, i;
+ return t = e.Pc(), i = t.length, i == 0 ? !1 : (GU(n.c, n.c.length, t), !0);
+ }
+ function hwe(n, e, t) {
+ var i, r;
+ for (r = e.vc().Kc(); r.Ob(); )
+ i = u(r.Pb(), 42), n.yc(i.cd(), i.dd(), t);
+ return n;
+ }
+ function BOn(n, e) {
+ var t, i;
+ for (i = new E(n.b); i.a < i.c.c.length; )
+ t = u(y(i), 70), H(t, (G(), pp), e);
+ }
+ function lwe(n, e, t) {
+ var i, r;
+ for (r = new E(n.b); r.a < r.c.c.length; )
+ i = u(y(r), 33), Jo(i, i.i + e, i.j + t);
+ }
+ function ROn(n, e) {
+ if (!n)
+ throw T(new Hn(T6("value already present: %s", A(M(Zn, 1), rn, 1, 5, [e]))));
+ }
+ function _On(n, e) {
+ return !n || !e || n == e ? !1 : j$n(n.d.c, e.d.c + e.d.b) && j$n(e.d.c, n.d.c + n.d.b);
+ }
+ function awe() {
+ return CC(), pf ? new y$(null) : qLn(Bbe(), "com.google.common.base.Strings");
+ }
+ function KOn(n, e) {
+ var t;
+ return t = nh(e.a.gc()), Rt(qC(new $n(null, new xn(e, 1)), n.i), new ukn(n, t)), t;
+ }
+ function HOn(n) {
+ var e, t;
+ return t = (e = new CI(), e), Oc(t, "T"), me((!n.d && (n.d = new fu(Gc, n, 11)), n.d), t), t;
+ }
+ function DV(n) {
+ var e, t, i, r;
+ for (e = 1, t = 0, r = n.gc(); t < r; ++t)
+ i = n.ki(t), e = 31 * e + (i == null ? 0 : mt(i));
+ return e;
+ }
+ function qOn(n, e, t, i) {
+ var r;
+ return D8(e, n.e.Hd().gc()), D8(t, n.c.Hd().gc()), r = n.a[e][t], Mt(n.a[e], t, i), r;
+ }
+ function A(n, e, t, i, r) {
+ return r.gm = n, r.hm = e, r.im = Xg, r.__elementTypeId$ = t, r.__elementTypeCategory$ = i, r;
+ }
+ function dwe(n, e, t, i, r) {
+ return eg(), j.Math.min(ZRn(n, e, t, i, r), ZRn(t, i, n, e, vE(new fn(r.a, r.b))));
+ }
+ function aT() {
+ aT = N, QR = new Hj(Wh, 0), TS = new Hj(sHn, 1), MS = new Hj(oHn, 2), Hk = new Hj("BOTH", 3);
+ }
+ function ff() {
+ ff = N, lp = new qj(P4, 0), Z4 = new qj(Y2, 1), nv = new qj(Z2, 2), JR = new qj("TOP", 3);
+ }
+ function q3() {
+ q3 = N, w0 = new Kj("Q1", 0), qb = new Kj("Q4", 1), Hb = new Kj("Q2", 2), kg = new Kj("Q3", 3);
+ }
+ function dT() {
+ dT = N, fK = new CO("OFF", 0), gv = new CO("SINGLE_EDGE", 1), tw = new CO("MULTI_EDGE", 2);
+ }
+ function c7() {
+ c7 = N, DP = new fz("MINIMUM_SPANNING_TREE", 0), $fn = new fz("MAXIMUM_SPANNING_TREE", 1);
+ }
+ function L2() {
+ L2 = N, SZn = new Qgn(), AZn = new Vgn();
+ }
+ function $V(n) {
+ var e, t, i;
+ for (e = new Ct(), i = _e(n.d, 0); i.b != i.d.c; )
+ t = u(Re(i), 188), Ke(e, t.c);
+ return e;
+ }
+ function rF(n) {
+ var e, t, i, r;
+ for (r = new X(), i = n.Kc(); i.Ob(); )
+ t = u(i.Pb(), 33), e = Tb(t), Zt(r, e);
+ return r;
+ }
+ function bwe(n) {
+ var e;
+ t0(n, !0), e = j1, ai(n, (nn(), dv)) && (e += u(k(n, dv), 19).a), H(n, dv, Q(e));
+ }
+ function GOn(n, e, t) {
+ var i;
+ Eu(n.a), Jc(t.i, new R6n(n)), i = new sE(u(te(n.a, e.b), 65)), O$n(n, i, e), t.f = i;
+ }
+ function wwe(n, e) {
+ var t, i;
+ return t = n.c, i = e.e[n.p], i < t.a.c.length - 1 ? u(un(t.a, i + 1), 10) : null;
+ }
+ function gwe(n, e) {
+ var t, i;
+ for (tC(e, "predicate"), i = 0; n.Ob(); i++)
+ if (t = n.Pb(), e.Lb(t))
+ return i;
+ return -1;
+ }
+ function N2(n, e) {
+ var t, i;
+ if (i = 0, n < 64 && n <= e)
+ for (e = e < 64 ? e : 63, t = n; t <= e; t++)
+ i = rf(i, Ph(1, t));
+ return i;
+ }
+ function FV(n) {
+ Pn();
+ var e, t, i;
+ for (i = 0, t = n.Kc(); t.Ob(); )
+ e = t.Pb(), i = i + (e != null ? mt(e) : 0), i = i | 0;
+ return i;
+ }
+ function xV(n) {
+ var e, t;
+ return t = (dd(), e = new Vy(), e), n && me((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a), t), t;
+ }
+ function pwe(n) {
+ var e;
+ return e = new e1(), e.a = n, e.b = Cwe(n), e.c = F(tn, q, 2, 2, 6, 1), e.c[0] = cOn(n), e.c[1] = cOn(n), e;
+ }
+ function LV(n, e) {
+ switch (e) {
+ case 0:
+ !n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), n.o.c.$b();
+ return;
+ }
+ Cx(n, e);
+ }
+ function u7(n, e, t) {
+ switch (t.g) {
+ case 2:
+ n.b = e;
+ break;
+ case 1:
+ n.c = e;
+ break;
+ case 4:
+ n.d = e;
+ break;
+ case 3:
+ n.a = e;
+ }
+ }
+ function zOn(n) {
+ switch (n.g) {
+ case 1:
+ return _l;
+ case 2:
+ return kh;
+ case 3:
+ return jy;
+ default:
+ return Ey;
+ }
+ }
+ function vwe(n) {
+ switch (u(k(n, (nn(), Hc)), 163).g) {
+ case 2:
+ case 4:
+ return !0;
+ default:
+ return !1;
+ }
+ }
+ function UOn() {
+ UOn = N, mXn = Fe((or(), A(M(v_, 1), z, 256, 0, [NS, Ds, Tm, BS, sv, Mg, Mm, cv, uv, RS])));
+ }
+ function WOn() {
+ WOn = N, kne = Fe((xu(), A(M(Uhn, 1), z, 259, 0, [Tv, Py, GP, f9, zP, WP, UP, sH, Sy])));
+ }
+ function XOn() {
+ XOn = N, bYn = Ze(Vd(Vd(Dj(Ze(new li(), (r4(), qm), (k6(), pP)), uy), dK), bK), Gm, wK);
+ }
+ function ja() {
+ ja = N, l_ = new wO(Wh, 0), rv = new wO("INCOMING_ONLY", 1), Tg = new wO("OUTGOING_ONLY", 2);
+ }
+ function cF() {
+ cF = N, dR = { boolean: ere, number: hie, string: lie, object: sLn, function: sLn, undefined: Gte };
+ }
+ function VOn(n, e) {
+ TE(n >= 0, "Negative initial capacity"), TE(e >= 0, "Non-positive load factor"), Eu(this);
+ }
+ function uF(n, e, t) {
+ return n >= 128 ? !1 : n < 64 ? b5(ui(Ph(1, n), t), 0) : b5(ui(Ph(1, n - 64), e), 0);
+ }
+ function mwe(n, e) {
+ return !n || !e || n == e ? !1 : Ud(n.b.c, e.b.c + e.b.b) < 0 && Ud(e.b.c, n.b.c + n.b.b) < 0;
+ }
+ function QOn(n) {
+ var e, t, i;
+ return t = n.n, i = n.o, e = n.d, new ks(t.a - e.b, t.b - e.d, i.a + (e.b + e.c), i.b + (e.d + e.a));
+ }
+ function kwe(n) {
+ var e, t, i, r;
+ for (t = n.a, i = 0, r = t.length; i < r; ++i)
+ e = t[i], tDn(n, e, (J(), ae)), tDn(n, e, Kn);
+ }
+ function ywe(n) {
+ var e, t, i, r;
+ for (e = (n.j == null && (n.j = (m3(), r = aR.ce(n), $4e(r))), n.j), t = 0, i = e.length; t < i; ++t)
+ ;
+ }
+ function G3(n) {
+ var e, t, i;
+ return e = ~n.l + 1 & Lu, t = ~n.m + (e == 0 ? 1 : 0) & Lu, i = ~n.h + (e == 0 && t == 0 ? 1 : 0) & Uh, Nc(e, t, i);
+ }
+ function jwe(n, e) {
+ var t, i;
+ return t = u(u(te(n.g, e.a), 46).a, 65), i = u(u(te(n.g, e.b), 46).a, 65), oRn(t, i);
+ }
+ function NV(n, e, t) {
+ var i;
+ if (i = n.gc(), e > i)
+ throw T(new Q0(e, i));
+ return n.hi() && (t = dMn(n, t)), n.Vh(e, t);
+ }
+ function s7(n, e, t) {
+ return t == null ? (!n.q && (n.q = new we()), O2(n.q, e)) : (!n.q && (n.q = new we()), it(n.q, e, t)), n;
+ }
+ function H(n, e, t) {
+ return t == null ? (!n.q && (n.q = new we()), O2(n.q, e)) : (!n.q && (n.q = new we()), it(n.q, e, t)), n;
+ }
+ function JOn(n) {
+ var e, t;
+ return t = new TC(), Pr(t, n), H(t, (al(), hp), n), e = new we(), Cye(n, t, e), QEe(n, t, e), t;
+ }
+ function Ewe(n) {
+ eg();
+ var e, t, i;
+ for (t = F(di, q, 8, 2, 0, 1), i = 0, e = 0; e < 2; e++)
+ i += 0.5, t[e] = r3e(i, n);
+ return t;
+ }
+ function YOn(n, e) {
+ var t, i, r, c;
+ for (t = !1, i = n.a[e].length, c = 0; c < i - 1; c++)
+ r = c + 1, t = t | K2e(n, e, c, r);
+ return t;
+ }
+ function z3(n, e, t, i, r) {
+ var c, o;
+ for (o = t; o <= r; o++)
+ for (c = e; c <= i; c++)
+ zw(n, c, o) || wM(n, c, o, !0, !1);
+ }
+ function ZOn(n, e) {
+ this.b = n, Ew.call(this, (u(D(R((sl(), Nn).o), 10), 18), e.i), e.g), this.a = (eF(), gH);
+ }
+ function BV(n, e) {
+ this.c = n, this.d = e, this.b = this.d / this.c.c.Hd().gc() | 0, this.a = this.d % this.c.c.Hd().gc();
+ }
+ function RV() {
+ this.o = null, this.k = null, this.j = null, this.d = null, this.b = null, this.n = null, this.a = null;
+ }
+ function _V(n, e, t) {
+ this.q = new j.Date(), this.q.setFullYear(n + Cl, e, t), this.q.setHours(0, 0, 0, 0), S6(this, 0);
+ }
+ function Bh() {
+ Bh = N, Ll = new mO(Wh, 0), Ysn = new mO("NODES_AND_EDGES", 1), tK = new mO("PREFER_EDGES", 2);
+ }
+ function Cwe(n) {
+ var e;
+ return n == 0 ? "Etc/GMT" : (n < 0 ? (n = -n, e = "Etc/GMT-") : e = "Etc/GMT+", e + KPn(n));
+ }
+ function KV(n) {
+ var e;
+ if (n < 0)
+ return Bi;
+ if (n == 0)
+ return 0;
+ for (e = L6; !(e & n); e >>= 1)
+ ;
+ return e;
+ }
+ function nDn(n) {
+ var e, t;
+ return t = x7(n.h), t == 32 ? (e = x7(n.m), e == 32 ? x7(n.l) + 32 : e + 20 - 10) : t - 12;
+ }
+ function t6(n) {
+ var e;
+ return e = n.a[n.b], e == null ? null : (Mt(n.a, n.b, null), n.b = n.b + 1 & n.a.length - 1, e);
+ }
+ function eDn(n) {
+ var e, t;
+ return e = n.t - n.k[n.o.p] * n.d + n.j[n.o.p] > n.f, t = n.u + n.e[n.o.p] * n.d > n.f * n.s * n.d, e || t;
+ }
+ function bT(n, e, t) {
+ var i, r;
+ return i = new I$(e, t), r = new dI(), n.b = UNn(n, n.b, i, r), r.b || ++n.c, n.b.b = !1, r.d;
+ }
+ function tDn(n, e, t) {
+ var i, r, c, o;
+ for (o = c6(e, t), c = 0, r = o.Kc(); r.Ob(); )
+ i = u(r.Pb(), 11), it(n.c, i, Q(c++));
+ }
+ function bl(n) {
+ var e, t;
+ for (t = new E(n.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 81), e.g.c = -e.g.c - e.g.b;
+ oM(n);
+ }
+ function wl(n) {
+ var e, t;
+ for (t = new E(n.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 57), e.d.c = -e.d.c - e.d.b;
+ GY(n);
+ }
+ function HV(n) {
+ var e;
+ return (!n.c || !(n.Bb & 1) && n.c.Db & 64) && (e = Hs(n), I(e, 88) && (n.c = u(e, 26))), n.c;
+ }
+ function sF(n) {
+ var e, t, i;
+ e = ~n.l + 1 & Lu, t = ~n.m + (e == 0 ? 1 : 0) & Lu, i = ~n.h + (e == 0 && t == 0 ? 1 : 0) & Uh, n.l = e, n.m = t, n.h = i;
+ }
+ function Gr(n) {
+ var e, t, i, r, c;
+ for (e = new Li(), i = n, r = 0, c = i.length; r < c; ++r)
+ t = i[r], e.a += t.a, e.b += t.b;
+ return e;
+ }
+ function qV(n, e) {
+ Pn();
+ var t, i, r, c, o;
+ for (o = !1, i = e, r = 0, c = i.length; r < c; ++r)
+ t = i[r], o = o | n.Fc(t);
+ return o;
+ }
+ function Bw(n) {
+ eg();
+ var e, t;
+ for (t = -17976931348623157e292, e = 0; e < n.length; e++)
+ n[e] > t && (t = n[e]);
+ return t;
+ }
+ function iDn(n, e, t) {
+ var i;
+ return i = new X(), XY(n, e, i, (J(), Vn), !0, !1), XY(n, t, i, Gn, !1, !1), i;
+ }
+ function oF(n, e, t) {
+ var i, r, c, o;
+ return c = null, o = e, r = xd(o, "labels"), i = new Ekn(n, t), c = (Hme(i.a, i.b, r), r), c;
+ }
+ function Twe(n, e, t, i) {
+ var r;
+ return r = xY(n, e, t, i), !r && (r = Mge(n, t, i), r && !rg(n, e, r)) ? null : r;
+ }
+ function Mwe(n, e, t, i) {
+ var r;
+ return r = LY(n, e, t, i), !r && (r = TF(n, t, i), r && !rg(n, e, r)) ? null : r;
+ }
+ function rDn(n, e) {
+ var t;
+ for (t = 0; t < n.a.a.length; t++)
+ if (!u(nCn(n.a, t), 169).Lb(e))
+ return !1;
+ return !0;
+ }
+ function Awe(n, e, t) {
+ if (pe(e), t.Ob())
+ for (bz(e, UCn(t.Pb())); t.Ob(); )
+ bz(e, n.a), bz(e, UCn(t.Pb()));
+ return e;
+ }
+ function GV(n) {
+ Pn();
+ var e, t, i;
+ for (i = 1, t = n.Kc(); t.Ob(); )
+ e = t.Pb(), i = 31 * i + (e != null ? mt(e) : 0), i = i | 0;
+ return i;
+ }
+ function Swe(n, e, t, i, r) {
+ var c;
+ return c = SY(n, e), t && sF(c), r && (n = h3e(n, e), i ? Pl = G3(n) : Pl = Nc(n.l, n.m, n.h)), c;
+ }
+ function Pwe(n, e) {
+ var t;
+ try {
+ e.Vd();
+ } catch (i) {
+ if (i = jt(i), I(i, 78))
+ t = i, n.c[n.c.length] = t;
+ else
+ throw T(i);
+ }
+ }
+ function cDn(n, e, t) {
+ var i, r;
+ return I(e, 144) && t ? (i = u(e, 144), r = t, n.a[i.b][r.b] + n.a[r.b][i.b]) : 0;
+ }
+ function zV(n, e) {
+ switch (e) {
+ case 7:
+ return !!n.e && n.e.i != 0;
+ case 8:
+ return !!n.d && n.d.i != 0;
+ }
+ return PQ(n, e);
+ }
+ function Iwe(n, e) {
+ switch (e.g) {
+ case 0:
+ I(n.b, 631) || (n.b = new POn());
+ break;
+ case 1:
+ I(n.b, 632) || (n.b = new IEn());
+ }
+ }
+ function Owe(n, e) {
+ for (; n.g == null && !n.c ? ZW(n) : n.g == null || n.i != 0 && u(n.g[n.i - 1], 47).Ob(); )
+ yre(e, cM(n));
+ }
+ function uDn(n, e, t) {
+ n.g = Tx(n, e, (J(), Vn), n.b), n.d = Tx(n, t, Vn, n.b), !(n.g.c == 0 || n.d.c == 0) && Txn(n);
+ }
+ function sDn(n, e, t) {
+ n.g = Tx(n, e, (J(), Gn), n.j), n.d = Tx(n, t, Gn, n.j), !(n.g.c == 0 || n.d.c == 0) && Txn(n);
+ }
+ function Dwe(n, e, t) {
+ return !Wv(gt(new $n(null, new xn(n.c, 16)), new Fv(new okn(e, t)))).sd((ua(), X4));
+ }
+ function fF(n) {
+ var e;
+ return ol(n), e = new bI(), n.a.sd(e) ? (r3(), new dj(_n(e.a))) : (r3(), r3(), UA);
+ }
+ function UV(n) {
+ var e;
+ return n.b <= 0 ? !1 : (e = Pf("MLydhHmsSDkK", eu(Di(n.c, 0))), e > 1 || e >= 0 && n.b < 3);
+ }
+ function o7(n) {
+ var e, t, i;
+ for (e = new ou(), i = _e(n, 0); i.b != i.d.c; )
+ t = u(Re(i), 8), u3(e, 0, new kr(t));
+ return e;
+ }
+ function Ea(n) {
+ var e, t;
+ for (t = new E(n.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 81), e.f.$b();
+ uie(n.b, n), $Nn(n);
+ }
+ function mt(n) {
+ return yi(n) ? m1(n) : z0(n) ? t3(n) : G0(n) ? (_n(n), n ? 1231 : 1237) : bW(n) ? n.Hb() : fW(n) ? kd(n) : WW(n);
+ }
+ function Du(n) {
+ return yi(n) ? tn : z0(n) ? Si : G0(n) ? oi : bW(n) || fW(n) ? n.gm : n.gm || Array.isArray(n) && M(wzn, 1) || wzn;
+ }
+ function oDn(n) {
+ switch (n.g) {
+ case 0:
+ return new Xgn();
+ default:
+ throw T(new Hn(bA + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function fDn(n) {
+ switch (n.g) {
+ case 0:
+ return new Wgn();
+ default:
+ throw T(new Hn(bA + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function WV(n, e, t) {
+ switch (e) {
+ case 0:
+ !n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), fT(n.o, t);
+ return;
+ }
+ Px(n, e, t);
+ }
+ function hF(n, e, t) {
+ this.g = n, this.e = new Li(), this.f = new Li(), this.d = new Ct(), this.b = new Ct(), this.a = e, this.c = t;
+ }
+ function lF(n, e, t, i) {
+ this.b = new X(), this.n = new X(), this.i = i, this.j = t, this.s = n, this.t = e, this.r = 0, this.d = 0;
+ }
+ function Ca(n) {
+ this.e = n, this.d = new yX(this.e.g), this.a = this.d, this.b = OV(this), this.$modCount = n.$modCount;
+ }
+ function $we(n) {
+ for (; !n.d || !n.d.Ob(); )
+ if (n.b && !Hv(n.b))
+ n.d = u(y2(n.b), 47);
+ else
+ return null;
+ return n.d;
+ }
+ function Fwe(n) {
+ return W(n.c, (L2(), SZn)), iV(n.a, K(Y(cn((xF(), uP))))) ? new A2n() : new z6n(n);
+ }
+ function XV(n) {
+ switch (n.g) {
+ case 1:
+ return AHn;
+ default:
+ case 2:
+ return 0;
+ case 3:
+ return kN;
+ case 4:
+ return SHn;
+ }
+ }
+ function xwe() {
+ Je();
+ var n;
+ return jH || (n = Gce(jl("M", !0)), n = LE(jl("M", !1), n), jH = n, jH);
+ }
+ function VV(n, e) {
+ var t, i, r;
+ for (r = n.b; r; ) {
+ if (t = n.a.ue(e, r.d), t == 0)
+ return r;
+ i = t < 0 ? 0 : 1, r = r.a[i];
+ }
+ return null;
+ }
+ function Lwe(n, e, t) {
+ var i, r;
+ i = (qn(), !!gz(t)), r = u(e.xc(i), 15), r || (r = new X(), e.zc(i, r)), r.Fc(t);
+ }
+ function Nwe(n, e) {
+ var t, i;
+ return t = u(hn(n, (Bx(), fy)), 19).a, i = u(hn(e, fy), 19).a, t == i || t < i ? -1 : t > i ? 1 : 0;
+ }
+ function QV(n, e) {
+ return SNn(n, e) ? (Tn(n.b, u(k(e, (G(), zb)), 21), e), Ke(n.a, e), !0) : !1;
+ }
+ function Bwe(n) {
+ var e, t;
+ e = u(k(n, (G(), Mu)), 10), e && (t = e.c, Vc(t.a, e), t.a.c.length == 0 && Vc(qi(e).b, t));
+ }
+ function hDn(n) {
+ return pf ? F(Fzn, aKn, 572, 0, 0, 1) : u(lf(n.a, F(Fzn, aKn, 572, n.a.c.length, 0, 1)), 842);
+ }
+ function Rwe(n, e, t, i) {
+ return QE(), new GI(A(M(qa, 1), OM, 42, 0, [(ex(n, e), new wd(n, e)), (ex(t, i), new wd(t, i))]));
+ }
+ function Rw(n, e, t) {
+ var i, r;
+ return r = (i = new RI(), i), wr(r, e, t), me((!n.q && (n.q = new V(ro, n, 11, 10)), n.q), r), r;
+ }
+ function aF(n) {
+ var e, t, i, r;
+ for (r = lre(Fne, n), t = r.length, i = F(tn, q, 2, t, 6, 1), e = 0; e < t; ++e)
+ i[e] = r[e];
+ return i;
+ }
+ function _w(n, e) {
+ var t, i, r, c, o;
+ for (i = e, r = 0, c = i.length; r < c; ++r)
+ t = i[r], o = new YCn(n), t.Qe(o), qye(o);
+ Eu(n.f);
+ }
+ function dF(n, e) {
+ var t;
+ return e === n ? !0 : I(e, 224) ? (t = u(e, 224), tt(n.Zb(), t.Zb())) : !1;
+ }
+ function JV(n, e) {
+ var t;
+ e * 2 + 1 >= n.b.c.length || (JV(n, 2 * e + 1), t = 2 * e + 2, t < n.b.c.length && JV(n, t), hLn(n, e));
+ }
+ function lDn(n, e, t) {
+ var i, r;
+ this.g = n, this.c = e, this.a = this, this.d = this, r = WIn(t), i = F(bzn, nk, 330, r, 0, 1), this.b = i;
+ }
+ function YV(n, e, t) {
+ var i;
+ for (i = t - 1; i >= 0 && n[i] === e[i]; i--)
+ ;
+ return i < 0 ? 0 : cO(ui(n[i], fr), ui(e[i], fr)) ? -1 : 1;
+ }
+ function _we(n, e) {
+ var t, i;
+ for (i = _e(n, 0); i.b != i.d.c; )
+ t = u(Re(i), 214), t.e.length > 0 && (e.td(t), t.i && Fge(t));
+ }
+ function bF(n, e) {
+ var t, i;
+ return i = u(Rn(n.a, 4), 126), t = F(bH, qB, 415, e, 0, 1), i != null && pc(i, 0, t, 0, i.length), t;
+ }
+ function aDn(n, e) {
+ var t;
+ return t = new zx((n.f & 256) != 0, n.i, n.a, n.d, (n.f & 16) != 0, n.j, n.g, e), n.e != null || (t.c = n), t;
+ }
+ function Kwe(n, e) {
+ var t, i;
+ for (i = n.Zb().Cc().Kc(); i.Ob(); )
+ if (t = u(i.Pb(), 14), t.Hc(e))
+ return !0;
+ return !1;
+ }
+ function wF(n, e, t, i, r) {
+ var c, o;
+ for (o = t; o <= r; o++)
+ for (c = e; c <= i; c++)
+ if (zw(n, c, o))
+ return !0;
+ return !1;
+ }
+ function dDn(n, e, t) {
+ var i, r, c, o;
+ for (_n(t), o = !1, c = n.Zc(e), r = t.Kc(); r.Ob(); )
+ i = r.Pb(), c.Rb(i), o = !0;
+ return o;
+ }
+ function Hwe(n, e) {
+ var t;
+ return n === e ? !0 : I(e, 83) ? (t = u(e, 83), ZJ(Cd(n), t.vc())) : !1;
+ }
+ function bDn(n, e, t) {
+ var i, r;
+ for (r = t.Kc(); r.Ob(); )
+ if (i = u(r.Pb(), 42), n.re(e, i.dd()))
+ return !0;
+ return !1;
+ }
+ function wDn(n, e, t) {
+ return n.d[e.p][t.p] || (Bpe(n, e, t), n.d[e.p][t.p] = !0, n.d[t.p][e.p] = !0), n.a[e.p][t.p];
+ }
+ function U3(n, e) {
+ if (!n.ai() && e == null)
+ throw T(new Hn("The 'no null' constraint is violated"));
+ return e;
+ }
+ function W3(n, e) {
+ n.D == null && n.B != null && (n.D = n.B, n.B = null), W$(n, e == null ? null : (_n(e), e)), n.C && n.yk(null);
+ }
+ function qwe(n, e) {
+ var t;
+ return !n || n == e || !ai(e, (G(), k0)) ? !1 : (t = u(k(e, (G(), k0)), 10), t != n);
+ }
+ function gF(n) {
+ switch (n.i) {
+ case 2:
+ return !0;
+ case 1:
+ return !1;
+ case -1:
+ ++n.c;
+ default:
+ return n.pl();
+ }
+ }
+ function gDn(n) {
+ switch (n.i) {
+ case -2:
+ return !0;
+ case -1:
+ return !1;
+ case 1:
+ --n.c;
+ default:
+ return n.ql();
+ }
+ }
+ function pDn(n) {
+ uMn.call(this, "The given string does not match the expected format for individual spacings.", n);
+ }
+ function Xu() {
+ Xu = N, ws = new Jj("ELK", 0), Yhn = new Jj("JSON", 1), Jhn = new Jj("DOT", 2), Zhn = new Jj("SVG", 3);
+ }
+ function f7() {
+ f7 = N, CP = new AO(Wh, 0), Don = new AO("RADIAL_COMPACTION", 1), $on = new AO("WEDGE_COMPACTION", 2);
+ }
+ function hf() {
+ hf = N, Win = new uO("CONCURRENT", 0), hs = new uO("IDENTITY_FINISH", 1), _b = new uO("UNORDERED", 2);
+ }
+ function pF() {
+ pF = N, jrn = (Aj(), SR), yrn = new In(pnn, jrn), DUn = new kt(vnn), $Un = new kt(mnn), FUn = new kt(knn);
+ }
+ function X3() {
+ X3 = N, xcn = new E0n(), Lcn = new C0n(), UWn = new T0n(), zWn = new M0n(), GWn = new A0n(), Fcn = (_n(GWn), new sln());
+ }
+ function V3() {
+ V3 = N, sK = new jO("CONSERVATIVE", 0), con = new jO("CONSERVATIVE_SOFT", 1), Rm = new jO("SLOPPY", 2);
+ }
+ function wT() {
+ wT = N, _hn = new md(15), une = new tr((Xe(), ed), _hn), t9 = Mp, Lhn = qZn, Nhn = nd, Rhn = Kg, Bhn = BP;
+ }
+ function vF(n, e, t) {
+ var i, r, c;
+ for (i = new Ct(), c = _e(t, 0); c.b != c.d.c; )
+ r = u(Re(c), 8), Ke(i, new kr(r));
+ dDn(n, e, i);
+ }
+ function Gwe(n) {
+ var e, t, i;
+ for (e = 0, i = F(di, q, 8, n.b, 0, 1), t = _e(n, 0); t.b != t.d.c; )
+ i[e++] = u(Re(t), 8);
+ return i;
+ }
+ function ZV(n) {
+ var e;
+ return e = (!n.a && (n.a = new V(n1, n, 9, 5)), n.a), e.i != 0 ? ore(u(D(e, 0), 678)) : null;
+ }
+ function zwe(n, e) {
+ var t;
+ return t = Hi(n, e), cO(h$(n, e), 0) | Cre(h$(n, t), 0) ? t : Hi(IM, h$(Y0(t, 63), 1));
+ }
+ function Uwe(n, e) {
+ var t;
+ t = cn((xF(), uP)) != null && e.wg() != null ? K(Y(e.wg())) / K(Y(cn(uP))) : 1, it(n.b, e, t);
+ }
+ function Wwe(n, e) {
+ var t, i;
+ return t = u(n.d.Bc(e), 14), t ? (i = n.e.hc(), i.Gc(t), n.e.d -= t.gc(), t.$b(), i) : null;
+ }
+ function nQ(n, e) {
+ var t, i;
+ if (i = n.c[e], i != 0)
+ for (n.c[e] = 0, n.d -= i, t = e + 1; t < n.a.length; )
+ n.a[t] -= i, t += t & -t;
+ }
+ function vDn(n) {
+ var e;
+ if (e = n.a.c.length, e > 0)
+ return l3(e - 1, n.a.c.length), h1(n.a, e - 1);
+ throw T(new Gmn());
+ }
+ function Xwe(n, e, t) {
+ if (e < 0)
+ throw T(new mr(KHn + e));
+ e < n.j.c.length ? js(n.j, e, t) : (AAn(n, e), W(n.j, t));
+ }
+ function mDn(n, e, t) {
+ if (n > e)
+ throw T(new Hn(xM + n + dKn + e));
+ if (n < 0 || e > t)
+ throw T(new bG(xM + n + rnn + e + tnn + t));
+ }
+ function kDn(n) {
+ if (!n.a || !(n.a.i & 8))
+ throw T(new $r("Enumeration class expected for layout option " + n.f));
+ }
+ function ab(n) {
+ var e;
+ ++n.j, n.i == 0 ? n.g = null : n.i < n.g.length && (e = n.g, n.g = n.ri(n.i), pc(e, 0, n.g, 0, n.i));
+ }
+ function Vwe(n, e) {
+ var t, i;
+ for (t = n.a.length - 1, n.c = n.c - 1 & t; e != n.c; )
+ i = e + 1 & t, Mt(n.a, e, n.a[i]), e = i;
+ Mt(n.a, n.c, null);
+ }
+ function Qwe(n, e) {
+ var t, i;
+ for (t = n.a.length - 1; e != n.b; )
+ i = e - 1 & t, Mt(n.a, e, n.a[i]), e = i;
+ Mt(n.a, n.b, null), n.b = n.b + 1 & t;
+ }
+ function eQ(n, e, t) {
+ var i, r;
+ return ib(e, n.c.length), i = t.Pc(), r = i.length, r == 0 ? !1 : (GU(n.c, e, i), !0);
+ }
+ function Jwe(n) {
+ var e, t;
+ if (n == null)
+ return null;
+ for (e = 0, t = n.length; e < t; e++)
+ if (!LEn(n[e]))
+ return n[e];
+ return null;
+ }
+ function yDn(n, e, t) {
+ var i, r, c, o;
+ for (r = t, c = 0, o = r.length; c < o; ++c)
+ if (i = r[c], n.b.re(e, i.cd()))
+ return i;
+ return null;
+ }
+ function gT(n) {
+ var e, t, i, r, c;
+ for (c = 1, t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], c = 31 * c + (e != null ? mt(e) : 0), c = c | 0;
+ return c;
+ }
+ function Fe(n) {
+ var e, t, i, r, c;
+ for (e = {}, i = n, r = 0, c = i.length; r < c; ++r)
+ t = i[r], e[":" + (t.f != null ? t.f : "" + t.g)] = t;
+ return e;
+ }
+ function Ywe(n) {
+ var e;
+ for (pe(n), OU(!0, "numberToAdvance must be nonnegative"), e = 0; e < 0 && Se(n); e++)
+ ve(n);
+ return e;
+ }
+ function jDn(n) {
+ var e, t, i;
+ for (i = 0, t = new re(ue(n.a.Kc(), new Mn())); Se(t); )
+ e = u(ve(t), 17), e.c.i == e.d.i || ++i;
+ return i;
+ }
+ function EDn(n, e) {
+ var t, i, r;
+ t = n, r = 0;
+ do {
+ if (t == e)
+ return r;
+ if (i = t.e, !i)
+ throw T(new F9());
+ t = qi(i), ++r;
+ } while (!0);
+ }
+ function CDn(n, e) {
+ var t, i, r;
+ for (r = e - n.f, i = new E(n.d); i.a < i.c.c.length; )
+ t = u(y(i), 443), g$n(t, t.e, t.f + r);
+ n.f = e;
+ }
+ function mF(n, e, t) {
+ return j.Math.abs(e - n) < hA || j.Math.abs(t - n) < hA ? !0 : e - n > hA ? n - t > hA : t - n > hA;
+ }
+ function kF(n, e) {
+ return !n || e && !n.j || I(n, 124) && u(n, 124).a.b == 0 ? 0 : n.Re();
+ }
+ function pT(n, e) {
+ return !n || e && !n.k || I(n, 124) && u(n, 124).a.a == 0 ? 0 : n.Se();
+ }
+ function h7(n) {
+ return yl(), n < 0 ? n != -1 ? new VQ(-1, -n) : gR : n <= 10 ? xin[zt(n)] : new VQ(1, n);
+ }
+ function tQ(n) {
+ throw cF(), T(new N9n("Unexpected typeof result '" + n + "'; please report this bug to the GWT team"));
+ }
+ function TDn(n) {
+ q9n(), oE(this), eC(this), this.e = n, BNn(this, n), this.g = n == null ? tu : Nr(n), this.a = "", this.b = n, this.a = "";
+ }
+ function iQ() {
+ this.a = new Ggn(), this.f = new D6n(this), this.b = new $6n(this), this.i = new F6n(this), this.e = new x6n(this);
+ }
+ function MDn() {
+ iie.call(this, new _X(ob(16))), is(2, X_n), this.b = 2, this.a = new RW(null, null, 0, null), $9(this.a, this.a);
+ }
+ function i6() {
+ i6 = N, J_ = new vO("DUMMY_NODE_OVER", 0), qsn = new vO("DUMMY_NODE_UNDER", 1), oP = new vO("EQUAL", 2);
+ }
+ function yF() {
+ yF = N, _R = oMn(A(M(e9, 1), z, 103, 0, [(sr(), Ys), Ao])), KR = oMn(A(M(e9, 1), z, 103, 0, [Jh, Qh]));
+ }
+ function jF(n) {
+ return (J(), ru).Hc(n.j) ? K(Y(k(n, (G(), fv)))) : Gr(A(M(di, 1), q, 8, 0, [n.i.n, n.n, n.a])).b;
+ }
+ function Zwe(n) {
+ var e, t, i, r;
+ for (i = n.b.a, t = i.a.ec().Kc(); t.Ob(); )
+ e = u(t.Pb(), 561), r = new vNn(e, n.e, n.f), W(n.g, r);
+ }
+ function Ta(n, e) {
+ var t, i, r;
+ i = n.nk(e, null), r = null, e && (r = (Vp(), t = new sd(), t), I3(r, n.r)), i = af(n, r, i), i && i.Fi();
+ }
+ function nge(n, e) {
+ var t, i;
+ for (i = Fu(n.d, 1) != 0, t = !0; t; )
+ t = !1, t = e.c.Tf(e.e, i), t = t | _7(n, e, i, !1), i = !i;
+ yV(n);
+ }
+ function rQ(n, e) {
+ var t, i, r;
+ return i = !1, t = e.q.d, e.d < n.b && (r = PNn(e.q, n.b), e.q.d > r && (YFn(e.q, r), i = t != e.q.d)), i;
+ }
+ function ADn(n, e) {
+ var t, i, r, c, o, f, h, l;
+ return h = e.i, l = e.j, i = n.f, r = i.i, c = i.j, o = h - r, f = l - c, t = j.Math.sqrt(o * o + f * f), t;
+ }
+ function cQ(n, e) {
+ var t, i;
+ return i = OT(n), i || (t = (bL(), Zxn(e)), i = new xmn(t), me(i.Vk(), n)), i;
+ }
+ function l7(n, e) {
+ var t, i;
+ return t = u(n.c.Bc(e), 14), t ? (i = n.hc(), i.Gc(t), n.d -= t.gc(), t.$b(), n.mc(i)) : n.jc();
+ }
+ function SDn(n, e) {
+ var t;
+ for (t = 0; t < e.length; t++)
+ if (n == (Me(t, e.length), e.charCodeAt(t)))
+ return !0;
+ return !1;
+ }
+ function PDn(n, e) {
+ var t;
+ for (t = 0; t < e.length; t++)
+ if (n == (Me(t, e.length), e.charCodeAt(t)))
+ return !0;
+ return !1;
+ }
+ function ege(n) {
+ var e, t;
+ if (n == null)
+ return !1;
+ for (e = 0, t = n.length; e < t; e++)
+ if (!LEn(n[e]))
+ return !1;
+ return !0;
+ }
+ function IDn(n) {
+ var e;
+ if (n.c != 0)
+ return n.c;
+ for (e = 0; e < n.a.length; e++)
+ n.c = n.c * 33 + (n.a[e] & -1);
+ return n.c = n.c * n.e, n.c;
+ }
+ function vT(n) {
+ var e;
+ return ne(n.a != n.b), e = n.d.a[n.a], ujn(n.b == n.d.c && e != null), n.c = n.a, n.a = n.a + 1 & n.d.a.length - 1, e;
+ }
+ function tge(n) {
+ var e;
+ if (!(n.c.c < 0 ? n.a >= n.c.b : n.a <= n.c.b))
+ throw T(new rc());
+ return e = n.a, n.a += n.c.c, ++n.b, Q(e);
+ }
+ function ige(n) {
+ var e;
+ return e = new sIn(n), O8(n.a, PWn, new Ku(A(M(Rk, 1), rn, 369, 0, [e]))), e.d && W(e.f, e.d), e.f;
+ }
+ function EF(n) {
+ var e;
+ return e = new Mz(n.a), Pr(e, n), H(e, (G(), rt), n), e.o.a = n.g, e.o.b = n.f, e.n.a = n.i, e.n.b = n.j, e;
+ }
+ function rge(n, e, t, i) {
+ var r, c;
+ for (c = n.Kc(); c.Ob(); )
+ r = u(c.Pb(), 70), r.n.a = e.a + (i.a - r.o.a) / 2, r.n.b = e.b, e.b += r.o.b + t;
+ }
+ function cge(n, e, t) {
+ var i, r;
+ for (r = e.a.a.ec().Kc(); r.Ob(); )
+ if (i = u(r.Pb(), 57), KTn(n, i, t))
+ return !0;
+ return !1;
+ }
+ function uge(n) {
+ var e, t;
+ for (t = new E(n.r); t.a < t.c.c.length; )
+ if (e = u(y(t), 10), n.n[e.p] <= 0)
+ return e;
+ return null;
+ }
+ function ODn(n) {
+ var e, t, i, r;
+ for (r = new hi(), i = new E(n); i.a < i.c.c.length; )
+ t = u(y(i), 33), e = w7e(t), Xi(r, e);
+ return r;
+ }
+ function sge(n) {
+ var e;
+ return e = iE(oJn), u(k(n, (G(), Ac)), 21).Hc((or(), sv)) && Ze(e, (Vi(), Kc), (rr(), kS)), e;
+ }
+ function oge(n, e, t) {
+ var i;
+ i = new LLn(n, e), Tn(n.r, e.Hf(), i), t && !D5(n.u) && (i.c = new iMn(n.d), Jc(e.wf(), new r5n(i)));
+ }
+ function hc(n, e) {
+ var t;
+ return Fr(n) && Fr(e) && (t = n - e, !isNaN(t)) ? t : mJ(Fr(n) ? _s(n) : n, Fr(e) ? _s(e) : e);
+ }
+ function fge(n, e) {
+ return e < n.length && (Me(e, n.length), n.charCodeAt(e) != 63) && (Me(e, n.length), n.charCodeAt(e) != 35);
+ }
+ function DDn(n, e, t, i) {
+ var r, c;
+ n.a = e, c = i ? 0 : 1, n.f = (r = new xxn(n.c, n.a, t, c), new aBn(t, n.a, r, n.e, n.b, n.c == (Kd(), _m)));
+ }
+ function uQ(n, e, t) {
+ var i, r;
+ return r = n.a, n.a = e, n.Db & 4 && !(n.Db & 1) && (i = new gi(n, 1, 1, r, e), t ? t.Ei(i) : t = i), t;
+ }
+ function $Dn(n, e, t) {
+ var i, r;
+ return r = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && (i = new gi(n, 1, 3, r, e), t ? t.Ei(i) : t = i), t;
+ }
+ function FDn(n, e, t) {
+ var i, r;
+ return r = n.f, n.f = e, n.Db & 4 && !(n.Db & 1) && (i = new gi(n, 1, 0, r, e), t ? t.Ei(i) : t = i), t;
+ }
+ function gl(n, e) {
+ var t, i, r, c;
+ return c = (r = n ? OT(n) : null, cLn((i = e, r && r.Xk(), i))), c == e && (t = OT(n), t && t.Xk()), c;
+ }
+ function sQ(n, e) {
+ var t, i, r;
+ for (r = 1, t = n, i = e >= 0 ? e : -e; i > 0; )
+ i % 2 == 0 ? (t *= t, i = i / 2 | 0) : (r *= t, i -= 1);
+ return e < 0 ? 1 / r : r;
+ }
+ function hge(n, e) {
+ var t, i, r;
+ for (r = 1, t = n, i = e >= 0 ? e : -e; i > 0; )
+ i % 2 == 0 ? (t *= t, i = i / 2 | 0) : (r *= t, i -= 1);
+ return e < 0 ? 1 / r : r;
+ }
+ function xDn(n) {
+ var e, t;
+ if (n != null)
+ for (t = 0; t < n.length; ++t)
+ e = n[t], e && (u(e.g, 367), e.i);
+ }
+ function lge(n) {
+ var e, t, i;
+ for (i = 0, t = new E(n.a); t.a < t.c.c.length; )
+ e = u(y(t), 187), i = j.Math.max(i, e.g);
+ return i;
+ }
+ function age(n) {
+ var e, t, i;
+ for (i = new E(n.b); i.a < i.c.c.length; )
+ t = u(y(i), 214), e = t.c.Rf() ? t.f : t.a, e && Oje(e, t.j);
+ }
+ function Rh() {
+ Rh = N, HP = new DO("INHERIT", 0), F1 = new DO("INCLUDE_CHILDREN", 1), i9 = new DO("SEPARATE_CHILDREN", 2);
+ }
+ function oQ(n, e) {
+ switch (e) {
+ case 1:
+ !n.n && (n.n = new V(Rr, n, 1, 7)), de(n.n);
+ return;
+ case 2:
+ Q5(n, null);
+ return;
+ }
+ LV(n, e);
+ }
+ function mT(n) {
+ var e;
+ switch (n.gc()) {
+ case 0:
+ return sR;
+ case 1:
+ return new pD(pe(n.Xb(0)));
+ default:
+ return e = n, new JD(e);
+ }
+ }
+ function LDn(n) {
+ switch (Df(), n.gc()) {
+ case 0:
+ return _D(), lin;
+ case 1:
+ return new u2(n.Kc().Pb());
+ default:
+ return new NG(n);
+ }
+ }
+ function b1(n) {
+ switch (Df(), n.c) {
+ case 0:
+ return _D(), lin;
+ case 1:
+ return new u2(bLn(new o2(n)));
+ default:
+ return new x9n(n);
+ }
+ }
+ function db(n, e) {
+ pe(n);
+ try {
+ return n.xc(e);
+ } catch (t) {
+ if (t = jt(t), I(t, 205) || I(t, 173))
+ return null;
+ throw T(t);
+ }
+ }
+ function dge(n, e) {
+ pe(n);
+ try {
+ return n.Bc(e);
+ } catch (t) {
+ if (t = jt(t), I(t, 205) || I(t, 173))
+ return null;
+ throw T(t);
+ }
+ }
+ function fQ(n, e) {
+ pe(n);
+ try {
+ return n.Hc(e);
+ } catch (t) {
+ if (t = jt(t), I(t, 205) || I(t, 173))
+ return !1;
+ throw T(t);
+ }
+ }
+ function bge(n, e) {
+ pe(n);
+ try {
+ return n.Mc(e);
+ } catch (t) {
+ if (t = jt(t), I(t, 205) || I(t, 173))
+ return !1;
+ throw T(t);
+ }
+ }
+ function NDn(n, e) {
+ pe(n);
+ try {
+ return n._b(e);
+ } catch (t) {
+ if (t = jt(t), I(t, 205) || I(t, 173))
+ return !1;
+ throw T(t);
+ }
+ }
+ function BDn(n, e) {
+ var t;
+ n.a.c.length > 0 && (t = u(un(n.a, n.a.c.length - 1), 570), QV(t, e)) || W(n.a, new bSn(e));
+ }
+ function wge(n) {
+ wo();
+ var e, t;
+ e = n.d.c - n.e.c, t = u(n.g, 145), Jc(t.b, new K5n(e)), Jc(t.c, new H5n(e)), $i(t.i, new q5n(e));
+ }
+ function RDn(n) {
+ var e;
+ return e = new X1(), e.a += "VerticalSegment ", cc(e, n.e), e.a += " ", De(e, Lz(new YI(), new E(n.k))), e.a;
+ }
+ function gge(n) {
+ var e;
+ return e = u(Ld(n.c.c, ""), 229), e || (e = new M2(Xp(Wp(new Zg(), ""), "Other")), Sa(n.c.c, "", e)), e;
+ }
+ function r6(n) {
+ var e;
+ return n.Db & 64 ? yo(n) : (e = new Ns(yo(n)), e.a += " (name: ", dr(e, n.zb), e.a += ")", e.a);
+ }
+ function hQ(n, e, t) {
+ var i, r;
+ return r = n.sb, n.sb = e, n.Db & 4 && !(n.Db & 1) && (i = new gi(n, 1, 4, r, e), t ? t.Ei(i) : t = i), t;
+ }
+ function CF(n, e) {
+ var t, i, r;
+ for (t = 0, r = zr(n, e).Kc(); r.Ob(); )
+ i = u(r.Pb(), 11), t += k(i, (G(), Mu)) != null ? 1 : 0;
+ return t;
+ }
+ function Kw(n, e, t) {
+ var i, r, c;
+ for (i = 0, c = _e(n, 0); c.b != c.d.c && (r = K(Y(Re(c))), !(r > t)); )
+ r >= e && ++i;
+ return i;
+ }
+ function pge(n, e, t) {
+ var i, r;
+ return i = new xh(n.e, 3, 13, null, (r = e.c, r || (Sn(), Cf)), v1(n, e), !1), t ? t.Ei(i) : t = i, t;
+ }
+ function vge(n, e, t) {
+ var i, r;
+ return i = new xh(n.e, 4, 13, (r = e.c, r || (Sn(), Cf)), null, v1(n, e), !1), t ? t.Ei(i) : t = i, t;
+ }
+ function lQ(n, e, t) {
+ var i, r;
+ return r = n.r, n.r = e, n.Db & 4 && !(n.Db & 1) && (i = new gi(n, 1, 8, r, n.r), t ? t.Ei(i) : t = i), t;
+ }
+ function w1(n, e) {
+ var t, i;
+ return t = u(e, 676), i = t.vk(), !i && t.wk(i = I(e, 88) ? new xkn(n, u(e, 26)) : new tAn(n, u(e, 148))), i;
+ }
+ function a7(n, e, t) {
+ var i;
+ n.qi(n.i + 1), i = n.oi(e, t), e != n.i && pc(n.g, e, n.g, e + 1, n.i - e), Mt(n.g, e, i), ++n.i, n.bi(e, t), n.ci();
+ }
+ function mge(n, e) {
+ var t;
+ return e.a && (t = e.a.a.length, n.a ? De(n.a, n.b) : n.a = new Ju(n.d), rAn(n.a, e.a, e.d.length, t)), n;
+ }
+ function kge(n, e) {
+ var t, i, r, c;
+ if (e.vi(n.a), c = u(Rn(n.a, 8), 1936), c != null)
+ for (t = c, i = 0, r = t.length; i < r; ++i)
+ null.jm();
+ }
+ function d7(n, e) {
+ var t;
+ return t = new bI(), n.a.sd(t) ? (r3(), new dj(_n(xPn(n, t.a, e)))) : (ol(n), r3(), r3(), UA);
+ }
+ function c6(n, e) {
+ switch (e.g) {
+ case 2:
+ case 1:
+ return zr(n, e);
+ case 3:
+ case 4:
+ return ma(zr(n, e));
+ }
+ return Pn(), Pn(), cr;
+ }
+ function tt(n, e) {
+ return yi(n) ? An(n, e) : z0(n) ? nEn(n, e) : G0(n) ? (_n(n), B(n) === B(e)) : bW(n) ? n.Fb(e) : fW(n) ? eyn(n, e) : uX(n, e);
+ }
+ function yge(n) {
+ return n ? n.i & 1 ? n == _u ? oi : n == be ? Ui : n == bw ? z4 : n == Ci ? Si : n == Jl ? d0 : n == Wg ? b0 : n == mu ? op : bm : n : null;
+ }
+ function jge(n, e, t, i, r) {
+ e == 0 || i == 0 || (e == 1 ? r[i] = YQ(r, t, i, n[0]) : i == 1 ? r[e] = YQ(r, n, e, t[0]) : Cme(n, t, r, e, i));
+ }
+ function _Dn(n, e) {
+ var t;
+ n.c.length != 0 && (t = u(lf(n, F(vh, E1, 10, n.c.length, 0, 1)), 193), vz(t, new Odn()), ALn(t, e));
+ }
+ function KDn(n, e) {
+ var t;
+ n.c.length != 0 && (t = u(lf(n, F(vh, E1, 10, n.c.length, 0, 1)), 193), vz(t, new Ddn()), ALn(t, e));
+ }
+ function aQ(n, e, t, i) {
+ switch (e) {
+ case 1:
+ return !n.n && (n.n = new V(Rr, n, 1, 7)), n.n;
+ case 2:
+ return n.k;
+ }
+ return oJ(n, e, t, i);
+ }
+ function sr() {
+ sr = N, mh = new n8(K6, 0), Ao = new n8(Z2, 1), Ys = new n8(Y2, 2), Qh = new n8(hN, 3), Jh = new n8("UP", 4);
+ }
+ function Gd() {
+ Gd = N, yg = new lO(Wh, 0), Grn = new lO("INSIDE_PORT_SIDE_GROUPS", 1), qR = new lO("FORCE_MODEL_ORDER", 2);
+ }
+ function HDn(n, e, t) {
+ if (n < 0 || e > t)
+ throw T(new mr(xM + n + rnn + e + ", size: " + t));
+ if (n > e)
+ throw T(new Hn(xM + n + dKn + e));
+ }
+ function Ms(n, e, t) {
+ if (e < 0)
+ bY(n, t);
+ else {
+ if (!t.Ij())
+ throw T(new Hn(Sl + t.ne() + em));
+ u(t, 66).Nj().Vj(n, n.yh(), e);
+ }
+ }
+ function Ege(n, e, t, i, r, c, o, f) {
+ var h;
+ for (h = t; c < o; )
+ h >= i || e < t && f.ue(n[e], n[h]) <= 0 ? Mt(r, c++, n[e++]) : Mt(r, c++, n[h++]);
+ }
+ function qDn(n, e, t, i, r, c) {
+ this.e = new X(), this.f = (ur(), Bm), W(this.e, n), this.d = e, this.a = t, this.b = i, this.f = r, this.c = c;
+ }
+ function GDn(n, e) {
+ var t, i;
+ for (i = new ie(n); i.e != i.i.gc(); )
+ if (t = u(oe(i), 26), B(e) === B(t))
+ return !0;
+ return !1;
+ }
+ function Cge(n) {
+ SM();
+ var e, t, i, r;
+ for (t = qF(), i = 0, r = t.length; i < r; ++i)
+ if (e = t[i], xr(e.a, n, 0) != -1)
+ return e;
+ return TR;
+ }
+ function zDn(n) {
+ return n >= 65 && n <= 70 ? n - 65 + 10 : n >= 97 && n <= 102 ? n - 97 + 10 : n >= 48 && n <= 57 ? n - 48 : 0;
+ }
+ function UDn(n) {
+ var e;
+ return n.Db & 64 ? yo(n) : (e = new Ns(yo(n)), e.a += " (source: ", dr(e, n.d), e.a += ")", e.a);
+ }
+ function Tge(n, e, t) {
+ var i, r;
+ return r = n.a, n.a = e, n.Db & 4 && !(n.Db & 1) && (i = new gi(n, 1, 5, r, n.a), t ? FJ(t, i) : t = i), t;
+ }
+ function g1(n, e) {
+ var t;
+ t = (n.Bb & 256) != 0, e ? n.Bb |= 256 : n.Bb &= -257, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 2, t, e));
+ }
+ function dQ(n, e) {
+ var t;
+ t = (n.Bb & 256) != 0, e ? n.Bb |= 256 : n.Bb &= -257, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 8, t, e));
+ }
+ function kT(n, e) {
+ var t;
+ t = (n.Bb & 256) != 0, e ? n.Bb |= 256 : n.Bb &= -257, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 8, t, e));
+ }
+ function p1(n, e) {
+ var t;
+ t = (n.Bb & 512) != 0, e ? n.Bb |= 512 : n.Bb &= -513, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 3, t, e));
+ }
+ function bQ(n, e) {
+ var t;
+ t = (n.Bb & 512) != 0, e ? n.Bb |= 512 : n.Bb &= -513, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 9, t, e));
+ }
+ function u6(n, e) {
+ var t;
+ return n.b == -1 && n.a && (t = n.a.Gj(), n.b = t ? n.c.Xg(n.a.aj(), t) : yt(n.c.Tg(), n.a)), n.c.Og(n.b, e);
+ }
+ function Q(n) {
+ var e, t;
+ return n > -129 && n < 128 ? (e = n + 128, t = (GEn(), jin)[e], !t && (t = jin[e] = new gq(n)), t) : new gq(n);
+ }
+ function Q3(n) {
+ var e, t;
+ return n > -129 && n < 128 ? (e = n + 128, t = (QEn(), Min)[e], !t && (t = Min[e] = new vq(n)), t) : new vq(n);
+ }
+ function wQ(n) {
+ var e, t;
+ return e = n.k, e == (Qn(), Vt) ? (t = u(k(n, (G(), ec)), 61), t == (J(), Kn) || t == ae) : !1;
+ }
+ function Mge(n, e, t) {
+ var i, r, c;
+ return c = (r = d4(n.b, e), r), c && (i = u(jM(G8(n, c), ""), 26), i) ? xY(n, i, e, t) : null;
+ }
+ function TF(n, e, t) {
+ var i, r, c;
+ return c = (r = d4(n.b, e), r), c && (i = u(jM(G8(n, c), ""), 26), i) ? LY(n, i, e, t) : null;
+ }
+ function WDn(n, e) {
+ var t, i;
+ for (i = new ie(n); i.e != i.i.gc(); )
+ if (t = u(oe(i), 138), B(e) === B(t))
+ return !0;
+ return !1;
+ }
+ function s6(n, e, t) {
+ var i;
+ if (i = n.gc(), e > i)
+ throw T(new Q0(e, i));
+ if (n.hi() && n.Hc(t))
+ throw T(new Hn(yk));
+ n.Xh(e, t);
+ }
+ function Age(n, e) {
+ var t;
+ if (t = xw(n.i, e), t == null)
+ throw T(new Af("Node did not exist in input."));
+ return MV(e, t), null;
+ }
+ function Sge(n, e) {
+ var t;
+ if (t = R7(n, e), I(t, 322))
+ return u(t, 34);
+ throw T(new Hn(Sl + e + "' is not a valid attribute"));
+ }
+ function Pge(n, e, t) {
+ var i, r;
+ for (r = I(e, 99) && u(e, 18).Bb & Ji ? new LO(e, n) : new K3(e, n), i = 0; i < t; ++i)
+ RT(r);
+ return r;
+ }
+ function Ige(n) {
+ var e, t, i;
+ for (i = 0, t = n.length, e = 0; e < t; e++)
+ n[e] == 32 || n[e] == 13 || n[e] == 10 || n[e] == 9 || (n[i++] = n[e]);
+ return i;
+ }
+ function Oge(n) {
+ var e, t, i;
+ for (e = new X(), i = new E(n.b); i.a < i.c.c.length; )
+ t = u(y(i), 594), Zt(e, u(t.jf(), 14));
+ return e;
+ }
+ function Dge(n) {
+ var e, t, i;
+ for (e = u(k(n, (uc(), gon)), 15), i = e.Kc(); i.Ob(); )
+ t = u(i.Pb(), 188), Ke(t.b.d, t), Ke(t.c.b, t);
+ }
+ function $ge(n) {
+ switch (u(k(n, (G(), Ua)), 303).g) {
+ case 1:
+ H(n, Ua, (Lh(), dp));
+ break;
+ case 2:
+ H(n, Ua, (Lh(), Ag));
+ }
+ }
+ function Fge(n) {
+ var e;
+ n.g && (e = n.c.Rf() ? n.f : n.a, VY(e.a, n.o, !0), VY(e.a, n.o, !1), H(n.o, (nn(), Nt), (Ai(), id)));
+ }
+ function xge(n) {
+ var e;
+ if (!n.a)
+ throw T(new $r("Cannot offset an unassigned cut."));
+ e = n.c - n.b, n.b += e, RTn(n, e), BTn(n, e);
+ }
+ function Lge(n) {
+ var e;
+ return e = n.a[n.c - 1 & n.a.length - 1], e == null ? null : (n.c = n.c - 1 & n.a.length - 1, Mt(n.a, n.c, null), e);
+ }
+ function XDn(n) {
+ var e, t;
+ for (t = n.p.a.ec().Kc(); t.Ob(); )
+ if (e = u(t.Pb(), 213), e.f && n.b[e.c] < -1e-10)
+ return e;
+ return null;
+ }
+ function gQ(n, e) {
+ switch (n.b.g) {
+ case 0:
+ case 1:
+ return e;
+ case 2:
+ case 3:
+ return new ks(e.d, 0, e.a, e.b);
+ default:
+ return null;
+ }
+ }
+ function VDn(n) {
+ switch (n.g) {
+ case 2:
+ return Ao;
+ case 1:
+ return Ys;
+ case 4:
+ return Qh;
+ case 3:
+ return Jh;
+ default:
+ return mh;
+ }
+ }
+ function pQ(n) {
+ switch (n.g) {
+ case 1:
+ return Gn;
+ case 2:
+ return Kn;
+ case 3:
+ return Vn;
+ case 4:
+ return ae;
+ default:
+ return Xr;
+ }
+ }
+ function b7(n) {
+ switch (n.g) {
+ case 1:
+ return ae;
+ case 2:
+ return Gn;
+ case 3:
+ return Kn;
+ case 4:
+ return Vn;
+ default:
+ return Xr;
+ }
+ }
+ function yT(n) {
+ switch (n.g) {
+ case 1:
+ return Vn;
+ case 2:
+ return ae;
+ case 3:
+ return Gn;
+ case 4:
+ return Kn;
+ default:
+ return Xr;
+ }
+ }
+ function Nge(n) {
+ switch (n) {
+ case 0:
+ return new b9n();
+ case 1:
+ return new a9n();
+ case 2:
+ return new d9n();
+ default:
+ throw T(new F9());
+ }
+ }
+ function ni(n, e) {
+ return n < e ? -1 : n > e ? 1 : n == e ? n == 0 ? ni(1 / n, 1 / e) : 0 : isNaN(n) ? isNaN(e) ? 0 : 1 : -1;
+ }
+ function Bge(n, e) {
+ le(e, "Sort end labels", 1), Rt(gt(qr(new $n(null, new xn(n.b, 16)), new wdn()), new gdn()), new pdn()), ce(e);
+ }
+ function o6(n, e, t) {
+ var i, r;
+ return n.ej() ? (r = n.fj(), i = Dx(n, e, t), n.$i(n.Zi(7, Q(t), i, e, r)), i) : Dx(n, e, t);
+ }
+ function MF(n, e) {
+ var t, i, r;
+ n.d == null ? (++n.e, --n.f) : (r = e.cd(), t = e.Sh(), i = (t & nt) % n.d.length, yde(n, i, lNn(n, i, t, r)));
+ }
+ function J3(n, e) {
+ var t;
+ t = (n.Bb & Eo) != 0, e ? n.Bb |= Eo : n.Bb &= -1025, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 10, t, e));
+ }
+ function Y3(n, e) {
+ var t;
+ t = (n.Bb & Ob) != 0, e ? n.Bb |= Ob : n.Bb &= -4097, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 12, t, e));
+ }
+ function Z3(n, e) {
+ var t;
+ t = (n.Bb & pu) != 0, e ? n.Bb |= pu : n.Bb &= -8193, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 15, t, e));
+ }
+ function n4(n, e) {
+ var t;
+ t = (n.Bb & Rb) != 0, e ? n.Bb |= Rb : n.Bb &= -2049, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 11, t, e));
+ }
+ function Rge(n, e) {
+ var t;
+ return t = ni(n.b.c, e.b.c), t != 0 || (t = ni(n.a.a, e.a.a), t != 0) ? t : ni(n.a.b, e.a.b);
+ }
+ function _ge(n, e) {
+ var t;
+ if (t = te(n.k, e), t == null)
+ throw T(new Af("Port did not exist in input."));
+ return MV(e, t), null;
+ }
+ function Kge(n) {
+ var e, t;
+ for (t = gNn(ts(n)).Kc(); t.Ob(); )
+ if (e = Te(t.Pb()), A6(n, e))
+ return Vae((T7n(), Une), e);
+ return null;
+ }
+ function Hge(n, e) {
+ var t, i, r, c, o;
+ for (o = _c(n.e.Tg(), e), c = 0, t = u(n.g, 119), r = 0; r < n.i; ++r)
+ i = t[r], o.rl(i.ak()) && ++c;
+ return c;
+ }
+ function qge(n, e, t) {
+ var i, r;
+ return i = u(e.We(n.a), 35), r = u(t.We(n.a), 35), i != null && r != null ? Y8(i, r) : i != null ? -1 : r != null ? 1 : 0;
+ }
+ function QDn(n, e, t) {
+ var i, r;
+ if (n.c)
+ zJ(n.c, e, t);
+ else
+ for (r = new E(n.b); r.a < r.c.c.length; )
+ i = u(y(r), 157), QDn(i, e, t);
+ }
+ function AF(n, e) {
+ var t, i;
+ for (i = new E(e); i.a < i.c.c.length; )
+ t = u(y(i), 46), Vc(n.b.b, t.b), k1e(u(t.a, 189), u(t.b, 81));
+ }
+ function Gge(n) {
+ var e, t;
+ for (t = ul(new X1(), 91), e = !0; n.Ob(); )
+ e || (t.a += Qi), e = !1, cc(t, n.Pb());
+ return (t.a += "]", t).a;
+ }
+ function e4(n, e) {
+ var t;
+ t = (n.Bb & Nf) != 0, e ? n.Bb |= Nf : n.Bb &= -16385, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 16, t, e));
+ }
+ function SF(n, e) {
+ var t;
+ t = (n.Bb & sc) != 0, e ? n.Bb |= sc : n.Bb &= -32769, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 18, t, e));
+ }
+ function vQ(n, e) {
+ var t;
+ t = (n.Bb & sc) != 0, e ? n.Bb |= sc : n.Bb &= -32769, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 18, t, e));
+ }
+ function mQ(n, e) {
+ var t;
+ t = (n.Bb & Ji) != 0, e ? n.Bb |= Ji : n.Bb &= -65537, n.Db & 4 && !(n.Db & 1) && et(n, new vo(n, 1, 20, t, e));
+ }
+ function kQ(n) {
+ var e;
+ return e = F(xs, Bf, 25, 2, 15, 1), n -= Ji, e[0] = (n >> 10) + rk & Wt, e[1] = (n & 1023) + 56320 & Wt, Ks(e, 0, e.length);
+ }
+ function jT(n) {
+ var e, t;
+ return t = u(k(n, (nn(), ls)), 103), t == (sr(), mh) ? (e = K(Y(k(n, zS))), e >= 1 ? Ao : Qh) : t;
+ }
+ function zge(n) {
+ switch (u(k(n, (nn(), Vh)), 218).g) {
+ case 1:
+ return new twn();
+ case 3:
+ return new swn();
+ default:
+ return new ewn();
+ }
+ }
+ function Ma(n) {
+ if (n.c)
+ Ma(n.c);
+ else if (n.d)
+ throw T(new $r("Stream already terminated, can't be modified or used"));
+ }
+ function PF(n) {
+ var e;
+ return n.Db & 64 ? yo(n) : (e = new Ns(yo(n)), e.a += " (identifier: ", dr(e, n.k), e.a += ")", e.a);
+ }
+ function JDn(n, e, t) {
+ var i, r;
+ return i = (dd(), r = new Xy(), r), UC(i, e), WC(i, t), n && me((!n.a && (n.a = new Yt(to, n, 5)), n.a), i), i;
+ }
+ function IF(n, e, t, i) {
+ var r, c;
+ return _n(i), _n(t), r = n.xc(e), c = r == null ? t : a7n(u(r, 15), u(t, 14)), c == null ? n.Bc(e) : n.zc(e, c), c;
+ }
+ function Cn(n) {
+ var e, t, i, r;
+ return t = (e = u(xo((i = n.gm, r = i.f, r == Ie ? i : r)), 9), new ms(e, u(bo(e, e.length), 9), 0)), ko(t, n), t;
+ }
+ function Uge(n, e, t) {
+ var i, r;
+ for (r = n.a.ec().Kc(); r.Ob(); )
+ if (i = u(r.Pb(), 10), t7(t, u(un(e, i.p), 14)))
+ return i;
+ return null;
+ }
+ function Wge(n, e, t) {
+ var i;
+ try {
+ Awe(n, e, t);
+ } catch (r) {
+ throw r = jt(r), I(r, 597) ? (i = r, T(new EX(i))) : T(r);
+ }
+ return e;
+ }
+ function pl(n, e) {
+ var t;
+ return Fr(n) && Fr(e) && (t = n - e, ik < t && t < Fa) ? t : dl(LOn(Fr(n) ? _s(n) : n, Fr(e) ? _s(e) : e));
+ }
+ function Hi(n, e) {
+ var t;
+ return Fr(n) && Fr(e) && (t = n + e, ik < t && t < Fa) ? t : dl(fwe(Fr(n) ? _s(n) : n, Fr(e) ? _s(e) : e));
+ }
+ function Ni(n, e) {
+ var t;
+ return Fr(n) && Fr(e) && (t = n * e, ik < t && t < Fa) ? t : dl(Ije(Fr(n) ? _s(n) : n, Fr(e) ? _s(e) : e));
+ }
+ function zr(n, e) {
+ var t;
+ return n.i || dY(n), t = u(br(n.g, e), 46), t ? new ch(n.j, u(t.a, 19).a, u(t.b, 19).a) : (Pn(), Pn(), cr);
+ }
+ function zd(n, e, t) {
+ var i;
+ return i = n.a.get(e), n.a.set(e, t === void 0 ? null : t), i === void 0 ? (++n.c, cC(n.b)) : ++n.d, i;
+ }
+ function Xge(n, e, t) {
+ n.n = fa(Jl, [q, QL], [364, 25], 14, [t, zt(j.Math.ceil(e / 32))], 2), n.o = e, n.p = t, n.j = e - 1 >> 1, n.k = t - 1 >> 1;
+ }
+ function OF() {
+ _J();
+ var n, e, t;
+ t = qTe++ + Date.now(), n = zt(j.Math.floor(t * uk)) & FM, e = zt(t - n * enn), this.a = n ^ 1502, this.b = e ^ tN;
+ }
+ function _h(n) {
+ var e, t, i;
+ for (e = new X(), i = new E(n.j); i.a < i.c.c.length; )
+ t = u(y(i), 11), W(e, t.b);
+ return pe(e), new p5(e);
+ }
+ function Lr(n) {
+ var e, t, i;
+ for (e = new X(), i = new E(n.j); i.a < i.c.c.length; )
+ t = u(y(i), 11), W(e, t.e);
+ return pe(e), new p5(e);
+ }
+ function ei(n) {
+ var e, t, i;
+ for (e = new X(), i = new E(n.j); i.a < i.c.c.length; )
+ t = u(y(i), 11), W(e, t.g);
+ return pe(e), new p5(e);
+ }
+ function Vge(n) {
+ var e, t;
+ for (t = Ume(ts(tb(n))).Kc(); t.Ob(); )
+ if (e = Te(t.Pb()), A6(n, e))
+ return Qae((M7n(), Wne), e);
+ return null;
+ }
+ function Qge(n) {
+ var e, t, i;
+ for (t = 0, i = n.length; t < i; t++)
+ if (n[t] == null)
+ throw T(new c2("at index " + t));
+ return e = n, new Ku(e);
+ }
+ function Jge(n, e) {
+ var t;
+ if (t = R7(n.Tg(), e), I(t, 99))
+ return u(t, 18);
+ throw T(new Hn(Sl + e + "' is not a valid reference"));
+ }
+ function Yge(n) {
+ var e;
+ return e = yb(n), e > 34028234663852886e22 ? xt : e < -34028234663852886e22 ? Qt : e;
+ }
+ function YDn(n) {
+ return n -= n >> 1 & 1431655765, n = (n >> 2 & 858993459) + (n & 858993459), n = (n >> 4) + n & 252645135, n += n >> 8, n += n >> 16, n & 63;
+ }
+ function ZDn(n) {
+ var e, t, i, r;
+ for (e = new $jn(n.Hd().gc()), r = 0, i = $2(n.Hd().Kc()); i.Ob(); )
+ t = i.Pb(), ole(e, t, Q(r++));
+ return $5e(e.a);
+ }
+ function Zge(n, e) {
+ var t, i, r;
+ for (r = new we(), i = e.vc().Kc(); i.Ob(); )
+ t = u(i.Pb(), 42), it(r, t.cd(), Gbe(n, u(t.dd(), 15)));
+ return r;
+ }
+ function yQ(n, e) {
+ n.n.c.length == 0 && W(n.n, new lC(n.s, n.t, n.i)), W(n.b, e), iJ(u(un(n.n, n.n.c.length - 1), 211), e), fRn(n, e);
+ }
+ function Hw(n) {
+ return (n.c != n.b.b || n.i != n.g.b) && (n.a.c = F(Zn, rn, 1, 0, 5, 1), Zt(n.a, n.b), Zt(n.a, n.g), n.c = n.b.b, n.i = n.g.b), n.a;
+ }
+ function DF(n, e) {
+ var t, i, r;
+ for (r = 0, i = u(e.Kb(n), 20).Kc(); i.Ob(); )
+ t = u(i.Pb(), 17), on(sn(k(t, (G(), mf)))) || ++r;
+ return r;
+ }
+ function n2e(n, e) {
+ var t, i, r;
+ i = $w(e), r = K(Y(wb(i, (nn(), Mo)))), t = j.Math.max(0, r / 2 - 0.5), g6(e, t, 1), W(n, new z7n(e, t));
+ }
+ function As() {
+ As = N, Qk = new Q9(Wh, 0), Sm = new Q9("FIRST", 1), Fl = new Q9(sHn, 2), Pm = new Q9("LAST", 3), Wb = new Q9(oHn, 4);
+ }
+ function Kh() {
+ Kh = N, rH = new Wj(K6, 0), yy = new Wj("POLYLINE", 1), Ev = new Wj("ORTHOGONAL", 2), Sp = new Wj("SPLINES", 3);
+ }
+ function ET() {
+ ET = N, Jon = new PO("ASPECT_RATIO_DRIVEN", 0), IK = new PO("MAX_SCALE_DRIVEN", 1), Qon = new PO("AREA_DRIVEN", 2);
+ }
+ function w7() {
+ w7 = N, AP = new IO("P1_STRUCTURE", 0), SP = new IO("P2_PROCESSING_ORDER", 1), PP = new IO("P3_EXECUTION", 2);
+ }
+ function CT() {
+ CT = N, CK = new MO("OVERLAP_REMOVAL", 0), jK = new MO("COMPACTION", 1), EK = new MO("GRAPH_SIZE_CALCULATION", 2);
+ }
+ function Ud(n, e) {
+ return Yo(), mo(El), j.Math.abs(n - e) <= El || n == e || isNaN(n) && isNaN(e) ? 0 : n < e ? -1 : n > e ? 1 : vd(isNaN(n), isNaN(e));
+ }
+ function n$n(n, e) {
+ var t, i;
+ for (t = _e(n, 0); t.b != t.d.c; ) {
+ if (i = x9(Y(Re(t))), i == e)
+ return;
+ if (i > e) {
+ a$(t);
+ break;
+ }
+ }
+ y8(t, e);
+ }
+ function En(n, e) {
+ var t, i, r, c, o;
+ if (t = e.f, Sa(n.c.d, t, e), e.g != null)
+ for (r = e.g, c = 0, o = r.length; c < o; ++c)
+ i = r[c], Sa(n.c.e, i, e);
+ }
+ function e2e(n, e, t, i) {
+ var r, c, o;
+ for (r = e + 1; r < t; ++r)
+ for (c = r; c > e && i.ue(n[c - 1], n[c]) > 0; --c)
+ o = n[c], Mt(n, c, n[c - 1]), Mt(n, c - 1, o);
+ }
+ function Ss(n, e, t, i) {
+ if (e < 0)
+ _Y(n, t, i);
+ else {
+ if (!t.Ij())
+ throw T(new Hn(Sl + t.ne() + em));
+ u(t, 66).Nj().Tj(n, n.yh(), e, i);
+ }
+ }
+ function TT(n, e) {
+ if (e == n.d)
+ return n.e;
+ if (e == n.e)
+ return n.d;
+ throw T(new Hn("Node " + e + " not part of edge " + n));
+ }
+ function t2e(n, e) {
+ switch (e.g) {
+ case 2:
+ return n.b;
+ case 1:
+ return n.c;
+ case 4:
+ return n.d;
+ case 3:
+ return n.a;
+ default:
+ return !1;
+ }
+ }
+ function e$n(n, e) {
+ switch (e.g) {
+ case 2:
+ return n.b;
+ case 1:
+ return n.c;
+ case 4:
+ return n.d;
+ case 3:
+ return n.a;
+ default:
+ return !1;
+ }
+ }
+ function jQ(n, e, t, i) {
+ switch (e) {
+ case 3:
+ return n.f;
+ case 4:
+ return n.g;
+ case 5:
+ return n.i;
+ case 6:
+ return n.j;
+ }
+ return aQ(n, e, t, i);
+ }
+ function i2e(n) {
+ return n.k != (Qn(), ii) ? !1 : E3(new $n(null, new Td(new re(ue(ei(n).a.Kc(), new Mn())))), new qbn());
+ }
+ function r2e(n) {
+ return n.e == null ? n : (!n.c && (n.c = new zx((n.f & 256) != 0, n.i, n.a, n.d, (n.f & 16) != 0, n.j, n.g, null)), n.c);
+ }
+ function c2e(n, e) {
+ return n.h == tk && n.m == 0 && n.l == 0 ? (e && (Pl = Nc(0, 0, 0)), tyn((P3(), gin))) : (e && (Pl = Nc(n.l, n.m, n.h)), Nc(0, 0, 0));
+ }
+ function Nr(n) {
+ var e;
+ return Array.isArray(n) && n.im === Xg ? Q1(Du(n)) + "@" + (e = mt(n) >>> 0, e.toString(16)) : n.toString();
+ }
+ function f6(n) {
+ var e;
+ this.a = (e = u(n.e && n.e(), 9), new ms(e, u(bo(e, e.length), 9), 0)), this.b = F(Zn, rn, 1, this.a.a.length, 5, 1);
+ }
+ function u2e(n) {
+ var e, t, i;
+ for (this.a = new Ah(), i = new E(n); i.a < i.c.c.length; )
+ t = u(y(i), 14), e = new sCn(), wbe(e, t), ci(this.a, e);
+ }
+ function s2e(n) {
+ X0();
+ var e, t, i, r;
+ for (e = n.o.b, i = u(u(ct(n.r, (J(), ae)), 21), 84).Kc(); i.Ob(); )
+ t = u(i.Pb(), 111), r = t.e, r.b += e;
+ }
+ function $u(n) {
+ var e;
+ if (n.b) {
+ if ($u(n.b), n.b.d != n.c)
+ throw T(new ps());
+ } else
+ n.d.dc() && (e = u(n.f.c.xc(n.e), 14), e && (n.d = e));
+ }
+ function o2e(n) {
+ var e;
+ return n == null ? !0 : (e = n.length, e > 0 && (Me(e - 1, n.length), n.charCodeAt(e - 1) == 58) && !$F(n, a9, d9));
+ }
+ function $F(n, e, t) {
+ var i, r;
+ for (i = 0, r = n.length; i < r; i++)
+ if (uF((Me(i, n.length), n.charCodeAt(i)), e, t))
+ return !0;
+ return !1;
+ }
+ function f2e(n, e) {
+ var t, i;
+ for (i = n.e.a.ec().Kc(); i.Ob(); )
+ if (t = u(i.Pb(), 266), d5e(e, t.d) || k6e(e, t.d))
+ return !0;
+ return !1;
+ }
+ function h2e(n, e) {
+ var t, i, r;
+ for (i = V7e(n, e), r = i[i.length - 1] / 2, t = 0; t < i.length; t++)
+ if (i[t] >= r)
+ return e.c + t;
+ return e.c + e.b.gc();
+ }
+ function l2e(n, e) {
+ s3();
+ var t, i, r, c;
+ for (i = wPn(n), r = e, A3(i, 0, i.length, r), t = 0; t < i.length; t++)
+ c = W3e(n, i[t], t), t != c && o6(n, t, c);
+ }
+ function EQ(n, e) {
+ var t, i, r, c, o, f;
+ for (i = 0, t = 0, c = e, o = 0, f = c.length; o < f; ++o)
+ r = c[o], r > 0 && (i += r, ++t);
+ return t > 1 && (i += n.d * (t - 1)), i;
+ }
+ function CQ(n) {
+ var e, t, i;
+ for (i = new i1(), i.a += "[", e = 0, t = n.gc(); e < t; )
+ dr(i, y5(n.ki(e))), ++e < t && (i.a += Qi);
+ return i.a += "]", i.a;
+ }
+ function a2e(n) {
+ var e, t, i, r, c;
+ return c = KJ(n), t = N9(n.c), i = !t, i && (r = new ea(), Ro(c, "knownLayouters", r), e = new kmn(r), $i(n.c, e)), c;
+ }
+ function d2e(n, e) {
+ var t, i, r;
+ for (_n(e), t = !1, i = new E(n); i.a < i.c.c.length; )
+ r = y(i), bb(e, r, !1) && (F5(i), t = !0);
+ return t;
+ }
+ function TQ(n) {
+ var e, t, i;
+ for (i = K(Y(n.a.We((Xe(), KP)))), t = new E(n.a.xf()); t.a < t.c.c.length; )
+ e = u(y(t), 680), M_n(n, e, i);
+ }
+ function FF(n, e) {
+ var t, i;
+ for (i = new E(e); i.a < i.c.c.length; )
+ t = u(y(i), 46), W(n.b.b, u(t.b, 81)), d$(u(t.a, 189), u(t.b, 81));
+ }
+ function b2e(n, e, t) {
+ var i, r;
+ for (r = n.a.b, i = r.c.length; i < t; i++)
+ J0(r, 0, new Bs(n.a));
+ jr(e, u(un(r, r.c.length - t), 29)), n.b[e.p] = t;
+ }
+ function w2e(n, e, t) {
+ var i;
+ i = t, !i && (i = YU(new Gp(), 0)), le(i, GKn, 2), tFn(n.b, e, yc(i, 1)), Qje(n, e, yc(i, 1)), HCe(e, yc(i, 1)), ce(i);
+ }
+ function g2e(n, e, t, i, r) {
+ Zu(), jo(lo(ho(fo(ao(new Ls(), 0), r.d.e - n), e), r.d)), jo(lo(ho(fo(ao(new Ls(), 0), t - r.a.e), r.a), i));
+ }
+ function MQ(n, e, t, i, r, c) {
+ this.a = n, this.c = e, this.b = t, this.f = i, this.d = r, this.e = c, this.c > 0 && this.b > 0 && cW(this.c, this.b, this.a);
+ }
+ function AQ(n) {
+ xF(), this.c = cf(A(M(sMe, 1), rn, 831, 0, [NQn])), this.b = new we(), this.a = n, it(this.b, uP, 1), Jc(BQn, new G6n(this));
+ }
+ function t$n(n, e) {
+ var t;
+ return n.d ? zu(n.b, e) ? u(te(n.b, e), 51) : (t = e.Kf(), it(n.b, e, t), t) : e.Kf();
+ }
+ function SQ(n, e) {
+ var t;
+ return B(n) === B(e) ? !0 : I(e, 91) ? (t = u(e, 91), n.e == t.e && n.d == t.d && Jae(n, t.a)) : !1;
+ }
+ function B2(n) {
+ switch (J(), n.g) {
+ case 4:
+ return Kn;
+ case 1:
+ return Vn;
+ case 3:
+ return ae;
+ case 2:
+ return Gn;
+ default:
+ return Xr;
+ }
+ }
+ function PQ(n, e) {
+ switch (e) {
+ case 3:
+ return n.f != 0;
+ case 4:
+ return n.g != 0;
+ case 5:
+ return n.i != 0;
+ case 6:
+ return n.j != 0;
+ }
+ return SV(n, e);
+ }
+ function p2e(n) {
+ switch (n.g) {
+ case 0:
+ return new Ngn();
+ case 1:
+ return new Bgn();
+ default:
+ throw T(new Hn(lB + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function i$n(n) {
+ switch (n.g) {
+ case 0:
+ return new Lgn();
+ case 1:
+ return new Rgn();
+ default:
+ throw T(new Hn(AN + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function r$n(n) {
+ switch (n.g) {
+ case 0:
+ return new sG();
+ case 1:
+ return new w9n();
+ default:
+ throw T(new Hn(bA + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function v2e(n) {
+ switch (n.g) {
+ case 1:
+ return new Ign();
+ case 2:
+ return new yjn();
+ default:
+ throw T(new Hn(lB + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function m2e(n) {
+ var e, t;
+ if (n.b)
+ return n.b;
+ for (t = pf ? null : n.d; t; ) {
+ if (e = pf ? null : t.b, e)
+ return e;
+ t = pf ? null : t.d;
+ }
+ return n3(), Uin;
+ }
+ function k2e(n) {
+ var e, t, i;
+ return n.e == 0 ? 0 : (e = n.d << 5, t = n.a[n.d - 1], n.e < 0 && (i = bOn(n), i == n.d - 1 && (--t, t = t | 0)), e -= x7(t), e);
+ }
+ function y2e(n) {
+ var e, t, i;
+ return n < GA.length ? GA[n] : (t = n >> 5, e = n & 31, i = F(be, Le, 25, t + 1, 15, 1), i[t] = 1 << e, new Pw(1, t + 1, i));
+ }
+ function c$n(n) {
+ var e, t, i;
+ return t = n.zg(), t ? (e = n.Ug(), I(e, 160) && (i = c$n(u(e, 160)), i != null) ? i + "." + t : t) : null;
+ }
+ function bb(n, e, t) {
+ var i, r;
+ for (r = n.Kc(); r.Ob(); )
+ if (i = r.Pb(), B(e) === B(i) || e != null && tt(e, i))
+ return t && r.Qb(), !0;
+ return !1;
+ }
+ function IQ(n, e, t) {
+ var i, r;
+ if (++n.j, t.dc())
+ return !1;
+ for (r = t.Kc(); r.Ob(); )
+ i = r.Pb(), n.Hi(e, n.oi(e, i)), ++e;
+ return !0;
+ }
+ function j2e(n, e, t, i) {
+ var r, c;
+ if (c = t - e, c < 3)
+ for (; c < 3; )
+ n *= 10, ++c;
+ else {
+ for (r = 1; c > 3; )
+ r *= 10, --c;
+ n = (n + (r >> 1)) / r | 0;
+ }
+ return i.i = n, !0;
+ }
+ function E2e(n) {
+ return yF(), qn(), !!(e$n(u(n.a, 81).j, u(n.b, 103)) || u(n.a, 81).d.e != 0 && e$n(u(n.a, 81).j, u(n.b, 103)));
+ }
+ function C2e(n) {
+ DC(), u(n.We((Xe(), Rl)), 174).Hc((xu(), UP)) && (u(n.We(cw), 174).Fc((Tu(), Pp)), u(n.We(Rl), 174).Mc(UP));
+ }
+ function u$n(n, e) {
+ var t, i;
+ if (e) {
+ for (t = 0; t < n.i; ++t)
+ if (i = u(n.g[t], 366), i.Di(e))
+ return !1;
+ return me(n, e);
+ } else
+ return !1;
+ }
+ function OQ(n) {
+ var e, t, i, r;
+ for (e = new ea(), r = new _p(n.b.Kc()); r.b.Ob(); )
+ i = u(r.b.Pb(), 686), t = _5e(i), she(e, e.a.length, t);
+ return e.a;
+ }
+ function DQ(n) {
+ var e;
+ return !n.c && (n.c = new zln()), wi(n.d, new Wln()), Mke(n), e = b7e(n), Rt(new $n(null, new xn(n.d, 16)), new c5n(n)), e;
+ }
+ function MT(n) {
+ var e;
+ return n.Db & 64 ? r6(n) : (e = new Ns(r6(n)), e.a += " (instanceClassName: ", dr(e, n.D), e.a += ")", e.a);
+ }
+ function T2e(n, e) {
+ var t, i, r, c;
+ e && (r = Nh(e, "x"), t = new wmn(n), O3(t.a, (_n(r), r)), c = Nh(e, "y"), i = new gmn(n), $3(i.a, (_n(c), c)));
+ }
+ function M2e(n, e) {
+ var t, i, r, c;
+ e && (r = Nh(e, "x"), t = new lmn(n), D3(t.a, (_n(r), r)), c = Nh(e, "y"), i = new dmn(n), F3(i.a, (_n(c), c)));
+ }
+ function yt(n, e) {
+ var t, i, r;
+ if (t = (n.i == null && Lf(n), n.i), i = e.aj(), i != -1) {
+ for (r = t.length; i < r; ++i)
+ if (t[i] == e)
+ return i;
+ }
+ return -1;
+ }
+ function A2e(n) {
+ var e, t, i, r, c;
+ for (t = u(n.g, 674), i = n.i - 1; i >= 0; --i)
+ for (e = t[i], r = 0; r < i; ++r)
+ if (c = t[r], rRn(n, e, c)) {
+ H2(n, i);
+ break;
+ }
+ }
+ function S2e(n) {
+ var e = n.e;
+ function t(i) {
+ return !i || i.length == 0 ? "" : " " + i.join(`
+ `);
+ }
+ return e && (e.stack || t(n[PL]));
+ }
+ function $Q(n) {
+ eb();
+ var e;
+ switch (e = n.Pc(), e.length) {
+ case 0:
+ return sR;
+ case 1:
+ return new pD(pe(e[0]));
+ default:
+ return new JD(Qge(e));
+ }
+ }
+ function Wd(n, e) {
+ switch (e.g) {
+ case 1:
+ return v2(n.j, (du(), Vrn));
+ case 2:
+ return v2(n.j, (du(), Jrn));
+ default:
+ return Pn(), Pn(), cr;
+ }
+ }
+ function FQ(n, e) {
+ switch (e) {
+ case 3:
+ Rd(n, 0);
+ return;
+ case 4:
+ _d(n, 0);
+ return;
+ case 5:
+ Yc(n, 0);
+ return;
+ case 6:
+ Zc(n, 0);
+ return;
+ }
+ oQ(n, e);
+ }
+ function xF() {
+ xF = N, Oj(), uP = (nn(), M0), BQn = cf(A(M(KK, 1), Jen, 146, 0, [Zk, Mo, jp, T0, ew, G_, bv, wv, z_, Fm, Dg, Ja, $g]));
+ }
+ function s$n(n) {
+ var e, t;
+ e = n.d == (q2(), ev), t = $J(n), e && !t || !e && t ? H(n.a, (nn(), Qf), (oh(), ay)) : H(n.a, (nn(), Qf), (oh(), ly));
+ }
+ function P2e(n, e) {
+ var t;
+ return t = u(es(n, pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [(hf(), hs)]))), 15), t.Qc(OEn(t.gc()));
+ }
+ function AT() {
+ AT = N, oH = new Qj("SIMPLE", 0), Whn = new Qj("GROUP_DEC", 1), Vhn = new Qj("GROUP_MIXED", 2), Xhn = new Qj("GROUP_INC", 3);
+ }
+ function LF() {
+ LF = N, vH = new ipn(), v1n = new rpn(), m1n = new cpn(), k1n = new upn(), y1n = new spn(), j1n = new opn(), E1n = new fpn(), C1n = new hpn(), T1n = new lpn();
+ }
+ function o$n(n, e, t) {
+ gIn(), o9n.call(this), this.a = fa(Vzn, [q, lnn], [595, 212], 0, [QA, CR], 2), this.c = new d2(), this.g = n, this.f = e, this.d = t;
+ }
+ function xQ(n, e) {
+ this.n = fa(Jl, [q, QL], [364, 25], 14, [e, zt(j.Math.ceil(n / 32))], 2), this.o = n, this.p = e, this.j = n - 1 >> 1, this.k = e - 1 >> 1;
+ }
+ function I2e(n, e) {
+ le(e, "End label post-processing", 1), Rt(gt(qr(new $n(null, new xn(n.b, 16)), new sdn()), new odn()), new fdn()), ce(e);
+ }
+ function O2e(n, e, t) {
+ var i, r;
+ return i = K(n.p[e.i.p]) + K(n.d[e.i.p]) + e.n.b + e.a.b, r = K(n.p[t.i.p]) + K(n.d[t.i.p]) + t.n.b + t.a.b, r - i;
+ }
+ function D2e(n, e, t) {
+ var i, r;
+ for (i = ui(t, fr), r = 0; hc(i, 0) != 0 && r < e; r++)
+ i = Hi(i, ui(n[r], fr)), n[r] = ge(i), i = rl(i, 32);
+ return ge(i);
+ }
+ function ST(n) {
+ var e, t, i, r;
+ for (r = 0, t = 0, i = n.length; t < i; t++)
+ e = (Me(t, n.length), n.charCodeAt(t)), e < 64 && (r = rf(r, Ph(1, e)));
+ return r;
+ }
+ function $2e(n) {
+ var e;
+ return n == null ? null : new tl((e = Ec(n, !0), e.length > 0 && (Me(0, e.length), e.charCodeAt(0) == 43) ? e.substr(1) : e));
+ }
+ function F2e(n) {
+ var e;
+ return n == null ? null : new tl((e = Ec(n, !0), e.length > 0 && (Me(0, e.length), e.charCodeAt(0) == 43) ? e.substr(1) : e));
+ }
+ function LQ(n, e) {
+ var t;
+ return n.i > 0 && (e.length < n.i && (t = Q8(Du(e).c, n.i), e = t), pc(n.g, 0, e, 0, n.i)), e.length > n.i && Mt(e, n.i, null), e;
+ }
+ function Dc(n, e, t) {
+ var i, r, c;
+ return n.ej() ? (i = n.i, c = n.fj(), a7(n, i, e), r = n.Zi(3, null, e, i, c), t ? t.Ei(r) : t = r) : a7(n, n.i, e), t;
+ }
+ function x2e(n, e, t) {
+ var i, r;
+ return i = new xh(n.e, 4, 10, (r = e.c, I(r, 88) ? u(r, 26) : (Sn(), uo)), null, v1(n, e), !1), t ? t.Ei(i) : t = i, t;
+ }
+ function L2e(n, e, t) {
+ var i, r;
+ return i = new xh(n.e, 3, 10, null, (r = e.c, I(r, 88) ? u(r, 26) : (Sn(), uo)), v1(n, e), !1), t ? t.Ei(i) : t = i, t;
+ }
+ function f$n(n) {
+ X0();
+ var e;
+ return e = new kr(u(n.e.We((Xe(), Kg)), 8)), n.B.Hc((xu(), Tv)) && (e.a <= 0 && (e.a = 20), e.b <= 0 && (e.b = 20)), e;
+ }
+ function h$n(n) {
+ gb();
+ var e;
+ return (n.q ? n.q : (Pn(), Pn(), ph))._b((nn(), E0)) ? e = u(k(n, E0), 197) : e = u(k(qi(n), $m), 197), e;
+ }
+ function wb(n, e) {
+ var t, i;
+ return i = null, ai(n, (nn(), rP)) && (t = u(k(n, rP), 94), t.Xe(e) && (i = t.We(e))), i == null && (i = k(qi(n), e)), i;
+ }
+ function l$n(n, e) {
+ var t, i, r;
+ return I(e, 42) ? (t = u(e, 42), i = t.cd(), r = db(n.Rc(), i), $f(r, t.dd()) && (r != null || n.Rc()._b(i))) : !1;
+ }
+ function NF(n, e) {
+ var t, i, r;
+ return n.f > 0 ? (n.qj(), i = e == null ? 0 : mt(e), r = (i & nt) % n.d.length, t = lNn(n, r, i, e), t != -1) : !1;
+ }
+ function Ko(n, e) {
+ var t, i, r;
+ return n.f > 0 && (n.qj(), i = e == null ? 0 : mt(e), r = (i & nt) % n.d.length, t = kY(n, r, i, e), t) ? t.dd() : null;
+ }
+ function g7(n, e) {
+ var t, i, r, c;
+ for (c = _c(n.e.Tg(), e), t = u(n.g, 119), r = 0; r < n.i; ++r)
+ if (i = t[r], c.rl(i.ak()))
+ return !1;
+ return !0;
+ }
+ function a$n(n) {
+ if (n.b == null) {
+ for (; n.a.Ob(); )
+ if (n.b = n.a.Pb(), !u(n.b, 49).Zg())
+ return !0;
+ return n.b = null, !1;
+ } else
+ return !0;
+ }
+ function d$n(n, e) {
+ n.mj();
+ try {
+ n.d.Vc(n.e++, e), n.f = n.d.j, n.g = -1;
+ } catch (t) {
+ throw t = jt(t), I(t, 73) ? T(new ps()) : T(t);
+ }
+ }
+ function PT(n, e) {
+ Cz();
+ var t, i;
+ return t = a8((wj(), wj(), dm)), i = null, e == t && (i = u(mc(bin, n), 615)), i || (i = new JCn(n), e == t && yr(bin, n, i)), i;
+ }
+ function b$n(n, e) {
+ var t, i;
+ n.a = Hi(n.a, 1), n.c = j.Math.min(n.c, e), n.b = j.Math.max(n.b, e), n.d += e, t = e - n.f, i = n.e + t, n.f = i - n.e - t, n.e = i;
+ }
+ function N2e(n, e) {
+ var t;
+ n.c = e, n.a = k2e(e), n.a < 54 && (n.f = (t = e.d > 1 ? rf(Ph(e.a[1], 32), ui(e.a[0], fr)) : ui(e.a[0], fr), Fd(Ni(e.e, t))));
+ }
+ function p7(n, e) {
+ var t;
+ return Fr(n) && Fr(e) && (t = n % e, ik < t && t < Fa) ? t : dl((IZ(Fr(n) ? _s(n) : n, Fr(e) ? _s(e) : e, !0), Pl));
+ }
+ function h6(n, e) {
+ var t;
+ iCe(e), t = u(k(n, (nn(), JS)), 276), t && H(n, JS, L3e(t)), u1(n.c), u1(n.f), NX(n.d), NX(u(k(n, eP), 207));
+ }
+ function w$n(n) {
+ this.e = F(be, Le, 25, n.length, 15, 1), this.c = F(_u, wh, 25, n.length, 16, 1), this.b = F(_u, wh, 25, n.length, 16, 1), this.f = 0;
+ }
+ function B2e(n) {
+ var e, t;
+ for (n.j = F(Ci, pr, 25, n.p.c.length, 15, 1), t = new E(n.p); t.a < t.c.c.length; )
+ e = u(y(t), 10), n.j[e.p] = e.o.b / n.i;
+ }
+ function BF(n) {
+ var e;
+ n.c != 0 && (e = u(un(n.a, n.b), 287), e.b == 1 ? (++n.b, n.b < n.a.c.length && Ovn(u(un(n.a, n.b), 287))) : --e.b, --n.c);
+ }
+ function R2e(n) {
+ var e;
+ e = n.a;
+ do
+ e = u(ve(new re(ue(ei(e).a.Kc(), new Mn()))), 17).d.i, e.k == (Qn(), pi) && W(n.e, e);
+ while (e.k == (Qn(), pi));
+ }
+ function NQ() {
+ NQ = N, zhn = new md(15), gne = new tr((Xe(), ed), zhn), vne = new tr(td, 15), pne = new tr(tH, Q(0)), wne = new tr(Tp, D4);
+ }
+ function Vu() {
+ Vu = N, Ay = new Vj("PORTS", 0), rd = new Vj("PORT_LABELS", 1), My = new Vj("NODE_LABELS", 2), sw = new Vj("MINIMUM_SIZE", 3);
+ }
+ function v7(n, e) {
+ var t, i;
+ for (i = e.length, t = 0; t < i; t += 2)
+ jc(n, (Me(t, e.length), e.charCodeAt(t)), (Me(t + 1, e.length), e.charCodeAt(t + 1)));
+ }
+ function g$n(n, e, t) {
+ var i, r, c, o;
+ for (c = e - n.e, o = t - n.f, r = new E(n.a); r.a < r.c.c.length; )
+ i = u(y(r), 187), k7(i, i.s + c, i.t + o);
+ n.e = e, n.f = t;
+ }
+ function _2e(n, e) {
+ var t, i, r, c;
+ for (c = e.b.b, n.a = new Ct(), n.b = F(be, Le, 25, c, 15, 1), t = 0, r = _e(e.b, 0); r.b != r.d.c; )
+ i = u(Re(r), 86), i.g = t++;
+ }
+ function p$n(n, e) {
+ var t, i, r, c;
+ return t = e >> 5, e &= 31, r = n.d + t + (e == 0 ? 0 : 1), i = F(be, Le, 25, r, 15, 1), Nve(i, n.a, t, e), c = new Pw(n.e, r, i), K5(c), c;
+ }
+ function BQ(n, e, t) {
+ var i, r;
+ i = u(mc(Sv, e), 117), r = u(mc(m9, e), 117), t ? (yr(Sv, n, i), yr(m9, n, r)) : (yr(m9, n, i), yr(Sv, n, r));
+ }
+ function v$n(n, e, t) {
+ var i, r, c;
+ for (r = null, c = n.b; c; ) {
+ if (i = n.a.ue(e, c.d), t && i == 0)
+ return c;
+ i >= 0 ? c = c.a[1] : (r = c, c = c.a[0]);
+ }
+ return r;
+ }
+ function m$n(n, e, t) {
+ var i, r, c;
+ for (r = null, c = n.b; c; ) {
+ if (i = n.a.ue(e, c.d), t && i == 0)
+ return c;
+ i <= 0 ? c = c.a[0] : (r = c, c = c.a[1]);
+ }
+ return r;
+ }
+ function K2e(n, e, t, i) {
+ var r, c, o;
+ return r = !1, jEe(n.f, t, i) && (ape(n.f, n.a[e][t], n.a[e][i]), c = n.a[e], o = c[i], c[i] = c[t], c[t] = o, r = !0), r;
+ }
+ function RQ(n, e, t, i, r) {
+ var c, o, f;
+ for (o = r; e.b != e.c; )
+ c = u(y2(e), 10), f = u(zr(c, i).Xb(0), 11), n.d[f.p] = o++, t.c[t.c.length] = f;
+ return o;
+ }
+ function _Q(n, e, t) {
+ var i, r, c, o, f;
+ return o = n.k, f = e.k, i = t[o.g][f.g], r = Y(wb(n, i)), c = Y(wb(e, i)), j.Math.max((_n(r), r), (_n(c), c));
+ }
+ function H2e(n, e, t) {
+ var i, r, c, o;
+ for (i = t / n.c.length, r = 0, o = new E(n); o.a < o.c.c.length; )
+ c = u(y(o), 200), CDn(c, c.f + i * r), y4e(c, e, i), ++r;
+ }
+ function k$n(n, e, t) {
+ var i, r, c, o;
+ for (r = u(te(n.b, t), 177), i = 0, o = new E(e.j); o.a < o.c.c.length; )
+ c = u(y(o), 113), r[c.d.p] && ++i;
+ return i;
+ }
+ function y$n(n) {
+ var e, t;
+ return e = u(Rn(n.a, 4), 126), e != null ? (t = F(bH, qB, 415, e.length, 0, 1), pc(e, 0, t, 0, e.length), t) : Bne;
+ }
+ function q2e() {
+ var n;
+ return _A != 0 && (n = cde(), n - gzn > 2e3 && (gzn = n, KA = j.setTimeout(Vie, 10))), _A++ == 0 ? (E0e((aG(), din)), !0) : !1;
+ }
+ function G2e(n, e) {
+ var t, i, r;
+ for (i = new re(ue(ei(n).a.Kc(), new Mn())); Se(i); )
+ if (t = u(ve(i), 17), r = t.d.i, r.c == e)
+ return !1;
+ return !0;
+ }
+ function KQ(n, e) {
+ var t, i;
+ if (I(e, 245)) {
+ i = u(e, 245);
+ try {
+ return t = n.vd(i), t == 0;
+ } catch (r) {
+ if (r = jt(r), !I(r, 205))
+ throw T(r);
+ }
+ }
+ return !1;
+ }
+ function z2e() {
+ return Error.stackTraceLimit > 0 ? (j.Error.stackTraceLimit = Error.stackTraceLimit = 64, !0) : "stack" in new Error();
+ }
+ function U2e(n, e) {
+ return Yo(), Yo(), mo(El), (j.Math.abs(n - e) <= El || n == e || isNaN(n) && isNaN(e) ? 0 : n < e ? -1 : n > e ? 1 : vd(isNaN(n), isNaN(e))) > 0;
+ }
+ function HQ(n, e) {
+ return Yo(), Yo(), mo(El), (j.Math.abs(n - e) <= El || n == e || isNaN(n) && isNaN(e) ? 0 : n < e ? -1 : n > e ? 1 : vd(isNaN(n), isNaN(e))) < 0;
+ }
+ function j$n(n, e) {
+ return Yo(), Yo(), mo(El), (j.Math.abs(n - e) <= El || n == e || isNaN(n) && isNaN(e) ? 0 : n < e ? -1 : n > e ? 1 : vd(isNaN(n), isNaN(e))) <= 0;
+ }
+ function RF(n, e) {
+ for (var t = 0; !e[t] || e[t] == ""; )
+ t++;
+ for (var i = e[t++]; t < e.length; t++)
+ !e[t] || e[t] == "" || (i += n + e[t]);
+ return i;
+ }
+ function Ks(n, e, t) {
+ var i, r, c, o;
+ for (c = e + t, RX(e, c, n.length), o = "", r = e; r < c; )
+ i = j.Math.min(r + 1e4, c), o += xhe(n.slice(r, i)), r = i;
+ return o;
+ }
+ function E$n(n) {
+ var e, t, i, r, c;
+ if (n == null)
+ return null;
+ for (c = new X(), t = aF(n), i = 0, r = t.length; i < r; ++i)
+ e = t[i], W(c, Ec(e, !0));
+ return c;
+ }
+ function C$n(n) {
+ var e, t, i, r, c;
+ if (n == null)
+ return null;
+ for (c = new X(), t = aF(n), i = 0, r = t.length; i < r; ++i)
+ e = t[i], W(c, Ec(e, !0));
+ return c;
+ }
+ function T$n(n) {
+ var e, t, i, r, c;
+ if (n == null)
+ return null;
+ for (c = new X(), t = aF(n), i = 0, r = t.length; i < r; ++i)
+ e = t[i], W(c, Ec(e, !0));
+ return c;
+ }
+ function M$n(n, e) {
+ var t, i, r;
+ if (n.c)
+ _d(n.c, e);
+ else
+ for (t = e - au(n), r = new E(n.d); r.a < r.c.c.length; )
+ i = u(y(r), 157), M$n(i, au(i) + t);
+ }
+ function A$n(n, e) {
+ var t, i, r;
+ if (n.c)
+ Rd(n.c, e);
+ else
+ for (t = e - Gu(n), r = new E(n.a); r.a < r.c.c.length; )
+ i = u(y(r), 157), A$n(i, Gu(i) + t);
+ }
+ function W2e(n, e) {
+ var t, i, r, c;
+ for (r = new Ic(e.gc()), i = e.Kc(); i.Ob(); )
+ t = i.Pb(), c = Zx(n, u(t, 56)), c && (r.c[r.c.length] = c);
+ return r;
+ }
+ function IT(n, e) {
+ var t, i, r;
+ return n.qj(), i = e == null ? 0 : mt(e), r = (i & nt) % n.d.length, t = kY(n, r, i, e), t ? (LIn(n, t), t.dd()) : null;
+ }
+ function Xd(n) {
+ var e, t;
+ for (t = Rxn(n), e = null; n.c == 2; )
+ Qe(n), e || (e = (Je(), Je(), new v5(2)), Da(e, t), t = e), t.$l(Rxn(n));
+ return t;
+ }
+ function t4(n) {
+ var e, t, i;
+ if (i = null, e = Uf in n.a, t = !e, t)
+ throw T(new Af("Every element must have an id."));
+ return i = G2(Oh(n, Uf)), i;
+ }
+ function OT(n) {
+ var e, t, i;
+ if (i = n.Zg(), !i)
+ for (e = 0, t = n.eh(); t; t = t.eh()) {
+ if (++e > JL)
+ return t.fh();
+ if (i = t.Zg(), i || t == n)
+ break;
+ }
+ return i;
+ }
+ function qQ(n) {
+ return dC(), I(n, 156) ? u(te($y, Szn), 288).vg(n) : zu($y, Du(n)) ? u(te($y, Du(n)), 288).vg(n) : null;
+ }
+ function X2e(n) {
+ if (DT(N4, n))
+ return qn(), G4;
+ if (DT(EB, n))
+ return qn(), Ga;
+ throw T(new Hn("Expecting true or false"));
+ }
+ function V2e(n, e) {
+ if (e.c == n)
+ return e.d;
+ if (e.d == n)
+ return e.c;
+ throw T(new Hn("Input edge is not connected to the input port."));
+ }
+ function S$n(n, e) {
+ return n.e > e.e ? 1 : n.e < e.e ? -1 : n.d > e.d ? n.e : n.d < e.d ? -e.e : n.e * YV(n.a, e.a, n.d);
+ }
+ function P$n(n) {
+ return n >= 48 && n < 48 + j.Math.min(10, 10) ? n - 48 : n >= 97 && n < 97 ? n - 97 + 10 : n >= 65 && n < 65 ? n - 65 + 10 : -1;
+ }
+ function I$n(n, e) {
+ var t;
+ return B(e) === B(n) ? !0 : !I(e, 21) || (t = u(e, 21), t.gc() != n.gc()) ? !1 : n.Ic(t);
+ }
+ function Q2e(n, e) {
+ var t, i, r, c;
+ return i = n.a.length - 1, t = e - n.b & i, c = n.c - e & i, r = n.c - n.b & i, ujn(t < r), t >= c ? (Vwe(n, e), -1) : (Qwe(n, e), 1);
+ }
+ function J2e(n, e) {
+ var t, i;
+ for (t = (Me(e, n.length), n.charCodeAt(e)), i = e + 1; i < n.length && (Me(i, n.length), n.charCodeAt(i) == t); )
+ ++i;
+ return i - e;
+ }
+ function GQ(n) {
+ switch (n.g) {
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ case 17:
+ case 18:
+ case 19:
+ case 20:
+ return !0;
+ default:
+ return !1;
+ }
+ }
+ function Y2e(n, e) {
+ var t = n.a, i;
+ e = String(e), t.hasOwnProperty(e) && (i = t[e]);
+ var r = (cF(), dR)[typeof i], c = r ? r(i) : tQ(typeof i);
+ return c;
+ }
+ function Vd(n, e) {
+ if (n.a < 0)
+ throw T(new $r("Did not call before(...) or after(...) before calling add(...)."));
+ return Xz(n, n.a, e), n;
+ }
+ function Z2e(n, e, t, i) {
+ var r, c;
+ e.c.length != 0 && (r = N9e(t, i), c = L6e(e), Rt(qC(new $n(null, new xn(c, 1)), new wgn()), new jTn(n, t, r, i)));
+ }
+ function R2(n, e, t) {
+ var i;
+ n.Db & e ? t == null ? jme(n, e) : (i = ux(n, e), i == -1 ? n.Eb = t : Mt(va(n.Eb), i, t)) : t != null && W8e(n, e, t);
+ }
+ function Bc(n) {
+ var e, t;
+ return n.Db & 32 || (t = (e = u(Rn(n, 16), 26), ee(e || n.zh()) - ee(n.zh())), t != 0 && R2(n, 32, F(Zn, rn, 1, t, 5, 1))), n;
+ }
+ function npe(n) {
+ var e;
+ return n.b || Gie(n, (e = Fue(n.e, n.a), !e || !An(EB, Ko((!e.b && (e.b = new qu((Sn(), Zi), tc, e)), e.b), "qualified")))), n.c;
+ }
+ function epe(n, e, t) {
+ var i, r, c;
+ return i = u(D(Ou(n.a), e), 87), c = (r = i.c, r || (Sn(), Cf)), (c.kh() ? gl(n.b, u(c, 49)) : c) == t ? pM(i) : I3(i, t), c;
+ }
+ function tpe(n, e) {
+ (!e && console.groupCollapsed != null ? console.groupCollapsed : console.group ?? console.log).call(console, n);
+ }
+ function ipe(n, e, t, i) {
+ i == n, u(t.b, 65), u(t.b, 65), u(i.b, 65), u(i.b, 65).c.b, BX(i, e, n);
+ }
+ function rpe(n) {
+ var e, t;
+ for (e = new E(n.g); e.a < e.c.c.length; )
+ u(y(e), 562);
+ t = new xNn(n.g, K(n.a), n.c), lCe(t), n.g = t.b, n.d = t.a;
+ }
+ function zQ(n, e, t) {
+ e.b = j.Math.max(e.b, -t.a), e.c = j.Math.max(e.c, t.a - n.a), e.d = j.Math.max(e.d, -t.b), e.a = j.Math.max(e.a, t.b - n.b);
+ }
+ function cpe(n, e) {
+ return n.e < e.e ? -1 : n.e > e.e ? 1 : n.f < e.f ? -1 : n.f > e.f ? 1 : mt(n) - mt(e);
+ }
+ function DT(n, e) {
+ return _n(n), e == null ? !1 : An(n, e) ? !0 : n.length == e.length && An(n.toLowerCase(), e.toLowerCase());
+ }
+ function upe(n, e) {
+ var t, i, r, c;
+ for (i = 0, r = e.gc(); i < r; ++i)
+ t = e.il(i), I(t, 99) && u(t, 18).Bb & sc && (c = e.jl(i), c != null && Zx(n, u(c, 56)));
+ }
+ function O$n(n, e, t) {
+ var i, r, c;
+ for (c = new E(t.a); c.a < c.c.c.length; )
+ r = u(y(c), 221), i = new sE(u(te(n.a, r.b), 65)), W(e.a, i), O$n(n, i, r);
+ }
+ function Aa(n) {
+ var e, t;
+ return hc(n, -129) > 0 && hc(n, 128) < 0 ? (e = ge(n) + 128, t = (VEn(), Ein)[e], !t && (t = Ein[e] = new pq(n)), t) : new pq(n);
+ }
+ function D$n(n, e) {
+ var t, i;
+ return t = e.Hh(n.a), t && (i = Te(Ko((!t.b && (t.b = new qu((Sn(), Zi), tc, t)), t.b), We)), i != null) ? i : e.ne();
+ }
+ function spe(n, e) {
+ var t, i;
+ return t = e.Hh(n.a), t && (i = Te(Ko((!t.b && (t.b = new qu((Sn(), Zi), tc, t)), t.b), We)), i != null) ? i : e.ne();
+ }
+ function ope(n, e) {
+ c$();
+ var t, i;
+ for (i = new re(ue(_h(n).a.Kc(), new Mn())); Se(i); )
+ if (t = u(ve(i), 17), t.d.i == e || t.c.i == e)
+ return t;
+ return null;
+ }
+ function UQ(n, e, t) {
+ this.c = n, this.f = new X(), this.e = new Li(), this.j = new eW(), this.n = new eW(), this.b = e, this.g = new ks(e.c, e.d, e.b, e.a), this.a = t;
+ }
+ function _F(n) {
+ var e, t, i, r;
+ for (this.a = new Ah(), this.d = new hi(), this.e = 0, t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], !this.f && (this.f = e), d$(this, e);
+ }
+ function $$n(n) {
+ yl(), n.length == 0 ? (this.e = 0, this.d = 1, this.a = A(M(be, 1), Le, 25, 15, [0])) : (this.e = 1, this.d = n.length, this.a = n, K5(this));
+ }
+ function l6(n, e, t) {
+ o9n.call(this), this.a = F(Vzn, lnn, 212, (_o(), A(M(Kb, 1), z, 232, 0, [Zr, xc, nc])).length, 0, 1), this.b = n, this.d = e, this.c = t;
+ }
+ function F$n(n) {
+ this.d = new X(), this.e = new wa(), this.c = F(be, Le, 25, (J(), A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn])).length, 15, 1), this.b = n;
+ }
+ function fpe(n) {
+ var e, t, i, r, c, o;
+ for (o = u(k(n, (G(), rt)), 11), H(o, fv, n.i.n.b), e = xf(n.e), i = e, r = 0, c = i.length; r < c; ++r)
+ t = i[r], Ti(t, o);
+ }
+ function hpe(n) {
+ var e, t, i, r, c, o;
+ for (t = u(k(n, (G(), rt)), 11), H(t, fv, n.i.n.b), e = xf(n.g), r = e, c = 0, o = r.length; c < o; ++c)
+ i = r[c], Ki(i, t);
+ }
+ function lpe(n) {
+ var e, t;
+ return ai(n.d.i, (nn(), lv)) ? (e = u(k(n.c.i, lv), 19), t = u(k(n.d.i, lv), 19), zc(e.a, t.a) > 0) : !1;
+ }
+ function x$n(n) {
+ var e;
+ B(hn(n, (Xe(), Bg))) === B((Rh(), HP)) && (At(n) ? (e = u(hn(At(n), Bg), 334), gr(n, Bg, e)) : gr(n, Bg, i9));
+ }
+ function ape(n, e, t) {
+ var i, r;
+ yx(n.e, e, t, (J(), Gn)), yx(n.i, e, t, Vn), n.a && (r = u(k(e, (G(), rt)), 11), i = u(k(t, rt), 11), l$(n.g, r, i));
+ }
+ function L$n(n, e, t) {
+ var i, r, c;
+ i = e.c.p, c = e.p, n.b[i][c] = new ZTn(n, e), t && (n.a[i][c] = new u6n(e), r = u(k(e, (G(), k0)), 10), r && Tn(n.d, r, e));
+ }
+ function N$n(n, e) {
+ var t, i, r;
+ if (W(eS, n), e.Fc(n), t = u(te(DR, n), 21), t)
+ for (r = t.Kc(); r.Ob(); )
+ i = u(r.Pb(), 33), xr(eS, i, 0) != -1 || N$n(i, e);
+ }
+ function dpe(n, e, t) {
+ var i;
+ (xzn ? (m2e(n), !0) : Lzn || Bzn ? (n3(), !0) : Nzn && (n3(), !1)) && (i = new lEn(e), i.b = t, g5e(n, i));
+ }
+ function KF(n, e) {
+ var t;
+ t = !n.A.Hc((Vu(), rd)) || n.q == (Ai(), Sc), n.u.Hc((Tu(), Zh)) ? t ? xCe(n, e) : d_n(n, e) : n.u.Hc(ql) && (t ? nCe(n, e) : A_n(n, e));
+ }
+ function i4(n, e) {
+ var t, i;
+ if (++n.j, e != null && (t = (i = n.a.Cb, I(i, 97) ? u(i, 97).Jg() : null), ome(e, t))) {
+ R2(n.a, 4, t);
+ return;
+ }
+ R2(n.a, 4, u(e, 126));
+ }
+ function B$n(n, e, t) {
+ return new ks(j.Math.min(n.a, e.a) - t / 2, j.Math.min(n.b, e.b) - t / 2, j.Math.abs(n.a - e.a) + t, j.Math.abs(n.b - e.b) + t);
+ }
+ function bpe(n, e) {
+ var t, i;
+ return t = zc(n.a.c.p, e.a.c.p), t != 0 ? t : (i = zc(n.a.d.i.p, e.a.d.i.p), i != 0 ? i : zc(e.a.d.p, n.a.d.p));
+ }
+ function wpe(n, e, t) {
+ var i, r, c, o;
+ return c = e.j, o = t.j, c != o ? c.g - o.g : (i = n.f[e.p], r = n.f[t.p], i == 0 && r == 0 ? 0 : i == 0 ? -1 : r == 0 ? 1 : ni(i, r));
+ }
+ function R$n(n, e, t) {
+ var i, r, c;
+ if (!t[e.d])
+ for (t[e.d] = !0, r = new E(Hw(e)); r.a < r.c.c.length; )
+ i = u(y(r), 213), c = TT(i, e), R$n(n, c, t);
+ }
+ function WQ(n, e, t) {
+ var i;
+ switch (i = t[n.g][e], n.g) {
+ case 1:
+ case 3:
+ return new fn(0, i);
+ case 2:
+ case 4:
+ return new fn(i, 0);
+ default:
+ return null;
+ }
+ }
+ function gpe(n, e, t) {
+ var i, r;
+ r = u(n$(e.f), 209);
+ try {
+ r.Ze(n, t), The(e.f, r);
+ } catch (c) {
+ throw c = jt(c), I(c, 102) ? (i = c, T(i)) : T(c);
+ }
+ }
+ function _$n(n, e, t) {
+ var i, r, c, o, f, h;
+ return i = null, f = $Z(L3(), e), c = null, f && (r = null, h = OZ(f, t), o = null, h != null && (o = n.Ye(f, h)), r = o, c = r), i = c, i;
+ }
+ function ppe(n, e, t, i) {
+ var r, c, o;
+ return r = new xh(n.e, 1, 13, (o = e.c, o || (Sn(), Cf)), (c = t.c, c || (Sn(), Cf)), v1(n, e), !1), i ? i.Ei(r) : i = r, i;
+ }
+ function HF(n, e, t, i) {
+ var r;
+ if (r = n.length, e >= r)
+ return r;
+ for (e = e > 0 ? e : 0; e < r && !uF((Me(e, n.length), n.charCodeAt(e)), t, i); e++)
+ ;
+ return e;
+ }
+ function lf(n, e) {
+ var t, i;
+ for (i = n.c.length, e.length < i && (e = pj(new Array(i), e)), t = 0; t < i; ++t)
+ Mt(e, t, n.c[t]);
+ return e.length > i && Mt(e, i, null), e;
+ }
+ function K$n(n, e) {
+ var t, i;
+ for (i = n.a.length, e.length < i && (e = pj(new Array(i), e)), t = 0; t < i; ++t)
+ Mt(e, t, n.a[t]);
+ return e.length > i && Mt(e, i, null), e;
+ }
+ function Sa(n, e, t) {
+ var i, r, c;
+ return r = u(te(n.e, e), 387), r ? (c = gU(r, t), Dyn(n, r), c) : (i = new qU(n, e, t), it(n.e, e, i), rMn(i), null);
+ }
+ function vpe(n) {
+ var e;
+ if (n == null)
+ return null;
+ if (e = a9e(Ec(n, !0)), e == null)
+ throw T(new VI("Invalid hexBinary value: '" + n + "'"));
+ return e;
+ }
+ function m7(n) {
+ return yl(), hc(n, 0) < 0 ? hc(n, -1) != 0 ? new OJ(-1, S3(n)) : gR : hc(n, 10) <= 0 ? xin[ge(n)] : new OJ(1, n);
+ }
+ function qF() {
+ return SM(), A(M(jUn, 1), z, 159, 0, [kUn, mUn, yUn, lUn, hUn, aUn, wUn, bUn, dUn, vUn, pUn, gUn, oUn, sUn, fUn, cUn, rUn, uUn, tUn, eUn, iUn, TR]);
+ }
+ function H$n(n) {
+ var e;
+ this.d = new X(), this.j = new Li(), this.g = new Li(), e = n.g.b, this.f = u(k(qi(e), (nn(), ls)), 103), this.e = K(Y(xT(e, ew)));
+ }
+ function q$n(n) {
+ this.b = new X(), this.e = new X(), this.d = n, this.a = !Wv(gt(new $n(null, new Td(new uf(n.b))), new Fv(new Gbn()))).sd((ua(), X4));
+ }
+ function Ho() {
+ Ho = N, Xn = new Z9("PARENTS", 0), vi = new Z9("NODES", 1), Yf = new Z9("EDGES", 2), Za = new Z9("PORTS", 3), D1 = new Z9("LABELS", 4);
+ }
+ function qw() {
+ qw = N, Kl = new e8("DISTRIBUTED", 0), Cy = new e8("JUSTIFIED", 1), Hhn = new e8("BEGIN", 2), r9 = new e8(P4, 3), qhn = new e8("END", 4);
+ }
+ function mpe(n) {
+ var e;
+ switch (e = n.yi(null), e) {
+ case 10:
+ return 0;
+ case 15:
+ return 1;
+ case 14:
+ return 2;
+ case 11:
+ return 3;
+ case 21:
+ return 4;
+ }
+ return -1;
+ }
+ function GF(n) {
+ switch (n.g) {
+ case 1:
+ return sr(), Jh;
+ case 4:
+ return sr(), Ys;
+ case 2:
+ return sr(), Ao;
+ case 3:
+ return sr(), Qh;
+ }
+ return sr(), mh;
+ }
+ function kpe(n, e, t) {
+ var i;
+ switch (i = t.q.getFullYear() - Cl + Cl, i < 0 && (i = -i), e) {
+ case 1:
+ n.a += i;
+ break;
+ case 2:
+ sh(n, i % 100, 2);
+ break;
+ default:
+ sh(n, i, e);
+ }
+ }
+ function _e(n, e) {
+ var t, i;
+ if (ib(e, n.b), e >= n.b >> 1)
+ for (i = n.c, t = n.b; t > e; --t)
+ i = i.b;
+ else
+ for (i = n.a.a, t = 0; t < e; ++t)
+ i = i.a;
+ return new fEn(n, e, i);
+ }
+ function $T() {
+ $T = N, yR = new HG("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST", 0), Qin = new HG("CORNER_CASES_THAN_SINGLE_SIDE_LAST", 1);
+ }
+ function ype(n) {
+ var e, t, i, r;
+ for (i = l6e(n), wi(i, NWn), r = n.d, r.c = F(Zn, rn, 1, 0, 5, 1), t = new E(i); t.a < t.c.c.length; )
+ e = u(y(t), 456), Zt(r, e.b);
+ }
+ function G$n(n) {
+ var e, t, i;
+ for (i = (!n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), n.o), t = i.c.Kc(); t.e != t.i.gc(); )
+ e = u(t.nj(), 42), e.dd();
+ return N8(i);
+ }
+ function jpe(n) {
+ var e;
+ p2(u(k(n, (nn(), Nt)), 98)) && (e = n.b, PLn((Ln(0, e.c.length), u(e.c[0], 29))), PLn(u(un(e, e.c.length - 1), 29)));
+ }
+ function z$n(n, e) {
+ var t, i, r, c;
+ for (t = 0, r = new E(e.a); r.a < r.c.c.length; )
+ i = u(y(r), 10), c = i.o.a + i.d.c + i.d.b + n.j, t = j.Math.max(t, c);
+ return t;
+ }
+ function FT(n) {
+ var e, t, i, r;
+ for (r = 0, t = 0, i = n.length; t < i; t++)
+ e = (Me(t, n.length), n.charCodeAt(t)), e >= 64 && e < 128 && (r = rf(r, Ph(1, e - 64)));
+ return r;
+ }
+ function xT(n, e) {
+ var t, i;
+ return i = null, ai(n, (Xe(), Ap)) && (t = u(k(n, Ap), 94), t.Xe(e) && (i = t.We(e))), i == null && qi(n) && (i = k(qi(n), e)), i;
+ }
+ function U$n(n, e) {
+ var t, i, r;
+ r = e.d.i, i = r.k, !(i == (Qn(), ii) || i == vf) && (t = new re(ue(ei(r).a.Kc(), new Mn())), Se(t) && it(n.k, e, u(ve(t), 17)));
+ }
+ function zF(n, e) {
+ var t, i, r;
+ return i = On(n.Tg(), e), t = e - n.Ah(), t < 0 ? (r = n.Yg(i), r >= 0 ? n.lh(r) : Ox(n, i)) : t < 0 ? Ox(n, i) : u(i, 66).Nj().Sj(n, n.yh(), t);
+ }
+ function cn(n) {
+ var e;
+ if (I(n.a, 4)) {
+ if (e = qQ(n.a), e == null)
+ throw T(new $r(qHn + n.b + "'. " + HHn + (Sh(Fy), Fy.k) + Etn));
+ return e;
+ } else
+ return n.a;
+ }
+ function Epe(n) {
+ var e;
+ if (n == null)
+ return null;
+ if (e = qCe(Ec(n, !0)), e == null)
+ throw T(new VI("Invalid base64Binary value: '" + n + "'"));
+ return e;
+ }
+ function oe(n) {
+ var e;
+ try {
+ return e = n.i.Xb(n.e), n.mj(), n.g = n.e++, e;
+ } catch (t) {
+ throw t = jt(t), I(t, 73) ? (n.mj(), T(new rc())) : T(t);
+ }
+ }
+ function UF(n) {
+ var e;
+ try {
+ return e = n.c.ki(n.e), n.mj(), n.g = n.e++, e;
+ } catch (t) {
+ throw t = jt(t), I(t, 73) ? (n.mj(), T(new rc())) : T(t);
+ }
+ }
+ function a6() {
+ a6 = N, Trn = (Xe(), yhn), IR = Zfn, xUn = Tp, Crn = ed, RUn = (WT(), irn), BUn = ern, _Un = crn, NUn = nrn, LUn = (pF(), yrn), PR = DUn, Ern = $Un, nS = FUn;
+ }
+ function LT(n) {
+ switch (DG(), this.c = new X(), this.d = n, n.g) {
+ case 0:
+ case 2:
+ this.a = _W(qrn), this.b = xt;
+ break;
+ case 3:
+ case 1:
+ this.a = qrn, this.b = Qt;
+ }
+ }
+ function W$n(n, e, t) {
+ var i, r;
+ if (n.c)
+ Yc(n.c, n.c.i + e), Zc(n.c, n.c.j + t);
+ else
+ for (r = new E(n.b); r.a < r.c.c.length; )
+ i = u(y(r), 157), W$n(i, e, t);
+ }
+ function Cpe(n, e) {
+ var t, i;
+ if (n.j.length != e.j.length)
+ return !1;
+ for (t = 0, i = n.j.length; t < i; t++)
+ if (!An(n.j[t], e.j[t]))
+ return !1;
+ return !0;
+ }
+ function NT(n, e, t) {
+ var i;
+ e.a.length > 0 && (W(n.b, new AEn(e.a, t)), i = e.a.length, 0 < i ? e.a = e.a.substr(0, 0) : 0 > i && (e.a += Oyn(F(xs, Bf, 25, -i, 15, 1))));
+ }
+ function X$n(n, e) {
+ var t, i, r;
+ for (t = n.o, r = u(u(ct(n.r, e), 21), 84).Kc(); r.Ob(); )
+ i = u(r.Pb(), 111), i.e.a = M3e(i, t.a), i.e.b = t.b * K(Y(i.b.We(JA)));
+ }
+ function Tpe(n, e) {
+ var t, i, r, c;
+ return r = n.k, t = K(Y(k(n, (G(), y0)))), c = e.k, i = K(Y(k(e, y0))), c != (Qn(), Vt) ? -1 : r != Vt ? 1 : t == i ? 0 : t < i ? -1 : 1;
+ }
+ function Mpe(n, e) {
+ var t, i;
+ return t = u(u(te(n.g, e.a), 46).a, 65), i = u(u(te(n.g, e.b), 46).a, 65), ll(e.a, e.b) - ll(e.a, Az(t.b)) - ll(e.b, Az(i.b));
+ }
+ function Ape(n, e) {
+ var t;
+ return t = u(k(n, (nn(), Mr)), 74), qO(e, OWn) ? t ? Rs(t) : (t = new ou(), H(n, Mr, t)) : t && H(n, Mr, null), t;
+ }
+ function V$n(n) {
+ var e;
+ return e = new X1(), e.a += "n", n.k != (Qn(), ii) && De(De((e.a += "(", e), VO(n.k).toLowerCase()), ")"), De((e.a += "_", e), E7(n)), e.a;
+ }
+ function Spe(n, e) {
+ le(e, "Self-Loop post-processing", 1), Rt(gt(gt(qr(new $n(null, new xn(n.b, 16)), new x0n()), new L0n()), new N0n()), new B0n()), ce(e);
+ }
+ function _2(n, e, t, i) {
+ var r;
+ return t >= 0 ? n.hh(e, t, i) : (n.eh() && (i = (r = n.Vg(), r >= 0 ? n.Qg(i) : n.eh().ih(n, -1 - r, null, i))), n.Sg(e, t, i));
+ }
+ function XQ(n, e) {
+ switch (e) {
+ case 7:
+ !n.e && (n.e = new Fn(bi, n, 7, 4)), de(n.e);
+ return;
+ case 8:
+ !n.d && (n.d = new Fn(bi, n, 8, 5)), de(n.d);
+ return;
+ }
+ FQ(n, e);
+ }
+ function qo(n, e) {
+ var t;
+ t = n.Zc(e);
+ try {
+ return t.Pb();
+ } catch (i) {
+ throw i = jt(i), I(i, 109) ? T(new mr("Can't get element " + e)) : T(i);
+ }
+ }
+ function VQ(n, e) {
+ this.e = n, e < YL ? (this.d = 1, this.a = A(M(be, 1), Le, 25, 15, [e | 0])) : (this.d = 2, this.a = A(M(be, 1), Le, 25, 15, [e % YL | 0, e / YL | 0]));
+ }
+ function Q$n(n, e) {
+ Pn();
+ var t, i, r, c;
+ for (t = n, c = e, I(n, 21) && !I(e, 21) && (t = e, c = n), r = t.Kc(); r.Ob(); )
+ if (i = r.Pb(), c.Hc(i))
+ return !1;
+ return !0;
+ }
+ function Gi(n, e, t) {
+ var i, r, c, o;
+ return i = n.Xc(e), i != -1 && (n.ej() ? (c = n.fj(), o = H2(n, i), r = n.Zi(4, o, null, i, c), t ? t.Ei(r) : t = r) : H2(n, i)), t;
+ }
+ function Ppe(n, e, t) {
+ var i, r, c, o;
+ return i = n.Xc(e), i != -1 && (n.ej() ? (c = n.fj(), o = OE(n, i), r = n.Zi(4, o, null, i, c), t ? t.Ei(r) : t = r) : OE(n, i)), t;
+ }
+ function J$n(n, e) {
+ var t;
+ switch (t = u(br(n.b, e), 124).n, e.g) {
+ case 1:
+ n.t >= 0 && (t.d = n.t);
+ break;
+ case 3:
+ n.t >= 0 && (t.a = n.t);
+ }
+ n.C && (t.b = n.C.b, t.c = n.C.c);
+ }
+ function K2() {
+ K2 = N, $k = new Rj(NM, 0), Dk = new Rj(lN, 1), Fk = new Rj(aN, 2), xk = new Rj(dN, 3), $k.a = !1, Dk.a = !0, Fk.a = !1, xk.a = !0;
+ }
+ function d6() {
+ d6 = N, Lk = new Bj(NM, 0), YA = new Bj(lN, 1), ZA = new Bj(aN, 2), Nk = new Bj(dN, 3), Lk.a = !1, YA.a = !0, ZA.a = !1, Nk.a = !0;
+ }
+ function Ipe(n) {
+ var e;
+ e = n.a;
+ do
+ e = u(ve(new re(ue(Lr(e).a.Kc(), new Mn()))), 17).c.i, e.k == (Qn(), pi) && n.b.Fc(e);
+ while (e.k == (Qn(), pi));
+ n.b = ma(n.b);
+ }
+ function Ope(n) {
+ var e, t, i;
+ for (i = n.c.a, n.p = (pe(i), new lu(i)), t = new E(i); t.a < t.c.c.length; )
+ e = u(y(t), 10), e.p = b6e(e).a;
+ Pn(), wi(n.p, new Cwn());
+ }
+ function Y$n(n) {
+ var e, t, i, r;
+ if (i = 0, r = Tb(n), r.c.length == 0)
+ return 1;
+ for (t = new E(r); t.a < t.c.c.length; )
+ e = u(y(t), 33), i += Y$n(e);
+ return i;
+ }
+ function Dpe(n, e) {
+ var t, i, r;
+ for (r = 0, i = u(u(ct(n.r, e), 21), 84).Kc(); i.Ob(); )
+ t = u(i.Pb(), 111), r += t.d.b + t.b.rf().a + t.d.c, i.Ob() && (r += n.w);
+ return r;
+ }
+ function $pe(n, e) {
+ var t, i, r;
+ for (r = 0, i = u(u(ct(n.r, e), 21), 84).Kc(); i.Ob(); )
+ t = u(i.Pb(), 111), r += t.d.d + t.b.rf().b + t.d.a, i.Ob() && (r += n.w);
+ return r;
+ }
+ function Fpe(n, e, t, i) {
+ if (e.a < i.a)
+ return !0;
+ if (e.a == i.a) {
+ if (e.b < i.b)
+ return !0;
+ if (e.b == i.b && n.b > t.b)
+ return !0;
+ }
+ return !1;
+ }
+ function WF(n, e) {
+ return yi(n) ? !!fzn[e] : n.hm ? !!n.hm[e] : z0(n) ? !!ozn[e] : G0(n) ? !!szn[e] : !1;
+ }
+ function gr(n, e, t) {
+ return t == null ? (!n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), IT(n.o, e)) : (!n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), XT(n.o, e, t)), n;
+ }
+ function xpe(n, e, t, i) {
+ var r, c;
+ c = e.Xe((Xe(), _g)) ? u(e.We(_g), 21) : n.j, r = Cge(c), r != (SM(), TR) && (t && !GQ(r) || nY(d9e(n, r, i), e));
+ }
+ function BT(n, e, t, i) {
+ var r, c, o;
+ return c = On(n.Tg(), e), r = e - n.Ah(), r < 0 ? (o = n.Yg(c), o >= 0 ? n._g(o, t, !0) : Zd(n, c, t)) : u(c, 66).Nj().Pj(n, n.yh(), r, t, i);
+ }
+ function Lpe(n, e, t, i) {
+ var r, c, o;
+ t.mh(e) && (er(), R$(e) ? (r = u(t.ah(e), 153), upe(n, r)) : (c = (o = e, o ? u(i, 49).xh(o) : null), c && Bte(t.ah(e), c)));
+ }
+ function Npe(n) {
+ switch (n.g) {
+ case 1:
+ return qd(), Ok;
+ case 3:
+ return qd(), Ik;
+ case 2:
+ return qd(), AR;
+ case 4:
+ return qd(), MR;
+ default:
+ return null;
+ }
+ }
+ function QQ(n) {
+ switch (typeof n) {
+ case EL:
+ return m1(n);
+ case UZ:
+ return zt(n);
+ case X2:
+ return qn(), n ? 1231 : 1237;
+ default:
+ return n == null ? 0 : kd(n);
+ }
+ }
+ function Bpe(n, e, t) {
+ if (n.e)
+ switch (n.b) {
+ case 1:
+ d1e(n.c, e, t);
+ break;
+ case 0:
+ b1e(n.c, e, t);
+ }
+ else
+ LAn(n.c, e, t);
+ n.a[e.p][t.p] = n.c.i, n.a[t.p][e.p] = n.c.e;
+ }
+ function Z$n(n) {
+ var e, t;
+ if (n == null)
+ return null;
+ for (t = F(vh, q, 193, n.length, 0, 2), e = 0; e < t.length; e++)
+ t[e] = u(c0e(n[e], n[e].length), 193);
+ return t;
+ }
+ function RT(n) {
+ var e;
+ if (gF(n))
+ return _E(n), n.Lk() && (e = y6(n.e, n.b, n.c, n.a, n.j), n.j = e), n.g = n.a, ++n.a, ++n.c, n.i = 0, n.j;
+ throw T(new rc());
+ }
+ function Rpe(n, e) {
+ var t, i, r, c;
+ return c = n.o, t = n.p, c < t ? c *= c : t *= t, i = c + t, c = e.o, t = e.p, c < t ? c *= c : t *= t, r = c + t, i < r ? -1 : i == r ? 0 : 1;
+ }
+ function v1(n, e) {
+ var t, i, r;
+ if (r = DFn(n, e), r >= 0)
+ return r;
+ if (n.Fk()) {
+ for (i = 0; i < n.i; ++i)
+ if (t = n.Gk(u(n.g[i], 56)), B(t) === B(e))
+ return i;
+ }
+ return -1;
+ }
+ function Gw(n, e, t) {
+ var i, r;
+ if (r = n.gc(), e >= r)
+ throw T(new Q0(e, r));
+ if (n.hi() && (i = n.Xc(t), i >= 0 && i != e))
+ throw T(new Hn(yk));
+ return n.mi(e, t);
+ }
+ function JQ(n, e) {
+ if (this.a = u(pe(n), 245), this.b = u(pe(e), 245), n.vd(e) > 0 || n == (qI(), cR) || e == (HI(), uR))
+ throw T(new Hn("Invalid range: " + DAn(n, e)));
+ }
+ function nFn(n) {
+ var e, t;
+ for (this.b = new X(), this.c = n, this.a = !1, t = new E(n.a); t.a < t.c.c.length; )
+ e = u(y(t), 10), this.a = this.a | e.k == (Qn(), ii);
+ }
+ function _pe(n, e) {
+ var t, i, r;
+ for (t = yd(new ca(), n), r = new E(e); r.a < r.c.c.length; )
+ i = u(y(r), 121), jo(lo(ho(ao(fo(new Ls(), 0), 0), t), i));
+ return t;
+ }
+ function eFn(n, e, t) {
+ var i, r, c;
+ for (r = new re(ue((e ? Lr(n) : ei(n)).a.Kc(), new Mn())); Se(r); )
+ i = u(ve(r), 17), c = e ? i.c.i : i.d.i, c.k == (Qn(), Qu) && jr(c, t);
+ }
+ function gb() {
+ gb = N, fP = new Gj(Wh, 0), Y_ = new Gj("PORT_POSITION", 1), xg = new Gj("NODE_SIZE_WHERE_SPACE_PERMITS", 2), Fg = new Gj("NODE_SIZE", 3);
+ }
+ function oh() {
+ oh = N, HK = new f5("AUTOMATIC", 0), ly = new f5(Y2, 1), ay = new f5(Z2, 2), xP = new f5("TOP", 3), $P = new f5(dnn, 4), FP = new f5(P4, 5);
+ }
+ function YQ(n, e, t, i) {
+ l4();
+ var r, c;
+ for (r = 0, c = 0; c < t; c++)
+ r = Hi(Ni(ui(e[c], fr), ui(i, fr)), ui(ge(r), fr)), n[c] = ge(r), r = Y0(r, 32);
+ return ge(r);
+ }
+ function ZQ(n, e, t) {
+ var i, r;
+ for (r = 0, i = 0; i < CR; i++)
+ r = j.Math.max(r, kF(n.a[e.g][i], t));
+ return e == (_o(), xc) && n.b && (r = j.Math.max(r, n.b.b)), r;
+ }
+ function _T(n, e) {
+ var t, i;
+ if (Yz(e > 0), (e & -e) == e)
+ return zt(e * Fu(n, 31) * 4656612873077393e-25);
+ do
+ t = Fu(n, 31), i = t % e;
+ while (t - i + (e - 1) < 0);
+ return zt(i);
+ }
+ function m1(n) {
+ aEn();
+ var e, t, i;
+ return t = ":" + n, i = XA[t], i != null ? zt((_n(i), i)) : (i = Xin[t], e = i == null ? I8e(n) : zt((_n(i), i)), c1e(), XA[t] = e, e);
+ }
+ function tFn(n, e, t) {
+ le(t, "Compound graph preprocessor", 1), n.a = new Dd(), o_n(n, e, null), pje(n, e), Z9e(n), H(e, (G(), dun), n.a), n.a = null, Eu(n.b), ce(t);
+ }
+ function Kpe(n, e, t) {
+ switch (t.g) {
+ case 1:
+ n.a = e.a / 2, n.b = 0;
+ break;
+ case 2:
+ n.a = e.a, n.b = e.b / 2;
+ break;
+ case 3:
+ n.a = e.a / 2, n.b = e.b;
+ break;
+ case 4:
+ n.a = 0, n.b = e.b / 2;
+ }
+ }
+ function Hpe(n) {
+ var e, t, i;
+ for (i = u(ct(n.a, (Vw(), IS)), 15).Kc(); i.Ob(); )
+ t = u(i.Pb(), 101), e = hJ(t), d3(n, t, e[0], (Hd(), g0), 0), d3(n, t, e[1], p0, 1);
+ }
+ function qpe(n) {
+ var e, t, i;
+ for (i = u(ct(n.a, (Vw(), OS)), 15).Kc(); i.Ob(); )
+ t = u(i.Pb(), 101), e = hJ(t), d3(n, t, e[0], (Hd(), g0), 0), d3(n, t, e[1], p0, 1);
+ }
+ function XF(n) {
+ switch (n.g) {
+ case 0:
+ return null;
+ case 1:
+ return new tOn();
+ case 2:
+ return new oG();
+ default:
+ throw T(new Hn(lB + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function k7(n, e, t) {
+ var i, r;
+ for (lwe(n, e - n.s, t - n.t), r = new E(n.n); r.a < r.c.c.length; )
+ i = u(y(r), 211), pte(i, i.e + e - n.s), vte(i, i.f + t - n.t);
+ n.s = e, n.t = t;
+ }
+ function Gpe(n) {
+ var e, t, i, r, c;
+ for (t = 0, r = new E(n.a); r.a < r.c.c.length; )
+ i = u(y(r), 121), i.d = t++;
+ return e = y5e(n), c = null, e.c.length > 1 && (c = _pe(n, e)), c;
+ }
+ function VF(n) {
+ var e;
+ return n.f && n.f.kh() && (e = u(n.f, 49), n.f = u(gl(n, e), 82), n.f != e && n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 9, 8, e, n.f))), n.f;
+ }
+ function QF(n) {
+ var e;
+ return n.i && n.i.kh() && (e = u(n.i, 49), n.i = u(gl(n, e), 82), n.i != e && n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 9, 7, e, n.i))), n.i;
+ }
+ function ir(n) {
+ var e;
+ return n.b && n.b.Db & 64 && (e = n.b, n.b = u(gl(n, e), 18), n.b != e && n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 9, 21, e, n.b))), n.b;
+ }
+ function KT(n, e) {
+ var t, i, r;
+ n.d == null ? (++n.e, ++n.f) : (i = e.Sh(), u8e(n, n.f + 1), r = (i & nt) % n.d.length, t = n.d[r], !t && (t = n.d[r] = n.uj()), t.Fc(e), ++n.f);
+ }
+ function nJ(n, e, t) {
+ var i;
+ return e.Kj() ? !1 : e.Zj() != -2 ? (i = e.zj(), i == null ? t == null : tt(i, t)) : e.Hj() == n.e.Tg() && t == null;
+ }
+ function HT() {
+ var n;
+ is(16, Y_n), n = WIn(16), this.b = F(oR, nk, 317, n, 0, 1), this.c = F(oR, nk, 317, n, 0, 1), this.a = null, this.e = null, this.i = 0, this.f = n - 1, this.g = 0;
+ }
+ function Hh(n) {
+ vU.call(this), this.k = (Qn(), ii), this.j = (is(6, Ib), new Ic(6)), this.b = (is(2, Ib), new Ic(2)), this.d = new NI(), this.f = new Zq(), this.a = n;
+ }
+ function zpe(n) {
+ var e, t;
+ n.c.length <= 1 || (e = nBn(n, (J(), ae)), Hxn(n, u(e.a, 19).a, u(e.b, 19).a), t = nBn(n, Gn), Hxn(n, u(t.a, 19).a, u(t.b, 19).a));
+ }
+ function b6() {
+ b6 = N, zsn = new V9("SIMPLE", 0), nK = new V9(PN, 1), eK = new V9("LINEAR_SEGMENTS", 2), Lm = new V9("BRANDES_KOEPF", 3), Nm = new V9(CHn, 4);
+ }
+ function eJ(n, e, t) {
+ p2(u(k(e, (nn(), Nt)), 98)) || (VX(n, e, k1(e, t)), VX(n, e, k1(e, (J(), ae))), VX(n, e, k1(e, Kn)), Pn(), wi(e.j, new r6n(n)));
+ }
+ function iFn(n, e, t, i) {
+ var r, c, o;
+ for (r = u(ct(i ? n.a : n.b, e), 21), o = r.Kc(); o.Ob(); )
+ if (c = u(o.Pb(), 33), aM(n, t, c))
+ return !0;
+ return !1;
+ }
+ function JF(n) {
+ var e, t;
+ for (t = new ie(n); t.e != t.i.gc(); )
+ if (e = u(oe(t), 87), e.e || (!e.d && (e.d = new Yt(ar, e, 1)), e.d).i != 0)
+ return !0;
+ return !1;
+ }
+ function YF(n) {
+ var e, t;
+ for (t = new ie(n); t.e != t.i.gc(); )
+ if (e = u(oe(t), 87), e.e || (!e.d && (e.d = new Yt(ar, e, 1)), e.d).i != 0)
+ return !0;
+ return !1;
+ }
+ function Upe(n) {
+ var e, t, i;
+ for (e = 0, i = new E(n.c.a); i.a < i.c.c.length; )
+ t = u(y(i), 10), e += $h(new re(ue(ei(t).a.Kc(), new Mn())));
+ return e / n.c.a.c.length;
+ }
+ function rFn(n) {
+ var e, t;
+ for (n.c || nEe(n), t = new ou(), e = new E(n.a), y(e); e.a < e.c.c.length; )
+ Ke(t, u(y(e), 407).a);
+ return ne(t.b != 0), Cs(t, t.c.b), t;
+ }
+ function ZF() {
+ ZF = N, Ofn = (Ux(), Afn), Ifn = new md(8), new tr((Xe(), ed), Ifn), new tr(td, 8), CZn = Tfn, Sfn = gZn, Pfn = pZn, EZn = new tr(py, (qn(), !1));
+ }
+ function tJ(n, e, t, i) {
+ switch (e) {
+ case 7:
+ return !n.e && (n.e = new Fn(bi, n, 7, 4)), n.e;
+ case 8:
+ return !n.d && (n.d = new Fn(bi, n, 8, 5)), n.d;
+ }
+ return jQ(n, e, t, i);
+ }
+ function nx(n) {
+ var e;
+ return n.a && n.a.kh() && (e = u(n.a, 49), n.a = u(gl(n, e), 138), n.a != e && n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 9, 5, e, n.a))), n.a;
+ }
+ function Pa(n) {
+ return n < 48 || n > 102 ? -1 : n <= 57 ? n - 48 : n < 65 ? -1 : n <= 70 ? n - 65 + 10 : n < 97 ? -1 : n - 97 + 10;
+ }
+ function ex(n, e) {
+ if (n == null)
+ throw T(new c2("null key in entry: null=" + e));
+ if (e == null)
+ throw T(new c2("null value in entry: " + n + "=null"));
+ }
+ function Wpe(n, e) {
+ for (var t, i; n.Ob(); )
+ if (!e.Ob() || (t = n.Pb(), i = e.Pb(), !(B(t) === B(i) || t != null && tt(t, i))))
+ return !1;
+ return !e.Ob();
+ }
+ function cFn(n, e) {
+ var t;
+ return t = A(M(Ci, 1), pr, 25, 15, [kF(n.a[0], e), kF(n.a[1], e), kF(n.a[2], e)]), n.d && (t[0] = j.Math.max(t[0], t[2]), t[2] = t[0]), t;
+ }
+ function uFn(n, e) {
+ var t;
+ return t = A(M(Ci, 1), pr, 25, 15, [pT(n.a[0], e), pT(n.a[1], e), pT(n.a[2], e)]), n.d && (t[0] = j.Math.max(t[0], t[2]), t[2] = t[0]), t;
+ }
+ function Ia() {
+ Ia = N, f_ = new X9("GREEDY", 0), Gcn = new X9(hHn, 1), h_ = new X9(PN, 2), Em = new X9("MODEL_ORDER", 3), jm = new X9("GREEDY_MODEL_ORDER", 4);
+ }
+ function sFn(n, e) {
+ var t, i, r;
+ for (n.b[e.g] = 1, i = _e(e.d, 0); i.b != i.d.c; )
+ t = u(Re(i), 188), r = t.c, n.b[r.g] == 1 ? Ke(n.a, t) : n.b[r.g] == 2 ? n.b[r.g] = 1 : sFn(n, r);
+ }
+ function Xpe(n, e) {
+ var t, i, r;
+ for (r = new Ic(e.gc()), i = e.Kc(); i.Ob(); )
+ t = u(i.Pb(), 286), t.c == t.f ? h4(n, t, t.c) : U5e(n, t) || (r.c[r.c.length] = t);
+ return r;
+ }
+ function Vpe(n, e, t) {
+ var i, r, c, o, f;
+ for (f = n.r + e, n.r += e, n.d += t, i = t / n.n.c.length, r = 0, o = new E(n.n); o.a < o.c.c.length; )
+ c = u(y(o), 211), r9e(c, f, i, r), ++r;
+ }
+ function Qpe(n) {
+ var e, t, i;
+ for (Kv(n.b.a), n.a = F(VA, rn, 57, n.c.c.a.b.c.length, 0, 1), e = 0, i = new E(n.c.c.a.b); i.a < i.c.c.length; )
+ t = u(y(i), 57), t.f = e++;
+ }
+ function Jpe(n) {
+ var e, t, i;
+ for (Kv(n.b.a), n.a = F(RR, rn, 81, n.c.a.a.b.c.length, 0, 1), e = 0, i = new E(n.c.a.a.b); i.a < i.c.c.length; )
+ t = u(y(i), 81), t.i = e++;
+ }
+ function Ype(n, e, t) {
+ var i;
+ le(t, "Shrinking tree compaction", 1), on(sn(k(e, (R3(), pm)))) ? (abe(n, e.f), _Pn(e.f, (i = e.c, i))) : _Pn(e.f, e.c), ce(t);
+ }
+ function oFn(n) {
+ var e;
+ if (e = Ywe(n), !Se(n))
+ throw T(new mr("position (0) must be less than the number of elements that remained (" + e + ")"));
+ return ve(n);
+ }
+ function fFn(n, e, t) {
+ var i;
+ try {
+ return zw(n, e + n.j, t + n.k);
+ } catch (r) {
+ throw r = jt(r), I(r, 73) ? (i = r, T(new mr(i.g + RM + e + Qi + t + ")."))) : T(r);
+ }
+ }
+ function Zpe(n, e, t) {
+ var i;
+ try {
+ return aFn(n, e + n.j, t + n.k);
+ } catch (r) {
+ throw r = jt(r), I(r, 73) ? (i = r, T(new mr(i.g + RM + e + Qi + t + ")."))) : T(r);
+ }
+ }
+ function n3e(n, e, t) {
+ var i;
+ try {
+ return dFn(n, e + n.j, t + n.k);
+ } catch (r) {
+ throw r = jt(r), I(r, 73) ? (i = r, T(new mr(i.g + RM + e + Qi + t + ")."))) : T(r);
+ }
+ }
+ function hFn(n) {
+ switch (n.g) {
+ case 1:
+ return J(), Gn;
+ case 4:
+ return J(), Kn;
+ case 3:
+ return J(), Vn;
+ case 2:
+ return J(), ae;
+ default:
+ return J(), Xr;
+ }
+ }
+ function e3e(n, e, t) {
+ e.k == (Qn(), ii) && t.k == pi && (n.d = CF(e, (J(), ae)), n.b = CF(e, Kn)), t.k == ii && e.k == pi && (n.d = CF(t, (J(), Kn)), n.b = CF(t, ae));
+ }
+ function tx(n, e) {
+ var t, i, r;
+ for (r = zr(n, e), i = r.Kc(); i.Ob(); )
+ if (t = u(i.Pb(), 11), k(t, (G(), Mu)) != null || E5(new uf(t.b)))
+ return !0;
+ return !1;
+ }
+ function iJ(n, e) {
+ return Yc(e, n.e + n.d + (n.c.c.length == 0 ? 0 : n.b)), Zc(e, n.f), n.a = j.Math.max(n.a, e.f), n.d += e.g + (n.c.c.length == 0 ? 0 : n.b), W(n.c, e), !0;
+ }
+ function t3e(n, e, t) {
+ var i, r, c, o;
+ for (o = 0, i = t / n.a.c.length, c = new E(n.a); c.a < c.c.c.length; )
+ r = u(y(c), 187), k7(r, r.s, r.t + o * i), Vpe(r, n.d - r.r + e, i), ++o;
+ }
+ function i3e(n) {
+ var e, t, i, r, c;
+ for (i = new E(n.b); i.a < i.c.c.length; )
+ for (t = u(y(i), 29), e = 0, c = new E(t.a); c.a < c.c.c.length; )
+ r = u(y(c), 10), r.p = e++;
+ }
+ function r3e(n, e) {
+ var t, i, r, c, o, f;
+ for (r = e.length - 1, o = 0, f = 0, i = 0; i <= r; i++)
+ c = e[i], t = E5e(r, i) * sQ(1 - n, r - i) * sQ(n, i), o += c.a * t, f += c.b * t;
+ return new fn(o, f);
+ }
+ function lFn(n, e) {
+ var t, i, r, c, o;
+ for (t = e.gc(), n.qi(n.i + t), c = e.Kc(), o = n.i, n.i += t, i = o; i < n.i; ++i)
+ r = c.Pb(), k5(n, i, n.oi(i, r)), n.bi(i, r), n.ci();
+ return t != 0;
+ }
+ function c3e(n, e, t) {
+ var i, r, c;
+ return n.ej() ? (i = n.Vi(), c = n.fj(), ++n.j, n.Hi(i, n.oi(i, e)), r = n.Zi(3, null, e, i, c), t ? t.Ei(r) : t = r) : Ajn(n, n.Vi(), e), t;
+ }
+ function u3e(n, e, t) {
+ var i, r, c;
+ return i = u(D(wc(n.a), e), 87), c = (r = i.c, I(r, 88) ? u(r, 26) : (Sn(), uo)), (c.Db & 64 ? gl(n.b, c) : c) == t ? pM(i) : I3(i, t), c;
+ }
+ function rJ(n, e, t, i, r, c, o, f) {
+ var h, l;
+ i && (h = i.a[0], h && rJ(n, e, t, h, r, c, o, f), F3e(n, t, i.d, r, c, o, f) && e.Fc(i), l = i.a[1], l && rJ(n, e, t, l, r, c, o, f));
+ }
+ function s3e(n, e) {
+ var t;
+ return n.a || (t = F(Ci, pr, 25, 0, 15, 1), vw(n.b.a, new zvn(t)), t.sort(pIn(zy.prototype.te, zy, [])), n.a = new cEn(t, n.d)), PC(n.a, e);
+ }
+ function zw(n, e, t) {
+ try {
+ return pd(Q$(n, e, t), 1);
+ } catch (i) {
+ throw i = jt(i), I(i, 320) ? T(new mr(bN + n.o + "*" + n.p + wN + e + Qi + t + gN)) : T(i);
+ }
+ }
+ function aFn(n, e, t) {
+ try {
+ return pd(Q$(n, e, t), 0);
+ } catch (i) {
+ throw i = jt(i), I(i, 320) ? T(new mr(bN + n.o + "*" + n.p + wN + e + Qi + t + gN)) : T(i);
+ }
+ }
+ function dFn(n, e, t) {
+ try {
+ return pd(Q$(n, e, t), 2);
+ } catch (i) {
+ throw i = jt(i), I(i, 320) ? T(new mr(bN + n.o + "*" + n.p + wN + e + Qi + t + gN)) : T(i);
+ }
+ }
+ function bFn(n, e) {
+ if (n.g == -1)
+ throw T(new su());
+ n.mj();
+ try {
+ n.d._c(n.g, e), n.f = n.d.j;
+ } catch (t) {
+ throw t = jt(t), I(t, 73) ? T(new ps()) : T(t);
+ }
+ }
+ function o3e(n, e, t) {
+ le(t, "Linear segments node placement", 1), n.b = u(k(e, (G(), Ig)), 304), jTe(n, e), cje(n, e), yje(n, e), eTe(n), n.a = null, n.b = null, ce(t);
+ }
+ function y7(n, e) {
+ var t, i, r, c;
+ for (c = n.gc(), e.length < c && (e = pj(new Array(c), e)), r = e, i = n.Kc(), t = 0; t < c; ++t)
+ Mt(r, t, i.Pb());
+ return e.length > c && Mt(e, c, null), e;
+ }
+ function f3e(n, e) {
+ var t, i;
+ if (i = n.gc(), e == null) {
+ for (t = 0; t < i; t++)
+ if (n.Xb(t) == null)
+ return t;
+ } else
+ for (t = 0; t < i; t++)
+ if (tt(e, n.Xb(t)))
+ return t;
+ return -1;
+ }
+ function ix(n, e) {
+ var t, i, r;
+ return t = e.cd(), r = e.dd(), i = n.xc(t), !(!(B(r) === B(i) || r != null && tt(r, i)) || i == null && !n._b(t));
+ }
+ function h3e(n, e) {
+ var t, i, r;
+ return e <= 22 ? (t = n.l & (1 << e) - 1, i = r = 0) : e <= 44 ? (t = n.l, i = n.m & (1 << e - 22) - 1, r = 0) : (t = n.l, i = n.m, r = n.h & (1 << e - 44) - 1), Nc(t, i, r);
+ }
+ function l3e(n, e) {
+ switch (e.g) {
+ case 1:
+ return n.f.n.d + n.t;
+ case 3:
+ return n.f.n.a + n.t;
+ case 2:
+ return n.f.n.c + n.s;
+ case 4:
+ return n.f.n.b + n.s;
+ default:
+ return 0;
+ }
+ }
+ function a3e(n, e) {
+ var t, i;
+ switch (i = e.c, t = e.a, n.b.g) {
+ case 0:
+ t.d = n.e - i.a - i.d;
+ break;
+ case 1:
+ t.d += n.e;
+ break;
+ case 2:
+ t.c = n.e - i.a - i.d;
+ break;
+ case 3:
+ t.c = n.e + i.d;
+ }
+ }
+ function cJ(n, e, t, i) {
+ var r, c;
+ this.a = e, this.c = i, r = n.a, nte(this, new fn(-r.c, -r.d)), st(this.b, t), c = i / 2, e.a ? o8(this.b, 0, c) : o8(this.b, c, 0), W(n.c, this);
+ }
+ function qT() {
+ qT = N, SK = new Uj(Wh, 0), qon = new Uj(lHn, 1), Gon = new Uj("EDGE_LENGTH_BY_POSITION", 2), Hon = new Uj("CROSSING_MINIMIZATION_BY_POSITION", 3);
+ }
+ function rx(n, e) {
+ var t, i;
+ if (t = u(xw(n.g, e), 33), t)
+ return t;
+ if (i = u(xw(n.j, e), 118), i)
+ return i;
+ throw T(new Af("Referenced shape does not exist: " + e));
+ }
+ function d3e(n, e) {
+ if (n.c == e)
+ return n.d;
+ if (n.d == e)
+ return n.c;
+ throw T(new Hn("Node 'one' must be either source or target of edge 'edge'."));
+ }
+ function b3e(n, e) {
+ if (n.c.i == e)
+ return n.d.i;
+ if (n.d.i == e)
+ return n.c.i;
+ throw T(new Hn("Node " + e + " is neither source nor target of edge " + n));
+ }
+ function w3e(n, e) {
+ var t;
+ switch (e.g) {
+ case 2:
+ case 4:
+ t = n.a, n.c.d.n.b < t.d.n.b && (t = n.c), o1(n, e, (ff(), JR), t);
+ break;
+ case 1:
+ case 3:
+ o1(n, e, (ff(), lp), null);
+ }
+ }
+ function cx(n, e, t, i, r, c) {
+ var o, f, h, l, a;
+ for (o = v4e(e, t, c), f = t == (J(), Kn) || t == Gn ? -1 : 1, l = n[t.g], a = 0; a < l.length; a++)
+ h = l[a], h > 0 && (h += r), l[a] = o, o += f * (h + i);
+ }
+ function wFn(n) {
+ var e, t, i;
+ for (i = n.f, n.n = F(Ci, pr, 25, i, 15, 1), n.d = F(Ci, pr, 25, i, 15, 1), e = 0; e < i; e++)
+ t = u(un(n.c.b, e), 29), n.n[e] = z$n(n, t), n.d[e] = MNn(n, t);
+ }
+ function ux(n, e) {
+ var t, i, r;
+ for (r = 0, i = 2; i < e; i <<= 1)
+ n.Db & i && ++r;
+ if (r == 0) {
+ for (t = e <<= 1; t <= 128; t <<= 1)
+ if (n.Db & t)
+ return 0;
+ return -1;
+ } else
+ return r;
+ }
+ function gFn(n, e) {
+ var t, i, r, c, o;
+ for (o = _c(n.e.Tg(), e), c = null, t = u(n.g, 119), r = 0; r < n.i; ++r)
+ i = t[r], o.rl(i.ak()) && (!c && (c = new Jy()), me(c, i));
+ c && S_n(n, c);
+ }
+ function pFn(n) {
+ var e, t, i;
+ if (!n)
+ return null;
+ if (n.dc())
+ return "";
+ for (i = new i1(), t = n.Kc(); t.Ob(); )
+ e = t.Pb(), dr(i, Te(e)), i.a += " ";
+ return NO(i, i.a.length - 1);
+ }
+ function uJ(n, e, t) {
+ var i, r, c, o, f;
+ for (ywe(n), r = (n.k == null && (n.k = F(hR, q, 78, 0, 0, 1)), n.k), c = 0, o = r.length; c < o; ++c)
+ i = r[c], uJ(i);
+ f = n.f, f && uJ(f);
+ }
+ function vFn(n, e) {
+ var t = new Array(e), i;
+ switch (n) {
+ case 14:
+ case 15:
+ i = 0;
+ break;
+ case 16:
+ i = !1;
+ break;
+ default:
+ return t;
+ }
+ for (var r = 0; r < e; ++r)
+ t[r] = i;
+ return t;
+ }
+ function Qd(n) {
+ var e, t, i;
+ for (t = new E(n.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 57), e.c.$b();
+ el(n.d) ? i = n.a.c : i = n.a.d, Jc(i, new t5n(n)), n.c.Me(n), qNn(n);
+ }
+ function mFn(n) {
+ var e, t, i, r;
+ for (t = new E(n.e.c); t.a < t.c.c.length; ) {
+ for (e = u(y(t), 282), r = new E(e.b); r.a < r.c.c.length; )
+ i = u(y(r), 447), EZ(i);
+ lLn(e);
+ }
+ }
+ function GT(n) {
+ var e, t, i, r, c;
+ for (i = 0, c = 0, r = 0, t = new E(n.a); t.a < t.c.c.length; )
+ e = u(y(t), 187), c = j.Math.max(c, e.r), i += e.d + (r > 0 ? n.c : 0), ++r;
+ n.b = i, n.d = c;
+ }
+ function g3e(n, e) {
+ var t, i, r, c, o;
+ for (i = 0, r = 0, t = 0, o = new E(e); o.a < o.c.c.length; )
+ c = u(y(o), 200), i = j.Math.max(i, c.e), r += c.b + (t > 0 ? n.g : 0), ++t;
+ n.c = r, n.d = i;
+ }
+ function kFn(n, e) {
+ var t;
+ return t = A(M(Ci, 1), pr, 25, 15, [ZQ(n, (_o(), Zr), e), ZQ(n, xc, e), ZQ(n, nc, e)]), n.f && (t[0] = j.Math.max(t[0], t[2]), t[2] = t[0]), t;
+ }
+ function p3e(n, e, t) {
+ var i;
+ try {
+ wM(n, e + n.j, t + n.k, !1, !0);
+ } catch (r) {
+ throw r = jt(r), I(r, 73) ? (i = r, T(new mr(i.g + RM + e + Qi + t + ")."))) : T(r);
+ }
+ }
+ function v3e(n, e, t) {
+ var i;
+ try {
+ wM(n, e + n.j, t + n.k, !0, !1);
+ } catch (r) {
+ throw r = jt(r), I(r, 73) ? (i = r, T(new mr(i.g + RM + e + Qi + t + ")."))) : T(r);
+ }
+ }
+ function yFn(n) {
+ var e;
+ ai(n, (nn(), j0)) && (e = u(k(n, j0), 21), e.Hc((Eb(), So)) ? (e.Mc(So), e.Fc(Po)) : e.Hc(Po) && (e.Mc(Po), e.Fc(So)));
+ }
+ function jFn(n) {
+ var e;
+ ai(n, (nn(), j0)) && (e = u(k(n, j0), 21), e.Hc((Eb(), Oo)) ? (e.Mc(Oo), e.Fc(no)) : e.Hc(no) && (e.Mc(no), e.Fc(Oo)));
+ }
+ function m3e(n, e, t) {
+ le(t, "Self-Loop ordering", 1), Rt(Wc(gt(gt(qr(new $n(null, new xn(e.b, 16)), new I0n()), new O0n()), new D0n()), new $0n()), new D5n(n)), ce(t);
+ }
+ function j7(n, e, t, i) {
+ var r, c;
+ for (r = e; r < n.c.length; r++)
+ if (c = (Ln(r, n.c.length), u(n.c[r], 11)), t.Mb(c))
+ i.c[i.c.length] = c;
+ else
+ return r;
+ return n.c.length;
+ }
+ function sx(n, e, t, i) {
+ var r, c, o, f;
+ return n.a == null && j5e(n, e), o = e.b.j.c.length, c = t.d.p, f = i.d.p, r = f - 1, r < 0 && (r = o - 1), c <= r ? n.a[r] - n.a[c] : n.a[o - 1] - n.a[c] + n.a[r];
+ }
+ function k3e(n) {
+ var e, t;
+ if (!n.b)
+ for (n.b = mC(u(n.f, 33).Ag().i), t = new ie(u(n.f, 33).Ag()); t.e != t.i.gc(); )
+ e = u(oe(t), 137), W(n.b, new XI(e));
+ return n.b;
+ }
+ function y3e(n) {
+ var e, t;
+ if (!n.e)
+ for (n.e = mC(HD(u(n.f, 33)).i), t = new ie(HD(u(n.f, 33))); t.e != t.i.gc(); )
+ e = u(oe(t), 118), W(n.e, new jmn(e));
+ return n.e;
+ }
+ function EFn(n) {
+ var e, t;
+ if (!n.a)
+ for (n.a = mC(iC(u(n.f, 33)).i), t = new ie(iC(u(n.f, 33))); t.e != t.i.gc(); )
+ e = u(oe(t), 33), W(n.a, new WO(n, e));
+ return n.a;
+ }
+ function Jd(n) {
+ var e;
+ if (!n.C && (n.D != null || n.B != null))
+ if (e = HEe(n), e)
+ n.yk(e);
+ else
+ try {
+ n.yk(null);
+ } catch (t) {
+ if (t = jt(t), !I(t, 60))
+ throw T(t);
+ }
+ return n.C;
+ }
+ function j3e(n) {
+ switch (n.q.g) {
+ case 5:
+ WFn(n, (J(), Kn)), WFn(n, ae);
+ break;
+ case 4:
+ RRn(n, (J(), Kn)), RRn(n, ae);
+ break;
+ default:
+ Xxn(n, (J(), Kn)), Xxn(n, ae);
+ }
+ }
+ function E3e(n) {
+ switch (n.q.g) {
+ case 5:
+ XFn(n, (J(), Vn)), XFn(n, Gn);
+ break;
+ case 4:
+ _Rn(n, (J(), Vn)), _Rn(n, Gn);
+ break;
+ default:
+ Vxn(n, (J(), Vn)), Vxn(n, Gn);
+ }
+ }
+ function Uw(n, e) {
+ var t, i, r;
+ for (r = new Li(), i = n.Kc(); i.Ob(); )
+ t = u(i.Pb(), 37), M6(t, r.a, 0), r.a += t.f.a + e, r.b = j.Math.max(r.b, t.f.b);
+ return r.b > 0 && (r.b += e), r;
+ }
+ function zT(n, e) {
+ var t, i, r;
+ for (r = new Li(), i = n.Kc(); i.Ob(); )
+ t = u(i.Pb(), 37), M6(t, 0, r.b), r.b += t.f.b + e, r.a = j.Math.max(r.a, t.f.a);
+ return r.a > 0 && (r.a += e), r;
+ }
+ function CFn(n) {
+ var e, t, i;
+ for (i = nt, t = new E(n.a); t.a < t.c.c.length; )
+ e = u(y(t), 10), ai(e, (G(), bc)) && (i = j.Math.min(i, u(k(e, bc), 19).a));
+ return i;
+ }
+ function TFn(n, e) {
+ var t, i;
+ if (e.length == 0)
+ return 0;
+ for (t = KD(n.a, e[0], (J(), Gn)), t += KD(n.a, e[e.length - 1], Vn), i = 0; i < e.length; i++)
+ t += u5e(n, i, e);
+ return t;
+ }
+ function MFn() {
+ C6(), this.c = new X(), this.i = new X(), this.e = new Ah(), this.f = new Ah(), this.g = new Ah(), this.j = new X(), this.a = new X(), this.b = new we(), this.k = new we();
+ }
+ function ox(n, e) {
+ var t, i;
+ return n.Db >> 16 == 6 ? n.Cb.ih(n, 5, Vo, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || n.zh()), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function C3e(n) {
+ m3();
+ var e = n.e;
+ if (e && e.stack) {
+ var t = e.stack, i = e + `
+`;
+ return t.substring(0, i.length) == i && (t = t.substring(i.length)), t.split(`
+`);
+ }
+ return [];
+ }
+ function T3e(n) {
+ var e;
+ return e = (KIn(), yzn), e[n >>> 28] | e[n >> 24 & 15] << 4 | e[n >> 20 & 15] << 8 | e[n >> 16 & 15] << 12 | e[n >> 12 & 15] << 16 | e[n >> 8 & 15] << 20 | e[n >> 4 & 15] << 24 | e[n & 15] << 28;
+ }
+ function AFn(n) {
+ var e, t, i;
+ n.b == n.c && (i = n.a.length, t = KV(j.Math.max(8, i)) << 1, n.b != 0 ? (e = bo(n.a, t), VIn(n, e, i), n.a = e, n.b = 0) : Xmn(n.a, t), n.c = i);
+ }
+ function M3e(n, e) {
+ var t;
+ return t = n.b, t.Xe((Xe(), Bu)) ? t.Hf() == (J(), Gn) ? -t.rf().a - K(Y(t.We(Bu))) : e + K(Y(t.We(Bu))) : t.Hf() == (J(), Gn) ? -t.rf().a : e;
+ }
+ function E7(n) {
+ var e;
+ return n.b.c.length != 0 && u(un(n.b, 0), 70).a ? u(un(n.b, 0), 70).a : (e = WD(n), e ?? "" + (n.c ? xr(n.c.a, n, 0) : -1));
+ }
+ function UT(n) {
+ var e;
+ return n.f.c.length != 0 && u(un(n.f, 0), 70).a ? u(un(n.f, 0), 70).a : (e = WD(n), e ?? "" + (n.i ? xr(n.i.j, n, 0) : -1));
+ }
+ function A3e(n, e) {
+ var t, i;
+ if (e < 0 || e >= n.gc())
+ return null;
+ for (t = e; t < n.gc(); ++t)
+ if (i = u(n.Xb(t), 128), t == n.gc() - 1 || !i.o)
+ return new Pi(Q(t), i);
+ return null;
+ }
+ function S3e(n, e, t) {
+ var i, r, c, o, f;
+ for (c = n.c, f = t ? e : n, i = t ? n : e, r = f.p + 1; r < i.p; ++r)
+ if (o = u(un(c.a, r), 10), !(o.k == (Qn(), vf) || t4e(o)))
+ return !1;
+ return !0;
+ }
+ function sJ(n) {
+ var e, t, i, r, c;
+ for (c = 0, r = Qt, i = 0, t = new E(n.a); t.a < t.c.c.length; )
+ e = u(y(t), 187), c += e.r + (i > 0 ? n.c : 0), r = j.Math.max(r, e.d), ++i;
+ n.e = c, n.b = r;
+ }
+ function P3e(n) {
+ var e, t;
+ if (!n.b)
+ for (n.b = mC(u(n.f, 118).Ag().i), t = new ie(u(n.f, 118).Ag()); t.e != t.i.gc(); )
+ e = u(oe(t), 137), W(n.b, new XI(e));
+ return n.b;
+ }
+ function I3e(n, e) {
+ var t, i, r;
+ if (e.dc())
+ return s3(), s3(), xy;
+ for (t = new Ijn(n, e.gc()), r = new ie(n); r.e != r.i.gc(); )
+ i = oe(r), e.Hc(i) && me(t, i);
+ return t;
+ }
+ function oJ(n, e, t, i) {
+ return e == 0 ? i ? (!n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), n.o) : (!n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), N8(n.o)) : BT(n, e, t, i);
+ }
+ function fx(n) {
+ var e, t;
+ if (n.rb)
+ for (e = 0, t = n.rb.i; e < t; ++e)
+ s8(D(n.rb, e));
+ if (n.vb)
+ for (e = 0, t = n.vb.i; e < t; ++e)
+ s8(D(n.vb, e));
+ I5((bu(), xi), n), n.Bb |= 1;
+ }
+ function wt(n, e, t, i, r, c, o, f, h, l, a, d, g, p) {
+ return iLn(n, e, i, null, r, c, o, f, h, l, g, !0, p), vQ(n, a), I(n.Cb, 88) && jb(Iu(u(n.Cb, 88)), 2), t && vV(n, t), mQ(n, d), n;
+ }
+ function O3e(n) {
+ var e, t;
+ if (n == null)
+ return null;
+ t = 0;
+ try {
+ t = us(n, Bi, nt) & Wt;
+ } catch (i) {
+ if (i = jt(i), I(i, 127))
+ e = NC(n), t = e[0];
+ else
+ throw T(i);
+ }
+ return i7(t);
+ }
+ function D3e(n) {
+ var e, t;
+ if (n == null)
+ return null;
+ t = 0;
+ try {
+ t = us(n, Bi, nt) & Wt;
+ } catch (i) {
+ if (i = jt(i), I(i, 127))
+ e = NC(n), t = e[0];
+ else
+ throw T(i);
+ }
+ return i7(t);
+ }
+ function $3e(n, e) {
+ var t, i, r;
+ return r = n.h - e.h, r < 0 || (t = n.l - e.l, i = n.m - e.m + (t >> 22), r += i >> 22, r < 0) ? !1 : (n.l = t & Lu, n.m = i & Lu, n.h = r & Uh, !0);
+ }
+ function F3e(n, e, t, i, r, c, o) {
+ var f, h;
+ return !(e.Ae() && (h = n.a.ue(t, i), h < 0 || !r && h == 0) || e.Be() && (f = n.a.ue(t, c), f > 0 || !o && f == 0));
+ }
+ function x3e(n, e) {
+ X3();
+ var t;
+ if (t = n.j.g - e.j.g, t != 0)
+ return 0;
+ switch (n.j.g) {
+ case 2:
+ return DF(e, Lcn) - DF(n, Lcn);
+ case 4:
+ return DF(n, xcn) - DF(e, xcn);
+ }
+ return 0;
+ }
+ function L3e(n) {
+ switch (n.g) {
+ case 0:
+ return a_;
+ case 1:
+ return d_;
+ case 2:
+ return b_;
+ case 3:
+ return w_;
+ case 4:
+ return FS;
+ case 5:
+ return g_;
+ default:
+ return null;
+ }
+ }
+ function Tr(n, e, t) {
+ var i, r;
+ return i = (r = new _I(), Ta(r, e), Oc(r, t), me((!n.c && (n.c = new V(I0, n, 12, 10)), n.c), r), r), d1(i, 0), lb(i, 1), p1(i, !0), g1(i, !0), i;
+ }
+ function H2(n, e) {
+ var t, i;
+ if (e >= n.i)
+ throw T(new xO(e, n.i));
+ return ++n.j, t = n.g[e], i = n.i - e - 1, i > 0 && pc(n.g, e + 1, n.g, e, i), Mt(n.g, --n.i, null), n.fi(e, t), n.ci(), t;
+ }
+ function SFn(n, e) {
+ var t, i;
+ return n.Db >> 16 == 17 ? n.Cb.ih(n, 21, io, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || n.zh()), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function N3e(n) {
+ var e, t, i, r;
+ for (Pn(), wi(n.c, n.a), r = new E(n.c); r.a < r.c.c.length; )
+ for (i = y(r), t = new E(n.b); t.a < t.c.c.length; )
+ e = u(y(t), 679), e.Ke(i);
+ }
+ function B3e(n) {
+ var e, t, i, r;
+ for (Pn(), wi(n.c, n.a), r = new E(n.c); r.a < r.c.c.length; )
+ for (i = y(r), t = new E(n.b); t.a < t.c.c.length; )
+ e = u(y(t), 369), e.Ke(i);
+ }
+ function R3e(n) {
+ var e, t, i, r, c;
+ for (r = nt, c = null, i = new E(n.d); i.a < i.c.c.length; )
+ t = u(y(i), 213), t.d.j ^ t.e.j && (e = t.e.e - t.d.e - t.a, e < r && (r = e, c = t));
+ return c;
+ }
+ function fJ() {
+ fJ = N, oWn = new In(Snn, (qn(), !1)), cWn = new In(Pnn, 100), Frn = (W5(), NR), uWn = new In(Inn, Frn), sWn = new In(Onn, Kf), fWn = new In(Dnn, Q(nt));
+ }
+ function PFn(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ for (l = 0, r = n.a[e], c = 0, o = r.length; c < o; ++c)
+ for (i = r[c], a = c6(i, t), h = a.Kc(); h.Ob(); )
+ f = u(h.Pb(), 11), it(n.f, f, Q(l++));
+ }
+ function _3e(n, e, t) {
+ var i, r, c, o;
+ if (t)
+ for (r = t.a.length, i = new ha(r), o = (i.b - i.a) * i.c < 0 ? (Z1(), Ql) : new il(i); o.Ob(); )
+ c = u(o.Pb(), 19), Tn(n, e, G2(sb(t, c.a)));
+ }
+ function K3e(n, e, t) {
+ var i, r, c, o;
+ if (t)
+ for (r = t.a.length, i = new ha(r), o = (i.b - i.a) * i.c < 0 ? (Z1(), Ql) : new il(i); o.Ob(); )
+ c = u(o.Pb(), 19), Tn(n, e, G2(sb(t, c.a)));
+ }
+ function hJ(n) {
+ kl();
+ var e;
+ return e = u(y7(k2(n.k), F(Yi, lc, 61, 2, 0, 1)), 122), A3(e, 0, e.length, null), e[0] == (J(), Kn) && e[1] == Gn && (Mt(e, 0, Gn), Mt(e, 1, Kn)), e;
+ }
+ function IFn(n, e, t) {
+ var i, r, c;
+ return r = M8e(n, e, t), c = JY(n, r), $$(n.b), l$(n, e, t), Pn(), wi(r, new b6n(n)), i = JY(n, r), $$(n.b), l$(n, t, e), new Pi(Q(c), Q(i));
+ }
+ function OFn() {
+ OFn = N, vJn = Ze(new li(), (Vi(), Or), (rr(), km)), bP = new ri("linearSegments.inputPrio", Q(0)), wP = new ri("linearSegments.outputPrio", Q(0));
+ }
+ function r4() {
+ r4 = N, gP = new zj("P1_TREEIFICATION", 0), qm = new zj("P2_NODE_ORDERING", 1), uy = new zj("P3_NODE_PLACEMENT", 2), Gm = new zj("P4_EDGE_ROUTING", 3);
+ }
+ function pb() {
+ pb = N, $Yn = (Xe(), Mp), FYn = td, PYn = nd, IYn = Kg, OYn = Rl, SYn = _g, Ron = ky, DYn = cw, MK = ($Y(), yYn), AK = jYn, _on = EYn, TP = CYn, MP = TYn, oy = MYn, Kon = AYn;
+ }
+ function cs() {
+ cs = N, Ey = new Xj("UNKNOWN", 0), kh = new Xj("ABOVE", 1), _l = new Xj("BELOW", 2), jy = new Xj("INLINE", 3), new ri("org.eclipse.elk.labelSide", Ey);
+ }
+ function DFn(n, e) {
+ var t;
+ if (n.ni() && e != null) {
+ for (t = 0; t < n.i; ++t)
+ if (tt(e, n.g[t]))
+ return t;
+ } else
+ for (t = 0; t < n.i; ++t)
+ if (B(n.g[t]) === B(e))
+ return t;
+ return -1;
+ }
+ function H3e(n, e, t) {
+ var i, r;
+ return e.c == (ur(), Lc) && t.c == Au ? -1 : e.c == Au && t.c == Lc ? 1 : (i = EDn(e.a, n.a), r = EDn(t.a, n.a), e.c == Lc ? r - i : i - r);
+ }
+ function vb(n, e, t) {
+ if (t && (e < 0 || e > t.a.c.length))
+ throw T(new Hn("index must be >= 0 and <= layer node count"));
+ n.c && Vc(n.c.a, n), n.c = t, t && J0(t.a, e, n);
+ }
+ function $Fn(n, e) {
+ var t, i, r;
+ for (i = new re(ue(_h(n).a.Kc(), new Mn())); Se(i); )
+ return t = u(ve(i), 17), r = u(e.Kb(t), 10), new Zy(pe(r.n.b + r.o.b / 2));
+ return Rv(), Rv(), rR;
+ }
+ function FFn(n, e) {
+ this.c = new we(), this.a = n, this.b = e, this.d = u(k(n, (G(), Ig)), 304), B(k(n, (nn(), ysn))) === B((K8(), xS)) ? this.e = new l9n() : this.e = new h9n();
+ }
+ function q3e(n, e) {
+ var t, i, r, c;
+ for (c = 0, i = new E(n); i.a < i.c.c.length; )
+ t = u(y(i), 33), c += j.Math.pow(t.g * t.f - e, 2);
+ return r = j.Math.sqrt(c / (n.c.length - 1)), r;
+ }
+ function w6(n, e) {
+ var t, i;
+ return i = null, n.Xe((Xe(), Ap)) && (t = u(n.We(Ap), 94), t.Xe(e) && (i = t.We(e))), i == null && n.yf() && (i = n.yf().We(e)), i == null && (i = cn(e)), i;
+ }
+ function hx(n, e) {
+ var t, i;
+ t = n.Zc(e);
+ try {
+ return i = t.Pb(), t.Qb(), i;
+ } catch (r) {
+ throw r = jt(r), I(r, 109) ? T(new mr("Can't remove element " + e)) : T(r);
+ }
+ }
+ function G3e(n, e) {
+ var t, i, r;
+ if (i = new Tj(), r = new _V(i.q.getFullYear() - Cl, i.q.getMonth(), i.q.getDate()), t = zye(n, e, r), t == 0 || t < e.length)
+ throw T(new Hn(e));
+ return r;
+ }
+ function lJ(n, e) {
+ var t, i, r;
+ for (_n(e), Yz(e != n), r = n.b.c.length, i = e.Kc(); i.Ob(); )
+ t = i.Pb(), W(n.b, _n(t));
+ return r != n.b.c.length ? (JV(n, 0), !0) : !1;
+ }
+ function C7() {
+ C7 = N, Brn = (Xe(), NP), new tr(WK, (qn(), !0)), lWn = nd, aWn = Kg, dWn = Rl, hWn = _g, _rn = ky, bWn = cw, Nrn = (fJ(), oWn), xrn = uWn, Lrn = sWn, Rrn = fWn, uS = cWn;
+ }
+ function z3e(n, e) {
+ if (e == n.c)
+ return n.d;
+ if (e == n.d)
+ return n.c;
+ throw T(new Hn("'port' must be either the source port or target port of the edge."));
+ }
+ function U3e(n, e, t) {
+ var i, r;
+ switch (r = n.o, i = n.d, e.g) {
+ case 1:
+ return -i.d - t;
+ case 3:
+ return r.b + i.a + t;
+ case 2:
+ return r.a + i.c + t;
+ case 4:
+ return -i.b - t;
+ default:
+ return 0;
+ }
+ }
+ function aJ(n, e, t, i) {
+ var r, c, o, f;
+ for (jr(e, u(i.Xb(0), 29)), f = i.bd(1, i.gc()), c = u(t.Kb(e), 20).Kc(); c.Ob(); )
+ r = u(c.Pb(), 17), o = r.c.i == e ? r.d.i : r.c.i, aJ(n, o, t, f);
+ }
+ function xFn(n) {
+ var e;
+ return e = new we(), ai(n, (G(), P_)) ? u(k(n, P_), 83) : (Rt(gt(new $n(null, new xn(n.j, 16)), new ebn()), new x5n(e)), H(n, P_, e), e);
+ }
+ function dJ(n, e) {
+ var t, i;
+ return n.Db >> 16 == 6 ? n.Cb.ih(n, 6, bi, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || ($c(), XP)), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function bJ(n, e) {
+ var t, i;
+ return n.Db >> 16 == 7 ? n.Cb.ih(n, 1, Iy, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || ($c(), e1n)), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function wJ(n, e) {
+ var t, i;
+ return n.Db >> 16 == 9 ? n.Cb.ih(n, 9, Pt, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || ($c(), i1n)), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function LFn(n, e) {
+ var t, i;
+ return n.Db >> 16 == 5 ? n.Cb.ih(n, 9, iI, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || (Sn(), L1)), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function gJ(n, e) {
+ var t, i;
+ return n.Db >> 16 == 3 ? n.Cb.ih(n, 0, Dy, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || (Sn(), x1)), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function NFn(n, e) {
+ var t, i;
+ return n.Db >> 16 == 7 ? n.Cb.ih(n, 6, Vo, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || (Sn(), B1)), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function BFn() {
+ this.a = new G2n(), this.g = new HT(), this.j = new HT(), this.b = new we(), this.d = new HT(), this.i = new HT(), this.k = new we(), this.c = new we(), this.e = new we(), this.f = new we();
+ }
+ function W3e(n, e, t) {
+ var i, r, c;
+ for (t < 0 && (t = 0), c = n.i, r = t; r < c; r++)
+ if (i = D(n, r), e == null) {
+ if (i == null)
+ return r;
+ } else if (B(e) === B(i) || tt(e, i))
+ return r;
+ return -1;
+ }
+ function X3e(n, e) {
+ var t, i;
+ return t = e.Hh(n.a), t ? (i = Te(Ko((!t.b && (t.b = new qu((Sn(), Zi), tc, t)), t.b), DA)), An(Tk, i) ? I5(n, ts(e.Hj())) : i) : null;
+ }
+ function c4(n, e) {
+ var t, i;
+ if (e) {
+ if (e == n)
+ return !0;
+ for (t = 0, i = u(e, 49).eh(); i && i != e; i = i.eh()) {
+ if (++t > JL)
+ return c4(n, i);
+ if (i == n)
+ return !0;
+ }
+ }
+ return !1;
+ }
+ function V3e(n) {
+ switch (dE(), n.q.g) {
+ case 5:
+ jLn(n, (J(), Kn)), jLn(n, ae);
+ break;
+ case 4:
+ pNn(n, (J(), Kn)), pNn(n, ae);
+ break;
+ default:
+ p_n(n, (J(), Kn)), p_n(n, ae);
+ }
+ }
+ function Q3e(n) {
+ switch (dE(), n.q.g) {
+ case 5:
+ NLn(n, (J(), Vn)), NLn(n, Gn);
+ break;
+ case 4:
+ X$n(n, (J(), Vn)), X$n(n, Gn);
+ break;
+ default:
+ v_n(n, (J(), Vn)), v_n(n, Gn);
+ }
+ }
+ function J3e(n) {
+ var e, t;
+ e = u(k(n, (Go(), tWn)), 19), e ? (t = e.a, t == 0 ? H(n, (al(), cS), new OF()) : H(n, (al(), cS), new EC(t))) : H(n, (al(), cS), new EC(1));
+ }
+ function Y3e(n, e) {
+ var t;
+ switch (t = n.i, e.g) {
+ case 1:
+ return -(n.n.b + n.o.b);
+ case 2:
+ return n.n.a - t.o.a;
+ case 3:
+ return n.n.b - t.o.b;
+ case 4:
+ return -(n.n.a + n.o.a);
+ }
+ return 0;
+ }
+ function Z3e(n, e) {
+ switch (n.g) {
+ case 0:
+ return e == (As(), Fl) ? TS : MS;
+ case 1:
+ return e == (As(), Fl) ? TS : Hk;
+ case 2:
+ return e == (As(), Fl) ? Hk : MS;
+ default:
+ return Hk;
+ }
+ }
+ function T7(n, e) {
+ var t, i, r;
+ for (Vc(n.a, e), n.e -= e.r + (n.a.c.length == 0 ? 0 : n.c), r = ttn, i = new E(n.a); i.a < i.c.c.length; )
+ t = u(y(i), 187), r = j.Math.max(r, t.d);
+ n.b = r;
+ }
+ function pJ(n, e) {
+ var t, i;
+ return n.Db >> 16 == 3 ? n.Cb.ih(n, 12, Pt, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || ($c(), n1n)), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function vJ(n, e) {
+ var t, i;
+ return n.Db >> 16 == 11 ? n.Cb.ih(n, 10, Pt, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || ($c(), t1n)), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function RFn(n, e) {
+ var t, i;
+ return n.Db >> 16 == 10 ? n.Cb.ih(n, 11, io, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || (Sn(), N1)), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function _Fn(n, e) {
+ var t, i;
+ return n.Db >> 16 == 10 ? n.Cb.ih(n, 12, ro, e) : (i = ir(u(On((t = u(Rn(n, 16), 26), t || (Sn(), aw)), n.Db >> 16), 18)), n.Cb.ih(n, i.n, i.f, e));
+ }
+ function Hs(n) {
+ var e;
+ return !(n.Bb & 1) && n.r && n.r.kh() && (e = u(n.r, 49), n.r = u(gl(n, e), 138), n.r != e && n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 9, 8, e, n.r))), n.r;
+ }
+ function lx(n, e, t) {
+ var i;
+ return i = A(M(Ci, 1), pr, 25, 15, [qJ(n, (_o(), Zr), e, t), qJ(n, xc, e, t), qJ(n, nc, e, t)]), n.f && (i[0] = j.Math.max(i[0], i[2]), i[2] = i[0]), i;
+ }
+ function n4e(n, e) {
+ var t, i, r;
+ if (r = Xpe(n, e), r.c.length != 0)
+ for (wi(r, new t0n()), t = r.c.length, i = 0; i < t; i++)
+ h4(n, (Ln(i, r.c.length), u(r.c[i], 286)), k7e(n, r, i));
+ }
+ function e4e(n) {
+ var e, t, i, r;
+ for (r = u(ct(n.a, (Vw(), AS)), 15).Kc(); r.Ob(); )
+ for (i = u(r.Pb(), 101), t = k2(i.k).Kc(); t.Ob(); )
+ e = u(t.Pb(), 61), d3(n, i, e, (Hd(), $l), 1);
+ }
+ function t4e(n) {
+ var e, t;
+ if (n.k == (Qn(), pi)) {
+ for (t = new re(ue(_h(n).a.Kc(), new Mn())); Se(t); )
+ if (e = u(ve(t), 17), !Wi(e) && n.c == TJ(e, n).c)
+ return !0;
+ }
+ return !1;
+ }
+ function i4e(n) {
+ var e, t;
+ if (n.k == (Qn(), pi)) {
+ for (t = new re(ue(_h(n).a.Kc(), new Mn())); Se(t); )
+ if (e = u(ve(t), 17), !Wi(e) && e.c.i.c == e.d.i.c)
+ return !0;
+ }
+ return !1;
+ }
+ function r4e(n, e) {
+ var t, i, r, c;
+ for (le(e, "Dull edge routing", 1), c = _e(n.b, 0); c.b != c.d.c; )
+ for (r = u(Re(c), 86), i = _e(r.d, 0); i.b != i.d.c; )
+ t = u(Re(i), 188), Rs(t.a);
+ }
+ function c4e(n, e) {
+ var t, i, r, c, o;
+ if (e)
+ for (r = e.a.length, t = new ha(r), o = (t.b - t.a) * t.c < 0 ? (Z1(), Ql) : new il(t); o.Ob(); )
+ c = u(o.Pb(), 19), i = y3(e, c.a), i && hNn(n, i);
+ }
+ function u4e() {
+ FG();
+ var n, e;
+ for (TTe((sl(), Nn)), pTe(Nn), fx(Nn), p1n = (Sn(), Cf), e = new E(M1n); e.a < e.c.c.length; )
+ n = u(y(e), 241), y4(n, Cf, null);
+ return !0;
+ }
+ function mJ(n, e) {
+ var t, i, r, c, o, f, h, l;
+ return h = n.h >> 19, l = e.h >> 19, h != l ? l - h : (r = n.h, f = e.h, r != f ? r - f : (i = n.m, o = e.m, i != o ? i - o : (t = n.l, c = e.l, t - c)));
+ }
+ function WT() {
+ WT = N, urn = (dM(), ER), crn = new In(snn, urn), rrn = (RC(), jR), irn = new In(onn, rrn), trn = ($T(), yR), ern = new In(fnn, trn), nrn = new In(hnn, (qn(), !0));
+ }
+ function g6(n, e, t) {
+ var i, r;
+ i = e * t, I(n.g, 145) ? (r = S2(n), r.f.d ? r.f.a || (n.d.a += i + bf) : (n.d.d -= i + bf, n.d.a += i + bf)) : I(n.g, 10) && (n.d.d -= i, n.d.a += 2 * i);
+ }
+ function KFn(n, e, t) {
+ var i, r, c, o, f;
+ for (r = n[t.g], f = new E(e.d); f.a < f.c.c.length; )
+ o = u(y(f), 101), c = o.i, c && c.i == t && (i = o.d[t.g], r[i] = j.Math.max(r[i], c.j.b));
+ }
+ function s4e(n, e) {
+ var t, i, r, c, o;
+ for (i = 0, r = 0, t = 0, o = new E(e.d); o.a < o.c.c.length; )
+ c = u(y(o), 443), GT(c), i = j.Math.max(i, c.b), r += c.d + (t > 0 ? n.g : 0), ++t;
+ e.b = i, e.e = r;
+ }
+ function HFn(n) {
+ var e, t, i;
+ if (i = n.b, h7n(n.i, i.length)) {
+ for (t = i.length * 2, n.b = F(oR, nk, 317, t, 0, 1), n.c = F(oR, nk, 317, t, 0, 1), n.f = t - 1, n.i = 0, e = n.a; e; e = e.c)
+ D7(n, e, e);
+ ++n.g;
+ }
+ }
+ function o4e(n, e, t, i) {
+ var r, c, o, f;
+ for (r = 0; r < e.o; r++)
+ for (c = r - e.j + t, o = 0; o < e.p; o++)
+ f = o - e.k + i, zw(e, r, o) ? n3e(n, c, f) || p3e(n, c, f) : dFn(e, r, o) && (fFn(n, c, f) || v3e(n, c, f));
+ }
+ function f4e(n, e, t) {
+ var i;
+ i = e.c.i, i.k == (Qn(), pi) ? (H(n, (G(), Xo), u(k(i, Xo), 11)), H(n, Js, u(k(i, Js), 11))) : (H(n, (G(), Xo), e.c), H(n, Js, t.d));
+ }
+ function u4(n, e, t) {
+ eg();
+ var i, r, c, o, f, h;
+ return o = e / 2, c = t / 2, i = j.Math.abs(n.a), r = j.Math.abs(n.b), f = 1, h = 1, i > o && (f = o / i), r > c && (h = c / r), If(n, j.Math.min(f, h)), n;
+ }
+ function h4e() {
+ mM();
+ var n, e;
+ try {
+ if (e = u(PJ((Y1(), co), R4), 2014), e)
+ return e;
+ } catch (t) {
+ if (t = jt(t), I(t, 102))
+ n = t, gW((Ee(), n));
+ else
+ throw T(t);
+ }
+ return new _2n();
+ }
+ function l4e() {
+ $Pn();
+ var n, e;
+ try {
+ if (e = u(PJ((Y1(), co), Ha), 2024), e)
+ return e;
+ } catch (t) {
+ if (t = jt(t), I(t, 102))
+ n = t, gW((Ee(), n));
+ else
+ throw T(t);
+ }
+ return new c3n();
+ }
+ function a4e() {
+ mM();
+ var n, e;
+ try {
+ if (e = u(PJ((Y1(), co), Xs), 1941), e)
+ return e;
+ } catch (t) {
+ if (t = jt(t), I(t, 102))
+ n = t, gW((Ee(), n));
+ else
+ throw T(t);
+ }
+ return new apn();
+ }
+ function d4e(n, e, t) {
+ var i, r;
+ return r = n.e, n.e = e, n.Db & 4 && !(n.Db & 1) && (i = new gi(n, 1, 4, r, e), t ? t.Ei(i) : t = i), r != e && (e ? t = y4(n, uM(n, e), t) : t = y4(n, n.a, t)), t;
+ }
+ function qFn() {
+ Tj.call(this), this.e = -1, this.a = !1, this.p = Bi, this.k = -1, this.c = -1, this.b = -1, this.g = !1, this.f = -1, this.j = -1, this.n = -1, this.i = -1, this.d = -1, this.o = Bi;
+ }
+ function b4e(n, e) {
+ var t, i, r;
+ if (i = n.b.d.d, n.a || (i += n.b.d.a), r = e.b.d.d, e.a || (r += e.b.d.a), t = ni(i, r), t == 0) {
+ if (!n.a && e.a)
+ return -1;
+ if (!e.a && n.a)
+ return 1;
+ }
+ return t;
+ }
+ function w4e(n, e) {
+ var t, i, r;
+ if (i = n.b.b.d, n.a || (i += n.b.b.a), r = e.b.b.d, e.a || (r += e.b.b.a), t = ni(i, r), t == 0) {
+ if (!n.a && e.a)
+ return -1;
+ if (!e.a && n.a)
+ return 1;
+ }
+ return t;
+ }
+ function g4e(n, e) {
+ var t, i, r;
+ if (i = n.b.g.d, n.a || (i += n.b.g.a), r = e.b.g.d, e.a || (r += e.b.g.a), t = ni(i, r), t == 0) {
+ if (!n.a && e.a)
+ return -1;
+ if (!e.a && n.a)
+ return 1;
+ }
+ return t;
+ }
+ function kJ() {
+ kJ = N, gWn = ju(Ze(Ze(Ze(new li(), (Vi(), Tc), (rr(), ycn)), Tc, jcn), Or, Ecn), Or, hcn), vWn = Ze(Ze(new li(), Tc, icn), Tc, lcn), pWn = ju(new li(), Or, dcn);
+ }
+ function p4e(n) {
+ var e, t, i, r, c;
+ for (e = u(k(n, (G(), Am)), 83), c = n.n, i = e.Cc().Kc(); i.Ob(); )
+ t = u(i.Pb(), 306), r = t.i, r.c += c.a, r.d += c.b, t.c ? cBn(t) : uBn(t);
+ H(n, Am, null);
+ }
+ function v4e(n, e, t) {
+ var i, r;
+ switch (r = n.b, i = r.d, e.g) {
+ case 1:
+ return -i.d - t;
+ case 2:
+ return r.o.a + i.c + t;
+ case 3:
+ return r.o.b + i.a + t;
+ case 4:
+ return -i.b - t;
+ default:
+ return -1;
+ }
+ }
+ function m4e(n) {
+ var e, t, i, r, c;
+ if (i = 0, r = O4, n.b)
+ for (e = 0; e < 360; e++)
+ t = e * 0.017453292519943295, hZ(n, n.d, 0, 0, ag, t), c = n.b.ig(n.d), c < r && (i = t, r = c);
+ hZ(n, n.d, 0, 0, ag, i);
+ }
+ function k4e(n, e) {
+ var t, i, r, c;
+ for (c = new we(), e.e = null, e.f = null, i = new E(e.i); i.a < i.c.c.length; )
+ t = u(y(i), 65), r = u(te(n.g, t.a), 46), t.a = qE(t.b), it(c, t.a, r);
+ n.g = c;
+ }
+ function y4e(n, e, t) {
+ var i, r, c, o, f, h;
+ for (r = e - n.e, c = r / n.d.c.length, o = 0, h = new E(n.d); h.a < h.c.c.length; )
+ f = u(y(h), 443), i = n.b - f.b + t, g$n(f, f.e + o * c, f.f), t3e(f, c, i), ++o;
+ }
+ function GFn(n) {
+ var e;
+ if (n.f.qj(), n.b != -1) {
+ if (++n.b, e = n.f.d[n.a], n.b < e.i)
+ return;
+ ++n.a;
+ }
+ for (; n.a < n.f.d.length; ++n.a)
+ if (e = n.f.d[n.a], e && e.i != 0) {
+ n.b = 0;
+ return;
+ }
+ n.b = -1;
+ }
+ function j4e(n, e) {
+ var t, i, r;
+ for (r = e.c.length, t = y6e(n, r == 0 ? "" : (Ln(0, e.c.length), Te(e.c[0]))), i = 1; i < r && t; ++i)
+ t = u(t, 49).oh((Ln(i, e.c.length), Te(e.c[i])));
+ return t;
+ }
+ function zFn(n, e) {
+ var t, i;
+ for (i = new E(e); i.a < i.c.c.length; )
+ t = u(y(i), 10), n.c[t.c.p][t.p].a = oW(n.i), n.c[t.c.p][t.p].d = K(n.c[t.c.p][t.p].a), n.c[t.c.p][t.p].b = 1;
+ }
+ function E4e(n, e) {
+ var t, i, r, c;
+ for (c = 0, i = new E(n); i.a < i.c.c.length; )
+ t = u(y(i), 157), c += j.Math.pow(au(t) * Gu(t) - e, 2);
+ return r = j.Math.sqrt(c / (n.c.length - 1)), r;
+ }
+ function UFn(n, e, t, i) {
+ var r, c, o;
+ return c = Q7e(n, e, t, i), o = rZ(n, c), yx(n, e, t, i), $$(n.b), Pn(), wi(c, new w6n(n)), r = rZ(n, c), yx(n, t, e, i), $$(n.b), new Pi(Q(o), Q(r));
+ }
+ function C4e(n, e, t) {
+ var i, r;
+ for (le(t, "Interactive node placement", 1), n.a = u(k(e, (G(), Ig)), 304), r = new E(e.b); r.a < r.c.c.length; )
+ i = u(y(r), 29), o7e(n, i);
+ ce(t);
+ }
+ function T4e(n, e) {
+ var t;
+ le(e, "General Compactor", 1), e.n && n && go(e, po(n), (Xu(), ws)), t = v2e(u(hn(n, (pb(), AK)), 380)), t.hg(n), e.n && n && go(e, po(n), (Xu(), ws));
+ }
+ function M4e(n, e, t) {
+ var i, r;
+ for (uE(n, n.j + e, n.k + t), r = new ie((!n.a && (n.a = new Yt(to, n, 5)), n.a)); r.e != r.i.gc(); )
+ i = u(oe(r), 469), mz(i, i.a + e, i.b + t);
+ cE(n, n.b + e, n.c + t);
+ }
+ function yJ(n, e, t, i) {
+ switch (t) {
+ case 7:
+ return !n.e && (n.e = new Fn(bi, n, 7, 4)), Dc(n.e, e, i);
+ case 8:
+ return !n.d && (n.d = new Fn(bi, n, 8, 5)), Dc(n.d, e, i);
+ }
+ return vx(n, e, t, i);
+ }
+ function jJ(n, e, t, i) {
+ switch (t) {
+ case 7:
+ return !n.e && (n.e = new Fn(bi, n, 7, 4)), Gi(n.e, e, i);
+ case 8:
+ return !n.d && (n.d = new Fn(bi, n, 8, 5)), Gi(n.d, e, i);
+ }
+ return tF(n, e, t, i);
+ }
+ function A4e(n, e, t) {
+ var i, r, c, o, f;
+ if (t)
+ for (c = t.a.length, i = new ha(c), f = (i.b - i.a) * i.c < 0 ? (Z1(), Ql) : new il(i); f.Ob(); )
+ o = u(f.Pb(), 19), r = y3(t, o.a), r && yLn(n, r, e);
+ }
+ function XT(n, e, t) {
+ var i, r, c, o, f;
+ return n.qj(), c = e == null ? 0 : mt(e), n.f > 0 && (o = (c & nt) % n.d.length, r = kY(n, o, c, e), r) ? (f = r.ed(t), f) : (i = n.tj(c, e, t), n.c.Fc(i), null);
+ }
+ function EJ(n, e) {
+ var t, i, r, c;
+ switch (w1(n, e)._k()) {
+ case 3:
+ case 2: {
+ for (t = ig(e), r = 0, c = t.i; r < c; ++r)
+ if (i = u(D(t, r), 34), Pd(Er(n, i)) == 5)
+ return i;
+ break;
+ }
+ }
+ return null;
+ }
+ function S4e(n) {
+ var e, t, i, r, c;
+ if (h7n(n.f, n.b.length))
+ for (i = F(bzn, nk, 330, n.b.length * 2, 0, 1), n.b = i, r = i.length - 1, t = n.a; t != n; t = t.Rd())
+ c = u(t, 330), e = c.d & r, c.a = i[e], i[e] = c;
+ }
+ function WFn(n, e) {
+ var t, i, r, c;
+ for (c = 0, r = u(u(ct(n.r, e), 21), 84).Kc(); r.Ob(); )
+ i = u(r.Pb(), 111), c = j.Math.max(c, i.e.a + i.b.rf().a);
+ t = u(br(n.b, e), 124), t.n.b = 0, t.a.a = c;
+ }
+ function XFn(n, e) {
+ var t, i, r, c;
+ for (t = 0, c = u(u(ct(n.r, e), 21), 84).Kc(); c.Ob(); )
+ r = u(c.Pb(), 111), t = j.Math.max(t, r.e.b + r.b.rf().b);
+ i = u(br(n.b, e), 124), i.n.d = 0, i.a.b = t;
+ }
+ function P4e(n) {
+ var e, t;
+ return t = u(k(n, (G(), Ac)), 21), e = iE(FJn), t.Hc((or(), Mg)) && rs(e, NJn), t.Hc(Mm) && rs(e, BJn), t.Hc(cv) && rs(e, xJn), t.Hc(uv) && rs(e, LJn), e;
+ }
+ function I4e(n, e) {
+ var t;
+ le(e, "Delaunay triangulation", 1), t = new X(), Jc(n.i, new N6n(t)), on(sn(k(n, (R3(), pm)))), n.e ? Xi(n.e, $_n(t)) : n.e = $_n(t), ce(e);
+ }
+ function CJ(n) {
+ if (n < 0)
+ throw T(new Hn("The input must be positive"));
+ return n < Nfn.length ? Fd(Nfn[n]) : j.Math.sqrt(ag * n) * (hge(n, n) / sQ(2.718281828459045, n));
+ }
+ function s4(n, e) {
+ var t;
+ if (n.ni() && e != null) {
+ for (t = 0; t < n.i; ++t)
+ if (tt(e, n.g[t]))
+ return !0;
+ } else
+ for (t = 0; t < n.i; ++t)
+ if (B(n.g[t]) === B(e))
+ return !0;
+ return !1;
+ }
+ function O4e(n, e) {
+ if (e == null) {
+ for (; n.a.Ob(); )
+ if (u(n.a.Pb(), 42).dd() == null)
+ return !0;
+ } else
+ for (; n.a.Ob(); )
+ if (tt(e, u(n.a.Pb(), 42).dd()))
+ return !0;
+ return !1;
+ }
+ function D4e(n, e) {
+ var t, i, r;
+ return e === n ? !0 : I(e, 664) ? (r = u(e, 1947), I$n((i = n.g, i || (n.g = new MI(n))), (t = r.g, t || (r.g = new MI(r))))) : !1;
+ }
+ function $4e(n) {
+ var e, t, i, r;
+ for (e = "Sz", t = "ez", r = j.Math.min(n.length, 5), i = r - 1; i >= 0; i--)
+ if (An(n[i].d, e) || An(n[i].d, t)) {
+ n.length >= i + 1 && n.splice(0, i + 1);
+ break;
+ }
+ return n;
+ }
+ function M7(n, e) {
+ var t;
+ return Fr(n) && Fr(e) && (t = n / e, ik < t && t < Fa) ? t < 0 ? j.Math.ceil(t) : j.Math.floor(t) : dl(IZ(Fr(n) ? _s(n) : n, Fr(e) ? _s(e) : e, !1));
+ }
+ function TJ(n, e) {
+ if (e == n.c.i)
+ return n.d.i;
+ if (e == n.d.i)
+ return n.c.i;
+ throw T(new Hn("'node' must either be the source node or target node of the edge."));
+ }
+ function F4e(n) {
+ var e, t, i, r;
+ if (r = u(k(n, (G(), aun)), 37), r) {
+ for (i = new Li(), e = qi(n.c.i); e != r; )
+ t = e.e, e = qi(t), W0(st(st(i, t.n), e.c), e.d.b, e.d.d);
+ return i;
+ }
+ return LWn;
+ }
+ function x4e(n) {
+ var e;
+ e = u(k(n, (G(), ov)), 403), Rt(qr(new $n(null, new xn(e.d, 16)), new R0n()), new $5n(n)), Rt(gt(new $n(null, new xn(e.d, 16)), new _0n()), new F5n(n));
+ }
+ function ax(n, e) {
+ var t, i, r, c;
+ for (r = e ? ei(n) : Lr(n), i = new re(ue(r.a.Kc(), new Mn())); Se(i); )
+ if (t = u(ve(i), 17), c = TJ(t, n), c.k == (Qn(), pi) && c.c != n.c)
+ return c;
+ return null;
+ }
+ function L4e(n) {
+ var e, t, i;
+ for (t = new E(n.p); t.a < t.c.c.length; )
+ e = u(y(t), 10), e.k == (Qn(), ii) && (i = e.o.b, n.i = j.Math.min(n.i, i), n.g = j.Math.max(n.g, i));
+ }
+ function VFn(n, e, t) {
+ var i, r, c;
+ for (c = new E(e); c.a < c.c.c.length; )
+ i = u(y(c), 10), n.c[i.c.p][i.p].e = !1;
+ for (r = new E(e); r.a < r.c.c.length; )
+ i = u(y(r), 10), LZ(n, i, t);
+ }
+ function dx(n, e, t) {
+ var i, r;
+ i = Kw(e.j, t.s, t.c) + Kw(t.e, e.s, e.c), r = Kw(t.j, e.s, e.c) + Kw(e.e, t.s, t.c), i == r ? i > 0 && (n.b += 2, n.a += i) : (n.b += 1, n.a += j.Math.min(i, r));
+ }
+ function QFn(n, e) {
+ var t, i;
+ if (i = !1, yi(e) && (i = !0, j2(n, new nb(Te(e)))), i || I(e, 236) && (i = !0, j2(n, (t = PU(u(e, 236)), new nj(t)))), !i)
+ throw T(new UI(Btn));
+ }
+ function N4e(n, e, t, i) {
+ var r, c, o;
+ return r = new xh(n.e, 1, 10, (o = e.c, I(o, 88) ? u(o, 26) : (Sn(), uo)), (c = t.c, I(c, 88) ? u(c, 26) : (Sn(), uo)), v1(n, e), !1), i ? i.Ei(r) : i = r, i;
+ }
+ function MJ(n) {
+ var e, t;
+ switch (u(k(qi(n), (nn(), dsn)), 420).g) {
+ case 0:
+ return e = n.n, t = n.o, new fn(e.a + t.a / 2, e.b + t.b / 2);
+ case 1:
+ return new kr(n.n);
+ default:
+ return null;
+ }
+ }
+ function A7() {
+ A7 = N, LS = new c5(Wh, 0), Ycn = new c5("LEFTUP", 1), nun = new c5("RIGHTUP", 2), Jcn = new c5("LEFTDOWN", 3), Zcn = new c5("RIGHTDOWN", 4), p_ = new c5("BALANCED", 5);
+ }
+ function B4e(n, e, t) {
+ var i, r, c;
+ if (i = ni(n.a[e.p], n.a[t.p]), i == 0) {
+ if (r = u(k(e, (G(), gp)), 15), c = u(k(t, gp), 15), r.Hc(t))
+ return -1;
+ if (c.Hc(e))
+ return 1;
+ }
+ return i;
+ }
+ function R4e(n) {
+ switch (n.g) {
+ case 1:
+ return new Dgn();
+ case 2:
+ return new $gn();
+ case 3:
+ return new Ogn();
+ case 0:
+ return null;
+ default:
+ throw T(new Hn(lB + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function AJ(n, e, t) {
+ switch (e) {
+ case 1:
+ !n.n && (n.n = new V(Rr, n, 1, 7)), de(n.n), !n.n && (n.n = new V(Rr, n, 1, 7)), $t(n.n, u(t, 14));
+ return;
+ case 2:
+ Q5(n, Te(t));
+ return;
+ }
+ WV(n, e, t);
+ }
+ function SJ(n, e, t) {
+ switch (e) {
+ case 3:
+ Rd(n, K(Y(t)));
+ return;
+ case 4:
+ _d(n, K(Y(t)));
+ return;
+ case 5:
+ Yc(n, K(Y(t)));
+ return;
+ case 6:
+ Zc(n, K(Y(t)));
+ return;
+ }
+ AJ(n, e, t);
+ }
+ function VT(n, e, t) {
+ var i, r, c;
+ c = (i = new _I(), i), r = af(c, e, null), r && r.Fi(), Oc(c, t), me((!n.c && (n.c = new V(I0, n, 12, 10)), n.c), c), d1(c, 0), lb(c, 1), p1(c, !0), g1(c, !0);
+ }
+ function PJ(n, e) {
+ var t, i, r;
+ return t = n5(n.g, e), I(t, 235) ? (r = u(t, 235), r.Qh() == null, r.Nh()) : I(t, 498) ? (i = u(t, 1938), r = i.b, r) : null;
+ }
+ function _4e(n, e, t, i) {
+ var r, c;
+ return pe(e), pe(t), c = u(M5(n.d, e), 19), BPn(!!c, "Row %s not in %s", e, n.e), r = u(M5(n.b, t), 19), BPn(!!r, "Column %s not in %s", t, n.c), qOn(n, c.a, r.a, i);
+ }
+ function JFn(n, e, t, i, r, c, o) {
+ var f, h, l, a, d;
+ if (a = r[c], l = c == o - 1, f = l ? i : 0, d = vFn(f, a), i != 10 && A(M(n, o - c), e[c], t[c], f, d), !l)
+ for (++c, h = 0; h < a; ++h)
+ d[h] = JFn(n, e, t, i, r, c, o);
+ return d;
+ }
+ function p6(n) {
+ if (n.g == -1)
+ throw T(new su());
+ n.mj();
+ try {
+ n.i.$c(n.g), n.f = n.i.j, n.g < n.e && --n.e, n.g = -1;
+ } catch (e) {
+ throw e = jt(e), I(e, 73) ? T(new ps()) : T(e);
+ }
+ }
+ function v6(n, e) {
+ return n.b.a = j.Math.min(n.b.a, e.c), n.b.b = j.Math.min(n.b.b, e.d), n.a.a = j.Math.max(n.a.a, e.c), n.a.b = j.Math.max(n.a.b, e.d), n.c[n.c.length] = e, !0;
+ }
+ function K4e(n) {
+ var e, t, i, r;
+ for (r = -1, i = 0, t = new E(n); t.a < t.c.c.length; ) {
+ if (e = u(y(t), 243), e.c == (ur(), Au)) {
+ r = i == 0 ? 0 : i - 1;
+ break;
+ } else
+ i == n.c.length - 1 && (r = i);
+ i += 1;
+ }
+ return r;
+ }
+ function H4e(n) {
+ var e, t, i, r;
+ for (r = 0, e = 0, i = new E(n.c); i.a < i.c.c.length; )
+ t = u(y(i), 33), Yc(t, n.e + r), Zc(t, n.f), r += t.g + n.b, e = j.Math.max(e, t.f + n.b);
+ n.d = r - n.b, n.a = e - n.b;
+ }
+ function Ww(n) {
+ var e, t, i;
+ for (t = new E(n.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 57), i = e.d.c, e.d.c = e.d.d, e.d.d = i, i = e.d.b, e.d.b = e.d.a, e.d.a = i, i = e.b.a, e.b.a = e.b.b, e.b.b = i;
+ GY(n);
+ }
+ function Xw(n) {
+ var e, t, i;
+ for (t = new E(n.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 81), i = e.g.c, e.g.c = e.g.d, e.g.d = i, i = e.g.b, e.g.b = e.g.a, e.g.a = i, i = e.e.a, e.e.a = e.e.b, e.e.b = i;
+ oM(n);
+ }
+ function q4e(n) {
+ var e, t, i, r, c;
+ for (c = k2(n.k), t = (J(), A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn])), i = 0, r = t.length; i < r; ++i)
+ if (e = t[i], e != Xr && !c.Hc(e))
+ return e;
+ return null;
+ }
+ function bx(n, e) {
+ var t, i;
+ return i = u(Gz(fF(gt(new $n(null, new xn(e.j, 16)), new awn()))), 11), i && (t = u(un(i.e, 0), 17), t) ? u(k(t, (G(), bc)), 19).a : v0e(n.b);
+ }
+ function G4e(n, e) {
+ var t, i, r, c;
+ for (c = new E(e.a); c.a < c.c.c.length; )
+ for (r = u(y(c), 10), qv(n.d), i = new re(ue(ei(r).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), ULn(n, r, t.d.i);
+ }
+ function z4e(n, e) {
+ var t, i;
+ for (Vc(n.b, e), i = new E(n.n); i.a < i.c.c.length; )
+ if (t = u(y(i), 211), xr(t.c, e, 0) != -1) {
+ Vc(t.c, e), H4e(t), t.c.c.length == 0 && Vc(n.n, t);
+ break;
+ }
+ ije(n);
+ }
+ function YFn(n, e) {
+ var t, i, r, c, o;
+ for (o = n.f, r = 0, c = 0, i = new E(n.a); i.a < i.c.c.length; )
+ t = u(y(i), 187), k7(t, n.e, o), B8(t, e), c = j.Math.max(c, t.r), o += t.d + n.c, r = o;
+ n.d = c, n.b = r;
+ }
+ function ZFn(n) {
+ var e, t;
+ return t = N7(n), j3(t) ? null : (e = (pe(t), u(oFn(new re(ue(t.a.Kc(), new Mn()))), 79)), Ir(u(D((!e.b && (e.b = new Fn(he, e, 4, 7)), e.b), 0), 82)));
+ }
+ function QT(n) {
+ var e;
+ return n.o || (e = n.Lj(), e ? n.o = new LW(n, n, null) : n.rk() ? n.o = new bU(n, null) : Pd(Er((bu(), xi), n)) == 1 ? n.o = new RAn(n) : n.o = new nD(n, null)), n.o;
+ }
+ function U4e(n, e, t, i) {
+ var r, c, o, f, h;
+ t.mh(e) && (r = (o = e, o ? u(i, 49).xh(o) : null), r && (h = t.ah(e), f = e.t, f > 1 || f == -1 ? (c = u(h, 15), r.Wb(W2e(n, c))) : r.Wb(Zx(n, u(h, 56)))));
+ }
+ function W4e(n, e, t, i) {
+ B8n();
+ var r = iR;
+ function c() {
+ for (var o = 0; o < r.length; o++)
+ r[o]();
+ }
+ if (n)
+ try {
+ Bee(c)();
+ } catch (o) {
+ n(e, o);
+ }
+ else
+ Bee(c)();
+ }
+ function X4e(n) {
+ var e, t, i, r, c;
+ for (i = new Ca(new ia(n.b).a); i.b; )
+ t = Bd(i), e = u(t.cd(), 10), c = u(u(t.dd(), 46).a, 10), r = u(u(t.dd(), 46).b, 8), st(Lo(e.n), st(Qr(c.n), r));
+ }
+ function V4e(n) {
+ switch (u(k(n.b, (nn(), usn)), 375).g) {
+ case 1:
+ Rt(Wc(qr(new $n(null, new xn(n.d, 16)), new Rbn()), new _bn()), new Kbn());
+ break;
+ case 2:
+ B7e(n);
+ break;
+ case 0:
+ m6e(n);
+ }
+ }
+ function Q4e(n, e, t) {
+ var i;
+ le(t, "Straight Line Edge Routing", 1), t.n && e && go(t, po(e), (Xu(), ws)), i = u(hn(e, (C5(), Xm)), 33), TRn(n, i), t.n && e && go(t, po(e), (Xu(), ws));
+ }
+ function mb() {
+ mb = N, zK = new h5("V_TOP", 0), gy = new h5("V_CENTER", 1), wy = new h5("V_BOTTOM", 2), GK = new h5("H_LEFT", 3), dy = new h5("H_CENTER", 4), by = new h5("H_RIGHT", 5);
+ }
+ function IJ(n) {
+ var e;
+ return n.Db & 64 ? MT(n) : (e = new Ns(MT(n)), e.a += " (abstract: ", r1(e, (n.Bb & 256) != 0), e.a += ", interface: ", r1(e, (n.Bb & 512) != 0), e.a += ")", e.a);
+ }
+ function J4e(n, e, t, i) {
+ var r, c, o, f;
+ return Hu(n.e) && (r = e.ak(), f = e.dd(), c = t.dd(), o = fl(n, 1, r, f, c, r.$j() ? v4(n, r, c, I(r, 99) && (u(r, 18).Bb & Ji) != 0) : -1, !0), i ? i.Ei(o) : i = o), i;
+ }
+ function Y4e(n) {
+ var e;
+ n.c == null && (e = B(n.b) === B(ain) ? null : n.b, n.d = e == null ? tu : kCn(e) ? $ce(xTn(e)) : yi(e) ? VZ : Q1(Du(e)), n.a = n.a + ": " + (kCn(e) ? Mue(xTn(e)) : e + ""), n.c = "(" + n.d + ") " + n.a);
+ }
+ function OJ(n, e) {
+ this.e = n, pd(ui(e, -4294967296), 0) ? (this.d = 1, this.a = A(M(be, 1), Le, 25, 15, [ge(e)])) : (this.d = 2, this.a = A(M(be, 1), Le, 25, 15, [ge(e), ge(rl(e, 32))]));
+ }
+ function Z4e() {
+ function n() {
+ try {
+ return (/* @__PURE__ */ new Map()).entries().next().done;
+ } catch {
+ return !1;
+ }
+ }
+ return typeof Map === CL && Map.prototype.entries && n() ? Map : ECe();
+ }
+ function nve(n, e) {
+ var t, i, r, c;
+ for (c = new Ii(n.e, 0), t = 0; c.b < c.d.gc(); ) {
+ if (i = K((ne(c.b < c.d.gc()), Y(c.d.Xb(c.c = c.b++)))), r = i - e, r > oB)
+ return t;
+ r > -1e-6 && ++t;
+ }
+ return t;
+ }
+ function DJ(n, e) {
+ var t;
+ e != n.b ? (t = null, n.b && (t = sC(n.b, n, -4, t)), e && (t = _2(e, n, -4, t)), t = $Dn(n, e, t), t && t.Fi()) : n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 3, e, e));
+ }
+ function nxn(n, e) {
+ var t;
+ e != n.f ? (t = null, n.f && (t = sC(n.f, n, -1, t)), e && (t = _2(e, n, -1, t)), t = FDn(n, e, t), t && t.Fi()) : n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 0, e, e));
+ }
+ function exn(n) {
+ var e, t, i;
+ if (n == null)
+ return null;
+ if (t = u(n, 15), t.dc())
+ return "";
+ for (i = new i1(), e = t.Kc(); e.Ob(); )
+ dr(i, (ht(), Te(e.Pb()))), i.a += " ";
+ return NO(i, i.a.length - 1);
+ }
+ function txn(n) {
+ var e, t, i;
+ if (n == null)
+ return null;
+ if (t = u(n, 15), t.dc())
+ return "";
+ for (i = new i1(), e = t.Kc(); e.Ob(); )
+ dr(i, (ht(), Te(e.Pb()))), i.a += " ";
+ return NO(i, i.a.length - 1);
+ }
+ function eve(n, e, t) {
+ var i, r;
+ return i = n.c[e.c.p][e.p], r = n.c[t.c.p][t.p], i.a != null && r.a != null ? TD(i.a, r.a) : i.a != null ? -1 : r.a != null ? 1 : 0;
+ }
+ function tve(n, e) {
+ var t, i, r, c, o, f;
+ if (e)
+ for (c = e.a.length, t = new ha(c), f = (t.b - t.a) * t.c < 0 ? (Z1(), Ql) : new il(t); f.Ob(); )
+ o = u(f.Pb(), 19), r = y3(e, o.a), i = new imn(n), zhe(i.a, r);
+ }
+ function ive(n, e) {
+ var t, i, r, c, o, f;
+ if (e)
+ for (c = e.a.length, t = new ha(c), f = (t.b - t.a) * t.c < 0 ? (Z1(), Ql) : new il(t); f.Ob(); )
+ o = u(f.Pb(), 19), r = y3(e, o.a), i = new X6n(n), Ghe(i.a, r);
+ }
+ function rve(n) {
+ var e;
+ if (n != null && n.length > 0 && Di(n, n.length - 1) == 33)
+ try {
+ return e = Zxn(Yu(n, 0, n.length - 1)), e.e == null;
+ } catch (t) {
+ if (t = jt(t), !I(t, 32))
+ throw T(t);
+ }
+ return !1;
+ }
+ function ixn(n, e, t) {
+ var i, r, c;
+ return i = e.ak(), c = e.dd(), r = i.$j() ? fl(n, 3, i, null, c, v4(n, i, c, I(i, 99) && (u(i, 18).Bb & Ji) != 0), !0) : fl(n, 1, i, i.zj(), c, -1, !0), t ? t.Ei(r) : t = r, t;
+ }
+ function cve() {
+ var n, e, t;
+ for (e = 0, n = 0; n < 1; n++) {
+ if (t = CY((Me(n, 1), "X".charCodeAt(n))), t == 0)
+ throw T(new Ce("Unknown Option: " + "X".substr(n)));
+ e |= t;
+ }
+ return e;
+ }
+ function uve(n, e, t) {
+ var i, r, c;
+ switch (i = qi(e), r = jT(i), c = new gc(), Hr(c, e), t.g) {
+ case 1:
+ si(c, b7(B2(r)));
+ break;
+ case 2:
+ si(c, B2(r));
+ }
+ return H(c, (nn(), Yb), Y(k(n, Yb))), c;
+ }
+ function $J(n) {
+ var e, t;
+ return e = u(ve(new re(ue(Lr(n.a).a.Kc(), new Mn()))), 17), t = u(ve(new re(ue(ei(n.a).a.Kc(), new Mn()))), 17), on(sn(k(e, (G(), mf)))) || on(sn(k(t, mf)));
+ }
+ function Vw() {
+ Vw = N, SS = new W9("ONE_SIDE", 0), IS = new W9("TWO_SIDES_CORNER", 1), OS = new W9("TWO_SIDES_OPPOSING", 2), PS = new W9("THREE_SIDES", 3), AS = new W9("FOUR_SIDES", 4);
+ }
+ function wx(n, e, t, i, r) {
+ var c, o;
+ c = u(es(gt(e.Oc(), new Ybn()), pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [(hf(), hs)]))), 15), o = u(ka(n.b, t, i), 15), r == 0 ? o.Wc(0, c) : o.Gc(c);
+ }
+ function sve(n, e) {
+ var t, i, r, c, o;
+ for (c = new E(e.a); c.a < c.c.c.length; )
+ for (r = u(y(c), 10), i = new re(ue(Lr(r).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), o = t.c.i.p, n.n[o] = n.n[o] - 1;
+ }
+ function ove(n, e) {
+ var t, i, r, c, o;
+ for (c = new E(e.d); c.a < c.c.c.length; )
+ for (r = u(y(c), 101), o = u(te(n.c, r), 112).o, i = new o2(r.b); i.a < i.c.a.length; )
+ t = u(G5(i), 61), GX(r, t, o);
+ }
+ function fve(n) {
+ var e, t;
+ for (t = new E(n.e.b); t.a < t.c.c.length; )
+ e = u(y(t), 29), REe(n, e);
+ Rt(gt(qr(qr(new $n(null, new xn(n.e.b, 16)), new _wn()), new Uwn()), new Wwn()), new P6n(n));
+ }
+ function FJ(n, e) {
+ return e ? n.Di(e) ? !1 : n.i ? n.i.Ei(e) : I(e, 143) ? (n.i = u(e, 143), !0) : (n.i = new W2n(), n.i.Ei(e)) : !1;
+ }
+ function hve(n) {
+ if (n = Ec(n, !0), An(N4, n) || An("1", n))
+ return qn(), G4;
+ if (An(EB, n) || An("0", n))
+ return qn(), Ga;
+ throw T(new VI("Invalid boolean value: '" + n + "'"));
+ }
+ function xJ(n, e, t) {
+ var i, r, c;
+ for (r = n.vc().Kc(); r.Ob(); )
+ if (i = u(r.Pb(), 42), c = i.cd(), B(e) === B(c) || e != null && tt(e, c))
+ return t && (i = new Nj(i.cd(), i.dd()), r.Qb()), i;
+ return null;
+ }
+ function lve(n) {
+ X0();
+ var e, t, i;
+ n.B.Hc((xu(), GP)) && (i = n.f.i, e = new uC(n.a.c), t = new i2(), t.b = e.c - i.c, t.d = e.d - i.d, t.c = i.c + i.b - (e.c + e.b), t.a = i.d + i.a - (e.d + e.a), n.e.Ff(t));
+ }
+ function rxn(n, e, t, i) {
+ var r, c, o;
+ for (o = j.Math.min(t, aRn(u(n.b, 65), e, t, i)), c = new E(n.a); c.a < c.c.c.length; )
+ r = u(y(c), 221), r != e && (o = j.Math.min(o, rxn(r, e, o, i)));
+ return o;
+ }
+ function LJ(n) {
+ var e, t, i, r;
+ for (r = F(vh, q, 193, n.b.c.length, 0, 2), i = new Ii(n.b, 0); i.b < i.d.gc(); )
+ e = (ne(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 29)), t = i.b - 1, r[t] = I8(e.a);
+ return r;
+ }
+ function gx(n, e, t, i, r) {
+ var c, o, f, h;
+ for (o = Sie(vG(LU(Npe(t)), i), U3e(n, t, r)), h = k1(n, t).Kc(); h.Ob(); )
+ f = u(h.Pb(), 11), e[f.p] && (c = e[f.p].i, W(o.d, new jD(c, gQ(o, c))));
+ DQ(o);
+ }
+ function NJ(n, e) {
+ this.f = new we(), this.b = new we(), this.j = new we(), this.a = n, this.c = e, this.c > 0 && PFn(this, this.c - 1, (J(), Vn)), this.c < this.a.length - 1 && PFn(this, this.c + 1, (J(), Gn));
+ }
+ function BJ(n) {
+ n.length > 0 && n[0].length > 0 && (this.c = on(sn(k(qi(n[0][0]), (G(), wun))))), this.a = F(uJn, q, 2018, n.length, 0, 2), this.b = F(sJn, q, 2019, n.length, 0, 2), this.d = new MDn();
+ }
+ function ave(n) {
+ return n.c.length == 0 ? !1 : (Ln(0, n.c.length), u(n.c[0], 17)).c.i.k == (Qn(), pi) ? !0 : E3(Wc(new $n(null, new xn(n, 16)), new Own()), new Dwn());
+ }
+ function dve(n, e, t) {
+ return le(t, "Tree layout", 1), pC(n.b), ih(n.b, (r4(), gP), gP), ih(n.b, qm, qm), ih(n.b, uy, uy), ih(n.b, Gm, Gm), n.a = EM(n.b, e), H8e(n, e, yc(t, 1)), ce(t), e;
+ }
+ function cxn(n, e) {
+ var t, i, r, c, o, f, h;
+ for (f = Tb(e), c = e.f, h = e.g, o = j.Math.sqrt(c * c + h * h), r = 0, i = new E(f); i.a < i.c.c.length; )
+ t = u(y(i), 33), r += cxn(n, t);
+ return j.Math.max(r, o);
+ }
+ function Ai() {
+ Ai = N, Hl = new a5(K6, 0), jf = new a5("FREE", 1), Cv = new a5("FIXED_SIDE", 2), id = new a5("FIXED_ORDER", 3), jh = new a5("FIXED_RATIO", 4), Sc = new a5("FIXED_POS", 5);
+ }
+ function bve(n, e) {
+ var t, i, r;
+ if (t = e.Hh(n.a), t) {
+ for (r = Te(Ko((!t.b && (t.b = new qu((Sn(), Zi), tc, t)), t.b), Vs)), i = 1; i < (bu(), I1n).length; ++i)
+ if (An(I1n[i], r))
+ return i;
+ }
+ return 0;
+ }
+ function wve(n) {
+ var e, t, i, r, c;
+ if (n == null)
+ return tu;
+ for (c = new ya(Qi, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], Fh(c, "" + e);
+ return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c;
+ }
+ function gve(n) {
+ var e, t, i, r, c;
+ if (n == null)
+ return tu;
+ for (c = new ya(Qi, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], Fh(c, "" + e);
+ return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c;
+ }
+ function uxn(n) {
+ var e, t, i;
+ for (i = new ya(Qi, "{", "}"), t = n.vc().Kc(); t.Ob(); )
+ e = u(t.Pb(), 42), Fh(i, $An(n, e.cd()) + "=" + $An(n, e.dd()));
+ return i.a ? i.e.length == 0 ? i.a.a : i.a.a + ("" + i.e) : i.c;
+ }
+ function pve(n) {
+ for (var e, t, i, r; !Hv(n.o); )
+ t = u(y2(n.o), 46), i = u(t.a, 121), e = u(t.b, 213), r = TT(e, i), e.e == i ? (bE(r.g, e), i.e = r.e + e.a) : (bE(r.b, e), i.e = r.e - e.a), W(n.e.a, i);
+ }
+ function RJ(n, e) {
+ var t, i, r;
+ for (t = null, r = u(e.Kb(n), 20).Kc(); r.Ob(); )
+ if (i = u(r.Pb(), 17), !t)
+ t = i.c.i == n ? i.d.i : i.c.i;
+ else if ((i.c.i == n ? i.d.i : i.c.i) != t)
+ return !1;
+ return !0;
+ }
+ function sxn(n, e) {
+ var t, i, r, c, o;
+ for (t = ANn(n, !1, e), r = new E(t); r.a < r.c.c.length; )
+ i = u(y(r), 129), i.d == 0 ? (s$(i, null), o$(i, null)) : (c = i.a, o = i.b, s$(i, o), o$(i, c));
+ }
+ function vve(n) {
+ var e, t;
+ return e = new li(), rs(e, KJn), t = u(k(n, (G(), Ac)), 21), t.Hc((or(), Mm)) && rs(e, zJn), t.Hc(cv) && rs(e, HJn), t.Hc(Mg) && rs(e, GJn), t.Hc(uv) && rs(e, qJn), e;
+ }
+ function mve(n) {
+ var e, t, i, r;
+ for (Kje(n), t = new re(ue(_h(n).a.Kc(), new Mn())); Se(t); )
+ e = u(ve(t), 17), i = e.c.i == n, r = i ? e.d : e.c, i ? Ti(e, null) : Ki(e, null), H(e, (G(), mun), r), Sme(n, r.i);
+ }
+ function kve(n, e, t, i) {
+ var r, c;
+ switch (c = e.i, r = t[c.g][n.d[c.g]], c.g) {
+ case 1:
+ r -= i + e.j.b, e.g.b = r;
+ break;
+ case 3:
+ r += i, e.g.b = r;
+ break;
+ case 4:
+ r -= i + e.j.a, e.g.a = r;
+ break;
+ case 2:
+ r += i, e.g.a = r;
+ }
+ }
+ function yve(n) {
+ var e, t, i;
+ for (t = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); t.e != t.i.gc(); )
+ if (e = u(oe(t), 33), i = N7(e), !Se(new re(ue(i.a.Kc(), new Mn()))))
+ return e;
+ return null;
+ }
+ function jve() {
+ var n;
+ return xne ? u(d4((Y1(), co), R4), 2016) : (n = u(I(mc((Y1(), co), R4), 555) ? mc(co, R4) : new QLn(), 555), xne = !0, MEe(n), FTe(n), fx(n), yr(co, R4, n), n);
+ }
+ function px(n, e, t) {
+ var i, r;
+ if (n.j == 0)
+ return t;
+ if (r = u(IIn(n, e, t), 72), i = t.ak(), !i.Ij() || !n.a.rl(i))
+ throw T(new _r("Invalid entry feature '" + i.Hj().zb + "." + i.ne() + "'"));
+ return r;
+ }
+ function Eve(n, e) {
+ var t, i, r, c, o, f, h, l;
+ for (f = n.a, h = 0, l = f.length; h < l; ++h)
+ for (o = f[h], i = o, r = 0, c = i.length; r < c; ++r)
+ if (t = i[r], B(e) === B(t) || e != null && tt(e, t))
+ return !0;
+ return !1;
+ }
+ function Cve(n) {
+ var e, t, i;
+ return hc(n, 0) >= 0 ? (t = M7(n, $M), i = p7(n, $M)) : (e = Y0(n, 1), t = M7(e, 5e8), i = p7(e, 5e8), i = Hi(Ph(i, 1), ui(n, 1))), rf(Ph(i, 32), ui(t, fr));
+ }
+ function oxn(n, e, t) {
+ var i, r;
+ switch (i = (ne(e.b != 0), u(Cs(e, e.a.a), 8)), t.g) {
+ case 0:
+ i.b = 0;
+ break;
+ case 2:
+ i.b = n.f;
+ break;
+ case 3:
+ i.a = 0;
+ break;
+ default:
+ i.a = n.g;
+ }
+ return r = _e(e, 0), y8(r, i), e;
+ }
+ function fxn(n, e, t, i) {
+ var r, c, o, f, h;
+ switch (h = n.b, c = e.d, o = c.j, f = WQ(o, h.d[o.g], t), r = st(Qr(c.n), c.a), c.j.g) {
+ case 1:
+ case 3:
+ f.a += r.a;
+ break;
+ case 2:
+ case 4:
+ f.b += r.b;
+ }
+ Ht(i, f, i.c.b, i.c);
+ }
+ function Tve(n, e, t) {
+ var i, r, c, o;
+ for (o = xr(n.e, e, 0), c = new Jq(), c.b = t, i = new Ii(n.e, o); i.b < i.d.gc(); )
+ r = (ne(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 10)), r.p = t, W(c.e, r), Uu(i);
+ return c;
+ }
+ function Mve(n, e, t, i) {
+ var r, c, o, f, h;
+ for (r = null, c = 0, f = new E(e); f.a < f.c.c.length; )
+ o = u(y(f), 33), h = o.i + o.g, n < o.j + o.f + i && (r ? t.i - h < t.i - c && (r = o) : r = o, c = r.i + r.g);
+ return r ? c + i : 0;
+ }
+ function Ave(n, e, t, i) {
+ var r, c, o, f, h;
+ for (c = null, r = 0, f = new E(e); f.a < f.c.c.length; )
+ o = u(y(f), 33), h = o.j + o.f, n < o.i + o.g + i && (c ? t.j - h < t.j - r && (c = o) : c = o, r = c.j + c.f);
+ return c ? r + i : 0;
+ }
+ function Sve(n) {
+ var e, t, i;
+ for (e = !1, i = n.b.c.length, t = 0; t < i; t++)
+ UV(u(un(n.b, t), 434)) ? !e && t + 1 < i && UV(u(un(n.b, t + 1), 434)) && (e = !0, u(un(n.b, t), 434).a = !0) : e = !1;
+ }
+ function Pve(n, e, t, i, r) {
+ var c, o;
+ for (c = 0, o = 0; o < r; o++)
+ c = Hi(c, pl(ui(e[o], fr), ui(i[o], fr))), n[o] = ge(c), c = rl(c, 32);
+ for (; o < t; o++)
+ c = Hi(c, ui(e[o], fr)), n[o] = ge(c), c = rl(c, 32);
+ }
+ function Ive(n, e) {
+ l4();
+ var t, i;
+ for (i = (yl(), qA), t = n; e > 1; e >>= 1)
+ e & 1 && (i = Fw(i, t)), t.d == 1 ? t = Fw(t, t) : t = new $$n(HBn(t.a, t.d, F(be, Le, 25, t.d << 1, 15, 1)));
+ return i = Fw(i, t), i;
+ }
+ function _J() {
+ _J = N;
+ var n, e, t, i;
+ for (Kin = F(Ci, pr, 25, 25, 15, 1), Hin = F(Ci, pr, 25, 33, 15, 1), i = 152587890625e-16, e = 32; e >= 0; e--)
+ Hin[e] = i, i *= 0.5;
+ for (t = 1, n = 24; n >= 0; n--)
+ Kin[n] = t, t *= 0.5;
+ }
+ function Ove(n) {
+ var e, t;
+ if (on(sn(hn(n, (nn(), Jb))))) {
+ for (t = new re(ue(qh(n).a.Kc(), new Mn())); Se(t); )
+ if (e = u(ve(t), 79), Yd(e) && on(sn(hn(e, Xa))))
+ return !0;
+ }
+ return !1;
+ }
+ function hxn(n, e) {
+ var t, i, r;
+ ci(n.f, e) && (e.b = n, i = e.c, xr(n.j, i, 0) != -1 || W(n.j, i), r = e.d, xr(n.j, r, 0) != -1 || W(n.j, r), t = e.a.b, t.c.length != 0 && (!n.i && (n.i = new H$n(n)), Wbe(n.i, t)));
+ }
+ function Dve(n) {
+ var e, t, i, r, c;
+ return t = n.c.d, i = t.j, r = n.d.d, c = r.j, i == c ? t.p < r.p ? 0 : 1 : yT(i) == c ? 0 : pQ(i) == c ? 1 : (e = n.b, hu(e.b, yT(i)) ? 0 : 1);
+ }
+ function JT() {
+ JT = N, Q_ = new s5(CHn, 0), _sn = new s5("LONGEST_PATH", 1), V_ = new s5("COFFMAN_GRAHAM", 2), Rsn = new s5(PN, 3), Ksn = new s5("STRETCH_WIDTH", 4), sP = new s5("MIN_WIDTH", 5);
+ }
+ function Oa(n) {
+ var e;
+ this.d = new we(), this.c = n.c, this.e = n.d, this.b = n.b, this.f = new uCn(n.e), this.a = n.a, n.f ? this.g = n.f : this.g = (e = u(xo(nI), 9), new ms(e, u(bo(e, e.length), 9), 0));
+ }
+ function YT(n, e) {
+ var t, i, r, c, o, f;
+ r = n, o = q5(r, "layoutOptions"), !o && (o = q5(r, jqn)), o && (f = o, i = null, f && (i = (c = Z$(f, F(tn, q, 2, 0, 6, 1)), new iO(f, c))), i && (t = new ykn(f, e), $i(i, t)));
+ }
+ function Ir(n) {
+ if (I(n, 239))
+ return u(n, 33);
+ if (I(n, 186))
+ return nf(u(n, 118));
+ throw T(n ? new t1("Only support nodes and ports.") : new c2(Oqn));
+ }
+ function $ve(n, e, t, i) {
+ return (e >= 0 && An(n.substr(e, 3), "GMT") || e >= 0 && An(n.substr(e, 3), "UTC")) && (t[0] = e + 3), dZ(n, t, i);
+ }
+ function Fve(n, e) {
+ var t, i, r, c, o;
+ for (c = n.g.a, o = n.g.b, i = new E(n.d); i.a < i.c.c.length; )
+ t = u(y(i), 70), r = t.n, r.a = c, n.i == (J(), Kn) ? r.b = o + n.j.b - t.o.b : r.b = o, st(r, e), c += t.o.a + n.e;
+ }
+ function le(n, e, t) {
+ if (n.b)
+ throw T(new $r("The task is already done."));
+ return n.p != null ? !1 : (n.p = e, n.r = t, n.k && (n.o = (Zf(), Ni(nu(Date.now()), j1))), !0);
+ }
+ function KJ(n) {
+ var e, t, i, r, c, o, f;
+ return f = new r2(), t = n.tg(), r = t != null, r && h3(f, Uf, n.tg()), i = n.ne(), c = i != null, c && h3(f, We, n.ne()), e = n.sg(), o = e != null, o && h3(f, "description", n.sg()), f;
+ }
+ function lxn(n, e, t) {
+ var i, r, c;
+ return c = n.q, n.q = e, n.Db & 4 && !(n.Db & 1) && (r = new gi(n, 1, 9, c, e), t ? t.Ei(r) : t = r), e ? (i = e.c, i != n.r && (t = n.nk(i, t))) : n.r && (t = n.nk(null, t)), t;
+ }
+ function xve(n, e, t) {
+ var i, r, c, o, f;
+ for (t = (f = e, _2(f, n.e, -1 - n.c, t)), o = BW(n.a), c = (i = new Ca(new ia(o.a).a), new oj(i)); c.a.b; )
+ r = u(Bd(c.a).cd(), 87), t = y4(r, uM(r, n.a), t);
+ return t;
+ }
+ function Lve(n, e, t) {
+ var i, r, c, o, f;
+ for (t = (f = e, sC(f, n.e, -1 - n.c, t)), o = BW(n.a), c = (i = new Ca(new ia(o.a).a), new oj(i)); c.a.b; )
+ r = u(Bd(c.a).cd(), 87), t = y4(r, uM(r, n.a), t);
+ return t;
+ }
+ function Nve(n, e, t, i) {
+ var r, c, o;
+ if (i == 0)
+ pc(e, 0, n, t, n.length - t);
+ else
+ for (o = 32 - i, n[n.length - 1] = 0, c = n.length - 1; c > t; c--)
+ n[c] |= e[c - t - 1] >>> o, n[c - 1] = e[c - t - 1] << i;
+ for (r = 0; r < t; r++)
+ n[r] = 0;
+ }
+ function Bve(n) {
+ var e, t, i, r, c;
+ for (e = 0, t = 0, c = n.Kc(); c.Ob(); )
+ i = u(c.Pb(), 111), e = j.Math.max(e, i.d.b), t = j.Math.max(t, i.d.c);
+ for (r = n.Kc(); r.Ob(); )
+ i = u(r.Pb(), 111), i.d.b = e, i.d.c = t;
+ }
+ function Rve(n) {
+ var e, t, i, r, c;
+ for (t = 0, e = 0, c = n.Kc(); c.Ob(); )
+ i = u(c.Pb(), 111), t = j.Math.max(t, i.d.d), e = j.Math.max(e, i.d.a);
+ for (r = n.Kc(); r.Ob(); )
+ i = u(r.Pb(), 111), i.d.d = t, i.d.a = e;
+ }
+ function axn(n, e) {
+ var t, i, r, c;
+ for (c = new X(), r = 0, i = e.Kc(); i.Ob(); ) {
+ for (t = Q(u(i.Pb(), 19).a + r); t.a < n.f && !Pfe(n, t.a); )
+ t = Q(t.a + 1), ++r;
+ if (t.a >= n.f)
+ break;
+ c.c[c.c.length] = t;
+ }
+ return c;
+ }
+ function HJ(n) {
+ var e, t, i, r;
+ for (e = null, r = new E(n.wf()); r.a < r.c.c.length; )
+ i = u(y(r), 181), t = new ks(i.qf().a, i.qf().b, i.rf().a, i.rf().b), e ? m6(e, t) : e = t;
+ return !e && (e = new d2()), e;
+ }
+ function vx(n, e, t, i) {
+ var r, c;
+ return t == 1 ? (!n.n && (n.n = new V(Rr, n, 1, 7)), Dc(n.n, e, i)) : (c = u(On((r = u(Rn(n, 16), 26), r || n.zh()), t), 66), c.Nj().Qj(n, Bc(n), t - ee(n.zh()), e, i));
+ }
+ function mx(n, e, t) {
+ var i, r, c, o, f;
+ for (i = t.gc(), n.qi(n.i + i), f = n.i - e, f > 0 && pc(n.g, e, n.g, e + i, f), o = t.Kc(), n.i += i, r = 0; r < i; ++r)
+ c = o.Pb(), k5(n, e, n.oi(e, c)), n.bi(e, c), n.ci(), ++e;
+ return i != 0;
+ }
+ function af(n, e, t) {
+ var i;
+ return e != n.q ? (n.q && (t = sC(n.q, n, -10, t)), e && (t = _2(e, n, -10, t)), t = lxn(n, e, t)) : n.Db & 4 && !(n.Db & 1) && (i = new gi(n, 1, 9, e, e), t ? t.Ei(i) : t = i), t;
+ }
+ function kx(n, e, t, i) {
+ return OU((t & Nf) == 0, "flatMap does not support SUBSIZED characteristic"), OU((t & 4) == 0, "flatMap does not support SORTED characteristic"), pe(n), pe(e), new pAn(n, t, i, e);
+ }
+ function _ve(n, e) {
+ MW(e, "Cannot suppress a null exception."), TE(e != n, "Exception can not suppress itself."), !n.i && (n.k == null ? n.k = A(M(hR, 1), q, 78, 0, [e]) : n.k[n.k.length] = e);
+ }
+ function Qw(n, e, t, i) {
+ var r, c, o, f, h, l;
+ for (o = t.length, c = 0, r = -1, l = uIn(n.substr(e), (sD(), Rin)), f = 0; f < o; ++f)
+ h = t[f].length, h > c && Qfe(l, uIn(t[f], Rin)) && (r = f, c = h);
+ return r >= 0 && (i[0] = e + c), r;
+ }
+ function Kve(n, e) {
+ var t;
+ if (t = iyn(n.b.Hf(), e.b.Hf()), t != 0)
+ return t;
+ switch (n.b.Hf().g) {
+ case 1:
+ case 2:
+ return zc(n.b.sf(), e.b.sf());
+ case 3:
+ case 4:
+ return zc(e.b.sf(), n.b.sf());
+ }
+ return 0;
+ }
+ function Hve(n) {
+ var e, t, i;
+ for (i = n.e.c.length, n.a = fa(be, [q, Le], [48, 25], 15, [i, i], 2), t = new E(n.c); t.a < t.c.c.length; )
+ e = u(y(t), 282), n.a[e.c.b][e.d.b] += u(k(e, (Go(), V4)), 19).a;
+ }
+ function qve(n, e, t) {
+ le(t, "Grow Tree", 1), n.b = e.f, on(sn(k(e, (R3(), pm)))) ? (n.c = new Wy(), PMn(n, null)) : n.c = new Wy(), n.a = !1, DNn(n, e.f), H(e, mrn, (qn(), !!n.a)), ce(t);
+ }
+ function Gve(n, e) {
+ var t, i, r, c, o;
+ if (n == null)
+ return null;
+ for (o = F(xs, Bf, 25, 2 * e, 15, 1), i = 0, r = 0; i < e; ++i)
+ t = n[i] >> 4 & 15, c = n[i] & 15, o[r++] = r1n[t], o[r++] = r1n[c];
+ return Ks(o, 0, o.length);
+ }
+ function zve(n, e, t) {
+ var i, r, c;
+ return i = e.ak(), c = e.dd(), r = i.$j() ? fl(n, 4, i, c, null, v4(n, i, c, I(i, 99) && (u(i, 18).Bb & Ji) != 0), !0) : fl(n, i.Kj() ? 2 : 1, i, c, i.zj(), -1, !0), t ? t.Ei(r) : t = r, t;
+ }
+ function eu(n) {
+ var e, t;
+ return n >= Ji ? (e = rk + (n - Ji >> 10 & 1023) & Wt, t = 56320 + (n - Ji & 1023) & Wt, String.fromCharCode(e) + ("" + String.fromCharCode(t))) : String.fromCharCode(n & Wt);
+ }
+ function Uve(n, e) {
+ X0();
+ var t, i, r, c;
+ return r = u(u(ct(n.r, e), 21), 84), r.gc() >= 2 ? (i = u(r.Kc().Pb(), 111), t = n.u.Hc((Tu(), s9)), c = n.u.Hc(Pp), !i.a && !t && (r.gc() == 2 || c)) : !1;
+ }
+ function dxn(n, e, t, i, r) {
+ var c, o, f;
+ for (c = QNn(n, e, t, i, r), f = !1; !c; )
+ rM(n, r, !0), f = !0, c = QNn(n, e, t, i, r);
+ f && rM(n, r, !1), o = rF(r), o.c.length != 0 && (n.d && n.d.lg(o), dxn(n, r, t, i, o));
+ }
+ function ZT() {
+ ZT = N, uH = new l5(Wh, 0), Dhn = new l5("DIRECTED", 1), Fhn = new l5("UNDIRECTED", 2), Ihn = new l5("ASSOCIATION", 3), $hn = new l5("GENERALIZATION", 4), Ohn = new l5("DEPENDENCY", 5);
+ }
+ function Wve(n, e) {
+ var t;
+ if (!nf(n))
+ throw T(new $r(oqn));
+ switch (t = nf(n), e.g) {
+ case 1:
+ return -(n.j + n.f);
+ case 2:
+ return n.i - t.g;
+ case 3:
+ return n.j - t.f;
+ case 4:
+ return -(n.i + n.g);
+ }
+ return 0;
+ }
+ function o4(n, e) {
+ var t, i;
+ for (_n(e), i = n.b.c.length, W(n.b, e); i > 0; ) {
+ if (t = i, i = (i - 1) / 2 | 0, n.a.ue(un(n.b, i), e) <= 0)
+ return js(n.b, t, e), !0;
+ js(n.b, t, un(n.b, i));
+ }
+ return js(n.b, i, e), !0;
+ }
+ function qJ(n, e, t, i) {
+ var r, c;
+ if (r = 0, t)
+ r = pT(n.a[t.g][e.g], i);
+ else
+ for (c = 0; c < QA; c++)
+ r = j.Math.max(r, pT(n.a[c][e.g], i));
+ return e == (_o(), xc) && n.b && (r = j.Math.max(r, n.b.a)), r;
+ }
+ function Xve(n, e) {
+ var t, i, r, c, o, f;
+ return r = n.i, c = e.i, !r || !c || r.i != c.i || r.i == (J(), Vn) || r.i == (J(), Gn) ? !1 : (o = r.g.a, t = o + r.j.a, f = c.g.a, i = f + c.j.a, o <= i && t >= f);
+ }
+ function GJ(n, e, t, i) {
+ var r;
+ if (r = !1, yi(i) && (r = !0, h3(e, t, Te(i))), r || G0(i) && (r = !0, GJ(n, e, t, i)), r || I(i, 236) && (r = !0, aa(e, t, u(i, 236))), !r)
+ throw T(new UI(Btn));
+ }
+ function Vve(n, e) {
+ var t, i, r;
+ if (t = e.Hh(n.a), t && (r = Ko((!t.b && (t.b = new qu((Sn(), Zi), tc, t)), t.b), Ws), r != null)) {
+ for (i = 1; i < (bu(), S1n).length; ++i)
+ if (An(S1n[i], r))
+ return i;
+ }
+ return 0;
+ }
+ function Qve(n, e) {
+ var t, i, r;
+ if (t = e.Hh(n.a), t && (r = Ko((!t.b && (t.b = new qu((Sn(), Zi), tc, t)), t.b), Ws), r != null)) {
+ for (i = 1; i < (bu(), P1n).length; ++i)
+ if (An(P1n[i], r))
+ return i;
+ }
+ return 0;
+ }
+ function bxn(n, e) {
+ var t, i, r, c;
+ if (_n(e), c = n.a.gc(), c < e.gc())
+ for (t = n.a.ec().Kc(); t.Ob(); )
+ i = t.Pb(), e.Hc(i) && t.Qb();
+ else
+ for (r = e.Kc(); r.Ob(); )
+ i = r.Pb(), n.a.Bc(i) != null;
+ return c != n.a.gc();
+ }
+ function wxn(n) {
+ var e, t;
+ switch (t = Qr(Gr(A(M(di, 1), q, 8, 0, [n.i.n, n.n, n.a]))), e = n.i.d, n.j.g) {
+ case 1:
+ t.b -= e.d;
+ break;
+ case 2:
+ t.a += e.c;
+ break;
+ case 3:
+ t.b += e.a;
+ break;
+ case 4:
+ t.a -= e.b;
+ }
+ return t;
+ }
+ function Jve(n) {
+ var e;
+ for (e = (x2(), u(ve(new re(ue(Lr(n).a.Kc(), new Mn()))), 17).c.i); e.k == (Qn(), pi); )
+ H(e, (G(), Xk), (qn(), !0)), e = u(ve(new re(ue(Lr(e).a.Kc(), new Mn()))), 17).c.i;
+ }
+ function yx(n, e, t, i) {
+ var r, c, o, f;
+ for (f = c6(e, i), o = f.Kc(); o.Ob(); )
+ r = u(o.Pb(), 11), n.d[r.p] = n.d[r.p] + n.c[t.p];
+ for (f = c6(t, i), c = f.Kc(); c.Ob(); )
+ r = u(c.Pb(), 11), n.d[r.p] = n.d[r.p] - n.c[e.p];
+ }
+ function zJ(n, e, t) {
+ var i, r;
+ for (r = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); r.e != r.i.gc(); )
+ i = u(oe(r), 33), Jo(i, i.i + e, i.j + t);
+ $i((!n.b && (n.b = new V(bi, n, 12, 3)), n.b), new hkn(e, t));
+ }
+ function Yve(n, e, t, i) {
+ var r, c;
+ for (c = e, r = c.d == null || n.a.ue(t.d, c.d) > 0 ? 1 : 0; c.a[r] != t; )
+ c = c.a[r], r = n.a.ue(t.d, c.d) > 0 ? 1 : 0;
+ c.a[r] = i, i.b = t.b, i.a[0] = t.a[0], i.a[1] = t.a[1], t.a[0] = null, t.a[1] = null;
+ }
+ function Zve(n) {
+ Tu();
+ var e, t;
+ return e = pt(Zh, A(M(qP, 1), z, 273, 0, [ql])), !(Z8(hC(e, n)) > 1 || (t = pt(s9, A(M(qP, 1), z, 273, 0, [u9, Pp])), Z8(hC(t, n)) > 1));
+ }
+ function UJ(n, e) {
+ var t;
+ t = mc((Y1(), co), n), I(t, 498) ? yr(co, n, new $kn(this, e)) : yr(co, n, this), jx(this, e), e == (Vp(), g1n) ? (this.wb = u(this, 1939), u(e, 1941)) : this.wb = (sl(), Nn);
+ }
+ function n5e(n) {
+ var e, t, i;
+ if (n == null)
+ return null;
+ for (e = null, t = 0; t < l9.length; ++t)
+ try {
+ return E7n(l9[t], n);
+ } catch (r) {
+ if (r = jt(r), I(r, 32))
+ i = r, e = i;
+ else
+ throw T(r);
+ }
+ throw T(new xC(e));
+ }
+ function gxn() {
+ gxn = N, Mzn = A(M(tn, 1), q, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), Azn = A(M(tn, 1), q, 2, 6, ["Jan", "Feb", "Mar", "Apr", V2, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]);
+ }
+ function pxn(n) {
+ var e, t, i;
+ e = An(typeof e, cN) ? null : new Eln(), e && (n3(), t = (i = 900, i >= j1 ? "error" : i >= 900 ? "warn" : i >= 800 ? "info" : "log"), nTn(t, n.a), n.b && UY(e, t, n.b, "Exception: ", !0));
+ }
+ function k(n, e) {
+ var t, i;
+ return i = (!n.q && (n.q = new we()), te(n.q, e)), i ?? (t = e.wg(), I(t, 4) && (t == null ? (!n.q && (n.q = new we()), O2(n.q, e)) : (!n.q && (n.q = new we()), it(n.q, e, t))), t);
+ }
+ function Vi() {
+ Vi = N, Vf = new U9("P1_CYCLE_BREAKING", 0), Dl = new U9("P2_LAYERING", 1), Kc = new U9("P3_NODE_ORDERING", 2), Tc = new U9("P4_NODE_PLACEMENT", 3), Or = new U9("P5_EDGE_ROUTING", 4);
+ }
+ function vxn(n, e) {
+ var t, i, r, c, o;
+ for (r = e == 1 ? KR : _R, i = r.a.ec().Kc(); i.Ob(); )
+ for (t = u(i.Pb(), 103), o = u(ct(n.f.c, t), 21).Kc(); o.Ob(); )
+ c = u(o.Pb(), 46), Vc(n.b.b, c.b), Vc(n.b.a, u(c.b, 81).d);
+ }
+ function e5e(n, e) {
+ X5();
+ var t;
+ if (n.c == e.c) {
+ if (n.b == e.b || Mbe(n.b, e.b)) {
+ if (t = xre(n.b) ? 1 : -1, n.a && !e.a)
+ return t;
+ if (!n.a && e.a)
+ return -t;
+ }
+ return zc(n.b.g, e.b.g);
+ } else
+ return ni(n.c, e.c);
+ }
+ function t5e(n, e) {
+ var t;
+ le(e, "Hierarchical port position processing", 1), t = n.b, t.c.length > 0 && NBn((Ln(0, t.c.length), u(t.c[0], 29)), n), t.c.length > 1 && NBn(u(un(t, t.c.length - 1), 29), n), ce(e);
+ }
+ function mxn(n, e) {
+ var t, i, r;
+ if (XJ(n, e))
+ return !0;
+ for (i = new E(e); i.a < i.c.c.length; )
+ if (t = u(y(i), 33), r = ZFn(t), aM(n, t, r) || ADn(n, t) - n.g <= n.a)
+ return !0;
+ return !1;
+ }
+ function S7() {
+ S7 = N, OP = (Ux(), Afn), RK = jZn, BK = yZn, kfn = vZn, NK = kZn, mfn = new md(8), lZn = new tr((Xe(), ed), mfn), aZn = new tr(td, 8), dZn = Tfn, pfn = bZn, vfn = wZn, hZn = new tr(py, (qn(), !1));
+ }
+ function nM() {
+ nM = N, Gfn = new md(15), RZn = new tr((Xe(), ed), Gfn), _Zn = new tr(td, 15), zfn = new tr(_P, Q(0)), Kfn = ehn, NZn = nd, BZn = Rl, _fn = new tr(Tp, GHn), Hfn = NP, qfn = Kg, qK = GZn, LZn = LP;
+ }
+ function fh(n) {
+ if ((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b).i != 1 || (!n.c && (n.c = new Fn(he, n, 5, 8)), n.c).i != 1)
+ throw T(new Hn(LB));
+ return Ir(u(D((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), 0), 82));
+ }
+ function kxn(n) {
+ if ((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b).i != 1 || (!n.c && (n.c = new Fn(he, n, 5, 8)), n.c).i != 1)
+ throw T(new Hn(LB));
+ return r7(u(D((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), 0), 82));
+ }
+ function yxn(n) {
+ if ((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b).i != 1 || (!n.c && (n.c = new Fn(he, n, 5, 8)), n.c).i != 1)
+ throw T(new Hn(LB));
+ return r7(u(D((!n.c && (n.c = new Fn(he, n, 5, 8)), n.c), 0), 82));
+ }
+ function vl(n) {
+ if ((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b).i != 1 || (!n.c && (n.c = new Fn(he, n, 5, 8)), n.c).i != 1)
+ throw T(new Hn(LB));
+ return Ir(u(D((!n.c && (n.c = new Fn(he, n, 5, 8)), n.c), 0), 82));
+ }
+ function WJ(n, e, t) {
+ var i, r, c;
+ if (++n.j, r = n.Vi(), e >= r || e < 0)
+ throw T(new mr(NB + e + _a + r));
+ if (t >= r || t < 0)
+ throw T(new mr(BB + t + _a + r));
+ return e != t ? i = (c = n.Ti(t), n.Hi(e, c), c) : i = n.Oi(t), i;
+ }
+ function jxn(n) {
+ var e, t, i;
+ if (i = n, n)
+ for (e = 0, t = n.Ug(); t; t = t.Ug()) {
+ if (++e > JL)
+ return jxn(t);
+ if (i = t, t == n)
+ throw T(new $r("There is a cycle in the containment hierarchy of " + n));
+ }
+ return i;
+ }
+ function ml(n) {
+ var e, t, i;
+ for (i = new ya(Qi, "[", "]"), t = n.Kc(); t.Ob(); )
+ e = t.Pb(), Fh(i, B(e) === B(n) ? "(this Collection)" : e == null ? tu : Nr(e));
+ return i.a ? i.e.length == 0 ? i.a.a : i.a.a + ("" + i.e) : i.c;
+ }
+ function XJ(n, e) {
+ var t, i;
+ if (i = !1, e.gc() < 2)
+ return !1;
+ for (t = 0; t < e.gc(); t++)
+ t < e.gc() - 1 ? i = i | aM(n, u(e.Xb(t), 33), u(e.Xb(t + 1), 33)) : i = i | aM(n, u(e.Xb(t), 33), u(e.Xb(0), 33));
+ return i;
+ }
+ function Exn(n, e) {
+ var t;
+ e != n.a ? (t = null, n.a && (t = u(n.a, 49).ih(n, 4, Vo, t)), e && (t = u(e, 49).gh(n, 4, Vo, t)), t = uQ(n, e, t), t && t.Fi()) : n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 1, e, e));
+ }
+ function VJ(n, e) {
+ var t;
+ e != n.e ? (n.e && DSn(BW(n.e), n), e && (!e.b && (e.b = new sj(new KI())), Ujn(e.b, n)), t = d4e(n, e, null), t && t.Fi()) : n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 4, e, e));
+ }
+ function kb(n) {
+ var e, t, i;
+ for (t = n.length, i = 0; i < t && (Me(i, n.length), n.charCodeAt(i) <= 32); )
+ ++i;
+ for (e = t; e > i && (Me(e - 1, n.length), n.charCodeAt(e - 1) <= 32); )
+ --e;
+ return i > 0 || e < t ? n.substr(i, e - i) : n;
+ }
+ function i5e(n, e) {
+ var t;
+ t = e.o, el(n.f) ? (n.j.a = j.Math.max(n.j.a, t.a), n.j.b += t.b, n.d.c.length > 1 && (n.j.b += n.e)) : (n.j.a += t.a, n.j.b = j.Math.max(n.j.b, t.b), n.d.c.length > 1 && (n.j.a += n.e));
+ }
+ function kl() {
+ kl = N, tXn = A(M(Yi, 1), lc, 61, 0, [(J(), Kn), Vn, ae]), eXn = A(M(Yi, 1), lc, 61, 0, [Vn, ae, Gn]), iXn = A(M(Yi, 1), lc, 61, 0, [ae, Gn, Kn]), rXn = A(M(Yi, 1), lc, 61, 0, [Gn, Kn, Vn]);
+ }
+ function r5e(n, e, t, i) {
+ var r, c, o, f, h, l, a;
+ if (o = n.c.d, f = n.d.d, o.j != f.j)
+ for (a = n.b, r = o.j, h = null; r != f.j; )
+ h = e == 0 ? yT(r) : pQ(r), c = WQ(r, a.d[r.g], t), l = WQ(h, a.d[h.g], t), Ke(i, st(c, l)), r = h;
+ }
+ function c5e(n, e, t, i) {
+ var r, c, o, f, h;
+ return o = IFn(n.a, e, t), f = u(o.a, 19).a, c = u(o.b, 19).a, i && (h = u(k(e, (G(), Mu)), 10), r = u(k(t, Mu), 10), h && r && (LAn(n.b, h, r), f += n.b.i, c += n.b.e)), f > c;
+ }
+ function Cxn(n) {
+ var e, t, i, r, c, o, f, h, l;
+ for (this.a = Z$n(n), this.b = new X(), t = n, i = 0, r = t.length; i < r; ++i)
+ for (e = t[i], c = new X(), W(this.b, c), f = e, h = 0, l = f.length; h < l; ++h)
+ o = f[h], W(c, new lu(o.j));
+ }
+ function u5e(n, e, t) {
+ var i, r, c;
+ return c = 0, i = t[e], e < t.length - 1 && (r = t[e + 1], n.b[e] ? (c = OTe(n.d, i, r), c += KD(n.a, i, (J(), Vn)), c += KD(n.a, r, Gn)) : c = Jde(n.a, i, r)), n.c[e] && (c += kde(n.a, i)), c;
+ }
+ function s5e(n, e, t, i, r) {
+ var c, o, f, h;
+ for (h = null, f = new E(i); f.a < f.c.c.length; )
+ if (o = u(y(f), 441), o != t && xr(o.e, r, 0) != -1) {
+ h = o;
+ break;
+ }
+ c = C$(r), Ki(c, t.b), Ti(c, h.b), Tn(n.a, r, new EE(c, e, t.f));
+ }
+ function Txn(n) {
+ for (; n.g.c != 0 && n.d.c != 0; )
+ ZO(n.g).c > ZO(n.d).c ? (n.i += n.g.c, BF(n.d)) : ZO(n.d).c > ZO(n.g).c ? (n.e += n.d.c, BF(n.g)) : (n.i += eCn(n.g), n.e += eCn(n.d), BF(n.g), BF(n.d));
+ }
+ function o5e(n, e, t) {
+ var i, r, c, o;
+ for (c = e.q, o = e.r, new da((No(), Nl), e, c, 1), new da(Nl, c, o, 1), r = new E(t); r.a < r.c.c.length; )
+ i = u(y(r), 112), i != c && i != e && i != o && (AZ(n.a, i, e), AZ(n.a, i, o));
+ }
+ function Mxn(n, e, t, i) {
+ n.a.d = j.Math.min(e, t), n.a.a = j.Math.max(e, i) - n.a.d, e < t ? (n.b = 0.5 * (e + t), n.g = fB * n.b + 0.9 * e, n.f = fB * n.b + 0.9 * t) : (n.b = 0.5 * (e + i), n.g = fB * n.b + 0.9 * i, n.f = fB * n.b + 0.9 * e);
+ }
+ function f5e() {
+ RA = {}, !Array.isArray && (Array.isArray = function(e) {
+ return Object.prototype.toString.call(e) === "[object Array]";
+ });
+ function n() {
+ return new Date().getTime();
+ }
+ !Date.now && (Date.now = n);
+ }
+ function Axn(n, e) {
+ var t, i;
+ i = u(k(e, (nn(), Nt)), 98), H(e, (G(), kun), i), t = e.e, t && (Rt(new $n(null, new xn(t.a, 16)), new Sq(n)), Rt(qr(new $n(null, new xn(t.b, 16)), new NH()), new Pq(n)));
+ }
+ function h5e(n) {
+ var e, t, i, r;
+ if (i3(u(k(n.b, (nn(), ls)), 103)))
+ return 0;
+ for (e = 0, i = new E(n.a); i.a < i.c.c.length; )
+ t = u(y(i), 10), t.k == (Qn(), ii) && (r = t.o.a, e = j.Math.max(e, r));
+ return e;
+ }
+ function l5e(n) {
+ switch (u(k(n, (nn(), Hc)), 163).g) {
+ case 1:
+ H(n, Hc, (As(), Pm));
+ break;
+ case 2:
+ H(n, Hc, (As(), Wb));
+ break;
+ case 3:
+ H(n, Hc, (As(), Sm));
+ break;
+ case 4:
+ H(n, Hc, (As(), Fl));
+ }
+ }
+ function f4() {
+ f4 = N, Cm = new u5(Wh, 0), iun = new u5(Y2, 1), uun = new u5(Z2, 2), cun = new u5("LEFT_RIGHT_CONSTRAINT_LOCKING", 3), run = new u5("LEFT_RIGHT_CONNECTION_LOCKING", 4), tun = new u5(lHn, 5);
+ }
+ function Sxn(n, e, t) {
+ var i, r, c, o, f, h, l;
+ f = t.a / 2, c = t.b / 2, i = j.Math.abs(e.a - n.a), r = j.Math.abs(e.b - n.b), h = 1, l = 1, i > f && (h = f / i), r > c && (l = c / r), o = j.Math.min(h, l), n.a += o * (e.a - n.a), n.b += o * (e.b - n.b);
+ }
+ function a5e(n, e, t, i, r) {
+ var c, o;
+ for (o = !1, c = u(un(t.b, 0), 33); Aye(n, e, c, i, r) && (o = !0, z4e(t, c), t.b.c.length != 0); )
+ c = u(un(t.b, 0), 33);
+ return t.b.c.length == 0 && T7(t.j, t), o && GT(e.q), o;
+ }
+ function d5e(n, e) {
+ eg();
+ var t, i, r, c;
+ if (e.b < 2)
+ return !1;
+ for (c = _e(e, 0), t = u(Re(c), 8), i = t; c.b != c.d.c; ) {
+ if (r = u(Re(c), 8), Kx(n, i, r))
+ return !0;
+ i = r;
+ }
+ return !!Kx(n, i, t);
+ }
+ function QJ(n, e, t, i) {
+ var r, c;
+ return t == 0 ? (!n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), yE(n.o, e, i)) : (c = u(On((r = u(Rn(n, 16), 26), r || n.zh()), t), 66), c.Nj().Rj(n, Bc(n), t - ee(n.zh()), e, i));
+ }
+ function jx(n, e) {
+ var t;
+ e != n.sb ? (t = null, n.sb && (t = u(n.sb, 49).ih(n, 1, h9, t)), e && (t = u(e, 49).gh(n, 1, h9, t)), t = hQ(n, e, t), t && t.Fi()) : n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 4, e, e));
+ }
+ function b5e(n, e) {
+ var t, i, r, c;
+ if (e)
+ r = Nh(e, "x"), t = new nmn(n), O3(t.a, (_n(r), r)), c = Nh(e, "y"), i = new emn(n), $3(i.a, (_n(c), c));
+ else
+ throw T(new Af("All edge sections need an end point."));
+ }
+ function w5e(n, e) {
+ var t, i, r, c;
+ if (e)
+ r = Nh(e, "x"), t = new J6n(n), D3(t.a, (_n(r), r)), c = Nh(e, "y"), i = new Y6n(n), F3(i.a, (_n(c), c));
+ else
+ throw T(new Af("All edge sections need a start point."));
+ }
+ function g5e(n, e) {
+ var t, i, r, c, o, f, h;
+ for (i = hDn(n), c = 0, f = i.length; c < f; ++c)
+ pxn(e);
+ for (h = !pf && n.e ? pf ? null : n.d : null; h; ) {
+ for (t = hDn(h), r = 0, o = t.length; r < o; ++r)
+ pxn(e);
+ h = !pf && h.e ? pf ? null : h.d : null;
+ }
+ }
+ function Qn() {
+ Qn = N, ii = new t5("NORMAL", 0), pi = new t5("LONG_EDGE", 1), Vt = new t5("EXTERNAL_PORT", 2), Mc = new t5("NORTH_SOUTH_PORT", 3), Qu = new t5("LABEL", 4), vf = new t5("BREAKING_POINT", 5);
+ }
+ function p5e(n) {
+ var e, t, i, r;
+ if (e = !1, ai(n, (G(), Am)))
+ for (t = u(k(n, Am), 83), r = new E(n.j); r.a < r.c.c.length; )
+ i = u(y(r), 11), k9e(i) && (e || (x6e(qi(n)), e = !0), ype(u(t.xc(i), 306)));
+ }
+ function v5e(n, e, t) {
+ var i;
+ le(t, "Self-Loop routing", 1), i = zge(e), eE(k(e, (SC(), Ym))), Rt(Wc(gt(gt(qr(new $n(null, new xn(e.b, 16)), new z0n()), new U0n()), new W0n()), new X0n()), new L7n(n, i)), ce(t);
+ }
+ function m5e(n) {
+ var e, t, i, r, c, o, f, h, l;
+ return l = KJ(n), t = n.e, c = t != null, c && h3(l, vA, n.e), f = n.k, o = !!f, o && h3(l, "type", VO(n.k)), i = N9(n.j), r = !i, r && (h = new ea(), Ro(l, xB, h), e = new ymn(h), $i(n.j, e)), l;
+ }
+ function k5e(n) {
+ var e, t, i, r;
+ for (r = ul((is(n.gc(), "size"), new _0()), 123), i = !0, t = Cd(n).Kc(); t.Ob(); )
+ e = u(t.Pb(), 42), i || (r.a += Qi), i = !1, cc(ul(cc(r, e.cd()), 61), e.dd());
+ return (r.a += "}", r).a;
+ }
+ function Pxn(n, e) {
+ var t, i, r;
+ return e &= 63, e < 22 ? (t = n.l << e, i = n.m << e | n.l >> 22 - e, r = n.h << e | n.m >> 22 - e) : e < 44 ? (t = 0, i = n.l << e - 22, r = n.m << e - 22 | n.l >> 44 - e) : (t = 0, i = 0, r = n.l << e - 44), Nc(t & Lu, i & Lu, r & Uh);
+ }
+ function yb(n) {
+ if (vin == null && (vin = new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$")), !vin.test(n))
+ throw T(new Sf(u0 + n + '"'));
+ return parseFloat(n);
+ }
+ function y5e(n) {
+ var e, t, i, r;
+ for (e = new X(), t = F(_u, wh, 25, n.a.c.length, 16, 1), EW(t, t.length), r = new E(n.a); r.a < r.c.c.length; )
+ i = u(y(r), 121), t[i.d] || (e.c[e.c.length] = i, R$n(n, i, t));
+ return e;
+ }
+ function j5e(n, e) {
+ var t, i, r, c;
+ for (c = e.b.j, n.a = F(be, Le, 25, c.c.length, 15, 1), r = 0, i = 0; i < c.c.length; i++)
+ t = (Ln(i, c.c.length), u(c.c[i], 11)), t.e.c.length == 0 && t.g.c.length == 0 ? r += 1 : r += 3, n.a[i] = r;
+ }
+ function eM() {
+ eM = N, d_ = new r5("ALWAYS_UP", 0), a_ = new r5("ALWAYS_DOWN", 1), w_ = new r5("DIRECTION_UP", 2), b_ = new r5("DIRECTION_DOWN", 3), g_ = new r5("SMART_UP", 4), FS = new r5("SMART_DOWN", 5);
+ }
+ function E5e(n, e) {
+ if (n < 0 || e < 0)
+ throw T(new Hn("k and n must be positive"));
+ if (e > n)
+ throw T(new Hn("k must be smaller than n"));
+ return e == 0 || e == n ? 1 : n == 0 ? 0 : CJ(n) / (CJ(e) * CJ(n - e));
+ }
+ function JJ(n, e) {
+ var t, i, r, c;
+ for (t = new kz(n); t.g == null && !t.c ? ZW(t) : t.g == null || t.i != 0 && u(t.g[t.i - 1], 47).Ob(); )
+ if (c = u(cM(t), 56), I(c, 160))
+ for (i = u(c, 160), r = 0; r < e.length; r++)
+ e[r].og(i);
+ }
+ function Ex(n) {
+ var e;
+ return n.Db & 64 ? PF(n) : (e = new Ns(PF(n)), e.a += " (height: ", mw(e, n.f), e.a += ", width: ", mw(e, n.g), e.a += ", x: ", mw(e, n.i), e.a += ", y: ", mw(e, n.j), e.a += ")", e.a);
+ }
+ function C5e(n) {
+ var e, t, i, r, c, o, f;
+ for (e = new wa(), i = n, r = 0, c = i.length; r < c; ++r)
+ if (t = i[r], o = pe(t.cd()), f = Sa(e, o, pe(t.dd())), f != null)
+ throw T(new Hn("duplicate key: " + o));
+ this.b = (Pn(), new DI(e));
+ }
+ function T5e(n) {
+ var e, t, i, r, c;
+ if (n == null)
+ return tu;
+ for (c = new ya(Qi, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], Fh(c, String.fromCharCode(e));
+ return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c;
+ }
+ function YJ() {
+ YJ = N, Mrn = (_C(), tS), HUn = new In(KM, Mrn), Q(1), KUn = new In(Tnn, Q(300)), Q(0), zUn = new In(Mnn, Q(0)), UUn = new In(yN, Kf), qUn = new In(jN, 5), WUn = tS, GUn = $R;
+ }
+ function Ixn(n, e) {
+ var t, i, r, c, o;
+ for (r = e == 1 ? KR : _R, i = r.a.ec().Kc(); i.Ob(); )
+ for (t = u(i.Pb(), 103), o = u(ct(n.f.c, t), 21).Kc(); o.Ob(); )
+ c = u(o.Pb(), 46), W(n.b.b, u(c.b, 81)), W(n.b.a, u(c.b, 81).d);
+ }
+ function M5e(n, e) {
+ var t;
+ if (e != null && !n.c.Yj().wj(e))
+ throw t = I(e, 56) ? u(e, 56).Tg().zb : Q1(Du(e)), T(new zp(Sl + n.c.ne() + "'s type '" + n.c.Yj().ne() + "' does not permit a value of type '" + t + "'"));
+ }
+ function A5e(n, e, t) {
+ var i, r;
+ for (r = new Ii(n.b, 0); r.b < r.d.gc(); )
+ i = (ne(r.b < r.d.gc()), u(r.d.Xb(r.c = r.b++), 70)), B(k(i, (G(), vun))) === B(e) && (rY(i.n, qi(n.c.i), t), Uu(r), W(e.b, i));
+ }
+ function S5e(n, e) {
+ if (e.a)
+ switch (u(k(e.b, (G(), kun)), 98).g) {
+ case 0:
+ case 1:
+ V4e(e);
+ case 2:
+ Rt(new $n(null, new xn(e.d, 16)), new RH()), Pme(n.a, e);
+ }
+ else
+ Rt(new $n(null, new xn(e.d, 16)), new RH());
+ }
+ function Oxn(n) {
+ var e, t;
+ return t = j.Math.sqrt((n.k == null && (n.k = jV(n, new mwn())), K(n.k) / (n.b * (n.g == null && (n.g = oOn(n, new qH())), K(n.g))))), e = ge(nu(j.Math.round(t))), e = j.Math.min(e, n.f), e;
+ }
+ function gc() {
+ du(), vU.call(this), this.j = (J(), Xr), this.a = new Li(), new NI(), this.f = (is(2, Ib), new Ic(2)), this.e = (is(4, Ib), new Ic(4)), this.g = (is(4, Ib), new Ic(4)), this.b = new G7n(this.e, this.g);
+ }
+ function P5e(n, e) {
+ var t, i;
+ return !(on(sn(k(e, (G(), mf)))) || (i = e.c.i, n == (As(), Sm) && i.k == (Qn(), Qu)) || (t = u(k(i, (nn(), Hc)), 163), t == Fl));
+ }
+ function I5e(n, e) {
+ var t, i;
+ return !(on(sn(k(e, (G(), mf)))) || (i = e.d.i, n == (As(), Pm) && i.k == (Qn(), Qu)) || (t = u(k(i, (nn(), Hc)), 163), t == Wb));
+ }
+ function O5e(n, e) {
+ var t, i, r, c, o, f, h;
+ for (o = n.d, h = n.o, f = new ks(-o.b, -o.d, o.b + h.a + o.c, o.d + h.b + o.a), i = e, r = 0, c = i.length; r < c; ++r)
+ t = i[r], t && m6(f, t.i);
+ o.b = -f.c, o.d = -f.d, o.c = f.b - o.b - h.a, o.a = f.a - o.d - h.b;
+ }
+ function P7() {
+ P7 = N, dfn = new Y9("CENTER_DISTANCE", 0), xK = new Y9("CIRCLE_UNDERLAP", 1), wfn = new Y9("RECTANGLE_UNDERLAP", 2), LK = new Y9("INVERTED_OVERLAP", 3), bfn = new Y9("MINIMUM_ROOT_DISTANCE", 4);
+ }
+ function D5e(n) {
+ YY();
+ var e, t, i, r, c;
+ if (n == null)
+ return null;
+ for (i = n.length, r = i * 2, e = F(xs, Bf, 25, r, 15, 1), t = 0; t < i; t++)
+ c = n[t], c < 0 && (c += 256), e[t * 2] = oI[c >> 4], e[t * 2 + 1] = oI[c & 15];
+ return Ks(e, 0, e.length);
+ }
+ function $5e(n) {
+ QE();
+ var e, t, i;
+ switch (i = n.c.length, i) {
+ case 0:
+ return hzn;
+ case 1:
+ return e = u(bLn(new E(n)), 42), ife(e.cd(), e.dd());
+ default:
+ return t = u(lf(n, F(qa, OM, 42, n.c.length, 0, 1)), 165), new GI(t);
+ }
+ }
+ function F5e(n) {
+ var e, t, i, r, c, o;
+ for (e = new gw(), t = new gw(), hl(e, n), hl(t, n); t.b != t.c; )
+ for (r = u(y2(t), 37), o = new E(r.a); o.a < o.c.c.length; )
+ c = u(y(o), 10), c.e && (i = c.e, hl(e, i), hl(t, i));
+ return e;
+ }
+ function k1(n, e) {
+ switch (e.g) {
+ case 1:
+ return v2(n.j, (du(), Qrn));
+ case 2:
+ return v2(n.j, (du(), Xrn));
+ case 3:
+ return v2(n.j, (du(), Yrn));
+ case 4:
+ return v2(n.j, (du(), Zrn));
+ default:
+ return Pn(), Pn(), cr;
+ }
+ }
+ function x5e(n, e) {
+ var t, i, r;
+ t = Yoe(e, n.e), i = u(te(n.g.f, t), 19).a, r = n.a.c.length - 1, n.a.c.length != 0 && u(un(n.a, r), 287).c == i ? (++u(un(n.a, r), 287).a, ++u(un(n.a, r), 287).b) : W(n.a, new hjn(i));
+ }
+ function L5e(n, e, t) {
+ var i, r;
+ return i = H7e(n, e, t), i != 0 ? i : ai(e, (G(), bc)) && ai(t, bc) ? (r = zc(u(k(e, bc), 19).a, u(k(t, bc), 19).a), r < 0 ? H7(n, e, t) : r > 0 && H7(n, t, e), r) : gme(n, e, t);
+ }
+ function Dxn(n, e, t) {
+ var i, r, c, o;
+ if (e.b != 0) {
+ for (i = new Ct(), o = _e(e, 0); o.b != o.d.c; )
+ c = u(Re(o), 86), Xi(i, $V(c)), r = c.e, r.a = u(k(c, (uc(), mK)), 19).a, r.b = u(k(c, pon), 19).a;
+ Dxn(n, i, yc(t, i.b / n.a | 0));
+ }
+ }
+ function $xn(n, e) {
+ var t, i, r, c, o;
+ if (n.e <= e || Hle(n, n.g, e))
+ return n.g;
+ for (c = n.r, i = n.g, o = n.r, r = (c - i) / 2 + i; i + 1 < c; )
+ t = O6(n, r, !1), t.b <= r && t.a <= e ? (o = r, c = r) : i = r, r = (c - i) / 2 + i;
+ return o;
+ }
+ function N5e(n, e, t) {
+ var i;
+ i = YNn(n, e, !0), le(t, "Recursive Graph Layout", i), JJ(e, A(M(xfn, 1), rn, 527, 0, [new Q4n()])), ga(e, (Xe(), kv)) || JJ(e, A(M(xfn, 1), rn, 527, 0, [new i2n()])), KZ(n, e, null, t), ce(t);
+ }
+ function ce(n) {
+ var e;
+ if (n.p == null)
+ throw T(new $r("The task has not begun yet."));
+ n.b || (n.k && (e = (Zf(), Ni(nu(Date.now()), j1)), n.q = Fd(pl(e, n.o)) * 1e-9), n.c < n.r && X$(n, n.r - n.c), n.b = !0);
+ }
+ function I7(n) {
+ var e, t, i;
+ for (i = new ou(), Ke(i, new fn(n.j, n.k)), t = new ie((!n.a && (n.a = new Yt(to, n, 5)), n.a)); t.e != t.i.gc(); )
+ e = u(oe(t), 469), Ke(i, new fn(e.a, e.b));
+ return Ke(i, new fn(n.b, n.c)), i;
+ }
+ function B5e(n, e, t, i, r) {
+ var c, o, f, h, l, a;
+ if (r)
+ for (h = r.a.length, c = new ha(h), a = (c.b - c.a) * c.c < 0 ? (Z1(), Ql) : new il(c); a.Ob(); )
+ l = u(a.Pb(), 19), f = y3(r, l.a), o = new ATn(n, e, t, i), Xke(o.a, o.b, o.c, o.d, f);
+ }
+ function ZJ(n, e) {
+ var t;
+ if (B(n) === B(e))
+ return !0;
+ if (I(e, 21)) {
+ t = u(e, 21);
+ try {
+ return n.gc() == t.gc() && n.Ic(t);
+ } catch (i) {
+ if (i = jt(i), I(i, 173) || I(i, 205))
+ return !1;
+ throw T(i);
+ }
+ }
+ return !1;
+ }
+ function nY(n, e) {
+ var t;
+ W(n.d, e), t = e.rf(), n.c ? (n.e.a = j.Math.max(n.e.a, t.a), n.e.b += t.b, n.d.c.length > 1 && (n.e.b += n.a)) : (n.e.a += t.a, n.e.b = j.Math.max(n.e.b, t.b), n.d.c.length > 1 && (n.e.a += n.a));
+ }
+ function R5e(n) {
+ var e, t, i, r;
+ switch (r = n.i, e = r.b, i = r.j, t = r.g, r.a.g) {
+ case 0:
+ t.a = (n.g.b.o.a - i.a) / 2;
+ break;
+ case 1:
+ t.a = e.d.n.a + e.d.a.a;
+ break;
+ case 2:
+ t.a = e.d.n.a + e.d.a.a - i.a;
+ break;
+ case 3:
+ t.b = e.d.n.b + e.d.a.b;
+ }
+ }
+ function Fxn(n, e, t, i, r) {
+ if (i < e || r < t)
+ throw T(new Hn("The highx must be bigger then lowx and the highy must be bigger then lowy"));
+ return n.a < e ? n.a = e : n.a > i && (n.a = i), n.b < t ? n.b = t : n.b > r && (n.b = r), n;
+ }
+ function _5e(n) {
+ if (I(n, 149))
+ return w8e(u(n, 149));
+ if (I(n, 229))
+ return a2e(u(n, 229));
+ if (I(n, 23))
+ return m5e(u(n, 23));
+ throw T(new Hn(Rtn + ml(new Ku(A(M(Zn, 1), rn, 1, 5, [n])))));
+ }
+ function K5e(n, e, t, i, r) {
+ var c, o, f;
+ for (c = !0, o = 0; o < i; o++)
+ c = c & t[o] == 0;
+ if (r == 0)
+ pc(t, i, n, 0, e), o = e;
+ else {
+ for (f = 32 - r, c = c & t[o] << f == 0, o = 0; o < e - 1; o++)
+ n[o] = t[o + i] >>> r | t[o + i + 1] << f;
+ n[o] = t[o + i] >>> r, ++o;
+ }
+ return c;
+ }
+ function eY(n, e, t, i) {
+ var r, c, o;
+ if (e.k == (Qn(), pi)) {
+ for (c = new re(ue(Lr(e).a.Kc(), new Mn())); Se(c); )
+ if (r = u(ve(c), 17), o = r.c.i.k, o == pi && n.c.a[r.c.i.c.p] == i && n.c.a[e.c.p] == t)
+ return !0;
+ }
+ return !1;
+ }
+ function H5e(n, e) {
+ var t, i, r, c;
+ return e &= 63, t = n.h & Uh, e < 22 ? (c = t >>> e, r = n.m >> e | t << 22 - e, i = n.l >> e | n.m << 22 - e) : e < 44 ? (c = 0, r = t >>> e - 22, i = n.m >> e - 22 | n.h << 44 - e) : (c = 0, r = 0, i = t >>> e - 44), Nc(i & Lu, r & Lu, c & Uh);
+ }
+ function xxn(n, e, t, i) {
+ var r;
+ this.b = i, this.e = n == (Kd(), _m), r = e[t], this.d = fa(_u, [q, wh], [177, 25], 16, [r.length, r.length], 2), this.a = fa(be, [q, Le], [48, 25], 15, [r.length, r.length], 2), this.c = new NJ(e, t);
+ }
+ function q5e(n) {
+ var e, t, i;
+ for (n.k = new iX((J(), A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn])).length, n.j.c.length), i = new E(n.j); i.a < i.c.c.length; )
+ t = u(y(i), 113), e = t.d.j, Tn(n.k, e, t);
+ n.e = e8e(k2(n.k));
+ }
+ function Lxn(n, e) {
+ var t, i, r;
+ ci(n.d, e), t = new bgn(), it(n.c, e, t), t.f = jF(e.c), t.a = jF(e.d), t.d = (C6(), r = e.c.i.k, r == (Qn(), ii) || r == vf), t.e = (i = e.d.i.k, i == ii || i == vf), t.b = e.c.j == (J(), Gn), t.c = e.d.j == Vn;
+ }
+ function G5e(n) {
+ var e, t, i, r, c;
+ for (c = nt, r = nt, i = new E(Hw(n)); i.a < i.c.c.length; )
+ t = u(y(i), 213), e = t.e.e - t.d.e, t.e == n && e < r ? r = e : e < c && (c = e);
+ return r == nt && (r = -1), c == nt && (c = -1), new Pi(Q(r), Q(c));
+ }
+ function z5e(n, e) {
+ var t, i, r;
+ return r = O4, i = (d6(), Lk), r = j.Math.abs(n.b), t = j.Math.abs(e.f - n.b), t < r && (r = t, i = ZA), t = j.Math.abs(n.a), t < r && (r = t, i = Nk), t = j.Math.abs(e.g - n.a), t < r && (r = t, i = YA), i;
+ }
+ function U5e(n, e) {
+ var t, i, r, c;
+ for (t = e.a.o.a, c = new ch(qi(e.a).b, e.c, e.f + 1), r = new $v(c); r.b < r.d.gc(); )
+ if (i = (ne(r.b < r.d.gc()), u(r.d.Xb(r.c = r.b++), 29)), i.c.a >= t)
+ return h4(n, e, i.p), !0;
+ return !1;
+ }
+ function Nxn(n) {
+ var e;
+ return n.Db & 64 ? Ex(n) : (e = new Ju(Stn), !n.a || De(De((e.a += ' "', e), n.a), '"'), De(bd(De(bd(De(bd(De(bd((e.a += " (", e), n.i), ","), n.j), " | "), n.g), ","), n.f), ")"), e.a);
+ }
+ function Bxn(n, e, t) {
+ var i, r, c, o, f;
+ for (f = _c(n.e.Tg(), e), r = u(n.g, 119), i = 0, o = 0; o < n.i; ++o)
+ if (c = r[o], f.rl(c.ak())) {
+ if (i == t)
+ return Cb(n, o), er(), u(e, 66).Oj() ? c : c.dd();
+ ++i;
+ }
+ throw T(new mr(rm + t + _a + i));
+ }
+ function Rxn(n) {
+ var e, t, i;
+ if (e = n.c, e == 2 || e == 7 || e == 1)
+ return Je(), Je(), k9;
+ for (i = HZ(n), t = null; (e = n.c) != 2 && e != 7 && e != 1; )
+ t || (t = (Je(), Je(), new v5(1)), Da(t, i), i = t), Da(t, HZ(n));
+ return i;
+ }
+ function W5e(n, e, t) {
+ return n < 0 || n > t ? fY(n, t, "start index") : e < 0 || e > t ? fY(e, t, "end index") : T6("end index (%s) must not be less than start index (%s)", A(M(Zn, 1), rn, 1, 5, [Q(e), Q(n)]));
+ }
+ function _xn(n, e) {
+ var t, i, r, c;
+ for (i = 0, r = n.length; i < r; i++) {
+ c = n[i];
+ try {
+ c[1] ? c[0].jm() && (e = Ofe(e, c)) : c[0].jm();
+ } catch (o) {
+ if (o = jt(o), I(o, 78))
+ t = o, gj(), j1e(I(t, 477) ? u(t, 477).ae() : t);
+ else
+ throw T(o);
+ }
+ }
+ return e;
+ }
+ function h4(n, e, t) {
+ var i, r, c;
+ for (t != e.c + e.b.gc() && rje(e.a, Kbe(e, t - e.c)), c = e.a.c.p, n.a[c] = j.Math.max(n.a[c], e.a.o.a), r = u(k(e.a, (G(), Vk)), 15).Kc(); r.Ob(); )
+ i = u(r.Pb(), 70), H(i, VR, (qn(), !0));
+ }
+ function X5e(n, e) {
+ var t, i, r;
+ r = E8e(e), H(e, (G(), M_), r), r && (i = nt, Sr(n.f, r) && (i = u(Vr(Sr(n.f, r)), 19).a), t = u(un(e.g, 0), 17), on(sn(k(t, mf))) || it(n, r, Q(j.Math.min(u(k(t, bc), 19).a, i))));
+ }
+ function Kxn(n, e, t) {
+ var i, r, c, o, f;
+ for (e.p = -1, f = Wd(e, (ur(), Lc)).Kc(); f.Ob(); )
+ for (o = u(f.Pb(), 11), r = new E(o.g); r.a < r.c.c.length; )
+ i = u(y(r), 17), c = i.d.i, e != c && (c.p < 0 ? t.Fc(i) : c.p > 0 && Kxn(n, c, t));
+ e.p = 0;
+ }
+ function bn(n) {
+ var e;
+ this.c = new Ct(), this.f = n.e, this.e = n.d, this.i = n.g, this.d = n.c, this.b = n.b, this.k = n.j, this.a = n.a, n.i ? this.j = n.i : this.j = (e = u(xo($1), 9), new ms(e, u(bo(e, e.length), 9), 0)), this.g = n.f;
+ }
+ function V5e(n) {
+ var e, t, i, r;
+ for (e = ul(De(new Ju("Predicates."), "and"), 40), t = !0, r = new $v(n); r.b < r.d.gc(); )
+ i = (ne(r.b < r.d.gc()), r.d.Xb(r.c = r.b++)), t || (e.a += ","), e.a += "" + i, t = !1;
+ return (e.a += ")", e).a;
+ }
+ function Hxn(n, e, t) {
+ var i, r, c;
+ if (!(t <= e + 2))
+ for (r = (t - e) / 2 | 0, i = 0; i < r; ++i)
+ c = (Ln(e + i, n.c.length), u(n.c[e + i], 11)), js(n, e + i, (Ln(t - i - 1, n.c.length), u(n.c[t - i - 1], 11))), Ln(t - i - 1, n.c.length), n.c[t - i - 1] = c;
+ }
+ function Q5e(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ c = n.d.p, f = c.e, h = c.r, n.g = new b8(h), o = n.d.o.c.p, i = o > 0 ? f[o - 1] : F(vh, E1, 10, 0, 0, 1), r = f[o], l = o < f.length - 1 ? f[o + 1] : F(vh, E1, 10, 0, 0, 1), a = e == t - 1, a ? r$(n.g, r, l) : r$(n.g, i, r);
+ }
+ function qxn(n) {
+ var e;
+ this.j = new X(), this.f = new hi(), this.b = (e = u(xo(Yi), 9), new ms(e, u(bo(e, e.length), 9), 0)), this.d = F(be, Le, 25, (J(), A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn])).length, 15, 1), this.g = n;
+ }
+ function Gxn(n, e) {
+ var t, i, r;
+ if (e.c.length != 0) {
+ for (t = mxn(n, e), r = !1; !t; )
+ rM(n, e, !0), r = !0, t = mxn(n, e);
+ r && rM(n, e, !1), i = rF(e), n.b && n.b.lg(i), n.a = ADn(n, (Ln(0, e.c.length), u(e.c[0], 33))), Gxn(n, i);
+ }
+ }
+ function Cx(n, e) {
+ var t, i, r;
+ if (i = On(n.Tg(), e), t = e - n.Ah(), t < 0)
+ if (i)
+ if (i.Ij())
+ r = n.Yg(i), r >= 0 ? n.Bh(r) : bY(n, i);
+ else
+ throw T(new Hn(Sl + i.ne() + em));
+ else
+ throw T(new Hn(mqn + e + kqn));
+ else
+ Ms(n, t, i);
+ }
+ function tY(n) {
+ var e, t;
+ if (t = null, e = !1, I(n, 204) && (e = !0, t = u(n, 204).a), e || I(n, 258) && (e = !0, t = "" + u(n, 258).a), e || I(n, 483) && (e = !0, t = "" + u(n, 483).a), !e)
+ throw T(new UI(Btn));
+ return t;
+ }
+ function zxn(n, e) {
+ var t, i;
+ if (n.f) {
+ for (; e.Ob(); )
+ if (t = u(e.Pb(), 72), i = t.ak(), I(i, 99) && u(i, 18).Bb & sc && (!n.e || i.Gj() != Mv || i.aj() != 0) && t.dd() != null)
+ return e.Ub(), !0;
+ return !1;
+ } else
+ return e.Ob();
+ }
+ function Uxn(n, e) {
+ var t, i;
+ if (n.f) {
+ for (; e.Sb(); )
+ if (t = u(e.Ub(), 72), i = t.ak(), I(i, 99) && u(i, 18).Bb & sc && (!n.e || i.Gj() != Mv || i.aj() != 0) && t.dd() != null)
+ return e.Pb(), !0;
+ return !1;
+ } else
+ return e.Sb();
+ }
+ function iY(n, e, t) {
+ var i, r, c, o, f, h;
+ for (h = _c(n.e.Tg(), e), i = 0, f = n.i, r = u(n.g, 119), o = 0; o < n.i; ++o)
+ if (c = r[o], h.rl(c.ak())) {
+ if (t == i)
+ return o;
+ ++i, f = o + 1;
+ }
+ if (t == i)
+ return f;
+ throw T(new mr(rm + t + _a + i));
+ }
+ function J5e(n, e) {
+ var t, i, r, c;
+ if (n.f.c.length == 0)
+ return null;
+ for (c = new d2(), i = new E(n.f); i.a < i.c.c.length; )
+ t = u(y(i), 70), r = t.o, c.b = j.Math.max(c.b, r.a), c.a += r.b;
+ return c.a += (n.f.c.length - 1) * e, c;
+ }
+ function Y5e(n, e, t) {
+ var i, r, c;
+ for (r = new re(ue(_h(t).a.Kc(), new Mn())); Se(r); )
+ i = u(ve(r), 17), !Wi(i) && !(!Wi(i) && i.c.i.c == i.d.i.c) && (c = TNn(n, i, t, new s9n()), c.c.length > 1 && (e.c[e.c.length] = c));
+ }
+ function Z5e(n) {
+ var e, t, i, r;
+ for (t = new Ct(), Xi(t, n.o), i = new Yq(); t.b != 0; )
+ e = u(t.b == 0 ? null : (ne(t.b != 0), Cs(t, t.a.a)), 508), r = T_n(n, e, !0), r && W(i.a, e);
+ for (; i.a.c.length != 0; )
+ e = u(vDn(i), 508), T_n(n, e, !1);
+ }
+ function y1() {
+ y1 = N, Lfn = new l2(K6, 0), _i = new l2("BOOLEAN", 1), oc = new l2("INT", 2), mv = new l2("STRING", 3), Dr = new l2("DOUBLE", 4), Bt = new l2("ENUM", 5), Cp = new l2("ENUMSET", 6), yf = new l2("OBJECT", 7);
+ }
+ function m6(n, e) {
+ var t, i, r, c, o;
+ i = j.Math.min(n.c, e.c), c = j.Math.min(n.d, e.d), r = j.Math.max(n.c + n.b, e.c + e.b), o = j.Math.max(n.d + n.a, e.d + e.a), r < i && (t = i, i = r, r = t), o < c && (t = c, c = o, o = t), NEn(n, i, c, r - i, o - c);
+ }
+ function bu() {
+ bu = N, P1n = A(M(tn, 1), q, 2, 6, [Ztn, Ck, IA, LGn, OA, UB, vA]), S1n = A(M(tn, 1), q, 2, 6, [Ztn, "empty", Ck, Ek, "elementOnly"]), I1n = A(M(tn, 1), q, 2, 6, [Ztn, "preserve", "replace", Uo]), xi = new xEn();
+ }
+ function rY(n, e, t) {
+ var i, r, c;
+ if (e != t) {
+ i = e;
+ do
+ st(n, i.c), r = i.e, r && (c = i.d, W0(n, c.b, c.d), st(n, r.n), i = qi(r));
+ while (r);
+ i = t;
+ do
+ ji(n, i.c), r = i.e, r && (c = i.d, o8(n, c.b, c.d), ji(n, r.n), i = qi(r));
+ while (r);
+ }
+ }
+ function Tx(n, e, t, i) {
+ var r, c, o, f, h;
+ if (i.f.c + i.g.c == 0)
+ for (o = n.a[n.c], f = 0, h = o.length; f < h; ++f)
+ c = o[f], it(i, c, new dOn(n, c, t));
+ return r = u(Vr(Sr(i.f, e)), 663), r.b = 0, r.c = r.f, r.c == 0 || Ovn(u(un(r.a, r.b), 287)), r;
+ }
+ function q2() {
+ q2 = N, tv = new i5("MEDIAN_LAYER", 0), ym = new i5("TAIL_LAYER", 1), ev = new i5("HEAD_LAYER", 2), Gb = new i5("SPACE_EFFICIENT_LAYER", 3), Cg = new i5("WIDEST_LAYER", 4), Eg = new i5("CENTER_LAYER", 5);
+ }
+ function n6e(n) {
+ switch (n.g) {
+ case 0:
+ case 1:
+ case 2:
+ return J(), Kn;
+ case 3:
+ case 4:
+ case 5:
+ return J(), ae;
+ case 6:
+ case 7:
+ case 8:
+ return J(), Gn;
+ case 9:
+ case 10:
+ case 11:
+ return J(), Vn;
+ default:
+ return J(), Xr;
+ }
+ }
+ function e6e(n, e) {
+ var t;
+ return n.c.length == 0 ? !1 : (t = h$n((Ln(0, n.c.length), u(n.c[0], 17)).c.i), Zu(), t == (gb(), xg) || t == Fg ? !0 : E3(Wc(new $n(null, new xn(n, 16)), new $wn()), new j6n(e)));
+ }
+ function cY(n, e, t) {
+ var i, r, c;
+ if (!n.b[e.g]) {
+ for (n.b[e.g] = !0, i = t, !i && (i = new AC()), Ke(i.b, e), c = n.a[e.g].Kc(); c.Ob(); )
+ r = u(c.Pb(), 188), r.b != e && cY(n, r.b, i), r.c != e && cY(n, r.c, i), Ke(i.a, r);
+ return i;
+ }
+ return null;
+ }
+ function k6() {
+ k6 = N, pP = new o5("ROOT_PROC", 0), aK = new o5("FAN_PROC", 1), bK = new o5("NEIGHBORS_PROC", 2), dK = new o5("LEVEL_HEIGHT", 3), wK = new o5("NODE_POSITION_PROC", 4), lK = new o5("DETREEIFYING_PROC", 5);
+ }
+ function Mx(n, e) {
+ if (I(e, 239))
+ return Xre(n, u(e, 33));
+ if (I(e, 186))
+ return Vre(n, u(e, 118));
+ if (I(e, 439))
+ return Wre(n, u(e, 202));
+ throw T(new Hn(Rtn + ml(new Ku(A(M(Zn, 1), rn, 1, 5, [e])))));
+ }
+ function Wxn(n, e, t) {
+ var i, r;
+ if (this.f = n, i = u(te(n.b, e), 283), r = i ? i.a : 0, $X(t, r), t >= (r / 2 | 0))
+ for (this.e = i ? i.c : null, this.d = r; t++ < r; )
+ mMn(this);
+ else
+ for (this.c = i ? i.b : null; t-- > 0; )
+ nX(this);
+ this.b = e, this.a = null;
+ }
+ function t6e(n, e) {
+ var t, i;
+ e.a ? T8e(n, e) : (t = u(rD(n.b, e.b), 57), t && t == n.a[e.b.f] && t.a && t.a != e.b.a && t.c.Fc(e.b), i = u(iD(n.b, e.b), 57), i && n.a[i.f] == e.b && i.a && i.a != e.b.a && e.b.c.Fc(i), zO(n.b, e.b));
+ }
+ function Xxn(n, e) {
+ var t, i;
+ if (t = u(br(n.b, e), 124), u(u(ct(n.r, e), 21), 84).dc()) {
+ t.n.b = 0, t.n.c = 0;
+ return;
+ }
+ t.n.b = n.C.b, t.n.c = n.C.c, n.A.Hc((Vu(), rd)) && vBn(n, e), i = Dpe(n, e), qx(n, e) == (qw(), Kl) && (i += 2 * n.w), t.a.a = i;
+ }
+ function Vxn(n, e) {
+ var t, i;
+ if (t = u(br(n.b, e), 124), u(u(ct(n.r, e), 21), 84).dc()) {
+ t.n.d = 0, t.n.a = 0;
+ return;
+ }
+ t.n.d = n.C.d, t.n.a = n.C.a, n.A.Hc((Vu(), rd)) && mBn(n, e), i = $pe(n, e), qx(n, e) == (qw(), Kl) && (i += 2 * n.w), t.a.b = i;
+ }
+ function i6e(n, e) {
+ var t, i, r, c;
+ for (c = new X(), i = new E(e); i.a < i.c.c.length; )
+ t = u(y(i), 65), W(c, new KG(t, !0)), W(c, new KG(t, !1));
+ r = new HTn(n), Kv(r.a.a), sAn(c, n.b, new Ku(A(M(_zn, 1), rn, 679, 0, [r])));
+ }
+ function Qxn(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C;
+ return h = n.a, p = n.b, l = e.a, v = e.b, a = t.a, m = t.b, d = i.a, C = i.b, c = h * v - p * l, o = a * C - m * d, r = (h - l) * (m - C) - (p - v) * (a - d), f = (c * (a - d) - o * (h - l)) / r, g = (c * (m - C) - o * (p - v)) / r, new fn(f, g);
+ }
+ function uY(n, e) {
+ var t, i, r;
+ if (!n.d[e.p]) {
+ for (n.d[e.p] = !0, n.a[e.p] = !0, i = new re(ue(ei(e).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), !Wi(t) && (r = t.d.i, n.a[r.p] ? W(n.b, t) : uY(n, r));
+ n.a[e.p] = !1;
+ }
+ }
+ function Jxn(n, e, t) {
+ var i;
+ switch (i = 0, u(k(e, (nn(), Hc)), 163).g) {
+ case 2:
+ i = 2 * -t + n.a, ++n.a;
+ break;
+ case 1:
+ i = -t;
+ break;
+ case 3:
+ i = t;
+ break;
+ case 4:
+ i = 2 * t + n.b, ++n.b;
+ }
+ return ai(e, (G(), bc)) && (i += u(k(e, bc), 19).a), i;
+ }
+ function Yxn(n, e, t) {
+ var i, r, c;
+ for (t.zc(e, n), W(n.n, e), c = n.p.eg(e), e.j == n.p.fg() ? n$n(n.e, c) : n$n(n.j, c), WE(n), r = cl(of(A(M(gf, 1), rn, 20, 0, [new Hp(e), new n2(e)]))); Se(r); )
+ i = u(ve(r), 11), t._b(i) || Yxn(n, i, t);
+ }
+ function sY(n) {
+ var e, t, i;
+ return t = u(hn(n, (Xe(), nd)), 21), t.Hc((Vu(), sw)) ? (i = u(hn(n, Rl), 21), e = new kr(u(hn(n, Kg), 8)), i.Hc((xu(), Tv)) && (e.a <= 0 && (e.a = 20), e.b <= 0 && (e.b = 20)), e) : new Li();
+ }
+ function oY(n) {
+ var e, t, i;
+ if (!n.b) {
+ for (i = new npn(), t = new w2(I6(n)); t.e != t.i.gc(); )
+ e = u(UF(t), 18), e.Bb & sc && me(i, e);
+ ab(i), n.b = new Ew((u(D(R((sl(), Nn).o), 8), 18), i.i), i.g), Iu(n).b &= -9;
+ }
+ return n.b;
+ }
+ function r6e(n, e) {
+ var t, i, r, c, o, f, h, l;
+ h = u(y7(k2(e.k), F(Yi, lc, 61, 2, 0, 1)), 122), l = e.g, t = TAn(e, h[0]), r = CAn(e, h[1]), i = sx(n, l, t, r), c = TAn(e, h[1]), f = CAn(e, h[0]), o = sx(n, l, c, f), i <= o ? (e.a = t, e.c = r) : (e.a = c, e.c = f);
+ }
+ function c6e(n, e, t) {
+ var i, r, c;
+ for (le(t, "Processor set neighbors", 1), n.a = e.b.b == 0 ? 1 : e.b.b, r = null, i = _e(e.b, 0); !r && i.b != i.d.c; )
+ c = u(Re(i), 86), on(sn(k(c, (uc(), rw)))) && (r = c);
+ r && rBn(n, new W1(r), t), ce(t);
+ }
+ function Zxn(n) {
+ bL();
+ var e, t, i, r;
+ return i = Pf(n, eu(35)), e = i == -1 ? n : n.substr(0, i), t = i == -1 ? null : n.substr(i + 1), r = Uae(b1n, e), r ? t != null && (r = aDn(r, (_n(t), t))) : (r = yTe(e), ede(b1n, e, r), t != null && (r = aDn(r, t))), r;
+ }
+ function Ax(n) {
+ var e;
+ Pn();
+ var t, i, r, c, o, f;
+ if (I(n, 54))
+ for (c = 0, r = n.gc() - 1; c < r; ++c, --r)
+ e = n.Xb(c), n._c(c, n.Xb(r)), n._c(r, e);
+ else
+ for (t = n.Yc(), o = n.Zc(n.gc()); t.Tb() < o.Vb(); )
+ i = t.Pb(), f = o.Ub(), t.Wb(f), o.Wb(i);
+ }
+ function u6e(n, e) {
+ var t, i, r;
+ le(e, "End label pre-processing", 1), t = K(Y(k(n, (nn(), jp)))), i = K(Y(k(n, ew))), r = i3(u(k(n, ls), 103)), Rt(qr(new $n(null, new xn(n.b, 16)), new ldn()), new gEn(t, i, r)), ce(e);
+ }
+ function Sx(n, e) {
+ var t, i, r, c, o, f;
+ for (f = 0, c = new gw(), hl(c, e); c.b != c.c; )
+ for (o = u(y2(c), 214), f += TFn(o.d, o.e), r = new E(o.b); r.a < r.c.c.length; )
+ i = u(y(r), 37), t = u(un(n.b, i.p), 214), t.s || (f += Sx(n, t));
+ return f;
+ }
+ function nLn(n, e, t) {
+ var i, r;
+ DOn(this), e == (Od(), Bl) ? ci(this.r, n.c) : ci(this.w, n.c), t == Bl ? ci(this.r, n.d) : ci(this.w, n.d), Lxn(this, n), i = jF(n.c), r = jF(n.d), Mxn(this, i, r, r), this.o = (C6(), j.Math.abs(i - r) < 0.2);
+ }
+ function eLn(n, e, t) {
+ var i, r, c, o, f, h;
+ if (f = u(Rn(n.a, 8), 1936), f != null)
+ for (r = f, c = 0, o = r.length; c < o; ++c)
+ null.jm();
+ i = t, n.a.Db & 1 || (h = new tTn(n, t, e), i.ui(h)), I(i, 672) ? u(i, 672).wi(n.a) : i.ti() == n.a && i.vi(null);
+ }
+ function s6e() {
+ var n;
+ return See ? u(d4((Y1(), co), Ha), 1945) : (yCe(), n = u(I(mc((Y1(), co), Ha), 586) ? mc(co, Ha) : new hTn(), 586), See = !0, rTe(n), DTe(n), it(($G(), w1n), n, new s3n()), fx(n), yr(co, Ha, n), n);
+ }
+ function o6e(n, e, t, i) {
+ var r;
+ return r = Qw(n, t, A(M(tn, 1), q, 2, 6, [KL, HL, qL, GL, zL, UL, WL]), e), r < 0 && (r = Qw(n, t, A(M(tn, 1), q, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), e)), r < 0 ? !1 : (i.d = r, !0);
+ }
+ function f6e(n, e, t, i) {
+ var r;
+ return r = Qw(n, t, A(M(tn, 1), q, 2, 6, [KL, HL, qL, GL, zL, UL, WL]), e), r < 0 && (r = Qw(n, t, A(M(tn, 1), q, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), e)), r < 0 ? !1 : (i.d = r, !0);
+ }
+ function h6e(n) {
+ var e, t, i;
+ for (g9e(n), i = new X(), t = new E(n.a.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 81), W(i, new UG(e, !0)), W(i, new UG(e, !1));
+ Jpe(n.c), O8(i, n.b, new Ku(A(M(Rk, 1), rn, 369, 0, [n.c]))), Ome(n);
+ }
+ function l6e(n) {
+ var e, t, i, r;
+ for (t = new we(), r = new E(n.d); r.a < r.c.c.length; )
+ i = u(y(r), 181), e = u(i.We((G(), wp)), 17), Sr(t.f, e) || it(t, e, new LTn(e)), W(u(Vr(Sr(t.f, e)), 456).b, i);
+ return new lu(new Th(t));
+ }
+ function a6e(n, e) {
+ var t, i, r, c, o;
+ for (i = new NMn(n.j.c.length), t = null, c = new E(n.j); c.a < c.c.c.length; )
+ r = u(y(c), 11), r.j != t && (i.b == i.c || bNn(i, t, e), kX(i), t = r.j), o = YLn(r), o && bX(i, o);
+ i.b == i.c || bNn(i, t, e);
+ }
+ function d6e(n, e) {
+ var t, i, r;
+ for (i = new Ii(n.b, 0); i.b < i.d.gc(); )
+ t = (ne(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 70)), r = u(k(t, (nn(), Jf)), 272), r == (sf(), uw) && (Uu(i), W(e.b, t), ai(t, (G(), wp)) || H(t, wp, n));
+ }
+ function b6e(n) {
+ var e, t, i, r, c;
+ for (e = $h(new re(ue(ei(n).a.Kc(), new Mn()))), r = new re(ue(Lr(n).a.Kc(), new Mn())); Se(r); )
+ i = u(ve(r), 17), t = i.c.i, c = $h(new re(ue(ei(t).a.Kc(), new Mn()))), e = j.Math.max(e, c);
+ return Q(e);
+ }
+ function w6e(n, e, t) {
+ var i, r, c, o;
+ for (le(t, "Processor arrange node", 1), r = null, c = new Ct(), i = _e(e.b, 0); !r && i.b != i.d.c; )
+ o = u(Re(i), 86), on(sn(k(o, (uc(), rw)))) && (r = o);
+ Ht(c, r, c.c.b, c.c), l_n(n, c, yc(t, 1)), ce(t);
+ }
+ function tLn(n, e, t) {
+ var i, r, c;
+ i = u(hn(n, (Xe(), LP)), 21), r = 0, c = 0, e.a > t.a && (i.Hc((mb(), dy)) ? r = (e.a - t.a) / 2 : i.Hc(by) && (r = e.a - t.a)), e.b > t.b && (i.Hc((mb(), gy)) ? c = (e.b - t.b) / 2 : i.Hc(wy) && (c = e.b - t.b)), zJ(n, r, c);
+ }
+ function iLn(n, e, t, i, r, c, o, f, h, l, a, d, g) {
+ I(n.Cb, 88) && jb(Iu(u(n.Cb, 88)), 4), Oc(n, t), n.f = o, Y3(n, f), n4(n, h), J3(n, l), Z3(n, a), p1(n, d), e4(n, g), g1(n, !0), d1(n, r), n.ok(c), Ta(n, e), i != null && (n.i = null, nT(n, i));
+ }
+ function rLn(n) {
+ var e, t;
+ if (n.f) {
+ for (; n.n > 0; ) {
+ if (e = u(n.k.Xb(n.n - 1), 72), t = e.ak(), I(t, 99) && u(t, 18).Bb & sc && (!n.e || t.Gj() != Mv || t.aj() != 0) && e.dd() != null)
+ return !0;
+ --n.n;
+ }
+ return !1;
+ } else
+ return n.n > 0;
+ }
+ function fY(n, e, t) {
+ if (n < 0)
+ return T6(H_n, A(M(Zn, 1), rn, 1, 5, [t, Q(n)]));
+ if (e < 0)
+ throw T(new Hn(q_n + e));
+ return T6("%s (%s) must not be greater than size (%s)", A(M(Zn, 1), rn, 1, 5, [t, Q(n), Q(e)]));
+ }
+ function hY(n, e, t, i, r, c) {
+ var o, f, h, l;
+ if (o = i - t, o < 7) {
+ e2e(e, t, i, c);
+ return;
+ }
+ if (h = t + r, f = i + r, l = h + (f - h >> 1), hY(e, n, h, l, -r, c), hY(e, n, l, f, -r, c), c.ue(n[l - 1], n[l]) <= 0) {
+ for (; t < i; )
+ Mt(e, t++, n[h++]);
+ return;
+ }
+ Ege(n, h, l, f, e, t, i, c);
+ }
+ function O7(n, e) {
+ var t, i, r;
+ for (r = new X(), i = new E(n.c.a.b); i.a < i.c.c.length; )
+ t = u(y(i), 57), e.Lb(t) && (W(r, new RG(t, !0)), W(r, new RG(t, !1)));
+ Qpe(n.e), sAn(r, n.d, new Ku(A(M(_zn, 1), rn, 679, 0, [n.e])));
+ }
+ function g6e(n, e) {
+ var t, i, r, c, o, f, h;
+ for (h = e.d, r = e.b.j, f = new E(h); f.a < f.c.c.length; )
+ for (o = u(y(f), 101), c = F(_u, wh, 25, r.c.length, 16, 1), it(n.b, o, c), t = o.a.d.p - 1, i = o.c.d.p; t != i; )
+ t = (t + 1) % r.c.length, c[t] = !0;
+ }
+ function p6e(n, e) {
+ for (n.r = new n7(n.p), dte(n.r, n), Xi(n.r.j, n.j), Rs(n.j), Ke(n.j, e), Ke(n.r.e, e), WE(n), WE(n.r); n.f.c.length != 0; )
+ Ayn(u(un(n.f, 0), 129));
+ for (; n.k.c.length != 0; )
+ Ayn(u(un(n.k, 0), 129));
+ return n.r;
+ }
+ function Px(n, e, t) {
+ var i, r, c;
+ if (r = On(n.Tg(), e), i = e - n.Ah(), i < 0)
+ if (r)
+ if (r.Ij())
+ c = n.Yg(r), c >= 0 ? n.sh(c, t) : _Y(n, r, t);
+ else
+ throw T(new Hn(Sl + r.ne() + em));
+ else
+ throw T(new Hn(mqn + e + kqn));
+ else
+ Ss(n, i, r, t);
+ }
+ function cLn(n) {
+ var e, t, i, r;
+ if (t = u(n, 49).qh(), t)
+ try {
+ if (i = null, e = d4((Y1(), co), KBn(r2e(t))), e && (r = e.rh(), r && (i = r.Wk(aie(t.e)))), i && i != n)
+ return cLn(i);
+ } catch (c) {
+ if (c = jt(c), !I(c, 60))
+ throw T(c);
+ }
+ return n;
+ }
+ function Rc(n, e, t) {
+ var i, r, c, o;
+ if (o = e == null ? 0 : n.b.se(e), r = (i = n.a.get(o), i ?? new Array()), r.length == 0)
+ n.a.set(o, r);
+ else if (c = yDn(n, e, r), c)
+ return c.ed(t);
+ return Mt(r, r.length, new Nj(e, t)), ++n.c, cC(n.b), null;
+ }
+ function uLn(n, e) {
+ var t, i;
+ return pC(n.a), ih(n.a, (iT(), EP), EP), ih(n.a, vv, vv), i = new li(), Ze(i, vv, (CT(), CK)), B(hn(e, (pb(), AK))) !== B((f7(), CP)) && Ze(i, vv, jK), Ze(i, vv, EK), uyn(n.a, i), t = EM(n.a, e), t;
+ }
+ function sLn(n) {
+ if (!n)
+ return G9n(), mzn;
+ var e = n.valueOf ? n.valueOf() : n;
+ if (e !== n) {
+ var t = dR[typeof e];
+ return t ? t(e) : tQ(typeof e);
+ } else
+ return n instanceof Array || n instanceof j.Array ? new sq(n) : new M9(n);
+ }
+ function oLn(n, e, t) {
+ var i, r, c;
+ switch (c = n.o, i = u(br(n.p, t), 244), r = i.i, r.b = F7(i), r.a = $7(i), r.b = j.Math.max(r.b, c.a), r.b > c.a && !e && (r.b = c.a), r.c = -(r.b - c.a) / 2, t.g) {
+ case 1:
+ r.d = -r.a;
+ break;
+ case 3:
+ r.d = c.b;
+ }
+ tL(i), iL(i);
+ }
+ function fLn(n, e, t) {
+ var i, r, c;
+ switch (c = n.o, i = u(br(n.p, t), 244), r = i.i, r.b = F7(i), r.a = $7(i), r.a = j.Math.max(r.a, c.b), r.a > c.b && !e && (r.a = c.b), r.d = -(r.a - c.b) / 2, t.g) {
+ case 4:
+ r.c = -r.b;
+ break;
+ case 2:
+ r.c = c.a;
+ }
+ tL(i), iL(i);
+ }
+ function v6e(n, e) {
+ var t, i, r, c, o;
+ if (!e.dc()) {
+ if (r = u(e.Xb(0), 128), e.gc() == 1) {
+ LNn(n, r, r, 1, 0, e);
+ return;
+ }
+ for (t = 1; t < e.gc(); )
+ (r.j || !r.o) && (c = A3e(e, t), c && (i = u(c.a, 19).a, o = u(c.b, 128), LNn(n, r, o, t, i, e), t = i + 1, r = o));
+ }
+ }
+ function m6e(n) {
+ var e, t, i, r, c, o;
+ for (o = new lu(n.d), wi(o, new zbn()), e = (lM(), A(M(Ncn, 1), z, 270, 0, [n_, i_, ZR, u_, t_, e_, c_, r_])), t = 0, c = new E(o); c.a < c.c.c.length; )
+ r = u(y(c), 101), i = e[t % e.length], wme(r, i), ++t;
+ }
+ function k6e(n, e) {
+ eg();
+ var t, i, r, c;
+ if (e.b < 2)
+ return !1;
+ for (c = _e(e, 0), t = u(Re(c), 8), i = t; c.b != c.d.c; ) {
+ if (r = u(Re(c), 8), !(B3(n, i) && B3(n, r)))
+ return !1;
+ i = r;
+ }
+ return !!(B3(n, i) && B3(n, t));
+ }
+ function lY(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ return a = null, d = n, o = Nh(d, "x"), t = new cmn(e), a0e(t.a, o), f = Nh(d, "y"), i = new umn(e), d0e(i.a, f), h = Nh(d, OB), r = new smn(e), b0e(r.a, h), l = Nh(d, IB), c = new omn(e), a = (w0e(c.a, l), l), a;
+ }
+ function jb(n, e) {
+ wBn(n, e), n.b & 1 && (n.a.a = null), n.b & 2 && (n.a.f = null), n.b & 4 && (n.a.g = null, n.a.i = null), n.b & 16 && (n.a.d = null, n.a.e = null), n.b & 8 && (n.a.b = null), n.b & 32 && (n.a.j = null, n.a.c = null);
+ }
+ function y6e(n, e) {
+ var t, i, r;
+ if (r = 0, e.length > 0)
+ try {
+ r = us(e, Bi, nt);
+ } catch (c) {
+ throw c = jt(c), I(c, 127) ? (i = c, T(new xC(i))) : T(c);
+ }
+ return t = (!n.a && (n.a = new $I(n)), n.a), r < t.i && r >= 0 ? u(D(t, r), 56) : null;
+ }
+ function j6e(n, e) {
+ if (n < 0)
+ return T6(H_n, A(M(Zn, 1), rn, 1, 5, ["index", Q(n)]));
+ if (e < 0)
+ throw T(new Hn(q_n + e));
+ return T6("%s (%s) must be less than size (%s)", A(M(Zn, 1), rn, 1, 5, ["index", Q(n), Q(e)]));
+ }
+ function E6e(n) {
+ var e, t, i, r, c;
+ if (n == null)
+ return tu;
+ for (c = new ya(Qi, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], c.a ? De(c.a, c.b) : c.a = new Ju(c.d), g5(c.a, "" + e);
+ return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c;
+ }
+ function C6e(n) {
+ var e, t, i, r, c;
+ if (n == null)
+ return tu;
+ for (c = new ya(Qi, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], c.a ? De(c.a, c.b) : c.a = new Ju(c.d), g5(c.a, "" + e);
+ return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c;
+ }
+ function T6e(n) {
+ var e, t, i, r, c;
+ if (n == null)
+ return tu;
+ for (c = new ya(Qi, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], c.a ? De(c.a, c.b) : c.a = new Ju(c.d), g5(c.a, "" + e);
+ return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c;
+ }
+ function M6e(n) {
+ var e, t, i, r, c;
+ if (n == null)
+ return tu;
+ for (c = new ya(Qi, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], c.a ? De(c.a, c.b) : c.a = new Ju(c.d), g5(c.a, "" + e);
+ return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c;
+ }
+ function hLn(n, e) {
+ var t, i, r, c, o, f;
+ for (t = n.b.c.length, r = un(n.b, e); e * 2 + 1 < t && (i = (c = 2 * e + 1, o = c + 1, f = c, o < t && n.a.ue(un(n.b, o), un(n.b, c)) < 0 && (f = o), f), !(n.a.ue(r, un(n.b, i)) < 0)); )
+ js(n.b, e, un(n.b, i)), e = i;
+ js(n.b, e, r);
+ }
+ function aY(n, e, t, i, r, c) {
+ var o, f, h, l, a;
+ for (B(n) === B(t) && (n = n.slice(e, e + r), e = 0), h = t, f = e, l = e + r; f < l; )
+ o = j.Math.min(f + 1e4, l), r = o - f, a = n.slice(f, o), a.splice(0, 0, i, c ? r : 0), Array.prototype.splice.apply(h, a), f = o, i += r;
+ }
+ function Ix(n, e, t) {
+ var i, r;
+ return i = t.d, r = t.e, n.g[i.d] <= n.i[e.d] && n.i[e.d] <= n.i[i.d] && n.g[r.d] <= n.i[e.d] && n.i[e.d] <= n.i[r.d] ? !(n.i[i.d] < n.i[r.d]) : n.i[i.d] < n.i[r.d];
+ }
+ function lLn(n) {
+ var e, t, i, r, c, o, f;
+ if (i = n.a.c.length, i > 0)
+ for (o = n.c.d, f = n.d.d, r = If(ji(new fn(f.a, f.b), o), 1 / (i + 1)), c = new fn(o.a, o.b), t = new E(n.a); t.a < t.c.c.length; )
+ e = u(y(t), 559), e.d.a = c.a, e.d.b = c.b, st(c, r);
+ }
+ function aLn(n, e, t) {
+ var i, r, c, o, f, h;
+ for (h = xt, c = new E(CNn(n.b)); c.a < c.c.c.length; )
+ for (r = u(y(c), 168), f = new E(CNn(e.b)); f.a < f.c.c.length; )
+ o = u(y(f), 168), i = dwe(r.a, r.b, o.a, o.b, t), h = j.Math.min(h, i);
+ return h;
+ }
+ function si(n, e) {
+ if (!e)
+ throw T(new Nv());
+ if (n.j = e, !n.d)
+ switch (n.j.g) {
+ case 1:
+ n.a.a = n.o.a / 2, n.a.b = 0;
+ break;
+ case 2:
+ n.a.a = n.o.a, n.a.b = n.o.b / 2;
+ break;
+ case 3:
+ n.a.a = n.o.a / 2, n.a.b = n.o.b;
+ break;
+ case 4:
+ n.a.a = 0, n.a.b = n.o.b / 2;
+ }
+ }
+ function A6e(n, e) {
+ var t, i, r;
+ return I(e.g, 10) && u(e.g, 10).k == (Qn(), Vt) ? xt : (r = S2(e), r ? j.Math.max(0, n.b / 2 - 0.5) : (t = $w(e), t ? (i = K(Y(wb(t, (nn(), M0)))), j.Math.max(0, i / 2 - 0.5)) : xt));
+ }
+ function S6e(n, e) {
+ var t, i, r;
+ return I(e.g, 10) && u(e.g, 10).k == (Qn(), Vt) ? xt : (r = S2(e), r ? j.Math.max(0, n.b / 2 - 0.5) : (t = $w(e), t ? (i = K(Y(wb(t, (nn(), M0)))), j.Math.max(0, i / 2 - 0.5)) : xt));
+ }
+ function P6e(n) {
+ var e, t, i, r, c, o;
+ for (o = c6(n.d, n.e), c = o.Kc(); c.Ob(); )
+ for (r = u(c.Pb(), 11), i = n.e == (J(), Gn) ? r.e : r.g, t = new E(i); t.a < t.c.c.length; )
+ e = u(y(t), 17), !Wi(e) && e.c.i.c != e.d.i.c && (x5e(n, e), ++n.f, ++n.c);
+ }
+ function dLn(n, e) {
+ var t, i;
+ if (e.dc())
+ return Pn(), Pn(), cr;
+ for (i = new X(), W(i, Q(Bi)), t = 1; t < n.f; ++t)
+ n.a == null && bBn(n), n.a[t] && W(i, Q(t));
+ return i.c.length == 1 ? (Pn(), Pn(), cr) : (W(i, Q(nt)), Iye(e, i));
+ }
+ function I6e(n, e) {
+ var t, i, r, c, o, f, h;
+ o = e.c.i.k != (Qn(), ii), h = o ? e.d : e.c, t = z3e(e, h).i, r = u(te(n.k, h), 121), i = n.i[t.p].a, tEn(h.i) < (t.c ? xr(t.c.a, t, 0) : -1) ? (c = r, f = i) : (c = i, f = r), jo(lo(ho(ao(fo(new Ls(), 0), 4), c), f));
+ }
+ function O6e(n, e, t) {
+ var i, r, c, o, f, h;
+ if (t)
+ for (r = t.a.length, i = new ha(r), f = (i.b - i.a) * i.c < 0 ? (Z1(), Ql) : new il(i); f.Ob(); )
+ o = u(f.Pb(), 19), h = rx(n, G2(sb(t, o.a))), h && (c = (!e.b && (e.b = new Fn(he, e, 4, 7)), e.b), me(c, h));
+ }
+ function D6e(n, e, t) {
+ var i, r, c, o, f, h;
+ if (t)
+ for (r = t.a.length, i = new ha(r), f = (i.b - i.a) * i.c < 0 ? (Z1(), Ql) : new il(i); f.Ob(); )
+ o = u(f.Pb(), 19), h = rx(n, G2(sb(t, o.a))), h && (c = (!e.c && (e.c = new Fn(he, e, 5, 8)), e.c), me(c, h));
+ }
+ function D7(n, e, t) {
+ var i, r;
+ i = e.a & n.f, e.b = n.b[i], n.b[i] = e, r = e.f & n.f, e.d = n.c[r], n.c[r] = e, t ? (e.e = t.e, e.e ? e.e.c = e : n.a = e, e.c = t.c, e.c ? e.c.e = e : n.e = e) : (e.e = n.e, e.c = null, n.e ? n.e.c = e : n.a = e, n.e = e), ++n.i, ++n.g;
+ }
+ function bLn(n) {
+ var e, t, i;
+ if (e = n.Pb(), !n.Ob())
+ return e;
+ for (i = cc(De(new X1(), "expected one element but was: <"), e), t = 0; t < 4 && n.Ob(); t++)
+ cc((i.a += Qi, i), n.Pb());
+ throw n.Ob() && (i.a += ", ..."), i.a += ">", T(new Hn(i.a));
+ }
+ function $6e(n, e) {
+ var t;
+ e.d ? e.d.b = e.b : n.a = e.b, e.b ? e.b.d = e.d : n.e = e.d, !e.e && !e.c ? (t = u(O2(n.b, e.a), 283), t.a = 0, ++n.c) : (t = u(te(n.b, e.a), 283), --t.a, e.e ? e.e.c = e.c : t.b = e.c, e.c ? e.c.e = e.e : t.c = e.e), --n.d;
+ }
+ function F6e(n) {
+ var e, t;
+ return t = -n.a, e = A(M(xs, 1), Bf, 25, 15, [43, 48, 48, 48, 48]), t < 0 && (e[0] = 45, t = -t), e[1] = e[1] + ((t / 60 | 0) / 10 | 0) & Wt, e[2] = e[2] + (t / 60 | 0) % 10 & Wt, e[3] = e[3] + (t % 60 / 10 | 0) & Wt, e[4] = e[4] + t % 10 & Wt, Ks(e, 0, e.length);
+ }
+ function wLn(n, e, t) {
+ var i, r;
+ for (i = e.d, r = t.d; i.a - r.a == 0 && i.b - r.b == 0; )
+ i.a += Fu(n, 26) * N6 + Fu(n, 27) * B6 - 0.5, i.b += Fu(n, 26) * N6 + Fu(n, 27) * B6 - 0.5, r.a += Fu(n, 26) * N6 + Fu(n, 27) * B6 - 0.5, r.b += Fu(n, 26) * N6 + Fu(n, 27) * B6 - 0.5;
+ }
+ function dY(n) {
+ var e, t, i, r;
+ for (n.g = new f6(u(pe(Yi), 290)), i = 0, t = (J(), Kn), e = 0; e < n.j.c.length; e++)
+ r = u(un(n.j, e), 11), r.j != t && (i != e && m2(n.g, t, new Pi(Q(i), Q(e))), t = r.j, i = e);
+ m2(n.g, t, new Pi(Q(i), Q(e)));
+ }
+ function x6e(n) {
+ var e, t, i, r, c, o, f;
+ for (i = 0, t = new E(n.b); t.a < t.c.c.length; )
+ for (e = u(y(t), 29), c = new E(e.a); c.a < c.c.c.length; )
+ for (r = u(y(c), 10), r.p = i++, f = new E(r.j); f.a < f.c.c.length; )
+ o = u(y(f), 11), o.p = i++;
+ }
+ function gLn(n, e, t, i, r) {
+ var c, o, f, h, l;
+ if (e)
+ for (f = e.Kc(); f.Ob(); )
+ for (o = u(f.Pb(), 10), l = tZ(o, (ur(), Lc), t).Kc(); l.Ob(); )
+ h = u(l.Pb(), 11), c = u(Vr(Sr(r.f, h)), 112), c || (c = new n7(n.d), i.c[i.c.length] = c, Yxn(c, h, r));
+ }
+ function bY(n, e) {
+ var t, i, r;
+ if (r = rg((bu(), xi), n.Tg(), e), r)
+ er(), u(r, 66).Oj() || (r = A2(Er(xi, r))), i = (t = n.Yg(r), u(t >= 0 ? n._g(t, !0, !0) : Zd(n, r, !0), 153)), u(i, 215).ol(e);
+ else
+ throw T(new Hn(Sl + e.ne() + em));
+ }
+ function wY(n) {
+ var e, t;
+ return n > -140737488355328 && n < 140737488355328 ? n == 0 ? 0 : (e = n < 0, e && (n = -n), t = zt(j.Math.floor(j.Math.log(n) / 0.6931471805599453)), (!e || n != j.Math.pow(2, t)) && ++t, t) : xOn(nu(n));
+ }
+ function L6e(n) {
+ var e, t, i, r, c, o, f;
+ for (c = new Ah(), t = new E(n); t.a < t.c.c.length; )
+ e = u(y(t), 129), o = e.a, f = e.b, !(c.a._b(o) || c.a._b(f)) && (r = o, i = f, o.e.b + o.j.b > 2 && f.e.b + f.j.b <= 2 && (r = f, i = o), c.a.zc(r, c), r.q = i);
+ return c;
+ }
+ function pLn(n, e) {
+ var t, i, r;
+ return i = new Hh(n), Pr(i, e), H(i, (G(), qS), e), H(i, (nn(), Nt), (Ai(), Sc)), H(i, Qf, (oh(), FP)), ta(i, (Qn(), Vt)), t = new gc(), Hr(t, i), si(t, (J(), Gn)), r = new gc(), Hr(r, i), si(r, Vn), i;
+ }
+ function vLn(n) {
+ switch (n.g) {
+ case 0:
+ return new WI((Kd(), ry));
+ case 1:
+ return new $4n();
+ case 2:
+ return new _4n();
+ default:
+ throw T(new Hn("No implementation is available for the crossing minimizer " + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function mLn(n, e) {
+ var t, i, r, c, o;
+ for (n.c[e.p] = !0, W(n.a, e), o = new E(e.j); o.a < o.c.c.length; )
+ for (c = u(y(o), 11), i = new uf(c.b); Kr(i.a) || Kr(i.b); )
+ t = u(Kr(i.a) ? y(i.a) : y(i.b), 17), r = V2e(c, t).i, n.c[r.p] || mLn(n, r);
+ }
+ function kLn(n) {
+ var e, t, i, r, c, o, f;
+ for (o = 0, t = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); t.e != t.i.gc(); )
+ e = u(oe(t), 33), f = e.g, r = e.f, i = j.Math.sqrt(f * f + r * r), o = j.Math.max(i, o), c = kLn(e), o = j.Math.max(c, o);
+ return o;
+ }
+ function Tu() {
+ Tu = N, ql = new d5("OUTSIDE", 0), Zh = new d5("INSIDE", 1), Ty = new d5("NEXT_TO_PORT_IF_POSSIBLE", 2), s9 = new d5("ALWAYS_SAME_SIDE", 3), u9 = new d5("ALWAYS_OTHER_SAME_SIDE", 4), Pp = new d5("SPACE_EFFICIENT", 5);
+ }
+ function yLn(n, e, t) {
+ var i, r, c, o, f, h;
+ return i = bae(n, (r = (dd(), c = new nG(), c), t && HY(r, t), r), e), Q5(i, Dh(e, Uf)), YT(e, i), Zme(e, i), lY(e, i), o = e, f = xd(o, "ports"), h = new Ckn(n, i), R9e(h.a, h.b, f), oF(n, e, i), owe(n, e, i), i;
+ }
+ function N6e(n) {
+ var e, t;
+ return t = -n.a, e = A(M(xs, 1), Bf, 25, 15, [43, 48, 48, 58, 48, 48]), t < 0 && (e[0] = 45, t = -t), e[1] = e[1] + ((t / 60 | 0) / 10 | 0) & Wt, e[2] = e[2] + (t / 60 | 0) % 10 & Wt, e[4] = e[4] + (t % 60 / 10 | 0) & Wt, e[5] = e[5] + t % 10 & Wt, Ks(e, 0, e.length);
+ }
+ function B6e(n) {
+ var e;
+ return e = A(M(xs, 1), Bf, 25, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]), n <= 0 && (e[3] = 43, n = -n), e[4] = e[4] + ((n / 60 | 0) / 10 | 0) & Wt, e[5] = e[5] + (n / 60 | 0) % 10 & Wt, e[7] = e[7] + (n % 60 / 10 | 0) & Wt, e[8] = e[8] + n % 10 & Wt, Ks(e, 0, e.length);
+ }
+ function R6e(n) {
+ var e, t, i, r, c;
+ if (n == null)
+ return tu;
+ for (c = new ya(Qi, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i)
+ e = t[i], c.a ? De(c.a, c.b) : c.a = new Ju(c.d), g5(c.a, "" + O5(e));
+ return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c;
+ }
+ function gY(n, e) {
+ var t, i, r;
+ for (r = nt, i = new E(Hw(e)); i.a < i.c.c.length; )
+ t = u(y(i), 213), t.f && !n.c[t.c] && (n.c[t.c] = !0, r = j.Math.min(r, gY(n, TT(t, e))));
+ return n.i[e.d] = n.j, n.g[e.d] = j.Math.min(r, n.j++), n.g[e.d];
+ }
+ function jLn(n, e) {
+ var t, i, r;
+ for (r = u(u(ct(n.r, e), 21), 84).Kc(); r.Ob(); )
+ i = u(r.Pb(), 111), i.e.b = (t = i.b, t.Xe((Xe(), Bu)) ? t.Hf() == (J(), Kn) ? -t.rf().b - K(Y(t.We(Bu))) : K(Y(t.We(Bu))) : t.Hf() == (J(), Kn) ? -t.rf().b : 0);
+ }
+ function _6e(n) {
+ var e, t, i, r, c, o, f;
+ for (t = Ez(n.e), c = If(o8(Qr(jz(n.e)), n.d * n.a, n.c * n.b), -0.5), e = t.a - c.a, r = t.b - c.b, f = 0; f < n.c; f++) {
+ for (i = e, o = 0; o < n.d; o++)
+ f2e(n.e, new ks(i, r, n.a, n.b)) && wM(n, o, f, !1, !0), i += n.a;
+ r += n.b;
+ }
+ }
+ function K6e(n) {
+ var e, t, i;
+ if (on(sn(hn(n, (Xe(), vy))))) {
+ for (i = new X(), t = new re(ue(qh(n).a.Kc(), new Mn())); Se(t); )
+ e = u(ve(t), 79), Yd(e) && on(sn(hn(e, VK))) && (i.c[i.c.length] = e);
+ return i;
+ } else
+ return Pn(), Pn(), cr;
+ }
+ function G2(n) {
+ var e, t;
+ if (t = !1, I(n, 204))
+ return t = !0, u(n, 204).a;
+ if (!t && I(n, 258) && (e = u(n, 258).a % 1 == 0, e))
+ return t = !0, Q(Fre(u(n, 258).a));
+ throw T(new Af("Id must be a string or an integer: '" + n + "'."));
+ }
+ function H6e(n, e) {
+ var t, i, r, c, o, f;
+ for (c = null, r = new $Cn((!n.a && (n.a = new $I(n)), n.a)); yY(r); )
+ if (t = u(cM(r), 56), i = (o = t.Tg(), f = (ig(o), o.o), !f || !t.mh(f) ? null : TU(iF(f), t.ah(f))), i != null && An(i, e)) {
+ c = t;
+ break;
+ }
+ return c;
+ }
+ function ELn(n, e, t) {
+ var i, r, c, o, f;
+ if (is(t, "occurrences"), t == 0)
+ return f = u(db(T2(n.a), e), 14), f ? f.gc() : 0;
+ if (o = u(db(T2(n.a), e), 14), !o)
+ return 0;
+ if (c = o.gc(), t >= c)
+ o.$b();
+ else
+ for (r = o.Kc(), i = 0; i < t; i++)
+ r.Pb(), r.Qb();
+ return c;
+ }
+ function q6e(n, e, t) {
+ var i, r, c, o;
+ return is(t, "oldCount"), is(0, "newCount"), i = u(db(T2(n.a), e), 14), (i ? i.gc() : 0) == t ? (is(0, "count"), r = (c = u(db(T2(n.a), e), 14), c ? c.gc() : 0), o = -r, o > 0 ? dG() : o < 0 && ELn(n, e, -o), !0) : !1;
+ }
+ function $7(n) {
+ var e, t, i, r, c, o, f;
+ if (f = 0, n.b == 0) {
+ for (o = cFn(n, !0), e = 0, i = o, r = 0, c = i.length; r < c; ++r)
+ t = i[r], t > 0 && (f += t, ++e);
+ e > 1 && (f += n.c * (e - 1));
+ } else
+ f = Y9n(fOn(YE(gt(ID(n.a), new Lln()), new Nln())));
+ return f > 0 ? f + n.n.d + n.n.a : 0;
+ }
+ function F7(n) {
+ var e, t, i, r, c, o, f;
+ if (f = 0, n.b == 0)
+ f = Y9n(fOn(YE(gt(ID(n.a), new Fln()), new xln())));
+ else {
+ for (o = uFn(n, !0), e = 0, i = o, r = 0, c = i.length; r < c; ++r)
+ t = i[r], t > 0 && (f += t, ++e);
+ e > 1 && (f += n.c * (e - 1));
+ }
+ return f > 0 ? f + n.n.b + n.n.c : 0;
+ }
+ function G6e(n, e) {
+ var t, i, r, c;
+ for (c = u(br(n.b, e), 124), t = c.a, r = u(u(ct(n.r, e), 21), 84).Kc(); r.Ob(); )
+ i = u(r.Pb(), 111), i.c && (t.a = j.Math.max(t.a, nW(i.c)));
+ if (t.a > 0)
+ switch (e.g) {
+ case 2:
+ c.n.c = n.s;
+ break;
+ case 4:
+ c.n.b = n.s;
+ }
+ }
+ function z6e(n, e) {
+ var t, i, r;
+ return t = u(k(e, (Go(), V4)), 19).a - u(k(n, V4), 19).a, t == 0 ? (i = ji(Qr(u(k(n, (al(), Bk)), 8)), u(k(n, vm), 8)), r = ji(Qr(u(k(e, Bk), 8)), u(k(e, vm), 8)), ni(i.a * i.b, r.a * r.b)) : t;
+ }
+ function U6e(n, e) {
+ var t, i, r;
+ return t = u(k(e, (n0(), jP)), 19).a - u(k(n, jP), 19).a, t == 0 ? (i = ji(Qr(u(k(n, (uc(), sy)), 8)), u(k(n, zm), 8)), r = ji(Qr(u(k(e, sy), 8)), u(k(e, zm), 8)), ni(i.a * i.b, r.a * r.b)) : t;
+ }
+ function CLn(n) {
+ var e, t;
+ return t = new X1(), t.a += "e_", e = ewe(n), e != null && (t.a += "" + e), n.c && n.d && (De((t.a += " ", t), UT(n.c)), De(cc((t.a += "[", t), n.c.i), "]"), De((t.a += TN, t), UT(n.d)), De(cc((t.a += "[", t), n.d.i), "]")), t.a;
+ }
+ function TLn(n) {
+ switch (n.g) {
+ case 0:
+ return new x4n();
+ case 1:
+ return new L4n();
+ case 2:
+ return new F4n();
+ case 3:
+ return new N4n();
+ default:
+ throw T(new Hn("No implementation is available for the layout phase " + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function pY(n, e, t, i, r) {
+ var c;
+ switch (c = 0, r.g) {
+ case 1:
+ c = j.Math.max(0, e.b + n.b - (t.b + i));
+ break;
+ case 3:
+ c = j.Math.max(0, -n.b - i);
+ break;
+ case 2:
+ c = j.Math.max(0, -n.a - i);
+ break;
+ case 4:
+ c = j.Math.max(0, e.a + n.a - (t.a + i));
+ }
+ return c;
+ }
+ function W6e(n, e, t) {
+ var i, r, c, o, f;
+ if (t)
+ for (r = t.a.length, i = new ha(r), f = (i.b - i.a) * i.c < 0 ? (Z1(), Ql) : new il(i); f.Ob(); )
+ o = u(f.Pb(), 19), c = y3(t, o.a), Dtn in c.a || xB in c.a ? rke(n, c, e) : hTe(n, c, e), Oce(u(te(n.b, t4(c)), 79));
+ }
+ function vY(n) {
+ var e, t;
+ switch (n.b) {
+ case -1:
+ return !0;
+ case 0:
+ return t = n.t, t > 1 || t == -1 ? (n.b = -1, !0) : (e = Hs(n), e && (er(), e.Cj() == yGn) ? (n.b = -1, !0) : (n.b = 1, !1));
+ default:
+ case 1:
+ return !1;
+ }
+ }
+ function X6e(n, e) {
+ var t, i, r, c, o;
+ for (i = (!e.s && (e.s = new V(uu, e, 21, 17)), e.s), c = null, r = 0, o = i.i; r < o; ++r)
+ switch (t = u(D(i, r), 170), Pd(Er(n, t))) {
+ case 2:
+ case 3:
+ !c && (c = new X()), c.c[c.c.length] = t;
+ }
+ return c || (Pn(), Pn(), cr);
+ }
+ function mY(n, e) {
+ var t, i, r, c;
+ if (Qe(n), n.c != 0 || n.a != 123)
+ throw T(new Ce(Pe((Ee(), qqn))));
+ if (c = e == 112, i = n.d, t = c3(n.i, 125, i), t < 0)
+ throw T(new Ce(Pe((Ee(), Gqn))));
+ return r = Yu(n.i, i, t), n.d = t + 1, lPn(r, c, (n.e & 512) == 512);
+ }
+ function V6e(n) {
+ var e;
+ if (e = u(k(n, (nn(), Om)), 314), e == (F2(), ap))
+ throw T(new Gv("The hierarchy aware processor " + e + " in child node " + n + " is only allowed if the root node specifies the same hierarchical processor."));
+ }
+ function Q6e(n, e) {
+ wo();
+ var t, i, r, c, o, f;
+ for (t = null, o = e.Kc(); o.Ob(); )
+ c = u(o.Pb(), 128), !c.o && (i = ace(c.a), r = Zoe(c.a), f = new P6(i, r, null, u(c.d.a.ec().Kc().Pb(), 17)), W(f.c, c.a), n.c[n.c.length] = f, t && W(t.d, f), t = f);
+ }
+ function J6e(n, e) {
+ var t, i, r;
+ if (!e)
+ W$(n, null), x3(n, null);
+ else if (e.i & 4)
+ for (i = "[]", t = e.c; ; t = t.c) {
+ if (!(t.i & 4)) {
+ r = hG((Sh(t), t.o + i)), W$(n, r), x3(n, r);
+ break;
+ }
+ i += "[]";
+ }
+ else
+ r = hG((Sh(e), e.o)), W$(n, r), x3(n, r);
+ n.yk(e);
+ }
+ function y6(n, e, t, i, r) {
+ var c, o, f, h;
+ return h = YO(n, u(r, 56)), B(h) !== B(r) ? (f = u(n.g[t], 72), c = uh(e, h), k5(n, t, px(n, t, c)), Hu(n.e) && (o = fl(n, 9, c.ak(), r, h, i, !1), FJ(o, new xh(n.e, 9, n.c, f, c, i, !1)), L$(o)), h) : r;
+ }
+ function Y6e(n, e, t) {
+ var i, r, c, o, f, h;
+ for (i = u(ct(n.c, e), 15), r = u(ct(n.c, t), 15), c = i.Zc(i.gc()), o = r.Zc(r.gc()); c.Sb() && o.Sb(); )
+ if (f = u(c.Ub(), 19), h = u(o.Ub(), 19), f != h)
+ return zc(f.a, h.a);
+ return !c.Ob() && !o.Ob() ? 0 : c.Ob() ? 1 : -1;
+ }
+ function MLn(n, e) {
+ var t, i, r;
+ try {
+ return r = qle(n.a, e), r;
+ } catch (c) {
+ if (c = jt(c), I(c, 32)) {
+ try {
+ if (i = us(e, Bi, nt), t = xo(n.a), i >= 0 && i < t.length)
+ return t[i];
+ } catch (o) {
+ if (o = jt(o), !I(o, 127))
+ throw T(o);
+ }
+ return null;
+ } else
+ throw T(c);
+ }
+ }
+ function Ox(n, e) {
+ var t, i, r;
+ if (r = rg((bu(), xi), n.Tg(), e), r)
+ return er(), u(r, 66).Oj() || (r = A2(Er(xi, r))), i = (t = n.Yg(r), u(t >= 0 ? n._g(t, !0, !0) : Zd(n, r, !0), 153)), u(i, 215).ll(e);
+ throw T(new Hn(Sl + e.ne() + MB));
+ }
+ function Z6e() {
+ FG();
+ var n;
+ return uee ? u(d4((Y1(), co), Xs), 1939) : (He(qa, new Jpn()), FEe(), n = u(I(mc((Y1(), co), Xs), 547) ? mc(co, Xs) : new lTn(), 547), uee = !0, ITe(n), xTe(n), it(($G(), w1n), n, new dpn()), yr(co, Xs, n), n);
+ }
+ function nme(n, e) {
+ var t, i, r, c;
+ n.j = -1, Hu(n.e) ? (t = n.i, c = n.i != 0, F8(n, e), i = new xh(n.e, 3, n.c, null, e, t, c), r = e.Qk(n.e, n.c, null), r = ixn(n, e, r), r ? (r.Ei(i), r.Fi()) : et(n.e, i)) : (F8(n, e), r = e.Qk(n.e, n.c, null), r && r.Fi());
+ }
+ function tM(n, e) {
+ var t, i, r;
+ if (r = 0, i = e[0], i >= n.length)
+ return -1;
+ for (t = (Me(i, n.length), n.charCodeAt(i)); t >= 48 && t <= 57 && (r = r * 10 + (t - 48), ++i, !(i >= n.length)); )
+ t = (Me(i, n.length), n.charCodeAt(i));
+ return i > e[0] ? e[0] = i : r = -1, r;
+ }
+ function eme(n) {
+ var e, t, i, r, c;
+ return r = u(n.a, 19).a, c = u(n.b, 19).a, t = r, i = c, e = j.Math.max(j.Math.abs(r), j.Math.abs(c)), r <= 0 && r == c ? (t = 0, i = c - 1) : r == -e && c != e ? (t = c, i = r, c >= 0 && ++t) : (t = -c, i = r), new Pi(Q(t), Q(i));
+ }
+ function tme(n, e, t, i) {
+ var r, c, o, f, h, l;
+ for (r = 0; r < e.o; r++)
+ for (c = r - e.j + t, o = 0; o < e.p; o++)
+ if (f = o - e.k + i, h = c, l = f, h += n.j, l += n.k, h >= 0 && l >= 0 && h < n.o && l < n.p && (!aFn(e, r, o) && fFn(n, c, f) || zw(e, r, o) && !Zpe(n, c, f)))
+ return !0;
+ return !1;
+ }
+ function ime(n, e, t) {
+ var i, r, c, o, f;
+ o = n.c, f = n.d, c = Gr(A(M(di, 1), q, 8, 0, [o.i.n, o.n, o.a])).b, r = (c + Gr(A(M(di, 1), q, 8, 0, [f.i.n, f.n, f.a])).b) / 2, i = null, o.j == (J(), Vn) ? i = new fn(e + o.i.c.c.a + t, r) : i = new fn(e - t, r), u3(n.a, 0, i);
+ }
+ function Yd(n) {
+ var e, t, i, r;
+ for (e = null, i = cl(of(A(M(gf, 1), rn, 20, 0, [(!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), (!n.c && (n.c = new Fn(he, n, 5, 8)), n.c)]))); Se(i); )
+ if (t = u(ve(i), 82), r = Ir(t), !e)
+ e = r;
+ else if (e != r)
+ return !1;
+ return !0;
+ }
+ function Dx(n, e, t) {
+ var i;
+ if (++n.j, e >= n.i)
+ throw T(new mr(NB + e + _a + n.i));
+ if (t >= n.i)
+ throw T(new mr(BB + t + _a + n.i));
+ return i = n.g[t], e != t && (e < t ? pc(n.g, e, n.g, e + 1, t - e) : pc(n.g, t + 1, n.g, t, e - t), Mt(n.g, e, i), n.ei(e, i, t), n.ci()), i;
+ }
+ function Tn(n, e, t) {
+ var i;
+ if (i = u(n.c.xc(e), 14), i)
+ return i.Fc(t) ? (++n.d, !0) : !1;
+ if (i = n.ic(e), i.Fc(t))
+ return ++n.d, n.c.zc(e, i), !0;
+ throw T(new EX("New Collection violated the Collection spec"));
+ }
+ function x7(n) {
+ var e, t, i;
+ return n < 0 ? 0 : n == 0 ? 32 : (i = -(n >> 16), e = i >> 16 & 16, t = 16 - e, n = n >> e, i = n - 256, e = i >> 16 & 8, t += e, n <<= e, i = n - Ob, e = i >> 16 & 4, t += e, n <<= e, i = n - Nf, e = i >> 16 & 2, t += e, n <<= e, i = n >> 14, e = i & ~(i >> 1), t + 2 - e);
+ }
+ function rme(n) {
+ C2();
+ var e, t, i, r;
+ for (eS = new X(), DR = new we(), OR = new X(), e = (!n.a && (n.a = new V(Pt, n, 10, 11)), n.a), LCe(e), r = new ie(e); r.e != r.i.gc(); )
+ i = u(oe(r), 33), xr(eS, i, 0) == -1 && (t = new X(), W(OR, t), N$n(i, t));
+ return OR;
+ }
+ function cme(n, e, t) {
+ var i, r, c, o;
+ n.a = t.b.d, I(e, 352) ? (r = ng(u(e, 79), !1, !1), c = I7(r), i = new o5n(n), $i(c, i), z7(c, r), e.We((Xe(), Rg)) != null && $i(u(e.We(Rg), 74), i)) : (o = u(e, 470), o.Hg(o.Dg() + n.a.a), o.Ig(o.Eg() + n.a.b));
+ }
+ function ALn(n, e) {
+ var t, i, r, c, o, f, h, l;
+ for (l = K(Y(k(e, (nn(), Fm)))), h = n[0].n.a + n[0].o.a + n[0].d.c + l, f = 1; f < n.length; f++)
+ i = n[f].n, r = n[f].o, t = n[f].d, c = i.a - t.b - h, c < 0 && (i.a -= c), o = e.f, o.a = j.Math.max(o.a, i.a + r.a), h = i.a + r.a + t.c + l;
+ }
+ function ume(n, e) {
+ var t, i, r, c, o, f;
+ return i = u(u(te(n.g, e.a), 46).a, 65), r = u(u(te(n.g, e.b), 46).a, 65), c = i.b, o = r.b, t = Cje(c, o), t >= 0 ? t : (f = L5(ji(new fn(o.c + o.b / 2, o.d + o.a / 2), new fn(c.c + c.b / 2, c.d + c.a / 2))), -(VBn(c, o) - 1) * f);
+ }
+ function sme(n, e, t) {
+ var i;
+ Rt(new $n(null, (!t.a && (t.a = new V(Tt, t, 6, 6)), new xn(t.a, 16))), new lkn(n, e)), Rt(new $n(null, (!t.n && (t.n = new V(Rr, t, 1, 7)), new xn(t.n, 16))), new akn(n, e)), i = u(hn(t, (Xe(), Rg)), 74), i && EV(i, n, e);
+ }
+ function Zd(n, e, t) {
+ var i, r, c;
+ if (c = rg((bu(), xi), n.Tg(), e), c)
+ return er(), u(c, 66).Oj() || (c = A2(Er(xi, c))), r = (i = n.Yg(c), u(i >= 0 ? n._g(i, !0, !0) : Zd(n, c, !0), 153)), u(r, 215).hl(e, t);
+ throw T(new Hn(Sl + e.ne() + MB));
+ }
+ function kY(n, e, t, i) {
+ var r, c, o, f, h;
+ if (r = n.d[e], r) {
+ if (c = r.g, h = r.i, i != null) {
+ for (f = 0; f < h; ++f)
+ if (o = u(c[f], 133), o.Sh() == t && tt(i, o.cd()))
+ return o;
+ } else
+ for (f = 0; f < h; ++f)
+ if (o = u(c[f], 133), B(o.cd()) === B(i))
+ return o;
+ }
+ return null;
+ }
+ function L7(n, e) {
+ var t;
+ if (e < 0)
+ throw T(new bj("Negative exponent"));
+ if (e == 0)
+ return qA;
+ if (e == 1 || SQ(n, qA) || SQ(n, U4))
+ return n;
+ if (!JLn(n, 0)) {
+ for (t = 1; !JLn(n, t); )
+ ++t;
+ return Fw(y2e(t * e), L7(MX(n, t), e));
+ }
+ return Ive(n, e);
+ }
+ function ome(n, e) {
+ var t, i, r;
+ if (B(n) === B(e))
+ return !0;
+ if (n == null || e == null || n.length != e.length)
+ return !1;
+ for (t = 0; t < n.length; ++t)
+ if (i = n[t], r = e[t], !(B(i) === B(r) || i != null && tt(i, r)))
+ return !1;
+ return !0;
+ }
+ function SLn(n) {
+ OG();
+ var e, t, i;
+ for (this.b = jWn, this.c = (sr(), mh), this.f = (v7n(), yWn), this.a = n, mG(this, new Oan()), oM(this), i = new E(n.b); i.a < i.c.c.length; )
+ t = u(y(i), 81), t.d || (e = new _F(A(M(RR, 1), rn, 81, 0, [t])), W(n.a, e));
+ }
+ function fme(n, e, t) {
+ var i, r, c, o, f, h;
+ if (!n || n.c.length == 0)
+ return null;
+ for (c = new nMn(e, !t), r = new E(n); r.a < r.c.c.length; )
+ i = u(y(r), 70), nY(c, (Vv(), new rj(i)));
+ return o = c.i, o.a = (h = c.n, c.e.b + h.d + h.a), o.b = (f = c.n, c.e.a + f.b + f.c), c;
+ }
+ function PLn(n) {
+ var e, t, i, r, c, o, f;
+ for (f = I8(n.a), vz(f, new Sdn()), t = null, r = f, c = 0, o = r.length; c < o && (i = r[c], i.k == (Qn(), Vt)); ++c)
+ e = u(k(i, (G(), ec)), 61), !(e != (J(), Gn) && e != Vn) && (t && u(k(t, gp), 15).Fc(i), t = i);
+ }
+ function hme(n, e, t) {
+ var i, r, c, o, f, h, l;
+ h = (Ln(e, n.c.length), u(n.c[e], 329)), h1(n, e), h.b / 2 >= t && (i = e, l = (h.c + h.a) / 2, o = l - t, h.c <= l - t && (r = new hD(h.c, o), J0(n, i++, r)), f = l + t, f <= h.a && (c = new hD(f, h.a), ib(i, n.c.length), e5(n.c, i, c)));
+ }
+ function yY(n) {
+ var e;
+ if (!n.c && n.g == null)
+ n.d = n.si(n.f), me(n, n.d), e = n.d;
+ else {
+ if (n.g == null)
+ return !0;
+ if (n.i == 0)
+ return !1;
+ e = u(n.g[n.i - 1], 47);
+ }
+ return e == n.b && null.km >= null.jm() ? (cM(n), yY(n)) : e.Ob();
+ }
+ function lme(n, e, t) {
+ var i, r, c, o, f;
+ if (f = t, !f && (f = YU(new Gp(), 0)), le(f, GKn, 1), VRn(n.c, e), o = TEe(n.a, e), o.gc() == 1)
+ ORn(u(o.Xb(0), 37), f);
+ else
+ for (c = 1 / o.gc(), r = o.Kc(); r.Ob(); )
+ i = u(r.Pb(), 37), ORn(i, yc(f, c));
+ mie(n.a, o, e), T7e(e), ce(f);
+ }
+ function ILn(n) {
+ if (this.a = n, n.c.i.k == (Qn(), Vt))
+ this.c = n.c, this.d = u(k(n.c.i, (G(), ec)), 61);
+ else if (n.d.i.k == Vt)
+ this.c = n.d, this.d = u(k(n.d.i, (G(), ec)), 61);
+ else
+ throw T(new Hn("Edge " + n + " is not an external edge."));
+ }
+ function OLn(n, e) {
+ var t, i, r;
+ r = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 3, r, n.b)), e ? e != n && (Oc(n, e.zb), G$(n, e.d), t = (i = e.c, i ?? e.zb), U$(n, t == null || An(t, e.zb) ? null : t)) : (Oc(n, null), G$(n, 0), U$(n, null));
+ }
+ function DLn(n) {
+ var e, t;
+ if (n.f) {
+ for (; n.n < n.o; ) {
+ if (e = u(n.j ? n.j.pi(n.n) : n.k.Xb(n.n), 72), t = e.ak(), I(t, 99) && u(t, 18).Bb & sc && (!n.e || t.Gj() != Mv || t.aj() != 0) && e.dd() != null)
+ return !0;
+ ++n.n;
+ }
+ return !1;
+ } else
+ return n.n < n.o;
+ }
+ function $Ln(n, e) {
+ var t;
+ this.e = (eb(), pe(n), eb(), $Q(n)), this.c = (pe(e), $Q(e)), Bz(this.e.Hd().dc() == this.c.Hd().dc()), this.d = ZDn(this.e), this.b = ZDn(this.c), t = fa(Zn, [q, rn], [5, 1], 5, [this.e.Hd().gc(), this.c.Hd().gc()], 2), this.a = t, nbe(this);
+ }
+ function FLn(n) {
+ !lR && (lR = zCe());
+ var e = n.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(t) {
+ return Y1e(t);
+ });
+ return '"' + e + '"';
+ }
+ function xLn(n) {
+ zW();
+ var e, t;
+ for (this.b = Hzn, this.c = Gzn, this.g = (p7n(), Kzn), this.d = (sr(), mh), this.a = n, GY(this), t = new E(n.b); t.a < t.c.c.length; )
+ e = u(y(t), 57), !e.a && njn(DIn(new Xq(), A(M(VA, 1), rn, 57, 0, [e])), n), e.e = new uC(e.d);
+ }
+ function ame(n) {
+ var e, t, i, r, c, o;
+ for (r = n.e.c.length, i = F(Os, Db, 15, r, 0, 1), o = new E(n.e); o.a < o.c.c.length; )
+ c = u(y(o), 144), i[c.b] = new Ct();
+ for (t = new E(n.c); t.a < t.c.c.length; )
+ e = u(y(t), 282), i[e.c.b].Fc(e), i[e.d.b].Fc(e);
+ return i;
+ }
+ function dme(n) {
+ var e, t, i, r, c, o, f;
+ for (f = nh(n.c.length), r = new E(n); r.a < r.c.c.length; ) {
+ for (i = u(y(r), 10), o = new hi(), c = ei(i), t = new re(ue(c.a.Kc(), new Mn())); Se(t); )
+ e = u(ve(t), 17), e.c.i == e.d.i || ci(o, e.d.i);
+ f.c[f.c.length] = o;
+ }
+ return f;
+ }
+ function bme(n, e) {
+ var t, i, r, c, o;
+ if (t = u(Rn(n.a, 4), 126), o = t == null ? 0 : t.length, e >= o)
+ throw T(new Q0(e, o));
+ return r = t[e], o == 1 ? i = null : (i = F(bH, qB, 415, o - 1, 0, 1), pc(t, 0, i, 0, e), c = o - e - 1, c > 0 && pc(t, e + 1, i, e, c)), i4(n, i), eLn(n, e, r), r;
+ }
+ function z2() {
+ z2 = N, Dp = u(D(R((jG(), fc).qb), 6), 34), Op = u(D(R(fc.qb), 3), 34), kH = u(D(R(fc.qb), 4), 34), yH = u(D(R(fc.qb), 5), 18), QT(Dp), QT(Op), QT(kH), QT(yH), hee = new Ku(A(M(uu, 1), gg, 170, 0, [Dp, Op]));
+ }
+ function LLn(n, e) {
+ var t;
+ this.d = new Bv(), this.b = e, this.e = new kr(e.qf()), t = n.u.Hc((Tu(), Ty)), n.u.Hc(Zh) ? n.D ? this.a = t && !e.If() : this.a = !0 : n.u.Hc(ql) ? t ? this.a = !(e.zf().Kc().Ob() || e.Bf().Kc().Ob()) : this.a = !1 : this.a = !1;
+ }
+ function NLn(n, e) {
+ var t, i, r, c;
+ for (t = n.o.a, c = u(u(ct(n.r, e), 21), 84).Kc(); c.Ob(); )
+ r = u(c.Pb(), 111), r.e.a = (i = r.b, i.Xe((Xe(), Bu)) ? i.Hf() == (J(), Gn) ? -i.rf().a - K(Y(i.We(Bu))) : t + K(Y(i.We(Bu))) : i.Hf() == (J(), Gn) ? -i.rf().a : t);
+ }
+ function BLn(n, e) {
+ var t, i, r, c;
+ t = u(k(n, (nn(), ls)), 103), c = u(hn(e, av), 61), r = u(k(n, Nt), 98), r != (Ai(), jf) && r != Hl ? c == (J(), Xr) && (c = mZ(e, t), c == Xr && (c = B2(t))) : (i = IRn(e), i > 0 ? c = B2(t) : c = b7(B2(t))), gr(e, av, c);
+ }
+ function wme(n, e) {
+ var t, i, r, c, o;
+ for (o = n.j, e.a != e.b && wi(o, new Ubn()), r = o.c.length / 2 | 0, i = 0; i < r; i++)
+ c = (Ln(i, o.c.length), u(o.c[i], 113)), c.c && si(c.d, e.a);
+ for (t = r; t < o.c.length; t++)
+ c = (Ln(t, o.c.length), u(o.c[t], 113)), c.c && si(c.d, e.b);
+ }
+ function gme(n, e, t) {
+ var i, r, c;
+ return i = n.c[e.c.p][e.p], r = n.c[t.c.p][t.p], i.a != null && r.a != null ? (c = TD(i.a, r.a), c < 0 ? H7(n, e, t) : c > 0 && H7(n, t, e), c) : i.a != null ? (H7(n, e, t), -1) : r.a != null ? (H7(n, t, e), 1) : 0;
+ }
+ function RLn(n, e) {
+ var t, i, r, c;
+ n.ej() ? (t = n.Vi(), c = n.fj(), ++n.j, n.Hi(t, n.oi(t, e)), i = n.Zi(3, null, e, t, c), n.bj() ? (r = n.cj(e, null), r ? (r.Ei(i), r.Fi()) : n.$i(i)) : n.$i(i)) : (eTn(n, e), n.bj() && (r = n.cj(e, null), r && r.Fi()));
+ }
+ function iM(n, e) {
+ var t, i, r, c, o;
+ for (o = _c(n.e.Tg(), e), r = new Jy(), t = u(n.g, 119), c = n.i; --c >= 0; )
+ i = t[c], o.rl(i.ak()) && me(r, i);
+ !S_n(n, r) && Hu(n.e) && qp(n, e.$j() ? fl(n, 6, e, (Pn(), cr), null, -1, !1) : fl(n, e.Kj() ? 2 : 1, e, null, null, -1, !1));
+ }
+ function l4() {
+ l4 = N;
+ var n, e;
+ for (fp = F(vg, q, 91, 32, 0, 1), wm = F(vg, q, 91, 32, 0, 1), n = 1, e = 0; e <= 18; e++)
+ fp[e] = m7(n), wm[e] = m7(Ph(n, e)), n = Ni(n, 5);
+ for (; e < wm.length; e++)
+ fp[e] = Fw(fp[e - 1], fp[1]), wm[e] = Fw(wm[e - 1], (yl(), pR));
+ }
+ function pme(n, e) {
+ var t, i, r, c, o;
+ return n.a == (f4(), Cm) ? !0 : (c = e.a.c, t = e.a.c + e.a.b, !(e.j && (i = e.A, o = i.c.c.a - i.o.a / 2, r = c - (i.n.a + i.o.a), r > o) || e.q && (i = e.C, o = i.c.c.a - i.o.a / 2, r = i.n.a - t, r > o)));
+ }
+ function vme(n, e) {
+ var t;
+ le(e, "Partition preprocessing", 1), t = u(es(gt(qr(gt(new $n(null, new xn(n.a, 16)), new m0n()), new k0n()), new y0n()), pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [(hf(), hs)]))), 15), Rt(t.Oc(), new j0n()), ce(e);
+ }
+ function _Ln(n) {
+ c$();
+ var e, t, i, r, c, o, f;
+ for (t = new wa(), r = new E(n.e.b); r.a < r.c.c.length; )
+ for (i = u(y(r), 29), o = new E(i.a); o.a < o.c.c.length; )
+ c = u(y(o), 10), f = n.g[c.p], e = u(Ld(t, f), 15), e || (e = new X(), Sa(t, f, e)), e.Fc(c);
+ return t;
+ }
+ function mme(n, e) {
+ var t, i, r, c, o;
+ for (r = e.b.b, n.a = F(Os, Db, 15, r, 0, 1), n.b = F(_u, wh, 25, r, 16, 1), o = _e(e.b, 0); o.b != o.d.c; )
+ c = u(Re(o), 86), n.a[c.g] = new Ct();
+ for (i = _e(e.a, 0); i.b != i.d.c; )
+ t = u(Re(i), 188), n.a[t.b.g].Fc(t), n.a[t.c.g].Fc(t);
+ }
+ function KLn(n) {
+ var e;
+ return n.Db & 64 ? yo(n) : (e = new Ns(yo(n)), e.a += " (startX: ", mw(e, n.j), e.a += ", startY: ", mw(e, n.k), e.a += ", endX: ", mw(e, n.b), e.a += ", endY: ", mw(e, n.c), e.a += ", identifier: ", dr(e, n.d), e.a += ")", e.a);
+ }
+ function jY(n) {
+ var e;
+ return n.Db & 64 ? r6(n) : (e = new Ns(r6(n)), e.a += " (ordered: ", r1(e, (n.Bb & 256) != 0), e.a += ", unique: ", r1(e, (n.Bb & 512) != 0), e.a += ", lowerBound: ", eO(e, n.s), e.a += ", upperBound: ", eO(e, n.t), e.a += ")", e.a);
+ }
+ function HLn(n, e, t, i, r, c, o, f) {
+ var h;
+ return I(n.Cb, 88) && jb(Iu(u(n.Cb, 88)), 4), Oc(n, t), n.f = i, Y3(n, r), n4(n, c), J3(n, o), Z3(n, !1), p1(n, !0), e4(n, f), g1(n, !0), d1(n, 0), n.b = 0, lb(n, 1), h = af(n, e, null), h && h.Fi(), SF(n, !1), n;
+ }
+ function qLn(n, e) {
+ var t, i, r, c;
+ return t = u(mc(n.a, e), 512), t || (i = new y$(e), r = (CC(), pf ? null : i.c), c = Yu(r, 0, j.Math.max(0, aE(r, eu(46)))), Gue(i, qLn(n, c)), (pf ? null : i.c).length == 0 && Mjn(i, new $H()), yr(n.a, pf ? null : i.c, i), i);
+ }
+ function kme(n, e) {
+ var t;
+ n.b = e, n.g = new X(), t = Tme(n.b), n.e = t, n.f = t, n.c = on(sn(k(n.b, (WT(), nrn)))), n.a = Y(k(n.b, (Xe(), Tp))), n.a == null && (n.a = 1), K(n.a) > 1 ? n.e *= K(n.a) : n.f /= K(n.a), Zwe(n), rpe(n), _7e(n), H(n.b, (a6(), nS), n.g);
+ }
+ function GLn(n, e, t) {
+ var i, r, c, o, f, h;
+ for (i = 0, h = t, e || (i = t * (n.c.length - 1), h *= -1), c = new E(n); c.a < c.c.c.length; ) {
+ for (r = u(y(c), 10), H(r, (nn(), Qf), (oh(), FP)), r.o.a = i, f = k1(r, (J(), Vn)).Kc(); f.Ob(); )
+ o = u(f.Pb(), 11), o.n.a = i;
+ i += h;
+ }
+ }
+ function EY(n, e, t) {
+ var i, r, c;
+ n.ej() ? (c = n.fj(), a7(n, e, t), i = n.Zi(3, null, t, e, c), n.bj() ? (r = n.cj(t, null), n.ij() && (r = n.jj(t, r)), r ? (r.Ei(i), r.Fi()) : n.$i(i)) : n.$i(i)) : (a7(n, e, t), n.bj() && (r = n.cj(t, null), r && r.Fi()));
+ }
+ function U2(n, e, t) {
+ var i, r, c, o, f, h;
+ return f = n.Gk(t), f != t ? (o = n.g[e], h = f, k5(n, e, n.oi(e, h)), c = o, n.gi(e, h, c), n.rk() && (i = t, r = n.dj(i, null), !u(f, 49).eh() && (r = n.cj(h, r)), r && r.Fi()), Hu(n.e) && qp(n, n.Zi(9, t, f, e, !1)), f) : t;
+ }
+ function yme(n, e) {
+ var t, i, r, c;
+ for (i = new E(n.a.a); i.a < i.c.c.length; )
+ t = u(y(i), 189), t.g = !0;
+ for (c = new E(n.a.b); c.a < c.c.c.length; )
+ r = u(y(c), 81), r.k = on(sn(n.e.Kb(new Pi(r, e)))), r.d.g = r.d.g & on(sn(n.e.Kb(new Pi(r, e))));
+ return n;
+ }
+ function zLn(n) {
+ var e, t, i, r, c;
+ if (t = (e = u(xo(Yi), 9), new ms(e, u(bo(e, e.length), 9), 0)), c = u(k(n, (G(), Mu)), 10), c)
+ for (r = new E(c.j); r.a < r.c.c.length; )
+ i = u(y(r), 11), B(k(i, rt)) === B(n) && E5(new uf(i.b)) && ko(t, i.j);
+ return t;
+ }
+ function ULn(n, e, t) {
+ var i, r, c, o, f;
+ if (!n.d[t.p]) {
+ for (r = new re(ue(ei(t).a.Kc(), new Mn())); Se(r); ) {
+ for (i = u(ve(r), 17), f = i.d.i, o = new re(ue(Lr(f).a.Kc(), new Mn())); Se(o); )
+ c = u(ve(o), 17), c.c.i == e && (n.a[c.p] = !0);
+ ULn(n, e, f);
+ }
+ n.d[t.p] = !0;
+ }
+ }
+ function jme(n, e) {
+ var t, i, r, c, o, f, h;
+ if (i = YDn(n.Db & 254), i == 1)
+ n.Eb = null;
+ else if (c = va(n.Eb), i == 2)
+ r = ux(n, e), n.Eb = c[r == 0 ? 1 : 0];
+ else {
+ for (o = F(Zn, rn, 1, i - 1, 5, 1), t = 2, f = 0, h = 0; t <= 128; t <<= 1)
+ t == e ? ++f : n.Db & t && (o[h++] = c[f++]);
+ n.Eb = o;
+ }
+ n.Db &= ~e;
+ }
+ function Eme(n, e) {
+ var t, i, r, c, o;
+ for (i = (!e.s && (e.s = new V(uu, e, 21, 17)), e.s), c = null, r = 0, o = i.i; r < o; ++r)
+ switch (t = u(D(i, r), 170), Pd(Er(n, t))) {
+ case 4:
+ case 5:
+ case 6: {
+ !c && (c = new X()), c.c[c.c.length] = t;
+ break;
+ }
+ }
+ return c || (Pn(), Pn(), cr);
+ }
+ function CY(n) {
+ var e;
+ switch (e = 0, n) {
+ case 105:
+ e = 2;
+ break;
+ case 109:
+ e = 8;
+ break;
+ case 115:
+ e = 4;
+ break;
+ case 120:
+ e = 16;
+ break;
+ case 117:
+ e = 32;
+ break;
+ case 119:
+ e = 64;
+ break;
+ case 70:
+ e = 256;
+ break;
+ case 72:
+ e = 128;
+ break;
+ case 88:
+ e = 512;
+ break;
+ case 44:
+ e = Eo;
+ }
+ return e;
+ }
+ function Cme(n, e, t, i, r) {
+ var c, o, f, h;
+ if (B(n) === B(e) && i == r) {
+ HBn(n, i, t);
+ return;
+ }
+ for (f = 0; f < i; f++) {
+ for (o = 0, c = n[f], h = 0; h < r; h++)
+ o = Hi(Hi(Ni(ui(c, fr), ui(e[h], fr)), ui(t[f + h], fr)), ui(ge(o), fr)), t[f + h] = ge(o), o = Y0(o, 32);
+ t[f + r] = ge(o);
+ }
+ }
+ function Tme(n) {
+ var e, t, i, r, c, o, f, h, l, a, d;
+ for (a = 0, l = 0, r = n.a, f = r.a.gc(), i = r.a.ec().Kc(); i.Ob(); )
+ t = u(i.Pb(), 561), e = (t.b && uL(t), t.a), d = e.a, o = e.b, a += d + o, l += d * o;
+ return h = j.Math.sqrt(400 * f * l - 4 * l + a * a) + a, c = 2 * (100 * f - 1), c == 0 ? h : h / c;
+ }
+ function WLn(n, e) {
+ e.b != 0 && (isNaN(n.s) ? n.s = K((ne(e.b != 0), Y(e.a.a.c))) : n.s = j.Math.min(n.s, K((ne(e.b != 0), Y(e.a.a.c)))), isNaN(n.c) ? n.c = K((ne(e.b != 0), Y(e.c.b.c))) : n.c = j.Math.max(n.c, K((ne(e.b != 0), Y(e.c.b.c)))));
+ }
+ function j6(n) {
+ var e, t, i, r;
+ for (e = null, i = cl(of(A(M(gf, 1), rn, 20, 0, [(!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), (!n.c && (n.c = new Fn(he, n, 5, 8)), n.c)]))); Se(i); )
+ if (t = u(ve(i), 82), r = Ir(t), !e)
+ e = At(r);
+ else if (e != At(r))
+ return !0;
+ return !1;
+ }
+ function $x(n, e) {
+ var t, i, r, c;
+ n.ej() ? (t = n.i, c = n.fj(), F8(n, e), i = n.Zi(3, null, e, t, c), n.bj() ? (r = n.cj(e, null), n.ij() && (r = n.jj(e, r)), r ? (r.Ei(i), r.Fi()) : n.$i(i)) : n.$i(i)) : (F8(n, e), n.bj() && (r = n.cj(e, null), r && r.Fi()));
+ }
+ function XLn(n, e, t) {
+ var i, r, c;
+ n.ej() ? (c = n.fj(), ++n.j, n.Hi(e, n.oi(e, t)), i = n.Zi(3, null, t, e, c), n.bj() ? (r = n.cj(t, null), r ? (r.Ei(i), r.Fi()) : n.$i(i)) : n.$i(i)) : (++n.j, n.Hi(e, n.oi(e, t)), n.bj() && (r = n.cj(t, null), r && r.Fi()));
+ }
+ function Mme(n) {
+ var e, t, i, r;
+ for (r = n.length, e = null, i = 0; i < r; i++)
+ t = (Me(i, n.length), n.charCodeAt(i)), Pf(".*+?{[()|\\^$", eu(t)) >= 0 ? (e || (e = new zv(), i > 0 && dr(e, n.substr(0, i))), e.a += "\\", b3(e, t & Wt)) : e && b3(e, t & Wt);
+ return e ? e.a : n;
+ }
+ function Ame(n) {
+ var e;
+ if (!n.a)
+ throw T(new $r("IDataType class expected for layout option " + n.f));
+ if (e = xae(n.a), e == null)
+ throw T(new $r("Couldn't create new instance of property '" + n.f + "'. " + HHn + (Sh(Fy), Fy.k) + Etn));
+ return u(e, 414);
+ }
+ function Fx(n) {
+ var e, t, i, r, c;
+ return c = n.eh(), c && c.kh() && (r = gl(n, c), r != c) ? (t = n.Vg(), i = (e = n.Vg(), e >= 0 ? n.Qg(null) : n.eh().ih(n, -1 - e, null, null)), n.Rg(u(r, 49), t), i && i.Fi(), n.Lg() && n.Mg() && t > -1 && et(n, new gi(n, 9, t, c, r)), r) : c;
+ }
+ function VLn(n) {
+ var e, t, i, r, c, o, f, h;
+ for (o = 0, c = n.f.e, i = 0; i < c.c.length; ++i)
+ for (f = (Ln(i, c.c.length), u(c.c[i], 144)), r = i + 1; r < c.c.length; ++r)
+ h = (Ln(r, c.c.length), u(c.c[r], 144)), t = ll(f.d, h.d), e = t - n.a[f.b][h.b], o += n.i[f.b][h.b] * e * e;
+ return o;
+ }
+ function Sme(n, e) {
+ var t;
+ if (!ai(e, (nn(), Hc)) && (t = Z3e(u(k(e, $cn), 360), u(k(n, Hc), 163)), H(e, $cn, t), !Se(new re(ue(_h(e).a.Kc(), new Mn())))))
+ switch (t.g) {
+ case 1:
+ H(e, Hc, (As(), Sm));
+ break;
+ case 2:
+ H(e, Hc, (As(), Pm));
+ }
+ }
+ function Pme(n, e) {
+ var t;
+ R7e(n), n.a = (t = new JI(), Rt(new $n(null, new xn(e.d, 16)), new V5n(t)), t), V8e(n, u(k(e.b, (nn(), N_)), 376)), Hpe(n), Fme(n), e4e(n), qpe(n), Bje(n, e), Rt(qr(new $n(null, uAn(dhe(n.b).a)), new Wbn()), new Xbn()), e.a = !1, n.a = null;
+ }
+ function QLn() {
+ UJ.call(this, R4, (dd(), Ane)), this.p = null, this.a = null, this.f = null, this.n = null, this.g = null, this.c = null, this.i = null, this.j = null, this.d = null, this.b = null, this.e = null, this.k = null, this.o = null, this.s = null, this.q = !1, this.r = !1;
+ }
+ function a4() {
+ a4 = N, aH = new a2(aHn, 0), YP = new a2("INSIDE_SELF_LOOPS", 1), ZP = new a2("MULTI_EDGES", 2), JP = new a2("EDGE_LABELS", 3), lH = new a2("PORTS", 4), QP = new a2("COMPOUND", 5), VP = new a2("CLUSTERS", 6), hH = new a2("DISCONNECTED", 7);
+ }
+ function JLn(n, e) {
+ var t, i, r;
+ if (e == 0)
+ return (n.a[0] & 1) != 0;
+ if (e < 0)
+ throw T(new bj("Negative bit address"));
+ if (r = e >> 5, r >= n.d)
+ return n.e < 0;
+ if (t = n.a[r], e = 1 << (e & 31), n.e < 0) {
+ if (i = bOn(n), r < i)
+ return !1;
+ i == r ? t = -t : t = ~t;
+ }
+ return (t & e) != 0;
+ }
+ function Ime(n, e, t, i) {
+ var r;
+ u(t.b, 65), u(t.b, 65), u(i.b, 65), u(i.b, 65), r = ji(Qr(u(t.b, 65).c), u(i.b, 65).c), AE(r, aLn(u(t.b, 65), u(i.b, 65), r)), u(i.b, 65), u(i.b, 65), u(i.b, 65).c.a + r.a, u(i.b, 65).c.b + r.b, u(i.b, 65), Jc(i.a, new BU(n, e, i));
+ }
+ function TY(n, e) {
+ var t, i, r, c, o, f, h;
+ if (c = e.e, c) {
+ for (t = Fx(c), i = u(n.g, 674), o = 0; o < n.i; ++o)
+ if (h = i[o], nx(h) == t && (r = (!h.d && (h.d = new Yt(ar, h, 1)), h.d), f = u(t.ah(Qx(c, c.Cb, c.Db >> 16)), 15).Xc(c), f < r.i))
+ return TY(n, u(D(r, f), 87));
+ }
+ return e;
+ }
+ function b(n, e, t) {
+ var i = RA, r, c = i[n], o = c instanceof Array ? c[0] : null;
+ c && !o ? s = c : (s = (r = e && e.prototype, !r && (r = RA[e]), nle(r)), s.hm = t, !e && (s.im = Xg), i[n] = s);
+ for (var f = 3; f < arguments.length; ++f)
+ arguments[f].prototype = s;
+ o && (s.gm = o);
+ }
+ function Se(n) {
+ for (var e; !u(pe(n.a), 47).Ob(); ) {
+ if (n.d = $we(n), !n.d)
+ return !1;
+ if (n.a = u(n.d.Pb(), 47), I(n.a, 39)) {
+ if (e = u(n.a, 39), n.a = e.a, !n.b && (n.b = new gw()), hl(n.b, n.d), e.b)
+ for (; !Hv(e.b); )
+ hl(n.b, u(Jfe(e.b), 47));
+ n.d = e.d;
+ }
+ }
+ return !0;
+ }
+ function MY(n, e) {
+ var t, i, r, c, o;
+ for (c = e == null ? 0 : n.b.se(e), i = (t = n.a.get(c), t ?? new Array()), o = 0; o < i.length; o++)
+ if (r = i[o], n.b.re(e, r.cd()))
+ return i.length == 1 ? (i.length = 0, yue(n.a, c)) : i.splice(o, 1), --n.c, cC(n.b), r.dd();
+ return null;
+ }
+ function AY(n, e) {
+ var t, i, r, c;
+ for (r = 1, e.j = !0, c = null, i = new E(Hw(e)); i.a < i.c.c.length; )
+ t = u(y(i), 213), n.c[t.c] || (n.c[t.c] = !0, c = TT(t, e), t.f ? r += AY(n, c) : !c.j && t.a == t.e.e - t.d.e && (t.f = !0, ci(n.p, t), r += AY(n, c)));
+ return r;
+ }
+ function Ome(n) {
+ var e, t, i;
+ for (t = new E(n.a.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 81), i = (_n(0), 0), i > 0 && (!(el(n.a.c) && e.n.d) && !(i3(n.a.c) && e.n.b) && (e.g.d += j.Math.max(0, i / 2 - 0.5)), !(el(n.a.c) && e.n.a) && !(i3(n.a.c) && e.n.c) && (e.g.a -= i - 1));
+ }
+ function YLn(n) {
+ var e, t, i, r, c;
+ if (r = new X(), c = zBn(n, r), e = u(k(n, (G(), Mu)), 10), e)
+ for (i = new E(e.j); i.a < i.c.c.length; )
+ t = u(y(i), 11), B(k(t, rt)) === B(n) && (c = j.Math.max(c, zBn(t, r)));
+ return r.c.length == 0 || H(n, Sg, c), c != -1 ? r : null;
+ }
+ function ZLn(n, e, t) {
+ var i, r, c, o, f, h;
+ c = u(un(e.e, 0), 17).c, i = c.i, r = i.k, h = u(un(t.g, 0), 17).d, o = h.i, f = o.k, r == (Qn(), pi) ? H(n, (G(), Xo), u(k(i, Xo), 11)) : H(n, (G(), Xo), c), f == pi ? H(n, (G(), Js), u(k(o, Js), 11)) : H(n, (G(), Js), h);
+ }
+ function nNn(n, e) {
+ var t, i, r, c;
+ for (c = ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15))), t = c & n.b.length - 1, r = null, i = n.b[t]; i; r = i, i = i.a)
+ if (i.d == c && $f(i.i, e))
+ return r ? r.a = i.a : n.b[t] = i.a, W9n(i.c, i.f), $9(i.b, i.e), --n.f, ++n.e, !0;
+ return !1;
+ }
+ function SY(n, e) {
+ var t, i, r, c, o;
+ return e &= 63, t = n.h, i = (t & tk) != 0, i && (t |= -1048576), e < 22 ? (o = t >> e, c = n.m >> e | t << 22 - e, r = n.l >> e | n.m << 22 - e) : e < 44 ? (o = i ? Uh : 0, c = t >> e - 22, r = n.m >> e - 22 | t << 44 - e) : (o = i ? Uh : 0, c = i ? Lu : 0, r = t >> e - 44), Nc(r & Lu, c & Lu, o & Uh);
+ }
+ function xx(n) {
+ var e, t, i, r, c, o;
+ for (this.c = new X(), this.d = n, i = xt, r = xt, e = Qt, t = Qt, o = _e(n, 0); o.b != o.d.c; )
+ c = u(Re(o), 8), i = j.Math.min(i, c.a), r = j.Math.min(r, c.b), e = j.Math.max(e, c.a), t = j.Math.max(t, c.b);
+ this.a = new ks(i, r, e - i, t - r);
+ }
+ function eNn(n, e) {
+ var t, i, r, c, o, f;
+ for (c = new E(n.b); c.a < c.c.c.length; )
+ for (r = u(y(c), 29), f = new E(r.a); f.a < f.c.c.length; )
+ for (o = u(y(f), 10), o.k == (Qn(), Qu) && W2(o, e), i = new re(ue(ei(o).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), BOn(t, e);
+ }
+ function PY(n) {
+ var e, t, i;
+ this.c = n, i = u(k(n, (nn(), ls)), 103), e = K(Y(k(n, zS))), t = K(Y(k(n, Dsn))), i == (sr(), Ys) || i == Ao || i == mh ? this.b = e * t : this.b = 1 / (e * t), this.j = K(Y(k(n, $g))), this.e = K(Y(k(n, M0))), this.f = n.b.c.length;
+ }
+ function Dme(n) {
+ var e, t;
+ for (n.e = F(be, Le, 25, n.p.c.length, 15, 1), n.k = F(be, Le, 25, n.p.c.length, 15, 1), t = new E(n.p); t.a < t.c.c.length; )
+ e = u(y(t), 10), n.e[e.p] = $h(new re(ue(Lr(e).a.Kc(), new Mn()))), n.k[e.p] = $h(new re(ue(ei(e).a.Kc(), new Mn())));
+ }
+ function $me(n) {
+ var e, t, i, r, c, o;
+ for (r = 0, n.q = new X(), e = new hi(), o = new E(n.p); o.a < o.c.c.length; ) {
+ for (c = u(y(o), 10), c.p = r, i = new re(ue(ei(c).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), ci(e, t.d.i);
+ e.a.Bc(c) != null, W(n.q, new S5(e)), e.a.$b(), ++r;
+ }
+ }
+ function n0() {
+ n0 = N, jon = new md(20), uYn = new tr((Xe(), ed), jon), Con = new tr(td, 20), eYn = new tr(Tp, D4), jP = new tr(_P, Q(1)), oYn = new tr(iH, (qn(), !0)), kon = py, iYn = nd, rYn = Kg, cYn = Rl, tYn = _g, yon = ky, sYn = cw, fYn = (PV(), nYn), Eon = ZJn;
+ }
+ function tNn(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (n.a.f > 0 && I(e, 42) && (n.a.qj(), l = u(e, 42), h = l.cd(), c = h == null ? 0 : mt(h), o = dU(n.a, c), t = n.a.d[o], t)) {
+ for (i = u(t.g, 367), a = t.i, f = 0; f < a; ++f)
+ if (r = i[f], r.Sh() == c && r.Fb(l))
+ return tNn(n, l), !0;
+ }
+ return !1;
+ }
+ function Fme(n) {
+ var e, t, i, r;
+ for (r = u(ct(n.a, (Vw(), PS)), 15).Kc(); r.Ob(); )
+ i = u(r.Pb(), 101), t = (e = k2(i.k), e.Hc((J(), Kn)) ? e.Hc(Vn) ? e.Hc(ae) ? e.Hc(Gn) ? null : tXn : rXn : iXn : eXn), d3(n, i, t[0], (Hd(), g0), 0), d3(n, i, t[1], $l, 1), d3(n, i, t[2], p0, 1);
+ }
+ function xme(n, e) {
+ var t, i;
+ t = fke(e), s7e(n, e, t), sxn(n.a, u(k(qi(e.b), (G(), vp)), 230)), Fke(n), ove(n, e), i = F(be, Le, 25, e.b.j.c.length, 15, 1), pL(n, e, (J(), Kn), i, t), pL(n, e, Vn, i, t), pL(n, e, ae, i, t), pL(n, e, Gn, i, t), n.a = null, n.c = null, n.b = null;
+ }
+ function IY() {
+ IY = N, Zon = (ET(), IK), qYn = new In(htn, Zon), KYn = new In(ltn, (qn(), !0)), Q(-1), BYn = new In(atn, Q(-1)), Q(-1), RYn = new In(dtn, Q(-1)), HYn = new In(btn, !1), GYn = new In(wtn, !0), _Yn = new In(wB, !1), zYn = new In(gtn, -1);
+ }
+ function OY(n, e, t) {
+ switch (e) {
+ case 7:
+ !n.e && (n.e = new Fn(bi, n, 7, 4)), de(n.e), !n.e && (n.e = new Fn(bi, n, 7, 4)), $t(n.e, u(t, 14));
+ return;
+ case 8:
+ !n.d && (n.d = new Fn(bi, n, 8, 5)), de(n.d), !n.d && (n.d = new Fn(bi, n, 8, 5)), $t(n.d, u(t, 14));
+ return;
+ }
+ SJ(n, e, t);
+ }
+ function DY(n, e) {
+ var t, i, r, c, o;
+ if (B(e) === B(n))
+ return !0;
+ if (!I(e, 15) || (o = u(e, 15), n.gc() != o.gc()))
+ return !1;
+ for (c = o.Kc(), i = n.Kc(); i.Ob(); )
+ if (t = i.Pb(), r = c.Pb(), !(B(t) === B(r) || t != null && tt(t, r)))
+ return !1;
+ return !0;
+ }
+ function Lme(n, e) {
+ var t, i, r, c;
+ for (c = u(es(qr(qr(new $n(null, new xn(e.b, 16)), new Bdn()), new Rdn()), pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [(hf(), hs)]))), 15), c.Jc(new _dn()), t = 0, r = c.Kc(); r.Ob(); )
+ i = u(r.Pb(), 11), i.p == -1 && FY(n, i, t++);
+ }
+ function iNn(n) {
+ switch (n.g) {
+ case 0:
+ return new U4n();
+ case 1:
+ return new I4n();
+ case 2:
+ return new P4n();
+ case 3:
+ return new Akn();
+ case 4:
+ return new bCn();
+ default:
+ throw T(new Hn("No implementation is available for the node placer " + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function rNn(n) {
+ switch (n.g) {
+ case 0:
+ return new lW();
+ case 1:
+ return new D4n();
+ case 2:
+ return new j4n();
+ case 3:
+ return new E4n();
+ case 4:
+ return new Pkn();
+ default:
+ throw T(new Hn("No implementation is available for the cycle breaker " + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function $Y() {
+ $Y = N, CYn = new In(rtn, Q(0)), TYn = new In(ctn, 0), xon = (f7(), CP), jYn = new In(aB, xon), Q(0), yYn = new In(dB, Q(1)), Non = (sT(), PK), MYn = new In(utn, Non), Bon = ($C(), TK), AYn = new In(stn, Bon), Lon = (qT(), SK), EYn = new In(otn, Lon);
+ }
+ function Nme(n, e, t) {
+ var i;
+ i = null, e && (i = e.d), v6(n, new e3(e.n.a - i.b + t.a, e.n.b - i.d + t.b)), v6(n, new e3(e.n.a - i.b + t.a, e.n.b + e.o.b + i.a + t.b)), v6(n, new e3(e.n.a + e.o.a + i.c + t.a, e.n.b - i.d + t.b)), v6(n, new e3(e.n.a + e.o.a + i.c + t.a, e.n.b + e.o.b + i.a + t.b));
+ }
+ function FY(n, e, t) {
+ var i, r, c;
+ for (e.p = t, c = cl(of(A(M(gf, 1), rn, 20, 0, [new Hp(e), new n2(e)]))); Se(c); )
+ i = u(ve(c), 11), i.p == -1 && FY(n, i, t);
+ if (e.i.k == (Qn(), pi))
+ for (r = new E(e.i.j); r.a < r.c.c.length; )
+ i = u(y(r), 11), i != e && i.p == -1 && FY(n, i, t);
+ }
+ function cNn(n) {
+ var e, t, i, r, c;
+ if (r = u(es(fle(FMn(n)), pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [(hf(), hs)]))), 15), i = O4, r.gc() >= 2)
+ for (t = r.Kc(), e = Y(t.Pb()); t.Ob(); )
+ c = e, e = Y(t.Pb()), i = j.Math.min(i, (_n(e), e - (_n(c), c)));
+ return i;
+ }
+ function Bme(n, e) {
+ var t, i, r, c, o;
+ i = new Ct(), Ht(i, e, i.c.b, i.c);
+ do
+ for (t = (ne(i.b != 0), u(Cs(i, i.a.a), 86)), n.b[t.g] = 1, c = _e(t.d, 0); c.b != c.d.c; )
+ r = u(Re(c), 188), o = r.c, n.b[o.g] == 1 ? Ke(n.a, r) : n.b[o.g] == 2 ? n.b[o.g] = 1 : Ht(i, o, i.c.b, i.c);
+ while (i.b != 0);
+ }
+ function Rme(n, e) {
+ var t, i, r;
+ if (B(e) === B(pe(n)))
+ return !0;
+ if (!I(e, 15) || (i = u(e, 15), r = n.gc(), r != i.gc()))
+ return !1;
+ if (I(i, 54)) {
+ for (t = 0; t < r; t++)
+ if (!$f(n.Xb(t), i.Xb(t)))
+ return !1;
+ return !0;
+ } else
+ return Wpe(n.Kc(), i.Kc());
+ }
+ function uNn(n, e) {
+ var t, i;
+ if (n.c.length != 0) {
+ if (n.c.length == 2)
+ W2((Ln(0, n.c.length), u(n.c[0], 10)), (cs(), kh)), W2((Ln(1, n.c.length), u(n.c[1], 10)), _l);
+ else
+ for (i = new E(n); i.a < i.c.c.length; )
+ t = u(y(i), 10), W2(t, e);
+ n.c = F(Zn, rn, 1, 0, 5, 1);
+ }
+ }
+ function _me(n) {
+ var e, t;
+ if (n.c.length != 2)
+ throw T(new $r("Order only allowed for two paths."));
+ e = (Ln(0, n.c.length), u(n.c[0], 17)), t = (Ln(1, n.c.length), u(n.c[1], 17)), e.d.i != t.c.i && (n.c = F(Zn, rn, 1, 0, 5, 1), n.c[n.c.length] = t, n.c[n.c.length] = e);
+ }
+ function Kme(n, e) {
+ var t, i, r, c, o, f;
+ for (i = new wa(), o = jC(new Ku(n.g)), c = o.a.ec().Kc(); c.Ob(); ) {
+ if (r = u(c.Pb(), 10), !r) {
+ oa(e, "There are no classes in a balanced layout.");
+ break;
+ }
+ f = n.j[r.p], t = u(Ld(i, f), 15), t || (t = new X(), Sa(i, f, t)), t.Fc(r);
+ }
+ return i;
+ }
+ function Hme(n, e, t) {
+ var i, r, c, o, f, h, l;
+ if (t)
+ for (c = t.a.length, i = new ha(c), f = (i.b - i.a) * i.c < 0 ? (Z1(), Ql) : new il(i); f.Ob(); )
+ o = u(f.Pb(), 19), h = y3(t, o.a), h && (l = Q0e(Dh(h, $B), e), it(n.f, l, h), r = Uf in h.a, r && Q5(l, Dh(h, Uf)), YT(h, l), lY(h, l));
+ }
+ function qme(n, e) {
+ var t, i, r, c, o;
+ for (le(e, "Port side processing", 1), o = new E(n.a); o.a < o.c.c.length; )
+ r = u(y(o), 10), wRn(r);
+ for (i = new E(n.b); i.a < i.c.c.length; )
+ for (t = u(y(i), 29), c = new E(t.a); c.a < c.c.c.length; )
+ r = u(y(c), 10), wRn(r);
+ ce(e);
+ }
+ function sNn(n, e, t) {
+ var i, r, c, o, f;
+ if (r = n.f, !r && (r = u(n.a.a.ec().Kc().Pb(), 57)), g6(r, e, t), n.a.a.gc() != 1)
+ for (i = e * t, o = n.a.a.ec().Kc(); o.Ob(); )
+ c = u(o.Pb(), 57), c != r && (f = S2(c), f.f.d ? (c.d.d += i + bf, c.d.a -= i + bf) : f.f.a && (c.d.a -= i + bf));
+ }
+ function Lx(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p;
+ return o = t - n, f = i - e, c = j.Math.atan2(o, f), h = c + kN, l = c - kN, a = r * j.Math.sin(h) + n, g = r * j.Math.cos(h) + e, d = r * j.Math.sin(l) + n, p = r * j.Math.cos(l) + e, cf(A(M(di, 1), q, 8, 0, [new fn(a, g), new fn(d, p)]));
+ }
+ function Gme(n, e, t, i) {
+ var r, c, o, f, h, l, a, d;
+ r = t, a = e, c = a;
+ do
+ c = n.a[c.p], f = (d = n.g[c.p], K(n.p[d.p]) + K(n.d[c.p]) - c.d.d), h = rbe(c, i), h && (o = (l = n.g[h.p], K(n.p[l.p]) + K(n.d[h.p]) + h.o.b + h.d.a), r = j.Math.min(r, f - (o + Mw(n.k, c, h))));
+ while (a != c);
+ return r;
+ }
+ function zme(n, e, t, i) {
+ var r, c, o, f, h, l, a, d;
+ r = t, a = e, c = a;
+ do
+ c = n.a[c.p], o = (d = n.g[c.p], K(n.p[d.p]) + K(n.d[c.p]) + c.o.b + c.d.a), h = wwe(c, i), h && (f = (l = n.g[h.p], K(n.p[l.p]) + K(n.d[h.p]) - h.d.d), r = j.Math.min(r, f - (o + Mw(n.k, c, h))));
+ while (a != c);
+ return r;
+ }
+ function hn(n, e) {
+ var t, i;
+ return i = (!n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), Ko(n.o, e)), i ?? (t = e.wg(), I(t, 4) && (t == null ? (!n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), IT(n.o, e)) : (!n.o && (n.o = new Wu(($c(), zl), P0, n, 0)), XT(n.o, e, t))), t);
+ }
+ function Eb() {
+ Eb = N, So = new yw("H_LEFT", 0), Yh = new yw("H_CENTER", 1), Po = new yw("H_RIGHT", 2), Oo = new yw("V_TOP", 3), yh = new yw("V_CENTER", 4), no = new yw("V_BOTTOM", 5), as = new yw("INSIDE", 6), Io = new yw("OUTSIDE", 7), Zs = new yw("H_PRIORITY", 8);
+ }
+ function Ume(n) {
+ var e, t, i, r, c, o, f;
+ if (e = n.Hh(Xs), e && (f = Te(Ko((!e.b && (e.b = new qu((Sn(), Zi), tc, e)), e.b), "settingDelegates")), f != null)) {
+ for (t = new X(), r = Mb(f, "\\w+"), c = 0, o = r.length; c < o; ++c)
+ i = r[c], t.c[t.c.length] = i;
+ return t;
+ }
+ return Pn(), Pn(), cr;
+ }
+ function Wme(n, e) {
+ var t, i, r, c, o, f, h;
+ if (!e.f)
+ throw T(new Hn("The input edge is not a tree edge."));
+ for (c = null, r = nt, i = new E(n.d); i.a < i.c.c.length; )
+ t = u(y(i), 213), f = t.d, h = t.e, Ix(n, f, e) && !Ix(n, h, e) && (o = h.e - f.e - t.a, o < r && (r = o, c = t));
+ return c;
+ }
+ function Xme(n) {
+ var e, t, i, r, c, o;
+ if (!(n.f.e.c.length <= 1)) {
+ e = 0, r = VLn(n), t = xt;
+ do {
+ for (e > 0 && (r = t), o = new E(n.f.e); o.a < o.c.c.length; )
+ c = u(y(o), 144), !on(sn(k(c, (C7(), Nrn)))) && (i = iye(n, c), st(Lo(c.d), i));
+ t = VLn(n);
+ } while (!vhe(n, e++, r, t));
+ }
+ }
+ function Vme(n, e) {
+ var t, i, r;
+ for (le(e, "Layer constraint preprocessing", 1), t = new X(), r = new Ii(n.a, 0); r.b < r.d.gc(); )
+ i = (ne(r.b < r.d.gc()), u(r.d.Xb(r.c = r.b++), 10)), vwe(i) && (mve(i), t.c[t.c.length] = i, Uu(r));
+ t.c.length == 0 || H(n, (G(), C_), t), ce(e);
+ }
+ function Qme(n, e) {
+ var t, i, r, c, o;
+ for (c = n.g.a, o = n.g.b, i = new E(n.d); i.a < i.c.c.length; )
+ t = u(y(i), 70), r = t.n, n.a == (ff(), Z4) || n.i == (J(), Vn) ? r.a = c : n.a == nv || n.i == (J(), Gn) ? r.a = c + n.j.a - t.o.a : r.a = c + (n.j.a - t.o.a) / 2, r.b = o, st(r, e), o += t.o.b + n.e;
+ }
+ function Jme(n, e, t) {
+ var i, r, c, o;
+ for (le(t, "Processor set coordinates", 1), n.a = e.b.b == 0 ? 1 : e.b.b, c = null, i = _e(e.b, 0); !c && i.b != i.d.c; )
+ o = u(Re(i), 86), on(sn(k(o, (uc(), rw)))) && (c = o, r = o.e, r.a = u(k(o, mK), 19).a, r.b = 0);
+ Dxn(n, $V(c), yc(t, 1)), ce(t);
+ }
+ function Yme(n, e, t) {
+ var i, r, c;
+ for (le(t, "Processor determine the height for each level", 1), n.a = e.b.b == 0 ? 1 : e.b.b, r = null, i = _e(e.b, 0); !r && i.b != i.d.c; )
+ c = u(Re(i), 86), on(sn(k(c, (uc(), rw)))) && (r = c);
+ r && VNn(n, cf(A(M(cMe, 1), ynn, 86, 0, [r])), t), ce(t);
+ }
+ function Zme(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ l = n, h = q5(l, "individualSpacings"), h && (i = ga(e, (Xe(), Ap)), o = !i, o && (r = new jI(), gr(e, Ap, r)), f = u(hn(e, Ap), 373), d = h, c = null, d && (c = (a = Z$(d, F(tn, q, 2, 0, 6, 1)), new iO(d, a))), c && (t = new jkn(d, f), $i(c, t)));
+ }
+ function n9e(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ return h = null, d = n, a = null, (Pqn in d.a || Iqn in d.a || pA in d.a) && (l = null, g = xV(e), o = q5(d, Pqn), t = new rmn(g), M2e(t.a, o), f = q5(d, Iqn), i = new bmn(g), T2e(i.a, f), c = xd(d, pA), r = new pmn(g), l = (ive(r.a, c), c), a = l), h = a, h;
+ }
+ function e9e(n, e) {
+ var t, i, r;
+ if (e === n)
+ return !0;
+ if (I(e, 543)) {
+ if (r = u(e, 835), n.a.d != r.a.d || Iw(n).gc() != Iw(r).gc())
+ return !1;
+ for (i = Iw(r).Kc(); i.Ob(); )
+ if (t = u(i.Pb(), 416), $Mn(n, t.a.cd()) != u(t.a.dd(), 14).gc())
+ return !1;
+ return !0;
+ }
+ return !1;
+ }
+ function t9e(n) {
+ var e, t, i, r;
+ return i = u(n.a, 19).a, r = u(n.b, 19).a, e = i, t = r, i == 0 && r == 0 ? t -= 1 : i == -1 && r <= 0 ? (e = 0, t -= 2) : i <= 0 && r > 0 ? (e -= 1, t -= 1) : i >= 0 && r < 0 ? (e += 1, t += 1) : i > 0 && r >= 0 ? (e -= 1, t += 1) : (e += 1, t -= 1), new Pi(Q(e), Q(t));
+ }
+ function i9e(n, e) {
+ return n.c < e.c ? -1 : n.c > e.c ? 1 : n.b < e.b ? -1 : n.b > e.b ? 1 : n.a != e.a ? mt(n.a) - mt(e.a) : n.d == (z5(), Hm) && e.d == Km ? -1 : n.d == Km && e.d == Hm ? 1 : 0;
+ }
+ function oNn(n, e) {
+ var t, i, r, c, o;
+ return c = e.a, c.c.i == e.b ? o = c.d : o = c.c, c.c.i == e.b ? i = c.c : i = c.d, r = O2e(n.a, o, i), r > 0 && r < O4 ? (t = Gme(n.a, i.i, r, n.c), vIn(n.a, i.i, -t), t > 0) : r < 0 && -r < O4 ? (t = zme(n.a, i.i, -r, n.c), vIn(n.a, i.i, t), t > 0) : !1;
+ }
+ function r9e(n, e, t, i) {
+ var r, c, o, f, h, l, a, d;
+ for (r = (e - n.d) / n.c.c.length, c = 0, n.a += t, n.d = e, d = new E(n.c); d.a < d.c.c.length; )
+ a = u(y(d), 33), l = a.g, h = a.f, Yc(a, a.i + c * r), Zc(a, a.j + i * t), _d(a, a.g + r), Rd(a, n.a), ++c, f = a.g, o = a.f, tLn(a, new fn(f, o), new fn(l, h));
+ }
+ function c9e(n) {
+ var e, t, i, r, c, o, f;
+ if (n == null)
+ return null;
+ for (f = n.length, r = (f + 1) / 2 | 0, o = F(mu, wg, 25, r, 15, 1), f % 2 != 0 && (o[--r] = eZ((Me(f - 1, n.length), n.charCodeAt(f - 1)))), t = 0, i = 0; t < r; ++t)
+ e = eZ(Di(n, i++)), c = eZ(Di(n, i++)), o[t] = (e << 4 | c) << 24 >> 24;
+ return o;
+ }
+ function u9e(n) {
+ if (n.pe()) {
+ var e = n.c;
+ e.qe() ? n.o = "[" + e.n : e.pe() ? n.o = "[" + e.ne() : n.o = "[L" + e.ne() + ";", n.b = e.me() + "[]", n.k = e.oe() + "[]";
+ return;
+ }
+ var t = n.j, i = n.d;
+ i = i.split("/"), n.o = RF(".", [t, RF("$", i)]), n.b = RF(".", [t, RF(".", i)]), n.k = i[i.length - 1];
+ }
+ function s9e(n, e) {
+ var t, i, r, c, o;
+ for (o = null, c = new E(n.e.a); c.a < c.c.c.length; )
+ if (r = u(y(c), 121), r.b.a.c.length == r.g.a.c.length) {
+ for (i = r.e, o = G5e(r), t = r.e - u(o.a, 19).a + 1; t < r.e + u(o.b, 19).a; t++)
+ e[t] < e[i] && (i = t);
+ e[i] < e[r.e] && (--e[r.e], ++e[i], r.e = i);
+ }
+ }
+ function Nx(n) {
+ var e, t, i, r, c, o, f, h;
+ for (r = xt, i = Qt, t = new E(n.e.b); t.a < t.c.c.length; )
+ for (e = u(y(t), 29), o = new E(e.a); o.a < o.c.c.length; )
+ c = u(y(o), 10), h = K(n.p[c.p]), f = h + K(n.b[n.g[c.p].p]), r = j.Math.min(r, h), i = j.Math.max(i, f);
+ return i - r;
+ }
+ function xY(n, e, t, i) {
+ var r, c, o, f, h;
+ for (r = oZ(n, e), f = 0, h = r.gc(); f < h; ++f)
+ if (c = u(r.Xb(f), 170), An(i, p3(Er(n, c)))) {
+ if (o = E8(Er(n, c)), t == null) {
+ if (o == null)
+ return c;
+ } else if (An(t, o))
+ return c;
+ }
+ return null;
+ }
+ function LY(n, e, t, i) {
+ var r, c, o, f, h;
+ for (r = Jx(n, e), f = 0, h = r.gc(); f < h; ++f)
+ if (c = u(r.Xb(f), 170), An(i, p3(Er(n, c)))) {
+ if (o = E8(Er(n, c)), t == null) {
+ if (o == null)
+ return c;
+ } else if (An(t, o))
+ return c;
+ }
+ return null;
+ }
+ function o9e(n, e, t) {
+ var i, r, c, o, f, h;
+ if (o = new Jy(), f = _c(n.e.Tg(), e), i = u(n.g, 119), er(), u(e, 66).Oj())
+ for (c = 0; c < n.i; ++c)
+ r = i[c], f.rl(r.ak()) && me(o, r);
+ else
+ for (c = 0; c < n.i; ++c)
+ r = i[c], f.rl(r.ak()) && (h = r.dd(), me(o, t ? y6(n, e, c, o.i, h) : h));
+ return gX(o);
+ }
+ function f9e(n, e) {
+ var t, i, r, c, o;
+ for (t = new f6(iv), r = (q2(), A(M(iv, 1), z, 227, 0, [tv, ym, ev, Gb, Cg, Eg])), c = 0, o = r.length; c < o; ++c)
+ i = r[c], wU(t, i, new X());
+ return Rt(Wc(gt(qr(new $n(null, new xn(n.b, 16)), new n0n()), new e0n()), new P5n(e)), new I5n(t)), t;
+ }
+ function rM(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ for (c = e.Kc(); c.Ob(); )
+ r = u(c.Pb(), 33), a = r.i + r.g / 2, g = r.j + r.f / 2, h = n.f, o = h.i + h.g / 2, f = h.j + h.f / 2, l = a - o, d = g - f, i = j.Math.sqrt(l * l + d * d), l *= n.e / i, d *= n.e / i, t ? (a -= l, g -= d) : (a += l, g += d), Yc(r, a - r.g / 2), Zc(r, g - r.f / 2);
+ }
+ function Jw(n) {
+ var e, t, i;
+ if (!n.c && n.b != null) {
+ for (e = n.b.length - 4; e >= 0; e -= 2)
+ for (t = 0; t <= e; t += 2)
+ (n.b[t] > n.b[t + 2] || n.b[t] === n.b[t + 2] && n.b[t + 1] > n.b[t + 3]) && (i = n.b[t + 2], n.b[t + 2] = n.b[t], n.b[t] = i, i = n.b[t + 3], n.b[t + 3] = n.b[t + 1], n.b[t + 1] = i);
+ n.c = !0;
+ }
+ }
+ function fNn(n, e) {
+ var t, i, r, c, o, f, h, l;
+ for (o = e == 1 ? KR : _R, c = o.a.ec().Kc(); c.Ob(); )
+ for (r = u(c.Pb(), 103), h = u(ct(n.f.c, r), 21).Kc(); h.Ob(); )
+ switch (f = u(h.Pb(), 46), i = u(f.b, 81), l = u(f.a, 189), t = l.c, r.g) {
+ case 2:
+ case 1:
+ i.g.d += t;
+ break;
+ case 4:
+ case 3:
+ i.g.c += t;
+ }
+ }
+ function h9e(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (l = -1, a = 0, o = n, f = 0, h = o.length; f < h; ++f) {
+ for (c = o[f], t = new DEn(l == -1 ? n[0] : n[l], e, (i6(), oP)), i = 0; i < c.length; i++)
+ for (r = i + 1; r < c.length; r++)
+ ai(c[i], (G(), bc)) && ai(c[r], bc) && I_n(t, c[i], c[r]) > 0 && ++a;
+ ++l;
+ }
+ return a;
+ }
+ function yo(n) {
+ var e, t;
+ return t = new Ju(Q1(n.gm)), t.a += "@", De(t, (e = mt(n) >>> 0, e.toString(16))), n.kh() ? (t.a += " (eProxyURI: ", cc(t, n.qh()), n.$g() && (t.a += " eClass: ", cc(t, n.$g())), t.a += ")") : n.$g() && (t.a += " (eClass: ", cc(t, n.$g()), t.a += ")"), t.a;
+ }
+ function E6(n) {
+ var e, t, i, r;
+ if (n.e)
+ throw T(new $r((Sh(kR), uN + kR.k + sN)));
+ for (n.d == (sr(), mh) && TM(n, Ys), t = new E(n.a.a); t.a < t.c.c.length; )
+ e = u(y(t), 307), e.g = e.i;
+ for (r = new E(n.a.b); r.a < r.c.c.length; )
+ i = u(y(r), 57), i.i = Qt;
+ return n.b.Le(n), n;
+ }
+ function l9e(n, e) {
+ var t, i, r, c, o;
+ if (e < 2 * n.b)
+ throw T(new Hn("The knot vector must have at least two time the dimension elements."));
+ for (n.f = 1, r = 0; r < n.b; r++)
+ W(n.e, 0);
+ for (o = e + 1 - 2 * n.b, t = o, c = 1; c < o; c++)
+ W(n.e, c / t);
+ if (n.d)
+ for (i = 0; i < n.b; i++)
+ W(n.e, 1);
+ }
+ function hNn(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (l = e, a = u(ZC(BD(n.i), l), 33), !a)
+ throw r = Dh(l, Uf), f = "Unable to find elk node for json object '" + r, h = f + "' Panic!", T(new Af(h));
+ c = xd(l, "edges"), t = new bkn(n, a), W6e(t.a, t.b, c), o = xd(l, FB), i = new Q6n(n), c4e(i.a, o);
+ }
+ function lNn(n, e, t, i) {
+ var r, c, o, f, h;
+ if (i != null) {
+ if (r = n.d[e], r) {
+ for (c = r.g, h = r.i, f = 0; f < h; ++f)
+ if (o = u(c[f], 133), o.Sh() == t && tt(i, o.cd()))
+ return f;
+ }
+ } else if (r = n.d[e], r) {
+ for (c = r.g, h = r.i, f = 0; f < h; ++f)
+ if (o = u(c[f], 133), B(o.cd()) === B(i))
+ return f;
+ }
+ return -1;
+ }
+ function d4(n, e) {
+ var t, i, r;
+ return t = e == null ? Vr(Sr(n.f, null)) : n5(n.g, e), I(t, 235) ? (r = u(t, 235), r.Qh() == null, r) : I(t, 498) ? (i = u(t, 1938), r = i.a, r && (r.yb == null || (e == null ? Rc(n.f, null, r) : zd(n.g, e, r))), r) : null;
+ }
+ function a9e(n) {
+ YY();
+ var e, t, i, r, c, o, f;
+ if (n == null || (r = n.length, r % 2 != 0))
+ return null;
+ for (e = NC(n), c = r / 2 | 0, t = F(mu, wg, 25, c, 15, 1), i = 0; i < c; i++) {
+ if (o = v9[e[i * 2]], o == -1 || (f = v9[e[i * 2 + 1]], f == -1))
+ return null;
+ t[i] = (o << 4 | f) << 24 >> 24;
+ }
+ return t;
+ }
+ function d9e(n, e, t) {
+ var i, r, c;
+ if (r = u(br(n.i, e), 306), !r)
+ if (r = new hIn(n.d, e, t), m2(n.i, e, r), GQ(e))
+ Pce(n.a, e.c, e.b, r);
+ else
+ switch (c = n6e(e), i = u(br(n.p, c), 244), c.g) {
+ case 1:
+ case 3:
+ r.j = !0, zI(i, e.b, r);
+ break;
+ case 4:
+ case 2:
+ r.k = !0, zI(i, e.c, r);
+ }
+ return r;
+ }
+ function b9e(n, e, t, i) {
+ var r, c, o, f, h, l;
+ if (f = new Jy(), h = _c(n.e.Tg(), e), r = u(n.g, 119), er(), u(e, 66).Oj())
+ for (o = 0; o < n.i; ++o)
+ c = r[o], h.rl(c.ak()) && me(f, c);
+ else
+ for (o = 0; o < n.i; ++o)
+ c = r[o], h.rl(c.ak()) && (l = c.dd(), me(f, i ? y6(n, e, o, f.i, l) : l));
+ return LQ(f, t);
+ }
+ function aNn(n, e) {
+ var t, i, r, c, o, f, h, l;
+ if (r = n.b[e.p], r >= 0)
+ return r;
+ for (c = 1, f = new E(e.j); f.a < f.c.c.length; )
+ for (o = u(y(f), 11), i = new E(o.g); i.a < i.c.c.length; )
+ t = u(y(i), 17), l = t.d.i, e != l && (h = aNn(n, l), c = j.Math.max(c, h + 1));
+ return b2e(n, e, c), c;
+ }
+ function dNn(n, e, t) {
+ var i, r, c;
+ for (i = 1; i < n.c.length; i++) {
+ for (c = (Ln(i, n.c.length), u(n.c[i], 10)), r = i; r > 0 && e.ue((Ln(r - 1, n.c.length), u(n.c[r - 1], 10)), c) > 0; )
+ js(n, r, (Ln(r - 1, n.c.length), u(n.c[r - 1], 10))), --r;
+ Ln(r, n.c.length), n.c[r] = c;
+ }
+ t.a = new we(), t.b = new we();
+ }
+ function w9e(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ for (a = (i = u(e.e && e.e(), 9), new ms(i, u(bo(i, i.length), 9), 0)), h = Mb(t, "[\\[\\]\\s,]+"), c = h, o = 0, f = c.length; o < f; ++o)
+ if (r = c[o], kb(r).length != 0) {
+ if (l = MLn(n, r), l == null)
+ return null;
+ ko(a, u(l, 22));
+ }
+ return a;
+ }
+ function g9e(n) {
+ var e, t, i;
+ for (t = new E(n.a.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 81), i = (_n(0), 0), i > 0 && (!(el(n.a.c) && e.n.d) && !(i3(n.a.c) && e.n.b) && (e.g.d -= j.Math.max(0, i / 2 - 0.5)), !(el(n.a.c) && e.n.a) && !(i3(n.a.c) && e.n.c) && (e.g.a += j.Math.max(0, i - 1)));
+ }
+ function bNn(n, e, t) {
+ var i, r;
+ if ((n.c - n.b & n.a.length - 1) == 2)
+ e == (J(), Kn) || e == Vn ? (GC(u(t6(n), 15), (cs(), kh)), GC(u(t6(n), 15), _l)) : (GC(u(t6(n), 15), (cs(), _l)), GC(u(t6(n), 15), kh));
+ else
+ for (r = new B5(n); r.a != r.b; )
+ i = u(vT(r), 15), GC(i, t);
+ }
+ function p9e(n, e) {
+ var t, i, r, c, o, f, h;
+ for (r = o3(new Fq(n)), f = new Ii(r, r.c.length), c = o3(new Fq(e)), h = new Ii(c, c.c.length), o = null; f.b > 0 && h.b > 0 && (t = (ne(f.b > 0), u(f.a.Xb(f.c = --f.b), 33)), i = (ne(h.b > 0), u(h.a.Xb(h.c = --h.b), 33)), t == i); )
+ o = t;
+ return o;
+ }
+ function Fu(n, e) {
+ var t, i, r, c, o, f;
+ return c = n.a * tN + n.b * 1502, f = n.b * tN + 11, t = j.Math.floor(f * uk), c += t, f -= t * enn, c %= enn, n.a = c, n.b = f, e <= 24 ? j.Math.floor(n.a * Kin[e]) : (r = n.a * (1 << e - 24), o = j.Math.floor(n.b * Hin[e]), i = r + o, i >= 2147483648 && (i -= YL), i);
+ }
+ function wNn(n, e, t) {
+ var i, r, c, o;
+ RMn(n, e) > RMn(n, t) ? (i = zr(t, (J(), Vn)), n.d = i.dc() ? 0 : wD(u(i.Xb(0), 11)), o = zr(e, Gn), n.b = o.dc() ? 0 : wD(u(o.Xb(0), 11))) : (r = zr(t, (J(), Gn)), n.d = r.dc() ? 0 : wD(u(r.Xb(0), 11)), c = zr(e, Vn), n.b = c.dc() ? 0 : wD(u(c.Xb(0), 11)));
+ }
+ function gNn(n) {
+ var e, t, i, r, c, o, f;
+ if (n && (e = n.Hh(Xs), e && (o = Te(Ko((!e.b && (e.b = new qu((Sn(), Zi), tc, e)), e.b), "conversionDelegates")), o != null))) {
+ for (f = new X(), i = Mb(o, "\\w+"), r = 0, c = i.length; r < c; ++r)
+ t = i[r], f.c[f.c.length] = t;
+ return f;
+ }
+ return Pn(), Pn(), cr;
+ }
+ function pNn(n, e) {
+ var t, i, r, c;
+ for (t = n.o.a, c = u(u(ct(n.r, e), 21), 84).Kc(); c.Ob(); )
+ r = u(c.Pb(), 111), r.e.a = t * K(Y(r.b.We(JA))), r.e.b = (i = r.b, i.Xe((Xe(), Bu)) ? i.Hf() == (J(), Kn) ? -i.rf().b - K(Y(i.We(Bu))) : K(Y(i.We(Bu))) : i.Hf() == (J(), Kn) ? -i.rf().b : 0);
+ }
+ function v9e(n) {
+ var e, t, i, r, c, o, f, h;
+ e = !0, r = null, c = null;
+ n:
+ for (h = new E(n.a); h.a < h.c.c.length; )
+ for (f = u(y(h), 10), i = new re(ue(Lr(f).a.Kc(), new Mn())); Se(i); ) {
+ if (t = u(ve(i), 17), r && r != f) {
+ e = !1;
+ break n;
+ }
+ if (r = f, o = t.c.i, c && c != o) {
+ e = !1;
+ break n;
+ }
+ c = o;
+ }
+ return e;
+ }
+ function m9e(n, e, t) {
+ var i, r, c, o, f, h;
+ for (c = -1, f = -1, o = 0; o < e.c.length && (r = (Ln(o, e.c.length), u(e.c[o], 329)), !(r.c > n.c)); o++)
+ r.a >= n.s && (c < 0 && (c = o), f = o);
+ return h = (n.s + n.c) / 2, c >= 0 && (i = nke(n, e, c, f), h = fre((Ln(i, e.c.length), u(e.c[i], 329))), hme(e, i, t)), h;
+ }
+ function Bx() {
+ Bx = N, UYn = new tr((Xe(), Tp), 1.3), efn = ehn, ofn = new md(15), ZYn = new tr(ed, ofn), eZn = new tr(td, 15), WYn = LP, QYn = nd, JYn = Kg, YYn = Rl, VYn = _g, cfn = ky, nZn = cw, sfn = (IY(), qYn), rfn = KYn, ufn = HYn, ffn = GYn, tfn = _Yn, ifn = NP, XYn = ihn, fy = RYn, nfn = BYn, hfn = zYn;
+ }
+ function ke(n, e, t) {
+ var i, r, c, o, f, h, l;
+ for (o = (c = new JH(), c), pV(o, (_n(e), e)), l = (!o.b && (o.b = new qu((Sn(), Zi), tc, o)), o.b), h = 1; h < t.length; h += 2)
+ XT(l, t[h - 1], t[h]);
+ for (i = (!n.Ab && (n.Ab = new V(Be, n, 0, 3)), n.Ab), f = 0; f < 0; ++f)
+ r = Ehe(u(D(i, i.i - 1), 590)), i = r;
+ me(i, o);
+ }
+ function vNn(n, e, t) {
+ var i, r, c;
+ for (lue.call(this, new X()), this.a = e, this.b = t, this.e = n, i = (n.b && uL(n), n.a), this.d = CTn(i.a, this.a), this.c = CTn(i.b, this.b), Xge(this, this.d, this.c), _6e(this), c = this.e.e.a.ec().Kc(); c.Ob(); )
+ r = u(c.Pb(), 266), r.c.c.length > 0 && Wje(this, r);
+ }
+ function NY(n, e, t, i, r, c) {
+ var o, f, h;
+ if (!r[e.b]) {
+ for (r[e.b] = !0, o = i, !o && (o = new TC()), W(o.e, e), h = c[e.b].Kc(); h.Ob(); )
+ f = u(h.Pb(), 282), !(f.d == t || f.c == t) && (f.c != e && NY(n, f.c, e, o, r, c), f.d != e && NY(n, f.d, e, o, r, c), W(o.c, f), Zt(o.d, f.b));
+ return o;
+ }
+ return null;
+ }
+ function k9e(n) {
+ var e, t, i, r, c, o, f;
+ for (e = 0, r = new E(n.e); r.a < r.c.c.length; )
+ i = u(y(r), 17), t = E3(new $n(null, new xn(i.b, 16)), new vdn()), t && ++e;
+ for (o = new E(n.g); o.a < o.c.c.length; )
+ c = u(y(o), 17), f = E3(new $n(null, new xn(c.b, 16)), new mdn()), f && ++e;
+ return e >= 2;
+ }
+ function y9e(n, e) {
+ var t, i, r, c;
+ for (le(e, "Self-Loop pre-processing", 1), i = new E(n.a); i.a < i.c.c.length; )
+ t = u(y(i), 10), i2e(t) && (r = (c = new F$n(t), H(t, (G(), ov), c), Rke(c), c), Rt(Wc(qr(new $n(null, new xn(r.d, 16)), new H0n()), new q0n()), new G0n()), F8e(r));
+ ce(e);
+ }
+ function j9e(n, e, t, i, r) {
+ var c, o, f, h, l, a;
+ for (c = n.c.d.j, o = u(qo(t, 0), 8), a = 1; a < t.b; a++)
+ l = u(qo(t, a), 8), Ht(i, o, i.c.b, i.c), f = If(st(new kr(o), l), 0.5), h = If(new u$(XV(c)), r), st(f, h), Ht(i, f, i.c.b, i.c), o = l, c = e == 0 ? yT(c) : pQ(c);
+ Ke(i, (ne(t.b != 0), u(t.c.b.c, 8)));
+ }
+ function E9e(n) {
+ Eb();
+ var e, t, i;
+ return t = pt(as, A(M(lr, 1), z, 93, 0, [Io])), !(Z8(hC(t, n)) > 1 || (e = pt(So, A(M(lr, 1), z, 93, 0, [Yh, Po])), Z8(hC(e, n)) > 1) || (i = pt(Oo, A(M(lr, 1), z, 93, 0, [yh, no])), Z8(hC(i, n)) > 1));
+ }
+ function C9e(n, e) {
+ var t, i, r;
+ return t = e.Hh(n.a), t && (r = Te(Ko((!t.b && (t.b = new qu((Sn(), Zi), tc, t)), t.b), "affiliation")), r != null) ? (i = aE(r, eu(35)), i == -1 ? TF(n, I5(n, ts(e.Hj())), r) : i == 0 ? TF(n, null, r.substr(1)) : TF(n, r.substr(0, i), r.substr(i + 1))) : null;
+ }
+ function T9e(n) {
+ var e, t, i;
+ try {
+ return n == null ? tu : Nr(n);
+ } catch (r) {
+ if (r = jt(r), I(r, 102))
+ return e = r, i = Q1(Du(n)) + "@" + (t = (Zf(), QQ(n) >>> 0), t.toString(16)), dpe(awe(), (n3(), "Exception during lenientFormat for " + i), e), "<" + i + " threw " + Q1(e.gm) + ">";
+ throw T(r);
+ }
+ }
+ function mNn(n) {
+ switch (n.g) {
+ case 0:
+ return new M4n();
+ case 1:
+ return new y4n();
+ case 2:
+ return new y7n();
+ case 3:
+ return new Ewn();
+ case 4:
+ return new Hjn();
+ case 5:
+ return new A4n();
+ default:
+ throw T(new Hn("No implementation is available for the layerer " + (n.f != null ? n.f : "" + n.g)));
+ }
+ }
+ function BY(n, e, t) {
+ var i, r, c;
+ for (c = new E(n.t); c.a < c.c.c.length; )
+ i = u(y(c), 268), i.b.s < 0 && i.c > 0 && (i.b.n -= i.c, i.b.n <= 0 && i.b.u > 0 && Ke(e, i.b));
+ for (r = new E(n.i); r.a < r.c.c.length; )
+ i = u(y(r), 268), i.a.s < 0 && i.c > 0 && (i.a.u -= i.c, i.a.u <= 0 && i.a.n > 0 && Ke(t, i.a));
+ }
+ function cM(n) {
+ var e, t, i, r, c;
+ if (n.g == null && (n.d = n.si(n.f), me(n, n.d), n.c))
+ return c = n.f, c;
+ if (e = u(n.g[n.i - 1], 47), r = e.Pb(), n.e = e, t = n.si(r), t.Ob())
+ n.d = t, me(n, t);
+ else
+ for (n.d = null; !e.Ob() && (Mt(n.g, --n.i, null), n.i != 0); )
+ i = u(n.g[n.i - 1], 47), e = i;
+ return r;
+ }
+ function M9e(n, e) {
+ var t, i, r, c, o, f;
+ if (i = e, r = i.ak(), Gh(n.e, r)) {
+ if (r.hi() && yC(n, r, i.dd()))
+ return !1;
+ } else
+ for (f = _c(n.e.Tg(), r), t = u(n.g, 119), c = 0; c < n.i; ++c)
+ if (o = t[c], f.rl(o.ak()))
+ return tt(o, i) ? !1 : (u(Gw(n, c, e), 72), !0);
+ return me(n, e);
+ }
+ function A9e(n, e, t, i) {
+ var r, c, o, f;
+ for (r = new Hh(n), ta(r, (Qn(), Qu)), H(r, (G(), rt), e), H(r, Vk, i), H(r, (nn(), Nt), (Ai(), Sc)), H(r, Xo, e.c), H(r, Js, e.d), zNn(e, r), f = j.Math.floor(t / 2), o = new E(r.j); o.a < o.c.c.length; )
+ c = u(y(o), 11), c.n.b = f;
+ return r;
+ }
+ function S9e(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (h = nh(n.c - n.b & n.a.length - 1), l = null, a = null, c = new B5(n); c.a != c.b; )
+ r = u(vT(c), 10), t = (f = u(k(r, (G(), Xo)), 11), f ? f.i : null), i = (o = u(k(r, Js), 11), o ? o.i : null), (l != t || a != i) && (uNn(h, e), l = t, a = i), h.c[h.c.length] = r;
+ uNn(h, e);
+ }
+ function kNn(n) {
+ var e, t, i, r, c, o, f;
+ for (e = 0, i = new E(n.a); i.a < i.c.c.length; )
+ for (t = u(y(i), 10), c = new re(ue(ei(t).a.Kc(), new Mn())); Se(c); )
+ r = u(ve(c), 17), n == r.d.i.c && r.c.j == (J(), Gn) && (o = tf(r.c).b, f = tf(r.d).b, e = j.Math.max(e, j.Math.abs(f - o)));
+ return e;
+ }
+ function P9e(n, e, t) {
+ var i, r, c;
+ le(t, "Remove overlaps", 1), t.n && e && go(t, po(e), (Xu(), ws)), i = u(hn(e, (C5(), Xm)), 33), n.f = i, n.a = XF(u(hn(e, (pb(), oy)), 293)), r = Y(hn(e, (Xe(), td))), dq(n, (_n(r), r)), c = Tb(i), h_n(n, e, c, t), t.n && e && go(t, po(e), (Xu(), ws));
+ }
+ function RY(n, e, t) {
+ switch (t.g) {
+ case 1:
+ return new fn(e.a, j.Math.min(n.d.b, e.b));
+ case 2:
+ return new fn(j.Math.max(n.c.a, e.a), e.b);
+ case 3:
+ return new fn(e.a, j.Math.max(n.c.b, e.b));
+ case 4:
+ return new fn(j.Math.min(e.a, n.d.a), e.b);
+ }
+ return new fn(e.a, e.b);
+ }
+ function I9e(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g;
+ for (d = i ? (J(), Gn) : (J(), Vn), r = !1, h = e[t], l = 0, a = h.length; l < a; ++l)
+ f = h[l], !p2(u(k(f, (nn(), Nt)), 98)) && (o = f.e, g = !zr(f, d).dc() && !!o, g && (c = LJ(o), n.b = new NJ(c, i ? 0 : c.length - 1)), r = r | Ske(n, f, d, g));
+ return r;
+ }
+ function N7(n) {
+ var e, t, i;
+ for (e = nh(1 + (!n.c && (n.c = new V(Ru, n, 9, 9)), n.c).i), W(e, (!n.d && (n.d = new Fn(bi, n, 8, 5)), n.d)), i = new ie((!n.c && (n.c = new V(Ru, n, 9, 9)), n.c)); i.e != i.i.gc(); )
+ t = u(oe(i), 118), W(e, (!t.d && (t.d = new Fn(bi, t, 8, 5)), t.d));
+ return pe(e), new p5(e);
+ }
+ function qh(n) {
+ var e, t, i;
+ for (e = nh(1 + (!n.c && (n.c = new V(Ru, n, 9, 9)), n.c).i), W(e, (!n.e && (n.e = new Fn(bi, n, 7, 4)), n.e)), i = new ie((!n.c && (n.c = new V(Ru, n, 9, 9)), n.c)); i.e != i.i.gc(); )
+ t = u(oe(i), 118), W(e, (!t.e && (t.e = new Fn(bi, t, 7, 4)), t.e));
+ return pe(e), new p5(e);
+ }
+ function O9e(n) {
+ var e, t, i, r;
+ if (n == null)
+ return null;
+ if (i = Ec(n, !0), r = Ak.length, An(i.substr(i.length - r, r), Ak)) {
+ if (t = i.length, t == 4) {
+ if (e = (Me(0, i.length), i.charCodeAt(0)), e == 43)
+ return F1n;
+ if (e == 45)
+ return Mee;
+ } else if (t == 3)
+ return F1n;
+ }
+ return yb(i);
+ }
+ function D9e(n) {
+ var e, t, i, r;
+ for (e = 0, t = 0, r = new E(n.j); r.a < r.c.c.length; )
+ if (i = u(y(r), 11), e = ge(Hi(e, $Sn(gt(new $n(null, new xn(i.e, 16)), new Gwn())))), t = ge(Hi(t, $Sn(gt(new $n(null, new xn(i.g, 16)), new zwn())))), e > 1 || t > 1)
+ return 2;
+ return e + t == 1 ? 2 : 0;
+ }
+ function yNn(n, e, t) {
+ var i, r, c, o, f;
+ for (le(t, "ELK Force", 1), on(sn(hn(e, (Go(), Irn)))) || oC((i = new O9((H0(), new B0(e))), i)), f = JOn(e), J3e(f), Iwe(n, u(k(f, Prn), 424)), o = hRn(n.a, f), c = o.Kc(); c.Ob(); )
+ r = u(c.Pb(), 231), ake(n.b, r, yc(t, 1 / o.gc()));
+ f = E_n(o), k_n(f), ce(t);
+ }
+ function $9e(n, e) {
+ var t, i, r, c, o;
+ if (le(e, "Breaking Point Processor", 1), ZEe(n), on(sn(k(n, (nn(), Nsn))))) {
+ for (r = new E(n.b); r.a < r.c.c.length; )
+ for (i = u(y(r), 29), t = 0, o = new E(i.a); o.a < o.c.c.length; )
+ c = u(y(o), 10), c.p = t++;
+ eje(n), GNn(n, !0), GNn(n, !1);
+ }
+ ce(e);
+ }
+ function F9e(n, e, t) {
+ var i, r, c, o, f, h;
+ for (f = n.c, o = (t.q ? t.q : (Pn(), Pn(), ph)).vc().Kc(); o.Ob(); )
+ c = u(o.Pb(), 42), i = !Wv(gt(new $n(null, new xn(f, 16)), new Fv(new ckn(e, c)))).sd((ua(), X4)), i && (h = c.dd(), I(h, 4) && (r = qQ(h), r != null && (h = r)), e.Ye(u(c.cd(), 146), h));
+ }
+ function uM(n, e) {
+ var t, i, r, c, o;
+ if (e) {
+ for (c = I(n.Cb, 88) || I(n.Cb, 99), o = !c && I(n.Cb, 322), i = new ie((!e.a && (e.a = new P5(e, ar, e)), e.a)); i.e != i.i.gc(); )
+ if (t = u(oe(i), 87), r = pM(t), c ? I(r, 88) : o ? I(r, 148) : r)
+ return r;
+ return c ? (Sn(), uo) : (Sn(), Cf);
+ } else
+ return null;
+ }
+ function x9e(n, e) {
+ var t, i, r, c, o, f;
+ for (le(e, "Constraints Postprocessor", 1), o = 0, c = new E(n.b); c.a < c.c.c.length; ) {
+ for (r = u(y(c), 29), f = 0, i = new E(r.a); i.a < i.c.c.length; )
+ t = u(y(i), 10), t.k == (Qn(), ii) && (H(t, (nn(), ZS), Q(o)), H(t, VS, Q(f)), ++f);
+ ++o;
+ }
+ ce(e);
+ }
+ function L9e(n, e, t, i) {
+ var r, c, o, f, h, l, a;
+ for (h = new fn(t, i), ji(h, u(k(e, (uc(), zm)), 8)), a = _e(e.b, 0); a.b != a.d.c; )
+ l = u(Re(a), 86), st(l.e, h), Ke(n.b, l);
+ for (f = _e(e.a, 0); f.b != f.d.c; ) {
+ for (o = u(Re(f), 188), c = _e(o.a, 0); c.b != c.d.c; )
+ r = u(Re(c), 8), st(r, h);
+ Ke(n.a, o);
+ }
+ }
+ function _Y(n, e, t) {
+ var i, r, c;
+ if (c = rg((bu(), xi), n.Tg(), e), c) {
+ if (er(), !u(c, 66).Oj() && (c = A2(Er(xi, c)), !c))
+ throw T(new Hn(Sl + e.ne() + em));
+ r = (i = n.Yg(c), u(i >= 0 ? n._g(i, !0, !0) : Zd(n, c, !0), 153)), u(r, 215).ml(e, t);
+ } else
+ throw T(new Hn(Sl + e.ne() + em));
+ }
+ function N9e(n, e) {
+ var t, i, r, c, o;
+ for (t = new X(), r = qr(new $n(null, new xn(n, 16)), new ggn()), c = qr(new $n(null, new xn(n, 16)), new pgn()), o = h0e(Tde(YE(g8e(A(M(UTe, 1), rn, 833, 0, [r, c])), new vgn()))), i = 1; i < o.length; i++)
+ o[i] - o[i - 1] >= 2 * e && W(t, new hD(o[i - 1] + e, o[i] - e));
+ return t;
+ }
+ function B9e(n, e, t) {
+ le(t, "Eades radial", 1), t.n && e && go(t, po(e), (Xu(), ws)), n.d = u(hn(e, (C5(), Xm)), 33), n.c = K(Y(hn(e, (pb(), MP)))), n.e = XF(u(hn(e, oy), 293)), n.a = p2e(u(hn(e, Kon), 426)), n.b = R4e(u(hn(e, _on), 340)), m4e(n), t.n && e && go(t, po(e), (Xu(), ws));
+ }
+ function R9e(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ if (t)
+ for (c = t.a.length, i = new ha(c), f = (i.b - i.a) * i.c < 0 ? (Z1(), Ql) : new il(i); f.Ob(); )
+ o = u(f.Pb(), 19), r = y3(t, o.a), r && (h = Nae(n, (l = (dd(), a = new eG(), a), e && KY(l, e), l), r), Q5(h, Dh(r, Uf)), YT(r, h), lY(r, h), oF(n, r, h));
+ }
+ function sM(n) {
+ var e, t, i, r, c, o;
+ if (!n.j) {
+ if (o = new epn(), e = b9, c = e.a.zc(n, e), c == null) {
+ for (i = new ie(Ar(n)); i.e != i.i.gc(); )
+ t = u(oe(i), 26), r = sM(t), $t(o, r), me(o, t);
+ e.a.Bc(n) != null;
+ }
+ ab(o), n.j = new Ew((u(D(R((sl(), Nn).o), 11), 18), o.i), o.g), Iu(n).b &= -33;
+ }
+ return n.j;
+ }
+ function _9e(n) {
+ var e, t, i, r;
+ if (n == null)
+ return null;
+ if (i = Ec(n, !0), r = Ak.length, An(i.substr(i.length - r, r), Ak)) {
+ if (t = i.length, t == 4) {
+ if (e = (Me(0, i.length), i.charCodeAt(0)), e == 43)
+ return x1n;
+ if (e == 45)
+ return Aee;
+ } else if (t == 3)
+ return x1n;
+ }
+ return new Gq(i);
+ }
+ function K9e(n) {
+ var e, t, i;
+ return t = n.l, t & t - 1 || (i = n.m, i & i - 1) || (e = n.h, e & e - 1) || e == 0 && i == 0 && t == 0 ? -1 : e == 0 && i == 0 && t != 0 ? hV(t) : e == 0 && i != 0 && t == 0 ? hV(i) + 22 : e != 0 && i == 0 && t == 0 ? hV(e) + 44 : -1;
+ }
+ function H9e(n, e) {
+ var t, i, r, c, o;
+ for (le(e, "Edge joining", 1), t = on(sn(k(n, (nn(), U_)))), r = new E(n.b); r.a < r.c.c.length; )
+ for (i = u(y(r), 29), o = new Ii(i.a, 0); o.b < o.d.gc(); )
+ c = (ne(o.b < o.d.gc()), u(o.d.Xb(o.c = o.b++), 10)), c.k == (Qn(), pi) && (gL(c, t), Uu(o));
+ ce(e);
+ }
+ function q9e(n, e, t) {
+ var i, r;
+ if (pC(n.b), ih(n.b, (w7(), AP), (Jv(), hy)), ih(n.b, SP, e.g), ih(n.b, PP, e.a), n.a = EM(n.b, e), le(t, "Compaction by shrinking a tree", n.a.c.length), e.i.c.length > 1)
+ for (r = new E(n.a); r.a < r.c.c.length; )
+ i = u(y(r), 51), i.pf(e, yc(t, 1));
+ ce(t);
+ }
+ function Yw(n, e) {
+ var t, i, r, c, o;
+ for (r = e.a & n.f, c = null, i = n.b[r]; ; i = i.b) {
+ if (i == e) {
+ c ? c.b = e.b : n.b[r] = e.b;
+ break;
+ }
+ c = i;
+ }
+ for (o = e.f & n.f, c = null, t = n.c[o]; ; t = t.d) {
+ if (t == e) {
+ c ? c.d = e.d : n.c[o] = e.d;
+ break;
+ }
+ c = t;
+ }
+ e.e ? e.e.c = e.c : n.a = e.c, e.c ? e.c.e = e.e : n.e = e.e, --n.i, ++n.g;
+ }
+ function G9e(n) {
+ var e, t, i, r, c, o, f, h, l, a;
+ for (t = n.o, e = n.p, o = nt, r = Bi, f = nt, c = Bi, l = 0; l < t; ++l)
+ for (a = 0; a < e; ++a)
+ zw(n, l, a) && (o = j.Math.min(o, l), r = j.Math.max(r, l), f = j.Math.min(f, a), c = j.Math.max(c, a));
+ return h = r - o + 1, i = c - f + 1, new ETn(Q(o), Q(f), Q(h), Q(i));
+ }
+ function Rx(n, e) {
+ var t, i, r, c;
+ for (c = new Ii(n, 0), t = (ne(c.b < c.d.gc()), u(c.d.Xb(c.c = c.b++), 140)); c.b < c.d.gc(); )
+ i = (ne(c.b < c.d.gc()), u(c.d.Xb(c.c = c.b++), 140)), r = new QU(i.c, t.d, e), ne(c.b > 0), c.a.Xb(c.c = --c.b), V0(c, r), ne(c.b < c.d.gc()), c.d.Xb(c.c = c.b++), r.a = !1, t = i;
+ }
+ function jNn(n) {
+ var e, t, i, r, c, o;
+ for (r = u(k(n, (G(), _S)), 11), o = new E(n.j); o.a < o.c.c.length; ) {
+ for (c = u(y(o), 11), i = new E(c.g); i.a < i.c.c.length; )
+ return e = u(y(i), 17), Ti(e, r), c;
+ for (t = new E(c.e); t.a < t.c.c.length; )
+ return e = u(y(t), 17), Ki(e, r), c;
+ }
+ return null;
+ }
+ function z9e(n, e, t) {
+ var i, r;
+ i = nu(t.q.getTime()), hc(i, 0) < 0 ? (r = j1 - ge(p7(S3(i), j1)), r == j1 && (r = 0)) : r = ge(p7(i, j1)), e == 1 ? (r = j.Math.min((r + 50) / 100 | 0, 9), ul(n, 48 + r & Wt)) : e == 2 ? (r = j.Math.min((r + 5) / 10 | 0, 99), sh(n, r, 2)) : (sh(n, r, 3), e > 3 && sh(n, 0, e - 3));
+ }
+ function U9e(n) {
+ var e, t, i, r;
+ return B(k(n, (nn(), Qb))) === B((Rh(), F1)) ? !n.e && B(k(n, Jk)) !== B((H3(), Gk)) : (i = u(k(n, F_), 292), r = on(sn(k(n, x_))) || B(k(n, Om)) === B((F2(), qk)), e = u(k(n, nsn), 19).a, t = n.a.c.length, !r && i != (H3(), Gk) && (e == 0 || e > t));
+ }
+ function W9e(n) {
+ var e, t;
+ for (t = 0; t < n.c.length && !(UEn((Ln(t, n.c.length), u(n.c[t], 113))) > 0); t++)
+ ;
+ if (t > 0 && t < n.c.length - 1)
+ return t;
+ for (e = 0; e < n.c.length && !(UEn((Ln(e, n.c.length), u(n.c[e], 113))) > 0); e++)
+ ;
+ return e > 0 && t < n.c.length - 1 ? e : n.c.length / 2 | 0;
+ }
+ function ENn(n, e) {
+ var t, i;
+ if (e != n.Cb || n.Db >> 16 != 6 && e) {
+ if (c4(n, e))
+ throw T(new Hn(tm + KLn(n)));
+ i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? dJ(n, i) : n.Cb.ih(n, -1 - t, null, i))), e && (i = _2(e, n, 6, i)), i = lU(n, e, i), i && i.Fi();
+ } else
+ n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 6, e, e));
+ }
+ function KY(n, e) {
+ var t, i;
+ if (e != n.Cb || n.Db >> 16 != 9 && e) {
+ if (c4(n, e))
+ throw T(new Hn(tm + EBn(n)));
+ i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? wJ(n, i) : n.Cb.ih(n, -1 - t, null, i))), e && (i = _2(e, n, 9, i)), i = aU(n, e, i), i && i.Fi();
+ } else
+ n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 9, e, e));
+ }
+ function _x(n, e) {
+ var t, i;
+ if (e != n.Cb || n.Db >> 16 != 3 && e) {
+ if (c4(n, e))
+ throw T(new Hn(tm + jRn(n)));
+ i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? pJ(n, i) : n.Cb.ih(n, -1 - t, null, i))), e && (i = _2(e, n, 12, i)), i = hU(n, e, i), i && i.Fi();
+ } else
+ n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 3, e, e));
+ }
+ function b4(n) {
+ var e, t, i, r, c;
+ if (i = Hs(n), c = n.j, c == null && i)
+ return n.$j() ? null : i.zj();
+ if (I(i, 148)) {
+ if (t = i.Aj(), t && (r = t.Nh(), r != n.i)) {
+ if (e = u(i, 148), e.Ej())
+ try {
+ n.g = r.Kh(e, c);
+ } catch (o) {
+ if (o = jt(o), I(o, 78))
+ n.g = null;
+ else
+ throw T(o);
+ }
+ n.i = r;
+ }
+ return n.g;
+ }
+ return null;
+ }
+ function CNn(n) {
+ var e;
+ return e = new X(), W(e, new f2(new fn(n.c, n.d), new fn(n.c + n.b, n.d))), W(e, new f2(new fn(n.c, n.d), new fn(n.c, n.d + n.a))), W(e, new f2(new fn(n.c + n.b, n.d + n.a), new fn(n.c + n.b, n.d))), W(e, new f2(new fn(n.c + n.b, n.d + n.a), new fn(n.c, n.d + n.a))), e;
+ }
+ function TNn(n, e, t, i) {
+ var r, c, o;
+ if (o = TJ(e, t), i.c[i.c.length] = e, n.j[o.p] == -1 || n.j[o.p] == 2 || n.a[e.p])
+ return i;
+ for (n.j[o.p] = -1, c = new re(ue(_h(o).a.Kc(), new Mn())); Se(c); )
+ if (r = u(ve(c), 17), !(!(!Wi(r) && !(!Wi(r) && r.c.i.c == r.d.i.c)) || r == e))
+ return TNn(n, r, o, i);
+ return i;
+ }
+ function X9e(n, e, t) {
+ var i, r, c;
+ for (c = e.a.ec().Kc(); c.Ob(); )
+ r = u(c.Pb(), 79), i = u(te(n.b, r), 266), !i && (At(fh(r)) == At(vl(r)) ? f7e(n, r, t) : fh(r) == At(vl(r)) ? te(n.c, r) == null && te(n.b, vl(r)) != null && r_n(n, r, t, !1) : te(n.d, r) == null && te(n.b, fh(r)) != null && r_n(n, r, t, !0));
+ }
+ function V9e(n, e) {
+ var t, i, r, c, o, f, h;
+ for (r = n.Kc(); r.Ob(); )
+ for (i = u(r.Pb(), 10), f = new gc(), Hr(f, i), si(f, (J(), Vn)), H(f, (G(), GS), (qn(), !0)), o = e.Kc(); o.Ob(); )
+ c = u(o.Pb(), 10), h = new gc(), Hr(h, c), si(h, Gn), H(h, GS, !0), t = new Id(), H(t, GS, !0), Ki(t, f), Ti(t, h);
+ }
+ function Q9e(n, e, t, i) {
+ var r, c, o, f;
+ r = k$n(n, e, t), c = k$n(n, t, e), o = u(te(n.c, e), 112), f = u(te(n.c, t), 112), r < c ? new da((No(), iw), o, f, c - r) : c < r ? new da((No(), iw), f, o, r - c) : (r != 0 || !(!e.i || !t.i) && i[e.i.c][t.i.c]) && (new da((No(), iw), o, f, 0), new da(iw, f, o, 0));
+ }
+ function MNn(n, e) {
+ var t, i, r, c, o, f, h;
+ for (r = 0, o = new E(e.a); o.a < o.c.c.length; )
+ for (c = u(y(o), 10), r += c.o.b + c.d.a + c.d.d + n.e, i = new re(ue(Lr(c).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), t.c.i.k == (Qn(), Mc) && (h = t.c.i, f = u(k(h, (G(), rt)), 10), r += f.o.b + f.d.a + f.d.d);
+ return r;
+ }
+ function ANn(n, e, t) {
+ var i, r, c, o, f, h, l;
+ for (c = new X(), l = new Ct(), o = new Ct(), Rye(n, l, o, e), VEe(n, l, o, e, t), h = new E(n); h.a < h.c.c.length; )
+ for (f = u(y(h), 112), r = new E(f.k); r.a < r.c.c.length; )
+ i = u(y(r), 129), (!e || i.c == (No(), Nl)) && f.g > i.b.g && (c.c[c.c.length] = i);
+ return c;
+ }
+ function w4() {
+ w4 = N, Ng = new J9("CANDIDATE_POSITION_LAST_PLACED_RIGHT", 0), Ep = new J9("CANDIDATE_POSITION_LAST_PLACED_BELOW", 1), Qm = new J9("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT", 2), Vm = new J9("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW", 3), Jm = new J9("WHOLE_DRAWING", 4);
+ }
+ function J9e(n, e) {
+ if (I(e, 239))
+ return Age(n, u(e, 33));
+ if (I(e, 186))
+ return _ge(n, u(e, 118));
+ if (I(e, 354))
+ return Zhe(n, u(e, 137));
+ if (I(e, 352))
+ return Eye(n, u(e, 79));
+ if (e)
+ return null;
+ throw T(new Hn(Rtn + ml(new Ku(A(M(Zn, 1), rn, 1, 5, [e])))));
+ }
+ function Y9e(n) {
+ var e, t, i, r, c, o, f;
+ for (c = new Ct(), r = new E(n.d.a); r.a < r.c.c.length; )
+ i = u(y(r), 121), i.b.a.c.length == 0 && Ht(c, i, c.c.b, c.c);
+ if (c.b > 1)
+ for (e = yd((t = new ca(), ++n.b, t), n.d), f = _e(c, 0); f.b != f.d.c; )
+ o = u(Re(f), 121), jo(lo(ho(ao(fo(new Ls(), 1), 0), e), o));
+ }
+ function HY(n, e) {
+ var t, i;
+ if (e != n.Cb || n.Db >> 16 != 11 && e) {
+ if (c4(n, e))
+ throw T(new Hn(tm + uZ(n)));
+ i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? vJ(n, i) : n.Cb.ih(n, -1 - t, null, i))), e && (i = _2(e, n, 10, i)), i = kU(n, e, i), i && i.Fi();
+ } else
+ n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 11, e, e));
+ }
+ function Z9e(n) {
+ var e, t, i, r;
+ for (i = new Ca(new ia(n.b).a); i.b; )
+ t = Bd(i), r = u(t.cd(), 11), e = u(t.dd(), 10), H(e, (G(), rt), r), H(r, Mu, e), H(r, Wk, (qn(), !0)), si(r, u(k(e, ec), 61)), k(e, ec), H(r.i, (nn(), Nt), (Ai(), Cv)), u(k(qi(r.i), Ac), 21).Fc((or(), sv));
+ }
+ function n8e(n, e, t) {
+ var i, r, c, o, f, h;
+ if (c = 0, o = 0, n.c)
+ for (h = new E(n.d.i.j); h.a < h.c.c.length; )
+ f = u(y(h), 11), c += f.e.c.length;
+ else
+ c = 1;
+ if (n.d)
+ for (h = new E(n.c.i.j); h.a < h.c.c.length; )
+ f = u(y(h), 11), o += f.g.c.length;
+ else
+ o = 1;
+ return r = zt(m8(o - c)), i = (t + e) / 2 + (t - e) * (0.4 * r), i;
+ }
+ function e8e(n) {
+ Vw();
+ var e, t;
+ if (n.Hc((J(), Xr)))
+ throw T(new Hn("Port sides must not contain UNDEFINED"));
+ switch (n.gc()) {
+ case 1:
+ return SS;
+ case 2:
+ return e = n.Hc(Vn) && n.Hc(Gn), t = n.Hc(Kn) && n.Hc(ae), e || t ? OS : IS;
+ case 3:
+ return PS;
+ case 4:
+ return AS;
+ default:
+ return null;
+ }
+ }
+ function t8e(n, e, t) {
+ var i, r, c, o, f;
+ for (le(t, "Breaking Point Removing", 1), n.a = u(k(e, (nn(), Vh)), 218), c = new E(e.b); c.a < c.c.c.length; )
+ for (r = u(y(c), 29), f = new E($d(r.a)); f.a < f.c.c.length; )
+ o = u(y(f), 10), tIn(o) && (i = u(k(o, (G(), v0)), 305), !i.d && C_n(n, i));
+ ce(t);
+ }
+ function Kx(n, e, t) {
+ return eg(), B3(n, e) && B3(n, t) ? !1 : vL(new fn(n.c, n.d), new fn(n.c + n.b, n.d), e, t) || vL(new fn(n.c + n.b, n.d), new fn(n.c + n.b, n.d + n.a), e, t) || vL(new fn(n.c + n.b, n.d + n.a), new fn(n.c, n.d + n.a), e, t) || vL(new fn(n.c, n.d + n.a), new fn(n.c, n.d), e, t);
+ }
+ function qY(n, e) {
+ var t, i, r, c;
+ if (!n.dc()) {
+ for (t = 0, i = n.gc(); t < i; ++t)
+ if (c = Te(n.Xb(t)), c == null ? e == null : An(c.substr(0, 3), "!##") ? e != null && (r = e.length, !An(c.substr(c.length - r, r), e) || c.length != e.length + 3) && !An(Ha, e) : An(c, XB) && !An(Ha, e) || An(c, e))
+ return !0;
+ }
+ return !1;
+ }
+ function i8e(n, e, t, i) {
+ var r, c, o, f, h, l;
+ for (o = n.j.c.length, h = F(VTe, lnn, 306, o, 0, 1), f = 0; f < o; f++)
+ c = u(un(n.j, f), 11), c.p = f, h[f] = fme(YLn(c), t, i);
+ for (A8e(n, h, t, e, i), l = new we(), r = 0; r < h.length; r++)
+ h[r] && it(l, u(un(n.j, r), 11), h[r]);
+ l.f.c + l.g.c != 0 && (H(n, (G(), Am), l), O5e(n, h));
+ }
+ function r8e(n, e, t) {
+ var i, r, c;
+ for (r = new E(n.a.b); r.a < r.c.c.length; )
+ if (i = u(y(r), 57), c = $w(i), c && c.k == (Qn(), Vt))
+ switch (u(k(c, (G(), ec)), 61).g) {
+ case 4:
+ c.n.a = e.a;
+ break;
+ case 2:
+ c.n.a = t.a - (c.o.a + c.d.c);
+ break;
+ case 1:
+ c.n.b = e.b;
+ break;
+ case 3:
+ c.n.b = t.b - (c.o.b + c.d.a);
+ }
+ }
+ function Zw() {
+ Zw = N, hP = new h2(Wh, 0), ey = new h2("NIKOLOV", 1), ty = new h2("NIKOLOV_PIXEL", 2), Xsn = new h2("NIKOLOV_IMPROVED", 3), Vsn = new h2("NIKOLOV_IMPROVED_PIXEL", 4), Wsn = new h2("DUMMYNODE_PERCENTAGE", 5), Qsn = new h2("NODECOUNT_PERCENTAGE", 6), lP = new h2("NO_BOUNDARY", 7);
+ }
+ function c8e(n, e, t) {
+ var i, r, c, o, f;
+ return r = u(hn(e, (nM(), zfn)), 19), !r && (r = Q(0)), c = u(hn(t, zfn), 19), !c && (c = Q(0)), r.a > c.a ? -1 : r.a < c.a ? 1 : n.a && (i = ni(e.j, t.j), i != 0 || (i = ni(e.i, t.i), i != 0)) ? i : (o = e.g * e.f, f = t.g * t.f, ni(o, f));
+ }
+ function u8e(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ if (++n.e, h = n.d == null ? 0 : n.d.length, e > h) {
+ for (a = n.d, n.d = F(u1n, Xtn, 63, 2 * h + 4, 0, 1), c = 0; c < h; ++c)
+ if (l = a[c], l)
+ for (i = l.g, d = l.i, f = 0; f < d; ++f)
+ r = u(i[f], 133), o = dU(n, r.Sh()), t = n.d[o], !t && (t = n.d[o] = n.uj()), t.Fc(r);
+ return !0;
+ } else
+ return !1;
+ }
+ function s8e(n, e, t) {
+ var i, r, c, o, f, h;
+ if (r = t, c = r.ak(), Gh(n.e, c)) {
+ if (c.hi()) {
+ for (i = u(n.g, 119), o = 0; o < n.i; ++o)
+ if (f = i[o], tt(f, r) && o != e)
+ throw T(new Hn(yk));
+ }
+ } else
+ for (h = _c(n.e.Tg(), c), i = u(n.g, 119), o = 0; o < n.i; ++o)
+ if (f = i[o], h.rl(f.ak()))
+ throw T(new Hn(Mk));
+ s6(n, e, t);
+ }
+ function SNn(n, e) {
+ var t, i, r, c, o, f;
+ for (t = u(k(e, (G(), zb)), 21), o = u(ct((yL(), at), t), 21), f = u(ct(Ne, t), 21), c = o.Kc(); c.Ob(); )
+ if (i = u(c.Pb(), 21), !u(ct(n.b, i), 15).dc())
+ return !1;
+ for (r = f.Kc(); r.Ob(); )
+ if (i = u(r.Pb(), 21), !u(ct(n.b, i), 15).dc())
+ return !1;
+ return !0;
+ }
+ function o8e(n, e) {
+ var t, i, r, c, o, f;
+ for (le(e, "Partition postprocessing", 1), i = new E(n.b); i.a < i.c.c.length; )
+ for (t = u(y(i), 29), c = new E(t.a); c.a < c.c.c.length; )
+ for (r = u(y(c), 10), f = new E(r.j); f.a < f.c.c.length; )
+ o = u(y(f), 11), on(sn(k(o, (G(), GS)))) && F5(f);
+ ce(e);
+ }
+ function PNn(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (n.a.c.length == 1)
+ return $xn(u(un(n.a, 0), 187), e);
+ for (o = lge(n), h = 0, l = n.d, c = o, a = n.d, f = (l - c) / 2 + c; c + 1 < l; ) {
+ for (h = 0, i = new E(n.a); i.a < i.c.c.length; )
+ t = u(y(i), 187), h += (r = O6(t, f, !1), r.a);
+ h < e ? (a = f, l = f) : c = f, f = (l - c) / 2 + c;
+ }
+ return a;
+ }
+ function f8e(n) {
+ var e, t, i, r, c;
+ return isNaN(n) ? (P3(), pin) : n < -9223372036854776e3 ? (P3(), kzn) : n >= 9223372036854776e3 ? (P3(), win) : (r = !1, n < 0 && (r = !0, n = -n), i = 0, n >= Fa && (i = zt(n / Fa), n -= i * Fa), t = 0, n >= J2 && (t = zt(n / J2), n -= t * J2), e = zt(n), c = Nc(e, t, i), r && sF(c), c);
+ }
+ function h8e(n, e) {
+ var t, i, r, c;
+ for (t = !e || !n.u.Hc((Tu(), Zh)), c = 0, r = new E(n.e.Cf()); r.a < r.c.c.length; ) {
+ if (i = u(y(r), 838), i.Hf() == (J(), Xr))
+ throw T(new Hn("Label and node size calculator can only be used with ports that have port sides assigned."));
+ i.vf(c++), oge(n, i, t);
+ }
+ }
+ function l8e(n, e) {
+ var t, i, r, c, o;
+ return r = e.Hh(n.a), r && (i = (!r.b && (r.b = new qu((Sn(), Zi), tc, r)), r.b), t = Te(Ko(i, Ri)), t != null && (c = t.lastIndexOf("#"), o = c == -1 ? iU(n, e.Aj(), t) : c == 0 ? _8(n, null, t.substr(1)) : _8(n, t.substr(0, c), t.substr(c + 1)), I(o, 148))) ? u(o, 148) : null;
+ }
+ function a8e(n, e) {
+ var t, i, r, c, o;
+ return i = e.Hh(n.a), i && (t = (!i.b && (i.b = new qu((Sn(), Zi), tc, i)), i.b), c = Te(Ko(t, WB)), c != null && (r = c.lastIndexOf("#"), o = r == -1 ? iU(n, e.Aj(), c) : r == 0 ? _8(n, null, c.substr(1)) : _8(n, c.substr(0, r), c.substr(r + 1)), I(o, 148))) ? u(o, 148) : null;
+ }
+ function GY(n) {
+ var e, t, i, r, c;
+ for (t = new E(n.a.a); t.a < t.c.c.length; ) {
+ for (e = u(y(t), 307), e.j = null, c = e.a.a.ec().Kc(); c.Ob(); )
+ i = u(c.Pb(), 57), Lo(i.b), (!e.j || i.d.c < e.j.d.c) && (e.j = i);
+ for (r = e.a.a.ec().Kc(); r.Ob(); )
+ i = u(r.Pb(), 57), i.b.a = i.d.c - e.j.d.c, i.b.b = i.d.d - e.j.d.d;
+ }
+ return n;
+ }
+ function oM(n) {
+ var e, t, i, r, c;
+ for (t = new E(n.a.a); t.a < t.c.c.length; ) {
+ for (e = u(y(t), 189), e.f = null, c = e.a.a.ec().Kc(); c.Ob(); )
+ i = u(c.Pb(), 81), Lo(i.e), (!e.f || i.g.c < e.f.g.c) && (e.f = i);
+ for (r = e.a.a.ec().Kc(); r.Ob(); )
+ i = u(r.Pb(), 81), i.e.a = i.g.c - e.f.g.c, i.e.b = i.g.d - e.f.g.d;
+ }
+ return n;
+ }
+ function d8e(n) {
+ var e, t, i;
+ return t = u(n.a, 19).a, i = u(n.b, 19).a, e = j.Math.max(j.Math.abs(t), j.Math.abs(i)), t < e && i == -e ? new Pi(Q(t + 1), Q(i)) : t == e && i < e ? new Pi(Q(t), Q(i + 1)) : t >= -e && i == e ? new Pi(Q(t - 1), Q(i)) : new Pi(Q(t), Q(i - 1));
+ }
+ function INn() {
+ return rr(), A(M(nMe, 1), z, 77, 0, [fcn, ucn, mm, WR, Scn, dS, ES, Y4, Mcn, pcn, Ccn, J4, Acn, bcn, Pcn, ncn, pS, XR, lS, kS, Ocn, mS, ecn, Tcn, Dcn, yS, Icn, aS, lcn, jcn, ycn, CS, rcn, hS, wS, icn, Q4, mcn, wcn, Ecn, km, scn, ccn, kcn, gcn, gS, jS, tcn, vS, vcn, bS, acn, hcn, Kk, fS, dcn, ocn]);
+ }
+ function b8e(n, e, t) {
+ n.d = 0, n.b = 0, e.k == (Qn(), Mc) && t.k == Mc && u(k(e, (G(), rt)), 10) == u(k(t, rt), 10) && (F$(e).j == (J(), Kn) ? wNn(n, e, t) : wNn(n, t, e)), e.k == Mc && t.k == pi ? F$(e).j == (J(), Kn) ? n.d = 1 : n.b = 1 : t.k == Mc && e.k == pi && (F$(t).j == (J(), Kn) ? n.b = 1 : n.d = 1), e3e(n, e, t);
+ }
+ function w8e(n) {
+ var e, t, i, r, c, o, f, h, l, a, d;
+ return d = KJ(n), e = n.a, h = e != null, h && h3(d, "category", n.a), r = N9(new Bp(n.d)), o = !r, o && (l = new ea(), Ro(d, "knownOptions", l), t = new vmn(l), $i(new Bp(n.d), t)), c = N9(n.g), f = !c, f && (a = new ea(), Ro(d, "supportedFeatures", a), i = new mmn(a), $i(n.g, i)), d;
+ }
+ function g8e(n) {
+ var e, t, i, r, c, o, f, h, l;
+ for (i = !1, e = 336, t = 0, c = new Djn(n.length), f = n, h = 0, l = f.length; h < l; ++h)
+ o = f[h], i = i | (Ma(o), !1), r = (ol(o), o.a), W(c.a, pe(r)), e &= r.qd(), t = zwe(t, r.rd());
+ return u(u(BCn(new $n(null, kx(new xn((eb(), $Q(c.a)), 16), new Ch(), e, t)), new Svn(n)), 670), 833);
+ }
+ function p8e(n, e) {
+ var t;
+ n.d && (e.c != n.e.c || Abe(n.e.b, e.b)) && (W(n.f, n.d), n.a = n.d.c + n.d.b, n.d = null, n.e = null), Lre(e.b) ? n.c = e : n.b = e, (e.b == (q3(), w0) && !e.a || e.b == Hb && e.a || e.b == kg && e.a || e.b == qb && !e.a) && n.c && n.b && (t = new ks(n.a, n.c.d, e.c - n.a, n.b.d - n.c.d), n.d = t, n.e = e);
+ }
+ function B7(n) {
+ var e;
+ if (I9n.call(this), this.i = new n2n(), this.g = n, this.f = u(n.e && n.e(), 9).length, this.f == 0)
+ throw T(new Hn("There must be at least one phase in the phase enumeration."));
+ this.c = (e = u(xo(this.g), 9), new ms(e, u(bo(e, e.length), 9), 0)), this.a = new li(), this.b = new we();
+ }
+ function zY(n, e) {
+ var t, i;
+ if (e != n.Cb || n.Db >> 16 != 7 && e) {
+ if (c4(n, e))
+ throw T(new Hn(tm + Nxn(n)));
+ i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? bJ(n, i) : n.Cb.ih(n, -1 - t, null, i))), e && (i = u(e, 49).gh(n, 1, Iy, i)), i = aW(n, e, i), i && i.Fi();
+ } else
+ n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 7, e, e));
+ }
+ function ONn(n, e) {
+ var t, i;
+ if (e != n.Cb || n.Db >> 16 != 3 && e) {
+ if (c4(n, e))
+ throw T(new Hn(tm + UDn(n)));
+ i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? gJ(n, i) : n.Cb.ih(n, -1 - t, null, i))), e && (i = u(e, 49).gh(n, 0, Dy, i)), i = dW(n, e, i), i && i.Fi();
+ } else
+ n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 3, e, e));
+ }
+ function Hx(n, e) {
+ l4();
+ var t, i, r, c, o, f, h, l, a;
+ return e.d > n.d && (f = n, n = e, e = f), e.d < 63 ? u7e(n, e) : (o = (n.d & -2) << 4, l = MX(n, o), a = MX(e, o), i = rL(n, P2(l, o)), r = rL(e, P2(a, o)), h = Hx(l, a), t = Hx(i, r), c = Hx(rL(l, i), rL(r, a)), c = aL(aL(c, h), t), c = P2(c, o), h = P2(h, o << 1), aL(aL(h, c), t));
+ }
+ function v8e(n, e, t) {
+ var i, r, c, o, f;
+ for (o = c6(n, t), f = F(vh, E1, 10, e.length, 0, 1), i = 0, c = o.Kc(); c.Ob(); )
+ r = u(c.Pb(), 11), on(sn(k(r, (G(), Wk)))) && (f[i++] = u(k(r, Mu), 10));
+ if (i < e.length)
+ throw T(new $r("Expected " + e.length + " hierarchical ports, but found only " + i + "."));
+ return f;
+ }
+ function m8e(n, e) {
+ var t, i, r, c, o, f;
+ if (!n.tb) {
+ for (c = (!n.rb && (n.rb = new Z0(n, Qo, n)), n.rb), f = new s2(c.i), r = new ie(c); r.e != r.i.gc(); )
+ i = u(oe(r), 138), o = i.ne(), t = u(o == null ? Rc(f.f, null, i) : zd(f.g, o, i), 138), t && (o == null ? Rc(f.f, null, t) : zd(f.g, o, t));
+ n.tb = f;
+ }
+ return u(mc(n.tb, e), 138);
+ }
+ function R7(n, e) {
+ var t, i, r, c, o;
+ if ((n.i == null && Lf(n), n.i).length, !n.p) {
+ for (o = new s2((3 * n.g.i / 2 | 0) + 1), r = new w2(n.g); r.e != r.i.gc(); )
+ i = u(UF(r), 170), c = i.ne(), t = u(c == null ? Rc(o.f, null, i) : zd(o.g, c, i), 170), t && (c == null ? Rc(o.f, null, t) : zd(o.g, c, t));
+ n.p = o;
+ }
+ return u(mc(n.p, e), 170);
+ }
+ function UY(n, e, t, i, r) {
+ var c, o, f, h, l;
+ for (tpe(i + YD(t, t.$d()), r), nTn(e, S2e(t)), c = t.f, c && UY(n, e, c, "Caused by: ", !1), f = (t.k == null && (t.k = F(hR, q, 78, 0, 0, 1)), t.k), h = 0, l = f.length; h < l; ++h)
+ o = f[h], UY(n, e, o, "Suppressed: ", !1);
+ console.groupEnd != null && console.groupEnd.call(console);
+ }
+ function _7(n, e, t, i) {
+ var r, c, o, f, h;
+ for (h = e.e, f = h.length, o = e.q._f(h, t ? 0 : f - 1, t), r = h[t ? 0 : f - 1], o = o | gBn(n, r, t, i), c = t ? 1 : f - 2; t ? c < f : c >= 0; c += t ? 1 : -1)
+ o = o | e.c.Sf(h, c, t, i && !on(sn(k(e.j, (G(), m0)))) && !on(sn(k(e.j, (G(), Pg))))), o = o | e.q._f(h, c, t), o = o | gBn(n, h[c], t, i);
+ return ci(n.c, e), o;
+ }
+ function fM(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ for (a = wAn(n.j), d = 0, g = a.length; d < g; ++d) {
+ if (l = a[d], t == (ur(), Au) || t == Bm)
+ for (h = xf(l.g), r = h, c = 0, o = r.length; c < o; ++c)
+ i = r[c], I5e(e, i) && t0(i, !0);
+ if (t == Lc || t == Bm)
+ for (f = xf(l.e), r = f, c = 0, o = r.length; c < o; ++c)
+ i = r[c], P5e(e, i) && t0(i, !0);
+ }
+ }
+ function k8e(n) {
+ var e, t;
+ switch (e = null, t = null, q4e(n).g) {
+ case 1:
+ e = (J(), Vn), t = Gn;
+ break;
+ case 2:
+ e = (J(), ae), t = Kn;
+ break;
+ case 3:
+ e = (J(), Gn), t = Vn;
+ break;
+ case 4:
+ e = (J(), Kn), t = ae;
+ }
+ lq(n, u(jd(HE(u(ct(n.k, e), 15).Oc(), jg)), 113)), hq(n, u(jd(KE(u(ct(n.k, t), 15).Oc(), jg)), 113));
+ }
+ function y8e(n) {
+ var e, t, i, r, c, o;
+ if (r = u(un(n.j, 0), 11), r.e.c.length + r.g.c.length == 0)
+ n.n.a = 0;
+ else {
+ for (o = 0, i = cl(of(A(M(gf, 1), rn, 20, 0, [new Hp(r), new n2(r)]))); Se(i); )
+ t = u(ve(i), 11), o += t.i.n.a + t.n.a + t.a.a;
+ e = u(k(n, (nn(), C0)), 8), c = e ? e.a : 0, n.n.a = o / (r.e.c.length + r.g.c.length) - c;
+ }
+ }
+ function DNn(n, e) {
+ var t, i, r;
+ for (i = new E(e.a); i.a < i.c.c.length; )
+ t = u(y(i), 221), yD(u(t.b, 65), ji(Qr(u(e.b, 65).c), u(e.b, 65).a)), r = VBn(u(e.b, 65).b, u(t.b, 65).b), r > 1 && (n.a = !0), Ffe(u(t.b, 65), st(Qr(u(e.b, 65).c), If(ji(Qr(u(t.b, 65).a), u(e.b, 65).a), r))), PMn(n, e), DNn(n, t);
+ }
+ function $Nn(n) {
+ var e, t, i, r, c, o, f;
+ for (c = new E(n.a.a); c.a < c.c.c.length; )
+ i = u(y(c), 189), i.e = 0, i.d.a.$b();
+ for (r = new E(n.a.a); r.a < r.c.c.length; )
+ for (i = u(y(r), 189), t = i.a.a.ec().Kc(); t.Ob(); )
+ for (e = u(t.Pb(), 81), f = e.f.Kc(); f.Ob(); )
+ o = u(f.Pb(), 81), o.d != i && (ci(i.d, o), ++o.d.e);
+ }
+ function j8e(n) {
+ var e, t, i, r, c, o, f, h;
+ for (h = n.j.c.length, t = 0, e = h, r = 2 * h, f = new E(n.j); f.a < f.c.c.length; )
+ switch (o = u(y(f), 11), o.j.g) {
+ case 2:
+ case 4:
+ o.p = -1;
+ break;
+ case 1:
+ case 3:
+ i = o.e.c.length, c = o.g.c.length, i > 0 && c > 0 ? o.p = e++ : i > 0 ? o.p = t++ : c > 0 ? o.p = r++ : o.p = t++;
+ }
+ Pn(), wi(n.j, new b0n());
+ }
+ function E8e(n) {
+ var e, t;
+ t = null, e = u(un(n.g, 0), 17);
+ do {
+ if (t = e.d.i, ai(t, (G(), Js)))
+ return u(k(t, Js), 11).i;
+ if (t.k != (Qn(), ii) && Se(new re(ue(ei(t).a.Kc(), new Mn()))))
+ e = u(ve(new re(ue(ei(t).a.Kc(), new Mn()))), 17);
+ else if (t.k != ii)
+ return null;
+ } while (t && t.k != (Qn(), ii));
+ return t;
+ }
+ function C8e(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (f = e.j, o = e.g, h = u(un(f, f.c.length - 1), 113), a = (Ln(0, f.c.length), u(f.c[0], 113)), l = sx(n, o, h, a), c = 1; c < f.c.length; c++)
+ t = (Ln(c - 1, f.c.length), u(f.c[c - 1], 113)), r = (Ln(c, f.c.length), u(f.c[c], 113)), i = sx(n, o, t, r), i > l && (h = t, a = r, l = i);
+ e.a = a, e.c = h;
+ }
+ function T8e(n, e) {
+ var t, i;
+ if (i = k8(n.b, e.b), !i)
+ throw T(new $r("Invalid hitboxes for scanline constraint calculation."));
+ (_On(e.b, u(Tue(n.b, e.b), 57)) || _On(e.b, u(Cue(n.b, e.b), 57))) && (Zf(), e.b + ""), n.a[e.b.f] = u(rD(n.b, e.b), 57), t = u(iD(n.b, e.b), 57), t && (n.a[t.f] = e.b);
+ }
+ function jo(n) {
+ if (!n.a.d || !n.a.e)
+ throw T(new $r((Sh(Xzn), Xzn.k + " must have a source and target " + (Sh(grn), grn.k) + " specified.")));
+ if (n.a.d == n.a.e)
+ throw T(new $r("Network simplex does not support self-loops: " + n.a + " " + n.a.d + " " + n.a.e));
+ return bE(n.a.d.g, n.a), bE(n.a.e.b, n.a), n.a;
+ }
+ function M8e(n, e, t) {
+ var i, r, c, o, f, h, l;
+ for (l = new J1(new p6n(n)), o = A(M(xWn, 1), WKn, 11, 0, [e, t]), f = 0, h = o.length; f < h; ++f)
+ for (c = o[f], bT(l.a, c, (qn(), Ga)) == null, r = new uf(c.b); Kr(r.a) || Kr(r.b); )
+ i = u(Kr(r.a) ? y(r.a) : y(r.b), 17), i.c == i.d || k8(l, c == i.c ? i.d : i.c);
+ return pe(l), new lu(l);
+ }
+ function FNn(n, e, t) {
+ var i, r, c, o, f, h;
+ if (i = 0, e.b != 0 && t.b != 0) {
+ c = _e(e, 0), o = _e(t, 0), f = K(Y(Re(c))), h = K(Y(Re(o))), r = !0;
+ do {
+ if (f > h - n.b && f < h + n.b)
+ return -1;
+ f > h - n.a && f < h + n.a && ++i, f <= h && c.b != c.d.c ? f = K(Y(Re(c))) : h <= f && o.b != o.d.c ? h = K(Y(Re(o))) : r = !1;
+ } while (r);
+ }
+ return i;
+ }
+ function A8e(n, e, t, i, r) {
+ var c, o, f, h;
+ for (h = (c = u(xo(Yi), 9), new ms(c, u(bo(c, c.length), 9), 0)), f = new E(n.j); f.a < f.c.c.length; )
+ o = u(y(f), 11), e[o.p] && (_Ce(o, e[o.p], i), ko(h, o.j));
+ r ? (gx(n, e, (J(), Vn), 2 * t, i), gx(n, e, Gn, 2 * t, i)) : (gx(n, e, (J(), Kn), 2 * t, i), gx(n, e, ae, 2 * t, i));
+ }
+ function S8e(n) {
+ var e, t, i, r, c;
+ if (c = new X(), Jc(n.b, new Zvn(c)), n.b.c = F(Zn, rn, 1, 0, 5, 1), c.c.length != 0) {
+ for (e = (Ln(0, c.c.length), u(c.c[0], 78)), t = 1, i = c.c.length; t < i; ++t)
+ r = (Ln(t, c.c.length), u(c.c[t], 78)), r != e && _ve(e, r);
+ if (I(e, 60))
+ throw T(u(e, 60));
+ if (I(e, 289))
+ throw T(u(e, 289));
+ }
+ }
+ function P8e(n, e) {
+ var t, i, r, c;
+ for (n = n == null ? tu : (_n(n), n), t = new _0(), c = 0, i = 0; i < e.length && (r = n.indexOf("%s", c), r != -1); )
+ De(t, n.substr(c, r - c)), cc(t, e[i++]), c = r + 2;
+ if (De(t, n.substr(c)), i < e.length) {
+ for (t.a += " [", cc(t, e[i++]); i < e.length; )
+ t.a += Qi, cc(t, e[i++]);
+ t.a += "]";
+ }
+ return t.a;
+ }
+ function I8e(n) {
+ var e, t, i, r;
+ for (e = 0, i = n.length, r = i - 4, t = 0; t < r; )
+ e = (Me(t + 3, n.length), n.charCodeAt(t + 3) + (Me(t + 2, n.length), 31 * (n.charCodeAt(t + 2) + (Me(t + 1, n.length), 31 * (n.charCodeAt(t + 1) + (Me(t, n.length), 31 * (n.charCodeAt(t) + 31 * e))))))), e = e | 0, t += 4;
+ for (; t < i; )
+ e = e * 31 + Di(n, t++);
+ return e = e | 0, e;
+ }
+ function O8e(n) {
+ var e, t;
+ for (t = new re(ue(ei(n).a.Kc(), new Mn())); Se(t); )
+ if (e = u(ve(t), 17), e.d.i.k != (Qn(), Qu))
+ throw T(new pw(SN + E7(n) + "' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen."));
+ }
+ function D8e(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g;
+ for (h = 0, a = new E(n.a); a.a < a.c.c.length; ) {
+ for (l = u(y(a), 10), f = 0, c = new re(ue(Lr(l).a.Kc(), new Mn())); Se(c); )
+ r = u(ve(c), 17), d = tf(r.c).b, g = tf(r.d).b, f = j.Math.max(f, j.Math.abs(g - d));
+ h = j.Math.max(h, f);
+ }
+ return o = i * j.Math.min(1, e / t) * h, o;
+ }
+ function WY(n) {
+ var e;
+ return e = new zv(), n & 256 && (e.a += "F"), n & 128 && (e.a += "H"), n & 512 && (e.a += "X"), n & 2 && (e.a += "i"), n & 8 && (e.a += "m"), n & 4 && (e.a += "s"), n & 32 && (e.a += "u"), n & 64 && (e.a += "w"), n & 16 && (e.a += "x"), n & Eo && (e.a += ","), hG(e.a);
+ }
+ function $8e(n, e) {
+ var t, i, r, c;
+ for (le(e, "Resize child graph to fit parent.", 1), i = new E(n.b); i.a < i.c.c.length; )
+ t = u(y(i), 29), Zt(n.a, t.a), t.a.c = F(Zn, rn, 1, 0, 5, 1);
+ for (c = new E(n.a); c.a < c.c.c.length; )
+ r = u(y(c), 10), jr(r, null);
+ n.b.c = F(Zn, rn, 1, 0, 5, 1), t7e(n), n.e && Hke(n.e, n), ce(e);
+ }
+ function F8e(n) {
+ var e, t, i, r, c, o, f, h, l;
+ if (i = n.b, c = i.e, o = p2(u(k(i, (nn(), Nt)), 98)), t = !!c && u(k(c, (G(), Ac)), 21).Hc((or(), Ds)), !(o || t))
+ for (l = (f = new Th(n.e).a.vc().Kc(), new N0(f)); l.a.Ob(); )
+ h = (e = u(l.a.Pb(), 42), u(e.dd(), 113)), h.a && (r = h.d, Hr(r, null), h.c = !0, n.a = !0);
+ }
+ function x8e(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p;
+ for (g = -1, p = 0, l = n, a = 0, d = l.length; a < d; ++a) {
+ for (h = l[a], c = h, o = 0, f = c.length; o < f; ++o)
+ for (r = c[o], e = new V7n(g == -1 ? n[0] : n[g], xFn(r)), t = 0; t < r.j.c.length; t++)
+ for (i = t + 1; i < r.j.c.length; i++)
+ ACn(e, u(un(r.j, t), 11), u(un(r.j, i), 11)) > 0 && ++p;
+ ++g;
+ }
+ return p;
+ }
+ function L8e(n, e) {
+ var t, i, r, c, o;
+ for (o = u(k(e, (n0(), Eon)), 425), c = _e(e.b, 0); c.b != c.d.c; )
+ if (r = u(Re(c), 86), n.b[r.g] == 0) {
+ switch (o.g) {
+ case 0:
+ sFn(n, r);
+ break;
+ case 1:
+ Bme(n, r);
+ }
+ n.b[r.g] = 2;
+ }
+ for (i = _e(n.a, 0); i.b != i.d.c; )
+ t = u(Re(i), 188), bb(t.b.d, t, !0), bb(t.c.b, t, !0);
+ H(e, (uc(), gon), n.a);
+ }
+ function _c(n, e) {
+ er();
+ var t, i, r, c;
+ return e ? e == (ht(), Tee) || (e == dee || e == cd || e == aee) && n != $1n ? new BZ(n, e) : (i = u(e, 677), t = i.pk(), t || (p3(Er((bu(), xi), e)), t = i.pk()), c = (!t.i && (t.i = new we()), t.i), r = u(Vr(Sr(c.f, n)), 1942), !r && it(c, n, r = new BZ(n, e)), r) : fee;
+ }
+ function N8e(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (h = u(k(n, (G(), rt)), 11), l = Gr(A(M(di, 1), q, 8, 0, [h.i.n, h.n, h.a])).a, a = n.i.n.b, t = xf(n.e), r = t, c = 0, o = r.length; c < o; ++c)
+ i = r[c], Ti(i, h), sa(i.a, new fn(l, a)), e && (f = u(k(i, (nn(), Mr)), 74), f || (f = new ou(), H(i, Mr, f)), Ke(f, new fn(l, a)));
+ }
+ function B8e(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (r = u(k(n, (G(), rt)), 11), l = Gr(A(M(di, 1), q, 8, 0, [r.i.n, r.n, r.a])).a, a = n.i.n.b, t = xf(n.g), o = t, f = 0, h = o.length; f < h; ++f)
+ c = o[f], Ki(c, r), Kkn(c.a, new fn(l, a)), e && (i = u(k(c, (nn(), Mr)), 74), i || (i = new ou(), H(c, Mr, i)), Ke(i, new fn(l, a)));
+ }
+ function R8e(n, e) {
+ var t, i, r, c, o, f;
+ for (n.b = new X(), n.d = u(k(e, (G(), vp)), 230), n.e = Vle(n.d), c = new Ct(), r = cf(A(M(DWn, 1), zKn, 37, 0, [e])), o = 0; o < r.c.length; )
+ i = (Ln(o, r.c.length), u(r.c[o], 37)), i.p = o++, t = new WRn(i, n.a, n.b), Zt(r, t.b), W(n.b, t), t.s && (f = _e(c, 0), y8(f, t));
+ return n.c = new hi(), c;
+ }
+ function _8e(n, e) {
+ var t, i, r, c, o, f;
+ for (o = u(u(ct(n.r, e), 21), 84).Kc(); o.Ob(); )
+ c = u(o.Pb(), 111), t = c.c ? nW(c.c) : 0, t > 0 ? c.a ? (f = c.b.rf().a, t > f && (r = (t - f) / 2, c.d.b = r, c.d.c = r)) : c.d.c = n.s + t : D5(n.u) && (i = HJ(c.b), i.c < 0 && (c.d.b = -i.c), i.c + i.b > c.b.rf().a && (c.d.c = i.c + i.b - c.b.rf().a));
+ }
+ function K8e(n, e) {
+ var t, i, r, c;
+ for (le(e, "Semi-Interactive Crossing Minimization Processor", 1), t = !1, r = new E(n.b); r.a < r.c.c.length; )
+ i = u(y(r), 29), c = d7(qC(gt(gt(new $n(null, new xn(i.a, 16)), new Q0n()), new J0n()), new Y0n()), new Z0n()), t = t | c.a != null;
+ t && H(n, (G(), wun), (qn(), !0)), ce(e);
+ }
+ function H8e(n, e, t) {
+ var i, r, c, o, f;
+ if (r = t, !r && (r = new Gp()), le(r, "Layout", n.a.c.length), on(sn(k(e, (n0(), kon)))))
+ for (Zf(), i = 0; i < n.a.c.length; i++)
+ f = (i < 10 ? "0" : "") + i++, "" + f + Q1(Du(u(un(n.a, i), 51)));
+ for (o = new E(n.a); o.a < o.c.c.length; )
+ c = u(y(o), 51), c.pf(e, yc(r, 1));
+ ce(r);
+ }
+ function q8e(n) {
+ var e, t;
+ if (e = u(n.a, 19).a, t = u(n.b, 19).a, e >= 0) {
+ if (e == t)
+ return new Pi(Q(-e - 1), Q(-e - 1));
+ if (e == -t)
+ return new Pi(Q(-e), Q(t + 1));
+ }
+ return j.Math.abs(e) > j.Math.abs(t) ? e < 0 ? new Pi(Q(-e), Q(t)) : new Pi(Q(-e), Q(t + 1)) : new Pi(Q(e + 1), Q(t));
+ }
+ function G8e(n) {
+ var e, t;
+ t = u(k(n, (nn(), Hc)), 163), e = u(k(n, (G(), Ua)), 303), t == (As(), Fl) ? (H(n, Hc, Qk), H(n, Ua, (Lh(), Ag))) : t == Wb ? (H(n, Hc, Qk), H(n, Ua, (Lh(), dp))) : e == (Lh(), Ag) ? (H(n, Hc, Fl), H(n, Ua, zk)) : e == dp && (H(n, Hc, Wb), H(n, Ua, zk));
+ }
+ function hM() {
+ hM = N, cy = new egn(), FJn = Ze(new li(), (Vi(), Kc), (rr(), lS)), NJn = ju(Ze(new li(), Kc, mS), Or, vS), BJn = Vd(Vd(Dj(ju(Ze(new li(), Vf, ES), Or, jS), Tc), yS), CS), xJn = ju(Ze(Ze(Ze(new li(), Dl, dS), Tc, wS), Tc, Q4), Or, bS), LJn = ju(Ze(Ze(new li(), Tc, Q4), Tc, hS), Or, fS);
+ }
+ function C6() {
+ C6 = N, KJn = Ze(ju(new li(), (Vi(), Or), (rr(), acn)), Kc, lS), zJn = Vd(Vd(Dj(ju(Ze(new li(), Vf, ES), Or, jS), Tc), yS), CS), HJn = ju(Ze(Ze(Ze(new li(), Dl, dS), Tc, wS), Tc, Q4), Or, bS), GJn = Ze(Ze(new li(), Kc, mS), Or, vS), qJn = ju(Ze(Ze(new li(), Tc, Q4), Tc, hS), Or, fS);
+ }
+ function z8e(n, e, t, i, r) {
+ var c, o;
+ (!Wi(e) && e.c.i.c == e.d.i.c || !XIn(Gr(A(M(di, 1), q, 8, 0, [r.i.n, r.n, r.a])), t)) && !Wi(e) && (e.c == r ? u3(e.a, 0, new kr(t)) : Ke(e.a, new kr(t)), i && !Mh(n.a, t) && (o = u(k(e, (nn(), Mr)), 74), o || (o = new ou(), H(e, Mr, o)), c = new kr(t), Ht(o, c, o.c.b, o.c), ci(n.a, c)));
+ }
+ function U8e(n) {
+ var e, t;
+ for (t = new re(ue(Lr(n).a.Kc(), new Mn())); Se(t); )
+ if (e = u(ve(t), 17), e.c.i.k != (Qn(), Qu))
+ throw T(new pw(SN + E7(n) + "' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."));
+ }
+ function W8e(n, e, t) {
+ var i, r, c, o, f, h, l;
+ if (r = YDn(n.Db & 254), r == 0)
+ n.Eb = t;
+ else {
+ if (r == 1)
+ f = F(Zn, rn, 1, 2, 5, 1), c = ux(n, e), c == 0 ? (f[0] = t, f[1] = n.Eb) : (f[0] = n.Eb, f[1] = t);
+ else
+ for (f = F(Zn, rn, 1, r + 1, 5, 1), o = va(n.Eb), i = 2, h = 0, l = 0; i <= 128; i <<= 1)
+ i == e ? f[l++] = t : n.Db & i && (f[l++] = o[h++]);
+ n.Eb = f;
+ }
+ n.Db |= e;
+ }
+ function xNn(n, e, t) {
+ var i, r, c, o;
+ for (this.b = new X(), r = 0, i = 0, o = new E(n); o.a < o.c.c.length; )
+ c = u(y(o), 167), t && Uye(c), W(this.b, c), r += c.o, i += c.p;
+ this.b.c.length > 0 && (c = u(un(this.b, 0), 167), r += c.o, i += c.p), r *= 2, i *= 2, e > 1 ? r = zt(j.Math.ceil(r * e)) : i = zt(j.Math.ceil(i / e)), this.a = new xQ(r, i);
+ }
+ function LNn(n, e, t, i, r, c) {
+ var o, f, h, l, a, d, g, p, v, m, C, S;
+ for (a = i, e.j && e.o ? (p = u(te(n.f, e.A), 57), m = p.d.c + p.d.b, --a) : m = e.a.c + e.a.b, d = r, t.q && t.o ? (p = u(te(n.f, t.C), 57), l = p.d.c, ++d) : l = t.a.c, C = l - m, h = j.Math.max(2, d - a), f = C / h, v = m + f, g = a; g < d; ++g)
+ o = u(c.Xb(g), 128), S = o.a.b, o.a.c = v - S / 2, v += f;
+ }
+ function XY(n, e, t, i, r, c) {
+ var o, f, h, l, a, d;
+ for (l = t.c.length, c && (n.c = F(be, Le, 25, e.length, 15, 1)), o = r ? 0 : e.length - 1; r ? o < e.length : o >= 0; o += r ? 1 : -1) {
+ for (f = e[o], h = i == (J(), Vn) ? r ? zr(f, i) : ma(zr(f, i)) : r ? ma(zr(f, i)) : zr(f, i), c && (n.c[f.p] = h.gc()), d = h.Kc(); d.Ob(); )
+ a = u(d.Pb(), 11), n.d[a.p] = l++;
+ Zt(t, h);
+ }
+ }
+ function NNn(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ for (c = K(Y(n.b.Kc().Pb())), l = K(Y(twe(e.b))), i = If(Qr(n.a), l - t), r = If(Qr(e.a), t - c), a = st(i, r), If(a, 1 / (l - c)), this.a = a, this.b = new X(), f = !0, o = n.b.Kc(), o.Pb(); o.Ob(); )
+ h = K(Y(o.Pb())), f && h - t > oB && (this.b.Fc(t), f = !1), this.b.Fc(h);
+ f && this.b.Fc(t);
+ }
+ function X8e(n) {
+ var e, t, i, r;
+ if (cke(n, n.n), n.d.c.length > 0) {
+ for (qv(n.c); AY(n, u(y(new E(n.e.a)), 121)) < n.e.a.c.length; ) {
+ for (e = R3e(n), r = e.e.e - e.d.e - e.a, e.e.j && (r = -r), i = new E(n.e.a); i.a < i.c.c.length; )
+ t = u(y(i), 121), t.j && (t.e += r);
+ qv(n.c);
+ }
+ qv(n.c), gY(n, u(y(new E(n.e.a)), 121)), GRn(n);
+ }
+ }
+ function V8e(n, e) {
+ var t, i, r, c, o;
+ for (r = u(ct(n.a, (Vw(), SS)), 15).Kc(); r.Ob(); )
+ switch (i = u(r.Pb(), 101), t = u(un(i.j, 0), 113).d.j, c = new lu(i.j), wi(c, new Jbn()), e.g) {
+ case 1:
+ wx(n, c, t, (Hd(), $l), 1);
+ break;
+ case 0:
+ o = W9e(c), wx(n, new ch(c, 0, o), t, (Hd(), $l), 0), wx(n, new ch(c, o, c.c.length), t, $l, 1);
+ }
+ }
+ function Q8e(n, e) {
+ L2();
+ var t, i;
+ if (t = j$(L3(), e.tg()), t) {
+ if (i = t.j, I(n, 239))
+ return ile(u(n, 33)) ? hu(i, (Ho(), vi)) || hu(i, Xn) : hu(i, (Ho(), vi));
+ if (I(n, 352))
+ return hu(i, (Ho(), Yf));
+ if (I(n, 186))
+ return hu(i, (Ho(), Za));
+ if (I(n, 354))
+ return hu(i, (Ho(), D1));
+ }
+ return !0;
+ }
+ function J8e(n, e, t) {
+ var i, r, c, o, f, h;
+ if (r = t, c = r.ak(), Gh(n.e, c)) {
+ if (c.hi()) {
+ for (i = u(n.g, 119), o = 0; o < n.i; ++o)
+ if (f = i[o], tt(f, r) && o != e)
+ throw T(new Hn(yk));
+ }
+ } else
+ for (h = _c(n.e.Tg(), c), i = u(n.g, 119), o = 0; o < n.i; ++o)
+ if (f = i[o], h.rl(f.ak()) && o != e)
+ throw T(new Hn(Mk));
+ return u(Gw(n, e, t), 72);
+ }
+ function BNn(n, e) {
+ if (e instanceof Object)
+ try {
+ if (e.__java$exception = n, navigator.userAgent.toLowerCase().indexOf("msie") != -1 && $doc.documentMode < 9)
+ return;
+ var t = n;
+ Object.defineProperties(e, { cause: { get: function() {
+ var i = t.Zd();
+ return i && i.Xd();
+ } }, suppressed: { get: function() {
+ return t.Yd();
+ } } });
+ } catch {
+ }
+ }
+ function RNn(n, e) {
+ var t, i, r, c, o;
+ if (i = e >> 5, e &= 31, i >= n.d)
+ return n.e < 0 ? (yl(), gR) : (yl(), U4);
+ if (c = n.d - i, r = F(be, Le, 25, c + 1, 15, 1), K5e(r, c, n.a, i, e), n.e < 0) {
+ for (t = 0; t < i && n.a[t] == 0; t++)
+ ;
+ if (t < i || e > 0 && n.a[t] << 32 - e) {
+ for (t = 0; t < c && r[t] == -1; t++)
+ r[t] = 0;
+ t == c && ++c, ++r[t];
+ }
+ }
+ return o = new Pw(n.e, c, r), K5(o), o;
+ }
+ function _Nn(n) {
+ var e, t, i, r;
+ return r = nf(n), t = new u5n(r), i = new s5n(r), e = new X(), Zt(e, (!n.d && (n.d = new Fn(bi, n, 8, 5)), n.d)), Zt(e, (!n.e && (n.e = new Fn(bi, n, 7, 4)), n.e)), u(es(Wc(gt(new $n(null, new xn(e, 16)), t), i), ub(new Vg(), new Qg(), new Jg(), new Yg(), A(M(Nu, 1), z, 132, 0, [(hf(), _b), hs]))), 21);
+ }
+ function KNn(n, e, t, i) {
+ var r, c, o, f, h;
+ if (f = (er(), u(e, 66).Oj()), Gh(n.e, e)) {
+ if (e.hi() && vM(n, e, i, I(e, 99) && (u(e, 18).Bb & Ji) != 0))
+ throw T(new Hn(yk));
+ } else
+ for (h = _c(n.e.Tg(), e), r = u(n.g, 119), o = 0; o < n.i; ++o)
+ if (c = r[o], h.rl(c.ak()))
+ throw T(new Hn(Mk));
+ s6(n, iY(n, e, t), f ? u(i, 72) : uh(e, i));
+ }
+ function Gh(n, e) {
+ er();
+ var t, i, r;
+ return e.$j() ? !0 : e.Zj() == -2 ? e == (z2(), Dp) || e == Op || e == kH || e == yH ? !0 : (r = n.Tg(), yt(r, e) >= 0 ? !1 : (t = rg((bu(), xi), r, e), t ? (i = t.Zj(), (i > 1 || i == -1) && Pd(Er(xi, t)) != 3) : !0)) : !1;
+ }
+ function Y8e(n, e, t, i) {
+ var r, c, o, f, h;
+ return f = Ir(u(D((!e.b && (e.b = new Fn(he, e, 4, 7)), e.b), 0), 82)), h = Ir(u(D((!e.c && (e.c = new Fn(he, e, 5, 8)), e.c), 0), 82)), At(f) == At(h) || fb(h, f) ? null : (o = S8(e), o == t ? i : (c = u(te(n.a, o), 10), c && (r = c.e, r) ? r : null));
+ }
+ function Z8e(n, e) {
+ var t;
+ switch (t = u(k(n, (nn(), JS)), 276), le(e, "Label side selection (" + t + ")", 1), t.g) {
+ case 0:
+ eNn(n, (cs(), kh));
+ break;
+ case 1:
+ eNn(n, (cs(), _l));
+ break;
+ case 2:
+ gRn(n, (cs(), kh));
+ break;
+ case 3:
+ gRn(n, (cs(), _l));
+ break;
+ case 4:
+ JNn(n, (cs(), kh));
+ break;
+ case 5:
+ JNn(n, (cs(), _l));
+ }
+ ce(e);
+ }
+ function VY(n, e, t) {
+ var i, r, c, o, f, h;
+ if (i = Bie(t, n.length), o = n[i], o[0].k == (Qn(), Vt))
+ for (c = e8n(t, o.length), h = e.j, r = 0; r < h.c.length; r++)
+ f = (Ln(r, h.c.length), u(h.c[r], 11)), (t ? f.j == (J(), Vn) : f.j == (J(), Gn)) && on(sn(k(f, (G(), Wk)))) && (js(h, r, u(k(o[c], (G(), rt)), 11)), c += t ? 1 : -1);
+ }
+ function n7e(n, e) {
+ var t, i, r, c, o;
+ o = new X(), t = e;
+ do
+ c = u(te(n.b, t), 128), c.B = t.c, c.D = t.d, o.c[o.c.length] = c, t = u(te(n.k, t), 17);
+ while (t);
+ return i = (Ln(0, o.c.length), u(o.c[0], 128)), i.j = !0, i.A = u(i.d.a.ec().Kc().Pb(), 17).c.i, r = u(un(o, o.c.length - 1), 128), r.q = !0, r.C = u(r.d.a.ec().Kc().Pb(), 17).d.i, o;
+ }
+ function HNn(n) {
+ if (n.g == null)
+ switch (n.p) {
+ case 0:
+ n.g = rle(n) ? (qn(), G4) : (qn(), Ga);
+ break;
+ case 1:
+ n.g = X8(Bae(n));
+ break;
+ case 2:
+ n.g = i7(zle(n));
+ break;
+ case 3:
+ n.g = She(n);
+ break;
+ case 4:
+ n.g = new S9(Ahe(n));
+ break;
+ case 6:
+ n.g = Aa(Phe(n));
+ break;
+ case 5:
+ n.g = Q(W1e(n));
+ break;
+ case 7:
+ n.g = Q3(Kae(n));
+ }
+ return n.g;
+ }
+ function QY(n) {
+ if (n.n == null)
+ switch (n.p) {
+ case 0:
+ n.n = cle(n) ? (qn(), G4) : (qn(), Ga);
+ break;
+ case 1:
+ n.n = X8(Rae(n));
+ break;
+ case 2:
+ n.n = i7(Ule(n));
+ break;
+ case 3:
+ n.n = Ohe(n);
+ break;
+ case 4:
+ n.n = new S9(Dhe(n));
+ break;
+ case 6:
+ n.n = Aa(Ihe(n));
+ break;
+ case 5:
+ n.n = Q(X1e(n));
+ break;
+ case 7:
+ n.n = Q3(_ae(n));
+ }
+ return n.n;
+ }
+ function qNn(n) {
+ var e, t, i, r, c, o, f;
+ for (c = new E(n.a.a); c.a < c.c.c.length; )
+ i = u(y(c), 307), i.g = 0, i.i = 0, i.e.a.$b();
+ for (r = new E(n.a.a); r.a < r.c.c.length; )
+ for (i = u(y(r), 307), t = i.a.a.ec().Kc(); t.Ob(); )
+ for (e = u(t.Pb(), 57), f = e.c.Kc(); f.Ob(); )
+ o = u(f.Pb(), 57), o.a != i && (ci(i.e, o), ++o.a.g, ++o.a.i);
+ }
+ function e7e(n, e) {
+ var t, i, r, c, o, f;
+ if (f = k8(n.a, e.b), !f)
+ throw T(new $r("Invalid hitboxes for scanline overlap calculation."));
+ for (o = !1, c = (i = new T5(new j5(new P9(n.a.a).a).b), new I9(i)); G9(c.a.a); )
+ if (r = (t = pE(c.a), u(t.cd(), 65)), mwe(e.b, r))
+ qie(n.b.a, e.b, r), o = !0;
+ else if (o)
+ break;
+ }
+ function t7e(n) {
+ var e, t, i, r, c;
+ r = u(k(n, (nn(), Va)), 21), c = u(k(n, iP), 21), t = new fn(n.f.a + n.d.b + n.d.c, n.f.b + n.d.d + n.d.a), e = new kr(t), r.Hc((Vu(), sw)) && (i = u(k(n, hv), 8), c.Hc((xu(), Tv)) && (i.a <= 0 && (i.a = 20), i.b <= 0 && (i.b = 20)), e.a = j.Math.max(t.a, i.a), e.b = j.Math.max(t.b, i.b)), Vye(n, t, e);
+ }
+ function GNn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ r = e ? new wwn() : new gwn(), c = !1;
+ do
+ for (c = !1, l = e ? ma(n.b) : n.b, h = l.Kc(); h.Ob(); )
+ for (f = u(h.Pb(), 29), g = $d(f.a), e || new od(g), d = new E(g); d.a < d.c.c.length; )
+ a = u(y(d), 10), r.Mb(a) && (i = a, t = u(k(a, (G(), v0)), 305), o = e ? t.b : t.k, c = lBn(i, o, e, !1));
+ while (c);
+ }
+ function i7e(n, e, t) {
+ var i, r, c, o, f;
+ for (le(t, "Longest path layering", 1), n.a = e, f = n.a.a, n.b = F(be, Le, 25, f.c.length, 15, 1), i = 0, o = new E(f); o.a < o.c.c.length; )
+ r = u(y(o), 10), r.p = i, n.b[i] = -1, ++i;
+ for (c = new E(f); c.a < c.c.c.length; )
+ r = u(y(c), 10), aNn(n, r);
+ f.c = F(Zn, rn, 1, 0, 5, 1), n.a = null, n.b = null, ce(t);
+ }
+ function r7e(n, e) {
+ var t, i, r;
+ e.a ? (k8(n.b, e.b), n.a[e.b.i] = u(rD(n.b, e.b), 81), t = u(iD(n.b, e.b), 81), t && (n.a[t.i] = e.b)) : (i = u(rD(n.b, e.b), 81), i && i == n.a[e.b.i] && i.d && i.d != e.b.d && i.f.Fc(e.b), r = u(iD(n.b, e.b), 81), r && n.a[r.i] == e.b && r.d && r.d != e.b.d && e.b.f.Fc(r), zO(n.b, e.b));
+ }
+ function zNn(n, e) {
+ var t, i, r, c, o, f;
+ return c = n.d, f = K(Y(k(n, (nn(), S1)))), f < 0 && (f = 0, H(n, S1, f)), e.o.b = f, o = j.Math.floor(f / 2), i = new gc(), si(i, (J(), Gn)), Hr(i, e), i.n.b = o, r = new gc(), si(r, Vn), Hr(r, e), r.n.b = o, Ti(n, i), t = new Id(), Pr(t, n), H(t, Mr, null), Ki(t, r), Ti(t, c), hye(e, n, t), d6e(n, t), t;
+ }
+ function c7e(n) {
+ var e, t;
+ return t = u(k(n, (G(), Ac)), 21), e = new li(), t.Hc((or(), Tm)) && (rs(e, IJn), rs(e, bon)), (t.Hc(sv) || on(sn(k(n, (nn(), R_))))) && (rs(e, bon), t.Hc(Mg) && rs(e, DJn)), t.Hc(Ds) && rs(e, PJn), t.Hc(Mm) && rs(e, $Jn), t.Hc(BS) && rs(e, OJn), t.Hc(cv) && rs(e, AJn), t.Hc(uv) && rs(e, SJn), e;
+ }
+ function u7e(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ return i = n.d, c = e.d, f = i + c, h = n.e != e.e ? -1 : 1, f == 2 ? (a = Ni(ui(n.a[0], fr), ui(e.a[0], fr)), g = ge(a), d = ge(Y0(a, 32)), d == 0 ? new l1(h, g) : new Pw(h, 2, A(M(be, 1), Le, 25, 15, [g, d]))) : (t = n.a, r = e.a, o = F(be, Le, 25, f, 15, 1), jge(t, i, r, c, o), l = new Pw(h, f, o), K5(l), l);
+ }
+ function UNn(n, e, t, i) {
+ var r, c;
+ if (e) {
+ if (r = n.a.ue(t.d, e.d), r == 0)
+ return i.d = gU(e, t.e), i.b = !0, e;
+ c = r < 0 ? 0 : 1, e.a[c] = UNn(n, e.a[c], t, i), R0(e.a[c]) && (R0(e.a[1 - c]) ? (e.b = !0, e.a[0].b = !1, e.a[1].b = !1) : R0(e.a[c].a[c]) ? e = eT(e, 1 - c) : R0(e.a[c].a[1 - c]) && (e = oAn(e, 1 - c)));
+ } else
+ return t;
+ return e;
+ }
+ function WNn(n, e, t) {
+ var i, r, c, o;
+ r = n.i, i = n.n, SX(n, (_o(), Zr), r.c + i.b, t), SX(n, nc, r.c + r.b - i.c - t[2], t), o = r.b - i.b - i.c, t[0] > 0 && (t[0] += n.d, o -= t[0]), t[2] > 0 && (t[2] += n.d, o -= t[2]), c = j.Math.max(0, o), t[1] = j.Math.max(t[1], o), SX(n, xc, r.c + i.b + t[0] - (t[1] - o) / 2, t), e == xc && (n.c.b = c, n.c.c = r.c + i.b + (c - o) / 2);
+ }
+ function XNn() {
+ this.c = F(Ci, pr, 25, (J(), A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn])).length, 15, 1), this.b = F(Ci, pr, 25, A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn]).length, 15, 1), this.a = F(Ci, pr, 25, A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn]).length, 15, 1), BG(this.c, xt), BG(this.b, Qt), BG(this.a, Qt);
+ }
+ function jc(n, e, t) {
+ var i, r, c, o;
+ if (e <= t ? (r = e, c = t) : (r = t, c = e), i = 0, n.b == null)
+ n.b = F(be, Le, 25, 2, 15, 1), n.b[0] = r, n.b[1] = c, n.c = !0;
+ else {
+ if (i = n.b.length, n.b[i - 1] + 1 == r) {
+ n.b[i - 1] = c;
+ return;
+ }
+ o = F(be, Le, 25, i + 2, 15, 1), pc(n.b, 0, o, 0, i), n.b = o, n.b[i - 1] >= r && (n.c = !1, n.a = !1), n.b[i++] = r, n.b[i] = c, n.c || Jw(n);
+ }
+ }
+ function s7e(n, e, t) {
+ var i, r, c, o, f, h, l;
+ for (l = e.d, n.a = new Ic(l.c.length), n.c = new we(), f = new E(l); f.a < f.c.c.length; )
+ o = u(y(f), 101), c = new n7(null), W(n.a, c), it(n.c, o, c);
+ for (n.b = new we(), g6e(n, e), i = 0; i < l.c.length - 1; i++)
+ for (h = u(un(e.d, i), 101), r = i + 1; r < l.c.length; r++)
+ Q9e(n, h, u(un(e.d, r), 101), t);
+ }
+ function VNn(n, e, t) {
+ var i, r, c, o, f, h;
+ if (!j3(e)) {
+ for (h = yc(t, (I(e, 14) ? u(e, 14).gc() : $h(e.Kc())) / n.a | 0), le(h, PHn, 1), f = new jgn(), o = 0, c = e.Kc(); c.Ob(); )
+ i = u(c.Pb(), 86), f = of(A(M(gf, 1), rn, 20, 0, [f, new W1(i)])), o < i.f.b && (o = i.f.b);
+ for (r = e.Kc(); r.Ob(); )
+ i = u(r.Pb(), 86), H(i, (uc(), kP), o);
+ ce(h), VNn(n, f, t);
+ }
+ }
+ function o7e(n, e) {
+ var t, i, r, c, o, f, h;
+ for (t = Qt, f = (Qn(), ii), r = new E(e.a); r.a < r.c.c.length; )
+ i = u(y(r), 10), c = i.k, c != ii && (o = Y(k(i, (G(), pun))), o == null ? (t = j.Math.max(t, 0), i.n.b = t + Wz(n.a, c, f)) : i.n.b = (_n(o), o)), h = Wz(n.a, c, f), i.n.b < t + h + i.d.d && (i.n.b = t + h + i.d.d), t = i.n.b + i.o.b + i.d.a, f = c;
+ }
+ function f7e(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ for (c = ng(e, !1, !1), l = I7(c), d = K(Y(hn(e, (a6(), IR)))), r = N_n(l, d + n.a), a = new xx(r), Pr(a, e), it(n.b, e, a), t.c[t.c.length] = a, h = (!e.n && (e.n = new V(Rr, e, 1, 7)), e.n), f = new ie(h); f.e != f.i.gc(); )
+ o = u(oe(f), 137), i = K7(n, o, !0, 0, 0), t.c[t.c.length] = i;
+ return a;
+ }
+ function QNn(n, e, t, i, r) {
+ var c, o, f, h, l, a;
+ if (n.d && n.d.lg(r), c = u(r.Xb(0), 33), iFn(n, t, c, !1) || (o = u(r.Xb(r.gc() - 1), 33), iFn(n, i, o, !0)) || XJ(n, r))
+ return !0;
+ for (a = r.Kc(); a.Ob(); )
+ for (l = u(a.Pb(), 33), h = e.Kc(); h.Ob(); )
+ if (f = u(h.Pb(), 33), aM(n, l, f))
+ return !0;
+ return !1;
+ }
+ function h7e(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ g = e.c.length, d = (l = n.Yg(t), u(l >= 0 ? n._g(l, !1, !0) : Zd(n, t, !1), 58));
+ n:
+ for (c = d.Kc(); c.Ob(); ) {
+ for (r = u(c.Pb(), 56), a = 0; a < g; ++a)
+ if (o = (Ln(a, e.c.length), u(e.c[a], 72)), h = o.dd(), f = o.ak(), i = r.bh(f, !1), h == null ? i != null : !tt(h, i))
+ continue n;
+ return r;
+ }
+ return null;
+ }
+ function l7e(n, e, t, i) {
+ var r, c, o, f;
+ for (r = u(k1(e, (J(), Gn)).Kc().Pb(), 11), c = u(k1(e, Vn).Kc().Pb(), 11), f = new E(n.j); f.a < f.c.c.length; ) {
+ for (o = u(y(f), 11); o.e.c.length != 0; )
+ Ti(u(un(o.e, 0), 17), r);
+ for (; o.g.c.length != 0; )
+ Ki(u(un(o.g, 0), 17), c);
+ }
+ t || H(e, (G(), Xo), null), i || H(e, (G(), Js), null);
+ }
+ function ng(n, e, t) {
+ var i, r;
+ if ((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a).i == 0)
+ return xV(n);
+ if (i = u(D((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a), 0), 202), e && (de((!i.a && (i.a = new Yt(to, i, 5)), i.a)), D3(i, 0), F3(i, 0), O3(i, 0), $3(i, 0)), t)
+ for (r = (!n.a && (n.a = new V(Tt, n, 6, 6)), n.a); r.i > 1; )
+ Cb(r, r.i - 1);
+ return i;
+ }
+ function a7e(n, e) {
+ var t, i, r, c, o, f, h;
+ for (le(e, "Comment post-processing", 1), c = new E(n.b); c.a < c.c.c.length; ) {
+ for (r = u(y(c), 29), i = new X(), f = new E(r.a); f.a < f.c.c.length; )
+ o = u(y(f), 10), h = u(k(o, (G(), mp)), 15), t = u(k(o, bp), 15), (h || t) && (dCe(o, h, t), h && Zt(i, h), t && Zt(i, t));
+ Zt(r.a, i);
+ }
+ ce(e);
+ }
+ function JNn(n, e) {
+ var t, i, r, c, o, f, h;
+ for (t = new gw(), c = new E(n.b); c.a < c.c.c.length; ) {
+ for (r = u(y(c), 29), h = !0, i = 0, f = new E(r.a); f.a < f.c.c.length; )
+ switch (o = u(y(f), 10), o.k.g) {
+ case 4:
+ ++i;
+ case 1:
+ bX(t, o);
+ break;
+ case 0:
+ a6e(o, e);
+ default:
+ t.b == t.c || _Bn(t, i, h, !1, e), h = !1, i = 0;
+ }
+ t.b == t.c || _Bn(t, i, h, !0, e);
+ }
+ }
+ function d7e(n, e) {
+ var t, i, r, c, o, f, h;
+ for (r = new X(), t = 0; t <= n.i; t++)
+ i = new Bs(e), i.p = n.i - t, r.c[r.c.length] = i;
+ for (f = new E(n.o); f.a < f.c.c.length; )
+ o = u(y(f), 10), jr(o, u(un(r, n.i - n.f[o.p]), 29));
+ for (c = new E(r); c.a < c.c.c.length; )
+ h = u(y(c), 29), h.a.c.length == 0 && F5(c);
+ e.b.c = F(Zn, rn, 1, 0, 5, 1), Zt(e.b, r);
+ }
+ function JY(n, e) {
+ var t, i, r, c, o, f;
+ for (t = 0, f = new E(e); f.a < f.c.c.length; ) {
+ for (o = u(y(f), 11), nQ(n.b, n.d[o.p]), r = new uf(o.b); Kr(r.a) || Kr(r.b); )
+ i = u(Kr(r.a) ? y(r.a) : y(r.b), 17), c = MG(n, o == i.c ? i.d : i.c), c > n.d[o.p] && (t += jX(n.b, c), hl(n.a, Q(c)));
+ for (; !Hv(n.a); )
+ ZX(n.b, u(y2(n.a), 19).a);
+ }
+ return t;
+ }
+ function YNn(n, e, t) {
+ var i, r, c, o;
+ for (c = (!e.a && (e.a = new V(Pt, e, 10, 11)), e.a).i, r = new ie((!e.a && (e.a = new V(Pt, e, 10, 11)), e.a)); r.e != r.i.gc(); )
+ i = u(oe(r), 33), (!i.a && (i.a = new V(Pt, i, 10, 11)), i.a).i == 0 || (c += YNn(n, i, !1));
+ if (t)
+ for (o = At(e); o; )
+ c += (!o.a && (o.a = new V(Pt, o, 10, 11)), o.a).i, o = At(o);
+ return c;
+ }
+ function Cb(n, e) {
+ var t, i, r, c;
+ return n.ej() ? (i = null, r = n.fj(), n.ij() && (i = n.kj(n.pi(e), null)), t = n.Zi(4, c = H2(n, e), null, e, r), n.bj() && c != null && (i = n.dj(c, i)), i ? (i.Ei(t), i.Fi()) : n.$i(t), c) : (c = H2(n, e), n.bj() && c != null && (i = n.dj(c, null), i && i.Fi()), c);
+ }
+ function b7e(n) {
+ var e, t, i, r, c, o, f, h, l, a;
+ for (l = n.a, e = new hi(), h = 0, i = new E(n.d); i.a < i.c.c.length; ) {
+ for (t = u(y(i), 222), a = 0, Lw(t.b, new qln()), o = _e(t.b, 0); o.b != o.d.c; )
+ c = u(Re(o), 222), e.a._b(c) && (r = t.c, f = c.c, a < f.d + f.a + l && a + r.a + l > f.d && (a = f.d + f.a + l));
+ t.c.d = a, e.a.zc(t, e), h = j.Math.max(h, t.c.d + t.c.a);
+ }
+ return h;
+ }
+ function or() {
+ or = N, NS = new q0("COMMENTS", 0), Ds = new q0("EXTERNAL_PORTS", 1), Tm = new q0("HYPEREDGES", 2), BS = new q0("HYPERNODES", 3), sv = new q0("NON_FREE_PORTS", 4), Mg = new q0("NORTH_SOUTH_PORTS", 5), Mm = new q0(aHn, 6), cv = new q0("CENTER_LABELS", 7), uv = new q0("END_LABELS", 8), RS = new q0("PARTITIONS", 9);
+ }
+ function Tb(n) {
+ var e, t, i, r, c;
+ for (r = new X(), e = new S5((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)), i = new re(ue(qh(n).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 79), I(D((!t.b && (t.b = new Fn(he, t, 4, 7)), t.b), 0), 186) || (c = Ir(u(D((!t.c && (t.c = new Fn(he, t, 5, 8)), t.c), 0), 82)), e.a._b(c) || (r.c[r.c.length] = c));
+ return r;
+ }
+ function w7e(n) {
+ var e, t, i, r, c, o;
+ for (c = new hi(), e = new S5((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)), r = new re(ue(qh(n).a.Kc(), new Mn())); Se(r); )
+ i = u(ve(r), 79), I(D((!i.b && (i.b = new Fn(he, i, 4, 7)), i.b), 0), 186) || (o = Ir(u(D((!i.c && (i.c = new Fn(he, i, 5, 8)), i.c), 0), 82)), e.a._b(o) || (t = c.a.zc(o, c), t == null));
+ return c;
+ }
+ function g7e(n, e, t, i, r) {
+ return i < 0 ? (i = Qw(n, r, A(M(tn, 1), q, 2, 6, [IL, OL, DL, $L, V2, FL, xL, LL, NL, BL, RL, _L]), e), i < 0 && (i = Qw(n, r, A(M(tn, 1), q, 2, 6, ["Jan", "Feb", "Mar", "Apr", V2, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), e)), i < 0 ? !1 : (t.k = i, !0)) : i > 0 ? (t.k = i - 1, !0) : !1;
+ }
+ function p7e(n, e, t, i, r) {
+ return i < 0 ? (i = Qw(n, r, A(M(tn, 1), q, 2, 6, [IL, OL, DL, $L, V2, FL, xL, LL, NL, BL, RL, _L]), e), i < 0 && (i = Qw(n, r, A(M(tn, 1), q, 2, 6, ["Jan", "Feb", "Mar", "Apr", V2, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), e)), i < 0 ? !1 : (t.k = i, !0)) : i > 0 ? (t.k = i - 1, !0) : !1;
+ }
+ function v7e(n, e, t, i, r, c) {
+ var o, f, h, l;
+ if (f = 32, i < 0) {
+ if (e[0] >= n.length || (f = Di(n, e[0]), f != 43 && f != 45) || (++e[0], i = tM(n, e), i < 0))
+ return !1;
+ f == 45 && (i = -i);
+ }
+ return f == 32 && e[0] - t == 2 && r.b == 2 && (h = new Tj(), l = h.q.getFullYear() - Cl + Cl - 80, o = l % 100, c.a = i == o, i += (l / 100 | 0) * 100 + (i < o ? 100 : 0)), c.p = i, !0;
+ }
+ function ZNn(n, e) {
+ var t, i, r, c, o;
+ At(n) && (o = u(k(e, (nn(), Va)), 174), B(hn(n, Nt)) === B((Ai(), Hl)) && gr(n, Nt, jf), i = (H0(), new B0(At(n))), c = new WO(At(n) ? new B0(At(n)) : null, n), r = f_n(i, c, !1, !0), ko(o, (Vu(), sw)), t = u(k(e, hv), 8), t.a = j.Math.max(r.a, t.a), t.b = j.Math.max(r.b, t.b));
+ }
+ function m7e(n, e, t) {
+ var i, r, c, o, f, h;
+ for (o = u(k(n, (G(), C_)), 15).Kc(); o.Ob(); ) {
+ switch (c = u(o.Pb(), 10), u(k(c, (nn(), Hc)), 163).g) {
+ case 2:
+ jr(c, e);
+ break;
+ case 4:
+ jr(c, t);
+ }
+ for (r = new re(ue(_h(c).a.Kc(), new Mn())); Se(r); )
+ i = u(ve(r), 17), !(i.c && i.d) && (f = !i.d, h = u(k(i, mun), 11), f ? Ti(i, h) : Ki(i, h));
+ }
+ }
+ function lM() {
+ lM = N, n_ = new E2(NM, 0, (J(), Kn), Kn), i_ = new E2(aN, 1, ae, ae), ZR = new E2(lN, 2, Vn, Vn), u_ = new E2(dN, 3, Gn, Gn), t_ = new E2("NORTH_WEST_CORNER", 4, Gn, Kn), e_ = new E2("NORTH_EAST_CORNER", 5, Kn, Vn), c_ = new E2("SOUTH_WEST_CORNER", 6, ae, Gn), r_ = new E2("SOUTH_EAST_CORNER", 7, Vn, ae);
+ }
+ function eg() {
+ eg = N, Nfn = A(M(Jl, 1), QL, 25, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368e3, { l: 3506176, m: 794077, h: 1 }, { l: 884736, m: 916411, h: 20 }, { l: 3342336, m: 3912489, h: 363 }, { l: 589824, m: 3034138, h: 6914 }, { l: 3407872, m: 1962506, h: 138294 }]), j.Math.pow(2, -65);
+ }
+ function nBn(n, e) {
+ var t, i, r, c, o;
+ if (n.c.length == 0)
+ return new Pi(Q(0), Q(0));
+ for (t = (Ln(0, n.c.length), u(n.c[0], 11)).j, o = 0, c = e.g, i = e.g + 1; o < n.c.length - 1 && t.g < c; )
+ ++o, t = (Ln(o, n.c.length), u(n.c[o], 11)).j;
+ for (r = o; r < n.c.length - 1 && t.g < i; )
+ ++r, t = (Ln(o, n.c.length), u(n.c[o], 11)).j;
+ return new Pi(Q(o), Q(r));
+ }
+ function k7e(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ for (c = e.c.length, o = (Ln(t, e.c.length), u(e.c[t], 286)), f = o.a.o.a, d = o.c, g = 0, l = o.c; l <= o.f; l++) {
+ if (f <= n.a[l])
+ return l;
+ for (a = n.a[l], h = null, r = t + 1; r < c; r++)
+ i = (Ln(r, e.c.length), u(e.c[r], 286)), i.c <= l && i.f >= l && (h = i);
+ h && (a = j.Math.max(a, h.a.o.a)), a > g && (d = l, g = a);
+ }
+ return d;
+ }
+ function y7e(n, e, t) {
+ var i, r, c;
+ if (n.e = t, n.d = 0, n.b = 0, n.f = 1, n.i = e, (n.e & 16) == 16 && (n.i = ske(n.i)), n.j = n.i.length, Qe(n), c = Xd(n), n.d != n.j)
+ throw T(new Ce(Pe((Ee(), Fqn))));
+ if (n.g) {
+ for (i = 0; i < n.g.a.c.length; i++)
+ if (r = u(Ad(n.g, i), 584), n.f <= r.a)
+ throw T(new Ce(Pe((Ee(), xqn))));
+ n.g.a.c = F(Zn, rn, 1, 0, 5, 1);
+ }
+ return c;
+ }
+ function j7e(n, e) {
+ var t, i, r;
+ if (e == null) {
+ for (i = (!n.a && (n.a = new V(n1, n, 9, 5)), new ie(n.a)); i.e != i.i.gc(); )
+ if (t = u(oe(i), 678), r = t.c, (r ?? t.zb) == null)
+ return t;
+ } else
+ for (i = (!n.a && (n.a = new V(n1, n, 9, 5)), new ie(n.a)); i.e != i.i.gc(); )
+ if (t = u(oe(i), 678), An(e, (r = t.c, r ?? t.zb)))
+ return t;
+ return null;
+ }
+ function qx(n, e) {
+ var t;
+ switch (t = null, e.g) {
+ case 1:
+ n.e.Xe((Xe(), JK)) && (t = u(n.e.We(JK), 249));
+ break;
+ case 3:
+ n.e.Xe((Xe(), YK)) && (t = u(n.e.We(YK), 249));
+ break;
+ case 2:
+ n.e.Xe((Xe(), QK)) && (t = u(n.e.We(QK), 249));
+ break;
+ case 4:
+ n.e.Xe((Xe(), ZK)) && (t = u(n.e.We(ZK), 249));
+ }
+ return !t && (t = u(n.e.We((Xe(), bhn)), 249)), t;
+ }
+ function eBn(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ for (e.p = 1, c = e.c, d = Wd(e, (ur(), Lc)).Kc(); d.Ob(); )
+ for (a = u(d.Pb(), 11), r = new E(a.g); r.a < r.c.c.length; )
+ i = u(y(r), 17), l = i.d.i, e != l && (o = l.c, o.p <= c.p && (f = c.p + 1, f == t.b.c.length ? (h = new Bs(t), h.p = f, W(t.b, h), jr(l, h)) : (h = u(un(t.b, f), 29), jr(l, h)), eBn(n, l, t)));
+ }
+ function tBn(n, e, t) {
+ var i, r, c, o, f, h;
+ for (r = t, c = 0, f = new E(e); f.a < f.c.c.length; )
+ o = u(y(f), 33), gr(o, (pb(), TP), Q(r++)), h = Tb(o), i = j.Math.atan2(o.j + o.f / 2, o.i + o.g / 2), i += i < 0 ? ag : 0, i < 0.7853981633974483 || i > xHn ? wi(h, n.b) : i <= xHn && i > LHn ? wi(h, n.d) : i <= LHn && i > NHn ? wi(h, n.c) : i <= NHn && wi(h, n.a), c = tBn(n, h, c);
+ return r;
+ }
+ function yl() {
+ yl = N;
+ var n;
+ for (qA = new l1(1, 1), pR = new l1(1, 10), U4 = new l1(0, 0), gR = new l1(-1, 1), xin = A(M(vg, 1), q, 91, 0, [U4, qA, new l1(1, 2), new l1(1, 3), new l1(1, 4), new l1(1, 5), new l1(1, 6), new l1(1, 7), new l1(1, 8), new l1(1, 9), pR]), GA = F(vg, q, 91, 32, 0, 1), n = 0; n < GA.length; n++)
+ GA[n] = m7(Ph(1, n));
+ }
+ function E7e(n, e, t, i, r, c) {
+ var o, f, h, l;
+ for (f = !Wv(gt(n.Oc(), new Fv(new Zdn()))).sd((ua(), X4)), o = n, c == (sr(), Jh) && (o = I(o, 152) ? I2(u(o, 152)) : I(o, 131) ? u(o, 131).a : I(o, 54) ? new od(o) : new K0(o)), l = o.Kc(); l.Ob(); )
+ h = u(l.Pb(), 70), h.n.a = e.a, f ? h.n.b = e.b + (i.b - h.o.b) / 2 : r ? h.n.b = e.b : h.n.b = e.b + i.b - h.o.b, e.a += h.o.a + t;
+ }
+ function iBn(n, e, t, i) {
+ var r, c, o, f, h, l;
+ for (r = (i.c + i.a) / 2, Rs(e.j), Ke(e.j, r), Rs(t.e), Ke(t.e, r), l = new o8n(), f = new E(n.f); f.a < f.c.c.length; )
+ c = u(y(f), 129), h = c.a, dx(l, e, h), dx(l, t, h);
+ for (o = new E(n.k); o.a < o.c.c.length; )
+ c = u(y(o), 129), h = c.b, dx(l, e, h), dx(l, t, h);
+ return l.b += 2, l.a += NTn(e, n.q), l.a += NTn(n.q, t), l;
+ }
+ function rBn(n, e, t) {
+ var i, r, c, o, f;
+ if (!j3(e)) {
+ for (f = yc(t, (I(e, 14) ? u(e, 14).gc() : $h(e.Kc())) / n.a | 0), le(f, PHn, 1), o = new Cgn(), c = null, r = e.Kc(); r.Ob(); )
+ i = u(r.Pb(), 86), o = of(A(M(gf, 1), rn, 20, 0, [o, new W1(i)])), c && (H(c, (uc(), YJn), i), H(i, pK, c), O$(i) == O$(c) && (H(c, vK, i), H(i, mP, c))), c = i;
+ ce(f), rBn(n, o, t);
+ }
+ }
+ function cBn(n) {
+ var e, t, i, r, c, o, f;
+ for (t = n.i, e = n.n, f = t.d, n.f == (Qc(), Ol) ? f += (t.a - n.e.b) / 2 : n.f == To && (f += t.a - n.e.b), r = new E(n.d); r.a < r.c.c.length; ) {
+ switch (i = u(y(r), 181), o = i.rf(), c = new Li(), c.b = f, f += o.b + n.a, n.b.g) {
+ case 0:
+ c.a = t.c + e.b;
+ break;
+ case 1:
+ c.a = t.c + e.b + (t.b - o.a) / 2;
+ break;
+ case 2:
+ c.a = t.c + t.b - e.c - o.a;
+ }
+ i.tf(c);
+ }
+ }
+ function uBn(n) {
+ var e, t, i, r, c, o, f;
+ for (t = n.i, e = n.n, f = t.c, n.b == (Cu(), Il) ? f += (t.b - n.e.a) / 2 : n.b == Co && (f += t.b - n.e.a), r = new E(n.d); r.a < r.c.c.length; ) {
+ switch (i = u(y(r), 181), o = i.rf(), c = new Li(), c.a = f, f += o.a + n.a, n.f.g) {
+ case 0:
+ c.b = t.d + e.d;
+ break;
+ case 1:
+ c.b = t.d + e.d + (t.a - o.b) / 2;
+ break;
+ case 2:
+ c.b = t.d + t.a - e.a - o.b;
+ }
+ i.tf(c);
+ }
+ }
+ function C7e(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v;
+ a = t.a.c, o = t.a.c + t.a.b, c = u(te(t.c, e), 459), p = c.f, v = c.a, h = new fn(a, p), d = new fn(o, v), r = a, t.p || (r += n.c), r += t.F + t.v * n.b, l = new fn(r, p), g = new fn(r, v), V5(e.a, A(M(di, 1), q, 8, 0, [h, l])), f = t.d.a.gc() > 1, f && (i = new fn(r, t.b), Ke(e.a, i)), V5(e.a, A(M(di, 1), q, 8, 0, [g, d]));
+ }
+ function sBn(n) {
+ gd(n, new Oa(ad(fd(ld(hd(new na(), gA), "ELK Randomizer"), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new F2n()))), Z(n, gA, s0, zhn), Z(n, gA, $b, 15), Z(n, gA, HM, Q(0)), Z(n, gA, ep, D4);
+ }
+ function YY() {
+ YY = N;
+ var n, e, t, i, r, c;
+ for (v9 = F(mu, wg, 25, 255, 15, 1), oI = F(xs, Bf, 25, 16, 15, 1), e = 0; e < 255; e++)
+ v9[e] = -1;
+ for (t = 57; t >= 48; t--)
+ v9[t] = t - 48 << 24 >> 24;
+ for (i = 70; i >= 65; i--)
+ v9[i] = i - 65 + 10 << 24 >> 24;
+ for (r = 102; r >= 97; r--)
+ v9[r] = r - 97 + 10 << 24 >> 24;
+ for (c = 0; c < 10; c++)
+ oI[c] = 48 + c & Wt;
+ for (n = 10; n <= 15; n++)
+ oI[n] = 65 + n - 10 & Wt;
+ }
+ function aM(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ return f = e.i - n.g / 2, h = t.i - n.g / 2, l = e.j - n.g / 2, a = t.j - n.g / 2, c = e.g + n.g / 2, o = t.g + n.g / 2, i = e.f + n.g / 2, r = t.f + n.g / 2, f < h + o && h < f && l < a + r && a < l || h < f + c && f < h && a < l + i && l < a || f < h + o && h < f && l < a && a < l + i ? !0 : h < f + c && f < h && l < a + r && a < l;
+ }
+ function T7e(n) {
+ var e, t, i, r, c;
+ r = u(k(n, (nn(), Va)), 21), c = u(k(n, iP), 21), t = new fn(n.f.a + n.d.b + n.d.c, n.f.b + n.d.d + n.d.a), e = new kr(t), r.Hc((Vu(), sw)) && (i = u(k(n, hv), 8), c.Hc((xu(), Tv)) && (i.a <= 0 && (i.a = 20), i.b <= 0 && (i.b = 20)), e.a = j.Math.max(t.a, i.a), e.b = j.Math.max(t.b, i.b)), on(sn(k(n, H_))) || Xye(n, t, e);
+ }
+ function M7e(n, e) {
+ var t, i, r, c;
+ for (c = zr(e, (J(), ae)).Kc(); c.Ob(); )
+ i = u(c.Pb(), 11), t = u(k(i, (G(), Mu)), 10), t && jo(lo(ho(ao(fo(new Ls(), 0), 0.1), n.i[e.p].d), n.i[t.p].a));
+ for (r = zr(e, Kn).Kc(); r.Ob(); )
+ i = u(r.Pb(), 11), t = u(k(i, (G(), Mu)), 10), t && jo(lo(ho(ao(fo(new Ls(), 0), 0.1), n.i[t.p].d), n.i[e.p].a));
+ }
+ function Gx(n) {
+ var e, t, i, r, c, o;
+ if (!n.c) {
+ if (o = new J2n(), e = b9, c = e.a.zc(n, e), c == null) {
+ for (i = new ie(wc(n)); i.e != i.i.gc(); )
+ t = u(oe(i), 87), r = pM(t), I(r, 88) && $t(o, Gx(u(r, 26))), me(o, t);
+ e.a.Bc(n) != null, e.a.gc() == 0;
+ }
+ A2e(o), ab(o), n.c = new Ew((u(D(R((sl(), Nn).o), 15), 18), o.i), o.g), Iu(n).b &= -33;
+ }
+ return n.c;
+ }
+ function ZY(n) {
+ var e;
+ if (n.c != 10)
+ throw T(new Ce(Pe((Ee(), yA))));
+ switch (e = n.a, e) {
+ case 110:
+ e = 10;
+ break;
+ case 114:
+ e = 13;
+ break;
+ case 116:
+ e = 9;
+ break;
+ case 92:
+ case 124:
+ case 46:
+ case 94:
+ case 45:
+ case 63:
+ case 42:
+ case 43:
+ case 123:
+ case 125:
+ case 40:
+ case 41:
+ case 91:
+ case 93:
+ break;
+ default:
+ throw T(new Ce(Pe((Ee(), Is))));
+ }
+ return e;
+ }
+ function oBn(n) {
+ var e, t, i, r, c;
+ if (n.l == 0 && n.m == 0 && n.h == 0)
+ return "0";
+ if (n.h == tk && n.m == 0 && n.l == 0)
+ return "-9223372036854775808";
+ if (n.h >> 19)
+ return "-" + oBn(G3(n));
+ for (t = n, i = ""; !(t.l == 0 && t.m == 0 && t.h == 0); ) {
+ if (r = E$($M), t = IZ(t, r, !0), e = "" + k8n(Pl), !(t.l == 0 && t.m == 0 && t.h == 0))
+ for (c = 9 - e.length; c > 0; c--)
+ e = "0" + e;
+ i = e + i;
+ }
+ return i;
+ }
+ function A7e() {
+ if (!Object.create || !Object.getOwnPropertyNames)
+ return !1;
+ var n = "__proto__", e = /* @__PURE__ */ Object.create(null);
+ if (e[n] !== void 0)
+ return !1;
+ var t = Object.getOwnPropertyNames(e);
+ return !(t.length != 0 || (e[n] = 42, e[n] !== 42) || Object.getOwnPropertyNames(e).length == 0);
+ }
+ function S7e(n) {
+ var e, t, i, r, c, o, f;
+ for (e = !1, t = 0, r = new E(n.d.b); r.a < r.c.c.length; )
+ for (i = u(y(r), 29), i.p = t++, o = new E(i.a); o.a < o.c.c.length; )
+ c = u(y(o), 10), !e && !j3(_h(c)) && (e = !0);
+ f = pt((sr(), mh), A(M(e9, 1), z, 103, 0, [Ys, Ao])), e || (ko(f, Jh), ko(f, Qh)), n.a = new oIn(f), Eu(n.f), Eu(n.b), Eu(n.e), Eu(n.g);
+ }
+ function P7e(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ for (i = t.c, r = t.d, f = tf(e.c), h = tf(e.d), i == e.c ? (f = RY(n, f, r), h = wxn(e.d)) : (f = wxn(e.c), h = RY(n, h, r)), l = new mj(e.a), Ht(l, f, l.a, l.a.a), Ht(l, h, l.c.b, l.c), o = e.c == i, d = new Zmn(), c = 0; c < l.b - 1; ++c)
+ a = new Pi(u(qo(l, c), 8), u(qo(l, c + 1), 8)), o && c == 0 || !o && c == l.b - 2 ? d.b = a : W(d.a, a);
+ return d;
+ }
+ function I7e(n, e) {
+ var t, i, r, c;
+ if (c = n.j.g - e.j.g, c != 0)
+ return c;
+ if (t = u(k(n, (nn(), P1)), 19), i = u(k(e, P1), 19), t && i && (r = t.a - i.a, r != 0))
+ return r;
+ switch (n.j.g) {
+ case 1:
+ return ni(n.n.a, e.n.a);
+ case 2:
+ return ni(n.n.b, e.n.b);
+ case 3:
+ return ni(e.n.a, n.n.a);
+ case 4:
+ return ni(e.n.b, n.n.b);
+ default:
+ throw T(new $r($nn));
+ }
+ }
+ function nZ(n, e, t, i) {
+ var r, c, o, f, h;
+ if ($h((w8(), new re(ue(_h(e).a.Kc(), new Mn())))) >= n.a || !RJ(e, t))
+ return -1;
+ if (j3(u(i.Kb(e), 20)))
+ return 1;
+ for (r = 0, o = u(i.Kb(e), 20).Kc(); o.Ob(); )
+ if (c = u(o.Pb(), 17), h = c.c.i == e ? c.d.i : c.c.i, f = nZ(n, h, t, i), f == -1 || (r = j.Math.max(r, f), r > n.c - 1))
+ return -1;
+ return r + 1;
+ }
+ function fBn(n, e) {
+ var t, i, r, c, o, f;
+ if (B(e) === B(n))
+ return !0;
+ if (!I(e, 15) || (i = u(e, 15), f = n.gc(), i.gc() != f))
+ return !1;
+ if (o = i.Kc(), n.ni()) {
+ for (t = 0; t < f; ++t)
+ if (r = n.ki(t), c = o.Pb(), r == null ? c != null : !tt(r, c))
+ return !1;
+ } else
+ for (t = 0; t < f; ++t)
+ if (r = n.ki(t), c = o.Pb(), B(r) !== B(c))
+ return !1;
+ return !0;
+ }
+ function hBn(n, e) {
+ var t, i, r, c, o, f;
+ if (n.f > 0) {
+ if (n.qj(), e != null) {
+ for (c = 0; c < n.d.length; ++c)
+ if (t = n.d[c], t) {
+ for (i = u(t.g, 367), f = t.i, o = 0; o < f; ++o)
+ if (r = i[o], tt(e, r.dd()))
+ return !0;
+ }
+ } else
+ for (c = 0; c < n.d.length; ++c)
+ if (t = n.d[c], t) {
+ for (i = u(t.g, 367), f = t.i, o = 0; o < f; ++o)
+ if (r = i[o], B(e) === B(r.dd()))
+ return !0;
+ }
+ }
+ return !1;
+ }
+ function O7e(n, e, t) {
+ var i, r, c, o;
+ le(t, "Orthogonally routing hierarchical port edges", 1), n.a = 0, i = mje(e), EEe(e, i), rEe(n, e, i), jCe(e), r = u(k(e, (nn(), Nt)), 98), c = e.b, s_n((Ln(0, c.c.length), u(c.c[0], 29)), r, e), s_n(u(un(c, c.c.length - 1), 29), r, e), o = e.b, mRn((Ln(0, o.c.length), u(o.c[0], 29))), mRn(u(un(o, o.c.length - 1), 29)), ce(t);
+ }
+ function eZ(n) {
+ switch (n) {
+ case 48:
+ case 49:
+ case 50:
+ case 51:
+ case 52:
+ case 53:
+ case 54:
+ case 55:
+ case 56:
+ case 57:
+ return n - 48 << 24 >> 24;
+ case 97:
+ case 98:
+ case 99:
+ case 100:
+ case 101:
+ case 102:
+ return n - 97 + 10 << 24 >> 24;
+ case 65:
+ case 66:
+ case 67:
+ case 68:
+ case 69:
+ case 70:
+ return n - 65 + 10 << 24 >> 24;
+ default:
+ throw T(new Sf("Invalid hexadecimal"));
+ }
+ }
+ function D7e(n, e, t) {
+ var i, r, c, o;
+ for (le(t, "Processor order nodes", 2), n.a = K(Y(k(e, (n0(), Con)))), r = new Ct(), o = _e(e.b, 0); o.b != o.d.c; )
+ c = u(Re(o), 86), on(sn(k(c, (uc(), rw)))) && Ht(r, c, r.c.b, r.c);
+ i = (ne(r.b != 0), u(r.a.a.c, 86)), PRn(n, i), !t.b && X$(t, 1), cZ(n, i, 0 - K(Y(k(i, (uc(), kP)))) / 2, 0), !t.b && X$(t, 1), ce(t);
+ }
+ function dM() {
+ dM = N, brn = new kw("SPIRAL", 0), hrn = new kw("LINE_BY_LINE", 1), lrn = new kw("MANHATTAN", 2), frn = new kw("JITTER", 3), ER = new kw("QUADRANTS_LINE_BY_LINE", 4), drn = new kw("QUADRANTS_MANHATTAN", 5), arn = new kw("QUADRANTS_JITTER", 6), orn = new kw("COMBINE_LINE_BY_LINE_MANHATTAN", 7), srn = new kw("COMBINE_JITTER_MANHATTAN", 8);
+ }
+ function lBn(n, e, t, i) {
+ var r, c, o, f, h, l;
+ for (h = ax(n, t), l = ax(e, t), r = !1; h && l && (i || S3e(h, l, t)); )
+ o = ax(h, t), f = ax(l, t), H8(e), H8(n), c = h.c, gL(h, !1), gL(l, !1), t ? (vb(e, l.p, c), e.p = l.p, vb(n, h.p + 1, c), n.p = h.p) : (vb(n, h.p, c), n.p = h.p, vb(e, l.p + 1, c), e.p = l.p), jr(h, null), jr(l, null), h = o, l = f, r = !0;
+ return r;
+ }
+ function $7e(n, e, t, i) {
+ var r, c, o, f, h;
+ for (r = !1, c = !1, f = new E(i.j); f.a < f.c.c.length; )
+ o = u(y(f), 11), B(k(o, (G(), rt))) === B(t) && (o.g.c.length == 0 ? o.e.c.length == 0 || (r = !0) : c = !0);
+ return h = 0, r && r ^ c ? h = t.j == (J(), Kn) ? -n.e[i.c.p][i.p] : e - n.e[i.c.p][i.p] : c && r ^ c ? h = n.e[i.c.p][i.p] + 1 : r && c && (h = t.j == (J(), Kn) ? 0 : e / 2), h;
+ }
+ function zx(n, e, t, i, r, c, o, f) {
+ var h, l, a;
+ for (h = 0, e != null && (h ^= m1(e.toLowerCase())), t != null && (h ^= m1(t)), i != null && (h ^= m1(i)), o != null && (h ^= m1(o)), f != null && (h ^= m1(f)), l = 0, a = c.length; l < a; l++)
+ h ^= m1(c[l]);
+ n ? h |= 256 : h &= -257, r ? h |= 16 : h &= -17, this.f = h, this.i = e == null ? null : (_n(e), e), this.a = t, this.d = i, this.j = c, this.g = o, this.e = f;
+ }
+ function tZ(n, e, t) {
+ var i, r;
+ switch (r = null, e.g) {
+ case 1:
+ r = (du(), Vrn);
+ break;
+ case 2:
+ r = (du(), Jrn);
+ }
+ switch (i = null, t.g) {
+ case 1:
+ i = (du(), Qrn);
+ break;
+ case 2:
+ i = (du(), Xrn);
+ break;
+ case 3:
+ i = (du(), Yrn);
+ break;
+ case 4:
+ i = (du(), Zrn);
+ }
+ return r && i ? v2(n.j, new evn(new Ku(A(M(BTe, 1), rn, 169, 0, [u(pe(r), 169), u(pe(i), 169)])))) : (Pn(), Pn(), cr);
+ }
+ function F7e(n) {
+ var e, t, i;
+ switch (e = u(k(n, (nn(), hv)), 8), H(n, hv, new fn(e.b, e.a)), u(k(n, Qf), 248).g) {
+ case 1:
+ H(n, Qf, (oh(), xP));
+ break;
+ case 2:
+ H(n, Qf, (oh(), $P));
+ break;
+ case 3:
+ H(n, Qf, (oh(), ly));
+ break;
+ case 4:
+ H(n, Qf, (oh(), ay));
+ }
+ (n.q ? n.q : (Pn(), Pn(), ph))._b(nw) && (t = u(k(n, nw), 8), i = t.a, t.a = t.b, t.b = i);
+ }
+ function aBn(n, e, t, i, r, c) {
+ if (this.b = t, this.d = r, n >= e.length)
+ throw T(new mr("Greedy SwitchDecider: Free layer not in graph."));
+ this.c = e[n], this.e = new b8(i), Y$(this.e, this.c, (J(), Gn)), this.i = new b8(i), Y$(this.i, this.c, Vn), this.f = new fCn(this.c), this.a = !c && r.i && !r.s && this.c[0].k == (Qn(), Vt), this.a && Q5e(this, n, e.length);
+ }
+ function dBn(n, e) {
+ var t, i, r, c, o, f;
+ c = !n.B.Hc((xu(), Sy)), o = n.B.Hc(sH), n.a = new o$n(o, c, n.c), n.n && GW(n.a.n, n.n), zI(n.g, (_o(), xc), n.a), e || (i = new l6(1, c, n.c), i.n.a = n.k, m2(n.p, (J(), Kn), i), r = new l6(1, c, n.c), r.n.d = n.k, m2(n.p, ae, r), f = new l6(0, c, n.c), f.n.c = n.k, m2(n.p, Gn, f), t = new l6(0, c, n.c), t.n.b = n.k, m2(n.p, Vn, t));
+ }
+ function x7e(n) {
+ var e, t, i;
+ switch (e = u(k(n.d, (nn(), Vh)), 218), e.g) {
+ case 2:
+ t = lTe(n);
+ break;
+ case 3:
+ t = (i = new X(), Rt(gt(Wc(qr(qr(new $n(null, new xn(n.d.b, 16)), new Ibn()), new Obn()), new Dbn()), new pbn()), new W5n(i)), i);
+ break;
+ default:
+ throw T(new $r("Compaction not supported for " + e + " edges."));
+ }
+ $je(n, t), $i(new Bp(n.g), new z5n(n));
+ }
+ function L7e(n, e) {
+ var t;
+ return t = new pI(), e && Pr(t, u(te(n.a, Iy), 94)), I(e, 470) && Pr(t, u(te(n.a, Oy), 94)), I(e, 354) ? (Pr(t, u(te(n.a, Rr), 94)), t) : (I(e, 82) && Pr(t, u(te(n.a, he), 94)), I(e, 239) ? (Pr(t, u(te(n.a, Pt), 94)), t) : I(e, 186) ? (Pr(t, u(te(n.a, Ru), 94)), t) : (I(e, 352) && Pr(t, u(te(n.a, bi), 94)), t));
+ }
+ function Go() {
+ Go = N, V4 = new tr((Xe(), _P), Q(1)), rS = new tr(td, 80), rWn = new tr(jhn, 5), VUn = new tr(Tp, D4), tWn = new tr(tH, Q(1)), iWn = new tr(iH, (qn(), !0)), Orn = new md(50), nWn = new tr(ed, Orn), Srn = NP, Drn = n9, QUn = new tr(WK, !1), Irn = ky, ZUn = Rl, YUn = nd, JUn = _g, eWn = cw, Prn = (YJ(), HUn), xR = UUn, iS = KUn, FR = qUn, $rn = zUn;
+ }
+ function N7e(n) {
+ var e, t, i, r, c, o, f, h;
+ for (h = new wSn(), f = new E(n.a); f.a < f.c.c.length; )
+ if (o = u(y(f), 10), o.k != (Qn(), Vt)) {
+ for (Nme(h, o, new Li()), c = new re(ue(ei(o).a.Kc(), new Mn())); Se(c); )
+ if (r = u(ve(c), 17), !(r.c.i.k == Vt || r.d.i.k == Vt))
+ for (i = _e(r.a, 0); i.b != i.d.c; )
+ t = u(Re(i), 8), e = t, v6(h, new e3(e.a, e.b));
+ }
+ return h;
+ }
+ function Ux() {
+ Ux = N, Afn = new kt(gB), Mfn = (Jv(), hy), Tfn = new In(mB, Mfn), Cfn = (c7(), DP), jZn = new In(ptn, Cfn), Efn = (P7(), xK), yZn = new In(vtn, Efn), vZn = new In(pB, null), jfn = (L8(), IP), kZn = new In(vB, jfn), yfn = (Pj(), DK), bZn = new In(mtn, yfn), wZn = new In(ktn, (qn(), !1)), gZn = new In(ytn, Q(64)), pZn = new In(jtn, !0), mZn = FK;
+ }
+ function bBn(n) {
+ var e, t, i, r, c, o;
+ if (n.a == null)
+ if (n.a = F(_u, wh, 25, n.c.b.c.length, 16, 1), n.a[0] = !1, ai(n.c, (nn(), X_)))
+ for (i = u(k(n.c, X_), 15), t = i.Kc(); t.Ob(); )
+ e = u(t.Pb(), 19).a, e > 0 && e < n.a.length && (n.a[e] = !1);
+ else
+ for (o = new E(n.c.b), o.a < o.c.c.length && y(o), r = 1; o.a < o.c.c.length; )
+ c = u(y(o), 29), n.a[r++] = v9e(c);
+ }
+ function wBn(n, e) {
+ var t, i, r, c;
+ switch (r = n.b, e) {
+ case 1: {
+ n.b |= 1, n.b |= 4, n.b |= 8;
+ break;
+ }
+ case 2: {
+ n.b |= 2, n.b |= 4, n.b |= 8;
+ break;
+ }
+ case 4: {
+ n.b |= 1, n.b |= 2, n.b |= 4, n.b |= 8;
+ break;
+ }
+ case 3: {
+ n.b |= 16, n.b |= 8;
+ break;
+ }
+ case 0: {
+ n.b |= 32, n.b |= 16, n.b |= 8, n.b |= 1, n.b |= 2, n.b |= 4;
+ break;
+ }
+ }
+ if (n.b != r && n.c)
+ for (i = new ie(n.c); i.e != i.i.gc(); )
+ c = u(oe(i), 473), t = Iu(c), jb(t, e);
+ }
+ function gBn(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v;
+ for (r = !1, o = e, f = 0, h = o.length; f < h; ++f)
+ c = o[f], on((qn(), !!c.e)) && !u(un(n.b, c.e.p), 214).s && (r = r | (l = c.e, a = u(un(n.b, l.p), 214), d = a.e, g = e8n(t, d.length), p = d[g][0], p.k == (Qn(), Vt) ? d[g] = v8e(c, d[g], t ? (J(), Gn) : (J(), Vn)) : a.c.Tf(d, t), v = _7(n, a, t, i), VY(a.e, a.o, t), v));
+ return r;
+ }
+ function pBn(n, e) {
+ var t, i, r, c, o;
+ for (c = (!e.a && (e.a = new V(Pt, e, 10, 11)), e.a).i, r = new ie((!e.a && (e.a = new V(Pt, e, 10, 11)), e.a)); r.e != r.i.gc(); )
+ i = u(oe(r), 33), B(hn(i, (Xe(), Bg))) !== B((Rh(), i9)) && (o = u(hn(e, kv), 149), t = u(hn(i, kv), 149), (o == t || o && CX(o, t)) && (!i.a && (i.a = new V(Pt, i, 10, 11)), i.a).i != 0 && (c += pBn(n, i)));
+ return c;
+ }
+ function B7e(n) {
+ var e, t, i, r, c, o, f;
+ for (i = 0, f = 0, o = new E(n.d); o.a < o.c.c.length; )
+ c = u(y(o), 101), r = u(es(gt(new $n(null, new xn(c.j, 16)), new _H()), pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [(hf(), hs)]))), 15), t = null, i <= f ? (t = (J(), Kn), i += r.gc()) : f < i && (t = (J(), ae), f += r.gc()), e = t, Rt(Wc(r.Oc(), new Hbn()), new Q5n(e));
+ }
+ function R7e(n) {
+ var e, t, i, r, c, o, f, h;
+ for (n.b = new $Ln(new Ku((J(), A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn]))), new Ku((Hd(), A(M(YR, 1), z, 361, 0, [p0, $l, g0])))), o = A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn]), f = 0, h = o.length; f < h; ++f)
+ for (c = o[f], t = A(M(YR, 1), z, 361, 0, [p0, $l, g0]), i = 0, r = t.length; i < r; ++i)
+ e = t[i], _4e(n.b, c, e, new X());
+ }
+ function vBn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ if (o = u(u(ct(n.r, e), 21), 84), f = n.u.Hc((Tu(), ql)), t = n.u.Hc(s9), i = n.u.Hc(u9), l = n.u.Hc(Pp), d = n.B.Hc((xu(), WP)), a = !t && !i && (l || o.gc() == 2), _8e(n, e), r = null, h = null, f) {
+ for (c = o.Kc(), r = u(c.Pb(), 111), h = r; c.Ob(); )
+ h = u(c.Pb(), 111);
+ r.d.b = 0, h.d.c = 0, a && !r.a && (r.d.c = 0);
+ }
+ d && (Bve(o), f && (r.d.b = 0, h.d.c = 0));
+ }
+ function mBn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ if (o = u(u(ct(n.r, e), 21), 84), f = n.u.Hc((Tu(), ql)), t = n.u.Hc(s9), i = n.u.Hc(u9), h = n.u.Hc(Pp), d = n.B.Hc((xu(), WP)), l = !t && !i && (h || o.gc() == 2), eye(n, e), a = null, r = null, f) {
+ for (c = o.Kc(), a = u(c.Pb(), 111), r = a; c.Ob(); )
+ r = u(c.Pb(), 111);
+ a.d.d = 0, r.d.a = 0, l && !a.a && (a.d.a = 0);
+ }
+ d && (Rve(o), f && (a.d.d = 0, r.d.a = 0));
+ }
+ function kBn(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ if (r = e.k, e.p >= 0)
+ return !1;
+ if (e.p = t.b, W(t.e, e), r == (Qn(), pi) || r == Mc) {
+ for (o = new E(e.j); o.a < o.c.c.length; )
+ for (c = u(y(o), 11), a = (i = new E(new n2(c).a.g), new Oq(i)); Kr(a.a); )
+ if (l = u(y(a.a), 17).d, f = l.i, h = f.k, e.c != f.c && (h == pi || h == Mc) && kBn(n, f, t))
+ return !0;
+ }
+ return !0;
+ }
+ function bM(n) {
+ var e;
+ return n.Db & 64 ? jY(n) : (e = new Ns(jY(n)), e.a += " (changeable: ", r1(e, (n.Bb & Eo) != 0), e.a += ", volatile: ", r1(e, (n.Bb & Rb) != 0), e.a += ", transient: ", r1(e, (n.Bb & Ob) != 0), e.a += ", defaultValueLiteral: ", dr(e, n.j), e.a += ", unsettable: ", r1(e, (n.Bb & pu) != 0), e.a += ", derived: ", r1(e, (n.Bb & Nf) != 0), e.a += ")", e.a);
+ }
+ function _7e(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g;
+ for (r = G9e(n.d), o = u(k(n.b, (a6(), Crn)), 116), f = o.b + o.c, h = o.d + o.a, a = r.d.a * n.e + f, l = r.b.a * n.f + h, ete(n.b, new fn(a, l)), g = new E(n.g); g.a < g.c.c.length; )
+ d = u(y(g), 562), e = d.g - r.a.a, t = d.i - r.c.a, i = st(nue(new fn(e, t), d.a, d.b), If(o8(Qr(jz(d.e)), d.d * d.a, d.c * d.b), -0.5)), c = Ez(d.e), Iie(d.e, ji(i, c));
+ }
+ function K7e(n, e, t, i) {
+ var r, c, o, f, h;
+ for (h = F(Ci, q, 104, (J(), A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn])).length, 0, 2), c = A(M(Yi, 1), lc, 61, 0, [Xr, Kn, Vn, ae, Gn]), o = 0, f = c.length; o < f; ++o)
+ r = c[o], h[r.g] = F(Ci, pr, 25, n.c[r.g], 15, 1);
+ return KFn(h, n, Kn), KFn(h, n, ae), cx(h, n, Kn, e, t, i), cx(h, n, Vn, e, t, i), cx(h, n, ae, e, t, i), cx(h, n, Gn, e, t, i), h;
+ }
+ function H7e(n, e, t) {
+ if (zu(n.a, e)) {
+ if (Mh(u(te(n.a, e), 53), t))
+ return 1;
+ } else
+ it(n.a, e, new hi());
+ if (zu(n.a, t)) {
+ if (Mh(u(te(n.a, t), 53), e))
+ return -1;
+ } else
+ it(n.a, t, new hi());
+ if (zu(n.b, e)) {
+ if (Mh(u(te(n.b, e), 53), t))
+ return -1;
+ } else
+ it(n.b, e, new hi());
+ if (zu(n.b, t)) {
+ if (Mh(u(te(n.b, t), 53), e))
+ return 1;
+ } else
+ it(n.b, t, new hi());
+ return 0;
+ }
+ function iZ(n, e, t, i) {
+ var r, c, o, f, h, l;
+ if (t == null) {
+ for (r = u(n.g, 119), f = 0; f < n.i; ++f)
+ if (o = r[f], o.ak() == e)
+ return Gi(n, o, i);
+ }
+ return c = (er(), u(e, 66).Oj() ? u(t, 72) : uh(e, t)), Hu(n.e) ? (l = !g7(n, e), i = Dc(n, c, i), h = e.$j() ? fl(n, 3, e, null, t, v4(n, e, t, I(e, 99) && (u(e, 18).Bb & Ji) != 0), l) : fl(n, 1, e, e.zj(), t, -1, l), i ? i.Ei(h) : i = h) : i = Dc(n, c, i), i;
+ }
+ function q7e(n) {
+ var e, t, i, r, c, o;
+ n.q == (Ai(), jh) || n.q == Sc || (r = n.f.n.d + SE(u(br(n.b, (J(), Kn)), 124)) + n.c, e = n.f.n.a + SE(u(br(n.b, ae), 124)) + n.c, i = u(br(n.b, Vn), 124), o = u(br(n.b, Gn), 124), c = j.Math.max(0, i.n.d - r), c = j.Math.max(c, o.n.d - r), t = j.Math.max(0, i.n.a - e), t = j.Math.max(t, o.n.a - e), i.n.d = c, o.n.d = c, i.n.a = t, o.n.a = t);
+ }
+ function G7e(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ for (le(e, "Restoring reversed edges", 1), h = new E(n.b); h.a < h.c.c.length; )
+ for (f = u(y(h), 29), a = new E(f.a); a.a < a.c.c.length; )
+ for (l = u(y(a), 10), g = new E(l.j); g.a < g.c.c.length; )
+ for (d = u(y(g), 11), o = xf(d.g), i = o, r = 0, c = i.length; r < c; ++r)
+ t = i[r], on(sn(k(t, (G(), mf)))) && t0(t, !1);
+ ce(e);
+ }
+ function yBn() {
+ this.b = new wa(), this.d = new wa(), this.e = new wa(), this.c = new wa(), this.a = new we(), this.f = new we(), Dw(di, new r2n(), new c2n()), Dw(Bfn, new g2n(), new p2n()), Dw(Urn, new v2n(), new m2n()), Dw(Wrn, new y2n(), new j2n()), Dw(jne, new E2n(), new C2n()), Dw(RTe, new u2n(), new s2n()), Dw(HTe, new o2n(), new f2n()), Dw(_Te, new h2n(), new l2n()), Dw(KTe, new a2n(), new d2n()), Dw(zTe, new b2n(), new w2n());
+ }
+ function jBn(n) {
+ var e, t, i, r, c, o;
+ return c = 0, e = Hs(n), e.Bj() && (c |= 4), n.Bb & pu && (c |= 2), I(n, 99) ? (t = u(n, 18), r = ir(t), t.Bb & sc && (c |= 32), r && (ee(tb(r)), c |= 8, o = r.t, (o > 1 || o == -1) && (c |= 16), r.Bb & sc && (c |= 64)), t.Bb & Ji && (c |= Rb), c |= Eo) : I(e, 457) ? c |= 512 : (i = e.Bj(), i && i.i & 1 && (c |= 256)), n.Bb & 512 && (c |= 128), c;
+ }
+ function T6(n, e) {
+ var t, i, r, c, o;
+ for (n = n == null ? tu : (_n(n), n), r = 0; r < e.length; r++)
+ e[r] = T9e(e[r]);
+ for (t = new _0(), o = 0, i = 0; i < e.length && (c = n.indexOf("%s", o), c != -1); )
+ t.a += "" + Yu(n == null ? tu : (_n(n), n), o, c), cc(t, e[i++]), o = c + 2;
+ if (rAn(t, n, o, n.length), i < e.length) {
+ for (t.a += " [", cc(t, e[i++]); i < e.length; )
+ t.a += Qi, cc(t, e[i++]);
+ t.a += "]";
+ }
+ return t.a;
+ }
+ function z7e(n) {
+ var e, t, i, r, c;
+ for (c = new Ic(n.a.c.length), r = new E(n.a); r.a < r.c.c.length; ) {
+ switch (i = u(y(r), 10), t = u(k(i, (nn(), Hc)), 163), e = null, t.g) {
+ case 1:
+ case 2:
+ e = (ja(), Tg);
+ break;
+ case 3:
+ case 4:
+ e = (ja(), rv);
+ }
+ e ? (H(i, (G(), HS), (ja(), Tg)), e == rv ? fM(i, t, (ur(), Au)) : e == Tg && fM(i, t, (ur(), Lc))) : c.c[c.c.length] = i;
+ }
+ return c;
+ }
+ function rZ(n, e) {
+ var t, i, r, c, o, f, h;
+ for (t = 0, h = new E(e); h.a < h.c.c.length; ) {
+ for (f = u(y(h), 11), nQ(n.b, n.d[f.p]), o = 0, r = new uf(f.b); Kr(r.a) || Kr(r.b); )
+ i = u(Kr(r.a) ? y(r.a) : y(r.b), 17), uTn(i) ? (c = MG(n, f == i.c ? i.d : i.c), c > n.d[f.p] && (t += jX(n.b, c), hl(n.a, Q(c)))) : ++o;
+ for (t += n.b.d * o; !Hv(n.a); )
+ ZX(n.b, u(y2(n.a), 19).a);
+ }
+ return t;
+ }
+ function U7e(n, e) {
+ var t;
+ return n.f == mH ? (t = Pd(Er((bu(), xi), e)), n.e ? t == 4 && e != (z2(), Dp) && e != (z2(), Op) && e != (z2(), kH) && e != (z2(), yH) : t == 2) : n.d && (n.d.Hc(e) || n.d.Hc(A2(Er((bu(), xi), e))) || n.d.Hc(rg((bu(), xi), n.b, e))) ? !0 : n.f && qY((bu(), n.f), E8(Er(xi, e))) ? (t = Pd(Er(xi, e)), n.e ? t == 4 : t == 2) : !1;
+ }
+ function W7e(n, e, t, i) {
+ var r, c, o, f, h, l, a, d;
+ return o = u(hn(t, (Xe(), Mp)), 8), h = o.a, a = o.b + n, r = j.Math.atan2(a, h), r < 0 && (r += ag), r += e, r > ag && (r -= ag), f = u(hn(i, Mp), 8), l = f.a, d = f.b + n, c = j.Math.atan2(d, l), c < 0 && (c += ag), c += e, c > ag && (c -= ag), Yo(), mo(1e-10), j.Math.abs(r - c) <= 1e-10 || r == c || isNaN(r) && isNaN(c) ? 0 : r < c ? -1 : r > c ? 1 : vd(isNaN(r), isNaN(c));
+ }
+ function Wx(n) {
+ var e, t, i, r, c, o, f;
+ for (f = new we(), i = new E(n.a.b); i.a < i.c.c.length; )
+ e = u(y(i), 57), it(f, e, new X());
+ for (r = new E(n.a.b); r.a < r.c.c.length; )
+ for (e = u(y(r), 57), e.i = Qt, o = e.c.Kc(); o.Ob(); )
+ c = u(o.Pb(), 57), u(Vr(Sr(f.f, c)), 15).Fc(e);
+ for (t = new E(n.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 57), e.c.$b(), e.c = u(Vr(Sr(f.f, e)), 15);
+ qNn(n);
+ }
+ function Xx(n) {
+ var e, t, i, r, c, o, f;
+ for (f = new we(), i = new E(n.a.b); i.a < i.c.c.length; )
+ e = u(y(i), 81), it(f, e, new X());
+ for (r = new E(n.a.b); r.a < r.c.c.length; )
+ for (e = u(y(r), 81), e.o = Qt, o = e.f.Kc(); o.Ob(); )
+ c = u(o.Pb(), 81), u(Vr(Sr(f.f, c)), 15).Fc(e);
+ for (t = new E(n.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 81), e.f.$b(), e.f = u(Vr(Sr(f.f, e)), 15);
+ $Nn(n);
+ }
+ function X7e(n, e, t, i) {
+ var r, c;
+ for (o4e(n, e, t, i), tte(e, n.j - e.j + t), ite(e, n.k - e.k + i), c = new E(e.f); c.a < c.c.c.length; )
+ switch (r = u(y(c), 324), r.a.g) {
+ case 0:
+ z3(n, e.g + r.b.a, 0, e.g + r.c.a, e.i - 1);
+ break;
+ case 1:
+ z3(n, e.g + e.o, e.i + r.b.a, n.o - 1, e.i + r.c.a);
+ break;
+ case 2:
+ z3(n, e.g + r.b.a, e.i + e.p, e.g + r.c.a, n.p - 1);
+ break;
+ default:
+ z3(n, 0, e.i + r.b.a, e.g - 1, e.i + r.c.a);
+ }
+ }
+ function wM(n, e, t, i, r) {
+ var c, o, f;
+ try {
+ if (e >= n.o)
+ throw T(new qq());
+ f = e >> 5, o = e & 31, c = Ph(1, ge(Ph(o, 1))), r ? n.n[t][f] = rf(n.n[t][f], c) : n.n[t][f] = ui(n.n[t][f], XU(c)), c = Ph(c, 1), i ? n.n[t][f] = rf(n.n[t][f], c) : n.n[t][f] = ui(n.n[t][f], XU(c));
+ } catch (h) {
+ throw h = jt(h), I(h, 320) ? T(new mr(bN + n.o + "*" + n.p + wN + e + Qi + t + gN)) : T(h);
+ }
+ }
+ function cZ(n, e, t, i) {
+ var r, c, o;
+ e && (c = K(Y(k(e, (uc(), O1)))) + i, o = t + K(Y(k(e, kP))) / 2, H(e, mK, Q(ge(nu(j.Math.round(c))))), H(e, pon, Q(ge(nu(j.Math.round(o))))), e.d.b == 0 || cZ(n, u(fE((r = _e(new W1(e).a.d, 0), new e2(r))), 86), t + K(Y(k(e, kP))) + n.a, i + K(Y(k(e, pv)))), k(e, vK) != null && cZ(n, u(k(e, vK), 86), t, i));
+ }
+ function V7e(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ for (h = qi(e.a), r = K(Y(k(h, (nn(), Ja)))) * 2, a = K(Y(k(h, $g))), l = j.Math.max(r, a), c = F(Ci, pr, 25, e.f - e.c + 1, 15, 1), i = -l, t = 0, f = e.b.Kc(); f.Ob(); )
+ o = u(f.Pb(), 10), i += n.a[o.c.p] + l, c[t++] = i;
+ for (i += n.a[e.a.c.p] + l, c[t++] = i, g = new E(e.e); g.a < g.c.c.length; )
+ d = u(y(g), 10), i += n.a[d.c.p] + l, c[t++] = i;
+ return c;
+ }
+ function Q7e(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g;
+ for (g = new J1(new g6n(n)), f = A(M(vh, 1), E1, 10, 0, [e, t]), h = 0, l = f.length; h < l; ++h)
+ for (o = f[h], d = c6(o, i).Kc(); d.Ob(); )
+ for (a = u(d.Pb(), 11), c = new uf(a.b); Kr(c.a) || Kr(c.b); )
+ r = u(Kr(c.a) ? y(c.a) : y(c.b), 17), Wi(r) || (bT(g.a, a, (qn(), Ga)) == null, uTn(r) && k8(g, a == r.c ? r.d : r.c));
+ return pe(g), new lu(g);
+ }
+ function J7e(n, e) {
+ var t, i, r, c;
+ if (c = u(hn(n, (Xe(), Hg)), 61).g - u(hn(e, Hg), 61).g, c != 0)
+ return c;
+ if (t = u(hn(n, nH), 19), i = u(hn(e, nH), 19), t && i && (r = t.a - i.a, r != 0))
+ return r;
+ switch (u(hn(n, Hg), 61).g) {
+ case 1:
+ return ni(n.i, e.i);
+ case 2:
+ return ni(n.j, e.j);
+ case 3:
+ return ni(e.i, n.i);
+ case 4:
+ return ni(e.j, n.j);
+ default:
+ throw T(new $r($nn));
+ }
+ }
+ function uZ(n) {
+ var e, t, i;
+ return n.Db & 64 ? Ex(n) : (e = new Ju(Ptn), t = n.k, t ? De(De((e.a += ' "', e), t), '"') : (!n.n && (n.n = new V(Rr, n, 1, 7)), n.n.i > 0 && (i = (!n.n && (n.n = new V(Rr, n, 1, 7)), u(D(n.n, 0), 137)).a, !i || De(De((e.a += ' "', e), i), '"'))), De(bd(De(bd(De(bd(De(bd((e.a += " (", e), n.i), ","), n.j), " | "), n.g), ","), n.f), ")"), e.a);
+ }
+ function EBn(n) {
+ var e, t, i;
+ return n.Db & 64 ? Ex(n) : (e = new Ju(Itn), t = n.k, t ? De(De((e.a += ' "', e), t), '"') : (!n.n && (n.n = new V(Rr, n, 1, 7)), n.n.i > 0 && (i = (!n.n && (n.n = new V(Rr, n, 1, 7)), u(D(n.n, 0), 137)).a, !i || De(De((e.a += ' "', e), i), '"'))), De(bd(De(bd(De(bd(De(bd((e.a += " (", e), n.i), ","), n.j), " | "), n.g), ","), n.f), ")"), e.a);
+ }
+ function Vx(n, e) {
+ var t, i, r, c, o, f, h;
+ if (e == null || e.length == 0)
+ return null;
+ if (r = u(mc(n.a, e), 149), !r) {
+ for (i = (f = new Th(n.b).a.vc().Kc(), new N0(f)); i.a.Ob(); )
+ if (t = (c = u(i.a.Pb(), 42), u(c.dd(), 149)), o = t.c, h = e.length, An(o.substr(o.length - h, h), e) && (e.length == o.length || Di(o, o.length - e.length - 1) == 46)) {
+ if (r)
+ return null;
+ r = t;
+ }
+ r && yr(n.a, e, r);
+ }
+ return r;
+ }
+ function Y7e(n, e) {
+ var t, i, r, c;
+ return t = new Uln(), i = u(es(Wc(new $n(null, new xn(n.f, 16)), t), ub(new Vg(), new Qg(), new Jg(), new Yg(), A(M(Nu, 1), z, 132, 0, [(hf(), _b), hs]))), 21), r = i.gc(), i = u(es(Wc(new $n(null, new xn(e.f, 16)), t), ub(new Vg(), new Qg(), new Jg(), new Yg(), A(M(Nu, 1), z, 132, 0, [_b, hs]))), 21), c = i.gc(), r < c ? -1 : r == c ? 0 : 1;
+ }
+ function CBn(n) {
+ var e, t, i;
+ ai(n, (nn(), j0)) && (i = u(k(n, j0), 21), !i.dc() && (t = (e = u(xo(lr), 9), new ms(e, u(bo(e, e.length), 9), 0)), i.Hc((Eb(), as)) ? ko(t, as) : ko(t, Io), i.Hc(Zs) || ko(t, Zs), i.Hc(So) ? ko(t, Oo) : i.Hc(Yh) ? ko(t, yh) : i.Hc(Po) && ko(t, no), i.Hc(Oo) ? ko(t, So) : i.Hc(yh) ? ko(t, Yh) : i.Hc(no) && ko(t, Po), H(n, j0, t)));
+ }
+ function Z7e(n) {
+ var e, t, i, r, c, o, f;
+ for (r = u(k(n, (G(), k0)), 10), i = n.j, t = (Ln(0, i.c.length), u(i.c[0], 11)), o = new E(r.j); o.a < o.c.c.length; )
+ if (c = u(y(o), 11), B(c) === B(k(t, rt))) {
+ c.j == (J(), Kn) && n.p > r.p ? (si(c, ae), c.d && (f = c.o.b, e = c.a.b, c.a.b = f - e)) : c.j == ae && r.p > n.p && (si(c, Kn), c.d && (f = c.o.b, e = c.a.b, c.a.b = -(f - e)));
+ break;
+ }
+ return r;
+ }
+ function nke(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v;
+ if (c = t, t < i)
+ for (g = (p = new n7(n.p), v = new n7(n.p), Xi(p.e, n.e), p.q = n.q, p.r = v, WE(p), Xi(v.j, n.j), v.r = p, WE(v), new Pi(p, v)), d = u(g.a, 112), a = u(g.b, 112), r = (Ln(c, e.c.length), u(e.c[c], 329)), o = iBn(n, d, a, r), l = t + 1; l <= i; l++)
+ f = (Ln(l, e.c.length), u(e.c[l], 329)), h = iBn(n, d, a, f), Fpe(f, h, r, o) && (r = f, o = h);
+ return c;
+ }
+ function K7(n, e, t, i, r) {
+ var c, o, f, h, l, a, d;
+ if (!(I(e, 239) || I(e, 354) || I(e, 186)))
+ throw T(new Hn("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));
+ return o = n.a / 2, h = e.i + i - o, a = e.j + r - o, l = h + e.g + n.a, d = a + e.f + n.a, c = new ou(), Ke(c, new fn(h, a)), Ke(c, new fn(h, d)), Ke(c, new fn(l, d)), Ke(c, new fn(l, a)), f = new xx(c), Pr(f, e), t && it(n.b, e, f), f;
+ }
+ function M6(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ for (c = new fn(e, t), a = new E(n.a); a.a < a.c.c.length; )
+ for (l = u(y(a), 10), st(l.n, c), g = new E(l.j); g.a < g.c.c.length; )
+ for (d = u(y(g), 11), r = new E(d.g); r.a < r.c.c.length; )
+ for (i = u(y(r), 17), hb(i.a, c), o = u(k(i, (nn(), Mr)), 74), o && hb(o, c), h = new E(i.b); h.a < h.c.c.length; )
+ f = u(y(h), 70), st(f.n, c);
+ }
+ function eke(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ for (c = new fn(e, t), a = new E(n.a); a.a < a.c.c.length; )
+ for (l = u(y(a), 10), st(l.n, c), g = new E(l.j); g.a < g.c.c.length; )
+ for (d = u(y(g), 11), r = new E(d.g); r.a < r.c.c.length; )
+ for (i = u(y(r), 17), hb(i.a, c), o = u(k(i, (nn(), Mr)), 74), o && hb(o, c), h = new E(i.b); h.a < h.c.c.length; )
+ f = u(y(h), 70), st(f.n, c);
+ }
+ function TBn(n) {
+ if ((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b).i == 0)
+ throw T(new Gv("Edges must have a source."));
+ if ((!n.c && (n.c = new Fn(he, n, 5, 8)), n.c).i == 0)
+ throw T(new Gv("Edges must have a target."));
+ if (!n.b && (n.b = new Fn(he, n, 4, 7)), !(n.b.i <= 1 && (!n.c && (n.c = new Fn(he, n, 5, 8)), n.c.i <= 1)))
+ throw T(new Gv("Hyperedges are not supported."));
+ }
+ function MBn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ for (d = 0, c = new gw(), hl(c, e); c.b != c.c; )
+ for (h = u(y2(c), 214), l = 0, a = u(k(e.j, (nn(), xl)), 339), o = K(Y(k(e.j, XS))), f = K(Y(k(e.j, Yun))), a != (Bh(), Ll) && (l += o * h9e(h.e, a), l += f * x8e(h.e)), d += TFn(h.d, h.e) + l, r = new E(h.b); r.a < r.c.c.length; )
+ i = u(y(r), 37), t = u(un(n.b, i.p), 214), t.s || (d += Sx(n, t));
+ return d;
+ }
+ function tke(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ for (p = e.length, h = p, Me(0, e.length), e.charCodeAt(0) == 45 ? (d = -1, g = 1, --p) : (d = 1, g = 0), c = (oL(), Tzn)[10], r = p / c | 0, C = p % c, C != 0 && ++r, f = F(be, Le, 25, r, 15, 1), t = Czn[8], o = 0, v = g + (C == 0 ? c : C), m = g; m < h; m = v, v = m + c)
+ i = us(e.substr(m, v - m), Bi, nt), l = (l4(), YQ(f, f, o, t)), l += D2e(f, o, i), f[o++] = l;
+ a = o, n.e = d, n.d = a, n.a = f, K5(n);
+ }
+ function ABn(n, e, t, i, r, c, o) {
+ if (n.c = i.qf().a, n.d = i.qf().b, r && (n.c += r.qf().a, n.d += r.qf().b), n.b = e.rf().a, n.a = e.rf().b, !r)
+ t ? n.c -= o + e.rf().a : n.c += i.rf().a + o;
+ else
+ switch (r.Hf().g) {
+ case 0:
+ case 2:
+ n.c += r.rf().a + o + c.a + o;
+ break;
+ case 4:
+ n.c -= o + c.a + o + e.rf().a;
+ break;
+ case 1:
+ n.c += r.rf().a + o, n.d -= o + c.b + o + e.rf().b;
+ break;
+ case 3:
+ n.c += r.rf().a + o, n.d += r.rf().b + o + c.b + o;
+ }
+ }
+ function SBn(n, e) {
+ var t, i;
+ for (this.b = new X(), this.e = new X(), this.a = n, this.d = e, Ipe(this), R2e(this), this.b.dc() ? this.c = n.c.p : this.c = u(this.b.Xb(0), 10).c.p, this.e.c.length == 0 ? this.f = n.c.p : this.f = u(un(this.e, this.e.c.length - 1), 10).c.p, i = u(k(n, (G(), Vk)), 15).Kc(); i.Ob(); )
+ if (t = u(i.Pb(), 70), ai(t, (nn(), QS))) {
+ this.d = u(k(t, QS), 227);
+ break;
+ }
+ }
+ function g4(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ for (i = u(te(n.a, e), 53), c = u(te(n.a, t), 53), r = u(te(n.e, e), 53), o = u(te(n.e, t), 53), i.a.zc(t, i), o.a.zc(e, o), a = c.a.ec().Kc(); a.Ob(); )
+ l = u(a.Pb(), 10), i.a.zc(l, i), ci(u(te(n.e, l), 53), e), Xi(u(te(n.e, l), 53), r);
+ for (h = r.a.ec().Kc(); h.Ob(); )
+ f = u(h.Pb(), 10), o.a.zc(f, o), ci(u(te(n.a, f), 53), t), Xi(u(te(n.a, f), 53), c);
+ }
+ function H7(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ for (i = u(te(n.a, e), 53), c = u(te(n.a, t), 53), r = u(te(n.b, e), 53), o = u(te(n.b, t), 53), i.a.zc(t, i), o.a.zc(e, o), a = c.a.ec().Kc(); a.Ob(); )
+ l = u(a.Pb(), 10), i.a.zc(l, i), ci(u(te(n.b, l), 53), e), Xi(u(te(n.b, l), 53), r);
+ for (h = r.a.ec().Kc(); h.Ob(); )
+ f = u(h.Pb(), 10), o.a.zc(f, o), ci(u(te(n.a, f), 53), t), Xi(u(te(n.a, f), 53), c);
+ }
+ function ike(n, e) {
+ var t, i, r;
+ switch (le(e, "Breaking Point Insertion", 1), i = new PY(n), u(k(n, (nn(), W_)), 337).g) {
+ case 2:
+ r = new GH();
+ case 0:
+ r = new KH();
+ break;
+ default:
+ r = new zH();
+ }
+ if (t = r.Vf(n, i), on(sn(k(n, Lsn))) && (t = Xje(n, t)), !r.Wf() && ai(n, cP))
+ switch (u(k(n, cP), 338).g) {
+ case 2:
+ t = dLn(i, t);
+ break;
+ case 1:
+ t = axn(i, t);
+ }
+ if (t.dc()) {
+ ce(e);
+ return;
+ }
+ XCe(n, t), ce(e);
+ }
+ function rke(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ if (a = null, g = e, d = FAn(n, IAn(t), g), Q5(d, Dh(g, Uf)), o = xd(g, Dtn), i = new wkn(n, d), O6e(i.a, i.b, o), f = xd(g, xB), r = new gkn(n, d), D6e(r.a, r.b, f), (!d.b && (d.b = new Fn(he, d, 4, 7)), d.b).i == 0 || (!d.c && (d.c = new Fn(he, d, 5, 8)), d.c).i == 0)
+ throw c = Dh(g, Uf), h = Mqn + c, l = h + _4, T(new Af(l));
+ return YT(g, d), nTe(n, g, d), a = oF(n, g, d), a;
+ }
+ function cke(n, e) {
+ var t, i, r, c, o, f, h;
+ for (r = F(be, Le, 25, n.e.a.c.length, 15, 1), o = new E(n.e.a); o.a < o.c.c.length; )
+ c = u(y(o), 121), r[c.d] += c.b.a.c.length;
+ for (f = p8(e); f.b != 0; )
+ for (c = u(f.b == 0 ? null : (ne(f.b != 0), Cs(f, f.a.a)), 121), i = $2(new E(c.g.a)); i.Ob(); )
+ t = u(i.Pb(), 213), h = t.e, h.e = j.Math.max(h.e, c.e + t.a), --r[h.d], r[h.d] == 0 && Ht(f, h, f.c.b, f.c);
+ }
+ function PBn(n) {
+ var e, t, i, r, c, o, f, h, l, a, d;
+ for (t = Bi, r = nt, f = new E(n.e.a); f.a < f.c.c.length; )
+ c = u(y(f), 121), r = j.Math.min(r, c.e), t = j.Math.max(t, c.e);
+ for (e = F(be, Le, 25, t - r + 1, 15, 1), o = new E(n.e.a); o.a < o.c.c.length; )
+ c = u(y(o), 121), c.e -= r, ++e[c.e];
+ if (i = 0, n.k != null)
+ for (l = n.k, a = 0, d = l.length; a < d && (h = l[a], e[i++] += h, e.length != i); ++a)
+ ;
+ return e;
+ }
+ function IBn(n) {
+ switch (n.d) {
+ case 9:
+ case 8:
+ return !0;
+ case 3:
+ case 5:
+ case 4:
+ case 6:
+ return !1;
+ case 7:
+ return u(QY(n), 19).a == n.o;
+ case 1:
+ case 2: {
+ if (n.o == -2)
+ return !1;
+ switch (n.p) {
+ case 0:
+ case 1:
+ case 2:
+ case 6:
+ case 5:
+ case 7:
+ return pd(n.k, n.f);
+ case 3:
+ case 4:
+ return n.j == n.e;
+ default:
+ return n.n == null ? n.g == null : tt(n.n, n.g);
+ }
+ }
+ default:
+ return !1;
+ }
+ }
+ function OBn(n) {
+ gd(n, new Oa(ad(fd(ld(hd(new na(), Z6), "ELK Fixed"), "Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points."), new $2n()))), Z(n, Z6, s0, _hn), Z(n, Z6, oA, cn(t9)), Z(n, Z6, Ttn, cn(Lhn)), Z(n, Z6, hg, cn(Nhn)), Z(n, Z6, ip, cn(Rhn)), Z(n, Z6, tB, cn(Bhn));
+ }
+ function gM(n, e, t) {
+ var i, r, c, o, f;
+ if (i = ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15))), f = ge(Ni(ah, rh(ge(Ni(t == null ? 0 : mt(t), dh)), 15))), c = J5(n, e, i), c && f == c.f && $f(t, c.i))
+ return t;
+ if (o = Y5(n, t, f), o)
+ throw T(new Hn("value already present: " + t));
+ return r = new VE(e, i, t, f), c ? (Yw(n, c), D7(n, r, c), c.e = null, c.c = null, c.i) : (D7(n, r, null), HFn(n), null);
+ }
+ function uke(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v;
+ a = t.a.c, o = t.a.c + t.a.b, c = u(te(t.c, e), 459), p = c.f, v = c.a, c.b ? h = new fn(o, p) : h = new fn(a, p), c.c ? d = new fn(a, v) : d = new fn(o, v), r = a, t.p || (r += n.c), r += t.F + t.v * n.b, l = new fn(r, p), g = new fn(r, v), V5(e.a, A(M(di, 1), q, 8, 0, [h, l])), f = t.d.a.gc() > 1, f && (i = new fn(r, t.b), Ke(e.a, i)), V5(e.a, A(M(di, 1), q, 8, 0, [g, d]));
+ }
+ function Qx(n, e, t) {
+ var i, r, c, o, f, h;
+ if (e)
+ if (t <= -1) {
+ if (i = On(e.Tg(), -1 - t), I(i, 99))
+ return u(i, 18);
+ for (o = u(e.ah(i), 153), f = 0, h = o.gc(); f < h; ++f)
+ if (B(o.jl(f)) === B(n) && (r = o.il(f), I(r, 99) && (c = u(r, 18), c.Bb & sc)))
+ return c;
+ throw T(new $r("The containment feature could not be located"));
+ } else
+ return ir(u(On(n.Tg(), t), 18));
+ else
+ return null;
+ }
+ function ske(n) {
+ var e, t, i, r, c;
+ for (i = n.length, e = new zv(), c = 0; c < i; )
+ if (t = Di(n, c++), !(t == 9 || t == 10 || t == 12 || t == 13 || t == 32)) {
+ if (t == 35) {
+ for (; c < i && (t = Di(n, c++), !(t == 13 || t == 10)); )
+ ;
+ continue;
+ }
+ t == 92 && c < i ? (r = (Me(c, n.length), n.charCodeAt(c))) == 35 || r == 9 || r == 10 || r == 12 || r == 13 || r == 32 ? (b3(e, r & Wt), ++c) : (e.a += "\\", b3(e, r & Wt), ++c) : b3(e, t & Wt);
+ }
+ return e.a;
+ }
+ function oke(n, e) {
+ var t, i, r;
+ for (i = new E(e); i.a < i.c.c.length; )
+ if (t = u(y(i), 33), Tn(n.a, t, t), Tn(n.b, t, t), r = Tb(t), r.c.length != 0)
+ for (n.d && n.d.lg(r), Tn(n.a, t, (Ln(0, r.c.length), u(r.c[0], 33))), Tn(n.b, t, u(un(r, r.c.length - 1), 33)); rF(r).c.length != 0; )
+ r = rF(r), n.d && n.d.lg(r), Tn(n.a, t, (Ln(0, r.c.length), u(r.c[0], 33))), Tn(n.b, t, u(un(r, r.c.length - 1), 33));
+ }
+ function fke(n) {
+ var e, t, i, r, c, o, f, h, l, a;
+ for (t = 0, f = new E(n.d); f.a < f.c.c.length; )
+ o = u(y(f), 101), o.i && (o.i.c = t++);
+ for (e = fa(_u, [q, wh], [177, 25], 16, [t, t], 2), a = n.d, r = 0; r < a.c.length; r++)
+ if (h = (Ln(r, a.c.length), u(a.c[r], 101)), h.i)
+ for (c = r + 1; c < a.c.length; c++)
+ l = (Ln(c, a.c.length), u(a.c[c], 101)), l.i && (i = Xve(h, l), e[h.i.c][l.i.c] = i, e[l.i.c][h.i.c] = i);
+ return e;
+ }
+ function sZ(n, e, t, i) {
+ var r, c, o;
+ return o = new Y8n(e, t), n.a ? i ? (r = u(te(n.b, e), 283), ++r.a, o.d = i.d, o.e = i.e, o.b = i, o.c = i, i.e ? i.e.c = o : u(te(n.b, e), 283).b = o, i.d ? i.d.b = o : n.a = o, i.d = o, i.e = o) : (n.e.b = o, o.d = n.e, n.e = o, r = u(te(n.b, e), 283), r ? (++r.a, c = r.c, c.c = o, o.e = c, r.c = o) : (it(n.b, e, r = new XW(o)), ++n.c)) : (n.a = n.e = o, it(n.b, e, new XW(o)), ++n.c), ++n.d, o;
+ }
+ function Mb(n, e) {
+ var t, i, r, c, o, f, h, l;
+ for (t = new RegExp(e, "g"), h = F(tn, q, 2, 0, 6, 1), i = 0, l = n, c = null; ; )
+ if (f = t.exec(l), f == null || l == "") {
+ h[i] = l;
+ break;
+ } else
+ o = f.index, h[i] = l.substr(0, o), l = Yu(l, o + f[0].length, l.length), t.lastIndex = 0, c == l && (h[i] = l.substr(0, 1), l = l.substr(1)), c = l, ++i;
+ if (n.length > 0) {
+ for (r = h.length; r > 0 && h[r - 1] == ""; )
+ --r;
+ r < h.length && (h.length = r);
+ }
+ return h;
+ }
+ function oZ(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ for (d = Ar(e), l = null, r = !1, f = 0, a = wc(d.a).i; f < a; ++f)
+ o = u(X7(d, f, (c = u(D(wc(d.a), f), 87), h = c.c, I(h, 88) ? u(h, 26) : (Sn(), uo))), 26), t = oZ(n, o), t.dc() || (l ? (r || (r = !0, l = new $E(l)), l.Gc(t)) : l = t);
+ return i = X6e(n, e), i.dc() ? l || (Pn(), Pn(), cr) : l ? (r || (l = new $E(l)), l.Gc(i), l) : i;
+ }
+ function Jx(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ for (d = Ar(e), l = null, i = !1, f = 0, a = wc(d.a).i; f < a; ++f)
+ c = u(X7(d, f, (r = u(D(wc(d.a), f), 87), h = r.c, I(h, 88) ? u(h, 26) : (Sn(), uo))), 26), t = Jx(n, c), t.dc() || (l ? (i || (i = !0, l = new $E(l)), l.Gc(t)) : l = t);
+ return o = Eme(n, e), o.dc() ? l || (Pn(), Pn(), cr) : l ? (i || (l = new $E(l)), l.Gc(o), l) : o;
+ }
+ function q7(n, e, t) {
+ var i, r, c, o, f, h;
+ if (I(e, 72))
+ return Gi(n, e, t);
+ for (f = null, c = null, i = u(n.g, 119), o = 0; o < n.i; ++o)
+ if (r = i[o], tt(e, r.dd()) && (c = r.ak(), I(c, 99) && u(c, 18).Bb & sc)) {
+ f = r;
+ break;
+ }
+ return f && (Hu(n.e) && (h = c.$j() ? fl(n, 4, c, e, null, v4(n, c, e, I(c, 99) && (u(c, 18).Bb & Ji) != 0), !0) : fl(n, c.Kj() ? 2 : 1, c, e, c.zj(), -1, !0), t ? t.Ei(h) : t = h), t = q7(n, f, t)), t;
+ }
+ function hke(n) {
+ var e, t, i, r;
+ i = n.o, X0(), n.A.dc() || tt(n.A, prn) ? r = i.a : (r = F7(n.f), n.A.Hc((Vu(), My)) && !n.B.Hc((xu(), f9)) && (r = j.Math.max(r, F7(u(br(n.p, (J(), Kn)), 244))), r = j.Math.max(r, F7(u(br(n.p, ae), 244)))), e = AOn(n), e && (r = j.Math.max(r, e.a))), on(sn(n.e.yf().We((Xe(), BP)))) ? i.a = j.Math.max(i.a, r) : i.a = r, t = n.f.i, t.c = 0, t.b = r, tL(n.f);
+ }
+ function lke(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (t = e.Hh(n.a), t && (h = Te(Ko((!t.b && (t.b = new qu((Sn(), Zi), tc, t)), t.b), "memberTypes")), h != null)) {
+ for (l = new X(), c = Mb(h, "\\w"), o = 0, f = c.length; o < f; ++o)
+ r = c[o], i = r.lastIndexOf("#"), a = i == -1 ? iU(n, e.Aj(), r) : i == 0 ? _8(n, null, r.substr(1)) : _8(n, r.substr(0, i), r.substr(i + 1)), I(a, 148) && W(l, u(a, 148));
+ return l;
+ }
+ return Pn(), Pn(), cr;
+ }
+ function ake(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ for (le(t, RKn, 1), n.bf(e), c = 0; n.df(c); ) {
+ for (a = new E(e.e); a.a < a.c.c.length; )
+ for (h = u(y(a), 144), f = cl(of(A(M(gf, 1), rn, 20, 0, [e.e, e.d, e.b]))); Se(f); )
+ o = u(ve(f), 357), o != h && (r = n.af(o, h), r && st(h.a, r));
+ for (l = new E(e.e); l.a < l.c.c.length; )
+ h = u(y(l), 144), i = h.a, Fxn(i, -n.d, -n.d, n.d, n.d), st(h.d, i), Lo(i);
+ n.cf(), ++c;
+ }
+ ce(t);
+ }
+ function dke(n, e, t) {
+ var i, r, c, o;
+ if (o = _c(n.e.Tg(), e), i = u(n.g, 119), er(), u(e, 66).Oj()) {
+ for (c = 0; c < n.i; ++c)
+ if (r = i[c], o.rl(r.ak()) && tt(r, t))
+ return Cb(n, c), !0;
+ } else if (t != null) {
+ for (c = 0; c < n.i; ++c)
+ if (r = i[c], o.rl(r.ak()) && tt(t, r.dd()))
+ return Cb(n, c), !0;
+ } else
+ for (c = 0; c < n.i; ++c)
+ if (r = i[c], o.rl(r.ak()) && r.dd() == null)
+ return Cb(n, c), !0;
+ return !1;
+ }
+ function bke(n, e) {
+ var t, i, r, c, o;
+ for (n.c == null || n.c.length < e.c.length ? n.c = F(_u, wh, 25, e.c.length, 16, 1) : qv(n.c), n.a = new X(), i = 0, o = new E(e); o.a < o.c.c.length; )
+ r = u(y(o), 10), r.p = i++;
+ for (t = new Ct(), c = new E(e); c.a < c.c.c.length; )
+ r = u(y(c), 10), n.c[r.p] || (mLn(n, r), t.b == 0 || (ne(t.b != 0), u(t.a.a.c, 15)).gc() < n.a.c.length ? Kkn(t, n.a) : sa(t, n.a), n.a = new X());
+ return t;
+ }
+ function wke(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v;
+ for (o = u(D(e, 0), 33), Yc(o, 0), Zc(o, 0), g = new X(), g.c[g.c.length] = o, f = o, c = new bD(n.a, o.g, o.f, (w4(), Jm)), p = 1; p < e.i; p++)
+ v = u(D(e, p), 33), h = sL(n, Ng, v, f, c, g, t), l = sL(n, Ep, v, f, c, g, t), a = sL(n, Qm, v, f, c, g, t), d = sL(n, Vm, v, f, c, g, t), r = Sje(n, h, l, a, d, v, f, i), Yc(v, r.d), Zc(v, r.e), mte(r, Jm), c = r, f = v, g.c[g.c.length] = v;
+ return c;
+ }
+ function DBn(n) {
+ gd(n, new Oa(ad(fd(ld(hd(new na(), x4), "ELK SPOrE Overlap Removal"), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new Ugn()))), Z(n, x4, gB, cn(Ofn)), Z(n, x4, s0, Ifn), Z(n, x4, $b, 8), Z(n, x4, mB, cn(CZn)), Z(n, x4, ytn, cn(Sfn)), Z(n, x4, jtn, cn(Pfn)), Z(n, x4, mk, (qn(), !1));
+ }
+ function $Bn(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p;
+ for (o = W0(e.c, t, i), d = new E(e.a); d.a < d.c.c.length; ) {
+ for (a = u(y(d), 10), st(a.n, o), p = new E(a.j); p.a < p.c.c.length; )
+ for (g = u(y(p), 11), c = new E(g.g); c.a < c.c.c.length; )
+ for (r = u(y(c), 17), hb(r.a, o), f = u(k(r, (nn(), Mr)), 74), f && hb(f, o), l = new E(r.b); l.a < l.c.c.length; )
+ h = u(y(l), 70), st(h.n, o);
+ W(n.a, a), a.a = n;
+ }
+ }
+ function gke(n, e) {
+ var t, i, r, c, o;
+ if (le(e, "Node and Port Label Placement and Node Sizing", 1), wyn((Vv(), new GD(n, !0, !0, new Qdn()))), u(k(n, (G(), Ac)), 21).Hc((or(), Ds)))
+ for (c = u(k(n, (nn(), Zb)), 21), r = c.Hc((Tu(), Ty)), o = on(sn(k(n, Asn))), i = new E(n.b); i.a < i.c.c.length; )
+ t = u(y(i), 29), Rt(gt(new $n(null, new xn(t.a, 16)), new Jdn()), new pEn(c, r, o));
+ ce(e);
+ }
+ function pke(n, e) {
+ var t, i, r, c, o, f;
+ if (t = e.Hh(n.a), t && (f = Te(Ko((!t.b && (t.b = new qu((Sn(), Zi), tc, t)), t.b), vA)), f != null))
+ switch (r = aE(f, eu(35)), i = e.Hj(), r == -1 ? (o = I5(n, ts(i)), c = f) : r == 0 ? (o = null, c = f.substr(1)) : (o = f.substr(0, r), c = f.substr(r + 1)), Pd(Er(n, e))) {
+ case 2:
+ case 3:
+ return Twe(n, i, o, c);
+ case 0:
+ case 4:
+ case 5:
+ case 6:
+ return Mwe(n, i, o, c);
+ }
+ return null;
+ }
+ function fZ(n, e, t) {
+ var i, r, c, o, f;
+ if (o = (er(), u(e, 66).Oj()), Gh(n.e, e)) {
+ if (e.hi() && vM(n, e, t, I(e, 99) && (u(e, 18).Bb & Ji) != 0))
+ return !1;
+ } else
+ for (f = _c(n.e.Tg(), e), i = u(n.g, 119), c = 0; c < n.i; ++c)
+ if (r = i[c], f.rl(r.ak()))
+ return (o ? tt(r, t) : t == null ? r.dd() == null : tt(t, r.dd())) ? !1 : (u(Gw(n, c, o ? u(t, 72) : uh(e, t)), 72), !0);
+ return me(n, o ? u(t, 72) : uh(e, t));
+ }
+ function G7(n) {
+ var e, t, i, r, c, o, f, h;
+ if (n.d)
+ throw T(new $r((Sh(HR), uN + HR.k + sN)));
+ for (n.c == (sr(), mh) && cg(n, Ys), t = new E(n.a.a); t.a < t.c.c.length; )
+ e = u(y(t), 189), e.e = 0;
+ for (o = new E(n.a.b); o.a < o.c.c.length; )
+ for (c = u(y(o), 81), c.o = Qt, r = c.f.Kc(); r.Ob(); )
+ i = u(r.Pb(), 81), ++i.d.e;
+ for (hCe(n), h = new E(n.a.b); h.a < h.c.c.length; )
+ f = u(y(h), 81), f.k = !0;
+ return n;
+ }
+ function vke(n, e) {
+ var t, i, r, c, o, f, h, l;
+ for (f = new qxn(n), t = new Ct(), Ht(t, e, t.c.b, t.c); t.b != 0; ) {
+ for (i = u(t.b == 0 ? null : (ne(t.b != 0), Cs(t, t.a.a)), 113), i.d.p = 1, o = new E(i.e); o.a < o.c.c.length; )
+ r = u(y(o), 409), hxn(f, r), l = r.d, l.d.p == 0 && Ht(t, l, t.c.b, t.c);
+ for (c = new E(i.b); c.a < c.c.c.length; )
+ r = u(y(c), 409), hxn(f, r), h = r.c, h.d.p == 0 && Ht(t, h, t.c.b, t.c);
+ }
+ return f;
+ }
+ function FBn(n) {
+ var e, t, i, r, c;
+ if (i = K(Y(hn(n, (Xe(), QZn)))), i != 1)
+ for (rE(n, i * n.g, i * n.f), t = $re(Goe((!n.c && (n.c = new V(Ru, n, 9, 9)), n.c), new T2n())), c = cl(of(A(M(gf, 1), rn, 20, 0, [(!n.n && (n.n = new V(Rr, n, 1, 7)), n.n), (!n.c && (n.c = new V(Ru, n, 9, 9)), n.c), t]))); Se(c); )
+ r = u(ve(c), 470), r.Gg(i * r.Dg(), i * r.Eg()), r.Fg(i * r.Cg(), i * r.Bg()), e = u(r.We(ghn), 8), e && (e.a *= i, e.b *= i);
+ }
+ function mke(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g;
+ for (o = new E(n.b); o.a < o.c.c.length; )
+ for (c = u(y(o), 29), g = I8(c.a), l = g, a = 0, d = l.length; a < d; ++a)
+ switch (h = l[a], u(k(h, (nn(), Hc)), 163).g) {
+ case 1:
+ U8e(h), jr(h, e), eFn(h, !0, i);
+ break;
+ case 3:
+ O8e(h), jr(h, t), eFn(h, !1, r);
+ }
+ for (f = new Ii(n.b, 0); f.b < f.d.gc(); )
+ (ne(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 29)).a.c.length == 0 && Uu(f);
+ }
+ function kke(n, e) {
+ var t, i, r, c, o, f, h;
+ if (t = e.Hh(n.a), t && (h = Te(Ko((!t.b && (t.b = new qu((Sn(), Zi), tc, t)), t.b), nin)), h != null)) {
+ for (i = new X(), c = Mb(h, "\\w"), o = 0, f = c.length; o < f; ++o)
+ r = c[o], An(r, "##other") ? W(i, "!##" + I5(n, ts(e.Hj()))) : An(r, "##local") ? i.c[i.c.length] = null : An(r, Tk) ? W(i, I5(n, ts(e.Hj()))) : i.c[i.c.length] = r;
+ return i;
+ }
+ return Pn(), Pn(), cr;
+ }
+ function yke(n, e) {
+ var t, i, r, c;
+ return t = new ian(), i = u(es(Wc(new $n(null, new xn(n.f, 16)), t), ub(new Vg(), new Qg(), new Jg(), new Yg(), A(M(Nu, 1), z, 132, 0, [(hf(), _b), hs]))), 21), r = i.gc(), i = u(es(Wc(new $n(null, new xn(e.f, 16)), t), ub(new Vg(), new Qg(), new Jg(), new Yg(), A(M(Nu, 1), z, 132, 0, [_b, hs]))), 21), c = i.gc(), r = r == 1 ? 1 : 0, c = c == 1 ? 1 : 0, r < c ? -1 : r == c ? 0 : 1;
+ }
+ function jke(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g;
+ for (f = n.i, r = on(sn(k(f, (nn(), Jb)))), a = 0, i = 0, l = new E(n.g); l.a < l.c.c.length; )
+ h = u(y(l), 17), o = Wi(h), c = o && r && on(sn(k(h, Xa))), g = h.d.i, o && c ? ++i : o && !c ? ++a : qi(g).e == f ? ++i : ++a;
+ for (t = new E(n.e); t.a < t.c.c.length; )
+ e = u(y(t), 17), o = Wi(e), c = o && r && on(sn(k(e, Xa))), d = e.c.i, o && c ? ++a : o && !c ? ++i : qi(d).e == f ? ++a : ++i;
+ return a - i;
+ }
+ function tg(n, e, t, i) {
+ this.e = n, this.k = u(k(n, (G(), Ig)), 304), this.g = F(vh, E1, 10, e, 0, 1), this.b = F(Si, q, 333, e, 7, 1), this.a = F(vh, E1, 10, e, 0, 1), this.d = F(Si, q, 333, e, 7, 1), this.j = F(vh, E1, 10, e, 0, 1), this.i = F(Si, q, 333, e, 7, 1), this.p = F(Si, q, 333, e, 7, 1), this.n = F(oi, q, 476, e, 8, 1), z9(this.n, (qn(), !1)), this.f = F(oi, q, 476, e, 8, 1), z9(this.f, !0), this.o = t, this.c = i;
+ }
+ function xBn(n, e) {
+ var t, i, r, c, o, f;
+ if (!e.dc())
+ if (u(e.Xb(0), 286).d == (q2(), Gb))
+ n4e(n, e);
+ else
+ for (i = e.Kc(); i.Ob(); ) {
+ switch (t = u(i.Pb(), 286), t.d.g) {
+ case 5:
+ h4(n, t, h2e(n, t));
+ break;
+ case 0:
+ h4(n, t, (o = t.f - t.c + 1, f = (o - 1) / 2 | 0, t.c + f));
+ break;
+ case 4:
+ h4(n, t, C0e(n, t));
+ break;
+ case 2:
+ s$n(t), h4(n, t, (c = $J(t), c ? t.c : t.f));
+ break;
+ case 1:
+ s$n(t), h4(n, t, (r = $J(t), r ? t.f : t.c));
+ }
+ Jve(t.a);
+ }
+ }
+ function Eke(n, e) {
+ var t, i, r, c, o, f, h;
+ if (!e.e) {
+ for (e.e = !0, i = e.d.a.ec().Kc(); i.Ob(); ) {
+ if (t = u(i.Pb(), 17), e.o && e.d.a.gc() <= 1) {
+ o = e.a.c, f = e.a.c + e.a.b, h = new fn(o + (f - o) / 2, e.b), Ke(u(e.d.a.ec().Kc().Pb(), 17).a, h);
+ continue;
+ }
+ if (r = u(te(e.c, t), 459), r.b || r.c) {
+ uke(n, t, e);
+ continue;
+ }
+ c = n.d == (V3(), Rm) && (r.d || r.e) && pme(n, e) && e.d.a.gc() <= 1, c ? qEe(t, e) : C7e(n, t, e);
+ }
+ e.k && $i(e.d, new Tdn());
+ }
+ }
+ function hZ(n, e, t, i, r, c) {
+ var o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ for (g = c, f = (i + r) / 2 + g, C = t * j.Math.cos(f), S = t * j.Math.sin(f), $ = C - e.g / 2, O = S - e.f / 2, Yc(e, $), Zc(e, O), d = n.a.jg(e), m = 2 * j.Math.acos(t / t + n.c), m < r - i ? (p = m / d, o = (i + r - m) / 2) : (p = (r - i) / d, o = i), v = Tb(e), n.e && (n.e.kg(n.d), n.e.lg(v)), l = new E(v); l.a < l.c.c.length; )
+ h = u(y(l), 33), a = n.a.jg(h), hZ(n, h, t + n.c, o, o + p * a, c), o += p * a;
+ }
+ function Cke(n, e, t) {
+ var i;
+ switch (i = t.q.getMonth(), e) {
+ case 5:
+ De(n, A(M(tn, 1), q, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[i]);
+ break;
+ case 4:
+ De(n, A(M(tn, 1), q, 2, 6, [IL, OL, DL, $L, V2, FL, xL, LL, NL, BL, RL, _L])[i]);
+ break;
+ case 3:
+ De(n, A(M(tn, 1), q, 2, 6, ["Jan", "Feb", "Mar", "Apr", V2, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[i]);
+ break;
+ default:
+ sh(n, i + 1, e);
+ }
+ }
+ function Yx(n, e) {
+ var t, i, r, c, o;
+ if (le(e, "Network simplex", 1), n.e.a.c.length < 1) {
+ ce(e);
+ return;
+ }
+ for (c = new E(n.e.a); c.a < c.c.c.length; )
+ r = u(y(c), 121), r.e = 0;
+ for (o = n.e.a.c.length >= 40, o && lye(n), wje(n), X8e(n), t = XDn(n), i = 0; t && i < n.f; )
+ Ake(n, t, Wme(n, t)), t = XDn(n), ++i;
+ o && pve(n), n.a ? s9e(n, PBn(n)) : PBn(n), n.b = null, n.d = null, n.p = null, n.c = null, n.g = null, n.i = null, n.n = null, n.o = null, ce(e);
+ }
+ function Tke(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g;
+ for (h = new fn(t, i), ji(h, u(k(e, (al(), vm)), 8)), g = new E(e.e); g.a < g.c.c.length; )
+ d = u(y(g), 144), st(d.d, h), W(n.e, d);
+ for (f = new E(e.c); f.a < f.c.c.length; ) {
+ for (o = u(y(f), 282), c = new E(o.a); c.a < c.c.c.length; )
+ r = u(y(c), 559), st(r.d, h);
+ W(n.c, o);
+ }
+ for (a = new E(e.d); a.a < a.c.c.length; )
+ l = u(y(a), 447), st(l.d, h), W(n.d, l);
+ }
+ function lZ(n, e) {
+ var t, i, r, c, o, f, h, l;
+ for (h = new E(e.j); h.a < h.c.c.length; )
+ for (f = u(y(h), 11), r = new uf(f.b); Kr(r.a) || Kr(r.b); )
+ i = u(Kr(r.a) ? y(r.a) : y(r.b), 17), t = i.c == f ? i.d : i.c, c = t.i, e != c && (l = u(k(i, (nn(), dv)), 19).a, l < 0 && (l = 0), o = c.p, n.b[o] == 0 && (i.d == t ? (n.a[o] -= l + 1, n.a[o] <= 0 && n.c[o] > 0 && Ke(n.f, c)) : (n.c[o] -= l + 1, n.c[o] <= 0 && n.a[o] > 0 && Ke(n.e, c))));
+ }
+ function Mke(n) {
+ var e, t, i, r, c, o, f, h, l;
+ for (f = new J1(u(pe(new Xln()), 62)), l = Qt, t = new E(n.d); t.a < t.c.c.length; ) {
+ for (e = u(y(t), 222), l = e.c.c; f.a.c != 0 && (h = u(nhe(r0e(f.a)), 222), h.c.c + h.c.b < l); )
+ R5(f.a, h) != null;
+ for (o = (r = new T5(new j5(new P9(f.a).a).b), new I9(r)); G9(o.a.a); )
+ c = (i = pE(o.a), u(i.cd(), 222)), Ke(c.b, e), Ke(e.b, c);
+ bT(f.a, e, (qn(), Ga)) == null;
+ }
+ }
+ function LBn(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ for (c = new Ic(e.c.length), l = new E(e); l.a < l.c.c.length; )
+ o = u(y(l), 10), W(c, n.b[o.c.p][o.p]);
+ for (xje(n, c, t), d = null; d = LEe(c); )
+ Mye(n, u(d.a, 233), u(d.b, 233), c);
+ for (e.c = F(Zn, rn, 1, 0, 5, 1), r = new E(c); r.a < r.c.c.length; )
+ for (i = u(y(r), 233), f = i.d, h = 0, a = f.length; h < a; ++h)
+ o = f[h], e.c[e.c.length] = o, n.a[o.c.p][o.p].a = Zo(i.g, i.d[0]).a;
+ }
+ function aZ(n, e) {
+ var t, i, r, c;
+ if (0 < (I(n, 14) ? u(n, 14).gc() : $h(n.Kc()))) {
+ if (r = e, 1 < r) {
+ for (--r, c = new hgn(), i = n.Kc(); i.Ob(); )
+ t = u(i.Pb(), 86), c = of(A(M(gf, 1), rn, 20, 0, [c, new W1(t)]));
+ return aZ(c, r);
+ }
+ if (r < 0) {
+ for (c = new lgn(), i = n.Kc(); i.Ob(); )
+ t = u(i.Pb(), 86), c = of(A(M(gf, 1), rn, 20, 0, [c, new W1(t)]));
+ if (0 < (I(c, 14) ? u(c, 14).gc() : $h(c.Kc())))
+ return aZ(c, r);
+ }
+ }
+ return u(fE(n.Kc()), 86);
+ }
+ function xu() {
+ xu = N, Tv = new jw("DEFAULT_MINIMUM_SIZE", 0), Py = new jw("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING", 1), GP = new jw("COMPUTE_PADDING", 2), f9 = new jw("OUTSIDE_NODE_LABELS_OVERHANG", 3), zP = new jw("PORTS_OVERHANG", 4), WP = new jw("UNIFORM_PORT_SPACING", 5), UP = new jw("SPACE_EFFICIENT_PORT_LABELS", 6), sH = new jw("FORCE_TABULAR_NODE_LABELS", 7), Sy = new jw("ASYMMETRICAL", 8);
+ }
+ function Zx(n, e) {
+ var t, i, r, c, o, f, h, l;
+ if (e) {
+ if (t = (c = e.Tg(), c ? ts(c).Nh().Jh(c) : null), t) {
+ for (Sa(n, e, t), r = e.Tg(), h = 0, l = (r.i == null && Lf(r), r.i).length; h < l; ++h)
+ f = (i = (r.i == null && Lf(r), r.i), h >= 0 && h < i.length ? i[h] : null), f.Ij() && !f.Jj() && (I(f, 322) ? Lpe(n, u(f, 34), e, t) : (o = u(f, 18), o.Bb & sc && U4e(n, o, e, t)));
+ e.kh() && u(t, 49).vh(u(e, 49).qh());
+ }
+ return t;
+ } else
+ return null;
+ }
+ function Ake(n, e, t) {
+ var i, r, c;
+ if (!e.f)
+ throw T(new Hn("Given leave edge is no tree edge."));
+ if (t.f)
+ throw T(new Hn("Given enter edge is a tree edge already."));
+ for (e.f = !1, Pz(n.p, e), t.f = !0, ci(n.p, t), i = t.e.e - t.d.e - t.a, Ix(n, t.e, e) || (i = -i), c = new E(n.e.a); c.a < c.c.c.length; )
+ r = u(y(c), 121), Ix(n, r, e) || (r.e += i);
+ n.j = 1, qv(n.c), gY(n, u(y(new E(n.e.a)), 121)), GRn(n);
+ }
+ function NBn(n, e) {
+ var t, i, r, c, o, f;
+ if (f = u(k(e, (nn(), Nt)), 98), f == (Ai(), jh) || f == Sc)
+ for (r = new fn(e.f.a + e.d.b + e.d.c, e.f.b + e.d.d + e.d.a).b, o = new E(n.a); o.a < o.c.c.length; )
+ c = u(y(o), 10), c.k == (Qn(), Vt) && (t = u(k(c, (G(), ec)), 61), !(t != (J(), Vn) && t != Gn) && (i = K(Y(k(c, y0))), f == jh && (i *= r), c.n.b = i - u(k(c, C0), 8).b, lT(c, !1, !0)));
+ }
+ function BBn(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p;
+ if (U0e(n, e, t), c = e[t], p = i ? (J(), Gn) : (J(), Vn), Ace(e.length, t, i)) {
+ for (r = e[i ? t - 1 : t + 1], LX(n, r, i ? (ur(), Lc) : (ur(), Au)), h = c, a = 0, g = h.length; a < g; ++a)
+ o = h[a], eJ(n, o, p);
+ for (LX(n, c, i ? (ur(), Au) : (ur(), Lc)), f = r, l = 0, d = f.length; l < d; ++l)
+ o = f[l], o.e || eJ(n, o, b7(p));
+ } else
+ for (f = c, l = 0, d = f.length; l < d; ++l)
+ o = f[l], eJ(n, o, p);
+ return !1;
+ }
+ function Ske(n, e, t, i) {
+ var r, c, o, f, h, l, a;
+ h = zr(e, t), (t == (J(), ae) || t == Gn) && (h = I(h, 152) ? I2(u(h, 152)) : I(h, 131) ? u(h, 131).a : I(h, 54) ? new od(h) : new K0(h)), o = !1;
+ do
+ for (r = !1, c = 0; c < h.gc() - 1; c++)
+ l = u(h.Xb(c), 11), f = u(h.Xb(c + 1), 11), c5e(n, l, f, i) && (o = !0, l$(n.a, u(h.Xb(c), 11), u(h.Xb(c + 1), 11)), a = u(h.Xb(c + 1), 11), h._c(c + 1, u(h.Xb(c), 11)), h._c(c, a), r = !0);
+ while (r);
+ return o;
+ }
+ function Pke(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v;
+ if (Hu(n.e)) {
+ if (e != t && (r = u(n.g, 119), p = r[t], o = p.ak(), Gh(n.e, o))) {
+ for (v = _c(n.e.Tg(), o), h = -1, f = -1, i = 0, l = 0, d = e > t ? e : t; l <= d; ++l)
+ l == t ? f = i++ : (c = r[l], a = v.rl(c.ak()), l == e && (h = l == d && !a ? i - 1 : i), a && ++i);
+ return g = u(o6(n, e, t), 72), f != h && qp(n, new R8(n.e, 7, o, Q(f), p.dd(), h)), g;
+ }
+ } else
+ return u(Dx(n, e, t), 72);
+ return u(o6(n, e, t), 72);
+ }
+ function Ike(n, e) {
+ var t, i, r, c, o, f, h;
+ for (le(e, "Port order processing", 1), h = u(k(n, (nn(), Ssn)), 421), i = new E(n.b); i.a < i.c.c.length; )
+ for (t = u(y(i), 29), c = new E(t.a); c.a < c.c.c.length; )
+ r = u(y(c), 10), o = u(k(r, Nt), 98), f = r.j, o == (Ai(), id) || o == jh || o == Sc ? (Pn(), wi(f, Fcn)) : o != jf && o != Hl && (Pn(), wi(f, UWn), zpe(f), h == (z8(), rK) && wi(f, zWn)), r.i = !0, dY(r);
+ ce(e);
+ }
+ function Oke(n) {
+ var e, t, i, r, c, o, f, h;
+ for (h = new we(), e = new LI(), o = n.Kc(); o.Ob(); )
+ r = u(o.Pb(), 10), f = yd(K9(new ca(), r), e), Rc(h.f, r, f);
+ for (c = n.Kc(); c.Ob(); )
+ for (r = u(c.Pb(), 10), i = new re(ue(ei(r).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), !Wi(t) && jo(lo(ho(fo(ao(new Ls(), j.Math.max(1, u(k(t, (nn(), Psn)), 19).a)), 1), u(te(h, t.c.i), 121)), u(te(h, t.d.i), 121)));
+ return e;
+ }
+ function RBn() {
+ RBn = N, IJn = Ze(new li(), (Vi(), Tc), (rr(), mcn)), bon = Ze(new li(), Kc, lS), DJn = ju(Ze(new li(), Kc, mS), Or, vS), PJn = ju(Ze(Ze(new li(), Kc, bcn), Tc, wcn), Or, gcn), $Jn = Vd(Vd(Dj(ju(Ze(new li(), Vf, ES), Or, jS), Tc), yS), CS), OJn = ju(new li(), Or, kcn), AJn = ju(Ze(Ze(Ze(new li(), Dl, dS), Tc, wS), Tc, Q4), Or, bS), SJn = ju(Ze(Ze(new li(), Tc, Q4), Tc, hS), Or, fS);
+ }
+ function Dke(n, e, t, i, r, c) {
+ var o, f, h, l, a, d, g;
+ for (l = nDn(e) - nDn(n), o = Pxn(e, l), h = Nc(0, 0, 0); l >= 0 && (f = $3e(n, o), !(f && (l < 22 ? h.l |= 1 << l : l < 44 ? h.m |= 1 << l - 22 : h.h |= 1 << l - 44, n.l == 0 && n.m == 0 && n.h == 0))); )
+ a = o.m, d = o.h, g = o.l, o.h = d >>> 1, o.m = a >>> 1 | (d & 1) << 21, o.l = g >>> 1 | (a & 1) << 21, --l;
+ return t && sF(h), c && (i ? (Pl = G3(n), r && (Pl = LOn(Pl, (P3(), gin)))) : Pl = Nc(n.l, n.m, n.h)), h;
+ }
+ function $ke(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ for (l = n.e[e.c.p][e.p] + 1, h = e.c.a.c.length + 1, f = new E(n.a); f.a < f.c.c.length; ) {
+ for (o = u(y(f), 11), d = 0, c = 0, r = cl(of(A(M(gf, 1), rn, 20, 0, [new Hp(o), new n2(o)]))); Se(r); )
+ i = u(ve(r), 11), i.i.c == e.c && (d += yce(n, i.i) + 1, ++c);
+ t = d / c, a = o.j, a == (J(), Vn) ? t < l ? n.f[o.p] = n.c - t : n.f[o.p] = n.b + (h - t) : a == Gn && (t < l ? n.f[o.p] = n.b + t : n.f[o.p] = n.c - (h - t));
+ }
+ }
+ function us(n, e, t) {
+ var i, r, c, o, f;
+ if (n == null)
+ throw T(new Sf(tu));
+ for (c = n.length, o = c > 0 && (Me(0, n.length), n.charCodeAt(0) == 45 || (Me(0, n.length), n.charCodeAt(0) == 43)) ? 1 : 0, i = o; i < c; i++)
+ if (P$n((Me(i, n.length), n.charCodeAt(i))) == -1)
+ throw T(new Sf(u0 + n + '"'));
+ if (f = parseInt(n, 10), r = f < e, isNaN(f))
+ throw T(new Sf(u0 + n + '"'));
+ if (r || f > t)
+ throw T(new Sf(u0 + n + '"'));
+ return f;
+ }
+ function Fke(n) {
+ var e, t, i, r, c, o, f;
+ for (o = new Ct(), c = new E(n.a); c.a < c.c.c.length; )
+ r = u(y(c), 112), II(r, r.f.c.length), ej(r, r.k.c.length), r.i == 0 && (r.o = 0, Ht(o, r, o.c.b, o.c));
+ for (; o.b != 0; )
+ for (r = u(o.b == 0 ? null : (ne(o.b != 0), Cs(o, o.a.a)), 112), i = r.o + 1, t = new E(r.f); t.a < t.c.c.length; )
+ e = u(y(t), 129), f = e.a, aq(f, j.Math.max(f.o, i)), ej(f, f.i - 1), f.i == 0 && Ht(o, f, o.c.b, o.c);
+ }
+ function xke(n) {
+ var e, t, i, r, c, o, f, h;
+ for (o = new E(n); o.a < o.c.c.length; ) {
+ for (c = u(y(o), 79), i = Ir(u(D((!c.b && (c.b = new Fn(he, c, 4, 7)), c.b), 0), 82)), f = i.i, h = i.j, r = u(D((!c.a && (c.a = new V(Tt, c, 6, 6)), c.a), 0), 202), uE(r, r.j + f, r.k + h), cE(r, r.b + f, r.c + h), t = new ie((!r.a && (r.a = new Yt(to, r, 5)), r.a)); t.e != t.i.gc(); )
+ e = u(oe(t), 469), mz(e, e.a + f, e.b + h);
+ EV(u(hn(c, (Xe(), Rg)), 74), f, h);
+ }
+ }
+ function p4(n) {
+ var e;
+ switch (n) {
+ case 100:
+ return ug(am, !0);
+ case 68:
+ return ug(am, !1);
+ case 119:
+ return ug(JB, !0);
+ case 87:
+ return ug(JB, !1);
+ case 115:
+ return ug(YB, !0);
+ case 83:
+ return ug(YB, !1);
+ case 99:
+ return ug(ZB, !0);
+ case 67:
+ return ug(ZB, !1);
+ case 105:
+ return ug(nR, !0);
+ case 73:
+ return ug(nR, !1);
+ default:
+ throw T(new _r((e = n, ZGn + e.toString(16))));
+ }
+ }
+ function Lke(n) {
+ var e, t, i, r, c;
+ switch (r = u(un(n.a, 0), 10), e = new Hh(n), W(n.a, e), e.o.a = j.Math.max(1, r.o.a), e.o.b = j.Math.max(1, r.o.b), e.n.a = r.n.a, e.n.b = r.n.b, u(k(r, (G(), ec)), 61).g) {
+ case 4:
+ e.n.a += 2;
+ break;
+ case 1:
+ e.n.b += 2;
+ break;
+ case 2:
+ e.n.a -= 2;
+ break;
+ case 3:
+ e.n.b -= 2;
+ }
+ return i = new gc(), Hr(i, e), t = new Id(), c = u(un(r.j, 0), 11), Ki(t, c), Ti(t, i), st(Lo(i.n), c.n), st(Lo(i.a), c.a), e;
+ }
+ function _Bn(n, e, t, i, r) {
+ t && (!i || (n.c - n.b & n.a.length - 1) > 1) && e == 1 && u(n.a[n.b], 10).k == (Qn(), Qu) ? W2(u(n.a[n.b], 10), (cs(), kh)) : i && (!t || (n.c - n.b & n.a.length - 1) > 1) && e == 1 && u(n.a[n.c - 1 & n.a.length - 1], 10).k == (Qn(), Qu) ? W2(u(n.a[n.c - 1 & n.a.length - 1], 10), (cs(), _l)) : (n.c - n.b & n.a.length - 1) == 2 ? (W2(u(t6(n), 10), (cs(), kh)), W2(u(t6(n), 10), _l)) : S9e(n, r), kX(n);
+ }
+ function Nke(n, e, t) {
+ var i, r, c, o, f;
+ for (c = 0, r = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); r.e != r.i.gc(); )
+ i = u(oe(r), 33), o = "", (!i.n && (i.n = new V(Rr, i, 1, 7)), i.n).i == 0 || (o = u(D((!i.n && (i.n = new V(Rr, i, 1, 7)), i.n), 0), 137).a), f = new hF(c++, e, o), Pr(f, i), H(f, (uc(), Wm), i), f.e.b = i.j + i.f / 2, f.f.a = j.Math.max(i.g, 1), f.e.a = i.i + i.g / 2, f.f.b = j.Math.max(i.f, 1), Ke(e.b, f), Rc(t.f, i, f);
+ }
+ function Bke(n) {
+ var e, t, i, r, c;
+ i = u(k(n, (G(), rt)), 33), c = u(hn(i, (nn(), Va)), 174).Hc((Vu(), rd)), n.e || (r = u(k(n, Ac), 21), e = new fn(n.f.a + n.d.b + n.d.c, n.f.b + n.d.d + n.d.a), r.Hc((or(), Ds)) ? (gr(i, Nt, (Ai(), Sc)), i0(i, e.a, e.b, !1, !0)) : on(sn(hn(i, H_))) || i0(i, e.a, e.b, !0, !0)), c ? gr(i, Va, Cn(rd)) : gr(i, Va, (t = u(xo(o9), 9), new ms(t, u(bo(t, t.length), 9), 0)));
+ }
+ function dZ(n, e, t) {
+ var i, r, c, o;
+ if (e[0] >= n.length)
+ return t.o = 0, !0;
+ switch (Di(n, e[0])) {
+ case 43:
+ r = 1;
+ break;
+ case 45:
+ r = -1;
+ break;
+ default:
+ return t.o = 0, !0;
+ }
+ if (++e[0], c = e[0], o = tM(n, e), o == 0 && e[0] == c)
+ return !1;
+ if (e[0] < n.length && Di(n, e[0]) == 58) {
+ if (i = o * 60, ++e[0], c = e[0], o = tM(n, e), o == 0 && e[0] == c)
+ return !1;
+ i += o;
+ } else
+ i = o, i < 24 && e[0] - c <= 2 ? i *= 60 : i = i % 100 + (i / 100 | 0) * 60;
+ return i *= r, t.o = -i, !0;
+ }
+ function Rke(n) {
+ var e, t, i, r, c, o, f, h, l;
+ for (o = new X(), i = new re(ue(ei(n.b).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), Wi(t) && W(o, new ASn(t, aPn(n, t.c), aPn(n, t.d)));
+ for (l = (c = new Th(n.e).a.vc().Kc(), new N0(c)); l.a.Ob(); )
+ f = (e = u(l.a.Pb(), 42), u(e.dd(), 113)), f.d.p = 0;
+ for (h = (r = new Th(n.e).a.vc().Kc(), new N0(r)); h.a.Ob(); )
+ f = (e = u(h.a.Pb(), 42), u(e.dd(), 113)), f.d.p == 0 && W(n.d, vke(n, f));
+ }
+ function _ke(n) {
+ var e, t, i, r, c, o, f;
+ for (c = nf(n), r = new ie((!n.e && (n.e = new Fn(bi, n, 7, 4)), n.e)); r.e != r.i.gc(); )
+ if (i = u(oe(r), 79), f = Ir(u(D((!i.c && (i.c = new Fn(he, i, 5, 8)), i.c), 0), 82)), !fb(f, c))
+ return !0;
+ for (t = new ie((!n.d && (n.d = new Fn(bi, n, 8, 5)), n.d)); t.e != t.i.gc(); )
+ if (e = u(oe(t), 79), o = Ir(u(D((!e.b && (e.b = new Fn(he, e, 4, 7)), e.b), 0), 82)), !fb(o, c))
+ return !0;
+ return !1;
+ }
+ function Kke(n) {
+ var e, t, i, r, c, o, f, h;
+ for (h = new ou(), e = _e(n, 0), f = null, t = u(Re(e), 8), r = u(Re(e), 8); e.b != e.d.c; )
+ f = t, t = r, r = u(Re(e), 8), c = cIn(ji(new fn(f.a, f.b), t)), o = cIn(ji(new fn(r.a, r.b), t)), i = 10, i = j.Math.min(i, j.Math.abs(c.a + c.b) / 2), i = j.Math.min(i, j.Math.abs(o.a + o.b) / 2), c.a = m8(c.a) * i, c.b = m8(c.b) * i, o.a = m8(o.a) * i, o.b = m8(o.b) * i, Ke(h, st(c, t)), Ke(h, st(o, t));
+ return h;
+ }
+ function ss(n, e, t, i) {
+ var r, c, o, f, h;
+ return o = n.eh(), h = n.Zg(), r = null, h ? e && !(Qx(n, e, t).Bb & Ji) ? (i = Gi(h.Vk(), n, i), n.uh(null), r = e.fh()) : h = null : (o && (h = o.fh()), e && (r = e.fh())), h != r && h && h.Zk(n), f = n.Vg(), n.Rg(e, t), h != r && r && r.Yk(n), n.Lg() && n.Mg() && (o && f >= 0 && f != t && (c = new gi(n, 1, f, o, null), i ? i.Ei(c) : i = c), t >= 0 && (c = new gi(n, 1, t, f == t ? o : null, e), i ? i.Ei(c) : i = c)), i;
+ }
+ function KBn(n) {
+ var e, t, i;
+ if (n.b == null) {
+ if (i = new i1(), n.i != null && (dr(i, n.i), i.a += ":"), n.f & 256) {
+ for (n.f & 256 && n.a != null && (n1e(n.i) || (i.a += "//"), dr(i, n.a)), n.d != null && (i.a += "/", dr(i, n.d)), n.f & 16 && (i.a += "/"), e = 0, t = n.j.length; e < t; e++)
+ e != 0 && (i.a += "/"), dr(i, n.j[e]);
+ n.g != null && (i.a += "?", dr(i, n.g));
+ } else
+ dr(i, n.a);
+ n.e != null && (i.a += "#", dr(i, n.e)), n.b = i.a;
+ }
+ return n.b;
+ }
+ function Hke(n, e) {
+ var t, i, r, c, o, f;
+ for (r = new E(e.a); r.a < r.c.c.length; )
+ i = u(y(r), 10), c = k(i, (G(), rt)), I(c, 11) && (o = u(c, 11), f = uRn(e, i, o.o.a, o.o.b), o.n.a = f.a, o.n.b = f.b, si(o, u(k(i, ec), 61)));
+ t = new fn(e.f.a + e.d.b + e.d.c, e.f.b + e.d.d + e.d.a), u(k(e, (G(), Ac)), 21).Hc((or(), Ds)) ? (H(n, (nn(), Nt), (Ai(), Sc)), u(k(qi(n), Ac), 21).Fc(sv), qRn(n, t, !1)) : qRn(n, t, !0);
+ }
+ function qke(n, e, t) {
+ var i, r, c, o, f, h;
+ if (le(t, "Minimize Crossings " + n.a, 1), i = e.b.c.length == 0 || !Wv(gt(new $n(null, new xn(e.b, 16)), new Fv(new Twn()))).sd((ua(), X4)), h = e.b.c.length == 1 && u(un(e.b, 0), 29).a.c.length == 1, c = B(k(e, (nn(), Qb))) === B((Rh(), F1)), i || h && !c) {
+ ce(t);
+ return;
+ }
+ r = R8e(n, e), o = (f = u(qo(r, 0), 214), f.c.Rf() ? f.c.Lf() ? new l6n(n) : new a6n(n) : new h6n(n)), _we(r, o), age(n), ce(t);
+ }
+ function Gke(n, e, t, i) {
+ var r, c, o, f, h;
+ if (h = ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15))), r = ge(Ni(ah, rh(ge(Ni(t == null ? 0 : mt(t), dh)), 15))), f = Y5(n, e, h), o = J5(n, t, r), f && r == f.a && $f(t, f.g))
+ return t;
+ if (o && !i)
+ throw T(new Hn("key already present: " + t));
+ return f && Yw(n, f), o && Yw(n, o), c = new VE(t, r, e, h), D7(n, c, o), o && (o.e = null, o.c = null), f && (f.e = null, f.c = null), HFn(n), f ? f.g : null;
+ }
+ function HBn(n, e, t) {
+ var i, r, c, o, f;
+ for (c = 0; c < e; c++) {
+ for (i = 0, f = c + 1; f < e; f++)
+ i = Hi(Hi(Ni(ui(n[c], fr), ui(n[f], fr)), ui(t[c + f], fr)), ui(ge(i), fr)), t[c + f] = ge(i), i = Y0(i, 32);
+ t[c + e] = ge(i);
+ }
+ for (ybe(t, t, e << 1), i = 0, r = 0, o = 0; r < e; ++r, o++)
+ i = Hi(Hi(Ni(ui(n[r], fr), ui(n[r], fr)), ui(t[o], fr)), ui(ge(i), fr)), t[o] = ge(i), i = Y0(i, 32), ++o, i = Hi(i, ui(t[o], fr)), t[o] = ge(i), i = Y0(i, 32);
+ return t;
+ }
+ function qBn(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ if (!j3(e)) {
+ for (h = K(Y(wb(t.c, (nn(), Fm)))), l = u(wb(t.c, ny), 142), !l && (l = new Bv()), i = t.a, r = null, f = e.Kc(); f.Ob(); )
+ o = u(f.Pb(), 11), a = 0, r ? (a = h, a += r.o.b) : a = l.d, c = yd(K9(new ca(), o), n.f), it(n.k, o, c), jo(lo(ho(fo(ao(new Ls(), 0), zt(j.Math.ceil(a))), i), c)), r = o, i = c;
+ jo(lo(ho(fo(ao(new Ls(), 0), zt(j.Math.ceil(l.a + r.o.b))), i), t.d));
+ }
+ }
+ function zke(n, e, t, i, r, c, o, f) {
+ var h, l, a, d, g, p;
+ return p = !1, g = c - t.s, a = t.t - e.f + (l = O6(t, g, !1), l.a), i.g + f > g ? !1 : (d = (h = O6(i, g, !1), h.a), a + f + d <= e.b && (B8(t, c - t.s), t.c = !0, B8(i, c - t.s), k7(i, t.s, t.t + t.d + f), i.k = !0, TV(t.q, i), p = !0, r && (XC(e, i), i.j = e, n.c.length > o && (T7((Ln(o, n.c.length), u(n.c[o], 200)), i), (Ln(o, n.c.length), u(n.c[o], 200)).a.c.length == 0 && h1(n, o)))), p);
+ }
+ function Uke(n, e) {
+ var t, i, r, c, o, f;
+ if (le(e, "Partition midprocessing", 1), r = new Dd(), Rt(gt(new $n(null, new xn(n.a, 16)), new g0n()), new O5n(r)), r.d != 0) {
+ for (f = u(es(FMn((c = r.i, new $n(null, (c || (r.i = new Sw(r, r.c))).Nc()))), pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [(hf(), hs)]))), 15), i = f.Kc(), t = u(i.Pb(), 19); i.Ob(); )
+ o = u(i.Pb(), 19), V9e(u(ct(r, t), 21), u(ct(r, o), 21)), t = o;
+ ce(e);
+ }
+ }
+ function GBn(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ if (e.p == 0) {
+ for (e.p = 1, o = t, o || (r = new X(), c = (i = u(xo(Yi), 9), new ms(i, u(bo(i, i.length), 9), 0)), o = new Pi(r, c)), u(o.a, 15).Fc(e), e.k == (Qn(), Vt) && u(o.b, 21).Fc(u(k(e, (G(), ec)), 61)), h = new E(e.j); h.a < h.c.c.length; )
+ for (f = u(y(h), 11), a = cl(of(A(M(gf, 1), rn, 20, 0, [new Hp(f), new n2(f)]))); Se(a); )
+ l = u(ve(a), 11), GBn(n, l.i, o);
+ return o;
+ }
+ return null;
+ }
+ function A6(n, e) {
+ var t, i, r, c, o;
+ if (n.Ab) {
+ if (n.Ab) {
+ if (o = n.Ab.i, o > 0) {
+ if (r = u(n.Ab.g, 1934), e == null) {
+ for (c = 0; c < o; ++c)
+ if (t = r[c], t.d == null)
+ return t;
+ } else
+ for (c = 0; c < o; ++c)
+ if (t = r[c], An(e, t.d))
+ return t;
+ }
+ } else if (e == null) {
+ for (i = new ie(n.Ab); i.e != i.i.gc(); )
+ if (t = u(oe(i), 590), t.d == null)
+ return t;
+ } else
+ for (i = new ie(n.Ab); i.e != i.i.gc(); )
+ if (t = u(oe(i), 590), An(e, t.d))
+ return t;
+ }
+ return null;
+ }
+ function Wke(n, e) {
+ var t, i, r, c, o, f, h, l;
+ if (l = sn(k(e, (n0(), oYn))), l == null || (_n(l), l)) {
+ for (mme(n, e), r = new X(), h = _e(e.b, 0); h.b != h.d.c; )
+ o = u(Re(h), 86), t = cY(n, o, null), t && (Pr(t, e), r.c[r.c.length] = t);
+ if (n.a = null, n.b = null, r.c.length > 1)
+ for (i = new E(r); i.a < i.c.c.length; )
+ for (t = u(y(i), 135), c = 0, f = _e(t.b, 0); f.b != f.d.c; )
+ o = u(Re(f), 86), o.g = c++;
+ return r;
+ }
+ return cf(A(M(rMe, 1), ynn, 135, 0, [e]));
+ }
+ function Xke(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ p = Lae(n, xV(e), r), mV(p, Dh(r, Uf)), Ot = null, v = r, m = q5(v, Tqn), C = new V6n(p), w5e(C.a, m), S = q5(v, "endPoint"), $ = new Z6n(p), b5e($.a, S), O = xd(v, pA), x = new tmn(p), tve(x.a, O), d = Dh(r, xtn), c = new pkn(n, p), Aue(c.a, c.b, d), g = Dh(r, Ftn), o = new vkn(n, p), Sue(o.a, o.b, g), l = xd(r, Ntn), f = new mkn(t, p), _3e(f.b, f.a, l), a = xd(r, Ltn), h = new kkn(i, p), K3e(h.b, h.a, a);
+ }
+ function bZ(n, e, t) {
+ var i, r, c, o, f;
+ switch (f = null, e.g) {
+ case 1:
+ for (r = new E(n.j); r.a < r.c.c.length; )
+ if (i = u(y(r), 11), on(sn(k(i, (G(), T_)))))
+ return i;
+ f = new gc(), H(f, (G(), T_), (qn(), !0));
+ break;
+ case 2:
+ for (o = new E(n.j); o.a < o.c.c.length; )
+ if (c = u(y(o), 11), on(sn(k(c, (G(), A_)))))
+ return c;
+ f = new gc(), H(f, (G(), A_), (qn(), !0));
+ }
+ return f && (Hr(f, n), si(f, t), Kpe(f.n, n.o, t)), f;
+ }
+ function zBn(n, e) {
+ var t, i, r, c, o, f;
+ for (f = -1, o = new Ct(), i = new uf(n.b); Kr(i.a) || Kr(i.b); ) {
+ for (t = u(Kr(i.a) ? y(i.a) : y(i.b), 17), f = j.Math.max(f, K(Y(k(t, (nn(), S1))))), t.c == n ? Rt(gt(new $n(null, new xn(t.b, 16)), new adn()), new k5n(o)) : Rt(gt(new $n(null, new xn(t.b, 16)), new ddn()), new y5n(o)), c = _e(o, 0); c.b != c.d.c; )
+ r = u(Re(c), 70), ai(r, (G(), wp)) || H(r, wp, t);
+ Zt(e, o), Rs(o);
+ }
+ return f;
+ }
+ function Vke(n, e, t, i, r) {
+ var c, o, f, h;
+ c = new Hh(n), ta(c, (Qn(), Mc)), H(c, (nn(), Nt), (Ai(), Sc)), H(c, (G(), rt), e.c.i), o = new gc(), H(o, rt, e.c), si(o, r), Hr(o, c), H(e.c, Mu, c), f = new Hh(n), ta(f, Mc), H(f, Nt, Sc), H(f, rt, e.d.i), h = new gc(), H(h, rt, e.d), si(h, r), Hr(h, f), H(e.d, Mu, f), Ki(e, o), Ti(e, h), ib(0, t.c.length), e5(t.c, 0, c), i.c[i.c.length] = f, H(c, KS, Q(1)), H(f, KS, Q(1));
+ }
+ function e0(n, e, t, i, r) {
+ var c, o, f, h, l;
+ f = r ? i.b : i.a, !Mh(n.a, i) && (l = f > t.s && f < t.c, h = !1, t.e.b != 0 && t.j.b != 0 && (h = h | (j.Math.abs(f - K(Y(QO(t.e)))) < Kf && j.Math.abs(f - K(Y(QO(t.j)))) < Kf), h = h | (j.Math.abs(f - K(Y(gE(t.e)))) < Kf && j.Math.abs(f - K(Y(gE(t.j)))) < Kf)), (l || h) && (o = u(k(e, (nn(), Mr)), 74), o || (o = new ou(), H(e, Mr, o)), c = new kr(i), Ht(o, c, o.c.b, o.c), ci(n.a, c)));
+ }
+ function Qke(n, e, t, i) {
+ var r, c, o, f, h, l, a;
+ if (tme(n, e, t, i))
+ return !0;
+ for (o = new E(e.f); o.a < o.c.c.length; ) {
+ switch (c = u(y(o), 324), f = !1, h = n.j - e.j + t, l = h + e.o, a = n.k - e.k + i, r = a + e.p, c.a.g) {
+ case 0:
+ f = wF(n, h + c.b.a, 0, h + c.c.a, a - 1);
+ break;
+ case 1:
+ f = wF(n, l, a + c.b.a, n.o - 1, a + c.c.a);
+ break;
+ case 2:
+ f = wF(n, h + c.b.a, r, h + c.c.a, n.p - 1);
+ break;
+ default:
+ f = wF(n, 0, a + c.b.a, h - 1, a + c.c.a);
+ }
+ if (f)
+ return !0;
+ }
+ return !1;
+ }
+ function Jke(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (o = new E(e.b); o.a < o.c.c.length; )
+ for (c = u(y(o), 29), l = new E(c.a); l.a < l.c.c.length; ) {
+ for (h = u(y(l), 10), a = new X(), f = 0, i = new re(ue(Lr(h).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), !(Wi(t) || !Wi(t) && t.c.i.c == t.d.i.c) && (r = u(k(t, (nn(), yp)), 19).a, r > f && (f = r, a.c = F(Zn, rn, 1, 0, 5, 1)), r == f && W(a, new Pi(t.c.i, t)));
+ Pn(), wi(a, n.c), J0(n.b, h.p, a);
+ }
+ }
+ function Yke(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (o = new E(e.b); o.a < o.c.c.length; )
+ for (c = u(y(o), 29), l = new E(c.a); l.a < l.c.c.length; ) {
+ for (h = u(y(l), 10), a = new X(), f = 0, i = new re(ue(ei(h).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), !(Wi(t) || !Wi(t) && t.c.i.c == t.d.i.c) && (r = u(k(t, (nn(), yp)), 19).a, r > f && (f = r, a.c = F(Zn, rn, 1, 0, 5, 1)), r == f && W(a, new Pi(t.d.i, t)));
+ Pn(), wi(a, n.c), J0(n.f, h.p, a);
+ }
+ }
+ function UBn(n) {
+ gd(n, new Oa(ad(fd(ld(hd(new na(), h0), "ELK Box"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges."), new k2n()))), Z(n, h0, s0, Gfn), Z(n, h0, $b, 15), Z(n, h0, hk, Q(0)), Z(n, h0, dA, cn(Kfn)), Z(n, h0, hg, cn(NZn)), Z(n, h0, tp, cn(BZn)), Z(n, h0, ep, GHn), Z(n, h0, lk, cn(Hfn)), Z(n, h0, ip, cn(qfn)), Z(n, h0, Ctn, cn(qK)), Z(n, h0, sA, cn(LZn));
+ }
+ function WBn(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (r = n.i, o = r.o.a, c = r.o.b, o <= 0 && c <= 0)
+ return J(), Xr;
+ switch (l = n.n.a, a = n.n.b, f = n.o.a, t = n.o.b, e.g) {
+ case 2:
+ case 1:
+ if (l < 0)
+ return J(), Gn;
+ if (l + f > o)
+ return J(), Vn;
+ break;
+ case 4:
+ case 3:
+ if (a < 0)
+ return J(), Kn;
+ if (a + t > c)
+ return J(), ae;
+ }
+ return h = (l + f / 2) / o, i = (a + t / 2) / c, h + i <= 1 && h - i <= 0 ? (J(), Gn) : h + i >= 1 && h - i >= 0 ? (J(), Vn) : i < 0.5 ? (J(), Kn) : (J(), ae);
+ }
+ function Zke(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (t = !1, a = K(Y(k(e, (nn(), M0)))), v = El * a, r = new E(e.b); r.a < r.c.c.length; )
+ for (i = u(y(r), 29), l = new E(i.a), c = u(y(l), 10), d = jW(n.a[c.p]); l.a < l.c.c.length; )
+ f = u(y(l), 10), g = jW(n.a[f.p]), d != g && (p = Mw(n.b, c, f), o = c.n.b + c.o.b + c.d.a + d.a + p, h = f.n.b - f.d.d + g.a, o > h + v && (m = d.g + g.g, g.a = (g.g * g.a + d.g * d.a) / m, g.g = m, d.f = g, t = !0)), c = f, d = g;
+ return t;
+ }
+ function XBn(n, e, t, i, r, c, o) {
+ var f, h, l, a, d, g;
+ for (g = new d2(), l = e.Kc(); l.Ob(); )
+ for (f = u(l.Pb(), 839), d = new E(f.wf()); d.a < d.c.c.length; )
+ a = u(y(d), 181), B(a.We((Xe(), XK))) === B((sf(), jv)) && (ABn(g, a, !1, i, r, c, o), m6(n, g));
+ for (h = t.Kc(); h.Ob(); )
+ for (f = u(h.Pb(), 839), d = new E(f.wf()); d.a < d.c.c.length; )
+ a = u(y(d), 181), B(a.We((Xe(), XK))) === B((sf(), uw)) && (ABn(g, a, !0, i, r, c, o), m6(n, g));
+ }
+ function nye(n, e, t) {
+ var i, r, c, o, f, h, l;
+ for (o = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); o.e != o.i.gc(); )
+ for (c = u(oe(o), 33), r = new re(ue(qh(c).a.Kc(), new Mn())); Se(r); )
+ i = u(ve(r), 79), !j6(i) && !j6(i) && !Yd(i) && (h = u(Vr(Sr(t.f, c)), 86), l = u(te(t, Ir(u(D((!i.c && (i.c = new Fn(he, i, 5, 8)), i.c), 0), 82))), 86), h && l && (f = new UW(h, l), H(f, (uc(), Wm), i), Pr(f, i), Ke(h.d, f), Ke(l.b, f), Ke(e.a, f)));
+ }
+ function eye(n, e) {
+ var t, i, r, c, o, f, h, l;
+ for (h = u(u(ct(n.r, e), 21), 84).Kc(); h.Ob(); )
+ f = u(h.Pb(), 111), r = f.c ? KEn(f.c) : 0, r > 0 ? f.a ? (l = f.b.rf().b, r > l && (n.v || f.c.d.c.length == 1 ? (o = (r - l) / 2, f.d.d = o, f.d.a = o) : (t = u(un(f.c.d, 0), 181).rf().b, i = (t - l) / 2, f.d.d = j.Math.max(0, i), f.d.a = r - i - l))) : f.d.a = n.t + r : D5(n.u) && (c = HJ(f.b), c.d < 0 && (f.d.d = -c.d), c.d + c.a > f.b.rf().b && (f.d.a = c.d + c.a - f.b.rf().b));
+ }
+ function tye(n, e) {
+ var t;
+ switch (U8(n)) {
+ case 6:
+ return yi(e);
+ case 7:
+ return z0(e);
+ case 8:
+ return G0(e);
+ case 3:
+ return Array.isArray(e) && (t = U8(e), !(t >= 14 && t <= 16));
+ case 11:
+ return e != null && typeof e === CL;
+ case 12:
+ return e != null && (typeof e === Q7 || typeof e == CL);
+ case 0:
+ return WF(e, n.__elementTypeId$);
+ case 2:
+ return OD(e) && e.im !== Xg;
+ case 1:
+ return OD(e) && e.im !== Xg || WF(e, n.__elementTypeId$);
+ default:
+ return !0;
+ }
+ }
+ function VBn(n, e) {
+ var t, i, r, c;
+ return i = j.Math.min(j.Math.abs(n.c - (e.c + e.b)), j.Math.abs(n.c + n.b - e.c)), c = j.Math.min(j.Math.abs(n.d - (e.d + e.a)), j.Math.abs(n.d + n.a - e.d)), t = j.Math.abs(n.c + n.b / 2 - (e.c + e.b / 2)), t > n.b / 2 + e.b / 2 || (r = j.Math.abs(n.d + n.a / 2 - (e.d + e.a / 2)), r > n.a / 2 + e.a / 2) ? 1 : t == 0 && r == 0 ? 0 : t == 0 ? c / r + 1 : r == 0 ? i / t + 1 : j.Math.min(i / t, c / r) + 1;
+ }
+ function QBn(n, e) {
+ var t, i, r, c, o, f;
+ return r = fV(n), f = fV(e), r == f ? n.e == e.e && n.a < 54 && e.a < 54 ? n.f < e.f ? -1 : n.f > e.f ? 1 : 0 : (i = n.e - e.e, t = (n.d > 0 ? n.d : j.Math.floor((n.a - 1) * sKn) + 1) - (e.d > 0 ? e.d : j.Math.floor((e.a - 1) * sKn) + 1), t > i + 1 ? r : t < i - 1 ? -r : (c = (!n.c && (n.c = h7(n.f)), n.c), o = (!e.c && (e.c = h7(e.f)), e.c), i < 0 ? c = Fw(c, vRn(-i)) : i > 0 && (o = Fw(o, vRn(i))), S$n(c, o))) : r < f ? -1 : 1;
+ }
+ function iye(n, e) {
+ var t, i, r, c, o, f, h;
+ for (c = 0, f = 0, h = 0, r = new E(n.f.e); r.a < r.c.c.length; )
+ i = u(y(r), 144), e != i && (o = n.i[e.b][i.b], c += o, t = ll(e.d, i.d), t > 0 && n.d != (W5(), BR) && (f += o * (i.d.a + n.a[e.b][i.b] * (e.d.a - i.d.a) / t)), t > 0 && n.d != (W5(), LR) && (h += o * (i.d.b + n.a[e.b][i.b] * (e.d.b - i.d.b) / t)));
+ switch (n.d.g) {
+ case 1:
+ return new fn(f / c, e.d.b);
+ case 2:
+ return new fn(e.d.a, h / c);
+ default:
+ return new fn(f / c, h / c);
+ }
+ }
+ function JBn(n, e) {
+ X3();
+ var t, i, r, c, o;
+ if (o = u(k(n.i, (nn(), Nt)), 98), c = n.j.g - e.j.g, c != 0 || !(o == (Ai(), id) || o == jh || o == Sc))
+ return 0;
+ if (o == (Ai(), id) && (t = u(k(n, P1), 19), i = u(k(e, P1), 19), t && i && (r = t.a - i.a, r != 0)))
+ return r;
+ switch (n.j.g) {
+ case 1:
+ return ni(n.n.a, e.n.a);
+ case 2:
+ return ni(n.n.b, e.n.b);
+ case 3:
+ return ni(e.n.a, n.n.a);
+ case 4:
+ return ni(e.n.b, n.n.b);
+ default:
+ throw T(new $r($nn));
+ }
+ }
+ function YBn(n) {
+ var e, t, i, r, c, o;
+ for (t = (!n.a && (n.a = new Yt(to, n, 5)), n.a).i + 2, o = new Ic(t), W(o, new fn(n.j, n.k)), Rt(new $n(null, (!n.a && (n.a = new Yt(to, n, 5)), new xn(n.a, 16))), new U6n(o)), W(o, new fn(n.b, n.c)), e = 1; e < o.c.length - 1; )
+ i = (Ln(e - 1, o.c.length), u(o.c[e - 1], 8)), r = (Ln(e, o.c.length), u(o.c[e], 8)), c = (Ln(e + 1, o.c.length), u(o.c[e + 1], 8)), i.a == r.a && r.a == c.a || i.b == r.b && r.b == c.b ? h1(o, e) : ++e;
+ return o;
+ }
+ function ZBn(n, e) {
+ var t, i, r, c, o, f, h;
+ for (t = ejn(w7n(d7n(b7n(new Vq(), e), new uC(e.e)), VWn), n.a), e.j.c.length == 0 || gPn(u(un(e.j, 0), 57).a, t), h = new FI(), it(n.e, t, h), o = new hi(), f = new hi(), c = new E(e.k); c.a < c.c.c.length; )
+ r = u(y(c), 17), ci(o, r.c), ci(f, r.d);
+ i = o.a.gc() - f.a.gc(), i < 0 ? (u7(h, !0, (sr(), Ys)), u7(h, !1, Ao)) : i > 0 && (u7(h, !1, (sr(), Ys)), u7(h, !0, Ao)), Jc(e.g, new q7n(n, t)), it(n.g, e, t);
+ }
+ function nRn() {
+ nRn = N;
+ var n;
+ for (Cin = A(M(be, 1), Le, 25, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]), bR = F(be, Le, 25, 37, 15, 1), jzn = A(M(be, 1), Le, 25, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]), Tin = F(Jl, QL, 25, 37, 14, 1), n = 2; n <= 36; n++)
+ bR[n] = zt(j.Math.pow(n, Cin[n])), Tin[n] = M7(IM, bR[n]);
+ }
+ function rye(n) {
+ var e;
+ if ((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a).i != 1)
+ throw T(new Hn(fqn + (!n.a && (n.a = new V(Tt, n, 6, 6)), n.a).i));
+ return e = new ou(), r7(u(D((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), 0), 82)) && Xi(e, L_n(n, r7(u(D((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), 0), 82)), !1)), r7(u(D((!n.c && (n.c = new Fn(he, n, 5, 8)), n.c), 0), 82)) && Xi(e, L_n(n, r7(u(D((!n.c && (n.c = new Fn(he, n, 5, 8)), n.c), 0), 82)), !0)), e;
+ }
+ function eRn(n, e) {
+ var t, i, r, c, o;
+ for (e.d ? r = n.a.c == (Ff(), A0) ? Lr(e.b) : ei(e.b) : r = n.a.c == (Ff(), I1) ? Lr(e.b) : ei(e.b), c = !1, i = new re(ue(r.a.Kc(), new Mn())); Se(i); )
+ if (t = u(ve(i), 17), o = on(n.a.f[n.a.g[e.b.p].p]), !(!o && !Wi(t) && t.c.i.c == t.d.i.c) && !(on(n.a.n[n.a.g[e.b.p].p]) || on(n.a.n[n.a.g[e.b.p].p])) && (c = !0, Mh(n.b, n.a.g[b3e(t, e.b).p])))
+ return e.c = !0, e.a = t, e;
+ return e.c = c, e.a = null, e;
+ }
+ function cye(n, e, t, i, r) {
+ var c, o, f, h, l, a, d;
+ for (Pn(), wi(n, new O2n()), f = new Ii(n, 0), d = new X(), c = 0; f.b < f.d.gc(); )
+ o = (ne(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 157)), d.c.length != 0 && au(o) * Gu(o) > c * 2 ? (a = new zC(d), l = au(o) / Gu(o), h = kL(a, e, new i2(), t, i, r, l), st(Lo(a.e), h), d.c = F(Zn, rn, 1, 0, 5, 1), c = 0, d.c[d.c.length] = a, d.c[d.c.length] = o, c = au(a) * Gu(a) + au(o) * Gu(o)) : (d.c[d.c.length] = o, c += au(o) * Gu(o));
+ return d;
+ }
+ function wZ(n, e, t) {
+ var i, r, c, o, f, h, l;
+ if (i = t.gc(), i == 0)
+ return !1;
+ if (n.ej())
+ if (h = n.fj(), IQ(n, e, t), o = i == 1 ? n.Zi(3, null, t.Kc().Pb(), e, h) : n.Zi(5, null, t, e, h), n.bj()) {
+ for (f = i < 100 ? null : new V1(i), c = e + i, r = e; r < c; ++r)
+ l = n.Oi(r), f = n.cj(l, f), f = f;
+ f ? (f.Ei(o), f.Fi()) : n.$i(o);
+ } else
+ n.$i(o);
+ else if (IQ(n, e, t), n.bj()) {
+ for (f = i < 100 ? null : new V1(i), c = e + i, r = e; r < c; ++r)
+ f = n.cj(n.Oi(r), f);
+ f && f.Fi();
+ }
+ return !0;
+ }
+ function tRn(n, e, t) {
+ var i, r, c, o, f;
+ return n.ej() ? (r = null, c = n.fj(), i = n.Zi(1, f = (o = n.Ui(e, n.oi(e, t)), o), t, e, c), n.bj() && !(n.ni() && f ? tt(f, t) : B(f) === B(t)) && (f && (r = n.dj(f, r)), r = n.cj(t, r)), r ? (r.Ei(i), r.Fi()) : n.$i(i), f) : (f = (o = n.Ui(e, n.oi(e, t)), o), n.bj() && !(n.ni() && f ? tt(f, t) : B(f) === B(t)) && (r = null, f && (r = n.dj(f, null)), r = n.cj(t, r), r && r.Fi()), f);
+ }
+ function gZ(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (n.e = e, n.f = u(k(e, (al(), cS)), 230), Hve(e), n.d = j.Math.max(e.e.c.length * 16 + e.c.c.length, 256), !on(sn(k(e, (Go(), Srn)))))
+ for (a = n.e.e.c.length, h = new E(e.e); h.a < h.c.c.length; )
+ f = u(y(h), 144), l = f.d, l.a = oW(n.f) * a, l.b = oW(n.f) * a;
+ for (t = e.b, c = new E(e.c); c.a < c.c.c.length; )
+ if (r = u(y(c), 282), i = u(k(r, $rn), 19).a, i > 0) {
+ for (o = 0; o < i; o++)
+ W(t, new HCn(r));
+ lLn(r);
+ }
+ }
+ function W2(n, e) {
+ var t, i, r, c, o, f;
+ if (n.k == (Qn(), Qu) && (t = Wv(gt(u(k(n, (G(), Vk)), 15).Oc(), new Fv(new c0n()))).sd((ua(), X4)) ? e : (cs(), jy), H(n, pp, t), t != (cs(), _l)))
+ for (i = u(k(n, rt), 17), f = K(Y(k(i, (nn(), S1)))), o = 0, t == kh ? o = n.o.b - j.Math.ceil(f / 2) : t == jy && (n.o.b -= K(Y(k(qi(n), jp))), o = (n.o.b - j.Math.ceil(f)) / 2), c = new E(n.j); c.a < c.c.c.length; )
+ r = u(y(c), 11), r.n.b = o;
+ }
+ function pZ() {
+ pZ = N, rO(), Nee = new c4n(), A(M(Ip, 2), q, 368, 0, [A(M(Ip, 1), xA, 592, 0, [new L9(qGn)])]), A(M(Ip, 2), q, 368, 0, [A(M(Ip, 1), xA, 592, 0, [new L9(rin)])]), A(M(Ip, 2), q, 368, 0, [A(M(Ip, 1), xA, 592, 0, [new L9(GGn)]), A(M(Ip, 1), xA, 592, 0, [new L9(rin)])]), new tl("-1"), A(M(Ip, 2), q, 368, 0, [A(M(Ip, 1), xA, 592, 0, [new L9("\\c+")])]), new tl("0"), new tl("0"), new tl("1"), new tl("0"), new tl(QGn);
+ }
+ function pM(n) {
+ var e, t;
+ return n.c && n.c.kh() && (t = u(n.c, 49), n.c = u(gl(n, t), 138), n.c != t && (n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 9, 2, t, n.c)), I(n.Cb, 399) ? n.Db >> 16 == -15 && n.Cb.nh() && L$(new D$(n.Cb, 9, 13, t, n.c, v1(Ou(u(n.Cb, 59)), n))) : I(n.Cb, 88) && n.Db >> 16 == -23 && n.Cb.nh() && (e = n.c, I(e, 88) || (e = (Sn(), uo)), I(t, 88) || (t = (Sn(), uo)), L$(new D$(n.Cb, 9, 10, t, e, v1(wc(u(n.Cb, 26)), n)))))), n.c;
+ }
+ function uye(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ for (le(e, "Hypernodes processing", 1), r = new E(n.b); r.a < r.c.c.length; )
+ for (i = u(y(r), 29), f = new E(i.a); f.a < f.c.c.length; )
+ if (o = u(y(f), 10), on(sn(k(o, (nn(), YS)))) && o.j.c.length <= 2) {
+ for (d = 0, a = 0, t = 0, c = 0, l = new E(o.j); l.a < l.c.c.length; )
+ switch (h = u(y(l), 11), h.j.g) {
+ case 1:
+ ++d;
+ break;
+ case 2:
+ ++a;
+ break;
+ case 3:
+ ++t;
+ break;
+ case 4:
+ ++c;
+ }
+ d == 0 && t == 0 && fTe(n, o, c <= a);
+ }
+ ce(e);
+ }
+ function sye(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (le(e, "Layer constraint edge reversal", 1), o = new E(n.b); o.a < o.c.c.length; ) {
+ for (c = u(y(o), 29), a = -1, t = new X(), l = I8(c.a), r = 0; r < l.length; r++)
+ i = u(k(l[r], (G(), Ua)), 303), a == -1 ? i != (Lh(), Ag) && (a = r) : i == (Lh(), Ag) && (jr(l[r], null), vb(l[r], a++, c)), i == (Lh(), dp) && W(t, l[r]);
+ for (h = new E(t); h.a < h.c.c.length; )
+ f = u(y(h), 10), jr(f, null), jr(f, c);
+ }
+ ce(e);
+ }
+ function oye(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ for (le(t, "Hyperedge merging", 1), Lme(n, e), h = new Ii(e.b, 0); h.b < h.d.gc(); )
+ if (f = (ne(h.b < h.d.gc()), u(h.d.Xb(h.c = h.b++), 29)), a = f.a, a.c.length != 0)
+ for (i = null, r = null, c = null, o = null, l = 0; l < a.c.length; l++)
+ i = (Ln(l, a.c.length), u(a.c[l], 10)), r = i.k, r == (Qn(), pi) && o == pi && (d = tje(i, c), d.a && (l7e(i, c, d.b, d.c), Ln(l, a.c.length), AG(a.c, l, 1), --l, i = c, r = o)), c = i, o = r;
+ ce(t);
+ }
+ function fye(n, e) {
+ var t, i, r;
+ i = Fu(n.d, 1) != 0, !on(sn(k(e.j, (G(), m0)))) && !on(sn(k(e.j, Pg))) || B(k(e.j, (nn(), xl))) === B((Bh(), Ll)) ? e.c.Tf(e.e, i) : i = on(sn(k(e.j, m0))), _7(n, e, i, !0), on(sn(k(e.j, Pg))) && H(e.j, Pg, (qn(), !1)), on(sn(k(e.j, m0))) && (H(e.j, m0, (qn(), !1)), H(e.j, Pg, !0)), t = MBn(n, e);
+ do {
+ if (yV(n), t == 0)
+ return 0;
+ i = !i, r = t, _7(n, e, i, !1), t = MBn(n, e);
+ } while (r > t);
+ return r;
+ }
+ function iRn(n, e) {
+ var t, i, r;
+ i = Fu(n.d, 1) != 0, !on(sn(k(e.j, (G(), m0)))) && !on(sn(k(e.j, Pg))) || B(k(e.j, (nn(), xl))) === B((Bh(), Ll)) ? e.c.Tf(e.e, i) : i = on(sn(k(e.j, m0))), _7(n, e, i, !0), on(sn(k(e.j, Pg))) && H(e.j, Pg, (qn(), !1)), on(sn(k(e.j, m0))) && (H(e.j, m0, (qn(), !1)), H(e.j, Pg, !0)), t = Sx(n, e);
+ do {
+ if (yV(n), t == 0)
+ return 0;
+ i = !i, r = t, _7(n, e, i, !1), t = Sx(n, e);
+ } while (r > t);
+ return r;
+ }
+ function rRn(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v;
+ if (e == t)
+ return !0;
+ if (e = TY(n, e), t = TY(n, t), i = nx(e), i) {
+ if (a = nx(t), a != i)
+ return a ? (h = i.Dj(), v = a.Dj(), h == v && h != null) : !1;
+ if (o = (!e.d && (e.d = new Yt(ar, e, 1)), e.d), c = o.i, g = (!t.d && (t.d = new Yt(ar, t, 1)), t.d), c == g.i) {
+ for (l = 0; l < c; ++l)
+ if (r = u(D(o, l), 87), d = u(D(g, l), 87), !rRn(n, r, d))
+ return !1;
+ }
+ return !0;
+ } else
+ return f = e.e, p = t.e, f == p;
+ }
+ function cRn(n, e, t, i) {
+ var r, c, o, f, h, l, a, d;
+ if (Gh(n.e, e)) {
+ for (d = _c(n.e.Tg(), e), c = u(n.g, 119), a = null, h = -1, f = -1, r = 0, l = 0; l < n.i; ++l)
+ o = c[l], d.rl(o.ak()) && (r == t && (h = l), r == i && (f = l, a = o.dd()), ++r);
+ if (h == -1)
+ throw T(new mr(NB + t + _a + r));
+ if (f == -1)
+ throw T(new mr(BB + i + _a + r));
+ return o6(n, h, f), Hu(n.e) && qp(n, fl(n, 7, e, Q(i), a, t, !0)), a;
+ } else
+ throw T(new Hn("The feature must be many-valued to support move"));
+ }
+ function uRn(n, e, t, i) {
+ var r, c, o, f, h;
+ switch (h = new kr(e.n), h.a += e.o.a / 2, h.b += e.o.b / 2, f = K(Y(k(e, (nn(), Yb)))), c = n.f, o = n.d, r = n.c, u(k(e, (G(), ec)), 61).g) {
+ case 1:
+ h.a += o.b + r.a - t / 2, h.b = -i - f, e.n.b = -(o.d + f + r.b);
+ break;
+ case 2:
+ h.a = c.a + o.b + o.c + f, h.b += o.d + r.b - i / 2, e.n.a = c.a + o.c + f - r.a;
+ break;
+ case 3:
+ h.a += o.b + r.a - t / 2, h.b = c.b + o.d + o.a + f, e.n.b = c.b + o.a + f - r.b;
+ break;
+ case 4:
+ h.a = -t - f, h.b += o.d + r.b - i / 2, e.n.a = -(o.b + f + r.a);
+ }
+ return h;
+ }
+ function sRn(n) {
+ var e, t, i, r, c, o;
+ return i = new lV(), Pr(i, n), B(k(i, (nn(), ls))) === B((sr(), mh)) && H(i, ls, jT(i)), k(i, (SC(), Ym)) == null && (o = u(jxn(n), 160), H(i, Ym, eE(o.We(Ym)))), H(i, (G(), rt), n), H(i, Ac, (e = u(xo(v_), 9), new ms(e, u(bo(e, e.length), 9), 0))), r = JEe((At(n) && (H0(), new B0(At(n))), H0(), new WO(At(n) ? new B0(At(n)) : null, n)), Ao), c = u(k(i, Esn), 116), t = i.d, bMn(t, c), bMn(t, r), i;
+ }
+ function hye(n, e, t) {
+ var i, r;
+ i = e.c.i, r = t.d.i, i.k == (Qn(), pi) ? (H(n, (G(), Xo), u(k(i, Xo), 11)), H(n, Js, u(k(i, Js), 11)), H(n, Ub, sn(k(i, Ub)))) : i.k == Qu ? (H(n, (G(), Xo), u(k(i, Xo), 11)), H(n, Js, u(k(i, Js), 11)), H(n, Ub, (qn(), !0))) : r.k == Qu ? (H(n, (G(), Xo), u(k(r, Xo), 11)), H(n, Js, u(k(r, Js), 11)), H(n, Ub, (qn(), !0))) : (H(n, (G(), Xo), e.c), H(n, Js, t.d));
+ }
+ function lye(n) {
+ var e, t, i, r, c, o, f;
+ for (n.o = new gw(), i = new Ct(), o = new E(n.e.a); o.a < o.c.c.length; )
+ c = u(y(o), 121), Hw(c).c.length == 1 && Ht(i, c, i.c.b, i.c);
+ for (; i.b != 0; )
+ c = u(i.b == 0 ? null : (ne(i.b != 0), Cs(i, i.a.a)), 121), Hw(c).c.length != 0 && (e = u(un(Hw(c), 0), 213), t = c.g.a.c.length > 0, f = TT(e, c), Uz(t ? f.b : f.g, e), Hw(f).c.length == 1 && Ht(i, f, i.c.b, i.c), r = new Pi(c, e), hl(n.o, r), Vc(n.e.a, c));
+ }
+ function oRn(n, e) {
+ var t, i, r, c, o, f, h;
+ return i = j.Math.abs(qE(n.b).a - qE(e.b).a), f = j.Math.abs(qE(n.b).b - qE(e.b).b), r = 0, h = 0, t = 1, o = 1, i > n.b.b / 2 + e.b.b / 2 && (r = j.Math.min(j.Math.abs(n.b.c - (e.b.c + e.b.b)), j.Math.abs(n.b.c + n.b.b - e.b.c)), t = 1 - r / i), f > n.b.a / 2 + e.b.a / 2 && (h = j.Math.min(j.Math.abs(n.b.d - (e.b.d + e.b.a)), j.Math.abs(n.b.d + n.b.a - e.b.d)), o = 1 - h / f), c = j.Math.min(t, o), (1 - c) * j.Math.sqrt(i * i + f * f);
+ }
+ function aye(n) {
+ var e, t, i, r;
+ for (mL(n, n.e, n.f, (Od(), Bl), !0, n.c, n.i), mL(n, n.e, n.f, Bl, !1, n.c, n.i), mL(n, n.e, n.f, Lg, !0, n.c, n.i), mL(n, n.e, n.f, Lg, !1, n.c, n.i), bye(n, n.c, n.e, n.f, n.i), i = new Ii(n.i, 0); i.b < i.d.gc(); )
+ for (e = (ne(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 128)), r = new Ii(n.i, i.b); r.b < r.d.gc(); )
+ t = (ne(r.b < r.d.gc()), u(r.d.Xb(r.c = r.b++), 128)), Uje(e, t);
+ bTe(n.i, u(k(n.d, (G(), vp)), 230)), PEe(n.i);
+ }
+ function nL(n, e) {
+ var t, i;
+ if (e != null) {
+ if (i = Jd(n), i)
+ if (i.i & 1) {
+ if (i == _u)
+ return G0(e);
+ if (i == be)
+ return I(e, 19);
+ if (i == bw)
+ return I(e, 155);
+ if (i == mu)
+ return I(e, 217);
+ if (i == xs)
+ return I(e, 172);
+ if (i == Ci)
+ return z0(e);
+ if (i == Wg)
+ return I(e, 184);
+ if (i == Jl)
+ return I(e, 162);
+ } else
+ return $j(), t = u(te(eI, i), 55), !t || t.wj(e);
+ else if (I(e, 56))
+ return n.uk(u(e, 56));
+ }
+ return !1;
+ }
+ function vZ() {
+ vZ = N;
+ var n, e, t, i, r, c, o, f, h;
+ for (Tf = F(mu, wg, 25, 255, 15, 1), R1 = F(xs, Bf, 25, 64, 15, 1), e = 0; e < 255; e++)
+ Tf[e] = -1;
+ for (t = 90; t >= 65; t--)
+ Tf[t] = t - 65 << 24 >> 24;
+ for (i = 122; i >= 97; i--)
+ Tf[i] = i - 97 + 26 << 24 >> 24;
+ for (r = 57; r >= 48; r--)
+ Tf[r] = r - 48 + 52 << 24 >> 24;
+ for (Tf[43] = 62, Tf[47] = 63, c = 0; c <= 25; c++)
+ R1[c] = 65 + c & Wt;
+ for (o = 26, h = 0; o <= 51; ++o, h++)
+ R1[o] = 97 + h & Wt;
+ for (n = 52, f = 0; n <= 61; ++n, f++)
+ R1[n] = 48 + f & Wt;
+ R1[62] = 43, R1[63] = 47;
+ }
+ function dye(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p;
+ if (n.dc())
+ return new Li();
+ for (l = 0, d = 0, r = n.Kc(); r.Ob(); )
+ i = u(r.Pb(), 37), c = i.f, l = j.Math.max(l, c.a), d += c.a * c.b;
+ for (l = j.Math.max(l, j.Math.sqrt(d) * K(Y(k(u(n.Kc().Pb(), 37), (nn(), zS))))), g = 0, p = 0, h = 0, t = e, f = n.Kc(); f.Ob(); )
+ o = u(f.Pb(), 37), a = o.f, g + a.a > l && (g = 0, p += h + e, h = 0), M6(o, g, p), t = j.Math.max(t, g + a.a), h = j.Math.max(h, a.b), g += a.a + e;
+ return new fn(t + e, p + h + e);
+ }
+ function bye(n, e, t, i, r) {
+ var c, o, f, h, l, a, d;
+ for (o = new E(e); o.a < o.c.c.length; ) {
+ if (c = u(y(o), 17), h = c.c, t.a._b(h))
+ l = (Od(), Bl);
+ else if (i.a._b(h))
+ l = (Od(), Lg);
+ else
+ throw T(new Hn("Source port must be in one of the port sets."));
+ if (a = c.d, t.a._b(a))
+ d = (Od(), Bl);
+ else if (i.a._b(a))
+ d = (Od(), Lg);
+ else
+ throw T(new Hn("Target port must be in one of the port sets."));
+ f = new nLn(c, l, d), it(n.b, c, f), r.c[r.c.length] = f;
+ }
+ }
+ function mZ(n, e) {
+ var t, i, r, c, o, f, h;
+ if (!nf(n))
+ throw T(new $r(oqn));
+ if (i = nf(n), c = i.g, r = i.f, c <= 0 && r <= 0)
+ return J(), Xr;
+ switch (f = n.i, h = n.j, e.g) {
+ case 2:
+ case 1:
+ if (f < 0)
+ return J(), Gn;
+ if (f + n.g > c)
+ return J(), Vn;
+ break;
+ case 4:
+ case 3:
+ if (h < 0)
+ return J(), Kn;
+ if (h + n.f > r)
+ return J(), ae;
+ }
+ return o = (f + n.g / 2) / c, t = (h + n.f / 2) / r, o + t <= 1 && o - t <= 0 ? (J(), Gn) : o + t >= 1 && o - t >= 0 ? (J(), Vn) : t < 0.5 ? (J(), Kn) : (J(), ae);
+ }
+ function wye(n, e, t, i, r) {
+ var c, o;
+ if (c = Hi(ui(e[0], fr), ui(i[0], fr)), n[0] = ge(c), c = rl(c, 32), t >= r) {
+ for (o = 1; o < r; o++)
+ c = Hi(c, Hi(ui(e[o], fr), ui(i[o], fr))), n[o] = ge(c), c = rl(c, 32);
+ for (; o < t; o++)
+ c = Hi(c, ui(e[o], fr)), n[o] = ge(c), c = rl(c, 32);
+ } else {
+ for (o = 1; o < t; o++)
+ c = Hi(c, Hi(ui(e[o], fr), ui(i[o], fr))), n[o] = ge(c), c = rl(c, 32);
+ for (; o < r; o++)
+ c = Hi(c, ui(i[o], fr)), n[o] = ge(c), c = rl(c, 32);
+ }
+ hc(c, 0) != 0 && (n[o] = ge(c));
+ }
+ function Ab(n) {
+ Je();
+ var e, t, i, r, c, o;
+ if (n.e != 4 && n.e != 5)
+ throw T(new Hn("Token#complementRanges(): must be RANGE: " + n.e));
+ for (c = n, Jw(c), D6(c), i = c.b.length + 2, c.b[0] == 0 && (i -= 2), t = c.b[c.b.length - 1], t == H4 && (i -= 2), r = new ns(4), r.b = F(be, Le, 25, i, 15, 1), o = 0, c.b[0] > 0 && (r.b[o++] = 0, r.b[o++] = c.b[0] - 1), e = 1; e < c.b.length - 2; e += 2)
+ r.b[o++] = c.b[e] + 1, r.b[o++] = c.b[e + 1] - 1;
+ return t != H4 && (r.b[o++] = t + 1, r.b[o] = H4), r.a = !0, r;
+ }
+ function eL(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ if (i = t.gc(), i == 0)
+ return !1;
+ if (n.ej())
+ if (l = n.fj(), mx(n, e, t), o = i == 1 ? n.Zi(3, null, t.Kc().Pb(), e, l) : n.Zi(5, null, t, e, l), n.bj()) {
+ for (f = i < 100 ? null : new V1(i), c = e + i, r = e; r < c; ++r)
+ a = n.g[r], f = n.cj(a, f), f = n.jj(a, f);
+ f ? (f.Ei(o), f.Fi()) : n.$i(o);
+ } else
+ n.$i(o);
+ else if (mx(n, e, t), n.bj()) {
+ for (f = i < 100 ? null : new V1(i), c = e + i, r = e; r < c; ++r)
+ h = n.g[r], f = n.cj(h, f);
+ f && f.Fi();
+ }
+ return !0;
+ }
+ function kZ(n, e, t, i) {
+ var r, c, o, f, h;
+ for (o = new E(n.k); o.a < o.c.c.length; )
+ r = u(y(o), 129), (!i || r.c == (No(), Nl)) && (h = r.b, h.g < 0 && r.d > 0 && (II(h, h.d - r.d), r.c == (No(), Nl) && lte(h, h.a - r.d), h.d <= 0 && h.i > 0 && Ht(e, h, e.c.b, e.c)));
+ for (c = new E(n.f); c.a < c.c.c.length; )
+ r = u(y(c), 129), (!i || r.c == (No(), Nl)) && (f = r.a, f.g < 0 && r.d > 0 && (ej(f, f.i - r.d), r.c == (No(), Nl) && ate(f, f.b - r.d), f.i <= 0 && f.d > 0 && Ht(t, f, t.c.b, t.c)));
+ }
+ function gye(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ for (le(t, "Processor compute fanout", 1), Eu(n.b), Eu(n.a), f = null, c = _e(e.b, 0); !f && c.b != c.d.c; )
+ l = u(Re(c), 86), on(sn(k(l, (uc(), rw)))) && (f = l);
+ for (h = new Ct(), Ht(h, f, h.c.b, h.c), m_n(n, h), a = _e(e.b, 0); a.b != a.d.c; )
+ l = u(Re(a), 86), o = Te(k(l, (uc(), Um))), r = mc(n.b, o) != null ? u(mc(n.b, o), 19).a : 0, H(l, vP, Q(r)), i = 1 + (mc(n.a, o) != null ? u(mc(n.a, o), 19).a : 0), H(l, JJn, Q(i));
+ ce(t);
+ }
+ function pye(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v;
+ for (g = nve(n, t), h = 0; h < e; h++) {
+ for (V0(r, t), p = new X(), v = (ne(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 407)), a = g + h; a < n.b; a++)
+ f = v, v = (ne(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 407)), W(p, new NNn(f, v, t));
+ for (d = g + h; d < n.b; d++)
+ ne(i.b > 0), i.a.Xb(i.c = --i.b), d > g + h && Uu(i);
+ for (o = new E(p); o.a < o.c.c.length; )
+ c = u(y(o), 407), V0(i, c);
+ if (h < e - 1)
+ for (l = g + h; l < n.b; l++)
+ ne(i.b > 0), i.a.Xb(i.c = --i.b);
+ }
+ }
+ function vye() {
+ Je();
+ var n, e, t, i, r, c;
+ if (EH)
+ return EH;
+ for (n = new ns(4), Sb(n, jl(eR, !0)), F6(n, jl("M", !0)), F6(n, jl("C", !0)), c = new ns(4), i = 0; i < 11; i++)
+ jc(c, i, i);
+ return e = new ns(4), Sb(e, jl("M", !0)), jc(e, 4448, 4607), jc(e, 65438, 65439), r = new v5(2), Da(r, n), Da(r, k9), t = new v5(2), t.$l(LE(c, jl("L", !0))), t.$l(e), t = new rb(3, t), t = new PW(r, t), EH = t, EH;
+ }
+ function mye(n) {
+ var e, t;
+ if (e = Te(hn(n, (Xe(), Zm))), !COn(e, n) && !ga(n, kv) && ((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a).i != 0 || on(sn(hn(n, vy)))))
+ if (e == null || kb(e).length == 0) {
+ if (!COn(Jn, n))
+ throw t = De(De(new Ju("Unable to load default layout algorithm "), Jn), " for unconfigured node "), CM(n, t), T(new pw(t.a));
+ } else
+ throw t = De(De(new Ju("Layout algorithm '"), e), "' not found for "), CM(n, t), T(new pw(t.a));
+ }
+ function tL(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p;
+ if (t = n.i, e = n.n, n.b == 0)
+ for (p = t.c + e.b, g = t.b - e.b - e.c, o = n.a, h = 0, a = o.length; h < a; ++h)
+ r = o[h], BE(r, p, g);
+ else
+ i = uFn(n, !1), BE(n.a[0], t.c + e.b, i[0]), BE(n.a[2], t.c + t.b - e.c - i[2], i[2]), d = t.b - e.b - e.c, i[0] > 0 && (d -= i[0] + n.c, i[0] += n.c), i[2] > 0 && (d -= i[2] + n.c), i[1] = j.Math.max(i[1], d), BE(n.a[1], t.c + e.b + i[0] - (i[1] - d) / 2, i[1]);
+ for (c = n.a, f = 0, l = c.length; f < l; ++f)
+ r = c[f], I(r, 326) && u(r, 326).Te();
+ }
+ function kye(n) {
+ var e, t, i, r, c, o, f, h, l, a, d;
+ for (d = new Zwn(), d.d = 0, o = new E(n.b); o.a < o.c.c.length; )
+ c = u(y(o), 29), d.d += c.a.c.length;
+ for (i = 0, r = 0, d.a = F(be, Le, 25, n.b.c.length, 15, 1), l = 0, a = 0, d.e = F(be, Le, 25, d.d, 15, 1), t = new E(n.b); t.a < t.c.c.length; )
+ for (e = u(y(t), 29), e.p = i++, d.a[e.p] = r++, a = 0, h = new E(e.a); h.a < h.c.c.length; )
+ f = u(y(h), 10), f.p = l++, d.e[f.p] = a++;
+ return d.c = new I6n(d), d.b = nh(d.d), Jke(d, n), d.f = nh(d.d), Yke(d, n), d;
+ }
+ function fRn(n, e) {
+ var t, i, r, c;
+ for (c = u(un(n.n, n.n.c.length - 1), 211).d, n.p = j.Math.min(n.p, e.g), n.r = j.Math.max(n.r, c), n.g = j.Math.max(n.g, e.g + (n.b.c.length == 1 ? 0 : n.i)), n.o = j.Math.min(n.o, e.f), n.e += e.f + (n.b.c.length == 1 ? 0 : n.i), n.f = j.Math.max(n.f, e.f), r = n.n.c.length > 0 ? (n.n.c.length - 1) * n.i : 0, i = new E(n.n); i.a < i.c.c.length; )
+ t = u(y(i), 211), r += t.a;
+ n.d = r, n.a = n.e / n.b.c.length - n.i * ((n.b.c.length - 1) / n.b.c.length), sJ(n.j);
+ }
+ function hRn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ if (a = sn(k(e, (Go(), iWn))), a == null || (_n(a), a)) {
+ for (d = F(_u, wh, 25, e.e.c.length, 16, 1), o = ame(e), r = new Ct(), l = new E(e.e); l.a < l.c.c.length; )
+ f = u(y(l), 144), t = NY(n, f, null, null, d, o), t && (Pr(t, e), Ht(r, t, r.c.b, r.c));
+ if (r.b > 1)
+ for (i = _e(r, 0); i.b != i.d.c; )
+ for (t = u(Re(i), 231), c = 0, h = new E(t.e); h.a < h.c.c.length; )
+ f = u(y(h), 144), f.b = c++;
+ return r;
+ }
+ return cf(A(M(JTe, 1), ynn, 231, 0, [e]));
+ }
+ function Lf(n) {
+ var e, t, i, r, c, o, f;
+ if (!n.g) {
+ if (f = new EI(), e = b9, o = e.a.zc(n, e), o == null) {
+ for (i = new ie(Ar(n)); i.e != i.i.gc(); )
+ t = u(oe(i), 26), $t(f, Lf(t));
+ e.a.Bc(n) != null, e.a.gc() == 0;
+ }
+ for (r = f.i, c = (!n.s && (n.s = new V(uu, n, 21, 17)), new ie(n.s)); c.e != c.i.gc(); ++r)
+ kte(u(oe(c), 449), r);
+ $t(f, (!n.s && (n.s = new V(uu, n, 21, 17)), n.s)), ab(f), n.g = new ZOn(n, f), n.i = u(f.g, 247), n.i == null && (n.i = gH), n.p = null, Iu(n).b &= -5;
+ }
+ return n.g;
+ }
+ function iL(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v;
+ if (i = n.i, t = n.n, n.b == 0)
+ e = cFn(n, !1), RE(n.a[0], i.d + t.d, e[0]), RE(n.a[2], i.d + i.a - t.a - e[2], e[2]), g = i.a - t.d - t.a, d = g, e[0] > 0 && (e[0] += n.c, d -= e[0]), e[2] > 0 && (d -= e[2] + n.c), e[1] = j.Math.max(e[1], d), RE(n.a[1], i.d + t.d + e[0] - (e[1] - d) / 2, e[1]);
+ else
+ for (v = i.d + t.d, p = i.a - t.d - t.a, o = n.a, h = 0, a = o.length; h < a; ++h)
+ r = o[h], RE(r, v, p);
+ for (c = n.a, f = 0, l = c.length; f < l; ++f)
+ r = c[f], I(r, 326) && u(r, 326).Ue();
+ }
+ function yye(n) {
+ var e, t, i, r, c, o, f, h, l, a;
+ for (a = F(be, Le, 25, n.b.c.length + 1, 15, 1), l = new hi(), i = 0, c = new E(n.b); c.a < c.c.c.length; ) {
+ for (r = u(y(c), 29), a[i++] = l.a.gc(), h = new E(r.a); h.a < h.c.c.length; )
+ for (o = u(y(h), 10), t = new re(ue(ei(o).a.Kc(), new Mn())); Se(t); )
+ e = u(ve(t), 17), l.a.zc(e, l);
+ for (f = new E(r.a); f.a < f.c.c.length; )
+ for (o = u(y(f), 10), t = new re(ue(Lr(o).a.Kc(), new Mn())); Se(t); )
+ e = u(ve(t), 17), l.a.Bc(e) != null;
+ }
+ return a;
+ }
+ function vM(n, e, t, i) {
+ var r, c, o, f, h;
+ if (h = _c(n.e.Tg(), e), r = u(n.g, 119), er(), u(e, 66).Oj()) {
+ for (o = 0; o < n.i; ++o)
+ if (c = r[o], h.rl(c.ak()) && tt(c, t))
+ return !0;
+ } else if (t != null) {
+ for (f = 0; f < n.i; ++f)
+ if (c = r[f], h.rl(c.ak()) && tt(t, c.dd()))
+ return !0;
+ if (i) {
+ for (o = 0; o < n.i; ++o)
+ if (c = r[o], h.rl(c.ak()) && B(t) === B(YO(n, u(c.dd(), 56))))
+ return !0;
+ }
+ } else
+ for (o = 0; o < n.i; ++o)
+ if (c = r[o], h.rl(c.ak()) && c.dd() == null)
+ return !1;
+ return !1;
+ }
+ function lRn(n, e, t, i) {
+ var r, c, o, f, h, l;
+ if (l = _c(n.e.Tg(), e), o = u(n.g, 119), Gh(n.e, e)) {
+ if (e.hi() && (c = v4(n, e, i, I(e, 99) && (u(e, 18).Bb & Ji) != 0), c >= 0 && c != t))
+ throw T(new Hn(yk));
+ for (r = 0, h = 0; h < n.i; ++h)
+ if (f = o[h], l.rl(f.ak())) {
+ if (r == t)
+ return u(Gw(n, h, (er(), u(e, 66).Oj() ? u(i, 72) : uh(e, i))), 72);
+ ++r;
+ }
+ throw T(new mr(rm + t + _a + r));
+ } else {
+ for (h = 0; h < n.i; ++h)
+ if (f = o[h], l.rl(f.ak()))
+ return er(), u(e, 66).Oj() ? f : f.dd();
+ return null;
+ }
+ }
+ function aRn(n, e, t, i) {
+ var r, c, o, f;
+ for (f = t, o = new E(e.a); o.a < o.c.c.length; ) {
+ if (c = u(y(o), 221), r = u(c.b, 65), Ud(n.b.c, r.b.c + r.b.b) <= 0 && Ud(r.b.c, n.b.c + n.b.b) <= 0 && Ud(n.b.d, r.b.d + r.b.a) <= 0 && Ud(r.b.d, n.b.d + n.b.a) <= 0) {
+ if (Ud(r.b.c, n.b.c + n.b.b) == 0 && i.a < 0 || Ud(r.b.c + r.b.b, n.b.c) == 0 && i.a > 0 || Ud(r.b.d, n.b.d + n.b.a) == 0 && i.b < 0 || Ud(r.b.d + r.b.a, n.b.d) == 0 && i.b > 0) {
+ f = 0;
+ break;
+ }
+ } else
+ f = j.Math.min(f, aLn(n, r, i));
+ f = j.Math.min(f, aRn(n, c, f, i));
+ }
+ return f;
+ }
+ function z7(n, e) {
+ var t, i, r, c, o, f, h;
+ if (n.b < 2)
+ throw T(new Hn("The vector chain must contain at least a source and a target point."));
+ for (r = (ne(n.b != 0), u(n.a.a.c, 8)), uE(e, r.a, r.b), h = new b2((!e.a && (e.a = new Yt(to, e, 5)), e.a)), o = _e(n, 1); o.a < n.b - 1; )
+ f = u(Re(o), 8), h.e != h.i.gc() ? t = u(oe(h), 469) : (t = (dd(), i = new Xy(), i), d$n(h, t)), mz(t, f.a, f.b);
+ for (; h.e != h.i.gc(); )
+ oe(h), p6(h);
+ c = (ne(n.b != 0), u(n.c.b.c, 8)), cE(e, c.a, c.b);
+ }
+ function dRn(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (t = 0, r = new E((Ln(0, n.c.length), u(n.c[0], 101)).g.b.j); r.a < r.c.c.length; )
+ i = u(y(r), 11), i.p = t++;
+ for (e == (J(), Kn) ? wi(n, new Zbn()) : wi(n, new nwn()), f = 0, a = n.c.length - 1; f < a; )
+ o = (Ln(f, n.c.length), u(n.c[f], 101)), l = (Ln(a, n.c.length), u(n.c[a], 101)), c = e == Kn ? o.c : o.a, h = e == Kn ? l.a : l.c, o1(o, e, (ff(), nv), c), o1(l, e, Z4, h), ++f, --a;
+ f == a && o1((Ln(f, n.c.length), u(n.c[f], 101)), e, (ff(), lp), null);
+ }
+ function jye(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ return d = n.a.i + n.a.g / 2, g = n.a.i + n.a.g / 2, v = e.i + e.g / 2, C = e.j + e.f / 2, f = new fn(v, C), l = u(hn(e, (Xe(), Mp)), 8), l.a = l.a + d, l.b = l.b + g, c = (f.b - l.b) / (f.a - l.a), i = f.b - c * f.a, m = t.i + t.g / 2, S = t.j + t.f / 2, h = new fn(m, S), a = u(hn(t, Mp), 8), a.a = a.a + d, a.b = a.b + g, o = (h.b - a.b) / (h.a - a.a), r = h.b - o * h.a, p = (i - r) / (o - c), l.a < p && f.a < p || p < l.a && p < f.a ? !1 : !(a.a < p && h.a < p || p < a.a && p < h.a);
+ }
+ function Eye(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p;
+ if (g = u(te(n.c, e), 183), !g)
+ throw T(new Af("Edge did not exist in input."));
+ return l = t4(g), c = N9((!e.a && (e.a = new V(Tt, e, 6, 6)), e.a)), f = !c, f && (p = new ea(), t = new mEn(n, l, p), Sre((!e.a && (e.a = new V(Tt, e, 6, 6)), e.a), t), Ro(g, $tn, p)), r = ga(e, (Xe(), Rg)), r && (a = u(hn(e, Rg), 74), o = !a || rTn(a), h = !o, h && (d = new ea(), i = new amn(d), $i(a, i), Ro(g, "junctionPoints", d))), h3(g, "container", S8(e).k), null;
+ }
+ function yZ(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ this.a = n, this.b = e, this.c = t, this.e = cf(A(M(XTe, 1), rn, 168, 0, [new f2(n, e), new f2(e, t), new f2(t, n)])), this.f = cf(A(M(di, 1), q, 8, 0, [n, e, t])), this.d = (i = ji(Qr(this.b), this.a), r = ji(Qr(this.c), this.a), c = ji(Qr(this.c), this.b), o = i.a * (this.a.a + this.b.a) + i.b * (this.a.b + this.b.b), f = r.a * (this.a.a + this.c.a) + r.b * (this.a.b + this.c.b), h = 2 * (i.a * c.b - i.b * c.a), l = (r.b * o - i.b * f) / h, a = (i.a * f - r.a * o) / h, new fn(l, a));
+ }
+ function bRn(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v;
+ if (g = new nb(n.p), Ro(e, We, g), t && !(n.f ? C8(n.f) : null).a.dc())
+ for (a = new ea(), Ro(e, "logs", a), f = 0, v = new _p((n.f ? C8(n.f) : null).b.Kc()); v.b.Ob(); )
+ p = Te(v.b.Pb()), d = new nb(p), sb(a, f), g$(a, f, d), ++f;
+ if (i && (l = new nj(n.q), Ro(e, "executionTime", l)), !C8(n.a).a.dc())
+ for (o = new ea(), Ro(e, FB, o), f = 0, c = new _p(C8(n.a).b.Kc()); c.b.Ob(); )
+ r = u(c.b.Pb(), 1949), h = new r2(), sb(o, f), g$(o, f, h), bRn(r, h, t, i), ++f;
+ }
+ function t0(n, e) {
+ var t, i, r, c, o, f;
+ for (c = n.c, o = n.d, Ki(n, null), Ti(n, null), e && on(sn(k(o, (G(), T_)))) ? Ki(n, bZ(o.i, (ur(), Lc), (J(), Vn))) : Ki(n, o), e && on(sn(k(c, (G(), A_)))) ? Ti(n, bZ(c.i, (ur(), Au), (J(), Gn))) : Ti(n, c), i = new E(n.b); i.a < i.c.c.length; )
+ t = u(y(i), 70), r = u(k(t, (nn(), Jf)), 272), r == (sf(), jv) ? H(t, Jf, uw) : r == uw && H(t, Jf, jv);
+ f = on(sn(k(n, (G(), mf)))), H(n, mf, (qn(), !f)), n.a = o7(n.a);
+ }
+ function Cye(n, e, t) {
+ var i, r, c, o, f, h;
+ for (i = 0, c = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); c.e != c.i.gc(); )
+ r = u(oe(c), 33), o = "", (!r.n && (r.n = new V(Rr, r, 1, 7)), r.n).i == 0 || (o = u(D((!r.n && (r.n = new V(Rr, r, 1, 7)), r.n), 0), 137).a), f = new QCn(o), Pr(f, r), H(f, (al(), hp), r), f.b = i++, f.d.a = r.i + r.g / 2, f.d.b = r.j + r.f / 2, f.e.a = j.Math.max(r.g, 1), f.e.b = j.Math.max(r.f, 1), W(e.e, f), Rc(t.f, r, f), h = u(hn(r, (Go(), Drn)), 98), h == (Ai(), Hl) && (h = jf);
+ }
+ function Tye(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ t = yd(new ca(), n.f), l = n.i[e.c.i.p], p = n.i[e.d.i.p], h = e.c, g = e.d, f = h.a.b, d = g.a.b, l.b || (f += h.n.b), p.b || (d += g.n.b), a = zt(j.Math.max(0, f - d)), o = zt(j.Math.max(0, d - f)), v = (m = j.Math.max(1, u(k(e, (nn(), yp)), 19).a), C = pX(e.c.i.k, e.d.i.k), m * C), r = jo(lo(ho(fo(ao(new Ls(), v), o), t), u(te(n.k, e.c), 121))), c = jo(lo(ho(fo(ao(new Ls(), v), a), t), u(te(n.k, e.d), 121))), i = new Y7n(r, c), n.c[e.p] = i;
+ }
+ function Mye(n, e, t, i) {
+ var r, c, o, f, h, l;
+ for (o = new KRn(n, e, t), h = new Ii(i, 0), r = !1; h.b < h.d.gc(); )
+ f = (ne(h.b < h.d.gc()), u(h.d.Xb(h.c = h.b++), 233)), f == e || f == t ? Uu(h) : !r && K(Zo(f.g, f.d[0]).a) > K(Zo(o.g, o.d[0]).a) ? (ne(h.b > 0), h.a.Xb(h.c = --h.b), V0(h, o), r = !0) : f.e && f.e.gc() > 0 && (c = (!f.e && (f.e = new X()), f.e).Mc(e), l = (!f.e && (f.e = new X()), f.e).Mc(t), (c || l) && ((!f.e && (f.e = new X()), f.e).Fc(o), ++o.c));
+ r || (i.c[i.c.length] = o);
+ }
+ function wRn(n) {
+ var e, t, i;
+ if (Cw(u(k(n, (nn(), Nt)), 98)))
+ for (t = new E(n.j); t.a < t.c.c.length; )
+ e = u(y(t), 11), e.j == (J(), Xr) && (i = u(k(e, (G(), Mu)), 10), i ? si(e, u(k(i, ec), 61)) : e.e.c.length - e.g.c.length < 0 ? si(e, Vn) : si(e, Gn));
+ else {
+ for (t = new E(n.j); t.a < t.c.c.length; )
+ e = u(y(t), 11), i = u(k(e, (G(), Mu)), 10), i ? si(e, u(k(i, ec), 61)) : e.e.c.length - e.g.c.length < 0 ? si(e, (J(), Vn)) : si(e, (J(), Gn));
+ H(n, Nt, (Ai(), Cv));
+ }
+ }
+ function U7(n) {
+ var e, t, i;
+ switch (n) {
+ case 91:
+ case 93:
+ case 45:
+ case 94:
+ case 44:
+ case 92:
+ i = "\\" + String.fromCharCode(n & Wt);
+ break;
+ case 12:
+ i = "\\f";
+ break;
+ case 10:
+ i = "\\n";
+ break;
+ case 13:
+ i = "\\r";
+ break;
+ case 9:
+ i = "\\t";
+ break;
+ case 27:
+ i = "\\e";
+ break;
+ default:
+ n < 32 ? (t = (e = n >>> 0, "0" + e.toString(16)), i = "\\x" + Yu(t, t.length - 2, t.length)) : n >= Ji ? (t = (e = n >>> 0, "0" + e.toString(16)), i = "\\v" + Yu(t, t.length - 6, t.length)) : i = "" + String.fromCharCode(n & Wt);
+ }
+ return i;
+ }
+ function rL(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ if (o = n.e, h = e.e, h == 0)
+ return n;
+ if (o == 0)
+ return e.e == 0 ? e : new Pw(-e.e, e.d, e.a);
+ if (c = n.d, f = e.d, c + f == 2)
+ return t = ui(n.a[0], fr), i = ui(e.a[0], fr), o < 0 && (t = S3(t)), h < 0 && (i = S3(i)), m7(pl(t, i));
+ if (r = c != f ? c > f ? 1 : -1 : YV(n.a, e.a, c), r == -1)
+ d = -h, a = o == h ? M$(e.a, f, n.a, c) : S$(e.a, f, n.a, c);
+ else if (d = o, o == h) {
+ if (r == 0)
+ return yl(), U4;
+ a = M$(n.a, c, e.a, f);
+ } else
+ a = S$(n.a, c, e.a, f);
+ return l = new Pw(d, a.length, a), K5(l), l;
+ }
+ function jZ(n) {
+ var e, t, i, r, c, o;
+ for (this.e = new X(), this.a = new X(), t = n.b - 1; t < 3; t++)
+ u3(n, 0, u(qo(n, 0), 8));
+ if (n.b < 4)
+ throw T(new Hn("At (least dimension + 1) control points are necessary!"));
+ for (this.b = 3, this.d = !0, this.c = !1, l9e(this, n.b + this.b - 1), o = new X(), c = new E(this.e), e = 0; e < this.b - 1; e++)
+ W(o, Y(y(c)));
+ for (r = _e(n, 0); r.b != r.d.c; )
+ i = u(Re(r), 8), W(o, Y(y(c))), W(this.a, new tMn(i, o)), Ln(0, o.c.length), o.c.splice(0, 1);
+ }
+ function gRn(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (c = new E(n.b); c.a < c.c.c.length; )
+ for (r = u(y(c), 29), f = new E(r.a); f.a < f.c.c.length; )
+ for (o = u(y(f), 10), o.k == (Qn(), Qu) && (h = (l = u(ve(new re(ue(Lr(o).a.Kc(), new Mn()))), 17), a = u(ve(new re(ue(ei(o).a.Kc(), new Mn()))), 17), !on(sn(k(l, (G(), mf)))) || !on(sn(k(a, mf))) ? e : zOn(e)), W2(o, h)), i = new re(ue(ei(o).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), h = on(sn(k(t, (G(), mf)))) ? zOn(e) : e, BOn(t, h);
+ }
+ function Aye(n, e, t, i, r) {
+ var c, o, f;
+ if (t.f >= e.o && t.f <= e.f || e.a * 0.5 <= t.f && e.a * 1.5 >= t.f) {
+ if (o = u(un(e.n, e.n.c.length - 1), 211), o.e + o.d + t.g + r <= i && (c = u(un(e.n, e.n.c.length - 1), 211), c.f - n.f + t.f <= n.b || n.a.c.length == 1))
+ return yQ(e, t), !0;
+ if (e.s + t.g <= i && (e.t + e.d + t.f + r <= n.b || n.a.c.length == 1))
+ return W(e.b, t), f = u(un(e.n, e.n.c.length - 1), 211), W(e.n, new lC(e.s, f.f + f.a + e.i, e.i)), iJ(u(un(e.n, e.n.c.length - 1), 211), t), fRn(e, t), !0;
+ }
+ return !1;
+ }
+ function pRn(n, e, t) {
+ var i, r, c, o;
+ return n.ej() ? (r = null, c = n.fj(), i = n.Zi(1, o = B$(n, e, t), t, e, c), n.bj() && !(n.ni() && o != null ? tt(o, t) : B(o) === B(t)) ? (o != null && (r = n.dj(o, r)), r = n.cj(t, r), n.ij() && (r = n.lj(o, t, r)), r ? (r.Ei(i), r.Fi()) : n.$i(i)) : (n.ij() && (r = n.lj(o, t, r)), r ? (r.Ei(i), r.Fi()) : n.$i(i)), o) : (o = B$(n, e, t), n.bj() && !(n.ni() && o != null ? tt(o, t) : B(o) === B(t)) && (r = null, o != null && (r = n.dj(o, null)), r = n.cj(t, r), r && r.Fi()), o);
+ }
+ function S6(n, e) {
+ var t, i, r, c, o, f, h, l;
+ e %= 24, n.q.getHours() != e && (i = new j.Date(n.q.getTime()), i.setDate(i.getDate() + 1), f = n.q.getTimezoneOffset() - i.getTimezoneOffset(), f > 0 && (h = f / 60 | 0, l = f % 60, r = n.q.getDate(), t = n.q.getHours(), t + h >= 24 && ++r, c = new j.Date(n.q.getFullYear(), n.q.getMonth(), r, e + h, n.q.getMinutes() + l, n.q.getSeconds(), n.q.getMilliseconds()), n.q.setTime(c.getTime()))), o = n.q.getTime(), n.q.setTime(o + 36e5), n.q.getHours() != e && n.q.setTime(o);
+ }
+ function Sye(n, e) {
+ var t, i, r, c, o;
+ if (le(e, "Path-Like Graph Wrapping", 1), n.b.c.length == 0) {
+ ce(e);
+ return;
+ }
+ if (r = new PY(n), o = (r.i == null && (r.i = jV(r, new HH())), K(r.i) * r.f), t = o / (r.i == null && (r.i = jV(r, new HH())), K(r.i)), r.b > t) {
+ ce(e);
+ return;
+ }
+ switch (u(k(n, (nn(), W_)), 337).g) {
+ case 2:
+ c = new GH();
+ break;
+ case 0:
+ c = new KH();
+ break;
+ default:
+ c = new zH();
+ }
+ if (i = c.Vf(n, r), !c.Wf())
+ switch (u(k(n, cP), 338).g) {
+ case 2:
+ i = dLn(r, i);
+ break;
+ case 1:
+ i = axn(r, i);
+ }
+ Tje(n, r, i), ce(e);
+ }
+ function Pye(n, e) {
+ var t, i, r, c;
+ if (dle(n.d, n.e), n.c.a.$b(), K(Y(k(e.j, (nn(), XS)))) != 0 || K(Y(k(e.j, XS))) != 0)
+ for (t = O4, B(k(e.j, xl)) !== B((Bh(), Ll)) && H(e.j, (G(), m0), (qn(), !0)), c = u(k(e.j, xm), 19).a, r = 0; r < c && (i = fye(n, e), !(i < t && (t = i, iOn(n), t == 0))); r++)
+ ;
+ else
+ for (t = nt, B(k(e.j, xl)) !== B((Bh(), Ll)) && H(e.j, (G(), m0), (qn(), !0)), c = u(k(e.j, xm), 19).a, r = 0; r < c && (i = iRn(n, e), !(i < t && (t = i, iOn(n), t == 0))); r++)
+ ;
+ }
+ function Iye(n, e) {
+ var t, i, r, c, o, f, h, l;
+ for (o = new X(), f = 0, t = 0, h = 0; f < e.c.length - 1 && t < n.gc(); ) {
+ for (i = u(n.Xb(t), 19).a + h; (Ln(f + 1, e.c.length), u(e.c[f + 1], 19)).a < i; )
+ ++f;
+ for (l = 0, c = i - (Ln(f, e.c.length), u(e.c[f], 19)).a, r = (Ln(f + 1, e.c.length), u(e.c[f + 1], 19)).a - i, c > r && ++l, W(o, (Ln(f + l, e.c.length), u(e.c[f + l], 19))), h += (Ln(f + l, e.c.length), u(e.c[f + l], 19)).a - i, ++t; t < n.gc() && u(n.Xb(t), 19).a + h <= (Ln(f + l, e.c.length), u(e.c[f + l], 19)).a; )
+ ++t;
+ f += 1 + l;
+ }
+ return o;
+ }
+ function cL(n) {
+ var e, t, i, r, c, o, f;
+ if (!n.d) {
+ if (f = new Z2n(), e = b9, c = e.a.zc(n, e), c == null) {
+ for (i = new ie(Ar(n)); i.e != i.i.gc(); )
+ t = u(oe(i), 26), $t(f, cL(t));
+ e.a.Bc(n) != null, e.a.gc() == 0;
+ }
+ for (o = f.i, r = (!n.q && (n.q = new V(ro, n, 11, 10)), new ie(n.q)); r.e != r.i.gc(); ++o)
+ u(oe(r), 399);
+ $t(f, (!n.q && (n.q = new V(ro, n, 11, 10)), n.q)), ab(f), n.d = new Ew((u(D(R((sl(), Nn).o), 9), 18), f.i), f.g), n.e = u(f.g, 673), n.e == null && (n.e = ree), Iu(n).b &= -17;
+ }
+ return n.d;
+ }
+ function v4(n, e, t, i) {
+ var r, c, o, f, h, l;
+ if (l = _c(n.e.Tg(), e), h = 0, r = u(n.g, 119), er(), u(e, 66).Oj()) {
+ for (o = 0; o < n.i; ++o)
+ if (c = r[o], l.rl(c.ak())) {
+ if (tt(c, t))
+ return h;
+ ++h;
+ }
+ } else if (t != null) {
+ for (f = 0; f < n.i; ++f)
+ if (c = r[f], l.rl(c.ak())) {
+ if (tt(t, c.dd()))
+ return h;
+ ++h;
+ }
+ if (i) {
+ for (h = 0, o = 0; o < n.i; ++o)
+ if (c = r[o], l.rl(c.ak())) {
+ if (B(t) === B(YO(n, u(c.dd(), 56))))
+ return h;
+ ++h;
+ }
+ }
+ } else
+ for (o = 0; o < n.i; ++o)
+ if (c = r[o], l.rl(c.ak())) {
+ if (c.dd() == null)
+ return h;
+ ++h;
+ }
+ return -1;
+ }
+ function Oye(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p;
+ for (Pn(), wi(n, new P2n()), o = p8(n), p = new X(), g = new X(), f = null, h = 0; o.b != 0; )
+ c = u(o.b == 0 ? null : (ne(o.b != 0), Cs(o, o.a.a)), 157), !f || au(f) * Gu(f) / 2 < au(c) * Gu(c) ? (f = c, p.c[p.c.length] = c) : (h += au(c) * Gu(c), g.c[g.c.length] = c, g.c.length > 1 && (h > au(f) * Gu(f) / 2 || o.b == 0) && (d = new zC(g), a = au(f) / Gu(f), l = kL(d, e, new i2(), t, i, r, a), st(Lo(d.e), l), f = d, p.c[p.c.length] = d, h = 0, g.c = F(Zn, rn, 1, 0, 5, 1)));
+ return Zt(p, g), p;
+ }
+ function Dye(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m;
+ if (t.mh(e) && (a = (p = e, p ? u(i, 49).xh(p) : null), a))
+ if (m = t.bh(e, n.a), v = e.t, v > 1 || v == -1)
+ if (d = u(m, 69), g = u(a, 69), d.dc())
+ g.$b();
+ else
+ for (o = !!ir(e), c = 0, f = n.a ? d.Kc() : d.Zh(); f.Ob(); )
+ l = u(f.Pb(), 56), r = u(Ld(n, l), 56), r ? (o ? (h = g.Xc(r), h == -1 ? g.Xh(c, r) : c != h && g.ji(c, r)) : g.Xh(c, r), ++c) : n.b && !o && (g.Xh(c, l), ++c);
+ else
+ m == null ? a.Wb(null) : (r = Ld(n, m), r == null ? n.b && !ir(e) && a.Wb(m) : a.Wb(r));
+ }
+ function $ye(n, e) {
+ var t, i, r, c, o, f, h, l;
+ for (t = new Fdn(), r = new re(ue(Lr(e).a.Kc(), new Mn())); Se(r); )
+ if (i = u(ve(r), 17), !Wi(i) && (f = i.c.i, RJ(f, oS))) {
+ if (l = nZ(n, f, oS, sS), l == -1)
+ continue;
+ t.b = j.Math.max(t.b, l), !t.a && (t.a = new X()), W(t.a, f);
+ }
+ for (o = new re(ue(ei(e).a.Kc(), new Mn())); Se(o); )
+ if (c = u(ve(o), 17), !Wi(c) && (h = c.d.i, RJ(h, sS))) {
+ if (l = nZ(n, h, sS, oS), l == -1)
+ continue;
+ t.d = j.Math.max(t.d, l), !t.c && (t.c = new X()), W(t.c, h);
+ }
+ return t;
+ }
+ function vRn(n) {
+ l4();
+ var e, t, i, r;
+ if (e = zt(n), n < wm.length)
+ return wm[e];
+ if (n <= 50)
+ return L7((yl(), pR), e);
+ if (n <= j1)
+ return P2(L7(fp[1], e), e);
+ if (n > 1e6)
+ throw T(new bj("power of ten too big"));
+ if (n <= nt)
+ return P2(L7(fp[1], e), e);
+ for (i = L7(fp[1], nt), r = i, t = nu(n - nt), e = zt(n % nt); hc(t, nt) > 0; )
+ r = Fw(r, i), t = pl(t, nt);
+ for (r = Fw(r, L7(fp[1], e)), r = P2(r, nt), t = nu(n - nt); hc(t, nt) > 0; )
+ r = P2(r, nt), t = pl(t, nt);
+ return r = P2(r, e), r;
+ }
+ function Fye(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (le(e, "Hierarchical port dummy size processing", 1), h = new X(), a = new X(), i = K(Y(k(n, (nn(), Dg)))), t = i * 2, c = new E(n.b); c.a < c.c.c.length; ) {
+ for (r = u(y(c), 29), h.c = F(Zn, rn, 1, 0, 5, 1), a.c = F(Zn, rn, 1, 0, 5, 1), f = new E(r.a); f.a < f.c.c.length; )
+ o = u(y(f), 10), o.k == (Qn(), Vt) && (l = u(k(o, (G(), ec)), 61), l == (J(), Kn) ? h.c[h.c.length] = o : l == ae && (a.c[a.c.length] = o));
+ GLn(h, !0, t), GLn(a, !1, t);
+ }
+ ce(e);
+ }
+ function xye(n, e) {
+ var t, i, r, c, o, f, h;
+ le(e, "Layer constraint postprocessing", 1), h = n.b, h.c.length != 0 && (i = (Ln(0, h.c.length), u(h.c[0], 29)), o = u(un(h, h.c.length - 1), 29), t = new Bs(n), c = new Bs(n), mke(n, i, o, t, c), t.a.c.length == 0 || (ib(0, h.c.length), e5(h.c, 0, t)), c.a.c.length == 0 || (h.c[h.c.length] = c)), ai(n, (G(), C_)) && (r = new Bs(n), f = new Bs(n), m7e(n, r, f), r.a.c.length == 0 || (ib(0, h.c.length), e5(h.c, 0, r)), f.a.c.length == 0 || (h.c[h.c.length] = f)), ce(e);
+ }
+ function mRn(n) {
+ var e, t, i, r, c, o, f, h, l, a;
+ for (h = new E(n.a); h.a < h.c.c.length; )
+ if (f = u(y(h), 10), f.k == (Qn(), Vt) && (r = u(k(f, (G(), ec)), 61), r == (J(), Vn) || r == Gn))
+ for (i = new re(ue(_h(f).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), e = t.a, e.b != 0 && (l = t.c, l.i == f && (c = (ne(e.b != 0), u(e.a.a.c, 8)), c.b = Gr(A(M(di, 1), q, 8, 0, [l.i.n, l.n, l.a])).b), a = t.d, a.i == f && (o = (ne(e.b != 0), u(e.c.b.c, 8)), o.b = Gr(A(M(di, 1), q, 8, 0, [a.i.n, a.n, a.a])).b));
+ }
+ function Lye(n, e) {
+ var t, i, r, c, o, f, h;
+ for (le(e, "Sort By Input Model " + k(n, (nn(), xl)), 1), r = 0, i = new E(n.b); i.a < i.c.c.length; ) {
+ for (t = u(y(i), 29), h = r == 0 ? 0 : r - 1, f = u(un(n.b, h), 29), o = new E(t.a); o.a < o.c.c.length; )
+ c = u(y(o), 10), B(k(c, Nt)) !== B((Ai(), id)) && B(k(c, Nt)) !== B(Sc) && (Pn(), wi(c.j, new NPn(f, xFn(c))), oa(e, "Node " + c + " ports: " + c.j));
+ Pn(), wi(t.a, new uOn(f, u(k(n, xl), 339), u(k(n, Zun), 378))), oa(e, "Layer " + r + ": " + t), ++r;
+ }
+ ce(e);
+ }
+ function Nye(n, e) {
+ var t, i, r, c;
+ if (c = sRn(e), Rt(new $n(null, (!e.c && (e.c = new V(Ru, e, 9, 9)), new xn(e.c, 16))), new a5n(c)), r = u(k(c, (G(), Ac)), 21), BEe(e, r), r.Hc((or(), Ds)))
+ for (i = new ie((!e.c && (e.c = new V(Ru, e, 9, 9)), e.c)); i.e != i.i.gc(); )
+ t = u(oe(i), 118), wCe(n, e, c, t);
+ return u(hn(e, (nn(), Va)), 174).gc() != 0 && ZNn(e, c), on(sn(k(c, Tsn))) && r.Fc(RS), ai(c, Yk) && B9n(new AQ(K(Y(k(c, Yk)))), c), B(hn(e, Qb)) === B((Rh(), F1)) ? STe(n, e, c) : VCe(n, e, c), c;
+ }
+ function P6(n, e, t, i) {
+ var r, c, o;
+ if (this.j = new X(), this.k = new X(), this.b = new X(), this.c = new X(), this.e = new d2(), this.i = new ou(), this.f = new FI(), this.d = new X(), this.g = new X(), W(this.b, n), W(this.b, e), this.e.c = j.Math.min(n.a, e.a), this.e.d = j.Math.min(n.b, e.b), this.e.b = j.Math.abs(n.a - e.a), this.e.a = j.Math.abs(n.b - e.b), r = u(k(i, (nn(), Mr)), 74), r)
+ for (o = _e(r, 0); o.b != o.d.c; )
+ c = u(Re(o), 8), tV(c.a, n.a) && Ke(this.i, c);
+ t && W(this.j, t), W(this.k, i);
+ }
+ function Bye(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ for (a = new GE(new f5n(t)), f = F(_u, wh, 25, n.f.e.c.length, 16, 1), EW(f, f.length), t[e.b] = 0, l = new E(n.f.e); l.a < l.c.c.length; )
+ h = u(y(l), 144), h.b != e.b && (t[h.b] = nt), T3(o4(a, h));
+ for (; a.b.c.length != 0; )
+ for (d = u(K$(a), 144), f[d.b] = !0, c = Zyn(new tO(n.b, d), 0); c.c; )
+ r = u(nX(c), 282), g = d3e(r, d), !f[g.b] && (ai(r, (C7(), uS)) ? o = K(Y(k(r, uS))) : o = n.c, i = t[d.b] + o, i < t[g.b] && (t[g.b] = i, QIn(a, g), T3(o4(a, g))));
+ }
+ function kRn(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ for (r = !0, o = new E(n.b); o.a < o.c.c.length; ) {
+ for (c = u(y(o), 29), l = Qt, a = null, h = new E(c.a); h.a < h.c.c.length; )
+ if (f = u(y(h), 10), d = K(e.p[f.p]) + K(e.d[f.p]) - f.d.d, i = K(e.p[f.p]) + K(e.d[f.p]) + f.o.b + f.d.a, d > l && i > l)
+ a = f, l = K(e.p[f.p]) + K(e.d[f.p]) + f.o.b + f.d.a;
+ else {
+ r = !1, t.n && oa(t, "bk node placement breaks on " + f + " which should have been after " + a);
+ break;
+ }
+ if (!r)
+ break;
+ }
+ return t.n && oa(t, e + " is feasible: " + r), r;
+ }
+ function Rye(n, e, t, i) {
+ var r, c, o, f, h, l, a;
+ for (f = -1, a = new E(n); a.a < a.c.c.length; )
+ l = u(y(a), 112), l.g = f--, r = ge(vC(ZE(gt(new $n(null, new xn(l.f, 16)), new tgn()), new ign())).d), c = ge(vC(ZE(gt(new $n(null, new xn(l.k, 16)), new rgn()), new cgn())).d), o = r, h = c, i || (o = ge(vC(ZE(new $n(null, new xn(l.f, 16)), new ugn())).d), h = ge(vC(ZE(new $n(null, new xn(l.k, 16)), new sgn())).d)), l.d = o, l.a = r, l.i = h, l.b = c, h == 0 ? Ht(t, l, t.c.b, t.c) : o == 0 && Ht(e, l, e.c.b, e.c);
+ }
+ function _ye(n, e, t, i) {
+ var r, c, o, f, h, l, a;
+ if (t.d.i != e.i) {
+ for (r = new Hh(n), ta(r, (Qn(), pi)), H(r, (G(), rt), t), H(r, (nn(), Nt), (Ai(), Sc)), i.c[i.c.length] = r, o = new gc(), Hr(o, r), si(o, (J(), Gn)), f = new gc(), Hr(f, r), si(f, Vn), a = t.d, Ti(t, o), c = new Id(), Pr(c, t), H(c, Mr, null), Ki(c, f), Ti(c, a), l = new Ii(t.b, 0); l.b < l.d.gc(); )
+ h = (ne(l.b < l.d.gc()), u(l.d.Xb(l.c = l.b++), 70)), B(k(h, Jf)) === B((sf(), uw)) && (H(h, wp, t), Uu(l), W(c.b, h));
+ ZLn(r, o, f);
+ }
+ }
+ function Kye(n, e, t, i) {
+ var r, c, o, f, h, l, a;
+ if (t.c.i != e.i)
+ for (r = new Hh(n), ta(r, (Qn(), pi)), H(r, (G(), rt), t), H(r, (nn(), Nt), (Ai(), Sc)), i.c[i.c.length] = r, o = new gc(), Hr(o, r), si(o, (J(), Gn)), f = new gc(), Hr(f, r), si(f, Vn), Ti(t, o), c = new Id(), Pr(c, t), H(c, Mr, null), Ki(c, f), Ti(c, e), ZLn(r, o, f), l = new Ii(t.b, 0); l.b < l.d.gc(); )
+ h = (ne(l.b < l.d.gc()), u(l.d.Xb(l.c = l.b++), 70)), a = u(k(h, Jf), 272), a == (sf(), uw) && (ai(h, wp) || H(h, wp, t), Uu(l), W(c.b, h));
+ }
+ function Hye(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ for (g = new X(), S = jC(i), C = e * n.a, d = 0, v = 0, c = new hi(), o = new hi(), f = new X(), $ = 0, O = 0, p = 0, m = 0, l = 0, a = 0; S.a.gc() != 0; )
+ h = Uge(S, r, o), h && (S.a.Bc(h) != null, f.c[f.c.length] = h, c.a.zc(h, c), v = n.f[h.p], $ += n.e[h.p] - v * n.b, d = n.c[h.p], O += d * n.b, a += v * n.b, m += n.e[h.p]), (!h || S.a.gc() == 0 || $ >= C && n.e[h.p] > v * n.b || O >= t * C) && (g.c[g.c.length] = f, f = new X(), Xi(o, c), c.a.$b(), l -= a, p = j.Math.max(p, l * n.b + m), l += O, $ = O, O = 0, a = 0, m = 0);
+ return new Pi(p, g);
+ }
+ function qye(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p;
+ for (t = (l = new Th(n.c.b).a.vc().Kc(), new N0(l)); t.a.Ob(); )
+ e = (f = u(t.a.Pb(), 42), u(f.dd(), 149)), r = e.a, r == null && (r = ""), i = wue(n.c, r), !i && r.length == 0 && (i = gge(n)), i && !bb(i.c, e, !1) && Ke(i.c, e);
+ for (o = _e(n.a, 0); o.b != o.d.c; )
+ c = u(Re(o), 478), a = j$(n.c, c.a), p = j$(n.c, c.b), a && p && Ke(a.c, new Pi(p, c.c));
+ for (Rs(n.a), g = _e(n.b, 0); g.b != g.d.c; )
+ d = u(Re(g), 478), e = bue(n.c, d.a), h = j$(n.c, d.b), e && h && rre(e, h, d.c);
+ Rs(n.b);
+ }
+ function Gye(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p;
+ c = new M9(n), o = new BFn(), r = ($8(o.g), $8(o.j), Eu(o.b), $8(o.d), $8(o.i), Eu(o.k), Eu(o.c), Eu(o.e), p = yLn(o, c, null), hNn(o, c), p), e && (l = new M9(e), f = nje(l), JJ(r, A(M(xfn, 1), rn, 527, 0, [f]))), g = !1, d = !1, t && (l = new M9(t), kA in l.a && (g = Oh(l, kA).ge().a), $qn in l.a && (d = Oh(l, $qn).ge().a)), a = t8n(OIn(new Gp(), g), d), N5e(new Jgn(), r, a), kA in c.a && Ro(c, kA, null), (g || d) && (h = new r2(), bRn(a, h, g, d), Ro(c, kA, h)), i = new fmn(o), Owe(new kz(r), i);
+ }
+ function zye(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ for (o = new qFn(), l = A(M(be, 1), Le, 25, 15, [0]), r = -1, c = 0, i = 0, h = 0; h < n.b.c.length; ++h)
+ if (a = u(un(n.b, h), 434), a.b > 0) {
+ if (r < 0 && a.a && (r = h, c = l[0], i = 0), r >= 0) {
+ if (f = a.b, h == r && (f -= i++, f == 0))
+ return 0;
+ if (!y_n(e, l, a, f, o)) {
+ h = r - 1, l[0] = c;
+ continue;
+ }
+ } else if (r = -1, !y_n(e, l, a, 0, o))
+ return 0;
+ } else {
+ if (r = -1, Di(a.c, 0) == 32) {
+ if (d = l[0], HPn(e, l), l[0] > d)
+ continue;
+ } else if (T1e(e, a.c, l[0])) {
+ l[0] += a.c.length;
+ continue;
+ }
+ return 0;
+ }
+ return TCe(o, t) ? l[0] : 0;
+ }
+ function I6(n) {
+ var e, t, i, r, c, o, f, h;
+ if (!n.f) {
+ if (h = new YH(), f = new YH(), e = b9, o = e.a.zc(n, e), o == null) {
+ for (c = new ie(Ar(n)); c.e != c.i.gc(); )
+ r = u(oe(c), 26), $t(h, I6(r));
+ e.a.Bc(n) != null, e.a.gc() == 0;
+ }
+ for (i = (!n.s && (n.s = new V(uu, n, 21, 17)), new ie(n.s)); i.e != i.i.gc(); )
+ t = u(oe(i), 170), I(t, 99) && me(f, u(t, 18));
+ ab(f), n.r = new FEn(n, (u(D(R((sl(), Nn).o), 6), 18), f.i), f.g), $t(h, n.r), ab(h), n.f = new Ew((u(D(R(Nn.o), 5), 18), h.i), h.g), Iu(n).b &= -3;
+ }
+ return n.f;
+ }
+ function Uye(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v;
+ for (o = n.o, i = F(be, Le, 25, o, 15, 1), r = F(be, Le, 25, o, 15, 1), t = n.p, e = F(be, Le, 25, t, 15, 1), c = F(be, Le, 25, t, 15, 1), l = 0; l < o; l++) {
+ for (d = 0; d < t && !zw(n, l, d); )
+ ++d;
+ i[l] = d;
+ }
+ for (a = 0; a < o; a++) {
+ for (d = t - 1; d >= 0 && !zw(n, a, d); )
+ --d;
+ r[a] = d;
+ }
+ for (p = 0; p < t; p++) {
+ for (f = 0; f < o && !zw(n, f, p); )
+ ++f;
+ e[p] = f;
+ }
+ for (v = 0; v < t; v++) {
+ for (f = o - 1; f >= 0 && !zw(n, f, v); )
+ --f;
+ c[v] = f;
+ }
+ for (h = 0; h < o; h++)
+ for (g = 0; g < t; g++)
+ h < c[g] && h > e[g] && g < r[h] && g > i[h] && wM(n, h, g, !1, !0);
+ }
+ function EZ(n) {
+ var e, t, i, r, c, o, f, h;
+ t = on(sn(k(n, (Go(), QUn)))), c = n.a.c.d, f = n.a.d.d, t ? (o = If(ji(new fn(f.a, f.b), c), 0.5), h = If(Qr(n.e), 0.5), e = ji(st(new fn(c.a, c.b), o), h), Zz(n.d, e)) : (r = K(Y(k(n.a, rWn))), i = n.d, c.a >= f.a ? c.b >= f.b ? (i.a = f.a + (c.a - f.a) / 2 + r, i.b = f.b + (c.b - f.b) / 2 - r - n.e.b) : (i.a = f.a + (c.a - f.a) / 2 + r, i.b = c.b + (f.b - c.b) / 2 + r) : c.b >= f.b ? (i.a = c.a + (f.a - c.a) / 2 + r, i.b = f.b + (c.b - f.b) / 2 + r) : (i.a = c.a + (f.a - c.a) / 2 + r, i.b = c.b + (f.b - c.b) / 2 - r - n.e.b));
+ }
+ function Ec(n, e) {
+ var t, i, r, c, o, f, h;
+ if (n == null)
+ return null;
+ if (c = n.length, c == 0)
+ return "";
+ for (h = F(xs, Bf, 25, c, 15, 1), RX(0, c, n.length), RX(0, c, h.length), _Cn(n, 0, c, h, 0), t = null, f = e, r = 0, o = 0; r < c; r++)
+ i = h[r], K_n(), i <= 32 && P[i] & 2 ? f ? (!t && (t = new Ns(n)), m1e(t, r - o++)) : (f = e, i != 32 && (!t && (t = new Ns(n)), _he(t, r - o, r - o + 1, String.fromCharCode(32)))) : f = !1;
+ return f ? t ? (c = t.a.length, c > 0 ? Yu(t.a, 0, c - 1) : "") : n.substr(0, c - 1) : t ? t.a : n;
+ }
+ function yRn(n) {
+ gd(n, new Oa(ad(fd(ld(hd(new na(), Na), "ELK DisCo"), "Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."), new lan()))), Z(n, Na, vN, cn(Trn)), Z(n, Na, mN, cn(IR)), Z(n, Na, ep, cn(xUn)), Z(n, Na, s0, cn(Crn)), Z(n, Na, onn, cn(RUn)), Z(n, Na, fnn, cn(BUn)), Z(n, Na, snn, cn(_Un)), Z(n, Na, hnn, cn(NUn)), Z(n, Na, pnn, cn(LUn)), Z(n, Na, vnn, cn(PR)), Z(n, Na, mnn, cn(Ern)), Z(n, Na, knn, cn(nS));
+ }
+ function CZ(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g;
+ if (c = new Hh(n), ta(c, (Qn(), Mc)), H(c, (nn(), Nt), (Ai(), Sc)), r = 0, e) {
+ for (o = new gc(), H(o, (G(), rt), e), H(c, rt, e.i), si(o, (J(), Gn)), Hr(o, c), g = xf(e.e), l = g, a = 0, d = l.length; a < d; ++a)
+ h = l[a], Ti(h, o);
+ H(e, Mu, c), ++r;
+ }
+ if (t) {
+ for (f = new gc(), H(c, (G(), rt), t.i), H(f, rt, t), si(f, (J(), Vn)), Hr(f, c), g = xf(t.g), l = g, a = 0, d = l.length; a < d; ++a)
+ h = l[a], Ki(h, f);
+ H(t, Mu, c), ++r;
+ }
+ return H(c, (G(), KS), Q(r)), i.c[i.c.length] = c, c;
+ }
+ function mM() {
+ mM = N, r1n = A(M(xs, 1), Bf, 25, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]), Fne = new RegExp(`[
+\r\f]+`);
+ try {
+ l9 = A(M(lMe, 1), rn, 2015, 0, [new D9((Cz(), PT("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", a8((wj(), wj(), dm))))), new D9(PT("yyyy-MM-dd'T'HH:mm:ss'.'SSS", a8(dm))), new D9(PT("yyyy-MM-dd'T'HH:mm:ss", a8(dm))), new D9(PT("yyyy-MM-dd'T'HH:mm", a8(dm))), new D9(PT("yyyy-MM-dd", a8(dm)))]);
+ } catch (n) {
+ if (n = jt(n), !I(n, 78))
+ throw T(n);
+ }
+ }
+ function Wye(n) {
+ var e, t, i, r;
+ if (i = jL((!n.c && (n.c = h7(n.f)), n.c), 0), n.e == 0 || n.a == 0 && n.f != -1 && n.e < 0)
+ return i;
+ if (e = fV(n) < 0 ? 1 : 0, t = n.e, r = (i.length + 1 + j.Math.abs(zt(n.e)), new _0()), e == 1 && (r.a += "-"), n.e > 0)
+ if (t -= i.length - e, t >= 0) {
+ for (r.a += "0."; t > za.length; t -= za.length)
+ ZEn(r, za);
+ xjn(r, za, zt(t)), De(r, i.substr(e));
+ } else
+ t = e - t, De(r, Yu(i, e, zt(t))), r.a += ".", De(r, r8(i, zt(t)));
+ else {
+ for (De(r, i.substr(e)); t < -za.length; t += za.length)
+ ZEn(r, za);
+ xjn(r, za, zt(-t));
+ }
+ return r.a;
+ }
+ function TZ(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g;
+ return h = ji(new fn(t.a, t.b), n), l = h.a * e.b - h.b * e.a, a = e.a * i.b - e.b * i.a, d = (h.a * i.b - h.b * i.a) / a, g = l / a, a == 0 ? l == 0 ? (r = st(new fn(t.a, t.b), If(new fn(i.a, i.b), 0.5)), c = ll(n, r), o = ll(st(new fn(n.a, n.b), e), r), f = j.Math.sqrt(i.a * i.a + i.b * i.b) * 0.5, c < o && c <= f ? new fn(n.a, n.b) : o <= f ? st(new fn(n.a, n.b), e) : null) : null : d >= 0 && d <= 1 && g >= 0 && g <= 1 ? st(new fn(n.a, n.b), If(new fn(e.a, e.b), d)) : null;
+ }
+ function Xye(n, e, t) {
+ var i, r, c, o, f;
+ if (i = u(k(n, (nn(), $_)), 21), t.a > e.a && (i.Hc((mb(), dy)) ? n.c.a += (t.a - e.a) / 2 : i.Hc(by) && (n.c.a += t.a - e.a)), t.b > e.b && (i.Hc((mb(), gy)) ? n.c.b += (t.b - e.b) / 2 : i.Hc(wy) && (n.c.b += t.b - e.b)), u(k(n, (G(), Ac)), 21).Hc((or(), Ds)) && (t.a > e.a || t.b > e.b))
+ for (f = new E(n.a); f.a < f.c.c.length; )
+ o = u(y(f), 10), o.k == (Qn(), Vt) && (r = u(k(o, ec), 61), r == (J(), Vn) ? o.n.a += t.a - e.a : r == ae && (o.n.b += t.b - e.b));
+ c = n.d, n.f.a = t.a - c.b - c.c, n.f.b = t.b - c.d - c.a;
+ }
+ function Vye(n, e, t) {
+ var i, r, c, o, f;
+ if (i = u(k(n, (nn(), $_)), 21), t.a > e.a && (i.Hc((mb(), dy)) ? n.c.a += (t.a - e.a) / 2 : i.Hc(by) && (n.c.a += t.a - e.a)), t.b > e.b && (i.Hc((mb(), gy)) ? n.c.b += (t.b - e.b) / 2 : i.Hc(wy) && (n.c.b += t.b - e.b)), u(k(n, (G(), Ac)), 21).Hc((or(), Ds)) && (t.a > e.a || t.b > e.b))
+ for (o = new E(n.a); o.a < o.c.c.length; )
+ c = u(y(o), 10), c.k == (Qn(), Vt) && (r = u(k(c, ec), 61), r == (J(), Vn) ? c.n.a += t.a - e.a : r == ae && (c.n.b += t.b - e.b));
+ f = n.d, n.f.a = t.a - f.b - f.c, n.f.b = t.b - f.d - f.a;
+ }
+ function Qye(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g;
+ for (e = _Ln(n), a = (f = new Bp(e).a.vc().Kc(), new bq(f)); a.a.Ob(); ) {
+ for (l = (r = u(a.a.Pb(), 42), u(r.cd(), 10)), d = 0, g = 0, d = l.d.d, g = l.o.b + l.d.a, n.d[l.p] = 0, t = l; (c = n.a[t.p]) != l; )
+ i = ope(t, c), h = 0, n.c == (Ff(), I1) ? h = i.d.n.b + i.d.a.b - i.c.n.b - i.c.a.b : h = i.c.n.b + i.c.a.b - i.d.n.b - i.d.a.b, o = K(n.d[t.p]) + h, n.d[c.p] = o, d = j.Math.max(d, c.d.d - o), g = j.Math.max(g, o + c.o.b + c.d.a), t = c;
+ t = l;
+ do
+ n.d[t.p] = K(n.d[t.p]) + d, t = n.a[t.p];
+ while (t != l);
+ n.b[l.p] = d + g;
+ }
+ }
+ function uL(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g;
+ for (n.b = !1, d = xt, h = Qt, g = xt, l = Qt, i = n.e.a.ec().Kc(); i.Ob(); )
+ for (t = u(i.Pb(), 266), r = t.a, d = j.Math.min(d, r.c), h = j.Math.max(h, r.c + r.b), g = j.Math.min(g, r.d), l = j.Math.max(l, r.d + r.a), o = new E(t.c); o.a < o.c.c.length; )
+ c = u(y(o), 395), e = c.a, e.a ? (a = r.d + c.b.b, f = a + c.c, g = j.Math.min(g, a), l = j.Math.max(l, f)) : (a = r.c + c.b.a, f = a + c.c, d = j.Math.min(d, a), h = j.Math.max(h, f));
+ n.a = new fn(h - d, l - g), n.c = new fn(d + n.d.a, g + n.d.b);
+ }
+ function Jye(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ for (d = new X(), a = new oX(0, t), c = 0, XC(a, new lF(0, 0, a, t)), r = 0, l = new ie(n); l.e != l.i.gc(); )
+ h = u(oe(l), 33), i = u(un(a.a, a.a.c.length - 1), 187), f = r + h.g + (u(un(a.a, 0), 187).b.c.length == 0 ? 0 : t), f > e && (r = 0, c += a.b + t, d.c[d.c.length] = a, a = new oX(c, t), i = new lF(0, a.f, a, t), XC(a, i), r = 0), i.b.c.length == 0 || h.f >= i.o && h.f <= i.f || i.a * 0.5 <= h.f && i.a * 1.5 >= h.f ? yQ(i, h) : (o = new lF(i.s + i.r + t, a.f, a, t), XC(a, o), yQ(o, h)), r = h.i + h.g;
+ return d.c[d.c.length] = a, d;
+ }
+ function ig(n) {
+ var e, t, i, r, c, o, f, h;
+ if (!n.a) {
+ if (n.o = null, h = new Pmn(n), e = new Y2n(), t = b9, f = t.a.zc(n, t), f == null) {
+ for (o = new ie(Ar(n)); o.e != o.i.gc(); )
+ c = u(oe(o), 26), $t(h, ig(c));
+ t.a.Bc(n) != null, t.a.gc() == 0;
+ }
+ for (r = (!n.s && (n.s = new V(uu, n, 21, 17)), new ie(n.s)); r.e != r.i.gc(); )
+ i = u(oe(r), 170), I(i, 322) && me(e, u(i, 34));
+ ab(e), n.k = new $En(n, (u(D(R((sl(), Nn).o), 7), 18), e.i), e.g), $t(h, n.k), ab(h), n.a = new Ew((u(D(R(Nn.o), 4), 18), h.i), h.g), Iu(n).b &= -2;
+ }
+ return n.a;
+ }
+ function Yye(n, e, t, i, r, c, o) {
+ var f, h, l, a, d, g;
+ return d = !1, h = PNn(t.q, e.f + e.b - t.q.f), g = r - (t.q.e + h - o), g < i.g || (l = c == n.c.length - 1 && g >= (Ln(c, n.c.length), u(n.c[c], 200)).e, a = (f = O6(i, g, !1), f.a), a > e.b && !l) ? !1 : ((l || a <= e.b) && (l && a > e.b ? (t.d = a, B8(t, $xn(t, a))) : (YFn(t.q, h), t.c = !0), B8(i, r - (t.s + t.r)), k7(i, t.q.e + t.q.d, e.f), XC(e, i), n.c.length > c && (T7((Ln(c, n.c.length), u(n.c[c], 200)), i), (Ln(c, n.c.length), u(n.c[c], 200)).a.c.length == 0 && h1(n, c)), d = !0), d);
+ }
+ function MZ(n, e, t, i) {
+ var r, c, o, f, h, l, a;
+ if (a = _c(n.e.Tg(), e), r = 0, c = u(n.g, 119), h = null, er(), u(e, 66).Oj()) {
+ for (f = 0; f < n.i; ++f)
+ if (o = c[f], a.rl(o.ak())) {
+ if (tt(o, t)) {
+ h = o;
+ break;
+ }
+ ++r;
+ }
+ } else if (t != null) {
+ for (f = 0; f < n.i; ++f)
+ if (o = c[f], a.rl(o.ak())) {
+ if (tt(t, o.dd())) {
+ h = o;
+ break;
+ }
+ ++r;
+ }
+ } else
+ for (f = 0; f < n.i; ++f)
+ if (o = c[f], a.rl(o.ak())) {
+ if (o.dd() == null) {
+ h = o;
+ break;
+ }
+ ++r;
+ }
+ return h && (Hu(n.e) && (l = e.$j() ? new v$(n.e, 4, e, t, null, r, !0) : fl(n, e.Kj() ? 2 : 1, e, t, e.zj(), -1, !0), i ? i.Ei(l) : i = l), i = q7(n, h, i)), i;
+ }
+ function sL(n, e, t, i, r, c, o) {
+ var f, h, l, a, d, g, p, v, m;
+ switch (v = 0, m = 0, h = r.c, f = r.b, a = t.f, p = t.g, e.g) {
+ case 0:
+ v = i.i + i.g + o, n.c ? m = Ave(v, c, i, o) : m = i.j, g = j.Math.max(h, v + p), l = j.Math.max(f, m + a);
+ break;
+ case 1:
+ m = i.j + i.f + o, n.c ? v = Mve(m, c, i, o) : v = i.i, g = j.Math.max(h, v + p), l = j.Math.max(f, m + a);
+ break;
+ case 2:
+ v = h + o, m = 0, g = h + o + p, l = j.Math.max(f, a);
+ break;
+ case 3:
+ v = 0, m = f + o, g = j.Math.max(h, p), l = f + o + a;
+ break;
+ default:
+ throw T(new Hn("IllegalPlacementOption."));
+ }
+ return d = new MQ(n.a, g, l, e, v, m), d;
+ }
+ function Zye(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g;
+ if (f = n.d, d = u(k(n, (G(), mp)), 15), e = u(k(n, bp), 15), !(!d && !e)) {
+ if (c = K(Y(wb(n, (nn(), q_)))), o = K(Y(wb(n, Isn))), g = 0, d) {
+ for (l = 0, r = d.Kc(); r.Ob(); )
+ i = u(r.Pb(), 10), l = j.Math.max(l, i.o.b), g += i.o.a;
+ g += c * (d.gc() - 1), f.d += l + o;
+ }
+ if (t = 0, e) {
+ for (l = 0, r = e.Kc(); r.Ob(); )
+ i = u(r.Pb(), 10), l = j.Math.max(l, i.o.b), t += i.o.a;
+ t += c * (e.gc() - 1), f.a += l + o;
+ }
+ h = j.Math.max(g, t), h > n.o.a && (a = (h - n.o.a) / 2, f.b = j.Math.max(f.b, a), f.c = j.Math.max(f.c, a));
+ }
+ }
+ function nje(n) {
+ var e, t, i, r, c, o, f, h;
+ for (c = new nAn(), Bre(c, (L2(), AZn)), i = (r = Z$(n, F(tn, q, 2, 0, 6, 1)), new $v(new Ku(new iO(n, r).b))); i.b < i.d.gc(); )
+ t = (ne(i.b < i.d.gc()), Te(i.d.Xb(i.c = i.b++))), o = $Z(Ul, t), o && (e = Oh(n, t), e.je() ? f = e.je().a : e.ge() ? f = "" + e.ge().a : e.he() ? f = "" + e.he().a : f = e.Ib(), h = OZ(o, f), h != null && ((hu(o.j, (Ho(), vi)) || hu(o.j, Xn)) && s7(H$(c, Pt), o, h), hu(o.j, Yf) && s7(H$(c, bi), o, h), hu(o.j, Za) && s7(H$(c, Ru), o, h), hu(o.j, D1) && s7(H$(c, Rr), o, h)));
+ return c;
+ }
+ function kM(n, e, t, i) {
+ var r, c, o, f, h, l;
+ if (h = _c(n.e.Tg(), e), c = u(n.g, 119), Gh(n.e, e)) {
+ for (r = 0, f = 0; f < n.i; ++f)
+ if (o = c[f], h.rl(o.ak())) {
+ if (r == t)
+ return er(), u(e, 66).Oj() ? o : (l = o.dd(), l != null && i && I(e, 99) && u(e, 18).Bb & Ji && (l = y6(n, e, f, r, l)), l);
+ ++r;
+ }
+ throw T(new mr(rm + t + _a + r));
+ } else {
+ for (r = 0, f = 0; f < n.i; ++f) {
+ if (o = c[f], h.rl(o.ak()))
+ return er(), u(e, 66).Oj() ? o : (l = o.dd(), l != null && i && I(e, 99) && u(e, 18).Bb & Ji && (l = y6(n, e, f, r, l)), l);
+ ++r;
+ }
+ return e.zj();
+ }
+ }
+ function W7(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ if (r = u(n.g, 119), Gh(n.e, e))
+ return er(), u(e, 66).Oj() ? new IE(e, n) : new i8(e, n);
+ for (l = _c(n.e.Tg(), e), i = 0, f = 0; f < n.i; ++f) {
+ if (c = r[f], o = c.ak(), l.rl(o)) {
+ if (er(), u(e, 66).Oj())
+ return c;
+ if (o == (z2(), Dp) || o == Op) {
+ for (h = new Ju(Nr(c.dd())); ++f < n.i; )
+ c = r[f], o = c.ak(), (o == Dp || o == Op) && De(h, Nr(c.dd()));
+ return CU(u(e.Yj(), 148), h.a);
+ } else
+ return a = c.dd(), a != null && t && I(e, 99) && u(e, 18).Bb & Ji && (a = y6(n, e, f, i, a)), a;
+ }
+ ++i;
+ }
+ return e.zj();
+ }
+ function O6(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ for (c = 0, o = n.t, r = 0, i = 0, h = 0, g = 0, d = 0, t && (n.n.c = F(Zn, rn, 1, 0, 5, 1), W(n.n, new lC(n.s, n.t, n.i))), f = 0, a = new E(n.b); a.a < a.c.c.length; )
+ l = u(y(a), 33), c + l.g + (f > 0 ? n.i : 0) > e && h > 0 && (c = 0, o += h + n.i, r = j.Math.max(r, g), i += h + n.i, h = 0, g = 0, t && (++d, W(n.n, new lC(n.s, o, n.i))), f = 0), g += l.g + (f > 0 ? n.i : 0), h = j.Math.max(h, l.f), t && iJ(u(un(n.n, d), 211), l), c += l.g + (f > 0 ? n.i : 0), ++f;
+ return r = j.Math.max(r, g), i += h, t && (n.r = r, n.d = i, sJ(n.j)), new ks(n.s, n.t, r, i);
+ }
+ function pc(n, e, t, i, r) {
+ Zf();
+ var c, o, f, h, l, a, d, g, p;
+ if (MW(n, "src"), MW(t, "dest"), g = Du(n), h = Du(t), VU((g.i & 4) != 0, "srcType is not an array"), VU((h.i & 4) != 0, "destType is not an array"), d = g.c, o = h.c, VU(d.i & 1 ? d == o : (o.i & 1) == 0, "Array types don't match"), p = n.length, l = t.length, e < 0 || i < 0 || r < 0 || e + r > p || i + r > l)
+ throw T(new Kq());
+ if (!(d.i & 1) && g != h)
+ if (a = va(n), c = va(t), B(n) === B(t) && e < i)
+ for (e += r, f = i + r; f-- > i; )
+ Mt(c, f, a[--e]);
+ else
+ for (f = i + r; i < f; )
+ Mt(c, i++, a[e++]);
+ else
+ r > 0 && aY(n, e, t, i, r, !0);
+ }
+ function oL() {
+ oL = N, Czn = A(M(be, 1), Le, 25, 15, [Bi, 1162261467, L6, 1220703125, 362797056, 1977326743, L6, 387420489, $M, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 128e7, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729e6, 887503681, L6, 1291467969, 1544804416, 1838265625, 60466176]), Tzn = A(M(be, 1), Le, 25, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]);
+ }
+ function eje(n) {
+ var e, t, i, r, c, o, f, h;
+ for (r = new E(n.b); r.a < r.c.c.length; )
+ for (i = u(y(r), 29), o = new E($d(i.a)); o.a < o.c.c.length; )
+ if (c = u(y(o), 10), iIn(c) && (t = u(k(c, (G(), v0)), 305), !t.g && t.d))
+ for (e = t, h = t.d; h; )
+ lBn(h.i, h.k, !1, !0), H8(e.a), H8(h.i), H8(h.k), H8(h.b), Ti(h.c, e.c.d), Ti(e.c, null), jr(e.a, null), jr(h.i, null), jr(h.k, null), jr(h.b, null), f = new wX(e.i, h.a, e.e, h.j, h.f), f.k = e.k, f.n = e.n, f.b = e.b, f.c = h.c, f.g = e.g, f.d = h.d, H(e.i, v0, f), H(h.a, v0, f), h = h.d, e = f;
+ }
+ function Sb(n, e) {
+ var t, i, r, c, o;
+ if (o = u(e, 136), Jw(n), Jw(o), o.b != null) {
+ if (n.c = !0, n.b == null) {
+ n.b = F(be, Le, 25, o.b.length, 15, 1), pc(o.b, 0, n.b, 0, o.b.length);
+ return;
+ }
+ for (c = F(be, Le, 25, n.b.length + o.b.length, 15, 1), t = 0, i = 0, r = 0; t < n.b.length || i < o.b.length; )
+ t >= n.b.length ? (c[r++] = o.b[i++], c[r++] = o.b[i++]) : i >= o.b.length ? (c[r++] = n.b[t++], c[r++] = n.b[t++]) : o.b[i] < n.b[t] || o.b[i] === n.b[t] && o.b[i + 1] < n.b[t + 1] ? (c[r++] = o.b[i++], c[r++] = o.b[i++]) : (c[r++] = n.b[t++], c[r++] = n.b[t++]);
+ n.b = c;
+ }
+ }
+ function tje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ return t = on(sn(k(n, (G(), Ub)))), f = on(sn(k(e, Ub))), i = u(k(n, Xo), 11), h = u(k(e, Xo), 11), r = u(k(n, Js), 11), l = u(k(e, Js), 11), a = !!i && i == h, d = !!r && r == l, !t && !f ? new xU(u(y(new E(n.j)), 11).p == u(y(new E(e.j)), 11).p, a, d) : (c = (!on(sn(k(n, Ub))) || on(sn(k(n, Xk)))) && (!on(sn(k(e, Ub))) || on(sn(k(e, Xk)))), o = (!on(sn(k(n, Ub))) || !on(sn(k(n, Xk)))) && (!on(sn(k(e, Ub))) || !on(sn(k(e, Xk)))), new xU(a && c || d && o, a, d));
+ }
+ function ije(n) {
+ var e, t, i, r, c, o, f, h;
+ for (i = 0, t = 0, h = new Ct(), e = 0, f = new E(n.n); f.a < f.c.c.length; )
+ o = u(y(f), 211), o.c.c.length == 0 ? Ht(h, o, h.c.b, h.c) : (i = j.Math.max(i, o.d), t += o.a + (e > 0 ? n.i : 0)), ++e;
+ for (d2e(n.n, h), n.d = t, n.r = i, n.g = 0, n.f = 0, n.e = 0, n.o = xt, n.p = xt, c = new E(n.b); c.a < c.c.c.length; )
+ r = u(y(c), 33), n.p = j.Math.min(n.p, r.g), n.g = j.Math.max(n.g, r.g), n.f = j.Math.max(n.f, r.f), n.o = j.Math.min(n.o, r.f), n.e += r.f + n.i;
+ n.a = n.e / n.b.c.length - n.i * ((n.b.c.length - 1) / n.b.c.length), sJ(n.j);
+ }
+ function jRn(n) {
+ var e, t, i, r;
+ return n.Db & 64 ? PF(n) : (e = new Ju(Atn), i = n.k, i ? De(De((e.a += ' "', e), i), '"') : (!n.n && (n.n = new V(Rr, n, 1, 7)), n.n.i > 0 && (r = (!n.n && (n.n = new V(Rr, n, 1, 7)), u(D(n.n, 0), 137)).a, !r || De(De((e.a += ' "', e), r), '"'))), t = (!n.b && (n.b = new Fn(he, n, 4, 7)), !(n.b.i <= 1 && (!n.c && (n.c = new Fn(he, n, 5, 8)), n.c.i <= 1))), t ? e.a += " [" : e.a += " ", De(e, Lz(new YI(), new ie(n.b))), t && (e.a += "]"), e.a += TN, t && (e.a += "["), De(e, Lz(new YI(), new ie(n.c))), t && (e.a += "]"), e.a);
+ }
+ function fL(n, e) {
+ var t, i, r, c, o, f, h;
+ if (n.a) {
+ if (f = n.a.ne(), h = null, f != null ? e.a += "" + f : (o = n.a.Dj(), o != null && (c = Pf(o, eu(91)), c != -1 ? (h = o.substr(c), e.a += "" + Yu(o == null ? tu : (_n(o), o), 0, c)) : e.a += "" + o)), n.d && n.d.i != 0) {
+ for (r = !0, e.a += "<", i = new ie(n.d); i.e != i.i.gc(); )
+ t = u(oe(i), 87), r ? r = !1 : e.a += Qi, fL(t, e);
+ e.a += ">";
+ }
+ h != null && (e.a += "" + h);
+ } else
+ n.e ? (f = n.e.zb, f != null && (e.a += "" + f)) : (e.a += "?", n.b ? (e.a += " super ", fL(n.b, e)) : n.f && (e.a += " extends ", fL(n.f, e)));
+ }
+ function rje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn;
+ for (_ = n.c, U = e.c, t = xr(_.a, n, 0), i = xr(U.a, e, 0), O = u(Wd(n, (ur(), Au)).Kc().Pb(), 11), wn = u(Wd(n, Lc).Kc().Pb(), 11), x = u(Wd(e, Au).Kc().Pb(), 11), zn = u(Wd(e, Lc).Kc().Pb(), 11), S = xf(O.e), en = xf(wn.g), $ = xf(x.e), ln = xf(zn.g), vb(n, i, U), o = $, a = 0, v = o.length; a < v; ++a)
+ r = o[a], Ti(r, O);
+ for (f = ln, d = 0, m = f.length; d < m; ++d)
+ r = f[d], Ki(r, wn);
+ for (vb(e, t, _), h = S, g = 0, C = h.length; g < C; ++g)
+ r = h[g], Ti(r, x);
+ for (c = en, l = 0, p = c.length; l < p; ++l)
+ r = c[l], Ki(r, zn);
+ }
+ function ERn(n, e, t, i) {
+ var r, c, o, f, h, l, a;
+ if (c = jT(i), f = on(sn(k(i, (nn(), msn)))), (f || on(sn(k(n, YS)))) && !Cw(u(k(n, Nt), 98)))
+ r = B2(c), h = bZ(n, t, t == (ur(), Lc) ? r : b7(r));
+ else
+ switch (h = new gc(), Hr(h, n), e ? (a = h.n, a.a = e.a - n.n.a, a.b = e.b - n.n.b, Fxn(a, 0, 0, n.o.a, n.o.b), si(h, WBn(h, c))) : (r = B2(c), si(h, t == (ur(), Lc) ? r : b7(r))), o = u(k(i, (G(), Ac)), 21), l = h.j, c.g) {
+ case 2:
+ case 1:
+ (l == (J(), Kn) || l == ae) && o.Fc((or(), Mg));
+ break;
+ case 4:
+ case 3:
+ (l == (J(), Vn) || l == Gn) && o.Fc((or(), Mg));
+ }
+ return h;
+ }
+ function AZ(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ return j.Math.abs(e.s - e.c) < Kf || j.Math.abs(t.s - t.c) < Kf ? 0 : (i = FNn(n, e.j, t.e), r = FNn(n, t.j, e.e), c = i == -1 || r == -1, o = 0, c ? (i == -1 && (new da((No(), Nl), t, e, 1), ++o), r == -1 && (new da((No(), Nl), e, t, 1), ++o)) : (f = Kw(e.j, t.s, t.c), f += Kw(t.e, e.s, e.c), h = Kw(t.j, e.s, e.c), h += Kw(e.e, t.s, t.c), l = i + 16 * f, a = r + 16 * h, l < a ? new da((No(), iw), e, t, a - l) : l > a ? new da((No(), iw), t, e, l - a) : l > 0 && a > 0 && (new da((No(), iw), e, t, 0), new da(iw, t, e, 0))), o);
+ }
+ function CRn(n, e) {
+ var t, i, r, c, o, f;
+ for (o = new Ca(new ia(n.f.b).a); o.b; ) {
+ if (c = Bd(o), r = u(c.cd(), 594), e == 1) {
+ if (r.gf() != (sr(), Jh) && r.gf() != Qh)
+ continue;
+ } else if (r.gf() != (sr(), Ys) && r.gf() != Ao)
+ continue;
+ switch (i = u(u(c.dd(), 46).b, 81), f = u(u(c.dd(), 46).a, 189), t = f.c, r.gf().g) {
+ case 2:
+ i.g.c = n.e.a, i.g.b = j.Math.max(1, i.g.b + t);
+ break;
+ case 1:
+ i.g.c = i.g.c + t, i.g.b = j.Math.max(1, i.g.b - t);
+ break;
+ case 4:
+ i.g.d = n.e.b, i.g.a = j.Math.max(1, i.g.a + t);
+ break;
+ case 3:
+ i.g.d = i.g.d + t, i.g.a = j.Math.max(1, i.g.a - t);
+ }
+ }
+ }
+ function cje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (f = F(be, Le, 25, e.b.c.length, 15, 1), l = F(zR, z, 267, e.b.c.length, 0, 1), h = F(vh, E1, 10, e.b.c.length, 0, 1), d = n.a, g = 0, p = d.length; g < p; ++g) {
+ for (a = d[g], m = 0, o = new E(a.e); o.a < o.c.c.length; )
+ r = u(y(o), 10), i = pz(r.c), ++f[i], v = K(Y(k(e, (nn(), Mo)))), f[i] > 0 && h[i] && (v = Mw(n.b, h[i], r)), m = j.Math.max(m, r.c.c.b + v);
+ for (c = new E(a.e); c.a < c.c.c.length; )
+ r = u(y(c), 10), r.n.b = m + r.d.d, t = r.c, t.c.b = m + r.d.d + r.o.b + r.d.a, l[xr(t.b.b, t, 0)] = r.k, h[xr(t.b.b, t, 0)] = r;
+ }
+ }
+ function TRn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ for (i = new re(ue(qh(e).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 79), I(D((!t.b && (t.b = new Fn(he, t, 4, 7)), t.b), 0), 186) || (h = Ir(u(D((!t.c && (t.c = new Fn(he, t, 5, 8)), t.c), 0), 82)), j6(t) || (o = e.i + e.g / 2, f = e.j + e.f / 2, a = h.i + h.g / 2, d = h.j + h.f / 2, g = new Li(), g.a = a - o, g.b = d - f, c = new fn(g.a, g.b), u4(c, e.g, e.f), g.a -= c.a, g.b -= c.b, o = a - g.a, f = d - g.b, l = new fn(g.a, g.b), u4(l, h.g, h.f), g.a -= l.a, g.b -= l.b, a = o + g.a, d = f + g.b, r = ng(t, !0, !0), D3(r, o), F3(r, f), O3(r, a), $3(r, d), TRn(n, h)));
+ }
+ function MRn(n) {
+ gd(n, new Oa(ad(fd(ld(hd(new na(), o0), "ELK SPOrE Compaction"), "ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree."), new zgn()))), Z(n, o0, gB, cn(OP)), Z(n, o0, ptn, cn(RK)), Z(n, o0, vtn, cn(BK)), Z(n, o0, pB, cn(kfn)), Z(n, o0, vB, cn(NK)), Z(n, o0, s0, mfn), Z(n, o0, $b, 8), Z(n, o0, mB, cn(dZn)), Z(n, o0, mtn, cn(pfn)), Z(n, o0, ktn, cn(vfn)), Z(n, o0, mk, (qn(), !1));
+ }
+ function uje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ for (le(e, "Simple node placement", 1), d = u(k(n, (G(), Ig)), 304), f = 0, c = new E(n.b); c.a < c.c.c.length; ) {
+ for (i = u(y(c), 29), o = i.c, o.b = 0, t = null, l = new E(i.a); l.a < l.c.c.length; )
+ h = u(y(l), 10), t && (o.b += _Q(h, t, d.c)), o.b += h.d.d + h.o.b + h.d.a, t = h;
+ f = j.Math.max(f, o.b);
+ }
+ for (r = new E(n.b); r.a < r.c.c.length; )
+ for (i = u(y(r), 29), o = i.c, a = (f - o.b) / 2, t = null, l = new E(i.a); l.a < l.c.c.length; )
+ h = u(y(l), 10), t && (a += _Q(h, t, d.c)), a += h.d.d, h.n.b = a, a += h.o.b + h.d.a, t = h;
+ ce(e);
+ }
+ function sje(n, e, t, i) {
+ var r, c, o, f, h, l, a, d;
+ if (i.gc() == 0)
+ return !1;
+ if (h = (er(), u(e, 66).Oj()), o = h ? i : new Nd(i.gc()), Gh(n.e, e)) {
+ if (e.hi())
+ for (a = i.Kc(); a.Ob(); )
+ l = a.Pb(), vM(n, e, l, I(e, 99) && (u(e, 18).Bb & Ji) != 0) || (c = uh(e, l), o.Fc(c));
+ else if (!h)
+ for (a = i.Kc(); a.Ob(); )
+ l = a.Pb(), c = uh(e, l), o.Fc(c);
+ } else {
+ for (d = _c(n.e.Tg(), e), r = u(n.g, 119), f = 0; f < n.i; ++f)
+ if (c = r[f], d.rl(c.ak()))
+ throw T(new Hn(Mk));
+ if (i.gc() > 1)
+ throw T(new Hn(Mk));
+ h || (c = uh(e, i.Kc().Pb()), o.Fc(c));
+ }
+ return NV(n, iY(n, e, t), o);
+ }
+ function oje(n, e) {
+ var t, i, r, c;
+ for (z0e(e.b.j), Rt(Wc(new $n(null, new xn(e.d, 16)), new rwn()), new cwn()), c = new E(e.d); c.a < c.c.c.length; ) {
+ switch (r = u(y(c), 101), r.e.g) {
+ case 0:
+ t = u(un(r.j, 0), 113).d.j, lq(r, u(jd(HE(u(ct(r.k, t), 15).Oc(), jg)), 113)), hq(r, u(jd(KE(u(ct(r.k, t), 15).Oc(), jg)), 113));
+ break;
+ case 1:
+ i = hJ(r), lq(r, u(jd(HE(u(ct(r.k, i[0]), 15).Oc(), jg)), 113)), hq(r, u(jd(KE(u(ct(r.k, i[1]), 15).Oc(), jg)), 113));
+ break;
+ case 2:
+ r6e(n, r);
+ break;
+ case 3:
+ k8e(r);
+ break;
+ case 4:
+ C8e(n, r);
+ }
+ G0e(r);
+ }
+ n.a = null;
+ }
+ function hL(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ return i = n.a.o == (ef(), kf) ? xt : Qt, f = eRn(n, new tkn(e, t)), !f.a && f.c ? (Ke(n.d, f), i) : f.a ? (r = f.a.c, h = f.a.d, t ? (l = n.a.c == (Ff(), A0) ? h : r, c = n.a.c == A0 ? r : h, o = n.a.g[c.i.p], a = K(n.a.p[o.p]) + K(n.a.d[c.i.p]) + c.n.b + c.a.b - K(n.a.d[l.i.p]) - l.n.b - l.a.b) : (l = n.a.c == (Ff(), I1) ? h : r, c = n.a.c == I1 ? r : h, a = K(n.a.p[n.a.g[c.i.p].p]) + K(n.a.d[c.i.p]) + c.n.b + c.a.b - K(n.a.d[l.i.p]) - l.n.b - l.a.b), n.a.n[n.a.g[r.i.p].p] = (qn(), !0), n.a.n[n.a.g[h.i.p].p] = !0, a) : i;
+ }
+ function yM(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ if (Gh(n.e, e))
+ h = (er(), u(e, 66).Oj() ? new IE(e, n) : new i8(e, n)), iM(h.c, h.b), m5(h, u(t, 14));
+ else {
+ for (a = _c(n.e.Tg(), e), i = u(n.g, 119), o = 0; o < n.i; ++o)
+ if (r = i[o], c = r.ak(), a.rl(c)) {
+ if (c == (z2(), Dp) || c == Op) {
+ for (l = nJ(n, e, t), f = o, l ? Cb(n, o) : ++o; o < n.i; )
+ r = i[o], c = r.ak(), c == Dp || c == Op ? Cb(n, o) : ++o;
+ l || u(Gw(n, f, uh(e, t)), 72);
+ } else
+ nJ(n, e, t) ? Cb(n, o) : u(Gw(n, o, (er(), u(e, 66).Oj() ? u(t, 72) : uh(e, t))), 72);
+ return;
+ }
+ nJ(n, e, t) || me(n, (er(), u(e, 66).Oj() ? u(t, 72) : uh(e, t)));
+ }
+ }
+ function ARn(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ return tt(t, n.b) || (n.b = t, c = new can(), o = u(es(Wc(new $n(null, new xn(t.f, 16)), c), ub(new Vg(), new Qg(), new Jg(), new Yg(), A(M(Nu, 1), z, 132, 0, [(hf(), _b), hs]))), 21), n.e = !0, n.f = !0, n.c = !0, n.d = !0, r = o.Hc((K2(), $k)), i = o.Hc(Fk), r && !i && (n.f = !1), !r && i && (n.d = !1), r = o.Hc(Dk), i = o.Hc(xk), r && !i && (n.c = !1), !r && i && (n.e = !1)), a = u(n.a.Ce(e, t), 46), h = u(a.a, 19).a, l = u(a.b, 19).a, f = !1, h < 0 ? n.c || (f = !0) : n.e || (f = !0), l < 0 ? n.d || (f = !0) : n.f || (f = !0), f ? ARn(n, a, t) : a;
+ }
+ function fje(n) {
+ var e, t, i, r;
+ r = n.o, X0(), n.A.dc() || tt(n.A, prn) ? e = r.b : (e = $7(n.f), n.A.Hc((Vu(), My)) && !n.B.Hc((xu(), f9)) && (e = j.Math.max(e, $7(u(br(n.p, (J(), Vn)), 244))), e = j.Math.max(e, $7(u(br(n.p, Gn), 244)))), t = AOn(n), t && (e = j.Math.max(e, t.b)), n.A.Hc(Ay) && (n.q == (Ai(), jh) || n.q == Sc) && (e = j.Math.max(e, SE(u(br(n.b, (J(), Vn)), 124))), e = j.Math.max(e, SE(u(br(n.b, Gn), 124))))), on(sn(n.e.yf().We((Xe(), BP)))) ? r.b = j.Math.max(r.b, e) : r.b = e, i = n.f.i, i.d = 0, i.a = e, iL(n.f);
+ }
+ function SRn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (d = 0; d < e.length; d++) {
+ for (f = n.Kc(); f.Ob(); )
+ c = u(f.Pb(), 225), c.Of(d, e);
+ for (g = 0; g < e[d].length; g++) {
+ for (h = n.Kc(); h.Ob(); )
+ c = u(h.Pb(), 225), c.Pf(d, g, e);
+ for (m = e[d][g].j, p = 0; p < m.c.length; p++) {
+ for (l = n.Kc(); l.Ob(); )
+ c = u(l.Pb(), 225), c.Qf(d, g, p, e);
+ for (v = (Ln(p, m.c.length), u(m.c[p], 11)), t = 0, r = new uf(v.b); Kr(r.a) || Kr(r.b); )
+ for (i = u(Kr(r.a) ? y(r.a) : y(r.b), 17), a = n.Kc(); a.Ob(); )
+ c = u(a.Pb(), 225), c.Nf(d, g, p, t++, i, e);
+ }
+ }
+ }
+ for (o = n.Kc(); o.Ob(); )
+ c = u(o.Pb(), 225), c.Mf();
+ }
+ function hje(n, e) {
+ var t, i, r, c, o, f, h;
+ for (n.b = K(Y(k(e, (nn(), Dg)))), n.c = K(Y(k(e, Ja))), n.d = u(k(e, B_), 336), n.a = u(k(e, WS), 275), i3e(e), f = u(es(gt(gt(qr(qr(new $n(null, new xn(e.b, 16)), new ydn()), new jdn()), new Edn()), new Cdn()), pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [(hf(), hs)]))), 15), r = f.Kc(); r.Ob(); )
+ t = u(r.Pb(), 17), o = u(k(t, (G(), Wa)), 15), o.Jc(new j5n(n)), H(t, Wa, null);
+ for (i = f.Kc(); i.Ob(); )
+ t = u(i.Pb(), 17), h = u(k(t, (G(), yun)), 17), c = u(k(t, Og), 15), vTe(n, c, h), H(t, Og, null);
+ }
+ function lje(n) {
+ n.b = null, n.a = null, n.o = null, n.q = null, n.v = null, n.w = null, n.B = null, n.p = null, n.Q = null, n.R = null, n.S = null, n.T = null, n.U = null, n.V = null, n.W = null, n.bb = null, n.eb = null, n.ab = null, n.H = null, n.db = null, n.c = null, n.d = null, n.f = null, n.n = null, n.r = null, n.s = null, n.u = null, n.G = null, n.J = null, n.e = null, n.j = null, n.i = null, n.g = null, n.k = null, n.t = null, n.F = null, n.I = null, n.L = null, n.M = null, n.O = null, n.P = null, n.$ = null, n.N = null, n.Z = null, n.cb = null, n.K = null, n.D = null, n.A = null, n.C = null, n._ = null, n.fb = null, n.X = null, n.Y = null, n.gb = !1, n.hb = !1;
+ }
+ function lL(n) {
+ var e, t, i, r, c, o, f, h, l;
+ return !(n.k != (Qn(), ii) || n.j.c.length <= 1 || (c = u(k(n, (nn(), Nt)), 98), c == (Ai(), Sc)) || (r = (gb(), (n.q ? n.q : (Pn(), Pn(), ph))._b(E0) ? i = u(k(n, E0), 197) : i = u(k(qi(n), $m), 197), i), r == fP) || !(r == xg || r == Fg) && (o = K(Y(wb(n, Fm))), e = u(k(n, ny), 142), !e && (e = new mU(o, o, o, o)), l = zr(n, (J(), Gn)), h = e.d + e.a + (l.gc() - 1) * o, h > n.o.b || (t = zr(n, Vn), f = e.d + e.a + (t.gc() - 1) * o, f > n.o.b)));
+ }
+ function aL(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v;
+ if (o = n.e, h = e.e, o == 0)
+ return e;
+ if (h == 0)
+ return n;
+ if (c = n.d, f = e.d, c + f == 2)
+ return t = ui(n.a[0], fr), i = ui(e.a[0], fr), o == h ? (a = Hi(t, i), v = ge(a), p = ge(Y0(a, 32)), p == 0 ? new l1(o, v) : new Pw(o, 2, A(M(be, 1), Le, 25, 15, [v, p]))) : m7(o < 0 ? pl(i, t) : pl(t, i));
+ if (o == h)
+ g = o, d = c >= f ? S$(n.a, c, e.a, f) : S$(e.a, f, n.a, c);
+ else {
+ if (r = c != f ? c > f ? 1 : -1 : YV(n.a, e.a, c), r == 0)
+ return yl(), U4;
+ r == 1 ? (g = o, d = M$(n.a, c, e.a, f)) : (g = h, d = M$(e.a, f, n.a, c));
+ }
+ return l = new Pw(g, d.length, d), K5(l), l;
+ }
+ function dL(n, e, t, i, r, c, o) {
+ var f, h, l, a, d, g, p;
+ return d = on(sn(k(e, (nn(), ksn)))), g = null, c == (ur(), Au) && i.c.i == t ? g = i.c : c == Lc && i.d.i == t && (g = i.d), l = o, !l || !d || g ? (a = (J(), Xr), g ? a = g.j : Cw(u(k(t, Nt), 98)) && (a = c == Au ? Gn : Vn), h = aje(n, e, t, c, a, i), f = C$((qi(t), i)), c == Au ? (Ki(f, u(un(h.j, 0), 11)), Ti(f, r)) : (Ki(f, r), Ti(f, u(un(h.j, 0), 11))), l = new qDn(i, f, h, u(k(h, (G(), rt)), 11), c, !g)) : (W(l.e, i), p = j.Math.max(K(Y(k(l.d, S1))), K(Y(k(i, S1)))), H(l.d, S1, p)), Tn(n.a, i, new EE(l.d, e, c)), l;
+ }
+ function jM(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ if (a = null, n.d && (a = u(mc(n.d, e), 138)), !a) {
+ if (c = n.a.Mh(), d = c.i, !n.d || Xv(n.d) != d) {
+ for (h = new we(), n.d && Z5(h, n.d), l = h.f.c + h.g.c, f = l; f < d; ++f)
+ i = u(D(c, f), 138), r = w1(n.e, i).ne(), t = u(r == null ? Rc(h.f, null, i) : zd(h.g, r, i), 138), t && t != i && (r == null ? Rc(h.f, null, t) : zd(h.g, r, t));
+ if (h.f.c + h.g.c != d)
+ for (o = 0; o < l; ++o)
+ i = u(D(c, o), 138), r = w1(n.e, i).ne(), t = u(r == null ? Rc(h.f, null, i) : zd(h.g, r, i), 138), t && t != i && (r == null ? Rc(h.f, null, t) : zd(h.g, r, t));
+ n.d = h;
+ }
+ a = u(mc(n.d, e), 138);
+ }
+ return a;
+ }
+ function aje(n, e, t, i, r, c) {
+ var o, f, h, l, a, d;
+ return o = null, l = i == (ur(), Au) ? c.c : c.d, h = jT(e), l.i == t ? (o = u(te(n.b, l), 10), o || (o = V7(l, u(k(t, (nn(), Nt)), 98), r, jke(l), null, l.n, l.o, h, e), H(o, (G(), rt), l), it(n.b, l, o))) : (o = V7((a = new pI(), d = K(Y(k(e, (nn(), Mo)))) / 2, s7(a, Yb, d), a), u(k(t, Nt), 98), r, i == Au ? -1 : 1, null, new Li(), new fn(0, 0), h, e), f = uve(o, t, i), H(o, (G(), rt), f), it(n.b, f, o)), u(k(e, (G(), Ac)), 21).Fc((or(), Ds)), Cw(u(k(e, (nn(), Nt)), 98)) ? H(e, Nt, (Ai(), Cv)) : H(e, Nt, (Ai(), jf)), o;
+ }
+ function dje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ le(e, "Orthogonal edge routing", 1), l = K(Y(k(n, (nn(), $g)))), t = K(Y(k(n, Dg))), i = K(Y(k(n, Ja))), g = new FD(0, t), C = 0, o = new Ii(n.b, 0), f = null, a = null, h = null, d = null;
+ do
+ a = o.b < o.d.gc() ? (ne(o.b < o.d.gc()), u(o.d.Xb(o.c = o.b++), 29)) : null, d = a ? a.a : null, f && (PZ(f, C), C += f.c.a), m = f ? C + i : C, v = FZ(g, n, h, d, m), r = !f || nE(h, (hM(), cy)), c = !a || nE(d, (hM(), cy)), v > 0 ? (p = (v - 1) * t, f && (p += i), a && (p += i), p < l && !r && !c && (p = l), C += p) : !r && !c && (C += l), f = a, h = d;
+ while (a);
+ n.f.a = C, ce(e);
+ }
+ function bL() {
+ bL = N;
+ var n;
+ b1n = new v9n(), qne = F(tn, q, 2, 0, 6, 1), Kne = rf(N2(33, 58), N2(1, 26)), Hne = rf(N2(97, 122), N2(65, 90)), f1n = N2(48, 57), Rne = rf(Kne, 0), _ne = rf(Hne, f1n), h1n = rf(rf(0, N2(1, 6)), N2(33, 38)), l1n = rf(rf(f1n, N2(65, 70)), N2(97, 102)), Gne = rf(Rne, FT("-_.!~*'()")), zne = rf(_ne, ST("-_.!~*'()")), FT(oGn), ST(oGn), rf(Gne, FT(";:@&=+$,")), rf(zne, ST(";:@&=+$,")), a1n = FT(":/?#"), d1n = ST(":/?#"), a9 = FT("/?#"), d9 = ST("/?#"), n = new hi(), n.a.zc("jar", n), n.a.zc("zip", n), n.a.zc("archive", n), tI = (Pn(), new Up(n));
+ }
+ function PRn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ if (H(e, (uc(), pv), 0), h = u(k(e, mP), 86), e.d.b == 0)
+ h ? (a = K(Y(k(h, O1))) + n.a + TX(h, e), H(e, O1, a)) : H(e, O1, 0);
+ else {
+ for (i = (c = _e(new W1(e).a.d, 0), new e2(c)); yj(i.a); )
+ t = u(Re(i.a), 188).c, PRn(n, t);
+ f = u(fE((o = _e(new W1(e).a.d, 0), new e2(o))), 86), d = u(Fce((r = _e(new W1(e).a.d, 0), new e2(r))), 86), l = (K(Y(k(d, O1))) + K(Y(k(f, O1)))) / 2, h ? (a = K(Y(k(h, O1))) + n.a + TX(h, e), H(e, O1, a), H(e, pv, K(Y(k(e, O1))) - l), yEe(n, e)) : H(e, O1, l);
+ }
+ }
+ function m4(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v;
+ f = 0, v = 0, h = fC(n.f, n.f.length), c = n.d, o = n.i, i = n.a, r = n.b;
+ do {
+ for (p = 0, a = new E(n.p); a.a < a.c.c.length; )
+ l = u(y(a), 10), g = XRn(n, l), t = !0, (n.q == (Zw(), ey) || n.q == ty) && (t = on(sn(g.b))), u(g.a, 19).a < 0 && t ? (++p, h = fC(n.f, n.f.length), n.d = n.d + u(g.a, 19).a, v += c - n.d, c = n.d + u(g.a, 19).a, o = n.i, i = $d(n.a), r = $d(n.b)) : (n.f = fC(h, h.length), n.d = c, n.a = (pe(i), i ? new lu(i) : o3(new E(i))), n.b = (pe(r), r ? new lu(r) : o3(new E(r))), n.i = o);
+ ++f, d = p != 0 && on(sn(e.Kb(new Pi(Q(v), Q(f)))));
+ } while (d);
+ }
+ function bje(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn;
+ return o = n.f, g = e.f, f = o == (w4(), Ep) || o == Vm, p = g == Ep || g == Vm, h = o == Ng || o == Qm, v = g == Ng || g == Qm, l = o == Ng || o == Ep, m = g == Ng || g == Ep, f && p ? n.f == Vm ? n : e : h && v ? n.f == Qm ? n : e : l && m ? (o == Ng ? (d = n, a = e) : (d = e, a = n), c = (C = t.j + t.f, S = d.e + i.f, $ = j.Math.max(C, S), O = $ - j.Math.min(t.j, d.e), x = d.d + i.g - t.i, x * O), r = (_ = t.i + t.g, U = a.d + i.g, en = j.Math.max(_, U), ln = en - j.Math.min(t.i, a.d), wn = a.e + i.f - t.j, ln * wn), c <= r ? n.f == Ng ? n : e : n.f == Ep ? n : e) : n;
+ }
+ function wje(n) {
+ var e, t, i, r, c, o, f, h, l, a, d;
+ for (a = n.e.a.c.length, o = new E(n.e.a); o.a < o.c.c.length; )
+ c = u(y(o), 121), c.j = !1;
+ for (n.i = F(be, Le, 25, a, 15, 1), n.g = F(be, Le, 25, a, 15, 1), n.n = new X(), r = 0, d = new X(), h = new E(n.e.a); h.a < h.c.c.length; )
+ f = u(y(h), 121), f.d = r++, f.b.a.c.length == 0 && W(n.n, f), Zt(d, f.g);
+ for (e = 0, i = new E(d); i.a < i.c.c.length; )
+ t = u(y(i), 213), t.c = e++, t.f = !1;
+ l = d.c.length, n.b == null || n.b.length < l ? (n.b = F(Ci, pr, 25, l, 15, 1), n.c = F(_u, wh, 25, l, 16, 1)) : qv(n.c), n.d = d, n.p = new UO(ob(n.d.c.length)), n.j = 1;
+ }
+ function gje(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (!(e.e.c.length <= 1)) {
+ for (n.f = e, n.d = u(k(n.f, (C7(), xrn)), 379), n.g = u(k(n.f, Rrn), 19).a, n.e = K(Y(k(n.f, Lrn))), n.c = K(Y(k(n.f, uS))), KCn(n.b), r = new E(n.f.c); r.a < r.c.c.length; )
+ i = u(y(r), 282), sZ(n.b, i.c, i, null), sZ(n.b, i.d, i, null);
+ for (f = n.f.e.c.length, n.a = fa(Ci, [q, pr], [104, 25], 15, [f, f], 2), l = new E(n.f.e); l.a < l.c.c.length; )
+ h = u(y(l), 144), Bye(n, h, n.a[h.b]);
+ for (n.i = fa(Ci, [q, pr], [104, 25], 15, [f, f], 2), c = 0; c < f; ++c)
+ for (o = 0; o < f; ++o)
+ t = n.a[c][o], a = 1 / (t * t), n.i[c][o] = a;
+ }
+ }
+ function D6(n) {
+ var e, t, i, r;
+ if (!(n.b == null || n.b.length <= 2) && !n.a) {
+ for (e = 0, r = 0; r < n.b.length; ) {
+ for (e != r ? (n.b[e] = n.b[r++], n.b[e + 1] = n.b[r++]) : r += 2, t = n.b[e + 1]; r < n.b.length && !(t + 1 < n.b[r]); )
+ if (t + 1 == n.b[r])
+ n.b[e + 1] = n.b[r + 1], t = n.b[e + 1], r += 2;
+ else if (t >= n.b[r + 1])
+ r += 2;
+ else if (t < n.b[r + 1])
+ n.b[e + 1] = n.b[r + 1], t = n.b[e + 1], r += 2;
+ else
+ throw T(new _r("Token#compactRanges(): Internel Error: [" + n.b[e] + "," + n.b[e + 1] + "] [" + n.b[r] + "," + n.b[r + 1] + "]"));
+ e += 2;
+ }
+ e != n.b.length && (i = F(be, Le, 25, e, 15, 1), pc(n.b, 0, i, 0, e), n.b = i), n.a = !0;
+ }
+ }
+ function pje(n, e) {
+ var t, i, r, c, o, f, h;
+ for (o = k2(n.a).Kc(); o.Ob(); ) {
+ if (c = u(o.Pb(), 17), c.b.c.length > 0)
+ for (i = new lu(u(ct(n.a, c), 21)), Pn(), wi(i, new Iq(e)), r = new Ii(c.b, 0); r.b < r.d.gc(); ) {
+ switch (t = (ne(r.b < r.d.gc()), u(r.d.Xb(r.c = r.b++), 70)), f = -1, u(k(t, (nn(), Jf)), 272).g) {
+ case 1:
+ f = i.c.length - 1;
+ break;
+ case 0:
+ f = K4e(i);
+ break;
+ case 2:
+ f = 0;
+ }
+ f != -1 && (h = (Ln(f, i.c.length), u(i.c[f], 243)), W(h.b.b, t), u(k(qi(h.b.c.i), (G(), Ac)), 21).Fc((or(), uv)), u(k(qi(h.b.c.i), Ac), 21).Fc(cv), Uu(r), H(t, vun, c));
+ }
+ Ki(c, null), Ti(c, null);
+ }
+ }
+ function vje(n, e) {
+ var t, i, r, c;
+ return t = new Qln(), i = u(es(Wc(new $n(null, new xn(n.f, 16)), t), ub(new Vg(), new Qg(), new Jg(), new Yg(), A(M(Nu, 1), z, 132, 0, [(hf(), _b), hs]))), 21), r = i.gc(), r = r == 2 ? 1 : 0, r == 1 && pd(p7(u(es(gt(i.Lc(), new Jln()), EOn(Aa(0), new FH())), 162).a, 2), 0) && (r = 0), i = u(es(Wc(new $n(null, new xn(e.f, 16)), t), ub(new Vg(), new Qg(), new Jg(), new Yg(), A(M(Nu, 1), z, 132, 0, [_b, hs]))), 21), c = i.gc(), c = c == 2 ? 1 : 0, c == 1 && pd(p7(u(es(gt(i.Lc(), new Yln()), EOn(Aa(0), new FH())), 162).a, 2), 0) && (c = 0), r < c ? -1 : r == c ? 0 : 1;
+ }
+ function mje(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p;
+ if (l = new X(), !ai(n, (G(), E_)))
+ return l;
+ for (i = u(k(n, E_), 15).Kc(); i.Ob(); )
+ e = u(i.Pb(), 10), Dje(e, n), l.c[l.c.length] = e;
+ for (c = new E(n.b); c.a < c.c.c.length; )
+ for (r = u(y(c), 29), f = new E(r.a); f.a < f.c.c.length; )
+ o = u(y(f), 10), o.k == (Qn(), Vt) && (h = u(k(o, qS), 10), h && (a = new gc(), Hr(a, o), d = u(k(o, ec), 61), si(a, d), g = u(un(h.j, 0), 11), p = new Id(), Ki(p, a), Ti(p, g)));
+ for (t = new E(l); t.a < t.c.c.length; )
+ e = u(y(t), 10), jr(e, u(un(n.b, n.b.c.length - 1), 29));
+ return l;
+ }
+ function IRn(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g;
+ for (e = nf(n), c = on(sn(hn(e, (nn(), Jb)))), a = 0, r = 0, l = new ie((!n.e && (n.e = new Fn(bi, n, 7, 4)), n.e)); l.e != l.i.gc(); )
+ h = u(oe(l), 79), f = Yd(h), o = f && c && on(sn(hn(h, Xa))), g = Ir(u(D((!h.c && (h.c = new Fn(he, h, 5, 8)), h.c), 0), 82)), f && o ? ++r : f && !o ? ++a : At(g) == e || g == e ? ++r : ++a;
+ for (i = new ie((!n.d && (n.d = new Fn(bi, n, 8, 5)), n.d)); i.e != i.i.gc(); )
+ t = u(oe(i), 79), f = Yd(t), o = f && c && on(sn(hn(t, Xa))), d = Ir(u(D((!t.b && (t.b = new Fn(he, t, 4, 7)), t.b), 0), 82)), f && o ? ++a : f && !o ? ++r : At(d) == e || d == e ? ++a : ++r;
+ return a - r;
+ }
+ function kje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p;
+ if (le(e, "Edge splitting", 1), n.b.c.length <= 2) {
+ ce(e);
+ return;
+ }
+ for (c = new Ii(n.b, 0), o = (ne(c.b < c.d.gc()), u(c.d.Xb(c.c = c.b++), 29)); c.b < c.d.gc(); )
+ for (r = o, o = (ne(c.b < c.d.gc()), u(c.d.Xb(c.c = c.b++), 29)), h = new E(r.a); h.a < h.c.c.length; )
+ for (f = u(y(h), 10), a = new E(f.j); a.a < a.c.c.length; )
+ for (l = u(y(a), 11), i = new E(l.g); i.a < i.c.c.length; )
+ t = u(y(i), 17), g = t.d, d = g.i.c, d != r && d != o && zNn(t, (p = new Hh(n), ta(p, (Qn(), pi)), H(p, (G(), rt), t), H(p, (nn(), Nt), (Ai(), Sc)), jr(p, o), p));
+ ce(e);
+ }
+ function ORn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p;
+ if (f = e.p != null && !e.b, f || le(e, RKn, 1), t = u(k(n, (G(), S_)), 15), o = 1 / t.gc(), e.n)
+ for (oa(e, "ELK Layered uses the following " + t.gc() + " modules:"), p = 0, g = t.Kc(); g.Ob(); )
+ a = u(g.Pb(), 51), i = (p < 10 ? "0" : "") + p++, oa(e, " Slot " + i + ": " + Q1(Du(a)));
+ for (d = t.Kc(); d.Ob(); )
+ a = u(d.Pb(), 51), a.pf(n, yc(e, o));
+ for (c = new E(n.b); c.a < c.c.c.length; )
+ r = u(y(c), 29), Zt(n.a, r.a), r.a.c = F(Zn, rn, 1, 0, 5, 1);
+ for (l = new E(n.a); l.a < l.c.c.length; )
+ h = u(y(l), 10), jr(h, null);
+ n.b.c = F(Zn, rn, 1, 0, 5, 1), f || ce(e);
+ }
+ function yje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en;
+ i = K(Y(k(e, (nn(), jsn)))), _ = u(k(e, xm), 19).a, g = 4, r = 3, U = 20 / _, p = !1, h = 0, o = nt;
+ do {
+ for (c = h != 1, d = h != 0, en = 0, C = n.a, $ = 0, x = C.length; $ < x; ++$)
+ v = C[$], v.f = null, oCe(n, v, c, d, i), en += j.Math.abs(v.a);
+ do
+ f = Zke(n, e);
+ while (f);
+ for (m = n.a, S = 0, O = m.length; S < O; ++S)
+ if (v = m[S], t = jW(v).a, t != 0)
+ for (a = new E(v.e); a.a < a.c.c.length; )
+ l = u(y(a), 10), l.n.b += t;
+ h == 0 || h == 1 ? (--g, g <= 0 && (en < o || -g > _) ? (h = 2, o = nt) : h == 0 ? (h = 1, o = en) : (h = 0, o = en)) : (p = en >= o || o - en < U, o = en, p && --r);
+ } while (!(p && r <= 0));
+ }
+ function wL(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v;
+ for (v = new we(), c = n.a.ec().Kc(); c.Ob(); )
+ i = u(c.Pb(), 168), it(v, i, t.Je(i));
+ for (o = (pe(n), n ? new lu(n) : o3(n.a.ec().Kc())), wi(o, new e5n(v)), f = jC(o), h = new sE(e), p = new we(), Rc(p.f, e, h); f.a.gc() != 0; ) {
+ for (l = null, a = null, d = null, r = f.a.ec().Kc(); r.Ob(); )
+ if (i = u(r.Pb(), 168), K(Y(Vr(Sr(v.f, i)))) <= xt) {
+ if (zu(p, i.a) && !zu(p, i.b)) {
+ a = i.b, d = i.a, l = i;
+ break;
+ }
+ if (zu(p, i.b) && !zu(p, i.a)) {
+ a = i.a, d = i.b, l = i;
+ break;
+ }
+ }
+ if (!l)
+ break;
+ g = new sE(a), W(u(Vr(Sr(p.f, d)), 221).a, g), Rc(p.f, a, g), f.a.Bc(l) != null;
+ }
+ return h;
+ }
+ function jje(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p;
+ for (le(t, "Depth-first cycle removal", 1), d = e.a, a = d.c.length, n.c = new X(), n.d = F(_u, wh, 25, a, 16, 1), n.a = F(_u, wh, 25, a, 16, 1), n.b = new X(), o = 0, l = new E(d); l.a < l.c.c.length; )
+ h = u(y(l), 10), h.p = o, j3(Lr(h)) && W(n.c, h), ++o;
+ for (p = new E(n.c); p.a < p.c.c.length; )
+ g = u(y(p), 10), uY(n, g);
+ for (c = 0; c < a; c++)
+ n.d[c] || (f = (Ln(c, d.c.length), u(d.c[c], 10)), uY(n, f));
+ for (r = new E(n.b); r.a < r.c.c.length; )
+ i = u(y(r), 17), t0(i, !0), H(e, (G(), Uk), (qn(), !0));
+ n.c = null, n.d = null, n.a = null, n.b = null, ce(t);
+ }
+ function Eje(n, e) {
+ var t, i, r, c, o, f, h;
+ for (n.a.c = F(Zn, rn, 1, 0, 5, 1), i = _e(e.b, 0); i.b != i.d.c; )
+ t = u(Re(i), 86), t.b.b == 0 && (H(t, (uc(), rw), (qn(), !0)), W(n.a, t));
+ switch (n.a.c.length) {
+ case 0:
+ r = new hF(0, e, "DUMMY_ROOT"), H(r, (uc(), rw), (qn(), !0)), H(r, gK, !0), Ke(e.b, r);
+ break;
+ case 1:
+ break;
+ default:
+ for (c = new hF(0, e, "SUPER_ROOT"), f = new E(n.a); f.a < f.c.c.length; )
+ o = u(y(f), 86), h = new UW(c, o), H(h, (uc(), gK), (qn(), !0)), Ke(c.a.a, h), Ke(c.d, h), Ke(o.b, h), H(o, rw, !1);
+ H(c, (uc(), rw), (qn(), !0)), H(c, gK, !0), Ke(e.b, c);
+ }
+ }
+ function Cje(n, e) {
+ eg();
+ var t, i, r, c, o, f;
+ return c = e.c - (n.c + n.b), r = n.c - (e.c + e.b), o = n.d - (e.d + e.a), t = e.d - (n.d + n.a), i = j.Math.max(r, c), f = j.Math.max(o, t), Yo(), mo(Gf), (j.Math.abs(i) <= Gf || i == 0 || isNaN(i) && isNaN(0) ? 0 : i < 0 ? -1 : i > 0 ? 1 : vd(isNaN(i), isNaN(0))) >= 0 ^ (mo(Gf), (j.Math.abs(f) <= Gf || f == 0 || isNaN(f) && isNaN(0) ? 0 : f < 0 ? -1 : f > 0 ? 1 : vd(isNaN(f), isNaN(0))) >= 0) ? j.Math.max(f, i) : (mo(Gf), (j.Math.abs(i) <= Gf || i == 0 || isNaN(i) && isNaN(0) ? 0 : i < 0 ? -1 : i > 0 ? 1 : vd(isNaN(i), isNaN(0))) > 0 ? j.Math.sqrt(f * f + i * i) : -j.Math.sqrt(f * f + i * i));
+ }
+ function Da(n, e) {
+ var t, i, r, c, o, f;
+ if (e) {
+ if (!n.a && (n.a = new lj()), n.e == 2) {
+ hj(n.a, e);
+ return;
+ }
+ if (e.e == 1) {
+ for (r = 0; r < e.em(); r++)
+ Da(n, e.am(r));
+ return;
+ }
+ if (f = n.a.a.c.length, f == 0) {
+ hj(n.a, e);
+ return;
+ }
+ if (o = u(Ad(n.a, f - 1), 117), !((o.e == 0 || o.e == 10) && (e.e == 0 || e.e == 10))) {
+ hj(n.a, e);
+ return;
+ }
+ c = e.e == 0 ? 2 : e.bm().length, o.e == 0 ? (t = new zv(), i = o._l(), i >= Ji ? dr(t, kQ(i)) : b3(t, i & Wt), o = new e$(10, null, 0), Zfe(n.a, o, f - 1)) : (t = (o.bm().length + c, new zv()), dr(t, o.bm())), e.e == 0 ? (i = e._l(), i >= Ji ? dr(t, kQ(i)) : b3(t, i & Wt)) : dr(t, e.bm()), u(o, 521).b = t.a;
+ }
+ }
+ function DRn(n) {
+ var e, t, i, r, c;
+ return n.g != null ? n.g : n.a < 32 ? (n.g = NCe(nu(n.f), zt(n.e)), n.g) : (r = jL((!n.c && (n.c = h7(n.f)), n.c), 0), n.e == 0 ? r : (e = (!n.c && (n.c = h7(n.f)), n.c).e < 0 ? 2 : 1, t = r.length, i = -n.e + t - e, c = new X1(), c.a += "" + r, n.e > 0 && i >= -6 ? i >= 0 ? P8(c, t - zt(n.e), String.fromCharCode(46)) : (c.a = Yu(c.a, 0, e - 1) + "0." + r8(c.a, e - 1), P8(c, e + 1, Ks(za, 0, -zt(i) - 1))) : (t - e >= 1 && (P8(c, e, String.fromCharCode(46)), ++t), P8(c, t, String.fromCharCode(69)), i > 0 && P8(c, ++t, String.fromCharCode(43)), P8(c, ++t, "" + O5(nu(i)))), n.g = c.a, n.g));
+ }
+ function Tje(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ if (!t.dc()) {
+ for (f = 0, g = 0, i = t.Kc(), v = u(i.Pb(), 19).a; f < e.f; ) {
+ if (f == v && (g = 0, i.Ob() ? v = u(i.Pb(), 19).a : v = e.f + 1), f != g) {
+ for (C = u(un(n.b, f), 29), p = u(un(n.b, g), 29), m = $d(C.a), d = new E(m); d.a < d.c.c.length; )
+ if (a = u(y(d), 10), vb(a, p.a.c.length, p), g == 0)
+ for (o = $d(Lr(a)), c = new E(o); c.a < c.c.c.length; )
+ r = u(y(c), 17), t0(r, !0), H(n, (G(), Uk), (qn(), !0)), BRn(n, r, 1);
+ }
+ ++g, ++f;
+ }
+ for (h = new Ii(n.b, 0); h.b < h.d.gc(); )
+ l = (ne(h.b < h.d.gc()), u(h.d.Xb(h.c = h.b++), 29)), l.a.c.length == 0 && Uu(h);
+ }
+ }
+ function Mje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ for (o = e.b, a = o.o, h = o.d, i = K(Y(xT(o, (nn(), Mo)))), r = K(Y(xT(o, jp))), l = K(Y(xT(o, z_))), f = new NI(), zU(f, h.d, h.c, h.a, h.b), g = K7e(e, i, r, l), S = new E(e.d); S.a < S.c.c.length; ) {
+ for (C = u(y(S), 101), v = C.f.a.ec().Kc(); v.Ob(); )
+ p = u(v.Pb(), 409), c = p.a, d = Dve(p), t = ($ = new ou(), fxn(p, p.c, g, $), r5e(p, d, g, $), fxn(p, p.d, g, $), $), t = n.Uf(p, d, t), Rs(c.a), Xi(c.a, t), Rt(new $n(null, new xn(t, 16)), new W7n(a, f));
+ m = C.i, m && (kve(C, m, g, r), O = new kr(m.g), zQ(a, f, O), st(O, m.j), zQ(a, f, O));
+ }
+ zU(h, f.d, f.c, f.a, f.b);
+ }
+ function Aje(n, e, t) {
+ var i, r, c;
+ if (r = u(k(e, (nn(), WS)), 275), r != (f4(), Cm)) {
+ switch (le(t, "Horizontal Compaction", 1), n.a = e, c = new LPn(), i = new xLn((c.d = e, c.c = u(k(c.d, Vh), 218), S7e(c), mEe(c), x7e(c), c.a)), Mie(i, n.b), u(k(e, Jun), 422).g) {
+ case 1:
+ n8n(i, new JIn(n.a));
+ break;
+ default:
+ n8n(i, (zW(), qzn));
+ }
+ switch (r.g) {
+ case 1:
+ E6(i);
+ break;
+ case 2:
+ E6(TM(i, (sr(), Ao)));
+ break;
+ case 3:
+ E6(Z9n(TM(E6(i), (sr(), Ao)), new gbn()));
+ break;
+ case 4:
+ E6(Z9n(TM(E6(i), (sr(), Ao)), new _5n(c)));
+ break;
+ case 5:
+ E6(Tie(i, WWn));
+ }
+ TM(i, (sr(), Ys)), i.e = !0, tCe(c), ce(t);
+ }
+ }
+ function Sje(n, e, t, i, r, c, o, f) {
+ var h, l, a, d;
+ switch (h = cf(A(M(uMe, 1), rn, 220, 0, [e, t, i, r])), d = null, n.b.g) {
+ case 1:
+ d = cf(A(M(Von, 1), rn, 526, 0, [new yI(), new mI(), new kI()]));
+ break;
+ case 0:
+ d = cf(A(M(Von, 1), rn, 526, 0, [new kI(), new mI(), new yI()]));
+ break;
+ case 2:
+ d = cf(A(M(Von, 1), rn, 526, 0, [new mI(), new yI(), new kI()]));
+ }
+ for (a = new E(d); a.a < a.c.c.length; )
+ l = u(y(a), 526), h.c.length > 1 && (h = l.mg(h, n.a, f));
+ return h.c.length == 1 ? u(un(h, h.c.length - 1), 220) : h.c.length == 2 ? bje((Ln(0, h.c.length), u(h.c[0], 220)), (Ln(1, h.c.length), u(h.c[1], 220)), o, c) : null;
+ }
+ function $Rn(n) {
+ var e, t, i, r, c, o;
+ for (Jc(n.a, new uan()), t = new E(n.a); t.a < t.c.c.length; )
+ e = u(y(t), 221), i = ji(Qr(u(n.b, 65).c), u(e.b, 65).c), SUn ? (o = u(n.b, 65).b, c = u(e.b, 65).b, j.Math.abs(i.a) >= j.Math.abs(i.b) ? (i.b = 0, c.d + c.a > o.d && c.d < o.d + o.a && AE(i, j.Math.max(o.c - (c.c + c.b), c.c - (o.c + o.b)))) : (i.a = 0, c.c + c.b > o.c && c.c < o.c + o.b && AE(i, j.Math.max(o.d - (c.d + c.a), c.d - (o.d + o.a))))) : AE(i, oRn(u(n.b, 65), u(e.b, 65))), r = j.Math.sqrt(i.a * i.a + i.b * i.b), r = rxn(gm, e, r, i), AE(i, r), yD(u(e.b, 65), i), Jc(e.a, new Aq(i)), u(gm.b, 65), BX(gm, vrn, e);
+ }
+ function Pje(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v;
+ for (n.f = new LI(), l = 0, r = 0, o = new E(n.e.b); o.a < o.c.c.length; )
+ for (c = u(y(o), 29), h = new E(c.a); h.a < h.c.c.length; ) {
+ for (f = u(y(h), 10), f.p = l++, i = new re(ue(ei(f).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 17), t.p = r++;
+ for (e = lL(f), g = new E(f.j); g.a < g.c.c.length; )
+ d = u(y(g), 11), e && (v = d.a.b, v != j.Math.floor(v) && (a = v - Fd(nu(j.Math.round(v))), d.a.b -= a)), p = d.n.b + d.a.b, p != j.Math.floor(p) && (a = p - Fd(nu(j.Math.round(p))), d.n.b -= a);
+ }
+ n.g = l, n.b = r, n.i = F(iMe, rn, 401, l, 0, 1), n.c = F(tMe, rn, 649, r, 0, 1), n.d.a.$b();
+ }
+ function de(n) {
+ var e, t, i, r, c, o, f, h, l;
+ if (n.ej())
+ if (h = n.fj(), n.i > 0) {
+ if (e = new az(n.i, n.g), t = n.i, c = t < 100 ? null : new V1(t), n.ij())
+ for (i = 0; i < n.i; ++i)
+ o = n.g[i], c = n.kj(o, c);
+ if (U5(n), r = t == 1 ? n.Zi(4, D(e, 0), null, 0, h) : n.Zi(6, e, null, -1, h), n.bj()) {
+ for (i = new w2(e); i.e != i.i.gc(); )
+ c = n.dj(UF(i), c);
+ c ? (c.Ei(r), c.Fi()) : n.$i(r);
+ } else
+ c ? (c.Ei(r), c.Fi()) : n.$i(r);
+ } else
+ U5(n), n.$i(n.Zi(6, (Pn(), cr), null, -1, h));
+ else if (n.bj())
+ if (n.i > 0) {
+ for (f = n.g, l = n.i, U5(n), c = l < 100 ? null : new V1(l), i = 0; i < l; ++i)
+ o = f[i], c = n.dj(o, c);
+ c && c.Fi();
+ } else
+ U5(n);
+ else
+ U5(n);
+ }
+ function SZ(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ for (DOn(this), t == (Od(), Bl) ? ci(this.r, n) : ci(this.w, n), a = xt, l = Qt, o = e.a.ec().Kc(); o.Ob(); )
+ r = u(o.Pb(), 46), f = u(r.a, 455), i = u(r.b, 17), h = i.c, h == n && (h = i.d), f == Bl ? ci(this.r, h) : ci(this.w, h), g = (J(), ru).Hc(h.j) ? K(Y(k(h, (G(), fv)))) : Gr(A(M(di, 1), q, 8, 0, [h.i.n, h.n, h.a])).b, a = j.Math.min(a, g), l = j.Math.max(l, g);
+ for (d = (J(), ru).Hc(n.j) ? K(Y(k(n, (G(), fv)))) : Gr(A(M(di, 1), q, 8, 0, [n.i.n, n.n, n.a])).b, Mxn(this, d, a, l), c = e.a.ec().Kc(); c.Ob(); )
+ r = u(c.Pb(), 46), Lxn(this, u(r.b, 17));
+ this.o = !1;
+ }
+ function Ije(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se;
+ return t = n.l & 8191, i = n.l >> 13 | (n.m & 15) << 9, r = n.m >> 4 & 8191, c = n.m >> 17 | (n.h & 255) << 5, o = (n.h & 1048320) >> 8, f = e.l & 8191, h = e.l >> 13 | (e.m & 15) << 9, l = e.m >> 4 & 8191, a = e.m >> 17 | (e.h & 255) << 5, d = (e.h & 1048320) >> 8, ln = t * f, wn = i * f, zn = r * f, Wn = c * f, se = o * f, h != 0 && (wn += t * h, zn += i * h, Wn += r * h, se += c * h), l != 0 && (zn += t * l, Wn += i * l, se += r * l), a != 0 && (Wn += t * a, se += i * a), d != 0 && (se += t * d), p = ln & Lu, v = (wn & 511) << 13, g = p + v, C = ln >> 22, S = wn >> 9, $ = (zn & 262143) << 4, O = (Wn & 31) << 17, m = C + S + $ + O, _ = zn >> 18, U = Wn >> 5, en = (se & 4095) << 8, x = _ + U + en, m += g >> 22, g &= Lu, x += m >> 22, m &= Lu, x &= Uh, Nc(g, m, x);
+ }
+ function FRn(n) {
+ var e, t, i, r, c, o, f;
+ if (f = u(un(n.j, 0), 11), f.g.c.length != 0 && f.e.c.length != 0)
+ throw T(new $r("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));
+ if (f.g.c.length != 0) {
+ for (c = xt, t = new E(f.g); t.a < t.c.c.length; )
+ e = u(y(t), 17), o = e.d.i, i = u(k(o, (nn(), nP)), 142), c = j.Math.min(c, o.n.a - i.b);
+ return new Zy(pe(c));
+ }
+ if (f.e.c.length != 0) {
+ for (r = Qt, t = new E(f.e); t.a < t.c.c.length; )
+ e = u(y(t), 17), o = e.c.i, i = u(k(o, (nn(), nP)), 142), r = j.Math.max(r, o.n.a + o.o.a + i.c);
+ return new Zy(pe(r));
+ }
+ return Rv(), Rv(), rR;
+ }
+ function xRn(n, e) {
+ var t, i, r, c, o, f, h;
+ if (n.Fk()) {
+ if (n.i > 4)
+ if (n.wj(e)) {
+ if (n.rk()) {
+ if (r = u(e, 49), i = r.Ug(), h = i == n.e && (n.Dk() ? r.Og(r.Vg(), n.zk()) == n.Ak() : -1 - r.Vg() == n.aj()), n.Ek() && !h && !i && r.Zg()) {
+ for (c = 0; c < n.i; ++c)
+ if (t = n.Gk(u(n.g[c], 56)), B(t) === B(e))
+ return !0;
+ }
+ return h;
+ } else if (n.Dk() && !n.Ck()) {
+ if (o = u(e, 56).ah(ir(u(n.ak(), 18))), B(o) === B(n.e))
+ return !0;
+ if (o == null || !u(o, 56).kh())
+ return !1;
+ }
+ } else
+ return !1;
+ if (f = s4(n, e), n.Ek() && !f) {
+ for (c = 0; c < n.i; ++c)
+ if (r = n.Gk(u(n.g[c], 56)), B(r) === B(e))
+ return !0;
+ }
+ return f;
+ } else
+ return s4(n, e);
+ }
+ function Oje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ for (a = new X(), g = new hi(), o = e.b, r = 0; r < o.c.length; r++) {
+ for (l = (Ln(r, o.c.length), u(o.c[r], 29)).a, a.c = F(Zn, rn, 1, 0, 5, 1), c = 0; c < l.c.length; c++)
+ f = n.a[r][c], f.p = c, f.k == (Qn(), Mc) && (a.c[a.c.length] = f), js(u(un(e.b, r), 29).a, c, f), f.j.c = F(Zn, rn, 1, 0, 5, 1), Zt(f.j, u(u(un(n.b, r), 15).Xb(c), 14)), p2(u(k(f, (nn(), Nt)), 98)) || H(f, Nt, (Ai(), id));
+ for (i = new E(a); i.a < i.c.c.length; )
+ t = u(y(i), 10), d = Z7e(t), g.a.zc(d, g), g.a.zc(t, g);
+ }
+ for (h = g.a.ec().Kc(); h.Ob(); )
+ f = u(h.Pb(), 10), Pn(), wi(f.j, (X3(), Fcn)), f.i = !0, dY(f);
+ }
+ function Dje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ if (a = u(k(n, (G(), ec)), 61), i = u(un(n.j, 0), 11), a == (J(), Kn) ? si(i, ae) : a == ae && si(i, Kn), u(k(e, (nn(), Va)), 174).Hc((Vu(), rd))) {
+ if (h = K(Y(k(n, bv))), l = K(Y(k(n, wv))), o = K(Y(k(n, ew))), f = u(k(e, Zb), 21), f.Hc((Tu(), Zh)))
+ for (t = l, d = n.o.a / 2 - i.n.a, c = new E(i.f); c.a < c.c.c.length; )
+ r = u(y(c), 70), r.n.b = t, r.n.a = d - r.o.a / 2, t += r.o.b + o;
+ else if (f.Hc(ql))
+ for (c = new E(i.f); c.a < c.c.c.length; )
+ r = u(y(c), 70), r.n.a = h + n.o.a - i.n.a;
+ nae(new tj((Vv(), new GD(e, !1, !1, new BH()))), new CE(null, n, !1));
+ }
+ }
+ function $je(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (e.c.length != 0) {
+ for (Pn(), mD(e.c, e.c.length, null), r = new E(e), i = u(y(r), 145); r.a < r.c.c.length; )
+ t = u(y(r), 145), tV(i.e.c, t.e.c) && !(HQ(Cjn(i.e).b, t.e.d) || HQ(Cjn(t.e).b, i.e.d)) ? i = (Zt(i.k, t.k), Zt(i.b, t.b), Zt(i.c, t.c), Xi(i.i, t.i), Zt(i.d, t.d), Zt(i.j, t.j), c = j.Math.min(i.e.c, t.e.c), o = j.Math.min(i.e.d, t.e.d), f = j.Math.max(i.e.c + i.e.b, t.e.c + t.e.b), h = f - c, l = j.Math.max(i.e.d + i.e.a, t.e.d + t.e.a), a = l - o, NEn(i.e, c, o, h, a), Xle(i.f, t.f), !i.a && (i.a = t.a), Zt(i.g, t.g), W(i.g, t), i) : (ZBn(n, i), i = t);
+ ZBn(n, i);
+ }
+ }
+ function Fje(n, e, t, i) {
+ var r, c, o, f, h, l;
+ if (f = n.j, f == (J(), Xr) && e != (Ai(), jf) && e != (Ai(), Hl) && (f = WBn(n, t), si(n, f), !(n.q ? n.q : (Pn(), Pn(), ph))._b((nn(), Yb)) && f != Xr && (n.n.a != 0 || n.n.b != 0) && H(n, Yb, Y3e(n, f))), e == (Ai(), jh)) {
+ switch (l = 0, f.g) {
+ case 1:
+ case 3:
+ c = n.i.o.a, c > 0 && (l = n.n.a / c);
+ break;
+ case 2:
+ case 4:
+ r = n.i.o.b, r > 0 && (l = n.n.b / r);
+ }
+ H(n, (G(), y0), l);
+ }
+ if (h = n.o, o = n.a, i)
+ o.a = i.a, o.b = i.b, n.d = !0;
+ else if (e != jf && e != Hl && f != Xr)
+ switch (f.g) {
+ case 1:
+ o.a = h.a / 2;
+ break;
+ case 2:
+ o.a = h.a, o.b = h.b / 2;
+ break;
+ case 3:
+ o.a = h.a / 2, o.b = h.b;
+ break;
+ case 4:
+ o.b = h.b / 2;
+ }
+ else
+ o.a = h.a / 2, o.b = h.b / 2;
+ }
+ function $6(n) {
+ var e, t, i, r, c, o, f, h, l, a;
+ if (n.ej())
+ if (a = n.Vi(), h = n.fj(), a > 0)
+ if (e = new CV(n.Gi()), t = a, c = t < 100 ? null : new V1(t), h8(n, t, e.g), r = t == 1 ? n.Zi(4, D(e, 0), null, 0, h) : n.Zi(6, e, null, -1, h), n.bj()) {
+ for (i = new ie(e); i.e != i.i.gc(); )
+ c = n.dj(oe(i), c);
+ c ? (c.Ei(r), c.Fi()) : n.$i(r);
+ } else
+ c ? (c.Ei(r), c.Fi()) : n.$i(r);
+ else
+ h8(n, n.Vi(), n.Wi()), n.$i(n.Zi(6, (Pn(), cr), null, -1, h));
+ else if (n.bj())
+ if (a = n.Vi(), a > 0) {
+ for (f = n.Wi(), l = a, h8(n, a, f), c = l < 100 ? null : new V1(l), i = 0; i < l; ++i)
+ o = f[i], c = n.dj(o, c);
+ c && c.Fi();
+ } else
+ h8(n, n.Vi(), n.Wi());
+ else
+ h8(n, n.Vi(), n.Wi());
+ }
+ function xje(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p;
+ for (f = new E(e); f.a < f.c.c.length; )
+ c = u(y(f), 233), c.e = null, c.c = 0;
+ for (h = null, o = new E(e); o.a < o.c.c.length; )
+ if (c = u(y(o), 233), d = c.d[0], !(t && d.k != (Qn(), ii))) {
+ for (p = u(k(d, (G(), gp)), 15).Kc(); p.Ob(); )
+ g = u(p.Pb(), 10), (!t || g.k == (Qn(), ii)) && ((!c.e && (c.e = new X()), c.e).Fc(n.b[g.c.p][g.p]), ++n.b[g.c.p][g.p].c);
+ if (!t && d.k == (Qn(), ii)) {
+ if (h)
+ for (a = u(ct(n.d, h), 21).Kc(); a.Ob(); )
+ for (l = u(a.Pb(), 10), r = u(ct(n.d, d), 21).Kc(); r.Ob(); )
+ i = u(r.Pb(), 10), Woe(n.b[l.c.p][l.p]).Fc(n.b[i.c.p][i.p]), ++n.b[i.c.p][i.p].c;
+ h = d;
+ }
+ }
+ }
+ function Lje(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (t = 0, a = new X(), f = new E(e); f.a < f.c.c.length; ) {
+ switch (o = u(y(f), 11), nQ(n.b, n.d[o.p]), a.c = F(Zn, rn, 1, 0, 5, 1), o.i.k.g) {
+ case 0:
+ i = u(k(o, (G(), Mu)), 10), Jc(i.j, new v6n(a));
+ break;
+ case 1:
+ uce(fF(gt(new $n(null, new xn(o.i.j, 16)), new m6n(o))), new k6n(a));
+ break;
+ case 3:
+ r = u(k(o, (G(), rt)), 11), W(a, new Pi(r, Q(o.e.c.length + o.g.c.length)));
+ }
+ for (l = new E(a); l.a < l.c.c.length; )
+ h = u(y(l), 46), c = MG(n, u(h.a, 11)), c > n.d[o.p] && (t += jX(n.b, c) * u(h.b, 19).a, hl(n.a, Q(c)));
+ for (; !Hv(n.a); )
+ ZX(n.b, u(y2(n.a), 19).a);
+ }
+ return t;
+ }
+ function Nje(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C;
+ for (d = new kr(u(hn(n, (nM(), qfn)), 8)), d.a = j.Math.max(d.a - t.b - t.c, 0), d.b = j.Math.max(d.b - t.d - t.a, 0), r = Y(hn(n, _fn)), (r == null || (_n(r), r <= 0)) && (r = 1.3), f = new X(), v = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); v.e != v.i.gc(); )
+ p = u(oe(v), 33), o = new ljn(p), f.c[f.c.length] = o;
+ switch (g = u(hn(n, qK), 311), g.g) {
+ case 3:
+ C = cye(f, e, d.a, d.b, (l = i, _n(r), l));
+ break;
+ case 1:
+ C = Oye(f, e, d.a, d.b, (a = i, _n(r), a));
+ break;
+ default:
+ C = _je(f, e, d.a, d.b, (h = i, _n(r), h));
+ }
+ c = new zC(C), m = kL(c, e, t, d.a, d.b, i, (_n(r), r)), i0(n, m.a, m.b, !1, !0);
+ }
+ function Bje(n, e) {
+ var t, i, r, c;
+ t = e.b, c = new lu(t.j), r = 0, i = t.j, i.c = F(Zn, rn, 1, 0, 5, 1), Md(u(ka(n.b, (J(), Kn), (Hd(), p0)), 15), t), r = j7(c, r, new xbn(), i), Md(u(ka(n.b, Kn, $l), 15), t), r = j7(c, r, new Fbn(), i), Md(u(ka(n.b, Kn, g0), 15), t), Md(u(ka(n.b, Vn, p0), 15), t), Md(u(ka(n.b, Vn, $l), 15), t), r = j7(c, r, new Lbn(), i), Md(u(ka(n.b, Vn, g0), 15), t), Md(u(ka(n.b, ae, p0), 15), t), r = j7(c, r, new Nbn(), i), Md(u(ka(n.b, ae, $l), 15), t), r = j7(c, r, new Bbn(), i), Md(u(ka(n.b, ae, g0), 15), t), Md(u(ka(n.b, Gn, p0), 15), t), r = j7(c, r, new Vbn(), i), Md(u(ka(n.b, Gn, $l), 15), t), Md(u(ka(n.b, Gn, g0), 15), t);
+ }
+ function Rje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (le(e, "Layer size calculation", 1), a = xt, l = Qt, r = !1, f = new E(n.b); f.a < f.c.c.length; )
+ if (o = u(y(f), 29), h = o.c, h.a = 0, h.b = 0, o.a.c.length != 0) {
+ for (r = !0, g = new E(o.a); g.a < g.c.c.length; )
+ d = u(y(g), 10), v = d.o, p = d.d, h.a = j.Math.max(h.a, v.a + p.b + p.c);
+ i = u(un(o.a, 0), 10), m = i.n.b - i.d.d, i.k == (Qn(), Vt) && (m -= u(k(n, (nn(), ny)), 142).d), c = u(un(o.a, o.a.c.length - 1), 10), t = c.n.b + c.o.b + c.d.a, c.k == Vt && (t += u(k(n, (nn(), ny)), 142).a), h.b = t - m, a = j.Math.min(a, m), l = j.Math.max(l, t);
+ }
+ r || (a = 0, l = 0), n.f.b = l - a, n.c.b -= a, ce(e);
+ }
+ function PZ(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ for (c = 0, o = 0, l = new E(n.a); l.a < l.c.c.length; )
+ f = u(y(l), 10), c = j.Math.max(c, f.d.b), o = j.Math.max(o, f.d.c);
+ for (h = new E(n.a); h.a < h.c.c.length; ) {
+ switch (f = u(y(h), 10), t = u(k(f, (nn(), Qf)), 248), t.g) {
+ case 1:
+ v = 0;
+ break;
+ case 2:
+ v = 1;
+ break;
+ case 5:
+ v = 0.5;
+ break;
+ default:
+ for (i = 0, d = 0, p = new E(f.j); p.a < p.c.c.length; )
+ g = u(y(p), 11), g.e.c.length == 0 || ++i, g.g.c.length == 0 || ++d;
+ i + d == 0 ? v = 0.5 : v = d / (i + d);
+ }
+ C = n.c, a = f.o.a, S = (C.a - a) * v, v > 0.5 ? S -= o * 2 * (v - 0.5) : v < 0.5 && (S += c * 2 * (0.5 - v)), r = f.d.b, S < r && (S = r), m = f.d.c, S > C.a - m - a && (S = C.a - m - a), f.n.a = e + S;
+ }
+ }
+ function _je(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C;
+ for (f = F(Ci, pr, 25, n.c.length, 15, 1), g = new GE(new I2n()), lJ(g, n), l = 0, m = new X(); g.b.c.length != 0; )
+ if (o = u(g.b.c.length == 0 ? null : un(g.b, 0), 157), l > 1 && au(o) * Gu(o) / 2 > f[0]) {
+ for (c = 0; c < m.c.length - 1 && au(o) * Gu(o) / 2 > f[c]; )
+ ++c;
+ v = new ch(m, 0, c + 1), d = new zC(v), a = au(o) / Gu(o), h = kL(d, e, new i2(), t, i, r, a), st(Lo(d.e), h), T3(o4(g, d)), p = new ch(m, c + 1, m.c.length), lJ(g, p), m.c = F(Zn, rn, 1, 0, 5, 1), l = 0, hCn(f, f.length, 0);
+ } else
+ C = g.b.c.length == 0 ? null : un(g.b, 0), C != null && J$(g, 0), l > 0 && (f[l] = f[l - 1]), f[l] += au(o) * Gu(o), ++l, m.c[m.c.length] = o;
+ return m;
+ }
+ function Kje(n) {
+ var e, t, i, r, c;
+ if (i = u(k(n, (nn(), Hc)), 163), i == (As(), Fl)) {
+ for (t = new re(ue(Lr(n).a.Kc(), new Mn())); Se(t); )
+ if (e = u(ve(t), 17), !ySn(e))
+ throw T(new pw(SN + E7(n) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."));
+ } else if (i == Wb) {
+ for (c = new re(ue(ei(n).a.Kc(), new Mn())); Se(c); )
+ if (r = u(ve(c), 17), !ySn(r))
+ throw T(new pw(SN + E7(n) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."));
+ }
+ }
+ function Hje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v;
+ for (le(e, "Label dummy removal", 1), i = K(Y(k(n, (nn(), jp)))), r = K(Y(k(n, ew))), l = u(k(n, ls), 103), h = new E(n.b); h.a < h.c.c.length; )
+ for (f = u(y(h), 29), d = new Ii(f.a, 0); d.b < d.d.gc(); )
+ a = (ne(d.b < d.d.gc()), u(d.d.Xb(d.c = d.b++), 10)), a.k == (Qn(), Qu) && (g = u(k(a, (G(), rt)), 17), v = K(Y(k(g, S1))), o = B(k(a, pp)) === B((cs(), _l)), t = new kr(a.n), o && (t.b += v + i), c = new fn(a.o.a, a.o.b - v - i), p = u(k(a, Vk), 15), l == (sr(), Jh) || l == Qh ? E7e(p, t, r, c, o, l) : rge(p, t, r, c), Zt(g.b, p), gL(a, B(k(n, Vh)) === B((Kh(), yy))), Uu(d));
+ ce(e);
+ }
+ function qje(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _;
+ for (h = new X(), c = new E(e.a); c.a < c.c.c.length; )
+ for (r = u(y(c), 10), f = new E(r.j); f.a < f.c.c.length; ) {
+ for (o = u(y(f), 11), a = null, O = xf(o.g), x = 0, _ = O.length; x < _; ++x)
+ $ = O[x], _3($.d.i, t) || (S = dL(n, e, t, $, $.c, (ur(), Lc), a), S != a && (h.c[h.c.length] = S), S.c && (a = S));
+ for (l = null, v = xf(o.e), m = 0, C = v.length; m < C; ++m)
+ p = v[m], _3(p.c.i, t) || (S = dL(n, e, t, p, p.d, (ur(), Au), l), S != l && (h.c[h.c.length] = S), S.c && (l = S));
+ }
+ for (g = new E(h); g.a < g.c.c.length; )
+ d = u(y(g), 441), xr(e.a, d.a, 0) != -1 || W(e.a, d.a), d.c && (i.c[i.c.length] = d);
+ }
+ function Gje(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ for (le(t, "Interactive cycle breaking", 1), d = new X(), p = new E(e.a); p.a < p.c.c.length; )
+ for (g = u(y(p), 10), g.p = 1, v = MJ(g).a, a = Wd(g, (ur(), Lc)).Kc(); a.Ob(); )
+ for (l = u(a.Pb(), 11), c = new E(l.g); c.a < c.c.c.length; )
+ i = u(y(c), 17), m = i.d.i, m != g && (C = MJ(m).a, C < v && (d.c[d.c.length] = i));
+ for (o = new E(d); o.a < o.c.c.length; )
+ i = u(y(o), 17), t0(i, !0);
+ for (d.c = F(Zn, rn, 1, 0, 5, 1), h = new E(e.a); h.a < h.c.c.length; )
+ f = u(y(h), 10), f.p > 0 && Kxn(n, f, d);
+ for (r = new E(d); r.a < r.c.c.length; )
+ i = u(y(r), 17), t0(i, !0);
+ d.c = F(Zn, rn, 1, 0, 5, 1), ce(t);
+ }
+ function LRn(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ return l = "", e.length == 0 ? n.de(JZ, SL, -1, -1) : (a = kb(e), An(a.substr(0, 3), "at ") && (a = a.substr(3)), a = a.replace(/\[.*?\]/g, ""), o = a.indexOf("("), o == -1 ? (o = a.indexOf("@"), o == -1 ? (l = a, a = "") : (l = kb(a.substr(o + 1)), a = kb(a.substr(0, o)))) : (t = a.indexOf(")", o), l = a.substr(o + 1, t - (o + 1)), a = kb(a.substr(0, o))), o = Pf(a, eu(46)), o != -1 && (a = a.substr(o + 1)), (a.length == 0 || An(a, "Anonymous function")) && (a = SL), f = aE(l, eu(58)), r = MU(l, eu(58), f - 1), h = -1, i = -1, c = JZ, f != -1 && r != -1 && (c = l.substr(0, r), h = ijn(l.substr(r + 1, f - (r + 1))), i = ijn(l.substr(f + 1))), n.de(c, a, h, i));
+ }
+ function IZ(n, e, t) {
+ var i, r, c, o, f, h;
+ if (e.l == 0 && e.m == 0 && e.h == 0)
+ throw T(new bj("divide by zero"));
+ if (n.l == 0 && n.m == 0 && n.h == 0)
+ return t && (Pl = Nc(0, 0, 0)), Nc(0, 0, 0);
+ if (e.h == tk && e.m == 0 && e.l == 0)
+ return c2e(n, t);
+ if (h = !1, e.h >> 19 && (e = G3(e), h = !h), o = K9e(e), c = !1, r = !1, i = !1, n.h == tk && n.m == 0 && n.l == 0)
+ if (r = !0, c = !0, o == -1)
+ n = tyn((P3(), win)), i = !0, h = !h;
+ else
+ return f = SY(n, o), h && sF(f), t && (Pl = Nc(0, 0, 0)), f;
+ else
+ n.h >> 19 && (c = !0, n = G3(n), i = !0, h = !h);
+ return o != -1 ? Swe(n, o, h, c, t) : mJ(n, e) < 0 ? (t && (c ? Pl = G3(n) : Pl = Nc(n.l, n.m, n.h)), Nc(0, 0, 0)) : Dke(i ? n : Nc(n.l, n.m, n.h), e, h, c, r, t);
+ }
+ function EM(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v;
+ if (n.e && n.c.c < n.f)
+ throw T(new $r("Expected " + n.f + " phases to be configured; only found " + n.c.c));
+ for (a = u(xo(n.g), 9), p = nh(n.f), c = a, f = 0, l = c.length; f < l; ++f)
+ i = c[f], d = u(q8(n, i.g), 246), d ? W(p, u(t$n(n, d), 123)) : p.c[p.c.length] = null;
+ for (v = new li(), Rt(gt(Wc(gt(new $n(null, new xn(p, 16)), new Ygn()), new _6n(e)), new Zgn()), new K6n(v)), rs(v, n.a), t = new X(), r = a, o = 0, h = r.length; o < h; ++o)
+ i = r[o], Zt(t, KOn(n, rC(u(q8(v, i.g), 20)))), g = u(un(p, i.g), 123), g && (t.c[t.c.length] = g);
+ return Zt(t, KOn(n, rC(u(q8(v, a[a.length - 1].g + 1), 20)))), t;
+ }
+ function zje(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ for (le(t, "Model order cycle breaking", 1), n.a = 0, n.b = 0, p = new X(), a = e.a.c.length, l = new E(e.a); l.a < l.c.c.length; )
+ h = u(y(l), 10), ai(h, (G(), bc)) && (a = j.Math.max(a, u(k(h, bc), 19).a + 1));
+ for (m = new E(e.a); m.a < m.c.c.length; )
+ for (v = u(y(m), 10), o = Jxn(n, v, a), g = Wd(v, (ur(), Lc)).Kc(); g.Ob(); )
+ for (d = u(g.Pb(), 11), c = new E(d.g); c.a < c.c.c.length; )
+ i = u(y(c), 17), C = i.d.i, f = Jxn(n, C, a), f < o && (p.c[p.c.length] = i);
+ for (r = new E(p); r.a < r.c.c.length; )
+ i = u(y(r), 17), t0(i, !0), H(e, (G(), Uk), (qn(), !0));
+ p.c = F(Zn, rn, 1, 0, 5, 1), ce(t);
+ }
+ function Uje(n, e) {
+ var t, i, r, c, o, f, h;
+ if (!(n.g > e.f || e.g > n.f)) {
+ for (t = 0, i = 0, o = n.w.a.ec().Kc(); o.Ob(); )
+ r = u(o.Pb(), 11), mF(Gr(A(M(di, 1), q, 8, 0, [r.i.n, r.n, r.a])).b, e.g, e.f) && ++t;
+ for (f = n.r.a.ec().Kc(); f.Ob(); )
+ r = u(f.Pb(), 11), mF(Gr(A(M(di, 1), q, 8, 0, [r.i.n, r.n, r.a])).b, e.g, e.f) && --t;
+ for (h = e.w.a.ec().Kc(); h.Ob(); )
+ r = u(h.Pb(), 11), mF(Gr(A(M(di, 1), q, 8, 0, [r.i.n, r.n, r.a])).b, n.g, n.f) && ++i;
+ for (c = e.r.a.ec().Kc(); c.Ob(); )
+ r = u(c.Pb(), 11), mF(Gr(A(M(di, 1), q, 8, 0, [r.i.n, r.n, r.a])).b, n.g, n.f) && --i;
+ t < i ? new MC(n, e, i - t) : i < t ? new MC(e, n, t - i) : (new MC(e, n, 0), new MC(n, e, 0));
+ }
+ }
+ function Wje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $;
+ for (l = e.c, r = Ez(n.e), d = If(o8(Qr(jz(n.e)), n.d * n.a, n.c * n.b), -0.5), t = r.a - d.a, i = r.b - d.b, o = e.a, t = o.c - t, i = o.d - i, h = new E(l); h.a < h.c.c.length; ) {
+ switch (f = u(y(h), 395), g = f.b, p = t + g.a, C = i + g.b, v = zt(p / n.a), S = zt(C / n.b), c = f.a, c.g) {
+ case 0:
+ a = (K2(), $k);
+ break;
+ case 1:
+ a = (K2(), Dk);
+ break;
+ case 2:
+ a = (K2(), Fk);
+ break;
+ default:
+ a = (K2(), xk);
+ }
+ c.a ? ($ = zt((C + f.c) / n.b), W(n.f, new FU(a, Q(S), Q($))), c == (d6(), Nk) ? z3(n, 0, S, v, $) : z3(n, v, S, n.d - 1, $)) : (m = zt((p + f.c) / n.a), W(n.f, new FU(a, Q(v), Q(m))), c == (d6(), Lk) ? z3(n, v, 0, m, S) : z3(n, v, S, m, n.c - 1));
+ }
+ }
+ function Xje(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ for (g = new X(), r = new X(), m = null, f = e.Kc(); f.Ob(); )
+ o = u(f.Pb(), 19), c = new s6n(o.a), r.c[r.c.length] = c, m && (c.d = m, m.e = c), m = c;
+ for (O = yye(n), a = 0; a < r.c.length; ++a) {
+ for (p = null, C = xX((Ln(0, r.c.length), u(r.c[0], 652))), t = null, i = xt, d = 1; d < n.b.c.length; ++d)
+ S = C ? j.Math.abs(C.b - d) : j.Math.abs(d - p.b) + 1, v = p ? j.Math.abs(d - p.b) : S + 1, v < S ? (l = p, h = v) : (l = C, h = S), $ = (x = K(Y(k(n, (nn(), xsn)))), O[d] + j.Math.pow(h, x)), $ < i && (i = $, t = l, t.c = d), C && d == C.b && (p = C, C = Ufe(C));
+ t && (W(g, Q(t.c)), t.a = !0, xge(t));
+ }
+ return Pn(), mD(g.c, g.c.length, null), g;
+ }
+ function Vje(n) {
+ var e, t, i, r, c, o, f, h, l, a;
+ for (e = new EI(), t = new EI(), l = An(Ek, (r = A6(n.b, xe), r ? Te(Ko((!r.b && (r.b = new qu((Sn(), Zi), tc, r)), r.b), Ws)) : null)), h = 0; h < n.i; ++h)
+ f = u(n.g[h], 170), I(f, 99) ? (o = u(f, 18), o.Bb & sc ? (!(o.Bb & Nf) || !l && (c = A6(o, xe), (c ? Te(Ko((!c.b && (c.b = new qu((Sn(), Zi), tc, c)), c.b), vA)) : null) == null)) && me(e, o) : (a = ir(o), a && a.Bb & sc || (!(o.Bb & Nf) || !l && (i = A6(o, xe), (i ? Te(Ko((!i.b && (i.b = new qu((Sn(), Zi), tc, i)), i.b), vA)) : null) == null)) && me(t, o))) : (er(), u(f, 66).Oj() && (f.Jj() || (me(e, f), me(t, f))));
+ ab(e), ab(t), n.a = u(e.g, 247), u(t.g, 247);
+ }
+ function Qje(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ for (l = F5e(e), m = u(k(e, (nn(), Om)), 314), m != (F2(), ap) && $i(l, new jan()), C = u(k(e, Jk), 292), $i(l, new h5n(C)), v = 0, a = new X(), c = new B5(l); c.a != c.b; )
+ r = u(vT(c), 37), VRn(n.c, r), g = u(k(r, (G(), S_)), 15), v += g.gc(), i = g.Kc(), W(a, new Pi(r, i));
+ for (le(t, "Recursive hierarchical layout", v), p = u(u(un(a, a.c.length - 1), 46).b, 47); p.Ob(); )
+ for (h = new E(a); h.a < h.c.c.length; )
+ for (f = u(y(h), 46), g = u(f.b, 47), o = u(f.a, 37); g.Ob(); )
+ if (d = u(g.Pb(), 51), I(d, 507)) {
+ if (o.e)
+ break;
+ d.pf(o, yc(t, 1));
+ break;
+ } else
+ d.pf(o, yc(t, 1));
+ ce(t);
+ }
+ function NRn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ if (h = e.length - 1, f = (Me(h, e.length), e.charCodeAt(h)), f == 93) {
+ if (o = Pf(e, eu(91)), o >= 0)
+ return r = Jge(n, e.substr(1, o - 1)), a = e.substr(o + 1, h - (o + 1)), UCe(n, a, r);
+ } else {
+ if (t = -1, kin == null && (kin = new RegExp("\\d")), kin.test(String.fromCharCode(f)) && (t = MU(e, eu(46), h - 1), t >= 0)) {
+ i = u(T$(n, dIn(n, e.substr(1, t - 1)), !1), 58), l = 0;
+ try {
+ l = us(e.substr(t + 1), Bi, nt);
+ } catch (g) {
+ throw g = jt(g), I(g, 127) ? (c = g, T(new xC(c))) : T(g);
+ }
+ if (l < i.gc())
+ return d = i.Xb(l), I(d, 72) && (d = u(d, 72).dd()), u(d, 56);
+ }
+ if (t < 0)
+ return u(T$(n, dIn(n, e.substr(1)), !1), 56);
+ }
+ return null;
+ }
+ function rg(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ if (yt(e, t) >= 0)
+ return t;
+ switch (Pd(Er(n, t))) {
+ case 2: {
+ if (An("", w1(n, t.Hj()).ne())) {
+ if (h = E8(Er(n, t)), f = p3(Er(n, t)), a = xY(n, e, h, f), a)
+ return a;
+ for (r = oZ(n, e), o = 0, d = r.gc(); o < d; ++o)
+ if (a = u(r.Xb(o), 170), qY(PD(Er(n, a)), h))
+ return a;
+ }
+ return null;
+ }
+ case 4: {
+ if (An("", w1(n, t.Hj()).ne())) {
+ for (i = t; i; i = Wle(Er(n, i)))
+ if (l = E8(Er(n, i)), f = p3(Er(n, i)), a = LY(n, e, l, f), a)
+ return a;
+ if (h = E8(Er(n, t)), An(Ha, h))
+ return EJ(n, e);
+ for (c = Jx(n, e), o = 0, d = c.gc(); o < d; ++o)
+ if (a = u(c.Xb(o), 170), qY(PD(Er(n, a)), h))
+ return a;
+ }
+ return null;
+ }
+ default:
+ return null;
+ }
+ }
+ function Jje(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ if (t.gc() == 0)
+ return !1;
+ if (f = (er(), u(e, 66).Oj()), c = f ? t : new Nd(t.gc()), Gh(n.e, e)) {
+ if (e.hi())
+ for (l = t.Kc(); l.Ob(); )
+ h = l.Pb(), vM(n, e, h, I(e, 99) && (u(e, 18).Bb & Ji) != 0) || (r = uh(e, h), c.Hc(r) || c.Fc(r));
+ else if (!f)
+ for (l = t.Kc(); l.Ob(); )
+ h = l.Pb(), r = uh(e, h), c.Fc(r);
+ } else {
+ if (t.gc() > 1)
+ throw T(new Hn(Mk));
+ for (a = _c(n.e.Tg(), e), i = u(n.g, 119), o = 0; o < n.i; ++o)
+ if (r = i[o], a.rl(r.ak())) {
+ if (t.Hc(f ? r : r.dd()))
+ return !1;
+ for (l = t.Kc(); l.Ob(); )
+ h = l.Pb(), u(Gw(n, o, f ? u(h, 72) : uh(e, h)), 72);
+ return !0;
+ }
+ f || (r = uh(e, t.Kc().Pb()), c.Fc(r));
+ }
+ return $t(n, c);
+ }
+ function Yje(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (a = new Ct(), f = (l = new Th(n.c).a.vc().Kc(), new N0(l)); f.a.Ob(); )
+ c = (r = u(f.a.Pb(), 42), u(r.dd(), 458)), c.b == 0 && Ht(a, c, a.c.b, a.c);
+ for (; a.b != 0; )
+ for (c = u(a.b == 0 ? null : (ne(a.b != 0), Cs(a, a.a.a)), 458), c.a == null && (c.a = 0), i = new E(c.d); i.a < i.c.c.length; )
+ t = u(y(i), 654), t.b.a == null ? t.b.a = K(c.a) + t.a : e.o == (ef(), Ya) ? t.b.a = j.Math.min(K(t.b.a), K(c.a) + t.a) : t.b.a = j.Math.max(K(t.b.a), K(c.a) + t.a), --t.b.b, t.b.b == 0 && Ke(a, t.b);
+ for (o = (h = new Th(n.c).a.vc().Kc(), new N0(h)); o.a.Ob(); )
+ c = (r = u(o.a.Pb(), 42), u(r.dd(), 458)), e.i[c.c.p] = c.a;
+ }
+ function uc() {
+ uc = N, Wm = new kt(Ann), new ri("DEPTH", Q(0)), vP = new ri("FAN", Q(0)), JJn = new ri(IHn, Q(0)), rw = new ri("ROOT", (qn(), !1)), pK = new ri("LEFTNEIGHBOR", null), YJn = new ri("RIGHTNEIGHBOR", null), mP = new ri("LEFTSIBLING", null), vK = new ri("RIGHTSIBLING", null), gK = new ri("DUMMY", !1), new ri("LEVEL", Q(0)), gon = new ri("REMOVABLE_EDGES", new Ct()), mK = new ri("XCOOR", Q(0)), pon = new ri("YCOOR", Q(0)), kP = new ri("LEVELHEIGHT", 0), Um = new ri("ID", ""), yP = new ri("POSITION", Q(0)), O1 = new ri("PRELIM", 0), pv = new ri("MODIFIER", 0), zm = new kt(KKn), sy = new kt(HKn);
+ }
+ function Zje(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v;
+ for (a = t + e.c.c.a, p = new E(e.j); p.a < p.c.c.length; ) {
+ if (g = u(y(p), 11), r = Gr(A(M(di, 1), q, 8, 0, [g.i.n, g.n, g.a])), e.k == (Qn(), Mc) && (f = u(k(g, (G(), rt)), 11), r.a = Gr(A(M(di, 1), q, 8, 0, [f.i.n, f.n, f.a])).a, e.n.a = r.a), o = new fn(0, r.b), g.j == (J(), Vn))
+ o.a = a;
+ else if (g.j == Gn)
+ o.a = t;
+ else
+ continue;
+ if (v = j.Math.abs(r.a - o.a), !(v <= i && !i4e(e)))
+ for (c = g.g.c.length + g.e.c.length > 1, l = new uf(g.b); Kr(l.a) || Kr(l.b); )
+ h = u(Kr(l.a) ? y(l.a) : y(l.b), 17), d = h.c == g ? h.d : h.c, j.Math.abs(Gr(A(M(di, 1), q, 8, 0, [d.i.n, d.n, d.a])).b - o.b) > 1 && z8e(n, h, o, c, g);
+ }
+ }
+ function nEe(n) {
+ var e, t, i, r, c, o;
+ if (r = new Ii(n.e, 0), i = new Ii(n.a, 0), n.d)
+ for (t = 0; t < n.b; t++)
+ ne(r.b < r.d.gc()), r.d.Xb(r.c = r.b++);
+ else
+ for (t = 0; t < n.b - 1; t++)
+ ne(r.b < r.d.gc()), r.d.Xb(r.c = r.b++), Uu(r);
+ for (e = K((ne(r.b < r.d.gc()), Y(r.d.Xb(r.c = r.b++)))); n.f - e > oB; ) {
+ for (c = e, o = 0; j.Math.abs(e - c) < oB; )
+ ++o, e = K((ne(r.b < r.d.gc()), Y(r.d.Xb(r.c = r.b++)))), ne(i.b < i.d.gc()), i.d.Xb(i.c = i.b++);
+ o < n.b && (ne(r.b > 0), r.a.Xb(r.c = --r.b), pye(n, n.b - o, c, i, r), ne(r.b < r.d.gc()), r.d.Xb(r.c = r.b++)), ne(i.b > 0), i.a.Xb(i.c = --i.b);
+ }
+ if (!n.d)
+ for (t = 0; t < n.b - 1; t++)
+ ne(r.b < r.d.gc()), r.d.Xb(r.c = r.b++), Uu(r);
+ n.d = !0, n.c = !0;
+ }
+ function ht() {
+ ht = N, $1n = (jG(), fc).b, dee = u(D(R(fc.b), 0), 34), cd = u(D(R(fc.b), 1), 34), aee = u(D(R(fc.b), 2), 34), Gg = fc.bb, u(D(R(fc.bb), 0), 34), u(D(R(fc.bb), 1), 34), zg = fc.fb, w9 = u(D(R(fc.fb), 0), 34), u(D(R(fc.fb), 1), 34), u(D(R(fc.fb), 2), 18), $0 = fc.qb, Tee = u(D(R(fc.qb), 0), 34), u(D(R(fc.qb), 1), 18), u(D(R(fc.qb), 2), 18), Ry = u(D(R(fc.qb), 3), 34), _y = u(D(R(fc.qb), 4), 34), p9 = u(D(R(fc.qb), 6), 34), g9 = u(D(R(fc.qb), 5), 18), bee = fc.j, wee = fc.k, gee = fc.q, pee = fc.w, vee = fc.B, mee = fc.A, kee = fc.C, yee = fc.D, jee = fc._, Eee = fc.cb, Cee = fc.hb;
+ }
+ function eEe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p;
+ n.c = 0, n.b = 0, i = 2 * e.c.a.c.length + 1;
+ n:
+ for (d = t.Kc(); d.Ob(); ) {
+ if (a = u(d.Pb(), 11), f = a.j == (J(), Kn) || a.j == ae, p = 0, f) {
+ if (g = u(k(a, (G(), Mu)), 10), !g)
+ continue;
+ p += $7e(n, i, a, g);
+ } else {
+ for (l = new E(a.g); l.a < l.c.c.length; )
+ if (h = u(y(l), 17), r = h.d, r.i.c == e.c) {
+ W(n.a, a);
+ continue n;
+ } else
+ p += n.g[r.p];
+ for (o = new E(a.e); o.a < o.c.c.length; )
+ if (c = u(y(o), 17), r = c.c, r.i.c == e.c) {
+ W(n.a, a);
+ continue n;
+ } else
+ p -= n.g[r.p];
+ }
+ a.e.c.length + a.g.c.length > 0 ? (n.f[a.p] = p / (a.e.c.length + a.g.c.length), n.c = j.Math.min(n.c, n.f[a.p]), n.b = j.Math.max(n.b, n.f[a.p])) : f && (n.f[a.p] = p);
+ }
+ }
+ function tEe(n) {
+ n.b = null, n.bb = null, n.fb = null, n.qb = null, n.a = null, n.c = null, n.d = null, n.e = null, n.f = null, n.n = null, n.M = null, n.L = null, n.Q = null, n.R = null, n.K = null, n.db = null, n.eb = null, n.g = null, n.i = null, n.j = null, n.k = null, n.gb = null, n.o = null, n.p = null, n.q = null, n.r = null, n.$ = null, n.ib = null, n.S = null, n.T = null, n.t = null, n.s = null, n.u = null, n.v = null, n.w = null, n.B = null, n.A = null, n.C = null, n.D = null, n.F = null, n.G = null, n.H = null, n.I = null, n.J = null, n.P = null, n.Z = null, n.U = null, n.V = null, n.W = null, n.X = null, n.Y = null, n._ = null, n.ab = null, n.cb = null, n.hb = null, n.nb = null, n.lb = null, n.mb = null, n.ob = null, n.pb = null, n.jb = null, n.kb = null, n.N = !1, n.O = !1;
+ }
+ function iEe(n, e, t) {
+ var i, r, c, o;
+ for (le(t, "Graph transformation (" + n.a + ")", 1), o = $d(e.a), c = new E(e.b); c.a < c.c.c.length; )
+ r = u(y(c), 29), Zt(o, r.a);
+ if (i = u(k(e, (nn(), tsn)), 419), i == (V8(), $S))
+ switch (u(k(e, ls), 103).g) {
+ case 2:
+ H5(e, o);
+ break;
+ case 3:
+ h6(e, o);
+ break;
+ case 4:
+ n.a == (N3(), _k) ? (h6(e, o), w$(e, o)) : (w$(e, o), h6(e, o));
+ }
+ else if (n.a == (N3(), _k))
+ switch (u(k(e, ls), 103).g) {
+ case 2:
+ H5(e, o), w$(e, o);
+ break;
+ case 3:
+ h6(e, o), H5(e, o);
+ break;
+ case 4:
+ H5(e, o), h6(e, o);
+ }
+ else
+ switch (u(k(e, ls), 103).g) {
+ case 2:
+ H5(e, o), w$(e, o);
+ break;
+ case 3:
+ H5(e, o), h6(e, o);
+ break;
+ case 4:
+ h6(e, o), H5(e, o);
+ }
+ ce(t);
+ }
+ function rEe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (l = new Ah(), a = new Ah(), v = new Ah(), m = new Ah(), h = K(Y(k(e, (nn(), M0)))), c = K(Y(k(e, Mo))), f = new E(t); f.a < f.c.c.length; )
+ if (o = u(y(f), 10), d = u(k(o, (G(), ec)), 61), d == (J(), Kn))
+ for (a.a.zc(o, a), r = new re(ue(Lr(o).a.Kc(), new Mn())); Se(r); )
+ i = u(ve(r), 17), ci(l, i.c.i);
+ else if (d == ae)
+ for (m.a.zc(o, m), r = new re(ue(Lr(o).a.Kc(), new Mn())); Se(r); )
+ i = u(ve(r), 17), ci(v, i.c.i);
+ l.a.gc() != 0 && (g = new FD(2, c), p = FZ(g, e, l, a, -h - e.c.b), p > 0 && (n.a = h + (p - 1) * c, e.c.b += n.a, e.f.b += n.a)), v.a.gc() != 0 && (g = new FD(1, c), p = FZ(g, e, v, m, e.f.b + h - e.c.b), p > 0 && (e.f.b += h + (p - 1) * c));
+ }
+ function k4(n, e) {
+ var t, i, r, c;
+ c = n.F, e == null ? (n.F = null, W3(n, null)) : (n.F = (_n(e), e), i = Pf(e, eu(60)), i != -1 ? (r = e.substr(0, i), Pf(e, eu(46)) == -1 && !An(r, X2) && !An(r, cm) && !An(r, EA) && !An(r, um) && !An(r, sm) && !An(r, om) && !An(r, fm) && !An(r, hm) && (r = jGn), t = aE(e, eu(62)), t != -1 && (r += "" + e.substr(t + 1)), W3(n, r)) : (r = e, Pf(e, eu(46)) == -1 && (i = Pf(e, eu(91)), i != -1 && (r = e.substr(0, i)), !An(r, X2) && !An(r, cm) && !An(r, EA) && !An(r, um) && !An(r, sm) && !An(r, om) && !An(r, fm) && !An(r, hm) ? (r = jGn, i != -1 && (r += "" + e.substr(i))) : r = e), W3(n, r), r == e && (n.F = n.D))), n.Db & 4 && !(n.Db & 1) && et(n, new gi(n, 1, 5, c, e));
+ }
+ function cEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ if (m = e.b.c.length, !(m < 3)) {
+ for (p = F(be, Le, 25, m, 15, 1), d = 0, a = new E(e.b); a.a < a.c.c.length; )
+ l = u(y(a), 29), p[d++] = l.a.c.length;
+ for (g = new Ii(e.b, 2), i = 1; i < m - 1; i++)
+ for (t = (ne(g.b < g.d.gc()), u(g.d.Xb(g.c = g.b++), 29)), v = new E(t.a), c = 0, f = 0, h = 0; h < p[i + 1]; h++)
+ if (O = u(y(v), 10), h == p[i + 1] - 1 || eY(n, O, i + 1, i)) {
+ for (o = p[i] - 1, eY(n, O, i + 1, i) && (o = n.c.e[u(u(u(un(n.c.b, O.p), 15).Xb(0), 46).a, 10).p]); f <= h; ) {
+ if ($ = u(un(t.a, f), 10), !eY(n, $, i + 1, i))
+ for (S = u(un(n.c.b, $.p), 15).Kc(); S.Ob(); )
+ C = u(S.Pb(), 46), r = n.c.e[u(C.a, 10).p], (r < c || r > o) && ci(n.b, u(C.b, 17));
+ ++f;
+ }
+ c = o;
+ }
+ }
+ }
+ function OZ(n, e) {
+ var t;
+ if (e == null || An(e, tu) || e.length == 0 && n.k != (y1(), Cp))
+ return null;
+ switch (n.k.g) {
+ case 1:
+ return DT(e, N4) ? (qn(), G4) : DT(e, EB) ? (qn(), Ga) : null;
+ case 2:
+ try {
+ return Q(us(e, Bi, nt));
+ } catch (i) {
+ if (i = jt(i), I(i, 127))
+ return null;
+ throw T(i);
+ }
+ case 4:
+ try {
+ return yb(e);
+ } catch (i) {
+ if (i = jt(i), I(i, 127))
+ return null;
+ throw T(i);
+ }
+ case 3:
+ return e;
+ case 5:
+ return kDn(n), MLn(n, e);
+ case 6:
+ return kDn(n), w9e(n, n.a, e);
+ case 7:
+ try {
+ return t = Ame(n), t.Jf(e), t;
+ } catch (i) {
+ if (i = jt(i), I(i, 32))
+ return null;
+ throw T(i);
+ }
+ default:
+ throw T(new $r("Invalid type set for this layout option."));
+ }
+ }
+ function uEe(n) {
+ X5();
+ var e, t, i, r, c, o, f;
+ for (f = new Jmn(), t = new E(n); t.a < t.c.c.length; )
+ e = u(y(t), 140), (!f.b || e.c >= f.b.c) && (f.b = e), (!f.c || e.c <= f.c.c) && (f.d = f.c, f.c = e), (!f.e || e.d >= f.e.d) && (f.e = e), (!f.f || e.d <= f.f.d) && (f.f = e);
+ return i = new LT((q3(), w0)), O8(n, SWn, new Ku(A(M(Rk, 1), rn, 369, 0, [i]))), o = new LT(qb), O8(n, AWn, new Ku(A(M(Rk, 1), rn, 369, 0, [o]))), r = new LT(Hb), O8(n, MWn, new Ku(A(M(Rk, 1), rn, 369, 0, [r]))), c = new LT(kg), O8(n, TWn, new Ku(A(M(Rk, 1), rn, 369, 0, [c]))), Rx(i.c, w0), Rx(r.c, Hb), Rx(c.c, kg), Rx(o.c, qb), f.a.c = F(Zn, rn, 1, 0, 5, 1), Zt(f.a, i.c), Zt(f.a, ma(r.c)), Zt(f.a, c.c), Zt(f.a, ma(o.c)), f;
+ }
+ function DZ(n) {
+ var e;
+ switch (n.d) {
+ case 1: {
+ if (n.hj())
+ return n.o != -2;
+ break;
+ }
+ case 2: {
+ if (n.hj())
+ return n.o == -2;
+ break;
+ }
+ case 3:
+ case 5:
+ case 4:
+ case 6:
+ case 7:
+ return n.o > -2;
+ default:
+ return !1;
+ }
+ switch (e = n.gj(), n.p) {
+ case 0:
+ return e != null && on(sn(e)) != b5(n.k, 0);
+ case 1:
+ return e != null && u(e, 217).a != ge(n.k) << 24 >> 24;
+ case 2:
+ return e != null && u(e, 172).a != (ge(n.k) & Wt);
+ case 6:
+ return e != null && b5(u(e, 162).a, n.k);
+ case 5:
+ return e != null && u(e, 19).a != ge(n.k);
+ case 7:
+ return e != null && u(e, 184).a != ge(n.k) << 16 >> 16;
+ case 3:
+ return e != null && K(Y(e)) != n.j;
+ case 4:
+ return e != null && u(e, 155).a != n.j;
+ default:
+ return e == null ? n.n != null : !tt(e, n.n);
+ }
+ }
+ function X7(n, e, t) {
+ var i, r, c, o;
+ return n.Fk() && n.Ek() && (o = MD(n, u(t, 56)), B(o) !== B(t)) ? (n.Oi(e), n.Ui(e, bPn(n, e, o)), n.rk() && (c = (r = u(t, 49), n.Dk() ? n.Bk() ? r.ih(n.b, ir(u(On(Xc(n.b), n.aj()), 18)).n, u(On(Xc(n.b), n.aj()).Yj(), 26).Bj(), null) : r.ih(n.b, yt(r.Tg(), ir(u(On(Xc(n.b), n.aj()), 18))), null, null) : r.ih(n.b, -1 - n.aj(), null, null)), !u(o, 49).eh() && (c = (i = u(o, 49), n.Dk() ? n.Bk() ? i.gh(n.b, ir(u(On(Xc(n.b), n.aj()), 18)).n, u(On(Xc(n.b), n.aj()).Yj(), 26).Bj(), c) : i.gh(n.b, yt(i.Tg(), ir(u(On(Xc(n.b), n.aj()), 18))), null, c) : i.gh(n.b, -1 - n.aj(), null, c))), c && c.Fi()), Hu(n.b) && n.$i(n.Zi(9, t, o, e, !1)), o) : t;
+ }
+ function BRn(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ for (a = K(Y(k(n, (nn(), T0)))), i = K(Y(k(n, Osn))), g = new jI(), H(g, T0, a + i), l = e, S = l.d, m = l.c.i, $ = l.d.i, C = pz(m.c), O = pz($.c), r = new X(), d = C; d <= O; d++)
+ f = new Hh(n), ta(f, (Qn(), pi)), H(f, (G(), rt), l), H(f, Nt, (Ai(), Sc)), H(f, rP, g), p = u(un(n.b, d), 29), d == C ? vb(f, p.a.c.length - t, p) : jr(f, p), x = K(Y(k(l, S1))), x < 0 && (x = 0, H(l, S1, x)), f.o.b = x, v = j.Math.floor(x / 2), o = new gc(), si(o, (J(), Gn)), Hr(o, f), o.n.b = v, h = new gc(), si(h, Vn), Hr(h, f), h.n.b = v, Ti(l, o), c = new Id(), Pr(c, l), H(c, Mr, null), Ki(c, h), Ti(c, S), f4e(f, l, c), r.c[r.c.length] = c, l = c;
+ return r;
+ }
+ function gL(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ for (h = u(k1(n, (J(), Gn)).Kc().Pb(), 11).e, p = u(k1(n, Vn).Kc().Pb(), 11).g, f = h.c.length, O = tf(u(un(n.j, 0), 11)); f-- > 0; ) {
+ for (m = (Ln(0, h.c.length), u(h.c[0], 17)), r = (Ln(0, p.c.length), u(p.c[0], 17)), $ = r.d.e, c = xr($, r, 0), dae(m, r.d, c), Ki(r, null), Ti(r, null), v = m.a, e && Ke(v, new kr(O)), i = _e(r.a, 0); i.b != i.d.c; )
+ t = u(Re(i), 8), Ke(v, new kr(t));
+ for (S = m.b, g = new E(r.b); g.a < g.c.c.length; )
+ d = u(y(g), 70), S.c[S.c.length] = d;
+ if (C = u(k(m, (nn(), Mr)), 74), o = u(k(r, Mr), 74), o)
+ for (C || (C = new ou(), H(m, Mr, C)), a = _e(o, 0); a.b != a.d.c; )
+ l = u(Re(a), 8), Ke(C, new kr(l));
+ }
+ }
+ function RRn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p;
+ if (t = u(br(n.b, e), 124), h = u(u(ct(n.r, e), 21), 84), h.dc()) {
+ t.n.b = 0, t.n.c = 0;
+ return;
+ }
+ for (l = n.u.Hc((Tu(), Zh)), o = 0, f = h.Kc(), a = null, d = 0, g = 0; f.Ob(); )
+ i = u(f.Pb(), 111), r = K(Y(i.b.We((dE(), JA)))), c = i.b.rf().a, n.A.Hc((Vu(), rd)) && vBn(n, e), a ? (p = g + a.d.c + n.w + i.d.b, o = j.Math.max(o, (Yo(), mo(bf), j.Math.abs(d - r) <= bf || d == r || isNaN(d) && isNaN(r) ? 0 : p / (r - d)))) : n.C && n.C.b > 0 && (o = j.Math.max(o, aOn(n.C.b + i.d.b, r))), a = i, d = r, g = c;
+ n.C && n.C.c > 0 && (p = g + n.C.c, l && (p += a.d.c), o = j.Math.max(o, (Yo(), mo(bf), j.Math.abs(d - 1) <= bf || d == 1 || isNaN(d) && isNaN(1) ? 0 : p / (1 - d)))), t.n.b = 0, t.a.a = o;
+ }
+ function _Rn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p;
+ if (t = u(br(n.b, e), 124), h = u(u(ct(n.r, e), 21), 84), h.dc()) {
+ t.n.d = 0, t.n.a = 0;
+ return;
+ }
+ for (l = n.u.Hc((Tu(), Zh)), o = 0, n.A.Hc((Vu(), rd)) && mBn(n, e), f = h.Kc(), a = null, g = 0, d = 0; f.Ob(); )
+ i = u(f.Pb(), 111), c = K(Y(i.b.We((dE(), JA)))), r = i.b.rf().b, a ? (p = d + a.d.a + n.w + i.d.d, o = j.Math.max(o, (Yo(), mo(bf), j.Math.abs(g - c) <= bf || g == c || isNaN(g) && isNaN(c) ? 0 : p / (c - g)))) : n.C && n.C.d > 0 && (o = j.Math.max(o, aOn(n.C.d + i.d.d, c))), a = i, g = c, d = r;
+ n.C && n.C.a > 0 && (p = d + n.C.a, l && (p += a.d.a), o = j.Math.max(o, (Yo(), mo(bf), j.Math.abs(g - 1) <= bf || g == 1 || isNaN(g) && isNaN(1) ? 0 : p / (1 - g)))), t.n.d = 0, t.a.b = o;
+ }
+ function KRn(n, e, t) {
+ var i, r, c, o, f, h;
+ for (this.g = n, f = e.d.length, h = t.d.length, this.d = F(vh, E1, 10, f + h, 0, 1), o = 0; o < f; o++)
+ this.d[o] = e.d[o];
+ for (c = 0; c < h; c++)
+ this.d[f + c] = t.d[c];
+ if (e.e) {
+ if (this.e = p8(e.e), this.e.Mc(t), t.e)
+ for (r = t.e.Kc(); r.Ob(); )
+ i = u(r.Pb(), 233), i != e && (this.e.Hc(i) ? --i.c : this.e.Fc(i));
+ } else
+ t.e && (this.e = p8(t.e), this.e.Mc(e));
+ this.f = e.f + t.f, this.a = e.a + t.a, this.a > 0 ? q$(this, this.f / this.a) : Zo(e.g, e.d[0]).a != null && Zo(t.g, t.d[0]).a != null ? q$(this, (K(Zo(e.g, e.d[0]).a) + K(Zo(t.g, t.d[0]).a)) / 2) : Zo(e.g, e.d[0]).a != null ? q$(this, Zo(e.g, e.d[0]).a) : Zo(t.g, t.d[0]).a != null && q$(this, Zo(t.g, t.d[0]).a);
+ }
+ function sEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ for (n.a = new VCn(Lbe(e9)), i = new E(e.a); i.a < i.c.c.length; ) {
+ for (t = u(y(i), 841), f = new _F(A(M(RR, 1), rn, 81, 0, [])), W(n.a.a, f), l = new E(t.d); l.a < l.c.c.length; )
+ h = u(y(l), 110), a = new zz(n, h), xZ(a, u(k(t.c, (G(), zb)), 21)), zu(n.g, t) || (it(n.g, t, new fn(h.c, h.d)), it(n.f, t, a)), W(n.a.b, a), d$(f, a);
+ for (o = new E(t.b); o.a < o.c.c.length; )
+ c = u(y(o), 594), a = new zz(n, c.kf()), it(n.b, c, new Pi(f, a)), xZ(a, u(k(t.c, (G(), zb)), 21)), c.hf() && (d = new UQ(n, c.hf(), 1), xZ(d, u(k(t.c, zb), 21)), r = new _F(A(M(RR, 1), rn, 81, 0, [])), d$(r, d), Tn(n.c, c.gf(), new Pi(f, d)));
+ }
+ return n.a;
+ }
+ function HRn(n) {
+ var e;
+ this.a = n, e = (Qn(), A(M(zR, 1), z, 267, 0, [ii, pi, Vt, Mc, Qu, vf])).length, this.b = fa(KK, [q, Jen], [593, 146], 0, [e, e], 2), this.c = fa(KK, [q, Jen], [593, 146], 0, [e, e], 2), ZD(this, ii, (nn(), M0), $g), e6(this, ii, pi, T0, Ja), M8(this, ii, Mc, T0), M8(this, ii, Vt, T0), e6(this, ii, Qu, M0, $g), ZD(this, pi, Mo, Dg), M8(this, pi, Mc, Mo), M8(this, pi, Vt, Mo), e6(this, pi, Qu, T0, Ja), gyn(this, Mc, Mo), M8(this, Mc, Vt, Mo), M8(this, Mc, Qu, G_), gyn(this, Vt, Fm), e6(this, Vt, Qu, wv, bv), ZD(this, Qu, Mo, Mo), ZD(this, vf, Mo, Dg), e6(this, vf, ii, T0, Ja), e6(this, vf, Qu, T0, Ja), e6(this, vf, pi, T0, Ja);
+ }
+ function oEe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ if (o = t.ak(), I(o, 99) && u(o, 18).Bb & Ji && (g = u(t.dd(), 49), m = gl(n.e, g), m != g)) {
+ if (a = uh(o, m), k5(n, e, px(n, e, a)), d = null, Hu(n.e) && (i = rg((bu(), xi), n.e.Tg(), o), i != On(n.e.Tg(), n.c))) {
+ for (C = _c(n.e.Tg(), o), f = 0, c = u(n.g, 119), h = 0; h < e; ++h)
+ r = c[h], C.rl(r.ak()) && ++f;
+ d = new v$(n.e, 9, i, g, m, f, !1), d.Ei(new xh(n.e, 9, n.c, t, a, e, !1));
+ }
+ return v = u(o, 18), p = ir(v), p ? (d = g.ih(n.e, yt(g.Tg(), p), null, d), d = u(m, 49).gh(n.e, yt(m.Tg(), p), null, d)) : v.Bb & sc && (l = -1 - yt(n.e.Tg(), v), d = g.ih(n.e, l, null, null), !u(m, 49).eh() && (d = u(m, 49).gh(n.e, l, null, d))), d && d.Fi(), a;
+ }
+ return t;
+ }
+ function fEe(n) {
+ var e, t, i, r, c, o, f, h;
+ for (c = new E(n.a.b); c.a < c.c.c.length; )
+ r = u(y(c), 81), r.b.c = r.g.c, r.b.d = r.g.d;
+ for (h = new fn(xt, xt), e = new fn(Qt, Qt), i = new E(n.a.b); i.a < i.c.c.length; )
+ t = u(y(i), 81), h.a = j.Math.min(h.a, t.g.c), h.b = j.Math.min(h.b, t.g.d), e.a = j.Math.max(e.a, t.g.c + t.g.b), e.b = j.Math.max(e.b, t.g.d + t.g.a);
+ for (f = XE(n.c).a.nc(); f.Ob(); )
+ o = u(f.Pb(), 46), t = u(o.b, 81), h.a = j.Math.min(h.a, t.g.c), h.b = j.Math.min(h.b, t.g.d), e.a = j.Math.max(e.a, t.g.c + t.g.b), e.b = j.Math.max(e.b, t.g.d + t.g.a);
+ n.d = vE(new fn(h.a, h.b)), n.e = ji(new fn(e.a, e.b), h), n.a.a.c = F(Zn, rn, 1, 0, 5, 1), n.a.b.c = F(Zn, rn, 1, 0, 5, 1);
+ }
+ function hEe(n) {
+ var e, t, i;
+ for (_w(Ul, A(M(mg, 1), rn, 130, 0, [new nq()])), t = new sq(n), i = 0; i < t.a.length; ++i)
+ e = sb(t, i).je().a, An(e, "layered") ? _w(Ul, A(M(mg, 1), rn, 130, 0, [new S4n()])) : An(e, "force") ? _w(Ul, A(M(mg, 1), rn, 130, 0, [new h4n()])) : An(e, "stress") ? _w(Ul, A(M(mg, 1), rn, 130, 0, [new a4n()])) : An(e, "mrtree") ? _w(Ul, A(M(mg, 1), rn, 130, 0, [new z4n()])) : An(e, "radial") ? _w(Ul, A(M(mg, 1), rn, 130, 0, [new B4n()])) : An(e, "disco") ? _w(Ul, A(M(mg, 1), rn, 130, 0, [new f4n(), new s4n()])) : An(e, "sporeOverlap") || An(e, "sporeCompaction") ? _w(Ul, A(M(mg, 1), rn, 130, 0, [new H4n()])) : An(e, "rectpacking") && _w(Ul, A(M(mg, 1), rn, 130, 0, [new X4n()]));
+ }
+ function qRn(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ if (g = new kr(n.o), S = e.a / g.a, f = e.b / g.b, m = e.a - g.a, c = e.b - g.b, t)
+ for (r = B(k(n, (nn(), Nt))) === B((Ai(), Sc)), v = new E(n.j); v.a < v.c.c.length; )
+ switch (p = u(y(v), 11), p.j.g) {
+ case 1:
+ r || (p.n.a *= S);
+ break;
+ case 2:
+ p.n.a += m, r || (p.n.b *= f);
+ break;
+ case 3:
+ r || (p.n.a *= S), p.n.b += c;
+ break;
+ case 4:
+ r || (p.n.b *= f);
+ }
+ for (l = new E(n.b); l.a < l.c.c.length; )
+ h = u(y(l), 70), a = h.n.a + h.o.a / 2, d = h.n.b + h.o.b / 2, C = a / g.a, o = d / g.b, C + o >= 1 && (C - o > 0 && d >= 0 ? (h.n.a += m, h.n.b += c * o) : C - o < 0 && a >= 0 && (h.n.a += m * C, h.n.b += c));
+ n.o.a = e.a, n.o.b = e.b, H(n, (nn(), Va), (Vu(), i = u(xo(o9), 9), new ms(i, u(bo(i, i.length), 9), 0)));
+ }
+ function lEe(n, e, t, i, r, c) {
+ var o;
+ if (!(e == null || !$F(e, a1n, d1n)))
+ throw T(new Hn("invalid scheme: " + e));
+ if (!n && !(t != null && Pf(t, eu(35)) == -1 && t.length > 0 && (Me(0, t.length), t.charCodeAt(0) != 47)))
+ throw T(new Hn("invalid opaquePart: " + t));
+ if (n && !(e != null && _9(tI, e.toLowerCase())) && !(t == null || !$F(t, a9, d9)))
+ throw T(new Hn(fGn + t));
+ if (n && e != null && _9(tI, e.toLowerCase()) && !rve(t))
+ throw T(new Hn(fGn + t));
+ if (!o2e(i))
+ throw T(new Hn("invalid device: " + i));
+ if (!ege(r))
+ throw o = r == null ? "invalid segments: null" : "invalid segment: " + Jwe(r), T(new Hn(o));
+ if (!(c == null || Pf(c, eu(35)) == -1))
+ throw T(new Hn("invalid query: " + c));
+ }
+ function aEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ for (le(e, "Calculate Graph Size", 1), e.n && n && go(e, po(n), (Xu(), ws)), f = O4, h = O4, c = ttn, o = ttn, d = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); d.e != d.i.gc(); )
+ l = u(oe(d), 33), v = l.i, m = l.j, S = l.g, i = l.f, r = u(hn(l, (Xe(), my)), 142), f = j.Math.min(f, v - r.b), h = j.Math.min(h, m - r.d), c = j.Math.max(c, v + S + r.c), o = j.Math.max(o, m + i + r.a);
+ for (p = u(hn(n, (Xe(), ed)), 116), g = new fn(f - p.b, h - p.d), a = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); a.e != a.i.gc(); )
+ l = u(oe(a), 33), Yc(l, l.i - g.a), Zc(l, l.j - g.b);
+ C = c - f + (p.b + p.c), t = o - h + (p.d + p.a), _d(n, C), Rd(n, t), e.n && n && go(e, po(n), (Xu(), ws));
+ }
+ function GRn(n) {
+ var e, t, i, r, c, o, f, h, l, a;
+ for (i = new X(), o = new E(n.e.a); o.a < o.c.c.length; ) {
+ for (r = u(y(o), 121), a = 0, r.k.c = F(Zn, rn, 1, 0, 5, 1), t = new E(Hw(r)); t.a < t.c.c.length; )
+ e = u(y(t), 213), e.f && (W(r.k, e), ++a);
+ a == 1 && (i.c[i.c.length] = r);
+ }
+ for (c = new E(i); c.a < c.c.c.length; )
+ for (r = u(y(c), 121); r.k.c.length == 1; ) {
+ for (l = u(y(new E(r.k)), 213), n.b[l.c] = l.g, f = l.d, h = l.e, t = new E(Hw(r)); t.a < t.c.c.length; )
+ e = u(y(t), 213), tt(e, l) || (e.f ? f == e.d || h == e.e ? n.b[l.c] -= n.b[e.c] - e.g : n.b[l.c] += n.b[e.c] - e.g : r == f ? e.d == r ? n.b[l.c] += e.g : n.b[l.c] -= e.g : e.d == r ? n.b[l.c] -= e.g : n.b[l.c] += e.g);
+ Vc(f.k, l), Vc(h.k, l), f == r ? r = l.e : r = l.d;
+ }
+ }
+ function $Z(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v;
+ if (e == null || e.length == 0)
+ return null;
+ if (c = u(mc(n.f, e), 23), !c) {
+ for (r = (p = new Th(n.d).a.vc().Kc(), new N0(p)); r.a.Ob(); )
+ if (t = (o = u(r.a.Pb(), 42), u(o.dd(), 23)), f = t.f, v = e.length, An(f.substr(f.length - v, v), e) && (e.length == f.length || Di(f, f.length - e.length - 1) == 46)) {
+ if (c)
+ return null;
+ c = t;
+ }
+ if (!c) {
+ for (i = (g = new Th(n.d).a.vc().Kc(), new N0(g)); i.a.Ob(); )
+ if (t = (o = u(i.a.Pb(), 42), u(o.dd(), 23)), d = t.g, d != null) {
+ for (h = d, l = 0, a = h.length; l < a; ++l)
+ if (f = h[l], v = e.length, An(f.substr(f.length - v, v), e) && (e.length == f.length || Di(f, f.length - e.length - 1) == 46)) {
+ if (c)
+ return null;
+ c = t;
+ }
+ }
+ }
+ c && yr(n.f, e, c);
+ }
+ return c;
+ }
+ function dEe(n, e) {
+ var t, i, r, c, o;
+ for (t = new _0(), o = !1, c = 0; c < e.length; c++) {
+ if (i = (Me(c, e.length), e.charCodeAt(c)), i == 32) {
+ for (NT(n, t, 0), t.a += " ", NT(n, t, 0); c + 1 < e.length && (Me(c + 1, e.length), e.charCodeAt(c + 1) == 32); )
+ ++c;
+ continue;
+ }
+ if (o) {
+ i == 39 ? c + 1 < e.length && (Me(c + 1, e.length), e.charCodeAt(c + 1) == 39) ? (t.a += String.fromCharCode(i), ++c) : o = !1 : t.a += String.fromCharCode(i);
+ continue;
+ }
+ if (Pf("GyMLdkHmsSEcDahKzZv", eu(i)) > 0) {
+ NT(n, t, 0), t.a += String.fromCharCode(i), r = J2e(e, c), NT(n, t, r), c += r - 1;
+ continue;
+ }
+ i == 39 ? c + 1 < e.length && (Me(c + 1, e.length), e.charCodeAt(c + 1) == 39) ? (t.a += "'", ++c) : o = !0 : t.a += String.fromCharCode(i);
+ }
+ NT(n, t, 0), Sve(n);
+ }
+ function bEe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ if (le(t, "Network simplex layering", 1), n.b = e, S = u(k(e, (nn(), xm)), 19).a * 4, C = n.b.a, C.c.length < 1) {
+ ce(t);
+ return;
+ }
+ for (c = bke(n, C), m = null, r = _e(c, 0); r.b != r.d.c; ) {
+ for (i = u(Re(r), 15), f = S * zt(j.Math.sqrt(i.gc())), o = Oke(i), Yx(gG(Aie(pG(fD(o), f), m), !0), yc(t, 1)), g = n.b.b, v = new E(o.a); v.a < v.c.c.length; ) {
+ for (p = u(y(v), 121); g.c.length <= p.e; )
+ J0(g, g.c.length, new Bs(n.b));
+ a = u(p.f, 10), jr(a, u(un(g, p.e), 29));
+ }
+ if (c.b > 1)
+ for (m = F(be, Le, 25, n.b.b.c.length, 15, 1), d = 0, l = new E(n.b.b); l.a < l.c.c.length; )
+ h = u(y(l), 29), m[d++] = h.a.c.length;
+ }
+ C.c = F(Zn, rn, 1, 0, 5, 1), n.a = null, n.b = null, n.c = null, ce(t);
+ }
+ function zRn(n) {
+ var e, t, i, r, c, o, f;
+ for (e = 0, c = new E(n.b.a); c.a < c.c.c.length; )
+ i = u(y(c), 189), i.b = 0, i.c = 0;
+ for (Ixn(n, 0), FF(n, n.g), oM(n.c), lG(n.c), t = (sr(), Ys), G7($O(cg(G7($O(cg(G7(cg(n.c, t)), VDn(t)))), t))), cg(n.c, Ys), AF(n, n.g), vxn(n, 0), CRn(n, 0), fNn(n, 1), Ixn(n, 1), FF(n, n.d), oM(n.c), o = new E(n.b.a); o.a < o.c.c.length; )
+ i = u(y(o), 189), e += j.Math.abs(i.c);
+ for (f = new E(n.b.a); f.a < f.c.c.length; )
+ i = u(y(f), 189), i.b = 0, i.c = 0;
+ for (t = Jh, G7($O(cg(G7($O(cg(G7(lG(cg(n.c, t))), VDn(t)))), t))), cg(n.c, Ys), AF(n, n.d), vxn(n, 1), CRn(n, 1), fNn(n, 0), lG(n.c), r = new E(n.b.a); r.a < r.c.c.length; )
+ i = u(y(r), 189), e += j.Math.abs(i.c);
+ return e;
+ }
+ function URn(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (l = e, !(l.b == null || n.b == null)) {
+ for (Jw(n), D6(n), Jw(l), D6(l), t = F(be, Le, 25, n.b.length + l.b.length, 15, 1), a = 0, i = 0, o = 0; i < n.b.length && o < l.b.length; )
+ if (r = n.b[i], c = n.b[i + 1], f = l.b[o], h = l.b[o + 1], c < f)
+ i += 2;
+ else if (c >= f && r <= h)
+ f <= r && c <= h ? (t[a++] = r, t[a++] = c, i += 2) : f <= r ? (t[a++] = r, t[a++] = h, n.b[i] = h + 1, o += 2) : c <= h ? (t[a++] = f, t[a++] = c, i += 2) : (t[a++] = f, t[a++] = h, n.b[i] = h + 1);
+ else if (h < r)
+ o += 2;
+ else
+ throw T(new _r("Token#intersectRanges(): Internal Error: [" + n.b[i] + "," + n.b[i + 1] + "] & [" + l.b[o] + "," + l.b[o + 1] + "]"));
+ for (; i < n.b.length; )
+ t[a++] = n.b[i++], t[a++] = n.b[i++];
+ n.b = F(be, Le, 25, a, 15, 1), pc(t, 0, n.b, 0, a);
+ }
+ }
+ function wEe(n) {
+ var e, t, i, r, c, o, f;
+ for (e = new X(), n.g = new X(), n.d = new X(), o = new Ca(new ia(n.f.b).a); o.b; )
+ c = Bd(o), W(e, u(u(c.dd(), 46).b, 81)), el(u(c.cd(), 594).gf()) ? W(n.d, u(c.dd(), 46)) : W(n.g, u(c.dd(), 46));
+ for (FF(n, n.d), FF(n, n.g), n.c = new SLn(n.b), Pie(n.c, (IG(), kWn)), AF(n, n.d), AF(n, n.g), Zt(e, n.c.a.b), n.e = new fn(xt, xt), n.a = new fn(Qt, Qt), i = new E(e); i.a < i.c.c.length; )
+ t = u(y(i), 81), n.e.a = j.Math.min(n.e.a, t.g.c), n.e.b = j.Math.min(n.e.b, t.g.d), n.a.a = j.Math.max(n.a.a, t.g.c + t.g.b), n.a.b = j.Math.max(n.a.b, t.g.d + t.g.a);
+ mG(n.c, new Tan()), f = 0;
+ do
+ r = zRn(n), ++f;
+ while ((f < 2 || r > El) && f < 10);
+ mG(n.c, new Man()), zRn(n), ehe(n.c), fEe(n.f);
+ }
+ function gEe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ if (on(sn(k(t, (nn(), Jb)))))
+ for (f = new E(t.j); f.a < f.c.c.length; )
+ for (o = u(y(f), 11), g = xf(o.g), l = g, a = 0, d = l.length; a < d; ++a)
+ h = l[a], c = h.d.i == t, r = c && on(sn(k(h, Xa))), r && (v = h.c, p = u(te(n.b, v), 10), p || (p = V7(v, (Ai(), jf), v.j, -1, null, null, v.o, u(k(e, ls), 103), e), H(p, (G(), rt), v), it(n.b, v, p), W(e.a, p)), C = h.d, m = u(te(n.b, C), 10), m || (m = V7(C, (Ai(), jf), C.j, 1, null, null, C.o, u(k(e, ls), 103), e), H(m, (G(), rt), C), it(n.b, C, m), W(e.a, m)), i = C$(h), Ki(i, u(un(p.j, 0), 11)), Ti(i, u(un(m.j, 0), 11)), Tn(n.a, h, new EE(i, e, (ur(), Lc))), u(k(e, (G(), Ac)), 21).Fc((or(), Ds)));
+ }
+ function pEe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v;
+ for (le(t, "Label dummy switching", 1), i = u(k(e, (nn(), QS)), 227), Pbe(e), r = f9e(e, i), n.a = F(Ci, pr, 25, e.b.c.length, 15, 1), f = (q2(), A(M(iv, 1), z, 227, 0, [tv, ym, ev, Gb, Cg, Eg])), a = 0, p = f.length; a < p; ++a)
+ if (c = f[a], (c == Cg || c == Eg || c == Gb) && !u(hu(r.a, c) ? r.b[c.g] : null, 15).dc()) {
+ _be(n, e);
+ break;
+ }
+ for (h = A(M(iv, 1), z, 227, 0, [tv, ym, ev, Gb, Cg, Eg]), d = 0, v = h.length; d < v; ++d)
+ c = h[d], c == Cg || c == Eg || c == Gb || xBn(n, u(hu(r.a, c) ? r.b[c.g] : null, 15));
+ for (o = A(M(iv, 1), z, 227, 0, [tv, ym, ev, Gb, Cg, Eg]), l = 0, g = o.length; l < g; ++l)
+ c = o[l], (c == Cg || c == Eg || c == Gb) && xBn(n, u(hu(r.a, c) ? r.b[c.g] : null, 15));
+ n.a = null, ce(t);
+ }
+ function vEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ switch (n.k.g) {
+ case 1:
+ if (i = u(k(n, (G(), rt)), 17), t = u(k(i, gun), 74), t ? on(sn(k(i, mf))) && (t = o7(t)) : t = new ou(), l = u(k(n, Xo), 11), l) {
+ if (a = Gr(A(M(di, 1), q, 8, 0, [l.i.n, l.n, l.a])), e <= a.a)
+ return a.b;
+ Ht(t, a, t.a, t.a.a);
+ }
+ if (d = u(k(n, Js), 11), d) {
+ if (g = Gr(A(M(di, 1), q, 8, 0, [d.i.n, d.n, d.a])), g.a <= e)
+ return g.b;
+ Ht(t, g, t.c.b, t.c);
+ }
+ if (t.b >= 2) {
+ for (h = _e(t, 0), o = u(Re(h), 8), f = u(Re(h), 8); f.a < e && h.b != h.d.c; )
+ o = f, f = u(Re(h), 8);
+ return o.b + (e - o.a) / (f.a - o.a) * (f.b - o.b);
+ }
+ break;
+ case 3:
+ switch (c = u(k(u(un(n.j, 0), 11), (G(), rt)), 11), r = c.i, c.j.g) {
+ case 1:
+ return r.n.b;
+ case 3:
+ return r.n.b + r.o.b;
+ }
+ }
+ return MJ(n).b;
+ }
+ function mEe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d;
+ for (o = new E(n.d.b); o.a < o.c.c.length; )
+ for (c = u(y(o), 29), h = new E(c.a); h.a < h.c.c.length; ) {
+ if (f = u(y(h), 10), on(sn(k(f, (nn(), Im)))) && !j3(_h(f))) {
+ i = u(v1e(_h(f)), 17), a = i.c.i, a == f && (a = i.d.i), d = new Pi(a, ji(Qr(f.n), a.n)), it(n.b, f, d);
+ continue;
+ }
+ r = new ks(f.n.a - f.d.b, f.n.b - f.d.d, f.o.a + f.d.b + f.d.c, f.o.b + f.d.d + f.d.a), e = ejn(w7n(d7n(b7n(new Vq(), f), r), XWn), n.a), njn(tre(DIn(new Xq(), A(M(VA, 1), rn, 57, 0, [e])), e), n.a), l = new FI(), it(n.e, e, l), t = $h(new re(ue(Lr(f).a.Kc(), new Mn()))) - $h(new re(ue(ei(f).a.Kc(), new Mn()))), t < 0 ? u7(l, !0, (sr(), Ys)) : t > 0 && u7(l, !0, (sr(), Ao)), f.k == (Qn(), Vt) && vTn(l), it(n.f, f, e);
+ }
+ }
+ function kEe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ switch (le(t, "Node promotion heuristic", 1), n.g = e, MCe(n), n.q = u(k(e, (nn(), __)), 260), a = u(k(n.g, psn), 19).a, c = new l0n(), n.q.g) {
+ case 2:
+ case 1:
+ m4(n, c);
+ break;
+ case 3:
+ for (n.q = (Zw(), lP), m4(n, c), h = 0, f = new E(n.a); f.a < f.c.c.length; )
+ o = u(y(f), 19), h = j.Math.max(h, o.a);
+ h > n.j && (n.q = ey, m4(n, c));
+ break;
+ case 4:
+ for (n.q = (Zw(), lP), m4(n, c), l = 0, r = new E(n.b); r.a < r.c.c.length; )
+ i = Y(y(r)), l = j.Math.max(l, (_n(i), i));
+ l > n.k && (n.q = ty, m4(n, c));
+ break;
+ case 6:
+ g = zt(j.Math.ceil(n.f.length * a / 100)), m4(n, new A5n(g));
+ break;
+ case 5:
+ d = zt(j.Math.ceil(n.d * a / 100)), m4(n, new S5n(d));
+ break;
+ default:
+ m4(n, c);
+ }
+ d7e(n, e), ce(t);
+ }
+ function WRn(n, e, t) {
+ var i, r, c, o;
+ this.j = n, this.e = LJ(n), this.o = this.j.e, this.i = !!this.o, this.p = this.i ? u(un(t, qi(this.o).p), 214) : null, r = u(k(n, (G(), Ac)), 21), this.g = r.Hc((or(), Ds)), this.b = new X(), this.d = new w$n(this.e), o = u(k(this.j, vp), 230), this.q = Ybe(e, o, this.e), this.k = new gMn(this), c = cf(A(M(QWn, 1), rn, 225, 0, [this, this.d, this.k, this.q])), e == (Kd(), ry) && !on(sn(k(n, (nn(), Xb)))) ? (i = new BJ(this.e), c.c[c.c.length] = i, this.c = new dX(i, o, u(this.q, 402))) : e == ry && on(sn(k(n, (nn(), Xb)))) ? (i = new BJ(this.e), c.c[c.c.length] = i, this.c = new YIn(i, o, u(this.q, 402))) : this.c = new Q7n(e, this), W(c, this.c), SRn(c, this.e), this.s = tTe(this.k);
+ }
+ function yEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ for (d = u(fE((o = _e(new W1(e).a.d, 0), new e2(o))), 86), v = d ? u(k(d, (uc(), pK)), 86) : null, r = 1; d && v; ) {
+ for (h = 0, x = 0, t = d, i = v, f = 0; f < r; f++)
+ t = O$(t), i = O$(i), x += K(Y(k(t, (uc(), pv)))), h += K(Y(k(i, pv)));
+ if (O = K(Y(k(v, (uc(), O1)))), $ = K(Y(k(d, O1))), g = TX(d, v), p = O + h + n.a + g - $ - x, 0 < p) {
+ for (l = e, a = 0; l && l != i; )
+ ++a, l = u(k(l, mP), 86);
+ if (l)
+ for (S = p / a, l = e; l != i; )
+ C = K(Y(k(l, O1))) + p, H(l, O1, C), m = K(Y(k(l, pv))) + p, H(l, pv, m), p -= S, l = u(k(l, mP), 86);
+ else
+ return;
+ }
+ ++r, d.d.b == 0 ? d = aZ(new W1(e), r) : d = u(fE((c = _e(new W1(d).a.d, 0), new e2(c))), 86), v = d ? u(k(d, pK), 86) : null;
+ }
+ }
+ function XRn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ for (h = !0, r = 0, l = n.f[e.p], a = e.o.b + n.n, t = n.c[e.p][2], js(n.a, l, Q(u(un(n.a, l), 19).a - 1 + t)), js(n.b, l, K(Y(un(n.b, l))) - a + t * n.e), ++l, l >= n.i ? (++n.i, W(n.a, Q(1)), W(n.b, a)) : (i = n.c[e.p][1], js(n.a, l, Q(u(un(n.a, l), 19).a + 1 - i)), js(n.b, l, K(Y(un(n.b, l))) + a - i * n.e)), (n.q == (Zw(), ey) && (u(un(n.a, l), 19).a > n.j || u(un(n.a, l - 1), 19).a > n.j) || n.q == ty && (K(Y(un(n.b, l))) > n.k || K(Y(un(n.b, l - 1))) > n.k)) && (h = !1), o = new re(ue(Lr(e).a.Kc(), new Mn())); Se(o); )
+ c = u(ve(o), 17), f = c.c.i, n.f[f.p] == l && (d = XRn(n, f), r = r + u(d.a, 19).a, h = h && on(sn(d.b)));
+ return n.f[e.p] = l, r = r + n.c[e.p][0], new Pi(Q(r), (qn(), !!h));
+ }
+ function FZ(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C, S;
+ for (d = new we(), o = new X(), gLn(n, t, n.d.fg(), o, d), gLn(n, i, n.d.gg(), o, d), n.b = 0.2 * (m = cNn(qr(new $n(null, new xn(o, 16)), new mgn())), C = cNn(qr(new $n(null, new xn(o, 16)), new kgn())), j.Math.min(m, C)), c = 0, f = 0; f < o.c.length - 1; f++)
+ for (h = (Ln(f, o.c.length), u(o.c[f], 112)), v = f + 1; v < o.c.length; v++)
+ c += AZ(n, h, (Ln(v, o.c.length), u(o.c[v], 112)));
+ for (g = u(k(e, (G(), vp)), 230), c >= 2 && (S = ANn(o, !0, g), !n.e && (n.e = new O6n(n)), Z2e(n.e, S, o, n.b)), sxn(o, g), NEe(o), p = -1, a = new E(o); a.a < a.c.c.length; )
+ l = u(y(a), 112), !(j.Math.abs(l.s - l.c) < Kf) && (p = j.Math.max(p, l.o), n.d.dg(l, r, n.c));
+ return n.d.a.a.$b(), p + 1;
+ }
+ function VRn(n, e) {
+ var t, i, r, c, o;
+ t = K(Y(k(e, (nn(), Mo)))), t < 2 && H(e, Mo, 2), i = u(k(e, ls), 103), i == (sr(), mh) && H(e, ls, jT(e)), r = u(k(e, xQn), 19), r.a == 0 ? H(e, (G(), vp), new OF()) : H(e, (G(), vp), new EC(r.a)), c = sn(k(e, Dm)), c == null && H(e, Dm, (qn(), B(k(e, Vh)) === B((Kh(), Ev)))), Rt(new $n(null, new xn(e.a, 16)), new Sq(n)), Rt(qr(new $n(null, new xn(e.b, 16)), new NH()), new Pq(n)), o = new HRn(e), H(e, (G(), Ig), o), pC(n.a), ih(n.a, (Vi(), Vf), u(k(e, Vb), 246)), ih(n.a, Dl, u(k(e, vsn), 246)), ih(n.a, Kc, u(k(e, Om), 246)), ih(n.a, Tc, u(k(e, tP), 246)), ih(n.a, Or, Vbe(u(k(e, Vh), 218))), uyn(n.a, wTe(e)), H(e, S_, EM(n.a, e));
+ }
+ function jEe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U;
+ return g = n.c[e], p = n.c[t], v = u(k(g, (G(), gp)), 15), !!v && v.gc() != 0 && v.Hc(p) || (m = g.k != (Qn(), pi) && p.k != pi, C = u(k(g, k0), 10), S = u(k(p, k0), 10), $ = C != S, O = !!C && C != g || !!S && S != p, x = tx(g, (J(), Kn)), _ = tx(p, ae), O = O | (tx(g, ae) || tx(p, Kn)), U = O && $ || x || _, m && U) || g.k == (Qn(), Mc) && p.k == ii || p.k == (Qn(), Mc) && g.k == ii ? !1 : (a = n.c[e], c = n.c[t], r = UFn(n.e, a, c, (J(), Gn)), h = UFn(n.i, a, c, Vn), b8e(n.f, a, c), l = wDn(n.b, a, c) + u(r.a, 19).a + u(h.a, 19).a + n.f.d, f = wDn(n.b, c, a) + u(r.b, 19).a + u(h.b, 19).a + n.f.b, n.a && (d = u(k(a, rt), 11), o = u(k(c, rt), 11), i = IFn(n.g, d, o), l += u(i.a, 19).a, f += u(i.b, 19).a), l > f);
+ }
+ function EEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (t = u(k(n, (nn(), Nt)), 98), o = n.f, c = n.d, f = o.a + c.b + c.c, h = 0 - c.d - n.c.b, a = o.b + c.d + c.a - n.c.b, l = new X(), d = new X(), r = new E(e); r.a < r.c.c.length; ) {
+ switch (i = u(y(r), 10), t.g) {
+ case 1:
+ case 2:
+ case 3:
+ y8e(i);
+ break;
+ case 4:
+ g = u(k(i, C0), 8), p = g ? g.a : 0, i.n.a = f * K(Y(k(i, (G(), y0)))) - p, lT(i, !0, !1);
+ break;
+ case 5:
+ v = u(k(i, C0), 8), m = v ? v.a : 0, i.n.a = K(Y(k(i, (G(), y0)))) - m, lT(i, !0, !1), o.a = j.Math.max(o.a, i.n.a + i.o.a / 2);
+ }
+ switch (u(k(i, (G(), ec)), 61).g) {
+ case 1:
+ i.n.b = h, l.c[l.c.length] = i;
+ break;
+ case 3:
+ i.n.b = a, d.c[d.c.length] = i;
+ }
+ }
+ switch (t.g) {
+ case 1:
+ case 2:
+ _Dn(l, n), _Dn(d, n);
+ break;
+ case 3:
+ KDn(l, n), KDn(d, n);
+ }
+ }
+ function CEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d;
+ for (a = new X(), d = new gw(), c = null, r = 0, i = 0; i < e.length; ++i)
+ switch (t = e[i], qwe(c, t) && (r = RQ(n, d, a, dP, r)), ai(t, (G(), k0)) && (c = u(k(t, k0), 10)), t.k.g) {
+ case 0:
+ for (h = yz(v2(zr(t, (J(), Kn)), new UH())); V$(h); )
+ o = u(XX(h), 11), n.d[o.p] = r++, a.c[a.c.length] = o;
+ for (r = RQ(n, d, a, dP, r), l = yz(v2(zr(t, ae), new UH())); V$(l); )
+ o = u(XX(l), 11), n.d[o.p] = r++, a.c[a.c.length] = o;
+ break;
+ case 3:
+ zr(t, don).dc() || (o = u(zr(t, don).Xb(0), 11), n.d[o.p] = r++, a.c[a.c.length] = o), zr(t, dP).dc() || hl(d, t);
+ break;
+ case 1:
+ for (f = zr(t, (J(), Gn)).Kc(); f.Ob(); )
+ o = u(f.Pb(), 11), n.d[o.p] = r++, a.c[a.c.length] = o;
+ zr(t, Vn).Jc(new J7n(d, t));
+ }
+ return RQ(n, d, a, dP, r), a;
+ }
+ function QRn(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $;
+ for (l = xt, a = xt, f = Qt, h = Qt, g = new E(e.i); g.a < g.c.c.length; )
+ d = u(y(g), 65), r = u(u(te(n.g, d.a), 46).b, 33), Jo(r, d.b.c, d.b.d), l = j.Math.min(l, r.i), a = j.Math.min(a, r.j), f = j.Math.max(f, r.i + r.g), h = j.Math.max(h, r.j + r.f);
+ for (p = u(hn(n.c, (S7(), lZn)), 116), i0(n.c, f - l + (p.b + p.c), h - a + (p.d + p.a), !0, !0), zJ(n.c, -l + p.b, -a + p.d), i = new ie(TTn(n.c)); i.e != i.i.gc(); )
+ t = u(oe(i), 79), o = ng(t, !0, !0), v = fh(t), C = vl(t), m = new fn(v.i + v.g / 2, v.j + v.f / 2), c = new fn(C.i + C.g / 2, C.j + C.f / 2), S = ji(new fn(c.a, c.b), m), u4(S, v.g, v.f), st(m, S), $ = ji(new fn(m.a, m.b), c), u4($, C.g, C.f), st(c, $), uE(o, m.a, m.b), cE(o, c.a, c.b);
+ }
+ function TEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v;
+ if (n.c = n.d, v = sn(k(e, (nn(), LQn))), p = v == null || (_n(v), v), c = u(k(e, (G(), Ac)), 21).Hc((or(), Ds)), r = u(k(e, Nt), 98), t = !(r == (Ai(), id) || r == jh || r == Sc), p && (t || !c)) {
+ for (d = new E(e.a); d.a < d.c.c.length; )
+ l = u(y(d), 10), l.p = 0;
+ for (g = new X(), a = new E(e.a); a.a < a.c.c.length; )
+ if (l = u(y(a), 10), i = GBn(n, l, null), i) {
+ for (h = new lV(), Pr(h, e), H(h, zb, u(i.b, 21)), GW(h.d, e.d), H(h, hv, null), f = u(i.a, 15).Kc(); f.Ob(); )
+ o = u(f.Pb(), 10), W(h.a, o), o.a = h;
+ g.Fc(h);
+ }
+ c && (B(k(e, kp)) === B((Gd(), qR)) ? n.c = n.b : n.c = n.a);
+ } else
+ g = new Ku(A(M(DWn, 1), zKn, 37, 0, [e]));
+ return B(k(e, kp)) !== B((Gd(), yg)) && (Pn(), g.ad(new Nan())), g;
+ }
+ function JRn(n) {
+ gd(n, new Oa(kG(vj(ad(fd(ld(hd(new na(), T1), "ELK Mr. Tree"), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new Agn()), OHn), Cn((a4(), hH))))), Z(n, T1, s0, jon), Z(n, T1, $b, 20), Z(n, T1, ep, D4), Z(n, T1, hk, Q(1)), Z(n, T1, q6, (qn(), !0)), Z(n, T1, mk, cn(kon)), Z(n, T1, hg, cn(iYn)), Z(n, T1, ip, cn(rYn)), Z(n, T1, tp, cn(cYn)), Z(n, T1, $4, cn(tYn)), Z(n, T1, G6, cn(yon)), Z(n, T1, F4, cn(sYn)), Z(n, T1, Zen, cn(fYn)), Z(n, T1, ntn, cn(Eon));
+ }
+ function MEe(n) {
+ n.q || (n.q = !0, n.p = Yr(n, 0), n.a = Yr(n, 1), bt(n.a, 0), n.f = Yr(n, 2), bt(n.f, 1), St(n.f, 2), n.n = Yr(n, 3), St(n.n, 3), St(n.n, 4), St(n.n, 5), St(n.n, 6), n.g = Yr(n, 4), bt(n.g, 7), St(n.g, 8), n.c = Yr(n, 5), bt(n.c, 7), bt(n.c, 8), n.i = Yr(n, 6), bt(n.i, 9), bt(n.i, 10), bt(n.i, 11), bt(n.i, 12), St(n.i, 13), n.j = Yr(n, 7), bt(n.j, 9), n.d = Yr(n, 8), bt(n.d, 3), bt(n.d, 4), bt(n.d, 5), bt(n.d, 6), St(n.d, 7), St(n.d, 8), St(n.d, 9), St(n.d, 10), n.b = Yr(n, 9), St(n.b, 0), St(n.b, 1), n.e = Yr(n, 10), St(n.e, 1), St(n.e, 2), St(n.e, 3), St(n.e, 4), bt(n.e, 5), bt(n.e, 6), bt(n.e, 7), bt(n.e, 8), bt(n.e, 9), bt(n.e, 10), St(n.e, 11), n.k = Yr(n, 11), St(n.k, 0), St(n.k, 1), n.o = ze(n, 12), n.s = ze(n, 13));
+ }
+ function xZ(n, e) {
+ e.dc() && eh(n.j, !0, !0, !0, !0), tt(e, (J(), Do)) && eh(n.j, !0, !0, !0, !1), tt(e, $s) && eh(n.j, !1, !0, !0, !0), tt(e, ds) && eh(n.j, !0, !0, !1, !0), tt(e, eo) && eh(n.j, !0, !1, !0, !0), tt(e, Su) && eh(n.j, !1, !0, !0, !1), tt(e, Fs) && eh(n.j, !1, !0, !1, !0), tt(e, bs) && eh(n.j, !0, !1, !1, !0), tt(e, $o) && eh(n.j, !0, !1, !0, !1), tt(e, ru) && eh(n.j, !0, !0, !0, !0), tt(e, qc) && eh(n.j, !0, !0, !0, !0), tt(e, ru) && eh(n.j, !0, !0, !0, !0), tt(e, iu) && eh(n.j, !0, !0, !0, !0), tt(e, cu) && eh(n.j, !0, !0, !0, !0), tt(e, Pu) && eh(n.j, !0, !0, !0, !0), tt(e, Pc) && eh(n.j, !0, !0, !0, !0);
+ }
+ function AEe(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C;
+ for (c = new X(), l = new E(i); l.a < l.c.c.length; )
+ if (f = u(y(l), 441), o = null, f.f == (ur(), Lc))
+ for (v = new E(f.e); v.a < v.c.c.length; )
+ p = u(y(v), 17), C = p.d.i, qi(C) == e ? aIn(n, e, f, p, f.b, p.d) : !t || _3(C, t) ? s5e(n, e, f, i, p) : (g = dL(n, e, t, p, f.b, Lc, o), g != o && (c.c[c.c.length] = g), g.c && (o = g));
+ else
+ for (d = new E(f.e); d.a < d.c.c.length; )
+ if (a = u(y(d), 17), m = a.c.i, qi(m) == e)
+ aIn(n, e, f, a, a.c, f.b);
+ else {
+ if (!t || _3(m, t))
+ continue;
+ g = dL(n, e, t, a, f.b, Au, o), g != o && (c.c[c.c.length] = g), g.c && (o = g);
+ }
+ for (h = new E(c); h.a < h.c.c.length; )
+ f = u(y(h), 441), xr(e.a, f.a, 0) != -1 || W(e.a, f.a), f.c && (r.c[r.c.length] = f);
+ }
+ function SEe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ for (l = new X(), h = new E(e.a); h.a < h.c.c.length; )
+ for (o = u(y(h), 10), g = zr(o, (J(), Vn)).Kc(); g.Ob(); )
+ for (d = u(g.Pb(), 11), r = new E(d.g); r.a < r.c.c.length; )
+ i = u(y(r), 17), !(!Wi(i) && i.c.i.c == i.d.i.c || Wi(i) || i.d.i.c != t) && (l.c[l.c.length] = i);
+ for (f = ma(t.a).Kc(); f.Ob(); )
+ for (o = u(f.Pb(), 10), g = zr(o, (J(), Gn)).Kc(); g.Ob(); )
+ for (d = u(g.Pb(), 11), r = new E(d.e); r.a < r.c.c.length; )
+ if (i = u(y(r), 17), !(!Wi(i) && i.c.i.c == i.d.i.c || Wi(i) || i.c.i.c != e)) {
+ for (a = new Ii(l, l.c.length), c = (ne(a.b > 0), u(a.a.Xb(a.c = --a.b), 17)); c != i && a.b > 0; )
+ n.a[c.p] = !0, n.a[i.p] = !0, c = (ne(a.b > 0), u(a.a.Xb(a.c = --a.b), 17));
+ a.b > 0 && Uu(a);
+ }
+ }
+ function YRn(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ if (n.a != e.Aj())
+ throw T(new Hn(B4 + e.ne() + l0));
+ if (i = w1((bu(), xi), e).$k(), i)
+ return i.Aj().Nh().Ih(i, t);
+ if (o = w1(xi, e).al(), o) {
+ if (t == null)
+ return null;
+ if (f = u(t, 15), f.dc())
+ return "";
+ for (d = new i1(), c = f.Kc(); c.Ob(); )
+ r = c.Pb(), dr(d, o.Aj().Nh().Ih(o, r)), d.a += " ";
+ return NO(d, d.a.length - 1);
+ }
+ if (a = w1(xi, e).bl(), !a.dc()) {
+ for (l = a.Kc(); l.Ob(); )
+ if (h = u(l.Pb(), 148), h.wj(t))
+ try {
+ if (d = h.Aj().Nh().Ih(h, t), d != null)
+ return d;
+ } catch (g) {
+ if (g = jt(g), !I(g, 102))
+ throw T(g);
+ }
+ throw T(new Hn("Invalid value: '" + t + "' for datatype :" + e.ne()));
+ }
+ return u(e, 834).Fj(), t == null ? null : I(t, 172) ? "" + u(t, 172).a : Du(t) == HA ? Myn(l9[0], u(t, 199)) : Nr(t);
+ }
+ function PEe(n) {
+ var e, t, i, r, c, o, f, h, l, a;
+ for (l = new Ct(), f = new Ct(), c = new E(n); c.a < c.c.c.length; )
+ i = u(y(c), 128), i.v = 0, i.n = i.i.c.length, i.u = i.t.c.length, i.n == 0 && Ht(l, i, l.c.b, l.c), i.u == 0 && i.r.a.gc() == 0 && Ht(f, i, f.c.b, f.c);
+ for (o = -1; l.b != 0; )
+ for (i = u(hx(l, 0), 128), t = new E(i.t); t.a < t.c.c.length; )
+ e = u(y(t), 268), a = e.b, a.v = j.Math.max(a.v, i.v + 1), o = j.Math.max(o, a.v), --a.n, a.n == 0 && Ht(l, a, l.c.b, l.c);
+ if (o > -1) {
+ for (r = _e(f, 0); r.b != r.d.c; )
+ i = u(Re(r), 128), i.v = o;
+ for (; f.b != 0; )
+ for (i = u(hx(f, 0), 128), t = new E(i.i); t.a < t.c.c.length; )
+ e = u(y(t), 268), h = e.a, h.r.a.gc() == 0 && (h.v = j.Math.min(h.v, i.v - 1), --h.u, h.u == 0 && Ht(f, h, f.c.b, f.c));
+ }
+ }
+ function ZRn(n, e, t, i, r) {
+ var c, o, f, h;
+ return h = xt, o = !1, f = TZ(n, ji(new fn(e.a, e.b), n), st(new fn(t.a, t.b), r), ji(new fn(i.a, i.b), t)), c = !!f && !(j.Math.abs(f.a - n.a) <= f0 && j.Math.abs(f.b - n.b) <= f0 || j.Math.abs(f.a - e.a) <= f0 && j.Math.abs(f.b - e.b) <= f0), f = TZ(n, ji(new fn(e.a, e.b), n), t, r), f && ((j.Math.abs(f.a - n.a) <= f0 && j.Math.abs(f.b - n.b) <= f0) == (j.Math.abs(f.a - e.a) <= f0 && j.Math.abs(f.b - e.b) <= f0) || c ? h = j.Math.min(h, L5(ji(f, t))) : o = !0), f = TZ(n, ji(new fn(e.a, e.b), n), i, r), f && (o || (j.Math.abs(f.a - n.a) <= f0 && j.Math.abs(f.b - n.b) <= f0) == (j.Math.abs(f.a - e.a) <= f0 && j.Math.abs(f.b - e.b) <= f0) || c) && (h = j.Math.min(h, L5(ji(f, i)))), h;
+ }
+ function n_n(n) {
+ gd(n, new Oa(vj(ad(fd(ld(hd(new na(), Tl), qKn), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new kan()), os))), Z(n, Tl, lk, cn(Brn)), Z(n, Tl, qM, (qn(), !0)), Z(n, Tl, hg, cn(lWn)), Z(n, Tl, ip, cn(aWn)), Z(n, Tl, tp, cn(dWn)), Z(n, Tl, $4, cn(hWn)), Z(n, Tl, G6, cn(_rn)), Z(n, Tl, F4, cn(bWn)), Z(n, Tl, Snn, cn(Nrn)), Z(n, Tl, Inn, cn(xrn)), Z(n, Tl, Onn, cn(Lrn)), Z(n, Tl, Dnn, cn(Rrn)), Z(n, Tl, Pnn, cn(uS));
+ }
+ function IEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ for (le(e, "Interactive crossing minimization", 1), o = 0, c = new E(n.b); c.a < c.c.c.length; )
+ i = u(y(c), 29), i.p = o++;
+ for (g = LJ(n), C = new yG(g.length), SRn(new Ku(A(M(QWn, 1), rn, 225, 0, [C])), g), m = 0, o = 0, r = new E(n.b); r.a < r.c.c.length; ) {
+ for (i = u(y(r), 29), t = 0, d = 0, a = new E(i.a); a.a < a.c.c.length; )
+ for (h = u(y(a), 10), h.n.a > 0 && (t += h.n.a + h.o.a / 2, ++d), v = new E(h.j); v.a < v.c.c.length; )
+ p = u(y(v), 11), p.p = m++;
+ for (d > 0 && (t /= d), S = F(Ci, pr, 25, i.a.c.length, 15, 1), f = 0, l = new E(i.a); l.a < l.c.c.length; )
+ h = u(y(l), 10), h.p = f++, S[h.p] = vEe(h, t), h.k == (Qn(), pi) && H(h, (G(), pun), S[h.p]);
+ Pn(), wi(i.a, new f6n(S)), BBn(C, g, o, !0), ++o;
+ }
+ ce(e);
+ }
+ function F6(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (e.e == 5) {
+ URn(n, e);
+ return;
+ }
+ if (l = e, !(l.b == null || n.b == null)) {
+ for (Jw(n), D6(n), Jw(l), D6(l), t = F(be, Le, 25, n.b.length + l.b.length, 15, 1), a = 0, i = 0, o = 0; i < n.b.length && o < l.b.length; )
+ if (r = n.b[i], c = n.b[i + 1], f = l.b[o], h = l.b[o + 1], c < f)
+ t[a++] = n.b[i++], t[a++] = n.b[i++];
+ else if (c >= f && r <= h)
+ f <= r && c <= h ? i += 2 : f <= r ? (n.b[i] = h + 1, o += 2) : c <= h ? (t[a++] = r, t[a++] = f - 1, i += 2) : (t[a++] = r, t[a++] = f - 1, n.b[i] = h + 1, o += 2);
+ else if (h < r)
+ o += 2;
+ else
+ throw T(new _r("Token#subtractRanges(): Internal Error: [" + n.b[i] + "," + n.b[i + 1] + "] - [" + l.b[o] + "," + l.b[o + 1] + "]"));
+ for (; i < n.b.length; )
+ t[a++] = n.b[i++], t[a++] = n.b[i++];
+ n.b = F(be, Le, 25, a, 15, 1), pc(t, 0, n.b, 0, a);
+ }
+ }
+ function OEe(n) {
+ var e, t, i, r, c, o, f;
+ if (!n.A.dc()) {
+ if (n.A.Hc((Vu(), Ay)) && (u(br(n.b, (J(), Kn)), 124).k = !0, u(br(n.b, ae), 124).k = !0, e = n.q != (Ai(), jh) && n.q != Sc, fq(u(br(n.b, Vn), 124), e), fq(u(br(n.b, Gn), 124), e), fq(n.g, e), n.A.Hc(rd) && (u(br(n.b, Kn), 124).j = !0, u(br(n.b, ae), 124).j = !0, u(br(n.b, Vn), 124).k = !0, u(br(n.b, Gn), 124).k = !0, n.g.k = !0)), n.A.Hc(My))
+ for (n.a.j = !0, n.a.k = !0, n.g.j = !0, n.g.k = !0, f = n.B.Hc((xu(), f9)), r = qF(), c = 0, o = r.length; c < o; ++c)
+ i = r[c], t = u(br(n.i, i), 306), t && (GQ(i) ? (t.j = !0, t.k = !0) : (t.j = !f, t.k = !f));
+ n.A.Hc(sw) && n.B.Hc((xu(), Py)) && (n.g.j = !0, n.g.j = !0, n.a.j || (n.a.j = !0, n.a.k = !0, n.a.e = !0));
+ }
+ }
+ function DEe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ for (i = new E(n.e.b); i.a < i.c.c.length; )
+ for (t = u(y(i), 29), c = new E(t.a); c.a < c.c.c.length; )
+ if (r = u(y(c), 10), p = n.i[r.p], l = p.a.e, h = p.d.e, r.n.b = l, S = h - l - r.o.b, e = lL(r), g = (gb(), (r.q ? r.q : (Pn(), Pn(), ph))._b((nn(), E0)) ? d = u(k(r, E0), 197) : d = u(k(qi(r), $m), 197), d), e && (g == xg || g == Fg) && (r.o.b += S), e && (g == Y_ || g == xg || g == Fg)) {
+ for (m = new E(r.j); m.a < m.c.c.length; )
+ v = u(y(m), 11), (J(), qc).Hc(v.j) && (a = u(te(n.k, v), 121), v.n.b = a.e - l);
+ for (f = new E(r.b); f.a < f.c.c.length; )
+ o = u(y(f), 70), C = u(k(r, j0), 21), C.Hc((Eb(), no)) ? o.n.b += S : C.Hc(yh) && (o.n.b += S / 2);
+ (g == xg || g == Fg) && zr(r, (J(), ae)).Jc(new T6n(S));
+ }
+ }
+ function e_n(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p;
+ if (!n.b)
+ return !1;
+ for (o = null, g = null, h = new I$(null, null), r = 1, h.a[1] = n.b, d = h; d.a[r]; )
+ l = r, f = g, g = d, d = d.a[r], i = n.a.ue(e, d.d), r = i < 0 ? 0 : 1, i == 0 && (!t.c || vc(d.e, t.d)) && (o = d), !(d && d.b) && !R0(d.a[r]) && (R0(d.a[1 - r]) ? g = g.a[l] = eT(d, r) : R0(d.a[1 - r]) || (p = g.a[1 - l], p && (!R0(p.a[1 - l]) && !R0(p.a[l]) ? (g.b = !1, p.b = !0, d.b = !0) : (c = f.a[1] == g ? 1 : 0, R0(p.a[l]) ? f.a[c] = oAn(g, l) : R0(p.a[1 - l]) && (f.a[c] = eT(g, l)), d.b = f.a[c].b = !0, f.a[c].a[0].b = !1, f.a[c].a[1].b = !1))));
+ return o && (t.b = !0, t.d = o.e, d != o && (a = new I$(d.d, d.e), Yve(n, h, o, a), g == o && (g = a)), g.a[g.a[1] == d ? 1 : 0] = d.a[d.a[0] ? 0 : 1], --n.c), n.b = h.a[1], n.b && (n.b.b = !1), t.b;
+ }
+ function $Ee(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g;
+ for (r = new E(n.a.a.b); r.a < r.c.c.length; )
+ for (i = u(y(r), 57), h = i.c.Kc(); h.Ob(); )
+ f = u(h.Pb(), 57), i.a != f.a && (el(n.a.d) ? d = n.a.g.Oe(i, f) : d = n.a.g.Pe(i, f), c = i.b.a + i.d.b + d - f.b.a, c = j.Math.ceil(c), c = j.Math.max(0, c), YX(i, f) ? (o = yd(new ca(), n.d), l = zt(j.Math.ceil(f.b.a - i.b.a)), e = l - (f.b.a - i.b.a), a = S2(i).a, t = i, a || (a = S2(f).a, e = -e, t = f), a && (t.b.a -= e, a.n.a -= e), jo(lo(ho(ao(fo(new Ls(), j.Math.max(0, l)), 1), o), n.c[i.a.d])), jo(lo(ho(ao(fo(new Ls(), j.Math.max(0, -l)), 1), o), n.c[f.a.d]))) : (g = 1, (I(i.g, 145) && I(f.g, 10) || I(f.g, 145) && I(i.g, 10)) && (g = 2), jo(lo(ho(ao(fo(new Ls(), zt(c)), g), n.c[i.a.d]), n.c[f.a.d]))));
+ }
+ function t_n(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ if (t)
+ for (i = -1, a = new Ii(e, 0); a.b < a.d.gc(); ) {
+ if (f = (ne(a.b < a.d.gc()), u(a.d.Xb(a.c = a.b++), 10)), d = n.c[f.c.p][f.p].a, d == null) {
+ for (o = i + 1, c = new Ii(e, a.b); c.b < c.d.gc(); )
+ if (g = jce(n, (ne(c.b < c.d.gc()), u(c.d.Xb(c.c = c.b++), 10))).a, g != null) {
+ o = (_n(g), g);
+ break;
+ }
+ d = (i + o) / 2, n.c[f.c.p][f.p].a = d, n.c[f.c.p][f.p].d = (_n(d), d), n.c[f.c.p][f.p].b = 1;
+ }
+ i = (_n(d), d);
+ }
+ else {
+ for (r = 0, l = new E(e); l.a < l.c.c.length; )
+ f = u(y(l), 10), n.c[f.c.p][f.p].a != null && (r = j.Math.max(r, K(n.c[f.c.p][f.p].a)));
+ for (r += 2, h = new E(e); h.a < h.c.c.length; )
+ f = u(y(h), 10), n.c[f.c.p][f.p].a == null && (d = Fu(n.i, 24) * uk * r - 1, n.c[f.c.p][f.p].a = d, n.c[f.c.p][f.p].d = d, n.c[f.c.p][f.p].b = 1);
+ }
+ }
+ function FEe() {
+ He(fw, new Cpn()), He(Be, new xpn()), He(io, new Upn()), He(Qo, new Ypn()), He(wH, new Zpn()), He(iI, new n3n()), He(n1, new e3n()), He(h9, new t3n()), He(Dy, new bpn()), He(fH, new wpn()), He(Gl, new gpn()), He(ro, new ppn()), He(Vo, new vpn()), He(I0, new mpn()), He(hw, new kpn()), He(uu, new ypn()), He(ow, new jpn()), He(tc, new Epn()), He(ar, new Tpn()), He(Gc, new Mpn()), He(oi, new Apn()), He(M(mu, 1), new Spn()), He(op, new Ppn()), He(bm, new Ipn()), He(HA, new Opn()), He(G1n, new Dpn()), He(Si, new $pn()), He(c1n, new Fpn()), He(o1n, new Lpn()), He(O1n, new Npn()), He(rI, new Bpn()), He(z4, new Rpn()), He(Ui, new _pn()), He(fin, new Kpn()), He(d0, new Hpn()), He(hin, new qpn()), He(A1n, new Gpn()), He(z1n, new zpn()), He(b0, new Wpn()), He(tn, new Xpn()), He(s1n, new Vpn()), He(U1n, new Qpn());
+ }
+ function xEe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ for (!t && (t = pwe(e.q.getTimezoneOffset())), r = (e.q.getTimezoneOffset() - t.a) * 6e4, f = new uU(Hi(nu(e.q.getTime()), r)), h = f, f.q.getTimezoneOffset() != e.q.getTimezoneOffset() && (r > 0 ? r -= 864e5 : r += 864e5, h = new uU(Hi(nu(e.q.getTime()), r))), a = new _0(), l = n.a.length, c = 0; c < l; )
+ if (i = Di(n.a, c), i >= 97 && i <= 122 || i >= 65 && i <= 90) {
+ for (o = c + 1; o < l && Di(n.a, o) == i; ++o)
+ ;
+ PTe(a, i, o - c, f, h, t), c = o;
+ } else if (i == 39) {
+ if (++c, c < l && Di(n.a, c) == 39) {
+ a.a += "'", ++c;
+ continue;
+ }
+ for (d = !1; !d; ) {
+ for (o = c; o < l && Di(n.a, o) != 39; )
+ ++o;
+ if (o >= l)
+ throw T(new Hn("Missing trailing '"));
+ o + 1 < l && Di(n.a, o + 1) == 39 ? ++o : d = !0, De(a, Yu(n.a, c, o)), c = o + 1;
+ }
+ } else
+ a.a += String.fromCharCode(i), ++c;
+ return a.a;
+ }
+ function LEe(n) {
+ var e, t, i, r, c, o, f, h;
+ for (e = null, i = new E(n); i.a < i.c.c.length; )
+ t = u(y(i), 233), K(Zo(t.g, t.d[0]).a), t.b = null, t.e && t.e.gc() > 0 && t.c == 0 && (!e && (e = new X()), e.c[e.c.length] = t);
+ if (e)
+ for (; e.c.length != 0; ) {
+ if (t = u(h1(e, 0), 233), t.b && t.b.c.length > 0) {
+ for (c = (!t.b && (t.b = new X()), new E(t.b)); c.a < c.c.c.length; )
+ if (r = u(y(c), 233), x9(Zo(r.g, r.d[0]).a) == x9(Zo(t.g, t.d[0]).a)) {
+ if (xr(n, r, 0) > xr(n, t, 0))
+ return new Pi(r, t);
+ } else if (K(Zo(r.g, r.d[0]).a) > K(Zo(t.g, t.d[0]).a))
+ return new Pi(r, t);
+ }
+ for (f = (!t.e && (t.e = new X()), t.e).Kc(); f.Ob(); )
+ o = u(f.Pb(), 233), h = (!o.b && (o.b = new X()), o.b), ib(0, h.c.length), e5(h.c, 0, t), o.c == h.c.length && (e.c[e.c.length] = o);
+ }
+ return null;
+ }
+ function i_n(n, e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (n == null)
+ return tu;
+ if (h = e.a.zc(n, e), h != null)
+ return "[...]";
+ for (t = new ya(Qi, "[", "]"), r = n, c = 0, o = r.length; c < o; ++c)
+ i = r[c], i != null && Du(i).i & 4 ? Array.isArray(i) && (a = U8(i), !(a >= 14 && a <= 16)) ? e.a._b(i) ? (t.a ? De(t.a, t.b) : t.a = new Ju(t.d), g5(t.a, "[...]")) : (f = va(i), l = new S5(e), Fh(t, i_n(f, l))) : I(i, 177) ? Fh(t, M6e(u(i, 177))) : I(i, 190) ? Fh(t, wve(u(i, 190))) : I(i, 195) ? Fh(t, T5e(u(i, 195))) : I(i, 2012) ? Fh(t, gve(u(i, 2012))) : I(i, 48) ? Fh(t, T6e(u(i, 48))) : I(i, 364) ? Fh(t, R6e(u(i, 364))) : I(i, 832) ? Fh(t, C6e(u(i, 832))) : I(i, 104) && Fh(t, E6e(u(i, 104))) : Fh(t, i == null ? tu : Nr(i));
+ return t.a ? t.e.length == 0 ? t.a.a : t.a.a + ("" + t.e) : t.c;
+ }
+ function r_n(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ for (f = ng(e, !1, !1), S = I7(f), i && (S = o7(S)), O = K(Y(hn(e, (a6(), IR)))), C = (ne(S.b != 0), u(S.a.a.c, 8)), d = u(qo(S, 1), 8), S.b > 2 ? (a = new X(), Zt(a, new ch(S, 1, S.b)), c = N_n(a, O + n.a), $ = new xx(c), Pr($, e), t.c[t.c.length] = $) : i ? $ = u(te(n.b, fh(e)), 266) : $ = u(te(n.b, vl(e)), 266), h = fh(e), i && (h = vl(e)), o = z5e(C, h), l = O + n.a, o.a ? (l += j.Math.abs(C.b - d.b), m = new fn(d.a, (d.b + C.b) / 2)) : (l += j.Math.abs(C.a - d.a), m = new fn((d.a + C.a) / 2, d.b)), i ? it(n.d, e, new cJ($, o, m, l)) : it(n.c, e, new cJ($, o, m, l)), it(n.b, e, $), v = (!e.n && (e.n = new V(Rr, e, 1, 7)), e.n), p = new ie(v); p.e != p.i.gc(); )
+ g = u(oe(p), 137), r = K7(n, g, !0, 0, 0), t.c[t.c.length] = r;
+ }
+ function NEe(n) {
+ var e, t, i, r, c, o, f, h, l, a;
+ for (l = new X(), f = new X(), o = new E(n); o.a < o.c.c.length; )
+ r = u(y(o), 112), II(r, r.f.c.length), ej(r, r.k.c.length), r.d == 0 && (l.c[l.c.length] = r), r.i == 0 && r.e.b == 0 && (f.c[f.c.length] = r);
+ for (i = -1; l.c.length != 0; )
+ for (r = u(h1(l, 0), 112), t = new E(r.k); t.a < t.c.c.length; )
+ e = u(y(t), 129), a = e.b, aq(a, j.Math.max(a.o, r.o + 1)), i = j.Math.max(i, a.o), II(a, a.d - 1), a.d == 0 && (l.c[l.c.length] = a);
+ if (i > -1) {
+ for (c = new E(f); c.a < c.c.c.length; )
+ r = u(y(c), 112), r.o = i;
+ for (; f.c.length != 0; )
+ for (r = u(h1(f, 0), 112), t = new E(r.f); t.a < t.c.c.length; )
+ e = u(y(t), 129), h = e.a, !(h.e.b > 0) && (aq(h, j.Math.min(h.o, r.o - 1)), ej(h, h.i - 1), h.i == 0 && (f.c[f.c.length] = h));
+ }
+ }
+ function y4(n, e, t) {
+ var i, r, c, o, f, h, l;
+ if (l = n.c, !e && (e = p1n), n.c = e, n.Db & 4 && !(n.Db & 1) && (h = new gi(n, 1, 2, l, n.c), t ? t.Ei(h) : t = h), l != e) {
+ if (I(n.Cb, 284))
+ n.Db >> 16 == -10 ? t = u(n.Cb, 284).nk(e, t) : n.Db >> 16 == -15 && (!e && (e = (Sn(), Cf)), !l && (l = (Sn(), Cf)), n.Cb.nh() && (h = new xh(n.Cb, 1, 13, l, e, v1(Ou(u(n.Cb, 59)), n), !1), t ? t.Ei(h) : t = h));
+ else if (I(n.Cb, 88))
+ n.Db >> 16 == -23 && (I(e, 88) || (e = (Sn(), uo)), I(l, 88) || (l = (Sn(), uo)), n.Cb.nh() && (h = new xh(n.Cb, 1, 10, l, e, v1(wc(u(n.Cb, 26)), n), !1), t ? t.Ei(h) : t = h));
+ else if (I(n.Cb, 444))
+ for (f = u(n.Cb, 836), o = (!f.b && (f.b = new sj(new KI())), f.b), c = (i = new Ca(new ia(o.a).a), new oj(i)); c.a.b; )
+ r = u(Bd(c.a).cd(), 87), t = y4(r, uM(r, f), t);
+ }
+ return t;
+ }
+ function BEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ for (o = on(sn(hn(n, (nn(), Jb)))), g = u(hn(n, Zb), 21), h = !1, l = !1, d = new ie((!n.c && (n.c = new V(Ru, n, 9, 9)), n.c)); d.e != d.i.gc() && (!h || !l); ) {
+ for (c = u(oe(d), 118), f = 0, r = cl(of(A(M(gf, 1), rn, 20, 0, [(!c.d && (c.d = new Fn(bi, c, 8, 5)), c.d), (!c.e && (c.e = new Fn(bi, c, 7, 4)), c.e)]))); Se(r) && (i = u(ve(r), 79), a = o && Yd(i) && on(sn(hn(i, Xa))), t = xRn((!i.b && (i.b = new Fn(he, i, 4, 7)), i.b), c) ? n == At(Ir(u(D((!i.c && (i.c = new Fn(he, i, 5, 8)), i.c), 0), 82))) : n == At(Ir(u(D((!i.b && (i.b = new Fn(he, i, 4, 7)), i.b), 0), 82))), !((a || t) && (++f, f > 1))); )
+ ;
+ (f > 0 || g.Hc((Tu(), Zh)) && (!c.n && (c.n = new V(Rr, c, 1, 7)), c.n).i > 0) && (h = !0), f > 1 && (l = !0);
+ }
+ h && e.Fc((or(), Ds)), l && e.Fc((or(), Tm));
+ }
+ function c_n(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g;
+ if (g = u(hn(n, (Xe(), nd)), 21), g.dc())
+ return null;
+ if (f = 0, o = 0, g.Hc((Vu(), Ay))) {
+ for (a = u(hn(n, n9), 98), i = 2, t = 2, r = 2, c = 2, e = At(n) ? u(hn(At(n), S0), 103) : u(hn(n, S0), 103), l = new ie((!n.c && (n.c = new V(Ru, n, 9, 9)), n.c)); l.e != l.i.gc(); )
+ if (h = u(oe(l), 118), d = u(hn(h, Hg), 61), d == (J(), Xr) && (d = mZ(h, e), gr(h, Hg, d)), a == (Ai(), Sc))
+ switch (d.g) {
+ case 1:
+ i = j.Math.max(i, h.i + h.g);
+ break;
+ case 2:
+ t = j.Math.max(t, h.j + h.f);
+ break;
+ case 3:
+ r = j.Math.max(r, h.i + h.g);
+ break;
+ case 4:
+ c = j.Math.max(c, h.j + h.f);
+ }
+ else
+ switch (d.g) {
+ case 1:
+ i += h.g + 2;
+ break;
+ case 2:
+ t += h.f + 2;
+ break;
+ case 3:
+ r += h.g + 2;
+ break;
+ case 4:
+ c += h.f + 2;
+ }
+ f = j.Math.max(i, r), o = j.Math.max(t, c);
+ }
+ return i0(n, f, o, !0, !0);
+ }
+ function pL(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ for ($ = u(es(qC(gt(new $n(null, new xn(e.d, 16)), new J5n(t)), new Y5n(t)), pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [(hf(), hs)]))), 15), d = nt, a = Bi, h = new E(e.b.j); h.a < h.c.c.length; )
+ f = u(y(h), 11), f.j == t && (d = j.Math.min(d, f.p), a = j.Math.max(a, f.p));
+ if (d == nt)
+ for (o = 0; o < $.gc(); o++)
+ GX(u($.Xb(o), 101), t, o);
+ else
+ for (O = F(be, Le, 25, r.length, 15, 1), Sfe(O, O.length), S = $.Kc(); S.Ob(); ) {
+ for (C = u(S.Pb(), 101), c = u(te(n.b, C), 177), l = 0, m = d; m <= a; m++)
+ c[m] && (l = j.Math.max(l, i[m]));
+ if (C.i) {
+ for (p = C.i.c, x = new hi(), g = 0; g < r.length; g++)
+ r[p][g] && ci(x, Q(O[g]));
+ for (; Mh(x, Q(l)); )
+ ++l;
+ }
+ for (GX(C, t, l), v = d; v <= a; v++)
+ c[v] && (i[v] = l + 1);
+ C.i && (O[C.i.c] = l);
+ }
+ }
+ function REe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (r = null, i = new E(e.a); i.a < i.c.c.length; )
+ t = u(y(i), 10), lL(t) ? c = (f = yd(K9(new ca(), t), n.f), h = yd(K9(new ca(), t), n.f), l = new qW(t, !0, f, h), a = t.o.b, d = (gb(), (t.q ? t.q : (Pn(), Pn(), ph))._b((nn(), E0)) ? g = u(k(t, E0), 197) : g = u(k(qi(t), $m), 197), g), p = 1e4, d == Fg && (p = 1), v = jo(lo(ho(fo(ao(new Ls(), p), zt(j.Math.ceil(a))), f), h)), d == xg && ci(n.d, v), qBn(n, ma(zr(t, (J(), Gn))), l), qBn(n, zr(t, Vn), l), l) : c = (m = yd(K9(new ca(), t), n.f), Rt(gt(new $n(null, new xn(t.j, 16)), new Fwn()), new Z7n(n, m)), new qW(t, !1, m, m)), n.i[t.p] = c, r && (o = r.c.d.a + Mw(n.n, r.c, t) + t.d.d, r.b || (o += r.c.o.b), jo(lo(ho(ao(fo(new Ls(), zt(j.Math.ceil(o))), 0), r.d), c.a))), r = c;
+ }
+ function _Ee(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (le(e, "Label dummy insertions", 1), d = new X(), o = K(Y(k(n, (nn(), jp)))), l = K(Y(k(n, ew))), a = u(k(n, ls), 103), p = new E(n.a); p.a < p.c.c.length; )
+ for (g = u(y(p), 10), c = new re(ue(ei(g).a.Kc(), new Mn())); Se(c); )
+ if (r = u(ve(c), 17), r.c.i != r.d.i && qO(r.b, KWn)) {
+ for (m = D0e(r), v = nh(r.b.c.length), t = A9e(n, r, m, v), d.c[d.c.length] = t, i = t.o, f = new Ii(r.b, 0); f.b < f.d.gc(); )
+ h = (ne(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 70)), B(k(h, Jf)) === B((sf(), yv)) && (a == (sr(), Jh) || a == Qh ? (i.a += h.o.a + l, i.b = j.Math.max(i.b, h.o.b)) : (i.a = j.Math.max(i.a, h.o.a), i.b += h.o.b + l), v.c[v.c.length] = h, Uu(f));
+ a == (sr(), Jh) || a == Qh ? (i.a -= l, i.b += o + m) : i.b += o - l + m;
+ }
+ Zt(n.a, d), ce(e);
+ }
+ function KEe(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p;
+ for (c = new ILn(e), d = P7e(n, e, c), p = j.Math.max(K(Y(k(e, (nn(), S1)))), 1), a = new E(d.a); a.a < a.c.c.length; )
+ l = u(y(a), 46), h = B$n(u(l.a, 8), u(l.b, 8), p), Ot = !0, Ot = Ot & Ed(t, new fn(h.c, h.d)), Ot = Ot & Ed(t, W0(new fn(h.c, h.d), h.b, 0)), Ot = Ot & Ed(t, W0(new fn(h.c, h.d), 0, h.a)), Ot & Ed(t, W0(new fn(h.c, h.d), h.b, h.a));
+ switch (g = c.d, f = B$n(u(d.b.a, 8), u(d.b.b, 8), p), g == (J(), Gn) || g == Vn ? (i.c[g.g] = j.Math.min(i.c[g.g], f.d), i.b[g.g] = j.Math.max(i.b[g.g], f.d + f.a)) : (i.c[g.g] = j.Math.min(i.c[g.g], f.c), i.b[g.g] = j.Math.max(i.b[g.g], f.c + f.b)), r = Qt, o = c.c.i.d, g.g) {
+ case 4:
+ r = o.c;
+ break;
+ case 2:
+ r = o.b;
+ break;
+ case 1:
+ r = o.a;
+ break;
+ case 3:
+ r = o.d;
+ }
+ return i.a[g.g] = j.Math.max(i.a[g.g], r), c;
+ }
+ function HEe(n) {
+ var e, t, i, r;
+ if (t = n.D != null ? n.D : n.B, e = Pf(t, eu(91)), e != -1) {
+ i = t.substr(0, e), r = new i1();
+ do
+ r.a += "[";
+ while ((e = c3(t, 91, ++e)) != -1);
+ An(i, X2) ? r.a += "Z" : An(i, cm) ? r.a += "B" : An(i, EA) ? r.a += "C" : An(i, um) ? r.a += "D" : An(i, sm) ? r.a += "F" : An(i, om) ? r.a += "I" : An(i, fm) ? r.a += "J" : An(i, hm) ? r.a += "S" : (r.a += "L", r.a += "" + i, r.a += ";");
+ try {
+ return null;
+ } catch (c) {
+ if (c = jt(c), !I(c, 60))
+ throw T(c);
+ }
+ } else if (Pf(t, eu(46)) == -1) {
+ if (An(t, X2))
+ return _u;
+ if (An(t, cm))
+ return mu;
+ if (An(t, EA))
+ return xs;
+ if (An(t, um))
+ return Ci;
+ if (An(t, sm))
+ return bw;
+ if (An(t, om))
+ return be;
+ if (An(t, fm))
+ return Jl;
+ if (An(t, hm))
+ return Wg;
+ }
+ return null;
+ }
+ function u_n(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ for (l = new Hh(t), Pr(l, e), H(l, (G(), rt), e), l.o.a = e.g, l.o.b = e.f, l.n.a = e.i, l.n.b = e.j, W(t.a, l), it(n.a, e, l), ((!e.a && (e.a = new V(Pt, e, 10, 11)), e.a).i != 0 || on(sn(hn(e, (nn(), Jb))))) && H(l, lun, (qn(), !0)), h = u(k(t, Ac), 21), a = u(k(l, (nn(), Nt)), 98), a == (Ai(), Hl) ? H(l, Nt, jf) : a != jf && h.Fc((or(), sv)), i = u(k(t, ls), 103), f = new ie((!e.c && (e.c = new V(Ru, e, 9, 9)), e.c)); f.e != f.i.gc(); )
+ o = u(oe(f), 118), on(sn(hn(o, Qa))) || pCe(n, o, l, h, i, a);
+ for (c = new ie((!e.n && (e.n = new V(Rr, e, 1, 7)), e.n)); c.e != c.i.gc(); )
+ r = u(oe(c), 137), !on(sn(hn(r, Qa))) && r.a && W(l.b, EF(r));
+ return on(sn(k(l, Im))) && h.Fc((or(), NS)), on(sn(k(l, YS))) && (h.Fc((or(), BS)), h.Fc(Tm), H(l, Nt, jf)), l;
+ }
+ function qEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn;
+ f = u(te(e.c, n), 459), $ = e.a.c, h = e.a.c + e.a.b, wn = f.f, zn = f.a, o = wn < zn, m = new fn($, wn), O = new fn(h, zn), r = ($ + h) / 2, C = new fn(r, wn), x = new fn(r, zn), c = n8e(n, wn, zn), U = tf(e.B), en = new fn(r, c), ln = tf(e.D), t = Ewe(A(M(di, 1), q, 8, 0, [U, en, ln])), p = !1, S = e.B.i, S && S.c && f.d && (l = o && S.p < S.c.a.c.length - 1 || !o && S.p > 0, l ? l && (g = S.p, o ? ++g : --g, d = u(un(S.c.a, g), 10), i = QOn(d), p = !(Kx(i, U, t[0]) || SCn(i, U, t[0]))) : p = !0), v = !1, _ = e.D.i, _ && _.c && f.e && (a = o && _.p > 0 || !o && _.p < _.c.a.c.length - 1, a ? (g = _.p, o ? --g : ++g, d = u(un(_.c.a, g), 10), i = QOn(d), v = !(Kx(i, t[0], ln) || SCn(i, t[0], ln))) : v = !0), p && v && Ke(n.a, en), p || V5(n.a, A(M(di, 1), q, 8, 0, [m, C])), v || V5(n.a, A(M(di, 1), q, 8, 0, [x, O]));
+ }
+ function CM(n, e) {
+ var t, i, r, c, o, f, h, l;
+ if (I(n.Ug(), 160) ? (CM(u(n.Ug(), 160), e), e.a += " > ") : e.a += "Root ", t = n.Tg().zb, An(t.substr(0, 3), "Elk") ? De(e, t.substr(3)) : e.a += "" + t, r = n.zg(), r) {
+ De((e.a += " ", e), r);
+ return;
+ }
+ if (I(n, 354) && (l = u(n, 137).a, l)) {
+ De((e.a += " ", e), l);
+ return;
+ }
+ for (o = new ie(n.Ag()); o.e != o.i.gc(); )
+ if (c = u(oe(o), 137), l = c.a, l) {
+ De((e.a += " ", e), l);
+ return;
+ }
+ if (I(n, 352) && (i = u(n, 79), !i.b && (i.b = new Fn(he, i, 4, 7)), i.b.i != 0 && (!i.c && (i.c = new Fn(he, i, 5, 8)), i.c.i != 0))) {
+ for (e.a += " (", f = new b2((!i.b && (i.b = new Fn(he, i, 4, 7)), i.b)); f.e != f.i.gc(); )
+ f.e > 0 && (e.a += Qi), CM(u(oe(f), 160), e);
+ for (e.a += TN, h = new b2((!i.c && (i.c = new Fn(he, i, 5, 8)), i.c)); h.e != h.i.gc(); )
+ h.e > 0 && (e.a += Qi), CM(u(oe(h), 160), e);
+ e.a += ")";
+ }
+ }
+ function GEe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p;
+ if (c = u(k(n, (G(), rt)), 79), !!c) {
+ for (i = n.a, r = new kr(t), st(r, F4e(n)), _3(n.d.i, n.c.i) ? (g = n.c, d = Gr(A(M(di, 1), q, 8, 0, [g.n, g.a])), ji(d, t)) : d = tf(n.c), Ht(i, d, i.a, i.a.a), p = tf(n.d), k(n, I_) != null && st(p, u(k(n, I_), 8)), Ht(i, p, i.c.b, i.c), hb(i, r), o = ng(c, !0, !0), JC(o, u(D((!c.b && (c.b = new Fn(he, c, 4, 7)), c.b), 0), 82)), YC(o, u(D((!c.c && (c.c = new Fn(he, c, 5, 8)), c.c), 0), 82)), z7(i, o), a = new E(n.b); a.a < a.c.c.length; )
+ l = u(y(a), 70), f = u(k(l, rt), 137), _d(f, l.o.a), Rd(f, l.o.b), Jo(f, l.n.a + r.a, l.n.b + r.b), gr(f, (x2(), VR), sn(k(l, VR)));
+ h = u(k(n, (nn(), Mr)), 74), h ? (hb(h, r), gr(c, Mr, h)) : gr(c, Mr, null), e == (Kh(), Sp) ? gr(c, Vh, Sp) : gr(c, Vh, null);
+ }
+ }
+ function zEe(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C, S, $;
+ for (p = e.c.length, g = 0, d = new E(n.b); d.a < d.c.c.length; )
+ if (a = u(y(d), 29), S = a.a, S.c.length != 0) {
+ for (C = new E(S), l = 0, $ = null, r = u(y(C), 10), c = null; r; ) {
+ if (c = u(un(e, r.p), 257), c.c >= 0) {
+ for (h = null, f = new Ii(a.a, l + 1); f.b < f.d.gc() && (o = (ne(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 10)), h = u(un(e, o.p), 257), !(h.d == c.d && h.c < c.c)); )
+ h = null;
+ h && ($ && (js(i, r.p, Q(u(un(i, r.p), 19).a - 1)), u(un(t, $.p), 15).Mc(c)), c = Tve(c, r, p++), e.c[e.c.length] = c, W(t, new X()), $ ? (u(un(t, $.p), 15).Fc(c), W(i, Q(1))) : W(i, Q(0)));
+ }
+ v = null, C.a < C.c.c.length && (v = u(y(C), 10), m = u(un(e, v.p), 257), u(un(t, r.p), 15).Fc(m), js(i, v.p, Q(u(un(i, v.p), 19).a + 1))), c.d = g, c.c = l++, $ = r, r = v;
+ }
+ ++g;
+ }
+ }
+ function vL(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ return h = n, a = ji(new fn(e.a, e.b), n), l = t, d = ji(new fn(i.a, i.b), t), g = h.a, C = h.b, v = l.a, $ = l.b, p = a.a, S = a.b, m = d.a, O = d.b, r = m * S - p * O, Yo(), mo(Gf), j.Math.abs(0 - r) <= Gf || r == 0 || isNaN(0) && isNaN(r) ? !1 : (o = 1 / r * ((g - v) * S - (C - $) * p), f = 1 / r * -(-(g - v) * O + (C - $) * m), c = (mo(Gf), (j.Math.abs(0 - o) <= Gf || o == 0 || isNaN(0) && isNaN(o) ? 0 : 0 < o ? -1 : 0 > o ? 1 : vd(isNaN(0), isNaN(o))) < 0 && (mo(Gf), (j.Math.abs(o - 1) <= Gf || o == 1 || isNaN(o) && isNaN(1) ? 0 : o < 1 ? -1 : o > 1 ? 1 : vd(isNaN(o), isNaN(1))) < 0) && (mo(Gf), (j.Math.abs(0 - f) <= Gf || f == 0 || isNaN(0) && isNaN(f) ? 0 : 0 < f ? -1 : 0 > f ? 1 : vd(isNaN(0), isNaN(f))) < 0) && (mo(Gf), (j.Math.abs(f - 1) <= Gf || f == 1 || isNaN(f) && isNaN(1) ? 0 : f < 1 ? -1 : f > 1 ? 1 : vd(isNaN(f), isNaN(1))) < 0)), c);
+ }
+ function UEe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U;
+ for (d = new NW(new Mq(n)); d.b != d.c.a.d; )
+ for (a = hPn(d), f = u(a.d, 56), e = u(a.e, 56), o = f.Tg(), m = 0, x = (o.i == null && Lf(o), o.i).length; m < x; ++m)
+ if (l = (c = (o.i == null && Lf(o), o.i), m >= 0 && m < c.length ? c[m] : null), l.Ij() && !l.Jj()) {
+ if (I(l, 99))
+ h = u(l, 18), !(h.Bb & sc) && (U = ir(h), !(U && U.Bb & sc)) && Dye(n, h, f, e);
+ else if (er(), u(l, 66).Oj() && (t = (_ = l, u(_ ? u(e, 49).xh(_) : null, 153)), t))
+ for (p = u(f.ah(l), 153), i = t.gc(), C = 0, v = p.gc(); C < v; ++C)
+ if (g = p.il(C), I(g, 99)) {
+ if (O = p.jl(C), r = Ld(n, O), r == null && O != null) {
+ if ($ = u(g, 18), !n.b || $.Bb & sc || ir($))
+ continue;
+ r = O;
+ }
+ if (!t.dl(g, r)) {
+ for (S = 0; S < i; ++S)
+ if (t.il(S) == g && B(t.jl(S)) === B(r)) {
+ t.ii(t.gc() - 1, S), --i;
+ break;
+ }
+ }
+ } else
+ t.dl(p.il(C), p.jl(C));
+ }
+ }
+ function WEe(n, e, t, i, r, c, o) {
+ var f, h, l, a, d, g, p, v, m, C, S, $, O;
+ if (S = Jye(e, t, n.g), r.n && r.n && c && go(r, po(c), (Xu(), ws)), n.b)
+ for (C = 0; C < S.c.length; C++)
+ d = (Ln(C, S.c.length), u(S.c[C], 200)), C != 0 && (p = (Ln(C - 1, S.c.length), u(S.c[C - 1], 200)), CDn(d, p.f + p.b + n.g)), sTe(C, S, t, n.g), s4e(n, d), r.n && c && go(r, po(c), (Xu(), ws));
+ else
+ for (m = new E(S); m.a < m.c.c.length; )
+ for (v = u(y(m), 200), a = new E(v.a); a.a < a.c.c.length; )
+ l = u(y(a), 187), $ = new YW(l.s, l.t, n.g), TV($, l), W(v.d, $);
+ return g3e(n, S), r.n && r.n && c && go(r, po(c), (Xu(), ws)), O = j.Math.max(n.d, i.a - (o.b + o.c)), g = j.Math.max(n.c, i.b - (o.d + o.a)), f = g - n.c, n.e && n.f && (h = O / g, h < n.a ? O = g * n.a : f += O / n.a - g), n.e && H2e(S, O, f), r.n && r.n && c && go(r, po(c), (Xu(), ws)), new bD(n.a, O, n.c + f, (w4(), Jm));
+ }
+ function XEe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d;
+ for (n.j = F(be, Le, 25, n.g, 15, 1), n.o = new X(), Rt(qr(new $n(null, new xn(n.e.b, 16)), new Kwn()), new M6n(n)), n.a = F(_u, wh, 25, n.b, 16, 1), d7(new $n(null, new xn(n.e.b, 16)), new S6n(n)), i = (d = new X(), Rt(gt(qr(new $n(null, new xn(n.e.b, 16)), new qwn()), new A6n(n)), new nkn(n, d)), d), h = new E(i); h.a < h.c.c.length; )
+ if (f = u(y(h), 508), !(f.c.length <= 1)) {
+ if (f.c.length == 2) {
+ _me(f), lL((Ln(0, f.c.length), u(f.c[0], 17)).d.i) || W(n.o, f);
+ continue;
+ }
+ if (!(ave(f) || e6e(f, new Hwn())))
+ for (l = new E(f), r = null; l.a < l.c.c.length; )
+ e = u(y(l), 17), t = n.c[e.p], !r || l.a >= l.c.c.length ? a = pX((Qn(), ii), pi) : a = pX((Qn(), pi), pi), a *= 2, c = t.a.g, t.a.g = j.Math.max(c, c + (a - c)), o = t.b.g, t.b.g = j.Math.max(o, o + (a - o)), r = e;
+ }
+ }
+ function VEe(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _;
+ for (_ = MEn(n), a = new X(), f = n.c.length, d = f - 1, g = f + 1; _.a.c != 0; ) {
+ for (; t.b != 0; )
+ O = (ne(t.b != 0), u(Cs(t, t.a.a), 112)), R5(_.a, O) != null, O.g = d--, kZ(O, e, t, i);
+ for (; e.b != 0; )
+ x = (ne(e.b != 0), u(Cs(e, e.a.a), 112)), R5(_.a, x) != null, x.g = g++, kZ(x, e, t, i);
+ for (l = Bi, S = (o = new T5(new j5(new P9(_.a).a).b), new I9(o)); G9(S.a.a); ) {
+ if (C = (c = pE(S.a), u(c.cd(), 112)), !i && C.b > 0 && C.a <= 0) {
+ a.c = F(Zn, rn, 1, 0, 5, 1), a.c[a.c.length] = C;
+ break;
+ }
+ m = C.i - C.d, m >= l && (m > l && (a.c = F(Zn, rn, 1, 0, 5, 1), l = m), a.c[a.c.length] = C);
+ }
+ a.c.length != 0 && (h = u(un(a, _T(r, a.c.length)), 112), R5(_.a, h) != null, h.g = g++, kZ(h, e, t, i), a.c = F(Zn, rn, 1, 0, 5, 1));
+ }
+ for ($ = n.c.length + 1, v = new E(n); v.a < v.c.c.length; )
+ p = u(y(v), 112), p.g < f && (p.g = p.g + $);
+ }
+ function TM(n, e) {
+ var t;
+ if (n.e)
+ throw T(new $r((Sh(kR), uN + kR.k + sN)));
+ if (!pre(n.a, e))
+ throw T(new _r(vKn + e + mKn));
+ if (e == n.d)
+ return n;
+ switch (t = n.d, n.d = e, t.g) {
+ case 0:
+ switch (e.g) {
+ case 2:
+ Qd(n);
+ break;
+ case 1:
+ wl(n), Qd(n);
+ break;
+ case 4:
+ Ww(n), Qd(n);
+ break;
+ case 3:
+ Ww(n), wl(n), Qd(n);
+ }
+ break;
+ case 2:
+ switch (e.g) {
+ case 1:
+ wl(n), Wx(n);
+ break;
+ case 4:
+ Ww(n), Qd(n);
+ break;
+ case 3:
+ Ww(n), wl(n), Qd(n);
+ }
+ break;
+ case 1:
+ switch (e.g) {
+ case 2:
+ wl(n), Wx(n);
+ break;
+ case 4:
+ wl(n), Ww(n), Qd(n);
+ break;
+ case 3:
+ wl(n), Ww(n), wl(n), Qd(n);
+ }
+ break;
+ case 4:
+ switch (e.g) {
+ case 2:
+ Ww(n), Qd(n);
+ break;
+ case 1:
+ Ww(n), wl(n), Qd(n);
+ break;
+ case 3:
+ wl(n), Wx(n);
+ }
+ break;
+ case 3:
+ switch (e.g) {
+ case 2:
+ wl(n), Ww(n), Qd(n);
+ break;
+ case 1:
+ wl(n), Ww(n), wl(n), Qd(n);
+ break;
+ case 4:
+ wl(n), Wx(n);
+ }
+ }
+ return n;
+ }
+ function cg(n, e) {
+ var t;
+ if (n.d)
+ throw T(new $r((Sh(HR), uN + HR.k + sN)));
+ if (!vre(n.a, e))
+ throw T(new _r(vKn + e + mKn));
+ if (e == n.c)
+ return n;
+ switch (t = n.c, n.c = e, t.g) {
+ case 0:
+ switch (e.g) {
+ case 2:
+ Ea(n);
+ break;
+ case 1:
+ bl(n), Ea(n);
+ break;
+ case 4:
+ Xw(n), Ea(n);
+ break;
+ case 3:
+ Xw(n), bl(n), Ea(n);
+ }
+ break;
+ case 2:
+ switch (e.g) {
+ case 1:
+ bl(n), Xx(n);
+ break;
+ case 4:
+ Xw(n), Ea(n);
+ break;
+ case 3:
+ Xw(n), bl(n), Ea(n);
+ }
+ break;
+ case 1:
+ switch (e.g) {
+ case 2:
+ bl(n), Xx(n);
+ break;
+ case 4:
+ bl(n), Xw(n), Ea(n);
+ break;
+ case 3:
+ bl(n), Xw(n), bl(n), Ea(n);
+ }
+ break;
+ case 4:
+ switch (e.g) {
+ case 2:
+ Xw(n), Ea(n);
+ break;
+ case 1:
+ Xw(n), bl(n), Ea(n);
+ break;
+ case 3:
+ bl(n), Xx(n);
+ }
+ break;
+ case 3:
+ switch (e.g) {
+ case 2:
+ bl(n), Xw(n), Ea(n);
+ break;
+ case 1:
+ bl(n), Xw(n), bl(n), Ea(n);
+ break;
+ case 4:
+ bl(n), Xx(n);
+ }
+ }
+ return n;
+ }
+ function QEe(n, e, t) {
+ var i, r, c, o, f, h, l, a;
+ for (h = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); h.e != h.i.gc(); )
+ for (f = u(oe(h), 33), r = new re(ue(qh(f).a.Kc(), new Mn())); Se(r); ) {
+ if (i = u(ve(r), 79), !i.b && (i.b = new Fn(he, i, 4, 7)), !(i.b.i <= 1 && (!i.c && (i.c = new Fn(he, i, 5, 8)), i.c.i <= 1)))
+ throw T(new Gv("Graph must not contain hyperedges."));
+ if (!j6(i) && f != Ir(u(D((!i.c && (i.c = new Fn(he, i, 5, 8)), i.c), 0), 82)))
+ for (l = new Njn(), Pr(l, i), H(l, (al(), hp), i), rte(l, u(Vr(Sr(t.f, f)), 144)), cte(l, u(te(t, Ir(u(D((!i.c && (i.c = new Fn(he, i, 5, 8)), i.c), 0), 82))), 144)), W(e.c, l), o = new ie((!i.n && (i.n = new V(Rr, i, 1, 7)), i.n)); o.e != o.i.gc(); )
+ c = u(oe(o), 137), a = new _An(l, c.a), Pr(a, c), H(a, hp, c), a.e.a = j.Math.max(c.g, 1), a.e.b = j.Math.max(c.f, 1), EZ(a), W(e.d, a);
+ }
+ }
+ function JEe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ for (d = new NZ(n), V1e(d, !(e == (sr(), Jh) || e == Qh)), a = d.a, g = new i2(), r = (_o(), A(M(Kb, 1), z, 232, 0, [Zr, xc, nc])), o = 0, h = r.length; o < h; ++o)
+ t = r[o], l = GO(a, Zr, t), l && (g.d = j.Math.max(g.d, l.Re()));
+ for (i = A(M(Kb, 1), z, 232, 0, [Zr, xc, nc]), c = 0, f = i.length; c < f; ++c)
+ t = i[c], l = GO(a, nc, t), l && (g.a = j.Math.max(g.a, l.Re()));
+ for (m = A(M(Kb, 1), z, 232, 0, [Zr, xc, nc]), S = 0, O = m.length; S < O; ++S)
+ p = m[S], l = GO(a, p, Zr), l && (g.b = j.Math.max(g.b, l.Se()));
+ for (v = A(M(Kb, 1), z, 232, 0, [Zr, xc, nc]), C = 0, $ = v.length; C < $; ++C)
+ p = v[C], l = GO(a, p, nc), l && (g.c = j.Math.max(g.c, l.Se()));
+ return g.d > 0 && (g.d += a.n.d, g.d += a.d), g.a > 0 && (g.a += a.n.a, g.a += a.d), g.b > 0 && (g.b += a.n.b, g.b += a.d), g.c > 0 && (g.c += a.n.c, g.c += a.d), g;
+ }
+ function s_n(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v;
+ for (g = t.d, d = t.c, c = new fn(t.f.a + t.d.b + t.d.c, t.f.b + t.d.d + t.d.a), o = c.b, l = new E(n.a); l.a < l.c.c.length; )
+ if (f = u(y(l), 10), f.k == (Qn(), Vt)) {
+ switch (i = u(k(f, (G(), ec)), 61), r = u(k(f, bun), 8), a = f.n, i.g) {
+ case 2:
+ a.a = t.f.a + g.c - d.a;
+ break;
+ case 4:
+ a.a = -d.a - g.b;
+ }
+ switch (v = 0, i.g) {
+ case 2:
+ case 4:
+ e == (Ai(), jh) ? (p = K(Y(k(f, y0))), a.b = c.b * p - u(k(f, (nn(), C0)), 8).b, v = a.b + r.b, lT(f, !1, !0)) : e == Sc && (a.b = K(Y(k(f, y0))) - u(k(f, (nn(), C0)), 8).b, v = a.b + r.b, lT(f, !1, !0));
+ }
+ o = j.Math.max(o, v);
+ }
+ for (t.f.b += o - c.b, h = new E(n.a); h.a < h.c.c.length; )
+ if (f = u(y(h), 10), f.k == (Qn(), Vt))
+ switch (i = u(k(f, (G(), ec)), 61), a = f.n, i.g) {
+ case 1:
+ a.b = -d.b - g.d;
+ break;
+ case 3:
+ a.b = t.f.b + g.a - d.b;
+ }
+ }
+ function YEe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln;
+ for (r = u(k(n, (uc(), Wm)), 33), l = nt, a = nt, f = Bi, h = Bi, U = _e(n.b, 0); U.b != U.d.c; )
+ x = u(Re(U), 86), m = x.e, C = x.f, l = j.Math.min(l, m.a - C.a / 2), a = j.Math.min(a, m.b - C.b / 2), f = j.Math.max(f, m.a + C.a / 2), h = j.Math.max(h, m.b + C.b / 2);
+ for (v = u(hn(r, (n0(), uYn)), 116), p = new fn(v.b - l, v.d - a), _ = _e(n.b, 0); _.b != _.d.c; )
+ x = u(Re(_), 86), g = k(x, Wm), I(g, 239) && (c = u(g, 33), d = st(x.e, p), Jo(c, d.a - c.g / 2, d.b - c.f / 2));
+ for (O = _e(n.a, 0); O.b != O.d.c; )
+ $ = u(Re(O), 188), i = u(k($, Wm), 79), i && (e = $.a, S = new kr($.b.e), Ht(e, S, e.a, e.a.a), en = new kr($.c.e), Ht(e, en, e.c.b, e.c), Sxn(S, u(qo(e, 1), 8), $.b.f), Sxn(en, u(qo(e, e.b - 2), 8), $.c.f), t = ng(i, !0, !0), z7(e, t));
+ ln = f - l + (v.b + v.c), o = h - a + (v.d + v.a), i0(r, ln, o, !1, !1);
+ }
+ function ZEe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ for (d = n.b, a = new Ii(d, 0), V0(a, new Bs(n)), $ = !1, o = 1; a.b < a.d.gc(); ) {
+ for (l = (ne(a.b < a.d.gc()), u(a.d.Xb(a.c = a.b++), 29)), m = (Ln(o, d.c.length), u(d.c[o], 29)), C = $d(l.a), S = C.c.length, v = new E(C); v.a < v.c.c.length; )
+ g = u(y(v), 10), jr(g, m);
+ if ($) {
+ for (p = rX(new od(C), 0); p.c.Sb(); )
+ for (g = u(dSn(p), 10), c = new E($d(Lr(g))); c.a < c.c.c.length; )
+ r = u(y(c), 17), t0(r, !0), H(n, (G(), Uk), (qn(), !0)), i = BRn(n, r, S), t = u(k(g, v0), 305), O = u(un(i, i.c.length - 1), 17), t.k = O.c.i, t.n = O, t.b = r.d.i, t.c = r;
+ $ = !1;
+ } else
+ C.c.length != 0 && (e = (Ln(0, C.c.length), u(C.c[0], 10)), e.k == (Qn(), vf) && ($ = !0, o = -1));
+ ++o;
+ }
+ for (f = new Ii(n.b, 0); f.b < f.d.gc(); )
+ h = (ne(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 29)), h.a.c.length == 0 && Uu(f);
+ }
+ function nCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ if (a = u(u(ct(n.r, e), 21), 84), a.gc() <= 2 || e == (J(), Vn) || e == (J(), Gn)) {
+ A_n(n, e);
+ return;
+ }
+ for (m = n.u.Hc((Tu(), Pp)), t = e == (J(), Kn) ? (qd(), Ok) : (qd(), Ik), S = e == Kn ? (Qc(), To) : (Qc(), Wo), i = vG(LU(t), n.s), C = e == Kn ? xt : Qt, l = a.Kc(); l.Ob(); )
+ f = u(l.Pb(), 111), !(!f.c || f.c.d.c.length <= 0) && (v = f.b.rf(), p = f.e, d = f.c, g = d.i, g.b = (c = d.n, d.e.a + c.b + c.c), g.a = (o = d.n, d.e.b + o.d + o.a), m ? (g.c = p.a - (r = d.n, d.e.a + r.b + r.c) - n.s, m = !1) : g.c = p.a + v.a + n.s, T8(S, ann), d.f = S, Bo(d, (Cu(), Co)), W(i.d, new jD(g, gQ(i, g))), C = e == Kn ? j.Math.min(C, p.b) : j.Math.max(C, p.b + f.b.rf().b));
+ for (C += e == Kn ? -n.t : n.t, DQ((i.e = C, i)), h = a.Kc(); h.Ob(); )
+ f = u(h.Pb(), 111), !(!f.c || f.c.d.c.length <= 0) && (g = f.c.i, g.c -= f.e.a, g.d -= f.e.b);
+ }
+ function eCe(n, e, t) {
+ var i;
+ if (le(t, "StretchWidth layering", 1), e.a.c.length == 0) {
+ ce(t);
+ return;
+ }
+ for (n.c = e, n.t = 0, n.u = 0, n.i = xt, n.g = Qt, n.d = K(Y(k(e, (nn(), Mo)))), Ope(n), $me(n), Dme(n), L4e(n), B2e(n), n.i = j.Math.max(1, n.i), n.g = j.Math.max(1, n.g), n.d = n.d / n.i, n.f = n.g / n.i, n.s = Upe(n), i = new Bs(n.c), W(n.c.b, i), n.r = $d(n.p), n.n = fC(n.k, n.k.length); n.r.c.length != 0; )
+ n.o = uge(n), !n.o || eDn(n) && n.b.a.gc() != 0 ? (sve(n, i), i = new Bs(n.c), W(n.c.b, i), Xi(n.a, n.b), n.b.a.$b(), n.t = n.u, n.u = 0) : eDn(n) ? (n.c.b.c = F(Zn, rn, 1, 0, 5, 1), i = new Bs(n.c), W(n.c.b, i), n.t = 0, n.u = 0, n.b.a.$b(), n.a.a.$b(), ++n.f, n.r = $d(n.p), n.n = fC(n.k, n.k.length)) : (jr(n.o, i), Vc(n.r, n.o), ci(n.b, n.o), n.t = n.t - n.k[n.o.p] * n.d + n.j[n.o.p], n.u += n.e[n.o.p] * n.d);
+ e.a.c = F(Zn, rn, 1, 0, 5, 1), Ax(e.b), ce(t);
+ }
+ function tCe(n) {
+ var e, t, i, r;
+ for (Rt(gt(new $n(null, new xn(n.a.b, 16)), new kbn()), new ybn()), X4e(n), Rt(gt(new $n(null, new xn(n.a.b, 16)), new jbn()), new Ebn()), n.c == (Kh(), Sp) && (Rt(gt(qr(new $n(null, new xn(new Bp(n.f), 1)), new Cbn()), new Tbn()), new G5n(n)), Rt(gt(Wc(qr(qr(new $n(null, new xn(n.d.b, 16)), new Mbn()), new Abn()), new Sbn()), new Pbn()), new U5n(n))), r = new fn(xt, xt), e = new fn(Qt, Qt), i = new E(n.a.b); i.a < i.c.c.length; )
+ t = u(y(i), 57), r.a = j.Math.min(r.a, t.d.c), r.b = j.Math.min(r.b, t.d.d), e.a = j.Math.max(e.a, t.d.c + t.d.b), e.b = j.Math.max(e.b, t.d.d + t.d.a);
+ st(Lo(n.d.c), vE(new fn(r.a, r.b))), st(Lo(n.d.f), ji(new fn(e.a, e.b), r)), r8e(n, r, e), Eu(n.f), Eu(n.b), Eu(n.g), Eu(n.e), n.a.a.c = F(Zn, rn, 1, 0, 5, 1), n.a.b.c = F(Zn, rn, 1, 0, 5, 1), n.a = null, n.d = null;
+ }
+ function o_n(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ for (r = new X(), m = new E(e.a); m.a < m.c.c.length; )
+ if (v = u(y(m), 10), p = v.e, p && (i = o_n(n, p, v), Zt(r, i), gEe(n, p, v), u(k(p, (G(), Ac)), 21).Hc((or(), Ds))))
+ for ($ = u(k(v, (nn(), Nt)), 98), g = u(k(v, Zb), 174).Hc((Tu(), Zh)), S = new E(v.j); S.a < S.c.c.length; )
+ for (C = u(y(S), 11), c = u(te(n.b, C), 10), c || (c = V7(C, $, C.j, -(C.e.c.length - C.g.c.length), null, new Li(), C.o, u(k(p, ls), 103), p), H(c, rt, C), it(n.b, C, c), W(p.a, c)), o = u(un(c.j, 0), 11), a = new E(C.f); a.a < a.c.c.length; )
+ l = u(y(a), 70), f = new s8n(), f.o.a = l.o.a, f.o.b = l.o.b, W(o.f, f), g || (O = C.j, d = 0, D5(u(k(v, Zb), 21)) && (d = pY(l.n, l.o, C.o, 0, O)), $ == (Ai(), jf) || (J(), qc).Hc(O) ? f.o.a = d : f.o.b = d);
+ return h = new X(), AEe(n, e, t, r, h), t && qje(n, e, t, h), h;
+ }
+ function LZ(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ if (!n.c[e.c.p][e.p].e) {
+ for (n.c[e.c.p][e.p].e = !0, n.c[e.c.p][e.p].b = 0, n.c[e.c.p][e.p].d = 0, n.c[e.c.p][e.p].a = null, a = new E(e.j); a.a < a.c.c.length; )
+ for (l = u(y(a), 11), d = t ? new Hp(l) : new n2(l), h = d.Kc(); h.Ob(); )
+ f = u(h.Pb(), 11), o = f.i, o.c == e.c ? o != e && (LZ(n, o, t), n.c[e.c.p][e.p].b += n.c[o.c.p][o.p].b, n.c[e.c.p][e.p].d += n.c[o.c.p][o.p].d) : (n.c[e.c.p][e.p].d += n.g[f.p], ++n.c[e.c.p][e.p].b);
+ if (c = u(k(e, (G(), hun)), 15), c)
+ for (r = c.Kc(); r.Ob(); )
+ i = u(r.Pb(), 10), e.c == i.c && (LZ(n, i, t), n.c[e.c.p][e.p].b += n.c[i.c.p][i.p].b, n.c[e.c.p][e.p].d += n.c[i.c.p][i.p].d);
+ n.c[e.c.p][e.p].b > 0 && (n.c[e.c.p][e.p].d += Fu(n.i, 24) * uk * 0.07000000029802322 - 0.03500000014901161, n.c[e.c.p][e.p].a = n.c[e.c.p][e.p].d / n.c[e.c.p][e.p].b);
+ }
+ }
+ function iCe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ for (v = new E(n); v.a < v.c.c.length; ) {
+ for (p = u(y(v), 10), u1(p.n), u1(p.o), NX(p.f), CBn(p), F7e(p), C = new E(p.j); C.a < C.c.c.length; ) {
+ for (m = u(y(C), 11), u1(m.n), u1(m.a), u1(m.o), si(m, hFn(m.j)), c = u(k(m, (nn(), P1)), 19), c && H(m, P1, Q(-c.a)), r = new E(m.g); r.a < r.c.c.length; ) {
+ for (i = u(y(r), 17), t = _e(i.a, 0); t.b != t.d.c; )
+ e = u(Re(t), 8), u1(e);
+ if (h = u(k(i, Mr), 74), h)
+ for (f = _e(h, 0); f.b != f.d.c; )
+ o = u(Re(f), 8), u1(o);
+ for (d = new E(i.b); d.a < d.c.c.length; )
+ l = u(y(d), 70), u1(l.n), u1(l.o);
+ }
+ for (g = new E(m.f); g.a < g.c.c.length; )
+ l = u(y(g), 70), u1(l.n), u1(l.o);
+ }
+ for (p.k == (Qn(), Vt) && (H(p, (G(), ec), hFn(u(k(p, ec), 61))), G8e(p)), a = new E(p.b); a.a < a.c.c.length; )
+ l = u(y(a), 70), CBn(l), u1(l.o), u1(l.n);
+ }
+ }
+ function rCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en;
+ for (n.e = e, f = rme(e), U = new X(), i = new E(f); i.a < i.c.c.length; ) {
+ for (t = u(y(i), 15), en = new X(), U.c[U.c.length] = en, h = new hi(), v = t.Kc(); v.Ob(); ) {
+ for (p = u(v.Pb(), 33), c = K7(n, p, !0, 0, 0), en.c[en.c.length] = c, m = p.i, C = p.j, g = (!p.n && (p.n = new V(Rr, p, 1, 7)), p.n), d = new ie(g); d.e != d.i.gc(); )
+ l = u(oe(d), 137), r = K7(n, l, !1, m, C), en.c[en.c.length] = r;
+ for (_ = (!p.c && (p.c = new V(Ru, p, 9, 9)), p.c), $ = new ie(_); $.e != $.i.gc(); )
+ for (S = u(oe($), 118), o = K7(n, S, !1, m, C), en.c[en.c.length] = o, O = S.i + m, x = S.j + C, g = (!S.n && (S.n = new V(Rr, S, 1, 7)), S.n), a = new ie(g); a.e != a.i.gc(); )
+ l = u(oe(a), 137), r = K7(n, l, !1, O, x), en.c[en.c.length] = r;
+ Xi(h, rC(of(A(M(gf, 1), rn, 20, 0, [qh(p), N7(p)]))));
+ }
+ X9e(n, h, en);
+ }
+ return n.f = new r8n(U), Pr(n.f, e), n.f;
+ }
+ function cCe(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se;
+ zn = te(n.e, i), zn == null && (zn = new r2(), p = u(zn, 183), $ = e + "_s", O = $ + r, g = new nb(O), Ro(p, Uf, g)), wn = u(zn, 183), j2(t, wn), se = new r2(), aa(se, "x", i.j), aa(se, "y", i.k), Ro(wn, Tqn, se), en = new r2(), aa(en, "x", i.b), aa(en, "y", i.c), Ro(wn, "endPoint", en), d = N9((!i.a && (i.a = new Yt(to, i, 5)), i.a)), v = !d, v && (U = new ea(), c = new hmn(U), $i((!i.a && (i.a = new Yt(to, i, 5)), i.a), c), Ro(wn, pA, U)), h = VF(i), x = !!h, x && GJ(n.a, wn, xtn, Mx(n, VF(i))), S = QF(i), _ = !!S, _ && GJ(n.a, wn, Ftn, Mx(n, QF(i))), l = (!i.e && (i.e = new Fn(Tt, i, 10, 9)), i.e).i == 0, m = !l, m && (ln = new ea(), o = new Ikn(n, ln), $i((!i.e && (i.e = new Fn(Tt, i, 10, 9)), i.e), o), Ro(wn, Ntn, ln)), a = (!i.g && (i.g = new Fn(Tt, i, 9, 10)), i.g).i == 0, C = !a, C && (Wn = new ea(), f = new Okn(n, Wn), $i((!i.g && (i.g = new Fn(Tt, i, 9, 10)), i.g), f), Ro(wn, Ltn, Wn));
+ }
+ function uCe(n) {
+ X0();
+ var e, t, i, r, c, o, f;
+ for (i = n.f.n, o = OW(n.r).a.nc(); o.Ob(); ) {
+ if (c = u(o.Pb(), 111), r = 0, c.b.Xe((Xe(), Bu)) && (r = K(Y(c.b.We(Bu))), r < 0))
+ switch (c.b.Hf().g) {
+ case 1:
+ i.d = j.Math.max(i.d, -r);
+ break;
+ case 3:
+ i.a = j.Math.max(i.a, -r);
+ break;
+ case 2:
+ i.c = j.Math.max(i.c, -r);
+ break;
+ case 4:
+ i.b = j.Math.max(i.b, -r);
+ }
+ if (D5(n.u))
+ switch (e = Ibe(c.b, r), f = !u(n.e.We(Rl), 174).Hc((xu(), Sy)), t = !1, c.b.Hf().g) {
+ case 1:
+ t = e > i.d, i.d = j.Math.max(i.d, e), f && t && (i.d = j.Math.max(i.d, i.a), i.a = i.d + r);
+ break;
+ case 3:
+ t = e > i.a, i.a = j.Math.max(i.a, e), f && t && (i.a = j.Math.max(i.a, i.d), i.d = i.a + r);
+ break;
+ case 2:
+ t = e > i.c, i.c = j.Math.max(i.c, e), f && t && (i.c = j.Math.max(i.b, i.c), i.b = i.c + r);
+ break;
+ case 4:
+ t = e > i.b, i.b = j.Math.max(i.b, e), f && t && (i.b = j.Math.max(i.b, i.c), i.c = i.b + r);
+ }
+ }
+ }
+ function sCe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d;
+ for (l = new E(n); l.a < l.c.c.length; ) {
+ switch (h = u(y(l), 10), o = u(k(h, (nn(), Hc)), 163), c = null, o.g) {
+ case 1:
+ case 2:
+ c = (ja(), Tg);
+ break;
+ case 3:
+ case 4:
+ c = (ja(), rv);
+ }
+ if (c)
+ H(h, (G(), HS), (ja(), Tg)), c == rv ? fM(h, o, (ur(), Au)) : c == Tg && fM(h, o, (ur(), Lc));
+ else if (Cw(u(k(h, Nt), 98)) && h.j.c.length != 0) {
+ for (e = !0, d = new E(h.j); d.a < d.c.c.length; ) {
+ if (a = u(y(d), 11), !(a.j == (J(), Vn) && a.e.c.length - a.g.c.length > 0 || a.j == Gn && a.e.c.length - a.g.c.length < 0)) {
+ e = !1;
+ break;
+ }
+ for (r = new E(a.g); r.a < r.c.c.length; )
+ if (t = u(y(r), 17), f = u(k(t.d.i, Hc), 163), f == (As(), Pm) || f == Wb) {
+ e = !1;
+ break;
+ }
+ for (i = new E(a.e); i.a < i.c.c.length; )
+ if (t = u(y(i), 17), f = u(k(t.c.i, Hc), 163), f == (As(), Sm) || f == Fl) {
+ e = !1;
+ break;
+ }
+ }
+ e && fM(h, o, (ur(), Bm));
+ }
+ }
+ }
+ function oCe(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U;
+ for (U = 0, p = 0, d = new E(e.e); d.a < d.c.c.length; ) {
+ for (a = u(y(d), 10), g = 0, f = 0, h = t ? u(k(a, bP), 19).a : Bi, S = i ? u(k(a, wP), 19).a : Bi, l = j.Math.max(h, S), O = new E(a.j); O.a < O.c.c.length; ) {
+ if ($ = u(y(O), 11), x = a.n.b + $.n.b + $.a.b, i)
+ for (o = new E($.g); o.a < o.c.c.length; )
+ c = u(y(o), 17), m = c.d, v = m.i, e != n.a[v.p] && (C = j.Math.max(u(k(v, bP), 19).a, u(k(v, wP), 19).a), _ = u(k(c, (nn(), yp)), 19).a, _ >= l && _ >= C && (g += v.n.b + m.n.b + m.a.b - x, ++f));
+ if (t)
+ for (o = new E($.e); o.a < o.c.c.length; )
+ c = u(y(o), 17), m = c.c, v = m.i, e != n.a[v.p] && (C = j.Math.max(u(k(v, bP), 19).a, u(k(v, wP), 19).a), _ = u(k(c, (nn(), yp)), 19).a, _ >= l && _ >= C && (g += v.n.b + m.n.b + m.a.b - x, ++f));
+ }
+ f > 0 && (U += g / f, ++p);
+ }
+ p > 0 ? (e.a = r * U / p, e.g = p) : (e.a = 0, e.g = 0);
+ }
+ function fCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ for (r = new E(n.a.b); r.a < r.c.c.length; )
+ for (t = u(y(r), 29), h = new E(t.a); h.a < h.c.c.length; )
+ f = u(y(h), 10), e.j[f.p] = f, e.i[f.p] = e.o == (ef(), kf) ? Qt : xt;
+ for (Eu(n.c), o = n.a.b, e.c == (Ff(), I1) && (o = I(o, 152) ? I2(u(o, 152)) : I(o, 131) ? u(o, 131).a : I(o, 54) ? new od(o) : new K0(o)), t0e(n.e, e, n.b), z9(e.p, null), c = o.Kc(); c.Ob(); )
+ for (t = u(c.Pb(), 29), l = t.a, e.o == (ef(), kf) && (l = I(l, 152) ? I2(u(l, 152)) : I(l, 131) ? u(l, 131).a : I(l, 54) ? new od(l) : new K0(l)), g = l.Kc(); g.Ob(); )
+ d = u(g.Pb(), 10), e.g[d.p] == d && P_n(n, d, e);
+ for (Yje(n, e), i = o.Kc(); i.Ob(); )
+ for (t = u(i.Pb(), 29), g = new E(t.a); g.a < g.c.c.length; )
+ d = u(y(g), 10), e.p[d.p] = e.p[e.g[d.p].p], d == e.g[d.p] && (a = K(e.i[e.j[d.p].p]), (e.o == (ef(), kf) && a > Qt || e.o == Ya && a < xt) && (e.p[d.p] = K(e.p[d.p]) + a));
+ n.e.cg();
+ }
+ function f_n(n, e, t, i) {
+ var r, c, o, f, h;
+ return f = new NZ(e), h8e(f, i), r = !0, n && n.Xe((Xe(), S0)) && (c = u(n.We((Xe(), S0)), 103), r = c == (sr(), mh) || c == Ys || c == Ao), dBn(f, !1), Jc(f.e.wf(), new $U(f, !1, r)), t$(f, f.f, (_o(), Zr), (J(), Kn)), t$(f, f.f, nc, ae), t$(f, f.g, Zr, Gn), t$(f, f.g, nc, Vn), J$n(f, Kn), J$n(f, ae), gTn(f, Vn), gTn(f, Gn), X0(), o = f.A.Hc((Vu(), sw)) && f.B.Hc((xu(), Py)) ? f$n(f) : null, o && Oie(f.a, o), uCe(f), j3e(f), E3e(f), OEe(f), hke(f), V3e(f), KF(f, Kn), KF(f, ae), q7e(f), fje(f), t && (s2e(f), Q3e(f), KF(f, Vn), KF(f, Gn), h = f.B.Hc((xu(), f9)), oLn(f, h, Kn), oLn(f, h, ae), fLn(f, h, Vn), fLn(f, h, Gn), Rt(new $n(null, new xn(new Th(f.i), 0)), new _ln()), Rt(gt(new $n(null, OW(f.r).a.oc()), new Kln()), new Hln()), lve(f), f.e.uf(f.o), Rt(new $n(null, OW(f.r).a.oc()), new Gln())), f.o;
+ }
+ function hCe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (l = xt, i = new E(n.a.b); i.a < i.c.c.length; )
+ e = u(y(i), 81), l = j.Math.min(l, e.d.f.g.c + e.e.a);
+ for (p = new Ct(), o = new E(n.a.a); o.a < o.c.c.length; )
+ c = u(y(o), 189), c.i = l, c.e == 0 && Ht(p, c, p.c.b, p.c);
+ for (; p.b != 0; ) {
+ for (c = u(p.b == 0 ? null : (ne(p.b != 0), Cs(p, p.a.a)), 189), r = c.f.g.c, g = c.a.a.ec().Kc(); g.Ob(); )
+ a = u(g.Pb(), 81), m = c.i + a.e.a, a.d.g || a.g.c < m ? a.o = m : a.o = a.g.c;
+ for (r -= c.f.o, c.b += r, n.c == (sr(), Ao) || n.c == Qh ? c.c += r : c.c -= r, d = c.a.a.ec().Kc(); d.Ob(); )
+ for (a = u(d.Pb(), 81), h = a.f.Kc(); h.Ob(); )
+ f = u(h.Pb(), 81), el(n.c) ? v = n.f.ef(a, f) : v = n.f.ff(a, f), f.d.i = j.Math.max(f.d.i, a.o + a.g.b + v - f.e.a), f.k || (f.d.i = j.Math.max(f.d.i, f.g.c - f.e.a)), --f.d.e, f.d.e == 0 && Ke(p, f.d);
+ }
+ for (t = new E(n.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 81), e.g.c = e.o;
+ }
+ function lCe(n) {
+ var e, t, i, r, c, o, f, h;
+ switch (f = n.b, e = n.a, u(k(n, (WT(), irn)), 427).g) {
+ case 0:
+ wi(f, new ut(new nan()));
+ break;
+ case 1:
+ default:
+ wi(f, new ut(new ean()));
+ }
+ switch (u(k(n, ern), 428).g) {
+ case 1:
+ wi(f, new xH()), wi(f, new tan()), wi(f, new Vln());
+ break;
+ case 0:
+ default:
+ wi(f, new xH()), wi(f, new Zln());
+ }
+ switch (u(k(n, crn), 250).g) {
+ case 0:
+ h = new ran();
+ break;
+ case 1:
+ h = new gI();
+ break;
+ case 2:
+ h = new Uy();
+ break;
+ case 3:
+ h = new wI();
+ break;
+ case 5:
+ h = new Kp(new Uy());
+ break;
+ case 4:
+ h = new Kp(new gI());
+ break;
+ case 7:
+ h = new _G(new Kp(new gI()), new Kp(new Uy()));
+ break;
+ case 8:
+ h = new _G(new Kp(new wI()), new Kp(new Uy()));
+ break;
+ case 6:
+ default:
+ h = new Kp(new wI());
+ }
+ for (o = new E(f); o.a < o.c.c.length; ) {
+ for (c = u(y(o), 167), i = 0, r = 0, t = new Pi(Q(i), Q(r)); Qke(e, c, i, r); )
+ t = u(h.Ce(t, c), 46), i = u(t.a, 19).a, r = u(t.b, 19).a;
+ X7e(e, c, i, r);
+ }
+ }
+ function aCe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en;
+ for (c = n.f.b, g = c.a, a = c.b, v = n.e.g, p = n.e.f, rE(n.e, c.a, c.b), U = g / v, en = a / p, l = new ie(JE(n.e)); l.e != l.i.gc(); )
+ h = u(oe(l), 137), Yc(h, h.i * U), Zc(h, h.j * en);
+ for ($ = new ie(HD(n.e)); $.e != $.i.gc(); )
+ S = u(oe($), 118), x = S.i, _ = S.j, x > 0 && Yc(S, x * U), _ > 0 && Zc(S, _ * en);
+ for (n6(n.b, new pan()), e = new X(), f = new Ca(new ia(n.c).a); f.b; )
+ o = Bd(f), i = u(o.cd(), 79), t = u(o.dd(), 395).a, r = ng(i, !1, !1), d = oxn(fh(i), I7(r), t), z7(d, r), O = kxn(i), O && xr(e, O, 0) == -1 && (e.c[e.c.length] = O, MTn(O, (ne(d.b != 0), u(d.a.a.c, 8)), t));
+ for (C = new Ca(new ia(n.d).a); C.b; )
+ m = Bd(C), i = u(m.cd(), 79), t = u(m.dd(), 395).a, r = ng(i, !1, !1), d = oxn(vl(i), o7(I7(r)), t), d = o7(d), z7(d, r), O = yxn(i), O && xr(e, O, 0) == -1 && (e.c[e.c.length] = O, MTn(O, (ne(d.b != 0), u(d.c.b.c, 8)), t));
+ }
+ function h_n(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en;
+ if (t.c.length != 0) {
+ for (p = new X(), g = new E(t); g.a < g.c.c.length; )
+ d = u(y(g), 33), W(p, new fn(d.i, d.j));
+ for (i.n && e && go(i, po(e), (Xu(), ws)); XJ(n, t); )
+ rM(n, t, !1);
+ for (i.n && e && go(i, po(e), (Xu(), ws)), o = 0, f = 0, r = null, t.c.length != 0 && (r = (Ln(0, t.c.length), u(t.c[0], 33)), o = r.i - (Ln(0, p.c.length), u(p.c[0], 8)).a, f = r.j - (Ln(0, p.c.length), u(p.c[0], 8)).b), c = j.Math.sqrt(o * o + f * f), a = ODn(t); a.a.gc() != 0; ) {
+ for (l = a.a.ec().Kc(); l.Ob(); )
+ h = u(l.Pb(), 33), v = n.f, m = v.i + v.g / 2, C = v.j + v.f / 2, S = h.i + h.g / 2, $ = h.j + h.f / 2, O = S - m, x = $ - C, _ = j.Math.sqrt(O * O + x * x), U = O / _, en = x / _, Yc(h, h.i + U * c), Zc(h, h.j + en * c);
+ i.n && e && go(i, po(e), (Xu(), ws)), a = ODn(new lu(a));
+ }
+ n.a && n.a.lg(new lu(a)), i.n && e && go(i, po(e), (Xu(), ws)), h_n(n, e, new lu(a), i);
+ }
+ }
+ function dCe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ if (m = n.n, C = n.o, g = n.d, d = K(Y(wb(n, (nn(), q_)))), e) {
+ for (a = d * (e.gc() - 1), p = 0, h = e.Kc(); h.Ob(); )
+ o = u(h.Pb(), 10), a += o.o.a, p = j.Math.max(p, o.o.b);
+ for (S = m.a - (a - C.a) / 2, c = m.b - g.d + p, i = C.a / (e.gc() + 1), r = i, f = e.Kc(); f.Ob(); )
+ o = u(f.Pb(), 10), o.n.a = S, o.n.b = c - o.o.b, S += o.o.a + d, l = jNn(o), l.n.a = o.o.a / 2 - l.a.a, l.n.b = o.o.b, v = u(k(o, (G(), _S)), 11), v.e.c.length + v.g.c.length == 1 && (v.n.a = r - v.a.a, v.n.b = 0, Hr(v, n)), r += i;
+ }
+ if (t) {
+ for (a = d * (t.gc() - 1), p = 0, h = t.Kc(); h.Ob(); )
+ o = u(h.Pb(), 10), a += o.o.a, p = j.Math.max(p, o.o.b);
+ for (S = m.a - (a - C.a) / 2, c = m.b + C.b + g.a - p, i = C.a / (t.gc() + 1), r = i, f = t.Kc(); f.Ob(); )
+ o = u(f.Pb(), 10), o.n.a = S, o.n.b = c, S += o.o.a + d, l = jNn(o), l.n.a = o.o.a / 2 - l.a.a, l.n.b = 0, v = u(k(o, (G(), _S)), 11), v.e.c.length + v.g.c.length == 1 && (v.n.a = r - v.a.a, v.n.b = C.b, Hr(v, n)), r += i;
+ }
+ }
+ function bCe(n, e) {
+ var t, i, r, c, o, f;
+ if (u(k(e, (G(), Ac)), 21).Hc((or(), Ds))) {
+ for (f = new E(e.a); f.a < f.c.c.length; )
+ c = u(y(f), 10), c.k == (Qn(), ii) && (r = u(k(c, (nn(), nP)), 142), n.c = j.Math.min(n.c, c.n.a - r.b), n.a = j.Math.max(n.a, c.n.a + c.o.a + r.c), n.d = j.Math.min(n.d, c.n.b - r.d), n.b = j.Math.max(n.b, c.n.b + c.o.b + r.a));
+ for (o = new E(e.a); o.a < o.c.c.length; )
+ if (c = u(y(o), 10), c.k != (Qn(), ii))
+ switch (c.k.g) {
+ case 2:
+ if (i = u(k(c, (nn(), Hc)), 163), i == (As(), Fl)) {
+ c.n.a = n.c - 10, $Fn(c, new zdn()).Jb(new E5n(c));
+ break;
+ }
+ if (i == Wb) {
+ c.n.a = n.a + 10, $Fn(c, new Udn()).Jb(new C5n(c));
+ break;
+ }
+ if (t = u(k(c, Ua), 303), t == (Lh(), Ag)) {
+ FRn(c).Jb(new T5n(c)), c.n.b = n.d - 10;
+ break;
+ }
+ if (t == dp) {
+ FRn(c).Jb(new M5n(c)), c.n.b = n.b + 10;
+ break;
+ }
+ break;
+ default:
+ throw T(new Hn("The node type " + c.k + " is not supported by the " + ZTe));
+ }
+ }
+ }
+ function wCe(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C;
+ for (h = new fn(i.i + i.g / 2, i.j + i.f / 2), p = IRn(i), v = u(hn(e, (nn(), Nt)), 98), C = u(hn(i, av), 61), Rkn(G$n(i), Yb) || (i.i == 0 && i.j == 0 ? m = 0 : m = Wve(i, C), gr(i, Yb, m)), l = new fn(e.g, e.f), r = V7(i, v, C, p, l, h, new fn(i.g, i.f), u(k(t, ls), 103), t), H(r, (G(), rt), i), c = u(un(r.j, 0), 11), ote(c, _ke(i)), H(r, Zb, (Tu(), Cn(ql))), d = u(hn(e, Zb), 174).Hc(Zh), f = new ie((!i.n && (i.n = new V(Rr, i, 1, 7)), i.n)); f.e != f.i.gc(); )
+ if (o = u(oe(f), 137), !on(sn(hn(o, Qa))) && o.a && (g = EF(o), W(c.f, g), !d))
+ switch (a = 0, D5(u(hn(e, Zb), 21)) && (a = pY(new fn(o.i, o.j), new fn(o.g, o.f), new fn(i.g, i.f), 0, C)), C.g) {
+ case 2:
+ case 4:
+ g.o.a = a;
+ break;
+ case 1:
+ case 3:
+ g.o.b = a;
+ }
+ H(r, bv, Y(hn(At(e), bv))), H(r, wv, Y(hn(At(e), wv))), H(r, ew, Y(hn(At(e), ew))), W(t.a, r), it(n.a, i, r);
+ }
+ function l_n(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _;
+ for (le(t, "Processor arrange level", 1), a = 0, Pn(), Lw(e, new $q((uc(), vP))), c = e.b, f = _e(e, e.b), l = !0; l && f.b.b != f.d.a; )
+ S = u(a$(f), 86), u(k(S, vP), 19).a == 0 ? --c : l = !1;
+ if (_ = new ch(e, 0, c), o = new uD(_), _ = new ch(e, c, e.b), h = new uD(_), o.b == 0)
+ for (v = _e(h, 0); v.b != v.d.c; )
+ p = u(Re(v), 86), H(p, yP, Q(a++));
+ else
+ for (d = o.b, x = _e(o, 0); x.b != x.d.c; ) {
+ for (O = u(Re(x), 86), H(O, yP, Q(a++)), i = $V(O), l_n(n, i, yc(t, 1 / d | 0)), Lw(i, _W(new $q(yP))), g = new Ct(), $ = _e(i, 0); $.b != $.d.c; )
+ for (S = u(Re($), 86), C = _e(O.d, 0); C.b != C.d.c; )
+ m = u(Re(C), 188), m.c == S && Ht(g, m, g.c.b, g.c);
+ for (Rs(O.d), Xi(O.d, g), f = _e(h, h.b), r = O.d.b, l = !0; 0 < r && l && f.b.b != f.d.a; )
+ S = u(a$(f), 86), u(k(S, vP), 19).a == 0 ? (H(S, yP, Q(a++)), --r, HC(f)) : l = !1;
+ }
+ ce(t);
+ }
+ function gCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ for (le(e, "Inverted port preprocessing", 1), a = n.b, l = new Ii(a, 0), t = null, O = new X(); l.b < l.d.gc(); ) {
+ for ($ = t, t = (ne(l.b < l.d.gc()), u(l.d.Xb(l.c = l.b++), 29)), p = new E(O); p.a < p.c.c.length; )
+ d = u(y(p), 10), jr(d, $);
+ for (O.c = F(Zn, rn, 1, 0, 5, 1), v = new E(t.a); v.a < v.c.c.length; )
+ if (d = u(y(v), 10), d.k == (Qn(), ii) && Cw(u(k(d, (nn(), Nt)), 98))) {
+ for (S = tZ(d, (ur(), Au), (J(), Vn)).Kc(); S.Ob(); )
+ for (m = u(S.Pb(), 11), h = m.e, f = u(lf(h, F(GR, MN, 17, h.c.length, 0, 1)), 474), r = f, c = 0, o = r.length; c < o; ++c)
+ i = r[c], Kye(n, m, i, O);
+ for (C = tZ(d, Lc, Gn).Kc(); C.Ob(); )
+ for (m = u(C.Pb(), 11), h = m.g, f = u(lf(h, F(GR, MN, 17, h.c.length, 0, 1)), 474), r = f, c = 0, o = r.length; c < o; ++c)
+ i = r[c], _ye(n, m, i, O);
+ }
+ }
+ for (g = new E(O); g.a < g.c.c.length; )
+ d = u(y(g), 10), jr(d, t);
+ ce(e);
+ }
+ function pCe(n, e, t, i, r, c) {
+ var o, f, h, l, a, d;
+ for (l = new gc(), Pr(l, e), si(l, u(hn(e, (nn(), av)), 61)), H(l, (G(), rt), e), Hr(l, t), d = l.o, d.a = e.g, d.b = e.f, a = l.n, a.a = e.i, a.b = e.j, it(n.a, e, l), o = E3(Wc(qr(new $n(null, (!e.e && (e.e = new Fn(bi, e, 7, 4)), new xn(e.e, 16))), new Qan()), new Xan()), new b5n(e)), o || (o = E3(Wc(qr(new $n(null, (!e.d && (e.d = new Fn(bi, e, 8, 5)), new xn(e.d, 16))), new Jan()), new Van()), new w5n(e))), o || (o = E3(new $n(null, (!e.e && (e.e = new Fn(bi, e, 7, 4)), new xn(e.e, 16))), new Yan())), H(l, Wk, (qn(), !!o)), Fje(l, c, r, u(hn(e, C0), 8)), h = new ie((!e.n && (e.n = new V(Rr, e, 1, 7)), e.n)); h.e != h.i.gc(); )
+ f = u(oe(h), 137), !on(sn(hn(f, Qa))) && f.a && W(l.f, EF(f));
+ switch (r.g) {
+ case 2:
+ case 1:
+ (l.j == (J(), Kn) || l.j == ae) && i.Fc((or(), Mg));
+ break;
+ case 4:
+ case 3:
+ (l.j == (J(), Vn) || l.j == Gn) && i.Fc((or(), Mg));
+ }
+ return l;
+ }
+ function mL(n, e, t, i, r, c, o) {
+ var f, h, l, a, d, g, p, v, m, C, S, $, O;
+ for (g = null, i == (Od(), Bl) ? g = e : i == Lg && (g = t), m = g.a.ec().Kc(); m.Ob(); ) {
+ for (v = u(m.Pb(), 11), C = Gr(A(M(di, 1), q, 8, 0, [v.i.n, v.n, v.a])).b, O = new hi(), f = new hi(), l = new uf(v.b); Kr(l.a) || Kr(l.b); )
+ if (h = u(Kr(l.a) ? y(l.a) : y(l.b), 17), on(sn(k(h, (G(), mf)))) == r && xr(c, h, 0) != -1) {
+ if (h.d == v ? S = h.c : S = h.d, $ = Gr(A(M(di, 1), q, 8, 0, [S.i.n, S.n, S.a])).b, j.Math.abs($ - C) < 0.2)
+ continue;
+ $ < C ? e.a._b(S) ? ci(O, new Pi(Bl, h)) : ci(O, new Pi(Lg, h)) : e.a._b(S) ? ci(f, new Pi(Bl, h)) : ci(f, new Pi(Lg, h));
+ }
+ if (O.a.gc() > 1)
+ for (p = new SZ(v, O, i), $i(O, new ikn(n, p)), o.c[o.c.length] = p, d = O.a.ec().Kc(); d.Ob(); )
+ a = u(d.Pb(), 46), Vc(c, a.b);
+ if (f.a.gc() > 1)
+ for (p = new SZ(v, f, i), $i(f, new rkn(n, p)), o.c[o.c.length] = p, d = f.a.ec().Kc(); d.Ob(); )
+ a = u(d.Pb(), 46), Vc(c, a.b);
+ }
+ }
+ function a_n(n) {
+ gd(n, new Oa(vj(ad(fd(ld(hd(new na(), zf), "ELK Radial"), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new xgn()), zf))), Z(n, zf, oA, cn($Yn)), Z(n, zf, $b, cn(FYn)), Z(n, zf, hg, cn(PYn)), Z(n, zf, ip, cn(IYn)), Z(n, zf, tp, cn(OYn)), Z(n, zf, $4, cn(SYn)), Z(n, zf, G6, cn(Ron)), Z(n, zf, F4, cn(DYn)), Z(n, zf, dB, cn(MK)), Z(n, zf, aB, cn(AK)), Z(n, zf, otn, cn(_on)), Z(n, zf, rtn, cn(TP)), Z(n, zf, ctn, cn(MP)), Z(n, zf, utn, cn(oy)), Z(n, zf, stn, cn(Kon));
+ }
+ function NZ(n) {
+ var e;
+ if (this.r = Uhe(new Bln(), new Rln()), this.b = new f6(u(pe(Yi), 290)), this.p = new f6(u(pe(Yi), 290)), this.i = new f6(u(pe(jUn), 290)), this.e = n, this.o = new kr(n.rf()), this.D = n.Df() || on(sn(n.We((Xe(), vy)))), this.A = u(n.We((Xe(), nd)), 21), this.B = u(n.We(Rl), 21), this.q = u(n.We(n9), 98), this.u = u(n.We(cw), 21), !Zve(this.u))
+ throw T(new pw("Invalid port label placement: " + this.u));
+ if (this.v = on(sn(n.We(mhn))), this.j = u(n.We(_g), 21), !E9e(this.j))
+ throw T(new pw("Invalid node label placement: " + this.j));
+ this.n = u(w6(n, uhn), 116), this.k = K(Y(w6(n, KP))), this.d = K(Y(w6(n, Ehn))), this.w = K(Y(w6(n, Shn))), this.s = K(Y(w6(n, Chn))), this.t = K(Y(w6(n, Thn))), this.C = u(w6(n, Mhn), 142), this.c = 2 * this.d, e = !this.B.Hc((xu(), Sy)), this.f = new l6(0, e, 0), this.g = new l6(1, e, 0), zI(this.f, (_o(), xc), this.g);
+ }
+ function vCe(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn;
+ for (O = 0, v = 0, p = 0, g = 1, $ = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); $.e != $.i.gc(); )
+ C = u(oe($), 33), g += $h(new re(ue(qh(C).a.Kc(), new Mn()))), ln = C.g, v = j.Math.max(v, ln), d = C.f, p = j.Math.max(p, d), O += ln * d;
+ for (m = (!n.a && (n.a = new V(Pt, n, 10, 11)), n.a).i, o = O + 2 * i * i * g * m, c = j.Math.sqrt(o), h = j.Math.max(c * t, v), f = j.Math.max(c / t, p), S = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); S.e != S.i.gc(); )
+ C = u(oe(S), 33), wn = r.b + (Fu(e, 26) * N6 + Fu(e, 27) * B6) * (h - C.g), zn = r.b + (Fu(e, 26) * N6 + Fu(e, 27) * B6) * (f - C.f), Yc(C, wn), Zc(C, zn);
+ for (en = h + (r.b + r.c), U = f + (r.d + r.a), _ = new ie((!n.a && (n.a = new V(Pt, n, 10, 11)), n.a)); _.e != _.i.gc(); )
+ for (x = u(oe(_), 33), a = new re(ue(qh(x).a.Kc(), new Mn())); Se(a); )
+ l = u(ve(a), 79), j6(l) || mTe(l, e, en, U);
+ en += r.b + r.c, U += r.d + r.a, i0(n, en, U, !1, !0);
+ }
+ function MM(n) {
+ var e, t, i, r, c, o, f, h, l, a, d;
+ if (n == null)
+ throw T(new Sf(tu));
+ if (l = n, c = n.length, h = !1, c > 0 && (e = (Me(0, n.length), n.charCodeAt(0)), (e == 45 || e == 43) && (n = n.substr(1), --c, h = e == 45)), c == 0)
+ throw T(new Sf(u0 + l + '"'));
+ for (; n.length > 0 && (Me(0, n.length), n.charCodeAt(0) == 48); )
+ n = n.substr(1), --c;
+ if (c > (nRn(), jzn)[10])
+ throw T(new Sf(u0 + l + '"'));
+ for (r = 0; r < c; r++)
+ if (P$n((Me(r, n.length), n.charCodeAt(r))) == -1)
+ throw T(new Sf(u0 + l + '"'));
+ for (d = 0, o = Cin[10], a = bR[10], f = S3(Tin[10]), t = !0, i = c % o, i > 0 && (d = -parseInt(n.substr(0, i), 10), n = n.substr(i), c -= i, t = !1); c >= o; ) {
+ if (i = parseInt(n.substr(0, o), 10), n = n.substr(o), c -= o, t)
+ t = !1;
+ else {
+ if (hc(d, f) < 0)
+ throw T(new Sf(u0 + l + '"'));
+ d = Ni(d, a);
+ }
+ d = pl(d, i);
+ }
+ if (hc(d, 0) > 0)
+ throw T(new Sf(u0 + l + '"'));
+ if (!h && (d = S3(d), hc(d, 0) < 0))
+ throw T(new Sf(u0 + l + '"'));
+ return d;
+ }
+ function BZ(n, e) {
+ qEn();
+ var t, i, r, c, o, f, h;
+ if (this.a = new Sz(this), this.b = n, this.c = e, this.f = PD(Er((bu(), xi), e)), this.f.dc())
+ if ((f = EJ(xi, n)) == e)
+ for (this.e = !0, this.d = new X(), this.f = new q2n(), this.f.Fc(Ha), u(jM(G8(xi, ts(n)), ""), 26) == n && this.f.Fc(I5(xi, ts(n))), r = Jx(xi, n).Kc(); r.Ob(); )
+ switch (i = u(r.Pb(), 170), Pd(Er(xi, i))) {
+ case 4: {
+ this.d.Fc(i);
+ break;
+ }
+ case 5: {
+ this.f.Gc(PD(Er(xi, i)));
+ break;
+ }
+ }
+ else if (er(), u(e, 66).Oj())
+ for (this.e = !0, this.f = null, this.d = new X(), o = 0, h = (n.i == null && Lf(n), n.i).length; o < h; ++o)
+ for (i = (t = (n.i == null && Lf(n), n.i), o >= 0 && o < t.length ? t[o] : null), c = A2(Er(xi, i)); c; c = A2(Er(xi, c)))
+ c == e && this.d.Fc(i);
+ else
+ Pd(Er(xi, e)) == 1 && f ? (this.f = null, this.d = (z2(), hee)) : (this.f = null, this.e = !0, this.d = (Pn(), new OI(e)));
+ else
+ this.e = Pd(Er(xi, e)) == 5, this.f.Fb(mH) && (this.f = mH);
+ }
+ function d_n(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v;
+ for (t = 0, i = l3e(n, e), g = n.s, p = n.t, l = u(u(ct(n.r, e), 21), 84).Kc(); l.Ob(); )
+ if (h = u(l.Pb(), 111), !(!h.c || h.c.d.c.length <= 0)) {
+ switch (v = h.b.rf(), f = h.b.Xe((Xe(), Bu)) ? K(Y(h.b.We(Bu))) : 0, a = h.c, d = a.i, d.b = (o = a.n, a.e.a + o.b + o.c), d.a = (c = a.n, a.e.b + c.d + c.a), e.g) {
+ case 1:
+ d.c = h.a ? (v.a - d.b) / 2 : v.a + g, d.d = v.b + f + i, Bo(a, (Cu(), Il)), Of(a, (Qc(), Wo));
+ break;
+ case 3:
+ d.c = h.a ? (v.a - d.b) / 2 : v.a + g, d.d = -f - i - d.a, Bo(a, (Cu(), Il)), Of(a, (Qc(), To));
+ break;
+ case 2:
+ d.c = -f - i - d.b, h.a ? (r = n.v ? d.a : u(un(a.d, 0), 181).rf().b, d.d = (v.b - r) / 2) : d.d = v.b + p, Bo(a, (Cu(), Co)), Of(a, (Qc(), Ol));
+ break;
+ case 4:
+ d.c = v.a + f + i, h.a ? (r = n.v ? d.a : u(un(a.d, 0), 181).rf().b, d.d = (v.b - r) / 2) : d.d = v.b + p, Bo(a, (Cu(), Xf)), Of(a, (Qc(), Ol));
+ }
+ (e == (J(), Kn) || e == ae) && (t = j.Math.max(t, d.a));
+ }
+ t > 0 && (u(br(n.b, e), 124).a.b = t);
+ }
+ function mCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ for (le(e, "Comment pre-processing", 1), t = 0, h = new E(n.a); h.a < h.c.c.length; )
+ if (f = u(y(h), 10), on(sn(k(f, (nn(), Im))))) {
+ for (++t, r = 0, i = null, l = null, v = new E(f.j); v.a < v.c.c.length; )
+ g = u(y(v), 11), r += g.e.c.length + g.g.c.length, g.e.c.length == 1 && (i = u(un(g.e, 0), 17), l = i.c), g.g.c.length == 1 && (i = u(un(g.g, 0), 17), l = i.d);
+ if (r == 1 && l.e.c.length + l.g.c.length == 1 && !on(sn(k(l.i, Im))))
+ WCe(f, i, l, l.i), F5(h);
+ else {
+ for (S = new X(), p = new E(f.j); p.a < p.c.c.length; ) {
+ for (g = u(y(p), 11), d = new E(g.g); d.a < d.c.c.length; )
+ a = u(y(d), 17), a.d.g.c.length == 0 || (S.c[S.c.length] = a);
+ for (o = new E(g.e); o.a < o.c.c.length; )
+ c = u(y(o), 17), c.c.e.c.length == 0 || (S.c[S.c.length] = c);
+ }
+ for (C = new E(S); C.a < C.c.c.length; )
+ m = u(y(C), 17), t0(m, !0);
+ }
+ }
+ e.n && oa(e, "Found " + t + " comment boxes"), ce(e);
+ }
+ function kCe(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m;
+ if (g = K(Y(k(n, (nn(), bv)))), p = K(Y(k(n, wv))), d = K(Y(k(n, ew))), f = n.o, c = u(un(n.j, 0), 11), o = c.n, m = J5e(c, d), !!m) {
+ if (e.Hc((Tu(), Zh)))
+ switch (u(k(n, (G(), ec)), 61).g) {
+ case 1:
+ m.c = (f.a - m.b) / 2 - o.a, m.d = p;
+ break;
+ case 3:
+ m.c = (f.a - m.b) / 2 - o.a, m.d = -p - m.a;
+ break;
+ case 2:
+ t && c.e.c.length == 0 && c.g.c.length == 0 ? (a = i ? m.a : u(un(c.f, 0), 70).o.b, m.d = (f.b - a) / 2 - o.b) : m.d = f.b + p - o.b, m.c = -g - m.b;
+ break;
+ case 4:
+ t && c.e.c.length == 0 && c.g.c.length == 0 ? (a = i ? m.a : u(un(c.f, 0), 70).o.b, m.d = (f.b - a) / 2 - o.b) : m.d = f.b + p - o.b, m.c = g;
+ }
+ else if (e.Hc(ql))
+ switch (u(k(n, (G(), ec)), 61).g) {
+ case 1:
+ case 3:
+ m.c = o.a + g;
+ break;
+ case 2:
+ case 4:
+ t && !c.c ? (a = i ? m.a : u(un(c.f, 0), 70).o.b, m.d = (f.b - a) / 2 - o.b) : m.d = o.b + p;
+ }
+ for (r = m.d, l = new E(c.f); l.a < l.c.c.length; )
+ h = u(y(l), 70), v = h.n, v.a = m.c, v.b = r, r += h.o.b + d;
+ }
+ }
+ function yCe() {
+ He(Ny, new v3n()), He(sI, new P3n()), He(By, new _3n()), He(D1n, new J3n()), He(tn, new e4n()), He(M(mu, 1), new t4n()), He(oi, new i4n()), He(op, new r4n()), He(tn, new o3n()), He(tn, new f3n()), He(tn, new h3n()), He(Si, new l3n()), He(tn, new a3n()), He(Os, new d3n()), He(Os, new b3n()), He(tn, new w3n()), He(z4, new g3n()), He(tn, new p3n()), He(tn, new m3n()), He(tn, new k3n()), He(tn, new y3n()), He(tn, new j3n()), He(M(mu, 1), new E3n()), He(tn, new C3n()), He(tn, new T3n()), He(Os, new M3n()), He(Os, new A3n()), He(tn, new S3n()), He(Ui, new I3n()), He(tn, new O3n()), He(d0, new D3n()), He(tn, new $3n()), He(tn, new F3n()), He(tn, new x3n()), He(tn, new L3n()), He(Os, new N3n()), He(Os, new B3n()), He(tn, new R3n()), He(tn, new K3n()), He(tn, new H3n()), He(tn, new q3n()), He(tn, new G3n()), He(tn, new z3n()), He(b0, new U3n()), He(tn, new W3n()), He(tn, new X3n()), He(tn, new V3n()), He(b0, new Q3n()), He(d0, new Y3n()), He(tn, new Z3n()), He(Ui, new n4n());
+ }
+ function RZ(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ if (g = e.length, g > 0 && (h = (Me(0, e.length), e.charCodeAt(0)), h != 64)) {
+ if (h == 37 && (d = e.lastIndexOf("%"), l = !1, d != 0 && (d == g - 1 || (l = (Me(d + 1, e.length), e.charCodeAt(d + 1) == 46))))) {
+ if (o = e.substr(1, d - 1), O = An("%", o) ? null : _Z(o), i = 0, l)
+ try {
+ i = us(e.substr(d + 2), Bi, nt);
+ } catch (x) {
+ throw x = jt(x), I(x, 127) ? (f = x, T(new xC(f))) : T(x);
+ }
+ for (C = kV(n.Wg()); C.Ob(); )
+ if (v = hT(C), I(v, 510) && (r = u(v, 590), $ = r.d, (O == null ? $ == null : An(O, $)) && i-- == 0))
+ return r;
+ return null;
+ }
+ if (a = e.lastIndexOf("."), p = a == -1 ? e : e.substr(0, a), t = 0, a != -1)
+ try {
+ t = us(e.substr(a + 1), Bi, nt);
+ } catch (x) {
+ if (x = jt(x), I(x, 127))
+ p = e;
+ else
+ throw T(x);
+ }
+ for (p = An("%", p) ? null : _Z(p), m = kV(n.Wg()); m.Ob(); )
+ if (v = hT(m), I(v, 191) && (c = u(v, 191), S = c.ne(), (p == null ? S == null : An(p, S)) && t-- == 0))
+ return c;
+ return null;
+ }
+ return NRn(n, e);
+ }
+ function jCe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn;
+ for (U = new X(), v = new E(n.b); v.a < v.c.c.length; )
+ for (p = u(y(v), 29), S = new E(p.a); S.a < S.c.c.length; )
+ if (m = u(y(S), 10), m.k == (Qn(), Vt) && ai(m, (G(), qS))) {
+ for ($ = null, x = null, O = null, wn = new E(m.j); wn.a < wn.c.c.length; )
+ switch (ln = u(y(wn), 11), ln.j.g) {
+ case 4:
+ $ = ln;
+ break;
+ case 2:
+ x = ln;
+ break;
+ default:
+ O = ln;
+ }
+ for (_ = u(un(O.g, 0), 17), a = new mj(_.a), l = new kr(O.n), st(l, m.n), d = _e(a, 0), y8(d, l), en = o7(_.a), g = new kr(O.n), st(g, m.n), Ht(en, g, en.c.b, en.c), zn = u(k(m, qS), 10), Wn = u(un(zn.j, 0), 11), h = u(lf($.e, F(GR, MN, 17, 0, 0, 1)), 474), i = h, c = 0, f = i.length; c < f; ++c)
+ e = i[c], Ti(e, Wn), vF(e.a, e.a.b, a);
+ for (h = xf(x.g), t = h, r = 0, o = t.length; r < o; ++r)
+ e = t[r], Ki(e, Wn), vF(e.a, 0, en);
+ Ki(_, null), Ti(_, null), U.c[U.c.length] = m;
+ }
+ for (C = new E(U); C.a < C.c.c.length; )
+ m = u(y(C), 10), jr(m, null);
+ }
+ function b_n() {
+ b_n = N;
+ var n, e, t;
+ for (new W8(1, 0), new W8(10, 0), new W8(0, 0), Ezn = F(wR, q, 240, 11, 0, 1), za = F(xs, Bf, 25, 100, 15, 1), Pin = A(M(Ci, 1), pr, 25, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]), Iin = F(be, Le, 25, Pin.length, 15, 1), Oin = A(M(Ci, 1), pr, 25, 15, [1, 10, 100, j1, 1e4, JL, 1e6, 1e7, 1e8, $M, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16]), Din = F(be, Le, 25, Oin.length, 15, 1), $in = F(wR, q, 240, 11, 0, 1), n = 0; n < $in.length; n++)
+ Ezn[n] = new W8(n, 0), $in[n] = new W8(0, n), za[n] = 48;
+ for (; n < za.length; n++)
+ za[n] = 48;
+ for (t = 0; t < Iin.length; t++)
+ Iin[t] = wY(Pin[t]);
+ for (e = 0; e < Din.length; e++)
+ Din[e] = wY(Oin[e]);
+ l4();
+ }
+ function ECe() {
+ function n() {
+ this.obj = this.createObject();
+ }
+ return n.prototype.createObject = function(e) {
+ return /* @__PURE__ */ Object.create(null);
+ }, n.prototype.get = function(e) {
+ return this.obj[e];
+ }, n.prototype.set = function(e, t) {
+ this.obj[e] = t;
+ }, n.prototype[eN] = function(e) {
+ delete this.obj[e];
+ }, n.prototype.keys = function() {
+ return Object.getOwnPropertyNames(this.obj);
+ }, n.prototype.entries = function() {
+ var e = this.keys(), t = this, i = 0;
+ return { next: function() {
+ if (i >= e.length)
+ return { done: !0 };
+ var r = e[i++];
+ return { value: [r, t.get(r)], done: !1 };
+ } };
+ }, A7e() || (n.prototype.createObject = function() {
+ return {};
+ }, n.prototype.get = function(e) {
+ return this.obj[":" + e];
+ }, n.prototype.set = function(e, t) {
+ this.obj[":" + e] = t;
+ }, n.prototype[eN] = function(e) {
+ delete this.obj[":" + e];
+ }, n.prototype.keys = function() {
+ var e = [];
+ for (var t in this.obj)
+ t.charCodeAt(0) == 58 && e.push(t.substring(1));
+ return e;
+ }), n;
+ }
+ function CCe(n) {
+ vZ();
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ if (n == null)
+ return null;
+ if (d = n.length * 8, d == 0)
+ return "";
+ for (f = d % 24, p = d / 24 | 0, g = f != 0 ? p + 1 : p, c = null, c = F(xs, Bf, 25, g * 4, 15, 1), l = 0, a = 0, e = 0, t = 0, i = 0, o = 0, r = 0, h = 0; h < p; h++)
+ e = n[r++], t = n[r++], i = n[r++], a = (t & 15) << 24 >> 24, l = (e & 3) << 24 >> 24, v = e & -128 ? (e >> 2 ^ 192) << 24 >> 24 : e >> 2 << 24 >> 24, m = t & -128 ? (t >> 4 ^ 240) << 24 >> 24 : t >> 4 << 24 >> 24, C = i & -128 ? (i >> 6 ^ 252) << 24 >> 24 : i >> 6 << 24 >> 24, c[o++] = R1[v], c[o++] = R1[m | l << 4], c[o++] = R1[a << 2 | C], c[o++] = R1[i & 63];
+ return f == 8 ? (e = n[r], l = (e & 3) << 24 >> 24, v = e & -128 ? (e >> 2 ^ 192) << 24 >> 24 : e >> 2 << 24 >> 24, c[o++] = R1[v], c[o++] = R1[l << 4], c[o++] = 61, c[o++] = 61) : f == 16 && (e = n[r], t = n[r + 1], a = (t & 15) << 24 >> 24, l = (e & 3) << 24 >> 24, v = e & -128 ? (e >> 2 ^ 192) << 24 >> 24 : e >> 2 << 24 >> 24, m = t & -128 ? (t >> 4 ^ 240) << 24 >> 24 : t >> 4 << 24 >> 24, c[o++] = R1[v], c[o++] = R1[m | l << 4], c[o++] = R1[a << 2], c[o++] = 61), Ks(c, 0, c.length);
+ }
+ function TCe(n, e) {
+ var t, i, r, c, o, f, h;
+ if (n.e == 0 && n.p > 0 && (n.p = -(n.p - 1)), n.p > Bi && mX(e, n.p - Cl), o = e.q.getDate(), A8(e, 1), n.k >= 0 && sle(e, n.k), n.c >= 0 ? A8(e, n.c) : n.k >= 0 ? (h = new _V(e.q.getFullYear() - Cl, e.q.getMonth(), 35), i = 35 - h.q.getDate(), A8(e, j.Math.min(i, o))) : A8(e, o), n.f < 0 && (n.f = e.q.getHours()), n.b > 0 && n.f < 12 && (n.f += 12), vce(e, n.f == 24 && n.g ? 0 : n.f), n.j >= 0 && vde(e, n.j), n.n >= 0 && Lde(e, n.n), n.i >= 0 && Hkn(e, Hi(Ni(M7(nu(e.q.getTime()), j1), j1), n.i)), n.a && (r = new Tj(), mX(r, r.q.getFullYear() - Cl - 80), cO(nu(e.q.getTime()), nu(r.q.getTime())) && mX(e, r.q.getFullYear() - Cl + 100)), n.d >= 0) {
+ if (n.c == -1)
+ t = (7 + n.d - e.q.getDay()) % 7, t > 3 && (t -= 7), f = e.q.getMonth(), A8(e, e.q.getDate() + t), e.q.getMonth() != f && A8(e, e.q.getDate() + (t > 0 ? -7 : 7));
+ else if (e.q.getDay() != n.d)
+ return !1;
+ }
+ return n.o > Bi && (c = e.q.getTimezoneOffset(), Hkn(e, Hi(nu(e.q.getTime()), (n.o - c) * 60 * j1))), !0;
+ }
+ function w_n(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ if (r = k(e, (G(), rt)), !!I(r, 239)) {
+ for (v = u(r, 33), m = e.e, g = new kr(e.c), c = e.d, g.a += c.b, g.b += c.d, x = u(hn(v, (nn(), iP)), 174), hu(x, (xu(), GP)) && (p = u(hn(v, Esn), 116), Yee(p, c.a), ute(p, c.d), Zee(p, c.b), ste(p, c.c)), t = new X(), a = new E(e.a); a.a < a.c.c.length; )
+ for (h = u(y(a), 10), I(k(h, rt), 239) ? OCe(h, g) : I(k(h, rt), 186) && !m && (i = u(k(h, rt), 118), $ = uRn(e, h, i.g, i.f), Jo(i, $.a, $.b)), S = new E(h.j); S.a < S.c.c.length; )
+ C = u(y(S), 11), Rt(gt(new $n(null, new xn(C.g, 16)), new g5n(h)), new p5n(t));
+ if (m)
+ for (S = new E(m.j); S.a < S.c.c.length; )
+ C = u(y(S), 11), Rt(gt(new $n(null, new xn(C.g, 16)), new v5n(m)), new m5n(t));
+ for (O = u(hn(v, Vh), 218), f = new E(t); f.a < f.c.c.length; )
+ o = u(y(f), 17), GEe(o, O, g);
+ for (Bke(e), l = new E(e.a); l.a < l.c.c.length; )
+ h = u(y(l), 10), d = h.e, d && w_n(n, d);
+ }
+ }
+ function g_n(n) {
+ gd(n, new Oa(kG(vj(ad(fd(ld(hd(new na(), os), "ELK Force"), "Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported."), new man()), os), pt((a4(), ZP), A(M(nI, 1), z, 237, 0, [JP]))))), Z(n, os, hk, Q(1)), Z(n, os, $b, 80), Z(n, os, EN, 5), Z(n, os, ep, D4), Z(n, os, HM, Q(1)), Z(n, os, q6, (qn(), !0)), Z(n, os, s0, Orn), Z(n, os, lk, cn(Srn)), Z(n, os, CN, cn(Drn)), Z(n, os, qM, !1), Z(n, os, G6, cn(Irn)), Z(n, os, tp, cn(ZUn)), Z(n, os, hg, cn(YUn)), Z(n, os, $4, cn(JUn)), Z(n, os, F4, cn(eWn)), Z(n, os, KM, cn(Prn)), Z(n, os, yN, cn(xR)), Z(n, os, Tnn, cn(iS)), Z(n, os, jN, cn(FR)), Z(n, os, Mnn, cn($rn));
+ }
+ function p_n(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p;
+ if (!u(u(ct(n.r, e), 21), 84).dc()) {
+ if (o = u(br(n.b, e), 124), h = o.i, f = o.n, a = qx(n, e), i = h.b - f.b - f.c, r = o.a.a, c = h.c + f.b, p = n.w, (a == (qw(), Kl) || a == Cy) && u(u(ct(n.r, e), 21), 84).gc() == 1 && (r = a == Kl ? r - 2 * n.w : r, a = r9), i < r && !n.B.Hc((xu(), zP)))
+ a == Kl ? (p += (i - r) / (u(u(ct(n.r, e), 21), 84).gc() + 1), c += p) : p += (i - r) / (u(u(ct(n.r, e), 21), 84).gc() - 1);
+ else
+ switch (i < r && (r = a == Kl ? r - 2 * n.w : r, a = r9), a.g) {
+ case 3:
+ c += (i - r) / 2;
+ break;
+ case 4:
+ c += i - r;
+ break;
+ case 0:
+ t = (i - r) / (u(u(ct(n.r, e), 21), 84).gc() + 1), p += j.Math.max(0, t), c += p;
+ break;
+ case 1:
+ t = (i - r) / (u(u(ct(n.r, e), 21), 84).gc() - 1), p += j.Math.max(0, t);
+ }
+ for (g = u(u(ct(n.r, e), 21), 84).Kc(); g.Ob(); )
+ d = u(g.Pb(), 111), d.e.a = c + d.d.b, d.e.b = (l = d.b, l.Xe((Xe(), Bu)) ? l.Hf() == (J(), Kn) ? -l.rf().b - K(Y(l.We(Bu))) : K(Y(l.We(Bu))) : l.Hf() == (J(), Kn) ? -l.rf().b : 0), c += d.d.b + d.b.rf().a + d.d.c + p;
+ }
+ }
+ function v_n(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v;
+ if (!u(u(ct(n.r, e), 21), 84).dc()) {
+ if (o = u(br(n.b, e), 124), h = o.i, f = o.n, d = qx(n, e), i = h.a - f.d - f.a, r = o.a.b, c = h.d + f.d, v = n.w, l = n.o.a, (d == (qw(), Kl) || d == Cy) && u(u(ct(n.r, e), 21), 84).gc() == 1 && (r = d == Kl ? r - 2 * n.w : r, d = r9), i < r && !n.B.Hc((xu(), zP)))
+ d == Kl ? (v += (i - r) / (u(u(ct(n.r, e), 21), 84).gc() + 1), c += v) : v += (i - r) / (u(u(ct(n.r, e), 21), 84).gc() - 1);
+ else
+ switch (i < r && (r = d == Kl ? r - 2 * n.w : r, d = r9), d.g) {
+ case 3:
+ c += (i - r) / 2;
+ break;
+ case 4:
+ c += i - r;
+ break;
+ case 0:
+ t = (i - r) / (u(u(ct(n.r, e), 21), 84).gc() + 1), v += j.Math.max(0, t), c += v;
+ break;
+ case 1:
+ t = (i - r) / (u(u(ct(n.r, e), 21), 84).gc() - 1), v += j.Math.max(0, t);
+ }
+ for (p = u(u(ct(n.r, e), 21), 84).Kc(); p.Ob(); )
+ g = u(p.Pb(), 111), g.e.a = (a = g.b, a.Xe((Xe(), Bu)) ? a.Hf() == (J(), Gn) ? -a.rf().a - K(Y(a.We(Bu))) : l + K(Y(a.We(Bu))) : a.Hf() == (J(), Gn) ? -a.rf().a : l), g.e.b = c + g.d.d, c += g.d.d + g.b.rf().b + g.d.a + v;
+ }
+ }
+ function MCe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (n.n = K(Y(k(n.g, (nn(), M0)))), n.e = K(Y(k(n.g, Ja))), n.i = n.g.b.c.length, f = n.i - 1, g = 0, n.j = 0, n.k = 0, n.a = cf(F(Ui, q, 19, n.i, 0, 1)), n.b = cf(F(Si, q, 333, n.i, 7, 1)), o = new E(n.g.b); o.a < o.c.c.length; ) {
+ for (r = u(y(o), 29), r.p = f, d = new E(r.a); d.a < d.c.c.length; )
+ a = u(y(d), 10), a.p = g, ++g;
+ --f;
+ }
+ for (n.f = F(be, Le, 25, g, 15, 1), n.c = fa(be, [q, Le], [48, 25], 15, [g, 3], 2), n.o = new X(), n.p = new X(), e = 0, n.d = 0, c = new E(n.g.b); c.a < c.c.c.length; ) {
+ for (r = u(y(c), 29), f = r.p, i = 0, m = 0, h = r.a.c.length, l = 0, d = new E(r.a); d.a < d.c.c.length; )
+ a = u(y(d), 10), g = a.p, n.f[g] = a.c.p, l += a.o.b + n.n, t = $h(new re(ue(Lr(a).a.Kc(), new Mn()))), v = $h(new re(ue(ei(a).a.Kc(), new Mn()))), n.c[g][0] = v - t, n.c[g][1] = t, n.c[g][2] = v, i += t, m += v, t > 0 && W(n.p, a), W(n.o, a);
+ e -= i, p = h + e, l += e * n.e, js(n.a, f, Q(p)), js(n.b, f, l), n.j = j.Math.max(n.j, p), n.k = j.Math.max(n.k, l), n.d += e, e += m;
+ }
+ }
+ function J() {
+ J = N;
+ var n;
+ Xr = new t8(K6, 0), Kn = new t8(NM, 1), Vn = new t8(lN, 2), ae = new t8(aN, 3), Gn = new t8(dN, 4), Ef = (Pn(), new Up((n = u(xo(Yi), 9), new ms(n, u(bo(n, n.length), 9), 0)))), Do = b1(pt(Kn, A(M(Yi, 1), lc, 61, 0, []))), $s = b1(pt(Vn, A(M(Yi, 1), lc, 61, 0, []))), ds = b1(pt(ae, A(M(Yi, 1), lc, 61, 0, []))), eo = b1(pt(Gn, A(M(Yi, 1), lc, 61, 0, []))), ru = b1(pt(Kn, A(M(Yi, 1), lc, 61, 0, [ae]))), qc = b1(pt(Vn, A(M(Yi, 1), lc, 61, 0, [Gn]))), $o = b1(pt(Kn, A(M(Yi, 1), lc, 61, 0, [Gn]))), Su = b1(pt(Kn, A(M(Yi, 1), lc, 61, 0, [Vn]))), bs = b1(pt(ae, A(M(Yi, 1), lc, 61, 0, [Gn]))), Fs = b1(pt(Vn, A(M(Yi, 1), lc, 61, 0, [ae]))), Pu = b1(pt(Kn, A(M(Yi, 1), lc, 61, 0, [Vn, Gn]))), iu = b1(pt(Vn, A(M(Yi, 1), lc, 61, 0, [ae, Gn]))), cu = b1(pt(Kn, A(M(Yi, 1), lc, 61, 0, [ae, Gn]))), vu = b1(pt(Kn, A(M(Yi, 1), lc, 61, 0, [Vn, ae]))), Pc = b1(pt(Kn, A(M(Yi, 1), lc, 61, 0, [Vn, ae, Gn])));
+ }
+ function m_n(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ if (e.b != 0) {
+ for (p = new Ct(), f = null, v = null, i = zt(j.Math.floor(j.Math.log(e.b) * j.Math.LOG10E) + 1), h = 0, O = _e(e, 0); O.b != O.d.c; )
+ for (S = u(Re(O), 86), B(v) !== B(k(S, (uc(), Um))) && (v = Te(k(S, Um)), h = 0), v != null ? f = v + _Mn(h++, i) : f = _Mn(h++, i), H(S, Um, f), C = (r = _e(new W1(S).a.d, 0), new e2(r)); yj(C.a); )
+ m = u(Re(C.a), 188).c, Ht(p, m, p.c.b, p.c), H(m, Um, f);
+ for (g = new we(), o = 0; o < f.length - i; o++)
+ for ($ = _e(e, 0); $.b != $.d.c; )
+ S = u(Re($), 86), l = Yu(Te(k(S, (uc(), Um))), 0, o + 1), t = (l == null ? Vr(Sr(g.f, null)) : n5(g.g, l)) != null ? u(l == null ? Vr(Sr(g.f, null)) : n5(g.g, l), 19).a + 1 : 1, yr(g, l, Q(t));
+ for (d = new Ca(new ia(g).a); d.b; )
+ a = Bd(d), c = Q(te(n.a, a.cd()) != null ? u(te(n.a, a.cd()), 19).a : 0), yr(n.a, Te(a.cd()), Q(u(a.dd(), 19).a + c.a)), c = u(te(n.b, a.cd()), 19), (!c || c.a < u(a.dd(), 19).a) && yr(n.b, Te(a.cd()), u(a.dd(), 19));
+ m_n(n, p);
+ }
+ }
+ function ACe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ for (le(t, "Interactive node layering", 1), i = new X(), p = new E(e.a); p.a < p.c.c.length; ) {
+ for (d = u(y(p), 10), l = d.n.a, h = l + d.o.a, h = j.Math.max(l + 1, h), S = new Ii(i, 0), r = null; S.b < S.d.gc(); )
+ if (m = (ne(S.b < S.d.gc()), u(S.d.Xb(S.c = S.b++), 569)), m.c >= h) {
+ ne(S.b > 0), S.a.Xb(S.c = --S.b);
+ break;
+ } else
+ m.a > l && (r ? (Zt(r.b, m.b), r.a = j.Math.max(r.a, m.a), Uu(S)) : (W(m.b, d), m.c = j.Math.min(m.c, l), m.a = j.Math.max(m.a, h), r = m));
+ r || (r = new r9n(), r.c = l, r.a = h, V0(S, r), W(r.b, d));
+ }
+ for (f = e.b, a = 0, C = new E(i); C.a < C.c.c.length; )
+ for (m = u(y(C), 569), c = new Bs(e), c.p = a++, f.c[f.c.length] = c, v = new E(m.b); v.a < v.c.c.length; )
+ d = u(y(v), 10), jr(d, c), d.p = 0;
+ for (g = new E(e.a); g.a < g.c.c.length; )
+ d = u(y(g), 10), d.p == 0 && eBn(n, d, e);
+ for (o = new Ii(f, 0); o.b < o.d.gc(); )
+ (ne(o.b < o.d.gc()), u(o.d.Xb(o.c = o.b++), 29)).a.c.length == 0 && Uu(o);
+ e.a.c = F(Zn, rn, 1, 0, 5, 1), ce(t);
+ }
+ function SCe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ if (e.e.c.length != 0 && t.e.c.length != 0) {
+ if (i = u(un(e.e, 0), 17).c.i, o = u(un(t.e, 0), 17).c.i, i == o)
+ return zc(u(k(u(un(e.e, 0), 17), (G(), bc)), 19).a, u(k(u(un(t.e, 0), 17), bc), 19).a);
+ for (a = n.a, d = 0, g = a.length; d < g; ++d) {
+ if (l = a[d], l == i)
+ return 1;
+ if (l == o)
+ return -1;
+ }
+ }
+ return e.g.c.length != 0 && t.g.c.length != 0 ? (c = u(k(e, (G(), M_)), 10), h = u(k(t, M_), 10), r = 0, f = 0, ai(u(un(e.g, 0), 17), bc) && (r = u(k(u(un(e.g, 0), 17), bc), 19).a), ai(u(un(t.g, 0), 17), bc) && (f = u(k(u(un(e.g, 0), 17), bc), 19).a), c && c == h ? on(sn(k(u(un(e.g, 0), 17), mf))) && !on(sn(k(u(un(t.g, 0), 17), mf))) ? 1 : !on(sn(k(u(un(e.g, 0), 17), mf))) && on(sn(k(u(un(t.g, 0), 17), mf))) || r < f ? -1 : r > f ? 1 : 0 : (n.b && (n.b._b(c) && (r = u(n.b.xc(c), 19).a), n.b._b(h) && (f = u(n.b.xc(h), 19).a)), r < f ? -1 : r > f ? 1 : 0)) : e.e.c.length != 0 && t.g.c.length != 0 ? 1 : -1;
+ }
+ function PCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en;
+ for (le(e, fHn, 1), m = new X(), U = new X(), l = new E(n.b); l.a < l.c.c.length; )
+ for (h = u(y(l), 29), S = -1, v = I8(h.a), d = v, g = 0, p = d.length; g < p; ++g)
+ if (a = d[g], ++S, !!(a.k == (Qn(), ii) && Cw(u(k(a, (nn(), Nt)), 98)))) {
+ for (p2(u(k(a, (nn(), Nt)), 98)) || j8e(a), H(a, (G(), k0), a), m.c = F(Zn, rn, 1, 0, 5, 1), U.c = F(Zn, rn, 1, 0, 5, 1), t = new X(), x = new Ct(), nF(x, k1(a, (J(), Kn))), D_n(n, x, m, U, t), f = S, en = a, c = new E(m); c.a < c.c.c.length; )
+ i = u(y(c), 10), vb(i, f, h), ++S, H(i, k0, a), o = u(un(i.j, 0), 11), C = u(k(o, rt), 11), on(sn(k(C, O_))) || u(k(i, gp), 15).Fc(en);
+ for (Rs(x), O = k1(a, ae).Kc(); O.Ob(); )
+ $ = u(O.Pb(), 11), Ht(x, $, x.a, x.a.a);
+ for (D_n(n, x, U, null, t), _ = a, r = new E(U); r.a < r.c.c.length; )
+ i = u(y(r), 10), vb(i, ++S, h), H(i, k0, a), o = u(un(i.j, 0), 11), C = u(k(o, rt), 11), on(sn(k(C, O_))) || u(k(_, gp), 15).Fc(i);
+ t.c.length == 0 || H(a, hun, t);
+ }
+ ce(e);
+ }
+ function k_n(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye, fi;
+ for (d = u(k(n, (al(), hp)), 33), S = nt, $ = nt, m = Bi, C = Bi, x = new E(n.e); x.a < x.c.c.length; )
+ O = u(y(x), 144), wn = O.d, zn = O.e, S = j.Math.min(S, wn.a - zn.a / 2), $ = j.Math.min($, wn.b - zn.b / 2), m = j.Math.max(m, wn.a + zn.a / 2), C = j.Math.max(C, wn.b + zn.b / 2);
+ for (ln = u(hn(d, (Go(), nWn)), 116), en = new fn(ln.b - S, ln.d - $), f = new E(n.e); f.a < f.c.c.length; )
+ o = u(y(f), 144), U = k(o, hp), I(U, 239) && (p = u(U, 33), _ = st(o.d, en), Jo(p, _.a - p.g / 2, _.b - p.f / 2));
+ for (i = new E(n.c); i.a < i.c.c.length; )
+ t = u(y(i), 282), l = u(k(t, hp), 79), a = ng(l, !0, !0), Wn = (Ye = ji(Qr(t.d.d), t.c.d), u4(Ye, t.c.e.a, t.c.e.b), st(Ye, t.c.d)), uE(a, Wn.a, Wn.b), e = (fi = ji(Qr(t.c.d), t.d.d), u4(fi, t.d.e.a, t.d.e.b), st(fi, t.d.d)), cE(a, e.a, e.b);
+ for (c = new E(n.d); c.a < c.c.c.length; )
+ r = u(y(c), 447), g = u(k(r, hp), 137), v = st(r.d, en), Jo(g, v.a, v.b);
+ se = m - S + (ln.b + ln.c), h = C - $ + (ln.d + ln.a), i0(d, se, h, !1, !0);
+ }
+ function ICe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g;
+ for (t = null, h = null, r = u(k(n.b, (nn(), N_)), 376), r == (x8(), iy) && (t = new X(), h = new X()), f = new E(n.d); f.a < f.c.c.length; )
+ if (o = u(y(f), 101), c = o.i, !!c)
+ switch (o.e.g) {
+ case 0:
+ e = u(G5(new o2(o.b)), 61), r == iy && e == (J(), Kn) ? t.c[t.c.length] = o : r == iy && e == (J(), ae) ? h.c[h.c.length] = o : w3e(o, e);
+ break;
+ case 1:
+ l = o.a.d.j, a = o.c.d.j, l == (J(), Kn) ? o1(o, Kn, (ff(), Z4), o.a) : a == Kn ? o1(o, Kn, (ff(), nv), o.c) : l == ae ? o1(o, ae, (ff(), nv), o.a) : a == ae && o1(o, ae, (ff(), Z4), o.c);
+ break;
+ case 2:
+ case 3:
+ i = o.b, hu(i, (J(), Kn)) ? hu(i, ae) ? hu(i, Gn) ? hu(i, Vn) || o1(o, Kn, (ff(), nv), o.c) : o1(o, Kn, (ff(), Z4), o.a) : o1(o, Kn, (ff(), lp), null) : o1(o, ae, (ff(), lp), null);
+ break;
+ case 4:
+ d = o.a.d.j, g = o.a.d.j, d == (J(), Kn) || g == Kn ? o1(o, ae, (ff(), lp), null) : o1(o, Kn, (ff(), lp), null);
+ }
+ t && (t.c.length == 0 || dRn(t, (J(), Kn)), h.c.length == 0 || dRn(h, (J(), ae)));
+ }
+ function OCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (i = u(k(n, (G(), rt)), 33), v = u(k(n, (nn(), VS)), 19).a, c = u(k(n, ZS), 19).a, gr(i, VS, Q(v)), gr(i, ZS, Q(c)), Yc(i, n.n.a + e.a), Zc(i, n.n.b + e.b), (u(hn(i, Va), 174).gc() != 0 || n.e || B(k(qi(n), tP)) === B((b6(), Nm)) && oyn((gb(), (n.q ? n.q : (Pn(), Pn(), ph))._b(E0) ? g = u(k(n, E0), 197) : g = u(k(qi(n), $m), 197), g))) && (_d(i, n.o.a), Rd(i, n.o.b)), d = new E(n.j); d.a < d.c.c.length; )
+ l = u(y(d), 11), m = k(l, rt), I(m, 186) && (r = u(m, 118), Jo(r, l.n.a, l.n.b), gr(r, av, l.j));
+ for (p = u(k(n, j0), 174).gc() != 0, h = new E(n.b); h.a < h.c.c.length; )
+ o = u(y(h), 70), (p || u(k(o, j0), 174).gc() != 0) && (t = u(k(o, rt), 137), rE(t, o.o.a, o.o.b), Jo(t, o.n.a, o.n.b));
+ if (!D5(u(k(n, Zb), 21)))
+ for (a = new E(n.j); a.a < a.c.c.length; )
+ for (l = u(y(a), 11), f = new E(l.f); f.a < f.c.c.length; )
+ o = u(y(f), 70), t = u(k(o, rt), 137), _d(t, o.o.a), Rd(t, o.o.b), Jo(t, o.n.a, o.n.b);
+ }
+ function DCe(n) {
+ var e, t, i, r, c;
+ switch (T8(n, Dqn), (!n.b && (n.b = new Fn(he, n, 4, 7)), n.b).i + (!n.c && (n.c = new Fn(he, n, 5, 8)), n.c).i) {
+ case 0:
+ throw T(new Hn("The edge must have at least one source or target."));
+ case 1:
+ return (!n.b && (n.b = new Fn(he, n, 4, 7)), n.b).i == 0 ? At(Ir(u(D((!n.c && (n.c = new Fn(he, n, 5, 8)), n.c), 0), 82))) : At(Ir(u(D((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), 0), 82)));
+ }
+ if ((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b).i == 1 && (!n.c && (n.c = new Fn(he, n, 5, 8)), n.c).i == 1) {
+ if (r = Ir(u(D((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), 0), 82)), c = Ir(u(D((!n.c && (n.c = new Fn(he, n, 5, 8)), n.c), 0), 82)), At(r) == At(c))
+ return At(r);
+ if (r == At(c))
+ return r;
+ if (c == At(r))
+ return c;
+ }
+ for (i = cl(of(A(M(gf, 1), rn, 20, 0, [(!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), (!n.c && (n.c = new Fn(he, n, 5, 8)), n.c)]))), e = Ir(u(ve(i), 82)); Se(i); )
+ if (t = Ir(u(ve(i), 82)), t != e && !fb(t, e)) {
+ if (At(t) == At(e))
+ e = At(t);
+ else if (e = p9e(e, t), !e)
+ return null;
+ }
+ return e;
+ }
+ function $Ce(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ for (le(t, "Polyline edge routing", 1), C = K(Y(k(e, (nn(), csn)))), p = K(Y(k(e, $g))), r = K(Y(k(e, Dg))), i = j.Math.min(1, r / p), O = 0, h = 0, e.b.c.length != 0 && (x = kNn(u(un(e.b, 0), 29)), O = 0.4 * i * x), f = new Ii(e.b, 0); f.b < f.d.gc(); ) {
+ for (o = (ne(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 29)), c = nE(o, cy), c && O > 0 && (O -= p), PZ(o, O), a = 0, g = new E(o.a); g.a < g.c.c.length; ) {
+ for (d = u(y(g), 10), l = 0, m = new re(ue(ei(d).a.Kc(), new Mn())); Se(m); )
+ v = u(ve(m), 17), S = tf(v.c).b, $ = tf(v.d).b, o == v.d.i.c && !Wi(v) && (ime(v, O, 0.4 * i * j.Math.abs(S - $)), v.c.j == (J(), Gn) && (S = 0, $ = 0)), l = j.Math.max(l, j.Math.abs($ - S));
+ switch (d.k.g) {
+ case 0:
+ case 4:
+ case 1:
+ case 3:
+ case 5:
+ Zje(n, d, O, C);
+ }
+ a = j.Math.max(a, l);
+ }
+ f.b < f.d.gc() && (x = kNn((ne(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 29))), a = j.Math.max(a, x), ne(f.b > 0), f.a.Xb(f.c = --f.b)), h = 0.4 * i * a, !c && f.b < f.d.gc() && (h += p), O += o.c.a + h;
+ }
+ n.a.a.$b(), e.f.a = O, ce(t);
+ }
+ function FCe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $;
+ for (a = new we(), h = new Dd(), i = new E(n.a.a.b); i.a < i.c.c.length; )
+ if (e = u(y(i), 57), l = $w(e), l)
+ Rc(a.f, l, e);
+ else if ($ = S2(e), $)
+ for (c = new E($.k); c.a < c.c.c.length; )
+ r = u(y(c), 17), Tn(h, r, e);
+ for (t = new E(n.a.a.b); t.a < t.c.c.length; )
+ if (e = u(y(t), 57), l = $w(e), l) {
+ for (f = new re(ue(ei(l).a.Kc(), new Mn())); Se(f); )
+ if (o = u(ve(f), 17), !Wi(o) && (v = o.c, S = o.d, !((J(), ru).Hc(o.c.j) && ru.Hc(o.d.j)))) {
+ if (m = u(te(a, o.d.i), 57), jo(lo(ho(ao(fo(new Ls(), 0), 100), n.c[e.a.d]), n.c[m.a.d])), v.j == Gn && MCn((du(), v))) {
+ for (g = u(ct(h, o), 21).Kc(); g.Ob(); )
+ if (d = u(g.Pb(), 57), d.d.c < e.d.c) {
+ if (p = n.c[d.a.d], C = n.c[e.a.d], p == C)
+ continue;
+ jo(lo(ho(ao(fo(new Ls(), 1), 100), p), C));
+ }
+ }
+ if (S.j == Vn && TCn((du(), S))) {
+ for (g = u(ct(h, o), 21).Kc(); g.Ob(); )
+ if (d = u(g.Pb(), 57), d.d.c > e.d.c) {
+ if (p = n.c[e.a.d], C = n.c[d.a.d], p == C)
+ continue;
+ jo(lo(ho(ao(fo(new Ls(), 1), 100), p), C));
+ }
+ }
+ }
+ }
+ }
+ function _Z(n) {
+ bL();
+ var e, t, i, r, c, o, f, h;
+ if (n == null)
+ return null;
+ if (r = Pf(n, eu(37)), r < 0)
+ return n;
+ for (h = new Ju(n.substr(0, r)), e = F(mu, wg, 25, 4, 15, 1), f = 0, i = 0, o = n.length; r < o; r++)
+ if (Me(r, n.length), n.charCodeAt(r) == 37 && n.length > r + 2 && uF((Me(r + 1, n.length), n.charCodeAt(r + 1)), h1n, l1n) && uF((Me(r + 2, n.length), n.charCodeAt(r + 2)), h1n, l1n))
+ if (t = tfe((Me(r + 1, n.length), n.charCodeAt(r + 1)), (Me(r + 2, n.length), n.charCodeAt(r + 2))), r += 2, i > 0 ? (t & 192) == 128 ? e[f++] = t << 24 >> 24 : i = 0 : t >= 128 && ((t & 224) == 192 ? (e[f++] = t << 24 >> 24, i = 2) : (t & 240) == 224 ? (e[f++] = t << 24 >> 24, i = 3) : (t & 248) == 240 && (e[f++] = t << 24 >> 24, i = 4)), i > 0) {
+ if (f == i) {
+ switch (f) {
+ case 2: {
+ ul(h, ((e[0] & 31) << 6 | e[1] & 63) & Wt);
+ break;
+ }
+ case 3: {
+ ul(h, ((e[0] & 15) << 12 | (e[1] & 63) << 6 | e[2] & 63) & Wt);
+ break;
+ }
+ }
+ f = 0, i = 0;
+ }
+ } else {
+ for (c = 0; c < f; ++c)
+ ul(h, e[c] & Wt);
+ f = 0, h.a += String.fromCharCode(t);
+ }
+ else {
+ for (c = 0; c < f; ++c)
+ ul(h, e[c] & Wt);
+ f = 0, ul(h, (Me(r, n.length), n.charCodeAt(r)));
+ }
+ return h.a;
+ }
+ function y_n(n, e, t, i, r) {
+ var c, o, f;
+ if (HPn(n, e), o = e[0], c = Di(t.c, 0), f = -1, UV(t))
+ if (i > 0) {
+ if (o + i > n.length)
+ return !1;
+ f = tM(n.substr(0, o + i), e);
+ } else
+ f = tM(n, e);
+ switch (c) {
+ case 71:
+ return f = Qw(n, o, A(M(tn, 1), q, 2, 6, [eKn, tKn]), e), r.e = f, !0;
+ case 77:
+ return g7e(n, e, r, f, o);
+ case 76:
+ return p7e(n, e, r, f, o);
+ case 69:
+ return o6e(n, e, o, r);
+ case 99:
+ return f6e(n, e, o, r);
+ case 97:
+ return f = Qw(n, o, A(M(tn, 1), q, 2, 6, ["AM", "PM"]), e), r.b = f, !0;
+ case 121:
+ return v7e(n, e, o, f, t, r);
+ case 100:
+ return f <= 0 ? !1 : (r.c = f, !0);
+ case 83:
+ return f < 0 ? !1 : j2e(f, o, e[0], r);
+ case 104:
+ f == 12 && (f = 0);
+ case 75:
+ case 72:
+ return f < 0 ? !1 : (r.f = f, r.g = !1, !0);
+ case 107:
+ return f < 0 ? !1 : (r.f = f, r.g = !0, !0);
+ case 109:
+ return f < 0 ? !1 : (r.j = f, !0);
+ case 115:
+ return f < 0 ? !1 : (r.n = f, !0);
+ case 90:
+ if (o < n.length && (Me(o, n.length), n.charCodeAt(o) == 90))
+ return ++e[0], r.o = 0, !0;
+ case 122:
+ case 118:
+ return $ve(n, o, e, r);
+ default:
+ return !1;
+ }
+ }
+ function xCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U;
+ if (g = u(u(ct(n.r, e), 21), 84), e == (J(), Vn) || e == Gn) {
+ d_n(n, e);
+ return;
+ }
+ for (c = e == Kn ? (qd(), Ik) : (qd(), Ok), x = e == Kn ? (Qc(), Wo) : (Qc(), To), t = u(br(n.b, e), 124), i = t.i, r = i.c + Bw(A(M(Ci, 1), pr, 25, 15, [t.n.b, n.C.b, n.k])), S = i.c + i.b - Bw(A(M(Ci, 1), pr, 25, 15, [t.n.c, n.C.c, n.k])), o = vG(LU(c), n.t), $ = e == Kn ? Qt : xt, d = g.Kc(); d.Ob(); )
+ l = u(d.Pb(), 111), !(!l.c || l.c.d.c.length <= 0) && (C = l.b.rf(), m = l.e, p = l.c, v = p.i, v.b = (h = p.n, p.e.a + h.b + h.c), v.a = (f = p.n, p.e.b + f.d + f.a), T8(x, ann), p.f = x, Bo(p, (Cu(), Co)), v.c = m.a - (v.b - C.a) / 2, _ = j.Math.min(r, m.a), U = j.Math.max(S, m.a + C.a), v.c < _ ? v.c = _ : v.c + v.b > U && (v.c = U - v.b), W(o.d, new jD(v, gQ(o, v))), $ = e == Kn ? j.Math.max($, m.b + l.b.rf().b) : j.Math.min($, m.b));
+ for ($ += e == Kn ? n.t : -n.t, O = DQ((o.e = $, o)), O > 0 && (u(br(n.b, e), 124).a.b = O), a = g.Kc(); a.Ob(); )
+ l = u(a.Pb(), 111), !(!l.c || l.c.d.c.length <= 0) && (v = l.c.i, v.c -= l.e.a, v.d -= l.e.b);
+ }
+ function LCe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p;
+ for (e = new we(), h = new ie(n); h.e != h.i.gc(); ) {
+ for (f = u(oe(h), 33), t = new hi(), it(DR, f, t), p = new aan(), r = u(es(new $n(null, new Td(new re(ue(N7(f).a.Kc(), new Mn())))), lCn(p, pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [(hf(), hs)])))), 83), FIn(t, u(r.xc((qn(), !0)), 14), new dan()), i = u(es(gt(u(r.xc(!1), 15).Lc(), new ban()), pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [hs]))), 15), o = i.Kc(); o.Ob(); )
+ c = u(o.Pb(), 79), g = kxn(c), g && (l = u(Vr(Sr(e.f, g)), 21), l || (l = _Nn(g), Rc(e.f, g, l)), Xi(t, l));
+ for (r = u(es(new $n(null, new Td(new re(ue(qh(f).a.Kc(), new Mn())))), lCn(p, pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [hs])))), 83), FIn(t, u(r.xc(!0), 14), new wan()), i = u(es(gt(u(r.xc(!1), 15).Lc(), new gan()), pa(new z1(), new G1(), new U1(), A(M(Nu, 1), z, 132, 0, [hs]))), 15), d = i.Kc(); d.Ob(); )
+ a = u(d.Pb(), 79), g = yxn(a), g && (l = u(Vr(Sr(e.f, g)), 21), l || (l = _Nn(g), Rc(e.f, g, l)), Xi(t, l));
+ }
+ }
+ function NCe(n, e) {
+ oL();
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m;
+ if (h = hc(n, 0) < 0, h && (n = S3(n)), hc(n, 0) == 0)
+ switch (e) {
+ case 0:
+ return "0";
+ case 1:
+ return A4;
+ case 2:
+ return "0.00";
+ case 3:
+ return "0.000";
+ case 4:
+ return "0.0000";
+ case 5:
+ return "0.00000";
+ case 6:
+ return "0.000000";
+ default:
+ return p = new X1(), e < 0 ? p.a += "0E+" : p.a += "0E", p.a += e == Bi ? "2147483648" : "" + -e, p.a;
+ }
+ a = 18, d = F(xs, Bf, 25, a + 1, 15, 1), t = a, m = n;
+ do
+ l = m, m = M7(m, 10), d[--t] = ge(Hi(48, pl(l, Ni(m, 10)))) & Wt;
+ while (hc(m, 0) != 0);
+ if (r = pl(pl(pl(a, t), e), 1), e == 0)
+ return h && (d[--t] = 45), Ks(d, t, a - t);
+ if (e > 0 && hc(r, -6) >= 0) {
+ if (hc(r, 0) >= 0) {
+ for (c = t + ge(r), f = a - 1; f >= c; f--)
+ d[f + 1] = d[f];
+ return d[++c] = 46, h && (d[--t] = 45), Ks(d, t, a - t + 1);
+ }
+ for (o = 2; cO(o, Hi(S3(r), 1)); o++)
+ d[--t] = 48;
+ return d[--t] = 46, d[--t] = 48, h && (d[--t] = 45), Ks(d, t, a - t);
+ }
+ return v = t + 1, i = a, g = new _0(), h && (g.a += "-"), i - v >= 1 ? (ul(g, d[t]), g.a += ".", g.a += Ks(d, t + 1, a - t - 1)) : g.a += Ks(d, t, a - t), g.a += "E", hc(r, 0) > 0 && (g.a += "+"), g.a += "" + O5(r), g.a;
+ }
+ function BCe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p;
+ if (n.e.a.$b(), n.f.a.$b(), n.c.c = F(Zn, rn, 1, 0, 5, 1), n.i.c = F(Zn, rn, 1, 0, 5, 1), n.g.a.$b(), e)
+ for (o = new E(e.a); o.a < o.c.c.length; )
+ for (c = u(y(o), 10), d = k1(c, (J(), Vn)).Kc(); d.Ob(); )
+ for (a = u(d.Pb(), 11), ci(n.e, a), r = new E(a.g); r.a < r.c.c.length; )
+ i = u(y(r), 17), !Wi(i) && (W(n.c, i), U$n(n, i), f = i.c.i.k, (f == (Qn(), ii) || f == Mc || f == Vt || f == vf) && W(n.j, i), p = i.d, g = p.i.c, g == t ? ci(n.f, p) : g == e ? ci(n.e, p) : Vc(n.c, i));
+ if (t)
+ for (o = new E(t.a); o.a < o.c.c.length; ) {
+ for (c = u(y(o), 10), l = new E(c.j); l.a < l.c.c.length; )
+ for (h = u(y(l), 11), r = new E(h.g); r.a < r.c.c.length; )
+ i = u(y(r), 17), Wi(i) && ci(n.g, i);
+ for (d = k1(c, (J(), Gn)).Kc(); d.Ob(); )
+ for (a = u(d.Pb(), 11), ci(n.f, a), r = new E(a.g); r.a < r.c.c.length; )
+ i = u(y(r), 17), !Wi(i) && (W(n.c, i), U$n(n, i), f = i.c.i.k, (f == (Qn(), ii) || f == Mc || f == Vt || f == vf) && W(n.j, i), p = i.d, g = p.i.c, g == t ? ci(n.f, p) : g == e ? ci(n.e, p) : Vc(n.c, i));
+ }
+ }
+ function i0(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U;
+ if (C = new fn(n.g, n.f), m = sY(n), m.a = j.Math.max(m.a, e), m.b = j.Math.max(m.b, t), U = m.a / C.a, a = m.b / C.b, x = m.a - C.a, h = m.b - C.b, i)
+ for (o = At(n) ? u(hn(At(n), (Xe(), S0)), 103) : u(hn(n, (Xe(), S0)), 103), f = B(hn(n, (Xe(), n9))) === B((Ai(), Sc)), $ = new ie((!n.c && (n.c = new V(Ru, n, 9, 9)), n.c)); $.e != $.i.gc(); )
+ switch (S = u(oe($), 118), O = u(hn(S, Hg), 61), O == (J(), Xr) && (O = mZ(S, o), gr(S, Hg, O)), O.g) {
+ case 1:
+ f || Yc(S, S.i * U);
+ break;
+ case 2:
+ Yc(S, S.i + x), f || Zc(S, S.j * a);
+ break;
+ case 3:
+ f || Yc(S, S.i * U), Zc(S, S.j + h);
+ break;
+ case 4:
+ f || Zc(S, S.j * a);
+ }
+ if (rE(n, m.a, m.b), r)
+ for (g = new ie((!n.n && (n.n = new V(Rr, n, 1, 7)), n.n)); g.e != g.i.gc(); )
+ d = u(oe(g), 137), p = d.i + d.g / 2, v = d.j + d.f / 2, _ = p / C.a, l = v / C.b, _ + l >= 1 && (_ - l > 0 && v >= 0 ? (Yc(d, d.i + x), Zc(d, d.j + h * l)) : _ - l < 0 && p >= 0 && (Yc(d, d.i + x * _), Zc(d, d.j + h)));
+ return gr(n, (Xe(), nd), (Vu(), c = u(xo(o9), 9), new ms(c, u(bo(c, c.length), 9), 0))), new fn(U, a);
+ }
+ function j_n(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v;
+ if (p = At(Ir(u(D((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), 0), 82))), v = At(Ir(u(D((!n.c && (n.c = new Fn(he, n, 5, 8)), n.c), 0), 82))), d = p == v, f = new Li(), e = u(hn(n, (wT(), Lhn)), 74), e && e.b >= 2) {
+ if ((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a).i == 0)
+ t = (dd(), r = new Vy(), r), me((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a), t);
+ else if ((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a).i > 1)
+ for (g = new b2((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a)); g.e != g.i.gc(); )
+ p6(g);
+ z7(e, u(D((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a), 0), 202));
+ }
+ if (d)
+ for (i = new ie((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a)); i.e != i.i.gc(); )
+ for (t = u(oe(i), 202), l = new ie((!t.a && (t.a = new Yt(to, t, 5)), t.a)); l.e != l.i.gc(); )
+ h = u(oe(l), 469), f.a = j.Math.max(f.a, h.a), f.b = j.Math.max(f.b, h.b);
+ for (o = new ie((!n.n && (n.n = new V(Rr, n, 1, 7)), n.n)); o.e != o.i.gc(); )
+ c = u(oe(o), 137), a = u(hn(c, t9), 8), a && Jo(c, a.a, a.b), d && (f.a = j.Math.max(f.a, c.i + c.g), f.b = j.Math.max(f.b, c.j + c.f));
+ return f;
+ }
+ function RCe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln;
+ for (O = e.c.length, r = new tg(n.a, t, null, null), ln = F(Ci, pr, 25, O, 15, 1), m = F(Ci, pr, 25, O, 15, 1), v = F(Ci, pr, 25, O, 15, 1), C = 0, f = 0; f < O; f++)
+ m[f] = nt, v[f] = Bi;
+ for (h = 0; h < O; h++)
+ for (i = (Ln(h, e.c.length), u(e.c[h], 180)), ln[h] = Nx(i), ln[C] > ln[h] && (C = h), d = new E(n.a.b); d.a < d.c.c.length; )
+ for (a = u(y(d), 29), $ = new E(a.a); $.a < $.c.c.length; )
+ S = u(y($), 10), U = K(i.p[S.p]) + K(i.d[S.p]), m[h] = j.Math.min(m[h], U), v[h] = j.Math.max(v[h], U + S.o.b);
+ for (en = F(Ci, pr, 25, O, 15, 1), l = 0; l < O; l++)
+ (Ln(l, e.c.length), u(e.c[l], 180)).o == (ef(), Ya) ? en[l] = m[C] - m[l] : en[l] = v[C] - v[l];
+ for (c = F(Ci, pr, 25, O, 15, 1), p = new E(n.a.b); p.a < p.c.c.length; )
+ for (g = u(y(p), 29), _ = new E(g.a); _.a < _.c.c.length; ) {
+ for (x = u(y(_), 10), o = 0; o < O; o++)
+ c[o] = K((Ln(o, e.c.length), u(e.c[o], 180)).p[x.p]) + K((Ln(o, e.c.length), u(e.c[o], 180)).d[x.p]) + en[o];
+ c.sort(pIn(zy.prototype.te, zy, [])), r.p[x.p] = (c[1] + c[2]) / 2, r.d[x.p] = 0;
+ }
+ return r;
+ }
+ function _Ce(n, e, t) {
+ var i, r, c, o, f;
+ switch (i = e.i, c = n.i.o, r = n.i.d, f = n.n, o = Gr(A(M(di, 1), q, 8, 0, [f, n.a])), n.j.g) {
+ case 1:
+ Of(e, (Qc(), To)), i.d = -r.d - t - i.a, u(u(un(e.d, 0), 181).We((G(), pp)), 285) == (cs(), kh) ? (Bo(e, (Cu(), Co)), i.c = o.a - K(Y(k(n, Sg))) - t - i.b) : (Bo(e, (Cu(), Xf)), i.c = o.a + K(Y(k(n, Sg))) + t);
+ break;
+ case 2:
+ Bo(e, (Cu(), Xf)), i.c = c.a + r.c + t, u(u(un(e.d, 0), 181).We((G(), pp)), 285) == (cs(), kh) ? (Of(e, (Qc(), To)), i.d = o.b - K(Y(k(n, Sg))) - t - i.a) : (Of(e, (Qc(), Wo)), i.d = o.b + K(Y(k(n, Sg))) + t);
+ break;
+ case 3:
+ Of(e, (Qc(), Wo)), i.d = c.b + r.a + t, u(u(un(e.d, 0), 181).We((G(), pp)), 285) == (cs(), kh) ? (Bo(e, (Cu(), Co)), i.c = o.a - K(Y(k(n, Sg))) - t - i.b) : (Bo(e, (Cu(), Xf)), i.c = o.a + K(Y(k(n, Sg))) + t);
+ break;
+ case 4:
+ Bo(e, (Cu(), Co)), i.c = -r.b - t - i.b, u(u(un(e.d, 0), 181).We((G(), pp)), 285) == (cs(), kh) ? (Of(e, (Qc(), To)), i.d = o.b - K(Y(k(n, Sg))) - t - i.a) : (Of(e, (Qc(), Wo)), i.d = o.b + K(Y(k(n, Sg))) + t);
+ }
+ }
+ function KCe(n, e, t, i, r, c, o) {
+ var f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye, fi;
+ for (p = 0, zn = 0, h = new E(n); h.a < h.c.c.length; )
+ f = u(y(h), 33), c_n(f), p = j.Math.max(p, f.g), zn += f.g * f.f;
+ for (v = zn / n.c.length, wn = q3e(n, v), zn += n.c.length * wn, p = j.Math.max(p, j.Math.sqrt(zn * o)) + t.b, Ye = t.b, fi = t.d, g = 0, a = t.b + t.c, ln = new Ct(), Ke(ln, Q(0)), U = new Ct(), l = new Ii(n, 0); l.b < l.d.gc(); )
+ f = (ne(l.b < l.d.gc()), u(l.d.Xb(l.c = l.b++), 33)), se = f.g, d = f.f, Ye + se > p && (c && (sa(U, g), sa(ln, Q(l.b - 1))), Ye = t.b, fi += g + e, g = 0, a = j.Math.max(a, t.b + t.c + se)), Yc(f, Ye), Zc(f, fi), a = j.Math.max(a, Ye + se + t.c), g = j.Math.max(g, d), Ye += se + e;
+ if (a = j.Math.max(a, i), Wn = fi + g + t.a, Wn < r && (g += r - Wn, Wn = r), c)
+ for (Ye = t.b, l = new Ii(n, 0), sa(ln, Q(n.c.length)), en = _e(ln, 0), S = u(Re(en), 19).a, sa(U, g), _ = _e(U, 0), x = 0; l.b < l.d.gc(); )
+ l.b == S && (Ye = t.b, x = K(Y(Re(_))), S = u(Re(en), 19).a), f = (ne(l.b < l.d.gc()), u(l.d.Xb(l.c = l.b++), 33)), $ = f.f, Rd(f, x), m = x, l.b == S && (C = a - Ye - t.c, O = f.g, _d(f, C), tLn(f, new fn(C, m), new fn(O, $))), Ye += f.g + e;
+ return new fn(a, Wn);
+ }
+ function HCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn;
+ for (le(e, "Compound graph postprocessor", 1), t = on(sn(k(n, (nn(), U_)))), f = u(k(n, (G(), dun)), 224), a = new hi(), S = f.ec().Kc(); S.Ob(); ) {
+ for (C = u(S.Pb(), 17), o = new lu(f.cc(C)), Pn(), wi(o, new Iq(n)), _ = Cbe((Ln(0, o.c.length), u(o.c[0], 243))), en = lOn(u(un(o, o.c.length - 1), 243)), O = _.i, _3(en.i, O) ? $ = O.e : $ = qi(O), d = Ape(C, o), Rs(C.a), g = null, c = new E(o); c.a < c.c.c.length; )
+ r = u(y(c), 243), m = new Li(), rY(m, r.a, $), p = r.b, i = new ou(), vF(i, 0, p.a), hb(i, m), x = new kr(tf(p.c)), U = new kr(tf(p.d)), st(x, m), st(U, m), g && (i.b == 0 ? v = U : v = (ne(i.b != 0), u(i.a.a.c, 8)), ln = j.Math.abs(g.a - v.a) > Kf, wn = j.Math.abs(g.b - v.b) > Kf, (!t && ln && wn || t && (ln || wn)) && Ke(C.a, x)), Xi(C.a, i), i.b == 0 ? g = x : g = (ne(i.b != 0), u(i.c.b.c, 8)), iwe(p, d, m), lOn(r) == en && (qi(en.i) != r.a && (m = new Li(), rY(m, qi(en.i), $)), H(C, I_, m)), A5e(p, C, $), a.a.zc(p, a);
+ Ki(C, _), Ti(C, en);
+ }
+ for (l = a.a.ec().Kc(); l.Ob(); )
+ h = u(l.Pb(), 17), Ki(h, null), Ti(h, null);
+ ce(e);
+ }
+ function E_n(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ if (n.gc() == 1)
+ return u(n.Xb(0), 231);
+ if (n.gc() <= 0)
+ return new TC();
+ for (r = n.Kc(); r.Ob(); ) {
+ for (t = u(r.Pb(), 231), v = 0, a = nt, d = nt, h = Bi, l = Bi, p = new E(t.e); p.a < p.c.c.length; )
+ g = u(y(p), 144), v += u(k(g, (Go(), V4)), 19).a, a = j.Math.min(a, g.d.a - g.e.a / 2), d = j.Math.min(d, g.d.b - g.e.b / 2), h = j.Math.max(h, g.d.a + g.e.a / 2), l = j.Math.max(l, g.d.b + g.e.b / 2);
+ H(t, (Go(), V4), Q(v)), H(t, (al(), vm), new fn(a, d)), H(t, Bk, new fn(h, l));
+ }
+ for (Pn(), n.ad(new van()), m = new TC(), Pr(m, u(n.Xb(0), 94)), f = 0, $ = 0, c = n.Kc(); c.Ob(); )
+ t = u(c.Pb(), 231), C = ji(Qr(u(k(t, (al(), Bk)), 8)), u(k(t, vm), 8)), f = j.Math.max(f, C.a), $ += C.a * C.b;
+ for (f = j.Math.max(f, j.Math.sqrt($) * K(Y(k(m, (Go(), VUn))))), S = K(Y(k(m, rS))), O = 0, x = 0, o = 0, e = S, i = n.Kc(); i.Ob(); )
+ t = u(i.Pb(), 231), C = ji(Qr(u(k(t, (al(), Bk)), 8)), u(k(t, vm), 8)), O + C.a > f && (O = 0, x += o + S, o = 0), Tke(m, t, O, x), e = j.Math.max(e, O + C.a), o = j.Math.max(o, C.b), O += C.a + S;
+ return m;
+ }
+ function C_n(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v;
+ switch (a = new ou(), n.a.g) {
+ case 3:
+ g = u(k(e.e, (G(), Wa)), 15), p = u(k(e.j, Wa), 15), v = u(k(e.f, Wa), 15), t = u(k(e.e, Og), 15), i = u(k(e.j, Og), 15), r = u(k(e.f, Og), 15), o = new X(), Zt(o, g), p.Jc(new vwn()), Zt(o, I(p, 152) ? I2(u(p, 152)) : I(p, 131) ? u(p, 131).a : I(p, 54) ? new od(p) : new K0(p)), Zt(o, v), c = new X(), Zt(c, t), Zt(c, I(i, 152) ? I2(u(i, 152)) : I(i, 131) ? u(i, 131).a : I(i, 54) ? new od(i) : new K0(i)), Zt(c, r), H(e.f, Wa, o), H(e.f, Og, c), H(e.f, yun, e.f), H(e.e, Wa, null), H(e.e, Og, null), H(e.j, Wa, null), H(e.j, Og, null);
+ break;
+ case 1:
+ Xi(a, e.e.a), Ke(a, e.i.n), Xi(a, ma(e.j.a)), Ke(a, e.a.n), Xi(a, e.f.a);
+ break;
+ default:
+ Xi(a, e.e.a), Xi(a, ma(e.j.a)), Xi(a, e.f.a);
+ }
+ Rs(e.f.a), Xi(e.f.a, a), Ki(e.f, e.e.c), f = u(k(e.e, (nn(), Mr)), 74), l = u(k(e.j, Mr), 74), h = u(k(e.f, Mr), 74), (f || l || h) && (d = new ou(), AW(d, h), AW(d, l), AW(d, f), H(e.f, Mr, d)), Ki(e.j, null), Ti(e.j, null), Ki(e.e, null), Ti(e.e, null), jr(e.a, null), jr(e.i, null), e.g && C_n(n, e.g);
+ }
+ function qCe(n) {
+ vZ();
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ if (n == null || (c = NC(n), v = Ige(c), v % 4 != 0))
+ return null;
+ if (m = v / 4 | 0, m == 0)
+ return F(mu, wg, 25, 0, 15, 1);
+ for (d = null, e = 0, t = 0, i = 0, r = 0, o = 0, f = 0, h = 0, l = 0, p = 0, g = 0, a = 0, d = F(mu, wg, 25, m * 3, 15, 1); p < m - 1; p++) {
+ if (!B9(o = c[a++]) || !B9(f = c[a++]) || !B9(h = c[a++]) || !B9(l = c[a++]))
+ return null;
+ e = Tf[o], t = Tf[f], i = Tf[h], r = Tf[l], d[g++] = (e << 2 | t >> 4) << 24 >> 24, d[g++] = ((t & 15) << 4 | i >> 2 & 15) << 24 >> 24, d[g++] = (i << 6 | r) << 24 >> 24;
+ }
+ return !B9(o = c[a++]) || !B9(f = c[a++]) ? null : (e = Tf[o], t = Tf[f], h = c[a++], l = c[a++], Tf[h] == -1 || Tf[l] == -1 ? h == 61 && l == 61 ? t & 15 ? null : (C = F(mu, wg, 25, p * 3 + 1, 15, 1), pc(d, 0, C, 0, p * 3), C[g] = (e << 2 | t >> 4) << 24 >> 24, C) : h != 61 && l == 61 ? (i = Tf[h], i & 3 ? null : (C = F(mu, wg, 25, p * 3 + 2, 15, 1), pc(d, 0, C, 0, p * 3), C[g++] = (e << 2 | t >> 4) << 24 >> 24, C[g] = ((t & 15) << 4 | i >> 2 & 15) << 24 >> 24, C)) : null : (i = Tf[h], r = Tf[l], d[g++] = (e << 2 | t >> 4) << 24 >> 24, d[g++] = ((t & 15) << 4 | i >> 2 & 15) << 24 >> 24, d[g++] = (i << 6 | r) << 24 >> 24, d));
+ }
+ function GCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _;
+ for (le(e, fHn, 1), v = u(k(n, (nn(), Vh)), 218), r = new E(n.b); r.a < r.c.c.length; )
+ for (i = u(y(r), 29), l = I8(i.a), o = l, f = 0, h = o.length; f < h; ++f)
+ if (c = o[f], c.k == (Qn(), Mc)) {
+ if (v == (Kh(), Sp))
+ for (d = new E(c.j); d.a < d.c.c.length; )
+ a = u(y(d), 11), a.e.c.length == 0 || fpe(a), a.g.c.length == 0 || hpe(a);
+ else if (I(k(c, (G(), rt)), 17))
+ C = u(k(c, rt), 17), S = u(k1(c, (J(), Gn)).Kc().Pb(), 11), $ = u(k1(c, Vn).Kc().Pb(), 11), O = u(k(S, rt), 11), x = u(k($, rt), 11), Ki(C, x), Ti(C, O), _ = new kr($.i.n), _.a = Gr(A(M(di, 1), q, 8, 0, [x.i.n, x.n, x.a])).a, Ke(C.a, _), _ = new kr(S.i.n), _.a = Gr(A(M(di, 1), q, 8, 0, [O.i.n, O.n, O.a])).a, Ke(C.a, _);
+ else {
+ if (c.j.c.length >= 2) {
+ for (m = !0, g = new E(c.j), t = u(y(g), 11), p = null; g.a < g.c.c.length; )
+ if (p = t, t = u(y(g), 11), !tt(k(p, rt), k(t, rt))) {
+ m = !1;
+ break;
+ }
+ } else
+ m = !1;
+ for (d = new E(c.j); d.a < d.c.c.length; )
+ a = u(y(d), 11), a.e.c.length == 0 || N8e(a, m), a.g.c.length == 0 || B8e(a, m);
+ }
+ jr(c, null);
+ }
+ ce(e);
+ }
+ function T_n(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln;
+ return O = n.c[(Ln(0, e.c.length), u(e.c[0], 17)).p], en = n.c[(Ln(1, e.c.length), u(e.c[1], 17)).p], O.a.e.e - O.a.a - (O.b.e.e - O.b.a) == 0 && en.a.e.e - en.a.a - (en.b.e.e - en.b.a) == 0 || (S = O.b.e.f, !I(S, 10)) ? !1 : (C = u(S, 10), _ = n.i[C.p], U = C.c ? xr(C.c.a, C, 0) : -1, c = xt, U > 0 && (r = u(un(C.c.a, U - 1), 10), o = n.i[r.p], ln = j.Math.ceil(Mw(n.n, r, C)), c = _.a.e - C.d.d - (o.a.e + r.o.b + r.d.a) - ln), l = xt, U < C.c.a.c.length - 1 && (h = u(un(C.c.a, U + 1), 10), a = n.i[h.p], ln = j.Math.ceil(Mw(n.n, h, C)), l = a.a.e - h.d.d - (_.a.e + C.o.b + C.d.a) - ln), t && (Yo(), mo(Gf), j.Math.abs(c - l) <= Gf || c == l || isNaN(c) && isNaN(l)) ? !0 : (i = $D(O.a), f = -$D(O.b), d = -$D(en.a), $ = $D(en.b), m = O.a.e.e - O.a.a - (O.b.e.e - O.b.a) > 0 && en.a.e.e - en.a.a - (en.b.e.e - en.b.a) < 0, v = O.a.e.e - O.a.a - (O.b.e.e - O.b.a) < 0 && en.a.e.e - en.a.a - (en.b.e.e - en.b.a) > 0, p = O.a.e.e + O.b.a < en.b.e.e + en.a.a, g = O.a.e.e + O.b.a > en.b.e.e + en.a.a, x = 0, !m && !v && (g ? c + d > 0 ? x = d : l - i > 0 && (x = i) : p && (c + f > 0 ? x = f : l - $ > 0 && (x = $))), _.a.e += x, _.b && (_.d.e += x), !1));
+ }
+ function M_n(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ if (i = new ks(e.qf().a, e.qf().b, e.rf().a, e.rf().b), r = new d2(), n.c)
+ for (o = new E(e.wf()); o.a < o.c.c.length; )
+ c = u(y(o), 181), r.c = c.qf().a + e.qf().a, r.d = c.qf().b + e.qf().b, r.b = c.rf().a, r.a = c.rf().b, m6(i, r);
+ for (l = new E(e.Cf()); l.a < l.c.c.length; ) {
+ if (h = u(y(l), 838), a = h.qf().a + e.qf().a, d = h.qf().b + e.qf().b, n.e && (r.c = a, r.d = d, r.b = h.rf().a, r.a = h.rf().b, m6(i, r)), n.d)
+ for (o = new E(h.wf()); o.a < o.c.c.length; )
+ c = u(y(o), 181), r.c = c.qf().a + a, r.d = c.qf().b + d, r.b = c.rf().a, r.a = c.rf().b, m6(i, r);
+ if (n.b) {
+ if (g = new fn(-t, -t), u(e.We((Xe(), cw)), 174).Hc((Tu(), ql)))
+ for (o = new E(h.wf()); o.a < o.c.c.length; )
+ c = u(y(o), 181), g.a += c.rf().a + t, g.b += c.rf().b + t;
+ g.a = j.Math.max(g.a, 0), g.b = j.Math.max(g.b, 0), XBn(i, h.Bf(), h.zf(), e, h, g, t);
+ }
+ }
+ n.b && XBn(i, e.Bf(), e.zf(), e, null, null, t), f = new oD(e.Af()), f.d = j.Math.max(0, e.qf().b - i.d), f.a = j.Math.max(0, i.d + i.a - (e.qf().b + e.rf().b)), f.b = j.Math.max(0, e.qf().a - i.c), f.c = j.Math.max(0, i.c + i.b - (e.qf().a + e.rf().a)), e.Ef(f);
+ }
+ function zCe() {
+ var n = ["\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\u000B", "\\f", "\\r", "\\u000E", "\\u000F", "\\u0010", "\\u0011", "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", "\\u001A", "\\u001B", "\\u001C", "\\u001D", "\\u001E", "\\u001F"];
+ return n[34] = '\\"', n[92] = "\\\\", n[173] = "\\u00ad", n[1536] = "\\u0600", n[1537] = "\\u0601", n[1538] = "\\u0602", n[1539] = "\\u0603", n[1757] = "\\u06dd", n[1807] = "\\u070f", n[6068] = "\\u17b4", n[6069] = "\\u17b5", n[8203] = "\\u200b", n[8204] = "\\u200c", n[8205] = "\\u200d", n[8206] = "\\u200e", n[8207] = "\\u200f", n[8232] = "\\u2028", n[8233] = "\\u2029", n[8234] = "\\u202a", n[8235] = "\\u202b", n[8236] = "\\u202c", n[8237] = "\\u202d", n[8238] = "\\u202e", n[8288] = "\\u2060", n[8289] = "\\u2061", n[8290] = "\\u2062", n[8291] = "\\u2063", n[8292] = "\\u2064", n[8298] = "\\u206a", n[8299] = "\\u206b", n[8300] = "\\u206c", n[8301] = "\\u206d", n[8302] = "\\u206e", n[8303] = "\\u206f", n[65279] = "\\ufeff", n[65529] = "\\ufff9", n[65530] = "\\ufffa", n[65531] = "\\ufffb", n;
+ }
+ function UCe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g;
+ for (h = new X(), d = e.length, o = HV(t), l = 0; l < d; ++l) {
+ switch (a = qz(e, eu(61), l), i = Sge(o, e.substr(l, a - l)), r = iF(i), c = r.Aj().Nh(), Di(e, ++a)) {
+ case 39: {
+ f = c3(e, 39, ++a), W(h, new Yj(i, zD(e.substr(a, f - a), c, r))), l = f + 1;
+ break;
+ }
+ case 34: {
+ f = c3(e, 34, ++a), W(h, new Yj(i, zD(e.substr(a, f - a), c, r))), l = f + 1;
+ break;
+ }
+ case 91: {
+ g = new X(), W(h, new Yj(i, g));
+ n:
+ for (; ; ) {
+ switch (Di(e, ++a)) {
+ case 39: {
+ f = c3(e, 39, ++a), W(g, zD(e.substr(a, f - a), c, r)), a = f + 1;
+ break;
+ }
+ case 34: {
+ f = c3(e, 34, ++a), W(g, zD(e.substr(a, f - a), c, r)), a = f + 1;
+ break;
+ }
+ case 110: {
+ if (++a, e.indexOf("ull", a) == a)
+ g.c[g.c.length] = null;
+ else
+ throw T(new _r(vqn));
+ a += 3;
+ break;
+ }
+ }
+ if (a < d)
+ switch (Me(a, e.length), e.charCodeAt(a)) {
+ case 44:
+ break;
+ case 93:
+ break n;
+ default:
+ throw T(new _r("Expecting , or ]"));
+ }
+ else
+ break;
+ }
+ l = a + 1;
+ break;
+ }
+ case 110: {
+ if (++a, e.indexOf("ull", a) == a)
+ W(h, new Yj(i, null));
+ else
+ throw T(new _r(vqn));
+ l = a + 3;
+ break;
+ }
+ }
+ if (l < d) {
+ if (Me(l, e.length), e.charCodeAt(l) != 44)
+ throw T(new _r("Expecting ,"));
+ } else
+ break;
+ }
+ return h7e(n, h, t);
+ }
+ function A_n(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ for (l = u(u(ct(n.r, e), 21), 84), o = Uve(n, e), t = n.u.Hc((Tu(), u9)), h = l.Kc(); h.Ob(); )
+ if (f = u(h.Pb(), 111), !(!f.c || f.c.d.c.length <= 0)) {
+ switch (g = f.b.rf(), a = f.c, d = a.i, d.b = (c = a.n, a.e.a + c.b + c.c), d.a = (r = a.n, a.e.b + r.d + r.a), e.g) {
+ case 1:
+ f.a ? (d.c = (g.a - d.b) / 2, Bo(a, (Cu(), Il))) : o || t ? (d.c = -d.b - n.s, Bo(a, (Cu(), Co))) : (d.c = g.a + n.s, Bo(a, (Cu(), Xf))), d.d = -d.a - n.t, Of(a, (Qc(), To));
+ break;
+ case 3:
+ f.a ? (d.c = (g.a - d.b) / 2, Bo(a, (Cu(), Il))) : o || t ? (d.c = -d.b - n.s, Bo(a, (Cu(), Co))) : (d.c = g.a + n.s, Bo(a, (Cu(), Xf))), d.d = g.b + n.t, Of(a, (Qc(), Wo));
+ break;
+ case 2:
+ f.a ? (i = n.v ? d.a : u(un(a.d, 0), 181).rf().b, d.d = (g.b - i) / 2, Of(a, (Qc(), Ol))) : o || t ? (d.d = -d.a - n.t, Of(a, (Qc(), To))) : (d.d = g.b + n.t, Of(a, (Qc(), Wo))), d.c = g.a + n.s, Bo(a, (Cu(), Xf));
+ break;
+ case 4:
+ f.a ? (i = n.v ? d.a : u(un(a.d, 0), 181).rf().b, d.d = (g.b - i) / 2, Of(a, (Qc(), Ol))) : o || t ? (d.d = -d.a - n.t, Of(a, (Qc(), To))) : (d.d = g.b + n.t, Of(a, (Qc(), Wo))), d.c = -d.b - n.s, Bo(a, (Cu(), Co));
+ }
+ o = !1;
+ }
+ }
+ function jl(n, e) {
+ Je();
+ var t, i, r, c, o, f, h, l, a, d, g, p, v;
+ if (Xv(Sv) == 0) {
+ for (d = F(aMe, q, 117, Pee.length, 0, 1), o = 0; o < d.length; o++)
+ d[o] = new ns(4);
+ for (i = new zv(), c = 0; c < L1n.length; c++) {
+ if (a = new ns(4), c < 84 ? (f = c * 2, p = (Me(f, tR.length), tR.charCodeAt(f)), g = (Me(f + 1, tR.length), tR.charCodeAt(f + 1)), jc(a, p, g)) : (f = (c - 84) * 2, jc(a, N1n[f], N1n[f + 1])), h = L1n[c], An(h, "Specials") && jc(a, 65520, 65533), An(h, tzn) && (jc(a, 983040, 1048573), jc(a, 1048576, 1114109)), yr(Sv, h, a), yr(m9, h, Ab(a)), l = i.a.length, 0 < l ? i.a = i.a.substr(0, 0) : 0 > l && (i.a += Oyn(F(xs, Bf, 25, -l, 15, 1))), i.a += "Is", Pf(h, eu(32)) >= 0)
+ for (r = 0; r < h.length; r++)
+ Me(r, h.length), h.charCodeAt(r) != 32 && b3(i, (Me(r, h.length), h.charCodeAt(r)));
+ else
+ i.a += "" + h;
+ BQ(i.a, h, !0);
+ }
+ BQ(eR, "Cn", !1), BQ(sin, "Cn", !0), t = new ns(4), jc(t, 0, H4), yr(Sv, "ALL", t), yr(m9, "ALL", Ab(t)), !dw && (dw = new we()), yr(dw, eR, eR), !dw && (dw = new we()), yr(dw, sin, sin), !dw && (dw = new we()), yr(dw, "ALL", "ALL");
+ }
+ return v = u(mc(e ? Sv : m9, n), 136), v;
+ }
+ function WCe(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C, S, $;
+ if (g = !1, d = !1, Cw(u(k(i, (nn(), Nt)), 98))) {
+ o = !1, f = !1;
+ n:
+ for (v = new E(i.j); v.a < v.c.c.length; )
+ for (p = u(y(v), 11), C = cl(of(A(M(gf, 1), rn, 20, 0, [new Hp(p), new n2(p)]))); Se(C); )
+ if (m = u(ve(C), 11), !on(sn(k(m.i, Im)))) {
+ if (p.j == (J(), Kn)) {
+ o = !0;
+ break n;
+ }
+ if (p.j == ae) {
+ f = !0;
+ break n;
+ }
+ }
+ g = f && !o, d = o && !f;
+ }
+ if (!g && !d && i.b.c.length != 0) {
+ for (a = 0, l = new E(i.b); l.a < l.c.c.length; )
+ h = u(y(l), 70), a += h.n.b + h.o.b / 2;
+ a /= i.b.c.length, $ = a >= i.o.b / 2;
+ } else
+ $ = !d;
+ $ ? (S = u(k(i, (G(), mp)), 15), S ? g ? c = S : (r = u(k(i, bp), 15), r ? S.gc() <= r.gc() ? c = S : c = r : (c = new X(), H(i, bp, c))) : (c = new X(), H(i, mp, c))) : (r = u(k(i, (G(), bp)), 15), r ? d ? c = r : (S = u(k(i, mp), 15), S ? r.gc() <= S.gc() ? c = r : c = S : (c = new X(), H(i, mp, c))) : (c = new X(), H(i, bp, c))), c.Fc(n), H(n, (G(), _S), t), e.d == t ? (Ti(e, null), t.e.c.length + t.g.c.length == 0 && Hr(t, null), Bwe(t)) : (Ki(e, null), t.e.c.length + t.g.c.length == 0 && Hr(t, null)), Rs(e.a);
+ }
+ function XCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye;
+ for ($ = new Ii(n.b, 0), a = e.Kc(), v = 0, l = u(a.Pb(), 19).a, _ = 0, t = new hi(), en = new Ah(); $.b < $.d.gc(); ) {
+ for (S = (ne($.b < $.d.gc()), u($.d.Xb($.c = $.b++), 29)), x = new E(S.a); x.a < x.c.c.length; ) {
+ for (O = u(y(x), 10), p = new re(ue(ei(O).a.Kc(), new Mn())); Se(p); )
+ d = u(ve(p), 17), en.a.zc(d, en);
+ for (g = new re(ue(Lr(O).a.Kc(), new Mn())); Se(g); )
+ d = u(ve(g), 17), en.a.Bc(d) != null;
+ }
+ if (v + 1 == l) {
+ for (r = new Bs(n), V0($, r), c = new Bs(n), V0($, c), wn = en.a.ec().Kc(); wn.Ob(); )
+ ln = u(wn.Pb(), 17), t.a._b(ln) || (++_, t.a.zc(ln, t)), o = new Hh(n), H(o, (nn(), Nt), (Ai(), Cv)), jr(o, r), ta(o, (Qn(), vf)), m = new gc(), Hr(m, o), si(m, (J(), Gn)), zn = new gc(), Hr(zn, o), si(zn, Vn), i = new Hh(n), H(i, Nt, Cv), jr(i, c), ta(i, vf), C = new gc(), Hr(C, i), si(C, Gn), Wn = new gc(), Hr(Wn, i), si(Wn, Vn), U = new Id(), Ki(U, ln.c), Ti(U, m), Ye = new Id(), Ki(Ye, zn), Ti(Ye, C), Ki(ln, Wn), f = new wX(o, i, U, Ye, ln), H(o, (G(), v0), f), H(i, v0, f), se = U.c.i, se.k == vf && (h = u(k(se, v0), 305), h.d = f, f.g = h);
+ if (a.Ob())
+ l = u(a.Pb(), 19).a;
+ else
+ break;
+ }
+ ++v;
+ }
+ return Q(_);
+ }
+ function VCe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m;
+ for (d = 0, r = new ie((!e.a && (e.a = new V(Pt, e, 10, 11)), e.a)); r.e != r.i.gc(); )
+ i = u(oe(r), 33), on(sn(hn(i, (nn(), Qa)))) || ((B(hn(e, xl)) !== B((Bh(), Ll)) || B(hn(e, Vb)) === B((Ia(), Em)) || B(hn(e, Vb)) === B((Ia(), jm)) || on(sn(hn(e, Xb))) || B(hn(e, kp)) !== B((Gd(), yg))) && !on(sn(hn(i, D_))) && (gr(i, (G(), bc), Q(d)), ++d), u_n(n, i, t));
+ for (d = 0, l = new ie((!e.b && (e.b = new V(bi, e, 12, 3)), e.b)); l.e != l.i.gc(); )
+ f = u(oe(l), 79), (B(hn(e, (nn(), xl))) !== B((Bh(), Ll)) || B(hn(e, Vb)) === B((Ia(), Em)) || B(hn(e, Vb)) === B((Ia(), jm)) || on(sn(hn(e, Xb))) || B(hn(e, kp)) !== B((Gd(), yg))) && (gr(f, (G(), bc), Q(d)), ++d), v = fh(f), m = vl(f), a = on(sn(hn(v, Jb))), p = !on(sn(hn(f, Qa))), g = a && Yd(f) && on(sn(hn(f, Xa))), c = At(v) == e && At(v) == At(m), o = (At(v) == e && m == e) ^ (At(m) == e && v == e), p && !g && (o || c) && GZ(n, f, e, t);
+ if (At(e))
+ for (h = new ie(TTn(At(e))); h.e != h.i.gc(); )
+ f = u(oe(h), 79), v = fh(f), v == e && Yd(f) && (g = on(sn(hn(v, (nn(), Jb)))) && on(sn(hn(f, Xa))), g && GZ(n, f, e, t));
+ }
+ function QCe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye, fi;
+ for (le(t, "MinWidth layering", 1), p = e.b, en = e.a, fi = u(k(e, (nn(), wsn)), 19).a, f = u(k(e, gsn), 19).a, n.b = K(Y(k(e, Mo))), n.d = xt, x = new E(en); x.a < x.c.c.length; )
+ $ = u(y(x), 10), $.k == (Qn(), ii) && (zn = $.o.b, n.d = j.Math.min(n.d, zn));
+ for (n.d = j.Math.max(1, n.d), ln = en.c.length, n.c = F(be, Le, 25, ln, 15, 1), n.f = F(be, Le, 25, ln, 15, 1), n.e = F(Ci, pr, 25, ln, 15, 1), l = 0, n.a = 0, _ = new E(en); _.a < _.c.c.length; )
+ $ = u(y(_), 10), $.p = l++, n.c[$.p] = jDn(Lr($)), n.f[$.p] = jDn(ei($)), n.e[$.p] = $.o.b / n.d, n.a += n.e[$.p];
+ for (n.b /= n.d, n.a /= ln, U = dme(en), wi(en, _W(new i6n(n))), m = xt, v = nt, o = null, Ye = fi, se = fi, c = f, r = f, fi < 0 && (Ye = u(aon.a.zd(), 19).a, se = u(aon.b.zd(), 19).a), f < 0 && (c = u(lon.a.zd(), 19).a, r = u(lon.b.zd(), 19).a), Wn = Ye; Wn <= se; Wn++)
+ for (i = c; i <= r; i++)
+ wn = Hye(n, Wn, i, en, U), S = K(Y(wn.a)), g = u(wn.b, 15), C = g.gc(), (S < m || S == m && C < v) && (m = S, v = C, o = g);
+ for (d = o.Kc(); d.Ob(); ) {
+ for (a = u(d.Pb(), 15), h = new Bs(e), O = a.Kc(); O.Ob(); )
+ $ = u(O.Pb(), 10), jr($, h);
+ p.c[p.c.length] = h;
+ }
+ Ax(p), en.c = F(Zn, rn, 1, 0, 5, 1), ce(t);
+ }
+ function JCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn;
+ for (n.b = e, n.a = u(k(e, (nn(), fsn)), 19).a, n.c = u(k(e, lsn), 19).a, n.c == 0 && (n.c = nt), C = new Ii(e.b, 0); C.b < C.d.gc(); ) {
+ for (m = (ne(C.b < C.d.gc()), u(C.d.Xb(C.c = C.b++), 29)), f = new X(), a = -1, x = -1, O = new E(m.a); O.a < O.c.c.length; )
+ $ = u(y(O), 10), $h((w8(), new re(ue(_h($).a.Kc(), new Mn())))) >= n.a && (i = $ye(n, $), a = j.Math.max(a, i.b), x = j.Math.max(x, i.d), W(f, new Pi($, i)));
+ for (ln = new X(), l = 0; l < a; ++l)
+ J0(ln, 0, (ne(C.b > 0), C.a.Xb(C.c = --C.b), wn = new Bs(n.b), V0(C, wn), ne(C.b < C.d.gc()), C.d.Xb(C.c = C.b++), wn));
+ for (o = new E(f); o.a < o.c.c.length; )
+ if (r = u(y(o), 46), p = u(r.b, 571).a, !!p)
+ for (g = new E(p); g.a < g.c.c.length; )
+ d = u(y(g), 10), aJ(n, d, sS, ln);
+ for (t = new X(), h = 0; h < x; ++h)
+ W(t, (zn = new Bs(n.b), V0(C, zn), zn));
+ for (c = new E(f); c.a < c.c.c.length; )
+ if (r = u(y(c), 46), en = u(r.b, 571).c, !!en)
+ for (U = new E(en); U.a < U.c.c.length; )
+ _ = u(y(U), 10), aJ(n, _, oS, t);
+ }
+ for (S = new Ii(e.b, 0); S.b < S.d.gc(); )
+ v = (ne(S.b < S.d.gc()), u(S.d.Xb(S.c = S.b++), 29)), v.a.c.length == 0 && Uu(S);
+ }
+ function YCe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se;
+ if (le(t, "Spline edge routing", 1), e.b.c.length == 0) {
+ e.f.a = 0, ce(t);
+ return;
+ }
+ $ = K(Y(k(e, (nn(), $g)))), f = K(Y(k(e, Ja))), o = K(Y(k(e, Dg))), S = u(k(e, B_), 336), ln = S == (V3(), Rm), en = K(Y(k(e, ssn))), n.d = e, n.j.c = F(Zn, rn, 1, 0, 5, 1), n.a.c = F(Zn, rn, 1, 0, 5, 1), Eu(n.k), h = u(un(e.b, 0), 29), a = nE(h.a, (hM(), cy)), v = u(un(e.b, e.b.c.length - 1), 29), d = nE(v.a, cy), m = new E(e.b), C = null, se = 0;
+ do {
+ for (O = m.a < m.c.c.length ? u(y(m), 29) : null, BCe(n, C, O), aye(n), wn = kie(Ebe(ZE(gt(new $n(null, new xn(n.i, 16)), new dgn()), new agn()))), Wn = 0, x = se, g = !C || a && C == h, p = !O || d && O == v, wn > 0 ? (l = 0, C && (l += f), l += (wn - 1) * o, O && (l += f), ln && O && (l = j.Math.max(l, D8e(O, o, $, en))), l < $ && !g && !p && (Wn = ($ - l) / 2, l = $), x += l) : !g && !p && (x += $), O && PZ(O, x), U = new E(n.i); U.a < U.c.c.length; )
+ _ = u(y(U), 128), _.a.c = se, _.a.b = x - se, _.F = Wn, _.p = !C;
+ Zt(n.a, n.i), se = x, O && (se += O.c.a), C = O, g = p;
+ } while (O);
+ for (r = new E(n.j); r.a < r.c.c.length; )
+ i = u(y(r), 17), c = Xbe(n, i), H(i, (G(), Og), c), zn = n7e(n, i), H(i, Wa, zn);
+ e.f.a = se, n.d = null, ce(t);
+ }
+ function S_n(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ if (m = n.i != 0, O = !1, S = null, Hu(n.e)) {
+ if (a = e.gc(), a > 0) {
+ for (g = a < 100 ? null : new V1(a), l = new CV(e), v = l.g, S = F(be, Le, 25, a, 15, 1), i = 0, x = new Nd(a), r = 0; r < n.i; ++r) {
+ f = n.g[r], p = f;
+ n:
+ for ($ = 0; $ < 2; ++$) {
+ for (h = a; --h >= 0; )
+ if (p != null ? tt(p, v[h]) : B(p) === B(v[h])) {
+ S.length <= i && (C = S, S = F(be, Le, 25, 2 * S.length, 15, 1), pc(C, 0, S, 0, i)), S[i++] = r, me(x, v[h]);
+ break n;
+ }
+ if (p = p, B(p) === B(f))
+ break;
+ }
+ }
+ if (l = x, v = x.g, a = i, i > S.length && (C = S, S = F(be, Le, 25, i, 15, 1), pc(C, 0, S, 0, i)), i > 0) {
+ for (O = !0, c = 0; c < i; ++c)
+ p = v[c], g = uEn(n, u(p, 72), g);
+ for (o = i; --o >= 0; )
+ H2(n, S[o]);
+ if (i != a) {
+ for (r = a; --r >= i; )
+ H2(l, r);
+ C = S, S = F(be, Le, 25, i, 15, 1), pc(C, 0, S, 0, i);
+ }
+ e = l;
+ }
+ }
+ } else
+ for (e = I3e(n, e), r = n.i; --r >= 0; )
+ e.Hc(n.g[r]) && (H2(n, r), O = !0);
+ if (O) {
+ if (S != null) {
+ for (t = e.gc(), d = t == 1 ? _5(n, 4, e.Kc().Pb(), null, S[0], m) : _5(n, 6, e, S, S[0], m), g = t < 100 ? null : new V1(t), r = e.Kc(); r.Ob(); )
+ p = r.Pb(), g = SU(n, u(p, 72), g);
+ g ? (g.Ei(d), g.Fi()) : et(n.e, d);
+ } else {
+ for (g = que(e.gc()), r = e.Kc(); r.Ob(); )
+ p = r.Pb(), g = SU(n, u(p, 72), g);
+ g && g.Fi();
+ }
+ return !0;
+ } else
+ return !1;
+ }
+ function ZCe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O;
+ for (t = new nFn(e), t.a || Lke(e), l = N7e(e), h = new Dd(), C = new XNn(), m = new E(e.a); m.a < m.c.c.length; )
+ for (v = u(y(m), 10), r = new re(ue(ei(v).a.Kc(), new Mn())); Se(r); )
+ i = u(ve(r), 17), (i.c.i.k == (Qn(), Vt) || i.d.i.k == Vt) && (a = KEe(n, i, l, C), Tn(h, GF(a.d), a.a));
+ for (o = new X(), O = u(k(t.c, (G(), zb)), 21).Kc(); O.Ob(); ) {
+ switch ($ = u(O.Pb(), 61), p = C.c[$.g], g = C.b[$.g], f = C.a[$.g], c = null, S = null, $.g) {
+ case 4:
+ c = new ks(n.d.a, p, l.b.a - n.d.a, g - p), S = new ks(n.d.a, p, f, g - p), Ed(l, new fn(c.c + c.b, c.d)), Ed(l, new fn(c.c + c.b, c.d + c.a));
+ break;
+ case 2:
+ c = new ks(l.a.a, p, n.c.a - l.a.a, g - p), S = new ks(n.c.a - f, p, f, g - p), Ed(l, new fn(c.c, c.d)), Ed(l, new fn(c.c, c.d + c.a));
+ break;
+ case 1:
+ c = new ks(p, n.d.b, g - p, l.b.b - n.d.b), S = new ks(p, n.d.b, g - p, f), Ed(l, new fn(c.c, c.d + c.a)), Ed(l, new fn(c.c + c.b, c.d + c.a));
+ break;
+ case 3:
+ c = new ks(p, l.a.b, g - p, n.c.b - l.a.b), S = new ks(p, n.c.b - f, g - p, f), Ed(l, new fn(c.c, c.d)), Ed(l, new fn(c.c + c.b, c.d));
+ }
+ c && (d = new e9n(), d.d = $, d.b = c, d.c = S, d.a = rC(u(ct(h, GF($)), 21)), o.c[o.c.length] = d);
+ }
+ return Zt(t.b, o), t.d = ige(uEe(l)), t;
+ }
+ function P_n(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m;
+ if (t.p[e.p] == null) {
+ f = !0, t.p[e.p] = 0, o = e, m = t.o == (ef(), Ya) ? Qt : xt;
+ do
+ r = n.b.e[o.p], c = o.c.a.c.length, t.o == Ya && r > 0 || t.o == kf && r < c - 1 ? (h = null, l = null, t.o == kf ? h = u(un(o.c.a, r + 1), 10) : h = u(un(o.c.a, r - 1), 10), l = t.g[h.p], P_n(n, l, t), m = n.e.bg(m, e, o), t.j[e.p] == e && (t.j[e.p] = t.j[l.p]), t.j[e.p] == t.j[l.p] ? (v = Mw(n.d, o, h), t.o == kf ? (i = K(t.p[e.p]), d = K(t.p[l.p]) + K(t.d[h.p]) - h.d.d - v - o.d.a - o.o.b - K(t.d[o.p]), f ? (f = !1, t.p[e.p] = j.Math.min(d, m)) : t.p[e.p] = j.Math.min(i, j.Math.min(d, m))) : (i = K(t.p[e.p]), d = K(t.p[l.p]) + K(t.d[h.p]) + h.o.b + h.d.a + v + o.d.d - K(t.d[o.p]), f ? (f = !1, t.p[e.p] = j.Math.max(d, m)) : t.p[e.p] = j.Math.max(i, j.Math.max(d, m)))) : (v = K(Y(k(n.a, (nn(), M0)))), p = nOn(n, t.j[e.p]), a = nOn(n, t.j[l.p]), t.o == kf ? (g = K(t.p[e.p]) + K(t.d[o.p]) + o.o.b + o.d.a + v - (K(t.p[l.p]) + K(t.d[h.p]) - h.d.d), BMn(p, a, g)) : (g = K(t.p[e.p]) + K(t.d[o.p]) - o.d.d - K(t.p[l.p]) - K(t.d[h.p]) - h.o.b - h.d.a - v, BMn(p, a, g)))) : m = n.e.bg(m, e, o), o = t.a[o.p];
+ while (o != e);
+ Jte(n.e, e);
+ }
+ }
+ function nTe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se;
+ for (O = e, $ = new Dd(), x = new Dd(), a = xd(O, $tn), i = new STn(n, t, $, x), B5e(i.a, i.b, i.c, i.d, a), h = (en = $.i, en || ($.i = new Sw($, $.c))), wn = h.Kc(); wn.Ob(); )
+ for (ln = u(wn.Pb(), 202), r = u(ct($, ln), 21), m = r.Kc(); m.Ob(); )
+ if (v = m.Pb(), _ = u(xw(n.d, v), 202), _)
+ f = (!ln.e && (ln.e = new Fn(Tt, ln, 10, 9)), ln.e), me(f, _);
+ else
+ throw o = Dh(O, Uf), g = Aqn + v + Sqn + o, p = g + _4, T(new Af(p));
+ for (l = (U = x.i, U || (x.i = new Sw(x, x.c))), Wn = l.Kc(); Wn.Ob(); )
+ for (zn = u(Wn.Pb(), 202), c = u(ct(x, zn), 21), S = c.Kc(); S.Ob(); )
+ if (C = S.Pb(), _ = u(xw(n.d, C), 202), _)
+ d = (!zn.g && (zn.g = new Fn(Tt, zn, 9, 10)), zn.g), me(d, _);
+ else
+ throw o = Dh(O, Uf), g = Aqn + C + Sqn + o, p = g + _4, T(new Af(p));
+ !t.b && (t.b = new Fn(he, t, 4, 7)), t.b.i != 0 && (!t.c && (t.c = new Fn(he, t, 5, 8)), t.c.i != 0) && (!t.b && (t.b = new Fn(he, t, 4, 7)), t.b.i <= 1 && (!t.c && (t.c = new Fn(he, t, 5, 8)), t.c.i <= 1)) && (!t.a && (t.a = new V(Tt, t, 6, 6)), t.a).i == 1 && (se = u(D((!t.a && (t.a = new V(Tt, t, 6, 6)), t.a), 0), 202), !VF(se) && !QF(se) && (JC(se, u(D((!t.b && (t.b = new Fn(he, t, 4, 7)), t.b), 0), 82)), YC(se, u(D((!t.c && (t.c = new Fn(he, t, 5, 8)), t.c), 0), 82))));
+ }
+ function eTe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn;
+ for (O = n.a, x = 0, _ = O.length; x < _; ++x) {
+ for ($ = O[x], l = nt, a = nt, v = new E($.e); v.a < v.c.c.length; )
+ g = u(y(v), 10), o = g.c ? xr(g.c.a, g, 0) : -1, o > 0 ? (d = u(un(g.c.a, o - 1), 10), ln = Mw(n.b, g, d), C = g.n.b - g.d.d - (d.n.b + d.o.b + d.d.a + ln)) : C = g.n.b - g.d.d, l = j.Math.min(C, l), o < g.c.a.c.length - 1 ? (d = u(un(g.c.a, o + 1), 10), ln = Mw(n.b, g, d), S = d.n.b - d.d.d - (g.n.b + g.o.b + g.d.a + ln)) : S = 2 * g.n.b, a = j.Math.min(S, a);
+ for (h = nt, c = !1, r = u(un($.e, 0), 10), zn = new E(r.j); zn.a < zn.c.c.length; )
+ for (wn = u(y(zn), 11), m = r.n.b + wn.n.b + wn.a.b, i = new E(wn.e); i.a < i.c.c.length; )
+ t = u(y(i), 17), U = t.c, e = U.i.n.b + U.n.b + U.a.b - m, j.Math.abs(e) < j.Math.abs(h) && j.Math.abs(e) < (e < 0 ? l : a) && (h = e, c = !0);
+ for (f = u(un($.e, $.e.c.length - 1), 10), en = new E(f.j); en.a < en.c.c.length; )
+ for (U = u(y(en), 11), m = f.n.b + U.n.b + U.a.b, i = new E(U.g); i.a < i.c.c.length; )
+ t = u(y(i), 17), wn = t.d, e = wn.i.n.b + wn.n.b + wn.a.b - m, j.Math.abs(e) < j.Math.abs(h) && j.Math.abs(e) < (e < 0 ? l : a) && (h = e, c = !0);
+ if (c && h != 0)
+ for (p = new E($.e); p.a < p.c.c.length; )
+ g = u(y(p), 10), g.n.b += h;
+ }
+ }
+ function I_n(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ if (zu(n.a, e)) {
+ if (Mh(u(te(n.a, e), 53), t))
+ return 1;
+ } else
+ it(n.a, e, new hi());
+ if (zu(n.a, t)) {
+ if (Mh(u(te(n.a, t), 53), e))
+ return -1;
+ } else
+ it(n.a, t, new hi());
+ if (zu(n.e, e)) {
+ if (Mh(u(te(n.e, e), 53), t))
+ return -1;
+ } else
+ it(n.e, e, new hi());
+ if (zu(n.e, t)) {
+ if (Mh(u(te(n.a, t), 53), e))
+ return 1;
+ } else
+ it(n.e, t, new hi());
+ if (n.c == (Bh(), tK) || !ai(e, (G(), bc)) || !ai(t, (G(), bc))) {
+ if (h = u(Gz(qAn(fF(gt(new $n(null, new xn(e.j, 16)), new own())), new fwn())), 11), a = u(Gz(qAn(fF(gt(new $n(null, new xn(t.j, 16)), new hwn())), new lwn())), 11), h && a) {
+ if (f = h.i, l = a.i, f && f == l) {
+ for (g = new E(f.j); g.a < g.c.c.length; ) {
+ if (d = u(y(g), 11), d == h)
+ return g4(n, t, e), -1;
+ if (d == a)
+ return g4(n, e, t), 1;
+ }
+ return zc(bx(n, e), bx(n, t));
+ }
+ for (v = n.d, m = 0, C = v.length; m < C; ++m) {
+ if (p = v[m], p == f)
+ return g4(n, t, e), -1;
+ if (p == l)
+ return g4(n, e, t), 1;
+ }
+ }
+ if (!ai(e, (G(), bc)) || !ai(t, bc))
+ return r = bx(n, e), o = bx(n, t), r > o ? g4(n, e, t) : g4(n, t, e), r < o ? -1 : r > o ? 1 : 0;
+ }
+ return i = u(k(e, (G(), bc)), 19).a, c = u(k(t, bc), 19).a, i > c ? g4(n, e, t) : g4(n, t, e), i < c ? -1 : i > c ? 1 : 0;
+ }
+ function KZ(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C, S, $;
+ if (on(sn(hn(e, (Xe(), RP)))))
+ return Pn(), Pn(), cr;
+ if (l = (!e.a && (e.a = new V(Pt, e, 10, 11)), e.a).i != 0, d = K6e(e), a = !d.dc(), l || a) {
+ if (r = u(hn(e, kv), 149), !r)
+ throw T(new pw("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));
+ if ($ = hz(r, (a4(), YP)), x$n(e), !l && a && !$)
+ return Pn(), Pn(), cr;
+ if (h = new X(), B(hn(e, Bg)) === B((Rh(), F1)) && (hz(r, QP) || hz(r, VP)))
+ for (p = pBn(n, e), v = new Ct(), Xi(v, (!e.a && (e.a = new V(Pt, e, 10, 11)), e.a)); v.b != 0; )
+ g = u(v.b == 0 ? null : (ne(v.b != 0), Cs(v, v.a.a)), 33), x$n(g), S = B(hn(g, Bg)) === B(i9), S || ga(g, Zm) && !CX(r, hn(g, kv)) ? (f = KZ(n, g, t, i), Zt(h, f), gr(g, Bg, i9), FBn(g)) : Xi(v, (!g.a && (g.a = new V(Pt, g, 10, 11)), g.a));
+ else
+ for (p = (!e.a && (e.a = new V(Pt, e, 10, 11)), e.a).i, o = new ie((!e.a && (e.a = new V(Pt, e, 10, 11)), e.a)); o.e != o.i.gc(); )
+ c = u(oe(o), 33), f = KZ(n, c, t, i), Zt(h, f), FBn(c);
+ for (C = new E(h); C.a < C.c.c.length; )
+ m = u(y(C), 79), gr(m, RP, (qn(), !0));
+ return gpe(e, r, yc(i, p)), xke(h), a && $ ? d : (Pn(), Pn(), cr);
+ } else
+ return Pn(), Pn(), cr;
+ }
+ function V7(n, e, t, i, r, c, o, f, h) {
+ var l, a, d, g, p, v, m;
+ switch (p = t, a = new Hh(h), ta(a, (Qn(), Vt)), H(a, (G(), bun), o), H(a, (nn(), Nt), (Ai(), Sc)), m = K(Y(n.We(Yb))), H(a, Yb, m), d = new gc(), Hr(d, a), e != jf && e != Hl || (i >= 0 ? p = B2(f) : p = b7(B2(f)), n.Ye(av, p)), l = new Li(), g = !1, n.Xe(C0) ? (Zz(l, u(n.We(C0), 8)), g = !0) : Sce(l, o.a / 2, o.b / 2), p.g) {
+ case 4:
+ H(a, Hc, (As(), Fl)), H(a, HS, (ja(), Tg)), a.o.b = o.b, m < 0 && (a.o.a = -m), si(d, (J(), Vn)), g || (l.a = o.a), l.a -= o.a;
+ break;
+ case 2:
+ H(a, Hc, (As(), Wb)), H(a, HS, (ja(), rv)), a.o.b = o.b, m < 0 && (a.o.a = -m), si(d, (J(), Gn)), g || (l.a = 0);
+ break;
+ case 1:
+ H(a, Ua, (Lh(), Ag)), a.o.a = o.a, m < 0 && (a.o.b = -m), si(d, (J(), ae)), g || (l.b = o.b), l.b -= o.b;
+ break;
+ case 3:
+ H(a, Ua, (Lh(), dp)), a.o.a = o.a, m < 0 && (a.o.b = -m), si(d, (J(), Kn)), g || (l.b = 0);
+ }
+ if (Zz(d.n, l), H(a, C0, l), e == id || e == jh || e == Sc) {
+ if (v = 0, e == id && n.Xe(P1))
+ switch (p.g) {
+ case 1:
+ case 2:
+ v = u(n.We(P1), 19).a;
+ break;
+ case 3:
+ case 4:
+ v = -u(n.We(P1), 19).a;
+ }
+ else
+ switch (p.g) {
+ case 4:
+ case 2:
+ v = c.b, e == jh && (v /= r.b);
+ break;
+ case 1:
+ case 3:
+ v = c.a, e == jh && (v /= r.a);
+ }
+ H(a, y0, v);
+ }
+ return H(a, ec, p), a;
+ }
+ function tTe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn;
+ if (t = K(Y(k(n.a.j, (nn(), esn)))), t < -1 || !n.a.i || p2(u(k(n.a.o, Nt), 98)) || zr(n.a.o, (J(), Vn)).gc() < 2 && zr(n.a.o, Gn).gc() < 2)
+ return !0;
+ if (n.a.c.Rf())
+ return !1;
+ for (_ = 0, x = 0, O = new X(), h = n.a.e, l = 0, a = h.length; l < a; ++l) {
+ for (f = h[l], g = f, p = 0, m = g.length; p < m; ++p) {
+ if (d = g[p], d.k == (Qn(), Mc)) {
+ O.c[O.c.length] = d;
+ continue;
+ }
+ for (i = n.b[d.c.p][d.p], d.k == Vt ? (i.b = 1, u(k(d, (G(), rt)), 11).j == (J(), Vn) && (x += i.a)) : (wn = zr(d, (J(), Gn)), wn.dc() || !qO(wn, new Swn()) ? i.c = 1 : (r = zr(d, Vn), (r.dc() || !qO(r, new Awn())) && (_ += i.a))), o = new re(ue(ei(d).a.Kc(), new Mn())); Se(o); )
+ c = u(ve(o), 17), _ += i.c, x += i.b, ln = c.d.i, KX(n, i, ln);
+ for (S = of(A(M(gf, 1), rn, 20, 0, [zr(d, (J(), Kn)), zr(d, ae)])), en = new re(new xz(S.a.length, S.a)); Se(en); )
+ U = u(ve(en), 11), $ = u(k(U, (G(), Mu)), 10), $ && (_ += i.c, x += i.b, KX(n, i, $));
+ }
+ for (v = new E(O); v.a < v.c.c.length; )
+ for (d = u(y(v), 10), i = n.b[d.c.p][d.p], o = new re(ue(ei(d).a.Kc(), new Mn())); Se(o); )
+ c = u(ve(o), 17), _ += i.c, x += i.b, ln = c.d.i, KX(n, i, ln);
+ O.c = F(Zn, rn, 1, 0, 5, 1);
+ }
+ return e = _ + x, C = e == 0 ? xt : (_ - x) / e, C >= t;
+ }
+ function iTe() {
+ EG();
+ function n(i) {
+ var r = this;
+ this.dispatch = function(c) {
+ var o = c.data;
+ switch (o.cmd) {
+ case "algorithms":
+ var f = OQ((Pn(), new Rp(new Th(Ul.b))));
+ i.postMessage({ id: o.id, data: f });
+ break;
+ case "categories":
+ var h = OQ((Pn(), new Rp(new Th(Ul.c))));
+ i.postMessage({ id: o.id, data: h });
+ break;
+ case "options":
+ var l = OQ((Pn(), new Rp(new Th(Ul.d))));
+ i.postMessage({ id: o.id, data: l });
+ break;
+ case "register":
+ hEe(o.algorithms), i.postMessage({ id: o.id });
+ break;
+ case "layout":
+ Gye(o.graph, o.layoutOptions || {}, o.options || {}), i.postMessage({ id: o.id, data: o.graph });
+ break;
+ }
+ }, this.saveDispatch = function(c) {
+ try {
+ r.dispatch(c);
+ } catch (o) {
+ i.postMessage({ id: c.data.id, error: o });
+ }
+ };
+ }
+ function e(i) {
+ var r = this;
+ this.dispatcher = new n({ postMessage: function(c) {
+ r.onmessage({ data: c });
+ } }), this.postMessage = function(c) {
+ setTimeout(function() {
+ r.dispatcher.saveDispatch({ data: c });
+ }, 0);
+ };
+ }
+ if (typeof document === cN && typeof self !== cN) {
+ var t = new n(self);
+ self.onmessage = t.saveDispatch;
+ } else
+ typeof dt !== cN && dt.exports && (Object.defineProperty(Kt, "__esModule", { value: !0 }), dt.exports = { default: e, Worker: e });
+ }
+ function rTe(n) {
+ n.N || (n.N = !0, n.b = Yr(n, 0), St(n.b, 0), St(n.b, 1), St(n.b, 2), n.bb = Yr(n, 1), St(n.bb, 0), St(n.bb, 1), n.fb = Yr(n, 2), St(n.fb, 3), St(n.fb, 4), bt(n.fb, 5), n.qb = Yr(n, 3), St(n.qb, 0), bt(n.qb, 1), bt(n.qb, 2), St(n.qb, 3), St(n.qb, 4), bt(n.qb, 5), St(n.qb, 6), n.a = ze(n, 4), n.c = ze(n, 5), n.d = ze(n, 6), n.e = ze(n, 7), n.f = ze(n, 8), n.g = ze(n, 9), n.i = ze(n, 10), n.j = ze(n, 11), n.k = ze(n, 12), n.n = ze(n, 13), n.o = ze(n, 14), n.p = ze(n, 15), n.q = ze(n, 16), n.s = ze(n, 17), n.r = ze(n, 18), n.t = ze(n, 19), n.u = ze(n, 20), n.v = ze(n, 21), n.w = ze(n, 22), n.B = ze(n, 23), n.A = ze(n, 24), n.C = ze(n, 25), n.D = ze(n, 26), n.F = ze(n, 27), n.G = ze(n, 28), n.H = ze(n, 29), n.J = ze(n, 30), n.I = ze(n, 31), n.K = ze(n, 32), n.M = ze(n, 33), n.L = ze(n, 34), n.P = ze(n, 35), n.Q = ze(n, 36), n.R = ze(n, 37), n.S = ze(n, 38), n.T = ze(n, 39), n.U = ze(n, 40), n.V = ze(n, 41), n.X = ze(n, 42), n.W = ze(n, 43), n.Y = ze(n, 44), n.Z = ze(n, 45), n.$ = ze(n, 46), n._ = ze(n, 47), n.ab = ze(n, 48), n.cb = ze(n, 49), n.db = ze(n, 50), n.eb = ze(n, 51), n.gb = ze(n, 52), n.hb = ze(n, 53), n.ib = ze(n, 54), n.jb = ze(n, 55), n.kb = ze(n, 56), n.lb = ze(n, 57), n.mb = ze(n, 58), n.nb = ze(n, 59), n.ob = ze(n, 60), n.pb = ze(n, 61));
+ }
+ function cTe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ if ($ = 0, e.f.a == 0)
+ for (C = new E(n); C.a < C.c.c.length; )
+ v = u(y(C), 10), $ = j.Math.max($, v.n.a + v.o.a + v.d.c);
+ else
+ $ = e.f.a - e.c.a;
+ for ($ -= e.c.a, m = new E(n); m.a < m.c.c.length; ) {
+ switch (v = u(y(m), 10), Lv(v.n, $ - v.o.a), UU(v.f), yFn(v), (v.q ? v.q : (Pn(), Pn(), ph))._b((nn(), nw)) && Lv(u(k(v, nw), 8), $ - v.o.a), u(k(v, Qf), 248).g) {
+ case 1:
+ H(v, Qf, (oh(), ay));
+ break;
+ case 2:
+ H(v, Qf, (oh(), ly));
+ }
+ for (S = v.o, x = new E(v.j); x.a < x.c.c.length; ) {
+ for (O = u(y(x), 11), Lv(O.n, S.a - O.o.a), Lv(O.a, O.o.a), si(O, wOn(O.j)), o = u(k(O, P1), 19), o && H(O, P1, Q(-o.a)), c = new E(O.g); c.a < c.c.c.length; ) {
+ for (r = u(y(c), 17), i = _e(r.a, 0); i.b != i.d.c; )
+ t = u(Re(i), 8), t.a = $ - t.a;
+ if (l = u(k(r, Mr), 74), l)
+ for (h = _e(l, 0); h.b != h.d.c; )
+ f = u(Re(h), 8), f.a = $ - f.a;
+ for (g = new E(r.b); g.a < g.c.c.length; )
+ a = u(y(g), 70), Lv(a.n, $ - a.o.a);
+ }
+ for (p = new E(O.f); p.a < p.c.c.length; )
+ a = u(y(p), 70), Lv(a.n, O.o.a - a.o.a);
+ }
+ for (v.k == (Qn(), Vt) && (H(v, (G(), ec), wOn(u(k(v, ec), 61))), l5e(v)), d = new E(v.b); d.a < d.c.c.length; )
+ a = u(y(d), 70), yFn(a), Lv(a.n, S.a - a.o.a);
+ }
+ }
+ function uTe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ if ($ = 0, e.f.b == 0)
+ for (C = new E(n); C.a < C.c.c.length; )
+ v = u(y(C), 10), $ = j.Math.max($, v.n.b + v.o.b + v.d.a);
+ else
+ $ = e.f.b - e.c.b;
+ for ($ -= e.c.b, m = new E(n); m.a < m.c.c.length; ) {
+ switch (v = u(y(m), 10), xv(v.n, $ - v.o.b), WU(v.f), jFn(v), (v.q ? v.q : (Pn(), Pn(), ph))._b((nn(), nw)) && xv(u(k(v, nw), 8), $ - v.o.b), u(k(v, Qf), 248).g) {
+ case 3:
+ H(v, Qf, (oh(), $P));
+ break;
+ case 4:
+ H(v, Qf, (oh(), xP));
+ }
+ for (S = v.o, x = new E(v.j); x.a < x.c.c.length; ) {
+ for (O = u(y(x), 11), xv(O.n, S.b - O.o.b), xv(O.a, O.o.b), si(O, gOn(O.j)), o = u(k(O, P1), 19), o && H(O, P1, Q(-o.a)), c = new E(O.g); c.a < c.c.c.length; ) {
+ for (r = u(y(c), 17), i = _e(r.a, 0); i.b != i.d.c; )
+ t = u(Re(i), 8), t.b = $ - t.b;
+ if (l = u(k(r, Mr), 74), l)
+ for (h = _e(l, 0); h.b != h.d.c; )
+ f = u(Re(h), 8), f.b = $ - f.b;
+ for (g = new E(r.b); g.a < g.c.c.length; )
+ a = u(y(g), 70), xv(a.n, $ - a.o.b);
+ }
+ for (p = new E(O.f); p.a < p.c.c.length; )
+ a = u(y(p), 70), xv(a.n, O.o.b - a.o.b);
+ }
+ for (v.k == (Qn(), Vt) && (H(v, (G(), ec), gOn(u(k(v, ec), 61))), $ge(v)), d = new E(v.b); d.a < d.c.c.length; )
+ a = u(y(d), 70), jFn(a), xv(a.n, S.b - a.o.b);
+ }
+ }
+ function sTe(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p;
+ for (d = !1, l = n + 1, a = (Ln(n, e.c.length), u(e.c[n], 200)), o = a.a, f = null, c = 0; c < a.a.c.length; c++)
+ if (r = (Ln(c, o.c.length), u(o.c[c], 187)), !r.c) {
+ if (r.b.c.length == 0) {
+ Zf(), T7(a, r), --c, d = !0;
+ continue;
+ }
+ if (r.k || (f && GT(f), f = new YW(f ? f.e + f.d + i : 0, a.f, i), k7(r, f.e + f.d, a.f), W(a.d, f), TV(f, r), r.k = !0), h = null, h = (p = null, c < a.a.c.length - 1 ? p = u(un(a.a, c + 1), 187) : l < e.c.length && (Ln(l, e.c.length), u(e.c[l], 200)).a.c.length != 0 && (p = u(un((Ln(l, e.c.length), u(e.c[l], 200)).a, 0), 187)), p), g = !1, h && (g = !tt(h.j, a)), h) {
+ if (h.b.c.length == 0) {
+ T7(a, h);
+ break;
+ } else
+ B8(r, t - r.s), GT(r.q), d = d | a5e(a, r, h, t, i);
+ if (h.b.c.length == 0)
+ for (T7((Ln(l, e.c.length), u(e.c[l], 200)), h), h = null; e.c.length > l && (Ln(l, e.c.length), u(e.c[l], 200)).a.c.length == 0; )
+ Vc(e, (Ln(l, e.c.length), e.c[l]));
+ if (!h) {
+ --c;
+ continue;
+ }
+ if (zke(e, a, r, h, g, t, l, i)) {
+ d = !0;
+ continue;
+ }
+ if (g) {
+ if (Yye(e, a, r, h, t, l, i)) {
+ d = !0;
+ continue;
+ } else if (rQ(a, r)) {
+ r.c = !0, d = !0;
+ continue;
+ }
+ } else if (rQ(a, r)) {
+ r.c = !0, d = !0;
+ continue;
+ }
+ if (d)
+ continue;
+ }
+ if (rQ(a, r)) {
+ r.c = !0, d = !0, h && (h.k = !1);
+ continue;
+ } else
+ GT(r.q);
+ }
+ return d;
+ }
+ function kL(n, e, t, i, r, c, o) {
+ var f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye, fi;
+ for (m = 0, zn = 0, l = new E(n.b); l.a < l.c.c.length; )
+ h = u(y(l), 157), h.c && c_n(h.c), m = j.Math.max(m, au(h)), zn += au(h) * Gu(h);
+ for (C = zn / n.b.c.length, wn = E4e(n.b, C), zn += n.b.c.length * wn, m = j.Math.max(m, j.Math.sqrt(zn * o)) + t.b, Ye = t.b, fi = t.d, p = 0, d = t.b + t.c, ln = new Ct(), Ke(ln, Q(0)), U = new Ct(), a = new Ii(n.b, 0), v = null, f = new X(); a.b < a.d.gc(); )
+ h = (ne(a.b < a.d.gc()), u(a.d.Xb(a.c = a.b++), 157)), se = au(h), g = Gu(h), Ye + se > m && (c && (sa(U, p), sa(ln, Q(a.b - 1)), W(n.d, v), f.c = F(Zn, rn, 1, 0, 5, 1)), Ye = t.b, fi += p + e, p = 0, d = j.Math.max(d, t.b + t.c + se)), f.c[f.c.length] = h, W$n(h, Ye, fi), d = j.Math.max(d, Ye + se + t.c), p = j.Math.max(p, g), Ye += se + e, v = h;
+ if (Zt(n.a, f), W(n.d, u(un(f, f.c.length - 1), 157)), d = j.Math.max(d, i), Wn = fi + p + t.a, Wn < r && (p += r - Wn, Wn = r), c)
+ for (Ye = t.b, a = new Ii(n.b, 0), sa(ln, Q(n.b.c.length)), en = _e(ln, 0), $ = u(Re(en), 19).a, sa(U, p), _ = _e(U, 0), x = 0; a.b < a.d.gc(); )
+ a.b == $ && (Ye = t.b, x = K(Y(Re(_))), $ = u(Re(en), 19).a), h = (ne(a.b < a.d.gc()), u(a.d.Xb(a.c = a.b++), 157)), A$n(h, x), a.b == $ && (S = d - Ye - t.c, O = au(h), M$n(h, S), QDn(h, (S - O) / 2, 0)), Ye += au(h) + e;
+ return new fn(d, Wn);
+ }
+ function oTe(n) {
+ var e, t, i, r, c;
+ switch (e = n.c, c = null, e) {
+ case 6:
+ return n.Vl();
+ case 13:
+ return n.Wl();
+ case 23:
+ return n.Nl();
+ case 22:
+ return n.Sl();
+ case 18:
+ return n.Pl();
+ case 8:
+ Qe(n), c = (Je(), B1n);
+ break;
+ case 9:
+ return n.vl(!0);
+ case 19:
+ return n.wl();
+ case 10:
+ switch (n.a) {
+ case 100:
+ case 68:
+ case 119:
+ case 87:
+ case 115:
+ case 83:
+ return c = n.ul(n.a), Qe(n), c;
+ case 101:
+ case 102:
+ case 110:
+ case 114:
+ case 116:
+ case 117:
+ case 118:
+ case 120:
+ t = n.tl(), t < Ji ? c = (Je(), Je(), new th(0, t)) : c = ECn(kQ(t));
+ break;
+ case 99:
+ return n.Fl();
+ case 67:
+ return n.Al();
+ case 105:
+ return n.Il();
+ case 73:
+ return n.Bl();
+ case 103:
+ return n.Gl();
+ case 88:
+ return n.Cl();
+ case 49:
+ case 50:
+ case 51:
+ case 52:
+ case 53:
+ case 54:
+ case 55:
+ case 56:
+ case 57:
+ return n.xl();
+ case 80:
+ case 112:
+ if (c = mY(n, n.a), !c)
+ throw T(new Ce(Pe((Ee(), KB))));
+ break;
+ default:
+ c = HEn(n.a);
+ }
+ Qe(n);
+ break;
+ case 0:
+ if (n.a == 93 || n.a == 123 || n.a == 125)
+ throw T(new Ce(Pe((Ee(), Htn))));
+ c = HEn(n.a), i = n.a, Qe(n), (i & 64512) == rk && n.c == 0 && (n.a & 64512) == 56320 && (r = F(xs, Bf, 25, 2, 15, 1), r[0] = i & Wt, r[1] = n.a & Wt, c = SD(ECn(Ks(r, 0, r.length)), 0), Qe(n));
+ break;
+ default:
+ throw T(new Ce(Pe((Ee(), Htn))));
+ }
+ return c;
+ }
+ function fTe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ if (i = new X(), r = nt, c = nt, o = nt, t)
+ for (r = n.f.a, m = new E(e.j); m.a < m.c.c.length; )
+ for (v = u(y(m), 11), h = new E(v.g); h.a < h.c.c.length; )
+ f = u(y(h), 17), f.a.b != 0 && (a = u(QO(f.a), 8), a.a < r && (c = r - a.a, o = nt, i.c = F(Zn, rn, 1, 0, 5, 1), r = a.a), a.a <= r && (i.c[i.c.length] = f, f.a.b > 1 && (o = j.Math.min(o, j.Math.abs(u(qo(f.a, 1), 8).b - a.b)))));
+ else
+ for (m = new E(e.j); m.a < m.c.c.length; )
+ for (v = u(y(m), 11), h = new E(v.e); h.a < h.c.c.length; )
+ f = u(y(h), 17), f.a.b != 0 && (g = u(gE(f.a), 8), g.a > r && (c = g.a - r, o = nt, i.c = F(Zn, rn, 1, 0, 5, 1), r = g.a), g.a >= r && (i.c[i.c.length] = f, f.a.b > 1 && (o = j.Math.min(o, j.Math.abs(u(qo(f.a, f.a.b - 2), 8).b - g.b)))));
+ if (i.c.length != 0 && c > e.o.a / 2 && o > e.o.b / 2) {
+ for (p = new gc(), Hr(p, e), si(p, (J(), Kn)), p.n.a = e.o.a / 2, S = new gc(), Hr(S, e), si(S, ae), S.n.a = e.o.a / 2, S.n.b = e.o.b, h = new E(i); h.a < h.c.c.length; )
+ f = u(y(h), 17), t ? (l = u(aD(f.a), 8), C = f.a.b == 0 ? tf(f.d) : u(QO(f.a), 8), C.b >= l.b ? Ki(f, S) : Ki(f, p)) : (l = u(efe(f.a), 8), C = f.a.b == 0 ? tf(f.c) : u(gE(f.a), 8), C.b >= l.b ? Ti(f, S) : Ti(f, p)), d = u(k(f, (nn(), Mr)), 74), d && bb(d, l, !0);
+ e.n.a = r - e.o.a / 2;
+ }
+ }
+ function hTe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye, fi, gs, so;
+ if (zn = null, se = e, Wn = FAn(n, IAn(t), se), Q5(Wn, Dh(se, Uf)), Ye = u(xw(n.g, G2(Oh(se, PB))), 33), g = Oh(se, "sourcePort"), i = null, g && (i = G2(g)), fi = u(xw(n.j, i), 118), !Ye)
+ throw f = t4(se), v = "An edge must have a source node (edge id: '" + f, m = v + _4, T(new Af(m));
+ if (fi && !$f(nf(fi), Ye))
+ throw h = Dh(se, Uf), C = "The source port of an edge must be a port of the edge's source node (edge id: '" + h, S = C + _4, T(new Af(S));
+ if (ln = (!Wn.b && (Wn.b = new Fn(he, Wn, 4, 7)), Wn.b), c = null, fi ? c = fi : c = Ye, me(ln, c), gs = u(xw(n.g, G2(Oh(se, _tn))), 33), p = Oh(se, "targetPort"), r = null, p && (r = G2(p)), so = u(xw(n.j, r), 118), !gs)
+ throw d = t4(se), $ = "An edge must have a target node (edge id: '" + d, O = $ + _4, T(new Af(O));
+ if (so && !$f(nf(so), gs))
+ throw l = Dh(se, Uf), x = "The target port of an edge must be a port of the edge's target node (edge id: '" + l, _ = x + _4, T(new Af(_));
+ if (wn = (!Wn.c && (Wn.c = new Fn(he, Wn, 5, 8)), Wn.c), o = null, so ? o = so : o = gs, me(wn, o), (!Wn.b && (Wn.b = new Fn(he, Wn, 4, 7)), Wn.b).i == 0 || (!Wn.c && (Wn.c = new Fn(he, Wn, 5, 8)), Wn.c).i == 0)
+ throw a = Dh(se, Uf), U = Mqn + a, en = U + _4, T(new Af(en));
+ return YT(se, Wn), n9e(se, Wn), zn = oF(n, se, Wn), zn;
+ }
+ function O_n(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn;
+ return d = dye(Uc(n, (J(), Ef)), e), v = Uw(Uc(n, Do), e), x = Uw(Uc(n, ds), e), ln = zT(Uc(n, eo), e), g = zT(Uc(n, $s), e), $ = Uw(Uc(n, $o), e), m = Uw(Uc(n, Su), e), U = Uw(Uc(n, bs), e), _ = Uw(Uc(n, Fs), e), wn = zT(Uc(n, qc), e), S = Uw(Uc(n, ru), e), O = Uw(Uc(n, Pu), e), en = Uw(Uc(n, iu), e), zn = zT(Uc(n, cu), e), p = zT(Uc(n, vu), e), C = Uw(Uc(n, Pc), e), t = Bw(A(M(Ci, 1), pr, 25, 15, [$.a, ln.a, U.a, zn.a])), i = Bw(A(M(Ci, 1), pr, 25, 15, [v.a, d.a, x.a, C.a])), r = S.a, c = Bw(A(M(Ci, 1), pr, 25, 15, [m.a, g.a, _.a, p.a])), l = Bw(A(M(Ci, 1), pr, 25, 15, [$.b, v.b, m.b, O.b])), h = Bw(A(M(Ci, 1), pr, 25, 15, [ln.b, d.b, g.b, C.b])), a = wn.b, f = Bw(A(M(Ci, 1), pr, 25, 15, [U.b, x.b, _.b, en.b])), a1(Uc(n, Ef), t + r, l + a), a1(Uc(n, Pc), t + r, l + a), a1(Uc(n, Do), t + r, 0), a1(Uc(n, ds), t + r, l + a + h), a1(Uc(n, eo), 0, l + a), a1(Uc(n, $s), t + r + i, l + a), a1(Uc(n, Su), t + r + i, 0), a1(Uc(n, bs), 0, l + a + h), a1(Uc(n, Fs), t + r + i, l + a + h), a1(Uc(n, qc), 0, l), a1(Uc(n, ru), t, 0), a1(Uc(n, iu), 0, l + a + h), a1(Uc(n, vu), t + r + i, 0), o = new Li(), o.a = Bw(A(M(Ci, 1), pr, 25, 15, [t + i + r + c, wn.a, O.a, en.a])), o.b = Bw(A(M(Ci, 1), pr, 25, 15, [l + h + a + f, S.b, zn.b, p.b])), o;
+ }
+ function lTe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ for (m = new X(), g = new E(n.d.b); g.a < g.c.c.length; )
+ for (d = u(y(g), 29), v = new E(d.a); v.a < v.c.c.length; ) {
+ for (p = u(y(v), 10), r = u(te(n.f, p), 57), h = new re(ue(ei(p).a.Kc(), new Mn())); Se(h); )
+ if (o = u(ve(h), 17), i = _e(o.a, 0), l = !0, a = null, i.b != i.d.c) {
+ for (e = u(Re(i), 8), t = null, o.c.j == (J(), Kn) && (C = new P6(e, new fn(e.a, r.d.d), r, o), C.f.a = !0, C.a = o.c, m.c[m.c.length] = C), o.c.j == ae && (C = new P6(e, new fn(e.a, r.d.d + r.d.a), r, o), C.f.d = !0, C.a = o.c, m.c[m.c.length] = C); i.b != i.d.c; )
+ t = u(Re(i), 8), tV(e.b, t.b) || (a = new P6(e, t, null, o), m.c[m.c.length] = a, l && (l = !1, t.b < r.d.d ? a.f.a = !0 : t.b > r.d.d + r.d.a ? a.f.d = !0 : (a.f.d = !0, a.f.a = !0))), i.b != i.d.c && (e = t);
+ a && (c = u(te(n.f, o.d.i), 57), e.b < c.d.d ? a.f.a = !0 : e.b > c.d.d + c.d.a ? a.f.d = !0 : (a.f.d = !0, a.f.a = !0));
+ }
+ for (f = new re(ue(Lr(p).a.Kc(), new Mn())); Se(f); )
+ o = u(ve(f), 17), o.a.b != 0 && (e = u(gE(o.a), 8), o.d.j == (J(), Kn) && (C = new P6(e, new fn(e.a, r.d.d), r, o), C.f.a = !0, C.a = o.d, m.c[m.c.length] = C), o.d.j == ae && (C = new P6(e, new fn(e.a, r.d.d + r.d.a), r, o), C.f.d = !0, C.a = o.d, m.c[m.c.length] = C));
+ }
+ return m;
+ }
+ function aTe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ if (le(t, "Network simplex node placement", 1), n.e = e, n.n = u(k(e, (G(), Ig)), 304), Pje(n), fve(n), Rt(qr(new $n(null, new xn(n.e.b, 16)), new xwn()), new C6n(n)), Rt(gt(qr(gt(qr(new $n(null, new xn(n.e.b, 16)), new Xwn()), new Vwn()), new Qwn()), new Jwn()), new E6n(n)), on(sn(k(n.e, (nn(), Dm)))) && (o = yc(t, 1), le(o, "Straight Edges Pre-Processing", 1), XEe(n), ce(o)), Gpe(n.f), c = u(k(e, xm), 19).a * n.f.a.c.length, Yx(gG(pG(fD(n.f), c), !1), yc(t, 1)), n.d.a.gc() != 0) {
+ for (o = yc(t, 1), le(o, "Flexible Where Space Processing", 1), f = u(jd(HE(Wc(new $n(null, new xn(n.f.a, 16)), new Lwn()), new Pwn())), 19).a, h = u(jd(KE(Wc(new $n(null, new xn(n.f.a, 16)), new Nwn()), new Iwn())), 19).a, l = h - f, a = yd(new ca(), n.f), d = yd(new ca(), n.f), jo(lo(ho(fo(ao(new Ls(), 2e4), l), a), d)), Rt(gt(gt(ID(n.i), new Bwn()), new Rwn()), new yTn(f, a, l, d)), r = n.d.a.ec().Kc(); r.Ob(); )
+ i = u(r.Pb(), 213), i.g = 1;
+ Yx(gG(pG(fD(n.f), c), !1), yc(o, 1)), ce(o);
+ }
+ on(sn(k(e, Dm))) && (o = yc(t, 1), le(o, "Straight Edges Post-Processing", 1), Z5e(n), ce(o)), DEe(n), n.e = null, n.f = null, n.i = null, n.c = null, Eu(n.k), n.j = null, n.a = null, n.o = null, n.d.a.$b(), ce(t);
+ }
+ function dTe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _;
+ for (f = new E(n.a.b); f.a < f.c.c.length; )
+ for (c = u(y(f), 29), O = new E(c.a); O.a < O.c.c.length; )
+ $ = u(y(O), 10), e.g[$.p] = $, e.a[$.p] = $, e.d[$.p] = 0;
+ for (h = n.a.b, e.c == (Ff(), I1) && (h = I(h, 152) ? I2(u(h, 152)) : I(h, 131) ? u(h, 131).a : I(h, 54) ? new od(h) : new K0(h)), o = h.Kc(); o.Ob(); )
+ for (c = u(o.Pb(), 29), p = -1, g = c.a, e.o == (ef(), kf) && (p = nt, g = I(g, 152) ? I2(u(g, 152)) : I(g, 131) ? u(g, 131).a : I(g, 54) ? new od(g) : new K0(g)), _ = g.Kc(); _.Ob(); )
+ if (x = u(_.Pb(), 10), d = null, e.c == I1 ? d = u(un(n.b.f, x.p), 15) : d = u(un(n.b.b, x.p), 15), d.gc() > 0)
+ if (i = d.gc(), l = zt(j.Math.floor((i + 1) / 2)) - 1, r = zt(j.Math.ceil((i + 1) / 2)) - 1, e.o == kf)
+ for (a = r; a >= l; a--)
+ e.a[x.p] == x && (m = u(d.Xb(a), 46), v = u(m.a, 10), !Mh(t, m.b) && p > n.b.e[v.p] && (e.a[v.p] = x, e.g[x.p] = e.g[v.p], e.a[x.p] = e.g[x.p], e.f[e.g[x.p].p] = (qn(), !!(on(e.f[e.g[x.p].p]) & x.k == (Qn(), pi))), p = n.b.e[v.p]));
+ else
+ for (a = l; a <= r; a++)
+ e.a[x.p] == x && (S = u(d.Xb(a), 46), C = u(S.a, 10), !Mh(t, S.b) && p < n.b.e[C.p] && (e.a[C.p] = x, e.g[x.p] = e.g[C.p], e.a[x.p] = e.g[x.p], e.f[e.g[x.p].p] = (qn(), !!(on(e.f[e.g[x.p].p]) & x.k == (Qn(), pi))), p = n.b.e[C.p]));
+ }
+ function $c() {
+ $c = N, a8n(), Dne = mi.a, u(D(R(mi.a), 0), 18), Ine = mi.f, u(D(R(mi.f), 0), 18), u(D(R(mi.f), 1), 34), One = mi.n, u(D(R(mi.n), 0), 34), u(D(R(mi.n), 1), 34), u(D(R(mi.n), 2), 34), u(D(R(mi.n), 3), 34), e1n = mi.g, u(D(R(mi.g), 0), 18), u(D(R(mi.g), 1), 34), Pne = mi.c, u(D(R(mi.c), 0), 18), u(D(R(mi.c), 1), 18), t1n = mi.i, u(D(R(mi.i), 0), 18), u(D(R(mi.i), 1), 18), u(D(R(mi.i), 2), 18), u(D(R(mi.i), 3), 18), u(D(R(mi.i), 4), 34), i1n = mi.j, u(D(R(mi.j), 0), 18), n1n = mi.d, u(D(R(mi.d), 0), 18), u(D(R(mi.d), 1), 18), u(D(R(mi.d), 2), 18), u(D(R(mi.d), 3), 18), u(D(R(mi.d), 4), 34), u(D(R(mi.d), 5), 34), u(D(R(mi.d), 6), 34), u(D(R(mi.d), 7), 34), Sne = mi.b, u(D(R(mi.b), 0), 34), u(D(R(mi.b), 1), 34), XP = mi.e, u(D(R(mi.e), 0), 34), u(D(R(mi.e), 1), 34), u(D(R(mi.e), 2), 34), u(D(R(mi.e), 3), 34), u(D(R(mi.e), 4), 18), u(D(R(mi.e), 5), 18), u(D(R(mi.e), 6), 18), u(D(R(mi.e), 7), 18), u(D(R(mi.e), 8), 18), u(D(R(mi.e), 9), 18), u(D(R(mi.e), 10), 34), zl = mi.k, u(D(R(mi.k), 0), 34), u(D(R(mi.k), 1), 34);
+ }
+ function bTe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn;
+ for (wn = new Ct(), U = new Ct(), C = -1, h = new E(n); h.a < h.c.c.length; ) {
+ for (o = u(y(h), 128), o.s = C--, a = 0, O = 0, c = new E(o.t); c.a < c.c.c.length; )
+ i = u(y(c), 268), O += i.c;
+ for (r = new E(o.i); r.a < r.c.c.length; )
+ i = u(y(r), 268), a += i.c;
+ o.n = a, o.u = O, O == 0 ? Ht(U, o, U.c.b, U.c) : a == 0 && Ht(wn, o, wn.c.b, wn.c);
+ }
+ for (Wn = jC(n), d = n.c.length, m = d + 1, S = d - 1, p = new X(); Wn.a.gc() != 0; ) {
+ for (; U.b != 0; )
+ _ = (ne(U.b != 0), u(Cs(U, U.a.a), 128)), Wn.a.Bc(_) != null, _.s = S--, BY(_, wn, U);
+ for (; wn.b != 0; )
+ en = (ne(wn.b != 0), u(Cs(wn, wn.a.a), 128)), Wn.a.Bc(en) != null, en.s = m++, BY(en, wn, U);
+ for (v = Bi, l = Wn.a.ec().Kc(); l.Ob(); )
+ o = u(l.Pb(), 128), $ = o.u - o.n, $ >= v && ($ > v && (p.c = F(Zn, rn, 1, 0, 5, 1), v = $), p.c[p.c.length] = o);
+ p.c.length != 0 && (g = u(un(p, _T(e, p.c.length)), 128), Wn.a.Bc(g) != null, g.s = m++, BY(g, wn, U), p.c = F(Zn, rn, 1, 0, 5, 1));
+ }
+ for (x = n.c.length + 1, f = new E(n); f.a < f.c.c.length; )
+ o = u(y(f), 128), o.s < d && (o.s += x);
+ for (ln = new E(n); ln.a < ln.c.c.length; )
+ for (en = u(y(ln), 128), t = new Ii(en.t, 0); t.b < t.d.gc(); )
+ i = (ne(t.b < t.d.gc()), u(t.d.Xb(t.c = t.b++), 268)), zn = i.b, en.s > zn.s && (Uu(t), Vc(zn.i, i), i.c > 0 && (i.a = zn, W(zn.t, i), i.b = en, W(en.i, i)));
+ }
+ function HZ(n) {
+ var e, t, i, r, c;
+ switch (e = n.c, e) {
+ case 11:
+ return n.Ml();
+ case 12:
+ return n.Ol();
+ case 14:
+ return n.Ql();
+ case 15:
+ return n.Tl();
+ case 16:
+ return n.Rl();
+ case 17:
+ return n.Ul();
+ case 21:
+ return Qe(n), Je(), Je(), k9;
+ case 10:
+ switch (n.a) {
+ case 65:
+ return n.yl();
+ case 90:
+ return n.Dl();
+ case 122:
+ return n.Kl();
+ case 98:
+ return n.El();
+ case 66:
+ return n.zl();
+ case 60:
+ return n.Jl();
+ case 62:
+ return n.Hl();
+ }
+ }
+ switch (c = oTe(n), e = n.c, e) {
+ case 3:
+ return n.Zl(c);
+ case 4:
+ return n.Xl(c);
+ case 5:
+ return n.Yl(c);
+ case 0:
+ if (n.a == 123 && n.d < n.j) {
+ if (r = n.d, i = 0, t = -1, (e = Di(n.i, r++)) >= 48 && e <= 57) {
+ for (i = e - 48; r < n.j && (e = Di(n.i, r++)) >= 48 && e <= 57; )
+ if (i = i * 10 + e - 48, i < 0)
+ throw T(new Ce(Pe((Ee(), Utn))));
+ } else
+ throw T(new Ce(Pe((Ee(), nGn))));
+ if (t = i, e == 44) {
+ if (r >= n.j)
+ throw T(new Ce(Pe((Ee(), tGn))));
+ if ((e = Di(n.i, r++)) >= 48 && e <= 57) {
+ for (t = e - 48; r < n.j && (e = Di(n.i, r++)) >= 48 && e <= 57; )
+ if (t = t * 10 + e - 48, t < 0)
+ throw T(new Ce(Pe((Ee(), Utn))));
+ if (i > t)
+ throw T(new Ce(Pe((Ee(), iGn))));
+ } else
+ t = -1;
+ }
+ if (e != 125)
+ throw T(new Ce(Pe((Ee(), eGn))));
+ n.sl(r) ? (c = (Je(), Je(), new rb(9, c)), n.d = r + 1) : (c = (Je(), Je(), new rb(3, c)), n.d = r), c.dm(i), c.cm(t), Qe(n);
+ }
+ }
+ return c;
+ }
+ function D_n(n, e, t, i, r) {
+ var c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn;
+ for (m = new Ic(e.b), x = new Ic(e.b), g = new Ic(e.b), ln = new Ic(e.b), C = new Ic(e.b), en = _e(e, 0); en.b != en.d.c; )
+ for (_ = u(Re(en), 11), f = new E(_.g); f.a < f.c.c.length; )
+ if (c = u(y(f), 17), c.c.i == c.d.i) {
+ if (_.j == c.d.j) {
+ ln.c[ln.c.length] = c;
+ continue;
+ } else if (_.j == (J(), Kn) && c.d.j == ae) {
+ C.c[C.c.length] = c;
+ continue;
+ }
+ }
+ for (h = new E(C); h.a < h.c.c.length; )
+ c = u(y(h), 17), Vke(n, c, t, i, (J(), Vn));
+ for (o = new E(ln); o.a < o.c.c.length; )
+ c = u(y(o), 17), wn = new Hh(n), ta(wn, (Qn(), Mc)), H(wn, (nn(), Nt), (Ai(), Sc)), H(wn, (G(), rt), c), zn = new gc(), H(zn, rt, c.d), si(zn, (J(), Gn)), Hr(zn, wn), Wn = new gc(), H(Wn, rt, c.c), si(Wn, Vn), Hr(Wn, wn), H(c.c, Mu, wn), H(c.d, Mu, wn), Ki(c, null), Ti(c, null), t.c[t.c.length] = wn, H(wn, KS, Q(2));
+ for (U = _e(e, 0); U.b != U.d.c; )
+ _ = u(Re(U), 11), l = _.e.c.length > 0, S = _.g.c.length > 0, l && S ? g.c[g.c.length] = _ : l ? m.c[m.c.length] = _ : S && (x.c[x.c.length] = _);
+ for (v = new E(m); v.a < v.c.c.length; )
+ p = u(y(v), 11), W(r, CZ(n, p, null, t));
+ for (O = new E(x); O.a < O.c.c.length; )
+ $ = u(y(O), 11), W(r, CZ(n, null, $, t));
+ for (d = new E(g); d.a < d.c.c.length; )
+ a = u(y(d), 11), W(r, CZ(n, a, a, t));
+ }
+ function $_n(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn;
+ for ($ = new fn(xt, xt), e = new fn(Qt, Qt), ln = new E(n); ln.a < ln.c.c.length; )
+ en = u(y(ln), 8), $.a = j.Math.min($.a, en.a), $.b = j.Math.min($.b, en.b), e.a = j.Math.max(e.a, en.a), e.b = j.Math.max(e.b, en.b);
+ for (g = new fn(e.a - $.a, e.b - $.b), l = new fn($.a - 50, $.b - g.a - 50), a = new fn($.a - 50, e.b + g.a + 50), d = new fn(e.a + g.b / 2 + 50, $.b + g.b / 2), p = new yZ(l, a, d), U = new hi(), c = new X(), t = new X(), U.a.zc(p, U), zn = new E(n); zn.a < zn.c.c.length; ) {
+ for (wn = u(y(zn), 8), c.c = F(Zn, rn, 1, 0, 5, 1), _ = U.a.ec().Kc(); _.Ob(); )
+ O = u(_.Pb(), 308), i = O.d, ll(i, O.a), Ud(ll(O.d, wn), ll(O.d, O.a)) < 0 && (c.c[c.c.length] = O);
+ for (t.c = F(Zn, rn, 1, 0, 5, 1), x = new E(c); x.a < x.c.c.length; )
+ for (O = u(y(x), 308), C = new E(O.e); C.a < C.c.c.length; ) {
+ for (v = u(y(C), 168), o = !0, h = new E(c); h.a < h.c.c.length; )
+ f = u(y(h), 308), f != O && (vc(v, un(f.e, 0)) || vc(v, un(f.e, 1)) || vc(v, un(f.e, 2))) && (o = !1);
+ o && (t.c[t.c.length] = v);
+ }
+ for (bxn(U, c), $i(U, new Cln()), m = new E(t); m.a < m.c.c.length; )
+ v = u(y(m), 168), ci(U, new yZ(wn, v.a, v.b));
+ }
+ for (S = new hi(), $i(U, new n5n(S)), r = S.a.ec().Kc(); r.Ob(); )
+ v = u(r.Pb(), 168), (LC(p, v.a) || LC(p, v.b)) && r.Qb();
+ return $i(S, new Tln()), S;
+ }
+ function wTe(n) {
+ var e, t, i, r, c;
+ switch (t = u(k(n, (G(), Ac)), 21), e = iE(gWn), r = u(k(n, (nn(), Qb)), 334), r == (Rh(), F1) && rs(e, pWn), on(sn(k(n, R_))) ? Ze(e, (Vi(), Vf), (rr(), XR)) : Ze(e, (Vi(), Kc), (rr(), XR)), k(n, (SC(), Ym)) != null && rs(e, vWn), (on(sn(k(n, asn))) || on(sn(k(n, osn)))) && ju(e, (Vi(), Or), (rr(), scn)), u(k(n, ls), 103).g) {
+ case 2:
+ case 3:
+ case 4:
+ ju(Ze(e, (Vi(), Vf), (rr(), fcn)), Or, ocn);
+ }
+ switch (t.Hc((or(), NS)) && ju(Ze(Ze(e, (Vi(), Vf), (rr(), ucn)), Tc, rcn), Or, ccn), B(k(n, __)) !== B((Zw(), hP)) && Ze(e, (Vi(), Kc), (rr(), Ccn)), t.Hc(RS) && (Ze(e, (Vi(), Vf), (rr(), Scn)), Ze(e, Dl, Mcn), Ze(e, Kc, Acn)), B(k(n, WS)) !== B((f4(), Cm)) && B(k(n, Vh)) !== B((Kh(), yy)) && ju(e, (Vi(), Or), (rr(), vcn)), on(sn(k(n, hsn))) && Ze(e, (Vi(), Kc), (rr(), pcn)), on(sn(k(n, x_))) && Ze(e, (Vi(), Kc), (rr(), Pcn)), U9e(n) && (B(k(n, Qb)) === B(F1) ? i = u(k(n, Jk), 292) : i = u(k(n, F_), 292), c = i == (H3(), m_) ? (rr(), Tcn) : (rr(), Dcn), Ze(e, (Vi(), Tc), c)), u(k(n, Bsn), 377).g) {
+ case 1:
+ Ze(e, (Vi(), Tc), (rr(), Icn));
+ break;
+ case 2:
+ ju(Ze(Ze(e, (Vi(), Kc), (rr(), ncn)), Tc, ecn), Or, tcn);
+ }
+ return B(k(n, xl)) !== B((Bh(), Ll)) && Ze(e, (Vi(), Kc), (rr(), Ocn)), e;
+ }
+ function F_n(n) {
+ gd(n, new Oa(ad(fd(ld(hd(new na(), zs), "ELK Rectangle Packing"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."), new qgn()))), Z(n, zs, ep, 1.3), Z(n, zs, dA, cn(efn)), Z(n, zs, s0, ofn), Z(n, zs, $b, 15), Z(n, zs, sA, cn(WYn)), Z(n, zs, hg, cn(QYn)), Z(n, zs, ip, cn(JYn)), Z(n, zs, tp, cn(YYn)), Z(n, zs, $4, cn(VYn)), Z(n, zs, G6, cn(cfn)), Z(n, zs, F4, cn(nZn)), Z(n, zs, htn, cn(sfn)), Z(n, zs, ltn, cn(rfn)), Z(n, zs, btn, cn(ufn)), Z(n, zs, wtn, cn(ffn)), Z(n, zs, wB, cn(tfn)), Z(n, zs, lk, cn(ifn)), Z(n, zs, cB, cn(XYn)), Z(n, zs, dtn, cn(fy)), Z(n, zs, atn, cn(nfn)), Z(n, zs, gtn, cn(hfn));
+ }
+ function r0(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ if (t == null)
+ return null;
+ if (n.a != e.Aj())
+ throw T(new Hn(B4 + e.ne() + l0));
+ if (I(e, 457)) {
+ if (C = j7e(u(e, 671), t), !C)
+ throw T(new Hn(AB + t + "' is not a valid enumerator of '" + e.ne() + "'"));
+ return C;
+ }
+ switch (w1((bu(), xi), e).cl()) {
+ case 2: {
+ t = Ec(t, !1);
+ break;
+ }
+ case 3: {
+ t = Ec(t, !0);
+ break;
+ }
+ }
+ if (i = w1(xi, e).$k(), i)
+ return i.Aj().Nh().Kh(i, t);
+ if (g = w1(xi, e).al(), g) {
+ for (C = new X(), l = aF(t), a = 0, d = l.length; a < d; ++a)
+ h = l[a], W(C, g.Aj().Nh().Kh(g, h));
+ return C;
+ }
+ if (m = w1(xi, e).bl(), !m.dc()) {
+ for (v = m.Kc(); v.Ob(); ) {
+ p = u(v.Pb(), 148);
+ try {
+ if (C = p.Aj().Nh().Kh(p, t), C != null)
+ return C;
+ } catch (S) {
+ if (S = jt(S), !I(S, 60))
+ throw T(S);
+ }
+ }
+ throw T(new Hn(AB + t + "' does not match any member types of the union datatype '" + e.ne() + "'"));
+ }
+ if (u(e, 834).Fj(), r = yge(e.Bj()), !r)
+ return null;
+ if (r == bm) {
+ o = 0;
+ try {
+ o = us(t, Bi, nt) & Wt;
+ } catch (S) {
+ if (S = jt(S), I(S, 127))
+ c = NC(t), o = c[0];
+ else
+ throw T(S);
+ }
+ return i7(o);
+ }
+ if (r == HA) {
+ for (f = 0; f < l9.length; ++f)
+ try {
+ return E7n(l9[f], t);
+ } catch (S) {
+ if (S = jt(S), !I(S, 32))
+ throw T(S);
+ }
+ throw T(new Hn(AB + t + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof"));
+ }
+ throw T(new Hn(AB + t + "' is invalid. "));
+ }
+ function gTe(n, e) {
+ var t, i, r, c, o, f, h, l;
+ if (t = 0, o = 0, c = e.length, f = null, l = new _0(), o < c && (Me(o, e.length), e.charCodeAt(o) == 43) && (++o, ++t, o < c && (Me(o, e.length), e.charCodeAt(o) == 43 || (Me(o, e.length), e.charCodeAt(o) == 45))))
+ throw T(new Sf(u0 + e + '"'));
+ for (; o < c && (Me(o, e.length), e.charCodeAt(o) != 46) && (Me(o, e.length), e.charCodeAt(o) != 101) && (Me(o, e.length), e.charCodeAt(o) != 69); )
+ ++o;
+ if (l.a += "" + Yu(e == null ? tu : (_n(e), e), t, o), o < c && (Me(o, e.length), e.charCodeAt(o) == 46)) {
+ for (++o, t = o; o < c && (Me(o, e.length), e.charCodeAt(o) != 101) && (Me(o, e.length), e.charCodeAt(o) != 69); )
+ ++o;
+ n.e = o - t, l.a += "" + Yu(e == null ? tu : (_n(e), e), t, o);
+ } else
+ n.e = 0;
+ if (o < c && (Me(o, e.length), e.charCodeAt(o) == 101 || (Me(o, e.length), e.charCodeAt(o) == 69)) && (++o, t = o, o < c && (Me(o, e.length), e.charCodeAt(o) == 43) && (++o, o < c && (Me(o, e.length), e.charCodeAt(o) != 45) && ++t), f = e.substr(t, c - t), n.e = n.e - us(f, Bi, nt), n.e != zt(n.e)))
+ throw T(new Sf("Scale out of range."));
+ if (h = l.a, h.length < 16) {
+ if (n.f = (Fin == null && (Fin = new RegExp("^[+-]?\\d*$", "i")), Fin.test(h) ? parseInt(h, 10) : NaN), isNaN(n.f))
+ throw T(new Sf(u0 + e + '"'));
+ n.a = wY(n.f);
+ } else
+ N2e(n, new tl(h));
+ for (n.d = l.a.length, r = 0; r < l.a.length && (i = Di(l.a, r), !(i != 45 && i != 48)); ++r)
+ --n.d;
+ n.d == 0 && (n.d = 1);
+ }
+ function yL() {
+ yL = N, at = new Dd(), Tn(at, (J(), Ef), Pc), Tn(at, eo, Pc), Tn(at, eo, cu), Tn(at, $s, vu), Tn(at, $s, Pc), Tn(at, Do, Pc), Tn(at, Do, Pu), Tn(at, ds, iu), Tn(at, ds, Pc), Tn(at, ru, qc), Tn(at, ru, Pc), Tn(at, ru, Pu), Tn(at, ru, iu), Tn(at, qc, ru), Tn(at, qc, cu), Tn(at, qc, vu), Tn(at, qc, Pc), Tn(at, $o, $o), Tn(at, $o, Pu), Tn(at, $o, cu), Tn(at, Su, Su), Tn(at, Su, Pu), Tn(at, Su, vu), Tn(at, bs, bs), Tn(at, bs, iu), Tn(at, bs, cu), Tn(at, Fs, Fs), Tn(at, Fs, iu), Tn(at, Fs, vu), Tn(at, Pu, Do), Tn(at, Pu, ru), Tn(at, Pu, $o), Tn(at, Pu, Su), Tn(at, Pu, Pc), Tn(at, Pu, Pu), Tn(at, Pu, cu), Tn(at, Pu, vu), Tn(at, iu, ds), Tn(at, iu, ru), Tn(at, iu, bs), Tn(at, iu, Fs), Tn(at, iu, iu), Tn(at, iu, cu), Tn(at, iu, vu), Tn(at, iu, Pc), Tn(at, cu, eo), Tn(at, cu, qc), Tn(at, cu, $o), Tn(at, cu, bs), Tn(at, cu, Pu), Tn(at, cu, iu), Tn(at, cu, cu), Tn(at, cu, Pc), Tn(at, vu, $s), Tn(at, vu, qc), Tn(at, vu, Su), Tn(at, vu, Fs), Tn(at, vu, Pu), Tn(at, vu, iu), Tn(at, vu, vu), Tn(at, vu, Pc), Tn(at, Pc, Ef), Tn(at, Pc, eo), Tn(at, Pc, $s), Tn(at, Pc, Do), Tn(at, Pc, ds), Tn(at, Pc, ru), Tn(at, Pc, qc), Tn(at, Pc, Pu), Tn(at, Pc, iu), Tn(at, Pc, cu), Tn(at, Pc, vu), Tn(at, Pc, Pc);
+ }
+ function qZ(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln;
+ for (n.d = new fn(xt, xt), n.c = new fn(Qt, Qt), g = e.Kc(); g.Ob(); )
+ for (a = u(g.Pb(), 37), O = new E(a.a); O.a < O.c.c.length; )
+ $ = u(y(O), 10), n.d.a = j.Math.min(n.d.a, $.n.a - $.d.b), n.d.b = j.Math.min(n.d.b, $.n.b - $.d.d), n.c.a = j.Math.max(n.c.a, $.n.a + $.o.a + $.d.c), n.c.b = j.Math.max(n.c.b, $.n.b + $.o.b + $.d.a);
+ for (f = new Ymn(), d = e.Kc(); d.Ob(); )
+ a = u(d.Pb(), 37), i = ZCe(n, a), W(f.a, i), i.a = i.a | !u(k(i.c, (G(), zb)), 21).dc();
+ for (n.b = (yF(), ln = new Can(), ln.f = new BIn(t), ln.b = sEe(ln.f, f), ln), wEe((v = n.b, new Gp(), v)), n.e = new Li(), n.a = n.b.f.e, o = new E(f.a); o.a < o.c.c.length; )
+ for (r = u(y(o), 841), x = Z1e(n.b, r), eke(r.c, x.a, x.b), C = new E(r.c.a); C.a < C.c.c.length; )
+ m = u(y(C), 10), m.k == (Qn(), Vt) && (S = RY(n, m.n, u(k(m, (G(), ec)), 61)), st(Lo(m.n), S));
+ for (c = new E(f.a); c.a < c.c.c.length; )
+ for (r = u(y(c), 841), l = new E(Oge(r)); l.a < l.c.c.length; )
+ for (h = u(y(l), 17), en = new mj(h.a), u3(en, 0, tf(h.c)), Ke(en, tf(h.d)), p = null, U = _e(en, 0); U.b != U.d.c; ) {
+ if (_ = u(Re(U), 8), !p) {
+ p = _;
+ continue;
+ }
+ iV(p.a, _.a) ? (n.e.a = j.Math.min(n.e.a, p.a), n.a.a = j.Math.max(n.a.a, p.a)) : iV(p.b, _.b) && (n.e.b = j.Math.min(n.e.b, p.b), n.a.b = j.Math.max(n.a.b, p.b)), p = _;
+ }
+ vE(n.e), st(n.a, n.e);
+ }
+ function pTe(n) {
+ ke(n.b, Xs, A(M(tn, 1), q, 2, 6, [a0, "ConsistentTransient"])), ke(n.a, Xs, A(M(tn, 1), q, 2, 6, [a0, "WellFormedSourceURI"])), ke(n.o, Xs, A(M(tn, 1), q, 2, 6, [a0, "InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"])), ke(n.p, Xs, A(M(tn, 1), q, 2, 6, [a0, "WellFormedInstanceTypeName UniqueTypeParameterNames"])), ke(n.v, Xs, A(M(tn, 1), q, 2, 6, [a0, "UniqueEnumeratorNames UniqueEnumeratorLiterals"])), ke(n.R, Xs, A(M(tn, 1), q, 2, 6, [a0, "WellFormedName"])), ke(n.T, Xs, A(M(tn, 1), q, 2, 6, [a0, "UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"])), ke(n.U, Xs, A(M(tn, 1), q, 2, 6, [a0, "WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"])), ke(n.W, Xs, A(M(tn, 1), q, 2, 6, [a0, "ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"])), ke(n.bb, Xs, A(M(tn, 1), q, 2, 6, [a0, "ValidDefaultValueLiteral"])), ke(n.eb, Xs, A(M(tn, 1), q, 2, 6, [a0, "ValidLowerBound ValidUpperBound ConsistentBounds ValidType"])), ke(n.H, Xs, A(M(tn, 1), q, 2, 6, [a0, "ConsistentType ConsistentBounds ConsistentArguments"]));
+ }
+ function vTe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn;
+ if (!e.dc()) {
+ if (r = new ou(), f = t || u(e.Xb(0), 17), v = f.c, C6(), g = v.i.k, !(g == (Qn(), ii) || g == Mc || g == Vt || g == vf))
+ throw T(new Hn("The target node of the edge must be a normal node or a northSouthPort."));
+ for (sa(r, Gr(A(M(di, 1), q, 8, 0, [v.i.n, v.n, v.a]))), (J(), ru).Hc(v.j) && (C = K(Y(k(v, (G(), fv)))), d = new fn(Gr(A(M(di, 1), q, 8, 0, [v.i.n, v.n, v.a])).a, C), Ht(r, d, r.c.b, r.c)), a = null, i = !1, h = e.Kc(); h.Ob(); )
+ o = u(h.Pb(), 17), c = o.a, c.b != 0 && (i ? (l = If(st(a, (ne(c.b != 0), u(c.a.a.c, 8))), 0.5), Ht(r, l, r.c.b, r.c), i = !1) : i = !0, a = Qr((ne(c.b != 0), u(c.c.b.c, 8))), Xi(r, c), Rs(c));
+ m = f.d, ru.Hc(m.j) && (C = K(Y(k(m, (G(), fv)))), d = new fn(Gr(A(M(di, 1), q, 8, 0, [m.i.n, m.n, m.a])).a, C), Ht(r, d, r.c.b, r.c)), sa(r, Gr(A(M(di, 1), q, 8, 0, [m.i.n, m.n, m.a]))), n.d == (V3(), sK) && (S = (ne(r.b != 0), u(r.a.a.c, 8)), $ = u(qo(r, 1), 8), O = new u$(XV(v.j)), O.a *= 5, O.b *= 5, x = ji(new fn($.a, $.b), S), _ = new fn(i$(O.a, x.a), i$(O.b, x.b)), st(_, S), U = _e(r, 1), y8(U, _), en = (ne(r.b != 0), u(r.c.b.c, 8)), ln = u(qo(r, r.b - 2), 8), O = new u$(XV(m.j)), O.a *= 5, O.b *= 5, x = ji(new fn(ln.a, ln.b), en), wn = new fn(i$(O.a, x.a), i$(O.b, x.b)), st(wn, en), u3(r, r.b - 1, wn)), p = new jZ(r), Xi(f.a, rFn(p));
+ }
+ }
+ function mTe(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye, fi, gs, so, Mf, hI, Ky, y9, Hy;
+ if (O = u(D((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), 0), 82), _ = O.Dg(), U = O.Eg(), x = O.Cg() / 2, m = O.Bg() / 2, I(O, 186) && ($ = u(O, 118), _ += nf($).i, _ += nf($).i), _ += x, U += m, Wn = u(D((!n.b && (n.b = new Fn(he, n, 4, 7)), n.b), 0), 82), Ye = Wn.Dg(), fi = Wn.Eg(), se = Wn.Cg() / 2, en = Wn.Bg() / 2, I(Wn, 186) && (zn = u(Wn, 118), Ye += nf(zn).i, Ye += nf(zn).i), Ye += se, fi += en, (!n.a && (n.a = new V(Tt, n, 6, 6)), n.a).i == 0)
+ f = (dd(), l = new Vy(), l), me((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a), f);
+ else if ((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a).i > 1)
+ for (v = new b2((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a)); v.e != v.i.gc(); )
+ p6(v);
+ for (o = u(D((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a), 0), 202), C = Ye, Ye > _ + x ? C = _ + x : Ye < _ - x && (C = _ - x), S = fi, fi > U + m ? S = U + m : fi < U - m && (S = U - m), C > _ - x && C < _ + x && S > U - m && S < U + m && (C = _ + x), D3(o, C), F3(o, S), ln = _, _ > Ye + se ? ln = Ye + se : _ < Ye - se && (ln = Ye - se), wn = U, U > fi + en ? wn = fi + en : U < fi - en && (wn = fi - en), ln > Ye - se && ln < Ye + se && wn > fi - en && wn < fi + en && (wn = fi + en), O3(o, ln), $3(o, wn), de((!o.a && (o.a = new Yt(to, o, 5)), o.a)), c = _T(e, 5), O == Wn && ++c, Mf = ln - C, y9 = wn - S, gs = j.Math.sqrt(Mf * Mf + y9 * y9), d = gs * 0.20000000298023224, hI = Mf / (c + 1), Hy = y9 / (c + 1), so = C, Ky = S, a = 0; a < c; a++)
+ so += hI, Ky += Hy, g = so + Fu(e, 24) * uk * d - d / 2, g < 0 ? g = 1 : g > t && (g = t - 1), p = Ky + Fu(e, 24) * uk * d - d / 2, p < 0 ? p = 1 : p > i && (p = i - 1), r = (dd(), h = new Xy(), h), UC(r, g), WC(r, p), me((!o.a && (o.a = new Yt(to, o, 5)), o.a), r);
+ }
+ function nn() {
+ nn = N, q_ = (Xe(), JZn), Isn = YZn, Zk = yhn, Mo = ZZn, jp = jhn, T0 = nne, ew = Ehn, bv = Chn, wv = Thn, G_ = KP, M0 = td, z_ = ene, Fm = Shn, rP = Ap, Yk = (zZ(), XVn), Dg = VVn, Ja = QVn, $g = JVn, FQn = new tr(_P, Q(0)), dv = zVn, Psn = UVn, yp = WVn, Bsn = mQn, Osn = nQn, Dsn = iQn, W_ = hQn, $sn = uQn, Fsn = oQn, cP = EQn, X_ = kQn, Lsn = wQn, xsn = dQn, Nsn = pQn, E0 = RVn, $m = _Vn, B_ = iVn, ssn = cVn, Csn = new md(12), Esn = new tr(ed, Csn), rsn = (Kh(), Ev), Vh = new tr(Jfn, rsn), Yb = new tr(Bu, 0), xQn = new tr(tH, Q(1)), zS = new tr(Tp, D4), Qa = RP, Nt = n9, av = Hg, AQn = py, Qf = HZn, Qb = Bg, LQn = new tr(iH, (qn(), !0)), Jb = vy, Xa = VK, Va = nd, iP = Rl, H_ = BP, isn = (sr(), mh), ls = new tr(S0, isn), j0 = _g, eP = uhn, Zb = cw, $Qn = eH, Asn = mhn, Msn = (qw(), Cy), new tr(bhn, Msn), IQn = JK, OQn = YK, DQn = ZK, PQn = QK, U_ = ZVn, vsn = AVn, __ = MVn, xm = YVn, Hc = mVn, Vb = VXn, Om = XXn, Xb = xXn, nsn = LXn, F_ = _Xn, Jk = NXn, x_ = UXn, msn = SVn, ksn = PVn, dsn = dVn, tP = qVn, K_ = DVn, R_ = oVn, jsn = NVn, usn = eVn, N_ = tVn, $_ = LP, ysn = IVn, WS = SXn, Jun = AXn, US = MXn, hsn = lVn, fsn = hVn, lsn = aVn, hv = Kg, Mr = Rg, S1 = Zfn, Jf = XK, L_ = WK, esn = HXn, P1 = nH, Im = zZn, YS = UZn, C0 = ghn, Tsn = WZn, lv = XZn, wsn = yVn, gsn = EVn, nw = Mp, O_ = TXn, psn = TVn, JS = YXn, QS = JXn, nP = my, bsn = gVn, Dm = FVn, ny = Mhn, tsn = QXn, Ssn = GVn, csn = ZXn, SQn = vVn, MQn = GXn, asn = ihn, ZS = kVn, VS = zXn, xl = FXn, Zun = DXn, XS = IXn, Yun = OXn, D_ = $Xn, kp = PXn, osn = fVn;
+ }
+ function jL(n, e) {
+ oL();
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye;
+ if (ln = n.e, v = n.d, r = n.a, ln == 0)
+ switch (e) {
+ case 0:
+ return "0";
+ case 1:
+ return A4;
+ case 2:
+ return "0.00";
+ case 3:
+ return "0.000";
+ case 4:
+ return "0.0000";
+ case 5:
+ return "0.00000";
+ case 6:
+ return "0.000000";
+ default:
+ return U = new X1(), e < 0 ? U.a += "0E+" : U.a += "0E", U.a += -e, U.a;
+ }
+ if (O = v * 10 + 1 + 7, x = F(xs, Bf, 25, O + 1, 15, 1), t = O, v == 1)
+ if (f = r[0], f < 0) {
+ Ye = ui(f, fr);
+ do
+ m = Ye, Ye = M7(Ye, 10), x[--t] = 48 + ge(pl(m, Ni(Ye, 10))) & Wt;
+ while (hc(Ye, 0) != 0);
+ } else {
+ Ye = f;
+ do
+ m = Ye, Ye = Ye / 10 | 0, x[--t] = 48 + (m - Ye * 10) & Wt;
+ while (Ye != 0);
+ }
+ else {
+ zn = F(be, Le, 25, v, 15, 1), se = v, pc(r, 0, zn, 0, se);
+ n:
+ for (; ; ) {
+ for (en = 0, l = se - 1; l >= 0; l--)
+ Wn = Hi(Ph(en, 32), ui(zn[l], fr)), S = Cve(Wn), zn[l] = ge(S), en = ge(rl(S, 32));
+ $ = ge(en), C = t;
+ do
+ x[--t] = 48 + $ % 10 & Wt;
+ while (($ = $ / 10 | 0) != 0 && t != 0);
+ for (i = 9 - C + t, h = 0; h < i && t > 0; h++)
+ x[--t] = 48;
+ for (d = se - 1; zn[d] == 0; d--)
+ if (d == 0)
+ break n;
+ se = d + 1;
+ }
+ for (; x[t] == 48; )
+ ++t;
+ }
+ if (p = ln < 0, o = O - t - e - 1, e == 0)
+ return p && (x[--t] = 45), Ks(x, t, O - t);
+ if (e > 0 && o >= -6) {
+ if (o >= 0) {
+ for (a = t + o, g = O - 1; g >= a; g--)
+ x[g + 1] = x[g];
+ return x[++a] = 46, p && (x[--t] = 45), Ks(x, t, O - t + 1);
+ }
+ for (d = 2; d < -o + 1; d++)
+ x[--t] = 48;
+ return x[--t] = 46, x[--t] = 48, p && (x[--t] = 45), Ks(x, t, O - t);
+ }
+ return wn = t + 1, c = O, _ = new _0(), p && (_.a += "-"), c - wn >= 1 ? (ul(_, x[t]), _.a += ".", _.a += Ks(x, t + 1, O - t - 1)) : _.a += Ks(x, t, O - t), _.a += "E", o > 0 && (_.a += "+"), _.a += "" + o, _.a;
+ }
+ function x_n(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U;
+ switch (n.c = e, n.g = new we(), t = (H0(), new B0(n.c)), i = new tj(t), TQ(i), O = Te(hn(n.c, (S7(), kfn))), h = u(hn(n.c, BK), 316), _ = u(hn(n.c, RK), 429), o = u(hn(n.c, pfn), 482), x = u(hn(n.c, NK), 430), n.j = K(Y(hn(n.c, aZn))), f = n.a, h.g) {
+ case 0:
+ f = n.a;
+ break;
+ case 1:
+ f = n.b;
+ break;
+ case 2:
+ f = n.i;
+ break;
+ case 3:
+ f = n.e;
+ break;
+ case 4:
+ f = n.f;
+ break;
+ default:
+ throw T(new Hn(bA + (h.f != null ? h.f : "" + h.g)));
+ }
+ if (n.d = new cMn(f, _, o), H(n.d, (R3(), pm), sn(hn(n.c, hZn))), n.d.c = on(sn(hn(n.c, vfn))), iC(n.c).i == 0)
+ return n.d;
+ for (d = new ie(iC(n.c)); d.e != d.i.gc(); ) {
+ for (a = u(oe(d), 33), p = a.g / 2, g = a.f / 2, U = new fn(a.i + p, a.j + g); zu(n.g, U); )
+ W0(U, (j.Math.random() - 0.5) * Kf, (j.Math.random() - 0.5) * Kf);
+ m = u(hn(a, (Xe(), my)), 142), C = new jMn(U, new ks(U.a - p - n.j / 2 - m.b, U.b - g - n.j / 2 - m.d, a.g + n.j + (m.b + m.c), a.f + n.j + (m.d + m.a))), W(n.d.i, C), it(n.g, U, new Pi(C, a));
+ }
+ switch (x.g) {
+ case 0:
+ if (O == null)
+ n.d.d = u(un(n.d.i, 0), 65);
+ else
+ for ($ = new E(n.d.i); $.a < $.c.c.length; )
+ C = u(y($), 65), v = u(u(te(n.g, C.a), 46).b, 33).zg(), v != null && An(v, O) && (n.d.d = C);
+ break;
+ case 1:
+ for (r = new fn(n.c.g, n.c.f), r.a *= 0.5, r.b *= 0.5, W0(r, n.c.i, n.c.j), c = xt, S = new E(n.d.i); S.a < S.c.c.length; )
+ C = u(y(S), 65), l = ll(C.a, r), l < c && (c = l, n.d.d = C);
+ break;
+ default:
+ throw T(new Hn(bA + (x.f != null ? x.f : "" + x.g)));
+ }
+ return n.d;
+ }
+ function L_n(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U;
+ for (_ = u(D((!n.a && (n.a = new V(Tt, n, 6, 6)), n.a), 0), 202), a = new ou(), x = new we(), U = YBn(_), Rc(x.f, _, U), g = new we(), i = new Ct(), v = cl(of(A(M(gf, 1), rn, 20, 0, [(!e.d && (e.d = new Fn(bi, e, 8, 5)), e.d), (!e.e && (e.e = new Fn(bi, e, 7, 4)), e.e)]))); Se(v); ) {
+ if (p = u(ve(v), 79), (!n.a && (n.a = new V(Tt, n, 6, 6)), n.a).i != 1)
+ throw T(new Hn(fqn + (!n.a && (n.a = new V(Tt, n, 6, 6)), n.a).i));
+ p != n && (C = u(D((!p.a && (p.a = new V(Tt, p, 6, 6)), p.a), 0), 202), Ht(i, C, i.c.b, i.c), m = u(Vr(Sr(x.f, C)), 12), m || (m = YBn(C), Rc(x.f, C, m)), d = t ? ji(new kr(u(un(U, U.c.length - 1), 8)), u(un(m, m.c.length - 1), 8)) : ji(new kr((Ln(0, U.c.length), u(U.c[0], 8))), (Ln(0, m.c.length), u(m.c[0], 8))), Rc(g.f, C, d));
+ }
+ if (i.b != 0)
+ for (S = u(un(U, t ? U.c.length - 1 : 0), 8), l = 1; l < U.c.length; l++) {
+ for ($ = u(un(U, t ? U.c.length - 1 - l : l), 8), r = _e(i, 0); r.b != r.d.c; )
+ C = u(Re(r), 202), m = u(Vr(Sr(x.f, C)), 12), m.c.length <= l ? HC(r) : (O = st(new kr(u(un(m, t ? m.c.length - 1 - l : l), 8)), u(Vr(Sr(g.f, C)), 8)), ($.a != O.a || $.b != O.b) && (c = $.a - S.a, f = $.b - S.b, o = O.a - S.a, h = O.b - S.b, o * f == h * c && (c == 0 || isNaN(c) ? c : c < 0 ? -1 : 1) == (o == 0 || isNaN(o) ? o : o < 0 ? -1 : 1) && (f == 0 || isNaN(f) ? f : f < 0 ? -1 : 1) == (h == 0 || isNaN(h) ? h : h < 0 ? -1 : 1) ? (j.Math.abs(c) < j.Math.abs(o) || j.Math.abs(f) < j.Math.abs(h)) && Ht(a, $, a.c.b, a.c) : l > 1 && Ht(a, S, a.c.b, a.c), HC(r)));
+ S = $;
+ }
+ return a;
+ }
+ function kTe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye, fi, gs, so, Mf;
+ for (le(t, "Greedy cycle removal", 1), O = e.a, Mf = O.c.length, n.a = F(be, Le, 25, Mf, 15, 1), n.c = F(be, Le, 25, Mf, 15, 1), n.b = F(be, Le, 25, Mf, 15, 1), l = 0, S = new E(O); S.a < S.c.c.length; ) {
+ for (m = u(y(S), 10), m.p = l, wn = new E(m.j); wn.a < wn.c.c.length; ) {
+ for (U = u(y(wn), 11), f = new E(U.e); f.a < f.c.c.length; )
+ i = u(y(f), 17), i.c.i != m && (se = u(k(i, (nn(), dv)), 19).a, n.a[l] += se > 0 ? se + 1 : 1);
+ for (o = new E(U.g); o.a < o.c.c.length; )
+ i = u(y(o), 17), i.d.i != m && (se = u(k(i, (nn(), dv)), 19).a, n.c[l] += se > 0 ? se + 1 : 1);
+ }
+ n.c[l] == 0 ? Ke(n.e, m) : n.a[l] == 0 && Ke(n.f, m), ++l;
+ }
+ for (v = -1, p = 1, d = new X(), n.d = u(k(e, (G(), vp)), 230); Mf > 0; ) {
+ for (; n.e.b != 0; )
+ fi = u(aD(n.e), 10), n.b[fi.p] = v--, lZ(n, fi), --Mf;
+ for (; n.f.b != 0; )
+ gs = u(aD(n.f), 10), n.b[gs.p] = p++, lZ(n, gs), --Mf;
+ if (Mf > 0) {
+ for (g = Bi, $ = new E(O); $.a < $.c.c.length; )
+ m = u(y($), 10), n.b[m.p] == 0 && (x = n.c[m.p] - n.a[m.p], x >= g && (x > g && (d.c = F(Zn, rn, 1, 0, 5, 1), g = x), d.c[d.c.length] = m));
+ a = n.Zf(d), n.b[a.p] = p++, lZ(n, a), --Mf;
+ }
+ }
+ for (Ye = O.c.length + 1, l = 0; l < O.c.length; l++)
+ n.b[l] < 0 && (n.b[l] += Ye);
+ for (C = new E(O); C.a < C.c.c.length; )
+ for (m = u(y(C), 10), Wn = wAn(m.j), en = Wn, ln = 0, zn = en.length; ln < zn; ++ln)
+ for (U = en[ln], _ = xf(U.g), r = _, c = 0, h = r.length; c < h; ++c)
+ i = r[c], so = i.d.i.p, n.b[m.p] > n.b[so] && (t0(i, !0), H(e, Uk, (qn(), !0)));
+ n.a = null, n.c = null, n.b = null, Rs(n.f), Rs(n.e), ce(t);
+ }
+ function N_n(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ for (i = new X(), f = new X(), C = e / 2, p = n.gc(), r = u(n.Xb(0), 8), S = u(n.Xb(1), 8), v = Lx(r.a, r.b, S.a, S.b, C), W(i, (Ln(0, v.c.length), u(v.c[0], 8))), W(f, (Ln(1, v.c.length), u(v.c[1], 8))), l = 2; l < p; l++)
+ m = r, r = S, S = u(n.Xb(l), 8), v = Lx(r.a, r.b, m.a, m.b, C), W(i, (Ln(1, v.c.length), u(v.c[1], 8))), W(f, (Ln(0, v.c.length), u(v.c[0], 8))), v = Lx(r.a, r.b, S.a, S.b, C), W(i, (Ln(0, v.c.length), u(v.c[0], 8))), W(f, (Ln(1, v.c.length), u(v.c[1], 8)));
+ for (v = Lx(S.a, S.b, r.a, r.b, C), W(i, (Ln(1, v.c.length), u(v.c[1], 8))), W(f, (Ln(0, v.c.length), u(v.c[0], 8))), t = new ou(), o = new X(), Ke(t, (Ln(0, i.c.length), u(i.c[0], 8))), a = 1; a < i.c.length - 2; a += 2)
+ c = (Ln(a, i.c.length), u(i.c[a], 8)), g = Qxn((Ln(a - 1, i.c.length), u(i.c[a - 1], 8)), c, (Ln(a + 1, i.c.length), u(i.c[a + 1], 8)), (Ln(a + 2, i.c.length), u(i.c[a + 2], 8))), !isFinite(g.a) || !isFinite(g.b) ? Ht(t, c, t.c.b, t.c) : Ht(t, g, t.c.b, t.c);
+ for (Ke(t, u(un(i, i.c.length - 1), 8)), W(o, (Ln(0, f.c.length), u(f.c[0], 8))), d = 1; d < f.c.length - 2; d += 2)
+ c = (Ln(d, f.c.length), u(f.c[d], 8)), g = Qxn((Ln(d - 1, f.c.length), u(f.c[d - 1], 8)), c, (Ln(d + 1, f.c.length), u(f.c[d + 1], 8)), (Ln(d + 2, f.c.length), u(f.c[d + 2], 8))), !isFinite(g.a) || !isFinite(g.b) ? o.c[o.c.length] = c : o.c[o.c.length] = g;
+ for (W(o, u(un(f, f.c.length - 1), 8)), h = o.c.length - 1; h >= 0; h--)
+ Ke(t, (Ln(h, o.c.length), u(o.c[h], 8)));
+ return t;
+ }
+ function yTe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p;
+ if (o = !0, d = null, i = null, r = null, e = !1, p = qne, l = null, c = null, f = 0, h = HF(n, f, a1n, d1n), h < n.length && (Me(h, n.length), n.charCodeAt(h) == 58) && (d = n.substr(f, h - f), f = h + 1), t = d != null && _9(tI, d.toLowerCase()), t) {
+ if (h = n.lastIndexOf("!/"), h == -1)
+ throw T(new Hn("no archive separator"));
+ o = !0, i = Yu(n, f, ++h), f = h;
+ } else
+ f >= 0 && An(n.substr(f, 2), "//") ? (f += 2, h = HF(n, f, a9, d9), i = n.substr(f, h - f), f = h) : d != null && (f == n.length || (Me(f, n.length), n.charCodeAt(f) != 47)) && (o = !1, h = qz(n, eu(35), f), h == -1 && (h = n.length), i = n.substr(f, h - f), f = h);
+ if (!t && f < n.length && (Me(f, n.length), n.charCodeAt(f) == 47) && (h = HF(n, f + 1, a9, d9), a = n.substr(f + 1, h - (f + 1)), a.length > 0 && Di(a, a.length - 1) == 58 && (r = a, f = h)), f < n.length && (Me(f, n.length), n.charCodeAt(f) == 47) && (++f, e = !0), f < n.length && (Me(f, n.length), n.charCodeAt(f) != 63) && (Me(f, n.length), n.charCodeAt(f) != 35)) {
+ for (g = new X(); f < n.length && (Me(f, n.length), n.charCodeAt(f) != 63) && (Me(f, n.length), n.charCodeAt(f) != 35); )
+ h = HF(n, f, a9, d9), W(g, n.substr(f, h - f)), f = h, f < n.length && (Me(f, n.length), n.charCodeAt(f) == 47) && (fge(n, ++f) || (g.c[g.c.length] = ""));
+ p = F(tn, q, 2, g.c.length, 6, 1), lf(g, p);
+ }
+ return f < n.length && (Me(f, n.length), n.charCodeAt(f) == 63) && (h = c3(n, 35, ++f), h == -1 && (h = n.length), l = n.substr(f, h - f), f = h), f < n.length && (c = r8(n, ++f)), lEe(o, d, i, r, p, l), new zx(o, d, i, r, e, p, l, c);
+ }
+ function jTe(n, e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye, fi, gs, so;
+ for (fi = new X(), v = new E(e.b); v.a < v.c.c.length; )
+ for (g = u(y(v), 29), _ = new E(g.a); _.a < _.c.c.length; ) {
+ for (x = u(y(_), 10), x.p = -1, d = Bi, ln = Bi, zn = new E(x.j); zn.a < zn.c.c.length; ) {
+ for (wn = u(y(zn), 11), r = new E(wn.e); r.a < r.c.c.length; )
+ t = u(y(r), 17), Wn = u(k(t, (nn(), yp)), 19).a, d = j.Math.max(d, Wn);
+ for (i = new E(wn.g); i.a < i.c.c.length; )
+ t = u(y(i), 17), Wn = u(k(t, (nn(), yp)), 19).a, ln = j.Math.max(ln, Wn);
+ }
+ H(x, bP, Q(d)), H(x, wP, Q(ln));
+ }
+ for (S = 0, p = new E(e.b); p.a < p.c.c.length; )
+ for (g = u(y(p), 29), _ = new E(g.a); _.a < _.c.c.length; )
+ x = u(y(_), 10), x.p < 0 && (Ye = new Jq(), Ye.b = S++, kBn(n, x, Ye), fi.c[fi.c.length] = Ye);
+ for (en = nh(fi.c.length), a = nh(fi.c.length), o = 0; o < fi.c.length; o++)
+ W(en, new X()), W(a, Q(0));
+ for (zEe(e, fi, en, a), gs = u(lf(fi, F(mJn, MHn, 257, fi.c.length, 0, 1)), 840), U = u(lf(en, F(Os, Db, 15, en.c.length, 0, 1)), 192), l = F(be, Le, 25, a.c.length, 15, 1), f = 0; f < l.length; f++)
+ l[f] = (Ln(f, a.c.length), u(a.c[f], 19)).a;
+ for ($ = 0, O = new X(), h = 0; h < gs.length; h++)
+ l[h] == 0 && W(O, gs[h]);
+ for (C = F(be, Le, 25, gs.length, 15, 1); O.c.length != 0; )
+ for (Ye = u(h1(O, 0), 257), C[Ye.b] = $++; !U[Ye.b].dc(); )
+ so = u(U[Ye.b].$c(0), 257), --l[so.b], l[so.b] == 0 && (O.c[O.c.length] = so);
+ for (n.a = F(mJn, MHn, 257, gs.length, 0, 1), c = 0; c < gs.length; c++)
+ for (m = gs[c], se = C[c], n.a[se] = m, m.b = se, _ = new E(m.e); _.a < _.c.c.length; )
+ x = u(y(_), 10), x.p = se;
+ return n.a;
+ }
+ function Qe(n) {
+ var e, t, i;
+ if (n.d >= n.j) {
+ n.a = -1, n.c = 1;
+ return;
+ }
+ if (e = Di(n.i, n.d++), n.a = e, n.b == 1) {
+ switch (e) {
+ case 92:
+ if (i = 10, n.d >= n.j)
+ throw T(new Ce(Pe((Ee(), yA))));
+ n.a = Di(n.i, n.d++);
+ break;
+ case 45:
+ (n.e & 512) == 512 && n.d < n.j && Di(n.i, n.d) == 91 ? (++n.d, i = 24) : i = 0;
+ break;
+ case 91:
+ if ((n.e & 512) != 512 && n.d < n.j && Di(n.i, n.d) == 58) {
+ ++n.d, i = 20;
+ break;
+ }
+ default:
+ (e & 64512) == rk && n.d < n.j && (t = Di(n.i, n.d), (t & 64512) == 56320 && (n.a = Ji + (e - rk << 10) + t - 56320, ++n.d)), i = 0;
+ }
+ n.c = i;
+ return;
+ }
+ switch (e) {
+ case 124:
+ i = 2;
+ break;
+ case 42:
+ i = 3;
+ break;
+ case 43:
+ i = 4;
+ break;
+ case 63:
+ i = 5;
+ break;
+ case 41:
+ i = 7;
+ break;
+ case 46:
+ i = 8;
+ break;
+ case 91:
+ i = 9;
+ break;
+ case 94:
+ i = 11;
+ break;
+ case 36:
+ i = 12;
+ break;
+ case 40:
+ if (i = 6, n.d >= n.j || Di(n.i, n.d) != 63)
+ break;
+ if (++n.d >= n.j)
+ throw T(new Ce(Pe((Ee(), _B))));
+ switch (e = Di(n.i, n.d++), e) {
+ case 58:
+ i = 13;
+ break;
+ case 61:
+ i = 14;
+ break;
+ case 33:
+ i = 15;
+ break;
+ case 91:
+ i = 19;
+ break;
+ case 62:
+ i = 18;
+ break;
+ case 60:
+ if (n.d >= n.j)
+ throw T(new Ce(Pe((Ee(), _B))));
+ if (e = Di(n.i, n.d++), e == 61)
+ i = 16;
+ else if (e == 33)
+ i = 17;
+ else
+ throw T(new Ce(Pe((Ee(), Lqn))));
+ break;
+ case 35:
+ for (; n.d < n.j && (e = Di(n.i, n.d++), e != 41); )
+ ;
+ if (e != 41)
+ throw T(new Ce(Pe((Ee(), Nqn))));
+ i = 21;
+ break;
+ default:
+ if (e == 45 || 97 <= e && e <= 122 || 65 <= e && e <= 90) {
+ --n.d, i = 22;
+ break;
+ } else if (e == 40) {
+ i = 23;
+ break;
+ }
+ throw T(new Ce(Pe((Ee(), _B))));
+ }
+ break;
+ case 92:
+ if (i = 10, n.d >= n.j)
+ throw T(new Ce(Pe((Ee(), yA))));
+ n.a = Di(n.i, n.d++);
+ break;
+ default:
+ i = 0;
+ }
+ n.c = i;
+ }
+ function ETe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se;
+ if (en = u(k(n, (nn(), Nt)), 98), en != (Ai(), jf) && en != Hl) {
+ for (v = n.b, p = v.c.length, a = new Ic((is(p + 2, AL), KC(Hi(Hi(5, p + 2), (p + 2) / 10 | 0)))), m = new Ic((is(p + 2, AL), KC(Hi(Hi(5, p + 2), (p + 2) / 10 | 0)))), W(a, new we()), W(a, new we()), W(m, new X()), W(m, new X()), U = new X(), e = 0; e < p; e++)
+ for (t = (Ln(e, v.c.length), u(v.c[e], 29)), ln = (Ln(e, a.c.length), u(a.c[e], 83)), C = new we(), a.c[a.c.length] = C, zn = (Ln(e, m.c.length), u(m.c[e], 15)), $ = new X(), m.c[m.c.length] = $, r = new E(t.a); r.a < r.c.c.length; ) {
+ if (i = u(y(r), 10), wQ(i)) {
+ U.c[U.c.length] = i;
+ continue;
+ }
+ for (l = new re(ue(Lr(i).a.Kc(), new Mn())); Se(l); )
+ f = u(ve(l), 17), Wn = f.c.i, wQ(Wn) && (wn = u(ln.xc(k(Wn, (G(), rt))), 10), wn || (wn = pLn(n, Wn), ln.zc(k(Wn, rt), wn), zn.Fc(wn)), Ki(f, u(un(wn.j, 1), 11)));
+ for (h = new re(ue(ei(i).a.Kc(), new Mn())); Se(h); )
+ f = u(ve(h), 17), se = f.d.i, wQ(se) && (S = u(te(C, k(se, (G(), rt))), 10), S || (S = pLn(n, se), it(C, k(se, rt), S), $.c[$.c.length] = S), Ti(f, u(un(S.j, 0), 11)));
+ }
+ for (d = 0; d < m.c.length; d++)
+ if (O = (Ln(d, m.c.length), u(m.c[d], 15)), !O.dc())
+ for (g = null, d == 0 ? (g = new Bs(n), ib(0, v.c.length), e5(v.c, 0, g)) : d == a.c.length - 1 ? (g = new Bs(n), v.c[v.c.length] = g) : g = (Ln(d - 1, v.c.length), u(v.c[d - 1], 29)), o = O.Kc(); o.Ob(); )
+ c = u(o.Pb(), 10), jr(c, g);
+ for (_ = new E(U); _.a < _.c.c.length; )
+ x = u(y(_), 10), jr(x, null);
+ H(n, (G(), E_), U);
+ }
+ }
+ function CTe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _;
+ if (le(t, "Coffman-Graham Layering", 1), e.a.c.length == 0) {
+ ce(t);
+ return;
+ }
+ for (_ = u(k(e, (nn(), bsn)), 19).a, h = 0, o = 0, g = new E(e.a); g.a < g.c.c.length; )
+ for (d = u(y(g), 10), d.p = h++, c = new re(ue(ei(d).a.Kc(), new Mn())); Se(c); )
+ r = u(ve(c), 17), r.p = o++;
+ for (n.d = F(_u, wh, 25, h, 16, 1), n.a = F(_u, wh, 25, o, 16, 1), n.b = F(be, Le, 25, h, 15, 1), n.e = F(be, Le, 25, h, 15, 1), n.f = F(be, Le, 25, h, 15, 1), QC(n.c), G4e(n, e), v = new GE(new e6n(n)), x = new E(e.a); x.a < x.c.c.length; ) {
+ for ($ = u(y(x), 10), c = new re(ue(Lr($).a.Kc(), new Mn())); Se(c); )
+ r = u(ve(c), 17), n.a[r.p] || ++n.b[$.p];
+ n.b[$.p] == 0 && T3(o4(v, $));
+ }
+ for (f = 0; v.b.c.length != 0; )
+ for ($ = u(K$(v), 10), n.f[$.p] = f++, c = new re(ue(ei($).a.Kc(), new Mn())); Se(c); )
+ r = u(ve(c), 17), !n.a[r.p] && (C = r.d.i, --n.b[C.p], Tn(n.c, C, Q(n.f[$.p])), n.b[C.p] == 0 && T3(o4(v, C)));
+ for (p = new GE(new t6n(n)), O = new E(e.a); O.a < O.c.c.length; ) {
+ for ($ = u(y(O), 10), c = new re(ue(ei($).a.Kc(), new Mn())); Se(c); )
+ r = u(ve(c), 17), n.a[r.p] || ++n.e[$.p];
+ n.e[$.p] == 0 && T3(o4(p, $));
+ }
+ for (a = new X(), i = DMn(e, a); p.b.c.length != 0; )
+ for (S = u(K$(p), 10), (i.a.c.length >= _ || !G2e(S, i)) && (i = DMn(e, a)), jr(S, i), c = new re(ue(Lr(S).a.Kc(), new Mn())); Se(c); )
+ r = u(ve(c), 17), !n.a[r.p] && (m = r.c.i, --n.e[m.p], n.e[m.p] == 0 && T3(o4(p, m)));
+ for (l = a.c.length - 1; l >= 0; --l)
+ W(e.b, (Ln(l, a.c.length), u(a.c[l], 29)));
+ e.a.c = F(Zn, rn, 1, 0, 5, 1), ce(t);
+ }
+ function B_n(n) {
+ var e, t, i, r, c, o, f, h, l;
+ for (n.b = 1, Qe(n), e = null, n.c == 0 && n.a == 94 ? (Qe(n), e = (Je(), Je(), new ns(4)), jc(e, 0, H4), f = new ns(4)) : f = (Je(), Je(), new ns(4)), r = !0; (l = n.c) != 1; ) {
+ if (l == 0 && n.a == 93 && !r) {
+ e && (F6(e, f), f = e);
+ break;
+ }
+ if (t = n.a, i = !1, l == 10)
+ switch (t) {
+ case 100:
+ case 68:
+ case 119:
+ case 87:
+ case 115:
+ case 83:
+ Sb(f, p4(t)), i = !0;
+ break;
+ case 105:
+ case 73:
+ case 99:
+ case 67:
+ t = (Sb(f, p4(t)), -1), t < 0 && (i = !0);
+ break;
+ case 112:
+ case 80:
+ if (h = mY(n, t), !h)
+ throw T(new Ce(Pe((Ee(), KB))));
+ Sb(f, h), i = !0;
+ break;
+ default:
+ t = ZY(n);
+ }
+ else if (l == 24 && !r) {
+ if (e && (F6(e, f), f = e), c = B_n(n), F6(f, c), n.c != 0 || n.a != 93)
+ throw T(new Ce(Pe((Ee(), Uqn))));
+ break;
+ }
+ if (Qe(n), !i) {
+ if (l == 0) {
+ if (t == 91)
+ throw T(new Ce(Pe((Ee(), Gtn))));
+ if (t == 93)
+ throw T(new Ce(Pe((Ee(), ztn))));
+ if (t == 45 && !r && n.a != 93)
+ throw T(new Ce(Pe((Ee(), HB))));
+ }
+ if (n.c != 0 || n.a != 45 || t == 45 && r)
+ jc(f, t, t);
+ else {
+ if (Qe(n), (l = n.c) == 1)
+ throw T(new Ce(Pe((Ee(), jA))));
+ if (l == 0 && n.a == 93)
+ jc(f, t, t), jc(f, 45, 45);
+ else {
+ if (l == 0 && n.a == 93 || l == 24)
+ throw T(new Ce(Pe((Ee(), HB))));
+ if (o = n.a, l == 0) {
+ if (o == 91)
+ throw T(new Ce(Pe((Ee(), Gtn))));
+ if (o == 93)
+ throw T(new Ce(Pe((Ee(), ztn))));
+ if (o == 45)
+ throw T(new Ce(Pe((Ee(), HB))));
+ } else
+ l == 10 && (o = ZY(n));
+ if (Qe(n), t > o)
+ throw T(new Ce(Pe((Ee(), Vqn))));
+ jc(f, t, o);
+ }
+ }
+ }
+ r = !1;
+ }
+ if (n.c == 1)
+ throw T(new Ce(Pe((Ee(), jA))));
+ return Jw(f), D6(f), n.b = 0, Qe(n), f;
+ }
+ function TTe(n) {
+ ke(n.c, xe, A(M(tn, 1), q, 2, 6, [Ri, "http://www.w3.org/2001/XMLSchema#decimal"])), ke(n.d, xe, A(M(tn, 1), q, 2, 6, [Ri, "http://www.w3.org/2001/XMLSchema#integer"])), ke(n.e, xe, A(M(tn, 1), q, 2, 6, [Ri, "http://www.w3.org/2001/XMLSchema#boolean"])), ke(n.f, xe, A(M(tn, 1), q, 2, 6, [Ri, "EBoolean", We, "EBoolean:Object"])), ke(n.i, xe, A(M(tn, 1), q, 2, 6, [Ri, "http://www.w3.org/2001/XMLSchema#byte"])), ke(n.g, xe, A(M(tn, 1), q, 2, 6, [Ri, "http://www.w3.org/2001/XMLSchema#hexBinary"])), ke(n.j, xe, A(M(tn, 1), q, 2, 6, [Ri, "EByte", We, "EByte:Object"])), ke(n.n, xe, A(M(tn, 1), q, 2, 6, [Ri, "EChar", We, "EChar:Object"])), ke(n.t, xe, A(M(tn, 1), q, 2, 6, [Ri, "http://www.w3.org/2001/XMLSchema#double"])), ke(n.u, xe, A(M(tn, 1), q, 2, 6, [Ri, "EDouble", We, "EDouble:Object"])), ke(n.F, xe, A(M(tn, 1), q, 2, 6, [Ri, "http://www.w3.org/2001/XMLSchema#float"])), ke(n.G, xe, A(M(tn, 1), q, 2, 6, [Ri, "EFloat", We, "EFloat:Object"])), ke(n.I, xe, A(M(tn, 1), q, 2, 6, [Ri, "http://www.w3.org/2001/XMLSchema#int"])), ke(n.J, xe, A(M(tn, 1), q, 2, 6, [Ri, "EInt", We, "EInt:Object"])), ke(n.N, xe, A(M(tn, 1), q, 2, 6, [Ri, "http://www.w3.org/2001/XMLSchema#long"])), ke(n.O, xe, A(M(tn, 1), q, 2, 6, [Ri, "ELong", We, "ELong:Object"])), ke(n.Z, xe, A(M(tn, 1), q, 2, 6, [Ri, "http://www.w3.org/2001/XMLSchema#short"])), ke(n.$, xe, A(M(tn, 1), q, 2, 6, [Ri, "EShort", We, "EShort:Object"])), ke(n._, xe, A(M(tn, 1), q, 2, 6, [Ri, "http://www.w3.org/2001/XMLSchema#string"]));
+ }
+ function MTe(n) {
+ var e, t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se;
+ if (n.c.length == 1)
+ return Ln(0, n.c.length), u(n.c[0], 135);
+ if (n.c.length <= 0)
+ return new AC();
+ for (h = new E(n); h.a < h.c.c.length; ) {
+ for (o = u(y(h), 135), $ = 0, v = nt, m = nt, g = Bi, p = Bi, S = _e(o.b, 0); S.b != S.d.c; )
+ C = u(Re(S), 86), $ += u(k(C, (n0(), jP)), 19).a, v = j.Math.min(v, C.e.a), m = j.Math.min(m, C.e.b), g = j.Math.max(g, C.e.a + C.f.a), p = j.Math.max(p, C.e.b + C.f.b);
+ H(o, (n0(), jP), Q($)), H(o, (uc(), zm), new fn(v, m)), H(o, sy, new fn(g, p));
+ }
+ for (Pn(), wi(n, new fgn()), _ = new AC(), Pr(_, (Ln(0, n.c.length), u(n.c[0], 94))), d = 0, zn = 0, l = new E(n); l.a < l.c.c.length; )
+ o = u(y(l), 135), U = ji(Qr(u(k(o, (uc(), sy)), 8)), u(k(o, zm), 8)), d = j.Math.max(d, U.a), zn += U.a * U.b;
+ for (d = j.Math.max(d, j.Math.sqrt(zn) * K(Y(k(_, (n0(), eYn))))), en = K(Y(k(_, Con))), Wn = 0, se = 0, a = 0, e = en, f = new E(n); f.a < f.c.c.length; )
+ o = u(y(f), 135), U = ji(Qr(u(k(o, (uc(), sy)), 8)), u(k(o, zm), 8)), Wn + U.a > d && (Wn = 0, se += a + en, a = 0), L9e(_, o, Wn, se), e = j.Math.max(e, Wn + U.a), a = j.Math.max(a, U.b), Wn += U.a + en;
+ for (x = new we(), t = new we(), wn = new E(n); wn.a < wn.c.c.length; )
+ for (ln = u(y(wn), 135), i = on(sn(k(ln, (Xe(), py)))), O = ln.q ? ln.q : ph, c = O.vc().Kc(); c.Ob(); )
+ r = u(c.Pb(), 42), zu(x, r.cd()) ? B(u(r.cd(), 146).wg()) !== B(r.dd()) && (i && zu(t, r.cd()) ? (Zf(), "" + u(r.cd(), 146).tg()) : (it(x, u(r.cd(), 146), r.dd()), H(_, u(r.cd(), 146), r.dd()), i && it(t, u(r.cd(), 146), r.dd()))) : (it(x, u(r.cd(), 146), r.dd()), H(_, u(r.cd(), 146), r.dd()));
+ return _;
+ }
+ function R_n() {
+ R_n = N, yL(), Ne = new Dd(), Tn(Ne, (J(), Do), Ef), Tn(Ne, eo, Ef), Tn(Ne, Su, Ef), Tn(Ne, $o, Ef), Tn(Ne, cu, Ef), Tn(Ne, Pu, Ef), Tn(Ne, $o, Do), Tn(Ne, Ef, $s), Tn(Ne, Do, $s), Tn(Ne, eo, $s), Tn(Ne, Su, $s), Tn(Ne, ru, $s), Tn(Ne, $o, $s), Tn(Ne, cu, $s), Tn(Ne, Pu, $s), Tn(Ne, qc, $s), Tn(Ne, Ef, ds), Tn(Ne, Do, ds), Tn(Ne, $s, ds), Tn(Ne, eo, ds), Tn(Ne, Su, ds), Tn(Ne, ru, ds), Tn(Ne, $o, ds), Tn(Ne, qc, ds), Tn(Ne, bs, ds), Tn(Ne, cu, ds), Tn(Ne, vu, ds), Tn(Ne, Pu, ds), Tn(Ne, Do, eo), Tn(Ne, Su, eo), Tn(Ne, $o, eo), Tn(Ne, Pu, eo), Tn(Ne, Do, Su), Tn(Ne, eo, Su), Tn(Ne, $o, Su), Tn(Ne, Su, Su), Tn(Ne, cu, Su), Tn(Ne, Ef, Fs), Tn(Ne, Do, Fs), Tn(Ne, $s, Fs), Tn(Ne, ds, Fs), Tn(Ne, eo, Fs), Tn(Ne, Su, Fs), Tn(Ne, ru, Fs), Tn(Ne, $o, Fs), Tn(Ne, bs, Fs), Tn(Ne, qc, Fs), Tn(Ne, Pu, Fs), Tn(Ne, cu, Fs), Tn(Ne, Pc, Fs), Tn(Ne, Ef, bs), Tn(Ne, Do, bs), Tn(Ne, $s, bs), Tn(Ne, eo, bs), Tn(Ne, Su, bs), Tn(Ne, ru, bs), Tn(Ne, $o, bs), Tn(Ne, qc, bs), Tn(Ne, Pu, bs), Tn(Ne, vu, bs), Tn(Ne, Pc, bs), Tn(Ne, Do, qc), Tn(Ne, eo, qc), Tn(Ne, Su, qc), Tn(Ne, $o, qc), Tn(Ne, bs, qc), Tn(Ne, Pu, qc), Tn(Ne, cu, qc), Tn(Ne, Ef, iu), Tn(Ne, Do, iu), Tn(Ne, $s, iu), Tn(Ne, eo, iu), Tn(Ne, Su, iu), Tn(Ne, ru, iu), Tn(Ne, $o, iu), Tn(Ne, qc, iu), Tn(Ne, Pu, iu), Tn(Ne, Do, cu), Tn(Ne, $s, cu), Tn(Ne, ds, cu), Tn(Ne, Su, cu), Tn(Ne, Ef, vu), Tn(Ne, Do, vu), Tn(Ne, ds, vu), Tn(Ne, eo, vu), Tn(Ne, Su, vu), Tn(Ne, ru, vu), Tn(Ne, $o, vu), Tn(Ne, $o, Pc), Tn(Ne, Su, Pc), Tn(Ne, qc, Ef), Tn(Ne, qc, eo), Tn(Ne, qc, $s), Tn(Ne, ru, Ef), Tn(Ne, ru, Do), Tn(Ne, ru, ds);
+ }
+ function AM(n, e) {
+ switch (n.e) {
+ case 0:
+ case 2:
+ case 4:
+ case 6:
+ case 42:
+ case 44:
+ case 46:
+ case 48:
+ case 8:
+ case 10:
+ case 12:
+ case 14:
+ case 16:
+ case 18:
+ case 20:
+ case 22:
+ case 24:
+ case 26:
+ case 28:
+ case 30:
+ case 32:
+ case 34:
+ case 36:
+ case 38:
+ return new _Tn(n.b, n.a, e, n.c);
+ case 1:
+ return new hE(n.a, e, yt(e.Tg(), n.c));
+ case 43:
+ return new Lyn(n.a, e, yt(e.Tg(), n.c));
+ case 3:
+ return new Yt(n.a, e, yt(e.Tg(), n.c));
+ case 45:
+ return new fu(n.a, e, yt(e.Tg(), n.c));
+ case 41:
+ return new Wu(u(Hs(n.c), 26), n.a, e, yt(e.Tg(), n.c));
+ case 50:
+ return new RIn(u(Hs(n.c), 26), n.a, e, yt(e.Tg(), n.c));
+ case 5:
+ return new yU(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 47:
+ return new Wjn(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 7:
+ return new V(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 49:
+ return new g2(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 9:
+ return new Byn(n.a, e, yt(e.Tg(), n.c));
+ case 11:
+ return new Nyn(n.a, e, yt(e.Tg(), n.c));
+ case 13:
+ return new $z(n.a, e, yt(e.Tg(), n.c));
+ case 15:
+ return new ME(n.a, e, yt(e.Tg(), n.c));
+ case 17:
+ return new Ryn(n.a, e, yt(e.Tg(), n.c));
+ case 19:
+ return new Aw(n.a, e, yt(e.Tg(), n.c));
+ case 21:
+ return new Dz(n.a, e, yt(e.Tg(), n.c));
+ case 23:
+ return new v8(n.a, e, yt(e.Tg(), n.c));
+ case 25:
+ return new Qjn(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 27:
+ return new Fn(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 29:
+ return new Vjn(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 31:
+ return new Xjn(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 33:
+ return new EU(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 35:
+ return new jU(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 37:
+ return new tD(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 39:
+ return new zE(n.a, e, yt(e.Tg(), n.c), n.d.n);
+ case 40:
+ return new Ft(e, yt(e.Tg(), n.c));
+ default:
+ throw T(new _r("Unknown feature style: " + n.e));
+ }
+ }
+ function ATe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U;
+ switch (le(t, "Brandes & Koepf node placement", 1), n.a = e, n.c = kye(e), i = u(k(e, (nn(), K_)), 274), p = on(sn(k(e, Dm))), n.d = i == (A7(), LS) && !p || i == p_, cEe(n, e), _ = null, U = null, S = null, $ = null, C = (is(4, Ib), new Ic(4)), u(k(e, K_), 274).g) {
+ case 3:
+ S = new tg(e, n.c.d, (ef(), Ya), (Ff(), I1)), C.c[C.c.length] = S;
+ break;
+ case 1:
+ $ = new tg(e, n.c.d, (ef(), kf), (Ff(), I1)), C.c[C.c.length] = $;
+ break;
+ case 4:
+ _ = new tg(e, n.c.d, (ef(), Ya), (Ff(), A0)), C.c[C.c.length] = _;
+ break;
+ case 2:
+ U = new tg(e, n.c.d, (ef(), kf), (Ff(), A0)), C.c[C.c.length] = U;
+ break;
+ default:
+ S = new tg(e, n.c.d, (ef(), Ya), (Ff(), I1)), $ = new tg(e, n.c.d, kf, I1), _ = new tg(e, n.c.d, Ya, A0), U = new tg(e, n.c.d, kf, A0), C.c[C.c.length] = _, C.c[C.c.length] = U, C.c[C.c.length] = S, C.c[C.c.length] = $;
+ }
+ for (r = new ekn(e, n.c), f = new E(C); f.a < f.c.c.length; )
+ c = u(y(f), 180), dTe(r, c, n.b), Qye(c);
+ for (g = new FFn(e, n.c), h = new E(C); h.a < h.c.c.length; )
+ c = u(y(h), 180), fCe(g, c);
+ if (t.n)
+ for (l = new E(C); l.a < l.c.c.length; )
+ c = u(y(l), 180), oa(t, c + " size is " + Nx(c));
+ if (d = null, n.d && (a = RCe(n, C, n.c.d), kRn(e, a, t) && (d = a)), !d)
+ for (l = new E(C); l.a < l.c.c.length; )
+ c = u(y(l), 180), kRn(e, c, t) && (!d || Nx(d) > Nx(c)) && (d = c);
+ for (!d && (d = (Ln(0, C.c.length), u(C.c[0], 180))), m = new E(e.b); m.a < m.c.c.length; )
+ for (v = u(y(m), 29), x = new E(v.a); x.a < x.c.c.length; )
+ O = u(y(x), 10), O.n.b = K(d.p[O.p]) + K(d.d[O.p]);
+ for (t.n && (oa(t, "Chosen node placement: " + d), oa(t, "Blocks: " + _Ln(d)), oa(t, "Classes: " + Kme(d, t)), oa(t, "Marked edges: " + n.b)), o = new E(C); o.a < o.c.c.length; )
+ c = u(y(o), 180), c.g = null, c.b = null, c.a = null, c.d = null, c.j = null, c.i = null, c.p = null;
+ vbe(n.c), n.b.a.$b(), ce(t);
+ }
+ function STe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn;
+ for (o = new Ct(), _ = u(k(t, (nn(), ls)), 103), v = 0, Xi(o, (!e.a && (e.a = new V(Pt, e, 10, 11)), e.a)); o.b != 0; )
+ l = u(o.b == 0 ? null : (ne(o.b != 0), Cs(o, o.a.a)), 33), (B(hn(e, xl)) !== B((Bh(), Ll)) || B(hn(e, Vb)) === B((Ia(), Em)) || B(hn(e, Vb)) === B((Ia(), jm)) || on(sn(hn(e, Xb))) || B(hn(e, kp)) !== B((Gd(), yg))) && !on(sn(hn(l, D_))) && gr(l, (G(), bc), Q(v++)), C = !on(sn(hn(l, Qa))), C && (d = (!l.a && (l.a = new V(Pt, l, 10, 11)), l.a).i != 0, p = Ove(l), g = B(hn(l, Qb)) === B((Rh(), F1)), Wn = !ga(l, (Xe(), Zm)) || An(Te(hn(l, Zm)), Jn), O = null, Wn && g && (d || p) && (O = sRn(l), H(O, ls, _), ai(O, Yk) && B9n(new AQ(K(Y(k(O, Yk)))), O), u(hn(l, Va), 174).gc() != 0 && (a = O, Rt(new $n(null, (!l.c && (l.c = new V(Ru, l, 9, 9)), new xn(l.c, 16))), new d5n(a)), ZNn(l, O))), U = t, en = u(te(n.a, At(l)), 10), en && (U = en.e), $ = u_n(n, l, U), O && ($.e = O, O.e = $, Xi(o, (!l.a && (l.a = new V(Pt, l, 10, 11)), l.a))));
+ for (v = 0, Ht(o, e, o.c.b, o.c); o.b != 0; ) {
+ for (c = u(o.b == 0 ? null : (ne(o.b != 0), Cs(o, o.a.a)), 33), h = new ie((!c.b && (c.b = new V(bi, c, 12, 3)), c.b)); h.e != h.i.gc(); )
+ f = u(oe(h), 79), TBn(f), (B(hn(e, xl)) !== B((Bh(), Ll)) || B(hn(e, Vb)) === B((Ia(), Em)) || B(hn(e, Vb)) === B((Ia(), jm)) || on(sn(hn(e, Xb))) || B(hn(e, kp)) !== B((Gd(), yg))) && gr(f, (G(), bc), Q(v++)), wn = Ir(u(D((!f.b && (f.b = new Fn(he, f, 4, 7)), f.b), 0), 82)), zn = Ir(u(D((!f.c && (f.c = new Fn(he, f, 5, 8)), f.c), 0), 82)), !(on(sn(hn(f, Qa))) || on(sn(hn(wn, Qa))) || on(sn(hn(zn, Qa)))) && (m = Yd(f) && on(sn(hn(wn, Jb))) && on(sn(hn(f, Xa))), x = c, m || fb(zn, wn) ? x = wn : fb(wn, zn) && (x = zn), U = t, en = u(te(n.a, x), 10), en && (U = en.e), S = GZ(n, f, x, U), H(S, (G(), aun), Y8e(n, f, e, t)));
+ if (g = B(hn(c, Qb)) === B((Rh(), F1)), g)
+ for (r = new ie((!c.a && (c.a = new V(Pt, c, 10, 11)), c.a)); r.e != r.i.gc(); )
+ i = u(oe(r), 33), Wn = !ga(i, (Xe(), Zm)) || An(Te(hn(i, Zm)), Jn), ln = B(hn(i, Qb)) === B(F1), Wn && ln && Ht(o, i, o.c.b, o.c);
+ }
+ }
+ function PTe(n, e, t, i, r, c) {
+ var o, f, h, l, a, d, g, p, v, m, C, S;
+ switch (e) {
+ case 71:
+ f = i.q.getFullYear() - Cl >= -1900 ? 1 : 0, t >= 4 ? De(n, A(M(tn, 1), q, 2, 6, [eKn, tKn])[f]) : De(n, A(M(tn, 1), q, 2, 6, ["BC", "AD"])[f]);
+ break;
+ case 121:
+ kpe(n, t, i);
+ break;
+ case 77:
+ Cke(n, t, i);
+ break;
+ case 107:
+ h = r.q.getHours(), h == 0 ? sh(n, 24, t) : sh(n, h, t);
+ break;
+ case 83:
+ z9e(n, t, r);
+ break;
+ case 69:
+ a = i.q.getDay(), t == 5 ? De(n, A(M(tn, 1), q, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[a]) : t == 4 ? De(n, A(M(tn, 1), q, 2, 6, [KL, HL, qL, GL, zL, UL, WL])[a]) : De(n, A(M(tn, 1), q, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[a]);
+ break;
+ case 97:
+ r.q.getHours() >= 12 && r.q.getHours() < 24 ? De(n, A(M(tn, 1), q, 2, 6, ["AM", "PM"])[1]) : De(n, A(M(tn, 1), q, 2, 6, ["AM", "PM"])[0]);
+ break;
+ case 104:
+ d = r.q.getHours() % 12, d == 0 ? sh(n, 12, t) : sh(n, d, t);
+ break;
+ case 75:
+ g = r.q.getHours() % 12, sh(n, g, t);
+ break;
+ case 72:
+ p = r.q.getHours(), sh(n, p, t);
+ break;
+ case 99:
+ v = i.q.getDay(), t == 5 ? De(n, A(M(tn, 1), q, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[v]) : t == 4 ? De(n, A(M(tn, 1), q, 2, 6, [KL, HL, qL, GL, zL, UL, WL])[v]) : t == 3 ? De(n, A(M(tn, 1), q, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[v]) : sh(n, v, 1);
+ break;
+ case 76:
+ m = i.q.getMonth(), t == 5 ? De(n, A(M(tn, 1), q, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[m]) : t == 4 ? De(n, A(M(tn, 1), q, 2, 6, [IL, OL, DL, $L, V2, FL, xL, LL, NL, BL, RL, _L])[m]) : t == 3 ? De(n, A(M(tn, 1), q, 2, 6, ["Jan", "Feb", "Mar", "Apr", V2, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[m]) : sh(n, m + 1, t);
+ break;
+ case 81:
+ C = i.q.getMonth() / 3 | 0, t < 4 ? De(n, A(M(tn, 1), q, 2, 6, ["Q1", "Q2", "Q3", "Q4"])[C]) : De(n, A(M(tn, 1), q, 2, 6, ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"])[C]);
+ break;
+ case 100:
+ S = i.q.getDate(), sh(n, S, t);
+ break;
+ case 109:
+ l = r.q.getMinutes(), sh(n, l, t);
+ break;
+ case 115:
+ o = r.q.getSeconds(), sh(n, o, t);
+ break;
+ case 122:
+ t < 4 ? De(n, c.c[0]) : De(n, c.c[1]);
+ break;
+ case 118:
+ De(n, c.b);
+ break;
+ case 90:
+ t < 3 ? De(n, F6e(c)) : t == 3 ? De(n, N6e(c)) : De(n, B6e(c.a));
+ break;
+ default:
+ return !1;
+ }
+ return !0;
+ }
+ function GZ(n, e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye;
+ if (TBn(e), h = u(D((!e.b && (e.b = new Fn(he, e, 4, 7)), e.b), 0), 82), a = u(D((!e.c && (e.c = new Fn(he, e, 5, 8)), e.c), 0), 82), f = Ir(h), l = Ir(a), o = (!e.a && (e.a = new V(Tt, e, 6, 6)), e.a).i == 0 ? null : u(D((!e.a && (e.a = new V(Tt, e, 6, 6)), e.a), 0), 202), en = u(te(n.a, f), 10), Wn = u(te(n.a, l), 10), ln = null, se = null, I(h, 186) && (U = u(te(n.a, h), 299), I(U, 11) ? ln = u(U, 11) : I(U, 10) && (en = u(U, 10), ln = u(un(en.j, 0), 11))), I(a, 186) && (zn = u(te(n.a, a), 299), I(zn, 11) ? se = u(zn, 11) : I(zn, 10) && (Wn = u(zn, 10), se = u(un(Wn.j, 0), 11))), !en || !Wn)
+ throw T(new Gv("The source or the target of edge " + e + " could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));
+ for (m = new Id(), Pr(m, e), H(m, (G(), rt), e), H(m, (nn(), Mr), null), p = u(k(i, Ac), 21), en == Wn && p.Fc((or(), Mm)), ln || (_ = (ur(), Lc), wn = null, o && Cw(u(k(en, Nt), 98)) && (wn = new fn(o.j, o.k), xAn(wn, S8(e)), lSn(wn, t), fb(l, f) && (_ = Au, st(wn, en.n))), ln = ERn(en, wn, _, i)), se || (_ = (ur(), Au), Ye = null, o && Cw(u(k(Wn, Nt), 98)) && (Ye = new fn(o.b, o.c), xAn(Ye, S8(e)), lSn(Ye, t)), se = ERn(Wn, Ye, _, qi(Wn))), Ki(m, ln), Ti(m, se), (ln.e.c.length > 1 || ln.g.c.length > 1 || se.e.c.length > 1 || se.g.c.length > 1) && p.Fc((or(), Tm)), g = new ie((!e.n && (e.n = new V(Rr, e, 1, 7)), e.n)); g.e != g.i.gc(); )
+ if (d = u(oe(g), 137), !on(sn(hn(d, Qa))) && d.a)
+ switch (C = EF(d), W(m.b, C), u(k(C, Jf), 272).g) {
+ case 1:
+ case 2:
+ p.Fc((or(), uv));
+ break;
+ case 0:
+ p.Fc((or(), cv)), H(C, Jf, (sf(), yv));
+ }
+ if (c = u(k(i, Om), 314), S = u(k(i, tP), 315), r = c == (F2(), qk) || S == (b6(), nK), o && (!o.a && (o.a = new Yt(to, o, 5)), o.a).i != 0 && r) {
+ for ($ = I7(o), v = new ou(), x = _e($, 0); x.b != x.d.c; )
+ O = u(Re(x), 8), Ke(v, new kr(O));
+ H(m, gun, v);
+ }
+ return m;
+ }
+ function ITe(n) {
+ n.gb || (n.gb = !0, n.b = Yr(n, 0), St(n.b, 18), bt(n.b, 19), n.a = Yr(n, 1), St(n.a, 1), bt(n.a, 2), bt(n.a, 3), bt(n.a, 4), bt(n.a, 5), n.o = Yr(n, 2), St(n.o, 8), St(n.o, 9), bt(n.o, 10), bt(n.o, 11), bt(n.o, 12), bt(n.o, 13), bt(n.o, 14), bt(n.o, 15), bt(n.o, 16), bt(n.o, 17), bt(n.o, 18), bt(n.o, 19), bt(n.o, 20), bt(n.o, 21), bt(n.o, 22), bt(n.o, 23), Cr(n.o), Cr(n.o), Cr(n.o), Cr(n.o), Cr(n.o), Cr(n.o), Cr(n.o), Cr(n.o), Cr(n.o), Cr(n.o), n.p = Yr(n, 3), St(n.p, 2), St(n.p, 3), St(n.p, 4), St(n.p, 5), bt(n.p, 6), bt(n.p, 7), Cr(n.p), Cr(n.p), n.q = Yr(n, 4), St(n.q, 8), n.v = Yr(n, 5), bt(n.v, 9), Cr(n.v), Cr(n.v), Cr(n.v), n.w = Yr(n, 6), St(n.w, 2), St(n.w, 3), St(n.w, 4), bt(n.w, 5), n.B = Yr(n, 7), bt(n.B, 1), Cr(n.B), Cr(n.B), Cr(n.B), n.Q = Yr(n, 8), bt(n.Q, 0), Cr(n.Q), n.R = Yr(n, 9), St(n.R, 1), n.S = Yr(n, 10), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), Cr(n.S), n.T = Yr(n, 11), bt(n.T, 10), bt(n.T, 11), bt(n.T, 12), bt(n.T, 13), bt(n.T, 14), Cr(n.T), Cr(n.T), n.U = Yr(n, 12), St(n.U, 2), St(n.U, 3), bt(n.U, 4), bt(n.U, 5), bt(n.U, 6), bt(n.U, 7), Cr(n.U), n.V = Yr(n, 13), bt(n.V, 10), n.W = Yr(n, 14), St(n.W, 18), St(n.W, 19), St(n.W, 20), bt(n.W, 21), bt(n.W, 22), bt(n.W, 23), n.bb = Yr(n, 15), St(n.bb, 10), St(n.bb, 11), St(n.bb, 12), St(n.bb, 13), St(n.bb, 14), St(n.bb, 15), St(n.bb, 16), bt(n.bb, 17), Cr(n.bb), Cr(n.bb), n.eb = Yr(n, 16), St(n.eb, 2), St(n.eb, 3), St(n.eb, 4), St(n.eb, 5), St(n.eb, 6), St(n.eb, 7), bt(n.eb, 8), bt(n.eb, 9), n.ab = Yr(n, 17), St(n.ab, 0), St(n.ab, 1), n.H = Yr(n, 18), bt(n.H, 0), bt(n.H, 1), bt(n.H, 2), bt(n.H, 3), bt(n.H, 4), bt(n.H, 5), Cr(n.H), n.db = Yr(n, 19), bt(n.db, 2), n.c = ze(n, 20), n.d = ze(n, 21), n.e = ze(n, 22), n.f = ze(n, 23), n.i = ze(n, 24), n.g = ze(n, 25), n.j = ze(n, 26), n.k = ze(n, 27), n.n = ze(n, 28), n.r = ze(n, 29), n.s = ze(n, 30), n.t = ze(n, 31), n.u = ze(n, 32), n.fb = ze(n, 33), n.A = ze(n, 34), n.C = ze(n, 35), n.D = ze(n, 36), n.F = ze(n, 37), n.G = ze(n, 38), n.I = ze(n, 39), n.J = ze(n, 40), n.L = ze(n, 41), n.M = ze(n, 42), n.N = ze(n, 43), n.O = ze(n, 44), n.P = ze(n, 45), n.X = ze(n, 46), n.Y = ze(n, 47), n.Z = ze(n, 48), n.$ = ze(n, 49), n._ = ze(n, 50), n.cb = ze(n, 51), n.K = ze(n, 52));
+ }
+ function Xe() {
+ Xe = N;
+ var n, e;
+ Zm = new kt(zHn), kv = new kt(UHn), Ufn = (oh(), HK), HZn = new In(Oen, Ufn), Tp = new In(ep, null), qZn = new kt(Ttn), Xfn = (mb(), pt(zK, A(M(UK, 1), z, 291, 0, [GK]))), LP = new In(sA, Xfn), py = new In(mk, (qn(), !1)), Vfn = (sr(), mh), S0 = new In(Fen, Vfn), Yfn = (Kh(), rH), Jfn = new In(pk, Yfn), ehn = new In(dA, !1), thn = (Rh(), HP), Bg = new In(uA, thn), ahn = new md(12), ed = new In(s0, ahn), NP = new In(lk, !1), ihn = new In(cB, !1), ky = new In(G6, !1), phn = (Ai(), Hl), n9 = new In(CN, phn), Mp = new kt(oA), _P = new kt(hk), tH = new kt(HM), iH = new kt(q6), rhn = new ou(), Rg = new In(qen, rhn), zZn = new In(Uen, !1), UZn = new In(Wen, !1), chn = new Bv(), my = new In(Ven, chn), RP = new In(Pen, !1), QZn = new In(WHn, 1), new In(XHn, !0), Q(0), new In(VHn, Q(100)), new In(QHn, !1), Q(0), new In(JHn, Q(4e3)), Q(0), new In(YHn, Q(400)), new In(ZHn, !1), new In(nqn, !1), new In(eqn, !0), new In(tqn, !1), Wfn = (AT(), oH), GZn = new In(Ctn, Wfn), JZn = new In(pen, 10), YZn = new In(ven, 10), yhn = new In(vN, 20), ZZn = new In(men, 10), jhn = new In(EN, 2), nne = new In(ken, 10), Ehn = new In(yen, 0), KP = new In(Cen, 5), Chn = new In(jen, 1), Thn = new In(Een, 1), td = new In($b, 20), ene = new In(Ten, 10), Shn = new In(Men, 10), Ap = new kt(Aen), Ahn = new syn(), Mhn = new In(Qen, Ahn), XZn = new kt(rB), dhn = !1, WZn = new In(iB, dhn), shn = new md(5), uhn = new In(xen, shn), ohn = (Eb(), e = u(xo(lr), 9), new ms(e, u(bo(e, e.length), 9), 0)), _g = new In($4, ohn), whn = (qw(), Kl), bhn = new In(Ben, whn), JK = new kt(Ren), YK = new kt(_en), ZK = new kt(Ken), QK = new kt(Hen), fhn = (n = u(xo(o9), 9), new ms(n, u(bo(n, n.length), 9), 0)), nd = new In(hg, fhn), lhn = Cn((xu(), Tv)), Rl = new In(tp, lhn), hhn = new fn(0, 0), Kg = new In(ip, hhn), BP = new In(tB, !1), Qfn = (sf(), yv), XK = new In(Gen, Qfn), WK = new In(qM, !1), Q(1), new In(iqn, null), ghn = new kt(Xen), nH = new kt(zen), khn = (J(), Xr), Hg = new In(Ien, khn), Bu = new kt(Sen), vhn = (Tu(), Cn(ql)), cw = new In(F4, vhn), eH = new In(Len, !1), mhn = new In(Nen, !0), vy = new In(Den, !1), VK = new In($en, !1), Zfn = new In(mN, 1), nhn = (ZT(), uH), new In(rqn, nhn), VZn = !0;
+ }
+ function G() {
+ G = N;
+ var n, e;
+ rt = new kt(Ann), aun = new kt("coordinateOrigin"), S_ = new kt("processors"), lun = new ri("compoundNode", (qn(), !1)), Wk = new ri("insideConnections", !1), gun = new kt("originalBendpoints"), pun = new kt("originalDummyNodePosition"), vun = new kt("originalLabelEdge"), Vk = new kt("representedLabels"), Am = new kt("endLabels"), wp = new kt("endLabel.origin"), pp = new ri("labelSide", (cs(), Ey)), Sg = new ri("maxEdgeThickness", 0), mf = new ri("reversed", !1), vp = new kt(_Kn), Xo = new ri("longEdgeSource", null), Js = new ri("longEdgeTarget", null), Ub = new ri("longEdgeHasLabelDummies", !1), Xk = new ri("longEdgeBeforeLabelDummy", !1), HS = new ri("edgeConstraint", (ja(), l_)), k0 = new kt("inLayerLayoutUnit"), Ua = new ri("inLayerConstraint", (Lh(), zk)), gp = new ri("inLayerSuccessorConstraint", new X()), wun = new ri("inLayerSuccessorConstraintBetweenNonDummies", !1), Mu = new kt("portDummy"), KS = new ri("crossingHint", Q(0)), Ac = new ri("graphProperties", (e = u(xo(v_), 9), new ms(e, u(bo(e, e.length), 9), 0))), ec = new ri("externalPortSide", (J(), Xr)), bun = new ri("externalPortSize", new Li()), E_ = new kt("externalPortReplacedDummies"), qS = new kt("externalPortReplacedDummy"), zb = new ri("externalPortConnections", (n = u(xo(Yi), 9), new ms(n, u(bo(n, n.length), 9), 0))), y0 = new ri(DKn, 0), hun = new kt("barycenterAssociates"), mp = new kt("TopSideComments"), bp = new kt("BottomSideComments"), _S = new kt("CommentConnectionPort"), T_ = new ri("inputCollect", !1), A_ = new ri("outputCollect", !1), Uk = new ri("cyclic", !1), dun = new kt("crossHierarchyMap"), I_ = new kt("targetOffset"), new ri("splineLabelSize", new Li()), Ig = new kt("spacings"), GS = new ri("partitionConstraint", !1), v0 = new kt("breakingPoint.info"), yun = new kt("splines.survivingEdge"), Wa = new kt("splines.route.start"), Og = new kt("splines.edgeChain"), kun = new kt("originalPortConstraints"), ov = new kt("selfLoopHolder"), fv = new kt("splines.nsPortY"), bc = new kt("modelOrder"), M_ = new kt("longEdgeTargetNode"), m0 = new ri(dHn, !1), Pg = new ri(dHn, !1), C_ = new kt("layerConstraints.hiddenNodes"), mun = new kt("layerConstraints.opposidePort"), P_ = new kt("targetNode.modelOrder");
+ }
+ function zZ() {
+ zZ = N, Dun = (V8(), $S), QXn = new In(xnn, Dun), oVn = new In(Lnn, (qn(), !1)), Bun = (kC(), j_), dVn = new In(WM, Bun), SVn = new In(Nnn, !1), PVn = new In(Bnn, !0), TXn = new In(Rnn, !1), Uun = (z8(), iK), GVn = new In(_nn, Uun), Q(1), YVn = new In(Knn, Q(7)), ZVn = new In(Hnn, !1), fVn = new In(qnn, !1), Oun = (Ia(), f_), VXn = new In(IN, Oun), Kun = (JT(), Q_), AVn = new In(wk, Kun), Run = (As(), Qk), mVn = new In(Gnn, Run), Q(-1), vVn = new In(znn, Q(-1)), Q(-1), kVn = new In(Unn, Q(-1)), Q(-1), yVn = new In(ON, Q(4)), Q(-1), EVn = new In(DN, Q(2)), _un = (Zw(), hP), MVn = new In($N, _un), Q(0), TVn = new In(FN, Q(0)), gVn = new In(xN, Q(nt)), Iun = (F2(), ap), XXn = new In(X6, Iun), xXn = new In(Wnn, !1), HXn = new In(LN, 0.1), UXn = new In(NN, !1), Q(-1), GXn = new In(Xnn, Q(-1)), Q(-1), zXn = new In(Vnn, Q(-1)), Q(0), LXn = new In(Qnn, Q(40)), Pun = (H3(), k_), _Xn = new In(BN, Pun), Sun = Gk, NXn = new In(XM, Sun), zun = (b6(), Lm), qVn = new In(lg, zun), FVn = new kt(VM), Hun = (K8(), xS), IVn = new In(RN, Hun), qun = (A7(), LS), DVn = new In(_N, qun), NVn = new In(KN, 0.3), RVn = new kt(HN), Gun = (gb(), fP), _Vn = new In(qN, Gun), xun = (oT(), cK), eVn = new In(Jnn, xun), Lun = (x8(), uK), tVn = new In(Ynn, Lun), Nun = (V3(), Rm), iVn = new In(QM, Nun), cVn = new In(JM, 0.2), ZXn = new In(GN, 2), XVn = new In(Znn, null), QVn = new In(nen, 10), VVn = new In(een, 10), JVn = new In(ten, 20), Q(0), zVn = new In(ien, Q(0)), Q(0), UVn = new In(ren, Q(0)), Q(0), WVn = new In(cen, Q(0)), MXn = new In(zN, !1), Cun = (f4(), Cm), SXn = new In(uen, Cun), Eun = (OC(), s_), AXn = new In(sen, Eun), lVn = new In(YM, !1), Q(0), hVn = new In(UN, Q(16)), Q(0), aVn = new In(WN, Q(5)), Vun = (dT(), fK), mQn = new In(Xh, Vun), nQn = new In(ZM, 10), iQn = new In(nA, 1), Xun = (VC(), DS), hQn = new In(V6, Xun), uQn = new kt(XN), Wun = Q(1), Q(0), oQn = new In(VN, Wun), Qun = (uT(), oK), EQn = new In(eA, Qun), kQn = new kt(tA), wQn = new In(iA, !0), dQn = new In(rA, 2), pQn = new In(QN, !0), Fun = (eM(), FS), YXn = new In(oen, Fun), $un = (q2(), tv), JXn = new In(fen, $un), Aun = (Bh(), Ll), FXn = new In(cA, Aun), $Xn = new In(hen, !1), Tun = (Gd(), yg), PXn = new In(JN, Tun), Mun = (i6(), J_), DXn = new In(len, Mun), IXn = new In(YN, 0), OXn = new In(ZN, 0), wVn = h_, bVn = qk, jVn = sP, CVn = sP, pVn = V_, qXn = (Rh(), F1), WXn = ap, KXn = ap, BXn = ap, RXn = F1, xVn = Nm, LVn = Lm, OVn = Lm, $Vn = Lm, BVn = eK, HVn = Nm, KVn = Nm, rVn = (Kh(), Sp), uVn = Sp, sVn = Rm, nVn = yy, eQn = gv, tQn = tw, rQn = gv, cQn = tw, lQn = gv, aQn = tw, sQn = o_, fQn = DS, CQn = gv, TQn = tw, yQn = gv, jQn = tw, gQn = tw, bQn = tw, vQn = tw;
+ }
+ function rr() {
+ rr = N, fcn = new Ut("DIRECTION_PREPROCESSOR", 0), ucn = new Ut("COMMENT_PREPROCESSOR", 1), mm = new Ut("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER", 2), WR = new Ut("INTERACTIVE_EXTERNAL_PORT_POSITIONER", 3), Scn = new Ut("PARTITION_PREPROCESSOR", 4), dS = new Ut("LABEL_DUMMY_INSERTER", 5), ES = new Ut("SELF_LOOP_PREPROCESSOR", 6), Y4 = new Ut("LAYER_CONSTRAINT_PREPROCESSOR", 7), Mcn = new Ut("PARTITION_MIDPROCESSOR", 8), pcn = new Ut("HIGH_DEGREE_NODE_LAYER_PROCESSOR", 9), Ccn = new Ut("NODE_PROMOTION", 10), J4 = new Ut("LAYER_CONSTRAINT_POSTPROCESSOR", 11), Acn = new Ut("PARTITION_POSTPROCESSOR", 12), bcn = new Ut("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR", 13), Pcn = new Ut("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR", 14), ncn = new Ut("BREAKING_POINT_INSERTER", 15), pS = new Ut("LONG_EDGE_SPLITTER", 16), XR = new Ut("PORT_SIDE_PROCESSOR", 17), lS = new Ut("INVERTED_PORT_PROCESSOR", 18), kS = new Ut("PORT_LIST_SORTER", 19), Ocn = new Ut("SORT_BY_INPUT_ORDER_OF_MODEL", 20), mS = new Ut("NORTH_SOUTH_PORT_PREPROCESSOR", 21), ecn = new Ut("BREAKING_POINT_PROCESSOR", 22), Tcn = new Ut(cHn, 23), Dcn = new Ut(uHn, 24), yS = new Ut("SELF_LOOP_PORT_RESTORER", 25), Icn = new Ut("SINGLE_EDGE_GRAPH_WRAPPER", 26), aS = new Ut("IN_LAYER_CONSTRAINT_PROCESSOR", 27), lcn = new Ut("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR", 28), jcn = new Ut("LABEL_AND_NODE_SIZE_PROCESSOR", 29), ycn = new Ut("INNERMOST_NODE_MARGIN_CALCULATOR", 30), CS = new Ut("SELF_LOOP_ROUTER", 31), rcn = new Ut("COMMENT_NODE_MARGIN_CALCULATOR", 32), hS = new Ut("END_LABEL_PREPROCESSOR", 33), wS = new Ut("LABEL_DUMMY_SWITCHER", 34), icn = new Ut("CENTER_LABEL_MANAGEMENT_PROCESSOR", 35), Q4 = new Ut("LABEL_SIDE_SELECTOR", 36), mcn = new Ut("HYPEREDGE_DUMMY_MERGER", 37), wcn = new Ut("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR", 38), Ecn = new Ut("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR", 39), km = new Ut("HIERARCHICAL_PORT_POSITION_PROCESSOR", 40), scn = new Ut("CONSTRAINTS_POSTPROCESSOR", 41), ccn = new Ut("COMMENT_POSTPROCESSOR", 42), kcn = new Ut("HYPERNODE_PROCESSOR", 43), gcn = new Ut("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER", 44), gS = new Ut("LONG_EDGE_JOINER", 45), jS = new Ut("SELF_LOOP_POSTPROCESSOR", 46), tcn = new Ut("BREAKING_POINT_REMOVER", 47), vS = new Ut("NORTH_SOUTH_PORT_POSTPROCESSOR", 48), vcn = new Ut("HORIZONTAL_COMPACTOR", 49), bS = new Ut("LABEL_DUMMY_REMOVER", 50), acn = new Ut("FINAL_SPLINE_BENDPOINTS_CALCULATOR", 51), hcn = new Ut("END_LABEL_SORTER", 52), Kk = new Ut("REVERSED_EDGE_RESTORER", 53), fS = new Ut("END_LABEL_POSTPROCESSOR", 54), dcn = new Ut("HIERARCHICAL_NODE_RESIZER", 55), ocn = new Ut("DIRECTION_POSTPROCESSOR", 56);
+ }
+ function OTe(n, e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se, Ye, fi, gs, so, Mf, hI, Ky, y9, Hy, Iv, CH, _ee, TH, _1, F0, Ov, qy, Gy, Fp, MH, j9, Kee, W1n, x0, E9, AH, xp, C9, ww, T9, SH, Hee;
+ for (W1n = 0, Ye = e, so = 0, Ky = Ye.length; so < Ky; ++so)
+ for (Wn = Ye[so], F0 = new E(Wn.j); F0.a < F0.c.c.length; ) {
+ for (_1 = u(y(F0), 11), qy = 0, f = new E(_1.g); f.a < f.c.c.length; )
+ o = u(y(f), 17), Wn.c != o.d.i.c && ++qy;
+ qy > 0 && (n.a[_1.p] = W1n++);
+ }
+ for (C9 = 0, fi = t, Mf = 0, y9 = fi.length; Mf < y9; ++Mf) {
+ for (Wn = fi[Mf], Hy = 0, F0 = new E(Wn.j); F0.a < F0.c.c.length && (_1 = u(y(F0), 11), _1.j == (J(), Kn)); )
+ for (f = new E(_1.e); f.a < f.c.c.length; )
+ if (o = u(y(f), 17), Wn.c != o.c.i.c) {
+ ++Hy;
+ break;
+ }
+ for (CH = 0, Gy = new Ii(Wn.j, Wn.j.c.length); Gy.b > 0; ) {
+ for (_1 = (ne(Gy.b > 0), u(Gy.a.Xb(Gy.c = --Gy.b), 11)), qy = 0, f = new E(_1.e); f.a < f.c.c.length; )
+ o = u(y(f), 17), Wn.c != o.c.i.c && ++qy;
+ qy > 0 && (_1.j == (J(), Kn) ? (n.a[_1.p] = C9, ++C9) : (n.a[_1.p] = C9 + Hy + CH, ++CH));
+ }
+ C9 += CH;
+ }
+ for (Ov = new we(), v = new Ah(), se = e, gs = 0, hI = se.length; gs < hI; ++gs)
+ for (Wn = se[gs], AH = new E(Wn.j); AH.a < AH.c.c.length; )
+ for (E9 = u(y(AH), 11), f = new E(E9.g); f.a < f.c.c.length; )
+ if (o = u(y(f), 17), T9 = o.d, Wn.c != T9.i.c)
+ if (x0 = u(Vr(Sr(Ov.f, E9)), 467), ww = u(Vr(Sr(Ov.f, T9)), 467), !x0 && !ww)
+ p = new Kjn(), v.a.zc(p, v), W(p.a, o), W(p.d, E9), Rc(Ov.f, E9, p), W(p.d, T9), Rc(Ov.f, T9, p);
+ else if (!x0)
+ W(ww.a, o), W(ww.d, E9), Rc(Ov.f, E9, ww);
+ else if (!ww)
+ W(x0.a, o), W(x0.d, T9), Rc(Ov.f, T9, x0);
+ else if (x0 == ww)
+ W(x0.a, o);
+ else {
+ for (W(x0.a, o), TH = new E(ww.d); TH.a < TH.c.c.length; )
+ _ee = u(y(TH), 11), Rc(Ov.f, _ee, x0);
+ Zt(x0.a, ww.a), Zt(x0.d, ww.d), v.a.Bc(ww) != null;
+ }
+ for (m = u(y7(v, F(eMe, { 3: 1, 4: 1, 5: 1, 1946: 1 }, 467, v.a.gc(), 0, 1)), 1946), zn = e[0].c, Kee = t[0].c, a = m, d = 0, g = a.length; d < g; ++d)
+ for (l = a[d], l.e = W1n, l.f = C9, F0 = new E(l.d); F0.a < F0.c.c.length; )
+ _1 = u(y(F0), 11), Fp = n.a[_1.p], _1.i.c == zn ? (Fp < l.e && (l.e = Fp), Fp > l.b && (l.b = Fp)) : _1.i.c == Kee && (Fp < l.f && (l.f = Fp), Fp > l.c && (l.c = Fp));
+ for (A3(m, 0, m.length, null), xp = F(be, Le, 25, m.length, 15, 1), i = F(be, Le, 25, C9 + 1, 15, 1), S = 0; S < m.length; S++)
+ xp[S] = m[S].f, i[xp[S]] = 1;
+ for (c = 0, $ = 0; $ < i.length; $++)
+ i[$] == 1 ? i[$] = c : --c;
+ for (MH = 0, O = 0; O < xp.length; O++)
+ xp[O] += i[xp[O]], MH = j.Math.max(MH, xp[O] + 1);
+ for (h = 1; h < MH; )
+ h *= 2;
+ for (Hee = 2 * h - 1, h -= 1, SH = F(be, Le, 25, Hee, 15, 1), r = 0, ln = 0; ln < xp.length; ln++)
+ for (en = xp[ln] + h, ++SH[en]; en > 0; )
+ en % 2 > 0 && (r += SH[en + 1]), en = (en - 1) / 2 | 0, ++SH[en];
+ for (wn = F(bJn, rn, 362, m.length * 2, 0, 1), x = 0; x < m.length; x++)
+ wn[2 * x] = new nC(m[x], m[x].e, m[x].b, (z5(), Hm)), wn[2 * x + 1] = new nC(m[x], m[x].b, m[x].e, Km);
+ for (A3(wn, 0, wn.length, null), Iv = 0, _ = 0; _ < wn.length; _++)
+ switch (wn[_].d.g) {
+ case 0:
+ ++Iv;
+ break;
+ case 1:
+ --Iv, r += Iv;
+ }
+ for (j9 = F(bJn, rn, 362, m.length * 2, 0, 1), U = 0; U < m.length; U++)
+ j9[2 * U] = new nC(m[U], m[U].f, m[U].c, (z5(), Hm)), j9[2 * U + 1] = new nC(m[U], m[U].c, m[U].f, Km);
+ for (A3(j9, 0, j9.length, null), Iv = 0, C = 0; C < j9.length; C++)
+ switch (j9[C].d.g) {
+ case 0:
+ ++Iv;
+ break;
+ case 1:
+ --Iv, r += Iv;
+ }
+ return r;
+ }
+ function Je() {
+ Je = N, k9 = new ud(7), R1n = new th(8, 94), new th(8, 64), _1n = new th(8, 36), Oee = new th(8, 65), Dee = new th(8, 122), $ee = new th(8, 90), xee = new th(8, 98), Iee = new th(8, 66), Fee = new th(8, 60), Lee = new th(8, 62), B1n = new ud(11), fI = new ns(4), jc(fI, 48, 57), Pv = new ns(4), jc(Pv, 48, 57), jc(Pv, 65, 90), jc(Pv, 95, 95), jc(Pv, 97, 122), $p = new ns(4), jc($p, 9, 9), jc($p, 10, 10), jc($p, 12, 12), jc($p, 13, 13), jc($p, 32, 32), K1n = Ab(fI), q1n = Ab(Pv), H1n = Ab($p), Sv = new we(), m9 = new we(), Pee = A(M(tn, 1), q, 2, 6, ["Cn", "Lu", "Ll", "Lt", "Lm", "Lo", "Mn", "Me", "Mc", "Nd", "Nl", "No", "Zs", "Zl", "Zp", "Cc", "Cf", null, "Co", "Cs", "Pd", "Ps", "Pe", "Pc", "Po", "Sm", "Sc", "Sk", "So", "Pi", "Pf", "L", "M", "N", "Z", "C", "P", "S"]), L1n = A(M(tn, 1), q, 2, 6, ["Basic Latin", "Latin-1 Supplement", "Latin Extended-A", "Latin Extended-B", "IPA Extensions", "Spacing Modifier Letters", "Combining Diacritical Marks", "Greek", "Cyrillic", "Armenian", "Hebrew", "Arabic", "Syriac", "Thaana", "Devanagari", "Bengali", "Gurmukhi", "Gujarati", "Oriya", "Tamil", "Telugu", "Kannada", "Malayalam", "Sinhala", "Thai", "Lao", "Tibetan", "Myanmar", "Georgian", "Hangul Jamo", "Ethiopic", "Cherokee", "Unified Canadian Aboriginal Syllabics", "Ogham", "Runic", "Khmer", "Mongolian", "Latin Extended Additional", "Greek Extended", "General Punctuation", "Superscripts and Subscripts", "Currency Symbols", "Combining Marks for Symbols", "Letterlike Symbols", "Number Forms", "Arrows", "Mathematical Operators", "Miscellaneous Technical", "Control Pictures", "Optical Character Recognition", "Enclosed Alphanumerics", "Box Drawing", "Block Elements", "Geometric Shapes", "Miscellaneous Symbols", "Dingbats", "Braille Patterns", "CJK Radicals Supplement", "Kangxi Radicals", "Ideographic Description Characters", "CJK Symbols and Punctuation", "Hiragana", "Katakana", "Bopomofo", "Hangul Compatibility Jamo", "Kanbun", "Bopomofo Extended", "Enclosed CJK Letters and Months", "CJK Compatibility", "CJK Unified Ideographs Extension A", "CJK Unified Ideographs", "Yi Syllables", "Yi Radicals", "Hangul Syllables", tzn, "CJK Compatibility Ideographs", "Alphabetic Presentation Forms", "Arabic Presentation Forms-A", "Combining Half Marks", "CJK Compatibility Forms", "Small Form Variants", "Arabic Presentation Forms-B", "Specials", "Halfwidth and Fullwidth Forms", "Old Italic", "Gothic", "Deseret", "Byzantine Musical Symbols", "Musical Symbols", "Mathematical Alphanumeric Symbols", "CJK Unified Ideographs Extension B", "CJK Compatibility Ideographs Supplement", "Tags"]), N1n = A(M(be, 1), Le, 25, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]);
+ }
+ function SM() {
+ SM = N, kUn = new Ts("OUT_T_L", 0, (Cu(), Xf), (Qc(), To), (_o(), Zr), Zr, A(M(Qs, 1), rn, 21, 0, [pt((Eb(), Io), A(M(lr, 1), z, 93, 0, [Oo, So]))])), mUn = new Ts("OUT_T_C", 1, Il, To, Zr, xc, A(M(Qs, 1), rn, 21, 0, [pt(Io, A(M(lr, 1), z, 93, 0, [Oo, Yh])), pt(Io, A(M(lr, 1), z, 93, 0, [Oo, Yh, Zs]))])), yUn = new Ts("OUT_T_R", 2, Co, To, Zr, nc, A(M(Qs, 1), rn, 21, 0, [pt(Io, A(M(lr, 1), z, 93, 0, [Oo, Po]))])), lUn = new Ts("OUT_B_L", 3, Xf, Wo, nc, Zr, A(M(Qs, 1), rn, 21, 0, [pt(Io, A(M(lr, 1), z, 93, 0, [no, So]))])), hUn = new Ts("OUT_B_C", 4, Il, Wo, nc, xc, A(M(Qs, 1), rn, 21, 0, [pt(Io, A(M(lr, 1), z, 93, 0, [no, Yh])), pt(Io, A(M(lr, 1), z, 93, 0, [no, Yh, Zs]))])), aUn = new Ts("OUT_B_R", 5, Co, Wo, nc, nc, A(M(Qs, 1), rn, 21, 0, [pt(Io, A(M(lr, 1), z, 93, 0, [no, Po]))])), wUn = new Ts("OUT_L_T", 6, Co, Wo, Zr, Zr, A(M(Qs, 1), rn, 21, 0, [pt(Io, A(M(lr, 1), z, 93, 0, [So, Oo, Zs]))])), bUn = new Ts("OUT_L_C", 7, Co, Ol, xc, Zr, A(M(Qs, 1), rn, 21, 0, [pt(Io, A(M(lr, 1), z, 93, 0, [So, yh])), pt(Io, A(M(lr, 1), z, 93, 0, [So, yh, Zs]))])), dUn = new Ts("OUT_L_B", 8, Co, To, nc, Zr, A(M(Qs, 1), rn, 21, 0, [pt(Io, A(M(lr, 1), z, 93, 0, [So, no, Zs]))])), vUn = new Ts("OUT_R_T", 9, Xf, Wo, Zr, nc, A(M(Qs, 1), rn, 21, 0, [pt(Io, A(M(lr, 1), z, 93, 0, [Po, Oo, Zs]))])), pUn = new Ts("OUT_R_C", 10, Xf, Ol, xc, nc, A(M(Qs, 1), rn, 21, 0, [pt(Io, A(M(lr, 1), z, 93, 0, [Po, yh])), pt(Io, A(M(lr, 1), z, 93, 0, [Po, yh, Zs]))])), gUn = new Ts("OUT_R_B", 11, Xf, To, nc, nc, A(M(Qs, 1), rn, 21, 0, [pt(Io, A(M(lr, 1), z, 93, 0, [Po, no, Zs]))])), oUn = new Ts("IN_T_L", 12, Xf, Wo, Zr, Zr, A(M(Qs, 1), rn, 21, 0, [pt(as, A(M(lr, 1), z, 93, 0, [Oo, So])), pt(as, A(M(lr, 1), z, 93, 0, [Oo, So, Zs]))])), sUn = new Ts("IN_T_C", 13, Il, Wo, Zr, xc, A(M(Qs, 1), rn, 21, 0, [pt(as, A(M(lr, 1), z, 93, 0, [Oo, Yh])), pt(as, A(M(lr, 1), z, 93, 0, [Oo, Yh, Zs]))])), fUn = new Ts("IN_T_R", 14, Co, Wo, Zr, nc, A(M(Qs, 1), rn, 21, 0, [pt(as, A(M(lr, 1), z, 93, 0, [Oo, Po])), pt(as, A(M(lr, 1), z, 93, 0, [Oo, Po, Zs]))])), cUn = new Ts("IN_C_L", 15, Xf, Ol, xc, Zr, A(M(Qs, 1), rn, 21, 0, [pt(as, A(M(lr, 1), z, 93, 0, [yh, So])), pt(as, A(M(lr, 1), z, 93, 0, [yh, So, Zs]))])), rUn = new Ts("IN_C_C", 16, Il, Ol, xc, xc, A(M(Qs, 1), rn, 21, 0, [pt(as, A(M(lr, 1), z, 93, 0, [yh, Yh])), pt(as, A(M(lr, 1), z, 93, 0, [yh, Yh, Zs]))])), uUn = new Ts("IN_C_R", 17, Co, Ol, xc, nc, A(M(Qs, 1), rn, 21, 0, [pt(as, A(M(lr, 1), z, 93, 0, [yh, Po])), pt(as, A(M(lr, 1), z, 93, 0, [yh, Po, Zs]))])), tUn = new Ts("IN_B_L", 18, Xf, To, nc, Zr, A(M(Qs, 1), rn, 21, 0, [pt(as, A(M(lr, 1), z, 93, 0, [no, So])), pt(as, A(M(lr, 1), z, 93, 0, [no, So, Zs]))])), eUn = new Ts("IN_B_C", 19, Il, To, nc, xc, A(M(Qs, 1), rn, 21, 0, [pt(as, A(M(lr, 1), z, 93, 0, [no, Yh])), pt(as, A(M(lr, 1), z, 93, 0, [no, Yh, Zs]))])), iUn = new Ts("IN_B_R", 20, Co, To, nc, nc, A(M(Qs, 1), rn, 21, 0, [pt(as, A(M(lr, 1), z, 93, 0, [no, Po])), pt(as, A(M(lr, 1), z, 93, 0, [no, Po, Zs]))])), TR = new Ts(K6, 21, null, null, null, null, A(M(Qs, 1), rn, 21, 0, []));
+ }
+ function Sn() {
+ Sn = N, lw = (sl(), Nn).b, u(D(R(Nn.b), 0), 34), u(D(R(Nn.b), 1), 18), x1 = Nn.a, u(D(R(Nn.a), 0), 34), u(D(R(Nn.a), 1), 18), u(D(R(Nn.a), 2), 18), u(D(R(Nn.a), 3), 18), u(D(R(Nn.a), 4), 18), Wl = Nn.o, u(D(R(Nn.o), 0), 34), u(D(R(Nn.o), 1), 34), Vne = u(D(R(Nn.o), 2), 18), u(D(R(Nn.o), 3), 18), u(D(R(Nn.o), 4), 18), u(D(R(Nn.o), 5), 18), u(D(R(Nn.o), 6), 18), u(D(R(Nn.o), 7), 18), u(D(R(Nn.o), 8), 18), u(D(R(Nn.o), 9), 18), u(D(R(Nn.o), 10), 18), u(D(R(Nn.o), 11), 18), u(D(R(Nn.o), 12), 18), u(D(R(Nn.o), 13), 18), u(D(R(Nn.o), 14), 18), u(D(R(Nn.o), 15), 18), u(D(ot(Nn.o), 0), 59), u(D(ot(Nn.o), 1), 59), u(D(ot(Nn.o), 2), 59), u(D(ot(Nn.o), 3), 59), u(D(ot(Nn.o), 4), 59), u(D(ot(Nn.o), 5), 59), u(D(ot(Nn.o), 6), 59), u(D(ot(Nn.o), 7), 59), u(D(ot(Nn.o), 8), 59), u(D(ot(Nn.o), 9), 59), Xne = Nn.p, u(D(R(Nn.p), 0), 34), u(D(R(Nn.p), 1), 34), u(D(R(Nn.p), 2), 34), u(D(R(Nn.p), 3), 34), u(D(R(Nn.p), 4), 18), u(D(R(Nn.p), 5), 18), u(D(ot(Nn.p), 0), 59), u(D(ot(Nn.p), 1), 59), Qne = Nn.q, u(D(R(Nn.q), 0), 34), Xl = Nn.v, u(D(R(Nn.v), 0), 18), u(D(ot(Nn.v), 0), 59), u(D(ot(Nn.v), 1), 59), u(D(ot(Nn.v), 2), 59), L1 = Nn.w, u(D(R(Nn.w), 0), 34), u(D(R(Nn.w), 1), 34), u(D(R(Nn.w), 2), 34), u(D(R(Nn.w), 3), 18), Vl = Nn.B, u(D(R(Nn.B), 0), 18), u(D(ot(Nn.B), 0), 59), u(D(ot(Nn.B), 1), 59), u(D(ot(Nn.B), 2), 59), Jne = Nn.Q, u(D(R(Nn.Q), 0), 18), u(D(ot(Nn.Q), 0), 59), Yne = Nn.R, u(D(R(Nn.R), 0), 34), uo = Nn.S, u(D(ot(Nn.S), 0), 59), u(D(ot(Nn.S), 1), 59), u(D(ot(Nn.S), 2), 59), u(D(ot(Nn.S), 3), 59), u(D(ot(Nn.S), 4), 59), u(D(ot(Nn.S), 5), 59), u(D(ot(Nn.S), 6), 59), u(D(ot(Nn.S), 7), 59), u(D(ot(Nn.S), 8), 59), u(D(ot(Nn.S), 9), 59), u(D(ot(Nn.S), 10), 59), u(D(ot(Nn.S), 11), 59), u(D(ot(Nn.S), 12), 59), u(D(ot(Nn.S), 13), 59), u(D(ot(Nn.S), 14), 59), N1 = Nn.T, u(D(R(Nn.T), 0), 18), u(D(R(Nn.T), 2), 18), Zne = u(D(R(Nn.T), 3), 18), u(D(R(Nn.T), 4), 18), u(D(ot(Nn.T), 0), 59), u(D(ot(Nn.T), 1), 59), u(D(R(Nn.T), 1), 18), B1 = Nn.U, u(D(R(Nn.U), 0), 34), u(D(R(Nn.U), 1), 34), u(D(R(Nn.U), 2), 18), u(D(R(Nn.U), 3), 18), u(D(R(Nn.U), 4), 18), u(D(R(Nn.U), 5), 18), u(D(ot(Nn.U), 0), 59), aw = Nn.V, u(D(R(Nn.V), 0), 18), qg = Nn.W, u(D(R(Nn.W), 0), 34), u(D(R(Nn.W), 1), 34), u(D(R(Nn.W), 2), 34), u(D(R(Nn.W), 3), 18), u(D(R(Nn.W), 4), 18), u(D(R(Nn.W), 5), 18), nee = Nn.bb, u(D(R(Nn.bb), 0), 34), u(D(R(Nn.bb), 1), 34), u(D(R(Nn.bb), 2), 34), u(D(R(Nn.bb), 3), 34), u(D(R(Nn.bb), 4), 34), u(D(R(Nn.bb), 5), 34), u(D(R(Nn.bb), 6), 34), u(D(R(Nn.bb), 7), 18), u(D(ot(Nn.bb), 0), 59), u(D(ot(Nn.bb), 1), 59), eee = Nn.eb, u(D(R(Nn.eb), 0), 34), u(D(R(Nn.eb), 1), 34), u(D(R(Nn.eb), 2), 34), u(D(R(Nn.eb), 3), 34), u(D(R(Nn.eb), 4), 34), u(D(R(Nn.eb), 5), 34), u(D(R(Nn.eb), 6), 18), u(D(R(Nn.eb), 7), 18), Zi = Nn.ab, u(D(R(Nn.ab), 0), 34), u(D(R(Nn.ab), 1), 34), O0 = Nn.H, u(D(R(Nn.H), 0), 18), u(D(R(Nn.H), 1), 18), u(D(R(Nn.H), 2), 18), u(D(R(Nn.H), 3), 18), u(D(R(Nn.H), 4), 18), u(D(R(Nn.H), 5), 18), u(D(ot(Nn.H), 0), 59), D0 = Nn.db, u(D(R(Nn.db), 0), 18), Cf = Nn.M;
+ }
+ function DTe(n) {
+ var e;
+ n.O || (n.O = !0, Oc(n, "type"), rT(n, "ecore.xml.type"), cT(n, Ha), e = u(d4((Y1(), co), Ha), 1945), me(Ar(n.fb), n.b), Jr(n.b, Ny, "AnyType", !1, !1, !0), _t(u(D(R(n.b), 0), 34), n.wb.D, Ek, null, 0, -1, Ny, !1, !1, !0, !1, !1, !1), _t(u(D(R(n.b), 1), 34), n.wb.D, "any", null, 0, -1, Ny, !0, !0, !0, !1, !1, !0), _t(u(D(R(n.b), 2), 34), n.wb.D, "anyAttribute", null, 0, -1, Ny, !1, !1, !0, !1, !1, !1), Jr(n.bb, sI, NGn, !1, !1, !0), _t(u(D(R(n.bb), 0), 34), n.gb, "data", null, 0, 1, sI, !1, !1, !0, !1, !0, !1), _t(u(D(R(n.bb), 1), 34), n.gb, _tn, null, 1, 1, sI, !1, !1, !0, !1, !0, !1), Jr(n.fb, By, BGn, !1, !1, !0), _t(u(D(R(n.fb), 0), 34), e.gb, "rawValue", null, 0, 1, By, !0, !0, !0, !1, !0, !0), _t(u(D(R(n.fb), 1), 34), e.a, im, null, 0, 1, By, !0, !0, !0, !1, !0, !0), wt(u(D(R(n.fb), 2), 18), n.wb.q, null, "instanceType", 1, 1, By, !1, !1, !0, !1, !1, !1, !1), Jr(n.qb, D1n, RGn, !1, !1, !0), _t(u(D(R(n.qb), 0), 34), n.wb.D, Ek, null, 0, -1, null, !1, !1, !0, !1, !1, !1), wt(u(D(R(n.qb), 1), 18), n.wb.ab, null, "xMLNSPrefixMap", 0, -1, null, !0, !1, !0, !0, !1, !1, !1), wt(u(D(R(n.qb), 2), 18), n.wb.ab, null, "xSISchemaLocation", 0, -1, null, !0, !1, !0, !0, !1, !1, !1), _t(u(D(R(n.qb), 3), 34), n.gb, "cDATA", null, 0, -2, null, !0, !0, !0, !1, !1, !0), _t(u(D(R(n.qb), 4), 34), n.gb, "comment", null, 0, -2, null, !0, !0, !0, !1, !1, !0), wt(u(D(R(n.qb), 5), 18), n.bb, null, YGn, 0, -2, null, !0, !0, !0, !0, !1, !1, !0), _t(u(D(R(n.qb), 6), 34), n.gb, $B, null, 0, -2, null, !0, !0, !0, !1, !1, !0), Ge(n.a, Zn, "AnySimpleType", !0), Ge(n.c, tn, "AnyURI", !0), Ge(n.d, M(mu, 1), "Base64Binary", !0), Ge(n.e, _u, "Boolean", !0), Ge(n.f, oi, "BooleanObject", !0), Ge(n.g, mu, "Byte", !0), Ge(n.i, op, "ByteObject", !0), Ge(n.j, tn, "Date", !0), Ge(n.k, tn, "DateTime", !0), Ge(n.n, wR, "Decimal", !0), Ge(n.o, Ci, "Double", !0), Ge(n.p, Si, "DoubleObject", !0), Ge(n.q, tn, "Duration", !0), Ge(n.s, Os, "ENTITIES", !0), Ge(n.r, Os, "ENTITIESBase", !0), Ge(n.t, tn, tin, !0), Ge(n.u, bw, "Float", !0), Ge(n.v, z4, "FloatObject", !0), Ge(n.w, tn, "GDay", !0), Ge(n.B, tn, "GMonth", !0), Ge(n.A, tn, "GMonthDay", !0), Ge(n.C, tn, "GYear", !0), Ge(n.D, tn, "GYearMonth", !0), Ge(n.F, M(mu, 1), "HexBinary", !0), Ge(n.G, tn, "ID", !0), Ge(n.H, tn, "IDREF", !0), Ge(n.J, Os, "IDREFS", !0), Ge(n.I, Os, "IDREFSBase", !0), Ge(n.K, be, "Int", !0), Ge(n.M, vg, "Integer", !0), Ge(n.L, Ui, "IntObject", !0), Ge(n.P, tn, "Language", !0), Ge(n.Q, Jl, "Long", !0), Ge(n.R, d0, "LongObject", !0), Ge(n.S, tn, "Name", !0), Ge(n.T, tn, FA, !0), Ge(n.U, vg, "NegativeInteger", !0), Ge(n.V, tn, cin, !0), Ge(n.X, Os, "NMTOKENS", !0), Ge(n.W, Os, "NMTOKENSBase", !0), Ge(n.Y, vg, "NonNegativeInteger", !0), Ge(n.Z, vg, "NonPositiveInteger", !0), Ge(n.$, tn, "NormalizedString", !0), Ge(n._, tn, "NOTATION", !0), Ge(n.ab, tn, "PositiveInteger", !0), Ge(n.cb, tn, "QName", !0), Ge(n.db, Wg, "Short", !0), Ge(n.eb, b0, "ShortObject", !0), Ge(n.gb, tn, VZ, !0), Ge(n.hb, tn, "Time", !0), Ge(n.ib, tn, "Token", !0), Ge(n.jb, Wg, "UnsignedByte", !0), Ge(n.kb, b0, "UnsignedByteObject", !0), Ge(n.lb, Jl, "UnsignedInt", !0), Ge(n.mb, d0, "UnsignedIntObject", !0), Ge(n.nb, vg, "UnsignedLong", !0), Ge(n.ob, be, "UnsignedShort", !0), Ge(n.pb, Ui, "UnsignedShortObject", !0), cQ(n, Ha), $Te(n));
+ }
+ function __n(n) {
+ gd(n, new Oa(kG(vj(ad(fd(ld(hd(new na(), Jn), "ELK Layered"), "Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level."), new jwn()), Jn), pt((a4(), aH), A(M(nI, 1), z, 237, 0, [YP, ZP, JP, lH, QP, VP]))))), Z(n, Jn, pen, cn(q_)), Z(n, Jn, ven, cn(Isn)), Z(n, Jn, vN, cn(Zk)), Z(n, Jn, men, cn(Mo)), Z(n, Jn, EN, cn(jp)), Z(n, Jn, ken, cn(T0)), Z(n, Jn, yen, cn(ew)), Z(n, Jn, jen, cn(bv)), Z(n, Jn, Een, cn(wv)), Z(n, Jn, Cen, cn(G_)), Z(n, Jn, $b, cn(M0)), Z(n, Jn, Ten, cn(z_)), Z(n, Jn, Men, cn(Fm)), Z(n, Jn, Aen, cn(rP)), Z(n, Jn, Znn, cn(Yk)), Z(n, Jn, een, cn(Dg)), Z(n, Jn, nen, cn(Ja)), Z(n, Jn, ten, cn($g)), Z(n, Jn, hk, Q(0)), Z(n, Jn, ien, cn(dv)), Z(n, Jn, ren, cn(Psn)), Z(n, Jn, cen, cn(yp)), Z(n, Jn, Xh, cn(Bsn)), Z(n, Jn, ZM, cn(Osn)), Z(n, Jn, nA, cn(Dsn)), Z(n, Jn, V6, cn(W_)), Z(n, Jn, XN, cn($sn)), Z(n, Jn, VN, cn(Fsn)), Z(n, Jn, eA, cn(cP)), Z(n, Jn, tA, cn(X_)), Z(n, Jn, iA, cn(Lsn)), Z(n, Jn, rA, cn(xsn)), Z(n, Jn, QN, cn(Nsn)), Z(n, Jn, HN, cn(E0)), Z(n, Jn, qN, cn($m)), Z(n, Jn, QM, cn(B_)), Z(n, Jn, JM, cn(ssn)), Z(n, Jn, s0, Csn), Z(n, Jn, pk, rsn), Z(n, Jn, Sen, 0), Z(n, Jn, HM, Q(1)), Z(n, Jn, ep, D4), Z(n, Jn, Pen, cn(Qa)), Z(n, Jn, CN, cn(Nt)), Z(n, Jn, Ien, cn(av)), Z(n, Jn, mk, cn(AQn)), Z(n, Jn, Oen, cn(Qf)), Z(n, Jn, uA, cn(Qb)), Z(n, Jn, q6, (qn(), !0)), Z(n, Jn, Den, cn(Jb)), Z(n, Jn, $en, cn(Xa)), Z(n, Jn, hg, cn(Va)), Z(n, Jn, tp, cn(iP)), Z(n, Jn, tB, cn(H_)), Z(n, Jn, Fen, isn), Z(n, Jn, $4, cn(j0)), Z(n, Jn, xen, cn(eP)), Z(n, Jn, F4, cn(Zb)), Z(n, Jn, Len, cn($Qn)), Z(n, Jn, Nen, cn(Asn)), Z(n, Jn, Ben, Msn), Z(n, Jn, Ren, cn(IQn)), Z(n, Jn, _en, cn(OQn)), Z(n, Jn, Ken, cn(DQn)), Z(n, Jn, Hen, cn(PQn)), Z(n, Jn, Hnn, cn(U_)), Z(n, Jn, wk, cn(vsn)), Z(n, Jn, $N, cn(__)), Z(n, Jn, Knn, cn(xm)), Z(n, Jn, Gnn, cn(Hc)), Z(n, Jn, IN, cn(Vb)), Z(n, Jn, X6, cn(Om)), Z(n, Jn, Wnn, cn(Xb)), Z(n, Jn, Qnn, cn(nsn)), Z(n, Jn, BN, cn(F_)), Z(n, Jn, XM, cn(Jk)), Z(n, Jn, NN, cn(x_)), Z(n, Jn, Nnn, cn(msn)), Z(n, Jn, Bnn, cn(ksn)), Z(n, Jn, WM, cn(dsn)), Z(n, Jn, lg, cn(tP)), Z(n, Jn, _N, cn(K_)), Z(n, Jn, Lnn, cn(R_)), Z(n, Jn, KN, cn(jsn)), Z(n, Jn, Jnn, cn(usn)), Z(n, Jn, Ynn, cn(N_)), Z(n, Jn, sA, cn($_)), Z(n, Jn, RN, cn(ysn)), Z(n, Jn, uen, cn(WS)), Z(n, Jn, sen, cn(Jun)), Z(n, Jn, zN, cn(US)), Z(n, Jn, YM, cn(hsn)), Z(n, Jn, UN, cn(fsn)), Z(n, Jn, WN, cn(lsn)), Z(n, Jn, ip, cn(hv)), Z(n, Jn, qen, cn(Mr)), Z(n, Jn, mN, cn(S1)), Z(n, Jn, Gen, cn(Jf)), Z(n, Jn, qM, cn(L_)), Z(n, Jn, LN, cn(esn)), Z(n, Jn, zen, cn(P1)), Z(n, Jn, Uen, cn(Im)), Z(n, Jn, Wen, cn(YS)), Z(n, Jn, Xen, cn(C0)), Z(n, Jn, iB, cn(Tsn)), Z(n, Jn, rB, cn(lv)), Z(n, Jn, ON, cn(wsn)), Z(n, Jn, DN, cn(gsn)), Z(n, Jn, oA, cn(nw)), Z(n, Jn, Rnn, cn(O_)), Z(n, Jn, FN, cn(psn)), Z(n, Jn, oen, cn(JS)), Z(n, Jn, fen, cn(QS)), Z(n, Jn, Ven, cn(nP)), Z(n, Jn, xN, cn(bsn)), Z(n, Jn, VM, cn(Dm)), Z(n, Jn, Qen, cn(ny)), Z(n, Jn, xnn, cn(tsn)), Z(n, Jn, _nn, cn(Ssn)), Z(n, Jn, GN, cn(csn)), Z(n, Jn, znn, cn(SQn)), Z(n, Jn, Xnn, cn(MQn)), Z(n, Jn, cB, cn(asn)), Z(n, Jn, Unn, cn(ZS)), Z(n, Jn, Vnn, cn(VS)), Z(n, Jn, cA, cn(xl)), Z(n, Jn, len, cn(Zun)), Z(n, Jn, YN, cn(XS)), Z(n, Jn, ZN, cn(Yun)), Z(n, Jn, hen, cn(D_)), Z(n, Jn, JN, cn(kp)), Z(n, Jn, qnn, cn(osn));
+ }
+ function ug(n, e) {
+ var t, i;
+ return Ug || (Ug = new we(), Av = new we(), i = (Je(), Je(), new ns(4)), v7(i, `
+\r\r `), yr(Ug, YB, i), yr(Av, YB, Ab(i)), i = new ns(4), v7(i, nzn), yr(Ug, am, i), yr(Av, am, Ab(i)), i = new ns(4), v7(i, nzn), yr(Ug, am, i), yr(Av, am, Ab(i)), i = new ns(4), v7(i, ezn), Sb(i, u(mc(Ug, am), 117)), yr(Ug, JB, i), yr(Av, JB, Ab(i)), i = new ns(4), v7(i, "-.0:AZ__az··ÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁːˑ̀͠͡ͅΆΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁ҃҆ҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆֹֻֽֿֿׁׂ֑֣֡ׄׄאתװײءغـْ٠٩ٰڷںھۀێېۓە۪ۭۨ۰۹ँःअह़्॑॔क़ॣ०९ঁঃঅঌএঐওনপরললশহ়়াৄেৈো্ৗৗড়ঢ়য়ৣ০ৱਂਂਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹ਼਼ਾੂੇੈੋ੍ਖ਼ੜਫ਼ਫ਼੦ੴઁઃઅઋઍઍએઑઓનપરલળવહ઼ૅેૉો્ૠૠ૦૯ଁଃଅଌଏଐଓନପରଲଳଶହ଼ୃେୈୋ୍ୖୗଡ଼ଢ଼ୟୡ୦୯ஂஃஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹாூெைொ்ௗௗ௧௯ఁఃఅఌఎఐఒనపళవహాౄెైొ్ౕౖౠౡ౦౯ಂಃಅಌಎಐಒನಪಳವಹಾೄೆೈೊ್ೕೖೞೞೠೡ೦೯ംഃഅഌഎഐഒനപഹാൃെൈൊ്ൗൗൠൡ൦൯กฮะฺเ๎๐๙ກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະູົຽເໄໆໆ່ໍ໐໙༘༙༠༩༹༹༵༵༷༷༾ཇཉཀྵ྄ཱ྆ྋྐྕྗྗྙྭྱྷྐྵྐྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼ⃐⃜⃡⃡ΩΩKÅ℮℮ↀↂ々々〇〇〡〯〱〵ぁゔ゙゚ゝゞァヺーヾㄅㄬ一龥가힣"), yr(Ug, ZB, i), yr(Av, ZB, Ab(i)), i = new ns(4), v7(i, ezn), jc(i, 95, 95), jc(i, 58, 58), yr(Ug, nR, i), yr(Av, nR, Ab(i))), t = u(mc(e ? Ug : Av, n), 136), t;
+ }
+ function $Te(n) {
+ ke(n.a, xe, A(M(tn, 1), q, 2, 6, [We, "anySimpleType"])), ke(n.b, xe, A(M(tn, 1), q, 2, 6, [We, "anyType", Ws, Ek])), ke(u(D(R(n.b), 0), 34), xe, A(M(tn, 1), q, 2, 6, [Ws, UB, We, ":mixed"])), ke(u(D(R(n.b), 1), 34), xe, A(M(tn, 1), q, 2, 6, [Ws, UB, nin, XB, We, ":1", _Gn, "lax"])), ke(u(D(R(n.b), 2), 34), xe, A(M(tn, 1), q, 2, 6, [Ws, LGn, nin, XB, We, ":2", _Gn, "lax"])), ke(n.c, xe, A(M(tn, 1), q, 2, 6, [We, "anyURI", Vs, Uo])), ke(n.d, xe, A(M(tn, 1), q, 2, 6, [We, "base64Binary", Vs, Uo])), ke(n.e, xe, A(M(tn, 1), q, 2, 6, [We, X2, Vs, Uo])), ke(n.f, xe, A(M(tn, 1), q, 2, 6, [We, "boolean:Object", Ri, X2])), ke(n.g, xe, A(M(tn, 1), q, 2, 6, [We, cm])), ke(n.i, xe, A(M(tn, 1), q, 2, 6, [We, "byte:Object", Ri, cm])), ke(n.j, xe, A(M(tn, 1), q, 2, 6, [We, "date", Vs, Uo])), ke(n.k, xe, A(M(tn, 1), q, 2, 6, [We, "dateTime", Vs, Uo])), ke(n.n, xe, A(M(tn, 1), q, 2, 6, [We, "decimal", Vs, Uo])), ke(n.o, xe, A(M(tn, 1), q, 2, 6, [We, um, Vs, Uo])), ke(n.p, xe, A(M(tn, 1), q, 2, 6, [We, "double:Object", Ri, um])), ke(n.q, xe, A(M(tn, 1), q, 2, 6, [We, "duration", Vs, Uo])), ke(n.s, xe, A(M(tn, 1), q, 2, 6, [We, "ENTITIES", Ri, KGn, ein, "1"])), ke(n.r, xe, A(M(tn, 1), q, 2, 6, [We, KGn, WB, tin])), ke(n.t, xe, A(M(tn, 1), q, 2, 6, [We, tin, Ri, FA])), ke(n.u, xe, A(M(tn, 1), q, 2, 6, [We, sm, Vs, Uo])), ke(n.v, xe, A(M(tn, 1), q, 2, 6, [We, "float:Object", Ri, sm])), ke(n.w, xe, A(M(tn, 1), q, 2, 6, [We, "gDay", Vs, Uo])), ke(n.B, xe, A(M(tn, 1), q, 2, 6, [We, "gMonth", Vs, Uo])), ke(n.A, xe, A(M(tn, 1), q, 2, 6, [We, "gMonthDay", Vs, Uo])), ke(n.C, xe, A(M(tn, 1), q, 2, 6, [We, "gYear", Vs, Uo])), ke(n.D, xe, A(M(tn, 1), q, 2, 6, [We, "gYearMonth", Vs, Uo])), ke(n.F, xe, A(M(tn, 1), q, 2, 6, [We, "hexBinary", Vs, Uo])), ke(n.G, xe, A(M(tn, 1), q, 2, 6, [We, "ID", Ri, FA])), ke(n.H, xe, A(M(tn, 1), q, 2, 6, [We, "IDREF", Ri, FA])), ke(n.J, xe, A(M(tn, 1), q, 2, 6, [We, "IDREFS", Ri, HGn, ein, "1"])), ke(n.I, xe, A(M(tn, 1), q, 2, 6, [We, HGn, WB, "IDREF"])), ke(n.K, xe, A(M(tn, 1), q, 2, 6, [We, om])), ke(n.M, xe, A(M(tn, 1), q, 2, 6, [We, iin])), ke(n.L, xe, A(M(tn, 1), q, 2, 6, [We, "int:Object", Ri, om])), ke(n.P, xe, A(M(tn, 1), q, 2, 6, [We, "language", Ri, VB, QB, qGn])), ke(n.Q, xe, A(M(tn, 1), q, 2, 6, [We, fm])), ke(n.R, xe, A(M(tn, 1), q, 2, 6, [We, "long:Object", Ri, fm])), ke(n.S, xe, A(M(tn, 1), q, 2, 6, [We, "Name", Ri, VB, QB, rin])), ke(n.T, xe, A(M(tn, 1), q, 2, 6, [We, FA, Ri, "Name", QB, GGn])), ke(n.U, xe, A(M(tn, 1), q, 2, 6, [We, "negativeInteger", Ri, zGn, Sk, "-1"])), ke(n.V, xe, A(M(tn, 1), q, 2, 6, [We, cin, Ri, VB, QB, "\\c+"])), ke(n.X, xe, A(M(tn, 1), q, 2, 6, [We, "NMTOKENS", Ri, UGn, ein, "1"])), ke(n.W, xe, A(M(tn, 1), q, 2, 6, [We, UGn, WB, cin])), ke(n.Y, xe, A(M(tn, 1), q, 2, 6, [We, uin, Ri, iin, Pk, "0"])), ke(n.Z, xe, A(M(tn, 1), q, 2, 6, [We, zGn, Ri, iin, Sk, "0"])), ke(n.$, xe, A(M(tn, 1), q, 2, 6, [We, WGn, Ri, EL, Vs, "replace"])), ke(n._, xe, A(M(tn, 1), q, 2, 6, [We, "NOTATION", Vs, Uo])), ke(n.ab, xe, A(M(tn, 1), q, 2, 6, [We, "positiveInteger", Ri, uin, Pk, "1"])), ke(n.bb, xe, A(M(tn, 1), q, 2, 6, [We, "processingInstruction_._type", Ws, "empty"])), ke(u(D(R(n.bb), 0), 34), xe, A(M(tn, 1), q, 2, 6, [Ws, IA, We, "data"])), ke(u(D(R(n.bb), 1), 34), xe, A(M(tn, 1), q, 2, 6, [Ws, IA, We, _tn])), ke(n.cb, xe, A(M(tn, 1), q, 2, 6, [We, "QName", Vs, Uo])), ke(n.db, xe, A(M(tn, 1), q, 2, 6, [We, hm])), ke(n.eb, xe, A(M(tn, 1), q, 2, 6, [We, "short:Object", Ri, hm])), ke(n.fb, xe, A(M(tn, 1), q, 2, 6, [We, "simpleAnyType", Ws, Ck])), ke(u(D(R(n.fb), 0), 34), xe, A(M(tn, 1), q, 2, 6, [We, ":3", Ws, Ck])), ke(u(D(R(n.fb), 1), 34), xe, A(M(tn, 1), q, 2, 6, [We, ":4", Ws, Ck])), ke(u(D(R(n.fb), 2), 18), xe, A(M(tn, 1), q, 2, 6, [We, ":5", Ws, Ck])), ke(n.gb, xe, A(M(tn, 1), q, 2, 6, [We, EL, Vs, "preserve"])), ke(n.hb, xe, A(M(tn, 1), q, 2, 6, [We, "time", Vs, Uo])), ke(n.ib, xe, A(M(tn, 1), q, 2, 6, [We, VB, Ri, WGn, Vs, Uo])), ke(n.jb, xe, A(M(tn, 1), q, 2, 6, [We, XGn, Sk, "255", Pk, "0"])), ke(n.kb, xe, A(M(tn, 1), q, 2, 6, [We, "unsignedByte:Object", Ri, XGn])), ke(n.lb, xe, A(M(tn, 1), q, 2, 6, [We, VGn, Sk, "4294967295", Pk, "0"])), ke(n.mb, xe, A(M(tn, 1), q, 2, 6, [We, "unsignedInt:Object", Ri, VGn])), ke(n.nb, xe, A(M(tn, 1), q, 2, 6, [We, "unsignedLong", Ri, uin, Sk, QGn, Pk, "0"])), ke(n.ob, xe, A(M(tn, 1), q, 2, 6, [We, JGn, Sk, "65535", Pk, "0"])), ke(n.pb, xe, A(M(tn, 1), q, 2, 6, [We, "unsignedShort:Object", Ri, JGn])), ke(n.qb, xe, A(M(tn, 1), q, 2, 6, [We, "", Ws, Ek])), ke(u(D(R(n.qb), 0), 34), xe, A(M(tn, 1), q, 2, 6, [Ws, UB, We, ":mixed"])), ke(u(D(R(n.qb), 1), 18), xe, A(M(tn, 1), q, 2, 6, [Ws, IA, We, "xmlns:prefix"])), ke(u(D(R(n.qb), 2), 18), xe, A(M(tn, 1), q, 2, 6, [Ws, IA, We, "xsi:schemaLocation"])), ke(u(D(R(n.qb), 3), 34), xe, A(M(tn, 1), q, 2, 6, [Ws, OA, We, "cDATA", DA, Tk])), ke(u(D(R(n.qb), 4), 34), xe, A(M(tn, 1), q, 2, 6, [Ws, OA, We, "comment", DA, Tk])), ke(u(D(R(n.qb), 5), 18), xe, A(M(tn, 1), q, 2, 6, [Ws, OA, We, YGn, DA, Tk])), ke(u(D(R(n.qb), 6), 34), xe, A(M(tn, 1), q, 2, 6, [Ws, OA, We, $B, DA, Tk]));
+ }
+ function Pe(n) {
+ return An("_UI_EMFDiagnostic_marker", n) ? "EMF Problem" : An("_UI_CircularContainment_diagnostic", n) ? "An object may not circularly contain itself" : An(Fqn, n) ? "Wrong character." : An(xqn, n) ? "Invalid reference number." : An(yA, n) ? "A character is required after \\." : An(_B, n) ? "'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?" : An(Lqn, n) ? "'(?<' or '(? toIndex: ", rnn = ", toIndex: ", cnn = "Index: ", unn = ", Size: ", S4 = "org.eclipse.elk.alg.common", lt = { 62: 1 }, bKn = "org.eclipse.elk.alg.common.compaction", wKn = "Scanline/EventHandler", bh = "org.eclipse.elk.alg.common.compaction.oned", gKn = "CNode belongs to another CGroup.", pKn = "ISpacingsHandler/1", uN = "The ", sN = " instance has been finished already.", vKn = "The direction ", mKn = " is not supported by the CGraph instance.", kKn = "OneDimensionalCompactor", yKn = "OneDimensionalCompactor/lambda$0$Type", jKn = "Quadruplet", EKn = "ScanlineConstraintCalculator", CKn = "ScanlineConstraintCalculator/ConstraintsScanlineHandler", TKn = "ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type", MKn = "ScanlineConstraintCalculator/Timestamp", AKn = "ScanlineConstraintCalculator/lambda$0$Type", Rf = { 169: 1, 45: 1 }, oN = "org.eclipse.elk.alg.common.compaction.options", Wr = "org.eclipse.elk.core.data", snn = "org.eclipse.elk.polyomino.traversalStrategy", onn = "org.eclipse.elk.polyomino.lowLevelSort", fnn = "org.eclipse.elk.polyomino.highLevelSort", hnn = "org.eclipse.elk.polyomino.fill", Gs = { 130: 1 }, fN = "polyomino", _6 = "org.eclipse.elk.alg.common.networksimplex", wh = { 177: 1, 3: 1, 4: 1 }, SKn = "org.eclipse.elk.alg.common.nodespacing", xa = "org.eclipse.elk.alg.common.nodespacing.cellsystem", P4 = "CENTER", PKn = { 212: 1, 326: 1 }, lnn = { 3: 1, 4: 1, 5: 1, 595: 1 }, Y2 = "LEFT", Z2 = "RIGHT", ann = "Vertical alignment cannot be null", dnn = "BOTTOM", LM = "org.eclipse.elk.alg.common.nodespacing.internal", K6 = "UNDEFINED", bf = 0.01, sk = "org.eclipse.elk.alg.common.nodespacing.internal.algorithm", IKn = "LabelPlacer/lambda$0$Type", OKn = "LabelPlacer/lambda$1$Type", DKn = "portRatioOrPosition", I4 = "org.eclipse.elk.alg.common.overlaps", hN = "DOWN", _f = "org.eclipse.elk.alg.common.polyomino", NM = "NORTH", lN = "EAST", aN = "SOUTH", dN = "WEST", BM = "org.eclipse.elk.alg.common.polyomino.structures", bnn = "Direction", bN = "Grid is only of size ", wN = ". Requested point (", gN = ") is out of bounds.", RM = " Given center based coordinates were (", ok = "org.eclipse.elk.graph.properties", $Kn = "IPropertyHolder", wnn = { 3: 1, 94: 1, 134: 1 }, np = "org.eclipse.elk.alg.common.spore", FKn = "org.eclipse.elk.alg.common.utils", La = { 209: 1 }, og = "org.eclipse.elk.core", xKn = "Connected Components Compaction", LKn = "org.eclipse.elk.alg.disco", _M = "org.eclipse.elk.alg.disco.graph", pN = "org.eclipse.elk.alg.disco.options", gnn = "CompactionStrategy", pnn = "org.eclipse.elk.disco.componentCompaction.strategy", vnn = "org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm", mnn = "org.eclipse.elk.disco.debug.discoGraph", knn = "org.eclipse.elk.disco.debug.discoPolys", NKn = "componentCompaction", Na = "org.eclipse.elk.disco", vN = "org.eclipse.elk.spacing.componentComponent", mN = "org.eclipse.elk.edge.thickness", ep = "org.eclipse.elk.aspectRatio", s0 = "org.eclipse.elk.padding", fg = "org.eclipse.elk.alg.disco.transform", kN = 1.5707963267948966, O4 = 17976931348623157e292, Db = { 3: 1, 4: 1, 5: 1, 192: 1 }, ynn = { 3: 1, 6: 1, 4: 1, 5: 1, 106: 1, 120: 1 }, jnn = "org.eclipse.elk.alg.force", Enn = "ComponentsProcessor", BKn = "ComponentsProcessor/1", fk = "org.eclipse.elk.alg.force.graph", RKn = "Component Layout", Cnn = "org.eclipse.elk.alg.force.model", KM = "org.eclipse.elk.force.model", Tnn = "org.eclipse.elk.force.iterations", Mnn = "org.eclipse.elk.force.repulsivePower", yN = "org.eclipse.elk.force.temperature", Kf = 1e-3, jN = "org.eclipse.elk.force.repulsion", H6 = "org.eclipse.elk.alg.force.options", D4 = 1.600000023841858, os = "org.eclipse.elk.force", hk = "org.eclipse.elk.priority", $b = "org.eclipse.elk.spacing.nodeNode", EN = "org.eclipse.elk.spacing.edgeLabel", HM = "org.eclipse.elk.randomSeed", q6 = "org.eclipse.elk.separateConnectedComponents", lk = "org.eclipse.elk.interactive", CN = "org.eclipse.elk.portConstraints", qM = "org.eclipse.elk.edgeLabels.inline", G6 = "org.eclipse.elk.omitNodeMicroLayout", tp = "org.eclipse.elk.nodeSize.options", hg = "org.eclipse.elk.nodeSize.constraints", $4 = "org.eclipse.elk.nodeLabels.placement", F4 = "org.eclipse.elk.portLabels.placement", Ann = "origin", _Kn = "random", KKn = "boundingBox.upLeft", HKn = "boundingBox.lowRight", Snn = "org.eclipse.elk.stress.fixed", Pnn = "org.eclipse.elk.stress.desiredEdgeLength", Inn = "org.eclipse.elk.stress.dimension", Onn = "org.eclipse.elk.stress.epsilon", Dnn = "org.eclipse.elk.stress.iterationLimit", Tl = "org.eclipse.elk.stress", qKn = "ELK Stress", ip = "org.eclipse.elk.nodeSize.minimum", GM = "org.eclipse.elk.alg.force.stress", GKn = "Layered layout", rp = "org.eclipse.elk.alg.layered", ak = "org.eclipse.elk.alg.layered.compaction.components", z6 = "org.eclipse.elk.alg.layered.compaction.oned", zM = "org.eclipse.elk.alg.layered.compaction.oned.algs", Ba = "org.eclipse.elk.alg.layered.compaction.recthull", Hf = "org.eclipse.elk.alg.layered.components", Wh = "NONE", lc = { 3: 1, 6: 1, 4: 1, 9: 1, 5: 1, 122: 1 }, zKn = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 106: 1, 120: 1 }, UM = "org.eclipse.elk.alg.layered.compound", Lt = { 51: 1 }, Fc = "org.eclipse.elk.alg.layered.graph", TN = " -> ", UKn = "Not supported by LGraph", $nn = "Port side is undefined", MN = { 3: 1, 6: 1, 4: 1, 5: 1, 474: 1, 141: 1, 106: 1, 120: 1 }, E1 = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 193: 1, 203: 1, 106: 1, 120: 1 }, WKn = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 1943: 1, 203: 1, 106: 1, 120: 1 }, XKn = `([{"' \r
+`, VKn = `)]}"' \r
+`, QKn = "The given string contains parts that cannot be parsed as numbers.", dk = "org.eclipse.elk.core.math", JKn = { 3: 1, 4: 1, 142: 1, 207: 1, 414: 1 }, YKn = { 3: 1, 4: 1, 116: 1, 207: 1, 414: 1 }, Jn = "org.eclipse.elk.layered", C1 = "org.eclipse.elk.alg.layered.graph.transform", ZKn = "ElkGraphImporter", nHn = "ElkGraphImporter/lambda$0$Type", eHn = "ElkGraphImporter/lambda$1$Type", tHn = "ElkGraphImporter/lambda$2$Type", iHn = "ElkGraphImporter/lambda$4$Type", rHn = "Node margin calculation", Un = "org.eclipse.elk.alg.layered.intermediate", cHn = "ONE_SIDED_GREEDY_SWITCH", uHn = "TWO_SIDED_GREEDY_SWITCH", AN = "No implementation is available for the layout processor ", Fnn = "IntermediateProcessorStrategy", SN = "Node '", sHn = "FIRST_SEPARATE", oHn = "LAST_SEPARATE", fHn = "Odd port side processing", Jt = "org.eclipse.elk.alg.layered.intermediate.compaction", U6 = "org.eclipse.elk.alg.layered.intermediate.greedyswitch", gh = "org.eclipse.elk.alg.layered.p3order.counting", bk = { 225: 1 }, cp = "org.eclipse.elk.alg.layered.intermediate.loops", fs = "org.eclipse.elk.alg.layered.intermediate.loops.ordering", Ml = "org.eclipse.elk.alg.layered.intermediate.loops.routing", W6 = "org.eclipse.elk.alg.layered.intermediate.preserveorder", qf = "org.eclipse.elk.alg.layered.intermediate.wrapping", ac = "org.eclipse.elk.alg.layered.options", PN = "INTERACTIVE", hHn = "DEPTH_FIRST", lHn = "EDGE_LENGTH", aHn = "SELF_LOOPS", dHn = "firstTryWithInitialOrder", xnn = "org.eclipse.elk.layered.directionCongruency", Lnn = "org.eclipse.elk.layered.feedbackEdges", WM = "org.eclipse.elk.layered.interactiveReferencePoint", Nnn = "org.eclipse.elk.layered.mergeEdges", Bnn = "org.eclipse.elk.layered.mergeHierarchyEdges", Rnn = "org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides", _nn = "org.eclipse.elk.layered.portSortingStrategy", Knn = "org.eclipse.elk.layered.thoroughness", Hnn = "org.eclipse.elk.layered.unnecessaryBendpoints", qnn = "org.eclipse.elk.layered.generatePositionAndLayerIds", IN = "org.eclipse.elk.layered.cycleBreaking.strategy", wk = "org.eclipse.elk.layered.layering.strategy", Gnn = "org.eclipse.elk.layered.layering.layerConstraint", znn = "org.eclipse.elk.layered.layering.layerChoiceConstraint", Unn = "org.eclipse.elk.layered.layering.layerId", ON = "org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth", DN = "org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor", $N = "org.eclipse.elk.layered.layering.nodePromotion.strategy", FN = "org.eclipse.elk.layered.layering.nodePromotion.maxIterations", xN = "org.eclipse.elk.layered.layering.coffmanGraham.layerBound", X6 = "org.eclipse.elk.layered.crossingMinimization.strategy", Wnn = "org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder", LN = "org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness", NN = "org.eclipse.elk.layered.crossingMinimization.semiInteractive", Xnn = "org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint", Vnn = "org.eclipse.elk.layered.crossingMinimization.positionId", Qnn = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold", BN = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.type", XM = "org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type", lg = "org.eclipse.elk.layered.nodePlacement.strategy", VM = "org.eclipse.elk.layered.nodePlacement.favorStraightEdges", RN = "org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening", _N = "org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment", KN = "org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening", HN = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility", qN = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default", Jnn = "org.eclipse.elk.layered.edgeRouting.selfLoopDistribution", Ynn = "org.eclipse.elk.layered.edgeRouting.selfLoopOrdering", QM = "org.eclipse.elk.layered.edgeRouting.splines.mode", JM = "org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor", GN = "org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth", Znn = "org.eclipse.elk.layered.spacing.baseValue", nen = "org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers", een = "org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers", ten = "org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers", ien = "org.eclipse.elk.layered.priority.direction", ren = "org.eclipse.elk.layered.priority.shortness", cen = "org.eclipse.elk.layered.priority.straightness", zN = "org.eclipse.elk.layered.compaction.connectedComponents", uen = "org.eclipse.elk.layered.compaction.postCompaction.strategy", sen = "org.eclipse.elk.layered.compaction.postCompaction.constraints", YM = "org.eclipse.elk.layered.highDegreeNodes.treatment", UN = "org.eclipse.elk.layered.highDegreeNodes.threshold", WN = "org.eclipse.elk.layered.highDegreeNodes.treeHeight", Xh = "org.eclipse.elk.layered.wrapping.strategy", ZM = "org.eclipse.elk.layered.wrapping.additionalEdgeSpacing", nA = "org.eclipse.elk.layered.wrapping.correctionFactor", V6 = "org.eclipse.elk.layered.wrapping.cutting.strategy", XN = "org.eclipse.elk.layered.wrapping.cutting.cuts", VN = "org.eclipse.elk.layered.wrapping.cutting.msd.freedom", eA = "org.eclipse.elk.layered.wrapping.validify.strategy", tA = "org.eclipse.elk.layered.wrapping.validify.forbiddenIndices", iA = "org.eclipse.elk.layered.wrapping.multiEdge.improveCuts", rA = "org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty", QN = "org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges", oen = "org.eclipse.elk.layered.edgeLabels.sideSelection", fen = "org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy", cA = "org.eclipse.elk.layered.considerModelOrder.strategy", hen = "org.eclipse.elk.layered.considerModelOrder.noModelOrder", JN = "org.eclipse.elk.layered.considerModelOrder.components", len = "org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy", YN = "org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence", ZN = "org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence", nB = "layering", bHn = "layering.minWidth", wHn = "layering.nodePromotion", gk = "crossingMinimization", uA = "org.eclipse.elk.hierarchyHandling", gHn = "crossingMinimization.greedySwitch", pHn = "nodePlacement", vHn = "nodePlacement.bk", mHn = "edgeRouting", pk = "org.eclipse.elk.edgeRouting", wf = "spacing", aen = "priority", den = "compaction", kHn = "compaction.postCompaction", yHn = "Specifies whether and how post-process compaction is applied.", ben = "highDegreeNodes", wen = "wrapping", jHn = "wrapping.cutting", EHn = "wrapping.validify", gen = "wrapping.multiEdge", eB = "edgeLabels", vk = "considerModelOrder", pen = "org.eclipse.elk.spacing.commentComment", ven = "org.eclipse.elk.spacing.commentNode", men = "org.eclipse.elk.spacing.edgeEdge", ken = "org.eclipse.elk.spacing.edgeNode", yen = "org.eclipse.elk.spacing.labelLabel", jen = "org.eclipse.elk.spacing.labelPortHorizontal", Een = "org.eclipse.elk.spacing.labelPortVertical", Cen = "org.eclipse.elk.spacing.labelNode", Ten = "org.eclipse.elk.spacing.nodeSelfLoop", Men = "org.eclipse.elk.spacing.portPort", Aen = "org.eclipse.elk.spacing.individual", Sen = "org.eclipse.elk.port.borderOffset", Pen = "org.eclipse.elk.noLayout", Ien = "org.eclipse.elk.port.side", mk = "org.eclipse.elk.debugMode", Oen = "org.eclipse.elk.alignment", Den = "org.eclipse.elk.insideSelfLoops.activate", $en = "org.eclipse.elk.insideSelfLoops.yo", tB = "org.eclipse.elk.nodeSize.fixedGraphSize", Fen = "org.eclipse.elk.direction", xen = "org.eclipse.elk.nodeLabels.padding", Len = "org.eclipse.elk.portLabels.nextToPortIfPossible", Nen = "org.eclipse.elk.portLabels.treatAsGroup", Ben = "org.eclipse.elk.portAlignment.default", Ren = "org.eclipse.elk.portAlignment.north", _en = "org.eclipse.elk.portAlignment.south", Ken = "org.eclipse.elk.portAlignment.west", Hen = "org.eclipse.elk.portAlignment.east", sA = "org.eclipse.elk.contentAlignment", qen = "org.eclipse.elk.junctionPoints", Gen = "org.eclipse.elk.edgeLabels.placement", zen = "org.eclipse.elk.port.index", Uen = "org.eclipse.elk.commentBox", Wen = "org.eclipse.elk.hypernode", Xen = "org.eclipse.elk.port.anchor", iB = "org.eclipse.elk.partitioning.activate", rB = "org.eclipse.elk.partitioning.partition", oA = "org.eclipse.elk.position", Ven = "org.eclipse.elk.margins", Qen = "org.eclipse.elk.spacing.portsSurrounding", cB = "org.eclipse.elk.interactiveLayout", dc = "org.eclipse.elk.core.util", Jen = { 3: 1, 4: 1, 5: 1, 593: 1 }, CHn = "NETWORK_SIMPLEX", Cc = { 123: 1, 51: 1 }, fA = "org.eclipse.elk.alg.layered.p1cycles", Fb = "org.eclipse.elk.alg.layered.p2layers", Yen = { 402: 1, 225: 1 }, THn = { 832: 1, 3: 1, 4: 1 }, gu = "org.eclipse.elk.alg.layered.p3order", hr = "org.eclipse.elk.alg.layered.p4nodes", MHn = { 3: 1, 4: 1, 5: 1, 840: 1 }, Gf = 1e-5, Al = "org.eclipse.elk.alg.layered.p4nodes.bk", uB = "org.eclipse.elk.alg.layered.p5edges", zo = "org.eclipse.elk.alg.layered.p5edges.orthogonal", sB = "org.eclipse.elk.alg.layered.p5edges.orthogonal.direction", oB = 1e-6, xb = "org.eclipse.elk.alg.layered.p5edges.splines", fB = 0.09999999999999998, hA = 1e-8, AHn = 4.71238898038469, SHn = 3.141592653589793, Q6 = "org.eclipse.elk.alg.mrtree", J6 = "org.eclipse.elk.alg.mrtree.graph", up = "org.eclipse.elk.alg.mrtree.intermediate", PHn = "Set neighbors in level", IHn = "DESCENDANTS", Zen = "org.eclipse.elk.mrtree.weighting", ntn = "org.eclipse.elk.mrtree.searchOrder", lA = "org.eclipse.elk.alg.mrtree.options", T1 = "org.eclipse.elk.mrtree", OHn = "org.eclipse.elk.tree", etn = "org.eclipse.elk.alg.radial", ag = 6.283185307179586, ttn = 5e-324, DHn = "org.eclipse.elk.alg.radial.intermediate", hB = "org.eclipse.elk.alg.radial.intermediate.compaction", $Hn = { 3: 1, 4: 1, 5: 1, 106: 1 }, itn = "org.eclipse.elk.alg.radial.intermediate.optimization", lB = "No implementation is available for the layout option ", Y6 = "org.eclipse.elk.alg.radial.options", rtn = "org.eclipse.elk.radial.orderId", ctn = "org.eclipse.elk.radial.radius", aB = "org.eclipse.elk.radial.compactor", dB = "org.eclipse.elk.radial.compactionStepSize", utn = "org.eclipse.elk.radial.sorter", stn = "org.eclipse.elk.radial.wedgeCriteria", otn = "org.eclipse.elk.radial.optimizationCriteria", zf = "org.eclipse.elk.radial", FHn = "org.eclipse.elk.alg.radial.p1position.wedge", ftn = "org.eclipse.elk.alg.radial.sorting", xHn = 5.497787143782138, LHn = 3.9269908169872414, NHn = 2.356194490192345, BHn = "org.eclipse.elk.alg.rectpacking", aA = "org.eclipse.elk.alg.rectpacking.firstiteration", bB = "org.eclipse.elk.alg.rectpacking.options", htn = "org.eclipse.elk.rectpacking.optimizationGoal", ltn = "org.eclipse.elk.rectpacking.lastPlaceShift", atn = "org.eclipse.elk.rectpacking.currentPosition", dtn = "org.eclipse.elk.rectpacking.desiredPosition", btn = "org.eclipse.elk.rectpacking.onlyFirstIteration", wtn = "org.eclipse.elk.rectpacking.rowCompaction", wB = "org.eclipse.elk.rectpacking.expandToAspectRatio", gtn = "org.eclipse.elk.rectpacking.targetWidth", dA = "org.eclipse.elk.expandNodes", zs = "org.eclipse.elk.rectpacking", kk = "org.eclipse.elk.alg.rectpacking.util", bA = "No implementation available for ", Lb = "org.eclipse.elk.alg.spore", Nb = "org.eclipse.elk.alg.spore.options", o0 = "org.eclipse.elk.sporeCompaction", gB = "org.eclipse.elk.underlyingLayoutAlgorithm", ptn = "org.eclipse.elk.processingOrder.treeConstruction", vtn = "org.eclipse.elk.processingOrder.spanningTreeCostFunction", pB = "org.eclipse.elk.processingOrder.preferredRoot", vB = "org.eclipse.elk.processingOrder.rootSelection", mB = "org.eclipse.elk.structure.structureExtractionStrategy", mtn = "org.eclipse.elk.compaction.compactionStrategy", ktn = "org.eclipse.elk.compaction.orthogonal", ytn = "org.eclipse.elk.overlapRemoval.maxIterations", jtn = "org.eclipse.elk.overlapRemoval.runScanline", kB = "processingOrder", RHn = "overlapRemoval", x4 = "org.eclipse.elk.sporeOverlap", _Hn = "org.eclipse.elk.alg.spore.p1structure", yB = "org.eclipse.elk.alg.spore.p2processingorder", jB = "org.eclipse.elk.alg.spore.p3execution", KHn = "Invalid index: ", L4 = "org.eclipse.elk.core.alg", dg = { 331: 1 }, Bb = { 288: 1 }, HHn = "Make sure its type is registered with the ", Etn = " utility class.", N4 = "true", EB = "false", qHn = "Couldn't clone property '", f0 = 0.05, Us = "org.eclipse.elk.core.options", GHn = 1.2999999523162842, h0 = "org.eclipse.elk.box", Ctn = "org.eclipse.elk.box.packingMode", zHn = "org.eclipse.elk.algorithm", UHn = "org.eclipse.elk.resolvedAlgorithm", Ttn = "org.eclipse.elk.bendPoints", LTe = "org.eclipse.elk.labelManager", WHn = "org.eclipse.elk.scaleFactor", XHn = "org.eclipse.elk.animate", VHn = "org.eclipse.elk.animTimeFactor", QHn = "org.eclipse.elk.layoutAncestors", JHn = "org.eclipse.elk.maxAnimTime", YHn = "org.eclipse.elk.minAnimTime", ZHn = "org.eclipse.elk.progressBar", nqn = "org.eclipse.elk.validateGraph", eqn = "org.eclipse.elk.validateOptions", tqn = "org.eclipse.elk.zoomToFit", NTe = "org.eclipse.elk.font.name", iqn = "org.eclipse.elk.font.size", rqn = "org.eclipse.elk.edge.type", cqn = "partitioning", uqn = "nodeLabels", wA = "portAlignment", CB = "nodeSize", TB = "port", Mtn = "portLabels", sqn = "insideSelfLoops", Z6 = "org.eclipse.elk.fixed", gA = "org.eclipse.elk.random", oqn = "port must have a parent node to calculate the port side", fqn = "The edge needs to have exactly one edge section. Found: ", nm = "org.eclipse.elk.core.util.adapters", Ps = "org.eclipse.emf.ecore", bg = "org.eclipse.elk.graph", hqn = "EMapPropertyHolder", lqn = "ElkBendPoint", aqn = "ElkGraphElement", dqn = "ElkConnectableShape", Atn = "ElkEdge", bqn = "ElkEdgeSection", wqn = "EModelElement", gqn = "ENamedElement", Stn = "ElkLabel", Ptn = "ElkNode", Itn = "ElkPort", pqn = { 92: 1, 90: 1 }, sp = "org.eclipse.emf.common.notify.impl", Sl = "The feature '", em = "' is not a valid changeable feature", vqn = "Expecting null", MB = "' is not a valid feature", mqn = "The feature ID", kqn = " is not a valid feature ID", sc = 32768, yqn = { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1 }, Bn = "org.eclipse.emf.ecore.impl", Ra = "org.eclipse.elk.graph.impl", tm = "Recursive containment not allowed for ", B4 = "The datatype '", l0 = "' is not a valid classifier", AB = "The value '", wg = { 190: 1, 3: 1, 4: 1 }, SB = "The class '", R4 = "http://www.eclipse.org/elk/ElkGraph", Eo = 1024, Otn = "property", im = "value", PB = "source", jqn = "properties", Eqn = "identifier", IB = "height", OB = "width", DB = "parent", $B = "text", FB = "children", Cqn = "hierarchical", Dtn = "sources", xB = "targets", $tn = "sections", pA = "bendPoints", Ftn = "outgoingShape", xtn = "incomingShape", Ltn = "outgoingSections", Ntn = "incomingSections", zi = "org.eclipse.emf.common.util", Btn = "Severe implementation error in the Json to ElkGraph importer.", Uf = "id", Fi = "org.eclipse.elk.graph.json", Rtn = "Unhandled parameter types: ", Tqn = "startPoint", Mqn = "An edge must have at least one source and one target (edge id: '", _4 = "').", Aqn = "Referenced edge section does not exist: ", Sqn = " (edge id: '", _tn = "target", Pqn = "sourcePoint", Iqn = "targetPoint", vA = "group", We = "name", Oqn = "connectableShape cannot be null", Dqn = "edge cannot be null", LB = "Passed edge is not 'simple'.", mA = "org.eclipse.elk.graph.util", yk = "The 'no duplicates' constraint is violated", NB = "targetIndex=", _a = ", size=", BB = "sourceIndex=", Wf = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1 }, RB = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 47: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 588: 1 }, kA = "logging", $qn = "measureExecutionTime", Fqn = "parser.parse.1", xqn = "parser.parse.2", yA = "parser.next.1", _B = "parser.next.2", Lqn = "parser.next.3", Nqn = "parser.next.4", Ka = "parser.factor.1", Ktn = "parser.factor.2", Bqn = "parser.factor.3", Rqn = "parser.factor.4", _qn = "parser.factor.5", Kqn = "parser.factor.6", Hqn = "parser.atom.1", qqn = "parser.atom.2", Gqn = "parser.atom.3", Htn = "parser.atom.4", KB = "parser.atom.5", qtn = "parser.cc.1", jA = "parser.cc.2", zqn = "parser.cc.3", Uqn = "parser.cc.5", Gtn = "parser.cc.6", ztn = "parser.cc.7", HB = "parser.cc.8", Wqn = "parser.ope.1", Xqn = "parser.ope.2", Vqn = "parser.ope.3", M1 = "parser.descape.1", Qqn = "parser.descape.2", Jqn = "parser.descape.3", Yqn = "parser.descape.4", Zqn = "parser.descape.5", Is = "parser.process.1", nGn = "parser.quantifier.1", eGn = "parser.quantifier.2", tGn = "parser.quantifier.3", iGn = "parser.quantifier.4", Utn = "parser.quantifier.5", rGn = "org.eclipse.emf.common.notify", Wtn = { 415: 1, 672: 1 }, cGn = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1 }, jk = { 366: 1, 143: 1 }, rm = "index=", qB = { 3: 1, 4: 1, 5: 1, 126: 1 }, uGn = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 58: 1 }, Xtn = { 3: 1, 6: 1, 4: 1, 5: 1, 192: 1 }, sGn = { 3: 1, 4: 1, 5: 1, 165: 1, 367: 1 }, oGn = ";/?:@&=+$,", fGn = "invalid authority: ", hGn = "EAnnotation", lGn = "ETypedElement", aGn = "EStructuralFeature", dGn = "EAttribute", bGn = "EClassifier", wGn = "EEnumLiteral", gGn = "EGenericType", pGn = "EOperation", vGn = "EParameter", mGn = "EReference", kGn = "ETypeParameter", vt = "org.eclipse.emf.ecore.util", GB = { 76: 1 }, Vtn = { 3: 1, 20: 1, 14: 1, 15: 1, 58: 1, 589: 1, 76: 1, 69: 1, 95: 1 }, yGn = "org.eclipse.emf.ecore.util.FeatureMap$Entry", pu = 8192, Rb = 2048, cm = "byte", EA = "char", um = "double", sm = "float", om = "int", fm = "long", hm = "short", jGn = "java.lang.Object", gg = { 3: 1, 4: 1, 5: 1, 247: 1 }, Qtn = { 3: 1, 4: 1, 5: 1, 673: 1 }, EGn = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 69: 1 }, Br = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, Ek = "mixed", xe = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData", Ws = "kind", CGn = { 3: 1, 4: 1, 5: 1, 674: 1 }, Jtn = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, CA = { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 69: 1 }, TA = { 47: 1, 125: 1, 279: 1 }, MA = { 72: 1, 332: 1 }, AA = "The value of type '", SA = "' must be of type '", pg = 1316, Xs = "http://www.eclipse.org/emf/2002/Ecore", PA = -32768, a0 = "constraints", Ri = "baseType", TGn = "getEStructuralFeature", MGn = "getFeatureID", lm = "feature", AGn = "getOperationID", Ytn = "operation", SGn = "defaultValue", PGn = "eTypeParameters", IGn = "isInstance", OGn = "getEEnumLiteral", DGn = "eContainingClass", qe = { 55: 1 }, $Gn = { 3: 1, 4: 1, 5: 1, 119: 1 }, FGn = "org.eclipse.emf.ecore.resource", xGn = { 92: 1, 90: 1, 591: 1, 1935: 1 }, zB = "org.eclipse.emf.ecore.resource.impl", Ztn = "unspecified", Ck = "simple", IA = "attribute", LGn = "attributeWildcard", OA = "element", UB = "elementWildcard", Uo = "collapse", WB = "itemType", DA = "namespace", Tk = "##targetNamespace", Vs = "whiteSpace", nin = "wildcards", Ha = "http://www.eclipse.org/emf/2003/XMLType", XB = "##any", K4 = "uninitialized", Mk = "The multiplicity constraint is violated", $A = "org.eclipse.emf.ecore.xml.type", NGn = "ProcessingInstruction", BGn = "SimpleAnyType", RGn = "XMLTypeDocumentRoot", Xt = "org.eclipse.emf.ecore.xml.type.impl", Ak = "INF", _Gn = "processing", KGn = "ENTITIES_._base", ein = "minLength", tin = "ENTITY", FA = "NCName", HGn = "IDREFS_._base", iin = "integer", VB = "token", QB = "pattern", qGn = "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", rin = "\\i\\c*", GGn = "[\\i-[:]][\\c-[:]]*", zGn = "nonPositiveInteger", Sk = "maxInclusive", cin = "NMTOKEN", UGn = "NMTOKENS_._base", uin = "nonNegativeInteger", Pk = "minInclusive", WGn = "normalizedString", XGn = "unsignedByte", VGn = "unsignedInt", QGn = "18446744073709551615", JGn = "unsignedShort", YGn = "processingInstruction", A1 = "org.eclipse.emf.ecore.xml.type.internal", H4 = 1114111, ZGn = "Internal Error: shorthands: \\u", am = "xml:isDigit", JB = "xml:isWord", YB = "xml:isSpace", ZB = "xml:isNameChar", nR = "xml:isInitialNameChar", nzn = "09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩", ezn = "AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣", tzn = "Private Use", eR = "ASSIGNED", tR = "\0ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ֏ۿ܀ݏހऀॿঀ૿ఀ౿ಀഀൿༀက႟ႠჿᄀᇿሀᎠ᐀ᙿ ᚠក᠀Ḁỿἀ ⁰₠⃐℀⅏⅐←⇿∀⋿⌀⏿␀⑀①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⼀⿰ 〿ゟ゠ヿㄯ㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒐가힣豈ffﭏﭐ﷿︠︯︰﹏﹐ﹰ\uFEFF\uFEFF", sin = "UNASSIGNED", q4 = { 3: 1, 117: 1 }, izn = "org.eclipse.emf.ecore.xml.type.util", xA = { 3: 1, 4: 1, 5: 1, 368: 1 }, oin = "org.eclipse.xtext.xbase.lib", rzn = "Cannot add elements to a Range", czn = "Cannot set elements in a Range", uzn = "Cannot remove elements from a Range", LA = "locale", NA = "default", BA = "user.agent", s, RA, iR;
+ j.goog = j.goog || {}, j.goog.global = j.goog.global || j, f5e(), b(1, null, {}, ku), s.Fb = function(e) {
+ return eyn(this, e);
+ }, s.Gb = function() {
+ return this.gm;
+ }, s.Hb = function() {
+ return kd(this);
+ }, s.Ib = function() {
+ var e;
+ return Q1(Du(this)) + "@" + (e = mt(this) >>> 0, e.toString(16));
+ }, s.equals = function(n) {
+ return this.Fb(n);
+ }, s.hashCode = function() {
+ return this.Hb();
+ }, s.toString = function() {
+ return this.Ib();
+ };
+ var szn, ozn, fzn;
+ b(290, 1, { 290: 1, 2026: 1 }, RV), s.le = function(e) {
+ var t;
+ return t = new RV(), t.i = 4, e > 1 ? t.c = vMn(this, e - 1) : t.c = this, t;
+ }, s.me = function() {
+ return Sh(this), this.b;
+ }, s.ne = function() {
+ return Q1(this);
+ }, s.oe = function() {
+ return Sh(this), this.k;
+ }, s.pe = function() {
+ return (this.i & 4) != 0;
+ }, s.qe = function() {
+ return (this.i & 1) != 0;
+ }, s.Ib = function() {
+ return nV(this);
+ }, s.i = 0;
+ var Zn = w(Ur, "Object", 1), fin = w(Ur, "Class", 290);
+ b(1998, 1, J7), w(Y7, "Optional", 1998), b(1170, 1998, J7, Dt), s.Fb = function(e) {
+ return e === this;
+ }, s.Hb = function() {
+ return 2040732332;
+ }, s.Ib = function() {
+ return "Optional.absent()";
+ }, s.Jb = function(e) {
+ return pe(e), Rv(), rR;
+ };
+ var rR;
+ w(Y7, "Absent", 1170), b(628, 1, {}, YI), w(Y7, "Joiner", 628);
+ var BTe = Et(Y7, "Predicate");
+ b(582, 1, { 169: 1, 582: 1, 3: 1, 45: 1 }, evn), s.Mb = function(e) {
+ return rDn(this, e);
+ }, s.Lb = function(e) {
+ return rDn(this, e);
+ }, s.Fb = function(e) {
+ var t;
+ return I(e, 582) ? (t = u(e, 582), DY(this.a, t.a)) : !1;
+ }, s.Hb = function() {
+ return GV(this.a) + 306654252;
+ }, s.Ib = function() {
+ return V5e(this.a);
+ }, w(Y7, "Predicates/AndPredicate", 582), b(408, 1998, { 408: 1, 3: 1 }, Zy), s.Fb = function(e) {
+ var t;
+ return I(e, 408) ? (t = u(e, 408), tt(this.a, t.a)) : !1;
+ }, s.Hb = function() {
+ return 1502476572 + mt(this.a);
+ }, s.Ib = function() {
+ return G_n + this.a + ")";
+ }, s.Jb = function(e) {
+ return new Zy(tC(e.Kb(this.a), "the Function passed to Optional.transform() must not return null."));
+ }, w(Y7, "Present", 408), b(198, 1, j4), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Qb = function() {
+ z9n();
+ }, w(an, "UnmodifiableIterator", 198), b(1978, 198, E4), s.Qb = function() {
+ z9n();
+ }, s.Rb = function(e) {
+ throw T(new je());
+ }, s.Wb = function(e) {
+ throw T(new je());
+ }, w(an, "UnmodifiableListIterator", 1978), b(386, 1978, E4), s.Ob = function() {
+ return this.c < this.d;
+ }, s.Sb = function() {
+ return this.c > 0;
+ }, s.Pb = function() {
+ if (this.c >= this.d)
+ throw T(new rc());
+ return this.Xb(this.c++);
+ }, s.Tb = function() {
+ return this.c;
+ }, s.Ub = function() {
+ if (this.c <= 0)
+ throw T(new rc());
+ return this.Xb(--this.c);
+ }, s.Vb = function() {
+ return this.c - 1;
+ }, s.c = 0, s.d = 0, w(an, "AbstractIndexedListIterator", 386), b(699, 198, j4), s.Ob = function() {
+ return V$(this);
+ }, s.Pb = function() {
+ return XX(this);
+ }, s.e = 1, w(an, "AbstractIterator", 699), b(1986, 1, { 224: 1 }), s.Zb = function() {
+ var e;
+ return e = this.f, e || (this.f = this.ac());
+ }, s.Fb = function(e) {
+ return dF(this, e);
+ }, s.Hb = function() {
+ return mt(this.Zb());
+ }, s.dc = function() {
+ return this.gc() == 0;
+ }, s.ec = function() {
+ return k2(this);
+ }, s.Ib = function() {
+ return Nr(this.Zb());
+ }, w(an, "AbstractMultimap", 1986), b(726, 1986, $a), s.$b = function() {
+ QC(this);
+ }, s._b = function(e) {
+ return h8n(this, e);
+ }, s.ac = function() {
+ return new Jp(this, this.c);
+ }, s.ic = function(e) {
+ return this.hc();
+ }, s.bc = function() {
+ return new Sw(this, this.c);
+ }, s.jc = function() {
+ return this.mc(this.hc());
+ }, s.kc = function() {
+ return new S9n(this);
+ }, s.lc = function() {
+ return kx(this.c.vc().Nc(), new Ue(), 64, this.d);
+ }, s.cc = function(e) {
+ return ct(this, e);
+ }, s.fc = function(e) {
+ return l7(this, e);
+ }, s.gc = function() {
+ return this.d;
+ }, s.mc = function(e) {
+ return Pn(), new Rp(e);
+ }, s.nc = function() {
+ return new A9n(this);
+ }, s.oc = function() {
+ return kx(this.c.Cc().Nc(), new Gt(), 64, this.d);
+ }, s.pc = function(e, t) {
+ return new IC(this, e, t, null);
+ }, s.d = 0, w(an, "AbstractMapBasedMultimap", 726), b(1631, 726, $a), s.hc = function() {
+ return new Ic(this.a);
+ }, s.jc = function() {
+ return Pn(), Pn(), cr;
+ }, s.cc = function(e) {
+ return u(ct(this, e), 15);
+ }, s.fc = function(e) {
+ return u(l7(this, e), 15);
+ }, s.Zb = function() {
+ return T2(this);
+ }, s.Fb = function(e) {
+ return dF(this, e);
+ }, s.qc = function(e) {
+ return u(ct(this, e), 15);
+ }, s.rc = function(e) {
+ return u(l7(this, e), 15);
+ }, s.mc = function(e) {
+ return C8(u(e, 15));
+ }, s.pc = function(e, t) {
+ return EAn(this, e, u(t, 15), null);
+ }, w(an, "AbstractListMultimap", 1631), b(732, 1, Ei), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return this.c.Ob() || this.e.Ob();
+ }, s.Pb = function() {
+ var e;
+ return this.e.Ob() || (e = u(this.c.Pb(), 42), this.b = e.cd(), this.a = u(e.dd(), 14), this.e = this.a.Kc()), this.sc(this.b, this.e.Pb());
+ }, s.Qb = function() {
+ this.e.Qb(), this.a.dc() && this.c.Qb(), --this.d.d;
+ }, w(an, "AbstractMapBasedMultimap/Itr", 732), b(1099, 732, Ei, A9n), s.sc = function(e, t) {
+ return t;
+ }, w(an, "AbstractMapBasedMultimap/1", 1099), b(1100, 1, {}, Gt), s.Kb = function(e) {
+ return u(e, 14).Nc();
+ }, w(an, "AbstractMapBasedMultimap/1methodref$spliterator$Type", 1100), b(1101, 732, Ei, S9n), s.sc = function(e, t) {
+ return new wd(e, t);
+ }, w(an, "AbstractMapBasedMultimap/2", 1101);
+ var hin = Et(fe, "Map");
+ b(1967, 1, c0), s.wc = function(e) {
+ n6(this, e);
+ }, s.yc = function(e, t, i) {
+ return IF(this, e, t, i);
+ }, s.$b = function() {
+ this.vc().$b();
+ }, s.tc = function(e) {
+ return ix(this, e);
+ }, s._b = function(e) {
+ return !!xJ(this, e, !1);
+ }, s.uc = function(e) {
+ var t, i, r;
+ for (i = this.vc().Kc(); i.Ob(); )
+ if (t = u(i.Pb(), 42), r = t.dd(), B(e) === B(r) || e != null && tt(e, r))
+ return !0;
+ return !1;
+ }, s.Fb = function(e) {
+ var t, i, r;
+ if (e === this)
+ return !0;
+ if (!I(e, 83) || (r = u(e, 83), this.gc() != r.gc()))
+ return !1;
+ for (i = r.vc().Kc(); i.Ob(); )
+ if (t = u(i.Pb(), 42), !this.tc(t))
+ return !1;
+ return !0;
+ }, s.xc = function(e) {
+ return Vr(xJ(this, e, !1));
+ }, s.Hb = function() {
+ return FV(this.vc());
+ }, s.dc = function() {
+ return this.gc() == 0;
+ }, s.ec = function() {
+ return new Bp(this);
+ }, s.zc = function(e, t) {
+ throw T(new t1("Put not supported on this map"));
+ }, s.Ac = function(e) {
+ Z5(this, e);
+ }, s.Bc = function(e) {
+ return Vr(xJ(this, e, !0));
+ }, s.gc = function() {
+ return this.vc().gc();
+ }, s.Ib = function() {
+ return uxn(this);
+ }, s.Cc = function() {
+ return new Th(this);
+ }, w(fe, "AbstractMap", 1967), b(1987, 1967, c0), s.bc = function() {
+ return new Ej(this);
+ }, s.vc = function() {
+ return jCn(this);
+ }, s.ec = function() {
+ var e;
+ return e = this.g, e || (this.g = this.bc());
+ }, s.Cc = function() {
+ var e;
+ return e = this.i, e || (this.i = new t7n(this));
+ }, w(an, "Maps/ViewCachingAbstractMap", 1987), b(389, 1987, c0, Jp), s.xc = function(e) {
+ return O0e(this, e);
+ }, s.Bc = function(e) {
+ return Wwe(this, e);
+ }, s.$b = function() {
+ this.d == this.e.c ? this.e.$b() : DE(new tW(this));
+ }, s._b = function(e) {
+ return NDn(this.d, e);
+ }, s.Ec = function() {
+ return new cvn(this);
+ }, s.Dc = function() {
+ return this.Ec();
+ }, s.Fb = function(e) {
+ return this === e || tt(this.d, e);
+ }, s.Hb = function() {
+ return mt(this.d);
+ }, s.ec = function() {
+ return this.e.ec();
+ }, s.gc = function() {
+ return this.d.gc();
+ }, s.Ib = function() {
+ return Nr(this.d);
+ }, w(an, "AbstractMapBasedMultimap/AsMap", 389);
+ var gf = Et(Ur, "Iterable");
+ b(28, 1, Pb), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Lc = function() {
+ return this.Oc();
+ }, s.Nc = function() {
+ return new xn(this, 0);
+ }, s.Oc = function() {
+ return new $n(null, this.Nc());
+ }, s.Fc = function(e) {
+ throw T(new t1("Add not supported on this collection"));
+ }, s.Gc = function(e) {
+ return Xi(this, e);
+ }, s.$b = function() {
+ KW(this);
+ }, s.Hc = function(e) {
+ return bb(this, e, !1);
+ }, s.Ic = function(e) {
+ return t7(this, e);
+ }, s.dc = function() {
+ return this.gc() == 0;
+ }, s.Mc = function(e) {
+ return bb(this, e, !0);
+ }, s.Pc = function() {
+ return wW(this);
+ }, s.Qc = function(e) {
+ return y7(this, e);
+ }, s.Ib = function() {
+ return ml(this);
+ }, w(fe, "AbstractCollection", 28);
+ var Qs = Et(fe, "Set");
+ b(df, 28, wu), s.Nc = function() {
+ return new xn(this, 1);
+ }, s.Fb = function(e) {
+ return I$n(this, e);
+ }, s.Hb = function() {
+ return FV(this);
+ }, w(fe, "AbstractSet", df), b(1970, df, wu), w(an, "Sets/ImprovedAbstractSet", 1970), b(1971, 1970, wu), s.$b = function() {
+ this.Rc().$b();
+ }, s.Hc = function(e) {
+ return l$n(this, e);
+ }, s.dc = function() {
+ return this.Rc().dc();
+ }, s.Mc = function(e) {
+ var t;
+ return this.Hc(e) ? (t = u(e, 42), this.Rc().ec().Mc(t.cd())) : !1;
+ }, s.gc = function() {
+ return this.Rc().gc();
+ }, w(an, "Maps/EntrySet", 1971), b(1097, 1971, wu, cvn), s.Hc = function(e) {
+ return fQ(this.a.d.vc(), e);
+ }, s.Kc = function() {
+ return new tW(this.a);
+ }, s.Rc = function() {
+ return this.a;
+ }, s.Mc = function(e) {
+ var t;
+ return fQ(this.a.d.vc(), e) ? (t = u(e, 42), pde(this.a.e, t.cd()), !0) : !1;
+ }, s.Nc = function() {
+ return g8(this.a.d.vc().Nc(), new uvn(this.a));
+ }, w(an, "AbstractMapBasedMultimap/AsMap/AsMapEntries", 1097), b(1098, 1, {}, uvn), s.Kb = function(e) {
+ return aSn(this.a, u(e, 42));
+ }, w(an, "AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type", 1098), b(730, 1, Ei, tW), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ var e;
+ return e = u(this.b.Pb(), 42), this.a = u(e.dd(), 14), aSn(this.c, e);
+ }, s.Ob = function() {
+ return this.b.Ob();
+ }, s.Qb = function() {
+ Nw(!!this.a), this.b.Qb(), this.c.e.d -= this.a.gc(), this.a.$b(), this.a = null;
+ }, w(an, "AbstractMapBasedMultimap/AsMap/AsMapIterator", 730), b(532, 1970, wu, Ej), s.$b = function() {
+ this.b.$b();
+ }, s.Hc = function(e) {
+ return this.b._b(e);
+ }, s.Jc = function(e) {
+ pe(e), this.b.wc(new Evn(e));
+ }, s.dc = function() {
+ return this.b.dc();
+ }, s.Kc = function() {
+ return new _v(this.b.vc().Kc());
+ }, s.Mc = function(e) {
+ return this.b._b(e) ? (this.b.Bc(e), !0) : !1;
+ }, s.gc = function() {
+ return this.b.gc();
+ }, w(an, "Maps/KeySet", 532), b(318, 532, wu, Sw), s.$b = function() {
+ var e;
+ DE((e = this.b.vc().Kc(), new SG(this, e)));
+ }, s.Ic = function(e) {
+ return this.b.ec().Ic(e);
+ }, s.Fb = function(e) {
+ return this === e || tt(this.b.ec(), e);
+ }, s.Hb = function() {
+ return mt(this.b.ec());
+ }, s.Kc = function() {
+ var e;
+ return e = this.b.vc().Kc(), new SG(this, e);
+ }, s.Mc = function(e) {
+ var t, i;
+ return i = 0, t = u(this.b.Bc(e), 14), t && (i = t.gc(), t.$b(), this.a.d -= i), i > 0;
+ }, s.Nc = function() {
+ return this.b.ec().Nc();
+ }, w(an, "AbstractMapBasedMultimap/KeySet", 318), b(731, 1, Ei, SG), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return this.c.Ob();
+ }, s.Pb = function() {
+ return this.a = u(this.c.Pb(), 42), this.a.cd();
+ }, s.Qb = function() {
+ var e;
+ Nw(!!this.a), e = u(this.a.dd(), 14), this.c.Qb(), this.b.a.d -= e.gc(), e.$b(), this.a = null;
+ }, w(an, "AbstractMapBasedMultimap/KeySet/1", 731), b(491, 389, { 83: 1, 161: 1 }, f8), s.bc = function() {
+ return this.Sc();
+ }, s.ec = function() {
+ return this.Tc();
+ }, s.Sc = function() {
+ return new R9(this.c, this.Uc());
+ }, s.Tc = function() {
+ var e;
+ return e = this.b, e || (this.b = this.Sc());
+ }, s.Uc = function() {
+ return u(this.d, 161);
+ }, w(an, "AbstractMapBasedMultimap/SortedAsMap", 491), b(542, 491, z_n, mE), s.bc = function() {
+ return new Qp(this.a, u(u(this.d, 161), 171));
+ }, s.Sc = function() {
+ return new Qp(this.a, u(u(this.d, 161), 171));
+ }, s.ec = function() {
+ var e;
+ return e = this.b, u(e || (this.b = new Qp(this.a, u(u(this.d, 161), 171))), 271);
+ }, s.Tc = function() {
+ var e;
+ return e = this.b, u(e || (this.b = new Qp(this.a, u(u(this.d, 161), 171))), 271);
+ }, s.Uc = function() {
+ return u(u(this.d, 161), 171);
+ }, w(an, "AbstractMapBasedMultimap/NavigableAsMap", 542), b(490, 318, U_n, R9), s.Nc = function() {
+ return this.b.ec().Nc();
+ }, w(an, "AbstractMapBasedMultimap/SortedKeySet", 490), b(388, 490, WZ, Qp), w(an, "AbstractMapBasedMultimap/NavigableKeySet", 388), b(541, 28, Pb, IC), s.Fc = function(e) {
+ var t, i;
+ return $u(this), i = this.d.dc(), t = this.d.Fc(e), t && (++this.f.d, i && d8(this)), t;
+ }, s.Gc = function(e) {
+ var t, i, r;
+ return e.dc() ? !1 : (r = ($u(this), this.d.gc()), t = this.d.Gc(e), t && (i = this.d.gc(), this.f.d += i - r, r == 0 && d8(this)), t);
+ }, s.$b = function() {
+ var e;
+ e = ($u(this), this.d.gc()), e != 0 && (this.d.$b(), this.f.d -= e, NE(this));
+ }, s.Hc = function(e) {
+ return $u(this), this.d.Hc(e);
+ }, s.Ic = function(e) {
+ return $u(this), this.d.Ic(e);
+ }, s.Fb = function(e) {
+ return e === this ? !0 : ($u(this), tt(this.d, e));
+ }, s.Hb = function() {
+ return $u(this), mt(this.d);
+ }, s.Kc = function() {
+ return $u(this), new HU(this);
+ }, s.Mc = function(e) {
+ var t;
+ return $u(this), t = this.d.Mc(e), t && (--this.f.d, NE(this)), t;
+ }, s.gc = function() {
+ return _kn(this);
+ }, s.Nc = function() {
+ return $u(this), this.d.Nc();
+ }, s.Ib = function() {
+ return $u(this), Nr(this.d);
+ }, w(an, "AbstractMapBasedMultimap/WrappedCollection", 541);
+ var Os = Et(fe, "List");
+ b(728, 541, { 20: 1, 28: 1, 14: 1, 15: 1 }, pW), s.ad = function(e) {
+ Lw(this, e);
+ }, s.Nc = function() {
+ return $u(this), this.d.Nc();
+ }, s.Vc = function(e, t) {
+ var i;
+ $u(this), i = this.d.dc(), u(this.d, 15).Vc(e, t), ++this.a.d, i && d8(this);
+ }, s.Wc = function(e, t) {
+ var i, r, c;
+ return t.dc() ? !1 : (c = ($u(this), this.d.gc()), i = u(this.d, 15).Wc(e, t), i && (r = this.d.gc(), this.a.d += r - c, c == 0 && d8(this)), i);
+ }, s.Xb = function(e) {
+ return $u(this), u(this.d, 15).Xb(e);
+ }, s.Xc = function(e) {
+ return $u(this), u(this.d, 15).Xc(e);
+ }, s.Yc = function() {
+ return $u(this), new myn(this);
+ }, s.Zc = function(e) {
+ return $u(this), new DTn(this, e);
+ }, s.$c = function(e) {
+ var t;
+ return $u(this), t = u(this.d, 15).$c(e), --this.a.d, NE(this), t;
+ }, s._c = function(e, t) {
+ return $u(this), u(this.d, 15)._c(e, t);
+ }, s.bd = function(e, t) {
+ return $u(this), EAn(this.a, this.e, u(this.d, 15).bd(e, t), this.b ? this.b : this);
+ }, w(an, "AbstractMapBasedMultimap/WrappedList", 728), b(1096, 728, { 20: 1, 28: 1, 14: 1, 15: 1, 54: 1 }, fjn), w(an, "AbstractMapBasedMultimap/RandomAccessWrappedList", 1096), b(620, 1, Ei, HU), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return v3(this), this.b.Ob();
+ }, s.Pb = function() {
+ return v3(this), this.b.Pb();
+ }, s.Qb = function() {
+ Uyn(this);
+ }, w(an, "AbstractMapBasedMultimap/WrappedCollection/WrappedIterator", 620), b(729, 620, hh, myn, DTn), s.Qb = function() {
+ Uyn(this);
+ }, s.Rb = function(e) {
+ var t;
+ t = _kn(this.a) == 0, (v3(this), u(this.b, 125)).Rb(e), ++this.a.a.d, t && d8(this.a);
+ }, s.Sb = function() {
+ return (v3(this), u(this.b, 125)).Sb();
+ }, s.Tb = function() {
+ return (v3(this), u(this.b, 125)).Tb();
+ }, s.Ub = function() {
+ return (v3(this), u(this.b, 125)).Ub();
+ }, s.Vb = function() {
+ return (v3(this), u(this.b, 125)).Vb();
+ }, s.Wb = function(e) {
+ (v3(this), u(this.b, 125)).Wb(e);
+ }, w(an, "AbstractMapBasedMultimap/WrappedList/WrappedListIterator", 729), b(727, 541, U_n, fU), s.Nc = function() {
+ return $u(this), this.d.Nc();
+ }, w(an, "AbstractMapBasedMultimap/WrappedSortedSet", 727), b(1095, 727, WZ, lyn), w(an, "AbstractMapBasedMultimap/WrappedNavigableSet", 1095), b(1094, 541, wu, Ejn), s.Nc = function() {
+ return $u(this), this.d.Nc();
+ }, w(an, "AbstractMapBasedMultimap/WrappedSet", 1094), b(1103, 1, {}, Ue), s.Kb = function(e) {
+ return Ede(u(e, 42));
+ }, w(an, "AbstractMapBasedMultimap/lambda$1$Type", 1103), b(1102, 1, {}, svn), s.Kb = function(e) {
+ return new wd(this.a, e);
+ }, w(an, "AbstractMapBasedMultimap/lambda$2$Type", 1102);
+ var qa = Et(fe, "Map/Entry");
+ b(345, 1, PM), s.Fb = function(e) {
+ var t;
+ return I(e, 42) ? (t = u(e, 42), $f(this.cd(), t.cd()) && $f(this.dd(), t.dd())) : !1;
+ }, s.Hb = function() {
+ var e, t;
+ return e = this.cd(), t = this.dd(), (e == null ? 0 : mt(e)) ^ (t == null ? 0 : mt(t));
+ }, s.ed = function(e) {
+ throw T(new je());
+ }, s.Ib = function() {
+ return this.cd() + "=" + this.dd();
+ }, w(an, W_n, 345), b(1988, 28, Pb), s.$b = function() {
+ this.fd().$b();
+ }, s.Hc = function(e) {
+ var t;
+ return I(e, 42) ? (t = u(e, 42), iae(this.fd(), t.cd(), t.dd())) : !1;
+ }, s.Mc = function(e) {
+ var t;
+ return I(e, 42) ? (t = u(e, 42), iAn(this.fd(), t.cd(), t.dd())) : !1;
+ }, s.gc = function() {
+ return this.fd().d;
+ }, w(an, "Multimaps/Entries", 1988), b(733, 1988, Pb, rq), s.Kc = function() {
+ return this.a.kc();
+ }, s.fd = function() {
+ return this.a;
+ }, s.Nc = function() {
+ return this.a.lc();
+ }, w(an, "AbstractMultimap/Entries", 733), b(734, 733, wu, rG), s.Nc = function() {
+ return this.a.lc();
+ }, s.Fb = function(e) {
+ return ZJ(this, e);
+ }, s.Hb = function() {
+ return rOn(this);
+ }, w(an, "AbstractMultimap/EntrySet", 734), b(735, 28, Pb, cq), s.$b = function() {
+ this.a.$b();
+ }, s.Hc = function(e) {
+ return Kwe(this.a, e);
+ }, s.Kc = function() {
+ return this.a.nc();
+ }, s.gc = function() {
+ return this.a.d;
+ }, s.Nc = function() {
+ return this.a.oc();
+ }, w(an, "AbstractMultimap/Values", 735), b(1989, 28, { 835: 1, 20: 1, 28: 1, 14: 1 }), s.Jc = function(e) {
+ pe(e), Iw(this).Jc(new jvn(e));
+ }, s.Nc = function() {
+ var e;
+ return e = Iw(this).Nc(), kx(e, new q1(), 64 | e.qd() & 1296, this.a.d);
+ }, s.Fc = function(e) {
+ return dG(), !0;
+ }, s.Gc = function(e) {
+ return pe(this), pe(e), I(e, 543) ? oae(u(e, 835)) : !e.dc() && _$(this, e.Kc());
+ }, s.Hc = function(e) {
+ var t;
+ return t = u(db(T2(this.a), e), 14), (t ? t.gc() : 0) > 0;
+ }, s.Fb = function(e) {
+ return e9e(this, e);
+ }, s.Hb = function() {
+ return mt(Iw(this));
+ }, s.dc = function() {
+ return Iw(this).dc();
+ }, s.Mc = function(e) {
+ return ELn(this, e, 1) > 0;
+ }, s.Ib = function() {
+ return Nr(Iw(this));
+ }, w(an, "AbstractMultiset", 1989), b(1991, 1970, wu), s.$b = function() {
+ QC(this.a.a);
+ }, s.Hc = function(e) {
+ var t, i;
+ return I(e, 492) ? (i = u(e, 416), u(i.a.dd(), 14).gc() <= 0 ? !1 : (t = $Mn(this.a, i.a.cd()), t == u(i.a.dd(), 14).gc())) : !1;
+ }, s.Mc = function(e) {
+ var t, i, r, c;
+ return I(e, 492) && (i = u(e, 416), t = i.a.cd(), r = u(i.a.dd(), 14).gc(), r != 0) ? (c = this.a, q6e(c, t, r)) : !1;
+ }, w(an, "Multisets/EntrySet", 1991), b(1109, 1991, wu, ovn), s.Kc = function() {
+ return new L9n(jCn(T2(this.a.a)).Kc());
+ }, s.gc = function() {
+ return T2(this.a.a).gc();
+ }, w(an, "AbstractMultiset/EntrySet", 1109), b(619, 726, $a), s.hc = function() {
+ return this.gd();
+ }, s.jc = function() {
+ return this.hd();
+ }, s.cc = function(e) {
+ return this.jd(e);
+ }, s.fc = function(e) {
+ return this.kd(e);
+ }, s.Zb = function() {
+ var e;
+ return e = this.f, e || (this.f = this.ac());
+ }, s.hd = function() {
+ return Pn(), Pn(), zA;
+ }, s.Fb = function(e) {
+ return dF(this, e);
+ }, s.jd = function(e) {
+ return u(ct(this, e), 21);
+ }, s.kd = function(e) {
+ return u(l7(this, e), 21);
+ }, s.mc = function(e) {
+ return Pn(), new Up(u(e, 21));
+ }, s.pc = function(e, t) {
+ return new Ejn(this, e, u(t, 21));
+ }, w(an, "AbstractSetMultimap", 619), b(1657, 619, $a), s.hc = function() {
+ return new J1(this.b);
+ }, s.gd = function() {
+ return new J1(this.b);
+ }, s.jc = function() {
+ return DW(new J1(this.b));
+ }, s.hd = function() {
+ return DW(new J1(this.b));
+ }, s.cc = function(e) {
+ return u(u(ct(this, e), 21), 84);
+ }, s.jd = function(e) {
+ return u(u(ct(this, e), 21), 84);
+ }, s.fc = function(e) {
+ return u(u(l7(this, e), 21), 84);
+ }, s.kd = function(e) {
+ return u(u(l7(this, e), 21), 84);
+ }, s.mc = function(e) {
+ return I(e, 271) ? DW(u(e, 271)) : (Pn(), new Hz(u(e, 84)));
+ }, s.Zb = function() {
+ var e;
+ return e = this.f, e || (this.f = I(this.c, 171) ? new mE(this, u(this.c, 171)) : I(this.c, 161) ? new f8(this, u(this.c, 161)) : new Jp(this, this.c));
+ }, s.pc = function(e, t) {
+ return I(t, 271) ? new lyn(this, e, u(t, 271)) : new fU(this, e, u(t, 84));
+ }, w(an, "AbstractSortedSetMultimap", 1657), b(1658, 1657, $a), s.Zb = function() {
+ var e;
+ return e = this.f, u(u(e || (this.f = I(this.c, 171) ? new mE(this, u(this.c, 171)) : I(this.c, 161) ? new f8(this, u(this.c, 161)) : new Jp(this, this.c)), 161), 171);
+ }, s.ec = function() {
+ var e;
+ return e = this.i, u(u(e || (this.i = I(this.c, 171) ? new Qp(this, u(this.c, 171)) : I(this.c, 161) ? new R9(this, u(this.c, 161)) : new Sw(this, this.c)), 84), 271);
+ }, s.bc = function() {
+ return I(this.c, 171) ? new Qp(this, u(this.c, 171)) : I(this.c, 161) ? new R9(this, u(this.c, 161)) : new Sw(this, this.c);
+ }, w(an, "AbstractSortedKeySortedSetMultimap", 1658), b(2010, 1, { 1947: 1 }), s.Fb = function(e) {
+ return D4e(this, e);
+ }, s.Hb = function() {
+ var e;
+ return FV((e = this.g, e || (this.g = new MI(this))));
+ }, s.Ib = function() {
+ var e;
+ return uxn((e = this.f, e || (this.f = new Fz(this))));
+ }, w(an, "AbstractTable", 2010), b(665, df, wu, MI), s.$b = function() {
+ U9n();
+ }, s.Hc = function(e) {
+ var t, i;
+ return I(e, 468) ? (t = u(e, 682), i = u(db(zCn(this.a), nl(t.c.e, t.b)), 83), !!i && fQ(i.vc(), new wd(nl(t.c.c, t.a), D2(t.c, t.b, t.a)))) : !1;
+ }, s.Kc = function() {
+ return g1e(this.a);
+ }, s.Mc = function(e) {
+ var t, i;
+ return I(e, 468) ? (t = u(e, 682), i = u(db(zCn(this.a), nl(t.c.e, t.b)), 83), !!i && bge(i.vc(), new wd(nl(t.c.c, t.a), D2(t.c, t.b, t.a)))) : !1;
+ }, s.gc = function() {
+ return iCn(this.a);
+ }, s.Nc = function() {
+ return lae(this.a);
+ }, w(an, "AbstractTable/CellSet", 665), b(1928, 28, Pb, fvn), s.$b = function() {
+ U9n();
+ }, s.Hc = function(e) {
+ return Eve(this.a, e);
+ }, s.Kc = function() {
+ return p1e(this.a);
+ }, s.gc = function() {
+ return iCn(this.a);
+ }, s.Nc = function() {
+ return uAn(this.a);
+ }, w(an, "AbstractTable/Values", 1928), b(1632, 1631, $a), w(an, "ArrayListMultimapGwtSerializationDependencies", 1632), b(513, 1632, $a, JI, iX), s.hc = function() {
+ return new Ic(this.a);
+ }, s.a = 0, w(an, "ArrayListMultimap", 513), b(664, 2010, { 664: 1, 1947: 1, 3: 1 }, $Ln), w(an, "ArrayTable", 664), b(1924, 386, E4, _yn), s.Xb = function(e) {
+ return new BV(this.a, e);
+ }, w(an, "ArrayTable/1", 1924), b(1925, 1, {}, tvn), s.ld = function(e) {
+ return new BV(this.a, e);
+ }, w(an, "ArrayTable/1methodref$getCell$Type", 1925), b(2011, 1, { 682: 1 }), s.Fb = function(e) {
+ var t;
+ return e === this ? !0 : I(e, 468) ? (t = u(e, 682), $f(nl(this.c.e, this.b), nl(t.c.e, t.b)) && $f(nl(this.c.c, this.a), nl(t.c.c, t.a)) && $f(D2(this.c, this.b, this.a), D2(t.c, t.b, t.a))) : !1;
+ }, s.Hb = function() {
+ return gT(A(M(Zn, 1), rn, 1, 5, [nl(this.c.e, this.b), nl(this.c.c, this.a), D2(this.c, this.b, this.a)]));
+ }, s.Ib = function() {
+ return "(" + nl(this.c.e, this.b) + "," + nl(this.c.c, this.a) + ")=" + D2(this.c, this.b, this.a);
+ }, w(an, "Tables/AbstractCell", 2011), b(468, 2011, { 468: 1, 682: 1 }, BV), s.a = 0, s.b = 0, s.d = 0, w(an, "ArrayTable/2", 468), b(1927, 1, {}, ivn), s.ld = function(e) {
+ return pPn(this.a, e);
+ }, w(an, "ArrayTable/2methodref$getValue$Type", 1927), b(1926, 386, E4, Kyn), s.Xb = function(e) {
+ return pPn(this.a, e);
+ }, w(an, "ArrayTable/3", 1926), b(1979, 1967, c0), s.$b = function() {
+ DE(this.kc());
+ }, s.vc = function() {
+ return new Cvn(this);
+ }, s.lc = function() {
+ return new mTn(this.kc(), this.gc());
+ }, w(an, "Maps/IteratorBasedAbstractMap", 1979), b(828, 1979, c0), s.$b = function() {
+ throw T(new je());
+ }, s._b = function(e) {
+ return l8n(this.c, e);
+ }, s.kc = function() {
+ return new Hyn(this, this.c.b.c.gc());
+ }, s.lc = function() {
+ return gD(this.c.b.c.gc(), 16, new rvn(this));
+ }, s.xc = function(e) {
+ var t;
+ return t = u(M5(this.c, e), 19), t ? this.nd(t.a) : null;
+ }, s.dc = function() {
+ return this.c.b.c.dc();
+ }, s.ec = function() {
+ return CD(this.c);
+ }, s.zc = function(e, t) {
+ var i;
+ if (i = u(M5(this.c, e), 19), !i)
+ throw T(new Hn(this.md() + " " + e + " not in " + CD(this.c)));
+ return this.od(i.a, t);
+ }, s.Bc = function(e) {
+ throw T(new je());
+ }, s.gc = function() {
+ return this.c.b.c.gc();
+ }, w(an, "ArrayTable/ArrayMap", 828), b(1923, 1, {}, rvn), s.ld = function(e) {
+ return WCn(this.a, e);
+ }, w(an, "ArrayTable/ArrayMap/0methodref$getEntry$Type", 1923), b(1921, 345, PM, z8n), s.cd = function() {
+ return Dce(this.a, this.b);
+ }, s.dd = function() {
+ return this.a.nd(this.b);
+ }, s.ed = function(e) {
+ return this.a.od(this.b, e);
+ }, s.b = 0, w(an, "ArrayTable/ArrayMap/1", 1921), b(1922, 386, E4, Hyn), s.Xb = function(e) {
+ return WCn(this.a, e);
+ }, w(an, "ArrayTable/ArrayMap/2", 1922), b(1920, 828, c0, FCn), s.md = function() {
+ return "Column";
+ }, s.nd = function(e) {
+ return D2(this.b, this.a, e);
+ }, s.od = function(e, t) {
+ return qOn(this.b, this.a, e, t);
+ }, s.a = 0, w(an, "ArrayTable/Row", 1920), b(829, 828, c0, Fz), s.nd = function(e) {
+ return new FCn(this.a, e);
+ }, s.zc = function(e, t) {
+ return u(t, 83), wie();
+ }, s.od = function(e, t) {
+ return u(t, 83), gie();
+ }, s.md = function() {
+ return "Row";
+ }, w(an, "ArrayTable/RowMap", 829), b(1120, 1, qs, U8n), s.qd = function() {
+ return this.a.qd() & -262;
+ }, s.rd = function() {
+ return this.a.rd();
+ }, s.Nb = function(e) {
+ this.a.Nb(new K8n(e, this.b));
+ }, s.sd = function(e) {
+ return this.a.sd(new _8n(e, this.b));
+ }, w(an, "CollectSpliterators/1", 1120), b(1121, 1, Yn, _8n), s.td = function(e) {
+ this.a.td(this.b.Kb(e));
+ }, w(an, "CollectSpliterators/1/lambda$0$Type", 1121), b(1122, 1, Yn, K8n), s.td = function(e) {
+ this.a.td(this.b.Kb(e));
+ }, w(an, "CollectSpliterators/1/lambda$1$Type", 1122), b(1123, 1, qs, pAn), s.qd = function() {
+ return this.a;
+ }, s.rd = function() {
+ return this.d && (this.b = yyn(this.b, this.d.rd())), yyn(this.b, 0);
+ }, s.Nb = function(e) {
+ this.d && (this.d.Nb(e), this.d = null), this.c.Nb(new R8n(this.e, e)), this.b = 0;
+ }, s.sd = function(e) {
+ for (; ; ) {
+ if (this.d && this.d.sd(e))
+ return b5(this.b, IM) && (this.b = pl(this.b, 1)), !0;
+ if (this.d = null, !this.c.sd(new H8n(this, this.e)))
+ return !1;
+ }
+ }, s.a = 0, s.b = 0, w(an, "CollectSpliterators/1FlatMapSpliterator", 1123), b(1124, 1, Yn, H8n), s.td = function(e) {
+ xue(this.a, this.b, e);
+ }, w(an, "CollectSpliterators/1FlatMapSpliterator/lambda$0$Type", 1124), b(1125, 1, Yn, R8n), s.td = function(e) {
+ mce(this.b, this.a, e);
+ }, w(an, "CollectSpliterators/1FlatMapSpliterator/lambda$1$Type", 1125), b(1117, 1, qs, Zjn), s.qd = function() {
+ return 16464 | this.b;
+ }, s.rd = function() {
+ return this.a.rd();
+ }, s.Nb = function(e) {
+ this.a.xe(new G8n(e, this.c));
+ }, s.sd = function(e) {
+ return this.a.ye(new q8n(e, this.c));
+ }, s.b = 0, w(an, "CollectSpliterators/1WithCharacteristics", 1117), b(1118, 1, Z7, q8n), s.ud = function(e) {
+ this.a.td(this.b.ld(e));
+ }, w(an, "CollectSpliterators/1WithCharacteristics/lambda$0$Type", 1118), b(1119, 1, Z7, G8n), s.ud = function(e) {
+ this.a.td(this.b.ld(e));
+ }, w(an, "CollectSpliterators/1WithCharacteristics/lambda$1$Type", 1119), b(245, 1, TL), s.wd = function(e) {
+ return this.vd(u(e, 245));
+ }, s.vd = function(e) {
+ var t;
+ return e == (HI(), uR) ? 1 : e == (qI(), cR) ? -1 : (t = (PE(), Y8(this.a, e.a)), t != 0 ? t : I(this, 519) == I(e, 519) ? 0 : I(this, 519) ? 1 : -1);
+ }, s.zd = function() {
+ return this.a;
+ }, s.Fb = function(e) {
+ return KQ(this, e);
+ }, w(an, "Cut", 245), b(1761, 245, TL, V9n), s.vd = function(e) {
+ return e == this ? 0 : 1;
+ }, s.xd = function(e) {
+ throw T(new _q());
+ }, s.yd = function(e) {
+ e.a += "+∞)";
+ }, s.zd = function() {
+ throw T(new $r(V_n));
+ }, s.Hb = function() {
+ return Zf(), QQ(this);
+ }, s.Ad = function(e) {
+ return !1;
+ }, s.Ib = function() {
+ return "+∞";
+ };
+ var cR;
+ w(an, "Cut/AboveAll", 1761), b(519, 245, { 245: 1, 519: 1, 3: 1, 35: 1 }, Wyn), s.xd = function(e) {
+ cc((e.a += "(", e), this.a);
+ }, s.yd = function(e) {
+ ul(cc(e, this.a), 93);
+ }, s.Hb = function() {
+ return ~mt(this.a);
+ }, s.Ad = function(e) {
+ return PE(), Y8(this.a, e) < 0;
+ }, s.Ib = function() {
+ return "/" + this.a + "\\";
+ }, w(an, "Cut/AboveValue", 519), b(1760, 245, TL, Q9n), s.vd = function(e) {
+ return e == this ? 0 : -1;
+ }, s.xd = function(e) {
+ e.a += "(-∞";
+ }, s.yd = function(e) {
+ throw T(new _q());
+ }, s.zd = function() {
+ throw T(new $r(V_n));
+ }, s.Hb = function() {
+ return Zf(), QQ(this);
+ }, s.Ad = function(e) {
+ return !0;
+ }, s.Ib = function() {
+ return "-∞";
+ };
+ var uR;
+ w(an, "Cut/BelowAll", 1760), b(1762, 245, TL, Xyn), s.xd = function(e) {
+ cc((e.a += "[", e), this.a);
+ }, s.yd = function(e) {
+ ul(cc(e, this.a), 41);
+ }, s.Hb = function() {
+ return mt(this.a);
+ }, s.Ad = function(e) {
+ return PE(), Y8(this.a, e) <= 0;
+ }, s.Ib = function() {
+ return "\\" + this.a + "/";
+ }, w(an, "Cut/BelowValue", 1762), b(537, 1, lh), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Ib = function() {
+ return Gge(u(tC(this, "use Optional.orNull() instead of Optional.or(null)"), 20).Kc());
+ }, w(an, "FluentIterable", 537), b(433, 537, lh, p5), s.Kc = function() {
+ return new re(ue(this.a.Kc(), new Mn()));
+ }, w(an, "FluentIterable/2", 433), b(1046, 537, lh, Ykn), s.Kc = function() {
+ return cl(this);
+ }, w(an, "FluentIterable/3", 1046), b(708, 386, E4, xz), s.Xb = function(e) {
+ return this.a[e].Kc();
+ }, w(an, "FluentIterable/3/1", 708), b(1972, 1, {}), s.Ib = function() {
+ return Nr(this.Bd().b);
+ }, w(an, "ForwardingObject", 1972), b(1973, 1972, Q_n), s.Bd = function() {
+ return this.Cd();
+ }, s.Jc = function(e) {
+ $i(this, e);
+ }, s.Lc = function() {
+ return this.Oc();
+ }, s.Nc = function() {
+ return new xn(this, 0);
+ }, s.Oc = function() {
+ return new $n(null, this.Nc());
+ }, s.Fc = function(e) {
+ return this.Cd(), w8n();
+ }, s.Gc = function(e) {
+ return this.Cd(), g8n();
+ }, s.$b = function() {
+ this.Cd(), p8n();
+ }, s.Hc = function(e) {
+ return this.Cd().Hc(e);
+ }, s.Ic = function(e) {
+ return this.Cd().Ic(e);
+ }, s.dc = function() {
+ return this.Cd().b.dc();
+ }, s.Kc = function() {
+ return this.Cd().Kc();
+ }, s.Mc = function(e) {
+ return this.Cd(), v8n();
+ }, s.gc = function() {
+ return this.Cd().b.gc();
+ }, s.Pc = function() {
+ return this.Cd().Pc();
+ }, s.Qc = function(e) {
+ return this.Cd().Qc(e);
+ }, w(an, "ForwardingCollection", 1973), b(1980, 28, XZ), s.Kc = function() {
+ return this.Ed();
+ }, s.Fc = function(e) {
+ throw T(new je());
+ }, s.Gc = function(e) {
+ throw T(new je());
+ }, s.$b = function() {
+ throw T(new je());
+ }, s.Hc = function(e) {
+ return e != null && bb(this, e, !1);
+ }, s.Dd = function() {
+ switch (this.gc()) {
+ case 0:
+ return eb(), eb(), sR;
+ case 1:
+ return eb(), new pD(pe(this.Ed().Pb()));
+ default:
+ return new xCn(this, this.Pc());
+ }
+ }, s.Mc = function(e) {
+ throw T(new je());
+ }, w(an, "ImmutableCollection", 1980), b(712, 1980, XZ, Bq), s.Kc = function() {
+ return $2(this.a.Kc());
+ }, s.Hc = function(e) {
+ return e != null && this.a.Hc(e);
+ }, s.Ic = function(e) {
+ return this.a.Ic(e);
+ }, s.dc = function() {
+ return this.a.dc();
+ }, s.Ed = function() {
+ return $2(this.a.Kc());
+ }, s.gc = function() {
+ return this.a.gc();
+ }, s.Pc = function() {
+ return this.a.Pc();
+ }, s.Qc = function(e) {
+ return this.a.Qc(e);
+ }, s.Ib = function() {
+ return Nr(this.a);
+ }, w(an, "ForwardingImmutableCollection", 712), b(152, 1980, x6), s.Kc = function() {
+ return this.Ed();
+ }, s.Yc = function() {
+ return this.Fd(0);
+ }, s.Zc = function(e) {
+ return this.Fd(e);
+ }, s.ad = function(e) {
+ Lw(this, e);
+ }, s.Nc = function() {
+ return new xn(this, 16);
+ }, s.bd = function(e, t) {
+ return this.Gd(e, t);
+ }, s.Vc = function(e, t) {
+ throw T(new je());
+ }, s.Wc = function(e, t) {
+ throw T(new je());
+ }, s.Fb = function(e) {
+ return Rme(this, e);
+ }, s.Hb = function() {
+ return Qbe(this);
+ }, s.Xc = function(e) {
+ return e == null ? -1 : f3e(this, e);
+ }, s.Ed = function() {
+ return this.Fd(0);
+ }, s.Fd = function(e) {
+ return Qz(this, e);
+ }, s.$c = function(e) {
+ throw T(new je());
+ }, s._c = function(e, t) {
+ throw T(new je());
+ }, s.Gd = function(e, t) {
+ var i;
+ return mT((i = new i7n(this), new ch(i, e, t)));
+ };
+ var sR;
+ w(an, "ImmutableList", 152), b(2006, 152, x6), s.Kc = function() {
+ return $2(this.Hd().Kc());
+ }, s.bd = function(e, t) {
+ return mT(this.Hd().bd(e, t));
+ }, s.Hc = function(e) {
+ return e != null && this.Hd().Hc(e);
+ }, s.Ic = function(e) {
+ return this.Hd().Ic(e);
+ }, s.Fb = function(e) {
+ return tt(this.Hd(), e);
+ }, s.Xb = function(e) {
+ return nl(this, e);
+ }, s.Hb = function() {
+ return mt(this.Hd());
+ }, s.Xc = function(e) {
+ return this.Hd().Xc(e);
+ }, s.dc = function() {
+ return this.Hd().dc();
+ }, s.Ed = function() {
+ return $2(this.Hd().Kc());
+ }, s.gc = function() {
+ return this.Hd().gc();
+ }, s.Gd = function(e, t) {
+ return mT(this.Hd().bd(e, t));
+ }, s.Pc = function() {
+ return this.Hd().Qc(F(Zn, rn, 1, this.Hd().gc(), 5, 1));
+ }, s.Qc = function(e) {
+ return this.Hd().Qc(e);
+ }, s.Ib = function() {
+ return Nr(this.Hd());
+ }, w(an, "ForwardingImmutableList", 2006), b(714, 1, C4), s.vc = function() {
+ return Cd(this);
+ }, s.wc = function(e) {
+ n6(this, e);
+ }, s.ec = function() {
+ return CD(this);
+ }, s.yc = function(e, t, i) {
+ return IF(this, e, t, i);
+ }, s.Cc = function() {
+ return this.Ld();
+ }, s.$b = function() {
+ throw T(new je());
+ }, s._b = function(e) {
+ return this.xc(e) != null;
+ }, s.uc = function(e) {
+ return this.Ld().Hc(e);
+ }, s.Jd = function() {
+ return new _mn(this);
+ }, s.Kd = function() {
+ return new Kmn(this);
+ }, s.Fb = function(e) {
+ return Hwe(this, e);
+ }, s.Hb = function() {
+ return Cd(this).Hb();
+ }, s.dc = function() {
+ return this.gc() == 0;
+ }, s.zc = function(e, t) {
+ return pie();
+ }, s.Bc = function(e) {
+ throw T(new je());
+ }, s.Ib = function() {
+ return k5e(this);
+ }, s.Ld = function() {
+ return this.e ? this.e : this.e = this.Kd();
+ }, s.c = null, s.d = null, s.e = null;
+ var hzn;
+ w(an, "ImmutableMap", 714), b(715, 714, C4), s._b = function(e) {
+ return l8n(this, e);
+ }, s.uc = function(e) {
+ return s7n(this.b, e);
+ }, s.Id = function() {
+ return LDn(new hvn(this));
+ }, s.Jd = function() {
+ return LDn(wTn(this.b));
+ }, s.Kd = function() {
+ return Df(), new Bq(bTn(this.b));
+ }, s.Fb = function(e) {
+ return o7n(this.b, e);
+ }, s.xc = function(e) {
+ return M5(this, e);
+ }, s.Hb = function() {
+ return mt(this.b.c);
+ }, s.dc = function() {
+ return this.b.c.dc();
+ }, s.gc = function() {
+ return this.b.c.gc();
+ }, s.Ib = function() {
+ return Nr(this.b.c);
+ }, w(an, "ForwardingImmutableMap", 715), b(1974, 1973, ML), s.Bd = function() {
+ return this.Md();
+ }, s.Cd = function() {
+ return this.Md();
+ }, s.Nc = function() {
+ return new xn(this, 1);
+ }, s.Fb = function(e) {
+ return e === this || this.Md().Fb(e);
+ }, s.Hb = function() {
+ return this.Md().Hb();
+ }, w(an, "ForwardingSet", 1974), b(1069, 1974, ML, hvn), s.Bd = function() {
+ return g3(this.a.b);
+ }, s.Cd = function() {
+ return g3(this.a.b);
+ }, s.Hc = function(e) {
+ if (I(e, 42) && u(e, 42).cd() == null)
+ return !1;
+ try {
+ return u7n(g3(this.a.b), e);
+ } catch (t) {
+ if (t = jt(t), I(t, 205))
+ return !1;
+ throw T(t);
+ }
+ }, s.Md = function() {
+ return g3(this.a.b);
+ }, s.Qc = function(e) {
+ var t;
+ return t = QTn(g3(this.a.b), e), g3(this.a.b).b.gc() < t.length && Mt(t, g3(this.a.b).b.gc(), null), t;
+ }, w(an, "ForwardingImmutableMap/1", 1069), b(1981, 1980, T4), s.Kc = function() {
+ return this.Ed();
+ }, s.Nc = function() {
+ return new xn(this, 1);
+ }, s.Fb = function(e) {
+ return ZJ(this, e);
+ }, s.Hb = function() {
+ return rOn(this);
+ }, w(an, "ImmutableSet", 1981), b(703, 1981, T4), s.Kc = function() {
+ return $2(new _p(this.a.b.Kc()));
+ }, s.Hc = function(e) {
+ return e != null && _9(this.a, e);
+ }, s.Ic = function(e) {
+ return r7n(this.a, e);
+ }, s.Hb = function() {
+ return mt(this.a.b);
+ }, s.dc = function() {
+ return this.a.b.dc();
+ }, s.Ed = function() {
+ return $2(new _p(this.a.b.Kc()));
+ }, s.gc = function() {
+ return this.a.b.gc();
+ }, s.Pc = function() {
+ return this.a.b.Pc();
+ }, s.Qc = function(e) {
+ return c7n(this.a, e);
+ }, s.Ib = function() {
+ return Nr(this.a.b);
+ }, w(an, "ForwardingImmutableSet", 703), b(1975, 1974, J_n), s.Bd = function() {
+ return this.b;
+ }, s.Cd = function() {
+ return this.b;
+ }, s.Md = function() {
+ return this.b;
+ }, s.Nc = function() {
+ return new xj(this);
+ }, w(an, "ForwardingSortedSet", 1975), b(533, 1979, C4, HT), s.Ac = function(e) {
+ Z5(this, e);
+ }, s.Cc = function() {
+ var e;
+ return e = this.d, new KO(e || (this.d = new SI(this)));
+ }, s.$b = function() {
+ $8(this);
+ }, s._b = function(e) {
+ return !!J5(this, e, ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15))));
+ }, s.uc = function(e) {
+ return bIn(this, e);
+ }, s.kc = function() {
+ return new qyn(this, this);
+ }, s.wc = function(e) {
+ sMn(this, e);
+ }, s.xc = function(e) {
+ return xw(this, e);
+ }, s.ec = function() {
+ return new HO(this);
+ }, s.zc = function(e, t) {
+ return gM(this, e, t);
+ }, s.Bc = function(e) {
+ var t;
+ return t = J5(this, e, ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15)))), t ? (Yw(this, t), t.e = null, t.c = null, t.i) : null;
+ }, s.gc = function() {
+ return this.i;
+ }, s.pd = function() {
+ var e;
+ return e = this.d, new KO(e || (this.d = new SI(this)));
+ }, s.f = 0, s.g = 0, s.i = 0, w(an, "HashBiMap", 533), b(534, 1, Ei), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return MAn(this);
+ }, s.Pb = function() {
+ var e;
+ if (!MAn(this))
+ throw T(new rc());
+ return e = this.c, this.c = e.c, this.f = e, --this.d, this.Nd(e);
+ }, s.Qb = function() {
+ if (this.e.g != this.b)
+ throw T(new ps());
+ Nw(!!this.f), Yw(this.e, this.f), this.b = this.e.g, this.f = null;
+ }, s.b = 0, s.d = 0, s.f = null, w(an, "HashBiMap/Itr", 534), b(1011, 534, Ei, qyn), s.Nd = function(e) {
+ return new V8n(this, e);
+ }, w(an, "HashBiMap/1", 1011), b(1012, 345, PM, V8n), s.cd = function() {
+ return this.a.g;
+ }, s.dd = function() {
+ return this.a.i;
+ }, s.ed = function(e) {
+ var t, i, r;
+ return i = this.a.i, r = ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15))), r == this.a.f && (B(e) === B(i) || e != null && tt(e, i)) ? e : (ROn(!Y5(this.b.a, e, r), e), Yw(this.b.a, this.a), t = new VE(this.a.g, this.a.a, e, r), D7(this.b.a, t, this.a), this.a.e = null, this.a.c = null, this.b.b = this.b.a.g, this.b.f == this.a && (this.b.f = t), this.a = t, i);
+ }, w(an, "HashBiMap/1/MapEntry", 1012), b(238, 345, { 345: 1, 238: 1, 3: 1, 42: 1 }, wd), s.cd = function() {
+ return this.g;
+ }, s.dd = function() {
+ return this.i;
+ }, s.ed = function(e) {
+ throw T(new je());
+ }, w(an, "ImmutableEntry", 238), b(317, 238, { 345: 1, 317: 1, 238: 1, 3: 1, 42: 1 }, VE), s.a = 0, s.f = 0;
+ var oR = w(an, "HashBiMap/BiEntry", 317);
+ b(610, 1979, C4, SI), s.Ac = function(e) {
+ Z5(this, e);
+ }, s.Cc = function() {
+ return new HO(this.a);
+ }, s.$b = function() {
+ $8(this.a);
+ }, s._b = function(e) {
+ return bIn(this.a, e);
+ }, s.kc = function() {
+ return new Gyn(this, this.a);
+ }, s.wc = function(e) {
+ pe(e), sMn(this.a, new lvn(e));
+ }, s.xc = function(e) {
+ return ZC(this, e);
+ }, s.ec = function() {
+ return new KO(this);
+ }, s.zc = function(e, t) {
+ return Gke(this.a, e, t, !1);
+ }, s.Bc = function(e) {
+ var t;
+ return t = Y5(this.a, e, ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15)))), t ? (Yw(this.a, t), t.e = null, t.c = null, t.g) : null;
+ }, s.gc = function() {
+ return this.a.i;
+ }, s.pd = function() {
+ return new HO(this.a);
+ }, w(an, "HashBiMap/Inverse", 610), b(1008, 534, Ei, Gyn), s.Nd = function(e) {
+ return new Q8n(this, e);
+ }, w(an, "HashBiMap/Inverse/1", 1008), b(1009, 345, PM, Q8n), s.cd = function() {
+ return this.a.i;
+ }, s.dd = function() {
+ return this.a.g;
+ }, s.ed = function(e) {
+ var t, i, r;
+ return r = this.a.g, t = ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15))), t == this.a.a && (B(e) === B(r) || e != null && tt(e, r)) ? e : (ROn(!J5(this.b.a.a, e, t), e), Yw(this.b.a.a, this.a), i = new VE(e, t, this.a.i, this.a.f), this.a = i, D7(this.b.a.a, i, null), this.b.b = this.b.a.a.g, r);
+ }, w(an, "HashBiMap/Inverse/1/InverseEntry", 1009), b(611, 532, wu, KO), s.Kc = function() {
+ return new $9n(this.a.a);
+ }, s.Mc = function(e) {
+ var t;
+ return t = Y5(this.a.a, e, ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15)))), t ? (Yw(this.a.a, t), !0) : !1;
+ }, w(an, "HashBiMap/Inverse/InverseKeySet", 611), b(1007, 534, Ei, $9n), s.Nd = function(e) {
+ return e.i;
+ }, w(an, "HashBiMap/Inverse/InverseKeySet/1", 1007), b(1010, 1, {}, lvn), s.Od = function(e, t) {
+ Vte(this.a, e, t);
+ }, w(an, "HashBiMap/Inverse/lambda$0$Type", 1010), b(609, 532, wu, HO), s.Kc = function() {
+ return new F9n(this.a);
+ }, s.Mc = function(e) {
+ var t;
+ return t = J5(this.a, e, ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15)))), t ? (Yw(this.a, t), t.e = null, t.c = null, !0) : !1;
+ }, w(an, "HashBiMap/KeySet", 609), b(1006, 534, Ei, F9n), s.Nd = function(e) {
+ return e.g;
+ }, w(an, "HashBiMap/KeySet/1", 1006), b(1093, 619, $a), w(an, "HashMultimapGwtSerializationDependencies", 1093), b(265, 1093, $a, Dd), s.hc = function() {
+ return new kj(ob(this.a));
+ }, s.gd = function() {
+ return new kj(ob(this.a));
+ }, s.a = 2, w(an, "HashMultimap", 265), b(1999, 152, x6), s.Hc = function(e) {
+ return this.Pd().Hc(e);
+ }, s.dc = function() {
+ return this.Pd().dc();
+ }, s.gc = function() {
+ return this.Pd().gc();
+ }, w(an, "ImmutableAsList", 1999), b(1931, 715, C4), s.Ld = function() {
+ return Df(), new u2(this.a);
+ }, s.Cc = function() {
+ return Df(), new u2(this.a);
+ }, s.pd = function() {
+ return Df(), new u2(this.a);
+ }, w(an, "ImmutableBiMap", 1931), b(1977, 1, {}), w(an, "ImmutableCollection/Builder", 1977), b(1022, 703, T4, x9n), w(an, "ImmutableEnumSet", 1022), b(969, 386, E4, Yjn), s.Xb = function(e) {
+ return this.a.Xb(e);
+ }, w(an, "ImmutableList/1", 969), b(968, 1977, {}, Djn), w(an, "ImmutableList/Builder", 968), b(614, 198, j4, PI), s.Ob = function() {
+ return this.a.Ob();
+ }, s.Pb = function() {
+ return u(this.a.Pb(), 42).cd();
+ }, w(an, "ImmutableMap/1", 614), b(1041, 1, {}, ki), s.Kb = function(e) {
+ return u(e, 42).cd();
+ }, w(an, "ImmutableMap/2methodref$getKey$Type", 1041), b(1040, 1, {}, $jn), w(an, "ImmutableMap/Builder", 1040), b(2e3, 1981, T4), s.Kc = function() {
+ var e;
+ return e = Cd(this.a).Ed(), new PI(e);
+ }, s.Dd = function() {
+ return new Rq(this);
+ }, s.Jc = function(e) {
+ var t, i;
+ for (pe(e), i = this.gc(), t = 0; t < i; t++)
+ e.td(u(vW(Cd(this.a)).Xb(t), 42).cd());
+ }, s.Ed = function() {
+ var e;
+ return (e = this.c, e || (this.c = new Rq(this))).Ed();
+ }, s.Nc = function() {
+ return gD(this.gc(), 1296, new dvn(this));
+ }, w(an, "IndexedImmutableSet", 2e3), b(1180, 2e3, T4, _mn), s.Kc = function() {
+ var e;
+ return e = Cd(this.a).Ed(), new PI(e);
+ }, s.Hc = function(e) {
+ return this.a._b(e);
+ }, s.Jc = function(e) {
+ pe(e), n6(this.a, new avn(e));
+ }, s.Ed = function() {
+ var e;
+ return e = Cd(this.a).Ed(), new PI(e);
+ }, s.gc = function() {
+ return this.a.gc();
+ }, s.Nc = function() {
+ return g8(Cd(this.a).Nc(), new ki());
+ }, w(an, "ImmutableMapKeySet", 1180), b(1181, 1, {}, avn), s.Od = function(e, t) {
+ Df(), this.a.td(e);
+ }, w(an, "ImmutableMapKeySet/lambda$0$Type", 1181), b(1178, 1980, XZ, Kmn), s.Kc = function() {
+ return new dD(this);
+ }, s.Hc = function(e) {
+ return e != null && O4e(new dD(this), e);
+ }, s.Ed = function() {
+ return new dD(this);
+ }, s.gc = function() {
+ return this.a.gc();
+ }, s.Nc = function() {
+ return g8(Cd(this.a).Nc(), new nr());
+ }, w(an, "ImmutableMapValues", 1178), b(1179, 1, {}, nr), s.Kb = function(e) {
+ return u(e, 42).dd();
+ }, w(an, "ImmutableMapValues/0methodref$getValue$Type", 1179), b(626, 198, j4, dD), s.Ob = function() {
+ return this.a.Ob();
+ }, s.Pb = function() {
+ return u(this.a.Pb(), 42).dd();
+ }, w(an, "ImmutableMapValues/1", 626), b(1182, 1, {}, dvn), s.ld = function(e) {
+ return NCn(this.a, e);
+ }, w(an, "IndexedImmutableSet/0methodref$get$Type", 1182), b(752, 1999, x6, Rq), s.Pd = function() {
+ return this.a;
+ }, s.Xb = function(e) {
+ return NCn(this.a, e);
+ }, s.gc = function() {
+ return this.a.a.gc();
+ }, w(an, "IndexedImmutableSet/1", 752), b(44, 1, {}, Mn), s.Kb = function(e) {
+ return u(e, 20).Kc();
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(an, "Iterables/10", 44), b(1042, 537, lh, BEn), s.Jc = function(e) {
+ pe(e), this.b.Jc(new J8n(this.a, e));
+ }, s.Kc = function() {
+ return yz(this);
+ }, w(an, "Iterables/4", 1042), b(1043, 1, Yn, J8n), s.td = function(e) {
+ gre(this.b, this.a, e);
+ }, w(an, "Iterables/4/lambda$0$Type", 1043), b(1044, 537, lh, REn), s.Jc = function(e) {
+ pe(e), $i(this.a, new W8n(e, this.b));
+ }, s.Kc = function() {
+ return ue(new ie(this.a), this.b);
+ }, w(an, "Iterables/5", 1044), b(1045, 1, Yn, W8n), s.td = function(e) {
+ this.a.td(fyn(e));
+ }, w(an, "Iterables/5/lambda$0$Type", 1045), b(1071, 198, j4, bvn), s.Ob = function() {
+ return this.a.Ob();
+ }, s.Pb = function() {
+ return this.a.Pb();
+ }, w(an, "Iterators/1", 1071), b(1072, 699, j4, X8n), s.Yb = function() {
+ for (var e; this.b.Ob(); )
+ if (e = this.b.Pb(), this.a.Lb(e))
+ return e;
+ return this.e = 2, null;
+ }, w(an, "Iterators/5", 1072), b(487, 1, Ei), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return this.b.Ob();
+ }, s.Pb = function() {
+ return this.Qd(this.b.Pb());
+ }, s.Qb = function() {
+ this.b.Qb();
+ }, w(an, "TransformedIterator", 487), b(1073, 487, Ei, zyn), s.Qd = function(e) {
+ return this.a.Kb(e);
+ }, w(an, "Iterators/6", 1073), b(717, 198, j4, uq), s.Ob = function() {
+ return !this.a;
+ }, s.Pb = function() {
+ if (this.a)
+ throw T(new rc());
+ return this.a = !0, this.b;
+ }, s.a = !1, w(an, "Iterators/9", 717), b(1070, 386, E4, oCn), s.Xb = function(e) {
+ return this.a[this.b + e];
+ }, s.b = 0;
+ var lzn;
+ w(an, "Iterators/ArrayItr", 1070), b(39, 1, { 39: 1, 47: 1 }, re), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return Se(this);
+ }, s.Pb = function() {
+ return ve(this);
+ }, s.Qb = function() {
+ Nw(!!this.c), this.c.Qb(), this.c = null;
+ }, w(an, "Iterators/ConcatenatedIterator", 39), b(22, 1, { 3: 1, 35: 1, 22: 1 }), s.wd = function(e) {
+ return R9n(this, u(e, 22));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Hb = function() {
+ return kd(this);
+ }, s.Ib = function() {
+ return VO(this);
+ }, s.g = 0;
+ var Ie = w(Ur, "Enum", 22);
+ b(538, 22, { 538: 1, 3: 1, 35: 1, 22: 1, 47: 1 }, Vyn), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return !1;
+ }, s.Pb = function() {
+ throw T(new rc());
+ }, s.Qb = function() {
+ Nw(!1);
+ };
+ var fR, azn = Ae(an, "Iterators/EmptyModifiableIterator", 538, Ie, hhe, zce), dzn;
+ b(1834, 619, $a), w(an, "LinkedHashMultimapGwtSerializationDependencies", 1834), b(1835, 1834, $a, MDn), s.hc = function() {
+ return new UO(ob(this.b));
+ }, s.$b = function() {
+ QC(this), $9(this.a, this.a);
+ }, s.gd = function() {
+ return new UO(ob(this.b));
+ }, s.ic = function(e) {
+ return new lDn(this, e, this.b);
+ }, s.kc = function() {
+ return new Nz(this);
+ }, s.lc = function() {
+ var e;
+ return new xn((e = this.g, u(e || (this.g = new rG(this)), 21)), 17);
+ }, s.ec = function() {
+ var e;
+ return e = this.i, e || (this.i = new Sw(this, this.c));
+ }, s.nc = function() {
+ return new fG(new Nz(this));
+ }, s.oc = function() {
+ var e;
+ return g8(new xn((e = this.g, u(e || (this.g = new rG(this)), 21)), 17), new ic());
+ }, s.b = 2, w(an, "LinkedHashMultimap", 1835), b(1838, 1, {}, ic), s.Kb = function(e) {
+ return u(e, 42).dd();
+ }, w(an, "LinkedHashMultimap/0methodref$getValue$Type", 1838), b(824, 1, Ei, Nz), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return I0e(this);
+ }, s.Ob = function() {
+ return this.a != this.b.a;
+ }, s.Qb = function() {
+ Nw(!!this.c), iAn(this.b, this.c.g, this.c.i), this.c = null;
+ }, w(an, "LinkedHashMultimap/1", 824), b(330, 238, { 345: 1, 238: 1, 330: 1, 2020: 1, 3: 1, 42: 1 }, RW), s.Rd = function() {
+ return this.f;
+ }, s.Sd = function(e) {
+ this.c = e;
+ }, s.Td = function(e) {
+ this.f = e;
+ }, s.d = 0;
+ var bzn = w(an, "LinkedHashMultimap/ValueEntry", 330);
+ b(1836, 1970, { 2020: 1, 20: 1, 28: 1, 14: 1, 21: 1 }, lDn), s.Fc = function(e) {
+ var t, i, r, c, o;
+ for (o = ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15))), t = o & this.b.length - 1, c = this.b[t], i = c; i; i = i.a)
+ if (i.d == o && $f(i.i, e))
+ return !1;
+ return r = new RW(this.c, e, o, c), W9n(this.d, r), r.f = this, this.d = r, $9(this.g.a.b, r), $9(r, this.g.a), this.b[t] = r, ++this.f, ++this.e, S4e(this), !0;
+ }, s.$b = function() {
+ var e, t;
+ for (z9(this.b, null), this.f = 0, e = this.a; e != this; e = e.Rd())
+ t = u(e, 330), $9(t.b, t.e);
+ this.a = this, this.d = this, ++this.e;
+ }, s.Hc = function(e) {
+ var t, i;
+ for (i = ge(Ni(ah, rh(ge(Ni(e == null ? 0 : mt(e), dh)), 15))), t = this.b[i & this.b.length - 1]; t; t = t.a)
+ if (t.d == i && $f(t.i, e))
+ return !0;
+ return !1;
+ }, s.Jc = function(e) {
+ var t;
+ for (pe(e), t = this.a; t != this; t = t.Rd())
+ e.td(u(t, 330).i);
+ }, s.Rd = function() {
+ return this.a;
+ }, s.Kc = function() {
+ return new iTn(this);
+ }, s.Mc = function(e) {
+ return nNn(this, e);
+ }, s.Sd = function(e) {
+ this.d = e;
+ }, s.Td = function(e) {
+ this.a = e;
+ }, s.gc = function() {
+ return this.f;
+ }, s.e = 0, s.f = 0, w(an, "LinkedHashMultimap/ValueSet", 1836), b(1837, 1, Ei, iTn), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return sW(this), this.b != this.c;
+ }, s.Pb = function() {
+ var e, t;
+ if (sW(this), this.b == this.c)
+ throw T(new rc());
+ return e = u(this.b, 330), t = e.i, this.d = e, this.b = e.f, t;
+ }, s.Qb = function() {
+ sW(this), Nw(!!this.d), nNn(this.c, this.d.i), this.a = this.c.e, this.d = null;
+ }, s.a = 0, w(an, "LinkedHashMultimap/ValueSet/1", 1837), b(766, 1986, $a, Vkn), s.Zb = function() {
+ var e;
+ return e = this.f, e || (this.f = new xG(this));
+ }, s.Fb = function(e) {
+ return dF(this, e);
+ }, s.cc = function(e) {
+ return new tO(this, e);
+ }, s.fc = function(e) {
+ return vX(this, e);
+ }, s.$b = function() {
+ KCn(this);
+ }, s._b = function(e) {
+ return f7n(this, e);
+ }, s.ac = function() {
+ return new xG(this);
+ }, s.bc = function() {
+ return new Tvn(this);
+ }, s.qc = function(e) {
+ return new tO(this, e);
+ }, s.dc = function() {
+ return !this.a;
+ }, s.rc = function(e) {
+ return vX(this, e);
+ }, s.gc = function() {
+ return this.d;
+ }, s.c = 0, s.d = 0, w(an, "LinkedListMultimap", 766), b(52, 28, M4), s.ad = function(e) {
+ Lw(this, e);
+ }, s.Nc = function() {
+ return new xn(this, 16);
+ }, s.Vc = function(e, t) {
+ throw T(new t1("Add not supported on this list"));
+ }, s.Fc = function(e) {
+ return this.Vc(this.gc(), e), !0;
+ }, s.Wc = function(e, t) {
+ var i, r, c;
+ for (_n(t), i = !1, c = t.Kc(); c.Ob(); )
+ r = c.Pb(), this.Vc(e++, r), i = !0;
+ return i;
+ }, s.$b = function() {
+ this.Ud(0, this.gc());
+ }, s.Fb = function(e) {
+ return DY(this, e);
+ }, s.Hb = function() {
+ return GV(this);
+ }, s.Xc = function(e) {
+ return NIn(this, e);
+ }, s.Kc = function() {
+ return new $v(this);
+ }, s.Yc = function() {
+ return this.Zc(0);
+ }, s.Zc = function(e) {
+ return new Ii(this, e);
+ }, s.$c = function(e) {
+ throw T(new t1("Remove not supported on this list"));
+ }, s.Ud = function(e, t) {
+ var i, r;
+ for (r = this.Zc(e), i = e; i < t; ++i)
+ r.Pb(), r.Qb();
+ }, s._c = function(e, t) {
+ throw T(new t1("Set not supported on this list"));
+ }, s.bd = function(e, t) {
+ return new ch(this, e, t);
+ }, s.j = 0, w(fe, "AbstractList", 52), b(1964, 52, M4), s.Vc = function(e, t) {
+ u3(this, e, t);
+ }, s.Wc = function(e, t) {
+ return dDn(this, e, t);
+ }, s.Xb = function(e) {
+ return qo(this, e);
+ }, s.Kc = function() {
+ return this.Zc(0);
+ }, s.$c = function(e) {
+ return hx(this, e);
+ }, s._c = function(e, t) {
+ var i, r;
+ i = this.Zc(e);
+ try {
+ return r = i.Pb(), i.Wb(t), r;
+ } catch (c) {
+ throw c = jt(c), I(c, 109) ? T(new mr("Can't set element " + e)) : T(c);
+ }
+ }, w(fe, "AbstractSequentialList", 1964), b(636, 1964, M4, tO), s.Zc = function(e) {
+ return Zyn(this, e);
+ }, s.gc = function() {
+ var e;
+ return e = u(te(this.a.b, this.b), 283), e ? e.a : 0;
+ }, w(an, "LinkedListMultimap/1", 636), b(1297, 1970, wu, Tvn), s.Hc = function(e) {
+ return f7n(this.a, e);
+ }, s.Kc = function() {
+ return new ZIn(this.a);
+ }, s.Mc = function(e) {
+ return !vX(this.a, e).a.dc();
+ }, s.gc = function() {
+ return Xv(this.a.b);
+ }, w(an, "LinkedListMultimap/1KeySetImpl", 1297), b(1296, 1, Ei, ZIn), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return uW(this), !!this.c;
+ }, s.Pb = function() {
+ uW(this), _z(this.c), this.a = this.c, ci(this.d, this.a.a);
+ do
+ this.c = this.c.b;
+ while (this.c && !ci(this.d, this.c.a));
+ return this.a.a;
+ }, s.Qb = function() {
+ uW(this), Nw(!!this.a), DE(new x$(this.e, this.a.a)), this.a = null, this.b = this.e.c;
+ }, s.b = 0, w(an, "LinkedListMultimap/DistinctKeyIterator", 1296), b(283, 1, { 283: 1 }, XW), s.a = 0, w(an, "LinkedListMultimap/KeyList", 283), b(1295, 345, PM, Y8n), s.cd = function() {
+ return this.a;
+ }, s.dd = function() {
+ return this.f;
+ }, s.ed = function(e) {
+ var t;
+ return t = this.f, this.f = e, t;
+ }, w(an, "LinkedListMultimap/Node", 1295), b(560, 1, hh, x$, Wxn), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Rb = function(e) {
+ this.e = sZ(this.f, this.b, e, this.c), ++this.d, this.a = null;
+ }, s.Ob = function() {
+ return !!this.c;
+ }, s.Sb = function() {
+ return !!this.e;
+ }, s.Pb = function() {
+ return nX(this);
+ }, s.Tb = function() {
+ return this.d;
+ }, s.Ub = function() {
+ return mMn(this);
+ }, s.Vb = function() {
+ return this.d - 1;
+ }, s.Qb = function() {
+ Nw(!!this.a), this.a != this.c ? (this.e = this.a.e, --this.d) : this.c = this.a.c, $6e(this.f, this.a), this.a = null;
+ }, s.Wb = function(e) {
+ Rz(!!this.a), this.a.f = e;
+ }, s.d = 0, w(an, "LinkedListMultimap/ValueForKeyIterator", 560), b(1018, 52, M4), s.Vc = function(e, t) {
+ this.a.Vc(e, t);
+ }, s.Wc = function(e, t) {
+ return this.a.Wc(e, t);
+ }, s.Hc = function(e) {
+ return this.a.Hc(e);
+ }, s.Xb = function(e) {
+ return this.a.Xb(e);
+ }, s.$c = function(e) {
+ return this.a.$c(e);
+ }, s._c = function(e, t) {
+ return this.a._c(e, t);
+ }, s.gc = function() {
+ return this.a.gc();
+ }, w(an, "Lists/AbstractListWrapper", 1018), b(1019, 1018, Z_n), w(an, "Lists/RandomAccessListWrapper", 1019), b(1021, 1019, Z_n, i7n), s.Zc = function(e) {
+ return this.a.Zc(e);
+ }, w(an, "Lists/1", 1021), b(131, 52, { 131: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1 }, K0), s.Vc = function(e, t) {
+ this.a.Vc(a3(this, e), t);
+ }, s.$b = function() {
+ this.a.$b();
+ }, s.Xb = function(e) {
+ return this.a.Xb($W(this, e));
+ }, s.Kc = function() {
+ return rX(this, 0);
+ }, s.Zc = function(e) {
+ return rX(this, e);
+ }, s.$c = function(e) {
+ return this.a.$c($W(this, e));
+ }, s.Ud = function(e, t) {
+ (hAn(e, t, this.a.gc()), ma(this.a.bd(a3(this, t), a3(this, e)))).$b();
+ }, s._c = function(e, t) {
+ return this.a._c($W(this, e), t);
+ }, s.gc = function() {
+ return this.a.gc();
+ }, s.bd = function(e, t) {
+ return hAn(e, t, this.a.gc()), ma(this.a.bd(a3(this, t), a3(this, e)));
+ }, w(an, "Lists/ReverseList", 131), b(280, 131, { 131: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1 }, od), w(an, "Lists/RandomAccessReverseList", 280), b(1020, 1, hh, Z8n), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Rb = function(e) {
+ this.c.Rb(e), this.c.Ub(), this.a = !1;
+ }, s.Ob = function() {
+ return this.c.Sb();
+ }, s.Sb = function() {
+ return this.c.Ob();
+ }, s.Pb = function() {
+ return dSn(this);
+ }, s.Tb = function() {
+ return a3(this.b, this.c.Tb());
+ }, s.Ub = function() {
+ if (!this.c.Ob())
+ throw T(new rc());
+ return this.a = !0, this.c.Pb();
+ }, s.Vb = function() {
+ return a3(this.b, this.c.Tb()) - 1;
+ }, s.Qb = function() {
+ Nw(this.a), this.c.Qb(), this.a = !1;
+ }, s.Wb = function(e) {
+ Rz(this.a), this.c.Wb(e);
+ }, s.a = !1, w(an, "Lists/ReverseList/1", 1020), b(432, 487, Ei, _v), s.Qd = function(e) {
+ return Fj(e);
+ }, w(an, "Maps/1", 432), b(698, 487, Ei, fG), s.Qd = function(e) {
+ return u(e, 42).dd();
+ }, w(an, "Maps/2", 698), b(962, 487, Ei, Yyn), s.Qd = function(e) {
+ return new wd(e, nyn(this.a, e));
+ }, w(an, "Maps/3", 962), b(959, 1971, wu, Cvn), s.Jc = function(e) {
+ nie(this.a, e);
+ }, s.Kc = function() {
+ return this.a.kc();
+ }, s.Rc = function() {
+ return this.a;
+ }, s.Nc = function() {
+ return this.a.lc();
+ }, w(an, "Maps/IteratorBasedAbstractMap/1", 959), b(960, 1, {}, Evn), s.Od = function(e, t) {
+ this.a.td(e);
+ }, w(an, "Maps/KeySet/lambda$0$Type", 960), b(958, 28, Pb, t7n), s.$b = function() {
+ this.a.$b();
+ }, s.Hc = function(e) {
+ return this.a.uc(e);
+ }, s.Jc = function(e) {
+ pe(e), this.a.wc(new pvn(e));
+ }, s.dc = function() {
+ return this.a.dc();
+ }, s.Kc = function() {
+ return new fG(this.a.vc().Kc());
+ }, s.Mc = function(e) {
+ var t, i;
+ try {
+ return bb(this, e, !0);
+ } catch (r) {
+ if (r = jt(r), I(r, 41)) {
+ for (i = this.a.vc().Kc(); i.Ob(); )
+ if (t = u(i.Pb(), 42), $f(e, t.dd()))
+ return this.a.Bc(t.cd()), !0;
+ return !1;
+ } else
+ throw T(r);
+ }
+ }, s.gc = function() {
+ return this.a.gc();
+ }, w(an, "Maps/Values", 958), b(961, 1, {}, pvn), s.Od = function(e, t) {
+ this.a.td(t);
+ }, w(an, "Maps/Values/lambda$0$Type", 961), b(736, 1987, c0, xG), s.xc = function(e) {
+ return this.a._b(e) ? this.a.cc(e) : null;
+ }, s.Bc = function(e) {
+ return this.a._b(e) ? this.a.fc(e) : null;
+ }, s.$b = function() {
+ this.a.$b();
+ }, s._b = function(e) {
+ return this.a._b(e);
+ }, s.Ec = function() {
+ return new gvn(this);
+ }, s.Dc = function() {
+ return this.Ec();
+ }, s.dc = function() {
+ return this.a.dc();
+ }, s.ec = function() {
+ return this.a.ec();
+ }, s.gc = function() {
+ return this.a.ec().gc();
+ }, w(an, "Multimaps/AsMap", 736), b(1104, 1971, wu, gvn), s.Kc = function() {
+ return pce(this.a.a.ec(), new vvn(this));
+ }, s.Rc = function() {
+ return this.a;
+ }, s.Mc = function(e) {
+ var t;
+ return l$n(this, e) ? (t = u(e, 42), vie(this.a, t.cd()), !0) : !1;
+ }, w(an, "Multimaps/AsMap/EntrySet", 1104), b(1108, 1, {}, vvn), s.Kb = function(e) {
+ return nyn(this, e);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(an, "Multimaps/AsMap/EntrySet/1", 1108), b(543, 1989, { 543: 1, 835: 1, 20: 1, 28: 1, 14: 1 }, mvn), s.$b = function() {
+ QC(this.a);
+ }, s.Hc = function(e) {
+ return h8n(this.a, e);
+ }, s.Jc = function(e) {
+ pe(e), $i(x5(this.a), new yvn(e));
+ }, s.Kc = function() {
+ return new _v(x5(this.a).a.kc());
+ }, s.gc = function() {
+ return this.a.d;
+ }, s.Nc = function() {
+ return g8(x5(this.a).Nc(), new yu());
+ }, w(an, "Multimaps/Keys", 543), b(1106, 1, {}, yu), s.Kb = function(e) {
+ return u(e, 42).cd();
+ }, w(an, "Multimaps/Keys/0methodref$getKey$Type", 1106), b(1105, 487, Ei, L9n), s.Qd = function(e) {
+ return new kvn(u(e, 42));
+ }, w(an, "Multimaps/Keys/1", 1105), b(1990, 1, { 416: 1 }), s.Fb = function(e) {
+ var t;
+ return I(e, 492) ? (t = u(e, 416), u(this.a.dd(), 14).gc() == u(t.a.dd(), 14).gc() && $f(this.a.cd(), t.a.cd())) : !1;
+ }, s.Hb = function() {
+ var e;
+ return e = this.a.cd(), (e == null ? 0 : mt(e)) ^ u(this.a.dd(), 14).gc();
+ }, s.Ib = function() {
+ var e, t;
+ return t = y5(this.a.cd()), e = u(this.a.dd(), 14).gc(), e == 1 ? t : t + " x " + e;
+ }, w(an, "Multisets/AbstractEntry", 1990), b(492, 1990, { 492: 1, 416: 1 }, kvn), w(an, "Multimaps/Keys/1/1", 492), b(1107, 1, Yn, yvn), s.td = function(e) {
+ this.a.td(u(e, 42).cd());
+ }, w(an, "Multimaps/Keys/lambda$1$Type", 1107), b(1110, 1, Yn, oo), s.td = function(e) {
+ vfe(u(e, 416));
+ }, w(an, "Multiset/lambda$0$Type", 1110), b(737, 1, Yn, jvn), s.td = function(e) {
+ x0e(this.a, u(e, 416));
+ }, w(an, "Multiset/lambda$1$Type", 737), b(1111, 1, {}, Dv), w(an, "Multisets/0methodref$add$Type", 1111), b(738, 1, {}, q1), s.Kb = function(e) {
+ return Tae(u(e, 416));
+ }, w(an, "Multisets/lambda$3$Type", 738), b(2008, 1, J7), w(an, "RangeGwtSerializationDependencies", 2008), b(514, 2008, { 169: 1, 514: 1, 3: 1, 45: 1 }, JQ), s.Lb = function(e) {
+ return CCn(this, u(e, 35));
+ }, s.Mb = function(e) {
+ return CCn(this, u(e, 35));
+ }, s.Fb = function(e) {
+ var t;
+ return I(e, 514) ? (t = u(e, 514), KQ(this.a, t.a) && KQ(this.b, t.b)) : !1;
+ }, s.Hb = function() {
+ return this.a.Hb() * 31 + this.b.Hb();
+ }, s.Ib = function() {
+ return DAn(this.a, this.b);
+ }, w(an, "Range", 514), b(778, 1999, x6, xCn), s.Zc = function(e) {
+ return Qz(this.b, e);
+ }, s.Pd = function() {
+ return this.a;
+ }, s.Xb = function(e) {
+ return nl(this.b, e);
+ }, s.Fd = function(e) {
+ return Qz(this.b, e);
+ }, w(an, "RegularImmutableAsList", 778), b(646, 2006, x6, JD), s.Hd = function() {
+ return this.a;
+ }, w(an, "RegularImmutableList", 646), b(616, 715, C4, GI), w(an, "RegularImmutableMap", 616), b(716, 703, T4, NG);
+ var lin;
+ w(an, "RegularImmutableSet", 716), b(1976, df, wu), s.Kc = function() {
+ return new HW(this.a, this.b);
+ }, s.Fc = function(e) {
+ throw T(new je());
+ }, s.Gc = function(e) {
+ throw T(new je());
+ }, s.$b = function() {
+ throw T(new je());
+ }, s.Mc = function(e) {
+ throw T(new je());
+ }, w(an, "Sets/SetView", 1976), b(963, 1976, wu, n7n), s.Kc = function() {
+ return new HW(this.a, this.b);
+ }, s.Hc = function(e) {
+ return kD(this.a, e) && this.b.Hc(e);
+ }, s.Ic = function(e) {
+ return t7(this.a, e) && this.b.Ic(e);
+ }, s.dc = function() {
+ return Q$n(this.b, this.a);
+ }, s.Lc = function() {
+ return gt(new $n(null, new xn(this.a, 1)), new Avn(this.b));
+ }, s.gc = function() {
+ return Z8(this);
+ }, s.Oc = function() {
+ return gt(new $n(null, new xn(this.a, 1)), new Mvn(this.b));
+ }, w(an, "Sets/2", 963), b(700, 699, j4, HW), s.Yb = function() {
+ for (var e; Tz(this.a); )
+ if (e = G5(this.a), this.c.Hc(e))
+ return e;
+ return this.e = 2, null;
+ }, w(an, "Sets/2/1", 700), b(964, 1, Ve, Mvn), s.Mb = function(e) {
+ return this.a.Hc(e);
+ }, w(an, "Sets/2/4methodref$contains$Type", 964), b(965, 1, Ve, Avn), s.Mb = function(e) {
+ return this.a.Hc(e);
+ }, w(an, "Sets/2/5methodref$contains$Type", 965), b(607, 1975, { 607: 1, 3: 1, 20: 1, 14: 1, 271: 1, 21: 1, 84: 1 }, eMn), s.Bd = function() {
+ return this.b;
+ }, s.Cd = function() {
+ return this.b;
+ }, s.Md = function() {
+ return this.b;
+ }, s.Jc = function(e) {
+ this.a.Jc(e);
+ }, s.Lc = function() {
+ return this.a.Lc();
+ }, s.Oc = function() {
+ return this.a.Oc();
+ }, w(an, "Sets/UnmodifiableNavigableSet", 607), b(1932, 1931, C4, fTn), s.Ld = function() {
+ return Df(), new u2(this.a);
+ }, s.Cc = function() {
+ return Df(), new u2(this.a);
+ }, s.pd = function() {
+ return Df(), new u2(this.a);
+ }, w(an, "SingletonImmutableBiMap", 1932), b(647, 2006, x6, pD), s.Hd = function() {
+ return this.a;
+ }, w(an, "SingletonImmutableList", 647), b(350, 1981, T4, u2), s.Kc = function() {
+ return new uq(this.a);
+ }, s.Hc = function(e) {
+ return tt(this.a, e);
+ }, s.Ed = function() {
+ return new uq(this.a);
+ }, s.gc = function() {
+ return 1;
+ }, w(an, "SingletonImmutableSet", 350), b(1115, 1, {}, Ch), s.Kb = function(e) {
+ return u(e, 164);
+ }, w(an, "Streams/lambda$0$Type", 1115), b(1116, 1, DM, Svn), s.Vd = function() {
+ gde(this.a);
+ }, w(an, "Streams/lambda$1$Type", 1116), b(1659, 1658, $a, WTn), s.Zb = function() {
+ var e;
+ return e = this.f, u(u(e || (this.f = I(this.c, 171) ? new mE(this, u(this.c, 171)) : I(this.c, 161) ? new f8(this, u(this.c, 161)) : new Jp(this, this.c)), 161), 171);
+ }, s.hc = function() {
+ return new J1(this.b);
+ }, s.gd = function() {
+ return new J1(this.b);
+ }, s.ec = function() {
+ var e;
+ return e = this.i, u(u(e || (this.i = I(this.c, 171) ? new Qp(this, u(this.c, 171)) : I(this.c, 161) ? new R9(this, u(this.c, 161)) : new Sw(this, this.c)), 84), 271);
+ }, s.ac = function() {
+ return I(this.c, 171) ? new mE(this, u(this.c, 171)) : I(this.c, 161) ? new f8(this, u(this.c, 161)) : new Jp(this, this.c);
+ }, s.ic = function(e) {
+ return e == null && this.a.ue(e, e), new J1(this.b);
+ }, w(an, "TreeMultimap", 1659), b(78, 1, { 3: 1, 78: 1 }), s.Wd = function(e) {
+ return new Error(e);
+ }, s.Xd = function() {
+ return this.e;
+ }, s.Yd = function() {
+ return P2e(Wc(ID((this.k == null && (this.k = F(hR, q, 78, 0, 0, 1)), this.k)), new uln()));
+ }, s.Zd = function() {
+ return this.f;
+ }, s.$d = function() {
+ return this.g;
+ }, s._d = function() {
+ cie(this, fae(this.Wd(YD(this, this.g)))), Hmn(this);
+ }, s.Ib = function() {
+ return YD(this, this.$d());
+ }, s.e = nKn, s.i = !1, s.n = !0;
+ var hR = w(Ur, "Throwable", 78);
+ b(102, 78, { 3: 1, 102: 1, 78: 1 }), w(Ur, "Exception", 102), b(60, 102, zh, ra, _r), w(Ur, "RuntimeException", 60), b(598, 60, zh), w(Ur, "JsException", 598), b(863, 598, zh), w(ek, "JavaScriptExceptionBase", 863), b(477, 863, { 477: 1, 3: 1, 102: 1, 60: 1, 78: 1 }, TDn), s.$d = function() {
+ return Y4e(this), this.c;
+ }, s.ae = function() {
+ return B(this.b) === B(ain) ? null : this.b;
+ };
+ var ain;
+ w(QZ, "JavaScriptException", 477);
+ var wzn = w(QZ, "JavaScriptObject$", 0), lR;
+ b(1948, 1, {}), w(QZ, "Scheduler", 1948);
+ var _A = 0, gzn = 0, KA = -1;
+ b(890, 1948, {}, J1n);
+ var din;
+ w(ek, "SchedulerImpl", 890);
+ var aR;
+ b(1960, 1, {}), w(ek, "StackTraceCreator/Collector", 1960), b(864, 1960, {}, Y1n), s.be = function(e) {
+ var t = {}, i = [];
+ e[PL] = i;
+ for (var r = arguments.callee.caller; r; ) {
+ var c = (m3(), r.name || (r.name = J0e(r.toString())));
+ i.push(c);
+ var o = ":" + c, f = t[o];
+ if (f) {
+ var h, l;
+ for (h = 0, l = f.length; h < l; h++)
+ if (f[h] === r)
+ return;
+ }
+ (f || (t[o] = [])).push(r), r = r.caller;
+ }
+ }, s.ce = function(e) {
+ var t, i, r, c;
+ for (r = (m3(), e && e[PL] ? e[PL] : []), i = r.length, c = F(Ain, q, 310, i, 0, 1), t = 0; t < i; t++)
+ c[t] = new qD(r[t], null, -1);
+ return c;
+ }, w(ek, "StackTraceCreator/CollectorLegacy", 864), b(1961, 1960, {}), s.be = function(e) {
+ }, s.de = function(e, t, i, r) {
+ return new qD(t, e + "@" + r, i < 0 ? -1 : i);
+ }, s.ce = function(e) {
+ var t, i, r, c, o, f;
+ if (c = C3e(e), o = F(Ain, q, 310, 0, 0, 1), t = 0, r = c.length, r == 0)
+ return o;
+ for (f = LRn(this, c[0]), An(f.d, SL) || (o[t++] = f), i = 1; i < r; i++)
+ o[t++] = LRn(this, c[i]);
+ return o;
+ }, w(ek, "StackTraceCreator/CollectorModern", 1961), b(865, 1961, {}, Yl), s.de = function(e, t, i, r) {
+ return new qD(t, e, -1);
+ }, w(ek, "StackTraceCreator/CollectorModernNoSourceMap", 865), b(1050, 1, {}), w(YZ, iKn, 1050), b(615, 1050, { 615: 1 }, JCn);
+ var bin;
+ w(XL, iKn, 615), b(2001, 1, {}), w(YZ, rKn, 2001), b(2002, 2001, {}), w(XL, rKn, 2002), b(1090, 1, {}, H1);
+ var dm;
+ w(XL, "LocaleInfo", 1090), b(1918, 1, {}, e1), s.a = 0, w(XL, "TimeZone", 1918), b(1258, 2002, {}, vr), w("com.google.gwt.i18n.client.impl.cldr", "DateTimeFormatInfoImpl", 1258), b(434, 1, { 434: 1 }, AEn), s.a = !1, s.b = 0, w(YZ, "DateTimeFormat/PatternPart", 434), b(199, 1, cKn, Tj, _V, uU), s.wd = function(e) {
+ return uae(this, u(e, 199));
+ }, s.Fb = function(e) {
+ return I(e, 199) && pd(nu(this.q.getTime()), nu(u(e, 199).q.getTime()));
+ }, s.Hb = function() {
+ var e;
+ return e = nu(this.q.getTime()), ge(h$(e, Y0(e, 32)));
+ }, s.Ib = function() {
+ var e, t, i;
+ return i = -this.q.getTimezoneOffset(), e = (i >= 0 ? "+" : "") + (i / 60 | 0), t = tE(j.Math.abs(i) % 60), (gxn(), Mzn)[this.q.getDay()] + " " + Azn[this.q.getMonth()] + " " + tE(this.q.getDate()) + " " + tE(this.q.getHours()) + ":" + tE(this.q.getMinutes()) + ":" + tE(this.q.getSeconds()) + " GMT" + e + t + " " + this.q.getFullYear();
+ };
+ var HA = w(fe, "Date", 199);
+ b(1915, 199, cKn, qFn), s.a = !1, s.b = 0, s.c = 0, s.d = 0, s.e = 0, s.f = 0, s.g = !1, s.i = 0, s.j = 0, s.k = 0, s.n = 0, s.o = 0, s.p = 0, w("com.google.gwt.i18n.shared.impl", "DateRecord", 1915), b(1966, 1, {}), s.fe = function() {
+ return null;
+ }, s.ge = function() {
+ return null;
+ }, s.he = function() {
+ return null;
+ }, s.ie = function() {
+ return null;
+ }, s.je = function() {
+ return null;
+ }, w(Q2, "JSONValue", 1966), b(216, 1966, { 216: 1 }, ea, sq), s.Fb = function(e) {
+ return I(e, 216) ? uX(this.a, u(e, 216).a) : !1;
+ }, s.ee = function() {
+ return Rte;
+ }, s.Hb = function() {
+ return WW(this.a);
+ }, s.fe = function() {
+ return this;
+ }, s.Ib = function() {
+ var e, t, i;
+ for (i = new Ju("["), t = 0, e = this.a.length; t < e; t++)
+ t > 0 && (i.a += ","), cc(i, sb(this, t));
+ return i.a += "]", i.a;
+ }, w(Q2, "JSONArray", 216), b(483, 1966, { 483: 1 }, oq), s.ee = function() {
+ return _te;
+ }, s.ge = function() {
+ return this;
+ }, s.Ib = function() {
+ return qn(), "" + this.a;
+ }, s.a = !1;
+ var pzn, vzn;
+ w(Q2, "JSONBoolean", 483), b(985, 60, zh, N9n), w(Q2, "JSONException", 985), b(1023, 1966, {}, Zl), s.ee = function() {
+ return zte;
+ }, s.Ib = function() {
+ return tu;
+ };
+ var mzn;
+ w(Q2, "JSONNull", 1023), b(258, 1966, { 258: 1 }, nj), s.Fb = function(e) {
+ return I(e, 258) ? this.a == u(e, 258).a : !1;
+ }, s.ee = function() {
+ return Kte;
+ }, s.Hb = function() {
+ return t3(this.a);
+ }, s.he = function() {
+ return this;
+ }, s.Ib = function() {
+ return this.a + "";
+ }, s.a = 0, w(Q2, "JSONNumber", 258), b(183, 1966, { 183: 1 }, r2, M9), s.Fb = function(e) {
+ return I(e, 183) ? uX(this.a, u(e, 183).a) : !1;
+ }, s.ee = function() {
+ return Hte;
+ }, s.Hb = function() {
+ return WW(this.a);
+ }, s.ie = function() {
+ return this;
+ }, s.Ib = function() {
+ var e, t, i, r, c, o, f;
+ for (f = new Ju("{"), e = !0, o = Z$(this, F(tn, q, 2, 0, 6, 1)), i = o, r = 0, c = i.length; r < c; ++r)
+ t = i[r], e ? e = !1 : f.a += Qi, De(f, FLn(t)), f.a += ":", cc(f, Oh(this, t));
+ return f.a += "}", f.a;
+ }, w(Q2, "JSONObject", 183), b(596, df, wu, iO), s.Hc = function(e) {
+ return yi(e) && Cie(this.a, Te(e));
+ }, s.Kc = function() {
+ return new $v(new Ku(this.b));
+ }, s.gc = function() {
+ return this.b.length;
+ }, w(Q2, "JSONObject/1", 596);
+ var dR;
+ b(204, 1966, { 204: 1 }, nb), s.Fb = function(e) {
+ return I(e, 204) ? An(this.a, u(e, 204).a) : !1;
+ }, s.ee = function() {
+ return qte;
+ }, s.Hb = function() {
+ return m1(this.a);
+ }, s.je = function() {
+ return this;
+ }, s.Ib = function() {
+ return FLn(this.a);
+ }, w(Q2, "JSONString", 204);
+ var Pl, win, kzn, gin, pin;
+ b(1962, 1, { 525: 1 }), w(ZZ, "OutputStream", 1962), b(1963, 1962, { 525: 1 }), w(ZZ, "FilterOutputStream", 1963), b(866, 1963, { 525: 1 }, iln), w(ZZ, "PrintStream", 866), b(418, 1, { 475: 1 }), s.Ib = function() {
+ return this.a;
+ }, w(Ur, "AbstractStringBuilder", 418), b(529, 60, zh, bj), w(Ur, "ArithmeticException", 529), b(73, 60, VL, Kq, mr), w(Ur, "IndexOutOfBoundsException", 73), b(320, 73, { 3: 1, 320: 1, 102: 1, 73: 1, 60: 1, 78: 1 }, qq, bG), w(Ur, "ArrayIndexOutOfBoundsException", 320), b(528, 60, zh, xI, _9n), w(Ur, "ArrayStoreException", 528), b(289, 78, uKn, UI), w(Ur, "Error", 289), b(194, 289, uKn, _q, EX), w(Ur, "AssertionError", 194), szn = { 3: 1, 476: 1, 35: 1 };
+ var Ga, G4, oi = w(Ur, "Boolean", 476);
+ b(236, 1, { 3: 1, 236: 1 });
+ var vin;
+ w(Ur, "Number", 236), b(217, 236, { 3: 1, 217: 1, 35: 1, 236: 1 }, $vn), s.wd = function(e) {
+ return yie(this, u(e, 217));
+ }, s.ke = function() {
+ return this.a;
+ }, s.Fb = function(e) {
+ return I(e, 217) && u(e, 217).a == this.a;
+ }, s.Hb = function() {
+ return this.a;
+ }, s.Ib = function() {
+ return "" + this.a;
+ }, s.a = 0;
+ var op = w(Ur, "Byte", 217), min;
+ b(172, 1, { 3: 1, 172: 1, 35: 1 }, wq), s.wd = function(e) {
+ return jie(this, u(e, 172));
+ }, s.Fb = function(e) {
+ return I(e, 172) && u(e, 172).a == this.a;
+ }, s.Hb = function() {
+ return this.a;
+ }, s.Ib = function() {
+ return String.fromCharCode(this.a);
+ }, s.a = 0;
+ var kin, bm = w(Ur, "Character", 172), yin;
+ b(205, 60, { 3: 1, 205: 1, 102: 1, 60: 1, 78: 1 }, qmn, zp), w(Ur, "ClassCastException", 205), ozn = { 3: 1, 35: 1, 333: 1, 236: 1 };
+ var Si = w(Ur, "Double", 333);
+ b(155, 236, { 3: 1, 35: 1, 155: 1, 236: 1 }, S9, Gq), s.wd = function(e) {
+ return Ire(this, u(e, 155));
+ }, s.ke = function() {
+ return this.a;
+ }, s.Fb = function(e) {
+ return I(e, 155) && nEn(this.a, u(e, 155).a);
+ }, s.Hb = function() {
+ return zt(this.a);
+ }, s.Ib = function() {
+ return "" + this.a;
+ }, s.a = 0;
+ var z4 = w(Ur, "Float", 155);
+ b(32, 60, { 3: 1, 102: 1, 32: 1, 60: 1, 78: 1 }, F9, Hn, pDn), w(Ur, "IllegalArgumentException", 32), b(71, 60, zh, su, $r), w(Ur, "IllegalStateException", 71), b(19, 236, { 3: 1, 35: 1, 19: 1, 236: 1 }, gq), s.wd = function(e) {
+ return Ore(this, u(e, 19));
+ }, s.ke = function() {
+ return this.a;
+ }, s.Fb = function(e) {
+ return I(e, 19) && u(e, 19).a == this.a;
+ }, s.Hb = function() {
+ return this.a;
+ }, s.Ib = function() {
+ return "" + this.a;
+ }, s.a = 0;
+ var Ui = w(Ur, "Integer", 19), jin, yzn;
+ b(162, 236, { 3: 1, 35: 1, 162: 1, 236: 1 }, pq), s.wd = function(e) {
+ return Dre(this, u(e, 162));
+ }, s.ke = function() {
+ return Fd(this.a);
+ }, s.Fb = function(e) {
+ return I(e, 162) && pd(u(e, 162).a, this.a);
+ }, s.Hb = function() {
+ return ge(this.a);
+ }, s.Ib = function() {
+ return "" + O5(this.a);
+ }, s.a = 0;
+ var d0 = w(Ur, "Long", 162), Ein;
+ b(2039, 1, {}), b(1831, 60, zh, H9n), w(Ur, "NegativeArraySizeException", 1831), b(173, 598, { 3: 1, 102: 1, 173: 1, 60: 1, 78: 1 }, Nv, c2), s.Wd = function(e) {
+ return new TypeError(e);
+ }, w(Ur, "NullPointerException", 173);
+ var Cin, bR, jzn, Tin;
+ b(127, 32, { 3: 1, 102: 1, 32: 1, 127: 1, 60: 1, 78: 1 }, Sf), w(Ur, "NumberFormatException", 127), b(184, 236, { 3: 1, 35: 1, 236: 1, 184: 1 }, vq), s.wd = function(e) {
+ return Eie(this, u(e, 184));
+ }, s.ke = function() {
+ return this.a;
+ }, s.Fb = function(e) {
+ return I(e, 184) && u(e, 184).a == this.a;
+ }, s.Hb = function() {
+ return this.a;
+ }, s.Ib = function() {
+ return "" + this.a;
+ }, s.a = 0;
+ var b0 = w(Ur, "Short", 184), Min;
+ b(310, 1, { 3: 1, 310: 1 }, qD), s.Fb = function(e) {
+ var t;
+ return I(e, 310) ? (t = u(e, 310), this.c == t.c && this.d == t.d && this.a == t.a && this.b == t.b) : !1;
+ }, s.Hb = function() {
+ return gT(A(M(Zn, 1), rn, 1, 5, [Q(this.c), this.a, this.d, this.b]));
+ }, s.Ib = function() {
+ return this.a + "." + this.d + "(" + (this.b != null ? this.b : "Unknown Source") + (this.c >= 0 ? ":" + this.c : "") + ")";
+ }, s.c = 0;
+ var Ain = w(Ur, "StackTraceElement", 310);
+ fzn = { 3: 1, 475: 1, 35: 1, 2: 1 };
+ var tn = w(Ur, VZ, 2);
+ b(107, 418, { 475: 1 }, i1, zv, Ns), w(Ur, "StringBuffer", 107), b(100, 418, { 475: 1 }, X1, _0, Ju), w(Ur, "StringBuilder", 100), b(687, 73, VL, wG), w(Ur, "StringIndexOutOfBoundsException", 687), b(2043, 1, {});
+ var Sin;
+ b(844, 1, {}, uln), s.Kb = function(e) {
+ return u(e, 78).e;
+ }, w(Ur, "Throwable/lambda$0$Type", 844), b(41, 60, { 3: 1, 102: 1, 60: 1, 78: 1, 41: 1 }, je, t1), w(Ur, "UnsupportedOperationException", 41), b(240, 236, { 3: 1, 35: 1, 236: 1, 240: 1 }, W8, CG), s.wd = function(e) {
+ return QBn(this, u(e, 240));
+ }, s.ke = function() {
+ return yb(DRn(this));
+ }, s.Fb = function(e) {
+ var t;
+ return this === e ? !0 : I(e, 240) ? (t = u(e, 240), this.e == t.e && QBn(this, t) == 0) : !1;
+ }, s.Hb = function() {
+ var e;
+ return this.b != 0 ? this.b : this.a < 54 ? (e = nu(this.f), this.b = ge(ui(e, -1)), this.b = 33 * this.b + ge(ui(rl(e, 32), -1)), this.b = 17 * this.b + zt(this.e), this.b) : (this.b = 17 * IDn(this.c) + zt(this.e), this.b);
+ }, s.Ib = function() {
+ return DRn(this);
+ }, s.a = 0, s.b = 0, s.d = 0, s.e = 0, s.f = 0;
+ var Ezn, za, Pin, Iin, Oin, Din, $in, Fin, wR = w("java.math", "BigDecimal", 240);
+ b(91, 236, { 3: 1, 35: 1, 236: 1, 91: 1 }, VQ, l1, Pw, OJ, $$n, tl), s.wd = function(e) {
+ return S$n(this, u(e, 91));
+ }, s.ke = function() {
+ return yb(jL(this, 0));
+ }, s.Fb = function(e) {
+ return SQ(this, e);
+ }, s.Hb = function() {
+ return IDn(this);
+ }, s.Ib = function() {
+ return jL(this, 0);
+ }, s.b = -2, s.c = 0, s.d = 0, s.e = 0;
+ var gR, qA, xin, pR, GA, U4, vg = w("java.math", "BigInteger", 91), Czn, Tzn, fp, wm;
+ b(488, 1967, c0), s.$b = function() {
+ Eu(this);
+ }, s._b = function(e) {
+ return zu(this, e);
+ }, s.uc = function(e) {
+ return bDn(this, e, this.g) || bDn(this, e, this.f);
+ }, s.vc = function() {
+ return new ia(this);
+ }, s.xc = function(e) {
+ return te(this, e);
+ }, s.zc = function(e, t) {
+ return it(this, e, t);
+ }, s.Bc = function(e) {
+ return O2(this, e);
+ }, s.gc = function() {
+ return Xv(this);
+ }, w(fe, "AbstractHashMap", 488), b(261, df, wu, ia), s.$b = function() {
+ this.a.$b();
+ }, s.Hc = function(e) {
+ return aAn(this, e);
+ }, s.Kc = function() {
+ return new Ca(this.a);
+ }, s.Mc = function(e) {
+ var t;
+ return aAn(this, e) ? (t = u(e, 42).cd(), this.a.Bc(t), !0) : !1;
+ }, s.gc = function() {
+ return this.a.gc();
+ }, w(fe, "AbstractHashMap/EntrySet", 261), b(262, 1, Ei, Ca), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return Bd(this);
+ }, s.Ob = function() {
+ return this.b;
+ }, s.Qb = function() {
+ fPn(this);
+ }, s.b = !1, w(fe, "AbstractHashMap/EntrySetIterator", 262), b(417, 1, Ei, $v), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return G9(this);
+ }, s.Pb = function() {
+ return FTn(this);
+ }, s.Qb = function() {
+ Uu(this);
+ }, s.b = 0, s.c = -1, w(fe, "AbstractList/IteratorImpl", 417), b(96, 417, hh, Ii), s.Qb = function() {
+ Uu(this);
+ }, s.Rb = function(e) {
+ V0(this, e);
+ }, s.Sb = function() {
+ return this.b > 0;
+ }, s.Tb = function() {
+ return this.b;
+ }, s.Ub = function() {
+ return ne(this.b > 0), this.a.Xb(this.c = --this.b);
+ }, s.Vb = function() {
+ return this.b - 1;
+ }, s.Wb = function(e) {
+ U0(this.c != -1), this.a._c(this.c, e);
+ }, w(fe, "AbstractList/ListIteratorImpl", 96), b(219, 52, M4, ch), s.Vc = function(e, t) {
+ ib(e, this.b), this.c.Vc(this.a + e, t), ++this.b;
+ }, s.Xb = function(e) {
+ return Ln(e, this.b), this.c.Xb(this.a + e);
+ }, s.$c = function(e) {
+ var t;
+ return Ln(e, this.b), t = this.c.$c(this.a + e), --this.b, t;
+ }, s._c = function(e, t) {
+ return Ln(e, this.b), this.c._c(this.a + e, t);
+ }, s.gc = function() {
+ return this.b;
+ }, s.a = 0, s.b = 0, w(fe, "AbstractList/SubList", 219), b(384, df, wu, Bp), s.$b = function() {
+ this.a.$b();
+ }, s.Hc = function(e) {
+ return this.a._b(e);
+ }, s.Kc = function() {
+ var e;
+ return e = this.a.vc().Kc(), new bq(e);
+ }, s.Mc = function(e) {
+ return this.a._b(e) ? (this.a.Bc(e), !0) : !1;
+ }, s.gc = function() {
+ return this.a.gc();
+ }, w(fe, "AbstractMap/1", 384), b(691, 1, Ei, bq), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return this.a.Ob();
+ }, s.Pb = function() {
+ var e;
+ return e = u(this.a.Pb(), 42), e.cd();
+ }, s.Qb = function() {
+ this.a.Qb();
+ }, w(fe, "AbstractMap/1/1", 691), b(226, 28, Pb, Th), s.$b = function() {
+ this.a.$b();
+ }, s.Hc = function(e) {
+ return this.a.uc(e);
+ }, s.Kc = function() {
+ var e;
+ return e = this.a.vc().Kc(), new N0(e);
+ }, s.gc = function() {
+ return this.a.gc();
+ }, w(fe, "AbstractMap/2", 226), b(294, 1, Ei, N0), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return this.a.Ob();
+ }, s.Pb = function() {
+ var e;
+ return e = u(this.a.Pb(), 42), e.dd();
+ }, s.Qb = function() {
+ this.a.Qb();
+ }, w(fe, "AbstractMap/2/1", 294), b(484, 1, { 484: 1, 42: 1 }), s.Fb = function(e) {
+ var t;
+ return I(e, 42) ? (t = u(e, 42), vc(this.d, t.cd()) && vc(this.e, t.dd())) : !1;
+ }, s.cd = function() {
+ return this.d;
+ }, s.dd = function() {
+ return this.e;
+ }, s.Hb = function() {
+ return Tw(this.d) ^ Tw(this.e);
+ }, s.ed = function(e) {
+ return gU(this, e);
+ }, s.Ib = function() {
+ return this.d + "=" + this.e;
+ }, w(fe, "AbstractMap/AbstractEntry", 484), b(383, 484, { 484: 1, 383: 1, 42: 1 }, Nj), w(fe, "AbstractMap/SimpleEntry", 383), b(1984, 1, ZL), s.Fb = function(e) {
+ var t;
+ return I(e, 42) ? (t = u(e, 42), vc(this.cd(), t.cd()) && vc(this.dd(), t.dd())) : !1;
+ }, s.Hb = function() {
+ return Tw(this.cd()) ^ Tw(this.dd());
+ }, s.Ib = function() {
+ return this.cd() + "=" + this.dd();
+ }, w(fe, W_n, 1984), b(1992, 1967, z_n), s.tc = function(e) {
+ return kSn(this, e);
+ }, s._b = function(e) {
+ return cD(this, e);
+ }, s.vc = function() {
+ return new mq(this);
+ }, s.xc = function(e) {
+ var t;
+ return t = e, Vr(VV(this, t));
+ }, s.ec = function() {
+ return new P9(this);
+ }, w(fe, "AbstractNavigableMap", 1992), b(739, df, wu, mq), s.Hc = function(e) {
+ return I(e, 42) && kSn(this.b, u(e, 42));
+ }, s.Kc = function() {
+ return new T5(this.b);
+ }, s.Mc = function(e) {
+ var t;
+ return I(e, 42) ? (t = u(e, 42), sPn(this.b, t)) : !1;
+ }, s.gc = function() {
+ return this.b.c;
+ }, w(fe, "AbstractNavigableMap/EntrySet", 739), b(493, df, WZ, P9), s.Nc = function() {
+ return new xj(this);
+ }, s.$b = function() {
+ Kv(this.a);
+ }, s.Hc = function(e) {
+ return cD(this.a, e);
+ }, s.Kc = function() {
+ var e;
+ return e = new T5(new j5(this.a).b), new I9(e);
+ }, s.Mc = function(e) {
+ return cD(this.a, e) ? (R5(this.a, e), !0) : !1;
+ }, s.gc = function() {
+ return this.a.c;
+ }, w(fe, "AbstractNavigableMap/NavigableKeySet", 493), b(494, 1, Ei, I9), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return G9(this.a.a);
+ }, s.Pb = function() {
+ var e;
+ return e = pE(this.a), e.cd();
+ }, s.Qb = function() {
+ hEn(this.a);
+ }, w(fe, "AbstractNavigableMap/NavigableKeySet/1", 494), b(2004, 28, Pb), s.Fc = function(e) {
+ return T3(o4(this, e)), !0;
+ }, s.Gc = function(e) {
+ return _n(e), TE(e != this, "Can't add a queue to itself"), Xi(this, e);
+ }, s.$b = function() {
+ for (; K$(this) != null; )
+ ;
+ }, w(fe, "AbstractQueue", 2004), b(302, 28, { 4: 1, 20: 1, 28: 1, 14: 1 }, gw, NMn), s.Fc = function(e) {
+ return bX(this, e), !0;
+ }, s.$b = function() {
+ kX(this);
+ }, s.Hc = function(e) {
+ return NOn(new B5(this), e);
+ }, s.dc = function() {
+ return Hv(this);
+ }, s.Kc = function() {
+ return new B5(this);
+ }, s.Mc = function(e) {
+ return ele(new B5(this), e);
+ }, s.gc = function() {
+ return this.c - this.b & this.a.length - 1;
+ }, s.Nc = function() {
+ return new xn(this, 272);
+ }, s.Qc = function(e) {
+ var t;
+ return t = this.c - this.b & this.a.length - 1, e.length < t && (e = pj(new Array(t), e)), VIn(this, e, t), e.length > t && Mt(e, t, null), e;
+ }, s.b = 0, s.c = 0, w(fe, "ArrayDeque", 302), b(446, 1, Ei, B5), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return this.a != this.b;
+ }, s.Pb = function() {
+ return vT(this);
+ }, s.Qb = function() {
+ xIn(this);
+ }, s.a = 0, s.b = 0, s.c = -1, w(fe, "ArrayDeque/IteratorImpl", 446), b(12, 52, oKn, X, Ic, lu), s.Vc = function(e, t) {
+ J0(this, e, t);
+ }, s.Fc = function(e) {
+ return W(this, e);
+ }, s.Wc = function(e, t) {
+ return eQ(this, e, t);
+ }, s.Gc = function(e) {
+ return Zt(this, e);
+ }, s.$b = function() {
+ this.c = F(Zn, rn, 1, 0, 5, 1);
+ }, s.Hc = function(e) {
+ return xr(this, e, 0) != -1;
+ }, s.Jc = function(e) {
+ Jc(this, e);
+ }, s.Xb = function(e) {
+ return un(this, e);
+ }, s.Xc = function(e) {
+ return xr(this, e, 0);
+ }, s.dc = function() {
+ return this.c.length == 0;
+ }, s.Kc = function() {
+ return new E(this);
+ }, s.$c = function(e) {
+ return h1(this, e);
+ }, s.Mc = function(e) {
+ return Vc(this, e);
+ }, s.Ud = function(e, t) {
+ LMn(this, e, t);
+ }, s._c = function(e, t) {
+ return js(this, e, t);
+ }, s.gc = function() {
+ return this.c.length;
+ }, s.ad = function(e) {
+ wi(this, e);
+ }, s.Pc = function() {
+ return XO(this);
+ }, s.Qc = function(e) {
+ return lf(this, e);
+ };
+ var RTe = w(fe, "ArrayList", 12);
+ b(7, 1, Ei, E), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return Kr(this);
+ }, s.Pb = function() {
+ return y(this);
+ }, s.Qb = function() {
+ F5(this);
+ }, s.a = 0, s.b = -1, w(fe, "ArrayList/1", 7), b(2013, j.Function, {}, zy), s.te = function(e, t) {
+ return ni(e, t);
+ }, b(154, 52, fKn, Ku), s.Hc = function(e) {
+ return NIn(this, e) != -1;
+ }, s.Jc = function(e) {
+ var t, i, r, c;
+ for (_n(e), i = this.a, r = 0, c = i.length; r < c; ++r)
+ t = i[r], e.td(t);
+ }, s.Xb = function(e) {
+ return nCn(this, e);
+ }, s._c = function(e, t) {
+ var i;
+ return i = (Ln(e, this.a.length), this.a[e]), Mt(this.a, e, t), i;
+ }, s.gc = function() {
+ return this.a.length;
+ }, s.ad = function(e) {
+ mD(this.a, this.a.length, e);
+ }, s.Pc = function() {
+ return K$n(this, F(Zn, rn, 1, this.a.length, 5, 1));
+ }, s.Qc = function(e) {
+ return K$n(this, e);
+ }, w(fe, "Arrays/ArrayList", 154);
+ var cr, ph, zA;
+ b(940, 52, fKn, nln), s.Hc = function(e) {
+ return !1;
+ }, s.Xb = function(e) {
+ return wz(e);
+ }, s.Kc = function() {
+ return Pn(), Yp(), W4;
+ }, s.Yc = function() {
+ return Pn(), Yp(), W4;
+ }, s.gc = function() {
+ return 0;
+ }, w(fe, "Collections/EmptyList", 940), b(941, 1, hh, eln), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Rb = function(e) {
+ throw T(new je());
+ }, s.Ob = function() {
+ return !1;
+ }, s.Sb = function() {
+ return !1;
+ }, s.Pb = function() {
+ throw T(new rc());
+ }, s.Tb = function() {
+ return 0;
+ }, s.Ub = function() {
+ throw T(new rc());
+ }, s.Vb = function() {
+ return -1;
+ }, s.Qb = function() {
+ throw T(new su());
+ }, s.Wb = function(e) {
+ throw T(new su());
+ };
+ var W4;
+ w(fe, "Collections/EmptyListIterator", 941), b(943, 1967, C4, tln), s._b = function(e) {
+ return !1;
+ }, s.uc = function(e) {
+ return !1;
+ }, s.vc = function() {
+ return Pn(), zA;
+ }, s.xc = function(e) {
+ return null;
+ }, s.ec = function() {
+ return Pn(), zA;
+ }, s.gc = function() {
+ return 0;
+ }, s.Cc = function() {
+ return Pn(), cr;
+ }, w(fe, "Collections/EmptyMap", 943), b(942, df, T4, Z1n), s.Hc = function(e) {
+ return !1;
+ }, s.Kc = function() {
+ return Pn(), Yp(), W4;
+ }, s.gc = function() {
+ return 0;
+ }, w(fe, "Collections/EmptySet", 942), b(599, 52, { 3: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1 }, OI), s.Hc = function(e) {
+ return vc(this.a, e);
+ }, s.Xb = function(e) {
+ return Ln(e, 1), this.a;
+ }, s.gc = function() {
+ return 1;
+ }, w(fe, "Collections/SingletonList", 599), b(372, 1, Q_n, Rp), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Lc = function() {
+ return new $n(null, this.Nc());
+ }, s.Nc = function() {
+ return new xn(this, 0);
+ }, s.Oc = function() {
+ return new $n(null, this.Nc());
+ }, s.Fc = function(e) {
+ return w8n();
+ }, s.Gc = function(e) {
+ return g8n();
+ }, s.$b = function() {
+ p8n();
+ }, s.Hc = function(e) {
+ return _9(this, e);
+ }, s.Ic = function(e) {
+ return r7n(this, e);
+ }, s.dc = function() {
+ return this.b.dc();
+ }, s.Kc = function() {
+ return new _p(this.b.Kc());
+ }, s.Mc = function(e) {
+ return v8n();
+ }, s.gc = function() {
+ return this.b.gc();
+ }, s.Pc = function() {
+ return this.b.Pc();
+ }, s.Qc = function(e) {
+ return c7n(this, e);
+ }, s.Ib = function() {
+ return Nr(this.b);
+ }, w(fe, "Collections/UnmodifiableCollection", 372), b(371, 1, Ei, _p), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return this.b.Ob();
+ }, s.Pb = function() {
+ return this.b.Pb();
+ }, s.Qb = function() {
+ m8n();
+ }, w(fe, "Collections/UnmodifiableCollectionIterator", 371), b(531, 372, hKn, lE), s.Nc = function() {
+ return new xn(this, 16);
+ }, s.Vc = function(e, t) {
+ throw T(new je());
+ }, s.Wc = function(e, t) {
+ throw T(new je());
+ }, s.Fb = function(e) {
+ return tt(this.a, e);
+ }, s.Xb = function(e) {
+ return this.a.Xb(e);
+ }, s.Hb = function() {
+ return mt(this.a);
+ }, s.Xc = function(e) {
+ return this.a.Xc(e);
+ }, s.dc = function() {
+ return this.a.dc();
+ }, s.Yc = function() {
+ return new Kz(this.a.Zc(0));
+ }, s.Zc = function(e) {
+ return new Kz(this.a.Zc(e));
+ }, s.$c = function(e) {
+ throw T(new je());
+ }, s._c = function(e, t) {
+ throw T(new je());
+ }, s.ad = function(e) {
+ throw T(new je());
+ }, s.bd = function(e, t) {
+ return new lE(this.a.bd(e, t));
+ }, w(fe, "Collections/UnmodifiableList", 531), b(690, 371, hh, Kz), s.Qb = function() {
+ m8n();
+ }, s.Rb = function(e) {
+ throw T(new je());
+ }, s.Sb = function() {
+ return this.a.Sb();
+ }, s.Tb = function() {
+ return this.a.Tb();
+ }, s.Ub = function() {
+ return this.a.Ub();
+ }, s.Vb = function() {
+ return this.a.Vb();
+ }, s.Wb = function(e) {
+ throw T(new je());
+ }, w(fe, "Collections/UnmodifiableListIterator", 690), b(600, 1, c0, DI), s.wc = function(e) {
+ n6(this, e);
+ }, s.yc = function(e, t, i) {
+ return IF(this, e, t, i);
+ }, s.$b = function() {
+ throw T(new je());
+ }, s._b = function(e) {
+ return this.c._b(e);
+ }, s.uc = function(e) {
+ return s7n(this, e);
+ }, s.vc = function() {
+ return g3(this);
+ }, s.Fb = function(e) {
+ return o7n(this, e);
+ }, s.xc = function(e) {
+ return this.c.xc(e);
+ }, s.Hb = function() {
+ return mt(this.c);
+ }, s.dc = function() {
+ return this.c.dc();
+ }, s.ec = function() {
+ return wTn(this);
+ }, s.zc = function(e, t) {
+ throw T(new je());
+ }, s.Bc = function(e) {
+ throw T(new je());
+ }, s.gc = function() {
+ return this.c.gc();
+ }, s.Ib = function() {
+ return Nr(this.c);
+ }, s.Cc = function() {
+ return bTn(this);
+ }, w(fe, "Collections/UnmodifiableMap", 600), b(382, 372, ML, Up), s.Nc = function() {
+ return new xn(this, 1);
+ }, s.Fb = function(e) {
+ return tt(this.b, e);
+ }, s.Hb = function() {
+ return mt(this.b);
+ }, w(fe, "Collections/UnmodifiableSet", 382), b(944, 382, ML, X9n), s.Hc = function(e) {
+ return u7n(this, e);
+ }, s.Ic = function(e) {
+ return this.b.Ic(e);
+ }, s.Kc = function() {
+ var e;
+ return e = this.b.Kc(), new Fvn(e);
+ }, s.Pc = function() {
+ var e;
+ return e = this.b.Pc(), KAn(e, e.length), e;
+ }, s.Qc = function(e) {
+ return QTn(this, e);
+ }, w(fe, "Collections/UnmodifiableMap/UnmodifiableEntrySet", 944), b(945, 1, Ei, Fvn), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return new kq(u(this.a.Pb(), 42));
+ }, s.Ob = function() {
+ return this.a.Ob();
+ }, s.Qb = function() {
+ throw T(new je());
+ }, w(fe, "Collections/UnmodifiableMap/UnmodifiableEntrySet/1", 945), b(688, 1, ZL, kq), s.Fb = function(e) {
+ return this.a.Fb(e);
+ }, s.cd = function() {
+ return this.a.cd();
+ }, s.dd = function() {
+ return this.a.dd();
+ }, s.Hb = function() {
+ return this.a.Hb();
+ }, s.ed = function(e) {
+ throw T(new je());
+ }, s.Ib = function() {
+ return Nr(this.a);
+ }, w(fe, "Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry", 688), b(601, 531, { 20: 1, 14: 1, 15: 1, 54: 1 }, ZI), w(fe, "Collections/UnmodifiableRandomAccessList", 601), b(689, 382, J_n, Hz), s.Nc = function() {
+ return new xj(this);
+ }, s.Fb = function(e) {
+ return tt(this.a, e);
+ }, s.Hb = function() {
+ return mt(this.a);
+ }, w(fe, "Collections/UnmodifiableSortedSet", 689), b(847, 1, nN, sln), s.ue = function(e, t) {
+ var i;
+ return i = HAn(u(e, 11), u(t, 11)), i != 0 ? i : JBn(u(e, 11), u(t, 11));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(fe, "Comparator/lambda$0$Type", 847);
+ var Lin, Nin, Bin;
+ b(751, 1, nN, DH), s.ue = function(e, t) {
+ return kfe(u(e, 35), u(t, 35));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return Ow(), Bin;
+ }, w(fe, "Comparators/NaturalOrderComparator", 751), b(1177, 1, nN, oln), s.ue = function(e, t) {
+ return yfe(u(e, 35), u(t, 35));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return Ow(), Nin;
+ }, w(fe, "Comparators/ReverseNaturalOrderComparator", 1177), b(64, 1, nN, ut), s.Fb = function(e) {
+ return this === e;
+ }, s.ue = function(e, t) {
+ return this.a.ue(t, e);
+ }, s.ve = function() {
+ return this.a;
+ }, w(fe, "Comparators/ReversedComparator", 64), b(166, 60, zh, ps), w(fe, "ConcurrentModificationException", 166);
+ var Mzn, Azn;
+ b(1904, 1, ck, fln), s.we = function(e) {
+ b$n(this, e);
+ }, s.Ib = function() {
+ return "DoubleSummaryStatistics[count = " + O5(this.a) + ", avg = " + (S7n(this.a, 0) ? TSn(this) / Fd(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + TSn(this) + "]";
+ }, s.a = 0, s.b = Qt, s.c = xt, s.d = 0, s.e = 0, s.f = 0, w(fe, "DoubleSummaryStatistics", 1904), b(1805, 60, zh, Gmn), w(fe, "EmptyStackException", 1805), b(451, 1967, c0, f6), s.zc = function(e, t) {
+ return wU(this, e, t);
+ }, s.$b = function() {
+ cTn(this);
+ }, s._b = function(e) {
+ return A7n(this, e);
+ }, s.uc = function(e) {
+ var t, i;
+ for (i = new o2(this.a); i.a < i.c.a.length; )
+ if (t = G5(i), vc(e, this.b[t.g]))
+ return !0;
+ return !1;
+ }, s.vc = function() {
+ return new Lvn(this);
+ }, s.xc = function(e) {
+ return br(this, e);
+ }, s.Bc = function(e) {
+ return eX(this, e);
+ }, s.gc = function() {
+ return this.a.c;
+ }, w(fe, "EnumMap", 451), b(1352, df, wu, Lvn), s.$b = function() {
+ cTn(this.a);
+ }, s.Hc = function(e) {
+ return lAn(this, e);
+ }, s.Kc = function() {
+ return new YEn(this.a);
+ }, s.Mc = function(e) {
+ var t;
+ return lAn(this, e) ? (t = u(e, 42).cd(), eX(this.a, t), !0) : !1;
+ }, s.gc = function() {
+ return this.a.a.c;
+ }, w(fe, "EnumMap/EntrySet", 1352), b(1353, 1, Ei, YEn), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return this.b = G5(this.a), new I7n(this.c, this.b);
+ }, s.Ob = function() {
+ return Tz(this.a);
+ }, s.Qb = function() {
+ U0(!!this.b), eX(this.c, this.b), this.b = null;
+ }, w(fe, "EnumMap/EntrySetIterator", 1353), b(1354, 1984, ZL, I7n), s.cd = function() {
+ return this.a;
+ }, s.dd = function() {
+ return this.b.b[this.a.g];
+ }, s.ed = function(e) {
+ return TW(this.b, this.a.g, e);
+ }, w(fe, "EnumMap/MapEntry", 1354), b(174, df, { 20: 1, 28: 1, 14: 1, 174: 1, 21: 1 });
+ var Szn = w(fe, "EnumSet", 174);
+ b(156, 174, { 20: 1, 28: 1, 14: 1, 174: 1, 156: 1, 21: 1 }, ms), s.Fc = function(e) {
+ return ko(this, u(e, 22));
+ }, s.Hc = function(e) {
+ return kD(this, e);
+ }, s.Kc = function() {
+ return new o2(this);
+ }, s.Mc = function(e) {
+ return aCn(this, e);
+ }, s.gc = function() {
+ return this.c;
+ }, s.c = 0, w(fe, "EnumSet/EnumSetImpl", 156), b(343, 1, Ei, o2), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return G5(this);
+ }, s.Ob = function() {
+ return Tz(this);
+ }, s.Qb = function() {
+ U0(this.b != -1), Mt(this.c.b, this.b, null), --this.c.c, this.b = -1;
+ }, s.a = -1, s.b = -1, w(fe, "EnumSet/EnumSetImpl/IteratorImpl", 343), b(43, 488, sg, we, s2, zkn), s.re = function(e, t) {
+ return B(e) === B(t) || e != null && tt(e, t);
+ }, s.se = function(e) {
+ var t;
+ return t = mt(e), t | 0;
+ }, w(fe, "HashMap", 43), b(53, df, nnn, hi, kj, S5), s.Fc = function(e) {
+ return ci(this, e);
+ }, s.$b = function() {
+ this.a.$b();
+ }, s.Hc = function(e) {
+ return Mh(this, e);
+ }, s.dc = function() {
+ return this.a.gc() == 0;
+ }, s.Kc = function() {
+ return this.a.ec().Kc();
+ }, s.Mc = function(e) {
+ return Pz(this, e);
+ }, s.gc = function() {
+ return this.a.gc();
+ };
+ var _Te = w(fe, "HashSet", 53);
+ b(1781, 1, Z7, hln), s.ud = function(e) {
+ TOn(this, e);
+ }, s.Ib = function() {
+ return "IntSummaryStatistics[count = " + O5(this.a) + ", avg = " + (S7n(this.a, 0) ? Fd(this.d) / Fd(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + O5(this.d) + "]";
+ }, s.a = 0, s.b = Bi, s.c = nt, s.d = 0, w(fe, "IntSummaryStatistics", 1781), b(1049, 1, lh, ryn), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ return new lX(this);
+ }, s.c = 0, w(fe, "InternalHashCodeMap", 1049), b(711, 1, Ei, lX), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return this.d = this.a[this.c++], this.d;
+ }, s.Ob = function() {
+ var e;
+ return this.c < this.a.length ? !0 : (e = this.b.next(), e.done ? !1 : (this.a = e.value[1], this.c = 0, !0));
+ }, s.Qb = function() {
+ MY(this.e, this.d.cd()), this.c != 0 && --this.c;
+ }, s.c = 0, s.d = null, w(fe, "InternalHashCodeMap/1", 711);
+ var Pzn;
+ b(1047, 1, lh, cyn), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ return new yX(this);
+ }, s.c = 0, s.d = 0, w(fe, "InternalStringMap", 1047), b(710, 1, Ei, yX), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return this.c = this.a, this.a = this.b.next(), new oEn(this.d, this.c, this.d.d);
+ }, s.Ob = function() {
+ return !this.a.done;
+ }, s.Qb = function() {
+ FOn(this.d, this.c.value[0]);
+ }, w(fe, "InternalStringMap/1", 710), b(1048, 1984, ZL, oEn), s.cd = function() {
+ return this.b.value[0];
+ }, s.dd = function() {
+ return this.a.d != this.c ? n5(this.a, this.b.value[0]) : this.b.value[1];
+ }, s.ed = function(e) {
+ return zd(this.a, this.b.value[0], e);
+ }, s.c = 0, w(fe, "InternalStringMap/2", 1048), b(228, 43, sg, wa, _X), s.$b = function() {
+ Ljn(this);
+ }, s._b = function(e) {
+ return P7n(this, e);
+ }, s.uc = function(e) {
+ var t;
+ for (t = this.d.a; t != this.d; ) {
+ if (vc(t.e, e))
+ return !0;
+ t = t.a;
+ }
+ return !1;
+ }, s.vc = function() {
+ return new Mq(this);
+ }, s.xc = function(e) {
+ return Ld(this, e);
+ }, s.zc = function(e, t) {
+ return Sa(this, e, t);
+ }, s.Bc = function(e) {
+ return FPn(this, e);
+ }, s.gc = function() {
+ return Xv(this.e);
+ }, s.c = !1, w(fe, "LinkedHashMap", 228), b(387, 383, { 484: 1, 383: 1, 387: 1, 42: 1 }, sjn, qU), w(fe, "LinkedHashMap/ChainEntry", 387), b(701, df, wu, Mq), s.$b = function() {
+ Ljn(this.a);
+ }, s.Hc = function(e) {
+ return dAn(this, e);
+ }, s.Kc = function() {
+ return new NW(this);
+ }, s.Mc = function(e) {
+ var t;
+ return dAn(this, e) ? (t = u(e, 42).cd(), FPn(this.a, t), !0) : !1;
+ }, s.gc = function() {
+ return Xv(this.a.e);
+ }, w(fe, "LinkedHashMap/EntrySet", 701), b(702, 1, Ei, NW), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return hPn(this);
+ }, s.Ob = function() {
+ return this.b != this.c.a.d;
+ }, s.Qb = function() {
+ U0(!!this.a), b$(this.c.a.e, this), ZU(this.a), O2(this.c.a.e, this.a.d), rU(this.c.a.e, this), this.a = null;
+ }, w(fe, "LinkedHashMap/EntrySet/EntryIterator", 702), b(178, 53, nnn, Ah, UO, iW);
+ var KTe = w(fe, "LinkedHashSet", 178);
+ b(68, 1964, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 68: 1, 15: 1 }, Ct, uD), s.Fc = function(e) {
+ return Ke(this, e);
+ }, s.$b = function() {
+ Rs(this);
+ }, s.Zc = function(e) {
+ return _e(this, e);
+ }, s.gc = function() {
+ return this.b;
+ }, s.b = 0;
+ var HTe = w(fe, "LinkedList", 68);
+ b(970, 1, hh, fEn), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Rb = function(e) {
+ y8(this, e);
+ }, s.Ob = function() {
+ return yj(this);
+ }, s.Sb = function() {
+ return this.b.b != this.d.a;
+ }, s.Pb = function() {
+ return Re(this);
+ }, s.Tb = function() {
+ return this.a;
+ }, s.Ub = function() {
+ return a$(this);
+ }, s.Vb = function() {
+ return this.a - 1;
+ }, s.Qb = function() {
+ HC(this);
+ }, s.Wb = function(e) {
+ U0(!!this.c), this.c.c = e;
+ }, s.a = 0, s.c = null, w(fe, "LinkedList/ListIteratorImpl", 970), b(608, 1, {}, aI), w(fe, "LinkedList/Node", 608), b(1959, 1, {});
+ var Rin, Izn;
+ w(fe, "Locale", 1959), b(861, 1959, {}, rln), s.Ib = function() {
+ return "";
+ }, w(fe, "Locale/1", 861), b(862, 1959, {}, cln), s.Ib = function() {
+ return "unknown";
+ }, w(fe, "Locale/4", 862), b(109, 60, { 3: 1, 102: 1, 60: 1, 78: 1, 109: 1 }, rc, pTn), w(fe, "NoSuchElementException", 109), b(404, 1, { 404: 1 }, dj), s.Fb = function(e) {
+ var t;
+ return e === this ? !0 : I(e, 404) ? (t = u(e, 404), vc(this.a, t.a)) : !1;
+ }, s.Hb = function() {
+ return Tw(this.a);
+ }, s.Ib = function() {
+ return this.a != null ? G_n + y5(this.a) + ")" : "Optional.empty()";
+ };
+ var UA;
+ w(fe, "Optional", 404), b(463, 1, { 463: 1 }, Qkn, Jz), s.Fb = function(e) {
+ var t;
+ return e === this ? !0 : I(e, 463) ? (t = u(e, 463), this.a == t.a && ni(this.b, t.b) == 0) : !1;
+ }, s.Hb = function() {
+ return this.a ? zt(this.b) : 0;
+ }, s.Ib = function() {
+ return this.a ? "OptionalDouble.of(" + ("" + this.b) + ")" : "OptionalDouble.empty()";
+ }, s.a = !1, s.b = 0;
+ var _in;
+ w(fe, "OptionalDouble", 463), b(517, 1, { 517: 1 }, Jkn, rjn), s.Fb = function(e) {
+ var t;
+ return e === this ? !0 : I(e, 517) ? (t = u(e, 517), this.a == t.a && zc(this.b, t.b) == 0) : !1;
+ }, s.Hb = function() {
+ return this.a ? this.b : 0;
+ }, s.Ib = function() {
+ return this.a ? "OptionalInt.of(" + ("" + this.b) + ")" : "OptionalInt.empty()";
+ }, s.a = !1, s.b = 0;
+ var Ozn;
+ w(fe, "OptionalInt", 517), b(503, 2004, Pb, GE), s.Gc = function(e) {
+ return lJ(this, e);
+ }, s.$b = function() {
+ this.b.c = F(Zn, rn, 1, 0, 5, 1);
+ }, s.Hc = function(e) {
+ return (e == null ? -1 : xr(this.b, e, 0)) != -1;
+ }, s.Kc = function() {
+ return new xvn(this);
+ }, s.Mc = function(e) {
+ return QIn(this, e);
+ }, s.gc = function() {
+ return this.b.c.length;
+ }, s.Nc = function() {
+ return new xn(this, 256);
+ }, s.Pc = function() {
+ return XO(this.b);
+ }, s.Qc = function(e) {
+ return lf(this.b, e);
+ }, w(fe, "PriorityQueue", 503), b(1277, 1, Ei, xvn), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return this.a < this.c.b.c.length;
+ }, s.Pb = function() {
+ return ne(this.a < this.c.b.c.length), this.b = this.a++, un(this.c.b, this.b);
+ }, s.Qb = function() {
+ U0(this.b != -1), J$(this.c, this.a = this.b), this.b = -1;
+ }, s.a = 0, s.b = -1, w(fe, "PriorityQueue/1", 1277), b(230, 1, { 230: 1 }, OF, EC), s.a = 0, s.b = 0;
+ var Kin, Hin, qTe = 0;
+ w(fe, "Random", 230), b(27, 1, qs, xn, Td, mTn), s.qd = function() {
+ return this.a;
+ }, s.rd = function() {
+ return mW(this), this.c;
+ }, s.Nb = function(e) {
+ mW(this), this.d.Nb(e);
+ }, s.sd = function(e) {
+ return rIn(this, e);
+ }, s.a = 0, s.c = 0, w(fe, "Spliterators/IteratorSpliterator", 27), b(485, 27, qs, xj), w(fe, "SortedSet/1", 485), b(602, 1, ck, yq), s.we = function(e) {
+ this.a.td(e);
+ }, w(fe, "Spliterator/OfDouble/0methodref$accept$Type", 602), b(603, 1, ck, jq), s.we = function(e) {
+ this.a.td(e);
+ }, w(fe, "Spliterator/OfDouble/1methodref$accept$Type", 603), b(604, 1, Z7, Eq), s.ud = function(e) {
+ this.a.td(Q(e));
+ }, w(fe, "Spliterator/OfInt/2methodref$accept$Type", 604), b(605, 1, Z7, Cq), s.ud = function(e) {
+ this.a.td(Q(e));
+ }, w(fe, "Spliterator/OfInt/3methodref$accept$Type", 605), b(617, 1, qs), s.Nb = function(e) {
+ TG(this, e);
+ }, s.qd = function() {
+ return this.d;
+ }, s.rd = function() {
+ return this.e;
+ }, s.d = 0, s.e = 0, w(fe, "Spliterators/BaseSpliterator", 617), b(721, 617, qs), s.xe = function(e) {
+ vw(this, e);
+ }, s.Nb = function(e) {
+ I(e, 182) ? vw(this, u(e, 182)) : vw(this, new jq(e));
+ }, s.sd = function(e) {
+ return I(e, 182) ? this.ye(u(e, 182)) : this.ye(new yq(e));
+ }, w(fe, "Spliterators/AbstractDoubleSpliterator", 721), b(720, 617, qs), s.xe = function(e) {
+ vw(this, e);
+ }, s.Nb = function(e) {
+ I(e, 196) ? vw(this, u(e, 196)) : vw(this, new Cq(e));
+ }, s.sd = function(e) {
+ return I(e, 196) ? this.ye(u(e, 196)) : this.ye(new Eq(e));
+ }, w(fe, "Spliterators/AbstractIntSpliterator", 720), b(540, 617, qs), w(fe, "Spliterators/AbstractSpliterator", 540), b(692, 1, qs), s.Nb = function(e) {
+ TG(this, e);
+ }, s.qd = function() {
+ return this.b;
+ }, s.rd = function() {
+ return this.d - this.c;
+ }, s.b = 0, s.c = 0, s.d = 0, w(fe, "Spliterators/BaseArraySpliterator", 692), b(947, 692, qs, _En), s.ze = function(e, t) {
+ Die(this, u(e, 38), t);
+ }, s.Nb = function(e) {
+ RD(this, e);
+ }, s.sd = function(e) {
+ return PC(this, e);
+ }, w(fe, "Spliterators/ArraySpliterator", 947), b(693, 692, qs, cEn), s.ze = function(e, t) {
+ $ie(this, u(e, 182), t);
+ }, s.xe = function(e) {
+ RD(this, e);
+ }, s.Nb = function(e) {
+ I(e, 182) ? RD(this, u(e, 182)) : RD(this, new jq(e));
+ }, s.ye = function(e) {
+ return PC(this, e);
+ }, s.sd = function(e) {
+ return I(e, 182) ? PC(this, u(e, 182)) : PC(this, new yq(e));
+ }, w(fe, "Spliterators/DoubleArraySpliterator", 693), b(1968, 1, qs), s.Nb = function(e) {
+ TG(this, e);
+ }, s.qd = function() {
+ return 16448;
+ }, s.rd = function() {
+ return 0;
+ };
+ var Dzn;
+ w(fe, "Spliterators/EmptySpliterator", 1968), b(946, 1968, qs, aln), s.xe = function(e) {
+ iq(e);
+ }, s.Nb = function(e) {
+ I(e, 196) ? iq(u(e, 196)) : iq(new Cq(e));
+ }, s.ye = function(e) {
+ return LG(e);
+ }, s.sd = function(e) {
+ return I(e, 196) ? LG(u(e, 196)) : LG(new Eq(e));
+ }, w(fe, "Spliterators/EmptySpliterator/OfInt", 946), b(580, 52, lKn, lj), s.Vc = function(e, t) {
+ l3(e, this.a.c.length + 1), J0(this.a, e, t);
+ }, s.Fc = function(e) {
+ return W(this.a, e);
+ }, s.Wc = function(e, t) {
+ return l3(e, this.a.c.length + 1), eQ(this.a, e, t);
+ }, s.Gc = function(e) {
+ return Zt(this.a, e);
+ }, s.$b = function() {
+ this.a.c = F(Zn, rn, 1, 0, 5, 1);
+ }, s.Hc = function(e) {
+ return xr(this.a, e, 0) != -1;
+ }, s.Ic = function(e) {
+ return t7(this.a, e);
+ }, s.Jc = function(e) {
+ Jc(this.a, e);
+ }, s.Xb = function(e) {
+ return l3(e, this.a.c.length), un(this.a, e);
+ }, s.Xc = function(e) {
+ return xr(this.a, e, 0);
+ }, s.dc = function() {
+ return this.a.c.length == 0;
+ }, s.Kc = function() {
+ return new E(this.a);
+ }, s.$c = function(e) {
+ return l3(e, this.a.c.length), h1(this.a, e);
+ }, s.Ud = function(e, t) {
+ LMn(this.a, e, t);
+ }, s._c = function(e, t) {
+ return l3(e, this.a.c.length), js(this.a, e, t);
+ }, s.gc = function() {
+ return this.a.c.length;
+ }, s.ad = function(e) {
+ wi(this.a, e);
+ }, s.bd = function(e, t) {
+ return new ch(this.a, e, t);
+ }, s.Pc = function() {
+ return XO(this.a);
+ }, s.Qc = function(e) {
+ return lf(this.a, e);
+ }, s.Ib = function() {
+ return ml(this.a);
+ }, w(fe, "Vector", 580), b(809, 580, lKn, Yq), w(fe, "Stack", 809), b(206, 1, { 206: 1 }, ya), s.Ib = function() {
+ return cAn(this);
+ }, w(fe, "StringJoiner", 206), b(544, 1992, { 3: 1, 83: 1, 171: 1, 161: 1 }, l7n, AD), s.$b = function() {
+ Kv(this);
+ }, s.vc = function() {
+ return new j5(this);
+ }, s.zc = function(e, t) {
+ return bT(this, e, t);
+ }, s.Bc = function(e) {
+ return R5(this, e);
+ }, s.gc = function() {
+ return this.c;
+ }, s.c = 0, w(fe, "TreeMap", 544), b(390, 1, Ei, T5), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return pE(this);
+ }, s.Ob = function() {
+ return G9(this.a);
+ }, s.Qb = function() {
+ hEn(this);
+ }, w(fe, "TreeMap/EntryIterator", 390), b(435, 739, wu, j5), s.$b = function() {
+ Kv(this.a);
+ }, w(fe, "TreeMap/EntrySet", 435), b(436, 383, { 484: 1, 383: 1, 42: 1, 436: 1 }, I$), s.b = !1;
+ var GTe = w(fe, "TreeMap/Node", 436);
+ b(621, 1, {}, dI), s.Ib = function() {
+ return "State: mv=" + this.c + " value=" + this.d + " done=" + this.a + " found=" + this.b;
+ }, s.a = !1, s.b = !1, s.c = !1, w(fe, "TreeMap/State", 621), b(297, 22, iN, Lj), s.Ae = function() {
+ return !1;
+ }, s.Be = function() {
+ return !1;
+ };
+ var vR, qin, Gin, zin, WA = Ae(fe, "TreeMap/SubMapType", 297, Ie, pae, Xue);
+ b(1112, 297, iN, ayn), s.Be = function() {
+ return !0;
+ }, Ae(fe, "TreeMap/SubMapType/1", 1112, WA, null, null), b(1113, 297, iN, Cyn), s.Ae = function() {
+ return !0;
+ }, s.Be = function() {
+ return !0;
+ }, Ae(fe, "TreeMap/SubMapType/2", 1113, WA, null, null), b(1114, 297, iN, dyn), s.Ae = function() {
+ return !0;
+ }, Ae(fe, "TreeMap/SubMapType/3", 1114, WA, null, null);
+ var $zn;
+ b(208, df, { 3: 1, 20: 1, 28: 1, 14: 1, 271: 1, 21: 1, 84: 1, 208: 1 }, Wq, J1), s.Nc = function() {
+ return new xj(this);
+ }, s.Fc = function(e) {
+ return k8(this, e);
+ }, s.$b = function() {
+ Kv(this.a);
+ }, s.Hc = function(e) {
+ return cD(this.a, e);
+ }, s.Kc = function() {
+ var e;
+ return e = new T5(new j5(new P9(this.a).a).b), new I9(e);
+ }, s.Mc = function(e) {
+ return zO(this, e);
+ }, s.gc = function() {
+ return this.a.c;
+ };
+ var zTe = w(fe, "TreeSet", 208);
+ b(966, 1, {}, Nvn), s.Ce = function(e, t) {
+ return aue(this.a, e, t);
+ }, w(rN, "BinaryOperator/lambda$0$Type", 966), b(967, 1, {}, Bvn), s.Ce = function(e, t) {
+ return due(this.a, e, t);
+ }, w(rN, "BinaryOperator/lambda$1$Type", 967), b(846, 1, {}, lln), s.Kb = function(e) {
+ return e;
+ }, w(rN, "Function/lambda$0$Type", 846), b(431, 1, Ve, Fv), s.Mb = function(e) {
+ return !this.a.Mb(e);
+ }, w(rN, "Predicate/lambda$2$Type", 431), b(572, 1, { 572: 1 });
+ var Fzn = w(R6, "Handler", 572);
+ b(2007, 1, J7), s.ne = function() {
+ return "DUMMY";
+ }, s.Ib = function() {
+ return this.ne();
+ };
+ var Uin;
+ w(R6, "Level", 2007), b(1621, 2007, J7, dln), s.ne = function() {
+ return "INFO";
+ }, w(R6, "Level/LevelInfo", 1621), b(1640, 1, {}, Vmn);
+ var mR;
+ w(R6, "LogManager", 1640), b(1780, 1, J7, lEn), s.b = null, w(R6, "LogRecord", 1780), b(512, 1, { 512: 1 }, y$), s.e = !1;
+ var xzn = !1, Lzn = !1, pf = !1, Nzn = !1, Bzn = !1;
+ w(R6, "Logger", 512), b(819, 572, { 572: 1 }, $H), w(R6, "SimpleConsoleLogHandler", 819), b(132, 22, { 3: 1, 35: 1, 22: 1, 132: 1 }, uO);
+ var Win, hs, _b, Nu = Ae(ti, "Collector/Characteristics", 132, Ie, ble, Vue), Rzn;
+ b(744, 1, {}, CW), w(ti, "CollectorImpl", 744), b(1060, 1, {}, bln), s.Ce = function(e, t) {
+ return mge(u(e, 206), u(t, 206));
+ }, w(ti, "Collectors/10methodref$merge$Type", 1060), b(1061, 1, {}, wln), s.Kb = function(e) {
+ return cAn(u(e, 206));
+ }, w(ti, "Collectors/11methodref$toString$Type", 1061), b(1062, 1, {}, Rvn), s.Kb = function(e) {
+ return qn(), !!gz(e);
+ }, w(ti, "Collectors/12methodref$test$Type", 1062), b(251, 1, {}, G1), s.Od = function(e, t) {
+ u(e, 14).Fc(t);
+ }, w(ti, "Collectors/20methodref$add$Type", 251), b(253, 1, {}, z1), s.Ee = function() {
+ return new X();
+ }, w(ti, "Collectors/21methodref$ctor$Type", 253), b(346, 1, {}, Vg), s.Ee = function() {
+ return new hi();
+ }, w(ti, "Collectors/23methodref$ctor$Type", 346), b(347, 1, {}, Qg), s.Od = function(e, t) {
+ ci(u(e, 53), t);
+ }, w(ti, "Collectors/24methodref$add$Type", 347), b(1055, 1, {}, gln), s.Ce = function(e, t) {
+ return a7n(u(e, 15), u(t, 14));
+ }, w(ti, "Collectors/4methodref$addAll$Type", 1055), b(1059, 1, {}, pln), s.Od = function(e, t) {
+ Fh(u(e, 206), u(t, 475));
+ }, w(ti, "Collectors/9methodref$add$Type", 1059), b(1058, 1, {}, SEn), s.Ee = function() {
+ return new ya(this.a, this.b, this.c);
+ }, w(ti, "Collectors/lambda$15$Type", 1058), b(1063, 1, {}, vln), s.Ee = function() {
+ var e;
+ return e = new wa(), Sa(e, (qn(), !1), new X()), Sa(e, !0, new X()), e;
+ }, w(ti, "Collectors/lambda$22$Type", 1063), b(1064, 1, {}, _vn), s.Ee = function() {
+ return A(M(Zn, 1), rn, 1, 5, [this.a]);
+ }, w(ti, "Collectors/lambda$25$Type", 1064), b(1065, 1, {}, Kvn), s.Od = function(e, t) {
+ jfe(this.a, va(e));
+ }, w(ti, "Collectors/lambda$26$Type", 1065), b(1066, 1, {}, Hvn), s.Ce = function(e, t) {
+ return Xfe(this.a, va(e), va(t));
+ }, w(ti, "Collectors/lambda$27$Type", 1066), b(1067, 1, {}, mln), s.Kb = function(e) {
+ return va(e)[0];
+ }, w(ti, "Collectors/lambda$28$Type", 1067), b(713, 1, {}, FH), s.Ce = function(e, t) {
+ return rW(e, t);
+ }, w(ti, "Collectors/lambda$4$Type", 713), b(252, 1, {}, U1), s.Ce = function(e, t) {
+ return Zie(u(e, 14), u(t, 14));
+ }, w(ti, "Collectors/lambda$42$Type", 252), b(348, 1, {}, Jg), s.Ce = function(e, t) {
+ return nre(u(e, 53), u(t, 53));
+ }, w(ti, "Collectors/lambda$50$Type", 348), b(349, 1, {}, Yg), s.Kb = function(e) {
+ return u(e, 53);
+ }, w(ti, "Collectors/lambda$51$Type", 349), b(1054, 1, {}, qvn), s.Od = function(e, t) {
+ Lwe(this.a, u(e, 83), t);
+ }, w(ti, "Collectors/lambda$7$Type", 1054), b(1056, 1, {}, kln), s.Ce = function(e, t) {
+ return hwe(u(e, 83), u(t, 83), new gln());
+ }, w(ti, "Collectors/lambda$8$Type", 1056), b(1057, 1, {}, Gvn), s.Kb = function(e) {
+ return Zge(this.a, u(e, 83));
+ }, w(ti, "Collectors/lambda$9$Type", 1057), b(539, 1, {}), s.He = function() {
+ N5(this);
+ }, s.d = !1, w(ti, "TerminatableStream", 539), b(812, 539, inn, sU), s.He = function() {
+ N5(this);
+ }, w(ti, "DoubleStreamImpl", 812), b(1784, 721, qs, PEn), s.ye = function(e) {
+ return s3e(this, u(e, 182));
+ }, s.a = null, w(ti, "DoubleStreamImpl/2", 1784), b(1785, 1, ck, zvn), s.we = function(e) {
+ Ure(this.a, e);
+ }, w(ti, "DoubleStreamImpl/2/lambda$0$Type", 1785), b(1782, 1, ck, Uvn), s.we = function(e) {
+ zre(this.a, e);
+ }, w(ti, "DoubleStreamImpl/lambda$0$Type", 1782), b(1783, 1, ck, Wvn), s.we = function(e) {
+ b$n(this.a, e);
+ }, w(ti, "DoubleStreamImpl/lambda$2$Type", 1783), b(1358, 720, qs, gSn), s.ye = function(e) {
+ return hae(this, u(e, 196));
+ }, s.a = 0, s.b = 0, s.c = 0, w(ti, "IntStream/5", 1358), b(787, 539, inn, oU), s.He = function() {
+ N5(this);
+ }, s.Ie = function() {
+ return ol(this), this.a;
+ }, w(ti, "IntStreamImpl", 787), b(788, 539, inn, PG), s.He = function() {
+ N5(this);
+ }, s.Ie = function() {
+ return ol(this), Iz(), Dzn;
+ }, w(ti, "IntStreamImpl/Empty", 788), b(1463, 1, Z7, Xvn), s.ud = function(e) {
+ TOn(this.a, e);
+ }, w(ti, "IntStreamImpl/lambda$4$Type", 1463);
+ var UTe = Et(ti, "Stream");
+ b(30, 539, { 525: 1, 670: 1, 833: 1 }, $n), s.He = function() {
+ N5(this);
+ };
+ var X4;
+ w(ti, "StreamImpl", 30), b(845, 1, {}, Vee), s.ld = function(e) {
+ return OEn(e);
+ }, w(ti, "StreamImpl/0methodref$lambda$2$Type", 845), b(1084, 540, qs, rEn), s.sd = function(e) {
+ for (; n0e(this); ) {
+ if (this.a.sd(e))
+ return !0;
+ N5(this.b), this.b = null, this.a = null;
+ }
+ return !1;
+ }, w(ti, "StreamImpl/1", 1084), b(1085, 1, Yn, Vvn), s.td = function(e) {
+ Qoe(this.a, u(e, 833));
+ }, w(ti, "StreamImpl/1/lambda$0$Type", 1085), b(1086, 1, Ve, Qvn), s.Mb = function(e) {
+ return ci(this.a, e);
+ }, w(ti, "StreamImpl/1methodref$add$Type", 1086), b(1087, 540, qs, $Tn), s.sd = function(e) {
+ var t;
+ return this.a || (t = new X(), this.b.a.Nb(new Jvn(t)), Pn(), wi(t, this.c), this.a = new xn(t, 16)), rIn(this.a, e);
+ }, s.a = null, w(ti, "StreamImpl/5", 1087), b(1088, 1, Yn, Jvn), s.td = function(e) {
+ W(this.a, e);
+ }, w(ti, "StreamImpl/5/2methodref$add$Type", 1088), b(722, 540, qs, UX), s.sd = function(e) {
+ for (this.b = !1; !this.b && this.c.sd(new D7n(this, e)); )
+ ;
+ return this.b;
+ }, s.b = !1, w(ti, "StreamImpl/FilterSpliterator", 722), b(1079, 1, Yn, D7n), s.td = function(e) {
+ Wfe(this.a, this.b, e);
+ }, w(ti, "StreamImpl/FilterSpliterator/lambda$0$Type", 1079), b(1075, 721, qs, SSn), s.ye = function(e) {
+ return Lue(this, u(e, 182));
+ }, w(ti, "StreamImpl/MapToDoubleSpliterator", 1075), b(1078, 1, Yn, $7n), s.td = function(e) {
+ bre(this.a, this.b, e);
+ }, w(ti, "StreamImpl/MapToDoubleSpliterator/lambda$0$Type", 1078), b(1074, 720, qs, PSn), s.ye = function(e) {
+ return Nue(this, u(e, 196));
+ }, w(ti, "StreamImpl/MapToIntSpliterator", 1074), b(1077, 1, Yn, F7n), s.td = function(e) {
+ dre(this.a, this.b, e);
+ }, w(ti, "StreamImpl/MapToIntSpliterator/lambda$0$Type", 1077), b(719, 540, qs, FX), s.sd = function(e) {
+ return eEn(this, e);
+ }, w(ti, "StreamImpl/MapToObjSpliterator", 719), b(1076, 1, Yn, x7n), s.td = function(e) {
+ wre(this.a, this.b, e);
+ }, w(ti, "StreamImpl/MapToObjSpliterator/lambda$0$Type", 1076), b(618, 1, Yn, bI), s.td = function(e) {
+ Pvn(this, e);
+ }, w(ti, "StreamImpl/ValueConsumer", 618), b(1080, 1, Yn, yln), s.td = function(e) {
+ ua();
+ }, w(ti, "StreamImpl/lambda$0$Type", 1080), b(1081, 1, Yn, jln), s.td = function(e) {
+ ua();
+ }, w(ti, "StreamImpl/lambda$1$Type", 1081), b(1082, 1, {}, Yvn), s.Ce = function(e, t) {
+ return dse(this.a, e, t);
+ }, w(ti, "StreamImpl/lambda$4$Type", 1082), b(1083, 1, Yn, O7n), s.td = function(e) {
+ Eue(this.b, this.a, e);
+ }, w(ti, "StreamImpl/lambda$5$Type", 1083), b(1089, 1, Yn, Zvn), s.td = function(e) {
+ Pwe(this.a, u(e, 365));
+ }, w(ti, "TerminatableStream/lambda$0$Type", 1089), b(2041, 1, {}), b(1914, 1, {}, Eln), w("javaemul.internal", "ConsoleLogger", 1914), b(2038, 1, {});
+ var WTe = 0, Xin, Vin = 0, XA;
+ b(1768, 1, Yn, Cln), s.td = function(e) {
+ u(e, 308);
+ }, w(S4, "BowyerWatsonTriangulation/lambda$0$Type", 1768), b(1769, 1, Yn, n5n), s.td = function(e) {
+ Xi(this.a, u(e, 308).e);
+ }, w(S4, "BowyerWatsonTriangulation/lambda$1$Type", 1769), b(1770, 1, Yn, Tln), s.td = function(e) {
+ u(e, 168);
+ }, w(S4, "BowyerWatsonTriangulation/lambda$2$Type", 1770), b(1765, 1, lt, e5n), s.ue = function(e, t) {
+ return qae(this.a, u(e, 168), u(t, 168));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(S4, "NaiveMinST/lambda$0$Type", 1765), b(499, 1, {}, O9), w(S4, "NodeMicroLayout", 499), b(168, 1, { 168: 1 }, f2), s.Fb = function(e) {
+ var t;
+ return I(e, 168) ? (t = u(e, 168), vc(this.a, t.a) && vc(this.b, t.b) || vc(this.a, t.b) && vc(this.b, t.a)) : !1;
+ }, s.Hb = function() {
+ return Tw(this.a) + Tw(this.b);
+ };
+ var XTe = w(S4, "TEdge", 168);
+ b(308, 1, { 308: 1 }, yZ), s.Fb = function(e) {
+ var t;
+ return I(e, 308) ? (t = u(e, 308), LC(this, t.a) && LC(this, t.b) && LC(this, t.c)) : !1;
+ }, s.Hb = function() {
+ return Tw(this.a) + Tw(this.b) + Tw(this.c);
+ }, w(S4, "TTriangle", 308), b(221, 1, { 221: 1 }, sE), w(S4, "Tree", 221), b(1254, 1, {}, kMn), w(bKn, "Scanline", 1254);
+ var _zn = Et(bKn, wKn);
+ b(1692, 1, {}, oIn), w(bh, "CGraph", 1692), b(307, 1, { 307: 1 }, wMn), s.b = 0, s.c = 0, s.d = 0, s.g = 0, s.i = 0, s.k = Qt, w(bh, "CGroup", 307), b(815, 1, {}, Xq), w(bh, "CGroup/CGroupBuilder", 815), b(57, 1, { 57: 1 }, Rjn), s.Ib = function() {
+ var e;
+ return this.j ? Te(this.j.Kb(this)) : (Sh(VA), VA.o + "@" + (e = kd(this) >>> 0, e.toString(16)));
+ }, s.f = 0, s.i = Qt;
+ var VA = w(bh, "CNode", 57);
+ b(814, 1, {}, Vq), w(bh, "CNode/CNodeBuilder", 814);
+ var Kzn;
+ b(1525, 1, {}, Mln), s.Oe = function(e, t) {
+ return 0;
+ }, s.Pe = function(e, t) {
+ return 0;
+ }, w(bh, pKn, 1525), b(1790, 1, {}, Aln), s.Le = function(e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C;
+ for (a = xt, r = new E(e.a.b); r.a < r.c.c.length; )
+ t = u(y(r), 57), a = j.Math.min(a, t.a.j.d.c + t.b.a);
+ for (v = new Ct(), f = new E(e.a.a); f.a < f.c.c.length; )
+ o = u(y(f), 307), o.k = a, o.g == 0 && Ht(v, o, v.c.b, v.c);
+ for (; v.b != 0; ) {
+ for (o = u(v.b == 0 ? null : (ne(v.b != 0), Cs(v, v.a.a)), 307), c = o.j.d.c, p = o.a.a.ec().Kc(); p.Ob(); )
+ d = u(p.Pb(), 57), C = o.k + d.b.a, !cge(e, o, e.d) || d.d.c < C ? d.i = C : d.i = d.d.c;
+ for (c -= o.j.i, o.b += c, e.d == (sr(), Ao) || e.d == Qh ? o.c += c : o.c -= c, g = o.a.a.ec().Kc(); g.Ob(); )
+ for (d = u(g.Pb(), 57), l = d.c.Kc(); l.Ob(); )
+ h = u(l.Pb(), 57), el(e.d) ? m = e.g.Oe(d, h) : m = e.g.Pe(d, h), h.a.k = j.Math.max(h.a.k, d.i + d.d.b + m - h.b.a), KTn(e, h, e.d) && (h.a.k = j.Math.max(h.a.k, h.d.c - h.b.a)), --h.a.g, h.a.g == 0 && Ke(v, h.a);
+ }
+ for (i = new E(e.a.b); i.a < i.c.c.length; )
+ t = u(y(i), 57), t.d.c = t.i;
+ }, w(bh, "LongestPathCompaction", 1790), b(1690, 1, {}, xLn), s.e = !1;
+ var Hzn, qzn, Gzn, kR = w(bh, kKn, 1690);
+ b(1691, 1, Yn, t5n), s.td = function(e) {
+ swe(this.a, u(e, 46));
+ }, w(bh, yKn, 1691), b(1791, 1, {}, Sln), s.Me = function(e) {
+ var t, i, r, c, o, f, h;
+ for (i = new E(e.a.b); i.a < i.c.c.length; )
+ t = u(y(i), 57), t.c.$b();
+ for (c = new E(e.a.b); c.a < c.c.c.length; )
+ for (r = u(y(c), 57), f = new E(e.a.b); f.a < f.c.c.length; )
+ o = u(y(f), 57), r != o && (r.a && r.a == o.a || (el(e.d) ? h = e.g.Pe(r, o) : h = e.g.Oe(r, o), (o.d.c > r.d.c || r.d.c == o.d.c && r.d.b < o.d.b) && U2e(o.d.d + o.d.a + h, r.d.d) && HQ(o.d.d, r.d.d + r.d.a + h) && r.c.Fc(o)));
+ }, w(bh, "QuadraticConstraintCalculation", 1791), b(522, 1, { 522: 1 }, FI), s.a = !1, s.b = !1, s.c = !1, s.d = !1, w(bh, jKn, 522), b(803, 1, {}, hW), s.Me = function(e) {
+ this.c = e, O7(this, new Oln());
+ }, w(bh, EKn, 803), b(1718, 1, { 679: 1 }, qTn), s.Ke = function(e) {
+ t6e(this, u(e, 464));
+ }, w(bh, CKn, 1718), b(1719, 1, lt, Pln), s.ue = function(e, t) {
+ return i1e(u(e, 57), u(t, 57));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(bh, TKn, 1719), b(464, 1, { 464: 1 }, RG), s.a = !1, w(bh, MKn, 464), b(1720, 1, lt, Iln), s.ue = function(e, t) {
+ return b4e(u(e, 464), u(t, 464));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(bh, AKn, 1720), b(1721, 1, Rf, Oln), s.Lb = function(e) {
+ return u(e, 57), !0;
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return u(e, 57), !0;
+ }, w(bh, "ScanlineConstraintCalculator/lambda$1$Type", 1721), b(428, 22, { 3: 1, 35: 1, 22: 1, 428: 1 }, HG);
+ var Qin, yR, Jin = Ae(oN, "HighLevelSortingCriterion", 428, Ie, q1e, Que), zzn;
+ b(427, 22, { 3: 1, 35: 1, 22: 1, 427: 1 }, qG);
+ var Yin, jR, Zin = Ae(oN, "LowLevelSortingCriterion", 427, Ie, G1e, Jue), Uzn, mg = Et(Wr, "ILayoutMetaDataProvider");
+ b(853, 1, Gs, f4n), s.Qe = function(e) {
+ En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), snn), fN), "Polyomino Traversal Strategy"), "Traversal strategy for trying different candidate positions for polyominoes."), urn), (y1(), Bt)), wrn), Cn((Ho(), Xn))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), onn), fN), "Polyomino Secondary Sorting Criterion"), "Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."), rrn), Bt), Zin), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), fnn), fN), "Polyomino Primary Sorting Criterion"), "Possible primary sorting criteria for the processing order of polyominoes."), trn), Bt), Jin), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), hnn), fN), "Fill Polyominoes"), "Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."), (qn(), !0)), _i), oi), Cn(Xn))));
+ };
+ var nrn, ern, trn, irn, rrn, crn, urn;
+ w(oN, "PolyominoOptions", 853), b(250, 22, { 3: 1, 35: 1, 22: 1, 250: 1 }, kw);
+ var srn, orn, frn, hrn, lrn, arn, ER, drn, brn, wrn = Ae(oN, "TraversalStrategy", 250, Ie, ibe, Yue), Wzn;
+ b(213, 1, { 213: 1 }, Dln), s.Ib = function() {
+ return "NEdge[id=" + this.b + " w=" + this.g + " d=" + this.a + "]";
+ }, s.a = 1, s.b = 0, s.c = 0, s.f = !1, s.g = 0;
+ var Xzn = w(_6, "NEdge", 213);
+ b(176, 1, {}, Ls), w(_6, "NEdge/NEdgeBuilder", 176), b(653, 1, {}, LI), w(_6, "NGraph", 653), b(121, 1, { 121: 1 }, MSn), s.c = -1, s.d = 0, s.e = 0, s.i = -1, s.j = !1;
+ var grn = w(_6, "NNode", 121);
+ b(795, 1, hKn, zq), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Lc = function() {
+ return new $n(null, new xn(this, 16));
+ }, s.ad = function(e) {
+ Lw(this, e);
+ }, s.Nc = function() {
+ return new xn(this, 16);
+ }, s.Oc = function() {
+ return new $n(null, new xn(this, 16));
+ }, s.Vc = function(e, t) {
+ ++this.b, J0(this.a, e, t);
+ }, s.Fc = function(e) {
+ return bE(this, e);
+ }, s.Wc = function(e, t) {
+ return ++this.b, eQ(this.a, e, t);
+ }, s.Gc = function(e) {
+ return ++this.b, Zt(this.a, e);
+ }, s.$b = function() {
+ ++this.b, this.a.c = F(Zn, rn, 1, 0, 5, 1);
+ }, s.Hc = function(e) {
+ return xr(this.a, e, 0) != -1;
+ }, s.Ic = function(e) {
+ return t7(this.a, e);
+ }, s.Xb = function(e) {
+ return un(this.a, e);
+ }, s.Xc = function(e) {
+ return xr(this.a, e, 0);
+ }, s.dc = function() {
+ return this.a.c.length == 0;
+ }, s.Kc = function() {
+ return $2(new E(this.a));
+ }, s.Yc = function() {
+ throw T(new je());
+ }, s.Zc = function(e) {
+ throw T(new je());
+ }, s.$c = function(e) {
+ return ++this.b, h1(this.a, e);
+ }, s.Mc = function(e) {
+ return Uz(this, e);
+ }, s._c = function(e, t) {
+ return ++this.b, js(this.a, e, t);
+ }, s.gc = function() {
+ return this.a.c.length;
+ }, s.bd = function(e, t) {
+ return new ch(this.a, e, t);
+ }, s.Pc = function() {
+ return XO(this.a);
+ }, s.Qc = function(e) {
+ return lf(this.a, e);
+ }, s.b = 0, w(_6, "NNode/ChangeAwareArrayList", 795), b(269, 1, {}, ca), w(_6, "NNode/NNodeBuilder", 269), b(1630, 1, {}, $ln), s.a = !1, s.f = nt, s.j = 0, w(_6, "NetworkSimplex", 1630), b(1294, 1, Yn, i5n), s.td = function(e) {
+ f_n(this.a, u(e, 680), !0, !1);
+ }, w(SKn, "NodeLabelAndSizeCalculator/lambda$0$Type", 1294), b(558, 1, {}, tj), s.b = !0, s.c = !0, s.d = !0, s.e = !0, w(SKn, "NodeMarginCalculator", 558), b(212, 1, { 212: 1 }), s.j = !1, s.k = !1;
+ var Vzn = w(xa, "Cell", 212);
+ b(124, 212, { 124: 1, 212: 1 }, zjn), s.Re = function() {
+ return SE(this);
+ }, s.Se = function() {
+ var e;
+ return e = this.n, this.a.a + e.b + e.c;
+ }, w(xa, "AtomicCell", 124), b(232, 22, { 3: 1, 35: 1, 22: 1, 232: 1 }, sO);
+ var Zr, xc, nc, Kb = Ae(xa, "ContainerArea", 232, Ie, wle, Zue), Qzn;
+ b(326, 212, PKn), w(xa, "ContainerCell", 326), b(1473, 326, PKn, o$n), s.Re = function() {
+ var e;
+ return e = 0, this.e ? this.b ? e = this.b.b : this.a[1][1] && (e = this.a[1][1].Re()) : e = EQ(this, kFn(this, !0)), e > 0 ? e + this.n.d + this.n.a : 0;
+ }, s.Se = function() {
+ var e, t, i, r, c;
+ if (c = 0, this.e)
+ this.b ? c = this.b.a : this.a[1][1] && (c = this.a[1][1].Se());
+ else if (this.g)
+ c = EQ(this, lx(this, null, !0));
+ else
+ for (t = (_o(), A(M(Kb, 1), z, 232, 0, [Zr, xc, nc])), i = 0, r = t.length; i < r; ++i)
+ e = t[i], c = j.Math.max(c, EQ(this, lx(this, e, !0)));
+ return c > 0 ? c + this.n.b + this.n.c : 0;
+ }, s.Te = function() {
+ var e, t, i, r, c;
+ if (this.g)
+ for (e = lx(this, null, !1), i = (_o(), A(M(Kb, 1), z, 232, 0, [Zr, xc, nc])), r = 0, c = i.length; r < c; ++r)
+ t = i[r], WNn(this, t, e);
+ else
+ for (i = (_o(), A(M(Kb, 1), z, 232, 0, [Zr, xc, nc])), r = 0, c = i.length; r < c; ++r)
+ t = i[r], e = lx(this, t, !1), WNn(this, t, e);
+ }, s.Ue = function() {
+ var e, t, i, r;
+ t = this.i, e = this.n, r = kFn(this, !1), AX(this, (_o(), Zr), t.d + e.d, r), AX(this, nc, t.d + t.a - e.a - r[2], r), i = t.a - e.d - e.a, r[0] > 0 && (r[0] += this.d, i -= r[0]), r[2] > 0 && (r[2] += this.d, i -= r[2]), this.c.a = j.Math.max(0, i), this.c.d = t.d + e.d + (this.c.a - i) / 2, r[1] = j.Math.max(r[1], i), AX(this, xc, t.d + e.d + r[0] - (r[1] - i) / 2, r);
+ }, s.b = null, s.d = 0, s.e = !1, s.f = !1, s.g = !1;
+ var CR = 0, QA = 0;
+ w(xa, "GridContainerCell", 1473), b(461, 22, { 3: 1, 35: 1, 22: 1, 461: 1 }, oO);
+ var Il, Xf, Co, Jzn = Ae(xa, "HorizontalLabelAlignment", 461, Ie, gle, nse), Yzn;
+ b(306, 212, { 212: 1, 306: 1 }, iMn, hIn, nMn), s.Re = function() {
+ return KEn(this);
+ }, s.Se = function() {
+ return nW(this);
+ }, s.a = 0, s.c = !1;
+ var VTe = w(xa, "LabelCell", 306);
+ b(244, 326, { 212: 1, 326: 1, 244: 1 }, l6), s.Re = function() {
+ return $7(this);
+ }, s.Se = function() {
+ return F7(this);
+ }, s.Te = function() {
+ tL(this);
+ }, s.Ue = function() {
+ iL(this);
+ }, s.b = 0, s.c = 0, s.d = !1, w(xa, "StripContainerCell", 244), b(1626, 1, Ve, Fln), s.Mb = function(e) {
+ return die(u(e, 212));
+ }, w(xa, "StripContainerCell/lambda$0$Type", 1626), b(1627, 1, {}, xln), s.Fe = function(e) {
+ return u(e, 212).Se();
+ }, w(xa, "StripContainerCell/lambda$1$Type", 1627), b(1628, 1, Ve, Lln), s.Mb = function(e) {
+ return bie(u(e, 212));
+ }, w(xa, "StripContainerCell/lambda$2$Type", 1628), b(1629, 1, {}, Nln), s.Fe = function(e) {
+ return u(e, 212).Re();
+ }, w(xa, "StripContainerCell/lambda$3$Type", 1629), b(462, 22, { 3: 1, 35: 1, 22: 1, 462: 1 }, fO);
+ var To, Ol, Wo, Zzn = Ae(xa, "VerticalLabelAlignment", 462, Ie, ple, ese), nUn;
+ b(789, 1, {}, NZ), s.c = 0, s.d = 0, s.k = 0, s.s = 0, s.t = 0, s.v = !1, s.w = 0, s.D = !1, w(LM, "NodeContext", 789), b(1471, 1, lt, Bln), s.ue = function(e, t) {
+ return iyn(u(e, 61), u(t, 61));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(LM, "NodeContext/0methodref$comparePortSides$Type", 1471), b(1472, 1, lt, Rln), s.ue = function(e, t) {
+ return Kve(u(e, 111), u(t, 111));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(LM, "NodeContext/1methodref$comparePortContexts$Type", 1472), b(159, 22, { 3: 1, 35: 1, 22: 1, 159: 1 }, Ts);
+ var eUn, tUn, iUn, rUn, cUn, uUn, sUn, oUn, fUn, hUn, lUn, aUn, dUn, bUn, wUn, gUn, pUn, vUn, mUn, kUn, yUn, TR, jUn = Ae(LM, "NodeLabelLocation", 159, Ie, qF, tse), EUn;
+ b(111, 1, { 111: 1 }, LLn), s.a = !1, w(LM, "PortContext", 111), b(1476, 1, Yn, _ln), s.td = function(e) {
+ j8n(u(e, 306));
+ }, w(sk, IKn, 1476), b(1477, 1, Ve, Kln), s.Mb = function(e) {
+ return !!u(e, 111).c;
+ }, w(sk, OKn, 1477), b(1478, 1, Yn, Hln), s.td = function(e) {
+ j8n(u(e, 111).c);
+ }, w(sk, "LabelPlacer/lambda$2$Type", 1478);
+ var prn;
+ b(1475, 1, Yn, Gln), s.td = function(e) {
+ X0(), Wte(u(e, 111));
+ }, w(sk, "NodeLabelAndSizeUtilities/lambda$0$Type", 1475), b(790, 1, Yn, $U), s.td = function(e) {
+ cre(this.b, this.c, this.a, u(e, 181));
+ }, s.a = !1, s.c = !1, w(sk, "NodeLabelCellCreator/lambda$0$Type", 790), b(1474, 1, Yn, r5n), s.td = function(e) {
+ Qte(this.a, u(e, 181));
+ }, w(sk, "PortContextCreator/lambda$0$Type", 1474);
+ var JA;
+ b(1829, 1, {}, zln), w(I4, "GreedyRectangleStripOverlapRemover", 1829), b(1830, 1, lt, qln), s.ue = function(e, t) {
+ return Nce(u(e, 222), u(t, 222));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(I4, "GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type", 1830), b(1786, 1, {}, n9n), s.a = 5, s.e = 0, w(I4, "RectangleStripOverlapRemover", 1786), b(1787, 1, lt, Wln), s.ue = function(e, t) {
+ return Bce(u(e, 222), u(t, 222));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(I4, "RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type", 1787), b(1789, 1, lt, Xln), s.ue = function(e, t) {
+ return ohe(u(e, 222), u(t, 222));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(I4, "RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type", 1789), b(406, 22, { 3: 1, 35: 1, 22: 1, 406: 1 }, _j);
+ var Ik, MR, AR, Ok, CUn = Ae(I4, "RectangleStripOverlapRemover/OverlapRemovalDirection", 406, Ie, gae, ise), TUn;
+ b(222, 1, { 222: 1 }, jD), w(I4, "RectangleStripOverlapRemover/RectangleNode", 222), b(1788, 1, Yn, c5n), s.td = function(e) {
+ a3e(this.a, u(e, 222));
+ }, w(I4, "RectangleStripOverlapRemover/lambda$1$Type", 1788), b(1304, 1, lt, Vln), s.ue = function(e, t) {
+ return vje(u(e, 167), u(t, 167));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(_f, "PolyominoCompactor/CornerCasesGreaterThanRestComparator", 1304), b(1307, 1, {}, Qln), s.Kb = function(e) {
+ return u(e, 324).a;
+ }, w(_f, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type", 1307), b(1308, 1, Ve, Jln), s.Mb = function(e) {
+ return u(e, 323).a;
+ }, w(_f, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type", 1308), b(1309, 1, Ve, Yln), s.Mb = function(e) {
+ return u(e, 323).a;
+ }, w(_f, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type", 1309), b(1302, 1, lt, Zln), s.ue = function(e, t) {
+ return Y7e(u(e, 167), u(t, 167));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(_f, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator", 1302), b(1305, 1, {}, Uln), s.Kb = function(e) {
+ return u(e, 324).a;
+ }, w(_f, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type", 1305), b(767, 1, lt, xH), s.ue = function(e, t) {
+ return nwe(u(e, 167), u(t, 167));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(_f, "PolyominoCompactor/MinNumOfExtensionsComparator", 767), b(1300, 1, lt, nan), s.ue = function(e, t) {
+ return fbe(u(e, 321), u(t, 321));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(_f, "PolyominoCompactor/MinPerimeterComparator", 1300), b(1301, 1, lt, ean), s.ue = function(e, t) {
+ return Rpe(u(e, 321), u(t, 321));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(_f, "PolyominoCompactor/MinPerimeterComparatorWithShape", 1301), b(1303, 1, lt, tan), s.ue = function(e, t) {
+ return yke(u(e, 167), u(t, 167));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(_f, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator", 1303), b(1306, 1, {}, ian), s.Kb = function(e) {
+ return u(e, 324).a;
+ }, w(_f, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type", 1306), b(777, 1, {}, _G), s.Ce = function(e, t) {
+ return aae(this, u(e, 46), u(t, 167));
+ }, w(_f, "SuccessorCombination", 777), b(644, 1, {}, wI), s.Ce = function(e, t) {
+ var i;
+ return eme((i = u(e, 46), u(t, 167), i));
+ }, w(_f, "SuccessorJitter", 644), b(643, 1, {}, gI), s.Ce = function(e, t) {
+ var i;
+ return q8e((i = u(e, 46), u(t, 167), i));
+ }, w(_f, "SuccessorLineByLine", 643), b(568, 1, {}, Uy), s.Ce = function(e, t) {
+ var i;
+ return t9e((i = u(e, 46), u(t, 167), i));
+ }, w(_f, "SuccessorManhattan", 568), b(1356, 1, {}, ran), s.Ce = function(e, t) {
+ var i;
+ return d8e((i = u(e, 46), u(t, 167), i));
+ }, w(_f, "SuccessorMaxNormWindingInMathPosSense", 1356), b(400, 1, {}, Kp), s.Ce = function(e, t) {
+ return SW(this, e, t);
+ }, s.c = !1, s.d = !1, s.e = !1, s.f = !1, w(_f, "SuccessorQuadrantsGeneric", 400), b(1357, 1, {}, can), s.Kb = function(e) {
+ return u(e, 324).a;
+ }, w(_f, "SuccessorQuadrantsGeneric/lambda$0$Type", 1357), b(323, 22, { 3: 1, 35: 1, 22: 1, 323: 1 }, Rj), s.a = !1;
+ var Dk, $k, Fk, xk, MUn = Ae(BM, bnn, 323, Ie, mae, rse), AUn;
+ b(1298, 1, {}), s.Ib = function() {
+ var e, t, i, r, c, o;
+ for (i = " ", e = Q(0), c = 0; c < this.o; c++)
+ i += "" + e.a, e = Q(Fjn(e.a));
+ for (i += `
+`, e = Q(0), o = 0; o < this.p; o++) {
+ for (i += "" + e.a, e = Q(Fjn(e.a)), r = 0; r < this.o; r++)
+ t = Q$(this, r, o), hc(t, 0) == 0 ? i += "_" : hc(t, 1) == 0 ? i += "X" : i += "0";
+ i += `
+`;
+ }
+ return Yu(i, 0, i.length - 1);
+ }, s.o = 0, s.p = 0, w(BM, "TwoBitGrid", 1298), b(321, 1298, { 321: 1 }, xQ), s.j = 0, s.k = 0, w(BM, "PlanarGrid", 321), b(167, 321, { 321: 1, 167: 1 }), s.g = 0, s.i = 0, w(BM, "Polyomino", 167);
+ var QTe = Et(ok, $Kn);
+ b(134, 1, wnn, pI), s.Ye = function(e, t) {
+ return s7(this, e, t);
+ }, s.Ve = function() {
+ return tCn(this);
+ }, s.We = function(e) {
+ return k(this, e);
+ }, s.Xe = function(e) {
+ return ai(this, e);
+ }, w(ok, "MapPropertyHolder", 134), b(1299, 134, wnn, xNn), w(BM, "Polyominoes", 1299);
+ var SUn = !1, gm, vrn;
+ b(1766, 1, Yn, uan), s.td = function(e) {
+ $Rn(u(e, 221));
+ }, w(np, "DepthFirstCompaction/0methodref$compactTree$Type", 1766), b(810, 1, Yn, Aq), s.td = function(e) {
+ $he(this.a, u(e, 221));
+ }, w(np, "DepthFirstCompaction/lambda$1$Type", 810), b(1767, 1, Yn, wEn), s.td = function(e) {
+ ipe(this.a, this.b, this.c, u(e, 221));
+ }, w(np, "DepthFirstCompaction/lambda$2$Type", 1767);
+ var pm, mrn;
+ b(65, 1, { 65: 1 }, jMn), w(np, "Node", 65), b(1250, 1, {}, Eyn), w(np, "ScanlineOverlapCheck", 1250), b(1251, 1, { 679: 1 }, HTn), s.Ke = function(e) {
+ gue(this, u(e, 440));
+ }, w(np, "ScanlineOverlapCheck/OverlapsScanlineHandler", 1251), b(1252, 1, lt, san), s.ue = function(e, t) {
+ return Rge(u(e, 65), u(t, 65));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(np, "ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type", 1252), b(440, 1, { 440: 1 }, KG), s.a = !1, w(np, "ScanlineOverlapCheck/Timestamp", 440), b(1253, 1, lt, oan), s.ue = function(e, t) {
+ return w4e(u(e, 440), u(t, 440));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(np, "ScanlineOverlapCheck/lambda$0$Type", 1253), b(550, 1, {}, Wy), w(FKn, "SVGImage", 550), b(324, 1, { 324: 1 }, FU), s.Ib = function() {
+ return "(" + this.a + Qi + this.b + Qi + this.c + ")";
+ }, w(FKn, "UniqueTriple", 324), b(209, 1, La), w(og, "AbstractLayoutProvider", 209), b(1132, 209, La, fan), s.Ze = function(e, t) {
+ var i, r, c, o;
+ switch (le(t, xKn, 1), this.a = K(Y(hn(e, (a6(), Trn)))), ga(e, PR) && (c = Te(hn(e, PR)), i = Vx(L3(), c), i && (r = u(n$(i.f), 209), r.Ze(e, yc(t, 1)))), o = new BAn(this.a), this.b = rCe(o, e), u(hn(e, (pF(), yrn)), 481).g) {
+ case 0:
+ kme(new han(), this.b), gr(e, nS, k(this.b, nS));
+ break;
+ default:
+ Zf();
+ }
+ aCe(o), gr(e, Ern, this.b), ce(t);
+ }, s.a = 0, w(LKn, "DisCoLayoutProvider", 1132), b(1244, 1, {}, han), s.c = !1, s.e = 0, s.f = 0, w(LKn, "DisCoPolyominoCompactor", 1244), b(561, 1, { 561: 1 }, sCn), s.b = !0, w(_M, "DCComponent", 561), b(394, 22, { 3: 1, 35: 1, 22: 1, 394: 1 }, Bj), s.a = !1;
+ var YA, Lk, ZA, Nk, PUn = Ae(_M, "DCDirection", 394, Ie, vae, cse), IUn;
+ b(266, 134, { 3: 1, 266: 1, 94: 1, 134: 1 }, xx), w(_M, "DCElement", 266), b(395, 1, { 395: 1 }, cJ), s.c = 0, w(_M, "DCExtension", 395), b(755, 134, wnn, r8n), w(_M, "DCGraph", 755), b(481, 22, { 3: 1, 35: 1, 22: 1, 481: 1 }, ojn);
+ var SR, krn = Ae(pN, gnn, 481, Ie, Xhe, use), OUn;
+ b(854, 1, Gs, s4n), s.Qe = function(e) {
+ En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), pnn), NKn), "Connected Components Compaction Strategy"), "Strategy for packing different connected components in order to save space and enhance readability of a graph."), jrn), (y1(), Bt)), krn), Cn((Ho(), Xn))))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), vnn), NKn), "Connected Components Layout Algorithm"), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), mv), tn), Cn(Xn)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), mnn), "debug"), "DCGraph"), "Access to the DCGraph is intended for the debug view,"), yf), Zn), Cn(Xn)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), knn), "debug"), "List of Polyominoes"), "Access to the polyominoes is intended for the debug view,"), yf), Zn), Cn(Xn)))), yRn((new o4n(), e));
+ };
+ var DUn, yrn, jrn, $Un, FUn;
+ w(pN, "DisCoMetaDataProvider", 854), b(998, 1, Gs, o4n), s.Qe = function(e) {
+ yRn(e);
+ };
+ var xUn, PR, LUn, Ern, nS, IR, Crn, NUn, BUn, RUn, _Un, Trn;
+ w(pN, "DisCoOptions", 998), b(999, 1, {}, lan), s.$e = function() {
+ var e;
+ return e = new fan(), e;
+ }, s._e = function(e) {
+ }, w(pN, "DisCoOptions/DiscoFactory", 999), b(562, 167, { 321: 1, 167: 1, 562: 1 }, vNn), s.a = 0, s.b = 0, s.c = 0, s.d = 0, w("org.eclipse.elk.alg.disco.structures", "DCPolyomino", 562);
+ var OR, DR, eS;
+ b(1268, 1, Ve, aan), s.Mb = function(e) {
+ return gz(e);
+ }, w(fg, "ElkGraphComponentsProcessor/lambda$0$Type", 1268), b(1269, 1, {}, dan), s.Kb = function(e) {
+ return C2(), fh(u(e, 79));
+ }, w(fg, "ElkGraphComponentsProcessor/lambda$1$Type", 1269), b(1270, 1, Ve, ban), s.Mb = function(e) {
+ return cfe(u(e, 79));
+ }, w(fg, "ElkGraphComponentsProcessor/lambda$2$Type", 1270), b(1271, 1, {}, wan), s.Kb = function(e) {
+ return C2(), vl(u(e, 79));
+ }, w(fg, "ElkGraphComponentsProcessor/lambda$3$Type", 1271), b(1272, 1, Ve, gan), s.Mb = function(e) {
+ return ufe(u(e, 79));
+ }, w(fg, "ElkGraphComponentsProcessor/lambda$4$Type", 1272), b(1273, 1, Ve, u5n), s.Mb = function(e) {
+ return Q1e(this.a, u(e, 79));
+ }, w(fg, "ElkGraphComponentsProcessor/lambda$5$Type", 1273), b(1274, 1, {}, s5n), s.Kb = function(e) {
+ return bhe(this.a, u(e, 79));
+ }, w(fg, "ElkGraphComponentsProcessor/lambda$6$Type", 1274), b(1241, 1, {}, BAn), s.a = 0, w(fg, "ElkGraphTransformer", 1241), b(1242, 1, {}, pan), s.Od = function(e, t) {
+ cme(this, u(e, 160), u(t, 266));
+ }, w(fg, "ElkGraphTransformer/OffsetApplier", 1242), b(1243, 1, Yn, o5n), s.td = function(e) {
+ Ice(this, u(e, 8));
+ }, w(fg, "ElkGraphTransformer/OffsetApplier/OffSetToChainApplier", 1243), b(753, 1, {}, LH), w(jnn, Enn, 753), b(1232, 1, lt, van), s.ue = function(e, t) {
+ return z6e(u(e, 231), u(t, 231));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(jnn, BKn, 1232), b(740, 209, La, Uq), s.Ze = function(e, t) {
+ yNn(this, e, t);
+ }, w(jnn, "ForceLayoutProvider", 740), b(357, 134, { 3: 1, 357: 1, 94: 1, 134: 1 }), w(fk, "FParticle", 357), b(559, 357, { 3: 1, 559: 1, 357: 1, 94: 1, 134: 1 }, HCn), s.Ib = function() {
+ var e;
+ return this.a ? (e = xr(this.a.a, this, 0), e >= 0 ? "b" + e + "[" + k$(this.a) + "]" : "b[" + k$(this.a) + "]") : "b_" + kd(this);
+ }, w(fk, "FBendpoint", 559), b(282, 134, { 3: 1, 282: 1, 94: 1, 134: 1 }, Njn), s.Ib = function() {
+ return k$(this);
+ }, w(fk, "FEdge", 282), b(231, 134, { 3: 1, 231: 1, 94: 1, 134: 1 }, TC);
+ var JTe = w(fk, "FGraph", 231);
+ b(447, 357, { 3: 1, 447: 1, 357: 1, 94: 1, 134: 1 }, _An), s.Ib = function() {
+ return this.b == null || this.b.length == 0 ? "l[" + k$(this.a) + "]" : "l_" + this.b;
+ }, w(fk, "FLabel", 447), b(144, 357, { 3: 1, 144: 1, 357: 1, 94: 1, 134: 1 }, QCn), s.Ib = function() {
+ return cX(this);
+ }, s.b = 0, w(fk, "FNode", 144), b(2003, 1, {}), s.bf = function(e) {
+ gZ(this, e);
+ }, s.cf = function() {
+ mFn(this);
+ }, s.d = 0, w(Cnn, "AbstractForceModel", 2003), b(631, 2003, { 631: 1 }, POn), s.af = function(e, t) {
+ var i, r, c, o, f;
+ return wLn(this.f, e, t), c = ji(Qr(t.d), e.d), f = j.Math.sqrt(c.a * c.a + c.b * c.b), r = j.Math.max(0, f - L5(e.e) / 2 - L5(t.e) / 2), i = cDn(this.e, e, t), i > 0 ? o = -che(r, this.c) * i : o = Jce(r, this.b) * u(k(e, (Go(), V4)), 19).a, If(c, o / f), c;
+ }, s.bf = function(e) {
+ gZ(this, e), this.a = u(k(e, (Go(), iS)), 19).a, this.c = K(Y(k(e, rS))), this.b = K(Y(k(e, FR)));
+ }, s.df = function(e) {
+ return e < this.a;
+ }, s.a = 0, s.b = 0, s.c = 0, w(Cnn, "EadesModel", 631), b(632, 2003, { 632: 1 }, IEn), s.af = function(e, t) {
+ var i, r, c, o, f;
+ return wLn(this.f, e, t), c = ji(Qr(t.d), e.d), f = j.Math.sqrt(c.a * c.a + c.b * c.b), r = j.Math.max(0, f - L5(e.e) / 2 - L5(t.e) / 2), o = Qce(r, this.a) * u(k(e, (Go(), V4)), 19).a, i = cDn(this.e, e, t), i > 0 && (o -= fie(r, this.a) * i), If(c, o * this.b / f), c;
+ }, s.bf = function(e) {
+ var t, i, r, c, o, f, h;
+ for (gZ(this, e), this.b = K(Y(k(e, (Go(), xR)))), this.c = this.b / u(k(e, iS), 19).a, r = e.e.c.length, o = 0, c = 0, h = new E(e.e); h.a < h.c.c.length; )
+ f = u(y(h), 144), o += f.e.a, c += f.e.b;
+ t = o * c, i = K(Y(k(e, rS))) * bf, this.a = j.Math.sqrt(t / (2 * r)) * i;
+ }, s.cf = function() {
+ mFn(this), this.b -= this.c;
+ }, s.df = function(e) {
+ return this.b > 0;
+ }, s.a = 0, s.b = 0, s.c = 0, w(Cnn, "FruchtermanReingoldModel", 632), b(849, 1, Gs, h4n), s.Qe = function(e) {
+ En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), KM), ""), "Force Model"), "Determines the model for force calculation."), Mrn), (y1(), Bt)), Arn), Cn((Ho(), Xn))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Tnn), ""), "Iterations"), "The number of iterations on the force model."), Q(300)), oc), Ui), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Mnn), ""), "Repulsive Power"), "Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"), Q(0)), oc), Ui), Cn(Yf)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), yN), ""), "FR Temperature"), "The temperature is used as a scaling factor for particle displacements."), Kf), Dr), Si), Cn(Xn)))), Mi(e, yN, KM, WUn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), jN), ""), "Eades Repulsion"), "Factor for repulsive forces in Eades' model."), 5), Dr), Si), Cn(Xn)))), Mi(e, jN, KM, GUn), g_n((new l4n(), e));
+ };
+ var KUn, HUn, Mrn, qUn, GUn, zUn, UUn, WUn;
+ w(H6, "ForceMetaDataProvider", 849), b(424, 22, { 3: 1, 35: 1, 22: 1, 424: 1 }, GG);
+ var $R, tS, Arn = Ae(H6, "ForceModelStrategy", 424, Ie, z1e, sse), XUn;
+ b(988, 1, Gs, l4n), s.Qe = function(e) {
+ g_n(e);
+ };
+ var VUn, QUn, Srn, iS, Prn, JUn, YUn, ZUn, Irn, nWn, Orn, Drn, eWn, V4, tWn, FR, $rn, iWn, rWn, rS, xR;
+ w(H6, "ForceOptions", 988), b(989, 1, {}, man), s.$e = function() {
+ var e;
+ return e = new Uq(), e;
+ }, s._e = function(e) {
+ }, w(H6, "ForceOptions/ForceFactory", 989);
+ var Bk, vm, hp, cS;
+ b(850, 1, Gs, a4n), s.Qe = function(e) {
+ En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Snn), ""), "Fixed Position"), "Prevent that the node is moved by the layout algorithm."), (qn(), !1)), (y1(), _i)), oi), Cn((Ho(), vi))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Pnn), ""), "Desired Edge Length"), "Either specified for parent nodes or for individual edges, where the latter takes higher precedence."), 100), Dr), Si), pt(Xn, A(M($1, 1), z, 175, 0, [Yf]))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Inn), ""), "Layout Dimension"), "Dimensions that are permitted to be altered during layout."), Frn), Bt), Krn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Onn), ""), "Stress Epsilon"), "Termination criterion for the iterative process."), Kf), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Dnn), ""), "Iteration Limit"), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), Q(nt)), oc), Ui), Cn(Xn)))), n_n((new d4n(), e));
+ };
+ var cWn, uWn, Frn, sWn, oWn, fWn;
+ w(H6, "StressMetaDataProvider", 850), b(992, 1, Gs, d4n), s.Qe = function(e) {
+ n_n(e);
+ };
+ var uS, xrn, Lrn, Nrn, Brn, Rrn, hWn, lWn, aWn, dWn, _rn, bWn;
+ w(H6, "StressOptions", 992), b(993, 1, {}, kan), s.$e = function() {
+ var e;
+ return e = new Bjn(), e;
+ }, s._e = function(e) {
+ }, w(H6, "StressOptions/StressFactory", 993), b(1128, 209, La, Bjn), s.Ze = function(e, t) {
+ var i, r, c, o, f;
+ for (le(t, qKn, 1), on(sn(hn(e, (C7(), Brn)))) ? on(sn(hn(e, _rn))) || oC((i = new O9((H0(), new B0(e))), i)) : yNn(new Uq(), e, yc(t, 1)), c = JOn(e), r = hRn(this.a, c), f = r.Kc(); f.Ob(); )
+ o = u(f.Pb(), 231), !(o.e.c.length <= 1) && (gje(this.b, o), Xme(this.b), Jc(o.d, new yan()));
+ c = E_n(r), k_n(c), ce(t);
+ }, w(GM, "StressLayoutProvider", 1128), b(1129, 1, Yn, yan), s.td = function(e) {
+ EZ(u(e, 447));
+ }, w(GM, "StressLayoutProvider/lambda$0$Type", 1129), b(990, 1, {}, Wmn), s.c = 0, s.e = 0, s.g = 0, w(GM, "StressMajorization", 990), b(379, 22, { 3: 1, 35: 1, 22: 1, 379: 1 }, hO);
+ var LR, NR, BR, Krn = Ae(GM, "StressMajorization/Dimension", 379, Ie, mle, ose), wWn;
+ b(991, 1, lt, f5n), s.ue = function(e, t) {
+ return Bue(this.a, u(e, 144), u(t, 144));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(GM, "StressMajorization/lambda$0$Type", 991), b(1229, 1, {}, ZMn), w(rp, "ElkLayered", 1229), b(1230, 1, Yn, jan), s.td = function(e) {
+ V6e(u(e, 37));
+ }, w(rp, "ElkLayered/lambda$0$Type", 1230), b(1231, 1, Yn, h5n), s.td = function(e) {
+ Rue(this.a, u(e, 37));
+ }, w(rp, "ElkLayered/lambda$1$Type", 1231), b(1263, 1, {}, Tyn);
+ var gWn, pWn, vWn;
+ w(rp, "GraphConfigurator", 1263), b(759, 1, Yn, Sq), s.td = function(e) {
+ Axn(this.a, u(e, 10));
+ }, w(rp, "GraphConfigurator/lambda$0$Type", 759), b(760, 1, {}, NH), s.Kb = function(e) {
+ return kJ(), new $n(null, new xn(u(e, 29).a, 16));
+ }, w(rp, "GraphConfigurator/lambda$1$Type", 760), b(761, 1, Yn, Pq), s.td = function(e) {
+ Axn(this.a, u(e, 10));
+ }, w(rp, "GraphConfigurator/lambda$2$Type", 761), b(1127, 209, La, Qmn), s.Ze = function(e, t) {
+ var i;
+ i = Nye(new t9n(), e), B(hn(e, (nn(), Qb))) === B((Rh(), F1)) ? w2e(this.a, i, t) : lme(this.a, i, t), w_n(new w4n(), i);
+ }, w(rp, "LayeredLayoutProvider", 1127), b(356, 22, { 3: 1, 35: 1, 22: 1, 356: 1 }, U9);
+ var Vf, Dl, Kc, Tc, Or, Hrn = Ae(rp, "LayeredPhases", 356, Ie, tde, fse), mWn;
+ b(1651, 1, {}, BIn), s.i = 0;
+ var kWn;
+ w(ak, "ComponentsToCGraphTransformer", 1651);
+ var yWn;
+ b(1652, 1, {}, Ean), s.ef = function(e, t) {
+ return j.Math.min(e.a != null ? K(e.a) : e.c.i, t.a != null ? K(t.a) : t.c.i);
+ }, s.ff = function(e, t) {
+ return j.Math.min(e.a != null ? K(e.a) : e.c.i, t.a != null ? K(t.a) : t.c.i);
+ }, w(ak, "ComponentsToCGraphTransformer/1", 1652), b(81, 1, { 81: 1 }), s.i = 0, s.k = !0, s.o = Qt;
+ var RR = w(z6, "CNode", 81);
+ b(460, 81, { 460: 1, 81: 1 }, zz, UQ), s.Ib = function() {
+ return "";
+ }, w(ak, "ComponentsToCGraphTransformer/CRectNode", 460), b(1623, 1, {}, Can);
+ var _R, KR;
+ w(ak, "OneDimensionalComponentsCompaction", 1623), b(1624, 1, {}, Tan), s.Kb = function(e) {
+ return hle(u(e, 46));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(ak, "OneDimensionalComponentsCompaction/lambda$0$Type", 1624), b(1625, 1, {}, Man), s.Kb = function(e) {
+ return E2e(u(e, 46));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(ak, "OneDimensionalComponentsCompaction/lambda$1$Type", 1625), b(1654, 1, {}, VCn), w(z6, "CGraph", 1654), b(189, 1, { 189: 1 }, _F), s.b = 0, s.c = 0, s.e = 0, s.g = !0, s.i = Qt, w(z6, "CGroup", 189), b(1653, 1, {}, Ian), s.ef = function(e, t) {
+ return j.Math.max(e.a != null ? K(e.a) : e.c.i, t.a != null ? K(t.a) : t.c.i);
+ }, s.ff = function(e, t) {
+ return j.Math.max(e.a != null ? K(e.a) : e.c.i, t.a != null ? K(t.a) : t.c.i);
+ }, w(z6, pKn, 1653), b(1655, 1, {}, SLn), s.d = !1;
+ var jWn, HR = w(z6, kKn, 1655);
+ b(1656, 1, {}, Oan), s.Kb = function(e) {
+ return OG(), qn(), u(u(e, 46).a, 81).d.e != 0;
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(z6, yKn, 1656), b(823, 1, {}, eW), s.a = !1, s.b = !1, s.c = !1, s.d = !1, w(z6, jKn, 823), b(1825, 1, {}, dCn), w(zM, EKn, 1825);
+ var Rk = Et(Ba, wKn);
+ b(1826, 1, { 369: 1 }, GTn), s.Ke = function(e) {
+ r7e(this, u(e, 466));
+ }, w(zM, CKn, 1826), b(1827, 1, lt, Dan), s.ue = function(e, t) {
+ return r1e(u(e, 81), u(t, 81));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(zM, TKn, 1827), b(466, 1, { 466: 1 }, UG), s.a = !1, w(zM, MKn, 466), b(1828, 1, lt, $an), s.ue = function(e, t) {
+ return g4e(u(e, 466), u(t, 466));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(zM, AKn, 1828), b(140, 1, { 140: 1 }, e3, QU), s.Fb = function(e) {
+ var t;
+ return e == null || YTe != Du(e) ? !1 : (t = u(e, 140), vc(this.c, t.c) && vc(this.d, t.d));
+ }, s.Hb = function() {
+ return gT(A(M(Zn, 1), rn, 1, 5, [this.c, this.d]));
+ }, s.Ib = function() {
+ return "(" + this.c + Qi + this.d + (this.a ? "cx" : "") + this.b + ")";
+ }, s.a = !0, s.c = 0, s.d = 0;
+ var YTe = w(Ba, "Point", 140);
+ b(405, 22, { 3: 1, 35: 1, 22: 1, 405: 1 }, Kj);
+ var w0, Hb, kg, qb, EWn = Ae(Ba, "Point/Quadrant", 405, Ie, kae, hse), CWn;
+ b(1642, 1, {}, Jmn), s.b = null, s.c = null, s.d = null, s.e = null, s.f = null;
+ var TWn, MWn, AWn, SWn, PWn;
+ w(Ba, "RectilinearConvexHull", 1642), b(574, 1, { 369: 1 }, LT), s.Ke = function(e) {
+ i0e(this, u(e, 140));
+ }, s.b = 0;
+ var qrn;
+ w(Ba, "RectilinearConvexHull/MaximalElementsEventHandler", 574), b(1644, 1, lt, San), s.ue = function(e, t) {
+ return Whe(Y(e), Y(t));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Ba, "RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type", 1644), b(1643, 1, { 369: 1 }, sIn), s.Ke = function(e) {
+ p8e(this, u(e, 140));
+ }, s.a = 0, s.b = null, s.c = null, s.d = null, s.e = null, w(Ba, "RectilinearConvexHull/RectangleEventHandler", 1643), b(1645, 1, lt, Pan), s.ue = function(e, t) {
+ return Qle(u(e, 140), u(t, 140));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Ba, "RectilinearConvexHull/lambda$0$Type", 1645), b(1646, 1, lt, Aan), s.ue = function(e, t) {
+ return Jle(u(e, 140), u(t, 140));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Ba, "RectilinearConvexHull/lambda$1$Type", 1646), b(1647, 1, lt, Fan), s.ue = function(e, t) {
+ return Zle(u(e, 140), u(t, 140));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Ba, "RectilinearConvexHull/lambda$2$Type", 1647), b(1648, 1, lt, xan), s.ue = function(e, t) {
+ return Yle(u(e, 140), u(t, 140));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Ba, "RectilinearConvexHull/lambda$3$Type", 1648), b(1649, 1, lt, Lan), s.ue = function(e, t) {
+ return e5e(u(e, 140), u(t, 140));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Ba, "RectilinearConvexHull/lambda$4$Type", 1649), b(1650, 1, {}, yMn), w(Ba, "Scanline", 1650), b(2005, 1, {}), w(Hf, "AbstractGraphPlacer", 2005), b(325, 1, { 325: 1 }, djn), s.mf = function(e) {
+ return this.nf(e) ? (Tn(this.b, u(k(e, (G(), zb)), 21), e), !0) : !1;
+ }, s.nf = function(e) {
+ var t, i, r, c;
+ for (t = u(k(e, (G(), zb)), 21), c = u(ct(at, t), 21), r = c.Kc(); r.Ob(); )
+ if (i = u(r.Pb(), 21), !u(ct(this.b, i), 15).dc())
+ return !1;
+ return !0;
+ };
+ var at;
+ w(Hf, "ComponentGroup", 325), b(765, 2005, {}, Qq), s.of = function(e) {
+ var t, i;
+ for (i = new E(this.a); i.a < i.c.c.length; )
+ if (t = u(y(i), 325), t.mf(e))
+ return;
+ W(this.a, new djn(e));
+ }, s.lf = function(e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m;
+ if (this.a.c = F(Zn, rn, 1, 0, 5, 1), t.a.c = F(Zn, rn, 1, 0, 5, 1), e.dc()) {
+ t.f.a = 0, t.f.b = 0;
+ return;
+ }
+ for (f = u(e.Xb(0), 37), Pr(t, f), c = e.Kc(); c.Ob(); )
+ r = u(c.Pb(), 37), this.of(r);
+ for (m = new Li(), o = K(Y(k(f, (nn(), Zk)))), a = new E(this.a); a.a < a.c.c.length; )
+ h = u(y(a), 325), d = O_n(h, o), a1(XE(h.b), m.a, m.b), m.a += d.a, m.b += d.b;
+ if (t.f.a = m.a - o, t.f.b = m.b - o, on(sn(k(f, US))) && B(k(f, Vh)) === B((Kh(), Ev))) {
+ for (v = e.Kc(); v.Ob(); )
+ g = u(v.Pb(), 37), M6(g, g.c.a, g.c.b);
+ for (i = new vI(), qZ(i, e, o), p = e.Kc(); p.Ob(); )
+ g = u(p.Pb(), 37), st(Lo(g.c), i.e);
+ st(Lo(t.f), i.a);
+ }
+ for (l = new E(this.a); l.a < l.c.c.length; )
+ h = u(y(l), 325), qX(t, XE(h.b));
+ }, w(Hf, "ComponentGroupGraphPlacer", 765), b(1293, 765, {}, f9n), s.of = function(e) {
+ BDn(this, e);
+ }, s.lf = function(e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x;
+ if (this.a.c = F(Zn, rn, 1, 0, 5, 1), t.a.c = F(Zn, rn, 1, 0, 5, 1), e.dc()) {
+ t.f.a = 0, t.f.b = 0;
+ return;
+ }
+ for (f = u(e.Xb(0), 37), Pr(t, f), c = e.Kc(); c.Ob(); )
+ r = u(c.Pb(), 37), BDn(this, r);
+ for (x = new Li(), O = new Li(), C = new Li(), m = new Li(), o = K(Y(k(f, (nn(), Zk)))), a = new E(this.a); a.a < a.c.c.length; ) {
+ if (h = u(y(a), 325), el(u(k(t, (Xe(), S0)), 103))) {
+ for (C.a = x.a, $ = new _v(x5(ND(h.b).a).a.kc()); $.b.Ob(); )
+ if (S = u(Fj($.b.Pb()), 21), S.Hc((J(), Kn))) {
+ C.a = O.a;
+ break;
+ }
+ } else if (i3(u(k(t, S0), 103))) {
+ for (C.b = x.b, $ = new _v(x5(ND(h.b).a).a.kc()); $.b.Ob(); )
+ if (S = u(Fj($.b.Pb()), 21), S.Hc((J(), Gn))) {
+ C.b = O.b;
+ break;
+ }
+ }
+ if (d = O_n(u(h, 570), o), a1(XE(h.b), C.a, C.b), el(u(k(t, S0), 103))) {
+ for (O.a = C.a + d.a, m.a = j.Math.max(m.a, O.a), $ = new _v(x5(ND(h.b).a).a.kc()); $.b.Ob(); )
+ if (S = u(Fj($.b.Pb()), 21), S.Hc((J(), ae))) {
+ x.a = C.a + d.a;
+ break;
+ }
+ O.b = C.b + d.b, C.b = O.b, m.b = j.Math.max(m.b, C.b);
+ } else if (i3(u(k(t, S0), 103))) {
+ for (O.b = C.b + d.b, m.b = j.Math.max(m.b, O.b), $ = new _v(x5(ND(h.b).a).a.kc()); $.b.Ob(); )
+ if (S = u(Fj($.b.Pb()), 21), S.Hc((J(), Vn))) {
+ x.b = C.b + d.b;
+ break;
+ }
+ O.a = C.a + d.a, C.a = O.a, m.a = j.Math.max(m.a, C.a);
+ }
+ }
+ if (t.f.a = m.a - o, t.f.b = m.b - o, on(sn(k(f, US))) && B(k(f, Vh)) === B((Kh(), Ev))) {
+ for (v = e.Kc(); v.Ob(); )
+ g = u(v.Pb(), 37), M6(g, g.c.a, g.c.b);
+ for (i = new vI(), qZ(i, e, o), p = e.Kc(); p.Ob(); )
+ g = u(p.Pb(), 37), st(Lo(g.c), i.e);
+ st(Lo(t.f), i.a);
+ }
+ for (l = new E(this.a); l.a < l.c.c.length; )
+ h = u(y(l), 325), qX(t, XE(h.b));
+ }, w(Hf, "ComponentGroupModelOrderGraphPlacer", 1293), b(423, 22, { 3: 1, 35: 1, 22: 1, 423: 1 }, lO);
+ var qR, Grn, yg, zrn = Ae(Hf, "ComponentOrderingStrategy", 423, Ie, vle, lse), IWn;
+ b(650, 1, {}, vI), w(Hf, "ComponentsCompactor", 650), b(1468, 12, oKn, wSn), s.Fc = function(e) {
+ return v6(this, u(e, 140));
+ }, w(Hf, "ComponentsCompactor/Hullpoints", 1468), b(1465, 1, { 841: 1 }, nFn), s.a = !1, w(Hf, "ComponentsCompactor/InternalComponent", 1465), b(1464, 1, lh, Ymn), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ return new E(this.a);
+ }, w(Hf, "ComponentsCompactor/InternalConnectedComponents", 1464), b(1467, 1, { 594: 1 }, ILn), s.hf = function() {
+ return null;
+ }, s.jf = function() {
+ return this.a;
+ }, s.gf = function() {
+ return GF(this.d);
+ }, s.kf = function() {
+ return this.b;
+ }, w(Hf, "ComponentsCompactor/InternalExternalExtension", 1467), b(1466, 1, { 594: 1 }, e9n), s.jf = function() {
+ return this.a;
+ }, s.gf = function() {
+ return GF(this.d);
+ }, s.hf = function() {
+ return this.c;
+ }, s.kf = function() {
+ return this.b;
+ }, w(Hf, "ComponentsCompactor/InternalUnionExternalExtension", 1466), b(1470, 1, {}, XNn), w(Hf, "ComponentsCompactor/OuterSegments", 1470), b(1469, 1, {}, Zmn), w(Hf, "ComponentsCompactor/Segments", 1469), b(1264, 1, {}, zTn), w(Hf, Enn, 1264), b(1265, 1, lt, Nan), s.ue = function(e, t) {
+ return tae(u(e, 37), u(t, 37));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Hf, "ComponentsProcessor/lambda$0$Type", 1265), b(570, 325, { 325: 1, 570: 1 }, bSn), s.mf = function(e) {
+ return QV(this, e);
+ }, s.nf = function(e) {
+ return SNn(this, e);
+ };
+ var Ne;
+ w(Hf, "ModelOrderComponentGroup", 570), b(1291, 2005, {}, Ban), s.lf = function(e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en;
+ if (e.gc() == 1) {
+ x = u(e.Xb(0), 37), x != t && (t.a.c = F(Zn, rn, 1, 0, 5, 1), $Bn(t, x, 0, 0), Pr(t, x), GW(t.d, x.d), t.f.a = x.f.a, t.f.b = x.f.b);
+ return;
+ } else if (e.dc()) {
+ t.a.c = F(Zn, rn, 1, 0, 5, 1), t.f.a = 0, t.f.b = 0;
+ return;
+ }
+ if (B(k(t, (nn(), kp))) === B((Gd(), yg))) {
+ for (l = e.Kc(); l.Ob(); ) {
+ for (f = u(l.Pb(), 37), $ = 0, C = new E(f.a); C.a < C.c.c.length; )
+ m = u(y(C), 10), $ += u(k(m, FQn), 19).a;
+ f.p = $;
+ }
+ Pn(), e.ad(new Ran());
+ }
+ for (o = u(e.Xb(0), 37), t.a.c = F(Zn, rn, 1, 0, 5, 1), Pr(t, o), v = 0, _ = 0, a = e.Kc(); a.Ob(); )
+ f = u(a.Pb(), 37), O = f.f, v = j.Math.max(v, O.a), _ += O.a * O.b;
+ for (v = j.Math.max(v, j.Math.sqrt(_) * K(Y(k(t, zS)))), c = K(Y(k(t, Zk))), U = 0, en = 0, p = 0, i = c, h = e.Kc(); h.Ob(); )
+ f = u(h.Pb(), 37), O = f.f, U + O.a > v && (U = 0, en += p + c, p = 0), S = f.c, M6(f, U + S.a, en + S.b), Lo(S), i = j.Math.max(i, U + O.a), p = j.Math.max(p, O.b), U += O.a + c;
+ if (t.f.a = i, t.f.b = en + p, on(sn(k(o, US)))) {
+ for (r = new vI(), qZ(r, e, c), g = e.Kc(); g.Ob(); )
+ d = u(g.Pb(), 37), st(Lo(d.c), r.e);
+ st(Lo(t.f), r.a);
+ }
+ qX(t, e);
+ }, w(Hf, "SimpleRowGraphPlacer", 1291), b(1292, 1, lt, Ran), s.ue = function(e, t) {
+ return Zbe(u(e, 37), u(t, 37));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Hf, "SimpleRowGraphPlacer/1", 1292);
+ var OWn;
+ b(1262, 1, Rf, _an), s.Lb = function(e) {
+ var t;
+ return t = u(k(u(e, 243).b, (nn(), Mr)), 74), !!t && t.b != 0;
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ var t;
+ return t = u(k(u(e, 243).b, (nn(), Mr)), 74), !!t && t.b != 0;
+ }, w(UM, "CompoundGraphPostprocessor/1", 1262), b(1261, 1, Lt, i9n), s.pf = function(e, t) {
+ tFn(this, u(e, 37), t);
+ }, w(UM, "CompoundGraphPreprocessor", 1261), b(441, 1, { 441: 1 }, qDn), s.c = !1, w(UM, "CompoundGraphPreprocessor/ExternalPort", 441), b(243, 1, { 243: 1 }, EE), s.Ib = function() {
+ return VO(this.c) + ":" + CLn(this.b);
+ }, w(UM, "CrossHierarchyEdge", 243), b(763, 1, lt, Iq), s.ue = function(e, t) {
+ return H3e(this, u(e, 243), u(t, 243));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(UM, "CrossHierarchyEdgeComparator", 763), b(299, 134, { 3: 1, 299: 1, 94: 1, 134: 1 }), s.p = 0, w(Fc, "LGraphElement", 299), b(17, 299, { 3: 1, 17: 1, 299: 1, 94: 1, 134: 1 }, Id), s.Ib = function() {
+ return CLn(this);
+ };
+ var GR = w(Fc, "LEdge", 17);
+ b(37, 299, { 3: 1, 20: 1, 37: 1, 299: 1, 94: 1, 134: 1 }, lV), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ return new E(this.b);
+ }, s.Ib = function() {
+ return this.b.c.length == 0 ? "G-unlayered" + ml(this.a) : this.a.c.length == 0 ? "G-layered" + ml(this.b) : "G[layerless" + ml(this.a) + ", layers" + ml(this.b) + "]";
+ };
+ var DWn = w(Fc, "LGraph", 37), $Wn;
+ b(657, 1, {}), s.qf = function() {
+ return this.e.n;
+ }, s.We = function(e) {
+ return k(this.e, e);
+ }, s.rf = function() {
+ return this.e.o;
+ }, s.sf = function() {
+ return this.e.p;
+ }, s.Xe = function(e) {
+ return ai(this.e, e);
+ }, s.tf = function(e) {
+ this.e.n.a = e.a, this.e.n.b = e.b;
+ }, s.uf = function(e) {
+ this.e.o.a = e.a, this.e.o.b = e.b;
+ }, s.vf = function(e) {
+ this.e.p = e;
+ }, w(Fc, "LGraphAdapters/AbstractLShapeAdapter", 657), b(577, 1, { 839: 1 }, ij), s.wf = function() {
+ var e, t;
+ if (!this.b)
+ for (this.b = nh(this.a.b.c.length), t = new E(this.a.b); t.a < t.c.c.length; )
+ e = u(y(t), 70), W(this.b, new rj(e));
+ return this.b;
+ }, s.b = null, w(Fc, "LGraphAdapters/LEdgeAdapter", 577), b(656, 1, {}, GD), s.xf = function() {
+ var e, t, i, r, c, o;
+ if (!this.b) {
+ for (this.b = new X(), r = new E(this.a.b); r.a < r.c.c.length; )
+ for (i = u(y(r), 29), o = new E(i.a); o.a < o.c.c.length; )
+ if (c = u(y(o), 10), this.c.Mb(c) && (W(this.b, new CE(this, c, this.e)), this.d)) {
+ if (ai(c, (G(), mp)))
+ for (t = u(k(c, mp), 15).Kc(); t.Ob(); )
+ e = u(t.Pb(), 10), W(this.b, new CE(this, e, !1));
+ if (ai(c, bp))
+ for (t = u(k(c, bp), 15).Kc(); t.Ob(); )
+ e = u(t.Pb(), 10), W(this.b, new CE(this, e, !1));
+ }
+ }
+ return this.b;
+ }, s.qf = function() {
+ throw T(new t1(UKn));
+ }, s.We = function(e) {
+ return k(this.a, e);
+ }, s.rf = function() {
+ return this.a.f;
+ }, s.sf = function() {
+ return this.a.p;
+ }, s.Xe = function(e) {
+ return ai(this.a, e);
+ }, s.tf = function(e) {
+ throw T(new t1(UKn));
+ }, s.uf = function(e) {
+ this.a.f.a = e.a, this.a.f.b = e.b;
+ }, s.vf = function(e) {
+ this.a.p = e;
+ }, s.b = null, s.d = !1, s.e = !1, w(Fc, "LGraphAdapters/LGraphAdapter", 656), b(576, 657, { 181: 1 }, rj), w(Fc, "LGraphAdapters/LLabelAdapter", 576), b(575, 657, { 680: 1 }, CE), s.yf = function() {
+ return this.b;
+ }, s.zf = function() {
+ return Pn(), Pn(), cr;
+ }, s.wf = function() {
+ var e, t;
+ if (!this.a)
+ for (this.a = nh(u(this.e, 10).b.c.length), t = new E(u(this.e, 10).b); t.a < t.c.c.length; )
+ e = u(y(t), 70), W(this.a, new rj(e));
+ return this.a;
+ }, s.Af = function() {
+ var e;
+ return e = u(this.e, 10).d, new mU(e.d, e.c, e.a, e.b);
+ }, s.Bf = function() {
+ return Pn(), Pn(), cr;
+ }, s.Cf = function() {
+ var e, t;
+ if (!this.c)
+ for (this.c = nh(u(this.e, 10).j.c.length), t = new E(u(this.e, 10).j); t.a < t.c.c.length; )
+ e = u(y(t), 11), W(this.c, new X7n(e, this.d));
+ return this.c;
+ }, s.Df = function() {
+ return on(sn(k(u(this.e, 10), (G(), lun))));
+ }, s.Ef = function(e) {
+ u(this.e, 10).d.b = e.b, u(this.e, 10).d.d = e.d, u(this.e, 10).d.c = e.c, u(this.e, 10).d.a = e.a;
+ }, s.Ff = function(e) {
+ u(this.e, 10).f.b = e.b, u(this.e, 10).f.d = e.d, u(this.e, 10).f.c = e.c, u(this.e, 10).f.a = e.a;
+ }, s.Gf = function() {
+ N0e(this, (Vv(), $Wn));
+ }, s.a = null, s.b = null, s.c = null, s.d = !1, w(Fc, "LGraphAdapters/LNodeAdapter", 575), b(1722, 657, { 838: 1 }, X7n), s.zf = function() {
+ var e, t, i, r;
+ if (this.d && u(this.e, 11).i.k == (Qn(), Mc))
+ return Pn(), Pn(), cr;
+ if (!this.a) {
+ for (this.a = new X(), i = new E(u(this.e, 11).e); i.a < i.c.c.length; )
+ e = u(y(i), 17), W(this.a, new ij(e));
+ if (this.d && (r = u(k(u(this.e, 11), (G(), Mu)), 10), r))
+ for (t = new re(ue(Lr(r).a.Kc(), new Mn())); Se(t); )
+ e = u(ve(t), 17), W(this.a, new ij(e));
+ }
+ return this.a;
+ }, s.wf = function() {
+ var e, t;
+ if (!this.b)
+ for (this.b = nh(u(this.e, 11).f.c.length), t = new E(u(this.e, 11).f); t.a < t.c.c.length; )
+ e = u(y(t), 70), W(this.b, new rj(e));
+ return this.b;
+ }, s.Bf = function() {
+ var e, t, i, r;
+ if (this.d && u(this.e, 11).i.k == (Qn(), Mc))
+ return Pn(), Pn(), cr;
+ if (!this.c) {
+ for (this.c = new X(), i = new E(u(this.e, 11).g); i.a < i.c.c.length; )
+ e = u(y(i), 17), W(this.c, new ij(e));
+ if (this.d && (r = u(k(u(this.e, 11), (G(), Mu)), 10), r))
+ for (t = new re(ue(ei(r).a.Kc(), new Mn())); Se(t); )
+ e = u(ve(t), 17), W(this.c, new ij(e));
+ }
+ return this.c;
+ }, s.Hf = function() {
+ return u(this.e, 11).j;
+ }, s.If = function() {
+ return on(sn(k(u(this.e, 11), (G(), Wk))));
+ }, s.a = null, s.b = null, s.c = null, s.d = !1, w(Fc, "LGraphAdapters/LPortAdapter", 1722), b(1723, 1, lt, Kan), s.ue = function(e, t) {
+ return I7e(u(e, 11), u(t, 11));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Fc, "LGraphAdapters/PortComparator", 1723), b(804, 1, Ve, BH), s.Mb = function(e) {
+ return u(e, 10), Vv(), !0;
+ }, w(Fc, "LGraphAdapters/lambda$0$Type", 804), b(392, 299, { 3: 1, 299: 1, 392: 1, 94: 1, 134: 1 }), w(Fc, "LShape", 392), b(70, 392, { 3: 1, 299: 1, 70: 1, 392: 1, 94: 1, 134: 1 }, s8n, Mz), s.Ib = function() {
+ var e;
+ return e = ofe(this), e == null ? "label" : "l_" + e;
+ }, w(Fc, "LLabel", 70), b(207, 1, { 3: 1, 4: 1, 207: 1, 414: 1 }), s.Fb = function(e) {
+ var t;
+ return I(e, 207) ? (t = u(e, 207), this.d == t.d && this.a == t.a && this.b == t.b && this.c == t.c) : !1;
+ }, s.Hb = function() {
+ var e, t;
+ return e = t3(this.b) << 16, e |= t3(this.a) & Wt, t = t3(this.c) << 16, t |= t3(this.d) & Wt, e ^ t;
+ }, s.Jf = function(e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ for (o = 0; o < e.length && PDn((Me(o, e.length), e.charCodeAt(o)), XKn); )
+ ++o;
+ for (t = e.length; t > 0 && PDn((Me(t - 1, e.length), e.charCodeAt(t - 1)), VKn); )
+ --t;
+ if (o < t) {
+ d = Mb(e.substr(o, t - o), ",|;");
+ try {
+ for (h = d, l = 0, a = h.length; l < a; ++l) {
+ if (f = h[l], c = Mb(f, "="), c.length != 2)
+ throw T(new Hn("Expecting a list of key-value pairs."));
+ r = kb(c[0]), g = yb(kb(c[1])), An(r, "top") ? this.d = g : An(r, "left") ? this.b = g : An(r, "bottom") ? this.a = g : An(r, "right") && (this.c = g);
+ }
+ } catch (p) {
+ throw p = jt(p), I(p, 127) ? (i = p, T(new Hn(QKn + i))) : T(p);
+ }
+ }
+ }, s.Ib = function() {
+ return "[top=" + this.d + ",left=" + this.b + ",bottom=" + this.a + ",right=" + this.c + "]";
+ }, s.a = 0, s.b = 0, s.c = 0, s.d = 0, w(dk, "Spacing", 207), b(142, 207, JKn, Bv, syn, mU, oD);
+ var Urn = w(dk, "ElkMargin", 142);
+ b(651, 142, JKn, NI), w(Fc, "LMargin", 651), b(10, 392, { 3: 1, 299: 1, 10: 1, 392: 1, 94: 1, 134: 1 }, Hh), s.Ib = function() {
+ return V$n(this);
+ }, s.i = !1;
+ var vh = w(Fc, "LNode", 10);
+ b(267, 22, { 3: 1, 35: 1, 22: 1, 267: 1 }, t5);
+ var vf, Vt, Qu, pi, ii, Mc, zR = Ae(Fc, "LNode/NodeType", 267, Ie, Wde, ase), FWn;
+ b(116, 207, YKn, i2, md, DU);
+ var Wrn = w(dk, "ElkPadding", 116);
+ b(764, 116, YKn, Zq), w(Fc, "LPadding", 764), b(11, 392, { 3: 1, 299: 1, 11: 1, 392: 1, 94: 1, 134: 1 }, gc), s.Ib = function() {
+ var e, t, i;
+ return e = new X1(), De((e.a += "p_", e), UT(this)), this.i && De(cc((e.a += "[", e), this.i), "]"), this.e.c.length == 1 && this.g.c.length == 0 && u(un(this.e, 0), 17).c != this && (t = u(un(this.e, 0), 17).c, De((e.a += " << ", e), UT(t)), De(cc((e.a += "[", e), t.i), "]")), this.e.c.length == 0 && this.g.c.length == 1 && u(un(this.g, 0), 17).d != this && (i = u(un(this.g, 0), 17).d, De((e.a += " >> ", e), UT(i)), De(cc((e.a += "[", e), i.i), "]")), e.a;
+ }, s.c = !0, s.d = !1;
+ var Xrn, Vrn, Qrn, Jrn, Yrn, Zrn, xWn = w(Fc, "LPort", 11);
+ b(397, 1, lh, Hp), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ var e;
+ return e = new E(this.a.e), new l5n(e);
+ }, w(Fc, "LPort/1", 397), b(1290, 1, Ei, l5n), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return u(y(this.a), 17).c;
+ }, s.Ob = function() {
+ return Kr(this.a);
+ }, s.Qb = function() {
+ F5(this.a);
+ }, w(Fc, "LPort/1/1", 1290), b(359, 1, lh, n2), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ var e;
+ return e = new E(this.a.g), new Oq(e);
+ }, w(Fc, "LPort/2", 359), b(762, 1, Ei, Oq), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return u(y(this.a), 17).d;
+ }, s.Ob = function() {
+ return Kr(this.a);
+ }, s.Qb = function() {
+ F5(this.a);
+ }, w(Fc, "LPort/2/1", 762), b(1283, 1, lh, G7n), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ return new uf(this);
+ }, w(Fc, "LPort/CombineIter", 1283), b(201, 1, Ei, uf), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Qb = function() {
+ b8n();
+ }, s.Ob = function() {
+ return E5(this);
+ }, s.Pb = function() {
+ return Kr(this.a) ? y(this.a) : y(this.b);
+ }, w(Fc, "LPort/CombineIter/1", 201), b(1285, 1, Rf, Han), s.Lb = function(e) {
+ return TCn(e);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return du(), u(e, 11).e.c.length != 0;
+ }, w(Fc, "LPort/lambda$0$Type", 1285), b(1284, 1, Rf, qan), s.Lb = function(e) {
+ return MCn(e);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return du(), u(e, 11).g.c.length != 0;
+ }, w(Fc, "LPort/lambda$1$Type", 1284), b(1286, 1, Rf, Gan), s.Lb = function(e) {
+ return du(), u(e, 11).j == (J(), Kn);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return du(), u(e, 11).j == (J(), Kn);
+ }, w(Fc, "LPort/lambda$2$Type", 1286), b(1287, 1, Rf, zan), s.Lb = function(e) {
+ return du(), u(e, 11).j == (J(), Vn);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return du(), u(e, 11).j == (J(), Vn);
+ }, w(Fc, "LPort/lambda$3$Type", 1287), b(1288, 1, Rf, Uan), s.Lb = function(e) {
+ return du(), u(e, 11).j == (J(), ae);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return du(), u(e, 11).j == (J(), ae);
+ }, w(Fc, "LPort/lambda$4$Type", 1288), b(1289, 1, Rf, Wan), s.Lb = function(e) {
+ return du(), u(e, 11).j == (J(), Gn);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return du(), u(e, 11).j == (J(), Gn);
+ }, w(Fc, "LPort/lambda$5$Type", 1289), b(29, 299, { 3: 1, 20: 1, 299: 1, 29: 1, 94: 1, 134: 1 }, Bs), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ return new E(this.a);
+ }, s.Ib = function() {
+ return "L_" + xr(this.b.b, this, 0) + ml(this.a);
+ }, w(Fc, "Layer", 29), b(1342, 1, {}, t9n), w(C1, ZKn, 1342), b(1346, 1, {}, Xan), s.Kb = function(e) {
+ return Ir(u(e, 82));
+ }, w(C1, "ElkGraphImporter/0methodref$connectableShapeToNode$Type", 1346), b(1349, 1, {}, Van), s.Kb = function(e) {
+ return Ir(u(e, 82));
+ }, w(C1, "ElkGraphImporter/1methodref$connectableShapeToNode$Type", 1349), b(1343, 1, Yn, a5n), s.td = function(e) {
+ BLn(this.a, u(e, 118));
+ }, w(C1, nHn, 1343), b(1344, 1, Yn, d5n), s.td = function(e) {
+ BLn(this.a, u(e, 118));
+ }, w(C1, eHn, 1344), b(1345, 1, {}, Qan), s.Kb = function(e) {
+ return new $n(null, new xn(Hhe(u(e, 79)), 16));
+ }, w(C1, tHn, 1345), b(1347, 1, Ve, b5n), s.Mb = function(e) {
+ return qre(this.a, u(e, 33));
+ }, w(C1, iHn, 1347), b(1348, 1, {}, Jan), s.Kb = function(e) {
+ return new $n(null, new xn(qhe(u(e, 79)), 16));
+ }, w(C1, "ElkGraphImporter/lambda$5$Type", 1348), b(1350, 1, Ve, w5n), s.Mb = function(e) {
+ return Gre(this.a, u(e, 33));
+ }, w(C1, "ElkGraphImporter/lambda$7$Type", 1350), b(1351, 1, Ve, Yan), s.Mb = function(e) {
+ return u1e(u(e, 79));
+ }, w(C1, "ElkGraphImporter/lambda$8$Type", 1351), b(1278, 1, {}, w4n);
+ var LWn;
+ w(C1, "ElkGraphLayoutTransferrer", 1278), b(1279, 1, Ve, g5n), s.Mb = function(e) {
+ return Due(this.a, u(e, 17));
+ }, w(C1, "ElkGraphLayoutTransferrer/lambda$0$Type", 1279), b(1280, 1, Yn, p5n), s.td = function(e) {
+ H9(), W(this.a, u(e, 17));
+ }, w(C1, "ElkGraphLayoutTransferrer/lambda$1$Type", 1280), b(1281, 1, Ve, v5n), s.Mb = function(e) {
+ return pue(this.a, u(e, 17));
+ }, w(C1, "ElkGraphLayoutTransferrer/lambda$2$Type", 1281), b(1282, 1, Yn, m5n), s.td = function(e) {
+ H9(), W(this.a, u(e, 17));
+ }, w(C1, "ElkGraphLayoutTransferrer/lambda$3$Type", 1282), b(1485, 1, Lt, Zan), s.pf = function(e, t) {
+ mbe(u(e, 37), t);
+ }, w(Un, "CommentNodeMarginCalculator", 1485), b(1486, 1, {}, ndn), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Un, "CommentNodeMarginCalculator/lambda$0$Type", 1486), b(1487, 1, Yn, edn), s.td = function(e) {
+ Zye(u(e, 10));
+ }, w(Un, "CommentNodeMarginCalculator/lambda$1$Type", 1487), b(1488, 1, Lt, tdn), s.pf = function(e, t) {
+ a7e(u(e, 37), t);
+ }, w(Un, "CommentPostprocessor", 1488), b(1489, 1, Lt, idn), s.pf = function(e, t) {
+ mCe(u(e, 37), t);
+ }, w(Un, "CommentPreprocessor", 1489), b(1490, 1, Lt, rdn), s.pf = function(e, t) {
+ x9e(u(e, 37), t);
+ }, w(Un, "ConstraintsPostprocessor", 1490), b(1491, 1, Lt, cdn), s.pf = function(e, t) {
+ Hbe(u(e, 37), t);
+ }, w(Un, "EdgeAndLayerConstraintEdgeReverser", 1491), b(1492, 1, Lt, udn), s.pf = function(e, t) {
+ I2e(u(e, 37), t);
+ }, w(Un, "EndLabelPostprocessor", 1492), b(1493, 1, {}, sdn), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Un, "EndLabelPostprocessor/lambda$0$Type", 1493), b(1494, 1, Ve, odn), s.Mb = function(e) {
+ return C1e(u(e, 10));
+ }, w(Un, "EndLabelPostprocessor/lambda$1$Type", 1494), b(1495, 1, Yn, fdn), s.td = function(e) {
+ p4e(u(e, 10));
+ }, w(Un, "EndLabelPostprocessor/lambda$2$Type", 1495), b(1496, 1, Lt, hdn), s.pf = function(e, t) {
+ u6e(u(e, 37), t);
+ }, w(Un, "EndLabelPreprocessor", 1496), b(1497, 1, {}, ldn), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Un, "EndLabelPreprocessor/lambda$0$Type", 1497), b(1498, 1, Yn, gEn), s.td = function(e) {
+ ure(this.a, this.b, this.c, u(e, 10));
+ }, s.a = 0, s.b = 0, s.c = !1, w(Un, "EndLabelPreprocessor/lambda$1$Type", 1498), b(1499, 1, Ve, adn), s.Mb = function(e) {
+ return B(k(u(e, 70), (nn(), Jf))) === B((sf(), jv));
+ }, w(Un, "EndLabelPreprocessor/lambda$2$Type", 1499), b(1500, 1, Yn, k5n), s.td = function(e) {
+ Ke(this.a, u(e, 70));
+ }, w(Un, "EndLabelPreprocessor/lambda$3$Type", 1500), b(1501, 1, Ve, ddn), s.Mb = function(e) {
+ return B(k(u(e, 70), (nn(), Jf))) === B((sf(), uw));
+ }, w(Un, "EndLabelPreprocessor/lambda$4$Type", 1501), b(1502, 1, Yn, y5n), s.td = function(e) {
+ Ke(this.a, u(e, 70));
+ }, w(Un, "EndLabelPreprocessor/lambda$5$Type", 1502), b(1551, 1, Lt, b4n), s.pf = function(e, t) {
+ Bge(u(e, 37), t);
+ };
+ var NWn;
+ w(Un, "EndLabelSorter", 1551), b(1552, 1, lt, bdn), s.ue = function(e, t) {
+ return bpe(u(e, 456), u(t, 456));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Un, "EndLabelSorter/1", 1552), b(456, 1, { 456: 1 }, LTn), w(Un, "EndLabelSorter/LabelGroup", 456), b(1553, 1, {}, wdn), s.Kb = function(e) {
+ return q9(), new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Un, "EndLabelSorter/lambda$0$Type", 1553), b(1554, 1, Ve, gdn), s.Mb = function(e) {
+ return q9(), u(e, 10).k == (Qn(), ii);
+ }, w(Un, "EndLabelSorter/lambda$1$Type", 1554), b(1555, 1, Yn, pdn), s.td = function(e) {
+ p5e(u(e, 10));
+ }, w(Un, "EndLabelSorter/lambda$2$Type", 1555), b(1556, 1, Ve, vdn), s.Mb = function(e) {
+ return q9(), B(k(u(e, 70), (nn(), Jf))) === B((sf(), uw));
+ }, w(Un, "EndLabelSorter/lambda$3$Type", 1556), b(1557, 1, Ve, mdn), s.Mb = function(e) {
+ return q9(), B(k(u(e, 70), (nn(), Jf))) === B((sf(), jv));
+ }, w(Un, "EndLabelSorter/lambda$4$Type", 1557), b(1503, 1, Lt, kdn), s.pf = function(e, t) {
+ hje(this, u(e, 37));
+ }, s.b = 0, s.c = 0, w(Un, "FinalSplineBendpointsCalculator", 1503), b(1504, 1, {}, ydn), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Un, "FinalSplineBendpointsCalculator/lambda$0$Type", 1504), b(1505, 1, {}, jdn), s.Kb = function(e) {
+ return new $n(null, new Td(new re(ue(ei(u(e, 10)).a.Kc(), new Mn()))));
+ }, w(Un, "FinalSplineBendpointsCalculator/lambda$1$Type", 1505), b(1506, 1, Ve, Edn), s.Mb = function(e) {
+ return !Wi(u(e, 17));
+ }, w(Un, "FinalSplineBendpointsCalculator/lambda$2$Type", 1506), b(1507, 1, Ve, Cdn), s.Mb = function(e) {
+ return ai(u(e, 17), (G(), Wa));
+ }, w(Un, "FinalSplineBendpointsCalculator/lambda$3$Type", 1507), b(1508, 1, Yn, j5n), s.td = function(e) {
+ Eke(this.a, u(e, 128));
+ }, w(Un, "FinalSplineBendpointsCalculator/lambda$4$Type", 1508), b(1509, 1, Yn, Tdn), s.td = function(e) {
+ Ax(u(e, 17).a);
+ }, w(Un, "FinalSplineBendpointsCalculator/lambda$5$Type", 1509), b(792, 1, Lt, Dq), s.pf = function(e, t) {
+ iEe(this, u(e, 37), t);
+ }, w(Un, "GraphTransformer", 792), b(511, 22, { 3: 1, 35: 1, 22: 1, 511: 1 }, zG);
+ var UR, _k, BWn = Ae(Un, "GraphTransformer/Mode", 511, Ie, U1e, Coe), RWn;
+ b(1510, 1, Lt, Mdn), s.pf = function(e, t) {
+ $8e(u(e, 37), t);
+ }, w(Un, "HierarchicalNodeResizingProcessor", 1510), b(1511, 1, Lt, Adn), s.pf = function(e, t) {
+ bbe(u(e, 37), t);
+ }, w(Un, "HierarchicalPortConstraintProcessor", 1511), b(1512, 1, lt, Sdn), s.ue = function(e, t) {
+ return Tpe(u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Un, "HierarchicalPortConstraintProcessor/NodeComparator", 1512), b(1513, 1, Lt, Pdn), s.pf = function(e, t) {
+ Fye(u(e, 37), t);
+ }, w(Un, "HierarchicalPortDummySizeProcessor", 1513), b(1514, 1, Lt, Idn), s.pf = function(e, t) {
+ O7e(this, u(e, 37), t);
+ }, s.a = 0, w(Un, "HierarchicalPortOrthogonalEdgeRouter", 1514), b(1515, 1, lt, Odn), s.ue = function(e, t) {
+ return Lce(u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Un, "HierarchicalPortOrthogonalEdgeRouter/1", 1515), b(1516, 1, lt, Ddn), s.ue = function(e, t) {
+ return Qde(u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Un, "HierarchicalPortOrthogonalEdgeRouter/2", 1516), b(1517, 1, Lt, $dn), s.pf = function(e, t) {
+ t5e(u(e, 37), t);
+ }, w(Un, "HierarchicalPortPositionProcessor", 1517), b(1518, 1, Lt, g4n), s.pf = function(e, t) {
+ JCe(this, u(e, 37));
+ }, s.a = 0, s.c = 0;
+ var sS, oS;
+ w(Un, "HighDegreeNodeLayeringProcessor", 1518), b(571, 1, { 571: 1 }, Fdn), s.b = -1, s.d = -1, w(Un, "HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation", 571), b(1519, 1, {}, xdn), s.Kb = function(e) {
+ return w8(), Lr(u(e, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(Un, "HighDegreeNodeLayeringProcessor/lambda$0$Type", 1519), b(1520, 1, {}, Ldn), s.Kb = function(e) {
+ return w8(), ei(u(e, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(Un, "HighDegreeNodeLayeringProcessor/lambda$1$Type", 1520), b(1526, 1, Lt, Ndn), s.pf = function(e, t) {
+ oye(this, u(e, 37), t);
+ }, w(Un, "HyperedgeDummyMerger", 1526), b(793, 1, {}, xU), s.a = !1, s.b = !1, s.c = !1, w(Un, "HyperedgeDummyMerger/MergeState", 793), b(1527, 1, {}, Bdn), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Un, "HyperedgeDummyMerger/lambda$0$Type", 1527), b(1528, 1, {}, Rdn), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 10).j, 16));
+ }, w(Un, "HyperedgeDummyMerger/lambda$1$Type", 1528), b(1529, 1, Yn, _dn), s.td = function(e) {
+ u(e, 11).p = -1;
+ }, w(Un, "HyperedgeDummyMerger/lambda$2$Type", 1529), b(1530, 1, Lt, Kdn), s.pf = function(e, t) {
+ uye(u(e, 37), t);
+ }, w(Un, "HypernodesProcessor", 1530), b(1531, 1, Lt, Hdn), s.pf = function(e, t) {
+ sye(u(e, 37), t);
+ }, w(Un, "InLayerConstraintProcessor", 1531), b(1532, 1, Lt, qdn), s.pf = function(e, t) {
+ Nbe(u(e, 37), t);
+ }, w(Un, "InnermostNodeMarginCalculator", 1532), b(1533, 1, Lt, Gdn), s.pf = function(e, t) {
+ bCe(this, u(e, 37));
+ }, s.a = Qt, s.b = Qt, s.c = xt, s.d = xt;
+ var ZTe = w(Un, "InteractiveExternalPortPositioner", 1533);
+ b(1534, 1, {}, zdn), s.Kb = function(e) {
+ return u(e, 17).d.i;
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(Un, "InteractiveExternalPortPositioner/lambda$0$Type", 1534), b(1535, 1, {}, E5n), s.Kb = function(e) {
+ return Rce(this.a, Y(e));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(Un, "InteractiveExternalPortPositioner/lambda$1$Type", 1535), b(1536, 1, {}, Udn), s.Kb = function(e) {
+ return u(e, 17).c.i;
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(Un, "InteractiveExternalPortPositioner/lambda$2$Type", 1536), b(1537, 1, {}, C5n), s.Kb = function(e) {
+ return _ce(this.a, Y(e));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(Un, "InteractiveExternalPortPositioner/lambda$3$Type", 1537), b(1538, 1, {}, T5n), s.Kb = function(e) {
+ return Pue(this.a, Y(e));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(Un, "InteractiveExternalPortPositioner/lambda$4$Type", 1538), b(1539, 1, {}, M5n), s.Kb = function(e) {
+ return Iue(this.a, Y(e));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(Un, "InteractiveExternalPortPositioner/lambda$5$Type", 1539), b(77, 22, { 3: 1, 35: 1, 22: 1, 77: 1, 234: 1 }, Ut), s.Kf = function() {
+ switch (this.g) {
+ case 15:
+ return new dwn();
+ case 22:
+ return new bwn();
+ case 47:
+ return new pwn();
+ case 28:
+ case 35:
+ return new i0n();
+ case 32:
+ return new Zan();
+ case 42:
+ return new tdn();
+ case 1:
+ return new idn();
+ case 41:
+ return new rdn();
+ case 56:
+ return new Dq((N3(), _k));
+ case 0:
+ return new Dq((N3(), UR));
+ case 2:
+ return new cdn();
+ case 54:
+ return new udn();
+ case 33:
+ return new hdn();
+ case 51:
+ return new kdn();
+ case 55:
+ return new Mdn();
+ case 13:
+ return new Adn();
+ case 38:
+ return new Pdn();
+ case 44:
+ return new Idn();
+ case 40:
+ return new $dn();
+ case 9:
+ return new g4n();
+ case 49:
+ return new tjn();
+ case 37:
+ return new Ndn();
+ case 43:
+ return new Kdn();
+ case 27:
+ return new Hdn();
+ case 30:
+ return new qdn();
+ case 3:
+ return new Gdn();
+ case 18:
+ return new Xdn();
+ case 29:
+ return new Vdn();
+ case 5:
+ return new p4n();
+ case 50:
+ return new Wdn();
+ case 34:
+ return new v4n();
+ case 36:
+ return new r0n();
+ case 52:
+ return new b4n();
+ case 11:
+ return new u0n();
+ case 7:
+ return new k4n();
+ case 39:
+ return new s0n();
+ case 45:
+ return new o0n();
+ case 16:
+ return new f0n();
+ case 10:
+ return new h0n();
+ case 48:
+ return new a0n();
+ case 21:
+ return new d0n();
+ case 23:
+ return new WI((Kd(), _m));
+ case 8:
+ return new w0n();
+ case 12:
+ return new p0n();
+ case 4:
+ return new v0n();
+ case 19:
+ return new C4n();
+ case 17:
+ return new S0n();
+ case 53:
+ return new P0n();
+ case 6:
+ return new K0n();
+ case 25:
+ return new u9n();
+ case 46:
+ return new F0n();
+ case 31:
+ return new _jn();
+ case 14:
+ return new V0n();
+ case 26:
+ return new kwn();
+ case 20:
+ return new nbn();
+ case 24:
+ return new WI((Kd(), aP));
+ default:
+ throw T(new Hn(AN + (this.f != null ? this.f : "" + this.g)));
+ }
+ };
+ var ncn, ecn, tcn, icn, rcn, ccn, ucn, scn, ocn, fcn, mm, fS, hS, hcn, lcn, acn, dcn, bcn, wcn, gcn, km, pcn, vcn, mcn, kcn, ycn, WR, lS, aS, jcn, dS, bS, wS, Q4, J4, Y4, Ecn, gS, pS, Ccn, vS, mS, Tcn, Mcn, Acn, Scn, kS, XR, Kk, yS, jS, ES, CS, Pcn, Icn, Ocn, Dcn, nMe = Ae(Un, Fnn, 77, Ie, INn, Eoe), _Wn;
+ b(1540, 1, Lt, Xdn), s.pf = function(e, t) {
+ gCe(u(e, 37), t);
+ }, w(Un, "InvertedPortProcessor", 1540), b(1541, 1, Lt, Vdn), s.pf = function(e, t) {
+ gke(u(e, 37), t);
+ }, w(Un, "LabelAndNodeSizeProcessor", 1541), b(1542, 1, Ve, Qdn), s.Mb = function(e) {
+ return u(e, 10).k == (Qn(), ii);
+ }, w(Un, "LabelAndNodeSizeProcessor/lambda$0$Type", 1542), b(1543, 1, Ve, Jdn), s.Mb = function(e) {
+ return u(e, 10).k == (Qn(), Vt);
+ }, w(Un, "LabelAndNodeSizeProcessor/lambda$1$Type", 1543), b(1544, 1, Yn, pEn), s.td = function(e) {
+ sre(this.b, this.a, this.c, u(e, 10));
+ }, s.a = !1, s.c = !1, w(Un, "LabelAndNodeSizeProcessor/lambda$2$Type", 1544), b(1545, 1, Lt, p4n), s.pf = function(e, t) {
+ _Ee(u(e, 37), t);
+ };
+ var KWn;
+ w(Un, "LabelDummyInserter", 1545), b(1546, 1, Rf, Ydn), s.Lb = function(e) {
+ return B(k(u(e, 70), (nn(), Jf))) === B((sf(), yv));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return B(k(u(e, 70), (nn(), Jf))) === B((sf(), yv));
+ }, w(Un, "LabelDummyInserter/1", 1546), b(1547, 1, Lt, Wdn), s.pf = function(e, t) {
+ Hje(u(e, 37), t);
+ }, w(Un, "LabelDummyRemover", 1547), b(1548, 1, Ve, Zdn), s.Mb = function(e) {
+ return on(sn(k(u(e, 70), (nn(), L_))));
+ }, w(Un, "LabelDummyRemover/lambda$0$Type", 1548), b(1359, 1, Lt, v4n), s.pf = function(e, t) {
+ pEe(this, u(e, 37), t);
+ }, s.a = null;
+ var VR;
+ w(Un, "LabelDummySwitcher", 1359), b(286, 1, { 286: 1 }, SBn), s.c = 0, s.d = null, s.f = 0, w(Un, "LabelDummySwitcher/LabelDummyInfo", 286), b(1360, 1, {}, n0n), s.Kb = function(e) {
+ return x2(), new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Un, "LabelDummySwitcher/lambda$0$Type", 1360), b(1361, 1, Ve, e0n), s.Mb = function(e) {
+ return x2(), u(e, 10).k == (Qn(), Qu);
+ }, w(Un, "LabelDummySwitcher/lambda$1$Type", 1361), b(1362, 1, {}, P5n), s.Kb = function(e) {
+ return vue(this.a, u(e, 10));
+ }, w(Un, "LabelDummySwitcher/lambda$2$Type", 1362), b(1363, 1, Yn, I5n), s.td = function(e) {
+ phe(this.a, u(e, 286));
+ }, w(Un, "LabelDummySwitcher/lambda$3$Type", 1363), b(1364, 1, lt, t0n), s.ue = function(e, t) {
+ return zfe(u(e, 286), u(t, 286));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Un, "LabelDummySwitcher/lambda$4$Type", 1364), b(791, 1, Lt, i0n), s.pf = function(e, t) {
+ Sde(u(e, 37), t);
+ }, w(Un, "LabelManagementProcessor", 791), b(1549, 1, Lt, r0n), s.pf = function(e, t) {
+ Z8e(u(e, 37), t);
+ }, w(Un, "LabelSideSelector", 1549), b(1550, 1, Ve, c0n), s.Mb = function(e) {
+ return on(sn(k(u(e, 70), (nn(), L_))));
+ }, w(Un, "LabelSideSelector/lambda$0$Type", 1550), b(1558, 1, Lt, u0n), s.pf = function(e, t) {
+ xye(u(e, 37), t);
+ }, w(Un, "LayerConstraintPostprocessor", 1558), b(1559, 1, Lt, k4n), s.pf = function(e, t) {
+ Vme(u(e, 37), t);
+ };
+ var $cn;
+ w(Un, "LayerConstraintPreprocessor", 1559), b(360, 22, { 3: 1, 35: 1, 22: 1, 360: 1 }, Hj);
+ var Hk, TS, MS, QR, HWn = Ae(Un, "LayerConstraintPreprocessor/HiddenNodeConnections", 360, Ie, yae, bse), qWn;
+ b(1560, 1, Lt, s0n), s.pf = function(e, t) {
+ Rje(u(e, 37), t);
+ }, w(Un, "LayerSizeAndGraphHeightCalculator", 1560), b(1561, 1, Lt, o0n), s.pf = function(e, t) {
+ H9e(u(e, 37), t);
+ }, w(Un, "LongEdgeJoiner", 1561), b(1562, 1, Lt, f0n), s.pf = function(e, t) {
+ kje(u(e, 37), t);
+ }, w(Un, "LongEdgeSplitter", 1562), b(1563, 1, Lt, h0n), s.pf = function(e, t) {
+ kEe(this, u(e, 37), t);
+ }, s.d = 0, s.e = 0, s.i = 0, s.j = 0, s.k = 0, s.n = 0, w(Un, "NodePromotion", 1563), b(1564, 1, {}, l0n), s.Kb = function(e) {
+ return u(e, 46), qn(), !0;
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(Un, "NodePromotion/lambda$0$Type", 1564), b(1565, 1, {}, A5n), s.Kb = function(e) {
+ return Bhe(this.a, u(e, 46));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.a = 0, w(Un, "NodePromotion/lambda$1$Type", 1565), b(1566, 1, {}, S5n), s.Kb = function(e) {
+ return Rhe(this.a, u(e, 46));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.a = 0, w(Un, "NodePromotion/lambda$2$Type", 1566), b(1567, 1, Lt, a0n), s.pf = function(e, t) {
+ GCe(u(e, 37), t);
+ }, w(Un, "NorthSouthPortPostprocessor", 1567), b(1568, 1, Lt, d0n), s.pf = function(e, t) {
+ PCe(u(e, 37), t);
+ }, w(Un, "NorthSouthPortPreprocessor", 1568), b(1569, 1, lt, b0n), s.ue = function(e, t) {
+ return rwe(u(e, 11), u(t, 11));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Un, "NorthSouthPortPreprocessor/lambda$0$Type", 1569), b(1570, 1, Lt, w0n), s.pf = function(e, t) {
+ Uke(u(e, 37), t);
+ }, w(Un, "PartitionMidprocessor", 1570), b(1571, 1, Ve, g0n), s.Mb = function(e) {
+ return ai(u(e, 10), (nn(), lv));
+ }, w(Un, "PartitionMidprocessor/lambda$0$Type", 1571), b(1572, 1, Yn, O5n), s.td = function(e) {
+ s1e(this.a, u(e, 10));
+ }, w(Un, "PartitionMidprocessor/lambda$1$Type", 1572), b(1573, 1, Lt, p0n), s.pf = function(e, t) {
+ o8e(u(e, 37), t);
+ }, w(Un, "PartitionPostprocessor", 1573), b(1574, 1, Lt, v0n), s.pf = function(e, t) {
+ vme(u(e, 37), t);
+ }, w(Un, "PartitionPreprocessor", 1574), b(1575, 1, Ve, m0n), s.Mb = function(e) {
+ return ai(u(e, 10), (nn(), lv));
+ }, w(Un, "PartitionPreprocessor/lambda$0$Type", 1575), b(1576, 1, {}, k0n), s.Kb = function(e) {
+ return new $n(null, new Td(new re(ue(ei(u(e, 10)).a.Kc(), new Mn()))));
+ }, w(Un, "PartitionPreprocessor/lambda$1$Type", 1576), b(1577, 1, Ve, y0n), s.Mb = function(e) {
+ return lpe(u(e, 17));
+ }, w(Un, "PartitionPreprocessor/lambda$2$Type", 1577), b(1578, 1, Yn, j0n), s.td = function(e) {
+ bwe(u(e, 17));
+ }, w(Un, "PartitionPreprocessor/lambda$3$Type", 1578), b(1579, 1, Lt, C4n), s.pf = function(e, t) {
+ Ike(u(e, 37), t);
+ };
+ var Fcn, GWn, zWn, UWn, xcn, Lcn;
+ w(Un, "PortListSorter", 1579), b(1580, 1, {}, E0n), s.Kb = function(e) {
+ return X3(), u(e, 11).e;
+ }, w(Un, "PortListSorter/lambda$0$Type", 1580), b(1581, 1, {}, C0n), s.Kb = function(e) {
+ return X3(), u(e, 11).g;
+ }, w(Un, "PortListSorter/lambda$1$Type", 1581), b(1582, 1, lt, T0n), s.ue = function(e, t) {
+ return HAn(u(e, 11), u(t, 11));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Un, "PortListSorter/lambda$2$Type", 1582), b(1583, 1, lt, M0n), s.ue = function(e, t) {
+ return x3e(u(e, 11), u(t, 11));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Un, "PortListSorter/lambda$3$Type", 1583), b(1584, 1, lt, A0n), s.ue = function(e, t) {
+ return JBn(u(e, 11), u(t, 11));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Un, "PortListSorter/lambda$4$Type", 1584), b(1585, 1, Lt, S0n), s.pf = function(e, t) {
+ qme(u(e, 37), t);
+ }, w(Un, "PortSideProcessor", 1585), b(1586, 1, Lt, P0n), s.pf = function(e, t) {
+ G7e(u(e, 37), t);
+ }, w(Un, "ReversedEdgeRestorer", 1586), b(1591, 1, Lt, u9n), s.pf = function(e, t) {
+ m3e(this, u(e, 37), t);
+ }, w(Un, "SelfLoopPortRestorer", 1591), b(1592, 1, {}, I0n), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Un, "SelfLoopPortRestorer/lambda$0$Type", 1592), b(1593, 1, Ve, O0n), s.Mb = function(e) {
+ return u(e, 10).k == (Qn(), ii);
+ }, w(Un, "SelfLoopPortRestorer/lambda$1$Type", 1593), b(1594, 1, Ve, D0n), s.Mb = function(e) {
+ return ai(u(e, 10), (G(), ov));
+ }, w(Un, "SelfLoopPortRestorer/lambda$2$Type", 1594), b(1595, 1, {}, $0n), s.Kb = function(e) {
+ return u(k(u(e, 10), (G(), ov)), 403);
+ }, w(Un, "SelfLoopPortRestorer/lambda$3$Type", 1595), b(1596, 1, Yn, D5n), s.td = function(e) {
+ S5e(this.a, u(e, 403));
+ }, w(Un, "SelfLoopPortRestorer/lambda$4$Type", 1596), b(794, 1, Yn, RH), s.td = function(e) {
+ q5e(u(e, 101));
+ }, w(Un, "SelfLoopPortRestorer/lambda$5$Type", 794), b(1597, 1, Lt, F0n), s.pf = function(e, t) {
+ Spe(u(e, 37), t);
+ }, w(Un, "SelfLoopPostProcessor", 1597), b(1598, 1, {}, x0n), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Un, "SelfLoopPostProcessor/lambda$0$Type", 1598), b(1599, 1, Ve, L0n), s.Mb = function(e) {
+ return u(e, 10).k == (Qn(), ii);
+ }, w(Un, "SelfLoopPostProcessor/lambda$1$Type", 1599), b(1600, 1, Ve, N0n), s.Mb = function(e) {
+ return ai(u(e, 10), (G(), ov));
+ }, w(Un, "SelfLoopPostProcessor/lambda$2$Type", 1600), b(1601, 1, Yn, B0n), s.td = function(e) {
+ x4e(u(e, 10));
+ }, w(Un, "SelfLoopPostProcessor/lambda$3$Type", 1601), b(1602, 1, {}, R0n), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 101).f, 1));
+ }, w(Un, "SelfLoopPostProcessor/lambda$4$Type", 1602), b(1603, 1, Yn, $5n), s.td = function(e) {
+ Cae(this.a, u(e, 409));
+ }, w(Un, "SelfLoopPostProcessor/lambda$5$Type", 1603), b(1604, 1, Ve, _0n), s.Mb = function(e) {
+ return !!u(e, 101).i;
+ }, w(Un, "SelfLoopPostProcessor/lambda$6$Type", 1604), b(1605, 1, Yn, F5n), s.td = function(e) {
+ oie(this.a, u(e, 101));
+ }, w(Un, "SelfLoopPostProcessor/lambda$7$Type", 1605), b(1587, 1, Lt, K0n), s.pf = function(e, t) {
+ y9e(u(e, 37), t);
+ }, w(Un, "SelfLoopPreProcessor", 1587), b(1588, 1, {}, H0n), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 101).f, 1));
+ }, w(Un, "SelfLoopPreProcessor/lambda$0$Type", 1588), b(1589, 1, {}, q0n), s.Kb = function(e) {
+ return u(e, 409).a;
+ }, w(Un, "SelfLoopPreProcessor/lambda$1$Type", 1589), b(1590, 1, Yn, G0n), s.td = function(e) {
+ dce(u(e, 17));
+ }, w(Un, "SelfLoopPreProcessor/lambda$2$Type", 1590), b(1606, 1, Lt, _jn), s.pf = function(e, t) {
+ v5e(this, u(e, 37), t);
+ }, w(Un, "SelfLoopRouter", 1606), b(1607, 1, {}, z0n), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Un, "SelfLoopRouter/lambda$0$Type", 1607), b(1608, 1, Ve, U0n), s.Mb = function(e) {
+ return u(e, 10).k == (Qn(), ii);
+ }, w(Un, "SelfLoopRouter/lambda$1$Type", 1608), b(1609, 1, Ve, W0n), s.Mb = function(e) {
+ return ai(u(e, 10), (G(), ov));
+ }, w(Un, "SelfLoopRouter/lambda$2$Type", 1609), b(1610, 1, {}, X0n), s.Kb = function(e) {
+ return u(k(u(e, 10), (G(), ov)), 403);
+ }, w(Un, "SelfLoopRouter/lambda$3$Type", 1610), b(1611, 1, Yn, L7n), s.td = function(e) {
+ Yhe(this.a, this.b, u(e, 403));
+ }, w(Un, "SelfLoopRouter/lambda$4$Type", 1611), b(1612, 1, Lt, V0n), s.pf = function(e, t) {
+ K8e(u(e, 37), t);
+ }, w(Un, "SemiInteractiveCrossMinProcessor", 1612), b(1613, 1, Ve, Q0n), s.Mb = function(e) {
+ return u(e, 10).k == (Qn(), ii);
+ }, w(Un, "SemiInteractiveCrossMinProcessor/lambda$0$Type", 1613), b(1614, 1, Ve, J0n), s.Mb = function(e) {
+ return tCn(u(e, 10))._b((nn(), nw));
+ }, w(Un, "SemiInteractiveCrossMinProcessor/lambda$1$Type", 1614), b(1615, 1, lt, Y0n), s.ue = function(e, t) {
+ return gbe(u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Un, "SemiInteractiveCrossMinProcessor/lambda$2$Type", 1615), b(1616, 1, {}, Z0n), s.Ce = function(e, t) {
+ return w1e(u(e, 10), u(t, 10));
+ }, w(Un, "SemiInteractiveCrossMinProcessor/lambda$3$Type", 1616), b(1618, 1, Lt, nbn), s.pf = function(e, t) {
+ Lye(u(e, 37), t);
+ }, w(Un, "SortByInputModelProcessor", 1618), b(1619, 1, Ve, ebn), s.Mb = function(e) {
+ return u(e, 11).g.c.length != 0;
+ }, w(Un, "SortByInputModelProcessor/lambda$0$Type", 1619), b(1620, 1, Yn, x5n), s.td = function(e) {
+ X5e(this.a, u(e, 11));
+ }, w(Un, "SortByInputModelProcessor/lambda$1$Type", 1620), b(1693, 803, {}, JIn), s.Me = function(e) {
+ var t, i, r, c;
+ switch (this.c = e, this.a.g) {
+ case 2:
+ t = new X(), Rt(gt(new $n(null, new xn(this.c.a.b, 16)), new wbn()), new K7n(this, t)), O7(this, new rbn()), Jc(t, new cbn()), t.c = F(Zn, rn, 1, 0, 5, 1), Rt(gt(new $n(null, new xn(this.c.a.b, 16)), new ubn()), new N5n(t)), O7(this, new sbn()), Jc(t, new obn()), t.c = F(Zn, rn, 1, 0, 5, 1), i = kyn(hOn(YE(new $n(null, new xn(this.c.a.b, 16)), new B5n(this))), new fbn()), Rt(new $n(null, new xn(this.c.a.a, 16)), new B7n(i, t)), O7(this, new lbn()), Jc(t, new tbn()), t.c = F(Zn, rn, 1, 0, 5, 1);
+ break;
+ case 3:
+ r = new X(), O7(this, new ibn()), c = kyn(hOn(YE(new $n(null, new xn(this.c.a.b, 16)), new L5n(this))), new hbn()), Rt(gt(new $n(null, new xn(this.c.a.b, 16)), new abn()), new _7n(c, r)), O7(this, new dbn()), Jc(r, new bbn()), r.c = F(Zn, rn, 1, 0, 5, 1);
+ break;
+ default:
+ throw T(new zmn());
+ }
+ }, s.b = 0, w(Jt, "EdgeAwareScanlineConstraintCalculation", 1693), b(1694, 1, Rf, ibn), s.Lb = function(e) {
+ return I(u(e, 57).g, 145);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return I(u(e, 57).g, 145);
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$0$Type", 1694), b(1695, 1, {}, L5n), s.Fe = function(e) {
+ return A6e(this.a, u(e, 57));
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$1$Type", 1695), b(1703, 1, DM, N7n), s.Vd = function() {
+ g6(this.a, this.b, -1);
+ }, s.b = 0, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$10$Type", 1703), b(1705, 1, Rf, rbn), s.Lb = function(e) {
+ return I(u(e, 57).g, 145);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return I(u(e, 57).g, 145);
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$11$Type", 1705), b(1706, 1, Yn, cbn), s.td = function(e) {
+ u(e, 365).Vd();
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$12$Type", 1706), b(1707, 1, Ve, ubn), s.Mb = function(e) {
+ return I(u(e, 57).g, 10);
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$13$Type", 1707), b(1709, 1, Yn, N5n), s.td = function(e) {
+ n2e(this.a, u(e, 57));
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$14$Type", 1709), b(1708, 1, DM, z7n), s.Vd = function() {
+ g6(this.b, this.a, -1);
+ }, s.a = 0, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$15$Type", 1708), b(1710, 1, Rf, sbn), s.Lb = function(e) {
+ return I(u(e, 57).g, 10);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return I(u(e, 57).g, 10);
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$16$Type", 1710), b(1711, 1, Yn, obn), s.td = function(e) {
+ u(e, 365).Vd();
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$17$Type", 1711), b(1712, 1, {}, B5n), s.Fe = function(e) {
+ return S6e(this.a, u(e, 57));
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$18$Type", 1712), b(1713, 1, {}, fbn), s.De = function() {
+ return 0;
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$19$Type", 1713), b(1696, 1, {}, hbn), s.De = function() {
+ return 0;
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$2$Type", 1696), b(1715, 1, Yn, B7n), s.td = function(e) {
+ xfe(this.a, this.b, u(e, 307));
+ }, s.a = 0, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$20$Type", 1715), b(1714, 1, DM, R7n), s.Vd = function() {
+ sNn(this.a, this.b, -1);
+ }, s.b = 0, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$21$Type", 1714), b(1716, 1, Rf, lbn), s.Lb = function(e) {
+ return u(e, 57), !0;
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return u(e, 57), !0;
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$22$Type", 1716), b(1717, 1, Yn, tbn), s.td = function(e) {
+ u(e, 365).Vd();
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$23$Type", 1717), b(1697, 1, Ve, abn), s.Mb = function(e) {
+ return I(u(e, 57).g, 10);
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$3$Type", 1697), b(1699, 1, Yn, _7n), s.td = function(e) {
+ Lfe(this.a, this.b, u(e, 57));
+ }, s.a = 0, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$4$Type", 1699), b(1698, 1, DM, U7n), s.Vd = function() {
+ g6(this.b, this.a, -1);
+ }, s.a = 0, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$5$Type", 1698), b(1700, 1, Rf, dbn), s.Lb = function(e) {
+ return u(e, 57), !0;
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return u(e, 57), !0;
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$6$Type", 1700), b(1701, 1, Yn, bbn), s.td = function(e) {
+ u(e, 365).Vd();
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$7$Type", 1701), b(1702, 1, Ve, wbn), s.Mb = function(e) {
+ return I(u(e, 57).g, 145);
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$8$Type", 1702), b(1704, 1, Yn, K7n), s.td = function(e) {
+ $0e(this.a, this.b, u(e, 57));
+ }, w(Jt, "EdgeAwareScanlineConstraintCalculation/lambda$9$Type", 1704), b(1521, 1, Lt, tjn), s.pf = function(e, t) {
+ Aje(this, u(e, 37), t);
+ };
+ var WWn;
+ w(Jt, "HorizontalGraphCompactor", 1521), b(1522, 1, {}, R5n), s.Oe = function(e, t) {
+ var i, r, c;
+ return YX(e, t) || (i = $w(e), r = $w(t), i && i.k == (Qn(), Vt) || r && r.k == (Qn(), Vt)) ? 0 : (c = u(k(this.a.a, (G(), Ig)), 304), Kce(c, i ? i.k : (Qn(), pi), r ? r.k : (Qn(), pi)));
+ }, s.Pe = function(e, t) {
+ var i, r, c;
+ return YX(e, t) ? 1 : (i = $w(e), r = $w(t), c = u(k(this.a.a, (G(), Ig)), 304), Wz(c, i ? i.k : (Qn(), pi), r ? r.k : (Qn(), pi)));
+ }, w(Jt, "HorizontalGraphCompactor/1", 1522), b(1523, 1, {}, gbn), s.Ne = function(e, t) {
+ return Qv(), e.a.i == 0;
+ }, w(Jt, "HorizontalGraphCompactor/lambda$0$Type", 1523), b(1524, 1, {}, _5n), s.Ne = function(e, t) {
+ return l1e(this.a, e, t);
+ }, w(Jt, "HorizontalGraphCompactor/lambda$1$Type", 1524), b(1664, 1, {}, LPn);
+ var XWn, VWn;
+ w(Jt, "LGraphToCGraphTransformer", 1664), b(1672, 1, Ve, pbn), s.Mb = function(e) {
+ return e != null;
+ }, w(Jt, "LGraphToCGraphTransformer/0methodref$nonNull$Type", 1672), b(1665, 1, {}, vbn), s.Kb = function(e) {
+ return wo(), Nr(k(u(u(e, 57).g, 10), (G(), rt)));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$0$Type", 1665), b(1666, 1, {}, mbn), s.Kb = function(e) {
+ return wo(), RDn(u(u(e, 57).g, 145));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$1$Type", 1666), b(1675, 1, Ve, kbn), s.Mb = function(e) {
+ return wo(), I(u(e, 57).g, 10);
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$10$Type", 1675), b(1676, 1, Yn, ybn), s.td = function(e) {
+ h1e(u(e, 57));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$11$Type", 1676), b(1677, 1, Ve, jbn), s.Mb = function(e) {
+ return wo(), I(u(e, 57).g, 145);
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$12$Type", 1677), b(1681, 1, Yn, Ebn), s.td = function(e) {
+ wge(u(e, 57));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$13$Type", 1681), b(1678, 1, Yn, K5n), s.td = function(e) {
+ Rre(this.a, u(e, 8));
+ }, s.a = 0, w(Jt, "LGraphToCGraphTransformer/lambda$14$Type", 1678), b(1679, 1, Yn, H5n), s.td = function(e) {
+ Kre(this.a, u(e, 110));
+ }, s.a = 0, w(Jt, "LGraphToCGraphTransformer/lambda$15$Type", 1679), b(1680, 1, Yn, q5n), s.td = function(e) {
+ _re(this.a, u(e, 8));
+ }, s.a = 0, w(Jt, "LGraphToCGraphTransformer/lambda$16$Type", 1680), b(1682, 1, {}, Cbn), s.Kb = function(e) {
+ return wo(), new $n(null, new Td(new re(ue(ei(u(e, 10)).a.Kc(), new Mn()))));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$17$Type", 1682), b(1683, 1, Ve, Tbn), s.Mb = function(e) {
+ return wo(), Wi(u(e, 17));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$18$Type", 1683), b(1684, 1, Yn, G5n), s.td = function(e) {
+ y0e(this.a, u(e, 17));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$19$Type", 1684), b(1668, 1, Yn, z5n), s.td = function(e) {
+ eae(this.a, u(e, 145));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$2$Type", 1668), b(1685, 1, {}, Mbn), s.Kb = function(e) {
+ return wo(), new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$20$Type", 1685), b(1686, 1, {}, Abn), s.Kb = function(e) {
+ return wo(), new $n(null, new Td(new re(ue(ei(u(e, 10)).a.Kc(), new Mn()))));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$21$Type", 1686), b(1687, 1, {}, Sbn), s.Kb = function(e) {
+ return wo(), u(k(u(e, 17), (G(), Wa)), 15);
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$22$Type", 1687), b(1688, 1, Ve, Pbn), s.Mb = function(e) {
+ return qce(u(e, 15));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$23$Type", 1688), b(1689, 1, Yn, U5n), s.td = function(e) {
+ v6e(this.a, u(e, 15));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$24$Type", 1689), b(1667, 1, Yn, H7n), s.td = function(e) {
+ Hae(this.a, this.b, u(e, 145));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$3$Type", 1667), b(1669, 1, {}, Ibn), s.Kb = function(e) {
+ return wo(), new $n(null, new xn(u(e, 29).a, 16));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$4$Type", 1669), b(1670, 1, {}, Obn), s.Kb = function(e) {
+ return wo(), new $n(null, new Td(new re(ue(ei(u(e, 10)).a.Kc(), new Mn()))));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$5$Type", 1670), b(1671, 1, {}, Dbn), s.Kb = function(e) {
+ return wo(), u(k(u(e, 17), (G(), Wa)), 15);
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$6$Type", 1671), b(1673, 1, Yn, W5n), s.td = function(e) {
+ Q6e(this.a, u(e, 15));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$8$Type", 1673), b(1674, 1, Yn, q7n), s.td = function(e) {
+ fce(this.a, this.b, u(e, 145));
+ }, w(Jt, "LGraphToCGraphTransformer/lambda$9$Type", 1674), b(1663, 1, {}, $bn), s.Le = function(e) {
+ var t, i, r, c, o;
+ for (this.a = e, this.d = new LI(), this.c = F(grn, rn, 121, this.a.a.a.c.length, 0, 1), this.b = 0, i = new E(this.a.a.a); i.a < i.c.c.length; )
+ t = u(y(i), 307), t.d = this.b, o = yd(K9(new ca(), t), this.d), this.c[this.b] = o, ++this.b;
+ for ($Ee(this), FCe(this), Y9e(this), Yx(fD(this.d), new Gp()), c = new E(this.a.a.b); c.a < c.c.c.length; )
+ r = u(y(c), 57), r.d.c = this.c[r.a.d].e + r.b.a;
+ }, s.b = 0, w(Jt, "NetworkSimplexCompaction", 1663), b(145, 1, { 35: 1, 145: 1 }, P6), s.wd = function(e) {
+ return T0e(this, u(e, 145));
+ }, s.Ib = function() {
+ return RDn(this);
+ }, w(Jt, "VerticalSegment", 145), b(827, 1, {}, NJ), s.c = 0, s.e = 0, s.i = 0, w(U6, "BetweenLayerEdgeTwoNodeCrossingsCounter", 827), b(663, 1, { 663: 1 }, dOn), s.Ib = function() {
+ return "AdjacencyList [node=" + this.d + ", adjacencies= " + this.a + "]";
+ }, s.b = 0, s.c = 0, s.f = 0, w(U6, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList", 663), b(287, 1, { 35: 1, 287: 1 }, hjn), s.wd = function(e) {
+ return afe(this, u(e, 287));
+ }, s.Ib = function() {
+ return "Adjacency [position=" + this.c + ", cardinality=" + this.a + ", currentCardinality=" + this.b + "]";
+ }, s.a = 0, s.b = 0, s.c = 0, w(U6, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency", 287), b(1929, 1, {}, xxn), s.b = 0, s.e = !1, w(U6, "CrossingMatrixFiller", 1929);
+ var QWn = Et(gh, "IInitializable");
+ b(1804, 1, bk, Q7n), s.Nf = function(e, t, i, r, c, o) {
+ }, s.Pf = function(e, t, i) {
+ }, s.Lf = function() {
+ return this.c != (Kd(), _m);
+ }, s.Mf = function() {
+ this.e = F(be, Le, 25, this.d, 15, 1);
+ }, s.Of = function(e, t) {
+ t[e][0].c.p = e;
+ }, s.Qf = function(e, t, i, r) {
+ ++this.d;
+ }, s.Rf = function() {
+ return !0;
+ }, s.Sf = function(e, t, i, r) {
+ return DDn(this, e, t, i), nde(this, t);
+ }, s.Tf = function(e, t) {
+ var i;
+ return i = Nie(t, e.length), DDn(this, e, i, t), YOn(this, i);
+ }, s.d = 0, w(U6, "GreedySwitchHeuristic", 1804), b(1930, 1, {}, fCn), s.b = 0, s.d = 0, w(U6, "NorthSouthEdgeNeighbouringNodeCrossingsCounter", 1930), b(1917, 1, {}, aBn), s.a = !1, w(U6, "SwitchDecider", 1917), b(101, 1, { 101: 1 }, qxn), s.a = null, s.c = null, s.i = null, w(cp, "SelfHyperLoop", 101), b(1916, 1, {}, H$n), s.c = 0, s.e = 0, w(cp, "SelfHyperLoopLabels", 1916), b(411, 22, { 3: 1, 35: 1, 22: 1, 411: 1 }, qj);
+ var lp, Z4, nv, JR, JWn = Ae(cp, "SelfHyperLoopLabels/Alignment", 411, Ie, jae, wse), YWn;
+ b(409, 1, { 409: 1 }, ASn), w(cp, "SelfLoopEdge", 409), b(403, 1, { 403: 1 }, F$n), s.a = !1, w(cp, "SelfLoopHolder", 403), b(1724, 1, Ve, qbn), s.Mb = function(e) {
+ return Wi(u(e, 17));
+ }, w(cp, "SelfLoopHolder/lambda$0$Type", 1724), b(113, 1, { 113: 1 }, q$n), s.a = !1, s.c = !1, w(cp, "SelfLoopPort", 113), b(1792, 1, Ve, Gbn), s.Mb = function(e) {
+ return Wi(u(e, 17));
+ }, w(cp, "SelfLoopPort/lambda$0$Type", 1792), b(363, 22, { 3: 1, 35: 1, 22: 1, 363: 1 }, W9);
+ var AS, SS, PS, IS, OS, ZWn = Ae(cp, "SelfLoopType", 363, Ie, dde, kse), nXn;
+ b(1732, 1, {}, T4n);
+ var eXn, tXn, iXn, rXn;
+ w(fs, "PortRestorer", 1732), b(361, 22, { 3: 1, 35: 1, 22: 1, 361: 1 }, aO);
+ var g0, $l, p0, YR = Ae(fs, "PortRestorer/PortSideArea", 361, Ie, Cle, yse), cXn;
+ b(1733, 1, {}, Wbn), s.Kb = function(e) {
+ return kl(), u(e, 15).Oc();
+ }, w(fs, "PortRestorer/lambda$0$Type", 1733), b(1734, 1, Yn, Xbn), s.td = function(e) {
+ kl(), u(e, 113).c = !1;
+ }, w(fs, "PortRestorer/lambda$1$Type", 1734), b(1743, 1, Ve, Vbn), s.Mb = function(e) {
+ return kl(), u(e, 11).j == (J(), Gn);
+ }, w(fs, "PortRestorer/lambda$10$Type", 1743), b(1744, 1, {}, Qbn), s.Kb = function(e) {
+ return kl(), u(e, 113).d;
+ }, w(fs, "PortRestorer/lambda$11$Type", 1744), b(1745, 1, Yn, X5n), s.td = function(e) {
+ Hie(this.a, u(e, 11));
+ }, w(fs, "PortRestorer/lambda$12$Type", 1745), b(1735, 1, Yn, V5n), s.td = function(e) {
+ Xce(this.a, u(e, 101));
+ }, w(fs, "PortRestorer/lambda$2$Type", 1735), b(1736, 1, lt, Jbn), s.ue = function(e, t) {
+ return X0e(u(e, 113), u(t, 113));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(fs, "PortRestorer/lambda$3$Type", 1736), b(1737, 1, Ve, Ybn), s.Mb = function(e) {
+ return kl(), u(e, 113).c;
+ }, w(fs, "PortRestorer/lambda$4$Type", 1737), b(1738, 1, Ve, xbn), s.Mb = function(e) {
+ return xbe(u(e, 11));
+ }, w(fs, "PortRestorer/lambda$5$Type", 1738), b(1739, 1, Ve, Fbn), s.Mb = function(e) {
+ return kl(), u(e, 11).j == (J(), Kn);
+ }, w(fs, "PortRestorer/lambda$6$Type", 1739), b(1740, 1, Ve, Lbn), s.Mb = function(e) {
+ return kl(), u(e, 11).j == (J(), Vn);
+ }, w(fs, "PortRestorer/lambda$7$Type", 1740), b(1741, 1, Ve, Nbn), s.Mb = function(e) {
+ return Eae(u(e, 11));
+ }, w(fs, "PortRestorer/lambda$8$Type", 1741), b(1742, 1, Ve, Bbn), s.Mb = function(e) {
+ return kl(), u(e, 11).j == (J(), ae);
+ }, w(fs, "PortRestorer/lambda$9$Type", 1742), b(270, 22, { 3: 1, 35: 1, 22: 1, 270: 1 }, E2);
+ var ZR, n_, e_, t_, i_, r_, c_, u_, Ncn = Ae(fs, "PortSideAssigner/Target", 270, Ie, _0e, gse), uXn;
+ b(1725, 1, {}, Rbn), s.Kb = function(e) {
+ return gt(new $n(null, new xn(u(e, 101).j, 16)), new _H());
+ }, w(fs, "PortSideAssigner/lambda$1$Type", 1725), b(1726, 1, {}, _bn), s.Kb = function(e) {
+ return u(e, 113).d;
+ }, w(fs, "PortSideAssigner/lambda$2$Type", 1726), b(1727, 1, Yn, Kbn), s.td = function(e) {
+ si(u(e, 11), (J(), Kn));
+ }, w(fs, "PortSideAssigner/lambda$3$Type", 1727), b(1728, 1, {}, Hbn), s.Kb = function(e) {
+ return u(e, 113).d;
+ }, w(fs, "PortSideAssigner/lambda$4$Type", 1728), b(1729, 1, Yn, Q5n), s.td = function(e) {
+ Xte(this.a, u(e, 11));
+ }, w(fs, "PortSideAssigner/lambda$5$Type", 1729), b(1730, 1, lt, zbn), s.ue = function(e, t) {
+ return Che(u(e, 101), u(t, 101));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(fs, "PortSideAssigner/lambda$6$Type", 1730), b(1731, 1, lt, Ubn), s.ue = function(e, t) {
+ return Joe(u(e, 113), u(t, 113));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(fs, "PortSideAssigner/lambda$7$Type", 1731), b(805, 1, Ve, _H), s.Mb = function(e) {
+ return u(e, 113).c;
+ }, w(fs, "PortSideAssigner/lambda$8$Type", 805), b(2009, 1, {}), w(Ml, "AbstractSelfLoopRouter", 2009), b(1750, 1, lt, Zbn), s.ue = function(e, t) {
+ return Kue(u(e, 101), u(t, 101));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Ml, IKn, 1750), b(1751, 1, lt, nwn), s.ue = function(e, t) {
+ return _ue(u(e, 101), u(t, 101));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Ml, OKn, 1751), b(1793, 2009, {}, ewn), s.Uf = function(e, t, i) {
+ return i;
+ }, w(Ml, "OrthogonalSelfLoopRouter", 1793), b(1795, 1, Yn, W7n), s.td = function(e) {
+ zQ(this.b, this.a, u(e, 8));
+ }, w(Ml, "OrthogonalSelfLoopRouter/lambda$0$Type", 1795), b(1794, 1793, {}, twn), s.Uf = function(e, t, i) {
+ var r, c;
+ return r = e.c.d, u3(i, 0, st(Qr(r.n), r.a)), c = e.d.d, Ke(i, st(Qr(c.n), c.a)), Kke(i);
+ }, w(Ml, "PolylineSelfLoopRouter", 1794), b(1746, 1, {}, m4n), s.a = null;
+ var jg;
+ w(Ml, "RoutingDirector", 1746), b(1747, 1, lt, iwn), s.ue = function(e, t) {
+ return nfe(u(e, 113), u(t, 113));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Ml, "RoutingDirector/lambda$0$Type", 1747), b(1748, 1, {}, rwn), s.Kb = function(e) {
+ return Sj(), u(e, 101).j;
+ }, w(Ml, "RoutingDirector/lambda$1$Type", 1748), b(1749, 1, Yn, cwn), s.td = function(e) {
+ Sj(), u(e, 15).ad(jg);
+ }, w(Ml, "RoutingDirector/lambda$2$Type", 1749), b(1752, 1, {}, uwn), w(Ml, "RoutingSlotAssigner", 1752), b(1753, 1, Ve, J5n), s.Mb = function(e) {
+ return mre(this.a, u(e, 101));
+ }, w(Ml, "RoutingSlotAssigner/lambda$0$Type", 1753), b(1754, 1, lt, Y5n), s.ue = function(e, t) {
+ return Efe(this.a, u(e, 101), u(t, 101));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Ml, "RoutingSlotAssigner/lambda$1$Type", 1754), b(1796, 1793, {}, swn), s.Uf = function(e, t, i) {
+ var r, c, o, f;
+ return r = K(Y(xT(e.b.g.b, (nn(), jp)))), f = new ajn(A(M(di, 1), q, 8, 0, [(o = e.c.d, st(new kr(o.n), o.a))])), j9e(e, t, i, f, r), Ke(f, (c = e.d.d, st(new kr(c.n), c.a))), rFn(new jZ(f));
+ }, w(Ml, "SplineSelfLoopRouter", 1796), b(578, 1, lt, uOn, DEn), s.ue = function(e, t) {
+ return I_n(this, u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(W6, "ModelOrderNodeComparator", 578), b(1755, 1, Ve, own), s.Mb = function(e) {
+ return u(e, 11).e.c.length != 0;
+ }, w(W6, "ModelOrderNodeComparator/lambda$0$Type", 1755), b(1756, 1, {}, fwn), s.Kb = function(e) {
+ return u(un(u(e, 11).e, 0), 17).c;
+ }, w(W6, "ModelOrderNodeComparator/lambda$1$Type", 1756), b(1757, 1, Ve, hwn), s.Mb = function(e) {
+ return u(e, 11).e.c.length != 0;
+ }, w(W6, "ModelOrderNodeComparator/lambda$2$Type", 1757), b(1758, 1, {}, lwn), s.Kb = function(e) {
+ return u(un(u(e, 11).e, 0), 17).c;
+ }, w(W6, "ModelOrderNodeComparator/lambda$3$Type", 1758), b(1759, 1, Ve, awn), s.Mb = function(e) {
+ return u(e, 11).e.c.length != 0;
+ }, w(W6, "ModelOrderNodeComparator/lambda$4$Type", 1759), b(806, 1, lt, NPn, V7n), s.ue = function(e, t) {
+ return ACn(this, e, t);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(W6, "ModelOrderPortComparator", 806), b(801, 1, {}, KH), s.Vf = function(e, t) {
+ var i, r, c, o;
+ for (c = Oxn(t), i = new X(), o = t.f / c, r = 1; r < c; ++r)
+ W(i, Q(ge(nu(j.Math.round(r * o)))));
+ return i;
+ }, s.Wf = function() {
+ return !1;
+ }, w(qf, "ARDCutIndexHeuristic", 801), b(1479, 1, Lt, dwn), s.pf = function(e, t) {
+ ike(u(e, 37), t);
+ }, w(qf, "BreakingPointInserter", 1479), b(305, 1, { 305: 1 }, wX), s.Ib = function() {
+ var e;
+ return e = new X1(), e.a += "BPInfo[", e.a += `
+ start=`, cc(e, this.i), e.a += `
+ end=`, cc(e, this.a), e.a += `
+ nodeStartEdge=`, cc(e, this.e), e.a += `
+ startEndEdge=`, cc(e, this.j), e.a += `
+ originalEdge=`, cc(e, this.f), e.a += `
+ startInLayerDummy=`, cc(e, this.k), e.a += `
+ startInLayerEdge=`, cc(e, this.n), e.a += `
+ endInLayerDummy=`, cc(e, this.b), e.a += `
+ endInLayerEdge=`, cc(e, this.c), e.a;
+ }, w(qf, "BreakingPointInserter/BPInfo", 305), b(652, 1, { 652: 1 }, s6n), s.a = !1, s.b = 0, s.c = 0, w(qf, "BreakingPointInserter/Cut", 652), b(1480, 1, Lt, bwn), s.pf = function(e, t) {
+ $9e(u(e, 37), t);
+ }, w(qf, "BreakingPointProcessor", 1480), b(1481, 1, Ve, wwn), s.Mb = function(e) {
+ return tIn(u(e, 10));
+ }, w(qf, "BreakingPointProcessor/0methodref$isEnd$Type", 1481), b(1482, 1, Ve, gwn), s.Mb = function(e) {
+ return iIn(u(e, 10));
+ }, w(qf, "BreakingPointProcessor/1methodref$isStart$Type", 1482), b(1483, 1, Lt, pwn), s.pf = function(e, t) {
+ t8e(this, u(e, 37), t);
+ }, w(qf, "BreakingPointRemover", 1483), b(1484, 1, Yn, vwn), s.td = function(e) {
+ u(e, 128).k = !0;
+ }, w(qf, "BreakingPointRemover/lambda$0$Type", 1484), b(797, 1, {}, PY), s.b = 0, s.e = 0, s.f = 0, s.j = 0, w(qf, "GraphStats", 797), b(798, 1, {}, HH), s.Ce = function(e, t) {
+ return j.Math.max(K(Y(e)), K(Y(t)));
+ }, w(qf, "GraphStats/0methodref$max$Type", 798), b(799, 1, {}, qH), s.Ce = function(e, t) {
+ return j.Math.max(K(Y(e)), K(Y(t)));
+ }, w(qf, "GraphStats/2methodref$max$Type", 799), b(1660, 1, {}, mwn), s.Ce = function(e, t) {
+ return Koe(Y(e), Y(t));
+ }, w(qf, "GraphStats/lambda$1$Type", 1660), b(1661, 1, {}, Z5n), s.Kb = function(e) {
+ return z$n(this.a, u(e, 29));
+ }, w(qf, "GraphStats/lambda$2$Type", 1661), b(1662, 1, {}, n6n), s.Kb = function(e) {
+ return MNn(this.a, u(e, 29));
+ }, w(qf, "GraphStats/lambda$6$Type", 1662), b(800, 1, {}, GH), s.Vf = function(e, t) {
+ var i;
+ return i = u(k(e, (nn(), $sn)), 15), i || (Pn(), Pn(), cr);
+ }, s.Wf = function() {
+ return !1;
+ }, w(qf, "ICutIndexCalculator/ManualCutIndexCalculator", 800), b(802, 1, {}, zH), s.Vf = function(e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _;
+ for (_ = (t.n == null && wFn(t), t.n), l = (t.d == null && wFn(t), t.d), x = F(Ci, pr, 25, _.length, 15, 1), x[0] = _[0], $ = _[0], a = 1; a < _.length; a++)
+ x[a] = x[a - 1] + _[a], $ += _[a];
+ for (c = Oxn(t) - 1, f = u(k(e, (nn(), Fsn)), 19).a, r = Qt, i = new X(), p = j.Math.max(0, c - f); p <= j.Math.min(t.f - 1, c + f); p++) {
+ if (C = $ / (p + 1), S = 0, d = 1, o = new X(), O = Qt, g = 0, h = 0, m = l[0], p == 0)
+ O = $, h = (t.g == null && (t.g = oOn(t, new qH())), K(t.g));
+ else {
+ for (; d < t.f; )
+ x[d - 1] - S >= C && (W(o, Q(d)), O = j.Math.max(O, x[d - 1] - g), h += m, S += x[d - 1] - S, g = x[d - 1], m = l[d]), m = j.Math.max(m, l[d]), ++d;
+ h += m;
+ }
+ v = j.Math.min(1 / O, 1 / t.b / h), v > r && (r = v, i = o);
+ }
+ return i;
+ }, s.Wf = function() {
+ return !1;
+ }, w(qf, "MSDCutIndexHeuristic", 802), b(1617, 1, Lt, kwn), s.pf = function(e, t) {
+ Sye(u(e, 37), t);
+ }, w(qf, "SingleEdgeGraphWrapper", 1617), b(227, 22, { 3: 1, 35: 1, 22: 1, 227: 1 }, i5);
+ var Eg, ev, tv, Gb, ym, Cg, iv = Ae(ac, "CenterEdgeLabelPlacementStrategy", 227, Ie, Rde, pse), sXn;
+ b(422, 22, { 3: 1, 35: 1, 22: 1, 422: 1 }, WG);
+ var Bcn, s_, Rcn = Ae(ac, "ConstraintCalculationStrategy", 422, Ie, P1e, vse), oXn;
+ b(314, 22, { 3: 1, 35: 1, 22: 1, 314: 1, 246: 1, 234: 1 }, dO), s.Kf = function() {
+ return vLn(this);
+ }, s.Xf = function() {
+ return vLn(this);
+ };
+ var qk, ap, _cn, Kcn = Ae(ac, "CrossingMinimizationStrategy", 314, Ie, yle, mse), fXn;
+ b(337, 22, { 3: 1, 35: 1, 22: 1, 337: 1 }, bO);
+ var Hcn, o_, DS, qcn = Ae(ac, "CuttingStrategy", 337, Ie, jle, jse), hXn;
+ b(335, 22, { 3: 1, 35: 1, 22: 1, 335: 1, 246: 1, 234: 1 }, X9), s.Kf = function() {
+ return rNn(this);
+ }, s.Xf = function() {
+ return rNn(this);
+ };
+ var Gcn, f_, jm, h_, Em, zcn = Ae(ac, "CycleBreakingStrategy", 335, Ie, lde, Ese), lXn;
+ b(419, 22, { 3: 1, 35: 1, 22: 1, 419: 1 }, XG);
+ var $S, Ucn, Wcn = Ae(ac, "DirectionCongruency", 419, Ie, S1e, Cse), aXn;
+ b(450, 22, { 3: 1, 35: 1, 22: 1, 450: 1 }, wO);
+ var rv, l_, Tg, dXn = Ae(ac, "EdgeConstraint", 450, Ie, Ele, Tse), bXn;
+ b(276, 22, { 3: 1, 35: 1, 22: 1, 276: 1 }, r5);
+ var a_, d_, b_, w_, FS, g_, Xcn = Ae(ac, "EdgeLabelSideSelection", 276, Ie, qde, Mse), wXn;
+ b(479, 22, { 3: 1, 35: 1, 22: 1, 479: 1 }, VG);
+ var xS, Vcn, Qcn = Ae(ac, "EdgeStraighteningStrategy", 479, Ie, A1e, Ase), gXn;
+ b(274, 22, { 3: 1, 35: 1, 22: 1, 274: 1 }, c5);
+ var p_, Jcn, Ycn, LS, Zcn, nun, eun = Ae(ac, "FixedAlignment", 274, Ie, Kde, Sse), pXn;
+ b(275, 22, { 3: 1, 35: 1, 22: 1, 275: 1 }, u5);
+ var tun, iun, run, cun, Cm, uun, sun = Ae(ac, "GraphCompactionStrategy", 275, Ie, _de, Pse), vXn;
+ b(256, 22, { 3: 1, 35: 1, 22: 1, 256: 1 }, q0);
+ var cv, NS, uv, Ds, Tm, BS, sv, Mg, RS, Mm, v_ = Ae(ac, "GraphProperties", 256, Ie, Sbe, Ise), mXn;
+ b(292, 22, { 3: 1, 35: 1, 22: 1, 292: 1 }, gO);
+ var Gk, m_, k_, y_ = Ae(ac, "GreedySwitchType", 292, Ie, Mle, Ose), kXn;
+ b(303, 22, { 3: 1, 35: 1, 22: 1, 303: 1 }, pO);
+ var dp, zk, Ag, yXn = Ae(ac, "InLayerConstraint", 303, Ie, Tle, Dse), jXn;
+ b(420, 22, { 3: 1, 35: 1, 22: 1, 420: 1 }, QG);
+ var j_, oun, fun = Ae(ac, "InteractiveReferencePoint", 420, Ie, I1e, $se), EXn, hun, bp, v0, _S, lun, aun, KS, dun, Uk, HS, Am, wp, zb, E_, qS, ec, bun, m0, Ac, C_, T_, Wk, Ua, k0, gp, wun, pp, Xk, Ub, Xo, Js, M_, Sg, bc, rt, gun, pun, vun, mun, kun, A_, GS, Mu, y0, S_, vp, Vk, mf, Pg, ov, Ig, Og, fv, Wa, yun, P_, I_, mp;
+ b(163, 22, { 3: 1, 35: 1, 22: 1, 163: 1 }, Q9);
+ var Sm, Fl, Pm, Wb, Qk, jun = Ae(ac, "LayerConstraint", 163, Ie, bde, Fse), CXn;
+ b(848, 1, Gs, S4n), s.Qe = function(e) {
+ En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), xnn), ""), "Direction Congruency"), "Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."), Dun), (y1(), Bt)), Wcn), Cn((Ho(), Xn))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Lnn), ""), "Feedback Edges"), "Whether feedback edges should be highlighted by routing around the nodes."), (qn(), !1)), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), WM), ""), "Interactive Reference Point"), "Determines which point of a node is considered by interactive layout phases."), Bun), Bt), fun), Cn(Xn)))), Mi(e, WM, IN, wVn), Mi(e, WM, X6, bVn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Nnn), ""), "Merge Edges"), "Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Bnn), ""), "Merge Hierarchy-Crossing Edges"), "If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."), !0), _i), oi), Cn(Xn)))), En(e, new bn(_ie(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Rnn), ""), "Allow Non-Flow Ports To Switch Sides"), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), !1), _i), oi), Cn(Za)), A(M(tn, 1), q, 2, 6, ["org.eclipse.elk.layered.northOrSouthPort"])))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), _nn), ""), "Port Sorting Strategy"), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), Uun), Bt), non), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Knn), ""), "Thoroughness"), "How much effort should be spent to produce a nice layout."), Q(7)), oc), Ui), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Hnn), ""), "Add Unnecessary Bendpoints"), "Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), qnn), ""), "Generate Position and Layer IDs"), "If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), IN), "cycleBreaking"), "Cycle Breaking Strategy"), "Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."), Oun), Bt), zcn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), wk), nB), "Node Layering Strategy"), "Strategy for node layering."), Kun), Bt), Hsn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Gnn), nB), "Layer Constraint"), "Determines a constraint on the placement of the node regarding the layering."), Run), Bt), jun), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), znn), nB), "Layer Choice Constraint"), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), Q(-1)), oc), Ui), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Unn), nB), "Layer ID"), "Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), Q(-1)), oc), Ui), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ON), bHn), "Upper Bound On Width [MinWidth Layerer]"), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), Q(4)), oc), Ui), Cn(Xn)))), Mi(e, ON, wk, jVn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), DN), bHn), "Upper Layer Estimation Scaling Factor [MinWidth Layerer]"), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), Q(2)), oc), Ui), Cn(Xn)))), Mi(e, DN, wk, CVn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), $N), wHn), "Node Promotion Strategy"), "Reduces number of dummy nodes after layering phase (if possible)."), _un), Bt), Jsn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), FN), wHn), "Max Node Promotion Iterations"), "Limits the number of iterations for node promotion."), Q(0)), oc), Ui), Cn(Xn)))), Mi(e, FN, $N, null), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), xN), "layering.coffmanGraham"), "Layer Bound"), "The maximum number of nodes allowed per layer."), Q(nt)), oc), Ui), Cn(Xn)))), Mi(e, xN, wk, pVn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), X6), gk), "Crossing Minimization Strategy"), "Strategy for crossing minimization."), Iun), Bt), Kcn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Wnn), gk), "Force Node Model Order"), "The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), LN), gk), "Hierarchical Sweepiness"), "How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."), 0.1), Dr), Si), Cn(Xn)))), Mi(e, LN, uA, qXn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), NN), gk), "Semi-Interactive Crossing Minimization"), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), !1), _i), oi), Cn(Xn)))), Mi(e, NN, X6, WXn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Xnn), gk), "Position Choice Constraint"), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), Q(-1)), oc), Ui), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Vnn), gk), "Position ID"), "Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), Q(-1)), oc), Ui), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Qnn), gHn), "Greedy Switch Activation Threshold"), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), Q(40)), oc), Ui), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), BN), gHn), "Greedy Switch Crossing Minimization"), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), Pun), Bt), y_), Cn(Xn)))), Mi(e, BN, X6, KXn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), XM), "crossingMinimization.greedySwitchHierarchical"), "Greedy Switch Crossing Minimization (hierarchical)"), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), Sun), Bt), y_), Cn(Xn)))), Mi(e, XM, X6, BXn), Mi(e, XM, uA, RXn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), lg), pHn), "Node Placement Strategy"), "Strategy for node placement."), zun), Bt), Usn), Cn(Xn)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), VM), pHn), "Favor Straight Edges Over Balancing"), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), _i), oi), Cn(Xn)))), Mi(e, VM, lg, xVn), Mi(e, VM, lg, LVn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), RN), vHn), "BK Edge Straightening"), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), Hun), Bt), Qcn), Cn(Xn)))), Mi(e, RN, lg, OVn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), _N), vHn), "BK Fixed Alignment"), "Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."), qun), Bt), eun), Cn(Xn)))), Mi(e, _N, lg, $Vn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), KN), "nodePlacement.linearSegments"), "Linear Segments Deflection Dampening"), "Dampens the movement of nodes to keep the diagram from getting too large."), 0.3), Dr), Si), Cn(Xn)))), Mi(e, KN, lg, BVn), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), HN), "nodePlacement.networkSimplex"), "Node Flexibility"), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), Bt), Z_), Cn(vi)))), Mi(e, HN, lg, HVn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), qN), "nodePlacement.networkSimplex.nodeFlexibility"), "Node Flexibility Default"), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), Gun), Bt), Z_), Cn(Xn)))), Mi(e, qN, lg, KVn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Jnn), mHn), "Self-Loop Distribution"), "Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."), xun), Bt), ion), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Ynn), mHn), "Self-Loop Ordering"), "Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."), Lun), Bt), ron), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), QM), "edgeRouting.splines"), "Spline Routing Mode"), "Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."), Nun), Bt), uon), Cn(Xn)))), Mi(e, QM, pk, rVn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), JM), "edgeRouting.splines.sloppy"), "Sloppy Spline Layer Spacing Factor"), "Spacing factor for routing area between layers when using sloppy spline routing."), 0.2), Dr), Si), Cn(Xn)))), Mi(e, JM, pk, uVn), Mi(e, JM, QM, sVn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), GN), "edgeRouting.polyline"), "Sloped Edge Zone Width"), "Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."), 2), Dr), Si), Cn(Xn)))), Mi(e, GN, pk, nVn), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), Znn), wf), "Spacing Base Value"), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), nen), wf), "Edge Node Between Layers Spacing"), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), een), wf), "Edge Edge Between Layer Spacing"), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ten), wf), "Node Node Between Layers Spacing"), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ien), aen), "Direction Priority"), "Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."), Q(0)), oc), Ui), Cn(Yf)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ren), aen), "Shortness Priority"), "Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."), Q(0)), oc), Ui), Cn(Yf)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), cen), aen), "Straightness Priority"), "Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."), Q(0)), oc), Ui), Cn(Yf)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), zN), den), xKn), "Tries to further compact components (disconnected sub-graphs)."), !1), _i), oi), Cn(Xn)))), Mi(e, zN, q6, !0), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), uen), kHn), "Post Compaction Strategy"), yHn), Cun), Bt), sun), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), sen), kHn), "Post Compaction Constraint Calculation"), yHn), Eun), Bt), Rcn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), YM), ben), "High Degree Node Treatment"), "Makes room around high degree nodes to place leafs and trees."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), UN), ben), "High Degree Node Threshold"), "Whether a node is considered to have a high degree."), Q(16)), oc), Ui), Cn(Xn)))), Mi(e, UN, YM, !0), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), WN), ben), "High Degree Node Maximum Tree Height"), "Maximum height of a subtree connected to a high degree node to be moved to separate layers."), Q(5)), oc), Ui), Cn(Xn)))), Mi(e, WN, YM, !0), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Xh), wen), "Graph Wrapping Strategy"), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), Vun), Bt), hon), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ZM), wen), "Additional Wrapped Edges Spacing"), "To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."), 10), Dr), Si), Cn(Xn)))), Mi(e, ZM, Xh, eQn), Mi(e, ZM, Xh, tQn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), nA), wen), "Correction Factor for Wrapping"), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), Dr), Si), Cn(Xn)))), Mi(e, nA, Xh, rQn), Mi(e, nA, Xh, cQn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), V6), jHn), "Cutting Strategy"), "The strategy by which the layer indexes are determined at which the layering crumbles into chunks."), Xun), Bt), qcn), Cn(Xn)))), Mi(e, V6, Xh, lQn), Mi(e, V6, Xh, aQn), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), XN), jHn), "Manually Specified Cuts"), "Allows the user to specify her own cuts for a certain graph."), yf), Os), Cn(Xn)))), Mi(e, XN, V6, sQn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), VN), "wrapping.cutting.msd"), "MSD Freedom"), "The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."), Wun), oc), Ui), Cn(Xn)))), Mi(e, VN, V6, fQn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), eA), EHn), "Validification Strategy"), "When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."), Qun), Bt), fon), Cn(Xn)))), Mi(e, eA, Xh, CQn), Mi(e, eA, Xh, TQn), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), tA), EHn), "Valid Indices for Wrapping"), null), yf), Os), Cn(Xn)))), Mi(e, tA, Xh, yQn), Mi(e, tA, Xh, jQn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), iA), gen), "Improve Cuts"), "For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."), !0), _i), oi), Cn(Xn)))), Mi(e, iA, Xh, gQn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), rA), gen), "Distance Penalty When Improving Cuts"), null), 2), Dr), Si), Cn(Xn)))), Mi(e, rA, Xh, bQn), Mi(e, rA, iA, !0), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), QN), gen), "Improve Wrapped Edges"), "The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."), !0), _i), oi), Cn(Xn)))), Mi(e, QN, Xh, vQn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), oen), eB), "Edge Label Side Selection"), "Method to decide on edge label sides."), Fun), Bt), Xcn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), fen), eB), "Edge Center Label Placement Strategy"), "Determines in which layer center labels of long edges should be placed."), $un), Bt), iv), pt(Xn, A(M($1, 1), z, 175, 0, [D1]))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), cA), vk), "Consider Model Order"), "Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."), Aun), Bt), Zsn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), hen), vk), "No Model Order"), "Set on a node to not set a model order for this node even though it is a real node."), !1), _i), oi), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), JN), vk), "Consider Model Order for Components"), "If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."), Tun), Bt), zrn), Cn(Xn)))), Mi(e, JN, q6, null), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), len), vk), "Long Edge Ordering Strategy"), "Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."), Mun), Bt), Gsn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), YN), vk), "Crossing Counter Node Order Influence"), "Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."), 0), Dr), Si), Cn(Xn)))), Mi(e, YN, cA, null), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ZN), vk), "Crossing Counter Port Order Influence"), "Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."), 0), Dr), Si), Cn(Xn)))), Mi(e, ZN, cA, null), __n((new O4n(), e));
+ };
+ var TXn, MXn, AXn, Eun, SXn, Cun, PXn, Tun, IXn, OXn, DXn, Mun, $Xn, FXn, Aun, xXn, LXn, NXn, Sun, BXn, RXn, _Xn, Pun, KXn, HXn, qXn, GXn, zXn, UXn, WXn, XXn, Iun, VXn, Oun, QXn, Dun, JXn, $un, YXn, Fun, ZXn, nVn, eVn, xun, tVn, Lun, iVn, Nun, rVn, cVn, uVn, sVn, oVn, fVn, hVn, lVn, aVn, dVn, Bun, bVn, wVn, gVn, pVn, vVn, mVn, Run, kVn, yVn, jVn, EVn, CVn, TVn, MVn, _un, AVn, Kun, SVn, PVn, IVn, Hun, OVn, DVn, qun, $Vn, FVn, xVn, LVn, NVn, BVn, RVn, _Vn, Gun, KVn, HVn, qVn, zun, GVn, Uun, zVn, UVn, WVn, XVn, VVn, QVn, JVn, YVn, ZVn, nQn, eQn, tQn, iQn, rQn, cQn, uQn, sQn, oQn, Wun, fQn, hQn, Xun, lQn, aQn, dQn, bQn, wQn, gQn, pQn, vQn, mQn, Vun, kQn, yQn, jQn, EQn, Qun, CQn, TQn;
+ w(ac, "LayeredMetaDataProvider", 848), b(986, 1, Gs, O4n), s.Qe = function(e) {
+ __n(e);
+ };
+ var Qf, O_, zS, Im, US, Jun, WS, kp, XS, Yun, Zun, D_, xl, $_, Xb, nsn, Jk, F_, esn, MQn, VS, x_, Om, Vb, AQn, ls, tsn, isn, QS, L_, Jf, JS, Vh, rsn, csn, usn, N_, B_, ssn, S1, R_, osn, Qb, fsn, hsn, lsn, YS, Jb, Xa, asn, dsn, Mr, bsn, SQn, Hc, ZS, wsn, gsn, psn, __, vsn, nP, msn, ksn, eP, j0, ysn, K_, Dm, jsn, E0, $m, tP, Va, H_, hv, iP, Qa, Esn, Csn, Tsn, lv, Msn, PQn, IQn, OQn, DQn, C0, Yb, Nt, P1, $Qn, Zb, Asn, av, Ssn, nw, FQn, dv, Psn, yp, xQn, LQn, Yk, q_, Isn, Zk, Mo, Dg, jp, T0, Ja, rP, ew, G_, bv, wv, M0, $g, z_, ny, Fm, xm, U_, Osn, Dsn, $sn, Fsn, W_, xsn, Lsn, Nsn, Bsn, X_, cP;
+ w(ac, "LayeredOptions", 986), b(987, 1, {}, jwn), s.$e = function() {
+ var e;
+ return e = new Qmn(), e;
+ }, s._e = function(e) {
+ }, w(ac, "LayeredOptions/LayeredFactory", 987), b(1372, 1, {}), s.a = 0;
+ var NQn;
+ w(dc, "ElkSpacings/AbstractSpacingsBuilder", 1372), b(779, 1372, {}, AQ);
+ var uP, BQn;
+ w(ac, "LayeredSpacings/LayeredSpacingsBuilder", 779), b(313, 22, { 3: 1, 35: 1, 22: 1, 313: 1, 246: 1, 234: 1 }, s5), s.Kf = function() {
+ return mNn(this);
+ }, s.Xf = function() {
+ return mNn(this);
+ };
+ var V_, Rsn, _sn, sP, Q_, Ksn, Hsn = Ae(ac, "LayeringStrategy", 313, Ie, Hde, xse), RQn;
+ b(378, 22, { 3: 1, 35: 1, 22: 1, 378: 1 }, vO);
+ var J_, qsn, oP, Gsn = Ae(ac, "LongEdgeOrderingStrategy", 378, Ie, kle, Lse), _Qn;
+ b(197, 22, { 3: 1, 35: 1, 22: 1, 197: 1 }, Gj);
+ var Fg, xg, fP, Y_, Z_ = Ae(ac, "NodeFlexibility", 197, Ie, Aae, Nse), KQn;
+ b(315, 22, { 3: 1, 35: 1, 22: 1, 315: 1, 246: 1, 234: 1 }, V9), s.Kf = function() {
+ return iNn(this);
+ }, s.Xf = function() {
+ return iNn(this);
+ };
+ var Lm, nK, eK, Nm, zsn, Usn = Ae(ac, "NodePlacementStrategy", 315, Ie, hde, qse), HQn;
+ b(260, 22, { 3: 1, 35: 1, 22: 1, 260: 1 }, h2);
+ var Wsn, ey, Xsn, Vsn, ty, Qsn, hP, lP, Jsn = Ae(ac, "NodePromotionStrategy", 260, Ie, K0e, Rse), qQn;
+ b(339, 22, { 3: 1, 35: 1, 22: 1, 339: 1 }, mO);
+ var Ysn, Ll, tK, Zsn = Ae(ac, "OrderingStrategy", 339, Ie, Sle, _se), GQn;
+ b(421, 22, { 3: 1, 35: 1, 22: 1, 421: 1 }, JG);
+ var iK, rK, non = Ae(ac, "PortSortingStrategy", 421, Ie, O1e, Kse), zQn;
+ b(452, 22, { 3: 1, 35: 1, 22: 1, 452: 1 }, kO);
+ var Au, Lc, Bm, UQn = Ae(ac, "PortType", 452, Ie, Ale, Bse), WQn;
+ b(375, 22, { 3: 1, 35: 1, 22: 1, 375: 1 }, yO);
+ var eon, cK, ton, ion = Ae(ac, "SelfLoopDistributionStrategy", 375, Ie, Ple, Hse), XQn;
+ b(376, 22, { 3: 1, 35: 1, 22: 1, 376: 1 }, YG);
+ var iy, uK, ron = Ae(ac, "SelfLoopOrderingStrategy", 376, Ie, M1e, Gse), VQn;
+ b(304, 1, { 304: 1 }, HRn), w(ac, "Spacings", 304), b(336, 22, { 3: 1, 35: 1, 22: 1, 336: 1 }, jO);
+ var sK, con, Rm, uon = Ae(ac, "SplineRoutingMode", 336, Ie, Ole, zse), QQn;
+ b(338, 22, { 3: 1, 35: 1, 22: 1, 338: 1 }, EO);
+ var oK, son, oon, fon = Ae(ac, "ValidifyStrategy", 338, Ie, Dle, Use), JQn;
+ b(377, 22, { 3: 1, 35: 1, 22: 1, 377: 1 }, CO);
+ var tw, fK, gv, hon = Ae(ac, "WrappingStrategy", 377, Ie, Ile, Wse), YQn;
+ b(1383, 1, Cc, D4n), s.Yf = function(e) {
+ return u(e, 37), ZQn;
+ }, s.pf = function(e, t) {
+ jje(this, u(e, 37), t);
+ };
+ var ZQn;
+ w(fA, "DepthFirstCycleBreaker", 1383), b(782, 1, Cc, lW), s.Yf = function(e) {
+ return u(e, 37), nJn;
+ }, s.pf = function(e, t) {
+ kTe(this, u(e, 37), t);
+ }, s.Zf = function(e) {
+ return u(un(e, _T(this.d, e.c.length)), 10);
+ };
+ var nJn;
+ w(fA, "GreedyCycleBreaker", 782), b(1386, 782, Cc, Pkn), s.Zf = function(e) {
+ var t, i, r, c;
+ for (c = null, t = nt, r = new E(e); r.a < r.c.c.length; )
+ i = u(y(r), 10), ai(i, (G(), bc)) && u(k(i, bc), 19).a < t && (t = u(k(i, bc), 19).a, c = i);
+ return c || u(un(e, _T(this.d, e.c.length)), 10);
+ }, w(fA, "GreedyModelOrderCycleBreaker", 1386), b(1384, 1, Cc, j4n), s.Yf = function(e) {
+ return u(e, 37), eJn;
+ }, s.pf = function(e, t) {
+ Gje(this, u(e, 37), t);
+ };
+ var eJn;
+ w(fA, "InteractiveCycleBreaker", 1384), b(1385, 1, Cc, E4n), s.Yf = function(e) {
+ return u(e, 37), tJn;
+ }, s.pf = function(e, t) {
+ zje(this, u(e, 37), t);
+ }, s.a = 0, s.b = 0;
+ var tJn;
+ w(fA, "ModelOrderCycleBreaker", 1385), b(1389, 1, Cc, y7n), s.Yf = function(e) {
+ return u(e, 37), iJn;
+ }, s.pf = function(e, t) {
+ CTe(this, u(e, 37), t);
+ };
+ var iJn;
+ w(Fb, "CoffmanGrahamLayerer", 1389), b(1390, 1, lt, e6n), s.ue = function(e, t) {
+ return Y6e(this.a, u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Fb, "CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type", 1390), b(1391, 1, lt, t6n), s.ue = function(e, t) {
+ return Bfe(this.a, u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Fb, "CoffmanGrahamLayerer/lambda$1$Type", 1391), b(1392, 1, Cc, Ewn), s.Yf = function(e) {
+ return u(e, 37), Ze(Ze(Ze(new li(), (Vi(), Vf), (rr(), WR)), Dl, Y4), Kc, J4);
+ }, s.pf = function(e, t) {
+ ACe(this, u(e, 37), t);
+ }, w(Fb, "InteractiveLayerer", 1392), b(569, 1, { 569: 1 }, r9n), s.a = 0, s.c = 0, w(Fb, "InteractiveLayerer/LayerSpan", 569), b(1388, 1, Cc, y4n), s.Yf = function(e) {
+ return u(e, 37), rJn;
+ }, s.pf = function(e, t) {
+ i7e(this, u(e, 37), t);
+ };
+ var rJn;
+ w(Fb, "LongestPathLayerer", 1388), b(1395, 1, Cc, A4n), s.Yf = function(e) {
+ return u(e, 37), Ze(Ze(Ze(new li(), (Vi(), Vf), (rr(), mm)), Dl, Y4), Kc, J4);
+ }, s.pf = function(e, t) {
+ QCe(this, u(e, 37), t);
+ }, s.a = 0, s.b = 0, s.d = 0;
+ var lon, aon;
+ w(Fb, "MinWidthLayerer", 1395), b(1396, 1, lt, i6n), s.ue = function(e, t) {
+ return zbe(this, u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Fb, "MinWidthLayerer/MinOutgoingEdgesComparator", 1396), b(1387, 1, Cc, M4n), s.Yf = function(e) {
+ return u(e, 37), cJn;
+ }, s.pf = function(e, t) {
+ bEe(this, u(e, 37), t);
+ };
+ var cJn;
+ w(Fb, "NetworkSimplexLayerer", 1387), b(1393, 1, Cc, Hjn), s.Yf = function(e) {
+ return u(e, 37), Ze(Ze(Ze(new li(), (Vi(), Vf), (rr(), mm)), Dl, Y4), Kc, J4);
+ }, s.pf = function(e, t) {
+ eCe(this, u(e, 37), t);
+ }, s.d = 0, s.f = 0, s.g = 0, s.i = 0, s.s = 0, s.t = 0, s.u = 0, w(Fb, "StretchWidthLayerer", 1393), b(1394, 1, lt, Cwn), s.ue = function(e, t) {
+ return jde(u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Fb, "StretchWidthLayerer/1", 1394), b(402, 1, Yen), s.Nf = function(e, t, i, r, c, o) {
+ }, s._f = function(e, t, i) {
+ return BBn(this, e, t, i);
+ }, s.Mf = function() {
+ this.g = F(bw, THn, 25, this.d, 15, 1), this.f = F(bw, THn, 25, this.d, 15, 1);
+ }, s.Of = function(e, t) {
+ this.e[e] = F(be, Le, 25, t[e].length, 15, 1);
+ }, s.Pf = function(e, t, i) {
+ var r;
+ r = i[e][t], r.p = t, this.e[e][t] = t;
+ }, s.Qf = function(e, t, i, r) {
+ u(un(r[e][t].j, i), 11).p = this.d++;
+ }, s.b = 0, s.c = 0, s.d = 0, w(gu, "AbstractBarycenterPortDistributor", 402), b(1633, 1, lt, r6n), s.ue = function(e, t) {
+ return wpe(this.a, u(e, 11), u(t, 11));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(gu, "AbstractBarycenterPortDistributor/lambda$0$Type", 1633), b(817, 1, bk, dX), s.Nf = function(e, t, i, r, c, o) {
+ }, s.Pf = function(e, t, i) {
+ }, s.Qf = function(e, t, i, r) {
+ }, s.Lf = function() {
+ return !1;
+ }, s.Mf = function() {
+ this.c = this.e.a, this.g = this.f.g;
+ }, s.Of = function(e, t) {
+ t[e][0].c.p = e;
+ }, s.Rf = function() {
+ return !1;
+ }, s.ag = function(e, t, i, r) {
+ i ? zFn(this, e) : (VFn(this, e, r), t_n(this, e, t)), e.c.length > 1 && (on(sn(k(qi((Ln(0, e.c.length), u(e.c[0], 10))), (nn(), Xb)))) ? dNn(e, this.d, u(this, 660)) : (Pn(), wi(e, this.d)), $On(this.e, e));
+ }, s.Sf = function(e, t, i, r) {
+ var c, o, f, h, l, a, d;
+ for (t != rCn(i, e.length) && (o = e[t - (i ? 1 : -1)], LX(this.f, o, i ? (ur(), Lc) : (ur(), Au))), c = e[t][0], d = !r || c.k == (Qn(), Vt), a = cf(e[t]), this.ag(a, d, !1, i), f = 0, l = new E(a); l.a < l.c.c.length; )
+ h = u(y(l), 10), e[t][f++] = h;
+ return !1;
+ }, s.Tf = function(e, t) {
+ var i, r, c, o, f;
+ for (f = rCn(t, e.length), o = cf(e[f]), this.ag(o, !1, !0, t), i = 0, c = new E(o); c.a < c.c.c.length; )
+ r = u(y(c), 10), e[f][i++] = r;
+ return !1;
+ }, w(gu, "BarycenterHeuristic", 817), b(658, 1, { 658: 1 }, u6n), s.Ib = function() {
+ return "BarycenterState [node=" + this.c + ", summedWeight=" + this.d + ", degree=" + this.b + ", barycenter=" + this.a + ", visited=" + this.e + "]";
+ }, s.b = 0, s.d = 0, s.e = !1;
+ var uJn = w(gu, "BarycenterHeuristic/BarycenterState", 658);
+ b(1802, 1, lt, c6n), s.ue = function(e, t) {
+ return eve(this.a, u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(gu, "BarycenterHeuristic/lambda$0$Type", 1802), b(816, 1, bk, BJ), s.Mf = function() {
+ }, s.Nf = function(e, t, i, r, c, o) {
+ }, s.Qf = function(e, t, i, r) {
+ }, s.Of = function(e, t) {
+ this.a[e] = F(uJn, { 3: 1, 4: 1, 5: 1, 2018: 1 }, 658, t[e].length, 0, 1), this.b[e] = F(sJn, { 3: 1, 4: 1, 5: 1, 2019: 1 }, 233, t[e].length, 0, 1);
+ }, s.Pf = function(e, t, i) {
+ L$n(this, i[e][t], !0);
+ }, s.c = !1, w(gu, "ForsterConstraintResolver", 816), b(233, 1, { 233: 1 }, ZTn, KRn), s.Ib = function() {
+ var e, t;
+ for (t = new X1(), t.a += "[", e = 0; e < this.d.length; e++)
+ De(t, V$n(this.d[e])), Zo(this.g, this.d[0]).a != null && De(De((t.a += "<", t), Tre(Zo(this.g, this.d[0]).a)), ">"), e < this.d.length - 1 && (t.a += Qi);
+ return (t.a += "]", t).a;
+ }, s.a = 0, s.c = 0, s.f = 0;
+ var sJn = w(gu, "ForsterConstraintResolver/ConstraintGroup", 233);
+ b(1797, 1, Yn, o6n), s.td = function(e) {
+ L$n(this.a, u(e, 10), !1);
+ }, w(gu, "ForsterConstraintResolver/lambda$0$Type", 1797), b(214, 1, { 214: 1, 225: 1 }, WRn), s.Nf = function(e, t, i, r, c, o) {
+ }, s.Of = function(e, t) {
+ }, s.Mf = function() {
+ this.r = F(be, Le, 25, this.n, 15, 1);
+ }, s.Pf = function(e, t, i) {
+ var r, c;
+ c = i[e][t], r = c.e, r && W(this.b, r);
+ }, s.Qf = function(e, t, i, r) {
+ ++this.n;
+ }, s.Ib = function() {
+ return i_n(this.e, new hi());
+ }, s.g = !1, s.i = !1, s.n = 0, s.s = !1, w(gu, "GraphInfoHolder", 214), b(1832, 1, bk, ywn), s.Nf = function(e, t, i, r, c, o) {
+ }, s.Of = function(e, t) {
+ }, s.Qf = function(e, t, i, r) {
+ }, s._f = function(e, t, i) {
+ return i && t > 0 ? r$(this.a, e[t - 1], e[t]) : !i && t < e.length - 1 ? r$(this.a, e[t], e[t + 1]) : Y$(this.a, e[t], i ? (J(), Gn) : (J(), Vn)), I9e(this, e, t, i);
+ }, s.Mf = function() {
+ this.d = F(be, Le, 25, this.c, 15, 1), this.a = new b8(this.d);
+ }, s.Pf = function(e, t, i) {
+ var r;
+ r = i[e][t], this.c += r.j.c.length;
+ }, s.c = 0, w(gu, "GreedyPortDistributor", 1832), b(1401, 1, Cc, $4n), s.Yf = function(e) {
+ return sge(u(e, 37));
+ }, s.pf = function(e, t) {
+ IEe(u(e, 37), t);
+ };
+ var oJn;
+ w(gu, "InteractiveCrossingMinimizer", 1401), b(1402, 1, lt, f6n), s.ue = function(e, t) {
+ return B4e(this, u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(gu, "InteractiveCrossingMinimizer/1", 1402), b(507, 1, { 507: 1, 123: 1, 51: 1 }, WI), s.Yf = function(e) {
+ var t;
+ return u(e, 37), t = iE(fJn), Ze(t, (Vi(), Kc), (rr(), kS)), t;
+ }, s.pf = function(e, t) {
+ qke(this, u(e, 37), t);
+ }, s.e = 0;
+ var fJn;
+ w(gu, "LayerSweepCrossingMinimizer", 507), b(1398, 1, Yn, h6n), s.td = function(e) {
+ Pye(this.a, u(e, 214));
+ }, w(gu, "LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type", 1398), b(1399, 1, Yn, l6n), s.td = function(e) {
+ nge(this.a, u(e, 214));
+ }, w(gu, "LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type", 1399), b(1400, 1, Yn, a6n), s.td = function(e) {
+ iRn(this.a, u(e, 214));
+ }, w(gu, "LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type", 1400), b(454, 22, { 3: 1, 35: 1, 22: 1, 454: 1 }, TO);
+ var ry, _m, aP, hJn = Ae(gu, "LayerSweepCrossingMinimizer/CrossMinType", 454, Ie, $le, Xse), lJn;
+ b(1397, 1, Ve, Twn), s.Mb = function(e) {
+ return AV(), u(e, 29).a.c.length == 0;
+ }, w(gu, "LayerSweepCrossingMinimizer/lambda$0$Type", 1397), b(1799, 1, bk, gMn), s.Mf = function() {
+ }, s.Nf = function(e, t, i, r, c, o) {
+ }, s.Qf = function(e, t, i, r) {
+ }, s.Of = function(e, t) {
+ t[e][0].c.p = e, this.b[e] = F(aJn, { 3: 1, 4: 1, 5: 1, 1944: 1 }, 659, t[e].length, 0, 1);
+ }, s.Pf = function(e, t, i) {
+ var r;
+ r = i[e][t], r.p = t, Mt(this.b[e], t, new Mwn());
+ }, w(gu, "LayerSweepTypeDecider", 1799), b(659, 1, { 659: 1 }, Mwn), s.Ib = function() {
+ return "NodeInfo [connectedEdges=" + this.a + ", hierarchicalInfluence=" + this.b + ", randomInfluence=" + this.c + "]";
+ }, s.a = 0, s.b = 0, s.c = 0;
+ var aJn = w(gu, "LayerSweepTypeDecider/NodeInfo", 659);
+ b(1800, 1, Rf, Awn), s.Lb = function(e) {
+ return E5(new uf(u(e, 11).b));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return E5(new uf(u(e, 11).b));
+ }, w(gu, "LayerSweepTypeDecider/lambda$0$Type", 1800), b(1801, 1, Rf, Swn), s.Lb = function(e) {
+ return E5(new uf(u(e, 11).b));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return E5(new uf(u(e, 11).b));
+ }, w(gu, "LayerSweepTypeDecider/lambda$1$Type", 1801), b(1833, 402, Yen, i8n), s.$f = function(e, t, i) {
+ var r, c, o, f, h, l, a, d, g;
+ switch (a = this.g, i.g) {
+ case 1: {
+ for (r = 0, c = 0, l = new E(e.j); l.a < l.c.c.length; )
+ f = u(y(l), 11), f.e.c.length != 0 && (++r, f.j == (J(), Kn) && ++c);
+ for (o = t + c, g = t + r, h = Wd(e, (ur(), Au)).Kc(); h.Ob(); )
+ f = u(h.Pb(), 11), f.j == (J(), Kn) ? (a[f.p] = o, --o) : (a[f.p] = g, --g);
+ return r;
+ }
+ case 2: {
+ for (d = 0, h = Wd(e, (ur(), Lc)).Kc(); h.Ob(); )
+ f = u(h.Pb(), 11), ++d, a[f.p] = t + d;
+ return d;
+ }
+ default:
+ throw T(new F9());
+ }
+ }, w(gu, "LayerTotalPortDistributor", 1833), b(660, 817, { 660: 1, 225: 1 }, YIn), s.ag = function(e, t, i, r) {
+ i ? zFn(this, e) : (VFn(this, e, r), t_n(this, e, t)), e.c.length > 1 && (on(sn(k(qi((Ln(0, e.c.length), u(e.c[0], 10))), (nn(), Xb)))) ? dNn(e, this.d, this) : (Pn(), wi(e, this.d)), on(sn(k(qi((Ln(0, e.c.length), u(e.c[0], 10))), Xb))) || $On(this.e, e));
+ }, w(gu, "ModelOrderBarycenterHeuristic", 660), b(1803, 1, lt, d6n), s.ue = function(e, t) {
+ return L5e(this.a, u(e, 10), u(t, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(gu, "ModelOrderBarycenterHeuristic/lambda$0$Type", 1803), b(1403, 1, Cc, _4n), s.Yf = function(e) {
+ var t;
+ return u(e, 37), t = iE(dJn), Ze(t, (Vi(), Kc), (rr(), kS)), t;
+ }, s.pf = function(e, t) {
+ y1e((u(e, 37), t));
+ };
+ var dJn;
+ w(gu, "NoCrossingMinimizer", 1403), b(796, 402, Yen, yG), s.$f = function(e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v;
+ switch (g = this.g, i.g) {
+ case 1: {
+ for (c = 0, o = 0, d = new E(e.j); d.a < d.c.c.length; )
+ l = u(y(d), 11), l.e.c.length != 0 && (++c, l.j == (J(), Kn) && ++o);
+ for (r = 1 / (c + 1), f = t + o * r, v = t + 1 - r, a = Wd(e, (ur(), Au)).Kc(); a.Ob(); )
+ l = u(a.Pb(), 11), l.j == (J(), Kn) ? (g[l.p] = f, f -= r) : (g[l.p] = v, v -= r);
+ break;
+ }
+ case 2: {
+ for (h = 0, d = new E(e.j); d.a < d.c.c.length; )
+ l = u(y(d), 11), l.g.c.length == 0 || ++h;
+ for (r = 1 / (h + 1), p = t + r, a = Wd(e, (ur(), Lc)).Kc(); a.Ob(); )
+ l = u(a.Pb(), 11), g[l.p] = p, p += r;
+ break;
+ }
+ default:
+ throw T(new Hn("Port type is undefined"));
+ }
+ return 1;
+ }, w(gu, "NodeRelativePortDistributor", 796), b(807, 1, {}, ICn, Cxn), w(gu, "SweepCopy", 807), b(1798, 1, bk, w$n), s.Of = function(e, t) {
+ }, s.Mf = function() {
+ var e;
+ e = F(be, Le, 25, this.f, 15, 1), this.d = new y6n(e), this.a = new b8(e);
+ }, s.Nf = function(e, t, i, r, c, o) {
+ var f;
+ f = u(un(o[e][t].j, i), 11), c.c == f && c.c.i.c == c.d.i.c && ++this.e[e];
+ }, s.Pf = function(e, t, i) {
+ var r;
+ r = i[e][t], this.c[e] = this.c[e] | r.k == (Qn(), Mc);
+ }, s.Qf = function(e, t, i, r) {
+ var c;
+ c = u(un(r[e][t].j, i), 11), c.p = this.f++, c.g.c.length + c.e.c.length > 1 && (c.j == (J(), Vn) ? this.b[e] = !0 : c.j == Gn && e > 0 && (this.b[e - 1] = !0));
+ }, s.f = 0, w(gh, "AllCrossingsCounter", 1798), b(587, 1, {}, tT), s.b = 0, s.d = 0, w(gh, "BinaryIndexedTree", 587), b(524, 1, {}, b8);
+ var don, dP;
+ w(gh, "CrossingsCounter", 524), b(1906, 1, lt, b6n), s.ue = function(e, t) {
+ return Cfe(this.a, u(e, 11), u(t, 11));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(gh, "CrossingsCounter/lambda$0$Type", 1906), b(1907, 1, lt, w6n), s.ue = function(e, t) {
+ return Tfe(this.a, u(e, 11), u(t, 11));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(gh, "CrossingsCounter/lambda$1$Type", 1907), b(1908, 1, lt, g6n), s.ue = function(e, t) {
+ return Mfe(this.a, u(e, 11), u(t, 11));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(gh, "CrossingsCounter/lambda$2$Type", 1908), b(1909, 1, lt, p6n), s.ue = function(e, t) {
+ return Afe(this.a, u(e, 11), u(t, 11));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(gh, "CrossingsCounter/lambda$3$Type", 1909), b(1910, 1, Yn, v6n), s.td = function(e) {
+ o0e(this.a, u(e, 11));
+ }, w(gh, "CrossingsCounter/lambda$4$Type", 1910), b(1911, 1, Ve, m6n), s.Mb = function(e) {
+ return jre(this.a, u(e, 11));
+ }, w(gh, "CrossingsCounter/lambda$5$Type", 1911), b(1912, 1, Yn, k6n), s.td = function(e) {
+ Tkn(this, e);
+ }, w(gh, "CrossingsCounter/lambda$6$Type", 1912), b(1913, 1, Yn, J7n), s.td = function(e) {
+ var t;
+ f3(), hl(this.b, (t = this.a, u(e, 11), t));
+ }, w(gh, "CrossingsCounter/lambda$7$Type", 1913), b(826, 1, Rf, UH), s.Lb = function(e) {
+ return f3(), ai(u(e, 11), (G(), Mu));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return f3(), ai(u(e, 11), (G(), Mu));
+ }, w(gh, "CrossingsCounter/lambda$8$Type", 826), b(1905, 1, {}, y6n), w(gh, "HyperedgeCrossingsCounter", 1905), b(467, 1, { 35: 1, 467: 1 }, Kjn), s.wd = function(e) {
+ return cpe(this, u(e, 467));
+ }, s.b = 0, s.c = 0, s.e = 0, s.f = 0;
+ var eMe = w(gh, "HyperedgeCrossingsCounter/Hyperedge", 467);
+ b(362, 1, { 35: 1, 362: 1 }, nC), s.wd = function(e) {
+ return i9e(this, u(e, 362));
+ }, s.b = 0, s.c = 0;
+ var bJn = w(gh, "HyperedgeCrossingsCounter/HyperedgeCorner", 362);
+ b(523, 22, { 3: 1, 35: 1, 22: 1, 523: 1 }, ZG);
+ var Km, Hm, wJn = Ae(gh, "HyperedgeCrossingsCounter/HyperedgeCorner/Type", 523, Ie, D1e, Vse), gJn;
+ b(1405, 1, Cc, I4n), s.Yf = function(e) {
+ return u(k(u(e, 37), (G(), Ac)), 21).Hc((or(), Ds)) ? pJn : null;
+ }, s.pf = function(e, t) {
+ C4e(this, u(e, 37), t);
+ };
+ var pJn;
+ w(hr, "InteractiveNodePlacer", 1405), b(1406, 1, Cc, P4n), s.Yf = function(e) {
+ return u(k(u(e, 37), (G(), Ac)), 21).Hc((or(), Ds)) ? vJn : null;
+ }, s.pf = function(e, t) {
+ o3e(this, u(e, 37), t);
+ };
+ var vJn, bP, wP;
+ w(hr, "LinearSegmentsNodePlacer", 1406), b(257, 1, { 35: 1, 257: 1 }, Jq), s.wd = function(e) {
+ return Fie(this, u(e, 257));
+ }, s.Fb = function(e) {
+ var t;
+ return I(e, 257) ? (t = u(e, 257), this.b == t.b) : !1;
+ }, s.Hb = function() {
+ return this.b;
+ }, s.Ib = function() {
+ return "ls" + ml(this.e);
+ }, s.a = 0, s.b = 0, s.c = -1, s.d = -1, s.g = 0;
+ var mJn = w(hr, "LinearSegmentsNodePlacer/LinearSegment", 257);
+ b(1408, 1, Cc, bCn), s.Yf = function(e) {
+ return u(k(u(e, 37), (G(), Ac)), 21).Hc((or(), Ds)) ? kJn : null;
+ }, s.pf = function(e, t) {
+ aTe(this, u(e, 37), t);
+ }, s.b = 0, s.g = 0;
+ var kJn;
+ w(hr, "NetworkSimplexPlacer", 1408), b(1427, 1, lt, Pwn), s.ue = function(e, t) {
+ return zc(u(e, 19).a, u(t, 19).a);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(hr, "NetworkSimplexPlacer/0methodref$compare$Type", 1427), b(1429, 1, lt, Iwn), s.ue = function(e, t) {
+ return zc(u(e, 19).a, u(t, 19).a);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(hr, "NetworkSimplexPlacer/1methodref$compare$Type", 1429), b(649, 1, { 649: 1 }, Y7n);
+ var tMe = w(hr, "NetworkSimplexPlacer/EdgeRep", 649);
+ b(401, 1, { 401: 1 }, qW), s.b = !1;
+ var iMe = w(hr, "NetworkSimplexPlacer/NodeRep", 401);
+ b(508, 12, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 12: 1, 14: 1, 15: 1, 54: 1, 508: 1 }, s9n), w(hr, "NetworkSimplexPlacer/Path", 508), b(1409, 1, {}, Own), s.Kb = function(e) {
+ return u(e, 17).d.i.k;
+ }, w(hr, "NetworkSimplexPlacer/Path/lambda$0$Type", 1409), b(1410, 1, Ve, Dwn), s.Mb = function(e) {
+ return u(e, 267) == (Qn(), pi);
+ }, w(hr, "NetworkSimplexPlacer/Path/lambda$1$Type", 1410), b(1411, 1, {}, $wn), s.Kb = function(e) {
+ return u(e, 17).d.i;
+ }, w(hr, "NetworkSimplexPlacer/Path/lambda$2$Type", 1411), b(1412, 1, Ve, j6n), s.Mb = function(e) {
+ return Tjn(h$n(u(e, 10)));
+ }, w(hr, "NetworkSimplexPlacer/Path/lambda$3$Type", 1412), b(1413, 1, Ve, Fwn), s.Mb = function(e) {
+ return dfe(u(e, 11));
+ }, w(hr, "NetworkSimplexPlacer/lambda$0$Type", 1413), b(1414, 1, Yn, Z7n), s.td = function(e) {
+ hce(this.a, this.b, u(e, 11));
+ }, w(hr, "NetworkSimplexPlacer/lambda$1$Type", 1414), b(1423, 1, Yn, E6n), s.td = function(e) {
+ I6e(this.a, u(e, 17));
+ }, w(hr, "NetworkSimplexPlacer/lambda$10$Type", 1423), b(1424, 1, {}, xwn), s.Kb = function(e) {
+ return Zu(), new $n(null, new xn(u(e, 29).a, 16));
+ }, w(hr, "NetworkSimplexPlacer/lambda$11$Type", 1424), b(1425, 1, Yn, C6n), s.td = function(e) {
+ M7e(this.a, u(e, 10));
+ }, w(hr, "NetworkSimplexPlacer/lambda$12$Type", 1425), b(1426, 1, {}, Lwn), s.Kb = function(e) {
+ return Zu(), Q(u(e, 121).e);
+ }, w(hr, "NetworkSimplexPlacer/lambda$13$Type", 1426), b(1428, 1, {}, Nwn), s.Kb = function(e) {
+ return Zu(), Q(u(e, 121).e);
+ }, w(hr, "NetworkSimplexPlacer/lambda$15$Type", 1428), b(1430, 1, Ve, Bwn), s.Mb = function(e) {
+ return Zu(), u(e, 401).c.k == (Qn(), ii);
+ }, w(hr, "NetworkSimplexPlacer/lambda$17$Type", 1430), b(1431, 1, Ve, Rwn), s.Mb = function(e) {
+ return Zu(), u(e, 401).c.j.c.length > 1;
+ }, w(hr, "NetworkSimplexPlacer/lambda$18$Type", 1431), b(1432, 1, Yn, yTn), s.td = function(e) {
+ g2e(this.c, this.b, this.d, this.a, u(e, 401));
+ }, s.c = 0, s.d = 0, w(hr, "NetworkSimplexPlacer/lambda$19$Type", 1432), b(1415, 1, {}, _wn), s.Kb = function(e) {
+ return Zu(), new $n(null, new xn(u(e, 29).a, 16));
+ }, w(hr, "NetworkSimplexPlacer/lambda$2$Type", 1415), b(1433, 1, Yn, T6n), s.td = function(e) {
+ oce(this.a, u(e, 11));
+ }, s.a = 0, w(hr, "NetworkSimplexPlacer/lambda$20$Type", 1433), b(1434, 1, {}, Kwn), s.Kb = function(e) {
+ return Zu(), new $n(null, new xn(u(e, 29).a, 16));
+ }, w(hr, "NetworkSimplexPlacer/lambda$21$Type", 1434), b(1435, 1, Yn, M6n), s.td = function(e) {
+ Ece(this.a, u(e, 10));
+ }, w(hr, "NetworkSimplexPlacer/lambda$22$Type", 1435), b(1436, 1, Ve, Hwn), s.Mb = function(e) {
+ return Tjn(e);
+ }, w(hr, "NetworkSimplexPlacer/lambda$23$Type", 1436), b(1437, 1, {}, qwn), s.Kb = function(e) {
+ return Zu(), new $n(null, new xn(u(e, 29).a, 16));
+ }, w(hr, "NetworkSimplexPlacer/lambda$24$Type", 1437), b(1438, 1, Ve, A6n), s.Mb = function(e) {
+ return Pre(this.a, u(e, 10));
+ }, w(hr, "NetworkSimplexPlacer/lambda$25$Type", 1438), b(1439, 1, Yn, nkn), s.td = function(e) {
+ Y5e(this.a, this.b, u(e, 10));
+ }, w(hr, "NetworkSimplexPlacer/lambda$26$Type", 1439), b(1440, 1, Ve, Gwn), s.Mb = function(e) {
+ return Zu(), !Wi(u(e, 17));
+ }, w(hr, "NetworkSimplexPlacer/lambda$27$Type", 1440), b(1441, 1, Ve, zwn), s.Mb = function(e) {
+ return Zu(), !Wi(u(e, 17));
+ }, w(hr, "NetworkSimplexPlacer/lambda$28$Type", 1441), b(1442, 1, {}, S6n), s.Ce = function(e, t) {
+ return kce(this.a, u(e, 29), u(t, 29));
+ }, w(hr, "NetworkSimplexPlacer/lambda$29$Type", 1442), b(1416, 1, {}, Uwn), s.Kb = function(e) {
+ return Zu(), new $n(null, new Td(new re(ue(ei(u(e, 10)).a.Kc(), new Mn()))));
+ }, w(hr, "NetworkSimplexPlacer/lambda$3$Type", 1416), b(1417, 1, Ve, Wwn), s.Mb = function(e) {
+ return Zu(), sae(u(e, 17));
+ }, w(hr, "NetworkSimplexPlacer/lambda$4$Type", 1417), b(1418, 1, Yn, P6n), s.td = function(e) {
+ Tye(this.a, u(e, 17));
+ }, w(hr, "NetworkSimplexPlacer/lambda$5$Type", 1418), b(1419, 1, {}, Xwn), s.Kb = function(e) {
+ return Zu(), new $n(null, new xn(u(e, 29).a, 16));
+ }, w(hr, "NetworkSimplexPlacer/lambda$6$Type", 1419), b(1420, 1, Ve, Vwn), s.Mb = function(e) {
+ return Zu(), u(e, 10).k == (Qn(), ii);
+ }, w(hr, "NetworkSimplexPlacer/lambda$7$Type", 1420), b(1421, 1, {}, Qwn), s.Kb = function(e) {
+ return Zu(), new $n(null, new Td(new re(ue(_h(u(e, 10)).a.Kc(), new Mn()))));
+ }, w(hr, "NetworkSimplexPlacer/lambda$8$Type", 1421), b(1422, 1, Ve, Jwn), s.Mb = function(e) {
+ return Zu(), sfe(u(e, 17));
+ }, w(hr, "NetworkSimplexPlacer/lambda$9$Type", 1422), b(1404, 1, Cc, U4n), s.Yf = function(e) {
+ return u(k(u(e, 37), (G(), Ac)), 21).Hc((or(), Ds)) ? yJn : null;
+ }, s.pf = function(e, t) {
+ uje(u(e, 37), t);
+ };
+ var yJn;
+ w(hr, "SimpleNodePlacer", 1404), b(180, 1, { 180: 1 }, tg), s.Ib = function() {
+ var e;
+ return e = "", this.c == (Ff(), A0) ? e += Z2 : this.c == I1 && (e += Y2), this.o == (ef(), Ya) ? e += hN : this.o == kf ? e += "UP" : e += "BALANCED", e;
+ }, w(Al, "BKAlignedLayout", 180), b(516, 22, { 3: 1, 35: 1, 22: 1, 516: 1 }, ez);
+ var I1, A0, jJn = Ae(Al, "BKAlignedLayout/HDirection", 516, Ie, F1e, Qse), EJn;
+ b(515, 22, { 3: 1, 35: 1, 22: 1, 515: 1 }, nz);
+ var Ya, kf, CJn = Ae(Al, "BKAlignedLayout/VDirection", 515, Ie, x1e, Jse), TJn;
+ b(1634, 1, {}, ekn), w(Al, "BKAligner", 1634), b(1637, 1, {}, FFn), w(Al, "BKCompactor", 1637), b(654, 1, { 654: 1 }, Ywn), s.a = 0, w(Al, "BKCompactor/ClassEdge", 654), b(458, 1, { 458: 1 }, c9n), s.a = null, s.b = 0, w(Al, "BKCompactor/ClassNode", 458), b(1407, 1, Cc, Akn), s.Yf = function(e) {
+ return u(k(u(e, 37), (G(), Ac)), 21).Hc((or(), Ds)) ? MJn : null;
+ }, s.pf = function(e, t) {
+ ATe(this, u(e, 37), t);
+ }, s.d = !1;
+ var MJn;
+ w(Al, "BKNodePlacer", 1407), b(1635, 1, {}, Zwn), s.d = 0, w(Al, "NeighborhoodInformation", 1635), b(1636, 1, lt, I6n), s.ue = function(e, t) {
+ return F0e(this, u(e, 46), u(t, 46));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Al, "NeighborhoodInformation/NeighborComparator", 1636), b(808, 1, {}), w(Al, "ThresholdStrategy", 808), b(1763, 808, {}, h9n), s.bg = function(e, t, i) {
+ return this.a.o == (ef(), kf) ? xt : Qt;
+ }, s.cg = function() {
+ }, w(Al, "ThresholdStrategy/NullThresholdStrategy", 1763), b(579, 1, { 579: 1 }, tkn), s.c = !1, s.d = !1, w(Al, "ThresholdStrategy/Postprocessable", 579), b(1764, 808, {}, l9n), s.bg = function(e, t, i) {
+ var r, c, o;
+ return c = t == i, r = this.a.a[i.p] == t, c || r ? (o = e, this.a.c == (Ff(), A0) ? (c && (o = hL(this, t, !0)), !isNaN(o) && !isFinite(o) && r && (o = hL(this, i, !1))) : (c && (o = hL(this, t, !0)), !isNaN(o) && !isFinite(o) && r && (o = hL(this, i, !1))), o) : e;
+ }, s.cg = function() {
+ for (var e, t, i, r, c; this.d.b != 0; )
+ c = u(J1e(this.d), 579), r = eRn(this, c), r.a && (e = r.a, i = on(this.a.f[this.a.g[c.b.p].p]), !(!i && !Wi(e) && e.c.i.c == e.d.i.c) && (t = oNn(this, c), t || Nre(this.e, c)));
+ for (; this.e.a.c.length != 0; )
+ oNn(this, u(vDn(this.e), 579));
+ }, w(Al, "ThresholdStrategy/SimpleThresholdStrategy", 1764), b(635, 1, { 635: 1, 246: 1, 234: 1 }, ngn), s.Kf = function() {
+ return SOn(this);
+ }, s.Xf = function() {
+ return SOn(this);
+ };
+ var hK;
+ w(uB, "EdgeRouterFactory", 635), b(1458, 1, Cc, W4n), s.Yf = function(e) {
+ return c7e(u(e, 37));
+ }, s.pf = function(e, t) {
+ dje(u(e, 37), t);
+ };
+ var AJn, SJn, PJn, IJn, OJn, bon, DJn, $Jn;
+ w(uB, "OrthogonalEdgeRouter", 1458), b(1451, 1, Cc, Skn), s.Yf = function(e) {
+ return P4e(u(e, 37));
+ }, s.pf = function(e, t) {
+ $Ce(this, u(e, 37), t);
+ };
+ var FJn, xJn, LJn, NJn, cy, BJn;
+ w(uB, "PolylineEdgeRouter", 1451), b(1452, 1, Rf, egn), s.Lb = function(e) {
+ return IV(u(e, 10));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.Mb = function(e) {
+ return IV(u(e, 10));
+ }, w(uB, "PolylineEdgeRouter/1", 1452), b(1809, 1, Ve, tgn), s.Mb = function(e) {
+ return u(e, 129).c == (No(), Nl);
+ }, w(zo, "HyperEdgeCycleDetector/lambda$0$Type", 1809), b(1810, 1, {}, ign), s.Ge = function(e) {
+ return u(e, 129).d;
+ }, w(zo, "HyperEdgeCycleDetector/lambda$1$Type", 1810), b(1811, 1, Ve, rgn), s.Mb = function(e) {
+ return u(e, 129).c == (No(), Nl);
+ }, w(zo, "HyperEdgeCycleDetector/lambda$2$Type", 1811), b(1812, 1, {}, cgn), s.Ge = function(e) {
+ return u(e, 129).d;
+ }, w(zo, "HyperEdgeCycleDetector/lambda$3$Type", 1812), b(1813, 1, {}, ugn), s.Ge = function(e) {
+ return u(e, 129).d;
+ }, w(zo, "HyperEdgeCycleDetector/lambda$4$Type", 1813), b(1814, 1, {}, sgn), s.Ge = function(e) {
+ return u(e, 129).d;
+ }, w(zo, "HyperEdgeCycleDetector/lambda$5$Type", 1814), b(112, 1, { 35: 1, 112: 1 }, n7), s.wd = function(e) {
+ return xie(this, u(e, 112));
+ }, s.Fb = function(e) {
+ var t;
+ return I(e, 112) ? (t = u(e, 112), this.g == t.g) : !1;
+ }, s.Hb = function() {
+ return this.g;
+ }, s.Ib = function() {
+ var e, t, i, r;
+ for (e = new Ju("{"), r = new E(this.n); r.a < r.c.c.length; )
+ i = u(y(r), 11), t = E7(i.i), t == null && (t = "n" + tEn(i.i)), e.a += "" + t, r.a < r.c.c.length && (e.a += ",");
+ return e.a += "}", e.a;
+ }, s.a = 0, s.b = 0, s.c = NaN, s.d = 0, s.g = 0, s.i = 0, s.o = 0, s.s = NaN, w(zo, "HyperEdgeSegment", 112), b(129, 1, { 129: 1 }, da), s.Ib = function() {
+ return this.a + "->" + this.b + " (" + Uce(this.c) + ")";
+ }, s.d = 0, w(zo, "HyperEdgeSegmentDependency", 129), b(520, 22, { 3: 1, 35: 1, 22: 1, 520: 1 }, tz);
+ var Nl, iw, RJn = Ae(zo, "HyperEdgeSegmentDependency/DependencyType", 520, Ie, $1e, Yse), _Jn;
+ b(1815, 1, {}, O6n), w(zo, "HyperEdgeSegmentSplitter", 1815), b(1816, 1, {}, o8n), s.a = 0, s.b = 0, w(zo, "HyperEdgeSegmentSplitter/AreaRating", 1816), b(329, 1, { 329: 1 }, hD), s.a = 0, s.b = 0, s.c = 0, w(zo, "HyperEdgeSegmentSplitter/FreeArea", 329), b(1817, 1, lt, wgn), s.ue = function(e, t) {
+ return Hue(u(e, 112), u(t, 112));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(zo, "HyperEdgeSegmentSplitter/lambda$0$Type", 1817), b(1818, 1, Yn, jTn), s.td = function(e) {
+ Wae(this.a, this.d, this.c, this.b, u(e, 112));
+ }, s.b = 0, w(zo, "HyperEdgeSegmentSplitter/lambda$1$Type", 1818), b(1819, 1, {}, ggn), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 112).e, 16));
+ }, w(zo, "HyperEdgeSegmentSplitter/lambda$2$Type", 1819), b(1820, 1, {}, pgn), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 112).j, 16));
+ }, w(zo, "HyperEdgeSegmentSplitter/lambda$3$Type", 1820), b(1821, 1, {}, vgn), s.Fe = function(e) {
+ return K(Y(e));
+ }, w(zo, "HyperEdgeSegmentSplitter/lambda$4$Type", 1821), b(655, 1, {}, FD), s.a = 0, s.b = 0, s.c = 0, w(zo, "OrthogonalRoutingGenerator", 655), b(1638, 1, {}, mgn), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 112).e, 16));
+ }, w(zo, "OrthogonalRoutingGenerator/lambda$0$Type", 1638), b(1639, 1, {}, kgn), s.Kb = function(e) {
+ return new $n(null, new xn(u(e, 112).j, 16));
+ }, w(zo, "OrthogonalRoutingGenerator/lambda$1$Type", 1639), b(661, 1, {}), w(sB, "BaseRoutingDirectionStrategy", 661), b(1807, 661, {}, a9n), s.dg = function(e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C;
+ if (!(e.r && !e.q))
+ for (d = t + e.o * i, a = new E(e.n); a.a < a.c.c.length; )
+ for (l = u(y(a), 11), g = Gr(A(M(di, 1), q, 8, 0, [l.i.n, l.n, l.a])).a, h = new E(l.g); h.a < h.c.c.length; )
+ f = u(y(h), 17), Wi(f) || (m = f.d, C = Gr(A(M(di, 1), q, 8, 0, [m.i.n, m.n, m.a])).a, j.Math.abs(g - C) > Kf && (o = d, c = e, r = new fn(g, o), Ke(f.a, r), e0(this, f, c, r, !1), p = e.r, p && (v = K(Y(qo(p.e, 0))), r = new fn(v, o), Ke(f.a, r), e0(this, f, c, r, !1), o = t + p.o * i, c = p, r = new fn(v, o), Ke(f.a, r), e0(this, f, c, r, !1)), r = new fn(C, o), Ke(f.a, r), e0(this, f, c, r, !1)));
+ }, s.eg = function(e) {
+ return e.i.n.a + e.n.a + e.a.a;
+ }, s.fg = function() {
+ return J(), ae;
+ }, s.gg = function() {
+ return J(), Kn;
+ }, w(sB, "NorthToSouthRoutingStrategy", 1807), b(1808, 661, {}, d9n), s.dg = function(e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C;
+ if (!(e.r && !e.q))
+ for (d = t - e.o * i, a = new E(e.n); a.a < a.c.c.length; )
+ for (l = u(y(a), 11), g = Gr(A(M(di, 1), q, 8, 0, [l.i.n, l.n, l.a])).a, h = new E(l.g); h.a < h.c.c.length; )
+ f = u(y(h), 17), Wi(f) || (m = f.d, C = Gr(A(M(di, 1), q, 8, 0, [m.i.n, m.n, m.a])).a, j.Math.abs(g - C) > Kf && (o = d, c = e, r = new fn(g, o), Ke(f.a, r), e0(this, f, c, r, !1), p = e.r, p && (v = K(Y(qo(p.e, 0))), r = new fn(v, o), Ke(f.a, r), e0(this, f, c, r, !1), o = t - p.o * i, c = p, r = new fn(v, o), Ke(f.a, r), e0(this, f, c, r, !1)), r = new fn(C, o), Ke(f.a, r), e0(this, f, c, r, !1)));
+ }, s.eg = function(e) {
+ return e.i.n.a + e.n.a + e.a.a;
+ }, s.fg = function() {
+ return J(), Kn;
+ }, s.gg = function() {
+ return J(), ae;
+ }, w(sB, "SouthToNorthRoutingStrategy", 1808), b(1806, 661, {}, b9n), s.dg = function(e, t, i) {
+ var r, c, o, f, h, l, a, d, g, p, v, m, C;
+ if (!(e.r && !e.q))
+ for (d = t + e.o * i, a = new E(e.n); a.a < a.c.c.length; )
+ for (l = u(y(a), 11), g = Gr(A(M(di, 1), q, 8, 0, [l.i.n, l.n, l.a])).b, h = new E(l.g); h.a < h.c.c.length; )
+ f = u(y(h), 17), Wi(f) || (m = f.d, C = Gr(A(M(di, 1), q, 8, 0, [m.i.n, m.n, m.a])).b, j.Math.abs(g - C) > Kf && (o = d, c = e, r = new fn(o, g), Ke(f.a, r), e0(this, f, c, r, !0), p = e.r, p && (v = K(Y(qo(p.e, 0))), r = new fn(o, v), Ke(f.a, r), e0(this, f, c, r, !0), o = t + p.o * i, c = p, r = new fn(o, v), Ke(f.a, r), e0(this, f, c, r, !0)), r = new fn(o, C), Ke(f.a, r), e0(this, f, c, r, !0)));
+ }, s.eg = function(e) {
+ return e.i.n.b + e.n.b + e.a.b;
+ }, s.fg = function() {
+ return J(), Vn;
+ }, s.gg = function() {
+ return J(), Gn;
+ }, w(sB, "WestToEastRoutingStrategy", 1806), b(813, 1, {}, jZ), s.Ib = function() {
+ return ml(this.a);
+ }, s.b = 0, s.c = !1, s.d = !1, s.f = 0, w(xb, "NubSpline", 813), b(407, 1, { 407: 1 }, NNn, tMn), w(xb, "NubSpline/PolarCP", 407), b(1453, 1, Cc, MFn), s.Yf = function(e) {
+ return vve(u(e, 37));
+ }, s.pf = function(e, t) {
+ YCe(this, u(e, 37), t);
+ };
+ var KJn, HJn, qJn, GJn, zJn;
+ w(xb, "SplineEdgeRouter", 1453), b(268, 1, { 268: 1 }, MC), s.Ib = function() {
+ return this.a + " ->(" + this.c + ") " + this.b;
+ }, s.c = 0, w(xb, "SplineEdgeRouter/Dependency", 268), b(455, 22, { 3: 1, 35: 1, 22: 1, 455: 1 }, iz);
+ var Bl, Lg, UJn = Ae(xb, "SplineEdgeRouter/SideToProcess", 455, Ie, L1e, Zse), WJn;
+ b(1454, 1, Ve, dgn), s.Mb = function(e) {
+ return C6(), !u(e, 128).o;
+ }, w(xb, "SplineEdgeRouter/lambda$0$Type", 1454), b(1455, 1, {}, agn), s.Ge = function(e) {
+ return C6(), u(e, 128).v + 1;
+ }, w(xb, "SplineEdgeRouter/lambda$1$Type", 1455), b(1456, 1, Yn, ikn), s.td = function(e) {
+ ffe(this.a, this.b, u(e, 46));
+ }, w(xb, "SplineEdgeRouter/lambda$2$Type", 1456), b(1457, 1, Yn, rkn), s.td = function(e) {
+ hfe(this.a, this.b, u(e, 46));
+ }, w(xb, "SplineEdgeRouter/lambda$3$Type", 1457), b(128, 1, { 35: 1, 128: 1 }, nLn, SZ), s.wd = function(e) {
+ return Lie(this, u(e, 128));
+ }, s.b = 0, s.e = !1, s.f = 0, s.g = 0, s.j = !1, s.k = !1, s.n = 0, s.o = !1, s.p = !1, s.q = !1, s.s = 0, s.u = 0, s.v = 0, s.F = 0, w(xb, "SplineSegment", 128), b(459, 1, { 459: 1 }, bgn), s.a = 0, s.b = !1, s.c = !1, s.d = !1, s.e = !1, s.f = 0, w(xb, "SplineSegment/EdgeInformation", 459), b(1234, 1, {}, ogn), w(Q6, Enn, 1234), b(1235, 1, lt, fgn), s.ue = function(e, t) {
+ return U6e(u(e, 135), u(t, 135));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(Q6, BKn, 1235), b(1233, 1, {}, C8n), w(Q6, "MrTree", 1233), b(393, 22, { 3: 1, 35: 1, 22: 1, 393: 1, 246: 1, 234: 1 }, zj), s.Kf = function() {
+ return TLn(this);
+ }, s.Xf = function() {
+ return TLn(this);
+ };
+ var gP, qm, uy, Gm, won = Ae(Q6, "TreeLayoutPhases", 393, Ie, Sae, noe), XJn;
+ b(1130, 209, La, Gjn), s.Ze = function(e, t) {
+ var i, r, c, o, f, h, l;
+ for (on(sn(hn(e, (n0(), yon)))) || oC((i = new O9((H0(), new B0(e))), i)), f = (h = new AC(), Pr(h, e), H(h, (uc(), Wm), e), l = new we(), Nke(e, h, l), nye(e, h, l), h), o = Wke(this.a, f), c = new E(o); c.a < c.c.c.length; )
+ r = u(y(c), 135), dve(this.b, r, yc(t, 1 / o.c.length));
+ f = MTe(o), YEe(f);
+ }, w(Q6, "TreeLayoutProvider", 1130), b(1847, 1, lh, hgn), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ return Pn(), Yp(), W4;
+ }, w(Q6, "TreeUtil/1", 1847), b(1848, 1, lh, lgn), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ return Pn(), Yp(), W4;
+ }, w(Q6, "TreeUtil/2", 1848), b(502, 134, { 3: 1, 502: 1, 94: 1, 134: 1 }), s.g = 0, w(J6, "TGraphElement", 502), b(188, 502, { 3: 1, 188: 1, 502: 1, 94: 1, 134: 1 }, UW), s.Ib = function() {
+ return this.b && this.c ? wC(this.b) + "->" + wC(this.c) : "e_" + mt(this);
+ }, w(J6, "TEdge", 188), b(135, 134, { 3: 1, 135: 1, 94: 1, 134: 1 }, AC), s.Ib = function() {
+ var e, t, i, r, c;
+ for (c = null, r = _e(this.b, 0); r.b != r.d.c; )
+ i = u(Re(r), 86), c += (i.c == null || i.c.length == 0 ? "n_" + i.g : "n_" + i.c) + `
+`;
+ for (t = _e(this.a, 0); t.b != t.d.c; )
+ e = u(Re(t), 188), c += (e.b && e.c ? wC(e.b) + "->" + wC(e.c) : "e_" + mt(e)) + `
+`;
+ return c;
+ };
+ var rMe = w(J6, "TGraph", 135);
+ b(633, 502, { 3: 1, 502: 1, 633: 1, 94: 1, 134: 1 }), w(J6, "TShape", 633), b(86, 633, { 3: 1, 502: 1, 86: 1, 633: 1, 94: 1, 134: 1 }, hF), s.Ib = function() {
+ return wC(this);
+ };
+ var cMe = w(J6, "TNode", 86);
+ b(255, 1, lh, W1), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ var e;
+ return e = _e(this.a.d, 0), new e2(e);
+ }, w(J6, "TNode/2", 255), b(358, 1, Ei, e2), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return u(Re(this.a), 188).c;
+ }, s.Ob = function() {
+ return yj(this.a);
+ }, s.Qb = function() {
+ HC(this.a);
+ }, w(J6, "TNode/2/1", 358), b(1840, 1, Lt, qjn), s.pf = function(e, t) {
+ gye(this, u(e, 135), t);
+ }, w(up, "FanProcessor", 1840), b(327, 22, { 3: 1, 35: 1, 22: 1, 327: 1, 234: 1 }, o5), s.Kf = function() {
+ switch (this.g) {
+ case 0:
+ return new P9n();
+ case 1:
+ return new qjn();
+ case 2:
+ return new Egn();
+ case 3:
+ return new ygn();
+ case 4:
+ return new Tgn();
+ case 5:
+ return new Mgn();
+ default:
+ throw T(new Hn(AN + (this.f != null ? this.f : "" + this.g)));
+ }
+ };
+ var lK, aK, dK, bK, wK, pP, VJn = Ae(up, Fnn, 327, Ie, Gde, eoe), QJn;
+ b(1843, 1, Lt, ygn), s.pf = function(e, t) {
+ Yme(this, u(e, 135), t);
+ }, s.a = 0, w(up, "LevelHeightProcessor", 1843), b(1844, 1, lh, jgn), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ return Pn(), Yp(), W4;
+ }, w(up, "LevelHeightProcessor/1", 1844), b(1841, 1, Lt, Egn), s.pf = function(e, t) {
+ c6e(this, u(e, 135), t);
+ }, s.a = 0, w(up, "NeighborsProcessor", 1841), b(1842, 1, lh, Cgn), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ return Pn(), Yp(), W4;
+ }, w(up, "NeighborsProcessor/1", 1842), b(1845, 1, Lt, Tgn), s.pf = function(e, t) {
+ Jme(this, u(e, 135), t);
+ }, s.a = 0, w(up, "NodePositionProcessor", 1845), b(1839, 1, Lt, P9n), s.pf = function(e, t) {
+ Eje(this, u(e, 135));
+ }, w(up, "RootProcessor", 1839), b(1846, 1, Lt, Mgn), s.pf = function(e, t) {
+ Dge(u(e, 135));
+ }, w(up, "Untreeifyer", 1846);
+ var sy, zm, JJn, gK, vP, Um, pK, mP, kP, pv, Wm, yP, O1, gon, YJn, vK, rw, mK, pon;
+ b(851, 1, Gs, z4n), s.Qe = function(e) {
+ En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Zen), ""), "Weighting of Nodes"), "Which weighting to use when computing a node order."), mon), (y1(), Bt)), Mon), Cn((Ho(), Xn))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ntn), ""), "Search Order"), "Which search order to use when computing a spanning tree."), von), Bt), Son), Cn(Xn)))), JRn((new G4n(), e));
+ };
+ var ZJn, von, nYn, mon;
+ w(lA, "MrTreeMetaDataProvider", 851), b(994, 1, Gs, G4n), s.Qe = function(e) {
+ JRn(e);
+ };
+ var eYn, kon, tYn, iYn, rYn, cYn, yon, uYn, jon, sYn, jP, Eon, oYn, Con, fYn;
+ w(lA, "MrTreeOptions", 994), b(995, 1, {}, Agn), s.$e = function() {
+ var e;
+ return e = new Gjn(), e;
+ }, s._e = function(e) {
+ }, w(lA, "MrTreeOptions/MrtreeFactory", 995), b(480, 22, { 3: 1, 35: 1, 22: 1, 480: 1 }, rz);
+ var kK, Ton, Mon = Ae(lA, "OrderWeighting", 480, Ie, B1e, toe), hYn;
+ b(425, 22, { 3: 1, 35: 1, 22: 1, 425: 1 }, cz);
+ var Aon, yK, Son = Ae(lA, "TreeifyingOrder", 425, Ie, N1e, roe), lYn;
+ b(1459, 1, Cc, x4n), s.Yf = function(e) {
+ return u(e, 135), aYn;
+ }, s.pf = function(e, t) {
+ Obe(this, u(e, 135), t);
+ };
+ var aYn;
+ w("org.eclipse.elk.alg.mrtree.p1treeify", "DFSTreeifyer", 1459), b(1460, 1, Cc, L4n), s.Yf = function(e) {
+ return u(e, 135), dYn;
+ }, s.pf = function(e, t) {
+ w6e(this, u(e, 135), t);
+ };
+ var dYn;
+ w("org.eclipse.elk.alg.mrtree.p2order", "NodeOrderer", 1460), b(1461, 1, Cc, F4n), s.Yf = function(e) {
+ return u(e, 135), bYn;
+ }, s.pf = function(e, t) {
+ D7e(this, u(e, 135), t);
+ }, s.a = 0;
+ var bYn;
+ w("org.eclipse.elk.alg.mrtree.p3place", "NodePlacer", 1461), b(1462, 1, Cc, N4n), s.Yf = function(e) {
+ return u(e, 135), wYn;
+ }, s.pf = function(e, t) {
+ r4e(u(e, 135), t);
+ };
+ var wYn;
+ w("org.eclipse.elk.alg.mrtree.p4route", "EdgeRouter", 1462);
+ var Xm;
+ b(495, 22, { 3: 1, 35: 1, 22: 1, 495: 1, 246: 1, 234: 1 }, uz), s.Kf = function() {
+ return i$n(this);
+ }, s.Xf = function() {
+ return i$n(this);
+ };
+ var EP, vv, Pon = Ae(etn, "RadialLayoutPhases", 495, Ie, R1e, ioe), gYn;
+ b(1131, 209, La, E8n), s.Ze = function(e, t) {
+ var i, r, c, o, f, h;
+ if (i = uLn(this, e), le(t, "Radial layout", i.c.length), on(sn(hn(e, (pb(), Ron)))) || oC((r = new O9((H0(), new B0(e))), r)), h = yve(e), gr(e, (C5(), Xm), h), !h)
+ throw T(new Hn("The given graph is not a tree!"));
+ for (c = K(Y(hn(e, MP))), c == 0 && (c = kLn(e)), gr(e, MP, c), f = new E(uLn(this, e)); f.a < f.c.c.length; )
+ o = u(y(f), 51), o.pf(e, yc(t, 1));
+ ce(t);
+ }, w(etn, "RadialLayoutProvider", 1131), b(549, 1, lt, jj), s.ue = function(e, t) {
+ return W7e(this.a, this.b, u(e, 33), u(t, 33));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, s.a = 0, s.b = 0, w(etn, "RadialUtil/lambda$0$Type", 549), b(1375, 1, Lt, Pgn), s.pf = function(e, t) {
+ aEe(u(e, 33), t);
+ }, w(DHn, "CalculateGraphSize", 1375), b(442, 22, { 3: 1, 35: 1, 22: 1, 442: 1, 234: 1 }, MO), s.Kf = function() {
+ switch (this.g) {
+ case 0:
+ return new Fgn();
+ case 1:
+ return new Sgn();
+ case 2:
+ return new Pgn();
+ default:
+ throw T(new Hn(AN + (this.f != null ? this.f : "" + this.g)));
+ }
+ };
+ var jK, EK, CK, pYn = Ae(DHn, Fnn, 442, Ie, Fle, coe), vYn;
+ b(645, 1, {}), s.e = 1, s.g = 0, w(hB, "AbstractRadiusExtensionCompaction", 645), b(1772, 645, {}, yjn), s.hg = function(e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (this.c = u(hn(e, (C5(), Xm)), 33), gte(this, this.c), this.d = XF(u(hn(e, (pb(), oy)), 293)), l = u(hn(e, MK), 19), l && Ivn(this, l.a), h = Y(hn(e, (Xe(), td))), dq(this, (_n(h), h)), a = Tb(this.c), this.d && this.d.lg(a), oke(this, a), f = new Ku(A(M(Pt, 1), $Hn, 33, 0, [this.c])), i = 0; i < 2; i++)
+ for (t = 0; t < a.c.length; t++)
+ c = new Ku(A(M(Pt, 1), $Hn, 33, 0, [(Ln(t, a.c.length), u(a.c[t], 33))])), o = t < a.c.length - 1 ? (Ln(t + 1, a.c.length), u(a.c[t + 1], 33)) : (Ln(0, a.c.length), u(a.c[0], 33)), r = t == 0 ? u(un(a, a.c.length - 1), 33) : (Ln(t - 1, a.c.length), u(a.c[t - 1], 33)), dxn(this, (Ln(t, a.c.length), u(a.c[t], 33), f), r, o, c);
+ }, w(hB, "AnnulusWedgeCompaction", 1772), b(1374, 1, Lt, Sgn), s.pf = function(e, t) {
+ T4e(u(e, 33), t);
+ }, w(hB, "GeneralCompactor", 1374), b(1771, 645, {}, Ign), s.hg = function(e) {
+ var t, i, r, c;
+ i = u(hn(e, (C5(), Xm)), 33), this.f = i, this.b = XF(u(hn(e, (pb(), oy)), 293)), c = u(hn(e, MK), 19), c && Ivn(this, c.a), r = Y(hn(e, (Xe(), td))), dq(this, (_n(r), r)), t = Tb(i), this.b && this.b.lg(t), Gxn(this, t);
+ }, s.a = 0, w(hB, "RadialCompaction", 1771), b(1779, 1, {}, Ogn), s.ig = function(e) {
+ var t, i, r, c, o, f;
+ for (this.a = e, t = 0, f = Tb(e), r = 0, o = new E(f); o.a < o.c.c.length; )
+ for (c = u(y(o), 33), ++r, i = r; i < f.c.length; i++)
+ jye(this, c, (Ln(i, f.c.length), u(f.c[i], 33))) && (t += 1);
+ return t;
+ }, w(itn, "CrossingMinimizationPosition", 1779), b(1777, 1, {}, Dgn), s.ig = function(e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v;
+ for (r = 0, i = new re(ue(qh(e).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 79), h = Ir(u(D((!t.c && (t.c = new Fn(he, t, 5, 8)), t.c), 0), 82)), a = h.i + h.g / 2, d = h.j + h.f / 2, c = e.i + e.g / 2, o = e.j + e.f / 2, g = new Li(), g.a = a - c, g.b = d - o, f = new fn(g.a, g.b), u4(f, e.g, e.f), g.a -= f.a, g.b -= f.b, c = a - g.a, o = d - g.b, l = new fn(g.a, g.b), u4(l, h.g, h.f), g.a -= l.a, g.b -= l.b, a = c + g.a, d = o + g.b, p = a - c, v = d - o, r += j.Math.sqrt(p * p + v * v);
+ return r;
+ }, w(itn, "EdgeLengthOptimization", 1777), b(1778, 1, {}, $gn), s.ig = function(e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ for (r = 0, i = new re(ue(qh(e).a.Kc(), new Mn())); Se(i); )
+ t = u(ve(i), 79), h = Ir(u(D((!t.c && (t.c = new Fn(he, t, 5, 8)), t.c), 0), 82)), l = h.i + h.g / 2, a = h.j + h.f / 2, c = u(hn(h, (Xe(), Mp)), 8), o = e.i + c.a + e.g / 2, f = e.j + c.b + e.f, d = l - o, g = a - f, r += j.Math.sqrt(d * d + g * g);
+ return r;
+ }, w(itn, "EdgeLengthPositionOptimization", 1778), b(1373, 645, Lt, Fgn), s.pf = function(e, t) {
+ P9e(this, u(e, 33), t);
+ }, w("org.eclipse.elk.alg.radial.intermediate.overlaps", "RadiusExtensionOverlapRemoval", 1373), b(426, 22, { 3: 1, 35: 1, 22: 1, 426: 1 }, sz);
+ var Ion, TK, Oon = Ae(Y6, "AnnulusWedgeCriteria", 426, Ie, _1e, uoe), mYn;
+ b(380, 22, { 3: 1, 35: 1, 22: 1, 380: 1 }, AO);
+ var CP, Don, $on, Fon = Ae(Y6, gnn, 380, Ie, xle, soe), kYn;
+ b(852, 1, Gs, B4n), s.Qe = function(e) {
+ En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), rtn), ""), "Order ID"), "The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."), Q(0)), (y1(), oc)), Ui), Cn((Ho(), vi))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ctn), ""), "Radius"), "The radius option can be used to set the initial radius for the radial layouter."), 0), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), aB), ""), "Compaction"), "With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."), xon), Bt), Fon), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), dB), ""), "Compaction Step Size"), "Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."), Q(1)), oc), Ui), Cn(Xn)))), Mi(e, dB, aB, null), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), utn), ""), "Sorter"), "Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."), Non), Bt), Xon), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), stn), ""), "Annulus Wedge Criteria"), "Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."), Bon), Bt), Oon), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), otn), ""), "Translation Optimization"), "Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."), Lon), Bt), zon), Cn(Xn)))), a_n((new R4n(), e));
+ };
+ var yYn, jYn, xon, EYn, Lon, CYn, TYn, MYn, Non, AYn, Bon;
+ w(Y6, "RadialMetaDataProvider", 852), b(996, 1, Gs, R4n), s.Qe = function(e) {
+ a_n(e);
+ };
+ var MK, AK, SYn, PYn, IYn, OYn, Ron, _on, TP, DYn, $Yn, MP, oy, FYn, Kon;
+ w(Y6, "RadialOptions", 996), b(997, 1, {}, xgn), s.$e = function() {
+ var e;
+ return e = new E8n(), e;
+ }, s._e = function(e) {
+ }, w(Y6, "RadialOptions/RadialFactory", 997), b(340, 22, { 3: 1, 35: 1, 22: 1, 340: 1 }, Uj);
+ var Hon, qon, Gon, SK, zon = Ae(Y6, "RadialTranslationStrategy", 340, Ie, Pae, ooe), xYn;
+ b(293, 22, { 3: 1, 35: 1, 22: 1, 293: 1 }, SO);
+ var Uon, PK, Won, Xon = Ae(Y6, "SortingStrategy", 293, Ie, Nle, foe), LYn;
+ b(1449, 1, Cc, Lgn), s.Yf = function(e) {
+ return u(e, 33), null;
+ }, s.pf = function(e, t) {
+ B9e(this, u(e, 33), t);
+ }, s.c = 0, w("org.eclipse.elk.alg.radial.p1position", "EadesRadial", 1449), b(1775, 1, {}, Ngn), s.jg = function(e) {
+ return Y$n(e);
+ }, w(FHn, "AnnulusWedgeByLeafs", 1775), b(1776, 1, {}, Bgn), s.jg = function(e) {
+ return cxn(this, e);
+ }, w(FHn, "AnnulusWedgeByNodeSpace", 1776), b(1450, 1, Cc, Rgn), s.Yf = function(e) {
+ return u(e, 33), null;
+ }, s.pf = function(e, t) {
+ Q4e(this, u(e, 33), t);
+ }, w("org.eclipse.elk.alg.radial.p2routing", "StraightLineEdgeRouter", 1450), b(811, 1, {}, oG), s.kg = function(e) {
+ }, s.lg = function(e) {
+ Rmn(this, e);
+ }, w(ftn, "IDSorter", 811), b(1774, 1, lt, _gn), s.ue = function(e, t) {
+ return kbe(u(e, 33), u(t, 33));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(ftn, "IDSorter/lambda$0$Type", 1774), b(1773, 1, {}, tOn), s.kg = function(e) {
+ fAn(this, e);
+ }, s.lg = function(e) {
+ var t;
+ e.dc() || (this.e || (t = cCn(u(e.Xb(0), 33)), fAn(this, t)), Rmn(this.e, e));
+ }, w(ftn, "PolarCoordinateSorter", 1773), b(1136, 209, La, Kgn), s.Ze = function(e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn, zn, Wn, se;
+ if (le(t, "Rectangle Packing", 1), t.n && t.n && e && go(t, po(e), (Xu(), ws)), i = K(Y(hn(e, (Bx(), UYn)))), C = u(hn(e, sfn), 381), O = on(sn(hn(e, rfn))), en = on(sn(hn(e, ufn))), g = on(sn(hn(e, efn))), ln = u(hn(e, ZYn), 116), U = K(Y(hn(e, eZn))), c = on(sn(hn(e, ffn))), p = on(sn(hn(e, tfn))), $ = on(sn(hn(e, ifn))), se = K(Y(hn(e, hfn))), zn = (!e.a && (e.a = new V(Pt, e, 10, 11)), e.a), eOn(zn), $) {
+ for (m = new X(), l = new ie(zn); l.e != l.i.gc(); )
+ f = u(oe(l), 33), ga(f, fy) && (m.c[m.c.length] = f);
+ for (a = new E(m); a.a < a.c.c.length; )
+ f = u(y(a), 33), BC(zn, f);
+ for (Pn(), wi(m, new Hgn()), d = new E(m); d.a < d.c.c.length; )
+ f = u(y(d), 33), wn = u(hn(f, fy), 19).a, wn = j.Math.min(wn, zn.i), s6(zn, wn, f);
+ for (S = 0, h = new ie(zn); h.e != h.i.gc(); )
+ f = u(oe(h), 33), gr(f, nfn, Q(S)), ++S;
+ }
+ _ = sY(e), _.a -= ln.b + ln.c, _.b -= ln.d + ln.a, x = _.a, se < 0 || se < _.a ? (v = new vEn(i, C, O), o = wke(v, zn, U, ln), t.n && t.n && e && go(t, po(e), (Xu(), ws))) : o = new bD(i, se, 0, (w4(), Jm)), _.a += ln.b + ln.c, _.b += ln.d + ln.a, en || (eOn(zn), Wn = new PAn(i, g, p, c, U), x = j.Math.max(_.a, o.c), o = WEe(Wn, zn, x, _, t, e, ln)), Ube(zn, ln), i0(e, o.c + (ln.b + ln.c), o.b + (ln.d + ln.a), !1, !0), on(sn(hn(e, cfn))) || oC((r = new O9((H0(), new B0(e))), r)), t.n && t.n && e && go(t, po(e), (Xu(), ws)), ce(t);
+ }, w(BHn, "RectPackingLayoutProvider", 1136), b(1137, 1, lt, Hgn), s.ue = function(e, t) {
+ return Nwe(u(e, 33), u(t, 33));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(BHn, "RectPackingLayoutProvider/lambda$0$Type", 1137), b(1256, 1, {}, vEn), s.a = 0, s.c = !1, w(aA, "AreaApproximation", 1256);
+ var Von = Et(aA, "BestCandidateFilter");
+ b(638, 1, { 526: 1 }, mI), s.mg = function(e, t, i) {
+ var r, c, o, f, h, l;
+ for (l = new X(), o = xt, h = new E(e); h.a < h.c.c.length; )
+ f = u(y(h), 220), o = j.Math.min(o, (f.c + (i.b + i.c)) * (f.b + (i.d + i.a)));
+ for (c = new E(e); c.a < c.c.c.length; )
+ r = u(y(c), 220), (r.c + (i.b + i.c)) * (r.b + (i.d + i.a)) == o && (l.c[l.c.length] = r);
+ return l;
+ }, w(aA, "AreaFilter", 638), b(639, 1, { 526: 1 }, kI), s.mg = function(e, t, i) {
+ var r, c, o, f, h, l;
+ for (h = new X(), l = xt, f = new E(e); f.a < f.c.c.length; )
+ o = u(y(f), 220), l = j.Math.min(l, j.Math.abs((o.c + (i.b + i.c)) / (o.b + (i.d + i.a)) - t));
+ for (c = new E(e); c.a < c.c.c.length; )
+ r = u(y(c), 220), j.Math.abs((r.c + (i.b + i.c)) / (r.b + (i.d + i.a)) - t) == l && (h.c[h.c.length] = r);
+ return h;
+ }, w(aA, "AspectRatioFilter", 639), b(637, 1, { 526: 1 }, yI), s.mg = function(e, t, i) {
+ var r, c, o, f, h, l;
+ for (l = new X(), o = Qt, h = new E(e); h.a < h.c.c.length; )
+ f = u(y(h), 220), o = j.Math.max(o, cW(f.c + (i.b + i.c), f.b + (i.d + i.a), f.a));
+ for (c = new E(e); c.a < c.c.c.length; )
+ r = u(y(c), 220), cW(r.c + (i.b + i.c), r.b + (i.d + i.a), r.a) == o && (l.c[l.c.length] = r);
+ return l;
+ }, w(aA, "ScaleMeasureFilter", 637), b(381, 22, { 3: 1, 35: 1, 22: 1, 381: 1 }, PO);
+ var Qon, Jon, IK, Yon = Ae(bB, "OptimizationGoal", 381, Ie, Lle, hoe), NYn;
+ b(856, 1, Gs, X4n), s.Qe = function(e) {
+ En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), htn), ""), "Optimization Goal"), "Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."), Zon), (y1(), Bt)), Yon), Cn((Ho(), vi))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ltn), ""), "Shift Last Placed."), "When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."), (qn(), !0)), _i), oi), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), atn), ""), "Current position of a node in the order of nodes"), "The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."), Q(-1)), oc), Ui), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), dtn), ""), "Desired index of node"), "The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."), Q(-1)), oc), Ui), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), btn), ""), "Only Area Approximation"), "If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place."), !1), _i), oi), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), wtn), ""), "Compact Rows"), "Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows."), !0), _i), oi), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), wB), ""), "Fit Aspect Ratio"), "Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion."), !1), _i), oi), Cn(vi)))), Mi(e, wB, dA, null), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), gtn), ""), "Target Width"), "Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."), -1), Dr), Si), Cn(vi)))), F_n((new V4n(), e));
+ };
+ var BYn, RYn, _Yn, KYn, HYn, qYn, Zon, GYn, zYn;
+ w(bB, "RectPackingMetaDataProvider", 856), b(1004, 1, Gs, V4n), s.Qe = function(e) {
+ F_n(e);
+ };
+ var UYn, WYn, nfn, fy, efn, tfn, ifn, XYn, rfn, VYn, QYn, JYn, YYn, cfn, ufn, sfn, ZYn, ofn, nZn, ffn, eZn, hfn;
+ w(bB, "RectPackingOptions", 1004), b(1005, 1, {}, qgn), s.$e = function() {
+ var e;
+ return e = new Kgn(), e;
+ }, s._e = function(e) {
+ }, w(bB, "RectPackingOptions/RectpackingFactory", 1005), b(1257, 1, {}, PAn), s.a = 0, s.b = !1, s.c = 0, s.d = 0, s.e = !1, s.f = !1, s.g = 0, w("org.eclipse.elk.alg.rectpacking.seconditeration", "RowFillingAndCompaction", 1257), b(187, 1, { 187: 1 }, lF), s.a = 0, s.c = !1, s.d = 0, s.e = 0, s.f = 0, s.g = 0, s.i = 0, s.k = !1, s.o = xt, s.p = xt, s.r = 0, s.s = 0, s.t = 0, w(kk, "Block", 187), b(211, 1, { 211: 1 }, lC), s.a = 0, s.b = 0, s.d = 0, s.e = 0, s.f = 0, w(kk, "BlockRow", 211), b(443, 1, { 443: 1 }, YW), s.b = 0, s.c = 0, s.d = 0, s.e = 0, s.f = 0, w(kk, "BlockStack", 443), b(220, 1, { 220: 1 }, bD, MQ), s.a = 0, s.b = 0, s.c = 0, s.d = 0, s.e = 0;
+ var uMe = w(kk, "DrawingData", 220);
+ b(355, 22, { 3: 1, 35: 1, 22: 1, 355: 1 }, J9);
+ var Ep, Ng, Vm, Qm, Jm, tZn = Ae(kk, "DrawingDataDescriptor", 355, Ie, ade, loe), iZn;
+ b(200, 1, { 200: 1 }, oX), s.b = 0, s.c = 0, s.e = 0, s.f = 0, w(kk, "RectRow", 200), b(756, 1, {}, iQ), s.j = 0, w(Lb, ZKn, 756), b(1245, 1, {}, Ggn), s.Je = function(e) {
+ return ll(e.a, e.b);
+ }, w(Lb, nHn, 1245), b(1246, 1, {}, D6n), s.Je = function(e) {
+ return mde(this.a, e);
+ }, w(Lb, eHn, 1246), b(1247, 1, {}, $6n), s.Je = function(e) {
+ return Mpe(this.a, e);
+ }, w(Lb, tHn, 1247), b(1248, 1, {}, F6n), s.Je = function(e) {
+ return jwe(this.a, e);
+ }, w(Lb, "ElkGraphImporter/lambda$3$Type", 1248), b(1249, 1, {}, x6n), s.Je = function(e) {
+ return ume(this.a, e);
+ }, w(Lb, iHn, 1249), b(1133, 209, La, T8n), s.Ze = function(e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v;
+ for (ga(e, (S7(), OP)) && (v = Te(hn(e, (ZF(), Ofn))), o = Vx(L3(), v), o && (f = u(n$(o.f), 209), f.Ze(e, yc(t, 1)))), gr(e, NK, (L8(), IP)), gr(e, BK, (P7(), LK)), gr(e, RK, (c7(), DP)), h = u(hn(e, (ZF(), Sfn)), 19).a, le(t, "Overlap removal", 1), on(sn(hn(e, EZn))), l = new hi(), a = new L6n(l), r = new iQ(), i = x_n(r, e), d = !0, c = 0; c < h && d; ) {
+ if (on(sn(hn(e, Pfn)))) {
+ if (l.a.$b(), i6e(new Eyn(a), i.i), l.a.gc() == 0)
+ break;
+ i.e = l;
+ }
+ for (pC(this.b), ih(this.b, (w7(), AP), (Jv(), hy)), ih(this.b, SP, i.g), ih(this.b, PP, (Ij(), $K)), this.a = EM(this.b, i), p = new E(this.a); p.a < p.c.c.length; )
+ g = u(y(p), 51), g.pf(i, yc(t, 1));
+ k4e(r, i), d = on(sn(k(i, (R3(), mrn)))), ++c;
+ }
+ QRn(r, i), ce(t);
+ }, w(Lb, "OverlapRemovalLayoutProvider", 1133), b(1134, 1, {}, L6n), w(Lb, "OverlapRemovalLayoutProvider/lambda$0$Type", 1134), b(437, 22, { 3: 1, 35: 1, 22: 1, 437: 1 }, IO);
+ var AP, SP, PP, OK = Ae(Lb, "SPOrEPhases", 437, Ie, Ble, aoe), rZn;
+ b(1255, 1, {}, M8n), w(Lb, "ShrinkTree", 1255), b(1135, 209, La, O9n), s.Ze = function(e, t) {
+ var i, r, c, o, f;
+ ga(e, (S7(), OP)) && (f = Te(hn(e, OP)), c = Vx(L3(), f), c && (o = u(n$(c.f), 209), o.Ze(e, yc(t, 1)))), r = new iQ(), i = x_n(r, e), q9e(this.a, i, yc(t, 1)), QRn(r, i);
+ }, w(Lb, "ShrinkTreeLayoutProvider", 1135), b(300, 134, { 3: 1, 300: 1, 94: 1, 134: 1 }, cMn), s.c = !1, w("org.eclipse.elk.alg.spore.graph", "Graph", 300), b(482, 22, { 3: 1, 35: 1, 22: 1, 482: 1, 246: 1, 234: 1 }, j7n), s.Kf = function() {
+ return oDn(this);
+ }, s.Xf = function() {
+ return oDn(this);
+ };
+ var DK, lfn = Ae(Nb, gnn, 482, Ie, Vhe, doe), cZn;
+ b(551, 22, { 3: 1, 35: 1, 22: 1, 551: 1, 246: 1, 234: 1 }, jjn), s.Kf = function() {
+ return new WH();
+ }, s.Xf = function() {
+ return new WH();
+ };
+ var $K, uZn = Ae(Nb, "OverlapRemovalStrategy", 551, Ie, Qhe, boe), sZn;
+ b(430, 22, { 3: 1, 35: 1, 22: 1, 430: 1 }, oz);
+ var IP, FK, afn = Ae(Nb, "RootSelection", 430, Ie, H1e, woe), oZn;
+ b(316, 22, { 3: 1, 35: 1, 22: 1, 316: 1 }, Y9);
+ var dfn, xK, LK, bfn, wfn, gfn = Ae(Nb, "SpanningTreeCostFunction", 316, Ie, fde, goe), fZn;
+ b(1002, 1, Gs, K4n), s.Qe = function(e) {
+ MRn(e);
+ };
+ var pfn, vfn, hZn, lZn, mfn, kfn, NK, BK, RK, aZn, dZn, OP;
+ w(Nb, "SporeCompactionOptions", 1002), b(1003, 1, {}, zgn), s.$e = function() {
+ var e;
+ return e = new O9n(), e;
+ }, s._e = function(e) {
+ }, w(Nb, "SporeCompactionOptions/SporeCompactionFactory", 1003), b(855, 1, Gs, H4n), s.Qe = function(e) {
+ En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), gB), ""), "Underlying Layout Algorithm"), "A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."), (y1(), mv)), tn), Cn((Ho(), Xn))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), mB), "structure"), "Structure Extraction Strategy"), "This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."), Mfn), Bt), Dfn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ptn), kB), "Tree Construction Strategy"), "Whether a minimum spanning tree or a maximum spanning tree should be constructed."), Cfn), Bt), Ffn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), vtn), kB), "Cost Function for Spanning Tree"), "The cost function is used in the creation of the spanning tree."), Efn), Bt), gfn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), pB), kB), "Root node for spanning tree construction"), "The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."), null), mv), tn), Cn(Xn)))), Mi(e, pB, vB, mZn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), vB), kB), "Root selection for spanning tree"), "This sets the method used to select a root node for the construction of a spanning tree"), jfn), Bt), afn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), mtn), den), "Compaction Strategy"), "This option defines how the compaction is applied."), yfn), Bt), lfn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ktn), den), "Orthogonal Compaction"), "Restricts the translation of nodes to orthogonal directions in the compaction phase."), (qn(), !1)), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ytn), RHn), "Upper limit for iterations of overlap removal"), null), Q(64)), oc), Ui), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), jtn), RHn), "Whether to run a supplementary scanline overlap check."), null), !0), _i), oi), Cn(Xn)))), DBn((new q4n(), e)), MRn((new K4n(), e));
+ };
+ var bZn, yfn, wZn, gZn, pZn, vZn, mZn, kZn, jfn, yZn, Efn, jZn, Cfn, Tfn, Mfn, Afn;
+ w(Nb, "SporeMetaDataProvider", 855), b(j1, 1, Gs, q4n), s.Qe = function(e) {
+ DBn(e);
+ };
+ var EZn, Sfn, Pfn, Ifn, CZn, Ofn;
+ w(Nb, "SporeOverlapRemovalOptions", j1), b(1001, 1, {}, Ugn), s.$e = function() {
+ var e;
+ return e = new T8n(), e;
+ }, s._e = function(e) {
+ }, w(Nb, "SporeOverlapRemovalOptions/SporeOverlapFactory", 1001), b(530, 22, { 3: 1, 35: 1, 22: 1, 530: 1, 246: 1, 234: 1 }, aTn), s.Kf = function() {
+ return fDn(this);
+ }, s.Xf = function() {
+ return fDn(this);
+ };
+ var hy, Dfn = Ae(Nb, "StructureExtractionStrategy", 530, Ie, Jhe, poe), TZn;
+ b(429, 22, { 3: 1, 35: 1, 22: 1, 429: 1, 246: 1, 234: 1 }, fz), s.Kf = function() {
+ return r$n(this);
+ }, s.Xf = function() {
+ return r$n(this);
+ };
+ var $fn, DP, Ffn = Ae(Nb, "TreeConstructionStrategy", 429, Ie, K1e, voe), MZn;
+ b(1443, 1, Cc, Wgn), s.Yf = function(e) {
+ return u(e, 300), new li();
+ }, s.pf = function(e, t) {
+ I4e(u(e, 300), t);
+ }, w(_Hn, "DelaunayTriangulationPhase", 1443), b(1444, 1, Yn, N6n), s.td = function(e) {
+ W(this.a, u(e, 65).a);
+ }, w(_Hn, "DelaunayTriangulationPhase/lambda$0$Type", 1444), b(783, 1, Cc, sG), s.Yf = function(e) {
+ return u(e, 300), new li();
+ }, s.pf = function(e, t) {
+ this.ng(u(e, 300), t);
+ }, s.ng = function(e, t) {
+ var i, r, c;
+ le(t, "Minimum spanning tree construction", 1), e.d ? r = e.d.a : r = u(un(e.i, 0), 65).a, on(sn(k(e, (R3(), pm)))) ? c = wL(e.e, r, (i = e.b, i)) : c = wL(e.e, r, e.b), GOn(this, c, e), ce(t);
+ }, w(yB, "MinSTPhase", 783), b(1446, 783, Cc, w9n), s.ng = function(e, t) {
+ var i, r, c, o;
+ le(t, "Maximum spanning tree construction", 1), i = new B6n(e), e.d ? c = e.d.c : c = u(un(e.i, 0), 65).c, on(sn(k(e, (R3(), pm)))) ? o = wL(e.e, c, (r = i, r)) : o = wL(e.e, c, i), GOn(this, o, e), ce(t);
+ }, w(yB, "MaxSTPhase", 1446), b(1447, 1, {}, B6n), s.Je = function(e) {
+ return kre(this.a, e);
+ }, w(yB, "MaxSTPhase/lambda$0$Type", 1447), b(1445, 1, Yn, R6n), s.td = function(e) {
+ lce(this.a, u(e, 65));
+ }, w(yB, "MinSTPhase/lambda$0$Type", 1445), b(785, 1, Cc, WH), s.Yf = function(e) {
+ return u(e, 300), new li();
+ }, s.pf = function(e, t) {
+ qve(this, u(e, 300), t);
+ }, s.a = !1, w(jB, "GrowTreePhase", 785), b(786, 1, Yn, NU), s.td = function(e) {
+ uwe(this.a, this.b, this.c, u(e, 221));
+ }, w(jB, "GrowTreePhase/lambda$0$Type", 786), b(1448, 1, Cc, Xgn), s.Yf = function(e) {
+ return u(e, 300), new li();
+ }, s.pf = function(e, t) {
+ Ype(this, u(e, 300), t);
+ }, w(jB, "ShrinkTreeCompactionPhase", 1448), b(784, 1, Yn, BU), s.td = function(e) {
+ Ime(this.a, this.b, this.c, u(e, 221));
+ }, w(jB, "ShrinkTreeCompactionPhase/lambda$0$Type", 784);
+ var xfn = Et(dc, "IGraphElementVisitor");
+ b(860, 1, { 527: 1 }, nAn), s.og = function(e) {
+ var t;
+ t = L7e(this, e), Pr(t, u(te(this.b, e), 94)), F9e(this, e, t);
+ };
+ var AZn, SZn;
+ w(og, "LayoutConfigurator", 860);
+ var sMe = Et(og, "LayoutConfigurator/IPropertyHolderOptionFilter");
+ b(932, 1, { 1933: 1 }, Vgn), s.pg = function(e, t) {
+ return L2(), !e.Xe(t);
+ }, w(og, "LayoutConfigurator/lambda$0$Type", 932), b(933, 1, { 1933: 1 }, Qee), s.pg = function(e, t) {
+ return y8n(e, t);
+ }, w(og, "LayoutConfigurator/lambda$1$Type", 933), b(931, 1, { 831: 1 }, Qgn), s.qg = function(e, t) {
+ return L2(), !e.Xe(t);
+ }, w(og, "LayoutConfigurator/lambda$2$Type", 931), b(934, 1, Ve, ckn), s.Mb = function(e) {
+ return Lhe(this.a, this.b, u(e, 1933));
+ }, w(og, "LayoutConfigurator/lambda$3$Type", 934), b(858, 1, {}, Jgn), w(og, "RecursiveGraphLayoutEngine", 858), b(296, 60, zh, zmn, pw), w(og, "UnsupportedConfigurationException", 296), b(453, 60, zh, Gv), w(og, "UnsupportedGraphException", 453), b(754, 1, {}), w(dc, "AbstractRandomListAccessor", 754), b(500, 754, {}, B7), s.rg = function() {
+ return null;
+ }, s.d = !0, s.e = !0, s.f = 0, w(L4, "AlgorithmAssembler", 500), b(1236, 1, Ve, Ygn), s.Mb = function(e) {
+ return !!u(e, 123);
+ }, w(L4, "AlgorithmAssembler/lambda$0$Type", 1236), b(1237, 1, {}, _6n), s.Kb = function(e) {
+ return Rie(this.a, u(e, 123));
+ }, w(L4, "AlgorithmAssembler/lambda$1$Type", 1237), b(1238, 1, Ve, Zgn), s.Mb = function(e) {
+ return !!u(e, 80);
+ }, w(L4, "AlgorithmAssembler/lambda$2$Type", 1238), b(1239, 1, Yn, K6n), s.td = function(e) {
+ rs(this.a, u(e, 80));
+ }, w(L4, "AlgorithmAssembler/lambda$3$Type", 1239), b(1240, 1, Yn, ukn), s.td = function(e) {
+ Yce(this.a, this.b, u(e, 234));
+ }, w(L4, "AlgorithmAssembler/lambda$4$Type", 1240), b(1355, 1, lt, n2n), s.ue = function(e, t) {
+ return a1e(u(e, 234), u(t, 234));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(L4, "EnumBasedFactoryComparator", 1355), b(80, 754, { 80: 1 }, li), s.rg = function() {
+ return new hi();
+ }, s.a = 0, w(L4, "LayoutProcessorConfiguration", 80), b(1013, 1, { 527: 1 }, Q4n), s.og = function(e) {
+ n6(IZn, new H6n(e));
+ };
+ var PZn, IZn, OZn;
+ w(Wr, "DeprecatedLayoutOptionReplacer", 1013), b(1014, 1, Yn, e2n), s.td = function(e) {
+ e0e(u(e, 160));
+ }, w(Wr, "DeprecatedLayoutOptionReplacer/lambda$0$Type", 1014), b(1015, 1, Yn, t2n), s.td = function(e) {
+ C2e(u(e, 160));
+ }, w(Wr, "DeprecatedLayoutOptionReplacer/lambda$1$Type", 1015), b(1016, 1, {}, H6n), s.Od = function(e, t) {
+ Zce(this.a, u(e, 146), u(t, 38));
+ }, w(Wr, "DeprecatedLayoutOptionReplacer/lambda$2$Type", 1016), b(149, 1, { 686: 1, 149: 1 }, Oa), s.Fb = function(e) {
+ return CX(this, e);
+ }, s.sg = function() {
+ return this.b;
+ }, s.tg = function() {
+ return this.c;
+ }, s.ne = function() {
+ return this.e;
+ }, s.Hb = function() {
+ return m1(this.c);
+ }, s.Ib = function() {
+ return "Layout Algorithm: " + this.c;
+ };
+ var oMe = w(Wr, "LayoutAlgorithmData", 149);
+ b(263, 1, {}, na), w(Wr, "LayoutAlgorithmData/Builder", 263), b(1017, 1, { 527: 1 }, i2n), s.og = function(e) {
+ I(e, 239) && !on(sn(e.We((Xe(), RP)))) && mye(u(e, 33));
+ }, w(Wr, "LayoutAlgorithmResolver", 1017), b(229, 1, { 686: 1, 229: 1 }, M2), s.Fb = function(e) {
+ return I(e, 229) ? An(this.b, u(e, 229).b) : !1;
+ }, s.sg = function() {
+ return this.a;
+ }, s.tg = function() {
+ return this.b;
+ }, s.ne = function() {
+ return this.d;
+ }, s.Hb = function() {
+ return m1(this.b);
+ }, s.Ib = function() {
+ return "Layout Type: " + this.b;
+ }, w(Wr, "LayoutCategoryData", 229), b(344, 1, {}, Zg), w(Wr, "LayoutCategoryData/Builder", 344), b(867, 1, {}, yBn);
+ var _K;
+ w(Wr, "LayoutMetaDataService", 867), b(868, 1, {}, YCn), w(Wr, "LayoutMetaDataService/Registry", 868), b(478, 1, { 478: 1 }, XH), w(Wr, "LayoutMetaDataService/Registry/Triple", 478), b(869, 1, dg, r2n), s.ug = function() {
+ return new Li();
+ }, w(Wr, "LayoutMetaDataService/lambda$0$Type", 869), b(870, 1, Bb, c2n), s.vg = function(e) {
+ return Qr(u(e, 8));
+ }, w(Wr, "LayoutMetaDataService/lambda$1$Type", 870), b(879, 1, dg, u2n), s.ug = function() {
+ return new X();
+ }, w(Wr, "LayoutMetaDataService/lambda$10$Type", 879), b(880, 1, Bb, s2n), s.vg = function(e) {
+ return new lu(u(e, 12));
+ }, w(Wr, "LayoutMetaDataService/lambda$11$Type", 880), b(881, 1, dg, o2n), s.ug = function() {
+ return new Ct();
+ }, w(Wr, "LayoutMetaDataService/lambda$12$Type", 881), b(882, 1, Bb, f2n), s.vg = function(e) {
+ return p8(u(e, 68));
+ }, w(Wr, "LayoutMetaDataService/lambda$13$Type", 882), b(883, 1, dg, h2n), s.ug = function() {
+ return new hi();
+ }, w(Wr, "LayoutMetaDataService/lambda$14$Type", 883), b(884, 1, Bb, l2n), s.vg = function(e) {
+ return rC(u(e, 53));
+ }, w(Wr, "LayoutMetaDataService/lambda$15$Type", 884), b(885, 1, dg, a2n), s.ug = function() {
+ return new Ah();
+ }, w(Wr, "LayoutMetaDataService/lambda$16$Type", 885), b(886, 1, Bb, d2n), s.vg = function(e) {
+ return jC(u(e, 53));
+ }, w(Wr, "LayoutMetaDataService/lambda$17$Type", 886), b(887, 1, dg, b2n), s.ug = function() {
+ return new Wq();
+ }, w(Wr, "LayoutMetaDataService/lambda$18$Type", 887), b(888, 1, Bb, w2n), s.vg = function(e) {
+ return MEn(u(e, 208));
+ }, w(Wr, "LayoutMetaDataService/lambda$19$Type", 888), b(871, 1, dg, g2n), s.ug = function() {
+ return new ou();
+ }, w(Wr, "LayoutMetaDataService/lambda$2$Type", 871), b(872, 1, Bb, p2n), s.vg = function(e) {
+ return new mj(u(e, 74));
+ }, w(Wr, "LayoutMetaDataService/lambda$3$Type", 872), b(873, 1, dg, v2n), s.ug = function() {
+ return new Bv();
+ }, w(Wr, "LayoutMetaDataService/lambda$4$Type", 873), b(874, 1, Bb, m2n), s.vg = function(e) {
+ return new oD(u(e, 142));
+ }, w(Wr, "LayoutMetaDataService/lambda$5$Type", 874), b(875, 1, dg, y2n), s.ug = function() {
+ return new i2();
+ }, w(Wr, "LayoutMetaDataService/lambda$6$Type", 875), b(876, 1, Bb, j2n), s.vg = function(e) {
+ return new DU(u(e, 116));
+ }, w(Wr, "LayoutMetaDataService/lambda$7$Type", 876), b(877, 1, dg, E2n), s.ug = function() {
+ return new jI();
+ }, w(Wr, "LayoutMetaDataService/lambda$8$Type", 877), b(878, 1, Bb, C2n), s.vg = function(e) {
+ return new RPn(u(e, 373));
+ }, w(Wr, "LayoutMetaDataService/lambda$9$Type", 878);
+ var KK = Et(ok, "IProperty");
+ b(23, 1, { 35: 1, 686: 1, 23: 1, 146: 1 }, bn), s.wd = function(e) {
+ return Cce(this, u(e, 146));
+ }, s.Fb = function(e) {
+ return I(e, 23) ? An(this.f, u(e, 23).f) : I(e, 146) && An(this.f, u(e, 146).tg());
+ }, s.wg = function() {
+ var e;
+ if (I(this.b, 4)) {
+ if (e = qQ(this.b), e == null)
+ throw T(new $r(qHn + this.f + "'. Make sure it's type is registered with the " + (Sh(Fy), Fy.k) + Etn));
+ return e;
+ } else
+ return this.b;
+ }, s.sg = function() {
+ return this.d;
+ }, s.tg = function() {
+ return this.f;
+ }, s.ne = function() {
+ return this.i;
+ }, s.Hb = function() {
+ return m1(this.f);
+ }, s.Ib = function() {
+ return "Layout Option: " + this.f;
+ }, w(Wr, "LayoutOptionData", 23), b(24, 1, {}, dn), w(Wr, "LayoutOptionData/Builder", 24), b(175, 22, { 3: 1, 35: 1, 22: 1, 175: 1 }, Z9);
+ var Yf, D1, vi, Xn, Za, $1 = Ae(Wr, "LayoutOptionData/Target", 175, Ie, ode, moe), DZn;
+ b(277, 22, { 3: 1, 35: 1, 22: 1, 277: 1 }, l2);
+ var _i, Dr, Bt, Cp, oc, yf, mv, Lfn, $Zn = Ae(Wr, "LayoutOptionData/Type", 277, Ie, R0e, koe), FZn, Ym, Nfn;
+ b(110, 1, { 110: 1 }, d2, ks, uC), s.Fb = function(e) {
+ var t;
+ return e == null || !I(e, 110) ? !1 : (t = u(e, 110), vc(this.c, t.c) && vc(this.d, t.d) && vc(this.b, t.b) && vc(this.a, t.a));
+ }, s.Hb = function() {
+ return gT(A(M(Zn, 1), rn, 1, 5, [this.c, this.d, this.b, this.a]));
+ }, s.Ib = function() {
+ return "Rect[x=" + this.c + ",y=" + this.d + ",w=" + this.b + ",h=" + this.a + "]";
+ }, s.a = 0, s.b = 0, s.c = 0, s.d = 0, w(dk, "ElkRectangle", 110), b(8, 1, { 3: 1, 4: 1, 8: 1, 414: 1 }, Li, u$, fn, kr), s.Fb = function(e) {
+ return XIn(this, e);
+ }, s.Hb = function() {
+ return t3(this.a) + T3e(t3(this.b));
+ }, s.Jf = function(e) {
+ var t, i, r, c;
+ for (r = 0; r < e.length && SDn((Me(r, e.length), e.charCodeAt(r)), XKn); )
+ ++r;
+ for (t = e.length; t > 0 && SDn((Me(t - 1, e.length), e.charCodeAt(t - 1)), VKn); )
+ --t;
+ if (r >= t)
+ throw T(new Hn("The given string does not contain any numbers."));
+ if (c = Mb(e.substr(r, t - r), `,|;|\r|
+`), c.length != 2)
+ throw T(new Hn("Exactly two numbers are expected, " + c.length + " were found."));
+ try {
+ this.a = yb(kb(c[0])), this.b = yb(kb(c[1]));
+ } catch (o) {
+ throw o = jt(o), I(o, 127) ? (i = o, T(new Hn(QKn + i))) : T(o);
+ }
+ }, s.Ib = function() {
+ return "(" + this.a + "," + this.b + ")";
+ }, s.a = 0, s.b = 0;
+ var di = w(dk, "KVector", 8);
+ b(74, 68, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 68: 1, 15: 1, 74: 1, 414: 1 }, ou, mj, ajn), s.Pc = function() {
+ return Gwe(this);
+ }, s.Jf = function(e) {
+ var t, i, r, c, o, f;
+ r = Mb(e, `,|;|\\(|\\)|\\[|\\]|\\{|\\}| | |
+`), Rs(this);
+ try {
+ for (i = 0, o = 0, c = 0, f = 0; i < r.length; )
+ r[i] != null && kb(r[i]).length > 0 && (o % 2 == 0 ? c = yb(r[i]) : f = yb(r[i]), o > 0 && o % 2 != 0 && Ke(this, new fn(c, f)), ++o), ++i;
+ } catch (h) {
+ throw h = jt(h), I(h, 127) ? (t = h, T(new Hn("The given string does not match the expected format for vectors." + t))) : T(h);
+ }
+ }, s.Ib = function() {
+ var e, t, i;
+ for (e = new Ju("("), t = _e(this, 0); t.b != t.d.c; )
+ i = u(Re(t), 8), De(e, i.a + "," + i.b), t.b != t.d.c && (e.a += "; ");
+ return (e.a += ")", e).a;
+ };
+ var Bfn = w(dk, "KVectorChain", 74);
+ b(248, 22, { 3: 1, 35: 1, 22: 1, 248: 1 }, f5);
+ var HK, $P, FP, ly, ay, xP, Rfn = Ae(Us, "Alignment", 248, Ie, Bde, yoe), xZn;
+ b(979, 1, Gs, J4n), s.Qe = function(e) {
+ UBn(e);
+ };
+ var _fn, qK, LZn, Kfn, Hfn, NZn, qfn, BZn, RZn, Gfn, zfn, _Zn;
+ w(Us, "BoxLayouterOptions", 979), b(980, 1, {}, k2n), s.$e = function() {
+ var e;
+ return e = new S2n(), e;
+ }, s._e = function(e) {
+ }, w(Us, "BoxLayouterOptions/BoxFactory", 980), b(291, 22, { 3: 1, 35: 1, 22: 1, 291: 1 }, h5);
+ var dy, GK, by, wy, gy, zK, UK = Ae(Us, "ContentAlignment", 291, Ie, Nde, joe), KZn;
+ b(684, 1, Gs, nq), s.Qe = function(e) {
+ En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), zHn), ""), "Layout Algorithm"), "Select a specific layout algorithm."), (y1(), mv)), tn), Cn((Ho(), Xn))))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), UHn), ""), "Resolved Layout Algorithm"), "Meta data associated with the selected algorithm."), yf), oMe), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Oen), ""), "Alignment"), "Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."), Ufn), Bt), Rfn), Cn(vi)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), ep), ""), "Aspect Ratio"), "The desired aspect ratio of the drawing, that is the quotient of width by height."), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), Ttn), ""), "Bend Points"), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), yf), Bfn), Cn(Yf)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), sA), ""), "Content Alignment"), "Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."), Xfn), Cp), UK), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), mk), ""), "Debug Mode"), "Whether additional debug information shall be generated."), (qn(), !1)), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Fen), ""), bnn), "Overall direction of edges: horizontal (right / left) or vertical (down / up)."), Vfn), Bt), e9), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), pk), ""), "Edge Routing"), "What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."), Yfn), Bt), cH), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), dA), ""), "Expand Nodes"), "If active, nodes are expanded to fill the area of their parent."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), uA), ""), "Hierarchy Handling"), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), thn), Bt), Khn), pt(Xn, A(M($1, 1), z, 175, 0, [vi]))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), s0), ""), "Padding"), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), ahn), yf), Wrn), pt(Xn, A(M($1, 1), z, 175, 0, [vi]))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), lk), ""), "Interactive"), "Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), cB), ""), "interactive Layout"), "Whether the graph should be changeable interactively and by setting constraints"), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), G6), ""), "Omit Node Micro Layout"), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), CN), ""), "Port Constraints"), "Defines constraints of the position of the ports of a node."), phn), Bt), Ghn), Cn(vi)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), oA), ""), "Position"), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), yf), di), pt(vi, A(M($1, 1), z, 175, 0, [Za, D1]))))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), hk), ""), "Priority"), "Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."), oc), Ui), pt(vi, A(M($1, 1), z, 175, 0, [Yf]))))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), HM), ""), "Randomization Seed"), "Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."), oc), Ui), Cn(Xn)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), q6), ""), "Separate Connected Components"), "Whether each connected component should be processed separately."), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), qen), ""), "Junction Points"), "This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."), rhn), yf), Bfn), Cn(Yf)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Uen), ""), "Comment Box"), "Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."), !1), _i), oi), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Wen), ""), "Hypernode"), "Whether the node should be handled as a hypernode."), !1), _i), oi), Cn(vi)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), LTe), ""), "Label Manager"), "Label managers can shorten labels upon a layout algorithm's request."), yf), dMe), pt(Xn, A(M($1, 1), z, 175, 0, [D1]))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Ven), ""), "Margins"), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), chn), yf), Urn), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Pen), ""), "No Layout"), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), !1), _i), oi), pt(vi, A(M($1, 1), z, 175, 0, [Yf, Za, D1]))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), WHn), ""), "Scale Factor"), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), Dr), Si), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), XHn), ""), "Animate"), "Whether the shift from the old layout to the new computed layout shall be animated."), !0), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), VHn), ""), "Animation Time Factor"), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), Q(100)), oc), Ui), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), QHn), ""), "Layout Ancestors"), "Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), JHn), ""), "Maximal Animation Time"), "The maximal time for animations, in milliseconds."), Q(4e3)), oc), Ui), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), YHn), ""), "Minimal Animation Time"), "The minimal time for animations, in milliseconds."), Q(400)), oc), Ui), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ZHn), ""), "Progress Bar"), "Whether a progress bar shall be displayed during layout computations."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), nqn), ""), "Validate Graph"), "Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), eqn), ""), "Validate Options"), "Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), !0), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), tqn), ""), "Zoom to Fit"), "Whether the zoom level shall be set to view the whole diagram after layout."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Ctn), "box"), "Box Layout Mode"), "Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."), Wfn), Bt), Qhn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), pen), wf), "Comment Comment Spacing"), "Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."), 10), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ven), wf), "Comment Node Spacing"), "Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."), 10), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), vN), wf), "Components Spacing"), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), men), wf), "Edge Spacing"), "Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."), 10), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), EN), wf), "Edge Label Spacing"), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ken), wf), "Edge Node Spacing"), "Spacing to be preserved between nodes and edges."), 10), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), yen), wf), "Label Spacing"), "Determines the amount of space to be left between two labels of the same graph element."), 0), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Cen), wf), "Label Node Spacing"), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), jen), wf), "Horizontal spacing between Label and Port"), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Een), wf), "Vertical spacing between Label and Port"), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), $b), wf), "Node Spacing"), "The minimal distance to be preserved between each two nodes."), 20), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Ten), wf), "Node Self Loop Spacing"), "Spacing to be preserved between a node and its self loops."), 10), Dr), Si), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Men), wf), "Port Spacing"), "Spacing between pairs of ports of the same node."), 10), Dr), Si), pt(Xn, A(M($1, 1), z, 175, 0, [vi]))))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), Aen), wf), "Individual Spacing"), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), yf), jne), pt(vi, A(M($1, 1), z, 175, 0, [Yf, Za, D1]))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Qen), wf), "Additional Port Space"), "Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."), Ahn), yf), Urn), Cn(Xn)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), rB), cqn), "Layout Partition"), "Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."), oc), Ui), pt(Xn, A(M($1, 1), z, 175, 0, [vi]))))), Mi(e, rB, iB, VZn), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), iB), cqn), "Layout Partitioning"), "Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."), dhn), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), xen), uqn), "Node Label Padding"), "Define padding for node labels that are placed inside of a node."), shn), yf), Wrn), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), $4), uqn), "Node Label Placement"), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), ohn), Cp), lr), pt(vi, A(M($1, 1), z, 175, 0, [D1]))))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Ben), wA), "Port Alignment"), "Defines the default port distribution for a node. May be overridden for each side individually."), whn), Bt), c9), Cn(vi)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), Ren), wA), "Port Alignment (North)"), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), Bt), c9), Cn(vi)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), _en), wA), "Port Alignment (South)"), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), Bt), c9), Cn(vi)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), Ken), wA), "Port Alignment (West)"), "Defines how ports on the western side are placed, overriding the node's general port alignment."), Bt), c9), Cn(vi)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), Hen), wA), "Port Alignment (East)"), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), Bt), c9), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), hg), CB), "Node Size Constraints"), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), fhn), Cp), o9), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), tp), CB), "Node Size Options"), "Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."), lhn), Cp), Uhn), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), ip), CB), "Node Size Minimum"), "The minimal size to which a node can be reduced."), hhn), yf), di), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), tB), CB), "Fixed Graph Size"), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), !1), _i), oi), Cn(Xn)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Gen), eB), "Edge Label Placement"), "Gives a hint on where to put edge labels."), Qfn), Bt), Phn), Cn(D1)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), qM), eB), "Inline Edge Labels"), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), !1), _i), oi), Cn(D1)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), NTe), "font"), "Font Name"), "Font name used for a label."), mv), tn), Cn(D1)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), iqn), "font"), "Font Size"), "Font size used for a label."), oc), Ui), Cn(D1)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), Xen), TB), "Port Anchor Offset"), "The offset to the port position where connections shall be attached."), yf), di), Cn(Za)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), zen), TB), "Port Index"), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), oc), Ui), Cn(Za)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Ien), TB), "Port Side"), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), khn), Bt), Yi), Cn(Za)))), En(e, new bn(yn(kn(jn(gn(mn(pn(vn(new dn(), Sen), TB), "Port Border Offset"), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), Dr), Si), Cn(Za)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), F4), Mtn), "Port Label Placement"), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), vhn), Cp), qP), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Len), Mtn), "Port Labels Next to Port"), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), !1), _i), oi), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Nen), Mtn), "Treat Port Labels as Group"), "If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."), !0), _i), oi), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), Den), sqn), "Activate Inside Self Loops"), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), !1), _i), oi), Cn(vi)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), $en), sqn), "Inside Self Loop"), "Whether a self loop should be routed inside a node instead of around that node."), !1), _i), oi), Cn(Yf)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), mN), "edge"), "Edge Thickness"), "The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."), 1), Dr), Si), Cn(Yf)))), En(e, new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn(), rqn), "edge"), "Edge Type"), "The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."), nhn), Bt), xhn), Cn(Yf)))), Yv(e, new M2(Uv(Xp(Wp(new Zg(), Jn), "Layered"), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))), Yv(e, new M2(Uv(Xp(Wp(new Zg(), "org.eclipse.elk.orthogonal"), "Orthogonal"), `Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))), Yv(e, new M2(Uv(Xp(Wp(new Zg(), os), "Force"), "Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))), Yv(e, new M2(Uv(Xp(Wp(new Zg(), "org.eclipse.elk.circle"), "Circle"), "Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))), Yv(e, new M2(Uv(Xp(Wp(new Zg(), OHn), "Tree"), "Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))), Yv(e, new M2(Uv(Xp(Wp(new Zg(), "org.eclipse.elk.planar"), "Planar"), "Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))), Yv(e, new M2(Uv(Xp(Wp(new Zg(), zf), "Radial"), "Radial layout algorithms usually position the nodes of the graph on concentric circles."))), OBn((new Y4n(), e)), UBn((new J4n(), e)), sBn((new Z4n(), e));
+ };
+ var Zm, HZn, Ufn, Tp, qZn, GZn, Wfn, zZn, LP, Xfn, py, S0, Vfn, WK, XK, Qfn, Jfn, Yfn, Zfn, nhn, ehn, Bg, thn, UZn, vy, VK, NP, ihn, Rg, rhn, my, chn, uhn, shn, _g, ohn, nd, fhn, BP, Kg, hhn, Rl, lhn, RP, ky, ed, ahn, WZn, dhn, XZn, VZn, bhn, whn, QK, JK, YK, ZK, ghn, Bu, n9, phn, nH, eH, cw, vhn, mhn, Hg, khn, Mp, _P, tH, kv, QZn, iH, JZn, YZn, yhn, ZZn, jhn, nne, Ap, Ehn, KP, Chn, Thn, td, ene, Mhn, Ahn, Shn;
+ w(Us, "CoreOptions", 684), b(103, 22, { 3: 1, 35: 1, 22: 1, 103: 1 }, n8);
+ var Qh, Ys, Ao, mh, Jh, e9 = Ae(Us, bnn, 103, Ie, ude, Toe), tne;
+ b(272, 22, { 3: 1, 35: 1, 22: 1, 272: 1 }, OO);
+ var yv, uw, jv, Phn = Ae(Us, "EdgeLabelPlacement", 272, Ie, _le, Moe), ine;
+ b(218, 22, { 3: 1, 35: 1, 22: 1, 218: 1 }, Wj);
+ var Ev, yy, Sp, rH, cH = Ae(Us, "EdgeRouting", 218, Ie, Dae, Aoe), rne;
+ b(312, 22, { 3: 1, 35: 1, 22: 1, 312: 1 }, l5);
+ var Ihn, Ohn, Dhn, $hn, uH, Fhn, xhn = Ae(Us, "EdgeType", 312, Ie, Ude, Soe), cne;
+ b(977, 1, Gs, Y4n), s.Qe = function(e) {
+ OBn(e);
+ };
+ var Lhn, Nhn, Bhn, Rhn, une, _hn, t9;
+ w(Us, "FixedLayouterOptions", 977), b(978, 1, {}, $2n), s.$e = function() {
+ var e;
+ return e = new M2n(), e;
+ }, s._e = function(e) {
+ }, w(Us, "FixedLayouterOptions/FixedFactory", 978), b(334, 22, { 3: 1, 35: 1, 22: 1, 334: 1 }, DO);
+ var F1, HP, i9, Khn = Ae(Us, "HierarchyHandling", 334, Ie, Rle, Poe), sne;
+ b(285, 22, { 3: 1, 35: 1, 22: 1, 285: 1 }, Xj);
+ var kh, _l, jy, Ey, one = Ae(Us, "LabelSide", 285, Ie, Oae, Ioe), fne;
+ b(93, 22, { 3: 1, 35: 1, 22: 1, 93: 1 }, yw);
+ var Yh, So, Zs, Po, as, Io, no, yh, Oo, lr = Ae(Us, "NodeLabelPlacement", 93, Ie, V0e, Ooe), hne;
+ b(249, 22, { 3: 1, 35: 1, 22: 1, 249: 1 }, e8);
+ var Hhn, r9, Kl, qhn, Cy, c9 = Ae(Us, "PortAlignment", 249, Ie, sde, Doe), lne;
+ b(98, 22, { 3: 1, 35: 1, 22: 1, 98: 1 }, a5);
+ var id, Sc, jh, Cv, jf, Hl, Ghn = Ae(Us, "PortConstraints", 98, Ie, Pde, $oe), ane;
+ b(273, 22, { 3: 1, 35: 1, 22: 1, 273: 1 }, d5);
+ var u9, s9, Zh, Ty, ql, Pp, qP = Ae(Us, "PortLabelPlacement", 273, Ie, zde, Foe), dne;
+ b(61, 22, { 3: 1, 35: 1, 22: 1, 61: 1 }, t8);
+ var Vn, Kn, $s, Fs, iu, qc, Ef, Do, Su, vu, Pc, Pu, ru, cu, $o, ds, bs, eo, ae, Xr, Gn, Yi = Ae(Us, "PortSide", 61, Ie, ide, Noe), bne;
+ b(981, 1, Gs, Z4n), s.Qe = function(e) {
+ sBn(e);
+ };
+ var wne, gne, zhn, pne, vne;
+ w(Us, "RandomLayouterOptions", 981), b(982, 1, {}, F2n), s.$e = function() {
+ var e;
+ return e = new N2n(), e;
+ }, s._e = function(e) {
+ }, w(Us, "RandomLayouterOptions/RandomFactory", 982), b(374, 22, { 3: 1, 35: 1, 22: 1, 374: 1 }, Vj);
+ var sw, My, Ay, rd, o9 = Ae(Us, "SizeConstraint", 374, Ie, Iae, xoe), mne;
+ b(259, 22, { 3: 1, 35: 1, 22: 1, 259: 1 }, jw);
+ var Sy, GP, Tv, sH, Py, f9, zP, UP, WP, Uhn = Ae(Us, "SizeOptions", 259, Ie, tbe, Loe), kne;
+ b(370, 1, { 1949: 1 }, Gp), s.b = !1, s.c = 0, s.d = -1, s.e = null, s.f = null, s.g = -1, s.j = !1, s.k = !1, s.n = !1, s.o = 0, s.q = 0, s.r = 0, w(dc, "BasicProgressMonitor", 370), b(972, 209, La, S2n), s.Ze = function(e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ switch (le(t, "Box layout", 2), c = x9(Y(hn(e, (nM(), _Zn)))), o = u(hn(e, RZn), 116), i = on(sn(hn(e, Kfn))), r = on(sn(hn(e, Hfn))), u(hn(e, qK), 311).g) {
+ case 0:
+ f = (h = new lu((!e.a && (e.a = new V(Pt, e, 10, 11)), e.a)), Pn(), wi(h, new q6n(r)), h), l = sY(e), a = Y(hn(e, _fn)), (a == null || (_n(a), a <= 0)) && (a = 1.3), d = KCe(f, c, o, l.a, l.b, i, (_n(a), a)), i0(e, d.a, d.b, !1, !0);
+ break;
+ default:
+ Nje(e, c, o, i);
+ }
+ ce(t);
+ }, w(dc, "BoxLayoutProvider", 972), b(973, 1, lt, q6n), s.ue = function(e, t) {
+ return c8e(this, u(e, 33), u(t, 33));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, s.a = !1, w(dc, "BoxLayoutProvider/1", 973), b(157, 1, { 157: 1 }, zC, ljn), s.Ib = function() {
+ return this.c ? uZ(this.c) : ml(this.b);
+ }, w(dc, "BoxLayoutProvider/Group", 157), b(311, 22, { 3: 1, 35: 1, 22: 1, 311: 1 }, Qj);
+ var Whn, Xhn, Vhn, oH, Qhn = Ae(dc, "BoxLayoutProvider/PackingMode", 311, Ie, $ae, Boe), yne;
+ b(974, 1, lt, P2n), s.ue = function(e, t) {
+ return o1e(u(e, 157), u(t, 157));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(dc, "BoxLayoutProvider/lambda$0$Type", 974), b(975, 1, lt, I2n), s.ue = function(e, t) {
+ return e1e(u(e, 157), u(t, 157));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(dc, "BoxLayoutProvider/lambda$1$Type", 975), b(976, 1, lt, O2n), s.ue = function(e, t) {
+ return t1e(u(e, 157), u(t, 157));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(dc, "BoxLayoutProvider/lambda$2$Type", 976), b(1365, 1, { 831: 1 }, D2n), s.qg = function(e, t) {
+ return Oj(), !I(t, 160) || y8n((L2(), u(e, 160)), t);
+ }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type", 1365), b(1366, 1, Yn, G6n), s.td = function(e) {
+ Uwe(this.a, u(e, 146));
+ }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type", 1366), b(1367, 1, Yn, A2n), s.td = function(e) {
+ u(e, 94), Oj();
+ }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type", 1367), b(1371, 1, Yn, z6n), s.td = function(e) {
+ pbe(this.a, u(e, 94));
+ }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type", 1371), b(1369, 1, Ve, skn), s.Mb = function(e) {
+ return Dwe(this.a, this.b, u(e, 146));
+ }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type", 1369), b(1368, 1, Ve, okn), s.Mb = function(e) {
+ return Vce(this.a, this.b, u(e, 831));
+ }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type", 1368), b(1370, 1, Yn, fkn), s.td = function(e) {
+ Vfe(this.a, this.b, u(e, 146));
+ }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type", 1370), b(935, 1, {}, T2n), s.Kb = function(e) {
+ return fyn(e);
+ }, s.Fb = function(e) {
+ return this === e;
+ }, w(dc, "ElkUtil/lambda$0$Type", 935), b(936, 1, Yn, hkn), s.td = function(e) {
+ sme(this.a, this.b, u(e, 79));
+ }, s.a = 0, s.b = 0, w(dc, "ElkUtil/lambda$1$Type", 936), b(937, 1, Yn, lkn), s.td = function(e) {
+ sie(this.a, this.b, u(e, 202));
+ }, s.a = 0, s.b = 0, w(dc, "ElkUtil/lambda$2$Type", 937), b(938, 1, Yn, akn), s.td = function(e) {
+ Yre(this.a, this.b, u(e, 137));
+ }, s.a = 0, s.b = 0, w(dc, "ElkUtil/lambda$3$Type", 938), b(939, 1, Yn, U6n), s.td = function(e) {
+ lfe(this.a, u(e, 469));
+ }, w(dc, "ElkUtil/lambda$4$Type", 939), b(342, 1, { 35: 1, 342: 1 }, Nte), s.wd = function(e) {
+ return Mce(this, u(e, 236));
+ }, s.Fb = function(e) {
+ var t;
+ return I(e, 342) ? (t = u(e, 342), this.a == t.a) : !1;
+ }, s.Hb = function() {
+ return zt(this.a);
+ }, s.Ib = function() {
+ return this.a + " (exclusive)";
+ }, s.a = 0, w(dc, "ExclusiveBounds/ExclusiveLowerBound", 342), b(1138, 209, La, M2n), s.Ze = function(e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $, O, x, _, U, en, ln, wn;
+ for (le(t, "Fixed Layout", 1), o = u(hn(e, (Xe(), Jfn)), 218), g = 0, p = 0, O = new ie((!e.a && (e.a = new V(Pt, e, 10, 11)), e.a)); O.e != O.i.gc(); ) {
+ for (S = u(oe(O), 33), wn = u(hn(S, (wT(), t9)), 8), wn && (Jo(S, wn.a, wn.b), u(hn(S, Nhn), 174).Hc((Vu(), sw)) && (v = u(hn(S, Rhn), 8), v.a > 0 && v.b > 0 && i0(S, v.a, v.b, !0, !0))), g = j.Math.max(g, S.i + S.g), p = j.Math.max(p, S.j + S.f), a = new ie((!S.n && (S.n = new V(Rr, S, 1, 7)), S.n)); a.e != a.i.gc(); )
+ h = u(oe(a), 137), wn = u(hn(h, t9), 8), wn && Jo(h, wn.a, wn.b), g = j.Math.max(g, S.i + h.i + h.g), p = j.Math.max(p, S.j + h.j + h.f);
+ for (U = new ie((!S.c && (S.c = new V(Ru, S, 9, 9)), S.c)); U.e != U.i.gc(); )
+ for (_ = u(oe(U), 118), wn = u(hn(_, t9), 8), wn && Jo(_, wn.a, wn.b), en = S.i + _.i, ln = S.j + _.j, g = j.Math.max(g, en + _.g), p = j.Math.max(p, ln + _.f), l = new ie((!_.n && (_.n = new V(Rr, _, 1, 7)), _.n)); l.e != l.i.gc(); )
+ h = u(oe(l), 137), wn = u(hn(h, t9), 8), wn && Jo(h, wn.a, wn.b), g = j.Math.max(g, en + h.i + h.g), p = j.Math.max(p, ln + h.j + h.f);
+ for (c = new re(ue(qh(S).a.Kc(), new Mn())); Se(c); )
+ i = u(ve(c), 79), d = j_n(i), g = j.Math.max(g, d.a), p = j.Math.max(p, d.b);
+ for (r = new re(ue(N7(S).a.Kc(), new Mn())); Se(r); )
+ i = u(ve(r), 79), At(fh(i)) != e && (d = j_n(i), g = j.Math.max(g, d.a), p = j.Math.max(p, d.b));
+ }
+ if (o == (Kh(), Ev))
+ for ($ = new ie((!e.a && (e.a = new V(Pt, e, 10, 11)), e.a)); $.e != $.i.gc(); )
+ for (S = u(oe($), 33), r = new re(ue(qh(S).a.Kc(), new Mn())); Se(r); )
+ i = u(ve(r), 79), f = rye(i), f.b == 0 ? gr(i, Rg, null) : gr(i, Rg, f);
+ on(sn(hn(e, (wT(), Bhn)))) || (x = u(hn(e, une), 116), C = g + x.b + x.c, m = p + x.d + x.a, i0(e, C, m, !0, !0)), ce(t);
+ }, w(dc, "FixedLayoutProvider", 1138), b(373, 134, { 3: 1, 414: 1, 373: 1, 94: 1, 134: 1 }, jI, RPn), s.Jf = function(e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (e)
+ try {
+ for (l = Mb(e, ";,;"), o = l, f = 0, h = o.length; f < h; ++f) {
+ if (c = o[f], i = Mb(c, "\\:"), r = $Z(L3(), i[0]), !r)
+ throw T(new Hn("Invalid option id: " + i[0]));
+ if (a = OZ(r, i[1]), a == null)
+ throw T(new Hn("Invalid option value: " + i[1]));
+ a == null ? (!this.q && (this.q = new we()), O2(this.q, r)) : (!this.q && (this.q = new we()), it(this.q, r, a));
+ }
+ } catch (d) {
+ throw d = jt(d), I(d, 102) ? (t = d, T(new pDn(t))) : T(d);
+ }
+ }, s.Ib = function() {
+ var e;
+ return e = Te(es(Wc((this.q ? this.q : (Pn(), Pn(), ph)).vc().Oc(), new x2n()), ub(new SEn(), new pln(), new bln(), new wln(), A(M(Nu, 1), z, 132, 0, [])))), e;
+ };
+ var jne = w(dc, "IndividualSpacings", 373);
+ b(971, 1, {}, x2n), s.Kb = function(e) {
+ return f1e(u(e, 42));
+ }, w(dc, "IndividualSpacings/lambda$0$Type", 971), b(709, 1, {}, uCn), s.c = 0, w(dc, "InstancePool", 709), b(1275, 1, {}, L2n), w(dc, "LoggedGraph", 1275), b(396, 22, { 3: 1, 35: 1, 22: 1, 396: 1 }, Jj);
+ var Jhn, ws, Yhn, Zhn, Ene = Ae(dc, "LoggedGraph/Type", 396, Ie, Fae, Roe), Cne;
+ b(46, 1, { 20: 1, 46: 1 }, Pi), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Fb = function(e) {
+ var t, i, r;
+ return I(e, 46) ? (i = u(e, 46), t = this.a == null ? i.a == null : tt(this.a, i.a), r = this.b == null ? i.b == null : tt(this.b, i.b), t && r) : !1;
+ }, s.Hb = function() {
+ var e, t, i, r, c, o;
+ return i = this.a == null ? 0 : mt(this.a), e = i & Wt, t = i & -65536, o = this.b == null ? 0 : mt(this.b), r = o & Wt, c = o & -65536, e ^ c >> 16 & Wt | t ^ r << 16;
+ }, s.Kc = function() {
+ return new W6n(this);
+ }, s.Ib = function() {
+ return this.a == null && this.b == null ? "pair(null,null)" : this.a == null ? "pair(null," + Nr(this.b) + ")" : this.b == null ? "pair(" + Nr(this.a) + ",null)" : "pair(" + Nr(this.a) + "," + Nr(this.b) + ")";
+ }, w(dc, "Pair", 46), b(983, 1, Ei, W6n), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return !this.c && (!this.b && this.a.a != null || this.a.b != null);
+ }, s.Pb = function() {
+ if (!this.c && !this.b && this.a.a != null)
+ return this.b = !0, this.a.a;
+ if (!this.c && this.a.b != null)
+ return this.c = !0, this.a.b;
+ throw T(new rc());
+ }, s.Qb = function() {
+ throw this.c && this.a.b != null ? this.a.b = null : this.b && this.a.a != null && (this.a.a = null), T(new su());
+ }, s.b = !1, s.c = !1, w(dc, "Pair/1", 983), b(448, 1, { 448: 1 }, ETn), s.Fb = function(e) {
+ return vc(this.a, u(e, 448).a) && vc(this.c, u(e, 448).c) && vc(this.d, u(e, 448).d) && vc(this.b, u(e, 448).b);
+ }, s.Hb = function() {
+ return gT(A(M(Zn, 1), rn, 1, 5, [this.a, this.c, this.d, this.b]));
+ }, s.Ib = function() {
+ return "(" + this.a + Qi + this.c + Qi + this.d + Qi + this.b + ")";
+ }, w(dc, "Quadruple", 448), b(1126, 209, La, N2n), s.Ze = function(e, t) {
+ var i, r, c, o, f;
+ if (le(t, "Random Layout", 1), (!e.a && (e.a = new V(Pt, e, 10, 11)), e.a).i == 0) {
+ ce(t);
+ return;
+ }
+ o = u(hn(e, (NQ(), pne)), 19), o && o.a != 0 ? c = new EC(o.a) : c = new OF(), i = x9(Y(hn(e, wne))), f = x9(Y(hn(e, vne))), r = u(hn(e, gne), 116), vCe(e, c, i, f, r), ce(t);
+ }, w(dc, "RandomLayoutProvider", 1126);
+ var Tne;
+ b(553, 1, {}), s.qf = function() {
+ return new fn(this.f.i, this.f.j);
+ }, s.We = function(e) {
+ return VTn(e, (Xe(), Bu)) ? hn(this.f, Mne) : hn(this.f, e);
+ }, s.rf = function() {
+ return new fn(this.f.g, this.f.f);
+ }, s.sf = function() {
+ return this.g;
+ }, s.Xe = function(e) {
+ return ga(this.f, e);
+ }, s.tf = function(e) {
+ Yc(this.f, e.a), Zc(this.f, e.b);
+ }, s.uf = function(e) {
+ _d(this.f, e.a), Rd(this.f, e.b);
+ }, s.vf = function(e) {
+ this.g = e;
+ }, s.g = 0;
+ var Mne;
+ w(nm, "ElkGraphAdapters/AbstractElkGraphElementAdapter", 553), b(554, 1, { 839: 1 }, cj), s.wf = function() {
+ var e, t;
+ if (!this.b)
+ for (this.b = mC(JE(this.a).i), t = new ie(JE(this.a)); t.e != t.i.gc(); )
+ e = u(oe(t), 137), W(this.b, new XI(e));
+ return this.b;
+ }, s.b = null, w(nm, "ElkGraphAdapters/ElkEdgeAdapter", 554), b(301, 553, {}, B0), s.xf = function() {
+ return EFn(this);
+ }, s.a = null, w(nm, "ElkGraphAdapters/ElkGraphAdapter", 301), b(630, 553, { 181: 1 }, XI), w(nm, "ElkGraphAdapters/ElkLabelAdapter", 630), b(629, 553, { 680: 1 }, WO), s.wf = function() {
+ return k3e(this);
+ }, s.Af = function() {
+ var e;
+ return e = u(hn(this.f, (Xe(), my)), 142), !e && (e = new Bv()), e;
+ }, s.Cf = function() {
+ return y3e(this);
+ }, s.Ef = function(e) {
+ var t;
+ t = new oD(e), gr(this.f, (Xe(), my), t);
+ }, s.Ff = function(e) {
+ gr(this.f, (Xe(), ed), new DU(e));
+ }, s.yf = function() {
+ return this.d;
+ }, s.zf = function() {
+ var e, t;
+ if (!this.a)
+ for (this.a = new X(), t = new re(ue(N7(u(this.f, 33)).a.Kc(), new Mn())); Se(t); )
+ e = u(ve(t), 79), W(this.a, new cj(e));
+ return this.a;
+ }, s.Bf = function() {
+ var e, t;
+ if (!this.c)
+ for (this.c = new X(), t = new re(ue(qh(u(this.f, 33)).a.Kc(), new Mn())); Se(t); )
+ e = u(ve(t), 79), W(this.c, new cj(e));
+ return this.c;
+ }, s.Df = function() {
+ return iC(u(this.f, 33)).i != 0 || on(sn(u(this.f, 33).We((Xe(), vy))));
+ }, s.Gf = function() {
+ l0e(this, (H0(), Tne));
+ }, s.a = null, s.b = null, s.c = null, s.d = null, s.e = null, w(nm, "ElkGraphAdapters/ElkNodeAdapter", 629), b(1266, 553, { 838: 1 }, jmn), s.wf = function() {
+ return P3e(this);
+ }, s.zf = function() {
+ var e, t;
+ if (!this.a)
+ for (this.a = nh(u(this.f, 118).xg().i), t = new ie(u(this.f, 118).xg()); t.e != t.i.gc(); )
+ e = u(oe(t), 79), W(this.a, new cj(e));
+ return this.a;
+ }, s.Bf = function() {
+ var e, t;
+ if (!this.c)
+ for (this.c = nh(u(this.f, 118).yg().i), t = new ie(u(this.f, 118).yg()); t.e != t.i.gc(); )
+ e = u(oe(t), 79), W(this.c, new cj(e));
+ return this.c;
+ }, s.Hf = function() {
+ return u(u(this.f, 118).We((Xe(), Hg)), 61);
+ }, s.If = function() {
+ var e, t, i, r, c, o, f, h;
+ for (r = nf(u(this.f, 118)), i = new ie(u(this.f, 118).yg()); i.e != i.i.gc(); )
+ for (e = u(oe(i), 79), h = new ie((!e.c && (e.c = new Fn(he, e, 5, 8)), e.c)); h.e != h.i.gc(); ) {
+ if (f = u(oe(h), 82), fb(Ir(f), r))
+ return !0;
+ if (Ir(f) == r && on(sn(hn(e, (Xe(), VK)))))
+ return !0;
+ }
+ for (t = new ie(u(this.f, 118).xg()); t.e != t.i.gc(); )
+ for (e = u(oe(t), 79), o = new ie((!e.b && (e.b = new Fn(he, e, 4, 7)), e.b)); o.e != o.i.gc(); )
+ if (c = u(oe(o), 82), fb(Ir(c), r))
+ return !0;
+ return !1;
+ }, s.a = null, s.b = null, s.c = null, w(nm, "ElkGraphAdapters/ElkPortAdapter", 1266), b(1267, 1, lt, B2n), s.ue = function(e, t) {
+ return J7e(u(e, 118), u(t, 118));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(nm, "ElkGraphAdapters/PortComparator", 1267);
+ var Gl = Et(Ps, "EObject"), Mv = Et(bg, hqn), to = Et(bg, lqn), Iy = Et(bg, aqn), Oy = Et(bg, "ElkShape"), he = Et(bg, dqn), bi = Et(bg, Atn), Tt = Et(bg, bqn), Dy = Et(Ps, wqn), h9 = Et(Ps, "EFactory"), Ane, fH = Et(Ps, gqn), Vo = Et(Ps, "EPackage"), mi, Sne, Pne, n1n, XP, Ine, e1n, t1n, i1n, zl, One, Dne, Rr = Et(bg, Stn), Pt = Et(bg, Ptn), Ru = Et(bg, Itn);
+ b(90, 1, pqn), s.Jg = function() {
+ return this.Kg(), null;
+ }, s.Kg = function() {
+ return null;
+ }, s.Lg = function() {
+ return this.Kg(), !1;
+ }, s.Mg = function() {
+ return !1;
+ }, s.Ng = function(e) {
+ et(this, e);
+ }, w(sp, "BasicNotifierImpl", 90), b(97, 90, yqn), s.nh = function() {
+ return Hu(this);
+ }, s.Og = function(e, t) {
+ return e;
+ }, s.Pg = function() {
+ throw T(new je());
+ }, s.Qg = function(e) {
+ var t;
+ return t = ir(u(On(this.Tg(), this.Vg()), 18)), this.eh().ih(this, t.n, t.f, e);
+ }, s.Rg = function(e, t) {
+ throw T(new je());
+ }, s.Sg = function(e, t, i) {
+ return ss(this, e, t, i);
+ }, s.Tg = function() {
+ var e;
+ return this.Pg() && (e = this.Pg().ck(), e) ? e : this.zh();
+ }, s.Ug = function() {
+ return Fx(this);
+ }, s.Vg = function() {
+ throw T(new je());
+ }, s.Wg = function() {
+ var e, t;
+ return t = this.ph().dk(), !t && this.Pg().ik(t = (Zv(), e = VW(Lf(this.Tg())), e == null ? pH : new c8(this, e))), t;
+ }, s.Xg = function(e, t) {
+ return e;
+ }, s.Yg = function(e) {
+ var t;
+ return t = e.Gj(), t ? e.aj() : yt(this.Tg(), e);
+ }, s.Zg = function() {
+ var e;
+ return e = this.Pg(), e ? e.fk() : null;
+ }, s.$g = function() {
+ return this.Pg() ? this.Pg().ck() : null;
+ }, s._g = function(e, t, i) {
+ return BT(this, e, t, i);
+ }, s.ah = function(e) {
+ return M3(this, e);
+ }, s.bh = function(e, t) {
+ return T$(this, e, t);
+ }, s.dh = function() {
+ var e;
+ return e = this.Pg(), !!e && e.gk();
+ }, s.eh = function() {
+ throw T(new je());
+ }, s.fh = function() {
+ return OT(this);
+ }, s.gh = function(e, t, i, r) {
+ return _2(this, e, t, r);
+ }, s.hh = function(e, t, i) {
+ var r;
+ return r = u(On(this.Tg(), t), 66), r.Nj().Qj(this, this.yh(), t - this.Ah(), e, i);
+ }, s.ih = function(e, t, i, r) {
+ return sC(this, e, t, r);
+ }, s.jh = function(e, t, i) {
+ var r;
+ return r = u(On(this.Tg(), t), 66), r.Nj().Rj(this, this.yh(), t - this.Ah(), e, i);
+ }, s.kh = function() {
+ return !!this.Pg() && !!this.Pg().ek();
+ }, s.lh = function(e) {
+ return zF(this, e);
+ }, s.mh = function(e) {
+ return aMn(this, e);
+ }, s.oh = function(e) {
+ return NRn(this, e);
+ }, s.ph = function() {
+ throw T(new je());
+ }, s.qh = function() {
+ return this.Pg() ? this.Pg().ek() : null;
+ }, s.rh = function() {
+ return OT(this);
+ }, s.sh = function(e, t) {
+ Px(this, e, t);
+ }, s.th = function(e) {
+ this.ph().hk(e);
+ }, s.uh = function(e) {
+ this.ph().kk(e);
+ }, s.vh = function(e) {
+ this.ph().jk(e);
+ }, s.wh = function(e, t) {
+ var i, r, c, o;
+ return o = this.Zg(), o && e && (t = Gi(o.Vk(), this, t), o.Zk(this)), r = this.eh(), r && (Qx(this, this.eh(), this.Vg()).Bb & Ji ? (c = r.fh(), c && (e ? !o && c.Zk(this) : c.Yk(this))) : (t = (i = this.Vg(), i >= 0 ? this.Qg(t) : this.eh().ih(this, -1 - i, null, t)), t = this.Sg(null, -1, t))), this.uh(e), t;
+ }, s.xh = function(e) {
+ var t, i, r, c, o, f, h, l;
+ if (i = this.Tg(), o = yt(i, e), t = this.Ah(), o >= t)
+ return u(e, 66).Nj().Uj(this, this.yh(), o - t);
+ if (o <= -1)
+ if (f = rg((bu(), xi), i, e), f) {
+ if (er(), u(f, 66).Oj() || (f = A2(Er(xi, f))), c = (r = this.Yg(f), u(r >= 0 ? this._g(r, !0, !0) : Zd(this, f, !0), 153)), l = f.Zj(), l > 1 || l == -1)
+ return u(u(c, 215).hl(e, !1), 76);
+ } else
+ throw T(new Hn(Sl + e.ne() + MB));
+ else if (e.$j())
+ return r = this.Yg(e), u(r >= 0 ? this._g(r, !1, !0) : Zd(this, e, !1), 76);
+ return h = new Dkn(this, e), h;
+ }, s.yh = function() {
+ return QX(this);
+ }, s.zh = function() {
+ return (sl(), Nn).S;
+ }, s.Ah = function() {
+ return ee(this.zh());
+ }, s.Bh = function(e) {
+ Cx(this, e);
+ }, s.Ib = function() {
+ return yo(this);
+ }, w(Bn, "BasicEObjectImpl", 97);
+ var $ne;
+ b(114, 97, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1 }), s.Ch = function(e) {
+ var t;
+ return t = JX(this), t[e];
+ }, s.Dh = function(e, t) {
+ var i;
+ i = JX(this), Mt(i, e, t);
+ }, s.Eh = function(e) {
+ var t;
+ t = JX(this), Mt(t, e, null);
+ }, s.Jg = function() {
+ return u(Rn(this, 4), 126);
+ }, s.Kg = function() {
+ throw T(new je());
+ }, s.Lg = function() {
+ return (this.Db & 4) != 0;
+ }, s.Pg = function() {
+ throw T(new je());
+ }, s.Fh = function(e) {
+ R2(this, 2, e);
+ }, s.Rg = function(e, t) {
+ this.Db = t << 16 | this.Db & 255, this.Fh(e);
+ }, s.Tg = function() {
+ return Xc(this);
+ }, s.Vg = function() {
+ return this.Db >> 16;
+ }, s.Wg = function() {
+ var e, t;
+ return Zv(), t = VW(Lf((e = u(Rn(this, 16), 26), e || this.zh()))), t == null ? pH : new c8(this, t);
+ }, s.Mg = function() {
+ return (this.Db & 1) == 0;
+ }, s.Zg = function() {
+ return u(Rn(this, 128), 1935);
+ }, s.$g = function() {
+ return u(Rn(this, 16), 26);
+ }, s.dh = function() {
+ return (this.Db & 32) != 0;
+ }, s.eh = function() {
+ return u(Rn(this, 2), 49);
+ }, s.kh = function() {
+ return (this.Db & 64) != 0;
+ }, s.ph = function() {
+ throw T(new je());
+ }, s.qh = function() {
+ return u(Rn(this, 64), 281);
+ }, s.th = function(e) {
+ R2(this, 16, e);
+ }, s.uh = function(e) {
+ R2(this, 128, e);
+ }, s.vh = function(e) {
+ R2(this, 64, e);
+ }, s.yh = function() {
+ return Bc(this);
+ }, s.Db = 0, w(Bn, "MinimalEObjectImpl", 114), b(115, 114, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }), s.Fh = function(e) {
+ this.Cb = e;
+ }, s.eh = function() {
+ return this.Cb;
+ }, w(Bn, "MinimalEObjectImpl/Container", 115), b(1985, 115, { 105: 1, 413: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }), s._g = function(e, t, i) {
+ return oJ(this, e, t, i);
+ }, s.jh = function(e, t, i) {
+ return QJ(this, e, t, i);
+ }, s.lh = function(e) {
+ return sX(this, e);
+ }, s.sh = function(e, t) {
+ WV(this, e, t);
+ }, s.zh = function() {
+ return $c(), Dne;
+ }, s.Bh = function(e) {
+ LV(this, e);
+ }, s.Ve = function() {
+ return G$n(this);
+ }, s.We = function(e) {
+ return hn(this, e);
+ }, s.Xe = function(e) {
+ return ga(this, e);
+ }, s.Ye = function(e, t) {
+ return gr(this, e, t);
+ }, w(Ra, "EMapPropertyHolderImpl", 1985), b(567, 115, { 105: 1, 469: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Xy), s._g = function(e, t, i) {
+ switch (e) {
+ case 0:
+ return this.a;
+ case 1:
+ return this.b;
+ }
+ return BT(this, e, t, i);
+ }, s.lh = function(e) {
+ switch (e) {
+ case 0:
+ return this.a != 0;
+ case 1:
+ return this.b != 0;
+ }
+ return zF(this, e);
+ }, s.sh = function(e, t) {
+ switch (e) {
+ case 0:
+ UC(this, K(Y(t)));
+ return;
+ case 1:
+ WC(this, K(Y(t)));
+ return;
+ }
+ Px(this, e, t);
+ }, s.zh = function() {
+ return $c(), Sne;
+ }, s.Bh = function(e) {
+ switch (e) {
+ case 0:
+ UC(this, 0);
+ return;
+ case 1:
+ WC(this, 0);
+ return;
+ }
+ Cx(this, e);
+ }, s.Ib = function() {
+ var e;
+ return this.Db & 64 ? yo(this) : (e = new Ns(yo(this)), e.a += " (x: ", mw(e, this.a), e.a += ", y: ", mw(e, this.b), e.a += ")", e.a);
+ }, s.a = 0, s.b = 0, w(Ra, "ElkBendPointImpl", 567), b(723, 1985, { 105: 1, 413: 1, 160: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }), s._g = function(e, t, i) {
+ return aQ(this, e, t, i);
+ }, s.hh = function(e, t, i) {
+ return vx(this, e, t, i);
+ }, s.jh = function(e, t, i) {
+ return tF(this, e, t, i);
+ }, s.lh = function(e) {
+ return SV(this, e);
+ }, s.sh = function(e, t) {
+ AJ(this, e, t);
+ }, s.zh = function() {
+ return $c(), Ine;
+ }, s.Bh = function(e) {
+ oQ(this, e);
+ }, s.zg = function() {
+ return this.k;
+ }, s.Ag = function() {
+ return JE(this);
+ }, s.Ib = function() {
+ return PF(this);
+ }, s.k = null, w(Ra, "ElkGraphElementImpl", 723), b(724, 723, { 105: 1, 413: 1, 160: 1, 470: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }), s._g = function(e, t, i) {
+ return jQ(this, e, t, i);
+ }, s.lh = function(e) {
+ return PQ(this, e);
+ }, s.sh = function(e, t) {
+ SJ(this, e, t);
+ }, s.zh = function() {
+ return $c(), One;
+ }, s.Bh = function(e) {
+ FQ(this, e);
+ }, s.Bg = function() {
+ return this.f;
+ }, s.Cg = function() {
+ return this.g;
+ }, s.Dg = function() {
+ return this.i;
+ }, s.Eg = function() {
+ return this.j;
+ }, s.Fg = function(e, t) {
+ rE(this, e, t);
+ }, s.Gg = function(e, t) {
+ Jo(this, e, t);
+ }, s.Hg = function(e) {
+ Yc(this, e);
+ }, s.Ig = function(e) {
+ Zc(this, e);
+ }, s.Ib = function() {
+ return Ex(this);
+ }, s.f = 0, s.g = 0, s.i = 0, s.j = 0, w(Ra, "ElkShapeImpl", 724), b(725, 724, { 105: 1, 413: 1, 82: 1, 160: 1, 470: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }), s._g = function(e, t, i) {
+ return tJ(this, e, t, i);
+ }, s.hh = function(e, t, i) {
+ return yJ(this, e, t, i);
+ }, s.jh = function(e, t, i) {
+ return jJ(this, e, t, i);
+ }, s.lh = function(e) {
+ return zV(this, e);
+ }, s.sh = function(e, t) {
+ OY(this, e, t);
+ }, s.zh = function() {
+ return $c(), Pne;
+ }, s.Bh = function(e) {
+ XQ(this, e);
+ }, s.xg = function() {
+ return !this.d && (this.d = new Fn(bi, this, 8, 5)), this.d;
+ }, s.yg = function() {
+ return !this.e && (this.e = new Fn(bi, this, 7, 4)), this.e;
+ }, w(Ra, "ElkConnectableShapeImpl", 725), b(352, 723, { 105: 1, 413: 1, 79: 1, 160: 1, 352: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, VH), s.Qg = function(e) {
+ return pJ(this, e);
+ }, s._g = function(e, t, i) {
+ switch (e) {
+ case 3:
+ return S8(this);
+ case 4:
+ return !this.b && (this.b = new Fn(he, this, 4, 7)), this.b;
+ case 5:
+ return !this.c && (this.c = new Fn(he, this, 5, 8)), this.c;
+ case 6:
+ return !this.a && (this.a = new V(Tt, this, 6, 6)), this.a;
+ case 7:
+ return qn(), !this.b && (this.b = new Fn(he, this, 4, 7)), !(this.b.i <= 1 && (!this.c && (this.c = new Fn(he, this, 5, 8)), this.c.i <= 1));
+ case 8:
+ return qn(), !!j6(this);
+ case 9:
+ return qn(), !!Yd(this);
+ case 10:
+ return qn(), !this.b && (this.b = new Fn(he, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new Fn(he, this, 5, 8)), this.c.i != 0);
+ }
+ return aQ(this, e, t, i);
+ }, s.hh = function(e, t, i) {
+ var r;
+ switch (t) {
+ case 3:
+ return this.Cb && (i = (r = this.Db >> 16, r >= 0 ? pJ(this, i) : this.Cb.ih(this, -1 - r, null, i))), hU(this, u(e, 33), i);
+ case 4:
+ return !this.b && (this.b = new Fn(he, this, 4, 7)), Dc(this.b, e, i);
+ case 5:
+ return !this.c && (this.c = new Fn(he, this, 5, 8)), Dc(this.c, e, i);
+ case 6:
+ return !this.a && (this.a = new V(Tt, this, 6, 6)), Dc(this.a, e, i);
+ }
+ return vx(this, e, t, i);
+ }, s.jh = function(e, t, i) {
+ switch (t) {
+ case 3:
+ return hU(this, null, i);
+ case 4:
+ return !this.b && (this.b = new Fn(he, this, 4, 7)), Gi(this.b, e, i);
+ case 5:
+ return !this.c && (this.c = new Fn(he, this, 5, 8)), Gi(this.c, e, i);
+ case 6:
+ return !this.a && (this.a = new V(Tt, this, 6, 6)), Gi(this.a, e, i);
+ }
+ return tF(this, e, t, i);
+ }, s.lh = function(e) {
+ switch (e) {
+ case 3:
+ return !!S8(this);
+ case 4:
+ return !!this.b && this.b.i != 0;
+ case 5:
+ return !!this.c && this.c.i != 0;
+ case 6:
+ return !!this.a && this.a.i != 0;
+ case 7:
+ return !this.b && (this.b = new Fn(he, this, 4, 7)), !(this.b.i <= 1 && (!this.c && (this.c = new Fn(he, this, 5, 8)), this.c.i <= 1));
+ case 8:
+ return j6(this);
+ case 9:
+ return Yd(this);
+ case 10:
+ return !this.b && (this.b = new Fn(he, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new Fn(he, this, 5, 8)), this.c.i != 0);
+ }
+ return SV(this, e);
+ }, s.sh = function(e, t) {
+ switch (e) {
+ case 3:
+ _x(this, u(t, 33));
+ return;
+ case 4:
+ !this.b && (this.b = new Fn(he, this, 4, 7)), de(this.b), !this.b && (this.b = new Fn(he, this, 4, 7)), $t(this.b, u(t, 14));
+ return;
+ case 5:
+ !this.c && (this.c = new Fn(he, this, 5, 8)), de(this.c), !this.c && (this.c = new Fn(he, this, 5, 8)), $t(this.c, u(t, 14));
+ return;
+ case 6:
+ !this.a && (this.a = new V(Tt, this, 6, 6)), de(this.a), !this.a && (this.a = new V(Tt, this, 6, 6)), $t(this.a, u(t, 14));
+ return;
+ }
+ AJ(this, e, t);
+ }, s.zh = function() {
+ return $c(), n1n;
+ }, s.Bh = function(e) {
+ switch (e) {
+ case 3:
+ _x(this, null);
+ return;
+ case 4:
+ !this.b && (this.b = new Fn(he, this, 4, 7)), de(this.b);
+ return;
+ case 5:
+ !this.c && (this.c = new Fn(he, this, 5, 8)), de(this.c);
+ return;
+ case 6:
+ !this.a && (this.a = new V(Tt, this, 6, 6)), de(this.a);
+ return;
+ }
+ oQ(this, e);
+ }, s.Ib = function() {
+ return jRn(this);
+ }, w(Ra, "ElkEdgeImpl", 352), b(439, 1985, { 105: 1, 413: 1, 202: 1, 439: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Vy), s.Qg = function(e) {
+ return dJ(this, e);
+ }, s._g = function(e, t, i) {
+ switch (e) {
+ case 1:
+ return this.j;
+ case 2:
+ return this.k;
+ case 3:
+ return this.b;
+ case 4:
+ return this.c;
+ case 5:
+ return !this.a && (this.a = new Yt(to, this, 5)), this.a;
+ case 6:
+ return fMn(this);
+ case 7:
+ return t ? QF(this) : this.i;
+ case 8:
+ return t ? VF(this) : this.f;
+ case 9:
+ return !this.g && (this.g = new Fn(Tt, this, 9, 10)), this.g;
+ case 10:
+ return !this.e && (this.e = new Fn(Tt, this, 10, 9)), this.e;
+ case 11:
+ return this.d;
+ }
+ return oJ(this, e, t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c, o;
+ switch (t) {
+ case 6:
+ return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? dJ(this, i) : this.Cb.ih(this, -1 - c, null, i))), lU(this, u(e, 79), i);
+ case 9:
+ return !this.g && (this.g = new Fn(Tt, this, 9, 10)), Dc(this.g, e, i);
+ case 10:
+ return !this.e && (this.e = new Fn(Tt, this, 10, 9)), Dc(this.e, e, i);
+ }
+ return o = u(On((r = u(Rn(this, 16), 26), r || ($c(), XP)), t), 66), o.Nj().Qj(this, Bc(this), t - ee(($c(), XP)), e, i);
+ }, s.jh = function(e, t, i) {
+ switch (t) {
+ case 5:
+ return !this.a && (this.a = new Yt(to, this, 5)), Gi(this.a, e, i);
+ case 6:
+ return lU(this, null, i);
+ case 9:
+ return !this.g && (this.g = new Fn(Tt, this, 9, 10)), Gi(this.g, e, i);
+ case 10:
+ return !this.e && (this.e = new Fn(Tt, this, 10, 9)), Gi(this.e, e, i);
+ }
+ return QJ(this, e, t, i);
+ }, s.lh = function(e) {
+ switch (e) {
+ case 1:
+ return this.j != 0;
+ case 2:
+ return this.k != 0;
+ case 3:
+ return this.b != 0;
+ case 4:
+ return this.c != 0;
+ case 5:
+ return !!this.a && this.a.i != 0;
+ case 6:
+ return !!fMn(this);
+ case 7:
+ return !!this.i;
+ case 8:
+ return !!this.f;
+ case 9:
+ return !!this.g && this.g.i != 0;
+ case 10:
+ return !!this.e && this.e.i != 0;
+ case 11:
+ return this.d != null;
+ }
+ return sX(this, e);
+ }, s.sh = function(e, t) {
+ switch (e) {
+ case 1:
+ D3(this, K(Y(t)));
+ return;
+ case 2:
+ F3(this, K(Y(t)));
+ return;
+ case 3:
+ O3(this, K(Y(t)));
+ return;
+ case 4:
+ $3(this, K(Y(t)));
+ return;
+ case 5:
+ !this.a && (this.a = new Yt(to, this, 5)), de(this.a), !this.a && (this.a = new Yt(to, this, 5)), $t(this.a, u(t, 14));
+ return;
+ case 6:
+ ENn(this, u(t, 79));
+ return;
+ case 7:
+ YC(this, u(t, 82));
+ return;
+ case 8:
+ JC(this, u(t, 82));
+ return;
+ case 9:
+ !this.g && (this.g = new Fn(Tt, this, 9, 10)), de(this.g), !this.g && (this.g = new Fn(Tt, this, 9, 10)), $t(this.g, u(t, 14));
+ return;
+ case 10:
+ !this.e && (this.e = new Fn(Tt, this, 10, 9)), de(this.e), !this.e && (this.e = new Fn(Tt, this, 10, 9)), $t(this.e, u(t, 14));
+ return;
+ case 11:
+ mV(this, Te(t));
+ return;
+ }
+ WV(this, e, t);
+ }, s.zh = function() {
+ return $c(), XP;
+ }, s.Bh = function(e) {
+ switch (e) {
+ case 1:
+ D3(this, 0);
+ return;
+ case 2:
+ F3(this, 0);
+ return;
+ case 3:
+ O3(this, 0);
+ return;
+ case 4:
+ $3(this, 0);
+ return;
+ case 5:
+ !this.a && (this.a = new Yt(to, this, 5)), de(this.a);
+ return;
+ case 6:
+ ENn(this, null);
+ return;
+ case 7:
+ YC(this, null);
+ return;
+ case 8:
+ JC(this, null);
+ return;
+ case 9:
+ !this.g && (this.g = new Fn(Tt, this, 9, 10)), de(this.g);
+ return;
+ case 10:
+ !this.e && (this.e = new Fn(Tt, this, 10, 9)), de(this.e);
+ return;
+ case 11:
+ mV(this, null);
+ return;
+ }
+ LV(this, e);
+ }, s.Ib = function() {
+ return KLn(this);
+ }, s.b = 0, s.c = 0, s.d = null, s.j = 0, s.k = 0, w(Ra, "ElkEdgeSectionImpl", 439), b(150, 115, { 105: 1, 92: 1, 90: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }), s._g = function(e, t, i) {
+ var r;
+ return e == 0 ? (!this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab) : Es(this, e - ee(this.zh()), On((r = u(Rn(this, 16), 26), r || this.zh()), e), t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c;
+ return t == 0 ? (!this.Ab && (this.Ab = new V(Be, this, 0, 3)), Dc(this.Ab, e, i)) : (c = u(On((r = u(Rn(this, 16), 26), r || this.zh()), t), 66), c.Nj().Qj(this, Bc(this), t - ee(this.zh()), e, i));
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ return t == 0 ? (!this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i)) : (c = u(On((r = u(Rn(this, 16), 26), r || this.zh()), t), 66), c.Nj().Rj(this, Bc(this), t - ee(this.zh()), e, i));
+ }, s.lh = function(e) {
+ var t;
+ return e == 0 ? !!this.Ab && this.Ab.i != 0 : ys(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.oh = function(e) {
+ return RZ(this, e);
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ }
+ Ss(this, e - ee(this.zh()), On((i = u(Rn(this, 16), 26), i || this.zh()), e), t);
+ }, s.uh = function(e) {
+ R2(this, 128, e);
+ }, s.zh = function() {
+ return Sn(), Jne;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ }
+ Ms(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.Gh = function() {
+ this.Bb |= 1;
+ }, s.Hh = function(e) {
+ return A6(this, e);
+ }, s.Bb = 0, w(Bn, "EModelElementImpl", 150), b(704, 150, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, eq), s.Ih = function(e, t) {
+ return YRn(this, e, t);
+ }, s.Jh = function(e) {
+ var t, i, r, c, o;
+ if (this.a != ts(e) || e.Bb & 256)
+ throw T(new Hn(SB + e.zb + l0));
+ for (r = Ar(e); wc(r.a).i != 0; ) {
+ if (i = u(X7(r, 0, (t = u(D(wc(r.a), 0), 87), o = t.c, I(o, 88) ? u(o, 26) : (Sn(), uo))), 26), Jd(i))
+ return c = ts(i).Nh().Jh(i), u(c, 49).th(e), c;
+ r = Ar(i);
+ }
+ return (e.D != null ? e.D : e.B) == "java.util.Map$Entry" ? new WEn(e) : new JU(e);
+ }, s.Kh = function(e, t) {
+ return r0(this, e, t);
+ }, s._g = function(e, t, i) {
+ var r;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.a;
+ }
+ return Es(this, e - ee((Sn(), Vl)), On((r = u(Rn(this, 16), 26), r || Vl), e), t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Dc(this.Ab, e, i);
+ case 1:
+ return this.a && (i = u(this.a, 49).ih(this, 4, Vo, i)), uQ(this, u(e, 235), i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || (Sn(), Vl)), t), 66), c.Nj().Qj(this, Bc(this), t - ee((Sn(), Vl)), e, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 1:
+ return uQ(this, null, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || (Sn(), Vl)), t), 66), c.Nj().Rj(this, Bc(this), t - ee((Sn(), Vl)), e, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return !!this.a;
+ }
+ return ys(this, e - ee((Sn(), Vl)), On((t = u(Rn(this, 16), 26), t || Vl), e));
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ Exn(this, u(t, 235));
+ return;
+ }
+ Ss(this, e - ee((Sn(), Vl)), On((i = u(Rn(this, 16), 26), i || Vl), e), t);
+ }, s.zh = function() {
+ return Sn(), Vl;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ Exn(this, null);
+ return;
+ }
+ Ms(this, e - ee((Sn(), Vl)), On((t = u(Rn(this, 16), 26), t || Vl), e));
+ };
+ var l9, r1n, Fne;
+ w(Bn, "EFactoryImpl", 704), b(Eo, 704, { 105: 1, 2014: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, _2n), s.Ih = function(e, t) {
+ switch (e.yj()) {
+ case 12:
+ return u(t, 146).tg();
+ case 13:
+ return Nr(t);
+ default:
+ throw T(new Hn(B4 + e.ne() + l0));
+ }
+ }, s.Jh = function(e) {
+ var t, i, r, c, o, f, h, l;
+ switch (e.G == -1 && (e.G = (t = ts(e), t ? v1(t.Mh(), e) : -1)), e.G) {
+ case 4:
+ return o = new QH(), o;
+ case 6:
+ return f = new nG(), f;
+ case 7:
+ return h = new eG(), h;
+ case 8:
+ return r = new VH(), r;
+ case 9:
+ return i = new Xy(), i;
+ case 10:
+ return c = new Vy(), c;
+ case 11:
+ return l = new K2n(), l;
+ default:
+ throw T(new Hn(SB + e.zb + l0));
+ }
+ }, s.Kh = function(e, t) {
+ switch (e.yj()) {
+ case 13:
+ case 12:
+ return null;
+ default:
+ throw T(new Hn(B4 + e.ne() + l0));
+ }
+ }, w(Ra, "ElkGraphFactoryImpl", Eo), b(438, 150, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }), s.Wg = function() {
+ var e, t;
+ return t = (e = u(Rn(this, 16), 26), VW(Lf(e || this.zh()))), t == null ? (Zv(), Zv(), pH) : new bjn(this, t);
+ }, s._g = function(e, t, i) {
+ var r;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.ne();
+ }
+ return Es(this, e - ee(this.zh()), On((r = u(Rn(this, 16), 26), r || this.zh()), e), t, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ }
+ return ys(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ this.Lh(Te(t));
+ return;
+ }
+ Ss(this, e - ee(this.zh()), On((i = u(Rn(this, 16), 26), i || this.zh()), e), t);
+ }, s.zh = function() {
+ return Sn(), Yne;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ this.Lh(null);
+ return;
+ }
+ Ms(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.ne = function() {
+ return this.zb;
+ }, s.Lh = function(e) {
+ Oc(this, e);
+ }, s.Ib = function() {
+ return r6(this);
+ }, s.zb = null, w(Bn, "ENamedElementImpl", 438), b(179, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1 }, XTn), s.Qg = function(e) {
+ return NFn(this, e);
+ }, s._g = function(e, t, i) {
+ var r;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return this.yb;
+ case 3:
+ return this.xb;
+ case 4:
+ return this.sb;
+ case 5:
+ return !this.rb && (this.rb = new Z0(this, Qo, this)), this.rb;
+ case 6:
+ return !this.vb && (this.vb = new g2(Vo, this, 6, 7)), this.vb;
+ case 7:
+ return t ? this.Db >> 16 == 7 ? u(this.Cb, 235) : null : hMn(this);
+ }
+ return Es(this, e - ee((Sn(), B1)), On((r = u(Rn(this, 16), 26), r || B1), e), t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c, o;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Dc(this.Ab, e, i);
+ case 4:
+ return this.sb && (i = u(this.sb, 49).ih(this, 1, h9, i)), hQ(this, u(e, 471), i);
+ case 5:
+ return !this.rb && (this.rb = new Z0(this, Qo, this)), Dc(this.rb, e, i);
+ case 6:
+ return !this.vb && (this.vb = new g2(Vo, this, 6, 7)), Dc(this.vb, e, i);
+ case 7:
+ return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? NFn(this, i) : this.Cb.ih(this, -1 - c, null, i))), ss(this, e, 7, i);
+ }
+ return o = u(On((r = u(Rn(this, 16), 26), r || (Sn(), B1)), t), 66), o.Nj().Qj(this, Bc(this), t - ee((Sn(), B1)), e, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 4:
+ return hQ(this, null, i);
+ case 5:
+ return !this.rb && (this.rb = new Z0(this, Qo, this)), Gi(this.rb, e, i);
+ case 6:
+ return !this.vb && (this.vb = new g2(Vo, this, 6, 7)), Gi(this.vb, e, i);
+ case 7:
+ return ss(this, null, 7, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || (Sn(), B1)), t), 66), c.Nj().Rj(this, Bc(this), t - ee((Sn(), B1)), e, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.yb != null;
+ case 3:
+ return this.xb != null;
+ case 4:
+ return !!this.sb;
+ case 5:
+ return !!this.rb && this.rb.i != 0;
+ case 6:
+ return !!this.vb && this.vb.i != 0;
+ case 7:
+ return !!hMn(this);
+ }
+ return ys(this, e - ee((Sn(), B1)), On((t = u(Rn(this, 16), 26), t || B1), e));
+ }, s.oh = function(e) {
+ var t;
+ return t = m8e(this, e), t || RZ(this, e);
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ Oc(this, Te(t));
+ return;
+ case 2:
+ cT(this, Te(t));
+ return;
+ case 3:
+ rT(this, Te(t));
+ return;
+ case 4:
+ jx(this, u(t, 471));
+ return;
+ case 5:
+ !this.rb && (this.rb = new Z0(this, Qo, this)), de(this.rb), !this.rb && (this.rb = new Z0(this, Qo, this)), $t(this.rb, u(t, 14));
+ return;
+ case 6:
+ !this.vb && (this.vb = new g2(Vo, this, 6, 7)), de(this.vb), !this.vb && (this.vb = new g2(Vo, this, 6, 7)), $t(this.vb, u(t, 14));
+ return;
+ }
+ Ss(this, e - ee((Sn(), B1)), On((i = u(Rn(this, 16), 26), i || B1), e), t);
+ }, s.vh = function(e) {
+ var t, i;
+ if (e && this.rb)
+ for (i = new ie(this.rb); i.e != i.i.gc(); )
+ t = oe(i), I(t, 351) && (u(t, 351).w = null);
+ R2(this, 64, e);
+ }, s.zh = function() {
+ return Sn(), B1;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ Oc(this, null);
+ return;
+ case 2:
+ cT(this, null);
+ return;
+ case 3:
+ rT(this, null);
+ return;
+ case 4:
+ jx(this, null);
+ return;
+ case 5:
+ !this.rb && (this.rb = new Z0(this, Qo, this)), de(this.rb);
+ return;
+ case 6:
+ !this.vb && (this.vb = new g2(Vo, this, 6, 7)), de(this.vb);
+ return;
+ }
+ Ms(this, e - ee((Sn(), B1)), On((t = u(Rn(this, 16), 26), t || B1), e));
+ }, s.Gh = function() {
+ fx(this);
+ }, s.Mh = function() {
+ return !this.rb && (this.rb = new Z0(this, Qo, this)), this.rb;
+ }, s.Nh = function() {
+ return this.sb;
+ }, s.Oh = function() {
+ return this.ub;
+ }, s.Ph = function() {
+ return this.xb;
+ }, s.Qh = function() {
+ return this.yb;
+ }, s.Rh = function(e) {
+ this.ub = e;
+ }, s.Ib = function() {
+ var e;
+ return this.Db & 64 ? r6(this) : (e = new Ns(r6(this)), e.a += " (nsURI: ", dr(e, this.yb), e.a += ", nsPrefix: ", dr(e, this.xb), e.a += ")", e.a);
+ }, s.xb = null, s.yb = null, w(Bn, "EPackageImpl", 179), b(555, 179, { 105: 1, 2016: 1, 555: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1 }, QLn), s.q = !1, s.r = !1;
+ var xne = !1;
+ w(Ra, "ElkGraphPackageImpl", 555), b(354, 724, { 105: 1, 413: 1, 160: 1, 137: 1, 470: 1, 354: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, QH), s.Qg = function(e) {
+ return bJ(this, e);
+ }, s._g = function(e, t, i) {
+ switch (e) {
+ case 7:
+ return lMn(this);
+ case 8:
+ return this.a;
+ }
+ return jQ(this, e, t, i);
+ }, s.hh = function(e, t, i) {
+ var r;
+ switch (t) {
+ case 7:
+ return this.Cb && (i = (r = this.Db >> 16, r >= 0 ? bJ(this, i) : this.Cb.ih(this, -1 - r, null, i))), aW(this, u(e, 160), i);
+ }
+ return vx(this, e, t, i);
+ }, s.jh = function(e, t, i) {
+ return t == 7 ? aW(this, null, i) : tF(this, e, t, i);
+ }, s.lh = function(e) {
+ switch (e) {
+ case 7:
+ return !!lMn(this);
+ case 8:
+ return !An("", this.a);
+ }
+ return PQ(this, e);
+ }, s.sh = function(e, t) {
+ switch (e) {
+ case 7:
+ zY(this, u(t, 160));
+ return;
+ case 8:
+ aV(this, Te(t));
+ return;
+ }
+ SJ(this, e, t);
+ }, s.zh = function() {
+ return $c(), e1n;
+ }, s.Bh = function(e) {
+ switch (e) {
+ case 7:
+ zY(this, null);
+ return;
+ case 8:
+ aV(this, "");
+ return;
+ }
+ FQ(this, e);
+ }, s.Ib = function() {
+ return Nxn(this);
+ }, s.a = "", w(Ra, "ElkLabelImpl", 354), b(239, 725, { 105: 1, 413: 1, 82: 1, 160: 1, 33: 1, 470: 1, 239: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, nG), s.Qg = function(e) {
+ return vJ(this, e);
+ }, s._g = function(e, t, i) {
+ switch (e) {
+ case 9:
+ return !this.c && (this.c = new V(Ru, this, 9, 9)), this.c;
+ case 10:
+ return !this.a && (this.a = new V(Pt, this, 10, 11)), this.a;
+ case 11:
+ return At(this);
+ case 12:
+ return !this.b && (this.b = new V(bi, this, 12, 3)), this.b;
+ case 13:
+ return qn(), !this.a && (this.a = new V(Pt, this, 10, 11)), this.a.i > 0;
+ }
+ return tJ(this, e, t, i);
+ }, s.hh = function(e, t, i) {
+ var r;
+ switch (t) {
+ case 9:
+ return !this.c && (this.c = new V(Ru, this, 9, 9)), Dc(this.c, e, i);
+ case 10:
+ return !this.a && (this.a = new V(Pt, this, 10, 11)), Dc(this.a, e, i);
+ case 11:
+ return this.Cb && (i = (r = this.Db >> 16, r >= 0 ? vJ(this, i) : this.Cb.ih(this, -1 - r, null, i))), kU(this, u(e, 33), i);
+ case 12:
+ return !this.b && (this.b = new V(bi, this, 12, 3)), Dc(this.b, e, i);
+ }
+ return yJ(this, e, t, i);
+ }, s.jh = function(e, t, i) {
+ switch (t) {
+ case 9:
+ return !this.c && (this.c = new V(Ru, this, 9, 9)), Gi(this.c, e, i);
+ case 10:
+ return !this.a && (this.a = new V(Pt, this, 10, 11)), Gi(this.a, e, i);
+ case 11:
+ return kU(this, null, i);
+ case 12:
+ return !this.b && (this.b = new V(bi, this, 12, 3)), Gi(this.b, e, i);
+ }
+ return jJ(this, e, t, i);
+ }, s.lh = function(e) {
+ switch (e) {
+ case 9:
+ return !!this.c && this.c.i != 0;
+ case 10:
+ return !!this.a && this.a.i != 0;
+ case 11:
+ return !!At(this);
+ case 12:
+ return !!this.b && this.b.i != 0;
+ case 13:
+ return !this.a && (this.a = new V(Pt, this, 10, 11)), this.a.i > 0;
+ }
+ return zV(this, e);
+ }, s.sh = function(e, t) {
+ switch (e) {
+ case 9:
+ !this.c && (this.c = new V(Ru, this, 9, 9)), de(this.c), !this.c && (this.c = new V(Ru, this, 9, 9)), $t(this.c, u(t, 14));
+ return;
+ case 10:
+ !this.a && (this.a = new V(Pt, this, 10, 11)), de(this.a), !this.a && (this.a = new V(Pt, this, 10, 11)), $t(this.a, u(t, 14));
+ return;
+ case 11:
+ HY(this, u(t, 33));
+ return;
+ case 12:
+ !this.b && (this.b = new V(bi, this, 12, 3)), de(this.b), !this.b && (this.b = new V(bi, this, 12, 3)), $t(this.b, u(t, 14));
+ return;
+ }
+ OY(this, e, t);
+ }, s.zh = function() {
+ return $c(), t1n;
+ }, s.Bh = function(e) {
+ switch (e) {
+ case 9:
+ !this.c && (this.c = new V(Ru, this, 9, 9)), de(this.c);
+ return;
+ case 10:
+ !this.a && (this.a = new V(Pt, this, 10, 11)), de(this.a);
+ return;
+ case 11:
+ HY(this, null);
+ return;
+ case 12:
+ !this.b && (this.b = new V(bi, this, 12, 3)), de(this.b);
+ return;
+ }
+ XQ(this, e);
+ }, s.Ib = function() {
+ return uZ(this);
+ }, w(Ra, "ElkNodeImpl", 239), b(186, 725, { 105: 1, 413: 1, 82: 1, 160: 1, 118: 1, 470: 1, 186: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, eG), s.Qg = function(e) {
+ return wJ(this, e);
+ }, s._g = function(e, t, i) {
+ return e == 9 ? nf(this) : tJ(this, e, t, i);
+ }, s.hh = function(e, t, i) {
+ var r;
+ switch (t) {
+ case 9:
+ return this.Cb && (i = (r = this.Db >> 16, r >= 0 ? wJ(this, i) : this.Cb.ih(this, -1 - r, null, i))), aU(this, u(e, 33), i);
+ }
+ return yJ(this, e, t, i);
+ }, s.jh = function(e, t, i) {
+ return t == 9 ? aU(this, null, i) : jJ(this, e, t, i);
+ }, s.lh = function(e) {
+ return e == 9 ? !!nf(this) : zV(this, e);
+ }, s.sh = function(e, t) {
+ switch (e) {
+ case 9:
+ KY(this, u(t, 33));
+ return;
+ }
+ OY(this, e, t);
+ }, s.zh = function() {
+ return $c(), i1n;
+ }, s.Bh = function(e) {
+ switch (e) {
+ case 9:
+ KY(this, null);
+ return;
+ }
+ XQ(this, e);
+ }, s.Ib = function() {
+ return EBn(this);
+ }, w(Ra, "ElkPortImpl", 186);
+ var Lne = Et(zi, "BasicEMap/Entry");
+ b(1092, 115, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, K2n), s.Fb = function(e) {
+ return this === e;
+ }, s.cd = function() {
+ return this.b;
+ }, s.Hb = function() {
+ return kd(this);
+ }, s.Uh = function(e) {
+ dV(this, u(e, 146));
+ }, s._g = function(e, t, i) {
+ switch (e) {
+ case 0:
+ return this.b;
+ case 1:
+ return this.c;
+ }
+ return BT(this, e, t, i);
+ }, s.lh = function(e) {
+ switch (e) {
+ case 0:
+ return !!this.b;
+ case 1:
+ return this.c != null;
+ }
+ return zF(this, e);
+ }, s.sh = function(e, t) {
+ switch (e) {
+ case 0:
+ dV(this, u(t, 146));
+ return;
+ case 1:
+ gV(this, t);
+ return;
+ }
+ Px(this, e, t);
+ }, s.zh = function() {
+ return $c(), zl;
+ }, s.Bh = function(e) {
+ switch (e) {
+ case 0:
+ dV(this, null);
+ return;
+ case 1:
+ gV(this, null);
+ return;
+ }
+ Cx(this, e);
+ }, s.Sh = function() {
+ var e;
+ return this.a == -1 && (e = this.b, this.a = e ? mt(e) : 0), this.a;
+ }, s.dd = function() {
+ return this.c;
+ }, s.Th = function(e) {
+ this.a = e;
+ }, s.ed = function(e) {
+ var t;
+ return t = this.c, gV(this, e), t;
+ }, s.Ib = function() {
+ var e;
+ return this.Db & 64 ? yo(this) : (e = new X1(), De(De(De(e, this.b ? this.b.tg() : tu), TN), y5(this.c)), e.a);
+ }, s.a = -1, s.c = null;
+ var P0 = w(Ra, "ElkPropertyToValueMapEntryImpl", 1092);
+ b(984, 1, {}, G2n), w(Fi, "JsonAdapter", 984), b(210, 60, zh, Af), w(Fi, "JsonImportException", 210), b(857, 1, {}, BFn), w(Fi, "JsonImporter", 857), b(891, 1, {}, dkn), w(Fi, "JsonImporter/lambda$0$Type", 891), b(892, 1, {}, bkn), w(Fi, "JsonImporter/lambda$1$Type", 892), b(900, 1, {}, X6n), w(Fi, "JsonImporter/lambda$10$Type", 900), b(902, 1, {}, wkn), w(Fi, "JsonImporter/lambda$11$Type", 902), b(903, 1, {}, gkn), w(Fi, "JsonImporter/lambda$12$Type", 903), b(909, 1, {}, STn), w(Fi, "JsonImporter/lambda$13$Type", 909), b(908, 1, {}, ATn), w(Fi, "JsonImporter/lambda$14$Type", 908), b(904, 1, {}, pkn), w(Fi, "JsonImporter/lambda$15$Type", 904), b(905, 1, {}, vkn), w(Fi, "JsonImporter/lambda$16$Type", 905), b(906, 1, {}, mkn), w(Fi, "JsonImporter/lambda$17$Type", 906), b(907, 1, {}, kkn), w(Fi, "JsonImporter/lambda$18$Type", 907), b(912, 1, {}, V6n), w(Fi, "JsonImporter/lambda$19$Type", 912), b(893, 1, {}, Q6n), w(Fi, "JsonImporter/lambda$2$Type", 893), b(910, 1, {}, J6n), w(Fi, "JsonImporter/lambda$20$Type", 910), b(911, 1, {}, Y6n), w(Fi, "JsonImporter/lambda$21$Type", 911), b(915, 1, {}, Z6n), w(Fi, "JsonImporter/lambda$22$Type", 915), b(913, 1, {}, nmn), w(Fi, "JsonImporter/lambda$23$Type", 913), b(914, 1, {}, emn), w(Fi, "JsonImporter/lambda$24$Type", 914), b(917, 1, {}, tmn), w(Fi, "JsonImporter/lambda$25$Type", 917), b(916, 1, {}, imn), w(Fi, "JsonImporter/lambda$26$Type", 916), b(918, 1, Yn, ykn), s.td = function(e) {
+ Xde(this.b, this.a, Te(e));
+ }, w(Fi, "JsonImporter/lambda$27$Type", 918), b(919, 1, Yn, jkn), s.td = function(e) {
+ Vde(this.b, this.a, Te(e));
+ }, w(Fi, "JsonImporter/lambda$28$Type", 919), b(920, 1, {}, Ekn), w(Fi, "JsonImporter/lambda$29$Type", 920), b(896, 1, {}, rmn), w(Fi, "JsonImporter/lambda$3$Type", 896), b(921, 1, {}, Ckn), w(Fi, "JsonImporter/lambda$30$Type", 921), b(922, 1, {}, cmn), w(Fi, "JsonImporter/lambda$31$Type", 922), b(923, 1, {}, umn), w(Fi, "JsonImporter/lambda$32$Type", 923), b(924, 1, {}, smn), w(Fi, "JsonImporter/lambda$33$Type", 924), b(925, 1, {}, omn), w(Fi, "JsonImporter/lambda$34$Type", 925), b(859, 1, {}, fmn), w(Fi, "JsonImporter/lambda$35$Type", 859), b(929, 1, {}, mEn), w(Fi, "JsonImporter/lambda$36$Type", 929), b(926, 1, Yn, hmn), s.td = function(e) {
+ Yae(this.a, u(e, 469));
+ }, w(Fi, "JsonImporter/lambda$37$Type", 926), b(927, 1, Yn, Ikn), s.td = function(e) {
+ Mre(this.a, this.b, u(e, 202));
+ }, w(Fi, "JsonImporter/lambda$38$Type", 927), b(928, 1, Yn, Okn), s.td = function(e) {
+ Are(this.a, this.b, u(e, 202));
+ }, w(Fi, "JsonImporter/lambda$39$Type", 928), b(894, 1, {}, lmn), w(Fi, "JsonImporter/lambda$4$Type", 894), b(930, 1, Yn, amn), s.td = function(e) {
+ Zae(this.a, u(e, 8));
+ }, w(Fi, "JsonImporter/lambda$40$Type", 930), b(895, 1, {}, dmn), w(Fi, "JsonImporter/lambda$5$Type", 895), b(899, 1, {}, bmn), w(Fi, "JsonImporter/lambda$6$Type", 899), b(897, 1, {}, wmn), w(Fi, "JsonImporter/lambda$7$Type", 897), b(898, 1, {}, gmn), w(Fi, "JsonImporter/lambda$8$Type", 898), b(901, 1, {}, pmn), w(Fi, "JsonImporter/lambda$9$Type", 901), b(948, 1, Yn, vmn), s.td = function(e) {
+ j2(this.a, new nb(Te(e)));
+ }, w(Fi, "JsonMetaDataConverter/lambda$0$Type", 948), b(949, 1, Yn, mmn), s.td = function(e) {
+ whe(this.a, u(e, 237));
+ }, w(Fi, "JsonMetaDataConverter/lambda$1$Type", 949), b(950, 1, Yn, kmn), s.td = function(e) {
+ ale(this.a, u(e, 149));
+ }, w(Fi, "JsonMetaDataConverter/lambda$2$Type", 950), b(951, 1, Yn, ymn), s.td = function(e) {
+ ghe(this.a, u(e, 175));
+ }, w(Fi, "JsonMetaDataConverter/lambda$3$Type", 951), b(237, 22, { 3: 1, 35: 1, 22: 1, 237: 1 }, a2);
+ var VP, QP, hH, JP, YP, ZP, lH, aH, nI = Ae(ok, "GraphFeature", 237, Ie, B0e, _oe), Nne;
+ b(13, 1, { 35: 1, 146: 1 }, kt, ri, In, tr), s.wd = function(e) {
+ return Tce(this, u(e, 146));
+ }, s.Fb = function(e) {
+ return VTn(this, e);
+ }, s.wg = function() {
+ return cn(this);
+ }, s.tg = function() {
+ return this.b;
+ }, s.Hb = function() {
+ return m1(this.b);
+ }, s.Ib = function() {
+ return this.b;
+ }, w(ok, "Property", 13), b(818, 1, lt, $q), s.ue = function(e, t) {
+ return qge(this, u(e, 94), u(t, 94));
+ }, s.Fb = function(e) {
+ return this === e;
+ }, s.ve = function() {
+ return new ut(this);
+ }, w(ok, "PropertyHolderComparator", 818), b(695, 1, Ei, Fq), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return Zde(this);
+ }, s.Qb = function() {
+ b8n();
+ }, s.Ob = function() {
+ return !!this.a;
+ }, w(mA, "ElkGraphUtil/AncestorIterator", 695);
+ var c1n = Et(zi, "EList");
+ b(67, 52, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1 }), s.Vc = function(e, t) {
+ s6(this, e, t);
+ }, s.Fc = function(e) {
+ return me(this, e);
+ }, s.Wc = function(e, t) {
+ return NV(this, e, t);
+ }, s.Gc = function(e) {
+ return $t(this, e);
+ }, s.Zh = function() {
+ return new w2(this);
+ }, s.$h = function() {
+ return new u8(this);
+ }, s._h = function(e) {
+ return J8(this, e);
+ }, s.ai = function() {
+ return !0;
+ }, s.bi = function(e, t) {
+ }, s.ci = function() {
+ }, s.di = function(e, t) {
+ A$(this, e, t);
+ }, s.ei = function(e, t, i) {
+ }, s.fi = function(e, t) {
+ }, s.gi = function(e, t, i) {
+ }, s.Fb = function(e) {
+ return fBn(this, e);
+ }, s.Hb = function() {
+ return DV(this);
+ }, s.hi = function() {
+ return !1;
+ }, s.Kc = function() {
+ return new ie(this);
+ }, s.Yc = function() {
+ return new b2(this);
+ }, s.Zc = function(e) {
+ var t;
+ if (t = this.gc(), e < 0 || e > t)
+ throw T(new Q0(e, t));
+ return new DD(this, e);
+ }, s.ji = function(e, t) {
+ this.ii(e, this.Xc(t));
+ }, s.Mc = function(e) {
+ return BC(this, e);
+ }, s.li = function(e, t) {
+ return t;
+ }, s._c = function(e, t) {
+ return Gw(this, e, t);
+ }, s.Ib = function() {
+ return CQ(this);
+ }, s.ni = function() {
+ return !0;
+ }, s.oi = function(e, t) {
+ return U3(this, t);
+ }, w(zi, "AbstractEList", 67), b(63, 67, Wf, Jy, Nd, CV), s.Vh = function(e, t) {
+ return mx(this, e, t);
+ }, s.Wh = function(e) {
+ return lFn(this, e);
+ }, s.Xh = function(e, t) {
+ a7(this, e, t);
+ }, s.Yh = function(e) {
+ F8(this, e);
+ }, s.pi = function(e) {
+ return zX(this, e);
+ }, s.$b = function() {
+ U5(this);
+ }, s.Hc = function(e) {
+ return s4(this, e);
+ }, s.Xb = function(e) {
+ return D(this, e);
+ }, s.qi = function(e) {
+ var t, i, r;
+ ++this.j, i = this.g == null ? 0 : this.g.length, e > i && (r = this.g, t = i + (i / 2 | 0) + 4, t < e && (t = e), this.g = this.ri(t), r != null && pc(r, 0, this.g, 0, this.i));
+ }, s.Xc = function(e) {
+ return DFn(this, e);
+ }, s.dc = function() {
+ return this.i == 0;
+ }, s.ii = function(e, t) {
+ return Dx(this, e, t);
+ }, s.ri = function(e) {
+ return F(Zn, rn, 1, e, 5, 1);
+ }, s.ki = function(e) {
+ return this.g[e];
+ }, s.$c = function(e) {
+ return H2(this, e);
+ }, s.mi = function(e, t) {
+ return B$(this, e, t);
+ }, s.gc = function() {
+ return this.i;
+ }, s.Pc = function() {
+ return gX(this);
+ }, s.Qc = function(e) {
+ return LQ(this, e);
+ }, s.i = 0;
+ var u1n = w(zi, "BasicEList", 63), s1n = Et(zi, "TreeIterator");
+ b(694, 63, RB), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return this.g == null && !this.c ? ZW(this) : this.g == null || this.i != 0 && u(this.g[this.i - 1], 47).Ob();
+ }, s.Pb = function() {
+ return cM(this);
+ }, s.Qb = function() {
+ if (!this.e)
+ throw T(new $r("There is no valid object to remove."));
+ this.e.Qb();
+ }, s.c = !1, w(zi, "AbstractTreeIterator", 694), b(685, 694, RB, kz), s.si = function(e) {
+ var t;
+ return t = u(e, 56).Wg().Kc(), I(t, 279) && u(t, 279).Nk(new z2n()), t;
+ }, w(mA, "ElkGraphUtil/PropertiesSkippingTreeIterator", 685), b(952, 1, {}, z2n), w(mA, "ElkGraphUtil/PropertiesSkippingTreeIterator/1", 952);
+ var $y, dH, Fy = w(mA, "ElkReflect", null);
+ b(889, 1, Bb, U2n), s.vg = function(e) {
+ return dC(), Cde(u(e, 174));
+ }, w(mA, "ElkReflect/lambda$0$Type", 889);
+ var Ul;
+ Et(zi, "ResourceLocator"), b(1051, 1, {}), w(zi, "DelegatingResourceLocator", 1051), b(1052, 1051, {}), w("org.eclipse.emf.common", "EMFPlugin", 1052);
+ var bH = Et(rGn, "Adapter"), fMe = Et(rGn, "Notification");
+ b(1153, 1, Wtn), s.ti = function() {
+ return this.d;
+ }, s.ui = function(e) {
+ }, s.vi = function(e) {
+ this.d = e;
+ }, s.wi = function(e) {
+ this.d == e && (this.d = null);
+ }, s.d = null, w(sp, "AdapterImpl", 1153), b(1995, 67, cGn), s.Vh = function(e, t) {
+ return IQ(this, e, t);
+ }, s.Wh = function(e) {
+ var t, i, r;
+ if (++this.j, e.dc())
+ return !1;
+ for (t = this.Vi(), r = e.Kc(); r.Ob(); )
+ i = r.Pb(), this.Ii(this.oi(t, i)), ++t;
+ return !0;
+ }, s.Xh = function(e, t) {
+ Ajn(this, e, t);
+ }, s.Yh = function(e) {
+ eTn(this, e);
+ }, s.Gi = function() {
+ return this.Ji();
+ }, s.$b = function() {
+ h8(this, this.Vi(), this.Wi());
+ }, s.Hc = function(e) {
+ return this.Li(e);
+ }, s.Ic = function(e) {
+ return this.Mi(e);
+ }, s.Hi = function(e, t) {
+ this.Si().jm();
+ }, s.Ii = function(e) {
+ this.Si().jm();
+ }, s.Ji = function() {
+ return this.Si();
+ }, s.Ki = function() {
+ this.Si().jm();
+ }, s.Li = function(e) {
+ return this.Si().jm();
+ }, s.Mi = function(e) {
+ return this.Si().jm();
+ }, s.Ni = function(e) {
+ return this.Si().jm();
+ }, s.Oi = function(e) {
+ return this.Si().jm();
+ }, s.Pi = function() {
+ return this.Si().jm();
+ }, s.Qi = function(e) {
+ return this.Si().jm();
+ }, s.Ri = function() {
+ return this.Si().jm();
+ }, s.Ti = function(e) {
+ return this.Si().jm();
+ }, s.Ui = function(e, t) {
+ return this.Si().jm();
+ }, s.Vi = function() {
+ return this.Si().jm();
+ }, s.Wi = function() {
+ return this.Si().jm();
+ }, s.Xi = function(e) {
+ return this.Si().jm();
+ }, s.Yi = function() {
+ return this.Si().jm();
+ }, s.Fb = function(e) {
+ return this.Ni(e);
+ }, s.Xb = function(e) {
+ return this.li(e, this.Oi(e));
+ }, s.Hb = function() {
+ return this.Pi();
+ }, s.Xc = function(e) {
+ return this.Qi(e);
+ }, s.dc = function() {
+ return this.Ri();
+ }, s.ii = function(e, t) {
+ return WJ(this, e, t);
+ }, s.ki = function(e) {
+ return this.Oi(e);
+ }, s.$c = function(e) {
+ return OE(this, e);
+ }, s.Mc = function(e) {
+ var t;
+ return t = this.Xc(e), t >= 0 ? (this.$c(t), !0) : !1;
+ }, s.mi = function(e, t) {
+ return this.Ui(e, this.oi(e, t));
+ }, s.gc = function() {
+ return this.Vi();
+ }, s.Pc = function() {
+ return this.Wi();
+ }, s.Qc = function(e) {
+ return this.Xi(e);
+ }, s.Ib = function() {
+ return this.Yi();
+ }, w(zi, "DelegatingEList", 1995), b(1996, 1995, cGn), s.Vh = function(e, t) {
+ return wZ(this, e, t);
+ }, s.Wh = function(e) {
+ return this.Vh(this.Vi(), e);
+ }, s.Xh = function(e, t) {
+ XLn(this, e, t);
+ }, s.Yh = function(e) {
+ RLn(this, e);
+ }, s.ai = function() {
+ return !this.bj();
+ }, s.$b = function() {
+ $6(this);
+ }, s.Zi = function(e, t, i, r, c) {
+ return new JTn(this, e, t, i, r, c);
+ }, s.$i = function(e) {
+ et(this.Ai(), e);
+ }, s._i = function() {
+ return null;
+ }, s.aj = function() {
+ return -1;
+ }, s.Ai = function() {
+ return null;
+ }, s.bj = function() {
+ return !1;
+ }, s.cj = function(e, t) {
+ return t;
+ }, s.dj = function(e, t) {
+ return t;
+ }, s.ej = function() {
+ return !1;
+ }, s.fj = function() {
+ return !this.Ri();
+ }, s.ii = function(e, t) {
+ var i, r;
+ return this.ej() ? (r = this.fj(), i = WJ(this, e, t), this.$i(this.Zi(7, Q(t), i, e, r)), i) : WJ(this, e, t);
+ }, s.$c = function(e) {
+ var t, i, r, c;
+ return this.ej() ? (i = null, r = this.fj(), t = this.Zi(4, c = OE(this, e), null, e, r), this.bj() && c ? (i = this.dj(c, i), i ? (i.Ei(t), i.Fi()) : this.$i(t)) : i ? (i.Ei(t), i.Fi()) : this.$i(t), c) : (c = OE(this, e), this.bj() && c && (i = this.dj(c, null), i && i.Fi()), c);
+ }, s.mi = function(e, t) {
+ return tRn(this, e, t);
+ }, w(sp, "DelegatingNotifyingListImpl", 1996), b(143, 1, jk), s.Ei = function(e) {
+ return FJ(this, e);
+ }, s.Fi = function() {
+ L$(this);
+ }, s.xi = function() {
+ return this.d;
+ }, s._i = function() {
+ return null;
+ }, s.gj = function() {
+ return null;
+ }, s.yi = function(e) {
+ return -1;
+ }, s.zi = function() {
+ return HNn(this);
+ }, s.Ai = function() {
+ return null;
+ }, s.Bi = function() {
+ return QY(this);
+ }, s.Ci = function() {
+ return this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o;
+ }, s.hj = function() {
+ return !1;
+ }, s.Di = function(e) {
+ var t, i, r, c, o, f, h, l, a, d, g;
+ switch (this.d) {
+ case 1:
+ case 2:
+ switch (c = e.xi(), c) {
+ case 1:
+ case 2:
+ if (o = e.Ai(), B(o) === B(this.Ai()) && this.yi(null) == e.yi(null))
+ return this.g = e.zi(), e.xi() == 1 && (this.d = 1), !0;
+ }
+ case 4: {
+ switch (c = e.xi(), c) {
+ case 4: {
+ if (o = e.Ai(), B(o) === B(this.Ai()) && this.yi(null) == e.yi(null))
+ return a = DZ(this), l = this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o, f = e.Ci(), this.d = 6, g = new Nd(2), l <= f ? (me(g, this.n), me(g, e.Bi()), this.g = A(M(be, 1), Le, 25, 15, [this.o = l, f + 1])) : (me(g, e.Bi()), me(g, this.n), this.g = A(M(be, 1), Le, 25, 15, [this.o = f, l])), this.n = g, a || (this.o = -2 - this.o - 1), !0;
+ break;
+ }
+ }
+ break;
+ }
+ case 6: {
+ switch (c = e.xi(), c) {
+ case 4: {
+ if (o = e.Ai(), B(o) === B(this.Ai()) && this.yi(null) == e.yi(null)) {
+ for (a = DZ(this), f = e.Ci(), d = u(this.g, 48), r = F(be, Le, 25, d.length + 1, 15, 1), t = 0; t < d.length && (h = d[t], h <= f); )
+ r[t++] = h, ++f;
+ for (i = u(this.n, 15), i.Vc(t, e.Bi()), r[t] = f; ++t < r.length; )
+ r[t] = d[t - 1];
+ return this.g = r, a || (this.o = -2 - r[0]), !0;
+ }
+ break;
+ }
+ }
+ break;
+ }
+ }
+ return !1;
+ }, s.Ib = function() {
+ var e, t, i, r;
+ switch (r = new Ns(Q1(this.gm) + "@" + (t = mt(this) >>> 0, t.toString(16))), r.a += " (eventType: ", this.d) {
+ case 1: {
+ r.a += "SET";
+ break;
+ }
+ case 2: {
+ r.a += "UNSET";
+ break;
+ }
+ case 3: {
+ r.a += "ADD";
+ break;
+ }
+ case 5: {
+ r.a += "ADD_MANY";
+ break;
+ }
+ case 4: {
+ r.a += "REMOVE";
+ break;
+ }
+ case 6: {
+ r.a += "REMOVE_MANY";
+ break;
+ }
+ case 7: {
+ r.a += "MOVE";
+ break;
+ }
+ case 8: {
+ r.a += "REMOVING_ADAPTER";
+ break;
+ }
+ case 9: {
+ r.a += "RESOLVE";
+ break;
+ }
+ default: {
+ eO(r, this.d);
+ break;
+ }
+ }
+ if (IBn(this) && (r.a += ", touch: true"), r.a += ", position: ", eO(r, this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o), r.a += ", notifier: ", w5(r, this.Ai()), r.a += ", feature: ", w5(r, this._i()), r.a += ", oldValue: ", w5(r, QY(this)), r.a += ", newValue: ", this.d == 6 && I(this.g, 48)) {
+ for (i = u(this.g, 48), r.a += "[", e = 0; e < i.length; )
+ r.a += i[e], ++e < i.length && (r.a += Qi);
+ r.a += "]";
+ } else
+ w5(r, HNn(this));
+ return r.a += ", isTouch: ", r1(r, IBn(this)), r.a += ", wasSet: ", r1(r, DZ(this)), r.a += ")", r.a;
+ }, s.d = 0, s.e = 0, s.f = 0, s.j = 0, s.k = 0, s.o = 0, s.p = 0, w(sp, "NotificationImpl", 143), b(1167, 143, jk, JTn), s._i = function() {
+ return this.a._i();
+ }, s.yi = function(e) {
+ return this.a.aj();
+ }, s.Ai = function() {
+ return this.a.Ai();
+ }, w(sp, "DelegatingNotifyingListImpl/1", 1167), b(242, 63, Wf, W2n, V1), s.Fc = function(e) {
+ return u$n(this, u(e, 366));
+ }, s.Ei = function(e) {
+ return u$n(this, e);
+ }, s.Fi = function() {
+ var e, t, i;
+ for (e = 0; e < this.i; ++e)
+ t = u(this.g[e], 366), i = t.Ai(), i != null && t.xi() != -1 && u(i, 92).Ng(t);
+ }, s.ri = function(e) {
+ return F(fMe, rn, 366, e, 0, 1);
+ }, w(sp, "NotificationChainImpl", 242), b(1378, 90, pqn), s.Kg = function() {
+ return this.e;
+ }, s.Mg = function() {
+ return (this.f & 1) != 0;
+ }, s.f = 1, w(sp, "NotifierImpl", 1378), b(1993, 63, Wf), s.Vh = function(e, t) {
+ return eL(this, e, t);
+ }, s.Wh = function(e) {
+ return this.Vh(this.i, e);
+ }, s.Xh = function(e, t) {
+ EY(this, e, t);
+ }, s.Yh = function(e) {
+ $x(this, e);
+ }, s.ai = function() {
+ return !this.bj();
+ }, s.$b = function() {
+ de(this);
+ }, s.Zi = function(e, t, i, r, c) {
+ return new YTn(this, e, t, i, r, c);
+ }, s.$i = function(e) {
+ et(this.Ai(), e);
+ }, s._i = function() {
+ return null;
+ }, s.aj = function() {
+ return -1;
+ }, s.Ai = function() {
+ return null;
+ }, s.bj = function() {
+ return !1;
+ }, s.ij = function() {
+ return !1;
+ }, s.cj = function(e, t) {
+ return t;
+ }, s.dj = function(e, t) {
+ return t;
+ }, s.ej = function() {
+ return !1;
+ }, s.fj = function() {
+ return this.i != 0;
+ }, s.ii = function(e, t) {
+ return o6(this, e, t);
+ }, s.$c = function(e) {
+ return Cb(this, e);
+ }, s.mi = function(e, t) {
+ return pRn(this, e, t);
+ }, s.jj = function(e, t) {
+ return t;
+ }, s.kj = function(e, t) {
+ return t;
+ }, s.lj = function(e, t, i) {
+ return i;
+ }, w(sp, "NotifyingListImpl", 1993), b(1166, 143, jk, YTn), s._i = function() {
+ return this.a._i();
+ }, s.yi = function(e) {
+ return this.a.aj();
+ }, s.Ai = function() {
+ return this.a.Ai();
+ }, w(sp, "NotifyingListImpl/1", 1166), b(953, 63, Wf, Ijn), s.Hc = function(e) {
+ return this.i > 10 ? ((!this.b || this.c.j != this.a) && (this.b = new S5(this), this.a = this.j), Mh(this.b, e)) : s4(this, e);
+ }, s.ni = function() {
+ return !0;
+ }, s.a = 0, w(zi, "AbstractEList/1", 953), b(295, 73, VL, Q0), w(zi, "AbstractEList/BasicIndexOutOfBoundsException", 295), b(40, 1, Ei, ie), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.mj = function() {
+ if (this.i.j != this.f)
+ throw T(new ps());
+ }, s.nj = function() {
+ return oe(this);
+ }, s.Ob = function() {
+ return this.e != this.i.gc();
+ }, s.Pb = function() {
+ return this.nj();
+ }, s.Qb = function() {
+ p6(this);
+ }, s.e = 0, s.f = 0, s.g = -1, w(zi, "AbstractEList/EIterator", 40), b(278, 40, hh, b2, DD), s.Qb = function() {
+ p6(this);
+ }, s.Rb = function(e) {
+ d$n(this, e);
+ }, s.oj = function() {
+ var e;
+ try {
+ return e = this.d.Xb(--this.e), this.mj(), this.g = this.e, e;
+ } catch (t) {
+ throw t = jt(t), I(t, 73) ? (this.mj(), T(new rc())) : T(t);
+ }
+ }, s.pj = function(e) {
+ bFn(this, e);
+ }, s.Sb = function() {
+ return this.e != 0;
+ }, s.Tb = function() {
+ return this.e;
+ }, s.Ub = function() {
+ return this.oj();
+ }, s.Vb = function() {
+ return this.e - 1;
+ }, s.Wb = function(e) {
+ this.pj(e);
+ }, w(zi, "AbstractEList/EListIterator", 278), b(341, 40, Ei, w2), s.nj = function() {
+ return UF(this);
+ }, s.Qb = function() {
+ throw T(new je());
+ }, w(zi, "AbstractEList/NonResolvingEIterator", 341), b(385, 278, hh, u8, AU), s.Rb = function(e) {
+ throw T(new je());
+ }, s.nj = function() {
+ var e;
+ try {
+ return e = this.c.ki(this.e), this.mj(), this.g = this.e++, e;
+ } catch (t) {
+ throw t = jt(t), I(t, 73) ? (this.mj(), T(new rc())) : T(t);
+ }
+ }, s.oj = function() {
+ var e;
+ try {
+ return e = this.c.ki(--this.e), this.mj(), this.g = this.e, e;
+ } catch (t) {
+ throw t = jt(t), I(t, 73) ? (this.mj(), T(new rc())) : T(t);
+ }
+ }, s.Qb = function() {
+ throw T(new je());
+ }, s.Wb = function(e) {
+ throw T(new je());
+ }, w(zi, "AbstractEList/NonResolvingEListIterator", 385), b(1982, 67, uGn), s.Vh = function(e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p;
+ if (c = t.gc(), c != 0) {
+ for (a = u(Rn(this.a, 4), 126), d = a == null ? 0 : a.length, p = d + c, r = bF(this, p), g = d - e, g > 0 && pc(a, e, r, e + c, g), l = t.Kc(), f = 0; f < c; ++f)
+ h = l.Pb(), i = e + f, _O(r, i, U3(this, h));
+ for (i4(this, r), o = 0; o < c; ++o)
+ h = r[e], this.bi(e, h), ++e;
+ return !0;
+ } else
+ return ++this.j, !1;
+ }, s.Wh = function(e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (r = e.gc(), r != 0) {
+ for (l = (i = u(Rn(this.a, 4), 126), i == null ? 0 : i.length), a = l + r, t = bF(this, a), h = e.Kc(), o = l; o < a; ++o)
+ f = h.Pb(), _O(t, o, U3(this, f));
+ for (i4(this, t), c = l; c < a; ++c)
+ f = t[c], this.bi(c, f);
+ return !0;
+ } else
+ return ++this.j, !1;
+ }, s.Xh = function(e, t) {
+ var i, r, c, o;
+ r = u(Rn(this.a, 4), 126), c = r == null ? 0 : r.length, i = bF(this, c + 1), o = U3(this, t), e != c && pc(r, e, i, e + 1, c - e), Mt(i, e, o), i4(this, i), this.bi(e, t);
+ }, s.Yh = function(e) {
+ var t, i, r;
+ r = (i = u(Rn(this.a, 4), 126), i == null ? 0 : i.length), t = bF(this, r + 1), _O(t, r, U3(this, e)), i4(this, t), this.bi(r, e);
+ }, s.Zh = function() {
+ return new vSn(this);
+ }, s.$h = function() {
+ return new DCn(this);
+ }, s._h = function(e) {
+ var t, i;
+ if (i = (t = u(Rn(this.a, 4), 126), t == null ? 0 : t.length), e < 0 || e > i)
+ throw T(new Q0(e, i));
+ return new oTn(this, e);
+ }, s.$b = function() {
+ var e, t;
+ ++this.j, e = u(Rn(this.a, 4), 126), t = e == null ? 0 : e.length, i4(this, null), A$(this, t, e);
+ }, s.Hc = function(e) {
+ var t, i, r, c, o;
+ if (t = u(Rn(this.a, 4), 126), t != null) {
+ if (e != null) {
+ for (r = t, c = 0, o = r.length; c < o; ++c)
+ if (i = r[c], tt(e, i))
+ return !0;
+ } else
+ for (r = t, c = 0, o = r.length; c < o; ++c)
+ if (i = r[c], B(i) === B(e))
+ return !0;
+ }
+ return !1;
+ }, s.Xb = function(e) {
+ var t, i;
+ if (t = u(Rn(this.a, 4), 126), i = t == null ? 0 : t.length, e >= i)
+ throw T(new Q0(e, i));
+ return t[e];
+ }, s.Xc = function(e) {
+ var t, i, r;
+ if (t = u(Rn(this.a, 4), 126), t != null) {
+ if (e != null) {
+ for (i = 0, r = t.length; i < r; ++i)
+ if (tt(e, t[i]))
+ return i;
+ } else
+ for (i = 0, r = t.length; i < r; ++i)
+ if (B(t[i]) === B(e))
+ return i;
+ }
+ return -1;
+ }, s.dc = function() {
+ return u(Rn(this.a, 4), 126) == null;
+ }, s.Kc = function() {
+ return new pSn(this);
+ }, s.Yc = function() {
+ return new OCn(this);
+ }, s.Zc = function(e) {
+ var t, i;
+ if (i = (t = u(Rn(this.a, 4), 126), t == null ? 0 : t.length), e < 0 || e > i)
+ throw T(new Q0(e, i));
+ return new sTn(this, e);
+ }, s.ii = function(e, t) {
+ var i, r, c;
+ if (i = y$n(this), c = i == null ? 0 : i.length, e >= c)
+ throw T(new mr(NB + e + _a + c));
+ if (t >= c)
+ throw T(new mr(BB + t + _a + c));
+ return r = i[t], e != t && (e < t ? pc(i, e, i, e + 1, t - e) : pc(i, t + 1, i, t, e - t), Mt(i, e, r), i4(this, i)), r;
+ }, s.ki = function(e) {
+ return u(Rn(this.a, 4), 126)[e];
+ }, s.$c = function(e) {
+ return bme(this, e);
+ }, s.mi = function(e, t) {
+ var i, r;
+ return i = y$n(this), r = i[e], _O(i, e, U3(this, t)), i4(this, i), r;
+ }, s.gc = function() {
+ var e;
+ return e = u(Rn(this.a, 4), 126), e == null ? 0 : e.length;
+ }, s.Pc = function() {
+ var e, t, i;
+ return e = u(Rn(this.a, 4), 126), i = e == null ? 0 : e.length, t = F(bH, qB, 415, i, 0, 1), i > 0 && pc(e, 0, t, 0, i), t;
+ }, s.Qc = function(e) {
+ var t, i, r;
+ return t = u(Rn(this.a, 4), 126), r = t == null ? 0 : t.length, r > 0 && (e.length < r && (i = Q8(Du(e).c, r), e = i), pc(t, 0, e, 0, r)), e.length > r && Mt(e, r, null), e;
+ };
+ var Bne;
+ w(zi, "ArrayDelegatingEList", 1982), b(1038, 40, Ei, pSn), s.mj = function() {
+ if (this.b.j != this.f || B(u(Rn(this.b.a, 4), 126)) !== B(this.a))
+ throw T(new ps());
+ }, s.Qb = function() {
+ p6(this), this.a = u(Rn(this.b.a, 4), 126);
+ }, w(zi, "ArrayDelegatingEList/EIterator", 1038), b(706, 278, hh, OCn, sTn), s.mj = function() {
+ if (this.b.j != this.f || B(u(Rn(this.b.a, 4), 126)) !== B(this.a))
+ throw T(new ps());
+ }, s.pj = function(e) {
+ bFn(this, e), this.a = u(Rn(this.b.a, 4), 126);
+ }, s.Qb = function() {
+ p6(this), this.a = u(Rn(this.b.a, 4), 126);
+ }, w(zi, "ArrayDelegatingEList/EListIterator", 706), b(1039, 341, Ei, vSn), s.mj = function() {
+ if (this.b.j != this.f || B(u(Rn(this.b.a, 4), 126)) !== B(this.a))
+ throw T(new ps());
+ }, w(zi, "ArrayDelegatingEList/NonResolvingEIterator", 1039), b(707, 385, hh, DCn, oTn), s.mj = function() {
+ if (this.b.j != this.f || B(u(Rn(this.b.a, 4), 126)) !== B(this.a))
+ throw T(new ps());
+ }, w(zi, "ArrayDelegatingEList/NonResolvingEListIterator", 707), b(606, 295, VL, xO), w(zi, "BasicEList/BasicIndexOutOfBoundsException", 606), b(696, 63, Wf, az), s.Vc = function(e, t) {
+ throw T(new je());
+ }, s.Fc = function(e) {
+ throw T(new je());
+ }, s.Wc = function(e, t) {
+ throw T(new je());
+ }, s.Gc = function(e) {
+ throw T(new je());
+ }, s.$b = function() {
+ throw T(new je());
+ }, s.qi = function(e) {
+ throw T(new je());
+ }, s.Kc = function() {
+ return this.Zh();
+ }, s.Yc = function() {
+ return this.$h();
+ }, s.Zc = function(e) {
+ return this._h(e);
+ }, s.ii = function(e, t) {
+ throw T(new je());
+ }, s.ji = function(e, t) {
+ throw T(new je());
+ }, s.$c = function(e) {
+ throw T(new je());
+ }, s.Mc = function(e) {
+ throw T(new je());
+ }, s._c = function(e, t) {
+ throw T(new je());
+ }, w(zi, "BasicEList/UnmodifiableEList", 696), b(705, 1, { 3: 1, 20: 1, 14: 1, 15: 1, 58: 1, 589: 1 }), s.Vc = function(e, t) {
+ wce(this, e, u(t, 42));
+ }, s.Fc = function(e) {
+ return eue(this, u(e, 42));
+ }, s.Jc = function(e) {
+ $i(this, e);
+ }, s.Xb = function(e) {
+ return u(D(this.c, e), 133);
+ }, s.ii = function(e, t) {
+ return u(this.c.ii(e, t), 42);
+ }, s.ji = function(e, t) {
+ gce(this, e, u(t, 42));
+ }, s.Lc = function() {
+ return new $n(null, new xn(this, 16));
+ }, s.$c = function(e) {
+ return u(this.c.$c(e), 42);
+ }, s._c = function(e, t) {
+ return fhe(this, e, u(t, 42));
+ }, s.ad = function(e) {
+ Lw(this, e);
+ }, s.Nc = function() {
+ return new xn(this, 16);
+ }, s.Oc = function() {
+ return new $n(null, new xn(this, 16));
+ }, s.Wc = function(e, t) {
+ return this.c.Wc(e, t);
+ }, s.Gc = function(e) {
+ return this.c.Gc(e);
+ }, s.$b = function() {
+ this.c.$b();
+ }, s.Hc = function(e) {
+ return this.c.Hc(e);
+ }, s.Ic = function(e) {
+ return t7(this.c, e);
+ }, s.qj = function() {
+ var e, t, i;
+ if (this.d == null) {
+ for (this.d = F(u1n, Xtn, 63, 2 * this.f + 1, 0, 1), i = this.e, this.f = 0, t = this.c.Kc(); t.e != t.i.gc(); )
+ e = u(t.nj(), 133), KT(this, e);
+ this.e = i;
+ }
+ }, s.Fb = function(e) {
+ return iEn(this, e);
+ }, s.Hb = function() {
+ return DV(this.c);
+ }, s.Xc = function(e) {
+ return this.c.Xc(e);
+ }, s.rj = function() {
+ this.c = new Emn(this);
+ }, s.dc = function() {
+ return this.f == 0;
+ }, s.Kc = function() {
+ return this.c.Kc();
+ }, s.Yc = function() {
+ return this.c.Yc();
+ }, s.Zc = function(e) {
+ return this.c.Zc(e);
+ }, s.sj = function() {
+ return N8(this);
+ }, s.tj = function(e, t, i) {
+ return new kEn(e, t, i);
+ }, s.uj = function() {
+ return new X2n();
+ }, s.Mc = function(e) {
+ return LIn(this, e);
+ }, s.gc = function() {
+ return this.f;
+ }, s.bd = function(e, t) {
+ return new ch(this.c, e, t);
+ }, s.Pc = function() {
+ return this.c.Pc();
+ }, s.Qc = function(e) {
+ return this.c.Qc(e);
+ }, s.Ib = function() {
+ return CQ(this.c);
+ }, s.e = 0, s.f = 0, w(zi, "BasicEMap", 705), b(1033, 63, Wf, Emn), s.bi = function(e, t) {
+ Yte(this, u(t, 133));
+ }, s.ei = function(e, t, i) {
+ var r;
+ ++(r = this, u(t, 133), r).a.e;
+ }, s.fi = function(e, t) {
+ Zte(this, u(t, 133));
+ }, s.gi = function(e, t, i) {
+ Hce(this, u(t, 133), u(i, 133));
+ }, s.di = function(e, t) {
+ MOn(this.a);
+ }, w(zi, "BasicEMap/1", 1033), b(1034, 63, Wf, X2n), s.ri = function(e) {
+ return F(hMe, sGn, 612, e, 0, 1);
+ }, w(zi, "BasicEMap/2", 1034), b(1035, df, wu, Cmn), s.$b = function() {
+ this.a.c.$b();
+ }, s.Hc = function(e) {
+ return NF(this.a, e);
+ }, s.Kc = function() {
+ return this.a.f == 0 ? (s3(), xy.a) : new c8n(this.a);
+ }, s.Mc = function(e) {
+ var t;
+ return t = this.a.f, IT(this.a, e), this.a.f != t;
+ }, s.gc = function() {
+ return this.a.f;
+ }, w(zi, "BasicEMap/3", 1035), b(1036, 28, Pb, Tmn), s.$b = function() {
+ this.a.c.$b();
+ }, s.Hc = function(e) {
+ return hBn(this.a, e);
+ }, s.Kc = function() {
+ return this.a.f == 0 ? (s3(), xy.a) : new u8n(this.a);
+ }, s.gc = function() {
+ return this.a.f;
+ }, w(zi, "BasicEMap/4", 1036), b(1037, df, wu, Mmn), s.$b = function() {
+ this.a.c.$b();
+ }, s.Hc = function(e) {
+ var t, i, r, c, o, f, h, l, a;
+ if (this.a.f > 0 && I(e, 42) && (this.a.qj(), l = u(e, 42), h = l.cd(), c = h == null ? 0 : mt(h), o = dU(this.a, c), t = this.a.d[o], t)) {
+ for (i = u(t.g, 367), a = t.i, f = 0; f < a; ++f)
+ if (r = i[f], r.Sh() == c && r.Fb(l))
+ return !0;
+ }
+ return !1;
+ }, s.Kc = function() {
+ return this.a.f == 0 ? (s3(), xy.a) : new XD(this.a);
+ }, s.Mc = function(e) {
+ return tNn(this, e);
+ }, s.gc = function() {
+ return this.a.f;
+ }, w(zi, "BasicEMap/5", 1037), b(613, 1, Ei, XD), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return this.b != -1;
+ }, s.Pb = function() {
+ var e;
+ if (this.f.e != this.c)
+ throw T(new ps());
+ if (this.b == -1)
+ throw T(new rc());
+ return this.d = this.a, this.e = this.b, GFn(this), e = u(this.f.d[this.d].g[this.e], 133), this.vj(e);
+ }, s.Qb = function() {
+ if (this.f.e != this.c)
+ throw T(new ps());
+ if (this.e == -1)
+ throw T(new su());
+ this.f.c.Mc(D(this.f.d[this.d], this.e)), this.c = this.f.e, this.e = -1, this.a == this.d && this.b != -1 && --this.b;
+ }, s.vj = function(e) {
+ return e;
+ }, s.a = 0, s.b = -1, s.c = 0, s.d = 0, s.e = 0, w(zi, "BasicEMap/BasicEMapIterator", 613), b(1031, 613, Ei, c8n), s.vj = function(e) {
+ return e.cd();
+ }, w(zi, "BasicEMap/BasicEMapKeyIterator", 1031), b(1032, 613, Ei, u8n), s.vj = function(e) {
+ return e.dd();
+ }, w(zi, "BasicEMap/BasicEMapValueIterator", 1032), b(1030, 1, c0, Amn), s.wc = function(e) {
+ n6(this, e);
+ }, s.yc = function(e, t, i) {
+ return IF(this, e, t, i);
+ }, s.$b = function() {
+ this.a.c.$b();
+ }, s._b = function(e) {
+ return Rkn(this, e);
+ }, s.uc = function(e) {
+ return hBn(this.a, e);
+ }, s.vc = function() {
+ return Ode(this.a);
+ }, s.Fb = function(e) {
+ return iEn(this.a, e);
+ }, s.xc = function(e) {
+ return Ko(this.a, e);
+ }, s.Hb = function() {
+ return DV(this.a.c);
+ }, s.dc = function() {
+ return this.a.f == 0;
+ }, s.ec = function() {
+ return Dde(this.a);
+ }, s.zc = function(e, t) {
+ return XT(this.a, e, t);
+ }, s.Bc = function(e) {
+ return IT(this.a, e);
+ }, s.gc = function() {
+ return this.a.f;
+ }, s.Ib = function() {
+ return CQ(this.a.c);
+ }, s.Cc = function() {
+ return Ide(this.a);
+ }, w(zi, "BasicEMap/DelegatingMap", 1030), b(612, 1, { 42: 1, 133: 1, 612: 1 }, kEn), s.Fb = function(e) {
+ var t;
+ return I(e, 42) ? (t = u(e, 42), (this.b != null ? tt(this.b, t.cd()) : B(this.b) === B(t.cd())) && (this.c != null ? tt(this.c, t.dd()) : B(this.c) === B(t.dd()))) : !1;
+ }, s.Sh = function() {
+ return this.a;
+ }, s.cd = function() {
+ return this.b;
+ }, s.dd = function() {
+ return this.c;
+ }, s.Hb = function() {
+ return this.a ^ (this.c == null ? 0 : mt(this.c));
+ }, s.Th = function(e) {
+ this.a = e;
+ }, s.Uh = function(e) {
+ throw T(new ra());
+ }, s.ed = function(e) {
+ var t;
+ return t = this.c, this.c = e, t;
+ }, s.Ib = function() {
+ return this.b + "->" + this.c;
+ }, s.a = 0;
+ var hMe = w(zi, "BasicEMap/EntryImpl", 612);
+ b(536, 1, {}, Qy), w(zi, "BasicEMap/View", 536);
+ var xy;
+ b(768, 1, {}), s.Fb = function(e) {
+ return DY((Pn(), cr), e);
+ }, s.Hb = function() {
+ return GV((Pn(), cr));
+ }, s.Ib = function() {
+ return ml((Pn(), cr));
+ }, w(zi, "ECollections/BasicEmptyUnmodifiableEList", 768), b(1312, 1, hh, V2n), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Rb = function(e) {
+ throw T(new je());
+ }, s.Ob = function() {
+ return !1;
+ }, s.Sb = function() {
+ return !1;
+ }, s.Pb = function() {
+ throw T(new rc());
+ }, s.Tb = function() {
+ return 0;
+ }, s.Ub = function() {
+ throw T(new rc());
+ }, s.Vb = function() {
+ return -1;
+ }, s.Qb = function() {
+ throw T(new je());
+ }, s.Wb = function(e) {
+ throw T(new je());
+ }, w(zi, "ECollections/BasicEmptyUnmodifiableEList/1", 1312), b(1310, 768, { 20: 1, 14: 1, 15: 1, 58: 1 }, g9n), s.Vc = function(e, t) {
+ A8n();
+ }, s.Fc = function(e) {
+ return S8n();
+ }, s.Wc = function(e, t) {
+ return P8n();
+ }, s.Gc = function(e) {
+ return I8n();
+ }, s.$b = function() {
+ O8n();
+ }, s.Hc = function(e) {
+ return !1;
+ }, s.Ic = function(e) {
+ return !1;
+ }, s.Jc = function(e) {
+ $i(this, e);
+ }, s.Xb = function(e) {
+ return wz((Pn(), e)), null;
+ }, s.Xc = function(e) {
+ return -1;
+ }, s.dc = function() {
+ return !0;
+ }, s.Kc = function() {
+ return this.a;
+ }, s.Yc = function() {
+ return this.a;
+ }, s.Zc = function(e) {
+ return this.a;
+ }, s.ii = function(e, t) {
+ return D8n();
+ }, s.ji = function(e, t) {
+ $8n();
+ }, s.Lc = function() {
+ return new $n(null, new xn(this, 16));
+ }, s.$c = function(e) {
+ return F8n();
+ }, s.Mc = function(e) {
+ return x8n();
+ }, s._c = function(e, t) {
+ return L8n();
+ }, s.gc = function() {
+ return 0;
+ }, s.ad = function(e) {
+ Lw(this, e);
+ }, s.Nc = function() {
+ return new xn(this, 16);
+ }, s.Oc = function() {
+ return new $n(null, new xn(this, 16));
+ }, s.bd = function(e, t) {
+ return Pn(), new ch(cr, e, t);
+ }, s.Pc = function() {
+ return wW((Pn(), cr));
+ }, s.Qc = function(e) {
+ return Pn(), y7(cr, e);
+ }, w(zi, "ECollections/EmptyUnmodifiableEList", 1310), b(1311, 768, { 20: 1, 14: 1, 15: 1, 58: 1, 589: 1 }, p9n), s.Vc = function(e, t) {
+ A8n();
+ }, s.Fc = function(e) {
+ return S8n();
+ }, s.Wc = function(e, t) {
+ return P8n();
+ }, s.Gc = function(e) {
+ return I8n();
+ }, s.$b = function() {
+ O8n();
+ }, s.Hc = function(e) {
+ return !1;
+ }, s.Ic = function(e) {
+ return !1;
+ }, s.Jc = function(e) {
+ $i(this, e);
+ }, s.Xb = function(e) {
+ return wz((Pn(), e)), null;
+ }, s.Xc = function(e) {
+ return -1;
+ }, s.dc = function() {
+ return !0;
+ }, s.Kc = function() {
+ return this.a;
+ }, s.Yc = function() {
+ return this.a;
+ }, s.Zc = function(e) {
+ return this.a;
+ }, s.ii = function(e, t) {
+ return D8n();
+ }, s.ji = function(e, t) {
+ $8n();
+ }, s.Lc = function() {
+ return new $n(null, new xn(this, 16));
+ }, s.$c = function(e) {
+ return F8n();
+ }, s.Mc = function(e) {
+ return x8n();
+ }, s._c = function(e, t) {
+ return L8n();
+ }, s.gc = function() {
+ return 0;
+ }, s.ad = function(e) {
+ Lw(this, e);
+ }, s.Nc = function() {
+ return new xn(this, 16);
+ }, s.Oc = function() {
+ return new $n(null, new xn(this, 16));
+ }, s.bd = function(e, t) {
+ return Pn(), new ch(cr, e, t);
+ }, s.Pc = function() {
+ return wW((Pn(), cr));
+ }, s.Qc = function(e) {
+ return Pn(), y7(cr, e);
+ }, s.sj = function() {
+ return Pn(), Pn(), ph;
+ }, w(zi, "ECollections/EmptyUnmodifiableEMap", 1311);
+ var o1n = Et(zi, "Enumerator"), eI;
+ b(281, 1, { 281: 1 }, zx), s.Fb = function(e) {
+ var t;
+ return this === e ? !0 : I(e, 281) ? (t = u(e, 281), this.f == t.f && Ife(this.i, t.i) && vD(this.a, this.f & 256 ? t.f & 256 ? t.a : null : t.f & 256 ? null : t.a) && vD(this.d, t.d) && vD(this.g, t.g) && vD(this.e, t.e) && Cpe(this, t)) : !1;
+ }, s.Hb = function() {
+ return this.f;
+ }, s.Ib = function() {
+ return KBn(this);
+ }, s.f = 0;
+ var Rne = 0, _ne = 0, Kne = 0, Hne = 0, f1n = 0, h1n = 0, l1n = 0, a1n = 0, d1n = 0, qne, a9 = 0, d9 = 0, Gne = 0, zne = 0, tI, b1n;
+ w(zi, "URI", 281), b(1091, 43, sg, v9n), s.zc = function(e, t) {
+ return u(yr(this, Te(e), u(t, 281)), 281);
+ }, w(zi, "URI/URICache", 1091), b(497, 63, Wf, q2n, $E), s.hi = function() {
+ return !0;
+ }, w(zi, "UniqueEList", 497), b(581, 60, zh, xC), w(zi, "WrappedException", 581);
+ var Be = Et(Ps, hGn), ow = Et(Ps, lGn), uu = Et(Ps, aGn), fw = Et(Ps, dGn), Qo = Et(Ps, bGn), io = Et(Ps, "EClass"), wH = Et(Ps, "EDataType"), Une;
+ b(1183, 43, sg, m9n), s.xc = function(e) {
+ return yi(e) ? mc(this, e) : Vr(Sr(this.f, e));
+ }, w(Ps, "EDataType/Internal/ConversionDelegate/Factory/Registry/Impl", 1183);
+ var iI = Et(Ps, "EEnum"), n1 = Et(Ps, wGn), ar = Et(Ps, gGn), ro = Et(Ps, pGn), co, I0 = Et(Ps, vGn), hw = Et(Ps, mGn);
+ b(1029, 1, {}, H2n), s.Ib = function() {
+ return "NIL";
+ }, w(Ps, "EStructuralFeature/Internal/DynamicValueHolder/1", 1029);
+ var Wne;
+ b(1028, 43, sg, k9n), s.xc = function(e) {
+ return yi(e) ? mc(this, e) : Vr(Sr(this.f, e));
+ }, w(Ps, "EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl", 1028);
+ var Gc = Et(Ps, kGn), Ip = Et(Ps, "EValidator/PatternMatcher"), w1n, g1n, Nn, x1, lw, Wl, Xne, Vne, Qne, Xl, L1, Vl, O0, Cf, Jne, Yne, uo, N1, Zne, B1, aw, qg, Zi, nee, eee, D0, rI = Et(vt, "FeatureMap/Entry");
+ b(535, 1, { 72: 1 }, Yj), s.ak = function() {
+ return this.a;
+ }, s.dd = function() {
+ return this.b;
+ }, w(Bn, "BasicEObjectImpl/1", 535), b(1027, 1, GB, Dkn), s.Wj = function(e) {
+ return T$(this.a, this.b, e);
+ }, s.fj = function() {
+ return aMn(this.a, this.b);
+ }, s.Wb = function(e) {
+ JW(this.a, this.b, e);
+ }, s.Xj = function() {
+ Mhe(this.a, this.b);
+ }, w(Bn, "BasicEObjectImpl/4", 1027), b(1983, 1, { 108: 1 }), s.bk = function(e) {
+ this.e = e == 0 ? tee : F(Zn, rn, 1, e, 5, 1);
+ }, s.Ch = function(e) {
+ return this.e[e];
+ }, s.Dh = function(e, t) {
+ this.e[e] = t;
+ }, s.Eh = function(e) {
+ this.e[e] = null;
+ }, s.ck = function() {
+ return this.c;
+ }, s.dk = function() {
+ throw T(new je());
+ }, s.ek = function() {
+ throw T(new je());
+ }, s.fk = function() {
+ return this.d;
+ }, s.gk = function() {
+ return this.e != null;
+ }, s.hk = function(e) {
+ this.c = e;
+ }, s.ik = function(e) {
+ throw T(new je());
+ }, s.jk = function(e) {
+ throw T(new je());
+ }, s.kk = function(e) {
+ this.d = e;
+ };
+ var tee;
+ w(Bn, "BasicEObjectImpl/EPropertiesHolderBaseImpl", 1983), b(185, 1983, { 108: 1 }, Fo), s.dk = function() {
+ return this.a;
+ }, s.ek = function() {
+ return this.b;
+ }, s.ik = function(e) {
+ this.a = e;
+ }, s.jk = function(e) {
+ this.b = e;
+ }, w(Bn, "BasicEObjectImpl/EPropertiesHolderImpl", 185), b(506, 97, yqn, Yy), s.Kg = function() {
+ return this.f;
+ }, s.Pg = function() {
+ return this.k;
+ }, s.Rg = function(e, t) {
+ this.g = e, this.i = t;
+ }, s.Tg = function() {
+ return this.j & 2 ? this.ph().ck() : this.zh();
+ }, s.Vg = function() {
+ return this.i;
+ }, s.Mg = function() {
+ return (this.j & 1) != 0;
+ }, s.eh = function() {
+ return this.g;
+ }, s.kh = function() {
+ return (this.j & 4) != 0;
+ }, s.ph = function() {
+ return !this.k && (this.k = new Fo()), this.k;
+ }, s.th = function(e) {
+ this.ph().hk(e), e ? this.j |= 2 : this.j &= -3;
+ }, s.vh = function(e) {
+ this.ph().jk(e), e ? this.j |= 4 : this.j &= -5;
+ }, s.zh = function() {
+ return (sl(), Nn).S;
+ }, s.i = 0, s.j = 1, w(Bn, "EObjectImpl", 506), b(780, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1 }, JU), s.Ch = function(e) {
+ return this.e[e];
+ }, s.Dh = function(e, t) {
+ this.e[e] = t;
+ }, s.Eh = function(e) {
+ this.e[e] = null;
+ }, s.Tg = function() {
+ return this.d;
+ }, s.Yg = function(e) {
+ return yt(this.d, e);
+ }, s.$g = function() {
+ return this.d;
+ }, s.dh = function() {
+ return this.e != null;
+ }, s.ph = function() {
+ return !this.k && (this.k = new Q2n()), this.k;
+ }, s.th = function(e) {
+ this.d = e;
+ }, s.yh = function() {
+ var e;
+ return this.e == null && (e = ee(this.d), this.e = e == 0 ? iee : F(Zn, rn, 1, e, 5, 1)), this;
+ }, s.Ah = function() {
+ return 0;
+ };
+ var iee;
+ w(Bn, "DynamicEObjectImpl", 780), b(1376, 780, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1 }, WEn), s.Fb = function(e) {
+ return this === e;
+ }, s.Hb = function() {
+ return kd(this);
+ }, s.th = function(e) {
+ this.d = e, this.b = R7(e, "key"), this.c = R7(e, im);
+ }, s.Sh = function() {
+ var e;
+ return this.a == -1 && (e = N$(this, this.b), this.a = e == null ? 0 : mt(e)), this.a;
+ }, s.cd = function() {
+ return N$(this, this.b);
+ }, s.dd = function() {
+ return N$(this, this.c);
+ }, s.Th = function(e) {
+ this.a = e;
+ }, s.Uh = function(e) {
+ JW(this, this.b, e);
+ }, s.ed = function(e) {
+ var t;
+ return t = N$(this, this.c), JW(this, this.c, e), t;
+ }, s.a = 0, w(Bn, "DynamicEObjectImpl/BasicEMapEntry", 1376), b(1377, 1, { 108: 1 }, Q2n), s.bk = function(e) {
+ throw T(new je());
+ }, s.Ch = function(e) {
+ throw T(new je());
+ }, s.Dh = function(e, t) {
+ throw T(new je());
+ }, s.Eh = function(e) {
+ throw T(new je());
+ }, s.ck = function() {
+ throw T(new je());
+ }, s.dk = function() {
+ return this.a;
+ }, s.ek = function() {
+ return this.b;
+ }, s.fk = function() {
+ return this.c;
+ }, s.gk = function() {
+ throw T(new je());
+ }, s.hk = function(e) {
+ throw T(new je());
+ }, s.ik = function(e) {
+ this.a = e;
+ }, s.jk = function(e) {
+ this.b = e;
+ }, s.kk = function(e) {
+ this.c = e;
+ }, w(Bn, "DynamicEObjectImpl/DynamicEPropertiesHolderImpl", 1377), b(510, 150, { 105: 1, 92: 1, 90: 1, 590: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 510: 1, 150: 1, 114: 1, 115: 1 }, JH), s.Qg = function(e) {
+ return gJ(this, e);
+ }, s._g = function(e, t, i) {
+ var r;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.d;
+ case 2:
+ return i ? (!this.b && (this.b = new qu((Sn(), Zi), tc, this)), this.b) : (!this.b && (this.b = new qu((Sn(), Zi), tc, this)), N8(this.b));
+ case 3:
+ return pMn(this);
+ case 4:
+ return !this.a && (this.a = new Yt(Gl, this, 4)), this.a;
+ case 5:
+ return !this.c && (this.c = new Aw(Gl, this, 5)), this.c;
+ }
+ return Es(this, e - ee((Sn(), x1)), On((r = u(Rn(this, 16), 26), r || x1), e), t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c, o;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Dc(this.Ab, e, i);
+ case 3:
+ return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? gJ(this, i) : this.Cb.ih(this, -1 - c, null, i))), dW(this, u(e, 147), i);
+ }
+ return o = u(On((r = u(Rn(this, 16), 26), r || (Sn(), x1)), t), 66), o.Nj().Qj(this, Bc(this), t - ee((Sn(), x1)), e, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 2:
+ return !this.b && (this.b = new qu((Sn(), Zi), tc, this)), yE(this.b, e, i);
+ case 3:
+ return dW(this, null, i);
+ case 4:
+ return !this.a && (this.a = new Yt(Gl, this, 4)), Gi(this.a, e, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || (Sn(), x1)), t), 66), c.Nj().Rj(this, Bc(this), t - ee((Sn(), x1)), e, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.d != null;
+ case 2:
+ return !!this.b && this.b.f != 0;
+ case 3:
+ return !!pMn(this);
+ case 4:
+ return !!this.a && this.a.i != 0;
+ case 5:
+ return !!this.c && this.c.i != 0;
+ }
+ return ys(this, e - ee((Sn(), x1)), On((t = u(Rn(this, 16), 26), t || x1), e));
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ wfe(this, Te(t));
+ return;
+ case 2:
+ !this.b && (this.b = new qu((Sn(), Zi), tc, this)), fT(this.b, t);
+ return;
+ case 3:
+ ONn(this, u(t, 147));
+ return;
+ case 4:
+ !this.a && (this.a = new Yt(Gl, this, 4)), de(this.a), !this.a && (this.a = new Yt(Gl, this, 4)), $t(this.a, u(t, 14));
+ return;
+ case 5:
+ !this.c && (this.c = new Aw(Gl, this, 5)), de(this.c), !this.c && (this.c = new Aw(Gl, this, 5)), $t(this.c, u(t, 14));
+ return;
+ }
+ Ss(this, e - ee((Sn(), x1)), On((i = u(Rn(this, 16), 26), i || x1), e), t);
+ }, s.zh = function() {
+ return Sn(), x1;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ pV(this, null);
+ return;
+ case 2:
+ !this.b && (this.b = new qu((Sn(), Zi), tc, this)), this.b.c.$b();
+ return;
+ case 3:
+ ONn(this, null);
+ return;
+ case 4:
+ !this.a && (this.a = new Yt(Gl, this, 4)), de(this.a);
+ return;
+ case 5:
+ !this.c && (this.c = new Aw(Gl, this, 5)), de(this.c);
+ return;
+ }
+ Ms(this, e - ee((Sn(), x1)), On((t = u(Rn(this, 16), 26), t || x1), e));
+ }, s.Ib = function() {
+ return UDn(this);
+ }, s.d = null, w(Bn, "EAnnotationImpl", 510), b(151, 705, Vtn, Wu), s.Xh = function(e, t) {
+ Jre(this, e, u(t, 42));
+ }, s.lk = function(e, t) {
+ return zue(this, u(e, 42), t);
+ }, s.pi = function(e) {
+ return u(u(this.c, 69).pi(e), 133);
+ }, s.Zh = function() {
+ return u(this.c, 69).Zh();
+ }, s.$h = function() {
+ return u(this.c, 69).$h();
+ }, s._h = function(e) {
+ return u(this.c, 69)._h(e);
+ }, s.mk = function(e, t) {
+ return yE(this, e, t);
+ }, s.Wj = function(e) {
+ return u(this.c, 76).Wj(e);
+ }, s.rj = function() {
+ }, s.fj = function() {
+ return u(this.c, 76).fj();
+ }, s.tj = function(e, t, i) {
+ var r;
+ return r = u(ts(this.b).Nh().Jh(this.b), 133), r.Th(e), r.Uh(t), r.ed(i), r;
+ }, s.uj = function() {
+ return new Lq(this);
+ }, s.Wb = function(e) {
+ fT(this, e);
+ }, s.Xj = function() {
+ u(this.c, 76).Xj();
+ }, w(vt, "EcoreEMap", 151), b(158, 151, Vtn, qu), s.qj = function() {
+ var e, t, i, r, c, o;
+ if (this.d == null) {
+ for (o = F(u1n, Xtn, 63, 2 * this.f + 1, 0, 1), i = this.c.Kc(); i.e != i.i.gc(); )
+ t = u(i.nj(), 133), r = t.Sh(), c = (r & nt) % o.length, e = o[c], !e && (e = o[c] = new Lq(this)), e.Fc(t);
+ this.d = o;
+ }
+ }, w(Bn, "EAnnotationImpl/1", 158), b(284, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 284: 1, 114: 1, 115: 1 }), s._g = function(e, t, i) {
+ var r, c;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return qn(), !!(this.Bb & 256);
+ case 3:
+ return qn(), !!(this.Bb & 512);
+ case 4:
+ return Q(this.s);
+ case 5:
+ return Q(this.t);
+ case 6:
+ return qn(), !!this.$j();
+ case 7:
+ return qn(), c = this.s, c >= 1;
+ case 8:
+ return t ? Hs(this) : this.r;
+ case 9:
+ return this.q;
+ }
+ return Es(this, e - ee(this.zh()), On((r = u(Rn(this, 16), 26), r || this.zh()), e), t, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 9:
+ return xD(this, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || this.zh()), t), 66), c.Nj().Rj(this, Bc(this), t - ee(this.zh()), e, i);
+ }, s.lh = function(e) {
+ var t, i;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return this.$j();
+ case 7:
+ return i = this.s, i >= 1;
+ case 8:
+ return !!this.r && !this.q.e && Sd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(this.r && !this.q.e && Sd(this.q).i == 0);
+ }
+ return ys(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.sh = function(e, t) {
+ var i, r;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ this.Lh(Te(t));
+ return;
+ case 2:
+ g1(this, on(sn(t)));
+ return;
+ case 3:
+ p1(this, on(sn(t)));
+ return;
+ case 4:
+ d1(this, u(t, 19).a);
+ return;
+ case 5:
+ this.ok(u(t, 19).a);
+ return;
+ case 8:
+ Ta(this, u(t, 138));
+ return;
+ case 9:
+ r = af(this, u(t, 87), null), r && r.Fi();
+ return;
+ }
+ Ss(this, e - ee(this.zh()), On((i = u(Rn(this, 16), 26), i || this.zh()), e), t);
+ }, s.zh = function() {
+ return Sn(), eee;
+ }, s.Bh = function(e) {
+ var t, i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ this.Lh(null);
+ return;
+ case 2:
+ g1(this, !0);
+ return;
+ case 3:
+ p1(this, !0);
+ return;
+ case 4:
+ d1(this, 0);
+ return;
+ case 5:
+ this.ok(1);
+ return;
+ case 8:
+ Ta(this, null);
+ return;
+ case 9:
+ i = af(this, null, null), i && i.Fi();
+ return;
+ }
+ Ms(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.Gh = function() {
+ Hs(this), this.Bb |= 1;
+ }, s.Yj = function() {
+ return Hs(this);
+ }, s.Zj = function() {
+ return this.t;
+ }, s.$j = function() {
+ var e;
+ return e = this.t, e > 1 || e == -1;
+ }, s.hi = function() {
+ return (this.Bb & 512) != 0;
+ }, s.nk = function(e, t) {
+ return lQ(this, e, t);
+ }, s.ok = function(e) {
+ lb(this, e);
+ }, s.Ib = function() {
+ return jY(this);
+ }, s.s = 0, s.t = 1, w(Bn, "ETypedElementImpl", 284), b(449, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }), s.Qg = function(e) {
+ return SFn(this, e);
+ }, s._g = function(e, t, i) {
+ var r, c;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return qn(), !!(this.Bb & 256);
+ case 3:
+ return qn(), !!(this.Bb & 512);
+ case 4:
+ return Q(this.s);
+ case 5:
+ return Q(this.t);
+ case 6:
+ return qn(), !!this.$j();
+ case 7:
+ return qn(), c = this.s, c >= 1;
+ case 8:
+ return t ? Hs(this) : this.r;
+ case 9:
+ return this.q;
+ case 10:
+ return qn(), !!(this.Bb & Eo);
+ case 11:
+ return qn(), !!(this.Bb & Rb);
+ case 12:
+ return qn(), !!(this.Bb & Ob);
+ case 13:
+ return this.j;
+ case 14:
+ return b4(this);
+ case 15:
+ return qn(), !!(this.Bb & pu);
+ case 16:
+ return qn(), !!(this.Bb & Nf);
+ case 17:
+ return tb(this);
+ }
+ return Es(this, e - ee(this.zh()), On((r = u(Rn(this, 16), 26), r || this.zh()), e), t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c, o;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Dc(this.Ab, e, i);
+ case 17:
+ return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? SFn(this, i) : this.Cb.ih(this, -1 - c, null, i))), ss(this, e, 17, i);
+ }
+ return o = u(On((r = u(Rn(this, 16), 26), r || this.zh()), t), 66), o.Nj().Qj(this, Bc(this), t - ee(this.zh()), e, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 9:
+ return xD(this, i);
+ case 17:
+ return ss(this, null, 17, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || this.zh()), t), 66), c.Nj().Rj(this, Bc(this), t - ee(this.zh()), e, i);
+ }, s.lh = function(e) {
+ var t, i;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return this.$j();
+ case 7:
+ return i = this.s, i >= 1;
+ case 8:
+ return !!this.r && !this.q.e && Sd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(this.r && !this.q.e && Sd(this.q).i == 0);
+ case 10:
+ return (this.Bb & Eo) == 0;
+ case 11:
+ return (this.Bb & Rb) != 0;
+ case 12:
+ return (this.Bb & Ob) != 0;
+ case 13:
+ return this.j != null;
+ case 14:
+ return b4(this) != null;
+ case 15:
+ return (this.Bb & pu) != 0;
+ case 16:
+ return (this.Bb & Nf) != 0;
+ case 17:
+ return !!tb(this);
+ }
+ return ys(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.sh = function(e, t) {
+ var i, r;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ f$(this, Te(t));
+ return;
+ case 2:
+ g1(this, on(sn(t)));
+ return;
+ case 3:
+ p1(this, on(sn(t)));
+ return;
+ case 4:
+ d1(this, u(t, 19).a);
+ return;
+ case 5:
+ this.ok(u(t, 19).a);
+ return;
+ case 8:
+ Ta(this, u(t, 138));
+ return;
+ case 9:
+ r = af(this, u(t, 87), null), r && r.Fi();
+ return;
+ case 10:
+ J3(this, on(sn(t)));
+ return;
+ case 11:
+ n4(this, on(sn(t)));
+ return;
+ case 12:
+ Y3(this, on(sn(t)));
+ return;
+ case 13:
+ dz(this, Te(t));
+ return;
+ case 15:
+ Z3(this, on(sn(t)));
+ return;
+ case 16:
+ e4(this, on(sn(t)));
+ return;
+ }
+ Ss(this, e - ee(this.zh()), On((i = u(Rn(this, 16), 26), i || this.zh()), e), t);
+ }, s.zh = function() {
+ return Sn(), nee;
+ }, s.Bh = function(e) {
+ var t, i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ I(this.Cb, 88) && jb(Iu(u(this.Cb, 88)), 4), Oc(this, null);
+ return;
+ case 2:
+ g1(this, !0);
+ return;
+ case 3:
+ p1(this, !0);
+ return;
+ case 4:
+ d1(this, 0);
+ return;
+ case 5:
+ this.ok(1);
+ return;
+ case 8:
+ Ta(this, null);
+ return;
+ case 9:
+ i = af(this, null, null), i && i.Fi();
+ return;
+ case 10:
+ J3(this, !0);
+ return;
+ case 11:
+ n4(this, !1);
+ return;
+ case 12:
+ Y3(this, !1);
+ return;
+ case 13:
+ this.i = null, nT(this, null);
+ return;
+ case 15:
+ Z3(this, !1);
+ return;
+ case 16:
+ e4(this, !1);
+ return;
+ }
+ Ms(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.Gh = function() {
+ p3(Er((bu(), xi), this)), Hs(this), this.Bb |= 1;
+ }, s.Gj = function() {
+ return this.f;
+ }, s.zj = function() {
+ return b4(this);
+ }, s.Hj = function() {
+ return tb(this);
+ }, s.Lj = function() {
+ return null;
+ }, s.pk = function() {
+ return this.k;
+ }, s.aj = function() {
+ return this.n;
+ }, s.Mj = function() {
+ return QT(this);
+ }, s.Nj = function() {
+ var e, t, i, r, c, o, f, h, l;
+ return this.p || (i = tb(this), (i.i == null && Lf(i), i.i).length, r = this.Lj(), r && ee(tb(r)), c = Hs(this), f = c.Bj(), e = f ? f.i & 1 ? f == _u ? oi : f == be ? Ui : f == bw ? z4 : f == Ci ? Si : f == Jl ? d0 : f == Wg ? b0 : f == mu ? op : bm : f : null, t = b4(this), h = c.zj(), Vge(this), this.Bb & Nf && ((o = EJ((bu(), xi), i)) && o != this || (o = A2(Er(xi, this)))) ? this.p = new Fkn(this, o) : this.$j() ? this.rk() ? r ? this.Bb & pu ? e ? this.sk() ? this.p = new la(47, e, this, r) : this.p = new la(5, e, this, r) : this.sk() ? this.p = new ba(46, this, r) : this.p = new ba(4, this, r) : e ? this.sk() ? this.p = new la(49, e, this, r) : this.p = new la(7, e, this, r) : this.sk() ? this.p = new ba(48, this, r) : this.p = new ba(6, this, r) : this.Bb & pu ? e ? e == qa ? this.p = new s1(50, Lne, this) : this.sk() ? this.p = new s1(43, e, this) : this.p = new s1(1, e, this) : this.sk() ? this.p = new f1(42, this) : this.p = new f1(0, this) : e ? e == qa ? this.p = new s1(41, Lne, this) : this.sk() ? this.p = new s1(45, e, this) : this.p = new s1(3, e, this) : this.sk() ? this.p = new f1(44, this) : this.p = new f1(2, this) : I(c, 148) ? e == rI ? this.p = new f1(40, this) : this.Bb & 512 ? this.Bb & pu ? e ? this.p = new s1(9, e, this) : this.p = new f1(8, this) : e ? this.p = new s1(11, e, this) : this.p = new f1(10, this) : this.Bb & pu ? e ? this.p = new s1(13, e, this) : this.p = new f1(12, this) : e ? this.p = new s1(15, e, this) : this.p = new f1(14, this) : r ? (l = r.t, l > 1 || l == -1 ? this.sk() ? this.Bb & pu ? e ? this.p = new la(25, e, this, r) : this.p = new ba(24, this, r) : e ? this.p = new la(27, e, this, r) : this.p = new ba(26, this, r) : this.Bb & pu ? e ? this.p = new la(29, e, this, r) : this.p = new ba(28, this, r) : e ? this.p = new la(31, e, this, r) : this.p = new ba(30, this, r) : this.sk() ? this.Bb & pu ? e ? this.p = new la(33, e, this, r) : this.p = new ba(32, this, r) : e ? this.p = new la(35, e, this, r) : this.p = new ba(34, this, r) : this.Bb & pu ? e ? this.p = new la(37, e, this, r) : this.p = new ba(36, this, r) : e ? this.p = new la(39, e, this, r) : this.p = new ba(38, this, r)) : this.sk() ? this.Bb & pu ? e ? this.p = new s1(17, e, this) : this.p = new f1(16, this) : e ? this.p = new s1(19, e, this) : this.p = new f1(18, this) : this.Bb & pu ? e ? this.p = new s1(21, e, this) : this.p = new f1(20, this) : e ? this.p = new s1(23, e, this) : this.p = new f1(22, this) : this.qk() ? this.sk() ? this.p = new yEn(u(c, 26), this, r) : this.p = new QW(u(c, 26), this, r) : I(c, 148) ? e == rI ? this.p = new f1(40, this) : this.Bb & pu ? e ? this.p = new mCn(t, h, this, (LF(), f == be ? E1n : f == _u ? v1n : f == Jl ? C1n : f == bw ? j1n : f == Ci ? y1n : f == Wg ? T1n : f == mu ? m1n : f == xs ? k1n : vH)) : this.p = new OTn(u(c, 148), t, h, this) : e ? this.p = new vCn(t, h, this, (LF(), f == be ? E1n : f == _u ? v1n : f == Jl ? C1n : f == bw ? j1n : f == Ci ? y1n : f == Wg ? T1n : f == mu ? m1n : f == xs ? k1n : vH)) : this.p = new ITn(u(c, 148), t, h, this) : this.rk() ? r ? this.Bb & pu ? this.sk() ? this.p = new EEn(u(c, 26), this, r) : this.p = new KU(u(c, 26), this, r) : this.sk() ? this.p = new jEn(u(c, 26), this, r) : this.p = new lD(u(c, 26), this, r) : this.Bb & pu ? this.sk() ? this.p = new vjn(u(c, 26), this) : this.p = new eU(u(c, 26), this) : this.sk() ? this.p = new pjn(u(c, 26), this) : this.p = new JO(u(c, 26), this) : this.sk() ? r ? this.Bb & pu ? this.p = new CEn(u(c, 26), this, r) : this.p = new RU(u(c, 26), this, r) : this.Bb & pu ? this.p = new mjn(u(c, 26), this) : this.p = new tU(u(c, 26), this) : r ? this.Bb & pu ? this.p = new TEn(u(c, 26), this, r) : this.p = new _U(u(c, 26), this, r) : this.Bb & pu ? this.p = new kjn(u(c, 26), this) : this.p = new FE(u(c, 26), this)), this.p;
+ }, s.Ij = function() {
+ return (this.Bb & Eo) != 0;
+ }, s.qk = function() {
+ return !1;
+ }, s.rk = function() {
+ return !1;
+ }, s.Jj = function() {
+ return (this.Bb & Nf) != 0;
+ }, s.Oj = function() {
+ return R$(this);
+ }, s.sk = function() {
+ return !1;
+ }, s.Kj = function() {
+ return (this.Bb & pu) != 0;
+ }, s.tk = function(e) {
+ this.k = e;
+ }, s.Lh = function(e) {
+ f$(this, e);
+ }, s.Ib = function() {
+ return bM(this);
+ }, s.e = !1, s.n = 0, w(Bn, "EStructuralFeatureImpl", 449), b(322, 449, { 105: 1, 92: 1, 90: 1, 34: 1, 147: 1, 191: 1, 56: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 322: 1, 150: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }, BI), s._g = function(e, t, i) {
+ var r, c;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return qn(), !!(this.Bb & 256);
+ case 3:
+ return qn(), !!(this.Bb & 512);
+ case 4:
+ return Q(this.s);
+ case 5:
+ return Q(this.t);
+ case 6:
+ return qn(), !!vY(this);
+ case 7:
+ return qn(), c = this.s, c >= 1;
+ case 8:
+ return t ? Hs(this) : this.r;
+ case 9:
+ return this.q;
+ case 10:
+ return qn(), !!(this.Bb & Eo);
+ case 11:
+ return qn(), !!(this.Bb & Rb);
+ case 12:
+ return qn(), !!(this.Bb & Ob);
+ case 13:
+ return this.j;
+ case 14:
+ return b4(this);
+ case 15:
+ return qn(), !!(this.Bb & pu);
+ case 16:
+ return qn(), !!(this.Bb & Nf);
+ case 17:
+ return tb(this);
+ case 18:
+ return qn(), !!(this.Bb & sc);
+ case 19:
+ return t ? iF(this) : OSn(this);
+ }
+ return Es(this, e - ee((Sn(), lw)), On((r = u(Rn(this, 16), 26), r || lw), e), t, i);
+ }, s.lh = function(e) {
+ var t, i;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return vY(this);
+ case 7:
+ return i = this.s, i >= 1;
+ case 8:
+ return !!this.r && !this.q.e && Sd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(this.r && !this.q.e && Sd(this.q).i == 0);
+ case 10:
+ return (this.Bb & Eo) == 0;
+ case 11:
+ return (this.Bb & Rb) != 0;
+ case 12:
+ return (this.Bb & Ob) != 0;
+ case 13:
+ return this.j != null;
+ case 14:
+ return b4(this) != null;
+ case 15:
+ return (this.Bb & pu) != 0;
+ case 16:
+ return (this.Bb & Nf) != 0;
+ case 17:
+ return !!tb(this);
+ case 18:
+ return (this.Bb & sc) != 0;
+ case 19:
+ return !!OSn(this);
+ }
+ return ys(this, e - ee((Sn(), lw)), On((t = u(Rn(this, 16), 26), t || lw), e));
+ }, s.sh = function(e, t) {
+ var i, r;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ f$(this, Te(t));
+ return;
+ case 2:
+ g1(this, on(sn(t)));
+ return;
+ case 3:
+ p1(this, on(sn(t)));
+ return;
+ case 4:
+ d1(this, u(t, 19).a);
+ return;
+ case 5:
+ f8n(this, u(t, 19).a);
+ return;
+ case 8:
+ Ta(this, u(t, 138));
+ return;
+ case 9:
+ r = af(this, u(t, 87), null), r && r.Fi();
+ return;
+ case 10:
+ J3(this, on(sn(t)));
+ return;
+ case 11:
+ n4(this, on(sn(t)));
+ return;
+ case 12:
+ Y3(this, on(sn(t)));
+ return;
+ case 13:
+ dz(this, Te(t));
+ return;
+ case 15:
+ Z3(this, on(sn(t)));
+ return;
+ case 16:
+ e4(this, on(sn(t)));
+ return;
+ case 18:
+ SF(this, on(sn(t)));
+ return;
+ }
+ Ss(this, e - ee((Sn(), lw)), On((i = u(Rn(this, 16), 26), i || lw), e), t);
+ }, s.zh = function() {
+ return Sn(), lw;
+ }, s.Bh = function(e) {
+ var t, i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ I(this.Cb, 88) && jb(Iu(u(this.Cb, 88)), 4), Oc(this, null);
+ return;
+ case 2:
+ g1(this, !0);
+ return;
+ case 3:
+ p1(this, !0);
+ return;
+ case 4:
+ d1(this, 0);
+ return;
+ case 5:
+ this.b = 0, lb(this, 1);
+ return;
+ case 8:
+ Ta(this, null);
+ return;
+ case 9:
+ i = af(this, null, null), i && i.Fi();
+ return;
+ case 10:
+ J3(this, !0);
+ return;
+ case 11:
+ n4(this, !1);
+ return;
+ case 12:
+ Y3(this, !1);
+ return;
+ case 13:
+ this.i = null, nT(this, null);
+ return;
+ case 15:
+ Z3(this, !1);
+ return;
+ case 16:
+ e4(this, !1);
+ return;
+ case 18:
+ SF(this, !1);
+ return;
+ }
+ Ms(this, e - ee((Sn(), lw)), On((t = u(Rn(this, 16), 26), t || lw), e));
+ }, s.Gh = function() {
+ iF(this), p3(Er((bu(), xi), this)), Hs(this), this.Bb |= 1;
+ }, s.$j = function() {
+ return vY(this);
+ }, s.nk = function(e, t) {
+ return this.b = 0, this.a = null, lQ(this, e, t);
+ }, s.ok = function(e) {
+ f8n(this, e);
+ }, s.Ib = function() {
+ var e;
+ return this.Db & 64 ? bM(this) : (e = new Ns(bM(this)), e.a += " (iD: ", r1(e, (this.Bb & sc) != 0), e.a += ")", e.a);
+ }, s.b = 0, w(Bn, "EAttributeImpl", 322), b(351, 438, { 105: 1, 92: 1, 90: 1, 138: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 150: 1, 114: 1, 115: 1, 676: 1 }), s.uk = function(e) {
+ return e.Tg() == this;
+ }, s.Qg = function(e) {
+ return ox(this, e);
+ }, s.Rg = function(e, t) {
+ this.w = null, this.Db = t << 16 | this.Db & 255, this.Cb = e;
+ }, s._g = function(e, t, i) {
+ var r;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return this.D != null ? this.D : this.B;
+ case 3:
+ return Jd(this);
+ case 4:
+ return this.zj();
+ case 5:
+ return this.F;
+ case 6:
+ return t ? ts(this) : k3(this);
+ case 7:
+ return !this.A && (this.A = new fu(Gc, this, 7)), this.A;
+ }
+ return Es(this, e - ee(this.zh()), On((r = u(Rn(this, 16), 26), r || this.zh()), e), t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c, o;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Dc(this.Ab, e, i);
+ case 6:
+ return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? ox(this, i) : this.Cb.ih(this, -1 - c, null, i))), ss(this, e, 6, i);
+ }
+ return o = u(On((r = u(Rn(this, 16), 26), r || this.zh()), t), 66), o.Nj().Qj(this, Bc(this), t - ee(this.zh()), e, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 6:
+ return ss(this, null, 6, i);
+ case 7:
+ return !this.A && (this.A = new fu(Gc, this, 7)), Gi(this.A, e, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || this.zh()), t), 66), c.Nj().Rj(this, Bc(this), t - ee(this.zh()), e, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.D != null && this.D == this.F;
+ case 3:
+ return !!Jd(this);
+ case 4:
+ return this.zj() != null;
+ case 5:
+ return this.F != null && this.F != this.D && this.F != this.B;
+ case 6:
+ return !!k3(this);
+ case 7:
+ return !!this.A && this.A.i != 0;
+ }
+ return ys(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ bC(this, Te(t));
+ return;
+ case 2:
+ BO(this, Te(t));
+ return;
+ case 5:
+ k4(this, Te(t));
+ return;
+ case 7:
+ !this.A && (this.A = new fu(Gc, this, 7)), de(this.A), !this.A && (this.A = new fu(Gc, this, 7)), $t(this.A, u(t, 14));
+ return;
+ }
+ Ss(this, e - ee(this.zh()), On((i = u(Rn(this, 16), 26), i || this.zh()), e), t);
+ }, s.zh = function() {
+ return Sn(), Xne;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ I(this.Cb, 179) && (u(this.Cb, 179).tb = null), Oc(this, null);
+ return;
+ case 2:
+ W3(this, null), x3(this, this.D);
+ return;
+ case 5:
+ k4(this, null);
+ return;
+ case 7:
+ !this.A && (this.A = new fu(Gc, this, 7)), de(this.A);
+ return;
+ }
+ Ms(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.yj = function() {
+ var e;
+ return this.G == -1 && (this.G = (e = ts(this), e ? v1(e.Mh(), this) : -1)), this.G;
+ }, s.zj = function() {
+ return null;
+ }, s.Aj = function() {
+ return ts(this);
+ }, s.vk = function() {
+ return this.v;
+ }, s.Bj = function() {
+ return Jd(this);
+ }, s.Cj = function() {
+ return this.D != null ? this.D : this.B;
+ }, s.Dj = function() {
+ return this.F;
+ }, s.wj = function(e) {
+ return nL(this, e);
+ }, s.wk = function(e) {
+ this.v = e;
+ }, s.xk = function(e) {
+ sOn(this, e);
+ }, s.yk = function(e) {
+ this.C = e;
+ }, s.Lh = function(e) {
+ bC(this, e);
+ }, s.Ib = function() {
+ return MT(this);
+ }, s.C = null, s.D = null, s.G = -1, w(Bn, "EClassifierImpl", 351), b(88, 351, { 105: 1, 92: 1, 90: 1, 26: 1, 138: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 88: 1, 351: 1, 150: 1, 473: 1, 114: 1, 115: 1, 676: 1 }, tq), s.uk = function(e) {
+ return Oue(this, e.Tg());
+ }, s._g = function(e, t, i) {
+ var r;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return this.D != null ? this.D : this.B;
+ case 3:
+ return Jd(this);
+ case 4:
+ return null;
+ case 5:
+ return this.F;
+ case 6:
+ return t ? ts(this) : k3(this);
+ case 7:
+ return !this.A && (this.A = new fu(Gc, this, 7)), this.A;
+ case 8:
+ return qn(), !!(this.Bb & 256);
+ case 9:
+ return qn(), !!(this.Bb & 512);
+ case 10:
+ return Ar(this);
+ case 11:
+ return !this.q && (this.q = new V(ro, this, 11, 10)), this.q;
+ case 12:
+ return ig(this);
+ case 13:
+ return I6(this);
+ case 14:
+ return I6(this), this.r;
+ case 15:
+ return ig(this), this.k;
+ case 16:
+ return oY(this);
+ case 17:
+ return cL(this);
+ case 18:
+ return Lf(this);
+ case 19:
+ return sM(this);
+ case 20:
+ return ig(this), this.o;
+ case 21:
+ return !this.s && (this.s = new V(uu, this, 21, 17)), this.s;
+ case 22:
+ return wc(this);
+ case 23:
+ return Gx(this);
+ }
+ return Es(this, e - ee((Sn(), Wl)), On((r = u(Rn(this, 16), 26), r || Wl), e), t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c, o;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Dc(this.Ab, e, i);
+ case 6:
+ return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? ox(this, i) : this.Cb.ih(this, -1 - c, null, i))), ss(this, e, 6, i);
+ case 11:
+ return !this.q && (this.q = new V(ro, this, 11, 10)), Dc(this.q, e, i);
+ case 21:
+ return !this.s && (this.s = new V(uu, this, 21, 17)), Dc(this.s, e, i);
+ }
+ return o = u(On((r = u(Rn(this, 16), 26), r || (Sn(), Wl)), t), 66), o.Nj().Qj(this, Bc(this), t - ee((Sn(), Wl)), e, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 6:
+ return ss(this, null, 6, i);
+ case 7:
+ return !this.A && (this.A = new fu(Gc, this, 7)), Gi(this.A, e, i);
+ case 11:
+ return !this.q && (this.q = new V(ro, this, 11, 10)), Gi(this.q, e, i);
+ case 21:
+ return !this.s && (this.s = new V(uu, this, 21, 17)), Gi(this.s, e, i);
+ case 22:
+ return Gi(wc(this), e, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || (Sn(), Wl)), t), 66), c.Nj().Rj(this, Bc(this), t - ee((Sn(), Wl)), e, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.D != null && this.D == this.F;
+ case 3:
+ return !!Jd(this);
+ case 4:
+ return !1;
+ case 5:
+ return this.F != null && this.F != this.D && this.F != this.B;
+ case 6:
+ return !!k3(this);
+ case 7:
+ return !!this.A && this.A.i != 0;
+ case 8:
+ return (this.Bb & 256) != 0;
+ case 9:
+ return (this.Bb & 512) != 0;
+ case 10:
+ return !!this.u && wc(this.u.a).i != 0 && !(this.n && JF(this.n));
+ case 11:
+ return !!this.q && this.q.i != 0;
+ case 12:
+ return ig(this).i != 0;
+ case 13:
+ return I6(this).i != 0;
+ case 14:
+ return I6(this), this.r.i != 0;
+ case 15:
+ return ig(this), this.k.i != 0;
+ case 16:
+ return oY(this).i != 0;
+ case 17:
+ return cL(this).i != 0;
+ case 18:
+ return Lf(this).i != 0;
+ case 19:
+ return sM(this).i != 0;
+ case 20:
+ return ig(this), !!this.o;
+ case 21:
+ return !!this.s && this.s.i != 0;
+ case 22:
+ return !!this.n && JF(this.n);
+ case 23:
+ return Gx(this).i != 0;
+ }
+ return ys(this, e - ee((Sn(), Wl)), On((t = u(Rn(this, 16), 26), t || Wl), e));
+ }, s.oh = function(e) {
+ var t;
+ return t = this.i == null || this.q && this.q.i != 0 ? null : R7(this, e), t || RZ(this, e);
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ bC(this, Te(t));
+ return;
+ case 2:
+ BO(this, Te(t));
+ return;
+ case 5:
+ k4(this, Te(t));
+ return;
+ case 7:
+ !this.A && (this.A = new fu(Gc, this, 7)), de(this.A), !this.A && (this.A = new fu(Gc, this, 7)), $t(this.A, u(t, 14));
+ return;
+ case 8:
+ dQ(this, on(sn(t)));
+ return;
+ case 9:
+ bQ(this, on(sn(t)));
+ return;
+ case 10:
+ $6(Ar(this)), $t(Ar(this), u(t, 14));
+ return;
+ case 11:
+ !this.q && (this.q = new V(ro, this, 11, 10)), de(this.q), !this.q && (this.q = new V(ro, this, 11, 10)), $t(this.q, u(t, 14));
+ return;
+ case 21:
+ !this.s && (this.s = new V(uu, this, 21, 17)), de(this.s), !this.s && (this.s = new V(uu, this, 21, 17)), $t(this.s, u(t, 14));
+ return;
+ case 22:
+ de(wc(this)), $t(wc(this), u(t, 14));
+ return;
+ }
+ Ss(this, e - ee((Sn(), Wl)), On((i = u(Rn(this, 16), 26), i || Wl), e), t);
+ }, s.zh = function() {
+ return Sn(), Wl;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ I(this.Cb, 179) && (u(this.Cb, 179).tb = null), Oc(this, null);
+ return;
+ case 2:
+ W3(this, null), x3(this, this.D);
+ return;
+ case 5:
+ k4(this, null);
+ return;
+ case 7:
+ !this.A && (this.A = new fu(Gc, this, 7)), de(this.A);
+ return;
+ case 8:
+ dQ(this, !1);
+ return;
+ case 9:
+ bQ(this, !1);
+ return;
+ case 10:
+ this.u && $6(this.u);
+ return;
+ case 11:
+ !this.q && (this.q = new V(ro, this, 11, 10)), de(this.q);
+ return;
+ case 21:
+ !this.s && (this.s = new V(uu, this, 21, 17)), de(this.s);
+ return;
+ case 22:
+ this.n && de(this.n);
+ return;
+ }
+ Ms(this, e - ee((Sn(), Wl)), On((t = u(Rn(this, 16), 26), t || Wl), e));
+ }, s.Gh = function() {
+ var e, t;
+ if (ig(this), I6(this), oY(this), cL(this), Lf(this), sM(this), Gx(this), U5(Xoe(Iu(this))), this.s)
+ for (e = 0, t = this.s.i; e < t; ++e)
+ s8(D(this.s, e));
+ if (this.q)
+ for (e = 0, t = this.q.i; e < t; ++e)
+ s8(D(this.q, e));
+ w1((bu(), xi), this).ne(), this.Bb |= 1;
+ }, s.Ib = function() {
+ return IJ(this);
+ }, s.k = null, s.r = null;
+ var b9, ree, gH;
+ w(Bn, "EClassImpl", 88), b(1994, 1993, EGn), s.Vh = function(e, t) {
+ return eL(this, e, t);
+ }, s.Wh = function(e) {
+ return eL(this, this.i, e);
+ }, s.Xh = function(e, t) {
+ EY(this, e, t);
+ }, s.Yh = function(e) {
+ $x(this, e);
+ }, s.lk = function(e, t) {
+ return Dc(this, e, t);
+ }, s.pi = function(e) {
+ return zX(this, e);
+ }, s.mk = function(e, t) {
+ return Gi(this, e, t);
+ }, s.mi = function(e, t) {
+ return pRn(this, e, t);
+ }, s.Zh = function() {
+ return new w2(this);
+ }, s.$h = function() {
+ return new u8(this);
+ }, s._h = function(e) {
+ return J8(this, e);
+ }, w(vt, "NotifyingInternalEListImpl", 1994), b(622, 1994, Br), s.Hc = function(e) {
+ return xRn(this, e);
+ }, s.Zi = function(e, t, i, r, c) {
+ return _5(this, e, t, i, r, c);
+ }, s.$i = function(e) {
+ qp(this, e);
+ }, s.Wj = function(e) {
+ return this;
+ }, s.ak = function() {
+ return On(this.e.Tg(), this.aj());
+ }, s._i = function() {
+ return this.ak();
+ }, s.aj = function() {
+ return yt(this.e.Tg(), this.ak());
+ }, s.zk = function() {
+ return u(this.ak().Yj(), 26).Bj();
+ }, s.Ak = function() {
+ return ir(u(this.ak(), 18)).n;
+ }, s.Ai = function() {
+ return this.e;
+ }, s.Bk = function() {
+ return !0;
+ }, s.Ck = function() {
+ return !1;
+ }, s.Dk = function() {
+ return !1;
+ }, s.Ek = function() {
+ return !1;
+ }, s.Xc = function(e) {
+ return v1(this, e);
+ }, s.cj = function(e, t) {
+ var i;
+ return i = u(e, 49), this.Dk() ? this.Bk() ? i.gh(this.e, this.Ak(), this.zk(), t) : i.gh(this.e, yt(i.Tg(), ir(u(this.ak(), 18))), null, t) : i.gh(this.e, -1 - this.aj(), null, t);
+ }, s.dj = function(e, t) {
+ var i;
+ return i = u(e, 49), this.Dk() ? this.Bk() ? i.ih(this.e, this.Ak(), this.zk(), t) : i.ih(this.e, yt(i.Tg(), ir(u(this.ak(), 18))), null, t) : i.ih(this.e, -1 - this.aj(), null, t);
+ }, s.rk = function() {
+ return !1;
+ }, s.Fk = function() {
+ return !0;
+ }, s.wj = function(e) {
+ return OAn(this.d, e);
+ }, s.ej = function() {
+ return Hu(this.e);
+ }, s.fj = function() {
+ return this.i != 0;
+ }, s.ri = function(e) {
+ return Q8(this.d, e);
+ }, s.li = function(e, t) {
+ return this.Fk() && this.Ek() ? U2(this, e, u(t, 56)) : t;
+ }, s.Gk = function(e) {
+ return e.kh() ? gl(this.e, u(e, 49)) : e;
+ }, s.Wb = function(e) {
+ Iyn(this, e);
+ }, s.Pc = function() {
+ return wPn(this);
+ }, s.Qc = function(e) {
+ var t;
+ if (this.Ek())
+ for (t = this.i - 1; t >= 0; --t)
+ D(this, t);
+ return LQ(this, e);
+ }, s.Xj = function() {
+ de(this);
+ }, s.oi = function(e, t) {
+ return IIn(this, e, t);
+ }, w(vt, "EcoreEList", 622), b(496, 622, Br, v8), s.ai = function() {
+ return !1;
+ }, s.aj = function() {
+ return this.c;
+ }, s.bj = function() {
+ return !1;
+ }, s.Fk = function() {
+ return !0;
+ }, s.hi = function() {
+ return !0;
+ }, s.li = function(e, t) {
+ return t;
+ }, s.ni = function() {
+ return !1;
+ }, s.c = 0, w(vt, "EObjectEList", 496), b(85, 496, Br, Yt), s.bj = function() {
+ return !0;
+ }, s.Dk = function() {
+ return !1;
+ }, s.rk = function() {
+ return !0;
+ }, w(vt, "EObjectContainmentEList", 85), b(545, 85, Br, hE), s.ci = function() {
+ this.b = !0;
+ }, s.fj = function() {
+ return this.b;
+ }, s.Xj = function() {
+ var e;
+ de(this), Hu(this.e) ? (e = this.b, this.b = !1, et(this.e, new vo(this.e, 2, this.c, e, !1))) : this.b = !1;
+ }, s.b = !1, w(vt, "EObjectContainmentEList/Unsettable", 545), b(1140, 545, Br, gCn), s.ii = function(e, t) {
+ var i, r;
+ return i = u(o6(this, e, t), 87), Hu(this.e) && qp(this, new R8(this.a, 7, (Sn(), Vne), Q(t), (r = i.c, I(r, 88) ? u(r, 26) : uo), e)), i;
+ }, s.jj = function(e, t) {
+ return L2e(this, u(e, 87), t);
+ }, s.kj = function(e, t) {
+ return x2e(this, u(e, 87), t);
+ }, s.lj = function(e, t, i) {
+ return N4e(this, u(e, 87), u(t, 87), i);
+ }, s.Zi = function(e, t, i, r, c) {
+ switch (e) {
+ case 3:
+ return _5(this, e, t, i, r, this.i > 1);
+ case 5:
+ return _5(this, e, t, i, r, this.i - u(i, 15).gc() > 0);
+ default:
+ return new xh(this.e, e, this.c, t, i, r, !0);
+ }
+ }, s.ij = function() {
+ return !0;
+ }, s.fj = function() {
+ return JF(this);
+ }, s.Xj = function() {
+ de(this);
+ }, w(Bn, "EClassImpl/1", 1140), b(1154, 1153, Wtn), s.ui = function(e) {
+ var t, i, r, c, o, f, h;
+ if (i = e.xi(), i != 8) {
+ if (r = mpe(e), r == 0)
+ switch (i) {
+ case 1:
+ case 9: {
+ h = e.Bi(), h != null && (t = Iu(u(h, 473)), !t.c && (t.c = new Np()), BC(t.c, e.Ai())), f = e.zi(), f != null && (c = u(f, 473), c.Bb & 1 || (t = Iu(c), !t.c && (t.c = new Np()), me(t.c, u(e.Ai(), 26))));
+ break;
+ }
+ case 3: {
+ f = e.zi(), f != null && (c = u(f, 473), c.Bb & 1 || (t = Iu(c), !t.c && (t.c = new Np()), me(t.c, u(e.Ai(), 26))));
+ break;
+ }
+ case 5: {
+ if (f = e.zi(), f != null)
+ for (o = u(f, 14).Kc(); o.Ob(); )
+ c = u(o.Pb(), 473), c.Bb & 1 || (t = Iu(c), !t.c && (t.c = new Np()), me(t.c, u(e.Ai(), 26)));
+ break;
+ }
+ case 4: {
+ h = e.Bi(), h != null && (c = u(h, 473), c.Bb & 1 || (t = Iu(c), !t.c && (t.c = new Np()), BC(t.c, e.Ai())));
+ break;
+ }
+ case 6: {
+ if (h = e.Bi(), h != null)
+ for (o = u(h, 14).Kc(); o.Ob(); )
+ c = u(o.Pb(), 473), c.Bb & 1 || (t = Iu(c), !t.c && (t.c = new Np()), BC(t.c, e.Ai()));
+ break;
+ }
+ }
+ this.Hk(r);
+ }
+ }, s.Hk = function(e) {
+ wBn(this, e);
+ }, s.b = 63, w(Bn, "ESuperAdapter", 1154), b(1155, 1154, Wtn, Smn), s.Hk = function(e) {
+ jb(this, e);
+ }, w(Bn, "EClassImpl/10", 1155), b(1144, 696, Br), s.Vh = function(e, t) {
+ return mx(this, e, t);
+ }, s.Wh = function(e) {
+ return lFn(this, e);
+ }, s.Xh = function(e, t) {
+ a7(this, e, t);
+ }, s.Yh = function(e) {
+ F8(this, e);
+ }, s.pi = function(e) {
+ return zX(this, e);
+ }, s.mi = function(e, t) {
+ return B$(this, e, t);
+ }, s.lk = function(e, t) {
+ throw T(new je());
+ }, s.Zh = function() {
+ return new w2(this);
+ }, s.$h = function() {
+ return new u8(this);
+ }, s._h = function(e) {
+ return J8(this, e);
+ }, s.mk = function(e, t) {
+ throw T(new je());
+ }, s.Wj = function(e) {
+ return this;
+ }, s.fj = function() {
+ return this.i != 0;
+ }, s.Wb = function(e) {
+ throw T(new je());
+ }, s.Xj = function() {
+ throw T(new je());
+ }, w(vt, "EcoreEList/UnmodifiableEList", 1144), b(319, 1144, Br, Ew), s.ni = function() {
+ return !1;
+ }, w(vt, "EcoreEList/UnmodifiableEList/FastCompare", 319), b(1147, 319, Br, ZOn), s.Xc = function(e) {
+ var t, i, r;
+ if (I(e, 170) && (t = u(e, 170), i = t.aj(), i != -1)) {
+ for (r = this.i; i < r; ++i)
+ if (B(this.g[i]) === B(e))
+ return i;
+ }
+ return -1;
+ }, w(Bn, "EClassImpl/1EAllStructuralFeaturesList", 1147), b(1141, 497, Wf, J2n), s.ri = function(e) {
+ return F(ar, CGn, 87, e, 0, 1);
+ }, s.ni = function() {
+ return !1;
+ }, w(Bn, "EClassImpl/1EGenericSuperTypeEList", 1141), b(623, 497, Wf, EI), s.ri = function(e) {
+ return F(uu, gg, 170, e, 0, 1);
+ }, s.ni = function() {
+ return !1;
+ }, w(Bn, "EClassImpl/1EStructuralFeatureUniqueEList", 623), b(741, 497, Wf, YH), s.ri = function(e) {
+ return F(hw, gg, 18, e, 0, 1);
+ }, s.ni = function() {
+ return !1;
+ }, w(Bn, "EClassImpl/1ReferenceList", 741), b(1142, 497, Wf, Pmn), s.bi = function(e, t) {
+ Rfe(this, u(t, 34));
+ }, s.ri = function(e) {
+ return F(fw, gg, 34, e, 0, 1);
+ }, s.ni = function() {
+ return !1;
+ }, w(Bn, "EClassImpl/2", 1142), b(1143, 497, Wf, Y2n), s.ri = function(e) {
+ return F(fw, gg, 34, e, 0, 1);
+ }, s.ni = function() {
+ return !1;
+ }, w(Bn, "EClassImpl/3", 1143), b(1145, 319, Br, $En), s.Fc = function(e) {
+ return Hoe(this, u(e, 34));
+ }, s.Yh = function(e) {
+ Qie(this, u(e, 34));
+ }, w(Bn, "EClassImpl/4", 1145), b(1146, 319, Br, FEn), s.Fc = function(e) {
+ return qoe(this, u(e, 18));
+ }, s.Yh = function(e) {
+ Jie(this, u(e, 18));
+ }, w(Bn, "EClassImpl/5", 1146), b(1148, 497, Wf, Z2n), s.ri = function(e) {
+ return F(ro, Qtn, 59, e, 0, 1);
+ }, s.ni = function() {
+ return !1;
+ }, w(Bn, "EClassImpl/6", 1148), b(1149, 497, Wf, npn), s.ri = function(e) {
+ return F(hw, gg, 18, e, 0, 1);
+ }, s.ni = function() {
+ return !1;
+ }, w(Bn, "EClassImpl/7", 1149), b(1997, 1996, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1, 69: 1 }), s.Vh = function(e, t) {
+ return wZ(this, e, t);
+ }, s.Wh = function(e) {
+ return wZ(this, this.Vi(), e);
+ }, s.Xh = function(e, t) {
+ XLn(this, e, t);
+ }, s.Yh = function(e) {
+ RLn(this, e);
+ }, s.lk = function(e, t) {
+ return c3e(this, e, t);
+ }, s.mk = function(e, t) {
+ return Ppe(this, e, t);
+ }, s.mi = function(e, t) {
+ return tRn(this, e, t);
+ }, s.pi = function(e) {
+ return this.Oi(e);
+ }, s.Zh = function() {
+ return new w2(this);
+ }, s.Gi = function() {
+ return this.Ji();
+ }, s.$h = function() {
+ return new u8(this);
+ }, s._h = function(e) {
+ return J8(this, e);
+ }, w(vt, "DelegatingNotifyingInternalEListImpl", 1997), b(742, 1997, Jtn), s.ai = function() {
+ var e;
+ return e = On(Xc(this.b), this.aj()).Yj(), I(e, 148) && !I(e, 457) && (e.Bj().i & 1) == 0;
+ }, s.Hc = function(e) {
+ var t, i, r, c, o, f, h, l;
+ if (this.Fk()) {
+ if (l = this.Vi(), l > 4)
+ if (this.wj(e)) {
+ if (this.rk()) {
+ if (r = u(e, 49), i = r.Ug(), h = i == this.b && (this.Dk() ? r.Og(r.Vg(), u(On(Xc(this.b), this.aj()).Yj(), 26).Bj()) == ir(u(On(Xc(this.b), this.aj()), 18)).n : -1 - r.Vg() == this.aj()), this.Ek() && !h && !i && r.Zg()) {
+ for (c = 0; c < l; ++c)
+ if (t = MD(this, this.Oi(c)), B(t) === B(e))
+ return !0;
+ }
+ return h;
+ } else if (this.Dk() && !this.Ck()) {
+ if (o = u(e, 56).ah(ir(u(On(Xc(this.b), this.aj()), 18))), B(o) === B(this.b))
+ return !0;
+ if (o == null || !u(o, 56).kh())
+ return !1;
+ }
+ } else
+ return !1;
+ if (f = this.Li(e), this.Ek() && !f) {
+ for (c = 0; c < l; ++c)
+ if (r = MD(this, this.Oi(c)), B(r) === B(e))
+ return !0;
+ }
+ return f;
+ } else
+ return this.Li(e);
+ }, s.Zi = function(e, t, i, r, c) {
+ return new xh(this.b, e, this.aj(), t, i, r, c);
+ }, s.$i = function(e) {
+ et(this.b, e);
+ }, s.Wj = function(e) {
+ return this;
+ }, s._i = function() {
+ return On(Xc(this.b), this.aj());
+ }, s.aj = function() {
+ return yt(Xc(this.b), On(Xc(this.b), this.aj()));
+ }, s.Ai = function() {
+ return this.b;
+ }, s.Bk = function() {
+ return !!On(Xc(this.b), this.aj()).Yj().Bj();
+ }, s.bj = function() {
+ var e, t;
+ return t = On(Xc(this.b), this.aj()), I(t, 99) ? (e = u(t, 18), (e.Bb & sc) != 0 || !!ir(u(t, 18))) : !1;
+ }, s.Ck = function() {
+ var e, t, i, r;
+ return t = On(Xc(this.b), this.aj()), I(t, 99) ? (e = u(t, 18), i = ir(e), !!i && (r = i.t, r > 1 || r == -1)) : !1;
+ }, s.Dk = function() {
+ var e, t, i;
+ return t = On(Xc(this.b), this.aj()), I(t, 99) ? (e = u(t, 18), i = ir(e), !!i) : !1;
+ }, s.Ek = function() {
+ var e, t;
+ return t = On(Xc(this.b), this.aj()), I(t, 99) ? (e = u(t, 18), (e.Bb & Ji) != 0) : !1;
+ }, s.Xc = function(e) {
+ var t, i, r, c;
+ if (r = this.Qi(e), r >= 0)
+ return r;
+ if (this.Fk()) {
+ for (i = 0, c = this.Vi(); i < c; ++i)
+ if (t = MD(this, this.Oi(i)), B(t) === B(e))
+ return i;
+ }
+ return -1;
+ }, s.cj = function(e, t) {
+ var i;
+ return i = u(e, 49), this.Dk() ? this.Bk() ? i.gh(this.b, ir(u(On(Xc(this.b), this.aj()), 18)).n, u(On(Xc(this.b), this.aj()).Yj(), 26).Bj(), t) : i.gh(this.b, yt(i.Tg(), ir(u(On(Xc(this.b), this.aj()), 18))), null, t) : i.gh(this.b, -1 - this.aj(), null, t);
+ }, s.dj = function(e, t) {
+ var i;
+ return i = u(e, 49), this.Dk() ? this.Bk() ? i.ih(this.b, ir(u(On(Xc(this.b), this.aj()), 18)).n, u(On(Xc(this.b), this.aj()).Yj(), 26).Bj(), t) : i.ih(this.b, yt(i.Tg(), ir(u(On(Xc(this.b), this.aj()), 18))), null, t) : i.ih(this.b, -1 - this.aj(), null, t);
+ }, s.rk = function() {
+ var e, t;
+ return t = On(Xc(this.b), this.aj()), I(t, 99) ? (e = u(t, 18), (e.Bb & sc) != 0) : !1;
+ }, s.Fk = function() {
+ return I(On(Xc(this.b), this.aj()).Yj(), 88);
+ }, s.wj = function(e) {
+ return On(Xc(this.b), this.aj()).Yj().wj(e);
+ }, s.ej = function() {
+ return Hu(this.b);
+ }, s.fj = function() {
+ return !this.Ri();
+ }, s.hi = function() {
+ return On(Xc(this.b), this.aj()).hi();
+ }, s.li = function(e, t) {
+ return X7(this, e, t);
+ }, s.Wb = function(e) {
+ $6(this), $t(this, u(e, 15));
+ }, s.Pc = function() {
+ var e;
+ if (this.Ek())
+ for (e = this.Vi() - 1; e >= 0; --e)
+ X7(this, e, this.Oi(e));
+ return this.Wi();
+ }, s.Qc = function(e) {
+ var t;
+ if (this.Ek())
+ for (t = this.Vi() - 1; t >= 0; --t)
+ X7(this, t, this.Oi(t));
+ return this.Xi(e);
+ }, s.Xj = function() {
+ $6(this);
+ }, s.oi = function(e, t) {
+ return bPn(this, e, t);
+ }, w(vt, "DelegatingEcoreEList", 742), b(1150, 742, Jtn, Ojn), s.Hi = function(e, t) {
+ cue(this, e, u(t, 26));
+ }, s.Ii = function(e) {
+ Zre(this, u(e, 26));
+ }, s.Oi = function(e) {
+ var t, i;
+ return t = u(D(wc(this.a), e), 87), i = t.c, I(i, 88) ? u(i, 26) : (Sn(), uo);
+ }, s.Ti = function(e) {
+ var t, i;
+ return t = u(Cb(wc(this.a), e), 87), i = t.c, I(i, 88) ? u(i, 26) : (Sn(), uo);
+ }, s.Ui = function(e, t) {
+ return u3e(this, e, u(t, 26));
+ }, s.ai = function() {
+ return !1;
+ }, s.Zi = function(e, t, i, r, c) {
+ return null;
+ }, s.Ji = function() {
+ return new Imn(this);
+ }, s.Ki = function() {
+ de(wc(this.a));
+ }, s.Li = function(e) {
+ return GDn(this, e);
+ }, s.Mi = function(e) {
+ var t, i;
+ for (i = e.Kc(); i.Ob(); )
+ if (t = i.Pb(), !GDn(this, t))
+ return !1;
+ return !0;
+ }, s.Ni = function(e) {
+ var t, i, r;
+ if (I(e, 15) && (r = u(e, 15), r.gc() == wc(this.a).i)) {
+ for (t = r.Kc(), i = new ie(this); t.Ob(); )
+ if (B(t.Pb()) !== B(oe(i)))
+ return !1;
+ return !0;
+ }
+ return !1;
+ }, s.Pi = function() {
+ var e, t, i, r, c;
+ for (i = 1, t = new ie(wc(this.a)); t.e != t.i.gc(); )
+ e = u(oe(t), 87), r = (c = e.c, I(c, 88) ? u(c, 26) : (Sn(), uo)), i = 31 * i + (r ? kd(r) : 0);
+ return i;
+ }, s.Qi = function(e) {
+ var t, i, r, c;
+ for (r = 0, i = new ie(wc(this.a)); i.e != i.i.gc(); ) {
+ if (t = u(oe(i), 87), B(e) === B((c = t.c, I(c, 88) ? u(c, 26) : (Sn(), uo))))
+ return r;
+ ++r;
+ }
+ return -1;
+ }, s.Ri = function() {
+ return wc(this.a).i == 0;
+ }, s.Si = function() {
+ return null;
+ }, s.Vi = function() {
+ return wc(this.a).i;
+ }, s.Wi = function() {
+ var e, t, i, r, c, o;
+ for (o = wc(this.a).i, c = F(Zn, rn, 1, o, 5, 1), i = 0, t = new ie(wc(this.a)); t.e != t.i.gc(); )
+ e = u(oe(t), 87), c[i++] = (r = e.c, I(r, 88) ? u(r, 26) : (Sn(), uo));
+ return c;
+ }, s.Xi = function(e) {
+ var t, i, r, c, o, f, h;
+ for (h = wc(this.a).i, e.length < h && (c = Q8(Du(e).c, h), e = c), e.length > h && Mt(e, h, null), r = 0, i = new ie(wc(this.a)); i.e != i.i.gc(); )
+ t = u(oe(i), 87), o = (f = t.c, I(f, 88) ? u(f, 26) : (Sn(), uo)), Mt(e, r++, o);
+ return e;
+ }, s.Yi = function() {
+ var e, t, i, r, c;
+ for (c = new i1(), c.a += "[", e = wc(this.a), t = 0, r = wc(this.a).i; t < r; )
+ dr(c, y5((i = u(D(e, t), 87).c, I(i, 88) ? u(i, 26) : (Sn(), uo)))), ++t < r && (c.a += Qi);
+ return c.a += "]", c.a;
+ }, s.$i = function(e) {
+ }, s.aj = function() {
+ return 10;
+ }, s.Bk = function() {
+ return !0;
+ }, s.bj = function() {
+ return !1;
+ }, s.Ck = function() {
+ return !1;
+ }, s.Dk = function() {
+ return !1;
+ }, s.Ek = function() {
+ return !0;
+ }, s.rk = function() {
+ return !1;
+ }, s.Fk = function() {
+ return !0;
+ }, s.wj = function(e) {
+ return I(e, 88);
+ }, s.fj = function() {
+ return cae(this.a);
+ }, s.hi = function() {
+ return !0;
+ }, s.ni = function() {
+ return !0;
+ }, w(Bn, "EClassImpl/8", 1150), b(1151, 1964, M4, Imn), s.Zc = function(e) {
+ return J8(this.a, e);
+ }, s.gc = function() {
+ return wc(this.a.a).i;
+ }, w(Bn, "EClassImpl/8/1", 1151), b(1152, 497, Wf, epn), s.ri = function(e) {
+ return F(Qo, rn, 138, e, 0, 1);
+ }, s.ni = function() {
+ return !1;
+ }, w(Bn, "EClassImpl/9", 1152), b(1139, 53, nnn, y9n), w(Bn, "EClassImpl/MyHashSet", 1139), b(566, 351, { 105: 1, 92: 1, 90: 1, 138: 1, 148: 1, 834: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 150: 1, 114: 1, 115: 1, 676: 1 }, fj), s._g = function(e, t, i) {
+ var r;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return this.D != null ? this.D : this.B;
+ case 3:
+ return Jd(this);
+ case 4:
+ return this.zj();
+ case 5:
+ return this.F;
+ case 6:
+ return t ? ts(this) : k3(this);
+ case 7:
+ return !this.A && (this.A = new fu(Gc, this, 7)), this.A;
+ case 8:
+ return qn(), !!(this.Bb & 256);
+ }
+ return Es(this, e - ee(this.zh()), On((r = u(Rn(this, 16), 26), r || this.zh()), e), t, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.D != null && this.D == this.F;
+ case 3:
+ return !!Jd(this);
+ case 4:
+ return this.zj() != null;
+ case 5:
+ return this.F != null && this.F != this.D && this.F != this.B;
+ case 6:
+ return !!k3(this);
+ case 7:
+ return !!this.A && this.A.i != 0;
+ case 8:
+ return (this.Bb & 256) == 0;
+ }
+ return ys(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ bC(this, Te(t));
+ return;
+ case 2:
+ BO(this, Te(t));
+ return;
+ case 5:
+ k4(this, Te(t));
+ return;
+ case 7:
+ !this.A && (this.A = new fu(Gc, this, 7)), de(this.A), !this.A && (this.A = new fu(Gc, this, 7)), $t(this.A, u(t, 14));
+ return;
+ case 8:
+ kT(this, on(sn(t)));
+ return;
+ }
+ Ss(this, e - ee(this.zh()), On((i = u(Rn(this, 16), 26), i || this.zh()), e), t);
+ }, s.zh = function() {
+ return Sn(), Qne;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ I(this.Cb, 179) && (u(this.Cb, 179).tb = null), Oc(this, null);
+ return;
+ case 2:
+ W3(this, null), x3(this, this.D);
+ return;
+ case 5:
+ k4(this, null);
+ return;
+ case 7:
+ !this.A && (this.A = new fu(Gc, this, 7)), de(this.A);
+ return;
+ case 8:
+ kT(this, !0);
+ return;
+ }
+ Ms(this, e - ee(this.zh()), On((t = u(Rn(this, 16), 26), t || this.zh()), e));
+ }, s.Gh = function() {
+ w1((bu(), xi), this).ne(), this.Bb |= 1;
+ }, s.Fj = function() {
+ var e, t, i;
+ if (!this.c && (e = gNn(ts(this)), !e.dc()))
+ for (i = e.Kc(); i.Ob(); )
+ t = Te(i.Pb()), A6(this, t) && Kge(this);
+ return this.b;
+ }, s.zj = function() {
+ var e;
+ if (!this.e) {
+ e = null;
+ try {
+ e = Jd(this);
+ } catch (t) {
+ if (t = jt(t), !I(t, 102))
+ throw T(t);
+ }
+ this.d = null, e && e.i & 1 && (e == _u ? this.d = (qn(), Ga) : e == be ? this.d = Q(0) : e == bw ? this.d = new S9(0) : e == Ci ? this.d = 0 : e == Jl ? this.d = Aa(0) : e == Wg ? this.d = Q3(0) : e == mu ? this.d = X8(0) : this.d = i7(0)), this.e = !0;
+ }
+ return this.d;
+ }, s.Ej = function() {
+ return (this.Bb & 256) != 0;
+ }, s.Ik = function(e) {
+ e && (this.D = "org.eclipse.emf.common.util.AbstractEnumerator");
+ }, s.xk = function(e) {
+ sOn(this, e), this.Ik(e);
+ }, s.yk = function(e) {
+ this.C = e, this.e = !1;
+ }, s.Ib = function() {
+ var e;
+ return this.Db & 64 ? MT(this) : (e = new Ns(MT(this)), e.a += " (serializable: ", r1(e, (this.Bb & 256) != 0), e.a += ")", e.a);
+ }, s.c = !1, s.d = null, s.e = !1, w(Bn, "EDataTypeImpl", 566), b(457, 566, { 105: 1, 92: 1, 90: 1, 138: 1, 148: 1, 834: 1, 671: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 457: 1, 150: 1, 114: 1, 115: 1, 676: 1 }, j9n), s._g = function(e, t, i) {
+ var r;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return this.D != null ? this.D : this.B;
+ case 3:
+ return Jd(this);
+ case 4:
+ return ZV(this);
+ case 5:
+ return this.F;
+ case 6:
+ return t ? ts(this) : k3(this);
+ case 7:
+ return !this.A && (this.A = new fu(Gc, this, 7)), this.A;
+ case 8:
+ return qn(), !!(this.Bb & 256);
+ case 9:
+ return !this.a && (this.a = new V(n1, this, 9, 5)), this.a;
+ }
+ return Es(this, e - ee((Sn(), Xl)), On((r = u(Rn(this, 16), 26), r || Xl), e), t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c, o;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Dc(this.Ab, e, i);
+ case 6:
+ return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? ox(this, i) : this.Cb.ih(this, -1 - c, null, i))), ss(this, e, 6, i);
+ case 9:
+ return !this.a && (this.a = new V(n1, this, 9, 5)), Dc(this.a, e, i);
+ }
+ return o = u(On((r = u(Rn(this, 16), 26), r || (Sn(), Xl)), t), 66), o.Nj().Qj(this, Bc(this), t - ee((Sn(), Xl)), e, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 6:
+ return ss(this, null, 6, i);
+ case 7:
+ return !this.A && (this.A = new fu(Gc, this, 7)), Gi(this.A, e, i);
+ case 9:
+ return !this.a && (this.a = new V(n1, this, 9, 5)), Gi(this.a, e, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || (Sn(), Xl)), t), 66), c.Nj().Rj(this, Bc(this), t - ee((Sn(), Xl)), e, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.D != null && this.D == this.F;
+ case 3:
+ return !!Jd(this);
+ case 4:
+ return !!ZV(this);
+ case 5:
+ return this.F != null && this.F != this.D && this.F != this.B;
+ case 6:
+ return !!k3(this);
+ case 7:
+ return !!this.A && this.A.i != 0;
+ case 8:
+ return (this.Bb & 256) == 0;
+ case 9:
+ return !!this.a && this.a.i != 0;
+ }
+ return ys(this, e - ee((Sn(), Xl)), On((t = u(Rn(this, 16), 26), t || Xl), e));
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ bC(this, Te(t));
+ return;
+ case 2:
+ BO(this, Te(t));
+ return;
+ case 5:
+ k4(this, Te(t));
+ return;
+ case 7:
+ !this.A && (this.A = new fu(Gc, this, 7)), de(this.A), !this.A && (this.A = new fu(Gc, this, 7)), $t(this.A, u(t, 14));
+ return;
+ case 8:
+ kT(this, on(sn(t)));
+ return;
+ case 9:
+ !this.a && (this.a = new V(n1, this, 9, 5)), de(this.a), !this.a && (this.a = new V(n1, this, 9, 5)), $t(this.a, u(t, 14));
+ return;
+ }
+ Ss(this, e - ee((Sn(), Xl)), On((i = u(Rn(this, 16), 26), i || Xl), e), t);
+ }, s.zh = function() {
+ return Sn(), Xl;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ I(this.Cb, 179) && (u(this.Cb, 179).tb = null), Oc(this, null);
+ return;
+ case 2:
+ W3(this, null), x3(this, this.D);
+ return;
+ case 5:
+ k4(this, null);
+ return;
+ case 7:
+ !this.A && (this.A = new fu(Gc, this, 7)), de(this.A);
+ return;
+ case 8:
+ kT(this, !0);
+ return;
+ case 9:
+ !this.a && (this.a = new V(n1, this, 9, 5)), de(this.a);
+ return;
+ }
+ Ms(this, e - ee((Sn(), Xl)), On((t = u(Rn(this, 16), 26), t || Xl), e));
+ }, s.Gh = function() {
+ var e, t;
+ if (this.a)
+ for (e = 0, t = this.a.i; e < t; ++e)
+ s8(D(this.a, e));
+ w1((bu(), xi), this).ne(), this.Bb |= 1;
+ }, s.zj = function() {
+ return ZV(this);
+ }, s.wj = function(e) {
+ return e != null;
+ }, s.Ik = function(e) {
+ }, w(Bn, "EEnumImpl", 457), b(573, 438, { 105: 1, 92: 1, 90: 1, 1940: 1, 678: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 573: 1, 150: 1, 114: 1, 115: 1 }, Umn), s.ne = function() {
+ return this.zb;
+ }, s.Qg = function(e) {
+ return LFn(this, e);
+ }, s._g = function(e, t, i) {
+ var r, c;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return Q(this.d);
+ case 3:
+ return this.b ? this.b : this.a;
+ case 4:
+ return c = this.c, c ?? this.zb;
+ case 5:
+ return this.Db >> 16 == 5 ? u(this.Cb, 671) : null;
+ }
+ return Es(this, e - ee((Sn(), L1)), On((r = u(Rn(this, 16), 26), r || L1), e), t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c, o;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Dc(this.Ab, e, i);
+ case 5:
+ return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? LFn(this, i) : this.Cb.ih(this, -1 - c, null, i))), ss(this, e, 5, i);
+ }
+ return o = u(On((r = u(Rn(this, 16), 26), r || (Sn(), L1)), t), 66), o.Nj().Qj(this, Bc(this), t - ee((Sn(), L1)), e, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 5:
+ return ss(this, null, 5, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || (Sn(), L1)), t), 66), c.Nj().Rj(this, Bc(this), t - ee((Sn(), L1)), e, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.d != 0;
+ case 3:
+ return !!this.b;
+ case 4:
+ return this.c != null;
+ case 5:
+ return !!(this.Db >> 16 == 5 && u(this.Cb, 671));
+ }
+ return ys(this, e - ee((Sn(), L1)), On((t = u(Rn(this, 16), 26), t || L1), e));
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ Oc(this, Te(t));
+ return;
+ case 2:
+ G$(this, u(t, 19).a);
+ return;
+ case 3:
+ OLn(this, u(t, 1940));
+ return;
+ case 4:
+ U$(this, Te(t));
+ return;
+ }
+ Ss(this, e - ee((Sn(), L1)), On((i = u(Rn(this, 16), 26), i || L1), e), t);
+ }, s.zh = function() {
+ return Sn(), L1;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ Oc(this, null);
+ return;
+ case 2:
+ G$(this, 0);
+ return;
+ case 3:
+ OLn(this, null);
+ return;
+ case 4:
+ U$(this, null);
+ return;
+ }
+ Ms(this, e - ee((Sn(), L1)), On((t = u(Rn(this, 16), 26), t || L1), e));
+ }, s.Ib = function() {
+ var e;
+ return e = this.c, e ?? this.zb;
+ }, s.b = null, s.c = null, s.d = 0, w(Bn, "EEnumLiteralImpl", 573);
+ var lMe = Et(Bn, "EFactoryImpl/InternalEDateTimeFormat");
+ b(489, 1, { 2015: 1 }, D9), w(Bn, "EFactoryImpl/1ClientInternalEDateTimeFormat", 489), b(241, 115, { 105: 1, 92: 1, 90: 1, 87: 1, 56: 1, 108: 1, 49: 1, 97: 1, 241: 1, 114: 1, 115: 1 }, sd), s.Sg = function(e, t, i) {
+ var r;
+ return i = ss(this, e, t, i), this.e && I(e, 170) && (r = uM(this, this.e), r != this.c && (i = y4(this, r, i))), i;
+ }, s._g = function(e, t, i) {
+ var r;
+ switch (e) {
+ case 0:
+ return this.f;
+ case 1:
+ return !this.d && (this.d = new Yt(ar, this, 1)), this.d;
+ case 2:
+ return t ? pM(this) : this.c;
+ case 3:
+ return this.b;
+ case 4:
+ return this.e;
+ case 5:
+ return t ? nx(this) : this.a;
+ }
+ return Es(this, e - ee((Sn(), O0)), On((r = u(Rn(this, 16), 26), r || O0), e), t, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return FDn(this, null, i);
+ case 1:
+ return !this.d && (this.d = new Yt(ar, this, 1)), Gi(this.d, e, i);
+ case 3:
+ return $Dn(this, null, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || (Sn(), O0)), t), 66), c.Nj().Rj(this, Bc(this), t - ee((Sn(), O0)), e, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return !!this.f;
+ case 1:
+ return !!this.d && this.d.i != 0;
+ case 2:
+ return !!this.c;
+ case 3:
+ return !!this.b;
+ case 4:
+ return !!this.e;
+ case 5:
+ return !!this.a;
+ }
+ return ys(this, e - ee((Sn(), O0)), On((t = u(Rn(this, 16), 26), t || O0), e));
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ nxn(this, u(t, 87));
+ return;
+ case 1:
+ !this.d && (this.d = new Yt(ar, this, 1)), de(this.d), !this.d && (this.d = new Yt(ar, this, 1)), $t(this.d, u(t, 14));
+ return;
+ case 3:
+ DJ(this, u(t, 87));
+ return;
+ case 4:
+ VJ(this, u(t, 836));
+ return;
+ case 5:
+ I3(this, u(t, 138));
+ return;
+ }
+ Ss(this, e - ee((Sn(), O0)), On((i = u(Rn(this, 16), 26), i || O0), e), t);
+ }, s.zh = function() {
+ return Sn(), O0;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ nxn(this, null);
+ return;
+ case 1:
+ !this.d && (this.d = new Yt(ar, this, 1)), de(this.d);
+ return;
+ case 3:
+ DJ(this, null);
+ return;
+ case 4:
+ VJ(this, null);
+ return;
+ case 5:
+ I3(this, null);
+ return;
+ }
+ Ms(this, e - ee((Sn(), O0)), On((t = u(Rn(this, 16), 26), t || O0), e));
+ }, s.Ib = function() {
+ var e;
+ return e = new Ju(yo(this)), e.a += " (expression: ", fL(this, e), e.a += ")", e.a;
+ };
+ var p1n;
+ w(Bn, "EGenericTypeImpl", 241), b(1969, 1964, CA), s.Xh = function(e, t) {
+ Sjn(this, e, t);
+ }, s.lk = function(e, t) {
+ return Sjn(this, this.gc(), e), t;
+ }, s.pi = function(e) {
+ return qo(this.Gi(), e);
+ }, s.Zh = function() {
+ return this.$h();
+ }, s.Gi = function() {
+ return new Fmn(this);
+ }, s.$h = function() {
+ return this._h(0);
+ }, s._h = function(e) {
+ return this.Gi().Zc(e);
+ }, s.mk = function(e, t) {
+ return bb(this, e, !0), t;
+ }, s.ii = function(e, t) {
+ var i, r;
+ return r = hx(this, t), i = this.Zc(e), i.Rb(r), r;
+ }, s.ji = function(e, t) {
+ var i;
+ bb(this, t, !0), i = this.Zc(e), i.Rb(t);
+ }, w(vt, "AbstractSequentialInternalEList", 1969), b(486, 1969, CA, c8), s.pi = function(e) {
+ return qo(this.Gi(), e);
+ }, s.Zh = function() {
+ return this.b == null ? (c1(), c1(), Ly) : this.Jk();
+ }, s.Gi = function() {
+ return new Zkn(this.a, this.b);
+ }, s.$h = function() {
+ return this.b == null ? (c1(), c1(), Ly) : this.Jk();
+ }, s._h = function(e) {
+ var t, i;
+ if (this.b == null) {
+ if (e < 0 || e > 1)
+ throw T(new mr(rm + e + ", size=0"));
+ return c1(), c1(), Ly;
+ }
+ for (i = this.Jk(), t = 0; t < e; ++t)
+ hT(i);
+ return i;
+ }, s.dc = function() {
+ var e, t, i, r, c, o;
+ if (this.b != null) {
+ for (i = 0; i < this.b.length; ++i)
+ if (e = this.b[i], !this.Mk() || this.a.mh(e)) {
+ if (o = this.a.bh(e, !1), er(), u(e, 66).Oj()) {
+ for (t = u(o, 153), r = 0, c = t.gc(); r < c; ++r)
+ if (GCn(t.il(r)) && t.jl(r) != null)
+ return !1;
+ } else if (e.$j()) {
+ if (!u(o, 14).dc())
+ return !1;
+ } else if (o != null)
+ return !1;
+ }
+ }
+ return !0;
+ }, s.Kc = function() {
+ return kV(this);
+ }, s.Zc = function(e) {
+ var t, i;
+ if (this.b == null) {
+ if (e != 0)
+ throw T(new mr(rm + e + ", size=0"));
+ return c1(), c1(), Ly;
+ }
+ for (i = this.Lk() ? this.Kk() : this.Jk(), t = 0; t < e; ++t)
+ hT(i);
+ return i;
+ }, s.ii = function(e, t) {
+ throw T(new je());
+ }, s.ji = function(e, t) {
+ throw T(new je());
+ }, s.Jk = function() {
+ return new wE(this.a, this.b);
+ }, s.Kk = function() {
+ return new nU(this.a, this.b);
+ }, s.Lk = function() {
+ return !0;
+ }, s.gc = function() {
+ var e, t, i, r, c, o, f;
+ if (c = 0, this.b != null) {
+ for (i = 0; i < this.b.length; ++i)
+ if (e = this.b[i], !this.Mk() || this.a.mh(e))
+ if (f = this.a.bh(e, !1), er(), u(e, 66).Oj())
+ for (t = u(f, 153), r = 0, o = t.gc(); r < o; ++r)
+ GCn(t.il(r)) && t.jl(r) != null && ++c;
+ else
+ e.$j() ? c += u(f, 14).gc() : f != null && ++c;
+ }
+ return c;
+ }, s.Mk = function() {
+ return !0;
+ };
+ var pH;
+ w(vt, "EContentsEList", 486), b(1156, 486, CA, bjn), s.Jk = function() {
+ return new wjn(this.a, this.b);
+ }, s.Kk = function() {
+ return new gjn(this.a, this.b);
+ }, s.Mk = function() {
+ return !1;
+ }, w(Bn, "ENamedElementImpl/1", 1156), b(279, 1, TA, wE), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Rb = function(e) {
+ throw T(new je());
+ }, s.Nk = function(e) {
+ if (this.g != 0 || this.e)
+ throw T(new $r("Iterator already in use or already filtered"));
+ this.e = e;
+ }, s.Ob = function() {
+ var e, t, i, r, c, o;
+ switch (this.g) {
+ case 3:
+ case 2:
+ return !0;
+ case 1:
+ return !1;
+ case -3:
+ this.p ? this.p.Pb() : ++this.n;
+ default:
+ if (!this.k || (this.p ? !zxn(this, this.p) : !DLn(this))) {
+ for (; this.d < this.c.length; )
+ if (t = this.c[this.d++], (!this.e || t.Gj() != Mv || t.aj() != 0) && (!this.Mk() || this.b.mh(t))) {
+ if (o = this.b.bh(t, this.Lk()), this.f = (er(), u(t, 66).Oj()), this.f || t.$j()) {
+ if (this.Lk() ? (r = u(o, 15), this.k = r) : (r = u(o, 69), this.k = this.j = r), I(this.k, 54) ? (this.p = null, this.o = this.k.gc(), this.n = 0) : this.p = this.j ? this.j.$h() : this.k.Yc(), this.p ? zxn(this, this.p) : DLn(this))
+ return c = this.p ? this.p.Pb() : this.j ? this.j.pi(this.n++) : this.k.Xb(this.n++), this.f ? (e = u(c, 72), e.ak(), i = e.dd(), this.i = i) : (i = c, this.i = i), this.g = 3, !0;
+ } else if (o != null)
+ return this.k = null, this.p = null, i = o, this.i = i, this.g = 2, !0;
+ }
+ return this.k = null, this.p = null, this.f = !1, this.g = 1, !1;
+ } else
+ return c = this.p ? this.p.Pb() : this.j ? this.j.pi(this.n++) : this.k.Xb(this.n++), this.f ? (e = u(c, 72), e.ak(), i = e.dd(), this.i = i) : (i = c, this.i = i), this.g = 3, !0;
+ }
+ }, s.Sb = function() {
+ var e, t, i, r, c, o;
+ switch (this.g) {
+ case -3:
+ case -2:
+ return !0;
+ case -1:
+ return !1;
+ case 3:
+ this.p ? this.p.Ub() : --this.n;
+ default:
+ if (!this.k || (this.p ? !Uxn(this, this.p) : !rLn(this))) {
+ for (; this.d > 0; )
+ if (t = this.c[--this.d], (!this.e || t.Gj() != Mv || t.aj() != 0) && (!this.Mk() || this.b.mh(t))) {
+ if (o = this.b.bh(t, this.Lk()), this.f = (er(), u(t, 66).Oj()), this.f || t.$j()) {
+ if (this.Lk() ? (r = u(o, 15), this.k = r) : (r = u(o, 69), this.k = this.j = r), I(this.k, 54) ? (this.o = this.k.gc(), this.n = this.o) : this.p = this.j ? this.j._h(this.k.gc()) : this.k.Zc(this.k.gc()), this.p ? Uxn(this, this.p) : rLn(this))
+ return c = this.p ? this.p.Ub() : this.j ? this.j.pi(--this.n) : this.k.Xb(--this.n), this.f ? (e = u(c, 72), e.ak(), i = e.dd(), this.i = i) : (i = c, this.i = i), this.g = -3, !0;
+ } else if (o != null)
+ return this.k = null, this.p = null, i = o, this.i = i, this.g = -2, !0;
+ }
+ return this.k = null, this.p = null, this.g = -1, !1;
+ } else
+ return c = this.p ? this.p.Ub() : this.j ? this.j.pi(--this.n) : this.k.Xb(--this.n), this.f ? (e = u(c, 72), e.ak(), i = e.dd(), this.i = i) : (i = c, this.i = i), this.g = -3, !0;
+ }
+ }, s.Pb = function() {
+ return hT(this);
+ }, s.Tb = function() {
+ return this.a;
+ }, s.Ub = function() {
+ var e;
+ if (this.g < -1 || this.Sb())
+ return --this.a, this.g = 0, e = this.i, this.Sb(), e;
+ throw T(new rc());
+ }, s.Vb = function() {
+ return this.a - 1;
+ }, s.Qb = function() {
+ throw T(new je());
+ }, s.Lk = function() {
+ return !1;
+ }, s.Wb = function(e) {
+ throw T(new je());
+ }, s.Mk = function() {
+ return !0;
+ }, s.a = 0, s.d = 0, s.f = !1, s.g = 0, s.n = 0, s.o = 0;
+ var Ly;
+ w(vt, "EContentsEList/FeatureIteratorImpl", 279), b(697, 279, TA, nU), s.Lk = function() {
+ return !0;
+ }, w(vt, "EContentsEList/ResolvingFeatureIteratorImpl", 697), b(1157, 697, TA, gjn), s.Mk = function() {
+ return !1;
+ }, w(Bn, "ENamedElementImpl/1/1", 1157), b(1158, 279, TA, wjn), s.Mk = function() {
+ return !1;
+ }, w(Bn, "ENamedElementImpl/1/2", 1158), b(36, 143, jk, cb, p$, gi, D$, xh, vo, rV, GMn, cV, zMn, PX, UMn, oV, WMn, IX, XMn, uV, VMn, $5, R8, VD, sV, QMn, OX, JMn), s._i = function() {
+ return HX(this);
+ }, s.gj = function() {
+ var e;
+ return e = HX(this), e ? e.zj() : null;
+ }, s.yi = function(e) {
+ return this.b == -1 && this.a && (this.b = this.c.Xg(this.a.aj(), this.a.Gj())), this.c.Og(this.b, e);
+ }, s.Ai = function() {
+ return this.c;
+ }, s.hj = function() {
+ var e;
+ return e = HX(this), e ? e.Kj() : !1;
+ }, s.b = -1, w(Bn, "ENotificationImpl", 36), b(399, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 59: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 399: 1, 284: 1, 114: 1, 115: 1 }, RI), s.Qg = function(e) {
+ return RFn(this, e);
+ }, s._g = function(e, t, i) {
+ var r, c, o;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return qn(), !!(this.Bb & 256);
+ case 3:
+ return qn(), !!(this.Bb & 512);
+ case 4:
+ return Q(this.s);
+ case 5:
+ return Q(this.t);
+ case 6:
+ return qn(), o = this.t, o > 1 || o == -1;
+ case 7:
+ return qn(), c = this.s, c >= 1;
+ case 8:
+ return t ? Hs(this) : this.r;
+ case 9:
+ return this.q;
+ case 10:
+ return this.Db >> 16 == 10 ? u(this.Cb, 26) : null;
+ case 11:
+ return !this.d && (this.d = new fu(Gc, this, 11)), this.d;
+ case 12:
+ return !this.c && (this.c = new V(I0, this, 12, 10)), this.c;
+ case 13:
+ return !this.a && (this.a = new l8(this, this)), this.a;
+ case 14:
+ return Ou(this);
+ }
+ return Es(this, e - ee((Sn(), N1)), On((r = u(Rn(this, 16), 26), r || N1), e), t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c, o;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Dc(this.Ab, e, i);
+ case 10:
+ return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? RFn(this, i) : this.Cb.ih(this, -1 - c, null, i))), ss(this, e, 10, i);
+ case 12:
+ return !this.c && (this.c = new V(I0, this, 12, 10)), Dc(this.c, e, i);
+ }
+ return o = u(On((r = u(Rn(this, 16), 26), r || (Sn(), N1)), t), 66), o.Nj().Qj(this, Bc(this), t - ee((Sn(), N1)), e, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 9:
+ return xD(this, i);
+ case 10:
+ return ss(this, null, 10, i);
+ case 11:
+ return !this.d && (this.d = new fu(Gc, this, 11)), Gi(this.d, e, i);
+ case 12:
+ return !this.c && (this.c = new V(I0, this, 12, 10)), Gi(this.c, e, i);
+ case 14:
+ return Gi(Ou(this), e, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || (Sn(), N1)), t), 66), c.Nj().Rj(this, Bc(this), t - ee((Sn(), N1)), e, i);
+ }, s.lh = function(e) {
+ var t, i, r;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return r = this.t, r > 1 || r == -1;
+ case 7:
+ return i = this.s, i >= 1;
+ case 8:
+ return !!this.r && !this.q.e && Sd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(this.r && !this.q.e && Sd(this.q).i == 0);
+ case 10:
+ return !!(this.Db >> 16 == 10 && u(this.Cb, 26));
+ case 11:
+ return !!this.d && this.d.i != 0;
+ case 12:
+ return !!this.c && this.c.i != 0;
+ case 13:
+ return !!this.a && Ou(this.a.a).i != 0 && !(this.b && YF(this.b));
+ case 14:
+ return !!this.b && YF(this.b);
+ }
+ return ys(this, e - ee((Sn(), N1)), On((t = u(Rn(this, 16), 26), t || N1), e));
+ }, s.sh = function(e, t) {
+ var i, r;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ Oc(this, Te(t));
+ return;
+ case 2:
+ g1(this, on(sn(t)));
+ return;
+ case 3:
+ p1(this, on(sn(t)));
+ return;
+ case 4:
+ d1(this, u(t, 19).a);
+ return;
+ case 5:
+ lb(this, u(t, 19).a);
+ return;
+ case 8:
+ Ta(this, u(t, 138));
+ return;
+ case 9:
+ r = af(this, u(t, 87), null), r && r.Fi();
+ return;
+ case 11:
+ !this.d && (this.d = new fu(Gc, this, 11)), de(this.d), !this.d && (this.d = new fu(Gc, this, 11)), $t(this.d, u(t, 14));
+ return;
+ case 12:
+ !this.c && (this.c = new V(I0, this, 12, 10)), de(this.c), !this.c && (this.c = new V(I0, this, 12, 10)), $t(this.c, u(t, 14));
+ return;
+ case 13:
+ !this.a && (this.a = new l8(this, this)), $6(this.a), !this.a && (this.a = new l8(this, this)), $t(this.a, u(t, 14));
+ return;
+ case 14:
+ de(Ou(this)), $t(Ou(this), u(t, 14));
+ return;
+ }
+ Ss(this, e - ee((Sn(), N1)), On((i = u(Rn(this, 16), 26), i || N1), e), t);
+ }, s.zh = function() {
+ return Sn(), N1;
+ }, s.Bh = function(e) {
+ var t, i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ Oc(this, null);
+ return;
+ case 2:
+ g1(this, !0);
+ return;
+ case 3:
+ p1(this, !0);
+ return;
+ case 4:
+ d1(this, 0);
+ return;
+ case 5:
+ lb(this, 1);
+ return;
+ case 8:
+ Ta(this, null);
+ return;
+ case 9:
+ i = af(this, null, null), i && i.Fi();
+ return;
+ case 11:
+ !this.d && (this.d = new fu(Gc, this, 11)), de(this.d);
+ return;
+ case 12:
+ !this.c && (this.c = new V(I0, this, 12, 10)), de(this.c);
+ return;
+ case 13:
+ this.a && $6(this.a);
+ return;
+ case 14:
+ this.b && de(this.b);
+ return;
+ }
+ Ms(this, e - ee((Sn(), N1)), On((t = u(Rn(this, 16), 26), t || N1), e));
+ }, s.Gh = function() {
+ var e, t;
+ if (this.c)
+ for (e = 0, t = this.c.i; e < t; ++e)
+ s8(D(this.c, e));
+ Hs(this), this.Bb |= 1;
+ }, w(Bn, "EOperationImpl", 399), b(505, 742, Jtn, l8), s.Hi = function(e, t) {
+ rue(this, e, u(t, 138));
+ }, s.Ii = function(e) {
+ nce(this, u(e, 138));
+ }, s.Oi = function(e) {
+ var t, i;
+ return t = u(D(Ou(this.a), e), 87), i = t.c, i || (Sn(), Cf);
+ }, s.Ti = function(e) {
+ var t, i;
+ return t = u(Cb(Ou(this.a), e), 87), i = t.c, i || (Sn(), Cf);
+ }, s.Ui = function(e, t) {
+ return epe(this, e, u(t, 138));
+ }, s.ai = function() {
+ return !1;
+ }, s.Zi = function(e, t, i, r, c) {
+ return null;
+ }, s.Ji = function() {
+ return new Omn(this);
+ }, s.Ki = function() {
+ de(Ou(this.a));
+ }, s.Li = function(e) {
+ return WDn(this, e);
+ }, s.Mi = function(e) {
+ var t, i;
+ for (i = e.Kc(); i.Ob(); )
+ if (t = i.Pb(), !WDn(this, t))
+ return !1;
+ return !0;
+ }, s.Ni = function(e) {
+ var t, i, r;
+ if (I(e, 15) && (r = u(e, 15), r.gc() == Ou(this.a).i)) {
+ for (t = r.Kc(), i = new ie(this); t.Ob(); )
+ if (B(t.Pb()) !== B(oe(i)))
+ return !1;
+ return !0;
+ }
+ return !1;
+ }, s.Pi = function() {
+ var e, t, i, r, c;
+ for (i = 1, t = new ie(Ou(this.a)); t.e != t.i.gc(); )
+ e = u(oe(t), 87), r = (c = e.c, c || (Sn(), Cf)), i = 31 * i + (r ? mt(r) : 0);
+ return i;
+ }, s.Qi = function(e) {
+ var t, i, r, c;
+ for (r = 0, i = new ie(Ou(this.a)); i.e != i.i.gc(); ) {
+ if (t = u(oe(i), 87), B(e) === B((c = t.c, c || (Sn(), Cf))))
+ return r;
+ ++r;
+ }
+ return -1;
+ }, s.Ri = function() {
+ return Ou(this.a).i == 0;
+ }, s.Si = function() {
+ return null;
+ }, s.Vi = function() {
+ return Ou(this.a).i;
+ }, s.Wi = function() {
+ var e, t, i, r, c, o;
+ for (o = Ou(this.a).i, c = F(Zn, rn, 1, o, 5, 1), i = 0, t = new ie(Ou(this.a)); t.e != t.i.gc(); )
+ e = u(oe(t), 87), c[i++] = (r = e.c, r || (Sn(), Cf));
+ return c;
+ }, s.Xi = function(e) {
+ var t, i, r, c, o, f, h;
+ for (h = Ou(this.a).i, e.length < h && (c = Q8(Du(e).c, h), e = c), e.length > h && Mt(e, h, null), r = 0, i = new ie(Ou(this.a)); i.e != i.i.gc(); )
+ t = u(oe(i), 87), o = (f = t.c, f || (Sn(), Cf)), Mt(e, r++, o);
+ return e;
+ }, s.Yi = function() {
+ var e, t, i, r, c;
+ for (c = new i1(), c.a += "[", e = Ou(this.a), t = 0, r = Ou(this.a).i; t < r; )
+ dr(c, y5((i = u(D(e, t), 87).c, i || (Sn(), Cf)))), ++t < r && (c.a += Qi);
+ return c.a += "]", c.a;
+ }, s.$i = function(e) {
+ }, s.aj = function() {
+ return 13;
+ }, s.Bk = function() {
+ return !0;
+ }, s.bj = function() {
+ return !1;
+ }, s.Ck = function() {
+ return !1;
+ }, s.Dk = function() {
+ return !1;
+ }, s.Ek = function() {
+ return !0;
+ }, s.rk = function() {
+ return !1;
+ }, s.Fk = function() {
+ return !0;
+ }, s.wj = function(e) {
+ return I(e, 138);
+ }, s.fj = function() {
+ return rae(this.a);
+ }, s.hi = function() {
+ return !0;
+ }, s.ni = function() {
+ return !0;
+ }, w(Bn, "EOperationImpl/1", 505), b(1340, 1964, M4, Omn), s.Zc = function(e) {
+ return J8(this.a, e);
+ }, s.gc = function() {
+ return Ou(this.a.a).i;
+ }, w(Bn, "EOperationImpl/1/1", 1340), b(1341, 545, Br, pCn), s.ii = function(e, t) {
+ var i, r;
+ return i = u(o6(this, e, t), 87), Hu(this.e) && qp(this, new R8(this.a, 7, (Sn(), Zne), Q(t), (r = i.c, r || Cf), e)), i;
+ }, s.jj = function(e, t) {
+ return pge(this, u(e, 87), t);
+ }, s.kj = function(e, t) {
+ return vge(this, u(e, 87), t);
+ }, s.lj = function(e, t, i) {
+ return ppe(this, u(e, 87), u(t, 87), i);
+ }, s.Zi = function(e, t, i, r, c) {
+ switch (e) {
+ case 3:
+ return _5(this, e, t, i, r, this.i > 1);
+ case 5:
+ return _5(this, e, t, i, r, this.i - u(i, 15).gc() > 0);
+ default:
+ return new xh(this.e, e, this.c, t, i, r, !0);
+ }
+ }, s.ij = function() {
+ return !0;
+ }, s.fj = function() {
+ return YF(this);
+ }, s.Xj = function() {
+ de(this);
+ }, w(Bn, "EOperationImpl/2", 1341), b(498, 1, { 1938: 1, 498: 1 }, $kn), w(Bn, "EPackageImpl/1", 498), b(16, 85, Br, V), s.zk = function() {
+ return this.d;
+ }, s.Ak = function() {
+ return this.b;
+ }, s.Dk = function() {
+ return !0;
+ }, s.b = 0, w(vt, "EObjectContainmentWithInverseEList", 16), b(353, 16, Br, g2), s.Ek = function() {
+ return !0;
+ }, s.li = function(e, t) {
+ return U2(this, e, u(t, 56));
+ }, w(vt, "EObjectContainmentWithInverseEList/Resolving", 353), b(298, 353, Br, Z0), s.ci = function() {
+ this.a.tb = null;
+ }, w(Bn, "EPackageImpl/2", 298), b(1228, 1, {}, Jee), w(Bn, "EPackageImpl/3", 1228), b(718, 43, sg, tG), s._b = function(e) {
+ return yi(e) ? QD(this, e) : !!Sr(this.f, e);
+ }, w(Bn, "EPackageRegistryImpl", 718), b(509, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 2017: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 509: 1, 284: 1, 114: 1, 115: 1 }, _I), s.Qg = function(e) {
+ return _Fn(this, e);
+ }, s._g = function(e, t, i) {
+ var r, c, o;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return qn(), !!(this.Bb & 256);
+ case 3:
+ return qn(), !!(this.Bb & 512);
+ case 4:
+ return Q(this.s);
+ case 5:
+ return Q(this.t);
+ case 6:
+ return qn(), o = this.t, o > 1 || o == -1;
+ case 7:
+ return qn(), c = this.s, c >= 1;
+ case 8:
+ return t ? Hs(this) : this.r;
+ case 9:
+ return this.q;
+ case 10:
+ return this.Db >> 16 == 10 ? u(this.Cb, 59) : null;
+ }
+ return Es(this, e - ee((Sn(), aw)), On((r = u(Rn(this, 16), 26), r || aw), e), t, i);
+ }, s.hh = function(e, t, i) {
+ var r, c, o;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Dc(this.Ab, e, i);
+ case 10:
+ return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? _Fn(this, i) : this.Cb.ih(this, -1 - c, null, i))), ss(this, e, 10, i);
+ }
+ return o = u(On((r = u(Rn(this, 16), 26), r || (Sn(), aw)), t), 66), o.Nj().Qj(this, Bc(this), t - ee((Sn(), aw)), e, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 9:
+ return xD(this, i);
+ case 10:
+ return ss(this, null, 10, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || (Sn(), aw)), t), 66), c.Nj().Rj(this, Bc(this), t - ee((Sn(), aw)), e, i);
+ }, s.lh = function(e) {
+ var t, i, r;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return r = this.t, r > 1 || r == -1;
+ case 7:
+ return i = this.s, i >= 1;
+ case 8:
+ return !!this.r && !this.q.e && Sd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(this.r && !this.q.e && Sd(this.q).i == 0);
+ case 10:
+ return !!(this.Db >> 16 == 10 && u(this.Cb, 59));
+ }
+ return ys(this, e - ee((Sn(), aw)), On((t = u(Rn(this, 16), 26), t || aw), e));
+ }, s.zh = function() {
+ return Sn(), aw;
+ }, w(Bn, "EParameterImpl", 509), b(99, 449, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 18: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 99: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }, cU), s._g = function(e, t, i) {
+ var r, c, o, f;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return qn(), !!(this.Bb & 256);
+ case 3:
+ return qn(), !!(this.Bb & 512);
+ case 4:
+ return Q(this.s);
+ case 5:
+ return Q(this.t);
+ case 6:
+ return qn(), f = this.t, f > 1 || f == -1;
+ case 7:
+ return qn(), c = this.s, c >= 1;
+ case 8:
+ return t ? Hs(this) : this.r;
+ case 9:
+ return this.q;
+ case 10:
+ return qn(), !!(this.Bb & Eo);
+ case 11:
+ return qn(), !!(this.Bb & Rb);
+ case 12:
+ return qn(), !!(this.Bb & Ob);
+ case 13:
+ return this.j;
+ case 14:
+ return b4(this);
+ case 15:
+ return qn(), !!(this.Bb & pu);
+ case 16:
+ return qn(), !!(this.Bb & Nf);
+ case 17:
+ return tb(this);
+ case 18:
+ return qn(), !!(this.Bb & sc);
+ case 19:
+ return qn(), o = ir(this), !!(o && o.Bb & sc);
+ case 20:
+ return qn(), !!(this.Bb & Ji);
+ case 21:
+ return t ? ir(this) : this.b;
+ case 22:
+ return t ? HV(this) : mSn(this);
+ case 23:
+ return !this.a && (this.a = new Aw(fw, this, 23)), this.a;
+ }
+ return Es(this, e - ee((Sn(), qg)), On((r = u(Rn(this, 16), 26), r || qg), e), t, i);
+ }, s.lh = function(e) {
+ var t, i, r, c;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return c = this.t, c > 1 || c == -1;
+ case 7:
+ return i = this.s, i >= 1;
+ case 8:
+ return !!this.r && !this.q.e && Sd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(this.r && !this.q.e && Sd(this.q).i == 0);
+ case 10:
+ return (this.Bb & Eo) == 0;
+ case 11:
+ return (this.Bb & Rb) != 0;
+ case 12:
+ return (this.Bb & Ob) != 0;
+ case 13:
+ return this.j != null;
+ case 14:
+ return b4(this) != null;
+ case 15:
+ return (this.Bb & pu) != 0;
+ case 16:
+ return (this.Bb & Nf) != 0;
+ case 17:
+ return !!tb(this);
+ case 18:
+ return (this.Bb & sc) != 0;
+ case 19:
+ return r = ir(this), !!r && (r.Bb & sc) != 0;
+ case 20:
+ return (this.Bb & Ji) == 0;
+ case 21:
+ return !!this.b;
+ case 22:
+ return !!mSn(this);
+ case 23:
+ return !!this.a && this.a.i != 0;
+ }
+ return ys(this, e - ee((Sn(), qg)), On((t = u(Rn(this, 16), 26), t || qg), e));
+ }, s.sh = function(e, t) {
+ var i, r;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ f$(this, Te(t));
+ return;
+ case 2:
+ g1(this, on(sn(t)));
+ return;
+ case 3:
+ p1(this, on(sn(t)));
+ return;
+ case 4:
+ d1(this, u(t, 19).a);
+ return;
+ case 5:
+ lb(this, u(t, 19).a);
+ return;
+ case 8:
+ Ta(this, u(t, 138));
+ return;
+ case 9:
+ r = af(this, u(t, 87), null), r && r.Fi();
+ return;
+ case 10:
+ J3(this, on(sn(t)));
+ return;
+ case 11:
+ n4(this, on(sn(t)));
+ return;
+ case 12:
+ Y3(this, on(sn(t)));
+ return;
+ case 13:
+ dz(this, Te(t));
+ return;
+ case 15:
+ Z3(this, on(sn(t)));
+ return;
+ case 16:
+ e4(this, on(sn(t)));
+ return;
+ case 18:
+ lle(this, on(sn(t)));
+ return;
+ case 20:
+ mQ(this, on(sn(t)));
+ return;
+ case 21:
+ vV(this, u(t, 18));
+ return;
+ case 23:
+ !this.a && (this.a = new Aw(fw, this, 23)), de(this.a), !this.a && (this.a = new Aw(fw, this, 23)), $t(this.a, u(t, 14));
+ return;
+ }
+ Ss(this, e - ee((Sn(), qg)), On((i = u(Rn(this, 16), 26), i || qg), e), t);
+ }, s.zh = function() {
+ return Sn(), qg;
+ }, s.Bh = function(e) {
+ var t, i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ I(this.Cb, 88) && jb(Iu(u(this.Cb, 88)), 4), Oc(this, null);
+ return;
+ case 2:
+ g1(this, !0);
+ return;
+ case 3:
+ p1(this, !0);
+ return;
+ case 4:
+ d1(this, 0);
+ return;
+ case 5:
+ lb(this, 1);
+ return;
+ case 8:
+ Ta(this, null);
+ return;
+ case 9:
+ i = af(this, null, null), i && i.Fi();
+ return;
+ case 10:
+ J3(this, !0);
+ return;
+ case 11:
+ n4(this, !1);
+ return;
+ case 12:
+ Y3(this, !1);
+ return;
+ case 13:
+ this.i = null, nT(this, null);
+ return;
+ case 15:
+ Z3(this, !1);
+ return;
+ case 16:
+ e4(this, !1);
+ return;
+ case 18:
+ vQ(this, !1), I(this.Cb, 88) && jb(Iu(u(this.Cb, 88)), 2);
+ return;
+ case 20:
+ mQ(this, !0);
+ return;
+ case 21:
+ vV(this, null);
+ return;
+ case 23:
+ !this.a && (this.a = new Aw(fw, this, 23)), de(this.a);
+ return;
+ }
+ Ms(this, e - ee((Sn(), qg)), On((t = u(Rn(this, 16), 26), t || qg), e));
+ }, s.Gh = function() {
+ HV(this), p3(Er((bu(), xi), this)), Hs(this), this.Bb |= 1;
+ }, s.Lj = function() {
+ return ir(this);
+ }, s.qk = function() {
+ var e;
+ return e = ir(this), !!e && (e.Bb & sc) != 0;
+ }, s.rk = function() {
+ return (this.Bb & sc) != 0;
+ }, s.sk = function() {
+ return (this.Bb & Ji) != 0;
+ }, s.nk = function(e, t) {
+ return this.c = null, lQ(this, e, t);
+ }, s.Ib = function() {
+ var e;
+ return this.Db & 64 ? bM(this) : (e = new Ns(bM(this)), e.a += " (containment: ", r1(e, (this.Bb & sc) != 0), e.a += ", resolveProxies: ", r1(e, (this.Bb & Ji) != 0), e.a += ")", e.a);
+ }, w(Bn, "EReferenceImpl", 99), b(548, 115, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1, 548: 1, 114: 1, 115: 1 }, tpn), s.Fb = function(e) {
+ return this === e;
+ }, s.cd = function() {
+ return this.b;
+ }, s.dd = function() {
+ return this.c;
+ }, s.Hb = function() {
+ return kd(this);
+ }, s.Uh = function(e) {
+ gfe(this, Te(e));
+ }, s.ed = function(e) {
+ return rfe(this, Te(e));
+ }, s._g = function(e, t, i) {
+ var r;
+ switch (e) {
+ case 0:
+ return this.b;
+ case 1:
+ return this.c;
+ }
+ return Es(this, e - ee((Sn(), Zi)), On((r = u(Rn(this, 16), 26), r || Zi), e), t, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return this.b != null;
+ case 1:
+ return this.c != null;
+ }
+ return ys(this, e - ee((Sn(), Zi)), On((t = u(Rn(this, 16), 26), t || Zi), e));
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ pfe(this, Te(t));
+ return;
+ case 1:
+ wV(this, Te(t));
+ return;
+ }
+ Ss(this, e - ee((Sn(), Zi)), On((i = u(Rn(this, 16), 26), i || Zi), e), t);
+ }, s.zh = function() {
+ return Sn(), Zi;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ bV(this, null);
+ return;
+ case 1:
+ wV(this, null);
+ return;
+ }
+ Ms(this, e - ee((Sn(), Zi)), On((t = u(Rn(this, 16), 26), t || Zi), e));
+ }, s.Sh = function() {
+ var e;
+ return this.a == -1 && (e = this.b, this.a = e == null ? 0 : m1(e)), this.a;
+ }, s.Th = function(e) {
+ this.a = e;
+ }, s.Ib = function() {
+ var e;
+ return this.Db & 64 ? yo(this) : (e = new Ns(yo(this)), e.a += " (key: ", dr(e, this.b), e.a += ", value: ", dr(e, this.c), e.a += ")", e.a);
+ }, s.a = -1, s.b = null, s.c = null;
+ var tc = w(Bn, "EStringToStringMapEntryImpl", 548), cee = Et(vt, "FeatureMap/Entry/Internal");
+ b(565, 1, MA), s.Ok = function(e) {
+ return this.Pk(u(e, 49));
+ }, s.Pk = function(e) {
+ return this.Ok(e);
+ }, s.Fb = function(e) {
+ var t, i;
+ return this === e ? !0 : I(e, 72) ? (t = u(e, 72), t.ak() == this.c ? (i = this.dd(), i == null ? t.dd() == null : tt(i, t.dd())) : !1) : !1;
+ }, s.ak = function() {
+ return this.c;
+ }, s.Hb = function() {
+ var e;
+ return e = this.dd(), mt(this.c) ^ (e == null ? 0 : mt(e));
+ }, s.Ib = function() {
+ var e, t;
+ return e = this.c, t = ts(e.Hj()).Ph(), e.ne(), (t != null && t.length != 0 ? t + ":" + e.ne() : e.ne()) + "=" + this.dd();
+ }, w(Bn, "EStructuralFeatureImpl/BasicFeatureMapEntry", 565), b(776, 565, MA, bU), s.Pk = function(e) {
+ return new bU(this.c, e);
+ }, s.dd = function() {
+ return this.a;
+ }, s.Qk = function(e, t, i) {
+ return $be(this, e, this.a, t, i);
+ }, s.Rk = function(e, t, i) {
+ return Fbe(this, e, this.a, t, i);
+ }, w(Bn, "EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry", 776), b(1314, 1, {}, Fkn), s.Pj = function(e, t, i, r, c) {
+ var o;
+ return o = u(M3(e, this.b), 215), o.nl(this.a).Wj(r);
+ }, s.Qj = function(e, t, i, r, c) {
+ var o;
+ return o = u(M3(e, this.b), 215), o.el(this.a, r, c);
+ }, s.Rj = function(e, t, i, r, c) {
+ var o;
+ return o = u(M3(e, this.b), 215), o.fl(this.a, r, c);
+ }, s.Sj = function(e, t, i) {
+ var r;
+ return r = u(M3(e, this.b), 215), r.nl(this.a).fj();
+ }, s.Tj = function(e, t, i, r) {
+ var c;
+ c = u(M3(e, this.b), 215), c.nl(this.a).Wb(r);
+ }, s.Uj = function(e, t, i) {
+ return u(M3(e, this.b), 215).nl(this.a);
+ }, s.Vj = function(e, t, i) {
+ var r;
+ r = u(M3(e, this.b), 215), r.nl(this.a).Xj();
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator", 1314), b(89, 1, {}, s1, la, f1, ba), s.Pj = function(e, t, i, r, c) {
+ var o;
+ if (o = t.Ch(i), o == null && t.Dh(i, o = AM(this, e)), !c)
+ switch (this.e) {
+ case 50:
+ case 41:
+ return u(o, 589).sj();
+ case 40:
+ return u(o, 215).kl();
+ }
+ return o;
+ }, s.Qj = function(e, t, i, r, c) {
+ var o, f;
+ return f = t.Ch(i), f == null && t.Dh(i, f = AM(this, e)), o = u(f, 69).lk(r, c), o;
+ }, s.Rj = function(e, t, i, r, c) {
+ var o;
+ return o = t.Ch(i), o != null && (c = u(o, 69).mk(r, c)), c;
+ }, s.Sj = function(e, t, i) {
+ var r;
+ return r = t.Ch(i), r != null && u(r, 76).fj();
+ }, s.Tj = function(e, t, i, r) {
+ var c;
+ c = u(t.Ch(i), 76), !c && t.Dh(i, c = AM(this, e)), c.Wb(r);
+ }, s.Uj = function(e, t, i) {
+ var r, c;
+ return c = t.Ch(i), c == null && t.Dh(i, c = AM(this, e)), I(c, 76) ? u(c, 76) : (r = u(t.Ch(i), 15), new $mn(r));
+ }, s.Vj = function(e, t, i) {
+ var r;
+ r = u(t.Ch(i), 76), !r && t.Dh(i, r = AM(this, e)), r.Xj();
+ }, s.b = 0, s.e = 0, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateMany", 89), b(504, 1, {}), s.Qj = function(e, t, i, r, c) {
+ throw T(new je());
+ }, s.Rj = function(e, t, i, r, c) {
+ throw T(new je());
+ }, s.Uj = function(e, t, i) {
+ return new PTn(this, e, t, i);
+ };
+ var Eh;
+ w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingle", 504), b(1331, 1, GB, PTn), s.Wj = function(e) {
+ return this.a.Pj(this.c, this.d, this.b, e, !0);
+ }, s.fj = function() {
+ return this.a.Sj(this.c, this.d, this.b);
+ }, s.Wb = function(e) {
+ this.a.Tj(this.c, this.d, this.b, e);
+ }, s.Xj = function() {
+ this.a.Vj(this.c, this.d, this.b);
+ }, s.b = 0, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingle/1", 1331), b(769, 504, {}, QW), s.Pj = function(e, t, i, r, c) {
+ return Qx(e, e.eh(), e.Vg()) == this.b ? this.sk() && r ? Fx(e) : e.eh() : null;
+ }, s.Qj = function(e, t, i, r, c) {
+ var o, f;
+ return e.eh() && (c = (o = e.Vg(), o >= 0 ? e.Qg(c) : e.eh().ih(e, -1 - o, null, c))), f = yt(e.Tg(), this.e), e.Sg(r, f, c);
+ }, s.Rj = function(e, t, i, r, c) {
+ var o;
+ return o = yt(e.Tg(), this.e), e.Sg(null, o, c);
+ }, s.Sj = function(e, t, i) {
+ var r;
+ return r = yt(e.Tg(), this.e), !!e.eh() && e.Vg() == r;
+ }, s.Tj = function(e, t, i, r) {
+ var c, o, f, h, l;
+ if (r != null && !nL(this.a, r))
+ throw T(new zp(AA + (I(r, 56) ? IJ(u(r, 56).Tg()) : nV(Du(r))) + SA + this.a + "'"));
+ if (c = e.eh(), f = yt(e.Tg(), this.e), B(r) !== B(c) || e.Vg() != f && r != null) {
+ if (c4(e, u(r, 56)))
+ throw T(new Hn(tm + e.Ib()));
+ l = null, c && (l = (o = e.Vg(), o >= 0 ? e.Qg(l) : e.eh().ih(e, -1 - o, null, l))), h = u(r, 49), h && (l = h.gh(e, yt(h.Tg(), this.b), null, l)), l = e.Sg(h, f, l), l && l.Fi();
+ } else
+ e.Lg() && e.Mg() && et(e, new gi(e, 1, f, r, r));
+ }, s.Vj = function(e, t, i) {
+ var r, c, o, f;
+ r = e.eh(), r ? (f = (c = e.Vg(), c >= 0 ? e.Qg(null) : e.eh().ih(e, -1 - c, null, null)), o = yt(e.Tg(), this.e), f = e.Sg(null, o, f), f && f.Fi()) : e.Lg() && e.Mg() && et(e, new $5(e, 1, this.e, null, null));
+ }, s.sk = function() {
+ return !1;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainer", 769), b(1315, 769, {}, yEn), s.sk = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving", 1315), b(563, 504, {}), s.Pj = function(e, t, i, r, c) {
+ var o;
+ return o = t.Ch(i), o == null ? this.b : B(o) === B(Eh) ? null : o;
+ }, s.Sj = function(e, t, i) {
+ var r;
+ return r = t.Ch(i), r != null && (B(r) === B(Eh) || !tt(r, this.b));
+ }, s.Tj = function(e, t, i, r) {
+ var c, o;
+ e.Lg() && e.Mg() ? (c = (o = t.Ch(i), o == null ? this.b : B(o) === B(Eh) ? null : o), r == null ? this.c != null ? (t.Dh(i, null), r = this.b) : this.b != null ? t.Dh(i, Eh) : t.Dh(i, null) : (this.Sk(r), t.Dh(i, r)), et(e, this.d.Tk(e, 1, this.e, c, r))) : r == null ? this.c != null ? t.Dh(i, null) : this.b != null ? t.Dh(i, Eh) : t.Dh(i, null) : (this.Sk(r), t.Dh(i, r));
+ }, s.Vj = function(e, t, i) {
+ var r, c;
+ e.Lg() && e.Mg() ? (r = (c = t.Ch(i), c == null ? this.b : B(c) === B(Eh) ? null : c), t.Eh(i), et(e, this.d.Tk(e, 1, this.e, r, this.b))) : t.Eh(i);
+ }, s.Sk = function(e) {
+ throw T(new qmn());
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData", 563), b(pg, 1, {}, ipn), s.Tk = function(e, t, i, r, c) {
+ return new $5(e, t, i, r, c);
+ }, s.Uk = function(e, t, i, r, c, o) {
+ return new VD(e, t, i, r, c, o);
+ };
+ var v1n, m1n, k1n, y1n, j1n, E1n, C1n, vH, T1n;
+ w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator", pg), b(1332, pg, {}, rpn), s.Tk = function(e, t, i, r, c) {
+ return new OX(e, t, i, on(sn(r)), on(sn(c)));
+ }, s.Uk = function(e, t, i, r, c, o) {
+ return new JMn(e, t, i, on(sn(r)), on(sn(c)), o);
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1", 1332), b(1333, pg, {}, cpn), s.Tk = function(e, t, i, r, c) {
+ return new rV(e, t, i, u(r, 217).a, u(c, 217).a);
+ }, s.Uk = function(e, t, i, r, c, o) {
+ return new GMn(e, t, i, u(r, 217).a, u(c, 217).a, o);
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2", 1333), b(1334, pg, {}, upn), s.Tk = function(e, t, i, r, c) {
+ return new cV(e, t, i, u(r, 172).a, u(c, 172).a);
+ }, s.Uk = function(e, t, i, r, c, o) {
+ return new zMn(e, t, i, u(r, 172).a, u(c, 172).a, o);
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3", 1334), b(1335, pg, {}, spn), s.Tk = function(e, t, i, r, c) {
+ return new PX(e, t, i, K(Y(r)), K(Y(c)));
+ }, s.Uk = function(e, t, i, r, c, o) {
+ return new UMn(e, t, i, K(Y(r)), K(Y(c)), o);
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4", 1335), b(1336, pg, {}, opn), s.Tk = function(e, t, i, r, c) {
+ return new oV(e, t, i, u(r, 155).a, u(c, 155).a);
+ }, s.Uk = function(e, t, i, r, c, o) {
+ return new WMn(e, t, i, u(r, 155).a, u(c, 155).a, o);
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5", 1336), b(1337, pg, {}, fpn), s.Tk = function(e, t, i, r, c) {
+ return new IX(e, t, i, u(r, 19).a, u(c, 19).a);
+ }, s.Uk = function(e, t, i, r, c, o) {
+ return new XMn(e, t, i, u(r, 19).a, u(c, 19).a, o);
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6", 1337), b(1338, pg, {}, hpn), s.Tk = function(e, t, i, r, c) {
+ return new uV(e, t, i, u(r, 162).a, u(c, 162).a);
+ }, s.Uk = function(e, t, i, r, c, o) {
+ return new VMn(e, t, i, u(r, 162).a, u(c, 162).a, o);
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7", 1338), b(1339, pg, {}, lpn), s.Tk = function(e, t, i, r, c) {
+ return new sV(e, t, i, u(r, 184).a, u(c, 184).a);
+ }, s.Uk = function(e, t, i, r, c, o) {
+ return new QMn(e, t, i, u(r, 184).a, u(c, 184).a, o);
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8", 1339), b(1317, 563, {}, ITn), s.Sk = function(e) {
+ if (!this.a.wj(e))
+ throw T(new zp(AA + Du(e) + SA + this.a + "'"));
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic", 1317), b(1318, 563, {}, vCn), s.Sk = function(e) {
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic", 1318), b(770, 563, {}), s.Sj = function(e, t, i) {
+ var r;
+ return r = t.Ch(i), r != null;
+ }, s.Tj = function(e, t, i, r) {
+ var c, o;
+ e.Lg() && e.Mg() ? (c = !0, o = t.Ch(i), o == null ? (c = !1, o = this.b) : B(o) === B(Eh) && (o = null), r == null ? this.c != null ? (t.Dh(i, null), r = this.b) : t.Dh(i, Eh) : (this.Sk(r), t.Dh(i, r)), et(e, this.d.Uk(e, 1, this.e, o, r, !c))) : r == null ? this.c != null ? t.Dh(i, null) : t.Dh(i, Eh) : (this.Sk(r), t.Dh(i, r));
+ }, s.Vj = function(e, t, i) {
+ var r, c;
+ e.Lg() && e.Mg() ? (r = !0, c = t.Ch(i), c == null ? (r = !1, c = this.b) : B(c) === B(Eh) && (c = null), t.Eh(i), et(e, this.d.Uk(e, 2, this.e, c, this.b, r))) : t.Eh(i);
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable", 770), b(1319, 770, {}, OTn), s.Sk = function(e) {
+ if (!this.a.wj(e))
+ throw T(new zp(AA + Du(e) + SA + this.a + "'"));
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic", 1319), b(1320, 770, {}, mCn), s.Sk = function(e) {
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic", 1320), b(398, 504, {}, FE), s.Pj = function(e, t, i, r, c) {
+ var o, f, h, l, a;
+ if (a = t.Ch(i), this.Kj() && B(a) === B(Eh))
+ return null;
+ if (this.sk() && r && a != null) {
+ if (h = u(a, 49), h.kh() && (l = gl(e, h), h != l)) {
+ if (!nL(this.a, l))
+ throw T(new zp(AA + Du(l) + SA + this.a + "'"));
+ t.Dh(i, a = l), this.rk() && (o = u(l, 49), f = h.ih(e, this.b ? yt(h.Tg(), this.b) : -1 - yt(e.Tg(), this.e), null, null), !o.eh() && (f = o.gh(e, this.b ? yt(o.Tg(), this.b) : -1 - yt(e.Tg(), this.e), null, f)), f && f.Fi()), e.Lg() && e.Mg() && et(e, new $5(e, 9, this.e, h, l));
+ }
+ return a;
+ } else
+ return a;
+ }, s.Qj = function(e, t, i, r, c) {
+ var o, f;
+ return f = t.Ch(i), B(f) === B(Eh) && (f = null), t.Dh(i, r), this.bj() ? B(f) !== B(r) && f != null && (o = u(f, 49), c = o.ih(e, yt(o.Tg(), this.b), null, c)) : this.rk() && f != null && (c = u(f, 49).ih(e, -1 - yt(e.Tg(), this.e), null, c)), e.Lg() && e.Mg() && (!c && (c = new V1(4)), c.Ei(new $5(e, 1, this.e, f, r))), c;
+ }, s.Rj = function(e, t, i, r, c) {
+ var o;
+ return o = t.Ch(i), B(o) === B(Eh) && (o = null), t.Eh(i), e.Lg() && e.Mg() && (!c && (c = new V1(4)), this.Kj() ? c.Ei(new $5(e, 2, this.e, o, null)) : c.Ei(new $5(e, 1, this.e, o, null))), c;
+ }, s.Sj = function(e, t, i) {
+ var r;
+ return r = t.Ch(i), r != null;
+ }, s.Tj = function(e, t, i, r) {
+ var c, o, f, h, l;
+ if (r != null && !nL(this.a, r))
+ throw T(new zp(AA + (I(r, 56) ? IJ(u(r, 56).Tg()) : nV(Du(r))) + SA + this.a + "'"));
+ l = t.Ch(i), h = l != null, this.Kj() && B(l) === B(Eh) && (l = null), f = null, this.bj() ? B(l) !== B(r) && (l != null && (c = u(l, 49), f = c.ih(e, yt(c.Tg(), this.b), null, f)), r != null && (c = u(r, 49), f = c.gh(e, yt(c.Tg(), this.b), null, f))) : this.rk() && B(l) !== B(r) && (l != null && (f = u(l, 49).ih(e, -1 - yt(e.Tg(), this.e), null, f)), r != null && (f = u(r, 49).gh(e, -1 - yt(e.Tg(), this.e), null, f))), r == null && this.Kj() ? t.Dh(i, Eh) : t.Dh(i, r), e.Lg() && e.Mg() ? (o = new VD(e, 1, this.e, l, r, this.Kj() && !h), f ? (f.Ei(o), f.Fi()) : et(e, o)) : f && f.Fi();
+ }, s.Vj = function(e, t, i) {
+ var r, c, o, f, h;
+ h = t.Ch(i), f = h != null, this.Kj() && B(h) === B(Eh) && (h = null), o = null, h != null && (this.bj() ? (r = u(h, 49), o = r.ih(e, yt(r.Tg(), this.b), null, o)) : this.rk() && (o = u(h, 49).ih(e, -1 - yt(e.Tg(), this.e), null, o))), t.Eh(i), e.Lg() && e.Mg() ? (c = new VD(e, this.Kj() ? 2 : 1, this.e, h, null, f), o ? (o.Ei(c), o.Fi()) : et(e, c)) : o && o.Fi();
+ }, s.bj = function() {
+ return !1;
+ }, s.rk = function() {
+ return !1;
+ }, s.sk = function() {
+ return !1;
+ }, s.Kj = function() {
+ return !1;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObject", 398), b(564, 398, {}, JO), s.rk = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment", 564), b(1323, 564, {}, pjn), s.sk = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving", 1323), b(772, 564, {}, eU), s.Kj = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable", 772), b(1325, 772, {}, vjn), s.sk = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving", 1325), b(640, 564, {}, lD), s.bj = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse", 640), b(1324, 640, {}, jEn), s.sk = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving", 1324), b(773, 640, {}, KU), s.Kj = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable", 773), b(1326, 773, {}, EEn), s.sk = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving", 1326), b(641, 398, {}, tU), s.sk = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving", 641), b(1327, 641, {}, mjn), s.Kj = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable", 1327), b(774, 641, {}, RU), s.bj = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse", 774), b(1328, 774, {}, CEn), s.Kj = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable", 1328), b(1321, 398, {}, kjn), s.Kj = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable", 1321), b(771, 398, {}, _U), s.bj = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse", 771), b(1322, 771, {}, TEn), s.Kj = function() {
+ return !0;
+ }, w(Bn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable", 1322), b(775, 565, MA, LW), s.Pk = function(e) {
+ return new LW(this.a, this.c, e);
+ }, s.dd = function() {
+ return this.b;
+ }, s.Qk = function(e, t, i) {
+ return Fde(this, e, this.b, i);
+ }, s.Rk = function(e, t, i) {
+ return xde(this, e, this.b, i);
+ }, w(Bn, "EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry", 775), b(1329, 1, GB, $mn), s.Wj = function(e) {
+ return this.a;
+ }, s.fj = function() {
+ return I(this.a, 95) ? u(this.a, 95).fj() : !this.a.dc();
+ }, s.Wb = function(e) {
+ this.a.$b(), this.a.Gc(u(e, 15));
+ }, s.Xj = function() {
+ I(this.a, 95) ? u(this.a, 95).Xj() : this.a.$b();
+ }, w(Bn, "EStructuralFeatureImpl/SettingMany", 1329), b(1330, 565, MA, RAn), s.Ok = function(e) {
+ return new nD((ht(), p9), this.b.Ih(this.a, e));
+ }, s.dd = function() {
+ return null;
+ }, s.Qk = function(e, t, i) {
+ return i;
+ }, s.Rk = function(e, t, i) {
+ return i;
+ }, w(Bn, "EStructuralFeatureImpl/SimpleContentFeatureMapEntry", 1330), b(642, 565, MA, nD), s.Ok = function(e) {
+ return new nD(this.c, e);
+ }, s.dd = function() {
+ return this.a;
+ }, s.Qk = function(e, t, i) {
+ return i;
+ }, s.Rk = function(e, t, i) {
+ return i;
+ }, w(Bn, "EStructuralFeatureImpl/SimpleFeatureMapEntry", 642), b(391, 497, Wf, Np), s.ri = function(e) {
+ return F(io, rn, 26, e, 0, 1);
+ }, s.ni = function() {
+ return !1;
+ }, w(Bn, "ESuperAdapter/1", 391), b(444, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 836: 1, 49: 1, 97: 1, 150: 1, 444: 1, 114: 1, 115: 1 }, CI), s._g = function(e, t, i) {
+ var r;
+ switch (e) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return !this.a && (this.a = new P5(this, ar, this)), this.a;
+ }
+ return Es(this, e - ee((Sn(), D0)), On((r = u(Rn(this, 16), 26), r || D0), e), t, i);
+ }, s.jh = function(e, t, i) {
+ var r, c;
+ switch (t) {
+ case 0:
+ return !this.Ab && (this.Ab = new V(Be, this, 0, 3)), Gi(this.Ab, e, i);
+ case 2:
+ return !this.a && (this.a = new P5(this, ar, this)), Gi(this.a, e, i);
+ }
+ return c = u(On((r = u(Rn(this, 16), 26), r || (Sn(), D0)), t), 66), c.Nj().Rj(this, Bc(this), t - ee((Sn(), D0)), e, i);
+ }, s.lh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return !!this.a && this.a.i != 0;
+ }
+ return ys(this, e - ee((Sn(), D0)), On((t = u(Rn(this, 16), 26), t || D0), e));
+ }, s.sh = function(e, t) {
+ var i;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab), !this.Ab && (this.Ab = new V(Be, this, 0, 3)), $t(this.Ab, u(t, 14));
+ return;
+ case 1:
+ Oc(this, Te(t));
+ return;
+ case 2:
+ !this.a && (this.a = new P5(this, ar, this)), de(this.a), !this.a && (this.a = new P5(this, ar, this)), $t(this.a, u(t, 14));
+ return;
+ }
+ Ss(this, e - ee((Sn(), D0)), On((i = u(Rn(this, 16), 26), i || D0), e), t);
+ }, s.zh = function() {
+ return Sn(), D0;
+ }, s.Bh = function(e) {
+ var t;
+ switch (e) {
+ case 0:
+ !this.Ab && (this.Ab = new V(Be, this, 0, 3)), de(this.Ab);
+ return;
+ case 1:
+ Oc(this, null);
+ return;
+ case 2:
+ !this.a && (this.a = new P5(this, ar, this)), de(this.a);
+ return;
+ }
+ Ms(this, e - ee((Sn(), D0)), On((t = u(Rn(this, 16), 26), t || D0), e));
+ }, w(Bn, "ETypeParameterImpl", 444), b(445, 85, Br, P5), s.cj = function(e, t) {
+ return xve(this, u(e, 87), t);
+ }, s.dj = function(e, t) {
+ return Lve(this, u(e, 87), t);
+ }, w(Bn, "ETypeParameterImpl/1", 445), b(634, 43, sg, KI), s.ec = function() {
+ return new sj(this);
+ }, w(Bn, "ETypeParameterImpl/2", 634), b(556, df, wu, sj), s.Fc = function(e) {
+ return Ujn(this, u(e, 87));
+ }, s.Gc = function(e) {
+ var t, i, r;
+ for (r = !1, i = e.Kc(); i.Ob(); )
+ t = u(i.Pb(), 87), it(this.a, t, "") == null && (r = !0);
+ return r;
+ }, s.$b = function() {
+ Eu(this.a);
+ }, s.Hc = function(e) {
+ return zu(this.a, e);
+ }, s.Kc = function() {
+ var e;
+ return e = new Ca(new ia(this.a).a), new oj(e);
+ }, s.Mc = function(e) {
+ return DSn(this, e);
+ }, s.gc = function() {
+ return Xv(this.a);
+ }, w(Bn, "ETypeParameterImpl/2/1", 556), b(557, 1, Ei, oj), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return u(Bd(this.a).cd(), 87);
+ }, s.Ob = function() {
+ return this.a.b;
+ }, s.Qb = function() {
+ fPn(this.a);
+ }, w(Bn, "ETypeParameterImpl/2/1/1", 557), b(1276, 43, sg, E9n), s._b = function(e) {
+ return yi(e) ? QD(this, e) : !!Sr(this.f, e);
+ }, s.xc = function(e) {
+ var t, i;
+ return t = yi(e) ? mc(this, e) : Vr(Sr(this.f, e)), I(t, 837) ? (i = u(t, 837), t = i._j(), it(this, u(e, 235), t), t) : t ?? (e == null ? (rO(), see) : null);
+ }, w(Bn, "EValidatorRegistryImpl", 1276), b(1313, 704, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 1941: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, apn), s.Ih = function(e, t) {
+ switch (e.yj()) {
+ case 21:
+ case 22:
+ case 23:
+ case 24:
+ case 26:
+ case 31:
+ case 32:
+ case 37:
+ case 38:
+ case 39:
+ case 40:
+ case 43:
+ case 44:
+ case 48:
+ case 49:
+ case 20:
+ return t == null ? null : Nr(t);
+ case 25:
+ return q0e(t);
+ case 27:
+ return u0e(t);
+ case 28:
+ return s0e(t);
+ case 29:
+ return t == null ? null : Myn(l9[0], u(t, 199));
+ case 41:
+ return t == null ? "" : Q1(u(t, 290));
+ case 42:
+ return Nr(t);
+ case 50:
+ return Te(t);
+ default:
+ throw T(new Hn(B4 + e.ne() + l0));
+ }
+ }, s.Jh = function(e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p, v, m, C, S;
+ switch (e.G == -1 && (e.G = (p = ts(e), p ? v1(p.Mh(), e) : -1)), e.G) {
+ case 0:
+ return i = new BI(), i;
+ case 1:
+ return t = new JH(), t;
+ case 2:
+ return r = new tq(), r;
+ case 4:
+ return c = new fj(), c;
+ case 5:
+ return o = new j9n(), o;
+ case 6:
+ return f = new Umn(), f;
+ case 7:
+ return h = new eq(), h;
+ case 10:
+ return a = new Yy(), a;
+ case 11:
+ return d = new RI(), d;
+ case 12:
+ return g = new XTn(), g;
+ case 13:
+ return v = new _I(), v;
+ case 14:
+ return m = new cU(), m;
+ case 17:
+ return C = new tpn(), C;
+ case 18:
+ return l = new sd(), l;
+ case 19:
+ return S = new CI(), S;
+ default:
+ throw T(new Hn(SB + e.zb + l0));
+ }
+ }, s.Kh = function(e, t) {
+ switch (e.yj()) {
+ case 20:
+ return t == null ? null : new CG(t);
+ case 21:
+ return t == null ? null : new tl(t);
+ case 23:
+ case 22:
+ return t == null ? null : X2e(t);
+ case 26:
+ case 24:
+ return t == null ? null : X8(us(t, -128, 127) << 24 >> 24);
+ case 25:
+ return c9e(t);
+ case 27:
+ return O3e(t);
+ case 28:
+ return D3e(t);
+ case 29:
+ return n5e(t);
+ case 32:
+ case 31:
+ return t == null ? null : yb(t);
+ case 38:
+ case 37:
+ return t == null ? null : new Gq(t);
+ case 40:
+ case 39:
+ return t == null ? null : Q(us(t, Bi, nt));
+ case 41:
+ return null;
+ case 42:
+ return t == null, null;
+ case 44:
+ case 43:
+ return t == null ? null : Aa(MM(t));
+ case 49:
+ case 48:
+ return t == null ? null : Q3(us(t, PA, 32767) << 16 >> 16);
+ case 50:
+ return t;
+ default:
+ throw T(new Hn(B4 + e.ne() + l0));
+ }
+ }, w(Bn, "EcoreFactoryImpl", 1313), b(547, 179, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 1939: 1, 49: 1, 97: 1, 150: 1, 179: 1, 547: 1, 114: 1, 115: 1, 675: 1 }, lTn), s.gb = !1, s.hb = !1;
+ var M1n, uee = !1;
+ w(Bn, "EcorePackageImpl", 547), b(1184, 1, { 837: 1 }, dpn), s._j = function() {
+ return Qyn(), oee;
+ }, w(Bn, "EcorePackageImpl/1", 1184), b(1193, 1, qe, bpn), s.wj = function(e) {
+ return I(e, 147);
+ }, s.xj = function(e) {
+ return F(Dy, rn, 147, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/10", 1193), b(1194, 1, qe, wpn), s.wj = function(e) {
+ return I(e, 191);
+ }, s.xj = function(e) {
+ return F(fH, rn, 191, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/11", 1194), b(1195, 1, qe, gpn), s.wj = function(e) {
+ return I(e, 56);
+ }, s.xj = function(e) {
+ return F(Gl, rn, 56, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/12", 1195), b(1196, 1, qe, ppn), s.wj = function(e) {
+ return I(e, 399);
+ }, s.xj = function(e) {
+ return F(ro, Qtn, 59, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/13", 1196), b(1197, 1, qe, vpn), s.wj = function(e) {
+ return I(e, 235);
+ }, s.xj = function(e) {
+ return F(Vo, rn, 235, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/14", 1197), b(1198, 1, qe, mpn), s.wj = function(e) {
+ return I(e, 509);
+ }, s.xj = function(e) {
+ return F(I0, rn, 2017, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/15", 1198), b(1199, 1, qe, kpn), s.wj = function(e) {
+ return I(e, 99);
+ }, s.xj = function(e) {
+ return F(hw, gg, 18, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/16", 1199), b(1200, 1, qe, ypn), s.wj = function(e) {
+ return I(e, 170);
+ }, s.xj = function(e) {
+ return F(uu, gg, 170, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/17", 1200), b(1201, 1, qe, jpn), s.wj = function(e) {
+ return I(e, 472);
+ }, s.xj = function(e) {
+ return F(ow, rn, 472, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/18", 1201), b(1202, 1, qe, Epn), s.wj = function(e) {
+ return I(e, 548);
+ }, s.xj = function(e) {
+ return F(tc, sGn, 548, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/19", 1202), b(1185, 1, qe, Cpn), s.wj = function(e) {
+ return I(e, 322);
+ }, s.xj = function(e) {
+ return F(fw, gg, 34, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/2", 1185), b(1203, 1, qe, Tpn), s.wj = function(e) {
+ return I(e, 241);
+ }, s.xj = function(e) {
+ return F(ar, CGn, 87, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/20", 1203), b(1204, 1, qe, Mpn), s.wj = function(e) {
+ return I(e, 444);
+ }, s.xj = function(e) {
+ return F(Gc, rn, 836, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/21", 1204), b(1205, 1, qe, Apn), s.wj = function(e) {
+ return G0(e);
+ }, s.xj = function(e) {
+ return F(oi, q, 476, e, 8, 1);
+ }, w(Bn, "EcorePackageImpl/22", 1205), b(1206, 1, qe, Spn), s.wj = function(e) {
+ return I(e, 190);
+ }, s.xj = function(e) {
+ return F(mu, q, 190, e, 0, 2);
+ }, w(Bn, "EcorePackageImpl/23", 1206), b(1207, 1, qe, Ppn), s.wj = function(e) {
+ return I(e, 217);
+ }, s.xj = function(e) {
+ return F(op, q, 217, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/24", 1207), b(1208, 1, qe, Ipn), s.wj = function(e) {
+ return I(e, 172);
+ }, s.xj = function(e) {
+ return F(bm, q, 172, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/25", 1208), b(1209, 1, qe, Opn), s.wj = function(e) {
+ return I(e, 199);
+ }, s.xj = function(e) {
+ return F(HA, q, 199, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/26", 1209), b(1210, 1, qe, Dpn), s.wj = function(e) {
+ return !1;
+ }, s.xj = function(e) {
+ return F(G1n, rn, 2110, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/27", 1210), b(1211, 1, qe, $pn), s.wj = function(e) {
+ return z0(e);
+ }, s.xj = function(e) {
+ return F(Si, q, 333, e, 7, 1);
+ }, w(Bn, "EcorePackageImpl/28", 1211), b(1212, 1, qe, Fpn), s.wj = function(e) {
+ return I(e, 58);
+ }, s.xj = function(e) {
+ return F(c1n, Db, 58, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/29", 1212), b(1186, 1, qe, xpn), s.wj = function(e) {
+ return I(e, 510);
+ }, s.xj = function(e) {
+ return F(Be, { 3: 1, 4: 1, 5: 1, 1934: 1 }, 590, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/3", 1186), b(1213, 1, qe, Lpn), s.wj = function(e) {
+ return I(e, 573);
+ }, s.xj = function(e) {
+ return F(o1n, rn, 1940, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/30", 1213), b(1214, 1, qe, Npn), s.wj = function(e) {
+ return I(e, 153);
+ }, s.xj = function(e) {
+ return F(O1n, Db, 153, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/31", 1214), b(1215, 1, qe, Bpn), s.wj = function(e) {
+ return I(e, 72);
+ }, s.xj = function(e) {
+ return F(rI, $Gn, 72, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/32", 1215), b(1216, 1, qe, Rpn), s.wj = function(e) {
+ return I(e, 155);
+ }, s.xj = function(e) {
+ return F(z4, q, 155, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/33", 1216), b(1217, 1, qe, _pn), s.wj = function(e) {
+ return I(e, 19);
+ }, s.xj = function(e) {
+ return F(Ui, q, 19, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/34", 1217), b(1218, 1, qe, Kpn), s.wj = function(e) {
+ return I(e, 290);
+ }, s.xj = function(e) {
+ return F(fin, rn, 290, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/35", 1218), b(1219, 1, qe, Hpn), s.wj = function(e) {
+ return I(e, 162);
+ }, s.xj = function(e) {
+ return F(d0, q, 162, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/36", 1219), b(1220, 1, qe, qpn), s.wj = function(e) {
+ return I(e, 83);
+ }, s.xj = function(e) {
+ return F(hin, rn, 83, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/37", 1220), b(1221, 1, qe, Gpn), s.wj = function(e) {
+ return I(e, 591);
+ }, s.xj = function(e) {
+ return F(A1n, rn, 591, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/38", 1221), b(1222, 1, qe, zpn), s.wj = function(e) {
+ return !1;
+ }, s.xj = function(e) {
+ return F(z1n, rn, 2111, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/39", 1222), b(1187, 1, qe, Upn), s.wj = function(e) {
+ return I(e, 88);
+ }, s.xj = function(e) {
+ return F(io, rn, 26, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/4", 1187), b(1223, 1, qe, Wpn), s.wj = function(e) {
+ return I(e, 184);
+ }, s.xj = function(e) {
+ return F(b0, q, 184, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/40", 1223), b(1224, 1, qe, Xpn), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Bn, "EcorePackageImpl/41", 1224), b(1225, 1, qe, Vpn), s.wj = function(e) {
+ return I(e, 588);
+ }, s.xj = function(e) {
+ return F(s1n, rn, 588, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/42", 1225), b(1226, 1, qe, Qpn), s.wj = function(e) {
+ return !1;
+ }, s.xj = function(e) {
+ return F(U1n, q, 2112, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/43", 1226), b(1227, 1, qe, Jpn), s.wj = function(e) {
+ return I(e, 42);
+ }, s.xj = function(e) {
+ return F(qa, OM, 42, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/44", 1227), b(1188, 1, qe, Ypn), s.wj = function(e) {
+ return I(e, 138);
+ }, s.xj = function(e) {
+ return F(Qo, rn, 138, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/5", 1188), b(1189, 1, qe, Zpn), s.wj = function(e) {
+ return I(e, 148);
+ }, s.xj = function(e) {
+ return F(wH, rn, 148, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/6", 1189), b(1190, 1, qe, n3n), s.wj = function(e) {
+ return I(e, 457);
+ }, s.xj = function(e) {
+ return F(iI, rn, 671, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/7", 1190), b(1191, 1, qe, e3n), s.wj = function(e) {
+ return I(e, 573);
+ }, s.xj = function(e) {
+ return F(n1, rn, 678, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/8", 1191), b(1192, 1, qe, t3n), s.wj = function(e) {
+ return I(e, 471);
+ }, s.xj = function(e) {
+ return F(h9, rn, 471, e, 0, 1);
+ }, w(Bn, "EcorePackageImpl/9", 1192), b(1025, 1982, uGn, K9n), s.bi = function(e, t) {
+ kge(this, u(t, 415));
+ }, s.fi = function(e, t) {
+ eLn(this, e, u(t, 415));
+ }, w(Bn, "MinimalEObjectImpl/1ArrayDelegatingAdapterList", 1025), b(1026, 143, jk, tTn), s.Ai = function() {
+ return this.a.a;
+ }, w(Bn, "MinimalEObjectImpl/1ArrayDelegatingAdapterList/1", 1026), b(1053, 1052, {}, vyn), w("org.eclipse.emf.ecore.plugin", "EcorePlugin", 1053);
+ var A1n = Et(FGn, "Resource");
+ b(781, 1378, xGn), s.Yk = function(e) {
+ }, s.Zk = function(e) {
+ }, s.Vk = function() {
+ return !this.a && (this.a = new $I(this)), this.a;
+ }, s.Wk = function(e) {
+ var t, i, r, c, o;
+ if (r = e.length, r > 0)
+ if (Me(0, e.length), e.charCodeAt(0) == 47) {
+ for (o = new Ic(4), c = 1, t = 1; t < r; ++t)
+ Me(t, e.length), e.charCodeAt(t) == 47 && (W(o, c == t ? "" : e.substr(c, t - c)), c = t + 1);
+ return W(o, e.substr(c)), j4e(this, o);
+ } else
+ Me(r - 1, e.length), e.charCodeAt(r - 1) == 63 && (i = MU(e, eu(63), r - 2), i > 0 && (e = e.substr(0, i)));
+ return H6e(this, e);
+ }, s.Xk = function() {
+ return this.c;
+ }, s.Ib = function() {
+ var e;
+ return Q1(this.gm) + "@" + (e = mt(this) >>> 0, e.toString(16)) + " uri='" + this.d + "'";
+ }, s.b = !1, w(zB, "ResourceImpl", 781), b(1379, 781, xGn, xmn), w(zB, "BinaryResourceImpl", 1379), b(1169, 694, RB), s.si = function(e) {
+ return I(e, 56) ? E1e(this, u(e, 56)) : I(e, 591) ? new ie(u(e, 591).Vk()) : B(e) === B(this.f) ? u(e, 14).Kc() : (s3(), xy.a);
+ }, s.Ob = function() {
+ return yY(this);
+ }, s.a = !1, w(vt, "EcoreUtil/ContentTreeIterator", 1169), b(1380, 1169, RB, $Cn), s.si = function(e) {
+ return B(e) === B(this.f) ? u(e, 15).Kc() : new gAn(u(e, 56));
+ }, w(zB, "ResourceImpl/5", 1380), b(648, 1994, EGn, $I), s.Hc = function(e) {
+ return this.i <= 4 ? s4(this, e) : I(e, 49) && u(e, 49).Zg() == this.a;
+ }, s.bi = function(e, t) {
+ e == this.i - 1 && (this.a.b || (this.a.b = !0));
+ }, s.di = function(e, t) {
+ e == 0 ? this.a.b || (this.a.b = !0) : A$(this, e, t);
+ }, s.fi = function(e, t) {
+ }, s.gi = function(e, t, i) {
+ }, s.aj = function() {
+ return 2;
+ }, s.Ai = function() {
+ return this.a;
+ }, s.bj = function() {
+ return !0;
+ }, s.cj = function(e, t) {
+ var i;
+ return i = u(e, 49), t = i.wh(this.a, t), t;
+ }, s.dj = function(e, t) {
+ var i;
+ return i = u(e, 49), i.wh(null, t);
+ }, s.ej = function() {
+ return !1;
+ }, s.hi = function() {
+ return !0;
+ }, s.ri = function(e) {
+ return F(Gl, rn, 56, e, 0, 1);
+ }, s.ni = function() {
+ return !1;
+ }, w(zB, "ResourceImpl/ContentsEList", 648), b(957, 1964, M4, Fmn), s.Zc = function(e) {
+ return this.a._h(e);
+ }, s.gc = function() {
+ return this.a.gc();
+ }, w(vt, "AbstractSequentialInternalEList/1", 957);
+ var S1n, P1n, xi, I1n;
+ b(624, 1, {}, xEn);
+ var cI, uI;
+ w(vt, "BasicExtendedMetaData", 624), b(1160, 1, {}, xkn), s.$k = function() {
+ return null;
+ }, s._k = function() {
+ return this.a == -2 && yte(this, Vve(this.d, this.b)), this.a;
+ }, s.al = function() {
+ return null;
+ }, s.bl = function() {
+ return Pn(), Pn(), cr;
+ }, s.ne = function() {
+ return this.c == K4 && Ete(this, D$n(this.d, this.b)), this.c;
+ }, s.cl = function() {
+ return 0;
+ }, s.a = -2, s.c = K4, w(vt, "BasicExtendedMetaData/EClassExtendedMetaDataImpl", 1160), b(1161, 1, {}, tAn), s.$k = function() {
+ return this.a == (C3(), cI) && jte(this, l8e(this.f, this.b)), this.a;
+ }, s._k = function() {
+ return 0;
+ }, s.al = function() {
+ return this.c == (C3(), cI) && Cte(this, a8e(this.f, this.b)), this.c;
+ }, s.bl = function() {
+ return !this.d && Tte(this, lke(this.f, this.b)), this.d;
+ }, s.ne = function() {
+ return this.e == K4 && Mte(this, D$n(this.f, this.b)), this.e;
+ }, s.cl = function() {
+ return this.g == -2 && Ate(this, bve(this.f, this.b)), this.g;
+ }, s.e = K4, s.g = -2, w(vt, "BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl", 1161), b(1159, 1, {}, Nkn), s.b = !1, s.c = !1, w(vt, "BasicExtendedMetaData/EPackageExtendedMetaDataImpl", 1159), b(1162, 1, {}, eAn), s.c = -2, s.e = K4, s.f = K4, w(vt, "BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl", 1162), b(585, 622, Br, ME), s.aj = function() {
+ return this.c;
+ }, s.Fk = function() {
+ return !1;
+ }, s.li = function(e, t) {
+ return t;
+ }, s.c = 0, w(vt, "EDataTypeEList", 585);
+ var O1n = Et(vt, "FeatureMap");
+ b(75, 585, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 76: 1, 153: 1, 215: 1, 1937: 1, 69: 1, 95: 1 }, Ft), s.Vc = function(e, t) {
+ s8e(this, e, u(t, 72));
+ }, s.Fc = function(e) {
+ return M9e(this, u(e, 72));
+ }, s.Yh = function(e) {
+ ahe(this, u(e, 72));
+ }, s.cj = function(e, t) {
+ return Uue(this, u(e, 72), t);
+ }, s.dj = function(e, t) {
+ return SU(this, u(e, 72), t);
+ }, s.ii = function(e, t) {
+ return Pke(this, e, t);
+ }, s.li = function(e, t) {
+ return oEe(this, e, u(t, 72));
+ }, s._c = function(e, t) {
+ return J8e(this, e, u(t, 72));
+ }, s.jj = function(e, t) {
+ return Wue(this, u(e, 72), t);
+ }, s.kj = function(e, t) {
+ return uEn(this, u(e, 72), t);
+ }, s.lj = function(e, t, i) {
+ return J4e(this, u(e, 72), u(t, 72), i);
+ }, s.oi = function(e, t) {
+ return px(this, e, u(t, 72));
+ }, s.dl = function(e, t) {
+ return fZ(this, e, t);
+ }, s.Wc = function(e, t) {
+ var i, r, c, o, f, h, l, a, d;
+ for (a = new Nd(t.gc()), c = t.Kc(); c.Ob(); )
+ if (r = u(c.Pb(), 72), o = r.ak(), Gh(this.e, o))
+ (!o.hi() || !yC(this, o, r.dd()) && !s4(a, r)) && me(a, r);
+ else {
+ for (d = _c(this.e.Tg(), o), i = u(this.g, 119), f = !0, h = 0; h < this.i; ++h)
+ if (l = i[h], d.rl(l.ak())) {
+ u(Gw(this, h, r), 72), f = !1;
+ break;
+ }
+ f && me(a, r);
+ }
+ return NV(this, e, a);
+ }, s.Gc = function(e) {
+ var t, i, r, c, o, f, h, l, a;
+ for (l = new Nd(e.gc()), r = e.Kc(); r.Ob(); )
+ if (i = u(r.Pb(), 72), c = i.ak(), Gh(this.e, c))
+ (!c.hi() || !yC(this, c, i.dd()) && !s4(l, i)) && me(l, i);
+ else {
+ for (a = _c(this.e.Tg(), c), t = u(this.g, 119), o = !0, f = 0; f < this.i; ++f)
+ if (h = t[f], a.rl(h.ak())) {
+ u(Gw(this, f, i), 72), o = !1;
+ break;
+ }
+ o && me(l, i);
+ }
+ return $t(this, l);
+ }, s.Wh = function(e) {
+ return this.j = -1, eL(this, this.i, e);
+ }, s.el = function(e, t, i) {
+ return iZ(this, e, t, i);
+ }, s.mk = function(e, t) {
+ return q7(this, e, t);
+ }, s.fl = function(e, t, i) {
+ return MZ(this, e, t, i);
+ }, s.gl = function() {
+ return this;
+ }, s.hl = function(e, t) {
+ return W7(this, e, t);
+ }, s.il = function(e) {
+ return u(D(this, e), 72).ak();
+ }, s.jl = function(e) {
+ return u(D(this, e), 72).dd();
+ }, s.kl = function() {
+ return this.b;
+ }, s.bj = function() {
+ return !0;
+ }, s.ij = function() {
+ return !0;
+ }, s.ll = function(e) {
+ return !g7(this, e);
+ }, s.ri = function(e) {
+ return F(cee, $Gn, 332, e, 0, 1);
+ }, s.Gk = function(e) {
+ return YO(this, e);
+ }, s.Wb = function(e) {
+ j8(this, e);
+ }, s.ml = function(e, t) {
+ yM(this, e, t);
+ }, s.nl = function(e) {
+ return UIn(this, e);
+ }, s.ol = function(e) {
+ gFn(this, e);
+ }, w(vt, "BasicFeatureMap", 75), b(1851, 1, hh), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Rb = function(e) {
+ if (this.g == -1)
+ throw T(new su());
+ _E(this);
+ try {
+ KNn(this.e, this.b, this.a, e), this.d = this.e.j, RT(this);
+ } catch (t) {
+ throw t = jt(t), I(t, 73) ? T(new ps()) : T(t);
+ }
+ }, s.Ob = function() {
+ return gF(this);
+ }, s.Sb = function() {
+ return gDn(this);
+ }, s.Pb = function() {
+ return RT(this);
+ }, s.Tb = function() {
+ return this.a;
+ }, s.Ub = function() {
+ var e;
+ if (gDn(this))
+ return _E(this), this.g = --this.a, this.Lk() && (e = y6(this.e, this.b, this.c, this.a, this.j), this.j = e), this.i = 0, this.j;
+ throw T(new rc());
+ }, s.Vb = function() {
+ return this.a - 1;
+ }, s.Qb = function() {
+ if (this.g == -1)
+ throw T(new su());
+ _E(this);
+ try {
+ Bxn(this.e, this.b, this.g), this.d = this.e.j, this.g < this.a && (--this.a, --this.c), --this.g;
+ } catch (e) {
+ throw e = jt(e), I(e, 73) ? T(new ps()) : T(e);
+ }
+ }, s.Lk = function() {
+ return !1;
+ }, s.Wb = function(e) {
+ if (this.g == -1)
+ throw T(new su());
+ _E(this);
+ try {
+ lRn(this.e, this.b, this.g, e), this.d = this.e.j;
+ } catch (t) {
+ throw t = jt(t), I(t, 73) ? T(new ps()) : T(t);
+ }
+ }, s.a = 0, s.c = 0, s.d = 0, s.f = !1, s.g = 0, s.i = 0, w(vt, "FeatureMapUtil/BasicFeatureEIterator", 1851), b(410, 1851, hh, K3), s.pl = function() {
+ var e, t, i;
+ for (i = this.e.i, e = u(this.e.g, 119); this.c < i; ) {
+ if (t = e[this.c], this.k.rl(t.ak()))
+ return this.j = this.f ? t : t.dd(), this.i = 2, !0;
+ ++this.c;
+ }
+ return this.i = 1, this.g = -1, !1;
+ }, s.ql = function() {
+ var e, t;
+ for (e = u(this.e.g, 119); --this.c >= 0; )
+ if (t = e[this.c], this.k.rl(t.ak()))
+ return this.j = this.f ? t : t.dd(), this.i = -2, !0;
+ return this.i = -1, this.g = -1, !1;
+ }, w(vt, "BasicFeatureMap/FeatureEIterator", 410), b(662, 410, hh, LO), s.Lk = function() {
+ return !0;
+ }, w(vt, "BasicFeatureMap/ResolvingFeatureEIterator", 662), b(955, 486, CA, Syn), s.Gi = function() {
+ return this;
+ }, w(vt, "EContentsEList/1", 955), b(956, 486, CA, Zkn), s.Lk = function() {
+ return !1;
+ }, w(vt, "EContentsEList/2", 956), b(954, 279, TA, Pyn), s.Nk = function(e) {
+ }, s.Ob = function() {
+ return !1;
+ }, s.Sb = function() {
+ return !1;
+ }, w(vt, "EContentsEList/FeatureIteratorImpl/1", 954), b(825, 585, Br, $z), s.ci = function() {
+ this.a = !0;
+ }, s.fj = function() {
+ return this.a;
+ }, s.Xj = function() {
+ var e;
+ de(this), Hu(this.e) ? (e = this.a, this.a = !1, et(this.e, new vo(this.e, 2, this.c, e, !1))) : this.a = !1;
+ }, s.a = !1, w(vt, "EDataTypeEList/Unsettable", 825), b(1849, 585, Br, Nyn), s.hi = function() {
+ return !0;
+ }, w(vt, "EDataTypeUniqueEList", 1849), b(1850, 825, Br, Byn), s.hi = function() {
+ return !0;
+ }, w(vt, "EDataTypeUniqueEList/Unsettable", 1850), b(139, 85, Br, fu), s.Ek = function() {
+ return !0;
+ }, s.li = function(e, t) {
+ return U2(this, e, u(t, 56));
+ }, w(vt, "EObjectContainmentEList/Resolving", 139), b(1163, 545, Br, Lyn), s.Ek = function() {
+ return !0;
+ }, s.li = function(e, t) {
+ return U2(this, e, u(t, 56));
+ }, w(vt, "EObjectContainmentEList/Unsettable/Resolving", 1163), b(748, 16, Br, yU), s.ci = function() {
+ this.a = !0;
+ }, s.fj = function() {
+ return this.a;
+ }, s.Xj = function() {
+ var e;
+ de(this), Hu(this.e) ? (e = this.a, this.a = !1, et(this.e, new vo(this.e, 2, this.c, e, !1))) : this.a = !1;
+ }, s.a = !1, w(vt, "EObjectContainmentWithInverseEList/Unsettable", 748), b(1173, 748, Br, Wjn), s.Ek = function() {
+ return !0;
+ }, s.li = function(e, t) {
+ return U2(this, e, u(t, 56));
+ }, w(vt, "EObjectContainmentWithInverseEList/Unsettable/Resolving", 1173), b(743, 496, Br, Dz), s.ci = function() {
+ this.a = !0;
+ }, s.fj = function() {
+ return this.a;
+ }, s.Xj = function() {
+ var e;
+ de(this), Hu(this.e) ? (e = this.a, this.a = !1, et(this.e, new vo(this.e, 2, this.c, e, !1))) : this.a = !1;
+ }, s.a = !1, w(vt, "EObjectEList/Unsettable", 743), b(328, 496, Br, Aw), s.Ek = function() {
+ return !0;
+ }, s.li = function(e, t) {
+ return U2(this, e, u(t, 56));
+ }, w(vt, "EObjectResolvingEList", 328), b(1641, 743, Br, Ryn), s.Ek = function() {
+ return !0;
+ }, s.li = function(e, t) {
+ return U2(this, e, u(t, 56));
+ }, w(vt, "EObjectResolvingEList/Unsettable", 1641), b(1381, 1, {}, i3n);
+ var see;
+ w(vt, "EObjectValidator", 1381), b(546, 496, Br, zE), s.zk = function() {
+ return this.d;
+ }, s.Ak = function() {
+ return this.b;
+ }, s.bj = function() {
+ return !0;
+ }, s.Dk = function() {
+ return !0;
+ }, s.b = 0, w(vt, "EObjectWithInverseEList", 546), b(1176, 546, Br, Xjn), s.Ck = function() {
+ return !0;
+ }, w(vt, "EObjectWithInverseEList/ManyInverse", 1176), b(625, 546, Br, tD), s.ci = function() {
+ this.a = !0;
+ }, s.fj = function() {
+ return this.a;
+ }, s.Xj = function() {
+ var e;
+ de(this), Hu(this.e) ? (e = this.a, this.a = !1, et(this.e, new vo(this.e, 2, this.c, e, !1))) : this.a = !1;
+ }, s.a = !1, w(vt, "EObjectWithInverseEList/Unsettable", 625), b(1175, 625, Br, Vjn), s.Ck = function() {
+ return !0;
+ }, w(vt, "EObjectWithInverseEList/Unsettable/ManyInverse", 1175), b(749, 546, Br, jU), s.Ek = function() {
+ return !0;
+ }, s.li = function(e, t) {
+ return U2(this, e, u(t, 56));
+ }, w(vt, "EObjectWithInverseResolvingEList", 749), b(31, 749, Br, Fn), s.Ck = function() {
+ return !0;
+ }, w(vt, "EObjectWithInverseResolvingEList/ManyInverse", 31), b(750, 625, Br, EU), s.Ek = function() {
+ return !0;
+ }, s.li = function(e, t) {
+ return U2(this, e, u(t, 56));
+ }, w(vt, "EObjectWithInverseResolvingEList/Unsettable", 750), b(1174, 750, Br, Qjn), s.Ck = function() {
+ return !0;
+ }, w(vt, "EObjectWithInverseResolvingEList/Unsettable/ManyInverse", 1174), b(1164, 622, Br), s.ai = function() {
+ return (this.b & 1792) == 0;
+ }, s.ci = function() {
+ this.b |= 1;
+ }, s.Bk = function() {
+ return (this.b & 4) != 0;
+ }, s.bj = function() {
+ return (this.b & 40) != 0;
+ }, s.Ck = function() {
+ return (this.b & 16) != 0;
+ }, s.Dk = function() {
+ return (this.b & 8) != 0;
+ }, s.Ek = function() {
+ return (this.b & Rb) != 0;
+ }, s.rk = function() {
+ return (this.b & 32) != 0;
+ }, s.Fk = function() {
+ return (this.b & Eo) != 0;
+ }, s.wj = function(e) {
+ return this.d ? OAn(this.d, e) : this.ak().Yj().wj(e);
+ }, s.fj = function() {
+ return this.b & 2 ? (this.b & 1) != 0 : this.i != 0;
+ }, s.hi = function() {
+ return (this.b & 128) != 0;
+ }, s.Xj = function() {
+ var e;
+ de(this), this.b & 2 && (Hu(this.e) ? (e = (this.b & 1) != 0, this.b &= -2, qp(this, new vo(this.e, 2, yt(this.e.Tg(), this.ak()), e, !1))) : this.b &= -2);
+ }, s.ni = function() {
+ return (this.b & 1536) == 0;
+ }, s.b = 0, w(vt, "EcoreEList/Generic", 1164), b(1165, 1164, Br, _Tn), s.ak = function() {
+ return this.a;
+ }, w(vt, "EcoreEList/Dynamic", 1165), b(747, 63, Wf, Lq), s.ri = function(e) {
+ return Q8(this.a.a, e);
+ }, w(vt, "EcoreEMap/1", 747), b(746, 85, Br, yW), s.bi = function(e, t) {
+ KT(this.b, u(t, 133));
+ }, s.di = function(e, t) {
+ MOn(this.b);
+ }, s.ei = function(e, t, i) {
+ var r;
+ ++(r = this.b, u(t, 133), r).e;
+ }, s.fi = function(e, t) {
+ MF(this.b, u(t, 133));
+ }, s.gi = function(e, t, i) {
+ MF(this.b, u(i, 133)), B(i) === B(t) && u(i, 133).Th(ece(u(t, 133).cd())), KT(this.b, u(t, 133));
+ }, w(vt, "EcoreEMap/DelegateEObjectContainmentEList", 746), b(1171, 151, Vtn, RIn), w(vt, "EcoreEMap/Unsettable", 1171), b(1172, 746, Br, Jjn), s.ci = function() {
+ this.a = !0;
+ }, s.fj = function() {
+ return this.a;
+ }, s.Xj = function() {
+ var e;
+ de(this), Hu(this.e) ? (e = this.a, this.a = !1, et(this.e, new vo(this.e, 2, this.c, e, !1))) : this.a = !1;
+ }, s.a = !1, w(vt, "EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList", 1172), b(1168, 228, sg, qCn), s.a = !1, s.b = !1, w(vt, "EcoreUtil/Copier", 1168), b(745, 1, Ei, gAn), s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Ob = function() {
+ return a$n(this);
+ }, s.Pb = function() {
+ var e;
+ return a$n(this), e = this.b, this.b = null, e;
+ }, s.Qb = function() {
+ this.a.Qb();
+ }, w(vt, "EcoreUtil/ProperContentIterator", 745), b(1382, 1381, {}, nvn);
+ var oee;
+ w(vt, "EcoreValidator", 1382);
+ var fee;
+ Et(vt, "FeatureMapUtil/Validator"), b(1260, 1, { 1942: 1 }, r3n), s.rl = function(e) {
+ return !0;
+ }, w(vt, "FeatureMapUtil/1", 1260), b(757, 1, { 1942: 1 }, BZ), s.rl = function(e) {
+ var t;
+ return this.c == e ? !0 : (t = sn(te(this.a, e)), t == null ? U7e(this, e) ? (CSn(this.a, e, (qn(), G4)), !0) : (CSn(this.a, e, (qn(), Ga)), !1) : t == (qn(), G4));
+ }, s.e = !1;
+ var mH;
+ w(vt, "FeatureMapUtil/BasicValidator", 757), b(758, 43, sg, Sz), w(vt, "FeatureMapUtil/BasicValidator/Cache", 758), b(501, 52, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, i8), s.Vc = function(e, t) {
+ KNn(this.c, this.b, e, t);
+ }, s.Fc = function(e) {
+ return fZ(this.c, this.b, e);
+ }, s.Wc = function(e, t) {
+ return sje(this.c, this.b, e, t);
+ }, s.Gc = function(e) {
+ return m5(this, e);
+ }, s.Xh = function(e, t) {
+ S0e(this.c, this.b, e, t);
+ }, s.lk = function(e, t) {
+ return iZ(this.c, this.b, e, t);
+ }, s.pi = function(e) {
+ return kM(this.c, this.b, e, !1);
+ }, s.Zh = function() {
+ return hyn(this.c, this.b);
+ }, s.$h = function() {
+ return Hre(this.c, this.b);
+ }, s._h = function(e) {
+ return $de(this.c, this.b, e);
+ }, s.mk = function(e, t) {
+ return Pjn(this, e, t);
+ }, s.$b = function() {
+ t2(this);
+ }, s.Hc = function(e) {
+ return yC(this.c, this.b, e);
+ }, s.Ic = function(e) {
+ return Dbe(this.c, this.b, e);
+ }, s.Xb = function(e) {
+ return kM(this.c, this.b, e, !0);
+ }, s.Wj = function(e) {
+ return this;
+ }, s.Xc = function(e) {
+ return Gae(this.c, this.b, e);
+ }, s.dc = function() {
+ return Zj(this);
+ }, s.fj = function() {
+ return !g7(this.c, this.b);
+ }, s.Kc = function() {
+ return g0e(this.c, this.b);
+ }, s.Yc = function() {
+ return p0e(this.c, this.b);
+ }, s.Zc = function(e) {
+ return Pge(this.c, this.b, e);
+ }, s.ii = function(e, t) {
+ return cRn(this.c, this.b, e, t);
+ }, s.ji = function(e, t) {
+ Ade(this.c, this.b, e, t);
+ }, s.$c = function(e) {
+ return Bxn(this.c, this.b, e);
+ }, s.Mc = function(e) {
+ return dke(this.c, this.b, e);
+ }, s._c = function(e, t) {
+ return lRn(this.c, this.b, e, t);
+ }, s.Wb = function(e) {
+ iM(this.c, this.b), m5(this, u(e, 15));
+ }, s.gc = function() {
+ return Hge(this.c, this.b);
+ }, s.Pc = function() {
+ return Kle(this.c, this.b);
+ }, s.Qc = function(e) {
+ return zae(this.c, this.b, e);
+ }, s.Ib = function() {
+ var e, t;
+ for (t = new i1(), t.a += "[", e = hyn(this.c, this.b); gF(e); )
+ dr(t, y5(RT(e))), gF(e) && (t.a += Qi);
+ return t.a += "]", t.a;
+ }, s.Xj = function() {
+ iM(this.c, this.b);
+ }, w(vt, "FeatureMapUtil/FeatureEList", 501), b(627, 36, jk, v$), s.yi = function(e) {
+ return u6(this, e);
+ }, s.Di = function(e) {
+ var t, i, r, c, o, f, h;
+ switch (this.d) {
+ case 1:
+ case 2: {
+ if (o = e.Ai(), B(o) === B(this.c) && u6(this, null) == e.yi(null))
+ return this.g = e.zi(), e.xi() == 1 && (this.d = 1), !0;
+ break;
+ }
+ case 3: {
+ switch (c = e.xi(), c) {
+ case 3: {
+ if (o = e.Ai(), B(o) === B(this.c) && u6(this, null) == e.yi(null))
+ return this.d = 5, t = new Nd(2), me(t, this.g), me(t, e.zi()), this.g = t, !0;
+ break;
+ }
+ }
+ break;
+ }
+ case 5: {
+ switch (c = e.xi(), c) {
+ case 3: {
+ if (o = e.Ai(), B(o) === B(this.c) && u6(this, null) == e.yi(null))
+ return i = u(this.g, 14), i.Fc(e.zi()), !0;
+ break;
+ }
+ }
+ break;
+ }
+ case 4: {
+ switch (c = e.xi(), c) {
+ case 3: {
+ if (o = e.Ai(), B(o) === B(this.c) && u6(this, null) == e.yi(null))
+ return this.d = 1, this.g = e.zi(), !0;
+ break;
+ }
+ case 4: {
+ if (o = e.Ai(), B(o) === B(this.c) && u6(this, null) == e.yi(null))
+ return this.d = 6, h = new Nd(2), me(h, this.n), me(h, e.Bi()), this.n = h, f = A(M(be, 1), Le, 25, 15, [this.o, e.Ci()]), this.g = f, !0;
+ break;
+ }
+ }
+ break;
+ }
+ case 6: {
+ switch (c = e.xi(), c) {
+ case 4: {
+ if (o = e.Ai(), B(o) === B(this.c) && u6(this, null) == e.yi(null))
+ return i = u(this.n, 14), i.Fc(e.Bi()), f = u(this.g, 48), r = F(be, Le, 25, f.length + 1, 15, 1), pc(f, 0, r, 0, f.length), r[f.length] = e.Ci(), this.g = r, !0;
+ break;
+ }
+ }
+ break;
+ }
+ }
+ return !1;
+ }, w(vt, "FeatureMapUtil/FeatureENotificationImpl", 627), b(552, 501, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 76: 1, 153: 1, 215: 1, 1937: 1, 69: 1, 95: 1 }, IE), s.dl = function(e, t) {
+ return fZ(this.c, e, t);
+ }, s.el = function(e, t, i) {
+ return iZ(this.c, e, t, i);
+ }, s.fl = function(e, t, i) {
+ return MZ(this.c, e, t, i);
+ }, s.gl = function() {
+ return this;
+ }, s.hl = function(e, t) {
+ return W7(this.c, e, t);
+ }, s.il = function(e) {
+ return u(kM(this.c, this.b, e, !1), 72).ak();
+ }, s.jl = function(e) {
+ return u(kM(this.c, this.b, e, !1), 72).dd();
+ }, s.kl = function() {
+ return this.a;
+ }, s.ll = function(e) {
+ return !g7(this.c, e);
+ }, s.ml = function(e, t) {
+ yM(this.c, e, t);
+ }, s.nl = function(e) {
+ return UIn(this.c, e);
+ }, s.ol = function(e) {
+ gFn(this.c, e);
+ }, w(vt, "FeatureMapUtil/FeatureFeatureMap", 552), b(1259, 1, GB, Bkn), s.Wj = function(e) {
+ return kM(this.b, this.a, -1, e);
+ }, s.fj = function() {
+ return !g7(this.b, this.a);
+ }, s.Wb = function(e) {
+ yM(this.b, this.a, e);
+ }, s.Xj = function() {
+ iM(this.b, this.a);
+ }, w(vt, "FeatureMapUtil/FeatureValue", 1259);
+ var Op, kH, yH, Dp, hee, Ny = Et($A, "AnyType");
+ b(666, 60, zh, VI), w($A, "InvalidDatatypeValueException", 666);
+ var sI = Et($A, NGn), By = Et($A, BGn), D1n = Et($A, RGn), lee, fc, $1n, cd, aee, dee, bee, wee, gee, pee, vee, mee, kee, yee, jee, Gg, Eee, zg, w9, Cee, $0, Ry, _y, Tee, g9, p9;
+ b(830, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 843: 1 }, iG), s._g = function(e, t, i) {
+ switch (e) {
+ case 0:
+ return i ? (!this.c && (this.c = new Ft(this, 0)), this.c) : (!this.c && (this.c = new Ft(this, 0)), this.c.b);
+ case 1:
+ return i ? (!this.c && (this.c = new Ft(this, 0)), u(kc(this.c, (ht(), cd)), 153)) : (!this.c && (this.c = new Ft(this, 0)), u(u(kc(this.c, (ht(), cd)), 153), 215)).kl();
+ case 2:
+ return i ? (!this.b && (this.b = new Ft(this, 2)), this.b) : (!this.b && (this.b = new Ft(this, 2)), this.b.b);
+ }
+ return Es(this, e - ee(this.zh()), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : this.zh(), e), t, i);
+ }, s.jh = function(e, t, i) {
+ var r;
+ switch (t) {
+ case 0:
+ return !this.c && (this.c = new Ft(this, 0)), q7(this.c, e, i);
+ case 1:
+ return (!this.c && (this.c = new Ft(this, 0)), u(u(kc(this.c, (ht(), cd)), 153), 69)).mk(e, i);
+ case 2:
+ return !this.b && (this.b = new Ft(this, 2)), q7(this.b, e, i);
+ }
+ return r = u(On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : this.zh(), t), 66), r.Nj().Rj(this, QX(this), t - ee(this.zh()), e, i);
+ }, s.lh = function(e) {
+ switch (e) {
+ case 0:
+ return !!this.c && this.c.i != 0;
+ case 1:
+ return !(!this.c && (this.c = new Ft(this, 0)), u(kc(this.c, (ht(), cd)), 153)).dc();
+ case 2:
+ return !!this.b && this.b.i != 0;
+ }
+ return ys(this, e - ee(this.zh()), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : this.zh(), e));
+ }, s.sh = function(e, t) {
+ switch (e) {
+ case 0:
+ !this.c && (this.c = new Ft(this, 0)), j8(this.c, t);
+ return;
+ case 1:
+ (!this.c && (this.c = new Ft(this, 0)), u(u(kc(this.c, (ht(), cd)), 153), 215)).Wb(t);
+ return;
+ case 2:
+ !this.b && (this.b = new Ft(this, 2)), j8(this.b, t);
+ return;
+ }
+ Ss(this, e - ee(this.zh()), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : this.zh(), e), t);
+ }, s.zh = function() {
+ return ht(), $1n;
+ }, s.Bh = function(e) {
+ switch (e) {
+ case 0:
+ !this.c && (this.c = new Ft(this, 0)), de(this.c);
+ return;
+ case 1:
+ (!this.c && (this.c = new Ft(this, 0)), u(kc(this.c, (ht(), cd)), 153)).$b();
+ return;
+ case 2:
+ !this.b && (this.b = new Ft(this, 2)), de(this.b);
+ return;
+ }
+ Ms(this, e - ee(this.zh()), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : this.zh(), e));
+ }, s.Ib = function() {
+ var e;
+ return this.j & 4 ? yo(this) : (e = new Ns(yo(this)), e.a += " (mixed: ", w5(e, this.c), e.a += ", anyAttribute: ", w5(e, this.b), e.a += ")", e.a);
+ }, w(Xt, "AnyTypeImpl", 830), b(667, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 2021: 1, 667: 1 }, u3n), s._g = function(e, t, i) {
+ switch (e) {
+ case 0:
+ return this.a;
+ case 1:
+ return this.b;
+ }
+ return Es(this, e - ee((ht(), Gg)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : Gg, e), t, i);
+ }, s.lh = function(e) {
+ switch (e) {
+ case 0:
+ return this.a != null;
+ case 1:
+ return this.b != null;
+ }
+ return ys(this, e - ee((ht(), Gg)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : Gg, e));
+ }, s.sh = function(e, t) {
+ switch (e) {
+ case 0:
+ Fte(this, Te(t));
+ return;
+ case 1:
+ xte(this, Te(t));
+ return;
+ }
+ Ss(this, e - ee((ht(), Gg)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : Gg, e), t);
+ }, s.zh = function() {
+ return ht(), Gg;
+ }, s.Bh = function(e) {
+ switch (e) {
+ case 0:
+ this.a = null;
+ return;
+ case 1:
+ this.b = null;
+ return;
+ }
+ Ms(this, e - ee((ht(), Gg)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : Gg, e));
+ }, s.Ib = function() {
+ var e;
+ return this.j & 4 ? yo(this) : (e = new Ns(yo(this)), e.a += " (data: ", dr(e, this.a), e.a += ", target: ", dr(e, this.b), e.a += ")", e.a);
+ }, s.a = null, s.b = null, w(Xt, "ProcessingInstructionImpl", 667), b(668, 830, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 843: 1, 2022: 1, 668: 1 }, T9n), s._g = function(e, t, i) {
+ switch (e) {
+ case 0:
+ return i ? (!this.c && (this.c = new Ft(this, 0)), this.c) : (!this.c && (this.c = new Ft(this, 0)), this.c.b);
+ case 1:
+ return i ? (!this.c && (this.c = new Ft(this, 0)), u(kc(this.c, (ht(), cd)), 153)) : (!this.c && (this.c = new Ft(this, 0)), u(u(kc(this.c, (ht(), cd)), 153), 215)).kl();
+ case 2:
+ return i ? (!this.b && (this.b = new Ft(this, 2)), this.b) : (!this.b && (this.b = new Ft(this, 2)), this.b.b);
+ case 3:
+ return !this.c && (this.c = new Ft(this, 0)), Te(W7(this.c, (ht(), w9), !0));
+ case 4:
+ return CU(this.a, (!this.c && (this.c = new Ft(this, 0)), Te(W7(this.c, (ht(), w9), !0))));
+ case 5:
+ return this.a;
+ }
+ return Es(this, e - ee((ht(), zg)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : zg, e), t, i);
+ }, s.lh = function(e) {
+ switch (e) {
+ case 0:
+ return !!this.c && this.c.i != 0;
+ case 1:
+ return !(!this.c && (this.c = new Ft(this, 0)), u(kc(this.c, (ht(), cd)), 153)).dc();
+ case 2:
+ return !!this.b && this.b.i != 0;
+ case 3:
+ return !this.c && (this.c = new Ft(this, 0)), Te(W7(this.c, (ht(), w9), !0)) != null;
+ case 4:
+ return CU(this.a, (!this.c && (this.c = new Ft(this, 0)), Te(W7(this.c, (ht(), w9), !0)))) != null;
+ case 5:
+ return !!this.a;
+ }
+ return ys(this, e - ee((ht(), zg)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : zg, e));
+ }, s.sh = function(e, t) {
+ switch (e) {
+ case 0:
+ !this.c && (this.c = new Ft(this, 0)), j8(this.c, t);
+ return;
+ case 1:
+ (!this.c && (this.c = new Ft(this, 0)), u(u(kc(this.c, (ht(), cd)), 153), 215)).Wb(t);
+ return;
+ case 2:
+ !this.b && (this.b = new Ft(this, 2)), j8(this.b, t);
+ return;
+ case 3:
+ fX(this, Te(t));
+ return;
+ case 4:
+ fX(this, TU(this.a, t));
+ return;
+ case 5:
+ Lte(this, u(t, 148));
+ return;
+ }
+ Ss(this, e - ee((ht(), zg)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : zg, e), t);
+ }, s.zh = function() {
+ return ht(), zg;
+ }, s.Bh = function(e) {
+ switch (e) {
+ case 0:
+ !this.c && (this.c = new Ft(this, 0)), de(this.c);
+ return;
+ case 1:
+ (!this.c && (this.c = new Ft(this, 0)), u(kc(this.c, (ht(), cd)), 153)).$b();
+ return;
+ case 2:
+ !this.b && (this.b = new Ft(this, 2)), de(this.b);
+ return;
+ case 3:
+ !this.c && (this.c = new Ft(this, 0)), yM(this.c, (ht(), w9), null);
+ return;
+ case 4:
+ fX(this, TU(this.a, null));
+ return;
+ case 5:
+ this.a = null;
+ return;
+ }
+ Ms(this, e - ee((ht(), zg)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : zg, e));
+ }, w(Xt, "SimpleAnyTypeImpl", 668), b(669, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 2023: 1, 669: 1 }, C9n), s._g = function(e, t, i) {
+ switch (e) {
+ case 0:
+ return i ? (!this.a && (this.a = new Ft(this, 0)), this.a) : (!this.a && (this.a = new Ft(this, 0)), this.a.b);
+ case 1:
+ return i ? (!this.b && (this.b = new Wu((Sn(), Zi), tc, this, 1)), this.b) : (!this.b && (this.b = new Wu((Sn(), Zi), tc, this, 1)), N8(this.b));
+ case 2:
+ return i ? (!this.c && (this.c = new Wu((Sn(), Zi), tc, this, 2)), this.c) : (!this.c && (this.c = new Wu((Sn(), Zi), tc, this, 2)), N8(this.c));
+ case 3:
+ return !this.a && (this.a = new Ft(this, 0)), kc(this.a, (ht(), Ry));
+ case 4:
+ return !this.a && (this.a = new Ft(this, 0)), kc(this.a, (ht(), _y));
+ case 5:
+ return !this.a && (this.a = new Ft(this, 0)), kc(this.a, (ht(), g9));
+ case 6:
+ return !this.a && (this.a = new Ft(this, 0)), kc(this.a, (ht(), p9));
+ }
+ return Es(this, e - ee((ht(), $0)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : $0, e), t, i);
+ }, s.jh = function(e, t, i) {
+ var r;
+ switch (t) {
+ case 0:
+ return !this.a && (this.a = new Ft(this, 0)), q7(this.a, e, i);
+ case 1:
+ return !this.b && (this.b = new Wu((Sn(), Zi), tc, this, 1)), yE(this.b, e, i);
+ case 2:
+ return !this.c && (this.c = new Wu((Sn(), Zi), tc, this, 2)), yE(this.c, e, i);
+ case 5:
+ return !this.a && (this.a = new Ft(this, 0)), Pjn(kc(this.a, (ht(), g9)), e, i);
+ }
+ return r = u(On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : (ht(), $0), t), 66), r.Nj().Rj(this, QX(this), t - ee((ht(), $0)), e, i);
+ }, s.lh = function(e) {
+ switch (e) {
+ case 0:
+ return !!this.a && this.a.i != 0;
+ case 1:
+ return !!this.b && this.b.f != 0;
+ case 2:
+ return !!this.c && this.c.f != 0;
+ case 3:
+ return !this.a && (this.a = new Ft(this, 0)), !Zj(kc(this.a, (ht(), Ry)));
+ case 4:
+ return !this.a && (this.a = new Ft(this, 0)), !Zj(kc(this.a, (ht(), _y)));
+ case 5:
+ return !this.a && (this.a = new Ft(this, 0)), !Zj(kc(this.a, (ht(), g9)));
+ case 6:
+ return !this.a && (this.a = new Ft(this, 0)), !Zj(kc(this.a, (ht(), p9)));
+ }
+ return ys(this, e - ee((ht(), $0)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : $0, e));
+ }, s.sh = function(e, t) {
+ switch (e) {
+ case 0:
+ !this.a && (this.a = new Ft(this, 0)), j8(this.a, t);
+ return;
+ case 1:
+ !this.b && (this.b = new Wu((Sn(), Zi), tc, this, 1)), fT(this.b, t);
+ return;
+ case 2:
+ !this.c && (this.c = new Wu((Sn(), Zi), tc, this, 2)), fT(this.c, t);
+ return;
+ case 3:
+ !this.a && (this.a = new Ft(this, 0)), t2(kc(this.a, (ht(), Ry))), !this.a && (this.a = new Ft(this, 0)), m5(kc(this.a, Ry), u(t, 14));
+ return;
+ case 4:
+ !this.a && (this.a = new Ft(this, 0)), t2(kc(this.a, (ht(), _y))), !this.a && (this.a = new Ft(this, 0)), m5(kc(this.a, _y), u(t, 14));
+ return;
+ case 5:
+ !this.a && (this.a = new Ft(this, 0)), t2(kc(this.a, (ht(), g9))), !this.a && (this.a = new Ft(this, 0)), m5(kc(this.a, g9), u(t, 14));
+ return;
+ case 6:
+ !this.a && (this.a = new Ft(this, 0)), t2(kc(this.a, (ht(), p9))), !this.a && (this.a = new Ft(this, 0)), m5(kc(this.a, p9), u(t, 14));
+ return;
+ }
+ Ss(this, e - ee((ht(), $0)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : $0, e), t);
+ }, s.zh = function() {
+ return ht(), $0;
+ }, s.Bh = function(e) {
+ switch (e) {
+ case 0:
+ !this.a && (this.a = new Ft(this, 0)), de(this.a);
+ return;
+ case 1:
+ !this.b && (this.b = new Wu((Sn(), Zi), tc, this, 1)), this.b.c.$b();
+ return;
+ case 2:
+ !this.c && (this.c = new Wu((Sn(), Zi), tc, this, 2)), this.c.c.$b();
+ return;
+ case 3:
+ !this.a && (this.a = new Ft(this, 0)), t2(kc(this.a, (ht(), Ry)));
+ return;
+ case 4:
+ !this.a && (this.a = new Ft(this, 0)), t2(kc(this.a, (ht(), _y)));
+ return;
+ case 5:
+ !this.a && (this.a = new Ft(this, 0)), t2(kc(this.a, (ht(), g9)));
+ return;
+ case 6:
+ !this.a && (this.a = new Ft(this, 0)), t2(kc(this.a, (ht(), p9)));
+ return;
+ }
+ Ms(this, e - ee((ht(), $0)), On(this.j & 2 ? (!this.k && (this.k = new Fo()), this.k).ck() : $0, e));
+ }, s.Ib = function() {
+ var e;
+ return this.j & 4 ? yo(this) : (e = new Ns(yo(this)), e.a += " (mixed: ", w5(e, this.a), e.a += ")", e.a);
+ }, w(Xt, "XMLTypeDocumentRootImpl", 669), b(1919, 704, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1, 2024: 1 }, c3n), s.Ih = function(e, t) {
+ switch (e.yj()) {
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 16:
+ case 22:
+ case 23:
+ case 24:
+ case 25:
+ case 26:
+ case 32:
+ case 33:
+ case 34:
+ case 36:
+ case 37:
+ case 44:
+ case 45:
+ case 50:
+ case 51:
+ case 53:
+ case 55:
+ case 56:
+ case 57:
+ case 58:
+ case 60:
+ case 61:
+ case 4:
+ return t == null ? null : Nr(t);
+ case 19:
+ case 28:
+ case 29:
+ case 35:
+ case 38:
+ case 39:
+ case 41:
+ case 46:
+ case 52:
+ case 54:
+ case 5:
+ return Te(t);
+ case 6:
+ return uue(u(t, 190));
+ case 12:
+ case 47:
+ case 49:
+ case 11:
+ return YRn(this, e, t);
+ case 13:
+ return t == null ? null : Wye(u(t, 240));
+ case 15:
+ case 14:
+ return t == null ? null : ihe(K(Y(t)));
+ case 17:
+ return exn((ht(), t));
+ case 18:
+ return exn(t);
+ case 21:
+ case 20:
+ return t == null ? null : rhe(u(t, 155).a);
+ case 27:
+ return sue(u(t, 190));
+ case 30:
+ return pFn((ht(), u(t, 15)));
+ case 31:
+ return pFn(u(t, 15));
+ case 40:
+ return fue((ht(), t));
+ case 42:
+ return txn((ht(), t));
+ case 43:
+ return txn(t);
+ case 59:
+ case 48:
+ return oue((ht(), t));
+ default:
+ throw T(new Hn(B4 + e.ne() + l0));
+ }
+ }, s.Jh = function(e) {
+ var t, i, r, c, o;
+ switch (e.G == -1 && (e.G = (i = ts(e), i ? v1(i.Mh(), e) : -1)), e.G) {
+ case 0:
+ return t = new iG(), t;
+ case 1:
+ return r = new u3n(), r;
+ case 2:
+ return c = new T9n(), c;
+ case 3:
+ return o = new C9n(), o;
+ default:
+ throw T(new Hn(SB + e.zb + l0));
+ }
+ }, s.Kh = function(e, t) {
+ var i, r, c, o, f, h, l, a, d, g, p, v, m, C, S, $;
+ switch (e.yj()) {
+ case 5:
+ case 52:
+ case 4:
+ return t;
+ case 6:
+ return Epe(t);
+ case 8:
+ case 7:
+ return t == null ? null : hve(t);
+ case 9:
+ return t == null ? null : X8(us((r = Ec(t, !0), r.length > 0 && (Me(0, r.length), r.charCodeAt(0) == 43) ? r.substr(1) : r), -128, 127) << 24 >> 24);
+ case 10:
+ return t == null ? null : X8(us((c = Ec(t, !0), c.length > 0 && (Me(0, c.length), c.charCodeAt(0) == 43) ? c.substr(1) : c), -128, 127) << 24 >> 24);
+ case 11:
+ return Te(r0(this, (ht(), bee), t));
+ case 12:
+ return Te(r0(this, (ht(), wee), t));
+ case 13:
+ return t == null ? null : new CG(Ec(t, !0));
+ case 15:
+ case 14:
+ return O9e(t);
+ case 16:
+ return Te(r0(this, (ht(), gee), t));
+ case 17:
+ return E$n((ht(), t));
+ case 18:
+ return E$n(t);
+ case 28:
+ case 29:
+ case 35:
+ case 38:
+ case 39:
+ case 41:
+ case 54:
+ case 19:
+ return Ec(t, !0);
+ case 21:
+ case 20:
+ return _9e(t);
+ case 22:
+ return Te(r0(this, (ht(), pee), t));
+ case 23:
+ return Te(r0(this, (ht(), vee), t));
+ case 24:
+ return Te(r0(this, (ht(), mee), t));
+ case 25:
+ return Te(r0(this, (ht(), kee), t));
+ case 26:
+ return Te(r0(this, (ht(), yee), t));
+ case 27:
+ return vpe(t);
+ case 30:
+ return C$n((ht(), t));
+ case 31:
+ return C$n(t);
+ case 32:
+ return t == null ? null : Q(us((d = Ec(t, !0), d.length > 0 && (Me(0, d.length), d.charCodeAt(0) == 43) ? d.substr(1) : d), Bi, nt));
+ case 33:
+ return t == null ? null : new tl((g = Ec(t, !0), g.length > 0 && (Me(0, g.length), g.charCodeAt(0) == 43) ? g.substr(1) : g));
+ case 34:
+ return t == null ? null : Q(us((p = Ec(t, !0), p.length > 0 && (Me(0, p.length), p.charCodeAt(0) == 43) ? p.substr(1) : p), Bi, nt));
+ case 36:
+ return t == null ? null : Aa(MM((v = Ec(t, !0), v.length > 0 && (Me(0, v.length), v.charCodeAt(0) == 43) ? v.substr(1) : v)));
+ case 37:
+ return t == null ? null : Aa(MM((m = Ec(t, !0), m.length > 0 && (Me(0, m.length), m.charCodeAt(0) == 43) ? m.substr(1) : m)));
+ case 40:
+ return F2e((ht(), t));
+ case 42:
+ return T$n((ht(), t));
+ case 43:
+ return T$n(t);
+ case 44:
+ return t == null ? null : new tl((C = Ec(t, !0), C.length > 0 && (Me(0, C.length), C.charCodeAt(0) == 43) ? C.substr(1) : C));
+ case 45:
+ return t == null ? null : new tl((S = Ec(t, !0), S.length > 0 && (Me(0, S.length), S.charCodeAt(0) == 43) ? S.substr(1) : S));
+ case 46:
+ return Ec(t, !1);
+ case 47:
+ return Te(r0(this, (ht(), jee), t));
+ case 59:
+ case 48:
+ return $2e((ht(), t));
+ case 49:
+ return Te(r0(this, (ht(), Eee), t));
+ case 50:
+ return t == null ? null : Q3(us(($ = Ec(t, !0), $.length > 0 && (Me(0, $.length), $.charCodeAt(0) == 43) ? $.substr(1) : $), PA, 32767) << 16 >> 16);
+ case 51:
+ return t == null ? null : Q3(us((o = Ec(t, !0), o.length > 0 && (Me(0, o.length), o.charCodeAt(0) == 43) ? o.substr(1) : o), PA, 32767) << 16 >> 16);
+ case 53:
+ return Te(r0(this, (ht(), Cee), t));
+ case 55:
+ return t == null ? null : Q3(us((f = Ec(t, !0), f.length > 0 && (Me(0, f.length), f.charCodeAt(0) == 43) ? f.substr(1) : f), PA, 32767) << 16 >> 16);
+ case 56:
+ return t == null ? null : Q3(us((h = Ec(t, !0), h.length > 0 && (Me(0, h.length), h.charCodeAt(0) == 43) ? h.substr(1) : h), PA, 32767) << 16 >> 16);
+ case 57:
+ return t == null ? null : Aa(MM((l = Ec(t, !0), l.length > 0 && (Me(0, l.length), l.charCodeAt(0) == 43) ? l.substr(1) : l)));
+ case 58:
+ return t == null ? null : Aa(MM((a = Ec(t, !0), a.length > 0 && (Me(0, a.length), a.charCodeAt(0) == 43) ? a.substr(1) : a)));
+ case 60:
+ return t == null ? null : Q(us((i = Ec(t, !0), i.length > 0 && (Me(0, i.length), i.charCodeAt(0) == 43) ? i.substr(1) : i), Bi, nt));
+ case 61:
+ return t == null ? null : Q(us(Ec(t, !0), Bi, nt));
+ default:
+ throw T(new Hn(B4 + e.ne() + l0));
+ }
+ };
+ var Mee, F1n, Aee, x1n;
+ w(Xt, "XMLTypeFactoryImpl", 1919), b(586, 179, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1, 1945: 1, 586: 1 }, hTn), s.N = !1, s.O = !1;
+ var See = !1;
+ w(Xt, "XMLTypePackageImpl", 586), b(1852, 1, { 837: 1 }, s3n), s._j = function() {
+ return pZ(), Nee;
+ }, w(Xt, "XMLTypePackageImpl/1", 1852), b(1861, 1, qe, o3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/10", 1861), b(1862, 1, qe, f3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/11", 1862), b(1863, 1, qe, h3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/12", 1863), b(1864, 1, qe, l3n), s.wj = function(e) {
+ return z0(e);
+ }, s.xj = function(e) {
+ return F(Si, q, 333, e, 7, 1);
+ }, w(Xt, "XMLTypePackageImpl/13", 1864), b(1865, 1, qe, a3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/14", 1865), b(1866, 1, qe, d3n), s.wj = function(e) {
+ return I(e, 15);
+ }, s.xj = function(e) {
+ return F(Os, Db, 15, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/15", 1866), b(1867, 1, qe, b3n), s.wj = function(e) {
+ return I(e, 15);
+ }, s.xj = function(e) {
+ return F(Os, Db, 15, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/16", 1867), b(1868, 1, qe, w3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/17", 1868), b(1869, 1, qe, g3n), s.wj = function(e) {
+ return I(e, 155);
+ }, s.xj = function(e) {
+ return F(z4, q, 155, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/18", 1869), b(1870, 1, qe, p3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/19", 1870), b(1853, 1, qe, v3n), s.wj = function(e) {
+ return I(e, 843);
+ }, s.xj = function(e) {
+ return F(Ny, rn, 843, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/2", 1853), b(1871, 1, qe, m3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/20", 1871), b(1872, 1, qe, k3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/21", 1872), b(1873, 1, qe, y3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/22", 1873), b(1874, 1, qe, j3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/23", 1874), b(1875, 1, qe, E3n), s.wj = function(e) {
+ return I(e, 190);
+ }, s.xj = function(e) {
+ return F(mu, q, 190, e, 0, 2);
+ }, w(Xt, "XMLTypePackageImpl/24", 1875), b(1876, 1, qe, C3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/25", 1876), b(1877, 1, qe, T3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/26", 1877), b(1878, 1, qe, M3n), s.wj = function(e) {
+ return I(e, 15);
+ }, s.xj = function(e) {
+ return F(Os, Db, 15, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/27", 1878), b(1879, 1, qe, A3n), s.wj = function(e) {
+ return I(e, 15);
+ }, s.xj = function(e) {
+ return F(Os, Db, 15, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/28", 1879), b(1880, 1, qe, S3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/29", 1880), b(1854, 1, qe, P3n), s.wj = function(e) {
+ return I(e, 667);
+ }, s.xj = function(e) {
+ return F(sI, rn, 2021, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/3", 1854), b(1881, 1, qe, I3n), s.wj = function(e) {
+ return I(e, 19);
+ }, s.xj = function(e) {
+ return F(Ui, q, 19, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/30", 1881), b(1882, 1, qe, O3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/31", 1882), b(1883, 1, qe, D3n), s.wj = function(e) {
+ return I(e, 162);
+ }, s.xj = function(e) {
+ return F(d0, q, 162, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/32", 1883), b(1884, 1, qe, $3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/33", 1884), b(1885, 1, qe, F3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/34", 1885), b(1886, 1, qe, x3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/35", 1886), b(1887, 1, qe, L3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/36", 1887), b(1888, 1, qe, N3n), s.wj = function(e) {
+ return I(e, 15);
+ }, s.xj = function(e) {
+ return F(Os, Db, 15, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/37", 1888), b(1889, 1, qe, B3n), s.wj = function(e) {
+ return I(e, 15);
+ }, s.xj = function(e) {
+ return F(Os, Db, 15, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/38", 1889), b(1890, 1, qe, R3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/39", 1890), b(1855, 1, qe, _3n), s.wj = function(e) {
+ return I(e, 668);
+ }, s.xj = function(e) {
+ return F(By, rn, 2022, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/4", 1855), b(1891, 1, qe, K3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/40", 1891), b(1892, 1, qe, H3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/41", 1892), b(1893, 1, qe, q3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/42", 1893), b(1894, 1, qe, G3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/43", 1894), b(1895, 1, qe, z3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/44", 1895), b(1896, 1, qe, U3n), s.wj = function(e) {
+ return I(e, 184);
+ }, s.xj = function(e) {
+ return F(b0, q, 184, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/45", 1896), b(1897, 1, qe, W3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/46", 1897), b(1898, 1, qe, X3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/47", 1898), b(1899, 1, qe, V3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/48", 1899), b(Cl, 1, qe, Q3n), s.wj = function(e) {
+ return I(e, 184);
+ }, s.xj = function(e) {
+ return F(b0, q, 184, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/49", Cl), b(1856, 1, qe, J3n), s.wj = function(e) {
+ return I(e, 669);
+ }, s.xj = function(e) {
+ return F(D1n, rn, 2023, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/5", 1856), b(1901, 1, qe, Y3n), s.wj = function(e) {
+ return I(e, 162);
+ }, s.xj = function(e) {
+ return F(d0, q, 162, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/50", 1901), b(1902, 1, qe, Z3n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/51", 1902), b(1903, 1, qe, n4n), s.wj = function(e) {
+ return I(e, 19);
+ }, s.xj = function(e) {
+ return F(Ui, q, 19, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/52", 1903), b(1857, 1, qe, e4n), s.wj = function(e) {
+ return yi(e);
+ }, s.xj = function(e) {
+ return F(tn, q, 2, e, 6, 1);
+ }, w(Xt, "XMLTypePackageImpl/6", 1857), b(1858, 1, qe, t4n), s.wj = function(e) {
+ return I(e, 190);
+ }, s.xj = function(e) {
+ return F(mu, q, 190, e, 0, 2);
+ }, w(Xt, "XMLTypePackageImpl/7", 1858), b(1859, 1, qe, i4n), s.wj = function(e) {
+ return G0(e);
+ }, s.xj = function(e) {
+ return F(oi, q, 476, e, 8, 1);
+ }, w(Xt, "XMLTypePackageImpl/8", 1859), b(1860, 1, qe, r4n), s.wj = function(e) {
+ return I(e, 217);
+ }, s.xj = function(e) {
+ return F(op, q, 217, e, 0, 1);
+ }, w(Xt, "XMLTypePackageImpl/9", 1860);
+ var Tf, R1, v9, oI, P;
+ b(50, 60, zh, Ce), w(A1, "RegEx/ParseException", 50), b(820, 1, {}, ZH), s.sl = function(e) {
+ return e < this.j && Di(this.i, e) == 63;
+ }, s.tl = function() {
+ var e, t, i, r, c;
+ if (this.c != 10)
+ throw T(new Ce(Pe((Ee(), yA))));
+ switch (e = this.a, e) {
+ case 101:
+ e = 27;
+ break;
+ case 102:
+ e = 12;
+ break;
+ case 110:
+ e = 10;
+ break;
+ case 114:
+ e = 13;
+ break;
+ case 116:
+ e = 9;
+ break;
+ case 120:
+ if (Qe(this), this.c != 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if (this.a == 123) {
+ c = 0, i = 0;
+ do {
+ if (Qe(this), this.c != 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if ((c = Pa(this.a)) < 0)
+ break;
+ if (i > i * 16)
+ throw T(new Ce(Pe((Ee(), Qqn))));
+ i = i * 16 + c;
+ } while (!0);
+ if (this.a != 125)
+ throw T(new Ce(Pe((Ee(), Jqn))));
+ if (i > H4)
+ throw T(new Ce(Pe((Ee(), Yqn))));
+ e = i;
+ } else {
+ if (c = 0, this.c != 0 || (c = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if (i = c, Qe(this), this.c != 0 || (c = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ i = i * 16 + c, e = i;
+ }
+ break;
+ case 117:
+ if (r = 0, Qe(this), this.c != 0 || (r = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if (t = r, Qe(this), this.c != 0 || (r = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if (t = t * 16 + r, Qe(this), this.c != 0 || (r = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if (t = t * 16 + r, Qe(this), this.c != 0 || (r = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ t = t * 16 + r, e = t;
+ break;
+ case 118:
+ if (Qe(this), this.c != 0 || (r = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if (t = r, Qe(this), this.c != 0 || (r = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if (t = t * 16 + r, Qe(this), this.c != 0 || (r = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if (t = t * 16 + r, Qe(this), this.c != 0 || (r = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if (t = t * 16 + r, Qe(this), this.c != 0 || (r = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if (t = t * 16 + r, Qe(this), this.c != 0 || (r = Pa(this.a)) < 0)
+ throw T(new Ce(Pe((Ee(), M1))));
+ if (t = t * 16 + r, t > H4)
+ throw T(new Ce(Pe((Ee(), "parser.descappe.4"))));
+ e = t;
+ break;
+ case 65:
+ case 90:
+ case 122:
+ throw T(new Ce(Pe((Ee(), Zqn))));
+ }
+ return e;
+ }, s.ul = function(e) {
+ var t, i;
+ switch (e) {
+ case 100:
+ i = (this.e & 32) == 32 ? jl("Nd", !0) : (Je(), fI);
+ break;
+ case 68:
+ i = (this.e & 32) == 32 ? jl("Nd", !1) : (Je(), K1n);
+ break;
+ case 119:
+ i = (this.e & 32) == 32 ? jl("IsWord", !0) : (Je(), Pv);
+ break;
+ case 87:
+ i = (this.e & 32) == 32 ? jl("IsWord", !1) : (Je(), q1n);
+ break;
+ case 115:
+ i = (this.e & 32) == 32 ? jl("IsSpace", !0) : (Je(), $p);
+ break;
+ case 83:
+ i = (this.e & 32) == 32 ? jl("IsSpace", !1) : (Je(), H1n);
+ break;
+ default:
+ throw T(new _r((t = e, ZGn + t.toString(16))));
+ }
+ return i;
+ }, s.vl = function(e) {
+ var t, i, r, c, o, f, h, l, a, d, g, p;
+ for (this.b = 1, Qe(this), t = null, this.c == 0 && this.a == 94 ? (Qe(this), e ? d = (Je(), Je(), new ns(5)) : (t = (Je(), Je(), new ns(4)), jc(t, 0, H4), d = new ns(4))) : d = (Je(), Je(), new ns(4)), c = !0; (p = this.c) != 1 && !(p == 0 && this.a == 93 && !c); ) {
+ if (c = !1, i = this.a, r = !1, p == 10)
+ switch (i) {
+ case 100:
+ case 68:
+ case 119:
+ case 87:
+ case 115:
+ case 83:
+ Sb(d, this.ul(i)), r = !0;
+ break;
+ case 105:
+ case 73:
+ case 99:
+ case 67:
+ i = this.Ll(d, i), i < 0 && (r = !0);
+ break;
+ case 112:
+ case 80:
+ if (g = mY(this, i), !g)
+ throw T(new Ce(Pe((Ee(), KB))));
+ Sb(d, g), r = !0;
+ break;
+ default:
+ i = this.tl();
+ }
+ else if (p == 20) {
+ if (f = c3(this.i, 58, this.d), f < 0)
+ throw T(new Ce(Pe((Ee(), qtn))));
+ if (h = !0, Di(this.i, this.d) == 94 && (++this.d, h = !1), o = Yu(this.i, this.d, f), l = lPn(o, h, (this.e & 512) == 512), !l)
+ throw T(new Ce(Pe((Ee(), zqn))));
+ if (Sb(d, l), r = !0, f + 1 >= this.j || Di(this.i, f + 1) != 93)
+ throw T(new Ce(Pe((Ee(), qtn))));
+ this.d = f + 2;
+ }
+ if (Qe(this), !r)
+ if (this.c != 0 || this.a != 45)
+ jc(d, i, i);
+ else {
+ if (Qe(this), (p = this.c) == 1)
+ throw T(new Ce(Pe((Ee(), jA))));
+ p == 0 && this.a == 93 ? (jc(d, i, i), jc(d, 45, 45)) : (a = this.a, p == 10 && (a = this.tl()), Qe(this), jc(d, i, a));
+ }
+ (this.e & Eo) == Eo && this.c == 0 && this.a == 44 && Qe(this);
+ }
+ if (this.c == 1)
+ throw T(new Ce(Pe((Ee(), jA))));
+ return t && (F6(t, d), d = t), Jw(d), D6(d), this.b = 0, Qe(this), d;
+ }, s.wl = function() {
+ var e, t, i, r;
+ for (i = this.vl(!1); (r = this.c) != 7; )
+ if (e = this.a, r == 0 && (e == 45 || e == 38) || r == 4) {
+ if (Qe(this), this.c != 9)
+ throw T(new Ce(Pe((Ee(), Wqn))));
+ if (t = this.vl(!1), r == 4)
+ Sb(i, t);
+ else if (e == 45)
+ F6(i, t);
+ else if (e == 38)
+ URn(i, t);
+ else
+ throw T(new _r("ASSERT"));
+ } else
+ throw T(new Ce(Pe((Ee(), Xqn))));
+ return Qe(this), i;
+ }, s.xl = function() {
+ var e, t;
+ return e = this.a - 48, t = (Je(), Je(), new e$(12, null, e)), !this.g && (this.g = new lj()), hj(this.g, new Nq(e)), Qe(this), t;
+ }, s.yl = function() {
+ return Qe(this), Je(), Oee;
+ }, s.zl = function() {
+ return Qe(this), Je(), Iee;
+ }, s.Al = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Bl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Cl = function() {
+ return Qe(this), xwe();
+ }, s.Dl = function() {
+ return Qe(this), Je(), $ee;
+ }, s.El = function() {
+ return Qe(this), Je(), xee;
+ }, s.Fl = function() {
+ var e;
+ if (this.d >= this.j || ((e = Di(this.i, this.d++)) & 65504) != 64)
+ throw T(new Ce(Pe((Ee(), Hqn))));
+ return Qe(this), Je(), Je(), new th(0, e - 64);
+ }, s.Gl = function() {
+ return Qe(this), vye();
+ }, s.Hl = function() {
+ return Qe(this), Je(), Lee;
+ }, s.Il = function() {
+ var e;
+ return e = (Je(), Je(), new th(0, 105)), Qe(this), e;
+ }, s.Jl = function() {
+ return Qe(this), Je(), Fee;
+ }, s.Kl = function() {
+ return Qe(this), Je(), Dee;
+ }, s.Ll = function(e, t) {
+ return this.tl();
+ }, s.Ml = function() {
+ return Qe(this), Je(), R1n;
+ }, s.Nl = function() {
+ var e, t, i, r, c;
+ if (this.d + 1 >= this.j)
+ throw T(new Ce(Pe((Ee(), Rqn))));
+ if (r = -1, t = null, e = Di(this.i, this.d), 49 <= e && e <= 57) {
+ if (r = e - 48, !this.g && (this.g = new lj()), hj(this.g, new Nq(r)), ++this.d, Di(this.i, this.d) != 41)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ ++this.d;
+ } else
+ switch (e == 63 && --this.d, Qe(this), t = HZ(this), t.e) {
+ case 20:
+ case 21:
+ case 22:
+ case 23:
+ break;
+ case 8:
+ if (this.c != 7)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ break;
+ default:
+ throw T(new Ce(Pe((Ee(), _qn))));
+ }
+ if (Qe(this), c = Xd(this), i = null, c.e == 2) {
+ if (c.em() != 2)
+ throw T(new Ce(Pe((Ee(), Kqn))));
+ i = c.am(1), c = c.am(0);
+ }
+ if (this.c != 7)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ return Qe(this), Je(), Je(), new qPn(r, t, c, i);
+ }, s.Ol = function() {
+ return Qe(this), Je(), _1n;
+ }, s.Pl = function() {
+ var e;
+ if (Qe(this), e = UE(24, Xd(this)), this.c != 7)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ return Qe(this), e;
+ }, s.Ql = function() {
+ var e;
+ if (Qe(this), e = UE(20, Xd(this)), this.c != 7)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ return Qe(this), e;
+ }, s.Rl = function() {
+ var e;
+ if (Qe(this), e = UE(22, Xd(this)), this.c != 7)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ return Qe(this), e;
+ }, s.Sl = function() {
+ var e, t, i, r, c;
+ for (e = 0, i = 0, t = -1; this.d < this.j && (t = Di(this.i, this.d), c = CY(t), c != 0); )
+ e |= c, ++this.d;
+ if (this.d >= this.j)
+ throw T(new Ce(Pe((Ee(), Ktn))));
+ if (t == 45) {
+ for (++this.d; this.d < this.j && (t = Di(this.i, this.d), c = CY(t), c != 0); )
+ i |= c, ++this.d;
+ if (this.d >= this.j)
+ throw T(new Ce(Pe((Ee(), Ktn))));
+ }
+ if (t == 58) {
+ if (++this.d, Qe(this), r = XCn(Xd(this), e, i), this.c != 7)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ Qe(this);
+ } else if (t == 41)
+ ++this.d, Qe(this), r = XCn(Xd(this), e, i);
+ else
+ throw T(new Ce(Pe((Ee(), Bqn))));
+ return r;
+ }, s.Tl = function() {
+ var e;
+ if (Qe(this), e = UE(21, Xd(this)), this.c != 7)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ return Qe(this), e;
+ }, s.Ul = function() {
+ var e;
+ if (Qe(this), e = UE(23, Xd(this)), this.c != 7)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ return Qe(this), e;
+ }, s.Vl = function() {
+ var e, t;
+ if (Qe(this), e = this.f++, t = SD(Xd(this), e), this.c != 7)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ return Qe(this), t;
+ }, s.Wl = function() {
+ var e;
+ if (Qe(this), e = SD(Xd(this), 0), this.c != 7)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ return Qe(this), e;
+ }, s.Xl = function(e) {
+ return Qe(this), this.c == 5 ? (Qe(this), LE(e, (Je(), Je(), new rb(9, e)))) : LE(e, (Je(), Je(), new rb(3, e)));
+ }, s.Yl = function(e) {
+ var t;
+ return Qe(this), t = (Je(), Je(), new v5(2)), this.c == 5 ? (Qe(this), Da(t, k9), Da(t, e)) : (Da(t, e), Da(t, k9)), t;
+ }, s.Zl = function(e) {
+ return Qe(this), this.c == 5 ? (Qe(this), Je(), Je(), new rb(9, e)) : (Je(), Je(), new rb(3, e));
+ }, s.a = 0, s.b = 0, s.c = 0, s.d = 0, s.e = 0, s.f = 1, s.g = null, s.j = 0, w(A1, "RegEx/RegexParser", 820), b(1824, 820, {}, M9n), s.sl = function(e) {
+ return !1;
+ }, s.tl = function() {
+ return ZY(this);
+ }, s.ul = function(e) {
+ return p4(e);
+ }, s.vl = function(e) {
+ return B_n(this);
+ }, s.wl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.xl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.yl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.zl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Al = function() {
+ return Qe(this), p4(67);
+ }, s.Bl = function() {
+ return Qe(this), p4(73);
+ }, s.Cl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Dl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.El = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Fl = function() {
+ return Qe(this), p4(99);
+ }, s.Gl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Hl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Il = function() {
+ return Qe(this), p4(105);
+ }, s.Jl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Kl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Ll = function(e, t) {
+ return Sb(e, p4(t)), -1;
+ }, s.Ml = function() {
+ return Qe(this), Je(), Je(), new th(0, 94);
+ }, s.Nl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Ol = function() {
+ return Qe(this), Je(), Je(), new th(0, 36);
+ }, s.Pl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Ql = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Rl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Sl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Tl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Ul = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Vl = function() {
+ var e;
+ if (Qe(this), e = SD(Xd(this), 0), this.c != 7)
+ throw T(new Ce(Pe((Ee(), Ka))));
+ return Qe(this), e;
+ }, s.Wl = function() {
+ throw T(new Ce(Pe((Ee(), Is))));
+ }, s.Xl = function(e) {
+ return Qe(this), LE(e, (Je(), Je(), new rb(3, e)));
+ }, s.Yl = function(e) {
+ var t;
+ return Qe(this), t = (Je(), Je(), new v5(2)), Da(t, e), Da(t, k9), t;
+ }, s.Zl = function(e) {
+ return Qe(this), Je(), Je(), new rb(3, e);
+ };
+ var Ug = null, Av = null;
+ w(A1, "RegEx/ParserForXMLSchema", 1824), b(117, 1, q4, ud), s.$l = function(e) {
+ throw T(new _r("Not supported."));
+ }, s._l = function() {
+ return -1;
+ }, s.am = function(e) {
+ return null;
+ }, s.bm = function() {
+ return null;
+ }, s.cm = function(e) {
+ }, s.dm = function(e) {
+ }, s.em = function() {
+ return 0;
+ }, s.Ib = function() {
+ return this.fm(0);
+ }, s.fm = function(e) {
+ return this.e == 11 ? "." : "";
+ }, s.e = 0;
+ var L1n, Sv, m9, Pee, N1n, dw = null, fI, jH = null, B1n, k9, EH = null, R1n, _1n, K1n, H1n, q1n, Iee, $p, Oee, Dee, $ee, Fee, Pv, xee, Lee, aMe = w(A1, "RegEx/Token", 117);
+ b(136, 117, { 3: 1, 136: 1, 117: 1 }, ns), s.fm = function(e) {
+ var t, i, r;
+ if (this.e == 4)
+ if (this == B1n)
+ i = ".";
+ else if (this == fI)
+ i = "\\d";
+ else if (this == Pv)
+ i = "\\w";
+ else if (this == $p)
+ i = "\\s";
+ else {
+ for (r = new i1(), r.a += "[", t = 0; t < this.b.length; t += 2)
+ e & Eo && t > 0 && (r.a += ","), this.b[t] === this.b[t + 1] ? dr(r, U7(this.b[t])) : (dr(r, U7(this.b[t])), r.a += "-", dr(r, U7(this.b[t + 1])));
+ r.a += "]", i = r.a;
+ }
+ else if (this == K1n)
+ i = "\\D";
+ else if (this == q1n)
+ i = "\\W";
+ else if (this == H1n)
+ i = "\\S";
+ else {
+ for (r = new i1(), r.a += "[^", t = 0; t < this.b.length; t += 2)
+ e & Eo && t > 0 && (r.a += ","), this.b[t] === this.b[t + 1] ? dr(r, U7(this.b[t])) : (dr(r, U7(this.b[t])), r.a += "-", dr(r, U7(this.b[t + 1])));
+ r.a += "]", i = r.a;
+ }
+ return i;
+ }, s.a = !1, s.c = !1, w(A1, "RegEx/RangeToken", 136), b(584, 1, { 584: 1 }, Nq), s.a = 0, w(A1, "RegEx/RegexParser/ReferencePosition", 584), b(583, 1, { 3: 1, 583: 1 }, N8n), s.Fb = function(e) {
+ var t;
+ return e == null || !I(e, 583) ? !1 : (t = u(e, 583), An(this.b, t.b) && this.a == t.a);
+ }, s.Hb = function() {
+ return m1(this.b + "/" + WY(this.a));
+ }, s.Ib = function() {
+ return this.c.fm(this.a);
+ }, s.a = 0, w(A1, "RegEx/RegularExpression", 583), b(223, 117, q4, th), s._l = function() {
+ return this.a;
+ }, s.fm = function(e) {
+ var t, i, r;
+ switch (this.e) {
+ case 0:
+ switch (this.a) {
+ case 124:
+ case 42:
+ case 43:
+ case 63:
+ case 40:
+ case 41:
+ case 46:
+ case 91:
+ case 123:
+ case 92:
+ r = "\\" + eD(this.a & Wt);
+ break;
+ case 12:
+ r = "\\f";
+ break;
+ case 10:
+ r = "\\n";
+ break;
+ case 13:
+ r = "\\r";
+ break;
+ case 9:
+ r = "\\t";
+ break;
+ case 27:
+ r = "\\e";
+ break;
+ default:
+ this.a >= Ji ? (i = (t = this.a >>> 0, "0" + t.toString(16)), r = "\\v" + Yu(i, i.length - 6, i.length)) : r = "" + eD(this.a & Wt);
+ }
+ break;
+ case 8:
+ this == R1n || this == _1n ? r = "" + eD(this.a & Wt) : r = "\\" + eD(this.a & Wt);
+ break;
+ default:
+ r = null;
+ }
+ return r;
+ }, s.a = 0, w(A1, "RegEx/Token/CharToken", 223), b(309, 117, q4, rb), s.am = function(e) {
+ return this.a;
+ }, s.cm = function(e) {
+ this.b = e;
+ }, s.dm = function(e) {
+ this.c = e;
+ }, s.em = function() {
+ return 1;
+ }, s.fm = function(e) {
+ var t;
+ if (this.e == 3)
+ if (this.c < 0 && this.b < 0)
+ t = this.a.fm(e) + "*";
+ else if (this.c == this.b)
+ t = this.a.fm(e) + "{" + this.c + "}";
+ else if (this.c >= 0 && this.b >= 0)
+ t = this.a.fm(e) + "{" + this.c + "," + this.b + "}";
+ else if (this.c >= 0 && this.b < 0)
+ t = this.a.fm(e) + "{" + this.c + ",}";
+ else
+ throw T(new _r("Token#toString(): CLOSURE " + this.c + Qi + this.b));
+ else if (this.c < 0 && this.b < 0)
+ t = this.a.fm(e) + "*?";
+ else if (this.c == this.b)
+ t = this.a.fm(e) + "{" + this.c + "}?";
+ else if (this.c >= 0 && this.b >= 0)
+ t = this.a.fm(e) + "{" + this.c + "," + this.b + "}?";
+ else if (this.c >= 0 && this.b < 0)
+ t = this.a.fm(e) + "{" + this.c + ",}?";
+ else
+ throw T(new _r("Token#toString(): NONGREEDYCLOSURE " + this.c + Qi + this.b));
+ return t;
+ }, s.b = 0, s.c = 0, w(A1, "RegEx/Token/ClosureToken", 309), b(821, 117, q4, PW), s.am = function(e) {
+ return e == 0 ? this.a : this.b;
+ }, s.em = function() {
+ return 2;
+ }, s.fm = function(e) {
+ var t;
+ return this.b.e == 3 && this.b.am(0) == this.a ? t = this.a.fm(e) + "+" : this.b.e == 9 && this.b.am(0) == this.a ? t = this.a.fm(e) + "+?" : t = this.a.fm(e) + ("" + this.b.fm(e)), t;
+ }, w(A1, "RegEx/Token/ConcatToken", 821), b(1822, 117, q4, qPn), s.am = function(e) {
+ if (e == 0)
+ return this.d;
+ if (e == 1)
+ return this.b;
+ throw T(new _r("Internal Error: " + e));
+ }, s.em = function() {
+ return this.b ? 2 : 1;
+ }, s.fm = function(e) {
+ var t;
+ return this.c > 0 ? t = "(?(" + this.c + ")" : this.a.e == 8 ? t = "(?(" + this.a + ")" : t = "(?" + this.a, this.b ? t += this.d + "|" + this.b + ")" : t += this.d + ")", t;
+ }, s.c = 0, w(A1, "RegEx/Token/ConditionToken", 1822), b(1823, 117, q4, qMn), s.am = function(e) {
+ return this.b;
+ }, s.em = function() {
+ return 1;
+ }, s.fm = function(e) {
+ return "(?" + (this.a == 0 ? "" : WY(this.a)) + (this.c == 0 ? "" : WY(this.c)) + ":" + this.b.fm(e) + ")";
+ }, s.a = 0, s.c = 0, w(A1, "RegEx/Token/ModifierToken", 1823), b(822, 117, q4, xW), s.am = function(e) {
+ return this.a;
+ }, s.em = function() {
+ return 1;
+ }, s.fm = function(e) {
+ var t;
+ switch (t = null, this.e) {
+ case 6:
+ this.b == 0 ? t = "(?:" + this.a.fm(e) + ")" : t = "(" + this.a.fm(e) + ")";
+ break;
+ case 20:
+ t = "(?=" + this.a.fm(e) + ")";
+ break;
+ case 21:
+ t = "(?!" + this.a.fm(e) + ")";
+ break;
+ case 22:
+ t = "(?<=" + this.a.fm(e) + ")";
+ break;
+ case 23:
+ t = "(?" + this.a.fm(e) + ")";
+ }
+ return t;
+ }, s.b = 0, w(A1, "RegEx/Token/ParenToken", 822), b(521, 117, { 3: 1, 117: 1, 521: 1 }, e$), s.bm = function() {
+ return this.b;
+ }, s.fm = function(e) {
+ return this.e == 12 ? "\\" + this.a : Mme(this.b);
+ }, s.a = 0, w(A1, "RegEx/Token/StringToken", 521), b(465, 117, q4, v5), s.$l = function(e) {
+ Da(this, e);
+ }, s.am = function(e) {
+ return u(Ad(this.a, e), 117);
+ }, s.em = function() {
+ return this.a ? this.a.a.c.length : 0;
+ }, s.fm = function(e) {
+ var t, i, r, c, o;
+ if (this.e == 1) {
+ if (this.a.a.c.length == 2)
+ t = u(Ad(this.a, 0), 117), i = u(Ad(this.a, 1), 117), i.e == 3 && i.am(0) == t ? c = t.fm(e) + "+" : i.e == 9 && i.am(0) == t ? c = t.fm(e) + "+?" : c = t.fm(e) + ("" + i.fm(e));
+ else {
+ for (o = new i1(), r = 0; r < this.a.a.c.length; r++)
+ dr(o, u(Ad(this.a, r), 117).fm(e));
+ c = o.a;
+ }
+ return c;
+ }
+ if (this.a.a.c.length == 2 && u(Ad(this.a, 1), 117).e == 7)
+ c = u(Ad(this.a, 0), 117).fm(e) + "?";
+ else if (this.a.a.c.length == 2 && u(Ad(this.a, 0), 117).e == 7)
+ c = u(Ad(this.a, 1), 117).fm(e) + "??";
+ else {
+ for (o = new i1(), dr(o, u(Ad(this.a, 0), 117).fm(e)), r = 1; r < this.a.a.c.length; r++)
+ o.a += "|", dr(o, u(Ad(this.a, r), 117).fm(e));
+ c = o.a;
+ }
+ return c;
+ }, w(A1, "RegEx/Token/UnionToken", 465), b(518, 1, { 592: 1 }, L9), s.Ib = function() {
+ return this.a.b;
+ }, w(izn, "XMLTypeUtil/PatternMatcherImpl", 518), b(1622, 1381, {}, c4n);
+ var Nee;
+ w(izn, "XMLTypeValidator", 1622), b(264, 1, lh, ha), s.Jc = function(e) {
+ $i(this, e);
+ }, s.Kc = function() {
+ return (this.b - this.a) * this.c < 0 ? Ql : new il(this);
+ }, s.a = 0, s.b = 0, s.c = 0;
+ var Ql;
+ w(oin, "ExclusiveRange", 264), b(1068, 1, hh, u4n), s.Rb = function(e) {
+ u(e, 19), tce();
+ }, s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return Wie();
+ }, s.Ub = function() {
+ return Xie();
+ }, s.Wb = function(e) {
+ u(e, 19), rce();
+ }, s.Ob = function() {
+ return !1;
+ }, s.Sb = function() {
+ return !1;
+ }, s.Tb = function() {
+ return -1;
+ }, s.Vb = function() {
+ return -1;
+ }, s.Qb = function() {
+ throw T(new t1(uzn));
+ }, w(oin, "ExclusiveRange/1", 1068), b(254, 1, hh, il), s.Rb = function(e) {
+ u(e, 19), ice();
+ }, s.Nb = function(e) {
+ Oi(this, e);
+ }, s.Pb = function() {
+ return tge(this);
+ }, s.Ub = function() {
+ return Yde(this);
+ }, s.Wb = function(e) {
+ u(e, 19), cce();
+ }, s.Ob = function() {
+ return this.c.c < 0 ? this.a >= this.c.b : this.a <= this.c.b;
+ }, s.Sb = function() {
+ return this.b > 0;
+ }, s.Tb = function() {
+ return this.b;
+ }, s.Vb = function() {
+ return this.b - 1;
+ }, s.Qb = function() {
+ throw T(new t1(uzn));
+ }, s.a = 0, s.b = 0, w(oin, "ExclusiveRange/RangeIterator", 254);
+ var xs = w3(EA, "C"), be = w3(om, "I"), _u = w3(X2, "Z"), Jl = w3(fm, "J"), mu = w3(cm, "B"), Ci = w3(um, "D"), bw = w3(sm, "F"), Wg = w3(hm, "S"), dMe = Et("org.eclipse.elk.core.labels", "ILabelManager"), G1n = Et(zi, "DiagnosticChain"), z1n = Et(FGn, "ResourceSet"), U1n = w(zi, "InvocationTargetException", null), Bee = (gj(), rde), Ree = Ree = W4e;
+ Z0e(Ute), Tbe("permProps", [[[LA, NA], [BA, "gecko1_8"]], [[LA, NA], [BA, "ie10"]], [[LA, NA], [BA, "ie8"]], [[LA, NA], [BA, "ie9"]], [[LA, NA], [BA, "safari"]]]), Ree(null, "elk", null);
+ }).call(this);
+ }).call(this, typeof qee < "u" ? qee : typeof self < "u" ? self : typeof window < "u" ? window : {});
+ }, {}], 3: [function(ft, dt, Kt) {
+ function qt(Gt, Ue) {
+ if (!(Gt instanceof Ue))
+ throw new TypeError("Cannot call a class as a function");
+ }
+ function j(Gt, Ue) {
+ if (!Gt)
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+ return Ue && (typeof Ue == "object" || typeof Ue == "function") ? Ue : Gt;
+ }
+ function Ot(Gt, Ue) {
+ if (typeof Ue != "function" && Ue !== null)
+ throw new TypeError("Super expression must either be null or a function, not " + typeof Ue);
+ Gt.prototype = Object.create(Ue && Ue.prototype, { constructor: { value: Gt, enumerable: !1, writable: !0, configurable: !0 } }), Ue && (Object.setPrototypeOf ? Object.setPrototypeOf(Gt, Ue) : Gt.__proto__ = Ue);
+ }
+ var ku = ft("./elk-api.js").default, Dt = function(Gt) {
+ Ot(Ue, Gt);
+ function Ue() {
+ var ki = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
+ qt(this, Ue);
+ var nr = Object.assign({}, ki), Mn = !1;
+ try {
+ ft.resolve("web-worker"), Mn = !0;
+ } catch {
+ }
+ if (ki.workerUrl)
+ if (Mn) {
+ var ic = ft("web-worker");
+ nr.workerFactory = function(vr) {
+ return new ic(vr);
+ };
+ } else
+ console.warn(`Web worker requested but 'web-worker' package not installed.
+Consider installing the package or pass your own 'workerFactory' to ELK's constructor.
+... Falling back to non-web worker version.`);
+ if (!nr.workerFactory) {
+ var yu = ft("./elk-worker.min.js"), oo = yu.Worker;
+ nr.workerFactory = function(vr) {
+ return new oo(vr);
+ };
+ }
+ return j(this, (Ue.__proto__ || Object.getPrototypeOf(Ue)).call(this, nr));
+ }
+ return Ue;
+ }(ku);
+ Object.defineProperty(dt.exports, "__esModule", {
+ value: !0
+ }), dt.exports = Dt, Dt.default = Dt;
+ }, { "./elk-api.js": 1, "./elk-worker.min.js": 2, "web-worker": 4 }], 4: [function(ft, dt, Kt) {
+ dt.exports = Worker;
+ }, {}] }, {}, [3])(3);
+ });
+})(TMe);
+const MMe = /* @__PURE__ */ gMe(Q1n), Gee = new MMe();
+let L0 = {};
+const AMe = {};
+let Lp = {};
+const SMe = function(ye, It, ft, dt, Kt, qt, j) {
+ const ku = ft.select(`[id="${It}"]`).insert("g").attr("class", "nodes");
+ return Object.keys(ye).forEach(function(Gt) {
+ const Ue = ye[Gt];
+ let ki = "default";
+ Ue.classes.length > 0 && (ki = Ue.classes.join(" ")), ki = ki + " flowchart-label";
+ const nr = V1n(Ue.styles);
+ let Mn = Ue.text !== void 0 ? Ue.text : Ue.id;
+ const ic = { width: 0, height: 0 }, yu = [
+ {
+ id: Ue.id + "-west",
+ layoutOptions: {
+ "port.side": "WEST"
+ }
+ },
+ {
+ id: Ue.id + "-east",
+ layoutOptions: {
+ "port.side": "EAST"
+ }
+ },
+ {
+ id: Ue.id + "-south",
+ layoutOptions: {
+ "port.side": "SOUTH"
+ }
+ },
+ {
+ id: Ue.id + "-north",
+ layoutOptions: {
+ "port.side": "NORTH"
+ }
+ }
+ ];
+ let oo = 0, vr = "", Yl = {};
+ switch (Ue.type) {
+ case "round":
+ oo = 5, vr = "rect";
+ break;
+ case "square":
+ vr = "rect";
+ break;
+ case "diamond":
+ vr = "question", Yl = {
+ portConstraints: "FIXED_SIDE"
+ };
+ break;
+ case "hexagon":
+ vr = "hexagon";
+ break;
+ case "odd":
+ vr = "rect_left_inv_arrow";
+ break;
+ case "lean_right":
+ vr = "lean_right";
+ break;
+ case "lean_left":
+ vr = "lean_left";
+ break;
+ case "trapezoid":
+ vr = "trapezoid";
+ break;
+ case "inv_trapezoid":
+ vr = "inv_trapezoid";
+ break;
+ case "odd_right":
+ vr = "rect_left_inv_arrow";
+ break;
+ case "circle":
+ vr = "circle";
+ break;
+ case "ellipse":
+ vr = "ellipse";
+ break;
+ case "stadium":
+ vr = "stadium";
+ break;
+ case "subroutine":
+ vr = "subroutine";
+ break;
+ case "cylinder":
+ vr = "cylinder";
+ break;
+ case "group":
+ vr = "rect";
+ break;
+ case "doublecircle":
+ vr = "doublecircle";
+ break;
+ default:
+ vr = "rect";
+ }
+ const H1 = {
+ labelStyle: nr.labelStyle,
+ shape: vr,
+ labelText: Mn,
+ labelType: Ue.labelType,
+ rx: oo,
+ ry: oo,
+ class: ki,
+ style: nr.style,
+ id: Ue.id,
+ link: Ue.link,
+ linkTarget: Ue.linkTarget,
+ tooltip: Kt.db.getTooltip(Ue.id) || "",
+ domId: Kt.db.lookUpDomId(Ue.id),
+ haveCallback: Ue.haveCallback,
+ width: Ue.type === "group" ? 500 : void 0,
+ dir: Ue.dir,
+ type: Ue.type,
+ props: Ue.props,
+ padding: OH().flowchart.padding
+ };
+ let e1, Zl;
+ if (H1.type !== "group")
+ Zl = mMe(ku, H1, Ue.dir), e1 = Zl.node().getBBox();
+ else {
+ dt.createElementNS("http://www.w3.org/2000/svg", "text");
+ const { shapeSvg: q1, bbox: Ch } = kMe(ku, H1, void 0, !0);
+ ic.width = Ch.width, ic.wrappingWidth = OH().flowchart.wrappingWidth, ic.height = Ch.height, ic.labelNode = q1.node(), H1.labelData = ic;
+ }
+ const Dv = {
+ id: Ue.id,
+ ports: Ue.type === "diamond" ? yu : [],
+ // labelStyle: styles.labelStyle,
+ // shape: _shape,
+ layoutOptions: Yl,
+ labelText: Mn,
+ labelData: ic,
+ // labels: [{ text: vertexText }],
+ // rx: radius,
+ // ry: radius,
+ // class: classStr,
+ // style: styles.style,
+ // link: vertex.link,
+ // linkTarget: vertex.linkTarget,
+ // tooltip: diagObj.db.getTooltip(vertex.id) || '',
+ domId: Kt.db.lookUpDomId(Ue.id),
+ // haveCallback: vertex.haveCallback,
+ width: e1 == null ? void 0 : e1.width,
+ height: e1 == null ? void 0 : e1.height,
+ // dir: vertex.dir,
+ type: Ue.type,
+ // props: vertex.props,
+ // padding: getConfig().flowchart.padding,
+ // boundingBox,
+ el: Zl,
+ parent: qt.parentById[Ue.id]
+ };
+ Lp[H1.id] = Dv;
+ }), j;
+}, zee = (ye, It, ft) => {
+ const dt = {
+ TB: {
+ in: {
+ north: "north"
+ },
+ out: {
+ south: "west",
+ west: "east",
+ east: "south"
+ }
+ },
+ LR: {
+ in: {
+ west: "west"
+ },
+ out: {
+ east: "south",
+ south: "north",
+ north: "east"
+ }
+ },
+ RL: {
+ in: {
+ east: "east"
+ },
+ out: {
+ west: "north",
+ north: "south",
+ south: "west"
+ }
+ },
+ BT: {
+ in: {
+ south: "south"
+ },
+ out: {
+ north: "east",
+ east: "west",
+ west: "north"
+ }
+ }
+ };
+ return dt.TD = dt.TB, K1.info("abc88", ft, It, ye), dt[ft][It][ye];
+}, Uee = (ye, It, ft) => {
+ if (K1.info("getNextPort abc88", { node: ye, edgeDirection: It, graphDirection: ft }), !L0[ye])
+ switch (ft) {
+ case "TB":
+ case "TD":
+ L0[ye] = {
+ inPosition: "north",
+ outPosition: "south"
+ };
+ break;
+ case "BT":
+ L0[ye] = {
+ inPosition: "south",
+ outPosition: "north"
+ };
+ break;
+ case "RL":
+ L0[ye] = {
+ inPosition: "east",
+ outPosition: "west"
+ };
+ break;
+ case "LR":
+ L0[ye] = {
+ inPosition: "west",
+ outPosition: "east"
+ };
+ break;
+ }
+ const dt = It === "in" ? L0[ye].inPosition : L0[ye].outPosition;
+ return It === "in" ? L0[ye].inPosition = zee(
+ L0[ye].inPosition,
+ It,
+ ft
+ ) : L0[ye].outPosition = zee(
+ L0[ye].outPosition,
+ It,
+ ft
+ ), dt;
+}, PMe = (ye, It) => {
+ let ft = ye.start, dt = ye.end;
+ const Kt = ft, qt = dt, j = Lp[ft], Ot = Lp[dt];
+ return !j || !Ot ? { source: ft, target: dt } : (j.type === "diamond" && (ft = `${ft}-${Uee(ft, "out", It)}`), Ot.type === "diamond" && (dt = `${dt}-${Uee(dt, "in", It)}`), { source: ft, target: dt, sourceId: Kt, targetId: qt });
+}, IMe = function(ye, It, ft, dt) {
+ K1.info("abc78 edges = ", ye);
+ const Kt = dt.insert("g").attr("class", "edgeLabels");
+ let qt = {}, j = It.db.getDirection(), Ot, ku;
+ if (ye.defaultStyle !== void 0) {
+ const Dt = V1n(ye.defaultStyle);
+ Ot = Dt.style, ku = Dt.labelStyle;
+ }
+ return ye.forEach(function(Dt) {
+ var Gt = "L-" + Dt.start + "-" + Dt.end;
+ qt[Gt] === void 0 ? (qt[Gt] = 0, K1.info("abc78 new entry", Gt, qt[Gt])) : (qt[Gt]++, K1.info("abc78 new entry", Gt, qt[Gt]));
+ let Ue = Gt + "-" + qt[Gt];
+ K1.info("abc78 new link id to be used is", Gt, Ue, qt[Gt]);
+ var ki = "LS-" + Dt.start, nr = "LE-" + Dt.end;
+ const Mn = { style: "", labelStyle: "" };
+ switch (Mn.minlen = Dt.length || 1, Dt.type === "arrow_open" ? Mn.arrowhead = "none" : Mn.arrowhead = "normal", Mn.arrowTypeStart = "arrow_open", Mn.arrowTypeEnd = "arrow_open", Dt.type) {
+ case "double_arrow_cross":
+ Mn.arrowTypeStart = "arrow_cross";
+ case "arrow_cross":
+ Mn.arrowTypeEnd = "arrow_cross";
+ break;
+ case "double_arrow_point":
+ Mn.arrowTypeStart = "arrow_point";
+ case "arrow_point":
+ Mn.arrowTypeEnd = "arrow_point";
+ break;
+ case "double_arrow_circle":
+ Mn.arrowTypeStart = "arrow_circle";
+ case "arrow_circle":
+ Mn.arrowTypeEnd = "arrow_circle";
+ break;
+ }
+ let ic = "", yu = "";
+ switch (Dt.stroke) {
+ case "normal":
+ ic = "fill:none;", Ot !== void 0 && (ic = Ot), ku !== void 0 && (yu = ku), Mn.thickness = "normal", Mn.pattern = "solid";
+ break;
+ case "dotted":
+ Mn.thickness = "normal", Mn.pattern = "dotted", Mn.style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
+ break;
+ case "thick":
+ Mn.thickness = "thick", Mn.pattern = "solid", Mn.style = "stroke-width: 3.5px;fill:none;";
+ break;
+ }
+ if (Dt.style !== void 0) {
+ const Zl = V1n(Dt.style);
+ ic = Zl.style, yu = Zl.labelStyle;
+ }
+ Mn.style = Mn.style += ic, Mn.labelStyle = Mn.labelStyle += yu, Dt.interpolate !== void 0 ? Mn.curve = X1n(Dt.interpolate, IH) : ye.defaultInterpolate !== void 0 ? Mn.curve = X1n(ye.defaultInterpolate, IH) : Mn.curve = X1n(AMe.curve, IH), Dt.text === void 0 ? Dt.style !== void 0 && (Mn.arrowheadStyle = "fill: #333") : (Mn.arrowheadStyle = "fill: #333", Mn.labelpos = "c"), Mn.labelType = Dt.labelType, Mn.label = Dt.text.replace(pMe.lineBreakRegex, `
+`), Dt.style === void 0 && (Mn.style = Mn.style || "stroke: #333; stroke-width: 1.5px;fill:none;"), Mn.labelStyle = Mn.labelStyle.replace("color:", "fill:"), Mn.id = Ue, Mn.classes = "flowchart-link " + ki + " " + nr;
+ const oo = yMe(Kt, Mn), { source: vr, target: Yl, sourceId: H1, targetId: e1 } = PMe(Dt, j);
+ K1.debug("abc78 source and target", vr, Yl), ft.edges.push({
+ id: "e" + Dt.start + Dt.end,
+ sources: [vr],
+ targets: [Yl],
+ sourceId: H1,
+ targetId: e1,
+ labelEl: oo,
+ labels: [
+ {
+ width: Mn.width,
+ height: Mn.height,
+ orgWidth: Mn.width,
+ orgHeight: Mn.height,
+ text: Mn.label,
+ layoutOptions: {
+ "edgeLabels.inline": "true",
+ "edgeLabels.placement": "CENTER"
+ }
+ }
+ ],
+ edgeData: Mn
+ });
+ }), ft;
+}, OMe = function(ye, It, ft, dt) {
+ let Kt = "";
+ switch (dt && (Kt = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, Kt = Kt.replace(/\(/g, "\\("), Kt = Kt.replace(/\)/g, "\\)")), It.arrowTypeStart) {
+ case "arrow_cross":
+ ye.attr("marker-start", "url(" + Kt + "#" + ft + "-crossStart)");
+ break;
+ case "arrow_point":
+ ye.attr("marker-start", "url(" + Kt + "#" + ft + "-pointStart)");
+ break;
+ case "arrow_barb":
+ ye.attr("marker-start", "url(" + Kt + "#" + ft + "-barbStart)");
+ break;
+ case "arrow_circle":
+ ye.attr("marker-start", "url(" + Kt + "#" + ft + "-circleStart)");
+ break;
+ case "aggregation":
+ ye.attr("marker-start", "url(" + Kt + "#" + ft + "-aggregationStart)");
+ break;
+ case "extension":
+ ye.attr("marker-start", "url(" + Kt + "#" + ft + "-extensionStart)");
+ break;
+ case "composition":
+ ye.attr("marker-start", "url(" + Kt + "#" + ft + "-compositionStart)");
+ break;
+ case "dependency":
+ ye.attr("marker-start", "url(" + Kt + "#" + ft + "-dependencyStart)");
+ break;
+ case "lollipop":
+ ye.attr("marker-start", "url(" + Kt + "#" + ft + "-lollipopStart)");
+ break;
+ }
+ switch (It.arrowTypeEnd) {
+ case "arrow_cross":
+ ye.attr("marker-end", "url(" + Kt + "#" + ft + "-crossEnd)");
+ break;
+ case "arrow_point":
+ ye.attr("marker-end", "url(" + Kt + "#" + ft + "-pointEnd)");
+ break;
+ case "arrow_barb":
+ ye.attr("marker-end", "url(" + Kt + "#" + ft + "-barbEnd)");
+ break;
+ case "arrow_circle":
+ ye.attr("marker-end", "url(" + Kt + "#" + ft + "-circleEnd)");
+ break;
+ case "aggregation":
+ ye.attr("marker-end", "url(" + Kt + "#" + ft + "-aggregationEnd)");
+ break;
+ case "extension":
+ ye.attr("marker-end", "url(" + Kt + "#" + ft + "-extensionEnd)");
+ break;
+ case "composition":
+ ye.attr("marker-end", "url(" + Kt + "#" + ft + "-compositionEnd)");
+ break;
+ case "dependency":
+ ye.attr("marker-end", "url(" + Kt + "#" + ft + "-dependencyEnd)");
+ break;
+ case "lollipop":
+ ye.attr("marker-end", "url(" + Kt + "#" + ft + "-lollipopEnd)");
+ break;
+ }
+}, DMe = function(ye, It) {
+ K1.info("Extracting classes"), It.db.clear("ver-2");
+ try {
+ return It.parse(ye), It.db.getClasses();
+ } catch {
+ return {};
+ }
+}, $Me = function(ye) {
+ const It = { parentById: {}, childrenById: {} }, ft = ye.getSubGraphs();
+ return K1.info("Subgraphs - ", ft), ft.forEach(function(dt) {
+ dt.nodes.forEach(function(Kt) {
+ It.parentById[Kt] = dt.id, It.childrenById[dt.id] === void 0 && (It.childrenById[dt.id] = []), It.childrenById[dt.id].push(Kt);
+ });
+ }), ft.forEach(function(dt) {
+ dt.id, It.parentById[dt.id] !== void 0 && It.parentById[dt.id];
+ }), It;
+}, FMe = function(ye, It, ft) {
+ const dt = CMe(ye, It, ft);
+ if (dt === void 0 || dt === "root")
+ return { x: 0, y: 0 };
+ const Kt = Lp[dt].offset;
+ return { x: Kt.posX, y: Kt.posY };
+}, xMe = function(ye, It, ft, dt, Kt) {
+ const qt = FMe(It.sourceId, It.targetId, Kt), j = It.sections[0].startPoint, Ot = It.sections[0].endPoint, Dt = (It.sections[0].bendPoints ? It.sections[0].bendPoints : []).map((yu) => [yu.x + qt.x, yu.y + qt.y]), Gt = [
+ [j.x + qt.x, j.y + qt.y],
+ ...Dt,
+ [Ot.x + qt.x, Ot.y + qt.y]
+ ], Ue = EMe().curve(IH), ki = ye.insert("path").attr("d", Ue(Gt)).attr("class", "path").attr("fill", "none"), nr = ye.insert("g").attr("class", "edgeLabel"), Mn = lI(nr.node().appendChild(It.labelEl)), ic = Mn.node().firstChild.getBoundingClientRect();
+ Mn.attr("width", ic.width), Mn.attr("height", ic.height), nr.attr(
+ "transform",
+ `translate(${It.labels[0].x + qt.x}, ${It.labels[0].y + qt.y})`
+ ), OMe(ki, ft, dt.type, dt.arrowMarkerAbsolute);
+}, Wee = (ye, It) => {
+ ye.forEach((ft) => {
+ ft.children || (ft.children = []);
+ const dt = It.childrenById[ft.id];
+ dt && dt.forEach((Kt) => {
+ ft.children.push(Lp[Kt]);
+ }), Wee(ft.children, It);
+ });
+}, LMe = async function(ye, It, ft, dt) {
+ var Dv;
+ dt.db.clear(), Lp = {}, L0 = {}, dt.db.setGen("gen-2"), dt.parser.parse(ye);
+ const Kt = lI("body").append("div").attr("style", "height:400px").attr("id", "cy");
+ let qt = {
+ id: "root",
+ layoutOptions: {
+ "elk.hierarchyHandling": "INCLUDE_CHILDREN",
+ "org.eclipse.elk.padding": "[top=100, left=100, bottom=110, right=110]",
+ "elk.layered.spacing.edgeNodeBetweenLayers": "30",
+ // 'elk.layered.mergeEdges': 'true',
+ "elk.direction": "DOWN"
+ // 'elk.ports.sameLayerEdges': true,
+ // 'nodePlacement.strategy': 'SIMPLE',
+ },
+ children: [],
+ edges: []
+ };
+ switch (K1.info("Drawing flowchart using v3 renderer", Gee), dt.db.getDirection()) {
+ case "BT":
+ qt.layoutOptions["elk.direction"] = "UP";
+ break;
+ case "TB":
+ qt.layoutOptions["elk.direction"] = "DOWN";
+ break;
+ case "LR":
+ qt.layoutOptions["elk.direction"] = "RIGHT";
+ break;
+ case "RL":
+ qt.layoutOptions["elk.direction"] = "LEFT";
+ break;
+ }
+ const { securityLevel: Ot, flowchart: ku } = OH();
+ let Dt;
+ Ot === "sandbox" && (Dt = lI("#i" + It));
+ const Gt = Ot === "sandbox" ? lI(Dt.nodes()[0].contentDocument.body) : lI("body"), Ue = Ot === "sandbox" ? Dt.nodes()[0].contentDocument : document, ki = Gt.select(`[id="${It}"]`);
+ vMe(ki, ["point", "circle", "cross"], dt.type, dt.arrowMarkerAbsolute);
+ const Mn = dt.db.getVertices();
+ let ic;
+ const yu = dt.db.getSubGraphs();
+ K1.info("Subgraphs - ", yu);
+ for (let q1 = yu.length - 1; q1 >= 0; q1--)
+ ic = yu[q1], dt.db.addVertex(
+ ic.id,
+ { text: ic.title, type: ic.labelType },
+ "group",
+ void 0,
+ ic.classes,
+ ic.dir
+ );
+ const oo = ki.insert("g").attr("class", "subgraphs"), vr = $Me(dt.db);
+ qt = SMe(Mn, It, Gt, Ue, dt, vr, qt);
+ const Yl = ki.insert("g").attr("class", "edges edgePath"), H1 = dt.db.getEdges();
+ qt = IMe(H1, dt, qt, ki), Object.keys(Lp).forEach((q1) => {
+ const Ch = Lp[q1];
+ Ch.parent || qt.children.push(Ch), vr.childrenById[q1] !== void 0 && (Ch.labels = [
+ {
+ text: Ch.labelText,
+ layoutOptions: {
+ "nodeLabels.placement": "[H_CENTER, V_TOP, INSIDE]"
+ },
+ width: Ch.labelData.width,
+ height: Ch.labelData.height
+ // width: 100,
+ // height: 100,
+ }
+ ], delete Ch.x, delete Ch.y, delete Ch.width, delete Ch.height);
+ }), Wee(qt.children, vr), K1.info("after layout", JSON.stringify(qt, null, 2));
+ const Zl = await Gee.layout(qt);
+ Xee(0, 0, Zl.children, ki, oo, dt, 0), K1.info("after layout", Zl), (Dv = Zl.edges) == null || Dv.map((q1) => {
+ xMe(Yl, q1, q1.edgeData, dt, vr);
+ }), jMe({}, ki, ku.diagramPadding, ku.useMaxWidth), Kt.remove();
+}, Xee = (ye, It, ft, dt, Kt, qt, j) => {
+ ft.forEach(function(Ot) {
+ if (Ot)
+ if (Lp[Ot.id].offset = {
+ posX: Ot.x + ye,
+ posY: Ot.y + It,
+ x: ye,
+ y: It,
+ depth: j,
+ width: Ot.width,
+ height: Ot.height
+ }, Ot.type === "group") {
+ const ku = Kt.insert("g").attr("class", "subgraph");
+ ku.insert("rect").attr("class", "subgraph subgraph-lvl-" + j % 5 + " node").attr("x", Ot.x + ye).attr("y", Ot.y + It).attr("width", Ot.width).attr("height", Ot.height);
+ const Dt = ku.insert("g").attr("class", "label"), Gt = OH().flowchart.htmlLabels ? Ot.labelData.width / 2 : 0;
+ Dt.attr(
+ "transform",
+ `translate(${Ot.labels[0].x + ye + Ot.x + Gt}, ${Ot.labels[0].y + It + Ot.y + 3})`
+ ), Dt.node().appendChild(Ot.labelData.labelNode), K1.info("Id (UGH)= ", Ot.type, Ot.labels);
+ } else
+ K1.info("Id (UGH)= ", Ot.id), Ot.el.attr(
+ "transform",
+ `translate(${Ot.x + ye + Ot.width / 2}, ${Ot.y + It + Ot.height / 2})`
+ );
+ }), ft.forEach(function(Ot) {
+ Ot && Ot.type === "group" && Xee(ye + Ot.x, It + Ot.y, Ot.children, dt, Kt, qt, j + 1);
+ });
+}, NMe = {
+ getClasses: DMe,
+ draw: LMe
+}, BMe = (ye) => {
+ let It = "";
+ for (let ft = 0; ft < 5; ft++)
+ It += `
+ .subgraph-lvl-${ft} {
+ fill: ${ye[`surface${ft}`]};
+ stroke: ${ye[`surfacePeer${ft}`]};
+ }
+ `;
+ return It;
+}, RMe = (ye) => `.label {
+ font-family: ${ye.fontFamily};
+ color: ${ye.nodeTextColor || ye.textColor};
+ }
+ .cluster-label text {
+ fill: ${ye.titleColor};
+ }
+ .cluster-label span {
+ color: ${ye.titleColor};
+ }
+
+ .label text,span {
+ fill: ${ye.nodeTextColor || ye.textColor};
+ color: ${ye.nodeTextColor || ye.textColor};
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${ye.mainBkg};
+ stroke: ${ye.nodeBorder};
+ stroke-width: 1px;
+ }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${ye.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${ye.lineColor};
+ stroke-width: 2.0px;
+ }
+
+ .flowchart-link {
+ stroke: ${ye.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${ye.edgeLabelBackground};
+ rect {
+ opacity: 0.85;
+ background-color: ${ye.edgeLabelBackground};
+ fill: ${ye.edgeLabelBackground};
+ }
+ text-align: center;
+ }
+
+ .cluster rect {
+ fill: ${ye.clusterBkg};
+ stroke: ${ye.clusterBorder};
+ stroke-width: 1px;
+ }
+
+ .cluster text {
+ fill: ${ye.titleColor};
+ }
+
+ .cluster span {
+ color: ${ye.titleColor};
+ }
+ /* .cluster div {
+ color: ${ye.titleColor};
+ } */
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: ${ye.fontFamily};
+ font-size: 12px;
+ background: ${ye.tertiaryColor};
+ border: 1px solid ${ye.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .flowchartTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${ye.textColor};
+ }
+ .subgraph {
+ stroke-width:2;
+ rx:3;
+ }
+ // .subgraph-lvl-1 {
+ // fill:#ccc;
+ // // stroke:black;
+ // }
+
+ .flowchart-label text {
+ text-anchor: middle;
+ }
+
+ ${BMe(ye)}
+`, _Me = RMe, JMe = {
+ db: bMe,
+ renderer: NMe,
+ parser: wMe,
+ styles: _Me
+};
+export {
+ JMe as diagram
+};
+//# sourceMappingURL=flowchart-elk-definition-55d9b0bb.js.map
diff --git a/scopegraphs-render-docs/doc/js/flowchart-elk-definition-859d9cf8.js b/scopegraphs-render-docs/doc/js/flowchart-elk-definition-859d9cf8.js
new file mode 100644
index 0000000..a23f431
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowchart-elk-definition-859d9cf8.js
@@ -0,0 +1,89664 @@
+import { d as db, p as parser } from "./flowDb-bb61b53c.js";
+import { P as commonjsGlobal, T as getDefaultExportFromCjs, l as log, h as select, g as getConfig, f as common } from "./commonDb-89160e91.js";
+import { a as insertMarkers, e as insertNode, l as labelHelper, f as insertEdgeLabel } from "./edges-17d4be60.js";
+import { B as setupGraphViewbox, z as getStylesFromArray, A as interpolateToCurve, y as curveLinear } from "./utils-1aebe9b6.js";
+import { l as line } from "./line-fbe8f138.js";
+import "./mermaidAPI-c841a67f.js";
+import "./createText-b0d5c0ec.js";
+import "./svgDraw-dd61ddfa.js";
+import "./array-b7dcf730.js";
+import "./constant-b644328d.js";
+const findCommonAncestor = (id1, id2, treeData) => {
+ const { parentById } = treeData;
+ const visited = /* @__PURE__ */ new Set();
+ let currentId = id1;
+ while (currentId) {
+ visited.add(currentId);
+ if (currentId === id2) {
+ return currentId;
+ }
+ currentId = parentById[currentId];
+ }
+ currentId = id2;
+ while (currentId) {
+ if (visited.has(currentId)) {
+ return currentId;
+ }
+ currentId = parentById[currentId];
+ }
+ return "root";
+};
+function commonjsRequire(path) {
+ throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
+}
+var elk_bundledExports = {};
+var elk_bundled = {
+ get exports() {
+ return elk_bundledExports;
+ },
+ set exports(v) {
+ elk_bundledExports = v;
+ }
+};
+(function(module, exports) {
+ (function(f) {
+ {
+ module.exports = f();
+ }
+ })(function() {
+ return function() {
+ function r(e, n, t) {
+ function o(i2, f) {
+ if (!n[i2]) {
+ if (!e[i2]) {
+ var c = "function" == typeof commonjsRequire && commonjsRequire;
+ if (!f && c)
+ return c(i2, true);
+ if (u)
+ return u(i2, true);
+ var a = new Error("Cannot find module '" + i2 + "'");
+ throw a.code = "MODULE_NOT_FOUND", a;
+ }
+ var p = n[i2] = { exports: {} };
+ e[i2][0].call(p.exports, function(r2) {
+ var n2 = e[i2][1][r2];
+ return o(n2 || r2);
+ }, p, p.exports, r, e, n, t);
+ }
+ return n[i2].exports;
+ }
+ for (var u = "function" == typeof commonjsRequire && commonjsRequire, i = 0; i < t.length; i++)
+ o(t[i]);
+ return o;
+ }
+ return r;
+ }()({ 1: [function(require2, module2, exports2) {
+ Object.defineProperty(exports2, "__esModule", {
+ value: true
+ });
+ var _createClass = function() {
+ function defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor)
+ descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+ return function(Constructor, protoProps, staticProps) {
+ if (protoProps)
+ defineProperties(Constructor.prototype, protoProps);
+ if (staticProps)
+ defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+ var ELK2 = function() {
+ function ELK3() {
+ var _this = this;
+ var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, defaultLayoutOptions = _ref$defaultLayoutOpt === void 0 ? {} : _ref$defaultLayoutOpt, _ref$algorithms = _ref.algorithms, algorithms = _ref$algorithms === void 0 ? ["layered", "stress", "mrtree", "radial", "force", "disco", "sporeOverlap", "sporeCompaction", "rectpacking"] : _ref$algorithms, workerFactory = _ref.workerFactory, workerUrl = _ref.workerUrl;
+ _classCallCheck(this, ELK3);
+ this.defaultLayoutOptions = defaultLayoutOptions;
+ this.initialized = false;
+ if (typeof workerUrl === "undefined" && typeof workerFactory === "undefined") {
+ throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");
+ }
+ var factory = workerFactory;
+ if (typeof workerUrl !== "undefined" && typeof workerFactory === "undefined") {
+ factory = function factory2(url) {
+ return new Worker(url);
+ };
+ }
+ var worker = factory(workerUrl);
+ if (typeof worker.postMessage !== "function") {
+ throw new TypeError("Created worker does not provide the required 'postMessage' function.");
+ }
+ this.worker = new PromisedWorker(worker);
+ this.worker.postMessage({
+ cmd: "register",
+ algorithms
+ }).then(function(r) {
+ return _this.initialized = true;
+ }).catch(console.err);
+ }
+ _createClass(ELK3, [{
+ key: "layout",
+ value: function layout(graph) {
+ var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$layoutOptions = _ref2.layoutOptions, layoutOptions = _ref2$layoutOptions === void 0 ? this.defaultLayoutOptions : _ref2$layoutOptions, _ref2$logging = _ref2.logging, logging = _ref2$logging === void 0 ? false : _ref2$logging, _ref2$measureExecutio = _ref2.measureExecutionTime, measureExecutionTime = _ref2$measureExecutio === void 0 ? false : _ref2$measureExecutio;
+ if (!graph) {
+ return Promise.reject(new Error("Missing mandatory parameter 'graph'."));
+ }
+ return this.worker.postMessage({
+ cmd: "layout",
+ graph,
+ layoutOptions,
+ options: {
+ logging,
+ measureExecutionTime
+ }
+ });
+ }
+ }, {
+ key: "knownLayoutAlgorithms",
+ value: function knownLayoutAlgorithms() {
+ return this.worker.postMessage({ cmd: "algorithms" });
+ }
+ }, {
+ key: "knownLayoutOptions",
+ value: function knownLayoutOptions() {
+ return this.worker.postMessage({ cmd: "options" });
+ }
+ }, {
+ key: "knownLayoutCategories",
+ value: function knownLayoutCategories() {
+ return this.worker.postMessage({ cmd: "categories" });
+ }
+ }, {
+ key: "terminateWorker",
+ value: function terminateWorker() {
+ this.worker.terminate();
+ }
+ }]);
+ return ELK3;
+ }();
+ exports2.default = ELK2;
+ var PromisedWorker = function() {
+ function PromisedWorker2(worker) {
+ var _this2 = this;
+ _classCallCheck(this, PromisedWorker2);
+ if (worker === void 0) {
+ throw new Error("Missing mandatory parameter 'worker'.");
+ }
+ this.resolvers = {};
+ this.worker = worker;
+ this.worker.onmessage = function(answer) {
+ setTimeout(function() {
+ _this2.receive(_this2, answer);
+ }, 0);
+ };
+ }
+ _createClass(PromisedWorker2, [{
+ key: "postMessage",
+ value: function postMessage(msg) {
+ var id = this.id || 0;
+ this.id = id + 1;
+ msg.id = id;
+ var self2 = this;
+ return new Promise(function(resolve, reject) {
+ self2.resolvers[id] = function(err, res) {
+ if (err) {
+ self2.convertGwtStyleError(err);
+ reject(err);
+ } else {
+ resolve(res);
+ }
+ };
+ self2.worker.postMessage(msg);
+ });
+ }
+ }, {
+ key: "receive",
+ value: function receive(self2, answer) {
+ var json = answer.data;
+ var resolver = self2.resolvers[json.id];
+ if (resolver) {
+ delete self2.resolvers[json.id];
+ if (json.error) {
+ resolver(json.error);
+ } else {
+ resolver(null, json.data);
+ }
+ }
+ }
+ }, {
+ key: "terminate",
+ value: function terminate() {
+ if (this.worker.terminate) {
+ this.worker.terminate();
+ }
+ }
+ }, {
+ key: "convertGwtStyleError",
+ value: function convertGwtStyleError(err) {
+ if (!err) {
+ return;
+ }
+ var javaException = err["__java$exception"];
+ if (javaException) {
+ if (javaException.cause && javaException.cause.backingJsObject) {
+ err.cause = javaException.cause.backingJsObject;
+ this.convertGwtStyleError(err.cause);
+ }
+ delete err["__java$exception"];
+ }
+ }
+ }]);
+ return PromisedWorker2;
+ }();
+ }, {}], 2: [function(require2, module2, exports2) {
+ (function(global) {
+ (function() {
+ var $wnd;
+ if (typeof window !== "undefined")
+ $wnd = window;
+ else if (typeof global !== "undefined")
+ $wnd = global;
+ else if (typeof self !== "undefined")
+ $wnd = self;
+ var o;
+ function nb() {
+ }
+ function xb() {
+ }
+ function Fd() {
+ }
+ function $g() {
+ }
+ function _p() {
+ }
+ function yq() {
+ }
+ function Sq() {
+ }
+ function Es() {
+ }
+ function Jw() {
+ }
+ function Vw() {
+ }
+ function VA() {
+ }
+ function dA() {
+ }
+ function MA() {
+ }
+ function PA() {
+ }
+ function PB() {
+ }
+ function bx() {
+ }
+ function cx() {
+ }
+ function vy() {
+ }
+ function Nz() {
+ }
+ function Yz() {
+ }
+ function Ylb() {
+ }
+ function Ymb() {
+ }
+ function xmb() {
+ }
+ function Fmb() {
+ }
+ function Qmb() {
+ }
+ function gcb() {
+ }
+ function ccb() {
+ }
+ function jcb() {
+ }
+ function jtb() {
+ }
+ function otb() {
+ }
+ function qtb() {
+ }
+ function _fb() {
+ }
+ function bpb() {
+ }
+ function kpb() {
+ }
+ function ppb() {
+ }
+ function Gpb() {
+ }
+ function drb() {
+ }
+ function dzb() {
+ }
+ function fzb() {
+ }
+ function fxb() {
+ }
+ function Vxb() {
+ }
+ function Ovb() {
+ }
+ function byb() {
+ }
+ function zyb() {
+ }
+ function Zyb() {
+ }
+ function _yb() {
+ }
+ function hzb() {
+ }
+ function jzb() {
+ }
+ function lzb() {
+ }
+ function nzb() {
+ }
+ function rzb() {
+ }
+ function zzb() {
+ }
+ function Czb() {
+ }
+ function Ezb() {
+ }
+ function Gzb() {
+ }
+ function Izb() {
+ }
+ function Mzb() {
+ }
+ function bBb() {
+ }
+ function NBb() {
+ }
+ function PBb() {
+ }
+ function RBb() {
+ }
+ function iCb() {
+ }
+ function OCb() {
+ }
+ function SCb() {
+ }
+ function GDb() {
+ }
+ function JDb() {
+ }
+ function fEb() {
+ }
+ function xEb() {
+ }
+ function CEb() {
+ }
+ function GEb() {
+ }
+ function yFb() {
+ }
+ function KGb() {
+ }
+ function tIb() {
+ }
+ function vIb() {
+ }
+ function xIb() {
+ }
+ function zIb() {
+ }
+ function OIb() {
+ }
+ function SIb() {
+ }
+ function TJb() {
+ }
+ function VJb() {
+ }
+ function XJb() {
+ }
+ function XKb() {
+ }
+ function fKb() {
+ }
+ function VKb() {
+ }
+ function VLb() {
+ }
+ function jLb() {
+ }
+ function nLb() {
+ }
+ function GLb() {
+ }
+ function KLb() {
+ }
+ function MLb() {
+ }
+ function OLb() {
+ }
+ function RLb() {
+ }
+ function YLb() {
+ }
+ function bMb() {
+ }
+ function gMb() {
+ }
+ function lMb() {
+ }
+ function pMb() {
+ }
+ function wMb() {
+ }
+ function zMb() {
+ }
+ function CMb() {
+ }
+ function FMb() {
+ }
+ function LMb() {
+ }
+ function zNb() {
+ }
+ function PNb() {
+ }
+ function kOb() {
+ }
+ function pOb() {
+ }
+ function tOb() {
+ }
+ function yOb() {
+ }
+ function FOb() {
+ }
+ function GPb() {
+ }
+ function aQb() {
+ }
+ function cQb() {
+ }
+ function eQb() {
+ }
+ function gQb() {
+ }
+ function iQb() {
+ }
+ function CQb() {
+ }
+ function MQb() {
+ }
+ function OQb() {
+ }
+ function ASb() {
+ }
+ function fTb() {
+ }
+ function kTb() {
+ }
+ function STb() {
+ }
+ function fUb() {
+ }
+ function DUb() {
+ }
+ function VUb() {
+ }
+ function YUb() {
+ }
+ function _Ub() {
+ }
+ function _Wb() {
+ }
+ function QWb() {
+ }
+ function XWb() {
+ }
+ function jVb() {
+ }
+ function DVb() {
+ }
+ function VVb() {
+ }
+ function $Vb() {
+ }
+ function dXb() {
+ }
+ function hXb() {
+ }
+ function lXb() {
+ }
+ function gYb() {
+ }
+ function HYb() {
+ }
+ function SYb() {
+ }
+ function VYb() {
+ }
+ function dZb() {
+ }
+ function P$b() {
+ }
+ function T$b() {
+ }
+ function h1b() {
+ }
+ function m1b() {
+ }
+ function q1b() {
+ }
+ function u1b() {
+ }
+ function y1b() {
+ }
+ function C1b() {
+ }
+ function e2b() {
+ }
+ function g2b() {
+ }
+ function m2b() {
+ }
+ function q2b() {
+ }
+ function u2b() {
+ }
+ function S2b() {
+ }
+ function U2b() {
+ }
+ function W2b() {
+ }
+ function _2b() {
+ }
+ function e3b() {
+ }
+ function h3b() {
+ }
+ function p3b() {
+ }
+ function t3b() {
+ }
+ function w3b() {
+ }
+ function y3b() {
+ }
+ function A3b() {
+ }
+ function M3b() {
+ }
+ function Q3b() {
+ }
+ function U3b() {
+ }
+ function Y3b() {
+ }
+ function l4b() {
+ }
+ function q4b() {
+ }
+ function s4b() {
+ }
+ function u4b() {
+ }
+ function w4b() {
+ }
+ function y4b() {
+ }
+ function L4b() {
+ }
+ function N4b() {
+ }
+ function P4b() {
+ }
+ function R4b() {
+ }
+ function T4b() {
+ }
+ function X4b() {
+ }
+ function I5b() {
+ }
+ function Q5b() {
+ }
+ function T5b() {
+ }
+ function Z5b() {
+ }
+ function l6b() {
+ }
+ function o6b() {
+ }
+ function t6b() {
+ }
+ function z6b() {
+ }
+ function L6b() {
+ }
+ function M6b() {
+ }
+ function P6b() {
+ }
+ function X6b() {
+ }
+ function $6b() {
+ }
+ function a7b() {
+ }
+ function c7b() {
+ }
+ function g7b() {
+ }
+ function j7b() {
+ }
+ function m7b() {
+ }
+ function r7b() {
+ }
+ function x7b() {
+ }
+ function D7b() {
+ }
+ function D9b() {
+ }
+ function b9b() {
+ }
+ function h9b() {
+ }
+ function j9b() {
+ }
+ function l9b() {
+ }
+ function w9b() {
+ }
+ function F9b() {
+ }
+ function hac() {
+ }
+ function jac() {
+ }
+ function pac() {
+ }
+ function uac() {
+ }
+ function Iac() {
+ }
+ function Kac() {
+ }
+ function Sac() {
+ }
+ function obc() {
+ }
+ function rbc() {
+ }
+ function vbc() {
+ }
+ function Fbc() {
+ }
+ function Jbc() {
+ }
+ function Xbc() {
+ }
+ function ccc() {
+ }
+ function fcc() {
+ }
+ function lcc() {
+ }
+ function occ() {
+ }
+ function tcc() {
+ }
+ function ycc() {
+ }
+ function Acc() {
+ }
+ function Ccc() {
+ }
+ function Ecc() {
+ }
+ function Gcc() {
+ }
+ function Zcc() {
+ }
+ function _cc() {
+ }
+ function bdc() {
+ }
+ function fdc() {
+ }
+ function jdc() {
+ }
+ function pdc() {
+ }
+ function sdc() {
+ }
+ function ydc() {
+ }
+ function Adc() {
+ }
+ function Cdc() {
+ }
+ function Edc() {
+ }
+ function Idc() {
+ }
+ function Ndc() {
+ }
+ function Qdc() {
+ }
+ function Sdc() {
+ }
+ function Udc() {
+ }
+ function Wdc() {
+ }
+ function Ydc() {
+ }
+ function aec() {
+ }
+ function hec() {
+ }
+ function jec() {
+ }
+ function lec() {
+ }
+ function nec() {
+ }
+ function uec() {
+ }
+ function wec() {
+ }
+ function yec() {
+ }
+ function Aec() {
+ }
+ function Fec() {
+ }
+ function Jec() {
+ }
+ function Lec() {
+ }
+ function Nec() {
+ }
+ function Rec() {
+ }
+ function Uec() {
+ }
+ function Zec() {
+ }
+ function Zfc() {
+ }
+ function lfc() {
+ }
+ function tfc() {
+ }
+ function xfc() {
+ }
+ function zfc() {
+ }
+ function Ffc() {
+ }
+ function Jfc() {
+ }
+ function Nfc() {
+ }
+ function Pfc() {
+ }
+ function Vfc() {
+ }
+ function _fc() {
+ }
+ function fgc() {
+ }
+ function jgc() {
+ }
+ function lgc() {
+ }
+ function Bgc() {
+ }
+ function ehc() {
+ }
+ function ghc() {
+ }
+ function ihc() {
+ }
+ function khc() {
+ }
+ function mhc() {
+ }
+ function ohc() {
+ }
+ function qhc() {
+ }
+ function yhc() {
+ }
+ function Ahc() {
+ }
+ function Ghc() {
+ }
+ function Ihc() {
+ }
+ function Khc() {
+ }
+ function Mhc() {
+ }
+ function Shc() {
+ }
+ function Uhc() {
+ }
+ function Whc() {
+ }
+ function dic() {
+ }
+ function dlc() {
+ }
+ function blc() {
+ }
+ function flc() {
+ }
+ function hlc() {
+ }
+ function jlc() {
+ }
+ function Glc() {
+ }
+ function Ilc() {
+ }
+ function Klc() {
+ }
+ function Mlc() {
+ }
+ function Mjc() {
+ }
+ function Qjc() {
+ }
+ function Qlc() {
+ }
+ function Ulc() {
+ }
+ function Ylc() {
+ }
+ function Lkc() {
+ }
+ function Nkc() {
+ }
+ function Pkc() {
+ }
+ function Rkc() {
+ }
+ function Xkc() {
+ }
+ function _kc() {
+ }
+ function gmc() {
+ }
+ function kmc() {
+ }
+ function zmc() {
+ }
+ function Fmc() {
+ }
+ function Wmc() {
+ }
+ function $mc() {
+ }
+ function anc() {
+ }
+ function mnc() {
+ }
+ function wnc() {
+ }
+ function Hnc() {
+ }
+ function Jnc() {
+ }
+ function Lnc() {
+ }
+ function Nnc() {
+ }
+ function Pnc() {
+ }
+ function Ync() {
+ }
+ function eoc() {
+ }
+ function Aoc() {
+ }
+ function Coc() {
+ }
+ function Eoc() {
+ }
+ function Joc() {
+ }
+ function Loc() {
+ }
+ function Zoc() {
+ }
+ function _oc() {
+ }
+ function bpc() {
+ }
+ function hpc() {
+ }
+ function kpc() {
+ }
+ function ppc() {
+ }
+ function pFc() {
+ }
+ function Ryc() {
+ }
+ function QCc() {
+ }
+ function PDc() {
+ }
+ function xGc() {
+ }
+ function HGc() {
+ }
+ function JGc() {
+ }
+ function NGc() {
+ }
+ function GIc() {
+ }
+ function iKc() {
+ }
+ function mKc() {
+ }
+ function wKc() {
+ }
+ function yKc() {
+ }
+ function AKc() {
+ }
+ function EKc() {
+ }
+ function KKc() {
+ }
+ function OKc() {
+ }
+ function QKc() {
+ }
+ function SKc() {
+ }
+ function UKc() {
+ }
+ function YKc() {
+ }
+ function aLc() {
+ }
+ function fLc() {
+ }
+ function hLc() {
+ }
+ function nLc() {
+ }
+ function pLc() {
+ }
+ function tLc() {
+ }
+ function vLc() {
+ }
+ function zLc() {
+ }
+ function BLc() {
+ }
+ function DLc() {
+ }
+ function FLc() {
+ }
+ function sMc() {
+ }
+ function JMc() {
+ }
+ function hNc() {
+ }
+ function RNc() {
+ }
+ function ZNc() {
+ }
+ function _Nc() {
+ }
+ function bOc() {
+ }
+ function dOc() {
+ }
+ function fOc() {
+ }
+ function hOc() {
+ }
+ function hRc() {
+ }
+ function jRc() {
+ }
+ function KRc() {
+ }
+ function NRc() {
+ }
+ function NQc() {
+ }
+ function LQc() {
+ }
+ function _Qc() {
+ }
+ function cPc() {
+ }
+ function iPc() {
+ }
+ function kPc() {
+ }
+ function mPc() {
+ }
+ function xPc() {
+ }
+ function zPc() {
+ }
+ function zSc() {
+ }
+ function BSc() {
+ }
+ function GSc() {
+ }
+ function ISc() {
+ }
+ function NSc() {
+ }
+ function TSc() {
+ }
+ function NTc() {
+ }
+ function NVc() {
+ }
+ function oVc() {
+ }
+ function SVc() {
+ }
+ function VVc() {
+ }
+ function XVc() {
+ }
+ function ZVc() {
+ }
+ function bWc() {
+ }
+ function bXc() {
+ }
+ function CXc() {
+ }
+ function FXc() {
+ }
+ function IXc() {
+ }
+ function MXc() {
+ }
+ function UXc() {
+ }
+ function bYc() {
+ }
+ function fYc() {
+ }
+ function oYc() {
+ }
+ function qYc() {
+ }
+ function uYc() {
+ }
+ function pZc() {
+ }
+ function G$c() {
+ }
+ function h0c() {
+ }
+ function N0c() {
+ }
+ function k1c() {
+ }
+ function I1c() {
+ }
+ function Q1c() {
+ }
+ function f2c() {
+ }
+ function i2c() {
+ }
+ function k2c() {
+ }
+ function w2c() {
+ }
+ function O2c() {
+ }
+ function S2c() {
+ }
+ function Z2c() {
+ }
+ function v3c() {
+ }
+ function x3c() {
+ }
+ function R3c() {
+ }
+ function U3c() {
+ }
+ function e4c() {
+ }
+ function w4c() {
+ }
+ function x4c() {
+ }
+ function z4c() {
+ }
+ function B4c() {
+ }
+ function D4c() {
+ }
+ function F4c() {
+ }
+ function H4c() {
+ }
+ function J4c() {
+ }
+ function L4c() {
+ }
+ function N4c() {
+ }
+ function P4c() {
+ }
+ function R4c() {
+ }
+ function T4c() {
+ }
+ function V4c() {
+ }
+ function X4c() {
+ }
+ function Z4c() {
+ }
+ function _4c() {
+ }
+ function _7c() {
+ }
+ function b5c() {
+ }
+ function d5c() {
+ }
+ function f5c() {
+ }
+ function h5c() {
+ }
+ function H5c() {
+ }
+ function Hfd() {
+ }
+ function Zfd() {
+ }
+ function Zed() {
+ }
+ function ged() {
+ }
+ function Jed() {
+ }
+ function Ned() {
+ }
+ function Red() {
+ }
+ function Ved() {
+ }
+ function bbd() {
+ }
+ function mdd() {
+ }
+ function _fd() {
+ }
+ function fgd() {
+ }
+ function kgd() {
+ }
+ function Mgd() {
+ }
+ function Ahd() {
+ }
+ function Ald() {
+ }
+ function Tld() {
+ }
+ function xkd() {
+ }
+ function rmd() {
+ }
+ function knd() {
+ }
+ function Jod() {
+ }
+ function JCd() {
+ }
+ function Bpd() {
+ }
+ function BFd() {
+ }
+ function oFd() {
+ }
+ function bqd() {
+ }
+ function bvd() {
+ }
+ function jvd() {
+ }
+ function yud() {
+ }
+ function Hxd() {
+ }
+ function EBd() {
+ }
+ function aDd() {
+ }
+ function MGd() {
+ }
+ function vHd() {
+ }
+ function RHd() {
+ }
+ function wNd() {
+ }
+ function zNd() {
+ }
+ function CNd() {
+ }
+ function KNd() {
+ }
+ function XNd() {
+ }
+ function $Nd() {
+ }
+ function HPd() {
+ }
+ function lUd() {
+ }
+ function XUd() {
+ }
+ function DWd() {
+ }
+ function GWd() {
+ }
+ function JWd() {
+ }
+ function MWd() {
+ }
+ function PWd() {
+ }
+ function SWd() {
+ }
+ function VWd() {
+ }
+ function YWd() {
+ }
+ function _Wd() {
+ }
+ function xYd() {
+ }
+ function BYd() {
+ }
+ function mZd() {
+ }
+ function EZd() {
+ }
+ function GZd() {
+ }
+ function JZd() {
+ }
+ function MZd() {
+ }
+ function PZd() {
+ }
+ function SZd() {
+ }
+ function VZd() {
+ }
+ function YZd() {
+ }
+ function _Zd() {
+ }
+ function c$d() {
+ }
+ function f$d() {
+ }
+ function i$d() {
+ }
+ function l$d() {
+ }
+ function o$d() {
+ }
+ function r$d() {
+ }
+ function u$d() {
+ }
+ function x$d() {
+ }
+ function A$d() {
+ }
+ function D$d() {
+ }
+ function G$d() {
+ }
+ function J$d() {
+ }
+ function M$d() {
+ }
+ function P$d() {
+ }
+ function S$d() {
+ }
+ function V$d() {
+ }
+ function Y$d() {
+ }
+ function _$d() {
+ }
+ function c_d() {
+ }
+ function f_d() {
+ }
+ function i_d() {
+ }
+ function l_d() {
+ }
+ function o_d() {
+ }
+ function r_d() {
+ }
+ function u_d() {
+ }
+ function x_d() {
+ }
+ function A_d() {
+ }
+ function D_d() {
+ }
+ function G_d() {
+ }
+ function J_d() {
+ }
+ function M_d() {
+ }
+ function P_d() {
+ }
+ function S_d() {
+ }
+ function V_d() {
+ }
+ function Y_d() {
+ }
+ function h5d() {
+ }
+ function U6d() {
+ }
+ function U9d() {
+ }
+ function _8d() {
+ }
+ function fae() {
+ }
+ function hae() {
+ }
+ function kae() {
+ }
+ function nae() {
+ }
+ function qae() {
+ }
+ function tae() {
+ }
+ function wae() {
+ }
+ function zae() {
+ }
+ function Cae() {
+ }
+ function Fae() {
+ }
+ function Iae() {
+ }
+ function Lae() {
+ }
+ function Oae() {
+ }
+ function Rae() {
+ }
+ function Uae() {
+ }
+ function Xae() {
+ }
+ function $ae() {
+ }
+ function bbe() {
+ }
+ function ebe() {
+ }
+ function hbe() {
+ }
+ function kbe() {
+ }
+ function nbe() {
+ }
+ function qbe() {
+ }
+ function tbe() {
+ }
+ function wbe() {
+ }
+ function zbe() {
+ }
+ function Cbe() {
+ }
+ function Fbe() {
+ }
+ function Ibe() {
+ }
+ function Lbe() {
+ }
+ function Obe() {
+ }
+ function Rbe() {
+ }
+ function Ube() {
+ }
+ function Xbe() {
+ }
+ function $be() {
+ }
+ function bce() {
+ }
+ function ece() {
+ }
+ function hce() {
+ }
+ function kce() {
+ }
+ function nce() {
+ }
+ function qce() {
+ }
+ function tce() {
+ }
+ function wce() {
+ }
+ function zce() {
+ }
+ function Cce() {
+ }
+ function Fce() {
+ }
+ function Ice() {
+ }
+ function Lce() {
+ }
+ function Oce() {
+ }
+ function Rce() {
+ }
+ function Uce() {
+ }
+ function Xce() {
+ }
+ function ude() {
+ }
+ function Vge() {
+ }
+ function dhe() {
+ }
+ function ol() {
+ wb();
+ }
+ function oPb() {
+ nPb();
+ }
+ function EPb() {
+ CPb();
+ }
+ function gFb() {
+ fFb();
+ }
+ function TRb() {
+ SRb();
+ }
+ function ySb() {
+ wSb();
+ }
+ function PSb() {
+ OSb();
+ }
+ function dTb() {
+ bTb();
+ }
+ function i4b() {
+ b4b();
+ }
+ function D2b() {
+ x2b();
+ }
+ function J6b() {
+ D6b();
+ }
+ function u9b() {
+ q9b();
+ }
+ function $9b() {
+ I9b();
+ }
+ function Umc() {
+ Imc();
+ }
+ function abc() {
+ Vac();
+ }
+ function ZCc() {
+ VCc();
+ }
+ function kCc() {
+ hCc();
+ }
+ function rCc() {
+ oCc();
+ }
+ function Tcc() {
+ Occ();
+ }
+ function xkc() {
+ gkc();
+ }
+ function xDc() {
+ rDc();
+ }
+ function iDc() {
+ cDc();
+ }
+ function kwc() {
+ jwc();
+ }
+ function tJc() {
+ jJc();
+ }
+ function dJc() {
+ aJc();
+ }
+ function Pyc() {
+ Nyc();
+ }
+ function VBc() {
+ SBc();
+ }
+ function CFc() {
+ yFc();
+ }
+ function CUc() {
+ wUc();
+ }
+ function lUc() {
+ fUc();
+ }
+ function sUc() {
+ pUc();
+ }
+ function IUc() {
+ GUc();
+ }
+ function IWc() {
+ HWc();
+ }
+ function _Wc() {
+ ZWc();
+ }
+ function fHc() {
+ dHc();
+ }
+ function f0c() {
+ d0c();
+ }
+ function B0c() {
+ A0c();
+ }
+ function L0c() {
+ J0c();
+ }
+ function LTc() {
+ JTc();
+ }
+ function sTc() {
+ rTc();
+ }
+ function KLc() {
+ ILc();
+ }
+ function wNc() {
+ tNc();
+ }
+ function PYc() {
+ OYc();
+ }
+ function nZc() {
+ lZc();
+ }
+ function q3c() {
+ p3c();
+ }
+ function Z7c() {
+ X7c();
+ }
+ function Z9c() {
+ Y9c();
+ }
+ function _ad() {
+ Zad();
+ }
+ function kdd() {
+ idd();
+ }
+ function $md() {
+ Smd();
+ }
+ function HGd() {
+ tGd();
+ }
+ function hLd() {
+ NKd();
+ }
+ function J6d() {
+ Uge();
+ }
+ function Mvb(a) {
+ uCb(a);
+ }
+ function Yb(a) {
+ this.a = a;
+ }
+ function cc(a) {
+ this.a = a;
+ }
+ function cj(a) {
+ this.a = a;
+ }
+ function ij(a) {
+ this.a = a;
+ }
+ function Dj(a) {
+ this.a = a;
+ }
+ function df(a) {
+ this.a = a;
+ }
+ function kf(a) {
+ this.a = a;
+ }
+ function ah(a) {
+ this.a = a;
+ }
+ function lh(a) {
+ this.a = a;
+ }
+ function th(a) {
+ this.a = a;
+ }
+ function Ph(a) {
+ this.a = a;
+ }
+ function vi(a) {
+ this.a = a;
+ }
+ function Ci(a) {
+ this.a = a;
+ }
+ function Fk(a) {
+ this.a = a;
+ }
+ function Ln(a) {
+ this.a = a;
+ }
+ function ap(a) {
+ this.a = a;
+ }
+ function zp(a) {
+ this.a = a;
+ }
+ function Yp(a) {
+ this.a = a;
+ }
+ function qq(a) {
+ this.a = a;
+ }
+ function Dq(a) {
+ this.a = a;
+ }
+ function wr(a) {
+ this.a = a;
+ }
+ function Ir(a) {
+ this.b = a;
+ }
+ function sj(a) {
+ this.c = a;
+ }
+ function sw(a) {
+ this.a = a;
+ }
+ function fw(a) {
+ this.a = a;
+ }
+ function xw(a) {
+ this.a = a;
+ }
+ function Cw(a) {
+ this.a = a;
+ }
+ function Qw(a) {
+ this.a = a;
+ }
+ function Rw(a) {
+ this.a = a;
+ }
+ function Xw(a) {
+ this.a = a;
+ }
+ function Xv(a) {
+ this.a = a;
+ }
+ function Sv(a) {
+ this.a = a;
+ }
+ function eu(a) {
+ this.a = a;
+ }
+ function Zx(a) {
+ this.a = a;
+ }
+ function _x(a) {
+ this.a = a;
+ }
+ function xy(a) {
+ this.a = a;
+ }
+ function xB(a) {
+ this.a = a;
+ }
+ function HB(a) {
+ this.a = a;
+ }
+ function TB(a) {
+ this.a = a;
+ }
+ function fC(a) {
+ this.a = a;
+ }
+ function wB() {
+ this.a = [];
+ }
+ function MBb(a, b) {
+ a.a = b;
+ }
+ function w_b(a, b) {
+ a.a = b;
+ }
+ function x_b(a, b) {
+ a.b = b;
+ }
+ function YOb(a, b) {
+ a.b = b;
+ }
+ function $Ob(a, b) {
+ a.b = b;
+ }
+ function ZGb(a, b) {
+ a.j = b;
+ }
+ function qNb(a, b) {
+ a.g = b;
+ }
+ function rNb(a, b) {
+ a.i = b;
+ }
+ function dRb(a, b) {
+ a.c = b;
+ }
+ function eRb(a, b) {
+ a.d = b;
+ }
+ function z_b(a, b) {
+ a.d = b;
+ }
+ function y_b(a, b) {
+ a.c = b;
+ }
+ function __b(a, b) {
+ a.k = b;
+ }
+ function E0b(a, b) {
+ a.c = b;
+ }
+ function njc(a, b) {
+ a.c = b;
+ }
+ function mjc(a, b) {
+ a.a = b;
+ }
+ function dFc(a, b) {
+ a.a = b;
+ }
+ function eFc(a, b) {
+ a.f = b;
+ }
+ function nOc(a, b) {
+ a.a = b;
+ }
+ function oOc(a, b) {
+ a.b = b;
+ }
+ function pOc(a, b) {
+ a.d = b;
+ }
+ function qOc(a, b) {
+ a.i = b;
+ }
+ function rOc(a, b) {
+ a.o = b;
+ }
+ function sOc(a, b) {
+ a.r = b;
+ }
+ function $Pc(a, b) {
+ a.a = b;
+ }
+ function _Pc(a, b) {
+ a.b = b;
+ }
+ function DVc(a, b) {
+ a.e = b;
+ }
+ function EVc(a, b) {
+ a.f = b;
+ }
+ function FVc(a, b) {
+ a.g = b;
+ }
+ function SZc(a, b) {
+ a.e = b;
+ }
+ function TZc(a, b) {
+ a.f = b;
+ }
+ function c$c(a, b) {
+ a.f = b;
+ }
+ function bJd(a, b) {
+ a.n = b;
+ }
+ function A1d(a, b) {
+ a.a = b;
+ }
+ function J1d(a, b) {
+ a.a = b;
+ }
+ function B1d(a, b) {
+ a.c = b;
+ }
+ function K1d(a, b) {
+ a.c = b;
+ }
+ function L1d(a, b) {
+ a.d = b;
+ }
+ function M1d(a, b) {
+ a.e = b;
+ }
+ function N1d(a, b) {
+ a.g = b;
+ }
+ function d2d(a, b) {
+ a.a = b;
+ }
+ function e2d(a, b) {
+ a.c = b;
+ }
+ function f2d(a, b) {
+ a.d = b;
+ }
+ function g2d(a, b) {
+ a.e = b;
+ }
+ function h2d(a, b) {
+ a.f = b;
+ }
+ function i2d(a, b) {
+ a.j = b;
+ }
+ function Z8d(a, b) {
+ a.a = b;
+ }
+ function $8d(a, b) {
+ a.b = b;
+ }
+ function g9d(a, b) {
+ a.a = b;
+ }
+ function Cic(a) {
+ a.b = a.a;
+ }
+ function Dg(a) {
+ a.c = a.d.d;
+ }
+ function vib(a) {
+ this.d = a;
+ }
+ function eib(a) {
+ this.a = a;
+ }
+ function Pib(a) {
+ this.a = a;
+ }
+ function Vib(a) {
+ this.a = a;
+ }
+ function $ib(a) {
+ this.a = a;
+ }
+ function mcb(a) {
+ this.a = a;
+ }
+ function Mcb(a) {
+ this.a = a;
+ }
+ function Xcb(a) {
+ this.a = a;
+ }
+ function Ndb(a) {
+ this.a = a;
+ }
+ function _db(a) {
+ this.a = a;
+ }
+ function teb(a) {
+ this.a = a;
+ }
+ function Qeb(a) {
+ this.a = a;
+ }
+ function djb(a) {
+ this.a = a;
+ }
+ function Gjb(a) {
+ this.a = a;
+ }
+ function Njb(a) {
+ this.a = a;
+ }
+ function Bjb(a) {
+ this.b = a;
+ }
+ function lnb(a) {
+ this.b = a;
+ }
+ function Dnb(a) {
+ this.b = a;
+ }
+ function anb(a) {
+ this.a = a;
+ }
+ function Mob(a) {
+ this.a = a;
+ }
+ function Rob(a) {
+ this.a = a;
+ }
+ function iob(a) {
+ this.c = a;
+ }
+ function olb(a) {
+ this.c = a;
+ }
+ function qub(a) {
+ this.c = a;
+ }
+ function Tub(a) {
+ this.a = a;
+ }
+ function Vub(a) {
+ this.a = a;
+ }
+ function Xub(a) {
+ this.a = a;
+ }
+ function Zub(a) {
+ this.a = a;
+ }
+ function tpb(a) {
+ this.a = a;
+ }
+ function _pb(a) {
+ this.a = a;
+ }
+ function Wqb(a) {
+ this.a = a;
+ }
+ function nsb(a) {
+ this.a = a;
+ }
+ function Rxb(a) {
+ this.a = a;
+ }
+ function Txb(a) {
+ this.a = a;
+ }
+ function Xxb(a) {
+ this.a = a;
+ }
+ function bzb(a) {
+ this.a = a;
+ }
+ function tzb(a) {
+ this.a = a;
+ }
+ function vzb(a) {
+ this.a = a;
+ }
+ function xzb(a) {
+ this.a = a;
+ }
+ function Kzb(a) {
+ this.a = a;
+ }
+ function Ozb(a) {
+ this.a = a;
+ }
+ function iAb(a) {
+ this.a = a;
+ }
+ function kAb(a) {
+ this.a = a;
+ }
+ function mAb(a) {
+ this.a = a;
+ }
+ function BAb(a) {
+ this.a = a;
+ }
+ function hBb(a) {
+ this.a = a;
+ }
+ function jBb(a) {
+ this.a = a;
+ }
+ function nBb(a) {
+ this.a = a;
+ }
+ function TBb(a) {
+ this.a = a;
+ }
+ function XBb(a) {
+ this.a = a;
+ }
+ function QCb(a) {
+ this.a = a;
+ }
+ function WCb(a) {
+ this.a = a;
+ }
+ function _Cb(a) {
+ this.a = a;
+ }
+ function dEb(a) {
+ this.a = a;
+ }
+ function QGb(a) {
+ this.a = a;
+ }
+ function YGb(a) {
+ this.a = a;
+ }
+ function tKb(a) {
+ this.a = a;
+ }
+ function CLb(a) {
+ this.a = a;
+ }
+ function JMb(a) {
+ this.a = a;
+ }
+ function RNb(a) {
+ this.a = a;
+ }
+ function kQb(a) {
+ this.a = a;
+ }
+ function mQb(a) {
+ this.a = a;
+ }
+ function FQb(a) {
+ this.a = a;
+ }
+ function ETb(a) {
+ this.a = a;
+ }
+ function UTb(a) {
+ this.a = a;
+ }
+ function dUb(a) {
+ this.a = a;
+ }
+ function hUb(a) {
+ this.a = a;
+ }
+ function EZb(a) {
+ this.a = a;
+ }
+ function j$b(a) {
+ this.a = a;
+ }
+ function v$b(a) {
+ this.e = a;
+ }
+ function J0b(a) {
+ this.a = a;
+ }
+ function M0b(a) {
+ this.a = a;
+ }
+ function R0b(a) {
+ this.a = a;
+ }
+ function U0b(a) {
+ this.a = a;
+ }
+ function i2b(a) {
+ this.a = a;
+ }
+ function k2b(a) {
+ this.a = a;
+ }
+ function o2b(a) {
+ this.a = a;
+ }
+ function s2b(a) {
+ this.a = a;
+ }
+ function G2b(a) {
+ this.a = a;
+ }
+ function I2b(a) {
+ this.a = a;
+ }
+ function K2b(a) {
+ this.a = a;
+ }
+ function M2b(a) {
+ this.a = a;
+ }
+ function W3b(a) {
+ this.a = a;
+ }
+ function $3b(a) {
+ this.a = a;
+ }
+ function V4b(a) {
+ this.a = a;
+ }
+ function u5b(a) {
+ this.a = a;
+ }
+ function A7b(a) {
+ this.a = a;
+ }
+ function G7b(a) {
+ this.a = a;
+ }
+ function J7b(a) {
+ this.a = a;
+ }
+ function M7b(a) {
+ this.a = a;
+ }
+ function Mbc(a) {
+ this.a = a;
+ }
+ function Pbc(a) {
+ this.a = a;
+ }
+ function lac(a) {
+ this.a = a;
+ }
+ function nac(a) {
+ this.a = a;
+ }
+ function qcc(a) {
+ this.a = a;
+ }
+ function Gdc(a) {
+ this.a = a;
+ }
+ function $dc(a) {
+ this.a = a;
+ }
+ function cec(a) {
+ this.a = a;
+ }
+ function _ec(a) {
+ this.a = a;
+ }
+ function pfc(a) {
+ this.a = a;
+ }
+ function Bfc(a) {
+ this.a = a;
+ }
+ function Lfc(a) {
+ this.a = a;
+ }
+ function ygc(a) {
+ this.a = a;
+ }
+ function Dgc(a) {
+ this.a = a;
+ }
+ function shc(a) {
+ this.a = a;
+ }
+ function uhc(a) {
+ this.a = a;
+ }
+ function whc(a) {
+ this.a = a;
+ }
+ function Chc(a) {
+ this.a = a;
+ }
+ function Ehc(a) {
+ this.a = a;
+ }
+ function Ohc(a) {
+ this.a = a;
+ }
+ function Yhc(a) {
+ this.a = a;
+ }
+ function Tkc(a) {
+ this.a = a;
+ }
+ function Vkc(a) {
+ this.a = a;
+ }
+ function Olc(a) {
+ this.a = a;
+ }
+ function pnc(a) {
+ this.a = a;
+ }
+ function rnc(a) {
+ this.a = a;
+ }
+ function dpc(a) {
+ this.a = a;
+ }
+ function fpc(a) {
+ this.a = a;
+ }
+ function GCc(a) {
+ this.a = a;
+ }
+ function KCc(a) {
+ this.a = a;
+ }
+ function mDc(a) {
+ this.a = a;
+ }
+ function jEc(a) {
+ this.a = a;
+ }
+ function HEc(a) {
+ this.a = a;
+ }
+ function FEc(a) {
+ this.c = a;
+ }
+ function qoc(a) {
+ this.b = a;
+ }
+ function bFc(a) {
+ this.a = a;
+ }
+ function GFc(a) {
+ this.a = a;
+ }
+ function iGc(a) {
+ this.a = a;
+ }
+ function kGc(a) {
+ this.a = a;
+ }
+ function mGc(a) {
+ this.a = a;
+ }
+ function $Gc(a) {
+ this.a = a;
+ }
+ function hIc(a) {
+ this.a = a;
+ }
+ function lIc(a) {
+ this.a = a;
+ }
+ function pIc(a) {
+ this.a = a;
+ }
+ function tIc(a) {
+ this.a = a;
+ }
+ function xIc(a) {
+ this.a = a;
+ }
+ function zIc(a) {
+ this.a = a;
+ }
+ function CIc(a) {
+ this.a = a;
+ }
+ function LIc(a) {
+ this.a = a;
+ }
+ function CKc(a) {
+ this.a = a;
+ }
+ function IKc(a) {
+ this.a = a;
+ }
+ function MKc(a) {
+ this.a = a;
+ }
+ function $Kc(a) {
+ this.a = a;
+ }
+ function cLc(a) {
+ this.a = a;
+ }
+ function jLc(a) {
+ this.a = a;
+ }
+ function rLc(a) {
+ this.a = a;
+ }
+ function xLc(a) {
+ this.a = a;
+ }
+ function OMc(a) {
+ this.a = a;
+ }
+ function ZOc(a) {
+ this.a = a;
+ }
+ function ZRc(a) {
+ this.a = a;
+ }
+ function aSc(a) {
+ this.a = a;
+ }
+ function I$c(a) {
+ this.a = a;
+ }
+ function K$c(a) {
+ this.a = a;
+ }
+ function M$c(a) {
+ this.a = a;
+ }
+ function O$c(a) {
+ this.a = a;
+ }
+ function U$c(a) {
+ this.a = a;
+ }
+ function n1c(a) {
+ this.a = a;
+ }
+ function z1c(a) {
+ this.a = a;
+ }
+ function B1c(a) {
+ this.a = a;
+ }
+ function Q2c(a) {
+ this.a = a;
+ }
+ function U2c(a) {
+ this.a = a;
+ }
+ function z3c(a) {
+ this.a = a;
+ }
+ function med(a) {
+ this.a = a;
+ }
+ function Xed(a) {
+ this.a = a;
+ }
+ function _ed(a) {
+ this.a = a;
+ }
+ function Qfd(a) {
+ this.a = a;
+ }
+ function Bgd(a) {
+ this.a = a;
+ }
+ function $gd(a) {
+ this.a = a;
+ }
+ function lrd(a) {
+ this.a = a;
+ }
+ function urd(a) {
+ this.a = a;
+ }
+ function vrd(a) {
+ this.a = a;
+ }
+ function wrd(a) {
+ this.a = a;
+ }
+ function xrd(a) {
+ this.a = a;
+ }
+ function yrd(a) {
+ this.a = a;
+ }
+ function zrd(a) {
+ this.a = a;
+ }
+ function Ard(a) {
+ this.a = a;
+ }
+ function Brd(a) {
+ this.a = a;
+ }
+ function Crd(a) {
+ this.a = a;
+ }
+ function Ird(a) {
+ this.a = a;
+ }
+ function Krd(a) {
+ this.a = a;
+ }
+ function Lrd(a) {
+ this.a = a;
+ }
+ function Mrd(a) {
+ this.a = a;
+ }
+ function Nrd(a) {
+ this.a = a;
+ }
+ function Prd(a) {
+ this.a = a;
+ }
+ function Srd(a) {
+ this.a = a;
+ }
+ function Yrd(a) {
+ this.a = a;
+ }
+ function Zrd(a) {
+ this.a = a;
+ }
+ function _rd(a) {
+ this.a = a;
+ }
+ function asd(a) {
+ this.a = a;
+ }
+ function bsd(a) {
+ this.a = a;
+ }
+ function csd(a) {
+ this.a = a;
+ }
+ function dsd(a) {
+ this.a = a;
+ }
+ function msd(a) {
+ this.a = a;
+ }
+ function osd(a) {
+ this.a = a;
+ }
+ function qsd(a) {
+ this.a = a;
+ }
+ function ssd(a) {
+ this.a = a;
+ }
+ function Wsd(a) {
+ this.a = a;
+ }
+ function Lsd(a) {
+ this.b = a;
+ }
+ function thd(a) {
+ this.f = a;
+ }
+ function qtd(a) {
+ this.a = a;
+ }
+ function yBd(a) {
+ this.a = a;
+ }
+ function GBd(a) {
+ this.a = a;
+ }
+ function MBd(a) {
+ this.a = a;
+ }
+ function SBd(a) {
+ this.a = a;
+ }
+ function iCd(a) {
+ this.a = a;
+ }
+ function YMd(a) {
+ this.a = a;
+ }
+ function GNd(a) {
+ this.a = a;
+ }
+ function EPd(a) {
+ this.a = a;
+ }
+ function EQd(a) {
+ this.a = a;
+ }
+ function NTd(a) {
+ this.a = a;
+ }
+ function qOd(a) {
+ this.b = a;
+ }
+ function lVd(a) {
+ this.c = a;
+ }
+ function VVd(a) {
+ this.e = a;
+ }
+ function iYd(a) {
+ this.a = a;
+ }
+ function RYd(a) {
+ this.a = a;
+ }
+ function ZYd(a) {
+ this.a = a;
+ }
+ function z0d(a) {
+ this.a = a;
+ }
+ function O0d(a) {
+ this.a = a;
+ }
+ function s0d(a) {
+ this.d = a;
+ }
+ function W5d(a) {
+ this.a = a;
+ }
+ function cge(a) {
+ this.a = a;
+ }
+ function xfe(a) {
+ this.e = a;
+ }
+ function Tfd() {
+ this.a = 0;
+ }
+ function jkb() {
+ Vjb(this);
+ }
+ function Rkb() {
+ Ckb(this);
+ }
+ function Lqb() {
+ Uhb(this);
+ }
+ function lEb() {
+ kEb(this);
+ }
+ function A_b() {
+ }
+ function UQd() {
+ this.c = FQd;
+ }
+ function v6d(a, b) {
+ b.Wb(a);
+ }
+ function moc(a, b) {
+ a.b += b;
+ }
+ function yXb(a) {
+ a.b = new Ji();
+ }
+ function vbb(a) {
+ return a.e;
+ }
+ function DB(a) {
+ return a.a;
+ }
+ function LB(a) {
+ return a.a;
+ }
+ function ZB(a) {
+ return a.a;
+ }
+ function lC(a) {
+ return a.a;
+ }
+ function EC(a) {
+ return a.a;
+ }
+ function wC() {
+ return null;
+ }
+ function SB() {
+ return null;
+ }
+ function hcb() {
+ mvd();
+ ovd();
+ }
+ function zJb(a) {
+ a.b.tf(a.e);
+ }
+ function j5b(a, b) {
+ a.b = b - a.b;
+ }
+ function g5b(a, b) {
+ a.a = b - a.a;
+ }
+ function PXc(a, b) {
+ b.ad(a.a);
+ }
+ function plc(a, b) {
+ G0b(b, a);
+ }
+ function hp(a, b, c) {
+ a.Od(c, b);
+ }
+ function As(a, b) {
+ a.e = b;
+ b.b = a;
+ }
+ function Zl(a) {
+ Ql();
+ this.a = a;
+ }
+ function jq(a) {
+ Ql();
+ this.a = a;
+ }
+ function sq(a) {
+ Ql();
+ this.a = a;
+ }
+ function Fq(a) {
+ im();
+ this.a = a;
+ }
+ function Sz(a) {
+ Rz();
+ Qz.be(a);
+ }
+ function gz() {
+ Xy.call(this);
+ }
+ function xcb() {
+ Xy.call(this);
+ }
+ function pcb() {
+ gz.call(this);
+ }
+ function tcb() {
+ gz.call(this);
+ }
+ function Bdb() {
+ gz.call(this);
+ }
+ function Vdb() {
+ gz.call(this);
+ }
+ function Ydb() {
+ gz.call(this);
+ }
+ function Geb() {
+ gz.call(this);
+ }
+ function bgb() {
+ gz.call(this);
+ }
+ function Apb() {
+ gz.call(this);
+ }
+ function Jpb() {
+ gz.call(this);
+ }
+ function utb() {
+ gz.call(this);
+ }
+ function x2c() {
+ gz.call(this);
+ }
+ function rQd() {
+ this.a = this;
+ }
+ function MPd() {
+ this.Bb |= 256;
+ }
+ function tTb() {
+ this.b = new mt();
+ }
+ function fA() {
+ fA = ccb;
+ new Lqb();
+ }
+ function rcb() {
+ pcb.call(this);
+ }
+ function dCb(a, b) {
+ a.length = b;
+ }
+ function Tvb(a, b) {
+ Ekb(a.a, b);
+ }
+ function sKb(a, b) {
+ UHb(a.c, b);
+ }
+ function SMc(a, b) {
+ Qqb(a.b, b);
+ }
+ function vBd(a, b) {
+ uAd(a.a, b);
+ }
+ function wBd(a, b) {
+ vAd(a.a, b);
+ }
+ function GLd(a, b) {
+ Uhd(a.e, b);
+ }
+ function d7d(a) {
+ D2d(a.c, a.b);
+ }
+ function mj(a, b) {
+ a.kc().Nb(b);
+ }
+ function Odb(a) {
+ this.a = Tdb(a);
+ }
+ function Tqb() {
+ this.a = new Lqb();
+ }
+ function gyb() {
+ this.a = new Lqb();
+ }
+ function Wvb() {
+ this.a = new Rkb();
+ }
+ function KFb() {
+ this.a = new Rkb();
+ }
+ function PFb() {
+ this.a = new Rkb();
+ }
+ function FFb() {
+ this.a = new yFb();
+ }
+ function pGb() {
+ this.a = new MFb();
+ }
+ function ZQb() {
+ this.a = new MQb();
+ }
+ function Gxb() {
+ this.a = new Pwb();
+ }
+ function jUb() {
+ this.a = new PTb();
+ }
+ function sDb() {
+ this.a = new oDb();
+ }
+ function zDb() {
+ this.a = new tDb();
+ }
+ function CWb() {
+ this.a = new Rkb();
+ }
+ function HXb() {
+ this.a = new Rkb();
+ }
+ function nYb() {
+ this.a = new Rkb();
+ }
+ function BYb() {
+ this.a = new Rkb();
+ }
+ function fLb() {
+ this.d = new Rkb();
+ }
+ function vYb() {
+ this.a = new Tqb();
+ }
+ function a2b() {
+ this.a = new Lqb();
+ }
+ function wZb() {
+ this.b = new Lqb();
+ }
+ function TCc() {
+ this.b = new Rkb();
+ }
+ function zJc() {
+ this.e = new Rkb();
+ }
+ function uMc() {
+ this.d = new Rkb();
+ }
+ function wdc() {
+ this.a = new xkc();
+ }
+ function vKc() {
+ Rkb.call(this);
+ }
+ function twb() {
+ Wvb.call(this);
+ }
+ function oHb() {
+ $Gb.call(this);
+ }
+ function LXb() {
+ HXb.call(this);
+ }
+ function L_b() {
+ H_b.call(this);
+ }
+ function H_b() {
+ A_b.call(this);
+ }
+ function p0b() {
+ A_b.call(this);
+ }
+ function s0b() {
+ p0b.call(this);
+ }
+ function WMc() {
+ VMc.call(this);
+ }
+ function bNc() {
+ VMc.call(this);
+ }
+ function EPc() {
+ CPc.call(this);
+ }
+ function JPc() {
+ CPc.call(this);
+ }
+ function OPc() {
+ CPc.call(this);
+ }
+ function w1c() {
+ s1c.call(this);
+ }
+ function s7c() {
+ Psb.call(this);
+ }
+ function apd() {
+ Ald.call(this);
+ }
+ function ppd() {
+ Ald.call(this);
+ }
+ function lDd() {
+ YCd.call(this);
+ }
+ function NDd() {
+ YCd.call(this);
+ }
+ function mFd() {
+ Lqb.call(this);
+ }
+ function vFd() {
+ Lqb.call(this);
+ }
+ function GFd() {
+ Lqb.call(this);
+ }
+ function KPd() {
+ Tqb.call(this);
+ }
+ function OJd() {
+ hJd.call(this);
+ }
+ function aQd() {
+ MPd.call(this);
+ }
+ function SSd() {
+ FId.call(this);
+ }
+ function rUd() {
+ FId.call(this);
+ }
+ function oUd() {
+ Lqb.call(this);
+ }
+ function NYd() {
+ Lqb.call(this);
+ }
+ function cZd() {
+ Lqb.call(this);
+ }
+ function R8d() {
+ MGd.call(this);
+ }
+ function o9d() {
+ MGd.call(this);
+ }
+ function i9d() {
+ R8d.call(this);
+ }
+ function hee() {
+ ude.call(this);
+ }
+ function Dd(a) {
+ yd.call(this, a);
+ }
+ function Hd(a) {
+ yd.call(this, a);
+ }
+ function ph(a) {
+ lh.call(this, a);
+ }
+ function Sh(a) {
+ Wc.call(this, a);
+ }
+ function oi(a) {
+ Sh.call(this, a);
+ }
+ function Ii(a) {
+ Wc.call(this, a);
+ }
+ function Zdd() {
+ this.a = new Psb();
+ }
+ function CPc() {
+ this.a = new Tqb();
+ }
+ function s1c() {
+ this.a = new Lqb();
+ }
+ function QSc() {
+ this.a = new Rkb();
+ }
+ function D2c() {
+ this.j = new Rkb();
+ }
+ function QXc() {
+ this.a = new UXc();
+ }
+ function e_c() {
+ this.a = new d_c();
+ }
+ function YCd() {
+ this.a = new aDd();
+ }
+ function _k() {
+ _k = ccb;
+ $k = new al();
+ }
+ function Lk() {
+ Lk = ccb;
+ Kk = new Mk();
+ }
+ function wb() {
+ wb = ccb;
+ vb = new xb();
+ }
+ function hs() {
+ hs = ccb;
+ gs = new is();
+ }
+ function rs(a) {
+ Sh.call(this, a);
+ }
+ function Gp(a) {
+ Sh.call(this, a);
+ }
+ function xp(a) {
+ Lo.call(this, a);
+ }
+ function Ep(a) {
+ Lo.call(this, a);
+ }
+ function Tp(a) {
+ Wn.call(this, a);
+ }
+ function wx(a) {
+ un.call(this, a);
+ }
+ function ov(a) {
+ dv.call(this, a);
+ }
+ function Mv(a) {
+ Br.call(this, a);
+ }
+ function Ov(a) {
+ Br.call(this, a);
+ }
+ function Lw(a) {
+ Br.call(this, a);
+ }
+ function hz(a) {
+ Yy.call(this, a);
+ }
+ function MB(a) {
+ hz.call(this, a);
+ }
+ function eC() {
+ fC.call(this, {});
+ }
+ function Ftb(a) {
+ Atb();
+ this.a = a;
+ }
+ function zwb(a) {
+ a.b = null;
+ a.c = 0;
+ }
+ function Vy(a, b) {
+ a.e = b;
+ Sy(a, b);
+ }
+ function LVb(a, b) {
+ a.a = b;
+ NVb(a);
+ }
+ function lIb(a, b, c) {
+ a.a[b.g] = c;
+ }
+ function vfd(a, b, c) {
+ Dfd(c, a, b);
+ }
+ function Odc(a, b) {
+ rjc(b.i, a.n);
+ }
+ function Wyc(a, b) {
+ Xyc(a).td(b);
+ }
+ function ERb(a, b) {
+ return a * a / b;
+ }
+ function Xr(a, b) {
+ return a.g - b.g;
+ }
+ function tC(a) {
+ return new TB(a);
+ }
+ function vC(a) {
+ return new yC(a);
+ }
+ function ocb(a) {
+ hz.call(this, a);
+ }
+ function qcb(a) {
+ hz.call(this, a);
+ }
+ function ucb(a) {
+ hz.call(this, a);
+ }
+ function vcb(a) {
+ Yy.call(this, a);
+ }
+ function fGc(a) {
+ LFc();
+ this.a = a;
+ }
+ function c0d(a) {
+ kzd();
+ this.a = a;
+ }
+ function bhd(a) {
+ Rgd();
+ this.f = a;
+ }
+ function dhd(a) {
+ Rgd();
+ this.f = a;
+ }
+ function Cdb(a) {
+ hz.call(this, a);
+ }
+ function Wdb(a) {
+ hz.call(this, a);
+ }
+ function Zdb(a) {
+ hz.call(this, a);
+ }
+ function Feb(a) {
+ hz.call(this, a);
+ }
+ function Heb(a) {
+ hz.call(this, a);
+ }
+ function Ccb(a) {
+ return uCb(a), a;
+ }
+ function Edb(a) {
+ return uCb(a), a;
+ }
+ function Gdb(a) {
+ return uCb(a), a;
+ }
+ function jfb(a) {
+ return uCb(a), a;
+ }
+ function tfb(a) {
+ return uCb(a), a;
+ }
+ function akb(a) {
+ return a.b == a.c;
+ }
+ function Hwb(a) {
+ return !!a && a.b;
+ }
+ function pIb(a) {
+ return !!a && a.k;
+ }
+ function qIb(a) {
+ return !!a && a.j;
+ }
+ function amb(a) {
+ uCb(a);
+ this.a = a;
+ }
+ function wVb(a) {
+ qVb(a);
+ return a;
+ }
+ function Blb(a) {
+ Glb(a, a.length);
+ }
+ function cgb(a) {
+ hz.call(this, a);
+ }
+ function cqd(a) {
+ hz.call(this, a);
+ }
+ function n8d(a) {
+ hz.call(this, a);
+ }
+ function y2c(a) {
+ hz.call(this, a);
+ }
+ function z2c(a) {
+ hz.call(this, a);
+ }
+ function mde(a) {
+ hz.call(this, a);
+ }
+ function pc(a) {
+ qc.call(this, a, 0);
+ }
+ function Ji() {
+ Ki.call(this, 12, 3);
+ }
+ function Kz() {
+ Kz = ccb;
+ Jz = new Nz();
+ }
+ function jz() {
+ jz = ccb;
+ iz = new nb();
+ }
+ function KA() {
+ KA = ccb;
+ JA = new MA();
+ }
+ function OB() {
+ OB = ccb;
+ NB = new PB();
+ }
+ function jc() {
+ throw vbb(new bgb());
+ }
+ function zh() {
+ throw vbb(new bgb());
+ }
+ function Pi() {
+ throw vbb(new bgb());
+ }
+ function Pj() {
+ throw vbb(new bgb());
+ }
+ function Qj() {
+ throw vbb(new bgb());
+ }
+ function Ym() {
+ throw vbb(new bgb());
+ }
+ function Gb() {
+ this.a = GD(Qb(She));
+ }
+ function oy(a) {
+ Ql();
+ this.a = Qb(a);
+ }
+ function Bs(a, b) {
+ a.Td(b);
+ b.Sd(a);
+ }
+ function iw(a, b) {
+ a.a.ec().Mc(b);
+ }
+ function CYb(a, b, c) {
+ a.c.lf(b, c);
+ }
+ function scb(a) {
+ qcb.call(this, a);
+ }
+ function Oeb(a) {
+ Wdb.call(this, a);
+ }
+ function Hfb() {
+ mcb.call(this, "");
+ }
+ function Ifb() {
+ mcb.call(this, "");
+ }
+ function Ufb() {
+ mcb.call(this, "");
+ }
+ function Vfb() {
+ mcb.call(this, "");
+ }
+ function Xfb(a) {
+ qcb.call(this, a);
+ }
+ function zob(a) {
+ lnb.call(this, a);
+ }
+ function Yob(a) {
+ Inb.call(this, a);
+ }
+ function Gob(a) {
+ zob.call(this, a);
+ }
+ function Mk() {
+ Fk.call(this, null);
+ }
+ function al() {
+ Fk.call(this, null);
+ }
+ function Az() {
+ Az = ccb;
+ !!(Rz(), Qz);
+ }
+ function wrb() {
+ wrb = ccb;
+ vrb = yrb();
+ }
+ function Mtb(a) {
+ return a.a ? a.b : 0;
+ }
+ function Vtb(a) {
+ return a.a ? a.b : 0;
+ }
+ function Lcb(a, b) {
+ return a.a - b.a;
+ }
+ function Wcb(a, b) {
+ return a.a - b.a;
+ }
+ function Peb(a, b) {
+ return a.a - b.a;
+ }
+ function eCb(a, b) {
+ return PC(a, b);
+ }
+ function GC(a, b) {
+ return rdb(a, b);
+ }
+ function _B(b, a) {
+ return a in b.a;
+ }
+ function _Db(a, b) {
+ a.f = b;
+ return a;
+ }
+ function ZDb(a, b) {
+ a.b = b;
+ return a;
+ }
+ function $Db(a, b) {
+ a.c = b;
+ return a;
+ }
+ function aEb(a, b) {
+ a.g = b;
+ return a;
+ }
+ function HGb(a, b) {
+ a.a = b;
+ return a;
+ }
+ function IGb(a, b) {
+ a.f = b;
+ return a;
+ }
+ function JGb(a, b) {
+ a.k = b;
+ return a;
+ }
+ function dLb(a, b) {
+ a.a = b;
+ return a;
+ }
+ function eLb(a, b) {
+ a.e = b;
+ return a;
+ }
+ function zVb(a, b) {
+ a.e = b;
+ return a;
+ }
+ function AVb(a, b) {
+ a.f = b;
+ return a;
+ }
+ function KOb(a, b) {
+ a.b = true;
+ a.d = b;
+ }
+ function DHb(a, b) {
+ a.b = new g7c(b);
+ }
+ function uvb(a, b, c) {
+ b.td(a.a[c]);
+ }
+ function zvb(a, b, c) {
+ b.we(a.a[c]);
+ }
+ function wJc(a, b) {
+ return a.b - b.b;
+ }
+ function kOc(a, b) {
+ return a.g - b.g;
+ }
+ function WQc(a, b) {
+ return a.s - b.s;
+ }
+ function Lic(a, b) {
+ return a ? 0 : b - 1;
+ }
+ function SFc(a, b) {
+ return a ? 0 : b - 1;
+ }
+ function RFc(a, b) {
+ return a ? b - 1 : 0;
+ }
+ function M2c(a, b) {
+ return b.Yf(a);
+ }
+ function M3c(a, b) {
+ a.b = b;
+ return a;
+ }
+ function L3c(a, b) {
+ a.a = b;
+ return a;
+ }
+ function N3c(a, b) {
+ a.c = b;
+ return a;
+ }
+ function O3c(a, b) {
+ a.d = b;
+ return a;
+ }
+ function P3c(a, b) {
+ a.e = b;
+ return a;
+ }
+ function Q3c(a, b) {
+ a.f = b;
+ return a;
+ }
+ function b4c(a, b) {
+ a.a = b;
+ return a;
+ }
+ function c4c(a, b) {
+ a.b = b;
+ return a;
+ }
+ function d4c(a, b) {
+ a.c = b;
+ return a;
+ }
+ function z5c(a, b) {
+ a.c = b;
+ return a;
+ }
+ function y5c(a, b) {
+ a.b = b;
+ return a;
+ }
+ function A5c(a, b) {
+ a.d = b;
+ return a;
+ }
+ function B5c(a, b) {
+ a.e = b;
+ return a;
+ }
+ function C5c(a, b) {
+ a.f = b;
+ return a;
+ }
+ function D5c(a, b) {
+ a.g = b;
+ return a;
+ }
+ function E5c(a, b) {
+ a.a = b;
+ return a;
+ }
+ function F5c(a, b) {
+ a.i = b;
+ return a;
+ }
+ function G5c(a, b) {
+ a.j = b;
+ return a;
+ }
+ function Vdd(a, b) {
+ a.k = b;
+ return a;
+ }
+ function Wdd(a, b) {
+ a.j = b;
+ return a;
+ }
+ function ykc(a, b) {
+ gkc();
+ F0b(b, a);
+ }
+ function T$c(a, b, c) {
+ R$c(a.a, b, c);
+ }
+ function RGc(a) {
+ cEc.call(this, a);
+ }
+ function iHc(a) {
+ cEc.call(this, a);
+ }
+ function t7c(a) {
+ Qsb.call(this, a);
+ }
+ function aPb(a) {
+ _Ob.call(this, a);
+ }
+ function Ixd(a) {
+ zud.call(this, a);
+ }
+ function dCd(a) {
+ ZBd.call(this, a);
+ }
+ function fCd(a) {
+ ZBd.call(this, a);
+ }
+ function p_b() {
+ q_b.call(this, "");
+ }
+ function d7c() {
+ this.a = 0;
+ this.b = 0;
+ }
+ function aPc() {
+ this.b = 0;
+ this.a = 0;
+ }
+ function NJd(a, b) {
+ a.b = 0;
+ DId(a, b);
+ }
+ function X1d(a, b) {
+ a.c = b;
+ a.b = true;
+ }
+ function Oc(a, b) {
+ return a.c._b(b);
+ }
+ function gdb(a) {
+ return a.e && a.e();
+ }
+ function Vd(a) {
+ return !a ? null : a.d;
+ }
+ function sn(a, b) {
+ return Gv(a.b, b);
+ }
+ function Fv(a) {
+ return !a ? null : a.g;
+ }
+ function Kv(a) {
+ return !a ? null : a.i;
+ }
+ function hdb(a) {
+ fdb(a);
+ return a.o;
+ }
+ function Fhd() {
+ Fhd = ccb;
+ Ehd = ond();
+ }
+ function Hhd() {
+ Hhd = ccb;
+ Ghd = Cod();
+ }
+ function LFd() {
+ LFd = ccb;
+ KFd = qZd();
+ }
+ function p8d() {
+ p8d = ccb;
+ o8d = Y9d();
+ }
+ function r8d() {
+ r8d = ccb;
+ q8d = dae();
+ }
+ function mvd() {
+ mvd = ccb;
+ lvd = n4c();
+ }
+ function Srb() {
+ throw vbb(new bgb());
+ }
+ function enb() {
+ throw vbb(new bgb());
+ }
+ function fnb() {
+ throw vbb(new bgb());
+ }
+ function gnb() {
+ throw vbb(new bgb());
+ }
+ function jnb() {
+ throw vbb(new bgb());
+ }
+ function Cnb() {
+ throw vbb(new bgb());
+ }
+ function Uqb(a) {
+ this.a = new Mqb(a);
+ }
+ function tgb(a) {
+ lgb();
+ ngb(this, a);
+ }
+ function Hxb(a) {
+ this.a = new Qwb(a);
+ }
+ function _ub(a, b) {
+ while (a.ye(b))
+ ;
+ }
+ function Sub(a, b) {
+ while (a.sd(b))
+ ;
+ }
+ function Bfb(a, b) {
+ a.a += b;
+ return a;
+ }
+ function Cfb(a, b) {
+ a.a += b;
+ return a;
+ }
+ function Ffb(a, b) {
+ a.a += b;
+ return a;
+ }
+ function Lfb(a, b) {
+ a.a += b;
+ return a;
+ }
+ function WAb(a) {
+ Tzb(a);
+ return a.a;
+ }
+ function Wsb(a) {
+ return a.b != a.d.c;
+ }
+ function pD(a) {
+ return a.l | a.m << 22;
+ }
+ function aIc(a, b) {
+ return a.d[b.p];
+ }
+ function h2c(a, b) {
+ return c2c(a, b);
+ }
+ function cCb(a, b, c) {
+ a.splice(b, c);
+ }
+ function WHb(a) {
+ a.c ? VHb(a) : XHb(a);
+ }
+ function jVc(a) {
+ this.a = 0;
+ this.b = a;
+ }
+ function ZUc() {
+ this.a = new L2c(K$);
+ }
+ function tRc() {
+ this.b = new L2c(h$);
+ }
+ function Q$c() {
+ this.b = new L2c(J_);
+ }
+ function d_c() {
+ this.b = new L2c(J_);
+ }
+ function OCd() {
+ throw vbb(new bgb());
+ }
+ function PCd() {
+ throw vbb(new bgb());
+ }
+ function QCd() {
+ throw vbb(new bgb());
+ }
+ function RCd() {
+ throw vbb(new bgb());
+ }
+ function SCd() {
+ throw vbb(new bgb());
+ }
+ function TCd() {
+ throw vbb(new bgb());
+ }
+ function UCd() {
+ throw vbb(new bgb());
+ }
+ function VCd() {
+ throw vbb(new bgb());
+ }
+ function WCd() {
+ throw vbb(new bgb());
+ }
+ function XCd() {
+ throw vbb(new bgb());
+ }
+ function ahe() {
+ throw vbb(new utb());
+ }
+ function bhe() {
+ throw vbb(new utb());
+ }
+ function Rge(a) {
+ this.a = new ege(a);
+ }
+ function ege(a) {
+ dge(this, a, Vee());
+ }
+ function Fhe(a) {
+ return !a || Ehe(a);
+ }
+ function dde(a) {
+ return $ce[a] != -1;
+ }
+ function Iz() {
+ xz != 0 && (xz = 0);
+ zz = -1;
+ }
+ function Ybb() {
+ Wbb == null && (Wbb = []);
+ }
+ function ONd(a, b) {
+ Rxd(ZKd(a.a), b);
+ }
+ function TNd(a, b) {
+ Rxd(ZKd(a.a), b);
+ }
+ function Yf(a, b) {
+ zf.call(this, a, b);
+ }
+ function $f(a, b) {
+ Yf.call(this, a, b);
+ }
+ function Hf(a, b) {
+ this.b = a;
+ this.c = b;
+ }
+ function rk(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function ek(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function gk(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function pk(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function yk(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Ak(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Fj(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function _j(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function dr(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function zr(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function So(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function qp(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function $q(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function $r(a, b) {
+ this.f = a;
+ this.g = b;
+ }
+ function ne(a, b) {
+ this.e = a;
+ this.d = b;
+ }
+ function Wo(a, b) {
+ this.g = a;
+ this.i = b;
+ }
+ function bu(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function qu(a, b) {
+ this.a = a;
+ this.f = b;
+ }
+ function qv(a, b) {
+ this.b = a;
+ this.c = b;
+ }
+ function ox(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Px(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function mC(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Wc(a) {
+ Lb(a.dc());
+ this.c = a;
+ }
+ function rf(a) {
+ this.b = BD(Qb(a), 83);
+ }
+ function Zv(a) {
+ this.a = BD(Qb(a), 83);
+ }
+ function dv(a) {
+ this.a = BD(Qb(a), 15);
+ }
+ function $u(a) {
+ this.a = BD(Qb(a), 15);
+ }
+ function Br(a) {
+ this.b = BD(Qb(a), 47);
+ }
+ function eB() {
+ this.q = new $wnd.Date();
+ }
+ function Zfb() {
+ Zfb = ccb;
+ Yfb = new jcb();
+ }
+ function Emb() {
+ Emb = ccb;
+ Dmb = new Fmb();
+ }
+ function Vhb(a) {
+ return a.f.c + a.g.c;
+ }
+ function hnb(a, b) {
+ return a.b.Hc(b);
+ }
+ function inb(a, b) {
+ return a.b.Ic(b);
+ }
+ function knb(a, b) {
+ return a.b.Qc(b);
+ }
+ function Dob(a, b) {
+ return a.b.Hc(b);
+ }
+ function dob(a, b) {
+ return a.c.uc(b);
+ }
+ function Rqb(a, b) {
+ return a.a._b(b);
+ }
+ function fob(a, b) {
+ return pb(a.c, b);
+ }
+ function jt(a, b) {
+ return Mhb(a.b, b);
+ }
+ function Lp(a, b) {
+ return a > b && b < Iie;
+ }
+ function Ryb(a, b) {
+ return a.Gc(b), a;
+ }
+ function Syb(a, b) {
+ return ye(a, b), a;
+ }
+ function sC(a) {
+ return GB(), a ? FB : EB;
+ }
+ function Mqb(a) {
+ Whb.call(this, a, 0);
+ }
+ function Pwb() {
+ Qwb.call(this, null);
+ }
+ function yAb() {
+ Vzb.call(this, null);
+ }
+ function Gqb(a) {
+ this.c = a;
+ Dqb(this);
+ }
+ function Psb() {
+ Csb(this);
+ Osb(this);
+ }
+ function MAb(a, b) {
+ Tzb(a);
+ a.a.Nb(b);
+ }
+ function Myb(a, b) {
+ a.Gc(b);
+ return a;
+ }
+ function qDb(a, b) {
+ a.a.f = b;
+ return a;
+ }
+ function wDb(a, b) {
+ a.a.d = b;
+ return a;
+ }
+ function xDb(a, b) {
+ a.a.g = b;
+ return a;
+ }
+ function yDb(a, b) {
+ a.a.j = b;
+ return a;
+ }
+ function BFb(a, b) {
+ a.a.a = b;
+ return a;
+ }
+ function CFb(a, b) {
+ a.a.d = b;
+ return a;
+ }
+ function DFb(a, b) {
+ a.a.e = b;
+ return a;
+ }
+ function EFb(a, b) {
+ a.a.g = b;
+ return a;
+ }
+ function oGb(a, b) {
+ a.a.f = b;
+ return a;
+ }
+ function TGb(a) {
+ a.b = false;
+ return a;
+ }
+ function Ltb() {
+ Ltb = ccb;
+ Ktb = new Otb();
+ }
+ function Utb() {
+ Utb = ccb;
+ Ttb = new Wtb();
+ }
+ function $xb() {
+ $xb = ccb;
+ Zxb = new byb();
+ }
+ function $Yb() {
+ $Yb = ccb;
+ ZYb = new dZb();
+ }
+ function cPb() {
+ cPb = ccb;
+ bPb = new dPb();
+ }
+ function EAb() {
+ EAb = ccb;
+ DAb = new PBb();
+ }
+ function a$b() {
+ a$b = ccb;
+ _Zb = new P$b();
+ }
+ function FDb() {
+ FDb = ccb;
+ EDb = new GDb();
+ }
+ function xUb() {
+ xUb = ccb;
+ wUb = new DUb();
+ }
+ function x2b() {
+ x2b = ccb;
+ w2b = new d7c();
+ }
+ function iVb() {
+ iVb = ccb;
+ hVb = new jVb();
+ }
+ function nVb() {
+ nVb = ccb;
+ mVb = new OVb();
+ }
+ function LWb() {
+ LWb = ccb;
+ KWb = new QWb();
+ }
+ function b4b() {
+ b4b = ccb;
+ a4b = new l4b();
+ }
+ function q9b() {
+ q9b = ccb;
+ p9b = new w9b();
+ }
+ function qgc() {
+ qgc = ccb;
+ pgc = new dic();
+ }
+ function Imc() {
+ Imc = ccb;
+ Hmc = new Wmc();
+ }
+ function GUc() {
+ GUc = ccb;
+ FUc = new j3c();
+ }
+ function i_c() {
+ i_c = ccb;
+ h_c = new k_c();
+ }
+ function s_c() {
+ s_c = ccb;
+ r_c = new t_c();
+ }
+ function R0c() {
+ R0c = ccb;
+ Q0c = new T0c();
+ }
+ function Vyc() {
+ Vyc = ccb;
+ Uyc = new Ved();
+ }
+ function DCc() {
+ vCc();
+ this.c = new Ji();
+ }
+ function k_c() {
+ $r.call(this, Une, 0);
+ }
+ function r4c(a, b) {
+ Xrb(a.c.b, b.c, b);
+ }
+ function s4c(a, b) {
+ Xrb(a.c.c, b.b, b);
+ }
+ function B3c(a, b, c) {
+ Shb(a.d, b.f, c);
+ }
+ function kKb(a, b, c, d) {
+ jKb(a, d, b, c);
+ }
+ function E3b(a, b, c, d) {
+ J3b(d, a, b, c);
+ }
+ function e9b(a, b, c, d) {
+ f9b(d, a, b, c);
+ }
+ function g3c(a, b) {
+ a.a = b.g;
+ return a;
+ }
+ function DQd(a, b) {
+ return qA(a.a, b);
+ }
+ function nQd(a) {
+ return a.b ? a.b : a.a;
+ }
+ function $Oc(a) {
+ return (a.c + a.a) / 2;
+ }
+ function Pgd() {
+ Pgd = ccb;
+ Ogd = new Ahd();
+ }
+ function AFd() {
+ AFd = ccb;
+ zFd = new BFd();
+ }
+ function tFd() {
+ tFd = ccb;
+ sFd = new vFd();
+ }
+ function EFd() {
+ EFd = ccb;
+ DFd = new GFd();
+ }
+ function yFd() {
+ yFd = ccb;
+ xFd = new oUd();
+ }
+ function JFd() {
+ JFd = ccb;
+ IFd = new cZd();
+ }
+ function nRd() {
+ nRd = ccb;
+ mRd = new u4d();
+ }
+ function LRd() {
+ LRd = ccb;
+ KRd = new y4d();
+ }
+ function g5d() {
+ g5d = ccb;
+ f5d = new h5d();
+ }
+ function Q6d() {
+ Q6d = ccb;
+ P6d = new U6d();
+ }
+ function pEd() {
+ pEd = ccb;
+ oEd = new Lqb();
+ }
+ function tZd() {
+ tZd = ccb;
+ rZd = new Rkb();
+ }
+ function Xge() {
+ Xge = ccb;
+ Wge = new dhe();
+ }
+ function Hz(a) {
+ $wnd.clearTimeout(a);
+ }
+ function jw(a) {
+ this.a = BD(Qb(a), 224);
+ }
+ function Lv(a) {
+ return BD(a, 42).cd();
+ }
+ function sib(a) {
+ return a.b < a.d.gc();
+ }
+ function Lpb(a, b) {
+ return tqb(a.a, b);
+ }
+ function Dbb(a, b) {
+ return ybb(a, b) > 0;
+ }
+ function Gbb(a, b) {
+ return ybb(a, b) < 0;
+ }
+ function Crb(a, b) {
+ return a.a.get(b);
+ }
+ function icb(b, a) {
+ return a.split(b);
+ }
+ function Vrb(a, b) {
+ return Mhb(a.e, b);
+ }
+ function Nvb(a) {
+ return uCb(a), false;
+ }
+ function Rub(a) {
+ Kub.call(this, a, 21);
+ }
+ function wcb(a, b) {
+ Zy.call(this, a, b);
+ }
+ function mxb(a, b) {
+ $r.call(this, a, b);
+ }
+ function Gyb(a, b) {
+ $r.call(this, a, b);
+ }
+ function zx(a) {
+ yx();
+ Wn.call(this, a);
+ }
+ function zlb(a, b) {
+ Dlb(a, a.length, b);
+ }
+ function Alb(a, b) {
+ Flb(a, a.length, b);
+ }
+ function ABb(a, b, c) {
+ b.ud(a.a.Ge(c));
+ }
+ function uBb(a, b, c) {
+ b.we(a.a.Fe(c));
+ }
+ function GBb(a, b, c) {
+ b.td(a.a.Kb(c));
+ }
+ function Zq(a, b, c) {
+ a.Mb(c) && b.td(c);
+ }
+ function aCb(a, b, c) {
+ a.splice(b, 0, c);
+ }
+ function lDb(a, b) {
+ return uqb(a.e, b);
+ }
+ function pjb(a, b) {
+ this.d = a;
+ this.e = b;
+ }
+ function kqb(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function VBb(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function BEb(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function sBb(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function yBb(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function EBb(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function KBb(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function aDb(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function tMb(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function oOb(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function SOb(a, b) {
+ $r.call(this, a, b);
+ }
+ function SMb(a, b) {
+ $r.call(this, a, b);
+ }
+ function NEb(a, b) {
+ $r.call(this, a, b);
+ }
+ function VEb(a, b) {
+ $r.call(this, a, b);
+ }
+ function sFb(a, b) {
+ $r.call(this, a, b);
+ }
+ function hHb(a, b) {
+ $r.call(this, a, b);
+ }
+ function OHb(a, b) {
+ $r.call(this, a, b);
+ }
+ function FIb(a, b) {
+ $r.call(this, a, b);
+ }
+ function wLb(a, b) {
+ $r.call(this, a, b);
+ }
+ function YRb(a, b) {
+ $r.call(this, a, b);
+ }
+ function zTb(a, b) {
+ $r.call(this, a, b);
+ }
+ function rUb(a, b) {
+ $r.call(this, a, b);
+ }
+ function oWb(a, b) {
+ $r.call(this, a, b);
+ }
+ function SXb(a, b) {
+ $r.call(this, a, b);
+ }
+ function k0b(a, b) {
+ $r.call(this, a, b);
+ }
+ function z5b(a, b) {
+ $r.call(this, a, b);
+ }
+ function T8b(a, b) {
+ $r.call(this, a, b);
+ }
+ function ibc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Cec(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function rfc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Rfc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Tfc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function bgc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function ngc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Qhc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function $hc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Z0b(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function ZVb(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function Dfc(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function dgc(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function Bmc(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function cWb(a, b) {
+ this.c = a;
+ this.d = b;
+ }
+ function I$b(a, b) {
+ this.e = a;
+ this.d = b;
+ }
+ function Unc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Oic(a, b) {
+ this.b = b;
+ this.c = a;
+ }
+ function Bjc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Yjc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Gkc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Bpc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Jpc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Tpc(a, b) {
+ $r.call(this, a, b);
+ }
+ function cqc(a, b) {
+ $r.call(this, a, b);
+ }
+ function oqc(a, b) {
+ $r.call(this, a, b);
+ }
+ function yqc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Hqc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Uqc(a, b) {
+ $r.call(this, a, b);
+ }
+ function arc(a, b) {
+ $r.call(this, a, b);
+ }
+ function mrc(a, b) {
+ $r.call(this, a, b);
+ }
+ function zrc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Prc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Yrc(a, b) {
+ $r.call(this, a, b);
+ }
+ function fsc(a, b) {
+ $r.call(this, a, b);
+ }
+ function nsc(a, b) {
+ $r.call(this, a, b);
+ }
+ function nzc(a, b) {
+ $r.call(this, a, b);
+ }
+ function zzc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Kzc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Xzc(a, b) {
+ $r.call(this, a, b);
+ }
+ function Dtc(a, b) {
+ $r.call(this, a, b);
+ }
+ function lAc(a, b) {
+ $r.call(this, a, b);
+ }
+ function uAc(a, b) {
+ $r.call(this, a, b);
+ }
+ function CAc(a, b) {
+ $r.call(this, a, b);
+ }
+ function LAc(a, b) {
+ $r.call(this, a, b);
+ }
+ function UAc(a, b) {
+ $r.call(this, a, b);
+ }
+ function aBc(a, b) {
+ $r.call(this, a, b);
+ }
+ function uBc(a, b) {
+ $r.call(this, a, b);
+ }
+ function DBc(a, b) {
+ $r.call(this, a, b);
+ }
+ function MBc(a, b) {
+ $r.call(this, a, b);
+ }
+ function sGc(a, b) {
+ $r.call(this, a, b);
+ }
+ function VIc(a, b) {
+ $r.call(this, a, b);
+ }
+ function EIc(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function qKc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function GKc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function lLc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function mMc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function fMc(a, b) {
+ $r.call(this, a, b);
+ }
+ function ZLc(a, b) {
+ $r.call(this, a, b);
+ }
+ function ZMc(a, b) {
+ this.b = a;
+ this.d = b;
+ }
+ function IOc(a, b) {
+ $r.call(this, a, b);
+ }
+ function GQc(a, b) {
+ $r.call(this, a, b);
+ }
+ function PQc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function RQc(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function ARc(a, b) {
+ $r.call(this, a, b);
+ }
+ function rSc(a, b) {
+ $r.call(this, a, b);
+ }
+ function TTc(a, b) {
+ $r.call(this, a, b);
+ }
+ function _Tc(a, b) {
+ $r.call(this, a, b);
+ }
+ function RUc(a, b) {
+ $r.call(this, a, b);
+ }
+ function uVc(a, b) {
+ $r.call(this, a, b);
+ }
+ function hWc(a, b) {
+ $r.call(this, a, b);
+ }
+ function rWc(a, b) {
+ $r.call(this, a, b);
+ }
+ function kXc(a, b) {
+ $r.call(this, a, b);
+ }
+ function uXc(a, b) {
+ $r.call(this, a, b);
+ }
+ function AYc(a, b) {
+ $r.call(this, a, b);
+ }
+ function l$c(a, b) {
+ $r.call(this, a, b);
+ }
+ function Z$c(a, b) {
+ $r.call(this, a, b);
+ }
+ function D_c(a, b) {
+ $r.call(this, a, b);
+ }
+ function O_c(a, b) {
+ $r.call(this, a, b);
+ }
+ function c1c(a, b) {
+ $r.call(this, a, b);
+ }
+ function cVb(a, b) {
+ return uqb(a.c, b);
+ }
+ function nnc(a, b) {
+ return uqb(b.b, a);
+ }
+ function x1c(a, b) {
+ return -a.b.Je(b);
+ }
+ function D3c(a, b) {
+ return uqb(a.g, b);
+ }
+ function O5c(a, b) {
+ $r.call(this, a, b);
+ }
+ function a6c(a, b) {
+ $r.call(this, a, b);
+ }
+ function m2c(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function W2c(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function f7c(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function G7c(a, b) {
+ $r.call(this, a, b);
+ }
+ function j8c(a, b) {
+ $r.call(this, a, b);
+ }
+ function iad(a, b) {
+ $r.call(this, a, b);
+ }
+ function rad(a, b) {
+ $r.call(this, a, b);
+ }
+ function Bad(a, b) {
+ $r.call(this, a, b);
+ }
+ function Nad(a, b) {
+ $r.call(this, a, b);
+ }
+ function ibd(a, b) {
+ $r.call(this, a, b);
+ }
+ function tbd(a, b) {
+ $r.call(this, a, b);
+ }
+ function Ibd(a, b) {
+ $r.call(this, a, b);
+ }
+ function Ubd(a, b) {
+ $r.call(this, a, b);
+ }
+ function gcd(a, b) {
+ $r.call(this, a, b);
+ }
+ function scd(a, b) {
+ $r.call(this, a, b);
+ }
+ function Ycd(a, b) {
+ $r.call(this, a, b);
+ }
+ function udd(a, b) {
+ $r.call(this, a, b);
+ }
+ function Jdd(a, b) {
+ $r.call(this, a, b);
+ }
+ function Eed(a, b) {
+ $r.call(this, a, b);
+ }
+ function bfd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function dfd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function ffd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Kfd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Mfd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Ofd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function vgd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function qgd(a, b) {
+ $r.call(this, a, b);
+ }
+ function jrd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function krd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function mrd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function nrd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function qrd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function rrd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function srd(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function trd(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function Drd(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function Frd(a, b) {
+ this.b = a;
+ this.a = b;
+ }
+ function Hrd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Jrd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Ord(a, b) {
+ Xqd(a.a, BD(b, 56));
+ }
+ function BIc(a, b) {
+ gIc(a.a, BD(b, 11));
+ }
+ function fIc(a, b) {
+ FHc();
+ return b != a;
+ }
+ function Arb() {
+ wrb();
+ return new vrb();
+ }
+ function CMc() {
+ wMc();
+ this.b = new Tqb();
+ }
+ function NNc() {
+ FNc();
+ this.a = new Tqb();
+ }
+ function eCc() {
+ ZBc();
+ aCc.call(this);
+ }
+ function Dsd(a, b) {
+ $r.call(this, a, b);
+ }
+ function Urd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function Wrd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function kGd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function nGd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function bUd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function zVd(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function C1d(a, b) {
+ this.d = a;
+ this.b = b;
+ }
+ function MLd(a, b) {
+ this.d = a;
+ this.e = b;
+ }
+ function Wud(a, b) {
+ this.f = a;
+ this.c = b;
+ }
+ function f7d(a, b) {
+ this.b = a;
+ this.c = b;
+ }
+ function _zd(a, b) {
+ this.i = a;
+ this.g = b;
+ }
+ function Y1d(a, b) {
+ this.e = a;
+ this.a = b;
+ }
+ function c8d(a, b) {
+ this.a = a;
+ this.b = b;
+ }
+ function $Id(a, b) {
+ a.i = null;
+ _Id(a, b);
+ }
+ function ivd(a, b) {
+ !!a && Rhb(cvd, a, b);
+ }
+ function hCd(a, b) {
+ return qAd(a.a, b);
+ }
+ function e7d(a) {
+ return R2d(a.c, a.b);
+ }
+ function Wd(a) {
+ return !a ? null : a.dd();
+ }
+ function PD(a) {
+ return a == null ? null : a;
+ }
+ function KD(a) {
+ return typeof a === Khe;
+ }
+ function LD(a) {
+ return typeof a === Lhe;
+ }
+ function ND(a) {
+ return typeof a === Mhe;
+ }
+ function Em(a, b) {
+ return a.Hd().Xb(b);
+ }
+ function Kq(a, b) {
+ return hr(a.Kc(), b);
+ }
+ function Bbb(a, b) {
+ return ybb(a, b) == 0;
+ }
+ function Ebb(a, b) {
+ return ybb(a, b) >= 0;
+ }
+ function Kbb(a, b) {
+ return ybb(a, b) != 0;
+ }
+ function Jdb(a) {
+ return "" + (uCb(a), a);
+ }
+ function pfb(a, b) {
+ return a.substr(b);
+ }
+ function cg(a) {
+ ag(a);
+ return a.d.gc();
+ }
+ function oVb(a) {
+ pVb(a, a.c);
+ return a;
+ }
+ function RD(a) {
+ CCb(a == null);
+ return a;
+ }
+ function Dfb(a, b) {
+ a.a += "" + b;
+ return a;
+ }
+ function Efb(a, b) {
+ a.a += "" + b;
+ return a;
+ }
+ function Nfb(a, b) {
+ a.a += "" + b;
+ return a;
+ }
+ function Pfb(a, b) {
+ a.a += "" + b;
+ return a;
+ }
+ function Qfb(a, b) {
+ a.a += "" + b;
+ return a;
+ }
+ function Mfb(a, b) {
+ return a.a += "" + b, a;
+ }
+ function Esb(a, b) {
+ Gsb(a, b, a.a, a.a.a);
+ }
+ function Fsb(a, b) {
+ Gsb(a, b, a.c.b, a.c);
+ }
+ function Mqd(a, b, c) {
+ Rpd(b, kqd(a, c));
+ }
+ function Nqd(a, b, c) {
+ Rpd(b, kqd(a, c));
+ }
+ function Dhe(a, b) {
+ Hhe(new Fyd(a), b);
+ }
+ function cB(a, b) {
+ a.q.setTime(Sbb(b));
+ }
+ function fvb(a, b) {
+ bvb.call(this, a, b);
+ }
+ function jvb(a, b) {
+ bvb.call(this, a, b);
+ }
+ function nvb(a, b) {
+ bvb.call(this, a, b);
+ }
+ function Nqb(a) {
+ Uhb(this);
+ Ld(this, a);
+ }
+ function wmb(a) {
+ tCb(a, 0);
+ return null;
+ }
+ function X6c(a) {
+ a.a = 0;
+ a.b = 0;
+ return a;
+ }
+ function f3c(a, b) {
+ a.a = b.g + 1;
+ return a;
+ }
+ function PJc(a, b) {
+ return a.j[b.p] == 2;
+ }
+ function _Pb(a) {
+ return VPb(BD(a, 79));
+ }
+ function yJb() {
+ yJb = ccb;
+ xJb = as(wJb());
+ }
+ function Y8b() {
+ Y8b = ccb;
+ X8b = as(W8b());
+ }
+ function mt() {
+ this.b = new Mqb(Cv(12));
+ }
+ function Otb() {
+ this.b = 0;
+ this.a = false;
+ }
+ function Wtb() {
+ this.b = 0;
+ this.a = false;
+ }
+ function sl(a) {
+ this.a = a;
+ ol.call(this);
+ }
+ function vl(a) {
+ this.a = a;
+ ol.call(this);
+ }
+ function Nsd(a, b) {
+ Msd.call(this, a, b);
+ }
+ function $zd(a, b) {
+ Cyd.call(this, a, b);
+ }
+ function nNd(a, b) {
+ _zd.call(this, a, b);
+ }
+ function s4d(a, b) {
+ p4d.call(this, a, b);
+ }
+ function w4d(a, b) {
+ qRd.call(this, a, b);
+ }
+ function rEd(a, b) {
+ pEd();
+ Rhb(oEd, a, b);
+ }
+ function lcb(a, b) {
+ return qfb(a.a, 0, b);
+ }
+ function ww(a, b) {
+ return a.a.a.a.cc(b);
+ }
+ function mb(a, b) {
+ return PD(a) === PD(b);
+ }
+ function Mdb(a, b) {
+ return Kdb(a.a, b.a);
+ }
+ function $db(a, b) {
+ return beb(a.a, b.a);
+ }
+ function seb(a, b) {
+ return ueb(a.a, b.a);
+ }
+ function hfb(a, b) {
+ return a.indexOf(b);
+ }
+ function Ny(a, b) {
+ return a == b ? 0 : a ? 1 : -1;
+ }
+ function kB(a) {
+ return a < 10 ? "0" + a : "" + a;
+ }
+ function Mq(a) {
+ return Qb(a), new sl(a);
+ }
+ function SC(a) {
+ return TC(a.l, a.m, a.h);
+ }
+ function Hdb(a) {
+ return QD((uCb(a), a));
+ }
+ function Idb(a) {
+ return QD((uCb(a), a));
+ }
+ function NIb(a, b) {
+ return beb(a.g, b.g);
+ }
+ function Fbb(a) {
+ return typeof a === Lhe;
+ }
+ function mWb(a) {
+ return a == hWb || a == kWb;
+ }
+ function nWb(a) {
+ return a == hWb || a == iWb;
+ }
+ function G1b(a) {
+ return Jkb(a.b.b, a, 0);
+ }
+ function lrb(a) {
+ this.a = Arb();
+ this.b = a;
+ }
+ function Frb(a) {
+ this.a = Arb();
+ this.b = a;
+ }
+ function swb(a, b) {
+ Ekb(a.a, b);
+ return b;
+ }
+ function Z1c(a, b) {
+ Ekb(a.c, b);
+ return a;
+ }
+ function E2c(a, b) {
+ d3c(a.a, b);
+ return a;
+ }
+ function _gc(a, b) {
+ Hgc();
+ return b.a += a;
+ }
+ function bhc(a, b) {
+ Hgc();
+ return b.a += a;
+ }
+ function ahc(a, b) {
+ Hgc();
+ return b.c += a;
+ }
+ function Nlb(a, b) {
+ Klb(a, 0, a.length, b);
+ }
+ function zsb() {
+ Wqb.call(this, new $rb());
+ }
+ function I_b() {
+ B_b.call(this, 0, 0, 0, 0);
+ }
+ function I6c() {
+ J6c.call(this, 0, 0, 0, 0);
+ }
+ function g7c(a) {
+ this.a = a.a;
+ this.b = a.b;
+ }
+ function fad(a) {
+ return a == aad || a == bad;
+ }
+ function gad(a) {
+ return a == dad || a == _9c;
+ }
+ function Jzc(a) {
+ return a == Fzc || a == Ezc;
+ }
+ function fcd(a) {
+ return a != bcd && a != ccd;
+ }
+ function oid(a) {
+ return a.Lg() && a.Mg();
+ }
+ function Gfd(a) {
+ return Kkd(BD(a, 118));
+ }
+ function k3c(a) {
+ return d3c(new j3c(), a);
+ }
+ function y2d(a, b) {
+ return new p4d(b, a);
+ }
+ function z2d(a, b) {
+ return new p4d(b, a);
+ }
+ function ukd(a, b, c) {
+ vkd(a, b);
+ wkd(a, c);
+ }
+ function _kd(a, b, c) {
+ cld(a, b);
+ ald(a, c);
+ }
+ function bld(a, b, c) {
+ dld(a, b);
+ eld(a, c);
+ }
+ function gmd(a, b, c) {
+ hmd(a, b);
+ imd(a, c);
+ }
+ function nmd(a, b, c) {
+ omd(a, b);
+ pmd(a, c);
+ }
+ function iKd(a, b) {
+ $Jd(a, b);
+ _Jd(a, a.D);
+ }
+ function _ud(a) {
+ Wud.call(this, a, true);
+ }
+ function Xg(a, b, c) {
+ Vg.call(this, a, b, c);
+ }
+ function Ygb(a) {
+ Hgb();
+ Zgb.call(this, a);
+ }
+ function rxb() {
+ mxb.call(this, "Head", 1);
+ }
+ function wxb() {
+ mxb.call(this, "Tail", 3);
+ }
+ function Ckb(a) {
+ a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ function Vjb(a) {
+ a.a = KC(SI, Uhe, 1, 8, 5, 1);
+ }
+ function MGb(a) {
+ Hkb(a.xf(), new QGb(a));
+ }
+ function xtb(a) {
+ return a != null ? tb(a) : 0;
+ }
+ function b2b(a, b) {
+ return ntd(b, mpd(a));
+ }
+ function c2b(a, b) {
+ return ntd(b, mpd(a));
+ }
+ function dAb(a, b) {
+ return a[a.length] = b;
+ }
+ function gAb(a, b) {
+ return a[a.length] = b;
+ }
+ function Vq(a) {
+ return lr(a.b.Kc(), a.a);
+ }
+ function dqd(a, b) {
+ return _o(qo(a.d), b);
+ }
+ function eqd(a, b) {
+ return _o(qo(a.g), b);
+ }
+ function fqd(a, b) {
+ return _o(qo(a.j), b);
+ }
+ function Osd(a, b) {
+ Msd.call(this, a.b, b);
+ }
+ function q0b(a) {
+ B_b.call(this, a, a, a, a);
+ }
+ function HOb(a) {
+ a.b && LOb(a);
+ return a.a;
+ }
+ function IOb(a) {
+ a.b && LOb(a);
+ return a.c;
+ }
+ function uyb(a, b) {
+ if (lyb) {
+ return;
+ }
+ a.b = b;
+ }
+ function lzd(a, b, c) {
+ NC(a, b, c);
+ return c;
+ }
+ function mBc(a, b, c) {
+ NC(a.c[b.g], b.g, c);
+ }
+ function _Hd(a, b, c) {
+ BD(a.c, 69).Xh(b, c);
+ }
+ function wfd(a, b, c) {
+ bld(c, c.i + a, c.j + b);
+ }
+ function UOd(a, b) {
+ wtd(VKd(a.a), XOd(b));
+ }
+ function bTd(a, b) {
+ wtd(QSd(a.a), eTd(b));
+ }
+ function Lge(a) {
+ wfe();
+ xfe.call(this, a);
+ }
+ function CAd(a) {
+ return a == null ? 0 : tb(a);
+ }
+ function fNc() {
+ fNc = ccb;
+ eNc = new Rpb(v1);
+ }
+ function h0d() {
+ h0d = ccb;
+ new i0d();
+ new Rkb();
+ }
+ function i0d() {
+ new Lqb();
+ new Lqb();
+ new Lqb();
+ }
+ function GA() {
+ GA = ccb;
+ fA();
+ FA = new Lqb();
+ }
+ function Iy() {
+ Iy = ccb;
+ $wnd.Math.log(2);
+ }
+ function UVd() {
+ UVd = ccb;
+ TVd = (AFd(), zFd);
+ }
+ function _ge() {
+ throw vbb(new cgb(Cxe));
+ }
+ function ohe() {
+ throw vbb(new cgb(Cxe));
+ }
+ function che() {
+ throw vbb(new cgb(Dxe));
+ }
+ function rhe() {
+ throw vbb(new cgb(Dxe));
+ }
+ function Mg(a) {
+ this.a = a;
+ Gg.call(this, a);
+ }
+ function up(a) {
+ this.a = a;
+ rf.call(this, a);
+ }
+ function Bp(a) {
+ this.a = a;
+ rf.call(this, a);
+ }
+ function Okb(a, b) {
+ Mlb(a.c, a.c.length, b);
+ }
+ function llb(a) {
+ return a.a < a.c.c.length;
+ }
+ function Eqb(a) {
+ return a.a < a.c.a.length;
+ }
+ function Ntb(a, b) {
+ return a.a ? a.b : b.De();
+ }
+ function beb(a, b) {
+ return a < b ? -1 : a > b ? 1 : 0;
+ }
+ function Deb(a, b) {
+ return ybb(a, b) > 0 ? a : b;
+ }
+ function TC(a, b, c) {
+ return { l: a, m: b, h: c };
+ }
+ function Ctb(a, b) {
+ a.a != null && BIc(b, a.a);
+ }
+ function Csb(a) {
+ a.a = new jtb();
+ a.c = new jtb();
+ }
+ function hDb(a) {
+ this.b = a;
+ this.a = new Rkb();
+ }
+ function dOb(a) {
+ this.b = new pOb();
+ this.a = a;
+ }
+ function q_b(a) {
+ n_b.call(this);
+ this.a = a;
+ }
+ function txb() {
+ mxb.call(this, "Range", 2);
+ }
+ function bUb() {
+ ZTb();
+ this.a = new L2c(zP);
+ }
+ function Bh(a, b) {
+ Qb(b);
+ Ah(a).Jc(new Vw());
+ }
+ function fKc(a, b) {
+ FJc();
+ return b.n.b += a;
+ }
+ function Tgc(a, b, c) {
+ return Rhb(a.g, c, b);
+ }
+ function LJc(a, b, c) {
+ return Rhb(a.k, c, b);
+ }
+ function r1c(a, b) {
+ return Rhb(a.a, b.a, b);
+ }
+ function jBc(a, b, c) {
+ return hBc(b, c, a.c);
+ }
+ function E6c(a) {
+ return new f7c(a.c, a.d);
+ }
+ function F6c(a) {
+ return new f7c(a.c, a.d);
+ }
+ function R6c(a) {
+ return new f7c(a.a, a.b);
+ }
+ function CQd(a, b) {
+ return hA(a.a, b, null);
+ }
+ function fec(a) {
+ QZb(a, null);
+ RZb(a, null);
+ }
+ function AOc(a) {
+ BOc(a, null);
+ COc(a, null);
+ }
+ function u4d() {
+ qRd.call(this, null, null);
+ }
+ function y4d() {
+ RRd.call(this, null, null);
+ }
+ function a7d(a) {
+ this.a = a;
+ Lqb.call(this);
+ }
+ function Pp(a) {
+ this.b = (mmb(), new iob(a));
+ }
+ function Py(a) {
+ a.j = KC(VI, nie, 310, 0, 0, 1);
+ }
+ function oAd(a, b, c) {
+ a.c.Vc(b, BD(c, 133));
+ }
+ function GAd(a, b, c) {
+ a.c.ji(b, BD(c, 133));
+ }
+ function JLd(a, b) {
+ Uxd(a);
+ a.Gc(BD(b, 15));
+ }
+ function b7d(a, b) {
+ return t2d(a.c, a.b, b);
+ }
+ function Bv(a, b) {
+ return new Qv(a.Kc(), b);
+ }
+ function Lq(a, b) {
+ return rr(a.Kc(), b) != -1;
+ }
+ function Sqb(a, b) {
+ return a.a.Bc(b) != null;
+ }
+ function pr(a) {
+ return a.Ob() ? a.Pb() : null;
+ }
+ function yfb(a) {
+ return zfb(a, 0, a.length);
+ }
+ function JD(a, b) {
+ return a != null && AD(a, b);
+ }
+ function $A(a, b) {
+ a.q.setHours(b);
+ YA(a, b);
+ }
+ function Yrb(a, b) {
+ if (a.c) {
+ jsb(b);
+ isb(b);
+ }
+ }
+ function nk(a, b, c) {
+ BD(a.Kb(c), 164).Nb(b);
+ }
+ function RJc(a, b, c) {
+ SJc(a, b, c);
+ return c;
+ }
+ function Eub(a, b, c) {
+ a.a = b ^ 1502;
+ a.b = c ^ kke;
+ }
+ function xHb(a, b, c) {
+ return a.a[b.g][c.g];
+ }
+ function REc(a, b) {
+ return a.a[b.c.p][b.p];
+ }
+ function aEc(a, b) {
+ return a.e[b.c.p][b.p];
+ }
+ function tEc(a, b) {
+ return a.c[b.c.p][b.p];
+ }
+ function OJc(a, b) {
+ return a.j[b.p] = aKc(b);
+ }
+ function k5c(a, b) {
+ return cfb(a.f, b.tg());
+ }
+ function Isd(a, b) {
+ return cfb(a.b, b.tg());
+ }
+ function Sfd(a, b) {
+ return a.a < Kcb(b) ? -1 : 1;
+ }
+ function ZDc(a, b, c) {
+ return c ? b != 0 : b != a - 1;
+ }
+ function _6c(a, b, c) {
+ a.a = b;
+ a.b = c;
+ return a;
+ }
+ function Y6c(a, b) {
+ a.a *= b;
+ a.b *= b;
+ return a;
+ }
+ function mud(a, b, c) {
+ NC(a.g, b, c);
+ return c;
+ }
+ function CHb(a, b, c, d) {
+ NC(a.a[b.g], c.g, d);
+ }
+ function EQb(a, b) {
+ O6c(b, a.a.a.a, a.a.a.b);
+ }
+ function Ozd(a) {
+ a.a = BD(Ajd(a.b.a, 4), 126);
+ }
+ function Wzd(a) {
+ a.a = BD(Ajd(a.b.a, 4), 126);
+ }
+ function otd(a) {
+ ytb(a, hue);
+ Rld(a, gtd(a));
+ }
+ function Atb() {
+ Atb = ccb;
+ ztb = new Ftb(null);
+ }
+ function Ivb() {
+ Ivb = ccb;
+ Ivb();
+ Hvb = new Ovb();
+ }
+ function FId() {
+ this.Bb |= 256;
+ this.Bb |= 512;
+ }
+ function Fyd(a) {
+ this.i = a;
+ this.f = this.i.j;
+ }
+ function xMd(a, b, c) {
+ pMd.call(this, a, b, c);
+ }
+ function BMd(a, b, c) {
+ xMd.call(this, a, b, c);
+ }
+ function K4d(a, b, c) {
+ xMd.call(this, a, b, c);
+ }
+ function N4d(a, b, c) {
+ BMd.call(this, a, b, c);
+ }
+ function X4d(a, b, c) {
+ pMd.call(this, a, b, c);
+ }
+ function _4d(a, b, c) {
+ pMd.call(this, a, b, c);
+ }
+ function C4d(a, b, c) {
+ k2d.call(this, a, b, c);
+ }
+ function G4d(a, b, c) {
+ k2d.call(this, a, b, c);
+ }
+ function I4d(a, b, c) {
+ C4d.call(this, a, b, c);
+ }
+ function c5d(a, b, c) {
+ X4d.call(this, a, b, c);
+ }
+ function zf(a, b) {
+ this.a = a;
+ rf.call(this, b);
+ }
+ function aj(a, b) {
+ this.a = a;
+ pc.call(this, b);
+ }
+ function kj(a, b) {
+ this.a = a;
+ pc.call(this, b);
+ }
+ function Jj(a, b) {
+ this.a = a;
+ pc.call(this, b);
+ }
+ function Rj(a) {
+ this.a = a;
+ sj.call(this, a.d);
+ }
+ function she(a) {
+ this.c = a;
+ this.a = this.c.a;
+ }
+ function xl(a, b) {
+ this.a = b;
+ pc.call(this, a);
+ }
+ function Qo(a, b) {
+ this.a = b;
+ Lo.call(this, a);
+ }
+ function op(a, b) {
+ this.a = a;
+ Lo.call(this, b);
+ }
+ function rj(a, b) {
+ return Rl(Xm(a.c)).Xb(b);
+ }
+ function Eb(a, b) {
+ return Db(a, new Ufb(), b).a;
+ }
+ function ur(a, b) {
+ Qb(b);
+ return new Gr(a, b);
+ }
+ function Gr(a, b) {
+ this.a = b;
+ Br.call(this, a);
+ }
+ function Hs(a) {
+ this.b = a;
+ this.a = this.b.a.e;
+ }
+ function Eg(a) {
+ a.b.Qb();
+ --a.d.f.d;
+ bg(a.d);
+ }
+ function Uk(a) {
+ Fk.call(this, BD(Qb(a), 35));
+ }
+ function il(a) {
+ Fk.call(this, BD(Qb(a), 35));
+ }
+ function is() {
+ $r.call(this, "INSTANCE", 0);
+ }
+ function Lb(a) {
+ if (!a) {
+ throw vbb(new Vdb());
+ }
+ }
+ function Ub(a) {
+ if (!a) {
+ throw vbb(new Ydb());
+ }
+ }
+ function ot(a) {
+ if (!a) {
+ throw vbb(new utb());
+ }
+ }
+ function I6d() {
+ I6d = ccb;
+ g5d();
+ H6d = new J6d();
+ }
+ function Bcb() {
+ Bcb = ccb;
+ zcb = false;
+ Acb = true;
+ }
+ function Jfb(a) {
+ mcb.call(this, (uCb(a), a));
+ }
+ function Wfb(a) {
+ mcb.call(this, (uCb(a), a));
+ }
+ function Inb(a) {
+ lnb.call(this, a);
+ this.a = a;
+ }
+ function Xnb(a) {
+ Dnb.call(this, a);
+ this.a = a;
+ }
+ function Zob(a) {
+ zob.call(this, a);
+ this.a = a;
+ }
+ function Xy() {
+ Py(this);
+ Ry(this);
+ this._d();
+ }
+ function Qv(a, b) {
+ this.a = b;
+ Br.call(this, a);
+ }
+ function au(a, b) {
+ return new xu(a.a, a.b, b);
+ }
+ function kfb(a, b) {
+ return a.lastIndexOf(b);
+ }
+ function ifb(a, b, c) {
+ return a.indexOf(b, c);
+ }
+ function xfb(a) {
+ return a == null ? Xhe : fcb(a);
+ }
+ function nz(a) {
+ return a == null ? null : a.name;
+ }
+ function Etb(a) {
+ return a.a != null ? a.a : null;
+ }
+ function or(a) {
+ return Wsb(a.a) ? nr(a) : null;
+ }
+ function Fxb(a, b) {
+ return Jwb(a.a, b) != null;
+ }
+ function uqb(a, b) {
+ return !!b && a.b[b.g] == b;
+ }
+ function FCb(a) {
+ return a.$H || (a.$H = ++ECb);
+ }
+ function aD(a) {
+ return a.l + a.m * Hje + a.h * Ije;
+ }
+ function pDb(a, b) {
+ Ekb(b.a, a.a);
+ return a.a;
+ }
+ function vDb(a, b) {
+ Ekb(b.b, a.a);
+ return a.a;
+ }
+ function nGb(a, b) {
+ Ekb(b.a, a.a);
+ return a.a;
+ }
+ function Btb(a) {
+ sCb(a.a != null);
+ return a.a;
+ }
+ function Asb(a) {
+ Wqb.call(this, new _rb(a));
+ }
+ function GUb(a, b) {
+ HUb.call(this, a, b, null);
+ }
+ function cxb(a) {
+ this.a = a;
+ Bjb.call(this, a);
+ }
+ function CKb() {
+ CKb = ccb;
+ BKb = new Msd(tle, 0);
+ }
+ function NFb(a, b) {
+ ++a.b;
+ return Ekb(a.a, b);
+ }
+ function OFb(a, b) {
+ ++a.b;
+ return Lkb(a.a, b);
+ }
+ function n6b(a, b) {
+ return Kdb(a.n.a, b.n.a);
+ }
+ function WKb(a, b) {
+ return Kdb(a.c.d, b.c.d);
+ }
+ function gLb(a, b) {
+ return Kdb(a.c.c, b.c.c);
+ }
+ function zXb(a, b) {
+ return BD(Qc(a.b, b), 15);
+ }
+ function s7b(a, b) {
+ return a.n.b = (uCb(b), b);
+ }
+ function t7b(a, b) {
+ return a.n.b = (uCb(b), b);
+ }
+ function a1b(a) {
+ return llb(a.a) || llb(a.b);
+ }
+ function fBc(a, b, c) {
+ return gBc(a, b, c, a.b);
+ }
+ function iBc(a, b, c) {
+ return gBc(a, b, c, a.c);
+ }
+ function i3c(a, b, c) {
+ BD(B2c(a, b), 21).Fc(c);
+ }
+ function xBd(a, b, c) {
+ vAd(a.a, c);
+ uAd(a.a, b);
+ }
+ function qRd(a, b) {
+ nRd();
+ this.a = a;
+ this.b = b;
+ }
+ function RRd(a, b) {
+ LRd();
+ this.b = a;
+ this.c = b;
+ }
+ function hhd(a, b) {
+ Rgd();
+ this.f = b;
+ this.d = a;
+ }
+ function qc(a, b) {
+ Sb(b, a);
+ this.d = a;
+ this.c = b;
+ }
+ function n5b(a) {
+ var b;
+ b = a.a;
+ a.a = a.b;
+ a.b = b;
+ }
+ function chc(a) {
+ Hgc();
+ return !!a && !a.dc();
+ }
+ function Afe(a) {
+ return new lge(3, a);
+ }
+ function jm(a, b) {
+ return new Vp(a, a.gc(), b);
+ }
+ function ns(a) {
+ hs();
+ return es((qs(), ps), a);
+ }
+ function Oyd(a) {
+ this.d = a;
+ Fyd.call(this, a);
+ }
+ function $yd(a) {
+ this.c = a;
+ Fyd.call(this, a);
+ }
+ function bzd(a) {
+ this.c = a;
+ Oyd.call(this, a);
+ }
+ function sgc() {
+ qgc();
+ this.b = new ygc(this);
+ }
+ function Pu(a) {
+ Xj(a, Jie);
+ return new Skb(a);
+ }
+ function Vz(a) {
+ Rz();
+ return parseInt(a) || -1;
+ }
+ function qfb(a, b, c) {
+ return a.substr(b, c - b);
+ }
+ function gfb(a, b, c) {
+ return ifb(a, wfb(b), c);
+ }
+ function Pkb(a) {
+ return ZBb(a.c, a.c.length);
+ }
+ function Yr(a) {
+ return a.f != null ? a.f : "" + a.g;
+ }
+ function Zr(a) {
+ return a.f != null ? a.f : "" + a.g;
+ }
+ function Hsb(a) {
+ sCb(a.b != 0);
+ return a.a.a.c;
+ }
+ function Isb(a) {
+ sCb(a.b != 0);
+ return a.c.b.c;
+ }
+ function Cmd(a) {
+ JD(a, 150) && BD(a, 150).Gh();
+ }
+ function Wwb(a) {
+ return a.b = BD(tib(a.a), 42);
+ }
+ function Ptb(a) {
+ Ltb();
+ this.b = a;
+ this.a = true;
+ }
+ function Xtb(a) {
+ Utb();
+ this.b = a;
+ this.a = true;
+ }
+ function Trb(a) {
+ a.d = new ksb(a);
+ a.e = new Lqb();
+ }
+ function mkb(a) {
+ if (!a) {
+ throw vbb(new Apb());
+ }
+ }
+ function lCb(a) {
+ if (!a) {
+ throw vbb(new Vdb());
+ }
+ }
+ function yCb(a) {
+ if (!a) {
+ throw vbb(new Ydb());
+ }
+ }
+ function qCb(a) {
+ if (!a) {
+ throw vbb(new tcb());
+ }
+ }
+ function sCb(a) {
+ if (!a) {
+ throw vbb(new utb());
+ }
+ }
+ function ksb(a) {
+ lsb.call(this, a, null, null);
+ }
+ function dPb() {
+ $r.call(this, "POLYOMINO", 0);
+ }
+ function Cg(a, b, c, d) {
+ qg.call(this, a, b, c, d);
+ }
+ function zkc(a, b) {
+ gkc();
+ return Rc(a, b.e, b);
+ }
+ function azc(a, b, c) {
+ Vyc();
+ return c.qg(a, b);
+ }
+ function wNb(a, b) {
+ return !!a.q && Mhb(a.q, b);
+ }
+ function JRb(a, b) {
+ return a > 0 ? b * b / a : b * b * 100;
+ }
+ function CRb(a, b) {
+ return a > 0 ? b / (a * a) : b * 100;
+ }
+ function G2c(a, b, c) {
+ return Ekb(b, I2c(a, c));
+ }
+ function t3c(a, b, c) {
+ p3c();
+ a.Xe(b) && c.td(a);
+ }
+ function St(a, b, c) {
+ var d;
+ d = a.Zc(b);
+ d.Rb(c);
+ }
+ function O6c(a, b, c) {
+ a.a += b;
+ a.b += c;
+ return a;
+ }
+ function Z6c(a, b, c) {
+ a.a *= b;
+ a.b *= c;
+ return a;
+ }
+ function b7c(a, b, c) {
+ a.a -= b;
+ a.b -= c;
+ return a;
+ }
+ function a7c(a, b) {
+ a.a = b.a;
+ a.b = b.b;
+ return a;
+ }
+ function V6c(a) {
+ a.a = -a.a;
+ a.b = -a.b;
+ return a;
+ }
+ function Dic(a) {
+ this.c = a;
+ this.a = 1;
+ this.b = 1;
+ }
+ function xed(a) {
+ this.c = a;
+ dld(a, 0);
+ eld(a, 0);
+ }
+ function u7c(a) {
+ Psb.call(this);
+ n7c(this, a);
+ }
+ function AXb(a) {
+ xXb();
+ yXb(this);
+ this.mf(a);
+ }
+ function GRd(a, b) {
+ nRd();
+ qRd.call(this, a, b);
+ }
+ function dSd(a, b) {
+ LRd();
+ RRd.call(this, a, b);
+ }
+ function hSd(a, b) {
+ LRd();
+ RRd.call(this, a, b);
+ }
+ function fSd(a, b) {
+ LRd();
+ dSd.call(this, a, b);
+ }
+ function sId(a, b, c) {
+ dId.call(this, a, b, c, 2);
+ }
+ function zXd(a, b) {
+ UVd();
+ nXd.call(this, a, b);
+ }
+ function BXd(a, b) {
+ UVd();
+ zXd.call(this, a, b);
+ }
+ function DXd(a, b) {
+ UVd();
+ zXd.call(this, a, b);
+ }
+ function FXd(a, b) {
+ UVd();
+ DXd.call(this, a, b);
+ }
+ function PXd(a, b) {
+ UVd();
+ nXd.call(this, a, b);
+ }
+ function RXd(a, b) {
+ UVd();
+ PXd.call(this, a, b);
+ }
+ function XXd(a, b) {
+ UVd();
+ nXd.call(this, a, b);
+ }
+ function pAd(a, b) {
+ return a.c.Fc(BD(b, 133));
+ }
+ function w1d(a, b, c) {
+ return V1d(p1d(a, b), c);
+ }
+ function N2d(a, b, c) {
+ return b.Qk(a.e, a.c, c);
+ }
+ function P2d(a, b, c) {
+ return b.Rk(a.e, a.c, c);
+ }
+ function a3d(a, b) {
+ return xid(a.e, BD(b, 49));
+ }
+ function aTd(a, b, c) {
+ vtd(QSd(a.a), b, eTd(c));
+ }
+ function TOd(a, b, c) {
+ vtd(VKd(a.a), b, XOd(c));
+ }
+ function ypb(a, b) {
+ b.$modCount = a.$modCount;
+ }
+ function MUc() {
+ MUc = ccb;
+ LUc = new Lsd("root");
+ }
+ function LCd() {
+ LCd = ccb;
+ KCd = new lDd();
+ new NDd();
+ }
+ function KVc() {
+ this.a = new Hp();
+ this.b = new Hp();
+ }
+ function FUd() {
+ hJd.call(this);
+ this.Bb |= Tje;
+ }
+ function t_c() {
+ $r.call(this, "GROW_TREE", 0);
+ }
+ function C9d(a) {
+ return a == null ? null : cde(a);
+ }
+ function G9d(a) {
+ return a == null ? null : jde(a);
+ }
+ function J9d(a) {
+ return a == null ? null : fcb(a);
+ }
+ function K9d(a) {
+ return a == null ? null : fcb(a);
+ }
+ function fdb(a) {
+ if (a.o != null) {
+ return;
+ }
+ vdb(a);
+ }
+ function DD(a) {
+ CCb(a == null || KD(a));
+ return a;
+ }
+ function ED(a) {
+ CCb(a == null || LD(a));
+ return a;
+ }
+ function GD(a) {
+ CCb(a == null || ND(a));
+ return a;
+ }
+ function gB(a) {
+ this.q = new $wnd.Date(Sbb(a));
+ }
+ function Mf(a, b) {
+ this.c = a;
+ ne.call(this, a, b);
+ }
+ function Sf(a, b) {
+ this.a = a;
+ Mf.call(this, a, b);
+ }
+ function Hg(a, b) {
+ this.d = a;
+ Dg(this);
+ this.b = b;
+ }
+ function bAb(a, b) {
+ Vzb.call(this, a);
+ this.a = b;
+ }
+ function vAb(a, b) {
+ Vzb.call(this, a);
+ this.a = b;
+ }
+ function sNb(a) {
+ pNb.call(this, 0, 0);
+ this.f = a;
+ }
+ function Vg(a, b, c) {
+ dg.call(this, a, b, c, null);
+ }
+ function Yg(a, b, c) {
+ dg.call(this, a, b, c, null);
+ }
+ function Pxb(a, b, c) {
+ return a.ue(b, c) <= 0 ? c : b;
+ }
+ function Qxb(a, b, c) {
+ return a.ue(b, c) <= 0 ? b : c;
+ }
+ function g4c(a, b) {
+ return BD(Wrb(a.b, b), 149);
+ }
+ function i4c(a, b) {
+ return BD(Wrb(a.c, b), 229);
+ }
+ function wic(a) {
+ return BD(Ikb(a.a, a.b), 287);
+ }
+ function B6c(a) {
+ return new f7c(a.c, a.d + a.a);
+ }
+ function eLc(a) {
+ return FJc(), Jzc(BD(a, 197));
+ }
+ function $Jb() {
+ $Jb = ccb;
+ ZJb = pqb((tdd(), sdd));
+ }
+ function fOb(a, b) {
+ b.a ? gOb(a, b) : Fxb(a.a, b.b);
+ }
+ function qyb(a, b) {
+ if (lyb) {
+ return;
+ }
+ Ekb(a.a, b);
+ }
+ function F2b(a, b) {
+ x2b();
+ return f_b(b.d.i, a);
+ }
+ function _9b(a, b) {
+ I9b();
+ return new gac(b, a);
+ }
+ function _Hb(a, b) {
+ ytb(b, lle);
+ a.f = b;
+ return a;
+ }
+ function Kld(a, b, c) {
+ c = _hd(a, b, 3, c);
+ return c;
+ }
+ function bmd(a, b, c) {
+ c = _hd(a, b, 6, c);
+ return c;
+ }
+ function kpd(a, b, c) {
+ c = _hd(a, b, 9, c);
+ return c;
+ }
+ function Cvd(a, b, c) {
+ ++a.j;
+ a.Ki();
+ Atd(a, b, c);
+ }
+ function Avd(a, b, c) {
+ ++a.j;
+ a.Hi(b, a.oi(b, c));
+ }
+ function bRd(a, b, c) {
+ var d;
+ d = a.Zc(b);
+ d.Rb(c);
+ }
+ function c7d(a, b, c) {
+ return C2d(a.c, a.b, b, c);
+ }
+ function DAd(a, b) {
+ return (b & Ohe) % a.d.length;
+ }
+ function Msd(a, b) {
+ Lsd.call(this, a);
+ this.a = b;
+ }
+ function uVd(a, b) {
+ lVd.call(this, a);
+ this.a = b;
+ }
+ function sYd(a, b) {
+ lVd.call(this, a);
+ this.a = b;
+ }
+ function zyd(a, b) {
+ this.c = a;
+ zud.call(this, b);
+ }
+ function YOd(a, b) {
+ this.a = a;
+ qOd.call(this, b);
+ }
+ function fTd(a, b) {
+ this.a = a;
+ qOd.call(this, b);
+ }
+ function Xp(a) {
+ this.a = (Xj(a, Jie), new Skb(a));
+ }
+ function cq(a) {
+ this.a = (Xj(a, Jie), new Skb(a));
+ }
+ function LA(a) {
+ !a.a && (a.a = new VA());
+ return a.a;
+ }
+ function XMb(a) {
+ if (a > 8) {
+ return 0;
+ }
+ return a + 1;
+ }
+ function Ecb(a, b) {
+ Bcb();
+ return a == b ? 0 : a ? 1 : -1;
+ }
+ function Opb(a, b, c) {
+ return Npb(a, BD(b, 22), c);
+ }
+ function Bz(a, b, c) {
+ return a.apply(b, c);
+ }
+ function Sfb(a, b, c) {
+ a.a += zfb(b, 0, c);
+ return a;
+ }
+ function ijb(a, b) {
+ var c;
+ c = a.e;
+ a.e = b;
+ return c;
+ }
+ function trb(a, b) {
+ var c;
+ c = a[hke];
+ c.call(a, b);
+ }
+ function urb(a, b) {
+ var c;
+ c = a[hke];
+ c.call(a, b);
+ }
+ function Aib(a, b) {
+ a.a.Vc(a.b, b);
+ ++a.b;
+ a.c = -1;
+ }
+ function Urb(a) {
+ Uhb(a.e);
+ a.d.b = a.d;
+ a.d.a = a.d;
+ }
+ function _f(a) {
+ a.b ? _f(a.b) : a.f.c.zc(a.e, a.d);
+ }
+ function _Ab(a, b, c) {
+ EAb();
+ MBb(a, b.Ce(a.a, c));
+ }
+ function Bxb(a, b) {
+ return Vd(Cwb(a.a, b, true));
+ }
+ function Cxb(a, b) {
+ return Vd(Dwb(a.a, b, true));
+ }
+ function _Bb(a, b) {
+ return eCb(new Array(b), a);
+ }
+ function HD(a) {
+ return String.fromCharCode(a);
+ }
+ function mz(a) {
+ return a == null ? null : a.message;
+ }
+ function gRb() {
+ this.a = new Rkb();
+ this.b = new Rkb();
+ }
+ function iTb() {
+ this.a = new MQb();
+ this.b = new tTb();
+ }
+ function tDb() {
+ this.b = new d7c();
+ this.c = new Rkb();
+ }
+ function _Qb() {
+ this.d = new d7c();
+ this.e = new d7c();
+ }
+ function n_b() {
+ this.n = new d7c();
+ this.o = new d7c();
+ }
+ function $Gb() {
+ this.n = new p0b();
+ this.i = new I6c();
+ }
+ function sec() {
+ this.a = new Umc();
+ this.b = new mnc();
+ }
+ function NIc() {
+ this.a = new Rkb();
+ this.d = new Rkb();
+ }
+ function LDc() {
+ this.b = new Tqb();
+ this.a = new Tqb();
+ }
+ function hSc() {
+ this.b = new Lqb();
+ this.a = new Lqb();
+ }
+ function HRc() {
+ this.b = new tRc();
+ this.a = new hRc();
+ }
+ function aHb() {
+ $Gb.call(this);
+ this.a = new d7c();
+ }
+ function Ywb(a) {
+ Zwb.call(this, a, (lxb(), hxb));
+ }
+ function J_b(a, b, c, d) {
+ B_b.call(this, a, b, c, d);
+ }
+ function sqd(a, b, c) {
+ c != null && kmd(b, Wqd(a, c));
+ }
+ function tqd(a, b, c) {
+ c != null && lmd(b, Wqd(a, c));
+ }
+ function Tod(a, b, c) {
+ c = _hd(a, b, 11, c);
+ return c;
+ }
+ function P6c(a, b) {
+ a.a += b.a;
+ a.b += b.b;
+ return a;
+ }
+ function c7c(a, b) {
+ a.a -= b.a;
+ a.b -= b.b;
+ return a;
+ }
+ function u7b(a, b) {
+ return a.n.a = (uCb(b), b) + 10;
+ }
+ function v7b(a, b) {
+ return a.n.a = (uCb(b), b) + 10;
+ }
+ function dLd(a, b) {
+ return b == a || pud(UKd(b), a);
+ }
+ function PYd(a, b) {
+ return Rhb(a.a, b, "") == null;
+ }
+ function E2b(a, b) {
+ x2b();
+ return !f_b(b.d.i, a);
+ }
+ function rjc(a, b) {
+ fad(a.f) ? sjc(a, b) : tjc(a, b);
+ }
+ function h1d(a, b) {
+ var c;
+ c = b.Hh(a.a);
+ return c;
+ }
+ function Cyd(a, b) {
+ qcb.call(this, gve + a + mue + b);
+ }
+ function gUd(a, b, c, d) {
+ cUd.call(this, a, b, c, d);
+ }
+ function Q4d(a, b, c, d) {
+ cUd.call(this, a, b, c, d);
+ }
+ function U4d(a, b, c, d) {
+ Q4d.call(this, a, b, c, d);
+ }
+ function n5d(a, b, c, d) {
+ i5d.call(this, a, b, c, d);
+ }
+ function p5d(a, b, c, d) {
+ i5d.call(this, a, b, c, d);
+ }
+ function v5d(a, b, c, d) {
+ i5d.call(this, a, b, c, d);
+ }
+ function t5d(a, b, c, d) {
+ p5d.call(this, a, b, c, d);
+ }
+ function A5d(a, b, c, d) {
+ p5d.call(this, a, b, c, d);
+ }
+ function y5d(a, b, c, d) {
+ v5d.call(this, a, b, c, d);
+ }
+ function D5d(a, b, c, d) {
+ A5d.call(this, a, b, c, d);
+ }
+ function d6d(a, b, c, d) {
+ Y5d.call(this, a, b, c, d);
+ }
+ function Vp(a, b, c) {
+ this.a = a;
+ qc.call(this, b, c);
+ }
+ function tk(a, b, c) {
+ this.c = b;
+ this.b = c;
+ this.a = a;
+ }
+ function ik(a, b, c) {
+ return a.d = BD(b.Kb(c), 164);
+ }
+ function j6d(a, b) {
+ return a.Aj().Nh().Kh(a, b);
+ }
+ function h6d(a, b) {
+ return a.Aj().Nh().Ih(a, b);
+ }
+ function Fdb(a, b) {
+ return uCb(a), PD(a) === PD(b);
+ }
+ function dfb(a, b) {
+ return uCb(a), PD(a) === PD(b);
+ }
+ function Dxb(a, b) {
+ return Vd(Cwb(a.a, b, false));
+ }
+ function Exb(a, b) {
+ return Vd(Dwb(a.a, b, false));
+ }
+ function vBb(a, b) {
+ return a.b.sd(new yBb(a, b));
+ }
+ function BBb(a, b) {
+ return a.b.sd(new EBb(a, b));
+ }
+ function HBb(a, b) {
+ return a.b.sd(new KBb(a, b));
+ }
+ function lfb(a, b, c) {
+ return a.lastIndexOf(b, c);
+ }
+ function uTb(a, b, c) {
+ return Kdb(a[b.b], a[c.b]);
+ }
+ function RTb(a, b) {
+ return yNb(b, (Nyc(), Cwc), a);
+ }
+ function fmc(a, b) {
+ return beb(b.a.d.p, a.a.d.p);
+ }
+ function emc(a, b) {
+ return beb(a.a.d.p, b.a.d.p);
+ }
+ function _Oc(a, b) {
+ return Kdb(a.c - a.s, b.c - b.s);
+ }
+ function S_b(a) {
+ return !a.c ? -1 : Jkb(a.c.a, a, 0);
+ }
+ function Vxd(a) {
+ return a < 100 ? null : new Ixd(a);
+ }
+ function ecd(a) {
+ return a == Zbd || a == _bd || a == $bd;
+ }
+ function zAd(a, b) {
+ return JD(b, 15) && Btd(a.c, b);
+ }
+ function vyb(a, b) {
+ if (lyb) {
+ return;
+ }
+ !!b && (a.d = b);
+ }
+ function ujb(a, b) {
+ var c;
+ c = b;
+ return !!Awb(a, c);
+ }
+ function czd(a, b) {
+ this.c = a;
+ Pyd.call(this, a, b);
+ }
+ function fBb(a) {
+ this.c = a;
+ nvb.call(this, rie, 0);
+ }
+ function Avb(a, b) {
+ Bvb.call(this, a, a.length, b);
+ }
+ function aId(a, b, c) {
+ return BD(a.c, 69).lk(b, c);
+ }
+ function bId(a, b, c) {
+ return BD(a.c, 69).mk(b, c);
+ }
+ function O2d(a, b, c) {
+ return N2d(a, BD(b, 332), c);
+ }
+ function Q2d(a, b, c) {
+ return P2d(a, BD(b, 332), c);
+ }
+ function i3d(a, b, c) {
+ return h3d(a, BD(b, 332), c);
+ }
+ function k3d(a, b, c) {
+ return j3d(a, BD(b, 332), c);
+ }
+ function tn(a, b) {
+ return b == null ? null : Hv(a.b, b);
+ }
+ function Kcb(a) {
+ return LD(a) ? (uCb(a), a) : a.ke();
+ }
+ function Ldb(a) {
+ return !isNaN(a) && !isFinite(a);
+ }
+ function Wn(a) {
+ Ql();
+ this.a = (mmb(), new zob(a));
+ }
+ function dIc(a) {
+ FHc();
+ this.d = a;
+ this.a = new jkb();
+ }
+ function xqb(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ function Nrb(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ function $sb(a, b, c) {
+ this.d = a;
+ this.b = c;
+ this.a = b;
+ }
+ function Qsb(a) {
+ Csb(this);
+ Osb(this);
+ ye(this, a);
+ }
+ function Tkb(a) {
+ Ckb(this);
+ bCb(this.c, 0, a.Pc());
+ }
+ function Xwb(a) {
+ uib(a.a);
+ Kwb(a.c, a.b);
+ a.b = null;
+ }
+ function iyb(a) {
+ this.a = a;
+ Zfb();
+ Cbb(Date.now());
+ }
+ function JCb() {
+ JCb = ccb;
+ GCb = new nb();
+ ICb = new nb();
+ }
+ function ntb() {
+ ntb = ccb;
+ ltb = new otb();
+ mtb = new qtb();
+ }
+ function kzd() {
+ kzd = ccb;
+ jzd = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ function tGd() {
+ tGd = ccb;
+ sGd = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ function $Gd() {
+ $Gd = ccb;
+ ZGd = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ function Ql() {
+ Ql = ccb;
+ new Zl((mmb(), mmb(), jmb));
+ }
+ function pxb(a) {
+ lxb();
+ return es((zxb(), yxb), a);
+ }
+ function Hyb(a) {
+ Fyb();
+ return es((Kyb(), Jyb), a);
+ }
+ function OEb(a) {
+ MEb();
+ return es((REb(), QEb), a);
+ }
+ function WEb(a) {
+ UEb();
+ return es((ZEb(), YEb), a);
+ }
+ function tFb(a) {
+ rFb();
+ return es((wFb(), vFb), a);
+ }
+ function iHb(a) {
+ gHb();
+ return es((lHb(), kHb), a);
+ }
+ function PHb(a) {
+ NHb();
+ return es((SHb(), RHb), a);
+ }
+ function GIb(a) {
+ EIb();
+ return es((JIb(), IIb), a);
+ }
+ function vJb(a) {
+ qJb();
+ return es((yJb(), xJb), a);
+ }
+ function xLb(a) {
+ vLb();
+ return es((ALb(), zLb), a);
+ }
+ function TMb(a) {
+ RMb();
+ return es((WMb(), VMb), a);
+ }
+ function TOb(a) {
+ ROb();
+ return es((WOb(), VOb), a);
+ }
+ function ePb(a) {
+ cPb();
+ return es((hPb(), gPb), a);
+ }
+ function ZRb(a) {
+ XRb();
+ return es((aSb(), _Rb), a);
+ }
+ function ATb(a) {
+ yTb();
+ return es((DTb(), CTb), a);
+ }
+ function sUb(a) {
+ qUb();
+ return es((vUb(), uUb), a);
+ }
+ function rWb(a) {
+ lWb();
+ return es((uWb(), tWb), a);
+ }
+ function TXb(a) {
+ RXb();
+ return es((WXb(), VXb), a);
+ }
+ function Mb(a, b) {
+ if (!a) {
+ throw vbb(new Wdb(b));
+ }
+ }
+ function l0b(a) {
+ j0b();
+ return es((o0b(), n0b), a);
+ }
+ function r0b(a) {
+ B_b.call(this, a.d, a.c, a.a, a.b);
+ }
+ function K_b(a) {
+ B_b.call(this, a.d, a.c, a.a, a.b);
+ }
+ function mKb(a, b, c) {
+ this.b = a;
+ this.c = b;
+ this.a = c;
+ }
+ function BZb(a, b, c) {
+ this.b = a;
+ this.a = b;
+ this.c = c;
+ }
+ function TNb(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ function uOb(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ function S3b(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ function Z6b(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ function n9b(a, b, c) {
+ this.b = a;
+ this.a = b;
+ this.c = c;
+ }
+ function x$b(a, b, c) {
+ this.e = b;
+ this.b = a;
+ this.d = c;
+ }
+ function $Ab(a, b, c) {
+ EAb();
+ a.a.Od(b, c);
+ return b;
+ }
+ function LGb(a) {
+ var b;
+ b = new KGb();
+ b.e = a;
+ return b;
+ }
+ function iLb(a) {
+ var b;
+ b = new fLb();
+ b.b = a;
+ return b;
+ }
+ function D6b() {
+ D6b = ccb;
+ B6b = new M6b();
+ C6b = new P6b();
+ }
+ function Hgc() {
+ Hgc = ccb;
+ Fgc = new ghc();
+ Ggc = new ihc();
+ }
+ function jbc(a) {
+ gbc();
+ return es((mbc(), lbc), a);
+ }
+ function Cjc(a) {
+ Ajc();
+ return es((Fjc(), Ejc), a);
+ }
+ function Clc(a) {
+ Alc();
+ return es((Flc(), Elc), a);
+ }
+ function Cpc(a) {
+ Apc();
+ return es((Fpc(), Epc), a);
+ }
+ function Kpc(a) {
+ Ipc();
+ return es((Npc(), Mpc), a);
+ }
+ function Wpc(a) {
+ Rpc();
+ return es((Zpc(), Ypc), a);
+ }
+ function $jc(a) {
+ Xjc();
+ return es((bkc(), akc), a);
+ }
+ function Hkc(a) {
+ Fkc();
+ return es((Kkc(), Jkc), a);
+ }
+ function dqc(a) {
+ bqc();
+ return es((gqc(), fqc), a);
+ }
+ function rqc(a) {
+ mqc();
+ return es((uqc(), tqc), a);
+ }
+ function zqc(a) {
+ xqc();
+ return es((Cqc(), Bqc), a);
+ }
+ function Iqc(a) {
+ Gqc();
+ return es((Lqc(), Kqc), a);
+ }
+ function Vqc(a) {
+ Sqc();
+ return es((Yqc(), Xqc), a);
+ }
+ function brc(a) {
+ _qc();
+ return es((erc(), drc), a);
+ }
+ function nrc(a) {
+ lrc();
+ return es((qrc(), prc), a);
+ }
+ function Arc(a) {
+ yrc();
+ return es((Drc(), Crc), a);
+ }
+ function Qrc(a) {
+ Orc();
+ return es((Trc(), Src), a);
+ }
+ function Zrc(a) {
+ Xrc();
+ return es((asc(), _rc), a);
+ }
+ function gsc(a) {
+ esc();
+ return es((jsc(), isc), a);
+ }
+ function osc(a) {
+ msc();
+ return es((rsc(), qsc), a);
+ }
+ function Etc(a) {
+ Ctc();
+ return es((Htc(), Gtc), a);
+ }
+ function qzc(a) {
+ lzc();
+ return es((tzc(), szc), a);
+ }
+ function Azc(a) {
+ xzc();
+ return es((Dzc(), Czc), a);
+ }
+ function Mzc(a) {
+ Izc();
+ return es((Pzc(), Ozc), a);
+ }
+ function MAc(a) {
+ KAc();
+ return es((PAc(), OAc), a);
+ }
+ function mAc(a) {
+ kAc();
+ return es((pAc(), oAc), a);
+ }
+ function vAc(a) {
+ tAc();
+ return es((yAc(), xAc), a);
+ }
+ function DAc(a) {
+ BAc();
+ return es((GAc(), FAc), a);
+ }
+ function VAc(a) {
+ TAc();
+ return es((YAc(), XAc), a);
+ }
+ function $zc(a) {
+ Vzc();
+ return es((bAc(), aAc), a);
+ }
+ function bBc(a) {
+ _Ac();
+ return es((eBc(), dBc), a);
+ }
+ function vBc(a) {
+ tBc();
+ return es((yBc(), xBc), a);
+ }
+ function EBc(a) {
+ CBc();
+ return es((HBc(), GBc), a);
+ }
+ function NBc(a) {
+ LBc();
+ return es((QBc(), PBc), a);
+ }
+ function tGc(a) {
+ rGc();
+ return es((wGc(), vGc), a);
+ }
+ function WIc(a) {
+ UIc();
+ return es((ZIc(), YIc), a);
+ }
+ function $Lc(a) {
+ YLc();
+ return es((bMc(), aMc), a);
+ }
+ function gMc(a) {
+ eMc();
+ return es((jMc(), iMc), a);
+ }
+ function JOc(a) {
+ HOc();
+ return es((MOc(), LOc), a);
+ }
+ function HQc(a) {
+ FQc();
+ return es((KQc(), JQc), a);
+ }
+ function DRc(a) {
+ yRc();
+ return es((GRc(), FRc), a);
+ }
+ function tSc(a) {
+ qSc();
+ return es((wSc(), vSc), a);
+ }
+ function UTc(a) {
+ STc();
+ return es((XTc(), WTc), a);
+ }
+ function UUc(a) {
+ PUc();
+ return es((XUc(), WUc), a);
+ }
+ function aUc(a) {
+ $Tc();
+ return es((dUc(), cUc), a);
+ }
+ function wVc(a) {
+ tVc();
+ return es((zVc(), yVc), a);
+ }
+ function iWc(a) {
+ fWc();
+ return es((lWc(), kWc), a);
+ }
+ function sWc(a) {
+ pWc();
+ return es((vWc(), uWc), a);
+ }
+ function lXc(a) {
+ iXc();
+ return es((oXc(), nXc), a);
+ }
+ function vXc(a) {
+ sXc();
+ return es((yXc(), xXc), a);
+ }
+ function BYc(a) {
+ zYc();
+ return es((EYc(), DYc), a);
+ }
+ function m$c(a) {
+ k$c();
+ return es((p$c(), o$c), a);
+ }
+ function $$c(a) {
+ Y$c();
+ return es((b_c(), a_c), a);
+ }
+ function n_c(a) {
+ i_c();
+ return es((q_c(), p_c), a);
+ }
+ function w_c(a) {
+ s_c();
+ return es((z_c(), y_c), a);
+ }
+ function E_c(a) {
+ C_c();
+ return es((H_c(), G_c), a);
+ }
+ function P_c(a) {
+ N_c();
+ return es((S_c(), R_c), a);
+ }
+ function W0c(a) {
+ R0c();
+ return es((Z0c(), Y0c), a);
+ }
+ function f1c(a) {
+ a1c();
+ return es((i1c(), h1c), a);
+ }
+ function P5c(a) {
+ N5c();
+ return es((S5c(), R5c), a);
+ }
+ function b6c(a) {
+ _5c();
+ return es((e6c(), d6c), a);
+ }
+ function H7c(a) {
+ F7c();
+ return es((K7c(), J7c), a);
+ }
+ function k8c(a) {
+ i8c();
+ return es((n8c(), m8c), a);
+ }
+ function V8b(a) {
+ S8b();
+ return es((Y8b(), X8b), a);
+ }
+ function A5b(a) {
+ y5b();
+ return es((D5b(), C5b), a);
+ }
+ function jad(a) {
+ ead();
+ return es((mad(), lad), a);
+ }
+ function sad(a) {
+ qad();
+ return es((vad(), uad), a);
+ }
+ function Cad(a) {
+ Aad();
+ return es((Fad(), Ead), a);
+ }
+ function Oad(a) {
+ Mad();
+ return es((Rad(), Qad), a);
+ }
+ function jbd(a) {
+ hbd();
+ return es((mbd(), lbd), a);
+ }
+ function ubd(a) {
+ rbd();
+ return es((xbd(), wbd), a);
+ }
+ function Kbd(a) {
+ Hbd();
+ return es((Nbd(), Mbd), a);
+ }
+ function Vbd(a) {
+ Tbd();
+ return es((Ybd(), Xbd), a);
+ }
+ function hcd(a) {
+ dcd();
+ return es((kcd(), jcd), a);
+ }
+ function vcd(a) {
+ rcd();
+ return es((ycd(), xcd), a);
+ }
+ function vdd(a) {
+ tdd();
+ return es((ydd(), xdd), a);
+ }
+ function Kdd(a) {
+ Idd();
+ return es((Ndd(), Mdd), a);
+ }
+ function $cd(a) {
+ Ucd();
+ return es((cdd(), bdd), a);
+ }
+ function Fed(a) {
+ Ded();
+ return es((Ied(), Hed), a);
+ }
+ function rgd(a) {
+ pgd();
+ return es((ugd(), tgd), a);
+ }
+ function Esd(a) {
+ Csd();
+ return es((Hsd(), Gsd), a);
+ }
+ function Yoc(a, b) {
+ return (uCb(a), a) + (uCb(b), b);
+ }
+ function NNd(a, b) {
+ Zfb();
+ return wtd(ZKd(a.a), b);
+ }
+ function SNd(a, b) {
+ Zfb();
+ return wtd(ZKd(a.a), b);
+ }
+ function bPc(a, b) {
+ this.c = a;
+ this.a = b;
+ this.b = b - a;
+ }
+ function nYc(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ function L1c(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ function T1c(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ function Rrd(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ function zCd(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ function IVd(a, b, c) {
+ this.e = a;
+ this.a = b;
+ this.c = c;
+ }
+ function kWd(a, b, c) {
+ UVd();
+ cWd.call(this, a, b, c);
+ }
+ function HXd(a, b, c) {
+ UVd();
+ oXd.call(this, a, b, c);
+ }
+ function TXd(a, b, c) {
+ UVd();
+ oXd.call(this, a, b, c);
+ }
+ function ZXd(a, b, c) {
+ UVd();
+ oXd.call(this, a, b, c);
+ }
+ function JXd(a, b, c) {
+ UVd();
+ HXd.call(this, a, b, c);
+ }
+ function LXd(a, b, c) {
+ UVd();
+ HXd.call(this, a, b, c);
+ }
+ function NXd(a, b, c) {
+ UVd();
+ LXd.call(this, a, b, c);
+ }
+ function VXd(a, b, c) {
+ UVd();
+ TXd.call(this, a, b, c);
+ }
+ function _Xd(a, b, c) {
+ UVd();
+ ZXd.call(this, a, b, c);
+ }
+ function $j(a, b) {
+ Qb(a);
+ Qb(b);
+ return new _j(a, b);
+ }
+ function Nq(a, b) {
+ Qb(a);
+ Qb(b);
+ return new Wq(a, b);
+ }
+ function Rq(a, b) {
+ Qb(a);
+ Qb(b);
+ return new ar(a, b);
+ }
+ function lr(a, b) {
+ Qb(a);
+ Qb(b);
+ return new zr(a, b);
+ }
+ function BD(a, b) {
+ CCb(a == null || AD(a, b));
+ return a;
+ }
+ function Nu(a) {
+ var b;
+ b = new Rkb();
+ fr(b, a);
+ return b;
+ }
+ function Ex(a) {
+ var b;
+ b = new Tqb();
+ fr(b, a);
+ return b;
+ }
+ function Hx(a) {
+ var b;
+ b = new Gxb();
+ Jq(b, a);
+ return b;
+ }
+ function Ru(a) {
+ var b;
+ b = new Psb();
+ Jq(b, a);
+ return b;
+ }
+ function YEc(a) {
+ !a.e && (a.e = new Rkb());
+ return a.e;
+ }
+ function SMd(a) {
+ !a.c && (a.c = new xYd());
+ return a.c;
+ }
+ function Ekb(a, b) {
+ a.c[a.c.length] = b;
+ return true;
+ }
+ function WA(a, b) {
+ this.c = a;
+ this.b = b;
+ this.a = false;
+ }
+ function Gg(a) {
+ this.d = a;
+ Dg(this);
+ this.b = ed(a.d);
+ }
+ function pzb() {
+ this.a = ";,;";
+ this.b = "";
+ this.c = "";
+ }
+ function Bvb(a, b, c) {
+ qvb.call(this, b, c);
+ this.a = a;
+ }
+ function fAb(a, b, c) {
+ this.b = a;
+ fvb.call(this, b, c);
+ }
+ function lsb(a, b, c) {
+ this.c = a;
+ pjb.call(this, b, c);
+ }
+ function bCb(a, b, c) {
+ $Bb(c, 0, a, b, c.length, false);
+ }
+ function HVb(a, b, c, d, e) {
+ a.b = b;
+ a.c = c;
+ a.d = d;
+ a.a = e;
+ }
+ function eBb(a, b) {
+ if (b) {
+ a.b = b;
+ a.a = (Tzb(b), b.a);
+ }
+ }
+ function v_b(a, b, c, d, e) {
+ a.d = b;
+ a.c = c;
+ a.a = d;
+ a.b = e;
+ }
+ function h5b(a) {
+ var b, c;
+ b = a.b;
+ c = a.c;
+ a.b = c;
+ a.c = b;
+ }
+ function k5b(a) {
+ var b, c;
+ c = a.d;
+ b = a.a;
+ a.d = b;
+ a.a = c;
+ }
+ function Lbb(a) {
+ return zbb(iD(Fbb(a) ? Rbb(a) : a));
+ }
+ function rlc(a, b) {
+ return beb(D0b(a.d), D0b(b.d));
+ }
+ function uic(a, b) {
+ return b == (Ucd(), Tcd) ? a.c : a.d;
+ }
+ function FHc() {
+ FHc = ccb;
+ DHc = (Ucd(), Tcd);
+ EHc = zcd;
+ }
+ function DRb() {
+ this.b = Edb(ED(Ksd((wSb(), vSb))));
+ }
+ function aBb(a) {
+ return EAb(), KC(SI, Uhe, 1, a, 5, 1);
+ }
+ function C6c(a) {
+ return new f7c(a.c + a.b, a.d + a.a);
+ }
+ function Vmc(a, b) {
+ Imc();
+ return beb(a.d.p, b.d.p);
+ }
+ function Lsb(a) {
+ sCb(a.b != 0);
+ return Nsb(a, a.a.a);
+ }
+ function Msb(a) {
+ sCb(a.b != 0);
+ return Nsb(a, a.c.b);
+ }
+ function rCb(a, b) {
+ if (!a) {
+ throw vbb(new ucb(b));
+ }
+ }
+ function mCb(a, b) {
+ if (!a) {
+ throw vbb(new Wdb(b));
+ }
+ }
+ function dWb(a, b, c) {
+ cWb.call(this, a, b);
+ this.b = c;
+ }
+ function pMd(a, b, c) {
+ MLd.call(this, a, b);
+ this.c = c;
+ }
+ function Dnc(a, b, c) {
+ Cnc.call(this, b, c);
+ this.d = a;
+ }
+ function _Gd(a) {
+ $Gd();
+ MGd.call(this);
+ this.th(a);
+ }
+ function PNd(a, b, c) {
+ this.a = a;
+ nNd.call(this, b, c);
+ }
+ function UNd(a, b, c) {
+ this.a = a;
+ nNd.call(this, b, c);
+ }
+ function k2d(a, b, c) {
+ MLd.call(this, a, b);
+ this.c = c;
+ }
+ function y1d() {
+ T0d();
+ z1d.call(this, (yFd(), xFd));
+ }
+ function gFd(a) {
+ return a != null && !OEd(a, CEd, DEd);
+ }
+ function dFd(a, b) {
+ return (jFd(a) << 4 | jFd(b)) & aje;
+ }
+ function ln(a, b) {
+ return Vm(), Wj(a, b), new iy(a, b);
+ }
+ function Sdd(a, b) {
+ var c;
+ if (a.n) {
+ c = b;
+ Ekb(a.f, c);
+ }
+ }
+ function Upd(a, b, c) {
+ var d;
+ d = new yC(c);
+ cC(a, b, d);
+ }
+ function WUd(a, b) {
+ var c;
+ c = a.c;
+ VUd(a, b);
+ return c;
+ }
+ function Ydd(a, b) {
+ b < 0 ? a.g = -1 : a.g = b;
+ return a;
+ }
+ function $6c(a, b) {
+ W6c(a);
+ a.a *= b;
+ a.b *= b;
+ return a;
+ }
+ function G6c(a, b, c, d, e) {
+ a.c = b;
+ a.d = c;
+ a.b = d;
+ a.a = e;
+ }
+ function Dsb(a, b) {
+ Gsb(a, b, a.c.b, a.c);
+ return true;
+ }
+ function jsb(a) {
+ a.a.b = a.b;
+ a.b.a = a.a;
+ a.a = a.b = null;
+ }
+ function Aq(a) {
+ this.b = a;
+ this.a = Wm(this.b.a).Ed();
+ }
+ function Wq(a, b) {
+ this.b = a;
+ this.a = b;
+ ol.call(this);
+ }
+ function ar(a, b) {
+ this.a = a;
+ this.b = b;
+ ol.call(this);
+ }
+ function vvb(a, b) {
+ qvb.call(this, b, 1040);
+ this.a = a;
+ }
+ function Eeb(a) {
+ return a == 0 || isNaN(a) ? a : a < 0 ? -1 : 1;
+ }
+ function WPb(a) {
+ QPb();
+ return jtd(a) == Xod(ltd(a));
+ }
+ function XPb(a) {
+ QPb();
+ return ltd(a) == Xod(jtd(a));
+ }
+ function iYb(a, b) {
+ return hYb(a, new cWb(b.a, b.b));
+ }
+ function NZb(a) {
+ return !OZb(a) && a.c.i.c == a.d.i.c;
+ }
+ function _Gb(a) {
+ var b;
+ b = a.n;
+ return a.a.b + b.d + b.a;
+ }
+ function YHb(a) {
+ var b;
+ b = a.n;
+ return a.e.b + b.d + b.a;
+ }
+ function ZHb(a) {
+ var b;
+ b = a.n;
+ return a.e.a + b.b + b.c;
+ }
+ function zfe(a) {
+ wfe();
+ return new ige(0, a);
+ }
+ function o_b(a) {
+ if (a.a) {
+ return a.a;
+ }
+ return JZb(a);
+ }
+ function CCb(a) {
+ if (!a) {
+ throw vbb(new Cdb(null));
+ }
+ }
+ function X6d() {
+ X6d = ccb;
+ W6d = (mmb(), new anb(Fwe));
+ }
+ function ex() {
+ ex = ccb;
+ new gx((_k(), $k), (Lk(), Kk));
+ }
+ function oeb() {
+ oeb = ccb;
+ neb = KC(JI, nie, 19, 256, 0, 1);
+ }
+ function d$c(a, b, c, d) {
+ e$c.call(this, a, b, c, d, 0, 0);
+ }
+ function sQc(a, b, c) {
+ return Rhb(a.b, BD(c.b, 17), b);
+ }
+ function tQc(a, b, c) {
+ return Rhb(a.b, BD(c.b, 17), b);
+ }
+ function xfd(a, b) {
+ return Ekb(a, new f7c(b.a, b.b));
+ }
+ function Bic(a, b) {
+ return a.c < b.c ? -1 : a.c == b.c ? 0 : 1;
+ }
+ function B0b(a) {
+ return a.e.c.length + a.g.c.length;
+ }
+ function D0b(a) {
+ return a.e.c.length - a.g.c.length;
+ }
+ function Ojc(a) {
+ return a.b.c.length - a.e.c.length;
+ }
+ function dKc(a) {
+ FJc();
+ return (Ucd(), Ecd).Hc(a.j);
+ }
+ function lHd(a) {
+ $Gd();
+ _Gd.call(this, a);
+ this.a = -1;
+ }
+ function R7d(a, b) {
+ f7d.call(this, a, b);
+ this.a = this;
+ }
+ function odb(a, b) {
+ var c;
+ c = ldb(a, b);
+ c.i = 2;
+ return c;
+ }
+ function Evd(a, b) {
+ var c;
+ ++a.j;
+ c = a.Ti(b);
+ return c;
+ }
+ function e3c(a, b, c) {
+ a.a = -1;
+ i3c(a, b.g, c);
+ return a;
+ }
+ function Qrd(a, b, c) {
+ Kqd(a.a, a.b, a.c, BD(b, 202), c);
+ }
+ function OHd(a, b) {
+ PHd(a, b == null ? null : (uCb(b), b));
+ }
+ function SUd(a, b) {
+ UUd(a, b == null ? null : (uCb(b), b));
+ }
+ function TUd(a, b) {
+ UUd(a, b == null ? null : (uCb(b), b));
+ }
+ function Zj(a, b, c) {
+ return new tk(oAb(a).Ie(), c, b);
+ }
+ function IC(a, b, c, d, e, f) {
+ return JC(a, b, c, d, e, 0, f);
+ }
+ function Ucb() {
+ Ucb = ccb;
+ Tcb = KC(xI, nie, 217, 256, 0, 1);
+ }
+ function Ceb() {
+ Ceb = ccb;
+ Beb = KC(MI, nie, 162, 256, 0, 1);
+ }
+ function Yeb() {
+ Yeb = ccb;
+ Xeb = KC(UI, nie, 184, 256, 0, 1);
+ }
+ function ddb() {
+ ddb = ccb;
+ cdb = KC(yI, nie, 172, 128, 0, 1);
+ }
+ function IVb() {
+ HVb(this, false, false, false, false);
+ }
+ function my(a) {
+ im();
+ this.a = (mmb(), new anb(Qb(a)));
+ }
+ function ir(a) {
+ Qb(a);
+ while (a.Ob()) {
+ a.Pb();
+ a.Qb();
+ }
+ }
+ function Tw(a) {
+ a.a.cd();
+ BD(a.a.dd(), 14).gc();
+ zh();
+ }
+ function mf(a) {
+ this.c = a;
+ this.b = this.c.d.vc().Kc();
+ }
+ function fqb(a) {
+ this.c = a;
+ this.a = new Gqb(this.c.a);
+ }
+ function Vqb(a) {
+ this.a = new Mqb(a.gc());
+ ye(this, a);
+ }
+ function Bsb(a) {
+ Wqb.call(this, new $rb());
+ ye(this, a);
+ }
+ function Rfb(a, b) {
+ a.a += zfb(b, 0, b.length);
+ return a;
+ }
+ function Ikb(a, b) {
+ tCb(b, a.c.length);
+ return a.c[b];
+ }
+ function $lb(a, b) {
+ tCb(b, a.a.length);
+ return a.a[b];
+ }
+ function YAb(a, b) {
+ EAb();
+ Vzb.call(this, a);
+ this.a = b;
+ }
+ function Qyb(a, b) {
+ return Aeb(wbb(Aeb(a.a).a, b.a));
+ }
+ function jpb(a, b) {
+ return uCb(a), Fcb(a, (uCb(b), b));
+ }
+ function opb(a, b) {
+ return uCb(b), Fcb(b, (uCb(a), a));
+ }
+ function Oyb(a, b) {
+ return NC(b, 0, Bzb(b[0], Aeb(1)));
+ }
+ function Bzb(a, b) {
+ return Qyb(BD(a, 162), BD(b, 162));
+ }
+ function vic(a) {
+ return a.c - BD(Ikb(a.a, a.b), 287).b;
+ }
+ function uNb(a) {
+ return !a.q ? (mmb(), mmb(), kmb) : a.q;
+ }
+ function Xi(a) {
+ return a.e.Hd().gc() * a.c.Hd().gc();
+ }
+ function onc(a, b, c) {
+ return beb(b.d[a.g], c.d[a.g]);
+ }
+ function YHc(a, b, c) {
+ return beb(a.d[b.p], a.d[c.p]);
+ }
+ function ZHc(a, b, c) {
+ return beb(a.d[b.p], a.d[c.p]);
+ }
+ function $Hc(a, b, c) {
+ return beb(a.d[b.p], a.d[c.p]);
+ }
+ function _Hc(a, b, c) {
+ return beb(a.d[b.p], a.d[c.p]);
+ }
+ function q$c(a, b, c) {
+ return $wnd.Math.min(c / a, 1 / b);
+ }
+ function sEc(a, b) {
+ return a ? 0 : $wnd.Math.max(0, b - 1);
+ }
+ function Elb(a, b) {
+ var c;
+ for (c = 0; c < b; ++c) {
+ a[c] = -1;
+ }
+ }
+ function bVc(a) {
+ var b;
+ b = hVc(a);
+ return !b ? a : bVc(b);
+ }
+ function Voc(a, b) {
+ a.a == null && Toc(a);
+ return a.a[b];
+ }
+ function qed(a) {
+ if (a.c) {
+ return a.c.f;
+ }
+ return a.e.b;
+ }
+ function red(a) {
+ if (a.c) {
+ return a.c.g;
+ }
+ return a.e.a;
+ }
+ function pFd(a) {
+ zud.call(this, a.gc());
+ ytd(this, a);
+ }
+ function nXd(a, b) {
+ UVd();
+ VVd.call(this, b);
+ this.a = a;
+ }
+ function KYd(a, b, c) {
+ this.a = a;
+ xMd.call(this, b, c, 2);
+ }
+ function B_b(a, b, c, d) {
+ v_b(this, a, b, c, d);
+ }
+ function ige(a, b) {
+ wfe();
+ xfe.call(this, a);
+ this.a = b;
+ }
+ function jgd(a) {
+ this.b = new Psb();
+ this.a = a;
+ this.c = -1;
+ }
+ function MOb() {
+ this.d = new f7c(0, 0);
+ this.e = new Tqb();
+ }
+ function Nr(a) {
+ qc.call(this, 0, 0);
+ this.a = a;
+ this.b = 0;
+ }
+ function ejc(a) {
+ this.a = a;
+ this.c = new Lqb();
+ $ic(this);
+ }
+ function ju(a) {
+ if (a.e.c != a.b) {
+ throw vbb(new Apb());
+ }
+ }
+ function bt(a) {
+ if (a.c.e != a.a) {
+ throw vbb(new Apb());
+ }
+ }
+ function Tbb(a) {
+ if (Fbb(a)) {
+ return a | 0;
+ }
+ return pD(a);
+ }
+ function Bfe(a, b) {
+ wfe();
+ return new rge(a, b);
+ }
+ function SEd(a, b) {
+ return a == null ? b == null : dfb(a, b);
+ }
+ function TEd(a, b) {
+ return a == null ? b == null : efb(a, b);
+ }
+ function Npb(a, b, c) {
+ rqb(a.a, b);
+ return Qpb(a, b.g, c);
+ }
+ function Mlb(a, b, c) {
+ oCb(0, b, a.length);
+ Klb(a, 0, b, c);
+ }
+ function Dkb(a, b, c) {
+ wCb(b, a.c.length);
+ aCb(a.c, b, c);
+ }
+ function Dlb(a, b, c) {
+ var d;
+ for (d = 0; d < b; ++d) {
+ a[d] = c;
+ }
+ }
+ function qqb(a, b) {
+ var c;
+ c = pqb(a);
+ nmb(c, b);
+ return c;
+ }
+ function Oz(a, b) {
+ !a && (a = []);
+ a[a.length] = b;
+ return a;
+ }
+ function Brb(a, b) {
+ return !(a.a.get(b) === void 0);
+ }
+ function Wyb(a, b) {
+ return Nyb(new rzb(), new bzb(a), b);
+ }
+ function Itb(a) {
+ return a == null ? ztb : new Ftb(uCb(a));
+ }
+ function tqb(a, b) {
+ return JD(b, 22) && uqb(a, BD(b, 22));
+ }
+ function vqb(a, b) {
+ return JD(b, 22) && wqb(a, BD(b, 22));
+ }
+ function Aub(a) {
+ return Cub(a, 26) * ike + Cub(a, 27) * jke;
+ }
+ function MC(a) {
+ return Array.isArray(a) && a.im === gcb;
+ }
+ function bg(a) {
+ a.b ? bg(a.b) : a.d.dc() && a.f.c.Bc(a.e);
+ }
+ function $Nb(a, b) {
+ P6c(a.c, b);
+ a.b.c += b.a;
+ a.b.d += b.b;
+ }
+ function ZNb(a, b) {
+ $Nb(a, c7c(new f7c(b.a, b.b), a.c));
+ }
+ function BLb(a, b) {
+ this.b = new Psb();
+ this.a = a;
+ this.c = b;
+ }
+ function OVb() {
+ this.b = new $Vb();
+ this.c = new SVb(this);
+ }
+ function oEb() {
+ this.d = new CEb();
+ this.e = new uEb(this);
+ }
+ function aCc() {
+ ZBc();
+ this.f = new Psb();
+ this.e = new Psb();
+ }
+ function $Jc() {
+ FJc();
+ this.k = new Lqb();
+ this.d = new Tqb();
+ }
+ function Rgd() {
+ Rgd = ccb;
+ Qgd = new Osd((Y9c(), s9c), 0);
+ }
+ function Mr() {
+ Mr = ccb;
+ Lr = new Nr(KC(SI, Uhe, 1, 0, 5, 1));
+ }
+ function gfc(a, b, c) {
+ bfc(c, a, 1);
+ Ekb(b, new Tfc(c, a));
+ }
+ function hfc(a, b, c) {
+ cfc(c, a, 1);
+ Ekb(b, new dgc(c, a));
+ }
+ function R$c(a, b, c) {
+ return Qqb(a, new aDb(b.a, c.a));
+ }
+ function ACc(a, b, c) {
+ return -beb(a.f[b.p], a.f[c.p]);
+ }
+ function mHb(a, b, c) {
+ var d;
+ if (a) {
+ d = a.i;
+ d.c = b;
+ d.b = c;
+ }
+ }
+ function nHb(a, b, c) {
+ var d;
+ if (a) {
+ d = a.i;
+ d.d = b;
+ d.a = c;
+ }
+ }
+ function c3c(a, b, c) {
+ a.a = -1;
+ i3c(a, b.g + 1, c);
+ return a;
+ }
+ function Dod(a, b, c) {
+ c = _hd(a, BD(b, 49), 7, c);
+ return c;
+ }
+ function JHd(a, b, c) {
+ c = _hd(a, BD(b, 49), 3, c);
+ return c;
+ }
+ function JMd(a, b, c) {
+ this.a = a;
+ BMd.call(this, b, c, 22);
+ }
+ function UTd(a, b, c) {
+ this.a = a;
+ BMd.call(this, b, c, 14);
+ }
+ function eXd(a, b, c, d) {
+ UVd();
+ nWd.call(this, a, b, c, d);
+ }
+ function lXd(a, b, c, d) {
+ UVd();
+ nWd.call(this, a, b, c, d);
+ }
+ function FNd(a, b) {
+ (b.Bb & ote) != 0 && !a.a.o && (a.a.o = b);
+ }
+ function MD(a) {
+ return a != null && OD(a) && !(a.im === gcb);
+ }
+ function ID(a) {
+ return !Array.isArray(a) && a.im === gcb;
+ }
+ function ed(a) {
+ return JD(a, 15) ? BD(a, 15).Yc() : a.Kc();
+ }
+ function De(a) {
+ return a.Qc(KC(SI, Uhe, 1, a.gc(), 5, 1));
+ }
+ function u1d(a, b) {
+ return W1d(p1d(a, b)) ? b.Qh() : null;
+ }
+ function uvd(a) {
+ a ? Ty(a, (Zfb(), Yfb)) : (Zfb(), Yfb);
+ }
+ function Sr(a) {
+ this.a = (Mr(), Lr);
+ this.d = BD(Qb(a), 47);
+ }
+ function qg(a, b, c, d) {
+ this.a = a;
+ dg.call(this, a, b, c, d);
+ }
+ function Yge(a) {
+ Xge();
+ this.a = 0;
+ this.b = a - 1;
+ this.c = 1;
+ }
+ function Yy(a) {
+ Py(this);
+ this.g = a;
+ Ry(this);
+ this._d();
+ }
+ function Wm(a) {
+ if (a.c) {
+ return a.c;
+ }
+ return a.c = a.Id();
+ }
+ function Xm(a) {
+ if (a.d) {
+ return a.d;
+ }
+ return a.d = a.Jd();
+ }
+ function Rl(a) {
+ var b;
+ b = a.c;
+ return !b ? a.c = a.Dd() : b;
+ }
+ function fe(a) {
+ var b;
+ b = a.f;
+ return !b ? a.f = a.Dc() : b;
+ }
+ function Ec(a) {
+ var b;
+ b = a.i;
+ return !b ? a.i = a.bc() : b;
+ }
+ function Ffe(a) {
+ wfe();
+ return new Hge(10, a, 0);
+ }
+ function Ubb(a) {
+ if (Fbb(a)) {
+ return "" + a;
+ }
+ return qD(a);
+ }
+ function a4d(a) {
+ if (a.e.j != a.d) {
+ throw vbb(new Apb());
+ }
+ }
+ function Nbb(a, b) {
+ return zbb(kD(Fbb(a) ? Rbb(a) : a, b));
+ }
+ function Obb(a, b) {
+ return zbb(lD(Fbb(a) ? Rbb(a) : a, b));
+ }
+ function Pbb(a, b) {
+ return zbb(mD(Fbb(a) ? Rbb(a) : a, b));
+ }
+ function Dcb(a, b) {
+ return Ecb((uCb(a), a), (uCb(b), b));
+ }
+ function Ddb(a, b) {
+ return Kdb((uCb(a), a), (uCb(b), b));
+ }
+ function fx(a, b) {
+ return Qb(b), a.a.Ad(b) && !a.b.Ad(b);
+ }
+ function dD(a, b) {
+ return TC(a.l & b.l, a.m & b.m, a.h & b.h);
+ }
+ function jD(a, b) {
+ return TC(a.l | b.l, a.m | b.m, a.h | b.h);
+ }
+ function rD(a, b) {
+ return TC(a.l ^ b.l, a.m ^ b.m, a.h ^ b.h);
+ }
+ function QAb(a, b) {
+ return TAb(a, (uCb(b), new Rxb(b)));
+ }
+ function RAb(a, b) {
+ return TAb(a, (uCb(b), new Txb(b)));
+ }
+ function g1b(a) {
+ return z0b(), BD(a, 11).e.c.length != 0;
+ }
+ function l1b(a) {
+ return z0b(), BD(a, 11).g.c.length != 0;
+ }
+ function bac(a, b) {
+ I9b();
+ return Kdb(b.a.o.a, a.a.o.a);
+ }
+ function Rnc(a, b, c) {
+ return Snc(a, BD(b, 11), BD(c, 11));
+ }
+ function koc(a) {
+ if (a.e) {
+ return poc(a.e);
+ }
+ return null;
+ }
+ function Iub(a) {
+ if (!a.d) {
+ a.d = a.b.Kc();
+ a.c = a.b.gc();
+ }
+ }
+ function pBb(a, b, c) {
+ if (a.a.Mb(c)) {
+ a.b = true;
+ b.td(c);
+ }
+ }
+ function _vb(a, b) {
+ if (a < 0 || a >= b) {
+ throw vbb(new rcb());
+ }
+ }
+ function Pyb(a, b, c) {
+ NC(b, 0, Bzb(b[0], c[0]));
+ return b;
+ }
+ function _yc(a, b, c) {
+ b.Ye(c, Edb(ED(Ohb(a.b, c))) * a.a);
+ }
+ function n6c(a, b, c) {
+ i6c();
+ return m6c(a, b) && m6c(a, c);
+ }
+ function tcd(a) {
+ rcd();
+ return !a.Hc(ncd) && !a.Hc(pcd);
+ }
+ function D6c(a) {
+ return new f7c(a.c + a.b / 2, a.d + a.a / 2);
+ }
+ function oOd(a, b) {
+ return b.kh() ? xid(a.b, BD(b, 49)) : b;
+ }
+ function bvb(a, b) {
+ this.e = a;
+ this.d = (b & 64) != 0 ? b | oie : b;
+ }
+ function qvb(a, b) {
+ this.c = 0;
+ this.d = a;
+ this.b = b | 64 | oie;
+ }
+ function gub(a) {
+ this.b = new Skb(11);
+ this.a = (ipb(), a);
+ }
+ function Qwb(a) {
+ this.b = null;
+ this.a = (ipb(), !a ? fpb : a);
+ }
+ function nHc(a) {
+ this.a = lHc(a.a);
+ this.b = new Tkb(a.b);
+ }
+ function Pzd(a) {
+ this.b = a;
+ Oyd.call(this, a);
+ Ozd(this);
+ }
+ function Xzd(a) {
+ this.b = a;
+ bzd.call(this, a);
+ Wzd(this);
+ }
+ function jUd(a, b, c) {
+ this.a = a;
+ gUd.call(this, b, c, 5, 6);
+ }
+ function Y5d(a, b, c, d) {
+ this.b = a;
+ xMd.call(this, b, c, d);
+ }
+ function nSd(a, b, c, d, e) {
+ oSd.call(this, a, b, c, d, e, -1);
+ }
+ function DSd(a, b, c, d, e) {
+ ESd.call(this, a, b, c, d, e, -1);
+ }
+ function cUd(a, b, c, d) {
+ xMd.call(this, a, b, c);
+ this.b = d;
+ }
+ function i5d(a, b, c, d) {
+ pMd.call(this, a, b, c);
+ this.b = d;
+ }
+ function x0d(a) {
+ Wud.call(this, a, false);
+ this.a = false;
+ }
+ function Lj(a, b) {
+ this.b = a;
+ sj.call(this, a.b);
+ this.a = b;
+ }
+ function px(a, b) {
+ im();
+ ox.call(this, a, Dm(new amb(b)));
+ }
+ function Cfe(a, b) {
+ wfe();
+ return new Dge(a, b, 0);
+ }
+ function Efe(a, b) {
+ wfe();
+ return new Dge(6, a, b);
+ }
+ function nfb(a, b) {
+ return dfb(a.substr(0, b.length), b);
+ }
+ function Mhb(a, b) {
+ return ND(b) ? Qhb(a, b) : !!irb(a.f, b);
+ }
+ function Rrb(a, b) {
+ uCb(b);
+ while (a.Ob()) {
+ b.td(a.Pb());
+ }
+ }
+ function Vgb(a, b, c) {
+ Hgb();
+ this.e = a;
+ this.d = b;
+ this.a = c;
+ }
+ function amc(a, b, c, d) {
+ var e;
+ e = a.i;
+ e.i = b;
+ e.a = c;
+ e.b = d;
+ }
+ function xJc(a) {
+ var b;
+ b = a;
+ while (b.f) {
+ b = b.f;
+ }
+ return b;
+ }
+ function fkb(a) {
+ var b;
+ b = bkb(a);
+ sCb(b != null);
+ return b;
+ }
+ function gkb(a) {
+ var b;
+ b = ckb(a);
+ sCb(b != null);
+ return b;
+ }
+ function cv(a, b) {
+ var c;
+ c = a.a.gc();
+ Sb(b, c);
+ return c - b;
+ }
+ function Glb(a, b) {
+ var c;
+ for (c = 0; c < b; ++c) {
+ a[c] = false;
+ }
+ }
+ function Clb(a, b, c, d) {
+ var e;
+ for (e = b; e < c; ++e) {
+ a[e] = d;
+ }
+ }
+ function ylb(a, b, c, d) {
+ oCb(b, c, a.length);
+ Clb(a, b, c, d);
+ }
+ function Vvb(a, b, c) {
+ _vb(c, a.a.c.length);
+ Nkb(a.a, c, b);
+ }
+ function Lyb(a, b, c) {
+ this.c = a;
+ this.a = b;
+ mmb();
+ this.b = c;
+ }
+ function Qpb(a, b, c) {
+ var d;
+ d = a.b[b];
+ a.b[b] = c;
+ return d;
+ }
+ function Qqb(a, b) {
+ var c;
+ c = a.a.zc(b, a);
+ return c == null;
+ }
+ function zjb(a) {
+ if (!a) {
+ throw vbb(new utb());
+ }
+ return a.d;
+ }
+ function vCb(a, b) {
+ if (a == null) {
+ throw vbb(new Heb(b));
+ }
+ }
+ function Goc(a, b) {
+ if (!b) {
+ return false;
+ }
+ return ye(a, b);
+ }
+ function K2c(a, b, c) {
+ C2c(a, b.g, c);
+ rqb(a.c, b);
+ return a;
+ }
+ function vVb(a) {
+ tVb(a, (ead(), aad));
+ a.d = true;
+ return a;
+ }
+ function c2d(a) {
+ !a.j && i2d(a, d1d(a.g, a.b));
+ return a.j;
+ }
+ function nlb(a) {
+ yCb(a.b != -1);
+ Kkb(a.c, a.a = a.b);
+ a.b = -1;
+ }
+ function Uhb(a) {
+ a.f = new lrb(a);
+ a.g = new Frb(a);
+ zpb(a);
+ }
+ function Plb(a) {
+ return new YAb(null, Olb(a, a.length));
+ }
+ function ul(a) {
+ return new Sr(new xl(a.a.length, a.a));
+ }
+ function iD(a) {
+ return TC(~a.l & Eje, ~a.m & Eje, ~a.h & Fje);
+ }
+ function OD(a) {
+ return typeof a === Jhe || typeof a === Nhe;
+ }
+ function D9d(a) {
+ return a == Pje ? Nwe : a == Qje ? "-INF" : "" + a;
+ }
+ function F9d(a) {
+ return a == Pje ? Nwe : a == Qje ? "-INF" : "" + a;
+ }
+ function yRb(a, b) {
+ return a > 0 ? $wnd.Math.log(a / b) : -100;
+ }
+ function ueb(a, b) {
+ return ybb(a, b) < 0 ? -1 : ybb(a, b) > 0 ? 1 : 0;
+ }
+ function HMb(a, b, c) {
+ return IMb(a, BD(b, 46), BD(c, 167));
+ }
+ function iq(a, b) {
+ return BD(Rl(Wm(a.a)).Xb(b), 42).cd();
+ }
+ function Olb(a, b) {
+ return avb(b, a.length), new vvb(a, b);
+ }
+ function Pyd(a, b) {
+ this.d = a;
+ Fyd.call(this, a);
+ this.e = b;
+ }
+ function Lub(a) {
+ this.d = (uCb(a), a);
+ this.a = 0;
+ this.c = rie;
+ }
+ function rge(a, b) {
+ xfe.call(this, 1);
+ this.a = a;
+ this.b = b;
+ }
+ function Rzb(a, b) {
+ !a.c ? Ekb(a.b, b) : Rzb(a.c, b);
+ return a;
+ }
+ function uB(a, b, c) {
+ var d;
+ d = tB(a, b);
+ vB(a, b, c);
+ return d;
+ }
+ function ZBb(a, b) {
+ var c;
+ c = a.slice(0, b);
+ return PC(c, a);
+ }
+ function Flb(a, b, c) {
+ var d;
+ for (d = 0; d < b; ++d) {
+ NC(a, d, c);
+ }
+ }
+ function ffb(a, b, c, d, e) {
+ while (b < c) {
+ d[e++] = bfb(a, b++);
+ }
+ }
+ function hLb(a, b) {
+ return Kdb(a.c.c + a.c.b, b.c.c + b.c.b);
+ }
+ function Axb(a, b) {
+ return Iwb(a.a, b, (Bcb(), zcb)) == null;
+ }
+ function Vsb(a, b) {
+ Gsb(a.d, b, a.b.b, a.b);
+ ++a.a;
+ a.c = null;
+ }
+ function d3d(a, b) {
+ JLd(a, JD(b, 153) ? b : BD(b, 1937).gl());
+ }
+ function hkc(a, b) {
+ MAb(NAb(a.Oc(), new Rkc()), new Tkc(b));
+ }
+ function kkc(a, b, c, d, e) {
+ jkc(a, BD(Qc(b.k, c), 15), c, d, e);
+ }
+ function lOc(a) {
+ a.s = NaN;
+ a.c = NaN;
+ mOc(a, a.e);
+ mOc(a, a.j);
+ }
+ function it(a) {
+ a.a = null;
+ a.e = null;
+ Uhb(a.b);
+ a.d = 0;
+ ++a.c;
+ }
+ function gKc(a) {
+ return $wnd.Math.abs(a.d.e - a.e.e) - a.a;
+ }
+ function MAd(a, b, c) {
+ return BD(a.c._c(b, BD(c, 133)), 42);
+ }
+ function os() {
+ hs();
+ return OC(GC(yG, 1), Kie, 538, 0, [gs]);
+ }
+ function VPb(a) {
+ QPb();
+ return Xod(jtd(a)) == Xod(ltd(a));
+ }
+ function aRb(a) {
+ _Qb.call(this);
+ this.a = a;
+ Ekb(a.a, this);
+ }
+ function tPc(a, b) {
+ this.d = DPc(a);
+ this.c = b;
+ this.a = 0.5 * b;
+ }
+ function A6d() {
+ $rb.call(this);
+ this.a = true;
+ this.b = true;
+ }
+ function aLd(a) {
+ return (a.i == null && TKd(a), a.i).length;
+ }
+ function oRd(a) {
+ return JD(a, 99) && (BD(a, 18).Bb & ote) != 0;
+ }
+ function w2d(a, b) {
+ ++a.j;
+ t3d(a, a.i, b);
+ v2d(a, BD(b, 332));
+ }
+ function vId(a, b) {
+ b = a.nk(null, b);
+ return uId(a, null, b);
+ }
+ function ytd(a, b) {
+ a.hi() && (b = Dtd(a, b));
+ return a.Wh(b);
+ }
+ function mdb(a, b, c) {
+ var d;
+ d = ldb(a, b);
+ zdb(c, d);
+ return d;
+ }
+ function ldb(a, b) {
+ var c;
+ c = new jdb();
+ c.j = a;
+ c.d = b;
+ return c;
+ }
+ function Qb(a) {
+ if (a == null) {
+ throw vbb(new Geb());
+ }
+ return a;
+ }
+ function Fc(a) {
+ var b;
+ b = a.j;
+ return !b ? a.j = new Cw(a) : b;
+ }
+ function Vi(a) {
+ var b;
+ b = a.f;
+ return !b ? a.f = new Rj(a) : b;
+ }
+ function ci(a) {
+ var b;
+ return b = a.k, !b ? a.k = new th(a) : b;
+ }
+ function Uc(a) {
+ var b;
+ return b = a.k, !b ? a.k = new th(a) : b;
+ }
+ function Pc(a) {
+ var b;
+ return b = a.g, !b ? a.g = new lh(a) : b;
+ }
+ function Yi(a) {
+ var b;
+ return b = a.i, !b ? a.i = new Ci(a) : b;
+ }
+ function qo(a) {
+ var b;
+ b = a.d;
+ return !b ? a.d = new ap(a) : b;
+ }
+ function Fb(a) {
+ Qb(a);
+ return JD(a, 475) ? BD(a, 475) : fcb(a);
+ }
+ function Ix(a) {
+ if (JD(a, 607)) {
+ return a;
+ }
+ return new by(a);
+ }
+ function qj(a, b) {
+ Pb(b, a.c.b.c.gc());
+ return new Fj(a, b);
+ }
+ function Dfe(a, b, c) {
+ wfe();
+ return new zge(a, b, c);
+ }
+ function NC(a, b, c) {
+ qCb(c == null || FC(a, c));
+ return a[b] = c;
+ }
+ function bv(a, b) {
+ var c;
+ c = a.a.gc();
+ Pb(b, c);
+ return c - 1 - b;
+ }
+ function Afb(a, b) {
+ a.a += String.fromCharCode(b);
+ return a;
+ }
+ function Kfb(a, b) {
+ a.a += String.fromCharCode(b);
+ return a;
+ }
+ function ovb(a, b) {
+ uCb(b);
+ while (a.c < a.d) {
+ a.ze(b, a.c++);
+ }
+ }
+ function Ohb(a, b) {
+ return ND(b) ? Phb(a, b) : Wd(irb(a.f, b));
+ }
+ function ZPb(a, b) {
+ QPb();
+ return a == jtd(b) ? ltd(b) : jtd(b);
+ }
+ function isd(a, b) {
+ Qpd(a, new yC(b.f != null ? b.f : "" + b.g));
+ }
+ function ksd(a, b) {
+ Qpd(a, new yC(b.f != null ? b.f : "" + b.g));
+ }
+ function dVb(a) {
+ this.b = new Rkb();
+ this.a = new Rkb();
+ this.c = a;
+ }
+ function H1b(a) {
+ this.c = new d7c();
+ this.a = new Rkb();
+ this.b = a;
+ }
+ function pRb(a) {
+ _Qb.call(this);
+ this.a = new d7c();
+ this.c = a;
+ }
+ function yC(a) {
+ if (a == null) {
+ throw vbb(new Geb());
+ }
+ this.a = a;
+ }
+ function HA(a) {
+ fA();
+ this.b = new Rkb();
+ this.a = a;
+ sA(this, a);
+ }
+ function v4c(a) {
+ this.c = a;
+ this.a = new Psb();
+ this.b = new Psb();
+ }
+ function GB() {
+ GB = ccb;
+ EB = new HB(false);
+ FB = new HB(true);
+ }
+ function im() {
+ im = ccb;
+ Ql();
+ hm = new ux((mmb(), mmb(), jmb));
+ }
+ function yx() {
+ yx = ccb;
+ Ql();
+ xx = new zx((mmb(), mmb(), lmb));
+ }
+ function NFd() {
+ NFd = ccb;
+ MFd = BZd();
+ !!(jGd(), PFd) && DZd();
+ }
+ function aac(a, b) {
+ I9b();
+ return BD(Mpb(a, b.d), 15).Fc(b);
+ }
+ function pTb(a, b, c, d) {
+ return c == 0 || (c - d) / c < a.e || b >= a.g;
+ }
+ function NHc(a, b, c) {
+ var d;
+ d = THc(a, b, c);
+ return MHc(a, d);
+ }
+ function Qpd(a, b) {
+ var c;
+ c = a.a.length;
+ tB(a, c);
+ vB(a, c, b);
+ }
+ function gCb(a, b) {
+ var c;
+ c = console[a];
+ c.call(console, b);
+ }
+ function Bvd(a, b) {
+ var c;
+ ++a.j;
+ c = a.Vi();
+ a.Ii(a.oi(c, b));
+ }
+ function E1c(a, b, c) {
+ BD(b.b, 65);
+ Hkb(b.a, new L1c(a, c, b));
+ }
+ function oXd(a, b, c) {
+ VVd.call(this, b);
+ this.a = a;
+ this.b = c;
+ }
+ function Dge(a, b, c) {
+ xfe.call(this, a);
+ this.a = b;
+ this.b = c;
+ }
+ function dYd(a, b, c) {
+ this.a = a;
+ lVd.call(this, b);
+ this.b = c;
+ }
+ function f0d(a, b, c) {
+ this.a = a;
+ mxd.call(this, 8, b, null, c);
+ }
+ function z1d(a) {
+ this.a = (uCb(Rve), Rve);
+ this.b = a;
+ new oUd();
+ }
+ function ct(a) {
+ this.c = a;
+ this.b = this.c.a;
+ this.a = this.c.e;
+ }
+ function usb(a) {
+ this.c = a;
+ this.b = a.a.d.a;
+ ypb(a.a.e, this);
+ }
+ function uib(a) {
+ yCb(a.c != -1);
+ a.d.$c(a.c);
+ a.b = a.c;
+ a.c = -1;
+ }
+ function U6c(a) {
+ return $wnd.Math.sqrt(a.a * a.a + a.b * a.b);
+ }
+ function Uvb(a, b) {
+ return _vb(b, a.a.c.length), Ikb(a.a, b);
+ }
+ function Hb(a, b) {
+ return PD(a) === PD(b) || a != null && pb(a, b);
+ }
+ function oAb(a) {
+ if (0 >= a) {
+ return new yAb();
+ }
+ return pAb(a - 1);
+ }
+ function Nfe(a) {
+ if (!bfe)
+ return false;
+ return Qhb(bfe, a);
+ }
+ function Ehe(a) {
+ if (a)
+ return a.dc();
+ return !a.Kc().Ob();
+ }
+ function Q_b(a) {
+ if (!a.a && !!a.c) {
+ return a.c.b;
+ }
+ return a.a;
+ }
+ function LHd(a) {
+ !a.a && (a.a = new xMd(m5, a, 4));
+ return a.a;
+ }
+ function LQd(a) {
+ !a.d && (a.d = new xMd(j5, a, 1));
+ return a.d;
+ }
+ function uCb(a) {
+ if (a == null) {
+ throw vbb(new Geb());
+ }
+ return a;
+ }
+ function Qzb(a) {
+ if (!a.c) {
+ a.d = true;
+ Szb(a);
+ } else {
+ a.c.He();
+ }
+ }
+ function Tzb(a) {
+ if (!a.c) {
+ Uzb(a);
+ a.d = true;
+ } else {
+ Tzb(a.c);
+ }
+ }
+ function Kpb(a) {
+ Ae(a.a);
+ a.b = KC(SI, Uhe, 1, a.b.length, 5, 1);
+ }
+ function qlc(a, b) {
+ return beb(b.j.c.length, a.j.c.length);
+ }
+ function igd(a, b) {
+ a.c < 0 || a.b.b < a.c ? Fsb(a.b, b) : a.a._e(b);
+ }
+ function Did(a, b) {
+ var c;
+ c = a.Yg(b);
+ c >= 0 ? a.Bh(c) : vid(a, b);
+ }
+ function WHc(a) {
+ var b, c;
+ b = a.c.i.c;
+ c = a.d.i.c;
+ return b == c;
+ }
+ function Wwd(a) {
+ if (a.p != 4)
+ throw vbb(new Ydb());
+ return a.e;
+ }
+ function Vwd(a) {
+ if (a.p != 3)
+ throw vbb(new Ydb());
+ return a.e;
+ }
+ function Ywd(a) {
+ if (a.p != 6)
+ throw vbb(new Ydb());
+ return a.f;
+ }
+ function fxd(a) {
+ if (a.p != 6)
+ throw vbb(new Ydb());
+ return a.k;
+ }
+ function cxd(a) {
+ if (a.p != 3)
+ throw vbb(new Ydb());
+ return a.j;
+ }
+ function dxd(a) {
+ if (a.p != 4)
+ throw vbb(new Ydb());
+ return a.j;
+ }
+ function AYd(a) {
+ !a.b && (a.b = new RYd(new NYd()));
+ return a.b;
+ }
+ function $1d(a) {
+ a.c == -2 && e2d(a, X0d(a.g, a.b));
+ return a.c;
+ }
+ function pdb(a, b) {
+ var c;
+ c = ldb("", a);
+ c.n = b;
+ c.i = 1;
+ return c;
+ }
+ function MNb(a, b) {
+ $Nb(BD(b.b, 65), a);
+ Hkb(b.a, new RNb(a));
+ }
+ function Cnd(a, b) {
+ wtd((!a.a && (a.a = new fTd(a, a)), a.a), b);
+ }
+ function Qzd(a, b) {
+ this.b = a;
+ Pyd.call(this, a, b);
+ Ozd(this);
+ }
+ function Yzd(a, b) {
+ this.b = a;
+ czd.call(this, a, b);
+ Wzd(this);
+ }
+ function Ms(a, b, c, d) {
+ Wo.call(this, a, b);
+ this.d = c;
+ this.a = d;
+ }
+ function $o(a, b, c, d) {
+ Wo.call(this, a, c);
+ this.a = b;
+ this.f = d;
+ }
+ function iy(a, b) {
+ Pp.call(this, umb(Qb(a), Qb(b)));
+ this.a = b;
+ }
+ function cae() {
+ fod.call(this, Ewe, (p8d(), o8d));
+ $9d(this);
+ }
+ function AZd() {
+ fod.call(this, _ve, (LFd(), KFd));
+ uZd(this);
+ }
+ function T0c() {
+ $r.call(this, "DELAUNAY_TRIANGULATION", 0);
+ }
+ function vfb(a) {
+ return String.fromCharCode.apply(null, a);
+ }
+ function Rhb(a, b, c) {
+ return ND(b) ? Shb(a, b, c) : jrb(a.f, b, c);
+ }
+ function tmb(a) {
+ mmb();
+ return !a ? (ipb(), ipb(), hpb) : a.ve();
+ }
+ function d2c(a, b, c) {
+ Y1c();
+ return c.pg(a, BD(b.cd(), 146));
+ }
+ function ix(a, b) {
+ ex();
+ return new gx(new il(a), new Uk(b));
+ }
+ function Iu(a) {
+ Xj(a, Mie);
+ return Oy(wbb(wbb(5, a), a / 10 | 0));
+ }
+ function Vm() {
+ Vm = ccb;
+ Um = new wx(OC(GC(CK, 1), zie, 42, 0, []));
+ }
+ function hob(a) {
+ !a.d && (a.d = new lnb(a.c.Cc()));
+ return a.d;
+ }
+ function eob(a) {
+ !a.a && (a.a = new Gob(a.c.vc()));
+ return a.a;
+ }
+ function gob(a) {
+ !a.b && (a.b = new zob(a.c.ec()));
+ return a.b;
+ }
+ function keb(a, b) {
+ while (b-- > 0) {
+ a = a << 1 | (a < 0 ? 1 : 0);
+ }
+ return a;
+ }
+ function wtb(a, b) {
+ return PD(a) === PD(b) || a != null && pb(a, b);
+ }
+ function Gbc(a, b) {
+ return Bcb(), BD(b.b, 19).a < a ? true : false;
+ }
+ function Hbc(a, b) {
+ return Bcb(), BD(b.a, 19).a < a ? true : false;
+ }
+ function Mpb(a, b) {
+ return tqb(a.a, b) ? a.b[BD(b, 22).g] : null;
+ }
+ function kcb(a, b, c, d) {
+ a.a = qfb(a.a, 0, b) + ("" + d) + pfb(a.a, c);
+ }
+ function OJb(a, b) {
+ a.u.Hc((rcd(), ncd)) && MJb(a, b);
+ QJb(a, b);
+ }
+ function bfb(a, b) {
+ BCb(b, a.length);
+ return a.charCodeAt(b);
+ }
+ function vtb() {
+ hz.call(this, "There is no more element.");
+ }
+ function xkb(a) {
+ this.d = a;
+ this.a = this.d.b;
+ this.b = this.d.c;
+ }
+ function kEb(a) {
+ a.b = false;
+ a.c = false;
+ a.d = false;
+ a.a = false;
+ }
+ function Znd(a, b, c, d) {
+ Ynd(a, b, c, false);
+ LPd(a, d);
+ return a;
+ }
+ function h3c(a) {
+ a.j.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.a = -1;
+ return a;
+ }
+ function Old(a) {
+ !a.c && (a.c = new y5d(z2, a, 5, 8));
+ return a.c;
+ }
+ function Nld(a) {
+ !a.b && (a.b = new y5d(z2, a, 4, 7));
+ return a.b;
+ }
+ function Kkd(a) {
+ !a.n && (a.n = new cUd(D2, a, 1, 7));
+ return a.n;
+ }
+ function Yod(a) {
+ !a.c && (a.c = new cUd(F2, a, 9, 9));
+ return a.c;
+ }
+ function a2d(a) {
+ a.e == Gwe && g2d(a, a1d(a.g, a.b));
+ return a.e;
+ }
+ function b2d(a) {
+ a.f == Gwe && h2d(a, b1d(a.g, a.b));
+ return a.f;
+ }
+ function Ah(a) {
+ var b;
+ b = a.b;
+ !b && (a.b = b = new Ph(a));
+ return b;
+ }
+ function Ae(a) {
+ var b;
+ for (b = a.Kc(); b.Ob(); ) {
+ b.Pb();
+ b.Qb();
+ }
+ }
+ function Fg(a) {
+ ag(a.d);
+ if (a.d.d != a.c) {
+ throw vbb(new Apb());
+ }
+ }
+ function Xx(a, b) {
+ this.b = a;
+ this.c = b;
+ this.a = new Gqb(this.b);
+ }
+ function Zeb(a, b, c) {
+ this.a = Zie;
+ this.d = a;
+ this.b = b;
+ this.c = c;
+ }
+ function Mub(a, b) {
+ this.d = (uCb(a), a);
+ this.a = 16449;
+ this.c = b;
+ }
+ function nqd(a, b) {
+ ctd(a, Edb(Xpd(b, "x")), Edb(Xpd(b, "y")));
+ }
+ function Aqd(a, b) {
+ ctd(a, Edb(Xpd(b, "x")), Edb(Xpd(b, "y")));
+ }
+ function JAb(a, b) {
+ Uzb(a);
+ return new YAb(a, new qBb(b, a.a));
+ }
+ function NAb(a, b) {
+ Uzb(a);
+ return new YAb(a, new IBb(b, a.a));
+ }
+ function OAb(a, b) {
+ Uzb(a);
+ return new bAb(a, new wBb(b, a.a));
+ }
+ function PAb(a, b) {
+ Uzb(a);
+ return new vAb(a, new CBb(b, a.a));
+ }
+ function Cy(a, b) {
+ return new Ay(BD(Qb(a), 62), BD(Qb(b), 62));
+ }
+ function PWb(a, b) {
+ LWb();
+ return Kdb((uCb(a), a), (uCb(b), b));
+ }
+ function fPb() {
+ cPb();
+ return OC(GC(GO, 1), Kie, 481, 0, [bPb]);
+ }
+ function o_c() {
+ i_c();
+ return OC(GC(N_, 1), Kie, 482, 0, [h_c]);
+ }
+ function x_c() {
+ s_c();
+ return OC(GC(O_, 1), Kie, 551, 0, [r_c]);
+ }
+ function X0c() {
+ R0c();
+ return OC(GC(W_, 1), Kie, 530, 0, [Q0c]);
+ }
+ function cEc(a) {
+ this.a = new Rkb();
+ this.e = KC(WD, nie, 48, a, 0, 2);
+ }
+ function l$b(a, b, c, d) {
+ this.a = a;
+ this.e = b;
+ this.d = c;
+ this.c = d;
+ }
+ function QIc(a, b, c, d) {
+ this.a = a;
+ this.c = b;
+ this.b = c;
+ this.d = d;
+ }
+ function rKc(a, b, c, d) {
+ this.c = a;
+ this.b = b;
+ this.a = c;
+ this.d = d;
+ }
+ function WKc(a, b, c, d) {
+ this.c = a;
+ this.b = b;
+ this.d = c;
+ this.a = d;
+ }
+ function J6c(a, b, c, d) {
+ this.c = a;
+ this.d = b;
+ this.b = c;
+ this.a = d;
+ }
+ function gPc(a, b, c, d) {
+ this.a = a;
+ this.d = b;
+ this.c = c;
+ this.b = d;
+ }
+ function Blc(a, b, c, d) {
+ $r.call(this, a, b);
+ this.a = c;
+ this.b = d;
+ }
+ function Ggd(a, b, c, d) {
+ this.a = a;
+ this.c = b;
+ this.d = c;
+ this.b = d;
+ }
+ function pec(a, b, c) {
+ Pmc(a.a, c);
+ dmc(c);
+ enc(a.b, c);
+ xmc(b, c);
+ }
+ function Pid(a, b, c) {
+ var d, e;
+ d = QEd(a);
+ e = b.Kh(c, d);
+ return e;
+ }
+ function KPb(a, b) {
+ var c, d;
+ c = a / b;
+ d = QD(c);
+ c > d && ++d;
+ return d;
+ }
+ function Nnd(a) {
+ var b, c;
+ c = (b = new UQd(), b);
+ NQd(c, a);
+ return c;
+ }
+ function Ond(a) {
+ var b, c;
+ c = (b = new UQd(), b);
+ RQd(c, a);
+ return c;
+ }
+ function hqd(a, b) {
+ var c;
+ c = Ohb(a.f, b);
+ Yqd(b, c);
+ return null;
+ }
+ function JZb(a) {
+ var b;
+ b = P2b(a);
+ if (b) {
+ return b;
+ }
+ return null;
+ }
+ function Wod(a) {
+ !a.b && (a.b = new cUd(B2, a, 12, 3));
+ return a.b;
+ }
+ function YEd(a) {
+ return a != null && hnb(GEd, a.toLowerCase());
+ }
+ function ied(a, b) {
+ return Kdb(red(a) * qed(a), red(b) * qed(b));
+ }
+ function jed(a, b) {
+ return Kdb(red(a) * qed(a), red(b) * qed(b));
+ }
+ function wEb(a, b) {
+ return Kdb(a.d.c + a.d.b / 2, b.d.c + b.d.b / 2);
+ }
+ function UVb(a, b) {
+ return Kdb(a.g.c + a.g.b / 2, b.g.c + b.g.b / 2);
+ }
+ function pQb(a, b, c) {
+ c.a ? eld(a, b.b - a.f / 2) : dld(a, b.a - a.g / 2);
+ }
+ function prd(a, b, c, d) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ this.d = d;
+ }
+ function ord(a, b, c, d) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ this.d = d;
+ }
+ function JVd(a, b, c, d) {
+ this.e = a;
+ this.a = b;
+ this.c = c;
+ this.d = d;
+ }
+ function ZVd(a, b, c, d) {
+ this.a = a;
+ this.c = b;
+ this.d = c;
+ this.b = d;
+ }
+ function cXd(a, b, c, d) {
+ UVd();
+ mWd.call(this, b, c, d);
+ this.a = a;
+ }
+ function jXd(a, b, c, d) {
+ UVd();
+ mWd.call(this, b, c, d);
+ this.a = a;
+ }
+ function Ng(a, b) {
+ this.a = a;
+ Hg.call(this, a, BD(a.d, 15).Zc(b));
+ }
+ function ZBd(a) {
+ this.f = a;
+ this.c = this.f.e;
+ a.f > 0 && YBd(this);
+ }
+ function lBb(a, b, c, d) {
+ this.b = a;
+ this.c = d;
+ nvb.call(this, b, c);
+ }
+ function tib(a) {
+ sCb(a.b < a.d.gc());
+ return a.d.Xb(a.c = a.b++);
+ }
+ function Osb(a) {
+ a.a.a = a.c;
+ a.c.b = a.a;
+ a.a.b = a.c.a = null;
+ a.b = 0;
+ }
+ function u_b(a, b) {
+ a.b = b.b;
+ a.c = b.c;
+ a.d = b.d;
+ a.a = b.a;
+ return a;
+ }
+ function Ry(a) {
+ if (a.n) {
+ a.e !== Sie && a._d();
+ a.j = null;
+ }
+ return a;
+ }
+ function FD(a) {
+ CCb(a == null || OD(a) && !(a.im === gcb));
+ return a;
+ }
+ function p4b(a) {
+ this.b = new Rkb();
+ Gkb(this.b, this.b);
+ this.a = a;
+ }
+ function QPb() {
+ QPb = ccb;
+ PPb = new Rkb();
+ OPb = new Lqb();
+ NPb = new Rkb();
+ }
+ function mmb() {
+ mmb = ccb;
+ jmb = new xmb();
+ kmb = new Qmb();
+ lmb = new Ymb();
+ }
+ function ipb() {
+ ipb = ccb;
+ fpb = new kpb();
+ gpb = new kpb();
+ hpb = new ppb();
+ }
+ function ODb() {
+ ODb = ccb;
+ LDb = new JDb();
+ NDb = new oEb();
+ MDb = new fEb();
+ }
+ function MCb() {
+ if (HCb == 256) {
+ GCb = ICb;
+ ICb = new nb();
+ HCb = 0;
+ }
+ ++HCb;
+ }
+ function nd(a) {
+ var b;
+ return b = a.f, !b ? a.f = new ne(a, a.c) : b;
+ }
+ function d2b(a) {
+ return Qld(a) && Ccb(DD(hkd(a, (Nyc(), gxc))));
+ }
+ function mcc(a, b) {
+ return Rc(a, BD(vNb(b, (Nyc(), Nxc)), 19), b);
+ }
+ function POc(a, b) {
+ return vPc(a.j, b.s, b.c) + vPc(b.e, a.s, a.c);
+ }
+ function ooc(a, b) {
+ if (!!a.e && !a.e.a) {
+ moc(a.e, b);
+ ooc(a.e, b);
+ }
+ }
+ function noc(a, b) {
+ if (!!a.d && !a.d.a) {
+ moc(a.d, b);
+ noc(a.d, b);
+ }
+ }
+ function hed(a, b) {
+ return -Kdb(red(a) * qed(a), red(b) * qed(b));
+ }
+ function cgd(a) {
+ return BD(a.cd(), 146).tg() + ":" + fcb(a.dd());
+ }
+ function Zgc(a) {
+ Hgc();
+ var b;
+ b = BD(a.g, 10);
+ b.n.a = a.d.c + b.d.b;
+ }
+ function wgc(a, b, c) {
+ qgc();
+ return iEb(BD(Ohb(a.e, b), 522), c);
+ }
+ function Y2c(a, b) {
+ rb(a);
+ rb(b);
+ return Xr(BD(a, 22), BD(b, 22));
+ }
+ function oic(a, b, c) {
+ a.i = 0;
+ a.e = 0;
+ if (b == c) {
+ return;
+ }
+ kic(a, b, c);
+ }
+ function pic(a, b, c) {
+ a.i = 0;
+ a.e = 0;
+ if (b == c) {
+ return;
+ }
+ lic(a, b, c);
+ }
+ function Spd(a, b, c) {
+ var d, e;
+ d = Kcb(c);
+ e = new TB(d);
+ cC(a, b, e);
+ }
+ function FSd(a, b, c, d, e, f) {
+ ESd.call(this, a, b, c, d, e, f ? -2 : -1);
+ }
+ function U5d(a, b, c, d) {
+ MLd.call(this, b, c);
+ this.b = a;
+ this.a = d;
+ }
+ function QRc(a, b) {
+ new Psb();
+ this.a = new s7c();
+ this.b = a;
+ this.c = b;
+ }
+ function Hec(a, b) {
+ BD(vNb(a, (wtc(), Qsc)), 15).Fc(b);
+ return b;
+ }
+ function Rb(a, b) {
+ if (a == null) {
+ throw vbb(new Heb(b));
+ }
+ return a;
+ }
+ function WKd(a) {
+ !a.q && (a.q = new cUd(n5, a, 11, 10));
+ return a.q;
+ }
+ function ZKd(a) {
+ !a.s && (a.s = new cUd(t5, a, 21, 17));
+ return a.s;
+ }
+ function Vod(a) {
+ !a.a && (a.a = new cUd(E2, a, 10, 11));
+ return a.a;
+ }
+ function Dx(a) {
+ return JD(a, 14) ? new Vqb(BD(a, 14)) : Ex(a.Kc());
+ }
+ function Ni(a) {
+ return new aj(a, a.e.Hd().gc() * a.c.Hd().gc());
+ }
+ function Zi(a) {
+ return new kj(a, a.e.Hd().gc() * a.c.Hd().gc());
+ }
+ function rz(a) {
+ return !!a && !!a.hashCode ? a.hashCode() : FCb(a);
+ }
+ function Qhb(a, b) {
+ return b == null ? !!irb(a.f, null) : Brb(a.g, b);
+ }
+ function Oq(a) {
+ Qb(a);
+ return mr(new Sr(ur(a.a.Kc(), new Sq())));
+ }
+ function vmb(a) {
+ mmb();
+ return JD(a, 54) ? new Yob(a) : new Inb(a);
+ }
+ function VDb(a, b, c) {
+ if (a.f) {
+ return a.f.Ne(b, c);
+ }
+ return false;
+ }
+ function Gfb(a, b) {
+ a.a = qfb(a.a, 0, b) + "" + pfb(a.a, b + 1);
+ return a;
+ }
+ function fVb(a, b) {
+ var c;
+ c = Sqb(a.a, b);
+ c && (b.d = null);
+ return c;
+ }
+ function zpb(a) {
+ var b, c;
+ c = a;
+ b = c.$modCount | 0;
+ c.$modCount = b + 1;
+ }
+ function pu(a) {
+ this.b = a;
+ this.c = a;
+ a.e = null;
+ a.c = null;
+ this.a = 1;
+ }
+ function hOb(a) {
+ this.b = a;
+ this.a = new Hxb(BD(Qb(new kOb()), 62));
+ }
+ function uEb(a) {
+ this.c = a;
+ this.b = new Hxb(BD(Qb(new xEb()), 62));
+ }
+ function SVb(a) {
+ this.c = a;
+ this.b = new Hxb(BD(Qb(new VVb()), 62));
+ }
+ function FYb() {
+ this.a = new HXb();
+ this.b = new LXb();
+ this.d = new SYb();
+ }
+ function UZb() {
+ this.a = new s7c();
+ this.b = (Xj(3, Jie), new Skb(3));
+ }
+ function VMc() {
+ this.b = new Tqb();
+ this.d = new Psb();
+ this.e = new twb();
+ }
+ function K6c(a) {
+ this.c = a.c;
+ this.d = a.d;
+ this.b = a.b;
+ this.a = a.a;
+ }
+ function Ay(a, b) {
+ oi.call(this, new Qwb(a));
+ this.a = a;
+ this.b = b;
+ }
+ function eod() {
+ bod(this, new $md());
+ this.wb = (NFd(), MFd);
+ LFd();
+ }
+ function eHc(a) {
+ Odd(a, "No crossing minimization", 1);
+ Qdd(a);
+ }
+ function Gz(a) {
+ Az();
+ $wnd.setTimeout(function() {
+ throw a;
+ }, 0);
+ }
+ function _Kd(a) {
+ if (!a.u) {
+ $Kd(a);
+ a.u = new YOd(a, a);
+ }
+ return a.u;
+ }
+ function wjd(a) {
+ var b;
+ b = BD(Ajd(a, 16), 26);
+ return !b ? a.zh() : b;
+ }
+ function Jsd(a, b) {
+ return JD(b, 146) && dfb(a.b, BD(b, 146).tg());
+ }
+ function t0d(a, b) {
+ return a.a ? b.Wg().Kc() : BD(b.Wg(), 69).Zh();
+ }
+ function u3b(a) {
+ return a.k == (j0b(), h0b) && wNb(a, (wtc(), Csc));
+ }
+ function ux(a) {
+ this.a = (mmb(), JD(a, 54) ? new Yob(a) : new Inb(a));
+ }
+ function Rz() {
+ Rz = ccb;
+ var a, b;
+ b = !Xz();
+ a = new dA();
+ Qz = b ? new Yz() : a;
+ }
+ function Wy(a, b) {
+ var c;
+ c = hdb(a.gm);
+ return b == null ? c : c + ": " + b;
+ }
+ function Eob(a, b) {
+ var c;
+ c = a.b.Qc(b);
+ Fob(c, a.b.gc());
+ return c;
+ }
+ function ytb(a, b) {
+ if (a == null) {
+ throw vbb(new Heb(b));
+ }
+ return a;
+ }
+ function irb(a, b) {
+ return grb(a, b, hrb(a, b == null ? 0 : a.b.se(b)));
+ }
+ function ofb(a, b, c) {
+ return c >= 0 && dfb(a.substr(c, b.length), b);
+ }
+ function H2d(a, b, c, d, e, f, g) {
+ return new O7d(a.e, b, c, d, e, f, g);
+ }
+ function Cxd(a, b, c, d, e, f) {
+ this.a = a;
+ nxd.call(this, b, c, d, e, f);
+ }
+ function vyd(a, b, c, d, e, f) {
+ this.a = a;
+ nxd.call(this, b, c, d, e, f);
+ }
+ function $Ec(a, b) {
+ this.g = a;
+ this.d = OC(GC(OQ, 1), kne, 10, 0, [b]);
+ }
+ function KVd(a, b) {
+ this.e = a;
+ this.a = SI;
+ this.b = R5d(b);
+ this.c = b;
+ }
+ function cIb(a, b) {
+ $Gb.call(this);
+ THb(this);
+ this.a = a;
+ this.c = b;
+ }
+ function kBc(a, b, c, d) {
+ NC(a.c[b.g], c.g, d);
+ NC(a.c[c.g], b.g, d);
+ }
+ function nBc(a, b, c, d) {
+ NC(a.c[b.g], b.g, c);
+ NC(a.b[b.g], b.g, d);
+ }
+ function cBc() {
+ _Ac();
+ return OC(GC(fX, 1), Kie, 376, 0, [$Ac, ZAc]);
+ }
+ function crc() {
+ _qc();
+ return OC(GC(MW, 1), Kie, 479, 0, [$qc, Zqc]);
+ }
+ function Aqc() {
+ xqc();
+ return OC(GC(JW, 1), Kie, 419, 0, [vqc, wqc]);
+ }
+ function Lpc() {
+ Ipc();
+ return OC(GC(FW, 1), Kie, 422, 0, [Gpc, Hpc]);
+ }
+ function psc() {
+ msc();
+ return OC(GC(SW, 1), Kie, 420, 0, [ksc, lsc]);
+ }
+ function EAc() {
+ BAc();
+ return OC(GC(cX, 1), Kie, 421, 0, [zAc, AAc]);
+ }
+ function XIc() {
+ UIc();
+ return OC(GC(mY, 1), Kie, 523, 0, [TIc, SIc]);
+ }
+ function KOc() {
+ HOc();
+ return OC(GC(DZ, 1), Kie, 520, 0, [GOc, FOc]);
+ }
+ function _Lc() {
+ YLc();
+ return OC(GC(fZ, 1), Kie, 516, 0, [XLc, WLc]);
+ }
+ function hMc() {
+ eMc();
+ return OC(GC(gZ, 1), Kie, 515, 0, [cMc, dMc]);
+ }
+ function IQc() {
+ FQc();
+ return OC(GC(YZ, 1), Kie, 455, 0, [DQc, EQc]);
+ }
+ function bUc() {
+ $Tc();
+ return OC(GC(F$, 1), Kie, 425, 0, [ZTc, YTc]);
+ }
+ function VTc() {
+ STc();
+ return OC(GC(E$, 1), Kie, 480, 0, [QTc, RTc]);
+ }
+ function VUc() {
+ PUc();
+ return OC(GC(K$, 1), Kie, 495, 0, [NUc, OUc]);
+ }
+ function jWc() {
+ fWc();
+ return OC(GC(X$, 1), Kie, 426, 0, [dWc, eWc]);
+ }
+ function g1c() {
+ a1c();
+ return OC(GC(X_, 1), Kie, 429, 0, [_0c, $0c]);
+ }
+ function F_c() {
+ C_c();
+ return OC(GC(P_, 1), Kie, 430, 0, [B_c, A_c]);
+ }
+ function PEb() {
+ MEb();
+ return OC(GC(aN, 1), Kie, 428, 0, [LEb, KEb]);
+ }
+ function XEb() {
+ UEb();
+ return OC(GC(bN, 1), Kie, 427, 0, [SEb, TEb]);
+ }
+ function $Rb() {
+ XRb();
+ return OC(GC(gP, 1), Kie, 424, 0, [VRb, WRb]);
+ }
+ function B5b() {
+ y5b();
+ return OC(GC(ZR, 1), Kie, 511, 0, [x5b, w5b]);
+ }
+ function lid(a, b, c, d) {
+ return c >= 0 ? a.jh(b, c, d) : a.Sg(null, c, d);
+ }
+ function hgd(a) {
+ if (a.b.b == 0) {
+ return a.a.$e();
+ }
+ return Lsb(a.b);
+ }
+ function Xwd(a) {
+ if (a.p != 5)
+ throw vbb(new Ydb());
+ return Tbb(a.f);
+ }
+ function exd(a) {
+ if (a.p != 5)
+ throw vbb(new Ydb());
+ return Tbb(a.k);
+ }
+ function pNd(a) {
+ PD(a.a) === PD((NKd(), MKd)) && qNd(a);
+ return a.a;
+ }
+ function by(a) {
+ this.a = BD(Qb(a), 271);
+ this.b = (mmb(), new Zob(a));
+ }
+ function bQc(a, b) {
+ $Pc(this, new f7c(a.a, a.b));
+ _Pc(this, Ru(b));
+ }
+ function FQc() {
+ FQc = ccb;
+ DQc = new GQc(jle, 0);
+ EQc = new GQc(kle, 1);
+ }
+ function YLc() {
+ YLc = ccb;
+ XLc = new ZLc(kle, 0);
+ WLc = new ZLc(jle, 1);
+ }
+ function Hp() {
+ Gp.call(this, new Mqb(Cv(12)));
+ Lb(true);
+ this.a = 2;
+ }
+ function Hge(a, b, c) {
+ wfe();
+ xfe.call(this, a);
+ this.b = b;
+ this.a = c;
+ }
+ function cWd(a, b, c) {
+ UVd();
+ VVd.call(this, b);
+ this.a = a;
+ this.b = c;
+ }
+ function aIb(a) {
+ $Gb.call(this);
+ THb(this);
+ this.a = a;
+ this.c = true;
+ }
+ function isb(a) {
+ var b;
+ b = a.c.d.b;
+ a.b = b;
+ a.a = a.c.d;
+ b.a = a.c.d.b = a;
+ }
+ function $Cb(a) {
+ var b;
+ NGb(a.a);
+ MGb(a.a);
+ b = new YGb(a.a);
+ UGb(b);
+ }
+ function iKb(a, b) {
+ hKb(a, true);
+ Hkb(a.e.wf(), new mKb(a, true, b));
+ }
+ function tlb(a, b) {
+ pCb(b);
+ return vlb(a, KC(WD, oje, 25, b, 15, 1), b);
+ }
+ function YPb(a, b) {
+ QPb();
+ return a == Xod(jtd(b)) || a == Xod(ltd(b));
+ }
+ function Phb(a, b) {
+ return b == null ? Wd(irb(a.f, null)) : Crb(a.g, b);
+ }
+ function Ksb(a) {
+ return a.b == 0 ? null : (sCb(a.b != 0), Nsb(a, a.a.a));
+ }
+ function QD(a) {
+ return Math.max(Math.min(a, Ohe), -2147483648) | 0;
+ }
+ function uz(a, b) {
+ var c = tz[a.charCodeAt(0)];
+ return c == null ? a : c;
+ }
+ function Cx(a, b) {
+ Rb(a, "set1");
+ Rb(b, "set2");
+ return new Px(a, b);
+ }
+ function QUb(a, b) {
+ var c;
+ c = zUb(a.f, b);
+ return P6c(V6c(c), a.f.d);
+ }
+ function Jwb(a, b) {
+ var c, d;
+ c = b;
+ d = new fxb();
+ Lwb(a, c, d);
+ return d.d;
+ }
+ function NJb(a, b, c, d) {
+ var e;
+ e = new aHb();
+ b.a[c.g] = e;
+ Npb(a.b, d, e);
+ }
+ function zid(a, b, c) {
+ var d;
+ d = a.Yg(b);
+ d >= 0 ? a.sh(d, c) : uid(a, b, c);
+ }
+ function hvd(a, b, c) {
+ evd();
+ !!a && Rhb(dvd, a, b);
+ !!a && Rhb(cvd, a, c);
+ }
+ function g_c(a, b, c) {
+ this.i = new Rkb();
+ this.b = a;
+ this.g = b;
+ this.a = c;
+ }
+ function VZc(a, b, c) {
+ this.c = new Rkb();
+ this.e = a;
+ this.f = b;
+ this.b = c;
+ }
+ function b$c(a, b, c) {
+ this.a = new Rkb();
+ this.e = a;
+ this.f = b;
+ this.c = c;
+ }
+ function Zy(a, b) {
+ Py(this);
+ this.f = b;
+ this.g = a;
+ Ry(this);
+ this._d();
+ }
+ function ZA(a, b) {
+ var c;
+ c = a.q.getHours();
+ a.q.setDate(b);
+ YA(a, c);
+ }
+ function no(a, b) {
+ var c;
+ Qb(b);
+ for (c = a.a; c; c = c.c) {
+ b.Od(c.g, c.i);
+ }
+ }
+ function Fx(a) {
+ var b;
+ b = new Uqb(Cv(a.length));
+ nmb(b, a);
+ return b;
+ }
+ function ecb(a) {
+ function b() {
+ }
+ b.prototype = a || {};
+ return new b();
+ }
+ function dkb(a, b) {
+ if (Zjb(a, b)) {
+ wkb(a);
+ return true;
+ }
+ return false;
+ }
+ function aC(a, b) {
+ if (b == null) {
+ throw vbb(new Geb());
+ }
+ return bC(a, b);
+ }
+ function tdb(a) {
+ if (a.qe()) {
+ return null;
+ }
+ var b = a.n;
+ return _bb[b];
+ }
+ function Mld(a) {
+ if (a.Db >> 16 != 3)
+ return null;
+ return BD(a.Cb, 33);
+ }
+ function mpd(a) {
+ if (a.Db >> 16 != 9)
+ return null;
+ return BD(a.Cb, 33);
+ }
+ function fmd(a) {
+ if (a.Db >> 16 != 6)
+ return null;
+ return BD(a.Cb, 79);
+ }
+ function Ind(a) {
+ if (a.Db >> 16 != 7)
+ return null;
+ return BD(a.Cb, 235);
+ }
+ function Fod(a) {
+ if (a.Db >> 16 != 7)
+ return null;
+ return BD(a.Cb, 160);
+ }
+ function Xod(a) {
+ if (a.Db >> 16 != 11)
+ return null;
+ return BD(a.Cb, 33);
+ }
+ function nid(a, b) {
+ var c;
+ c = a.Yg(b);
+ return c >= 0 ? a.lh(c) : tid(a, b);
+ }
+ function Dtd(a, b) {
+ var c;
+ c = new Bsb(b);
+ Ve(c, a);
+ return new Tkb(c);
+ }
+ function Uud(a) {
+ var b;
+ b = a.d;
+ b = a.si(a.f);
+ wtd(a, b);
+ return b.Ob();
+ }
+ function t_b(a, b) {
+ a.b += b.b;
+ a.c += b.c;
+ a.d += b.d;
+ a.a += b.a;
+ return a;
+ }
+ function A4b(a, b) {
+ return $wnd.Math.abs(a) < $wnd.Math.abs(b) ? a : b;
+ }
+ function Zod(a) {
+ return !a.a && (a.a = new cUd(E2, a, 10, 11)), a.a.i > 0;
+ }
+ function oDb() {
+ this.a = new zsb();
+ this.e = new Tqb();
+ this.g = 0;
+ this.i = 0;
+ }
+ function BGc(a) {
+ this.a = a;
+ this.b = KC(SX, nie, 1944, a.e.length, 0, 2);
+ }
+ function RHc(a, b, c) {
+ var d;
+ d = SHc(a, b, c);
+ a.b = new BHc(d.c.length);
+ }
+ function eMc() {
+ eMc = ccb;
+ cMc = new fMc(vle, 0);
+ dMc = new fMc("UP", 1);
+ }
+ function STc() {
+ STc = ccb;
+ QTc = new TTc(Yqe, 0);
+ RTc = new TTc("FAN", 1);
+ }
+ function evd() {
+ evd = ccb;
+ dvd = new Lqb();
+ cvd = new Lqb();
+ ivd(hK, new jvd());
+ }
+ function Swd(a) {
+ if (a.p != 0)
+ throw vbb(new Ydb());
+ return Kbb(a.f, 0);
+ }
+ function _wd(a) {
+ if (a.p != 0)
+ throw vbb(new Ydb());
+ return Kbb(a.k, 0);
+ }
+ function MHd(a) {
+ if (a.Db >> 16 != 3)
+ return null;
+ return BD(a.Cb, 147);
+ }
+ function ZJd(a) {
+ if (a.Db >> 16 != 6)
+ return null;
+ return BD(a.Cb, 235);
+ }
+ function WId(a) {
+ if (a.Db >> 16 != 17)
+ return null;
+ return BD(a.Cb, 26);
+ }
+ function rdb(a, b) {
+ var c = a.a = a.a || [];
+ return c[b] || (c[b] = a.le(b));
+ }
+ function hrb(a, b) {
+ var c;
+ c = a.a.get(b);
+ return c == null ? new Array() : c;
+ }
+ function aB(a, b) {
+ var c;
+ c = a.q.getHours();
+ a.q.setMonth(b);
+ YA(a, c);
+ }
+ function Shb(a, b, c) {
+ return b == null ? jrb(a.f, null, c) : Drb(a.g, b, c);
+ }
+ function FLd(a, b, c, d, e, f) {
+ return new pSd(a.e, b, a.aj(), c, d, e, f);
+ }
+ function Tfb(a, b, c) {
+ a.a = qfb(a.a, 0, b) + ("" + c) + pfb(a.a, b);
+ return a;
+ }
+ function bq(a, b, c) {
+ Ekb(a.a, (Vm(), Wj(b, c), new Wo(b, c)));
+ return a;
+ }
+ function uu(a) {
+ ot(a.c);
+ a.e = a.a = a.c;
+ a.c = a.c.c;
+ ++a.d;
+ return a.a.f;
+ }
+ function vu(a) {
+ ot(a.e);
+ a.c = a.a = a.e;
+ a.e = a.e.e;
+ --a.d;
+ return a.a.f;
+ }
+ function RZb(a, b) {
+ !!a.d && Lkb(a.d.e, a);
+ a.d = b;
+ !!a.d && Ekb(a.d.e, a);
+ }
+ function QZb(a, b) {
+ !!a.c && Lkb(a.c.g, a);
+ a.c = b;
+ !!a.c && Ekb(a.c.g, a);
+ }
+ function $_b(a, b) {
+ !!a.c && Lkb(a.c.a, a);
+ a.c = b;
+ !!a.c && Ekb(a.c.a, a);
+ }
+ function F0b(a, b) {
+ !!a.i && Lkb(a.i.j, a);
+ a.i = b;
+ !!a.i && Ekb(a.i.j, a);
+ }
+ function jDb(a, b, c) {
+ this.a = b;
+ this.c = a;
+ this.b = (Qb(c), new Tkb(c));
+ }
+ function qXb(a, b, c) {
+ this.a = b;
+ this.c = a;
+ this.b = (Qb(c), new Tkb(c));
+ }
+ function aOb(a, b) {
+ this.a = a;
+ this.c = R6c(this.a);
+ this.b = new K6c(b);
+ }
+ function IAb(a) {
+ var b;
+ Uzb(a);
+ b = new Tqb();
+ return JAb(a, new jBb(b));
+ }
+ function wCb(a, b) {
+ if (a < 0 || a > b) {
+ throw vbb(new qcb(Ake + a + Bke + b));
+ }
+ }
+ function Ppb(a, b) {
+ return vqb(a.a, b) ? Qpb(a, BD(b, 22).g, null) : null;
+ }
+ function WUb(a) {
+ LUb();
+ return Bcb(), BD(a.a, 81).d.e != 0 ? true : false;
+ }
+ function qs() {
+ qs = ccb;
+ ps = as((hs(), OC(GC(yG, 1), Kie, 538, 0, [gs])));
+ }
+ function SBc() {
+ SBc = ccb;
+ RBc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b));
+ }
+ function ZBc() {
+ ZBc = ccb;
+ YBc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b));
+ }
+ function oCc() {
+ oCc = ccb;
+ nCc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b));
+ }
+ function aJc() {
+ aJc = ccb;
+ _Ic = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
+ }
+ function FJc() {
+ FJc = ccb;
+ EJc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
+ }
+ function ILc() {
+ ILc = ccb;
+ HLc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
+ }
+ function wMc() {
+ wMc = ccb;
+ vMc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
+ }
+ function fUc() {
+ fUc = ccb;
+ eUc = c3c(new j3c(), (yRc(), xRc), (qSc(), kSc));
+ }
+ function DOc(a, b, c, d) {
+ this.c = a;
+ this.d = d;
+ BOc(this, b);
+ COc(this, c);
+ }
+ function W3c(a) {
+ this.c = new Psb();
+ this.b = a.b;
+ this.d = a.c;
+ this.a = a.a;
+ }
+ function e7c(a) {
+ this.a = $wnd.Math.cos(a);
+ this.b = $wnd.Math.sin(a);
+ }
+ function BOc(a, b) {
+ !!a.a && Lkb(a.a.k, a);
+ a.a = b;
+ !!a.a && Ekb(a.a.k, a);
+ }
+ function COc(a, b) {
+ !!a.b && Lkb(a.b.f, a);
+ a.b = b;
+ !!a.b && Ekb(a.b.f, a);
+ }
+ function D1c(a, b) {
+ E1c(a, a.b, a.c);
+ BD(a.b.b, 65);
+ !!b && BD(b.b, 65).b;
+ }
+ function BUd(a, b) {
+ CUd(a, b);
+ JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 2);
+ }
+ function cJd(a, b) {
+ JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4);
+ pnd(a, b);
+ }
+ function lKd(a, b) {
+ JD(a.Cb, 179) && (BD(a.Cb, 179).tb = null);
+ pnd(a, b);
+ }
+ function T2d(a, b) {
+ return Q6d(), YId(b) ? new R7d(b, a) : new f7d(b, a);
+ }
+ function jsd(a, b) {
+ var c, d;
+ c = b.c;
+ d = c != null;
+ d && Qpd(a, new yC(b.c));
+ }
+ function XOd(a) {
+ var b, c;
+ c = (LFd(), b = new UQd(), b);
+ NQd(c, a);
+ return c;
+ }
+ function eTd(a) {
+ var b, c;
+ c = (LFd(), b = new UQd(), b);
+ NQd(c, a);
+ return c;
+ }
+ function yCc(a, b) {
+ var c;
+ c = new H1b(a);
+ b.c[b.c.length] = c;
+ return c;
+ }
+ function Aw(a, b) {
+ var c;
+ c = BD(Hv(nd(a.a), b), 14);
+ return !c ? 0 : c.gc();
+ }
+ function UAb(a) {
+ var b;
+ Uzb(a);
+ b = (ipb(), ipb(), gpb);
+ return VAb(a, b);
+ }
+ function nr(a) {
+ var b;
+ while (true) {
+ b = a.Pb();
+ if (!a.Ob()) {
+ return b;
+ }
+ }
+ }
+ function Ki(a, b) {
+ Ii.call(this, new Mqb(Cv(a)));
+ Xj(b, mie);
+ this.a = b;
+ }
+ function Jib(a, b, c) {
+ xCb(b, c, a.gc());
+ this.c = a;
+ this.a = b;
+ this.b = c - b;
+ }
+ function Mkb(a, b, c) {
+ var d;
+ xCb(b, c, a.c.length);
+ d = c - b;
+ cCb(a.c, b, d);
+ }
+ function Fub(a, b) {
+ Eub(a, Tbb(xbb(Obb(b, 24), nke)), Tbb(xbb(b, nke)));
+ }
+ function tCb(a, b) {
+ if (a < 0 || a >= b) {
+ throw vbb(new qcb(Ake + a + Bke + b));
+ }
+ }
+ function BCb(a, b) {
+ if (a < 0 || a >= b) {
+ throw vbb(new Xfb(Ake + a + Bke + b));
+ }
+ }
+ function Kub(a, b) {
+ this.b = (uCb(a), a);
+ this.a = (b & Rje) == 0 ? b | 64 | oie : b;
+ }
+ function kkb(a) {
+ Vjb(this);
+ dCb(this.a, geb($wnd.Math.max(8, a)) << 1);
+ }
+ function A0b(a) {
+ return l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a]));
+ }
+ function Iyb() {
+ Fyb();
+ return OC(GC(xL, 1), Kie, 132, 0, [Cyb, Dyb, Eyb]);
+ }
+ function jHb() {
+ gHb();
+ return OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]);
+ }
+ function QHb() {
+ NHb();
+ return OC(GC(sN, 1), Kie, 461, 0, [LHb, KHb, MHb]);
+ }
+ function HIb() {
+ EIb();
+ return OC(GC(zN, 1), Kie, 462, 0, [DIb, CIb, BIb]);
+ }
+ function UXb() {
+ RXb();
+ return OC(GC(hQ, 1), Kie, 423, 0, [QXb, PXb, OXb]);
+ }
+ function BTb() {
+ yTb();
+ return OC(GC(oP, 1), Kie, 379, 0, [wTb, vTb, xTb]);
+ }
+ function Bzc() {
+ xzc();
+ return OC(GC(ZW, 1), Kie, 378, 0, [uzc, vzc, wzc]);
+ }
+ function Xpc() {
+ Rpc();
+ return OC(GC(GW, 1), Kie, 314, 0, [Ppc, Opc, Qpc]);
+ }
+ function eqc() {
+ bqc();
+ return OC(GC(HW, 1), Kie, 337, 0, [$pc, aqc, _pc]);
+ }
+ function Jqc() {
+ Gqc();
+ return OC(GC(KW, 1), Kie, 450, 0, [Eqc, Dqc, Fqc]);
+ }
+ function Ikc() {
+ Fkc();
+ return OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]);
+ }
+ function hsc() {
+ esc();
+ return OC(GC(RW, 1), Kie, 303, 0, [csc, dsc, bsc]);
+ }
+ function $rc() {
+ Xrc();
+ return OC(GC(QW, 1), Kie, 292, 0, [Vrc, Wrc, Urc]);
+ }
+ function NAc() {
+ KAc();
+ return OC(GC(dX, 1), Kie, 452, 0, [JAc, HAc, IAc]);
+ }
+ function wAc() {
+ tAc();
+ return OC(GC(bX, 1), Kie, 339, 0, [rAc, qAc, sAc]);
+ }
+ function WAc() {
+ TAc();
+ return OC(GC(eX, 1), Kie, 375, 0, [QAc, RAc, SAc]);
+ }
+ function OBc() {
+ LBc();
+ return OC(GC(jX, 1), Kie, 377, 0, [JBc, KBc, IBc]);
+ }
+ function wBc() {
+ tBc();
+ return OC(GC(hX, 1), Kie, 336, 0, [qBc, rBc, sBc]);
+ }
+ function FBc() {
+ CBc();
+ return OC(GC(iX, 1), Kie, 338, 0, [BBc, zBc, ABc]);
+ }
+ function uGc() {
+ rGc();
+ return OC(GC(PX, 1), Kie, 454, 0, [oGc, pGc, qGc]);
+ }
+ function xVc() {
+ tVc();
+ return OC(GC(O$, 1), Kie, 442, 0, [sVc, qVc, rVc]);
+ }
+ function tWc() {
+ pWc();
+ return OC(GC(Y$, 1), Kie, 380, 0, [mWc, nWc, oWc]);
+ }
+ function CYc() {
+ zYc();
+ return OC(GC(q_, 1), Kie, 381, 0, [xYc, yYc, wYc]);
+ }
+ function wXc() {
+ sXc();
+ return OC(GC(b_, 1), Kie, 293, 0, [qXc, rXc, pXc]);
+ }
+ function _$c() {
+ Y$c();
+ return OC(GC(J_, 1), Kie, 437, 0, [V$c, W$c, X$c]);
+ }
+ function kbd() {
+ hbd();
+ return OC(GC(z1, 1), Kie, 334, 0, [fbd, ebd, gbd]);
+ }
+ function tad() {
+ qad();
+ return OC(GC(u1, 1), Kie, 272, 0, [nad, oad, pad]);
+ }
+ function o3d(a, b) {
+ return p3d(a, b, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
+ }
+ function LZc(a, b, c) {
+ var d;
+ d = MZc(a, b, false);
+ return d.b <= b && d.a <= c;
+ }
+ function tMc(a, b, c) {
+ var d;
+ d = new sMc();
+ d.b = b;
+ d.a = c;
+ ++b.b;
+ Ekb(a.d, d);
+ }
+ function fs(a, b) {
+ var c;
+ c = (uCb(a), a).g;
+ lCb(!!c);
+ uCb(b);
+ return c(b);
+ }
+ function av(a, b) {
+ var c, d;
+ d = cv(a, b);
+ c = a.a.Zc(d);
+ return new qv(a, c);
+ }
+ function cKd(a) {
+ if (a.Db >> 16 != 6)
+ return null;
+ return BD(aid(a), 235);
+ }
+ function Uwd(a) {
+ if (a.p != 2)
+ throw vbb(new Ydb());
+ return Tbb(a.f) & aje;
+ }
+ function bxd(a) {
+ if (a.p != 2)
+ throw vbb(new Ydb());
+ return Tbb(a.k) & aje;
+ }
+ function Z1d(a) {
+ a.a == (T0d(), S0d) && d2d(a, U0d(a.g, a.b));
+ return a.a;
+ }
+ function _1d(a) {
+ a.d == (T0d(), S0d) && f2d(a, Y0d(a.g, a.b));
+ return a.d;
+ }
+ function mlb(a) {
+ sCb(a.a < a.c.c.length);
+ a.b = a.a++;
+ return a.c.c[a.b];
+ }
+ function hEb(a, b) {
+ a.b = a.b | b.b;
+ a.c = a.c | b.c;
+ a.d = a.d | b.d;
+ a.a = a.a | b.a;
+ }
+ function xbb(a, b) {
+ return zbb(dD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
+ }
+ function Mbb(a, b) {
+ return zbb(jD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
+ }
+ function Vbb(a, b) {
+ return zbb(rD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
+ }
+ function Dub(a) {
+ return wbb(Nbb(Cbb(Cub(a, 32)), 32), Cbb(Cub(a, 32)));
+ }
+ function Mu(a) {
+ Qb(a);
+ return JD(a, 14) ? new Tkb(BD(a, 14)) : Nu(a.Kc());
+ }
+ function EWb(a, b) {
+ AWb();
+ return a.c == b.c ? Kdb(b.d, a.d) : Kdb(a.c, b.c);
+ }
+ function FWb(a, b) {
+ AWb();
+ return a.c == b.c ? Kdb(a.d, b.d) : Kdb(a.c, b.c);
+ }
+ function HWb(a, b) {
+ AWb();
+ return a.c == b.c ? Kdb(a.d, b.d) : Kdb(b.c, a.c);
+ }
+ function GWb(a, b) {
+ AWb();
+ return a.c == b.c ? Kdb(b.d, a.d) : Kdb(b.c, a.c);
+ }
+ function WGb(a, b) {
+ var c;
+ c = Edb(ED(a.a.We((Y9c(), Q9c))));
+ XGb(a, b, c);
+ }
+ function Rgc(a, b) {
+ var c;
+ c = BD(Ohb(a.g, b), 57);
+ Hkb(b.d, new Qhc(a, c));
+ }
+ function GYb(a, b) {
+ var c, d;
+ c = d_b(a);
+ d = d_b(b);
+ return c < d ? -1 : c > d ? 1 : 0;
+ }
+ function bjc(a, b) {
+ var c, d;
+ c = ajc(b);
+ d = c;
+ return BD(Ohb(a.c, d), 19).a;
+ }
+ function iSc(a, b) {
+ var c;
+ c = a + "";
+ while (c.length < b) {
+ c = "0" + c;
+ }
+ return c;
+ }
+ function WRc(a) {
+ return a.c == null || a.c.length == 0 ? "n_" + a.g : "n_" + a.c;
+ }
+ function oRb(a) {
+ return a.c == null || a.c.length == 0 ? "n_" + a.b : "n_" + a.c;
+ }
+ function qz(a, b) {
+ return !!a && !!a.equals ? a.equals(b) : PD(a) === PD(b);
+ }
+ function dkd(a, b) {
+ if (b == 0) {
+ return !!a.o && a.o.f != 0;
+ }
+ return mid(a, b);
+ }
+ function Tdd(a, b, c) {
+ var d;
+ if (a.n && !!b && !!c) {
+ d = new kgd();
+ Ekb(a.e, d);
+ }
+ }
+ function cIc(a, b, c) {
+ var d;
+ d = a.d[b.p];
+ a.d[b.p] = a.d[c.p];
+ a.d[c.p] = d;
+ }
+ function kxd(a, b, c) {
+ this.d = a;
+ this.j = b;
+ this.e = c;
+ this.o = -1;
+ this.p = 3;
+ }
+ function lxd(a, b, c) {
+ this.d = a;
+ this.k = b;
+ this.f = c;
+ this.o = -1;
+ this.p = 5;
+ }
+ function zge(a, b, c) {
+ xfe.call(this, 25);
+ this.b = a;
+ this.a = b;
+ this.c = c;
+ }
+ function $fe(a) {
+ wfe();
+ xfe.call(this, a);
+ this.c = false;
+ this.a = false;
+ }
+ function sSd(a, b, c, d, e, f) {
+ rSd.call(this, a, b, c, d, e);
+ f && (this.o = -2);
+ }
+ function uSd(a, b, c, d, e, f) {
+ tSd.call(this, a, b, c, d, e);
+ f && (this.o = -2);
+ }
+ function wSd(a, b, c, d, e, f) {
+ vSd.call(this, a, b, c, d, e);
+ f && (this.o = -2);
+ }
+ function ySd(a, b, c, d, e, f) {
+ xSd.call(this, a, b, c, d, e);
+ f && (this.o = -2);
+ }
+ function ASd(a, b, c, d, e, f) {
+ zSd.call(this, a, b, c, d, e);
+ f && (this.o = -2);
+ }
+ function CSd(a, b, c, d, e, f) {
+ BSd.call(this, a, b, c, d, e);
+ f && (this.o = -2);
+ }
+ function HSd(a, b, c, d, e, f) {
+ GSd.call(this, a, b, c, d, e);
+ f && (this.o = -2);
+ }
+ function JSd(a, b, c, d, e, f) {
+ ISd.call(this, a, b, c, d, e);
+ f && (this.o = -2);
+ }
+ function nWd(a, b, c, d) {
+ VVd.call(this, c);
+ this.b = a;
+ this.c = b;
+ this.d = d;
+ }
+ function x$c(a, b) {
+ this.a = new Rkb();
+ this.d = new Rkb();
+ this.f = a;
+ this.c = b;
+ }
+ function PTb() {
+ this.c = new bUb();
+ this.a = new FYb();
+ this.b = new wZb();
+ $Yb();
+ }
+ function b2c() {
+ Y1c();
+ this.b = new Lqb();
+ this.a = new Lqb();
+ this.c = new Rkb();
+ }
+ function j2d(a, b) {
+ this.g = a;
+ this.d = (T0d(), S0d);
+ this.a = S0d;
+ this.b = b;
+ }
+ function O1d(a, b) {
+ this.f = a;
+ this.a = (T0d(), R0d);
+ this.c = R0d;
+ this.b = b;
+ }
+ function h9d(a, b) {
+ !a.c && (a.c = new u3d(a, 0));
+ f3d(a.c, (Q8d(), I8d), b);
+ }
+ function $Tc() {
+ $Tc = ccb;
+ ZTc = new _Tc("DFS", 0);
+ YTc = new _Tc("BFS", 1);
+ }
+ function Cc(a, b, c) {
+ var d;
+ d = BD(a.Zb().xc(b), 14);
+ return !!d && d.Hc(c);
+ }
+ function Gc(a, b, c) {
+ var d;
+ d = BD(a.Zb().xc(b), 14);
+ return !!d && d.Mc(c);
+ }
+ function Ofb(a, b, c, d) {
+ a.a += "" + qfb(b == null ? Xhe : fcb(b), c, d);
+ return a;
+ }
+ function Xnd(a, b, c, d, e, f) {
+ Ynd(a, b, c, f);
+ eLd(a, d);
+ fLd(a, e);
+ return a;
+ }
+ function Ysb(a) {
+ sCb(a.b.b != a.d.a);
+ a.c = a.b = a.b.b;
+ --a.a;
+ return a.c.c;
+ }
+ function Jgb(a) {
+ while (a.d > 0 && a.a[--a.d] == 0)
+ ;
+ a.a[a.d++] == 0 && (a.e = 0);
+ }
+ function wwb(a) {
+ return !a.a ? a.c : a.e.length == 0 ? a.a.a : a.a.a + ("" + a.e);
+ }
+ function RSd(a) {
+ return !!a.a && QSd(a.a.a).i != 0 && !(!!a.b && QTd(a.b));
+ }
+ function cLd(a) {
+ return !!a.u && VKd(a.u.a).i != 0 && !(!!a.n && FMd(a.n));
+ }
+ function $i(a) {
+ return Zj(a.e.Hd().gc() * a.c.Hd().gc(), 16, new ij(a));
+ }
+ function XA(a, b) {
+ return ueb(Cbb(a.q.getTime()), Cbb(b.q.getTime()));
+ }
+ function k_b(a) {
+ return BD(Qkb(a, KC(AQ, jne, 17, a.c.length, 0, 1)), 474);
+ }
+ function l_b(a) {
+ return BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193);
+ }
+ function cKc(a) {
+ FJc();
+ return !OZb(a) && !(!OZb(a) && a.c.i.c == a.d.i.c);
+ }
+ function kDb(a, b, c) {
+ var d;
+ d = (Qb(a), new Tkb(a));
+ iDb(new jDb(d, b, c));
+ }
+ function rXb(a, b, c) {
+ var d;
+ d = (Qb(a), new Tkb(a));
+ pXb(new qXb(d, b, c));
+ }
+ function Nwb(a, b) {
+ var c;
+ c = 1 - b;
+ a.a[c] = Owb(a.a[c], c);
+ return Owb(a, b);
+ }
+ function YXc(a, b) {
+ var c;
+ a.e = new QXc();
+ c = gVc(b);
+ Okb(c, a.c);
+ ZXc(a, c, 0);
+ }
+ function o4c(a, b, c, d) {
+ var e;
+ e = new w4c();
+ e.a = b;
+ e.b = c;
+ e.c = d;
+ Dsb(a.a, e);
+ }
+ function p4c(a, b, c, d) {
+ var e;
+ e = new w4c();
+ e.a = b;
+ e.b = c;
+ e.c = d;
+ Dsb(a.b, e);
+ }
+ function i6d(a) {
+ var b, c, d;
+ b = new A6d();
+ c = s6d(b, a);
+ z6d(b);
+ d = c;
+ return d;
+ }
+ function vZd() {
+ var a, b, c;
+ b = (c = (a = new UQd(), a), c);
+ Ekb(rZd, b);
+ return b;
+ }
+ function H2c(a) {
+ a.j.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Ae(a.c);
+ h3c(a.a);
+ return a;
+ }
+ function tgc(a) {
+ qgc();
+ if (JD(a.g, 10)) {
+ return BD(a.g, 10);
+ }
+ return null;
+ }
+ function Zw(a) {
+ if (Ah(a).dc()) {
+ return false;
+ }
+ Bh(a, new bx());
+ return true;
+ }
+ function _y(b) {
+ if (!("stack" in b)) {
+ try {
+ throw b;
+ } catch (a) {
+ }
+ }
+ return b;
+ }
+ function Pb(a, b) {
+ if (a < 0 || a >= b) {
+ throw vbb(new qcb(Ib(a, b)));
+ }
+ return a;
+ }
+ function Tb(a, b, c) {
+ if (a < 0 || b < a || b > c) {
+ throw vbb(new qcb(Kb(a, b, c)));
+ }
+ }
+ function eVb(a, b) {
+ Qqb(a.a, b);
+ if (b.d) {
+ throw vbb(new hz(Hke));
+ }
+ b.d = a;
+ }
+ function xpb(a, b) {
+ if (b.$modCount != a.$modCount) {
+ throw vbb(new Apb());
+ }
+ }
+ function $pb(a, b) {
+ if (JD(b, 42)) {
+ return Jd(a.a, BD(b, 42));
+ }
+ return false;
+ }
+ function dib(a, b) {
+ if (JD(b, 42)) {
+ return Jd(a.a, BD(b, 42));
+ }
+ return false;
+ }
+ function msb(a, b) {
+ if (JD(b, 42)) {
+ return Jd(a.a, BD(b, 42));
+ }
+ return false;
+ }
+ function qAb(a, b) {
+ if (a.a <= a.b) {
+ b.ud(a.a++);
+ return true;
+ }
+ return false;
+ }
+ function Sbb(a) {
+ var b;
+ if (Fbb(a)) {
+ b = a;
+ return b == -0 ? 0 : b;
+ }
+ return oD(a);
+ }
+ function tAb(a) {
+ var b;
+ Tzb(a);
+ b = new drb();
+ _ub(a.a, new BAb(b));
+ return b;
+ }
+ function Yzb(a) {
+ var b;
+ Tzb(a);
+ b = new Gpb();
+ _ub(a.a, new mAb(b));
+ return b;
+ }
+ function Bib(a, b) {
+ this.a = a;
+ vib.call(this, a);
+ wCb(b, a.gc());
+ this.b = b;
+ }
+ function orb(a) {
+ this.e = a;
+ this.b = this.e.a.entries();
+ this.a = new Array();
+ }
+ function Oi(a) {
+ return Zj(a.e.Hd().gc() * a.c.Hd().gc(), 273, new cj(a));
+ }
+ function Qu(a) {
+ return new Skb((Xj(a, Mie), Oy(wbb(wbb(5, a), a / 10 | 0))));
+ }
+ function m_b(a) {
+ return BD(Qkb(a, KC(aR, lne, 11, a.c.length, 0, 1)), 1943);
+ }
+ function sMb(a, b, c) {
+ return c.f.c.length > 0 ? HMb(a.a, b, c) : HMb(a.b, b, c);
+ }
+ function SZb(a, b, c) {
+ !!a.d && Lkb(a.d.e, a);
+ a.d = b;
+ !!a.d && Dkb(a.d.e, c, a);
+ }
+ function a5b(a, b) {
+ i5b(b, a);
+ k5b(a.d);
+ k5b(BD(vNb(a, (Nyc(), wxc)), 207));
+ }
+ function _4b(a, b) {
+ f5b(b, a);
+ h5b(a.d);
+ h5b(BD(vNb(a, (Nyc(), wxc)), 207));
+ }
+ function Ypd(a, b) {
+ var c, d;
+ c = aC(a, b);
+ d = null;
+ !!c && (d = c.fe());
+ return d;
+ }
+ function Zpd(a, b) {
+ var c, d;
+ c = tB(a, b);
+ d = null;
+ !!c && (d = c.ie());
+ return d;
+ }
+ function $pd(a, b) {
+ var c, d;
+ c = aC(a, b);
+ d = null;
+ !!c && (d = c.ie());
+ return d;
+ }
+ function _pd(a, b) {
+ var c, d;
+ c = aC(a, b);
+ d = null;
+ !!c && (d = aqd(c));
+ return d;
+ }
+ function Tqd(a, b, c) {
+ var d;
+ d = Wpd(c);
+ ro(a.g, d, b);
+ ro(a.i, b, c);
+ return b;
+ }
+ function Ez(a, b, c) {
+ var d;
+ d = Cz();
+ try {
+ return Bz(a, b, c);
+ } finally {
+ Fz(d);
+ }
+ }
+ function C6d(a) {
+ var b;
+ b = a.Wg();
+ this.a = JD(b, 69) ? BD(b, 69).Zh() : b.Kc();
+ }
+ function j3c() {
+ D2c.call(this);
+ this.j.c = KC(SI, Uhe, 1, 0, 5, 1);
+ this.a = -1;
+ }
+ function mxd(a, b, c, d) {
+ this.d = a;
+ this.n = b;
+ this.g = c;
+ this.o = d;
+ this.p = -1;
+ }
+ function jk(a, b, c, d) {
+ this.e = d;
+ this.d = null;
+ this.c = a;
+ this.a = b;
+ this.b = c;
+ }
+ function uEc(a, b, c) {
+ this.d = new HEc(this);
+ this.e = a;
+ this.i = b;
+ this.f = c;
+ }
+ function msc() {
+ msc = ccb;
+ ksc = new nsc(gle, 0);
+ lsc = new nsc("TOP_LEFT", 1);
+ }
+ function cDc() {
+ cDc = ccb;
+ bDc = ix(meb(1), meb(4));
+ aDc = ix(meb(1), meb(2));
+ }
+ function z_c() {
+ z_c = ccb;
+ y_c = as((s_c(), OC(GC(O_, 1), Kie, 551, 0, [r_c])));
+ }
+ function q_c() {
+ q_c = ccb;
+ p_c = as((i_c(), OC(GC(N_, 1), Kie, 482, 0, [h_c])));
+ }
+ function Z0c() {
+ Z0c = ccb;
+ Y0c = as((R0c(), OC(GC(W_, 1), Kie, 530, 0, [Q0c])));
+ }
+ function hPb() {
+ hPb = ccb;
+ gPb = as((cPb(), OC(GC(GO, 1), Kie, 481, 0, [bPb])));
+ }
+ function yLb() {
+ vLb();
+ return OC(GC(PN, 1), Kie, 406, 0, [uLb, rLb, sLb, tLb]);
+ }
+ function qxb() {
+ lxb();
+ return OC(GC(iL, 1), Kie, 297, 0, [hxb, ixb, jxb, kxb]);
+ }
+ function UOb() {
+ ROb();
+ return OC(GC(CO, 1), Kie, 394, 0, [OOb, NOb, POb, QOb]);
+ }
+ function UMb() {
+ RMb();
+ return OC(GC(jO, 1), Kie, 323, 0, [OMb, NMb, PMb, QMb]);
+ }
+ function sWb() {
+ lWb();
+ return OC(GC(SP, 1), Kie, 405, 0, [hWb, kWb, iWb, jWb]);
+ }
+ function kbc() {
+ gbc();
+ return OC(GC(VS, 1), Kie, 360, 0, [fbc, dbc, ebc, cbc]);
+ }
+ function Vc(a, b, c, d) {
+ return JD(c, 54) ? new Cg(a, b, c, d) : new qg(a, b, c, d);
+ }
+ function Djc() {
+ Ajc();
+ return OC(GC(mV, 1), Kie, 411, 0, [wjc, xjc, yjc, zjc]);
+ }
+ function okc(a) {
+ var b;
+ return a.j == (Ucd(), Rcd) && (b = pkc(a), uqb(b, zcd));
+ }
+ function Mdc(a, b) {
+ var c;
+ c = b.a;
+ QZb(c, b.c.d);
+ RZb(c, b.d.d);
+ q7c(c.a, a.n);
+ }
+ function Smc(a, b) {
+ return BD(Btb(QAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113);
+ }
+ function Tmc(a, b) {
+ return BD(Btb(RAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113);
+ }
+ function _w(a) {
+ return new Kub(rmb(BD(a.a.dd(), 14).gc(), a.a.cd()), 16);
+ }
+ function Qq(a) {
+ if (JD(a, 14)) {
+ return BD(a, 14).dc();
+ }
+ return !a.Kc().Ob();
+ }
+ function ugc(a) {
+ qgc();
+ if (JD(a.g, 145)) {
+ return BD(a.g, 145);
+ }
+ return null;
+ }
+ function Ko(a) {
+ if (a.e.g != a.b) {
+ throw vbb(new Apb());
+ }
+ return !!a.c && a.d > 0;
+ }
+ function Xsb(a) {
+ sCb(a.b != a.d.c);
+ a.c = a.b;
+ a.b = a.b.a;
+ ++a.a;
+ return a.c.c;
+ }
+ function Xjb(a, b) {
+ uCb(b);
+ NC(a.a, a.c, b);
+ a.c = a.c + 1 & a.a.length - 1;
+ _jb(a);
+ }
+ function Wjb(a, b) {
+ uCb(b);
+ a.b = a.b - 1 & a.a.length - 1;
+ NC(a.a, a.b, b);
+ _jb(a);
+ }
+ function A2c(a, b) {
+ var c;
+ for (c = a.j.c.length; c < b; c++) {
+ Ekb(a.j, a.rg());
+ }
+ }
+ function gBc(a, b, c, d) {
+ var e;
+ e = d[b.g][c.g];
+ return Edb(ED(vNb(a.a, e)));
+ }
+ function goc(a, b, c, d, e) {
+ this.i = a;
+ this.a = b;
+ this.e = c;
+ this.j = d;
+ this.f = e;
+ }
+ function DZc(a, b, c, d, e) {
+ this.a = a;
+ this.e = b;
+ this.f = c;
+ this.b = d;
+ this.g = e;
+ }
+ function Fz(a) {
+ a && Mz((Kz(), Jz));
+ --xz;
+ if (a) {
+ if (zz != -1) {
+ Hz(zz);
+ zz = -1;
+ }
+ }
+ }
+ function Nzc() {
+ Izc();
+ return OC(GC($W, 1), Kie, 197, 0, [Gzc, Hzc, Fzc, Ezc]);
+ }
+ function ERc() {
+ yRc();
+ return OC(GC(h$, 1), Kie, 393, 0, [uRc, vRc, wRc, xRc]);
+ }
+ function mXc() {
+ iXc();
+ return OC(GC(a_, 1), Kie, 340, 0, [hXc, fXc, gXc, eXc]);
+ }
+ function wdd() {
+ tdd();
+ return OC(GC(I1, 1), Kie, 374, 0, [rdd, sdd, qdd, pdd]);
+ }
+ function vbd() {
+ rbd();
+ return OC(GC(A1, 1), Kie, 285, 0, [qbd, nbd, obd, pbd]);
+ }
+ function Dad() {
+ Aad();
+ return OC(GC(v1, 1), Kie, 218, 0, [zad, xad, wad, yad]);
+ }
+ function Ged() {
+ Ded();
+ return OC(GC(O1, 1), Kie, 311, 0, [Ced, zed, Bed, Aed]);
+ }
+ function sgd() {
+ pgd();
+ return OC(GC(k2, 1), Kie, 396, 0, [mgd, ngd, lgd, ogd]);
+ }
+ function gvd(a) {
+ evd();
+ return Mhb(dvd, a) ? BD(Ohb(dvd, a), 331).ug() : null;
+ }
+ function cid(a, b, c) {
+ return b < 0 ? tid(a, c) : BD(c, 66).Nj().Sj(a, a.yh(), b);
+ }
+ function Sqd(a, b, c) {
+ var d;
+ d = Wpd(c);
+ ro(a.d, d, b);
+ Rhb(a.e, b, c);
+ return b;
+ }
+ function Uqd(a, b, c) {
+ var d;
+ d = Wpd(c);
+ ro(a.j, d, b);
+ Rhb(a.k, b, c);
+ return b;
+ }
+ function dtd(a) {
+ var b, c;
+ b = (Fhd(), c = new Tld(), c);
+ !!a && Rld(b, a);
+ return b;
+ }
+ function wud(a) {
+ var b;
+ b = a.ri(a.i);
+ a.i > 0 && $fb(a.g, 0, b, 0, a.i);
+ return b;
+ }
+ function qEd(a, b) {
+ pEd();
+ var c;
+ c = BD(Ohb(oEd, a), 55);
+ return !c || c.wj(b);
+ }
+ function Twd(a) {
+ if (a.p != 1)
+ throw vbb(new Ydb());
+ return Tbb(a.f) << 24 >> 24;
+ }
+ function axd(a) {
+ if (a.p != 1)
+ throw vbb(new Ydb());
+ return Tbb(a.k) << 24 >> 24;
+ }
+ function gxd(a) {
+ if (a.p != 7)
+ throw vbb(new Ydb());
+ return Tbb(a.k) << 16 >> 16;
+ }
+ function Zwd(a) {
+ if (a.p != 7)
+ throw vbb(new Ydb());
+ return Tbb(a.f) << 16 >> 16;
+ }
+ function sr(a) {
+ var b;
+ b = 0;
+ while (a.Ob()) {
+ a.Pb();
+ b = wbb(b, 1);
+ }
+ return Oy(b);
+ }
+ function nx(a, b) {
+ var c;
+ c = new Vfb();
+ a.xd(c);
+ c.a += "..";
+ b.yd(c);
+ return c.a;
+ }
+ function Sgc(a, b, c) {
+ var d;
+ d = BD(Ohb(a.g, c), 57);
+ Ekb(a.a.c, new vgd(b, d));
+ }
+ function VCb(a, b, c) {
+ return Ddb(ED(Wd(irb(a.f, b))), ED(Wd(irb(a.f, c))));
+ }
+ function E2d(a, b, c) {
+ return F2d(a, b, c, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
+ }
+ function L2d(a, b, c) {
+ return M2d(a, b, c, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
+ }
+ function q3d(a, b, c) {
+ return r3d(a, b, c, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
+ }
+ function JJc(a, b) {
+ return a == (j0b(), h0b) && b == h0b ? 4 : a == h0b || b == h0b ? 8 : 32;
+ }
+ function Nd(a, b) {
+ return PD(b) === PD(a) ? "(this Map)" : b == null ? Xhe : fcb(b);
+ }
+ function kFd(a, b) {
+ return BD(b == null ? Wd(irb(a.f, null)) : Crb(a.g, b), 281);
+ }
+ function Rqd(a, b, c) {
+ var d;
+ d = Wpd(c);
+ Rhb(a.b, d, b);
+ Rhb(a.c, b, c);
+ return b;
+ }
+ function Bfd(a, b) {
+ var c;
+ c = b;
+ while (c) {
+ O6c(a, c.i, c.j);
+ c = Xod(c);
+ }
+ return a;
+ }
+ function kt(a, b) {
+ var c;
+ c = vmb(Nu(new wu(a, b)));
+ ir(new wu(a, b));
+ return c;
+ }
+ function R6d(a, b) {
+ Q6d();
+ var c;
+ c = BD(a, 66).Mj();
+ kVd(c, b);
+ return c.Ok(b);
+ }
+ function TOc(a, b, c, d, e) {
+ var f;
+ f = OOc(e, c, d);
+ Ekb(b, tOc(e, f));
+ XOc(a, e, b);
+ }
+ function mic(a, b, c) {
+ a.i = 0;
+ a.e = 0;
+ if (b == c) {
+ return;
+ }
+ lic(a, b, c);
+ kic(a, b, c);
+ }
+ function dB(a, b) {
+ var c;
+ c = a.q.getHours();
+ a.q.setFullYear(b + nje);
+ YA(a, c);
+ }
+ function dC(d, a, b) {
+ if (b) {
+ var c = b.ee();
+ d.a[a] = c(b);
+ } else {
+ delete d.a[a];
+ }
+ }
+ function vB(d, a, b) {
+ if (b) {
+ var c = b.ee();
+ b = c(b);
+ } else {
+ b = void 0;
+ }
+ d.a[a] = b;
+ }
+ function pCb(a) {
+ if (a < 0) {
+ throw vbb(new Feb("Negative array size: " + a));
+ }
+ }
+ function VKd(a) {
+ if (!a.n) {
+ $Kd(a);
+ a.n = new JMd(a, j5, a);
+ _Kd(a);
+ }
+ return a.n;
+ }
+ function Fqb(a) {
+ sCb(a.a < a.c.a.length);
+ a.b = a.a;
+ Dqb(a);
+ return a.c.b[a.b];
+ }
+ function Yjb(a) {
+ if (a.b == a.c) {
+ return;
+ }
+ a.a = KC(SI, Uhe, 1, 8, 5, 1);
+ a.b = 0;
+ a.c = 0;
+ }
+ function AQb(a) {
+ this.b = new Lqb();
+ this.c = new Lqb();
+ this.d = new Lqb();
+ this.a = a;
+ }
+ function lge(a, b) {
+ wfe();
+ xfe.call(this, a);
+ this.a = b;
+ this.c = -1;
+ this.b = -1;
+ }
+ function lSd(a, b, c, d) {
+ kxd.call(this, 1, c, d);
+ this.c = a;
+ this.b = b;
+ }
+ function mSd(a, b, c, d) {
+ lxd.call(this, 1, c, d);
+ this.c = a;
+ this.b = b;
+ }
+ function O7d(a, b, c, d, e, f, g) {
+ nxd.call(this, b, d, e, f, g);
+ this.c = a;
+ this.a = c;
+ }
+ function LVd(a, b, c) {
+ this.e = a;
+ this.a = SI;
+ this.b = R5d(b);
+ this.c = b;
+ this.d = c;
+ }
+ function Lo(a) {
+ this.e = a;
+ this.c = this.e.a;
+ this.b = this.e.g;
+ this.d = this.e.i;
+ }
+ function nYd(a) {
+ this.c = a;
+ this.a = BD(wId(a), 148);
+ this.b = this.a.Aj().Nh();
+ }
+ function Irb(a) {
+ this.d = a;
+ this.b = this.d.a.entries();
+ this.a = this.b.next();
+ }
+ function $rb() {
+ Lqb.call(this);
+ Trb(this);
+ this.d.b = this.d;
+ this.d.a = this.d;
+ }
+ function mRb(a, b) {
+ _Qb.call(this);
+ this.a = a;
+ this.b = b;
+ Ekb(this.a.b, this);
+ }
+ function uFd(a, b) {
+ var c;
+ return c = b != null ? Phb(a, b) : Wd(irb(a.f, b)), RD(c);
+ }
+ function FFd(a, b) {
+ var c;
+ return c = b != null ? Phb(a, b) : Wd(irb(a.f, b)), RD(c);
+ }
+ function Fob(a, b) {
+ var c;
+ for (c = 0; c < b; ++c) {
+ NC(a, c, new Rob(BD(a[c], 42)));
+ }
+ }
+ function Lgb(a, b) {
+ var c;
+ for (c = a.d - 1; c >= 0 && a.a[c] === b[c]; c--)
+ ;
+ return c < 0;
+ }
+ function Ucc(a, b) {
+ Occ();
+ var c;
+ c = a.j.g - b.j.g;
+ if (c != 0) {
+ return c;
+ }
+ return 0;
+ }
+ function Dtb(a, b) {
+ uCb(b);
+ if (a.a != null) {
+ return Itb(b.Kb(a.a));
+ }
+ return ztb;
+ }
+ function Gx(a) {
+ var b;
+ if (a) {
+ return new Bsb(a);
+ }
+ b = new zsb();
+ Jq(b, a);
+ return b;
+ }
+ function GAb(a, b) {
+ var c;
+ return b.b.Kb(SAb(a, b.c.Ee(), (c = new TBb(b), c)));
+ }
+ function Hub(a) {
+ zub();
+ Eub(this, Tbb(xbb(Obb(a, 24), nke)), Tbb(xbb(a, nke)));
+ }
+ function REb() {
+ REb = ccb;
+ QEb = as((MEb(), OC(GC(aN, 1), Kie, 428, 0, [LEb, KEb])));
+ }
+ function ZEb() {
+ ZEb = ccb;
+ YEb = as((UEb(), OC(GC(bN, 1), Kie, 427, 0, [SEb, TEb])));
+ }
+ function aSb() {
+ aSb = ccb;
+ _Rb = as((XRb(), OC(GC(gP, 1), Kie, 424, 0, [VRb, WRb])));
+ }
+ function D5b() {
+ D5b = ccb;
+ C5b = as((y5b(), OC(GC(ZR, 1), Kie, 511, 0, [x5b, w5b])));
+ }
+ function Cqc() {
+ Cqc = ccb;
+ Bqc = as((xqc(), OC(GC(JW, 1), Kie, 419, 0, [vqc, wqc])));
+ }
+ function erc() {
+ erc = ccb;
+ drc = as((_qc(), OC(GC(MW, 1), Kie, 479, 0, [$qc, Zqc])));
+ }
+ function eBc() {
+ eBc = ccb;
+ dBc = as((_Ac(), OC(GC(fX, 1), Kie, 376, 0, [$Ac, ZAc])));
+ }
+ function GAc() {
+ GAc = ccb;
+ FAc = as((BAc(), OC(GC(cX, 1), Kie, 421, 0, [zAc, AAc])));
+ }
+ function Npc() {
+ Npc = ccb;
+ Mpc = as((Ipc(), OC(GC(FW, 1), Kie, 422, 0, [Gpc, Hpc])));
+ }
+ function rsc() {
+ rsc = ccb;
+ qsc = as((msc(), OC(GC(SW, 1), Kie, 420, 0, [ksc, lsc])));
+ }
+ function MOc() {
+ MOc = ccb;
+ LOc = as((HOc(), OC(GC(DZ, 1), Kie, 520, 0, [GOc, FOc])));
+ }
+ function ZIc() {
+ ZIc = ccb;
+ YIc = as((UIc(), OC(GC(mY, 1), Kie, 523, 0, [TIc, SIc])));
+ }
+ function bMc() {
+ bMc = ccb;
+ aMc = as((YLc(), OC(GC(fZ, 1), Kie, 516, 0, [XLc, WLc])));
+ }
+ function jMc() {
+ jMc = ccb;
+ iMc = as((eMc(), OC(GC(gZ, 1), Kie, 515, 0, [cMc, dMc])));
+ }
+ function KQc() {
+ KQc = ccb;
+ JQc = as((FQc(), OC(GC(YZ, 1), Kie, 455, 0, [DQc, EQc])));
+ }
+ function dUc() {
+ dUc = ccb;
+ cUc = as(($Tc(), OC(GC(F$, 1), Kie, 425, 0, [ZTc, YTc])));
+ }
+ function XUc() {
+ XUc = ccb;
+ WUc = as((PUc(), OC(GC(K$, 1), Kie, 495, 0, [NUc, OUc])));
+ }
+ function XTc() {
+ XTc = ccb;
+ WTc = as((STc(), OC(GC(E$, 1), Kie, 480, 0, [QTc, RTc])));
+ }
+ function lWc() {
+ lWc = ccb;
+ kWc = as((fWc(), OC(GC(X$, 1), Kie, 426, 0, [dWc, eWc])));
+ }
+ function i1c() {
+ i1c = ccb;
+ h1c = as((a1c(), OC(GC(X_, 1), Kie, 429, 0, [_0c, $0c])));
+ }
+ function H_c() {
+ H_c = ccb;
+ G_c = as((C_c(), OC(GC(P_, 1), Kie, 430, 0, [B_c, A_c])));
+ }
+ function UIc() {
+ UIc = ccb;
+ TIc = new VIc("UPPER", 0);
+ SIc = new VIc("LOWER", 1);
+ }
+ function Lqd(a, b) {
+ var c;
+ c = new eC();
+ Spd(c, "x", b.a);
+ Spd(c, "y", b.b);
+ Qpd(a, c);
+ }
+ function Oqd(a, b) {
+ var c;
+ c = new eC();
+ Spd(c, "x", b.a);
+ Spd(c, "y", b.b);
+ Qpd(a, c);
+ }
+ function Jic(a, b) {
+ var c, d;
+ d = false;
+ do {
+ c = Mic(a, b);
+ d = d | c;
+ } while (c);
+ return d;
+ }
+ function zHc(a, b) {
+ var c, d;
+ c = b;
+ d = 0;
+ while (c > 0) {
+ d += a.a[c];
+ c -= c & -c;
+ }
+ return d;
+ }
+ function Cfd(a, b) {
+ var c;
+ c = b;
+ while (c) {
+ O6c(a, -c.i, -c.j);
+ c = Xod(c);
+ }
+ return a;
+ }
+ function reb(a, b) {
+ var c, d;
+ uCb(b);
+ for (d = a.Kc(); d.Ob(); ) {
+ c = d.Pb();
+ b.td(c);
+ }
+ }
+ function me(a, b) {
+ var c;
+ c = b.cd();
+ return new Wo(c, a.e.pc(c, BD(b.dd(), 14)));
+ }
+ function Gsb(a, b, c, d) {
+ var e;
+ e = new jtb();
+ e.c = b;
+ e.b = c;
+ e.a = d;
+ d.b = c.a = e;
+ ++a.b;
+ }
+ function Nkb(a, b, c) {
+ var d;
+ d = (tCb(b, a.c.length), a.c[b]);
+ a.c[b] = c;
+ return d;
+ }
+ function lFd(a, b, c) {
+ return BD(b == null ? jrb(a.f, null, c) : Drb(a.g, b, c), 281);
+ }
+ function fRb(a) {
+ return !!a.c && !!a.d ? oRb(a.c) + "->" + oRb(a.d) : "e_" + FCb(a);
+ }
+ function FAb(a, b) {
+ return (Uzb(a), WAb(new YAb(a, new qBb(b, a.a)))).sd(DAb);
+ }
+ function tUb() {
+ qUb();
+ return OC(GC(zP, 1), Kie, 356, 0, [lUb, mUb, nUb, oUb, pUb]);
+ }
+ function _cd() {
+ Ucd();
+ return OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]);
+ }
+ function Dz(b) {
+ Az();
+ return function() {
+ return Ez(b, this, arguments);
+ };
+ }
+ function sz() {
+ if (Date.now) {
+ return Date.now();
+ }
+ return new Date().getTime();
+ }
+ function OZb(a) {
+ if (!a.c || !a.d) {
+ return false;
+ }
+ return !!a.c.i && a.c.i == a.d.i;
+ }
+ function pv(a) {
+ if (!a.c.Sb()) {
+ throw vbb(new utb());
+ }
+ a.a = true;
+ return a.c.Ub();
+ }
+ function ko(a) {
+ a.i = 0;
+ Alb(a.b, null);
+ Alb(a.c, null);
+ a.a = null;
+ a.e = null;
+ ++a.g;
+ }
+ function ycb(a) {
+ wcb.call(this, a == null ? Xhe : fcb(a), JD(a, 78) ? BD(a, 78) : null);
+ }
+ function PYb(a) {
+ MYb();
+ yXb(this);
+ this.a = new Psb();
+ NYb(this, a);
+ Dsb(this.a, a);
+ }
+ function jYb() {
+ Ckb(this);
+ this.b = new f7c(Pje, Pje);
+ this.a = new f7c(Qje, Qje);
+ }
+ function rAb(a, b) {
+ this.c = 0;
+ this.b = b;
+ jvb.call(this, a, 17493);
+ this.a = this.c;
+ }
+ function wyb(a) {
+ oyb();
+ if (lyb) {
+ return;
+ }
+ this.c = a;
+ this.e = true;
+ this.a = new Rkb();
+ }
+ function oyb() {
+ oyb = ccb;
+ lyb = true;
+ jyb = false;
+ kyb = false;
+ nyb = false;
+ myb = false;
+ }
+ function C3c(a, b) {
+ if (JD(b, 149)) {
+ return dfb(a.c, BD(b, 149).c);
+ }
+ return false;
+ }
+ function zUc(a, b) {
+ var c;
+ c = 0;
+ !!a && (c += a.f.a / 2);
+ !!b && (c += b.f.a / 2);
+ return c;
+ }
+ function j4c(a, b) {
+ var c;
+ c = BD(Wrb(a.d, b), 23);
+ return c ? c : BD(Wrb(a.e, b), 23);
+ }
+ function Lzd(a) {
+ this.b = a;
+ Fyd.call(this, a);
+ this.a = BD(Ajd(this.b.a, 4), 126);
+ }
+ function Uzd(a) {
+ this.b = a;
+ $yd.call(this, a);
+ this.a = BD(Ajd(this.b.a, 4), 126);
+ }
+ function $Kd(a) {
+ if (!a.t) {
+ a.t = new YMd(a);
+ vtd(new c0d(a), 0, a.t);
+ }
+ return a.t;
+ }
+ function kad() {
+ ead();
+ return OC(GC(t1, 1), Kie, 103, 0, [cad, bad, aad, _9c, dad]);
+ }
+ function Wbd() {
+ Tbd();
+ return OC(GC(C1, 1), Kie, 249, 0, [Qbd, Sbd, Obd, Pbd, Rbd]);
+ }
+ function Q5c() {
+ N5c();
+ return OC(GC(e1, 1), Kie, 175, 0, [L5c, K5c, I5c, M5c, J5c]);
+ }
+ function Q_c() {
+ N_c();
+ return OC(GC(Q_, 1), Kie, 316, 0, [I_c, J_c, M_c, K_c, L_c]);
+ }
+ function _zc() {
+ Vzc();
+ return OC(GC(_W, 1), Kie, 315, 0, [Uzc, Rzc, Szc, Qzc, Tzc]);
+ }
+ function sqc() {
+ mqc();
+ return OC(GC(IW, 1), Kie, 335, 0, [iqc, hqc, kqc, lqc, jqc]);
+ }
+ function n$c() {
+ k$c();
+ return OC(GC(y_, 1), Kie, 355, 0, [g$c, f$c, i$c, h$c, j$c]);
+ }
+ function _jc() {
+ Xjc();
+ return OC(GC(uV, 1), Kie, 363, 0, [Tjc, Vjc, Wjc, Ujc, Sjc]);
+ }
+ function Ftc() {
+ Ctc();
+ return OC(GC(TW, 1), Kie, 163, 0, [Btc, xtc, ytc, ztc, Atc]);
+ }
+ function T0d() {
+ T0d = ccb;
+ var a, b;
+ R0d = (LFd(), b = new MPd(), b);
+ S0d = (a = new OJd(), a);
+ }
+ function yUd(a) {
+ var b;
+ if (!a.c) {
+ b = a.r;
+ JD(b, 88) && (a.c = BD(b, 26));
+ }
+ return a.c;
+ }
+ function zc(a) {
+ a.e = 3;
+ a.d = a.Yb();
+ if (a.e != 2) {
+ a.e = 0;
+ return true;
+ }
+ return false;
+ }
+ function RC(a) {
+ var b, c, d;
+ b = a & Eje;
+ c = a >> 22 & Eje;
+ d = a < 0 ? Fje : 0;
+ return TC(b, c, d);
+ }
+ function uy(a) {
+ var b, c, d, e;
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ Qzb(b);
+ }
+ }
+ function Tc(a, b) {
+ var c, d;
+ c = BD(Iv(a.c, b), 14);
+ if (c) {
+ d = c.gc();
+ c.$b();
+ a.d -= d;
+ }
+ }
+ function tjb(a, b) {
+ var c, d;
+ c = b.cd();
+ d = Awb(a, c);
+ return !!d && wtb(d.e, b.dd());
+ }
+ function Qgb(a, b) {
+ if (b == 0 || a.e == 0) {
+ return a;
+ }
+ return b > 0 ? ihb(a, b) : lhb(a, -b);
+ }
+ function Rgb(a, b) {
+ if (b == 0 || a.e == 0) {
+ return a;
+ }
+ return b > 0 ? lhb(a, b) : ihb(a, -b);
+ }
+ function Rr(a) {
+ if (Qr(a)) {
+ a.c = a.a;
+ return a.a.Pb();
+ } else {
+ throw vbb(new utb());
+ }
+ }
+ function Yac(a) {
+ var b, c;
+ b = a.c.i;
+ c = a.d.i;
+ return b.k == (j0b(), e0b) && c.k == e0b;
+ }
+ function kZb(a) {
+ var b;
+ b = new UZb();
+ tNb(b, a);
+ yNb(b, (Nyc(), jxc), null);
+ return b;
+ }
+ function hid(a, b, c) {
+ var d;
+ return d = a.Yg(b), d >= 0 ? a._g(d, c, true) : sid(a, b, c);
+ }
+ function uHb(a, b, c, d) {
+ var e;
+ for (e = 0; e < rHb; e++) {
+ nHb(a.a[b.g][e], c, d[b.g]);
+ }
+ }
+ function vHb(a, b, c, d) {
+ var e;
+ for (e = 0; e < sHb; e++) {
+ mHb(a.a[e][b.g], c, d[b.g]);
+ }
+ }
+ function vSd(a, b, c, d, e) {
+ kxd.call(this, b, d, e);
+ this.c = a;
+ this.a = c;
+ }
+ function zSd(a, b, c, d, e) {
+ lxd.call(this, b, d, e);
+ this.c = a;
+ this.a = c;
+ }
+ function ISd(a, b, c, d, e) {
+ oxd.call(this, b, d, e);
+ this.c = a;
+ this.a = c;
+ }
+ function qSd(a, b, c, d, e) {
+ oxd.call(this, b, d, e);
+ this.c = a;
+ this.b = c;
+ }
+ function mWd(a, b, c) {
+ VVd.call(this, c);
+ this.b = a;
+ this.c = b;
+ this.d = (CWd(), AWd);
+ }
+ function oxd(a, b, c) {
+ this.d = a;
+ this.k = b ? 1 : 0;
+ this.f = c ? 1 : 0;
+ this.o = -1;
+ this.p = 0;
+ }
+ function _6d(a, b, c) {
+ var d;
+ d = new a7d(a.a);
+ Ld(d, a.a.a);
+ jrb(d.f, b, c);
+ a.a.a = d;
+ }
+ function lud(a, b) {
+ a.qi(a.i + 1);
+ mud(a, a.i, a.oi(a.i, b));
+ a.bi(a.i++, b);
+ a.ci();
+ }
+ function oud(a) {
+ var b, c;
+ ++a.j;
+ b = a.g;
+ c = a.i;
+ a.g = null;
+ a.i = 0;
+ a.di(c, b);
+ a.ci();
+ }
+ function Ou(a) {
+ var b, c;
+ Qb(a);
+ b = Iu(a.length);
+ c = new Skb(b);
+ nmb(c, a);
+ return c;
+ }
+ function km(a) {
+ var b;
+ b = (Qb(a), a ? new Tkb(a) : Nu(a.Kc()));
+ smb(b);
+ return Dm(b);
+ }
+ function Kkb(a, b) {
+ var c;
+ c = (tCb(b, a.c.length), a.c[b]);
+ cCb(a.c, b, 1);
+ return c;
+ }
+ function Qc(a, b) {
+ var c;
+ c = BD(a.c.xc(b), 14);
+ !c && (c = a.ic(b));
+ return a.pc(b, c);
+ }
+ function cfb(a, b) {
+ var c, d;
+ c = (uCb(a), a);
+ d = (uCb(b), b);
+ return c == d ? 0 : c < d ? -1 : 1;
+ }
+ function Fpb(a) {
+ var b;
+ b = a.e + a.f;
+ if (isNaN(b) && Ldb(a.d)) {
+ return a.d;
+ }
+ return b;
+ }
+ function uwb(a, b) {
+ !a.a ? a.a = new Wfb(a.d) : Qfb(a.a, a.b);
+ Nfb(a.a, b);
+ return a;
+ }
+ function Sb(a, b) {
+ if (a < 0 || a > b) {
+ throw vbb(new qcb(Jb(a, b, "index")));
+ }
+ return a;
+ }
+ function zhb(a, b, c, d) {
+ var e;
+ e = KC(WD, oje, 25, b, 15, 1);
+ Ahb(e, a, b, c, d);
+ return e;
+ }
+ function _A(a, b) {
+ var c;
+ c = a.q.getHours() + (b / 60 | 0);
+ a.q.setMinutes(b);
+ YA(a, c);
+ }
+ function A$c(a, b) {
+ return $wnd.Math.min(S6c(b.a, a.d.d.c), S6c(b.b, a.d.d.c));
+ }
+ function Thb(a, b) {
+ return ND(b) ? b == null ? krb(a.f, null) : Erb(a.g, b) : krb(a.f, b);
+ }
+ function b1b(a) {
+ this.c = a;
+ this.a = new olb(this.c.a);
+ this.b = new olb(this.c.b);
+ }
+ function kRb() {
+ this.e = new Rkb();
+ this.c = new Rkb();
+ this.d = new Rkb();
+ this.b = new Rkb();
+ }
+ function MFb() {
+ this.g = new PFb();
+ this.b = new PFb();
+ this.a = new Rkb();
+ this.k = new Rkb();
+ }
+ function Gjc(a, b, c) {
+ this.a = a;
+ this.c = b;
+ this.d = c;
+ Ekb(b.e, this);
+ Ekb(c.b, this);
+ }
+ function wBb(a, b) {
+ fvb.call(this, b.rd(), b.qd() & -6);
+ uCb(a);
+ this.a = a;
+ this.b = b;
+ }
+ function CBb(a, b) {
+ jvb.call(this, b.rd(), b.qd() & -6);
+ uCb(a);
+ this.a = a;
+ this.b = b;
+ }
+ function IBb(a, b) {
+ nvb.call(this, b.rd(), b.qd() & -6);
+ uCb(a);
+ this.a = a;
+ this.b = b;
+ }
+ function BQc(a, b, c) {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ Ekb(a.t, this);
+ Ekb(b.i, this);
+ }
+ function SRc() {
+ this.b = new Psb();
+ this.a = new Psb();
+ this.b = new Psb();
+ this.a = new Psb();
+ }
+ function g6c() {
+ g6c = ccb;
+ f6c = new Lsd("org.eclipse.elk.labels.labelManager");
+ }
+ function Vac() {
+ Vac = ccb;
+ Uac = new Msd("separateLayerConnections", (gbc(), fbc));
+ }
+ function HOc() {
+ HOc = ccb;
+ GOc = new IOc("REGULAR", 0);
+ FOc = new IOc("CRITICAL", 1);
+ }
+ function _Ac() {
+ _Ac = ccb;
+ $Ac = new aBc("STACKED", 0);
+ ZAc = new aBc("SEQUENCED", 1);
+ }
+ function C_c() {
+ C_c = ccb;
+ B_c = new D_c("FIXED", 0);
+ A_c = new D_c("CENTER_NODE", 1);
+ }
+ function PHc(a, b) {
+ var c;
+ c = VHc(a, b);
+ a.b = new BHc(c.c.length);
+ return OHc(a, c);
+ }
+ function KAd(a, b, c) {
+ var d;
+ ++a.e;
+ --a.f;
+ d = BD(a.d[b].$c(c), 133);
+ return d.dd();
+ }
+ function JJd(a) {
+ var b;
+ if (!a.a) {
+ b = a.r;
+ JD(b, 148) && (a.a = BD(b, 148));
+ }
+ return a.a;
+ }
+ function poc(a) {
+ if (a.a) {
+ if (a.e) {
+ return poc(a.e);
+ }
+ } else {
+ return a;
+ }
+ return null;
+ }
+ function ODc(a, b) {
+ if (a.p < b.p) {
+ return 1;
+ } else if (a.p > b.p) {
+ return -1;
+ }
+ return 0;
+ }
+ function pvb(a, b) {
+ uCb(b);
+ if (a.c < a.d) {
+ a.ze(b, a.c++);
+ return true;
+ }
+ return false;
+ }
+ function QYd(a, b) {
+ if (Mhb(a.a, b)) {
+ Thb(a.a, b);
+ return true;
+ } else {
+ return false;
+ }
+ }
+ function fd(a) {
+ var b, c;
+ b = a.cd();
+ c = BD(a.dd(), 14);
+ return $j(c.Nc(), new ah(b));
+ }
+ function sqb(a) {
+ var b;
+ b = BD(ZBb(a.b, a.b.length), 9);
+ return new xqb(a.a, b, a.c);
+ }
+ function _zb(a) {
+ var b;
+ Uzb(a);
+ b = new fAb(a, a.a.e, a.a.d | 4);
+ return new bAb(a, b);
+ }
+ function HAb(a) {
+ var b;
+ Tzb(a);
+ b = 0;
+ while (a.a.sd(new RBb())) {
+ b = wbb(b, 1);
+ }
+ return b;
+ }
+ function UDc(a, b, c) {
+ var d, e;
+ d = 0;
+ for (e = 0; e < b.length; e++) {
+ d += a.$f(b[e], d, c);
+ }
+ }
+ function QJb(a, b) {
+ var c;
+ if (a.C) {
+ c = BD(Mpb(a.b, b), 124).n;
+ c.d = a.C.d;
+ c.a = a.C.a;
+ }
+ }
+ function Mi(a, b, c) {
+ Pb(b, a.e.Hd().gc());
+ Pb(c, a.c.Hd().gc());
+ return a.a[b][c];
+ }
+ function Ugb(a, b) {
+ Hgb();
+ this.e = a;
+ this.d = 1;
+ this.a = OC(GC(WD, 1), oje, 25, 15, [b]);
+ }
+ function dg(a, b, c, d) {
+ this.f = a;
+ this.e = b;
+ this.d = c;
+ this.b = d;
+ this.c = !d ? null : d.d;
+ }
+ function o5b(a) {
+ var b, c, d, e;
+ e = a.d;
+ b = a.a;
+ c = a.b;
+ d = a.c;
+ a.d = c;
+ a.a = d;
+ a.b = e;
+ a.c = b;
+ }
+ function Y2d(a, b, c, d) {
+ X2d(a, b, c, M2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0));
+ }
+ function tac(a, b) {
+ Odd(b, "Label management", 1);
+ RD(vNb(a, (g6c(), f6c)));
+ Qdd(b);
+ }
+ function Skb(a) {
+ Ckb(this);
+ mCb(a >= 0, "Initial capacity must not be negative");
+ }
+ function lHb() {
+ lHb = ccb;
+ kHb = as((gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])));
+ }
+ function SHb() {
+ SHb = ccb;
+ RHb = as((NHb(), OC(GC(sN, 1), Kie, 461, 0, [LHb, KHb, MHb])));
+ }
+ function JIb() {
+ JIb = ccb;
+ IIb = as((EIb(), OC(GC(zN, 1), Kie, 462, 0, [DIb, CIb, BIb])));
+ }
+ function Kyb() {
+ Kyb = ccb;
+ Jyb = as((Fyb(), OC(GC(xL, 1), Kie, 132, 0, [Cyb, Dyb, Eyb])));
+ }
+ function DTb() {
+ DTb = ccb;
+ CTb = as((yTb(), OC(GC(oP, 1), Kie, 379, 0, [wTb, vTb, xTb])));
+ }
+ function WXb() {
+ WXb = ccb;
+ VXb = as((RXb(), OC(GC(hQ, 1), Kie, 423, 0, [QXb, PXb, OXb])));
+ }
+ function Zpc() {
+ Zpc = ccb;
+ Ypc = as((Rpc(), OC(GC(GW, 1), Kie, 314, 0, [Ppc, Opc, Qpc])));
+ }
+ function gqc() {
+ gqc = ccb;
+ fqc = as((bqc(), OC(GC(HW, 1), Kie, 337, 0, [$pc, aqc, _pc])));
+ }
+ function Lqc() {
+ Lqc = ccb;
+ Kqc = as((Gqc(), OC(GC(KW, 1), Kie, 450, 0, [Eqc, Dqc, Fqc])));
+ }
+ function Kkc() {
+ Kkc = ccb;
+ Jkc = as((Fkc(), OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc])));
+ }
+ function jsc() {
+ jsc = ccb;
+ isc = as((esc(), OC(GC(RW, 1), Kie, 303, 0, [csc, dsc, bsc])));
+ }
+ function asc() {
+ asc = ccb;
+ _rc = as((Xrc(), OC(GC(QW, 1), Kie, 292, 0, [Vrc, Wrc, Urc])));
+ }
+ function Dzc() {
+ Dzc = ccb;
+ Czc = as((xzc(), OC(GC(ZW, 1), Kie, 378, 0, [uzc, vzc, wzc])));
+ }
+ function YAc() {
+ YAc = ccb;
+ XAc = as((TAc(), OC(GC(eX, 1), Kie, 375, 0, [QAc, RAc, SAc])));
+ }
+ function yAc() {
+ yAc = ccb;
+ xAc = as((tAc(), OC(GC(bX, 1), Kie, 339, 0, [rAc, qAc, sAc])));
+ }
+ function PAc() {
+ PAc = ccb;
+ OAc = as((KAc(), OC(GC(dX, 1), Kie, 452, 0, [JAc, HAc, IAc])));
+ }
+ function QBc() {
+ QBc = ccb;
+ PBc = as((LBc(), OC(GC(jX, 1), Kie, 377, 0, [JBc, KBc, IBc])));
+ }
+ function yBc() {
+ yBc = ccb;
+ xBc = as((tBc(), OC(GC(hX, 1), Kie, 336, 0, [qBc, rBc, sBc])));
+ }
+ function HBc() {
+ HBc = ccb;
+ GBc = as((CBc(), OC(GC(iX, 1), Kie, 338, 0, [BBc, zBc, ABc])));
+ }
+ function wGc() {
+ wGc = ccb;
+ vGc = as((rGc(), OC(GC(PX, 1), Kie, 454, 0, [oGc, pGc, qGc])));
+ }
+ function zVc() {
+ zVc = ccb;
+ yVc = as((tVc(), OC(GC(O$, 1), Kie, 442, 0, [sVc, qVc, rVc])));
+ }
+ function vWc() {
+ vWc = ccb;
+ uWc = as((pWc(), OC(GC(Y$, 1), Kie, 380, 0, [mWc, nWc, oWc])));
+ }
+ function EYc() {
+ EYc = ccb;
+ DYc = as((zYc(), OC(GC(q_, 1), Kie, 381, 0, [xYc, yYc, wYc])));
+ }
+ function yXc() {
+ yXc = ccb;
+ xXc = as((sXc(), OC(GC(b_, 1), Kie, 293, 0, [qXc, rXc, pXc])));
+ }
+ function b_c() {
+ b_c = ccb;
+ a_c = as((Y$c(), OC(GC(J_, 1), Kie, 437, 0, [V$c, W$c, X$c])));
+ }
+ function mbd() {
+ mbd = ccb;
+ lbd = as((hbd(), OC(GC(z1, 1), Kie, 334, 0, [fbd, ebd, gbd])));
+ }
+ function vad() {
+ vad = ccb;
+ uad = as((qad(), OC(GC(u1, 1), Kie, 272, 0, [nad, oad, pad])));
+ }
+ function icd() {
+ dcd();
+ return OC(GC(D1, 1), Kie, 98, 0, [ccd, bcd, acd, Zbd, _bd, $bd]);
+ }
+ function ikd(a, b) {
+ return !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), qAd(a.o, b);
+ }
+ function NAd(a) {
+ !a.g && (a.g = new JCd());
+ !a.g.d && (a.g.d = new MBd(a));
+ return a.g.d;
+ }
+ function yAd(a) {
+ !a.g && (a.g = new JCd());
+ !a.g.a && (a.g.a = new SBd(a));
+ return a.g.a;
+ }
+ function EAd(a) {
+ !a.g && (a.g = new JCd());
+ !a.g.b && (a.g.b = new GBd(a));
+ return a.g.b;
+ }
+ function FAd(a) {
+ !a.g && (a.g = new JCd());
+ !a.g.c && (a.g.c = new iCd(a));
+ return a.g.c;
+ }
+ function A2d(a, b, c) {
+ var d, e;
+ e = new p4d(b, a);
+ for (d = 0; d < c; ++d) {
+ d4d(e);
+ }
+ return e;
+ }
+ function Atd(a, b, c) {
+ var d, e;
+ if (c != null) {
+ for (d = 0; d < b; ++d) {
+ e = c[d];
+ a.fi(d, e);
+ }
+ }
+ }
+ function uhb(a, b, c, d) {
+ var e;
+ e = KC(WD, oje, 25, b + 1, 15, 1);
+ vhb(e, a, b, c, d);
+ return e;
+ }
+ function KC(a, b, c, d, e, f) {
+ var g;
+ g = LC(e, d);
+ e != 10 && OC(GC(a, f), b, c, e, g);
+ return g;
+ }
+ function bYd(a, b, c, d) {
+ !!c && (d = c.gh(b, bLd(c.Tg(), a.c.Lj()), null, d));
+ return d;
+ }
+ function cYd(a, b, c, d) {
+ !!c && (d = c.ih(b, bLd(c.Tg(), a.c.Lj()), null, d));
+ return d;
+ }
+ function KNb(a, b, c) {
+ BD(a.b, 65);
+ BD(a.b, 65);
+ BD(a.b, 65);
+ Hkb(a.a, new TNb(c, b, a));
+ }
+ function ACb(a, b, c) {
+ if (a < 0 || b > c || b < a) {
+ throw vbb(new Xfb(xke + a + zke + b + oke + c));
+ }
+ }
+ function zCb(a) {
+ if (!a) {
+ throw vbb(new Zdb("Unable to add element to queue"));
+ }
+ }
+ function Vzb(a) {
+ if (!a) {
+ this.c = null;
+ this.b = new Rkb();
+ } else {
+ this.c = a;
+ this.b = null;
+ }
+ }
+ function exb(a, b) {
+ pjb.call(this, a, b);
+ this.a = KC(dL, zie, 436, 2, 0, 1);
+ this.b = true;
+ }
+ function _rb(a) {
+ Whb.call(this, a, 0);
+ Trb(this);
+ this.d.b = this.d;
+ this.d.a = this.d;
+ }
+ function VRc(a) {
+ var b;
+ b = a.b;
+ if (b.b == 0) {
+ return null;
+ }
+ return BD(Ut(b, 0), 188).b;
+ }
+ function Kwb(a, b) {
+ var c;
+ c = new fxb();
+ c.c = true;
+ c.d = b.dd();
+ return Lwb(a, b.cd(), c);
+ }
+ function bB(a, b) {
+ var c;
+ c = a.q.getHours() + (b / 3600 | 0);
+ a.q.setSeconds(b);
+ YA(a, c);
+ }
+ function zGc(a, b, c) {
+ var d;
+ d = a.b[c.c.p][c.p];
+ d.b += b.b;
+ d.c += b.c;
+ d.a += b.a;
+ ++d.a;
+ }
+ function S6c(a, b) {
+ var c, d;
+ c = a.a - b.a;
+ d = a.b - b.b;
+ return $wnd.Math.sqrt(c * c + d * d);
+ }
+ function Ipc() {
+ Ipc = ccb;
+ Gpc = new Jpc("QUADRATIC", 0);
+ Hpc = new Jpc("SCANLINE", 1);
+ }
+ function hCc() {
+ hCc = ccb;
+ gCc = c3c(e3c(new j3c(), (qUb(), lUb), (S8b(), n8b)), pUb, J8b);
+ }
+ function l8c() {
+ i8c();
+ return OC(GC(r1, 1), Kie, 291, 0, [h8c, g8c, f8c, d8c, c8c, e8c]);
+ }
+ function I7c() {
+ F7c();
+ return OC(GC(o1, 1), Kie, 248, 0, [z7c, C7c, D7c, E7c, A7c, B7c]);
+ }
+ function Dpc() {
+ Apc();
+ return OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]);
+ }
+ function Brc() {
+ yrc();
+ return OC(GC(OW, 1), Kie, 275, 0, [wrc, trc, xrc, vrc, urc, rrc]);
+ }
+ function orc() {
+ lrc();
+ return OC(GC(NW, 1), Kie, 274, 0, [irc, hrc, krc, grc, jrc, frc]);
+ }
+ function rzc() {
+ lzc();
+ return OC(GC(YW, 1), Kie, 313, 0, [jzc, hzc, fzc, gzc, kzc, izc]);
+ }
+ function Wqc() {
+ Sqc();
+ return OC(GC(LW, 1), Kie, 276, 0, [Nqc, Mqc, Pqc, Oqc, Rqc, Qqc]);
+ }
+ function uSc() {
+ qSc();
+ return OC(GC(t$, 1), Kie, 327, 0, [pSc, lSc, nSc, mSc, oSc, kSc]);
+ }
+ function wcd() {
+ rcd();
+ return OC(GC(E1, 1), Kie, 273, 0, [pcd, ncd, ocd, mcd, lcd, qcd]);
+ }
+ function Pad() {
+ Mad();
+ return OC(GC(w1, 1), Kie, 312, 0, [Kad, Iad, Lad, Gad, Jad, Had]);
+ }
+ function m0b() {
+ j0b();
+ return OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b]);
+ }
+ function mib(a) {
+ yCb(!!a.c);
+ xpb(a.e, a);
+ a.c.Qb();
+ a.c = null;
+ a.b = kib(a);
+ ypb(a.e, a);
+ }
+ function tsb(a) {
+ xpb(a.c.a.e, a);
+ sCb(a.b != a.c.a.d);
+ a.a = a.b;
+ a.b = a.b.a;
+ return a.a;
+ }
+ function kSd(a) {
+ var b;
+ if (!a.a && a.b != -1) {
+ b = a.c.Tg();
+ a.a = XKd(b, a.b);
+ }
+ return a.a;
+ }
+ function wtd(a, b) {
+ if (a.hi() && a.Hc(b)) {
+ return false;
+ } else {
+ a.Yh(b);
+ return true;
+ }
+ }
+ function $Hb(a, b) {
+ ytb(b, "Horizontal alignment cannot be null");
+ a.b = b;
+ return a;
+ }
+ function Lfe(a, b, c) {
+ wfe();
+ var d;
+ d = Kfe(a, b);
+ c && !!d && Nfe(a) && (d = null);
+ return d;
+ }
+ function vXb(a, b, c) {
+ var d, e;
+ for (e = a.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 37);
+ uXb(d, b, c);
+ }
+ }
+ function tXb(a, b) {
+ var c, d;
+ for (d = b.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 37);
+ sXb(a, c, 0, 0);
+ }
+ }
+ function ojc(a, b, c) {
+ var d;
+ a.d[b.g] = c;
+ d = a.g.c;
+ d[b.g] = $wnd.Math.max(d[b.g], c + 1);
+ }
+ function KZc(a, b) {
+ var c, d, e;
+ e = a.r;
+ d = a.d;
+ c = MZc(a, b, true);
+ return c.b != e || c.a != d;
+ }
+ function Jjc(a, b) {
+ Vrb(a.e, b) || Xrb(a.e, b, new Pjc(b));
+ return BD(Wrb(a.e, b), 113);
+ }
+ function Byb(a, b, c, d) {
+ uCb(a);
+ uCb(b);
+ uCb(c);
+ uCb(d);
+ return new Lyb(a, b, new Vxb());
+ }
+ function dId(a, b, c, d) {
+ this.rj();
+ this.a = b;
+ this.b = a;
+ this.c = new Y5d(this, b, c, d);
+ }
+ function oSd(a, b, c, d, e, f) {
+ mxd.call(this, b, d, e, f);
+ this.c = a;
+ this.b = c;
+ }
+ function ESd(a, b, c, d, e, f) {
+ mxd.call(this, b, d, e, f);
+ this.c = a;
+ this.a = c;
+ }
+ function Bqd(a, b, c) {
+ var d, e, f;
+ d = aC(a, c);
+ e = null;
+ !!d && (e = aqd(d));
+ f = e;
+ Vqd(b, c, f);
+ }
+ function Cqd(a, b, c) {
+ var d, e, f;
+ d = aC(a, c);
+ e = null;
+ !!d && (e = aqd(d));
+ f = e;
+ Vqd(b, c, f);
+ }
+ function v1d(a, b, c) {
+ var d, e;
+ e = (d = nUd(a.b, b), d);
+ return !e ? null : V1d(p1d(a, e), c);
+ }
+ function gid(a, b) {
+ var c;
+ return c = a.Yg(b), c >= 0 ? a._g(c, true, true) : sid(a, b, true);
+ }
+ function s6b(a, b) {
+ return Kdb(Edb(ED(vNb(a, (wtc(), htc)))), Edb(ED(vNb(b, htc))));
+ }
+ function pUc() {
+ pUc = ccb;
+ oUc = b3c(b3c(g3c(new j3c(), (yRc(), vRc)), (qSc(), pSc)), lSc);
+ }
+ function IHc(a, b, c) {
+ var d;
+ d = SHc(a, b, c);
+ a.b = new BHc(d.c.length);
+ return KHc(a, d);
+ }
+ function qhe(a) {
+ if (a.b <= 0)
+ throw vbb(new utb());
+ --a.b;
+ a.a -= a.c.c;
+ return meb(a.a);
+ }
+ function ptd(a) {
+ var b;
+ if (!a.a) {
+ throw vbb(new vtb());
+ }
+ b = a.a;
+ a.a = Xod(a.a);
+ return b;
+ }
+ function dBb(a) {
+ while (!a.a) {
+ if (!HBb(a.c, new hBb(a))) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function vr(a) {
+ var b;
+ Qb(a);
+ if (JD(a, 198)) {
+ b = BD(a, 198);
+ return b;
+ }
+ return new wr(a);
+ }
+ function r3c(a) {
+ p3c();
+ BD(a.We((Y9c(), x9c)), 174).Fc((rcd(), ocd));
+ a.Ye(w9c, null);
+ }
+ function p3c() {
+ p3c = ccb;
+ m3c = new v3c();
+ o3c = new x3c();
+ n3c = mn((Y9c(), w9c), m3c, b9c, o3c);
+ }
+ function fWc() {
+ fWc = ccb;
+ dWc = new hWc("LEAF_NUMBER", 0);
+ eWc = new hWc("NODE_SIZE", 1);
+ }
+ function UMc(a, b, c) {
+ a.a = b;
+ a.c = c;
+ a.b.a.$b();
+ Osb(a.d);
+ a.e.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ function yHc(a) {
+ a.a = KC(WD, oje, 25, a.b + 1, 15, 1);
+ a.c = KC(WD, oje, 25, a.b, 15, 1);
+ a.d = 0;
+ }
+ function MWb(a, b) {
+ if (a.a.ue(b.d, a.b) > 0) {
+ Ekb(a.c, new dWb(b.c, b.d, a.d));
+ a.b = b.d;
+ }
+ }
+ function nud(a, b) {
+ if (a.g == null || b >= a.i)
+ throw vbb(new $zd(b, a.i));
+ return a.g[b];
+ }
+ function pOd(a, b, c) {
+ Itd(a, c);
+ if (c != null && !a.wj(c)) {
+ throw vbb(new tcb());
+ }
+ return c;
+ }
+ function KLd(a) {
+ var b;
+ if (a.Ek()) {
+ for (b = a.i - 1; b >= 0; --b) {
+ qud(a, b);
+ }
+ }
+ return wud(a);
+ }
+ function Bwb(a) {
+ var b, c;
+ if (!a.b) {
+ return null;
+ }
+ c = a.b;
+ while (b = c.a[0]) {
+ c = b;
+ }
+ return c;
+ }
+ function ulb(a, b) {
+ var c, d;
+ pCb(b);
+ return c = (d = a.slice(0, b), PC(d, a)), c.length = b, c;
+ }
+ function Klb(a, b, c, d) {
+ var e;
+ d = (ipb(), !d ? fpb : d);
+ e = a.slice(b, c);
+ Llb(e, a, b, c, -b, d);
+ }
+ function bid(a, b, c, d, e) {
+ return b < 0 ? sid(a, c, d) : BD(c, 66).Nj().Pj(a, a.yh(), b, d, e);
+ }
+ function hZd(a) {
+ if (JD(a, 172)) {
+ return "" + BD(a, 172).a;
+ }
+ return a == null ? null : fcb(a);
+ }
+ function iZd(a) {
+ if (JD(a, 172)) {
+ return "" + BD(a, 172).a;
+ }
+ return a == null ? null : fcb(a);
+ }
+ function nDb(a, b) {
+ if (b.a) {
+ throw vbb(new hz(Hke));
+ }
+ Qqb(a.a, b);
+ b.a = a;
+ !a.j && (a.j = b);
+ }
+ function qBb(a, b) {
+ nvb.call(this, b.rd(), b.qd() & -16449);
+ uCb(a);
+ this.a = a;
+ this.c = b;
+ }
+ function Ti(a, b) {
+ var c, d;
+ d = b / a.c.Hd().gc() | 0;
+ c = b % a.c.Hd().gc();
+ return Mi(a, d, c);
+ }
+ function NHb() {
+ NHb = ccb;
+ LHb = new OHb(jle, 0);
+ KHb = new OHb(gle, 1);
+ MHb = new OHb(kle, 2);
+ }
+ function lxb() {
+ lxb = ccb;
+ hxb = new mxb("All", 0);
+ ixb = new rxb();
+ jxb = new txb();
+ kxb = new wxb();
+ }
+ function zxb() {
+ zxb = ccb;
+ yxb = as((lxb(), OC(GC(iL, 1), Kie, 297, 0, [hxb, ixb, jxb, kxb])));
+ }
+ function uWb() {
+ uWb = ccb;
+ tWb = as((lWb(), OC(GC(SP, 1), Kie, 405, 0, [hWb, kWb, iWb, jWb])));
+ }
+ function ALb() {
+ ALb = ccb;
+ zLb = as((vLb(), OC(GC(PN, 1), Kie, 406, 0, [uLb, rLb, sLb, tLb])));
+ }
+ function WMb() {
+ WMb = ccb;
+ VMb = as((RMb(), OC(GC(jO, 1), Kie, 323, 0, [OMb, NMb, PMb, QMb])));
+ }
+ function WOb() {
+ WOb = ccb;
+ VOb = as((ROb(), OC(GC(CO, 1), Kie, 394, 0, [OOb, NOb, POb, QOb])));
+ }
+ function GRc() {
+ GRc = ccb;
+ FRc = as((yRc(), OC(GC(h$, 1), Kie, 393, 0, [uRc, vRc, wRc, xRc])));
+ }
+ function mbc() {
+ mbc = ccb;
+ lbc = as((gbc(), OC(GC(VS, 1), Kie, 360, 0, [fbc, dbc, ebc, cbc])));
+ }
+ function oXc() {
+ oXc = ccb;
+ nXc = as((iXc(), OC(GC(a_, 1), Kie, 340, 0, [hXc, fXc, gXc, eXc])));
+ }
+ function Fjc() {
+ Fjc = ccb;
+ Ejc = as((Ajc(), OC(GC(mV, 1), Kie, 411, 0, [wjc, xjc, yjc, zjc])));
+ }
+ function Pzc() {
+ Pzc = ccb;
+ Ozc = as((Izc(), OC(GC($W, 1), Kie, 197, 0, [Gzc, Hzc, Fzc, Ezc])));
+ }
+ function ugd() {
+ ugd = ccb;
+ tgd = as((pgd(), OC(GC(k2, 1), Kie, 396, 0, [mgd, ngd, lgd, ogd])));
+ }
+ function xbd() {
+ xbd = ccb;
+ wbd = as((rbd(), OC(GC(A1, 1), Kie, 285, 0, [qbd, nbd, obd, pbd])));
+ }
+ function Fad() {
+ Fad = ccb;
+ Ead = as((Aad(), OC(GC(v1, 1), Kie, 218, 0, [zad, xad, wad, yad])));
+ }
+ function Ied() {
+ Ied = ccb;
+ Hed = as((Ded(), OC(GC(O1, 1), Kie, 311, 0, [Ced, zed, Bed, Aed])));
+ }
+ function ydd() {
+ ydd = ccb;
+ xdd = as((tdd(), OC(GC(I1, 1), Kie, 374, 0, [rdd, sdd, qdd, pdd])));
+ }
+ function A9d() {
+ A9d = ccb;
+ Smd();
+ x9d = Pje;
+ w9d = Qje;
+ z9d = new Ndb(Pje);
+ y9d = new Ndb(Qje);
+ }
+ function _qc() {
+ _qc = ccb;
+ $qc = new arc(ane, 0);
+ Zqc = new arc("IMPROVE_STRAIGHTNESS", 1);
+ }
+ function eIc(a, b) {
+ FHc();
+ return Ekb(a, new vgd(b, meb(b.e.c.length + b.g.c.length)));
+ }
+ function gIc(a, b) {
+ FHc();
+ return Ekb(a, new vgd(b, meb(b.e.c.length + b.g.c.length)));
+ }
+ function PC(a, b) {
+ HC(b) != 10 && OC(rb(b), b.hm, b.__elementTypeId$, HC(b), a);
+ return a;
+ }
+ function Lkb(a, b) {
+ var c;
+ c = Jkb(a, b, 0);
+ if (c == -1) {
+ return false;
+ }
+ Kkb(a, c);
+ return true;
+ }
+ function Zrb(a, b) {
+ var c;
+ c = BD(Thb(a.e, b), 387);
+ if (c) {
+ jsb(c);
+ return c.e;
+ }
+ return null;
+ }
+ function Jbb(a) {
+ var b;
+ if (Fbb(a)) {
+ b = 0 - a;
+ if (!isNaN(b)) {
+ return b;
+ }
+ }
+ return zbb(hD(a));
+ }
+ function Jkb(a, b, c) {
+ for (; c < a.c.length; ++c) {
+ if (wtb(b, a.c[c])) {
+ return c;
+ }
+ }
+ return -1;
+ }
+ function SAb(a, b, c) {
+ var d;
+ Tzb(a);
+ d = new NBb();
+ d.a = b;
+ a.a.Nb(new VBb(d, c));
+ return d.a;
+ }
+ function aAb(a) {
+ var b;
+ Tzb(a);
+ b = KC(UD, Vje, 25, 0, 15, 1);
+ _ub(a.a, new kAb(b));
+ return b;
+ }
+ function ajc(a) {
+ var b, c;
+ c = BD(Ikb(a.j, 0), 11);
+ b = BD(vNb(c, (wtc(), $sc)), 11);
+ return b;
+ }
+ function yc(a) {
+ var b;
+ if (!xc(a)) {
+ throw vbb(new utb());
+ }
+ a.e = 1;
+ b = a.d;
+ a.d = null;
+ return b;
+ }
+ function wu(a, b) {
+ var c;
+ this.f = a;
+ this.b = b;
+ c = BD(Ohb(a.b, b), 283);
+ this.c = !c ? null : c.b;
+ }
+ function Ygc() {
+ Hgc();
+ this.b = new Lqb();
+ this.f = new Lqb();
+ this.g = new Lqb();
+ this.e = new Lqb();
+ }
+ function Tnc(a, b) {
+ this.a = KC(OQ, kne, 10, a.a.c.length, 0, 1);
+ Qkb(a.a, this.a);
+ this.b = b;
+ }
+ function zoc(a) {
+ var b;
+ for (b = a.p + 1; b < a.c.a.c.length; ++b) {
+ --BD(Ikb(a.c.a, b), 10).p;
+ }
+ }
+ function Rwd(a) {
+ var b;
+ b = a.Ai();
+ b != null && a.d != -1 && BD(b, 92).Ng(a);
+ !!a.i && a.i.Fi();
+ }
+ function rFd(a) {
+ Py(this);
+ this.g = !a ? null : Wy(a, a.$d());
+ this.f = a;
+ Ry(this);
+ this._d();
+ }
+ function pSd(a, b, c, d, e, f, g) {
+ nxd.call(this, b, d, e, f, g);
+ this.c = a;
+ this.b = c;
+ }
+ function Ayb(a, b, c, d, e) {
+ uCb(a);
+ uCb(b);
+ uCb(c);
+ uCb(d);
+ uCb(e);
+ return new Lyb(a, b, d);
+ }
+ function B2c(a, b) {
+ if (b < 0) {
+ throw vbb(new qcb(ese + b));
+ }
+ A2c(a, b + 1);
+ return Ikb(a.j, b);
+ }
+ function Ob(a, b, c, d) {
+ if (!a) {
+ throw vbb(new Wdb(hc(b, OC(GC(SI, 1), Uhe, 1, 5, [c, d]))));
+ }
+ }
+ function dDb(a, b) {
+ return wtb(b, Ikb(a.f, 0)) || wtb(b, Ikb(a.f, 1)) || wtb(b, Ikb(a.f, 2));
+ }
+ function ghd(a, b) {
+ ecd(BD(BD(a.f, 33).We((Y9c(), t9c)), 98)) && NCd(Yod(BD(a.f, 33)), b);
+ }
+ function p1d(a, b) {
+ var c, d;
+ c = BD(b, 675);
+ d = c.Oh();
+ !d && c.Rh(d = new Y1d(a, b));
+ return d;
+ }
+ function q1d(a, b) {
+ var c, d;
+ c = BD(b, 677);
+ d = c.pk();
+ !d && c.tk(d = new j2d(a, b));
+ return d;
+ }
+ function QSd(a) {
+ if (!a.b) {
+ a.b = new UTd(a, j5, a);
+ !a.a && (a.a = new fTd(a, a));
+ }
+ return a.b;
+ }
+ function yTb() {
+ yTb = ccb;
+ wTb = new zTb("XY", 0);
+ vTb = new zTb("X", 1);
+ xTb = new zTb("Y", 2);
+ }
+ function EIb() {
+ EIb = ccb;
+ DIb = new FIb("TOP", 0);
+ CIb = new FIb(gle, 1);
+ BIb = new FIb(mle, 2);
+ }
+ function esc() {
+ esc = ccb;
+ csc = new fsc(ane, 0);
+ dsc = new fsc("TOP", 1);
+ bsc = new fsc(mle, 2);
+ }
+ function BAc() {
+ BAc = ccb;
+ zAc = new CAc("INPUT_ORDER", 0);
+ AAc = new CAc("PORT_DEGREE", 1);
+ }
+ function wD() {
+ wD = ccb;
+ sD = TC(Eje, Eje, 524287);
+ tD = TC(0, 0, Gje);
+ uD = RC(1);
+ RC(2);
+ vD = RC(0);
+ }
+ function WDc(a, b, c) {
+ a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ $Dc(a, b, c);
+ a.a.c.length == 0 || TDc(a, b);
+ }
+ function rfb(a) {
+ var b, c;
+ c = a.length;
+ b = KC(TD, $ie, 25, c, 15, 1);
+ ffb(a, 0, c, b, 0);
+ return b;
+ }
+ function Aid(a) {
+ var b;
+ if (!a.dh()) {
+ b = aLd(a.Tg()) - a.Ah();
+ a.ph().bk(b);
+ }
+ return a.Pg();
+ }
+ function xjd(a) {
+ var b;
+ b = CD(Ajd(a, 32));
+ if (b == null) {
+ yjd(a);
+ b = CD(Ajd(a, 32));
+ }
+ return b;
+ }
+ function iid(a, b) {
+ var c;
+ c = bLd(a.d, b);
+ return c >= 0 ? fid(a, c, true, true) : sid(a, b, true);
+ }
+ function vgc(a, b) {
+ qgc();
+ var c, d;
+ c = ugc(a);
+ d = ugc(b);
+ return !!c && !!d && !omb(c.k, d.k);
+ }
+ function Gqd(a, b) {
+ dld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
+ }
+ function Hqd(a, b) {
+ eld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
+ }
+ function Iqd(a, b) {
+ cld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
+ }
+ function Jqd(a, b) {
+ ald(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
+ }
+ function agd(a) {
+ (!this.q ? (mmb(), mmb(), kmb) : this.q).Ac(!a.q ? (mmb(), mmb(), kmb) : a.q);
+ }
+ function S2d(a, b) {
+ return JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a);
+ }
+ function U2d(a, b) {
+ return JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a);
+ }
+ function INb(a, b) {
+ HNb = new tOb();
+ FNb = b;
+ GNb = a;
+ BD(GNb.b, 65);
+ KNb(GNb, HNb, null);
+ JNb(GNb);
+ }
+ function uud(a, b, c) {
+ var d;
+ d = a.g[b];
+ mud(a, b, a.oi(b, c));
+ a.gi(b, c, d);
+ a.ci();
+ return d;
+ }
+ function Ftd(a, b) {
+ var c;
+ c = a.Xc(b);
+ if (c >= 0) {
+ a.$c(c);
+ return true;
+ } else {
+ return false;
+ }
+ }
+ function YId(a) {
+ var b;
+ if (a.d != a.r) {
+ b = wId(a);
+ a.e = !!b && b.Cj() == Bve;
+ a.d = b;
+ }
+ return a.e;
+ }
+ function fr(a, b) {
+ var c;
+ Qb(a);
+ Qb(b);
+ c = false;
+ while (b.Ob()) {
+ c = c | a.Fc(b.Pb());
+ }
+ return c;
+ }
+ function Wrb(a, b) {
+ var c;
+ c = BD(Ohb(a.e, b), 387);
+ if (c) {
+ Yrb(a, c);
+ return c.e;
+ }
+ return null;
+ }
+ function UA(a) {
+ var b, c;
+ b = a / 60 | 0;
+ c = a % 60;
+ if (c == 0) {
+ return "" + b;
+ }
+ return "" + b + ":" + ("" + c);
+ }
+ function LAb(a, b) {
+ var c, d;
+ Uzb(a);
+ d = new IBb(b, a.a);
+ c = new fBb(d);
+ return new YAb(a, c);
+ }
+ function tB(d, a) {
+ var b = d.a[a];
+ var c = (rC(), qC)[typeof b];
+ return c ? c(b) : xC(typeof b);
+ }
+ function yzc(a) {
+ switch (a.g) {
+ case 0:
+ return Ohe;
+ case 1:
+ return -1;
+ default:
+ return 0;
+ }
+ }
+ function oD(a) {
+ if (eD(a, (wD(), vD)) < 0) {
+ return -aD(hD(a));
+ }
+ return a.l + a.m * Hje + a.h * Ije;
+ }
+ function HC(a) {
+ return a.__elementTypeCategory$ == null ? 10 : a.__elementTypeCategory$;
+ }
+ function dub(a) {
+ var b;
+ b = a.b.c.length == 0 ? null : Ikb(a.b, 0);
+ b != null && fub(a, 0);
+ return b;
+ }
+ function uA(a, b) {
+ while (b[0] < a.length && hfb(" \r\n", wfb(bfb(a, b[0]))) >= 0) {
+ ++b[0];
+ }
+ }
+ function sgb(a, b) {
+ this.e = b;
+ this.a = vgb(a);
+ this.a < 54 ? this.f = Sbb(a) : this.c = ghb(a);
+ }
+ function vge(a, b, c, d) {
+ wfe();
+ xfe.call(this, 26);
+ this.c = a;
+ this.a = b;
+ this.d = c;
+ this.b = d;
+ }
+ function EA(a, b, c) {
+ var d, e;
+ d = 10;
+ for (e = 0; e < c - 1; e++) {
+ b < d && (a.a += "0", a);
+ d *= 10;
+ }
+ a.a += b;
+ }
+ function Hhe(a, b) {
+ var c;
+ c = 0;
+ while (a.e != a.i.gc()) {
+ Qrd(b, Dyd(a), meb(c));
+ c != Ohe && ++c;
+ }
+ }
+ function xHc(a, b) {
+ var c;
+ ++a.d;
+ ++a.c[b];
+ c = b + 1;
+ while (c < a.a.length) {
+ ++a.a[c];
+ c += c & -c;
+ }
+ }
+ function Qgc(a, b) {
+ var c, d, e;
+ e = b.c.i;
+ c = BD(Ohb(a.f, e), 57);
+ d = c.d.c - c.e.c;
+ p7c(b.a, d, 0);
+ }
+ function Scb(a) {
+ var b, c;
+ b = a + 128;
+ c = (Ucb(), Tcb)[b];
+ !c && (c = Tcb[b] = new Mcb(a));
+ return c;
+ }
+ function es(a, b) {
+ var c;
+ uCb(b);
+ c = a[":" + b];
+ nCb(!!c, OC(GC(SI, 1), Uhe, 1, 5, [b]));
+ return c;
+ }
+ function Mz(a) {
+ var b, c;
+ if (a.b) {
+ c = null;
+ do {
+ b = a.b;
+ a.b = null;
+ c = Pz(b, c);
+ } while (a.b);
+ a.b = c;
+ }
+ }
+ function Lz(a) {
+ var b, c;
+ if (a.a) {
+ c = null;
+ do {
+ b = a.a;
+ a.a = null;
+ c = Pz(b, c);
+ } while (a.a);
+ a.a = c;
+ }
+ }
+ function Dqb(a) {
+ var b;
+ ++a.a;
+ for (b = a.c.a.length; a.a < b; ++a.a) {
+ if (a.c.b[a.a]) {
+ return;
+ }
+ }
+ }
+ function S9b(a, b) {
+ var c, d;
+ d = b.c;
+ for (c = d + 1; c <= b.f; c++) {
+ a.a[c] > a.a[d] && (d = c);
+ }
+ return d;
+ }
+ function fic(a, b) {
+ var c;
+ c = Jy(a.e.c, b.e.c);
+ if (c == 0) {
+ return Kdb(a.e.d, b.e.d);
+ }
+ return c;
+ }
+ function Ogb(a, b) {
+ if (b.e == 0) {
+ return Ggb;
+ }
+ if (a.e == 0) {
+ return Ggb;
+ }
+ return Dhb(), Ehb(a, b);
+ }
+ function nCb(a, b) {
+ if (!a) {
+ throw vbb(new Wdb(DCb("Enum constant undefined: %s", b)));
+ }
+ }
+ function AWb() {
+ AWb = ccb;
+ xWb = new XWb();
+ yWb = new _Wb();
+ vWb = new dXb();
+ wWb = new hXb();
+ zWb = new lXb();
+ }
+ function UEb() {
+ UEb = ccb;
+ SEb = new VEb("BY_SIZE", 0);
+ TEb = new VEb("BY_SIZE_AND_SHAPE", 1);
+ }
+ function XRb() {
+ XRb = ccb;
+ VRb = new YRb("EADES", 0);
+ WRb = new YRb("FRUCHTERMAN_REINGOLD", 1);
+ }
+ function xqc() {
+ xqc = ccb;
+ vqc = new yqc("READING_DIRECTION", 0);
+ wqc = new yqc("ROTATION", 1);
+ }
+ function uqc() {
+ uqc = ccb;
+ tqc = as((mqc(), OC(GC(IW, 1), Kie, 335, 0, [iqc, hqc, kqc, lqc, jqc])));
+ }
+ function bAc() {
+ bAc = ccb;
+ aAc = as((Vzc(), OC(GC(_W, 1), Kie, 315, 0, [Uzc, Rzc, Szc, Qzc, Tzc])));
+ }
+ function bkc() {
+ bkc = ccb;
+ akc = as((Xjc(), OC(GC(uV, 1), Kie, 363, 0, [Tjc, Vjc, Wjc, Ujc, Sjc])));
+ }
+ function Htc() {
+ Htc = ccb;
+ Gtc = as((Ctc(), OC(GC(TW, 1), Kie, 163, 0, [Btc, xtc, ytc, ztc, Atc])));
+ }
+ function S_c() {
+ S_c = ccb;
+ R_c = as((N_c(), OC(GC(Q_, 1), Kie, 316, 0, [I_c, J_c, M_c, K_c, L_c])));
+ }
+ function S5c() {
+ S5c = ccb;
+ R5c = as((N5c(), OC(GC(e1, 1), Kie, 175, 0, [L5c, K5c, I5c, M5c, J5c])));
+ }
+ function p$c() {
+ p$c = ccb;
+ o$c = as((k$c(), OC(GC(y_, 1), Kie, 355, 0, [g$c, f$c, i$c, h$c, j$c])));
+ }
+ function vUb() {
+ vUb = ccb;
+ uUb = as((qUb(), OC(GC(zP, 1), Kie, 356, 0, [lUb, mUb, nUb, oUb, pUb])));
+ }
+ function mad() {
+ mad = ccb;
+ lad = as((ead(), OC(GC(t1, 1), Kie, 103, 0, [cad, bad, aad, _9c, dad])));
+ }
+ function Ybd() {
+ Ybd = ccb;
+ Xbd = as((Tbd(), OC(GC(C1, 1), Kie, 249, 0, [Qbd, Sbd, Obd, Pbd, Rbd])));
+ }
+ function cdd() {
+ cdd = ccb;
+ bdd = as((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])));
+ }
+ function _1c(a, b) {
+ var c;
+ c = BD(Ohb(a.a, b), 134);
+ if (!c) {
+ c = new zNb();
+ Rhb(a.a, b, c);
+ }
+ return c;
+ }
+ function hoc(a) {
+ var b;
+ b = BD(vNb(a, (wtc(), usc)), 305);
+ if (b) {
+ return b.a == a;
+ }
+ return false;
+ }
+ function ioc(a) {
+ var b;
+ b = BD(vNb(a, (wtc(), usc)), 305);
+ if (b) {
+ return b.i == a;
+ }
+ return false;
+ }
+ function Jub(a, b) {
+ uCb(b);
+ Iub(a);
+ if (a.d.Ob()) {
+ b.td(a.d.Pb());
+ return true;
+ }
+ return false;
+ }
+ function Oy(a) {
+ if (ybb(a, Ohe) > 0) {
+ return Ohe;
+ }
+ if (ybb(a, Rie) < 0) {
+ return Rie;
+ }
+ return Tbb(a);
+ }
+ function Cv(a) {
+ if (a < 3) {
+ Xj(a, Hie);
+ return a + 1;
+ }
+ if (a < Iie) {
+ return QD(a / 0.75 + 1);
+ }
+ return Ohe;
+ }
+ function XKd(a, b) {
+ var c;
+ c = (a.i == null && TKd(a), a.i);
+ return b >= 0 && b < c.length ? c[b] : null;
+ }
+ function cC(a, b, c) {
+ var d;
+ if (b == null) {
+ throw vbb(new Geb());
+ }
+ d = aC(a, b);
+ dC(a, b, c);
+ return d;
+ }
+ function Emc(a) {
+ a.a >= -0.01 && a.a <= ple && (a.a = 0);
+ a.b >= -0.01 && a.b <= ple && (a.b = 0);
+ return a;
+ }
+ function sfb(a, b) {
+ return b == (ntb(), ntb(), mtb) ? a.toLocaleLowerCase() : a.toLowerCase();
+ }
+ function idb(a) {
+ return ((a.i & 2) != 0 ? "interface " : (a.i & 1) != 0 ? "" : "class ") + (fdb(a), a.o);
+ }
+ function Pnd(a) {
+ var b, c;
+ c = (b = new SSd(), b);
+ wtd((!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q), c);
+ }
+ function Pdd(a, b) {
+ var c;
+ c = b > 0 ? b - 1 : b;
+ return Vdd(Wdd(Xdd(Ydd(new Zdd(), c), a.n), a.j), a.k);
+ }
+ function u2d(a, b, c, d) {
+ var e;
+ a.j = -1;
+ Qxd(a, I2d(a, b, c), (Q6d(), e = BD(b, 66).Mj(), e.Ok(d)));
+ }
+ function VWb(a) {
+ this.g = a;
+ this.f = new Rkb();
+ this.a = $wnd.Math.min(this.g.c.c, this.g.d.c);
+ }
+ function mDb(a) {
+ this.b = new Rkb();
+ this.a = new Rkb();
+ this.c = new Rkb();
+ this.d = new Rkb();
+ this.e = a;
+ }
+ function Cnc(a, b) {
+ this.a = new Lqb();
+ this.e = new Lqb();
+ this.b = (xzc(), wzc);
+ this.c = a;
+ this.b = b;
+ }
+ function bIb(a, b, c) {
+ $Gb.call(this);
+ THb(this);
+ this.a = a;
+ this.c = c;
+ this.b = b.d;
+ this.f = b.e;
+ }
+ function yd(a) {
+ this.d = a;
+ this.c = a.c.vc().Kc();
+ this.b = null;
+ this.a = null;
+ this.e = (hs(), gs);
+ }
+ function zud(a) {
+ if (a < 0) {
+ throw vbb(new Wdb("Illegal Capacity: " + a));
+ }
+ this.g = this.ri(a);
+ }
+ function avb(a, b) {
+ if (0 > a || a > b) {
+ throw vbb(new scb("fromIndex: 0, toIndex: " + a + oke + b));
+ }
+ }
+ function Gs(a) {
+ var b;
+ if (a.a == a.b.a) {
+ throw vbb(new utb());
+ }
+ b = a.a;
+ a.c = b;
+ a.a = a.a.e;
+ return b;
+ }
+ function Zsb(a) {
+ var b;
+ yCb(!!a.c);
+ b = a.c.a;
+ Nsb(a.d, a.c);
+ a.b == a.c ? a.b = b : --a.a;
+ a.c = null;
+ }
+ function VAb(a, b) {
+ var c;
+ Uzb(a);
+ c = new lBb(a, a.a.rd(), a.a.qd() | 4, b);
+ return new YAb(a, c);
+ }
+ function ke(a, b) {
+ var c, d;
+ c = BD(Hv(a.d, b), 14);
+ if (!c) {
+ return null;
+ }
+ d = b;
+ return a.e.pc(d, c);
+ }
+ function xac(a, b) {
+ var c, d;
+ for (d = a.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 70);
+ yNb(c, (wtc(), Ssc), b);
+ }
+ }
+ function t9b(a) {
+ var b;
+ b = Edb(ED(vNb(a, (Nyc(), Zwc))));
+ if (b < 0) {
+ b = 0;
+ yNb(a, Zwc, b);
+ }
+ return b;
+ }
+ function ifc(a, b, c) {
+ var d;
+ d = $wnd.Math.max(0, a.b / 2 - 0.5);
+ cfc(c, d, 1);
+ Ekb(b, new rfc(c, d));
+ }
+ function NMc(a, b, c) {
+ var d;
+ d = a.a.e[BD(b.a, 10).p] - a.a.e[BD(c.a, 10).p];
+ return QD(Eeb(d));
+ }
+ function iZb(a, b, c, d, e, f) {
+ var g;
+ g = kZb(d);
+ QZb(g, e);
+ RZb(g, f);
+ Rc(a.a, d, new BZb(g, b, c.f));
+ }
+ function Bid(a, b) {
+ var c;
+ c = YKd(a.Tg(), b);
+ if (!c) {
+ throw vbb(new Wdb(ite + b + lte));
+ }
+ return c;
+ }
+ function ntd(a, b) {
+ var c;
+ c = a;
+ while (Xod(c)) {
+ c = Xod(c);
+ if (c == b) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function Uw(a, b) {
+ var c, d, e;
+ d = b.a.cd();
+ c = BD(b.a.dd(), 14).gc();
+ for (e = 0; e < c; e++) {
+ a.td(d);
+ }
+ }
+ function Hkb(a, b) {
+ var c, d, e, f;
+ uCb(b);
+ for (d = a.c, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ b.td(c);
+ }
+ }
+ function Nsb(a, b) {
+ var c;
+ c = b.c;
+ b.a.b = b.b;
+ b.b.a = b.a;
+ b.a = b.b = null;
+ b.c = null;
+ --a.b;
+ return c;
+ }
+ function wqb(a, b) {
+ if (!!b && a.b[b.g] == b) {
+ NC(a.b, b.g, null);
+ --a.c;
+ return true;
+ }
+ return false;
+ }
+ function lo(a, b) {
+ return !!vo(a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15))));
+ }
+ function w$b(a, b) {
+ ecd(BD(vNb(BD(a.e, 10), (Nyc(), Vxc)), 98)) && (mmb(), Okb(BD(a.e, 10).j, b));
+ }
+ function THb(a) {
+ a.b = (NHb(), KHb);
+ a.f = (EIb(), CIb);
+ a.d = (Xj(2, Jie), new Skb(2));
+ a.e = new d7c();
+ }
+ function gHb() {
+ gHb = ccb;
+ dHb = new hHb("BEGIN", 0);
+ eHb = new hHb(gle, 1);
+ fHb = new hHb("END", 2);
+ }
+ function qad() {
+ qad = ccb;
+ nad = new rad(gle, 0);
+ oad = new rad("HEAD", 1);
+ pad = new rad("TAIL", 2);
+ }
+ function Fsd() {
+ Csd();
+ return OC(GC(O3, 1), Kie, 237, 0, [Bsd, ysd, zsd, xsd, Asd, vsd, usd, wsd]);
+ }
+ function c6c() {
+ _5c();
+ return OC(GC(f1, 1), Kie, 277, 0, [$5c, T5c, X5c, Z5c, U5c, V5c, W5c, Y5c]);
+ }
+ function Dlc() {
+ Alc();
+ return OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc]);
+ }
+ function nAc() {
+ kAc();
+ return OC(GC(aX, 1), Kie, 260, 0, [iAc, dAc, gAc, eAc, fAc, cAc, hAc, jAc]);
+ }
+ function kcd() {
+ kcd = ccb;
+ jcd = as((dcd(), OC(GC(D1, 1), Kie, 98, 0, [ccd, bcd, acd, Zbd, _bd, $bd])));
+ }
+ function tHb() {
+ tHb = ccb;
+ sHb = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])).length;
+ rHb = sHb;
+ }
+ function wed(a) {
+ this.b = (Qb(a), new Tkb(a));
+ this.a = new Rkb();
+ this.d = new Rkb();
+ this.e = new d7c();
+ }
+ function W6c(a) {
+ var b;
+ b = $wnd.Math.sqrt(a.a * a.a + a.b * a.b);
+ if (b > 0) {
+ a.a /= b;
+ a.b /= b;
+ }
+ return a;
+ }
+ function bKd(a) {
+ var b;
+ if (a.w) {
+ return a.w;
+ } else {
+ b = cKd(a);
+ !!b && !b.kh() && (a.w = b);
+ return b;
+ }
+ }
+ function gZd(a) {
+ var b;
+ if (a == null) {
+ return null;
+ } else {
+ b = BD(a, 190);
+ return Umd(b, b.length);
+ }
+ }
+ function qud(a, b) {
+ if (a.g == null || b >= a.i)
+ throw vbb(new $zd(b, a.i));
+ return a.li(b, a.g[b]);
+ }
+ function Mmc(a) {
+ var b, c;
+ b = a.a.d.j;
+ c = a.c.d.j;
+ while (b != c) {
+ rqb(a.b, b);
+ b = Xcd(b);
+ }
+ rqb(a.b, b);
+ }
+ function Jmc(a) {
+ var b;
+ for (b = 0; b < a.c.length; b++) {
+ (tCb(b, a.c.length), BD(a.c[b], 11)).p = b;
+ }
+ }
+ function bEc(a, b, c) {
+ var d, e, f;
+ e = b[c];
+ for (d = 0; d < e.length; d++) {
+ f = e[d];
+ a.e[f.c.p][f.p] = d;
+ }
+ }
+ function ZEc(a, b) {
+ var c, d, e, f;
+ for (d = a.d, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ REc(a.g, c).a = b;
+ }
+ }
+ function q7c(a, b) {
+ var c, d;
+ for (d = Jsb(a, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 8);
+ P6c(c, b);
+ }
+ return a;
+ }
+ function zUb(a, b) {
+ var c;
+ c = c7c(R6c(BD(Ohb(a.g, b), 8)), E6c(BD(Ohb(a.f, b), 460).b));
+ return c;
+ }
+ function lib(a) {
+ var b;
+ xpb(a.e, a);
+ sCb(a.b);
+ a.c = a.a;
+ b = BD(a.a.Pb(), 42);
+ a.b = kib(a);
+ return b;
+ }
+ function CD(a) {
+ var b;
+ CCb(a == null || Array.isArray(a) && (b = HC(a), !(b >= 14 && b <= 16)));
+ return a;
+ }
+ function dcb(a, b, c) {
+ var d = function() {
+ return a.apply(d, arguments);
+ };
+ b.apply(d, c);
+ return d;
+ }
+ function TLc(a, b, c) {
+ var d, e;
+ d = b;
+ do {
+ e = Edb(a.p[d.p]) + c;
+ a.p[d.p] = e;
+ d = a.a[d.p];
+ } while (d != b);
+ }
+ function NQd(a, b) {
+ var c, d;
+ d = a.a;
+ c = OQd(a, b, null);
+ d != b && !a.e && (c = QQd(a, b, c));
+ !!c && c.Fi();
+ }
+ function ADb(a, b) {
+ return Iy(), My(Qie), $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b);
+ }
+ function Ky(a, b) {
+ Iy();
+ My(Qie);
+ return $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b);
+ }
+ function Akc(a, b) {
+ gkc();
+ return beb(a.b.c.length - a.e.c.length, b.b.c.length - b.e.c.length);
+ }
+ function oo(a, b) {
+ return Kv(uo(a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)))));
+ }
+ function o0b() {
+ o0b = ccb;
+ n0b = as((j0b(), OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b])));
+ }
+ function n8c() {
+ n8c = ccb;
+ m8c = as((i8c(), OC(GC(r1, 1), Kie, 291, 0, [h8c, g8c, f8c, d8c, c8c, e8c])));
+ }
+ function K7c() {
+ K7c = ccb;
+ J7c = as((F7c(), OC(GC(o1, 1), Kie, 248, 0, [z7c, C7c, D7c, E7c, A7c, B7c])));
+ }
+ function Fpc() {
+ Fpc = ccb;
+ Epc = as((Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc])));
+ }
+ function Drc() {
+ Drc = ccb;
+ Crc = as((yrc(), OC(GC(OW, 1), Kie, 275, 0, [wrc, trc, xrc, vrc, urc, rrc])));
+ }
+ function qrc() {
+ qrc = ccb;
+ prc = as((lrc(), OC(GC(NW, 1), Kie, 274, 0, [irc, hrc, krc, grc, jrc, frc])));
+ }
+ function tzc() {
+ tzc = ccb;
+ szc = as((lzc(), OC(GC(YW, 1), Kie, 313, 0, [jzc, hzc, fzc, gzc, kzc, izc])));
+ }
+ function Yqc() {
+ Yqc = ccb;
+ Xqc = as((Sqc(), OC(GC(LW, 1), Kie, 276, 0, [Nqc, Mqc, Pqc, Oqc, Rqc, Qqc])));
+ }
+ function wSc() {
+ wSc = ccb;
+ vSc = as((qSc(), OC(GC(t$, 1), Kie, 327, 0, [pSc, lSc, nSc, mSc, oSc, kSc])));
+ }
+ function ycd() {
+ ycd = ccb;
+ xcd = as((rcd(), OC(GC(E1, 1), Kie, 273, 0, [pcd, ncd, ocd, mcd, lcd, qcd])));
+ }
+ function Rad() {
+ Rad = ccb;
+ Qad = as((Mad(), OC(GC(w1, 1), Kie, 312, 0, [Kad, Iad, Lad, Gad, Jad, Had])));
+ }
+ function Lbd() {
+ Hbd();
+ return OC(GC(B1, 1), Kie, 93, 0, [zbd, ybd, Bbd, Gbd, Fbd, Ebd, Cbd, Dbd, Abd]);
+ }
+ function vkd(a, b) {
+ var c;
+ c = a.a;
+ a.a = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 0, c, a.a));
+ }
+ function wkd(a, b) {
+ var c;
+ c = a.b;
+ a.b = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 1, c, a.b));
+ }
+ function hmd(a, b) {
+ var c;
+ c = a.b;
+ a.b = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 3, c, a.b));
+ }
+ function ald(a, b) {
+ var c;
+ c = a.f;
+ a.f = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 3, c, a.f));
+ }
+ function cld(a, b) {
+ var c;
+ c = a.g;
+ a.g = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 4, c, a.g));
+ }
+ function dld(a, b) {
+ var c;
+ c = a.i;
+ a.i = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 5, c, a.i));
+ }
+ function eld(a, b) {
+ var c;
+ c = a.j;
+ a.j = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 6, c, a.j));
+ }
+ function omd(a, b) {
+ var c;
+ c = a.j;
+ a.j = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 1, c, a.j));
+ }
+ function imd(a, b) {
+ var c;
+ c = a.c;
+ a.c = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 4, c, a.c));
+ }
+ function pmd(a, b) {
+ var c;
+ c = a.k;
+ a.k = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 2, c, a.k));
+ }
+ function qQd(a, b) {
+ var c;
+ c = a.d;
+ a.d = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 2, c, a.d));
+ }
+ function AId(a, b) {
+ var c;
+ c = a.s;
+ a.s = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 4, c, a.s));
+ }
+ function DId(a, b) {
+ var c;
+ c = a.t;
+ a.t = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 5, c, a.t));
+ }
+ function _Jd(a, b) {
+ var c;
+ c = a.F;
+ a.F = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 5, c, b));
+ }
+ function izd(a, b) {
+ var c;
+ c = BD(Ohb((pEd(), oEd), a), 55);
+ return c ? c.xj(b) : KC(SI, Uhe, 1, b, 5, 1);
+ }
+ function Xpd(a, b) {
+ var c, d;
+ c = b in a.a;
+ if (c) {
+ d = aC(a, b).he();
+ if (d) {
+ return d.a;
+ }
+ }
+ return null;
+ }
+ function ftd(a, b) {
+ var c, d, e;
+ c = (d = (Fhd(), e = new Jod(), e), !!b && God(d, b), d);
+ Hod(c, a);
+ return c;
+ }
+ function LLd(a, b, c) {
+ Itd(a, c);
+ if (!a.Bk() && c != null && !a.wj(c)) {
+ throw vbb(new tcb());
+ }
+ return c;
+ }
+ function Xdd(a, b) {
+ a.n = b;
+ if (a.n) {
+ a.f = new Rkb();
+ a.e = new Rkb();
+ } else {
+ a.f = null;
+ a.e = null;
+ }
+ return a;
+ }
+ function ndb(a, b, c, d, e, f) {
+ var g;
+ g = ldb(a, b);
+ zdb(c, g);
+ g.i = e ? 8 : 0;
+ g.f = d;
+ g.e = e;
+ g.g = f;
+ return g;
+ }
+ function rSd(a, b, c, d, e) {
+ this.d = b;
+ this.k = d;
+ this.f = e;
+ this.o = -1;
+ this.p = 1;
+ this.c = a;
+ this.a = c;
+ }
+ function tSd(a, b, c, d, e) {
+ this.d = b;
+ this.k = d;
+ this.f = e;
+ this.o = -1;
+ this.p = 2;
+ this.c = a;
+ this.a = c;
+ }
+ function BSd(a, b, c, d, e) {
+ this.d = b;
+ this.k = d;
+ this.f = e;
+ this.o = -1;
+ this.p = 6;
+ this.c = a;
+ this.a = c;
+ }
+ function GSd(a, b, c, d, e) {
+ this.d = b;
+ this.k = d;
+ this.f = e;
+ this.o = -1;
+ this.p = 7;
+ this.c = a;
+ this.a = c;
+ }
+ function xSd(a, b, c, d, e) {
+ this.d = b;
+ this.j = d;
+ this.e = e;
+ this.o = -1;
+ this.p = 4;
+ this.c = a;
+ this.a = c;
+ }
+ function rDb(a, b) {
+ var c, d, e, f;
+ for (d = b, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ nDb(a.a, c);
+ }
+ return a;
+ }
+ function pl(a) {
+ var b, c, d, e;
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ Qb(b);
+ }
+ return new vl(a);
+ }
+ function Uz(a) {
+ var b = /function(?:\s+([\w$]+))?\s*\(/;
+ var c = b.exec(a);
+ return c && c[1] || Xie;
+ }
+ function zdb(a, b) {
+ if (!a) {
+ return;
+ }
+ b.n = a;
+ var d = tdb(b);
+ if (!d) {
+ _bb[a] = [b];
+ return;
+ }
+ d.gm = b;
+ }
+ function vlb(a, b, c) {
+ var d, e;
+ e = a.length;
+ d = $wnd.Math.min(c, e);
+ $Bb(a, 0, b, 0, d, true);
+ return b;
+ }
+ function RPb(a, b, c) {
+ var d, e;
+ for (e = b.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 79);
+ Qqb(a, BD(c.Kb(d), 33));
+ }
+ }
+ function Xbb() {
+ Ybb();
+ var a = Wbb;
+ for (var b = 0; b < arguments.length; b++) {
+ a.push(arguments[b]);
+ }
+ }
+ function n7c(a, b) {
+ var c, d, e, f;
+ for (d = b, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ Gsb(a, c, a.c.b, a.c);
+ }
+ }
+ function s$c(a, b) {
+ a.b = $wnd.Math.max(a.b, b.d);
+ a.e += b.r + (a.a.c.length == 0 ? 0 : a.c);
+ Ekb(a.a, b);
+ }
+ function wkb(a) {
+ yCb(a.c >= 0);
+ if (ekb(a.d, a.c) < 0) {
+ a.a = a.a - 1 & a.d.a.length - 1;
+ a.b = a.d.c;
+ }
+ a.c = -1;
+ }
+ function pgb(a) {
+ if (a.a < 54) {
+ return a.f < 0 ? -1 : a.f > 0 ? 1 : 0;
+ }
+ return (!a.c && (a.c = fhb(a.f)), a.c).e;
+ }
+ function My(a) {
+ if (!(a >= 0)) {
+ throw vbb(new Wdb("tolerance (" + a + ") must be >= 0"));
+ }
+ return a;
+ }
+ function n4c() {
+ if (!f4c) {
+ f4c = new m4c();
+ l4c(f4c, OC(GC(C0, 1), Uhe, 130, 0, [new Z9c()]));
+ }
+ return f4c;
+ }
+ function KAc() {
+ KAc = ccb;
+ JAc = new LAc(ole, 0);
+ HAc = new LAc("INPUT", 1);
+ IAc = new LAc("OUTPUT", 2);
+ }
+ function bqc() {
+ bqc = ccb;
+ $pc = new cqc("ARD", 0);
+ aqc = new cqc("MSD", 1);
+ _pc = new cqc("MANUAL", 2);
+ }
+ function rGc() {
+ rGc = ccb;
+ oGc = new sGc("BARYCENTER", 0);
+ pGc = new sGc(Bne, 1);
+ qGc = new sGc(Cne, 2);
+ }
+ function ztd(a, b) {
+ var c;
+ c = a.gc();
+ if (b < 0 || b > c)
+ throw vbb(new Cyd(b, c));
+ return new czd(a, b);
+ }
+ function JAd(a, b) {
+ var c;
+ if (JD(b, 42)) {
+ return a.c.Mc(b);
+ } else {
+ c = qAd(a, b);
+ LAd(a, b);
+ return c;
+ }
+ }
+ function $nd(a, b, c) {
+ yId(a, b);
+ pnd(a, c);
+ AId(a, 0);
+ DId(a, 1);
+ CId(a, true);
+ BId(a, true);
+ return a;
+ }
+ function Xj(a, b) {
+ if (a < 0) {
+ throw vbb(new Wdb(b + " cannot be negative but was: " + a));
+ }
+ return a;
+ }
+ function Bt(a, b) {
+ var c, d;
+ for (c = 0, d = a.gc(); c < d; ++c) {
+ if (wtb(b, a.Xb(c))) {
+ return c;
+ }
+ }
+ return -1;
+ }
+ function Nc(a) {
+ var b, c;
+ for (c = a.c.Cc().Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 14);
+ b.$b();
+ }
+ a.c.$b();
+ a.d = 0;
+ }
+ function Ri(a) {
+ var b, c, d, e;
+ for (c = a.a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ Flb(b, b.length, null);
+ }
+ }
+ function ieb(a) {
+ var b, c;
+ if (a == 0) {
+ return 32;
+ } else {
+ c = 0;
+ for (b = 1; (b & a) == 0; b <<= 1) {
+ ++c;
+ }
+ return c;
+ }
+ }
+ function NGb(a) {
+ var b, c;
+ for (c = new olb(ahd(a)); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 680);
+ b.Gf();
+ }
+ }
+ function CUb(a) {
+ xUb();
+ this.g = new Lqb();
+ this.f = new Lqb();
+ this.b = new Lqb();
+ this.c = new Hp();
+ this.i = a;
+ }
+ function XZb() {
+ this.f = new d7c();
+ this.d = new s0b();
+ this.c = new d7c();
+ this.a = new Rkb();
+ this.b = new Rkb();
+ }
+ function c6d(a, b, c, d) {
+ this.rj();
+ this.a = b;
+ this.b = a;
+ this.c = null;
+ this.c = new d6d(this, b, c, d);
+ }
+ function nxd(a, b, c, d, e) {
+ this.d = a;
+ this.n = b;
+ this.g = c;
+ this.o = d;
+ this.p = -1;
+ e || (this.o = -2 - d - 1);
+ }
+ function hJd() {
+ FId.call(this);
+ this.n = -1;
+ this.g = null;
+ this.i = null;
+ this.j = null;
+ this.Bb |= zte;
+ }
+ function Ldd() {
+ Idd();
+ return OC(GC(J1, 1), Kie, 259, 0, [Bdd, Ddd, Add, Edd, Fdd, Hdd, Gdd, Cdd, zdd]);
+ }
+ function uFb() {
+ rFb();
+ return OC(GC(dN, 1), Kie, 250, 0, [qFb, lFb, mFb, kFb, oFb, pFb, nFb, jFb, iFb]);
+ }
+ function qeb() {
+ qeb = ccb;
+ peb = OC(GC(WD, 1), oje, 25, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]);
+ }
+ function vCc() {
+ vCc = ccb;
+ uCc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
+ }
+ function VCc() {
+ VCc = ccb;
+ UCc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
+ }
+ function rDc() {
+ rDc = ccb;
+ qDc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
+ }
+ function yFc() {
+ yFc = ccb;
+ xFc = c3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb, y8b);
+ }
+ function Rpc() {
+ Rpc = ccb;
+ Ppc = new Tpc("LAYER_SWEEP", 0);
+ Opc = new Tpc(Tne, 1);
+ Qpc = new Tpc(ane, 2);
+ }
+ function RLc(a, b) {
+ var c, d;
+ c = a.c;
+ d = b.e[a.p];
+ if (d > 0) {
+ return BD(Ikb(c.a, d - 1), 10);
+ }
+ return null;
+ }
+ function Lkd(a, b) {
+ var c;
+ c = a.k;
+ a.k = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c, a.k));
+ }
+ function kmd(a, b) {
+ var c;
+ c = a.f;
+ a.f = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 8, c, a.f));
+ }
+ function lmd(a, b) {
+ var c;
+ c = a.i;
+ a.i = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 7, c, a.i));
+ }
+ function Hod(a, b) {
+ var c;
+ c = a.a;
+ a.a = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 8, c, a.a));
+ }
+ function zpd(a, b) {
+ var c;
+ c = a.b;
+ a.b = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, c, a.b));
+ }
+ function UUd(a, b) {
+ var c;
+ c = a.b;
+ a.b = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, c, a.b));
+ }
+ function VUd(a, b) {
+ var c;
+ c = a.c;
+ a.c = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c, a.c));
+ }
+ function Apd(a, b) {
+ var c;
+ c = a.c;
+ a.c = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c, a.c));
+ }
+ function pQd(a, b) {
+ var c;
+ c = a.c;
+ a.c = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, c, a.c));
+ }
+ function PHd(a, b) {
+ var c;
+ c = a.d;
+ a.d = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c, a.d));
+ }
+ function jKd(a, b) {
+ var c;
+ c = a.D;
+ a.D = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c, a.D));
+ }
+ function Rdd(a, b) {
+ if (a.r > 0 && a.c < a.r) {
+ a.c += b;
+ !!a.i && a.i.d > 0 && a.g != 0 && Rdd(a.i, b / a.r * a.i.d);
+ }
+ }
+ function dge(a, b, c) {
+ var d;
+ a.b = b;
+ a.a = c;
+ d = (a.a & 512) == 512 ? new hee() : new ude();
+ a.c = ode(d, a.b, a.a);
+ }
+ function g3d(a, b) {
+ return T6d(a.e, b) ? (Q6d(), YId(b) ? new R7d(b, a) : new f7d(b, a)) : new c8d(b, a);
+ }
+ function _o(a, b) {
+ return Fv(vo(a.a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)))));
+ }
+ function Nyb(a, b, c) {
+ return Ayb(a, new Kzb(b), new Mzb(), new Ozb(c), OC(GC(xL, 1), Kie, 132, 0, []));
+ }
+ function pAb(a) {
+ var b, c;
+ if (0 > a) {
+ return new yAb();
+ }
+ b = a + 1;
+ c = new rAb(b, a);
+ return new vAb(null, c);
+ }
+ function umb(a, b) {
+ mmb();
+ var c;
+ c = new Mqb(1);
+ ND(a) ? Shb(c, a, b) : jrb(c.f, a, b);
+ return new iob(c);
+ }
+ function aMb(a, b) {
+ var c, d;
+ c = a.o + a.p;
+ d = b.o + b.p;
+ if (c < d) {
+ return -1;
+ }
+ if (c == d) {
+ return 0;
+ }
+ return 1;
+ }
+ function P2b(a) {
+ var b;
+ b = vNb(a, (wtc(), $sc));
+ if (JD(b, 160)) {
+ return O2b(BD(b, 160));
+ }
+ return null;
+ }
+ function Kp(a) {
+ var b;
+ a = $wnd.Math.max(a, 2);
+ b = geb(a);
+ if (a > b) {
+ b <<= 1;
+ return b > 0 ? b : Iie;
+ }
+ return b;
+ }
+ function xc(a) {
+ Ub(a.e != 3);
+ switch (a.e) {
+ case 2:
+ return false;
+ case 0:
+ return true;
+ }
+ return zc(a);
+ }
+ function T6c(a, b) {
+ var c;
+ if (JD(b, 8)) {
+ c = BD(b, 8);
+ return a.a == c.a && a.b == c.b;
+ } else {
+ return false;
+ }
+ }
+ function _Mb(a, b, c) {
+ var d, e, f;
+ f = b >> 5;
+ e = b & 31;
+ d = xbb(Pbb(a.n[c][f], Tbb(Nbb(e, 1))), 3);
+ return d;
+ }
+ function IAd(a, b) {
+ var c, d;
+ for (d = b.vc().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 42);
+ HAd(a, c.cd(), c.dd());
+ }
+ }
+ function N1c(a, b) {
+ var c;
+ c = new tOb();
+ BD(b.b, 65);
+ BD(b.b, 65);
+ BD(b.b, 65);
+ Hkb(b.a, new T1c(a, c, b));
+ }
+ function DUd(a, b) {
+ var c;
+ c = a.b;
+ a.b = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 21, c, a.b));
+ }
+ function jmd(a, b) {
+ var c;
+ c = a.d;
+ a.d = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 11, c, a.d));
+ }
+ function _Id(a, b) {
+ var c;
+ c = a.j;
+ a.j = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 13, c, a.j));
+ }
+ function $jb(a, b, c) {
+ var d, e, f;
+ f = a.a.length - 1;
+ for (e = a.b, d = 0; d < c; e = e + 1 & f, ++d) {
+ NC(b, d, a.a[e]);
+ }
+ }
+ function rqb(a, b) {
+ var c;
+ uCb(b);
+ c = b.g;
+ if (!a.b[c]) {
+ NC(a.b, c, b);
+ ++a.c;
+ return true;
+ }
+ return false;
+ }
+ function eub(a, b) {
+ var c;
+ c = b == null ? -1 : Jkb(a.b, b, 0);
+ if (c < 0) {
+ return false;
+ }
+ fub(a, c);
+ return true;
+ }
+ function fub(a, b) {
+ var c;
+ c = Kkb(a.b, a.b.c.length - 1);
+ if (b < a.b.c.length) {
+ Nkb(a.b, b, c);
+ bub(a, b);
+ }
+ }
+ function eyb(a, b) {
+ ((oyb(), lyb) ? null : b.c).length == 0 && qyb(b, new zyb());
+ Shb(a.a, lyb ? null : b.c, b);
+ }
+ function M5b(a, b) {
+ Odd(b, "Hierarchical port constraint processing", 1);
+ N5b(a);
+ P5b(a);
+ Qdd(b);
+ }
+ function GOb(a, b) {
+ var c, d;
+ for (d = b.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 266);
+ a.b = true;
+ Qqb(a.e, c);
+ c.b = a;
+ }
+ }
+ function Owb(a, b) {
+ var c, d;
+ c = 1 - b;
+ d = a.a[c];
+ a.a[c] = d.a[b];
+ d.a[b] = a;
+ a.b = true;
+ d.b = false;
+ return d;
+ }
+ function Gec(a, b) {
+ var c, d;
+ c = BD(vNb(a, (Nyc(), ayc)), 8);
+ d = BD(vNb(b, ayc), 8);
+ return Kdb(c.b, d.b);
+ }
+ function jfc(a) {
+ oEb.call(this);
+ this.b = Edb(ED(vNb(a, (Nyc(), lyc))));
+ this.a = BD(vNb(a, Swc), 218);
+ }
+ function XGc(a, b, c) {
+ uEc.call(this, a, b, c);
+ this.a = new Lqb();
+ this.b = new Lqb();
+ this.d = new $Gc(this);
+ }
+ function ku(a) {
+ this.e = a;
+ this.d = new Uqb(Cv(Ec(this.e).gc()));
+ this.c = this.e.a;
+ this.b = this.e.c;
+ }
+ function BHc(a) {
+ this.b = a;
+ this.a = KC(WD, oje, 25, a + 1, 15, 1);
+ this.c = KC(WD, oje, 25, a, 15, 1);
+ this.d = 0;
+ }
+ function THc(a, b, c) {
+ var d;
+ d = new Rkb();
+ UHc(a, b, d, c, true, true);
+ a.b = new BHc(d.c.length);
+ return d;
+ }
+ function nMc(a, b) {
+ var c;
+ c = BD(Ohb(a.c, b), 458);
+ if (!c) {
+ c = new uMc();
+ c.c = b;
+ Rhb(a.c, c.c, c);
+ }
+ return c;
+ }
+ function $B(e, a) {
+ var b = e.a;
+ var c = 0;
+ for (var d in b) {
+ b.hasOwnProperty(d) && (a[c++] = d);
+ }
+ return a;
+ }
+ function pRd(a) {
+ var b;
+ if (a.b == null) {
+ return LRd(), LRd(), KRd;
+ }
+ b = a.Lk() ? a.Kk() : a.Jk();
+ return b;
+ }
+ function r$c(a) {
+ var b, c;
+ for (c = new Fyd(a); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 33);
+ dld(b, 0);
+ eld(b, 0);
+ }
+ }
+ function HSb() {
+ HSb = ccb;
+ FSb = new Lsd(Ime);
+ GSb = new Lsd(Jme);
+ ESb = new Lsd(Kme);
+ DSb = new Lsd(Lme);
+ }
+ function y5b() {
+ y5b = ccb;
+ x5b = new z5b("TO_INTERNAL_LTR", 0);
+ w5b = new z5b("TO_INPUT_DIRECTION", 1);
+ }
+ function PUc() {
+ PUc = ccb;
+ NUc = new RUc("P1_NODE_PLACEMENT", 0);
+ OUc = new RUc("P2_EDGE_ROUTING", 1);
+ }
+ function Fkc() {
+ Fkc = ccb;
+ Ekc = new Gkc("START", 0);
+ Dkc = new Gkc("MIDDLE", 1);
+ Ckc = new Gkc("END", 2);
+ }
+ function I9b() {
+ I9b = ccb;
+ H9b = new Msd("edgelabelcenterednessanalysis.includelabel", (Bcb(), zcb));
+ }
+ function Zyc(a, b) {
+ MAb(JAb(new YAb(null, new Kub(new Pib(a.b), 1)), new bfd(a, b)), new ffd(a, b));
+ }
+ function $Xc() {
+ this.c = new jVc(0);
+ this.b = new jVc(Tqe);
+ this.d = new jVc(Sqe);
+ this.a = new jVc(cme);
+ }
+ function $Fc(a) {
+ var b, c;
+ for (c = a.c.a.ec().Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 214);
+ eFc(b, new oHc(b.e));
+ }
+ }
+ function ZFc(a) {
+ var b, c;
+ for (c = a.c.a.ec().Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 214);
+ dFc(b, new nHc(b.f));
+ }
+ }
+ function pnd(a, b) {
+ var c;
+ c = a.zb;
+ a.zb = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c, a.zb));
+ }
+ function cod(a, b) {
+ var c;
+ c = a.xb;
+ a.xb = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, c, a.xb));
+ }
+ function dod(a, b) {
+ var c;
+ c = a.yb;
+ a.yb = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c, a.yb));
+ }
+ function Knd(a, b) {
+ var c, d;
+ c = (d = new OJd(), d);
+ c.n = b;
+ wtd((!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s), c);
+ }
+ function Qnd(a, b) {
+ var c, d;
+ d = (c = new FUd(), c);
+ d.n = b;
+ wtd((!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s), d);
+ }
+ function ktb(a, b) {
+ var c, d;
+ c = a.Pc();
+ Klb(c, 0, c.length, b);
+ for (d = 0; d < c.length; d++) {
+ a._c(d, c[d]);
+ }
+ }
+ function ye(a, b) {
+ var c, d, e;
+ uCb(b);
+ c = false;
+ for (e = b.Kc(); e.Ob(); ) {
+ d = e.Pb();
+ c = c | a.Fc(d);
+ }
+ return c;
+ }
+ function Bx(a) {
+ var b, c, d;
+ b = 0;
+ for (d = a.Kc(); d.Ob(); ) {
+ c = d.Pb();
+ b += c != null ? tb(c) : 0;
+ b = ~~b;
+ }
+ return b;
+ }
+ function SA(a) {
+ var b;
+ if (a == 0) {
+ return "UTC";
+ }
+ if (a < 0) {
+ a = -a;
+ b = "UTC+";
+ } else {
+ b = "UTC-";
+ }
+ return b + UA(a);
+ }
+ function Jq(a, b) {
+ var c;
+ if (JD(b, 14)) {
+ c = BD(b, 14);
+ return a.Gc(c);
+ }
+ return fr(a, BD(Qb(b), 20).Kc());
+ }
+ function Bnc(a, b, c) {
+ Cnc.call(this, b, c);
+ this.d = KC(OQ, kne, 10, a.a.c.length, 0, 1);
+ Qkb(a.a, this.d);
+ }
+ function IMc(a) {
+ a.a = null;
+ a.e = null;
+ a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.f.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.c = null;
+ }
+ function gKd(a, b) {
+ if (b) {
+ if (a.B == null) {
+ a.B = a.D;
+ a.D = null;
+ }
+ } else if (a.B != null) {
+ a.D = a.B;
+ a.B = null;
+ }
+ }
+ function Poc(a, b) {
+ return Edb(ED(Btb(TAb(NAb(new YAb(null, new Kub(a.c.b, 16)), new fpc(a)), b))));
+ }
+ function Soc(a, b) {
+ return Edb(ED(Btb(TAb(NAb(new YAb(null, new Kub(a.c.b, 16)), new dpc(a)), b))));
+ }
+ function Q2b(a, b) {
+ Odd(b, zne, 1);
+ MAb(LAb(new YAb(null, new Kub(a.b, 16)), new U2b()), new W2b());
+ Qdd(b);
+ }
+ function SXc(a, b) {
+ var c, d;
+ c = BD(hkd(a, (ZWc(), SWc)), 19);
+ d = BD(hkd(b, SWc), 19);
+ return beb(c.a, d.a);
+ }
+ function p7c(a, b, c) {
+ var d, e;
+ for (e = Jsb(a, 0); e.b != e.d.c; ) {
+ d = BD(Xsb(e), 8);
+ d.a += b;
+ d.b += c;
+ }
+ return a;
+ }
+ function uo(a, b, c) {
+ var d;
+ for (d = a.b[c & a.f]; d; d = d.b) {
+ if (c == d.a && Hb(b, d.g)) {
+ return d;
+ }
+ }
+ return null;
+ }
+ function vo(a, b, c) {
+ var d;
+ for (d = a.c[c & a.f]; d; d = d.d) {
+ if (c == d.f && Hb(b, d.i)) {
+ return d;
+ }
+ }
+ return null;
+ }
+ function khb(a, b, c) {
+ var d, e, f;
+ d = 0;
+ for (e = 0; e < c; e++) {
+ f = b[e];
+ a[e] = f << 1 | d;
+ d = f >>> 31;
+ }
+ d != 0 && (a[c] = d);
+ }
+ function rmb(a, b) {
+ mmb();
+ var c, d;
+ d = new Rkb();
+ for (c = 0; c < a; ++c) {
+ d.c[d.c.length] = b;
+ }
+ return new Yob(d);
+ }
+ function Zzb(a) {
+ var b;
+ b = Yzb(a);
+ if (Bbb(b.a, 0)) {
+ return Ltb(), Ltb(), Ktb;
+ }
+ return Ltb(), new Ptb(b.b);
+ }
+ function $zb(a) {
+ var b;
+ b = Yzb(a);
+ if (Bbb(b.a, 0)) {
+ return Ltb(), Ltb(), Ktb;
+ }
+ return Ltb(), new Ptb(b.c);
+ }
+ function uAb(a) {
+ var b;
+ b = tAb(a);
+ if (Bbb(b.a, 0)) {
+ return Utb(), Utb(), Ttb;
+ }
+ return Utb(), new Xtb(b.b);
+ }
+ function zZb(a) {
+ if (a.b.c.i.k == (j0b(), e0b)) {
+ return BD(vNb(a.b.c.i, (wtc(), $sc)), 11);
+ }
+ return a.b.c;
+ }
+ function AZb(a) {
+ if (a.b.d.i.k == (j0b(), e0b)) {
+ return BD(vNb(a.b.d.i, (wtc(), $sc)), 11);
+ }
+ return a.b.d;
+ }
+ function Vnd(a, b, c, d, e, f, g, h, i, j, k, l, m) {
+ aod(a, b, c, d, e, f, g, h, i, j, k, l, m);
+ MJd(a, false);
+ return a;
+ }
+ function tJb(a, b, c, d, e, f, g) {
+ $r.call(this, a, b);
+ this.d = c;
+ this.e = d;
+ this.c = e;
+ this.b = f;
+ this.a = Ou(g);
+ }
+ function $bb(a, b) {
+ typeof window === Jhe && typeof window["$gwt"] === Jhe && (window["$gwt"][a] = b);
+ }
+ function pWb(a, b) {
+ lWb();
+ return a == hWb && b == kWb || a == kWb && b == hWb || a == jWb && b == iWb || a == iWb && b == jWb;
+ }
+ function qWb(a, b) {
+ lWb();
+ return a == hWb && b == iWb || a == hWb && b == jWb || a == kWb && b == jWb || a == kWb && b == iWb;
+ }
+ function IJb(a, b) {
+ return Iy(), My(ple), $wnd.Math.abs(0 - b) <= ple || 0 == b || isNaN(0) && isNaN(b) ? 0 : a / b;
+ }
+ function Rrc() {
+ Orc();
+ return OC(GC(PW, 1), Kie, 256, 0, [Frc, Hrc, Irc, Jrc, Krc, Lrc, Nrc, Erc, Grc, Mrc]);
+ }
+ function NKd() {
+ NKd = ccb;
+ KKd = new KPd();
+ MKd = OC(GC(t5, 1), Mve, 170, 0, []);
+ LKd = OC(GC(n5, 1), Nve, 59, 0, []);
+ }
+ function CBc() {
+ CBc = ccb;
+ BBc = new DBc("NO", 0);
+ zBc = new DBc("GREEDY", 1);
+ ABc = new DBc("LOOK_BACK", 2);
+ }
+ function z0b() {
+ z0b = ccb;
+ w0b = new m1b();
+ u0b = new h1b();
+ v0b = new q1b();
+ t0b = new u1b();
+ x0b = new y1b();
+ y0b = new C1b();
+ }
+ function J9b(a) {
+ var b, c, d;
+ d = 0;
+ for (c = new olb(a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 29);
+ b.p = d;
+ ++d;
+ }
+ }
+ function nfd(a, b) {
+ var c;
+ c = sfd(a);
+ return mfd(new f7c(c.c, c.d), new f7c(c.b, c.a), a.rf(), b, a.Hf());
+ }
+ function Udd(a, b) {
+ var c;
+ if (a.b) {
+ return null;
+ } else {
+ c = Pdd(a, a.g);
+ Dsb(a.a, c);
+ c.i = a;
+ a.d = b;
+ return c;
+ }
+ }
+ function kUc(a, b, c) {
+ Odd(c, "DFS Treeifying phase", 1);
+ jUc(a, b);
+ hUc(a, b);
+ a.a = null;
+ a.b = null;
+ Qdd(c);
+ }
+ function zic(a, b, c) {
+ this.g = a;
+ this.d = b;
+ this.e = c;
+ this.a = new Rkb();
+ xic(this);
+ mmb();
+ Okb(this.a, null);
+ }
+ function Aud(a) {
+ this.i = a.gc();
+ if (this.i > 0) {
+ this.g = this.ri(this.i + (this.i / 8 | 0) + 1);
+ a.Qc(this.g);
+ }
+ }
+ function u3d(a, b) {
+ k2d.call(this, D9, a, b);
+ this.b = this;
+ this.a = S6d(a.Tg(), XKd(this.e.Tg(), this.c));
+ }
+ function Ld(a, b) {
+ var c, d;
+ uCb(b);
+ for (d = b.vc().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 42);
+ a.zc(c.cd(), c.dd());
+ }
+ }
+ function G2d(a, b, c) {
+ var d;
+ for (d = c.Kc(); d.Ob(); ) {
+ if (!E2d(a, b, d.Pb())) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function sVd(a, b, c, d, e) {
+ var f;
+ if (c) {
+ f = bLd(b.Tg(), a.c);
+ e = c.gh(b, -1 - (f == -1 ? d : f), null, e);
+ }
+ return e;
+ }
+ function tVd(a, b, c, d, e) {
+ var f;
+ if (c) {
+ f = bLd(b.Tg(), a.c);
+ e = c.ih(b, -1 - (f == -1 ? d : f), null, e);
+ }
+ return e;
+ }
+ function Mgb(a) {
+ var b;
+ if (a.b == -2) {
+ if (a.e == 0) {
+ b = -1;
+ } else {
+ for (b = 0; a.a[b] == 0; b++)
+ ;
+ }
+ a.b = b;
+ }
+ return a.b;
+ }
+ function Z4b(a) {
+ switch (a.g) {
+ case 2:
+ return Ucd(), Tcd;
+ case 4:
+ return Ucd(), zcd;
+ default:
+ return a;
+ }
+ }
+ function $4b(a) {
+ switch (a.g) {
+ case 1:
+ return Ucd(), Rcd;
+ case 3:
+ return Ucd(), Acd;
+ default:
+ return a;
+ }
+ }
+ function nkc(a) {
+ var b, c, d;
+ return a.j == (Ucd(), Acd) && (b = pkc(a), c = uqb(b, zcd), d = uqb(b, Tcd), d || d && c);
+ }
+ function oqb(a) {
+ var b, c;
+ b = BD(a.e && a.e(), 9);
+ c = BD(ZBb(b, b.length), 9);
+ return new xqb(b, c, b.length);
+ }
+ function l7b(a, b) {
+ Odd(b, zne, 1);
+ UGb(TGb(new YGb((a$b(), new l$b(a, false, false, new T$b())))));
+ Qdd(b);
+ }
+ function Fcb(a, b) {
+ Bcb();
+ return ND(a) ? cfb(a, GD(b)) : LD(a) ? Ddb(a, ED(b)) : KD(a) ? Dcb(a, DD(b)) : a.wd(b);
+ }
+ function WZc(a, b) {
+ b.q = a;
+ a.d = $wnd.Math.max(a.d, b.r);
+ a.b += b.d + (a.a.c.length == 0 ? 0 : a.c);
+ Ekb(a.a, b);
+ }
+ function m6c(a, b) {
+ var c, d, e, f;
+ e = a.c;
+ c = a.c + a.b;
+ f = a.d;
+ d = a.d + a.a;
+ return b.a > e && b.a < c && b.b > f && b.b < d;
+ }
+ function Ynd(a, b, c, d) {
+ JD(a.Cb, 179) && (BD(a.Cb, 179).tb = null);
+ pnd(a, c);
+ !!b && hKd(a, b);
+ d && a.xk(true);
+ }
+ function Yqd(a, b) {
+ var c;
+ c = BD(b, 183);
+ Spd(c, "x", a.i);
+ Spd(c, "y", a.j);
+ Spd(c, Gte, a.g);
+ Spd(c, Fte, a.f);
+ }
+ function LFc() {
+ LFc = ccb;
+ KFc = b3c(f3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb), y8b);
+ }
+ function dHc() {
+ dHc = ccb;
+ cHc = b3c(f3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb), y8b);
+ }
+ function sXc() {
+ sXc = ccb;
+ qXc = new uXc(ane, 0);
+ rXc = new uXc("POLAR_COORDINATE", 1);
+ pXc = new uXc("ID", 2);
+ }
+ function TAc() {
+ TAc = ccb;
+ QAc = new UAc("EQUALLY", 0);
+ RAc = new UAc(xle, 1);
+ SAc = new UAc("NORTH_SOUTH", 2);
+ }
+ function pAc() {
+ pAc = ccb;
+ oAc = as((kAc(), OC(GC(aX, 1), Kie, 260, 0, [iAc, dAc, gAc, eAc, fAc, cAc, hAc, jAc])));
+ }
+ function Flc() {
+ Flc = ccb;
+ Elc = as((Alc(), OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc])));
+ }
+ function e6c() {
+ e6c = ccb;
+ d6c = as((_5c(), OC(GC(f1, 1), Kie, 277, 0, [$5c, T5c, X5c, Z5c, U5c, V5c, W5c, Y5c])));
+ }
+ function Hsd() {
+ Hsd = ccb;
+ Gsd = as((Csd(), OC(GC(O3, 1), Kie, 237, 0, [Bsd, ysd, zsd, xsd, Asd, vsd, usd, wsd])));
+ }
+ function XNb() {
+ XNb = ccb;
+ VNb = new Msd("debugSVG", (Bcb(), false));
+ WNb = new Msd("overlapsExisted", true);
+ }
+ function Xyb(a, b) {
+ return Ayb(new tzb(a), new vzb(b), new xzb(b), new zzb(), OC(GC(xL, 1), Kie, 132, 0, []));
+ }
+ function hyb() {
+ var a;
+ if (!dyb) {
+ dyb = new gyb();
+ a = new wyb("");
+ uyb(a, ($xb(), Zxb));
+ eyb(dyb, a);
+ }
+ return dyb;
+ }
+ function hr(a, b) {
+ var c;
+ Qb(b);
+ while (a.Ob()) {
+ c = a.Pb();
+ if (!QNc(BD(c, 10))) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function T3c(a, b) {
+ var c;
+ c = h4c(n4c(), a);
+ if (c) {
+ jkd(b, (Y9c(), F9c), c);
+ return true;
+ } else {
+ return false;
+ }
+ }
+ function d3c(a, b) {
+ var c;
+ for (c = 0; c < b.j.c.length; c++) {
+ BD(B2c(a, c), 21).Gc(BD(B2c(b, c), 14));
+ }
+ return a;
+ }
+ function M9b(a, b) {
+ var c, d;
+ for (d = new olb(b.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 29);
+ a.a[c.p] = _$b(c);
+ }
+ }
+ function stb(a, b) {
+ var c, d;
+ uCb(b);
+ for (d = a.vc().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 42);
+ b.Od(c.cd(), c.dd());
+ }
+ }
+ function cId(a, b) {
+ var c;
+ if (JD(b, 83)) {
+ BD(a.c, 76).Xj();
+ c = BD(b, 83);
+ IAd(a, c);
+ } else {
+ BD(a.c, 76).Wb(b);
+ }
+ }
+ function Su(a) {
+ return JD(a, 152) ? km(BD(a, 152)) : JD(a, 131) ? BD(a, 131).a : JD(a, 54) ? new ov(a) : new dv(a);
+ }
+ function fac(a, b) {
+ return b < a.b.gc() ? BD(a.b.Xb(b), 10) : b == a.b.gc() ? a.a : BD(Ikb(a.e, b - a.b.gc() - 1), 10);
+ }
+ function crb(a, b) {
+ a.a = wbb(a.a, 1);
+ a.c = $wnd.Math.min(a.c, b);
+ a.b = $wnd.Math.max(a.b, b);
+ a.d = wbb(a.d, b);
+ }
+ function n3b(a, b) {
+ var c;
+ Odd(b, "Edge and layer constraint edge reversal", 1);
+ c = m3b(a);
+ l3b(c);
+ Qdd(b);
+ }
+ function tAd(a) {
+ var b;
+ if (a.d == null) {
+ ++a.e;
+ a.f = 0;
+ sAd(null);
+ } else {
+ ++a.e;
+ b = a.d;
+ a.d = null;
+ a.f = 0;
+ sAd(b);
+ }
+ }
+ function zbb(a) {
+ var b;
+ b = a.h;
+ if (b == 0) {
+ return a.l + a.m * Hje;
+ }
+ if (b == Fje) {
+ return a.l + a.m * Hje - Ije;
+ }
+ return a;
+ }
+ function aKb(a) {
+ $Jb();
+ if (a.A.Hc((tdd(), pdd))) {
+ if (!a.B.Hc((Idd(), Ddd))) {
+ return _Jb(a);
+ }
+ }
+ return null;
+ }
+ function Zgb(a) {
+ uCb(a);
+ if (a.length == 0) {
+ throw vbb(new Oeb("Zero length BigInteger"));
+ }
+ dhb(this, a);
+ }
+ function Vb(a) {
+ if (!a) {
+ throw vbb(new Zdb("no calls to next() since the last call to remove()"));
+ }
+ }
+ function Cbb(a) {
+ if (Kje < a && a < Ije) {
+ return a < 0 ? $wnd.Math.ceil(a) : $wnd.Math.floor(a);
+ }
+ return zbb(fD(a));
+ }
+ function Yyb(a, b) {
+ var c, d, e;
+ c = a.c.Ee();
+ for (e = b.Kc(); e.Ob(); ) {
+ d = e.Pb();
+ a.a.Od(c, d);
+ }
+ return a.b.Kb(c);
+ }
+ function Uhd(a, b) {
+ var c, d, e;
+ c = a.Jg();
+ if (c != null && a.Mg()) {
+ for (d = 0, e = c.length; d < e; ++d) {
+ c[d].ui(b);
+ }
+ }
+ }
+ function f_b(a, b) {
+ var c, d;
+ c = a;
+ d = Q_b(c).e;
+ while (d) {
+ c = d;
+ if (c == b) {
+ return true;
+ }
+ d = Q_b(c).e;
+ }
+ return false;
+ }
+ function lDc(a, b, c) {
+ var d, e;
+ d = a.a.f[b.p];
+ e = a.a.f[c.p];
+ if (d < e) {
+ return -1;
+ }
+ if (d == e) {
+ return 0;
+ }
+ return 1;
+ }
+ function Si(a, b, c) {
+ var d, e;
+ e = BD(tn(a.d, b), 19);
+ d = BD(tn(a.b, c), 19);
+ return !e || !d ? null : Mi(a, e.a, d.a);
+ }
+ function cYc(a, b) {
+ var c, d;
+ for (d = new Fyd(a); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 33);
+ bld(c, c.i + b.b, c.j + b.d);
+ }
+ }
+ function qjc(a, b) {
+ var c, d;
+ for (d = new olb(b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 70);
+ Ekb(a.d, c);
+ ujc(a, c);
+ }
+ }
+ function pQc(a, b) {
+ var c, d;
+ d = new Rkb();
+ c = b;
+ do {
+ d.c[d.c.length] = c;
+ c = BD(Ohb(a.k, c), 17);
+ } while (c);
+ return d;
+ }
+ function Ajd(a, b) {
+ var c;
+ if ((a.Db & b) != 0) {
+ c = zjd(a, b);
+ return c == -1 ? a.Eb : CD(a.Eb)[c];
+ } else {
+ return null;
+ }
+ }
+ function Lnd(a, b) {
+ var c, d;
+ c = (d = new hLd(), d);
+ c.G = b;
+ !a.rb && (a.rb = new jUd(a, d5, a));
+ wtd(a.rb, c);
+ return c;
+ }
+ function Mnd(a, b) {
+ var c, d;
+ c = (d = new MPd(), d);
+ c.G = b;
+ !a.rb && (a.rb = new jUd(a, d5, a));
+ wtd(a.rb, c);
+ return c;
+ }
+ function Hkd(a, b) {
+ switch (b) {
+ case 1:
+ return !!a.n && a.n.i != 0;
+ case 2:
+ return a.k != null;
+ }
+ return dkd(a, b);
+ }
+ function gNc(a) {
+ switch (a.a.g) {
+ case 1:
+ return new NNc();
+ case 3:
+ return new vQc();
+ default:
+ return new wNc();
+ }
+ }
+ function MRd(a) {
+ var b;
+ if (a.g > 1 || a.Ob()) {
+ ++a.a;
+ a.g = 0;
+ b = a.i;
+ a.Ob();
+ return b;
+ } else {
+ throw vbb(new utb());
+ }
+ }
+ function kNc(a) {
+ fNc();
+ var b;
+ if (!Lpb(eNc, a)) {
+ b = new hNc();
+ b.a = a;
+ Opb(eNc, a, b);
+ }
+ return BD(Mpb(eNc, a), 635);
+ }
+ function Rbb(a) {
+ var b, c, d, e;
+ e = a;
+ d = 0;
+ if (e < 0) {
+ e += Ije;
+ d = Fje;
+ }
+ c = QD(e / Hje);
+ b = QD(e - c * Hje);
+ return TC(b, c, d);
+ }
+ function Ox(a) {
+ var b, c, d;
+ d = 0;
+ for (c = new Gqb(a.a); c.a < c.c.a.length; ) {
+ b = Fqb(c);
+ a.b.Hc(b) && ++d;
+ }
+ return d;
+ }
+ function Ku(a) {
+ var b, c, d;
+ b = 1;
+ for (d = a.Kc(); d.Ob(); ) {
+ c = d.Pb();
+ b = 31 * b + (c == null ? 0 : tb(c));
+ b = ~~b;
+ }
+ return b;
+ }
+ function Zwb(a, b) {
+ var c;
+ this.c = a;
+ c = new Rkb();
+ Ewb(a, c, b, a.b, null, false, null, false);
+ this.a = new Bib(c, 0);
+ }
+ function p4d(a, b) {
+ this.b = a;
+ this.e = b;
+ this.d = b.j;
+ this.f = (Q6d(), BD(a, 66).Oj());
+ this.k = S6d(b.e.Tg(), a);
+ }
+ function xwb(a, b, c) {
+ this.b = (uCb(a), a);
+ this.d = (uCb(b), b);
+ this.e = (uCb(c), c);
+ this.c = this.d + ("" + this.e);
+ }
+ function xRb() {
+ this.a = BD(Ksd((wSb(), eSb)), 19).a;
+ this.c = Edb(ED(Ksd(uSb)));
+ this.b = Edb(ED(Ksd(qSb)));
+ }
+ function Nbd() {
+ Nbd = ccb;
+ Mbd = as((Hbd(), OC(GC(B1, 1), Kie, 93, 0, [zbd, ybd, Bbd, Gbd, Fbd, Ebd, Cbd, Dbd, Abd])));
+ }
+ function wFb() {
+ wFb = ccb;
+ vFb = as((rFb(), OC(GC(dN, 1), Kie, 250, 0, [qFb, lFb, mFb, kFb, oFb, pFb, nFb, jFb, iFb])));
+ }
+ function vLb() {
+ vLb = ccb;
+ uLb = new wLb("UP", 0);
+ rLb = new wLb(vle, 1);
+ sLb = new wLb(jle, 2);
+ tLb = new wLb(kle, 3);
+ }
+ function rTc() {
+ rTc = ccb;
+ qTc = (STc(), QTc);
+ pTc = new Nsd(Zqe, qTc);
+ oTc = ($Tc(), ZTc);
+ nTc = new Nsd($qe, oTc);
+ }
+ function Xrc() {
+ Xrc = ccb;
+ Vrc = new Yrc("ONE_SIDED", 0);
+ Wrc = new Yrc("TWO_SIDED", 1);
+ Urc = new Yrc("OFF", 2);
+ }
+ function TQc(a) {
+ a.r = new Tqb();
+ a.w = new Tqb();
+ a.t = new Rkb();
+ a.i = new Rkb();
+ a.d = new Tqb();
+ a.a = new I6c();
+ a.c = new Lqb();
+ }
+ function uOc(a) {
+ this.n = new Rkb();
+ this.e = new Psb();
+ this.j = new Psb();
+ this.k = new Rkb();
+ this.f = new Rkb();
+ this.p = a;
+ }
+ function PEc(a, b) {
+ if (a.c) {
+ QEc(a, b, true);
+ MAb(new YAb(null, new Kub(b, 16)), new bFc(a));
+ }
+ QEc(a, b, false);
+ }
+ function wFc(a, b, c) {
+ return a == (rGc(), qGc) ? new pFc() : Cub(b, 1) != 0 ? new iHc(c.length) : new RGc(c.length);
+ }
+ function tNb(a, b) {
+ var c;
+ if (!b) {
+ return a;
+ }
+ c = b.Ve();
+ c.dc() || (!a.q ? a.q = new Nqb(c) : Ld(a.q, c));
+ return a;
+ }
+ function Erb(a, b) {
+ var c;
+ c = a.a.get(b);
+ if (c === void 0) {
+ ++a.d;
+ } else {
+ urb(a.a, b);
+ --a.c;
+ zpb(a.b);
+ }
+ return c;
+ }
+ function UYb(a, b) {
+ var c, d, e;
+ c = b.p - a.p;
+ if (c == 0) {
+ d = a.f.a * a.f.b;
+ e = b.f.a * b.f.b;
+ return Kdb(d, e);
+ }
+ return c;
+ }
+ function XLb(a, b) {
+ var c, d;
+ c = a.f.c.length;
+ d = b.f.c.length;
+ if (c < d) {
+ return -1;
+ }
+ if (c == d) {
+ return 0;
+ }
+ return 1;
+ }
+ function KZb(a) {
+ if (a.b.c.length != 0 && !!BD(Ikb(a.b, 0), 70).a) {
+ return BD(Ikb(a.b, 0), 70).a;
+ }
+ return JZb(a);
+ }
+ function Pq(a) {
+ var b;
+ if (a) {
+ b = a;
+ if (b.dc()) {
+ throw vbb(new utb());
+ }
+ return b.Xb(b.gc() - 1);
+ }
+ return nr(a.Kc());
+ }
+ function vgb(a) {
+ var b;
+ ybb(a, 0) < 0 && (a = Lbb(a));
+ return b = Tbb(Obb(a, 32)), 64 - (b != 0 ? heb(b) : heb(Tbb(a)) + 32);
+ }
+ function QNc(a) {
+ var b;
+ b = BD(vNb(a, (wtc(), Hsc)), 61);
+ return a.k == (j0b(), e0b) && (b == (Ucd(), Tcd) || b == zcd);
+ }
+ function bZb(a, b, c) {
+ var d, e;
+ e = BD(vNb(a, (Nyc(), jxc)), 74);
+ if (e) {
+ d = new s7c();
+ o7c(d, 0, e);
+ q7c(d, c);
+ ye(b, d);
+ }
+ }
+ function M_b(a, b, c) {
+ var d, e, f, g;
+ g = Q_b(a);
+ d = g.d;
+ e = g.c;
+ f = a.n;
+ b && (f.a = f.a - d.b - e.a);
+ c && (f.b = f.b - d.d - e.b);
+ }
+ function dcc(a, b) {
+ var c, d;
+ c = a.j;
+ d = b.j;
+ return c != d ? c.g - d.g : a.p == b.p ? 0 : c == (Ucd(), Acd) ? a.p - b.p : b.p - a.p;
+ }
+ function dmc(a) {
+ var b, c;
+ bmc(a);
+ for (c = new olb(a.d); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 101);
+ !!b.i && cmc(b);
+ }
+ }
+ function lBc(a, b, c, d, e) {
+ NC(a.c[b.g], c.g, d);
+ NC(a.c[c.g], b.g, d);
+ NC(a.b[b.g], c.g, e);
+ NC(a.b[c.g], b.g, e);
+ }
+ function G1c(a, b, c, d) {
+ BD(c.b, 65);
+ BD(c.b, 65);
+ BD(d.b, 65);
+ BD(d.b, 65);
+ BD(d.b, 65);
+ Hkb(d.a, new L1c(a, b, d));
+ }
+ function WDb(a, b) {
+ a.d == (ead(), aad) || a.d == dad ? BD(b.a, 57).c.Fc(BD(b.b, 57)) : BD(b.b, 57).c.Fc(BD(b.a, 57));
+ }
+ function Gkd(a, b, c, d) {
+ if (c == 1) {
+ return !a.n && (a.n = new cUd(D2, a, 1, 7)), Txd(a.n, b, d);
+ }
+ return ckd(a, b, c, d);
+ }
+ function Gnd(a, b) {
+ var c, d;
+ d = (c = new BYd(), c);
+ pnd(d, b);
+ wtd((!a.A && (a.A = new K4d(u5, a, 7)), a.A), d);
+ return d;
+ }
+ function Zqd(a, b, c) {
+ var d, e, f, g;
+ f = null;
+ g = b;
+ e = Ypd(g, Jte);
+ d = new jrd(a, c);
+ f = (lqd(d.a, d.b, e), e);
+ return f;
+ }
+ function KJd(a) {
+ var b;
+ if (!a.a || (a.Bb & 1) == 0 && a.a.kh()) {
+ b = wId(a);
+ JD(b, 148) && (a.a = BD(b, 148));
+ }
+ return a.a;
+ }
+ function Be(a, b) {
+ var c, d;
+ uCb(b);
+ for (d = b.Kc(); d.Ob(); ) {
+ c = d.Pb();
+ if (!a.Hc(c)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function cD(a, b) {
+ var c, d, e;
+ c = a.l + b.l;
+ d = a.m + b.m + (c >> 22);
+ e = a.h + b.h + (d >> 22);
+ return TC(c & Eje, d & Eje, e & Fje);
+ }
+ function nD(a, b) {
+ var c, d, e;
+ c = a.l - b.l;
+ d = a.m - b.m + (c >> 22);
+ e = a.h - b.h + (d >> 22);
+ return TC(c & Eje, d & Eje, e & Fje);
+ }
+ function bdb(a) {
+ var b;
+ if (a < 128) {
+ b = (ddb(), cdb)[a];
+ !b && (b = cdb[a] = new Xcb(a));
+ return b;
+ }
+ return new Xcb(a);
+ }
+ function ubb(a) {
+ var b;
+ if (JD(a, 78)) {
+ return a;
+ }
+ b = a && a.__java$exception;
+ if (!b) {
+ b = new lz(a);
+ Sz(b);
+ }
+ return b;
+ }
+ function btd(a) {
+ if (JD(a, 186)) {
+ return BD(a, 118);
+ } else if (!a) {
+ throw vbb(new Heb(gue));
+ } else {
+ return null;
+ }
+ }
+ function Zjb(a, b) {
+ if (b == null) {
+ return false;
+ }
+ while (a.a != a.b) {
+ if (pb(b, vkb(a))) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function kib(a) {
+ if (a.a.Ob()) {
+ return true;
+ }
+ if (a.a != a.d) {
+ return false;
+ }
+ a.a = new orb(a.e.f);
+ return a.a.Ob();
+ }
+ function Gkb(a, b) {
+ var c, d;
+ c = b.Pc();
+ d = c.length;
+ if (d == 0) {
+ return false;
+ }
+ bCb(a.c, a.c.length, c);
+ return true;
+ }
+ function Vyb(a, b, c) {
+ var d, e;
+ for (e = b.vc().Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 42);
+ a.yc(d.cd(), d.dd(), c);
+ }
+ return a;
+ }
+ function yac(a, b) {
+ var c, d;
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 70);
+ yNb(c, (wtc(), Ssc), b);
+ }
+ }
+ function FZc(a, b, c) {
+ var d, e;
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 33);
+ bld(d, d.i + b, d.j + c);
+ }
+ }
+ function Nb(a, b) {
+ if (!a) {
+ throw vbb(new Wdb(hc("value already present: %s", OC(GC(SI, 1), Uhe, 1, 5, [b]))));
+ }
+ }
+ function mEb(a, b) {
+ if (!a || !b || a == b) {
+ return false;
+ }
+ return CDb(a.d.c, b.d.c + b.d.b) && CDb(b.d.c, a.d.c + a.d.b);
+ }
+ function xyb() {
+ oyb();
+ if (lyb) {
+ return new wyb(null);
+ }
+ return fyb(hyb(), "com.google.common.base.Strings");
+ }
+ function J2c(a, b) {
+ var c;
+ c = Pu(b.a.gc());
+ MAb(VAb(new YAb(null, new Kub(b, 1)), a.i), new W2c(a, c));
+ return c;
+ }
+ function Hnd(a) {
+ var b, c;
+ c = (b = new BYd(), b);
+ pnd(c, "T");
+ wtd((!a.d && (a.d = new K4d(u5, a, 11)), a.d), c);
+ return c;
+ }
+ function Etd(a) {
+ var b, c, d, e;
+ b = 1;
+ for (c = 0, e = a.gc(); c < e; ++c) {
+ d = a.ki(c);
+ b = 31 * b + (d == null ? 0 : tb(d));
+ }
+ return b;
+ }
+ function Wi(a, b, c, d) {
+ var e;
+ Pb(b, a.e.Hd().gc());
+ Pb(c, a.c.Hd().gc());
+ e = a.a[b][c];
+ NC(a.a[b], c, d);
+ return e;
+ }
+ function OC(a, b, c, d, e) {
+ e.gm = a;
+ e.hm = b;
+ e.im = gcb;
+ e.__elementTypeId$ = c;
+ e.__elementTypeCategory$ = d;
+ return e;
+ }
+ function p6c(a, b, c, d, e) {
+ i6c();
+ return $wnd.Math.min(A6c(a, b, c, d, e), A6c(c, d, a, b, V6c(new f7c(e.a, e.b))));
+ }
+ function gbc() {
+ gbc = ccb;
+ fbc = new ibc(ane, 0);
+ dbc = new ibc(Gne, 1);
+ ebc = new ibc(Hne, 2);
+ cbc = new ibc("BOTH", 3);
+ }
+ function Ajc() {
+ Ajc = ccb;
+ wjc = new Bjc(gle, 0);
+ xjc = new Bjc(jle, 1);
+ yjc = new Bjc(kle, 2);
+ zjc = new Bjc("TOP", 3);
+ }
+ function lWb() {
+ lWb = ccb;
+ hWb = new oWb("Q1", 0);
+ kWb = new oWb("Q4", 1);
+ iWb = new oWb("Q2", 2);
+ jWb = new oWb("Q3", 3);
+ }
+ function LBc() {
+ LBc = ccb;
+ JBc = new MBc("OFF", 0);
+ KBc = new MBc("SINGLE_EDGE", 1);
+ IBc = new MBc("MULTI_EDGE", 2);
+ }
+ function a1c() {
+ a1c = ccb;
+ _0c = new c1c("MINIMUM_SPANNING_TREE", 0);
+ $0c = new c1c("MAXIMUM_SPANNING_TREE", 1);
+ }
+ function Y1c() {
+ Y1c = ccb;
+ W1c = new k2c();
+ V1c = new f2c();
+ }
+ function URc(a) {
+ var b, c, d;
+ b = new Psb();
+ for (d = Jsb(a.d, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 188);
+ Dsb(b, c.c);
+ }
+ return b;
+ }
+ function dVc(a) {
+ var b, c, d, e;
+ e = new Rkb();
+ for (d = a.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 33);
+ b = gVc(c);
+ Gkb(e, b);
+ }
+ return e;
+ }
+ function xcc(a) {
+ var b;
+ PZb(a, true);
+ b = _ie;
+ wNb(a, (Nyc(), cyc)) && (b += BD(vNb(a, cyc), 19).a);
+ yNb(a, cyc, meb(b));
+ }
+ function q1c(a, b, c) {
+ var d;
+ Uhb(a.a);
+ Hkb(c.i, new B1c(a));
+ d = new hDb(BD(Ohb(a.a, b.b), 65));
+ p1c(a, d, b);
+ c.f = d;
+ }
+ function QLc(a, b) {
+ var c, d;
+ c = a.c;
+ d = b.e[a.p];
+ if (d < c.a.c.length - 1) {
+ return BD(Ikb(c.a, d + 1), 10);
+ }
+ return null;
+ }
+ function rr(a, b) {
+ var c, d;
+ Rb(b, "predicate");
+ for (d = 0; a.Ob(); d++) {
+ c = a.Pb();
+ if (b.Lb(c)) {
+ return d;
+ }
+ }
+ return -1;
+ }
+ function ZEd(a, b) {
+ var c, d;
+ d = 0;
+ if (a < 64 && a <= b) {
+ b = b < 64 ? b : 63;
+ for (c = a; c <= b; c++) {
+ d = Mbb(d, Nbb(1, c));
+ }
+ }
+ return d;
+ }
+ function pmb(a) {
+ mmb();
+ var b, c, d;
+ d = 0;
+ for (c = a.Kc(); c.Ob(); ) {
+ b = c.Pb();
+ d = d + (b != null ? tb(b) : 0);
+ d = d | 0;
+ }
+ return d;
+ }
+ function etd(a) {
+ var b, c;
+ c = (Fhd(), b = new rmd(), b);
+ !!a && wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), c);
+ return c;
+ }
+ function TA(a) {
+ var b;
+ b = new PA();
+ b.a = a;
+ b.b = RA(a);
+ b.c = KC(ZI, nie, 2, 2, 6, 1);
+ b.c[0] = SA(a);
+ b.c[1] = SA(a);
+ return b;
+ }
+ function fkd(a, b) {
+ switch (b) {
+ case 0:
+ !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0));
+ a.o.c.$b();
+ return;
+ }
+ Cid(a, b);
+ }
+ function jEb(a, b, c) {
+ switch (c.g) {
+ case 2:
+ a.b = b;
+ break;
+ case 1:
+ a.c = b;
+ break;
+ case 4:
+ a.d = b;
+ break;
+ case 3:
+ a.a = b;
+ }
+ }
+ function sbd(a) {
+ switch (a.g) {
+ case 1:
+ return obd;
+ case 2:
+ return nbd;
+ case 3:
+ return pbd;
+ default:
+ return qbd;
+ }
+ }
+ function Zac(a) {
+ switch (BD(vNb(a, (Nyc(), mxc)), 163).g) {
+ case 2:
+ case 4:
+ return true;
+ default:
+ return false;
+ }
+ }
+ function Trc() {
+ Trc = ccb;
+ Src = as((Orc(), OC(GC(PW, 1), Kie, 256, 0, [Frc, Hrc, Irc, Jrc, Krc, Lrc, Nrc, Erc, Grc, Mrc])));
+ }
+ function Ndd() {
+ Ndd = ccb;
+ Mdd = as((Idd(), OC(GC(J1, 1), Kie, 259, 0, [Bdd, Ddd, Add, Edd, Fdd, Hdd, Gdd, Cdd, zdd])));
+ }
+ function wUc() {
+ wUc = ccb;
+ vUc = e3c(b3c(b3c(g3c(e3c(new j3c(), (yRc(), vRc), (qSc(), pSc)), wRc), mSc), nSc), xRc, oSc);
+ }
+ function Gqc() {
+ Gqc = ccb;
+ Eqc = new Hqc(ane, 0);
+ Dqc = new Hqc("INCOMING_ONLY", 1);
+ Fqc = new Hqc("OUTGOING_ONLY", 2);
+ }
+ function rC() {
+ rC = ccb;
+ qC = { "boolean": sC, "number": tC, "string": vC, "object": uC, "function": uC, "undefined": wC };
+ }
+ function Whb(a, b) {
+ mCb(a >= 0, "Negative initial capacity");
+ mCb(b >= 0, "Non-positive load factor");
+ Uhb(this);
+ }
+ function _Ed(a, b, c) {
+ if (a >= 128)
+ return false;
+ return a < 64 ? Kbb(xbb(Nbb(1, a), c), 0) : Kbb(xbb(Nbb(1, a - 64), b), 0);
+ }
+ function bOb(a, b) {
+ if (!a || !b || a == b) {
+ return false;
+ }
+ return Jy(a.b.c, b.b.c + b.b.b) < 0 && Jy(b.b.c, a.b.c + a.b.b) < 0;
+ }
+ function I4b(a) {
+ var b, c, d;
+ c = a.n;
+ d = a.o;
+ b = a.d;
+ return new J6c(c.a - b.b, c.b - b.d, d.a + (b.b + b.c), d.b + (b.d + b.a));
+ }
+ function $ic(a) {
+ var b, c, d, e;
+ for (c = a.a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ djc(a, b, (Ucd(), Rcd));
+ djc(a, b, Acd);
+ }
+ }
+ function Uy(a) {
+ var b, c, d, e;
+ for (b = (a.j == null && (a.j = (Rz(), e = Qz.ce(a), Tz(e))), a.j), c = 0, d = b.length; c < d; ++c)
+ ;
+ }
+ function hD(a) {
+ var b, c, d;
+ b = ~a.l + 1 & Eje;
+ c = ~a.m + (b == 0 ? 1 : 0) & Eje;
+ d = ~a.h + (b == 0 && c == 0 ? 1 : 0) & Fje;
+ return TC(b, c, d);
+ }
+ function C$c(a, b) {
+ var c, d;
+ c = BD(BD(Ohb(a.g, b.a), 46).a, 65);
+ d = BD(BD(Ohb(a.g, b.b), 46).a, 65);
+ return _Nb(c, d);
+ }
+ function xtd(a, b, c) {
+ var d;
+ d = a.gc();
+ if (b > d)
+ throw vbb(new Cyd(b, d));
+ a.hi() && (c = Dtd(a, c));
+ return a.Vh(b, c);
+ }
+ function xNb(a, b, c) {
+ return c == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c)), a;
+ }
+ function yNb(a, b, c) {
+ c == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c));
+ return a;
+ }
+ function TQb(a) {
+ var b, c;
+ c = new kRb();
+ tNb(c, a);
+ yNb(c, (HSb(), FSb), a);
+ b = new Lqb();
+ VQb(a, c, b);
+ UQb(a, c, b);
+ return c;
+ }
+ function j6c(a) {
+ i6c();
+ var b, c, d;
+ c = KC(m1, nie, 8, 2, 0, 1);
+ d = 0;
+ for (b = 0; b < 2; b++) {
+ d += 0.5;
+ c[b] = r6c(d, a);
+ }
+ return c;
+ }
+ function Mic(a, b) {
+ var c, d, e, f;
+ c = false;
+ d = a.a[b].length;
+ for (f = 0; f < d - 1; f++) {
+ e = f + 1;
+ c = c | Nic(a, b, f, e);
+ }
+ return c;
+ }
+ function nNb(a, b, c, d, e) {
+ var f, g;
+ for (g = c; g <= e; g++) {
+ for (f = b; f <= d; f++) {
+ YMb(a, f, g) || aNb(a, f, g, true, false);
+ }
+ }
+ }
+ function rNd(a, b) {
+ this.b = a;
+ nNd.call(this, (BD(qud(ZKd((NFd(), MFd).o), 10), 18), b.i), b.g);
+ this.a = (NKd(), MKd);
+ }
+ function hj(a, b) {
+ this.c = a;
+ this.d = b;
+ this.b = this.d / this.c.c.Hd().gc() | 0;
+ this.a = this.d % this.c.c.Hd().gc();
+ }
+ function jdb() {
+ this.o = null;
+ this.k = null;
+ this.j = null;
+ this.d = null;
+ this.b = null;
+ this.n = null;
+ this.a = null;
+ }
+ function fB(a, b, c) {
+ this.q = new $wnd.Date();
+ this.q.setFullYear(a + nje, b, c);
+ this.q.setHours(0, 0, 0, 0);
+ YA(this, 0);
+ }
+ function tAc() {
+ tAc = ccb;
+ rAc = new uAc(ane, 0);
+ qAc = new uAc("NODES_AND_EDGES", 1);
+ sAc = new uAc("PREFER_EDGES", 2);
+ }
+ function RA(a) {
+ var b;
+ if (a == 0) {
+ return "Etc/GMT";
+ }
+ if (a < 0) {
+ a = -a;
+ b = "Etc/GMT-";
+ } else {
+ b = "Etc/GMT+";
+ }
+ return b + UA(a);
+ }
+ function geb(a) {
+ var b;
+ if (a < 0) {
+ return Rie;
+ } else if (a == 0) {
+ return 0;
+ } else {
+ for (b = Iie; (b & a) == 0; b >>= 1)
+ ;
+ return b;
+ }
+ }
+ function $C(a) {
+ var b, c;
+ c = heb(a.h);
+ if (c == 32) {
+ b = heb(a.m);
+ return b == 32 ? heb(a.l) + 32 : b + 20 - 10;
+ } else {
+ return c - 12;
+ }
+ }
+ function bkb(a) {
+ var b;
+ b = a.a[a.b];
+ if (b == null) {
+ return null;
+ }
+ NC(a.a, a.b, null);
+ a.b = a.b + 1 & a.a.length - 1;
+ return b;
+ }
+ function EDc(a) {
+ var b, c;
+ b = a.t - a.k[a.o.p] * a.d + a.j[a.o.p] > a.f;
+ c = a.u + a.e[a.o.p] * a.d > a.f * a.s * a.d;
+ return b || c;
+ }
+ function Iwb(a, b, c) {
+ var d, e;
+ d = new exb(b, c);
+ e = new fxb();
+ a.b = Gwb(a, a.b, d, e);
+ e.b || ++a.c;
+ a.b.b = false;
+ return e.d;
+ }
+ function djc(a, b, c) {
+ var d, e, f, g;
+ g = CHc(b, c);
+ f = 0;
+ for (e = g.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 11);
+ Rhb(a.c, d, meb(f++));
+ }
+ }
+ function xVb(a) {
+ var b, c;
+ for (c = new olb(a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 81);
+ b.g.c = -b.g.c - b.g.b;
+ }
+ sVb(a);
+ }
+ function XDb(a) {
+ var b, c;
+ for (c = new olb(a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 57);
+ b.d.c = -b.d.c - b.d.b;
+ }
+ RDb(a);
+ }
+ function AUd(a) {
+ var b;
+ if (!a.c || (a.Bb & 1) == 0 && (a.c.Db & 64) != 0) {
+ b = wId(a);
+ JD(b, 88) && (a.c = BD(b, 26));
+ }
+ return a.c;
+ }
+ function ZC(a) {
+ var b, c, d;
+ b = ~a.l + 1 & Eje;
+ c = ~a.m + (b == 0 ? 1 : 0) & Eje;
+ d = ~a.h + (b == 0 && c == 0 ? 1 : 0) & Fje;
+ a.l = b;
+ a.m = c;
+ a.h = d;
+ }
+ function l7c(a) {
+ var b, c, d, e, f;
+ b = new d7c();
+ for (d = a, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ b.a += c.a;
+ b.b += c.b;
+ }
+ return b;
+ }
+ function nmb(a, b) {
+ mmb();
+ var c, d, e, f, g;
+ g = false;
+ for (d = b, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ g = g | a.Fc(c);
+ }
+ return g;
+ }
+ function w6c(a) {
+ i6c();
+ var b, c;
+ c = -17976931348623157e292;
+ for (b = 0; b < a.length; b++) {
+ a[b] > c && (c = a[b]);
+ }
+ return c;
+ }
+ function SHc(a, b, c) {
+ var d;
+ d = new Rkb();
+ UHc(a, b, d, (Ucd(), zcd), true, false);
+ UHc(a, c, d, Tcd, false, false);
+ return d;
+ }
+ function crd(a, b, c) {
+ var d, e, f, g;
+ f = null;
+ g = b;
+ e = Ypd(g, "labels");
+ d = new Hrd(a, c);
+ f = (Dqd(d.a, d.b, e), e);
+ return f;
+ }
+ function j1d(a, b, c, d) {
+ var e;
+ e = r1d(a, b, c, d);
+ if (!e) {
+ e = i1d(a, c, d);
+ if (!!e && !e1d(a, b, e)) {
+ return null;
+ }
+ }
+ return e;
+ }
+ function m1d(a, b, c, d) {
+ var e;
+ e = s1d(a, b, c, d);
+ if (!e) {
+ e = l1d(a, c, d);
+ if (!!e && !e1d(a, b, e)) {
+ return null;
+ }
+ }
+ return e;
+ }
+ function Xb(a, b) {
+ var c;
+ for (c = 0; c < a.a.a.length; c++) {
+ if (!BD($lb(a.a, c), 169).Lb(b)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function Cb(a, b, c) {
+ Qb(b);
+ if (c.Ob()) {
+ Mfb(b, Fb(c.Pb()));
+ while (c.Ob()) {
+ Mfb(b, a.a);
+ Mfb(b, Fb(c.Pb()));
+ }
+ }
+ return b;
+ }
+ function qmb(a) {
+ mmb();
+ var b, c, d;
+ d = 1;
+ for (c = a.Kc(); c.Ob(); ) {
+ b = c.Pb();
+ d = 31 * d + (b != null ? tb(b) : 0);
+ d = d | 0;
+ }
+ return d;
+ }
+ function WC(a, b, c, d, e) {
+ var f;
+ f = lD(a, b);
+ c && ZC(f);
+ if (e) {
+ a = YC(a, b);
+ d ? QC = hD(a) : QC = TC(a.l, a.m, a.h);
+ }
+ return f;
+ }
+ function Xzb(b, c) {
+ var d;
+ try {
+ c.Vd();
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 78)) {
+ d = a;
+ b.c[b.c.length] = d;
+ } else
+ throw vbb(a);
+ }
+ }
+ function jRb(a, b, c) {
+ var d, e;
+ if (JD(b, 144) && !!c) {
+ d = BD(b, 144);
+ e = c;
+ return a.a[d.b][e.b] + a.a[e.b][d.b];
+ }
+ return 0;
+ }
+ function xld(a, b) {
+ switch (b) {
+ case 7:
+ return !!a.e && a.e.i != 0;
+ case 8:
+ return !!a.d && a.d.i != 0;
+ }
+ return Ykd(a, b);
+ }
+ function YQb(a, b) {
+ switch (b.g) {
+ case 0:
+ JD(a.b, 631) || (a.b = new xRb());
+ break;
+ case 1:
+ JD(a.b, 632) || (a.b = new DRb());
+ }
+ }
+ function Ghe(a, b) {
+ while (a.g == null && !a.c ? Uud(a) : a.g == null || a.i != 0 && BD(a.g[a.i - 1], 47).Ob()) {
+ Ord(b, Vud(a));
+ }
+ }
+ function kic(a, b, c) {
+ a.g = qic(a, b, (Ucd(), zcd), a.b);
+ a.d = qic(a, c, zcd, a.b);
+ if (a.g.c == 0 || a.d.c == 0) {
+ return;
+ }
+ nic(a);
+ }
+ function lic(a, b, c) {
+ a.g = qic(a, b, (Ucd(), Tcd), a.j);
+ a.d = qic(a, c, Tcd, a.j);
+ if (a.g.c == 0 || a.d.c == 0) {
+ return;
+ }
+ nic(a);
+ }
+ function $yc(a, b, c) {
+ return !WAb(JAb(new YAb(null, new Kub(a.c, 16)), new Xxb(new dfd(b, c)))).sd((EAb(), DAb));
+ }
+ function KAb(a) {
+ var b;
+ Tzb(a);
+ b = new NBb();
+ if (a.a.sd(b)) {
+ return Atb(), new Ftb(uCb(b.a));
+ }
+ return Atb(), Atb(), ztb;
+ }
+ function nA(a) {
+ var b;
+ if (a.b <= 0) {
+ return false;
+ }
+ b = hfb("MLydhHmsSDkK", wfb(bfb(a.c, 0)));
+ return b > 1 || b >= 0 && a.b < 3;
+ }
+ function w7c(a) {
+ var b, c, d;
+ b = new s7c();
+ for (d = Jsb(a, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 8);
+ St(b, 0, new g7c(c));
+ }
+ return b;
+ }
+ function qVb(a) {
+ var b, c;
+ for (c = new olb(a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 81);
+ b.f.$b();
+ }
+ LVb(a.b, a);
+ rVb(a);
+ }
+ function tb(a) {
+ return ND(a) ? LCb(a) : LD(a) ? Hdb(a) : KD(a) ? (uCb(a), a) ? 1231 : 1237 : ID(a) ? a.Hb() : MC(a) ? FCb(a) : rz(a);
+ }
+ function rb(a) {
+ return ND(a) ? ZI : LD(a) ? BI : KD(a) ? wI : ID(a) ? a.gm : MC(a) ? a.gm : a.gm || Array.isArray(a) && GC(PH, 1) || PH;
+ }
+ function j_c(a) {
+ switch (a.g) {
+ case 0:
+ return new Q1c();
+ default:
+ throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function S0c(a) {
+ switch (a.g) {
+ case 0:
+ return new k1c();
+ default:
+ throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function ekd(a, b, c) {
+ switch (b) {
+ case 0:
+ !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0));
+ cId(a.o, c);
+ return;
+ }
+ yid(a, b, c);
+ }
+ function XRc(a, b, c) {
+ this.g = a;
+ this.e = new d7c();
+ this.f = new d7c();
+ this.d = new Psb();
+ this.b = new Psb();
+ this.a = b;
+ this.c = c;
+ }
+ function PZc(a, b, c, d) {
+ this.b = new Rkb();
+ this.n = new Rkb();
+ this.i = d;
+ this.j = c;
+ this.s = a;
+ this.t = b;
+ this.r = 0;
+ this.d = 0;
+ }
+ function nib(a) {
+ this.e = a;
+ this.d = new Irb(this.e.g);
+ this.a = this.d;
+ this.b = kib(this);
+ this.$modCount = a.$modCount;
+ }
+ function Pr(a) {
+ while (!a.d || !a.d.Ob()) {
+ if (!!a.b && !akb(a.b)) {
+ a.d = BD(fkb(a.b), 47);
+ } else {
+ return null;
+ }
+ }
+ return a.d;
+ }
+ function Xyc(a) {
+ Ekb(a.c, (Y1c(), W1c));
+ if (Ky(a.a, Edb(ED(Ksd((dzc(), bzc)))))) {
+ return new Zed();
+ }
+ return new _ed(a);
+ }
+ function bRc(a) {
+ switch (a.g) {
+ case 1:
+ return Sqe;
+ default:
+ case 2:
+ return 0;
+ case 3:
+ return cme;
+ case 4:
+ return Tqe;
+ }
+ }
+ function Ife() {
+ wfe();
+ var a;
+ if (dfe)
+ return dfe;
+ a = Afe(Kfe("M", true));
+ a = Bfe(Kfe("M", false), a);
+ dfe = a;
+ return dfe;
+ }
+ function Awb(a, b) {
+ var c, d, e;
+ e = a.b;
+ while (e) {
+ c = a.a.ue(b, e.d);
+ if (c == 0) {
+ return e;
+ }
+ d = c < 0 ? 0 : 1;
+ e = e.a[d];
+ }
+ return null;
+ }
+ function Tyb(a, b, c) {
+ var d, e;
+ d = (Bcb(), _Pb(c) ? true : false);
+ e = BD(b.xc(d), 15);
+ if (!e) {
+ e = new Rkb();
+ b.zc(d, e);
+ }
+ e.Fc(c);
+ }
+ function dYc(a, b) {
+ var c, d;
+ c = BD(hkd(a, (lZc(), UYc)), 19).a;
+ d = BD(hkd(b, UYc), 19).a;
+ return c == d ? -1 : c < d ? -1 : c > d ? 1 : 0;
+ }
+ function NYb(a, b) {
+ if (OYb(a, b)) {
+ Rc(a.b, BD(vNb(b, (wtc(), Esc)), 21), b);
+ Dsb(a.a, b);
+ return true;
+ } else {
+ return false;
+ }
+ }
+ function d3b(a) {
+ var b, c;
+ b = BD(vNb(a, (wtc(), gtc)), 10);
+ if (b) {
+ c = b.c;
+ Lkb(c.a, b);
+ c.a.c.length == 0 && Lkb(Q_b(b).b, c);
+ }
+ }
+ function syb(a) {
+ if (lyb) {
+ return KC(qL, tke, 572, 0, 0, 1);
+ }
+ return BD(Qkb(a.a, KC(qL, tke, 572, a.a.c.length, 0, 1)), 842);
+ }
+ function mn(a, b, c, d) {
+ Vm();
+ return new wx(OC(GC(CK, 1), zie, 42, 0, [(Wj(a, b), new Wo(a, b)), (Wj(c, d), new Wo(c, d))]));
+ }
+ function Dnd(a, b, c) {
+ var d, e;
+ e = (d = new SSd(), d);
+ $nd(e, b, c);
+ wtd((!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q), e);
+ return e;
+ }
+ function Zmd(a) {
+ var b, c, d, e;
+ e = icb(Rmd, a);
+ c = e.length;
+ d = KC(ZI, nie, 2, c, 6, 1);
+ for (b = 0; b < c; ++b) {
+ d[b] = e[b];
+ }
+ return d;
+ }
+ function l4c(a, b) {
+ var c, d, e, f, g;
+ for (d = b, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ g = new v4c(a);
+ c.Qe(g);
+ q4c(g);
+ }
+ Uhb(a.f);
+ }
+ function hw(a, b) {
+ var c;
+ if (b === a) {
+ return true;
+ }
+ if (JD(b, 224)) {
+ c = BD(b, 224);
+ return pb(a.Zb(), c.Zb());
+ }
+ return false;
+ }
+ function aub(a, b) {
+ var c;
+ if (b * 2 + 1 >= a.b.c.length) {
+ return;
+ }
+ aub(a, 2 * b + 1);
+ c = 2 * b + 2;
+ c < a.b.c.length && aub(a, c);
+ bub(a, b);
+ }
+ function Ss(a, b, c) {
+ var d, e;
+ this.g = a;
+ this.c = b;
+ this.a = this;
+ this.d = this;
+ e = Kp(c);
+ d = KC(BG, Gie, 330, e, 0, 1);
+ this.b = d;
+ }
+ function whb(a, b, c) {
+ var d;
+ for (d = c - 1; d >= 0 && a[d] === b[d]; d--)
+ ;
+ return d < 0 ? 0 : Gbb(xbb(a[d], Yje), xbb(b[d], Yje)) ? -1 : 1;
+ }
+ function UFc(a, b) {
+ var c, d;
+ for (d = Jsb(a, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 214);
+ if (c.e.length > 0) {
+ b.td(c);
+ c.i && _Fc(c);
+ }
+ }
+ }
+ function nzd(a, b) {
+ var c, d;
+ d = BD(Ajd(a.a, 4), 126);
+ c = KC($3, hve, 415, b, 0, 1);
+ d != null && $fb(d, 0, c, 0, d.length);
+ return c;
+ }
+ function JEd(a, b) {
+ var c;
+ c = new NEd((a.f & 256) != 0, a.i, a.a, a.d, (a.f & 16) != 0, a.j, a.g, b);
+ a.e != null || (c.c = a);
+ return c;
+ }
+ function Dc(a, b) {
+ var c, d;
+ for (d = a.Zb().Cc().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 14);
+ if (c.Hc(b)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function oNb(a, b, c, d, e) {
+ var f, g;
+ for (g = c; g <= e; g++) {
+ for (f = b; f <= d; f++) {
+ if (YMb(a, f, g)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function Tt(a, b, c) {
+ var d, e, f, g;
+ uCb(c);
+ g = false;
+ f = a.Zc(b);
+ for (e = c.Kc(); e.Ob(); ) {
+ d = e.Pb();
+ f.Rb(d);
+ g = true;
+ }
+ return g;
+ }
+ function Dv(a, b) {
+ var c;
+ if (a === b) {
+ return true;
+ } else if (JD(b, 83)) {
+ c = BD(b, 83);
+ return Ax(Wm(a), c.vc());
+ }
+ return false;
+ }
+ function Nhb(a, b, c) {
+ var d, e;
+ for (e = c.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 42);
+ if (a.re(b, d.dd())) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function Hic(a, b, c) {
+ if (!a.d[b.p][c.p]) {
+ Gic(a, b, c);
+ a.d[b.p][c.p] = true;
+ a.d[c.p][b.p] = true;
+ }
+ return a.a[b.p][c.p];
+ }
+ function Itd(a, b) {
+ if (!a.ai() && b == null) {
+ throw vbb(new Wdb("The 'no null' constraint is violated"));
+ }
+ return b;
+ }
+ function $Jd(a, b) {
+ if (a.D == null && a.B != null) {
+ a.D = a.B;
+ a.B = null;
+ }
+ jKd(a, b == null ? null : (uCb(b), b));
+ !!a.C && a.yk(null);
+ }
+ function XHc(a, b) {
+ var c;
+ if (!a || a == b || !wNb(b, (wtc(), Psc))) {
+ return false;
+ }
+ c = BD(vNb(b, (wtc(), Psc)), 10);
+ return c != a;
+ }
+ function b4d(a) {
+ switch (a.i) {
+ case 2: {
+ return true;
+ }
+ case 1: {
+ return false;
+ }
+ case -1: {
+ ++a.c;
+ }
+ default: {
+ return a.pl();
+ }
+ }
+ }
+ function c4d(a) {
+ switch (a.i) {
+ case -2: {
+ return true;
+ }
+ case -1: {
+ return false;
+ }
+ case 1: {
+ --a.c;
+ }
+ default: {
+ return a.ql();
+ }
+ }
+ }
+ function Xdb(a) {
+ Zy.call(this, "The given string does not match the expected format for individual spacings.", a);
+ }
+ function pgd() {
+ pgd = ccb;
+ mgd = new qgd("ELK", 0);
+ ngd = new qgd("JSON", 1);
+ lgd = new qgd("DOT", 2);
+ ogd = new qgd("SVG", 3);
+ }
+ function pWc() {
+ pWc = ccb;
+ mWc = new rWc(ane, 0);
+ nWc = new rWc("RADIAL_COMPACTION", 1);
+ oWc = new rWc("WEDGE_COMPACTION", 2);
+ }
+ function Fyb() {
+ Fyb = ccb;
+ Cyb = new Gyb("CONCURRENT", 0);
+ Dyb = new Gyb("IDENTITY_FINISH", 1);
+ Eyb = new Gyb("UNORDERED", 2);
+ }
+ function nPb() {
+ nPb = ccb;
+ kPb = (cPb(), bPb);
+ jPb = new Nsd(Tle, kPb);
+ iPb = new Lsd(Ule);
+ lPb = new Lsd(Vle);
+ mPb = new Lsd(Wle);
+ }
+ function Occ() {
+ Occ = ccb;
+ Mcc = new Zcc();
+ Ncc = new _cc();
+ Lcc = new bdc();
+ Kcc = new fdc();
+ Jcc = new jdc();
+ Icc = (uCb(Jcc), new bpb());
+ }
+ function tBc() {
+ tBc = ccb;
+ qBc = new uBc("CONSERVATIVE", 0);
+ rBc = new uBc("CONSERVATIVE_SOFT", 1);
+ sBc = new uBc("SLOPPY", 2);
+ }
+ function Zad() {
+ Zad = ccb;
+ Xad = new q0b(15);
+ Wad = new Osd((Y9c(), f9c), Xad);
+ Yad = C9c;
+ Sad = s8c;
+ Tad = Y8c;
+ Vad = _8c;
+ Uad = $8c;
+ }
+ function o7c(a, b, c) {
+ var d, e, f;
+ d = new Psb();
+ for (f = Jsb(c, 0); f.b != f.d.c; ) {
+ e = BD(Xsb(f), 8);
+ Dsb(d, new g7c(e));
+ }
+ Tt(a, b, d);
+ }
+ function r7c(a) {
+ var b, c, d;
+ b = 0;
+ d = KC(m1, nie, 8, a.b, 0, 1);
+ c = Jsb(a, 0);
+ while (c.b != c.d.c) {
+ d[b++] = BD(Xsb(c), 8);
+ }
+ return d;
+ }
+ function $Pd(a) {
+ var b;
+ b = (!a.a && (a.a = new cUd(g5, a, 9, 5)), a.a);
+ if (b.i != 0) {
+ return nQd(BD(qud(b, 0), 678));
+ }
+ return null;
+ }
+ function Ly(a, b) {
+ var c;
+ c = wbb(a, b);
+ if (Gbb(Vbb(a, b), 0) | Ebb(Vbb(a, c), 0)) {
+ return c;
+ }
+ return wbb(rie, Vbb(Pbb(c, 63), 1));
+ }
+ function Yyc(a, b) {
+ var c;
+ c = Ksd((dzc(), bzc)) != null && b.wg() != null ? Edb(ED(b.wg())) / Edb(ED(Ksd(bzc))) : 1;
+ Rhb(a.b, b, c);
+ }
+ function le(a, b) {
+ var c, d;
+ c = BD(a.d.Bc(b), 14);
+ if (!c) {
+ return null;
+ }
+ d = a.e.hc();
+ d.Gc(c);
+ a.e.d -= c.gc();
+ c.$b();
+ return d;
+ }
+ function AHc(a, b) {
+ var c, d;
+ d = a.c[b];
+ if (d == 0) {
+ return;
+ }
+ a.c[b] = 0;
+ a.d -= d;
+ c = b + 1;
+ while (c < a.a.length) {
+ a.a[c] -= d;
+ c += c & -c;
+ }
+ }
+ function rwb(a) {
+ var b;
+ b = a.a.c.length;
+ if (b > 0) {
+ return _vb(b - 1, a.a.c.length), Kkb(a.a, b - 1);
+ } else {
+ throw vbb(new Jpb());
+ }
+ }
+ function C2c(a, b, c) {
+ if (b < 0) {
+ throw vbb(new qcb(ese + b));
+ }
+ if (b < a.j.c.length) {
+ Nkb(a.j, b, c);
+ } else {
+ A2c(a, b);
+ Ekb(a.j, c);
+ }
+ }
+ function oCb(a, b, c) {
+ if (a > b) {
+ throw vbb(new Wdb(xke + a + yke + b));
+ }
+ if (a < 0 || b > c) {
+ throw vbb(new scb(xke + a + zke + b + oke + c));
+ }
+ }
+ function j5c(a) {
+ if (!a.a || (a.a.i & 8) == 0) {
+ throw vbb(new Zdb("Enumeration class expected for layout option " + a.f));
+ }
+ }
+ function vud(a) {
+ var b;
+ ++a.j;
+ if (a.i == 0) {
+ a.g = null;
+ } else if (a.i < a.g.length) {
+ b = a.g;
+ a.g = a.ri(a.i);
+ $fb(b, 0, a.g, 0, a.i);
+ }
+ }
+ function hkb(a, b) {
+ var c, d;
+ c = a.a.length - 1;
+ a.c = a.c - 1 & c;
+ while (b != a.c) {
+ d = b + 1 & c;
+ NC(a.a, b, a.a[d]);
+ b = d;
+ }
+ NC(a.a, a.c, null);
+ }
+ function ikb(a, b) {
+ var c, d;
+ c = a.a.length - 1;
+ while (b != a.b) {
+ d = b - 1 & c;
+ NC(a.a, b, a.a[d]);
+ b = d;
+ }
+ NC(a.a, a.b, null);
+ a.b = a.b + 1 & c;
+ }
+ function Fkb(a, b, c) {
+ var d, e;
+ wCb(b, a.c.length);
+ d = c.Pc();
+ e = d.length;
+ if (e == 0) {
+ return false;
+ }
+ bCb(a.c, b, d);
+ return true;
+ }
+ function VEd(a) {
+ var b, c;
+ if (a == null)
+ return null;
+ for (b = 0, c = a.length; b < c; b++) {
+ if (!gFd(a[b]))
+ return a[b];
+ }
+ return null;
+ }
+ function grb(a, b, c) {
+ var d, e, f, g;
+ for (e = c, f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ if (a.b.re(b, d.cd())) {
+ return d;
+ }
+ }
+ return null;
+ }
+ function Hlb(a) {
+ var b, c, d, e, f;
+ f = 1;
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ f = 31 * f + (b != null ? tb(b) : 0);
+ f = f | 0;
+ }
+ return f;
+ }
+ function as(a) {
+ var b, c, d, e, f;
+ b = {};
+ for (d = a, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ b[":" + (c.f != null ? c.f : "" + c.g)] = c;
+ }
+ return b;
+ }
+ function gr(a) {
+ var b;
+ Qb(a);
+ Mb(true, "numberToAdvance must be nonnegative");
+ for (b = 0; b < 0 && Qr(a); b++) {
+ Rr(a);
+ }
+ return b;
+ }
+ function eDc(a) {
+ var b, c, d;
+ d = 0;
+ for (c = new Sr(ur(a.a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 17);
+ b.c.i == b.d.i || ++d;
+ }
+ return d;
+ }
+ function HZb(a, b) {
+ var c, d, e;
+ c = a;
+ e = 0;
+ do {
+ if (c == b) {
+ return e;
+ }
+ d = c.e;
+ if (!d) {
+ throw vbb(new Vdb());
+ }
+ c = Q_b(d);
+ ++e;
+ } while (true);
+ }
+ function w$c(a, b) {
+ var c, d, e;
+ e = b - a.f;
+ for (d = new olb(a.d); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 443);
+ _Zc(c, c.e, c.f + e);
+ }
+ a.f = b;
+ }
+ function aRc(a, b, c) {
+ if ($wnd.Math.abs(b - a) < Rqe || $wnd.Math.abs(c - a) < Rqe) {
+ return true;
+ }
+ return b - a > Rqe ? a - c > Rqe : c - a > Rqe;
+ }
+ function pHb(a, b) {
+ if (!a) {
+ return 0;
+ }
+ if (b && !a.j) {
+ return 0;
+ }
+ if (JD(a, 124)) {
+ if (BD(a, 124).a.b == 0) {
+ return 0;
+ }
+ }
+ return a.Re();
+ }
+ function qHb(a, b) {
+ if (!a) {
+ return 0;
+ }
+ if (b && !a.k) {
+ return 0;
+ }
+ if (JD(a, 124)) {
+ if (BD(a, 124).a.a == 0) {
+ return 0;
+ }
+ }
+ return a.Se();
+ }
+ function fhb(a) {
+ Hgb();
+ if (a < 0) {
+ if (a != -1) {
+ return new Tgb(-1, -a);
+ }
+ return Bgb;
+ } else
+ return a <= 10 ? Dgb[QD(a)] : new Tgb(1, a);
+ }
+ function xC(a) {
+ rC();
+ throw vbb(new MB("Unexpected typeof result '" + a + "'; please report this bug to the GWT team"));
+ }
+ function lz(a) {
+ jz();
+ Py(this);
+ Ry(this);
+ this.e = a;
+ Sy(this, a);
+ this.g = a == null ? Xhe : fcb(a);
+ this.a = "";
+ this.b = a;
+ this.a = "";
+ }
+ function F$c() {
+ this.a = new G$c();
+ this.f = new I$c(this);
+ this.b = new K$c(this);
+ this.i = new M$c(this);
+ this.e = new O$c(this);
+ }
+ function ss() {
+ rs.call(this, new _rb(Cv(16)));
+ Xj(2, mie);
+ this.b = 2;
+ this.a = new Ms(null, null, 0, null);
+ As(this.a, this.a);
+ }
+ function xzc() {
+ xzc = ccb;
+ uzc = new zzc("DUMMY_NODE_OVER", 0);
+ vzc = new zzc("DUMMY_NODE_UNDER", 1);
+ wzc = new zzc("EQUAL", 2);
+ }
+ function LUb() {
+ LUb = ccb;
+ JUb = Fx(OC(GC(t1, 1), Kie, 103, 0, [(ead(), aad), bad]));
+ KUb = Fx(OC(GC(t1, 1), Kie, 103, 0, [dad, _9c]));
+ }
+ function VQc(a) {
+ return (Ucd(), Lcd).Hc(a.j) ? Edb(ED(vNb(a, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])).b;
+ }
+ function DOb(a) {
+ var b, c, d, e;
+ d = a.b.a;
+ for (c = d.a.ec().Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 561);
+ e = new MPb(b, a.e, a.f);
+ Ekb(a.g, e);
+ }
+ }
+ function yId(a, b) {
+ var c, d, e;
+ d = a.nk(b, null);
+ e = null;
+ if (b) {
+ e = (LFd(), c = new UQd(), c);
+ NQd(e, a.r);
+ }
+ d = xId(a, e, d);
+ !!d && d.Fi();
+ }
+ function VFc(a, b) {
+ var c, d;
+ d = Cub(a.d, 1) != 0;
+ c = true;
+ while (c) {
+ c = false;
+ c = b.c.Tf(b.e, d);
+ c = c | dGc(a, b, d, false);
+ d = !d;
+ }
+ $Fc(a);
+ }
+ function wZc(a, b) {
+ var c, d, e;
+ d = false;
+ c = b.q.d;
+ if (b.d < a.b) {
+ e = ZZc(b.q, a.b);
+ if (b.q.d > e) {
+ $Zc(b.q, e);
+ d = c != b.q.d;
+ }
+ }
+ return d;
+ }
+ function PVc(a, b) {
+ var c, d, e, f, g, h, i, j;
+ i = b.i;
+ j = b.j;
+ d = a.f;
+ e = d.i;
+ f = d.j;
+ g = i - e;
+ h = j - f;
+ c = $wnd.Math.sqrt(g * g + h * h);
+ return c;
+ }
+ function Rnd(a, b) {
+ var c, d;
+ d = jid(a);
+ if (!d) {
+ c = (IEd(), PEd(b));
+ d = new s0d(c);
+ wtd(d.Vk(), a);
+ }
+ return d;
+ }
+ function Sc(a, b) {
+ var c, d;
+ c = BD(a.c.Bc(b), 14);
+ if (!c) {
+ return a.jc();
+ }
+ d = a.hc();
+ d.Gc(c);
+ a.d -= c.gc();
+ c.$b();
+ return a.mc(d);
+ }
+ function j7c(a, b) {
+ var c;
+ for (c = 0; c < b.length; c++) {
+ if (a == (BCb(c, b.length), b.charCodeAt(c))) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function E_b(a, b) {
+ var c;
+ for (c = 0; c < b.length; c++) {
+ if (a == (BCb(c, b.length), b.charCodeAt(c))) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function hFd(a) {
+ var b, c;
+ if (a == null)
+ return false;
+ for (b = 0, c = a.length; b < c; b++) {
+ if (!gFd(a[b]))
+ return false;
+ }
+ return true;
+ }
+ function Ngb(a) {
+ var b;
+ if (a.c != 0) {
+ return a.c;
+ }
+ for (b = 0; b < a.a.length; b++) {
+ a.c = a.c * 33 + (a.a[b] & -1);
+ }
+ a.c = a.c * a.e;
+ return a.c;
+ }
+ function vkb(a) {
+ var b;
+ sCb(a.a != a.b);
+ b = a.d.a[a.a];
+ mkb(a.b == a.d.c && b != null);
+ a.c = a.a;
+ a.a = a.a + 1 & a.d.a.length - 1;
+ return b;
+ }
+ function phe(a) {
+ var b;
+ if (!(a.c.c < 0 ? a.a >= a.c.b : a.a <= a.c.b)) {
+ throw vbb(new utb());
+ }
+ b = a.a;
+ a.a += a.c.c;
+ ++a.b;
+ return meb(b);
+ }
+ function BWb(a) {
+ var b;
+ b = new VWb(a);
+ rXb(a.a, zWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [b])));
+ !!b.d && Ekb(b.f, b.d);
+ return b.f;
+ }
+ function Z1b(a) {
+ var b;
+ b = new q_b(a.a);
+ tNb(b, a);
+ yNb(b, (wtc(), $sc), a);
+ b.o.a = a.g;
+ b.o.b = a.f;
+ b.n.a = a.i;
+ b.n.b = a.j;
+ return b;
+ }
+ function A9b(a, b, c, d) {
+ var e, f;
+ for (f = a.Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 70);
+ e.n.a = b.a + (d.a - e.o.a) / 2;
+ e.n.b = b.b;
+ b.b += e.o.b + c;
+ }
+ }
+ function UDb(a, b, c) {
+ var d, e;
+ for (e = b.a.a.ec().Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 57);
+ if (VDb(a, d, c)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function JDc(a) {
+ var b, c;
+ for (c = new olb(a.r); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 10);
+ if (a.n[b.p] <= 0) {
+ return b;
+ }
+ }
+ return null;
+ }
+ function cVc(a) {
+ var b, c, d, e;
+ e = new Tqb();
+ for (d = new olb(a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 33);
+ b = fVc(c);
+ ye(e, b);
+ }
+ return e;
+ }
+ function zFc(a) {
+ var b;
+ b = k3c(xFc);
+ BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Krc)) && e3c(b, (qUb(), nUb), (S8b(), H8b));
+ return b;
+ }
+ function qKb(a, b, c) {
+ var d;
+ d = new AJb(a, b);
+ Rc(a.r, b.Hf(), d);
+ if (c && !tcd(a.u)) {
+ d.c = new aIb(a.d);
+ Hkb(b.wf(), new tKb(d));
+ }
+ }
+ function ybb(a, b) {
+ var c;
+ if (Fbb(a) && Fbb(b)) {
+ c = a - b;
+ if (!isNaN(c)) {
+ return c;
+ }
+ }
+ return eD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b);
+ }
+ function bFd(a, b) {
+ return b < a.length && (BCb(b, a.length), a.charCodeAt(b) != 63) && (BCb(b, a.length), a.charCodeAt(b) != 35);
+ }
+ function Kic(a, b, c, d) {
+ var e, f;
+ a.a = b;
+ f = d ? 0 : 1;
+ a.f = (e = new Iic(a.c, a.a, c, f), new jjc(c, a.a, e, a.e, a.b, a.c == (rGc(), pGc)));
+ }
+ function Tmd(a, b, c) {
+ var d, e;
+ e = a.a;
+ a.a = b;
+ if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
+ d = new nSd(a, 1, 1, e, b);
+ !c ? c = d : c.Ei(d);
+ }
+ return c;
+ }
+ function GQd(a, b, c) {
+ var d, e;
+ e = a.b;
+ a.b = b;
+ if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
+ d = new nSd(a, 1, 3, e, b);
+ !c ? c = d : c.Ei(d);
+ }
+ return c;
+ }
+ function IQd(a, b, c) {
+ var d, e;
+ e = a.f;
+ a.f = b;
+ if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
+ d = new nSd(a, 1, 0, e, b);
+ !c ? c = d : c.Ei(d);
+ }
+ return c;
+ }
+ function xid(a, b) {
+ var c, d, e, f;
+ f = (e = a ? jid(a) : null, q6d((d = b, e ? e.Xk() : null, d)));
+ if (f == b) {
+ c = jid(a);
+ !!c && c.Xk();
+ }
+ return f;
+ }
+ function x6c(a, b) {
+ var c, d, e;
+ e = 1;
+ c = a;
+ d = b >= 0 ? b : -b;
+ while (d > 0) {
+ if (d % 2 == 0) {
+ c *= c;
+ d = d / 2 | 0;
+ } else {
+ e *= c;
+ d -= 1;
+ }
+ }
+ return b < 0 ? 1 / e : e;
+ }
+ function y6c(a, b) {
+ var c, d, e;
+ e = 1;
+ c = a;
+ d = b >= 0 ? b : -b;
+ while (d > 0) {
+ if (d % 2 == 0) {
+ c *= c;
+ d = d / 2 | 0;
+ } else {
+ e *= c;
+ d -= 1;
+ }
+ }
+ return b < 0 ? 1 / e : e;
+ }
+ function sAd(a) {
+ var b, c;
+ if (a != null) {
+ for (c = 0; c < a.length; ++c) {
+ b = a[c];
+ if (b) {
+ BD(b.g, 367);
+ b.i;
+ }
+ }
+ }
+ }
+ function YZc(a) {
+ var b, c, d;
+ d = 0;
+ for (c = new olb(a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 187);
+ d = $wnd.Math.max(d, b.g);
+ }
+ return d;
+ }
+ function eGc(a) {
+ var b, c, d;
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 214);
+ b = c.c.Rf() ? c.f : c.a;
+ !!b && mHc(b, c.j);
+ }
+ }
+ function hbd() {
+ hbd = ccb;
+ fbd = new ibd("INHERIT", 0);
+ ebd = new ibd("INCLUDE_CHILDREN", 1);
+ gbd = new ibd("SEPARATE_CHILDREN", 2);
+ }
+ function Jkd(a, b) {
+ switch (b) {
+ case 1:
+ !a.n && (a.n = new cUd(D2, a, 1, 7));
+ Uxd(a.n);
+ return;
+ case 2:
+ Lkd(a, null);
+ return;
+ }
+ fkd(a, b);
+ }
+ function Dm(a) {
+ var b;
+ switch (a.gc()) {
+ case 0:
+ return hm;
+ case 1:
+ return new my(Qb(a.Xb(0)));
+ default:
+ b = a;
+ return new ux(b);
+ }
+ }
+ function Vn(a) {
+ Ql();
+ switch (a.gc()) {
+ case 0:
+ return yx(), xx;
+ case 1:
+ return new oy(a.Kc().Pb());
+ default:
+ return new zx(a);
+ }
+ }
+ function Up(a) {
+ Ql();
+ switch (a.c) {
+ case 0:
+ return yx(), xx;
+ case 1:
+ return new oy(qr(new Gqb(a)));
+ default:
+ return new Tp(a);
+ }
+ }
+ function Hv(b, c) {
+ Qb(b);
+ try {
+ return b.xc(c);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 205) || JD(a, 173)) {
+ return null;
+ } else
+ throw vbb(a);
+ }
+ }
+ function Iv(b, c) {
+ Qb(b);
+ try {
+ return b.Bc(c);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 205) || JD(a, 173)) {
+ return null;
+ } else
+ throw vbb(a);
+ }
+ }
+ function Ck(b, c) {
+ Qb(b);
+ try {
+ return b.Hc(c);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 205) || JD(a, 173)) {
+ return false;
+ } else
+ throw vbb(a);
+ }
+ }
+ function Dk(b, c) {
+ Qb(b);
+ try {
+ return b.Mc(c);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 205) || JD(a, 173)) {
+ return false;
+ } else
+ throw vbb(a);
+ }
+ }
+ function Gv(b, c) {
+ Qb(b);
+ try {
+ return b._b(c);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 205) || JD(a, 173)) {
+ return false;
+ } else
+ throw vbb(a);
+ }
+ }
+ function KXb(a, b) {
+ var c;
+ if (a.a.c.length > 0) {
+ c = BD(Ikb(a.a, a.a.c.length - 1), 570);
+ if (NYb(c, b)) {
+ return;
+ }
+ }
+ Ekb(a.a, new PYb(b));
+ }
+ function $gc(a) {
+ Hgc();
+ var b, c;
+ b = a.d.c - a.e.c;
+ c = BD(a.g, 145);
+ Hkb(c.b, new shc(b));
+ Hkb(c.c, new uhc(b));
+ reb(c.i, new whc(b));
+ }
+ function gic(a) {
+ var b;
+ b = new Ufb();
+ b.a += "VerticalSegment ";
+ Pfb(b, a.e);
+ b.a += " ";
+ Qfb(b, Eb(new Gb(), new olb(a.k)));
+ return b.a;
+ }
+ function u4c(a) {
+ var b;
+ b = BD(Wrb(a.c.c, ""), 229);
+ if (!b) {
+ b = new W3c(d4c(c4c(new e4c(), ""), "Other"));
+ Xrb(a.c.c, "", b);
+ }
+ return b;
+ }
+ function qnd(a) {
+ var b;
+ if ((a.Db & 64) != 0)
+ return Eid(a);
+ b = new Jfb(Eid(a));
+ b.a += " (name: ";
+ Efb(b, a.zb);
+ b.a += ")";
+ return b.a;
+ }
+ function Jnd(a, b, c) {
+ var d, e;
+ e = a.sb;
+ a.sb = b;
+ if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
+ d = new nSd(a, 1, 4, e, b);
+ !c ? c = d : c.Ei(d);
+ }
+ return c;
+ }
+ function _ic(a, b) {
+ var c, d, e;
+ c = 0;
+ for (e = V_b(a, b).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 11);
+ c += vNb(d, (wtc(), gtc)) != null ? 1 : 0;
+ }
+ return c;
+ }
+ function vPc(a, b, c) {
+ var d, e, f;
+ d = 0;
+ for (f = Jsb(a, 0); f.b != f.d.c; ) {
+ e = Edb(ED(Xsb(f)));
+ if (e > c) {
+ break;
+ } else
+ e >= b && ++d;
+ }
+ return d;
+ }
+ function RTd(a, b, c) {
+ var d, e;
+ d = new pSd(a.e, 3, 13, null, (e = b.c, e ? e : (jGd(), YFd)), HLd(a, b), false);
+ !c ? c = d : c.Ei(d);
+ return c;
+ }
+ function STd(a, b, c) {
+ var d, e;
+ d = new pSd(a.e, 4, 13, (e = b.c, e ? e : (jGd(), YFd)), null, HLd(a, b), false);
+ !c ? c = d : c.Ei(d);
+ return c;
+ }
+ function zId(a, b, c) {
+ var d, e;
+ e = a.r;
+ a.r = b;
+ if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
+ d = new nSd(a, 1, 8, e, a.r);
+ !c ? c = d : c.Ei(d);
+ }
+ return c;
+ }
+ function o1d(a, b) {
+ var c, d;
+ c = BD(b, 676);
+ d = c.vk();
+ !d && c.wk(d = JD(b, 88) ? new C1d(a, BD(b, 26)) : new O1d(a, BD(b, 148)));
+ return d;
+ }
+ function kud(a, b, c) {
+ var d;
+ a.qi(a.i + 1);
+ d = a.oi(b, c);
+ b != a.i && $fb(a.g, b, a.g, b + 1, a.i - b);
+ NC(a.g, b, d);
+ ++a.i;
+ a.bi(b, c);
+ a.ci();
+ }
+ function vwb(a, b) {
+ var c;
+ if (b.a) {
+ c = b.a.a.length;
+ !a.a ? a.a = new Wfb(a.d) : Qfb(a.a, a.b);
+ Ofb(a.a, b.a, b.d.length, c);
+ }
+ return a;
+ }
+ function __d(a, b) {
+ var c, d, e, f;
+ b.vi(a.a);
+ f = BD(Ajd(a.a, 8), 1936);
+ if (f != null) {
+ for (c = f, d = 0, e = c.length; d < e; ++d) {
+ null.jm();
+ }
+ }
+ }
+ function TAb(a, b) {
+ var c;
+ c = new NBb();
+ if (!a.a.sd(c)) {
+ Tzb(a);
+ return Atb(), Atb(), ztb;
+ }
+ return Atb(), new Ftb(uCb(SAb(a, c.a, b)));
+ }
+ function CHc(a, b) {
+ switch (b.g) {
+ case 2:
+ case 1:
+ return V_b(a, b);
+ case 3:
+ case 4:
+ return Su(V_b(a, b));
+ }
+ return mmb(), mmb(), jmb;
+ }
+ function pb(a, b) {
+ return ND(a) ? dfb(a, b) : LD(a) ? Fdb(a, b) : KD(a) ? (uCb(a), PD(a) === PD(b)) : ID(a) ? a.Fb(b) : MC(a) ? mb(a, b) : qz(a, b);
+ }
+ function r6d(a) {
+ return !a ? null : (a.i & 1) != 0 ? a == sbb ? wI : a == WD ? JI : a == VD ? FI : a == UD ? BI : a == XD ? MI : a == rbb ? UI : a == SD ? xI : yI : a;
+ }
+ function Fhb(a, b, c, d, e) {
+ if (b == 0 || d == 0) {
+ return;
+ }
+ b == 1 ? e[d] = Hhb(e, c, d, a[0]) : d == 1 ? e[b] = Hhb(e, a, b, c[0]) : Ghb(a, c, e, b, d);
+ }
+ function c6b(a, b) {
+ var c;
+ if (a.c.length == 0) {
+ return;
+ }
+ c = BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193);
+ Nlb(c, new o6b());
+ _5b(c, b);
+ }
+ function i6b(a, b) {
+ var c;
+ if (a.c.length == 0) {
+ return;
+ }
+ c = BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193);
+ Nlb(c, new t6b());
+ _5b(c, b);
+ }
+ function Ekd(a, b, c, d) {
+ switch (b) {
+ case 1:
+ return !a.n && (a.n = new cUd(D2, a, 1, 7)), a.n;
+ case 2:
+ return a.k;
+ }
+ return bkd(a, b, c, d);
+ }
+ function ead() {
+ ead = ccb;
+ cad = new iad(ole, 0);
+ bad = new iad(kle, 1);
+ aad = new iad(jle, 2);
+ _9c = new iad(vle, 3);
+ dad = new iad("UP", 4);
+ }
+ function RXb() {
+ RXb = ccb;
+ QXb = new SXb(ane, 0);
+ PXb = new SXb("INSIDE_PORT_SIDE_GROUPS", 1);
+ OXb = new SXb("FORCE_MODEL_ORDER", 2);
+ }
+ function xCb(a, b, c) {
+ if (a < 0 || b > c) {
+ throw vbb(new qcb(xke + a + zke + b + ", size: " + c));
+ }
+ if (a > b) {
+ throw vbb(new Wdb(xke + a + yke + b));
+ }
+ }
+ function eid(a, b, c) {
+ if (b < 0) {
+ vid(a, c);
+ } else {
+ if (!c.Ij()) {
+ throw vbb(new Wdb(ite + c.ne() + jte));
+ }
+ BD(c, 66).Nj().Vj(a, a.yh(), b);
+ }
+ }
+ function Jlb(a, b, c, d, e, f, g, h) {
+ var i;
+ i = c;
+ while (f < g) {
+ i >= d || b < c && h.ue(a[b], a[i]) <= 0 ? NC(e, f++, a[b++]) : NC(e, f++, a[i++]);
+ }
+ }
+ function yZb(a, b, c, d, e, f) {
+ this.e = new Rkb();
+ this.f = (KAc(), JAc);
+ Ekb(this.e, a);
+ this.d = b;
+ this.a = c;
+ this.b = d;
+ this.f = e;
+ this.c = f;
+ }
+ function VOd(a, b) {
+ var c, d;
+ for (d = new Fyd(a); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 26);
+ if (PD(b) === PD(c)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function uJb(a) {
+ qJb();
+ var b, c, d, e;
+ for (c = wJb(), d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ if (Jkb(b.a, a, 0) != -1) {
+ return b;
+ }
+ }
+ return pJb;
+ }
+ function jFd(a) {
+ if (a >= 65 && a <= 70) {
+ return a - 65 + 10;
+ }
+ if (a >= 97 && a <= 102) {
+ return a - 97 + 10;
+ }
+ if (a >= 48 && a <= 57) {
+ return a - 48;
+ }
+ return 0;
+ }
+ function QHd(a) {
+ var b;
+ if ((a.Db & 64) != 0)
+ return Eid(a);
+ b = new Jfb(Eid(a));
+ b.a += " (source: ";
+ Efb(b, a.d);
+ b.a += ")";
+ return b.a;
+ }
+ function OQd(a, b, c) {
+ var d, e;
+ e = a.a;
+ a.a = b;
+ if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
+ d = new nSd(a, 1, 5, e, a.a);
+ !c ? c = d : Qwd(c, d);
+ }
+ return c;
+ }
+ function BId(a, b) {
+ var c;
+ c = (a.Bb & 256) != 0;
+ b ? a.Bb |= 256 : a.Bb &= -257;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 2, c, b));
+ }
+ function eLd(a, b) {
+ var c;
+ c = (a.Bb & 256) != 0;
+ b ? a.Bb |= 256 : a.Bb &= -257;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 8, c, b));
+ }
+ function LPd(a, b) {
+ var c;
+ c = (a.Bb & 256) != 0;
+ b ? a.Bb |= 256 : a.Bb &= -257;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 8, c, b));
+ }
+ function CId(a, b) {
+ var c;
+ c = (a.Bb & 512) != 0;
+ b ? a.Bb |= 512 : a.Bb &= -513;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 3, c, b));
+ }
+ function fLd(a, b) {
+ var c;
+ c = (a.Bb & 512) != 0;
+ b ? a.Bb |= 512 : a.Bb &= -513;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 9, c, b));
+ }
+ function N7d(a, b) {
+ var c;
+ if (a.b == -1 && !!a.a) {
+ c = a.a.Gj();
+ a.b = !c ? bLd(a.c.Tg(), a.a) : a.c.Xg(a.a.aj(), c);
+ }
+ return a.c.Og(a.b, b);
+ }
+ function meb(a) {
+ var b, c;
+ if (a > -129 && a < 128) {
+ b = a + 128;
+ c = (oeb(), neb)[b];
+ !c && (c = neb[b] = new _db(a));
+ return c;
+ }
+ return new _db(a);
+ }
+ function Web(a) {
+ var b, c;
+ if (a > -129 && a < 128) {
+ b = a + 128;
+ c = (Yeb(), Xeb)[b];
+ !c && (c = Xeb[b] = new Qeb(a));
+ return c;
+ }
+ return new Qeb(a);
+ }
+ function L5b(a) {
+ var b, c;
+ b = a.k;
+ if (b == (j0b(), e0b)) {
+ c = BD(vNb(a, (wtc(), Hsc)), 61);
+ return c == (Ucd(), Acd) || c == Rcd;
+ }
+ return false;
+ }
+ function i1d(a, b, c) {
+ var d, e, f;
+ f = (e = nUd(a.b, b), e);
+ if (f) {
+ d = BD(V1d(p1d(a, f), ""), 26);
+ if (d) {
+ return r1d(a, d, b, c);
+ }
+ }
+ return null;
+ }
+ function l1d(a, b, c) {
+ var d, e, f;
+ f = (e = nUd(a.b, b), e);
+ if (f) {
+ d = BD(V1d(p1d(a, f), ""), 26);
+ if (d) {
+ return s1d(a, d, b, c);
+ }
+ }
+ return null;
+ }
+ function cTd(a, b) {
+ var c, d;
+ for (d = new Fyd(a); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 138);
+ if (PD(b) === PD(c)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function vtd(a, b, c) {
+ var d;
+ d = a.gc();
+ if (b > d)
+ throw vbb(new Cyd(b, d));
+ if (a.hi() && a.Hc(c)) {
+ throw vbb(new Wdb(kue));
+ }
+ a.Xh(b, c);
+ }
+ function iqd(a, b) {
+ var c;
+ c = oo(a.i, b);
+ if (c == null) {
+ throw vbb(new cqd("Node did not exist in input."));
+ }
+ Yqd(b, c);
+ return null;
+ }
+ function $hd(a, b) {
+ var c;
+ c = YKd(a, b);
+ if (JD(c, 322)) {
+ return BD(c, 34);
+ }
+ throw vbb(new Wdb(ite + b + "' is not a valid attribute"));
+ }
+ function V2d(a, b, c) {
+ var d, e;
+ e = JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a);
+ for (d = 0; d < c; ++d) {
+ d4d(e);
+ }
+ return e;
+ }
+ function ede(a) {
+ var b, c, d;
+ d = 0;
+ c = a.length;
+ for (b = 0; b < c; b++) {
+ a[b] == 32 || a[b] == 13 || a[b] == 10 || a[b] == 9 || (a[d++] = a[b]);
+ }
+ return d;
+ }
+ function lYb(a) {
+ var b, c, d;
+ b = new Rkb();
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 594);
+ Gkb(b, BD(c.jf(), 14));
+ }
+ return b;
+ }
+ function SSc(a) {
+ var b, c, d;
+ b = BD(vNb(a, (mTc(), gTc)), 15);
+ for (d = b.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 188);
+ Dsb(c.b.d, c);
+ Dsb(c.c.b, c);
+ }
+ }
+ function b5b(a) {
+ switch (BD(vNb(a, (wtc(), Osc)), 303).g) {
+ case 1:
+ yNb(a, Osc, (esc(), bsc));
+ break;
+ case 2:
+ yNb(a, Osc, (esc(), dsc));
+ }
+ }
+ function _Fc(a) {
+ var b;
+ if (a.g) {
+ b = a.c.Rf() ? a.f : a.a;
+ bGc(b.a, a.o, true);
+ bGc(b.a, a.o, false);
+ yNb(a.o, (Nyc(), Vxc), (dcd(), Zbd));
+ }
+ }
+ function loc(a) {
+ var b;
+ if (!a.a) {
+ throw vbb(new Zdb("Cannot offset an unassigned cut."));
+ }
+ b = a.c - a.b;
+ a.b += b;
+ noc(a, b);
+ ooc(a, b);
+ }
+ function ckb(a) {
+ var b;
+ b = a.a[a.c - 1 & a.a.length - 1];
+ if (b == null) {
+ return null;
+ }
+ a.c = a.c - 1 & a.a.length - 1;
+ NC(a.a, a.c, null);
+ return b;
+ }
+ function zGb(a) {
+ var b, c;
+ for (c = a.p.a.ec().Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 213);
+ if (b.f && a.b[b.c] < -1e-10) {
+ return b;
+ }
+ }
+ return null;
+ }
+ function bLb(a, b) {
+ switch (a.b.g) {
+ case 0:
+ case 1:
+ return b;
+ case 2:
+ case 3:
+ return new J6c(b.d, 0, b.a, b.b);
+ default:
+ return null;
+ }
+ }
+ function had(a) {
+ switch (a.g) {
+ case 2:
+ return bad;
+ case 1:
+ return aad;
+ case 4:
+ return _9c;
+ case 3:
+ return dad;
+ default:
+ return cad;
+ }
+ }
+ function Vcd(a) {
+ switch (a.g) {
+ case 1:
+ return Tcd;
+ case 2:
+ return Acd;
+ case 3:
+ return zcd;
+ case 4:
+ return Rcd;
+ default:
+ return Scd;
+ }
+ }
+ function Wcd(a) {
+ switch (a.g) {
+ case 1:
+ return Rcd;
+ case 2:
+ return Tcd;
+ case 3:
+ return Acd;
+ case 4:
+ return zcd;
+ default:
+ return Scd;
+ }
+ }
+ function Xcd(a) {
+ switch (a.g) {
+ case 1:
+ return zcd;
+ case 2:
+ return Rcd;
+ case 3:
+ return Tcd;
+ case 4:
+ return Acd;
+ default:
+ return Scd;
+ }
+ }
+ function DPc(a) {
+ switch (a) {
+ case 0:
+ return new OPc();
+ case 1:
+ return new EPc();
+ case 2:
+ return new JPc();
+ default:
+ throw vbb(new Vdb());
+ }
+ }
+ function Kdb(a, b) {
+ if (a < b) {
+ return -1;
+ }
+ if (a > b) {
+ return 1;
+ }
+ if (a == b) {
+ return a == 0 ? Kdb(1 / a, 1 / b) : 0;
+ }
+ return isNaN(a) ? isNaN(b) ? 0 : 1 : -1;
+ }
+ function f4b(a, b) {
+ Odd(b, "Sort end labels", 1);
+ MAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new q4b()), new s4b()), new u4b());
+ Qdd(b);
+ }
+ function Wxd(a, b, c) {
+ var d, e;
+ if (a.ej()) {
+ e = a.fj();
+ d = sud(a, b, c);
+ a.$i(a.Zi(7, meb(c), d, b, e));
+ return d;
+ } else {
+ return sud(a, b, c);
+ }
+ }
+ function vAd(a, b) {
+ var c, d, e;
+ if (a.d == null) {
+ ++a.e;
+ --a.f;
+ } else {
+ e = b.cd();
+ c = b.Sh();
+ d = (c & Ohe) % a.d.length;
+ KAd(a, d, xAd(a, d, c, e));
+ }
+ }
+ function ZId(a, b) {
+ var c;
+ c = (a.Bb & zte) != 0;
+ b ? a.Bb |= zte : a.Bb &= -1025;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 10, c, b));
+ }
+ function dJd(a, b) {
+ var c;
+ c = (a.Bb & Rje) != 0;
+ b ? a.Bb |= Rje : a.Bb &= -4097;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 12, c, b));
+ }
+ function eJd(a, b) {
+ var c;
+ c = (a.Bb & Cve) != 0;
+ b ? a.Bb |= Cve : a.Bb &= -8193;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 15, c, b));
+ }
+ function fJd(a, b) {
+ var c;
+ c = (a.Bb & Dve) != 0;
+ b ? a.Bb |= Dve : a.Bb &= -2049;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 11, c, b));
+ }
+ function jOb(a, b) {
+ var c;
+ c = Kdb(a.b.c, b.b.c);
+ if (c != 0) {
+ return c;
+ }
+ c = Kdb(a.a.a, b.a.a);
+ if (c != 0) {
+ return c;
+ }
+ return Kdb(a.a.b, b.a.b);
+ }
+ function jqd(a, b) {
+ var c;
+ c = Ohb(a.k, b);
+ if (c == null) {
+ throw vbb(new cqd("Port did not exist in input."));
+ }
+ Yqd(b, c);
+ return null;
+ }
+ function k6d(a) {
+ var b, c;
+ for (c = l6d(bKd(a)).Kc(); c.Ob(); ) {
+ b = GD(c.Pb());
+ if (Dmd(a, b)) {
+ return uFd((tFd(), sFd), b);
+ }
+ }
+ return null;
+ }
+ function n3d(a, b) {
+ var c, d, e, f, g;
+ g = S6d(a.e.Tg(), b);
+ f = 0;
+ c = BD(a.g, 119);
+ for (e = 0; e < a.i; ++e) {
+ d = c[e];
+ g.rl(d.ak()) && ++f;
+ }
+ return f;
+ }
+ function Vsd(a, b, c) {
+ var d, e;
+ d = BD(b.We(a.a), 35);
+ e = BD(c.We(a.a), 35);
+ return d != null && e != null ? Fcb(d, e) : d != null ? -1 : e != null ? 1 : 0;
+ }
+ function ved(a, b, c) {
+ var d, e;
+ if (a.c) {
+ Efd(a.c, b, c);
+ } else {
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 157);
+ ved(d, b, c);
+ }
+ }
+ }
+ function RUb(a, b) {
+ var c, d;
+ for (d = new olb(b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 46);
+ Lkb(a.b.b, c.b);
+ fVb(BD(c.a, 189), BD(c.b, 81));
+ }
+ }
+ function tr(a) {
+ var b, c;
+ c = Kfb(new Ufb(), 91);
+ b = true;
+ while (a.Ob()) {
+ b || (c.a += She, c);
+ b = false;
+ Pfb(c, a.Pb());
+ }
+ return (c.a += "]", c).a;
+ }
+ function aJd(a, b) {
+ var c;
+ c = (a.Bb & oie) != 0;
+ b ? a.Bb |= oie : a.Bb &= -16385;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 16, c, b));
+ }
+ function MJd(a, b) {
+ var c;
+ c = (a.Bb & ote) != 0;
+ b ? a.Bb |= ote : a.Bb &= -32769;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 18, c, b));
+ }
+ function CUd(a, b) {
+ var c;
+ c = (a.Bb & ote) != 0;
+ b ? a.Bb |= ote : a.Bb &= -32769;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 18, c, b));
+ }
+ function EUd(a, b) {
+ var c;
+ c = (a.Bb & Tje) != 0;
+ b ? a.Bb |= Tje : a.Bb &= -65537;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 20, c, b));
+ }
+ function Tee(a) {
+ var b;
+ b = KC(TD, $ie, 25, 2, 15, 1);
+ a -= Tje;
+ b[0] = (a >> 10) + Uje & aje;
+ b[1] = (a & 1023) + 56320 & aje;
+ return zfb(b, 0, b.length);
+ }
+ function a_b(a) {
+ var b, c;
+ c = BD(vNb(a, (Nyc(), Lwc)), 103);
+ if (c == (ead(), cad)) {
+ b = Edb(ED(vNb(a, owc)));
+ return b >= 1 ? bad : _9c;
+ }
+ return c;
+ }
+ function rec(a) {
+ switch (BD(vNb(a, (Nyc(), Swc)), 218).g) {
+ case 1:
+ return new Fmc();
+ case 3:
+ return new wnc();
+ default:
+ return new zmc();
+ }
+ }
+ function Uzb(a) {
+ if (a.c) {
+ Uzb(a.c);
+ } else if (a.d) {
+ throw vbb(new Zdb("Stream already terminated, can't be modified or used"));
+ }
+ }
+ function Mkd(a) {
+ var b;
+ if ((a.Db & 64) != 0)
+ return Eid(a);
+ b = new Jfb(Eid(a));
+ b.a += " (identifier: ";
+ Efb(b, a.k);
+ b.a += ")";
+ return b.a;
+ }
+ function ctd(a, b, c) {
+ var d, e;
+ d = (Fhd(), e = new xkd(), e);
+ vkd(d, b);
+ wkd(d, c);
+ !!a && wtd((!a.a && (a.a = new xMd(y2, a, 5)), a.a), d);
+ return d;
+ }
+ function ttb(a, b, c, d) {
+ var e, f;
+ uCb(d);
+ uCb(c);
+ e = a.xc(b);
+ f = e == null ? c : Myb(BD(e, 15), BD(c, 14));
+ f == null ? a.Bc(b) : a.zc(b, f);
+ return f;
+ }
+ function pqb(a) {
+ var b, c, d, e;
+ c = (b = BD(gdb((d = a.gm, e = d.f, e == CI ? d : e)), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
+ rqb(c, a);
+ return c;
+ }
+ function hDc(a, b, c) {
+ var d, e;
+ for (e = a.a.ec().Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 10);
+ if (Be(c, BD(Ikb(b, d.p), 14))) {
+ return d;
+ }
+ }
+ return null;
+ }
+ function Db(b, c, d) {
+ var e;
+ try {
+ Cb(b, c, d);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 597)) {
+ e = a;
+ throw vbb(new ycb(e));
+ } else
+ throw vbb(a);
+ }
+ return c;
+ }
+ function Qbb(a, b) {
+ var c;
+ if (Fbb(a) && Fbb(b)) {
+ c = a - b;
+ if (Kje < c && c < Ije) {
+ return c;
+ }
+ }
+ return zbb(nD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
+ }
+ function wbb(a, b) {
+ var c;
+ if (Fbb(a) && Fbb(b)) {
+ c = a + b;
+ if (Kje < c && c < Ije) {
+ return c;
+ }
+ }
+ return zbb(cD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
+ }
+ function Ibb(a, b) {
+ var c;
+ if (Fbb(a) && Fbb(b)) {
+ c = a * b;
+ if (Kje < c && c < Ije) {
+ return c;
+ }
+ }
+ return zbb(gD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
+ }
+ function V_b(a, b) {
+ var c;
+ a.i || N_b(a);
+ c = BD(Mpb(a.g, b), 46);
+ return !c ? (mmb(), mmb(), jmb) : new Jib(a.j, BD(c.a, 19).a, BD(c.b, 19).a);
+ }
+ function Drb(a, b, c) {
+ var d;
+ d = a.a.get(b);
+ a.a.set(b, c === void 0 ? null : c);
+ if (d === void 0) {
+ ++a.c;
+ zpb(a.b);
+ } else {
+ ++a.d;
+ }
+ return d;
+ }
+ function kNb(a, b, c) {
+ a.n = IC(XD, [nie, Sje], [364, 25], 14, [c, QD($wnd.Math.ceil(b / 32))], 2);
+ a.o = b;
+ a.p = c;
+ a.j = b - 1 >> 1;
+ a.k = c - 1 >> 1;
+ }
+ function Gub() {
+ zub();
+ var a, b, c;
+ c = yub++ + Date.now();
+ a = QD($wnd.Math.floor(c * lke)) & nke;
+ b = QD(c - a * mke);
+ this.a = a ^ 1502;
+ this.b = b ^ kke;
+ }
+ function O_b(a) {
+ var b, c, d;
+ b = new Rkb();
+ for (d = new olb(a.j); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 11);
+ Ekb(b, c.b);
+ }
+ return Qb(b), new sl(b);
+ }
+ function R_b(a) {
+ var b, c, d;
+ b = new Rkb();
+ for (d = new olb(a.j); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 11);
+ Ekb(b, c.e);
+ }
+ return Qb(b), new sl(b);
+ }
+ function U_b(a) {
+ var b, c, d;
+ b = new Rkb();
+ for (d = new olb(a.j); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 11);
+ Ekb(b, c.g);
+ }
+ return Qb(b), new sl(b);
+ }
+ function n6d(a) {
+ var b, c;
+ for (c = o6d(bKd(WId(a))).Kc(); c.Ob(); ) {
+ b = GD(c.Pb());
+ if (Dmd(a, b))
+ return FFd((EFd(), DFd), b);
+ }
+ return null;
+ }
+ function wm(a) {
+ var b, c, d;
+ for (c = 0, d = a.length; c < d; c++) {
+ if (a[c] == null) {
+ throw vbb(new Heb("at index " + c));
+ }
+ }
+ b = a;
+ return new amb(b);
+ }
+ function wid(a, b) {
+ var c;
+ c = YKd(a.Tg(), b);
+ if (JD(c, 99)) {
+ return BD(c, 18);
+ }
+ throw vbb(new Wdb(ite + b + "' is not a valid reference"));
+ }
+ function Tdb(a) {
+ var b;
+ b = Hcb(a);
+ if (b > 34028234663852886e22) {
+ return Pje;
+ } else if (b < -34028234663852886e22) {
+ return Qje;
+ }
+ return b;
+ }
+ function aeb(a) {
+ a -= a >> 1 & 1431655765;
+ a = (a >> 2 & 858993459) + (a & 858993459);
+ a = (a >> 4) + a & 252645135;
+ a += a >> 8;
+ a += a >> 16;
+ return a & 63;
+ }
+ function Ev(a) {
+ var b, c, d, e;
+ b = new cq(a.Hd().gc());
+ e = 0;
+ for (d = vr(a.Hd().Kc()); d.Ob(); ) {
+ c = d.Pb();
+ bq(b, c, meb(e++));
+ }
+ return fn(b.a);
+ }
+ function Uyb(a, b) {
+ var c, d, e;
+ e = new Lqb();
+ for (d = b.vc().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 42);
+ Rhb(e, c.cd(), Yyb(a, BD(c.dd(), 15)));
+ }
+ return e;
+ }
+ function EZc(a, b) {
+ a.n.c.length == 0 && Ekb(a.n, new VZc(a.s, a.t, a.i));
+ Ekb(a.b, b);
+ QZc(BD(Ikb(a.n, a.n.c.length - 1), 211), b);
+ GZc(a, b);
+ }
+ function LFb(a) {
+ if (a.c != a.b.b || a.i != a.g.b) {
+ a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Gkb(a.a, a.b);
+ Gkb(a.a, a.g);
+ a.c = a.b.b;
+ a.i = a.g.b;
+ }
+ return a.a;
+ }
+ function Ycc(a, b) {
+ var c, d, e;
+ e = 0;
+ for (d = BD(b.Kb(a), 20).Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 17);
+ Ccb(DD(vNb(c, (wtc(), ltc)))) || ++e;
+ }
+ return e;
+ }
+ function efc(a, b) {
+ var c, d, e;
+ d = tgc(b);
+ e = Edb(ED(pBc(d, (Nyc(), lyc))));
+ c = $wnd.Math.max(0, e / 2 - 0.5);
+ cfc(b, c, 1);
+ Ekb(a, new Dfc(b, c));
+ }
+ function Ctc() {
+ Ctc = ccb;
+ Btc = new Dtc(ane, 0);
+ xtc = new Dtc("FIRST", 1);
+ ytc = new Dtc(Gne, 2);
+ ztc = new Dtc("LAST", 3);
+ Atc = new Dtc(Hne, 4);
+ }
+ function Aad() {
+ Aad = ccb;
+ zad = new Bad(ole, 0);
+ xad = new Bad("POLYLINE", 1);
+ wad = new Bad("ORTHOGONAL", 2);
+ yad = new Bad("SPLINES", 3);
+ }
+ function zYc() {
+ zYc = ccb;
+ xYc = new AYc("ASPECT_RATIO_DRIVEN", 0);
+ yYc = new AYc("MAX_SCALE_DRIVEN", 1);
+ wYc = new AYc("AREA_DRIVEN", 2);
+ }
+ function Y$c() {
+ Y$c = ccb;
+ V$c = new Z$c("P1_STRUCTURE", 0);
+ W$c = new Z$c("P2_PROCESSING_ORDER", 1);
+ X$c = new Z$c("P3_EXECUTION", 2);
+ }
+ function tVc() {
+ tVc = ccb;
+ sVc = new uVc("OVERLAP_REMOVAL", 0);
+ qVc = new uVc("COMPACTION", 1);
+ rVc = new uVc("GRAPH_SIZE_CALCULATION", 2);
+ }
+ function Jy(a, b) {
+ Iy();
+ return My(Qie), $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b));
+ }
+ function yOc(a, b) {
+ var c, d;
+ c = Jsb(a, 0);
+ while (c.b != c.d.c) {
+ d = Gdb(ED(Xsb(c)));
+ if (d == b) {
+ return;
+ } else if (d > b) {
+ Ysb(c);
+ break;
+ }
+ }
+ Vsb(c, b);
+ }
+ function t4c(a, b) {
+ var c, d, e, f, g;
+ c = b.f;
+ Xrb(a.c.d, c, b);
+ if (b.g != null) {
+ for (e = b.g, f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ Xrb(a.c.e, d, b);
+ }
+ }
+ }
+ function Ilb(a, b, c, d) {
+ var e, f, g;
+ for (e = b + 1; e < c; ++e) {
+ for (f = e; f > b && d.ue(a[f - 1], a[f]) > 0; --f) {
+ g = a[f];
+ NC(a, f, a[f - 1]);
+ NC(a, f - 1, g);
+ }
+ }
+ }
+ function did(a, b, c, d) {
+ if (b < 0) {
+ uid(a, c, d);
+ } else {
+ if (!c.Ij()) {
+ throw vbb(new Wdb(ite + c.ne() + jte));
+ }
+ BD(c, 66).Nj().Tj(a, a.yh(), b, d);
+ }
+ }
+ function xFb(a, b) {
+ if (b == a.d) {
+ return a.e;
+ } else if (b == a.e) {
+ return a.d;
+ } else {
+ throw vbb(new Wdb("Node " + b + " not part of edge " + a));
+ }
+ }
+ function iEb(a, b) {
+ switch (b.g) {
+ case 2:
+ return a.b;
+ case 1:
+ return a.c;
+ case 4:
+ return a.d;
+ case 3:
+ return a.a;
+ default:
+ return false;
+ }
+ }
+ function GVb(a, b) {
+ switch (b.g) {
+ case 2:
+ return a.b;
+ case 1:
+ return a.c;
+ case 4:
+ return a.d;
+ case 3:
+ return a.a;
+ default:
+ return false;
+ }
+ }
+ function Xkd(a, b, c, d) {
+ switch (b) {
+ case 3:
+ return a.f;
+ case 4:
+ return a.g;
+ case 5:
+ return a.i;
+ case 6:
+ return a.j;
+ }
+ return Ekd(a, b, c, d);
+ }
+ function Ljc(a) {
+ if (a.k != (j0b(), h0b)) {
+ return false;
+ }
+ return FAb(new YAb(null, new Lub(new Sr(ur(U_b(a).a.Kc(), new Sq())))), new Mjc());
+ }
+ function MEd(a) {
+ if (a.e == null) {
+ return a;
+ } else
+ !a.c && (a.c = new NEd((a.f & 256) != 0, a.i, a.a, a.d, (a.f & 16) != 0, a.j, a.g, null));
+ return a.c;
+ }
+ function VC(a, b) {
+ if (a.h == Gje && a.m == 0 && a.l == 0) {
+ b && (QC = TC(0, 0, 0));
+ return SC((wD(), uD));
+ }
+ b && (QC = TC(a.l, a.m, a.h));
+ return TC(0, 0, 0);
+ }
+ function fcb(a) {
+ var b;
+ if (Array.isArray(a) && a.im === gcb) {
+ return hdb(rb(a)) + "@" + (b = tb(a) >>> 0, b.toString(16));
+ }
+ return a.toString();
+ }
+ function Rpb(a) {
+ var b;
+ this.a = (b = BD(a.e && a.e(), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
+ this.b = KC(SI, Uhe, 1, this.a.a.length, 5, 1);
+ }
+ function _Ob(a) {
+ var b, c, d;
+ this.a = new zsb();
+ for (d = new olb(a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 14);
+ b = new MOb();
+ GOb(b, c);
+ Qqb(this.a, b);
+ }
+ }
+ function cKb(a) {
+ $Jb();
+ var b, c, d, e;
+ b = a.o.b;
+ for (d = BD(BD(Qc(a.r, (Ucd(), Rcd)), 21), 84).Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 111);
+ e = c.e;
+ e.b += b;
+ }
+ }
+ function ag(a) {
+ var b;
+ if (a.b) {
+ ag(a.b);
+ if (a.b.d != a.c) {
+ throw vbb(new Apb());
+ }
+ } else if (a.d.dc()) {
+ b = BD(a.f.c.xc(a.e), 14);
+ !!b && (a.d = b);
+ }
+ }
+ function fFd(a) {
+ var b;
+ if (a == null)
+ return true;
+ b = a.length;
+ return b > 0 && (BCb(b - 1, a.length), a.charCodeAt(b - 1) == 58) && !OEd(a, CEd, DEd);
+ }
+ function OEd(a, b, c) {
+ var d, e;
+ for (d = 0, e = a.length; d < e; d++) {
+ if (_Ed((BCb(d, a.length), a.charCodeAt(d)), b, c))
+ return true;
+ }
+ return false;
+ }
+ function JOb(a, b) {
+ var c, d;
+ for (d = a.e.a.ec().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 266);
+ if (t6c(b, c.d) || o6c(b, c.d)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function Q9b(a, b) {
+ var c, d, e;
+ d = N9b(a, b);
+ e = d[d.length - 1] / 2;
+ for (c = 0; c < d.length; c++) {
+ if (d[c] >= e) {
+ return b.c + c;
+ }
+ }
+ return b.c + b.b.gc();
+ }
+ function NCd(a, b) {
+ LCd();
+ var c, d, e, f;
+ d = KLd(a);
+ e = b;
+ Klb(d, 0, d.length, e);
+ for (c = 0; c < d.length; c++) {
+ f = MCd(a, d[c], c);
+ c != f && Wxd(a, c, f);
+ }
+ }
+ function EHb(a, b) {
+ var c, d, e, f, g, h;
+ d = 0;
+ c = 0;
+ for (f = b, g = 0, h = f.length; g < h; ++g) {
+ e = f[g];
+ if (e > 0) {
+ d += e;
+ ++c;
+ }
+ }
+ c > 1 && (d += a.d * (c - 1));
+ return d;
+ }
+ function Htd(a) {
+ var b, c, d;
+ d = new Hfb();
+ d.a += "[";
+ for (b = 0, c = a.gc(); b < c; ) {
+ Efb(d, xfb(a.ki(b)));
+ ++b < c && (d.a += She, d);
+ }
+ d.a += "]";
+ return d.a;
+ }
+ function fsd(a) {
+ var b, c, d, e, f;
+ f = hsd(a);
+ c = Fhe(a.c);
+ d = !c;
+ if (d) {
+ e = new wB();
+ cC(f, "knownLayouters", e);
+ b = new qsd(e);
+ reb(a.c, b);
+ }
+ return f;
+ }
+ function Ce(a, b) {
+ var c, d, e;
+ uCb(b);
+ c = false;
+ for (d = new olb(a); d.a < d.c.c.length; ) {
+ e = mlb(d);
+ if (ze(b, e, false)) {
+ nlb(d);
+ c = true;
+ }
+ }
+ return c;
+ }
+ function UGb(a) {
+ var b, c, d;
+ d = Edb(ED(a.a.We((Y9c(), Q9c))));
+ for (c = new olb(a.a.xf()); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 680);
+ XGb(a, b, d);
+ }
+ }
+ function MUb(a, b) {
+ var c, d;
+ for (d = new olb(b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 46);
+ Ekb(a.b.b, BD(c.b, 81));
+ eVb(BD(c.a, 189), BD(c.b, 81));
+ }
+ }
+ function XCc(a, b, c) {
+ var d, e;
+ e = a.a.b;
+ for (d = e.c.length; d < c; d++) {
+ Dkb(e, 0, new H1b(a.a));
+ }
+ $_b(b, BD(Ikb(e, e.c.length - c), 29));
+ a.b[b.p] = c;
+ }
+ function JTb(a, b, c) {
+ var d;
+ d = c;
+ !d && (d = Ydd(new Zdd(), 0));
+ Odd(d, Vme, 2);
+ qZb(a.b, b, Udd(d, 1));
+ LTb(a, b, Udd(d, 1));
+ _Yb(b, Udd(d, 1));
+ Qdd(d);
+ }
+ function eKc(a, b, c, d, e) {
+ FJc();
+ AFb(DFb(CFb(BFb(EFb(new FFb(), 0), e.d.e - a), b), e.d));
+ AFb(DFb(CFb(BFb(EFb(new FFb(), 0), c - e.a.e), e.a), d));
+ }
+ function e$c(a, b, c, d, e, f) {
+ this.a = a;
+ this.c = b;
+ this.b = c;
+ this.f = d;
+ this.d = e;
+ this.e = f;
+ this.c > 0 && this.b > 0 && q$c(this.c, this.b, this.a);
+ }
+ function ezc(a) {
+ dzc();
+ this.c = Ou(OC(GC(h0, 1), Uhe, 831, 0, [Uyc]));
+ this.b = new Lqb();
+ this.a = a;
+ Rhb(this.b, bzc, 1);
+ Hkb(czc, new Xed(this));
+ }
+ function I2c(a, b) {
+ var c;
+ if (a.d) {
+ if (Mhb(a.b, b)) {
+ return BD(Ohb(a.b, b), 51);
+ } else {
+ c = b.Kf();
+ Rhb(a.b, b, c);
+ return c;
+ }
+ } else {
+ return b.Kf();
+ }
+ }
+ function Kgb(a, b) {
+ var c;
+ if (PD(a) === PD(b)) {
+ return true;
+ }
+ if (JD(b, 91)) {
+ c = BD(b, 91);
+ return a.e == c.e && a.d == c.d && Lgb(a, c.a);
+ }
+ return false;
+ }
+ function Zcd(a) {
+ Ucd();
+ switch (a.g) {
+ case 4:
+ return Acd;
+ case 1:
+ return zcd;
+ case 3:
+ return Rcd;
+ case 2:
+ return Tcd;
+ default:
+ return Scd;
+ }
+ }
+ function Ykd(a, b) {
+ switch (b) {
+ case 3:
+ return a.f != 0;
+ case 4:
+ return a.g != 0;
+ case 5:
+ return a.i != 0;
+ case 6:
+ return a.j != 0;
+ }
+ return Hkd(a, b);
+ }
+ function gWc(a) {
+ switch (a.g) {
+ case 0:
+ return new FXc();
+ case 1:
+ return new IXc();
+ default:
+ throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function QUc(a) {
+ switch (a.g) {
+ case 0:
+ return new CXc();
+ case 1:
+ return new MXc();
+ default:
+ throw vbb(new Wdb(Dne + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function b1c(a) {
+ switch (a.g) {
+ case 0:
+ return new s1c();
+ case 1:
+ return new w1c();
+ default:
+ throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function qWc(a) {
+ switch (a.g) {
+ case 1:
+ return new SVc();
+ case 2:
+ return new KVc();
+ default:
+ throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function ryb(a) {
+ var b, c;
+ if (a.b) {
+ return a.b;
+ }
+ c = lyb ? null : a.d;
+ while (c) {
+ b = lyb ? null : c.b;
+ if (b) {
+ return b;
+ }
+ c = lyb ? null : c.d;
+ }
+ return $xb(), Zxb;
+ }
+ function hhb(a) {
+ var b, c, d;
+ if (a.e == 0) {
+ return 0;
+ }
+ b = a.d << 5;
+ c = a.a[a.d - 1];
+ if (a.e < 0) {
+ d = Mgb(a);
+ if (d == a.d - 1) {
+ --c;
+ c = c | 0;
+ }
+ }
+ b -= heb(c);
+ return b;
+ }
+ function bhb(a) {
+ var b, c, d;
+ if (a < Fgb.length) {
+ return Fgb[a];
+ }
+ c = a >> 5;
+ b = a & 31;
+ d = KC(WD, oje, 25, c + 1, 15, 1);
+ d[c] = 1 << b;
+ return new Vgb(1, c + 1, d);
+ }
+ function O2b(a) {
+ var b, c, d;
+ c = a.zg();
+ if (c) {
+ b = a.Ug();
+ if (JD(b, 160)) {
+ d = O2b(BD(b, 160));
+ if (d != null) {
+ return d + "." + c;
+ }
+ }
+ return c;
+ }
+ return null;
+ }
+ function ze(a, b, c) {
+ var d, e;
+ for (e = a.Kc(); e.Ob(); ) {
+ d = e.Pb();
+ if (PD(b) === PD(d) || b != null && pb(b, d)) {
+ c && e.Qb();
+ return true;
+ }
+ }
+ return false;
+ }
+ function zvd(a, b, c) {
+ var d, e;
+ ++a.j;
+ if (c.dc()) {
+ return false;
+ } else {
+ for (e = c.Kc(); e.Ob(); ) {
+ d = e.Pb();
+ a.Hi(b, a.oi(b, d));
+ ++b;
+ }
+ return true;
+ }
+ }
+ function yA(a, b, c, d) {
+ var e, f;
+ f = c - b;
+ if (f < 3) {
+ while (f < 3) {
+ a *= 10;
+ ++f;
+ }
+ } else {
+ e = 1;
+ while (f > 3) {
+ e *= 10;
+ --f;
+ }
+ a = (a + (e >> 1)) / e | 0;
+ }
+ d.i = a;
+ return true;
+ }
+ function XUb(a) {
+ LUb();
+ return Bcb(), GVb(BD(a.a, 81).j, BD(a.b, 103)) || BD(a.a, 81).d.e != 0 && GVb(BD(a.a, 81).j, BD(a.b, 103)) ? true : false;
+ }
+ function s3c(a) {
+ p3c();
+ if (BD(a.We((Y9c(), b9c)), 174).Hc((Idd(), Gdd))) {
+ BD(a.We(x9c), 174).Fc((rcd(), qcd));
+ BD(a.We(b9c), 174).Mc(Gdd);
+ }
+ }
+ function Gxd(a, b) {
+ var c, d;
+ if (!b) {
+ return false;
+ } else {
+ for (c = 0; c < a.i; ++c) {
+ d = BD(a.g[c], 366);
+ if (d.Di(b)) {
+ return false;
+ }
+ }
+ return wtd(a, b);
+ }
+ }
+ function pvd(a) {
+ var b, c, d, e;
+ b = new wB();
+ for (e = new Dnb(a.b.Kc()); e.b.Ob(); ) {
+ d = BD(e.b.Pb(), 686);
+ c = lsd(d);
+ uB(b, b.a.length, c);
+ }
+ return b.a;
+ }
+ function cLb(a) {
+ var b;
+ !a.c && (a.c = new VKb());
+ Okb(a.d, new jLb());
+ _Kb(a);
+ b = UKb(a);
+ MAb(new YAb(null, new Kub(a.d, 16)), new CLb(a));
+ return b;
+ }
+ function mKd(a) {
+ var b;
+ if ((a.Db & 64) != 0)
+ return qnd(a);
+ b = new Jfb(qnd(a));
+ b.a += " (instanceClassName: ";
+ Efb(b, a.D);
+ b.a += ")";
+ return b.a;
+ }
+ function Pqd(a, b) {
+ var c, d, e, f;
+ if (b) {
+ e = Xpd(b, "x");
+ c = new bsd(a);
+ hmd(c.a, (uCb(e), e));
+ f = Xpd(b, "y");
+ d = new csd(a);
+ imd(d.a, (uCb(f), f));
+ }
+ }
+ function Eqd(a, b) {
+ var c, d, e, f;
+ if (b) {
+ e = Xpd(b, "x");
+ c = new Yrd(a);
+ omd(c.a, (uCb(e), e));
+ f = Xpd(b, "y");
+ d = new _rd(a);
+ pmd(d.a, (uCb(f), f));
+ }
+ }
+ function bLd(a, b) {
+ var c, d, e;
+ c = (a.i == null && TKd(a), a.i);
+ d = b.aj();
+ if (d != -1) {
+ for (e = c.length; d < e; ++d) {
+ if (c[d] == b) {
+ return d;
+ }
+ }
+ }
+ return -1;
+ }
+ function tNd(a) {
+ var b, c, d, e, f;
+ c = BD(a.g, 674);
+ for (d = a.i - 1; d >= 0; --d) {
+ b = c[d];
+ for (e = 0; e < d; ++e) {
+ f = c[e];
+ if (uNd(a, b, f)) {
+ tud(a, d);
+ break;
+ }
+ }
+ }
+ }
+ function jCb(b) {
+ var c = b.e;
+ function d(a) {
+ if (!a || a.length == 0) {
+ return "";
+ }
+ return " " + a.join("\n ");
+ }
+ return c && (c.stack || d(b[Yie]));
+ }
+ function nm(a) {
+ im();
+ var b;
+ b = a.Pc();
+ switch (b.length) {
+ case 0:
+ return hm;
+ case 1:
+ return new my(Qb(b[0]));
+ default:
+ return new ux(wm(b));
+ }
+ }
+ function W_b(a, b) {
+ switch (b.g) {
+ case 1:
+ return Nq(a.j, (z0b(), u0b));
+ case 2:
+ return Nq(a.j, (z0b(), w0b));
+ default:
+ return mmb(), mmb(), jmb;
+ }
+ }
+ function $kd(a, b) {
+ switch (b) {
+ case 3:
+ ald(a, 0);
+ return;
+ case 4:
+ cld(a, 0);
+ return;
+ case 5:
+ dld(a, 0);
+ return;
+ case 6:
+ eld(a, 0);
+ return;
+ }
+ Jkd(a, b);
+ }
+ function dzc() {
+ dzc = ccb;
+ Vyc();
+ bzc = (Nyc(), vyc);
+ czc = Ou(OC(GC(Q3, 1), zqe, 146, 0, [kyc, lyc, nyc, oyc, ryc, syc, tyc, uyc, xyc, zyc, myc, pyc, wyc]));
+ }
+ function Y9b(a) {
+ var b, c;
+ b = a.d == (Apc(), vpc);
+ c = U9b(a);
+ b && !c || !b && c ? yNb(a.a, (Nyc(), mwc), (F7c(), D7c)) : yNb(a.a, (Nyc(), mwc), (F7c(), C7c));
+ }
+ function XAb(a, b) {
+ var c;
+ c = BD(GAb(a, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
+ return c.Qc(aBb(c.gc()));
+ }
+ function Ded() {
+ Ded = ccb;
+ Ced = new Eed("SIMPLE", 0);
+ zed = new Eed("GROUP_DEC", 1);
+ Bed = new Eed("GROUP_MIXED", 2);
+ Aed = new Eed("GROUP_INC", 3);
+ }
+ function CWd() {
+ CWd = ccb;
+ AWd = new DWd();
+ tWd = new GWd();
+ uWd = new JWd();
+ vWd = new MWd();
+ wWd = new PWd();
+ xWd = new SWd();
+ yWd = new VWd();
+ zWd = new YWd();
+ BWd = new _Wd();
+ }
+ function FHb(a, b, c) {
+ tHb();
+ oHb.call(this);
+ this.a = IC(oN, [nie, ile], [595, 212], 0, [sHb, rHb], 2);
+ this.c = new I6c();
+ this.g = a;
+ this.f = b;
+ this.d = c;
+ }
+ function pNb(a, b) {
+ this.n = IC(XD, [nie, Sje], [364, 25], 14, [b, QD($wnd.Math.ceil(a / 32))], 2);
+ this.o = a;
+ this.p = b;
+ this.j = a - 1 >> 1;
+ this.k = b - 1 >> 1;
+ }
+ function r3b(a, b) {
+ Odd(b, "End label post-processing", 1);
+ MAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new w3b()), new y3b()), new A3b());
+ Qdd(b);
+ }
+ function NLc(a, b, c) {
+ var d, e;
+ d = Edb(a.p[b.i.p]) + Edb(a.d[b.i.p]) + b.n.b + b.a.b;
+ e = Edb(a.p[c.i.p]) + Edb(a.d[c.i.p]) + c.n.b + c.a.b;
+ return e - d;
+ }
+ function xhb(a, b, c) {
+ var d, e;
+ d = xbb(c, Yje);
+ for (e = 0; ybb(d, 0) != 0 && e < b; e++) {
+ d = wbb(d, xbb(a[e], Yje));
+ a[e] = Tbb(d);
+ d = Obb(d, 32);
+ }
+ return Tbb(d);
+ }
+ function $Ed(a) {
+ var b, c, d, e;
+ e = 0;
+ for (c = 0, d = a.length; c < d; c++) {
+ b = (BCb(c, a.length), a.charCodeAt(c));
+ b < 64 && (e = Mbb(e, Nbb(1, b)));
+ }
+ return e;
+ }
+ function S9d(a) {
+ var b;
+ return a == null ? null : new Ygb((b = Qge(a, true), b.length > 0 && (BCb(0, b.length), b.charCodeAt(0) == 43) ? b.substr(1) : b));
+ }
+ function T9d(a) {
+ var b;
+ return a == null ? null : new Ygb((b = Qge(a, true), b.length > 0 && (BCb(0, b.length), b.charCodeAt(0) == 43) ? b.substr(1) : b));
+ }
+ function xud(a, b) {
+ var c;
+ if (a.i > 0) {
+ if (b.length < a.i) {
+ c = izd(rb(b).c, a.i);
+ b = c;
+ }
+ $fb(a.g, 0, b, 0, a.i);
+ }
+ b.length > a.i && NC(b, a.i, null);
+ return b;
+ }
+ function Sxd(a, b, c) {
+ var d, e, f;
+ if (a.ej()) {
+ d = a.i;
+ f = a.fj();
+ kud(a, d, b);
+ e = a.Zi(3, null, b, d, f);
+ !c ? c = e : c.Ei(e);
+ } else {
+ kud(a, a.i, b);
+ }
+ return c;
+ }
+ function HMd(a, b, c) {
+ var d, e;
+ d = new pSd(a.e, 4, 10, (e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)), null, HLd(a, b), false);
+ !c ? c = d : c.Ei(d);
+ return c;
+ }
+ function GMd(a, b, c) {
+ var d, e;
+ d = new pSd(a.e, 3, 10, null, (e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)), HLd(a, b), false);
+ !c ? c = d : c.Ei(d);
+ return c;
+ }
+ function _Jb(a) {
+ $Jb();
+ var b;
+ b = new g7c(BD(a.e.We((Y9c(), _8c)), 8));
+ if (a.B.Hc((Idd(), Bdd))) {
+ b.a <= 0 && (b.a = 20);
+ b.b <= 0 && (b.b = 20);
+ }
+ return b;
+ }
+ function Lzc(a) {
+ Izc();
+ var b;
+ (!a.q ? (mmb(), mmb(), kmb) : a.q)._b((Nyc(), Cxc)) ? b = BD(vNb(a, Cxc), 197) : b = BD(vNb(Q_b(a), Dxc), 197);
+ return b;
+ }
+ function pBc(a, b) {
+ var c, d;
+ d = null;
+ if (wNb(a, (Nyc(), qyc))) {
+ c = BD(vNb(a, qyc), 94);
+ c.Xe(b) && (d = c.We(b));
+ }
+ d == null && (d = vNb(Q_b(a), b));
+ return d;
+ }
+ function Ze(a, b) {
+ var c, d, e;
+ if (JD(b, 42)) {
+ c = BD(b, 42);
+ d = c.cd();
+ e = Hv(a.Rc(), d);
+ return Hb(e, c.dd()) && (e != null || a.Rc()._b(d));
+ }
+ return false;
+ }
+ function qAd(a, b) {
+ var c, d, e;
+ if (a.f > 0) {
+ a.qj();
+ d = b == null ? 0 : tb(b);
+ e = (d & Ohe) % a.d.length;
+ c = xAd(a, e, d, b);
+ return c != -1;
+ } else {
+ return false;
+ }
+ }
+ function AAd(a, b) {
+ var c, d, e;
+ if (a.f > 0) {
+ a.qj();
+ d = b == null ? 0 : tb(b);
+ e = (d & Ohe) % a.d.length;
+ c = wAd(a, e, d, b);
+ if (c) {
+ return c.dd();
+ }
+ }
+ return null;
+ }
+ function R2d(a, b) {
+ var c, d, e, f;
+ f = S6d(a.e.Tg(), b);
+ c = BD(a.g, 119);
+ for (e = 0; e < a.i; ++e) {
+ d = c[e];
+ if (f.rl(d.ak())) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function B6d(a) {
+ if (a.b == null) {
+ while (a.a.Ob()) {
+ a.b = a.a.Pb();
+ if (!BD(a.b, 49).Zg()) {
+ return true;
+ }
+ }
+ a.b = null;
+ return false;
+ } else {
+ return true;
+ }
+ }
+ function Myd(b, c) {
+ b.mj();
+ try {
+ b.d.Vc(b.e++, c);
+ b.f = b.d.j;
+ b.g = -1;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ throw vbb(new Apb());
+ } else
+ throw vbb(a);
+ }
+ }
+ function IA(a, b) {
+ GA();
+ var c, d;
+ c = LA((KA(), KA(), JA));
+ d = null;
+ b == c && (d = BD(Phb(FA, a), 615));
+ if (!d) {
+ d = new HA(a);
+ b == c && Shb(FA, a, d);
+ }
+ return d;
+ }
+ function Epb(a, b) {
+ var c, d;
+ a.a = wbb(a.a, 1);
+ a.c = $wnd.Math.min(a.c, b);
+ a.b = $wnd.Math.max(a.b, b);
+ a.d += b;
+ c = b - a.f;
+ d = a.e + c;
+ a.f = d - a.e - c;
+ a.e = d;
+ }
+ function ogb(a, b) {
+ var c;
+ a.c = b;
+ a.a = hhb(b);
+ a.a < 54 && (a.f = (c = b.d > 1 ? Mbb(Nbb(b.a[1], 32), xbb(b.a[0], Yje)) : xbb(b.a[0], Yje), Sbb(Ibb(b.e, c))));
+ }
+ function Hbb(a, b) {
+ var c;
+ if (Fbb(a) && Fbb(b)) {
+ c = a % b;
+ if (Kje < c && c < Ije) {
+ return c;
+ }
+ }
+ return zbb((UC(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b, true), QC));
+ }
+ function p5b(a, b) {
+ var c;
+ m5b(b);
+ c = BD(vNb(a, (Nyc(), Rwc)), 276);
+ !!c && yNb(a, Rwc, Tqc(c));
+ n5b(a.c);
+ n5b(a.f);
+ o5b(a.d);
+ o5b(BD(vNb(a, wxc), 207));
+ }
+ function rHc(a) {
+ this.e = KC(WD, oje, 25, a.length, 15, 1);
+ this.c = KC(sbb, dle, 25, a.length, 16, 1);
+ this.b = KC(sbb, dle, 25, a.length, 16, 1);
+ this.f = 0;
+ }
+ function BDc(a) {
+ var b, c;
+ a.j = KC(UD, Vje, 25, a.p.c.length, 15, 1);
+ for (c = new olb(a.p); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 10);
+ a.j[b.p] = b.o.b / a.i;
+ }
+ }
+ function yic(a) {
+ var b;
+ if (a.c == 0) {
+ return;
+ }
+ b = BD(Ikb(a.a, a.b), 287);
+ b.b == 1 ? (++a.b, a.b < a.a.c.length && Cic(BD(Ikb(a.a, a.b), 287))) : --b.b;
+ --a.c;
+ }
+ function eac(a) {
+ var b;
+ b = a.a;
+ do {
+ b = BD(Rr(new Sr(ur(U_b(b).a.Kc(), new Sq()))), 17).d.i;
+ b.k == (j0b(), g0b) && Ekb(a.e, b);
+ } while (b.k == (j0b(), g0b));
+ }
+ function idd() {
+ idd = ccb;
+ fdd = new q0b(15);
+ edd = new Osd((Y9c(), f9c), fdd);
+ hdd = new Osd(T9c, 15);
+ gdd = new Osd(E9c, meb(0));
+ ddd = new Osd(r8c, tme);
+ }
+ function tdd() {
+ tdd = ccb;
+ rdd = new udd("PORTS", 0);
+ sdd = new udd("PORT_LABELS", 1);
+ qdd = new udd("NODE_LABELS", 2);
+ pdd = new udd("MINIMUM_SIZE", 3);
+ }
+ function Ree(a, b) {
+ var c, d;
+ d = b.length;
+ for (c = 0; c < d; c += 2)
+ Ufe(a, (BCb(c, b.length), b.charCodeAt(c)), (BCb(c + 1, b.length), b.charCodeAt(c + 1)));
+ }
+ function _Zc(a, b, c) {
+ var d, e, f, g;
+ f = b - a.e;
+ g = c - a.f;
+ for (e = new olb(a.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 187);
+ OZc(d, d.s + f, d.t + g);
+ }
+ a.e = b;
+ a.f = c;
+ }
+ function jUc(a, b) {
+ var c, d, e, f;
+ f = b.b.b;
+ a.a = new Psb();
+ a.b = KC(WD, oje, 25, f, 15, 1);
+ c = 0;
+ for (e = Jsb(b.b, 0); e.b != e.d.c; ) {
+ d = BD(Xsb(e), 86);
+ d.g = c++;
+ }
+ }
+ function ihb(a, b) {
+ var c, d, e, f;
+ c = b >> 5;
+ b &= 31;
+ e = a.d + c + (b == 0 ? 0 : 1);
+ d = KC(WD, oje, 25, e, 15, 1);
+ jhb(d, a.a, c, b);
+ f = new Vgb(a.e, e, d);
+ Jgb(f);
+ return f;
+ }
+ function Ofe(a, b, c) {
+ var d, e;
+ d = BD(Phb(Zee, b), 117);
+ e = BD(Phb($ee, b), 117);
+ if (c) {
+ Shb(Zee, a, d);
+ Shb($ee, a, e);
+ } else {
+ Shb($ee, a, d);
+ Shb(Zee, a, e);
+ }
+ }
+ function Cwb(a, b, c) {
+ var d, e, f;
+ e = null;
+ f = a.b;
+ while (f) {
+ d = a.a.ue(b, f.d);
+ if (c && d == 0) {
+ return f;
+ }
+ if (d >= 0) {
+ f = f.a[1];
+ } else {
+ e = f;
+ f = f.a[0];
+ }
+ }
+ return e;
+ }
+ function Dwb(a, b, c) {
+ var d, e, f;
+ e = null;
+ f = a.b;
+ while (f) {
+ d = a.a.ue(b, f.d);
+ if (c && d == 0) {
+ return f;
+ }
+ if (d <= 0) {
+ f = f.a[0];
+ } else {
+ e = f;
+ f = f.a[1];
+ }
+ }
+ return e;
+ }
+ function Nic(a, b, c, d) {
+ var e, f, g;
+ e = false;
+ if (fjc(a.f, c, d)) {
+ ijc(a.f, a.a[b][c], a.a[b][d]);
+ f = a.a[b];
+ g = f[d];
+ f[d] = f[c];
+ f[c] = g;
+ e = true;
+ }
+ return e;
+ }
+ function QHc(a, b, c, d, e) {
+ var f, g, h;
+ g = e;
+ while (b.b != b.c) {
+ f = BD(fkb(b), 10);
+ h = BD(V_b(f, d).Xb(0), 11);
+ a.d[h.p] = g++;
+ c.c[c.c.length] = h;
+ }
+ return g;
+ }
+ function hBc(a, b, c) {
+ var d, e, f, g, h;
+ g = a.k;
+ h = b.k;
+ d = c[g.g][h.g];
+ e = ED(pBc(a, d));
+ f = ED(pBc(b, d));
+ return $wnd.Math.max((uCb(e), e), (uCb(f), f));
+ }
+ function zZc(a, b, c) {
+ var d, e, f, g;
+ d = c / a.c.length;
+ e = 0;
+ for (g = new olb(a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 200);
+ w$c(f, f.f + d * e);
+ t$c(f, b, d);
+ ++e;
+ }
+ }
+ function hnc(a, b, c) {
+ var d, e, f, g;
+ e = BD(Ohb(a.b, c), 177);
+ d = 0;
+ for (g = new olb(b.j); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 113);
+ e[f.d.p] && ++d;
+ }
+ return d;
+ }
+ function mzd(a) {
+ var b, c;
+ b = BD(Ajd(a.a, 4), 126);
+ if (b != null) {
+ c = KC($3, hve, 415, b.length, 0, 1);
+ $fb(b, 0, c, 0, b.length);
+ return c;
+ } else {
+ return jzd;
+ }
+ }
+ function Cz() {
+ var a;
+ if (xz != 0) {
+ a = sz();
+ if (a - yz > 2e3) {
+ yz = a;
+ zz = $wnd.setTimeout(Iz, 10);
+ }
+ }
+ if (xz++ == 0) {
+ Lz((Kz(), Jz));
+ return true;
+ }
+ return false;
+ }
+ function wCc(a, b) {
+ var c, d, e;
+ for (d = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ e = c.d.i;
+ if (e.c == b) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function Ek(b, c) {
+ var d, e;
+ if (JD(c, 245)) {
+ e = BD(c, 245);
+ try {
+ d = b.vd(e);
+ return d == 0;
+ } catch (a) {
+ a = ubb(a);
+ if (!JD(a, 205))
+ throw vbb(a);
+ }
+ }
+ return false;
+ }
+ function Xz() {
+ if (Error.stackTraceLimit > 0) {
+ $wnd.Error.stackTraceLimit = Error.stackTraceLimit = 64;
+ return true;
+ }
+ return "stack" in new Error();
+ }
+ function BDb(a, b) {
+ return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) > 0;
+ }
+ function DDb(a, b) {
+ return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) < 0;
+ }
+ function CDb(a, b) {
+ return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) <= 0;
+ }
+ function ydb(a, b) {
+ var c = 0;
+ while (!b[c] || b[c] == "") {
+ c++;
+ }
+ var d = b[c++];
+ for (; c < b.length; c++) {
+ if (!b[c] || b[c] == "") {
+ continue;
+ }
+ d += a + b[c];
+ }
+ return d;
+ }
+ function zfb(a, b, c) {
+ var d, e, f, g;
+ f = b + c;
+ ACb(b, f, a.length);
+ g = "";
+ for (e = b; e < f; ) {
+ d = $wnd.Math.min(e + 1e4, f);
+ g += vfb(a.slice(e, d));
+ e = d;
+ }
+ return g;
+ }
+ function N9d(a) {
+ var b, c, d, e, f;
+ if (a == null)
+ return null;
+ f = new Rkb();
+ for (c = Zmd(a), d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ Ekb(f, Qge(b, true));
+ }
+ return f;
+ }
+ function Q9d(a) {
+ var b, c, d, e, f;
+ if (a == null)
+ return null;
+ f = new Rkb();
+ for (c = Zmd(a), d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ Ekb(f, Qge(b, true));
+ }
+ return f;
+ }
+ function R9d(a) {
+ var b, c, d, e, f;
+ if (a == null)
+ return null;
+ f = new Rkb();
+ for (c = Zmd(a), d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ Ekb(f, Qge(b, true));
+ }
+ return f;
+ }
+ function ted(a, b) {
+ var c, d, e;
+ if (a.c) {
+ cld(a.c, b);
+ } else {
+ c = b - red(a);
+ for (e = new olb(a.d); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 157);
+ ted(d, red(d) + c);
+ }
+ }
+ }
+ function sed(a, b) {
+ var c, d, e;
+ if (a.c) {
+ ald(a.c, b);
+ } else {
+ c = b - qed(a);
+ for (e = new olb(a.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 157);
+ sed(d, qed(d) + c);
+ }
+ }
+ }
+ function t6d(a, b) {
+ var c, d, e, f;
+ e = new Skb(b.gc());
+ for (d = b.Kc(); d.Ob(); ) {
+ c = d.Pb();
+ f = s6d(a, BD(c, 56));
+ !!f && (e.c[e.c.length] = f, true);
+ }
+ return e;
+ }
+ function LAd(a, b) {
+ var c, d, e;
+ a.qj();
+ d = b == null ? 0 : tb(b);
+ e = (d & Ohe) % a.d.length;
+ c = wAd(a, e, d, b);
+ if (c) {
+ JAd(a, c);
+ return c.dd();
+ } else {
+ return null;
+ }
+ }
+ function rde(a) {
+ var b, c;
+ c = sde(a);
+ b = null;
+ while (a.c == 2) {
+ nde(a);
+ if (!b) {
+ b = (wfe(), wfe(), new Lge(2));
+ Kge(b, c);
+ c = b;
+ }
+ c.$l(sde(a));
+ }
+ return c;
+ }
+ function Wpd(a) {
+ var b, c, d;
+ d = null;
+ b = Vte in a.a;
+ c = !b;
+ if (c) {
+ throw vbb(new cqd("Every element must have an id."));
+ }
+ d = Vpd(aC(a, Vte));
+ return d;
+ }
+ function jid(a) {
+ var b, c, d;
+ d = a.Zg();
+ if (!d) {
+ b = 0;
+ for (c = a.eh(); c; c = c.eh()) {
+ if (++b > Wje) {
+ return c.fh();
+ }
+ d = c.Zg();
+ if (!!d || c == a) {
+ break;
+ }
+ }
+ }
+ return d;
+ }
+ function fvd(a) {
+ evd();
+ if (JD(a, 156)) {
+ return BD(Ohb(cvd, hK), 288).vg(a);
+ }
+ if (Mhb(cvd, rb(a))) {
+ return BD(Ohb(cvd, rb(a)), 288).vg(a);
+ }
+ return null;
+ }
+ function fZd(a) {
+ if (efb(kse, a)) {
+ return Bcb(), Acb;
+ } else if (efb(lse, a)) {
+ return Bcb(), zcb;
+ } else {
+ throw vbb(new Wdb("Expecting true or false"));
+ }
+ }
+ function uDc(a, b) {
+ if (b.c == a) {
+ return b.d;
+ } else if (b.d == a) {
+ return b.c;
+ }
+ throw vbb(new Wdb("Input edge is not connected to the input port."));
+ }
+ function Igb(a, b) {
+ if (a.e > b.e) {
+ return 1;
+ }
+ if (a.e < b.e) {
+ return -1;
+ }
+ if (a.d > b.d) {
+ return a.e;
+ }
+ if (a.d < b.d) {
+ return -b.e;
+ }
+ return a.e * whb(a.a, b.a, a.d);
+ }
+ function Zcb(a) {
+ if (a >= 48 && a < 48 + $wnd.Math.min(10, 10)) {
+ return a - 48;
+ }
+ if (a >= 97 && a < 97) {
+ return a - 97 + 10;
+ }
+ if (a >= 65 && a < 65) {
+ return a - 65 + 10;
+ }
+ return -1;
+ }
+ function Ue(a, b) {
+ var c;
+ if (PD(b) === PD(a)) {
+ return true;
+ }
+ if (!JD(b, 21)) {
+ return false;
+ }
+ c = BD(b, 21);
+ if (c.gc() != a.gc()) {
+ return false;
+ }
+ return a.Ic(c);
+ }
+ function ekb(a, b) {
+ var c, d, e, f;
+ d = a.a.length - 1;
+ c = b - a.b & d;
+ f = a.c - b & d;
+ e = a.c - a.b & d;
+ mkb(c < e);
+ if (c >= f) {
+ hkb(a, b);
+ return -1;
+ } else {
+ ikb(a, b);
+ return 1;
+ }
+ }
+ function lA(a, b) {
+ var c, d;
+ c = (BCb(b, a.length), a.charCodeAt(b));
+ d = b + 1;
+ while (d < a.length && (BCb(d, a.length), a.charCodeAt(d) == c)) {
+ ++d;
+ }
+ return d - b;
+ }
+ function sJb(a) {
+ switch (a.g) {
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ case 17:
+ case 18:
+ case 19:
+ case 20:
+ return true;
+ default:
+ return false;
+ }
+ }
+ function bC(f, a) {
+ var b = f.a;
+ var c;
+ a = String(a);
+ b.hasOwnProperty(a) && (c = b[a]);
+ var d = (rC(), qC)[typeof c];
+ var e = d ? d(c) : xC(typeof c);
+ return e;
+ }
+ function b3c(a, b) {
+ if (a.a < 0) {
+ throw vbb(new Zdb("Did not call before(...) or after(...) before calling add(...)."));
+ }
+ i3c(a, a.a, b);
+ return a;
+ }
+ function VOc(a, b, c, d) {
+ var e, f;
+ if (b.c.length == 0) {
+ return;
+ }
+ e = ROc(c, d);
+ f = QOc(b);
+ MAb(VAb(new YAb(null, new Kub(f, 1)), new cPc()), new gPc(a, c, e, d));
+ }
+ function Cjd(a, b, c) {
+ var d;
+ if ((a.Db & b) != 0) {
+ if (c == null) {
+ Bjd(a, b);
+ } else {
+ d = zjd(a, b);
+ d == -1 ? a.Eb = c : NC(CD(a.Eb), d, c);
+ }
+ } else
+ c != null && vjd(a, b, c);
+ }
+ function yjd(a) {
+ var b, c;
+ if ((a.Db & 32) == 0) {
+ c = (b = BD(Ajd(a, 16), 26), aLd(!b ? a.zh() : b) - aLd(a.zh()));
+ c != 0 && Cjd(a, 32, KC(SI, Uhe, 1, c, 5, 1));
+ }
+ return a;
+ }
+ function W1d(a) {
+ var b;
+ a.b || X1d(a, (b = h1d(a.e, a.a), !b || !dfb(lse, AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "qualified"))));
+ return a.c;
+ }
+ function dTd(a, b, c) {
+ var d, e, f;
+ d = BD(qud(QSd(a.a), b), 87);
+ f = (e = d.c, e ? e : (jGd(), YFd));
+ (f.kh() ? xid(a.b, BD(f, 49)) : f) == c ? KQd(d) : NQd(d, c);
+ return f;
+ }
+ function fCb(a, b) {
+ (!b && console.groupCollapsed != null ? console.groupCollapsed : console.group != null ? console.group : console.log).call(console, a);
+ }
+ function NNb(a, b, c, d) {
+ d == a ? (BD(c.b, 65), BD(c.b, 65), BD(d.b, 65), BD(d.b, 65).c.b) : (BD(c.b, 65), BD(c.b, 65), BD(d.b, 65), BD(d.b, 65).c.b);
+ KNb(d, b, a);
+ }
+ function EOb(a) {
+ var c, d;
+ for (c = new olb(a.g); c.a < c.c.c.length; ) {
+ BD(mlb(c), 562);
+ }
+ d = new ENb(a.g, Edb(a.a), a.c);
+ ELb(d);
+ a.g = d.b;
+ a.d = d.a;
+ }
+ function ymc(a, b, c) {
+ b.b = $wnd.Math.max(b.b, -c.a);
+ b.c = $wnd.Math.max(b.c, c.a - a.a);
+ b.d = $wnd.Math.max(b.d, -c.b);
+ b.a = $wnd.Math.max(b.a, c.b - a.b);
+ }
+ function MIc(a, b) {
+ if (a.e < b.e) {
+ return -1;
+ } else if (a.e > b.e) {
+ return 1;
+ } else if (a.f < b.f) {
+ return -1;
+ } else if (a.f > b.f) {
+ return 1;
+ }
+ return tb(a) - tb(b);
+ }
+ function efb(a, b) {
+ uCb(a);
+ if (b == null) {
+ return false;
+ }
+ if (dfb(a, b)) {
+ return true;
+ }
+ return a.length == b.length && dfb(a.toLowerCase(), b.toLowerCase());
+ }
+ function x6d(a, b) {
+ var c, d, e, f;
+ for (d = 0, e = b.gc(); d < e; ++d) {
+ c = b.il(d);
+ if (JD(c, 99) && (BD(c, 18).Bb & ote) != 0) {
+ f = b.jl(d);
+ f != null && s6d(a, BD(f, 56));
+ }
+ }
+ }
+ function p1c(a, b, c) {
+ var d, e, f;
+ for (f = new olb(c.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 221);
+ d = new hDb(BD(Ohb(a.a, e.b), 65));
+ Ekb(b.a, d);
+ p1c(a, d, e);
+ }
+ }
+ function Aeb(a) {
+ var b, c;
+ if (ybb(a, -129) > 0 && ybb(a, 128) < 0) {
+ b = Tbb(a) + 128;
+ c = (Ceb(), Beb)[b];
+ !c && (c = Beb[b] = new teb(a));
+ return c;
+ }
+ return new teb(a);
+ }
+ function _0d(a, b) {
+ var c, d;
+ c = b.Hh(a.a);
+ if (c) {
+ d = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), fue));
+ if (d != null) {
+ return d;
+ }
+ }
+ return b.ne();
+ }
+ function a1d(a, b) {
+ var c, d;
+ c = b.Hh(a.a);
+ if (c) {
+ d = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), fue));
+ if (d != null) {
+ return d;
+ }
+ }
+ return b.ne();
+ }
+ function FMc(a, b) {
+ wMc();
+ var c, d;
+ for (d = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ if (c.d.i == b || c.c.i == b) {
+ return c;
+ }
+ }
+ return null;
+ }
+ function HUb(a, b, c) {
+ this.c = a;
+ this.f = new Rkb();
+ this.e = new d7c();
+ this.j = new IVb();
+ this.n = new IVb();
+ this.b = b;
+ this.g = new J6c(b.c, b.d, b.b, b.a);
+ this.a = c;
+ }
+ function gVb(a) {
+ var b, c, d, e;
+ this.a = new zsb();
+ this.d = new Tqb();
+ this.e = 0;
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ !this.f && (this.f = b);
+ eVb(this, b);
+ }
+ }
+ function Xgb(a) {
+ Hgb();
+ if (a.length == 0) {
+ this.e = 0;
+ this.d = 1;
+ this.a = OC(GC(WD, 1), oje, 25, 15, [0]);
+ } else {
+ this.e = 1;
+ this.d = a.length;
+ this.a = a;
+ Jgb(this);
+ }
+ }
+ function mIb(a, b, c) {
+ oHb.call(this);
+ this.a = KC(oN, ile, 212, (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])).length, 0, 1);
+ this.b = a;
+ this.d = b;
+ this.c = c;
+ }
+ function Kjc(a) {
+ this.d = new Rkb();
+ this.e = new $rb();
+ this.c = KC(WD, oje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1);
+ this.b = a;
+ }
+ function Vbc(a) {
+ var b, c, d, e, f, g;
+ g = BD(vNb(a, (wtc(), $sc)), 11);
+ yNb(g, qtc, a.i.n.b);
+ b = k_b(a.e);
+ for (d = b, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ RZb(c, g);
+ }
+ }
+ function Wbc(a) {
+ var b, c, d, e, f, g;
+ c = BD(vNb(a, (wtc(), $sc)), 11);
+ yNb(c, qtc, a.i.n.b);
+ b = k_b(a.g);
+ for (e = b, f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ QZb(d, c);
+ }
+ }
+ function vcc(a) {
+ var b, c;
+ if (wNb(a.d.i, (Nyc(), Nxc))) {
+ b = BD(vNb(a.c.i, Nxc), 19);
+ c = BD(vNb(a.d.i, Nxc), 19);
+ return beb(b.a, c.a) > 0;
+ } else {
+ return false;
+ }
+ }
+ function q2c(a) {
+ var b;
+ if (PD(hkd(a, (Y9c(), J8c))) === PD((hbd(), fbd))) {
+ if (!Xod(a)) {
+ jkd(a, J8c, gbd);
+ } else {
+ b = BD(hkd(Xod(a), J8c), 334);
+ jkd(a, J8c, b);
+ }
+ }
+ }
+ function ijc(a, b, c) {
+ var d, e;
+ bIc(a.e, b, c, (Ucd(), Tcd));
+ bIc(a.i, b, c, zcd);
+ if (a.a) {
+ e = BD(vNb(b, (wtc(), $sc)), 11);
+ d = BD(vNb(c, $sc), 11);
+ cIc(a.g, e, d);
+ }
+ }
+ function OEc(a, b, c) {
+ var d, e, f;
+ d = b.c.p;
+ f = b.p;
+ a.b[d][f] = new $Ec(a, b);
+ if (c) {
+ a.a[d][f] = new FEc(b);
+ e = BD(vNb(b, (wtc(), Psc)), 10);
+ !!e && Rc(a.d, e, b);
+ }
+ }
+ function TPb(a, b) {
+ var c, d, e;
+ Ekb(PPb, a);
+ b.Fc(a);
+ c = BD(Ohb(OPb, a), 21);
+ if (c) {
+ for (e = c.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 33);
+ Jkb(PPb, d, 0) != -1 || TPb(d, b);
+ }
+ }
+ }
+ function tyb(a, b, c) {
+ var d;
+ (jyb ? (ryb(a), true) : kyb ? ($xb(), true) : nyb ? ($xb(), true) : myb && ($xb(), false)) && (d = new iyb(b), d.b = c, pyb(a, d), void 0);
+ }
+ function xKb(a, b) {
+ var c;
+ c = !a.A.Hc((tdd(), sdd)) || a.q == (dcd(), $bd);
+ a.u.Hc((rcd(), ncd)) ? c ? vKb(a, b) : zKb(a, b) : a.u.Hc(pcd) && (c ? wKb(a, b) : AKb(a, b));
+ }
+ function b0d(a, b) {
+ var c, d;
+ ++a.j;
+ if (b != null) {
+ c = (d = a.a.Cb, JD(d, 97) ? BD(d, 97).Jg() : null);
+ if (xlb(b, c)) {
+ Cjd(a.a, 4, c);
+ return;
+ }
+ }
+ Cjd(a.a, 4, BD(b, 126));
+ }
+ function dYb(a, b, c) {
+ return new J6c($wnd.Math.min(a.a, b.a) - c / 2, $wnd.Math.min(a.b, b.b) - c / 2, $wnd.Math.abs(a.a - b.a) + c, $wnd.Math.abs(a.b - b.b) + c);
+ }
+ function k4b(a, b) {
+ var c, d;
+ c = beb(a.a.c.p, b.a.c.p);
+ if (c != 0) {
+ return c;
+ }
+ d = beb(a.a.d.i.p, b.a.d.i.p);
+ if (d != 0) {
+ return d;
+ }
+ return beb(b.a.d.p, a.a.d.p);
+ }
+ function _Dc(a, b, c) {
+ var d, e, f, g;
+ f = b.j;
+ g = c.j;
+ if (f != g) {
+ return f.g - g.g;
+ } else {
+ d = a.f[b.p];
+ e = a.f[c.p];
+ return d == 0 && e == 0 ? 0 : d == 0 ? -1 : e == 0 ? 1 : Kdb(d, e);
+ }
+ }
+ function HFb(a, b, c) {
+ var d, e, f;
+ if (c[b.d]) {
+ return;
+ }
+ c[b.d] = true;
+ for (e = new olb(LFb(b)); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 213);
+ f = xFb(d, b);
+ HFb(a, f, c);
+ }
+ }
+ function umc(a, b, c) {
+ var d;
+ d = c[a.g][b];
+ switch (a.g) {
+ case 1:
+ case 3:
+ return new f7c(0, d);
+ case 2:
+ case 4:
+ return new f7c(d, 0);
+ default:
+ return null;
+ }
+ }
+ function r2c(b, c, d) {
+ var e, f;
+ f = BD(hgd(c.f), 209);
+ try {
+ f.Ze(b, d);
+ igd(c.f, f);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 102)) {
+ e = a;
+ throw vbb(e);
+ } else
+ throw vbb(a);
+ }
+ }
+ function Vqd(a, b, c) {
+ var d, e, f, g, h, i;
+ d = null;
+ h = k4c(n4c(), b);
+ f = null;
+ if (h) {
+ e = null;
+ i = o5c(h, c);
+ g = null;
+ i != null && (g = a.Ye(h, i));
+ e = g;
+ f = e;
+ }
+ d = f;
+ return d;
+ }
+ function TTd(a, b, c, d) {
+ var e, f, g;
+ e = new pSd(a.e, 1, 13, (g = b.c, g ? g : (jGd(), YFd)), (f = c.c, f ? f : (jGd(), YFd)), HLd(a, b), false);
+ !d ? d = e : d.Ei(e);
+ return d;
+ }
+ function UEd(a, b, c, d) {
+ var e;
+ e = a.length;
+ if (b >= e)
+ return e;
+ for (b = b > 0 ? b : 0; b < e; b++) {
+ if (_Ed((BCb(b, a.length), a.charCodeAt(b)), c, d))
+ break;
+ }
+ return b;
+ }
+ function Qkb(a, b) {
+ var c, d;
+ d = a.c.length;
+ b.length < d && (b = eCb(new Array(d), b));
+ for (c = 0; c < d; ++c) {
+ NC(b, c, a.c[c]);
+ }
+ b.length > d && NC(b, d, null);
+ return b;
+ }
+ function _lb(a, b) {
+ var c, d;
+ d = a.a.length;
+ b.length < d && (b = eCb(new Array(d), b));
+ for (c = 0; c < d; ++c) {
+ NC(b, c, a.a[c]);
+ }
+ b.length > d && NC(b, d, null);
+ return b;
+ }
+ function Xrb(a, b, c) {
+ var d, e, f;
+ e = BD(Ohb(a.e, b), 387);
+ if (!e) {
+ d = new lsb(a, b, c);
+ Rhb(a.e, b, d);
+ isb(d);
+ return null;
+ } else {
+ f = ijb(e, c);
+ Yrb(a, e);
+ return f;
+ }
+ }
+ function P9d(a) {
+ var b;
+ if (a == null)
+ return null;
+ b = ide(Qge(a, true));
+ if (b == null) {
+ throw vbb(new n8d("Invalid hexBinary value: '" + a + "'"));
+ }
+ return b;
+ }
+ function ghb(a) {
+ Hgb();
+ if (ybb(a, 0) < 0) {
+ if (ybb(a, -1) != 0) {
+ return new Wgb(-1, Jbb(a));
+ }
+ return Bgb;
+ } else
+ return ybb(a, 10) <= 0 ? Dgb[Tbb(a)] : new Wgb(1, a);
+ }
+ function wJb() {
+ qJb();
+ return OC(GC(DN, 1), Kie, 159, 0, [nJb, mJb, oJb, eJb, dJb, fJb, iJb, hJb, gJb, lJb, kJb, jJb, bJb, aJb, cJb, $Ib, ZIb, _Ib, XIb, WIb, YIb, pJb]);
+ }
+ function vjc(a) {
+ var b;
+ this.d = new Rkb();
+ this.j = new d7c();
+ this.g = new d7c();
+ b = a.g.b;
+ this.f = BD(vNb(Q_b(b), (Nyc(), Lwc)), 103);
+ this.e = Edb(ED(c_b(b, ryc)));
+ }
+ function Pjc(a) {
+ this.b = new Rkb();
+ this.e = new Rkb();
+ this.d = a;
+ this.a = !WAb(JAb(new YAb(null, new Lub(new b1b(a.b))), new Xxb(new Qjc()))).sd((EAb(), DAb));
+ }
+ function N5c() {
+ N5c = ccb;
+ L5c = new O5c("PARENTS", 0);
+ K5c = new O5c("NODES", 1);
+ I5c = new O5c("EDGES", 2);
+ M5c = new O5c("PORTS", 3);
+ J5c = new O5c("LABELS", 4);
+ }
+ function Tbd() {
+ Tbd = ccb;
+ Qbd = new Ubd("DISTRIBUTED", 0);
+ Sbd = new Ubd("JUSTIFIED", 1);
+ Obd = new Ubd("BEGIN", 2);
+ Pbd = new Ubd(gle, 3);
+ Rbd = new Ubd("END", 4);
+ }
+ function UMd(a) {
+ var b;
+ b = a.yi(null);
+ switch (b) {
+ case 10:
+ return 0;
+ case 15:
+ return 1;
+ case 14:
+ return 2;
+ case 11:
+ return 3;
+ case 21:
+ return 4;
+ }
+ return -1;
+ }
+ function cYb(a) {
+ switch (a.g) {
+ case 1:
+ return ead(), dad;
+ case 4:
+ return ead(), aad;
+ case 2:
+ return ead(), bad;
+ case 3:
+ return ead(), _9c;
+ }
+ return ead(), cad;
+ }
+ function kA(a, b, c) {
+ var d;
+ d = c.q.getFullYear() - nje + nje;
+ d < 0 && (d = -d);
+ switch (b) {
+ case 1:
+ a.a += d;
+ break;
+ case 2:
+ EA(a, d % 100, 2);
+ break;
+ default:
+ EA(a, d, b);
+ }
+ }
+ function Jsb(a, b) {
+ var c, d;
+ wCb(b, a.b);
+ if (b >= a.b >> 1) {
+ d = a.c;
+ for (c = a.b; c > b; --c) {
+ d = d.b;
+ }
+ } else {
+ d = a.a.a;
+ for (c = 0; c < b; ++c) {
+ d = d.a;
+ }
+ }
+ return new $sb(a, b, d);
+ }
+ function MEb() {
+ MEb = ccb;
+ LEb = new NEb("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST", 0);
+ KEb = new NEb("CORNER_CASES_THAN_SINGLE_SIDE_LAST", 1);
+ }
+ function h4b(a) {
+ var b, c, d, e;
+ d = c4b(a);
+ Okb(d, a4b);
+ e = a.d;
+ e.c = KC(SI, Uhe, 1, 0, 5, 1);
+ for (c = new olb(d); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 456);
+ Gkb(e, b.b);
+ }
+ }
+ function gkd(a) {
+ var b, c, d;
+ d = (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), a.o);
+ for (c = d.c.Kc(); c.e != c.i.gc(); ) {
+ b = BD(c.nj(), 42);
+ b.dd();
+ }
+ return FAd(d);
+ }
+ function N5b(a) {
+ var b;
+ if (!ecd(BD(vNb(a, (Nyc(), Vxc)), 98))) {
+ return;
+ }
+ b = a.b;
+ O5b((tCb(0, b.c.length), BD(b.c[0], 29)));
+ O5b(BD(Ikb(b, b.c.length - 1), 29));
+ }
+ function Roc(a, b) {
+ var c, d, e, f;
+ c = 0;
+ for (e = new olb(b.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 10);
+ f = d.o.a + d.d.c + d.d.b + a.j;
+ c = $wnd.Math.max(c, f);
+ }
+ return c;
+ }
+ function XEd(a) {
+ var b, c, d, e;
+ e = 0;
+ for (c = 0, d = a.length; c < d; c++) {
+ b = (BCb(c, a.length), a.charCodeAt(c));
+ b >= 64 && b < 128 && (e = Mbb(e, Nbb(1, b - 64)));
+ }
+ return e;
+ }
+ function c_b(a, b) {
+ var c, d;
+ d = null;
+ if (wNb(a, (Y9c(), O9c))) {
+ c = BD(vNb(a, O9c), 94);
+ c.Xe(b) && (d = c.We(b));
+ }
+ d == null && !!Q_b(a) && (d = vNb(Q_b(a), b));
+ return d;
+ }
+ function oQc(a, b) {
+ var c, d, e;
+ e = b.d.i;
+ d = e.k;
+ if (d == (j0b(), h0b) || d == d0b) {
+ return;
+ }
+ c = new Sr(ur(U_b(e).a.Kc(), new Sq()));
+ Qr(c) && Rhb(a.k, b, BD(Rr(c), 17));
+ }
+ function mid(a, b) {
+ var c, d, e;
+ d = XKd(a.Tg(), b);
+ c = b - a.Ah();
+ return c < 0 ? (e = a.Yg(d), e >= 0 ? a.lh(e) : tid(a, d)) : c < 0 ? tid(a, d) : BD(d, 66).Nj().Sj(a, a.yh(), c);
+ }
+ function Ksd(a) {
+ var b;
+ if (JD(a.a, 4)) {
+ b = fvd(a.a);
+ if (b == null) {
+ throw vbb(new Zdb(mse + a.b + "'. " + ise + (fdb(Y3), Y3.k) + jse));
+ }
+ return b;
+ } else {
+ return a.a;
+ }
+ }
+ function L9d(a) {
+ var b;
+ if (a == null)
+ return null;
+ b = bde(Qge(a, true));
+ if (b == null) {
+ throw vbb(new n8d("Invalid base64Binary value: '" + a + "'"));
+ }
+ return b;
+ }
+ function Dyd(b) {
+ var c;
+ try {
+ c = b.i.Xb(b.e);
+ b.mj();
+ b.g = b.e++;
+ return c;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ b.mj();
+ throw vbb(new utb());
+ } else
+ throw vbb(a);
+ }
+ }
+ function Zyd(b) {
+ var c;
+ try {
+ c = b.c.ki(b.e);
+ b.mj();
+ b.g = b.e++;
+ return c;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ b.mj();
+ throw vbb(new utb());
+ } else
+ throw vbb(a);
+ }
+ }
+ function CPb() {
+ CPb = ccb;
+ BPb = (Y9c(), K9c);
+ vPb = G8c;
+ qPb = r8c;
+ wPb = f9c;
+ zPb = (fFb(), bFb);
+ yPb = _Eb;
+ APb = dFb;
+ xPb = $Eb;
+ sPb = (nPb(), jPb);
+ rPb = iPb;
+ tPb = lPb;
+ uPb = mPb;
+ }
+ function NWb(a) {
+ LWb();
+ this.c = new Rkb();
+ this.d = a;
+ switch (a.g) {
+ case 0:
+ case 2:
+ this.a = tmb(KWb);
+ this.b = Pje;
+ break;
+ case 3:
+ case 1:
+ this.a = KWb;
+ this.b = Qje;
+ }
+ }
+ function ued(a, b, c) {
+ var d, e;
+ if (a.c) {
+ dld(a.c, a.c.i + b);
+ eld(a.c, a.c.j + c);
+ } else {
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 157);
+ ued(d, b, c);
+ }
+ }
+ }
+ function KEd(a, b) {
+ var c, d;
+ if (a.j.length != b.j.length)
+ return false;
+ for (c = 0, d = a.j.length; c < d; c++) {
+ if (!dfb(a.j[c], b.j[c]))
+ return false;
+ }
+ return true;
+ }
+ function gA(a, b, c) {
+ var d;
+ if (b.a.length > 0) {
+ Ekb(a.b, new WA(b.a, c));
+ d = b.a.length;
+ 0 < d ? b.a = b.a.substr(0, 0) : 0 > d && (b.a += yfb(KC(TD, $ie, 25, -d, 15, 1)));
+ }
+ }
+ function JKb(a, b) {
+ var c, d, e;
+ c = a.o;
+ for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 111);
+ d.e.a = DKb(d, c.a);
+ d.e.b = c.b * Edb(ED(d.b.We(BKb)));
+ }
+ }
+ function S5b(a, b) {
+ var c, d, e, f;
+ e = a.k;
+ c = Edb(ED(vNb(a, (wtc(), htc))));
+ f = b.k;
+ d = Edb(ED(vNb(b, htc)));
+ return f != (j0b(), e0b) ? -1 : e != e0b ? 1 : c == d ? 0 : c < d ? -1 : 1;
+ }
+ function B$c(a, b) {
+ var c, d;
+ c = BD(BD(Ohb(a.g, b.a), 46).a, 65);
+ d = BD(BD(Ohb(a.g, b.b), 46).a, 65);
+ return S6c(b.a, b.b) - S6c(b.a, E6c(c.b)) - S6c(b.b, E6c(d.b));
+ }
+ function aZb(a, b) {
+ var c;
+ c = BD(vNb(a, (Nyc(), jxc)), 74);
+ if (Lq(b, ZYb)) {
+ if (!c) {
+ c = new s7c();
+ yNb(a, jxc, c);
+ } else {
+ Osb(c);
+ }
+ } else
+ !!c && yNb(a, jxc, null);
+ return c;
+ }
+ function a0b(a) {
+ var b;
+ b = new Ufb();
+ b.a += "n";
+ a.k != (j0b(), h0b) && Qfb(Qfb((b.a += "(", b), Zr(a.k).toLowerCase()), ")");
+ Qfb((b.a += "_", b), P_b(a));
+ return b.a;
+ }
+ function Kdc(a, b) {
+ Odd(b, "Self-Loop post-processing", 1);
+ MAb(JAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new Qdc()), new Sdc()), new Udc()), new Wdc());
+ Qdd(b);
+ }
+ function kid(a, b, c, d) {
+ var e;
+ if (c >= 0) {
+ return a.hh(b, c, d);
+ } else {
+ !!a.eh() && (d = (e = a.Vg(), e >= 0 ? a.Qg(d) : a.eh().ih(a, -1 - e, null, d)));
+ return a.Sg(b, c, d);
+ }
+ }
+ function zld(a, b) {
+ switch (b) {
+ case 7:
+ !a.e && (a.e = new y5d(B2, a, 7, 4));
+ Uxd(a.e);
+ return;
+ case 8:
+ !a.d && (a.d = new y5d(B2, a, 8, 5));
+ Uxd(a.d);
+ return;
+ }
+ $kd(a, b);
+ }
+ function Ut(b, c) {
+ var d;
+ d = b.Zc(c);
+ try {
+ return d.Pb();
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 109)) {
+ throw vbb(new qcb("Can't get element " + c));
+ } else
+ throw vbb(a);
+ }
+ }
+ function Tgb(a, b) {
+ this.e = a;
+ if (b < Zje) {
+ this.d = 1;
+ this.a = OC(GC(WD, 1), oje, 25, 15, [b | 0]);
+ } else {
+ this.d = 2;
+ this.a = OC(GC(WD, 1), oje, 25, 15, [b % Zje | 0, b / Zje | 0]);
+ }
+ }
+ function omb(a, b) {
+ mmb();
+ var c, d, e, f;
+ c = a;
+ f = b;
+ if (JD(a, 21) && !JD(b, 21)) {
+ c = b;
+ f = a;
+ }
+ for (e = c.Kc(); e.Ob(); ) {
+ d = e.Pb();
+ if (f.Hc(d)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function Txd(a, b, c) {
+ var d, e, f, g;
+ d = a.Xc(b);
+ if (d != -1) {
+ if (a.ej()) {
+ f = a.fj();
+ g = tud(a, d);
+ e = a.Zi(4, g, null, d, f);
+ !c ? c = e : c.Ei(e);
+ } else {
+ tud(a, d);
+ }
+ }
+ return c;
+ }
+ function uwd(a, b, c) {
+ var d, e, f, g;
+ d = a.Xc(b);
+ if (d != -1) {
+ if (a.ej()) {
+ f = a.fj();
+ g = Evd(a, d);
+ e = a.Zi(4, g, null, d, f);
+ !c ? c = e : c.Ei(e);
+ } else {
+ Evd(a, d);
+ }
+ }
+ return c;
+ }
+ function PJb(a, b) {
+ var c;
+ c = BD(Mpb(a.b, b), 124).n;
+ switch (b.g) {
+ case 1:
+ a.t >= 0 && (c.d = a.t);
+ break;
+ case 3:
+ a.t >= 0 && (c.a = a.t);
+ }
+ if (a.C) {
+ c.b = a.C.b;
+ c.c = a.C.c;
+ }
+ }
+ function RMb() {
+ RMb = ccb;
+ OMb = new SMb(xle, 0);
+ NMb = new SMb(yle, 1);
+ PMb = new SMb(zle, 2);
+ QMb = new SMb(Ale, 3);
+ OMb.a = false;
+ NMb.a = true;
+ PMb.a = false;
+ QMb.a = true;
+ }
+ function ROb() {
+ ROb = ccb;
+ OOb = new SOb(xle, 0);
+ NOb = new SOb(yle, 1);
+ POb = new SOb(zle, 2);
+ QOb = new SOb(Ale, 3);
+ OOb.a = false;
+ NOb.a = true;
+ POb.a = false;
+ QOb.a = true;
+ }
+ function dac(a) {
+ var b;
+ b = a.a;
+ do {
+ b = BD(Rr(new Sr(ur(R_b(b).a.Kc(), new Sq()))), 17).c.i;
+ b.k == (j0b(), g0b) && a.b.Fc(b);
+ } while (b.k == (j0b(), g0b));
+ a.b = Su(a.b);
+ }
+ function CDc(a) {
+ var b, c, d;
+ d = a.c.a;
+ a.p = (Qb(d), new Tkb(d));
+ for (c = new olb(d); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 10);
+ b.p = GDc(b).a;
+ }
+ mmb();
+ Okb(a.p, new PDc());
+ }
+ function eVc(a) {
+ var b, c, d, e;
+ d = 0;
+ e = gVc(a);
+ if (e.c.length == 0) {
+ return 1;
+ } else {
+ for (c = new olb(e); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 33);
+ d += eVc(b);
+ }
+ }
+ return d;
+ }
+ function JJb(a, b) {
+ var c, d, e;
+ e = 0;
+ d = BD(BD(Qc(a.r, b), 21), 84).Kc();
+ while (d.Ob()) {
+ c = BD(d.Pb(), 111);
+ e += c.d.b + c.b.rf().a + c.d.c;
+ d.Ob() && (e += a.w);
+ }
+ return e;
+ }
+ function RKb(a, b) {
+ var c, d, e;
+ e = 0;
+ d = BD(BD(Qc(a.r, b), 21), 84).Kc();
+ while (d.Ob()) {
+ c = BD(d.Pb(), 111);
+ e += c.d.d + c.b.rf().b + c.d.a;
+ d.Ob() && (e += a.w);
+ }
+ return e;
+ }
+ function SOc(a, b, c, d) {
+ if (b.a < d.a) {
+ return true;
+ } else if (b.a == d.a) {
+ if (b.b < d.b) {
+ return true;
+ } else if (b.b == d.b) {
+ if (a.b > c.b) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function AD(a, b) {
+ if (ND(a)) {
+ return !!zD[b];
+ } else if (a.hm) {
+ return !!a.hm[b];
+ } else if (LD(a)) {
+ return !!yD[b];
+ } else if (KD(a)) {
+ return !!xD[b];
+ }
+ return false;
+ }
+ function jkd(a, b, c) {
+ c == null ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), LAd(a.o, b)) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), HAd(a.o, b, c));
+ return a;
+ }
+ function jKb(a, b, c, d) {
+ var e, f;
+ f = b.Xe((Y9c(), W8c)) ? BD(b.We(W8c), 21) : a.j;
+ e = uJb(f);
+ if (e == (qJb(), pJb)) {
+ return;
+ }
+ if (c && !sJb(e)) {
+ return;
+ }
+ UHb(lKb(a, e, d), b);
+ }
+ function fid(a, b, c, d) {
+ var e, f, g;
+ f = XKd(a.Tg(), b);
+ e = b - a.Ah();
+ return e < 0 ? (g = a.Yg(f), g >= 0 ? a._g(g, c, true) : sid(a, f, c)) : BD(f, 66).Nj().Pj(a, a.yh(), e, c, d);
+ }
+ function u6d(a, b, c, d) {
+ var e, f, g;
+ if (c.mh(b)) {
+ Q6d();
+ if (YId(b)) {
+ e = BD(c.ah(b), 153);
+ x6d(a, e);
+ } else {
+ f = (g = b, !g ? null : BD(d, 49).xh(g));
+ !!f && v6d(c.ah(b), f);
+ }
+ }
+ }
+ function H3b(a) {
+ switch (a.g) {
+ case 1:
+ return vLb(), uLb;
+ case 3:
+ return vLb(), rLb;
+ case 2:
+ return vLb(), tLb;
+ case 4:
+ return vLb(), sLb;
+ default:
+ return null;
+ }
+ }
+ function kCb(a) {
+ switch (typeof a) {
+ case Mhe:
+ return LCb(a);
+ case Lhe:
+ return QD(a);
+ case Khe:
+ return Bcb(), a ? 1231 : 1237;
+ default:
+ return a == null ? 0 : FCb(a);
+ }
+ }
+ function Gic(a, b, c) {
+ if (a.e) {
+ switch (a.b) {
+ case 1:
+ oic(a.c, b, c);
+ break;
+ case 0:
+ pic(a.c, b, c);
+ }
+ } else {
+ mic(a.c, b, c);
+ }
+ a.a[b.p][c.p] = a.c.i;
+ a.a[c.p][b.p] = a.c.e;
+ }
+ function lHc(a) {
+ var b, c;
+ if (a == null) {
+ return null;
+ }
+ c = KC(OQ, nie, 193, a.length, 0, 2);
+ for (b = 0; b < c.length; b++) {
+ c[b] = BD(ulb(a[b], a[b].length), 193);
+ }
+ return c;
+ }
+ function d4d(a) {
+ var b;
+ if (b4d(a)) {
+ a4d(a);
+ if (a.Lk()) {
+ b = b3d(a.e, a.b, a.c, a.a, a.j);
+ a.j = b;
+ }
+ a.g = a.a;
+ ++a.a;
+ ++a.c;
+ a.i = 0;
+ return a.j;
+ } else {
+ throw vbb(new utb());
+ }
+ }
+ function fMb(a, b) {
+ var c, d, e, f;
+ f = a.o;
+ c = a.p;
+ f < c ? f *= f : c *= c;
+ d = f + c;
+ f = b.o;
+ c = b.p;
+ f < c ? f *= f : c *= c;
+ e = f + c;
+ if (d < e) {
+ return -1;
+ }
+ if (d == e) {
+ return 0;
+ }
+ return 1;
+ }
+ function HLd(a, b) {
+ var c, d, e;
+ e = rud(a, b);
+ if (e >= 0)
+ return e;
+ if (a.Fk()) {
+ for (d = 0; d < a.i; ++d) {
+ c = a.Gk(BD(a.g[d], 56));
+ if (PD(c) === PD(b)) {
+ return d;
+ }
+ }
+ }
+ return -1;
+ }
+ function Gtd(a, b, c) {
+ var d, e;
+ e = a.gc();
+ if (b >= e)
+ throw vbb(new Cyd(b, e));
+ if (a.hi()) {
+ d = a.Xc(c);
+ if (d >= 0 && d != b) {
+ throw vbb(new Wdb(kue));
+ }
+ }
+ return a.mi(b, c);
+ }
+ function gx(a, b) {
+ this.a = BD(Qb(a), 245);
+ this.b = BD(Qb(b), 245);
+ if (a.vd(b) > 0 || a == (Lk(), Kk) || b == (_k(), $k)) {
+ throw vbb(new Wdb("Invalid range: " + nx(a, b)));
+ }
+ }
+ function mYb(a) {
+ var b, c;
+ this.b = new Rkb();
+ this.c = a;
+ this.a = false;
+ for (c = new olb(a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 10);
+ this.a = this.a | b.k == (j0b(), h0b);
+ }
+ }
+ function GFb(a, b) {
+ var c, d, e;
+ c = nGb(new pGb(), a);
+ for (e = new olb(b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 121);
+ AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0), c), d));
+ }
+ return c;
+ }
+ function Nac(a, b, c) {
+ var d, e, f;
+ for (e = new Sr(ur((b ? R_b(a) : U_b(a)).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 17);
+ f = b ? d.c.i : d.d.i;
+ f.k == (j0b(), f0b) && $_b(f, c);
+ }
+ }
+ function Izc() {
+ Izc = ccb;
+ Gzc = new Kzc(ane, 0);
+ Hzc = new Kzc("PORT_POSITION", 1);
+ Fzc = new Kzc("NODE_SIZE_WHERE_SPACE_PERMITS", 2);
+ Ezc = new Kzc("NODE_SIZE", 3);
+ }
+ function F7c() {
+ F7c = ccb;
+ z7c = new G7c("AUTOMATIC", 0);
+ C7c = new G7c(jle, 1);
+ D7c = new G7c(kle, 2);
+ E7c = new G7c("TOP", 3);
+ A7c = new G7c(mle, 4);
+ B7c = new G7c(gle, 5);
+ }
+ function Hhb(a, b, c, d) {
+ Dhb();
+ var e, f;
+ e = 0;
+ for (f = 0; f < c; f++) {
+ e = wbb(Ibb(xbb(b[f], Yje), xbb(d, Yje)), xbb(Tbb(e), Yje));
+ a[f] = Tbb(e);
+ e = Pbb(e, 32);
+ }
+ return Tbb(e);
+ }
+ function zHb(a, b, c) {
+ var d, e;
+ e = 0;
+ for (d = 0; d < rHb; d++) {
+ e = $wnd.Math.max(e, pHb(a.a[b.g][d], c));
+ }
+ b == (gHb(), eHb) && !!a.b && (e = $wnd.Math.max(e, a.b.b));
+ return e;
+ }
+ function Bub(a, b) {
+ var c, d;
+ lCb(b > 0);
+ if ((b & -b) == b) {
+ return QD(b * Cub(a, 31) * 4656612873077393e-25);
+ }
+ do {
+ c = Cub(a, 31);
+ d = c % b;
+ } while (c - d + (b - 1) < 0);
+ return QD(d);
+ }
+ function LCb(a) {
+ JCb();
+ var b, c, d;
+ c = ":" + a;
+ d = ICb[c];
+ if (d != null) {
+ return QD((uCb(d), d));
+ }
+ d = GCb[c];
+ b = d == null ? KCb(a) : QD((uCb(d), d));
+ MCb();
+ ICb[c] = b;
+ return b;
+ }
+ function qZb(a, b, c) {
+ Odd(c, "Compound graph preprocessor", 1);
+ a.a = new Hp();
+ vZb(a, b, null);
+ pZb(a, b);
+ uZb(a);
+ yNb(b, (wtc(), zsc), a.a);
+ a.a = null;
+ Uhb(a.b);
+ Qdd(c);
+ }
+ function X$b(a, b, c) {
+ switch (c.g) {
+ case 1:
+ a.a = b.a / 2;
+ a.b = 0;
+ break;
+ case 2:
+ a.a = b.a;
+ a.b = b.b / 2;
+ break;
+ case 3:
+ a.a = b.a / 2;
+ a.b = b.b;
+ break;
+ case 4:
+ a.a = 0;
+ a.b = b.b / 2;
+ }
+ }
+ function tkc(a) {
+ var b, c, d;
+ for (d = BD(Qc(a.a, (Xjc(), Vjc)), 15).Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 101);
+ b = Bkc(c);
+ kkc(a, c, b[0], (Fkc(), Ckc), 0);
+ kkc(a, c, b[1], Ekc, 1);
+ }
+ }
+ function ukc(a) {
+ var b, c, d;
+ for (d = BD(Qc(a.a, (Xjc(), Wjc)), 15).Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 101);
+ b = Bkc(c);
+ kkc(a, c, b[0], (Fkc(), Ckc), 0);
+ kkc(a, c, b[1], Ekc, 1);
+ }
+ }
+ function tXc(a) {
+ switch (a.g) {
+ case 0:
+ return null;
+ case 1:
+ return new $Xc();
+ case 2:
+ return new QXc();
+ default:
+ throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function OZc(a, b, c) {
+ var d, e;
+ FZc(a, b - a.s, c - a.t);
+ for (e = new olb(a.n); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 211);
+ SZc(d, d.e + b - a.s);
+ TZc(d, d.f + c - a.t);
+ }
+ a.s = b;
+ a.t = c;
+ }
+ function JFb(a) {
+ var b, c, d, e, f;
+ c = 0;
+ for (e = new olb(a.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 121);
+ d.d = c++;
+ }
+ b = IFb(a);
+ f = null;
+ b.c.length > 1 && (f = GFb(a, b));
+ return f;
+ }
+ function dmd(a) {
+ var b;
+ if (!!a.f && a.f.kh()) {
+ b = BD(a.f, 49);
+ a.f = BD(xid(a, b), 82);
+ a.f != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 8, b, a.f));
+ }
+ return a.f;
+ }
+ function emd(a) {
+ var b;
+ if (!!a.i && a.i.kh()) {
+ b = BD(a.i, 49);
+ a.i = BD(xid(a, b), 82);
+ a.i != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 7, b, a.i));
+ }
+ return a.i;
+ }
+ function zUd(a) {
+ var b;
+ if (!!a.b && (a.b.Db & 64) != 0) {
+ b = a.b;
+ a.b = BD(xid(a, b), 18);
+ a.b != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 21, b, a.b));
+ }
+ return a.b;
+ }
+ function uAd(a, b) {
+ var c, d, e;
+ if (a.d == null) {
+ ++a.e;
+ ++a.f;
+ } else {
+ d = b.Sh();
+ BAd(a, a.f + 1);
+ e = (d & Ohe) % a.d.length;
+ c = a.d[e];
+ !c && (c = a.d[e] = a.uj());
+ c.Fc(b);
+ ++a.f;
+ }
+ }
+ function m3d(a, b, c) {
+ var d;
+ if (b.Kj()) {
+ return false;
+ } else if (b.Zj() != -2) {
+ d = b.zj();
+ return d == null ? c == null : pb(d, c);
+ } else
+ return b.Hj() == a.e.Tg() && c == null;
+ }
+ function wo() {
+ var a;
+ Xj(16, Hie);
+ a = Kp(16);
+ this.b = KC(GF, Gie, 317, a, 0, 1);
+ this.c = KC(GF, Gie, 317, a, 0, 1);
+ this.a = null;
+ this.e = null;
+ this.i = 0;
+ this.f = a - 1;
+ this.g = 0;
+ }
+ function b0b(a) {
+ n_b.call(this);
+ this.k = (j0b(), h0b);
+ this.j = (Xj(6, Jie), new Skb(6));
+ this.b = (Xj(2, Jie), new Skb(2));
+ this.d = new L_b();
+ this.f = new s0b();
+ this.a = a;
+ }
+ function Scc(a) {
+ var b, c;
+ if (a.c.length <= 1) {
+ return;
+ }
+ b = Pcc(a, (Ucd(), Rcd));
+ Rcc(a, BD(b.a, 19).a, BD(b.b, 19).a);
+ c = Pcc(a, Tcd);
+ Rcc(a, BD(c.a, 19).a, BD(c.b, 19).a);
+ }
+ function Vzc() {
+ Vzc = ccb;
+ Uzc = new Xzc("SIMPLE", 0);
+ Rzc = new Xzc(Tne, 1);
+ Szc = new Xzc("LINEAR_SEGMENTS", 2);
+ Qzc = new Xzc("BRANDES_KOEPF", 3);
+ Tzc = new Xzc(Aqe, 4);
+ }
+ function XDc(a, b, c) {
+ if (!ecd(BD(vNb(b, (Nyc(), Vxc)), 98))) {
+ WDc(a, b, Y_b(b, c));
+ WDc(a, b, Y_b(b, (Ucd(), Rcd)));
+ WDc(a, b, Y_b(b, Acd));
+ mmb();
+ Okb(b.j, new jEc(a));
+ }
+ }
+ function HVc(a, b, c, d) {
+ var e, f, g;
+ e = d ? BD(Qc(a.a, b), 21) : BD(Qc(a.b, b), 21);
+ for (g = e.Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 33);
+ if (BVc(a, c, f)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function FMd(a) {
+ var b, c;
+ for (c = new Fyd(a); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 87);
+ if (!!b.e || (!b.d && (b.d = new xMd(j5, b, 1)), b.d).i != 0) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function QTd(a) {
+ var b, c;
+ for (c = new Fyd(a); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 87);
+ if (!!b.e || (!b.d && (b.d = new xMd(j5, b, 1)), b.d).i != 0) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function FDc(a) {
+ var b, c, d;
+ b = 0;
+ for (d = new olb(a.c.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 10);
+ b += sr(new Sr(ur(U_b(c).a.Kc(), new Sq())));
+ }
+ return b / a.c.a.c.length;
+ }
+ function UPc(a) {
+ var b, c;
+ a.c || XPc(a);
+ c = new s7c();
+ b = new olb(a.a);
+ mlb(b);
+ while (b.a < b.c.c.length) {
+ Dsb(c, BD(mlb(b), 407).a);
+ }
+ sCb(c.b != 0);
+ Nsb(c, c.c.b);
+ return c;
+ }
+ function J0c() {
+ J0c = ccb;
+ I0c = (A0c(), z0c);
+ G0c = new q0b(8);
+ new Osd((Y9c(), f9c), G0c);
+ new Osd(T9c, 8);
+ H0c = x0c;
+ E0c = n0c;
+ F0c = o0c;
+ D0c = new Osd(y8c, (Bcb(), false));
+ }
+ function uld(a, b, c, d) {
+ switch (b) {
+ case 7:
+ return !a.e && (a.e = new y5d(B2, a, 7, 4)), a.e;
+ case 8:
+ return !a.d && (a.d = new y5d(B2, a, 8, 5)), a.d;
+ }
+ return Xkd(a, b, c, d);
+ }
+ function JQd(a) {
+ var b;
+ if (!!a.a && a.a.kh()) {
+ b = BD(a.a, 49);
+ a.a = BD(xid(a, b), 138);
+ a.a != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 5, b, a.a));
+ }
+ return a.a;
+ }
+ function yde(a) {
+ if (a < 48)
+ return -1;
+ if (a > 102)
+ return -1;
+ if (a <= 57)
+ return a - 48;
+ if (a < 65)
+ return -1;
+ if (a <= 70)
+ return a - 65 + 10;
+ if (a < 97)
+ return -1;
+ return a - 97 + 10;
+ }
+ function Wj(a, b) {
+ if (a == null) {
+ throw vbb(new Heb("null key in entry: null=" + b));
+ } else if (b == null) {
+ throw vbb(new Heb("null value in entry: " + a + "=null"));
+ }
+ }
+ function kr(a, b) {
+ var c, d;
+ while (a.Ob()) {
+ if (!b.Ob()) {
+ return false;
+ }
+ c = a.Pb();
+ d = b.Pb();
+ if (!(PD(c) === PD(d) || c != null && pb(c, d))) {
+ return false;
+ }
+ }
+ return !b.Ob();
+ }
+ function jIb(a, b) {
+ var c;
+ c = OC(GC(UD, 1), Vje, 25, 15, [pHb(a.a[0], b), pHb(a.a[1], b), pHb(a.a[2], b)]);
+ if (a.d) {
+ c[0] = $wnd.Math.max(c[0], c[2]);
+ c[2] = c[0];
+ }
+ return c;
+ }
+ function kIb(a, b) {
+ var c;
+ c = OC(GC(UD, 1), Vje, 25, 15, [qHb(a.a[0], b), qHb(a.a[1], b), qHb(a.a[2], b)]);
+ if (a.d) {
+ c[0] = $wnd.Math.max(c[0], c[2]);
+ c[2] = c[0];
+ }
+ return c;
+ }
+ function mqc() {
+ mqc = ccb;
+ iqc = new oqc("GREEDY", 0);
+ hqc = new oqc(Une, 1);
+ kqc = new oqc(Tne, 2);
+ lqc = new oqc("MODEL_ORDER", 3);
+ jqc = new oqc("GREEDY_MODEL_ORDER", 4);
+ }
+ function iUc(a, b) {
+ var c, d, e;
+ a.b[b.g] = 1;
+ for (d = Jsb(b.d, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 188);
+ e = c.c;
+ a.b[e.g] == 1 ? Dsb(a.a, c) : a.b[e.g] == 2 ? a.b[e.g] = 1 : iUc(a, e);
+ }
+ }
+ function V9b(a, b) {
+ var c, d, e;
+ e = new Skb(b.gc());
+ for (d = b.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 286);
+ c.c == c.f ? K9b(a, c, c.c) : L9b(a, c) || (e.c[e.c.length] = c, true);
+ }
+ return e;
+ }
+ function IZc(a, b, c) {
+ var d, e, f, g, h;
+ h = a.r + b;
+ a.r += b;
+ a.d += c;
+ d = c / a.n.c.length;
+ e = 0;
+ for (g = new olb(a.n); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 211);
+ RZc(f, h, d, e);
+ ++e;
+ }
+ }
+ function tEb(a) {
+ var b, c, d;
+ zwb(a.b.a);
+ a.a = KC(PM, Uhe, 57, a.c.c.a.b.c.length, 0, 1);
+ b = 0;
+ for (d = new olb(a.c.c.a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 57);
+ c.f = b++;
+ }
+ }
+ function RVb(a) {
+ var b, c, d;
+ zwb(a.b.a);
+ a.a = KC(IP, Uhe, 81, a.c.a.a.b.c.length, 0, 1);
+ b = 0;
+ for (d = new olb(a.c.a.a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 81);
+ c.i = b++;
+ }
+ }
+ function P1c(a, b, c) {
+ var d;
+ Odd(c, "Shrinking tree compaction", 1);
+ if (Ccb(DD(vNb(b, (XNb(), VNb))))) {
+ N1c(a, b.f);
+ INb(b.f, (d = b.c, d));
+ } else {
+ INb(b.f, b.c);
+ }
+ Qdd(c);
+ }
+ function mr(a) {
+ var b;
+ b = gr(a);
+ if (!Qr(a)) {
+ throw vbb(new qcb("position (0) must be less than the number of elements that remained (" + b + ")"));
+ }
+ return Rr(a);
+ }
+ function hNb(b, c, d) {
+ var e;
+ try {
+ return YMb(b, c + b.j, d + b.k);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ e = a;
+ throw vbb(new qcb(e.g + Gle + c + She + d + ")."));
+ } else
+ throw vbb(a);
+ }
+ }
+ function iNb(b, c, d) {
+ var e;
+ try {
+ return ZMb(b, c + b.j, d + b.k);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ e = a;
+ throw vbb(new qcb(e.g + Gle + c + She + d + ")."));
+ } else
+ throw vbb(a);
+ }
+ }
+ function jNb(b, c, d) {
+ var e;
+ try {
+ return $Mb(b, c + b.j, d + b.k);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ e = a;
+ throw vbb(new qcb(e.g + Gle + c + She + d + ")."));
+ } else
+ throw vbb(a);
+ }
+ }
+ function s5b(a) {
+ switch (a.g) {
+ case 1:
+ return Ucd(), Tcd;
+ case 4:
+ return Ucd(), Acd;
+ case 3:
+ return Ucd(), zcd;
+ case 2:
+ return Ucd(), Rcd;
+ default:
+ return Ucd(), Scd;
+ }
+ }
+ function cjc(a, b, c) {
+ if (b.k == (j0b(), h0b) && c.k == g0b) {
+ a.d = _ic(b, (Ucd(), Rcd));
+ a.b = _ic(b, Acd);
+ }
+ if (c.k == h0b && b.k == g0b) {
+ a.d = _ic(c, (Ucd(), Acd));
+ a.b = _ic(c, Rcd);
+ }
+ }
+ function gjc(a, b) {
+ var c, d, e;
+ e = V_b(a, b);
+ for (d = e.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 11);
+ if (vNb(c, (wtc(), gtc)) != null || a1b(new b1b(c.b))) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function QZc(a, b) {
+ dld(b, a.e + a.d + (a.c.c.length == 0 ? 0 : a.b));
+ eld(b, a.f);
+ a.a = $wnd.Math.max(a.a, b.f);
+ a.d += b.g + (a.c.c.length == 0 ? 0 : a.b);
+ Ekb(a.c, b);
+ return true;
+ }
+ function XZc(a, b, c) {
+ var d, e, f, g;
+ g = 0;
+ d = c / a.a.c.length;
+ for (f = new olb(a.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 187);
+ OZc(e, e.s, e.t + g * d);
+ IZc(e, a.d - e.r + b, d);
+ ++g;
+ }
+ }
+ function H4b(a) {
+ var b, c, d, e, f;
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 29);
+ b = 0;
+ for (f = new olb(c.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ e.p = b++;
+ }
+ }
+ }
+ function r6c(a, b) {
+ var c, d, e, f, g, h;
+ e = b.length - 1;
+ g = 0;
+ h = 0;
+ for (d = 0; d <= e; d++) {
+ f = b[d];
+ c = k6c(e, d) * x6c(1 - a, e - d) * x6c(a, d);
+ g += f.a * c;
+ h += f.b * c;
+ }
+ return new f7c(g, h);
+ }
+ function jud(a, b) {
+ var c, d, e, f, g;
+ c = b.gc();
+ a.qi(a.i + c);
+ f = b.Kc();
+ g = a.i;
+ a.i += c;
+ for (d = g; d < a.i; ++d) {
+ e = f.Pb();
+ mud(a, d, a.oi(d, e));
+ a.bi(d, e);
+ a.ci();
+ }
+ return c != 0;
+ }
+ function twd(a, b, c) {
+ var d, e, f;
+ if (a.ej()) {
+ d = a.Vi();
+ f = a.fj();
+ ++a.j;
+ a.Hi(d, a.oi(d, b));
+ e = a.Zi(3, null, b, d, f);
+ !c ? c = e : c.Ei(e);
+ } else {
+ Avd(a, a.Vi(), b);
+ }
+ return c;
+ }
+ function WOd(a, b, c) {
+ var d, e, f;
+ d = BD(qud(VKd(a.a), b), 87);
+ f = (e = d.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd));
+ ((f.Db & 64) != 0 ? xid(a.b, f) : f) == c ? KQd(d) : NQd(d, c);
+ return f;
+ }
+ function Ewb(a, b, c, d, e, f, g, h) {
+ var i, j;
+ if (!d) {
+ return;
+ }
+ i = d.a[0];
+ !!i && Ewb(a, b, c, i, e, f, g, h);
+ Fwb(a, c, d.d, e, f, g, h) && b.Fc(d);
+ j = d.a[1];
+ !!j && Ewb(a, b, c, j, e, f, g, h);
+ }
+ function eAb(a, b) {
+ var c;
+ if (!a.a) {
+ c = KC(UD, Vje, 25, 0, 15, 1);
+ _ub(a.b.a, new iAb(c));
+ c.sort(dcb(Ylb.prototype.te, Ylb, []));
+ a.a = new Avb(c, a.d);
+ }
+ return pvb(a.a, b);
+ }
+ function YMb(b, c, d) {
+ try {
+ return Bbb(_Mb(b, c, d), 1);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 320)) {
+ throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c + She + d + Fle));
+ } else
+ throw vbb(a);
+ }
+ }
+ function ZMb(b, c, d) {
+ try {
+ return Bbb(_Mb(b, c, d), 0);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 320)) {
+ throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c + She + d + Fle));
+ } else
+ throw vbb(a);
+ }
+ }
+ function $Mb(b, c, d) {
+ try {
+ return Bbb(_Mb(b, c, d), 2);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 320)) {
+ throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c + She + d + Fle));
+ } else
+ throw vbb(a);
+ }
+ }
+ function Nyd(b, c) {
+ if (b.g == -1) {
+ throw vbb(new Ydb());
+ }
+ b.mj();
+ try {
+ b.d._c(b.g, c);
+ b.f = b.d.j;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ throw vbb(new Apb());
+ } else
+ throw vbb(a);
+ }
+ }
+ function rJc(a, b, c) {
+ Odd(c, "Linear segments node placement", 1);
+ a.b = BD(vNb(b, (wtc(), otc)), 304);
+ sJc(a, b);
+ nJc(a, b);
+ kJc(a, b);
+ qJc(a);
+ a.a = null;
+ a.b = null;
+ Qdd(c);
+ }
+ function Ee(a, b) {
+ var c, d, e, f;
+ f = a.gc();
+ b.length < f && (b = eCb(new Array(f), b));
+ e = b;
+ d = a.Kc();
+ for (c = 0; c < f; ++c) {
+ NC(e, c, d.Pb());
+ }
+ b.length > f && NC(b, f, null);
+ return b;
+ }
+ function Lu(a, b) {
+ var c, d;
+ d = a.gc();
+ if (b == null) {
+ for (c = 0; c < d; c++) {
+ if (a.Xb(c) == null) {
+ return c;
+ }
+ }
+ } else {
+ for (c = 0; c < d; c++) {
+ if (pb(b, a.Xb(c))) {
+ return c;
+ }
+ }
+ }
+ return -1;
+ }
+ function Jd(a, b) {
+ var c, d, e;
+ c = b.cd();
+ e = b.dd();
+ d = a.xc(c);
+ if (!(PD(e) === PD(d) || e != null && pb(e, d))) {
+ return false;
+ }
+ if (d == null && !a._b(c)) {
+ return false;
+ }
+ return true;
+ }
+ function YC(a, b) {
+ var c, d, e;
+ if (b <= 22) {
+ c = a.l & (1 << b) - 1;
+ d = e = 0;
+ } else if (b <= 44) {
+ c = a.l;
+ d = a.m & (1 << b - 22) - 1;
+ e = 0;
+ } else {
+ c = a.l;
+ d = a.m;
+ e = a.h & (1 << b - 44) - 1;
+ }
+ return TC(c, d, e);
+ }
+ function yKb(a, b) {
+ switch (b.g) {
+ case 1:
+ return a.f.n.d + a.t;
+ case 3:
+ return a.f.n.a + a.t;
+ case 2:
+ return a.f.n.c + a.s;
+ case 4:
+ return a.f.n.b + a.s;
+ default:
+ return 0;
+ }
+ }
+ function aLb(a, b) {
+ var c, d;
+ d = b.c;
+ c = b.a;
+ switch (a.b.g) {
+ case 0:
+ c.d = a.e - d.a - d.d;
+ break;
+ case 1:
+ c.d += a.e;
+ break;
+ case 2:
+ c.c = a.e - d.a - d.d;
+ break;
+ case 3:
+ c.c = a.e + d.d;
+ }
+ }
+ function ZOb(a, b, c, d) {
+ var e, f;
+ this.a = b;
+ this.c = d;
+ e = a.a;
+ YOb(this, new f7c(-e.c, -e.d));
+ P6c(this.b, c);
+ f = d / 2;
+ b.a ? b7c(this.b, 0, f) : b7c(this.b, f, 0);
+ Ekb(a.c, this);
+ }
+ function iXc() {
+ iXc = ccb;
+ hXc = new kXc(ane, 0);
+ fXc = new kXc(Vne, 1);
+ gXc = new kXc("EDGE_LENGTH_BY_POSITION", 2);
+ eXc = new kXc("CROSSING_MINIMIZATION_BY_POSITION", 3);
+ }
+ function Wqd(a, b) {
+ var c, d;
+ c = BD(oo(a.g, b), 33);
+ if (c) {
+ return c;
+ }
+ d = BD(oo(a.j, b), 118);
+ if (d) {
+ return d;
+ }
+ throw vbb(new cqd("Referenced shape does not exist: " + b));
+ }
+ function rTb(a, b) {
+ if (a.c == b) {
+ return a.d;
+ } else if (a.d == b) {
+ return a.c;
+ } else {
+ throw vbb(new Wdb("Node 'one' must be either source or target of edge 'edge'."));
+ }
+ }
+ function TMc(a, b) {
+ if (a.c.i == b) {
+ return a.d.i;
+ } else if (a.d.i == b) {
+ return a.c.i;
+ } else {
+ throw vbb(new Wdb("Node " + b + " is neither source nor target of edge " + a));
+ }
+ }
+ function _lc(a, b) {
+ var c;
+ switch (b.g) {
+ case 2:
+ case 4:
+ c = a.a;
+ a.c.d.n.b < c.d.n.b && (c = a.c);
+ amc(a, b, (Ajc(), zjc), c);
+ break;
+ case 1:
+ case 3:
+ amc(a, b, (Ajc(), wjc), null);
+ }
+ }
+ function smc(a, b, c, d, e, f) {
+ var g, h, i, j, k;
+ g = qmc(b, c, f);
+ h = c == (Ucd(), Acd) || c == Tcd ? -1 : 1;
+ j = a[c.g];
+ for (k = 0; k < j.length; k++) {
+ i = j[k];
+ i > 0 && (i += e);
+ j[k] = g;
+ g += h * (i + d);
+ }
+ }
+ function Uoc(a) {
+ var b, c, d;
+ d = a.f;
+ a.n = KC(UD, Vje, 25, d, 15, 1);
+ a.d = KC(UD, Vje, 25, d, 15, 1);
+ for (b = 0; b < d; b++) {
+ c = BD(Ikb(a.c.b, b), 29);
+ a.n[b] = Roc(a, c);
+ a.d[b] = Qoc(a, c);
+ }
+ }
+ function zjd(a, b) {
+ var c, d, e;
+ e = 0;
+ for (d = 2; d < b; d <<= 1) {
+ (a.Db & d) != 0 && ++e;
+ }
+ if (e == 0) {
+ for (c = b <<= 1; c <= 128; c <<= 1) {
+ if ((a.Db & c) != 0) {
+ return 0;
+ }
+ }
+ return -1;
+ } else {
+ return e;
+ }
+ }
+ function s3d(a, b) {
+ var c, d, e, f, g;
+ g = S6d(a.e.Tg(), b);
+ f = null;
+ c = BD(a.g, 119);
+ for (e = 0; e < a.i; ++e) {
+ d = c[e];
+ if (g.rl(d.ak())) {
+ !f && (f = new yud());
+ wtd(f, d);
+ }
+ }
+ !!f && Yxd(a, f);
+ }
+ function H9d(a) {
+ var b, c, d;
+ if (!a)
+ return null;
+ if (a.dc())
+ return "";
+ d = new Hfb();
+ for (c = a.Kc(); c.Ob(); ) {
+ b = c.Pb();
+ Efb(d, GD(b));
+ d.a += " ";
+ }
+ return lcb(d, d.a.length - 1);
+ }
+ function Ty(a, b, c) {
+ var d, e, f, g, h;
+ Uy(a);
+ for (e = (a.k == null && (a.k = KC(_I, nie, 78, 0, 0, 1)), a.k), f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ Ty(d);
+ }
+ h = a.f;
+ !!h && Ty(h);
+ }
+ function LC(a, b) {
+ var c = new Array(b);
+ var d;
+ switch (a) {
+ case 14:
+ case 15:
+ d = 0;
+ break;
+ case 16:
+ d = false;
+ break;
+ default:
+ return c;
+ }
+ for (var e = 0; e < b; ++e) {
+ c[e] = d;
+ }
+ return c;
+ }
+ function PDb(a) {
+ var b, c, d;
+ for (c = new olb(a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 57);
+ b.c.$b();
+ }
+ fad(a.d) ? d = a.a.c : d = a.a.d;
+ Hkb(d, new dEb(a));
+ a.c.Me(a);
+ QDb(a);
+ }
+ function sRb(a) {
+ var b, c, d, e;
+ for (c = new olb(a.e.c); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 282);
+ for (e = new olb(b.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 447);
+ lRb(d);
+ }
+ cRb(b);
+ }
+ }
+ function a$c(a) {
+ var b, c, d, e, f;
+ d = 0;
+ f = 0;
+ e = 0;
+ for (c = new olb(a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 187);
+ f = $wnd.Math.max(f, b.r);
+ d += b.d + (e > 0 ? a.c : 0);
+ ++e;
+ }
+ a.b = d;
+ a.d = f;
+ }
+ function BZc(a, b) {
+ var c, d, e, f, g;
+ d = 0;
+ e = 0;
+ c = 0;
+ for (g = new olb(b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 200);
+ d = $wnd.Math.max(d, f.e);
+ e += f.b + (c > 0 ? a.g : 0);
+ ++c;
+ }
+ a.c = e;
+ a.d = d;
+ }
+ function AHb(a, b) {
+ var c;
+ c = OC(GC(UD, 1), Vje, 25, 15, [zHb(a, (gHb(), dHb), b), zHb(a, eHb, b), zHb(a, fHb, b)]);
+ if (a.f) {
+ c[0] = $wnd.Math.max(c[0], c[2]);
+ c[2] = c[0];
+ }
+ return c;
+ }
+ function lNb(b, c, d) {
+ var e;
+ try {
+ aNb(b, c + b.j, d + b.k, false, true);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ e = a;
+ throw vbb(new qcb(e.g + Gle + c + She + d + ")."));
+ } else
+ throw vbb(a);
+ }
+ }
+ function mNb(b, c, d) {
+ var e;
+ try {
+ aNb(b, c + b.j, d + b.k, true, false);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ e = a;
+ throw vbb(new qcb(e.g + Gle + c + She + d + ")."));
+ } else
+ throw vbb(a);
+ }
+ }
+ function d5b(a) {
+ var b;
+ if (!wNb(a, (Nyc(), xxc))) {
+ return;
+ }
+ b = BD(vNb(a, xxc), 21);
+ if (b.Hc((Hbd(), zbd))) {
+ b.Mc(zbd);
+ b.Fc(Bbd);
+ } else if (b.Hc(Bbd)) {
+ b.Mc(Bbd);
+ b.Fc(zbd);
+ }
+ }
+ function e5b(a) {
+ var b;
+ if (!wNb(a, (Nyc(), xxc))) {
+ return;
+ }
+ b = BD(vNb(a, xxc), 21);
+ if (b.Hc((Hbd(), Gbd))) {
+ b.Mc(Gbd);
+ b.Fc(Ebd);
+ } else if (b.Hc(Ebd)) {
+ b.Mc(Ebd);
+ b.Fc(Gbd);
+ }
+ }
+ function udc(a, b, c) {
+ Odd(c, "Self-Loop ordering", 1);
+ MAb(NAb(JAb(JAb(LAb(new YAb(null, new Kub(b.b, 16)), new ydc()), new Adc()), new Cdc()), new Edc()), new Gdc(a));
+ Qdd(c);
+ }
+ function ikc(a, b, c, d) {
+ var e, f;
+ for (e = b; e < a.c.length; e++) {
+ f = (tCb(e, a.c.length), BD(a.c[e], 11));
+ if (c.Mb(f)) {
+ d.c[d.c.length] = f;
+ } else {
+ return e;
+ }
+ }
+ return a.c.length;
+ }
+ function Kmc(a, b, c, d) {
+ var e, f, g, h;
+ a.a == null && Nmc(a, b);
+ g = b.b.j.c.length;
+ f = c.d.p;
+ h = d.d.p;
+ e = h - 1;
+ e < 0 && (e = g - 1);
+ return f <= e ? a.a[e] - a.a[f] : a.a[g - 1] - a.a[f] + a.a[e];
+ }
+ function ehd(a) {
+ var b, c;
+ if (!a.b) {
+ a.b = Qu(BD(a.f, 33).Ag().i);
+ for (c = new Fyd(BD(a.f, 33).Ag()); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 137);
+ Ekb(a.b, new dhd(b));
+ }
+ }
+ return a.b;
+ }
+ function fhd(a) {
+ var b, c;
+ if (!a.e) {
+ a.e = Qu(Yod(BD(a.f, 33)).i);
+ for (c = new Fyd(Yod(BD(a.f, 33))); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 118);
+ Ekb(a.e, new thd(b));
+ }
+ }
+ return a.e;
+ }
+ function ahd(a) {
+ var b, c;
+ if (!a.a) {
+ a.a = Qu(Vod(BD(a.f, 33)).i);
+ for (c = new Fyd(Vod(BD(a.f, 33))); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 33);
+ Ekb(a.a, new hhd(a, b));
+ }
+ }
+ return a.a;
+ }
+ function dKd(b) {
+ var c;
+ if (!b.C && (b.D != null || b.B != null)) {
+ c = eKd(b);
+ if (c) {
+ b.yk(c);
+ } else {
+ try {
+ b.yk(null);
+ } catch (a) {
+ a = ubb(a);
+ if (!JD(a, 60))
+ throw vbb(a);
+ }
+ }
+ }
+ return b.C;
+ }
+ function GJb(a) {
+ switch (a.q.g) {
+ case 5:
+ DJb(a, (Ucd(), Acd));
+ DJb(a, Rcd);
+ break;
+ case 4:
+ EJb(a, (Ucd(), Acd));
+ EJb(a, Rcd);
+ break;
+ default:
+ FJb(a, (Ucd(), Acd));
+ FJb(a, Rcd);
+ }
+ }
+ function PKb(a) {
+ switch (a.q.g) {
+ case 5:
+ MKb(a, (Ucd(), zcd));
+ MKb(a, Tcd);
+ break;
+ case 4:
+ NKb(a, (Ucd(), zcd));
+ NKb(a, Tcd);
+ break;
+ default:
+ OKb(a, (Ucd(), zcd));
+ OKb(a, Tcd);
+ }
+ }
+ function EXb(a, b) {
+ var c, d, e;
+ e = new d7c();
+ for (d = a.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 37);
+ uXb(c, e.a, 0);
+ e.a += c.f.a + b;
+ e.b = $wnd.Math.max(e.b, c.f.b);
+ }
+ e.b > 0 && (e.b += b);
+ return e;
+ }
+ function GXb(a, b) {
+ var c, d, e;
+ e = new d7c();
+ for (d = a.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 37);
+ uXb(c, 0, e.b);
+ e.b += c.f.b + b;
+ e.a = $wnd.Math.max(e.a, c.f.a);
+ }
+ e.a > 0 && (e.a += b);
+ return e;
+ }
+ function d_b(a) {
+ var b, c, d;
+ d = Ohe;
+ for (c = new olb(a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 10);
+ wNb(b, (wtc(), Zsc)) && (d = $wnd.Math.min(d, BD(vNb(b, Zsc), 19).a));
+ }
+ return d;
+ }
+ function pHc(a, b) {
+ var c, d;
+ if (b.length == 0) {
+ return 0;
+ }
+ c = NHc(a.a, b[0], (Ucd(), Tcd));
+ c += NHc(a.a, b[b.length - 1], zcd);
+ for (d = 0; d < b.length; d++) {
+ c += qHc(a, d, b);
+ }
+ return c;
+ }
+ function vQc() {
+ hQc();
+ this.c = new Rkb();
+ this.i = new Rkb();
+ this.e = new zsb();
+ this.f = new zsb();
+ this.g = new zsb();
+ this.j = new Rkb();
+ this.a = new Rkb();
+ this.b = new Lqb();
+ this.k = new Lqb();
+ }
+ function aKd(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 6) {
+ return a.Cb.ih(a, 5, o5, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? a.zh() : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function Wz(a) {
+ Rz();
+ var b = a.e;
+ if (b && b.stack) {
+ var c = b.stack;
+ var d = b + "\n";
+ c.substring(0, d.length) == d && (c = c.substring(d.length));
+ return c.split("\n");
+ }
+ return [];
+ }
+ function jeb(a) {
+ var b;
+ b = (qeb(), peb);
+ return b[a >>> 28] | b[a >> 24 & 15] << 4 | b[a >> 20 & 15] << 8 | b[a >> 16 & 15] << 12 | b[a >> 12 & 15] << 16 | b[a >> 8 & 15] << 20 | b[a >> 4 & 15] << 24 | b[a & 15] << 28;
+ }
+ function _jb(a) {
+ var b, c, d;
+ if (a.b != a.c) {
+ return;
+ }
+ d = a.a.length;
+ c = geb($wnd.Math.max(8, d)) << 1;
+ if (a.b != 0) {
+ b = _Bb(a.a, c);
+ $jb(a, b, d);
+ a.a = b;
+ a.b = 0;
+ } else {
+ dCb(a.a, c);
+ }
+ a.c = d;
+ }
+ function DKb(a, b) {
+ var c;
+ c = a.b;
+ return c.Xe((Y9c(), s9c)) ? c.Hf() == (Ucd(), Tcd) ? -c.rf().a - Edb(ED(c.We(s9c))) : b + Edb(ED(c.We(s9c))) : c.Hf() == (Ucd(), Tcd) ? -c.rf().a : b;
+ }
+ function P_b(a) {
+ var b;
+ if (a.b.c.length != 0 && !!BD(Ikb(a.b, 0), 70).a) {
+ return BD(Ikb(a.b, 0), 70).a;
+ }
+ b = JZb(a);
+ if (b != null) {
+ return b;
+ }
+ return "" + (!a.c ? -1 : Jkb(a.c.a, a, 0));
+ }
+ function C0b(a) {
+ var b;
+ if (a.f.c.length != 0 && !!BD(Ikb(a.f, 0), 70).a) {
+ return BD(Ikb(a.f, 0), 70).a;
+ }
+ b = JZb(a);
+ if (b != null) {
+ return b;
+ }
+ return "" + (!a.i ? -1 : Jkb(a.i.j, a, 0));
+ }
+ function Ogc(a, b) {
+ var c, d;
+ if (b < 0 || b >= a.gc()) {
+ return null;
+ }
+ for (c = b; c < a.gc(); ++c) {
+ d = BD(a.Xb(c), 128);
+ if (c == a.gc() - 1 || !d.o) {
+ return new vgd(meb(c), d);
+ }
+ }
+ return null;
+ }
+ function uoc(a, b, c) {
+ var d, e, f, g, h;
+ f = a.c;
+ h = c ? b : a;
+ d = c ? a : b;
+ for (e = h.p + 1; e < d.p; ++e) {
+ g = BD(Ikb(f.a, e), 10);
+ if (!(g.k == (j0b(), d0b) || voc(g))) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function u$c(a) {
+ var b, c, d, e, f;
+ f = 0;
+ e = Qje;
+ d = 0;
+ for (c = new olb(a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 187);
+ f += b.r + (d > 0 ? a.c : 0);
+ e = $wnd.Math.max(e, b.d);
+ ++d;
+ }
+ a.e = f;
+ a.b = e;
+ }
+ function shd(a) {
+ var b, c;
+ if (!a.b) {
+ a.b = Qu(BD(a.f, 118).Ag().i);
+ for (c = new Fyd(BD(a.f, 118).Ag()); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 137);
+ Ekb(a.b, new dhd(b));
+ }
+ }
+ return a.b;
+ }
+ function Ctd(a, b) {
+ var c, d, e;
+ if (b.dc()) {
+ return LCd(), LCd(), KCd;
+ } else {
+ c = new zyd(a, b.gc());
+ for (e = new Fyd(a); e.e != e.i.gc(); ) {
+ d = Dyd(e);
+ b.Hc(d) && wtd(c, d);
+ }
+ return c;
+ }
+ }
+ function bkd(a, b, c, d) {
+ if (b == 0) {
+ return d ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), a.o) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), FAd(a.o));
+ }
+ return fid(a, b, c, d);
+ }
+ function Tnd(a) {
+ var b, c;
+ if (a.rb) {
+ for (b = 0, c = a.rb.i; b < c; ++b) {
+ Cmd(qud(a.rb, b));
+ }
+ }
+ if (a.vb) {
+ for (b = 0, c = a.vb.i; b < c; ++b) {
+ Cmd(qud(a.vb, b));
+ }
+ }
+ u1d((O6d(), M6d), a);
+ a.Bb |= 1;
+ }
+ function _nd(a, b, c, d, e, f, g, h, i, j, k, l, m, n) {
+ aod(a, b, d, null, e, f, g, h, i, j, m, true, n);
+ CUd(a, k);
+ JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 2);
+ !!c && DUd(a, c);
+ EUd(a, l);
+ return a;
+ }
+ function jZd(b) {
+ var c, d;
+ if (b == null) {
+ return null;
+ }
+ d = 0;
+ try {
+ d = Icb(b, Rie, Ohe) & aje;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ c = rfb(b);
+ d = c[0];
+ } else
+ throw vbb(a);
+ }
+ return bdb(d);
+ }
+ function kZd(b) {
+ var c, d;
+ if (b == null) {
+ return null;
+ }
+ d = 0;
+ try {
+ d = Icb(b, Rie, Ohe) & aje;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ c = rfb(b);
+ d = c[0];
+ } else
+ throw vbb(a);
+ }
+ return bdb(d);
+ }
+ function bD(a, b) {
+ var c, d, e;
+ e = a.h - b.h;
+ if (e < 0) {
+ return false;
+ }
+ c = a.l - b.l;
+ d = a.m - b.m + (c >> 22);
+ e += d >> 22;
+ if (e < 0) {
+ return false;
+ }
+ a.l = c & Eje;
+ a.m = d & Eje;
+ a.h = e & Fje;
+ return true;
+ }
+ function Fwb(a, b, c, d, e, f, g) {
+ var h, i;
+ if (b.Ae() && (i = a.a.ue(c, d), i < 0 || !e && i == 0)) {
+ return false;
+ }
+ if (b.Be() && (h = a.a.ue(c, f), h > 0 || !g && h == 0)) {
+ return false;
+ }
+ return true;
+ }
+ function Vcc(a, b) {
+ Occ();
+ var c;
+ c = a.j.g - b.j.g;
+ if (c != 0) {
+ return 0;
+ }
+ switch (a.j.g) {
+ case 2:
+ return Ycc(b, Ncc) - Ycc(a, Ncc);
+ case 4:
+ return Ycc(a, Mcc) - Ycc(b, Mcc);
+ }
+ return 0;
+ }
+ function Tqc(a) {
+ switch (a.g) {
+ case 0:
+ return Mqc;
+ case 1:
+ return Nqc;
+ case 2:
+ return Oqc;
+ case 3:
+ return Pqc;
+ case 4:
+ return Qqc;
+ case 5:
+ return Rqc;
+ default:
+ return null;
+ }
+ }
+ function End(a, b, c) {
+ var d, e;
+ d = (e = new rUd(), yId(e, b), pnd(e, c), wtd((!a.c && (a.c = new cUd(p5, a, 12, 10)), a.c), e), e);
+ AId(d, 0);
+ DId(d, 1);
+ CId(d, true);
+ BId(d, true);
+ return d;
+ }
+ function tud(a, b) {
+ var c, d;
+ if (b >= a.i)
+ throw vbb(new $zd(b, a.i));
+ ++a.j;
+ c = a.g[b];
+ d = a.i - b - 1;
+ d > 0 && $fb(a.g, b + 1, a.g, b, d);
+ NC(a.g, --a.i, null);
+ a.fi(b, c);
+ a.ci();
+ return c;
+ }
+ function UId(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 17) {
+ return a.Cb.ih(a, 21, c5, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? a.zh() : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function iDb(a) {
+ var b, c, d, e;
+ mmb();
+ Okb(a.c, a.a);
+ for (e = new olb(a.c); e.a < e.c.c.length; ) {
+ d = mlb(e);
+ for (c = new olb(a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 679);
+ b.Ke(d);
+ }
+ }
+ }
+ function pXb(a) {
+ var b, c, d, e;
+ mmb();
+ Okb(a.c, a.a);
+ for (e = new olb(a.c); e.a < e.c.c.length; ) {
+ d = mlb(e);
+ for (c = new olb(a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 369);
+ b.Ke(d);
+ }
+ }
+ }
+ function AGb(a) {
+ var b, c, d, e, f;
+ e = Ohe;
+ f = null;
+ for (d = new olb(a.d); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 213);
+ if (c.d.j ^ c.e.j) {
+ b = c.e.e - c.d.e - c.a;
+ if (b < e) {
+ e = b;
+ f = c;
+ }
+ }
+ }
+ return f;
+ }
+ function OSb() {
+ OSb = ccb;
+ MSb = new Nsd(Mme, (Bcb(), false));
+ ISb = new Nsd(Nme, 100);
+ KSb = (yTb(), wTb);
+ JSb = new Nsd(Ome, KSb);
+ LSb = new Nsd(Pme, qme);
+ NSb = new Nsd(Qme, meb(Ohe));
+ }
+ function ric(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ j = 0;
+ for (e = a.a[b], f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ k = CHc(d, c);
+ for (i = k.Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 11);
+ Rhb(a.f, h, meb(j++));
+ }
+ }
+ }
+ function uqd(a, b, c) {
+ var d, e, f, g;
+ if (c) {
+ e = c.a.length;
+ d = new Yge(e);
+ for (g = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); g.Ob(); ) {
+ f = BD(g.Pb(), 19);
+ Rc(a, b, Vpd(tB(c, f.a)));
+ }
+ }
+ }
+ function vqd(a, b, c) {
+ var d, e, f, g;
+ if (c) {
+ e = c.a.length;
+ d = new Yge(e);
+ for (g = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); g.Ob(); ) {
+ f = BD(g.Pb(), 19);
+ Rc(a, b, Vpd(tB(c, f.a)));
+ }
+ }
+ }
+ function Bkc(a) {
+ gkc();
+ var b;
+ b = BD(Ee(Ec(a.k), KC(F1, bne, 61, 2, 0, 1)), 122);
+ Klb(b, 0, b.length, null);
+ if (b[0] == (Ucd(), Acd) && b[1] == Tcd) {
+ NC(b, 0, Tcd);
+ NC(b, 1, Acd);
+ }
+ return b;
+ }
+ function JHc(a, b, c) {
+ var d, e, f;
+ e = HHc(a, b, c);
+ f = KHc(a, e);
+ yHc(a.b);
+ cIc(a, b, c);
+ mmb();
+ Okb(e, new hIc(a));
+ d = KHc(a, e);
+ yHc(a.b);
+ cIc(a, c, b);
+ return new vgd(meb(f), meb(d));
+ }
+ function jJc() {
+ jJc = ccb;
+ gJc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
+ hJc = new Msd("linearSegments.inputPrio", meb(0));
+ iJc = new Msd("linearSegments.outputPrio", meb(0));
+ }
+ function yRc() {
+ yRc = ccb;
+ uRc = new ARc("P1_TREEIFICATION", 0);
+ vRc = new ARc("P2_NODE_ORDERING", 1);
+ wRc = new ARc("P3_NODE_PLACEMENT", 2);
+ xRc = new ARc("P4_EDGE_ROUTING", 3);
+ }
+ function ZWc() {
+ ZWc = ccb;
+ UWc = (Y9c(), C9c);
+ XWc = T9c;
+ NWc = Y8c;
+ OWc = _8c;
+ PWc = b9c;
+ MWc = W8c;
+ QWc = e9c;
+ TWc = x9c;
+ KWc = (HWc(), wWc);
+ LWc = xWc;
+ RWc = zWc;
+ SWc = BWc;
+ VWc = CWc;
+ WWc = DWc;
+ YWc = FWc;
+ }
+ function rbd() {
+ rbd = ccb;
+ qbd = new tbd("UNKNOWN", 0);
+ nbd = new tbd("ABOVE", 1);
+ obd = new tbd("BELOW", 2);
+ pbd = new tbd("INLINE", 3);
+ new Msd("org.eclipse.elk.labelSide", qbd);
+ }
+ function rud(a, b) {
+ var c;
+ if (a.ni() && b != null) {
+ for (c = 0; c < a.i; ++c) {
+ if (pb(b, a.g[c])) {
+ return c;
+ }
+ }
+ } else {
+ for (c = 0; c < a.i; ++c) {
+ if (PD(a.g[c]) === PD(b)) {
+ return c;
+ }
+ }
+ }
+ return -1;
+ }
+ function DZb(a, b, c) {
+ var d, e;
+ if (b.c == (KAc(), IAc) && c.c == HAc) {
+ return -1;
+ } else if (b.c == HAc && c.c == IAc) {
+ return 1;
+ }
+ d = HZb(b.a, a.a);
+ e = HZb(c.a, a.a);
+ return b.c == IAc ? e - d : d - e;
+ }
+ function Z_b(a, b, c) {
+ if (!!c && (b < 0 || b > c.a.c.length)) {
+ throw vbb(new Wdb("index must be >= 0 and <= layer node count"));
+ }
+ !!a.c && Lkb(a.c.a, a);
+ a.c = c;
+ !!c && Dkb(c.a, b, a);
+ }
+ function p7b(a, b) {
+ var c, d, e;
+ for (d = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ e = BD(b.Kb(c), 10);
+ return new cc(Qb(e.n.b + e.o.b / 2));
+ }
+ return wb(), wb(), vb;
+ }
+ function rMc(a, b) {
+ this.c = new Lqb();
+ this.a = a;
+ this.b = b;
+ this.d = BD(vNb(a, (wtc(), otc)), 304);
+ PD(vNb(a, (Nyc(), yxc))) === PD((_qc(), Zqc)) ? this.e = new bNc() : this.e = new WMc();
+ }
+ function $dd(a, b) {
+ var c, d, e, f;
+ f = 0;
+ for (d = new olb(a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 33);
+ f += $wnd.Math.pow(c.g * c.f - b, 2);
+ }
+ e = $wnd.Math.sqrt(f / (a.c.length - 1));
+ return e;
+ }
+ function bgd(a, b) {
+ var c, d;
+ d = null;
+ if (a.Xe((Y9c(), O9c))) {
+ c = BD(a.We(O9c), 94);
+ c.Xe(b) && (d = c.We(b));
+ }
+ d == null && !!a.yf() && (d = a.yf().We(b));
+ d == null && (d = Ksd(b));
+ return d;
+ }
+ function Vt(b, c) {
+ var d, e;
+ d = b.Zc(c);
+ try {
+ e = d.Pb();
+ d.Qb();
+ return e;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 109)) {
+ throw vbb(new qcb("Can't remove element " + c));
+ } else
+ throw vbb(a);
+ }
+ }
+ function qA(a, b) {
+ var c, d, e;
+ d = new eB();
+ e = new fB(d.q.getFullYear() - nje, d.q.getMonth(), d.q.getDate());
+ c = pA(a, b, e);
+ if (c == 0 || c < b.length) {
+ throw vbb(new Wdb(b));
+ }
+ return e;
+ }
+ function _tb(a, b) {
+ var c, d, e;
+ uCb(b);
+ lCb(b != a);
+ e = a.b.c.length;
+ for (d = b.Kc(); d.Ob(); ) {
+ c = d.Pb();
+ Ekb(a.b, uCb(c));
+ }
+ if (e != a.b.c.length) {
+ aub(a, 0);
+ return true;
+ }
+ return false;
+ }
+ function bTb() {
+ bTb = ccb;
+ VSb = (Y9c(), O8c);
+ new Osd(B8c, (Bcb(), true));
+ YSb = Y8c;
+ ZSb = _8c;
+ $Sb = b9c;
+ XSb = W8c;
+ _Sb = e9c;
+ aTb = x9c;
+ USb = (OSb(), MSb);
+ SSb = JSb;
+ TSb = LSb;
+ WSb = NSb;
+ RSb = ISb;
+ }
+ function MZb(a, b) {
+ if (b == a.c) {
+ return a.d;
+ } else if (b == a.d) {
+ return a.c;
+ } else {
+ throw vbb(new Wdb("'port' must be either the source port or target port of the edge."));
+ }
+ }
+ function C3b(a, b, c) {
+ var d, e;
+ e = a.o;
+ d = a.d;
+ switch (b.g) {
+ case 1:
+ return -d.d - c;
+ case 3:
+ return e.b + d.a + c;
+ case 2:
+ return e.a + d.c + c;
+ case 4:
+ return -d.b - c;
+ default:
+ return 0;
+ }
+ }
+ function H6b(a, b, c, d) {
+ var e, f, g, h;
+ $_b(b, BD(d.Xb(0), 29));
+ h = d.bd(1, d.gc());
+ for (f = BD(c.Kb(b), 20).Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 17);
+ g = e.c.i == b ? e.d.i : e.c.i;
+ H6b(a, g, c, h);
+ }
+ }
+ function Xec(a) {
+ var b;
+ b = new Lqb();
+ if (wNb(a, (wtc(), ttc))) {
+ return BD(vNb(a, ttc), 83);
+ }
+ MAb(JAb(new YAb(null, new Kub(a.j, 16)), new Zec()), new _ec(b));
+ yNb(a, ttc, b);
+ return b;
+ }
+ function cmd(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 6) {
+ return a.Cb.ih(a, 6, B2, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (Thd(), Lhd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function Eod(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 7) {
+ return a.Cb.ih(a, 1, C2, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (Thd(), Nhd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function lpd(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 9) {
+ return a.Cb.ih(a, 9, E2, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (Thd(), Phd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function mQd(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 5) {
+ return a.Cb.ih(a, 9, h5, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (jGd(), VFd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function KHd(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 3) {
+ return a.Cb.ih(a, 0, k5, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (jGd(), OFd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function Snd(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 7) {
+ return a.Cb.ih(a, 6, o5, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (jGd(), cGd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function ird() {
+ this.a = new bqd();
+ this.g = new wo();
+ this.j = new wo();
+ this.b = new Lqb();
+ this.d = new wo();
+ this.i = new wo();
+ this.k = new Lqb();
+ this.c = new Lqb();
+ this.e = new Lqb();
+ this.f = new Lqb();
+ }
+ function MCd(a, b, c) {
+ var d, e, f;
+ c < 0 && (c = 0);
+ f = a.i;
+ for (e = c; e < f; e++) {
+ d = qud(a, e);
+ if (b == null) {
+ if (d == null) {
+ return e;
+ }
+ } else if (PD(b) === PD(d) || pb(b, d)) {
+ return e;
+ }
+ }
+ return -1;
+ }
+ function b1d(a, b) {
+ var c, d;
+ c = b.Hh(a.a);
+ if (!c) {
+ return null;
+ } else {
+ d = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), Awe));
+ return dfb(Bwe, d) ? u1d(a, bKd(b.Hj())) : d;
+ }
+ }
+ function p6d(a, b) {
+ var c, d;
+ if (b) {
+ if (b == a) {
+ return true;
+ }
+ c = 0;
+ for (d = BD(b, 49).eh(); !!d && d != b; d = d.eh()) {
+ if (++c > Wje) {
+ return p6d(a, d);
+ }
+ if (d == a) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function HKb(a) {
+ CKb();
+ switch (a.q.g) {
+ case 5:
+ EKb(a, (Ucd(), Acd));
+ EKb(a, Rcd);
+ break;
+ case 4:
+ FKb(a, (Ucd(), Acd));
+ FKb(a, Rcd);
+ break;
+ default:
+ GKb(a, (Ucd(), Acd));
+ GKb(a, Rcd);
+ }
+ }
+ function LKb(a) {
+ CKb();
+ switch (a.q.g) {
+ case 5:
+ IKb(a, (Ucd(), zcd));
+ IKb(a, Tcd);
+ break;
+ case 4:
+ JKb(a, (Ucd(), zcd));
+ JKb(a, Tcd);
+ break;
+ default:
+ KKb(a, (Ucd(), zcd));
+ KKb(a, Tcd);
+ }
+ }
+ function XQb(a) {
+ var b, c;
+ b = BD(vNb(a, (wSb(), pSb)), 19);
+ if (b) {
+ c = b.a;
+ c == 0 ? yNb(a, (HSb(), GSb), new Gub()) : yNb(a, (HSb(), GSb), new Hub(c));
+ } else {
+ yNb(a, (HSb(), GSb), new Hub(1));
+ }
+ }
+ function V$b(a, b) {
+ var c;
+ c = a.i;
+ switch (b.g) {
+ case 1:
+ return -(a.n.b + a.o.b);
+ case 2:
+ return a.n.a - c.o.a;
+ case 3:
+ return a.n.b - c.o.b;
+ case 4:
+ return -(a.n.a + a.o.a);
+ }
+ return 0;
+ }
+ function hbc(a, b) {
+ switch (a.g) {
+ case 0:
+ return b == (Ctc(), ytc) ? dbc : ebc;
+ case 1:
+ return b == (Ctc(), ytc) ? dbc : cbc;
+ case 2:
+ return b == (Ctc(), ytc) ? cbc : ebc;
+ default:
+ return cbc;
+ }
+ }
+ function v$c(a, b) {
+ var c, d, e;
+ Lkb(a.a, b);
+ a.e -= b.r + (a.a.c.length == 0 ? 0 : a.c);
+ e = ere;
+ for (d = new olb(a.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 187);
+ e = $wnd.Math.max(e, c.d);
+ }
+ a.b = e;
+ }
+ function Lld(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 3) {
+ return a.Cb.ih(a, 12, E2, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (Thd(), Khd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function Uod(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 11) {
+ return a.Cb.ih(a, 10, E2, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (Thd(), Ohd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function PSd(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 10) {
+ return a.Cb.ih(a, 11, c5, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (jGd(), aGd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function qUd(a, b) {
+ var c, d;
+ if (a.Db >> 16 == 10) {
+ return a.Cb.ih(a, 12, n5, b);
+ }
+ return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (jGd(), dGd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
+ }
+ function wId(a) {
+ var b;
+ if ((a.Bb & 1) == 0 && !!a.r && a.r.kh()) {
+ b = BD(a.r, 49);
+ a.r = BD(xid(a, b), 138);
+ a.r != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 8, b, a.r));
+ }
+ return a.r;
+ }
+ function yHb(a, b, c) {
+ var d;
+ d = OC(GC(UD, 1), Vje, 25, 15, [BHb(a, (gHb(), dHb), b, c), BHb(a, eHb, b, c), BHb(a, fHb, b, c)]);
+ if (a.f) {
+ d[0] = $wnd.Math.max(d[0], d[2]);
+ d[2] = d[0];
+ }
+ return d;
+ }
+ function O9b(a, b) {
+ var c, d, e;
+ e = V9b(a, b);
+ if (e.c.length == 0) {
+ return;
+ }
+ Okb(e, new pac());
+ c = e.c.length;
+ for (d = 0; d < c; d++) {
+ K9b(a, (tCb(d, e.c.length), BD(e.c[d], 286)), R9b(a, e, d));
+ }
+ }
+ function qkc(a) {
+ var b, c, d, e;
+ for (e = BD(Qc(a.a, (Xjc(), Sjc)), 15).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 101);
+ for (c = Ec(d.k).Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 61);
+ kkc(a, d, b, (Fkc(), Dkc), 1);
+ }
+ }
+ }
+ function voc(a) {
+ var b, c;
+ if (a.k == (j0b(), g0b)) {
+ for (c = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 17);
+ if (!OZb(b) && a.c == LZb(b, a).c) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function JNc(a) {
+ var b, c;
+ if (a.k == (j0b(), g0b)) {
+ for (c = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 17);
+ if (!OZb(b) && b.c.i.c == b.d.i.c) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function HUc(a, b) {
+ var c, d, e, f;
+ Odd(b, "Dull edge routing", 1);
+ for (f = Jsb(a.b, 0); f.b != f.d.c; ) {
+ e = BD(Xsb(f), 86);
+ for (d = Jsb(e.d, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 188);
+ Osb(c.a);
+ }
+ }
+ }
+ function xqd(a, b) {
+ var c, d, e, f, g;
+ if (b) {
+ e = b.a.length;
+ c = new Yge(e);
+ for (g = (c.b - c.a) * c.c < 0 ? (Xge(), Wge) : new she(c); g.Ob(); ) {
+ f = BD(g.Pb(), 19);
+ d = Zpd(b, f.a);
+ !!d && ard(a, d);
+ }
+ }
+ }
+ function DZd() {
+ tZd();
+ var a, b;
+ xZd((NFd(), MFd));
+ wZd(MFd);
+ Tnd(MFd);
+ FQd = (jGd(), YFd);
+ for (b = new olb(rZd); b.a < b.c.c.length; ) {
+ a = BD(mlb(b), 241);
+ QQd(a, YFd, null);
+ }
+ return true;
+ }
+ function eD(a, b) {
+ var c, d, e, f, g, h, i, j;
+ i = a.h >> 19;
+ j = b.h >> 19;
+ if (i != j) {
+ return j - i;
+ }
+ e = a.h;
+ h = b.h;
+ if (e != h) {
+ return e - h;
+ }
+ d = a.m;
+ g = b.m;
+ if (d != g) {
+ return d - g;
+ }
+ c = a.l;
+ f = b.l;
+ return c - f;
+ }
+ function fFb() {
+ fFb = ccb;
+ eFb = (rFb(), oFb);
+ dFb = new Nsd(Yke, eFb);
+ cFb = (UEb(), TEb);
+ bFb = new Nsd(Zke, cFb);
+ aFb = (MEb(), LEb);
+ _Eb = new Nsd($ke, aFb);
+ $Eb = new Nsd(_ke, (Bcb(), true));
+ }
+ function cfc(a, b, c) {
+ var d, e;
+ d = b * c;
+ if (JD(a.g, 145)) {
+ e = ugc(a);
+ if (e.f.d) {
+ e.f.a || (a.d.a += d + ple);
+ } else {
+ a.d.d -= d + ple;
+ a.d.a += d + ple;
+ }
+ } else if (JD(a.g, 10)) {
+ a.d.d -= d;
+ a.d.a += 2 * d;
+ }
+ }
+ function vmc(a, b, c) {
+ var d, e, f, g, h;
+ e = a[c.g];
+ for (h = new olb(b.d); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 101);
+ f = g.i;
+ if (!!f && f.i == c) {
+ d = g.d[c.g];
+ e[d] = $wnd.Math.max(e[d], f.j.b);
+ }
+ }
+ }
+ function AZc(a, b) {
+ var c, d, e, f, g;
+ d = 0;
+ e = 0;
+ c = 0;
+ for (g = new olb(b.d); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 443);
+ a$c(f);
+ d = $wnd.Math.max(d, f.b);
+ e += f.d + (c > 0 ? a.g : 0);
+ ++c;
+ }
+ b.b = d;
+ b.e = e;
+ }
+ function to(a) {
+ var b, c, d;
+ d = a.b;
+ if (Lp(a.i, d.length)) {
+ c = d.length * 2;
+ a.b = KC(GF, Gie, 317, c, 0, 1);
+ a.c = KC(GF, Gie, 317, c, 0, 1);
+ a.f = c - 1;
+ a.i = 0;
+ for (b = a.a; b; b = b.c) {
+ po(a, b, b);
+ }
+ ++a.g;
+ }
+ }
+ function cNb(a, b, c, d) {
+ var e, f, g, h;
+ for (e = 0; e < b.o; e++) {
+ f = e - b.j + c;
+ for (g = 0; g < b.p; g++) {
+ h = g - b.k + d;
+ YMb(b, e, g) ? jNb(a, f, h) || lNb(a, f, h) : $Mb(b, e, g) && (hNb(a, f, h) || mNb(a, f, h));
+ }
+ }
+ }
+ function Ooc(a, b, c) {
+ var d;
+ d = b.c.i;
+ if (d.k == (j0b(), g0b)) {
+ yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11));
+ yNb(a, Wsc, BD(vNb(d, Wsc), 11));
+ } else {
+ yNb(a, (wtc(), Vsc), b.c);
+ yNb(a, Wsc, c.d);
+ }
+ }
+ function l6c(a, b, c) {
+ i6c();
+ var d, e, f, g, h, i;
+ g = b / 2;
+ f = c / 2;
+ d = $wnd.Math.abs(a.a);
+ e = $wnd.Math.abs(a.b);
+ h = 1;
+ i = 1;
+ d > g && (h = g / d);
+ e > f && (i = f / e);
+ Y6c(a, $wnd.Math.min(h, i));
+ return a;
+ }
+ function ond() {
+ Smd();
+ var b, c;
+ try {
+ c = BD(mUd((yFd(), xFd), yte), 2014);
+ if (c) {
+ return c;
+ }
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 102)) {
+ b = a;
+ uvd((h0d(), b));
+ } else
+ throw vbb(a);
+ }
+ return new knd();
+ }
+ function Y9d() {
+ A9d();
+ var b, c;
+ try {
+ c = BD(mUd((yFd(), xFd), Ewe), 2024);
+ if (c) {
+ return c;
+ }
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 102)) {
+ b = a;
+ uvd((h0d(), b));
+ } else
+ throw vbb(a);
+ }
+ return new U9d();
+ }
+ function qZd() {
+ Smd();
+ var b, c;
+ try {
+ c = BD(mUd((yFd(), xFd), _ve), 1941);
+ if (c) {
+ return c;
+ }
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 102)) {
+ b = a;
+ uvd((h0d(), b));
+ } else
+ throw vbb(a);
+ }
+ return new mZd();
+ }
+ function HQd(a, b, c) {
+ var d, e;
+ e = a.e;
+ a.e = b;
+ if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
+ d = new nSd(a, 1, 4, e, b);
+ !c ? c = d : c.Ei(d);
+ }
+ e != b && (b ? c = QQd(a, MQd(a, b), c) : c = QQd(a, a.a, c));
+ return c;
+ }
+ function nB() {
+ eB.call(this);
+ this.e = -1;
+ this.a = false;
+ this.p = Rie;
+ this.k = -1;
+ this.c = -1;
+ this.b = -1;
+ this.g = false;
+ this.f = -1;
+ this.j = -1;
+ this.n = -1;
+ this.i = -1;
+ this.d = -1;
+ this.o = Rie;
+ }
+ function qEb(a, b) {
+ var c, d, e;
+ d = a.b.d.d;
+ a.a || (d += a.b.d.a);
+ e = b.b.d.d;
+ b.a || (e += b.b.d.a);
+ c = Kdb(d, e);
+ if (c == 0) {
+ if (!a.a && b.a) {
+ return -1;
+ } else if (!b.a && a.a) {
+ return 1;
+ }
+ }
+ return c;
+ }
+ function eOb(a, b) {
+ var c, d, e;
+ d = a.b.b.d;
+ a.a || (d += a.b.b.a);
+ e = b.b.b.d;
+ b.a || (e += b.b.b.a);
+ c = Kdb(d, e);
+ if (c == 0) {
+ if (!a.a && b.a) {
+ return -1;
+ } else if (!b.a && a.a) {
+ return 1;
+ }
+ }
+ return c;
+ }
+ function PVb(a, b) {
+ var c, d, e;
+ d = a.b.g.d;
+ a.a || (d += a.b.g.a);
+ e = b.b.g.d;
+ b.a || (e += b.b.g.a);
+ c = Kdb(d, e);
+ if (c == 0) {
+ if (!a.a && b.a) {
+ return -1;
+ } else if (!b.a && a.a) {
+ return 1;
+ }
+ }
+ return c;
+ }
+ function ZTb() {
+ ZTb = ccb;
+ WTb = c3c(e3c(e3c(e3c(new j3c(), (qUb(), oUb), (S8b(), m8b)), oUb, q8b), pUb, x8b), pUb, a8b);
+ YTb = e3c(e3c(new j3c(), oUb, S7b), oUb, b8b);
+ XTb = c3c(new j3c(), pUb, d8b);
+ }
+ function s3b(a) {
+ var b, c, d, e, f;
+ b = BD(vNb(a, (wtc(), Csc)), 83);
+ f = a.n;
+ for (d = b.Cc().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 306);
+ e = c.i;
+ e.c += f.a;
+ e.d += f.b;
+ c.c ? VHb(c) : XHb(c);
+ }
+ yNb(a, Csc, null);
+ }
+ function qmc(a, b, c) {
+ var d, e;
+ e = a.b;
+ d = e.d;
+ switch (b.g) {
+ case 1:
+ return -d.d - c;
+ case 2:
+ return e.o.a + d.c + c;
+ case 3:
+ return e.o.b + d.a + c;
+ case 4:
+ return -d.b - c;
+ default:
+ return -1;
+ }
+ }
+ function BXc(a) {
+ var b, c, d, e, f;
+ d = 0;
+ e = dme;
+ if (a.b) {
+ for (b = 0; b < 360; b++) {
+ c = b * 0.017453292519943295;
+ zXc(a, a.d, 0, 0, dre, c);
+ f = a.b.ig(a.d);
+ if (f < e) {
+ d = c;
+ e = f;
+ }
+ }
+ }
+ zXc(a, a.d, 0, 0, dre, d);
+ }
+ function E$c(a, b) {
+ var c, d, e, f;
+ f = new Lqb();
+ b.e = null;
+ b.f = null;
+ for (d = new olb(b.i); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 65);
+ e = BD(Ohb(a.g, c.a), 46);
+ c.a = D6c(c.b);
+ Rhb(f, c.a, e);
+ }
+ a.g = f;
+ }
+ function t$c(a, b, c) {
+ var d, e, f, g, h, i;
+ e = b - a.e;
+ f = e / a.d.c.length;
+ g = 0;
+ for (i = new olb(a.d); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 443);
+ d = a.b - h.b + c;
+ _Zc(h, h.e + g * f, h.f);
+ XZc(h, f, d);
+ ++g;
+ }
+ }
+ function YBd(a) {
+ var b;
+ a.f.qj();
+ if (a.b != -1) {
+ ++a.b;
+ b = a.f.d[a.a];
+ if (a.b < b.i) {
+ return;
+ }
+ ++a.a;
+ }
+ for (; a.a < a.f.d.length; ++a.a) {
+ b = a.f.d[a.a];
+ if (!!b && b.i != 0) {
+ a.b = 0;
+ return;
+ }
+ }
+ a.b = -1;
+ }
+ function j0d(a, b) {
+ var c, d, e;
+ e = b.c.length;
+ c = l0d(a, e == 0 ? "" : (tCb(0, b.c.length), GD(b.c[0])));
+ for (d = 1; d < e && !!c; ++d) {
+ c = BD(c, 49).oh((tCb(d, b.c.length), GD(b.c[d])));
+ }
+ return c;
+ }
+ function rEc(a, b) {
+ var c, d;
+ for (d = new olb(b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 10);
+ a.c[c.c.p][c.p].a = Aub(a.i);
+ a.c[c.c.p][c.p].d = Edb(a.c[c.c.p][c.p].a);
+ a.c[c.c.p][c.p].b = 1;
+ }
+ }
+ function _dd(a, b) {
+ var c, d, e, f;
+ f = 0;
+ for (d = new olb(a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 157);
+ f += $wnd.Math.pow(red(c) * qed(c) - b, 2);
+ }
+ e = $wnd.Math.sqrt(f / (a.c.length - 1));
+ return e;
+ }
+ function LHc(a, b, c, d) {
+ var e, f, g;
+ f = GHc(a, b, c, d);
+ g = MHc(a, f);
+ bIc(a, b, c, d);
+ yHc(a.b);
+ mmb();
+ Okb(f, new lIc(a));
+ e = MHc(a, f);
+ bIc(a, c, b, d);
+ yHc(a.b);
+ return new vgd(meb(g), meb(e));
+ }
+ function cJc(a, b, c) {
+ var d, e;
+ Odd(c, "Interactive node placement", 1);
+ a.a = BD(vNb(b, (wtc(), otc)), 304);
+ for (e = new olb(b.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ bJc(a, d);
+ }
+ Qdd(c);
+ }
+ function MVc(a, b) {
+ var c;
+ Odd(b, "General Compactor", 1);
+ b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
+ c = qWc(BD(hkd(a, (ZWc(), LWc)), 380));
+ c.hg(a);
+ b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
+ }
+ function Dfd(a, b, c) {
+ var d, e;
+ nmd(a, a.j + b, a.k + c);
+ for (e = new Fyd((!a.a && (a.a = new xMd(y2, a, 5)), a.a)); e.e != e.i.gc(); ) {
+ d = BD(Dyd(e), 469);
+ ukd(d, d.a + b, d.b + c);
+ }
+ gmd(a, a.b + b, a.c + c);
+ }
+ function vld(a, b, c, d) {
+ switch (c) {
+ case 7:
+ return !a.e && (a.e = new y5d(B2, a, 7, 4)), Sxd(a.e, b, d);
+ case 8:
+ return !a.d && (a.d = new y5d(B2, a, 8, 5)), Sxd(a.d, b, d);
+ }
+ return Fkd(a, b, c, d);
+ }
+ function wld(a, b, c, d) {
+ switch (c) {
+ case 7:
+ return !a.e && (a.e = new y5d(B2, a, 7, 4)), Txd(a.e, b, d);
+ case 8:
+ return !a.d && (a.d = new y5d(B2, a, 8, 5)), Txd(a.d, b, d);
+ }
+ return Gkd(a, b, c, d);
+ }
+ function lqd(a, b, c) {
+ var d, e, f, g, h;
+ if (c) {
+ f = c.a.length;
+ d = new Yge(f);
+ for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
+ g = BD(h.Pb(), 19);
+ e = Zpd(c, g.a);
+ !!e && drd(a, e, b);
+ }
+ }
+ }
+ function HAd(a, b, c) {
+ var d, e, f, g, h;
+ a.qj();
+ f = b == null ? 0 : tb(b);
+ if (a.f > 0) {
+ g = (f & Ohe) % a.d.length;
+ e = wAd(a, g, f, b);
+ if (e) {
+ h = e.ed(c);
+ return h;
+ }
+ }
+ d = a.tj(f, b, c);
+ a.c.Fc(d);
+ return null;
+ }
+ function t1d(a, b) {
+ var c, d, e, f;
+ switch (o1d(a, b)._k()) {
+ case 3:
+ case 2: {
+ c = OKd(b);
+ for (e = 0, f = c.i; e < f; ++e) {
+ d = BD(qud(c, e), 34);
+ if ($1d(q1d(a, d)) == 5) {
+ return d;
+ }
+ }
+ break;
+ }
+ }
+ return null;
+ }
+ function Qs(a) {
+ var b, c, d, e, f;
+ if (Lp(a.f, a.b.length)) {
+ d = KC(BG, Gie, 330, a.b.length * 2, 0, 1);
+ a.b = d;
+ e = d.length - 1;
+ for (c = a.a; c != a; c = c.Rd()) {
+ f = BD(c, 330);
+ b = f.d & e;
+ f.a = d[b];
+ d[b] = f;
+ }
+ }
+ }
+ function DJb(a, b) {
+ var c, d, e, f;
+ f = 0;
+ for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 111);
+ f = $wnd.Math.max(f, d.e.a + d.b.rf().a);
+ }
+ c = BD(Mpb(a.b, b), 124);
+ c.n.b = 0;
+ c.a.a = f;
+ }
+ function MKb(a, b) {
+ var c, d, e, f;
+ c = 0;
+ for (f = BD(BD(Qc(a.r, b), 21), 84).Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 111);
+ c = $wnd.Math.max(c, e.e.b + e.b.rf().b);
+ }
+ d = BD(Mpb(a.b, b), 124);
+ d.n.d = 0;
+ d.a.b = c;
+ }
+ function INc(a) {
+ var b, c;
+ c = BD(vNb(a, (wtc(), Ksc)), 21);
+ b = k3c(zNc);
+ c.Hc((Orc(), Lrc)) && d3c(b, CNc);
+ c.Hc(Nrc) && d3c(b, ENc);
+ c.Hc(Erc) && d3c(b, ANc);
+ c.Hc(Grc) && d3c(b, BNc);
+ return b;
+ }
+ function j1c(a, b) {
+ var c;
+ Odd(b, "Delaunay triangulation", 1);
+ c = new Rkb();
+ Hkb(a.i, new n1c(c));
+ Ccb(DD(vNb(a, (XNb(), VNb)))) && "null10bw";
+ !a.e ? a.e = NCb(c) : ye(a.e, NCb(c));
+ Qdd(b);
+ }
+ function q6c(a) {
+ if (a < 0) {
+ throw vbb(new Wdb("The input must be positive"));
+ } else
+ return a < h6c.length ? Sbb(h6c[a]) : $wnd.Math.sqrt(dre * a) * (y6c(a, a) / x6c(2.718281828459045, a));
+ }
+ function pud(a, b) {
+ var c;
+ if (a.ni() && b != null) {
+ for (c = 0; c < a.i; ++c) {
+ if (pb(b, a.g[c])) {
+ return true;
+ }
+ }
+ } else {
+ for (c = 0; c < a.i; ++c) {
+ if (PD(a.g[c]) === PD(b)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function jr(a, b) {
+ if (b == null) {
+ while (a.a.Ob()) {
+ if (BD(a.a.Pb(), 42).dd() == null) {
+ return true;
+ }
+ }
+ } else {
+ while (a.a.Ob()) {
+ if (pb(b, BD(a.a.Pb(), 42).dd())) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function zy(a, b) {
+ var c, d, e;
+ if (b === a) {
+ return true;
+ } else if (JD(b, 664)) {
+ e = BD(b, 1947);
+ return Ue((d = a.g, !d ? a.g = new vi(a) : d), (c = e.g, !c ? e.g = new vi(e) : c));
+ } else {
+ return false;
+ }
+ }
+ function Tz(a) {
+ var b, c, d, e;
+ b = "Sz";
+ c = "ez";
+ e = $wnd.Math.min(a.length, 5);
+ for (d = e - 1; d >= 0; d--) {
+ if (dfb(a[d].d, b) || dfb(a[d].d, c)) {
+ a.length >= d + 1 && a.splice(0, d + 1);
+ break;
+ }
+ }
+ return a;
+ }
+ function Abb(a, b) {
+ var c;
+ if (Fbb(a) && Fbb(b)) {
+ c = a / b;
+ if (Kje < c && c < Ije) {
+ return c < 0 ? $wnd.Math.ceil(c) : $wnd.Math.floor(c);
+ }
+ }
+ return zbb(UC(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b, false));
+ }
+ function LZb(a, b) {
+ if (b == a.c.i) {
+ return a.d.i;
+ } else if (b == a.d.i) {
+ return a.c.i;
+ } else {
+ throw vbb(new Wdb("'node' must either be the source node or target node of the edge."));
+ }
+ }
+ function C2b(a) {
+ var b, c, d, e;
+ e = BD(vNb(a, (wtc(), xsc)), 37);
+ if (e) {
+ d = new d7c();
+ b = Q_b(a.c.i);
+ while (b != e) {
+ c = b.e;
+ b = Q_b(c);
+ O6c(P6c(P6c(d, c.n), b.c), b.d.b, b.d.d);
+ }
+ return d;
+ }
+ return w2b;
+ }
+ function Ldc(a) {
+ var b;
+ b = BD(vNb(a, (wtc(), ntc)), 403);
+ MAb(LAb(new YAb(null, new Kub(b.d, 16)), new Ydc()), new $dc(a));
+ MAb(JAb(new YAb(null, new Kub(b.d, 16)), new aec()), new cec(a));
+ }
+ function woc(a, b) {
+ var c, d, e, f;
+ e = b ? U_b(a) : R_b(a);
+ for (d = new Sr(ur(e.a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ f = LZb(c, a);
+ if (f.k == (j0b(), g0b) && f.c != a.c) {
+ return f;
+ }
+ }
+ return null;
+ }
+ function HDc(a) {
+ var b, c, d;
+ for (c = new olb(a.p); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 10);
+ if (b.k != (j0b(), h0b)) {
+ continue;
+ }
+ d = b.o.b;
+ a.i = $wnd.Math.min(a.i, d);
+ a.g = $wnd.Math.max(a.g, d);
+ }
+ }
+ function oEc(a, b, c) {
+ var d, e, f;
+ for (f = new olb(b); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 10);
+ a.c[d.c.p][d.p].e = false;
+ }
+ for (e = new olb(b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 10);
+ nEc(a, d, c);
+ }
+ }
+ function WOc(a, b, c) {
+ var d, e;
+ d = vPc(b.j, c.s, c.c) + vPc(c.e, b.s, b.c);
+ e = vPc(c.j, b.s, b.c) + vPc(b.e, c.s, c.c);
+ if (d == e) {
+ if (d > 0) {
+ a.b += 2;
+ a.a += d;
+ }
+ } else {
+ a.b += 1;
+ a.a += $wnd.Math.min(d, e);
+ }
+ }
+ function Rpd(a, b) {
+ var c, d;
+ d = false;
+ if (ND(b)) {
+ d = true;
+ Qpd(a, new yC(GD(b)));
+ }
+ if (!d) {
+ if (JD(b, 236)) {
+ d = true;
+ Qpd(a, (c = Kcb(BD(b, 236)), new TB(c)));
+ }
+ }
+ if (!d) {
+ throw vbb(new vcb(Ute));
+ }
+ }
+ function IMd(a, b, c, d) {
+ var e, f, g;
+ e = new pSd(a.e, 1, 10, (g = b.c, JD(g, 88) ? BD(g, 26) : (jGd(), _Fd)), (f = c.c, JD(f, 88) ? BD(f, 26) : (jGd(), _Fd)), HLd(a, b), false);
+ !d ? d = e : d.Ei(e);
+ return d;
+ }
+ function T_b(a) {
+ var b, c;
+ switch (BD(vNb(Q_b(a), (Nyc(), ixc)), 420).g) {
+ case 0:
+ b = a.n;
+ c = a.o;
+ return new f7c(b.a + c.a / 2, b.b + c.b / 2);
+ case 1:
+ return new g7c(a.n);
+ default:
+ return null;
+ }
+ }
+ function lrc() {
+ lrc = ccb;
+ irc = new mrc(ane, 0);
+ hrc = new mrc("LEFTUP", 1);
+ krc = new mrc("RIGHTUP", 2);
+ grc = new mrc("LEFTDOWN", 3);
+ jrc = new mrc("RIGHTDOWN", 4);
+ frc = new mrc("BALANCED", 5);
+ }
+ function FFc(a, b, c) {
+ var d, e, f;
+ d = Kdb(a.a[b.p], a.a[c.p]);
+ if (d == 0) {
+ e = BD(vNb(b, (wtc(), Qsc)), 15);
+ f = BD(vNb(c, Qsc), 15);
+ if (e.Hc(c)) {
+ return -1;
+ } else if (f.Hc(b)) {
+ return 1;
+ }
+ }
+ return d;
+ }
+ function jXc(a) {
+ switch (a.g) {
+ case 1:
+ return new XVc();
+ case 2:
+ return new ZVc();
+ case 3:
+ return new VVc();
+ case 0:
+ return null;
+ default:
+ throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function Ikd(a, b, c) {
+ switch (b) {
+ case 1:
+ !a.n && (a.n = new cUd(D2, a, 1, 7));
+ Uxd(a.n);
+ !a.n && (a.n = new cUd(D2, a, 1, 7));
+ ytd(a.n, BD(c, 14));
+ return;
+ case 2:
+ Lkd(a, GD(c));
+ return;
+ }
+ ekd(a, b, c);
+ }
+ function Zkd(a, b, c) {
+ switch (b) {
+ case 3:
+ ald(a, Edb(ED(c)));
+ return;
+ case 4:
+ cld(a, Edb(ED(c)));
+ return;
+ case 5:
+ dld(a, Edb(ED(c)));
+ return;
+ case 6:
+ eld(a, Edb(ED(c)));
+ return;
+ }
+ Ikd(a, b, c);
+ }
+ function Fnd(a, b, c) {
+ var d, e, f;
+ f = (d = new rUd(), d);
+ e = xId(f, b, null);
+ !!e && e.Fi();
+ pnd(f, c);
+ wtd((!a.c && (a.c = new cUd(p5, a, 12, 10)), a.c), f);
+ AId(f, 0);
+ DId(f, 1);
+ CId(f, true);
+ BId(f, true);
+ }
+ function mUd(a, b) {
+ var c, d, e;
+ c = Crb(a.g, b);
+ if (JD(c, 235)) {
+ e = BD(c, 235);
+ e.Qh() == null && void 0;
+ return e.Nh();
+ } else if (JD(c, 498)) {
+ d = BD(c, 1938);
+ e = d.b;
+ return e;
+ } else {
+ return null;
+ }
+ }
+ function Ui(a, b, c, d) {
+ var e, f;
+ Qb(b);
+ Qb(c);
+ f = BD(tn(a.d, b), 19);
+ Ob(!!f, "Row %s not in %s", b, a.e);
+ e = BD(tn(a.b, c), 19);
+ Ob(!!e, "Column %s not in %s", c, a.c);
+ return Wi(a, f.a, e.a, d);
+ }
+ function JC(a, b, c, d, e, f, g) {
+ var h, i, j, k, l;
+ k = e[f];
+ j = f == g - 1;
+ h = j ? d : 0;
+ l = LC(h, k);
+ d != 10 && OC(GC(a, g - f), b[f], c[f], h, l);
+ if (!j) {
+ ++f;
+ for (i = 0; i < k; ++i) {
+ l[i] = JC(a, b, c, d, e, f, g);
+ }
+ }
+ return l;
+ }
+ function Eyd(b) {
+ if (b.g == -1) {
+ throw vbb(new Ydb());
+ }
+ b.mj();
+ try {
+ b.i.$c(b.g);
+ b.f = b.i.j;
+ b.g < b.e && --b.e;
+ b.g = -1;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ throw vbb(new Apb());
+ } else
+ throw vbb(a);
+ }
+ }
+ function hYb(a, b) {
+ a.b.a = $wnd.Math.min(a.b.a, b.c);
+ a.b.b = $wnd.Math.min(a.b.b, b.d);
+ a.a.a = $wnd.Math.max(a.a.a, b.c);
+ a.a.b = $wnd.Math.max(a.a.b, b.d);
+ return a.c[a.c.length] = b, true;
+ }
+ function nZb(a) {
+ var b, c, d, e;
+ e = -1;
+ d = 0;
+ for (c = new olb(a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 243);
+ if (b.c == (KAc(), HAc)) {
+ e = d == 0 ? 0 : d - 1;
+ break;
+ } else
+ d == a.c.length - 1 && (e = d);
+ d += 1;
+ }
+ return e;
+ }
+ function UZc(a) {
+ var b, c, d, e;
+ e = 0;
+ b = 0;
+ for (d = new olb(a.c); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 33);
+ dld(c, a.e + e);
+ eld(c, a.f);
+ e += c.g + a.b;
+ b = $wnd.Math.max(b, c.f + a.b);
+ }
+ a.d = e - a.b;
+ a.a = b - a.b;
+ }
+ function bEb(a) {
+ var b, c, d;
+ for (c = new olb(a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 57);
+ d = b.d.c;
+ b.d.c = b.d.d;
+ b.d.d = d;
+ d = b.d.b;
+ b.d.b = b.d.a;
+ b.d.a = d;
+ d = b.b.a;
+ b.b.a = b.b.b;
+ b.b.b = d;
+ }
+ RDb(a);
+ }
+ function BVb(a) {
+ var b, c, d;
+ for (c = new olb(a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 81);
+ d = b.g.c;
+ b.g.c = b.g.d;
+ b.g.d = d;
+ d = b.g.b;
+ b.g.b = b.g.a;
+ b.g.a = d;
+ d = b.e.a;
+ b.e.a = b.e.b;
+ b.e.b = d;
+ }
+ sVb(a);
+ }
+ function Lmc(a) {
+ var b, c, d, e, f;
+ f = Ec(a.k);
+ for (c = (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])), d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ if (b != Scd && !f.Hc(b)) {
+ return b;
+ }
+ }
+ return null;
+ }
+ function znc(a, b) {
+ var c, d;
+ d = BD(Etb(KAb(JAb(new YAb(null, new Kub(b.j, 16)), new Pnc()))), 11);
+ if (d) {
+ c = BD(Ikb(d.e, 0), 17);
+ if (c) {
+ return BD(vNb(c, (wtc(), Zsc)), 19).a;
+ }
+ }
+ return yzc(a.b);
+ }
+ function CCc(a, b) {
+ var c, d, e, f;
+ for (f = new olb(b.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ Blb(a.d);
+ for (d = new Sr(ur(U_b(e).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ zCc(a, e, c.d.i);
+ }
+ }
+ }
+ function NZc(a, b) {
+ var c, d;
+ Lkb(a.b, b);
+ for (d = new olb(a.n); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 211);
+ if (Jkb(c.c, b, 0) != -1) {
+ Lkb(c.c, b);
+ UZc(c);
+ c.c.c.length == 0 && Lkb(a.n, c);
+ break;
+ }
+ }
+ HZc(a);
+ }
+ function $Zc(a, b) {
+ var c, d, e, f, g;
+ g = a.f;
+ e = 0;
+ f = 0;
+ for (d = new olb(a.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 187);
+ OZc(c, a.e, g);
+ KZc(c, b);
+ f = $wnd.Math.max(f, c.r);
+ g += c.d + a.c;
+ e = g;
+ }
+ a.d = f;
+ a.b = e;
+ }
+ function hVc(a) {
+ var b, c;
+ c = $sd(a);
+ if (Qq(c)) {
+ return null;
+ } else {
+ b = (Qb(c), BD(mr(new Sr(ur(c.a.Kc(), new Sq()))), 79));
+ return atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82));
+ }
+ }
+ function XId(a) {
+ var b;
+ if (!a.o) {
+ b = a.Lj();
+ b ? a.o = new dYd(a, a, null) : a.rk() ? a.o = new uVd(a, null) : $1d(q1d((O6d(), M6d), a)) == 1 ? a.o = new nYd(a) : a.o = new sYd(a, null);
+ }
+ return a.o;
+ }
+ function w6d(a, b, c, d) {
+ var e, f, g, h, i;
+ if (c.mh(b)) {
+ e = (g = b, !g ? null : BD(d, 49).xh(g));
+ if (e) {
+ i = c.ah(b);
+ h = b.t;
+ if (h > 1 || h == -1) {
+ f = BD(i, 15);
+ e.Wb(t6d(a, f));
+ } else {
+ e.Wb(s6d(a, BD(i, 56)));
+ }
+ }
+ }
+ }
+ function Zbb(b, c, d, e) {
+ Ybb();
+ var f = Wbb;
+ function g() {
+ for (var a = 0; a < f.length; a++) {
+ f[a]();
+ }
+ }
+ if (b) {
+ try {
+ Ihe(g)();
+ } catch (a) {
+ b(c, a);
+ }
+ } else {
+ Ihe(g)();
+ }
+ }
+ function Kgc(a) {
+ var b, c, d, e, f;
+ for (d = new nib(new eib(a.b).a); d.b; ) {
+ c = lib(d);
+ b = BD(c.cd(), 10);
+ f = BD(BD(c.dd(), 46).a, 10);
+ e = BD(BD(c.dd(), 46).b, 8);
+ P6c(X6c(b.n), P6c(R6c(f.n), e));
+ }
+ }
+ function llc(a) {
+ switch (BD(vNb(a.b, (Nyc(), Vwc)), 375).g) {
+ case 1:
+ MAb(NAb(LAb(new YAb(null, new Kub(a.d, 16)), new Glc()), new Ilc()), new Klc());
+ break;
+ case 2:
+ nlc(a);
+ break;
+ case 0:
+ mlc(a);
+ }
+ }
+ function KXc(a, b, c) {
+ var d;
+ Odd(c, "Straight Line Edge Routing", 1);
+ c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd));
+ d = BD(hkd(b, (MUc(), LUc)), 33);
+ LXc(a, d);
+ c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd));
+ }
+ function i8c() {
+ i8c = ccb;
+ h8c = new j8c("V_TOP", 0);
+ g8c = new j8c("V_CENTER", 1);
+ f8c = new j8c("V_BOTTOM", 2);
+ d8c = new j8c("H_LEFT", 3);
+ c8c = new j8c("H_CENTER", 4);
+ e8c = new j8c("H_RIGHT", 5);
+ }
+ function gLd(a) {
+ var b;
+ if ((a.Db & 64) != 0)
+ return mKd(a);
+ b = new Jfb(mKd(a));
+ b.a += " (abstract: ";
+ Ffb(b, (a.Bb & 256) != 0);
+ b.a += ", interface: ";
+ Ffb(b, (a.Bb & 512) != 0);
+ b.a += ")";
+ return b.a;
+ }
+ function l3d(a, b, c, d) {
+ var e, f, g, h;
+ if (oid(a.e)) {
+ e = b.ak();
+ h = b.dd();
+ f = c.dd();
+ g = H2d(a, 1, e, h, f, e.$j() ? M2d(a, e, f, JD(e, 99) && (BD(e, 18).Bb & Tje) != 0) : -1, true);
+ d ? d.Ei(g) : d = g;
+ }
+ return d;
+ }
+ function kz(a) {
+ var b;
+ if (a.c == null) {
+ b = PD(a.b) === PD(iz) ? null : a.b;
+ a.d = b == null ? Xhe : MD(b) ? nz(FD(b)) : ND(b) ? Vie : hdb(rb(b));
+ a.a = a.a + ": " + (MD(b) ? mz(FD(b)) : b + "");
+ a.c = "(" + a.d + ") " + a.a;
+ }
+ }
+ function Wgb(a, b) {
+ this.e = a;
+ if (Bbb(xbb(b, -4294967296), 0)) {
+ this.d = 1;
+ this.a = OC(GC(WD, 1), oje, 25, 15, [Tbb(b)]);
+ } else {
+ this.d = 2;
+ this.a = OC(GC(WD, 1), oje, 25, 15, [Tbb(b), Tbb(Obb(b, 32))]);
+ }
+ }
+ function yrb() {
+ function b() {
+ try {
+ return (/* @__PURE__ */ new Map()).entries().next().done;
+ } catch (a) {
+ return false;
+ }
+ }
+ if (typeof Map === Nhe && Map.prototype.entries && b()) {
+ return Map;
+ } else {
+ return zrb();
+ }
+ }
+ function VPc(a, b) {
+ var c, d, e, f;
+ f = new Bib(a.e, 0);
+ c = 0;
+ while (f.b < f.d.gc()) {
+ d = Edb((sCb(f.b < f.d.gc()), ED(f.d.Xb(f.c = f.b++))));
+ e = d - b;
+ if (e > Oqe) {
+ return c;
+ } else
+ e > -1e-6 && ++c;
+ }
+ return c;
+ }
+ function PQd(a, b) {
+ var c;
+ if (b != a.b) {
+ c = null;
+ !!a.b && (c = lid(a.b, a, -4, c));
+ !!b && (c = kid(b, a, -4, c));
+ c = GQd(a, b, c);
+ !!c && c.Fi();
+ } else
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b));
+ }
+ function SQd(a, b) {
+ var c;
+ if (b != a.f) {
+ c = null;
+ !!a.f && (c = lid(a.f, a, -1, c));
+ !!b && (c = kid(b, a, -1, c));
+ c = IQd(a, b, c);
+ !!c && c.Fi();
+ } else
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, b, b));
+ }
+ function E9d(a) {
+ var b, c, d;
+ if (a == null)
+ return null;
+ c = BD(a, 15);
+ if (c.dc())
+ return "";
+ d = new Hfb();
+ for (b = c.Kc(); b.Ob(); ) {
+ Efb(d, (Q8d(), GD(b.Pb())));
+ d.a += " ";
+ }
+ return lcb(d, d.a.length - 1);
+ }
+ function I9d(a) {
+ var b, c, d;
+ if (a == null)
+ return null;
+ c = BD(a, 15);
+ if (c.dc())
+ return "";
+ d = new Hfb();
+ for (b = c.Kc(); b.Ob(); ) {
+ Efb(d, (Q8d(), GD(b.Pb())));
+ d.a += " ";
+ }
+ return lcb(d, d.a.length - 1);
+ }
+ function qEc(a, b, c) {
+ var d, e;
+ d = a.c[b.c.p][b.p];
+ e = a.c[c.c.p][c.p];
+ if (d.a != null && e.a != null) {
+ return Ddb(d.a, e.a);
+ } else if (d.a != null) {
+ return -1;
+ } else if (e.a != null) {
+ return 1;
+ }
+ return 0;
+ }
+ function zqd(a, b) {
+ var c, d, e, f, g, h;
+ if (b) {
+ f = b.a.length;
+ c = new Yge(f);
+ for (h = (c.b - c.a) * c.c < 0 ? (Xge(), Wge) : new she(c); h.Ob(); ) {
+ g = BD(h.Pb(), 19);
+ e = Zpd(b, g.a);
+ d = new Crd(a);
+ Aqd(d.a, e);
+ }
+ }
+ }
+ function Qqd(a, b) {
+ var c, d, e, f, g, h;
+ if (b) {
+ f = b.a.length;
+ c = new Yge(f);
+ for (h = (c.b - c.a) * c.c < 0 ? (Xge(), Wge) : new she(c); h.Ob(); ) {
+ g = BD(h.Pb(), 19);
+ e = Zpd(b, g.a);
+ d = new lrd(a);
+ nqd(d.a, e);
+ }
+ }
+ }
+ function eFd(b) {
+ var c;
+ if (b != null && b.length > 0 && bfb(b, b.length - 1) == 33) {
+ try {
+ c = PEd(qfb(b, 0, b.length - 1));
+ return c.e == null;
+ } catch (a) {
+ a = ubb(a);
+ if (!JD(a, 32))
+ throw vbb(a);
+ }
+ }
+ return false;
+ }
+ function h3d(a, b, c) {
+ var d, e, f;
+ d = b.ak();
+ f = b.dd();
+ e = d.$j() ? H2d(a, 3, d, null, f, M2d(a, d, f, JD(d, 99) && (BD(d, 18).Bb & Tje) != 0), true) : H2d(a, 1, d, d.zj(), f, -1, true);
+ c ? c.Ei(e) : c = e;
+ return c;
+ }
+ function Vee() {
+ var a, b, c;
+ b = 0;
+ for (a = 0; a < "X".length; a++) {
+ c = Uee((BCb(a, "X".length), "X".charCodeAt(a)));
+ if (c == 0)
+ throw vbb(new mde("Unknown Option: " + "X".substr(a)));
+ b |= c;
+ }
+ return b;
+ }
+ function mZb(a, b, c) {
+ var d, e, f;
+ d = Q_b(b);
+ e = a_b(d);
+ f = new H0b();
+ F0b(f, b);
+ switch (c.g) {
+ case 1:
+ G0b(f, Wcd(Zcd(e)));
+ break;
+ case 2:
+ G0b(f, Zcd(e));
+ }
+ yNb(f, (Nyc(), Uxc), ED(vNb(a, Uxc)));
+ return f;
+ }
+ function U9b(a) {
+ var b, c;
+ b = BD(Rr(new Sr(ur(R_b(a.a).a.Kc(), new Sq()))), 17);
+ c = BD(Rr(new Sr(ur(U_b(a.a).a.Kc(), new Sq()))), 17);
+ return Ccb(DD(vNb(b, (wtc(), ltc)))) || Ccb(DD(vNb(c, ltc)));
+ }
+ function Xjc() {
+ Xjc = ccb;
+ Tjc = new Yjc("ONE_SIDE", 0);
+ Vjc = new Yjc("TWO_SIDES_CORNER", 1);
+ Wjc = new Yjc("TWO_SIDES_OPPOSING", 2);
+ Ujc = new Yjc("THREE_SIDES", 3);
+ Sjc = new Yjc("FOUR_SIDES", 4);
+ }
+ function jkc(a, b, c, d, e) {
+ var f, g;
+ f = BD(GAb(JAb(b.Oc(), new _kc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
+ g = BD(Si(a.b, c, d), 15);
+ e == 0 ? g.Wc(0, f) : g.Gc(f);
+ }
+ function KDc(a, b) {
+ var c, d, e, f, g;
+ for (f = new olb(b.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ for (d = new Sr(ur(R_b(e).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ g = c.c.i.p;
+ a.n[g] = a.n[g] - 1;
+ }
+ }
+ }
+ function cnc(a, b) {
+ var c, d, e, f, g;
+ for (f = new olb(b.d); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 101);
+ g = BD(Ohb(a.c, e), 112).o;
+ for (d = new Gqb(e.b); d.a < d.c.a.length; ) {
+ c = BD(Fqb(d), 61);
+ ojc(e, c, g);
+ }
+ }
+ }
+ function HJc(a) {
+ var b, c;
+ for (c = new olb(a.e.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 29);
+ YJc(a, b);
+ }
+ MAb(JAb(LAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new YKc()), new tLc()), new vLc()), new xLc(a));
+ }
+ function Qwd(a, b) {
+ if (!b) {
+ return false;
+ } else {
+ if (a.Di(b)) {
+ return false;
+ }
+ if (!a.i) {
+ if (JD(b, 143)) {
+ a.i = BD(b, 143);
+ return true;
+ } else {
+ a.i = new Hxd();
+ return a.i.Ei(b);
+ }
+ } else {
+ return a.i.Ei(b);
+ }
+ }
+ }
+ function B9d(a) {
+ a = Qge(a, true);
+ if (dfb(kse, a) || dfb("1", a)) {
+ return Bcb(), Acb;
+ } else if (dfb(lse, a) || dfb("0", a)) {
+ return Bcb(), zcb;
+ }
+ throw vbb(new n8d("Invalid boolean value: '" + a + "'"));
+ }
+ function Kd(a, b, c) {
+ var d, e, f;
+ for (e = a.vc().Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 42);
+ f = d.cd();
+ if (PD(b) === PD(f) || b != null && pb(b, f)) {
+ if (c) {
+ d = new pjb(d.cd(), d.dd());
+ e.Qb();
+ }
+ return d;
+ }
+ }
+ return null;
+ }
+ function dKb(a) {
+ $Jb();
+ var b, c, d;
+ if (!a.B.Hc((Idd(), Add))) {
+ return;
+ }
+ d = a.f.i;
+ b = new K6c(a.a.c);
+ c = new p0b();
+ c.b = b.c - d.c;
+ c.d = b.d - d.d;
+ c.c = d.c + d.b - (b.c + b.b);
+ c.a = d.d + d.a - (b.d + b.a);
+ a.e.Ff(c);
+ }
+ function LNb(a, b, c, d) {
+ var e, f, g;
+ g = $wnd.Math.min(c, ONb(BD(a.b, 65), b, c, d));
+ for (f = new olb(a.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 221);
+ e != b && (g = $wnd.Math.min(g, LNb(e, b, g, d)));
+ }
+ return g;
+ }
+ function WZb(a) {
+ var b, c, d, e;
+ e = KC(OQ, nie, 193, a.b.c.length, 0, 2);
+ d = new Bib(a.b, 0);
+ while (d.b < d.d.gc()) {
+ b = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 29));
+ c = d.b - 1;
+ e[c] = l_b(b.a);
+ }
+ return e;
+ }
+ function K3b(a, b, c, d, e) {
+ var f, g, h, i;
+ g = eLb(dLb(iLb(H3b(c)), d), C3b(a, c, e));
+ for (i = Y_b(a, c).Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 11);
+ if (b[h.p]) {
+ f = b[h.p].i;
+ Ekb(g.d, new BLb(f, bLb(g, f)));
+ }
+ }
+ cLb(g);
+ }
+ function sic(a, b) {
+ this.f = new Lqb();
+ this.b = new Lqb();
+ this.j = new Lqb();
+ this.a = a;
+ this.c = b;
+ this.c > 0 && ric(this, this.c - 1, (Ucd(), zcd));
+ this.c < this.a.length - 1 && ric(this, this.c + 1, (Ucd(), Tcd));
+ }
+ function SEc(a) {
+ a.length > 0 && a[0].length > 0 && (this.c = Ccb(DD(vNb(Q_b(a[0][0]), (wtc(), Rsc)))));
+ this.a = KC(CX, nie, 2018, a.length, 0, 2);
+ this.b = KC(FX, nie, 2019, a.length, 0, 2);
+ this.d = new ss();
+ }
+ function tKc(a) {
+ if (a.c.length == 0) {
+ return false;
+ }
+ if ((tCb(0, a.c.length), BD(a.c[0], 17)).c.i.k == (j0b(), g0b)) {
+ return true;
+ }
+ return FAb(NAb(new YAb(null, new Kub(a, 16)), new wKc()), new yKc());
+ }
+ function rRc(a, b, c) {
+ Odd(c, "Tree layout", 1);
+ H2c(a.b);
+ K2c(a.b, (yRc(), uRc), uRc);
+ K2c(a.b, vRc, vRc);
+ K2c(a.b, wRc, wRc);
+ K2c(a.b, xRc, xRc);
+ a.a = F2c(a.b, b);
+ sRc(a, b, Udd(c, 1));
+ Qdd(c);
+ return b;
+ }
+ function HXc(a, b) {
+ var c, d, e, f, g, h, i;
+ h = gVc(b);
+ f = b.f;
+ i = b.g;
+ g = $wnd.Math.sqrt(f * f + i * i);
+ e = 0;
+ for (d = new olb(h); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 33);
+ e += HXc(a, c);
+ }
+ return $wnd.Math.max(e, g);
+ }
+ function dcd() {
+ dcd = ccb;
+ ccd = new gcd(ole, 0);
+ bcd = new gcd("FREE", 1);
+ acd = new gcd("FIXED_SIDE", 2);
+ Zbd = new gcd("FIXED_ORDER", 3);
+ _bd = new gcd("FIXED_RATIO", 4);
+ $bd = new gcd("FIXED_POS", 5);
+ }
+ function c1d(a, b) {
+ var c, d, e;
+ c = b.Hh(a.a);
+ if (c) {
+ e = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), Cwe));
+ for (d = 1; d < (O6d(), N6d).length; ++d) {
+ if (dfb(N6d[d], e)) {
+ return d;
+ }
+ }
+ }
+ return 0;
+ }
+ function Qlb(a) {
+ var b, c, d, e, f;
+ if (a == null) {
+ return Xhe;
+ }
+ f = new xwb(She, "[", "]");
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ uwb(f, "" + b);
+ }
+ return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e);
+ }
+ function Wlb(a) {
+ var b, c, d, e, f;
+ if (a == null) {
+ return Xhe;
+ }
+ f = new xwb(She, "[", "]");
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ uwb(f, "" + b);
+ }
+ return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e);
+ }
+ function Md(a) {
+ var b, c, d;
+ d = new xwb(She, "{", "}");
+ for (c = a.vc().Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 42);
+ uwb(d, Nd(a, b.cd()) + "=" + Nd(a, b.dd()));
+ }
+ return !d.a ? d.c : d.e.length == 0 ? d.a.a : d.a.a + ("" + d.e);
+ }
+ function EGb(a) {
+ var b, c, d, e;
+ while (!akb(a.o)) {
+ c = BD(fkb(a.o), 46);
+ d = BD(c.a, 121);
+ b = BD(c.b, 213);
+ e = xFb(b, d);
+ if (b.e == d) {
+ NFb(e.g, b);
+ d.e = e.e + b.a;
+ } else {
+ NFb(e.b, b);
+ d.e = e.e - b.a;
+ }
+ Ekb(a.e.a, d);
+ }
+ }
+ function F6b(a, b) {
+ var c, d, e;
+ c = null;
+ for (e = BD(b.Kb(a), 20).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 17);
+ if (!c) {
+ c = d.c.i == a ? d.d.i : d.c.i;
+ } else {
+ if ((d.c.i == a ? d.d.i : d.c.i) != c) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+ function uPc(a, b) {
+ var c, d, e, f, g;
+ c = WNc(a, false, b);
+ for (e = new olb(c); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 129);
+ d.d == 0 ? (BOc(d, null), COc(d, null)) : (f = d.a, g = d.b, BOc(d, g), COc(d, f), void 0);
+ }
+ }
+ function qQc(a) {
+ var b, c;
+ b = new j3c();
+ d3c(b, cQc);
+ c = BD(vNb(a, (wtc(), Ksc)), 21);
+ c.Hc((Orc(), Nrc)) && d3c(b, gQc);
+ c.Hc(Erc) && d3c(b, dQc);
+ c.Hc(Lrc) && d3c(b, fQc);
+ c.Hc(Grc) && d3c(b, eQc);
+ return b;
+ }
+ function Xac(a) {
+ var b, c, d, e;
+ Wac(a);
+ for (c = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 17);
+ d = b.c.i == a;
+ e = d ? b.d : b.c;
+ d ? RZb(b, null) : QZb(b, null);
+ yNb(b, (wtc(), ctc), e);
+ _ac(a, e.i);
+ }
+ }
+ function wmc(a, b, c, d) {
+ var e, f;
+ f = b.i;
+ e = c[f.g][a.d[f.g]];
+ switch (f.g) {
+ case 1:
+ e -= d + b.j.b;
+ b.g.b = e;
+ break;
+ case 3:
+ e += d;
+ b.g.b = e;
+ break;
+ case 4:
+ e -= d + b.j.a;
+ b.g.a = e;
+ break;
+ case 2:
+ e += d;
+ b.g.a = e;
+ }
+ }
+ function aVc(a) {
+ var b, c, d;
+ for (c = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 33);
+ d = $sd(b);
+ if (!Qr(new Sr(ur(d.a.Kc(), new Sq())))) {
+ return b;
+ }
+ }
+ return null;
+ }
+ function Cod() {
+ var a;
+ if (yod)
+ return BD(nUd((yFd(), xFd), yte), 2016);
+ a = BD(JD(Phb((yFd(), xFd), yte), 555) ? Phb(xFd, yte) : new Bod(), 555);
+ yod = true;
+ zod(a);
+ Aod(a);
+ Tnd(a);
+ Shb(xFd, yte, a);
+ return a;
+ }
+ function t3d(a, b, c) {
+ var d, e;
+ if (a.j == 0)
+ return c;
+ e = BD(LLd(a, b, c), 72);
+ d = c.ak();
+ if (!d.Ij() || !a.a.rl(d)) {
+ throw vbb(new hz("Invalid entry feature '" + d.Hj().zb + "." + d.ne() + "'"));
+ }
+ return e;
+ }
+ function Qi(a, b) {
+ var c, d, e, f, g, h, i, j;
+ for (h = a.a, i = 0, j = h.length; i < j; ++i) {
+ g = h[i];
+ for (d = g, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ if (PD(b) === PD(c) || b != null && pb(b, c)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function qhb(a) {
+ var b, c, d;
+ if (ybb(a, 0) >= 0) {
+ c = Abb(a, Jje);
+ d = Hbb(a, Jje);
+ } else {
+ b = Pbb(a, 1);
+ c = Abb(b, 5e8);
+ d = Hbb(b, 5e8);
+ d = wbb(Nbb(d, 1), xbb(a, 1));
+ }
+ return Mbb(Nbb(d, 32), xbb(c, Yje));
+ }
+ function oQb(a, b, c) {
+ var d, e;
+ d = (sCb(b.b != 0), BD(Nsb(b, b.a.a), 8));
+ switch (c.g) {
+ case 0:
+ d.b = 0;
+ break;
+ case 2:
+ d.b = a.f;
+ break;
+ case 3:
+ d.a = 0;
+ break;
+ default:
+ d.a = a.g;
+ }
+ e = Jsb(b, 0);
+ Vsb(e, d);
+ return b;
+ }
+ function pmc(a, b, c, d) {
+ var e, f, g, h, i;
+ i = a.b;
+ f = b.d;
+ g = f.j;
+ h = umc(g, i.d[g.g], c);
+ e = P6c(R6c(f.n), f.a);
+ switch (f.j.g) {
+ case 1:
+ case 3:
+ h.a += e.a;
+ break;
+ case 2:
+ case 4:
+ h.b += e.b;
+ }
+ Gsb(d, h, d.c.b, d.c);
+ }
+ function yJc(a, b, c) {
+ var d, e, f, g;
+ g = Jkb(a.e, b, 0);
+ f = new zJc();
+ f.b = c;
+ d = new Bib(a.e, g);
+ while (d.b < d.d.gc()) {
+ e = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 10));
+ e.p = c;
+ Ekb(f.e, e);
+ uib(d);
+ }
+ return f;
+ }
+ function sYc(a, b, c, d) {
+ var e, f, g, h, i;
+ e = null;
+ f = 0;
+ for (h = new olb(b); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 33);
+ i = g.i + g.g;
+ if (a < g.j + g.f + d) {
+ !e ? e = g : c.i - i < c.i - f && (e = g);
+ f = e.i + e.g;
+ }
+ }
+ return !e ? 0 : f + d;
+ }
+ function tYc(a, b, c, d) {
+ var e, f, g, h, i;
+ f = null;
+ e = 0;
+ for (h = new olb(b); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 33);
+ i = g.j + g.f;
+ if (a < g.i + g.g + d) {
+ !f ? f = g : c.j - i < c.j - e && (f = g);
+ e = f.j + f.f;
+ }
+ }
+ return !f ? 0 : e + d;
+ }
+ function mA(a) {
+ var b, c, d;
+ b = false;
+ d = a.b.c.length;
+ for (c = 0; c < d; c++) {
+ if (nA(BD(Ikb(a.b, c), 434))) {
+ if (!b && c + 1 < d && nA(BD(Ikb(a.b, c + 1), 434))) {
+ b = true;
+ BD(Ikb(a.b, c), 434).a = true;
+ }
+ } else {
+ b = false;
+ }
+ }
+ }
+ function Ahb(a, b, c, d, e) {
+ var f, g;
+ f = 0;
+ for (g = 0; g < e; g++) {
+ f = wbb(f, Qbb(xbb(b[g], Yje), xbb(d[g], Yje)));
+ a[g] = Tbb(f);
+ f = Obb(f, 32);
+ }
+ for (; g < c; g++) {
+ f = wbb(f, xbb(b[g], Yje));
+ a[g] = Tbb(f);
+ f = Obb(f, 32);
+ }
+ }
+ function Jhb(a, b) {
+ Dhb();
+ var c, d;
+ d = (Hgb(), Cgb);
+ c = a;
+ for (; b > 1; b >>= 1) {
+ (b & 1) != 0 && (d = Ogb(d, c));
+ c.d == 1 ? c = Ogb(c, c) : c = new Xgb(Lhb(c.a, c.d, KC(WD, oje, 25, c.d << 1, 15, 1)));
+ }
+ d = Ogb(d, c);
+ return d;
+ }
+ function zub() {
+ zub = ccb;
+ var a, b, c, d;
+ wub = KC(UD, Vje, 25, 25, 15, 1);
+ xub = KC(UD, Vje, 25, 33, 15, 1);
+ d = 152587890625e-16;
+ for (b = 32; b >= 0; b--) {
+ xub[b] = d;
+ d *= 0.5;
+ }
+ c = 1;
+ for (a = 24; a >= 0; a--) {
+ wub[a] = c;
+ c *= 0.5;
+ }
+ }
+ function S1b(a) {
+ var b, c;
+ if (Ccb(DD(hkd(a, (Nyc(), fxc))))) {
+ for (c = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 79);
+ if (Qld(b)) {
+ if (Ccb(DD(hkd(b, gxc)))) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+ function kjc(a, b) {
+ var c, d, e;
+ if (Qqb(a.f, b)) {
+ b.b = a;
+ d = b.c;
+ Jkb(a.j, d, 0) != -1 || Ekb(a.j, d);
+ e = b.d;
+ Jkb(a.j, e, 0) != -1 || Ekb(a.j, e);
+ c = b.a.b;
+ if (c.c.length != 0) {
+ !a.i && (a.i = new vjc(a));
+ qjc(a.i, c);
+ }
+ }
+ }
+ function rmc(a) {
+ var b, c, d, e, f;
+ c = a.c.d;
+ d = c.j;
+ e = a.d.d;
+ f = e.j;
+ if (d == f) {
+ return c.p < e.p ? 0 : 1;
+ } else if (Xcd(d) == f) {
+ return 0;
+ } else if (Vcd(d) == f) {
+ return 1;
+ } else {
+ b = a.b;
+ return uqb(b.b, Xcd(d)) ? 0 : 1;
+ }
+ }
+ function lzc() {
+ lzc = ccb;
+ jzc = new nzc(Aqe, 0);
+ hzc = new nzc("LONGEST_PATH", 1);
+ fzc = new nzc("COFFMAN_GRAHAM", 2);
+ gzc = new nzc(Tne, 3);
+ kzc = new nzc("STRETCH_WIDTH", 4);
+ izc = new nzc("MIN_WIDTH", 5);
+ }
+ function E3c(a) {
+ var b;
+ this.d = new Lqb();
+ this.c = a.c;
+ this.e = a.d;
+ this.b = a.b;
+ this.f = new jgd(a.e);
+ this.a = a.a;
+ !a.f ? this.g = (b = BD(gdb(O3), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)) : this.g = a.f;
+ }
+ function grd(a, b) {
+ var c, d, e, f, g, h;
+ e = a;
+ g = $pd(e, "layoutOptions");
+ !g && (g = $pd(e, Dte));
+ if (g) {
+ h = g;
+ d = null;
+ !!h && (d = (f = $B(h, KC(ZI, nie, 2, 0, 6, 1)), new mC(h, f)));
+ if (d) {
+ c = new Drd(h, b);
+ reb(d, c);
+ }
+ }
+ }
+ function atd(a) {
+ if (JD(a, 239)) {
+ return BD(a, 33);
+ } else if (JD(a, 186)) {
+ return mpd(BD(a, 118));
+ } else if (!a) {
+ throw vbb(new Heb(gue));
+ } else {
+ throw vbb(new cgb("Only support nodes and ports."));
+ }
+ }
+ function CA(a, b, c, d) {
+ if (b >= 0 && dfb(a.substr(b, "GMT".length), "GMT")) {
+ c[0] = b + 3;
+ return tA(a, c, d);
+ }
+ if (b >= 0 && dfb(a.substr(b, "UTC".length), "UTC")) {
+ c[0] = b + 3;
+ return tA(a, c, d);
+ }
+ return tA(a, c, d);
+ }
+ function tjc(a, b) {
+ var c, d, e, f, g;
+ f = a.g.a;
+ g = a.g.b;
+ for (d = new olb(a.d); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 70);
+ e = c.n;
+ e.a = f;
+ a.i == (Ucd(), Acd) ? e.b = g + a.j.b - c.o.b : e.b = g;
+ P6c(e, b);
+ f += c.o.a + a.e;
+ }
+ }
+ function Odd(a, b, c) {
+ if (a.b) {
+ throw vbb(new Zdb("The task is already done."));
+ } else if (a.p != null) {
+ return false;
+ } else {
+ a.p = b;
+ a.r = c;
+ a.k && (a.o = (Zfb(), Ibb(Cbb(Date.now()), _ie)));
+ return true;
+ }
+ }
+ function hsd(a) {
+ var b, c, d, e, f, g, h;
+ h = new eC();
+ c = a.tg();
+ e = c != null;
+ e && Upd(h, Vte, a.tg());
+ d = a.ne();
+ f = d != null;
+ f && Upd(h, fue, a.ne());
+ b = a.sg();
+ g = b != null;
+ g && Upd(h, "description", a.sg());
+ return h;
+ }
+ function uId(a, b, c) {
+ var d, e, f;
+ f = a.q;
+ a.q = b;
+ if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
+ e = new nSd(a, 1, 9, f, b);
+ !c ? c = e : c.Ei(e);
+ }
+ if (!b) {
+ !!a.r && (c = a.nk(null, c));
+ } else {
+ d = b.c;
+ d != a.r && (c = a.nk(d, c));
+ }
+ return c;
+ }
+ function IYd(a, b, c) {
+ var d, e, f, g, h;
+ c = (h = b, kid(h, a.e, -1 - a.c, c));
+ g = AYd(a.a);
+ for (f = (d = new nib(new eib(g.a).a), new ZYd(d)); f.a.b; ) {
+ e = BD(lib(f.a).cd(), 87);
+ c = QQd(e, MQd(e, a.a), c);
+ }
+ return c;
+ }
+ function JYd(a, b, c) {
+ var d, e, f, g, h;
+ c = (h = b, lid(h, a.e, -1 - a.c, c));
+ g = AYd(a.a);
+ for (f = (d = new nib(new eib(g.a).a), new ZYd(d)); f.a.b; ) {
+ e = BD(lib(f.a).cd(), 87);
+ c = QQd(e, MQd(e, a.a), c);
+ }
+ return c;
+ }
+ function jhb(a, b, c, d) {
+ var e, f, g;
+ if (d == 0) {
+ $fb(b, 0, a, c, a.length - c);
+ } else {
+ g = 32 - d;
+ a[a.length - 1] = 0;
+ for (f = a.length - 1; f > c; f--) {
+ a[f] |= b[f - c - 1] >>> g;
+ a[f - 1] = b[f - c - 1] << d;
+ }
+ }
+ for (e = 0; e < c; e++) {
+ a[e] = 0;
+ }
+ }
+ function LJb(a) {
+ var b, c, d, e, f;
+ b = 0;
+ c = 0;
+ for (f = a.Kc(); f.Ob(); ) {
+ d = BD(f.Pb(), 111);
+ b = $wnd.Math.max(b, d.d.b);
+ c = $wnd.Math.max(c, d.d.c);
+ }
+ for (e = a.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 111);
+ d.d.b = b;
+ d.d.c = c;
+ }
+ }
+ function TKb(a) {
+ var b, c, d, e, f;
+ c = 0;
+ b = 0;
+ for (f = a.Kc(); f.Ob(); ) {
+ d = BD(f.Pb(), 111);
+ c = $wnd.Math.max(c, d.d.d);
+ b = $wnd.Math.max(b, d.d.a);
+ }
+ for (e = a.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 111);
+ d.d.d = c;
+ d.d.a = b;
+ }
+ }
+ function rpc(a, b) {
+ var c, d, e, f;
+ f = new Rkb();
+ e = 0;
+ d = b.Kc();
+ while (d.Ob()) {
+ c = meb(BD(d.Pb(), 19).a + e);
+ while (c.a < a.f && !Voc(a, c.a)) {
+ c = meb(c.a + 1);
+ ++e;
+ }
+ if (c.a >= a.f) {
+ break;
+ }
+ f.c[f.c.length] = c;
+ }
+ return f;
+ }
+ function sfd(a) {
+ var b, c, d, e;
+ b = null;
+ for (e = new olb(a.wf()); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 181);
+ c = new J6c(d.qf().a, d.qf().b, d.rf().a, d.rf().b);
+ !b ? b = c : H6c(b, c);
+ }
+ !b && (b = new I6c());
+ return b;
+ }
+ function Fkd(a, b, c, d) {
+ var e, f;
+ if (c == 1) {
+ return !a.n && (a.n = new cUd(D2, a, 1, 7)), Sxd(a.n, b, d);
+ }
+ return f = BD(XKd((e = BD(Ajd(a, 16), 26), !e ? a.zh() : e), c), 66), f.Nj().Qj(a, yjd(a), c - aLd(a.zh()), b, d);
+ }
+ function iud(a, b, c) {
+ var d, e, f, g, h;
+ d = c.gc();
+ a.qi(a.i + d);
+ h = a.i - b;
+ h > 0 && $fb(a.g, b, a.g, b + d, h);
+ g = c.Kc();
+ a.i += d;
+ for (e = 0; e < d; ++e) {
+ f = g.Pb();
+ mud(a, b, a.oi(b, f));
+ a.bi(b, f);
+ a.ci();
+ ++b;
+ }
+ return d != 0;
+ }
+ function xId(a, b, c) {
+ var d;
+ if (b != a.q) {
+ !!a.q && (c = lid(a.q, a, -10, c));
+ !!b && (c = kid(b, a, -10, c));
+ c = uId(a, b, c);
+ } else if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
+ d = new nSd(a, 1, 9, b, b);
+ !c ? c = d : c.Ei(d);
+ }
+ return c;
+ }
+ function Yj(a, b, c, d) {
+ Mb((c & oie) == 0, "flatMap does not support SUBSIZED characteristic");
+ Mb((c & 4) == 0, "flatMap does not support SORTED characteristic");
+ Qb(a);
+ Qb(b);
+ return new jk(a, c, d, b);
+ }
+ function Qy(a, b) {
+ vCb(b, "Cannot suppress a null exception.");
+ mCb(b != a, "Exception can not suppress itself.");
+ if (a.i) {
+ return;
+ }
+ a.k == null ? a.k = OC(GC(_I, 1), nie, 78, 0, [b]) : a.k[a.k.length] = b;
+ }
+ function oA(a, b, c, d) {
+ var e, f, g, h, i, j;
+ g = c.length;
+ f = 0;
+ e = -1;
+ j = sfb(a.substr(b), (ntb(), ltb));
+ for (h = 0; h < g; ++h) {
+ i = c[h].length;
+ if (i > f && nfb(j, sfb(c[h], ltb))) {
+ e = h;
+ f = i;
+ }
+ }
+ e >= 0 && (d[0] = b + f);
+ return e;
+ }
+ function MIb(a, b) {
+ var c;
+ c = NIb(a.b.Hf(), b.b.Hf());
+ if (c != 0) {
+ return c;
+ }
+ switch (a.b.Hf().g) {
+ case 1:
+ case 2:
+ return beb(a.b.sf(), b.b.sf());
+ case 3:
+ case 4:
+ return beb(b.b.sf(), a.b.sf());
+ }
+ return 0;
+ }
+ function iRb(a) {
+ var b, c, d;
+ d = a.e.c.length;
+ a.a = IC(WD, [nie, oje], [48, 25], 15, [d, d], 2);
+ for (c = new olb(a.c); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 282);
+ a.a[b.c.b][b.d.b] += BD(vNb(b, (wSb(), oSb)), 19).a;
+ }
+ }
+ function H1c(a, b, c) {
+ Odd(c, "Grow Tree", 1);
+ a.b = b.f;
+ if (Ccb(DD(vNb(b, (XNb(), VNb))))) {
+ a.c = new tOb();
+ D1c(a, null);
+ } else {
+ a.c = new tOb();
+ }
+ a.a = false;
+ F1c(a, b.f);
+ yNb(b, WNb, (Bcb(), a.a ? true : false));
+ Qdd(c);
+ }
+ function Umd(a, b) {
+ var c, d, e, f, g;
+ if (a == null) {
+ return null;
+ } else {
+ g = KC(TD, $ie, 25, 2 * b, 15, 1);
+ for (d = 0, e = 0; d < b; ++d) {
+ c = a[d] >> 4 & 15;
+ f = a[d] & 15;
+ g[e++] = Qmd[c];
+ g[e++] = Qmd[f];
+ }
+ return zfb(g, 0, g.length);
+ }
+ }
+ function j3d(a, b, c) {
+ var d, e, f;
+ d = b.ak();
+ f = b.dd();
+ e = d.$j() ? H2d(a, 4, d, f, null, M2d(a, d, f, JD(d, 99) && (BD(d, 18).Bb & Tje) != 0), true) : H2d(a, d.Kj() ? 2 : 1, d, f, d.zj(), -1, true);
+ c ? c.Ei(e) : c = e;
+ return c;
+ }
+ function wfb(a) {
+ var b, c;
+ if (a >= Tje) {
+ b = Uje + (a - Tje >> 10 & 1023) & aje;
+ c = 56320 + (a - Tje & 1023) & aje;
+ return String.fromCharCode(b) + ("" + String.fromCharCode(c));
+ } else {
+ return String.fromCharCode(a & aje);
+ }
+ }
+ function bKb(a, b) {
+ $Jb();
+ var c, d, e, f;
+ e = BD(BD(Qc(a.r, b), 21), 84);
+ if (e.gc() >= 2) {
+ d = BD(e.Kc().Pb(), 111);
+ c = a.u.Hc((rcd(), mcd));
+ f = a.u.Hc(qcd);
+ return !d.a && !c && (e.gc() == 2 || f);
+ } else {
+ return false;
+ }
+ }
+ function IVc(a, b, c, d, e) {
+ var f, g, h;
+ f = JVc(a, b, c, d, e);
+ h = false;
+ while (!f) {
+ AVc(a, e, true);
+ h = true;
+ f = JVc(a, b, c, d, e);
+ }
+ h && AVc(a, e, false);
+ g = dVc(e);
+ if (g.c.length != 0) {
+ !!a.d && a.d.lg(g);
+ IVc(a, e, c, d, g);
+ }
+ }
+ function Mad() {
+ Mad = ccb;
+ Kad = new Nad(ane, 0);
+ Iad = new Nad("DIRECTED", 1);
+ Lad = new Nad("UNDIRECTED", 2);
+ Gad = new Nad("ASSOCIATION", 3);
+ Jad = new Nad("GENERALIZATION", 4);
+ Had = new Nad("DEPENDENCY", 5);
+ }
+ function kfd(a, b) {
+ var c;
+ if (!mpd(a)) {
+ throw vbb(new Zdb(Sse));
+ }
+ c = mpd(a);
+ switch (b.g) {
+ case 1:
+ return -(a.j + a.f);
+ case 2:
+ return a.i - c.g;
+ case 3:
+ return a.j - c.f;
+ case 4:
+ return -(a.i + a.g);
+ }
+ return 0;
+ }
+ function cub(a, b) {
+ var c, d;
+ uCb(b);
+ d = a.b.c.length;
+ Ekb(a.b, b);
+ while (d > 0) {
+ c = d;
+ d = (d - 1) / 2 | 0;
+ if (a.a.ue(Ikb(a.b, d), b) <= 0) {
+ Nkb(a.b, c, b);
+ return true;
+ }
+ Nkb(a.b, c, Ikb(a.b, d));
+ }
+ Nkb(a.b, d, b);
+ return true;
+ }
+ function BHb(a, b, c, d) {
+ var e, f;
+ e = 0;
+ if (!c) {
+ for (f = 0; f < sHb; f++) {
+ e = $wnd.Math.max(e, qHb(a.a[f][b.g], d));
+ }
+ } else {
+ e = qHb(a.a[c.g][b.g], d);
+ }
+ b == (gHb(), eHb) && !!a.b && (e = $wnd.Math.max(e, a.b.a));
+ return e;
+ }
+ function knc(a, b) {
+ var c, d, e, f, g, h;
+ e = a.i;
+ f = b.i;
+ if (!e || !f) {
+ return false;
+ }
+ if (e.i != f.i || e.i == (Ucd(), zcd) || e.i == (Ucd(), Tcd)) {
+ return false;
+ }
+ g = e.g.a;
+ c = g + e.j.a;
+ h = f.g.a;
+ d = h + f.j.a;
+ return g <= d && c >= h;
+ }
+ function Tpd(a, b, c, d) {
+ var e;
+ e = false;
+ if (ND(d)) {
+ e = true;
+ Upd(b, c, GD(d));
+ }
+ if (!e) {
+ if (KD(d)) {
+ e = true;
+ Tpd(a, b, c, d);
+ }
+ }
+ if (!e) {
+ if (JD(d, 236)) {
+ e = true;
+ Spd(b, c, BD(d, 236));
+ }
+ }
+ if (!e) {
+ throw vbb(new vcb(Ute));
+ }
+ }
+ function W0d(a, b) {
+ var c, d, e;
+ c = b.Hh(a.a);
+ if (c) {
+ e = AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), Sve);
+ if (e != null) {
+ for (d = 1; d < (O6d(), K6d).length; ++d) {
+ if (dfb(K6d[d], e)) {
+ return d;
+ }
+ }
+ }
+ }
+ return 0;
+ }
+ function X0d(a, b) {
+ var c, d, e;
+ c = b.Hh(a.a);
+ if (c) {
+ e = AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), Sve);
+ if (e != null) {
+ for (d = 1; d < (O6d(), L6d).length; ++d) {
+ if (dfb(L6d[d], e)) {
+ return d;
+ }
+ }
+ }
+ }
+ return 0;
+ }
+ function Ve(a, b) {
+ var c, d, e, f;
+ uCb(b);
+ f = a.a.gc();
+ if (f < b.gc()) {
+ for (c = a.a.ec().Kc(); c.Ob(); ) {
+ d = c.Pb();
+ b.Hc(d) && c.Qb();
+ }
+ } else {
+ for (e = b.Kc(); e.Ob(); ) {
+ d = e.Pb();
+ a.a.Bc(d) != null;
+ }
+ }
+ return f != a.a.gc();
+ }
+ function bYb(a) {
+ var b, c;
+ c = R6c(l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])));
+ b = a.i.d;
+ switch (a.j.g) {
+ case 1:
+ c.b -= b.d;
+ break;
+ case 2:
+ c.a += b.c;
+ break;
+ case 3:
+ c.b += b.a;
+ break;
+ case 4:
+ c.a -= b.b;
+ }
+ return c;
+ }
+ function P9b(a) {
+ var b;
+ b = (I9b(), BD(Rr(new Sr(ur(R_b(a).a.Kc(), new Sq()))), 17).c.i);
+ while (b.k == (j0b(), g0b)) {
+ yNb(b, (wtc(), Tsc), (Bcb(), true));
+ b = BD(Rr(new Sr(ur(R_b(b).a.Kc(), new Sq()))), 17).c.i;
+ }
+ }
+ function bIc(a, b, c, d) {
+ var e, f, g, h;
+ h = CHc(b, d);
+ for (g = h.Kc(); g.Ob(); ) {
+ e = BD(g.Pb(), 11);
+ a.d[e.p] = a.d[e.p] + a.c[c.p];
+ }
+ h = CHc(c, d);
+ for (f = h.Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 11);
+ a.d[e.p] = a.d[e.p] - a.c[b.p];
+ }
+ }
+ function Efd(a, b, c) {
+ var d, e;
+ for (e = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); e.e != e.i.gc(); ) {
+ d = BD(Dyd(e), 33);
+ bld(d, d.i + b, d.j + c);
+ }
+ reb((!a.b && (a.b = new cUd(B2, a, 12, 3)), a.b), new Kfd(b, c));
+ }
+ function Mwb(a, b, c, d) {
+ var e, f;
+ f = b;
+ e = f.d == null || a.a.ue(c.d, f.d) > 0 ? 1 : 0;
+ while (f.a[e] != c) {
+ f = f.a[e];
+ e = a.a.ue(c.d, f.d) > 0 ? 1 : 0;
+ }
+ f.a[e] = d;
+ d.b = c.b;
+ d.a[0] = c.a[0];
+ d.a[1] = c.a[1];
+ c.a[0] = null;
+ c.a[1] = null;
+ }
+ function ucd(a) {
+ rcd();
+ var b, c;
+ b = qqb(ncd, OC(GC(E1, 1), Kie, 273, 0, [pcd]));
+ if (Ox(Cx(b, a)) > 1) {
+ return false;
+ }
+ c = qqb(mcd, OC(GC(E1, 1), Kie, 273, 0, [lcd, qcd]));
+ if (Ox(Cx(c, a)) > 1) {
+ return false;
+ }
+ return true;
+ }
+ function fod(a, b) {
+ var c;
+ c = Phb((yFd(), xFd), a);
+ JD(c, 498) ? Shb(xFd, a, new bUd(this, b)) : Shb(xFd, a, this);
+ bod(this, b);
+ if (b == (LFd(), KFd)) {
+ this.wb = BD(this, 1939);
+ BD(b, 1941);
+ } else {
+ this.wb = (NFd(), MFd);
+ }
+ }
+ function lZd(b) {
+ var c, d, e;
+ if (b == null) {
+ return null;
+ }
+ c = null;
+ for (d = 0; d < Pmd.length; ++d) {
+ try {
+ return DQd(Pmd[d], b);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 32)) {
+ e = a;
+ c = e;
+ } else
+ throw vbb(a);
+ }
+ }
+ throw vbb(new rFd(c));
+ }
+ function Dpb() {
+ Dpb = ccb;
+ Bpb = OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]);
+ Cpb = OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]);
+ }
+ function yyb(a) {
+ var b, c, d;
+ b = dfb(typeof b, uke) ? null : new iCb();
+ if (!b) {
+ return;
+ }
+ $xb();
+ c = (d = 900, d >= _ie ? "error" : d >= 900 ? "warn" : d >= 800 ? "info" : "log");
+ gCb(c, a.a);
+ !!a.b && hCb(b, c, a.b, "Exception: ", true);
+ }
+ function vNb(a, b) {
+ var c, d;
+ d = (!a.q && (a.q = new Lqb()), Ohb(a.q, b));
+ if (d != null) {
+ return d;
+ }
+ c = b.wg();
+ JD(c, 4) && (c == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c)), a);
+ return c;
+ }
+ function qUb() {
+ qUb = ccb;
+ lUb = new rUb("P1_CYCLE_BREAKING", 0);
+ mUb = new rUb("P2_LAYERING", 1);
+ nUb = new rUb("P3_NODE_ORDERING", 2);
+ oUb = new rUb("P4_NODE_PLACEMENT", 3);
+ pUb = new rUb("P5_EDGE_ROUTING", 4);
+ }
+ function SUb(a, b) {
+ var c, d, e, f, g;
+ e = b == 1 ? KUb : JUb;
+ for (d = e.a.ec().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 103);
+ for (g = BD(Qc(a.f.c, c), 21).Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 46);
+ Lkb(a.b.b, f.b);
+ Lkb(a.b.a, BD(f.b, 81).d);
+ }
+ }
+ }
+ function IWb(a, b) {
+ AWb();
+ var c;
+ if (a.c == b.c) {
+ if (a.b == b.b || pWb(a.b, b.b)) {
+ c = mWb(a.b) ? 1 : -1;
+ if (a.a && !b.a) {
+ return c;
+ } else if (!a.a && b.a) {
+ return -c;
+ }
+ }
+ return beb(a.b.g, b.b.g);
+ } else {
+ return Kdb(a.c, b.c);
+ }
+ }
+ function y6b(a, b) {
+ var c;
+ Odd(b, "Hierarchical port position processing", 1);
+ c = a.b;
+ c.c.length > 0 && x6b((tCb(0, c.c.length), BD(c.c[0], 29)), a);
+ c.c.length > 1 && x6b(BD(Ikb(c, c.c.length - 1), 29), a);
+ Qdd(b);
+ }
+ function RVc(a, b) {
+ var c, d, e;
+ if (CVc(a, b)) {
+ return true;
+ }
+ for (d = new olb(b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 33);
+ e = hVc(c);
+ if (BVc(a, c, e)) {
+ return true;
+ }
+ if (PVc(a, c) - a.g <= a.a) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function d0c() {
+ d0c = ccb;
+ c0c = (A0c(), z0c);
+ __c = v0c;
+ $_c = t0c;
+ Y_c = p0c;
+ Z_c = r0c;
+ X_c = new q0b(8);
+ W_c = new Osd((Y9c(), f9c), X_c);
+ a0c = new Osd(T9c, 8);
+ b0c = x0c;
+ T_c = k0c;
+ U_c = m0c;
+ V_c = new Osd(y8c, (Bcb(), false));
+ }
+ function X7c() {
+ X7c = ccb;
+ U7c = new q0b(15);
+ T7c = new Osd((Y9c(), f9c), U7c);
+ W7c = new Osd(T9c, 15);
+ V7c = new Osd(D9c, meb(0));
+ O7c = I8c;
+ Q7c = Y8c;
+ S7c = b9c;
+ L7c = new Osd(r8c, pse);
+ P7c = O8c;
+ R7c = _8c;
+ M7c = t8c;
+ N7c = w8c;
+ }
+ function jtd(a) {
+ if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
+ throw vbb(new Wdb(iue));
+ }
+ return atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82));
+ }
+ function ktd(a) {
+ if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
+ throw vbb(new Wdb(iue));
+ }
+ return btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82));
+ }
+ function mtd(a) {
+ if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
+ throw vbb(new Wdb(iue));
+ }
+ return btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82));
+ }
+ function ltd(a) {
+ if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
+ throw vbb(new Wdb(iue));
+ }
+ return atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82));
+ }
+ function Dvd(a, b, c) {
+ var d, e, f;
+ ++a.j;
+ e = a.Vi();
+ if (b >= e || b < 0)
+ throw vbb(new qcb(lue + b + mue + e));
+ if (c >= e || c < 0)
+ throw vbb(new qcb(nue + c + mue + e));
+ b != c ? d = (f = a.Ti(c), a.Hi(b, f), f) : d = a.Oi(c);
+ return d;
+ }
+ function m6d(a) {
+ var b, c, d;
+ d = a;
+ if (a) {
+ b = 0;
+ for (c = a.Ug(); c; c = c.Ug()) {
+ if (++b > Wje) {
+ return m6d(c);
+ }
+ d = c;
+ if (c == a) {
+ throw vbb(new Zdb("There is a cycle in the containment hierarchy of " + a));
+ }
+ }
+ }
+ return d;
+ }
+ function Fe(a) {
+ var b, c, d;
+ d = new xwb(She, "[", "]");
+ for (c = a.Kc(); c.Ob(); ) {
+ b = c.Pb();
+ uwb(d, PD(b) === PD(a) ? "(this Collection)" : b == null ? Xhe : fcb(b));
+ }
+ return !d.a ? d.c : d.e.length == 0 ? d.a.a : d.a.a + ("" + d.e);
+ }
+ function CVc(a, b) {
+ var c, d;
+ d = false;
+ if (b.gc() < 2) {
+ return false;
+ }
+ for (c = 0; c < b.gc(); c++) {
+ c < b.gc() - 1 ? d = d | BVc(a, BD(b.Xb(c), 33), BD(b.Xb(c + 1), 33)) : d = d | BVc(a, BD(b.Xb(c), 33), BD(b.Xb(0), 33));
+ }
+ return d;
+ }
+ function Ymd(a, b) {
+ var c;
+ if (b != a.a) {
+ c = null;
+ !!a.a && (c = BD(a.a, 49).ih(a, 4, o5, c));
+ !!b && (c = BD(b, 49).gh(a, 4, o5, c));
+ c = Tmd(a, b, c);
+ !!c && c.Fi();
+ } else
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, b, b));
+ }
+ function RQd(a, b) {
+ var c;
+ if (b != a.e) {
+ !!a.e && QYd(AYd(a.e), a);
+ !!b && (!b.b && (b.b = new RYd(new NYd())), PYd(b.b, a));
+ c = HQd(a, b, null);
+ !!c && c.Fi();
+ } else
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, b, b));
+ }
+ function ufb(a) {
+ var b, c, d;
+ c = a.length;
+ d = 0;
+ while (d < c && (BCb(d, a.length), a.charCodeAt(d) <= 32)) {
+ ++d;
+ }
+ b = c;
+ while (b > d && (BCb(b - 1, a.length), a.charCodeAt(b - 1) <= 32)) {
+ --b;
+ }
+ return d > 0 || b < c ? a.substr(d, b - d) : a;
+ }
+ function ujc(a, b) {
+ var c;
+ c = b.o;
+ if (fad(a.f)) {
+ a.j.a = $wnd.Math.max(a.j.a, c.a);
+ a.j.b += c.b;
+ a.d.c.length > 1 && (a.j.b += a.e);
+ } else {
+ a.j.a += c.a;
+ a.j.b = $wnd.Math.max(a.j.b, c.b);
+ a.d.c.length > 1 && (a.j.a += a.e);
+ }
+ }
+ function gkc() {
+ gkc = ccb;
+ dkc = OC(GC(F1, 1), bne, 61, 0, [(Ucd(), Acd), zcd, Rcd]);
+ ckc = OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd, Tcd]);
+ ekc = OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd, Acd]);
+ fkc = OC(GC(F1, 1), bne, 61, 0, [Tcd, Acd, zcd]);
+ }
+ function omc(a, b, c, d) {
+ var e, f, g, h, i, j, k;
+ g = a.c.d;
+ h = a.d.d;
+ if (g.j == h.j) {
+ return;
+ }
+ k = a.b;
+ e = g.j;
+ i = null;
+ while (e != h.j) {
+ i = b == 0 ? Xcd(e) : Vcd(e);
+ f = umc(e, k.d[e.g], c);
+ j = umc(i, k.d[i.g], c);
+ Dsb(d, P6c(f, j));
+ e = i;
+ }
+ }
+ function oFc(a, b, c, d) {
+ var e, f, g, h, i;
+ g = JHc(a.a, b, c);
+ h = BD(g.a, 19).a;
+ f = BD(g.b, 19).a;
+ if (d) {
+ i = BD(vNb(b, (wtc(), gtc)), 10);
+ e = BD(vNb(c, gtc), 10);
+ if (!!i && !!e) {
+ mic(a.b, i, e);
+ h += a.b.i;
+ f += a.b.e;
+ }
+ }
+ return h > f;
+ }
+ function oHc(a) {
+ var b, c, d, e, f, g, h, i, j;
+ this.a = lHc(a);
+ this.b = new Rkb();
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ f = new Rkb();
+ Ekb(this.b, f);
+ for (h = b, i = 0, j = h.length; i < j; ++i) {
+ g = h[i];
+ Ekb(f, new Tkb(g.j));
+ }
+ }
+ }
+ function qHc(a, b, c) {
+ var d, e, f;
+ f = 0;
+ d = c[b];
+ if (b < c.length - 1) {
+ e = c[b + 1];
+ if (a.b[b]) {
+ f = KIc(a.d, d, e);
+ f += NHc(a.a, d, (Ucd(), zcd));
+ f += NHc(a.a, e, Tcd);
+ } else {
+ f = IHc(a.a, d, e);
+ }
+ }
+ a.c[b] && (f += PHc(a.a, d));
+ return f;
+ }
+ function jZb(a, b, c, d, e) {
+ var f, g, h, i;
+ i = null;
+ for (h = new olb(d); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 441);
+ if (g != c && Jkb(g.e, e, 0) != -1) {
+ i = g;
+ break;
+ }
+ }
+ f = kZb(e);
+ QZb(f, c.b);
+ RZb(f, i.b);
+ Rc(a.a, e, new BZb(f, b, c.f));
+ }
+ function nic(a) {
+ while (a.g.c != 0 && a.d.c != 0) {
+ if (wic(a.g).c > wic(a.d).c) {
+ a.i += a.g.c;
+ yic(a.d);
+ } else if (wic(a.d).c > wic(a.g).c) {
+ a.e += a.d.c;
+ yic(a.g);
+ } else {
+ a.i += vic(a.g);
+ a.e += vic(a.d);
+ yic(a.g);
+ yic(a.d);
+ }
+ }
+ }
+ function XOc(a, b, c) {
+ var d, e, f, g;
+ f = b.q;
+ g = b.r;
+ new DOc((HOc(), FOc), b, f, 1);
+ new DOc(FOc, f, g, 1);
+ for (e = new olb(c); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 112);
+ if (d != f && d != b && d != g) {
+ pPc(a.a, d, b);
+ pPc(a.a, d, g);
+ }
+ }
+ }
+ function XQc(a, b, c, d) {
+ a.a.d = $wnd.Math.min(b, c);
+ a.a.a = $wnd.Math.max(b, d) - a.a.d;
+ if (b < c) {
+ a.b = 0.5 * (b + c);
+ a.g = Qqe * a.b + 0.9 * b;
+ a.f = Qqe * a.b + 0.9 * c;
+ } else {
+ a.b = 0.5 * (b + d);
+ a.g = Qqe * a.b + 0.9 * d;
+ a.f = Qqe * a.b + 0.9 * b;
+ }
+ }
+ function acb() {
+ _bb = {};
+ !Array.isArray && (Array.isArray = function(a) {
+ return Object.prototype.toString.call(a) === "[object Array]";
+ });
+ function b() {
+ return new Date().getTime();
+ }
+ !Date.now && (Date.now = b);
+ }
+ function $Tb(a, b) {
+ var c, d;
+ d = BD(vNb(b, (Nyc(), Vxc)), 98);
+ yNb(b, (wtc(), dtc), d);
+ c = b.e;
+ !!c && (MAb(new YAb(null, new Kub(c.a, 16)), new dUb(a)), MAb(LAb(new YAb(null, new Kub(c.b, 16)), new fUb()), new hUb(a)));
+ }
+ function _$b(a) {
+ var b, c, d, e;
+ if (gad(BD(vNb(a.b, (Nyc(), Lwc)), 103))) {
+ return 0;
+ }
+ b = 0;
+ for (d = new olb(a.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 10);
+ if (c.k == (j0b(), h0b)) {
+ e = c.o.a;
+ b = $wnd.Math.max(b, e);
+ }
+ }
+ return b;
+ }
+ function c5b(a) {
+ switch (BD(vNb(a, (Nyc(), mxc)), 163).g) {
+ case 1:
+ yNb(a, mxc, (Ctc(), ztc));
+ break;
+ case 2:
+ yNb(a, mxc, (Ctc(), Atc));
+ break;
+ case 3:
+ yNb(a, mxc, (Ctc(), xtc));
+ break;
+ case 4:
+ yNb(a, mxc, (Ctc(), ytc));
+ }
+ }
+ function yrc() {
+ yrc = ccb;
+ wrc = new zrc(ane, 0);
+ trc = new zrc(jle, 1);
+ xrc = new zrc(kle, 2);
+ vrc = new zrc("LEFT_RIGHT_CONSTRAINT_LOCKING", 3);
+ urc = new zrc("LEFT_RIGHT_CONNECTION_LOCKING", 4);
+ rrc = new zrc(Vne, 5);
+ }
+ function qRc(a, b, c) {
+ var d, e, f, g, h, i, j;
+ h = c.a / 2;
+ f = c.b / 2;
+ d = $wnd.Math.abs(b.a - a.a);
+ e = $wnd.Math.abs(b.b - a.b);
+ i = 1;
+ j = 1;
+ d > h && (i = h / d);
+ e > f && (j = f / e);
+ g = $wnd.Math.min(i, j);
+ a.a += g * (b.a - a.a);
+ a.b += g * (b.b - a.b);
+ }
+ function sZc(a, b, c, d, e) {
+ var f, g;
+ g = false;
+ f = BD(Ikb(c.b, 0), 33);
+ while (yZc(a, b, f, d, e)) {
+ g = true;
+ NZc(c, f);
+ if (c.b.c.length == 0) {
+ break;
+ }
+ f = BD(Ikb(c.b, 0), 33);
+ }
+ c.b.c.length == 0 && v$c(c.j, c);
+ g && a$c(b.q);
+ return g;
+ }
+ function t6c(a, b) {
+ i6c();
+ var c, d, e, f;
+ if (b.b < 2) {
+ return false;
+ }
+ f = Jsb(b, 0);
+ c = BD(Xsb(f), 8);
+ d = c;
+ while (f.b != f.d.c) {
+ e = BD(Xsb(f), 8);
+ if (s6c(a, d, e)) {
+ return true;
+ }
+ d = e;
+ }
+ if (s6c(a, d, c)) {
+ return true;
+ }
+ return false;
+ }
+ function ckd(a, b, c, d) {
+ var e, f;
+ if (c == 0) {
+ return !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), bId(a.o, b, d);
+ }
+ return f = BD(XKd((e = BD(Ajd(a, 16), 26), !e ? a.zh() : e), c), 66), f.Nj().Rj(a, yjd(a), c - aLd(a.zh()), b, d);
+ }
+ function bod(a, b) {
+ var c;
+ if (b != a.sb) {
+ c = null;
+ !!a.sb && (c = BD(a.sb, 49).ih(a, 1, i5, c));
+ !!b && (c = BD(b, 49).gh(a, 1, i5, c));
+ c = Jnd(a, b, c);
+ !!c && c.Fi();
+ } else
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, b, b));
+ }
+ function yqd(a, b) {
+ var c, d, e, f;
+ if (b) {
+ e = Xpd(b, "x");
+ c = new zrd(a);
+ hmd(c.a, (uCb(e), e));
+ f = Xpd(b, "y");
+ d = new Ard(a);
+ imd(d.a, (uCb(f), f));
+ } else {
+ throw vbb(new cqd("All edge sections need an end point."));
+ }
+ }
+ function wqd(a, b) {
+ var c, d, e, f;
+ if (b) {
+ e = Xpd(b, "x");
+ c = new wrd(a);
+ omd(c.a, (uCb(e), e));
+ f = Xpd(b, "y");
+ d = new xrd(a);
+ pmd(d.a, (uCb(f), f));
+ } else {
+ throw vbb(new cqd("All edge sections need a start point."));
+ }
+ }
+ function pyb(a, b) {
+ var c, d, e, f, g, h, i;
+ for (d = syb(a), f = 0, h = d.length; f < h; ++f) {
+ yyb(b);
+ }
+ i = !lyb && a.e ? lyb ? null : a.d : null;
+ while (i) {
+ for (c = syb(i), e = 0, g = c.length; e < g; ++e) {
+ yyb(b);
+ }
+ i = !lyb && i.e ? lyb ? null : i.d : null;
+ }
+ }
+ function j0b() {
+ j0b = ccb;
+ h0b = new k0b("NORMAL", 0);
+ g0b = new k0b("LONG_EDGE", 1);
+ e0b = new k0b("EXTERNAL_PORT", 2);
+ i0b = new k0b("NORTH_SOUTH_PORT", 3);
+ f0b = new k0b("LABEL", 4);
+ d0b = new k0b("BREAKING_POINT", 5);
+ }
+ function g4b(a) {
+ var b, c, d, e;
+ b = false;
+ if (wNb(a, (wtc(), Csc))) {
+ c = BD(vNb(a, Csc), 83);
+ for (e = new olb(a.j); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 11);
+ if (e4b(d)) {
+ if (!b) {
+ d4b(Q_b(a));
+ b = true;
+ }
+ h4b(BD(c.xc(d), 306));
+ }
+ }
+ }
+ }
+ function qec(a, b, c) {
+ var d;
+ Odd(c, "Self-Loop routing", 1);
+ d = rec(b);
+ RD(vNb(b, (g6c(), f6c)));
+ MAb(NAb(JAb(JAb(LAb(new YAb(null, new Kub(b.b, 16)), new uec()), new wec()), new yec()), new Aec()), new Cec(a, d));
+ Qdd(c);
+ }
+ function gsd(a) {
+ var b, c, d, e, f, g, h, i, j;
+ j = hsd(a);
+ c = a.e;
+ f = c != null;
+ f && Upd(j, eue, a.e);
+ h = a.k;
+ g = !!h;
+ g && Upd(j, "type", Zr(a.k));
+ d = Fhe(a.j);
+ e = !d;
+ if (e) {
+ i = new wB();
+ cC(j, Mte, i);
+ b = new ssd(i);
+ reb(a.j, b);
+ }
+ return j;
+ }
+ function Jv(a) {
+ var b, c, d, e;
+ e = Kfb((Xj(a.gc(), "size"), new Vfb()), 123);
+ d = true;
+ for (c = Wm(a).Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 42);
+ d || (e.a += She, e);
+ d = false;
+ Pfb(Kfb(Pfb(e, b.cd()), 61), b.dd());
+ }
+ return (e.a += "}", e).a;
+ }
+ function kD(a, b) {
+ var c, d, e;
+ b &= 63;
+ if (b < 22) {
+ c = a.l << b;
+ d = a.m << b | a.l >> 22 - b;
+ e = a.h << b | a.m >> 22 - b;
+ } else if (b < 44) {
+ c = 0;
+ d = a.l << b - 22;
+ e = a.m << b - 22 | a.l >> 44 - b;
+ } else {
+ c = 0;
+ d = 0;
+ e = a.l << b - 44;
+ }
+ return TC(c & Eje, d & Eje, e & Fje);
+ }
+ function Hcb(a) {
+ Gcb == null && (Gcb = new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$"));
+ if (!Gcb.test(a)) {
+ throw vbb(new Oeb(Oje + a + '"'));
+ }
+ return parseFloat(a);
+ }
+ function IFb(a) {
+ var b, c, d, e;
+ b = new Rkb();
+ c = KC(sbb, dle, 25, a.a.c.length, 16, 1);
+ Glb(c, c.length);
+ for (e = new olb(a.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 121);
+ if (!c[d.d]) {
+ b.c[b.c.length] = d;
+ HFb(a, d, c);
+ }
+ }
+ return b;
+ }
+ function Nmc(a, b) {
+ var c, d, e, f;
+ f = b.b.j;
+ a.a = KC(WD, oje, 25, f.c.length, 15, 1);
+ e = 0;
+ for (d = 0; d < f.c.length; d++) {
+ c = (tCb(d, f.c.length), BD(f.c[d], 11));
+ c.e.c.length == 0 && c.g.c.length == 0 ? e += 1 : e += 3;
+ a.a[d] = e;
+ }
+ }
+ function Sqc() {
+ Sqc = ccb;
+ Nqc = new Uqc("ALWAYS_UP", 0);
+ Mqc = new Uqc("ALWAYS_DOWN", 1);
+ Pqc = new Uqc("DIRECTION_UP", 2);
+ Oqc = new Uqc("DIRECTION_DOWN", 3);
+ Rqc = new Uqc("SMART_UP", 4);
+ Qqc = new Uqc("SMART_DOWN", 5);
+ }
+ function k6c(a, b) {
+ if (a < 0 || b < 0) {
+ throw vbb(new Wdb("k and n must be positive"));
+ } else if (b > a) {
+ throw vbb(new Wdb("k must be smaller than n"));
+ } else
+ return b == 0 || b == a ? 1 : a == 0 ? 0 : q6c(a) / (q6c(b) * q6c(a - b));
+ }
+ function jfd(a, b) {
+ var c, d, e, f;
+ c = new _ud(a);
+ while (c.g == null && !c.c ? Uud(c) : c.g == null || c.i != 0 && BD(c.g[c.i - 1], 47).Ob()) {
+ f = BD(Vud(c), 56);
+ if (JD(f, 160)) {
+ d = BD(f, 160);
+ for (e = 0; e < b.length; e++) {
+ b[e].og(d);
+ }
+ }
+ }
+ }
+ function fld(a) {
+ var b;
+ if ((a.Db & 64) != 0)
+ return Mkd(a);
+ b = new Jfb(Mkd(a));
+ b.a += " (height: ";
+ Bfb(b, a.f);
+ b.a += ", width: ";
+ Bfb(b, a.g);
+ b.a += ", x: ";
+ Bfb(b, a.i);
+ b.a += ", y: ";
+ Bfb(b, a.j);
+ b.a += ")";
+ return b.a;
+ }
+ function un(a) {
+ var b, c, d, e, f, g, h;
+ b = new $rb();
+ for (d = a, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ g = Qb(c.cd());
+ h = Xrb(b, g, Qb(c.dd()));
+ if (h != null) {
+ throw vbb(new Wdb("duplicate key: " + g));
+ }
+ }
+ this.b = (mmb(), new iob(b));
+ }
+ function Rlb(a) {
+ var b, c, d, e, f;
+ if (a == null) {
+ return Xhe;
+ }
+ f = new xwb(She, "[", "]");
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ uwb(f, String.fromCharCode(b));
+ }
+ return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e);
+ }
+ function SRb() {
+ SRb = ccb;
+ MRb = (XRb(), WRb);
+ LRb = new Nsd(mme, MRb);
+ meb(1);
+ KRb = new Nsd(nme, meb(300));
+ meb(0);
+ PRb = new Nsd(ome, meb(0));
+ QRb = new Nsd(pme, qme);
+ NRb = new Nsd(rme, 5);
+ RRb = WRb;
+ ORb = VRb;
+ }
+ function NUb(a, b) {
+ var c, d, e, f, g;
+ e = b == 1 ? KUb : JUb;
+ for (d = e.a.ec().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 103);
+ for (g = BD(Qc(a.f.c, c), 21).Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 46);
+ Ekb(a.b.b, BD(f.b, 81));
+ Ekb(a.b.a, BD(f.b, 81).d);
+ }
+ }
+ }
+ function kVd(a, b) {
+ var c;
+ if (b != null && !a.c.Yj().wj(b)) {
+ c = JD(b, 56) ? BD(b, 56).Tg().zb : hdb(rb(b));
+ throw vbb(new Cdb(ite + a.c.ne() + "'s type '" + a.c.Yj().ne() + "' does not permit a value of type '" + c + "'"));
+ }
+ }
+ function cZb(a, b, c) {
+ var d, e;
+ e = new Bib(a.b, 0);
+ while (e.b < e.d.gc()) {
+ d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 70));
+ if (PD(vNb(d, (wtc(), btc))) !== PD(b)) {
+ continue;
+ }
+ Y$b(d.n, Q_b(a.c.i), c);
+ uib(e);
+ Ekb(b.b, d);
+ }
+ }
+ function vdc(a, b) {
+ if (b.a) {
+ switch (BD(vNb(b.b, (wtc(), dtc)), 98).g) {
+ case 0:
+ case 1:
+ llc(b);
+ case 2:
+ MAb(new YAb(null, new Kub(b.d, 16)), new Idc());
+ wkc(a.a, b);
+ }
+ } else {
+ MAb(new YAb(null, new Kub(b.d, 16)), new Idc());
+ }
+ }
+ function Znc(a) {
+ var b, c;
+ c = $wnd.Math.sqrt((a.k == null && (a.k = Soc(a, new bpc())), Edb(a.k) / (a.b * (a.g == null && (a.g = Poc(a, new _oc())), Edb(a.g)))));
+ b = Tbb(Cbb($wnd.Math.round(c)));
+ b = $wnd.Math.min(b, a.f);
+ return b;
+ }
+ function H0b() {
+ z0b();
+ n_b.call(this);
+ this.j = (Ucd(), Scd);
+ this.a = new d7c();
+ new L_b();
+ this.f = (Xj(2, Jie), new Skb(2));
+ this.e = (Xj(4, Jie), new Skb(4));
+ this.g = (Xj(4, Jie), new Skb(4));
+ this.b = new Z0b(this.e, this.g);
+ }
+ function j3b(a, b) {
+ var c, d;
+ if (Ccb(DD(vNb(b, (wtc(), ltc))))) {
+ return false;
+ }
+ d = b.c.i;
+ if (a == (Ctc(), xtc)) {
+ if (d.k == (j0b(), f0b)) {
+ return false;
+ }
+ }
+ c = BD(vNb(d, (Nyc(), mxc)), 163);
+ if (c == ytc) {
+ return false;
+ }
+ return true;
+ }
+ function k3b(a, b) {
+ var c, d;
+ if (Ccb(DD(vNb(b, (wtc(), ltc))))) {
+ return false;
+ }
+ d = b.d.i;
+ if (a == (Ctc(), ztc)) {
+ if (d.k == (j0b(), f0b)) {
+ return false;
+ }
+ }
+ c = BD(vNb(d, (Nyc(), mxc)), 163);
+ if (c == Atc) {
+ return false;
+ }
+ return true;
+ }
+ function L3b(a, b) {
+ var c, d, e, f, g, h, i;
+ g = a.d;
+ i = a.o;
+ h = new J6c(-g.b, -g.d, g.b + i.a + g.c, g.d + i.b + g.a);
+ for (d = b, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ !!c && H6c(h, c.i);
+ }
+ g.b = -h.c;
+ g.d = -h.d;
+ g.c = h.b - g.b - i.a;
+ g.a = h.a - g.d - i.b;
+ }
+ function N_c() {
+ N_c = ccb;
+ I_c = new O_c("CENTER_DISTANCE", 0);
+ J_c = new O_c("CIRCLE_UNDERLAP", 1);
+ M_c = new O_c("RECTANGLE_UNDERLAP", 2);
+ K_c = new O_c("INVERTED_OVERLAP", 3);
+ L_c = new O_c("MINIMUM_ROOT_DISTANCE", 4);
+ }
+ function jde(a) {
+ hde();
+ var b, c, d, e, f;
+ if (a == null)
+ return null;
+ d = a.length;
+ e = d * 2;
+ b = KC(TD, $ie, 25, e, 15, 1);
+ for (c = 0; c < d; c++) {
+ f = a[c];
+ f < 0 && (f += 256);
+ b[c * 2] = gde[f >> 4];
+ b[c * 2 + 1] = gde[f & 15];
+ }
+ return zfb(b, 0, b.length);
+ }
+ function fn(a) {
+ Vm();
+ var b, c, d;
+ d = a.c.length;
+ switch (d) {
+ case 0:
+ return Um;
+ case 1:
+ b = BD(qr(new olb(a)), 42);
+ return ln(b.cd(), b.dd());
+ default:
+ c = BD(Qkb(a, KC(CK, zie, 42, a.c.length, 0, 1)), 165);
+ return new wx(c);
+ }
+ }
+ function ITb(a) {
+ var b, c, d, e, f, g;
+ b = new jkb();
+ c = new jkb();
+ Wjb(b, a);
+ Wjb(c, a);
+ while (c.b != c.c) {
+ e = BD(fkb(c), 37);
+ for (g = new olb(e.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ if (f.e) {
+ d = f.e;
+ Wjb(b, d);
+ Wjb(c, d);
+ }
+ }
+ }
+ return b;
+ }
+ function Y_b(a, b) {
+ switch (b.g) {
+ case 1:
+ return Nq(a.j, (z0b(), v0b));
+ case 2:
+ return Nq(a.j, (z0b(), t0b));
+ case 3:
+ return Nq(a.j, (z0b(), x0b));
+ case 4:
+ return Nq(a.j, (z0b(), y0b));
+ default:
+ return mmb(), mmb(), jmb;
+ }
+ }
+ function tic(a, b) {
+ var c, d, e;
+ c = uic(b, a.e);
+ d = BD(Ohb(a.g.f, c), 19).a;
+ e = a.a.c.length - 1;
+ if (a.a.c.length != 0 && BD(Ikb(a.a, e), 287).c == d) {
+ ++BD(Ikb(a.a, e), 287).a;
+ ++BD(Ikb(a.a, e), 287).b;
+ } else {
+ Ekb(a.a, new Dic(d));
+ }
+ }
+ function VGc(a, b, c) {
+ var d, e;
+ d = UGc(a, b, c);
+ if (d != 0) {
+ return d;
+ }
+ if (wNb(b, (wtc(), Zsc)) && wNb(c, Zsc)) {
+ e = beb(BD(vNb(b, Zsc), 19).a, BD(vNb(c, Zsc), 19).a);
+ e < 0 ? WGc(a, b, c) : e > 0 && WGc(a, c, b);
+ return e;
+ }
+ return TGc(a, b, c);
+ }
+ function MSc(a, b, c) {
+ var d, e, f, g;
+ if (b.b != 0) {
+ d = new Psb();
+ for (g = Jsb(b, 0); g.b != g.d.c; ) {
+ f = BD(Xsb(g), 86);
+ ye(d, URc(f));
+ e = f.e;
+ e.a = BD(vNb(f, (mTc(), kTc)), 19).a;
+ e.b = BD(vNb(f, lTc), 19).a;
+ }
+ MSc(a, d, Udd(c, d.b / a.a | 0));
+ }
+ }
+ function JZc(a, b) {
+ var c, d, e, f, g;
+ if (a.e <= b) {
+ return a.g;
+ }
+ if (LZc(a, a.g, b)) {
+ return a.g;
+ }
+ f = a.r;
+ d = a.g;
+ g = a.r;
+ e = (f - d) / 2 + d;
+ while (d + 1 < f) {
+ c = MZc(a, e, false);
+ if (c.b <= e && c.a <= b) {
+ g = e;
+ f = e;
+ } else {
+ d = e;
+ }
+ e = (f - d) / 2 + d;
+ }
+ return g;
+ }
+ function t2c(a, b, c) {
+ var d;
+ d = o2c(a, b, true);
+ Odd(c, "Recursive Graph Layout", d);
+ jfd(b, OC(GC(g2, 1), Uhe, 527, 0, [new q3c()]));
+ ikd(b, (Y9c(), F9c)) || jfd(b, OC(GC(g2, 1), Uhe, 527, 0, [new U3c()]));
+ u2c(a, b, null, c);
+ Qdd(c);
+ }
+ function Qdd(a) {
+ var b;
+ if (a.p == null) {
+ throw vbb(new Zdb("The task has not begun yet."));
+ }
+ if (!a.b) {
+ if (a.k) {
+ b = (Zfb(), Ibb(Cbb(Date.now()), _ie));
+ a.q = Sbb(Qbb(b, a.o)) * 1e-9;
+ }
+ a.c < a.r && Rdd(a, a.r - a.c);
+ a.b = true;
+ }
+ }
+ function ofd(a) {
+ var b, c, d;
+ d = new s7c();
+ Dsb(d, new f7c(a.j, a.k));
+ for (c = new Fyd((!a.a && (a.a = new xMd(y2, a, 5)), a.a)); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 469);
+ Dsb(d, new f7c(b.a, b.b));
+ }
+ Dsb(d, new f7c(a.b, a.c));
+ return d;
+ }
+ function qqd(a, b, c, d, e) {
+ var f, g, h, i, j, k;
+ if (e) {
+ i = e.a.length;
+ f = new Yge(i);
+ for (k = (f.b - f.a) * f.c < 0 ? (Xge(), Wge) : new she(f); k.Ob(); ) {
+ j = BD(k.Pb(), 19);
+ h = Zpd(e, j.a);
+ g = new prd(a, b, c, d);
+ rqd(g.a, g.b, g.c, g.d, h);
+ }
+ }
+ }
+ function Ax(b, c) {
+ var d;
+ if (PD(b) === PD(c)) {
+ return true;
+ }
+ if (JD(c, 21)) {
+ d = BD(c, 21);
+ try {
+ return b.gc() == d.gc() && b.Ic(d);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 173) || JD(a, 205)) {
+ return false;
+ } else
+ throw vbb(a);
+ }
+ }
+ return false;
+ }
+ function UHb(a, b) {
+ var c;
+ Ekb(a.d, b);
+ c = b.rf();
+ if (a.c) {
+ a.e.a = $wnd.Math.max(a.e.a, c.a);
+ a.e.b += c.b;
+ a.d.c.length > 1 && (a.e.b += a.a);
+ } else {
+ a.e.a += c.a;
+ a.e.b = $wnd.Math.max(a.e.b, c.b);
+ a.d.c.length > 1 && (a.e.a += a.a);
+ }
+ }
+ function cmc(a) {
+ var b, c, d, e;
+ e = a.i;
+ b = e.b;
+ d = e.j;
+ c = e.g;
+ switch (e.a.g) {
+ case 0:
+ c.a = (a.g.b.o.a - d.a) / 2;
+ break;
+ case 1:
+ c.a = b.d.n.a + b.d.a.a;
+ break;
+ case 2:
+ c.a = b.d.n.a + b.d.a.a - d.a;
+ break;
+ case 3:
+ c.b = b.d.n.b + b.d.a.b;
+ }
+ }
+ function Q6c(a, b, c, d, e) {
+ if (d < b || e < c) {
+ throw vbb(new Wdb("The highx must be bigger then lowx and the highy must be bigger then lowy"));
+ }
+ a.a < b ? a.a = b : a.a > d && (a.a = d);
+ a.b < c ? a.b = c : a.b > e && (a.b = e);
+ return a;
+ }
+ function lsd(a) {
+ if (JD(a, 149)) {
+ return esd(BD(a, 149));
+ } else if (JD(a, 229)) {
+ return fsd(BD(a, 229));
+ } else if (JD(a, 23)) {
+ return gsd(BD(a, 23));
+ } else {
+ throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [a])))));
+ }
+ }
+ function mhb(a, b, c, d, e) {
+ var f, g, h;
+ f = true;
+ for (g = 0; g < d; g++) {
+ f = f & c[g] == 0;
+ }
+ if (e == 0) {
+ $fb(c, d, a, 0, b);
+ g = b;
+ } else {
+ h = 32 - e;
+ f = f & c[g] << h == 0;
+ for (g = 0; g < b - 1; g++) {
+ a[g] = c[g + d] >>> e | c[g + d + 1] << h;
+ }
+ a[g] = c[g + d] >>> e;
+ ++g;
+ }
+ return f;
+ }
+ function zMc(a, b, c, d) {
+ var e, f, g;
+ if (b.k == (j0b(), g0b)) {
+ for (f = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ g = e.c.i.k;
+ if (g == g0b && a.c.a[e.c.i.c.p] == d && a.c.a[b.c.p] == c) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function mD(a, b) {
+ var c, d, e, f;
+ b &= 63;
+ c = a.h & Fje;
+ if (b < 22) {
+ f = c >>> b;
+ e = a.m >> b | c << 22 - b;
+ d = a.l >> b | a.m << 22 - b;
+ } else if (b < 44) {
+ f = 0;
+ e = c >>> b - 22;
+ d = a.m >> b - 22 | a.h << 44 - b;
+ } else {
+ f = 0;
+ e = 0;
+ d = c >>> b - 44;
+ }
+ return TC(d & Eje, e & Eje, f & Fje);
+ }
+ function Iic(a, b, c, d) {
+ var e;
+ this.b = d;
+ this.e = a == (rGc(), pGc);
+ e = b[c];
+ this.d = IC(sbb, [nie, dle], [177, 25], 16, [e.length, e.length], 2);
+ this.a = IC(WD, [nie, oje], [48, 25], 15, [e.length, e.length], 2);
+ this.c = new sic(b, c);
+ }
+ function ljc(a) {
+ var b, c, d;
+ a.k = new Ki((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, a.j.c.length);
+ for (d = new olb(a.j); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 113);
+ b = c.d.j;
+ Rc(a.k, b, c);
+ }
+ a.e = Zjc(Ec(a.k));
+ }
+ function UQc(a, b) {
+ var c, d, e;
+ Qqb(a.d, b);
+ c = new _Qc();
+ Rhb(a.c, b, c);
+ c.f = VQc(b.c);
+ c.a = VQc(b.d);
+ c.d = (hQc(), e = b.c.i.k, e == (j0b(), h0b) || e == d0b);
+ c.e = (d = b.d.i.k, d == h0b || d == d0b);
+ c.b = b.c.j == (Ucd(), Tcd);
+ c.c = b.d.j == zcd;
+ }
+ function BGb(a) {
+ var b, c, d, e, f;
+ f = Ohe;
+ e = Ohe;
+ for (d = new olb(LFb(a)); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 213);
+ b = c.e.e - c.d.e;
+ c.e == a && b < e ? e = b : b < f && (f = b);
+ }
+ e == Ohe && (e = -1);
+ f == Ohe && (f = -1);
+ return new vgd(meb(e), meb(f));
+ }
+ function zQb(a, b) {
+ var c, d, e;
+ e = dme;
+ d = (ROb(), OOb);
+ e = $wnd.Math.abs(a.b);
+ c = $wnd.Math.abs(b.f - a.b);
+ if (c < e) {
+ e = c;
+ d = POb;
+ }
+ c = $wnd.Math.abs(a.a);
+ if (c < e) {
+ e = c;
+ d = QOb;
+ }
+ c = $wnd.Math.abs(b.g - a.a);
+ if (c < e) {
+ e = c;
+ d = NOb;
+ }
+ return d;
+ }
+ function L9b(a, b) {
+ var c, d, e, f;
+ c = b.a.o.a;
+ f = new Jib(Q_b(b.a).b, b.c, b.f + 1);
+ for (e = new vib(f); e.b < e.d.gc(); ) {
+ d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 29));
+ if (d.c.a >= c) {
+ K9b(a, b, d.p);
+ return true;
+ }
+ }
+ return false;
+ }
+ function Iod(a) {
+ var b;
+ if ((a.Db & 64) != 0)
+ return fld(a);
+ b = new Wfb(dte);
+ !a.a || Qfb(Qfb((b.a += ' "', b), a.a), '"');
+ Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")");
+ return b.a;
+ }
+ function Z2d(a, b, c) {
+ var d, e, f, g, h;
+ h = S6d(a.e.Tg(), b);
+ e = BD(a.g, 119);
+ d = 0;
+ for (g = 0; g < a.i; ++g) {
+ f = e[g];
+ if (h.rl(f.ak())) {
+ if (d == c) {
+ Xxd(a, g);
+ return Q6d(), BD(b, 66).Oj() ? f : f.dd();
+ }
+ ++d;
+ }
+ }
+ throw vbb(new qcb(gve + c + mue + d));
+ }
+ function sde(a) {
+ var b, c, d;
+ b = a.c;
+ if (b == 2 || b == 7 || b == 1) {
+ return wfe(), wfe(), ffe;
+ } else {
+ d = qde(a);
+ c = null;
+ while ((b = a.c) != 2 && b != 7 && b != 1) {
+ if (!c) {
+ c = (wfe(), wfe(), new Lge(1));
+ Kge(c, d);
+ d = c;
+ }
+ Kge(c, qde(a));
+ }
+ return d;
+ }
+ }
+ function Kb(a, b, c) {
+ if (a < 0 || a > c) {
+ return Jb(a, c, "start index");
+ }
+ if (b < 0 || b > c) {
+ return Jb(b, c, "end index");
+ }
+ return hc("end index (%s) must not be less than start index (%s)", OC(GC(SI, 1), Uhe, 1, 5, [meb(b), meb(a)]));
+ }
+ function Pz(b, c) {
+ var d, e, f, g;
+ for (e = 0, f = b.length; e < f; e++) {
+ g = b[e];
+ try {
+ g[1] ? g[0].jm() && (c = Oz(c, g)) : g[0].jm();
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 78)) {
+ d = a;
+ Az();
+ Gz(JD(d, 477) ? BD(d, 477).ae() : d);
+ } else
+ throw vbb(a);
+ }
+ }
+ return c;
+ }
+ function K9b(a, b, c) {
+ var d, e, f;
+ c != b.c + b.b.gc() && Z9b(b.a, fac(b, c - b.c));
+ f = b.a.c.p;
+ a.a[f] = $wnd.Math.max(a.a[f], b.a.o.a);
+ for (e = BD(vNb(b.a, (wtc(), ktc)), 15).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 70);
+ yNb(d, H9b, (Bcb(), true));
+ }
+ }
+ function Wec(a, b) {
+ var c, d, e;
+ e = Vec(b);
+ yNb(b, (wtc(), Xsc), e);
+ if (e) {
+ d = Ohe;
+ !!irb(a.f, e) && (d = BD(Wd(irb(a.f, e)), 19).a);
+ c = BD(Ikb(b.g, 0), 17);
+ Ccb(DD(vNb(c, ltc))) || Rhb(a, e, meb($wnd.Math.min(BD(vNb(c, Zsc), 19).a, d)));
+ }
+ }
+ function iCc(a, b, c) {
+ var d, e, f, g, h;
+ b.p = -1;
+ for (h = W_b(b, (KAc(), IAc)).Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 11);
+ for (e = new olb(g.g); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ f = d.d.i;
+ b != f && (f.p < 0 ? c.Fc(d) : f.p > 0 && iCc(a, f, c));
+ }
+ }
+ b.p = 0;
+ }
+ function p5c(a) {
+ var b;
+ this.c = new Psb();
+ this.f = a.e;
+ this.e = a.d;
+ this.i = a.g;
+ this.d = a.c;
+ this.b = a.b;
+ this.k = a.j;
+ this.a = a.a;
+ !a.i ? this.j = (b = BD(gdb(e1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)) : this.j = a.i;
+ this.g = a.f;
+ }
+ function Wb(a) {
+ var b, c, d, e;
+ b = Kfb(Qfb(new Wfb("Predicates."), "and"), 40);
+ c = true;
+ for (e = new vib(a); e.b < e.d.gc(); ) {
+ d = (sCb(e.b < e.d.gc()), e.d.Xb(e.c = e.b++));
+ c || (b.a += ",", b);
+ b.a += "" + d;
+ c = false;
+ }
+ return (b.a += ")", b).a;
+ }
+ function Rcc(a, b, c) {
+ var d, e, f;
+ if (c <= b + 2) {
+ return;
+ }
+ e = (c - b) / 2 | 0;
+ for (d = 0; d < e; ++d) {
+ f = (tCb(b + d, a.c.length), BD(a.c[b + d], 11));
+ Nkb(a, b + d, (tCb(c - d - 1, a.c.length), BD(a.c[c - d - 1], 11)));
+ tCb(c - d - 1, a.c.length);
+ a.c[c - d - 1] = f;
+ }
+ }
+ function hjc(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ f = a.d.p;
+ h = f.e;
+ i = f.r;
+ a.g = new dIc(i);
+ g = a.d.o.c.p;
+ d = g > 0 ? h[g - 1] : KC(OQ, kne, 10, 0, 0, 1);
+ e = h[g];
+ j = g < h.length - 1 ? h[g + 1] : KC(OQ, kne, 10, 0, 0, 1);
+ k = b == c - 1;
+ k ? RHc(a.g, e, j) : RHc(a.g, d, e);
+ }
+ function pjc(a) {
+ var b;
+ this.j = new Rkb();
+ this.f = new Tqb();
+ this.b = (b = BD(gdb(F1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
+ this.d = KC(WD, oje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1);
+ this.g = a;
+ }
+ function QVc(a, b) {
+ var c, d, e;
+ if (b.c.length != 0) {
+ c = RVc(a, b);
+ e = false;
+ while (!c) {
+ AVc(a, b, true);
+ e = true;
+ c = RVc(a, b);
+ }
+ e && AVc(a, b, false);
+ d = dVc(b);
+ !!a.b && a.b.lg(d);
+ a.a = PVc(a, (tCb(0, b.c.length), BD(b.c[0], 33)));
+ QVc(a, d);
+ }
+ }
+ function Cid(a, b) {
+ var c, d, e;
+ d = XKd(a.Tg(), b);
+ c = b - a.Ah();
+ if (c < 0) {
+ if (!d) {
+ throw vbb(new Wdb(mte + b + nte));
+ } else if (d.Ij()) {
+ e = a.Yg(d);
+ e >= 0 ? a.Bh(e) : vid(a, d);
+ } else {
+ throw vbb(new Wdb(ite + d.ne() + jte));
+ }
+ } else {
+ eid(a, c, d);
+ }
+ }
+ function aqd(a) {
+ var b, c;
+ c = null;
+ b = false;
+ if (JD(a, 204)) {
+ b = true;
+ c = BD(a, 204).a;
+ }
+ if (!b) {
+ if (JD(a, 258)) {
+ b = true;
+ c = "" + BD(a, 258).a;
+ }
+ }
+ if (!b) {
+ if (JD(a, 483)) {
+ b = true;
+ c = "" + BD(a, 483).a;
+ }
+ }
+ if (!b) {
+ throw vbb(new vcb(Ute));
+ }
+ return c;
+ }
+ function ORd(a, b) {
+ var c, d;
+ if (a.f) {
+ while (b.Ob()) {
+ c = BD(b.Pb(), 72);
+ d = c.ak();
+ if (JD(d, 99) && (BD(d, 18).Bb & ote) != 0 && (!a.e || d.Gj() != x2 || d.aj() != 0) && c.dd() != null) {
+ b.Ub();
+ return true;
+ }
+ }
+ return false;
+ } else {
+ return b.Ob();
+ }
+ }
+ function QRd(a, b) {
+ var c, d;
+ if (a.f) {
+ while (b.Sb()) {
+ c = BD(b.Ub(), 72);
+ d = c.ak();
+ if (JD(d, 99) && (BD(d, 18).Bb & ote) != 0 && (!a.e || d.Gj() != x2 || d.aj() != 0) && c.dd() != null) {
+ b.Pb();
+ return true;
+ }
+ }
+ return false;
+ } else {
+ return b.Sb();
+ }
+ }
+ function I2d(a, b, c) {
+ var d, e, f, g, h, i;
+ i = S6d(a.e.Tg(), b);
+ d = 0;
+ h = a.i;
+ e = BD(a.g, 119);
+ for (g = 0; g < a.i; ++g) {
+ f = e[g];
+ if (i.rl(f.ak())) {
+ if (c == d) {
+ return g;
+ }
+ ++d;
+ h = g + 1;
+ }
+ }
+ if (c == d) {
+ return h;
+ } else {
+ throw vbb(new qcb(gve + c + mue + d));
+ }
+ }
+ function d9b(a, b) {
+ var c, d, e, f;
+ if (a.f.c.length == 0) {
+ return null;
+ } else {
+ f = new I6c();
+ for (d = new olb(a.f); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 70);
+ e = c.o;
+ f.b = $wnd.Math.max(f.b, e.a);
+ f.a += e.b;
+ }
+ f.a += (a.f.c.length - 1) * b;
+ return f;
+ }
+ }
+ function QJc(a, b, c) {
+ var d, e, f;
+ for (e = new Sr(ur(O_b(c).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 17);
+ if (!(!OZb(d) && !(!OZb(d) && d.c.i.c == d.d.i.c))) {
+ continue;
+ }
+ f = IJc(a, d, c, new vKc());
+ f.c.length > 1 && (b.c[b.c.length] = f, true);
+ }
+ }
+ function TJc(a) {
+ var b, c, d, e;
+ c = new Psb();
+ ye(c, a.o);
+ d = new twb();
+ while (c.b != 0) {
+ b = BD(c.b == 0 ? null : (sCb(c.b != 0), Nsb(c, c.a.a)), 508);
+ e = KJc(a, b, true);
+ e && Ekb(d.a, b);
+ }
+ while (d.a.c.length != 0) {
+ b = BD(rwb(d), 508);
+ KJc(a, b, false);
+ }
+ }
+ function _5c() {
+ _5c = ccb;
+ $5c = new a6c(ole, 0);
+ T5c = new a6c("BOOLEAN", 1);
+ X5c = new a6c("INT", 2);
+ Z5c = new a6c("STRING", 3);
+ U5c = new a6c("DOUBLE", 4);
+ V5c = new a6c("ENUM", 5);
+ W5c = new a6c("ENUMSET", 6);
+ Y5c = new a6c("OBJECT", 7);
+ }
+ function H6c(a, b) {
+ var c, d, e, f, g;
+ d = $wnd.Math.min(a.c, b.c);
+ f = $wnd.Math.min(a.d, b.d);
+ e = $wnd.Math.max(a.c + a.b, b.c + b.b);
+ g = $wnd.Math.max(a.d + a.a, b.d + b.a);
+ if (e < d) {
+ c = d;
+ d = e;
+ e = c;
+ }
+ if (g < f) {
+ c = f;
+ f = g;
+ g = c;
+ }
+ G6c(a, d, f, e - d, g - f);
+ }
+ function O6d() {
+ O6d = ccb;
+ L6d = OC(GC(ZI, 1), nie, 2, 6, [swe, twe, uwe, vwe, wwe, xwe, eue]);
+ K6d = OC(GC(ZI, 1), nie, 2, 6, [swe, "empty", twe, Qve, "elementOnly"]);
+ N6d = OC(GC(ZI, 1), nie, 2, 6, [swe, "preserve", "replace", ywe]);
+ M6d = new y1d();
+ }
+ function Y$b(a, b, c) {
+ var d, e, f;
+ if (b == c) {
+ return;
+ }
+ d = b;
+ do {
+ P6c(a, d.c);
+ e = d.e;
+ if (e) {
+ f = d.d;
+ O6c(a, f.b, f.d);
+ P6c(a, e.n);
+ d = Q_b(e);
+ }
+ } while (e);
+ d = c;
+ do {
+ c7c(a, d.c);
+ e = d.e;
+ if (e) {
+ f = d.d;
+ b7c(a, f.b, f.d);
+ c7c(a, e.n);
+ d = Q_b(e);
+ }
+ } while (e);
+ }
+ function qic(a, b, c, d) {
+ var e, f, g, h, i;
+ if (d.f.c + d.g.c == 0) {
+ for (g = a.a[a.c], h = 0, i = g.length; h < i; ++h) {
+ f = g[h];
+ Rhb(d, f, new zic(a, f, c));
+ }
+ }
+ e = BD(Wd(irb(d.f, b)), 663);
+ e.b = 0;
+ e.c = e.f;
+ e.c == 0 || Cic(BD(Ikb(e.a, e.b), 287));
+ return e;
+ }
+ function Apc() {
+ Apc = ccb;
+ wpc = new Bpc("MEDIAN_LAYER", 0);
+ ypc = new Bpc("TAIL_LAYER", 1);
+ vpc = new Bpc("HEAD_LAYER", 2);
+ xpc = new Bpc("SPACE_EFFICIENT_LAYER", 3);
+ zpc = new Bpc("WIDEST_LAYER", 4);
+ upc = new Bpc("CENTER_LAYER", 5);
+ }
+ function rJb(a) {
+ switch (a.g) {
+ case 0:
+ case 1:
+ case 2:
+ return Ucd(), Acd;
+ case 3:
+ case 4:
+ case 5:
+ return Ucd(), Rcd;
+ case 6:
+ case 7:
+ case 8:
+ return Ucd(), Tcd;
+ case 9:
+ case 10:
+ case 11:
+ return Ucd(), zcd;
+ default:
+ return Ucd(), Scd;
+ }
+ }
+ function sKc(a, b) {
+ var c;
+ if (a.c.length == 0) {
+ return false;
+ }
+ c = Lzc((tCb(0, a.c.length), BD(a.c[0], 17)).c.i);
+ FJc();
+ if (c == (Izc(), Fzc) || c == Ezc) {
+ return true;
+ }
+ return FAb(NAb(new YAb(null, new Kub(a, 16)), new AKc()), new CKc(b));
+ }
+ function cRc(a, b, c) {
+ var d, e, f;
+ if (!a.b[b.g]) {
+ a.b[b.g] = true;
+ d = c;
+ !d && (d = new SRc());
+ Dsb(d.b, b);
+ for (f = a.a[b.g].Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 188);
+ e.b != b && cRc(a, e.b, d);
+ e.c != b && cRc(a, e.c, d);
+ Dsb(d.a, e);
+ }
+ return d;
+ }
+ return null;
+ }
+ function qSc() {
+ qSc = ccb;
+ pSc = new rSc("ROOT_PROC", 0);
+ lSc = new rSc("FAN_PROC", 1);
+ nSc = new rSc("NEIGHBORS_PROC", 2);
+ mSc = new rSc("LEVEL_HEIGHT", 3);
+ oSc = new rSc("NODE_POSITION_PROC", 4);
+ kSc = new rSc("DETREEIFYING_PROC", 5);
+ }
+ function kqd(a, b) {
+ if (JD(b, 239)) {
+ return eqd(a, BD(b, 33));
+ } else if (JD(b, 186)) {
+ return fqd(a, BD(b, 118));
+ } else if (JD(b, 439)) {
+ return dqd(a, BD(b, 202));
+ } else {
+ throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [b])))));
+ }
+ }
+ function xu(a, b, c) {
+ var d, e;
+ this.f = a;
+ d = BD(Ohb(a.b, b), 283);
+ e = !d ? 0 : d.a;
+ Sb(c, e);
+ if (c >= (e / 2 | 0)) {
+ this.e = !d ? null : d.c;
+ this.d = e;
+ while (c++ < e) {
+ vu(this);
+ }
+ } else {
+ this.c = !d ? null : d.b;
+ while (c-- > 0) {
+ uu(this);
+ }
+ }
+ this.b = b;
+ this.a = null;
+ }
+ function rEb(a, b) {
+ var c, d;
+ b.a ? sEb(a, b) : (c = BD(Exb(a.b, b.b), 57), !!c && c == a.a[b.b.f] && !!c.a && c.a != b.b.a && c.c.Fc(b.b), d = BD(Dxb(a.b, b.b), 57), !!d && a.a[d.f] == b.b && !!d.a && d.a != b.b.a && b.b.c.Fc(d), Fxb(a.b, b.b), void 0);
+ }
+ function FJb(a, b) {
+ var c, d;
+ c = BD(Mpb(a.b, b), 124);
+ if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
+ c.n.b = 0;
+ c.n.c = 0;
+ return;
+ }
+ c.n.b = a.C.b;
+ c.n.c = a.C.c;
+ a.A.Hc((tdd(), sdd)) && KJb(a, b);
+ d = JJb(a, b);
+ KIb(a, b) == (Tbd(), Qbd) && (d += 2 * a.w);
+ c.a.a = d;
+ }
+ function OKb(a, b) {
+ var c, d;
+ c = BD(Mpb(a.b, b), 124);
+ if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
+ c.n.d = 0;
+ c.n.a = 0;
+ return;
+ }
+ c.n.d = a.C.d;
+ c.n.a = a.C.a;
+ a.A.Hc((tdd(), sdd)) && SKb(a, b);
+ d = RKb(a, b);
+ KIb(a, b) == (Tbd(), Qbd) && (d += 2 * a.w);
+ c.a.b = d;
+ }
+ function cOb(a, b) {
+ var c, d, e, f;
+ f = new Rkb();
+ for (d = new olb(b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 65);
+ Ekb(f, new oOb(c, true));
+ Ekb(f, new oOb(c, false));
+ }
+ e = new hOb(a);
+ zwb(e.a.a);
+ kDb(f, a.b, new amb(OC(GC(JM, 1), Uhe, 679, 0, [e])));
+ }
+ function rQb(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ i = a.a;
+ n = a.b;
+ j = b.a;
+ o2 = b.b;
+ k = c.a;
+ p = c.b;
+ l = d.a;
+ q = d.b;
+ f = i * o2 - n * j;
+ g = k * q - p * l;
+ e = (i - j) * (p - q) - (n - o2) * (k - l);
+ h = (f * (k - l) - g * (i - j)) / e;
+ m = (f * (p - q) - g * (n - o2)) / e;
+ return new f7c(h, m);
+ }
+ function TBc(a, b) {
+ var c, d, e;
+ if (a.d[b.p]) {
+ return;
+ }
+ a.d[b.p] = true;
+ a.a[b.p] = true;
+ for (d = new Sr(ur(U_b(b).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ if (OZb(c)) {
+ continue;
+ }
+ e = c.d.i;
+ a.a[e.p] ? Ekb(a.b, c) : TBc(a, e);
+ }
+ a.a[b.p] = false;
+ }
+ function pCc(a, b, c) {
+ var d;
+ d = 0;
+ switch (BD(vNb(b, (Nyc(), mxc)), 163).g) {
+ case 2:
+ d = 2 * -c + a.a;
+ ++a.a;
+ break;
+ case 1:
+ d = -c;
+ break;
+ case 3:
+ d = c;
+ break;
+ case 4:
+ d = 2 * c + a.b;
+ ++a.b;
+ }
+ wNb(b, (wtc(), Zsc)) && (d += BD(vNb(b, Zsc), 19).a);
+ return d;
+ }
+ function jOc(a, b, c) {
+ var d, e, f;
+ c.zc(b, a);
+ Ekb(a.n, b);
+ f = a.p.eg(b);
+ b.j == a.p.fg() ? yOc(a.e, f) : yOc(a.j, f);
+ lOc(a);
+ for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(b), new R0b(b)]))); Qr(e); ) {
+ d = BD(Rr(e), 11);
+ c._b(d) || jOc(a, d, c);
+ }
+ }
+ function rfd(a) {
+ var b, c, d;
+ c = BD(hkd(a, (Y9c(), Y8c)), 21);
+ if (c.Hc((tdd(), pdd))) {
+ d = BD(hkd(a, b9c), 21);
+ b = new g7c(BD(hkd(a, _8c), 8));
+ if (d.Hc((Idd(), Bdd))) {
+ b.a <= 0 && (b.a = 20);
+ b.b <= 0 && (b.b = 20);
+ }
+ return b;
+ } else {
+ return new d7c();
+ }
+ }
+ function PKd(a) {
+ var b, c, d;
+ if (!a.b) {
+ d = new $Nd();
+ for (c = new $yd(SKd(a)); c.e != c.i.gc(); ) {
+ b = BD(Zyd(c), 18);
+ (b.Bb & ote) != 0 && wtd(d, b);
+ }
+ vud(d);
+ a.b = new nNd((BD(qud(ZKd((NFd(), MFd).o), 8), 18), d.i), d.g);
+ $Kd(a).b &= -9;
+ }
+ return a.b;
+ }
+ function Rmc(a, b) {
+ var c, d, e, f, g, h, i, j;
+ i = BD(Ee(Ec(b.k), KC(F1, bne, 61, 2, 0, 1)), 122);
+ j = b.g;
+ c = Tmc(b, i[0]);
+ e = Smc(b, i[1]);
+ d = Kmc(a, j, c, e);
+ f = Tmc(b, i[1]);
+ h = Smc(b, i[0]);
+ g = Kmc(a, j, f, h);
+ if (d <= g) {
+ b.a = c;
+ b.c = e;
+ } else {
+ b.a = f;
+ b.c = h;
+ }
+ }
+ function ESc(a, b, c) {
+ var d, e, f;
+ Odd(c, "Processor set neighbors", 1);
+ a.a = b.b.b == 0 ? 1 : b.b.b;
+ e = null;
+ d = Jsb(b.b, 0);
+ while (!e && d.b != d.d.c) {
+ f = BD(Xsb(d), 86);
+ Ccb(DD(vNb(f, (mTc(), jTc)))) && (e = f);
+ }
+ !!e && FSc(a, new ZRc(e), c);
+ Qdd(c);
+ }
+ function PEd(a) {
+ IEd();
+ var b, c, d, e;
+ d = hfb(a, wfb(35));
+ b = d == -1 ? a : a.substr(0, d);
+ c = d == -1 ? null : a.substr(d + 1);
+ e = kFd(HEd, b);
+ if (!e) {
+ e = aFd(b);
+ lFd(HEd, b, e);
+ c != null && (e = JEd(e, c));
+ } else
+ c != null && (e = JEd(e, (uCb(c), c)));
+ return e;
+ }
+ function smb(a) {
+ var h;
+ mmb();
+ var b, c, d, e, f, g;
+ if (JD(a, 54)) {
+ for (e = 0, d = a.gc() - 1; e < d; ++e, --d) {
+ h = a.Xb(e);
+ a._c(e, a.Xb(d));
+ a._c(d, h);
+ }
+ } else {
+ b = a.Yc();
+ f = a.Zc(a.gc());
+ while (b.Tb() < f.Vb()) {
+ c = b.Pb();
+ g = f.Ub();
+ b.Wb(g);
+ f.Wb(c);
+ }
+ }
+ }
+ function I3b(a, b) {
+ var c, d, e;
+ Odd(b, "End label pre-processing", 1);
+ c = Edb(ED(vNb(a, (Nyc(), nyc))));
+ d = Edb(ED(vNb(a, ryc)));
+ e = gad(BD(vNb(a, Lwc), 103));
+ MAb(LAb(new YAb(null, new Kub(a.b, 16)), new Q3b()), new S3b(c, d, e));
+ Qdd(b);
+ }
+ function NFc(a, b) {
+ var c, d, e, f, g, h;
+ h = 0;
+ f = new jkb();
+ Wjb(f, b);
+ while (f.b != f.c) {
+ g = BD(fkb(f), 214);
+ h += pHc(g.d, g.e);
+ for (e = new olb(g.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 37);
+ c = BD(Ikb(a.b, d.p), 214);
+ c.s || (h += NFc(a, c));
+ }
+ }
+ return h;
+ }
+ function YQc(a, b, c) {
+ var d, e;
+ TQc(this);
+ b == (FQc(), DQc) ? Qqb(this.r, a.c) : Qqb(this.w, a.c);
+ c == DQc ? Qqb(this.r, a.d) : Qqb(this.w, a.d);
+ UQc(this, a);
+ d = VQc(a.c);
+ e = VQc(a.d);
+ XQc(this, d, e, e);
+ this.o = (hQc(), $wnd.Math.abs(d - e) < 0.2);
+ }
+ function a0d(a, b, c) {
+ var d, e, f, g, h, i;
+ h = BD(Ajd(a.a, 8), 1936);
+ if (h != null) {
+ for (e = h, f = 0, g = e.length; f < g; ++f) {
+ null.jm();
+ }
+ }
+ d = c;
+ if ((a.a.Db & 1) == 0) {
+ i = new f0d(a, c, b);
+ d.ui(i);
+ }
+ JD(d, 672) ? BD(d, 672).wi(a.a) : d.ti() == a.a && d.vi(null);
+ }
+ function dae() {
+ var a;
+ if (Z9d)
+ return BD(nUd((yFd(), xFd), Ewe), 1945);
+ eae();
+ a = BD(JD(Phb((yFd(), xFd), Ewe), 586) ? Phb(xFd, Ewe) : new cae(), 586);
+ Z9d = true;
+ aae(a);
+ bae(a);
+ Rhb((JFd(), IFd), a, new fae());
+ Tnd(a);
+ Shb(xFd, Ewe, a);
+ return a;
+ }
+ function xA(a, b, c, d) {
+ var e;
+ e = oA(a, c, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje]), b);
+ e < 0 && (e = oA(a, c, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), b));
+ if (e < 0) {
+ return false;
+ }
+ d.d = e;
+ return true;
+ }
+ function AA(a, b, c, d) {
+ var e;
+ e = oA(a, c, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje]), b);
+ e < 0 && (e = oA(a, c, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), b));
+ if (e < 0) {
+ return false;
+ }
+ d.d = e;
+ return true;
+ }
+ function NVb(a) {
+ var b, c, d;
+ KVb(a);
+ d = new Rkb();
+ for (c = new olb(a.a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 81);
+ Ekb(d, new ZVb(b, true));
+ Ekb(d, new ZVb(b, false));
+ }
+ RVb(a.c);
+ rXb(d, a.b, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [a.c])));
+ MVb(a);
+ }
+ function c4b(a) {
+ var b, c, d, e;
+ c = new Lqb();
+ for (e = new olb(a.d); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 181);
+ b = BD(d.We((wtc(), Dsc)), 17);
+ !!irb(c.f, b) || Rhb(c, b, new p4b(b));
+ Ekb(BD(Wd(irb(c.f, b)), 456).b, d);
+ }
+ return new Tkb(new $ib(c));
+ }
+ function Gac(a, b) {
+ var c, d, e, f, g;
+ d = new kkb(a.j.c.length);
+ c = null;
+ for (f = new olb(a.j); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 11);
+ if (e.j != c) {
+ d.b == d.c || Hac(d, c, b);
+ Yjb(d);
+ c = e.j;
+ }
+ g = N3b(e);
+ !!g && (Xjb(d, g), true);
+ }
+ d.b == d.c || Hac(d, c, b);
+ }
+ function wbc(a, b) {
+ var c, d, e;
+ d = new Bib(a.b, 0);
+ while (d.b < d.d.gc()) {
+ c = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 70));
+ e = BD(vNb(c, (Nyc(), Qwc)), 272);
+ if (e == (qad(), oad)) {
+ uib(d);
+ Ekb(b.b, c);
+ wNb(c, (wtc(), Dsc)) || yNb(c, Dsc, a);
+ }
+ }
+ }
+ function GDc(a) {
+ var b, c, d, e, f;
+ b = sr(new Sr(ur(U_b(a).a.Kc(), new Sq())));
+ for (e = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 17);
+ c = d.c.i;
+ f = sr(new Sr(ur(U_b(c).a.Kc(), new Sq())));
+ b = $wnd.Math.max(b, f);
+ }
+ return meb(b);
+ }
+ function rUc(a, b, c) {
+ var d, e, f, g;
+ Odd(c, "Processor arrange node", 1);
+ e = null;
+ f = new Psb();
+ d = Jsb(b.b, 0);
+ while (!e && d.b != d.d.c) {
+ g = BD(Xsb(d), 86);
+ Ccb(DD(vNb(g, (mTc(), jTc)))) && (e = g);
+ }
+ Gsb(f, e, f.c.b, f.c);
+ qUc(a, f, Udd(c, 1));
+ Qdd(c);
+ }
+ function Ffd(a, b, c) {
+ var d, e, f;
+ d = BD(hkd(a, (Y9c(), w8c)), 21);
+ e = 0;
+ f = 0;
+ b.a > c.a && (d.Hc((i8c(), c8c)) ? e = (b.a - c.a) / 2 : d.Hc(e8c) && (e = b.a - c.a));
+ b.b > c.b && (d.Hc((i8c(), g8c)) ? f = (b.b - c.b) / 2 : d.Hc(f8c) && (f = b.b - c.b));
+ Efd(a, e, f);
+ }
+ function aod(a, b, c, d, e, f, g, h, i, j, k, l, m) {
+ JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4);
+ pnd(a, c);
+ a.f = g;
+ dJd(a, h);
+ fJd(a, i);
+ ZId(a, j);
+ eJd(a, k);
+ CId(a, l);
+ aJd(a, m);
+ BId(a, true);
+ AId(a, e);
+ a.ok(f);
+ yId(a, b);
+ d != null && (a.i = null, _Id(a, d));
+ }
+ function PRd(a) {
+ var b, c;
+ if (a.f) {
+ while (a.n > 0) {
+ b = BD(a.k.Xb(a.n - 1), 72);
+ c = b.ak();
+ if (JD(c, 99) && (BD(c, 18).Bb & ote) != 0 && (!a.e || c.Gj() != x2 || c.aj() != 0) && b.dd() != null) {
+ return true;
+ } else {
+ --a.n;
+ }
+ }
+ return false;
+ } else {
+ return a.n > 0;
+ }
+ }
+ function Jb(a, b, c) {
+ if (a < 0) {
+ return hc(The, OC(GC(SI, 1), Uhe, 1, 5, [c, meb(a)]));
+ } else if (b < 0) {
+ throw vbb(new Wdb(Vhe + b));
+ } else {
+ return hc("%s (%s) must not be greater than size (%s)", OC(GC(SI, 1), Uhe, 1, 5, [c, meb(a), meb(b)]));
+ }
+ }
+ function Llb(a, b, c, d, e, f) {
+ var g, h, i, j;
+ g = d - c;
+ if (g < 7) {
+ Ilb(b, c, d, f);
+ return;
+ }
+ i = c + e;
+ h = d + e;
+ j = i + (h - i >> 1);
+ Llb(b, a, i, j, -e, f);
+ Llb(b, a, j, h, -e, f);
+ if (f.ue(a[j - 1], a[j]) <= 0) {
+ while (c < d) {
+ NC(b, c++, a[i++]);
+ }
+ return;
+ }
+ Jlb(a, i, j, h, b, c, d, f);
+ }
+ function nEb(a, b) {
+ var c, d, e;
+ e = new Rkb();
+ for (d = new olb(a.c.a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 57);
+ if (b.Lb(c)) {
+ Ekb(e, new BEb(c, true));
+ Ekb(e, new BEb(c, false));
+ }
+ }
+ tEb(a.e);
+ kDb(e, a.d, new amb(OC(GC(JM, 1), Uhe, 679, 0, [a.e])));
+ }
+ function gnc(a, b) {
+ var c, d, e, f, g, h, i;
+ i = b.d;
+ e = b.b.j;
+ for (h = new olb(i); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 101);
+ f = KC(sbb, dle, 25, e.c.length, 16, 1);
+ Rhb(a.b, g, f);
+ c = g.a.d.p - 1;
+ d = g.c.d.p;
+ while (c != d) {
+ c = (c + 1) % e.c.length;
+ f[c] = true;
+ }
+ }
+ }
+ function tOc(a, b) {
+ a.r = new uOc(a.p);
+ sOc(a.r, a);
+ ye(a.r.j, a.j);
+ Osb(a.j);
+ Dsb(a.j, b);
+ Dsb(a.r.e, b);
+ lOc(a);
+ lOc(a.r);
+ while (a.f.c.length != 0) {
+ AOc(BD(Ikb(a.f, 0), 129));
+ }
+ while (a.k.c.length != 0) {
+ AOc(BD(Ikb(a.k, 0), 129));
+ }
+ return a.r;
+ }
+ function yid(a, b, c) {
+ var d, e, f;
+ e = XKd(a.Tg(), b);
+ d = b - a.Ah();
+ if (d < 0) {
+ if (!e) {
+ throw vbb(new Wdb(mte + b + nte));
+ } else if (e.Ij()) {
+ f = a.Yg(e);
+ f >= 0 ? a.sh(f, c) : uid(a, e, c);
+ } else {
+ throw vbb(new Wdb(ite + e.ne() + jte));
+ }
+ } else {
+ did(a, d, e, c);
+ }
+ }
+ function q6d(b) {
+ var c, d, e, f;
+ d = BD(b, 49).qh();
+ if (d) {
+ try {
+ e = null;
+ c = nUd((yFd(), xFd), LEd(MEd(d)));
+ if (c) {
+ f = c.rh();
+ !!f && (e = f.Wk(tfb(d.e)));
+ }
+ if (!!e && e != b) {
+ return q6d(e);
+ }
+ } catch (a) {
+ a = ubb(a);
+ if (!JD(a, 60))
+ throw vbb(a);
+ }
+ }
+ return b;
+ }
+ function jrb(a, b, c) {
+ var d, e, f, g;
+ g = b == null ? 0 : a.b.se(b);
+ e = (d = a.a.get(g), d == null ? new Array() : d);
+ if (e.length == 0) {
+ a.a.set(g, e);
+ } else {
+ f = grb(a, b, e);
+ if (f) {
+ return f.ed(c);
+ }
+ }
+ NC(e, e.length, new pjb(b, c));
+ ++a.c;
+ zpb(a.b);
+ return null;
+ }
+ function YUc(a, b) {
+ var c, d;
+ H2c(a.a);
+ K2c(a.a, (PUc(), NUc), NUc);
+ K2c(a.a, OUc, OUc);
+ d = new j3c();
+ e3c(d, OUc, (tVc(), sVc));
+ PD(hkd(b, (ZWc(), LWc))) !== PD((pWc(), mWc)) && e3c(d, OUc, qVc);
+ e3c(d, OUc, rVc);
+ E2c(a.a, d);
+ c = F2c(a.a, b);
+ return c;
+ }
+ function uC(a) {
+ if (!a) {
+ return OB(), NB;
+ }
+ var b = a.valueOf ? a.valueOf() : a;
+ if (b !== a) {
+ var c = qC[typeof b];
+ return c ? c(b) : xC(typeof b);
+ } else if (a instanceof Array || a instanceof $wnd.Array) {
+ return new xB(a);
+ } else {
+ return new fC(a);
+ }
+ }
+ function RJb(a, b, c) {
+ var d, e, f;
+ f = a.o;
+ d = BD(Mpb(a.p, c), 244);
+ e = d.i;
+ e.b = gIb(d);
+ e.a = fIb(d);
+ e.b = $wnd.Math.max(e.b, f.a);
+ e.b > f.a && !b && (e.b = f.a);
+ e.c = -(e.b - f.a) / 2;
+ switch (c.g) {
+ case 1:
+ e.d = -e.a;
+ break;
+ case 3:
+ e.d = f.b;
+ }
+ hIb(d);
+ iIb(d);
+ }
+ function SJb(a, b, c) {
+ var d, e, f;
+ f = a.o;
+ d = BD(Mpb(a.p, c), 244);
+ e = d.i;
+ e.b = gIb(d);
+ e.a = fIb(d);
+ e.a = $wnd.Math.max(e.a, f.b);
+ e.a > f.b && !b && (e.a = f.b);
+ e.d = -(e.a - f.b) / 2;
+ switch (c.g) {
+ case 4:
+ e.c = -e.b;
+ break;
+ case 2:
+ e.c = f.a;
+ }
+ hIb(d);
+ iIb(d);
+ }
+ function Jgc(a, b) {
+ var c, d, e, f, g;
+ if (b.dc()) {
+ return;
+ }
+ e = BD(b.Xb(0), 128);
+ if (b.gc() == 1) {
+ Igc(a, e, e, 1, 0, b);
+ return;
+ }
+ c = 1;
+ while (c < b.gc()) {
+ if (e.j || !e.o) {
+ f = Ogc(b, c);
+ if (f) {
+ d = BD(f.a, 19).a;
+ g = BD(f.b, 128);
+ Igc(a, e, g, c, d, b);
+ c = d + 1;
+ e = g;
+ }
+ }
+ }
+ }
+ function mlc(a) {
+ var b, c, d, e, f, g;
+ g = new Tkb(a.d);
+ Okb(g, new Qlc());
+ b = (Alc(), OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc]));
+ c = 0;
+ for (f = new olb(g); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 101);
+ d = b[c % b.length];
+ olc(e, d);
+ ++c;
+ }
+ }
+ function o6c(a, b) {
+ i6c();
+ var c, d, e, f;
+ if (b.b < 2) {
+ return false;
+ }
+ f = Jsb(b, 0);
+ c = BD(Xsb(f), 8);
+ d = c;
+ while (f.b != f.d.c) {
+ e = BD(Xsb(f), 8);
+ if (!(m6c(a, d) && m6c(a, e))) {
+ return false;
+ }
+ d = e;
+ }
+ if (!(m6c(a, d) && m6c(a, c))) {
+ return false;
+ }
+ return true;
+ }
+ function hrd(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ k = null;
+ l = a;
+ g = Xpd(l, "x");
+ c = new Krd(b);
+ Gqd(c.a, g);
+ h = Xpd(l, "y");
+ d = new Lrd(b);
+ Hqd(d.a, h);
+ i = Xpd(l, Gte);
+ e = new Mrd(b);
+ Iqd(e.a, i);
+ j = Xpd(l, Fte);
+ f = new Nrd(b);
+ k = (Jqd(f.a, j), j);
+ return k;
+ }
+ function XMd(a, b) {
+ TMd(a, b);
+ (a.b & 1) != 0 && (a.a.a = null);
+ (a.b & 2) != 0 && (a.a.f = null);
+ if ((a.b & 4) != 0) {
+ a.a.g = null;
+ a.a.i = null;
+ }
+ if ((a.b & 16) != 0) {
+ a.a.d = null;
+ a.a.e = null;
+ }
+ (a.b & 8) != 0 && (a.a.b = null);
+ if ((a.b & 32) != 0) {
+ a.a.j = null;
+ a.a.c = null;
+ }
+ }
+ function l0d(b, c) {
+ var d, e, f;
+ f = 0;
+ if (c.length > 0) {
+ try {
+ f = Icb(c, Rie, Ohe);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ e = a;
+ throw vbb(new rFd(e));
+ } else
+ throw vbb(a);
+ }
+ }
+ d = (!b.a && (b.a = new z0d(b)), b.a);
+ return f < d.i && f >= 0 ? BD(qud(d, f), 56) : null;
+ }
+ function Ib(a, b) {
+ if (a < 0) {
+ return hc(The, OC(GC(SI, 1), Uhe, 1, 5, ["index", meb(a)]));
+ } else if (b < 0) {
+ throw vbb(new Wdb(Vhe + b));
+ } else {
+ return hc("%s (%s) must be less than size (%s)", OC(GC(SI, 1), Uhe, 1, 5, ["index", meb(a), meb(b)]));
+ }
+ }
+ function Slb(a) {
+ var b, c, d, e, f;
+ if (a == null) {
+ return Xhe;
+ }
+ f = new xwb(She, "[", "]");
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ !f.a ? f.a = new Wfb(f.d) : Qfb(f.a, f.b);
+ Nfb(f.a, "" + b);
+ }
+ return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e);
+ }
+ function Tlb(a) {
+ var b, c, d, e, f;
+ if (a == null) {
+ return Xhe;
+ }
+ f = new xwb(She, "[", "]");
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ !f.a ? f.a = new Wfb(f.d) : Qfb(f.a, f.b);
+ Nfb(f.a, "" + b);
+ }
+ return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e);
+ }
+ function Ulb(a) {
+ var b, c, d, e, f;
+ if (a == null) {
+ return Xhe;
+ }
+ f = new xwb(She, "[", "]");
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ !f.a ? f.a = new Wfb(f.d) : Qfb(f.a, f.b);
+ Nfb(f.a, "" + b);
+ }
+ return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e);
+ }
+ function Xlb(a) {
+ var b, c, d, e, f;
+ if (a == null) {
+ return Xhe;
+ }
+ f = new xwb(She, "[", "]");
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ !f.a ? f.a = new Wfb(f.d) : Qfb(f.a, f.b);
+ Nfb(f.a, "" + b);
+ }
+ return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e);
+ }
+ function bub(a, b) {
+ var c, d, e, f, g, h;
+ c = a.b.c.length;
+ e = Ikb(a.b, b);
+ while (b * 2 + 1 < c) {
+ d = (f = 2 * b + 1, g = f + 1, h = f, g < c && a.a.ue(Ikb(a.b, g), Ikb(a.b, f)) < 0 && (h = g), h);
+ if (a.a.ue(e, Ikb(a.b, d)) < 0) {
+ break;
+ }
+ Nkb(a.b, b, Ikb(a.b, d));
+ b = d;
+ }
+ Nkb(a.b, b, e);
+ }
+ function $Bb(a, b, c, d, e, f) {
+ var g, h, i, j, k;
+ if (PD(a) === PD(c)) {
+ a = a.slice(b, b + e);
+ b = 0;
+ }
+ i = c;
+ for (h = b, j = b + e; h < j; ) {
+ g = $wnd.Math.min(h + 1e4, j);
+ e = g - h;
+ k = a.slice(h, g);
+ k.splice(0, 0, d, f ? e : 0);
+ Array.prototype.splice.apply(i, k);
+ h = g;
+ d += e;
+ }
+ }
+ function xGb(a, b, c) {
+ var d, e;
+ d = c.d;
+ e = c.e;
+ if (a.g[d.d] <= a.i[b.d] && a.i[b.d] <= a.i[d.d] && a.g[e.d] <= a.i[b.d] && a.i[b.d] <= a.i[e.d]) {
+ if (a.i[d.d] < a.i[e.d]) {
+ return false;
+ }
+ return true;
+ }
+ if (a.i[d.d] < a.i[e.d]) {
+ return true;
+ }
+ return false;
+ }
+ function cRb(a) {
+ var b, c, d, e, f, g, h;
+ d = a.a.c.length;
+ if (d > 0) {
+ g = a.c.d;
+ h = a.d.d;
+ e = Y6c(c7c(new f7c(h.a, h.b), g), 1 / (d + 1));
+ f = new f7c(g.a, g.b);
+ for (c = new olb(a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 559);
+ b.d.a = f.a;
+ b.d.b = f.b;
+ P6c(f, e);
+ }
+ }
+ }
+ function YNb(a, b, c) {
+ var d, e, f, g, h, i;
+ i = Pje;
+ for (f = new olb(wOb(a.b)); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 168);
+ for (h = new olb(wOb(b.b)); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 168);
+ d = p6c(e.a, e.b, g.a, g.b, c);
+ i = $wnd.Math.min(i, d);
+ }
+ }
+ return i;
+ }
+ function G0b(a, b) {
+ if (!b) {
+ throw vbb(new Geb());
+ }
+ a.j = b;
+ if (!a.d) {
+ switch (a.j.g) {
+ case 1:
+ a.a.a = a.o.a / 2;
+ a.a.b = 0;
+ break;
+ case 2:
+ a.a.a = a.o.a;
+ a.a.b = a.o.b / 2;
+ break;
+ case 3:
+ a.a.a = a.o.a / 2;
+ a.a.b = a.o.b;
+ break;
+ case 4:
+ a.a.a = 0;
+ a.a.b = a.o.b / 2;
+ }
+ }
+ }
+ function dfc(a, b) {
+ var c, d, e;
+ if (JD(b.g, 10) && BD(b.g, 10).k == (j0b(), e0b)) {
+ return Pje;
+ }
+ e = ugc(b);
+ if (e) {
+ return $wnd.Math.max(0, a.b / 2 - 0.5);
+ }
+ c = tgc(b);
+ if (c) {
+ d = Edb(ED(pBc(c, (Nyc(), vyc))));
+ return $wnd.Math.max(0, d / 2 - 0.5);
+ }
+ return Pje;
+ }
+ function ffc(a, b) {
+ var c, d, e;
+ if (JD(b.g, 10) && BD(b.g, 10).k == (j0b(), e0b)) {
+ return Pje;
+ }
+ e = ugc(b);
+ if (e) {
+ return $wnd.Math.max(0, a.b / 2 - 0.5);
+ }
+ c = tgc(b);
+ if (c) {
+ d = Edb(ED(pBc(c, (Nyc(), vyc))));
+ return $wnd.Math.max(0, d / 2 - 0.5);
+ }
+ return Pje;
+ }
+ function xic(a) {
+ var b, c, d, e, f, g;
+ g = CHc(a.d, a.e);
+ for (f = g.Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 11);
+ d = a.e == (Ucd(), Tcd) ? e.e : e.g;
+ for (c = new olb(d); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 17);
+ if (!OZb(b) && b.c.i.c != b.d.i.c) {
+ tic(a, b);
+ ++a.f;
+ ++a.c;
+ }
+ }
+ }
+ }
+ function tpc(a, b) {
+ var c, d;
+ if (b.dc()) {
+ return mmb(), mmb(), jmb;
+ }
+ d = new Rkb();
+ Ekb(d, meb(Rie));
+ for (c = 1; c < a.f; ++c) {
+ a.a == null && Toc(a);
+ a.a[c] && Ekb(d, meb(c));
+ }
+ if (d.c.length == 1) {
+ return mmb(), mmb(), jmb;
+ }
+ Ekb(d, meb(Ohe));
+ return spc(b, d);
+ }
+ function MJc(a, b) {
+ var c, d, e, f, g, h, i;
+ g = b.c.i.k != (j0b(), h0b);
+ i = g ? b.d : b.c;
+ c = MZb(b, i).i;
+ e = BD(Ohb(a.k, i), 121);
+ d = a.i[c.p].a;
+ if (S_b(i.i) < (!c.c ? -1 : Jkb(c.c.a, c, 0))) {
+ f = e;
+ h = d;
+ } else {
+ f = d;
+ h = e;
+ }
+ AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 4), f), h));
+ }
+ function oqd(a, b, c) {
+ var d, e, f, g, h, i;
+ if (c) {
+ e = c.a.length;
+ d = new Yge(e);
+ for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
+ g = BD(h.Pb(), 19);
+ i = Wqd(a, Vpd(tB(c, g.a)));
+ if (i) {
+ f = (!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b);
+ wtd(f, i);
+ }
+ }
+ }
+ }
+ function pqd(a, b, c) {
+ var d, e, f, g, h, i;
+ if (c) {
+ e = c.a.length;
+ d = new Yge(e);
+ for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
+ g = BD(h.Pb(), 19);
+ i = Wqd(a, Vpd(tB(c, g.a)));
+ if (i) {
+ f = (!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c);
+ wtd(f, i);
+ }
+ }
+ }
+ }
+ function po(a, b, c) {
+ var d, e;
+ d = b.a & a.f;
+ b.b = a.b[d];
+ a.b[d] = b;
+ e = b.f & a.f;
+ b.d = a.c[e];
+ a.c[e] = b;
+ if (!c) {
+ b.e = a.e;
+ b.c = null;
+ !a.e ? a.a = b : a.e.c = b;
+ a.e = b;
+ } else {
+ b.e = c.e;
+ !b.e ? a.a = b : b.e.c = b;
+ b.c = c.c;
+ !b.c ? a.e = b : b.c.e = b;
+ }
+ ++a.i;
+ ++a.g;
+ }
+ function qr(a) {
+ var b, c, d;
+ b = a.Pb();
+ if (!a.Ob()) {
+ return b;
+ }
+ d = Pfb(Qfb(new Ufb(), "expected one element but was: <"), b);
+ for (c = 0; c < 4 && a.Ob(); c++) {
+ Pfb((d.a += She, d), a.Pb());
+ }
+ a.Ob() && (d.a += ", ...", d);
+ d.a += ">";
+ throw vbb(new Wdb(d.a));
+ }
+ function lt(a, b) {
+ var c;
+ b.d ? b.d.b = b.b : a.a = b.b;
+ b.b ? b.b.d = b.d : a.e = b.d;
+ if (!b.e && !b.c) {
+ c = BD(Thb(a.b, b.a), 283);
+ c.a = 0;
+ ++a.c;
+ } else {
+ c = BD(Ohb(a.b, b.a), 283);
+ --c.a;
+ !b.e ? c.b = b.c : b.e.c = b.c;
+ !b.c ? c.c = b.e : b.c.e = b.e;
+ }
+ --a.d;
+ }
+ function OA(a) {
+ var b, c;
+ c = -a.a;
+ b = OC(GC(TD, 1), $ie, 25, 15, [43, 48, 48, 48, 48]);
+ if (c < 0) {
+ b[0] = 45;
+ c = -c;
+ }
+ b[1] = b[1] + ((c / 60 | 0) / 10 | 0) & aje;
+ b[2] = b[2] + (c / 60 | 0) % 10 & aje;
+ b[3] = b[3] + (c % 60 / 10 | 0) & aje;
+ b[4] = b[4] + c % 10 & aje;
+ return zfb(b, 0, b.length);
+ }
+ function uRb(a, b, c) {
+ var d, e;
+ d = b.d;
+ e = c.d;
+ while (d.a - e.a == 0 && d.b - e.b == 0) {
+ d.a += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
+ d.b += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
+ e.a += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
+ e.b += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
+ }
+ }
+ function N_b(a) {
+ var b, c, d, e;
+ a.g = new Rpb(BD(Qb(F1), 290));
+ d = 0;
+ c = (Ucd(), Acd);
+ b = 0;
+ for (; b < a.j.c.length; b++) {
+ e = BD(Ikb(a.j, b), 11);
+ if (e.j != c) {
+ d != b && Npb(a.g, c, new vgd(meb(d), meb(b)));
+ c = e.j;
+ d = b;
+ }
+ }
+ Npb(a.g, c, new vgd(meb(d), meb(b)));
+ }
+ function d4b(a) {
+ var b, c, d, e, f, g, h;
+ d = 0;
+ for (c = new olb(a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 29);
+ for (f = new olb(b.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ e.p = d++;
+ for (h = new olb(e.j); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 11);
+ g.p = d++;
+ }
+ }
+ }
+ }
+ function qPc(a, b, c, d, e) {
+ var f, g, h, i, j;
+ if (b) {
+ for (h = b.Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 10);
+ for (j = X_b(g, (KAc(), IAc), c).Kc(); j.Ob(); ) {
+ i = BD(j.Pb(), 11);
+ f = BD(Wd(irb(e.f, i)), 112);
+ if (!f) {
+ f = new uOc(a.d);
+ d.c[d.c.length] = f;
+ jOc(f, i, e);
+ }
+ }
+ }
+ }
+ }
+ function vid(a, b) {
+ var c, d, e;
+ e = e1d((O6d(), M6d), a.Tg(), b);
+ if (e) {
+ Q6d();
+ BD(e, 66).Oj() || (e = _1d(q1d(M6d, e)));
+ d = (c = a.Yg(e), BD(c >= 0 ? a._g(c, true, true) : sid(a, e, true), 153));
+ BD(d, 215).ol(b);
+ } else {
+ throw vbb(new Wdb(ite + b.ne() + jte));
+ }
+ }
+ function ugb(a) {
+ var b, c;
+ if (a > -140737488355328 && a < 140737488355328) {
+ if (a == 0) {
+ return 0;
+ }
+ b = a < 0;
+ b && (a = -a);
+ c = QD($wnd.Math.floor($wnd.Math.log(a) / 0.6931471805599453));
+ (!b || a != $wnd.Math.pow(2, c)) && ++c;
+ return c;
+ }
+ return vgb(Cbb(a));
+ }
+ function QOc(a) {
+ var b, c, d, e, f, g, h;
+ f = new zsb();
+ for (c = new olb(a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 129);
+ g = b.a;
+ h = b.b;
+ if (f.a._b(g) || f.a._b(h)) {
+ continue;
+ }
+ e = g;
+ d = h;
+ if (g.e.b + g.j.b > 2 && h.e.b + h.j.b <= 2) {
+ e = h;
+ d = g;
+ }
+ f.a.zc(e, f);
+ e.q = d;
+ }
+ return f;
+ }
+ function K5b(a, b) {
+ var c, d, e;
+ d = new b0b(a);
+ tNb(d, b);
+ yNb(d, (wtc(), Gsc), b);
+ yNb(d, (Nyc(), Vxc), (dcd(), $bd));
+ yNb(d, mwc, (F7c(), B7c));
+ __b(d, (j0b(), e0b));
+ c = new H0b();
+ F0b(c, d);
+ G0b(c, (Ucd(), Tcd));
+ e = new H0b();
+ F0b(e, d);
+ G0b(e, zcd);
+ return d;
+ }
+ function Spc(a) {
+ switch (a.g) {
+ case 0:
+ return new fGc((rGc(), oGc));
+ case 1:
+ return new CFc();
+ case 2:
+ return new fHc();
+ default:
+ throw vbb(new Wdb("No implementation is available for the crossing minimizer " + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function tDc(a, b) {
+ var c, d, e, f, g;
+ a.c[b.p] = true;
+ Ekb(a.a, b);
+ for (g = new olb(b.j); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 11);
+ for (d = new b1b(f.b); llb(d.a) || llb(d.b); ) {
+ c = BD(llb(d.a) ? mlb(d.a) : mlb(d.b), 17);
+ e = uDc(f, c).i;
+ a.c[e.p] || tDc(a, e);
+ }
+ }
+ }
+ function _Uc(a) {
+ var b, c, d, e, f, g, h;
+ g = 0;
+ for (c = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 33);
+ h = b.g;
+ e = b.f;
+ d = $wnd.Math.sqrt(h * h + e * e);
+ g = $wnd.Math.max(d, g);
+ f = _Uc(b);
+ g = $wnd.Math.max(f, g);
+ }
+ return g;
+ }
+ function rcd() {
+ rcd = ccb;
+ pcd = new scd("OUTSIDE", 0);
+ ncd = new scd("INSIDE", 1);
+ ocd = new scd("NEXT_TO_PORT_IF_POSSIBLE", 2);
+ mcd = new scd("ALWAYS_SAME_SIDE", 3);
+ lcd = new scd("ALWAYS_OTHER_SAME_SIDE", 4);
+ qcd = new scd("SPACE_EFFICIENT", 5);
+ }
+ function drd(a, b, c) {
+ var d, e, f, h, i, j;
+ d = Tqd(a, (e = (Fhd(), f = new apd(), f), !!c && $od(e, c), e), b);
+ Lkd(d, _pd(b, Vte));
+ grd(b, d);
+ brd(b, d);
+ hrd(b, d);
+ h = b;
+ i = Ypd(h, "ports");
+ j = new Jrd(a, d);
+ Fqd(j.a, j.b, i);
+ crd(a, b, d);
+ Zqd(a, b, d);
+ return d;
+ }
+ function NA(a) {
+ var b, c;
+ c = -a.a;
+ b = OC(GC(TD, 1), $ie, 25, 15, [43, 48, 48, 58, 48, 48]);
+ if (c < 0) {
+ b[0] = 45;
+ c = -c;
+ }
+ b[1] = b[1] + ((c / 60 | 0) / 10 | 0) & aje;
+ b[2] = b[2] + (c / 60 | 0) % 10 & aje;
+ b[4] = b[4] + (c % 60 / 10 | 0) & aje;
+ b[5] = b[5] + c % 10 & aje;
+ return zfb(b, 0, b.length);
+ }
+ function QA(a) {
+ var b;
+ b = OC(GC(TD, 1), $ie, 25, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]);
+ if (a <= 0) {
+ b[3] = 43;
+ a = -a;
+ }
+ b[4] = b[4] + ((a / 60 | 0) / 10 | 0) & aje;
+ b[5] = b[5] + (a / 60 | 0) % 10 & aje;
+ b[7] = b[7] + (a % 60 / 10 | 0) & aje;
+ b[8] = b[8] + a % 10 & aje;
+ return zfb(b, 0, b.length);
+ }
+ function Vlb(a) {
+ var b, c, d, e, f;
+ if (a == null) {
+ return Xhe;
+ }
+ f = new xwb(She, "[", "]");
+ for (c = a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ !f.a ? f.a = new Wfb(f.d) : Qfb(f.a, f.b);
+ Nfb(f.a, "" + Ubb(b));
+ }
+ return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e);
+ }
+ function DGb(a, b) {
+ var c, d, e;
+ e = Ohe;
+ for (d = new olb(LFb(b)); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 213);
+ if (c.f && !a.c[c.c]) {
+ a.c[c.c] = true;
+ e = $wnd.Math.min(e, DGb(a, xFb(c, b)));
+ }
+ }
+ a.i[b.d] = a.j;
+ a.g[b.d] = $wnd.Math.min(e, a.j++);
+ return a.g[b.d];
+ }
+ function EKb(a, b) {
+ var c, d, e;
+ for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 111);
+ d.e.b = (c = d.b, c.Xe((Y9c(), s9c)) ? c.Hf() == (Ucd(), Acd) ? -c.rf().b - Edb(ED(c.We(s9c))) : Edb(ED(c.We(s9c))) : c.Hf() == (Ucd(), Acd) ? -c.rf().b : 0);
+ }
+ }
+ function LPb(a) {
+ var b, c, d, e, f, g, h;
+ c = IOb(a.e);
+ f = Y6c(b7c(R6c(HOb(a.e)), a.d * a.a, a.c * a.b), -0.5);
+ b = c.a - f.a;
+ e = c.b - f.b;
+ for (h = 0; h < a.c; h++) {
+ d = b;
+ for (g = 0; g < a.d; g++) {
+ JOb(a.e, new J6c(d, e, a.a, a.b)) && aNb(a, g, h, false, true);
+ d += a.a;
+ }
+ e += a.b;
+ }
+ }
+ function s2c(a) {
+ var b, c, d;
+ if (Ccb(DD(hkd(a, (Y9c(), M8c))))) {
+ d = new Rkb();
+ for (c = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 79);
+ Qld(b) && Ccb(DD(hkd(b, N8c))) && (d.c[d.c.length] = b, true);
+ }
+ return d;
+ } else {
+ return mmb(), mmb(), jmb;
+ }
+ }
+ function Vpd(a) {
+ var b, c;
+ c = false;
+ if (JD(a, 204)) {
+ c = true;
+ return BD(a, 204).a;
+ }
+ if (!c) {
+ if (JD(a, 258)) {
+ b = BD(a, 258).a % 1 == 0;
+ if (b) {
+ c = true;
+ return meb(Idb(BD(a, 258).a));
+ }
+ }
+ }
+ throw vbb(new cqd("Id must be a string or an integer: '" + a + "'."));
+ }
+ function k0d(a, b) {
+ var c, d, e, f, g, h;
+ f = null;
+ for (e = new x0d((!a.a && (a.a = new z0d(a)), a.a)); u0d(e); ) {
+ c = BD(Vud(e), 56);
+ d = (g = c.Tg(), h = (OKd(g), g.o), !h || !c.mh(h) ? null : h6d(KJd(h), c.ah(h)));
+ if (d != null) {
+ if (dfb(d, b)) {
+ f = c;
+ break;
+ }
+ }
+ }
+ return f;
+ }
+ function Bw(a, b, c) {
+ var d, e, f, g, h;
+ Xj(c, "occurrences");
+ if (c == 0) {
+ return h = BD(Hv(nd(a.a), b), 14), !h ? 0 : h.gc();
+ }
+ g = BD(Hv(nd(a.a), b), 14);
+ if (!g) {
+ return 0;
+ }
+ f = g.gc();
+ if (c >= f) {
+ g.$b();
+ } else {
+ e = g.Kc();
+ for (d = 0; d < c; d++) {
+ e.Pb();
+ e.Qb();
+ }
+ }
+ return f;
+ }
+ function ax(a, b, c) {
+ var d, e, f, g;
+ Xj(c, "oldCount");
+ Xj(0, "newCount");
+ d = BD(Hv(nd(a.a), b), 14);
+ if ((!d ? 0 : d.gc()) == c) {
+ Xj(0, "count");
+ e = (f = BD(Hv(nd(a.a), b), 14), !f ? 0 : f.gc());
+ g = -e;
+ g > 0 ? zh() : g < 0 && Bw(a, b, -g);
+ return true;
+ } else {
+ return false;
+ }
+ }
+ function fIb(a) {
+ var b, c, d, e, f, g, h;
+ h = 0;
+ if (a.b == 0) {
+ g = jIb(a, true);
+ b = 0;
+ for (d = g, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ if (c > 0) {
+ h += c;
+ ++b;
+ }
+ }
+ b > 1 && (h += a.c * (b - 1));
+ } else {
+ h = Mtb(Zzb(OAb(JAb(Plb(a.a), new xIb()), new zIb())));
+ }
+ return h > 0 ? h + a.n.d + a.n.a : 0;
+ }
+ function gIb(a) {
+ var b, c, d, e, f, g, h;
+ h = 0;
+ if (a.b == 0) {
+ h = Mtb(Zzb(OAb(JAb(Plb(a.a), new tIb()), new vIb())));
+ } else {
+ g = kIb(a, true);
+ b = 0;
+ for (d = g, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ if (c > 0) {
+ h += c;
+ ++b;
+ }
+ }
+ b > 1 && (h += a.c * (b - 1));
+ }
+ return h > 0 ? h + a.n.b + a.n.c : 0;
+ }
+ function MJb(a, b) {
+ var c, d, e, f;
+ f = BD(Mpb(a.b, b), 124);
+ c = f.a;
+ for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 111);
+ !!d.c && (c.a = $wnd.Math.max(c.a, ZHb(d.c)));
+ }
+ if (c.a > 0) {
+ switch (b.g) {
+ case 2:
+ f.n.c = a.s;
+ break;
+ case 4:
+ f.n.b = a.s;
+ }
+ }
+ }
+ function NQb(a, b) {
+ var c, d, e;
+ c = BD(vNb(b, (wSb(), oSb)), 19).a - BD(vNb(a, oSb), 19).a;
+ if (c == 0) {
+ d = c7c(R6c(BD(vNb(a, (HSb(), DSb)), 8)), BD(vNb(a, ESb), 8));
+ e = c7c(R6c(BD(vNb(b, DSb), 8)), BD(vNb(b, ESb), 8));
+ return Kdb(d.a * d.b, e.a * e.b);
+ }
+ return c;
+ }
+ function iRc(a, b) {
+ var c, d, e;
+ c = BD(vNb(b, (JTc(), ETc)), 19).a - BD(vNb(a, ETc), 19).a;
+ if (c == 0) {
+ d = c7c(R6c(BD(vNb(a, (mTc(), VSc)), 8)), BD(vNb(a, WSc), 8));
+ e = c7c(R6c(BD(vNb(b, VSc), 8)), BD(vNb(b, WSc), 8));
+ return Kdb(d.a * d.b, e.a * e.b);
+ }
+ return c;
+ }
+ function TZb(a) {
+ var b, c;
+ c = new Ufb();
+ c.a += "e_";
+ b = KZb(a);
+ b != null && (c.a += "" + b, c);
+ if (!!a.c && !!a.d) {
+ Qfb((c.a += " ", c), C0b(a.c));
+ Qfb(Pfb((c.a += "[", c), a.c.i), "]");
+ Qfb((c.a += gne, c), C0b(a.d));
+ Qfb(Pfb((c.a += "[", c), a.d.i), "]");
+ }
+ return c.a;
+ }
+ function zRc(a) {
+ switch (a.g) {
+ case 0:
+ return new lUc();
+ case 1:
+ return new sUc();
+ case 2:
+ return new CUc();
+ case 3:
+ return new IUc();
+ default:
+ throw vbb(new Wdb("No implementation is available for the layout phase " + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function mfd(a, b, c, d, e) {
+ var f;
+ f = 0;
+ switch (e.g) {
+ case 1:
+ f = $wnd.Math.max(0, b.b + a.b - (c.b + d));
+ break;
+ case 3:
+ f = $wnd.Math.max(0, -a.b - d);
+ break;
+ case 2:
+ f = $wnd.Math.max(0, -a.a - d);
+ break;
+ case 4:
+ f = $wnd.Math.max(0, b.a + a.a - (c.a + d));
+ }
+ return f;
+ }
+ function mqd(a, b, c) {
+ var d, e, f, g, h;
+ if (c) {
+ e = c.a.length;
+ d = new Yge(e);
+ for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
+ g = BD(h.Pb(), 19);
+ f = Zpd(c, g.a);
+ Lte in f.a || Mte in f.a ? $qd(a, f, b) : erd(a, f, b);
+ otd(BD(Ohb(a.b, Wpd(f)), 79));
+ }
+ }
+ }
+ function LJd(a) {
+ var b, c;
+ switch (a.b) {
+ case -1: {
+ return true;
+ }
+ case 0: {
+ c = a.t;
+ if (c > 1 || c == -1) {
+ a.b = -1;
+ return true;
+ } else {
+ b = wId(a);
+ if (!!b && (Q6d(), b.Cj() == Bve)) {
+ a.b = -1;
+ return true;
+ } else {
+ a.b = 1;
+ return false;
+ }
+ }
+ }
+ default:
+ case 1: {
+ return false;
+ }
+ }
+ }
+ function k1d(a, b) {
+ var c, d, e, f, g;
+ d = (!b.s && (b.s = new cUd(t5, b, 21, 17)), b.s);
+ f = null;
+ for (e = 0, g = d.i; e < g; ++e) {
+ c = BD(qud(d, e), 170);
+ switch ($1d(q1d(a, c))) {
+ case 2:
+ case 3: {
+ !f && (f = new Rkb());
+ f.c[f.c.length] = c;
+ }
+ }
+ }
+ return !f ? (mmb(), mmb(), jmb) : f;
+ }
+ function tde(a, b) {
+ var c, d, e, f;
+ nde(a);
+ if (a.c != 0 || a.a != 123)
+ throw vbb(new mde(tvd((h0d(), Fue))));
+ f = b == 112;
+ d = a.d;
+ c = gfb(a.i, 125, d);
+ if (c < 0)
+ throw vbb(new mde(tvd((h0d(), Gue))));
+ e = qfb(a.i, d, c);
+ a.d = c + 1;
+ return Lfe(e, f, (a.e & 512) == 512);
+ }
+ function QTb(a) {
+ var b;
+ b = BD(vNb(a, (Nyc(), Iwc)), 314);
+ if (b == (Rpc(), Ppc)) {
+ throw vbb(new z2c("The hierarchy aware processor " + b + " in child node " + a + " is only allowed if the root node specifies the same hierarchical processor."));
+ }
+ }
+ function dhc(a, b) {
+ Hgc();
+ var c, d, e, f, g, h;
+ c = null;
+ for (g = b.Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 128);
+ if (f.o) {
+ continue;
+ }
+ d = F6c(f.a);
+ e = C6c(f.a);
+ h = new hic(d, e, null, BD(f.d.a.ec().Kc().Pb(), 17));
+ Ekb(h.c, f.a);
+ a.c[a.c.length] = h;
+ !!c && Ekb(c.d, h);
+ c = h;
+ }
+ }
+ function hKd(a, b) {
+ var c, d, e;
+ if (!b) {
+ jKd(a, null);
+ _Jd(a, null);
+ } else if ((b.i & 4) != 0) {
+ d = "[]";
+ for (c = b.c; ; c = c.c) {
+ if ((c.i & 4) == 0) {
+ e = jfb((fdb(c), c.o + d));
+ jKd(a, e);
+ _Jd(a, e);
+ break;
+ }
+ d += "[]";
+ }
+ } else {
+ e = jfb((fdb(b), b.o));
+ jKd(a, e);
+ _Jd(a, e);
+ }
+ a.yk(b);
+ }
+ function b3d(a, b, c, d, e) {
+ var f, g, h, i;
+ i = a3d(a, BD(e, 56));
+ if (PD(i) !== PD(e)) {
+ h = BD(a.g[c], 72);
+ f = R6d(b, i);
+ mud(a, c, t3d(a, c, f));
+ if (oid(a.e)) {
+ g = H2d(a, 9, f.ak(), e, i, d, false);
+ Qwd(g, new pSd(a.e, 9, a.c, h, f, d, false));
+ Rwd(g);
+ }
+ return i;
+ }
+ return e;
+ }
+ function xCc(a, b, c) {
+ var d, e, f, g, h, i;
+ d = BD(Qc(a.c, b), 15);
+ e = BD(Qc(a.c, c), 15);
+ f = d.Zc(d.gc());
+ g = e.Zc(e.gc());
+ while (f.Sb() && g.Sb()) {
+ h = BD(f.Ub(), 19);
+ i = BD(g.Ub(), 19);
+ if (h != i) {
+ return beb(h.a, i.a);
+ }
+ }
+ return !f.Ob() && !g.Ob() ? 0 : f.Ob() ? 1 : -1;
+ }
+ function m5c(c, d) {
+ var e, f, g;
+ try {
+ g = fs(c.a, d);
+ return g;
+ } catch (b) {
+ b = ubb(b);
+ if (JD(b, 32)) {
+ try {
+ f = Icb(d, Rie, Ohe);
+ e = gdb(c.a);
+ if (f >= 0 && f < e.length) {
+ return e[f];
+ }
+ } catch (a) {
+ a = ubb(a);
+ if (!JD(a, 127))
+ throw vbb(a);
+ }
+ return null;
+ } else
+ throw vbb(b);
+ }
+ }
+ function tid(a, b) {
+ var c, d, e;
+ e = e1d((O6d(), M6d), a.Tg(), b);
+ if (e) {
+ Q6d();
+ BD(e, 66).Oj() || (e = _1d(q1d(M6d, e)));
+ d = (c = a.Yg(e), BD(c >= 0 ? a._g(c, true, true) : sid(a, e, true), 153));
+ return BD(d, 215).ll(b);
+ } else {
+ throw vbb(new Wdb(ite + b.ne() + lte));
+ }
+ }
+ function BZd() {
+ tZd();
+ var a;
+ if (sZd)
+ return BD(nUd((yFd(), xFd), _ve), 1939);
+ rEd(CK, new J_d());
+ CZd();
+ a = BD(JD(Phb((yFd(), xFd), _ve), 547) ? Phb(xFd, _ve) : new AZd(), 547);
+ sZd = true;
+ yZd(a);
+ zZd(a);
+ Rhb((JFd(), IFd), a, new EZd());
+ Shb(xFd, _ve, a);
+ return a;
+ }
+ function v2d(a, b) {
+ var c, d, e, f;
+ a.j = -1;
+ if (oid(a.e)) {
+ c = a.i;
+ f = a.i != 0;
+ lud(a, b);
+ d = new pSd(a.e, 3, a.c, null, b, c, f);
+ e = b.Qk(a.e, a.c, null);
+ e = h3d(a, b, e);
+ if (!e) {
+ Uhd(a.e, d);
+ } else {
+ e.Ei(d);
+ e.Fi();
+ }
+ } else {
+ lud(a, b);
+ e = b.Qk(a.e, a.c, null);
+ !!e && e.Fi();
+ }
+ }
+ function rA(a, b) {
+ var c, d, e;
+ e = 0;
+ d = b[0];
+ if (d >= a.length) {
+ return -1;
+ }
+ c = (BCb(d, a.length), a.charCodeAt(d));
+ while (c >= 48 && c <= 57) {
+ e = e * 10 + (c - 48);
+ ++d;
+ if (d >= a.length) {
+ break;
+ }
+ c = (BCb(d, a.length), a.charCodeAt(d));
+ }
+ d > b[0] ? b[0] = d : e = -1;
+ return e;
+ }
+ function vMb(a) {
+ var b, c, d, e, f;
+ e = BD(a.a, 19).a;
+ f = BD(a.b, 19).a;
+ c = e;
+ d = f;
+ b = $wnd.Math.max($wnd.Math.abs(e), $wnd.Math.abs(f));
+ if (e <= 0 && e == f) {
+ c = 0;
+ d = f - 1;
+ } else {
+ if (e == -b && f != b) {
+ c = f;
+ d = e;
+ f >= 0 && ++c;
+ } else {
+ c = -f;
+ d = e;
+ }
+ }
+ return new vgd(meb(c), meb(d));
+ }
+ function fNb(a, b, c, d) {
+ var e, f, g, h, i, j;
+ for (e = 0; e < b.o; e++) {
+ f = e - b.j + c;
+ for (g = 0; g < b.p; g++) {
+ h = g - b.k + d;
+ if ((i = f, j = h, i += a.j, j += a.k, i >= 0 && j >= 0 && i < a.o && j < a.p) && (!ZMb(b, e, g) && hNb(a, f, h) || YMb(b, e, g) && !iNb(a, f, h))) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function LNc(a, b, c) {
+ var d, e, f, g, h;
+ g = a.c;
+ h = a.d;
+ f = l7c(OC(GC(m1, 1), nie, 8, 0, [g.i.n, g.n, g.a])).b;
+ e = (f + l7c(OC(GC(m1, 1), nie, 8, 0, [h.i.n, h.n, h.a])).b) / 2;
+ d = null;
+ g.j == (Ucd(), zcd) ? d = new f7c(b + g.i.c.c.a + c, e) : d = new f7c(b - c, e);
+ St(a.a, 0, d);
+ }
+ function Qld(a) {
+ var b, c, d, e;
+ b = null;
+ for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)]))); Qr(d); ) {
+ c = BD(Rr(d), 82);
+ e = atd(c);
+ if (!b) {
+ b = e;
+ } else if (b != e) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function sud(a, b, c) {
+ var d;
+ ++a.j;
+ if (b >= a.i)
+ throw vbb(new qcb(lue + b + mue + a.i));
+ if (c >= a.i)
+ throw vbb(new qcb(nue + c + mue + a.i));
+ d = a.g[c];
+ if (b != c) {
+ b < c ? $fb(a.g, b, a.g, b + 1, c - b) : $fb(a.g, c + 1, a.g, c, b - c);
+ NC(a.g, b, d);
+ a.ei(b, d, c);
+ a.ci();
+ }
+ return d;
+ }
+ function Rc(a, b, c) {
+ var d;
+ d = BD(a.c.xc(b), 14);
+ if (!d) {
+ d = a.ic(b);
+ if (d.Fc(c)) {
+ ++a.d;
+ a.c.zc(b, d);
+ return true;
+ } else {
+ throw vbb(new ycb("New Collection violated the Collection spec"));
+ }
+ } else if (d.Fc(c)) {
+ ++a.d;
+ return true;
+ } else {
+ return false;
+ }
+ }
+ function heb(a) {
+ var b, c, d;
+ if (a < 0) {
+ return 0;
+ } else if (a == 0) {
+ return 32;
+ } else {
+ d = -(a >> 16);
+ b = d >> 16 & 16;
+ c = 16 - b;
+ a = a >> b;
+ d = a - 256;
+ b = d >> 16 & 8;
+ c += b;
+ a <<= b;
+ d = a - Rje;
+ b = d >> 16 & 4;
+ c += b;
+ a <<= b;
+ d = a - oie;
+ b = d >> 16 & 2;
+ c += b;
+ a <<= b;
+ d = a >> 14;
+ b = d & ~(d >> 1);
+ return c + 2 - b;
+ }
+ }
+ function $Pb(a) {
+ QPb();
+ var b, c, d, e;
+ PPb = new Rkb();
+ OPb = new Lqb();
+ NPb = new Rkb();
+ b = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a);
+ SPb(b);
+ for (e = new Fyd(b); e.e != e.i.gc(); ) {
+ d = BD(Dyd(e), 33);
+ if (Jkb(PPb, d, 0) == -1) {
+ c = new Rkb();
+ Ekb(NPb, c);
+ TPb(d, c);
+ }
+ }
+ return NPb;
+ }
+ function BQb(a, b, c) {
+ var d, e, f, g;
+ a.a = c.b.d;
+ if (JD(b, 352)) {
+ e = itd(BD(b, 79), false, false);
+ f = ofd(e);
+ d = new FQb(a);
+ reb(f, d);
+ ifd(f, e);
+ b.We((Y9c(), Q8c)) != null && reb(BD(b.We(Q8c), 74), d);
+ } else {
+ g = BD(b, 470);
+ g.Hg(g.Dg() + a.a.a);
+ g.Ig(g.Eg() + a.a.b);
+ }
+ }
+ function _5b(a, b) {
+ var c, d, e, f, g, h, i, j;
+ j = Edb(ED(vNb(b, (Nyc(), zyc))));
+ i = a[0].n.a + a[0].o.a + a[0].d.c + j;
+ for (h = 1; h < a.length; h++) {
+ d = a[h].n;
+ e = a[h].o;
+ c = a[h].d;
+ f = d.a - c.b - i;
+ f < 0 && (d.a -= f);
+ g = b.f;
+ g.a = $wnd.Math.max(g.a, d.a + e.a);
+ i = d.a + e.a + c.c + j;
+ }
+ }
+ function D$c(a, b) {
+ var c, d, e, f, g, h;
+ d = BD(BD(Ohb(a.g, b.a), 46).a, 65);
+ e = BD(BD(Ohb(a.g, b.b), 46).a, 65);
+ f = d.b;
+ g = e.b;
+ c = z6c(f, g);
+ if (c >= 0) {
+ return c;
+ }
+ h = U6c(c7c(new f7c(g.c + g.b / 2, g.d + g.a / 2), new f7c(f.c + f.b / 2, f.d + f.a / 2)));
+ return -(xOb(f, g) - 1) * h;
+ }
+ function ufd(a, b, c) {
+ var d;
+ MAb(new YAb(null, (!c.a && (c.a = new cUd(A2, c, 6, 6)), new Kub(c.a, 16))), new Mfd(a, b));
+ MAb(new YAb(null, (!c.n && (c.n = new cUd(D2, c, 1, 7)), new Kub(c.n, 16))), new Ofd(a, b));
+ d = BD(hkd(c, (Y9c(), Q8c)), 74);
+ !!d && p7c(d, a, b);
+ }
+ function sid(a, b, c) {
+ var d, e, f;
+ f = e1d((O6d(), M6d), a.Tg(), b);
+ if (f) {
+ Q6d();
+ BD(f, 66).Oj() || (f = _1d(q1d(M6d, f)));
+ e = (d = a.Yg(f), BD(d >= 0 ? a._g(d, true, true) : sid(a, f, true), 153));
+ return BD(e, 215).hl(b, c);
+ } else {
+ throw vbb(new Wdb(ite + b.ne() + lte));
+ }
+ }
+ function wAd(a, b, c, d) {
+ var e, f, g, h, i;
+ e = a.d[b];
+ if (e) {
+ f = e.g;
+ i = e.i;
+ if (d != null) {
+ for (h = 0; h < i; ++h) {
+ g = BD(f[h], 133);
+ if (g.Sh() == c && pb(d, g.cd())) {
+ return g;
+ }
+ }
+ } else {
+ for (h = 0; h < i; ++h) {
+ g = BD(f[h], 133);
+ if (PD(g.cd()) === PD(d)) {
+ return g;
+ }
+ }
+ }
+ }
+ return null;
+ }
+ function Pgb(a, b) {
+ var c;
+ if (b < 0) {
+ throw vbb(new ocb("Negative exponent"));
+ }
+ if (b == 0) {
+ return Cgb;
+ } else if (b == 1 || Kgb(a, Cgb) || Kgb(a, Ggb)) {
+ return a;
+ }
+ if (!Sgb(a, 0)) {
+ c = 1;
+ while (!Sgb(a, c)) {
+ ++c;
+ }
+ return Ogb(bhb(c * b), Pgb(Rgb(a, c), b));
+ }
+ return Jhb(a, b);
+ }
+ function xlb(a, b) {
+ var c, d, e;
+ if (PD(a) === PD(b)) {
+ return true;
+ }
+ if (a == null || b == null) {
+ return false;
+ }
+ if (a.length != b.length) {
+ return false;
+ }
+ for (c = 0; c < a.length; ++c) {
+ d = a[c];
+ e = b[c];
+ if (!(PD(d) === PD(e) || d != null && pb(d, e))) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function CVb(a) {
+ nVb();
+ var b, c, d;
+ this.b = mVb;
+ this.c = (ead(), cad);
+ this.f = (iVb(), hVb);
+ this.a = a;
+ zVb(this, new DVb());
+ sVb(this);
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 81);
+ if (!c.d) {
+ b = new gVb(OC(GC(IP, 1), Uhe, 81, 0, [c]));
+ Ekb(a.a, b);
+ }
+ }
+ }
+ function D3b(a, b, c) {
+ var d, e, f, g, h, i;
+ if (!a || a.c.length == 0) {
+ return null;
+ }
+ f = new cIb(b, !c);
+ for (e = new olb(a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 70);
+ UHb(f, (a$b(), new v$b(d)));
+ }
+ g = f.i;
+ g.a = (i = f.n, f.e.b + i.d + i.a);
+ g.b = (h = f.n, f.e.a + h.b + h.c);
+ return f;
+ }
+ function O5b(a) {
+ var b, c, d, e, f, g, h;
+ h = l_b(a.a);
+ Nlb(h, new T5b());
+ c = null;
+ for (e = h, f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ if (d.k != (j0b(), e0b)) {
+ break;
+ }
+ b = BD(vNb(d, (wtc(), Hsc)), 61);
+ if (b != (Ucd(), Tcd) && b != zcd) {
+ continue;
+ }
+ !!c && BD(vNb(c, Qsc), 15).Fc(d);
+ c = d;
+ }
+ }
+ function YOc(a, b, c) {
+ var d, e, f, g, h, i, j;
+ i = (tCb(b, a.c.length), BD(a.c[b], 329));
+ Kkb(a, b);
+ if (i.b / 2 >= c) {
+ d = b;
+ j = (i.c + i.a) / 2;
+ g = j - c;
+ if (i.c <= j - c) {
+ e = new bPc(i.c, g);
+ Dkb(a, d++, e);
+ }
+ h = j + c;
+ if (h <= i.a) {
+ f = new bPc(h, i.a);
+ wCb(d, a.c.length);
+ aCb(a.c, d, f);
+ }
+ }
+ }
+ function u0d(a) {
+ var b;
+ if (!a.c && a.g == null) {
+ a.d = a.si(a.f);
+ wtd(a, a.d);
+ b = a.d;
+ } else {
+ if (a.g == null) {
+ return true;
+ } else if (a.i == 0) {
+ return false;
+ } else {
+ b = BD(a.g[a.i - 1], 47);
+ }
+ }
+ if (b == a.b && null.km >= null.jm()) {
+ Vud(a);
+ return u0d(a);
+ } else {
+ return b.Ob();
+ }
+ }
+ function KTb(a, b, c) {
+ var d, e, f, g, h;
+ h = c;
+ !h && (h = Ydd(new Zdd(), 0));
+ Odd(h, Vme, 1);
+ aUb(a.c, b);
+ g = EYb(a.a, b);
+ if (g.gc() == 1) {
+ MTb(BD(g.Xb(0), 37), h);
+ } else {
+ f = 1 / g.gc();
+ for (e = g.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 37);
+ MTb(d, Udd(h, f));
+ }
+ }
+ CYb(a.a, g, b);
+ NTb(b);
+ Qdd(h);
+ }
+ function qYb(a) {
+ this.a = a;
+ if (a.c.i.k == (j0b(), e0b)) {
+ this.c = a.c;
+ this.d = BD(vNb(a.c.i, (wtc(), Hsc)), 61);
+ } else if (a.d.i.k == e0b) {
+ this.c = a.d;
+ this.d = BD(vNb(a.d.i, (wtc(), Hsc)), 61);
+ } else {
+ throw vbb(new Wdb("Edge " + a + " is not an external edge."));
+ }
+ }
+ function oQd(a, b) {
+ var c, d, e;
+ e = a.b;
+ a.b = b;
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, e, a.b));
+ if (!b) {
+ pnd(a, null);
+ qQd(a, 0);
+ pQd(a, null);
+ } else if (b != a) {
+ pnd(a, b.zb);
+ qQd(a, b.d);
+ c = (d = b.c, d == null ? b.zb : d);
+ pQd(a, c == null || dfb(c, b.zb) ? null : c);
+ }
+ }
+ function NRd(a) {
+ var b, c;
+ if (a.f) {
+ while (a.n < a.o) {
+ b = BD(!a.j ? a.k.Xb(a.n) : a.j.pi(a.n), 72);
+ c = b.ak();
+ if (JD(c, 99) && (BD(c, 18).Bb & ote) != 0 && (!a.e || c.Gj() != x2 || c.aj() != 0) && b.dd() != null) {
+ return true;
+ } else {
+ ++a.n;
+ }
+ }
+ return false;
+ } else {
+ return a.n < a.o;
+ }
+ }
+ function _i(a, b) {
+ var c;
+ this.e = (im(), Qb(a), im(), nm(a));
+ this.c = (Qb(b), nm(b));
+ Lb(this.e.Hd().dc() == this.c.Hd().dc());
+ this.d = Ev(this.e);
+ this.b = Ev(this.c);
+ c = IC(SI, [nie, Uhe], [5, 1], 5, [this.e.Hd().gc(), this.c.Hd().gc()], 2);
+ this.a = c;
+ Ri(this);
+ }
+ function vz(b) {
+ !tz && (tz = wz()), tz;
+ var d = b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(a) {
+ return uz(a);
+ });
+ return '"' + d + '"';
+ }
+ function cEb(a) {
+ ODb();
+ var b, c;
+ this.b = LDb;
+ this.c = NDb;
+ this.g = (FDb(), EDb);
+ this.d = (ead(), cad);
+ this.a = a;
+ RDb(this);
+ for (c = new olb(a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 57);
+ !b.a && pDb(rDb(new sDb(), OC(GC(PM, 1), Uhe, 57, 0, [b])), a);
+ b.e = new K6c(b.d);
+ }
+ }
+ function HQb(a) {
+ var b, c, d, e, f, g;
+ e = a.e.c.length;
+ d = KC(yK, eme, 15, e, 0, 1);
+ for (g = new olb(a.e); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 144);
+ d[f.b] = new Psb();
+ }
+ for (c = new olb(a.c); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 282);
+ d[b.c.b].Fc(b);
+ d[b.d.b].Fc(b);
+ }
+ return d;
+ }
+ function fDc(a) {
+ var b, c, d, e, f, g, h;
+ h = Pu(a.c.length);
+ for (e = new olb(a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 10);
+ g = new Tqb();
+ f = U_b(d);
+ for (c = new Sr(ur(f.a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 17);
+ b.c.i == b.d.i || Qqb(g, b.d.i);
+ }
+ h.c[h.c.length] = g;
+ }
+ return h;
+ }
+ function ozd(a, b) {
+ var c, d, e, f, g;
+ c = BD(Ajd(a.a, 4), 126);
+ g = c == null ? 0 : c.length;
+ if (b >= g)
+ throw vbb(new Cyd(b, g));
+ e = c[b];
+ if (g == 1) {
+ d = null;
+ } else {
+ d = KC($3, hve, 415, g - 1, 0, 1);
+ $fb(c, 0, d, 0, b);
+ f = g - b - 1;
+ f > 0 && $fb(c, b + 1, d, b, f);
+ }
+ b0d(a, d);
+ a0d(a, b, e);
+ return e;
+ }
+ function m8d() {
+ m8d = ccb;
+ k8d = BD(qud(ZKd((r8d(), q8d).qb), 6), 34);
+ h8d = BD(qud(ZKd(q8d.qb), 3), 34);
+ i8d = BD(qud(ZKd(q8d.qb), 4), 34);
+ j8d = BD(qud(ZKd(q8d.qb), 5), 18);
+ XId(k8d);
+ XId(h8d);
+ XId(i8d);
+ XId(j8d);
+ l8d = new amb(OC(GC(t5, 1), Mve, 170, 0, [k8d, h8d]));
+ }
+ function AJb(a, b) {
+ var c;
+ this.d = new H_b();
+ this.b = b;
+ this.e = new g7c(b.qf());
+ c = a.u.Hc((rcd(), ocd));
+ a.u.Hc(ncd) ? a.D ? this.a = c && !b.If() : this.a = true : a.u.Hc(pcd) ? c ? this.a = !(b.zf().Kc().Ob() || b.Bf().Kc().Ob()) : this.a = false : this.a = false;
+ }
+ function IKb(a, b) {
+ var c, d, e, f;
+ c = a.o.a;
+ for (f = BD(BD(Qc(a.r, b), 21), 84).Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 111);
+ e.e.a = (d = e.b, d.Xe((Y9c(), s9c)) ? d.Hf() == (Ucd(), Tcd) ? -d.rf().a - Edb(ED(d.We(s9c))) : c + Edb(ED(d.We(s9c))) : d.Hf() == (Ucd(), Tcd) ? -d.rf().a : c);
+ }
+ }
+ function Q1b(a, b) {
+ var c, d, e, f;
+ c = BD(vNb(a, (Nyc(), Lwc)), 103);
+ f = BD(hkd(b, $xc), 61);
+ e = BD(vNb(a, Vxc), 98);
+ if (e != (dcd(), bcd) && e != ccd) {
+ if (f == (Ucd(), Scd)) {
+ f = lfd(b, c);
+ f == Scd && (f = Zcd(c));
+ }
+ } else {
+ d = M1b(b);
+ d > 0 ? f = Zcd(c) : f = Wcd(Zcd(c));
+ }
+ jkd(b, $xc, f);
+ }
+ function olc(a, b) {
+ var c, d, e, f, g;
+ g = a.j;
+ b.a != b.b && Okb(g, new Ulc());
+ e = g.c.length / 2 | 0;
+ for (d = 0; d < e; d++) {
+ f = (tCb(d, g.c.length), BD(g.c[d], 113));
+ f.c && G0b(f.d, b.a);
+ }
+ for (c = e; c < g.c.length; c++) {
+ f = (tCb(c, g.c.length), BD(g.c[c], 113));
+ f.c && G0b(f.d, b.b);
+ }
+ }
+ function TGc(a, b, c) {
+ var d, e, f;
+ d = a.c[b.c.p][b.p];
+ e = a.c[c.c.p][c.p];
+ if (d.a != null && e.a != null) {
+ f = Ddb(d.a, e.a);
+ f < 0 ? WGc(a, b, c) : f > 0 && WGc(a, c, b);
+ return f;
+ } else if (d.a != null) {
+ WGc(a, b, c);
+ return -1;
+ } else if (e.a != null) {
+ WGc(a, c, b);
+ return 1;
+ }
+ return 0;
+ }
+ function swd(a, b) {
+ var c, d, e, f;
+ if (a.ej()) {
+ c = a.Vi();
+ f = a.fj();
+ ++a.j;
+ a.Hi(c, a.oi(c, b));
+ d = a.Zi(3, null, b, c, f);
+ if (a.bj()) {
+ e = a.cj(b, null);
+ if (!e) {
+ a.$i(d);
+ } else {
+ e.Ei(d);
+ e.Fi();
+ }
+ } else {
+ a.$i(d);
+ }
+ } else {
+ Bvd(a, b);
+ if (a.bj()) {
+ e = a.cj(b, null);
+ !!e && e.Fi();
+ }
+ }
+ }
+ function D2d(a, b) {
+ var c, d, e, f, g;
+ g = S6d(a.e.Tg(), b);
+ e = new yud();
+ c = BD(a.g, 119);
+ for (f = a.i; --f >= 0; ) {
+ d = c[f];
+ g.rl(d.ak()) && wtd(e, d);
+ }
+ !Yxd(a, e) && oid(a.e) && GLd(a, b.$j() ? H2d(a, 6, b, (mmb(), jmb), null, -1, false) : H2d(a, b.Kj() ? 2 : 1, b, null, null, -1, false));
+ }
+ function Dhb() {
+ Dhb = ccb;
+ var a, b;
+ Bhb = KC(cJ, nie, 91, 32, 0, 1);
+ Chb = KC(cJ, nie, 91, 32, 0, 1);
+ a = 1;
+ for (b = 0; b <= 18; b++) {
+ Bhb[b] = ghb(a);
+ Chb[b] = ghb(Nbb(a, b));
+ a = Ibb(a, 5);
+ }
+ for (; b < Chb.length; b++) {
+ Bhb[b] = Ogb(Bhb[b - 1], Bhb[1]);
+ Chb[b] = Ogb(Chb[b - 1], (Hgb(), Egb));
+ }
+ }
+ function K4b(a, b) {
+ var c, d, e, f, g;
+ if (a.a == (yrc(), wrc)) {
+ return true;
+ }
+ f = b.a.c;
+ c = b.a.c + b.a.b;
+ if (b.j) {
+ d = b.A;
+ g = d.c.c.a - d.o.a / 2;
+ e = f - (d.n.a + d.o.a);
+ if (e > g) {
+ return false;
+ }
+ }
+ if (b.q) {
+ d = b.C;
+ g = d.c.c.a - d.o.a / 2;
+ e = d.n.a - c;
+ if (e > g) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function wcc(a, b) {
+ var c;
+ Odd(b, "Partition preprocessing", 1);
+ c = BD(GAb(JAb(LAb(JAb(new YAb(null, new Kub(a.a, 16)), new Acc()), new Ccc()), new Ecc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
+ MAb(c.Oc(), new Gcc());
+ Qdd(b);
+ }
+ function DMc(a) {
+ wMc();
+ var b, c, d, e, f, g, h;
+ c = new $rb();
+ for (e = new olb(a.e.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ for (g = new olb(d.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ h = a.g[f.p];
+ b = BD(Wrb(c, h), 15);
+ if (!b) {
+ b = new Rkb();
+ Xrb(c, h, b);
+ }
+ b.Fc(f);
+ }
+ }
+ return c;
+ }
+ function dRc(a, b) {
+ var c, d, e, f, g;
+ e = b.b.b;
+ a.a = KC(yK, eme, 15, e, 0, 1);
+ a.b = KC(sbb, dle, 25, e, 16, 1);
+ for (g = Jsb(b.b, 0); g.b != g.d.c; ) {
+ f = BD(Xsb(g), 86);
+ a.a[f.g] = new Psb();
+ }
+ for (d = Jsb(b.a, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 188);
+ a.a[c.b.g].Fc(c);
+ a.a[c.c.g].Fc(c);
+ }
+ }
+ function qmd(a) {
+ var b;
+ if ((a.Db & 64) != 0)
+ return Eid(a);
+ b = new Jfb(Eid(a));
+ b.a += " (startX: ";
+ Bfb(b, a.j);
+ b.a += ", startY: ";
+ Bfb(b, a.k);
+ b.a += ", endX: ";
+ Bfb(b, a.b);
+ b.a += ", endY: ";
+ Bfb(b, a.c);
+ b.a += ", identifier: ";
+ Efb(b, a.d);
+ b.a += ")";
+ return b.a;
+ }
+ function EId(a) {
+ var b;
+ if ((a.Db & 64) != 0)
+ return qnd(a);
+ b = new Jfb(qnd(a));
+ b.a += " (ordered: ";
+ Ffb(b, (a.Bb & 256) != 0);
+ b.a += ", unique: ";
+ Ffb(b, (a.Bb & 512) != 0);
+ b.a += ", lowerBound: ";
+ Cfb(b, a.s);
+ b.a += ", upperBound: ";
+ Cfb(b, a.t);
+ b.a += ")";
+ return b.a;
+ }
+ function Wnd(a, b, c, d, e, f, g, h) {
+ var i;
+ JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4);
+ pnd(a, c);
+ a.f = d;
+ dJd(a, e);
+ fJd(a, f);
+ ZId(a, g);
+ eJd(a, false);
+ CId(a, true);
+ aJd(a, h);
+ BId(a, true);
+ AId(a, 0);
+ a.b = 0;
+ DId(a, 1);
+ i = xId(a, b, null);
+ !!i && i.Fi();
+ MJd(a, false);
+ return a;
+ }
+ function fyb(a, b) {
+ var c, d, e, f;
+ c = BD(Phb(a.a, b), 512);
+ if (!c) {
+ d = new wyb(b);
+ e = (oyb(), lyb) ? null : d.c;
+ f = qfb(e, 0, $wnd.Math.max(0, kfb(e, wfb(46))));
+ vyb(d, fyb(a, f));
+ (lyb ? null : d.c).length == 0 && qyb(d, new zyb());
+ Shb(a.a, lyb ? null : d.c, d);
+ return d;
+ }
+ return c;
+ }
+ function BOb(a, b) {
+ var c;
+ a.b = b;
+ a.g = new Rkb();
+ c = COb(a.b);
+ a.e = c;
+ a.f = c;
+ a.c = Ccb(DD(vNb(a.b, (fFb(), $Eb))));
+ a.a = ED(vNb(a.b, (Y9c(), r8c)));
+ a.a == null && (a.a = 1);
+ Edb(a.a) > 1 ? a.e *= Edb(a.a) : a.f /= Edb(a.a);
+ DOb(a);
+ EOb(a);
+ AOb(a);
+ yNb(a.b, (CPb(), uPb), a.g);
+ }
+ function Y5b(a, b, c) {
+ var d, e, f, g, h, i;
+ d = 0;
+ i = c;
+ if (!b) {
+ d = c * (a.c.length - 1);
+ i *= -1;
+ }
+ for (f = new olb(a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ yNb(e, (Nyc(), mwc), (F7c(), B7c));
+ e.o.a = d;
+ for (h = Y_b(e, (Ucd(), zcd)).Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 11);
+ g.n.a = d;
+ }
+ d += i;
+ }
+ }
+ function Qxd(a, b, c) {
+ var d, e, f;
+ if (a.ej()) {
+ f = a.fj();
+ kud(a, b, c);
+ d = a.Zi(3, null, c, b, f);
+ if (a.bj()) {
+ e = a.cj(c, null);
+ a.ij() && (e = a.jj(c, e));
+ if (!e) {
+ a.$i(d);
+ } else {
+ e.Ei(d);
+ e.Fi();
+ }
+ } else {
+ a.$i(d);
+ }
+ } else {
+ kud(a, b, c);
+ if (a.bj()) {
+ e = a.cj(c, null);
+ !!e && e.Fi();
+ }
+ }
+ }
+ function ILd(a, b, c) {
+ var d, e, f, g, h, i;
+ h = a.Gk(c);
+ if (h != c) {
+ g = a.g[b];
+ i = h;
+ mud(a, b, a.oi(b, i));
+ f = g;
+ a.gi(b, i, f);
+ if (a.rk()) {
+ d = c;
+ e = a.dj(d, null);
+ !BD(h, 49).eh() && (e = a.cj(i, e));
+ !!e && e.Fi();
+ }
+ oid(a.e) && GLd(a, a.Zi(9, c, h, b, false));
+ return h;
+ } else {
+ return c;
+ }
+ }
+ function pVb(a, b) {
+ var c, d, e, f;
+ for (d = new olb(a.a.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 189);
+ c.g = true;
+ }
+ for (f = new olb(a.a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 81);
+ e.k = Ccb(DD(a.e.Kb(new vgd(e, b))));
+ e.d.g = e.d.g & Ccb(DD(a.e.Kb(new vgd(e, b))));
+ }
+ return a;
+ }
+ function pkc(a) {
+ var b, c, d, e, f;
+ c = (b = BD(gdb(F1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
+ f = BD(vNb(a, (wtc(), gtc)), 10);
+ if (f) {
+ for (e = new olb(f.j); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 11);
+ PD(vNb(d, $sc)) === PD(a) && a1b(new b1b(d.b)) && rqb(c, d.j);
+ }
+ }
+ return c;
+ }
+ function zCc(a, b, c) {
+ var d, e, f, g, h;
+ if (a.d[c.p]) {
+ return;
+ }
+ for (e = new Sr(ur(U_b(c).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 17);
+ h = d.d.i;
+ for (g = new Sr(ur(R_b(h).a.Kc(), new Sq())); Qr(g); ) {
+ f = BD(Rr(g), 17);
+ f.c.i == b && (a.a[f.p] = true);
+ }
+ zCc(a, b, h);
+ }
+ a.d[c.p] = true;
+ }
+ function Bjd(a, b) {
+ var c, d, e, f, g, h, i;
+ d = aeb(a.Db & 254);
+ if (d == 1) {
+ a.Eb = null;
+ } else {
+ f = CD(a.Eb);
+ if (d == 2) {
+ e = zjd(a, b);
+ a.Eb = f[e == 0 ? 1 : 0];
+ } else {
+ g = KC(SI, Uhe, 1, d - 1, 5, 1);
+ for (c = 2, h = 0, i = 0; c <= 128; c <<= 1) {
+ c == b ? ++h : (a.Db & c) != 0 && (g[i++] = f[h++]);
+ }
+ a.Eb = g;
+ }
+ }
+ a.Db &= ~b;
+ }
+ function n1d(a, b) {
+ var c, d, e, f, g;
+ d = (!b.s && (b.s = new cUd(t5, b, 21, 17)), b.s);
+ f = null;
+ for (e = 0, g = d.i; e < g; ++e) {
+ c = BD(qud(d, e), 170);
+ switch ($1d(q1d(a, c))) {
+ case 4:
+ case 5:
+ case 6: {
+ !f && (f = new Rkb());
+ f.c[f.c.length] = c;
+ break;
+ }
+ }
+ }
+ return !f ? (mmb(), mmb(), jmb) : f;
+ }
+ function Uee(a) {
+ var b;
+ b = 0;
+ switch (a) {
+ case 105:
+ b = 2;
+ break;
+ case 109:
+ b = 8;
+ break;
+ case 115:
+ b = 4;
+ break;
+ case 120:
+ b = 16;
+ break;
+ case 117:
+ b = 32;
+ break;
+ case 119:
+ b = 64;
+ break;
+ case 70:
+ b = 256;
+ break;
+ case 72:
+ b = 128;
+ break;
+ case 88:
+ b = 512;
+ break;
+ case 44:
+ b = zte;
+ }
+ return b;
+ }
+ function Ghb(a, b, c, d, e) {
+ var f, g, h, i;
+ if (PD(a) === PD(b) && d == e) {
+ Lhb(a, d, c);
+ return;
+ }
+ for (h = 0; h < d; h++) {
+ g = 0;
+ f = a[h];
+ for (i = 0; i < e; i++) {
+ g = wbb(wbb(Ibb(xbb(f, Yje), xbb(b[i], Yje)), xbb(c[h + i], Yje)), xbb(Tbb(g), Yje));
+ c[h + i] = Tbb(g);
+ g = Pbb(g, 32);
+ }
+ c[h + e] = Tbb(g);
+ }
+ }
+ function COb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l;
+ k = 0;
+ j = 0;
+ e = a.a;
+ h = e.a.gc();
+ for (d = e.a.ec().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 561);
+ b = (c.b && LOb(c), c.a);
+ l = b.a;
+ g = b.b;
+ k += l + g;
+ j += l * g;
+ }
+ i = $wnd.Math.sqrt(400 * h * j - 4 * j + k * k) + k;
+ f = 2 * (100 * h - 1);
+ if (f == 0) {
+ return i;
+ }
+ return i / f;
+ }
+ function mOc(a, b) {
+ if (b.b != 0) {
+ isNaN(a.s) ? a.s = Edb((sCb(b.b != 0), ED(b.a.a.c))) : a.s = $wnd.Math.min(a.s, Edb((sCb(b.b != 0), ED(b.a.a.c))));
+ isNaN(a.c) ? a.c = Edb((sCb(b.b != 0), ED(b.c.b.c))) : a.c = $wnd.Math.max(a.c, Edb((sCb(b.b != 0), ED(b.c.b.c))));
+ }
+ }
+ function Pld(a) {
+ var b, c, d, e;
+ b = null;
+ for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)]))); Qr(d); ) {
+ c = BD(Rr(d), 82);
+ e = atd(c);
+ if (!b) {
+ b = Xod(e);
+ } else if (b != Xod(e)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function Rxd(a, b) {
+ var c, d, e, f;
+ if (a.ej()) {
+ c = a.i;
+ f = a.fj();
+ lud(a, b);
+ d = a.Zi(3, null, b, c, f);
+ if (a.bj()) {
+ e = a.cj(b, null);
+ a.ij() && (e = a.jj(b, e));
+ if (!e) {
+ a.$i(d);
+ } else {
+ e.Ei(d);
+ e.Fi();
+ }
+ } else {
+ a.$i(d);
+ }
+ } else {
+ lud(a, b);
+ if (a.bj()) {
+ e = a.cj(b, null);
+ !!e && e.Fi();
+ }
+ }
+ }
+ function rwd(a, b, c) {
+ var d, e, f;
+ if (a.ej()) {
+ f = a.fj();
+ ++a.j;
+ a.Hi(b, a.oi(b, c));
+ d = a.Zi(3, null, c, b, f);
+ if (a.bj()) {
+ e = a.cj(c, null);
+ if (!e) {
+ a.$i(d);
+ } else {
+ e.Ei(d);
+ e.Fi();
+ }
+ } else {
+ a.$i(d);
+ }
+ } else {
+ ++a.j;
+ a.Hi(b, a.oi(b, c));
+ if (a.bj()) {
+ e = a.cj(c, null);
+ !!e && e.Fi();
+ }
+ }
+ }
+ function Wee(a) {
+ var b, c, d, e;
+ e = a.length;
+ b = null;
+ for (d = 0; d < e; d++) {
+ c = (BCb(d, a.length), a.charCodeAt(d));
+ if (hfb(".*+?{[()|\\^$", wfb(c)) >= 0) {
+ if (!b) {
+ b = new Ifb();
+ d > 0 && Efb(b, a.substr(0, d));
+ }
+ b.a += "\\";
+ Afb(b, c & aje);
+ } else
+ !!b && Afb(b, c & aje);
+ }
+ return b ? b.a : a;
+ }
+ function l5c(a) {
+ var b;
+ if (!a.a) {
+ throw vbb(new Zdb("IDataType class expected for layout option " + a.f));
+ }
+ b = gvd(a.a);
+ if (b == null) {
+ throw vbb(new Zdb("Couldn't create new instance of property '" + a.f + "'. " + ise + (fdb(Y3), Y3.k) + jse));
+ }
+ return BD(b, 414);
+ }
+ function aid(a) {
+ var b, c, d, e, f;
+ f = a.eh();
+ if (f) {
+ if (f.kh()) {
+ e = xid(a, f);
+ if (e != f) {
+ c = a.Vg();
+ d = (b = a.Vg(), b >= 0 ? a.Qg(null) : a.eh().ih(a, -1 - b, null, null));
+ a.Rg(BD(e, 49), c);
+ !!d && d.Fi();
+ a.Lg() && a.Mg() && c > -1 && Uhd(a, new nSd(a, 9, c, f, e));
+ return e;
+ }
+ }
+ }
+ return f;
+ }
+ function nTb(a) {
+ var b, c, d, e, f, g, h, i;
+ g = 0;
+ f = a.f.e;
+ for (d = 0; d < f.c.length; ++d) {
+ h = (tCb(d, f.c.length), BD(f.c[d], 144));
+ for (e = d + 1; e < f.c.length; ++e) {
+ i = (tCb(e, f.c.length), BD(f.c[e], 144));
+ c = S6c(h.d, i.d);
+ b = c - a.a[h.b][i.b];
+ g += a.i[h.b][i.b] * b * b;
+ }
+ }
+ return g;
+ }
+ function _ac(a, b) {
+ var c;
+ if (wNb(b, (Nyc(), mxc))) {
+ return;
+ }
+ c = hbc(BD(vNb(b, Uac), 360), BD(vNb(a, mxc), 163));
+ yNb(b, Uac, c);
+ if (Qr(new Sr(ur(O_b(b).a.Kc(), new Sq())))) {
+ return;
+ }
+ switch (c.g) {
+ case 1:
+ yNb(b, mxc, (Ctc(), xtc));
+ break;
+ case 2:
+ yNb(b, mxc, (Ctc(), ztc));
+ }
+ }
+ function wkc(a, b) {
+ var c;
+ mkc(a);
+ a.a = (c = new Ji(), MAb(new YAb(null, new Kub(b.d, 16)), new Vkc(c)), c);
+ rkc(a, BD(vNb(b.b, (Nyc(), Wwc)), 376));
+ tkc(a);
+ skc(a);
+ qkc(a);
+ ukc(a);
+ vkc(a, b);
+ MAb(LAb(new YAb(null, $i(Yi(a.b).a)), new Lkc()), new Nkc());
+ b.a = false;
+ a.a = null;
+ }
+ function Bod() {
+ fod.call(this, yte, (Fhd(), Ehd));
+ this.p = null;
+ this.a = null;
+ this.f = null;
+ this.n = null;
+ this.g = null;
+ this.c = null;
+ this.i = null;
+ this.j = null;
+ this.d = null;
+ this.b = null;
+ this.e = null;
+ this.k = null;
+ this.o = null;
+ this.s = null;
+ this.q = false;
+ this.r = false;
+ }
+ function Csd() {
+ Csd = ccb;
+ Bsd = new Dsd(Wne, 0);
+ ysd = new Dsd("INSIDE_SELF_LOOPS", 1);
+ zsd = new Dsd("MULTI_EDGES", 2);
+ xsd = new Dsd("EDGE_LABELS", 3);
+ Asd = new Dsd("PORTS", 4);
+ vsd = new Dsd("COMPOUND", 5);
+ usd = new Dsd("CLUSTERS", 6);
+ wsd = new Dsd("DISCONNECTED", 7);
+ }
+ function Sgb(a, b) {
+ var c, d, e;
+ if (b == 0) {
+ return (a.a[0] & 1) != 0;
+ }
+ if (b < 0) {
+ throw vbb(new ocb("Negative bit address"));
+ }
+ e = b >> 5;
+ if (e >= a.d) {
+ return a.e < 0;
+ }
+ c = a.a[e];
+ b = 1 << (b & 31);
+ if (a.e < 0) {
+ d = Mgb(a);
+ if (e < d) {
+ return false;
+ } else
+ d == e ? c = -c : c = ~c;
+ }
+ return (c & b) != 0;
+ }
+ function O1c(a, b, c, d) {
+ var e;
+ BD(c.b, 65);
+ BD(c.b, 65);
+ BD(d.b, 65);
+ BD(d.b, 65);
+ e = c7c(R6c(BD(c.b, 65).c), BD(d.b, 65).c);
+ $6c(e, YNb(BD(c.b, 65), BD(d.b, 65), e));
+ BD(d.b, 65);
+ BD(d.b, 65);
+ BD(d.b, 65).c.a + e.a;
+ BD(d.b, 65).c.b + e.b;
+ BD(d.b, 65);
+ Hkb(d.a, new T1c(a, b, d));
+ }
+ function vNd(a, b) {
+ var c, d, e, f, g, h, i;
+ f = b.e;
+ if (f) {
+ c = aid(f);
+ d = BD(a.g, 674);
+ for (g = 0; g < a.i; ++g) {
+ i = d[g];
+ if (JQd(i) == c) {
+ e = (!i.d && (i.d = new xMd(j5, i, 1)), i.d);
+ h = BD(c.ah(Nid(f, f.Cb, f.Db >> 16)), 15).Xc(f);
+ if (h < e.i) {
+ return vNd(a, BD(qud(e, h), 87));
+ }
+ }
+ }
+ }
+ return b;
+ }
+ function bcb(a, b, c) {
+ var d = _bb, h;
+ var e = d[a];
+ var f = e instanceof Array ? e[0] : null;
+ if (e && !f) {
+ _ = e;
+ } else {
+ _ = (h = b && b.prototype, !h && (h = _bb[b]), ecb(h));
+ _.hm = c;
+ !b && (_.im = gcb);
+ d[a] = _;
+ }
+ for (var g = 3; g < arguments.length; ++g) {
+ arguments[g].prototype = _;
+ }
+ f && (_.gm = f);
+ }
+ function Qr(a) {
+ var b;
+ while (!BD(Qb(a.a), 47).Ob()) {
+ a.d = Pr(a);
+ if (!a.d) {
+ return false;
+ }
+ a.a = BD(a.d.Pb(), 47);
+ if (JD(a.a, 39)) {
+ b = BD(a.a, 39);
+ a.a = b.a;
+ !a.b && (a.b = new jkb());
+ Wjb(a.b, a.d);
+ if (b.b) {
+ while (!akb(b.b)) {
+ Wjb(a.b, BD(gkb(b.b), 47));
+ }
+ }
+ a.d = b.d;
+ }
+ }
+ return true;
+ }
+ function krb(a, b) {
+ var c, d, e, f, g;
+ f = b == null ? 0 : a.b.se(b);
+ d = (c = a.a.get(f), c == null ? new Array() : c);
+ for (g = 0; g < d.length; g++) {
+ e = d[g];
+ if (a.b.re(b, e.cd())) {
+ if (d.length == 1) {
+ d.length = 0;
+ trb(a.a, f);
+ } else {
+ d.splice(g, 1);
+ }
+ --a.c;
+ zpb(a.b);
+ return e.dd();
+ }
+ }
+ return null;
+ }
+ function GGb(a, b) {
+ var c, d, e, f;
+ e = 1;
+ b.j = true;
+ f = null;
+ for (d = new olb(LFb(b)); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 213);
+ if (!a.c[c.c]) {
+ a.c[c.c] = true;
+ f = xFb(c, b);
+ if (c.f) {
+ e += GGb(a, f);
+ } else if (!f.j && c.a == c.e.e - c.d.e) {
+ c.f = true;
+ Qqb(a.p, c);
+ e += GGb(a, f);
+ }
+ }
+ }
+ return e;
+ }
+ function MVb(a) {
+ var b, c, d;
+ for (c = new olb(a.a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 81);
+ d = (uCb(0), 0);
+ if (d > 0) {
+ !(fad(a.a.c) && b.n.d) && !(gad(a.a.c) && b.n.b) && (b.g.d += $wnd.Math.max(0, d / 2 - 0.5));
+ !(fad(a.a.c) && b.n.a) && !(gad(a.a.c) && b.n.c) && (b.g.a -= d - 1);
+ }
+ }
+ }
+ function N3b(a) {
+ var b, c, d, e, f;
+ e = new Rkb();
+ f = O3b(a, e);
+ b = BD(vNb(a, (wtc(), gtc)), 10);
+ if (b) {
+ for (d = new olb(b.j); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 11);
+ PD(vNb(c, $sc)) === PD(a) && (f = $wnd.Math.max(f, O3b(c, e)));
+ }
+ }
+ e.c.length == 0 || yNb(a, Ysc, f);
+ return f != -1 ? e : null;
+ }
+ function a9b(a, b, c) {
+ var d, e, f, g, h, i;
+ f = BD(Ikb(b.e, 0), 17).c;
+ d = f.i;
+ e = d.k;
+ i = BD(Ikb(c.g, 0), 17).d;
+ g = i.i;
+ h = g.k;
+ e == (j0b(), g0b) ? yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11)) : yNb(a, (wtc(), Vsc), f);
+ h == g0b ? yNb(a, (wtc(), Wsc), BD(vNb(g, Wsc), 11)) : yNb(a, (wtc(), Wsc), i);
+ }
+ function Rs(a, b) {
+ var c, d, e, f;
+ f = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)));
+ c = f & a.b.length - 1;
+ e = null;
+ for (d = a.b[c]; d; e = d, d = d.a) {
+ if (d.d == f && Hb(d.i, b)) {
+ !e ? a.b[c] = d.a : e.a = d.a;
+ Bs(d.c, d.f);
+ As(d.b, d.e);
+ --a.f;
+ ++a.e;
+ return true;
+ }
+ }
+ return false;
+ }
+ function lD(a, b) {
+ var c, d, e, f, g;
+ b &= 63;
+ c = a.h;
+ d = (c & Gje) != 0;
+ d && (c |= -1048576);
+ if (b < 22) {
+ g = c >> b;
+ f = a.m >> b | c << 22 - b;
+ e = a.l >> b | a.m << 22 - b;
+ } else if (b < 44) {
+ g = d ? Fje : 0;
+ f = c >> b - 22;
+ e = a.m >> b - 22 | c << 44 - b;
+ } else {
+ g = d ? Fje : 0;
+ f = d ? Eje : 0;
+ e = c >> b - 44;
+ }
+ return TC(e & Eje, f & Eje, g & Fje);
+ }
+ function XOb(a) {
+ var b, c, d, e, f, g;
+ this.c = new Rkb();
+ this.d = a;
+ d = Pje;
+ e = Pje;
+ b = Qje;
+ c = Qje;
+ for (g = Jsb(a, 0); g.b != g.d.c; ) {
+ f = BD(Xsb(g), 8);
+ d = $wnd.Math.min(d, f.a);
+ e = $wnd.Math.min(e, f.b);
+ b = $wnd.Math.max(b, f.a);
+ c = $wnd.Math.max(c, f.b);
+ }
+ this.a = new J6c(d, e, b - d, c - e);
+ }
+ function Dac(a, b) {
+ var c, d, e, f, g, h;
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ for (h = new olb(e.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ g.k == (j0b(), f0b) && zac(g, b);
+ for (d = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ yac(c, b);
+ }
+ }
+ }
+ }
+ function Xoc(a) {
+ var b, c, d;
+ this.c = a;
+ d = BD(vNb(a, (Nyc(), Lwc)), 103);
+ b = Edb(ED(vNb(a, owc)));
+ c = Edb(ED(vNb(a, Dyc)));
+ d == (ead(), aad) || d == bad || d == cad ? this.b = b * c : this.b = 1 / (b * c);
+ this.j = Edb(ED(vNb(a, wyc)));
+ this.e = Edb(ED(vNb(a, vyc)));
+ this.f = a.b.c.length;
+ }
+ function ADc(a) {
+ var b, c;
+ a.e = KC(WD, oje, 25, a.p.c.length, 15, 1);
+ a.k = KC(WD, oje, 25, a.p.c.length, 15, 1);
+ for (c = new olb(a.p); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 10);
+ a.e[b.p] = sr(new Sr(ur(R_b(b).a.Kc(), new Sq())));
+ a.k[b.p] = sr(new Sr(ur(U_b(b).a.Kc(), new Sq())));
+ }
+ }
+ function DDc(a) {
+ var b, c, d, e, f, g;
+ e = 0;
+ a.q = new Rkb();
+ b = new Tqb();
+ for (g = new olb(a.p); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ f.p = e;
+ for (d = new Sr(ur(U_b(f).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ Qqb(b, c.d.i);
+ }
+ b.a.Bc(f) != null;
+ Ekb(a.q, new Vqb(b));
+ b.a.$b();
+ ++e;
+ }
+ }
+ function JTc() {
+ JTc = ccb;
+ CTc = new q0b(20);
+ BTc = new Osd((Y9c(), f9c), CTc);
+ HTc = new Osd(T9c, 20);
+ uTc = new Osd(r8c, tme);
+ ETc = new Osd(D9c, meb(1));
+ GTc = new Osd(H9c, (Bcb(), true));
+ vTc = y8c;
+ xTc = Y8c;
+ yTc = _8c;
+ zTc = b9c;
+ wTc = W8c;
+ ATc = e9c;
+ DTc = x9c;
+ ITc = (rTc(), pTc);
+ FTc = nTc;
+ }
+ function RBd(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ if (a.a.f > 0 && JD(b, 42)) {
+ a.a.qj();
+ j = BD(b, 42);
+ i = j.cd();
+ f = i == null ? 0 : tb(i);
+ g = DAd(a.a, f);
+ c = a.a.d[g];
+ if (c) {
+ d = BD(c.g, 367);
+ k = c.i;
+ for (h = 0; h < k; ++h) {
+ e = d[h];
+ if (e.Sh() == f && e.Fb(j)) {
+ RBd(a, j);
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+ function skc(a) {
+ var b, c, d, e;
+ for (e = BD(Qc(a.a, (Xjc(), Ujc)), 15).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 101);
+ c = (b = Ec(d.k), b.Hc((Ucd(), Acd)) ? b.Hc(zcd) ? b.Hc(Rcd) ? b.Hc(Tcd) ? null : dkc : fkc : ekc : ckc);
+ kkc(a, d, c[0], (Fkc(), Ckc), 0);
+ kkc(a, d, c[1], Dkc, 1);
+ kkc(a, d, c[2], Ekc, 1);
+ }
+ }
+ function enc(a, b) {
+ var c, d;
+ c = fnc(b);
+ inc(a, b, c);
+ uPc(a.a, BD(vNb(Q_b(b.b), (wtc(), jtc)), 230));
+ dnc(a);
+ cnc(a, b);
+ d = KC(WD, oje, 25, b.b.j.c.length, 15, 1);
+ lnc(a, b, (Ucd(), Acd), d, c);
+ lnc(a, b, zcd, d, c);
+ lnc(a, b, Rcd, d, c);
+ lnc(a, b, Tcd, d, c);
+ a.a = null;
+ a.c = null;
+ a.b = null;
+ }
+ function OYc() {
+ OYc = ccb;
+ LYc = (zYc(), yYc);
+ KYc = new Nsd(Bre, LYc);
+ IYc = new Nsd(Cre, (Bcb(), true));
+ meb(-1);
+ FYc = new Nsd(Dre, meb(-1));
+ meb(-1);
+ GYc = new Nsd(Ere, meb(-1));
+ JYc = new Nsd(Fre, false);
+ MYc = new Nsd(Gre, true);
+ HYc = new Nsd(Hre, false);
+ NYc = new Nsd(Ire, -1);
+ }
+ function yld(a, b, c) {
+ switch (b) {
+ case 7:
+ !a.e && (a.e = new y5d(B2, a, 7, 4));
+ Uxd(a.e);
+ !a.e && (a.e = new y5d(B2, a, 7, 4));
+ ytd(a.e, BD(c, 14));
+ return;
+ case 8:
+ !a.d && (a.d = new y5d(B2, a, 8, 5));
+ Uxd(a.d);
+ !a.d && (a.d = new y5d(B2, a, 8, 5));
+ ytd(a.d, BD(c, 14));
+ return;
+ }
+ Zkd(a, b, c);
+ }
+ function At(a, b) {
+ var c, d, e, f, g;
+ if (PD(b) === PD(a)) {
+ return true;
+ }
+ if (!JD(b, 15)) {
+ return false;
+ }
+ g = BD(b, 15);
+ if (a.gc() != g.gc()) {
+ return false;
+ }
+ f = g.Kc();
+ for (d = a.Kc(); d.Ob(); ) {
+ c = d.Pb();
+ e = f.Pb();
+ if (!(PD(c) === PD(e) || c != null && pb(c, e))) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function U6b(a, b) {
+ var c, d, e, f;
+ f = BD(GAb(LAb(LAb(new YAb(null, new Kub(b.b, 16)), new $6b()), new a7b()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
+ f.Jc(new c7b());
+ c = 0;
+ for (e = f.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 11);
+ d.p == -1 && T6b(a, d, c++);
+ }
+ }
+ function Wzc(a) {
+ switch (a.g) {
+ case 0:
+ return new KLc();
+ case 1:
+ return new dJc();
+ case 2:
+ return new tJc();
+ case 3:
+ return new CMc();
+ case 4:
+ return new $Jc();
+ default:
+ throw vbb(new Wdb("No implementation is available for the node placer " + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function nqc(a) {
+ switch (a.g) {
+ case 0:
+ return new aCc();
+ case 1:
+ return new VBc();
+ case 2:
+ return new kCc();
+ case 3:
+ return new rCc();
+ case 4:
+ return new eCc();
+ default:
+ throw vbb(new Wdb("No implementation is available for the cycle breaker " + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function HWc() {
+ HWc = ccb;
+ BWc = new Nsd(lre, meb(0));
+ CWc = new Nsd(mre, 0);
+ yWc = (pWc(), mWc);
+ xWc = new Nsd(nre, yWc);
+ meb(0);
+ wWc = new Nsd(ore, meb(1));
+ EWc = (sXc(), qXc);
+ DWc = new Nsd(pre, EWc);
+ GWc = (fWc(), eWc);
+ FWc = new Nsd(qre, GWc);
+ AWc = (iXc(), hXc);
+ zWc = new Nsd(rre, AWc);
+ }
+ function XXb(a, b, c) {
+ var d;
+ d = null;
+ !!b && (d = b.d);
+ hYb(a, new cWb(b.n.a - d.b + c.a, b.n.b - d.d + c.b));
+ hYb(a, new cWb(b.n.a - d.b + c.a, b.n.b + b.o.b + d.a + c.b));
+ hYb(a, new cWb(b.n.a + b.o.a + d.c + c.a, b.n.b - d.d + c.b));
+ hYb(a, new cWb(b.n.a + b.o.a + d.c + c.a, b.n.b + b.o.b + d.a + c.b));
+ }
+ function T6b(a, b, c) {
+ var d, e, f;
+ b.p = c;
+ for (f = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(b), new R0b(b)]))); Qr(f); ) {
+ d = BD(Rr(f), 11);
+ d.p == -1 && T6b(a, d, c);
+ }
+ if (b.i.k == (j0b(), g0b)) {
+ for (e = new olb(b.i.j); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 11);
+ d != b && d.p == -1 && T6b(a, d, c);
+ }
+ }
+ }
+ function rPc(a) {
+ var b, c, d, e, f;
+ e = BD(GAb(IAb(UAb(a)), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
+ d = dme;
+ if (e.gc() >= 2) {
+ c = e.Kc();
+ b = ED(c.Pb());
+ while (c.Ob()) {
+ f = b;
+ b = ED(c.Pb());
+ d = $wnd.Math.min(d, (uCb(b), b) - (uCb(f), f));
+ }
+ }
+ return d;
+ }
+ function gUc(a, b) {
+ var c, d, e, f, g;
+ d = new Psb();
+ Gsb(d, b, d.c.b, d.c);
+ do {
+ c = (sCb(d.b != 0), BD(Nsb(d, d.a.a), 86));
+ a.b[c.g] = 1;
+ for (f = Jsb(c.d, 0); f.b != f.d.c; ) {
+ e = BD(Xsb(f), 188);
+ g = e.c;
+ a.b[g.g] == 1 ? Dsb(a.a, e) : a.b[g.g] == 2 ? a.b[g.g] = 1 : Gsb(d, g, d.c.b, d.c);
+ }
+ } while (d.b != 0);
+ }
+ function Ju(a, b) {
+ var c, d, e;
+ if (PD(b) === PD(Qb(a))) {
+ return true;
+ }
+ if (!JD(b, 15)) {
+ return false;
+ }
+ d = BD(b, 15);
+ e = a.gc();
+ if (e != d.gc()) {
+ return false;
+ }
+ if (JD(d, 54)) {
+ for (c = 0; c < e; c++) {
+ if (!Hb(a.Xb(c), d.Xb(c))) {
+ return false;
+ }
+ }
+ return true;
+ } else {
+ return kr(a.Kc(), d.Kc());
+ }
+ }
+ function Aac(a, b) {
+ var c, d;
+ if (a.c.length != 0) {
+ if (a.c.length == 2) {
+ zac((tCb(0, a.c.length), BD(a.c[0], 10)), (rbd(), nbd));
+ zac((tCb(1, a.c.length), BD(a.c[1], 10)), obd);
+ } else {
+ for (d = new olb(a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 10);
+ zac(c, b);
+ }
+ }
+ a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ }
+ function uKc(a) {
+ var b, c;
+ if (a.c.length != 2) {
+ throw vbb(new Zdb("Order only allowed for two paths."));
+ }
+ b = (tCb(0, a.c.length), BD(a.c[0], 17));
+ c = (tCb(1, a.c.length), BD(a.c[1], 17));
+ if (b.d.i != c.c.i) {
+ a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.c[a.c.length] = c;
+ a.c[a.c.length] = b;
+ }
+ }
+ function EMc(a, b) {
+ var c, d, e, f, g, h;
+ d = new $rb();
+ g = Gx(new amb(a.g));
+ for (f = g.a.ec().Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 10);
+ if (!e) {
+ Sdd(b, "There are no classes in a balanced layout.");
+ break;
+ }
+ h = a.j[e.p];
+ c = BD(Wrb(d, h), 15);
+ if (!c) {
+ c = new Rkb();
+ Xrb(d, h, c);
+ }
+ c.Fc(e);
+ }
+ return d;
+ }
+ function Dqd(a, b, c) {
+ var d, e, f, g, h, i, j;
+ if (c) {
+ f = c.a.length;
+ d = new Yge(f);
+ for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
+ g = BD(h.Pb(), 19);
+ i = Zpd(c, g.a);
+ if (i) {
+ j = ftd(_pd(i, Ite), b);
+ Rhb(a.f, j, i);
+ e = Vte in i.a;
+ e && Lkd(j, _pd(i, Vte));
+ grd(i, j);
+ hrd(i, j);
+ }
+ }
+ }
+ }
+ function ndc(a, b) {
+ var c, d, e, f, g;
+ Odd(b, "Port side processing", 1);
+ for (g = new olb(a.a); g.a < g.c.c.length; ) {
+ e = BD(mlb(g), 10);
+ odc(e);
+ }
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 29);
+ for (f = new olb(c.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ odc(e);
+ }
+ }
+ Qdd(b);
+ }
+ function bfc(a, b, c) {
+ var d, e, f, g, h;
+ e = a.f;
+ !e && (e = BD(a.a.a.ec().Kc().Pb(), 57));
+ cfc(e, b, c);
+ if (a.a.a.gc() == 1) {
+ return;
+ }
+ d = b * c;
+ for (g = a.a.a.ec().Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 57);
+ if (f != e) {
+ h = ugc(f);
+ if (h.f.d) {
+ f.d.d += d + ple;
+ f.d.a -= d + ple;
+ } else
+ h.f.a && (f.d.a -= d + ple);
+ }
+ }
+ }
+ function tQb(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n;
+ g = c - a;
+ h = d - b;
+ f = $wnd.Math.atan2(g, h);
+ i = f + cme;
+ j = f - cme;
+ k = e * $wnd.Math.sin(i) + a;
+ m = e * $wnd.Math.cos(i) + b;
+ l = e * $wnd.Math.sin(j) + a;
+ n = e * $wnd.Math.cos(j) + b;
+ return Ou(OC(GC(m1, 1), nie, 8, 0, [new f7c(k, m), new f7c(l, n)]));
+ }
+ function OLc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l;
+ e = c;
+ k = b;
+ f = k;
+ do {
+ f = a.a[f.p];
+ h = (l = a.g[f.p], Edb(a.p[l.p]) + Edb(a.d[f.p]) - f.d.d);
+ i = RLc(f, d);
+ if (i) {
+ g = (j = a.g[i.p], Edb(a.p[j.p]) + Edb(a.d[i.p]) + i.o.b + i.d.a);
+ e = $wnd.Math.min(e, h - (g + jBc(a.k, f, i)));
+ }
+ } while (k != f);
+ return e;
+ }
+ function PLc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l;
+ e = c;
+ k = b;
+ f = k;
+ do {
+ f = a.a[f.p];
+ g = (l = a.g[f.p], Edb(a.p[l.p]) + Edb(a.d[f.p]) + f.o.b + f.d.a);
+ i = QLc(f, d);
+ if (i) {
+ h = (j = a.g[i.p], Edb(a.p[j.p]) + Edb(a.d[i.p]) - i.d.d);
+ e = $wnd.Math.min(e, h - (g + jBc(a.k, f, i)));
+ }
+ } while (k != f);
+ return e;
+ }
+ function hkd(a, b) {
+ var c, d;
+ d = (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), AAd(a.o, b));
+ if (d != null) {
+ return d;
+ }
+ c = b.wg();
+ JD(c, 4) && (c == null ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), LAd(a.o, b)) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), HAd(a.o, b, c)), a);
+ return c;
+ }
+ function Hbd() {
+ Hbd = ccb;
+ zbd = new Ibd("H_LEFT", 0);
+ ybd = new Ibd("H_CENTER", 1);
+ Bbd = new Ibd("H_RIGHT", 2);
+ Gbd = new Ibd("V_TOP", 3);
+ Fbd = new Ibd("V_CENTER", 4);
+ Ebd = new Ibd("V_BOTTOM", 5);
+ Cbd = new Ibd("INSIDE", 6);
+ Dbd = new Ibd("OUTSIDE", 7);
+ Abd = new Ibd("H_PRIORITY", 8);
+ }
+ function o6d(a) {
+ var b, c, d, e, f, g, h;
+ b = a.Hh(_ve);
+ if (b) {
+ h = GD(AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "settingDelegates"));
+ if (h != null) {
+ c = new Rkb();
+ for (e = mfb(h, "\\w+"), f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ c.c[c.c.length] = d;
+ }
+ return c;
+ }
+ }
+ return mmb(), mmb(), jmb;
+ }
+ function sGb(a, b) {
+ var c, d, e, f, g, h, i;
+ if (!b.f) {
+ throw vbb(new Wdb("The input edge is not a tree edge."));
+ }
+ f = null;
+ e = Ohe;
+ for (d = new olb(a.d); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 213);
+ h = c.d;
+ i = c.e;
+ if (xGb(a, h, b) && !xGb(a, i, b)) {
+ g = i.e - h.e - c.a;
+ if (g < e) {
+ e = g;
+ f = c;
+ }
+ }
+ }
+ return f;
+ }
+ function qTb(a) {
+ var b, c, d, e, f, g;
+ if (a.f.e.c.length <= 1) {
+ return;
+ }
+ b = 0;
+ e = nTb(a);
+ c = Pje;
+ do {
+ b > 0 && (e = c);
+ for (g = new olb(a.f.e); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 144);
+ if (Ccb(DD(vNb(f, (bTb(), USb))))) {
+ continue;
+ }
+ d = mTb(a, f);
+ P6c(X6c(f.d), d);
+ }
+ c = nTb(a);
+ } while (!pTb(a, b++, e, c));
+ }
+ function $ac(a, b) {
+ var c, d, e;
+ Odd(b, "Layer constraint preprocessing", 1);
+ c = new Rkb();
+ e = new Bib(a.a, 0);
+ while (e.b < e.d.gc()) {
+ d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 10));
+ if (Zac(d)) {
+ Xac(d);
+ c.c[c.c.length] = d;
+ uib(e);
+ }
+ }
+ c.c.length == 0 || yNb(a, (wtc(), Lsc), c);
+ Qdd(b);
+ }
+ function sjc(a, b) {
+ var c, d, e, f, g;
+ f = a.g.a;
+ g = a.g.b;
+ for (d = new olb(a.d); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 70);
+ e = c.n;
+ a.a == (Ajc(), xjc) || a.i == (Ucd(), zcd) ? e.a = f : a.a == yjc || a.i == (Ucd(), Tcd) ? e.a = f + a.j.a - c.o.a : e.a = f + (a.j.a - c.o.a) / 2;
+ e.b = g;
+ P6c(e, b);
+ g += c.o.b + a.e;
+ }
+ }
+ function LSc(a, b, c) {
+ var d, e, f, g;
+ Odd(c, "Processor set coordinates", 1);
+ a.a = b.b.b == 0 ? 1 : b.b.b;
+ f = null;
+ d = Jsb(b.b, 0);
+ while (!f && d.b != d.d.c) {
+ g = BD(Xsb(d), 86);
+ if (Ccb(DD(vNb(g, (mTc(), jTc))))) {
+ f = g;
+ e = g.e;
+ e.a = BD(vNb(g, kTc), 19).a;
+ e.b = 0;
+ }
+ }
+ MSc(a, URc(f), Udd(c, 1));
+ Qdd(c);
+ }
+ function xSc(a, b, c) {
+ var d, e, f;
+ Odd(c, "Processor determine the height for each level", 1);
+ a.a = b.b.b == 0 ? 1 : b.b.b;
+ e = null;
+ d = Jsb(b.b, 0);
+ while (!e && d.b != d.d.c) {
+ f = BD(Xsb(d), 86);
+ Ccb(DD(vNb(f, (mTc(), jTc)))) && (e = f);
+ }
+ !!e && ySc(a, Ou(OC(GC(q$, 1), fme, 86, 0, [e])), c);
+ Qdd(c);
+ }
+ function brd(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ j = a;
+ i = $pd(j, "individualSpacings");
+ if (i) {
+ d = ikd(b, (Y9c(), O9c));
+ g = !d;
+ if (g) {
+ e = new _fd();
+ jkd(b, O9c, e);
+ }
+ h = BD(hkd(b, O9c), 373);
+ l = i;
+ f = null;
+ !!l && (f = (k = $B(l, KC(ZI, nie, 2, 0, 6, 1)), new mC(l, k)));
+ if (f) {
+ c = new Frd(l, h);
+ reb(f, c);
+ }
+ }
+ }
+ function frd(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ i = null;
+ l = a;
+ k = null;
+ if (cue in l.a || due in l.a || Ote in l.a) {
+ j = null;
+ m = etd(b);
+ g = $pd(l, cue);
+ c = new Ird(m);
+ Eqd(c.a, g);
+ h = $pd(l, due);
+ d = new asd(m);
+ Pqd(d.a, h);
+ f = Ypd(l, Ote);
+ e = new dsd(m);
+ j = (Qqd(e.a, f), f);
+ k = j;
+ }
+ i = k;
+ return i;
+ }
+ function $w(a, b) {
+ var c, d, e;
+ if (b === a) {
+ return true;
+ }
+ if (JD(b, 543)) {
+ e = BD(b, 835);
+ if (a.a.d != e.a.d || Ah(a).gc() != Ah(e).gc()) {
+ return false;
+ }
+ for (d = Ah(e).Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 416);
+ if (Aw(a, c.a.cd()) != BD(c.a.dd(), 14).gc()) {
+ return false;
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+ function BMb(a) {
+ var b, c, d, e;
+ d = BD(a.a, 19).a;
+ e = BD(a.b, 19).a;
+ b = d;
+ c = e;
+ if (d == 0 && e == 0) {
+ c -= 1;
+ } else {
+ if (d == -1 && e <= 0) {
+ b = 0;
+ c -= 2;
+ } else {
+ if (d <= 0 && e > 0) {
+ b -= 1;
+ c -= 1;
+ } else {
+ if (d >= 0 && e < 0) {
+ b += 1;
+ c += 1;
+ } else {
+ if (d > 0 && e >= 0) {
+ b -= 1;
+ c += 1;
+ } else {
+ b += 1;
+ c -= 1;
+ }
+ }
+ }
+ }
+ }
+ return new vgd(meb(b), meb(c));
+ }
+ function PIc(a, b) {
+ if (a.c < b.c) {
+ return -1;
+ } else if (a.c > b.c) {
+ return 1;
+ } else if (a.b < b.b) {
+ return -1;
+ } else if (a.b > b.b) {
+ return 1;
+ } else if (a.a != b.a) {
+ return tb(a.a) - tb(b.a);
+ } else if (a.d == (UIc(), TIc) && b.d == SIc) {
+ return -1;
+ } else if (a.d == SIc && b.d == TIc) {
+ return 1;
+ }
+ return 0;
+ }
+ function aNc(a, b) {
+ var c, d, e, f, g;
+ f = b.a;
+ f.c.i == b.b ? g = f.d : g = f.c;
+ f.c.i == b.b ? d = f.c : d = f.d;
+ e = NLc(a.a, g, d);
+ if (e > 0 && e < dme) {
+ c = OLc(a.a, d.i, e, a.c);
+ TLc(a.a, d.i, -c);
+ return c > 0;
+ } else if (e < 0 && -e < dme) {
+ c = PLc(a.a, d.i, -e, a.c);
+ TLc(a.a, d.i, c);
+ return c > 0;
+ }
+ return false;
+ }
+ function RZc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l;
+ e = (b - a.d) / a.c.c.length;
+ f = 0;
+ a.a += c;
+ a.d = b;
+ for (l = new olb(a.c); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 33);
+ j = k.g;
+ i = k.f;
+ dld(k, k.i + f * e);
+ eld(k, k.j + d * c);
+ cld(k, k.g + e);
+ ald(k, a.a);
+ ++f;
+ h = k.g;
+ g = k.f;
+ Ffd(k, new f7c(h, g), new f7c(j, i));
+ }
+ }
+ function Xmd(a) {
+ var b, c, d, e, f, g, h;
+ if (a == null) {
+ return null;
+ }
+ h = a.length;
+ e = (h + 1) / 2 | 0;
+ g = KC(SD, wte, 25, e, 15, 1);
+ h % 2 != 0 && (g[--e] = jnd((BCb(h - 1, a.length), a.charCodeAt(h - 1))));
+ for (c = 0, d = 0; c < e; ++c) {
+ b = jnd(bfb(a, d++));
+ f = jnd(bfb(a, d++));
+ g[c] = (b << 4 | f) << 24 >> 24;
+ }
+ return g;
+ }
+ function vdb(a) {
+ if (a.pe()) {
+ var b = a.c;
+ b.qe() ? a.o = "[" + b.n : !b.pe() ? a.o = "[L" + b.ne() + ";" : a.o = "[" + b.ne();
+ a.b = b.me() + "[]";
+ a.k = b.oe() + "[]";
+ return;
+ }
+ var c = a.j;
+ var d = a.d;
+ d = d.split("/");
+ a.o = ydb(".", [c, ydb("$", d)]);
+ a.b = ydb(".", [c, ydb(".", d)]);
+ a.k = d[d.length - 1];
+ }
+ function qGb(a, b) {
+ var c, d, e, f, g;
+ g = null;
+ for (f = new olb(a.e.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 121);
+ if (e.b.a.c.length == e.g.a.c.length) {
+ d = e.e;
+ g = BGb(e);
+ for (c = e.e - BD(g.a, 19).a + 1; c < e.e + BD(g.b, 19).a; c++) {
+ b[c] < b[d] && (d = c);
+ }
+ if (b[d] < b[e.e]) {
+ --b[e.e];
+ ++b[d];
+ e.e = d;
+ }
+ }
+ }
+ }
+ function SLc(a) {
+ var b, c, d, e, f, g, h, i;
+ e = Pje;
+ d = Qje;
+ for (c = new olb(a.e.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 29);
+ for (g = new olb(b.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ i = Edb(a.p[f.p]);
+ h = i + Edb(a.b[a.g[f.p].p]);
+ e = $wnd.Math.min(e, i);
+ d = $wnd.Math.max(d, h);
+ }
+ }
+ return d - e;
+ }
+ function r1d(a, b, c, d) {
+ var e, f, g, h, j;
+ e = f1d(a, b);
+ for (h = 0, j = e.gc(); h < j; ++h) {
+ f = BD(e.Xb(h), 170);
+ if (dfb(d, a2d(q1d(a, f)))) {
+ g = b2d(q1d(a, f));
+ if (c == null) {
+ if (g == null) {
+ return f;
+ }
+ } else if (dfb(c, g)) {
+ return f;
+ } else
+ ;
+ }
+ }
+ return null;
+ }
+ function s1d(a, b, c, d) {
+ var e, f, g, h, j;
+ e = g1d(a, b);
+ for (h = 0, j = e.gc(); h < j; ++h) {
+ f = BD(e.Xb(h), 170);
+ if (dfb(d, a2d(q1d(a, f)))) {
+ g = b2d(q1d(a, f));
+ if (c == null) {
+ if (g == null) {
+ return f;
+ }
+ } else if (dfb(c, g)) {
+ return f;
+ } else
+ ;
+ }
+ }
+ return null;
+ }
+ function p3d(a, b, c) {
+ var d, e, f, g, h, i;
+ g = new yud();
+ h = S6d(a.e.Tg(), b);
+ d = BD(a.g, 119);
+ Q6d();
+ if (BD(b, 66).Oj()) {
+ for (f = 0; f < a.i; ++f) {
+ e = d[f];
+ h.rl(e.ak()) && wtd(g, e);
+ }
+ } else {
+ for (f = 0; f < a.i; ++f) {
+ e = d[f];
+ if (h.rl(e.ak())) {
+ i = e.dd();
+ wtd(g, c ? b3d(a, b, f, g.i, i) : i);
+ }
+ }
+ }
+ return wud(g);
+ }
+ function T9b(a, b) {
+ var c, d, e, f, g;
+ c = new Rpb(EW);
+ for (e = (Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc])), f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ Opb(c, d, new Rkb());
+ }
+ MAb(NAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new hac()), new jac()), new lac(b)), new nac(c));
+ return c;
+ }
+ function AVc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ for (f = b.Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 33);
+ k = e.i + e.g / 2;
+ m = e.j + e.f / 2;
+ i = a.f;
+ g = i.i + i.g / 2;
+ h = i.j + i.f / 2;
+ j = k - g;
+ l = m - h;
+ d = $wnd.Math.sqrt(j * j + l * l);
+ j *= a.e / d;
+ l *= a.e / d;
+ if (c) {
+ k -= j;
+ m -= l;
+ } else {
+ k += j;
+ m += l;
+ }
+ dld(e, k - e.g / 2);
+ eld(e, m - e.f / 2);
+ }
+ }
+ function Yfe(a) {
+ var b, c, d;
+ if (a.c)
+ return;
+ if (a.b == null)
+ return;
+ for (b = a.b.length - 4; b >= 0; b -= 2) {
+ for (c = 0; c <= b; c += 2) {
+ if (a.b[c] > a.b[c + 2] || a.b[c] === a.b[c + 2] && a.b[c + 1] > a.b[c + 3]) {
+ d = a.b[c + 2];
+ a.b[c + 2] = a.b[c];
+ a.b[c] = d;
+ d = a.b[c + 3];
+ a.b[c + 3] = a.b[c + 1];
+ a.b[c + 1] = d;
+ }
+ }
+ }
+ a.c = true;
+ }
+ function UUb(a, b) {
+ var c, d, e, f, g, h, i, j;
+ g = b == 1 ? KUb : JUb;
+ for (f = g.a.ec().Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 103);
+ for (i = BD(Qc(a.f.c, e), 21).Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 46);
+ d = BD(h.b, 81);
+ j = BD(h.a, 189);
+ c = j.c;
+ switch (e.g) {
+ case 2:
+ case 1:
+ d.g.d += c;
+ break;
+ case 4:
+ case 3:
+ d.g.c += c;
+ }
+ }
+ }
+ }
+ function PFc(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ j = -1;
+ k = 0;
+ for (g = a, h = 0, i = g.length; h < i; ++h) {
+ f = g[h];
+ c = new Dnc(j == -1 ? a[0] : a[j], b, (xzc(), wzc));
+ for (d = 0; d < f.length; d++) {
+ for (e = d + 1; e < f.length; e++) {
+ wNb(f[d], (wtc(), Zsc)) && wNb(f[e], Zsc) && ync(c, f[d], f[e]) > 0 && ++k;
+ }
+ }
+ ++j;
+ }
+ return k;
+ }
+ function Eid(a) {
+ var b, c;
+ c = new Wfb(hdb(a.gm));
+ c.a += "@";
+ Qfb(c, (b = tb(a) >>> 0, b.toString(16)));
+ if (a.kh()) {
+ c.a += " (eProxyURI: ";
+ Pfb(c, a.qh());
+ if (a.$g()) {
+ c.a += " eClass: ";
+ Pfb(c, a.$g());
+ }
+ c.a += ")";
+ } else if (a.$g()) {
+ c.a += " (eClass: ";
+ Pfb(c, a.$g());
+ c.a += ")";
+ }
+ return c.a;
+ }
+ function TDb(a) {
+ var b, c, d, e;
+ if (a.e) {
+ throw vbb(new Zdb((fdb(TM), Jke + TM.k + Kke)));
+ }
+ a.d == (ead(), cad) && SDb(a, aad);
+ for (c = new olb(a.a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 307);
+ b.g = b.i;
+ }
+ for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 57);
+ d.i = Qje;
+ }
+ a.b.Le(a);
+ return a;
+ }
+ function TPc(a, b) {
+ var c, d, e, f, g;
+ if (b < 2 * a.b) {
+ throw vbb(new Wdb("The knot vector must have at least two time the dimension elements."));
+ }
+ a.f = 1;
+ for (e = 0; e < a.b; e++) {
+ Ekb(a.e, 0);
+ }
+ g = b + 1 - 2 * a.b;
+ c = g;
+ for (f = 1; f < g; f++) {
+ Ekb(a.e, f / c);
+ }
+ if (a.d) {
+ for (d = 0; d < a.b; d++) {
+ Ekb(a.e, 1);
+ }
+ }
+ }
+ function ard(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ j = b;
+ k = BD(_o(qo(a.i), j), 33);
+ if (!k) {
+ e = _pd(j, Vte);
+ h = "Unable to find elk node for json object '" + e;
+ i = h + "' Panic!";
+ throw vbb(new cqd(i));
+ }
+ f = Ypd(j, "edges");
+ c = new krd(a, k);
+ mqd(c.a, c.b, f);
+ g = Ypd(j, Jte);
+ d = new vrd(a);
+ xqd(d.a, g);
+ }
+ function xAd(a, b, c, d) {
+ var e, f, g, h, i;
+ if (d != null) {
+ e = a.d[b];
+ if (e) {
+ f = e.g;
+ i = e.i;
+ for (h = 0; h < i; ++h) {
+ g = BD(f[h], 133);
+ if (g.Sh() == c && pb(d, g.cd())) {
+ return h;
+ }
+ }
+ }
+ } else {
+ e = a.d[b];
+ if (e) {
+ f = e.g;
+ i = e.i;
+ for (h = 0; h < i; ++h) {
+ g = BD(f[h], 133);
+ if (PD(g.cd()) === PD(d)) {
+ return h;
+ }
+ }
+ }
+ }
+ return -1;
+ }
+ function nUd(a, b) {
+ var c, d, e;
+ c = b == null ? Wd(irb(a.f, null)) : Crb(a.g, b);
+ if (JD(c, 235)) {
+ e = BD(c, 235);
+ e.Qh() == null && void 0;
+ return e;
+ } else if (JD(c, 498)) {
+ d = BD(c, 1938);
+ e = d.a;
+ !!e && (e.yb == null ? void 0 : b == null ? jrb(a.f, null, e) : Drb(a.g, b, e));
+ return e;
+ } else {
+ return null;
+ }
+ }
+ function ide(a) {
+ hde();
+ var b, c, d, e, f, g, h;
+ if (a == null)
+ return null;
+ e = a.length;
+ if (e % 2 != 0)
+ return null;
+ b = rfb(a);
+ f = e / 2 | 0;
+ c = KC(SD, wte, 25, f, 15, 1);
+ for (d = 0; d < f; d++) {
+ g = fde[b[d * 2]];
+ if (g == -1)
+ return null;
+ h = fde[b[d * 2 + 1]];
+ if (h == -1)
+ return null;
+ c[d] = (g << 4 | h) << 24 >> 24;
+ }
+ return c;
+ }
+ function lKb(a, b, c) {
+ var d, e, f;
+ e = BD(Mpb(a.i, b), 306);
+ if (!e) {
+ e = new bIb(a.d, b, c);
+ Npb(a.i, b, e);
+ if (sJb(b)) {
+ CHb(a.a, b.c, b.b, e);
+ } else {
+ f = rJb(b);
+ d = BD(Mpb(a.p, f), 244);
+ switch (f.g) {
+ case 1:
+ case 3:
+ e.j = true;
+ lIb(d, b.b, e);
+ break;
+ case 4:
+ case 2:
+ e.k = true;
+ lIb(d, b.c, e);
+ }
+ }
+ }
+ return e;
+ }
+ function r3d(a, b, c, d) {
+ var e, f, g, h, i, j;
+ h = new yud();
+ i = S6d(a.e.Tg(), b);
+ e = BD(a.g, 119);
+ Q6d();
+ if (BD(b, 66).Oj()) {
+ for (g = 0; g < a.i; ++g) {
+ f = e[g];
+ i.rl(f.ak()) && wtd(h, f);
+ }
+ } else {
+ for (g = 0; g < a.i; ++g) {
+ f = e[g];
+ if (i.rl(f.ak())) {
+ j = f.dd();
+ wtd(h, d ? b3d(a, b, g, h.i, j) : j);
+ }
+ }
+ }
+ return xud(h, c);
+ }
+ function YCc(a, b) {
+ var c, d, e, f, g, h, i, j;
+ e = a.b[b.p];
+ if (e >= 0) {
+ return e;
+ } else {
+ f = 1;
+ for (h = new olb(b.j); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 11);
+ for (d = new olb(g.g); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 17);
+ j = c.d.i;
+ if (b != j) {
+ i = YCc(a, j);
+ f = $wnd.Math.max(f, i + 1);
+ }
+ }
+ }
+ XCc(a, b, f);
+ return f;
+ }
+ }
+ function YGc(a, b, c) {
+ var d, e, f;
+ for (d = 1; d < a.c.length; d++) {
+ f = (tCb(d, a.c.length), BD(a.c[d], 10));
+ e = d;
+ while (e > 0 && b.ue((tCb(e - 1, a.c.length), BD(a.c[e - 1], 10)), f) > 0) {
+ Nkb(a, e, (tCb(e - 1, a.c.length), BD(a.c[e - 1], 10)));
+ --e;
+ }
+ tCb(e, a.c.length);
+ a.c[e] = f;
+ }
+ c.a = new Lqb();
+ c.b = new Lqb();
+ }
+ function n5c(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ k = (d = BD(b.e && b.e(), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0));
+ i = mfb(c, "[\\[\\]\\s,]+");
+ for (f = i, g = 0, h = f.length; g < h; ++g) {
+ e = f[g];
+ if (ufb(e).length == 0) {
+ continue;
+ }
+ j = m5c(a, e);
+ if (j == null) {
+ return null;
+ } else {
+ rqb(k, BD(j, 22));
+ }
+ }
+ return k;
+ }
+ function KVb(a) {
+ var b, c, d;
+ for (c = new olb(a.a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 81);
+ d = (uCb(0), 0);
+ if (d > 0) {
+ !(fad(a.a.c) && b.n.d) && !(gad(a.a.c) && b.n.b) && (b.g.d -= $wnd.Math.max(0, d / 2 - 0.5));
+ !(fad(a.a.c) && b.n.a) && !(gad(a.a.c) && b.n.c) && (b.g.a += $wnd.Math.max(0, d - 1));
+ }
+ }
+ }
+ function Hac(a, b, c) {
+ var d, e;
+ if ((a.c - a.b & a.a.length - 1) == 2) {
+ if (b == (Ucd(), Acd) || b == zcd) {
+ xac(BD(bkb(a), 15), (rbd(), nbd));
+ xac(BD(bkb(a), 15), obd);
+ } else {
+ xac(BD(bkb(a), 15), (rbd(), obd));
+ xac(BD(bkb(a), 15), nbd);
+ }
+ } else {
+ for (e = new xkb(a); e.a != e.b; ) {
+ d = BD(vkb(e), 15);
+ xac(d, c);
+ }
+ }
+ }
+ function htd(a, b) {
+ var c, d, e, f, g, h, i;
+ e = Nu(new qtd(a));
+ h = new Bib(e, e.c.length);
+ f = Nu(new qtd(b));
+ i = new Bib(f, f.c.length);
+ g = null;
+ while (h.b > 0 && i.b > 0) {
+ c = (sCb(h.b > 0), BD(h.a.Xb(h.c = --h.b), 33));
+ d = (sCb(i.b > 0), BD(i.a.Xb(i.c = --i.b), 33));
+ if (c == d) {
+ g = c;
+ } else {
+ break;
+ }
+ }
+ return g;
+ }
+ function Cub(a, b) {
+ var c, d, e, f, g, h;
+ f = a.a * kke + a.b * 1502;
+ h = a.b * kke + 11;
+ c = $wnd.Math.floor(h * lke);
+ f += c;
+ h -= c * mke;
+ f %= mke;
+ a.a = f;
+ a.b = h;
+ if (b <= 24) {
+ return $wnd.Math.floor(a.a * wub[b]);
+ } else {
+ e = a.a * (1 << b - 24);
+ g = $wnd.Math.floor(a.b * xub[b]);
+ d = e + g;
+ d >= 2147483648 && (d -= Zje);
+ return d;
+ }
+ }
+ function Zic(a, b, c) {
+ var d, e, f, g;
+ if (bjc(a, b) > bjc(a, c)) {
+ d = V_b(c, (Ucd(), zcd));
+ a.d = d.dc() ? 0 : B0b(BD(d.Xb(0), 11));
+ g = V_b(b, Tcd);
+ a.b = g.dc() ? 0 : B0b(BD(g.Xb(0), 11));
+ } else {
+ e = V_b(c, (Ucd(), Tcd));
+ a.d = e.dc() ? 0 : B0b(BD(e.Xb(0), 11));
+ f = V_b(b, zcd);
+ a.b = f.dc() ? 0 : B0b(BD(f.Xb(0), 11));
+ }
+ }
+ function l6d(a) {
+ var b, c, d, e, f, g, h;
+ if (a) {
+ b = a.Hh(_ve);
+ if (b) {
+ g = GD(AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "conversionDelegates"));
+ if (g != null) {
+ h = new Rkb();
+ for (d = mfb(g, "\\w+"), e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ h.c[h.c.length] = c;
+ }
+ return h;
+ }
+ }
+ }
+ return mmb(), mmb(), jmb;
+ }
+ function FKb(a, b) {
+ var c, d, e, f;
+ c = a.o.a;
+ for (f = BD(BD(Qc(a.r, b), 21), 84).Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 111);
+ e.e.a = c * Edb(ED(e.b.We(BKb)));
+ e.e.b = (d = e.b, d.Xe((Y9c(), s9c)) ? d.Hf() == (Ucd(), Acd) ? -d.rf().b - Edb(ED(d.We(s9c))) : Edb(ED(d.We(s9c))) : d.Hf() == (Ucd(), Acd) ? -d.rf().b : 0);
+ }
+ }
+ function Woc(a) {
+ var b, c, d, e, f, g, h, i;
+ b = true;
+ e = null;
+ f = null;
+ j:
+ for (i = new olb(a.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ for (d = new Sr(ur(R_b(h).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ if (!!e && e != h) {
+ b = false;
+ break j;
+ }
+ e = h;
+ g = c.c.i;
+ if (!!f && f != g) {
+ b = false;
+ break j;
+ }
+ f = g;
+ }
+ }
+ return b;
+ }
+ function OOc(a, b, c) {
+ var d, e, f, g, h, i;
+ f = -1;
+ h = -1;
+ for (g = 0; g < b.c.length; g++) {
+ e = (tCb(g, b.c.length), BD(b.c[g], 329));
+ if (e.c > a.c) {
+ break;
+ } else if (e.a >= a.s) {
+ f < 0 && (f = g);
+ h = g;
+ }
+ }
+ i = (a.s + a.c) / 2;
+ if (f >= 0) {
+ d = NOc(a, b, f, h);
+ i = $Oc((tCb(d, b.c.length), BD(b.c[d], 329)));
+ YOc(b, d, c);
+ }
+ return i;
+ }
+ function lZc() {
+ lZc = ccb;
+ RYc = new Osd((Y9c(), r8c), 1.3);
+ VYc = I8c;
+ gZc = new q0b(15);
+ fZc = new Osd(f9c, gZc);
+ jZc = new Osd(T9c, 15);
+ SYc = w8c;
+ _Yc = Y8c;
+ aZc = _8c;
+ bZc = b9c;
+ $Yc = W8c;
+ cZc = e9c;
+ hZc = x9c;
+ eZc = (OYc(), KYc);
+ ZYc = IYc;
+ dZc = JYc;
+ iZc = MYc;
+ WYc = HYc;
+ XYc = O8c;
+ YYc = P8c;
+ UYc = GYc;
+ TYc = FYc;
+ kZc = NYc;
+ }
+ function Bnd(a, b, c) {
+ var d, e, f, g, h, i, j;
+ g = (f = new RHd(), f);
+ PHd(g, (uCb(b), b));
+ j = (!g.b && (g.b = new sId((jGd(), fGd), x6, g)), g.b);
+ for (i = 1; i < c.length; i += 2) {
+ HAd(j, c[i - 1], c[i]);
+ }
+ d = (!a.Ab && (a.Ab = new cUd(a5, a, 0, 3)), a.Ab);
+ for (h = 0; h < 0; ++h) {
+ e = LHd(BD(qud(d, d.i - 1), 590));
+ d = e;
+ }
+ wtd(d, g);
+ }
+ function MPb(a, b, c) {
+ var d, e, f;
+ sNb.call(this, new Rkb());
+ this.a = b;
+ this.b = c;
+ this.e = a;
+ d = (a.b && LOb(a), a.a);
+ this.d = KPb(d.a, this.a);
+ this.c = KPb(d.b, this.b);
+ kNb(this, this.d, this.c);
+ LPb(this);
+ for (f = this.e.e.a.ec().Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 266);
+ e.c.c.length > 0 && JPb(this, e);
+ }
+ }
+ function IQb(a, b, c, d, e, f) {
+ var g, h, i;
+ if (!e[b.b]) {
+ e[b.b] = true;
+ g = d;
+ !g && (g = new kRb());
+ Ekb(g.e, b);
+ for (i = f[b.b].Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 282);
+ if (h.d == c || h.c == c) {
+ continue;
+ }
+ h.c != b && IQb(a, h.c, b, g, e, f);
+ h.d != b && IQb(a, h.d, b, g, e, f);
+ Ekb(g.c, h);
+ Gkb(g.d, h.b);
+ }
+ return g;
+ }
+ return null;
+ }
+ function e4b(a) {
+ var b, c, d, e, f, g, h;
+ b = 0;
+ for (e = new olb(a.e); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ c = FAb(new YAb(null, new Kub(d.b, 16)), new w4b());
+ c && ++b;
+ }
+ for (g = new olb(a.g); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 17);
+ h = FAb(new YAb(null, new Kub(f.b, 16)), new y4b());
+ h && ++b;
+ }
+ return b >= 2;
+ }
+ function gec(a, b) {
+ var c, d, e, f;
+ Odd(b, "Self-Loop pre-processing", 1);
+ for (d = new olb(a.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 10);
+ if (Ljc(c)) {
+ e = (f = new Kjc(c), yNb(c, (wtc(), ntc), f), Hjc(f), f);
+ MAb(NAb(LAb(new YAb(null, new Kub(e.d, 16)), new jec()), new lec()), new nec());
+ eec(e);
+ }
+ }
+ Qdd(b);
+ }
+ function vnc(a, b, c, d, e) {
+ var f, g, h, i, j, k;
+ f = a.c.d.j;
+ g = BD(Ut(c, 0), 8);
+ for (k = 1; k < c.b; k++) {
+ j = BD(Ut(c, k), 8);
+ Gsb(d, g, d.c.b, d.c);
+ h = Y6c(P6c(new g7c(g), j), 0.5);
+ i = Y6c(new e7c(bRc(f)), e);
+ P6c(h, i);
+ Gsb(d, h, d.c.b, d.c);
+ g = j;
+ f = b == 0 ? Xcd(f) : Vcd(f);
+ }
+ Dsb(d, (sCb(c.b != 0), BD(c.c.b.c, 8)));
+ }
+ function Jbd(a) {
+ Hbd();
+ var b, c, d;
+ c = qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Dbd]));
+ if (Ox(Cx(c, a)) > 1) {
+ return false;
+ }
+ b = qqb(zbd, OC(GC(B1, 1), Kie, 93, 0, [ybd, Bbd]));
+ if (Ox(Cx(b, a)) > 1) {
+ return false;
+ }
+ d = qqb(Gbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Ebd]));
+ if (Ox(Cx(d, a)) > 1) {
+ return false;
+ }
+ return true;
+ }
+ function U0d(a, b) {
+ var c, d, e;
+ c = b.Hh(a.a);
+ if (c) {
+ e = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), "affiliation"));
+ if (e != null) {
+ d = kfb(e, wfb(35));
+ return d == -1 ? l1d(a, u1d(a, bKd(b.Hj())), e) : d == 0 ? l1d(a, null, e.substr(1)) : l1d(a, e.substr(0, d), e.substr(d + 1));
+ }
+ }
+ return null;
+ }
+ function ic(b) {
+ var c, d, e;
+ try {
+ return b == null ? Xhe : fcb(b);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 102)) {
+ c = a;
+ e = hdb(rb(b)) + "@" + (d = (Zfb(), kCb(b)) >>> 0, d.toString(16));
+ tyb(xyb(), ($xb(), "Exception during lenientFormat for " + e), c);
+ return "<" + e + " threw " + hdb(c.gm) + ">";
+ } else
+ throw vbb(a);
+ }
+ }
+ function mzc(a) {
+ switch (a.g) {
+ case 0:
+ return new xDc();
+ case 1:
+ return new ZCc();
+ case 2:
+ return new DCc();
+ case 3:
+ return new QCc();
+ case 4:
+ return new LDc();
+ case 5:
+ return new iDc();
+ default:
+ throw vbb(new Wdb("No implementation is available for the layerer " + (a.f != null ? a.f : "" + a.g)));
+ }
+ }
+ function AQc(a, b, c) {
+ var d, e, f;
+ for (f = new olb(a.t); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 268);
+ if (d.b.s < 0 && d.c > 0) {
+ d.b.n -= d.c;
+ d.b.n <= 0 && d.b.u > 0 && Dsb(b, d.b);
+ }
+ }
+ for (e = new olb(a.i); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 268);
+ if (d.a.s < 0 && d.c > 0) {
+ d.a.u -= d.c;
+ d.a.u <= 0 && d.a.n > 0 && Dsb(c, d.a);
+ }
+ }
+ }
+ function Vud(a) {
+ var b, c, d, e, f;
+ if (a.g == null) {
+ a.d = a.si(a.f);
+ wtd(a, a.d);
+ if (a.c) {
+ f = a.f;
+ return f;
+ }
+ }
+ b = BD(a.g[a.i - 1], 47);
+ e = b.Pb();
+ a.e = b;
+ c = a.si(e);
+ if (c.Ob()) {
+ a.d = c;
+ wtd(a, c);
+ } else {
+ a.d = null;
+ while (!b.Ob()) {
+ NC(a.g, --a.i, null);
+ if (a.i == 0) {
+ break;
+ }
+ d = BD(a.g[a.i - 1], 47);
+ b = d;
+ }
+ }
+ return e;
+ }
+ function r2d(a, b) {
+ var c, d, e, f, g, h;
+ d = b;
+ e = d.ak();
+ if (T6d(a.e, e)) {
+ if (e.hi() && E2d(a, e, d.dd())) {
+ return false;
+ }
+ } else {
+ h = S6d(a.e.Tg(), e);
+ c = BD(a.g, 119);
+ for (f = 0; f < a.i; ++f) {
+ g = c[f];
+ if (h.rl(g.ak())) {
+ if (pb(g, d)) {
+ return false;
+ } else {
+ BD(Gtd(a, f, b), 72);
+ return true;
+ }
+ }
+ }
+ }
+ return wtd(a, b);
+ }
+ function r9b(a, b, c, d) {
+ var e, f, g, h;
+ e = new b0b(a);
+ __b(e, (j0b(), f0b));
+ yNb(e, (wtc(), $sc), b);
+ yNb(e, ktc, d);
+ yNb(e, (Nyc(), Vxc), (dcd(), $bd));
+ yNb(e, Vsc, b.c);
+ yNb(e, Wsc, b.d);
+ zbc(b, e);
+ h = $wnd.Math.floor(c / 2);
+ for (g = new olb(e.j); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 11);
+ f.n.b = h;
+ }
+ return e;
+ }
+ function wac(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ i = Pu(a.c - a.b & a.a.length - 1);
+ j = null;
+ k = null;
+ for (f = new xkb(a); f.a != f.b; ) {
+ e = BD(vkb(f), 10);
+ c = (h = BD(vNb(e, (wtc(), Vsc)), 11), !h ? null : h.i);
+ d = (g = BD(vNb(e, Wsc), 11), !g ? null : g.i);
+ if (j != c || k != d) {
+ Aac(i, b);
+ j = c;
+ k = d;
+ }
+ i.c[i.c.length] = e;
+ }
+ Aac(i, b);
+ }
+ function HNc(a) {
+ var b, c, d, e, f, g, h;
+ b = 0;
+ for (d = new olb(a.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 10);
+ for (f = new Sr(ur(U_b(c).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ if (a == e.d.i.c && e.c.j == (Ucd(), Tcd)) {
+ g = A0b(e.c).b;
+ h = A0b(e.d).b;
+ b = $wnd.Math.max(b, $wnd.Math.abs(h - g));
+ }
+ }
+ }
+ return b;
+ }
+ function aWc(a, b, c) {
+ var d, e, f;
+ Odd(c, "Remove overlaps", 1);
+ c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd));
+ d = BD(hkd(b, (MUc(), LUc)), 33);
+ a.f = d;
+ a.a = tXc(BD(hkd(b, (ZWc(), WWc)), 293));
+ e = ED(hkd(b, (Y9c(), T9c)));
+ FVc(a, (uCb(e), e));
+ f = gVc(d);
+ _Vc(a, b, f, c);
+ c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd));
+ }
+ function aYb(a, b, c) {
+ switch (c.g) {
+ case 1:
+ return new f7c(b.a, $wnd.Math.min(a.d.b, b.b));
+ case 2:
+ return new f7c($wnd.Math.max(a.c.a, b.a), b.b);
+ case 3:
+ return new f7c(b.a, $wnd.Math.max(a.c.b, b.b));
+ case 4:
+ return new f7c($wnd.Math.min(b.a, a.d.a), b.b);
+ }
+ return new f7c(b.a, b.b);
+ }
+ function mFc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m;
+ l = d ? (Ucd(), Tcd) : (Ucd(), zcd);
+ e = false;
+ for (i = b[c], j = 0, k = i.length; j < k; ++j) {
+ h = i[j];
+ if (ecd(BD(vNb(h, (Nyc(), Vxc)), 98))) {
+ continue;
+ }
+ g = h.e;
+ m = !V_b(h, l).dc() && !!g;
+ if (m) {
+ f = WZb(g);
+ a.b = new sic(f, d ? 0 : f.length - 1);
+ }
+ e = e | nFc(a, h, l, m);
+ }
+ return e;
+ }
+ function $sd(a) {
+ var b, c, d;
+ b = Pu(1 + (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c).i);
+ Ekb(b, (!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d));
+ for (d = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 118);
+ Ekb(b, (!c.d && (c.d = new y5d(B2, c, 8, 5)), c.d));
+ }
+ return Qb(b), new sl(b);
+ }
+ function _sd(a) {
+ var b, c, d;
+ b = Pu(1 + (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c).i);
+ Ekb(b, (!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e));
+ for (d = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 118);
+ Ekb(b, (!c.e && (c.e = new y5d(B2, c, 7, 4)), c.e));
+ }
+ return Qb(b), new sl(b);
+ }
+ function M9d(a) {
+ var b, c, d, e;
+ if (a == null) {
+ return null;
+ } else {
+ d = Qge(a, true);
+ e = Nwe.length;
+ if (dfb(d.substr(d.length - e, e), Nwe)) {
+ c = d.length;
+ if (c == 4) {
+ b = (BCb(0, d.length), d.charCodeAt(0));
+ if (b == 43) {
+ return x9d;
+ } else if (b == 45) {
+ return w9d;
+ }
+ } else if (c == 3) {
+ return x9d;
+ }
+ }
+ return Hcb(d);
+ }
+ }
+ function aKc(a) {
+ var b, c, d, e;
+ b = 0;
+ c = 0;
+ for (e = new olb(a.j); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 11);
+ b = Tbb(wbb(b, HAb(JAb(new YAb(null, new Kub(d.e, 16)), new nLc()))));
+ c = Tbb(wbb(c, HAb(JAb(new YAb(null, new Kub(d.g, 16)), new pLc()))));
+ if (b > 1 || c > 1) {
+ return 2;
+ }
+ }
+ if (b + c == 1) {
+ return 2;
+ }
+ return 0;
+ }
+ function WQb(a, b, c) {
+ var d, e, f, g, h;
+ Odd(c, "ELK Force", 1);
+ Ccb(DD(hkd(b, (wSb(), jSb)))) || $Cb((d = new _Cb((Pgd(), new bhd(b))), d));
+ h = TQb(b);
+ XQb(h);
+ YQb(a, BD(vNb(h, fSb), 424));
+ g = LQb(a.a, h);
+ for (f = g.Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 231);
+ tRb(a.b, e, Udd(c, 1 / g.gc()));
+ }
+ h = KQb(g);
+ SQb(h);
+ Qdd(c);
+ }
+ function yoc(a, b) {
+ var c, d, e, f, g;
+ Odd(b, "Breaking Point Processor", 1);
+ xoc(a);
+ if (Ccb(DD(vNb(a, (Nyc(), Jyc))))) {
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ c = 0;
+ for (g = new olb(d.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ f.p = c++;
+ }
+ }
+ soc(a);
+ toc(a, true);
+ toc(a, false);
+ }
+ Qdd(b);
+ }
+ function $1c(a, b, c) {
+ var d, e, f, g, h, i;
+ h = a.c;
+ for (g = (!c.q ? (mmb(), mmb(), kmb) : c.q).vc().Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 42);
+ d = !WAb(JAb(new YAb(null, new Kub(h, 16)), new Xxb(new m2c(b, f)))).sd((EAb(), DAb));
+ if (d) {
+ i = f.dd();
+ if (JD(i, 4)) {
+ e = fvd(i);
+ e != null && (i = e);
+ }
+ b.Ye(BD(f.cd(), 146), i);
+ }
+ }
+ }
+ function MQd(a, b) {
+ var c, d, e, f, g;
+ if (!b) {
+ return null;
+ } else {
+ f = JD(a.Cb, 88) || JD(a.Cb, 99);
+ g = !f && JD(a.Cb, 322);
+ for (d = new Fyd((!b.a && (b.a = new KYd(b, j5, b)), b.a)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 87);
+ e = KQd(c);
+ if (f ? JD(e, 88) : g ? JD(e, 148) : !!e) {
+ return e;
+ }
+ }
+ return f ? (jGd(), _Fd) : (jGd(), YFd);
+ }
+ }
+ function g3b(a, b) {
+ var c, d, e, f, g, h;
+ Odd(b, "Constraints Postprocessor", 1);
+ g = 0;
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ h = 0;
+ for (d = new olb(e.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 10);
+ if (c.k == (j0b(), h0b)) {
+ yNb(c, (Nyc(), nxc), meb(g));
+ yNb(c, Gwc, meb(h));
+ ++h;
+ }
+ }
+ ++g;
+ }
+ Qdd(b);
+ }
+ function eRc(a, b, c, d) {
+ var e, f, g, h, i, j, k;
+ i = new f7c(c, d);
+ c7c(i, BD(vNb(b, (mTc(), WSc)), 8));
+ for (k = Jsb(b.b, 0); k.b != k.d.c; ) {
+ j = BD(Xsb(k), 86);
+ P6c(j.e, i);
+ Dsb(a.b, j);
+ }
+ for (h = Jsb(b.a, 0); h.b != h.d.c; ) {
+ g = BD(Xsb(h), 188);
+ for (f = Jsb(g.a, 0); f.b != f.d.c; ) {
+ e = BD(Xsb(f), 8);
+ P6c(e, i);
+ }
+ Dsb(a.a, g);
+ }
+ }
+ function uid(a, b, c) {
+ var d, e, f;
+ f = e1d((O6d(), M6d), a.Tg(), b);
+ if (f) {
+ Q6d();
+ if (!BD(f, 66).Oj()) {
+ f = _1d(q1d(M6d, f));
+ if (!f) {
+ throw vbb(new Wdb(ite + b.ne() + jte));
+ }
+ }
+ e = (d = a.Yg(f), BD(d >= 0 ? a._g(d, true, true) : sid(a, f, true), 153));
+ BD(e, 215).ml(b, c);
+ } else {
+ throw vbb(new Wdb(ite + b.ne() + jte));
+ }
+ }
+ function ROc(a, b) {
+ var c, d, e, f, g;
+ c = new Rkb();
+ e = LAb(new YAb(null, new Kub(a, 16)), new iPc());
+ f = LAb(new YAb(null, new Kub(a, 16)), new kPc());
+ g = aAb(_zb(OAb(ty(OC(GC(xM, 1), Uhe, 833, 0, [e, f])), new mPc())));
+ for (d = 1; d < g.length; d++) {
+ g[d] - g[d - 1] >= 2 * b && Ekb(c, new bPc(g[d - 1] + b, g[d] - b));
+ }
+ return c;
+ }
+ function AXc(a, b, c) {
+ Odd(c, "Eades radial", 1);
+ c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd));
+ a.d = BD(hkd(b, (MUc(), LUc)), 33);
+ a.c = Edb(ED(hkd(b, (ZWc(), VWc))));
+ a.e = tXc(BD(hkd(b, WWc), 293));
+ a.a = gWc(BD(hkd(b, YWc), 426));
+ a.b = jXc(BD(hkd(b, RWc), 340));
+ BXc(a);
+ c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd));
+ }
+ function Fqd(a, b, c) {
+ var d, e, f, g, h, j, k, l;
+ if (c) {
+ f = c.a.length;
+ d = new Yge(f);
+ for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
+ g = BD(h.Pb(), 19);
+ e = Zpd(c, g.a);
+ !!e && (j = Uqd(a, (k = (Fhd(), l = new ppd(), l), !!b && npd(k, b), k), e), Lkd(j, _pd(e, Vte)), grd(e, j), hrd(e, j), crd(a, e, j));
+ }
+ }
+ }
+ function UKd(a) {
+ var b, c, d, e, f, g;
+ if (!a.j) {
+ g = new HPd();
+ b = KKd;
+ f = b.a.zc(a, b);
+ if (f == null) {
+ for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 26);
+ e = UKd(c);
+ ytd(g, e);
+ wtd(g, c);
+ }
+ b.a.Bc(a) != null;
+ }
+ vud(g);
+ a.j = new nNd((BD(qud(ZKd((NFd(), MFd).o), 11), 18), g.i), g.g);
+ $Kd(a).b &= -33;
+ }
+ return a.j;
+ }
+ function O9d(a) {
+ var b, c, d, e;
+ if (a == null) {
+ return null;
+ } else {
+ d = Qge(a, true);
+ e = Nwe.length;
+ if (dfb(d.substr(d.length - e, e), Nwe)) {
+ c = d.length;
+ if (c == 4) {
+ b = (BCb(0, d.length), d.charCodeAt(0));
+ if (b == 43) {
+ return z9d;
+ } else if (b == 45) {
+ return y9d;
+ }
+ } else if (c == 3) {
+ return z9d;
+ }
+ }
+ return new Odb(d);
+ }
+ }
+ function _C(a) {
+ var b, c, d;
+ c = a.l;
+ if ((c & c - 1) != 0) {
+ return -1;
+ }
+ d = a.m;
+ if ((d & d - 1) != 0) {
+ return -1;
+ }
+ b = a.h;
+ if ((b & b - 1) != 0) {
+ return -1;
+ }
+ if (b == 0 && d == 0 && c == 0) {
+ return -1;
+ }
+ if (b == 0 && d == 0 && c != 0) {
+ return ieb(c);
+ }
+ if (b == 0 && d != 0 && c == 0) {
+ return ieb(d) + 22;
+ }
+ if (b != 0 && d == 0 && c == 0) {
+ return ieb(b) + 44;
+ }
+ return -1;
+ }
+ function qbc(a, b) {
+ var c, d, e, f, g;
+ Odd(b, "Edge joining", 1);
+ c = Ccb(DD(vNb(a, (Nyc(), Byc))));
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ g = new Bib(d.a, 0);
+ while (g.b < g.d.gc()) {
+ f = (sCb(g.b < g.d.gc()), BD(g.d.Xb(g.c = g.b++), 10));
+ if (f.k == (j0b(), g0b)) {
+ sbc(f, c);
+ uib(g);
+ }
+ }
+ }
+ Qdd(b);
+ }
+ function c_c(a, b, c) {
+ var d, e;
+ H2c(a.b);
+ K2c(a.b, (Y$c(), V$c), (R0c(), Q0c));
+ K2c(a.b, W$c, b.g);
+ K2c(a.b, X$c, b.a);
+ a.a = F2c(a.b, b);
+ Odd(c, "Compaction by shrinking a tree", a.a.c.length);
+ if (b.i.c.length > 1) {
+ for (e = new olb(a.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 51);
+ d.pf(b, Udd(c, 1));
+ }
+ }
+ Qdd(c);
+ }
+ function mo(a, b) {
+ var c, d, e, f, g;
+ e = b.a & a.f;
+ f = null;
+ for (d = a.b[e]; true; d = d.b) {
+ if (d == b) {
+ !f ? a.b[e] = b.b : f.b = b.b;
+ break;
+ }
+ f = d;
+ }
+ g = b.f & a.f;
+ f = null;
+ for (c = a.c[g]; true; c = c.d) {
+ if (c == b) {
+ !f ? a.c[g] = b.d : f.d = b.d;
+ break;
+ }
+ f = c;
+ }
+ !b.e ? a.a = b.c : b.e.c = b.c;
+ !b.c ? a.e = b.e : b.c.e = b.e;
+ --a.i;
+ ++a.g;
+ }
+ function eNb(a) {
+ var b, c, d, e, f, g, h, i, j, k;
+ c = a.o;
+ b = a.p;
+ g = Ohe;
+ e = Rie;
+ h = Ohe;
+ f = Rie;
+ for (j = 0; j < c; ++j) {
+ for (k = 0; k < b; ++k) {
+ if (YMb(a, j, k)) {
+ g = $wnd.Math.min(g, j);
+ e = $wnd.Math.max(e, j);
+ h = $wnd.Math.min(h, k);
+ f = $wnd.Math.max(f, k);
+ }
+ }
+ }
+ i = e - g + 1;
+ d = f - h + 1;
+ return new Ggd(meb(g), meb(h), meb(i), meb(d));
+ }
+ function DWb(a, b) {
+ var c, d, e, f;
+ f = new Bib(a, 0);
+ c = (sCb(f.b < f.d.gc()), BD(f.d.Xb(f.c = f.b++), 140));
+ while (f.b < f.d.gc()) {
+ d = (sCb(f.b < f.d.gc()), BD(f.d.Xb(f.c = f.b++), 140));
+ e = new dWb(d.c, c.d, b);
+ sCb(f.b > 0);
+ f.a.Xb(f.c = --f.b);
+ Aib(f, e);
+ sCb(f.b < f.d.gc());
+ f.d.Xb(f.c = f.b++);
+ e.a = false;
+ c = d;
+ }
+ }
+ function Y2b(a) {
+ var b, c, d, e, f, g;
+ e = BD(vNb(a, (wtc(), vsc)), 11);
+ for (g = new olb(a.j); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 11);
+ for (d = new olb(f.g); d.a < d.c.c.length; ) {
+ b = BD(mlb(d), 17);
+ RZb(b, e);
+ return f;
+ }
+ for (c = new olb(f.e); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 17);
+ QZb(b, e);
+ return f;
+ }
+ }
+ return null;
+ }
+ function iA(a, b, c) {
+ var d, e;
+ d = Cbb(c.q.getTime());
+ if (ybb(d, 0) < 0) {
+ e = _ie - Tbb(Hbb(Jbb(d), _ie));
+ e == _ie && (e = 0);
+ } else {
+ e = Tbb(Hbb(d, _ie));
+ }
+ if (b == 1) {
+ e = $wnd.Math.min((e + 50) / 100 | 0, 9);
+ Kfb(a, 48 + e & aje);
+ } else if (b == 2) {
+ e = $wnd.Math.min((e + 5) / 10 | 0, 99);
+ EA(a, e, 2);
+ } else {
+ EA(a, e, 3);
+ b > 3 && EA(a, 0, b - 3);
+ }
+ }
+ function cUb(a) {
+ var b, c, d, e;
+ if (PD(vNb(a, (Nyc(), axc))) === PD((hbd(), ebd))) {
+ return !a.e && PD(vNb(a, Cwc)) !== PD((Xrc(), Urc));
+ }
+ d = BD(vNb(a, Dwc), 292);
+ e = Ccb(DD(vNb(a, Hwc))) || PD(vNb(a, Iwc)) === PD((Rpc(), Opc));
+ b = BD(vNb(a, Bwc), 19).a;
+ c = a.a.c.length;
+ return !e && d != (Xrc(), Urc) && (b == 0 || b > c);
+ }
+ function lkc(a) {
+ var b, c;
+ c = 0;
+ for (; c < a.c.length; c++) {
+ if (Ojc((tCb(c, a.c.length), BD(a.c[c], 113))) > 0) {
+ break;
+ }
+ }
+ if (c > 0 && c < a.c.length - 1) {
+ return c;
+ }
+ b = 0;
+ for (; b < a.c.length; b++) {
+ if (Ojc((tCb(b, a.c.length), BD(a.c[b], 113))) > 0) {
+ break;
+ }
+ }
+ if (b > 0 && c < a.c.length - 1) {
+ return b;
+ }
+ return a.c.length / 2 | 0;
+ }
+ function mmd(a, b) {
+ var c, d;
+ if (b != a.Cb || a.Db >> 16 != 6 && !!b) {
+ if (p6d(a, b))
+ throw vbb(new Wdb(ste + qmd(a)));
+ d = null;
+ !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? cmd(a, d) : a.Cb.ih(a, -1 - c, null, d)));
+ !!b && (d = kid(b, a, 6, d));
+ d = bmd(a, b, d);
+ !!d && d.Fi();
+ } else
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 6, b, b));
+ }
+ function npd(a, b) {
+ var c, d;
+ if (b != a.Cb || a.Db >> 16 != 9 && !!b) {
+ if (p6d(a, b))
+ throw vbb(new Wdb(ste + opd(a)));
+ d = null;
+ !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? lpd(a, d) : a.Cb.ih(a, -1 - c, null, d)));
+ !!b && (d = kid(b, a, 9, d));
+ d = kpd(a, b, d);
+ !!d && d.Fi();
+ } else
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 9, b, b));
+ }
+ function Rld(a, b) {
+ var c, d;
+ if (b != a.Cb || a.Db >> 16 != 3 && !!b) {
+ if (p6d(a, b))
+ throw vbb(new Wdb(ste + Sld(a)));
+ d = null;
+ !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? Lld(a, d) : a.Cb.ih(a, -1 - c, null, d)));
+ !!b && (d = kid(b, a, 12, d));
+ d = Kld(a, b, d);
+ !!d && d.Fi();
+ } else
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b));
+ }
+ function VId(b) {
+ var c, d, e, f, g;
+ e = wId(b);
+ g = b.j;
+ if (g == null && !!e) {
+ return b.$j() ? null : e.zj();
+ } else if (JD(e, 148)) {
+ d = e.Aj();
+ if (d) {
+ f = d.Nh();
+ if (f != b.i) {
+ c = BD(e, 148);
+ if (c.Ej()) {
+ try {
+ b.g = f.Kh(c, g);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 78)) {
+ b.g = null;
+ } else
+ throw vbb(a);
+ }
+ }
+ b.i = f;
+ }
+ }
+ return b.g;
+ }
+ return null;
+ }
+ function wOb(a) {
+ var b;
+ b = new Rkb();
+ Ekb(b, new aDb(new f7c(a.c, a.d), new f7c(a.c + a.b, a.d)));
+ Ekb(b, new aDb(new f7c(a.c, a.d), new f7c(a.c, a.d + a.a)));
+ Ekb(b, new aDb(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c + a.b, a.d)));
+ Ekb(b, new aDb(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c, a.d + a.a)));
+ return b;
+ }
+ function IJc(a, b, c, d) {
+ var e, f, g;
+ g = LZb(b, c);
+ d.c[d.c.length] = b;
+ if (a.j[g.p] == -1 || a.j[g.p] == 2 || a.a[b.p]) {
+ return d;
+ }
+ a.j[g.p] = -1;
+ for (f = new Sr(ur(O_b(g).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ if (!(!OZb(e) && !(!OZb(e) && e.c.i.c == e.d.i.c)) || e == b) {
+ continue;
+ }
+ return IJc(a, e, g, d);
+ }
+ return d;
+ }
+ function vQb(a, b, c) {
+ var d, e, f;
+ for (f = b.a.ec().Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 79);
+ d = BD(Ohb(a.b, e), 266);
+ !d && (Xod(jtd(e)) == Xod(ltd(e)) ? uQb(a, e, c) : jtd(e) == Xod(ltd(e)) ? Ohb(a.c, e) == null && Ohb(a.b, ltd(e)) != null && xQb(a, e, c, false) : Ohb(a.d, e) == null && Ohb(a.b, jtd(e)) != null && xQb(a, e, c, true));
+ }
+ }
+ function jcc(a, b) {
+ var c, d, e, f, g, h, i;
+ for (e = a.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 10);
+ h = new H0b();
+ F0b(h, d);
+ G0b(h, (Ucd(), zcd));
+ yNb(h, (wtc(), ftc), (Bcb(), true));
+ for (g = b.Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 10);
+ i = new H0b();
+ F0b(i, f);
+ G0b(i, Tcd);
+ yNb(i, ftc, true);
+ c = new UZb();
+ yNb(c, ftc, true);
+ QZb(c, h);
+ RZb(c, i);
+ }
+ }
+ }
+ function jnc(a, b, c, d) {
+ var e, f, g, h;
+ e = hnc(a, b, c);
+ f = hnc(a, c, b);
+ g = BD(Ohb(a.c, b), 112);
+ h = BD(Ohb(a.c, c), 112);
+ if (e < f) {
+ new DOc((HOc(), GOc), g, h, f - e);
+ } else if (f < e) {
+ new DOc((HOc(), GOc), h, g, e - f);
+ } else if (e != 0 || !(!b.i || !c.i) && d[b.i.c][c.i.c]) {
+ new DOc((HOc(), GOc), g, h, 0);
+ new DOc(GOc, h, g, 0);
+ }
+ }
+ function Qoc(a, b) {
+ var c, d, e, f, g, h, i;
+ e = 0;
+ for (g = new olb(b.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ e += f.o.b + f.d.a + f.d.d + a.e;
+ for (d = new Sr(ur(R_b(f).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ if (c.c.i.k == (j0b(), i0b)) {
+ i = c.c.i;
+ h = BD(vNb(i, (wtc(), $sc)), 10);
+ e += h.o.b + h.d.a + h.d.d;
+ }
+ }
+ }
+ return e;
+ }
+ function WNc(a, b, c) {
+ var d, e, f, g, h, i, j;
+ f = new Rkb();
+ j = new Psb();
+ g = new Psb();
+ XNc(a, j, g, b);
+ VNc(a, j, g, b, c);
+ for (i = new olb(a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 112);
+ for (e = new olb(h.k); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 129);
+ (!b || d.c == (HOc(), FOc)) && h.g > d.b.g && (f.c[f.c.length] = d, true);
+ }
+ }
+ return f;
+ }
+ function k$c() {
+ k$c = ccb;
+ g$c = new l$c("CANDIDATE_POSITION_LAST_PLACED_RIGHT", 0);
+ f$c = new l$c("CANDIDATE_POSITION_LAST_PLACED_BELOW", 1);
+ i$c = new l$c("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT", 2);
+ h$c = new l$c("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW", 3);
+ j$c = new l$c("WHOLE_DRAWING", 4);
+ }
+ function Xqd(a, b) {
+ if (JD(b, 239)) {
+ return iqd(a, BD(b, 33));
+ } else if (JD(b, 186)) {
+ return jqd(a, BD(b, 118));
+ } else if (JD(b, 354)) {
+ return hqd(a, BD(b, 137));
+ } else if (JD(b, 352)) {
+ return gqd(a, BD(b, 79));
+ } else if (b) {
+ return null;
+ } else {
+ throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [b])))));
+ }
+ }
+ function aic(a) {
+ var b, c, d, e, f, g, h;
+ f = new Psb();
+ for (e = new olb(a.d.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 121);
+ d.b.a.c.length == 0 && (Gsb(f, d, f.c.b, f.c), true);
+ }
+ if (f.b > 1) {
+ b = nGb((c = new pGb(), ++a.b, c), a.d);
+ for (h = Jsb(f, 0); h.b != h.d.c; ) {
+ g = BD(Xsb(h), 121);
+ AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 0), b), g));
+ }
+ }
+ }
+ function $od(a, b) {
+ var c, d;
+ if (b != a.Cb || a.Db >> 16 != 11 && !!b) {
+ if (p6d(a, b))
+ throw vbb(new Wdb(ste + _od(a)));
+ d = null;
+ !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? Uod(a, d) : a.Cb.ih(a, -1 - c, null, d)));
+ !!b && (d = kid(b, a, 10, d));
+ d = Tod(a, b, d);
+ !!d && d.Fi();
+ } else
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 11, b, b));
+ }
+ function uZb(a) {
+ var b, c, d, e;
+ for (d = new nib(new eib(a.b).a); d.b; ) {
+ c = lib(d);
+ e = BD(c.cd(), 11);
+ b = BD(c.dd(), 10);
+ yNb(b, (wtc(), $sc), e);
+ yNb(e, gtc, b);
+ yNb(e, Nsc, (Bcb(), true));
+ G0b(e, BD(vNb(b, Hsc), 61));
+ vNb(b, Hsc);
+ yNb(e.i, (Nyc(), Vxc), (dcd(), acd));
+ BD(vNb(Q_b(e.i), Ksc), 21).Fc((Orc(), Krc));
+ }
+ }
+ function G4b(a, b, c) {
+ var d, e, f, g, h, i;
+ f = 0;
+ g = 0;
+ if (a.c) {
+ for (i = new olb(a.d.i.j); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 11);
+ f += h.e.c.length;
+ }
+ } else {
+ f = 1;
+ }
+ if (a.d) {
+ for (i = new olb(a.c.i.j); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 11);
+ g += h.g.c.length;
+ }
+ } else {
+ g = 1;
+ }
+ e = QD(Eeb(g - f));
+ d = (c + b) / 2 + (c - b) * (0.4 * e);
+ return d;
+ }
+ function Zjc(a) {
+ Xjc();
+ var b, c;
+ if (a.Hc((Ucd(), Scd))) {
+ throw vbb(new Wdb("Port sides must not contain UNDEFINED"));
+ }
+ switch (a.gc()) {
+ case 1:
+ return Tjc;
+ case 2:
+ b = a.Hc(zcd) && a.Hc(Tcd);
+ c = a.Hc(Acd) && a.Hc(Rcd);
+ return b || c ? Wjc : Vjc;
+ case 3:
+ return Ujc;
+ case 4:
+ return Sjc;
+ default:
+ return null;
+ }
+ }
+ function Hoc(a, b, c) {
+ var d, e, f, g, h;
+ Odd(c, "Breaking Point Removing", 1);
+ a.a = BD(vNb(b, (Nyc(), Swc)), 218);
+ for (f = new olb(b.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ for (h = new olb(Mu(e.a)); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ if (hoc(g)) {
+ d = BD(vNb(g, (wtc(), usc)), 305);
+ !d.d && Ioc(a, d);
+ }
+ }
+ }
+ Qdd(c);
+ }
+ function s6c(a, b, c) {
+ i6c();
+ if (m6c(a, b) && m6c(a, c)) {
+ return false;
+ }
+ return u6c(new f7c(a.c, a.d), new f7c(a.c + a.b, a.d), b, c) || u6c(new f7c(a.c + a.b, a.d), new f7c(a.c + a.b, a.d + a.a), b, c) || u6c(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c, a.d + a.a), b, c) || u6c(new f7c(a.c, a.d + a.a), new f7c(a.c, a.d), b, c);
+ }
+ function x1d(a, b) {
+ var c, d, e, f;
+ if (!a.dc()) {
+ for (c = 0, d = a.gc(); c < d; ++c) {
+ f = GD(a.Xb(c));
+ if (f == null ? b == null : dfb(f.substr(0, 3), "!##") ? b != null && (e = b.length, !dfb(f.substr(f.length - e, e), b) || f.length != b.length + 3) && !dfb(Ewe, b) : dfb(f, Fwe) && !dfb(Ewe, b) || dfb(f, b)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function J3b(a, b, c, d) {
+ var e, f, g, h, i, j;
+ g = a.j.c.length;
+ i = KC(tN, ile, 306, g, 0, 1);
+ for (h = 0; h < g; h++) {
+ f = BD(Ikb(a.j, h), 11);
+ f.p = h;
+ i[h] = D3b(N3b(f), c, d);
+ }
+ F3b(a, i, c, b, d);
+ j = new Lqb();
+ for (e = 0; e < i.length; e++) {
+ !!i[e] && Rhb(j, BD(Ikb(a.j, e), 11), i[e]);
+ }
+ if (j.f.c + j.g.c != 0) {
+ yNb(a, (wtc(), Csc), j);
+ L3b(a, i);
+ }
+ }
+ function Lgc(a, b, c) {
+ var d, e, f;
+ for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 57);
+ f = tgc(d);
+ if (f) {
+ if (f.k == (j0b(), e0b)) {
+ switch (BD(vNb(f, (wtc(), Hsc)), 61).g) {
+ case 4:
+ f.n.a = b.a;
+ break;
+ case 2:
+ f.n.a = c.a - (f.o.a + f.d.c);
+ break;
+ case 1:
+ f.n.b = b.b;
+ break;
+ case 3:
+ f.n.b = c.b - (f.o.b + f.d.a);
+ }
+ }
+ }
+ }
+ }
+ function kAc() {
+ kAc = ccb;
+ iAc = new lAc(ane, 0);
+ dAc = new lAc("NIKOLOV", 1);
+ gAc = new lAc("NIKOLOV_PIXEL", 2);
+ eAc = new lAc("NIKOLOV_IMPROVED", 3);
+ fAc = new lAc("NIKOLOV_IMPROVED_PIXEL", 4);
+ cAc = new lAc("DUMMYNODE_PERCENTAGE", 5);
+ hAc = new lAc("NODECOUNT_PERCENTAGE", 6);
+ jAc = new lAc("NO_BOUNDARY", 7);
+ }
+ function led(a, b, c) {
+ var d, e, f, g, h;
+ e = BD(hkd(b, (X7c(), V7c)), 19);
+ !e && (e = meb(0));
+ f = BD(hkd(c, V7c), 19);
+ !f && (f = meb(0));
+ if (e.a > f.a) {
+ return -1;
+ } else if (e.a < f.a) {
+ return 1;
+ } else {
+ if (a.a) {
+ d = Kdb(b.j, c.j);
+ if (d != 0) {
+ return d;
+ }
+ d = Kdb(b.i, c.i);
+ if (d != 0) {
+ return d;
+ }
+ }
+ g = b.g * b.f;
+ h = c.g * c.f;
+ return Kdb(g, h);
+ }
+ }
+ function BAd(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ ++a.e;
+ i = a.d == null ? 0 : a.d.length;
+ if (b > i) {
+ k = a.d;
+ a.d = KC(y4, jve, 63, 2 * i + 4, 0, 1);
+ for (f = 0; f < i; ++f) {
+ j = k[f];
+ if (j) {
+ d = j.g;
+ l = j.i;
+ for (h = 0; h < l; ++h) {
+ e = BD(d[h], 133);
+ g = DAd(a, e.Sh());
+ c = a.d[g];
+ !c && (c = a.d[g] = a.uj());
+ c.Fc(e);
+ }
+ }
+ }
+ return true;
+ } else {
+ return false;
+ }
+ }
+ function o2d(a, b, c) {
+ var d, e, f, g, h, i;
+ e = c;
+ f = e.ak();
+ if (T6d(a.e, f)) {
+ if (f.hi()) {
+ d = BD(a.g, 119);
+ for (g = 0; g < a.i; ++g) {
+ h = d[g];
+ if (pb(h, e) && g != b) {
+ throw vbb(new Wdb(kue));
+ }
+ }
+ }
+ } else {
+ i = S6d(a.e.Tg(), f);
+ d = BD(a.g, 119);
+ for (g = 0; g < a.i; ++g) {
+ h = d[g];
+ if (i.rl(h.ak())) {
+ throw vbb(new Wdb(Hwe));
+ }
+ }
+ }
+ vtd(a, b, c);
+ }
+ function OYb(a, b) {
+ var c, d, e, f, g, h;
+ c = BD(vNb(b, (wtc(), Esc)), 21);
+ g = BD(Qc((xXb(), wXb), c), 21);
+ h = BD(Qc(LYb, c), 21);
+ for (f = g.Kc(); f.Ob(); ) {
+ d = BD(f.Pb(), 21);
+ if (!BD(Qc(a.b, d), 15).dc()) {
+ return false;
+ }
+ }
+ for (e = h.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 21);
+ if (!BD(Qc(a.b, d), 15).dc()) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function scc(a, b) {
+ var c, d, e, f, g, h;
+ Odd(b, "Partition postprocessing", 1);
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 29);
+ for (f = new olb(c.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ h = new olb(e.j);
+ while (h.a < h.c.c.length) {
+ g = BD(mlb(h), 11);
+ Ccb(DD(vNb(g, (wtc(), ftc)))) && nlb(h);
+ }
+ }
+ }
+ Qdd(b);
+ }
+ function ZZc(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ if (a.a.c.length == 1) {
+ return JZc(BD(Ikb(a.a, 0), 187), b);
+ }
+ g = YZc(a);
+ i = 0;
+ j = a.d;
+ f = g;
+ k = a.d;
+ h = (j - f) / 2 + f;
+ while (f + 1 < j) {
+ i = 0;
+ for (d = new olb(a.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 187);
+ i += (e = MZc(c, h, false), e.a);
+ }
+ if (i < b) {
+ k = h;
+ j = h;
+ } else {
+ f = h;
+ }
+ h = (j - f) / 2 + f;
+ }
+ return k;
+ }
+ function fD(a) {
+ var b, c, d, e, f;
+ if (isNaN(a)) {
+ return wD(), vD;
+ }
+ if (a < -9223372036854776e3) {
+ return wD(), tD;
+ }
+ if (a >= 9223372036854776e3) {
+ return wD(), sD;
+ }
+ e = false;
+ if (a < 0) {
+ e = true;
+ a = -a;
+ }
+ d = 0;
+ if (a >= Ije) {
+ d = QD(a / Ije);
+ a -= d * Ije;
+ }
+ c = 0;
+ if (a >= Hje) {
+ c = QD(a / Hje);
+ a -= c * Hje;
+ }
+ b = QD(a);
+ f = TC(b, c, d);
+ e && ZC(f);
+ return f;
+ }
+ function rKb(a, b) {
+ var c, d, e, f;
+ c = !b || !a.u.Hc((rcd(), ncd));
+ f = 0;
+ for (e = new olb(a.e.Cf()); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 838);
+ if (d.Hf() == (Ucd(), Scd)) {
+ throw vbb(new Wdb("Label and node size calculator can only be used with ports that have port sides assigned."));
+ }
+ d.vf(f++);
+ qKb(a, d, c);
+ }
+ }
+ function V0d(a, b) {
+ var c, d, e, f, g;
+ e = b.Hh(a.a);
+ if (e) {
+ d = (!e.b && (e.b = new sId((jGd(), fGd), x6, e)), e.b);
+ c = GD(AAd(d, cwe));
+ if (c != null) {
+ f = c.lastIndexOf("#");
+ g = f == -1 ? w1d(a, b.Aj(), c) : f == 0 ? v1d(a, null, c.substr(1)) : v1d(a, c.substr(0, f), c.substr(f + 1));
+ if (JD(g, 148)) {
+ return BD(g, 148);
+ }
+ }
+ }
+ return null;
+ }
+ function Z0d(a, b) {
+ var c, d, e, f, g;
+ d = b.Hh(a.a);
+ if (d) {
+ c = (!d.b && (d.b = new sId((jGd(), fGd), x6, d)), d.b);
+ f = GD(AAd(c, zwe));
+ if (f != null) {
+ e = f.lastIndexOf("#");
+ g = e == -1 ? w1d(a, b.Aj(), f) : e == 0 ? v1d(a, null, f.substr(1)) : v1d(a, f.substr(0, e), f.substr(e + 1));
+ if (JD(g, 148)) {
+ return BD(g, 148);
+ }
+ }
+ }
+ return null;
+ }
+ function RDb(a) {
+ var b, c, d, e, f;
+ for (c = new olb(a.a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 307);
+ b.j = null;
+ for (f = b.a.a.ec().Kc(); f.Ob(); ) {
+ d = BD(f.Pb(), 57);
+ X6c(d.b);
+ (!b.j || d.d.c < b.j.d.c) && (b.j = d);
+ }
+ for (e = b.a.a.ec().Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 57);
+ d.b.a = d.d.c - b.j.d.c;
+ d.b.b = d.d.d - b.j.d.d;
+ }
+ }
+ return a;
+ }
+ function sVb(a) {
+ var b, c, d, e, f;
+ for (c = new olb(a.a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 189);
+ b.f = null;
+ for (f = b.a.a.ec().Kc(); f.Ob(); ) {
+ d = BD(f.Pb(), 81);
+ X6c(d.e);
+ (!b.f || d.g.c < b.f.g.c) && (b.f = d);
+ }
+ for (e = b.a.a.ec().Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 81);
+ d.e.a = d.g.c - b.f.g.c;
+ d.e.b = d.g.d - b.f.g.d;
+ }
+ }
+ return a;
+ }
+ function EMb(a) {
+ var b, c, d;
+ c = BD(a.a, 19).a;
+ d = BD(a.b, 19).a;
+ b = $wnd.Math.max($wnd.Math.abs(c), $wnd.Math.abs(d));
+ if (c < b && d == -b) {
+ return new vgd(meb(c + 1), meb(d));
+ }
+ if (c == b && d < b) {
+ return new vgd(meb(c), meb(d + 1));
+ }
+ if (c >= -b && d == b) {
+ return new vgd(meb(c - 1), meb(d));
+ }
+ return new vgd(meb(c), meb(d - 1));
+ }
+ function W8b() {
+ S8b();
+ return OC(GC(AS, 1), Kie, 77, 0, [Y7b, V7b, Z7b, n8b, G8b, r8b, M8b, w8b, E8b, i8b, A8b, v8b, F8b, e8b, O8b, P7b, z8b, I8b, o8b, H8b, Q8b, C8b, Q7b, D8b, R8b, K8b, P8b, p8b, b8b, q8b, m8b, N8b, T7b, _7b, t8b, S7b, u8b, k8b, f8b, x8b, h8b, W7b, U7b, l8b, g8b, y8b, L8b, R7b, B8b, j8b, s8b, c8b, a8b, J8b, $7b, d8b, X7b]);
+ }
+ function Yic(a, b, c) {
+ a.d = 0;
+ a.b = 0;
+ b.k == (j0b(), i0b) && c.k == i0b && BD(vNb(b, (wtc(), $sc)), 10) == BD(vNb(c, $sc), 10) && (ajc(b).j == (Ucd(), Acd) ? Zic(a, b, c) : Zic(a, c, b));
+ b.k == i0b && c.k == g0b ? ajc(b).j == (Ucd(), Acd) ? a.d = 1 : a.b = 1 : c.k == i0b && b.k == g0b && (ajc(c).j == (Ucd(), Acd) ? a.b = 1 : a.d = 1);
+ cjc(a, b, c);
+ }
+ function esd(a) {
+ var b, c, d, e, f, g, h, i, j, k, l;
+ l = hsd(a);
+ b = a.a;
+ i = b != null;
+ i && Upd(l, "category", a.a);
+ e = Fhe(new Pib(a.d));
+ g = !e;
+ if (g) {
+ j = new wB();
+ cC(l, "knownOptions", j);
+ c = new msd(j);
+ reb(new Pib(a.d), c);
+ }
+ f = Fhe(a.g);
+ h = !f;
+ if (h) {
+ k = new wB();
+ cC(l, "supportedFeatures", k);
+ d = new osd(k);
+ reb(a.g, d);
+ }
+ return l;
+ }
+ function ty(a) {
+ var b, c, d, e, f, g, h, i, j;
+ d = false;
+ b = 336;
+ c = 0;
+ f = new Xp(a.length);
+ for (h = a, i = 0, j = h.length; i < j; ++i) {
+ g = h[i];
+ d = d | (Uzb(g), false);
+ e = (Tzb(g), g.a);
+ Ekb(f.a, Qb(e));
+ b &= e.qd();
+ c = Ly(c, e.rd());
+ }
+ return BD(BD(Rzb(new YAb(null, Yj(new Kub((im(), nm(f.a)), 16), new vy(), b, c)), new xy(a)), 670), 833);
+ }
+ function UWb(a, b) {
+ var c;
+ if (!!a.d && (b.c != a.e.c || qWb(a.e.b, b.b))) {
+ Ekb(a.f, a.d);
+ a.a = a.d.c + a.d.b;
+ a.d = null;
+ a.e = null;
+ }
+ nWb(b.b) ? a.c = b : a.b = b;
+ if (b.b == (lWb(), hWb) && !b.a || b.b == iWb && b.a || b.b == jWb && b.a || b.b == kWb && !b.a) {
+ if (!!a.c && !!a.b) {
+ c = new J6c(a.a, a.c.d, b.c - a.a, a.b.d - a.c.d);
+ a.d = c;
+ a.e = b;
+ }
+ }
+ }
+ function L2c(a) {
+ var b;
+ D2c.call(this);
+ this.i = new Z2c();
+ this.g = a;
+ this.f = BD(a.e && a.e(), 9).length;
+ if (this.f == 0) {
+ throw vbb(new Wdb("There must be at least one phase in the phase enumeration."));
+ }
+ this.c = (b = BD(gdb(this.g), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
+ this.a = new j3c();
+ this.b = new Lqb();
+ }
+ function God(a, b) {
+ var c, d;
+ if (b != a.Cb || a.Db >> 16 != 7 && !!b) {
+ if (p6d(a, b))
+ throw vbb(new Wdb(ste + Iod(a)));
+ d = null;
+ !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? Eod(a, d) : a.Cb.ih(a, -1 - c, null, d)));
+ !!b && (d = BD(b, 49).gh(a, 1, C2, d));
+ d = Dod(a, b, d);
+ !!d && d.Fi();
+ } else
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 7, b, b));
+ }
+ function NHd(a, b) {
+ var c, d;
+ if (b != a.Cb || a.Db >> 16 != 3 && !!b) {
+ if (p6d(a, b))
+ throw vbb(new Wdb(ste + QHd(a)));
+ d = null;
+ !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? KHd(a, d) : a.Cb.ih(a, -1 - c, null, d)));
+ !!b && (d = BD(b, 49).gh(a, 0, k5, d));
+ d = JHd(a, b, d);
+ !!d && d.Fi();
+ } else
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b));
+ }
+ function Ehb(a, b) {
+ Dhb();
+ var c, d, e, f, g, h, i, j, k;
+ if (b.d > a.d) {
+ h = a;
+ a = b;
+ b = h;
+ }
+ if (b.d < 63) {
+ return Ihb(a, b);
+ }
+ g = (a.d & -2) << 4;
+ j = Rgb(a, g);
+ k = Rgb(b, g);
+ d = yhb(a, Qgb(j, g));
+ e = yhb(b, Qgb(k, g));
+ i = Ehb(j, k);
+ c = Ehb(d, e);
+ f = Ehb(yhb(j, d), yhb(e, k));
+ f = thb(thb(f, i), c);
+ f = Qgb(f, g);
+ i = Qgb(i, g << 1);
+ return thb(thb(i, f), c);
+ }
+ function aGc(a, b, c) {
+ var d, e, f, g, h;
+ g = CHc(a, c);
+ h = KC(OQ, kne, 10, b.length, 0, 1);
+ d = 0;
+ for (f = g.Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 11);
+ Ccb(DD(vNb(e, (wtc(), Nsc)))) && (h[d++] = BD(vNb(e, gtc), 10));
+ }
+ if (d < b.length) {
+ throw vbb(new Zdb("Expected " + b.length + " hierarchical ports, but found only " + d + "."));
+ }
+ return h;
+ }
+ function Und(a, b) {
+ var c, d, e, f, g, h;
+ if (!a.tb) {
+ f = (!a.rb && (a.rb = new jUd(a, d5, a)), a.rb);
+ h = new Mqb(f.i);
+ for (e = new Fyd(f); e.e != e.i.gc(); ) {
+ d = BD(Dyd(e), 138);
+ g = d.ne();
+ c = BD(g == null ? jrb(h.f, null, d) : Drb(h.g, g, d), 138);
+ !!c && (g == null ? jrb(h.f, null, c) : Drb(h.g, g, c));
+ }
+ a.tb = h;
+ }
+ return BD(Phb(a.tb, b), 138);
+ }
+ function YKd(a, b) {
+ var c, d, e, f, g;
+ (a.i == null && TKd(a), a.i).length;
+ if (!a.p) {
+ g = new Mqb((3 * a.g.i / 2 | 0) + 1);
+ for (e = new $yd(a.g); e.e != e.i.gc(); ) {
+ d = BD(Zyd(e), 170);
+ f = d.ne();
+ c = BD(f == null ? jrb(g.f, null, d) : Drb(g.g, f, d), 170);
+ !!c && (f == null ? jrb(g.f, null, c) : Drb(g.g, f, c));
+ }
+ a.p = g;
+ }
+ return BD(Phb(a.p, b), 170);
+ }
+ function hCb(a, b, c, d, e) {
+ var f, g, h, i, j;
+ fCb(d + Wy(c, c.$d()), e);
+ gCb(b, jCb(c));
+ f = c.f;
+ !!f && hCb(a, b, f, "Caused by: ", false);
+ for (h = (c.k == null && (c.k = KC(_I, nie, 78, 0, 0, 1)), c.k), i = 0, j = h.length; i < j; ++i) {
+ g = h[i];
+ hCb(a, b, g, "Suppressed: ", false);
+ }
+ console.groupEnd != null && console.groupEnd.call(console);
+ }
+ function dGc(a, b, c, d) {
+ var e, f, g, h, i;
+ i = b.e;
+ h = i.length;
+ g = b.q._f(i, c ? 0 : h - 1, c);
+ e = i[c ? 0 : h - 1];
+ g = g | cGc(a, e, c, d);
+ for (f = c ? 1 : h - 2; c ? f < h : f >= 0; f += c ? 1 : -1) {
+ g = g | b.c.Sf(i, f, c, d && !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, (wtc(), mtc)))));
+ g = g | b.q._f(i, f, c);
+ g = g | cGc(a, i[f], c, d);
+ }
+ Qqb(a.c, b);
+ return g;
+ }
+ function o3b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ for (k = m_b(a.j), l = 0, m = k.length; l < m; ++l) {
+ j = k[l];
+ if (c == (KAc(), HAc) || c == JAc) {
+ i = k_b(j.g);
+ for (e = i, f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ k3b(b, d) && PZb(d, true);
+ }
+ }
+ if (c == IAc || c == JAc) {
+ h = k_b(j.e);
+ for (e = h, f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ j3b(b, d) && PZb(d, true);
+ }
+ }
+ }
+ }
+ function Qmc(a) {
+ var b, c;
+ b = null;
+ c = null;
+ switch (Lmc(a).g) {
+ case 1:
+ b = (Ucd(), zcd);
+ c = Tcd;
+ break;
+ case 2:
+ b = (Ucd(), Rcd);
+ c = Acd;
+ break;
+ case 3:
+ b = (Ucd(), Tcd);
+ c = zcd;
+ break;
+ case 4:
+ b = (Ucd(), Acd);
+ c = Rcd;
+ }
+ mjc(a, BD(Btb(RAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113));
+ njc(a, BD(Btb(QAb(BD(Qc(a.k, c), 15).Oc(), Hmc)), 113));
+ }
+ function a6b(a) {
+ var b, c, d, e, f, g;
+ e = BD(Ikb(a.j, 0), 11);
+ if (e.e.c.length + e.g.c.length == 0) {
+ a.n.a = 0;
+ } else {
+ g = 0;
+ for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(e), new R0b(e)]))); Qr(d); ) {
+ c = BD(Rr(d), 11);
+ g += c.i.n.a + c.n.a + c.a.a;
+ }
+ b = BD(vNb(a, (Nyc(), Txc)), 8);
+ f = !b ? 0 : b.a;
+ a.n.a = g / (e.e.c.length + e.g.c.length) - f;
+ }
+ }
+ function F1c(a, b) {
+ var c, d, e;
+ for (d = new olb(b.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 221);
+ $Nb(BD(c.b, 65), c7c(R6c(BD(b.b, 65).c), BD(b.b, 65).a));
+ e = xOb(BD(b.b, 65).b, BD(c.b, 65).b);
+ e > 1 && (a.a = true);
+ ZNb(BD(c.b, 65), P6c(R6c(BD(b.b, 65).c), Y6c(c7c(R6c(BD(c.b, 65).a), BD(b.b, 65).a), e)));
+ D1c(a, b);
+ F1c(a, c);
+ }
+ }
+ function rVb(a) {
+ var b, c, d, e, f, g, h;
+ for (f = new olb(a.a.a); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 189);
+ d.e = 0;
+ d.d.a.$b();
+ }
+ for (e = new olb(a.a.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 189);
+ for (c = d.a.a.ec().Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 81);
+ for (h = b.f.Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 81);
+ if (g.d != d) {
+ Qqb(d.d, g);
+ ++g.d.e;
+ }
+ }
+ }
+ }
+ }
+ function bcc(a) {
+ var b, c, d, e, f, g, h, i;
+ i = a.j.c.length;
+ c = 0;
+ b = i;
+ e = 2 * i;
+ for (h = new olb(a.j); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 11);
+ switch (g.j.g) {
+ case 2:
+ case 4:
+ g.p = -1;
+ break;
+ case 1:
+ case 3:
+ d = g.e.c.length;
+ f = g.g.c.length;
+ d > 0 && f > 0 ? g.p = b++ : d > 0 ? g.p = c++ : f > 0 ? g.p = e++ : g.p = c++;
+ }
+ }
+ mmb();
+ Okb(a.j, new fcc());
+ }
+ function Vec(a) {
+ var b, c;
+ c = null;
+ b = BD(Ikb(a.g, 0), 17);
+ do {
+ c = b.d.i;
+ if (wNb(c, (wtc(), Wsc))) {
+ return BD(vNb(c, Wsc), 11).i;
+ }
+ if (c.k != (j0b(), h0b) && Qr(new Sr(ur(U_b(c).a.Kc(), new Sq())))) {
+ b = BD(Rr(new Sr(ur(U_b(c).a.Kc(), new Sq()))), 17);
+ } else if (c.k != h0b) {
+ return null;
+ }
+ } while (!!c && c.k != (j0b(), h0b));
+ return c;
+ }
+ function Omc(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ h = b.j;
+ g = b.g;
+ i = BD(Ikb(h, h.c.length - 1), 113);
+ k = (tCb(0, h.c.length), BD(h.c[0], 113));
+ j = Kmc(a, g, i, k);
+ for (f = 1; f < h.c.length; f++) {
+ c = (tCb(f - 1, h.c.length), BD(h.c[f - 1], 113));
+ e = (tCb(f, h.c.length), BD(h.c[f], 113));
+ d = Kmc(a, g, c, e);
+ if (d > j) {
+ i = c;
+ k = e;
+ j = d;
+ }
+ }
+ b.a = k;
+ b.c = i;
+ }
+ function sEb(a, b) {
+ var c, d;
+ d = Axb(a.b, b.b);
+ if (!d) {
+ throw vbb(new Zdb("Invalid hitboxes for scanline constraint calculation."));
+ }
+ (mEb(b.b, BD(Cxb(a.b, b.b), 57)) || mEb(b.b, BD(Bxb(a.b, b.b), 57))) && (Zfb(), b.b + " has overlap.");
+ a.a[b.b.f] = BD(Exb(a.b, b.b), 57);
+ c = BD(Dxb(a.b, b.b), 57);
+ !!c && (a.a[c.f] = b.b);
+ }
+ function AFb(a) {
+ if (!a.a.d || !a.a.e) {
+ throw vbb(new Zdb((fdb(fN), fN.k + " must have a source and target " + (fdb(jN), jN.k) + " specified.")));
+ }
+ if (a.a.d == a.a.e) {
+ throw vbb(new Zdb("Network simplex does not support self-loops: " + a.a + " " + a.a.d + " " + a.a.e));
+ }
+ NFb(a.a.d.g, a.a);
+ NFb(a.a.e.b, a.a);
+ return a.a;
+ }
+ function HHc(a, b, c) {
+ var d, e, f, g, h, i, j;
+ j = new Hxb(new tIc(a));
+ for (g = OC(GC(aR, 1), lne, 11, 0, [b, c]), h = 0, i = g.length; h < i; ++h) {
+ f = g[h];
+ Iwb(j.a, f, (Bcb(), zcb)) == null;
+ for (e = new b1b(f.b); llb(e.a) || llb(e.b); ) {
+ d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
+ d.c == d.d || Axb(j, f == d.c ? d.d : d.c);
+ }
+ }
+ return Qb(j), new Tkb(j);
+ }
+ function oPc(a, b, c) {
+ var d, e, f, g, h, i;
+ d = 0;
+ if (b.b != 0 && c.b != 0) {
+ f = Jsb(b, 0);
+ g = Jsb(c, 0);
+ h = Edb(ED(Xsb(f)));
+ i = Edb(ED(Xsb(g)));
+ e = true;
+ do {
+ if (h > i - a.b && h < i + a.b) {
+ return -1;
+ } else
+ h > i - a.a && h < i + a.a && ++d;
+ h <= i && f.b != f.d.c ? h = Edb(ED(Xsb(f))) : i <= h && g.b != g.d.c ? i = Edb(ED(Xsb(g))) : e = false;
+ } while (e);
+ }
+ return d;
+ }
+ function F3b(a, b, c, d, e) {
+ var f, g, h, i;
+ i = (f = BD(gdb(F1), 9), new xqb(f, BD(_Bb(f, f.length), 9), 0));
+ for (h = new olb(a.j); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 11);
+ if (b[g.p]) {
+ G3b(g, b[g.p], d);
+ rqb(i, g.j);
+ }
+ }
+ if (e) {
+ K3b(a, b, (Ucd(), zcd), 2 * c, d);
+ K3b(a, b, Tcd, 2 * c, d);
+ } else {
+ K3b(a, b, (Ucd(), Acd), 2 * c, d);
+ K3b(a, b, Rcd, 2 * c, d);
+ }
+ }
+ function Szb(a) {
+ var b, c, d, e, f;
+ f = new Rkb();
+ Hkb(a.b, new XBb(f));
+ a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ if (f.c.length != 0) {
+ b = (tCb(0, f.c.length), BD(f.c[0], 78));
+ for (c = 1, d = f.c.length; c < d; ++c) {
+ e = (tCb(c, f.c.length), BD(f.c[c], 78));
+ e != b && Qy(b, e);
+ }
+ if (JD(b, 60)) {
+ throw vbb(BD(b, 60));
+ }
+ if (JD(b, 289)) {
+ throw vbb(BD(b, 289));
+ }
+ }
+ }
+ function DCb(a, b) {
+ var c, d, e, f;
+ a = a == null ? Xhe : (uCb(a), a);
+ c = new Vfb();
+ f = 0;
+ d = 0;
+ while (d < b.length) {
+ e = a.indexOf("%s", f);
+ if (e == -1) {
+ break;
+ }
+ Qfb(c, a.substr(f, e - f));
+ Pfb(c, b[d++]);
+ f = e + 2;
+ }
+ Qfb(c, a.substr(f));
+ if (d < b.length) {
+ c.a += " [";
+ Pfb(c, b[d++]);
+ while (d < b.length) {
+ c.a += She;
+ Pfb(c, b[d++]);
+ }
+ c.a += "]";
+ }
+ return c.a;
+ }
+ function KCb(a) {
+ var b, c, d, e;
+ b = 0;
+ d = a.length;
+ e = d - 4;
+ c = 0;
+ while (c < e) {
+ b = (BCb(c + 3, a.length), a.charCodeAt(c + 3) + (BCb(c + 2, a.length), 31 * (a.charCodeAt(c + 2) + (BCb(c + 1, a.length), 31 * (a.charCodeAt(c + 1) + (BCb(c, a.length), 31 * (a.charCodeAt(c) + 31 * b)))))));
+ b = b | 0;
+ c += 4;
+ }
+ while (c < d) {
+ b = b * 31 + bfb(a, c++);
+ }
+ b = b | 0;
+ return b;
+ }
+ function Rac(a) {
+ var b, c;
+ for (c = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 17);
+ if (b.d.i.k != (j0b(), f0b)) {
+ throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen."));
+ }
+ }
+ }
+ function jQc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m;
+ i = 0;
+ for (k = new olb(a.a); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 10);
+ h = 0;
+ for (f = new Sr(ur(R_b(j).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ l = A0b(e.c).b;
+ m = A0b(e.d).b;
+ h = $wnd.Math.max(h, $wnd.Math.abs(m - l));
+ }
+ i = $wnd.Math.max(i, h);
+ }
+ g = d * $wnd.Math.min(1, b / c) * i;
+ return g;
+ }
+ function See(a) {
+ var b;
+ b = new Ifb();
+ (a & 256) != 0 && (b.a += "F", b);
+ (a & 128) != 0 && (b.a += "H", b);
+ (a & 512) != 0 && (b.a += "X", b);
+ (a & 2) != 0 && (b.a += "i", b);
+ (a & 8) != 0 && (b.a += "m", b);
+ (a & 4) != 0 && (b.a += "s", b);
+ (a & 32) != 0 && (b.a += "u", b);
+ (a & 64) != 0 && (b.a += "w", b);
+ (a & 16) != 0 && (b.a += "x", b);
+ (a & zte) != 0 && (b.a += ",", b);
+ return jfb(b.a);
+ }
+ function F5b(a, b) {
+ var c, d, e, f;
+ Odd(b, "Resize child graph to fit parent.", 1);
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 29);
+ Gkb(a.a, c.a);
+ c.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ for (f = new olb(a.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ $_b(e, null);
+ }
+ a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ G5b(a);
+ !!a.e && E5b(a.e, a);
+ Qdd(b);
+ }
+ function eec(a) {
+ var b, c, d, e, f, g, h, i, j;
+ d = a.b;
+ f = d.e;
+ g = ecd(BD(vNb(d, (Nyc(), Vxc)), 98));
+ c = !!f && BD(vNb(f, (wtc(), Ksc)), 21).Hc((Orc(), Hrc));
+ if (g || c) {
+ return;
+ }
+ for (j = (h = new $ib(a.e).a.vc().Kc(), new djb(h)); j.a.Ob(); ) {
+ i = (b = BD(j.a.Pb(), 42), BD(b.dd(), 113));
+ if (i.a) {
+ e = i.d;
+ F0b(e, null);
+ i.c = true;
+ a.a = true;
+ }
+ }
+ }
+ function QFc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n;
+ m = -1;
+ n = 0;
+ for (j = a, k = 0, l = j.length; k < l; ++k) {
+ i = j[k];
+ for (f = i, g = 0, h = f.length; g < h; ++g) {
+ e = f[g];
+ b = new Unc(m == -1 ? a[0] : a[m], Xec(e));
+ for (c = 0; c < e.j.c.length; c++) {
+ for (d = c + 1; d < e.j.c.length; d++) {
+ Rnc(b, BD(Ikb(e.j, c), 11), BD(Ikb(e.j, d), 11)) > 0 && ++n;
+ }
+ }
+ }
+ ++m;
+ }
+ return n;
+ }
+ function hUc(a, b) {
+ var c, d, e, f, g;
+ g = BD(vNb(b, (JTc(), FTc)), 425);
+ for (f = Jsb(b.b, 0); f.b != f.d.c; ) {
+ e = BD(Xsb(f), 86);
+ if (a.b[e.g] == 0) {
+ switch (g.g) {
+ case 0:
+ iUc(a, e);
+ break;
+ case 1:
+ gUc(a, e);
+ }
+ a.b[e.g] = 2;
+ }
+ }
+ for (d = Jsb(a.a, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 188);
+ ze(c.b.d, c, true);
+ ze(c.c.b, c, true);
+ }
+ yNb(b, (mTc(), gTc), a.a);
+ }
+ function S6d(a, b) {
+ Q6d();
+ var c, d, e, f;
+ if (!b) {
+ return P6d;
+ } else if (b == (Q8d(), N8d) || (b == v8d || b == t8d || b == u8d) && a != s8d) {
+ return new Z6d(a, b);
+ } else {
+ d = BD(b, 677);
+ c = d.pk();
+ if (!c) {
+ a2d(q1d((O6d(), M6d), b));
+ c = d.pk();
+ }
+ f = (!c.i && (c.i = new Lqb()), c.i);
+ e = BD(Wd(irb(f.f, a)), 1942);
+ !e && Rhb(f, a, e = new Z6d(a, b));
+ return e;
+ }
+ }
+ function Tbc(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ i = BD(vNb(a, (wtc(), $sc)), 11);
+ j = l7c(OC(GC(m1, 1), nie, 8, 0, [i.i.n, i.n, i.a])).a;
+ k = a.i.n.b;
+ c = k_b(a.e);
+ for (e = c, f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ RZb(d, i);
+ Fsb(d.a, new f7c(j, k));
+ if (b) {
+ h = BD(vNb(d, (Nyc(), jxc)), 74);
+ if (!h) {
+ h = new s7c();
+ yNb(d, jxc, h);
+ }
+ Dsb(h, new f7c(j, k));
+ }
+ }
+ }
+ function Ubc(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ e = BD(vNb(a, (wtc(), $sc)), 11);
+ j = l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).a;
+ k = a.i.n.b;
+ c = k_b(a.g);
+ for (g = c, h = 0, i = g.length; h < i; ++h) {
+ f = g[h];
+ QZb(f, e);
+ Esb(f.a, new f7c(j, k));
+ if (b) {
+ d = BD(vNb(f, (Nyc(), jxc)), 74);
+ if (!d) {
+ d = new s7c();
+ yNb(f, jxc, d);
+ }
+ Dsb(d, new f7c(j, k));
+ }
+ }
+ }
+ function TFc(a, b) {
+ var c, d, e, f, g, h;
+ a.b = new Rkb();
+ a.d = BD(vNb(b, (wtc(), jtc)), 230);
+ a.e = Dub(a.d);
+ f = new Psb();
+ e = Ou(OC(GC(KQ, 1), cne, 37, 0, [b]));
+ g = 0;
+ while (g < e.c.length) {
+ d = (tCb(g, e.c.length), BD(e.c[g], 37));
+ d.p = g++;
+ c = new fFc(d, a.a, a.b);
+ Gkb(e, c.b);
+ Ekb(a.b, c);
+ c.s && (h = Jsb(f, 0), Vsb(h, c));
+ }
+ a.c = new Tqb();
+ return f;
+ }
+ function HJb(a, b) {
+ var c, d, e, f, g, h;
+ for (g = BD(BD(Qc(a.r, b), 21), 84).Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 111);
+ c = f.c ? ZHb(f.c) : 0;
+ if (c > 0) {
+ if (f.a) {
+ h = f.b.rf().a;
+ if (c > h) {
+ e = (c - h) / 2;
+ f.d.b = e;
+ f.d.c = e;
+ }
+ } else {
+ f.d.c = a.s + c;
+ }
+ } else if (tcd(a.u)) {
+ d = sfd(f.b);
+ d.c < 0 && (f.d.b = -d.c);
+ d.c + d.b > f.b.rf().a && (f.d.c = d.c + d.b - f.b.rf().a);
+ }
+ }
+ }
+ function Eec(a, b) {
+ var c, d, e, f;
+ Odd(b, "Semi-Interactive Crossing Minimization Processor", 1);
+ c = false;
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ f = TAb(VAb(JAb(JAb(new YAb(null, new Kub(d.a, 16)), new Jec()), new Lec()), new Nec()), new Rec());
+ c = c | f.a != null;
+ }
+ c && yNb(a, (wtc(), Rsc), (Bcb(), true));
+ Qdd(b);
+ }
+ function sRc(a, b, c) {
+ var d, e, f, g, h;
+ e = c;
+ !e && (e = new Zdd());
+ Odd(e, "Layout", a.a.c.length);
+ if (Ccb(DD(vNb(b, (JTc(), vTc))))) {
+ Zfb();
+ for (d = 0; d < a.a.c.length; d++) {
+ h = (d < 10 ? "0" : "") + d++;
+ " Slot " + h + ": " + hdb(rb(BD(Ikb(a.a, d), 51)));
+ }
+ }
+ for (g = new olb(a.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 51);
+ f.pf(b, Udd(e, 1));
+ }
+ Qdd(e);
+ }
+ function yMb(a) {
+ var b, c;
+ b = BD(a.a, 19).a;
+ c = BD(a.b, 19).a;
+ if (b >= 0) {
+ if (b == c) {
+ return new vgd(meb(-b - 1), meb(-b - 1));
+ }
+ if (b == -c) {
+ return new vgd(meb(-b), meb(c + 1));
+ }
+ }
+ if ($wnd.Math.abs(b) > $wnd.Math.abs(c)) {
+ if (b < 0) {
+ return new vgd(meb(-b), meb(c));
+ }
+ return new vgd(meb(-b), meb(c + 1));
+ }
+ return new vgd(meb(b + 1), meb(c));
+ }
+ function q5b(a) {
+ var b, c;
+ c = BD(vNb(a, (Nyc(), mxc)), 163);
+ b = BD(vNb(a, (wtc(), Osc)), 303);
+ if (c == (Ctc(), ytc)) {
+ yNb(a, mxc, Btc);
+ yNb(a, Osc, (esc(), dsc));
+ } else if (c == Atc) {
+ yNb(a, mxc, Btc);
+ yNb(a, Osc, (esc(), bsc));
+ } else if (b == (esc(), dsc)) {
+ yNb(a, mxc, ytc);
+ yNb(a, Osc, csc);
+ } else if (b == bsc) {
+ yNb(a, mxc, Atc);
+ yNb(a, Osc, csc);
+ }
+ }
+ function FNc() {
+ FNc = ccb;
+ DNc = new RNc();
+ zNc = e3c(new j3c(), (qUb(), nUb), (S8b(), o8b));
+ CNc = c3c(e3c(new j3c(), nUb, C8b), pUb, B8b);
+ ENc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b);
+ ANc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b);
+ BNc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b);
+ }
+ function hQc() {
+ hQc = ccb;
+ cQc = e3c(c3c(new j3c(), (qUb(), pUb), (S8b(), c8b)), nUb, o8b);
+ gQc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b);
+ dQc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b);
+ fQc = e3c(e3c(new j3c(), nUb, C8b), pUb, B8b);
+ eQc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b);
+ }
+ function GNc(a, b, c, d, e) {
+ var f, g;
+ if ((!OZb(b) && b.c.i.c == b.d.i.c || !T6c(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])), c)) && !OZb(b)) {
+ b.c == e ? St(b.a, 0, new g7c(c)) : Dsb(b.a, new g7c(c));
+ if (d && !Rqb(a.a, c)) {
+ g = BD(vNb(b, (Nyc(), jxc)), 74);
+ if (!g) {
+ g = new s7c();
+ yNb(b, jxc, g);
+ }
+ f = new g7c(c);
+ Gsb(g, f, g.c.b, g.c);
+ Qqb(a.a, f);
+ }
+ }
+ }
+ function Qac(a) {
+ var b, c;
+ for (c = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 17);
+ if (b.c.i.k != (j0b(), f0b)) {
+ throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."));
+ }
+ }
+ }
+ function vjd(a, b, c) {
+ var d, e, f, g, h, i, j;
+ e = aeb(a.Db & 254);
+ if (e == 0) {
+ a.Eb = c;
+ } else {
+ if (e == 1) {
+ h = KC(SI, Uhe, 1, 2, 5, 1);
+ f = zjd(a, b);
+ if (f == 0) {
+ h[0] = c;
+ h[1] = a.Eb;
+ } else {
+ h[0] = a.Eb;
+ h[1] = c;
+ }
+ } else {
+ h = KC(SI, Uhe, 1, e + 1, 5, 1);
+ g = CD(a.Eb);
+ for (d = 2, i = 0, j = 0; d <= 128; d <<= 1) {
+ d == b ? h[j++] = c : (a.Db & d) != 0 && (h[j++] = g[i++]);
+ }
+ }
+ a.Eb = h;
+ }
+ a.Db |= b;
+ }
+ function ENb(a, b, c) {
+ var d, e, f, g;
+ this.b = new Rkb();
+ e = 0;
+ d = 0;
+ for (g = new olb(a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 167);
+ c && rMb(f);
+ Ekb(this.b, f);
+ e += f.o;
+ d += f.p;
+ }
+ if (this.b.c.length > 0) {
+ f = BD(Ikb(this.b, 0), 167);
+ e += f.o;
+ d += f.p;
+ }
+ e *= 2;
+ d *= 2;
+ b > 1 ? e = QD($wnd.Math.ceil(e * b)) : d = QD($wnd.Math.ceil(d / b));
+ this.a = new pNb(e, d);
+ }
+ function Igc(a, b, c, d, e, f) {
+ var g, h, i, j, k, l, m, n, o2, p, q, r;
+ k = d;
+ if (b.j && b.o) {
+ n = BD(Ohb(a.f, b.A), 57);
+ p = n.d.c + n.d.b;
+ --k;
+ } else {
+ p = b.a.c + b.a.b;
+ }
+ l = e;
+ if (c.q && c.o) {
+ n = BD(Ohb(a.f, c.C), 57);
+ j = n.d.c;
+ ++l;
+ } else {
+ j = c.a.c;
+ }
+ q = j - p;
+ i = $wnd.Math.max(2, l - k);
+ h = q / i;
+ o2 = p + h;
+ for (m = k; m < l; ++m) {
+ g = BD(f.Xb(m), 128);
+ r = g.a.b;
+ g.a.c = o2 - r / 2;
+ o2 += h;
+ }
+ }
+ function UHc(a, b, c, d, e, f) {
+ var g, h, i, j, k, l;
+ j = c.c.length;
+ f && (a.c = KC(WD, oje, 25, b.length, 15, 1));
+ for (g = e ? 0 : b.length - 1; e ? g < b.length : g >= 0; g += e ? 1 : -1) {
+ h = b[g];
+ i = d == (Ucd(), zcd) ? e ? V_b(h, d) : Su(V_b(h, d)) : e ? Su(V_b(h, d)) : V_b(h, d);
+ f && (a.c[h.p] = i.gc());
+ for (l = i.Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 11);
+ a.d[k.p] = j++;
+ }
+ Gkb(c, i);
+ }
+ }
+ function aQc(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ f = Edb(ED(a.b.Kc().Pb()));
+ j = Edb(ED(Pq(b.b)));
+ d = Y6c(R6c(a.a), j - c);
+ e = Y6c(R6c(b.a), c - f);
+ k = P6c(d, e);
+ Y6c(k, 1 / (j - f));
+ this.a = k;
+ this.b = new Rkb();
+ h = true;
+ g = a.b.Kc();
+ g.Pb();
+ while (g.Ob()) {
+ i = Edb(ED(g.Pb()));
+ if (h && i - c > Oqe) {
+ this.b.Fc(c);
+ h = false;
+ }
+ this.b.Fc(i);
+ }
+ h && this.b.Fc(c);
+ }
+ function vGb(a) {
+ var b, c, d, e;
+ yGb(a, a.n);
+ if (a.d.c.length > 0) {
+ Blb(a.c);
+ while (GGb(a, BD(mlb(new olb(a.e.a)), 121)) < a.e.a.c.length) {
+ b = AGb(a);
+ e = b.e.e - b.d.e - b.a;
+ b.e.j && (e = -e);
+ for (d = new olb(a.e.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 121);
+ c.j && (c.e += e);
+ }
+ Blb(a.c);
+ }
+ Blb(a.c);
+ DGb(a, BD(mlb(new olb(a.e.a)), 121));
+ rGb(a);
+ }
+ }
+ function rkc(a, b) {
+ var c, d, e, f, g;
+ for (e = BD(Qc(a.a, (Xjc(), Tjc)), 15).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 101);
+ c = BD(Ikb(d.j, 0), 113).d.j;
+ f = new Tkb(d.j);
+ Okb(f, new Xkc());
+ switch (b.g) {
+ case 1:
+ jkc(a, f, c, (Fkc(), Dkc), 1);
+ break;
+ case 0:
+ g = lkc(f);
+ jkc(a, new Jib(f, 0, g), c, (Fkc(), Dkc), 0);
+ jkc(a, new Jib(f, g, f.c.length), c, Dkc, 1);
+ }
+ }
+ }
+ function c2c(a, b) {
+ Y1c();
+ var c, d;
+ c = j4c(n4c(), b.tg());
+ if (c) {
+ d = c.j;
+ if (JD(a, 239)) {
+ return Zod(BD(a, 33)) ? uqb(d, (N5c(), K5c)) || uqb(d, L5c) : uqb(d, (N5c(), K5c));
+ } else if (JD(a, 352)) {
+ return uqb(d, (N5c(), I5c));
+ } else if (JD(a, 186)) {
+ return uqb(d, (N5c(), M5c));
+ } else if (JD(a, 354)) {
+ return uqb(d, (N5c(), J5c));
+ }
+ }
+ return true;
+ }
+ function c3d(a, b, c) {
+ var d, e, f, g, h, i;
+ e = c;
+ f = e.ak();
+ if (T6d(a.e, f)) {
+ if (f.hi()) {
+ d = BD(a.g, 119);
+ for (g = 0; g < a.i; ++g) {
+ h = d[g];
+ if (pb(h, e) && g != b) {
+ throw vbb(new Wdb(kue));
+ }
+ }
+ }
+ } else {
+ i = S6d(a.e.Tg(), f);
+ d = BD(a.g, 119);
+ for (g = 0; g < a.i; ++g) {
+ h = d[g];
+ if (i.rl(h.ak()) && g != b) {
+ throw vbb(new Wdb(Hwe));
+ }
+ }
+ }
+ return BD(Gtd(a, b, c), 72);
+ }
+ function Sy(d, b) {
+ if (b instanceof Object) {
+ try {
+ b.__java$exception = d;
+ if (navigator.userAgent.toLowerCase().indexOf("msie") != -1 && $doc.documentMode < 9) {
+ return;
+ }
+ var c = d;
+ Object.defineProperties(b, { cause: { get: function() {
+ var a = c.Zd();
+ return a && a.Xd();
+ } }, suppressed: { get: function() {
+ return c.Yd();
+ } } });
+ } catch (a) {
+ }
+ }
+ }
+ function lhb(a, b) {
+ var c, d, e, f, g;
+ d = b >> 5;
+ b &= 31;
+ if (d >= a.d) {
+ return a.e < 0 ? (Hgb(), Bgb) : (Hgb(), Ggb);
+ }
+ f = a.d - d;
+ e = KC(WD, oje, 25, f + 1, 15, 1);
+ mhb(e, f, a.a, d, b);
+ if (a.e < 0) {
+ for (c = 0; c < d && a.a[c] == 0; c++)
+ ;
+ if (c < d || b > 0 && a.a[c] << 32 - b != 0) {
+ for (c = 0; c < f && e[c] == -1; c++) {
+ e[c] = 0;
+ }
+ c == f && ++f;
+ ++e[c];
+ }
+ }
+ g = new Vgb(a.e, f, e);
+ Jgb(g);
+ return g;
+ }
+ function UPb(a) {
+ var b, c, d, e;
+ e = mpd(a);
+ c = new kQb(e);
+ d = new mQb(e);
+ b = new Rkb();
+ Gkb(b, (!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d));
+ Gkb(b, (!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e));
+ return BD(GAb(NAb(JAb(new YAb(null, new Kub(b, 16)), c), d), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
+ }
+ function p2d(a, b, c, d) {
+ var e, f, g, h, i;
+ h = (Q6d(), BD(b, 66).Oj());
+ if (T6d(a.e, b)) {
+ if (b.hi() && F2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
+ throw vbb(new Wdb(kue));
+ }
+ } else {
+ i = S6d(a.e.Tg(), b);
+ e = BD(a.g, 119);
+ for (g = 0; g < a.i; ++g) {
+ f = e[g];
+ if (i.rl(f.ak())) {
+ throw vbb(new Wdb(Hwe));
+ }
+ }
+ }
+ vtd(a, I2d(a, b, c), h ? BD(d, 72) : R6d(b, d));
+ }
+ function T6d(a, b) {
+ Q6d();
+ var c, d, e;
+ if (b.$j()) {
+ return true;
+ } else if (b.Zj() == -2) {
+ if (b == (m8d(), k8d) || b == h8d || b == i8d || b == j8d) {
+ return true;
+ } else {
+ e = a.Tg();
+ if (bLd(e, b) >= 0) {
+ return false;
+ } else {
+ c = e1d((O6d(), M6d), e, b);
+ if (!c) {
+ return true;
+ } else {
+ d = c.Zj();
+ return (d > 1 || d == -1) && $1d(q1d(M6d, c)) != 3;
+ }
+ }
+ }
+ } else {
+ return false;
+ }
+ }
+ function R1b(a, b, c, d) {
+ var e, f, g, h, i;
+ h = atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82));
+ i = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82));
+ if (Xod(h) == Xod(i)) {
+ return null;
+ }
+ if (ntd(i, h)) {
+ return null;
+ }
+ g = Mld(b);
+ if (g == c) {
+ return d;
+ } else {
+ f = BD(Ohb(a.a, g), 10);
+ if (f) {
+ e = f.e;
+ if (e) {
+ return e;
+ }
+ }
+ }
+ return null;
+ }
+ function Cac(a, b) {
+ var c;
+ c = BD(vNb(a, (Nyc(), Rwc)), 276);
+ Odd(b, "Label side selection (" + c + ")", 1);
+ switch (c.g) {
+ case 0:
+ Dac(a, (rbd(), nbd));
+ break;
+ case 1:
+ Dac(a, (rbd(), obd));
+ break;
+ case 2:
+ Bac(a, (rbd(), nbd));
+ break;
+ case 3:
+ Bac(a, (rbd(), obd));
+ break;
+ case 4:
+ Eac(a, (rbd(), nbd));
+ break;
+ case 5:
+ Eac(a, (rbd(), obd));
+ }
+ Qdd(b);
+ }
+ function bGc(a, b, c) {
+ var d, e, f, g, h, i;
+ d = RFc(c, a.length);
+ g = a[d];
+ if (g[0].k != (j0b(), e0b)) {
+ return;
+ }
+ f = SFc(c, g.length);
+ i = b.j;
+ for (e = 0; e < i.c.length; e++) {
+ h = (tCb(e, i.c.length), BD(i.c[e], 11));
+ if ((c ? h.j == (Ucd(), zcd) : h.j == (Ucd(), Tcd)) && Ccb(DD(vNb(h, (wtc(), Nsc))))) {
+ Nkb(i, e, BD(vNb(g[f], (wtc(), $sc)), 11));
+ f += c ? 1 : -1;
+ }
+ }
+ }
+ function rQc(a, b) {
+ var c, d, e, f, g;
+ g = new Rkb();
+ c = b;
+ do {
+ f = BD(Ohb(a.b, c), 128);
+ f.B = c.c;
+ f.D = c.d;
+ g.c[g.c.length] = f;
+ c = BD(Ohb(a.k, c), 17);
+ } while (c);
+ d = (tCb(0, g.c.length), BD(g.c[0], 128));
+ d.j = true;
+ d.A = BD(d.d.a.ec().Kc().Pb(), 17).c.i;
+ e = BD(Ikb(g, g.c.length - 1), 128);
+ e.q = true;
+ e.C = BD(e.d.a.ec().Kc().Pb(), 17).d.i;
+ return g;
+ }
+ function $wd(a) {
+ if (a.g == null) {
+ switch (a.p) {
+ case 0:
+ a.g = Swd(a) ? (Bcb(), Acb) : (Bcb(), zcb);
+ break;
+ case 1:
+ a.g = Scb(Twd(a));
+ break;
+ case 2:
+ a.g = bdb(Uwd(a));
+ break;
+ case 3:
+ a.g = Vwd(a);
+ break;
+ case 4:
+ a.g = new Ndb(Wwd(a));
+ break;
+ case 6:
+ a.g = Aeb(Ywd(a));
+ break;
+ case 5:
+ a.g = meb(Xwd(a));
+ break;
+ case 7:
+ a.g = Web(Zwd(a));
+ }
+ }
+ return a.g;
+ }
+ function hxd(a) {
+ if (a.n == null) {
+ switch (a.p) {
+ case 0:
+ a.n = _wd(a) ? (Bcb(), Acb) : (Bcb(), zcb);
+ break;
+ case 1:
+ a.n = Scb(axd(a));
+ break;
+ case 2:
+ a.n = bdb(bxd(a));
+ break;
+ case 3:
+ a.n = cxd(a);
+ break;
+ case 4:
+ a.n = new Ndb(dxd(a));
+ break;
+ case 6:
+ a.n = Aeb(fxd(a));
+ break;
+ case 5:
+ a.n = meb(exd(a));
+ break;
+ case 7:
+ a.n = Web(gxd(a));
+ }
+ }
+ return a.n;
+ }
+ function QDb(a) {
+ var b, c, d, e, f, g, h;
+ for (f = new olb(a.a.a); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 307);
+ d.g = 0;
+ d.i = 0;
+ d.e.a.$b();
+ }
+ for (e = new olb(a.a.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 307);
+ for (c = d.a.a.ec().Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 57);
+ for (h = b.c.Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 57);
+ if (g.a != d) {
+ Qqb(d.e, g);
+ ++g.a.g;
+ ++g.a.i;
+ }
+ }
+ }
+ }
+ }
+ function gOb(a, b) {
+ var c, d, e, f, g, h;
+ h = Axb(a.a, b.b);
+ if (!h) {
+ throw vbb(new Zdb("Invalid hitboxes for scanline overlap calculation."));
+ }
+ g = false;
+ for (f = (d = new Ywb(new cxb(new Gjb(a.a.a).a).b), new Njb(d)); sib(f.a.a); ) {
+ e = (c = Wwb(f.a), BD(c.cd(), 65));
+ if (bOb(b.b, e)) {
+ T$c(a.b.a, b.b, e);
+ g = true;
+ } else {
+ if (g) {
+ break;
+ }
+ }
+ }
+ }
+ function G5b(a) {
+ var b, c, d, e, f;
+ e = BD(vNb(a, (Nyc(), Fxc)), 21);
+ f = BD(vNb(a, Ixc), 21);
+ c = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a);
+ b = new g7c(c);
+ if (e.Hc((tdd(), pdd))) {
+ d = BD(vNb(a, Hxc), 8);
+ if (f.Hc((Idd(), Bdd))) {
+ d.a <= 0 && (d.a = 20);
+ d.b <= 0 && (d.b = 20);
+ }
+ b.a = $wnd.Math.max(c.a, d.a);
+ b.b = $wnd.Math.max(c.b, d.b);
+ }
+ H5b(a, c, b);
+ }
+ function toc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ e = b ? new Coc() : new Eoc();
+ f = false;
+ do {
+ f = false;
+ j = b ? Su(a.b) : a.b;
+ for (i = j.Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 29);
+ m = Mu(h.a);
+ b || new ov(m);
+ for (l = new olb(m); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 10);
+ if (e.Mb(k)) {
+ d = k;
+ c = BD(vNb(k, (wtc(), usc)), 305);
+ g = b ? c.b : c.k;
+ f = roc(d, g, b, false);
+ }
+ }
+ }
+ } while (f);
+ }
+ function WCc(a, b, c) {
+ var d, e, f, g, h;
+ Odd(c, "Longest path layering", 1);
+ a.a = b;
+ h = a.a.a;
+ a.b = KC(WD, oje, 25, h.c.length, 15, 1);
+ d = 0;
+ for (g = new olb(h); g.a < g.c.c.length; ) {
+ e = BD(mlb(g), 10);
+ e.p = d;
+ a.b[d] = -1;
+ ++d;
+ }
+ for (f = new olb(h); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ YCc(a, e);
+ }
+ h.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.a = null;
+ a.b = null;
+ Qdd(c);
+ }
+ function QVb(a, b) {
+ var c, d, e;
+ b.a ? (Axb(a.b, b.b), a.a[b.b.i] = BD(Exb(a.b, b.b), 81), c = BD(Dxb(a.b, b.b), 81), !!c && (a.a[c.i] = b.b), void 0) : (d = BD(Exb(a.b, b.b), 81), !!d && d == a.a[b.b.i] && !!d.d && d.d != b.b.d && d.f.Fc(b.b), e = BD(Dxb(a.b, b.b), 81), !!e && a.a[e.i] == b.b && !!e.d && e.d != b.b.d && b.b.f.Fc(e), Fxb(a.b, b.b), void 0);
+ }
+ function zbc(a, b) {
+ var c, d, e, f, g, h;
+ f = a.d;
+ h = Edb(ED(vNb(a, (Nyc(), Zwc))));
+ if (h < 0) {
+ h = 0;
+ yNb(a, Zwc, h);
+ }
+ b.o.b = h;
+ g = $wnd.Math.floor(h / 2);
+ d = new H0b();
+ G0b(d, (Ucd(), Tcd));
+ F0b(d, b);
+ d.n.b = g;
+ e = new H0b();
+ G0b(e, zcd);
+ F0b(e, b);
+ e.n.b = g;
+ RZb(a, d);
+ c = new UZb();
+ tNb(c, a);
+ yNb(c, jxc, null);
+ QZb(c, e);
+ RZb(c, f);
+ ybc(b, a, c);
+ wbc(a, c);
+ return c;
+ }
+ function uNc(a) {
+ var b, c;
+ c = BD(vNb(a, (wtc(), Ksc)), 21);
+ b = new j3c();
+ if (c.Hc((Orc(), Irc))) {
+ d3c(b, oNc);
+ d3c(b, qNc);
+ }
+ if (c.Hc(Krc) || Ccb(DD(vNb(a, (Nyc(), $wc))))) {
+ d3c(b, qNc);
+ c.Hc(Lrc) && d3c(b, rNc);
+ }
+ c.Hc(Hrc) && d3c(b, nNc);
+ c.Hc(Nrc) && d3c(b, sNc);
+ c.Hc(Jrc) && d3c(b, pNc);
+ c.Hc(Erc) && d3c(b, lNc);
+ c.Hc(Grc) && d3c(b, mNc);
+ return b;
+ }
+ function Ihb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ d = a.d;
+ f = b.d;
+ h = d + f;
+ i = a.e != b.e ? -1 : 1;
+ if (h == 2) {
+ k = Ibb(xbb(a.a[0], Yje), xbb(b.a[0], Yje));
+ m = Tbb(k);
+ l = Tbb(Pbb(k, 32));
+ return l == 0 ? new Ugb(i, m) : new Vgb(i, 2, OC(GC(WD, 1), oje, 25, 15, [m, l]));
+ }
+ c = a.a;
+ e = b.a;
+ g = KC(WD, oje, 25, h, 15, 1);
+ Fhb(c, d, e, f, g);
+ j = new Vgb(i, h, g);
+ Jgb(j);
+ return j;
+ }
+ function Gwb(a, b, c, d) {
+ var e, f;
+ if (!b) {
+ return c;
+ } else {
+ e = a.a.ue(c.d, b.d);
+ if (e == 0) {
+ d.d = ijb(b, c.e);
+ d.b = true;
+ return b;
+ }
+ f = e < 0 ? 0 : 1;
+ b.a[f] = Gwb(a, b.a[f], c, d);
+ if (Hwb(b.a[f])) {
+ if (Hwb(b.a[1 - f])) {
+ b.b = true;
+ b.a[0].b = false;
+ b.a[1].b = false;
+ } else {
+ Hwb(b.a[f].a[f]) ? b = Owb(b, 1 - f) : Hwb(b.a[f].a[1 - f]) && (b = Nwb(b, 1 - f));
+ }
+ }
+ }
+ return b;
+ }
+ function wHb(a, b, c) {
+ var d, e, f, g;
+ e = a.i;
+ d = a.n;
+ vHb(a, (gHb(), dHb), e.c + d.b, c);
+ vHb(a, fHb, e.c + e.b - d.c - c[2], c);
+ g = e.b - d.b - d.c;
+ if (c[0] > 0) {
+ c[0] += a.d;
+ g -= c[0];
+ }
+ if (c[2] > 0) {
+ c[2] += a.d;
+ g -= c[2];
+ }
+ f = $wnd.Math.max(0, g);
+ c[1] = $wnd.Math.max(c[1], g);
+ vHb(a, eHb, e.c + d.b + c[0] - (c[1] - g) / 2, c);
+ if (b == eHb) {
+ a.c.b = f;
+ a.c.c = e.c + d.b + (f - g) / 2;
+ }
+ }
+ function AYb() {
+ this.c = KC(UD, Vje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1);
+ this.b = KC(UD, Vje, 25, OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]).length, 15, 1);
+ this.a = KC(UD, Vje, 25, OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]).length, 15, 1);
+ zlb(this.c, Pje);
+ zlb(this.b, Qje);
+ zlb(this.a, Qje);
+ }
+ function Ufe(a, b, c) {
+ var d, e, f, g;
+ if (b <= c) {
+ e = b;
+ f = c;
+ } else {
+ e = c;
+ f = b;
+ }
+ d = 0;
+ if (a.b == null) {
+ a.b = KC(WD, oje, 25, 2, 15, 1);
+ a.b[0] = e;
+ a.b[1] = f;
+ a.c = true;
+ } else {
+ d = a.b.length;
+ if (a.b[d - 1] + 1 == e) {
+ a.b[d - 1] = f;
+ return;
+ }
+ g = KC(WD, oje, 25, d + 2, 15, 1);
+ $fb(a.b, 0, g, 0, d);
+ a.b = g;
+ a.b[d - 1] >= e && (a.c = false, a.a = false);
+ a.b[d++] = e;
+ a.b[d] = f;
+ a.c || Yfe(a);
+ }
+ }
+ function inc(a, b, c) {
+ var d, e, f, g, h, i, j;
+ j = b.d;
+ a.a = new Skb(j.c.length);
+ a.c = new Lqb();
+ for (h = new olb(j); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 101);
+ f = new uOc(null);
+ Ekb(a.a, f);
+ Rhb(a.c, g, f);
+ }
+ a.b = new Lqb();
+ gnc(a, b);
+ for (d = 0; d < j.c.length - 1; d++) {
+ i = BD(Ikb(b.d, d), 101);
+ for (e = d + 1; e < j.c.length; e++) {
+ jnc(a, i, BD(Ikb(b.d, e), 101), c);
+ }
+ }
+ }
+ function ySc(a, b, c) {
+ var d, e, f, g, h, i;
+ if (!Qq(b)) {
+ i = Udd(c, (JD(b, 14) ? BD(b, 14).gc() : sr(b.Kc())) / a.a | 0);
+ Odd(i, Xqe, 1);
+ h = new BSc();
+ g = 0;
+ for (f = b.Kc(); f.Ob(); ) {
+ d = BD(f.Pb(), 86);
+ h = pl(OC(GC(KI, 1), Uhe, 20, 0, [h, new ZRc(d)]));
+ g < d.f.b && (g = d.f.b);
+ }
+ for (e = b.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 86);
+ yNb(d, (mTc(), bTc), g);
+ }
+ Qdd(i);
+ ySc(a, h, c);
+ }
+ }
+ function bJc(a, b) {
+ var c, d, e, f, g, h, i;
+ c = Qje;
+ h = (j0b(), h0b);
+ for (e = new olb(b.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 10);
+ f = d.k;
+ if (f != h0b) {
+ g = ED(vNb(d, (wtc(), atc)));
+ if (g == null) {
+ c = $wnd.Math.max(c, 0);
+ d.n.b = c + iBc(a.a, f, h);
+ } else {
+ d.n.b = (uCb(g), g);
+ }
+ }
+ i = iBc(a.a, f, h);
+ d.n.b < c + i + d.d.d && (d.n.b = c + i + d.d.d);
+ c = d.n.b + d.o.b + d.d.a;
+ h = f;
+ }
+ }
+ function uQb(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ f = itd(b, false, false);
+ j = ofd(f);
+ l = Edb(ED(hkd(b, (CPb(), vPb))));
+ e = sQb(j, l + a.a);
+ k = new XOb(e);
+ tNb(k, b);
+ Rhb(a.b, b, k);
+ c.c[c.c.length] = k;
+ i = (!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n);
+ for (h = new Fyd(i); h.e != h.i.gc(); ) {
+ g = BD(Dyd(h), 137);
+ d = wQb(a, g, true, 0, 0);
+ c.c[c.c.length] = d;
+ }
+ return k;
+ }
+ function JVc(a, b, c, d, e) {
+ var f, g, h, i, j, k;
+ !!a.d && a.d.lg(e);
+ f = BD(e.Xb(0), 33);
+ if (HVc(a, c, f, false)) {
+ return true;
+ }
+ g = BD(e.Xb(e.gc() - 1), 33);
+ if (HVc(a, d, g, true)) {
+ return true;
+ }
+ if (CVc(a, e)) {
+ return true;
+ }
+ for (k = e.Kc(); k.Ob(); ) {
+ j = BD(k.Pb(), 33);
+ for (i = b.Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 33);
+ if (BVc(a, j, h)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function qid(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ m = b.c.length;
+ l = (j = a.Yg(c), BD(j >= 0 ? a._g(j, false, true) : sid(a, c, false), 58));
+ n:
+ for (f = l.Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 56);
+ for (k = 0; k < m; ++k) {
+ g = (tCb(k, b.c.length), BD(b.c[k], 72));
+ i = g.dd();
+ h = g.ak();
+ d = e.bh(h, false);
+ if (i == null ? d != null : !pb(i, d)) {
+ continue n;
+ }
+ }
+ return e;
+ }
+ return null;
+ }
+ function V6b(a, b, c, d) {
+ var e, f, g, h;
+ e = BD(Y_b(b, (Ucd(), Tcd)).Kc().Pb(), 11);
+ f = BD(Y_b(b, zcd).Kc().Pb(), 11);
+ for (h = new olb(a.j); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 11);
+ while (g.e.c.length != 0) {
+ RZb(BD(Ikb(g.e, 0), 17), e);
+ }
+ while (g.g.c.length != 0) {
+ QZb(BD(Ikb(g.g, 0), 17), f);
+ }
+ }
+ c || yNb(b, (wtc(), Vsc), null);
+ d || yNb(b, (wtc(), Wsc), null);
+ }
+ function itd(a, b, c) {
+ var d, e;
+ if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) {
+ return etd(a);
+ } else {
+ d = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202);
+ if (b) {
+ Uxd((!d.a && (d.a = new xMd(y2, d, 5)), d.a));
+ omd(d, 0);
+ pmd(d, 0);
+ hmd(d, 0);
+ imd(d, 0);
+ }
+ if (c) {
+ e = (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a);
+ while (e.i > 1) {
+ Xxd(e, e.i - 1);
+ }
+ }
+ return d;
+ }
+ }
+ function Z2b(a, b) {
+ var c, d, e, f, g, h, i;
+ Odd(b, "Comment post-processing", 1);
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ d = new Rkb();
+ for (h = new olb(e.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ i = BD(vNb(g, (wtc(), vtc)), 15);
+ c = BD(vNb(g, tsc), 15);
+ if (!!i || !!c) {
+ $2b(g, i, c);
+ !!i && Gkb(d, i);
+ !!c && Gkb(d, c);
+ }
+ }
+ Gkb(e.a, d);
+ }
+ Qdd(b);
+ }
+ function Eac(a, b) {
+ var c, d, e, f, g, h, i;
+ c = new jkb();
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ i = true;
+ d = 0;
+ for (h = new olb(e.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ switch (g.k.g) {
+ case 4:
+ ++d;
+ case 1:
+ Xjb(c, g);
+ break;
+ case 0:
+ Gac(g, b);
+ default:
+ c.b == c.c || Fac(c, d, i, false, b);
+ i = false;
+ d = 0;
+ }
+ }
+ c.b == c.c || Fac(c, d, i, true, b);
+ }
+ }
+ function Ebc(a, b) {
+ var c, d, e, f, g, h, i;
+ e = new Rkb();
+ for (c = 0; c <= a.i; c++) {
+ d = new H1b(b);
+ d.p = a.i - c;
+ e.c[e.c.length] = d;
+ }
+ for (h = new olb(a.o); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ $_b(g, BD(Ikb(e, a.i - a.f[g.p]), 29));
+ }
+ f = new olb(e);
+ while (f.a < f.c.c.length) {
+ i = BD(mlb(f), 29);
+ i.a.c.length == 0 && nlb(f);
+ }
+ b.b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Gkb(b.b, e);
+ }
+ function KHc(a, b) {
+ var c, d, e, f, g, h;
+ c = 0;
+ for (h = new olb(b); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 11);
+ AHc(a.b, a.d[g.p]);
+ for (e = new b1b(g.b); llb(e.a) || llb(e.b); ) {
+ d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
+ f = aIc(a, g == d.c ? d.d : d.c);
+ if (f > a.d[g.p]) {
+ c += zHc(a.b, f);
+ Wjb(a.a, meb(f));
+ }
+ }
+ while (!akb(a.a)) {
+ xHc(a.b, BD(fkb(a.a), 19).a);
+ }
+ }
+ return c;
+ }
+ function o2c(a, b, c) {
+ var d, e, f, g;
+ f = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i;
+ for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) {
+ d = BD(Dyd(e), 33);
+ (!d.a && (d.a = new cUd(E2, d, 10, 11)), d.a).i == 0 || (f += o2c(a, d, false));
+ }
+ if (c) {
+ g = Xod(b);
+ while (g) {
+ f += (!g.a && (g.a = new cUd(E2, g, 10, 11)), g.a).i;
+ g = Xod(g);
+ }
+ }
+ return f;
+ }
+ function Xxd(a, b) {
+ var c, d, e, f;
+ if (a.ej()) {
+ d = null;
+ e = a.fj();
+ a.ij() && (d = a.kj(a.pi(b), null));
+ c = a.Zi(4, f = tud(a, b), null, b, e);
+ if (a.bj() && f != null) {
+ d = a.dj(f, d);
+ if (!d) {
+ a.$i(c);
+ } else {
+ d.Ei(c);
+ d.Fi();
+ }
+ } else {
+ if (!d) {
+ a.$i(c);
+ } else {
+ d.Ei(c);
+ d.Fi();
+ }
+ }
+ return f;
+ } else {
+ f = tud(a, b);
+ if (a.bj() && f != null) {
+ d = a.dj(f, null);
+ !!d && d.Fi();
+ }
+ return f;
+ }
+ }
+ function UKb(a) {
+ var b, c, d, e, f, g, h, i, j, k;
+ j = a.a;
+ b = new Tqb();
+ i = 0;
+ for (d = new olb(a.d); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 222);
+ k = 0;
+ ktb(c.b, new XKb());
+ for (g = Jsb(c.b, 0); g.b != g.d.c; ) {
+ f = BD(Xsb(g), 222);
+ if (b.a._b(f)) {
+ e = c.c;
+ h = f.c;
+ k < h.d + h.a + j && k + e.a + j > h.d && (k = h.d + h.a + j);
+ }
+ }
+ c.c.d = k;
+ b.a.zc(c, b);
+ i = $wnd.Math.max(i, c.c.d + c.c.a);
+ }
+ return i;
+ }
+ function Orc() {
+ Orc = ccb;
+ Frc = new Prc("COMMENTS", 0);
+ Hrc = new Prc("EXTERNAL_PORTS", 1);
+ Irc = new Prc("HYPEREDGES", 2);
+ Jrc = new Prc("HYPERNODES", 3);
+ Krc = new Prc("NON_FREE_PORTS", 4);
+ Lrc = new Prc("NORTH_SOUTH_PORTS", 5);
+ Nrc = new Prc(Wne, 6);
+ Erc = new Prc("CENTER_LABELS", 7);
+ Grc = new Prc("END_LABELS", 8);
+ Mrc = new Prc("PARTITIONS", 9);
+ }
+ function gVc(a) {
+ var b, c, d, e, f;
+ e = new Rkb();
+ b = new Vqb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a));
+ for (d = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 79);
+ if (!JD(qud((!c.b && (c.b = new y5d(z2, c, 4, 7)), c.b), 0), 186)) {
+ f = atd(BD(qud((!c.c && (c.c = new y5d(z2, c, 5, 8)), c.c), 0), 82));
+ b.a._b(f) || (e.c[e.c.length] = f, true);
+ }
+ }
+ return e;
+ }
+ function fVc(a) {
+ var b, c, d, e, f, g;
+ f = new Tqb();
+ b = new Vqb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a));
+ for (e = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 79);
+ if (!JD(qud((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), 0), 186)) {
+ g = atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82));
+ b.a._b(g) || (c = f.a.zc(g, f), c == null);
+ }
+ }
+ return f;
+ }
+ function zA(a, b, c, d, e) {
+ if (d < 0) {
+ d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje]), b);
+ d < 0 && (d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), b));
+ if (d < 0) {
+ return false;
+ }
+ c.k = d;
+ return true;
+ } else if (d > 0) {
+ c.k = d - 1;
+ return true;
+ }
+ return false;
+ }
+ function BA(a, b, c, d, e) {
+ if (d < 0) {
+ d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje]), b);
+ d < 0 && (d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), b));
+ if (d < 0) {
+ return false;
+ }
+ c.k = d;
+ return true;
+ } else if (d > 0) {
+ c.k = d - 1;
+ return true;
+ }
+ return false;
+ }
+ function DA(a, b, c, d, e, f) {
+ var g, h, i, j;
+ h = 32;
+ if (d < 0) {
+ if (b[0] >= a.length) {
+ return false;
+ }
+ h = bfb(a, b[0]);
+ if (h != 43 && h != 45) {
+ return false;
+ }
+ ++b[0];
+ d = rA(a, b);
+ if (d < 0) {
+ return false;
+ }
+ h == 45 && (d = -d);
+ }
+ if (h == 32 && b[0] - c == 2 && e.b == 2) {
+ i = new eB();
+ j = i.q.getFullYear() - nje + nje - 80;
+ g = j % 100;
+ f.a = d == g;
+ d += (j / 100 | 0) * 100 + (d < g ? 100 : 0);
+ }
+ f.p = d;
+ return true;
+ }
+ function L1b(a, b) {
+ var c, d, e, f, g;
+ if (!Xod(a)) {
+ return;
+ }
+ g = BD(vNb(b, (Nyc(), Fxc)), 174);
+ PD(hkd(a, Vxc)) === PD((dcd(), ccd)) && jkd(a, Vxc, bcd);
+ d = (Pgd(), new bhd(Xod(a)));
+ f = new hhd(!Xod(a) ? null : new bhd(Xod(a)), a);
+ e = PGb(d, f, false, true);
+ rqb(g, (tdd(), pdd));
+ c = BD(vNb(b, Hxc), 8);
+ c.a = $wnd.Math.max(e.a, c.a);
+ c.b = $wnd.Math.max(e.b, c.b);
+ }
+ function Pac(a, b, c) {
+ var d, e, f, g, h, i;
+ for (g = BD(vNb(a, (wtc(), Lsc)), 15).Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 10);
+ switch (BD(vNb(f, (Nyc(), mxc)), 163).g) {
+ case 2:
+ $_b(f, b);
+ break;
+ case 4:
+ $_b(f, c);
+ }
+ for (e = new Sr(ur(O_b(f).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 17);
+ if (!!d.c && !!d.d) {
+ continue;
+ }
+ h = !d.d;
+ i = BD(vNb(d, ctc), 11);
+ h ? RZb(d, i) : QZb(d, i);
+ }
+ }
+ }
+ function Alc() {
+ Alc = ccb;
+ tlc = new Blc(xle, 0, (Ucd(), Acd), Acd);
+ wlc = new Blc(zle, 1, Rcd, Rcd);
+ slc = new Blc(yle, 2, zcd, zcd);
+ zlc = new Blc(Ale, 3, Tcd, Tcd);
+ vlc = new Blc("NORTH_WEST_CORNER", 4, Tcd, Acd);
+ ulc = new Blc("NORTH_EAST_CORNER", 5, Acd, zcd);
+ ylc = new Blc("SOUTH_WEST_CORNER", 6, Rcd, Tcd);
+ xlc = new Blc("SOUTH_EAST_CORNER", 7, zcd, Rcd);
+ }
+ function i6c() {
+ i6c = ccb;
+ h6c = OC(GC(XD, 1), Sje, 25, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368e3, { l: 3506176, m: 794077, h: 1 }, { l: 884736, m: 916411, h: 20 }, { l: 3342336, m: 3912489, h: 363 }, { l: 589824, m: 3034138, h: 6914 }, { l: 3407872, m: 1962506, h: 138294 }]);
+ $wnd.Math.pow(2, -65);
+ }
+ function Pcc(a, b) {
+ var c, d, e, f, g;
+ if (a.c.length == 0) {
+ return new vgd(meb(0), meb(0));
+ }
+ c = (tCb(0, a.c.length), BD(a.c[0], 11)).j;
+ g = 0;
+ f = b.g;
+ d = b.g + 1;
+ while (g < a.c.length - 1 && c.g < f) {
+ ++g;
+ c = (tCb(g, a.c.length), BD(a.c[g], 11)).j;
+ }
+ e = g;
+ while (e < a.c.length - 1 && c.g < d) {
+ ++e;
+ c = (tCb(g, a.c.length), BD(a.c[g], 11)).j;
+ }
+ return new vgd(meb(g), meb(e));
+ }
+ function R9b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ f = b.c.length;
+ g = (tCb(c, b.c.length), BD(b.c[c], 286));
+ h = g.a.o.a;
+ l = g.c;
+ m = 0;
+ for (j = g.c; j <= g.f; j++) {
+ if (h <= a.a[j]) {
+ return j;
+ }
+ k = a.a[j];
+ i = null;
+ for (e = c + 1; e < f; e++) {
+ d = (tCb(e, b.c.length), BD(b.c[e], 286));
+ d.c <= j && d.f >= j && (i = d);
+ }
+ !!i && (k = $wnd.Math.max(k, i.a.o.a));
+ if (k > m) {
+ l = j;
+ m = k;
+ }
+ }
+ return l;
+ }
+ function ode(a, b, c) {
+ var d, e, f;
+ a.e = c;
+ a.d = 0;
+ a.b = 0;
+ a.f = 1;
+ a.i = b;
+ (a.e & 16) == 16 && (a.i = Xee(a.i));
+ a.j = a.i.length;
+ nde(a);
+ f = rde(a);
+ if (a.d != a.j)
+ throw vbb(new mde(tvd((h0d(), sue))));
+ if (a.g) {
+ for (d = 0; d < a.g.a.c.length; d++) {
+ e = BD(Uvb(a.g, d), 584);
+ if (a.f <= e.a)
+ throw vbb(new mde(tvd((h0d(), tue))));
+ }
+ a.g.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ return f;
+ }
+ function _Pd(a, b) {
+ var c, d, e;
+ if (b == null) {
+ for (d = (!a.a && (a.a = new cUd(g5, a, 9, 5)), new Fyd(a.a)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 678);
+ e = c.c;
+ if ((e == null ? c.zb : e) == null) {
+ return c;
+ }
+ }
+ } else {
+ for (d = (!a.a && (a.a = new cUd(g5, a, 9, 5)), new Fyd(a.a)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 678);
+ if (dfb(b, (e = c.c, e == null ? c.zb : e))) {
+ return c;
+ }
+ }
+ }
+ return null;
+ }
+ function KIb(a, b) {
+ var c;
+ c = null;
+ switch (b.g) {
+ case 1:
+ a.e.Xe((Y9c(), o9c)) && (c = BD(a.e.We(o9c), 249));
+ break;
+ case 3:
+ a.e.Xe((Y9c(), p9c)) && (c = BD(a.e.We(p9c), 249));
+ break;
+ case 2:
+ a.e.Xe((Y9c(), n9c)) && (c = BD(a.e.We(n9c), 249));
+ break;
+ case 4:
+ a.e.Xe((Y9c(), q9c)) && (c = BD(a.e.We(q9c), 249));
+ }
+ !c && (c = BD(a.e.We((Y9c(), l9c)), 249));
+ return c;
+ }
+ function OCc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ b.p = 1;
+ f = b.c;
+ for (l = W_b(b, (KAc(), IAc)).Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 11);
+ for (e = new olb(k.g); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ j = d.d.i;
+ if (b != j) {
+ g = j.c;
+ if (g.p <= f.p) {
+ h = f.p + 1;
+ if (h == c.b.c.length) {
+ i = new H1b(c);
+ i.p = h;
+ Ekb(c.b, i);
+ $_b(j, i);
+ } else {
+ i = BD(Ikb(c.b, h), 29);
+ $_b(j, i);
+ }
+ OCc(a, j, c);
+ }
+ }
+ }
+ }
+ }
+ function ZXc(a, b, c) {
+ var d, e, f, g, h, i;
+ e = c;
+ f = 0;
+ for (h = new olb(b); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 33);
+ jkd(g, (ZWc(), SWc), meb(e++));
+ i = gVc(g);
+ d = $wnd.Math.atan2(g.j + g.f / 2, g.i + g.g / 2);
+ d += d < 0 ? dre : 0;
+ d < 0.7853981633974483 || d > vre ? Okb(i, a.b) : d <= vre && d > wre ? Okb(i, a.d) : d <= wre && d > xre ? Okb(i, a.c) : d <= xre && Okb(i, a.a);
+ f = ZXc(a, i, f);
+ }
+ return e;
+ }
+ function Hgb() {
+ Hgb = ccb;
+ var a;
+ Cgb = new Ugb(1, 1);
+ Egb = new Ugb(1, 10);
+ Ggb = new Ugb(0, 0);
+ Bgb = new Ugb(-1, 1);
+ Dgb = OC(GC(cJ, 1), nie, 91, 0, [Ggb, Cgb, new Ugb(1, 2), new Ugb(1, 3), new Ugb(1, 4), new Ugb(1, 5), new Ugb(1, 6), new Ugb(1, 7), new Ugb(1, 8), new Ugb(1, 9), Egb]);
+ Fgb = KC(cJ, nie, 91, 32, 0, 1);
+ for (a = 0; a < Fgb.length; a++) {
+ Fgb[a] = ghb(Nbb(1, a));
+ }
+ }
+ function B9b(a, b, c, d, e, f) {
+ var g, h, i, j;
+ h = !WAb(JAb(a.Oc(), new Xxb(new F9b()))).sd((EAb(), DAb));
+ g = a;
+ f == (ead(), dad) && (g = JD(g, 152) ? km(BD(g, 152)) : JD(g, 131) ? BD(g, 131).a : JD(g, 54) ? new ov(g) : new dv(g));
+ for (j = g.Kc(); j.Ob(); ) {
+ i = BD(j.Pb(), 70);
+ i.n.a = b.a;
+ h ? i.n.b = b.b + (d.b - i.o.b) / 2 : e ? i.n.b = b.b : i.n.b = b.b + d.b - i.o.b;
+ b.a += i.o.a + c;
+ }
+ }
+ function UOc(a, b, c, d) {
+ var e, f, g, h, i, j;
+ e = (d.c + d.a) / 2;
+ Osb(b.j);
+ Dsb(b.j, e);
+ Osb(c.e);
+ Dsb(c.e, e);
+ j = new aPc();
+ for (h = new olb(a.f); h.a < h.c.c.length; ) {
+ f = BD(mlb(h), 129);
+ i = f.a;
+ WOc(j, b, i);
+ WOc(j, c, i);
+ }
+ for (g = new olb(a.k); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 129);
+ i = f.b;
+ WOc(j, b, i);
+ WOc(j, c, i);
+ }
+ j.b += 2;
+ j.a += POc(b, a.q);
+ j.a += POc(a.q, c);
+ return j;
+ }
+ function FSc(a, b, c) {
+ var d, e, f, g, h;
+ if (!Qq(b)) {
+ h = Udd(c, (JD(b, 14) ? BD(b, 14).gc() : sr(b.Kc())) / a.a | 0);
+ Odd(h, Xqe, 1);
+ g = new ISc();
+ f = null;
+ for (e = b.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 86);
+ g = pl(OC(GC(KI, 1), Uhe, 20, 0, [g, new ZRc(d)]));
+ if (f) {
+ yNb(f, (mTc(), hTc), d);
+ yNb(d, _Sc, f);
+ if (VRc(d) == VRc(f)) {
+ yNb(f, iTc, d);
+ yNb(d, aTc, f);
+ }
+ }
+ f = d;
+ }
+ Qdd(h);
+ FSc(a, g, c);
+ }
+ }
+ function VHb(a) {
+ var b, c, d, e, f, g, h;
+ c = a.i;
+ b = a.n;
+ h = c.d;
+ a.f == (EIb(), CIb) ? h += (c.a - a.e.b) / 2 : a.f == BIb && (h += c.a - a.e.b);
+ for (e = new olb(a.d); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 181);
+ g = d.rf();
+ f = new d7c();
+ f.b = h;
+ h += g.b + a.a;
+ switch (a.b.g) {
+ case 0:
+ f.a = c.c + b.b;
+ break;
+ case 1:
+ f.a = c.c + b.b + (c.b - g.a) / 2;
+ break;
+ case 2:
+ f.a = c.c + c.b - b.c - g.a;
+ }
+ d.tf(f);
+ }
+ }
+ function XHb(a) {
+ var b, c, d, e, f, g, h;
+ c = a.i;
+ b = a.n;
+ h = c.c;
+ a.b == (NHb(), KHb) ? h += (c.b - a.e.a) / 2 : a.b == MHb && (h += c.b - a.e.a);
+ for (e = new olb(a.d); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 181);
+ g = d.rf();
+ f = new d7c();
+ f.a = h;
+ h += g.a + a.a;
+ switch (a.f.g) {
+ case 0:
+ f.b = c.d + b.d;
+ break;
+ case 1:
+ f.b = c.d + b.d + (c.a - g.b) / 2;
+ break;
+ case 2:
+ f.b = c.d + c.a - b.a - g.b;
+ }
+ d.tf(f);
+ }
+ }
+ function D4b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2;
+ k = c.a.c;
+ g = c.a.c + c.a.b;
+ f = BD(Ohb(c.c, b), 459);
+ n = f.f;
+ o2 = f.a;
+ i = new f7c(k, n);
+ l = new f7c(g, o2);
+ e = k;
+ c.p || (e += a.c);
+ e += c.F + c.v * a.b;
+ j = new f7c(e, n);
+ m = new f7c(e, o2);
+ n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [i, j]));
+ h = c.d.a.gc() > 1;
+ if (h) {
+ d = new f7c(e, c.b);
+ Dsb(b.a, d);
+ }
+ n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [m, l]));
+ }
+ function jdd(a) {
+ r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Rse), "ELK Randomizer"), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new mdd())));
+ p4c(a, Rse, ame, fdd);
+ p4c(a, Rse, wme, 15);
+ p4c(a, Rse, yme, meb(0));
+ p4c(a, Rse, _le, tme);
+ }
+ function hde() {
+ hde = ccb;
+ var a, b, c, d, e, f;
+ fde = KC(SD, wte, 25, 255, 15, 1);
+ gde = KC(TD, $ie, 25, 16, 15, 1);
+ for (b = 0; b < 255; b++) {
+ fde[b] = -1;
+ }
+ for (c = 57; c >= 48; c--) {
+ fde[c] = c - 48 << 24 >> 24;
+ }
+ for (d = 70; d >= 65; d--) {
+ fde[d] = d - 65 + 10 << 24 >> 24;
+ }
+ for (e = 102; e >= 97; e--) {
+ fde[e] = e - 97 + 10 << 24 >> 24;
+ }
+ for (f = 0; f < 10; f++)
+ gde[f] = 48 + f & aje;
+ for (a = 10; a <= 15; a++)
+ gde[a] = 65 + a - 10 & aje;
+ }
+ function BVc(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ h = b.i - a.g / 2;
+ i = c.i - a.g / 2;
+ j = b.j - a.g / 2;
+ k = c.j - a.g / 2;
+ f = b.g + a.g / 2;
+ g = c.g + a.g / 2;
+ d = b.f + a.g / 2;
+ e = c.f + a.g / 2;
+ if (h < i + g && i < h && j < k + e && k < j) {
+ return true;
+ } else if (i < h + f && h < i && k < j + d && j < k) {
+ return true;
+ } else if (h < i + g && i < h && j < k && k < j + d) {
+ return true;
+ } else if (i < h + f && h < i && j < k + e && k < j) {
+ return true;
+ }
+ return false;
+ }
+ function NTb(a) {
+ var b, c, d, e, f;
+ e = BD(vNb(a, (Nyc(), Fxc)), 21);
+ f = BD(vNb(a, Ixc), 21);
+ c = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a);
+ b = new g7c(c);
+ if (e.Hc((tdd(), pdd))) {
+ d = BD(vNb(a, Hxc), 8);
+ if (f.Hc((Idd(), Bdd))) {
+ d.a <= 0 && (d.a = 20);
+ d.b <= 0 && (d.b = 20);
+ }
+ b.a = $wnd.Math.max(c.a, d.a);
+ b.b = $wnd.Math.max(c.b, d.b);
+ }
+ Ccb(DD(vNb(a, Gxc))) || OTb(a, c, b);
+ }
+ function NJc(a, b) {
+ var c, d, e, f;
+ for (f = V_b(b, (Ucd(), Rcd)).Kc(); f.Ob(); ) {
+ d = BD(f.Pb(), 11);
+ c = BD(vNb(d, (wtc(), gtc)), 10);
+ !!c && AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0.1), a.i[b.p].d), a.i[c.p].a));
+ }
+ for (e = V_b(b, Acd).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 11);
+ c = BD(vNb(d, (wtc(), gtc)), 10);
+ !!c && AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0.1), a.i[c.p].d), a.i[b.p].a));
+ }
+ }
+ function QKd(a) {
+ var b, c, d, e, f, g;
+ if (!a.c) {
+ g = new wNd();
+ b = KKd;
+ f = b.a.zc(a, b);
+ if (f == null) {
+ for (d = new Fyd(VKd(a)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 87);
+ e = KQd(c);
+ JD(e, 88) && ytd(g, QKd(BD(e, 26)));
+ wtd(g, c);
+ }
+ b.a.Bc(a) != null;
+ b.a.gc() == 0 && void 0;
+ }
+ tNd(g);
+ vud(g);
+ a.c = new nNd((BD(qud(ZKd((NFd(), MFd).o), 15), 18), g.i), g.g);
+ $Kd(a).b &= -33;
+ }
+ return a.c;
+ }
+ function eee(a) {
+ var b;
+ if (a.c != 10)
+ throw vbb(new mde(tvd((h0d(), uue))));
+ b = a.a;
+ switch (b) {
+ case 110:
+ b = 10;
+ break;
+ case 114:
+ b = 13;
+ break;
+ case 116:
+ b = 9;
+ break;
+ case 92:
+ case 124:
+ case 46:
+ case 94:
+ case 45:
+ case 63:
+ case 42:
+ case 43:
+ case 123:
+ case 125:
+ case 40:
+ case 41:
+ case 91:
+ case 93:
+ break;
+ default:
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ }
+ return b;
+ }
+ function qD(a) {
+ var b, c, d, e, f;
+ if (a.l == 0 && a.m == 0 && a.h == 0) {
+ return "0";
+ }
+ if (a.h == Gje && a.m == 0 && a.l == 0) {
+ return "-9223372036854775808";
+ }
+ if (a.h >> 19 != 0) {
+ return "-" + qD(hD(a));
+ }
+ c = a;
+ d = "";
+ while (!(c.l == 0 && c.m == 0 && c.h == 0)) {
+ e = RC(Jje);
+ c = UC(c, e, true);
+ b = "" + pD(QC);
+ if (!(c.l == 0 && c.m == 0 && c.h == 0)) {
+ f = 9 - b.length;
+ for (; f > 0; f--) {
+ b = "0" + b;
+ }
+ }
+ d = b + d;
+ }
+ return d;
+ }
+ function xrb() {
+ if (!Object.create || !Object.getOwnPropertyNames) {
+ return false;
+ }
+ var a = "__proto__";
+ var b = /* @__PURE__ */ Object.create(null);
+ if (b[a] !== void 0) {
+ return false;
+ }
+ var c = Object.getOwnPropertyNames(b);
+ if (c.length != 0) {
+ return false;
+ }
+ b[a] = 42;
+ if (b[a] !== 42) {
+ return false;
+ }
+ if (Object.getOwnPropertyNames(b).length == 0) {
+ return false;
+ }
+ return true;
+ }
+ function Pgc(a) {
+ var b, c, d, e, f, g, h;
+ b = false;
+ c = 0;
+ for (e = new olb(a.d.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ d.p = c++;
+ for (g = new olb(d.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ !b && !Qq(O_b(f)) && (b = true);
+ }
+ }
+ h = qqb((ead(), cad), OC(GC(t1, 1), Kie, 103, 0, [aad, bad]));
+ if (!b) {
+ rqb(h, dad);
+ rqb(h, _9c);
+ }
+ a.a = new mDb(h);
+ Uhb(a.f);
+ Uhb(a.b);
+ Uhb(a.e);
+ Uhb(a.g);
+ }
+ function _Xb(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ d = c.c;
+ e = c.d;
+ h = A0b(b.c);
+ i = A0b(b.d);
+ if (d == b.c) {
+ h = aYb(a, h, e);
+ i = bYb(b.d);
+ } else {
+ h = bYb(b.c);
+ i = aYb(a, i, e);
+ }
+ j = new t7c(b.a);
+ Gsb(j, h, j.a, j.a.a);
+ Gsb(j, i, j.c.b, j.c);
+ g = b.c == d;
+ l = new BYb();
+ for (f = 0; f < j.b - 1; ++f) {
+ k = new vgd(BD(Ut(j, f), 8), BD(Ut(j, f + 1), 8));
+ g && f == 0 || !g && f == j.b - 2 ? l.b = k : Ekb(l.a, k);
+ }
+ return l;
+ }
+ function O$b(a, b) {
+ var c, d, e, f;
+ f = a.j.g - b.j.g;
+ if (f != 0) {
+ return f;
+ }
+ c = BD(vNb(a, (Nyc(), Wxc)), 19);
+ d = BD(vNb(b, Wxc), 19);
+ if (!!c && !!d) {
+ e = c.a - d.a;
+ if (e != 0) {
+ return e;
+ }
+ }
+ switch (a.j.g) {
+ case 1:
+ return Kdb(a.n.a, b.n.a);
+ case 2:
+ return Kdb(a.n.b, b.n.b);
+ case 3:
+ return Kdb(b.n.a, a.n.a);
+ case 4:
+ return Kdb(b.n.b, a.n.b);
+ default:
+ throw vbb(new Zdb(ine));
+ }
+ }
+ function G6b(a, b, c, d) {
+ var e, f, g, h, i;
+ if (sr((D6b(), new Sr(ur(O_b(b).a.Kc(), new Sq())))) >= a.a) {
+ return -1;
+ }
+ if (!F6b(b, c)) {
+ return -1;
+ }
+ if (Qq(BD(d.Kb(b), 20))) {
+ return 1;
+ }
+ e = 0;
+ for (g = BD(d.Kb(b), 20).Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 17);
+ i = f.c.i == b ? f.d.i : f.c.i;
+ h = G6b(a, i, c, d);
+ if (h == -1) {
+ return -1;
+ }
+ e = $wnd.Math.max(e, h);
+ if (e > a.c - 1) {
+ return -1;
+ }
+ }
+ return e + 1;
+ }
+ function Btd(a, b) {
+ var c, d, e, f, g, h;
+ if (PD(b) === PD(a)) {
+ return true;
+ }
+ if (!JD(b, 15)) {
+ return false;
+ }
+ d = BD(b, 15);
+ h = a.gc();
+ if (d.gc() != h) {
+ return false;
+ }
+ g = d.Kc();
+ if (a.ni()) {
+ for (c = 0; c < h; ++c) {
+ e = a.ki(c);
+ f = g.Pb();
+ if (e == null ? f != null : !pb(e, f)) {
+ return false;
+ }
+ }
+ } else {
+ for (c = 0; c < h; ++c) {
+ e = a.ki(c);
+ f = g.Pb();
+ if (PD(e) !== PD(f)) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+ function rAd(a, b) {
+ var c, d, e, f, g, h;
+ if (a.f > 0) {
+ a.qj();
+ if (b != null) {
+ for (f = 0; f < a.d.length; ++f) {
+ c = a.d[f];
+ if (c) {
+ d = BD(c.g, 367);
+ h = c.i;
+ for (g = 0; g < h; ++g) {
+ e = d[g];
+ if (pb(b, e.dd())) {
+ return true;
+ }
+ }
+ }
+ }
+ } else {
+ for (f = 0; f < a.d.length; ++f) {
+ c = a.d[f];
+ if (c) {
+ d = BD(c.g, 367);
+ h = c.i;
+ for (g = 0; g < h; ++g) {
+ e = d[g];
+ if (PD(b) === PD(e.dd())) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+ function e6b(a, b, c) {
+ var d, e, f, g;
+ Odd(c, "Orthogonally routing hierarchical port edges", 1);
+ a.a = 0;
+ d = h6b(b);
+ k6b(b, d);
+ j6b(a, b, d);
+ f6b(b);
+ e = BD(vNb(b, (Nyc(), Vxc)), 98);
+ f = b.b;
+ d6b((tCb(0, f.c.length), BD(f.c[0], 29)), e, b);
+ d6b(BD(Ikb(f, f.c.length - 1), 29), e, b);
+ g = b.b;
+ b6b((tCb(0, g.c.length), BD(g.c[0], 29)));
+ b6b(BD(Ikb(g, g.c.length - 1), 29));
+ Qdd(c);
+ }
+ function jnd(a) {
+ switch (a) {
+ case 48:
+ case 49:
+ case 50:
+ case 51:
+ case 52:
+ case 53:
+ case 54:
+ case 55:
+ case 56:
+ case 57: {
+ return a - 48 << 24 >> 24;
+ }
+ case 97:
+ case 98:
+ case 99:
+ case 100:
+ case 101:
+ case 102: {
+ return a - 97 + 10 << 24 >> 24;
+ }
+ case 65:
+ case 66:
+ case 67:
+ case 68:
+ case 69:
+ case 70: {
+ return a - 65 + 10 << 24 >> 24;
+ }
+ default: {
+ throw vbb(new Oeb("Invalid hexadecimal"));
+ }
+ }
+ }
+ function AUc(a, b, c) {
+ var d, e, f, g;
+ Odd(c, "Processor order nodes", 2);
+ a.a = Edb(ED(vNb(b, (JTc(), HTc))));
+ e = new Psb();
+ for (g = Jsb(b.b, 0); g.b != g.d.c; ) {
+ f = BD(Xsb(g), 86);
+ Ccb(DD(vNb(f, (mTc(), jTc)))) && (Gsb(e, f, e.c.b, e.c), true);
+ }
+ d = (sCb(e.b != 0), BD(e.a.a.c, 86));
+ yUc(a, d);
+ !c.b && Rdd(c, 1);
+ BUc(a, d, 0 - Edb(ED(vNb(d, (mTc(), bTc)))) / 2, 0);
+ !c.b && Rdd(c, 1);
+ Qdd(c);
+ }
+ function rFb() {
+ rFb = ccb;
+ qFb = new sFb("SPIRAL", 0);
+ lFb = new sFb("LINE_BY_LINE", 1);
+ mFb = new sFb("MANHATTAN", 2);
+ kFb = new sFb("JITTER", 3);
+ oFb = new sFb("QUADRANTS_LINE_BY_LINE", 4);
+ pFb = new sFb("QUADRANTS_MANHATTAN", 5);
+ nFb = new sFb("QUADRANTS_JITTER", 6);
+ jFb = new sFb("COMBINE_LINE_BY_LINE_MANHATTAN", 7);
+ iFb = new sFb("COMBINE_JITTER_MANHATTAN", 8);
+ }
+ function roc(a, b, c, d) {
+ var e, f, g, h, i, j;
+ i = woc(a, c);
+ j = woc(b, c);
+ e = false;
+ while (!!i && !!j) {
+ if (d || uoc(i, j, c)) {
+ g = woc(i, c);
+ h = woc(j, c);
+ zoc(b);
+ zoc(a);
+ f = i.c;
+ sbc(i, false);
+ sbc(j, false);
+ if (c) {
+ Z_b(b, j.p, f);
+ b.p = j.p;
+ Z_b(a, i.p + 1, f);
+ a.p = i.p;
+ } else {
+ Z_b(a, i.p, f);
+ a.p = i.p;
+ Z_b(b, j.p + 1, f);
+ b.p = j.p;
+ }
+ $_b(i, null);
+ $_b(j, null);
+ i = g;
+ j = h;
+ e = true;
+ } else {
+ break;
+ }
+ }
+ return e;
+ }
+ function VDc(a, b, c, d) {
+ var e, f, g, h, i;
+ e = false;
+ f = false;
+ for (h = new olb(d.j); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 11);
+ PD(vNb(g, (wtc(), $sc))) === PD(c) && (g.g.c.length == 0 ? g.e.c.length == 0 || (e = true) : f = true);
+ }
+ i = 0;
+ e && e ^ f ? i = c.j == (Ucd(), Acd) ? -a.e[d.c.p][d.p] : b - a.e[d.c.p][d.p] : f && e ^ f ? i = a.e[d.c.p][d.p] + 1 : e && f && (i = c.j == (Ucd(), Acd) ? 0 : b / 2);
+ return i;
+ }
+ function NEd(a, b, c, d, e, f, g, h) {
+ var i, j, k;
+ i = 0;
+ b != null && (i ^= LCb(b.toLowerCase()));
+ c != null && (i ^= LCb(c));
+ d != null && (i ^= LCb(d));
+ g != null && (i ^= LCb(g));
+ h != null && (i ^= LCb(h));
+ for (j = 0, k = f.length; j < k; j++) {
+ i ^= LCb(f[j]);
+ }
+ a ? i |= 256 : i &= -257;
+ e ? i |= 16 : i &= -17;
+ this.f = i;
+ this.i = b == null ? null : (uCb(b), b);
+ this.a = c;
+ this.d = d;
+ this.j = f;
+ this.g = g;
+ this.e = h;
+ }
+ function X_b(a, b, c) {
+ var d, e;
+ e = null;
+ switch (b.g) {
+ case 1:
+ e = (z0b(), u0b);
+ break;
+ case 2:
+ e = (z0b(), w0b);
+ }
+ d = null;
+ switch (c.g) {
+ case 1:
+ d = (z0b(), v0b);
+ break;
+ case 2:
+ d = (z0b(), t0b);
+ break;
+ case 3:
+ d = (z0b(), x0b);
+ break;
+ case 4:
+ d = (z0b(), y0b);
+ }
+ return !!e && !!d ? Nq(a.j, new Yb(new amb(OC(GC(_D, 1), Uhe, 169, 0, [BD(Qb(e), 169), BD(Qb(d), 169)])))) : (mmb(), mmb(), jmb);
+ }
+ function t5b(a) {
+ var b, c, d;
+ b = BD(vNb(a, (Nyc(), Hxc)), 8);
+ yNb(a, Hxc, new f7c(b.b, b.a));
+ switch (BD(vNb(a, mwc), 248).g) {
+ case 1:
+ yNb(a, mwc, (F7c(), E7c));
+ break;
+ case 2:
+ yNb(a, mwc, (F7c(), A7c));
+ break;
+ case 3:
+ yNb(a, mwc, (F7c(), C7c));
+ break;
+ case 4:
+ yNb(a, mwc, (F7c(), D7c));
+ }
+ if ((!a.q ? (mmb(), mmb(), kmb) : a.q)._b(ayc)) {
+ c = BD(vNb(a, ayc), 8);
+ d = c.a;
+ c.a = c.b;
+ c.b = d;
+ }
+ }
+ function jjc(a, b, c, d, e, f) {
+ this.b = c;
+ this.d = e;
+ if (a >= b.length) {
+ throw vbb(new qcb("Greedy SwitchDecider: Free layer not in graph."));
+ }
+ this.c = b[a];
+ this.e = new dIc(d);
+ THc(this.e, this.c, (Ucd(), Tcd));
+ this.i = new dIc(d);
+ THc(this.i, this.c, zcd);
+ this.f = new ejc(this.c);
+ this.a = !f && e.i && !e.s && this.c[0].k == (j0b(), e0b);
+ this.a && hjc(this, a, b.length);
+ }
+ function hKb(a, b) {
+ var c, d, e, f, g, h;
+ f = !a.B.Hc((Idd(), zdd));
+ g = a.B.Hc(Cdd);
+ a.a = new FHb(g, f, a.c);
+ !!a.n && u_b(a.a.n, a.n);
+ lIb(a.g, (gHb(), eHb), a.a);
+ if (!b) {
+ d = new mIb(1, f, a.c);
+ d.n.a = a.k;
+ Npb(a.p, (Ucd(), Acd), d);
+ e = new mIb(1, f, a.c);
+ e.n.d = a.k;
+ Npb(a.p, Rcd, e);
+ h = new mIb(0, f, a.c);
+ h.n.c = a.k;
+ Npb(a.p, Tcd, h);
+ c = new mIb(0, f, a.c);
+ c.n.b = a.k;
+ Npb(a.p, zcd, c);
+ }
+ }
+ function Vgc(a) {
+ var b, c, d;
+ b = BD(vNb(a.d, (Nyc(), Swc)), 218);
+ switch (b.g) {
+ case 2:
+ c = Ngc(a);
+ break;
+ case 3:
+ c = (d = new Rkb(), MAb(JAb(NAb(LAb(LAb(new YAb(null, new Kub(a.d.b, 16)), new Shc()), new Uhc()), new Whc()), new ehc()), new Yhc(d)), d);
+ break;
+ default:
+ throw vbb(new Zdb("Compaction not supported for " + b + " edges."));
+ }
+ Ugc(a, c);
+ reb(new Pib(a.g), new Ehc(a));
+ }
+ function a2c(a, b) {
+ var c;
+ c = new zNb();
+ !!b && tNb(c, BD(Ohb(a.a, C2), 94));
+ JD(b, 470) && tNb(c, BD(Ohb(a.a, G2), 94));
+ if (JD(b, 354)) {
+ tNb(c, BD(Ohb(a.a, D2), 94));
+ return c;
+ }
+ JD(b, 82) && tNb(c, BD(Ohb(a.a, z2), 94));
+ if (JD(b, 239)) {
+ tNb(c, BD(Ohb(a.a, E2), 94));
+ return c;
+ }
+ if (JD(b, 186)) {
+ tNb(c, BD(Ohb(a.a, F2), 94));
+ return c;
+ }
+ JD(b, 352) && tNb(c, BD(Ohb(a.a, B2), 94));
+ return c;
+ }
+ function wSb() {
+ wSb = ccb;
+ oSb = new Osd((Y9c(), D9c), meb(1));
+ uSb = new Osd(T9c, 80);
+ tSb = new Osd(M9c, 5);
+ bSb = new Osd(r8c, tme);
+ pSb = new Osd(E9c, meb(1));
+ sSb = new Osd(H9c, (Bcb(), true));
+ lSb = new q0b(50);
+ kSb = new Osd(f9c, lSb);
+ dSb = O8c;
+ mSb = t9c;
+ cSb = new Osd(B8c, false);
+ jSb = e9c;
+ iSb = b9c;
+ hSb = Y8c;
+ gSb = W8c;
+ nSb = x9c;
+ fSb = (SRb(), LRb);
+ vSb = QRb;
+ eSb = KRb;
+ qSb = NRb;
+ rSb = PRb;
+ }
+ function ZXb(a) {
+ var b, c, d, e, f, g, h, i;
+ i = new jYb();
+ for (h = new olb(a.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ if (g.k == (j0b(), e0b)) {
+ continue;
+ }
+ XXb(i, g, new d7c());
+ for (f = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ if (e.c.i.k == e0b || e.d.i.k == e0b) {
+ continue;
+ }
+ for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 8);
+ b = c;
+ hYb(i, new cWb(b.a, b.b));
+ }
+ }
+ }
+ return i;
+ }
+ function A0c() {
+ A0c = ccb;
+ z0c = new Lsd(Qre);
+ y0c = (R0c(), Q0c);
+ x0c = new Nsd(Vre, y0c);
+ w0c = (a1c(), _0c);
+ v0c = new Nsd(Rre, w0c);
+ u0c = (N_c(), J_c);
+ t0c = new Nsd(Sre, u0c);
+ p0c = new Nsd(Tre, null);
+ s0c = (C_c(), A_c);
+ r0c = new Nsd(Ure, s0c);
+ l0c = (i_c(), h_c);
+ k0c = new Nsd(Wre, l0c);
+ m0c = new Nsd(Xre, (Bcb(), false));
+ n0c = new Nsd(Yre, meb(64));
+ o0c = new Nsd(Zre, true);
+ q0c = B_c;
+ }
+ function Toc(a) {
+ var b, c, d, e, f, g;
+ if (a.a != null) {
+ return;
+ }
+ a.a = KC(sbb, dle, 25, a.c.b.c.length, 16, 1);
+ a.a[0] = false;
+ if (wNb(a.c, (Nyc(), Lyc))) {
+ d = BD(vNb(a.c, Lyc), 15);
+ for (c = d.Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 19).a;
+ b > 0 && b < a.a.length && (a.a[b] = false);
+ }
+ } else {
+ g = new olb(a.c.b);
+ g.a < g.c.c.length && mlb(g);
+ e = 1;
+ while (g.a < g.c.c.length) {
+ f = BD(mlb(g), 29);
+ a.a[e++] = Woc(f);
+ }
+ }
+ }
+ function TMd(a, b) {
+ var c, d, e, f;
+ e = a.b;
+ switch (b) {
+ case 1: {
+ a.b |= 1;
+ a.b |= 4;
+ a.b |= 8;
+ break;
+ }
+ case 2: {
+ a.b |= 2;
+ a.b |= 4;
+ a.b |= 8;
+ break;
+ }
+ case 4: {
+ a.b |= 1;
+ a.b |= 2;
+ a.b |= 4;
+ a.b |= 8;
+ break;
+ }
+ case 3: {
+ a.b |= 16;
+ a.b |= 8;
+ break;
+ }
+ case 0: {
+ a.b |= 32;
+ a.b |= 16;
+ a.b |= 8;
+ a.b |= 1;
+ a.b |= 2;
+ a.b |= 4;
+ break;
+ }
+ }
+ if (a.b != e && !!a.c) {
+ for (d = new Fyd(a.c); d.e != d.i.gc(); ) {
+ f = BD(Dyd(d), 473);
+ c = $Kd(f);
+ XMd(c, b);
+ }
+ }
+ }
+ function cGc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2;
+ e = false;
+ for (g = b, h = 0, i = g.length; h < i; ++h) {
+ f = g[h];
+ Ccb((Bcb(), f.e ? true : false)) && !BD(Ikb(a.b, f.e.p), 214).s && (e = e | (j = f.e, k = BD(Ikb(a.b, j.p), 214), l = k.e, m = SFc(c, l.length), n = l[m][0], n.k == (j0b(), e0b) ? l[m] = aGc(f, l[m], c ? (Ucd(), Tcd) : (Ucd(), zcd)) : k.c.Tf(l, c), o2 = dGc(a, k, c, d), bGc(k.e, k.o, c), o2));
+ }
+ return e;
+ }
+ function p2c(a, b) {
+ var c, d, e, f, g;
+ f = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i;
+ for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) {
+ d = BD(Dyd(e), 33);
+ if (PD(hkd(d, (Y9c(), J8c))) !== PD((hbd(), gbd))) {
+ g = BD(hkd(b, F9c), 149);
+ c = BD(hkd(d, F9c), 149);
+ (g == c || !!g && C3c(g, c)) && (!d.a && (d.a = new cUd(E2, d, 10, 11)), d.a).i != 0 && (f += p2c(a, d));
+ }
+ }
+ return f;
+ }
+ function nlc(a) {
+ var b, c, d, e, f, g, h;
+ d = 0;
+ h = 0;
+ for (g = new olb(a.d); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 101);
+ e = BD(GAb(JAb(new YAb(null, new Kub(f.j, 16)), new Ylc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
+ c = null;
+ if (d <= h) {
+ c = (Ucd(), Acd);
+ d += e.gc();
+ } else if (h < d) {
+ c = (Ucd(), Rcd);
+ h += e.gc();
+ }
+ b = c;
+ MAb(NAb(e.Oc(), new Mlc()), new Olc(b));
+ }
+ }
+ function mkc(a) {
+ var b, c, d, e, f, g, h, i;
+ a.b = new _i(new amb((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]))), new amb((Fkc(), OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]))));
+ for (g = OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]), h = 0, i = g.length; h < i; ++h) {
+ f = g[h];
+ for (c = OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]), d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ Ui(a.b, f, b, new Rkb());
+ }
+ }
+ }
+ function KJb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ g = BD(BD(Qc(a.r, b), 21), 84);
+ h = a.u.Hc((rcd(), pcd));
+ c = a.u.Hc(mcd);
+ d = a.u.Hc(lcd);
+ j = a.u.Hc(qcd);
+ l = a.B.Hc((Idd(), Hdd));
+ k = !c && !d && (j || g.gc() == 2);
+ HJb(a, b);
+ e = null;
+ i = null;
+ if (h) {
+ f = g.Kc();
+ e = BD(f.Pb(), 111);
+ i = e;
+ while (f.Ob()) {
+ i = BD(f.Pb(), 111);
+ }
+ e.d.b = 0;
+ i.d.c = 0;
+ k && !e.a && (e.d.c = 0);
+ }
+ if (l) {
+ LJb(g);
+ if (h) {
+ e.d.b = 0;
+ i.d.c = 0;
+ }
+ }
+ }
+ function SKb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ g = BD(BD(Qc(a.r, b), 21), 84);
+ h = a.u.Hc((rcd(), pcd));
+ c = a.u.Hc(mcd);
+ d = a.u.Hc(lcd);
+ i = a.u.Hc(qcd);
+ l = a.B.Hc((Idd(), Hdd));
+ j = !c && !d && (i || g.gc() == 2);
+ QKb(a, b);
+ k = null;
+ e = null;
+ if (h) {
+ f = g.Kc();
+ k = BD(f.Pb(), 111);
+ e = k;
+ while (f.Ob()) {
+ e = BD(f.Pb(), 111);
+ }
+ k.d.d = 0;
+ e.d.a = 0;
+ j && !k.a && (k.d.a = 0);
+ }
+ if (l) {
+ TKb(g);
+ if (h) {
+ k.d.d = 0;
+ e.d.a = 0;
+ }
+ }
+ }
+ function oJc(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ e = b.k;
+ if (b.p >= 0) {
+ return false;
+ } else {
+ b.p = c.b;
+ Ekb(c.e, b);
+ }
+ if (e == (j0b(), g0b) || e == i0b) {
+ for (g = new olb(b.j); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 11);
+ for (k = (d = new olb(new R0b(f).a.g), new U0b(d)); llb(k.a); ) {
+ j = BD(mlb(k.a), 17).d;
+ h = j.i;
+ i = h.k;
+ if (b.c != h.c) {
+ if (i == g0b || i == i0b) {
+ if (oJc(a, h, c)) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return true;
+ }
+ function gJd(a) {
+ var b;
+ if ((a.Db & 64) != 0)
+ return EId(a);
+ b = new Jfb(EId(a));
+ b.a += " (changeable: ";
+ Ffb(b, (a.Bb & zte) != 0);
+ b.a += ", volatile: ";
+ Ffb(b, (a.Bb & Dve) != 0);
+ b.a += ", transient: ";
+ Ffb(b, (a.Bb & Rje) != 0);
+ b.a += ", defaultValueLiteral: ";
+ Efb(b, a.j);
+ b.a += ", unsettable: ";
+ Ffb(b, (a.Bb & Cve) != 0);
+ b.a += ", derived: ";
+ Ffb(b, (a.Bb & oie) != 0);
+ b.a += ")";
+ return b.a;
+ }
+ function AOb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m;
+ e = eNb(a.d);
+ g = BD(vNb(a.b, (CPb(), wPb)), 116);
+ h = g.b + g.c;
+ i = g.d + g.a;
+ k = e.d.a * a.e + h;
+ j = e.b.a * a.f + i;
+ $Ob(a.b, new f7c(k, j));
+ for (m = new olb(a.g); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 562);
+ b = l.g - e.a.a;
+ c = l.i - e.c.a;
+ d = P6c(Z6c(new f7c(b, c), l.a, l.b), Y6c(b7c(R6c(HOb(l.e)), l.d * l.a, l.c * l.b), -0.5));
+ f = IOb(l.e);
+ KOb(l.e, c7c(d, f));
+ }
+ }
+ function tmc(a, b, c, d) {
+ var e, f, g, h, i;
+ i = KC(UD, nie, 104, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 0, 2);
+ for (f = OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]), g = 0, h = f.length; g < h; ++g) {
+ e = f[g];
+ i[e.g] = KC(UD, Vje, 25, a.c[e.g], 15, 1);
+ }
+ vmc(i, a, Acd);
+ vmc(i, a, Rcd);
+ smc(i, a, Acd, b, c, d);
+ smc(i, a, zcd, b, c, d);
+ smc(i, a, Rcd, b, c, d);
+ smc(i, a, Tcd, b, c, d);
+ return i;
+ }
+ function UGc(a, b, c) {
+ if (Mhb(a.a, b)) {
+ if (Rqb(BD(Ohb(a.a, b), 53), c)) {
+ return 1;
+ }
+ } else {
+ Rhb(a.a, b, new Tqb());
+ }
+ if (Mhb(a.a, c)) {
+ if (Rqb(BD(Ohb(a.a, c), 53), b)) {
+ return -1;
+ }
+ } else {
+ Rhb(a.a, c, new Tqb());
+ }
+ if (Mhb(a.b, b)) {
+ if (Rqb(BD(Ohb(a.b, b), 53), c)) {
+ return -1;
+ }
+ } else {
+ Rhb(a.b, b, new Tqb());
+ }
+ if (Mhb(a.b, c)) {
+ if (Rqb(BD(Ohb(a.b, c), 53), b)) {
+ return 1;
+ }
+ } else {
+ Rhb(a.b, c, new Tqb());
+ }
+ return 0;
+ }
+ function x2d(a, b, c, d) {
+ var e, f, g, h, i, j;
+ if (c == null) {
+ e = BD(a.g, 119);
+ for (h = 0; h < a.i; ++h) {
+ g = e[h];
+ if (g.ak() == b) {
+ return Txd(a, g, d);
+ }
+ }
+ }
+ f = (Q6d(), BD(b, 66).Oj() ? BD(c, 72) : R6d(b, c));
+ if (oid(a.e)) {
+ j = !R2d(a, b);
+ d = Sxd(a, f, d);
+ i = b.$j() ? H2d(a, 3, b, null, c, M2d(a, b, c, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0), j) : H2d(a, 1, b, b.zj(), c, -1, j);
+ d ? d.Ei(i) : d = i;
+ } else {
+ d = Sxd(a, f, d);
+ }
+ return d;
+ }
+ function CJb(a) {
+ var b, c, d, e, f, g;
+ if (a.q == (dcd(), _bd) || a.q == $bd) {
+ return;
+ }
+ e = a.f.n.d + _Gb(BD(Mpb(a.b, (Ucd(), Acd)), 124)) + a.c;
+ b = a.f.n.a + _Gb(BD(Mpb(a.b, Rcd), 124)) + a.c;
+ d = BD(Mpb(a.b, zcd), 124);
+ g = BD(Mpb(a.b, Tcd), 124);
+ f = $wnd.Math.max(0, d.n.d - e);
+ f = $wnd.Math.max(f, g.n.d - e);
+ c = $wnd.Math.max(0, d.n.a - b);
+ c = $wnd.Math.max(c, g.n.a - b);
+ d.n.d = f;
+ g.n.d = f;
+ d.n.a = c;
+ g.n.a = c;
+ }
+ function rdc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ Odd(b, "Restoring reversed edges", 1);
+ for (i = new olb(a.b); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 29);
+ for (k = new olb(h.a); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 10);
+ for (m = new olb(j.j); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 11);
+ g = k_b(l.g);
+ for (d = g, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ Ccb(DD(vNb(c, (wtc(), ltc)))) && PZb(c, false);
+ }
+ }
+ }
+ }
+ Qdd(b);
+ }
+ function m4c() {
+ this.b = new $rb();
+ this.d = new $rb();
+ this.e = new $rb();
+ this.c = new $rb();
+ this.a = new Lqb();
+ this.f = new Lqb();
+ hvd(m1, new x4c(), new z4c());
+ hvd(l1, new V4c(), new X4c());
+ hvd(i1, new Z4c(), new _4c());
+ hvd(j1, new b5c(), new d5c());
+ hvd(i2, new f5c(), new h5c());
+ hvd(DJ, new B4c(), new D4c());
+ hvd(xK, new F4c(), new H4c());
+ hvd(jK, new J4c(), new L4c());
+ hvd(uK, new N4c(), new P4c());
+ hvd(kL, new R4c(), new T4c());
+ }
+ function R5d(a) {
+ var b, c, d, e, f, g;
+ f = 0;
+ b = wId(a);
+ !!b.Bj() && (f |= 4);
+ (a.Bb & Cve) != 0 && (f |= 2);
+ if (JD(a, 99)) {
+ c = BD(a, 18);
+ e = zUd(c);
+ (c.Bb & ote) != 0 && (f |= 32);
+ if (e) {
+ aLd(WId(e));
+ f |= 8;
+ g = e.t;
+ (g > 1 || g == -1) && (f |= 16);
+ (e.Bb & ote) != 0 && (f |= 64);
+ }
+ (c.Bb & Tje) != 0 && (f |= Dve);
+ f |= zte;
+ } else {
+ if (JD(b, 457)) {
+ f |= 512;
+ } else {
+ d = b.Bj();
+ !!d && (d.i & 1) != 0 && (f |= 256);
+ }
+ }
+ (a.Bb & 512) != 0 && (f |= 128);
+ return f;
+ }
+ function hc(a, b) {
+ var c, d, e, f, g;
+ a = a == null ? Xhe : (uCb(a), a);
+ for (e = 0; e < b.length; e++) {
+ b[e] = ic(b[e]);
+ }
+ c = new Vfb();
+ g = 0;
+ d = 0;
+ while (d < b.length) {
+ f = a.indexOf("%s", g);
+ if (f == -1) {
+ break;
+ }
+ c.a += "" + qfb(a == null ? Xhe : (uCb(a), a), g, f);
+ Pfb(c, b[d++]);
+ g = f + 2;
+ }
+ Ofb(c, a, g, a.length);
+ if (d < b.length) {
+ c.a += " [";
+ Pfb(c, b[d++]);
+ while (d < b.length) {
+ c.a += She;
+ Pfb(c, b[d++]);
+ }
+ c.a += "]";
+ }
+ return c.a;
+ }
+ function m3b(a) {
+ var b, c, d, e, f;
+ f = new Skb(a.a.c.length);
+ for (e = new olb(a.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 10);
+ c = BD(vNb(d, (Nyc(), mxc)), 163);
+ b = null;
+ switch (c.g) {
+ case 1:
+ case 2:
+ b = (Gqc(), Fqc);
+ break;
+ case 3:
+ case 4:
+ b = (Gqc(), Dqc);
+ }
+ if (b) {
+ yNb(d, (wtc(), Bsc), (Gqc(), Fqc));
+ b == Dqc ? o3b(d, c, (KAc(), HAc)) : b == Fqc && o3b(d, c, (KAc(), IAc));
+ } else {
+ f.c[f.c.length] = d;
+ }
+ }
+ return f;
+ }
+ function MHc(a, b) {
+ var c, d, e, f, g, h, i;
+ c = 0;
+ for (i = new olb(b); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 11);
+ AHc(a.b, a.d[h.p]);
+ g = 0;
+ for (e = new b1b(h.b); llb(e.a) || llb(e.b); ) {
+ d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
+ if (WHc(d)) {
+ f = aIc(a, h == d.c ? d.d : d.c);
+ if (f > a.d[h.p]) {
+ c += zHc(a.b, f);
+ Wjb(a.a, meb(f));
+ }
+ } else {
+ ++g;
+ }
+ }
+ c += a.b.d * g;
+ while (!akb(a.a)) {
+ xHc(a.b, BD(fkb(a.a), 19).a);
+ }
+ }
+ return c;
+ }
+ function Y6d(a, b) {
+ var c;
+ if (a.f == W6d) {
+ c = $1d(q1d((O6d(), M6d), b));
+ return a.e ? c == 4 && b != (m8d(), k8d) && b != (m8d(), h8d) && b != (m8d(), i8d) && b != (m8d(), j8d) : c == 2;
+ }
+ if (!!a.d && (a.d.Hc(b) || a.d.Hc(_1d(q1d((O6d(), M6d), b))) || a.d.Hc(e1d((O6d(), M6d), a.b, b)))) {
+ return true;
+ }
+ if (a.f) {
+ if (x1d((O6d(), a.f), b2d(q1d(M6d, b)))) {
+ c = $1d(q1d(M6d, b));
+ return a.e ? c == 4 : c == 2;
+ }
+ }
+ return false;
+ }
+ function iVc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l;
+ g = BD(hkd(c, (Y9c(), C9c)), 8);
+ i = g.a;
+ k = g.b + a;
+ e = $wnd.Math.atan2(k, i);
+ e < 0 && (e += dre);
+ e += b;
+ e > dre && (e -= dre);
+ h = BD(hkd(d, C9c), 8);
+ j = h.a;
+ l = h.b + a;
+ f = $wnd.Math.atan2(l, j);
+ f < 0 && (f += dre);
+ f += b;
+ f > dre && (f -= dre);
+ return Iy(), My(1e-10), $wnd.Math.abs(e - f) <= 1e-10 || e == f || isNaN(e) && isNaN(f) ? 0 : e < f ? -1 : e > f ? 1 : Ny(isNaN(e), isNaN(f));
+ }
+ function YDb(a) {
+ var b, c, d, e, f, g, h;
+ h = new Lqb();
+ for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
+ b = BD(mlb(d), 57);
+ Rhb(h, b, new Rkb());
+ }
+ for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
+ b = BD(mlb(e), 57);
+ b.i = Qje;
+ for (g = b.c.Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 57);
+ BD(Wd(irb(h.f, f)), 15).Fc(b);
+ }
+ }
+ for (c = new olb(a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 57);
+ b.c.$b();
+ b.c = BD(Wd(irb(h.f, b)), 15);
+ }
+ QDb(a);
+ }
+ function yVb(a) {
+ var b, c, d, e, f, g, h;
+ h = new Lqb();
+ for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
+ b = BD(mlb(d), 81);
+ Rhb(h, b, new Rkb());
+ }
+ for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
+ b = BD(mlb(e), 81);
+ b.o = Qje;
+ for (g = b.f.Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 81);
+ BD(Wd(irb(h.f, f)), 15).Fc(b);
+ }
+ }
+ for (c = new olb(a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 81);
+ b.f.$b();
+ b.f = BD(Wd(irb(h.f, b)), 15);
+ }
+ rVb(a);
+ }
+ function dNb(a, b, c, d) {
+ var e, f;
+ cNb(a, b, c, d);
+ qNb(b, a.j - b.j + c);
+ rNb(b, a.k - b.k + d);
+ for (f = new olb(b.f); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 324);
+ switch (e.a.g) {
+ case 0:
+ nNb(a, b.g + e.b.a, 0, b.g + e.c.a, b.i - 1);
+ break;
+ case 1:
+ nNb(a, b.g + b.o, b.i + e.b.a, a.o - 1, b.i + e.c.a);
+ break;
+ case 2:
+ nNb(a, b.g + e.b.a, b.i + b.p, b.g + e.c.a, a.p - 1);
+ break;
+ default:
+ nNb(a, 0, b.i + e.b.a, b.g - 1, b.i + e.c.a);
+ }
+ }
+ }
+ function aNb(b, c, d, e, f) {
+ var g, h, i;
+ try {
+ if (c >= b.o) {
+ throw vbb(new rcb());
+ }
+ i = c >> 5;
+ h = c & 31;
+ g = Nbb(1, Tbb(Nbb(h, 1)));
+ f ? b.n[d][i] = Mbb(b.n[d][i], g) : b.n[d][i] = xbb(b.n[d][i], Lbb(g));
+ g = Nbb(g, 1);
+ e ? b.n[d][i] = Mbb(b.n[d][i], g) : b.n[d][i] = xbb(b.n[d][i], Lbb(g));
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 320)) {
+ throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c + She + d + Fle));
+ } else
+ throw vbb(a);
+ }
+ }
+ function BUc(a, b, c, d) {
+ var e, f, g;
+ if (b) {
+ f = Edb(ED(vNb(b, (mTc(), fTc)))) + d;
+ g = c + Edb(ED(vNb(b, bTc))) / 2;
+ yNb(b, kTc, meb(Tbb(Cbb($wnd.Math.round(f)))));
+ yNb(b, lTc, meb(Tbb(Cbb($wnd.Math.round(g)))));
+ b.d.b == 0 || BUc(a, BD(pr((e = Jsb(new ZRc(b).a.d, 0), new aSc(e))), 86), c + Edb(ED(vNb(b, bTc))) + a.a, d + Edb(ED(vNb(b, cTc))));
+ vNb(b, iTc) != null && BUc(a, BD(vNb(b, iTc), 86), c, d);
+ }
+ }
+ function N9b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ i = Q_b(b.a);
+ e = Edb(ED(vNb(i, (Nyc(), pyc)))) * 2;
+ k = Edb(ED(vNb(i, wyc)));
+ j = $wnd.Math.max(e, k);
+ f = KC(UD, Vje, 25, b.f - b.c + 1, 15, 1);
+ d = -j;
+ c = 0;
+ for (h = b.b.Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 10);
+ d += a.a[g.c.p] + j;
+ f[c++] = d;
+ }
+ d += a.a[b.a.c.p] + j;
+ f[c++] = d;
+ for (m = new olb(b.e); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 10);
+ d += a.a[l.c.p] + j;
+ f[c++] = d;
+ }
+ return f;
+ }
+ function GHc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m;
+ m = new Hxb(new pIc(a));
+ for (h = OC(GC(OQ, 1), kne, 10, 0, [b, c]), i = 0, j = h.length; i < j; ++i) {
+ g = h[i];
+ for (l = CHc(g, d).Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 11);
+ for (f = new b1b(k.b); llb(f.a) || llb(f.b); ) {
+ e = BD(llb(f.a) ? mlb(f.a) : mlb(f.b), 17);
+ if (!OZb(e)) {
+ Iwb(m.a, k, (Bcb(), zcb)) == null;
+ WHc(e) && Axb(m, k == e.c ? e.d : e.c);
+ }
+ }
+ }
+ }
+ return Qb(m), new Tkb(m);
+ }
+ function zhd(a, b) {
+ var c, d, e, f;
+ f = BD(hkd(a, (Y9c(), A9c)), 61).g - BD(hkd(b, A9c), 61).g;
+ if (f != 0) {
+ return f;
+ }
+ c = BD(hkd(a, v9c), 19);
+ d = BD(hkd(b, v9c), 19);
+ if (!!c && !!d) {
+ e = c.a - d.a;
+ if (e != 0) {
+ return e;
+ }
+ }
+ switch (BD(hkd(a, A9c), 61).g) {
+ case 1:
+ return Kdb(a.i, b.i);
+ case 2:
+ return Kdb(a.j, b.j);
+ case 3:
+ return Kdb(b.i, a.i);
+ case 4:
+ return Kdb(b.j, a.j);
+ default:
+ throw vbb(new Zdb(ine));
+ }
+ }
+ function _od(a) {
+ var b, c, d;
+ if ((a.Db & 64) != 0)
+ return fld(a);
+ b = new Wfb(ete);
+ c = a.k;
+ if (!c) {
+ !a.n && (a.n = new cUd(D2, a, 1, 7));
+ if (a.n.i > 0) {
+ d = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a;
+ !d || Qfb(Qfb((b.a += ' "', b), d), '"');
+ }
+ } else {
+ Qfb(Qfb((b.a += ' "', b), c), '"');
+ }
+ Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")");
+ return b.a;
+ }
+ function opd(a) {
+ var b, c, d;
+ if ((a.Db & 64) != 0)
+ return fld(a);
+ b = new Wfb(fte);
+ c = a.k;
+ if (!c) {
+ !a.n && (a.n = new cUd(D2, a, 1, 7));
+ if (a.n.i > 0) {
+ d = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a;
+ !d || Qfb(Qfb((b.a += ' "', b), d), '"');
+ }
+ } else {
+ Qfb(Qfb((b.a += ' "', b), c), '"');
+ }
+ Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")");
+ return b.a;
+ }
+ function h4c(a, b) {
+ var c, d, e, f, g, h, i;
+ if (b == null || b.length == 0) {
+ return null;
+ }
+ e = BD(Phb(a.a, b), 149);
+ if (!e) {
+ for (d = (h = new $ib(a.b).a.vc().Kc(), new djb(h)); d.a.Ob(); ) {
+ c = (f = BD(d.a.Pb(), 42), BD(f.dd(), 149));
+ g = c.c;
+ i = b.length;
+ if (dfb(g.substr(g.length - i, i), b) && (b.length == g.length || bfb(g, g.length - b.length - 1) == 46)) {
+ if (e) {
+ return null;
+ }
+ e = c;
+ }
+ }
+ !!e && Shb(a.a, b, e);
+ }
+ return e;
+ }
+ function QLb(a, b) {
+ var c, d, e, f;
+ c = new VLb();
+ d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
+ e = d.gc();
+ d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21);
+ f = d.gc();
+ if (e < f) {
+ return -1;
+ }
+ if (e == f) {
+ return 0;
+ }
+ return 1;
+ }
+ function r5b(a) {
+ var b, c, d;
+ if (!wNb(a, (Nyc(), xxc))) {
+ return;
+ }
+ d = BD(vNb(a, xxc), 21);
+ if (d.dc()) {
+ return;
+ }
+ c = (b = BD(gdb(B1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
+ d.Hc((Hbd(), Cbd)) ? rqb(c, Cbd) : rqb(c, Dbd);
+ d.Hc(Abd) || rqb(c, Abd);
+ d.Hc(zbd) ? rqb(c, Gbd) : d.Hc(ybd) ? rqb(c, Fbd) : d.Hc(Bbd) && rqb(c, Ebd);
+ d.Hc(Gbd) ? rqb(c, zbd) : d.Hc(Fbd) ? rqb(c, ybd) : d.Hc(Ebd) && rqb(c, Bbd);
+ yNb(a, xxc, c);
+ }
+ function kHc(a) {
+ var b, c, d, e, f, g, h;
+ e = BD(vNb(a, (wtc(), Psc)), 10);
+ d = a.j;
+ c = (tCb(0, d.c.length), BD(d.c[0], 11));
+ for (g = new olb(e.j); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 11);
+ if (PD(f) === PD(vNb(c, $sc))) {
+ if (f.j == (Ucd(), Acd) && a.p > e.p) {
+ G0b(f, Rcd);
+ if (f.d) {
+ h = f.o.b;
+ b = f.a.b;
+ f.a.b = h - b;
+ }
+ } else if (f.j == Rcd && e.p > a.p) {
+ G0b(f, Acd);
+ if (f.d) {
+ h = f.o.b;
+ b = f.a.b;
+ f.a.b = -(h - b);
+ }
+ }
+ break;
+ }
+ }
+ return e;
+ }
+ function NOc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2;
+ f = c;
+ if (c < d) {
+ m = (n = new uOc(a.p), o2 = new uOc(a.p), ye(n.e, a.e), n.q = a.q, n.r = o2, lOc(n), ye(o2.j, a.j), o2.r = n, lOc(o2), new vgd(n, o2));
+ l = BD(m.a, 112);
+ k = BD(m.b, 112);
+ e = (tCb(f, b.c.length), BD(b.c[f], 329));
+ g = UOc(a, l, k, e);
+ for (j = c + 1; j <= d; j++) {
+ h = (tCb(j, b.c.length), BD(b.c[j], 329));
+ i = UOc(a, l, k, h);
+ if (SOc(h, i, e, g)) {
+ e = h;
+ g = i;
+ }
+ }
+ }
+ return f;
+ }
+ function wQb(a, b, c, d, e) {
+ var f, g, h, i, j, k, l;
+ if (!(JD(b, 239) || JD(b, 354) || JD(b, 186))) {
+ throw vbb(new Wdb("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));
+ }
+ g = a.a / 2;
+ i = b.i + d - g;
+ k = b.j + e - g;
+ j = i + b.g + a.a;
+ l = k + b.f + a.a;
+ f = new s7c();
+ Dsb(f, new f7c(i, k));
+ Dsb(f, new f7c(i, l));
+ Dsb(f, new f7c(j, l));
+ Dsb(f, new f7c(j, k));
+ h = new XOb(f);
+ tNb(h, b);
+ c && Rhb(a.b, b, h);
+ return h;
+ }
+ function uXb(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ f = new f7c(b, c);
+ for (k = new olb(a.a); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 10);
+ P6c(j.n, f);
+ for (m = new olb(j.j); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 11);
+ for (e = new olb(l.g); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ q7c(d.a, f);
+ g = BD(vNb(d, (Nyc(), jxc)), 74);
+ !!g && q7c(g, f);
+ for (i = new olb(d.b); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 70);
+ P6c(h.n, f);
+ }
+ }
+ }
+ }
+ }
+ function g_b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ f = new f7c(b, c);
+ for (k = new olb(a.a); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 10);
+ P6c(j.n, f);
+ for (m = new olb(j.j); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 11);
+ for (e = new olb(l.g); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ q7c(d.a, f);
+ g = BD(vNb(d, (Nyc(), jxc)), 74);
+ !!g && q7c(g, f);
+ for (i = new olb(d.b); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 70);
+ P6c(h.n, f);
+ }
+ }
+ }
+ }
+ }
+ function N1b(a) {
+ if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 0) {
+ throw vbb(new z2c("Edges must have a source."));
+ } else if ((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i == 0) {
+ throw vbb(new z2c("Edges must have a target."));
+ } else {
+ !a.b && (a.b = new y5d(z2, a, 4, 7));
+ if (!(a.b.i <= 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c.i <= 1))) {
+ throw vbb(new z2c("Hyperedges are not supported."));
+ }
+ }
+ }
+ function OFc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ l = 0;
+ f = new jkb();
+ Wjb(f, b);
+ while (f.b != f.c) {
+ i = BD(fkb(f), 214);
+ j = 0;
+ k = BD(vNb(b.j, (Nyc(), ywc)), 339);
+ g = Edb(ED(vNb(b.j, uwc)));
+ h = Edb(ED(vNb(b.j, vwc)));
+ if (k != (tAc(), rAc)) {
+ j += g * PFc(i.e, k);
+ j += h * QFc(i.e);
+ }
+ l += pHc(i.d, i.e) + j;
+ for (e = new olb(i.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 37);
+ c = BD(Ikb(a.b, d.p), 214);
+ c.s || (l += NFc(a, c));
+ }
+ }
+ return l;
+ }
+ function dhb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ n = b.length;
+ i = n;
+ BCb(0, b.length);
+ if (b.charCodeAt(0) == 45) {
+ l = -1;
+ m = 1;
+ --n;
+ } else {
+ l = 1;
+ m = 0;
+ }
+ f = (phb(), ohb)[10];
+ e = n / f | 0;
+ q = n % f;
+ q != 0 && ++e;
+ h = KC(WD, oje, 25, e, 15, 1);
+ c = nhb[8];
+ g = 0;
+ o2 = m + (q == 0 ? f : q);
+ for (p = m; p < i; p = o2, o2 = p + f) {
+ d = Icb(b.substr(p, o2 - p), Rie, Ohe);
+ j = (Dhb(), Hhb(h, h, g, c));
+ j += xhb(h, g, d);
+ h[g++] = j;
+ }
+ k = g;
+ a.e = l;
+ a.d = k;
+ a.a = h;
+ Jgb(a);
+ }
+ function SGb(a, b, c, d, e, f, g) {
+ a.c = d.qf().a;
+ a.d = d.qf().b;
+ if (e) {
+ a.c += e.qf().a;
+ a.d += e.qf().b;
+ }
+ a.b = b.rf().a;
+ a.a = b.rf().b;
+ if (!e) {
+ c ? a.c -= g + b.rf().a : a.c += d.rf().a + g;
+ } else {
+ switch (e.Hf().g) {
+ case 0:
+ case 2:
+ a.c += e.rf().a + g + f.a + g;
+ break;
+ case 4:
+ a.c -= g + f.a + g + b.rf().a;
+ break;
+ case 1:
+ a.c += e.rf().a + g;
+ a.d -= g + f.b + g + b.rf().b;
+ break;
+ case 3:
+ a.c += e.rf().a + g;
+ a.d += e.rf().b + g + f.b + g;
+ }
+ }
+ }
+ function gac(a, b) {
+ var c, d;
+ this.b = new Rkb();
+ this.e = new Rkb();
+ this.a = a;
+ this.d = b;
+ dac(this);
+ eac(this);
+ this.b.dc() ? this.c = a.c.p : this.c = BD(this.b.Xb(0), 10).c.p;
+ this.e.c.length == 0 ? this.f = a.c.p : this.f = BD(Ikb(this.e, this.e.c.length - 1), 10).c.p;
+ for (d = BD(vNb(a, (wtc(), ktc)), 15).Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 70);
+ if (wNb(c, (Nyc(), Owc))) {
+ this.d = BD(vNb(c, Owc), 227);
+ break;
+ }
+ }
+ }
+ function Anc(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ d = BD(Ohb(a.a, b), 53);
+ f = BD(Ohb(a.a, c), 53);
+ e = BD(Ohb(a.e, b), 53);
+ g = BD(Ohb(a.e, c), 53);
+ d.a.zc(c, d);
+ g.a.zc(b, g);
+ for (k = f.a.ec().Kc(); k.Ob(); ) {
+ j = BD(k.Pb(), 10);
+ d.a.zc(j, d);
+ Qqb(BD(Ohb(a.e, j), 53), b);
+ ye(BD(Ohb(a.e, j), 53), e);
+ }
+ for (i = e.a.ec().Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 10);
+ g.a.zc(h, g);
+ Qqb(BD(Ohb(a.a, h), 53), c);
+ ye(BD(Ohb(a.a, h), 53), f);
+ }
+ }
+ function WGc(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ d = BD(Ohb(a.a, b), 53);
+ f = BD(Ohb(a.a, c), 53);
+ e = BD(Ohb(a.b, b), 53);
+ g = BD(Ohb(a.b, c), 53);
+ d.a.zc(c, d);
+ g.a.zc(b, g);
+ for (k = f.a.ec().Kc(); k.Ob(); ) {
+ j = BD(k.Pb(), 10);
+ d.a.zc(j, d);
+ Qqb(BD(Ohb(a.b, j), 53), b);
+ ye(BD(Ohb(a.b, j), 53), e);
+ }
+ for (i = e.a.ec().Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 10);
+ g.a.zc(h, g);
+ Qqb(BD(Ohb(a.a, h), 53), c);
+ ye(BD(Ohb(a.a, h), 53), f);
+ }
+ }
+ function doc(a, b) {
+ var c, d, e;
+ Odd(b, "Breaking Point Insertion", 1);
+ d = new Xoc(a);
+ switch (BD(vNb(a, (Nyc(), Gyc)), 337).g) {
+ case 2:
+ e = new hpc();
+ case 0:
+ e = new Ync();
+ break;
+ default:
+ e = new kpc();
+ }
+ c = e.Vf(a, d);
+ Ccb(DD(vNb(a, Iyc))) && (c = coc(a, c));
+ if (!e.Wf() && wNb(a, Myc)) {
+ switch (BD(vNb(a, Myc), 338).g) {
+ case 2:
+ c = tpc(d, c);
+ break;
+ case 1:
+ c = rpc(d, c);
+ }
+ }
+ if (c.dc()) {
+ Qdd(b);
+ return;
+ }
+ aoc(a, c);
+ Qdd(b);
+ }
+ function $qd(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ k = null;
+ m = b;
+ l = Rqd(a, dtd(c), m);
+ Lkd(l, _pd(m, Vte));
+ g = Ypd(m, Lte);
+ d = new mrd(a, l);
+ oqd(d.a, d.b, g);
+ h = Ypd(m, Mte);
+ e = new nrd(a, l);
+ pqd(e.a, e.b, h);
+ if ((!l.b && (l.b = new y5d(z2, l, 4, 7)), l.b).i == 0 || (!l.c && (l.c = new y5d(z2, l, 5, 8)), l.c).i == 0) {
+ f = _pd(m, Vte);
+ i = Zte + f;
+ j = i + $te;
+ throw vbb(new cqd(j));
+ }
+ grd(m, l);
+ _qd(a, m, l);
+ k = crd(a, m, l);
+ return k;
+ }
+ function yGb(a, b) {
+ var c, d, e, f, g, h, i;
+ e = KC(WD, oje, 25, a.e.a.c.length, 15, 1);
+ for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 121);
+ e[f.d] += f.b.a.c.length;
+ }
+ h = Ru(b);
+ while (h.b != 0) {
+ f = BD(h.b == 0 ? null : (sCb(h.b != 0), Nsb(h, h.a.a)), 121);
+ for (d = vr(new olb(f.g.a)); d.Ob(); ) {
+ c = BD(d.Pb(), 213);
+ i = c.e;
+ i.e = $wnd.Math.max(i.e, f.e + c.a);
+ --e[i.d];
+ e[i.d] == 0 && (Gsb(h, i, h.c.b, h.c), true);
+ }
+ }
+ }
+ function CGb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l;
+ c = Rie;
+ e = Ohe;
+ for (h = new olb(a.e.a); h.a < h.c.c.length; ) {
+ f = BD(mlb(h), 121);
+ e = $wnd.Math.min(e, f.e);
+ c = $wnd.Math.max(c, f.e);
+ }
+ b = KC(WD, oje, 25, c - e + 1, 15, 1);
+ for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 121);
+ f.e -= e;
+ ++b[f.e];
+ }
+ d = 0;
+ if (a.k != null) {
+ for (j = a.k, k = 0, l = j.length; k < l; ++k) {
+ i = j[k];
+ b[d++] += i;
+ if (b.length == d) {
+ break;
+ }
+ }
+ }
+ return b;
+ }
+ function ixd(a) {
+ switch (a.d) {
+ case 9:
+ case 8: {
+ return true;
+ }
+ case 3:
+ case 5:
+ case 4:
+ case 6: {
+ return false;
+ }
+ case 7: {
+ return BD(hxd(a), 19).a == a.o;
+ }
+ case 1:
+ case 2: {
+ if (a.o == -2) {
+ return false;
+ } else {
+ switch (a.p) {
+ case 0:
+ case 1:
+ case 2:
+ case 6:
+ case 5:
+ case 7: {
+ return Bbb(a.k, a.f);
+ }
+ case 3:
+ case 4: {
+ return a.j == a.e;
+ }
+ default: {
+ return a.n == null ? a.g == null : pb(a.n, a.g);
+ }
+ }
+ }
+ }
+ default: {
+ return false;
+ }
+ }
+ }
+ function $ad(a) {
+ r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Qse), "ELK Fixed"), "Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points."), new bbd())));
+ p4c(a, Qse, ame, Xad);
+ p4c(a, Qse, uqe, Ksd(Yad));
+ p4c(a, Qse, use, Ksd(Sad));
+ p4c(a, Qse, Fme, Ksd(Tad));
+ p4c(a, Qse, Tme, Ksd(Vad));
+ p4c(a, Qse, bqe, Ksd(Uad));
+ }
+ function ro(a, b, c) {
+ var d, e, f, g, h;
+ d = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)));
+ h = Tbb(Ibb(Eie, keb(Tbb(Ibb(c == null ? 0 : tb(c), Fie)), 15)));
+ f = uo(a, b, d);
+ if (!!f && h == f.f && Hb(c, f.i)) {
+ return c;
+ }
+ g = vo(a, c, h);
+ if (g) {
+ throw vbb(new Wdb("value already present: " + c));
+ }
+ e = new $o(b, d, c, h);
+ if (f) {
+ mo(a, f);
+ po(a, e, f);
+ f.e = null;
+ f.c = null;
+ return f.i;
+ } else {
+ po(a, e, null);
+ to(a);
+ return null;
+ }
+ }
+ function E4b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2;
+ k = c.a.c;
+ g = c.a.c + c.a.b;
+ f = BD(Ohb(c.c, b), 459);
+ n = f.f;
+ o2 = f.a;
+ f.b ? i = new f7c(g, n) : i = new f7c(k, n);
+ f.c ? l = new f7c(k, o2) : l = new f7c(g, o2);
+ e = k;
+ c.p || (e += a.c);
+ e += c.F + c.v * a.b;
+ j = new f7c(e, n);
+ m = new f7c(e, o2);
+ n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [i, j]));
+ h = c.d.a.gc() > 1;
+ if (h) {
+ d = new f7c(e, c.b);
+ Dsb(b.a, d);
+ }
+ n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [m, l]));
+ }
+ function Nid(a, b, c) {
+ var d, e, f, g, h, i;
+ if (!b) {
+ return null;
+ } else {
+ if (c <= -1) {
+ d = XKd(b.Tg(), -1 - c);
+ if (JD(d, 99)) {
+ return BD(d, 18);
+ } else {
+ g = BD(b.ah(d), 153);
+ for (h = 0, i = g.gc(); h < i; ++h) {
+ if (PD(g.jl(h)) === PD(a)) {
+ e = g.il(h);
+ if (JD(e, 99)) {
+ f = BD(e, 18);
+ if ((f.Bb & ote) != 0) {
+ return f;
+ }
+ }
+ }
+ }
+ throw vbb(new Zdb("The containment feature could not be located"));
+ }
+ } else {
+ return zUd(BD(XKd(a.Tg(), c), 18));
+ }
+ }
+ }
+ function Xee(a) {
+ var b, c, d, e, f;
+ d = a.length;
+ b = new Ifb();
+ f = 0;
+ while (f < d) {
+ c = bfb(a, f++);
+ if (c == 9 || c == 10 || c == 12 || c == 13 || c == 32)
+ continue;
+ if (c == 35) {
+ while (f < d) {
+ c = bfb(a, f++);
+ if (c == 13 || c == 10)
+ break;
+ }
+ continue;
+ }
+ if (c == 92 && f < d) {
+ if ((e = (BCb(f, a.length), a.charCodeAt(f))) == 35 || e == 9 || e == 10 || e == 12 || e == 13 || e == 32) {
+ Afb(b, e & aje);
+ ++f;
+ } else {
+ b.a += "\\";
+ Afb(b, e & aje);
+ ++f;
+ }
+ } else
+ Afb(b, c & aje);
+ }
+ return b.a;
+ }
+ function GVc(a, b) {
+ var c, d, e;
+ for (d = new olb(b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 33);
+ Rc(a.a, c, c);
+ Rc(a.b, c, c);
+ e = gVc(c);
+ if (e.c.length != 0) {
+ !!a.d && a.d.lg(e);
+ Rc(a.a, c, (tCb(0, e.c.length), BD(e.c[0], 33)));
+ Rc(a.b, c, BD(Ikb(e, e.c.length - 1), 33));
+ while (dVc(e).c.length != 0) {
+ e = dVc(e);
+ !!a.d && a.d.lg(e);
+ Rc(a.a, c, (tCb(0, e.c.length), BD(e.c[0], 33)));
+ Rc(a.b, c, BD(Ikb(e, e.c.length - 1), 33));
+ }
+ }
+ }
+ }
+ function fnc(a) {
+ var b, c, d, e, f, g, h, i, j, k;
+ c = 0;
+ for (h = new olb(a.d); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 101);
+ !!g.i && (g.i.c = c++);
+ }
+ b = IC(sbb, [nie, dle], [177, 25], 16, [c, c], 2);
+ k = a.d;
+ for (e = 0; e < k.c.length; e++) {
+ i = (tCb(e, k.c.length), BD(k.c[e], 101));
+ if (i.i) {
+ for (f = e + 1; f < k.c.length; f++) {
+ j = (tCb(f, k.c.length), BD(k.c[f], 101));
+ if (j.i) {
+ d = knc(i, j);
+ b[i.i.c][j.i.c] = d;
+ b[j.i.c][i.i.c] = d;
+ }
+ }
+ }
+ }
+ return b;
+ }
+ function ht(a, b, c, d) {
+ var e, f, g;
+ g = new qu(b, c);
+ if (!a.a) {
+ a.a = a.e = g;
+ Rhb(a.b, b, new pu(g));
+ ++a.c;
+ } else if (!d) {
+ a.e.b = g;
+ g.d = a.e;
+ a.e = g;
+ e = BD(Ohb(a.b, b), 283);
+ if (!e) {
+ Rhb(a.b, b, e = new pu(g));
+ ++a.c;
+ } else {
+ ++e.a;
+ f = e.c;
+ f.c = g;
+ g.e = f;
+ e.c = g;
+ }
+ } else {
+ e = BD(Ohb(a.b, b), 283);
+ ++e.a;
+ g.d = d.d;
+ g.e = d.e;
+ g.b = d;
+ g.c = d;
+ !d.e ? BD(Ohb(a.b, b), 283).b = g : d.e.c = g;
+ !d.d ? a.a = g : d.d.b = g;
+ d.d = g;
+ d.e = g;
+ }
+ ++a.d;
+ return g;
+ }
+ function mfb(a, b) {
+ var c, d, e, f, g, h, i, j;
+ c = new RegExp(b, "g");
+ i = KC(ZI, nie, 2, 0, 6, 1);
+ d = 0;
+ j = a;
+ f = null;
+ while (true) {
+ h = c.exec(j);
+ if (h == null || j == "") {
+ i[d] = j;
+ break;
+ } else {
+ g = h.index;
+ i[d] = j.substr(0, g);
+ j = qfb(j, g + h[0].length, j.length);
+ c.lastIndex = 0;
+ if (f == j) {
+ i[d] = j.substr(0, 1);
+ j = j.substr(1);
+ }
+ f = j;
+ ++d;
+ }
+ }
+ if (a.length > 0) {
+ e = i.length;
+ while (e > 0 && i[e - 1] == "") {
+ --e;
+ }
+ e < i.length && (i.length = e);
+ }
+ return i;
+ }
+ function f1d(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ l = _Kd(b);
+ j = null;
+ e = false;
+ for (h = 0, k = VKd(l.a).i; h < k; ++h) {
+ g = BD(nOd(l, h, (f = BD(qud(VKd(l.a), h), 87), i = f.c, JD(i, 88) ? BD(i, 26) : (jGd(), _Fd))), 26);
+ c = f1d(a, g);
+ if (!c.dc()) {
+ if (!j) {
+ j = c;
+ } else {
+ if (!e) {
+ e = true;
+ j = new pFd(j);
+ }
+ j.Gc(c);
+ }
+ }
+ }
+ d = k1d(a, b);
+ if (d.dc()) {
+ return !j ? (mmb(), mmb(), jmb) : j;
+ } else {
+ if (!j) {
+ return d;
+ } else {
+ e || (j = new pFd(j));
+ j.Gc(d);
+ return j;
+ }
+ }
+ }
+ function g1d(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ l = _Kd(b);
+ j = null;
+ d = false;
+ for (h = 0, k = VKd(l.a).i; h < k; ++h) {
+ f = BD(nOd(l, h, (e = BD(qud(VKd(l.a), h), 87), i = e.c, JD(i, 88) ? BD(i, 26) : (jGd(), _Fd))), 26);
+ c = g1d(a, f);
+ if (!c.dc()) {
+ if (!j) {
+ j = c;
+ } else {
+ if (!d) {
+ d = true;
+ j = new pFd(j);
+ }
+ j.Gc(c);
+ }
+ }
+ }
+ g = n1d(a, b);
+ if (g.dc()) {
+ return !j ? (mmb(), mmb(), jmb) : j;
+ } else {
+ if (!j) {
+ return g;
+ } else {
+ d || (j = new pFd(j));
+ j.Gc(g);
+ return j;
+ }
+ }
+ }
+ function B2d(a, b, c) {
+ var d, e, f, g, h, i;
+ if (JD(b, 72)) {
+ return Txd(a, b, c);
+ } else {
+ h = null;
+ f = null;
+ d = BD(a.g, 119);
+ for (g = 0; g < a.i; ++g) {
+ e = d[g];
+ if (pb(b, e.dd())) {
+ f = e.ak();
+ if (JD(f, 99) && (BD(f, 18).Bb & ote) != 0) {
+ h = e;
+ break;
+ }
+ }
+ }
+ if (h) {
+ if (oid(a.e)) {
+ i = f.$j() ? H2d(a, 4, f, b, null, M2d(a, f, b, JD(f, 99) && (BD(f, 18).Bb & Tje) != 0), true) : H2d(a, f.Kj() ? 2 : 1, f, b, f.zj(), -1, true);
+ c ? c.Ei(i) : c = i;
+ }
+ c = B2d(a, h, c);
+ }
+ return c;
+ }
+ }
+ function pKb(a) {
+ var b, c, d, e;
+ d = a.o;
+ $Jb();
+ if (a.A.dc() || pb(a.A, ZJb)) {
+ e = d.a;
+ } else {
+ e = gIb(a.f);
+ if (a.A.Hc((tdd(), qdd)) && !a.B.Hc((Idd(), Edd))) {
+ e = $wnd.Math.max(e, gIb(BD(Mpb(a.p, (Ucd(), Acd)), 244)));
+ e = $wnd.Math.max(e, gIb(BD(Mpb(a.p, Rcd), 244)));
+ }
+ b = aKb(a);
+ !!b && (e = $wnd.Math.max(e, b.a));
+ }
+ Ccb(DD(a.e.yf().We((Y9c(), $8c)))) ? d.a = $wnd.Math.max(d.a, e) : d.a = e;
+ c = a.f.i;
+ c.c = 0;
+ c.b = e;
+ hIb(a.f);
+ }
+ function $0d(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ c = b.Hh(a.a);
+ if (c) {
+ i = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), "memberTypes"));
+ if (i != null) {
+ j = new Rkb();
+ for (f = mfb(i, "\\w"), g = 0, h = f.length; g < h; ++g) {
+ e = f[g];
+ d = e.lastIndexOf("#");
+ k = d == -1 ? w1d(a, b.Aj(), e) : d == 0 ? v1d(a, null, e.substr(1)) : v1d(a, e.substr(0, d), e.substr(d + 1));
+ JD(k, 148) && Ekb(j, BD(k, 148));
+ }
+ return j;
+ }
+ }
+ return mmb(), mmb(), jmb;
+ }
+ function tRb(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ Odd(c, kme, 1);
+ a.bf(b);
+ f = 0;
+ while (a.df(f)) {
+ for (k = new olb(b.e); k.a < k.c.c.length; ) {
+ i = BD(mlb(k), 144);
+ for (h = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [b.e, b.d, b.b]))); Qr(h); ) {
+ g = BD(Rr(h), 357);
+ if (g != i) {
+ e = a.af(g, i);
+ !!e && P6c(i.a, e);
+ }
+ }
+ }
+ for (j = new olb(b.e); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 144);
+ d = i.a;
+ Q6c(d, -a.d, -a.d, a.d, a.d);
+ P6c(i.d, d);
+ X6c(d);
+ }
+ a.cf();
+ ++f;
+ }
+ Qdd(c);
+ }
+ function $2d(a, b, c) {
+ var d, e, f, g;
+ g = S6d(a.e.Tg(), b);
+ d = BD(a.g, 119);
+ Q6d();
+ if (BD(b, 66).Oj()) {
+ for (f = 0; f < a.i; ++f) {
+ e = d[f];
+ if (g.rl(e.ak())) {
+ if (pb(e, c)) {
+ Xxd(a, f);
+ return true;
+ }
+ }
+ }
+ } else if (c != null) {
+ for (f = 0; f < a.i; ++f) {
+ e = d[f];
+ if (g.rl(e.ak())) {
+ if (pb(c, e.dd())) {
+ Xxd(a, f);
+ return true;
+ }
+ }
+ }
+ } else {
+ for (f = 0; f < a.i; ++f) {
+ e = d[f];
+ if (g.rl(e.ak())) {
+ if (e.dd() == null) {
+ Xxd(a, f);
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+ function sDc(a, b) {
+ var c, d, e, f, g;
+ a.c == null || a.c.length < b.c.length ? a.c = KC(sbb, dle, 25, b.c.length, 16, 1) : Blb(a.c);
+ a.a = new Rkb();
+ d = 0;
+ for (g = new olb(b); g.a < g.c.c.length; ) {
+ e = BD(mlb(g), 10);
+ e.p = d++;
+ }
+ c = new Psb();
+ for (f = new olb(b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ if (!a.c[e.p]) {
+ tDc(a, e);
+ c.b == 0 || (sCb(c.b != 0), BD(c.a.a.c, 15)).gc() < a.a.c.length ? Esb(c, a.a) : Fsb(c, a.a);
+ a.a = new Rkb();
+ }
+ }
+ return c;
+ }
+ function jYc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2;
+ g = BD(qud(b, 0), 33);
+ dld(g, 0);
+ eld(g, 0);
+ m = new Rkb();
+ m.c[m.c.length] = g;
+ h = g;
+ f = new d$c(a.a, g.g, g.f, (k$c(), j$c));
+ for (n = 1; n < b.i; n++) {
+ o2 = BD(qud(b, n), 33);
+ i = kYc(a, g$c, o2, h, f, m, c);
+ j = kYc(a, f$c, o2, h, f, m, c);
+ k = kYc(a, i$c, o2, h, f, m, c);
+ l = kYc(a, h$c, o2, h, f, m, c);
+ e = mYc(a, i, j, k, l, o2, h, d);
+ dld(o2, e.d);
+ eld(o2, e.e);
+ c$c(e, j$c);
+ f = e;
+ h = o2;
+ m.c[m.c.length] = o2;
+ }
+ return f;
+ }
+ function K0c(a) {
+ r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), ase), "ELK SPOrE Overlap Removal"), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new N0c())));
+ p4c(a, ase, Qre, Ksd(I0c));
+ p4c(a, ase, ame, G0c);
+ p4c(a, ase, wme, 8);
+ p4c(a, ase, Vre, Ksd(H0c));
+ p4c(a, ase, Yre, Ksd(E0c));
+ p4c(a, ase, Zre, Ksd(F0c));
+ p4c(a, ase, Zpe, (Bcb(), false));
+ }
+ function sXb(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n;
+ g = O6c(b.c, c, d);
+ for (l = new olb(b.a); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 10);
+ P6c(k.n, g);
+ for (n = new olb(k.j); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 11);
+ for (f = new olb(m.g); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 17);
+ q7c(e.a, g);
+ h = BD(vNb(e, (Nyc(), jxc)), 74);
+ !!h && q7c(h, g);
+ for (j = new olb(e.b); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 70);
+ P6c(i.n, g);
+ }
+ }
+ }
+ Ekb(a.a, k);
+ k.a = a;
+ }
+ }
+ function g9b(a, b) {
+ var c, d, e, f, g;
+ Odd(b, "Node and Port Label Placement and Node Sizing", 1);
+ MGb((a$b(), new l$b(a, true, true, new j9b())));
+ if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
+ f = BD(vNb(a, (Nyc(), Yxc)), 21);
+ e = f.Hc((rcd(), ocd));
+ g = Ccb(DD(vNb(a, Zxc)));
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 29);
+ MAb(JAb(new YAb(null, new Kub(c.a, 16)), new l9b()), new n9b(f, e, g));
+ }
+ }
+ Qdd(b);
+ }
+ function Y0d(a, b) {
+ var c, d, e, f, g, h;
+ c = b.Hh(a.a);
+ if (c) {
+ h = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), eue));
+ if (h != null) {
+ e = kfb(h, wfb(35));
+ d = b.Hj();
+ if (e == -1) {
+ g = u1d(a, bKd(d));
+ f = h;
+ } else if (e == 0) {
+ g = null;
+ f = h.substr(1);
+ } else {
+ g = h.substr(0, e);
+ f = h.substr(e + 1);
+ }
+ switch ($1d(q1d(a, b))) {
+ case 2:
+ case 3: {
+ return j1d(a, d, g, f);
+ }
+ case 0:
+ case 4:
+ case 5:
+ case 6: {
+ return m1d(a, d, g, f);
+ }
+ }
+ }
+ }
+ return null;
+ }
+ function q2d(a, b, c) {
+ var d, e, f, g, h;
+ g = (Q6d(), BD(b, 66).Oj());
+ if (T6d(a.e, b)) {
+ if (b.hi() && F2d(a, b, c, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
+ return false;
+ }
+ } else {
+ h = S6d(a.e.Tg(), b);
+ d = BD(a.g, 119);
+ for (f = 0; f < a.i; ++f) {
+ e = d[f];
+ if (h.rl(e.ak())) {
+ if (g ? pb(e, c) : c == null ? e.dd() == null : pb(c, e.dd())) {
+ return false;
+ } else {
+ BD(Gtd(a, f, g ? BD(c, 72) : R6d(b, c)), 72);
+ return true;
+ }
+ }
+ }
+ }
+ return wtd(a, g ? BD(c, 72) : R6d(b, c));
+ }
+ function uVb(a) {
+ var b, c, d, e, f, g, h, i;
+ if (a.d) {
+ throw vbb(new Zdb((fdb(LP), Jke + LP.k + Kke)));
+ }
+ a.c == (ead(), cad) && tVb(a, aad);
+ for (c = new olb(a.a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 189);
+ b.e = 0;
+ }
+ for (g = new olb(a.a.b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 81);
+ f.o = Qje;
+ for (e = f.f.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 81);
+ ++d.d.e;
+ }
+ }
+ JVb(a);
+ for (i = new olb(a.a.b); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 81);
+ h.k = true;
+ }
+ return a;
+ }
+ function Ijc(a, b) {
+ var c, d, e, f, g, h, i, j;
+ h = new pjc(a);
+ c = new Psb();
+ Gsb(c, b, c.c.b, c.c);
+ while (c.b != 0) {
+ d = BD(c.b == 0 ? null : (sCb(c.b != 0), Nsb(c, c.a.a)), 113);
+ d.d.p = 1;
+ for (g = new olb(d.e); g.a < g.c.c.length; ) {
+ e = BD(mlb(g), 409);
+ kjc(h, e);
+ j = e.d;
+ j.d.p == 0 && (Gsb(c, j, c.c.b, c.c), true);
+ }
+ for (f = new olb(d.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 409);
+ kjc(h, e);
+ i = e.c;
+ i.d.p == 0 && (Gsb(c, i, c.c.b, c.c), true);
+ }
+ }
+ return h;
+ }
+ function hfd(a) {
+ var b, c, d, e, f;
+ d = Edb(ED(hkd(a, (Y9c(), G9c))));
+ if (d == 1) {
+ return;
+ }
+ _kd(a, d * a.g, d * a.f);
+ c = Mq(Rq((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c), new Hfd()));
+ for (f = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n), (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c), c]))); Qr(f); ) {
+ e = BD(Rr(f), 470);
+ e.Gg(d * e.Dg(), d * e.Eg());
+ e.Fg(d * e.Cg(), d * e.Bg());
+ b = BD(e.We(r9c), 8);
+ if (b) {
+ b.a *= d;
+ b.b *= d;
+ }
+ }
+ }
+ function Mac(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m;
+ for (g = new olb(a.b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 29);
+ m = l_b(f.a);
+ for (j = m, k = 0, l = j.length; k < l; ++k) {
+ i = j[k];
+ switch (BD(vNb(i, (Nyc(), mxc)), 163).g) {
+ case 1:
+ Qac(i);
+ $_b(i, b);
+ Nac(i, true, d);
+ break;
+ case 3:
+ Rac(i);
+ $_b(i, c);
+ Nac(i, false, e);
+ }
+ }
+ }
+ h = new Bib(a.b, 0);
+ while (h.b < h.d.gc()) {
+ (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29)).a.c.length == 0 && uib(h);
+ }
+ }
+ function d1d(a, b) {
+ var c, d, e, f, g, h, i;
+ c = b.Hh(a.a);
+ if (c) {
+ i = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), Dwe));
+ if (i != null) {
+ d = new Rkb();
+ for (f = mfb(i, "\\w"), g = 0, h = f.length; g < h; ++g) {
+ e = f[g];
+ dfb(e, "##other") ? Ekb(d, "!##" + u1d(a, bKd(b.Hj()))) : dfb(e, "##local") ? (d.c[d.c.length] = null, true) : dfb(e, Bwe) ? Ekb(d, u1d(a, bKd(b.Hj()))) : (d.c[d.c.length] = e, true);
+ }
+ return d;
+ }
+ }
+ return mmb(), mmb(), jmb;
+ }
+ function kMb(a, b) {
+ var c, d, e, f;
+ c = new pMb();
+ d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
+ e = d.gc();
+ d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21);
+ f = d.gc();
+ e = e == 1 ? 1 : 0;
+ f = f == 1 ? 1 : 0;
+ if (e < f) {
+ return -1;
+ }
+ if (e == f) {
+ return 0;
+ }
+ return 1;
+ }
+ function hZb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m;
+ h = a.i;
+ e = Ccb(DD(vNb(h, (Nyc(), fxc))));
+ k = 0;
+ d = 0;
+ for (j = new olb(a.g); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 17);
+ g = OZb(i);
+ f = g && e && Ccb(DD(vNb(i, gxc)));
+ m = i.d.i;
+ g && f ? ++d : g && !f ? ++k : Q_b(m).e == h ? ++d : ++k;
+ }
+ for (c = new olb(a.e); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 17);
+ g = OZb(b);
+ f = g && e && Ccb(DD(vNb(b, gxc)));
+ l = b.c.i;
+ g && f ? ++k : g && !f ? ++d : Q_b(l).e == h ? ++k : ++d;
+ }
+ return k - d;
+ }
+ function ULc(a, b, c, d) {
+ this.e = a;
+ this.k = BD(vNb(a, (wtc(), otc)), 304);
+ this.g = KC(OQ, kne, 10, b, 0, 1);
+ this.b = KC(BI, nie, 333, b, 7, 1);
+ this.a = KC(OQ, kne, 10, b, 0, 1);
+ this.d = KC(BI, nie, 333, b, 7, 1);
+ this.j = KC(OQ, kne, 10, b, 0, 1);
+ this.i = KC(BI, nie, 333, b, 7, 1);
+ this.p = KC(BI, nie, 333, b, 7, 1);
+ this.n = KC(wI, nie, 476, b, 8, 1);
+ Alb(this.n, (Bcb(), false));
+ this.f = KC(wI, nie, 476, b, 8, 1);
+ Alb(this.f, true);
+ this.o = c;
+ this.c = d;
+ }
+ function X9b(a, b) {
+ var c, d, e, f, g, h;
+ if (b.dc()) {
+ return;
+ }
+ if (BD(b.Xb(0), 286).d == (Apc(), xpc)) {
+ O9b(a, b);
+ } else {
+ for (d = b.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 286);
+ switch (c.d.g) {
+ case 5:
+ K9b(a, c, Q9b(a, c));
+ break;
+ case 0:
+ K9b(a, c, (g = c.f - c.c + 1, h = (g - 1) / 2 | 0, c.c + h));
+ break;
+ case 4:
+ K9b(a, c, S9b(a, c));
+ break;
+ case 2:
+ Y9b(c);
+ K9b(a, c, (f = U9b(c), f ? c.c : c.f));
+ break;
+ case 1:
+ Y9b(c);
+ K9b(a, c, (e = U9b(c), e ? c.f : c.c));
+ }
+ P9b(c.a);
+ }
+ }
+ }
+ function C4b(a, b) {
+ var c, d, e, f, g, h, i;
+ if (b.e) {
+ return;
+ }
+ b.e = true;
+ for (d = b.d.a.ec().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 17);
+ if (b.o && b.d.a.gc() <= 1) {
+ g = b.a.c;
+ h = b.a.c + b.a.b;
+ i = new f7c(g + (h - g) / 2, b.b);
+ Dsb(BD(b.d.a.ec().Kc().Pb(), 17).a, i);
+ continue;
+ }
+ e = BD(Ohb(b.c, c), 459);
+ if (e.b || e.c) {
+ E4b(a, c, b);
+ continue;
+ }
+ f = a.d == (tBc(), sBc) && (e.d || e.e) && K4b(a, b) && b.d.a.gc() <= 1;
+ f ? F4b(c, b) : D4b(a, c, b);
+ }
+ b.k && reb(b.d, new X4b());
+ }
+ function zXc(a, b, c, d, e, f) {
+ var g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ m = f;
+ h = (d + e) / 2 + m;
+ q = c * $wnd.Math.cos(h);
+ r = c * $wnd.Math.sin(h);
+ s = q - b.g / 2;
+ t = r - b.f / 2;
+ dld(b, s);
+ eld(b, t);
+ l = a.a.jg(b);
+ p = 2 * $wnd.Math.acos(c / c + a.c);
+ if (p < e - d) {
+ n = p / l;
+ g = (d + e - p) / 2;
+ } else {
+ n = (e - d) / l;
+ g = d;
+ }
+ o2 = gVc(b);
+ if (a.e) {
+ a.e.kg(a.d);
+ a.e.lg(o2);
+ }
+ for (j = new olb(o2); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 33);
+ k = a.a.jg(i);
+ zXc(a, i, c + a.c, g, g + n * k, f);
+ g += n * k;
+ }
+ }
+ function jA(a, b, c) {
+ var d;
+ d = c.q.getMonth();
+ switch (b) {
+ case 5:
+ Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[d]);
+ break;
+ case 4:
+ Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje])[d]);
+ break;
+ case 3:
+ Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[d]);
+ break;
+ default:
+ EA(a, d + 1, b);
+ }
+ }
+ function uGb(a, b) {
+ var c, d, e, f, g;
+ Odd(b, "Network simplex", 1);
+ if (a.e.a.c.length < 1) {
+ Qdd(b);
+ return;
+ }
+ for (f = new olb(a.e.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 121);
+ e.e = 0;
+ }
+ g = a.e.a.c.length >= 40;
+ g && FGb(a);
+ wGb(a);
+ vGb(a);
+ c = zGb(a);
+ d = 0;
+ while (!!c && d < a.f) {
+ tGb(a, c, sGb(a, c));
+ c = zGb(a);
+ ++d;
+ }
+ g && EGb(a);
+ a.a ? qGb(a, CGb(a)) : CGb(a);
+ a.b = null;
+ a.d = null;
+ a.p = null;
+ a.c = null;
+ a.g = null;
+ a.i = null;
+ a.n = null;
+ a.o = null;
+ Qdd(b);
+ }
+ function JQb(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m;
+ i = new f7c(c, d);
+ c7c(i, BD(vNb(b, (HSb(), ESb)), 8));
+ for (m = new olb(b.e); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 144);
+ P6c(l.d, i);
+ Ekb(a.e, l);
+ }
+ for (h = new olb(b.c); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 282);
+ for (f = new olb(g.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 559);
+ P6c(e.d, i);
+ }
+ Ekb(a.c, g);
+ }
+ for (k = new olb(b.d); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 447);
+ P6c(j.d, i);
+ Ekb(a.d, j);
+ }
+ }
+ function _Bc(a, b) {
+ var c, d, e, f, g, h, i, j;
+ for (i = new olb(b.j); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 11);
+ for (e = new b1b(h.b); llb(e.a) || llb(e.b); ) {
+ d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
+ c = d.c == h ? d.d : d.c;
+ f = c.i;
+ if (b == f) {
+ continue;
+ }
+ j = BD(vNb(d, (Nyc(), cyc)), 19).a;
+ j < 0 && (j = 0);
+ g = f.p;
+ if (a.b[g] == 0) {
+ if (d.d == c) {
+ a.a[g] -= j + 1;
+ a.a[g] <= 0 && a.c[g] > 0 && Dsb(a.f, f);
+ } else {
+ a.c[g] -= j + 1;
+ a.c[g] <= 0 && a.a[g] > 0 && Dsb(a.e, f);
+ }
+ }
+ }
+ }
+ }
+ function _Kb(a) {
+ var b, c, d, e, f, g, h, i, j;
+ h = new Hxb(BD(Qb(new nLb()), 62));
+ j = Qje;
+ for (c = new olb(a.d); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 222);
+ j = b.c.c;
+ while (h.a.c != 0) {
+ i = BD(zjb(Bwb(h.a)), 222);
+ if (i.c.c + i.c.b < j) {
+ Jwb(h.a, i) != null;
+ } else {
+ break;
+ }
+ }
+ for (g = (e = new Ywb(new cxb(new Gjb(h.a).a).b), new Njb(e)); sib(g.a.a); ) {
+ f = (d = Wwb(g.a), BD(d.cd(), 222));
+ Dsb(f.b, b);
+ Dsb(b.b, f);
+ }
+ Iwb(h.a, b, (Bcb(), zcb)) == null;
+ }
+ }
+ function QEc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ f = new Skb(b.c.length);
+ for (j = new olb(b); j.a < j.c.c.length; ) {
+ g = BD(mlb(j), 10);
+ Ekb(f, a.b[g.c.p][g.p]);
+ }
+ LEc(a, f, c);
+ l = null;
+ while (l = MEc(f)) {
+ NEc(a, BD(l.a, 233), BD(l.b, 233), f);
+ }
+ b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ for (e = new olb(f); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 233);
+ for (h = d.d, i = 0, k = h.length; i < k; ++i) {
+ g = h[i];
+ b.c[b.c.length] = g;
+ a.a[g.c.p][g.p].a = REc(d.g, d.d[0]).a;
+ }
+ }
+ }
+ function JRc(a, b) {
+ var c, d, e, f;
+ if (0 < (JD(a, 14) ? BD(a, 14).gc() : sr(a.Kc()))) {
+ e = b;
+ if (1 < e) {
+ --e;
+ f = new KRc();
+ for (d = a.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 86);
+ f = pl(OC(GC(KI, 1), Uhe, 20, 0, [f, new ZRc(c)]));
+ }
+ return JRc(f, e);
+ }
+ if (e < 0) {
+ f = new NRc();
+ for (d = a.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 86);
+ f = pl(OC(GC(KI, 1), Uhe, 20, 0, [f, new ZRc(c)]));
+ }
+ if (0 < (JD(f, 14) ? BD(f, 14).gc() : sr(f.Kc()))) {
+ return JRc(f, e);
+ }
+ }
+ }
+ return BD(pr(a.Kc()), 86);
+ }
+ function Idd() {
+ Idd = ccb;
+ Bdd = new Jdd("DEFAULT_MINIMUM_SIZE", 0);
+ Ddd = new Jdd("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING", 1);
+ Add = new Jdd("COMPUTE_PADDING", 2);
+ Edd = new Jdd("OUTSIDE_NODE_LABELS_OVERHANG", 3);
+ Fdd = new Jdd("PORTS_OVERHANG", 4);
+ Hdd = new Jdd("UNIFORM_PORT_SPACING", 5);
+ Gdd = new Jdd("SPACE_EFFICIENT_PORT_LABELS", 6);
+ Cdd = new Jdd("FORCE_TABULAR_NODE_LABELS", 7);
+ zdd = new Jdd("ASYMMETRICAL", 8);
+ }
+ function s6d(a, b) {
+ var c, d, e, f, g, h, i, j;
+ if (!b) {
+ return null;
+ } else {
+ c = (f = b.Tg(), !f ? null : bKd(f).Nh().Jh(f));
+ if (c) {
+ Xrb(a, b, c);
+ e = b.Tg();
+ for (i = 0, j = (e.i == null && TKd(e), e.i).length; i < j; ++i) {
+ h = (d = (e.i == null && TKd(e), e.i), i >= 0 && i < d.length ? d[i] : null);
+ if (h.Ij() && !h.Jj()) {
+ if (JD(h, 322)) {
+ u6d(a, BD(h, 34), b, c);
+ } else {
+ g = BD(h, 18);
+ (g.Bb & ote) != 0 && w6d(a, g, b, c);
+ }
+ }
+ }
+ b.kh() && BD(c, 49).vh(BD(b, 49).qh());
+ }
+ return c;
+ }
+ }
+ function tGb(a, b, c) {
+ var d, e, f;
+ if (!b.f) {
+ throw vbb(new Wdb("Given leave edge is no tree edge."));
+ }
+ if (c.f) {
+ throw vbb(new Wdb("Given enter edge is a tree edge already."));
+ }
+ b.f = false;
+ Sqb(a.p, b);
+ c.f = true;
+ Qqb(a.p, c);
+ d = c.e.e - c.d.e - c.a;
+ xGb(a, c.e, b) || (d = -d);
+ for (f = new olb(a.e.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 121);
+ xGb(a, e, b) || (e.e += d);
+ }
+ a.j = 1;
+ Blb(a.c);
+ DGb(a, BD(mlb(new olb(a.e.a)), 121));
+ rGb(a);
+ }
+ function x6b(a, b) {
+ var c, d, e, f, g, h;
+ h = BD(vNb(b, (Nyc(), Vxc)), 98);
+ if (!(h == (dcd(), _bd) || h == $bd)) {
+ return;
+ }
+ e = new f7c(b.f.a + b.d.b + b.d.c, b.f.b + b.d.d + b.d.a).b;
+ for (g = new olb(a.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ if (f.k != (j0b(), e0b)) {
+ continue;
+ }
+ c = BD(vNb(f, (wtc(), Hsc)), 61);
+ if (c != (Ucd(), zcd) && c != Tcd) {
+ continue;
+ }
+ d = Edb(ED(vNb(f, htc)));
+ h == _bd && (d *= e);
+ f.n.b = d - BD(vNb(f, Txc), 8).b;
+ M_b(f, false, true);
+ }
+ }
+ function YDc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n;
+ bEc(a, b, c);
+ f = b[c];
+ n = d ? (Ucd(), Tcd) : (Ucd(), zcd);
+ if (ZDc(b.length, c, d)) {
+ e = b[d ? c - 1 : c + 1];
+ UDc(a, e, d ? (KAc(), IAc) : (KAc(), HAc));
+ for (i = f, k = 0, m = i.length; k < m; ++k) {
+ g = i[k];
+ XDc(a, g, n);
+ }
+ UDc(a, f, d ? (KAc(), HAc) : (KAc(), IAc));
+ for (h = e, j = 0, l = h.length; j < l; ++j) {
+ g = h[j];
+ !!g.e || XDc(a, g, Wcd(n));
+ }
+ } else {
+ for (h = f, j = 0, l = h.length; j < l; ++j) {
+ g = h[j];
+ XDc(a, g, n);
+ }
+ }
+ return false;
+ }
+ function nFc(a, b, c, d) {
+ var e, f, g, h, i, j, k;
+ i = V_b(b, c);
+ (c == (Ucd(), Rcd) || c == Tcd) && (i = JD(i, 152) ? km(BD(i, 152)) : JD(i, 131) ? BD(i, 131).a : JD(i, 54) ? new ov(i) : new dv(i));
+ g = false;
+ do {
+ e = false;
+ for (f = 0; f < i.gc() - 1; f++) {
+ j = BD(i.Xb(f), 11);
+ h = BD(i.Xb(f + 1), 11);
+ if (oFc(a, j, h, d)) {
+ g = true;
+ cIc(a.a, BD(i.Xb(f), 11), BD(i.Xb(f + 1), 11));
+ k = BD(i.Xb(f + 1), 11);
+ i._c(f + 1, BD(i.Xb(f), 11));
+ i._c(f, k);
+ e = true;
+ }
+ }
+ } while (e);
+ return g;
+ }
+ function W2d(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2;
+ if (oid(a.e)) {
+ if (b != c) {
+ e = BD(a.g, 119);
+ n = e[c];
+ g = n.ak();
+ if (T6d(a.e, g)) {
+ o2 = S6d(a.e.Tg(), g);
+ i = -1;
+ h = -1;
+ d = 0;
+ for (j = 0, l = b > c ? b : c; j <= l; ++j) {
+ if (j == c) {
+ h = d++;
+ } else {
+ f = e[j];
+ k = o2.rl(f.ak());
+ j == b && (i = j == l && !k ? d - 1 : d);
+ k && ++d;
+ }
+ }
+ m = BD(Wxd(a, b, c), 72);
+ h != i && GLd(a, new ESd(a.e, 7, g, meb(h), n.dd(), i));
+ return m;
+ }
+ }
+ } else {
+ return BD(sud(a, b, c), 72);
+ }
+ return BD(Wxd(a, b, c), 72);
+ }
+ function Qcc(a, b) {
+ var c, d, e, f, g, h, i;
+ Odd(b, "Port order processing", 1);
+ i = BD(vNb(a, (Nyc(), _xc)), 421);
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 29);
+ for (f = new olb(c.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ g = BD(vNb(e, Vxc), 98);
+ h = e.j;
+ if (g == (dcd(), Zbd) || g == _bd || g == $bd) {
+ mmb();
+ Okb(h, Icc);
+ } else if (g != bcd && g != ccd) {
+ mmb();
+ Okb(h, Lcc);
+ Scc(h);
+ i == (BAc(), AAc) && Okb(h, Kcc);
+ }
+ e.i = true;
+ N_b(e);
+ }
+ }
+ Qdd(b);
+ }
+ function vDc(a) {
+ var b, c, d, e, f, g, h, i;
+ i = new Lqb();
+ b = new KFb();
+ for (g = a.Kc(); g.Ob(); ) {
+ e = BD(g.Pb(), 10);
+ h = nGb(oGb(new pGb(), e), b);
+ jrb(i.f, e, h);
+ }
+ for (f = a.Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 10);
+ for (d = new Sr(ur(U_b(e).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ if (OZb(c)) {
+ continue;
+ }
+ AFb(DFb(CFb(BFb(EFb(new FFb(), $wnd.Math.max(1, BD(vNb(c, (Nyc(), dyc)), 19).a)), 1), BD(Ohb(i, c.c.i), 121)), BD(Ohb(i, c.d.i), 121)));
+ }
+ }
+ return b;
+ }
+ function tNc() {
+ tNc = ccb;
+ oNc = e3c(new j3c(), (qUb(), oUb), (S8b(), k8b));
+ qNc = e3c(new j3c(), nUb, o8b);
+ rNc = c3c(e3c(new j3c(), nUb, C8b), pUb, B8b);
+ nNc = c3c(e3c(e3c(new j3c(), nUb, e8b), oUb, f8b), pUb, g8b);
+ sNc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b);
+ pNc = c3c(new j3c(), pUb, l8b);
+ lNc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b);
+ mNc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b);
+ }
+ function XC(a, b, c, d, e, f) {
+ var g, h, i, j, k, l, m;
+ j = $C(b) - $C(a);
+ g = kD(b, j);
+ i = TC(0, 0, 0);
+ while (j >= 0) {
+ h = bD(a, g);
+ if (h) {
+ j < 22 ? (i.l |= 1 << j, void 0) : j < 44 ? (i.m |= 1 << j - 22, void 0) : (i.h |= 1 << j - 44, void 0);
+ if (a.l == 0 && a.m == 0 && a.h == 0) {
+ break;
+ }
+ }
+ k = g.m;
+ l = g.h;
+ m = g.l;
+ g.h = l >>> 1;
+ g.m = k >>> 1 | (l & 1) << 21;
+ g.l = m >>> 1 | (k & 1) << 21;
+ --j;
+ }
+ c && ZC(i);
+ if (f) {
+ if (d) {
+ QC = hD(a);
+ e && (QC = nD(QC, (wD(), uD)));
+ } else {
+ QC = TC(a.l, a.m, a.h);
+ }
+ }
+ return i;
+ }
+ function TDc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ j = a.e[b.c.p][b.p] + 1;
+ i = b.c.a.c.length + 1;
+ for (h = new olb(a.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 11);
+ l = 0;
+ f = 0;
+ for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(g), new R0b(g)]))); Qr(e); ) {
+ d = BD(Rr(e), 11);
+ if (d.i.c == b.c) {
+ l += aEc(a, d.i) + 1;
+ ++f;
+ }
+ }
+ c = l / f;
+ k = g.j;
+ k == (Ucd(), zcd) ? c < j ? a.f[g.p] = a.c - c : a.f[g.p] = a.b + (i - c) : k == Tcd && (c < j ? a.f[g.p] = a.b + c : a.f[g.p] = a.c - (i - c));
+ }
+ }
+ function Icb(a, b, c) {
+ var d, e, f, g, h;
+ if (a == null) {
+ throw vbb(new Oeb(Xhe));
+ }
+ f = a.length;
+ g = f > 0 && (BCb(0, a.length), a.charCodeAt(0) == 45 || (BCb(0, a.length), a.charCodeAt(0) == 43)) ? 1 : 0;
+ for (d = g; d < f; d++) {
+ if (Zcb((BCb(d, a.length), a.charCodeAt(d))) == -1) {
+ throw vbb(new Oeb(Oje + a + '"'));
+ }
+ }
+ h = parseInt(a, 10);
+ e = h < b;
+ if (isNaN(h)) {
+ throw vbb(new Oeb(Oje + a + '"'));
+ } else if (e || h > c) {
+ throw vbb(new Oeb(Oje + a + '"'));
+ }
+ return h;
+ }
+ function dnc(a) {
+ var b, c, d, e, f, g, h;
+ g = new Psb();
+ for (f = new olb(a.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 112);
+ pOc(e, e.f.c.length);
+ qOc(e, e.k.c.length);
+ if (e.i == 0) {
+ e.o = 0;
+ Gsb(g, e, g.c.b, g.c);
+ }
+ }
+ while (g.b != 0) {
+ e = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 112);
+ d = e.o + 1;
+ for (c = new olb(e.f); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 129);
+ h = b.a;
+ rOc(h, $wnd.Math.max(h.o, d));
+ qOc(h, h.i - 1);
+ h.i == 0 && (Gsb(g, h, g.c.b, g.c), true);
+ }
+ }
+ }
+ function v2c(a) {
+ var b, c, d, e, f, g, h, i;
+ for (g = new olb(a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 79);
+ d = atd(BD(qud((!f.b && (f.b = new y5d(z2, f, 4, 7)), f.b), 0), 82));
+ h = d.i;
+ i = d.j;
+ e = BD(qud((!f.a && (f.a = new cUd(A2, f, 6, 6)), f.a), 0), 202);
+ nmd(e, e.j + h, e.k + i);
+ gmd(e, e.b + h, e.c + i);
+ for (c = new Fyd((!e.a && (e.a = new xMd(y2, e, 5)), e.a)); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 469);
+ ukd(b, b.a + h, b.b + i);
+ }
+ p7c(BD(hkd(f, (Y9c(), Q8c)), 74), h, i);
+ }
+ }
+ function fee(a) {
+ var b;
+ switch (a) {
+ case 100:
+ return kee(nxe, true);
+ case 68:
+ return kee(nxe, false);
+ case 119:
+ return kee(oxe, true);
+ case 87:
+ return kee(oxe, false);
+ case 115:
+ return kee(pxe, true);
+ case 83:
+ return kee(pxe, false);
+ case 99:
+ return kee(qxe, true);
+ case 67:
+ return kee(qxe, false);
+ case 105:
+ return kee(rxe, true);
+ case 73:
+ return kee(rxe, false);
+ default:
+ throw vbb(new hz((b = a, mxe + b.toString(16))));
+ }
+ }
+ function $Xb(a) {
+ var b, c, d, e, f;
+ e = BD(Ikb(a.a, 0), 10);
+ b = new b0b(a);
+ Ekb(a.a, b);
+ b.o.a = $wnd.Math.max(1, e.o.a);
+ b.o.b = $wnd.Math.max(1, e.o.b);
+ b.n.a = e.n.a;
+ b.n.b = e.n.b;
+ switch (BD(vNb(e, (wtc(), Hsc)), 61).g) {
+ case 4:
+ b.n.a += 2;
+ break;
+ case 1:
+ b.n.b += 2;
+ break;
+ case 2:
+ b.n.a -= 2;
+ break;
+ case 3:
+ b.n.b -= 2;
+ }
+ d = new H0b();
+ F0b(d, b);
+ c = new UZb();
+ f = BD(Ikb(e.j, 0), 11);
+ QZb(c, f);
+ RZb(c, d);
+ P6c(X6c(d.n), f.n);
+ P6c(X6c(d.a), f.a);
+ return b;
+ }
+ function Fac(a, b, c, d, e) {
+ if (c && (!d || (a.c - a.b & a.a.length - 1) > 1) && b == 1 && BD(a.a[a.b], 10).k == (j0b(), f0b)) {
+ zac(BD(a.a[a.b], 10), (rbd(), nbd));
+ } else if (d && (!c || (a.c - a.b & a.a.length - 1) > 1) && b == 1 && BD(a.a[a.c - 1 & a.a.length - 1], 10).k == (j0b(), f0b)) {
+ zac(BD(a.a[a.c - 1 & a.a.length - 1], 10), (rbd(), obd));
+ } else if ((a.c - a.b & a.a.length - 1) == 2) {
+ zac(BD(bkb(a), 10), (rbd(), nbd));
+ zac(BD(bkb(a), 10), obd);
+ } else {
+ wac(a, e);
+ }
+ Yjb(a);
+ }
+ function pRc(a, b, c) {
+ var d, e, f, g, h;
+ f = 0;
+ for (e = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); e.e != e.i.gc(); ) {
+ d = BD(Dyd(e), 33);
+ g = "";
+ (!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n).i == 0 || (g = BD(qud((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n), 0), 137).a);
+ h = new XRc(f++, b, g);
+ tNb(h, d);
+ yNb(h, (mTc(), dTc), d);
+ h.e.b = d.j + d.f / 2;
+ h.f.a = $wnd.Math.max(d.g, 1);
+ h.e.a = d.i + d.g / 2;
+ h.f.b = $wnd.Math.max(d.f, 1);
+ Dsb(b.b, h);
+ jrb(c.f, d, h);
+ }
+ }
+ function B2b(a) {
+ var b, c, d, e, f;
+ d = BD(vNb(a, (wtc(), $sc)), 33);
+ f = BD(hkd(d, (Nyc(), Fxc)), 174).Hc((tdd(), sdd));
+ if (!a.e) {
+ e = BD(vNb(a, Ksc), 21);
+ b = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a);
+ if (e.Hc((Orc(), Hrc))) {
+ jkd(d, Vxc, (dcd(), $bd));
+ Afd(d, b.a, b.b, false, true);
+ } else {
+ Ccb(DD(hkd(d, Gxc))) || Afd(d, b.a, b.b, true, true);
+ }
+ }
+ f ? jkd(d, Fxc, pqb(sdd)) : jkd(d, Fxc, (c = BD(gdb(I1), 9), new xqb(c, BD(_Bb(c, c.length), 9), 0)));
+ }
+ function tA(a, b, c) {
+ var d, e, f, g;
+ if (b[0] >= a.length) {
+ c.o = 0;
+ return true;
+ }
+ switch (bfb(a, b[0])) {
+ case 43:
+ e = 1;
+ break;
+ case 45:
+ e = -1;
+ break;
+ default:
+ c.o = 0;
+ return true;
+ }
+ ++b[0];
+ f = b[0];
+ g = rA(a, b);
+ if (g == 0 && b[0] == f) {
+ return false;
+ }
+ if (b[0] < a.length && bfb(a, b[0]) == 58) {
+ d = g * 60;
+ ++b[0];
+ f = b[0];
+ g = rA(a, b);
+ if (g == 0 && b[0] == f) {
+ return false;
+ }
+ d += g;
+ } else {
+ d = g;
+ d < 24 && b[0] - f <= 2 ? d *= 60 : d = d % 100 + (d / 100 | 0) * 60;
+ }
+ d *= e;
+ c.o = -d;
+ return true;
+ }
+ function Hjc(a) {
+ var b, c, d, e, f, g, h, i, j;
+ g = new Rkb();
+ for (d = new Sr(ur(U_b(a.b).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ OZb(c) && Ekb(g, new Gjc(c, Jjc(a, c.c), Jjc(a, c.d)));
+ }
+ for (j = (f = new $ib(a.e).a.vc().Kc(), new djb(f)); j.a.Ob(); ) {
+ h = (b = BD(j.a.Pb(), 42), BD(b.dd(), 113));
+ h.d.p = 0;
+ }
+ for (i = (e = new $ib(a.e).a.vc().Kc(), new djb(e)); i.a.Ob(); ) {
+ h = (b = BD(i.a.Pb(), 42), BD(b.dd(), 113));
+ h.d.p == 0 && Ekb(a.d, Ijc(a, h));
+ }
+ }
+ function W1b(a) {
+ var b, c, d, e, f, g, h;
+ f = mpd(a);
+ for (e = new Fyd((!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e)); e.e != e.i.gc(); ) {
+ d = BD(Dyd(e), 79);
+ h = atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82));
+ if (!ntd(h, f)) {
+ return true;
+ }
+ }
+ for (c = new Fyd((!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d)); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 79);
+ g = atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82));
+ if (!ntd(g, f)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function Dmc(a) {
+ var b, c, d, e, f, g, h, i;
+ i = new s7c();
+ b = Jsb(a, 0);
+ h = null;
+ c = BD(Xsb(b), 8);
+ e = BD(Xsb(b), 8);
+ while (b.b != b.d.c) {
+ h = c;
+ c = e;
+ e = BD(Xsb(b), 8);
+ f = Emc(c7c(new f7c(h.a, h.b), c));
+ g = Emc(c7c(new f7c(e.a, e.b), c));
+ d = 10;
+ d = $wnd.Math.min(d, $wnd.Math.abs(f.a + f.b) / 2);
+ d = $wnd.Math.min(d, $wnd.Math.abs(g.a + g.b) / 2);
+ f.a = Eeb(f.a) * d;
+ f.b = Eeb(f.b) * d;
+ g.a = Eeb(g.a) * d;
+ g.b = Eeb(g.b) * d;
+ Dsb(i, P6c(f, c));
+ Dsb(i, P6c(g, c));
+ }
+ return i;
+ }
+ function _hd(a, b, c, d) {
+ var e, f, g, h, i;
+ g = a.eh();
+ i = a.Zg();
+ e = null;
+ if (i) {
+ if (!!b && (Nid(a, b, c).Bb & Tje) == 0) {
+ d = Txd(i.Vk(), a, d);
+ a.uh(null);
+ e = b.fh();
+ } else {
+ i = null;
+ }
+ } else {
+ !!g && (i = g.fh());
+ !!b && (e = b.fh());
+ }
+ i != e && !!i && i.Zk(a);
+ h = a.Vg();
+ a.Rg(b, c);
+ i != e && !!e && e.Yk(a);
+ if (a.Lg() && a.Mg()) {
+ if (!!g && h >= 0 && h != c) {
+ f = new nSd(a, 1, h, g, null);
+ !d ? d = f : d.Ei(f);
+ }
+ if (c >= 0) {
+ f = new nSd(a, 1, c, h == c ? g : null, b);
+ !d ? d = f : d.Ei(f);
+ }
+ }
+ return d;
+ }
+ function LEd(a) {
+ var b, c, d;
+ if (a.b == null) {
+ d = new Hfb();
+ if (a.i != null) {
+ Efb(d, a.i);
+ d.a += ":";
+ }
+ if ((a.f & 256) != 0) {
+ if ((a.f & 256) != 0 && a.a != null) {
+ YEd(a.i) || (d.a += "//", d);
+ Efb(d, a.a);
+ }
+ if (a.d != null) {
+ d.a += "/";
+ Efb(d, a.d);
+ }
+ (a.f & 16) != 0 && (d.a += "/", d);
+ for (b = 0, c = a.j.length; b < c; b++) {
+ b != 0 && (d.a += "/", d);
+ Efb(d, a.j[b]);
+ }
+ if (a.g != null) {
+ d.a += "?";
+ Efb(d, a.g);
+ }
+ } else {
+ Efb(d, a.a);
+ }
+ if (a.e != null) {
+ d.a += "#";
+ Efb(d, a.e);
+ }
+ a.b = d.a;
+ }
+ return a.b;
+ }
+ function E5b(a, b) {
+ var c, d, e, f, g, h;
+ for (e = new olb(b.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 10);
+ f = vNb(d, (wtc(), $sc));
+ if (JD(f, 11)) {
+ g = BD(f, 11);
+ h = b_b(b, d, g.o.a, g.o.b);
+ g.n.a = h.a;
+ g.n.b = h.b;
+ G0b(g, BD(vNb(d, Hsc), 61));
+ }
+ }
+ c = new f7c(b.f.a + b.d.b + b.d.c, b.f.b + b.d.d + b.d.a);
+ if (BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
+ yNb(a, (Nyc(), Vxc), (dcd(), $bd));
+ BD(vNb(Q_b(a), Ksc), 21).Fc(Krc);
+ j_b(a, c, false);
+ } else {
+ j_b(a, c, true);
+ }
+ }
+ function YFc(a, b, c) {
+ var d, e, f, g, h, i;
+ Odd(c, "Minimize Crossings " + a.a, 1);
+ d = b.b.c.length == 0 || !WAb(JAb(new YAb(null, new Kub(b.b, 16)), new Xxb(new xGc()))).sd((EAb(), DAb));
+ i = b.b.c.length == 1 && BD(Ikb(b.b, 0), 29).a.c.length == 1;
+ f = PD(vNb(b, (Nyc(), axc))) === PD((hbd(), ebd));
+ if (d || i && !f) {
+ Qdd(c);
+ return;
+ }
+ e = TFc(a, b);
+ g = (h = BD(Ut(e, 0), 214), h.c.Rf() ? h.c.Lf() ? new kGc(a) : new mGc(a) : new iGc(a));
+ UFc(e, g);
+ eGc(a);
+ Qdd(c);
+ }
+ function so(a, b, c, d) {
+ var e, f, g, h, i;
+ i = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)));
+ e = Tbb(Ibb(Eie, keb(Tbb(Ibb(c == null ? 0 : tb(c), Fie)), 15)));
+ h = vo(a, b, i);
+ g = uo(a, c, e);
+ if (!!h && e == h.a && Hb(c, h.g)) {
+ return c;
+ } else if (!!g && !d) {
+ throw vbb(new Wdb("key already present: " + c));
+ }
+ !!h && mo(a, h);
+ !!g && mo(a, g);
+ f = new $o(c, e, b, i);
+ po(a, f, g);
+ if (g) {
+ g.e = null;
+ g.c = null;
+ }
+ if (h) {
+ h.e = null;
+ h.c = null;
+ }
+ to(a);
+ return !h ? null : h.g;
+ }
+ function Lhb(a, b, c) {
+ var d, e, f, g, h;
+ for (f = 0; f < b; f++) {
+ d = 0;
+ for (h = f + 1; h < b; h++) {
+ d = wbb(wbb(Ibb(xbb(a[f], Yje), xbb(a[h], Yje)), xbb(c[f + h], Yje)), xbb(Tbb(d), Yje));
+ c[f + h] = Tbb(d);
+ d = Pbb(d, 32);
+ }
+ c[f + b] = Tbb(d);
+ }
+ khb(c, c, b << 1);
+ d = 0;
+ for (e = 0, g = 0; e < b; ++e, g++) {
+ d = wbb(wbb(Ibb(xbb(a[e], Yje), xbb(a[e], Yje)), xbb(c[g], Yje)), xbb(Tbb(d), Yje));
+ c[g] = Tbb(d);
+ d = Pbb(d, 32);
+ ++g;
+ d = wbb(d, xbb(c[g], Yje));
+ c[g] = Tbb(d);
+ d = Pbb(d, 32);
+ }
+ return c;
+ }
+ function ZJc(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ if (Qq(b)) {
+ return;
+ }
+ i = Edb(ED(pBc(c.c, (Nyc(), zyc))));
+ j = BD(pBc(c.c, yyc), 142);
+ !j && (j = new H_b());
+ d = c.a;
+ e = null;
+ for (h = b.Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 11);
+ k = 0;
+ if (!e) {
+ k = j.d;
+ } else {
+ k = i;
+ k += e.o.b;
+ }
+ f = nGb(oGb(new pGb(), g), a.f);
+ Rhb(a.k, g, f);
+ AFb(DFb(CFb(BFb(EFb(new FFb(), 0), QD($wnd.Math.ceil(k))), d), f));
+ e = g;
+ d = f;
+ }
+ AFb(DFb(CFb(BFb(EFb(new FFb(), 0), QD($wnd.Math.ceil(j.a + e.o.b))), d), c.d));
+ }
+ function uZc(a, b, c, d, e, f, g, h) {
+ var i, j, k, l, m, n;
+ n = false;
+ m = f - c.s;
+ k = c.t - b.f + (j = MZc(c, m, false), j.a);
+ if (d.g + h > m) {
+ return false;
+ }
+ l = (i = MZc(d, m, false), i.a);
+ if (k + h + l <= b.b) {
+ KZc(c, f - c.s);
+ c.c = true;
+ KZc(d, f - c.s);
+ OZc(d, c.s, c.t + c.d + h);
+ d.k = true;
+ WZc(c.q, d);
+ n = true;
+ if (e) {
+ s$c(b, d);
+ d.j = b;
+ if (a.c.length > g) {
+ v$c((tCb(g, a.c.length), BD(a.c[g], 200)), d);
+ (tCb(g, a.c.length), BD(a.c[g], 200)).a.c.length == 0 && Kkb(a, g);
+ }
+ }
+ }
+ return n;
+ }
+ function kcc(a, b) {
+ var c, d, e, f, g, h;
+ Odd(b, "Partition midprocessing", 1);
+ e = new Hp();
+ MAb(JAb(new YAb(null, new Kub(a.a, 16)), new occ()), new qcc(e));
+ if (e.d == 0) {
+ return;
+ }
+ h = BD(GAb(UAb((f = e.i, new YAb(null, (!f ? e.i = new zf(e, e.c) : f).Nc()))), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
+ d = h.Kc();
+ c = BD(d.Pb(), 19);
+ while (d.Ob()) {
+ g = BD(d.Pb(), 19);
+ jcc(BD(Qc(e, c), 21), BD(Qc(e, g), 21));
+ c = g;
+ }
+ Qdd(b);
+ }
+ function DYb(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ if (b.p == 0) {
+ b.p = 1;
+ g = c;
+ if (!g) {
+ e = new Rkb();
+ f = (d = BD(gdb(F1), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0));
+ g = new vgd(e, f);
+ }
+ BD(g.a, 15).Fc(b);
+ b.k == (j0b(), e0b) && BD(g.b, 21).Fc(BD(vNb(b, (wtc(), Hsc)), 61));
+ for (i = new olb(b.j); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 11);
+ for (k = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(h), new R0b(h)]))); Qr(k); ) {
+ j = BD(Rr(k), 11);
+ DYb(a, j.i, g);
+ }
+ }
+ return g;
+ }
+ return null;
+ }
+ function Dmd(a, b) {
+ var c, d, e, f, g;
+ if (a.Ab) {
+ if (a.Ab) {
+ g = a.Ab.i;
+ if (g > 0) {
+ e = BD(a.Ab.g, 1934);
+ if (b == null) {
+ for (f = 0; f < g; ++f) {
+ c = e[f];
+ if (c.d == null) {
+ return c;
+ }
+ }
+ } else {
+ for (f = 0; f < g; ++f) {
+ c = e[f];
+ if (dfb(b, c.d)) {
+ return c;
+ }
+ }
+ }
+ }
+ } else {
+ if (b == null) {
+ for (d = new Fyd(a.Ab); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 590);
+ if (c.d == null) {
+ return c;
+ }
+ }
+ } else {
+ for (d = new Fyd(a.Ab); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 590);
+ if (dfb(b, c.d)) {
+ return c;
+ }
+ }
+ }
+ }
+ }
+ return null;
+ }
+ function gRc(a, b) {
+ var c, d, e, f, g, h, i, j;
+ j = DD(vNb(b, (JTc(), GTc)));
+ if (j == null || (uCb(j), j)) {
+ dRc(a, b);
+ e = new Rkb();
+ for (i = Jsb(b.b, 0); i.b != i.d.c; ) {
+ g = BD(Xsb(i), 86);
+ c = cRc(a, g, null);
+ if (c) {
+ tNb(c, b);
+ e.c[e.c.length] = c;
+ }
+ }
+ a.a = null;
+ a.b = null;
+ if (e.c.length > 1) {
+ for (d = new olb(e); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 135);
+ f = 0;
+ for (h = Jsb(c.b, 0); h.b != h.d.c; ) {
+ g = BD(Xsb(h), 86);
+ g.g = f++;
+ }
+ }
+ }
+ return e;
+ }
+ return Ou(OC(GC(n$, 1), fme, 135, 0, [b]));
+ }
+ function rqd(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, p, q, r, s, t, u, v;
+ n = Sqd(a, etd(b), e);
+ jmd(n, _pd(e, Vte));
+ o = null;
+ p = e;
+ q = $pd(p, Yte);
+ r = new urd(n);
+ wqd(r.a, q);
+ s = $pd(p, "endPoint");
+ t = new yrd(n);
+ yqd(t.a, s);
+ u = Ypd(p, Ote);
+ v = new Brd(n);
+ zqd(v.a, u);
+ l = _pd(e, Qte);
+ f = new qrd(a, n);
+ sqd(f.a, f.b, l);
+ m = _pd(e, Pte);
+ g = new rrd(a, n);
+ tqd(g.a, g.b, m);
+ j = Ypd(e, Ste);
+ h = new srd(c, n);
+ uqd(h.b, h.a, j);
+ k = Ypd(e, Rte);
+ i = new trd(d, n);
+ vqd(i.b, i.a, k);
+ }
+ function i_b(a, b, c) {
+ var d, e, f, g, h;
+ h = null;
+ switch (b.g) {
+ case 1:
+ for (e = new olb(a.j); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 11);
+ if (Ccb(DD(vNb(d, (wtc(), Msc))))) {
+ return d;
+ }
+ }
+ h = new H0b();
+ yNb(h, (wtc(), Msc), (Bcb(), true));
+ break;
+ case 2:
+ for (g = new olb(a.j); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 11);
+ if (Ccb(DD(vNb(f, (wtc(), etc))))) {
+ return f;
+ }
+ }
+ h = new H0b();
+ yNb(h, (wtc(), etc), (Bcb(), true));
+ }
+ if (h) {
+ F0b(h, a);
+ G0b(h, c);
+ X$b(h.n, a.o, c);
+ }
+ return h;
+ }
+ function O3b(a, b) {
+ var c, d, e, f, g, h;
+ h = -1;
+ g = new Psb();
+ for (d = new b1b(a.b); llb(d.a) || llb(d.b); ) {
+ c = BD(llb(d.a) ? mlb(d.a) : mlb(d.b), 17);
+ h = $wnd.Math.max(h, Edb(ED(vNb(c, (Nyc(), Zwc)))));
+ c.c == a ? MAb(JAb(new YAb(null, new Kub(c.b, 16)), new U3b()), new W3b(g)) : MAb(JAb(new YAb(null, new Kub(c.b, 16)), new Y3b()), new $3b(g));
+ for (f = Jsb(g, 0); f.b != f.d.c; ) {
+ e = BD(Xsb(f), 70);
+ wNb(e, (wtc(), Dsc)) || yNb(e, Dsc, c);
+ }
+ Gkb(b, g);
+ Osb(g);
+ }
+ return h;
+ }
+ function _bc(a, b, c, d, e) {
+ var f, g, h, i;
+ f = new b0b(a);
+ __b(f, (j0b(), i0b));
+ yNb(f, (Nyc(), Vxc), (dcd(), $bd));
+ yNb(f, (wtc(), $sc), b.c.i);
+ g = new H0b();
+ yNb(g, $sc, b.c);
+ G0b(g, e);
+ F0b(g, f);
+ yNb(b.c, gtc, f);
+ h = new b0b(a);
+ __b(h, i0b);
+ yNb(h, Vxc, $bd);
+ yNb(h, $sc, b.d.i);
+ i = new H0b();
+ yNb(i, $sc, b.d);
+ G0b(i, e);
+ F0b(i, h);
+ yNb(b.d, gtc, h);
+ QZb(b, g);
+ RZb(b, i);
+ wCb(0, c.c.length);
+ aCb(c.c, 0, f);
+ d.c[d.c.length] = h;
+ yNb(f, ysc, meb(1));
+ yNb(h, ysc, meb(1));
+ }
+ function BPc(a, b, c, d, e) {
+ var f, g, h, i, j;
+ h = e ? d.b : d.a;
+ if (Rqb(a.a, d)) {
+ return;
+ }
+ j = h > c.s && h < c.c;
+ i = false;
+ if (c.e.b != 0 && c.j.b != 0) {
+ i = i | ($wnd.Math.abs(h - Edb(ED(Hsb(c.e)))) < qme && $wnd.Math.abs(h - Edb(ED(Hsb(c.j)))) < qme);
+ i = i | ($wnd.Math.abs(h - Edb(ED(Isb(c.e)))) < qme && $wnd.Math.abs(h - Edb(ED(Isb(c.j)))) < qme);
+ }
+ if (j || i) {
+ g = BD(vNb(b, (Nyc(), jxc)), 74);
+ if (!g) {
+ g = new s7c();
+ yNb(b, jxc, g);
+ }
+ f = new g7c(d);
+ Gsb(g, f, g.c.b, g.c);
+ Qqb(a.a, f);
+ }
+ }
+ function gNb(a, b, c, d) {
+ var e, f, g, h, i, j, k;
+ if (fNb(a, b, c, d)) {
+ return true;
+ } else {
+ for (g = new olb(b.f); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 324);
+ h = false;
+ i = a.j - b.j + c;
+ j = i + b.o;
+ k = a.k - b.k + d;
+ e = k + b.p;
+ switch (f.a.g) {
+ case 0:
+ h = oNb(a, i + f.b.a, 0, i + f.c.a, k - 1);
+ break;
+ case 1:
+ h = oNb(a, j, k + f.b.a, a.o - 1, k + f.c.a);
+ break;
+ case 2:
+ h = oNb(a, i + f.b.a, e, i + f.c.a, a.p - 1);
+ break;
+ default:
+ h = oNb(a, 0, k + f.b.a, i - 1, k + f.c.a);
+ }
+ if (h) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ function LMc(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ for (g = new olb(b.b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 29);
+ for (j = new olb(f.a); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 10);
+ k = new Rkb();
+ h = 0;
+ for (d = new Sr(ur(R_b(i).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ if (OZb(c) || !OZb(c) && c.c.i.c == c.d.i.c) {
+ continue;
+ }
+ e = BD(vNb(c, (Nyc(), eyc)), 19).a;
+ if (e > h) {
+ h = e;
+ k.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ e == h && Ekb(k, new vgd(c.c.i, c));
+ }
+ mmb();
+ Okb(k, a.c);
+ Dkb(a.b, i.p, k);
+ }
+ }
+ }
+ function MMc(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ for (g = new olb(b.b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 29);
+ for (j = new olb(f.a); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 10);
+ k = new Rkb();
+ h = 0;
+ for (d = new Sr(ur(U_b(i).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ if (OZb(c) || !OZb(c) && c.c.i.c == c.d.i.c) {
+ continue;
+ }
+ e = BD(vNb(c, (Nyc(), eyc)), 19).a;
+ if (e > h) {
+ h = e;
+ k.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ e == h && Ekb(k, new vgd(c.d.i, c));
+ }
+ mmb();
+ Okb(k, a.c);
+ Dkb(a.f, i.p, k);
+ }
+ }
+ }
+ function Y7c(a) {
+ r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), qse), "ELK Box"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges."), new _7c())));
+ p4c(a, qse, ame, U7c);
+ p4c(a, qse, wme, 15);
+ p4c(a, qse, vme, meb(0));
+ p4c(a, qse, Jre, Ksd(O7c));
+ p4c(a, qse, Fme, Ksd(Q7c));
+ p4c(a, qse, Eme, Ksd(S7c));
+ p4c(a, qse, _le, pse);
+ p4c(a, qse, Ame, Ksd(P7c));
+ p4c(a, qse, Tme, Ksd(R7c));
+ p4c(a, qse, rse, Ksd(M7c));
+ p4c(a, qse, lqe, Ksd(N7c));
+ }
+ function W$b(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ e = a.i;
+ g = e.o.a;
+ f = e.o.b;
+ if (g <= 0 && f <= 0) {
+ return Ucd(), Scd;
+ }
+ j = a.n.a;
+ k = a.n.b;
+ h = a.o.a;
+ c = a.o.b;
+ switch (b.g) {
+ case 2:
+ case 1:
+ if (j < 0) {
+ return Ucd(), Tcd;
+ } else if (j + h > g) {
+ return Ucd(), zcd;
+ }
+ break;
+ case 4:
+ case 3:
+ if (k < 0) {
+ return Ucd(), Acd;
+ } else if (k + c > f) {
+ return Ucd(), Rcd;
+ }
+ }
+ i = (j + h / 2) / g;
+ d = (k + c / 2) / f;
+ return i + d <= 1 && i - d <= 0 ? (Ucd(), Tcd) : i + d >= 1 && i - d >= 0 ? (Ucd(), zcd) : d < 0.5 ? (Ucd(), Acd) : (Ucd(), Rcd);
+ }
+ function pJc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ c = false;
+ k = Edb(ED(vNb(b, (Nyc(), vyc))));
+ o2 = Qie * k;
+ for (e = new olb(b.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ j = new olb(d.a);
+ f = BD(mlb(j), 10);
+ l = xJc(a.a[f.p]);
+ while (j.a < j.c.c.length) {
+ h = BD(mlb(j), 10);
+ m = xJc(a.a[h.p]);
+ if (l != m) {
+ n = jBc(a.b, f, h);
+ g = f.n.b + f.o.b + f.d.a + l.a + n;
+ i = h.n.b - h.d.d + m.a;
+ if (g > i + o2) {
+ p = l.g + m.g;
+ m.a = (m.g * m.a + l.g * l.a) / p;
+ m.g = p;
+ l.f = m;
+ c = true;
+ }
+ }
+ f = h;
+ l = m;
+ }
+ }
+ return c;
+ }
+ function VGb(a, b, c, d, e, f, g) {
+ var h, i, j, k, l, m;
+ m = new I6c();
+ for (j = b.Kc(); j.Ob(); ) {
+ h = BD(j.Pb(), 839);
+ for (l = new olb(h.wf()); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 181);
+ if (PD(k.We((Y9c(), C8c))) === PD((qad(), pad))) {
+ SGb(m, k, false, d, e, f, g);
+ H6c(a, m);
+ }
+ }
+ }
+ for (i = c.Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 839);
+ for (l = new olb(h.wf()); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 181);
+ if (PD(k.We((Y9c(), C8c))) === PD((qad(), oad))) {
+ SGb(m, k, true, d, e, f, g);
+ H6c(a, m);
+ }
+ }
+ }
+ }
+ function oRc(a, b, c) {
+ var d, e, f, g, h, i, j;
+ for (g = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); g.e != g.i.gc(); ) {
+ f = BD(Dyd(g), 33);
+ for (e = new Sr(ur(_sd(f).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 79);
+ if (!Pld(d) && !Pld(d) && !Qld(d)) {
+ i = BD(Wd(irb(c.f, f)), 86);
+ j = BD(Ohb(c, atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))), 86);
+ if (!!i && !!j) {
+ h = new QRc(i, j);
+ yNb(h, (mTc(), dTc), d);
+ tNb(h, d);
+ Dsb(i.d, h);
+ Dsb(j.b, h);
+ Dsb(b.a, h);
+ }
+ }
+ }
+ }
+ }
+ function QKb(a, b) {
+ var c, d, e, f, g, h, i, j;
+ for (i = BD(BD(Qc(a.r, b), 21), 84).Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 111);
+ e = h.c ? YHb(h.c) : 0;
+ if (e > 0) {
+ if (h.a) {
+ j = h.b.rf().b;
+ if (e > j) {
+ if (a.v || h.c.d.c.length == 1) {
+ g = (e - j) / 2;
+ h.d.d = g;
+ h.d.a = g;
+ } else {
+ c = BD(Ikb(h.c.d, 0), 181).rf().b;
+ d = (c - j) / 2;
+ h.d.d = $wnd.Math.max(0, d);
+ h.d.a = e - d - j;
+ }
+ }
+ } else {
+ h.d.a = a.t + e;
+ }
+ } else if (tcd(a.u)) {
+ f = sfd(h.b);
+ f.d < 0 && (h.d.d = -f.d);
+ f.d + f.a > h.b.rf().b && (h.d.a = f.d + f.a - h.b.rf().b);
+ }
+ }
+ }
+ function FC(a, b) {
+ var c;
+ switch (HC(a)) {
+ case 6:
+ return ND(b);
+ case 7:
+ return LD(b);
+ case 8:
+ return KD(b);
+ case 3:
+ return Array.isArray(b) && (c = HC(b), !(c >= 14 && c <= 16));
+ case 11:
+ return b != null && typeof b === Nhe;
+ case 12:
+ return b != null && (typeof b === Jhe || typeof b == Nhe);
+ case 0:
+ return AD(b, a.__elementTypeId$);
+ case 2:
+ return OD(b) && !(b.im === gcb);
+ case 1:
+ return OD(b) && !(b.im === gcb) || AD(b, a.__elementTypeId$);
+ default:
+ return true;
+ }
+ }
+ function xOb(a, b) {
+ var c, d, e, f;
+ d = $wnd.Math.min($wnd.Math.abs(a.c - (b.c + b.b)), $wnd.Math.abs(a.c + a.b - b.c));
+ f = $wnd.Math.min($wnd.Math.abs(a.d - (b.d + b.a)), $wnd.Math.abs(a.d + a.a - b.d));
+ c = $wnd.Math.abs(a.c + a.b / 2 - (b.c + b.b / 2));
+ if (c > a.b / 2 + b.b / 2) {
+ return 1;
+ }
+ e = $wnd.Math.abs(a.d + a.a / 2 - (b.d + b.a / 2));
+ if (e > a.a / 2 + b.a / 2) {
+ return 1;
+ }
+ if (c == 0 && e == 0) {
+ return 0;
+ }
+ if (c == 0) {
+ return f / e + 1;
+ }
+ if (e == 0) {
+ return d / c + 1;
+ }
+ return $wnd.Math.min(d / c, f / e) + 1;
+ }
+ function mgb(a, b) {
+ var c, d, e, f, g, h;
+ e = pgb(a);
+ h = pgb(b);
+ if (e == h) {
+ if (a.e == b.e && a.a < 54 && b.a < 54) {
+ return a.f < b.f ? -1 : a.f > b.f ? 1 : 0;
+ }
+ d = a.e - b.e;
+ c = (a.d > 0 ? a.d : $wnd.Math.floor((a.a - 1) * Xje) + 1) - (b.d > 0 ? b.d : $wnd.Math.floor((b.a - 1) * Xje) + 1);
+ if (c > d + 1) {
+ return e;
+ } else if (c < d - 1) {
+ return -e;
+ } else {
+ f = (!a.c && (a.c = fhb(a.f)), a.c);
+ g = (!b.c && (b.c = fhb(b.f)), b.c);
+ d < 0 ? f = Ogb(f, Khb(-d)) : d > 0 && (g = Ogb(g, Khb(d)));
+ return Igb(f, g);
+ }
+ } else
+ return e < h ? -1 : 1;
+ }
+ function mTb(a, b) {
+ var c, d, e, f, g, h, i;
+ f = 0;
+ h = 0;
+ i = 0;
+ for (e = new olb(a.f.e); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 144);
+ if (b == d) {
+ continue;
+ }
+ g = a.i[b.b][d.b];
+ f += g;
+ c = S6c(b.d, d.d);
+ c > 0 && a.d != (yTb(), xTb) && (h += g * (d.d.a + a.a[b.b][d.b] * (b.d.a - d.d.a) / c));
+ c > 0 && a.d != (yTb(), vTb) && (i += g * (d.d.b + a.a[b.b][d.b] * (b.d.b - d.d.b) / c));
+ }
+ switch (a.d.g) {
+ case 1:
+ return new f7c(h / f, b.d.b);
+ case 2:
+ return new f7c(b.d.a, i / f);
+ default:
+ return new f7c(h / f, i / f);
+ }
+ }
+ function Wcc(a, b) {
+ Occ();
+ var c, d, e, f, g;
+ g = BD(vNb(a.i, (Nyc(), Vxc)), 98);
+ f = a.j.g - b.j.g;
+ if (f != 0 || !(g == (dcd(), Zbd) || g == _bd || g == $bd)) {
+ return 0;
+ }
+ if (g == (dcd(), Zbd)) {
+ c = BD(vNb(a, Wxc), 19);
+ d = BD(vNb(b, Wxc), 19);
+ if (!!c && !!d) {
+ e = c.a - d.a;
+ if (e != 0) {
+ return e;
+ }
+ }
+ }
+ switch (a.j.g) {
+ case 1:
+ return Kdb(a.n.a, b.n.a);
+ case 2:
+ return Kdb(a.n.b, b.n.b);
+ case 3:
+ return Kdb(b.n.a, a.n.a);
+ case 4:
+ return Kdb(b.n.b, a.n.b);
+ default:
+ throw vbb(new Zdb(ine));
+ }
+ }
+ function tfd(a) {
+ var b, c, d, e, f, g;
+ c = (!a.a && (a.a = new xMd(y2, a, 5)), a.a).i + 2;
+ g = new Skb(c);
+ Ekb(g, new f7c(a.j, a.k));
+ MAb(new YAb(null, (!a.a && (a.a = new xMd(y2, a, 5)), new Kub(a.a, 16))), new Qfd(g));
+ Ekb(g, new f7c(a.b, a.c));
+ b = 1;
+ while (b < g.c.length - 1) {
+ d = (tCb(b - 1, g.c.length), BD(g.c[b - 1], 8));
+ e = (tCb(b, g.c.length), BD(g.c[b], 8));
+ f = (tCb(b + 1, g.c.length), BD(g.c[b + 1], 8));
+ d.a == e.a && e.a == f.a || d.b == e.b && e.b == f.b ? Kkb(g, b) : ++b;
+ }
+ return g;
+ }
+ function Xgc(a, b) {
+ var c, d, e, f, g, h, i;
+ c = vDb(yDb(wDb(xDb(new zDb(), b), new K6c(b.e)), Ggc), a.a);
+ b.j.c.length == 0 || nDb(BD(Ikb(b.j, 0), 57).a, c);
+ i = new lEb();
+ Rhb(a.e, c, i);
+ g = new Tqb();
+ h = new Tqb();
+ for (f = new olb(b.k); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 17);
+ Qqb(g, e.c);
+ Qqb(h, e.d);
+ }
+ d = g.a.gc() - h.a.gc();
+ if (d < 0) {
+ jEb(i, true, (ead(), aad));
+ jEb(i, false, bad);
+ } else if (d > 0) {
+ jEb(i, false, (ead(), aad));
+ jEb(i, true, bad);
+ }
+ Hkb(b.g, new $hc(a, c));
+ Rhb(a.g, b, c);
+ }
+ function Neb() {
+ Neb = ccb;
+ var a;
+ Jeb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]);
+ Keb = KC(WD, oje, 25, 37, 15, 1);
+ Leb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]);
+ Meb = KC(XD, Sje, 25, 37, 14, 1);
+ for (a = 2; a <= 36; a++) {
+ Keb[a] = QD($wnd.Math.pow(a, Jeb[a]));
+ Meb[a] = Abb(rie, Keb[a]);
+ }
+ }
+ function pfd(a) {
+ var b;
+ if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i != 1) {
+ throw vbb(new Wdb(Tse + (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i));
+ }
+ b = new s7c();
+ !!btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)) && ye(b, qfd(a, btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)), false));
+ !!btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)) && ye(b, qfd(a, btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)), true));
+ return b;
+ }
+ function _Mc(a, b) {
+ var c, d, e, f, g;
+ b.d ? e = a.a.c == (YLc(), XLc) ? R_b(b.b) : U_b(b.b) : e = a.a.c == (YLc(), WLc) ? R_b(b.b) : U_b(b.b);
+ f = false;
+ for (d = new Sr(ur(e.a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ g = Ccb(a.a.f[a.a.g[b.b.p].p]);
+ if (!g && !OZb(c) && c.c.i.c == c.d.i.c) {
+ continue;
+ }
+ if (Ccb(a.a.n[a.a.g[b.b.p].p]) || Ccb(a.a.n[a.a.g[b.b.p].p])) {
+ continue;
+ }
+ f = true;
+ if (Rqb(a.b, a.a.g[TMc(c, b.b).p])) {
+ b.c = true;
+ b.a = c;
+ return b;
+ }
+ }
+ b.c = f;
+ b.a = null;
+ return b;
+ }
+ function bed(a, b, c, d, e) {
+ var f, g, h, i, j, k, l;
+ mmb();
+ Okb(a, new Red());
+ h = new Bib(a, 0);
+ l = new Rkb();
+ f = 0;
+ while (h.b < h.d.gc()) {
+ g = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 157));
+ if (l.c.length != 0 && red(g) * qed(g) > f * 2) {
+ k = new wed(l);
+ j = red(g) / qed(g);
+ i = fed(k, b, new p0b(), c, d, e, j);
+ P6c(X6c(k.e), i);
+ l.c = KC(SI, Uhe, 1, 0, 5, 1);
+ f = 0;
+ l.c[l.c.length] = k;
+ l.c[l.c.length] = g;
+ f = red(k) * qed(k) + red(g) * qed(g);
+ } else {
+ l.c[l.c.length] = g;
+ f += red(g) * qed(g);
+ }
+ }
+ return l;
+ }
+ function qwd(a, b, c) {
+ var d, e, f, g, h, i, j;
+ d = c.gc();
+ if (d == 0) {
+ return false;
+ } else {
+ if (a.ej()) {
+ i = a.fj();
+ zvd(a, b, c);
+ g = d == 1 ? a.Zi(3, null, c.Kc().Pb(), b, i) : a.Zi(5, null, c, b, i);
+ if (a.bj()) {
+ h = d < 100 ? null : new Ixd(d);
+ f = b + d;
+ for (e = b; e < f; ++e) {
+ j = a.Oi(e);
+ h = a.cj(j, h);
+ h = h;
+ }
+ if (!h) {
+ a.$i(g);
+ } else {
+ h.Ei(g);
+ h.Fi();
+ }
+ } else {
+ a.$i(g);
+ }
+ } else {
+ zvd(a, b, c);
+ if (a.bj()) {
+ h = d < 100 ? null : new Ixd(d);
+ f = b + d;
+ for (e = b; e < f; ++e) {
+ h = a.cj(a.Oi(e), h);
+ }
+ !!h && h.Fi();
+ }
+ }
+ return true;
+ }
+ }
+ function wwd(a, b, c) {
+ var d, e, f, g, h;
+ if (a.ej()) {
+ e = null;
+ f = a.fj();
+ d = a.Zi(1, h = (g = a.Ui(b, a.oi(b, c)), g), c, b, f);
+ if (a.bj() && !(a.ni() && !!h ? pb(h, c) : PD(h) === PD(c))) {
+ !!h && (e = a.dj(h, e));
+ e = a.cj(c, e);
+ if (!e) {
+ a.$i(d);
+ } else {
+ e.Ei(d);
+ e.Fi();
+ }
+ } else {
+ if (!e) {
+ a.$i(d);
+ } else {
+ e.Ei(d);
+ e.Fi();
+ }
+ }
+ return h;
+ } else {
+ h = (g = a.Ui(b, a.oi(b, c)), g);
+ if (a.bj() && !(a.ni() && !!h ? pb(h, c) : PD(h) === PD(c))) {
+ e = null;
+ !!h && (e = a.dj(h, null));
+ e = a.cj(c, e);
+ !!e && e.Fi();
+ }
+ return h;
+ }
+ }
+ function rRb(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ a.e = b;
+ a.f = BD(vNb(b, (HSb(), GSb)), 230);
+ iRb(b);
+ a.d = $wnd.Math.max(b.e.c.length * 16 + b.c.c.length, 256);
+ if (!Ccb(DD(vNb(b, (wSb(), dSb))))) {
+ k = a.e.e.c.length;
+ for (i = new olb(b.e); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 144);
+ j = h.d;
+ j.a = Aub(a.f) * k;
+ j.b = Aub(a.f) * k;
+ }
+ }
+ c = b.b;
+ for (f = new olb(b.c); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 282);
+ d = BD(vNb(e, rSb), 19).a;
+ if (d > 0) {
+ for (g = 0; g < d; g++) {
+ Ekb(c, new aRb(e));
+ }
+ cRb(e);
+ }
+ }
+ }
+ function zac(a, b) {
+ var c, d, e, f, g, h;
+ if (a.k == (j0b(), f0b)) {
+ c = WAb(JAb(BD(vNb(a, (wtc(), ktc)), 15).Oc(), new Xxb(new Kac()))).sd((EAb(), DAb)) ? b : (rbd(), pbd);
+ yNb(a, Ssc, c);
+ if (c != (rbd(), obd)) {
+ d = BD(vNb(a, $sc), 17);
+ h = Edb(ED(vNb(d, (Nyc(), Zwc))));
+ g = 0;
+ if (c == nbd) {
+ g = a.o.b - $wnd.Math.ceil(h / 2);
+ } else if (c == pbd) {
+ a.o.b -= Edb(ED(vNb(Q_b(a), nyc)));
+ g = (a.o.b - $wnd.Math.ceil(h)) / 2;
+ }
+ for (f = new olb(a.j); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 11);
+ e.n.b = g;
+ }
+ }
+ }
+ }
+ function Uge() {
+ Uge = ccb;
+ g5d();
+ Tge = new Vge();
+ OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Xwe)])]);
+ OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Ywe)])]);
+ OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Zwe)]), OC(GC(w5, 1), Axe, 592, 0, [new Rge(Ywe)])]);
+ new Ygb("-1");
+ OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge("\\c+")])]);
+ new Ygb("0");
+ new Ygb("0");
+ new Ygb("1");
+ new Ygb("0");
+ new Ygb(hxe);
+ }
+ function KQd(a) {
+ var b, c;
+ if (!!a.c && a.c.kh()) {
+ c = BD(a.c, 49);
+ a.c = BD(xid(a, c), 138);
+ if (a.c != c) {
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 2, c, a.c));
+ if (JD(a.Cb, 399)) {
+ a.Db >> 16 == -15 && a.Cb.nh() && Rwd(new oSd(a.Cb, 9, 13, c, a.c, HLd(QSd(BD(a.Cb, 59)), a)));
+ } else if (JD(a.Cb, 88)) {
+ if (a.Db >> 16 == -23 && a.Cb.nh()) {
+ b = a.c;
+ JD(b, 88) || (b = (jGd(), _Fd));
+ JD(c, 88) || (c = (jGd(), _Fd));
+ Rwd(new oSd(a.Cb, 9, 10, c, b, HLd(VKd(BD(a.Cb, 26)), a)));
+ }
+ }
+ }
+ }
+ return a.c;
+ }
+ function f7b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ Odd(b, "Hypernodes processing", 1);
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ for (h = new olb(d.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ if (Ccb(DD(vNb(g, (Nyc(), exc)))) && g.j.c.length <= 2) {
+ l = 0;
+ k = 0;
+ c = 0;
+ f = 0;
+ for (j = new olb(g.j); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 11);
+ switch (i.j.g) {
+ case 1:
+ ++l;
+ break;
+ case 2:
+ ++k;
+ break;
+ case 3:
+ ++c;
+ break;
+ case 4:
+ ++f;
+ }
+ }
+ l == 0 && c == 0 && e7b(a, g, f <= k);
+ }
+ }
+ }
+ Qdd(b);
+ }
+ function i7b(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ Odd(b, "Layer constraint edge reversal", 1);
+ for (g = new olb(a.b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 29);
+ k = -1;
+ c = new Rkb();
+ j = l_b(f.a);
+ for (e = 0; e < j.length; e++) {
+ d = BD(vNb(j[e], (wtc(), Osc)), 303);
+ if (k == -1) {
+ d != (esc(), dsc) && (k = e);
+ } else {
+ if (d == (esc(), dsc)) {
+ $_b(j[e], null);
+ Z_b(j[e], k++, f);
+ }
+ }
+ d == (esc(), bsc) && Ekb(c, j[e]);
+ }
+ for (i = new olb(c); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ $_b(h, null);
+ $_b(h, f);
+ }
+ }
+ Qdd(b);
+ }
+ function W6b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ Odd(c, "Hyperedge merging", 1);
+ U6b(a, b);
+ i = new Bib(b.b, 0);
+ while (i.b < i.d.gc()) {
+ h = (sCb(i.b < i.d.gc()), BD(i.d.Xb(i.c = i.b++), 29));
+ k = h.a;
+ if (k.c.length == 0) {
+ continue;
+ }
+ d = null;
+ e = null;
+ f = null;
+ g = null;
+ for (j = 0; j < k.c.length; j++) {
+ d = (tCb(j, k.c.length), BD(k.c[j], 10));
+ e = d.k;
+ if (e == (j0b(), g0b) && g == g0b) {
+ l = S6b(d, f);
+ if (l.a) {
+ V6b(d, f, l.b, l.c);
+ tCb(j, k.c.length);
+ cCb(k.c, j, 1);
+ --j;
+ d = f;
+ e = g;
+ }
+ }
+ f = d;
+ g = e;
+ }
+ }
+ Qdd(c);
+ }
+ function WFc(a, b) {
+ var c, d, e;
+ d = Cub(a.d, 1) != 0;
+ !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, mtc))) || PD(vNb(b.j, (Nyc(), ywc))) === PD((tAc(), rAc)) ? b.c.Tf(b.e, d) : d = Ccb(DD(vNb(b.j, Jsc)));
+ dGc(a, b, d, true);
+ Ccb(DD(vNb(b.j, mtc))) && yNb(b.j, mtc, (Bcb(), false));
+ if (Ccb(DD(vNb(b.j, Jsc)))) {
+ yNb(b.j, Jsc, (Bcb(), false));
+ yNb(b.j, mtc, true);
+ }
+ c = OFc(a, b);
+ do {
+ $Fc(a);
+ if (c == 0) {
+ return 0;
+ }
+ d = !d;
+ e = c;
+ dGc(a, b, d, false);
+ c = OFc(a, b);
+ } while (e > c);
+ return e;
+ }
+ function XFc(a, b) {
+ var c, d, e;
+ d = Cub(a.d, 1) != 0;
+ !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, mtc))) || PD(vNb(b.j, (Nyc(), ywc))) === PD((tAc(), rAc)) ? b.c.Tf(b.e, d) : d = Ccb(DD(vNb(b.j, Jsc)));
+ dGc(a, b, d, true);
+ Ccb(DD(vNb(b.j, mtc))) && yNb(b.j, mtc, (Bcb(), false));
+ if (Ccb(DD(vNb(b.j, Jsc)))) {
+ yNb(b.j, Jsc, (Bcb(), false));
+ yNb(b.j, mtc, true);
+ }
+ c = NFc(a, b);
+ do {
+ $Fc(a);
+ if (c == 0) {
+ return 0;
+ }
+ d = !d;
+ e = c;
+ dGc(a, b, d, false);
+ c = NFc(a, b);
+ } while (e > c);
+ return e;
+ }
+ function uNd(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2;
+ if (b == c) {
+ return true;
+ } else {
+ b = vNd(a, b);
+ c = vNd(a, c);
+ d = JQd(b);
+ if (d) {
+ k = JQd(c);
+ if (k != d) {
+ if (!k) {
+ return false;
+ } else {
+ i = d.Dj();
+ o2 = k.Dj();
+ return i == o2 && i != null;
+ }
+ } else {
+ g = (!b.d && (b.d = new xMd(j5, b, 1)), b.d);
+ f = g.i;
+ m = (!c.d && (c.d = new xMd(j5, c, 1)), c.d);
+ if (f == m.i) {
+ for (j = 0; j < f; ++j) {
+ e = BD(qud(g, j), 87);
+ l = BD(qud(m, j), 87);
+ if (!uNd(a, e, l)) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+ } else {
+ h = b.e;
+ n = c.e;
+ return h == n;
+ }
+ }
+ }
+ function X2d(a, b, c, d) {
+ var e, f, g, h, i, j, k, l;
+ if (T6d(a.e, b)) {
+ l = S6d(a.e.Tg(), b);
+ f = BD(a.g, 119);
+ k = null;
+ i = -1;
+ h = -1;
+ e = 0;
+ for (j = 0; j < a.i; ++j) {
+ g = f[j];
+ if (l.rl(g.ak())) {
+ e == c && (i = j);
+ if (e == d) {
+ h = j;
+ k = g.dd();
+ }
+ ++e;
+ }
+ }
+ if (i == -1) {
+ throw vbb(new qcb(lue + c + mue + e));
+ }
+ if (h == -1) {
+ throw vbb(new qcb(nue + d + mue + e));
+ }
+ Wxd(a, i, h);
+ oid(a.e) && GLd(a, H2d(a, 7, b, meb(d), k, c, true));
+ return k;
+ } else {
+ throw vbb(new Wdb("The feature must be many-valued to support move"));
+ }
+ }
+ function b_b(a, b, c, d) {
+ var e, f, g, h, i;
+ i = new g7c(b.n);
+ i.a += b.o.a / 2;
+ i.b += b.o.b / 2;
+ h = Edb(ED(vNb(b, (Nyc(), Uxc))));
+ f = a.f;
+ g = a.d;
+ e = a.c;
+ switch (BD(vNb(b, (wtc(), Hsc)), 61).g) {
+ case 1:
+ i.a += g.b + e.a - c / 2;
+ i.b = -d - h;
+ b.n.b = -(g.d + h + e.b);
+ break;
+ case 2:
+ i.a = f.a + g.b + g.c + h;
+ i.b += g.d + e.b - d / 2;
+ b.n.a = f.a + g.c + h - e.a;
+ break;
+ case 3:
+ i.a += g.b + e.a - c / 2;
+ i.b = f.b + g.d + g.a + h;
+ b.n.b = f.b + g.a + h - e.b;
+ break;
+ case 4:
+ i.a = -c - h;
+ i.b += g.d + e.b - d / 2;
+ b.n.a = -(g.b + h + e.a);
+ }
+ return i;
+ }
+ function P1b(a) {
+ var b, c, d, e, f, g;
+ d = new XZb();
+ tNb(d, a);
+ PD(vNb(d, (Nyc(), Lwc))) === PD((ead(), cad)) && yNb(d, Lwc, a_b(d));
+ if (vNb(d, (g6c(), f6c)) == null) {
+ g = BD(m6d(a), 160);
+ yNb(d, f6c, RD(g.We(f6c)));
+ }
+ yNb(d, (wtc(), $sc), a);
+ yNb(d, Ksc, (b = BD(gdb(PW), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)));
+ e = OGb((!Xod(a) ? null : (Pgd(), new bhd(Xod(a))), Pgd(), new hhd(!Xod(a) ? null : new bhd(Xod(a)), a)), bad);
+ f = BD(vNb(d, Kxc), 116);
+ c = d.d;
+ t_b(c, f);
+ t_b(c, e);
+ return d;
+ }
+ function ybc(a, b, c) {
+ var d, e;
+ d = b.c.i;
+ e = c.d.i;
+ if (d.k == (j0b(), g0b)) {
+ yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11));
+ yNb(a, Wsc, BD(vNb(d, Wsc), 11));
+ yNb(a, Usc, DD(vNb(d, Usc)));
+ } else if (d.k == f0b) {
+ yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11));
+ yNb(a, Wsc, BD(vNb(d, Wsc), 11));
+ yNb(a, Usc, (Bcb(), true));
+ } else if (e.k == f0b) {
+ yNb(a, (wtc(), Vsc), BD(vNb(e, Vsc), 11));
+ yNb(a, Wsc, BD(vNb(e, Wsc), 11));
+ yNb(a, Usc, (Bcb(), true));
+ } else {
+ yNb(a, (wtc(), Vsc), b.c);
+ yNb(a, Wsc, c.d);
+ }
+ }
+ function FGb(a) {
+ var b, c, d, e, f, g, h;
+ a.o = new jkb();
+ d = new Psb();
+ for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 121);
+ LFb(f).c.length == 1 && (Gsb(d, f, d.c.b, d.c), true);
+ }
+ while (d.b != 0) {
+ f = BD(d.b == 0 ? null : (sCb(d.b != 0), Nsb(d, d.a.a)), 121);
+ if (LFb(f).c.length == 0) {
+ continue;
+ }
+ b = BD(Ikb(LFb(f), 0), 213);
+ c = f.g.a.c.length > 0;
+ h = xFb(b, f);
+ c ? OFb(h.b, b) : OFb(h.g, b);
+ LFb(h).c.length == 1 && (Gsb(d, h, d.c.b, d.c), true);
+ e = new vgd(f, b);
+ Wjb(a.o, e);
+ Lkb(a.e.a, f);
+ }
+ }
+ function _Nb(a, b) {
+ var c, d, e, f, g, h, i;
+ d = $wnd.Math.abs(D6c(a.b).a - D6c(b.b).a);
+ h = $wnd.Math.abs(D6c(a.b).b - D6c(b.b).b);
+ e = 0;
+ i = 0;
+ c = 1;
+ g = 1;
+ if (d > a.b.b / 2 + b.b.b / 2) {
+ e = $wnd.Math.min($wnd.Math.abs(a.b.c - (b.b.c + b.b.b)), $wnd.Math.abs(a.b.c + a.b.b - b.b.c));
+ c = 1 - e / d;
+ }
+ if (h > a.b.a / 2 + b.b.a / 2) {
+ i = $wnd.Math.min($wnd.Math.abs(a.b.d - (b.b.d + b.b.a)), $wnd.Math.abs(a.b.d + a.b.a - b.b.d));
+ g = 1 - i / h;
+ }
+ f = $wnd.Math.min(c, g);
+ return (1 - f) * $wnd.Math.sqrt(d * d + h * h);
+ }
+ function lQc(a) {
+ var b, c, d, e;
+ nQc(a, a.e, a.f, (FQc(), DQc), true, a.c, a.i);
+ nQc(a, a.e, a.f, DQc, false, a.c, a.i);
+ nQc(a, a.e, a.f, EQc, true, a.c, a.i);
+ nQc(a, a.e, a.f, EQc, false, a.c, a.i);
+ mQc(a, a.c, a.e, a.f, a.i);
+ d = new Bib(a.i, 0);
+ while (d.b < d.d.gc()) {
+ b = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 128));
+ e = new Bib(a.i, d.b);
+ while (e.b < e.d.gc()) {
+ c = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 128));
+ kQc(b, c);
+ }
+ }
+ wQc(a.i, BD(vNb(a.d, (wtc(), jtc)), 230));
+ zQc(a.i);
+ }
+ function fKd(a, b) {
+ var c, d;
+ if (b != null) {
+ d = dKd(a);
+ if (d) {
+ if ((d.i & 1) != 0) {
+ if (d == sbb) {
+ return KD(b);
+ } else if (d == WD) {
+ return JD(b, 19);
+ } else if (d == VD) {
+ return JD(b, 155);
+ } else if (d == SD) {
+ return JD(b, 217);
+ } else if (d == TD) {
+ return JD(b, 172);
+ } else if (d == UD) {
+ return LD(b);
+ } else if (d == rbb) {
+ return JD(b, 184);
+ } else if (d == XD) {
+ return JD(b, 162);
+ }
+ } else {
+ return pEd(), c = BD(Ohb(oEd, d), 55), !c || c.wj(b);
+ }
+ } else if (JD(b, 56)) {
+ return a.uk(BD(b, 56));
+ }
+ }
+ return false;
+ }
+ function ade() {
+ ade = ccb;
+ var a, b, c, d, e, f, g, h, i;
+ $ce = KC(SD, wte, 25, 255, 15, 1);
+ _ce = KC(TD, $ie, 25, 64, 15, 1);
+ for (b = 0; b < 255; b++) {
+ $ce[b] = -1;
+ }
+ for (c = 90; c >= 65; c--) {
+ $ce[c] = c - 65 << 24 >> 24;
+ }
+ for (d = 122; d >= 97; d--) {
+ $ce[d] = d - 97 + 26 << 24 >> 24;
+ }
+ for (e = 57; e >= 48; e--) {
+ $ce[e] = e - 48 + 52 << 24 >> 24;
+ }
+ $ce[43] = 62;
+ $ce[47] = 63;
+ for (f = 0; f <= 25; f++)
+ _ce[f] = 65 + f & aje;
+ for (g = 26, i = 0; g <= 51; ++g, i++)
+ _ce[g] = 97 + i & aje;
+ for (a = 52, h = 0; a <= 61; ++a, h++)
+ _ce[a] = 48 + h & aje;
+ _ce[62] = 43;
+ _ce[63] = 47;
+ }
+ function FXb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n;
+ if (a.dc()) {
+ return new d7c();
+ }
+ j = 0;
+ l = 0;
+ for (e = a.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 37);
+ f = d.f;
+ j = $wnd.Math.max(j, f.a);
+ l += f.a * f.b;
+ }
+ j = $wnd.Math.max(j, $wnd.Math.sqrt(l) * Edb(ED(vNb(BD(a.Kc().Pb(), 37), (Nyc(), owc)))));
+ m = 0;
+ n = 0;
+ i = 0;
+ c = b;
+ for (h = a.Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 37);
+ k = g.f;
+ if (m + k.a > j) {
+ m = 0;
+ n += i + b;
+ i = 0;
+ }
+ uXb(g, m, n);
+ c = $wnd.Math.max(c, m + k.a);
+ i = $wnd.Math.max(i, k.b);
+ m += k.a + b;
+ }
+ return new f7c(c + b, n + i + b);
+ }
+ function mQc(a, b, c, d, e) {
+ var f, g, h, i, j, k, l;
+ for (g = new olb(b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 17);
+ i = f.c;
+ if (c.a._b(i)) {
+ j = (FQc(), DQc);
+ } else if (d.a._b(i)) {
+ j = (FQc(), EQc);
+ } else {
+ throw vbb(new Wdb("Source port must be in one of the port sets."));
+ }
+ k = f.d;
+ if (c.a._b(k)) {
+ l = (FQc(), DQc);
+ } else if (d.a._b(k)) {
+ l = (FQc(), EQc);
+ } else {
+ throw vbb(new Wdb("Target port must be in one of the port sets."));
+ }
+ h = new YQc(f, j, l);
+ Rhb(a.b, f, h);
+ e.c[e.c.length] = h;
+ }
+ }
+ function lfd(a, b) {
+ var c, d, e, f, g, h, i;
+ if (!mpd(a)) {
+ throw vbb(new Zdb(Sse));
+ }
+ d = mpd(a);
+ f = d.g;
+ e = d.f;
+ if (f <= 0 && e <= 0) {
+ return Ucd(), Scd;
+ }
+ h = a.i;
+ i = a.j;
+ switch (b.g) {
+ case 2:
+ case 1:
+ if (h < 0) {
+ return Ucd(), Tcd;
+ } else if (h + a.g > f) {
+ return Ucd(), zcd;
+ }
+ break;
+ case 4:
+ case 3:
+ if (i < 0) {
+ return Ucd(), Acd;
+ } else if (i + a.f > e) {
+ return Ucd(), Rcd;
+ }
+ }
+ g = (h + a.g / 2) / f;
+ c = (i + a.f / 2) / e;
+ return g + c <= 1 && g - c <= 0 ? (Ucd(), Tcd) : g + c >= 1 && g - c >= 0 ? (Ucd(), zcd) : c < 0.5 ? (Ucd(), Acd) : (Ucd(), Rcd);
+ }
+ function vhb(a, b, c, d, e) {
+ var f, g;
+ f = wbb(xbb(b[0], Yje), xbb(d[0], Yje));
+ a[0] = Tbb(f);
+ f = Obb(f, 32);
+ if (c >= e) {
+ for (g = 1; g < e; g++) {
+ f = wbb(f, wbb(xbb(b[g], Yje), xbb(d[g], Yje)));
+ a[g] = Tbb(f);
+ f = Obb(f, 32);
+ }
+ for (; g < c; g++) {
+ f = wbb(f, xbb(b[g], Yje));
+ a[g] = Tbb(f);
+ f = Obb(f, 32);
+ }
+ } else {
+ for (g = 1; g < c; g++) {
+ f = wbb(f, wbb(xbb(b[g], Yje), xbb(d[g], Yje)));
+ a[g] = Tbb(f);
+ f = Obb(f, 32);
+ }
+ for (; g < e; g++) {
+ f = wbb(f, xbb(d[g], Yje));
+ a[g] = Tbb(f);
+ f = Obb(f, 32);
+ }
+ }
+ ybb(f, 0) != 0 && (a[g] = Tbb(f));
+ }
+ function _fe(a) {
+ wfe();
+ var b, c, d, e, f, g;
+ if (a.e != 4 && a.e != 5)
+ throw vbb(new Wdb("Token#complementRanges(): must be RANGE: " + a.e));
+ f = a;
+ Yfe(f);
+ Vfe(f);
+ d = f.b.length + 2;
+ f.b[0] == 0 && (d -= 2);
+ c = f.b[f.b.length - 1];
+ c == lxe && (d -= 2);
+ e = new $fe(4);
+ e.b = KC(WD, oje, 25, d, 15, 1);
+ g = 0;
+ if (f.b[0] > 0) {
+ e.b[g++] = 0;
+ e.b[g++] = f.b[0] - 1;
+ }
+ for (b = 1; b < f.b.length - 2; b += 2) {
+ e.b[g++] = f.b[b] + 1;
+ e.b[g++] = f.b[b + 1] - 1;
+ }
+ if (c != lxe) {
+ e.b[g++] = c + 1;
+ e.b[g] = lxe;
+ }
+ e.a = true;
+ return e;
+ }
+ function Pxd(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ d = c.gc();
+ if (d == 0) {
+ return false;
+ } else {
+ if (a.ej()) {
+ j = a.fj();
+ iud(a, b, c);
+ g = d == 1 ? a.Zi(3, null, c.Kc().Pb(), b, j) : a.Zi(5, null, c, b, j);
+ if (a.bj()) {
+ h = d < 100 ? null : new Ixd(d);
+ f = b + d;
+ for (e = b; e < f; ++e) {
+ k = a.g[e];
+ h = a.cj(k, h);
+ h = a.jj(k, h);
+ }
+ if (!h) {
+ a.$i(g);
+ } else {
+ h.Ei(g);
+ h.Fi();
+ }
+ } else {
+ a.$i(g);
+ }
+ } else {
+ iud(a, b, c);
+ if (a.bj()) {
+ h = d < 100 ? null : new Ixd(d);
+ f = b + d;
+ for (e = b; e < f; ++e) {
+ i = a.g[e];
+ h = a.cj(i, h);
+ }
+ !!h && h.Fi();
+ }
+ }
+ return true;
+ }
+ }
+ function YNc(a, b, c, d) {
+ var e, f, g, h, i;
+ for (g = new olb(a.k); g.a < g.c.c.length; ) {
+ e = BD(mlb(g), 129);
+ if (!d || e.c == (HOc(), FOc)) {
+ i = e.b;
+ if (i.g < 0 && e.d > 0) {
+ pOc(i, i.d - e.d);
+ e.c == (HOc(), FOc) && nOc(i, i.a - e.d);
+ i.d <= 0 && i.i > 0 && (Gsb(b, i, b.c.b, b.c), true);
+ }
+ }
+ }
+ for (f = new olb(a.f); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 129);
+ if (!d || e.c == (HOc(), FOc)) {
+ h = e.a;
+ if (h.g < 0 && e.d > 0) {
+ qOc(h, h.i - e.d);
+ e.c == (HOc(), FOc) && oOc(h, h.b - e.d);
+ h.i <= 0 && h.d > 0 && (Gsb(c, h, c.c.b, c.c), true);
+ }
+ }
+ }
+ }
+ function gSc(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ Odd(c, "Processor compute fanout", 1);
+ Uhb(a.b);
+ Uhb(a.a);
+ h = null;
+ f = Jsb(b.b, 0);
+ while (!h && f.b != f.d.c) {
+ j = BD(Xsb(f), 86);
+ Ccb(DD(vNb(j, (mTc(), jTc)))) && (h = j);
+ }
+ i = new Psb();
+ Gsb(i, h, i.c.b, i.c);
+ fSc(a, i);
+ for (k = Jsb(b.b, 0); k.b != k.d.c; ) {
+ j = BD(Xsb(k), 86);
+ g = GD(vNb(j, (mTc(), $Sc)));
+ e = Phb(a.b, g) != null ? BD(Phb(a.b, g), 19).a : 0;
+ yNb(j, ZSc, meb(e));
+ d = 1 + (Phb(a.a, g) != null ? BD(Phb(a.a, g), 19).a : 0);
+ yNb(j, XSc, meb(d));
+ }
+ Qdd(c);
+ }
+ function WPc(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2;
+ m = VPc(a, c);
+ for (i = 0; i < b; i++) {
+ Aib(e, c);
+ n = new Rkb();
+ o2 = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 407));
+ for (k = m + i; k < a.b; k++) {
+ h = o2;
+ o2 = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 407));
+ Ekb(n, new aQc(h, o2, c));
+ }
+ for (l = m + i; l < a.b; l++) {
+ sCb(d.b > 0);
+ d.a.Xb(d.c = --d.b);
+ l > m + i && uib(d);
+ }
+ for (g = new olb(n); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 407);
+ Aib(d, f);
+ }
+ if (i < b - 1) {
+ for (j = m + i; j < a.b; j++) {
+ sCb(d.b > 0);
+ d.a.Xb(d.c = --d.b);
+ }
+ }
+ }
+ }
+ function Jfe() {
+ wfe();
+ var a, b, c, d, e, f;
+ if (gfe)
+ return gfe;
+ a = new $fe(4);
+ Xfe(a, Kfe(vxe, true));
+ Zfe(a, Kfe("M", true));
+ Zfe(a, Kfe("C", true));
+ f = new $fe(4);
+ for (d = 0; d < 11; d++) {
+ Ufe(f, d, d);
+ }
+ b = new $fe(4);
+ Xfe(b, Kfe("M", true));
+ Ufe(b, 4448, 4607);
+ Ufe(b, 65438, 65439);
+ e = new Lge(2);
+ Kge(e, a);
+ Kge(e, ffe);
+ c = new Lge(2);
+ c.$l(Bfe(f, Kfe("L", true)));
+ c.$l(b);
+ c = new lge(3, c);
+ c = new rge(e, c);
+ gfe = c;
+ return gfe;
+ }
+ function S3c(a) {
+ var b, c;
+ b = GD(hkd(a, (Y9c(), o8c)));
+ if (T3c(b, a)) {
+ return;
+ }
+ if (!ikd(a, F9c) && ((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i != 0 || Ccb(DD(hkd(a, M8c))))) {
+ if (b == null || ufb(b).length == 0) {
+ if (!T3c(sne, a)) {
+ c = Qfb(Qfb(new Wfb("Unable to load default layout algorithm "), sne), " for unconfigured node ");
+ yfd(a, c);
+ throw vbb(new y2c(c.a));
+ }
+ } else {
+ c = Qfb(Qfb(new Wfb("Layout algorithm '"), b), "' not found for ");
+ yfd(a, c);
+ throw vbb(new y2c(c.a));
+ }
+ }
+ }
+ function hIb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n;
+ c = a.i;
+ b = a.n;
+ if (a.b == 0) {
+ n = c.c + b.b;
+ m = c.b - b.b - b.c;
+ for (g = a.a, i = 0, k = g.length; i < k; ++i) {
+ e = g[i];
+ mHb(e, n, m);
+ }
+ } else {
+ d = kIb(a, false);
+ mHb(a.a[0], c.c + b.b, d[0]);
+ mHb(a.a[2], c.c + c.b - b.c - d[2], d[2]);
+ l = c.b - b.b - b.c;
+ if (d[0] > 0) {
+ l -= d[0] + a.c;
+ d[0] += a.c;
+ }
+ d[2] > 0 && (l -= d[2] + a.c);
+ d[1] = $wnd.Math.max(d[1], l);
+ mHb(a.a[1], c.c + b.b + d[0] - (d[1] - l) / 2, d[1]);
+ }
+ for (f = a.a, h = 0, j = f.length; h < j; ++h) {
+ e = f[h];
+ JD(e, 326) && BD(e, 326).Te();
+ }
+ }
+ function KMc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l;
+ l = new JMc();
+ l.d = 0;
+ for (g = new olb(a.b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 29);
+ l.d += f.a.c.length;
+ }
+ d = 0;
+ e = 0;
+ l.a = KC(WD, oje, 25, a.b.c.length, 15, 1);
+ j = 0;
+ k = 0;
+ l.e = KC(WD, oje, 25, l.d, 15, 1);
+ for (c = new olb(a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 29);
+ b.p = d++;
+ l.a[b.p] = e++;
+ k = 0;
+ for (i = new olb(b.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ h.p = j++;
+ l.e[h.p] = k++;
+ }
+ }
+ l.c = new OMc(l);
+ l.b = Pu(l.d);
+ LMc(l, a);
+ l.f = Pu(l.d);
+ MMc(l, a);
+ return l;
+ }
+ function GZc(a, b) {
+ var c, d, e, f;
+ f = BD(Ikb(a.n, a.n.c.length - 1), 211).d;
+ a.p = $wnd.Math.min(a.p, b.g);
+ a.r = $wnd.Math.max(a.r, f);
+ a.g = $wnd.Math.max(a.g, b.g + (a.b.c.length == 1 ? 0 : a.i));
+ a.o = $wnd.Math.min(a.o, b.f);
+ a.e += b.f + (a.b.c.length == 1 ? 0 : a.i);
+ a.f = $wnd.Math.max(a.f, b.f);
+ e = a.n.c.length > 0 ? (a.n.c.length - 1) * a.i : 0;
+ for (d = new olb(a.n); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 211);
+ e += c.a;
+ }
+ a.d = e;
+ a.a = a.e / a.b.c.length - a.i * ((a.b.c.length - 1) / a.b.c.length);
+ u$c(a.j);
+ }
+ function LQb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ k = DD(vNb(b, (wSb(), sSb)));
+ if (k == null || (uCb(k), k)) {
+ l = KC(sbb, dle, 25, b.e.c.length, 16, 1);
+ g = HQb(b);
+ e = new Psb();
+ for (j = new olb(b.e); j.a < j.c.c.length; ) {
+ h = BD(mlb(j), 144);
+ c = IQb(a, h, null, null, l, g);
+ if (c) {
+ tNb(c, b);
+ Gsb(e, c, e.c.b, e.c);
+ }
+ }
+ if (e.b > 1) {
+ for (d = Jsb(e, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 231);
+ f = 0;
+ for (i = new olb(c.e); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 144);
+ h.b = f++;
+ }
+ }
+ }
+ return e;
+ }
+ return Ou(OC(GC($O, 1), fme, 231, 0, [b]));
+ }
+ function TKd(a) {
+ var b, c, d, e, f, g, h;
+ if (!a.g) {
+ h = new zNd();
+ b = KKd;
+ g = b.a.zc(a, b);
+ if (g == null) {
+ for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 26);
+ ytd(h, TKd(c));
+ }
+ b.a.Bc(a) != null;
+ b.a.gc() == 0 && void 0;
+ }
+ e = h.i;
+ for (f = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); f.e != f.i.gc(); ++e) {
+ bJd(BD(Dyd(f), 449), e);
+ }
+ ytd(h, (!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s));
+ vud(h);
+ a.g = new rNd(a, h);
+ a.i = BD(h.g, 247);
+ a.i == null && (a.i = MKd);
+ a.p = null;
+ $Kd(a).b &= -5;
+ }
+ return a.g;
+ }
+ function iIb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ d = a.i;
+ c = a.n;
+ if (a.b == 0) {
+ b = jIb(a, false);
+ nHb(a.a[0], d.d + c.d, b[0]);
+ nHb(a.a[2], d.d + d.a - c.a - b[2], b[2]);
+ m = d.a - c.d - c.a;
+ l = m;
+ if (b[0] > 0) {
+ b[0] += a.c;
+ l -= b[0];
+ }
+ b[2] > 0 && (l -= b[2] + a.c);
+ b[1] = $wnd.Math.max(b[1], l);
+ nHb(a.a[1], d.d + c.d + b[0] - (b[1] - l) / 2, b[1]);
+ } else {
+ o2 = d.d + c.d;
+ n = d.a - c.d - c.a;
+ for (g = a.a, i = 0, k = g.length; i < k; ++i) {
+ e = g[i];
+ nHb(e, o2, n);
+ }
+ }
+ for (f = a.a, h = 0, j = f.length; h < j; ++h) {
+ e = f[h];
+ JD(e, 326) && BD(e, 326).Ue();
+ }
+ }
+ function boc(a) {
+ var b, c, d, e, f, g, h, i, j, k;
+ k = KC(WD, oje, 25, a.b.c.length + 1, 15, 1);
+ j = new Tqb();
+ d = 0;
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ k[d++] = j.a.gc();
+ for (i = new olb(e.a); i.a < i.c.c.length; ) {
+ g = BD(mlb(i), 10);
+ for (c = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 17);
+ j.a.zc(b, j);
+ }
+ }
+ for (h = new olb(e.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ for (c = new Sr(ur(R_b(g).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 17);
+ j.a.Bc(b) != null;
+ }
+ }
+ }
+ return k;
+ }
+ function F2d(a, b, c, d) {
+ var e, f, g, h, i;
+ i = S6d(a.e.Tg(), b);
+ e = BD(a.g, 119);
+ Q6d();
+ if (BD(b, 66).Oj()) {
+ for (g = 0; g < a.i; ++g) {
+ f = e[g];
+ if (i.rl(f.ak()) && pb(f, c)) {
+ return true;
+ }
+ }
+ } else if (c != null) {
+ for (h = 0; h < a.i; ++h) {
+ f = e[h];
+ if (i.rl(f.ak()) && pb(c, f.dd())) {
+ return true;
+ }
+ }
+ if (d) {
+ for (g = 0; g < a.i; ++g) {
+ f = e[g];
+ if (i.rl(f.ak()) && PD(c) === PD(a3d(a, BD(f.dd(), 56)))) {
+ return true;
+ }
+ }
+ }
+ } else {
+ for (g = 0; g < a.i; ++g) {
+ f = e[g];
+ if (i.rl(f.ak()) && f.dd() == null) {
+ return false;
+ }
+ }
+ }
+ return false;
+ }
+ function e3d(a, b, c, d) {
+ var e, f, g, h, i, j;
+ j = S6d(a.e.Tg(), b);
+ g = BD(a.g, 119);
+ if (T6d(a.e, b)) {
+ if (b.hi()) {
+ f = M2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
+ if (f >= 0 && f != c) {
+ throw vbb(new Wdb(kue));
+ }
+ }
+ e = 0;
+ for (i = 0; i < a.i; ++i) {
+ h = g[i];
+ if (j.rl(h.ak())) {
+ if (e == c) {
+ return BD(Gtd(a, i, (Q6d(), BD(b, 66).Oj() ? BD(d, 72) : R6d(b, d))), 72);
+ }
+ ++e;
+ }
+ }
+ throw vbb(new qcb(gve + c + mue + e));
+ } else {
+ for (i = 0; i < a.i; ++i) {
+ h = g[i];
+ if (j.rl(h.ak())) {
+ return Q6d(), BD(b, 66).Oj() ? h : h.dd();
+ }
+ }
+ return null;
+ }
+ }
+ function ONb(a, b, c, d) {
+ var e, f, g, h;
+ h = c;
+ for (g = new olb(b.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 221);
+ e = BD(f.b, 65);
+ if (Jy(a.b.c, e.b.c + e.b.b) <= 0 && Jy(e.b.c, a.b.c + a.b.b) <= 0 && Jy(a.b.d, e.b.d + e.b.a) <= 0 && Jy(e.b.d, a.b.d + a.b.a) <= 0) {
+ if (Jy(e.b.c, a.b.c + a.b.b) == 0 && d.a < 0 || Jy(e.b.c + e.b.b, a.b.c) == 0 && d.a > 0 || Jy(e.b.d, a.b.d + a.b.a) == 0 && d.b < 0 || Jy(e.b.d + e.b.a, a.b.d) == 0 && d.b > 0) {
+ h = 0;
+ break;
+ }
+ } else {
+ h = $wnd.Math.min(h, YNb(a, e, d));
+ }
+ h = $wnd.Math.min(h, ONb(a, f, h, d));
+ }
+ return h;
+ }
+ function ifd(a, b) {
+ var c, d, e, f, g, h, i;
+ if (a.b < 2) {
+ throw vbb(new Wdb("The vector chain must contain at least a source and a target point."));
+ }
+ e = (sCb(a.b != 0), BD(a.a.a.c, 8));
+ nmd(b, e.a, e.b);
+ i = new Oyd((!b.a && (b.a = new xMd(y2, b, 5)), b.a));
+ g = Jsb(a, 1);
+ while (g.a < a.b - 1) {
+ h = BD(Xsb(g), 8);
+ if (i.e != i.i.gc()) {
+ c = BD(Dyd(i), 469);
+ } else {
+ c = (Fhd(), d = new xkd(), d);
+ Myd(i, c);
+ }
+ ukd(c, h.a, h.b);
+ }
+ while (i.e != i.i.gc()) {
+ Dyd(i);
+ Eyd(i);
+ }
+ f = (sCb(a.b != 0), BD(a.c.b.c, 8));
+ gmd(b, f.a, f.b);
+ }
+ function $lc(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ c = 0;
+ for (e = new olb((tCb(0, a.c.length), BD(a.c[0], 101)).g.b.j); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 11);
+ d.p = c++;
+ }
+ b == (Ucd(), Acd) ? Okb(a, new gmc()) : Okb(a, new kmc());
+ h = 0;
+ k = a.c.length - 1;
+ while (h < k) {
+ g = (tCb(h, a.c.length), BD(a.c[h], 101));
+ j = (tCb(k, a.c.length), BD(a.c[k], 101));
+ f = b == Acd ? g.c : g.a;
+ i = b == Acd ? j.a : j.c;
+ amc(g, b, (Ajc(), yjc), f);
+ amc(j, b, xjc, i);
+ ++h;
+ --k;
+ }
+ h == k && amc((tCb(h, a.c.length), BD(a.c[h], 101)), b, (Ajc(), wjc), null);
+ }
+ function UVc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ l = a.a.i + a.a.g / 2;
+ m = a.a.i + a.a.g / 2;
+ o2 = b.i + b.g / 2;
+ q = b.j + b.f / 2;
+ h = new f7c(o2, q);
+ j = BD(hkd(b, (Y9c(), C9c)), 8);
+ j.a = j.a + l;
+ j.b = j.b + m;
+ f = (h.b - j.b) / (h.a - j.a);
+ d = h.b - f * h.a;
+ p = c.i + c.g / 2;
+ r = c.j + c.f / 2;
+ i = new f7c(p, r);
+ k = BD(hkd(c, C9c), 8);
+ k.a = k.a + l;
+ k.b = k.b + m;
+ g = (i.b - k.b) / (i.a - k.a);
+ e = i.b - g * i.a;
+ n = (d - e) / (g - f);
+ if (j.a < n && h.a < n || n < j.a && n < h.a) {
+ return false;
+ } else if (k.a < n && i.a < n || n < k.a && n < i.a) {
+ return false;
+ }
+ return true;
+ }
+ function gqd(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n;
+ m = BD(Ohb(a.c, b), 183);
+ if (!m) {
+ throw vbb(new cqd("Edge did not exist in input."));
+ }
+ j = Wpd(m);
+ f = Fhe((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a));
+ h = !f;
+ if (h) {
+ n = new wB();
+ c = new Rrd(a, j, n);
+ Dhe((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a), c);
+ cC(m, Nte, n);
+ }
+ e = ikd(b, (Y9c(), Q8c));
+ if (e) {
+ k = BD(hkd(b, Q8c), 74);
+ g = !k || Ehe(k);
+ i = !g;
+ if (i) {
+ l = new wB();
+ d = new Zrd(l);
+ reb(k, d);
+ cC(m, "junctionPoints", l);
+ }
+ }
+ Upd(m, "container", Mld(b).k);
+ return null;
+ }
+ function eDb(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ this.e = Ou(OC(GC(GM, 1), Uhe, 168, 0, [new aDb(a, b), new aDb(b, c), new aDb(c, a)]));
+ this.f = Ou(OC(GC(m1, 1), nie, 8, 0, [a, b, c]));
+ this.d = (d = c7c(R6c(this.b), this.a), e = c7c(R6c(this.c), this.a), f = c7c(R6c(this.c), this.b), g = d.a * (this.a.a + this.b.a) + d.b * (this.a.b + this.b.b), h = e.a * (this.a.a + this.c.a) + e.b * (this.a.b + this.c.b), i = 2 * (d.a * f.b - d.b * f.a), j = (e.b * g - d.b * h) / i, k = (d.a * h - e.a * g) / i, new f7c(j, k));
+ }
+ function nvd(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2;
+ m = new yC(a.p);
+ cC(b, fue, m);
+ if (c && !(!a.f ? null : vmb(a.f)).a.dc()) {
+ k = new wB();
+ cC(b, "logs", k);
+ h = 0;
+ for (o2 = new Dnb((!a.f ? null : vmb(a.f)).b.Kc()); o2.b.Ob(); ) {
+ n = GD(o2.b.Pb());
+ l = new yC(n);
+ tB(k, h);
+ vB(k, h, l);
+ ++h;
+ }
+ }
+ if (d) {
+ j = new TB(a.q);
+ cC(b, "executionTime", j);
+ }
+ if (!vmb(a.a).a.dc()) {
+ g = new wB();
+ cC(b, Jte, g);
+ h = 0;
+ for (f = new Dnb(vmb(a.a).b.Kc()); f.b.Ob(); ) {
+ e = BD(f.b.Pb(), 1949);
+ i = new eC();
+ tB(g, h);
+ vB(g, h, i);
+ nvd(e, i, c, d);
+ ++h;
+ }
+ }
+ }
+ function PZb(a, b) {
+ var c, d, e, f, g, h;
+ f = a.c;
+ g = a.d;
+ QZb(a, null);
+ RZb(a, null);
+ b && Ccb(DD(vNb(g, (wtc(), Msc)))) ? QZb(a, i_b(g.i, (KAc(), IAc), (Ucd(), zcd))) : QZb(a, g);
+ b && Ccb(DD(vNb(f, (wtc(), etc)))) ? RZb(a, i_b(f.i, (KAc(), HAc), (Ucd(), Tcd))) : RZb(a, f);
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 70);
+ e = BD(vNb(c, (Nyc(), Qwc)), 272);
+ e == (qad(), pad) ? yNb(c, Qwc, oad) : e == oad && yNb(c, Qwc, pad);
+ }
+ h = Ccb(DD(vNb(a, (wtc(), ltc))));
+ yNb(a, ltc, (Bcb(), h ? false : true));
+ a.a = w7c(a.a);
+ }
+ function VQb(a, b, c) {
+ var d, e, f, g, h, i;
+ d = 0;
+ for (f = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); f.e != f.i.gc(); ) {
+ e = BD(Dyd(f), 33);
+ g = "";
+ (!e.n && (e.n = new cUd(D2, e, 1, 7)), e.n).i == 0 || (g = BD(qud((!e.n && (e.n = new cUd(D2, e, 1, 7)), e.n), 0), 137).a);
+ h = new pRb(g);
+ tNb(h, e);
+ yNb(h, (HSb(), FSb), e);
+ h.b = d++;
+ h.d.a = e.i + e.g / 2;
+ h.d.b = e.j + e.f / 2;
+ h.e.a = $wnd.Math.max(e.g, 1);
+ h.e.b = $wnd.Math.max(e.f, 1);
+ Ekb(b.e, h);
+ jrb(c.f, e, h);
+ i = BD(hkd(e, (wSb(), mSb)), 98);
+ i == (dcd(), ccd) && (i = bcd);
+ }
+ }
+ function XJc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ c = nGb(new pGb(), a.f);
+ j = a.i[b.c.i.p];
+ n = a.i[b.d.i.p];
+ i = b.c;
+ m = b.d;
+ h = i.a.b;
+ l = m.a.b;
+ j.b || (h += i.n.b);
+ n.b || (l += m.n.b);
+ k = QD($wnd.Math.max(0, h - l));
+ g = QD($wnd.Math.max(0, l - h));
+ o2 = (p = $wnd.Math.max(1, BD(vNb(b, (Nyc(), eyc)), 19).a), q = JJc(b.c.i.k, b.d.i.k), p * q);
+ e = AFb(DFb(CFb(BFb(EFb(new FFb(), o2), g), c), BD(Ohb(a.k, b.c), 121)));
+ f = AFb(DFb(CFb(BFb(EFb(new FFb(), o2), k), c), BD(Ohb(a.k, b.d), 121)));
+ d = new qKc(e, f);
+ a.c[b.p] = d;
+ }
+ function NEc(a, b, c, d) {
+ var e, f, g, h, i, j;
+ g = new _Ec(a, b, c);
+ i = new Bib(d, 0);
+ e = false;
+ while (i.b < i.d.gc()) {
+ h = (sCb(i.b < i.d.gc()), BD(i.d.Xb(i.c = i.b++), 233));
+ if (h == b || h == c) {
+ uib(i);
+ } else if (!e && Edb(REc(h.g, h.d[0]).a) > Edb(REc(g.g, g.d[0]).a)) {
+ sCb(i.b > 0);
+ i.a.Xb(i.c = --i.b);
+ Aib(i, g);
+ e = true;
+ } else if (!!h.e && h.e.gc() > 0) {
+ f = (!h.e && (h.e = new Rkb()), h.e).Mc(b);
+ j = (!h.e && (h.e = new Rkb()), h.e).Mc(c);
+ if (f || j) {
+ (!h.e && (h.e = new Rkb()), h.e).Fc(g);
+ ++g.c;
+ }
+ }
+ }
+ e || (d.c[d.c.length] = g, true);
+ }
+ function odc(a) {
+ var b, c, d;
+ if (fcd(BD(vNb(a, (Nyc(), Vxc)), 98))) {
+ for (c = new olb(a.j); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 11);
+ b.j == (Ucd(), Scd) && (d = BD(vNb(b, (wtc(), gtc)), 10), d ? G0b(b, BD(vNb(d, Hsc), 61)) : b.e.c.length - b.g.c.length < 0 ? G0b(b, zcd) : G0b(b, Tcd));
+ }
+ } else {
+ for (c = new olb(a.j); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 11);
+ d = BD(vNb(b, (wtc(), gtc)), 10);
+ d ? G0b(b, BD(vNb(d, Hsc), 61)) : b.e.c.length - b.g.c.length < 0 ? G0b(b, (Ucd(), zcd)) : G0b(b, (Ucd(), Tcd));
+ }
+ yNb(a, Vxc, (dcd(), acd));
+ }
+ }
+ function age(a) {
+ var b, c, d;
+ switch (a) {
+ case 91:
+ case 93:
+ case 45:
+ case 94:
+ case 44:
+ case 92:
+ d = "\\" + String.fromCharCode(a & aje);
+ break;
+ case 12:
+ d = "\\f";
+ break;
+ case 10:
+ d = "\\n";
+ break;
+ case 13:
+ d = "\\r";
+ break;
+ case 9:
+ d = "\\t";
+ break;
+ case 27:
+ d = "\\e";
+ break;
+ default:
+ if (a < 32) {
+ c = (b = a >>> 0, "0" + b.toString(16));
+ d = "\\x" + qfb(c, c.length - 2, c.length);
+ } else if (a >= Tje) {
+ c = (b = a >>> 0, "0" + b.toString(16));
+ d = "\\v" + qfb(c, c.length - 6, c.length);
+ } else
+ d = "" + String.fromCharCode(a & aje);
+ }
+ return d;
+ }
+ function yhb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ g = a.e;
+ i = b.e;
+ if (i == 0) {
+ return a;
+ }
+ if (g == 0) {
+ return b.e == 0 ? b : new Vgb(-b.e, b.d, b.a);
+ }
+ f = a.d;
+ h = b.d;
+ if (f + h == 2) {
+ c = xbb(a.a[0], Yje);
+ d = xbb(b.a[0], Yje);
+ g < 0 && (c = Jbb(c));
+ i < 0 && (d = Jbb(d));
+ return ghb(Qbb(c, d));
+ }
+ e = f != h ? f > h ? 1 : -1 : whb(a.a, b.a, f);
+ if (e == -1) {
+ l = -i;
+ k = g == i ? zhb(b.a, h, a.a, f) : uhb(b.a, h, a.a, f);
+ } else {
+ l = g;
+ if (g == i) {
+ if (e == 0) {
+ return Hgb(), Ggb;
+ }
+ k = zhb(a.a, f, b.a, h);
+ } else {
+ k = uhb(a.a, f, b.a, h);
+ }
+ }
+ j = new Vgb(l, k.length, k);
+ Jgb(j);
+ return j;
+ }
+ function YPc(a) {
+ var b, c, d, e, f, g;
+ this.e = new Rkb();
+ this.a = new Rkb();
+ for (c = a.b - 1; c < 3; c++) {
+ St(a, 0, BD(Ut(a, 0), 8));
+ }
+ if (a.b < 4) {
+ throw vbb(new Wdb("At (least dimension + 1) control points are necessary!"));
+ } else {
+ this.b = 3;
+ this.d = true;
+ this.c = false;
+ TPc(this, a.b + this.b - 1);
+ g = new Rkb();
+ f = new olb(this.e);
+ for (b = 0; b < this.b - 1; b++) {
+ Ekb(g, ED(mlb(f)));
+ }
+ for (e = Jsb(a, 0); e.b != e.d.c; ) {
+ d = BD(Xsb(e), 8);
+ Ekb(g, ED(mlb(f)));
+ Ekb(this.a, new bQc(d, g));
+ tCb(0, g.c.length);
+ g.c.splice(0, 1);
+ }
+ }
+ }
+ function Bac(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ for (h = new olb(e.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ if (g.k == (j0b(), f0b)) {
+ i = (j = BD(Rr(new Sr(ur(R_b(g).a.Kc(), new Sq()))), 17), k = BD(Rr(new Sr(ur(U_b(g).a.Kc(), new Sq()))), 17), !Ccb(DD(vNb(j, (wtc(), ltc)))) || !Ccb(DD(vNb(k, ltc)))) ? b : sbd(b);
+ zac(g, i);
+ }
+ for (d = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ i = Ccb(DD(vNb(c, (wtc(), ltc)))) ? sbd(b) : b;
+ yac(c, i);
+ }
+ }
+ }
+ }
+ function yZc(a, b, c, d, e) {
+ var f, g, h;
+ if (c.f >= b.o && c.f <= b.f || b.a * 0.5 <= c.f && b.a * 1.5 >= c.f) {
+ g = BD(Ikb(b.n, b.n.c.length - 1), 211);
+ if (g.e + g.d + c.g + e <= d && (f = BD(Ikb(b.n, b.n.c.length - 1), 211), f.f - a.f + c.f <= a.b || a.a.c.length == 1)) {
+ EZc(b, c);
+ return true;
+ } else if (b.s + c.g <= d && (b.t + b.d + c.f + e <= a.b || a.a.c.length == 1)) {
+ Ekb(b.b, c);
+ h = BD(Ikb(b.n, b.n.c.length - 1), 211);
+ Ekb(b.n, new VZc(b.s, h.f + h.a + b.i, b.i));
+ QZc(BD(Ikb(b.n, b.n.c.length - 1), 211), c);
+ GZc(b, c);
+ return true;
+ }
+ }
+ return false;
+ }
+ function Zxd(a, b, c) {
+ var d, e, f, g;
+ if (a.ej()) {
+ e = null;
+ f = a.fj();
+ d = a.Zi(1, g = uud(a, b, c), c, b, f);
+ if (a.bj() && !(a.ni() && g != null ? pb(g, c) : PD(g) === PD(c))) {
+ g != null && (e = a.dj(g, e));
+ e = a.cj(c, e);
+ a.ij() && (e = a.lj(g, c, e));
+ if (!e) {
+ a.$i(d);
+ } else {
+ e.Ei(d);
+ e.Fi();
+ }
+ } else {
+ a.ij() && (e = a.lj(g, c, e));
+ if (!e) {
+ a.$i(d);
+ } else {
+ e.Ei(d);
+ e.Fi();
+ }
+ }
+ return g;
+ } else {
+ g = uud(a, b, c);
+ if (a.bj() && !(a.ni() && g != null ? pb(g, c) : PD(g) === PD(c))) {
+ e = null;
+ g != null && (e = a.dj(g, null));
+ e = a.cj(c, e);
+ !!e && e.Fi();
+ }
+ return g;
+ }
+ }
+ function YA(a, b) {
+ var c, d, e, f, g, h, i, j;
+ b %= 24;
+ if (a.q.getHours() != b) {
+ d = new $wnd.Date(a.q.getTime());
+ d.setDate(d.getDate() + 1);
+ h = a.q.getTimezoneOffset() - d.getTimezoneOffset();
+ if (h > 0) {
+ i = h / 60 | 0;
+ j = h % 60;
+ e = a.q.getDate();
+ c = a.q.getHours();
+ c + i >= 24 && ++e;
+ f = new $wnd.Date(a.q.getFullYear(), a.q.getMonth(), e, b + i, a.q.getMinutes() + j, a.q.getSeconds(), a.q.getMilliseconds());
+ a.q.setTime(f.getTime());
+ }
+ }
+ g = a.q.getTime();
+ a.q.setTime(g + 36e5);
+ a.q.getHours() != b && a.q.setTime(g);
+ }
+ function opc(a, b) {
+ var c, d, e, f, g;
+ Odd(b, "Path-Like Graph Wrapping", 1);
+ if (a.b.c.length == 0) {
+ Qdd(b);
+ return;
+ }
+ e = new Xoc(a);
+ g = (e.i == null && (e.i = Soc(e, new Zoc())), Edb(e.i) * e.f);
+ c = g / (e.i == null && (e.i = Soc(e, new Zoc())), Edb(e.i));
+ if (e.b > c) {
+ Qdd(b);
+ return;
+ }
+ switch (BD(vNb(a, (Nyc(), Gyc)), 337).g) {
+ case 2:
+ f = new hpc();
+ break;
+ case 0:
+ f = new Ync();
+ break;
+ default:
+ f = new kpc();
+ }
+ d = f.Vf(a, e);
+ if (!f.Wf()) {
+ switch (BD(vNb(a, Myc), 338).g) {
+ case 2:
+ d = tpc(e, d);
+ break;
+ case 1:
+ d = rpc(e, d);
+ }
+ }
+ npc(a, e, d);
+ Qdd(b);
+ }
+ function MFc(a, b) {
+ var c, d, e, f;
+ Fub(a.d, a.e);
+ a.c.a.$b();
+ if (Edb(ED(vNb(b.j, (Nyc(), uwc)))) != 0 || Edb(ED(vNb(b.j, uwc))) != 0) {
+ c = dme;
+ PD(vNb(b.j, ywc)) !== PD((tAc(), rAc)) && yNb(b.j, (wtc(), Jsc), (Bcb(), true));
+ f = BD(vNb(b.j, Ayc), 19).a;
+ for (e = 0; e < f; e++) {
+ d = WFc(a, b);
+ if (d < c) {
+ c = d;
+ ZFc(a);
+ if (c == 0) {
+ break;
+ }
+ }
+ }
+ } else {
+ c = Ohe;
+ PD(vNb(b.j, ywc)) !== PD((tAc(), rAc)) && yNb(b.j, (wtc(), Jsc), (Bcb(), true));
+ f = BD(vNb(b.j, Ayc), 19).a;
+ for (e = 0; e < f; e++) {
+ d = XFc(a, b);
+ if (d < c) {
+ c = d;
+ ZFc(a);
+ if (c == 0) {
+ break;
+ }
+ }
+ }
+ }
+ }
+ function spc(a, b) {
+ var c, d, e, f, g, h, i, j;
+ g = new Rkb();
+ h = 0;
+ c = 0;
+ i = 0;
+ while (h < b.c.length - 1 && c < a.gc()) {
+ d = BD(a.Xb(c), 19).a + i;
+ while ((tCb(h + 1, b.c.length), BD(b.c[h + 1], 19)).a < d) {
+ ++h;
+ }
+ j = 0;
+ f = d - (tCb(h, b.c.length), BD(b.c[h], 19)).a;
+ e = (tCb(h + 1, b.c.length), BD(b.c[h + 1], 19)).a - d;
+ f > e && ++j;
+ Ekb(g, (tCb(h + j, b.c.length), BD(b.c[h + j], 19)));
+ i += (tCb(h + j, b.c.length), BD(b.c[h + j], 19)).a - d;
+ ++c;
+ while (c < a.gc() && BD(a.Xb(c), 19).a + i <= (tCb(h + j, b.c.length), BD(b.c[h + j], 19)).a) {
+ ++c;
+ }
+ h += 1 + j;
+ }
+ return g;
+ }
+ function RKd(a) {
+ var b, c, d, e, f, g, h;
+ if (!a.d) {
+ h = new XNd();
+ b = KKd;
+ f = b.a.zc(a, b);
+ if (f == null) {
+ for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 26);
+ ytd(h, RKd(c));
+ }
+ b.a.Bc(a) != null;
+ b.a.gc() == 0 && void 0;
+ }
+ g = h.i;
+ for (e = (!a.q && (a.q = new cUd(n5, a, 11, 10)), new Fyd(a.q)); e.e != e.i.gc(); ++g) {
+ BD(Dyd(e), 399);
+ }
+ ytd(h, (!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q));
+ vud(h);
+ a.d = new nNd((BD(qud(ZKd((NFd(), MFd).o), 9), 18), h.i), h.g);
+ a.e = BD(h.g, 673);
+ a.e == null && (a.e = LKd);
+ $Kd(a).b &= -17;
+ }
+ return a.d;
+ }
+ function M2d(a, b, c, d) {
+ var e, f, g, h, i, j;
+ j = S6d(a.e.Tg(), b);
+ i = 0;
+ e = BD(a.g, 119);
+ Q6d();
+ if (BD(b, 66).Oj()) {
+ for (g = 0; g < a.i; ++g) {
+ f = e[g];
+ if (j.rl(f.ak())) {
+ if (pb(f, c)) {
+ return i;
+ }
+ ++i;
+ }
+ }
+ } else if (c != null) {
+ for (h = 0; h < a.i; ++h) {
+ f = e[h];
+ if (j.rl(f.ak())) {
+ if (pb(c, f.dd())) {
+ return i;
+ }
+ ++i;
+ }
+ }
+ if (d) {
+ i = 0;
+ for (g = 0; g < a.i; ++g) {
+ f = e[g];
+ if (j.rl(f.ak())) {
+ if (PD(c) === PD(a3d(a, BD(f.dd(), 56)))) {
+ return i;
+ }
+ ++i;
+ }
+ }
+ }
+ } else {
+ for (g = 0; g < a.i; ++g) {
+ f = e[g];
+ if (j.rl(f.ak())) {
+ if (f.dd() == null) {
+ return i;
+ }
+ ++i;
+ }
+ }
+ }
+ return -1;
+ }
+ function aed(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n;
+ mmb();
+ Okb(a, new Jed());
+ g = Ru(a);
+ n = new Rkb();
+ m = new Rkb();
+ h = null;
+ i = 0;
+ while (g.b != 0) {
+ f = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 157);
+ if (!h || red(h) * qed(h) / 2 < red(f) * qed(f)) {
+ h = f;
+ n.c[n.c.length] = f;
+ } else {
+ i += red(f) * qed(f);
+ m.c[m.c.length] = f;
+ if (m.c.length > 1 && (i > red(h) * qed(h) / 2 || g.b == 0)) {
+ l = new wed(m);
+ k = red(h) / qed(h);
+ j = fed(l, b, new p0b(), c, d, e, k);
+ P6c(X6c(l.e), j);
+ h = l;
+ n.c[n.c.length] = l;
+ i = 0;
+ m.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ }
+ }
+ Gkb(n, m);
+ return n;
+ }
+ function y6d(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p;
+ if (c.mh(b)) {
+ k = (n = b, !n ? null : BD(d, 49).xh(n));
+ if (k) {
+ p = c.bh(b, a.a);
+ o2 = b.t;
+ if (o2 > 1 || o2 == -1) {
+ l = BD(p, 69);
+ m = BD(k, 69);
+ if (l.dc()) {
+ m.$b();
+ } else {
+ g = !!zUd(b);
+ f = 0;
+ for (h = a.a ? l.Kc() : l.Zh(); h.Ob(); ) {
+ j = BD(h.Pb(), 56);
+ e = BD(Wrb(a, j), 56);
+ if (!e) {
+ if (a.b && !g) {
+ m.Xh(f, j);
+ ++f;
+ }
+ } else {
+ if (g) {
+ i = m.Xc(e);
+ i == -1 ? m.Xh(f, e) : f != i && m.ji(f, e);
+ } else {
+ m.Xh(f, e);
+ }
+ ++f;
+ }
+ }
+ }
+ } else {
+ if (p == null) {
+ k.Wb(null);
+ } else {
+ e = Wrb(a, p);
+ e == null ? a.b && !zUd(b) && k.Wb(p) : k.Wb(e);
+ }
+ }
+ }
+ }
+ }
+ function E6b(a, b) {
+ var c, d, e, f, g, h, i, j;
+ c = new L6b();
+ for (e = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 17);
+ if (OZb(d)) {
+ continue;
+ }
+ h = d.c.i;
+ if (F6b(h, C6b)) {
+ j = G6b(a, h, C6b, B6b);
+ if (j == -1) {
+ continue;
+ }
+ c.b = $wnd.Math.max(c.b, j);
+ !c.a && (c.a = new Rkb());
+ Ekb(c.a, h);
+ }
+ }
+ for (g = new Sr(ur(U_b(b).a.Kc(), new Sq())); Qr(g); ) {
+ f = BD(Rr(g), 17);
+ if (OZb(f)) {
+ continue;
+ }
+ i = f.d.i;
+ if (F6b(i, B6b)) {
+ j = G6b(a, i, B6b, C6b);
+ if (j == -1) {
+ continue;
+ }
+ c.d = $wnd.Math.max(c.d, j);
+ !c.c && (c.c = new Rkb());
+ Ekb(c.c, i);
+ }
+ }
+ return c;
+ }
+ function Khb(a) {
+ Dhb();
+ var b, c, d, e;
+ b = QD(a);
+ if (a < Chb.length) {
+ return Chb[b];
+ } else if (a <= 50) {
+ return Pgb((Hgb(), Egb), b);
+ } else if (a <= _ie) {
+ return Qgb(Pgb(Bhb[1], b), b);
+ }
+ if (a > 1e6) {
+ throw vbb(new ocb("power of ten too big"));
+ }
+ if (a <= Ohe) {
+ return Qgb(Pgb(Bhb[1], b), b);
+ }
+ d = Pgb(Bhb[1], Ohe);
+ e = d;
+ c = Cbb(a - Ohe);
+ b = QD(a % Ohe);
+ while (ybb(c, Ohe) > 0) {
+ e = Ogb(e, d);
+ c = Qbb(c, Ohe);
+ }
+ e = Ogb(e, Pgb(Bhb[1], b));
+ e = Qgb(e, Ohe);
+ c = Cbb(a - Ohe);
+ while (ybb(c, Ohe) > 0) {
+ e = Qgb(e, Ohe);
+ c = Qbb(c, Ohe);
+ }
+ e = Qgb(e, b);
+ return e;
+ }
+ function X5b(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ Odd(b, "Hierarchical port dummy size processing", 1);
+ i = new Rkb();
+ k = new Rkb();
+ d = Edb(ED(vNb(a, (Nyc(), myc))));
+ c = d * 2;
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ i.c = KC(SI, Uhe, 1, 0, 5, 1);
+ k.c = KC(SI, Uhe, 1, 0, 5, 1);
+ for (h = new olb(e.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ if (g.k == (j0b(), e0b)) {
+ j = BD(vNb(g, (wtc(), Hsc)), 61);
+ j == (Ucd(), Acd) ? (i.c[i.c.length] = g, true) : j == Rcd && (k.c[k.c.length] = g, true);
+ }
+ }
+ Y5b(i, true, c);
+ Y5b(k, false, c);
+ }
+ Qdd(b);
+ }
+ function Oac(a, b) {
+ var c, d, e, f, g, h, i;
+ Odd(b, "Layer constraint postprocessing", 1);
+ i = a.b;
+ if (i.c.length != 0) {
+ d = (tCb(0, i.c.length), BD(i.c[0], 29));
+ g = BD(Ikb(i, i.c.length - 1), 29);
+ c = new H1b(a);
+ f = new H1b(a);
+ Mac(a, d, g, c, f);
+ c.a.c.length == 0 || (wCb(0, i.c.length), aCb(i.c, 0, c));
+ f.a.c.length == 0 || (i.c[i.c.length] = f, true);
+ }
+ if (wNb(a, (wtc(), Lsc))) {
+ e = new H1b(a);
+ h = new H1b(a);
+ Pac(a, e, h);
+ e.a.c.length == 0 || (wCb(0, i.c.length), aCb(i.c, 0, e));
+ h.a.c.length == 0 || (i.c[i.c.length] = h, true);
+ }
+ Qdd(b);
+ }
+ function b6b(a) {
+ var b, c, d, e, f, g, h, i, j, k;
+ for (i = new olb(a.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ if (h.k != (j0b(), e0b)) {
+ continue;
+ }
+ e = BD(vNb(h, (wtc(), Hsc)), 61);
+ if (e == (Ucd(), zcd) || e == Tcd) {
+ for (d = new Sr(ur(O_b(h).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ b = c.a;
+ if (b.b == 0) {
+ continue;
+ }
+ j = c.c;
+ if (j.i == h) {
+ f = (sCb(b.b != 0), BD(b.a.a.c, 8));
+ f.b = l7c(OC(GC(m1, 1), nie, 8, 0, [j.i.n, j.n, j.a])).b;
+ }
+ k = c.d;
+ if (k.i == h) {
+ g = (sCb(b.b != 0), BD(b.c.b.c, 8));
+ g.b = l7c(OC(GC(m1, 1), nie, 8, 0, [k.i.n, k.n, k.a])).b;
+ }
+ }
+ }
+ }
+ }
+ function Tec(a, b) {
+ var c, d, e, f, g, h, i;
+ Odd(b, "Sort By Input Model " + vNb(a, (Nyc(), ywc)), 1);
+ e = 0;
+ for (d = new olb(a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 29);
+ i = e == 0 ? 0 : e - 1;
+ h = BD(Ikb(a.b, i), 29);
+ for (g = new olb(c.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ if (PD(vNb(f, Vxc)) !== PD((dcd(), Zbd)) && PD(vNb(f, Vxc)) !== PD($bd)) {
+ mmb();
+ Okb(f.j, new Tnc(h, Xec(f)));
+ Sdd(b, "Node " + f + " ports: " + f.j);
+ }
+ }
+ mmb();
+ Okb(c.a, new Bnc(h, BD(vNb(a, ywc), 339), BD(vNb(a, wwc), 378)));
+ Sdd(b, "Layer " + e + ": " + c);
+ ++e;
+ }
+ Qdd(b);
+ }
+ function U1b(a, b) {
+ var c, d, e, f;
+ f = P1b(b);
+ MAb(new YAb(null, (!b.c && (b.c = new cUd(F2, b, 9, 9)), new Kub(b.c, 16))), new i2b(f));
+ e = BD(vNb(f, (wtc(), Ksc)), 21);
+ O1b(b, e);
+ if (e.Hc((Orc(), Hrc))) {
+ for (d = new Fyd((!b.c && (b.c = new cUd(F2, b, 9, 9)), b.c)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 118);
+ Y1b(a, b, f, c);
+ }
+ }
+ BD(hkd(b, (Nyc(), Fxc)), 174).gc() != 0 && L1b(b, f);
+ Ccb(DD(vNb(f, Mxc))) && e.Fc(Mrc);
+ wNb(f, hyc) && Wyc(new ezc(Edb(ED(vNb(f, hyc)))), f);
+ PD(hkd(b, axc)) === PD((hbd(), ebd)) ? V1b(a, b, f) : T1b(a, b, f);
+ return f;
+ }
+ function hic(a, b, c, d) {
+ var e, f, g;
+ this.j = new Rkb();
+ this.k = new Rkb();
+ this.b = new Rkb();
+ this.c = new Rkb();
+ this.e = new I6c();
+ this.i = new s7c();
+ this.f = new lEb();
+ this.d = new Rkb();
+ this.g = new Rkb();
+ Ekb(this.b, a);
+ Ekb(this.b, b);
+ this.e.c = $wnd.Math.min(a.a, b.a);
+ this.e.d = $wnd.Math.min(a.b, b.b);
+ this.e.b = $wnd.Math.abs(a.a - b.a);
+ this.e.a = $wnd.Math.abs(a.b - b.b);
+ e = BD(vNb(d, (Nyc(), jxc)), 74);
+ if (e) {
+ for (g = Jsb(e, 0); g.b != g.d.c; ) {
+ f = BD(Xsb(g), 8);
+ ADb(f.a, a.a) && Dsb(this.i, f);
+ }
+ }
+ !!c && Ekb(this.j, c);
+ Ekb(this.k, d);
+ }
+ function oTb(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ k = new gub(new ETb(c));
+ h = KC(sbb, dle, 25, a.f.e.c.length, 16, 1);
+ Glb(h, h.length);
+ c[b.b] = 0;
+ for (j = new olb(a.f.e); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 144);
+ i.b != b.b && (c[i.b] = Ohe);
+ zCb(cub(k, i));
+ }
+ while (k.b.c.length != 0) {
+ l = BD(dub(k), 144);
+ h[l.b] = true;
+ for (f = au(new bu(a.b, l), 0); f.c; ) {
+ e = BD(uu(f), 282);
+ m = rTb(e, l);
+ if (h[m.b]) {
+ continue;
+ }
+ wNb(e, (bTb(), RSb)) ? g = Edb(ED(vNb(e, RSb))) : g = a.c;
+ d = c[l.b] + g;
+ if (d < c[m.b]) {
+ c[m.b] = d;
+ eub(k, m);
+ zCb(cub(k, m));
+ }
+ }
+ }
+ }
+ function xMc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ e = true;
+ for (g = new olb(a.b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 29);
+ j = Qje;
+ k = null;
+ for (i = new olb(f.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ l = Edb(b.p[h.p]) + Edb(b.d[h.p]) - h.d.d;
+ d = Edb(b.p[h.p]) + Edb(b.d[h.p]) + h.o.b + h.d.a;
+ if (l > j && d > j) {
+ k = h;
+ j = Edb(b.p[h.p]) + Edb(b.d[h.p]) + h.o.b + h.d.a;
+ } else {
+ e = false;
+ c.n && Sdd(c, "bk node placement breaks on " + h + " which should have been after " + k);
+ break;
+ }
+ }
+ if (!e) {
+ break;
+ }
+ }
+ c.n && Sdd(c, b + " is feasible: " + e);
+ return e;
+ }
+ function XNc(a, b, c, d) {
+ var e, f, g, h, i, j, k;
+ h = -1;
+ for (k = new olb(a); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 112);
+ j.g = h--;
+ e = Tbb(tAb(PAb(JAb(new YAb(null, new Kub(j.f, 16)), new ZNc()), new _Nc())).d);
+ f = Tbb(tAb(PAb(JAb(new YAb(null, new Kub(j.k, 16)), new bOc()), new dOc())).d);
+ g = e;
+ i = f;
+ if (!d) {
+ g = Tbb(tAb(PAb(new YAb(null, new Kub(j.f, 16)), new fOc())).d);
+ i = Tbb(tAb(PAb(new YAb(null, new Kub(j.k, 16)), new hOc())).d);
+ }
+ j.d = g;
+ j.a = e;
+ j.i = i;
+ j.b = f;
+ i == 0 ? (Gsb(c, j, c.c.b, c.c), true) : g == 0 && (Gsb(b, j, b.c.b, b.c), true);
+ }
+ }
+ function $8b(a, b, c, d) {
+ var e, f, g, h, i, j, k;
+ if (c.d.i == b.i) {
+ return;
+ }
+ e = new b0b(a);
+ __b(e, (j0b(), g0b));
+ yNb(e, (wtc(), $sc), c);
+ yNb(e, (Nyc(), Vxc), (dcd(), $bd));
+ d.c[d.c.length] = e;
+ g = new H0b();
+ F0b(g, e);
+ G0b(g, (Ucd(), Tcd));
+ h = new H0b();
+ F0b(h, e);
+ G0b(h, zcd);
+ k = c.d;
+ RZb(c, g);
+ f = new UZb();
+ tNb(f, c);
+ yNb(f, jxc, null);
+ QZb(f, h);
+ RZb(f, k);
+ j = new Bib(c.b, 0);
+ while (j.b < j.d.gc()) {
+ i = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 70));
+ if (PD(vNb(i, Qwc)) === PD((qad(), oad))) {
+ yNb(i, Dsc, c);
+ uib(j);
+ Ekb(f.b, i);
+ }
+ }
+ a9b(e, g, h);
+ }
+ function Z8b(a, b, c, d) {
+ var e, f, g, h, i, j, k;
+ if (c.c.i == b.i) {
+ return;
+ }
+ e = new b0b(a);
+ __b(e, (j0b(), g0b));
+ yNb(e, (wtc(), $sc), c);
+ yNb(e, (Nyc(), Vxc), (dcd(), $bd));
+ d.c[d.c.length] = e;
+ g = new H0b();
+ F0b(g, e);
+ G0b(g, (Ucd(), Tcd));
+ h = new H0b();
+ F0b(h, e);
+ G0b(h, zcd);
+ RZb(c, g);
+ f = new UZb();
+ tNb(f, c);
+ yNb(f, jxc, null);
+ QZb(f, h);
+ RZb(f, b);
+ a9b(e, g, h);
+ j = new Bib(c.b, 0);
+ while (j.b < j.d.gc()) {
+ i = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 70));
+ k = BD(vNb(i, Qwc), 272);
+ if (k == (qad(), oad)) {
+ wNb(i, Dsc) || yNb(i, Dsc, c);
+ uib(j);
+ Ekb(f.b, i);
+ }
+ }
+ }
+ function dDc(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ m = new Rkb();
+ r = Gx(d);
+ q = b * a.a;
+ l = 0;
+ o2 = 0;
+ f = new Tqb();
+ g = new Tqb();
+ h = new Rkb();
+ s = 0;
+ t = 0;
+ n = 0;
+ p = 0;
+ j = 0;
+ k = 0;
+ while (r.a.gc() != 0) {
+ i = hDc(r, e, g);
+ if (i) {
+ r.a.Bc(i) != null;
+ h.c[h.c.length] = i;
+ f.a.zc(i, f);
+ o2 = a.f[i.p];
+ s += a.e[i.p] - o2 * a.b;
+ l = a.c[i.p];
+ t += l * a.b;
+ k += o2 * a.b;
+ p += a.e[i.p];
+ }
+ if (!i || r.a.gc() == 0 || s >= q && a.e[i.p] > o2 * a.b || t >= c * q) {
+ m.c[m.c.length] = h;
+ h = new Rkb();
+ ye(g, f);
+ f.a.$b();
+ j -= k;
+ n = $wnd.Math.max(n, j * a.b + p);
+ j += t;
+ s = t;
+ t = 0;
+ k = 0;
+ p = 0;
+ }
+ }
+ return new vgd(n, m);
+ }
+ function q4c(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n;
+ for (c = (j = new $ib(a.c.b).a.vc().Kc(), new djb(j)); c.a.Ob(); ) {
+ b = (h = BD(c.a.Pb(), 42), BD(h.dd(), 149));
+ e = b.a;
+ e == null && (e = "");
+ d = i4c(a.c, e);
+ !d && e.length == 0 && (d = u4c(a));
+ !!d && !ze(d.c, b, false) && Dsb(d.c, b);
+ }
+ for (g = Jsb(a.a, 0); g.b != g.d.c; ) {
+ f = BD(Xsb(g), 478);
+ k = j4c(a.c, f.a);
+ n = j4c(a.c, f.b);
+ !!k && !!n && Dsb(k.c, new vgd(n, f.c));
+ }
+ Osb(a.a);
+ for (m = Jsb(a.b, 0); m.b != m.d.c; ) {
+ l = BD(Xsb(m), 478);
+ b = g4c(a.c, l.a);
+ i = j4c(a.c, l.b);
+ !!b && !!i && B3c(b, i, l.c);
+ }
+ Osb(a.b);
+ }
+ function qvd(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n;
+ f = new fC(a);
+ g = new ird();
+ e = (ko(g.g), ko(g.j), Uhb(g.b), ko(g.d), ko(g.i), Uhb(g.k), Uhb(g.c), Uhb(g.e), n = drd(g, f, null), ard(g, f), n);
+ if (b) {
+ j = new fC(b);
+ h = rvd(j);
+ jfd(e, OC(GC(g2, 1), Uhe, 527, 0, [h]));
+ }
+ m = false;
+ l = false;
+ if (c) {
+ j = new fC(c);
+ que in j.a && (m = aC(j, que).ge().a);
+ rue in j.a && (l = aC(j, rue).ge().a);
+ }
+ k = Vdd(Xdd(new Zdd(), m), l);
+ t2c(new w2c(), e, k);
+ que in f.a && cC(f, que, null);
+ if (m || l) {
+ i = new eC();
+ nvd(k, i, m, l);
+ cC(f, que, i);
+ }
+ d = new Prd(g);
+ Ghe(new _ud(e), d);
+ }
+ function pA(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ g = new nB();
+ j = OC(GC(WD, 1), oje, 25, 15, [0]);
+ e = -1;
+ f = 0;
+ d = 0;
+ for (i = 0; i < a.b.c.length; ++i) {
+ k = BD(Ikb(a.b, i), 434);
+ if (k.b > 0) {
+ if (e < 0 && k.a) {
+ e = i;
+ f = j[0];
+ d = 0;
+ }
+ if (e >= 0) {
+ h = k.b;
+ if (i == e) {
+ h -= d++;
+ if (h == 0) {
+ return 0;
+ }
+ }
+ if (!wA(b, j, k, h, g)) {
+ i = e - 1;
+ j[0] = f;
+ continue;
+ }
+ } else {
+ e = -1;
+ if (!wA(b, j, k, 0, g)) {
+ return 0;
+ }
+ }
+ } else {
+ e = -1;
+ if (bfb(k.c, 0) == 32) {
+ l = j[0];
+ uA(b, j);
+ if (j[0] > l) {
+ continue;
+ }
+ } else if (ofb(b, k.c, j[0])) {
+ j[0] += k.c.length;
+ continue;
+ }
+ return 0;
+ }
+ }
+ if (!mB(g, c)) {
+ return 0;
+ }
+ return j[0];
+ }
+ function SKd(a) {
+ var b, c, d, e, f, g, h, i;
+ if (!a.f) {
+ i = new CNd();
+ h = new CNd();
+ b = KKd;
+ g = b.a.zc(a, b);
+ if (g == null) {
+ for (f = new Fyd(_Kd(a)); f.e != f.i.gc(); ) {
+ e = BD(Dyd(f), 26);
+ ytd(i, SKd(e));
+ }
+ b.a.Bc(a) != null;
+ b.a.gc() == 0 && void 0;
+ }
+ for (d = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 170);
+ JD(c, 99) && wtd(h, BD(c, 18));
+ }
+ vud(h);
+ a.r = new UNd(a, (BD(qud(ZKd((NFd(), MFd).o), 6), 18), h.i), h.g);
+ ytd(i, a.r);
+ vud(i);
+ a.f = new nNd((BD(qud(ZKd(MFd.o), 5), 18), i.i), i.g);
+ $Kd(a).b &= -3;
+ }
+ return a.f;
+ }
+ function rMb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ g = a.o;
+ d = KC(WD, oje, 25, g, 15, 1);
+ e = KC(WD, oje, 25, g, 15, 1);
+ c = a.p;
+ b = KC(WD, oje, 25, c, 15, 1);
+ f = KC(WD, oje, 25, c, 15, 1);
+ for (j = 0; j < g; j++) {
+ l = 0;
+ while (l < c && !YMb(a, j, l)) {
+ ++l;
+ }
+ d[j] = l;
+ }
+ for (k = 0; k < g; k++) {
+ l = c - 1;
+ while (l >= 0 && !YMb(a, k, l)) {
+ --l;
+ }
+ e[k] = l;
+ }
+ for (n = 0; n < c; n++) {
+ h = 0;
+ while (h < g && !YMb(a, h, n)) {
+ ++h;
+ }
+ b[n] = h;
+ }
+ for (o2 = 0; o2 < c; o2++) {
+ h = g - 1;
+ while (h >= 0 && !YMb(a, h, o2)) {
+ --h;
+ }
+ f[o2] = h;
+ }
+ for (i = 0; i < g; i++) {
+ for (m = 0; m < c; m++) {
+ i < f[m] && i > b[m] && m < e[i] && m > d[i] && aNb(a, i, m, false, true);
+ }
+ }
+ }
+ function lRb(a) {
+ var b, c, d, e, f, g, h, i;
+ c = Ccb(DD(vNb(a, (wSb(), cSb))));
+ f = a.a.c.d;
+ h = a.a.d.d;
+ if (c) {
+ g = Y6c(c7c(new f7c(h.a, h.b), f), 0.5);
+ i = Y6c(R6c(a.e), 0.5);
+ b = c7c(P6c(new f7c(f.a, f.b), g), i);
+ a7c(a.d, b);
+ } else {
+ e = Edb(ED(vNb(a.a, tSb)));
+ d = a.d;
+ if (f.a >= h.a) {
+ if (f.b >= h.b) {
+ d.a = h.a + (f.a - h.a) / 2 + e;
+ d.b = h.b + (f.b - h.b) / 2 - e - a.e.b;
+ } else {
+ d.a = h.a + (f.a - h.a) / 2 + e;
+ d.b = f.b + (h.b - f.b) / 2 + e;
+ }
+ } else {
+ if (f.b >= h.b) {
+ d.a = f.a + (h.a - f.a) / 2 + e;
+ d.b = h.b + (f.b - h.b) / 2 + e;
+ } else {
+ d.a = f.a + (h.a - f.a) / 2 + e;
+ d.b = f.b + (h.b - f.b) / 2 - e - a.e.b;
+ }
+ }
+ }
+ }
+ function Qge(a, b) {
+ var c, d, e, f, g, h, i;
+ if (a == null) {
+ return null;
+ }
+ f = a.length;
+ if (f == 0) {
+ return "";
+ }
+ i = KC(TD, $ie, 25, f, 15, 1);
+ ACb(0, f, a.length);
+ ACb(0, f, i.length);
+ ffb(a, 0, f, i, 0);
+ c = null;
+ h = b;
+ for (e = 0, g = 0; e < f; e++) {
+ d = i[e];
+ lde();
+ if (d <= 32 && (kde[d] & 2) != 0) {
+ if (h) {
+ !c && (c = new Jfb(a));
+ Gfb(c, e - g++);
+ } else {
+ h = b;
+ if (d != 32) {
+ !c && (c = new Jfb(a));
+ kcb(c, e - g, e - g + 1, String.fromCharCode(32));
+ }
+ }
+ } else {
+ h = false;
+ }
+ }
+ if (h) {
+ if (!c) {
+ return a.substr(0, f - 1);
+ } else {
+ f = c.a.length;
+ return f > 0 ? qfb(c.a, 0, f - 1) : "";
+ }
+ } else {
+ return !c ? a : c.a;
+ }
+ }
+ function DPb(a) {
+ r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Yle), "ELK DisCo"), "Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."), new GPb())));
+ p4c(a, Yle, Zle, Ksd(BPb));
+ p4c(a, Yle, $le, Ksd(vPb));
+ p4c(a, Yle, _le, Ksd(qPb));
+ p4c(a, Yle, ame, Ksd(wPb));
+ p4c(a, Yle, Zke, Ksd(zPb));
+ p4c(a, Yle, $ke, Ksd(yPb));
+ p4c(a, Yle, Yke, Ksd(APb));
+ p4c(a, Yle, _ke, Ksd(xPb));
+ p4c(a, Yle, Tle, Ksd(sPb));
+ p4c(a, Yle, Ule, Ksd(rPb));
+ p4c(a, Yle, Vle, Ksd(tPb));
+ p4c(a, Yle, Wle, Ksd(uPb));
+ }
+ function Zbc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m;
+ f = new b0b(a);
+ __b(f, (j0b(), i0b));
+ yNb(f, (Nyc(), Vxc), (dcd(), $bd));
+ e = 0;
+ if (b) {
+ g = new H0b();
+ yNb(g, (wtc(), $sc), b);
+ yNb(f, $sc, b.i);
+ G0b(g, (Ucd(), Tcd));
+ F0b(g, f);
+ m = k_b(b.e);
+ for (j = m, k = 0, l = j.length; k < l; ++k) {
+ i = j[k];
+ RZb(i, g);
+ }
+ yNb(b, gtc, f);
+ ++e;
+ }
+ if (c) {
+ h = new H0b();
+ yNb(f, (wtc(), $sc), c.i);
+ yNb(h, $sc, c);
+ G0b(h, (Ucd(), zcd));
+ F0b(h, f);
+ m = k_b(c.g);
+ for (j = m, k = 0, l = j.length; k < l; ++k) {
+ i = j[k];
+ QZb(i, h);
+ }
+ yNb(c, gtc, f);
+ ++e;
+ }
+ yNb(f, (wtc(), ysc), meb(e));
+ d.c[d.c.length] = f;
+ return f;
+ }
+ function Smd() {
+ Smd = ccb;
+ Qmd = OC(GC(TD, 1), $ie, 25, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]);
+ Rmd = new RegExp("[ \n\r\f]+");
+ try {
+ Pmd = OC(GC(c6, 1), Uhe, 2015, 0, [new EQd((GA(), IA("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", LA((KA(), KA(), JA))))), new EQd(IA("yyyy-MM-dd'T'HH:mm:ss'.'SSS", LA((null, JA)))), new EQd(IA("yyyy-MM-dd'T'HH:mm:ss", LA((null, JA)))), new EQd(IA("yyyy-MM-dd'T'HH:mm", LA((null, JA)))), new EQd(IA("yyyy-MM-dd", LA((null, JA))))]);
+ } catch (a) {
+ a = ubb(a);
+ if (!JD(a, 78))
+ throw vbb(a);
+ }
+ }
+ function qgb(a) {
+ var b, c, d, e;
+ d = shb((!a.c && (a.c = fhb(a.f)), a.c), 0);
+ if (a.e == 0 || a.a == 0 && a.f != -1 && a.e < 0) {
+ return d;
+ }
+ b = pgb(a) < 0 ? 1 : 0;
+ c = a.e;
+ e = (d.length + 1 + $wnd.Math.abs(QD(a.e)), new Vfb());
+ b == 1 && (e.a += "-", e);
+ if (a.e > 0) {
+ c -= d.length - b;
+ if (c >= 0) {
+ e.a += "0.";
+ for (; c > egb.length; c -= egb.length) {
+ Rfb(e, egb);
+ }
+ Sfb(e, egb, QD(c));
+ Qfb(e, d.substr(b));
+ } else {
+ c = b - c;
+ Qfb(e, qfb(d, b, QD(c)));
+ e.a += ".";
+ Qfb(e, pfb(d, QD(c)));
+ }
+ } else {
+ Qfb(e, d.substr(b));
+ for (; c < -egb.length; c += egb.length) {
+ Rfb(e, egb);
+ }
+ Sfb(e, egb, QD(-c));
+ }
+ return e.a;
+ }
+ function v6c(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m;
+ i = c7c(new f7c(c.a, c.b), a);
+ j = i.a * b.b - i.b * b.a;
+ k = b.a * d.b - b.b * d.a;
+ l = (i.a * d.b - i.b * d.a) / k;
+ m = j / k;
+ if (k == 0) {
+ if (j == 0) {
+ e = P6c(new f7c(c.a, c.b), Y6c(new f7c(d.a, d.b), 0.5));
+ f = S6c(a, e);
+ g = S6c(P6c(new f7c(a.a, a.b), b), e);
+ h = $wnd.Math.sqrt(d.a * d.a + d.b * d.b) * 0.5;
+ if (f < g && f <= h) {
+ return new f7c(a.a, a.b);
+ }
+ if (g <= h) {
+ return P6c(new f7c(a.a, a.b), b);
+ }
+ return null;
+ } else {
+ return null;
+ }
+ } else {
+ return l >= 0 && l <= 1 && m >= 0 && m <= 1 ? P6c(new f7c(a.a, a.b), Y6c(new f7c(b.a, b.b), l)) : null;
+ }
+ }
+ function OTb(a, b, c) {
+ var d, e, f, g, h;
+ d = BD(vNb(a, (Nyc(), zwc)), 21);
+ c.a > b.a && (d.Hc((i8c(), c8c)) ? a.c.a += (c.a - b.a) / 2 : d.Hc(e8c) && (a.c.a += c.a - b.a));
+ c.b > b.b && (d.Hc((i8c(), g8c)) ? a.c.b += (c.b - b.b) / 2 : d.Hc(f8c) && (a.c.b += c.b - b.b));
+ if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) && (c.a > b.a || c.b > b.b)) {
+ for (h = new olb(a.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ if (g.k == (j0b(), e0b)) {
+ e = BD(vNb(g, Hsc), 61);
+ e == (Ucd(), zcd) ? g.n.a += c.a - b.a : e == Rcd && (g.n.b += c.b - b.b);
+ }
+ }
+ }
+ f = a.d;
+ a.f.a = c.a - f.b - f.c;
+ a.f.b = c.b - f.d - f.a;
+ }
+ function H5b(a, b, c) {
+ var d, e, f, g, h;
+ d = BD(vNb(a, (Nyc(), zwc)), 21);
+ c.a > b.a && (d.Hc((i8c(), c8c)) ? a.c.a += (c.a - b.a) / 2 : d.Hc(e8c) && (a.c.a += c.a - b.a));
+ c.b > b.b && (d.Hc((i8c(), g8c)) ? a.c.b += (c.b - b.b) / 2 : d.Hc(f8c) && (a.c.b += c.b - b.b));
+ if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) && (c.a > b.a || c.b > b.b)) {
+ for (g = new olb(a.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ if (f.k == (j0b(), e0b)) {
+ e = BD(vNb(f, Hsc), 61);
+ e == (Ucd(), zcd) ? f.n.a += c.a - b.a : e == Rcd && (f.n.b += c.b - b.b);
+ }
+ }
+ }
+ h = a.d;
+ a.f.a = c.a - h.b - h.c;
+ a.f.b = c.b - h.d - h.a;
+ }
+ function kMc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m;
+ b = DMc(a);
+ for (k = (h = new Pib(b).a.vc().Kc(), new Vib(h)); k.a.Ob(); ) {
+ j = (e = BD(k.a.Pb(), 42), BD(e.cd(), 10));
+ l = 0;
+ m = 0;
+ l = j.d.d;
+ m = j.o.b + j.d.a;
+ a.d[j.p] = 0;
+ c = j;
+ while ((f = a.a[c.p]) != j) {
+ d = FMc(c, f);
+ i = 0;
+ a.c == (YLc(), WLc) ? i = d.d.n.b + d.d.a.b - d.c.n.b - d.c.a.b : i = d.c.n.b + d.c.a.b - d.d.n.b - d.d.a.b;
+ g = Edb(a.d[c.p]) + i;
+ a.d[f.p] = g;
+ l = $wnd.Math.max(l, f.d.d - g);
+ m = $wnd.Math.max(m, g + f.o.b + f.d.a);
+ c = f;
+ }
+ c = j;
+ do {
+ a.d[c.p] = Edb(a.d[c.p]) + l;
+ c = a.a[c.p];
+ } while (c != j);
+ a.b[j.p] = l + m;
+ }
+ }
+ function LOb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m;
+ a.b = false;
+ l = Pje;
+ i = Qje;
+ m = Pje;
+ j = Qje;
+ for (d = a.e.a.ec().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 266);
+ e = c.a;
+ l = $wnd.Math.min(l, e.c);
+ i = $wnd.Math.max(i, e.c + e.b);
+ m = $wnd.Math.min(m, e.d);
+ j = $wnd.Math.max(j, e.d + e.a);
+ for (g = new olb(c.c); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 395);
+ b = f.a;
+ if (b.a) {
+ k = e.d + f.b.b;
+ h = k + f.c;
+ m = $wnd.Math.min(m, k);
+ j = $wnd.Math.max(j, h);
+ } else {
+ k = e.c + f.b.a;
+ h = k + f.c;
+ l = $wnd.Math.min(l, k);
+ i = $wnd.Math.max(i, h);
+ }
+ }
+ }
+ a.a = new f7c(i - l, j - m);
+ a.c = new f7c(l + a.d.a, m + a.d.b);
+ }
+ function xZc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ l = new Rkb();
+ k = new x$c(0, c);
+ f = 0;
+ s$c(k, new PZc(0, 0, k, c));
+ e = 0;
+ for (j = new Fyd(a); j.e != j.i.gc(); ) {
+ i = BD(Dyd(j), 33);
+ d = BD(Ikb(k.a, k.a.c.length - 1), 187);
+ h = e + i.g + (BD(Ikb(k.a, 0), 187).b.c.length == 0 ? 0 : c);
+ if (h > b) {
+ e = 0;
+ f += k.b + c;
+ l.c[l.c.length] = k;
+ k = new x$c(f, c);
+ d = new PZc(0, k.f, k, c);
+ s$c(k, d);
+ e = 0;
+ }
+ if (d.b.c.length == 0 || i.f >= d.o && i.f <= d.f || d.a * 0.5 <= i.f && d.a * 1.5 >= i.f) {
+ EZc(d, i);
+ } else {
+ g = new PZc(d.s + d.r + c, k.f, k, c);
+ s$c(k, g);
+ EZc(g, i);
+ }
+ e = i.i + i.g;
+ }
+ l.c[l.c.length] = k;
+ return l;
+ }
+ function OKd(a) {
+ var b, c, d, e, f, g, h, i;
+ if (!a.a) {
+ a.o = null;
+ i = new GNd(a);
+ b = new KNd();
+ c = KKd;
+ h = c.a.zc(a, c);
+ if (h == null) {
+ for (g = new Fyd(_Kd(a)); g.e != g.i.gc(); ) {
+ f = BD(Dyd(g), 26);
+ ytd(i, OKd(f));
+ }
+ c.a.Bc(a) != null;
+ c.a.gc() == 0 && void 0;
+ }
+ for (e = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); e.e != e.i.gc(); ) {
+ d = BD(Dyd(e), 170);
+ JD(d, 322) && wtd(b, BD(d, 34));
+ }
+ vud(b);
+ a.k = new PNd(a, (BD(qud(ZKd((NFd(), MFd).o), 7), 18), b.i), b.g);
+ ytd(i, a.k);
+ vud(i);
+ a.a = new nNd((BD(qud(ZKd(MFd.o), 4), 18), i.i), i.g);
+ $Kd(a).b &= -2;
+ }
+ return a.a;
+ }
+ function vZc(a, b, c, d, e, f, g) {
+ var h, i, j, k, l, m;
+ l = false;
+ i = ZZc(c.q, b.f + b.b - c.q.f);
+ m = e - (c.q.e + i - g);
+ if (m < d.g) {
+ return false;
+ }
+ j = f == a.c.length - 1 && m >= (tCb(f, a.c.length), BD(a.c[f], 200)).e;
+ k = (h = MZc(d, m, false), h.a);
+ if (k > b.b && !j) {
+ return false;
+ }
+ if (j || k <= b.b) {
+ if (j && k > b.b) {
+ c.d = k;
+ KZc(c, JZc(c, k));
+ } else {
+ $Zc(c.q, i);
+ c.c = true;
+ }
+ KZc(d, e - (c.s + c.r));
+ OZc(d, c.q.e + c.q.d, b.f);
+ s$c(b, d);
+ if (a.c.length > f) {
+ v$c((tCb(f, a.c.length), BD(a.c[f], 200)), d);
+ (tCb(f, a.c.length), BD(a.c[f], 200)).a.c.length == 0 && Kkb(a, f);
+ }
+ l = true;
+ }
+ return l;
+ }
+ function C2d(a, b, c, d) {
+ var e, f, g, h, i, j, k;
+ k = S6d(a.e.Tg(), b);
+ e = 0;
+ f = BD(a.g, 119);
+ i = null;
+ Q6d();
+ if (BD(b, 66).Oj()) {
+ for (h = 0; h < a.i; ++h) {
+ g = f[h];
+ if (k.rl(g.ak())) {
+ if (pb(g, c)) {
+ i = g;
+ break;
+ }
+ ++e;
+ }
+ }
+ } else if (c != null) {
+ for (h = 0; h < a.i; ++h) {
+ g = f[h];
+ if (k.rl(g.ak())) {
+ if (pb(c, g.dd())) {
+ i = g;
+ break;
+ }
+ ++e;
+ }
+ }
+ } else {
+ for (h = 0; h < a.i; ++h) {
+ g = f[h];
+ if (k.rl(g.ak())) {
+ if (g.dd() == null) {
+ i = g;
+ break;
+ }
+ ++e;
+ }
+ }
+ }
+ if (i) {
+ if (oid(a.e)) {
+ j = b.$j() ? new O7d(a.e, 4, b, c, null, e, true) : H2d(a, b.Kj() ? 2 : 1, b, c, b.zj(), -1, true);
+ d ? d.Ei(j) : d = j;
+ }
+ d = B2d(a, i, d);
+ }
+ return d;
+ }
+ function kYc(a, b, c, d, e, f, g) {
+ var h, i, j, k, l, m, n, o2, p;
+ o2 = 0;
+ p = 0;
+ i = e.c;
+ h = e.b;
+ k = c.f;
+ n = c.g;
+ switch (b.g) {
+ case 0:
+ o2 = d.i + d.g + g;
+ a.c ? p = tYc(o2, f, d, g) : p = d.j;
+ m = $wnd.Math.max(i, o2 + n);
+ j = $wnd.Math.max(h, p + k);
+ break;
+ case 1:
+ p = d.j + d.f + g;
+ a.c ? o2 = sYc(p, f, d, g) : o2 = d.i;
+ m = $wnd.Math.max(i, o2 + n);
+ j = $wnd.Math.max(h, p + k);
+ break;
+ case 2:
+ o2 = i + g;
+ p = 0;
+ m = i + g + n;
+ j = $wnd.Math.max(h, k);
+ break;
+ case 3:
+ o2 = 0;
+ p = h + g;
+ m = $wnd.Math.max(i, n);
+ j = h + g + k;
+ break;
+ default:
+ throw vbb(new Wdb("IllegalPlacementOption."));
+ }
+ l = new e$c(a.a, m, j, b, o2, p);
+ return l;
+ }
+ function R2b(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m;
+ h = a.d;
+ l = BD(vNb(a, (wtc(), vtc)), 15);
+ b = BD(vNb(a, tsc), 15);
+ if (!l && !b) {
+ return;
+ }
+ f = Edb(ED(pBc(a, (Nyc(), iyc))));
+ g = Edb(ED(pBc(a, jyc)));
+ m = 0;
+ if (l) {
+ j = 0;
+ for (e = l.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 10);
+ j = $wnd.Math.max(j, d.o.b);
+ m += d.o.a;
+ }
+ m += f * (l.gc() - 1);
+ h.d += j + g;
+ }
+ c = 0;
+ if (b) {
+ j = 0;
+ for (e = b.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 10);
+ j = $wnd.Math.max(j, d.o.b);
+ c += d.o.a;
+ }
+ c += f * (b.gc() - 1);
+ h.a += j + g;
+ }
+ i = $wnd.Math.max(m, c);
+ if (i > a.o.a) {
+ k = (i - a.o.a) / 2;
+ h.b = $wnd.Math.max(h.b, k);
+ h.c = $wnd.Math.max(h.c, k);
+ }
+ }
+ function rvd(a) {
+ var b, c, d, e, f, g, h, i;
+ f = new b2c();
+ Z1c(f, (Y1c(), V1c));
+ for (d = (e = $B(a, KC(ZI, nie, 2, 0, 6, 1)), new vib(new amb(new mC(a, e).b))); d.b < d.d.gc(); ) {
+ c = (sCb(d.b < d.d.gc()), GD(d.d.Xb(d.c = d.b++)));
+ g = k4c(lvd, c);
+ if (g) {
+ b = aC(a, c);
+ b.je() ? h = b.je().a : b.ge() ? h = "" + b.ge().a : b.he() ? h = "" + b.he().a : h = b.Ib();
+ i = o5c(g, h);
+ if (i != null) {
+ (uqb(g.j, (N5c(), K5c)) || uqb(g.j, L5c)) && xNb(_1c(f, E2), g, i);
+ uqb(g.j, I5c) && xNb(_1c(f, B2), g, i);
+ uqb(g.j, M5c) && xNb(_1c(f, F2), g, i);
+ uqb(g.j, J5c) && xNb(_1c(f, D2), g, i);
+ }
+ }
+ }
+ return f;
+ }
+ function J2d(a, b, c, d) {
+ var e, f, g, h, i, j;
+ i = S6d(a.e.Tg(), b);
+ f = BD(a.g, 119);
+ if (T6d(a.e, b)) {
+ e = 0;
+ for (h = 0; h < a.i; ++h) {
+ g = f[h];
+ if (i.rl(g.ak())) {
+ if (e == c) {
+ Q6d();
+ if (BD(b, 66).Oj()) {
+ return g;
+ } else {
+ j = g.dd();
+ j != null && d && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (j = b3d(a, b, h, e, j));
+ return j;
+ }
+ }
+ ++e;
+ }
+ }
+ throw vbb(new qcb(gve + c + mue + e));
+ } else {
+ e = 0;
+ for (h = 0; h < a.i; ++h) {
+ g = f[h];
+ if (i.rl(g.ak())) {
+ Q6d();
+ if (BD(b, 66).Oj()) {
+ return g;
+ } else {
+ j = g.dd();
+ j != null && d && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (j = b3d(a, b, h, e, j));
+ return j;
+ }
+ }
+ ++e;
+ }
+ return b.zj();
+ }
+ }
+ function K2d(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ e = BD(a.g, 119);
+ if (T6d(a.e, b)) {
+ return Q6d(), BD(b, 66).Oj() ? new R7d(b, a) : new f7d(b, a);
+ } else {
+ j = S6d(a.e.Tg(), b);
+ d = 0;
+ for (h = 0; h < a.i; ++h) {
+ f = e[h];
+ g = f.ak();
+ if (j.rl(g)) {
+ Q6d();
+ if (BD(b, 66).Oj()) {
+ return f;
+ } else if (g == (m8d(), k8d) || g == h8d) {
+ i = new Wfb(fcb(f.dd()));
+ while (++h < a.i) {
+ f = e[h];
+ g = f.ak();
+ (g == k8d || g == h8d) && Qfb(i, fcb(f.dd()));
+ }
+ return j6d(BD(b.Yj(), 148), i.a);
+ } else {
+ k = f.dd();
+ k != null && c && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (k = b3d(a, b, h, d, k));
+ return k;
+ }
+ }
+ ++d;
+ }
+ return b.zj();
+ }
+ }
+ function MZc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ f = 0;
+ g = a.t;
+ e = 0;
+ d = 0;
+ i = 0;
+ m = 0;
+ l = 0;
+ if (c) {
+ a.n.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Ekb(a.n, new VZc(a.s, a.t, a.i));
+ }
+ h = 0;
+ for (k = new olb(a.b); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 33);
+ if (f + j.g + (h > 0 ? a.i : 0) > b && i > 0) {
+ f = 0;
+ g += i + a.i;
+ e = $wnd.Math.max(e, m);
+ d += i + a.i;
+ i = 0;
+ m = 0;
+ if (c) {
+ ++l;
+ Ekb(a.n, new VZc(a.s, g, a.i));
+ }
+ h = 0;
+ }
+ m += j.g + (h > 0 ? a.i : 0);
+ i = $wnd.Math.max(i, j.f);
+ c && QZc(BD(Ikb(a.n, l), 211), j);
+ f += j.g + (h > 0 ? a.i : 0);
+ ++h;
+ }
+ e = $wnd.Math.max(e, m);
+ d += i;
+ if (c) {
+ a.r = e;
+ a.d = d;
+ u$c(a.j);
+ }
+ return new J6c(a.s, a.t, e, d);
+ }
+ function $fb(a, b, c, d, e) {
+ Zfb();
+ var f, g, h, i, j, k, l, m, n;
+ vCb(a, "src");
+ vCb(c, "dest");
+ m = rb(a);
+ i = rb(c);
+ rCb((m.i & 4) != 0, "srcType is not an array");
+ rCb((i.i & 4) != 0, "destType is not an array");
+ l = m.c;
+ g = i.c;
+ rCb((l.i & 1) != 0 ? l == g : (g.i & 1) == 0, "Array types don't match");
+ n = a.length;
+ j = c.length;
+ if (b < 0 || d < 0 || e < 0 || b + e > n || d + e > j) {
+ throw vbb(new pcb());
+ }
+ if ((l.i & 1) == 0 && m != i) {
+ k = CD(a);
+ f = CD(c);
+ if (PD(a) === PD(c) && b < d) {
+ b += e;
+ for (h = d + e; h-- > d; ) {
+ NC(f, h, k[--b]);
+ }
+ } else {
+ for (h = d + e; d < h; ) {
+ NC(f, d++, k[b++]);
+ }
+ }
+ } else
+ e > 0 && $Bb(a, b, c, d, e, true);
+ }
+ function phb() {
+ phb = ccb;
+ nhb = OC(GC(WD, 1), oje, 25, 15, [Rie, 1162261467, Iie, 1220703125, 362797056, 1977326743, Iie, 387420489, Jje, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 128e7, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729e6, 887503681, Iie, 1291467969, 1544804416, 1838265625, 60466176]);
+ ohb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]);
+ }
+ function soc(a) {
+ var b, c, d, e, f, g, h, i;
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ for (g = new olb(Mu(d.a)); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ if (ioc(f)) {
+ c = BD(vNb(f, (wtc(), usc)), 305);
+ if (!c.g && !!c.d) {
+ b = c;
+ i = c.d;
+ while (i) {
+ roc(i.i, i.k, false, true);
+ zoc(b.a);
+ zoc(i.i);
+ zoc(i.k);
+ zoc(i.b);
+ RZb(i.c, b.c.d);
+ RZb(b.c, null);
+ $_b(b.a, null);
+ $_b(i.i, null);
+ $_b(i.k, null);
+ $_b(i.b, null);
+ h = new goc(b.i, i.a, b.e, i.j, i.f);
+ h.k = b.k;
+ h.n = b.n;
+ h.b = b.b;
+ h.c = i.c;
+ h.g = b.g;
+ h.d = i.d;
+ yNb(b.i, usc, h);
+ yNb(i.a, usc, h);
+ i = i.d;
+ b = h;
+ }
+ }
+ }
+ }
+ }
+ }
+ function Xfe(a, b) {
+ var c, d, e, f, g;
+ g = BD(b, 136);
+ Yfe(a);
+ Yfe(g);
+ if (g.b == null)
+ return;
+ a.c = true;
+ if (a.b == null) {
+ a.b = KC(WD, oje, 25, g.b.length, 15, 1);
+ $fb(g.b, 0, a.b, 0, g.b.length);
+ return;
+ }
+ f = KC(WD, oje, 25, a.b.length + g.b.length, 15, 1);
+ for (c = 0, d = 0, e = 0; c < a.b.length || d < g.b.length; ) {
+ if (c >= a.b.length) {
+ f[e++] = g.b[d++];
+ f[e++] = g.b[d++];
+ } else if (d >= g.b.length) {
+ f[e++] = a.b[c++];
+ f[e++] = a.b[c++];
+ } else if (g.b[d] < a.b[c] || g.b[d] === a.b[c] && g.b[d + 1] < a.b[c + 1]) {
+ f[e++] = g.b[d++];
+ f[e++] = g.b[d++];
+ } else {
+ f[e++] = a.b[c++];
+ f[e++] = a.b[c++];
+ }
+ }
+ a.b = f;
+ }
+ function S6b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ c = Ccb(DD(vNb(a, (wtc(), Usc))));
+ h = Ccb(DD(vNb(b, Usc)));
+ d = BD(vNb(a, Vsc), 11);
+ i = BD(vNb(b, Vsc), 11);
+ e = BD(vNb(a, Wsc), 11);
+ j = BD(vNb(b, Wsc), 11);
+ k = !!d && d == i;
+ l = !!e && e == j;
+ if (!c && !h) {
+ return new Z6b(BD(mlb(new olb(a.j)), 11).p == BD(mlb(new olb(b.j)), 11).p, k, l);
+ }
+ f = (!Ccb(DD(vNb(a, Usc))) || Ccb(DD(vNb(a, Tsc)))) && (!Ccb(DD(vNb(b, Usc))) || Ccb(DD(vNb(b, Tsc))));
+ g = (!Ccb(DD(vNb(a, Usc))) || !Ccb(DD(vNb(a, Tsc)))) && (!Ccb(DD(vNb(b, Usc))) || !Ccb(DD(vNb(b, Tsc))));
+ return new Z6b(k && f || l && g, k, l);
+ }
+ function HZc(a) {
+ var b, c, d, e, f, g, h, i;
+ d = 0;
+ c = 0;
+ i = new Psb();
+ b = 0;
+ for (h = new olb(a.n); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 211);
+ if (g.c.c.length == 0) {
+ Gsb(i, g, i.c.b, i.c);
+ } else {
+ d = $wnd.Math.max(d, g.d);
+ c += g.a + (b > 0 ? a.i : 0);
+ }
+ ++b;
+ }
+ Ce(a.n, i);
+ a.d = c;
+ a.r = d;
+ a.g = 0;
+ a.f = 0;
+ a.e = 0;
+ a.o = Pje;
+ a.p = Pje;
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 33);
+ a.p = $wnd.Math.min(a.p, e.g);
+ a.g = $wnd.Math.max(a.g, e.g);
+ a.f = $wnd.Math.max(a.f, e.f);
+ a.o = $wnd.Math.min(a.o, e.f);
+ a.e += e.f + a.i;
+ }
+ a.a = a.e / a.b.c.length - a.i * ((a.b.c.length - 1) / a.b.c.length);
+ u$c(a.j);
+ }
+ function Sld(a) {
+ var b, c, d, e;
+ if ((a.Db & 64) != 0)
+ return Mkd(a);
+ b = new Wfb(_se);
+ d = a.k;
+ if (!d) {
+ !a.n && (a.n = new cUd(D2, a, 1, 7));
+ if (a.n.i > 0) {
+ e = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a;
+ !e || Qfb(Qfb((b.a += ' "', b), e), '"');
+ }
+ } else {
+ Qfb(Qfb((b.a += ' "', b), d), '"');
+ }
+ c = (!a.b && (a.b = new y5d(z2, a, 4, 7)), !(a.b.i <= 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c.i <= 1)));
+ c ? (b.a += " [", b) : (b.a += " ", b);
+ Qfb(b, Eb(new Gb(), new Fyd(a.b)));
+ c && (b.a += "]", b);
+ b.a += gne;
+ c && (b.a += "[", b);
+ Qfb(b, Eb(new Gb(), new Fyd(a.c)));
+ c && (b.a += "]", b);
+ return b.a;
+ }
+ function TQd(a, b) {
+ var c, d, e, f, g, h, i;
+ if (a.a) {
+ h = a.a.ne();
+ i = null;
+ if (h != null) {
+ b.a += "" + h;
+ } else {
+ g = a.a.Dj();
+ if (g != null) {
+ f = hfb(g, wfb(91));
+ if (f != -1) {
+ i = g.substr(f);
+ b.a += "" + qfb(g == null ? Xhe : (uCb(g), g), 0, f);
+ } else {
+ b.a += "" + g;
+ }
+ }
+ }
+ if (!!a.d && a.d.i != 0) {
+ e = true;
+ b.a += "<";
+ for (d = new Fyd(a.d); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 87);
+ e ? e = false : (b.a += She, b);
+ TQd(c, b);
+ }
+ b.a += ">";
+ }
+ i != null && (b.a += "" + i, b);
+ } else if (a.e) {
+ h = a.e.zb;
+ h != null && (b.a += "" + h, b);
+ } else {
+ b.a += "?";
+ if (a.b) {
+ b.a += " super ";
+ TQd(a.b, b);
+ } else {
+ if (a.f) {
+ b.a += " extends ";
+ TQd(a.f, b);
+ }
+ }
+ }
+ }
+ function Z9b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D;
+ v = a.c;
+ w = b.c;
+ c = Jkb(v.a, a, 0);
+ d = Jkb(w.a, b, 0);
+ t = BD(W_b(a, (KAc(), HAc)).Kc().Pb(), 11);
+ C = BD(W_b(a, IAc).Kc().Pb(), 11);
+ u = BD(W_b(b, HAc).Kc().Pb(), 11);
+ D = BD(W_b(b, IAc).Kc().Pb(), 11);
+ r = k_b(t.e);
+ A = k_b(C.g);
+ s = k_b(u.e);
+ B = k_b(D.g);
+ Z_b(a, d, w);
+ for (g = s, k = 0, o2 = g.length; k < o2; ++k) {
+ e = g[k];
+ RZb(e, t);
+ }
+ for (h = B, l = 0, p = h.length; l < p; ++l) {
+ e = h[l];
+ QZb(e, C);
+ }
+ Z_b(b, c, v);
+ for (i = r, m = 0, q = i.length; m < q; ++m) {
+ e = i[m];
+ RZb(e, u);
+ }
+ for (f = A, j = 0, n = f.length; j < n; ++j) {
+ e = f[j];
+ QZb(e, D);
+ }
+ }
+ function $$b(a, b, c, d) {
+ var e, f, g, h, i, j, k;
+ f = a_b(d);
+ h = Ccb(DD(vNb(d, (Nyc(), uxc))));
+ if ((h || Ccb(DD(vNb(a, exc)))) && !fcd(BD(vNb(a, Vxc), 98))) {
+ e = Zcd(f);
+ i = i_b(a, c, c == (KAc(), IAc) ? e : Wcd(e));
+ } else {
+ i = new H0b();
+ F0b(i, a);
+ if (b) {
+ k = i.n;
+ k.a = b.a - a.n.a;
+ k.b = b.b - a.n.b;
+ Q6c(k, 0, 0, a.o.a, a.o.b);
+ G0b(i, W$b(i, f));
+ } else {
+ e = Zcd(f);
+ G0b(i, c == (KAc(), IAc) ? e : Wcd(e));
+ }
+ g = BD(vNb(d, (wtc(), Ksc)), 21);
+ j = i.j;
+ switch (f.g) {
+ case 2:
+ case 1:
+ (j == (Ucd(), Acd) || j == Rcd) && g.Fc((Orc(), Lrc));
+ break;
+ case 4:
+ case 3:
+ (j == (Ucd(), zcd) || j == Tcd) && g.Fc((Orc(), Lrc));
+ }
+ }
+ return i;
+ }
+ function pPc(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ if ($wnd.Math.abs(b.s - b.c) < qme || $wnd.Math.abs(c.s - c.c) < qme) {
+ return 0;
+ }
+ d = oPc(a, b.j, c.e);
+ e = oPc(a, c.j, b.e);
+ f = d == -1 || e == -1;
+ g = 0;
+ if (f) {
+ if (d == -1) {
+ new DOc((HOc(), FOc), c, b, 1);
+ ++g;
+ }
+ if (e == -1) {
+ new DOc((HOc(), FOc), b, c, 1);
+ ++g;
+ }
+ } else {
+ h = vPc(b.j, c.s, c.c);
+ h += vPc(c.e, b.s, b.c);
+ i = vPc(c.j, b.s, b.c);
+ i += vPc(b.e, c.s, c.c);
+ j = d + 16 * h;
+ k = e + 16 * i;
+ if (j < k) {
+ new DOc((HOc(), GOc), b, c, k - j);
+ } else if (j > k) {
+ new DOc((HOc(), GOc), c, b, j - k);
+ } else if (j > 0 && k > 0) {
+ new DOc((HOc(), GOc), b, c, 0);
+ new DOc(GOc, c, b, 0);
+ }
+ }
+ return g;
+ }
+ function TUb(a, b) {
+ var c, d, e, f, g, h;
+ for (g = new nib(new eib(a.f.b).a); g.b; ) {
+ f = lib(g);
+ e = BD(f.cd(), 594);
+ if (b == 1) {
+ if (e.gf() != (ead(), dad) && e.gf() != _9c) {
+ continue;
+ }
+ } else {
+ if (e.gf() != (ead(), aad) && e.gf() != bad) {
+ continue;
+ }
+ }
+ d = BD(BD(f.dd(), 46).b, 81);
+ h = BD(BD(f.dd(), 46).a, 189);
+ c = h.c;
+ switch (e.gf().g) {
+ case 2:
+ d.g.c = a.e.a;
+ d.g.b = $wnd.Math.max(1, d.g.b + c);
+ break;
+ case 1:
+ d.g.c = d.g.c + c;
+ d.g.b = $wnd.Math.max(1, d.g.b - c);
+ break;
+ case 4:
+ d.g.d = a.e.b;
+ d.g.a = $wnd.Math.max(1, d.g.a + c);
+ break;
+ case 3:
+ d.g.d = d.g.d + c;
+ d.g.a = $wnd.Math.max(1, d.g.a - c);
+ }
+ }
+ }
+ function nJc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ h = KC(WD, oje, 25, b.b.c.length, 15, 1);
+ j = KC(NQ, Kie, 267, b.b.c.length, 0, 1);
+ i = KC(OQ, kne, 10, b.b.c.length, 0, 1);
+ for (l = a.a, m = 0, n = l.length; m < n; ++m) {
+ k = l[m];
+ p = 0;
+ for (g = new olb(k.e); g.a < g.c.c.length; ) {
+ e = BD(mlb(g), 10);
+ d = G1b(e.c);
+ ++h[d];
+ o2 = Edb(ED(vNb(b, (Nyc(), lyc))));
+ h[d] > 0 && !!i[d] && (o2 = jBc(a.b, i[d], e));
+ p = $wnd.Math.max(p, e.c.c.b + o2);
+ }
+ for (f = new olb(k.e); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ e.n.b = p + e.d.d;
+ c = e.c;
+ c.c.b = p + e.d.d + e.o.b + e.d.a;
+ j[Jkb(c.b.b, c, 0)] = e.k;
+ i[Jkb(c.b.b, c, 0)] = e;
+ }
+ }
+ }
+ function LXc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ for (d = new Sr(ur(_sd(b).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 79);
+ if (!JD(qud((!c.b && (c.b = new y5d(z2, c, 4, 7)), c.b), 0), 186)) {
+ i = atd(BD(qud((!c.c && (c.c = new y5d(z2, c, 5, 8)), c.c), 0), 82));
+ if (!Pld(c)) {
+ g = b.i + b.g / 2;
+ h = b.j + b.f / 2;
+ k = i.i + i.g / 2;
+ l = i.j + i.f / 2;
+ m = new d7c();
+ m.a = k - g;
+ m.b = l - h;
+ f = new f7c(m.a, m.b);
+ l6c(f, b.g, b.f);
+ m.a -= f.a;
+ m.b -= f.b;
+ g = k - m.a;
+ h = l - m.b;
+ j = new f7c(m.a, m.b);
+ l6c(j, i.g, i.f);
+ m.a -= j.a;
+ m.b -= j.b;
+ k = g + m.a;
+ l = h + m.b;
+ e = itd(c, true, true);
+ omd(e, g);
+ pmd(e, h);
+ hmd(e, k);
+ imd(e, l);
+ LXc(a, i);
+ }
+ }
+ }
+ }
+ function e0c(a) {
+ r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Pre), "ELK SPOrE Compaction"), "ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree."), new h0c())));
+ p4c(a, Pre, Qre, Ksd(c0c));
+ p4c(a, Pre, Rre, Ksd(__c));
+ p4c(a, Pre, Sre, Ksd($_c));
+ p4c(a, Pre, Tre, Ksd(Y_c));
+ p4c(a, Pre, Ure, Ksd(Z_c));
+ p4c(a, Pre, ame, X_c);
+ p4c(a, Pre, wme, 8);
+ p4c(a, Pre, Vre, Ksd(b0c));
+ p4c(a, Pre, Wre, Ksd(T_c));
+ p4c(a, Pre, Xre, Ksd(U_c));
+ p4c(a, Pre, Zpe, (Bcb(), false));
+ }
+ function JLc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ Odd(b, "Simple node placement", 1);
+ l = BD(vNb(a, (wtc(), otc)), 304);
+ h = 0;
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 29);
+ g = d.c;
+ g.b = 0;
+ c = null;
+ for (j = new olb(d.a); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 10);
+ !!c && (g.b += hBc(i, c, l.c));
+ g.b += i.d.d + i.o.b + i.d.a;
+ c = i;
+ }
+ h = $wnd.Math.max(h, g.b);
+ }
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ g = d.c;
+ k = (h - g.b) / 2;
+ c = null;
+ for (j = new olb(d.a); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 10);
+ !!c && (k += hBc(i, c, l.c));
+ k += i.d.d;
+ i.n.b = k;
+ k += i.o.b + i.d.a;
+ c = i;
+ }
+ }
+ Qdd(b);
+ }
+ function s2d(a, b, c, d) {
+ var e, f, g, h, i, j, k, l;
+ if (d.gc() == 0) {
+ return false;
+ }
+ i = (Q6d(), BD(b, 66).Oj());
+ g = i ? d : new zud(d.gc());
+ if (T6d(a.e, b)) {
+ if (b.hi()) {
+ for (k = d.Kc(); k.Ob(); ) {
+ j = k.Pb();
+ if (!F2d(a, b, j, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
+ f = R6d(b, j);
+ g.Fc(f);
+ }
+ }
+ } else if (!i) {
+ for (k = d.Kc(); k.Ob(); ) {
+ j = k.Pb();
+ f = R6d(b, j);
+ g.Fc(f);
+ }
+ }
+ } else {
+ l = S6d(a.e.Tg(), b);
+ e = BD(a.g, 119);
+ for (h = 0; h < a.i; ++h) {
+ f = e[h];
+ if (l.rl(f.ak())) {
+ throw vbb(new Wdb(Hwe));
+ }
+ }
+ if (d.gc() > 1) {
+ throw vbb(new Wdb(Hwe));
+ }
+ if (!i) {
+ f = R6d(b, d.Kc().Pb());
+ g.Fc(f);
+ }
+ }
+ return xtd(a, I2d(a, b, c), g);
+ }
+ function Pmc(a, b) {
+ var c, d, e, f;
+ Jmc(b.b.j);
+ MAb(NAb(new YAb(null, new Kub(b.d, 16)), new $mc()), new anc());
+ for (f = new olb(b.d); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 101);
+ switch (e.e.g) {
+ case 0:
+ c = BD(Ikb(e.j, 0), 113).d.j;
+ mjc(e, BD(Btb(RAb(BD(Qc(e.k, c), 15).Oc(), Hmc)), 113));
+ njc(e, BD(Btb(QAb(BD(Qc(e.k, c), 15).Oc(), Hmc)), 113));
+ break;
+ case 1:
+ d = Bkc(e);
+ mjc(e, BD(Btb(RAb(BD(Qc(e.k, d[0]), 15).Oc(), Hmc)), 113));
+ njc(e, BD(Btb(QAb(BD(Qc(e.k, d[1]), 15).Oc(), Hmc)), 113));
+ break;
+ case 2:
+ Rmc(a, e);
+ break;
+ case 3:
+ Qmc(e);
+ break;
+ case 4:
+ Omc(a, e);
+ }
+ Mmc(e);
+ }
+ a.a = null;
+ }
+ function $Mc(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ d = a.a.o == (eMc(), dMc) ? Pje : Qje;
+ h = _Mc(a, new ZMc(b, c));
+ if (!h.a && h.c) {
+ Dsb(a.d, h);
+ return d;
+ } else if (h.a) {
+ e = h.a.c;
+ i = h.a.d;
+ if (c) {
+ j = a.a.c == (YLc(), XLc) ? i : e;
+ f = a.a.c == XLc ? e : i;
+ g = a.a.g[f.i.p];
+ k = Edb(a.a.p[g.p]) + Edb(a.a.d[f.i.p]) + f.n.b + f.a.b - Edb(a.a.d[j.i.p]) - j.n.b - j.a.b;
+ } else {
+ j = a.a.c == (YLc(), WLc) ? i : e;
+ f = a.a.c == WLc ? e : i;
+ k = Edb(a.a.p[a.a.g[f.i.p].p]) + Edb(a.a.d[f.i.p]) + f.n.b + f.a.b - Edb(a.a.d[j.i.p]) - j.n.b - j.a.b;
+ }
+ a.a.n[a.a.g[e.i.p].p] = (Bcb(), true);
+ a.a.n[a.a.g[i.i.p].p] = true;
+ return k;
+ }
+ return d;
+ }
+ function f3d(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ if (T6d(a.e, b)) {
+ i = (Q6d(), BD(b, 66).Oj() ? new R7d(b, a) : new f7d(b, a));
+ D2d(i.c, i.b);
+ b7d(i, BD(c, 14));
+ } else {
+ k = S6d(a.e.Tg(), b);
+ d = BD(a.g, 119);
+ for (g = 0; g < a.i; ++g) {
+ e = d[g];
+ f = e.ak();
+ if (k.rl(f)) {
+ if (f == (m8d(), k8d) || f == h8d) {
+ j = m3d(a, b, c);
+ h = g;
+ j ? Xxd(a, g) : ++g;
+ while (g < a.i) {
+ e = d[g];
+ f = e.ak();
+ f == k8d || f == h8d ? Xxd(a, g) : ++g;
+ }
+ j || BD(Gtd(a, h, R6d(b, c)), 72);
+ } else
+ m3d(a, b, c) ? Xxd(a, g) : BD(Gtd(a, g, (Q6d(), BD(b, 66).Oj() ? BD(c, 72) : R6d(b, c))), 72);
+ return;
+ }
+ }
+ m3d(a, b, c) || wtd(a, (Q6d(), BD(b, 66).Oj() ? BD(c, 72) : R6d(b, c)));
+ }
+ }
+ function IMb(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ if (!pb(c, a.b)) {
+ a.b = c;
+ f = new LMb();
+ g = BD(GAb(NAb(new YAb(null, new Kub(c.f, 16)), f), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
+ a.e = true;
+ a.f = true;
+ a.c = true;
+ a.d = true;
+ e = g.Hc((RMb(), OMb));
+ d = g.Hc(PMb);
+ e && !d && (a.f = false);
+ !e && d && (a.d = false);
+ e = g.Hc(NMb);
+ d = g.Hc(QMb);
+ e && !d && (a.c = false);
+ !e && d && (a.e = false);
+ }
+ k = BD(a.a.Ce(b, c), 46);
+ i = BD(k.a, 19).a;
+ j = BD(k.b, 19).a;
+ h = false;
+ i < 0 ? a.c || (h = true) : a.e || (h = true);
+ j < 0 ? a.d || (h = true) : a.f || (h = true);
+ return h ? IMb(a, k, c) : k;
+ }
+ function oKb(a) {
+ var b, c, d, e;
+ e = a.o;
+ $Jb();
+ if (a.A.dc() || pb(a.A, ZJb)) {
+ b = e.b;
+ } else {
+ b = fIb(a.f);
+ if (a.A.Hc((tdd(), qdd)) && !a.B.Hc((Idd(), Edd))) {
+ b = $wnd.Math.max(b, fIb(BD(Mpb(a.p, (Ucd(), zcd)), 244)));
+ b = $wnd.Math.max(b, fIb(BD(Mpb(a.p, Tcd), 244)));
+ }
+ c = aKb(a);
+ !!c && (b = $wnd.Math.max(b, c.b));
+ if (a.A.Hc(rdd)) {
+ if (a.q == (dcd(), _bd) || a.q == $bd) {
+ b = $wnd.Math.max(b, _Gb(BD(Mpb(a.b, (Ucd(), zcd)), 124)));
+ b = $wnd.Math.max(b, _Gb(BD(Mpb(a.b, Tcd), 124)));
+ }
+ }
+ }
+ Ccb(DD(a.e.yf().We((Y9c(), $8c)))) ? e.b = $wnd.Math.max(e.b, b) : e.b = b;
+ d = a.f.i;
+ d.d = 0;
+ d.a = b;
+ iIb(a.f);
+ }
+ function $Ic(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ for (l = 0; l < b.length; l++) {
+ for (h = a.Kc(); h.Ob(); ) {
+ f = BD(h.Pb(), 225);
+ f.Of(l, b);
+ }
+ for (m = 0; m < b[l].length; m++) {
+ for (i = a.Kc(); i.Ob(); ) {
+ f = BD(i.Pb(), 225);
+ f.Pf(l, m, b);
+ }
+ p = b[l][m].j;
+ for (n = 0; n < p.c.length; n++) {
+ for (j = a.Kc(); j.Ob(); ) {
+ f = BD(j.Pb(), 225);
+ f.Qf(l, m, n, b);
+ }
+ o2 = (tCb(n, p.c.length), BD(p.c[n], 11));
+ c = 0;
+ for (e = new b1b(o2.b); llb(e.a) || llb(e.b); ) {
+ d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
+ for (k = a.Kc(); k.Ob(); ) {
+ f = BD(k.Pb(), 225);
+ f.Nf(l, m, n, c++, d, b);
+ }
+ }
+ }
+ }
+ }
+ for (g = a.Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 225);
+ f.Mf();
+ }
+ }
+ function J4b(a, b) {
+ var c, d, e, f, g, h, i;
+ a.b = Edb(ED(vNb(b, (Nyc(), myc))));
+ a.c = Edb(ED(vNb(b, pyc)));
+ a.d = BD(vNb(b, Xwc), 336);
+ a.a = BD(vNb(b, swc), 275);
+ H4b(b);
+ h = BD(GAb(JAb(JAb(LAb(LAb(new YAb(null, new Kub(b.b, 16)), new N4b()), new P4b()), new R4b()), new T4b()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
+ for (e = h.Kc(); e.Ob(); ) {
+ c = BD(e.Pb(), 17);
+ g = BD(vNb(c, (wtc(), rtc)), 15);
+ g.Jc(new V4b(a));
+ yNb(c, rtc, null);
+ }
+ for (d = h.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 17);
+ i = BD(vNb(c, (wtc(), stc)), 17);
+ f = BD(vNb(c, ptc), 15);
+ B4b(a, f, i);
+ yNb(c, ptc, null);
+ }
+ }
+ function uZd(a) {
+ a.b = null;
+ a.a = null;
+ a.o = null;
+ a.q = null;
+ a.v = null;
+ a.w = null;
+ a.B = null;
+ a.p = null;
+ a.Q = null;
+ a.R = null;
+ a.S = null;
+ a.T = null;
+ a.U = null;
+ a.V = null;
+ a.W = null;
+ a.bb = null;
+ a.eb = null;
+ a.ab = null;
+ a.H = null;
+ a.db = null;
+ a.c = null;
+ a.d = null;
+ a.f = null;
+ a.n = null;
+ a.r = null;
+ a.s = null;
+ a.u = null;
+ a.G = null;
+ a.J = null;
+ a.e = null;
+ a.j = null;
+ a.i = null;
+ a.g = null;
+ a.k = null;
+ a.t = null;
+ a.F = null;
+ a.I = null;
+ a.L = null;
+ a.M = null;
+ a.O = null;
+ a.P = null;
+ a.$ = null;
+ a.N = null;
+ a.Z = null;
+ a.cb = null;
+ a.K = null;
+ a.D = null;
+ a.A = null;
+ a.C = null;
+ a._ = null;
+ a.fb = null;
+ a.X = null;
+ a.Y = null;
+ a.gb = false;
+ a.hb = false;
+ }
+ function bKc(a) {
+ var b, c, d, e, f, g, h, i, j;
+ if (a.k != (j0b(), h0b)) {
+ return false;
+ }
+ if (a.j.c.length <= 1) {
+ return false;
+ }
+ f = BD(vNb(a, (Nyc(), Vxc)), 98);
+ if (f == (dcd(), $bd)) {
+ return false;
+ }
+ e = (Izc(), (!a.q ? (mmb(), mmb(), kmb) : a.q)._b(Cxc) ? d = BD(vNb(a, Cxc), 197) : d = BD(vNb(Q_b(a), Dxc), 197), d);
+ if (e == Gzc) {
+ return false;
+ }
+ if (!(e == Fzc || e == Ezc)) {
+ g = Edb(ED(pBc(a, zyc)));
+ b = BD(vNb(a, yyc), 142);
+ !b && (b = new J_b(g, g, g, g));
+ j = V_b(a, (Ucd(), Tcd));
+ i = b.d + b.a + (j.gc() - 1) * g;
+ if (i > a.o.b) {
+ return false;
+ }
+ c = V_b(a, zcd);
+ h = b.d + b.a + (c.gc() - 1) * g;
+ if (h > a.o.b) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function thb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ g = a.e;
+ i = b.e;
+ if (g == 0) {
+ return b;
+ }
+ if (i == 0) {
+ return a;
+ }
+ f = a.d;
+ h = b.d;
+ if (f + h == 2) {
+ c = xbb(a.a[0], Yje);
+ d = xbb(b.a[0], Yje);
+ if (g == i) {
+ k = wbb(c, d);
+ o2 = Tbb(k);
+ n = Tbb(Pbb(k, 32));
+ return n == 0 ? new Ugb(g, o2) : new Vgb(g, 2, OC(GC(WD, 1), oje, 25, 15, [o2, n]));
+ }
+ return ghb(g < 0 ? Qbb(d, c) : Qbb(c, d));
+ } else if (g == i) {
+ m = g;
+ l = f >= h ? uhb(a.a, f, b.a, h) : uhb(b.a, h, a.a, f);
+ } else {
+ e = f != h ? f > h ? 1 : -1 : whb(a.a, b.a, f);
+ if (e == 0) {
+ return Hgb(), Ggb;
+ }
+ if (e == 1) {
+ m = g;
+ l = zhb(a.a, f, b.a, h);
+ } else {
+ m = i;
+ l = zhb(b.a, h, a.a, f);
+ }
+ }
+ j = new Vgb(m, l.length, l);
+ Jgb(j);
+ return j;
+ }
+ function oZb(a, b, c, d, e, f, g) {
+ var h, i, j, k, l, m, n;
+ l = Ccb(DD(vNb(b, (Nyc(), vxc))));
+ m = null;
+ f == (KAc(), HAc) && d.c.i == c ? m = d.c : f == IAc && d.d.i == c && (m = d.d);
+ j = g;
+ if (!j || !l || !!m) {
+ k = (Ucd(), Scd);
+ m ? k = m.j : fcd(BD(vNb(c, Vxc), 98)) && (k = f == HAc ? Tcd : zcd);
+ i = lZb(a, b, c, f, k, d);
+ h = kZb((Q_b(c), d));
+ if (f == HAc) {
+ QZb(h, BD(Ikb(i.j, 0), 11));
+ RZb(h, e);
+ } else {
+ QZb(h, e);
+ RZb(h, BD(Ikb(i.j, 0), 11));
+ }
+ j = new yZb(d, h, i, BD(vNb(i, (wtc(), $sc)), 11), f, !m);
+ } else {
+ Ekb(j.e, d);
+ n = $wnd.Math.max(Edb(ED(vNb(j.d, Zwc))), Edb(ED(vNb(d, Zwc))));
+ yNb(j.d, Zwc, n);
+ }
+ Rc(a.a, d, new BZb(j.d, b, f));
+ return j;
+ }
+ function V1d(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ k = null;
+ !!a.d && (k = BD(Phb(a.d, b), 138));
+ if (!k) {
+ f = a.a.Mh();
+ l = f.i;
+ if (!a.d || Vhb(a.d) != l) {
+ i = new Lqb();
+ !!a.d && Ld(i, a.d);
+ j = i.f.c + i.g.c;
+ for (h = j; h < l; ++h) {
+ d = BD(qud(f, h), 138);
+ e = o1d(a.e, d).ne();
+ c = BD(e == null ? jrb(i.f, null, d) : Drb(i.g, e, d), 138);
+ !!c && c != d && (e == null ? jrb(i.f, null, c) : Drb(i.g, e, c));
+ }
+ if (i.f.c + i.g.c != l) {
+ for (g = 0; g < j; ++g) {
+ d = BD(qud(f, g), 138);
+ e = o1d(a.e, d).ne();
+ c = BD(e == null ? jrb(i.f, null, d) : Drb(i.g, e, d), 138);
+ !!c && c != d && (e == null ? jrb(i.f, null, c) : Drb(i.g, e, c));
+ }
+ }
+ a.d = i;
+ }
+ k = BD(Phb(a.d, b), 138);
+ }
+ return k;
+ }
+ function lZb(a, b, c, d, e, f) {
+ var g, h, i, j, k, l;
+ g = null;
+ j = d == (KAc(), HAc) ? f.c : f.d;
+ i = a_b(b);
+ if (j.i == c) {
+ g = BD(Ohb(a.b, j), 10);
+ if (!g) {
+ g = Z$b(j, BD(vNb(c, (Nyc(), Vxc)), 98), e, hZb(j), null, j.n, j.o, i, b);
+ yNb(g, (wtc(), $sc), j);
+ Rhb(a.b, j, g);
+ }
+ } else {
+ g = Z$b((k = new zNb(), l = Edb(ED(vNb(b, (Nyc(), lyc)))) / 2, xNb(k, Uxc, l), k), BD(vNb(c, Vxc), 98), e, d == HAc ? -1 : 1, null, new d7c(), new f7c(0, 0), i, b);
+ h = mZb(g, c, d);
+ yNb(g, (wtc(), $sc), h);
+ Rhb(a.b, h, g);
+ }
+ BD(vNb(b, (wtc(), Ksc)), 21).Fc((Orc(), Hrc));
+ fcd(BD(vNb(b, (Nyc(), Vxc)), 98)) ? yNb(b, Vxc, (dcd(), acd)) : yNb(b, Vxc, (dcd(), bcd));
+ return g;
+ }
+ function vNc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ Odd(b, "Orthogonal edge routing", 1);
+ j = Edb(ED(vNb(a, (Nyc(), wyc))));
+ c = Edb(ED(vNb(a, myc)));
+ d = Edb(ED(vNb(a, pyc)));
+ m = new tPc(0, c);
+ q = 0;
+ g = new Bib(a.b, 0);
+ h = null;
+ k = null;
+ i = null;
+ l = null;
+ do {
+ k = g.b < g.d.gc() ? (sCb(g.b < g.d.gc()), BD(g.d.Xb(g.c = g.b++), 29)) : null;
+ l = !k ? null : k.a;
+ if (h) {
+ h_b(h, q);
+ q += h.c.a;
+ }
+ p = !h ? q : q + d;
+ o2 = sPc(m, a, i, l, p);
+ e = !h || Kq(i, (FNc(), DNc));
+ f = !k || Kq(l, (FNc(), DNc));
+ if (o2 > 0) {
+ n = (o2 - 1) * c;
+ !!h && (n += d);
+ !!k && (n += d);
+ n < j && !e && !f && (n = j);
+ q += n;
+ } else
+ !e && !f && (q += j);
+ h = k;
+ i = l;
+ } while (k);
+ a.f.a = q;
+ Qdd(b);
+ }
+ function IEd() {
+ IEd = ccb;
+ var a;
+ HEd = new mFd();
+ BEd = KC(ZI, nie, 2, 0, 6, 1);
+ uEd = Mbb(ZEd(33, 58), ZEd(1, 26));
+ vEd = Mbb(ZEd(97, 122), ZEd(65, 90));
+ wEd = ZEd(48, 57);
+ sEd = Mbb(uEd, 0);
+ tEd = Mbb(vEd, wEd);
+ xEd = Mbb(Mbb(0, ZEd(1, 6)), ZEd(33, 38));
+ yEd = Mbb(Mbb(wEd, ZEd(65, 70)), ZEd(97, 102));
+ EEd = Mbb(sEd, XEd("-_.!~*'()"));
+ FEd = Mbb(tEd, $Ed("-_.!~*'()"));
+ XEd(lve);
+ $Ed(lve);
+ Mbb(EEd, XEd(";:@&=+$,"));
+ Mbb(FEd, $Ed(";:@&=+$,"));
+ zEd = XEd(":/?#");
+ AEd = $Ed(":/?#");
+ CEd = XEd("/?#");
+ DEd = $Ed("/?#");
+ a = new Tqb();
+ a.a.zc("jar", a);
+ a.a.zc("zip", a);
+ a.a.zc("archive", a);
+ GEd = (mmb(), new zob(a));
+ }
+ function yUc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ yNb(b, (mTc(), cTc), 0);
+ i = BD(vNb(b, aTc), 86);
+ if (b.d.b == 0) {
+ if (i) {
+ k = Edb(ED(vNb(i, fTc))) + a.a + zUc(i, b);
+ yNb(b, fTc, k);
+ } else {
+ yNb(b, fTc, 0);
+ }
+ } else {
+ for (d = (f = Jsb(new ZRc(b).a.d, 0), new aSc(f)); Wsb(d.a); ) {
+ c = BD(Xsb(d.a), 188).c;
+ yUc(a, c);
+ }
+ h = BD(pr((g = Jsb(new ZRc(b).a.d, 0), new aSc(g))), 86);
+ l = BD(or((e = Jsb(new ZRc(b).a.d, 0), new aSc(e))), 86);
+ j = (Edb(ED(vNb(l, fTc))) + Edb(ED(vNb(h, fTc)))) / 2;
+ if (i) {
+ k = Edb(ED(vNb(i, fTc))) + a.a + zUc(i, b);
+ yNb(b, fTc, k);
+ yNb(b, cTc, Edb(ED(vNb(b, fTc))) - j);
+ xUc(a, b);
+ } else {
+ yNb(b, fTc, j);
+ }
+ }
+ }
+ function Dbc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ h = 0;
+ o2 = 0;
+ i = tlb(a.f, a.f.length);
+ f = a.d;
+ g = a.i;
+ d = a.a;
+ e = a.b;
+ do {
+ n = 0;
+ for (k = new olb(a.p); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 10);
+ m = Cbc(a, j);
+ c = true;
+ (a.q == (kAc(), dAc) || a.q == gAc) && (c = Ccb(DD(m.b)));
+ if (BD(m.a, 19).a < 0 && c) {
+ ++n;
+ i = tlb(a.f, a.f.length);
+ a.d = a.d + BD(m.a, 19).a;
+ o2 += f - a.d;
+ f = a.d + BD(m.a, 19).a;
+ g = a.i;
+ d = Mu(a.a);
+ e = Mu(a.b);
+ } else {
+ a.f = tlb(i, i.length);
+ a.d = f;
+ a.a = (Qb(d), d ? new Tkb(d) : Nu(new olb(d)));
+ a.b = (Qb(e), e ? new Tkb(e) : Nu(new olb(e)));
+ a.i = g;
+ }
+ }
+ ++h;
+ l = n != 0 && Ccb(DD(b.Kb(new vgd(meb(o2), meb(h)))));
+ } while (l);
+ }
+ function lYc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C;
+ g = a.f;
+ m = b.f;
+ h = g == (k$c(), f$c) || g == h$c;
+ n = m == f$c || m == h$c;
+ i = g == g$c || g == i$c;
+ o2 = m == g$c || m == i$c;
+ j = g == g$c || g == f$c;
+ p = m == g$c || m == f$c;
+ if (h && n) {
+ return a.f == h$c ? a : b;
+ } else if (i && o2) {
+ return a.f == i$c ? a : b;
+ } else if (j && p) {
+ if (g == g$c) {
+ l = a;
+ k = b;
+ } else {
+ l = b;
+ k = a;
+ }
+ f = (q = c.j + c.f, r = l.e + d.f, s = $wnd.Math.max(q, r), t = s - $wnd.Math.min(c.j, l.e), u = l.d + d.g - c.i, u * t);
+ e = (v = c.i + c.g, w = k.d + d.g, A = $wnd.Math.max(v, w), B = A - $wnd.Math.min(c.i, k.d), C = k.e + d.f - c.j, B * C);
+ return f <= e ? a.f == g$c ? a : b : a.f == f$c ? a : b;
+ }
+ return a;
+ }
+ function wGb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l;
+ k = a.e.a.c.length;
+ for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 121);
+ f.j = false;
+ }
+ a.i = KC(WD, oje, 25, k, 15, 1);
+ a.g = KC(WD, oje, 25, k, 15, 1);
+ a.n = new Rkb();
+ e = 0;
+ l = new Rkb();
+ for (i = new olb(a.e.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 121);
+ h.d = e++;
+ h.b.a.c.length == 0 && Ekb(a.n, h);
+ Gkb(l, h.g);
+ }
+ b = 0;
+ for (d = new olb(l); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 213);
+ c.c = b++;
+ c.f = false;
+ }
+ j = l.c.length;
+ if (a.b == null || a.b.length < j) {
+ a.b = KC(UD, Vje, 25, j, 15, 1);
+ a.c = KC(sbb, dle, 25, j, 16, 1);
+ } else {
+ Blb(a.c);
+ }
+ a.d = l;
+ a.p = new Asb(Cv(a.d.c.length));
+ a.j = 1;
+ }
+ function sTb(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ if (b.e.c.length <= 1) {
+ return;
+ }
+ a.f = b;
+ a.d = BD(vNb(a.f, (bTb(), SSb)), 379);
+ a.g = BD(vNb(a.f, WSb), 19).a;
+ a.e = Edb(ED(vNb(a.f, TSb)));
+ a.c = Edb(ED(vNb(a.f, RSb)));
+ it(a.b);
+ for (e = new olb(a.f.c); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 282);
+ ht(a.b, d.c, d, null);
+ ht(a.b, d.d, d, null);
+ }
+ h = a.f.e.c.length;
+ a.a = IC(UD, [nie, Vje], [104, 25], 15, [h, h], 2);
+ for (j = new olb(a.f.e); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 144);
+ oTb(a, i, a.a[i.b]);
+ }
+ a.i = IC(UD, [nie, Vje], [104, 25], 15, [h, h], 2);
+ for (f = 0; f < h; ++f) {
+ for (g = 0; g < h; ++g) {
+ c = a.a[f][g];
+ k = 1 / (c * c);
+ a.i[f][g] = k;
+ }
+ }
+ }
+ function Vfe(a) {
+ var b, c, d, e;
+ if (a.b == null || a.b.length <= 2)
+ return;
+ if (a.a)
+ return;
+ b = 0;
+ e = 0;
+ while (e < a.b.length) {
+ if (b != e) {
+ a.b[b] = a.b[e++];
+ a.b[b + 1] = a.b[e++];
+ } else
+ e += 2;
+ c = a.b[b + 1];
+ while (e < a.b.length) {
+ if (c + 1 < a.b[e])
+ break;
+ if (c + 1 == a.b[e]) {
+ a.b[b + 1] = a.b[e + 1];
+ c = a.b[b + 1];
+ e += 2;
+ } else if (c >= a.b[e + 1]) {
+ e += 2;
+ } else if (c < a.b[e + 1]) {
+ a.b[b + 1] = a.b[e + 1];
+ c = a.b[b + 1];
+ e += 2;
+ } else {
+ throw vbb(new hz("Token#compactRanges(): Internel Error: [" + a.b[b] + "," + a.b[b + 1] + "] [" + a.b[e] + "," + a.b[e + 1] + "]"));
+ }
+ }
+ b += 2;
+ }
+ if (b != a.b.length) {
+ d = KC(WD, oje, 25, b, 15, 1);
+ $fb(a.b, 0, d, 0, b);
+ a.b = d;
+ }
+ a.a = true;
+ }
+ function pZb(a, b) {
+ var c, d, e, f, g, h, i;
+ for (g = Ec(a.a).Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 17);
+ if (f.b.c.length > 0) {
+ d = new Tkb(BD(Qc(a.a, f), 21));
+ mmb();
+ Okb(d, new EZb(b));
+ e = new Bib(f.b, 0);
+ while (e.b < e.d.gc()) {
+ c = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 70));
+ h = -1;
+ switch (BD(vNb(c, (Nyc(), Qwc)), 272).g) {
+ case 1:
+ h = d.c.length - 1;
+ break;
+ case 0:
+ h = nZb(d);
+ break;
+ case 2:
+ h = 0;
+ }
+ if (h != -1) {
+ i = (tCb(h, d.c.length), BD(d.c[h], 243));
+ Ekb(i.b.b, c);
+ BD(vNb(Q_b(i.b.c.i), (wtc(), Ksc)), 21).Fc((Orc(), Grc));
+ BD(vNb(Q_b(i.b.c.i), Ksc), 21).Fc(Erc);
+ uib(e);
+ yNb(c, btc, f);
+ }
+ }
+ }
+ QZb(f, null);
+ RZb(f, null);
+ }
+ }
+ function FLb(a, b) {
+ var c, d, e, f;
+ c = new KLb();
+ d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
+ e = d.gc();
+ e = e == 2 ? 1 : 0;
+ e == 1 && Bbb(Hbb(BD(GAb(JAb(d.Lc(), new MLb()), Xyb(Aeb(0), new Czb())), 162).a, 2), 0) && (e = 0);
+ d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21);
+ f = d.gc();
+ f = f == 2 ? 1 : 0;
+ f == 1 && Bbb(Hbb(BD(GAb(JAb(d.Lc(), new OLb()), Xyb(Aeb(0), new Czb())), 162).a, 2), 0) && (f = 0);
+ if (e < f) {
+ return -1;
+ }
+ if (e == f) {
+ return 0;
+ }
+ return 1;
+ }
+ function h6b(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n;
+ j = new Rkb();
+ if (!wNb(a, (wtc(), Fsc))) {
+ return j;
+ }
+ for (d = BD(vNb(a, Fsc), 15).Kc(); d.Ob(); ) {
+ b = BD(d.Pb(), 10);
+ g6b(b, a);
+ j.c[j.c.length] = b;
+ }
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ for (h = new olb(e.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ if (g.k != (j0b(), e0b)) {
+ continue;
+ }
+ i = BD(vNb(g, Gsc), 10);
+ !!i && (k = new H0b(), F0b(k, g), l = BD(vNb(g, Hsc), 61), G0b(k, l), m = BD(Ikb(i.j, 0), 11), n = new UZb(), QZb(n, k), RZb(n, m), void 0);
+ }
+ }
+ for (c = new olb(j); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 10);
+ $_b(b, BD(Ikb(a.b, a.b.c.length - 1), 29));
+ }
+ return j;
+ }
+ function M1b(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m;
+ b = mpd(a);
+ f = Ccb(DD(hkd(b, (Nyc(), fxc))));
+ k = 0;
+ e = 0;
+ for (j = new Fyd((!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e)); j.e != j.i.gc(); ) {
+ i = BD(Dyd(j), 79);
+ h = Qld(i);
+ g = h && f && Ccb(DD(hkd(i, gxc)));
+ m = atd(BD(qud((!i.c && (i.c = new y5d(z2, i, 5, 8)), i.c), 0), 82));
+ h && g ? ++e : h && !g ? ++k : Xod(m) == b || m == b ? ++e : ++k;
+ }
+ for (d = new Fyd((!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 79);
+ h = Qld(c);
+ g = h && f && Ccb(DD(hkd(c, gxc)));
+ l = atd(BD(qud((!c.b && (c.b = new y5d(z2, c, 4, 7)), c.b), 0), 82));
+ h && g ? ++k : h && !g ? ++e : Xod(l) == b || l == b ? ++k : ++e;
+ }
+ return k - e;
+ }
+ function ubc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n;
+ Odd(b, "Edge splitting", 1);
+ if (a.b.c.length <= 2) {
+ Qdd(b);
+ return;
+ }
+ f = new Bib(a.b, 0);
+ g = (sCb(f.b < f.d.gc()), BD(f.d.Xb(f.c = f.b++), 29));
+ while (f.b < f.d.gc()) {
+ e = g;
+ g = (sCb(f.b < f.d.gc()), BD(f.d.Xb(f.c = f.b++), 29));
+ for (i = new olb(e.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ for (k = new olb(h.j); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 11);
+ for (d = new olb(j.g); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 17);
+ m = c.d;
+ l = m.i.c;
+ l != e && l != g && zbc(c, (n = new b0b(a), __b(n, (j0b(), g0b)), yNb(n, (wtc(), $sc), c), yNb(n, (Nyc(), Vxc), (dcd(), $bd)), $_b(n, g), n));
+ }
+ }
+ }
+ }
+ Qdd(b);
+ }
+ function MTb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n;
+ h = b.p != null && !b.b;
+ h || Odd(b, kme, 1);
+ c = BD(vNb(a, (wtc(), itc)), 15);
+ g = 1 / c.gc();
+ if (b.n) {
+ Sdd(b, "ELK Layered uses the following " + c.gc() + " modules:");
+ n = 0;
+ for (m = c.Kc(); m.Ob(); ) {
+ k = BD(m.Pb(), 51);
+ d = (n < 10 ? "0" : "") + n++;
+ Sdd(b, " Slot " + d + ": " + hdb(rb(k)));
+ }
+ }
+ for (l = c.Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 51);
+ k.pf(a, Udd(b, g));
+ }
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ Gkb(a.a, e.a);
+ e.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ for (j = new olb(a.a); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 10);
+ $_b(i, null);
+ }
+ a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ h || Qdd(b);
+ }
+ function kJc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A;
+ d = Edb(ED(vNb(b, (Nyc(), Bxc))));
+ v = BD(vNb(b, Ayc), 19).a;
+ m = 4;
+ e = 3;
+ w = 20 / v;
+ n = false;
+ i = 0;
+ g = Ohe;
+ do {
+ f = i != 1;
+ l = i != 0;
+ A = 0;
+ for (q = a.a, s = 0, u = q.length; s < u; ++s) {
+ o2 = q[s];
+ o2.f = null;
+ lJc(a, o2, f, l, d);
+ A += $wnd.Math.abs(o2.a);
+ }
+ do {
+ h = pJc(a, b);
+ } while (h);
+ for (p = a.a, r = 0, t = p.length; r < t; ++r) {
+ o2 = p[r];
+ c = xJc(o2).a;
+ if (c != 0) {
+ for (k = new olb(o2.e); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 10);
+ j.n.b += c;
+ }
+ }
+ }
+ if (i == 0 || i == 1) {
+ --m;
+ if (m <= 0 && (A < g || -m > v)) {
+ i = 2;
+ g = Ohe;
+ } else if (i == 0) {
+ i = 1;
+ g = A;
+ } else {
+ i = 0;
+ g = A;
+ }
+ } else {
+ n = A >= g || g - A < w;
+ g = A;
+ n && --e;
+ }
+ } while (!(n && e <= 0));
+ }
+ function UCb(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2;
+ o2 = new Lqb();
+ for (f = a.a.ec().Kc(); f.Ob(); ) {
+ d = BD(f.Pb(), 168);
+ Rhb(o2, d, c.Je(d));
+ }
+ g = (Qb(a), a ? new Tkb(a) : Nu(a.a.ec().Kc()));
+ Okb(g, new WCb(o2));
+ h = Gx(g);
+ i = new hDb(b);
+ n = new Lqb();
+ jrb(n.f, b, i);
+ while (h.a.gc() != 0) {
+ j = null;
+ k = null;
+ l = null;
+ for (e = h.a.ec().Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 168);
+ if (Edb(ED(Wd(irb(o2.f, d)))) <= Pje) {
+ if (Mhb(n, d.a) && !Mhb(n, d.b)) {
+ k = d.b;
+ l = d.a;
+ j = d;
+ break;
+ }
+ if (Mhb(n, d.b)) {
+ if (!Mhb(n, d.a)) {
+ k = d.a;
+ l = d.b;
+ j = d;
+ break;
+ }
+ }
+ }
+ }
+ if (!j) {
+ break;
+ }
+ m = new hDb(k);
+ Ekb(BD(Wd(irb(n.f, l)), 221).a, m);
+ jrb(n.f, k, m);
+ h.a.Bc(j) != null;
+ }
+ return i;
+ }
+ function UBc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n;
+ Odd(c, "Depth-first cycle removal", 1);
+ l = b.a;
+ k = l.c.length;
+ a.c = new Rkb();
+ a.d = KC(sbb, dle, 25, k, 16, 1);
+ a.a = KC(sbb, dle, 25, k, 16, 1);
+ a.b = new Rkb();
+ g = 0;
+ for (j = new olb(l); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 10);
+ i.p = g;
+ Qq(R_b(i)) && Ekb(a.c, i);
+ ++g;
+ }
+ for (n = new olb(a.c); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 10);
+ TBc(a, m);
+ }
+ for (f = 0; f < k; f++) {
+ if (!a.d[f]) {
+ h = (tCb(f, l.c.length), BD(l.c[f], 10));
+ TBc(a, h);
+ }
+ }
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ PZb(d, true);
+ yNb(b, (wtc(), Asc), (Bcb(), true));
+ }
+ a.c = null;
+ a.d = null;
+ a.a = null;
+ a.b = null;
+ Qdd(c);
+ }
+ function PSc(a, b) {
+ var c, d, e, f, g, h, i;
+ a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ for (d = Jsb(b.b, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 86);
+ if (c.b.b == 0) {
+ yNb(c, (mTc(), jTc), (Bcb(), true));
+ Ekb(a.a, c);
+ }
+ }
+ switch (a.a.c.length) {
+ case 0:
+ e = new XRc(0, b, "DUMMY_ROOT");
+ yNb(e, (mTc(), jTc), (Bcb(), true));
+ yNb(e, YSc, true);
+ Dsb(b.b, e);
+ break;
+ case 1:
+ break;
+ default:
+ f = new XRc(0, b, "SUPER_ROOT");
+ for (h = new olb(a.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 86);
+ i = new QRc(f, g);
+ yNb(i, (mTc(), YSc), (Bcb(), true));
+ Dsb(f.a.a, i);
+ Dsb(f.d, i);
+ Dsb(g.b, i);
+ yNb(g, jTc, false);
+ }
+ yNb(f, (mTc(), jTc), (Bcb(), true));
+ yNb(f, YSc, true);
+ Dsb(b.b, f);
+ }
+ }
+ function z6c(a, b) {
+ i6c();
+ var c, d, e, f, g, h;
+ f = b.c - (a.c + a.b);
+ e = a.c - (b.c + b.b);
+ g = a.d - (b.d + b.a);
+ c = b.d - (a.d + a.a);
+ d = $wnd.Math.max(e, f);
+ h = $wnd.Math.max(g, c);
+ Iy();
+ My(Jqe);
+ if (($wnd.Math.abs(d) <= Jqe || d == 0 || isNaN(d) && isNaN(0) ? 0 : d < 0 ? -1 : d > 0 ? 1 : Ny(isNaN(d), isNaN(0))) >= 0 ^ (My(Jqe), ($wnd.Math.abs(h) <= Jqe || h == 0 || isNaN(h) && isNaN(0) ? 0 : h < 0 ? -1 : h > 0 ? 1 : Ny(isNaN(h), isNaN(0))) >= 0)) {
+ return $wnd.Math.max(h, d);
+ }
+ My(Jqe);
+ if (($wnd.Math.abs(d) <= Jqe || d == 0 || isNaN(d) && isNaN(0) ? 0 : d < 0 ? -1 : d > 0 ? 1 : Ny(isNaN(d), isNaN(0))) > 0) {
+ return $wnd.Math.sqrt(h * h + d * d);
+ }
+ return -$wnd.Math.sqrt(h * h + d * d);
+ }
+ function Kge(a, b) {
+ var c, d, e, f, g, h;
+ if (!b)
+ return;
+ !a.a && (a.a = new Wvb());
+ if (a.e == 2) {
+ Tvb(a.a, b);
+ return;
+ }
+ if (b.e == 1) {
+ for (e = 0; e < b.em(); e++)
+ Kge(a, b.am(e));
+ return;
+ }
+ h = a.a.a.c.length;
+ if (h == 0) {
+ Tvb(a.a, b);
+ return;
+ }
+ g = BD(Uvb(a.a, h - 1), 117);
+ if (!((g.e == 0 || g.e == 10) && (b.e == 0 || b.e == 10))) {
+ Tvb(a.a, b);
+ return;
+ }
+ f = b.e == 0 ? 2 : b.bm().length;
+ if (g.e == 0) {
+ c = new Ifb();
+ d = g._l();
+ d >= Tje ? Efb(c, Tee(d)) : Afb(c, d & aje);
+ g = new Hge(10, null, 0);
+ Vvb(a.a, g, h - 1);
+ } else {
+ c = (g.bm().length + f, new Ifb());
+ Efb(c, g.bm());
+ }
+ if (b.e == 0) {
+ d = b._l();
+ d >= Tje ? Efb(c, Tee(d)) : Afb(c, d & aje);
+ } else {
+ Efb(c, b.bm());
+ }
+ BD(g, 521).b = c.a;
+ }
+ function rgb(a) {
+ var b, c, d, e, f;
+ if (a.g != null) {
+ return a.g;
+ }
+ if (a.a < 32) {
+ a.g = rhb(Cbb(a.f), QD(a.e));
+ return a.g;
+ }
+ e = shb((!a.c && (a.c = fhb(a.f)), a.c), 0);
+ if (a.e == 0) {
+ return e;
+ }
+ b = (!a.c && (a.c = fhb(a.f)), a.c).e < 0 ? 2 : 1;
+ c = e.length;
+ d = -a.e + c - b;
+ f = new Ufb();
+ f.a += "" + e;
+ if (a.e > 0 && d >= -6) {
+ if (d >= 0) {
+ Tfb(f, c - QD(a.e), String.fromCharCode(46));
+ } else {
+ f.a = qfb(f.a, 0, b - 1) + "0." + pfb(f.a, b - 1);
+ Tfb(f, b + 1, zfb(egb, 0, -QD(d) - 1));
+ }
+ } else {
+ if (c - b >= 1) {
+ Tfb(f, b, String.fromCharCode(46));
+ ++c;
+ }
+ Tfb(f, c, String.fromCharCode(69));
+ d > 0 && Tfb(f, ++c, String.fromCharCode(43));
+ Tfb(f, ++c, "" + Ubb(Cbb(d)));
+ }
+ a.g = f.a;
+ return a.g;
+ }
+ function npc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ if (c.dc()) {
+ return;
+ }
+ h = 0;
+ m = 0;
+ d = c.Kc();
+ o2 = BD(d.Pb(), 19).a;
+ while (h < b.f) {
+ if (h == o2) {
+ m = 0;
+ d.Ob() ? o2 = BD(d.Pb(), 19).a : o2 = b.f + 1;
+ }
+ if (h != m) {
+ q = BD(Ikb(a.b, h), 29);
+ n = BD(Ikb(a.b, m), 29);
+ p = Mu(q.a);
+ for (l = new olb(p); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 10);
+ Z_b(k, n.a.c.length, n);
+ if (m == 0) {
+ g = Mu(R_b(k));
+ for (f = new olb(g); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 17);
+ PZb(e, true);
+ yNb(a, (wtc(), Asc), (Bcb(), true));
+ Noc(a, e, 1);
+ }
+ }
+ }
+ }
+ ++m;
+ ++h;
+ }
+ i = new Bib(a.b, 0);
+ while (i.b < i.d.gc()) {
+ j = (sCb(i.b < i.d.gc()), BD(i.d.Xb(i.c = i.b++), 29));
+ j.a.c.length == 0 && uib(i);
+ }
+ }
+ function xmc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ g = b.b;
+ k = g.o;
+ i = g.d;
+ d = Edb(ED(c_b(g, (Nyc(), lyc))));
+ e = Edb(ED(c_b(g, nyc)));
+ j = Edb(ED(c_b(g, xyc)));
+ h = new L_b();
+ v_b(h, i.d, i.c, i.a, i.b);
+ m = tmc(b, d, e, j);
+ for (r = new olb(b.d); r.a < r.c.c.length; ) {
+ q = BD(mlb(r), 101);
+ for (o2 = q.f.a.ec().Kc(); o2.Ob(); ) {
+ n = BD(o2.Pb(), 409);
+ f = n.a;
+ l = rmc(n);
+ c = (s = new s7c(), pmc(n, n.c, m, s), omc(n, l, m, s), pmc(n, n.d, m, s), s);
+ c = a.Uf(n, l, c);
+ Osb(f.a);
+ ye(f.a, c);
+ MAb(new YAb(null, new Kub(c, 16)), new Bmc(k, h));
+ }
+ p = q.i;
+ if (p) {
+ wmc(q, p, m, e);
+ t = new g7c(p.g);
+ ymc(k, h, t);
+ P6c(t, p.j);
+ ymc(k, h, t);
+ }
+ }
+ v_b(i, h.d, h.c, h.a, h.b);
+ }
+ function rgc(a, b, c) {
+ var d, e, f;
+ e = BD(vNb(b, (Nyc(), swc)), 275);
+ if (e == (yrc(), wrc)) {
+ return;
+ }
+ Odd(c, "Horizontal Compaction", 1);
+ a.a = b;
+ f = new Ygc();
+ d = new cEb((f.d = b, f.c = BD(vNb(f.d, Swc), 218), Pgc(f), Wgc(f), Vgc(f), f.a));
+ aEb(d, a.b);
+ switch (BD(vNb(b, rwc), 422).g) {
+ case 1:
+ $Db(d, new jfc(a.a));
+ break;
+ default:
+ $Db(d, (ODb(), MDb));
+ }
+ switch (e.g) {
+ case 1:
+ TDb(d);
+ break;
+ case 2:
+ TDb(SDb(d, (ead(), bad)));
+ break;
+ case 3:
+ TDb(_Db(SDb(TDb(d), (ead(), bad)), new Bgc()));
+ break;
+ case 4:
+ TDb(_Db(SDb(TDb(d), (ead(), bad)), new Dgc(f)));
+ break;
+ case 5:
+ TDb(ZDb(d, pgc));
+ }
+ SDb(d, (ead(), aad));
+ d.e = true;
+ Mgc(f);
+ Qdd(c);
+ }
+ function mYc(a, b, c, d, e, f, g, h) {
+ var i, j, k, l;
+ i = Ou(OC(GC(z_, 1), Uhe, 220, 0, [b, c, d, e]));
+ l = null;
+ switch (a.b.g) {
+ case 1:
+ l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new uYc(), new oYc(), new qYc()]));
+ break;
+ case 0:
+ l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new qYc(), new oYc(), new uYc()]));
+ break;
+ case 2:
+ l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new oYc(), new uYc(), new qYc()]));
+ }
+ for (k = new olb(l); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 526);
+ i.c.length > 1 && (i = j.mg(i, a.a, h));
+ }
+ if (i.c.length == 1) {
+ return BD(Ikb(i, i.c.length - 1), 220);
+ }
+ if (i.c.length == 2) {
+ return lYc((tCb(0, i.c.length), BD(i.c[0], 220)), (tCb(1, i.c.length), BD(i.c[1], 220)), g, f);
+ }
+ return null;
+ }
+ function JNb(a) {
+ var b, c, d, e, f, g;
+ Hkb(a.a, new PNb());
+ for (c = new olb(a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 221);
+ d = c7c(R6c(BD(a.b, 65).c), BD(b.b, 65).c);
+ if (FNb) {
+ g = BD(a.b, 65).b;
+ f = BD(b.b, 65).b;
+ if ($wnd.Math.abs(d.a) >= $wnd.Math.abs(d.b)) {
+ d.b = 0;
+ f.d + f.a > g.d && f.d < g.d + g.a && $6c(d, $wnd.Math.max(g.c - (f.c + f.b), f.c - (g.c + g.b)));
+ } else {
+ d.a = 0;
+ f.c + f.b > g.c && f.c < g.c + g.b && $6c(d, $wnd.Math.max(g.d - (f.d + f.a), f.d - (g.d + g.a)));
+ }
+ } else {
+ $6c(d, _Nb(BD(a.b, 65), BD(b.b, 65)));
+ }
+ e = $wnd.Math.sqrt(d.a * d.a + d.b * d.b);
+ e = LNb(GNb, b, e, d);
+ $6c(d, e);
+ $Nb(BD(b.b, 65), d);
+ Hkb(b.a, new RNb(d));
+ BD(GNb.b, 65);
+ KNb(GNb, HNb, b);
+ }
+ }
+ function VJc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ a.f = new KFb();
+ j = 0;
+ e = 0;
+ for (g = new olb(a.e.b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 29);
+ for (i = new olb(f.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ h.p = j++;
+ for (d = new Sr(ur(U_b(h).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 17);
+ c.p = e++;
+ }
+ b = bKc(h);
+ for (m = new olb(h.j); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 11);
+ if (b) {
+ o2 = l.a.b;
+ if (o2 != $wnd.Math.floor(o2)) {
+ k = o2 - Sbb(Cbb($wnd.Math.round(o2)));
+ l.a.b -= k;
+ }
+ }
+ n = l.n.b + l.a.b;
+ if (n != $wnd.Math.floor(n)) {
+ k = n - Sbb(Cbb($wnd.Math.round(n)));
+ l.n.b -= k;
+ }
+ }
+ }
+ }
+ a.g = j;
+ a.b = e;
+ a.i = KC(xY, Uhe, 401, j, 0, 1);
+ a.c = KC(wY, Uhe, 649, e, 0, 1);
+ a.d.a.$b();
+ }
+ function Uxd(a) {
+ var b, c, d, e, f, g, h, i, j;
+ if (a.ej()) {
+ i = a.fj();
+ if (a.i > 0) {
+ b = new _zd(a.i, a.g);
+ c = a.i;
+ f = c < 100 ? null : new Ixd(c);
+ if (a.ij()) {
+ for (d = 0; d < a.i; ++d) {
+ g = a.g[d];
+ f = a.kj(g, f);
+ }
+ }
+ oud(a);
+ e = c == 1 ? a.Zi(4, qud(b, 0), null, 0, i) : a.Zi(6, b, null, -1, i);
+ if (a.bj()) {
+ for (d = new $yd(b); d.e != d.i.gc(); ) {
+ f = a.dj(Zyd(d), f);
+ }
+ if (!f) {
+ a.$i(e);
+ } else {
+ f.Ei(e);
+ f.Fi();
+ }
+ } else {
+ if (!f) {
+ a.$i(e);
+ } else {
+ f.Ei(e);
+ f.Fi();
+ }
+ }
+ } else {
+ oud(a);
+ a.$i(a.Zi(6, (mmb(), jmb), null, -1, i));
+ }
+ } else if (a.bj()) {
+ if (a.i > 0) {
+ h = a.g;
+ j = a.i;
+ oud(a);
+ f = j < 100 ? null : new Ixd(j);
+ for (d = 0; d < j; ++d) {
+ g = h[d];
+ f = a.dj(g, f);
+ }
+ !!f && f.Fi();
+ } else {
+ oud(a);
+ }
+ } else {
+ oud(a);
+ }
+ }
+ function ZQc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ TQc(this);
+ c == (FQc(), DQc) ? Qqb(this.r, a) : Qqb(this.w, a);
+ k = Pje;
+ j = Qje;
+ for (g = b.a.ec().Kc(); g.Ob(); ) {
+ e = BD(g.Pb(), 46);
+ h = BD(e.a, 455);
+ d = BD(e.b, 17);
+ i = d.c;
+ i == a && (i = d.d);
+ h == DQc ? Qqb(this.r, i) : Qqb(this.w, i);
+ m = (Ucd(), Lcd).Hc(i.j) ? Edb(ED(vNb(i, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [i.i.n, i.n, i.a])).b;
+ k = $wnd.Math.min(k, m);
+ j = $wnd.Math.max(j, m);
+ }
+ l = (Ucd(), Lcd).Hc(a.j) ? Edb(ED(vNb(a, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])).b;
+ XQc(this, l, k, j);
+ for (f = b.a.ec().Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 46);
+ UQc(this, BD(e.b, 17));
+ }
+ this.o = false;
+ }
+ function gD(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G;
+ c = a.l & 8191;
+ d = a.l >> 13 | (a.m & 15) << 9;
+ e = a.m >> 4 & 8191;
+ f = a.m >> 17 | (a.h & 255) << 5;
+ g = (a.h & 1048320) >> 8;
+ h = b.l & 8191;
+ i = b.l >> 13 | (b.m & 15) << 9;
+ j = b.m >> 4 & 8191;
+ k = b.m >> 17 | (b.h & 255) << 5;
+ l = (b.h & 1048320) >> 8;
+ B = c * h;
+ C = d * h;
+ D = e * h;
+ F = f * h;
+ G = g * h;
+ if (i != 0) {
+ C += c * i;
+ D += d * i;
+ F += e * i;
+ G += f * i;
+ }
+ if (j != 0) {
+ D += c * j;
+ F += d * j;
+ G += e * j;
+ }
+ if (k != 0) {
+ F += c * k;
+ G += d * k;
+ }
+ l != 0 && (G += c * l);
+ n = B & Eje;
+ o2 = (C & 511) << 13;
+ m = n + o2;
+ q = B >> 22;
+ r = C >> 9;
+ s = (D & 262143) << 4;
+ t = (F & 31) << 17;
+ p = q + r + s + t;
+ v = D >> 18;
+ w = F >> 5;
+ A = (G & 4095) << 8;
+ u = v + w + A;
+ p += m >> 22;
+ m &= Eje;
+ u += p >> 22;
+ p &= Eje;
+ u &= Fje;
+ return TC(m, p, u);
+ }
+ function o7b(a) {
+ var b, c, d, e, f, g, h;
+ h = BD(Ikb(a.j, 0), 11);
+ if (h.g.c.length != 0 && h.e.c.length != 0) {
+ throw vbb(new Zdb("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));
+ }
+ if (h.g.c.length != 0) {
+ f = Pje;
+ for (c = new olb(h.g); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 17);
+ g = b.d.i;
+ d = BD(vNb(g, (Nyc(), txc)), 142);
+ f = $wnd.Math.min(f, g.n.a - d.b);
+ }
+ return new cc(Qb(f));
+ }
+ if (h.e.c.length != 0) {
+ e = Qje;
+ for (c = new olb(h.e); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 17);
+ g = b.c.i;
+ d = BD(vNb(g, (Nyc(), txc)), 142);
+ e = $wnd.Math.max(e, g.n.a + g.o.a + d.c);
+ }
+ return new cc(Qb(e));
+ }
+ return wb(), wb(), vb;
+ }
+ function ELd(a, b) {
+ var c, d, e, f, g, h, i;
+ if (a.Fk()) {
+ if (a.i > 4) {
+ if (a.wj(b)) {
+ if (a.rk()) {
+ e = BD(b, 49);
+ d = e.Ug();
+ i = d == a.e && (a.Dk() ? e.Og(e.Vg(), a.zk()) == a.Ak() : -1 - e.Vg() == a.aj());
+ if (a.Ek() && !i && !d && !!e.Zg()) {
+ for (f = 0; f < a.i; ++f) {
+ c = a.Gk(BD(a.g[f], 56));
+ if (PD(c) === PD(b)) {
+ return true;
+ }
+ }
+ }
+ return i;
+ } else if (a.Dk() && !a.Ck()) {
+ g = BD(b, 56).ah(zUd(BD(a.ak(), 18)));
+ if (PD(g) === PD(a.e)) {
+ return true;
+ } else if (g == null || !BD(g, 56).kh()) {
+ return false;
+ }
+ }
+ } else {
+ return false;
+ }
+ }
+ h = pud(a, b);
+ if (a.Ek() && !h) {
+ for (f = 0; f < a.i; ++f) {
+ e = a.Gk(BD(a.g[f], 56));
+ if (PD(e) === PD(b)) {
+ return true;
+ }
+ }
+ }
+ return h;
+ } else {
+ return pud(a, b);
+ }
+ }
+ function mHc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ k = new Rkb();
+ m = new Tqb();
+ g = b.b;
+ for (e = 0; e < g.c.length; e++) {
+ j = (tCb(e, g.c.length), BD(g.c[e], 29)).a;
+ k.c = KC(SI, Uhe, 1, 0, 5, 1);
+ for (f = 0; f < j.c.length; f++) {
+ h = a.a[e][f];
+ h.p = f;
+ h.k == (j0b(), i0b) && (k.c[k.c.length] = h, true);
+ Nkb(BD(Ikb(b.b, e), 29).a, f, h);
+ h.j.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Gkb(h.j, BD(BD(Ikb(a.b, e), 15).Xb(f), 14));
+ ecd(BD(vNb(h, (Nyc(), Vxc)), 98)) || yNb(h, Vxc, (dcd(), Zbd));
+ }
+ for (d = new olb(k); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 10);
+ l = kHc(c);
+ m.a.zc(l, m);
+ m.a.zc(c, m);
+ }
+ }
+ for (i = m.a.ec().Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 10);
+ mmb();
+ Okb(h.j, (Occ(), Icc));
+ h.i = true;
+ N_b(h);
+ }
+ }
+ function g6b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ k = BD(vNb(a, (wtc(), Hsc)), 61);
+ d = BD(Ikb(a.j, 0), 11);
+ k == (Ucd(), Acd) ? G0b(d, Rcd) : k == Rcd && G0b(d, Acd);
+ if (BD(vNb(b, (Nyc(), Fxc)), 174).Hc((tdd(), sdd))) {
+ i = Edb(ED(vNb(a, tyc)));
+ j = Edb(ED(vNb(a, uyc)));
+ g = Edb(ED(vNb(a, ryc)));
+ h = BD(vNb(b, Yxc), 21);
+ if (h.Hc((rcd(), ncd))) {
+ c = j;
+ l = a.o.a / 2 - d.n.a;
+ for (f = new olb(d.f); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 70);
+ e.n.b = c;
+ e.n.a = l - e.o.a / 2;
+ c += e.o.b + g;
+ }
+ } else if (h.Hc(pcd)) {
+ for (f = new olb(d.f); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 70);
+ e.n.a = i + a.o.a - d.n.a;
+ }
+ }
+ WGb(new YGb((a$b(), new l$b(b, false, false, new T$b()))), new x$b(null, a, false));
+ }
+ }
+ function Ugc(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ if (b.c.length == 0) {
+ return;
+ }
+ mmb();
+ Mlb(b.c, b.c.length, null);
+ e = new olb(b);
+ d = BD(mlb(e), 145);
+ while (e.a < e.c.c.length) {
+ c = BD(mlb(e), 145);
+ if (ADb(d.e.c, c.e.c) && !(DDb(B6c(d.e).b, c.e.d) || DDb(B6c(c.e).b, d.e.d))) {
+ d = (Gkb(d.k, c.k), Gkb(d.b, c.b), Gkb(d.c, c.c), ye(d.i, c.i), Gkb(d.d, c.d), Gkb(d.j, c.j), f = $wnd.Math.min(d.e.c, c.e.c), g = $wnd.Math.min(d.e.d, c.e.d), h = $wnd.Math.max(d.e.c + d.e.b, c.e.c + c.e.b), i = h - f, j = $wnd.Math.max(d.e.d + d.e.a, c.e.d + c.e.a), k = j - g, G6c(d.e, f, g, i, k), hEb(d.f, c.f), !d.a && (d.a = c.a), Gkb(d.g, c.g), Ekb(d.g, c), d);
+ } else {
+ Xgc(a, d);
+ d = c;
+ }
+ }
+ Xgc(a, d);
+ }
+ function e_b(a, b, c, d) {
+ var e, f, g, h, i, j;
+ h = a.j;
+ if (h == (Ucd(), Scd) && b != (dcd(), bcd) && b != (dcd(), ccd)) {
+ h = W$b(a, c);
+ G0b(a, h);
+ !(!a.q ? (mmb(), mmb(), kmb) : a.q)._b((Nyc(), Uxc)) && h != Scd && (a.n.a != 0 || a.n.b != 0) && yNb(a, Uxc, V$b(a, h));
+ }
+ if (b == (dcd(), _bd)) {
+ j = 0;
+ switch (h.g) {
+ case 1:
+ case 3:
+ f = a.i.o.a;
+ f > 0 && (j = a.n.a / f);
+ break;
+ case 2:
+ case 4:
+ e = a.i.o.b;
+ e > 0 && (j = a.n.b / e);
+ }
+ yNb(a, (wtc(), htc), j);
+ }
+ i = a.o;
+ g = a.a;
+ if (d) {
+ g.a = d.a;
+ g.b = d.b;
+ a.d = true;
+ } else if (b != bcd && b != ccd && h != Scd) {
+ switch (h.g) {
+ case 1:
+ g.a = i.a / 2;
+ break;
+ case 2:
+ g.a = i.a;
+ g.b = i.b / 2;
+ break;
+ case 3:
+ g.a = i.a / 2;
+ g.b = i.b;
+ break;
+ case 4:
+ g.b = i.b / 2;
+ }
+ } else {
+ g.a = i.a / 2;
+ g.b = i.b / 2;
+ }
+ }
+ function vwd(a) {
+ var b, c, d, e, f, g, h, i, j, k;
+ if (a.ej()) {
+ k = a.Vi();
+ i = a.fj();
+ if (k > 0) {
+ b = new Aud(a.Gi());
+ c = k;
+ f = c < 100 ? null : new Ixd(c);
+ Cvd(a, c, b.g);
+ e = c == 1 ? a.Zi(4, qud(b, 0), null, 0, i) : a.Zi(6, b, null, -1, i);
+ if (a.bj()) {
+ for (d = new Fyd(b); d.e != d.i.gc(); ) {
+ f = a.dj(Dyd(d), f);
+ }
+ if (!f) {
+ a.$i(e);
+ } else {
+ f.Ei(e);
+ f.Fi();
+ }
+ } else {
+ if (!f) {
+ a.$i(e);
+ } else {
+ f.Ei(e);
+ f.Fi();
+ }
+ }
+ } else {
+ Cvd(a, a.Vi(), a.Wi());
+ a.$i(a.Zi(6, (mmb(), jmb), null, -1, i));
+ }
+ } else if (a.bj()) {
+ k = a.Vi();
+ if (k > 0) {
+ h = a.Wi();
+ j = k;
+ Cvd(a, k, h);
+ f = j < 100 ? null : new Ixd(j);
+ for (d = 0; d < j; ++d) {
+ g = h[d];
+ f = a.dj(g, f);
+ }
+ !!f && f.Fi();
+ } else {
+ Cvd(a, a.Vi(), a.Wi());
+ }
+ } else {
+ Cvd(a, a.Vi(), a.Wi());
+ }
+ }
+ function LEc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n;
+ for (h = new olb(b); h.a < h.c.c.length; ) {
+ f = BD(mlb(h), 233);
+ f.e = null;
+ f.c = 0;
+ }
+ i = null;
+ for (g = new olb(b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 233);
+ l = f.d[0];
+ if (c && l.k != (j0b(), h0b)) {
+ continue;
+ }
+ for (n = BD(vNb(l, (wtc(), Qsc)), 15).Kc(); n.Ob(); ) {
+ m = BD(n.Pb(), 10);
+ if (!c || m.k == (j0b(), h0b)) {
+ (!f.e && (f.e = new Rkb()), f.e).Fc(a.b[m.c.p][m.p]);
+ ++a.b[m.c.p][m.p].c;
+ }
+ }
+ if (!c && l.k == (j0b(), h0b)) {
+ if (i) {
+ for (k = BD(Qc(a.d, i), 21).Kc(); k.Ob(); ) {
+ j = BD(k.Pb(), 10);
+ for (e = BD(Qc(a.d, l), 21).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 10);
+ YEc(a.b[j.c.p][j.p]).Fc(a.b[d.c.p][d.p]);
+ ++a.b[d.c.p][d.p].c;
+ }
+ }
+ }
+ i = l;
+ }
+ }
+ }
+ function OHc(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ c = 0;
+ k = new Rkb();
+ for (h = new olb(b); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 11);
+ AHc(a.b, a.d[g.p]);
+ k.c = KC(SI, Uhe, 1, 0, 5, 1);
+ switch (g.i.k.g) {
+ case 0:
+ d = BD(vNb(g, (wtc(), gtc)), 10);
+ Hkb(d.j, new xIc(k));
+ break;
+ case 1:
+ Ctb(KAb(JAb(new YAb(null, new Kub(g.i.j, 16)), new zIc(g))), new CIc(k));
+ break;
+ case 3:
+ e = BD(vNb(g, (wtc(), $sc)), 11);
+ Ekb(k, new vgd(e, meb(g.e.c.length + g.g.c.length)));
+ }
+ for (j = new olb(k); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 46);
+ f = aIc(a, BD(i.a, 11));
+ if (f > a.d[g.p]) {
+ c += zHc(a.b, f) * BD(i.b, 19).a;
+ Wjb(a.a, meb(f));
+ }
+ }
+ while (!akb(a.a)) {
+ xHc(a.b, BD(fkb(a.a), 19).a);
+ }
+ }
+ return c;
+ }
+ function eed(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ l = new g7c(BD(hkd(a, (X7c(), R7c)), 8));
+ l.a = $wnd.Math.max(l.a - c.b - c.c, 0);
+ l.b = $wnd.Math.max(l.b - c.d - c.a, 0);
+ e = ED(hkd(a, L7c));
+ (e == null || (uCb(e), e) <= 0) && (e = 1.3);
+ h = new Rkb();
+ for (o2 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); o2.e != o2.i.gc(); ) {
+ n = BD(Dyd(o2), 33);
+ g = new xed(n);
+ h.c[h.c.length] = g;
+ }
+ m = BD(hkd(a, M7c), 311);
+ switch (m.g) {
+ case 3:
+ q = bed(h, b, l.a, l.b, (j = d, uCb(e), j));
+ break;
+ case 1:
+ q = aed(h, b, l.a, l.b, (k = d, uCb(e), k));
+ break;
+ default:
+ q = ced(h, b, l.a, l.b, (i = d, uCb(e), i));
+ }
+ f = new wed(q);
+ p = fed(f, b, c, l.a, l.b, d, (uCb(e), e));
+ Afd(a, p.a, p.b, false, true);
+ }
+ function vkc(a, b) {
+ var c, d, e, f;
+ c = b.b;
+ f = new Tkb(c.j);
+ e = 0;
+ d = c.j;
+ d.c = KC(SI, Uhe, 1, 0, 5, 1);
+ hkc(BD(Si(a.b, (Ucd(), Acd), (Fkc(), Ekc)), 15), c);
+ e = ikc(f, e, new blc(), d);
+ hkc(BD(Si(a.b, Acd, Dkc), 15), c);
+ e = ikc(f, e, new dlc(), d);
+ hkc(BD(Si(a.b, Acd, Ckc), 15), c);
+ hkc(BD(Si(a.b, zcd, Ekc), 15), c);
+ hkc(BD(Si(a.b, zcd, Dkc), 15), c);
+ e = ikc(f, e, new flc(), d);
+ hkc(BD(Si(a.b, zcd, Ckc), 15), c);
+ hkc(BD(Si(a.b, Rcd, Ekc), 15), c);
+ e = ikc(f, e, new hlc(), d);
+ hkc(BD(Si(a.b, Rcd, Dkc), 15), c);
+ e = ikc(f, e, new jlc(), d);
+ hkc(BD(Si(a.b, Rcd, Ckc), 15), c);
+ hkc(BD(Si(a.b, Tcd, Ekc), 15), c);
+ e = ikc(f, e, new Pkc(), d);
+ hkc(BD(Si(a.b, Tcd, Dkc), 15), c);
+ hkc(BD(Si(a.b, Tcd, Ckc), 15), c);
+ }
+ function nbc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ Odd(b, "Layer size calculation", 1);
+ k = Pje;
+ j = Qje;
+ e = false;
+ for (h = new olb(a.b); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 29);
+ i = g.c;
+ i.a = 0;
+ i.b = 0;
+ if (g.a.c.length == 0) {
+ continue;
+ }
+ e = true;
+ for (m = new olb(g.a); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 10);
+ o2 = l.o;
+ n = l.d;
+ i.a = $wnd.Math.max(i.a, o2.a + n.b + n.c);
+ }
+ d = BD(Ikb(g.a, 0), 10);
+ p = d.n.b - d.d.d;
+ d.k == (j0b(), e0b) && (p -= BD(vNb(a, (Nyc(), yyc)), 142).d);
+ f = BD(Ikb(g.a, g.a.c.length - 1), 10);
+ c = f.n.b + f.o.b + f.d.a;
+ f.k == e0b && (c += BD(vNb(a, (Nyc(), yyc)), 142).a);
+ i.b = c - p;
+ k = $wnd.Math.min(k, p);
+ j = $wnd.Math.max(j, c);
+ }
+ if (!e) {
+ k = 0;
+ j = 0;
+ }
+ a.f.b = j - k;
+ a.c.b -= k;
+ Qdd(b);
+ }
+ function h_b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ f = 0;
+ g = 0;
+ for (j = new olb(a.a); j.a < j.c.c.length; ) {
+ h = BD(mlb(j), 10);
+ f = $wnd.Math.max(f, h.d.b);
+ g = $wnd.Math.max(g, h.d.c);
+ }
+ for (i = new olb(a.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ c = BD(vNb(h, (Nyc(), mwc)), 248);
+ switch (c.g) {
+ case 1:
+ o2 = 0;
+ break;
+ case 2:
+ o2 = 1;
+ break;
+ case 5:
+ o2 = 0.5;
+ break;
+ default:
+ d = 0;
+ l = 0;
+ for (n = new olb(h.j); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 11);
+ m.e.c.length == 0 || ++d;
+ m.g.c.length == 0 || ++l;
+ }
+ d + l == 0 ? o2 = 0.5 : o2 = l / (d + l);
+ }
+ q = a.c;
+ k = h.o.a;
+ r = (q.a - k) * o2;
+ o2 > 0.5 ? r -= g * 2 * (o2 - 0.5) : o2 < 0.5 && (r += f * 2 * (0.5 - o2));
+ e = h.d.b;
+ r < e && (r = e);
+ p = h.d.c;
+ r > q.a - p - k && (r = q.a - p - k);
+ h.n.a = b + r;
+ }
+ }
+ function ced(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2, p, q;
+ h = KC(UD, Vje, 25, a.c.length, 15, 1);
+ m = new gub(new Ned());
+ _tb(m, a);
+ j = 0;
+ p = new Rkb();
+ while (m.b.c.length != 0) {
+ g = BD(m.b.c.length == 0 ? null : Ikb(m.b, 0), 157);
+ if (j > 1 && red(g) * qed(g) / 2 > h[0]) {
+ f = 0;
+ while (f < p.c.length - 1 && red(g) * qed(g) / 2 > h[f]) {
+ ++f;
+ }
+ o2 = new Jib(p, 0, f + 1);
+ l = new wed(o2);
+ k = red(g) / qed(g);
+ i = fed(l, b, new p0b(), c, d, e, k);
+ P6c(X6c(l.e), i);
+ zCb(cub(m, l));
+ n = new Jib(p, f + 1, p.c.length);
+ _tb(m, n);
+ p.c = KC(SI, Uhe, 1, 0, 5, 1);
+ j = 0;
+ Dlb(h, h.length, 0);
+ } else {
+ q = m.b.c.length == 0 ? null : Ikb(m.b, 0);
+ q != null && fub(m, 0);
+ j > 0 && (h[j] = h[j - 1]);
+ h[j] += red(g) * qed(g);
+ ++j;
+ p.c[p.c.length] = g;
+ }
+ }
+ return p;
+ }
+ function Wac(a) {
+ var b, c, d, e, f;
+ d = BD(vNb(a, (Nyc(), mxc)), 163);
+ if (d == (Ctc(), ytc)) {
+ for (c = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 17);
+ if (!Yac(b)) {
+ throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."));
+ }
+ }
+ } else if (d == Atc) {
+ for (f = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ if (!Yac(e)) {
+ throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."));
+ }
+ }
+ }
+ }
+ function C9b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ Odd(b, "Label dummy removal", 1);
+ d = Edb(ED(vNb(a, (Nyc(), nyc))));
+ e = Edb(ED(vNb(a, ryc)));
+ j = BD(vNb(a, Lwc), 103);
+ for (i = new olb(a.b); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 29);
+ l = new Bib(h.a, 0);
+ while (l.b < l.d.gc()) {
+ k = (sCb(l.b < l.d.gc()), BD(l.d.Xb(l.c = l.b++), 10));
+ if (k.k == (j0b(), f0b)) {
+ m = BD(vNb(k, (wtc(), $sc)), 17);
+ o2 = Edb(ED(vNb(m, Zwc)));
+ g = PD(vNb(k, Ssc)) === PD((rbd(), obd));
+ c = new g7c(k.n);
+ g && (c.b += o2 + d);
+ f = new f7c(k.o.a, k.o.b - o2 - d);
+ n = BD(vNb(k, ktc), 15);
+ j == (ead(), dad) || j == _9c ? B9b(n, c, e, f, g, j) : A9b(n, c, e, f);
+ Gkb(m.b, n);
+ sbc(k, PD(vNb(a, Swc)) === PD((Aad(), xad)));
+ uib(l);
+ }
+ }
+ }
+ Qdd(b);
+ }
+ function tZb(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v;
+ i = new Rkb();
+ for (f = new olb(b.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ for (h = new olb(e.j); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 11);
+ k = null;
+ for (t = k_b(g.g), u = 0, v = t.length; u < v; ++u) {
+ s = t[u];
+ if (!f_b(s.d.i, c)) {
+ r = oZb(a, b, c, s, s.c, (KAc(), IAc), k);
+ r != k && (i.c[i.c.length] = r, true);
+ r.c && (k = r);
+ }
+ }
+ j = null;
+ for (o2 = k_b(g.e), p = 0, q = o2.length; p < q; ++p) {
+ n = o2[p];
+ if (!f_b(n.c.i, c)) {
+ r = oZb(a, b, c, n, n.d, (KAc(), HAc), j);
+ r != j && (i.c[i.c.length] = r, true);
+ r.c && (j = r);
+ }
+ }
+ }
+ }
+ for (m = new olb(i); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 441);
+ Jkb(b.a, l.a, 0) != -1 || Ekb(b.a, l.a);
+ l.c && (d.c[d.c.length] = l, true);
+ }
+ }
+ function jCc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ Odd(c, "Interactive cycle breaking", 1);
+ l = new Rkb();
+ for (n = new olb(b.a); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 10);
+ m.p = 1;
+ o2 = T_b(m).a;
+ for (k = W_b(m, (KAc(), IAc)).Kc(); k.Ob(); ) {
+ j = BD(k.Pb(), 11);
+ for (f = new olb(j.g); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 17);
+ p = d.d.i;
+ if (p != m) {
+ q = T_b(p).a;
+ q < o2 && (l.c[l.c.length] = d, true);
+ }
+ }
+ }
+ }
+ for (g = new olb(l); g.a < g.c.c.length; ) {
+ d = BD(mlb(g), 17);
+ PZb(d, true);
+ }
+ l.c = KC(SI, Uhe, 1, 0, 5, 1);
+ for (i = new olb(b.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ h.p > 0 && iCc(a, h, l);
+ }
+ for (e = new olb(l); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ PZb(d, true);
+ }
+ l.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Qdd(c);
+ }
+ function _z(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ j = "";
+ if (b.length == 0) {
+ return a.de(Zie, Xie, -1, -1);
+ }
+ k = ufb(b);
+ dfb(k.substr(0, 3), "at ") && (k = k.substr(3));
+ k = k.replace(/\[.*?\]/g, "");
+ g = k.indexOf("(");
+ if (g == -1) {
+ g = k.indexOf("@");
+ if (g == -1) {
+ j = k;
+ k = "";
+ } else {
+ j = ufb(k.substr(g + 1));
+ k = ufb(k.substr(0, g));
+ }
+ } else {
+ c = k.indexOf(")", g);
+ j = k.substr(g + 1, c - (g + 1));
+ k = ufb(k.substr(0, g));
+ }
+ g = hfb(k, wfb(46));
+ g != -1 && (k = k.substr(g + 1));
+ (k.length == 0 || dfb(k, "Anonymous function")) && (k = Xie);
+ h = kfb(j, wfb(58));
+ e = lfb(j, wfb(58), h - 1);
+ i = -1;
+ d = -1;
+ f = Zie;
+ if (h != -1 && e != -1) {
+ f = j.substr(0, e);
+ i = Vz(j.substr(e + 1, h - (e + 1)));
+ d = Vz(j.substr(h + 1));
+ }
+ return a.de(f, k, i, d);
+ }
+ function UC(a, b, c) {
+ var d, e, f, g, h, i;
+ if (b.l == 0 && b.m == 0 && b.h == 0) {
+ throw vbb(new ocb("divide by zero"));
+ }
+ if (a.l == 0 && a.m == 0 && a.h == 0) {
+ c && (QC = TC(0, 0, 0));
+ return TC(0, 0, 0);
+ }
+ if (b.h == Gje && b.m == 0 && b.l == 0) {
+ return VC(a, c);
+ }
+ i = false;
+ if (b.h >> 19 != 0) {
+ b = hD(b);
+ i = !i;
+ }
+ g = _C(b);
+ f = false;
+ e = false;
+ d = false;
+ if (a.h == Gje && a.m == 0 && a.l == 0) {
+ e = true;
+ f = true;
+ if (g == -1) {
+ a = SC((wD(), sD));
+ d = true;
+ i = !i;
+ } else {
+ h = lD(a, g);
+ i && ZC(h);
+ c && (QC = TC(0, 0, 0));
+ return h;
+ }
+ } else if (a.h >> 19 != 0) {
+ f = true;
+ a = hD(a);
+ d = true;
+ i = !i;
+ }
+ if (g != -1) {
+ return WC(a, g, i, f, c);
+ }
+ if (eD(a, b) < 0) {
+ c && (f ? QC = hD(a) : QC = TC(a.l, a.m, a.h));
+ return TC(0, 0, 0);
+ }
+ return XC(d ? a : TC(a.l, a.m, a.h), b, i, f, e, c);
+ }
+ function F2c(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ if (a.e && a.c.c < a.f) {
+ throw vbb(new Zdb("Expected " + a.f + " phases to be configured; only found " + a.c.c));
+ }
+ k = BD(gdb(a.g), 9);
+ n = Pu(a.f);
+ for (f = k, h = 0, j = f.length; h < j; ++h) {
+ d = f[h];
+ l = BD(B2c(a, d.g), 246);
+ l ? Ekb(n, BD(I2c(a, l), 123)) : (n.c[n.c.length] = null, true);
+ }
+ o2 = new j3c();
+ MAb(JAb(NAb(JAb(new YAb(null, new Kub(n, 16)), new O2c()), new Q2c(b)), new S2c()), new U2c(o2));
+ d3c(o2, a.a);
+ c = new Rkb();
+ for (e = k, g = 0, i = e.length; g < i; ++g) {
+ d = e[g];
+ Gkb(c, J2c(a, Dx(BD(B2c(o2, d.g), 20))));
+ m = BD(Ikb(n, d.g), 123);
+ !!m && (c.c[c.c.length] = m, true);
+ }
+ Gkb(c, J2c(a, Dx(BD(B2c(o2, k[k.length - 1].g + 1), 20))));
+ return c;
+ }
+ function qCc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ Odd(c, "Model order cycle breaking", 1);
+ a.a = 0;
+ a.b = 0;
+ n = new Rkb();
+ k = b.a.c.length;
+ for (j = new olb(b.a); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 10);
+ wNb(i, (wtc(), Zsc)) && (k = $wnd.Math.max(k, BD(vNb(i, Zsc), 19).a + 1));
+ }
+ for (p = new olb(b.a); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 10);
+ g = pCc(a, o2, k);
+ for (m = W_b(o2, (KAc(), IAc)).Kc(); m.Ob(); ) {
+ l = BD(m.Pb(), 11);
+ for (f = new olb(l.g); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 17);
+ q = d.d.i;
+ h = pCc(a, q, k);
+ h < g && (n.c[n.c.length] = d, true);
+ }
+ }
+ }
+ for (e = new olb(n); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ PZb(d, true);
+ yNb(b, (wtc(), Asc), (Bcb(), true));
+ }
+ n.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Qdd(c);
+ }
+ function kQc(a, b) {
+ var c, d, e, f, g, h, i;
+ if (a.g > b.f || b.g > a.f) {
+ return;
+ }
+ c = 0;
+ d = 0;
+ for (g = a.w.a.ec().Kc(); g.Ob(); ) {
+ e = BD(g.Pb(), 11);
+ aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, b.g, b.f) && ++c;
+ }
+ for (h = a.r.a.ec().Kc(); h.Ob(); ) {
+ e = BD(h.Pb(), 11);
+ aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, b.g, b.f) && --c;
+ }
+ for (i = b.w.a.ec().Kc(); i.Ob(); ) {
+ e = BD(i.Pb(), 11);
+ aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, a.g, a.f) && ++d;
+ }
+ for (f = b.r.a.ec().Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 11);
+ aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, a.g, a.f) && --d;
+ }
+ if (c < d) {
+ new BQc(a, b, d - c);
+ } else if (d < c) {
+ new BQc(b, a, c - d);
+ } else {
+ new BQc(b, a, 0);
+ new BQc(a, b, 0);
+ }
+ }
+ function JPb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s;
+ j = b.c;
+ e = IOb(a.e);
+ l = Y6c(b7c(R6c(HOb(a.e)), a.d * a.a, a.c * a.b), -0.5);
+ c = e.a - l.a;
+ d = e.b - l.b;
+ g = b.a;
+ c = g.c - c;
+ d = g.d - d;
+ for (i = new olb(j); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 395);
+ m = h.b;
+ n = c + m.a;
+ q = d + m.b;
+ o2 = QD(n / a.a);
+ r = QD(q / a.b);
+ f = h.a;
+ switch (f.g) {
+ case 0:
+ k = (RMb(), OMb);
+ break;
+ case 1:
+ k = (RMb(), NMb);
+ break;
+ case 2:
+ k = (RMb(), PMb);
+ break;
+ default:
+ k = (RMb(), QMb);
+ }
+ if (f.a) {
+ s = QD((q + h.c) / a.b);
+ Ekb(a.f, new uOb(k, meb(r), meb(s)));
+ f == (ROb(), QOb) ? nNb(a, 0, r, o2, s) : nNb(a, o2, r, a.d - 1, s);
+ } else {
+ p = QD((n + h.c) / a.a);
+ Ekb(a.f, new uOb(k, meb(o2), meb(p)));
+ f == (ROb(), OOb) ? nNb(a, o2, 0, p, r) : nNb(a, o2, r, p, a.c - 1);
+ }
+ }
+ }
+ function coc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ m = new Rkb();
+ e = new Rkb();
+ p = null;
+ for (h = b.Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 19);
+ f = new qoc(g.a);
+ e.c[e.c.length] = f;
+ if (p) {
+ f.d = p;
+ p.e = f;
+ }
+ p = f;
+ }
+ t = boc(a);
+ for (k = 0; k < e.c.length; ++k) {
+ n = null;
+ q = poc((tCb(0, e.c.length), BD(e.c[0], 652)));
+ c = null;
+ d = Pje;
+ for (l = 1; l < a.b.c.length; ++l) {
+ r = q ? $wnd.Math.abs(q.b - l) : $wnd.Math.abs(l - n.b) + 1;
+ o2 = n ? $wnd.Math.abs(l - n.b) : r + 1;
+ if (o2 < r) {
+ j = n;
+ i = o2;
+ } else {
+ j = q;
+ i = r;
+ }
+ s = (u = Edb(ED(vNb(a, (Nyc(), Hyc)))), t[l] + $wnd.Math.pow(i, u));
+ if (s < d) {
+ d = s;
+ c = j;
+ c.c = l;
+ }
+ if (!!q && l == q.b) {
+ n = q;
+ q = koc(q);
+ }
+ }
+ if (c) {
+ Ekb(m, meb(c.c));
+ c.a = true;
+ loc(c);
+ }
+ }
+ mmb();
+ Mlb(m.c, m.c.length, null);
+ return m;
+ }
+ function qNd(a) {
+ var b, c, d, e, f, g, h, i, j, k;
+ b = new zNd();
+ c = new zNd();
+ j = dfb(Qve, (e = Dmd(a.b, Rve), !e ? null : GD(AAd((!e.b && (e.b = new sId((jGd(), fGd), x6, e)), e.b), Sve))));
+ for (i = 0; i < a.i; ++i) {
+ h = BD(a.g[i], 170);
+ if (JD(h, 99)) {
+ g = BD(h, 18);
+ (g.Bb & ote) != 0 ? ((g.Bb & oie) == 0 || !j && (f = Dmd(g, Rve), (!f ? null : GD(AAd((!f.b && (f.b = new sId((jGd(), fGd), x6, f)), f.b), eue))) == null)) && wtd(b, g) : (k = zUd(g), !!k && (k.Bb & ote) != 0 || ((g.Bb & oie) == 0 || !j && (d = Dmd(g, Rve), (!d ? null : GD(AAd((!d.b && (d.b = new sId((jGd(), fGd), x6, d)), d.b), eue))) == null)) && wtd(c, g));
+ } else {
+ Q6d();
+ if (BD(h, 66).Oj()) {
+ if (!h.Jj()) {
+ wtd(b, h);
+ wtd(c, h);
+ }
+ }
+ }
+ }
+ vud(b);
+ vud(c);
+ a.a = BD(b.g, 247);
+ BD(c.g, 247);
+ }
+ function LTb(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, p, q, r;
+ j = ITb(b);
+ q = BD(vNb(b, (Nyc(), Iwc)), 314);
+ q != (Rpc(), Ppc) && reb(j, new STb());
+ r = BD(vNb(b, Cwc), 292);
+ reb(j, new UTb(r));
+ p = 0;
+ k = new Rkb();
+ for (f = new xkb(j); f.a != f.b; ) {
+ e = BD(vkb(f), 37);
+ aUb(a.c, e);
+ m = BD(vNb(e, (wtc(), itc)), 15);
+ p += m.gc();
+ d = m.Kc();
+ Ekb(k, new vgd(e, d));
+ }
+ Odd(c, "Recursive hierarchical layout", p);
+ n = BD(BD(Ikb(k, k.c.length - 1), 46).b, 47);
+ while (n.Ob()) {
+ for (i = new olb(k); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 46);
+ m = BD(h.b, 47);
+ g = BD(h.a, 37);
+ while (m.Ob()) {
+ l = BD(m.Pb(), 51);
+ if (JD(l, 507)) {
+ if (!g.e) {
+ l.pf(g, Udd(c, 1));
+ break;
+ } else {
+ break;
+ }
+ } else {
+ l.pf(g, Udd(c, 1));
+ }
+ }
+ }
+ }
+ Qdd(c);
+ }
+ function rid(b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ j = c.length - 1;
+ i = (BCb(j, c.length), c.charCodeAt(j));
+ if (i == 93) {
+ h = hfb(c, wfb(91));
+ if (h >= 0) {
+ f = wid(b, c.substr(1, h - 1));
+ l = c.substr(h + 1, j - (h + 1));
+ return pid(b, l, f);
+ }
+ } else {
+ d = -1;
+ Vcb == null && (Vcb = new RegExp("\\d"));
+ if (Vcb.test(String.fromCharCode(i))) {
+ d = lfb(c, wfb(46), j - 1);
+ if (d >= 0) {
+ e = BD(hid(b, Bid(b, c.substr(1, d - 1)), false), 58);
+ k = 0;
+ try {
+ k = Icb(c.substr(d + 1), Rie, Ohe);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ g = a;
+ throw vbb(new rFd(g));
+ } else
+ throw vbb(a);
+ }
+ if (k < e.gc()) {
+ m = e.Xb(k);
+ JD(m, 72) && (m = BD(m, 72).dd());
+ return BD(m, 56);
+ }
+ }
+ }
+ if (d < 0) {
+ return BD(hid(b, Bid(b, c.substr(1)), false), 56);
+ }
+ }
+ return null;
+ }
+ function e1d(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ if (bLd(b, c) >= 0) {
+ return c;
+ }
+ switch ($1d(q1d(a, c))) {
+ case 2: {
+ if (dfb("", o1d(a, c.Hj()).ne())) {
+ i = b2d(q1d(a, c));
+ h = a2d(q1d(a, c));
+ k = r1d(a, b, i, h);
+ if (k) {
+ return k;
+ }
+ e = f1d(a, b);
+ for (g = 0, l = e.gc(); g < l; ++g) {
+ k = BD(e.Xb(g), 170);
+ if (x1d(c2d(q1d(a, k)), i)) {
+ return k;
+ }
+ }
+ }
+ return null;
+ }
+ case 4: {
+ if (dfb("", o1d(a, c.Hj()).ne())) {
+ for (d = c; d; d = Z1d(q1d(a, d))) {
+ j = b2d(q1d(a, d));
+ h = a2d(q1d(a, d));
+ k = s1d(a, b, j, h);
+ if (k) {
+ return k;
+ }
+ }
+ i = b2d(q1d(a, c));
+ if (dfb(Ewe, i)) {
+ return t1d(a, b);
+ } else {
+ f = g1d(a, b);
+ for (g = 0, l = f.gc(); g < l; ++g) {
+ k = BD(f.Xb(g), 170);
+ if (x1d(c2d(q1d(a, k)), i)) {
+ return k;
+ }
+ }
+ }
+ }
+ return null;
+ }
+ default: {
+ return null;
+ }
+ }
+ }
+ function t2d(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ if (c.gc() == 0) {
+ return false;
+ }
+ h = (Q6d(), BD(b, 66).Oj());
+ f = h ? c : new zud(c.gc());
+ if (T6d(a.e, b)) {
+ if (b.hi()) {
+ for (j = c.Kc(); j.Ob(); ) {
+ i = j.Pb();
+ if (!F2d(a, b, i, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
+ e = R6d(b, i);
+ f.Hc(e) || f.Fc(e);
+ }
+ }
+ } else if (!h) {
+ for (j = c.Kc(); j.Ob(); ) {
+ i = j.Pb();
+ e = R6d(b, i);
+ f.Fc(e);
+ }
+ }
+ } else {
+ if (c.gc() > 1) {
+ throw vbb(new Wdb(Hwe));
+ }
+ k = S6d(a.e.Tg(), b);
+ d = BD(a.g, 119);
+ for (g = 0; g < a.i; ++g) {
+ e = d[g];
+ if (k.rl(e.ak())) {
+ if (c.Hc(h ? e : e.dd())) {
+ return false;
+ } else {
+ for (j = c.Kc(); j.Ob(); ) {
+ i = j.Pb();
+ BD(Gtd(a, g, h ? BD(i, 72) : R6d(b, i)), 72);
+ }
+ return true;
+ }
+ }
+ }
+ if (!h) {
+ e = R6d(b, c.Kc().Pb());
+ f.Fc(e);
+ }
+ }
+ return ytd(a, f);
+ }
+ function qMc(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ k = new Psb();
+ for (h = (j = new $ib(a.c).a.vc().Kc(), new djb(j)); h.a.Ob(); ) {
+ f = (e = BD(h.a.Pb(), 42), BD(e.dd(), 458));
+ f.b == 0 && (Gsb(k, f, k.c.b, k.c), true);
+ }
+ while (k.b != 0) {
+ f = BD(k.b == 0 ? null : (sCb(k.b != 0), Nsb(k, k.a.a)), 458);
+ f.a == null && (f.a = 0);
+ for (d = new olb(f.d); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 654);
+ c.b.a == null ? c.b.a = Edb(f.a) + c.a : b.o == (eMc(), cMc) ? c.b.a = $wnd.Math.min(Edb(c.b.a), Edb(f.a) + c.a) : c.b.a = $wnd.Math.max(Edb(c.b.a), Edb(f.a) + c.a);
+ --c.b.b;
+ c.b.b == 0 && Dsb(k, c.b);
+ }
+ }
+ for (g = (i = new $ib(a.c).a.vc().Kc(), new djb(i)); g.a.Ob(); ) {
+ f = (e = BD(g.a.Pb(), 42), BD(e.dd(), 458));
+ b.i[f.c.p] = f.a;
+ }
+ }
+ function mTc() {
+ mTc = ccb;
+ dTc = new Lsd(Ime);
+ new Msd("DEPTH", meb(0));
+ ZSc = new Msd("FAN", meb(0));
+ XSc = new Msd(Yqe, meb(0));
+ jTc = new Msd("ROOT", (Bcb(), false));
+ _Sc = new Msd("LEFTNEIGHBOR", null);
+ hTc = new Msd("RIGHTNEIGHBOR", null);
+ aTc = new Msd("LEFTSIBLING", null);
+ iTc = new Msd("RIGHTSIBLING", null);
+ YSc = new Msd("DUMMY", false);
+ new Msd("LEVEL", meb(0));
+ gTc = new Msd("REMOVABLE_EDGES", new Psb());
+ kTc = new Msd("XCOOR", meb(0));
+ lTc = new Msd("YCOOR", meb(0));
+ bTc = new Msd("LEVELHEIGHT", 0);
+ $Sc = new Msd("ID", "");
+ eTc = new Msd("POSITION", meb(0));
+ fTc = new Msd("PRELIM", 0);
+ cTc = new Msd("MODIFIER", 0);
+ WSc = new Lsd(Kme);
+ VSc = new Lsd(Lme);
+ }
+ function MNc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2;
+ k = c + b.c.c.a;
+ for (n = new olb(b.j); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 11);
+ e = l7c(OC(GC(m1, 1), nie, 8, 0, [m.i.n, m.n, m.a]));
+ if (b.k == (j0b(), i0b)) {
+ h = BD(vNb(m, (wtc(), $sc)), 11);
+ e.a = l7c(OC(GC(m1, 1), nie, 8, 0, [h.i.n, h.n, h.a])).a;
+ b.n.a = e.a;
+ }
+ g = new f7c(0, e.b);
+ if (m.j == (Ucd(), zcd)) {
+ g.a = k;
+ } else if (m.j == Tcd) {
+ g.a = c;
+ } else {
+ continue;
+ }
+ o2 = $wnd.Math.abs(e.a - g.a);
+ if (o2 <= d && !JNc(b)) {
+ continue;
+ }
+ f = m.g.c.length + m.e.c.length > 1;
+ for (j = new b1b(m.b); llb(j.a) || llb(j.b); ) {
+ i = BD(llb(j.a) ? mlb(j.a) : mlb(j.b), 17);
+ l = i.c == m ? i.d : i.c;
+ $wnd.Math.abs(l7c(OC(GC(m1, 1), nie, 8, 0, [l.i.n, l.n, l.a])).b - g.b) > 1 && GNc(a, i, g, f, m);
+ }
+ }
+ }
+ function XPc(a) {
+ var b, c, d, e, f, g;
+ e = new Bib(a.e, 0);
+ d = new Bib(a.a, 0);
+ if (a.d) {
+ for (c = 0; c < a.b; c++) {
+ sCb(e.b < e.d.gc());
+ e.d.Xb(e.c = e.b++);
+ }
+ } else {
+ for (c = 0; c < a.b - 1; c++) {
+ sCb(e.b < e.d.gc());
+ e.d.Xb(e.c = e.b++);
+ uib(e);
+ }
+ }
+ b = Edb((sCb(e.b < e.d.gc()), ED(e.d.Xb(e.c = e.b++))));
+ while (a.f - b > Oqe) {
+ f = b;
+ g = 0;
+ while ($wnd.Math.abs(b - f) < Oqe) {
+ ++g;
+ b = Edb((sCb(e.b < e.d.gc()), ED(e.d.Xb(e.c = e.b++))));
+ sCb(d.b < d.d.gc());
+ d.d.Xb(d.c = d.b++);
+ }
+ if (g < a.b) {
+ sCb(e.b > 0);
+ e.a.Xb(e.c = --e.b);
+ WPc(a, a.b - g, f, d, e);
+ sCb(e.b < e.d.gc());
+ e.d.Xb(e.c = e.b++);
+ }
+ sCb(d.b > 0);
+ d.a.Xb(d.c = --d.b);
+ }
+ if (!a.d) {
+ for (c = 0; c < a.b - 1; c++) {
+ sCb(e.b < e.d.gc());
+ e.d.Xb(e.c = e.b++);
+ uib(e);
+ }
+ }
+ a.d = true;
+ a.c = true;
+ }
+ function Q8d() {
+ Q8d = ccb;
+ s8d = (r8d(), q8d).b;
+ v8d = BD(qud(ZKd(q8d.b), 0), 34);
+ t8d = BD(qud(ZKd(q8d.b), 1), 34);
+ u8d = BD(qud(ZKd(q8d.b), 2), 34);
+ F8d = q8d.bb;
+ BD(qud(ZKd(q8d.bb), 0), 34);
+ BD(qud(ZKd(q8d.bb), 1), 34);
+ H8d = q8d.fb;
+ I8d = BD(qud(ZKd(q8d.fb), 0), 34);
+ BD(qud(ZKd(q8d.fb), 1), 34);
+ BD(qud(ZKd(q8d.fb), 2), 18);
+ K8d = q8d.qb;
+ N8d = BD(qud(ZKd(q8d.qb), 0), 34);
+ BD(qud(ZKd(q8d.qb), 1), 18);
+ BD(qud(ZKd(q8d.qb), 2), 18);
+ L8d = BD(qud(ZKd(q8d.qb), 3), 34);
+ M8d = BD(qud(ZKd(q8d.qb), 4), 34);
+ P8d = BD(qud(ZKd(q8d.qb), 6), 34);
+ O8d = BD(qud(ZKd(q8d.qb), 5), 18);
+ w8d = q8d.j;
+ x8d = q8d.k;
+ y8d = q8d.q;
+ z8d = q8d.w;
+ A8d = q8d.B;
+ B8d = q8d.A;
+ C8d = q8d.C;
+ D8d = q8d.D;
+ E8d = q8d._;
+ G8d = q8d.cb;
+ J8d = q8d.hb;
+ }
+ function $Dc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n;
+ a.c = 0;
+ a.b = 0;
+ d = 2 * b.c.a.c.length + 1;
+ o:
+ for (l = c.Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 11);
+ h = k.j == (Ucd(), Acd) || k.j == Rcd;
+ n = 0;
+ if (h) {
+ m = BD(vNb(k, (wtc(), gtc)), 10);
+ if (!m) {
+ continue;
+ }
+ n += VDc(a, d, k, m);
+ } else {
+ for (j = new olb(k.g); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 17);
+ e = i.d;
+ if (e.i.c == b.c) {
+ Ekb(a.a, k);
+ continue o;
+ } else {
+ n += a.g[e.p];
+ }
+ }
+ for (g = new olb(k.e); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 17);
+ e = f.c;
+ if (e.i.c == b.c) {
+ Ekb(a.a, k);
+ continue o;
+ } else {
+ n -= a.g[e.p];
+ }
+ }
+ }
+ if (k.e.c.length + k.g.c.length > 0) {
+ a.f[k.p] = n / (k.e.c.length + k.g.c.length);
+ a.c = $wnd.Math.min(a.c, a.f[k.p]);
+ a.b = $wnd.Math.max(a.b, a.f[k.p]);
+ } else
+ h && (a.f[k.p] = n);
+ }
+ }
+ function $9d(a) {
+ a.b = null;
+ a.bb = null;
+ a.fb = null;
+ a.qb = null;
+ a.a = null;
+ a.c = null;
+ a.d = null;
+ a.e = null;
+ a.f = null;
+ a.n = null;
+ a.M = null;
+ a.L = null;
+ a.Q = null;
+ a.R = null;
+ a.K = null;
+ a.db = null;
+ a.eb = null;
+ a.g = null;
+ a.i = null;
+ a.j = null;
+ a.k = null;
+ a.gb = null;
+ a.o = null;
+ a.p = null;
+ a.q = null;
+ a.r = null;
+ a.$ = null;
+ a.ib = null;
+ a.S = null;
+ a.T = null;
+ a.t = null;
+ a.s = null;
+ a.u = null;
+ a.v = null;
+ a.w = null;
+ a.B = null;
+ a.A = null;
+ a.C = null;
+ a.D = null;
+ a.F = null;
+ a.G = null;
+ a.H = null;
+ a.I = null;
+ a.J = null;
+ a.P = null;
+ a.Z = null;
+ a.U = null;
+ a.V = null;
+ a.W = null;
+ a.X = null;
+ a.Y = null;
+ a._ = null;
+ a.ab = null;
+ a.cb = null;
+ a.hb = null;
+ a.nb = null;
+ a.lb = null;
+ a.mb = null;
+ a.ob = null;
+ a.pb = null;
+ a.jb = null;
+ a.kb = null;
+ a.N = false;
+ a.O = false;
+ }
+ function l5b(a, b, c) {
+ var d, e, f, g;
+ Odd(c, "Graph transformation (" + a.a + ")", 1);
+ g = Mu(b.a);
+ for (f = new olb(b.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ Gkb(g, e.a);
+ }
+ d = BD(vNb(b, (Nyc(), Mwc)), 419);
+ if (d == (xqc(), vqc)) {
+ switch (BD(vNb(b, Lwc), 103).g) {
+ case 2:
+ _4b(b, g);
+ break;
+ case 3:
+ p5b(b, g);
+ break;
+ case 4:
+ if (a.a == (y5b(), x5b)) {
+ p5b(b, g);
+ a5b(b, g);
+ } else {
+ a5b(b, g);
+ p5b(b, g);
+ }
+ }
+ } else {
+ if (a.a == (y5b(), x5b)) {
+ switch (BD(vNb(b, Lwc), 103).g) {
+ case 2:
+ _4b(b, g);
+ a5b(b, g);
+ break;
+ case 3:
+ p5b(b, g);
+ _4b(b, g);
+ break;
+ case 4:
+ _4b(b, g);
+ p5b(b, g);
+ }
+ } else {
+ switch (BD(vNb(b, Lwc), 103).g) {
+ case 2:
+ _4b(b, g);
+ a5b(b, g);
+ break;
+ case 3:
+ _4b(b, g);
+ p5b(b, g);
+ break;
+ case 4:
+ p5b(b, g);
+ _4b(b, g);
+ }
+ }
+ }
+ Qdd(c);
+ }
+ function j6b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ j = new zsb();
+ k = new zsb();
+ o2 = new zsb();
+ p = new zsb();
+ i = Edb(ED(vNb(b, (Nyc(), vyc))));
+ f = Edb(ED(vNb(b, lyc)));
+ for (h = new olb(c); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 10);
+ l = BD(vNb(g, (wtc(), Hsc)), 61);
+ if (l == (Ucd(), Acd)) {
+ k.a.zc(g, k);
+ for (e = new Sr(ur(R_b(g).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 17);
+ Qqb(j, d.c.i);
+ }
+ } else if (l == Rcd) {
+ p.a.zc(g, p);
+ for (e = new Sr(ur(R_b(g).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 17);
+ Qqb(o2, d.c.i);
+ }
+ }
+ }
+ if (j.a.gc() != 0) {
+ m = new tPc(2, f);
+ n = sPc(m, b, j, k, -i - b.c.b);
+ if (n > 0) {
+ a.a = i + (n - 1) * f;
+ b.c.b += a.a;
+ b.f.b += a.a;
+ }
+ }
+ if (o2.a.gc() != 0) {
+ m = new tPc(1, f);
+ n = sPc(m, b, o2, p, b.f.b + i - b.c.b);
+ n > 0 && (b.f.b += i + (n - 1) * f);
+ }
+ }
+ function kKd(a, b) {
+ var c, d, e, f;
+ f = a.F;
+ if (b == null) {
+ a.F = null;
+ $Jd(a, null);
+ } else {
+ a.F = (uCb(b), b);
+ d = hfb(b, wfb(60));
+ if (d != -1) {
+ e = b.substr(0, d);
+ hfb(b, wfb(46)) == -1 && !dfb(e, Khe) && !dfb(e, Eve) && !dfb(e, Fve) && !dfb(e, Gve) && !dfb(e, Hve) && !dfb(e, Ive) && !dfb(e, Jve) && !dfb(e, Kve) && (e = Lve);
+ c = kfb(b, wfb(62));
+ c != -1 && (e += "" + b.substr(c + 1));
+ $Jd(a, e);
+ } else {
+ e = b;
+ if (hfb(b, wfb(46)) == -1) {
+ d = hfb(b, wfb(91));
+ d != -1 && (e = b.substr(0, d));
+ if (!dfb(e, Khe) && !dfb(e, Eve) && !dfb(e, Fve) && !dfb(e, Gve) && !dfb(e, Hve) && !dfb(e, Ive) && !dfb(e, Jve) && !dfb(e, Kve)) {
+ e = Lve;
+ d != -1 && (e += "" + b.substr(d));
+ } else {
+ e = b;
+ }
+ }
+ $Jd(a, e);
+ e == b && (a.F = a.D);
+ }
+ }
+ (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 5, f, b));
+ }
+ function AMc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ p = b.b.c.length;
+ if (p < 3) {
+ return;
+ }
+ n = KC(WD, oje, 25, p, 15, 1);
+ l = 0;
+ for (k = new olb(b.b); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 29);
+ n[l++] = j.a.c.length;
+ }
+ m = new Bib(b.b, 2);
+ for (d = 1; d < p - 1; d++) {
+ c = (sCb(m.b < m.d.gc()), BD(m.d.Xb(m.c = m.b++), 29));
+ o2 = new olb(c.a);
+ f = 0;
+ h = 0;
+ for (i = 0; i < n[d + 1]; i++) {
+ t = BD(mlb(o2), 10);
+ if (i == n[d + 1] - 1 || zMc(a, t, d + 1, d)) {
+ g = n[d] - 1;
+ zMc(a, t, d + 1, d) && (g = a.c.e[BD(BD(BD(Ikb(a.c.b, t.p), 15).Xb(0), 46).a, 10).p]);
+ while (h <= i) {
+ s = BD(Ikb(c.a, h), 10);
+ if (!zMc(a, s, d + 1, d)) {
+ for (r = BD(Ikb(a.c.b, s.p), 15).Kc(); r.Ob(); ) {
+ q = BD(r.Pb(), 46);
+ e = a.c.e[BD(q.a, 10).p];
+ (e < f || e > g) && Qqb(a.b, BD(q.b, 17));
+ }
+ }
+ ++h;
+ }
+ f = g;
+ }
+ }
+ }
+ }
+ function o5c(b, c) {
+ var d;
+ if (c == null || dfb(c, Xhe)) {
+ return null;
+ }
+ if (c.length == 0 && b.k != (_5c(), W5c)) {
+ return null;
+ }
+ switch (b.k.g) {
+ case 1:
+ return efb(c, kse) ? (Bcb(), Acb) : efb(c, lse) ? (Bcb(), zcb) : null;
+ case 2:
+ try {
+ return meb(Icb(c, Rie, Ohe));
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ return null;
+ } else
+ throw vbb(a);
+ }
+ case 4:
+ try {
+ return Hcb(c);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ return null;
+ } else
+ throw vbb(a);
+ }
+ case 3:
+ return c;
+ case 5:
+ j5c(b);
+ return m5c(b, c);
+ case 6:
+ j5c(b);
+ return n5c(b, b.a, c);
+ case 7:
+ try {
+ d = l5c(b);
+ d.Jf(c);
+ return d;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 32)) {
+ return null;
+ } else
+ throw vbb(a);
+ }
+ default:
+ throw vbb(new Zdb("Invalid type set for this layout option."));
+ }
+ }
+ function JWb(a) {
+ AWb();
+ var b, c, d, e, f, g, h;
+ h = new CWb();
+ for (c = new olb(a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 140);
+ (!h.b || b.c >= h.b.c) && (h.b = b);
+ if (!h.c || b.c <= h.c.c) {
+ h.d = h.c;
+ h.c = b;
+ }
+ (!h.e || b.d >= h.e.d) && (h.e = b);
+ (!h.f || b.d <= h.f.d) && (h.f = b);
+ }
+ d = new NWb((lWb(), hWb));
+ rXb(a, yWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [d])));
+ g = new NWb(kWb);
+ rXb(a, xWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [g])));
+ e = new NWb(iWb);
+ rXb(a, wWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [e])));
+ f = new NWb(jWb);
+ rXb(a, vWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [f])));
+ DWb(d.c, hWb);
+ DWb(e.c, iWb);
+ DWb(f.c, jWb);
+ DWb(g.c, kWb);
+ h.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Gkb(h.a, d.c);
+ Gkb(h.a, Su(e.c));
+ Gkb(h.a, f.c);
+ Gkb(h.a, Su(g.c));
+ return h;
+ }
+ function jxd(a) {
+ var b;
+ switch (a.d) {
+ case 1: {
+ if (a.hj()) {
+ return a.o != -2;
+ }
+ break;
+ }
+ case 2: {
+ if (a.hj()) {
+ return a.o == -2;
+ }
+ break;
+ }
+ case 3:
+ case 5:
+ case 4:
+ case 6:
+ case 7: {
+ return a.o > -2;
+ }
+ default: {
+ return false;
+ }
+ }
+ b = a.gj();
+ switch (a.p) {
+ case 0:
+ return b != null && Ccb(DD(b)) != Kbb(a.k, 0);
+ case 1:
+ return b != null && BD(b, 217).a != Tbb(a.k) << 24 >> 24;
+ case 2:
+ return b != null && BD(b, 172).a != (Tbb(a.k) & aje);
+ case 6:
+ return b != null && Kbb(BD(b, 162).a, a.k);
+ case 5:
+ return b != null && BD(b, 19).a != Tbb(a.k);
+ case 7:
+ return b != null && BD(b, 184).a != Tbb(a.k) << 16 >> 16;
+ case 3:
+ return b != null && Edb(ED(b)) != a.j;
+ case 4:
+ return b != null && BD(b, 155).a != a.j;
+ default:
+ return b == null ? a.n != null : !pb(b, a.n);
+ }
+ }
+ function nOd(a, b, c) {
+ var d, e, f, g;
+ if (a.Fk() && a.Ek()) {
+ g = oOd(a, BD(c, 56));
+ if (PD(g) !== PD(c)) {
+ a.Oi(b);
+ a.Ui(b, pOd(a, b, g));
+ if (a.rk()) {
+ f = (e = BD(c, 49), a.Dk() ? a.Bk() ? e.ih(a.b, zUd(BD(XKd(wjd(a.b), a.aj()), 18)).n, BD(XKd(wjd(a.b), a.aj()).Yj(), 26).Bj(), null) : e.ih(a.b, bLd(e.Tg(), zUd(BD(XKd(wjd(a.b), a.aj()), 18))), null, null) : e.ih(a.b, -1 - a.aj(), null, null));
+ !BD(g, 49).eh() && (f = (d = BD(g, 49), a.Dk() ? a.Bk() ? d.gh(a.b, zUd(BD(XKd(wjd(a.b), a.aj()), 18)).n, BD(XKd(wjd(a.b), a.aj()).Yj(), 26).Bj(), f) : d.gh(a.b, bLd(d.Tg(), zUd(BD(XKd(wjd(a.b), a.aj()), 18))), null, f) : d.gh(a.b, -1 - a.aj(), null, f)));
+ !!f && f.Fi();
+ }
+ oid(a.b) && a.$i(a.Zi(9, c, g, b, false));
+ return g;
+ }
+ }
+ return c;
+ }
+ function Noc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ k = Edb(ED(vNb(a, (Nyc(), oyc))));
+ d = Edb(ED(vNb(a, Cyc)));
+ m = new _fd();
+ yNb(m, oyc, k + d);
+ j = b;
+ r = j.d;
+ p = j.c.i;
+ s = j.d.i;
+ q = G1b(p.c);
+ t = G1b(s.c);
+ e = new Rkb();
+ for (l = q; l <= t; l++) {
+ h = new b0b(a);
+ __b(h, (j0b(), g0b));
+ yNb(h, (wtc(), $sc), j);
+ yNb(h, Vxc, (dcd(), $bd));
+ yNb(h, qyc, m);
+ n = BD(Ikb(a.b, l), 29);
+ l == q ? Z_b(h, n.a.c.length - c, n) : $_b(h, n);
+ u = Edb(ED(vNb(j, Zwc)));
+ if (u < 0) {
+ u = 0;
+ yNb(j, Zwc, u);
+ }
+ h.o.b = u;
+ o2 = $wnd.Math.floor(u / 2);
+ g = new H0b();
+ G0b(g, (Ucd(), Tcd));
+ F0b(g, h);
+ g.n.b = o2;
+ i = new H0b();
+ G0b(i, zcd);
+ F0b(i, h);
+ i.n.b = o2;
+ RZb(j, g);
+ f = new UZb();
+ tNb(f, j);
+ yNb(f, jxc, null);
+ QZb(f, i);
+ RZb(f, r);
+ Ooc(h, j, f);
+ e.c[e.c.length] = f;
+ j = f;
+ }
+ return e;
+ }
+ function sbc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ i = BD(Y_b(a, (Ucd(), Tcd)).Kc().Pb(), 11).e;
+ n = BD(Y_b(a, zcd).Kc().Pb(), 11).g;
+ h = i.c.length;
+ t = A0b(BD(Ikb(a.j, 0), 11));
+ while (h-- > 0) {
+ p = (tCb(0, i.c.length), BD(i.c[0], 17));
+ e = (tCb(0, n.c.length), BD(n.c[0], 17));
+ s = e.d.e;
+ f = Jkb(s, e, 0);
+ SZb(p, e.d, f);
+ QZb(e, null);
+ RZb(e, null);
+ o2 = p.a;
+ b && Dsb(o2, new g7c(t));
+ for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 8);
+ Dsb(o2, new g7c(c));
+ }
+ r = p.b;
+ for (m = new olb(e.b); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 70);
+ r.c[r.c.length] = l;
+ }
+ q = BD(vNb(p, (Nyc(), jxc)), 74);
+ g = BD(vNb(e, jxc), 74);
+ if (g) {
+ if (!q) {
+ q = new s7c();
+ yNb(p, jxc, q);
+ }
+ for (k = Jsb(g, 0); k.b != k.d.c; ) {
+ j = BD(Xsb(k), 8);
+ Dsb(q, new g7c(j));
+ }
+ }
+ }
+ }
+ function EJb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n;
+ c = BD(Mpb(a.b, b), 124);
+ i = BD(BD(Qc(a.r, b), 21), 84);
+ if (i.dc()) {
+ c.n.b = 0;
+ c.n.c = 0;
+ return;
+ }
+ j = a.u.Hc((rcd(), ncd));
+ g = 0;
+ h = i.Kc();
+ k = null;
+ l = 0;
+ m = 0;
+ while (h.Ob()) {
+ d = BD(h.Pb(), 111);
+ e = Edb(ED(d.b.We((CKb(), BKb))));
+ f = d.b.rf().a;
+ a.A.Hc((tdd(), sdd)) && KJb(a, b);
+ if (!k) {
+ !!a.C && a.C.b > 0 && (g = $wnd.Math.max(g, IJb(a.C.b + d.d.b, e)));
+ } else {
+ n = m + k.d.c + a.w + d.d.b;
+ g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(l - e) <= ple || l == e || isNaN(l) && isNaN(e) ? 0 : n / (e - l)));
+ }
+ k = d;
+ l = e;
+ m = f;
+ }
+ if (!!a.C && a.C.c > 0) {
+ n = m + a.C.c;
+ j && (n += k.d.c);
+ g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(l - 1) <= ple || l == 1 || isNaN(l) && isNaN(1) ? 0 : n / (1 - l)));
+ }
+ c.n.b = 0;
+ c.a.a = g;
+ }
+ function NKb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n;
+ c = BD(Mpb(a.b, b), 124);
+ i = BD(BD(Qc(a.r, b), 21), 84);
+ if (i.dc()) {
+ c.n.d = 0;
+ c.n.a = 0;
+ return;
+ }
+ j = a.u.Hc((rcd(), ncd));
+ g = 0;
+ a.A.Hc((tdd(), sdd)) && SKb(a, b);
+ h = i.Kc();
+ k = null;
+ m = 0;
+ l = 0;
+ while (h.Ob()) {
+ d = BD(h.Pb(), 111);
+ f = Edb(ED(d.b.We((CKb(), BKb))));
+ e = d.b.rf().b;
+ if (!k) {
+ !!a.C && a.C.d > 0 && (g = $wnd.Math.max(g, IJb(a.C.d + d.d.d, f)));
+ } else {
+ n = l + k.d.a + a.w + d.d.d;
+ g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(m - f) <= ple || m == f || isNaN(m) && isNaN(f) ? 0 : n / (f - m)));
+ }
+ k = d;
+ m = f;
+ l = e;
+ }
+ if (!!a.C && a.C.a > 0) {
+ n = l + a.C.a;
+ j && (n += k.d.a);
+ g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(m - 1) <= ple || m == 1 || isNaN(m) && isNaN(1) ? 0 : n / (1 - m)));
+ }
+ c.n.d = 0;
+ c.a.b = g;
+ }
+ function _Ec(a, b, c) {
+ var d, e, f, g, h, i;
+ this.g = a;
+ h = b.d.length;
+ i = c.d.length;
+ this.d = KC(OQ, kne, 10, h + i, 0, 1);
+ for (g = 0; g < h; g++) {
+ this.d[g] = b.d[g];
+ }
+ for (f = 0; f < i; f++) {
+ this.d[h + f] = c.d[f];
+ }
+ if (b.e) {
+ this.e = Ru(b.e);
+ this.e.Mc(c);
+ if (c.e) {
+ for (e = c.e.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 233);
+ if (d == b) {
+ continue;
+ } else
+ this.e.Hc(d) ? --d.c : this.e.Fc(d);
+ }
+ }
+ } else if (c.e) {
+ this.e = Ru(c.e);
+ this.e.Mc(b);
+ }
+ this.f = b.f + c.f;
+ this.a = b.a + c.a;
+ this.a > 0 ? ZEc(this, this.f / this.a) : REc(b.g, b.d[0]).a != null && REc(c.g, c.d[0]).a != null ? ZEc(this, (Edb(REc(b.g, b.d[0]).a) + Edb(REc(c.g, c.d[0]).a)) / 2) : REc(b.g, b.d[0]).a != null ? ZEc(this, REc(b.g, b.d[0]).a) : REc(c.g, c.d[0]).a != null && ZEc(this, REc(c.g, c.d[0]).a);
+ }
+ function BUb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ a.a = new dVb(oqb(t1));
+ for (d = new olb(b.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 841);
+ h = new gVb(OC(GC(IP, 1), Uhe, 81, 0, []));
+ Ekb(a.a.a, h);
+ for (j = new olb(c.d); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 110);
+ k = new GUb(a, i);
+ AUb(k, BD(vNb(c.c, (wtc(), Esc)), 21));
+ if (!Mhb(a.g, c)) {
+ Rhb(a.g, c, new f7c(i.c, i.d));
+ Rhb(a.f, c, k);
+ }
+ Ekb(a.a.b, k);
+ eVb(h, k);
+ }
+ for (g = new olb(c.b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 594);
+ k = new GUb(a, f.kf());
+ Rhb(a.b, f, new vgd(h, k));
+ AUb(k, BD(vNb(c.c, (wtc(), Esc)), 21));
+ if (f.hf()) {
+ l = new HUb(a, f.hf(), 1);
+ AUb(l, BD(vNb(c.c, Esc), 21));
+ e = new gVb(OC(GC(IP, 1), Uhe, 81, 0, []));
+ eVb(e, l);
+ Rc(a.c, f.gf(), new vgd(h, l));
+ }
+ }
+ }
+ return a.a;
+ }
+ function oBc(a) {
+ var b;
+ this.a = a;
+ b = (j0b(), OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b])).length;
+ this.b = IC(Q3, [nie, zqe], [593, 146], 0, [b, b], 2);
+ this.c = IC(Q3, [nie, zqe], [593, 146], 0, [b, b], 2);
+ nBc(this, h0b, (Nyc(), vyc), wyc);
+ lBc(this, h0b, g0b, oyc, pyc);
+ kBc(this, h0b, i0b, oyc);
+ kBc(this, h0b, e0b, oyc);
+ lBc(this, h0b, f0b, vyc, wyc);
+ nBc(this, g0b, lyc, myc);
+ kBc(this, g0b, i0b, lyc);
+ kBc(this, g0b, e0b, lyc);
+ lBc(this, g0b, f0b, oyc, pyc);
+ mBc(this, i0b, lyc);
+ kBc(this, i0b, e0b, lyc);
+ kBc(this, i0b, f0b, syc);
+ mBc(this, e0b, zyc);
+ lBc(this, e0b, f0b, uyc, tyc);
+ nBc(this, f0b, lyc, lyc);
+ nBc(this, d0b, lyc, myc);
+ lBc(this, d0b, h0b, oyc, pyc);
+ lBc(this, d0b, f0b, oyc, pyc);
+ lBc(this, d0b, g0b, oyc, pyc);
+ }
+ function _2d(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ g = c.ak();
+ if (JD(g, 99) && (BD(g, 18).Bb & Tje) != 0) {
+ m = BD(c.dd(), 49);
+ p = xid(a.e, m);
+ if (p != m) {
+ k = R6d(g, p);
+ mud(a, b, t3d(a, b, k));
+ l = null;
+ if (oid(a.e)) {
+ d = e1d((O6d(), M6d), a.e.Tg(), g);
+ if (d != XKd(a.e.Tg(), a.c)) {
+ q = S6d(a.e.Tg(), g);
+ h = 0;
+ f = BD(a.g, 119);
+ for (i = 0; i < b; ++i) {
+ e = f[i];
+ q.rl(e.ak()) && ++h;
+ }
+ l = new O7d(a.e, 9, d, m, p, h, false);
+ l.Ei(new pSd(a.e, 9, a.c, c, k, b, false));
+ }
+ }
+ o2 = BD(g, 18);
+ n = zUd(o2);
+ if (n) {
+ l = m.ih(a.e, bLd(m.Tg(), n), null, l);
+ l = BD(p, 49).gh(a.e, bLd(p.Tg(), n), null, l);
+ } else if ((o2.Bb & ote) != 0) {
+ j = -1 - bLd(a.e.Tg(), o2);
+ l = m.ih(a.e, j, null, null);
+ !BD(p, 49).eh() && (l = BD(p, 49).gh(a.e, j, null, l));
+ }
+ !!l && l.Fi();
+ return k;
+ }
+ }
+ return c;
+ }
+ function yUb(a) {
+ var b, c, d, e, f, g, h, i;
+ for (f = new olb(a.a.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 81);
+ e.b.c = e.g.c;
+ e.b.d = e.g.d;
+ }
+ i = new f7c(Pje, Pje);
+ b = new f7c(Qje, Qje);
+ for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 81);
+ i.a = $wnd.Math.min(i.a, c.g.c);
+ i.b = $wnd.Math.min(i.b, c.g.d);
+ b.a = $wnd.Math.max(b.a, c.g.c + c.g.b);
+ b.b = $wnd.Math.max(b.b, c.g.d + c.g.a);
+ }
+ for (h = Uc(a.c).a.nc(); h.Ob(); ) {
+ g = BD(h.Pb(), 46);
+ c = BD(g.b, 81);
+ i.a = $wnd.Math.min(i.a, c.g.c);
+ i.b = $wnd.Math.min(i.b, c.g.d);
+ b.a = $wnd.Math.max(b.a, c.g.c + c.g.b);
+ b.b = $wnd.Math.max(b.b, c.g.d + c.g.a);
+ }
+ a.d = V6c(new f7c(i.a, i.b));
+ a.e = c7c(new f7c(b.a, b.b), i);
+ a.a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ function svd(a) {
+ var b, c, d;
+ l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new Z9c()]));
+ c = new xB(a);
+ for (d = 0; d < c.a.length; ++d) {
+ b = tB(c, d).je().a;
+ dfb(b, "layered") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new kwc()])) : dfb(b, "force") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new TRb()])) : dfb(b, "stress") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new PSb()])) : dfb(b, "mrtree") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new sTc()])) : dfb(b, "radial") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new IWc()])) : dfb(b, "disco") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new gFb(), new oPb()])) : dfb(b, "sporeOverlap") || dfb(b, "sporeCompaction") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new B0c()])) : dfb(b, "rectpacking") && l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new PYc()]));
+ }
+ }
+ function j_b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ m = new g7c(a.o);
+ r = b.a / m.a;
+ h = b.b / m.b;
+ p = b.a - m.a;
+ f = b.b - m.b;
+ if (c) {
+ e = PD(vNb(a, (Nyc(), Vxc))) === PD((dcd(), $bd));
+ for (o2 = new olb(a.j); o2.a < o2.c.c.length; ) {
+ n = BD(mlb(o2), 11);
+ switch (n.j.g) {
+ case 1:
+ e || (n.n.a *= r);
+ break;
+ case 2:
+ n.n.a += p;
+ e || (n.n.b *= h);
+ break;
+ case 3:
+ e || (n.n.a *= r);
+ n.n.b += f;
+ break;
+ case 4:
+ e || (n.n.b *= h);
+ }
+ }
+ }
+ for (j = new olb(a.b); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 70);
+ k = i.n.a + i.o.a / 2;
+ l = i.n.b + i.o.b / 2;
+ q = k / m.a;
+ g = l / m.b;
+ if (q + g >= 1) {
+ if (q - g > 0 && l >= 0) {
+ i.n.a += p;
+ i.n.b += f * g;
+ } else if (q - g < 0 && k >= 0) {
+ i.n.a += p * q;
+ i.n.b += f;
+ }
+ }
+ }
+ a.o.a = b.a;
+ a.o.b = b.b;
+ yNb(a, (Nyc(), Fxc), (tdd(), d = BD(gdb(I1), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0)));
+ }
+ function iFd(a, b, c, d, e, f) {
+ var g;
+ if (!(b == null || !OEd(b, zEd, AEd))) {
+ throw vbb(new Wdb("invalid scheme: " + b));
+ }
+ if (!a && !(c != null && hfb(c, wfb(35)) == -1 && c.length > 0 && (BCb(0, c.length), c.charCodeAt(0) != 47))) {
+ throw vbb(new Wdb("invalid opaquePart: " + c));
+ }
+ if (a && !(b != null && hnb(GEd, b.toLowerCase())) && !(c == null || !OEd(c, CEd, DEd))) {
+ throw vbb(new Wdb(mve + c));
+ }
+ if (a && b != null && hnb(GEd, b.toLowerCase()) && !eFd(c)) {
+ throw vbb(new Wdb(mve + c));
+ }
+ if (!fFd(d)) {
+ throw vbb(new Wdb("invalid device: " + d));
+ }
+ if (!hFd(e)) {
+ g = e == null ? "invalid segments: null" : "invalid segment: " + VEd(e);
+ throw vbb(new Wdb(g));
+ }
+ if (!(f == null || hfb(f, wfb(35)) == -1)) {
+ throw vbb(new Wdb("invalid query: " + f));
+ }
+ }
+ function nVc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ Odd(b, "Calculate Graph Size", 1);
+ b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
+ h = dme;
+ i = dme;
+ f = ere;
+ g = ere;
+ for (l = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); l.e != l.i.gc(); ) {
+ j = BD(Dyd(l), 33);
+ o2 = j.i;
+ p = j.j;
+ r = j.g;
+ d = j.f;
+ e = BD(hkd(j, (Y9c(), S8c)), 142);
+ h = $wnd.Math.min(h, o2 - e.b);
+ i = $wnd.Math.min(i, p - e.d);
+ f = $wnd.Math.max(f, o2 + r + e.c);
+ g = $wnd.Math.max(g, p + d + e.a);
+ }
+ n = BD(hkd(a, (Y9c(), f9c)), 116);
+ m = new f7c(h - n.b, i - n.d);
+ for (k = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); k.e != k.i.gc(); ) {
+ j = BD(Dyd(k), 33);
+ dld(j, j.i - m.a);
+ eld(j, j.j - m.b);
+ }
+ q = f - h + (n.b + n.c);
+ c = g - i + (n.d + n.a);
+ cld(a, q);
+ ald(a, c);
+ b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
+ }
+ function rGb(a) {
+ var b, c, d, e, f, g, h, i, j, k;
+ d = new Rkb();
+ for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
+ e = BD(mlb(g), 121);
+ k = 0;
+ e.k.c = KC(SI, Uhe, 1, 0, 5, 1);
+ for (c = new olb(LFb(e)); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 213);
+ if (b.f) {
+ Ekb(e.k, b);
+ ++k;
+ }
+ }
+ k == 1 && (d.c[d.c.length] = e, true);
+ }
+ for (f = new olb(d); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 121);
+ while (e.k.c.length == 1) {
+ j = BD(mlb(new olb(e.k)), 213);
+ a.b[j.c] = j.g;
+ h = j.d;
+ i = j.e;
+ for (c = new olb(LFb(e)); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 213);
+ pb(b, j) || (b.f ? h == b.d || i == b.e ? a.b[j.c] -= a.b[b.c] - b.g : a.b[j.c] += a.b[b.c] - b.g : e == h ? b.d == e ? a.b[j.c] += b.g : a.b[j.c] -= b.g : b.d == e ? a.b[j.c] -= b.g : a.b[j.c] += b.g);
+ }
+ Lkb(h.k, j);
+ Lkb(i.k, j);
+ h == e ? e = j.e : e = j.d;
+ }
+ }
+ }
+ function k4c(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ if (b == null || b.length == 0) {
+ return null;
+ }
+ f = BD(Phb(a.f, b), 23);
+ if (!f) {
+ for (e = (n = new $ib(a.d).a.vc().Kc(), new djb(n)); e.a.Ob(); ) {
+ c = (g = BD(e.a.Pb(), 42), BD(g.dd(), 23));
+ h = c.f;
+ o2 = b.length;
+ if (dfb(h.substr(h.length - o2, o2), b) && (b.length == h.length || bfb(h, h.length - b.length - 1) == 46)) {
+ if (f) {
+ return null;
+ }
+ f = c;
+ }
+ }
+ if (!f) {
+ for (d = (m = new $ib(a.d).a.vc().Kc(), new djb(m)); d.a.Ob(); ) {
+ c = (g = BD(d.a.Pb(), 42), BD(g.dd(), 23));
+ l = c.g;
+ if (l != null) {
+ for (i = l, j = 0, k = i.length; j < k; ++j) {
+ h = i[j];
+ o2 = b.length;
+ if (dfb(h.substr(h.length - o2, o2), b) && (b.length == h.length || bfb(h, h.length - b.length - 1) == 46)) {
+ if (f) {
+ return null;
+ }
+ f = c;
+ }
+ }
+ }
+ }
+ }
+ !!f && Shb(a.f, b, f);
+ }
+ return f;
+ }
+ function sA(a, b) {
+ var c, d, e, f, g;
+ c = new Vfb();
+ g = false;
+ for (f = 0; f < b.length; f++) {
+ d = (BCb(f, b.length), b.charCodeAt(f));
+ if (d == 32) {
+ gA(a, c, 0);
+ c.a += " ";
+ gA(a, c, 0);
+ while (f + 1 < b.length && (BCb(f + 1, b.length), b.charCodeAt(f + 1) == 32)) {
+ ++f;
+ }
+ continue;
+ }
+ if (g) {
+ if (d == 39) {
+ if (f + 1 < b.length && (BCb(f + 1, b.length), b.charCodeAt(f + 1) == 39)) {
+ c.a += String.fromCharCode(d);
+ ++f;
+ } else {
+ g = false;
+ }
+ } else {
+ c.a += String.fromCharCode(d);
+ }
+ continue;
+ }
+ if (hfb("GyMLdkHmsSEcDahKzZv", wfb(d)) > 0) {
+ gA(a, c, 0);
+ c.a += String.fromCharCode(d);
+ e = lA(b, f);
+ gA(a, c, e);
+ f += e - 1;
+ continue;
+ }
+ if (d == 39) {
+ if (f + 1 < b.length && (BCb(f + 1, b.length), b.charCodeAt(f + 1) == 39)) {
+ c.a += "'";
+ ++f;
+ } else {
+ g = true;
+ }
+ } else {
+ c.a += String.fromCharCode(d);
+ }
+ }
+ gA(a, c, 0);
+ mA(a);
+ }
+ function wDc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ Odd(c, "Network simplex layering", 1);
+ a.b = b;
+ r = BD(vNb(b, (Nyc(), Ayc)), 19).a * 4;
+ q = a.b.a;
+ if (q.c.length < 1) {
+ Qdd(c);
+ return;
+ }
+ f = sDc(a, q);
+ p = null;
+ for (e = Jsb(f, 0); e.b != e.d.c; ) {
+ d = BD(Xsb(e), 15);
+ h = r * QD($wnd.Math.sqrt(d.gc()));
+ g = vDc(d);
+ uGb(HGb(JGb(IGb(LGb(g), h), p), true), Udd(c, 1));
+ m = a.b.b;
+ for (o2 = new olb(g.a); o2.a < o2.c.c.length; ) {
+ n = BD(mlb(o2), 121);
+ while (m.c.length <= n.e) {
+ Dkb(m, m.c.length, new H1b(a.b));
+ }
+ k = BD(n.f, 10);
+ $_b(k, BD(Ikb(m, n.e), 29));
+ }
+ if (f.b > 1) {
+ p = KC(WD, oje, 25, a.b.b.c.length, 15, 1);
+ l = 0;
+ for (j = new olb(a.b.b); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 29);
+ p[l++] = i.a.c.length;
+ }
+ }
+ }
+ q.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.a = null;
+ a.b = null;
+ a.c = null;
+ Qdd(c);
+ }
+ function OUb(a) {
+ var b, c, d, e, f, g, h;
+ b = 0;
+ for (f = new olb(a.b.a); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 189);
+ d.b = 0;
+ d.c = 0;
+ }
+ NUb(a, 0);
+ MUb(a, a.g);
+ sVb(a.c);
+ wVb(a.c);
+ c = (ead(), aad);
+ uVb(oVb(tVb(uVb(oVb(tVb(uVb(tVb(a.c, c)), had(c)))), c)));
+ tVb(a.c, aad);
+ RUb(a, a.g);
+ SUb(a, 0);
+ TUb(a, 0);
+ UUb(a, 1);
+ NUb(a, 1);
+ MUb(a, a.d);
+ sVb(a.c);
+ for (g = new olb(a.b.a); g.a < g.c.c.length; ) {
+ d = BD(mlb(g), 189);
+ b += $wnd.Math.abs(d.c);
+ }
+ for (h = new olb(a.b.a); h.a < h.c.c.length; ) {
+ d = BD(mlb(h), 189);
+ d.b = 0;
+ d.c = 0;
+ }
+ c = dad;
+ uVb(oVb(tVb(uVb(oVb(tVb(uVb(wVb(tVb(a.c, c))), had(c)))), c)));
+ tVb(a.c, aad);
+ RUb(a, a.d);
+ SUb(a, 1);
+ TUb(a, 1);
+ UUb(a, 0);
+ wVb(a.c);
+ for (e = new olb(a.b.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 189);
+ b += $wnd.Math.abs(d.c);
+ }
+ return b;
+ }
+ function Wfe(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ j = b;
+ if (j.b == null || a.b == null)
+ return;
+ Yfe(a);
+ Vfe(a);
+ Yfe(j);
+ Vfe(j);
+ c = KC(WD, oje, 25, a.b.length + j.b.length, 15, 1);
+ k = 0;
+ d = 0;
+ g = 0;
+ while (d < a.b.length && g < j.b.length) {
+ e = a.b[d];
+ f = a.b[d + 1];
+ h = j.b[g];
+ i = j.b[g + 1];
+ if (f < h) {
+ d += 2;
+ } else if (f >= h && e <= i) {
+ if (h <= e && f <= i) {
+ c[k++] = e;
+ c[k++] = f;
+ d += 2;
+ } else if (h <= e) {
+ c[k++] = e;
+ c[k++] = i;
+ a.b[d] = i + 1;
+ g += 2;
+ } else if (f <= i) {
+ c[k++] = h;
+ c[k++] = f;
+ d += 2;
+ } else {
+ c[k++] = h;
+ c[k++] = i;
+ a.b[d] = i + 1;
+ }
+ } else if (i < e) {
+ g += 2;
+ } else {
+ throw vbb(new hz("Token#intersectRanges(): Internal Error: [" + a.b[d] + "," + a.b[d + 1] + "] & [" + j.b[g] + "," + j.b[g + 1] + "]"));
+ }
+ }
+ while (d < a.b.length) {
+ c[k++] = a.b[d++];
+ c[k++] = a.b[d++];
+ }
+ a.b = KC(WD, oje, 25, k, 15, 1);
+ $fb(c, 0, a.b, 0, k);
+ }
+ function PUb(a) {
+ var b, c, d, e, f, g, h;
+ b = new Rkb();
+ a.g = new Rkb();
+ a.d = new Rkb();
+ for (g = new nib(new eib(a.f.b).a); g.b; ) {
+ f = lib(g);
+ Ekb(b, BD(BD(f.dd(), 46).b, 81));
+ fad(BD(f.cd(), 594).gf()) ? Ekb(a.d, BD(f.dd(), 46)) : Ekb(a.g, BD(f.dd(), 46));
+ }
+ MUb(a, a.d);
+ MUb(a, a.g);
+ a.c = new CVb(a.b);
+ AVb(a.c, (xUb(), wUb));
+ RUb(a, a.d);
+ RUb(a, a.g);
+ Gkb(b, a.c.a.b);
+ a.e = new f7c(Pje, Pje);
+ a.a = new f7c(Qje, Qje);
+ for (d = new olb(b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 81);
+ a.e.a = $wnd.Math.min(a.e.a, c.g.c);
+ a.e.b = $wnd.Math.min(a.e.b, c.g.d);
+ a.a.a = $wnd.Math.max(a.a.a, c.g.c + c.g.b);
+ a.a.b = $wnd.Math.max(a.a.b, c.g.d + c.g.a);
+ }
+ zVb(a.c, new YUb());
+ h = 0;
+ do {
+ e = OUb(a);
+ ++h;
+ } while ((h < 2 || e > Qie) && h < 10);
+ zVb(a.c, new _Ub());
+ OUb(a);
+ vVb(a.c);
+ yUb(a.f);
+ }
+ function sZb(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ if (!Ccb(DD(vNb(c, (Nyc(), fxc))))) {
+ return;
+ }
+ for (h = new olb(c.j); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 11);
+ m = k_b(g.g);
+ for (j = m, k = 0, l = j.length; k < l; ++k) {
+ i = j[k];
+ f = i.d.i == c;
+ e = f && Ccb(DD(vNb(i, gxc)));
+ if (e) {
+ o2 = i.c;
+ n = BD(Ohb(a.b, o2), 10);
+ if (!n) {
+ n = Z$b(o2, (dcd(), bcd), o2.j, -1, null, null, o2.o, BD(vNb(b, Lwc), 103), b);
+ yNb(n, (wtc(), $sc), o2);
+ Rhb(a.b, o2, n);
+ Ekb(b.a, n);
+ }
+ q = i.d;
+ p = BD(Ohb(a.b, q), 10);
+ if (!p) {
+ p = Z$b(q, (dcd(), bcd), q.j, 1, null, null, q.o, BD(vNb(b, Lwc), 103), b);
+ yNb(p, (wtc(), $sc), q);
+ Rhb(a.b, q, p);
+ Ekb(b.a, p);
+ }
+ d = kZb(i);
+ QZb(d, BD(Ikb(n.j, 0), 11));
+ RZb(d, BD(Ikb(p.j, 0), 11));
+ Rc(a.a, i, new BZb(d, b, (KAc(), IAc)));
+ BD(vNb(b, (wtc(), Ksc)), 21).Fc((Orc(), Hrc));
+ }
+ }
+ }
+ }
+ function W9b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2;
+ Odd(c, "Label dummy switching", 1);
+ d = BD(vNb(b, (Nyc(), Owc)), 227);
+ J9b(b);
+ e = T9b(b, d);
+ a.a = KC(UD, Vje, 25, b.b.c.length, 15, 1);
+ for (h = (Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc])), k = 0, n = h.length; k < n; ++k) {
+ f = h[k];
+ if ((f == zpc || f == upc || f == xpc) && !BD(uqb(e.a, f) ? e.b[f.g] : null, 15).dc()) {
+ M9b(a, b);
+ break;
+ }
+ }
+ for (i = OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]), l = 0, o2 = i.length; l < o2; ++l) {
+ f = i[l];
+ f == zpc || f == upc || f == xpc || X9b(a, BD(uqb(e.a, f) ? e.b[f.g] : null, 15));
+ }
+ for (g = OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]), j = 0, m = g.length; j < m; ++j) {
+ f = g[j];
+ (f == zpc || f == upc || f == xpc) && X9b(a, BD(uqb(e.a, f) ? e.b[f.g] : null, 15));
+ }
+ a.a = null;
+ Qdd(c);
+ }
+ function AFc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ switch (a.k.g) {
+ case 1:
+ d = BD(vNb(a, (wtc(), $sc)), 17);
+ c = BD(vNb(d, _sc), 74);
+ !c ? c = new s7c() : Ccb(DD(vNb(d, ltc))) && (c = w7c(c));
+ j = BD(vNb(a, Vsc), 11);
+ if (j) {
+ k = l7c(OC(GC(m1, 1), nie, 8, 0, [j.i.n, j.n, j.a]));
+ if (b <= k.a) {
+ return k.b;
+ }
+ Gsb(c, k, c.a, c.a.a);
+ }
+ l = BD(vNb(a, Wsc), 11);
+ if (l) {
+ m = l7c(OC(GC(m1, 1), nie, 8, 0, [l.i.n, l.n, l.a]));
+ if (m.a <= b) {
+ return m.b;
+ }
+ Gsb(c, m, c.c.b, c.c);
+ }
+ if (c.b >= 2) {
+ i = Jsb(c, 0);
+ g = BD(Xsb(i), 8);
+ h = BD(Xsb(i), 8);
+ while (h.a < b && i.b != i.d.c) {
+ g = h;
+ h = BD(Xsb(i), 8);
+ }
+ return g.b + (b - g.a) / (h.a - g.a) * (h.b - g.b);
+ }
+ break;
+ case 3:
+ f = BD(vNb(BD(Ikb(a.j, 0), 11), (wtc(), $sc)), 11);
+ e = f.i;
+ switch (f.j.g) {
+ case 1:
+ return e.n.b;
+ case 3:
+ return e.n.b + e.o.b;
+ }
+ }
+ return T_b(a).b;
+ }
+ function Wgc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l;
+ for (g = new olb(a.d.b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 29);
+ for (i = new olb(f.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ if (Ccb(DD(vNb(h, (Nyc(), pwc))))) {
+ if (!Qq(O_b(h))) {
+ d = BD(Oq(O_b(h)), 17);
+ k = d.c.i;
+ k == h && (k = d.d.i);
+ l = new vgd(k, c7c(R6c(h.n), k.n));
+ Rhb(a.b, h, l);
+ continue;
+ }
+ }
+ e = new J6c(h.n.a - h.d.b, h.n.b - h.d.d, h.o.a + h.d.b + h.d.c, h.o.b + h.d.d + h.d.a);
+ b = vDb(yDb(wDb(xDb(new zDb(), h), e), Fgc), a.a);
+ pDb(qDb(rDb(new sDb(), OC(GC(PM, 1), Uhe, 57, 0, [b])), b), a.a);
+ j = new lEb();
+ Rhb(a.e, b, j);
+ c = sr(new Sr(ur(R_b(h).a.Kc(), new Sq()))) - sr(new Sr(ur(U_b(h).a.Kc(), new Sq())));
+ c < 0 ? jEb(j, true, (ead(), aad)) : c > 0 && jEb(j, true, (ead(), bad));
+ h.k == (j0b(), e0b) && kEb(j);
+ Rhb(a.f, h, b);
+ }
+ }
+ }
+ function Bbc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ Odd(c, "Node promotion heuristic", 1);
+ a.g = b;
+ Abc(a);
+ a.q = BD(vNb(b, (Nyc(), rxc)), 260);
+ k = BD(vNb(a.g, qxc), 19).a;
+ f = new Jbc();
+ switch (a.q.g) {
+ case 2:
+ case 1:
+ Dbc(a, f);
+ break;
+ case 3:
+ a.q = (kAc(), jAc);
+ Dbc(a, f);
+ i = 0;
+ for (h = new olb(a.a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 19);
+ i = $wnd.Math.max(i, g.a);
+ }
+ if (i > a.j) {
+ a.q = dAc;
+ Dbc(a, f);
+ }
+ break;
+ case 4:
+ a.q = (kAc(), jAc);
+ Dbc(a, f);
+ j = 0;
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = ED(mlb(e));
+ j = $wnd.Math.max(j, (uCb(d), d));
+ }
+ if (j > a.k) {
+ a.q = gAc;
+ Dbc(a, f);
+ }
+ break;
+ case 6:
+ m = QD($wnd.Math.ceil(a.f.length * k / 100));
+ Dbc(a, new Mbc(m));
+ break;
+ case 5:
+ l = QD($wnd.Math.ceil(a.d * k / 100));
+ Dbc(a, new Pbc(l));
+ break;
+ default:
+ Dbc(a, f);
+ }
+ Ebc(a, b);
+ Qdd(c);
+ }
+ function fFc(a, b, c) {
+ var d, e, f, g;
+ this.j = a;
+ this.e = WZb(a);
+ this.o = this.j.e;
+ this.i = !!this.o;
+ this.p = this.i ? BD(Ikb(c, Q_b(this.o).p), 214) : null;
+ e = BD(vNb(a, (wtc(), Ksc)), 21);
+ this.g = e.Hc((Orc(), Hrc));
+ this.b = new Rkb();
+ this.d = new rHc(this.e);
+ g = BD(vNb(this.j, jtc), 230);
+ this.q = wFc(b, g, this.e);
+ this.k = new BGc(this);
+ f = Ou(OC(GC(qY, 1), Uhe, 225, 0, [this, this.d, this.k, this.q]));
+ if (b == (rGc(), oGc) && !Ccb(DD(vNb(a, (Nyc(), Awc))))) {
+ d = new SEc(this.e);
+ f.c[f.c.length] = d;
+ this.c = new uEc(d, g, BD(this.q, 402));
+ } else if (b == oGc && Ccb(DD(vNb(a, (Nyc(), Awc))))) {
+ d = new SEc(this.e);
+ f.c[f.c.length] = d;
+ this.c = new XGc(d, g, BD(this.q, 402));
+ } else {
+ this.c = new Oic(b, this);
+ }
+ Ekb(f, this.c);
+ $Ic(f, this.e);
+ this.s = AGc(this.k);
+ }
+ function xUc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ l = BD(pr((g = Jsb(new ZRc(b).a.d, 0), new aSc(g))), 86);
+ o2 = l ? BD(vNb(l, (mTc(), _Sc)), 86) : null;
+ e = 1;
+ while (!!l && !!o2) {
+ i = 0;
+ u = 0;
+ c = l;
+ d = o2;
+ for (h = 0; h < e; h++) {
+ c = VRc(c);
+ d = VRc(d);
+ u += Edb(ED(vNb(c, (mTc(), cTc))));
+ i += Edb(ED(vNb(d, cTc)));
+ }
+ t = Edb(ED(vNb(o2, (mTc(), fTc))));
+ s = Edb(ED(vNb(l, fTc)));
+ m = zUc(l, o2);
+ n = t + i + a.a + m - s - u;
+ if (0 < n) {
+ j = b;
+ k = 0;
+ while (!!j && j != d) {
+ ++k;
+ j = BD(vNb(j, aTc), 86);
+ }
+ if (j) {
+ r = n / k;
+ j = b;
+ while (j != d) {
+ q = Edb(ED(vNb(j, fTc))) + n;
+ yNb(j, fTc, q);
+ p = Edb(ED(vNb(j, cTc))) + n;
+ yNb(j, cTc, p);
+ n -= r;
+ j = BD(vNb(j, aTc), 86);
+ }
+ } else {
+ return;
+ }
+ }
+ ++e;
+ l.d.b == 0 ? l = JRc(new ZRc(b), e) : l = BD(pr((f = Jsb(new ZRc(l).a.d, 0), new aSc(f))), 86);
+ o2 = l ? BD(vNb(l, _Sc), 86) : null;
+ }
+ }
+ function Cbc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ i = true;
+ e = 0;
+ j = a.f[b.p];
+ k = b.o.b + a.n;
+ c = a.c[b.p][2];
+ Nkb(a.a, j, meb(BD(Ikb(a.a, j), 19).a - 1 + c));
+ Nkb(a.b, j, Edb(ED(Ikb(a.b, j))) - k + c * a.e);
+ ++j;
+ if (j >= a.i) {
+ ++a.i;
+ Ekb(a.a, meb(1));
+ Ekb(a.b, k);
+ } else {
+ d = a.c[b.p][1];
+ Nkb(a.a, j, meb(BD(Ikb(a.a, j), 19).a + 1 - d));
+ Nkb(a.b, j, Edb(ED(Ikb(a.b, j))) + k - d * a.e);
+ }
+ (a.q == (kAc(), dAc) && (BD(Ikb(a.a, j), 19).a > a.j || BD(Ikb(a.a, j - 1), 19).a > a.j) || a.q == gAc && (Edb(ED(Ikb(a.b, j))) > a.k || Edb(ED(Ikb(a.b, j - 1))) > a.k)) && (i = false);
+ for (g = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(g); ) {
+ f = BD(Rr(g), 17);
+ h = f.c.i;
+ if (a.f[h.p] == j) {
+ l = Cbc(a, h);
+ e = e + BD(l.a, 19).a;
+ i = i && Ccb(DD(l.b));
+ }
+ }
+ a.f[b.p] = j;
+ e = e + a.c[b.p][0];
+ return new vgd(meb(e), (Bcb(), i ? true : false));
+ }
+ function sPc(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ l = new Lqb();
+ g = new Rkb();
+ qPc(a, c, a.d.fg(), g, l);
+ qPc(a, d, a.d.gg(), g, l);
+ a.b = 0.2 * (p = rPc(LAb(new YAb(null, new Kub(g, 16)), new xPc())), q = rPc(LAb(new YAb(null, new Kub(g, 16)), new zPc())), $wnd.Math.min(p, q));
+ f = 0;
+ for (h = 0; h < g.c.length - 1; h++) {
+ i = (tCb(h, g.c.length), BD(g.c[h], 112));
+ for (o2 = h + 1; o2 < g.c.length; o2++) {
+ f += pPc(a, i, (tCb(o2, g.c.length), BD(g.c[o2], 112)));
+ }
+ }
+ m = BD(vNb(b, (wtc(), jtc)), 230);
+ f >= 2 && (r = WNc(g, true, m), !a.e && (a.e = new ZOc(a)), VOc(a.e, r, g, a.b), void 0);
+ uPc(g, m);
+ wPc(g);
+ n = -1;
+ for (k = new olb(g); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 112);
+ if ($wnd.Math.abs(j.s - j.c) < qme) {
+ continue;
+ }
+ n = $wnd.Math.max(n, j.o);
+ a.d.dg(j, e, a.c);
+ }
+ a.d.a.a.$b();
+ return n + 1;
+ }
+ function aUb(a, b) {
+ var c, d, e, f, g;
+ c = Edb(ED(vNb(b, (Nyc(), lyc))));
+ c < 2 && yNb(b, lyc, 2);
+ d = BD(vNb(b, Lwc), 103);
+ d == (ead(), cad) && yNb(b, Lwc, a_b(b));
+ e = BD(vNb(b, fyc), 19);
+ e.a == 0 ? yNb(b, (wtc(), jtc), new Gub()) : yNb(b, (wtc(), jtc), new Hub(e.a));
+ f = DD(vNb(b, Axc));
+ f == null && yNb(b, Axc, (Bcb(), PD(vNb(b, Swc)) === PD((Aad(), wad)) ? true : false));
+ MAb(new YAb(null, new Kub(b.a, 16)), new dUb(a));
+ MAb(LAb(new YAb(null, new Kub(b.b, 16)), new fUb()), new hUb(a));
+ g = new oBc(b);
+ yNb(b, (wtc(), otc), g);
+ H2c(a.a);
+ K2c(a.a, (qUb(), lUb), BD(vNb(b, Jwc), 246));
+ K2c(a.a, mUb, BD(vNb(b, sxc), 246));
+ K2c(a.a, nUb, BD(vNb(b, Iwc), 246));
+ K2c(a.a, oUb, BD(vNb(b, Exc), 246));
+ K2c(a.a, pUb, kNc(BD(vNb(b, Swc), 218)));
+ E2c(a.a, _Tb(b));
+ yNb(b, itc, F2c(a.a, b));
+ }
+ function fjc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w;
+ if (m = a.c[b], n = a.c[c], (o2 = BD(vNb(m, (wtc(), Qsc)), 15), !!o2 && o2.gc() != 0 && o2.Hc(n)) || (p = m.k != (j0b(), g0b) && n.k != g0b, q = BD(vNb(m, Psc), 10), r = BD(vNb(n, Psc), 10), s = q != r, t = !!q && q != m || !!r && r != n, u = gjc(m, (Ucd(), Acd)), v = gjc(n, Rcd), t = t | (gjc(m, Rcd) || gjc(n, Acd)), w = t && s || u || v, p && w) || m.k == (j0b(), i0b) && n.k == h0b || n.k == (j0b(), i0b) && m.k == h0b) {
+ return false;
+ }
+ k = a.c[b];
+ f = a.c[c];
+ e = LHc(a.e, k, f, (Ucd(), Tcd));
+ i = LHc(a.i, k, f, zcd);
+ Yic(a.f, k, f);
+ j = Hic(a.b, k, f) + BD(e.a, 19).a + BD(i.a, 19).a + a.f.d;
+ h = Hic(a.b, f, k) + BD(e.b, 19).a + BD(i.b, 19).a + a.f.b;
+ if (a.a) {
+ l = BD(vNb(k, $sc), 11);
+ g = BD(vNb(f, $sc), 11);
+ d = JHc(a.g, l, g);
+ j += BD(d.a, 19).a;
+ h += BD(d.b, 19).a;
+ }
+ return j > h;
+ }
+ function k6b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ c = BD(vNb(a, (Nyc(), Vxc)), 98);
+ g = a.f;
+ f = a.d;
+ h = g.a + f.b + f.c;
+ i = 0 - f.d - a.c.b;
+ k = g.b + f.d + f.a - a.c.b;
+ j = new Rkb();
+ l = new Rkb();
+ for (e = new olb(b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 10);
+ switch (c.g) {
+ case 1:
+ case 2:
+ case 3:
+ a6b(d);
+ break;
+ case 4:
+ m = BD(vNb(d, Txc), 8);
+ n = !m ? 0 : m.a;
+ d.n.a = h * Edb(ED(vNb(d, (wtc(), htc)))) - n;
+ M_b(d, true, false);
+ break;
+ case 5:
+ o2 = BD(vNb(d, Txc), 8);
+ p = !o2 ? 0 : o2.a;
+ d.n.a = Edb(ED(vNb(d, (wtc(), htc)))) - p;
+ M_b(d, true, false);
+ g.a = $wnd.Math.max(g.a, d.n.a + d.o.a / 2);
+ }
+ switch (BD(vNb(d, (wtc(), Hsc)), 61).g) {
+ case 1:
+ d.n.b = i;
+ j.c[j.c.length] = d;
+ break;
+ case 3:
+ d.n.b = k;
+ l.c[l.c.length] = d;
+ }
+ }
+ switch (c.g) {
+ case 1:
+ case 2:
+ c6b(j, a);
+ c6b(l, a);
+ break;
+ case 3:
+ i6b(j, a);
+ i6b(l, a);
+ }
+ }
+ function VHc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l;
+ k = new Rkb();
+ l = new jkb();
+ f = null;
+ e = 0;
+ for (d = 0; d < b.length; ++d) {
+ c = b[d];
+ XHc(f, c) && (e = QHc(a, l, k, EHc, e));
+ wNb(c, (wtc(), Psc)) && (f = BD(vNb(c, Psc), 10));
+ switch (c.k.g) {
+ case 0:
+ for (i = Vq(Nq(V_b(c, (Ucd(), Acd)), new GIc())); xc(i); ) {
+ g = BD(yc(i), 11);
+ a.d[g.p] = e++;
+ k.c[k.c.length] = g;
+ }
+ e = QHc(a, l, k, EHc, e);
+ for (j = Vq(Nq(V_b(c, Rcd), new GIc())); xc(j); ) {
+ g = BD(yc(j), 11);
+ a.d[g.p] = e++;
+ k.c[k.c.length] = g;
+ }
+ break;
+ case 3:
+ if (!V_b(c, DHc).dc()) {
+ g = BD(V_b(c, DHc).Xb(0), 11);
+ a.d[g.p] = e++;
+ k.c[k.c.length] = g;
+ }
+ V_b(c, EHc).dc() || Wjb(l, c);
+ break;
+ case 1:
+ for (h = V_b(c, (Ucd(), Tcd)).Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 11);
+ a.d[g.p] = e++;
+ k.c[k.c.length] = g;
+ }
+ V_b(c, zcd).Jc(new EIc(l, c));
+ }
+ }
+ QHc(a, l, k, EHc, e);
+ return k;
+ }
+ function y$c(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s;
+ j = Pje;
+ k = Pje;
+ h = Qje;
+ i = Qje;
+ for (m = new olb(b.i); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 65);
+ e = BD(BD(Ohb(a.g, l.a), 46).b, 33);
+ bld(e, l.b.c, l.b.d);
+ j = $wnd.Math.min(j, e.i);
+ k = $wnd.Math.min(k, e.j);
+ h = $wnd.Math.max(h, e.i + e.g);
+ i = $wnd.Math.max(i, e.j + e.f);
+ }
+ n = BD(hkd(a.c, (d0c(), W_c)), 116);
+ Afd(a.c, h - j + (n.b + n.c), i - k + (n.d + n.a), true, true);
+ Efd(a.c, -j + n.b, -k + n.d);
+ for (d = new Fyd(Wod(a.c)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 79);
+ g = itd(c, true, true);
+ o2 = jtd(c);
+ q = ltd(c);
+ p = new f7c(o2.i + o2.g / 2, o2.j + o2.f / 2);
+ f = new f7c(q.i + q.g / 2, q.j + q.f / 2);
+ r = c7c(new f7c(f.a, f.b), p);
+ l6c(r, o2.g, o2.f);
+ P6c(p, r);
+ s = c7c(new f7c(p.a, p.b), f);
+ l6c(s, q.g, q.f);
+ P6c(f, s);
+ nmd(g, p.a, p.b);
+ gmd(g, f.a, f.b);
+ }
+ }
+ function EYb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ a.c = a.d;
+ o2 = DD(vNb(b, (Nyc(), gyc)));
+ n = o2 == null || (uCb(o2), o2);
+ f = BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc));
+ e = BD(vNb(b, Vxc), 98);
+ c = !(e == (dcd(), Zbd) || e == _bd || e == $bd);
+ if (n && (c || !f)) {
+ for (l = new olb(b.a); l.a < l.c.c.length; ) {
+ j = BD(mlb(l), 10);
+ j.p = 0;
+ }
+ m = new Rkb();
+ for (k = new olb(b.a); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 10);
+ d = DYb(a, j, null);
+ if (d) {
+ i = new XZb();
+ tNb(i, b);
+ yNb(i, Esc, BD(d.b, 21));
+ u_b(i.d, b.d);
+ yNb(i, Hxc, null);
+ for (h = BD(d.a, 15).Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 10);
+ Ekb(i.a, g);
+ g.a = i;
+ }
+ m.Fc(i);
+ }
+ }
+ f && (PD(vNb(b, twc)) === PD((RXb(), OXb)) ? a.c = a.b : a.c = a.a);
+ } else {
+ m = new amb(OC(GC(KQ, 1), cne, 37, 0, [b]));
+ }
+ PD(vNb(b, twc)) !== PD((RXb(), QXb)) && (mmb(), m.ad(new HYb()));
+ return m;
+ }
+ function KTc(a) {
+ r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), are), "ELK Mr. Tree"), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new NTc()), bre), pqb((Csd(), wsd)))));
+ p4c(a, are, ame, CTc);
+ p4c(a, are, wme, 20);
+ p4c(a, are, _le, tme);
+ p4c(a, are, vme, meb(1));
+ p4c(a, are, zme, (Bcb(), true));
+ p4c(a, are, Zpe, Ksd(vTc));
+ p4c(a, are, Fme, Ksd(xTc));
+ p4c(a, are, Tme, Ksd(yTc));
+ p4c(a, are, Eme, Ksd(zTc));
+ p4c(a, are, Gme, Ksd(wTc));
+ p4c(a, are, Dme, Ksd(ATc));
+ p4c(a, are, Hme, Ksd(DTc));
+ p4c(a, are, Zqe, Ksd(ITc));
+ p4c(a, are, $qe, Ksd(FTc));
+ }
+ function zod(a) {
+ if (a.q)
+ return;
+ a.q = true;
+ a.p = Lnd(a, 0);
+ a.a = Lnd(a, 1);
+ Qnd(a.a, 0);
+ a.f = Lnd(a, 2);
+ Qnd(a.f, 1);
+ Knd(a.f, 2);
+ a.n = Lnd(a, 3);
+ Knd(a.n, 3);
+ Knd(a.n, 4);
+ Knd(a.n, 5);
+ Knd(a.n, 6);
+ a.g = Lnd(a, 4);
+ Qnd(a.g, 7);
+ Knd(a.g, 8);
+ a.c = Lnd(a, 5);
+ Qnd(a.c, 7);
+ Qnd(a.c, 8);
+ a.i = Lnd(a, 6);
+ Qnd(a.i, 9);
+ Qnd(a.i, 10);
+ Qnd(a.i, 11);
+ Qnd(a.i, 12);
+ Knd(a.i, 13);
+ a.j = Lnd(a, 7);
+ Qnd(a.j, 9);
+ a.d = Lnd(a, 8);
+ Qnd(a.d, 3);
+ Qnd(a.d, 4);
+ Qnd(a.d, 5);
+ Qnd(a.d, 6);
+ Knd(a.d, 7);
+ Knd(a.d, 8);
+ Knd(a.d, 9);
+ Knd(a.d, 10);
+ a.b = Lnd(a, 9);
+ Knd(a.b, 0);
+ Knd(a.b, 1);
+ a.e = Lnd(a, 10);
+ Knd(a.e, 1);
+ Knd(a.e, 2);
+ Knd(a.e, 3);
+ Knd(a.e, 4);
+ Qnd(a.e, 5);
+ Qnd(a.e, 6);
+ Qnd(a.e, 7);
+ Qnd(a.e, 8);
+ Qnd(a.e, 9);
+ Qnd(a.e, 10);
+ Knd(a.e, 11);
+ a.k = Lnd(a, 11);
+ Knd(a.k, 0);
+ Knd(a.k, 1);
+ a.o = Mnd(a, 12);
+ a.s = Mnd(a, 13);
+ }
+ function AUb(a, b) {
+ b.dc() && HVb(a.j, true, true, true, true);
+ pb(b, (Ucd(), Gcd)) && HVb(a.j, true, true, true, false);
+ pb(b, Bcd) && HVb(a.j, false, true, true, true);
+ pb(b, Ocd) && HVb(a.j, true, true, false, true);
+ pb(b, Qcd) && HVb(a.j, true, false, true, true);
+ pb(b, Hcd) && HVb(a.j, false, true, true, false);
+ pb(b, Ccd) && HVb(a.j, false, true, false, true);
+ pb(b, Pcd) && HVb(a.j, true, false, false, true);
+ pb(b, Ncd) && HVb(a.j, true, false, true, false);
+ pb(b, Lcd) && HVb(a.j, true, true, true, true);
+ pb(b, Ecd) && HVb(a.j, true, true, true, true);
+ pb(b, Lcd) && HVb(a.j, true, true, true, true);
+ pb(b, Dcd) && HVb(a.j, true, true, true, true);
+ pb(b, Mcd) && HVb(a.j, true, true, true, true);
+ pb(b, Kcd) && HVb(a.j, true, true, true, true);
+ pb(b, Jcd) && HVb(a.j, true, true, true, true);
+ }
+ function rZb(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2, p, q;
+ f = new Rkb();
+ for (j = new olb(d); j.a < j.c.c.length; ) {
+ h = BD(mlb(j), 441);
+ g = null;
+ if (h.f == (KAc(), IAc)) {
+ for (o2 = new olb(h.e); o2.a < o2.c.c.length; ) {
+ n = BD(mlb(o2), 17);
+ q = n.d.i;
+ if (Q_b(q) == b) {
+ iZb(a, b, h, n, h.b, n.d);
+ } else if (!c || f_b(q, c)) {
+ jZb(a, b, h, d, n);
+ } else {
+ m = oZb(a, b, c, n, h.b, IAc, g);
+ m != g && (f.c[f.c.length] = m, true);
+ m.c && (g = m);
+ }
+ }
+ } else {
+ for (l = new olb(h.e); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 17);
+ p = k.c.i;
+ if (Q_b(p) == b) {
+ iZb(a, b, h, k, k.c, h.b);
+ } else if (!c || f_b(p, c)) {
+ continue;
+ } else {
+ m = oZb(a, b, c, k, h.b, HAc, g);
+ m != g && (f.c[f.c.length] = m, true);
+ m.c && (g = m);
+ }
+ }
+ }
+ }
+ for (i = new olb(f); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 441);
+ Jkb(b.a, h.a, 0) != -1 || Ekb(b.a, h.a);
+ h.c && (e.c[e.c.length] = h, true);
+ }
+ }
+ function SJc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ j = new Rkb();
+ for (i = new olb(b.a); i.a < i.c.c.length; ) {
+ g = BD(mlb(i), 10);
+ for (m = V_b(g, (Ucd(), zcd)).Kc(); m.Ob(); ) {
+ l = BD(m.Pb(), 11);
+ for (e = new olb(l.g); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ if (!OZb(d) && d.c.i.c == d.d.i.c || OZb(d) || d.d.i.c != c) {
+ continue;
+ }
+ j.c[j.c.length] = d;
+ }
+ }
+ }
+ for (h = Su(c.a).Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 10);
+ for (m = V_b(g, (Ucd(), Tcd)).Kc(); m.Ob(); ) {
+ l = BD(m.Pb(), 11);
+ for (e = new olb(l.e); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ if (!OZb(d) && d.c.i.c == d.d.i.c || OZb(d) || d.c.i.c != b) {
+ continue;
+ }
+ k = new Bib(j, j.c.length);
+ f = (sCb(k.b > 0), BD(k.a.Xb(k.c = --k.b), 17));
+ while (f != d && k.b > 0) {
+ a.a[f.p] = true;
+ a.a[d.p] = true;
+ f = (sCb(k.b > 0), BD(k.a.Xb(k.c = --k.b), 17));
+ }
+ k.b > 0 && uib(k);
+ }
+ }
+ }
+ }
+ function Vmd(b, c, d) {
+ var e, f, g, h, i, j, k, l, m;
+ if (b.a != c.Aj()) {
+ throw vbb(new Wdb(tte + c.ne() + ute));
+ }
+ e = o1d((O6d(), M6d), c).$k();
+ if (e) {
+ return e.Aj().Nh().Ih(e, d);
+ }
+ h = o1d(M6d, c).al();
+ if (h) {
+ if (d == null) {
+ return null;
+ }
+ i = BD(d, 15);
+ if (i.dc()) {
+ return "";
+ }
+ m = new Hfb();
+ for (g = i.Kc(); g.Ob(); ) {
+ f = g.Pb();
+ Efb(m, h.Aj().Nh().Ih(h, f));
+ m.a += " ";
+ }
+ return lcb(m, m.a.length - 1);
+ }
+ l = o1d(M6d, c).bl();
+ if (!l.dc()) {
+ for (k = l.Kc(); k.Ob(); ) {
+ j = BD(k.Pb(), 148);
+ if (j.wj(d)) {
+ try {
+ m = j.Aj().Nh().Ih(j, d);
+ if (m != null) {
+ return m;
+ }
+ } catch (a) {
+ a = ubb(a);
+ if (!JD(a, 102))
+ throw vbb(a);
+ }
+ }
+ }
+ throw vbb(new Wdb("Invalid value: '" + d + "' for datatype :" + c.ne()));
+ }
+ BD(c, 834).Fj();
+ return d == null ? null : JD(d, 172) ? "" + BD(d, 172).a : rb(d) == $J ? CQd(Pmd[0], BD(d, 199)) : fcb(d);
+ }
+ function zQc(a) {
+ var b, c, d, e, f, g, h, i, j, k;
+ j = new Psb();
+ h = new Psb();
+ for (f = new olb(a); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 128);
+ d.v = 0;
+ d.n = d.i.c.length;
+ d.u = d.t.c.length;
+ d.n == 0 && (Gsb(j, d, j.c.b, j.c), true);
+ d.u == 0 && d.r.a.gc() == 0 && (Gsb(h, d, h.c.b, h.c), true);
+ }
+ g = -1;
+ while (j.b != 0) {
+ d = BD(Vt(j, 0), 128);
+ for (c = new olb(d.t); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 268);
+ k = b.b;
+ k.v = $wnd.Math.max(k.v, d.v + 1);
+ g = $wnd.Math.max(g, k.v);
+ --k.n;
+ k.n == 0 && (Gsb(j, k, j.c.b, j.c), true);
+ }
+ }
+ if (g > -1) {
+ for (e = Jsb(h, 0); e.b != e.d.c; ) {
+ d = BD(Xsb(e), 128);
+ d.v = g;
+ }
+ while (h.b != 0) {
+ d = BD(Vt(h, 0), 128);
+ for (c = new olb(d.i); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 268);
+ i = b.a;
+ if (i.r.a.gc() != 0) {
+ continue;
+ }
+ i.v = $wnd.Math.min(i.v, d.v - 1);
+ --i.u;
+ i.u == 0 && (Gsb(h, i, h.c.b, h.c), true);
+ }
+ }
+ }
+ }
+ function A6c(a, b, c, d, e) {
+ var f, g, h, i;
+ i = Pje;
+ g = false;
+ h = v6c(a, c7c(new f7c(b.a, b.b), a), P6c(new f7c(c.a, c.b), e), c7c(new f7c(d.a, d.b), c));
+ f = !!h && !($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse || $wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse);
+ h = v6c(a, c7c(new f7c(b.a, b.b), a), c, e);
+ !!h && (($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse) == ($wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse) || f ? i = $wnd.Math.min(i, U6c(c7c(h, c))) : g = true);
+ h = v6c(a, c7c(new f7c(b.a, b.b), a), d, e);
+ !!h && (g || ($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse) == ($wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse) || f) && (i = $wnd.Math.min(i, U6c(c7c(h, d))));
+ return i;
+ }
+ function cTb(a) {
+ r4c(a, new E3c(L3c(P3c(M3c(O3c(N3c(new R3c(), Rme), Sme), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new fTb()), ume)));
+ p4c(a, Rme, Ame, Ksd(VSb));
+ p4c(a, Rme, Cme, (Bcb(), true));
+ p4c(a, Rme, Fme, Ksd(YSb));
+ p4c(a, Rme, Tme, Ksd(ZSb));
+ p4c(a, Rme, Eme, Ksd($Sb));
+ p4c(a, Rme, Gme, Ksd(XSb));
+ p4c(a, Rme, Dme, Ksd(_Sb));
+ p4c(a, Rme, Hme, Ksd(aTb));
+ p4c(a, Rme, Mme, Ksd(USb));
+ p4c(a, Rme, Ome, Ksd(SSb));
+ p4c(a, Rme, Pme, Ksd(TSb));
+ p4c(a, Rme, Qme, Ksd(WSb));
+ p4c(a, Rme, Nme, Ksd(RSb));
+ }
+ function BFc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ Odd(b, "Interactive crossing minimization", 1);
+ g = 0;
+ for (f = new olb(a.b); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 29);
+ d.p = g++;
+ }
+ m = WZb(a);
+ q = new iHc(m.length);
+ $Ic(new amb(OC(GC(qY, 1), Uhe, 225, 0, [q])), m);
+ p = 0;
+ g = 0;
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ c = 0;
+ l = 0;
+ for (k = new olb(d.a); k.a < k.c.c.length; ) {
+ i = BD(mlb(k), 10);
+ if (i.n.a > 0) {
+ c += i.n.a + i.o.a / 2;
+ ++l;
+ }
+ for (o2 = new olb(i.j); o2.a < o2.c.c.length; ) {
+ n = BD(mlb(o2), 11);
+ n.p = p++;
+ }
+ }
+ l > 0 && (c /= l);
+ r = KC(UD, Vje, 25, d.a.c.length, 15, 1);
+ h = 0;
+ for (j = new olb(d.a); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 10);
+ i.p = h++;
+ r[i.p] = AFc(i, c);
+ i.k == (j0b(), g0b) && yNb(i, (wtc(), atc), r[i.p]);
+ }
+ mmb();
+ Okb(d.a, new GFc(r));
+ YDc(q, m, g, true);
+ ++g;
+ }
+ Qdd(b);
+ }
+ function Zfe(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ if (b.e == 5) {
+ Wfe(a, b);
+ return;
+ }
+ j = b;
+ if (j.b == null || a.b == null)
+ return;
+ Yfe(a);
+ Vfe(a);
+ Yfe(j);
+ Vfe(j);
+ c = KC(WD, oje, 25, a.b.length + j.b.length, 15, 1);
+ k = 0;
+ d = 0;
+ g = 0;
+ while (d < a.b.length && g < j.b.length) {
+ e = a.b[d];
+ f = a.b[d + 1];
+ h = j.b[g];
+ i = j.b[g + 1];
+ if (f < h) {
+ c[k++] = a.b[d++];
+ c[k++] = a.b[d++];
+ } else if (f >= h && e <= i) {
+ if (h <= e && f <= i) {
+ d += 2;
+ } else if (h <= e) {
+ a.b[d] = i + 1;
+ g += 2;
+ } else if (f <= i) {
+ c[k++] = e;
+ c[k++] = h - 1;
+ d += 2;
+ } else {
+ c[k++] = e;
+ c[k++] = h - 1;
+ a.b[d] = i + 1;
+ g += 2;
+ }
+ } else if (i < e) {
+ g += 2;
+ } else {
+ throw vbb(new hz("Token#subtractRanges(): Internal Error: [" + a.b[d] + "," + a.b[d + 1] + "] - [" + j.b[g] + "," + j.b[g + 1] + "]"));
+ }
+ }
+ while (d < a.b.length) {
+ c[k++] = a.b[d++];
+ c[k++] = a.b[d++];
+ }
+ a.b = KC(WD, oje, 25, k, 15, 1);
+ $fb(c, 0, a.b, 0, k);
+ }
+ function BJb(a) {
+ var b, c, d, e, f, g, h;
+ if (a.A.dc()) {
+ return;
+ }
+ if (a.A.Hc((tdd(), rdd))) {
+ BD(Mpb(a.b, (Ucd(), Acd)), 124).k = true;
+ BD(Mpb(a.b, Rcd), 124).k = true;
+ b = a.q != (dcd(), _bd) && a.q != $bd;
+ ZGb(BD(Mpb(a.b, zcd), 124), b);
+ ZGb(BD(Mpb(a.b, Tcd), 124), b);
+ ZGb(a.g, b);
+ if (a.A.Hc(sdd)) {
+ BD(Mpb(a.b, Acd), 124).j = true;
+ BD(Mpb(a.b, Rcd), 124).j = true;
+ BD(Mpb(a.b, zcd), 124).k = true;
+ BD(Mpb(a.b, Tcd), 124).k = true;
+ a.g.k = true;
+ }
+ }
+ if (a.A.Hc(qdd)) {
+ a.a.j = true;
+ a.a.k = true;
+ a.g.j = true;
+ a.g.k = true;
+ h = a.B.Hc((Idd(), Edd));
+ for (e = wJb(), f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ c = BD(Mpb(a.i, d), 306);
+ if (c) {
+ if (sJb(d)) {
+ c.j = true;
+ c.k = true;
+ } else {
+ c.j = !h;
+ c.k = !h;
+ }
+ }
+ }
+ }
+ if (a.A.Hc(pdd) && a.B.Hc((Idd(), Ddd))) {
+ a.g.j = true;
+ a.g.j = true;
+ if (!a.a.j) {
+ a.a.j = true;
+ a.a.k = true;
+ a.a.e = true;
+ }
+ }
+ }
+ function GJc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ for (d = new olb(a.e.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 29);
+ for (f = new olb(c.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ n = a.i[e.p];
+ j = n.a.e;
+ i = n.d.e;
+ e.n.b = j;
+ r = i - j - e.o.b;
+ b = bKc(e);
+ m = (Izc(), (!e.q ? (mmb(), mmb(), kmb) : e.q)._b((Nyc(), Cxc)) ? l = BD(vNb(e, Cxc), 197) : l = BD(vNb(Q_b(e), Dxc), 197), l);
+ b && (m == Fzc || m == Ezc) && (e.o.b += r);
+ if (b && (m == Hzc || m == Fzc || m == Ezc)) {
+ for (p = new olb(e.j); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 11);
+ if ((Ucd(), Ecd).Hc(o2.j)) {
+ k = BD(Ohb(a.k, o2), 121);
+ o2.n.b = k.e - j;
+ }
+ }
+ for (h = new olb(e.b); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 70);
+ q = BD(vNb(e, xxc), 21);
+ q.Hc((Hbd(), Ebd)) ? g.n.b += r : q.Hc(Fbd) && (g.n.b += r / 2);
+ }
+ (m == Fzc || m == Ezc) && V_b(e, (Ucd(), Rcd)).Jc(new $Kc(r));
+ }
+ }
+ }
+ }
+ function Lwb(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n;
+ if (!a.b) {
+ return false;
+ }
+ g = null;
+ m = null;
+ i = new exb(null, null);
+ e = 1;
+ i.a[1] = a.b;
+ l = i;
+ while (l.a[e]) {
+ j = e;
+ h = m;
+ m = l;
+ l = l.a[e];
+ d = a.a.ue(b, l.d);
+ e = d < 0 ? 0 : 1;
+ d == 0 && (!c.c || wtb(l.e, c.d)) && (g = l);
+ if (!(!!l && l.b) && !Hwb(l.a[e])) {
+ if (Hwb(l.a[1 - e])) {
+ m = m.a[j] = Owb(l, e);
+ } else if (!Hwb(l.a[1 - e])) {
+ n = m.a[1 - j];
+ if (n) {
+ if (!Hwb(n.a[1 - j]) && !Hwb(n.a[j])) {
+ m.b = false;
+ n.b = true;
+ l.b = true;
+ } else {
+ f = h.a[1] == m ? 1 : 0;
+ Hwb(n.a[j]) ? h.a[f] = Nwb(m, j) : Hwb(n.a[1 - j]) && (h.a[f] = Owb(m, j));
+ l.b = h.a[f].b = true;
+ h.a[f].a[0].b = false;
+ h.a[f].a[1].b = false;
+ }
+ }
+ }
+ }
+ }
+ if (g) {
+ c.b = true;
+ c.d = g.e;
+ if (l != g) {
+ k = new exb(l.d, l.e);
+ Mwb(a, i, g, k);
+ m == g && (m = k);
+ }
+ m.a[m.a[1] == l ? 1 : 0] = l.a[!l.a[0] ? 1 : 0];
+ --a.c;
+ }
+ a.b = i.a[1];
+ !!a.b && (a.b.b = false);
+ return c.b;
+ }
+ function cic(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m;
+ for (e = new olb(a.a.a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 57);
+ for (i = d.c.Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 57);
+ if (d.a == h.a) {
+ continue;
+ }
+ fad(a.a.d) ? l = a.a.g.Oe(d, h) : l = a.a.g.Pe(d, h);
+ f = d.b.a + d.d.b + l - h.b.a;
+ f = $wnd.Math.ceil(f);
+ f = $wnd.Math.max(0, f);
+ if (vgc(d, h)) {
+ g = nGb(new pGb(), a.d);
+ j = QD($wnd.Math.ceil(h.b.a - d.b.a));
+ b = j - (h.b.a - d.b.a);
+ k = ugc(d).a;
+ c = d;
+ if (!k) {
+ k = ugc(h).a;
+ b = -b;
+ c = h;
+ }
+ if (k) {
+ c.b.a -= b;
+ k.n.a -= b;
+ }
+ AFb(DFb(CFb(EFb(BFb(new FFb(), $wnd.Math.max(0, j)), 1), g), a.c[d.a.d]));
+ AFb(DFb(CFb(EFb(BFb(new FFb(), $wnd.Math.max(0, -j)), 1), g), a.c[h.a.d]));
+ } else {
+ m = 1;
+ (JD(d.g, 145) && JD(h.g, 10) || JD(h.g, 145) && JD(d.g, 10)) && (m = 2);
+ AFb(DFb(CFb(EFb(BFb(new FFb(), QD(f)), m), a.c[d.a.d]), a.c[h.a.d]));
+ }
+ }
+ }
+ }
+ function pEc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ if (c) {
+ d = -1;
+ k = new Bib(b, 0);
+ while (k.b < k.d.gc()) {
+ h = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 10));
+ l = a.c[h.c.p][h.p].a;
+ if (l == null) {
+ g = d + 1;
+ f = new Bib(b, k.b);
+ while (f.b < f.d.gc()) {
+ m = tEc(a, (sCb(f.b < f.d.gc()), BD(f.d.Xb(f.c = f.b++), 10))).a;
+ if (m != null) {
+ g = (uCb(m), m);
+ break;
+ }
+ }
+ l = (d + g) / 2;
+ a.c[h.c.p][h.p].a = l;
+ a.c[h.c.p][h.p].d = (uCb(l), l);
+ a.c[h.c.p][h.p].b = 1;
+ }
+ d = (uCb(l), l);
+ }
+ } else {
+ e = 0;
+ for (j = new olb(b); j.a < j.c.c.length; ) {
+ h = BD(mlb(j), 10);
+ a.c[h.c.p][h.p].a != null && (e = $wnd.Math.max(e, Edb(a.c[h.c.p][h.p].a)));
+ }
+ e += 2;
+ for (i = new olb(b); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ if (a.c[h.c.p][h.p].a == null) {
+ l = Cub(a.i, 24) * lke * e - 1;
+ a.c[h.c.p][h.p].a = l;
+ a.c[h.c.p][h.p].d = l;
+ a.c[h.c.p][h.p].b = 1;
+ }
+ }
+ }
+ }
+ function CZd() {
+ rEd(b5, new i$d());
+ rEd(a5, new P$d());
+ rEd(c5, new u_d());
+ rEd(d5, new M_d());
+ rEd(f5, new P_d());
+ rEd(h5, new S_d());
+ rEd(g5, new V_d());
+ rEd(i5, new Y_d());
+ rEd(k5, new GZd());
+ rEd(l5, new JZd());
+ rEd(m5, new MZd());
+ rEd(n5, new PZd());
+ rEd(o5, new SZd());
+ rEd(p5, new VZd());
+ rEd(q5, new YZd());
+ rEd(t5, new _Zd());
+ rEd(v5, new c$d());
+ rEd(x6, new f$d());
+ rEd(j5, new l$d());
+ rEd(u5, new o$d());
+ rEd(wI, new r$d());
+ rEd(GC(SD, 1), new u$d());
+ rEd(xI, new x$d());
+ rEd(yI, new A$d());
+ rEd($J, new D$d());
+ rEd(O4, new G$d());
+ rEd(BI, new J$d());
+ rEd(T4, new M$d());
+ rEd(U4, new S$d());
+ rEd(O9, new V$d());
+ rEd(E9, new Y$d());
+ rEd(FI, new _$d());
+ rEd(JI, new c_d());
+ rEd(AI, new f_d());
+ rEd(MI, new i_d());
+ rEd(DK, new l_d());
+ rEd(v8, new o_d());
+ rEd(u8, new r_d());
+ rEd(UI, new x_d());
+ rEd(ZI, new A_d());
+ rEd(X4, new D_d());
+ rEd(V4, new G_d());
+ }
+ function hA(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ !c && (c = TA(b.q.getTimezoneOffset()));
+ e = (b.q.getTimezoneOffset() - c.a) * 6e4;
+ h = new gB(wbb(Cbb(b.q.getTime()), e));
+ i = h;
+ if (h.q.getTimezoneOffset() != b.q.getTimezoneOffset()) {
+ e > 0 ? e -= 864e5 : e += 864e5;
+ i = new gB(wbb(Cbb(b.q.getTime()), e));
+ }
+ k = new Vfb();
+ j = a.a.length;
+ for (f = 0; f < j; ) {
+ d = bfb(a.a, f);
+ if (d >= 97 && d <= 122 || d >= 65 && d <= 90) {
+ for (g = f + 1; g < j && bfb(a.a, g) == d; ++g)
+ ;
+ vA(k, d, g - f, h, i, c);
+ f = g;
+ } else if (d == 39) {
+ ++f;
+ if (f < j && bfb(a.a, f) == 39) {
+ k.a += "'";
+ ++f;
+ continue;
+ }
+ l = false;
+ while (!l) {
+ g = f;
+ while (g < j && bfb(a.a, g) != 39) {
+ ++g;
+ }
+ if (g >= j) {
+ throw vbb(new Wdb("Missing trailing '"));
+ }
+ g + 1 < j && bfb(a.a, g + 1) == 39 ? ++g : l = true;
+ Qfb(k, qfb(a.a, f, g));
+ f = g + 1;
+ }
+ } else {
+ k.a += String.fromCharCode(d);
+ ++f;
+ }
+ }
+ return k.a;
+ }
+ function MEc(a) {
+ var b, c, d, e, f, g, h, i;
+ b = null;
+ for (d = new olb(a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 233);
+ Edb(REc(c.g, c.d[0]).a);
+ c.b = null;
+ if (!!c.e && c.e.gc() > 0 && c.c == 0) {
+ !b && (b = new Rkb());
+ b.c[b.c.length] = c;
+ }
+ }
+ if (b) {
+ while (b.c.length != 0) {
+ c = BD(Kkb(b, 0), 233);
+ if (!!c.b && c.b.c.length > 0) {
+ for (f = (!c.b && (c.b = new Rkb()), new olb(c.b)); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 233);
+ if (Gdb(REc(e.g, e.d[0]).a) == Gdb(REc(c.g, c.d[0]).a)) {
+ if (Jkb(a, e, 0) > Jkb(a, c, 0)) {
+ return new vgd(e, c);
+ }
+ } else if (Edb(REc(e.g, e.d[0]).a) > Edb(REc(c.g, c.d[0]).a)) {
+ return new vgd(e, c);
+ }
+ }
+ }
+ for (h = (!c.e && (c.e = new Rkb()), c.e).Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 233);
+ i = (!g.b && (g.b = new Rkb()), g.b);
+ wCb(0, i.c.length);
+ aCb(i.c, 0, c);
+ g.c == i.c.length && (b.c[b.c.length] = g, true);
+ }
+ }
+ }
+ return null;
+ }
+ function wlb(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ if (a == null) {
+ return Xhe;
+ }
+ i = b.a.zc(a, b);
+ if (i != null) {
+ return "[...]";
+ }
+ c = new xwb(She, "[", "]");
+ for (e = a, f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ if (d != null && (rb(d).i & 4) != 0) {
+ if (Array.isArray(d) && (k = HC(d), !(k >= 14 && k <= 16))) {
+ if (b.a._b(d)) {
+ !c.a ? c.a = new Wfb(c.d) : Qfb(c.a, c.b);
+ Nfb(c.a, "[...]");
+ } else {
+ h = CD(d);
+ j = new Vqb(b);
+ uwb(c, wlb(h, j));
+ }
+ } else
+ JD(d, 177) ? uwb(c, Xlb(BD(d, 177))) : JD(d, 190) ? uwb(c, Qlb(BD(d, 190))) : JD(d, 195) ? uwb(c, Rlb(BD(d, 195))) : JD(d, 2012) ? uwb(c, Wlb(BD(d, 2012))) : JD(d, 48) ? uwb(c, Ulb(BD(d, 48))) : JD(d, 364) ? uwb(c, Vlb(BD(d, 364))) : JD(d, 832) ? uwb(c, Tlb(BD(d, 832))) : JD(d, 104) && uwb(c, Slb(BD(d, 104)));
+ } else {
+ uwb(c, d == null ? Xhe : fcb(d));
+ }
+ }
+ return !c.a ? c.c : c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e);
+ }
+ function xQb(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ h = itd(b, false, false);
+ r = ofd(h);
+ d && (r = w7c(r));
+ t = Edb(ED(hkd(b, (CPb(), vPb))));
+ q = (sCb(r.b != 0), BD(r.a.a.c, 8));
+ l = BD(Ut(r, 1), 8);
+ if (r.b > 2) {
+ k = new Rkb();
+ Gkb(k, new Jib(r, 1, r.b));
+ f = sQb(k, t + a.a);
+ s = new XOb(f);
+ tNb(s, b);
+ c.c[c.c.length] = s;
+ } else {
+ d ? s = BD(Ohb(a.b, jtd(b)), 266) : s = BD(Ohb(a.b, ltd(b)), 266);
+ }
+ i = jtd(b);
+ d && (i = ltd(b));
+ g = zQb(q, i);
+ j = t + a.a;
+ if (g.a) {
+ j += $wnd.Math.abs(q.b - l.b);
+ p = new f7c(l.a, (l.b + q.b) / 2);
+ } else {
+ j += $wnd.Math.abs(q.a - l.a);
+ p = new f7c((l.a + q.a) / 2, l.b);
+ }
+ d ? Rhb(a.d, b, new ZOb(s, g, p, j)) : Rhb(a.c, b, new ZOb(s, g, p, j));
+ Rhb(a.b, b, s);
+ o2 = (!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n);
+ for (n = new Fyd(o2); n.e != n.i.gc(); ) {
+ m = BD(Dyd(n), 137);
+ e = wQb(a, m, true, 0, 0);
+ c.c[c.c.length] = e;
+ }
+ }
+ function wPc(a) {
+ var b, c, d, e, f, g, h, i, j, k;
+ j = new Rkb();
+ h = new Rkb();
+ for (g = new olb(a); g.a < g.c.c.length; ) {
+ e = BD(mlb(g), 112);
+ pOc(e, e.f.c.length);
+ qOc(e, e.k.c.length);
+ e.d == 0 && (j.c[j.c.length] = e, true);
+ e.i == 0 && e.e.b == 0 && (h.c[h.c.length] = e, true);
+ }
+ d = -1;
+ while (j.c.length != 0) {
+ e = BD(Kkb(j, 0), 112);
+ for (c = new olb(e.k); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 129);
+ k = b.b;
+ rOc(k, $wnd.Math.max(k.o, e.o + 1));
+ d = $wnd.Math.max(d, k.o);
+ pOc(k, k.d - 1);
+ k.d == 0 && (j.c[j.c.length] = k, true);
+ }
+ }
+ if (d > -1) {
+ for (f = new olb(h); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 112);
+ e.o = d;
+ }
+ while (h.c.length != 0) {
+ e = BD(Kkb(h, 0), 112);
+ for (c = new olb(e.f); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 129);
+ i = b.a;
+ if (i.e.b > 0) {
+ continue;
+ }
+ rOc(i, $wnd.Math.min(i.o, e.o - 1));
+ qOc(i, i.i - 1);
+ i.i == 0 && (h.c[h.c.length] = i, true);
+ }
+ }
+ }
+ }
+ function QQd(a, b, c) {
+ var d, e, f, g, h, i, j;
+ j = a.c;
+ !b && (b = FQd);
+ a.c = b;
+ if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
+ i = new nSd(a, 1, 2, j, a.c);
+ !c ? c = i : c.Ei(i);
+ }
+ if (j != b) {
+ if (JD(a.Cb, 284)) {
+ if (a.Db >> 16 == -10) {
+ c = BD(a.Cb, 284).nk(b, c);
+ } else if (a.Db >> 16 == -15) {
+ !b && (b = (jGd(), YFd));
+ !j && (j = (jGd(), YFd));
+ if (a.Cb.nh()) {
+ i = new pSd(a.Cb, 1, 13, j, b, HLd(QSd(BD(a.Cb, 59)), a), false);
+ !c ? c = i : c.Ei(i);
+ }
+ }
+ } else if (JD(a.Cb, 88)) {
+ if (a.Db >> 16 == -23) {
+ JD(b, 88) || (b = (jGd(), _Fd));
+ JD(j, 88) || (j = (jGd(), _Fd));
+ if (a.Cb.nh()) {
+ i = new pSd(a.Cb, 1, 10, j, b, HLd(VKd(BD(a.Cb, 26)), a), false);
+ !c ? c = i : c.Ei(i);
+ }
+ }
+ } else if (JD(a.Cb, 444)) {
+ h = BD(a.Cb, 836);
+ g = (!h.b && (h.b = new RYd(new NYd())), h.b);
+ for (f = (d = new nib(new eib(g.a).a), new ZYd(d)); f.a.b; ) {
+ e = BD(lib(f.a).cd(), 87);
+ c = QQd(e, MQd(e, h), c);
+ }
+ }
+ }
+ return c;
+ }
+ function O1b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ g = Ccb(DD(hkd(a, (Nyc(), fxc))));
+ m = BD(hkd(a, Yxc), 21);
+ i = false;
+ j = false;
+ l = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c));
+ while (l.e != l.i.gc() && (!i || !j)) {
+ f = BD(Dyd(l), 118);
+ h = 0;
+ for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!f.d && (f.d = new y5d(B2, f, 8, 5)), f.d), (!f.e && (f.e = new y5d(B2, f, 7, 4)), f.e)]))); Qr(e); ) {
+ d = BD(Rr(e), 79);
+ k = g && Qld(d) && Ccb(DD(hkd(d, gxc)));
+ c = ELd((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), f) ? a == Xod(atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))) : a == Xod(atd(BD(qud((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), 0), 82)));
+ if (k || c) {
+ ++h;
+ if (h > 1) {
+ break;
+ }
+ }
+ }
+ h > 0 ? i = true : m.Hc((rcd(), ncd)) && (!f.n && (f.n = new cUd(D2, f, 1, 7)), f.n).i > 0 && (i = true);
+ h > 1 && (j = true);
+ }
+ i && b.Fc((Orc(), Hrc));
+ j && b.Fc((Orc(), Irc));
+ }
+ function zfd(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m;
+ m = BD(hkd(a, (Y9c(), Y8c)), 21);
+ if (m.dc()) {
+ return null;
+ }
+ h = 0;
+ g = 0;
+ if (m.Hc((tdd(), rdd))) {
+ k = BD(hkd(a, t9c), 98);
+ d = 2;
+ c = 2;
+ e = 2;
+ f = 2;
+ b = !Xod(a) ? BD(hkd(a, z8c), 103) : BD(hkd(Xod(a), z8c), 103);
+ for (j = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); j.e != j.i.gc(); ) {
+ i = BD(Dyd(j), 118);
+ l = BD(hkd(i, A9c), 61);
+ if (l == (Ucd(), Scd)) {
+ l = lfd(i, b);
+ jkd(i, A9c, l);
+ }
+ if (k == (dcd(), $bd)) {
+ switch (l.g) {
+ case 1:
+ d = $wnd.Math.max(d, i.i + i.g);
+ break;
+ case 2:
+ c = $wnd.Math.max(c, i.j + i.f);
+ break;
+ case 3:
+ e = $wnd.Math.max(e, i.i + i.g);
+ break;
+ case 4:
+ f = $wnd.Math.max(f, i.j + i.f);
+ }
+ } else {
+ switch (l.g) {
+ case 1:
+ d += i.g + 2;
+ break;
+ case 2:
+ c += i.f + 2;
+ break;
+ case 3:
+ e += i.g + 2;
+ break;
+ case 4:
+ f += i.f + 2;
+ }
+ }
+ }
+ h = $wnd.Math.max(d, e);
+ g = $wnd.Math.max(c, f);
+ }
+ return Afd(a, h, g, true, true);
+ }
+ function lnc(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ s = BD(GAb(VAb(JAb(new YAb(null, new Kub(b.d, 16)), new pnc(c)), new rnc(c)), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
+ l = Ohe;
+ k = Rie;
+ for (i = new olb(b.b.j); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 11);
+ if (h.j == c) {
+ l = $wnd.Math.min(l, h.p);
+ k = $wnd.Math.max(k, h.p);
+ }
+ }
+ if (l == Ohe) {
+ for (g = 0; g < s.gc(); g++) {
+ ojc(BD(s.Xb(g), 101), c, g);
+ }
+ } else {
+ t = KC(WD, oje, 25, e.length, 15, 1);
+ Elb(t, t.length);
+ for (r = s.Kc(); r.Ob(); ) {
+ q = BD(r.Pb(), 101);
+ f = BD(Ohb(a.b, q), 177);
+ j = 0;
+ for (p = l; p <= k; p++) {
+ f[p] && (j = $wnd.Math.max(j, d[p]));
+ }
+ if (q.i) {
+ n = q.i.c;
+ u = new Tqb();
+ for (m = 0; m < e.length; m++) {
+ e[n][m] && Qqb(u, meb(t[m]));
+ }
+ while (Rqb(u, meb(j))) {
+ ++j;
+ }
+ }
+ ojc(q, c, j);
+ for (o2 = l; o2 <= k; o2++) {
+ f[o2] && (d[o2] = j + 1);
+ }
+ !!q.i && (t[q.i.c] = j);
+ }
+ }
+ }
+ function YJc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ e = null;
+ for (d = new olb(b.a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 10);
+ bKc(c) ? f = (h = nGb(oGb(new pGb(), c), a.f), i = nGb(oGb(new pGb(), c), a.f), j = new rKc(c, true, h, i), k = c.o.b, l = (Izc(), (!c.q ? (mmb(), mmb(), kmb) : c.q)._b((Nyc(), Cxc)) ? m = BD(vNb(c, Cxc), 197) : m = BD(vNb(Q_b(c), Dxc), 197), m), n = 1e4, l == Ezc && (n = 1), o2 = AFb(DFb(CFb(BFb(EFb(new FFb(), n), QD($wnd.Math.ceil(k))), h), i)), l == Fzc && Qqb(a.d, o2), ZJc(a, Su(V_b(c, (Ucd(), Tcd))), j), ZJc(a, V_b(c, zcd), j), j) : f = (p = nGb(oGb(new pGb(), c), a.f), MAb(JAb(new YAb(null, new Kub(c.j, 16)), new EKc()), new GKc(a, p)), new rKc(c, false, p, p));
+ a.i[c.p] = f;
+ if (e) {
+ g = e.c.d.a + jBc(a.n, e.c, c) + c.d.d;
+ e.b || (g += e.c.o.b);
+ AFb(DFb(CFb(EFb(BFb(new FFb(), QD($wnd.Math.ceil(g))), 0), e.d), f.a));
+ }
+ e = f;
+ }
+ }
+ function s9b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ Odd(b, "Label dummy insertions", 1);
+ l = new Rkb();
+ g = Edb(ED(vNb(a, (Nyc(), nyc))));
+ j = Edb(ED(vNb(a, ryc)));
+ k = BD(vNb(a, Lwc), 103);
+ for (n = new olb(a.a); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 10);
+ for (f = new Sr(ur(U_b(m).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ if (e.c.i != e.d.i && Lq(e.b, p9b)) {
+ p = t9b(e);
+ o2 = Pu(e.b.c.length);
+ c = r9b(a, e, p, o2);
+ l.c[l.c.length] = c;
+ d = c.o;
+ h = new Bib(e.b, 0);
+ while (h.b < h.d.gc()) {
+ i = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 70));
+ if (PD(vNb(i, Qwc)) === PD((qad(), nad))) {
+ if (k == (ead(), dad) || k == _9c) {
+ d.a += i.o.a + j;
+ d.b = $wnd.Math.max(d.b, i.o.b);
+ } else {
+ d.a = $wnd.Math.max(d.a, i.o.a);
+ d.b += i.o.b + j;
+ }
+ o2.c[o2.c.length] = i;
+ uib(h);
+ }
+ }
+ if (k == (ead(), dad) || k == _9c) {
+ d.a -= j;
+ d.b += g + p;
+ } else {
+ d.b += g - j + p;
+ }
+ }
+ }
+ }
+ Gkb(a.a, l);
+ Qdd(b);
+ }
+ function eYb(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n;
+ f = new qYb(b);
+ l = _Xb(a, b, f);
+ n = $wnd.Math.max(Edb(ED(vNb(b, (Nyc(), Zwc)))), 1);
+ for (k = new olb(l.a); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 46);
+ i = dYb(BD(j.a, 8), BD(j.b, 8), n);
+ o = true;
+ o = o & iYb(c, new f7c(i.c, i.d));
+ o = o & iYb(c, O6c(new f7c(i.c, i.d), i.b, 0));
+ o = o & iYb(c, O6c(new f7c(i.c, i.d), 0, i.a));
+ o & iYb(c, O6c(new f7c(i.c, i.d), i.b, i.a));
+ }
+ m = f.d;
+ h = dYb(BD(l.b.a, 8), BD(l.b.b, 8), n);
+ if (m == (Ucd(), Tcd) || m == zcd) {
+ d.c[m.g] = $wnd.Math.min(d.c[m.g], h.d);
+ d.b[m.g] = $wnd.Math.max(d.b[m.g], h.d + h.a);
+ } else {
+ d.c[m.g] = $wnd.Math.min(d.c[m.g], h.c);
+ d.b[m.g] = $wnd.Math.max(d.b[m.g], h.c + h.b);
+ }
+ e = Qje;
+ g = f.c.i.d;
+ switch (m.g) {
+ case 4:
+ e = g.c;
+ break;
+ case 2:
+ e = g.b;
+ break;
+ case 1:
+ e = g.a;
+ break;
+ case 3:
+ e = g.d;
+ }
+ d.a[m.g] = $wnd.Math.max(d.a[m.g], e);
+ return f;
+ }
+ function eKd(b) {
+ var c, d, e, f;
+ d = b.D != null ? b.D : b.B;
+ c = hfb(d, wfb(91));
+ if (c != -1) {
+ e = d.substr(0, c);
+ f = new Hfb();
+ do
+ f.a += "[";
+ while ((c = gfb(d, 91, ++c)) != -1);
+ if (dfb(e, Khe))
+ f.a += "Z";
+ else if (dfb(e, Eve))
+ f.a += "B";
+ else if (dfb(e, Fve))
+ f.a += "C";
+ else if (dfb(e, Gve))
+ f.a += "D";
+ else if (dfb(e, Hve))
+ f.a += "F";
+ else if (dfb(e, Ive))
+ f.a += "I";
+ else if (dfb(e, Jve))
+ f.a += "J";
+ else if (dfb(e, Kve))
+ f.a += "S";
+ else {
+ f.a += "L";
+ f.a += "" + e;
+ f.a += ";";
+ }
+ try {
+ return null;
+ } catch (a) {
+ a = ubb(a);
+ if (!JD(a, 60))
+ throw vbb(a);
+ }
+ } else if (hfb(d, wfb(46)) == -1) {
+ if (dfb(d, Khe))
+ return sbb;
+ else if (dfb(d, Eve))
+ return SD;
+ else if (dfb(d, Fve))
+ return TD;
+ else if (dfb(d, Gve))
+ return UD;
+ else if (dfb(d, Hve))
+ return VD;
+ else if (dfb(d, Ive))
+ return WD;
+ else if (dfb(d, Jve))
+ return XD;
+ else if (dfb(d, Kve))
+ return rbb;
+ }
+ return null;
+ }
+ function $1b(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ j = new b0b(c);
+ tNb(j, b);
+ yNb(j, (wtc(), $sc), b);
+ j.o.a = b.g;
+ j.o.b = b.f;
+ j.n.a = b.i;
+ j.n.b = b.j;
+ Ekb(c.a, j);
+ Rhb(a.a, b, j);
+ ((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i != 0 || Ccb(DD(hkd(b, (Nyc(), fxc))))) && yNb(j, wsc, (Bcb(), true));
+ i = BD(vNb(c, Ksc), 21);
+ k = BD(vNb(j, (Nyc(), Vxc)), 98);
+ k == (dcd(), ccd) ? yNb(j, Vxc, bcd) : k != bcd && i.Fc((Orc(), Krc));
+ d = BD(vNb(c, Lwc), 103);
+ for (h = new Fyd((!b.c && (b.c = new cUd(F2, b, 9, 9)), b.c)); h.e != h.i.gc(); ) {
+ g = BD(Dyd(h), 118);
+ Ccb(DD(hkd(g, Jxc))) || _1b(a, g, j, i, d, k);
+ }
+ for (f = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); f.e != f.i.gc(); ) {
+ e = BD(Dyd(f), 137);
+ !Ccb(DD(hkd(e, Jxc))) && !!e.a && Ekb(j.b, Z1b(e));
+ }
+ Ccb(DD(vNb(j, pwc))) && i.Fc((Orc(), Frc));
+ if (Ccb(DD(vNb(j, exc)))) {
+ i.Fc((Orc(), Jrc));
+ i.Fc(Irc);
+ yNb(j, Vxc, bcd);
+ }
+ return j;
+ }
+ function F4b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D;
+ h = BD(Ohb(b.c, a), 459);
+ s = b.a.c;
+ i = b.a.c + b.a.b;
+ C = h.f;
+ D = h.a;
+ g = C < D;
+ p = new f7c(s, C);
+ t = new f7c(i, D);
+ e = (s + i) / 2;
+ q = new f7c(e, C);
+ u = new f7c(e, D);
+ f = G4b(a, C, D);
+ w = A0b(b.B);
+ A = new f7c(e, f);
+ B = A0b(b.D);
+ c = j6c(OC(GC(m1, 1), nie, 8, 0, [w, A, B]));
+ n = false;
+ r = b.B.i;
+ if (!!r && !!r.c && h.d) {
+ j = g && r.p < r.c.a.c.length - 1 || !g && r.p > 0;
+ if (j) {
+ if (j) {
+ m = r.p;
+ g ? ++m : --m;
+ l = BD(Ikb(r.c.a, m), 10);
+ d = I4b(l);
+ n = !(s6c(d, w, c[0]) || n6c(d, w, c[0]));
+ }
+ } else {
+ n = true;
+ }
+ }
+ o2 = false;
+ v = b.D.i;
+ if (!!v && !!v.c && h.e) {
+ k = g && v.p > 0 || !g && v.p < v.c.a.c.length - 1;
+ if (k) {
+ m = v.p;
+ g ? --m : ++m;
+ l = BD(Ikb(v.c.a, m), 10);
+ d = I4b(l);
+ o2 = !(s6c(d, c[0], B) || n6c(d, c[0], B));
+ } else {
+ o2 = true;
+ }
+ }
+ n && o2 && Dsb(a.a, A);
+ n || n7c(a.a, OC(GC(m1, 1), nie, 8, 0, [p, q]));
+ o2 || n7c(a.a, OC(GC(m1, 1), nie, 8, 0, [u, t]));
+ }
+ function yfd(a, b) {
+ var c, d, e, f, g, h, i, j;
+ if (JD(a.Ug(), 160)) {
+ yfd(BD(a.Ug(), 160), b);
+ b.a += " > ";
+ } else {
+ b.a += "Root ";
+ }
+ c = a.Tg().zb;
+ dfb(c.substr(0, 3), "Elk") ? Qfb(b, c.substr(3)) : (b.a += "" + c, b);
+ e = a.zg();
+ if (e) {
+ Qfb((b.a += " ", b), e);
+ return;
+ }
+ if (JD(a, 354)) {
+ j = BD(a, 137).a;
+ if (j) {
+ Qfb((b.a += " ", b), j);
+ return;
+ }
+ }
+ for (g = new Fyd(a.Ag()); g.e != g.i.gc(); ) {
+ f = BD(Dyd(g), 137);
+ j = f.a;
+ if (j) {
+ Qfb((b.a += " ", b), j);
+ return;
+ }
+ }
+ if (JD(a, 352)) {
+ d = BD(a, 79);
+ !d.b && (d.b = new y5d(z2, d, 4, 7));
+ if (d.b.i != 0 && (!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c.i != 0)) {
+ b.a += " (";
+ h = new Oyd((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b));
+ while (h.e != h.i.gc()) {
+ h.e > 0 && (b.a += She, b);
+ yfd(BD(Dyd(h), 160), b);
+ }
+ b.a += gne;
+ i = new Oyd((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c));
+ while (i.e != i.i.gc()) {
+ i.e > 0 && (b.a += She, b);
+ yfd(BD(Dyd(i), 160), b);
+ }
+ b.a += ")";
+ }
+ }
+ }
+ function y2b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n;
+ f = BD(vNb(a, (wtc(), $sc)), 79);
+ if (!f) {
+ return;
+ }
+ d = a.a;
+ e = new g7c(c);
+ P6c(e, C2b(a));
+ if (f_b(a.d.i, a.c.i)) {
+ m = a.c;
+ l = l7c(OC(GC(m1, 1), nie, 8, 0, [m.n, m.a]));
+ c7c(l, c);
+ } else {
+ l = A0b(a.c);
+ }
+ Gsb(d, l, d.a, d.a.a);
+ n = A0b(a.d);
+ vNb(a, utc) != null && P6c(n, BD(vNb(a, utc), 8));
+ Gsb(d, n, d.c.b, d.c);
+ q7c(d, e);
+ g = itd(f, true, true);
+ kmd(g, BD(qud((!f.b && (f.b = new y5d(z2, f, 4, 7)), f.b), 0), 82));
+ lmd(g, BD(qud((!f.c && (f.c = new y5d(z2, f, 5, 8)), f.c), 0), 82));
+ ifd(d, g);
+ for (k = new olb(a.b); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 70);
+ h = BD(vNb(j, $sc), 137);
+ cld(h, j.o.a);
+ ald(h, j.o.b);
+ bld(h, j.n.a + e.a, j.n.b + e.b);
+ jkd(h, (I9b(), H9b), DD(vNb(j, H9b)));
+ }
+ i = BD(vNb(a, (Nyc(), jxc)), 74);
+ if (i) {
+ q7c(i, e);
+ jkd(f, jxc, i);
+ } else {
+ jkd(f, jxc, null);
+ }
+ b == (Aad(), yad) ? jkd(f, Swc, yad) : jkd(f, Swc, null);
+ }
+ function mJc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s;
+ n = b.c.length;
+ m = 0;
+ for (l = new olb(a.b); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 29);
+ r = k.a;
+ if (r.c.length == 0) {
+ continue;
+ }
+ q = new olb(r);
+ j = 0;
+ s = null;
+ e = BD(mlb(q), 10);
+ f = null;
+ while (e) {
+ f = BD(Ikb(b, e.p), 257);
+ if (f.c >= 0) {
+ i = null;
+ h = new Bib(k.a, j + 1);
+ while (h.b < h.d.gc()) {
+ g = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 10));
+ i = BD(Ikb(b, g.p), 257);
+ if (i.d == f.d && i.c < f.c) {
+ break;
+ } else {
+ i = null;
+ }
+ }
+ if (i) {
+ if (s) {
+ Nkb(d, e.p, meb(BD(Ikb(d, e.p), 19).a - 1));
+ BD(Ikb(c, s.p), 15).Mc(f);
+ }
+ f = yJc(f, e, n++);
+ b.c[b.c.length] = f;
+ Ekb(c, new Rkb());
+ if (s) {
+ BD(Ikb(c, s.p), 15).Fc(f);
+ Ekb(d, meb(1));
+ } else {
+ Ekb(d, meb(0));
+ }
+ }
+ }
+ o2 = null;
+ if (q.a < q.c.c.length) {
+ o2 = BD(mlb(q), 10);
+ p = BD(Ikb(b, o2.p), 257);
+ BD(Ikb(c, e.p), 15).Fc(p);
+ Nkb(d, o2.p, meb(BD(Ikb(d, o2.p), 19).a + 1));
+ }
+ f.d = m;
+ f.c = j++;
+ s = e;
+ e = o2;
+ }
+ ++m;
+ }
+ }
+ function u6c(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ i = a;
+ k = c7c(new f7c(b.a, b.b), a);
+ j = c;
+ l = c7c(new f7c(d.a, d.b), c);
+ m = i.a;
+ q = i.b;
+ o2 = j.a;
+ s = j.b;
+ n = k.a;
+ r = k.b;
+ p = l.a;
+ t = l.b;
+ e = p * r - n * t;
+ Iy();
+ My(Jqe);
+ if ($wnd.Math.abs(0 - e) <= Jqe || 0 == e || isNaN(0) && isNaN(e)) {
+ return false;
+ }
+ g = 1 / e * ((m - o2) * r - (q - s) * n);
+ h = 1 / e * -(-(m - o2) * t + (q - s) * p);
+ f = (My(Jqe), ($wnd.Math.abs(0 - g) <= Jqe || 0 == g || isNaN(0) && isNaN(g) ? 0 : 0 < g ? -1 : 0 > g ? 1 : Ny(isNaN(0), isNaN(g))) < 0 && (My(Jqe), ($wnd.Math.abs(g - 1) <= Jqe || g == 1 || isNaN(g) && isNaN(1) ? 0 : g < 1 ? -1 : g > 1 ? 1 : Ny(isNaN(g), isNaN(1))) < 0) && (My(Jqe), ($wnd.Math.abs(0 - h) <= Jqe || 0 == h || isNaN(0) && isNaN(h) ? 0 : 0 < h ? -1 : 0 > h ? 1 : Ny(isNaN(0), isNaN(h))) < 0) && (My(Jqe), ($wnd.Math.abs(h - 1) <= Jqe || h == 1 || isNaN(h) && isNaN(1) ? 0 : h < 1 ? -1 : h > 1 ? 1 : Ny(isNaN(h), isNaN(1))) < 0));
+ return f;
+ }
+ function z6d(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w;
+ for (l = new usb(new nsb(a)); l.b != l.c.a.d; ) {
+ k = tsb(l);
+ h = BD(k.d, 56);
+ b = BD(k.e, 56);
+ g = h.Tg();
+ for (p = 0, u = (g.i == null && TKd(g), g.i).length; p < u; ++p) {
+ j = (f = (g.i == null && TKd(g), g.i), p >= 0 && p < f.length ? f[p] : null);
+ if (j.Ij() && !j.Jj()) {
+ if (JD(j, 99)) {
+ i = BD(j, 18);
+ (i.Bb & ote) == 0 && (w = zUd(i), !(!!w && (w.Bb & ote) != 0)) && y6d(a, i, h, b);
+ } else {
+ Q6d();
+ if (BD(j, 66).Oj()) {
+ c = (v = j, BD(!v ? null : BD(b, 49).xh(v), 153));
+ if (c) {
+ n = BD(h.ah(j), 153);
+ d = c.gc();
+ for (q = 0, o2 = n.gc(); q < o2; ++q) {
+ m = n.il(q);
+ if (JD(m, 99)) {
+ t = n.jl(q);
+ e = Wrb(a, t);
+ if (e == null && t != null) {
+ s = BD(m, 18);
+ if (!a.b || (s.Bb & ote) != 0 || !!zUd(s)) {
+ continue;
+ }
+ e = t;
+ }
+ if (!c.dl(m, e)) {
+ for (r = 0; r < d; ++r) {
+ if (c.il(r) == m && PD(c.jl(r)) === PD(e)) {
+ c.ii(c.gc() - 1, r);
+ --d;
+ break;
+ }
+ }
+ }
+ } else {
+ c.dl(n.il(q), n.jl(q));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ function CZc(a, b, c, d, e, f, g) {
+ var h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ r = xZc(b, c, a.g);
+ e.n && e.n && !!f && Tdd(e, i6d(f), (pgd(), mgd));
+ if (a.b) {
+ for (q = 0; q < r.c.length; q++) {
+ l = (tCb(q, r.c.length), BD(r.c[q], 200));
+ if (q != 0) {
+ n = (tCb(q - 1, r.c.length), BD(r.c[q - 1], 200));
+ w$c(l, n.f + n.b + a.g);
+ }
+ tZc(q, r, c, a.g);
+ AZc(a, l);
+ e.n && !!f && Tdd(e, i6d(f), (pgd(), mgd));
+ }
+ } else {
+ for (p = new olb(r); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 200);
+ for (k = new olb(o2.a); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 187);
+ s = new b$c(j.s, j.t, a.g);
+ WZc(s, j);
+ Ekb(o2.d, s);
+ }
+ }
+ }
+ BZc(a, r);
+ e.n && e.n && !!f && Tdd(e, i6d(f), (pgd(), mgd));
+ t = $wnd.Math.max(a.d, d.a - (g.b + g.c));
+ m = $wnd.Math.max(a.c, d.b - (g.d + g.a));
+ h = m - a.c;
+ if (a.e && a.f) {
+ i = t / m;
+ i < a.a ? t = m * a.a : h += t / a.a - m;
+ }
+ a.e && zZc(r, t, h);
+ e.n && e.n && !!f && Tdd(e, i6d(f), (pgd(), mgd));
+ return new d$c(a.a, t, a.c + h, (k$c(), j$c));
+ }
+ function UJc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l;
+ a.j = KC(WD, oje, 25, a.g, 15, 1);
+ a.o = new Rkb();
+ MAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new aLc()), new cLc(a));
+ a.a = KC(sbb, dle, 25, a.b, 16, 1);
+ TAb(new YAb(null, new Kub(a.e.b, 16)), new rLc(a));
+ d = (l = new Rkb(), MAb(JAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new hLc()), new jLc(a)), new lLc(a, l)), l);
+ for (i = new olb(d); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 508);
+ if (h.c.length <= 1) {
+ continue;
+ }
+ if (h.c.length == 2) {
+ uKc(h);
+ bKc((tCb(0, h.c.length), BD(h.c[0], 17)).d.i) || Ekb(a.o, h);
+ continue;
+ }
+ if (tKc(h) || sKc(h, new fLc())) {
+ continue;
+ }
+ j = new olb(h);
+ e = null;
+ while (j.a < j.c.c.length) {
+ b = BD(mlb(j), 17);
+ c = a.c[b.p];
+ !e || j.a >= j.c.c.length ? k = JJc((j0b(), h0b), g0b) : k = JJc((j0b(), g0b), g0b);
+ k *= 2;
+ f = c.a.g;
+ c.a.g = $wnd.Math.max(f, f + (k - f));
+ g = c.b.g;
+ c.b.g = $wnd.Math.max(g, g + (k - g));
+ e = b;
+ }
+ }
+ }
+ function VNc(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v;
+ v = Hx(a);
+ k = new Rkb();
+ h = a.c.length;
+ l = h - 1;
+ m = h + 1;
+ while (v.a.c != 0) {
+ while (c.b != 0) {
+ t = (sCb(c.b != 0), BD(Nsb(c, c.a.a), 112));
+ Jwb(v.a, t) != null;
+ t.g = l--;
+ YNc(t, b, c, d);
+ }
+ while (b.b != 0) {
+ u = (sCb(b.b != 0), BD(Nsb(b, b.a.a), 112));
+ Jwb(v.a, u) != null;
+ u.g = m++;
+ YNc(u, b, c, d);
+ }
+ j = Rie;
+ for (r = (g = new Ywb(new cxb(new Gjb(v.a).a).b), new Njb(g)); sib(r.a.a); ) {
+ q = (f = Wwb(r.a), BD(f.cd(), 112));
+ if (!d && q.b > 0 && q.a <= 0) {
+ k.c = KC(SI, Uhe, 1, 0, 5, 1);
+ k.c[k.c.length] = q;
+ break;
+ }
+ p = q.i - q.d;
+ if (p >= j) {
+ if (p > j) {
+ k.c = KC(SI, Uhe, 1, 0, 5, 1);
+ j = p;
+ }
+ k.c[k.c.length] = q;
+ }
+ }
+ if (k.c.length != 0) {
+ i = BD(Ikb(k, Bub(e, k.c.length)), 112);
+ Jwb(v.a, i) != null;
+ i.g = m++;
+ YNc(i, b, c, d);
+ k.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ }
+ s = a.c.length + 1;
+ for (o2 = new olb(a); o2.a < o2.c.c.length; ) {
+ n = BD(mlb(o2), 112);
+ n.g < h && (n.g = n.g + s);
+ }
+ }
+ function SDb(a, b) {
+ var c;
+ if (a.e) {
+ throw vbb(new Zdb((fdb(TM), Jke + TM.k + Kke)));
+ }
+ if (!lDb(a.a, b)) {
+ throw vbb(new hz(Lke + b + Mke));
+ }
+ if (b == a.d) {
+ return a;
+ }
+ c = a.d;
+ a.d = b;
+ switch (c.g) {
+ case 0:
+ switch (b.g) {
+ case 2:
+ PDb(a);
+ break;
+ case 1:
+ XDb(a);
+ PDb(a);
+ break;
+ case 4:
+ bEb(a);
+ PDb(a);
+ break;
+ case 3:
+ bEb(a);
+ XDb(a);
+ PDb(a);
+ }
+ break;
+ case 2:
+ switch (b.g) {
+ case 1:
+ XDb(a);
+ YDb(a);
+ break;
+ case 4:
+ bEb(a);
+ PDb(a);
+ break;
+ case 3:
+ bEb(a);
+ XDb(a);
+ PDb(a);
+ }
+ break;
+ case 1:
+ switch (b.g) {
+ case 2:
+ XDb(a);
+ YDb(a);
+ break;
+ case 4:
+ XDb(a);
+ bEb(a);
+ PDb(a);
+ break;
+ case 3:
+ XDb(a);
+ bEb(a);
+ XDb(a);
+ PDb(a);
+ }
+ break;
+ case 4:
+ switch (b.g) {
+ case 2:
+ bEb(a);
+ PDb(a);
+ break;
+ case 1:
+ bEb(a);
+ XDb(a);
+ PDb(a);
+ break;
+ case 3:
+ XDb(a);
+ YDb(a);
+ }
+ break;
+ case 3:
+ switch (b.g) {
+ case 2:
+ XDb(a);
+ bEb(a);
+ PDb(a);
+ break;
+ case 1:
+ XDb(a);
+ bEb(a);
+ XDb(a);
+ PDb(a);
+ break;
+ case 4:
+ XDb(a);
+ YDb(a);
+ }
+ }
+ return a;
+ }
+ function tVb(a, b) {
+ var c;
+ if (a.d) {
+ throw vbb(new Zdb((fdb(LP), Jke + LP.k + Kke)));
+ }
+ if (!cVb(a.a, b)) {
+ throw vbb(new hz(Lke + b + Mke));
+ }
+ if (b == a.c) {
+ return a;
+ }
+ c = a.c;
+ a.c = b;
+ switch (c.g) {
+ case 0:
+ switch (b.g) {
+ case 2:
+ qVb(a);
+ break;
+ case 1:
+ xVb(a);
+ qVb(a);
+ break;
+ case 4:
+ BVb(a);
+ qVb(a);
+ break;
+ case 3:
+ BVb(a);
+ xVb(a);
+ qVb(a);
+ }
+ break;
+ case 2:
+ switch (b.g) {
+ case 1:
+ xVb(a);
+ yVb(a);
+ break;
+ case 4:
+ BVb(a);
+ qVb(a);
+ break;
+ case 3:
+ BVb(a);
+ xVb(a);
+ qVb(a);
+ }
+ break;
+ case 1:
+ switch (b.g) {
+ case 2:
+ xVb(a);
+ yVb(a);
+ break;
+ case 4:
+ xVb(a);
+ BVb(a);
+ qVb(a);
+ break;
+ case 3:
+ xVb(a);
+ BVb(a);
+ xVb(a);
+ qVb(a);
+ }
+ break;
+ case 4:
+ switch (b.g) {
+ case 2:
+ BVb(a);
+ qVb(a);
+ break;
+ case 1:
+ BVb(a);
+ xVb(a);
+ qVb(a);
+ break;
+ case 3:
+ xVb(a);
+ yVb(a);
+ }
+ break;
+ case 3:
+ switch (b.g) {
+ case 2:
+ xVb(a);
+ BVb(a);
+ qVb(a);
+ break;
+ case 1:
+ xVb(a);
+ BVb(a);
+ xVb(a);
+ qVb(a);
+ break;
+ case 4:
+ xVb(a);
+ yVb(a);
+ }
+ }
+ return a;
+ }
+ function UQb(a, b, c) {
+ var d, e, f, g, h, i, j, k;
+ for (i = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); i.e != i.i.gc(); ) {
+ h = BD(Dyd(i), 33);
+ for (e = new Sr(ur(_sd(h).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 79);
+ !d.b && (d.b = new y5d(z2, d, 4, 7));
+ if (!(d.b.i <= 1 && (!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c.i <= 1))) {
+ throw vbb(new z2c("Graph must not contain hyperedges."));
+ }
+ if (!Pld(d) && h != atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))) {
+ j = new gRb();
+ tNb(j, d);
+ yNb(j, (HSb(), FSb), d);
+ dRb(j, BD(Wd(irb(c.f, h)), 144));
+ eRb(j, BD(Ohb(c, atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))), 144));
+ Ekb(b.c, j);
+ for (g = new Fyd((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n)); g.e != g.i.gc(); ) {
+ f = BD(Dyd(g), 137);
+ k = new mRb(j, f.a);
+ tNb(k, f);
+ yNb(k, FSb, f);
+ k.e.a = $wnd.Math.max(f.g, 1);
+ k.e.b = $wnd.Math.max(f.f, 1);
+ lRb(k);
+ Ekb(b.d, k);
+ }
+ }
+ }
+ }
+ }
+ function OGb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ l = new LIb(a);
+ iKb(l, !(b == (ead(), dad) || b == _9c));
+ k = l.a;
+ m = new p0b();
+ for (e = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), g = 0, i = e.length; g < i; ++g) {
+ c = e[g];
+ j = xHb(k, dHb, c);
+ !!j && (m.d = $wnd.Math.max(m.d, j.Re()));
+ }
+ for (d = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), f = 0, h = d.length; f < h; ++f) {
+ c = d[f];
+ j = xHb(k, fHb, c);
+ !!j && (m.a = $wnd.Math.max(m.a, j.Re()));
+ }
+ for (p = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), r = 0, t = p.length; r < t; ++r) {
+ n = p[r];
+ j = xHb(k, n, dHb);
+ !!j && (m.b = $wnd.Math.max(m.b, j.Se()));
+ }
+ for (o2 = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), q = 0, s = o2.length; q < s; ++q) {
+ n = o2[q];
+ j = xHb(k, n, fHb);
+ !!j && (m.c = $wnd.Math.max(m.c, j.Se()));
+ }
+ if (m.d > 0) {
+ m.d += k.n.d;
+ m.d += k.d;
+ }
+ if (m.a > 0) {
+ m.a += k.n.a;
+ m.a += k.d;
+ }
+ if (m.b > 0) {
+ m.b += k.n.b;
+ m.b += k.d;
+ }
+ if (m.c > 0) {
+ m.c += k.n.c;
+ m.c += k.d;
+ }
+ return m;
+ }
+ function d6b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2;
+ m = c.d;
+ l = c.c;
+ f = new f7c(c.f.a + c.d.b + c.d.c, c.f.b + c.d.d + c.d.a);
+ g = f.b;
+ for (j = new olb(a.a); j.a < j.c.c.length; ) {
+ h = BD(mlb(j), 10);
+ if (h.k != (j0b(), e0b)) {
+ continue;
+ }
+ d = BD(vNb(h, (wtc(), Hsc)), 61);
+ e = BD(vNb(h, Isc), 8);
+ k = h.n;
+ switch (d.g) {
+ case 2:
+ k.a = c.f.a + m.c - l.a;
+ break;
+ case 4:
+ k.a = -l.a - m.b;
+ }
+ o2 = 0;
+ switch (d.g) {
+ case 2:
+ case 4:
+ if (b == (dcd(), _bd)) {
+ n = Edb(ED(vNb(h, htc)));
+ k.b = f.b * n - BD(vNb(h, (Nyc(), Txc)), 8).b;
+ o2 = k.b + e.b;
+ M_b(h, false, true);
+ } else if (b == $bd) {
+ k.b = Edb(ED(vNb(h, htc))) - BD(vNb(h, (Nyc(), Txc)), 8).b;
+ o2 = k.b + e.b;
+ M_b(h, false, true);
+ }
+ }
+ g = $wnd.Math.max(g, o2);
+ }
+ c.f.b += g - f.b;
+ for (i = new olb(a.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ if (h.k != (j0b(), e0b)) {
+ continue;
+ }
+ d = BD(vNb(h, (wtc(), Hsc)), 61);
+ k = h.n;
+ switch (d.g) {
+ case 1:
+ k.b = -l.b - m.d;
+ break;
+ case 3:
+ k.b = c.f.b + m.a - l.b;
+ }
+ }
+ }
+ function nRc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B;
+ e = BD(vNb(a, (mTc(), dTc)), 33);
+ j = Ohe;
+ k = Ohe;
+ h = Rie;
+ i = Rie;
+ for (w = Jsb(a.b, 0); w.b != w.d.c; ) {
+ u = BD(Xsb(w), 86);
+ p = u.e;
+ q = u.f;
+ j = $wnd.Math.min(j, p.a - q.a / 2);
+ k = $wnd.Math.min(k, p.b - q.b / 2);
+ h = $wnd.Math.max(h, p.a + q.a / 2);
+ i = $wnd.Math.max(i, p.b + q.b / 2);
+ }
+ o2 = BD(hkd(e, (JTc(), BTc)), 116);
+ n = new f7c(o2.b - j, o2.d - k);
+ for (v = Jsb(a.b, 0); v.b != v.d.c; ) {
+ u = BD(Xsb(v), 86);
+ m = vNb(u, dTc);
+ if (JD(m, 239)) {
+ f = BD(m, 33);
+ l = P6c(u.e, n);
+ bld(f, l.a - f.g / 2, l.b - f.f / 2);
+ }
+ }
+ for (t = Jsb(a.a, 0); t.b != t.d.c; ) {
+ s = BD(Xsb(t), 188);
+ d = BD(vNb(s, dTc), 79);
+ if (d) {
+ b = s.a;
+ r = new g7c(s.b.e);
+ Gsb(b, r, b.a, b.a.a);
+ A = new g7c(s.c.e);
+ Gsb(b, A, b.c.b, b.c);
+ qRc(r, BD(Ut(b, 1), 8), s.b.f);
+ qRc(A, BD(Ut(b, b.b - 2), 8), s.c.f);
+ c = itd(d, true, true);
+ ifd(b, c);
+ }
+ }
+ B = h - j + (o2.b + o2.c);
+ g = i - k + (o2.d + o2.a);
+ Afd(e, B, g, false, false);
+ }
+ function xoc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ l = a.b;
+ k = new Bib(l, 0);
+ Aib(k, new H1b(a));
+ s = false;
+ g = 1;
+ while (k.b < k.d.gc()) {
+ j = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 29));
+ p = (tCb(g, l.c.length), BD(l.c[g], 29));
+ q = Mu(j.a);
+ r = q.c.length;
+ for (o2 = new olb(q); o2.a < o2.c.c.length; ) {
+ m = BD(mlb(o2), 10);
+ $_b(m, p);
+ }
+ if (s) {
+ for (n = av(new ov(q), 0); n.c.Sb(); ) {
+ m = BD(pv(n), 10);
+ for (f = new olb(Mu(R_b(m))); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 17);
+ PZb(e, true);
+ yNb(a, (wtc(), Asc), (Bcb(), true));
+ d = Noc(a, e, r);
+ c = BD(vNb(m, usc), 305);
+ t = BD(Ikb(d, d.c.length - 1), 17);
+ c.k = t.c.i;
+ c.n = t;
+ c.b = e.d.i;
+ c.c = e;
+ }
+ }
+ s = false;
+ } else {
+ if (q.c.length != 0) {
+ b = (tCb(0, q.c.length), BD(q.c[0], 10));
+ if (b.k == (j0b(), d0b)) {
+ s = true;
+ g = -1;
+ }
+ }
+ }
+ ++g;
+ }
+ h = new Bib(a.b, 0);
+ while (h.b < h.d.gc()) {
+ i = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29));
+ i.a.c.length == 0 && uib(h);
+ }
+ }
+ function wKb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ k = BD(BD(Qc(a.r, b), 21), 84);
+ if (k.gc() <= 2 || b == (Ucd(), zcd) || b == (Ucd(), Tcd)) {
+ AKb(a, b);
+ return;
+ }
+ p = a.u.Hc((rcd(), qcd));
+ c = b == (Ucd(), Acd) ? (vLb(), uLb) : (vLb(), rLb);
+ r = b == Acd ? (EIb(), BIb) : (EIb(), DIb);
+ d = dLb(iLb(c), a.s);
+ q = b == Acd ? Pje : Qje;
+ for (j = k.Kc(); j.Ob(); ) {
+ h = BD(j.Pb(), 111);
+ if (!h.c || h.c.d.c.length <= 0) {
+ continue;
+ }
+ o2 = h.b.rf();
+ n = h.e;
+ l = h.c;
+ m = l.i;
+ m.b = (f = l.n, l.e.a + f.b + f.c);
+ m.a = (g = l.n, l.e.b + g.d + g.a);
+ if (p) {
+ m.c = n.a - (e = l.n, l.e.a + e.b + e.c) - a.s;
+ p = false;
+ } else {
+ m.c = n.a + o2.a + a.s;
+ }
+ ytb(r, lle);
+ l.f = r;
+ $Hb(l, (NHb(), MHb));
+ Ekb(d.d, new BLb(m, bLb(d, m)));
+ q = b == Acd ? $wnd.Math.min(q, n.b) : $wnd.Math.max(q, n.b + h.b.rf().b);
+ }
+ q += b == Acd ? -a.t : a.t;
+ cLb((d.e = q, d));
+ for (i = k.Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 111);
+ if (!h.c || h.c.d.c.length <= 0) {
+ continue;
+ }
+ m = h.c.i;
+ m.c -= h.e.a;
+ m.d -= h.e.b;
+ }
+ }
+ function IDc(a, b, c) {
+ var d;
+ Odd(c, "StretchWidth layering", 1);
+ if (b.a.c.length == 0) {
+ Qdd(c);
+ return;
+ }
+ a.c = b;
+ a.t = 0;
+ a.u = 0;
+ a.i = Pje;
+ a.g = Qje;
+ a.d = Edb(ED(vNb(b, (Nyc(), lyc))));
+ CDc(a);
+ DDc(a);
+ ADc(a);
+ HDc(a);
+ BDc(a);
+ a.i = $wnd.Math.max(1, a.i);
+ a.g = $wnd.Math.max(1, a.g);
+ a.d = a.d / a.i;
+ a.f = a.g / a.i;
+ a.s = FDc(a);
+ d = new H1b(a.c);
+ Ekb(a.c.b, d);
+ a.r = Mu(a.p);
+ a.n = tlb(a.k, a.k.length);
+ while (a.r.c.length != 0) {
+ a.o = JDc(a);
+ if (!a.o || EDc(a) && a.b.a.gc() != 0) {
+ KDc(a, d);
+ d = new H1b(a.c);
+ Ekb(a.c.b, d);
+ ye(a.a, a.b);
+ a.b.a.$b();
+ a.t = a.u;
+ a.u = 0;
+ } else {
+ if (EDc(a)) {
+ a.c.b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ d = new H1b(a.c);
+ Ekb(a.c.b, d);
+ a.t = 0;
+ a.u = 0;
+ a.b.a.$b();
+ a.a.a.$b();
+ ++a.f;
+ a.r = Mu(a.p);
+ a.n = tlb(a.k, a.k.length);
+ } else {
+ $_b(a.o, d);
+ Lkb(a.r, a.o);
+ Qqb(a.b, a.o);
+ a.t = a.t - a.k[a.o.p] * a.d + a.j[a.o.p];
+ a.u += a.e[a.o.p] * a.d;
+ }
+ }
+ }
+ b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ smb(b.b);
+ Qdd(c);
+ }
+ function Mgc(a) {
+ var b, c, d, e;
+ MAb(JAb(new YAb(null, new Kub(a.a.b, 16)), new khc()), new mhc());
+ Kgc(a);
+ MAb(JAb(new YAb(null, new Kub(a.a.b, 16)), new ohc()), new qhc());
+ if (a.c == (Aad(), yad)) {
+ MAb(JAb(LAb(new YAb(null, new Kub(new Pib(a.f), 1)), new yhc()), new Ahc()), new Chc(a));
+ MAb(JAb(NAb(LAb(LAb(new YAb(null, new Kub(a.d.b, 16)), new Ghc()), new Ihc()), new Khc()), new Mhc()), new Ohc(a));
+ }
+ e = new f7c(Pje, Pje);
+ b = new f7c(Qje, Qje);
+ for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 57);
+ e.a = $wnd.Math.min(e.a, c.d.c);
+ e.b = $wnd.Math.min(e.b, c.d.d);
+ b.a = $wnd.Math.max(b.a, c.d.c + c.d.b);
+ b.b = $wnd.Math.max(b.b, c.d.d + c.d.a);
+ }
+ P6c(X6c(a.d.c), V6c(new f7c(e.a, e.b)));
+ P6c(X6c(a.d.f), c7c(new f7c(b.a, b.b), e));
+ Lgc(a, e, b);
+ Uhb(a.f);
+ Uhb(a.b);
+ Uhb(a.g);
+ Uhb(a.e);
+ a.a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.a = null;
+ a.d = null;
+ }
+ function vZb(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ e = new Rkb();
+ for (p = new olb(b.a); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 10);
+ n = o2.e;
+ if (n) {
+ d = vZb(a, n, o2);
+ Gkb(e, d);
+ sZb(a, n, o2);
+ if (BD(vNb(n, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
+ s = BD(vNb(o2, (Nyc(), Vxc)), 98);
+ m = BD(vNb(o2, Yxc), 174).Hc((rcd(), ncd));
+ for (r = new olb(o2.j); r.a < r.c.c.length; ) {
+ q = BD(mlb(r), 11);
+ f = BD(Ohb(a.b, q), 10);
+ if (!f) {
+ f = Z$b(q, s, q.j, -(q.e.c.length - q.g.c.length), null, new d7c(), q.o, BD(vNb(n, Lwc), 103), n);
+ yNb(f, $sc, q);
+ Rhb(a.b, q, f);
+ Ekb(n.a, f);
+ }
+ g = BD(Ikb(f.j, 0), 11);
+ for (k = new olb(q.f); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 70);
+ h = new p_b();
+ h.o.a = j.o.a;
+ h.o.b = j.o.b;
+ Ekb(g.f, h);
+ if (!m) {
+ t = q.j;
+ l = 0;
+ tcd(BD(vNb(o2, Yxc), 21)) && (l = mfd(j.n, j.o, q.o, 0, t));
+ s == (dcd(), bcd) || (Ucd(), Ecd).Hc(t) ? h.o.a = l : h.o.b = l;
+ }
+ }
+ }
+ }
+ }
+ }
+ i = new Rkb();
+ rZb(a, b, c, e, i);
+ !!c && tZb(a, b, c, i);
+ return i;
+ }
+ function nEc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ if (a.c[b.c.p][b.p].e) {
+ return;
+ } else {
+ a.c[b.c.p][b.p].e = true;
+ }
+ a.c[b.c.p][b.p].b = 0;
+ a.c[b.c.p][b.p].d = 0;
+ a.c[b.c.p][b.p].a = null;
+ for (k = new olb(b.j); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 11);
+ l = c ? new J0b(j) : new R0b(j);
+ for (i = l.Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 11);
+ g = h.i;
+ if (g.c == b.c) {
+ if (g != b) {
+ nEc(a, g, c);
+ a.c[b.c.p][b.p].b += a.c[g.c.p][g.p].b;
+ a.c[b.c.p][b.p].d += a.c[g.c.p][g.p].d;
+ }
+ } else {
+ a.c[b.c.p][b.p].d += a.g[h.p];
+ ++a.c[b.c.p][b.p].b;
+ }
+ }
+ }
+ f = BD(vNb(b, (wtc(), ssc)), 15);
+ if (f) {
+ for (e = f.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 10);
+ if (b.c == d.c) {
+ nEc(a, d, c);
+ a.c[b.c.p][b.p].b += a.c[d.c.p][d.p].b;
+ a.c[b.c.p][b.p].d += a.c[d.c.p][d.p].d;
+ }
+ }
+ }
+ if (a.c[b.c.p][b.p].b > 0) {
+ a.c[b.c.p][b.p].d += Cub(a.i, 24) * lke * 0.07000000029802322 - 0.03500000014901161;
+ a.c[b.c.p][b.p].a = a.c[b.c.p][b.p].d / a.c[b.c.p][b.p].b;
+ }
+ }
+ function m5b(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ for (o2 = new olb(a); o2.a < o2.c.c.length; ) {
+ n = BD(mlb(o2), 10);
+ n5b(n.n);
+ n5b(n.o);
+ o5b(n.f);
+ r5b(n);
+ t5b(n);
+ for (q = new olb(n.j); q.a < q.c.c.length; ) {
+ p = BD(mlb(q), 11);
+ n5b(p.n);
+ n5b(p.a);
+ n5b(p.o);
+ G0b(p, s5b(p.j));
+ f = BD(vNb(p, (Nyc(), Wxc)), 19);
+ !!f && yNb(p, Wxc, meb(-f.a));
+ for (e = new olb(p.g); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ for (c = Jsb(d.a, 0); c.b != c.d.c; ) {
+ b = BD(Xsb(c), 8);
+ n5b(b);
+ }
+ i = BD(vNb(d, jxc), 74);
+ if (i) {
+ for (h = Jsb(i, 0); h.b != h.d.c; ) {
+ g = BD(Xsb(h), 8);
+ n5b(g);
+ }
+ }
+ for (l = new olb(d.b); l.a < l.c.c.length; ) {
+ j = BD(mlb(l), 70);
+ n5b(j.n);
+ n5b(j.o);
+ }
+ }
+ for (m = new olb(p.f); m.a < m.c.c.length; ) {
+ j = BD(mlb(m), 70);
+ n5b(j.n);
+ n5b(j.o);
+ }
+ }
+ if (n.k == (j0b(), e0b)) {
+ yNb(n, (wtc(), Hsc), s5b(BD(vNb(n, Hsc), 61)));
+ q5b(n);
+ }
+ for (k = new olb(n.b); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 70);
+ r5b(j);
+ n5b(j.o);
+ n5b(j.n);
+ }
+ }
+ }
+ function yQb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A;
+ a.e = b;
+ h = $Pb(b);
+ w = new Rkb();
+ for (d = new olb(h); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 15);
+ A = new Rkb();
+ w.c[w.c.length] = A;
+ i = new Tqb();
+ for (o2 = c.Kc(); o2.Ob(); ) {
+ n = BD(o2.Pb(), 33);
+ f = wQb(a, n, true, 0, 0);
+ A.c[A.c.length] = f;
+ p = n.i;
+ q = n.j;
+ m = (!n.n && (n.n = new cUd(D2, n, 1, 7)), n.n);
+ for (l = new Fyd(m); l.e != l.i.gc(); ) {
+ j = BD(Dyd(l), 137);
+ e = wQb(a, j, false, p, q);
+ A.c[A.c.length] = e;
+ }
+ v = (!n.c && (n.c = new cUd(F2, n, 9, 9)), n.c);
+ for (s = new Fyd(v); s.e != s.i.gc(); ) {
+ r = BD(Dyd(s), 118);
+ g = wQb(a, r, false, p, q);
+ A.c[A.c.length] = g;
+ t = r.i + p;
+ u = r.j + q;
+ m = (!r.n && (r.n = new cUd(D2, r, 1, 7)), r.n);
+ for (k = new Fyd(m); k.e != k.i.gc(); ) {
+ j = BD(Dyd(k), 137);
+ e = wQb(a, j, false, t, u);
+ A.c[A.c.length] = e;
+ }
+ }
+ ye(i, Dx(pl(OC(GC(KI, 1), Uhe, 20, 0, [_sd(n), $sd(n)]))));
+ }
+ vQb(a, i, A);
+ }
+ a.f = new aPb(w);
+ tNb(a.f, b);
+ return a.f;
+ }
+ function Kqd(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G;
+ D = Ohb(a.e, d);
+ if (D == null) {
+ D = new eC();
+ n = BD(D, 183);
+ s = b + "_s";
+ t = s + e;
+ m = new yC(t);
+ cC(n, Vte, m);
+ }
+ C = BD(D, 183);
+ Qpd(c, C);
+ G = new eC();
+ Spd(G, "x", d.j);
+ Spd(G, "y", d.k);
+ cC(C, Yte, G);
+ A = new eC();
+ Spd(A, "x", d.b);
+ Spd(A, "y", d.c);
+ cC(C, "endPoint", A);
+ l = Fhe((!d.a && (d.a = new xMd(y2, d, 5)), d.a));
+ o2 = !l;
+ if (o2) {
+ w = new wB();
+ f = new Srd(w);
+ reb((!d.a && (d.a = new xMd(y2, d, 5)), d.a), f);
+ cC(C, Ote, w);
+ }
+ i = dmd(d);
+ u = !!i;
+ u && Tpd(a.a, C, Qte, kqd(a, dmd(d)));
+ r = emd(d);
+ v = !!r;
+ v && Tpd(a.a, C, Pte, kqd(a, emd(d)));
+ j = (!d.e && (d.e = new y5d(A2, d, 10, 9)), d.e).i == 0;
+ p = !j;
+ if (p) {
+ B = new wB();
+ g = new Urd(a, B);
+ reb((!d.e && (d.e = new y5d(A2, d, 10, 9)), d.e), g);
+ cC(C, Ste, B);
+ }
+ k = (!d.g && (d.g = new y5d(A2, d, 9, 10)), d.g).i == 0;
+ q = !k;
+ if (q) {
+ F = new wB();
+ h = new Wrd(a, F);
+ reb((!d.g && (d.g = new y5d(A2, d, 9, 10)), d.g), h);
+ cC(C, Rte, F);
+ }
+ }
+ function eKb(a) {
+ $Jb();
+ var b, c, d, e, f, g, h;
+ d = a.f.n;
+ for (g = ci(a.r).a.nc(); g.Ob(); ) {
+ f = BD(g.Pb(), 111);
+ e = 0;
+ if (f.b.Xe((Y9c(), s9c))) {
+ e = Edb(ED(f.b.We(s9c)));
+ if (e < 0) {
+ switch (f.b.Hf().g) {
+ case 1:
+ d.d = $wnd.Math.max(d.d, -e);
+ break;
+ case 3:
+ d.a = $wnd.Math.max(d.a, -e);
+ break;
+ case 2:
+ d.c = $wnd.Math.max(d.c, -e);
+ break;
+ case 4:
+ d.b = $wnd.Math.max(d.b, -e);
+ }
+ }
+ }
+ if (tcd(a.u)) {
+ b = nfd(f.b, e);
+ h = !BD(a.e.We(b9c), 174).Hc((Idd(), zdd));
+ c = false;
+ switch (f.b.Hf().g) {
+ case 1:
+ c = b > d.d;
+ d.d = $wnd.Math.max(d.d, b);
+ if (h && c) {
+ d.d = $wnd.Math.max(d.d, d.a);
+ d.a = d.d + e;
+ }
+ break;
+ case 3:
+ c = b > d.a;
+ d.a = $wnd.Math.max(d.a, b);
+ if (h && c) {
+ d.a = $wnd.Math.max(d.a, d.d);
+ d.d = d.a + e;
+ }
+ break;
+ case 2:
+ c = b > d.c;
+ d.c = $wnd.Math.max(d.c, b);
+ if (h && c) {
+ d.c = $wnd.Math.max(d.b, d.c);
+ d.b = d.c + e;
+ }
+ break;
+ case 4:
+ c = b > d.b;
+ d.b = $wnd.Math.max(d.b, b);
+ if (h && c) {
+ d.b = $wnd.Math.max(d.b, d.c);
+ d.c = d.b + e;
+ }
+ }
+ }
+ }
+ }
+ function l3b(a) {
+ var b, c, d, e, f, g, h, i, j, k, l;
+ for (j = new olb(a); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 10);
+ g = BD(vNb(i, (Nyc(), mxc)), 163);
+ f = null;
+ switch (g.g) {
+ case 1:
+ case 2:
+ f = (Gqc(), Fqc);
+ break;
+ case 3:
+ case 4:
+ f = (Gqc(), Dqc);
+ }
+ if (f) {
+ yNb(i, (wtc(), Bsc), (Gqc(), Fqc));
+ f == Dqc ? o3b(i, g, (KAc(), HAc)) : f == Fqc && o3b(i, g, (KAc(), IAc));
+ } else {
+ if (fcd(BD(vNb(i, Vxc), 98)) && i.j.c.length != 0) {
+ b = true;
+ for (l = new olb(i.j); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 11);
+ if (!(k.j == (Ucd(), zcd) && k.e.c.length - k.g.c.length > 0 || k.j == Tcd && k.e.c.length - k.g.c.length < 0)) {
+ b = false;
+ break;
+ }
+ for (e = new olb(k.g); e.a < e.c.c.length; ) {
+ c = BD(mlb(e), 17);
+ h = BD(vNb(c.d.i, mxc), 163);
+ if (h == (Ctc(), ztc) || h == Atc) {
+ b = false;
+ break;
+ }
+ }
+ for (d = new olb(k.e); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 17);
+ h = BD(vNb(c.c.i, mxc), 163);
+ if (h == (Ctc(), xtc) || h == ytc) {
+ b = false;
+ break;
+ }
+ }
+ }
+ b && o3b(i, g, (KAc(), JAc));
+ }
+ }
+ }
+ }
+ function lJc(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w;
+ w = 0;
+ n = 0;
+ for (l = new olb(b.e); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 10);
+ m = 0;
+ h = 0;
+ i = c ? BD(vNb(k, hJc), 19).a : Rie;
+ r = d ? BD(vNb(k, iJc), 19).a : Rie;
+ j = $wnd.Math.max(i, r);
+ for (t = new olb(k.j); t.a < t.c.c.length; ) {
+ s = BD(mlb(t), 11);
+ u = k.n.b + s.n.b + s.a.b;
+ if (d) {
+ for (g = new olb(s.g); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 17);
+ p = f.d;
+ o2 = p.i;
+ if (b != a.a[o2.p]) {
+ q = $wnd.Math.max(BD(vNb(o2, hJc), 19).a, BD(vNb(o2, iJc), 19).a);
+ v = BD(vNb(f, (Nyc(), eyc)), 19).a;
+ if (v >= j && v >= q) {
+ m += o2.n.b + p.n.b + p.a.b - u;
+ ++h;
+ }
+ }
+ }
+ }
+ if (c) {
+ for (g = new olb(s.e); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 17);
+ p = f.c;
+ o2 = p.i;
+ if (b != a.a[o2.p]) {
+ q = $wnd.Math.max(BD(vNb(o2, hJc), 19).a, BD(vNb(o2, iJc), 19).a);
+ v = BD(vNb(f, (Nyc(), eyc)), 19).a;
+ if (v >= j && v >= q) {
+ m += o2.n.b + p.n.b + p.a.b - u;
+ ++h;
+ }
+ }
+ }
+ }
+ }
+ if (h > 0) {
+ w += m / h;
+ ++n;
+ }
+ }
+ if (n > 0) {
+ b.a = e * w / n;
+ b.g = n;
+ } else {
+ b.a = 0;
+ b.g = 0;
+ }
+ }
+ function oMc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
+ c = BD(mlb(e), 29);
+ for (i = new olb(c.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ b.j[h.p] = h;
+ b.i[h.p] = b.o == (eMc(), dMc) ? Qje : Pje;
+ }
+ }
+ Uhb(a.c);
+ g = a.a.b;
+ b.c == (YLc(), WLc) && (g = JD(g, 152) ? km(BD(g, 152)) : JD(g, 131) ? BD(g, 131).a : JD(g, 54) ? new ov(g) : new dv(g));
+ UMc(a.e, b, a.b);
+ Alb(b.p, null);
+ for (f = g.Kc(); f.Ob(); ) {
+ c = BD(f.Pb(), 29);
+ j = c.a;
+ b.o == (eMc(), dMc) && (j = JD(j, 152) ? km(BD(j, 152)) : JD(j, 131) ? BD(j, 131).a : JD(j, 54) ? new ov(j) : new dv(j));
+ for (m = j.Kc(); m.Ob(); ) {
+ l = BD(m.Pb(), 10);
+ b.g[l.p] == l && pMc(a, l, b);
+ }
+ }
+ qMc(a, b);
+ for (d = g.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 29);
+ for (m = new olb(c.a); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 10);
+ b.p[l.p] = b.p[b.g[l.p].p];
+ if (l == b.g[l.p]) {
+ k = Edb(b.i[b.j[l.p].p]);
+ (b.o == (eMc(), dMc) && k > Qje || b.o == cMc && k < Pje) && (b.p[l.p] = Edb(b.p[l.p]) + k);
+ }
+ }
+ }
+ a.e.cg();
+ }
+ function PGb(a, b, c, d) {
+ var e, f, g, h, i;
+ h = new LIb(b);
+ rKb(h, d);
+ e = true;
+ if (!!a && a.Xe((Y9c(), z8c))) {
+ f = BD(a.We((Y9c(), z8c)), 103);
+ e = f == (ead(), cad) || f == aad || f == bad;
+ }
+ hKb(h, false);
+ Hkb(h.e.wf(), new mKb(h, false, e));
+ NJb(h, h.f, (gHb(), dHb), (Ucd(), Acd));
+ NJb(h, h.f, fHb, Rcd);
+ NJb(h, h.g, dHb, Tcd);
+ NJb(h, h.g, fHb, zcd);
+ PJb(h, Acd);
+ PJb(h, Rcd);
+ OJb(h, zcd);
+ OJb(h, Tcd);
+ $Jb();
+ g = h.A.Hc((tdd(), pdd)) && h.B.Hc((Idd(), Ddd)) ? _Jb(h) : null;
+ !!g && DHb(h.a, g);
+ eKb(h);
+ GJb(h);
+ PKb(h);
+ BJb(h);
+ pKb(h);
+ HKb(h);
+ xKb(h, Acd);
+ xKb(h, Rcd);
+ CJb(h);
+ oKb(h);
+ if (!c) {
+ return h.o;
+ }
+ cKb(h);
+ LKb(h);
+ xKb(h, zcd);
+ xKb(h, Tcd);
+ i = h.B.Hc((Idd(), Edd));
+ RJb(h, i, Acd);
+ RJb(h, i, Rcd);
+ SJb(h, i, zcd);
+ SJb(h, i, Tcd);
+ MAb(new YAb(null, new Kub(new $ib(h.i), 0)), new TJb());
+ MAb(JAb(new YAb(null, ci(h.r).a.oc()), new VJb()), new XJb());
+ dKb(h);
+ h.e.uf(h.o);
+ MAb(new YAb(null, ci(h.r).a.oc()), new fKb());
+ return h.o;
+ }
+ function JVb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ j = Pje;
+ for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
+ b = BD(mlb(d), 81);
+ j = $wnd.Math.min(j, b.d.f.g.c + b.e.a);
+ }
+ n = new Psb();
+ for (g = new olb(a.a.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 189);
+ f.i = j;
+ f.e == 0 && (Gsb(n, f, n.c.b, n.c), true);
+ }
+ while (n.b != 0) {
+ f = BD(n.b == 0 ? null : (sCb(n.b != 0), Nsb(n, n.a.a)), 189);
+ e = f.f.g.c;
+ for (m = f.a.a.ec().Kc(); m.Ob(); ) {
+ k = BD(m.Pb(), 81);
+ p = f.i + k.e.a;
+ k.d.g || k.g.c < p ? k.o = p : k.o = k.g.c;
+ }
+ e -= f.f.o;
+ f.b += e;
+ a.c == (ead(), bad) || a.c == _9c ? f.c += e : f.c -= e;
+ for (l = f.a.a.ec().Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 81);
+ for (i = k.f.Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 81);
+ fad(a.c) ? o2 = a.f.ef(k, h) : o2 = a.f.ff(k, h);
+ h.d.i = $wnd.Math.max(h.d.i, k.o + k.g.b + o2 - h.e.a);
+ h.k || (h.d.i = $wnd.Math.max(h.d.i, h.g.c - h.e.a));
+ --h.d.e;
+ h.d.e == 0 && Dsb(n, h.d);
+ }
+ }
+ }
+ for (c = new olb(a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 81);
+ b.g.c = b.o;
+ }
+ }
+ function ELb(a) {
+ var b, c, d, e, f, g, h, i;
+ h = a.b;
+ b = a.a;
+ switch (BD(vNb(a, (fFb(), bFb)), 427).g) {
+ case 0:
+ Okb(h, new tpb(new bMb()));
+ break;
+ case 1:
+ default:
+ Okb(h, new tpb(new gMb()));
+ }
+ switch (BD(vNb(a, _Eb), 428).g) {
+ case 1:
+ Okb(h, new YLb());
+ Okb(h, new lMb());
+ Okb(h, new GLb());
+ break;
+ case 0:
+ default:
+ Okb(h, new YLb());
+ Okb(h, new RLb());
+ }
+ switch (BD(vNb(a, dFb), 250).g) {
+ case 0:
+ i = new FMb();
+ break;
+ case 1:
+ i = new zMb();
+ break;
+ case 2:
+ i = new CMb();
+ break;
+ case 3:
+ i = new wMb();
+ break;
+ case 5:
+ i = new JMb(new CMb());
+ break;
+ case 4:
+ i = new JMb(new zMb());
+ break;
+ case 7:
+ i = new tMb(new JMb(new zMb()), new JMb(new CMb()));
+ break;
+ case 8:
+ i = new tMb(new JMb(new wMb()), new JMb(new CMb()));
+ break;
+ case 6:
+ default:
+ i = new JMb(new wMb());
+ }
+ for (g = new olb(h); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 167);
+ d = 0;
+ e = 0;
+ c = new vgd(meb(d), meb(e));
+ while (gNb(b, f, d, e)) {
+ c = BD(i.Ce(c, f), 46);
+ d = BD(c.a, 19).a;
+ e = BD(c.b, 19).a;
+ }
+ dNb(b, f, d, e);
+ }
+ }
+ function qQb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A;
+ f = a.f.b;
+ m = f.a;
+ k = f.b;
+ o2 = a.e.g;
+ n = a.e.f;
+ _kd(a.e, f.a, f.b);
+ w = m / o2;
+ A = k / n;
+ for (j = new Fyd(Kkd(a.e)); j.e != j.i.gc(); ) {
+ i = BD(Dyd(j), 137);
+ dld(i, i.i * w);
+ eld(i, i.j * A);
+ }
+ for (s = new Fyd(Yod(a.e)); s.e != s.i.gc(); ) {
+ r = BD(Dyd(s), 118);
+ u = r.i;
+ v = r.j;
+ u > 0 && dld(r, u * w);
+ v > 0 && eld(r, v * A);
+ }
+ stb(a.b, new CQb());
+ b = new Rkb();
+ for (h = new nib(new eib(a.c).a); h.b; ) {
+ g = lib(h);
+ d = BD(g.cd(), 79);
+ c = BD(g.dd(), 395).a;
+ e = itd(d, false, false);
+ l = oQb(jtd(d), ofd(e), c);
+ ifd(l, e);
+ t = ktd(d);
+ if (!!t && Jkb(b, t, 0) == -1) {
+ b.c[b.c.length] = t;
+ pQb(t, (sCb(l.b != 0), BD(l.a.a.c, 8)), c);
+ }
+ }
+ for (q = new nib(new eib(a.d).a); q.b; ) {
+ p = lib(q);
+ d = BD(p.cd(), 79);
+ c = BD(p.dd(), 395).a;
+ e = itd(d, false, false);
+ l = oQb(ltd(d), w7c(ofd(e)), c);
+ l = w7c(l);
+ ifd(l, e);
+ t = mtd(d);
+ if (!!t && Jkb(b, t, 0) == -1) {
+ b.c[b.c.length] = t;
+ pQb(t, (sCb(l.b != 0), BD(l.c.b.c, 8)), c);
+ }
+ }
+ }
+ function _Vc(a, b, c, d) {
+ var e, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B;
+ if (c.c.length != 0) {
+ o2 = new Rkb();
+ for (n = new olb(c); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 33);
+ Ekb(o2, new f7c(m.i, m.j));
+ }
+ d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
+ while (CVc(a, c)) {
+ AVc(a, c, false);
+ }
+ d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
+ h = 0;
+ i = 0;
+ e = null;
+ if (c.c.length != 0) {
+ e = (tCb(0, c.c.length), BD(c.c[0], 33));
+ h = e.i - (tCb(0, o2.c.length), BD(o2.c[0], 8)).a;
+ i = e.j - (tCb(0, o2.c.length), BD(o2.c[0], 8)).b;
+ }
+ g = $wnd.Math.sqrt(h * h + i * i);
+ l = cVc(c);
+ while (l.a.gc() != 0) {
+ for (k = l.a.ec().Kc(); k.Ob(); ) {
+ j = BD(k.Pb(), 33);
+ p = a.f;
+ q = p.i + p.g / 2;
+ r = p.j + p.f / 2;
+ s = j.i + j.g / 2;
+ t = j.j + j.f / 2;
+ u = s - q;
+ v = t - r;
+ w = $wnd.Math.sqrt(u * u + v * v);
+ A = u / w;
+ B = v / w;
+ dld(j, j.i + A * g);
+ eld(j, j.j + B * g);
+ }
+ d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
+ l = cVc(new Tkb(l));
+ }
+ !!a.a && a.a.lg(new Tkb(l));
+ d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
+ _Vc(a, b, new Tkb(l), d);
+ }
+ }
+ function $2b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ p = a.n;
+ q = a.o;
+ m = a.d;
+ l = Edb(ED(pBc(a, (Nyc(), iyc))));
+ if (b) {
+ k = l * (b.gc() - 1);
+ n = 0;
+ for (i = b.Kc(); i.Ob(); ) {
+ g = BD(i.Pb(), 10);
+ k += g.o.a;
+ n = $wnd.Math.max(n, g.o.b);
+ }
+ r = p.a - (k - q.a) / 2;
+ f = p.b - m.d + n;
+ d = q.a / (b.gc() + 1);
+ e = d;
+ for (h = b.Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 10);
+ g.n.a = r;
+ g.n.b = f - g.o.b;
+ r += g.o.a + l;
+ j = Y2b(g);
+ j.n.a = g.o.a / 2 - j.a.a;
+ j.n.b = g.o.b;
+ o2 = BD(vNb(g, (wtc(), vsc)), 11);
+ if (o2.e.c.length + o2.g.c.length == 1) {
+ o2.n.a = e - o2.a.a;
+ o2.n.b = 0;
+ F0b(o2, a);
+ }
+ e += d;
+ }
+ }
+ if (c) {
+ k = l * (c.gc() - 1);
+ n = 0;
+ for (i = c.Kc(); i.Ob(); ) {
+ g = BD(i.Pb(), 10);
+ k += g.o.a;
+ n = $wnd.Math.max(n, g.o.b);
+ }
+ r = p.a - (k - q.a) / 2;
+ f = p.b + q.b + m.a - n;
+ d = q.a / (c.gc() + 1);
+ e = d;
+ for (h = c.Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 10);
+ g.n.a = r;
+ g.n.b = f;
+ r += g.o.a + l;
+ j = Y2b(g);
+ j.n.a = g.o.a / 2 - j.a.a;
+ j.n.b = 0;
+ o2 = BD(vNb(g, (wtc(), vsc)), 11);
+ if (o2.e.c.length + o2.g.c.length == 1) {
+ o2.n.a = e - o2.a.a;
+ o2.n.b = q.b;
+ F0b(o2, a);
+ }
+ e += d;
+ }
+ }
+ }
+ function q7b(a, b) {
+ var c, d, e, f, g, h;
+ if (!BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
+ return;
+ }
+ for (h = new olb(b.a); h.a < h.c.c.length; ) {
+ f = BD(mlb(h), 10);
+ if (f.k == (j0b(), h0b)) {
+ e = BD(vNb(f, (Nyc(), txc)), 142);
+ a.c = $wnd.Math.min(a.c, f.n.a - e.b);
+ a.a = $wnd.Math.max(a.a, f.n.a + f.o.a + e.c);
+ a.d = $wnd.Math.min(a.d, f.n.b - e.d);
+ a.b = $wnd.Math.max(a.b, f.n.b + f.o.b + e.a);
+ }
+ }
+ for (g = new olb(b.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ if (f.k != (j0b(), h0b)) {
+ switch (f.k.g) {
+ case 2:
+ d = BD(vNb(f, (Nyc(), mxc)), 163);
+ if (d == (Ctc(), ytc)) {
+ f.n.a = a.c - 10;
+ p7b(f, new x7b()).Jb(new A7b(f));
+ break;
+ }
+ if (d == Atc) {
+ f.n.a = a.a + 10;
+ p7b(f, new D7b()).Jb(new G7b(f));
+ break;
+ }
+ c = BD(vNb(f, Osc), 303);
+ if (c == (esc(), dsc)) {
+ o7b(f).Jb(new J7b(f));
+ f.n.b = a.d - 10;
+ break;
+ }
+ if (c == bsc) {
+ o7b(f).Jb(new M7b(f));
+ f.n.b = a.b + 10;
+ break;
+ }
+ break;
+ default:
+ throw vbb(new Wdb("The node type " + f.k + " is not supported by the " + zS));
+ }
+ }
+ }
+ }
+ function Y1b(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ i = new f7c(d.i + d.g / 2, d.j + d.f / 2);
+ n = M1b(d);
+ o2 = BD(hkd(b, (Nyc(), Vxc)), 98);
+ q = BD(hkd(d, $xc), 61);
+ if (!hCd(gkd(d), Uxc)) {
+ d.i == 0 && d.j == 0 ? p = 0 : p = kfd(d, q);
+ jkd(d, Uxc, p);
+ }
+ j = new f7c(b.g, b.f);
+ e = Z$b(d, o2, q, n, j, i, new f7c(d.g, d.f), BD(vNb(c, Lwc), 103), c);
+ yNb(e, (wtc(), $sc), d);
+ f = BD(Ikb(e.j, 0), 11);
+ E0b(f, W1b(d));
+ yNb(e, Yxc, (rcd(), pqb(pcd)));
+ l = BD(hkd(b, Yxc), 174).Hc(ncd);
+ for (h = new Fyd((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n)); h.e != h.i.gc(); ) {
+ g = BD(Dyd(h), 137);
+ if (!Ccb(DD(hkd(g, Jxc))) && !!g.a) {
+ m = Z1b(g);
+ Ekb(f.f, m);
+ if (!l) {
+ k = 0;
+ tcd(BD(hkd(b, Yxc), 21)) && (k = mfd(new f7c(g.i, g.j), new f7c(g.g, g.f), new f7c(d.g, d.f), 0, q));
+ switch (q.g) {
+ case 2:
+ case 4:
+ m.o.a = k;
+ break;
+ case 1:
+ case 3:
+ m.o.b = k;
+ }
+ }
+ }
+ }
+ yNb(e, tyc, ED(hkd(Xod(b), tyc)));
+ yNb(e, uyc, ED(hkd(Xod(b), uyc)));
+ yNb(e, ryc, ED(hkd(Xod(b), ryc)));
+ Ekb(c.a, e);
+ Rhb(a.a, d, e);
+ }
+ function qUc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v;
+ Odd(c, "Processor arrange level", 1);
+ k = 0;
+ mmb();
+ ktb(b, new Wsd((mTc(), ZSc)));
+ f = b.b;
+ h = Jsb(b, b.b);
+ j = true;
+ while (j && h.b.b != h.d.a) {
+ r = BD(Ysb(h), 86);
+ BD(vNb(r, ZSc), 19).a == 0 ? --f : j = false;
+ }
+ v = new Jib(b, 0, f);
+ g = new Qsb(v);
+ v = new Jib(b, f, b.b);
+ i = new Qsb(v);
+ if (g.b == 0) {
+ for (o2 = Jsb(i, 0); o2.b != o2.d.c; ) {
+ n = BD(Xsb(o2), 86);
+ yNb(n, eTc, meb(k++));
+ }
+ } else {
+ l = g.b;
+ for (u = Jsb(g, 0); u.b != u.d.c; ) {
+ t = BD(Xsb(u), 86);
+ yNb(t, eTc, meb(k++));
+ d = URc(t);
+ qUc(a, d, Udd(c, 1 / l | 0));
+ ktb(d, tmb(new Wsd(eTc)));
+ m = new Psb();
+ for (s = Jsb(d, 0); s.b != s.d.c; ) {
+ r = BD(Xsb(s), 86);
+ for (q = Jsb(t.d, 0); q.b != q.d.c; ) {
+ p = BD(Xsb(q), 188);
+ p.c == r && (Gsb(m, p, m.c.b, m.c), true);
+ }
+ }
+ Osb(t.d);
+ ye(t.d, m);
+ h = Jsb(i, i.b);
+ e = t.d.b;
+ j = true;
+ while (0 < e && j && h.b.b != h.d.a) {
+ r = BD(Ysb(h), 86);
+ if (BD(vNb(r, ZSc), 19).a == 0) {
+ yNb(r, eTc, meb(k++));
+ --e;
+ Zsb(h);
+ } else {
+ j = false;
+ }
+ }
+ }
+ }
+ Qdd(c);
+ }
+ function _8b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ Odd(b, "Inverted port preprocessing", 1);
+ k = a.b;
+ j = new Bib(k, 0);
+ c = null;
+ t = new Rkb();
+ while (j.b < j.d.gc()) {
+ s = c;
+ c = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 29));
+ for (n = new olb(t); n.a < n.c.c.length; ) {
+ l = BD(mlb(n), 10);
+ $_b(l, s);
+ }
+ t.c = KC(SI, Uhe, 1, 0, 5, 1);
+ for (o2 = new olb(c.a); o2.a < o2.c.c.length; ) {
+ l = BD(mlb(o2), 10);
+ if (l.k != (j0b(), h0b)) {
+ continue;
+ }
+ if (!fcd(BD(vNb(l, (Nyc(), Vxc)), 98))) {
+ continue;
+ }
+ for (r = X_b(l, (KAc(), HAc), (Ucd(), zcd)).Kc(); r.Ob(); ) {
+ p = BD(r.Pb(), 11);
+ i = p.e;
+ h = BD(Qkb(i, KC(AQ, jne, 17, i.c.length, 0, 1)), 474);
+ for (e = h, f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ Z8b(a, p, d, t);
+ }
+ }
+ for (q = X_b(l, IAc, Tcd).Kc(); q.Ob(); ) {
+ p = BD(q.Pb(), 11);
+ i = p.g;
+ h = BD(Qkb(i, KC(AQ, jne, 17, i.c.length, 0, 1)), 474);
+ for (e = h, f = 0, g = e.length; f < g; ++f) {
+ d = e[f];
+ $8b(a, p, d, t);
+ }
+ }
+ }
+ }
+ for (m = new olb(t); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 10);
+ $_b(l, c);
+ }
+ Qdd(b);
+ }
+ function _1b(a, b, c, d, e, f) {
+ var g, h, i, j, k, l;
+ j = new H0b();
+ tNb(j, b);
+ G0b(j, BD(hkd(b, (Nyc(), $xc)), 61));
+ yNb(j, (wtc(), $sc), b);
+ F0b(j, c);
+ l = j.o;
+ l.a = b.g;
+ l.b = b.f;
+ k = j.n;
+ k.a = b.i;
+ k.b = b.j;
+ Rhb(a.a, b, j);
+ g = FAb(NAb(LAb(new YAb(null, (!b.e && (b.e = new y5d(B2, b, 7, 4)), new Kub(b.e, 16))), new m2b()), new e2b()), new o2b(b));
+ g || (g = FAb(NAb(LAb(new YAb(null, (!b.d && (b.d = new y5d(B2, b, 8, 5)), new Kub(b.d, 16))), new q2b()), new g2b()), new s2b(b)));
+ g || (g = FAb(new YAb(null, (!b.e && (b.e = new y5d(B2, b, 7, 4)), new Kub(b.e, 16))), new u2b()));
+ yNb(j, Nsc, (Bcb(), g ? true : false));
+ e_b(j, f, e, BD(hkd(b, Txc), 8));
+ for (i = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); i.e != i.i.gc(); ) {
+ h = BD(Dyd(i), 137);
+ !Ccb(DD(hkd(h, Jxc))) && !!h.a && Ekb(j.f, Z1b(h));
+ }
+ switch (e.g) {
+ case 2:
+ case 1:
+ (j.j == (Ucd(), Acd) || j.j == Rcd) && d.Fc((Orc(), Lrc));
+ break;
+ case 4:
+ case 3:
+ (j.j == (Ucd(), zcd) || j.j == Tcd) && d.Fc((Orc(), Lrc));
+ }
+ return j;
+ }
+ function nQc(a, b, c, d, e, f, g) {
+ var h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ m = null;
+ d == (FQc(), DQc) ? m = b : d == EQc && (m = c);
+ for (p = m.a.ec().Kc(); p.Ob(); ) {
+ o2 = BD(p.Pb(), 11);
+ q = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).b;
+ t = new Tqb();
+ h = new Tqb();
+ for (j = new b1b(o2.b); llb(j.a) || llb(j.b); ) {
+ i = BD(llb(j.a) ? mlb(j.a) : mlb(j.b), 17);
+ if (Ccb(DD(vNb(i, (wtc(), ltc)))) != e) {
+ continue;
+ }
+ if (Jkb(f, i, 0) != -1) {
+ i.d == o2 ? r = i.c : r = i.d;
+ s = l7c(OC(GC(m1, 1), nie, 8, 0, [r.i.n, r.n, r.a])).b;
+ if ($wnd.Math.abs(s - q) < 0.2) {
+ continue;
+ }
+ s < q ? b.a._b(r) ? Qqb(t, new vgd(DQc, i)) : Qqb(t, new vgd(EQc, i)) : b.a._b(r) ? Qqb(h, new vgd(DQc, i)) : Qqb(h, new vgd(EQc, i));
+ }
+ }
+ if (t.a.gc() > 1) {
+ n = new ZQc(o2, t, d);
+ reb(t, new PQc(a, n));
+ g.c[g.c.length] = n;
+ for (l = t.a.ec().Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 46);
+ Lkb(f, k.b);
+ }
+ }
+ if (h.a.gc() > 1) {
+ n = new ZQc(o2, h, d);
+ reb(h, new RQc(a, n));
+ g.c[g.c.length] = n;
+ for (l = h.a.ec().Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 46);
+ Lkb(f, k.b);
+ }
+ }
+ }
+ }
+ function $Wc(a) {
+ r4c(a, new E3c(L3c(P3c(M3c(O3c(N3c(new R3c(), sre), "ELK Radial"), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new bXc()), sre)));
+ p4c(a, sre, uqe, Ksd(UWc));
+ p4c(a, sre, wme, Ksd(XWc));
+ p4c(a, sre, Fme, Ksd(NWc));
+ p4c(a, sre, Tme, Ksd(OWc));
+ p4c(a, sre, Eme, Ksd(PWc));
+ p4c(a, sre, Gme, Ksd(MWc));
+ p4c(a, sre, Dme, Ksd(QWc));
+ p4c(a, sre, Hme, Ksd(TWc));
+ p4c(a, sre, ore, Ksd(KWc));
+ p4c(a, sre, nre, Ksd(LWc));
+ p4c(a, sre, rre, Ksd(RWc));
+ p4c(a, sre, lre, Ksd(SWc));
+ p4c(a, sre, mre, Ksd(VWc));
+ p4c(a, sre, pre, Ksd(WWc));
+ p4c(a, sre, qre, Ksd(YWc));
+ }
+ function LIb(a) {
+ var b;
+ this.r = Cy(new OIb(), new SIb());
+ this.b = new Rpb(BD(Qb(F1), 290));
+ this.p = new Rpb(BD(Qb(F1), 290));
+ this.i = new Rpb(BD(Qb(DN), 290));
+ this.e = a;
+ this.o = new g7c(a.rf());
+ this.D = a.Df() || Ccb(DD(a.We((Y9c(), M8c))));
+ this.A = BD(a.We((Y9c(), Y8c)), 21);
+ this.B = BD(a.We(b9c), 21);
+ this.q = BD(a.We(t9c), 98);
+ this.u = BD(a.We(x9c), 21);
+ if (!ucd(this.u)) {
+ throw vbb(new y2c("Invalid port label placement: " + this.u));
+ }
+ this.v = Ccb(DD(a.We(z9c)));
+ this.j = BD(a.We(W8c), 21);
+ if (!Jbd(this.j)) {
+ throw vbb(new y2c("Invalid node label placement: " + this.j));
+ }
+ this.n = BD(bgd(a, U8c), 116);
+ this.k = Edb(ED(bgd(a, Q9c)));
+ this.d = Edb(ED(bgd(a, P9c)));
+ this.w = Edb(ED(bgd(a, X9c)));
+ this.s = Edb(ED(bgd(a, R9c)));
+ this.t = Edb(ED(bgd(a, S9c)));
+ this.C = BD(bgd(a, V9c), 142);
+ this.c = 2 * this.d;
+ b = !this.B.Hc((Idd(), zdd));
+ this.f = new mIb(0, b, 0);
+ this.g = new mIb(1, b, 0);
+ lIb(this.f, (gHb(), eHb), this.g);
+ }
+ function Lgd(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D;
+ t = 0;
+ o2 = 0;
+ n = 0;
+ m = 1;
+ for (s = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); s.e != s.i.gc(); ) {
+ q = BD(Dyd(s), 33);
+ m += sr(new Sr(ur(_sd(q).a.Kc(), new Sq())));
+ B = q.g;
+ o2 = $wnd.Math.max(o2, B);
+ l = q.f;
+ n = $wnd.Math.max(n, l);
+ t += B * l;
+ }
+ p = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i;
+ g = t + 2 * d * d * m * p;
+ f = $wnd.Math.sqrt(g);
+ i = $wnd.Math.max(f * c, o2);
+ h = $wnd.Math.max(f / c, n);
+ for (r = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); r.e != r.i.gc(); ) {
+ q = BD(Dyd(r), 33);
+ C = e.b + (Cub(b, 26) * ike + Cub(b, 27) * jke) * (i - q.g);
+ D = e.b + (Cub(b, 26) * ike + Cub(b, 27) * jke) * (h - q.f);
+ dld(q, C);
+ eld(q, D);
+ }
+ A = i + (e.b + e.c);
+ w = h + (e.d + e.a);
+ for (v = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); v.e != v.i.gc(); ) {
+ u = BD(Dyd(v), 33);
+ for (k = new Sr(ur(_sd(u).a.Kc(), new Sq())); Qr(k); ) {
+ j = BD(Rr(k), 79);
+ Pld(j) || Kgd(j, b, A, w);
+ }
+ }
+ A += e.b + e.c;
+ w += e.d + e.a;
+ Afd(a, A, w, false, true);
+ }
+ function Jcb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l;
+ if (a == null) {
+ throw vbb(new Oeb(Xhe));
+ }
+ j = a;
+ f = a.length;
+ i = false;
+ if (f > 0) {
+ b = (BCb(0, a.length), a.charCodeAt(0));
+ if (b == 45 || b == 43) {
+ a = a.substr(1);
+ --f;
+ i = b == 45;
+ }
+ }
+ if (f == 0) {
+ throw vbb(new Oeb(Oje + j + '"'));
+ }
+ while (a.length > 0 && (BCb(0, a.length), a.charCodeAt(0) == 48)) {
+ a = a.substr(1);
+ --f;
+ }
+ if (f > (Neb(), Leb)[10]) {
+ throw vbb(new Oeb(Oje + j + '"'));
+ }
+ for (e = 0; e < f; e++) {
+ if (Zcb((BCb(e, a.length), a.charCodeAt(e))) == -1) {
+ throw vbb(new Oeb(Oje + j + '"'));
+ }
+ }
+ l = 0;
+ g = Jeb[10];
+ k = Keb[10];
+ h = Jbb(Meb[10]);
+ c = true;
+ d = f % g;
+ if (d > 0) {
+ l = -parseInt(a.substr(0, d), 10);
+ a = a.substr(d);
+ f -= d;
+ c = false;
+ }
+ while (f >= g) {
+ d = parseInt(a.substr(0, g), 10);
+ a = a.substr(g);
+ f -= g;
+ if (c) {
+ c = false;
+ } else {
+ if (ybb(l, h) < 0) {
+ throw vbb(new Oeb(Oje + j + '"'));
+ }
+ l = Ibb(l, k);
+ }
+ l = Qbb(l, d);
+ }
+ if (ybb(l, 0) > 0) {
+ throw vbb(new Oeb(Oje + j + '"'));
+ }
+ if (!i) {
+ l = Jbb(l);
+ if (ybb(l, 0) < 0) {
+ throw vbb(new Oeb(Oje + j + '"'));
+ }
+ }
+ return l;
+ }
+ function Z6d(a, b) {
+ X6d();
+ var c, d, e, f, g, h, i;
+ this.a = new a7d(this);
+ this.b = a;
+ this.c = b;
+ this.f = c2d(q1d((O6d(), M6d), b));
+ if (this.f.dc()) {
+ if ((h = t1d(M6d, a)) == b) {
+ this.e = true;
+ this.d = new Rkb();
+ this.f = new oFd();
+ this.f.Fc(Ewe);
+ BD(V1d(p1d(M6d, bKd(a)), ""), 26) == a && this.f.Fc(u1d(M6d, bKd(a)));
+ for (e = g1d(M6d, a).Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 170);
+ switch ($1d(q1d(M6d, d))) {
+ case 4: {
+ this.d.Fc(d);
+ break;
+ }
+ case 5: {
+ this.f.Gc(c2d(q1d(M6d, d)));
+ break;
+ }
+ }
+ }
+ } else {
+ Q6d();
+ if (BD(b, 66).Oj()) {
+ this.e = true;
+ this.f = null;
+ this.d = new Rkb();
+ for (g = 0, i = (a.i == null && TKd(a), a.i).length; g < i; ++g) {
+ d = (c = (a.i == null && TKd(a), a.i), g >= 0 && g < c.length ? c[g] : null);
+ for (f = _1d(q1d(M6d, d)); f; f = _1d(q1d(M6d, f))) {
+ f == b && this.d.Fc(d);
+ }
+ }
+ } else if ($1d(q1d(M6d, b)) == 1 && !!h) {
+ this.f = null;
+ this.d = (m8d(), l8d);
+ } else {
+ this.f = null;
+ this.e = true;
+ this.d = (mmb(), new anb(b));
+ }
+ }
+ } else {
+ this.e = $1d(q1d(M6d, b)) == 5;
+ this.f.Fb(W6d) && (this.f = W6d);
+ }
+ }
+ function zKb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ c = 0;
+ d = yKb(a, b);
+ m = a.s;
+ n = a.t;
+ for (j = BD(BD(Qc(a.r, b), 21), 84).Kc(); j.Ob(); ) {
+ i = BD(j.Pb(), 111);
+ if (!i.c || i.c.d.c.length <= 0) {
+ continue;
+ }
+ o2 = i.b.rf();
+ h = i.b.Xe((Y9c(), s9c)) ? Edb(ED(i.b.We(s9c))) : 0;
+ k = i.c;
+ l = k.i;
+ l.b = (g = k.n, k.e.a + g.b + g.c);
+ l.a = (f = k.n, k.e.b + f.d + f.a);
+ switch (b.g) {
+ case 1:
+ l.c = i.a ? (o2.a - l.b) / 2 : o2.a + m;
+ l.d = o2.b + h + d;
+ $Hb(k, (NHb(), KHb));
+ _Hb(k, (EIb(), DIb));
+ break;
+ case 3:
+ l.c = i.a ? (o2.a - l.b) / 2 : o2.a + m;
+ l.d = -h - d - l.a;
+ $Hb(k, (NHb(), KHb));
+ _Hb(k, (EIb(), BIb));
+ break;
+ case 2:
+ l.c = -h - d - l.b;
+ if (i.a) {
+ e = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
+ l.d = (o2.b - e) / 2;
+ } else {
+ l.d = o2.b + n;
+ }
+ $Hb(k, (NHb(), MHb));
+ _Hb(k, (EIb(), CIb));
+ break;
+ case 4:
+ l.c = o2.a + h + d;
+ if (i.a) {
+ e = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
+ l.d = (o2.b - e) / 2;
+ } else {
+ l.d = o2.b + n;
+ }
+ $Hb(k, (NHb(), LHb));
+ _Hb(k, (EIb(), CIb));
+ }
+ (b == (Ucd(), Acd) || b == Rcd) && (c = $wnd.Math.max(c, l.a));
+ }
+ c > 0 && (BD(Mpb(a.b, b), 124).a.b = c);
+ }
+ function b3b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ Odd(b, "Comment pre-processing", 1);
+ c = 0;
+ i = new olb(a.a);
+ while (i.a < i.c.c.length) {
+ h = BD(mlb(i), 10);
+ if (Ccb(DD(vNb(h, (Nyc(), pwc))))) {
+ ++c;
+ e = 0;
+ d = null;
+ j = null;
+ for (o2 = new olb(h.j); o2.a < o2.c.c.length; ) {
+ m = BD(mlb(o2), 11);
+ e += m.e.c.length + m.g.c.length;
+ if (m.e.c.length == 1) {
+ d = BD(Ikb(m.e, 0), 17);
+ j = d.c;
+ }
+ if (m.g.c.length == 1) {
+ d = BD(Ikb(m.g, 0), 17);
+ j = d.d;
+ }
+ }
+ if (e == 1 && j.e.c.length + j.g.c.length == 1 && !Ccb(DD(vNb(j.i, pwc)))) {
+ c3b(h, d, j, j.i);
+ nlb(i);
+ } else {
+ r = new Rkb();
+ for (n = new olb(h.j); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 11);
+ for (l = new olb(m.g); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 17);
+ k.d.g.c.length == 0 || (r.c[r.c.length] = k, true);
+ }
+ for (g = new olb(m.e); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 17);
+ f.c.e.c.length == 0 || (r.c[r.c.length] = f, true);
+ }
+ }
+ for (q = new olb(r); q.a < q.c.c.length; ) {
+ p = BD(mlb(q), 17);
+ PZb(p, true);
+ }
+ }
+ }
+ }
+ b.n && Sdd(b, "Found " + c + " comment boxes");
+ Qdd(b);
+ }
+ function f9b(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p;
+ m = Edb(ED(vNb(a, (Nyc(), tyc))));
+ n = Edb(ED(vNb(a, uyc)));
+ l = Edb(ED(vNb(a, ryc)));
+ h = a.o;
+ f = BD(Ikb(a.j, 0), 11);
+ g = f.n;
+ p = d9b(f, l);
+ if (!p) {
+ return;
+ }
+ if (b.Hc((rcd(), ncd))) {
+ switch (BD(vNb(a, (wtc(), Hsc)), 61).g) {
+ case 1:
+ p.c = (h.a - p.b) / 2 - g.a;
+ p.d = n;
+ break;
+ case 3:
+ p.c = (h.a - p.b) / 2 - g.a;
+ p.d = -n - p.a;
+ break;
+ case 2:
+ if (c && f.e.c.length == 0 && f.g.c.length == 0) {
+ k = d ? p.a : BD(Ikb(f.f, 0), 70).o.b;
+ p.d = (h.b - k) / 2 - g.b;
+ } else {
+ p.d = h.b + n - g.b;
+ }
+ p.c = -m - p.b;
+ break;
+ case 4:
+ if (c && f.e.c.length == 0 && f.g.c.length == 0) {
+ k = d ? p.a : BD(Ikb(f.f, 0), 70).o.b;
+ p.d = (h.b - k) / 2 - g.b;
+ } else {
+ p.d = h.b + n - g.b;
+ }
+ p.c = m;
+ }
+ } else if (b.Hc(pcd)) {
+ switch (BD(vNb(a, (wtc(), Hsc)), 61).g) {
+ case 1:
+ case 3:
+ p.c = g.a + m;
+ break;
+ case 2:
+ case 4:
+ if (c && !f.c) {
+ k = d ? p.a : BD(Ikb(f.f, 0), 70).o.b;
+ p.d = (h.b - k) / 2 - g.b;
+ } else {
+ p.d = g.b + n;
+ }
+ }
+ }
+ e = p.d;
+ for (j = new olb(f.f); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 70);
+ o2 = i.n;
+ o2.a = p.c;
+ o2.b = e;
+ e += i.o.b + l;
+ }
+ }
+ function eae() {
+ rEd(Q9, new Lae());
+ rEd(S9, new qbe());
+ rEd(T9, new Xbe());
+ rEd(U9, new Cce());
+ rEd(ZI, new Oce());
+ rEd(GC(SD, 1), new Rce());
+ rEd(wI, new Uce());
+ rEd(xI, new Xce());
+ rEd(ZI, new hae());
+ rEd(ZI, new kae());
+ rEd(ZI, new nae());
+ rEd(BI, new qae());
+ rEd(ZI, new tae());
+ rEd(yK, new wae());
+ rEd(yK, new zae());
+ rEd(ZI, new Cae());
+ rEd(FI, new Fae());
+ rEd(ZI, new Iae());
+ rEd(ZI, new Oae());
+ rEd(ZI, new Rae());
+ rEd(ZI, new Uae());
+ rEd(ZI, new Xae());
+ rEd(GC(SD, 1), new $ae());
+ rEd(ZI, new bbe());
+ rEd(ZI, new ebe());
+ rEd(yK, new hbe());
+ rEd(yK, new kbe());
+ rEd(ZI, new nbe());
+ rEd(JI, new tbe());
+ rEd(ZI, new wbe());
+ rEd(MI, new zbe());
+ rEd(ZI, new Cbe());
+ rEd(ZI, new Fbe());
+ rEd(ZI, new Ibe());
+ rEd(ZI, new Lbe());
+ rEd(yK, new Obe());
+ rEd(yK, new Rbe());
+ rEd(ZI, new Ube());
+ rEd(ZI, new $be());
+ rEd(ZI, new bce());
+ rEd(ZI, new ece());
+ rEd(ZI, new hce());
+ rEd(ZI, new kce());
+ rEd(UI, new nce());
+ rEd(ZI, new qce());
+ rEd(ZI, new tce());
+ rEd(ZI, new wce());
+ rEd(UI, new zce());
+ rEd(MI, new Fce());
+ rEd(ZI, new Ice());
+ rEd(JI, new Lce());
+ }
+ function Bmd(b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ n = c.length;
+ if (n > 0) {
+ j = (BCb(0, c.length), c.charCodeAt(0));
+ if (j != 64) {
+ if (j == 37) {
+ m = c.lastIndexOf("%");
+ k = false;
+ if (m != 0 && (m == n - 1 || (k = (BCb(m + 1, c.length), c.charCodeAt(m + 1) == 46)))) {
+ h = c.substr(1, m - 1);
+ u = dfb("%", h) ? null : QEd(h);
+ e = 0;
+ if (k) {
+ try {
+ e = Icb(c.substr(m + 2), Rie, Ohe);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ i = a;
+ throw vbb(new rFd(i));
+ } else
+ throw vbb(a);
+ }
+ }
+ for (r = pRd(b.Wg()); r.Ob(); ) {
+ p = MRd(r);
+ if (JD(p, 510)) {
+ f = BD(p, 590);
+ t = f.d;
+ if ((u == null ? t == null : dfb(u, t)) && e-- == 0) {
+ return f;
+ }
+ }
+ }
+ return null;
+ }
+ }
+ l = c.lastIndexOf(".");
+ o2 = l == -1 ? c : c.substr(0, l);
+ d = 0;
+ if (l != -1) {
+ try {
+ d = Icb(c.substr(l + 1), Rie, Ohe);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ o2 = c;
+ } else
+ throw vbb(a);
+ }
+ }
+ o2 = dfb("%", o2) ? null : QEd(o2);
+ for (q = pRd(b.Wg()); q.Ob(); ) {
+ p = MRd(q);
+ if (JD(p, 191)) {
+ g = BD(p, 191);
+ s = g.ne();
+ if ((o2 == null ? s == null : dfb(o2, s)) && d-- == 0) {
+ return g;
+ }
+ }
+ }
+ return null;
+ }
+ }
+ return rid(b, c);
+ }
+ function f6b(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F;
+ w = new Rkb();
+ for (o2 = new olb(a.b); o2.a < o2.c.c.length; ) {
+ n = BD(mlb(o2), 29);
+ for (r = new olb(n.a); r.a < r.c.c.length; ) {
+ p = BD(mlb(r), 10);
+ if (p.k != (j0b(), e0b)) {
+ continue;
+ }
+ if (!wNb(p, (wtc(), Gsc))) {
+ continue;
+ }
+ s = null;
+ u = null;
+ t = null;
+ for (C = new olb(p.j); C.a < C.c.c.length; ) {
+ B = BD(mlb(C), 11);
+ switch (B.j.g) {
+ case 4:
+ s = B;
+ break;
+ case 2:
+ u = B;
+ break;
+ default:
+ t = B;
+ }
+ }
+ v = BD(Ikb(t.g, 0), 17);
+ k = new t7c(v.a);
+ j = new g7c(t.n);
+ P6c(j, p.n);
+ l = Jsb(k, 0);
+ Vsb(l, j);
+ A = w7c(v.a);
+ m = new g7c(t.n);
+ P6c(m, p.n);
+ Gsb(A, m, A.c.b, A.c);
+ D = BD(vNb(p, Gsc), 10);
+ F = BD(Ikb(D.j, 0), 11);
+ i = BD(Qkb(s.e, KC(AQ, jne, 17, 0, 0, 1)), 474);
+ for (d = i, f = 0, h = d.length; f < h; ++f) {
+ b = d[f];
+ RZb(b, F);
+ o7c(b.a, b.a.b, k);
+ }
+ i = k_b(u.g);
+ for (c = i, e = 0, g = c.length; e < g; ++e) {
+ b = c[e];
+ QZb(b, F);
+ o7c(b.a, 0, A);
+ }
+ QZb(v, null);
+ RZb(v, null);
+ w.c[w.c.length] = p;
+ }
+ }
+ for (q = new olb(w); q.a < q.c.c.length; ) {
+ p = BD(mlb(q), 10);
+ $_b(p, null);
+ }
+ }
+ function lgb() {
+ lgb = ccb;
+ var a, b, c;
+ new sgb(1, 0);
+ new sgb(10, 0);
+ new sgb(0, 0);
+ dgb = KC(bJ, nie, 240, 11, 0, 1);
+ egb = KC(TD, $ie, 25, 100, 15, 1);
+ fgb = OC(GC(UD, 1), Vje, 25, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]);
+ ggb = KC(WD, oje, 25, fgb.length, 15, 1);
+ hgb = OC(GC(UD, 1), Vje, 25, 15, [1, 10, 100, _ie, 1e4, Wje, 1e6, 1e7, 1e8, Jje, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16]);
+ igb = KC(WD, oje, 25, hgb.length, 15, 1);
+ jgb = KC(bJ, nie, 240, 11, 0, 1);
+ a = 0;
+ for (; a < jgb.length; a++) {
+ dgb[a] = new sgb(a, 0);
+ jgb[a] = new sgb(0, a);
+ egb[a] = 48;
+ }
+ for (; a < egb.length; a++) {
+ egb[a] = 48;
+ }
+ for (c = 0; c < ggb.length; c++) {
+ ggb[c] = ugb(fgb[c]);
+ }
+ for (b = 0; b < igb.length; b++) {
+ igb[b] = ugb(hgb[b]);
+ }
+ Dhb();
+ }
+ function zrb() {
+ function e() {
+ this.obj = this.createObject();
+ }
+ e.prototype.createObject = function(a) {
+ return /* @__PURE__ */ Object.create(null);
+ };
+ e.prototype.get = function(a) {
+ return this.obj[a];
+ };
+ e.prototype.set = function(a, b) {
+ this.obj[a] = b;
+ };
+ e.prototype[hke] = function(a) {
+ delete this.obj[a];
+ };
+ e.prototype.keys = function() {
+ return Object.getOwnPropertyNames(this.obj);
+ };
+ e.prototype.entries = function() {
+ var b = this.keys();
+ var c = this;
+ var d = 0;
+ return { next: function() {
+ if (d >= b.length)
+ return { done: true };
+ var a = b[d++];
+ return { value: [a, c.get(a)], done: false };
+ } };
+ };
+ if (!xrb()) {
+ e.prototype.createObject = function() {
+ return {};
+ };
+ e.prototype.get = function(a) {
+ return this.obj[":" + a];
+ };
+ e.prototype.set = function(a, b) {
+ this.obj[":" + a] = b;
+ };
+ e.prototype[hke] = function(a) {
+ delete this.obj[":" + a];
+ };
+ e.prototype.keys = function() {
+ var a = [];
+ for (var b in this.obj) {
+ b.charCodeAt(0) == 58 && a.push(b.substring(1));
+ }
+ return a;
+ };
+ }
+ return e;
+ }
+ function cde(a) {
+ ade();
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ if (a == null)
+ return null;
+ l = a.length * 8;
+ if (l == 0) {
+ return "";
+ }
+ h = l % 24;
+ n = l / 24 | 0;
+ m = h != 0 ? n + 1 : n;
+ f = null;
+ f = KC(TD, $ie, 25, m * 4, 15, 1);
+ j = 0;
+ k = 0;
+ b = 0;
+ c = 0;
+ d = 0;
+ g = 0;
+ e = 0;
+ for (i = 0; i < n; i++) {
+ b = a[e++];
+ c = a[e++];
+ d = a[e++];
+ k = (c & 15) << 24 >> 24;
+ j = (b & 3) << 24 >> 24;
+ o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24;
+ p = (c & -128) == 0 ? c >> 4 << 24 >> 24 : (c >> 4 ^ 240) << 24 >> 24;
+ q = (d & -128) == 0 ? d >> 6 << 24 >> 24 : (d >> 6 ^ 252) << 24 >> 24;
+ f[g++] = _ce[o2];
+ f[g++] = _ce[p | j << 4];
+ f[g++] = _ce[k << 2 | q];
+ f[g++] = _ce[d & 63];
+ }
+ if (h == 8) {
+ b = a[e];
+ j = (b & 3) << 24 >> 24;
+ o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24;
+ f[g++] = _ce[o2];
+ f[g++] = _ce[j << 4];
+ f[g++] = 61;
+ f[g++] = 61;
+ } else if (h == 16) {
+ b = a[e];
+ c = a[e + 1];
+ k = (c & 15) << 24 >> 24;
+ j = (b & 3) << 24 >> 24;
+ o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24;
+ p = (c & -128) == 0 ? c >> 4 << 24 >> 24 : (c >> 4 ^ 240) << 24 >> 24;
+ f[g++] = _ce[o2];
+ f[g++] = _ce[p | j << 4];
+ f[g++] = _ce[k << 2];
+ f[g++] = 61;
+ }
+ return zfb(f, 0, f.length);
+ }
+ function mB(a, b) {
+ var c, d, e, f, g, h, i;
+ a.e == 0 && a.p > 0 && (a.p = -(a.p - 1));
+ a.p > Rie && dB(b, a.p - nje);
+ g = b.q.getDate();
+ ZA(b, 1);
+ a.k >= 0 && aB(b, a.k);
+ if (a.c >= 0) {
+ ZA(b, a.c);
+ } else if (a.k >= 0) {
+ i = new fB(b.q.getFullYear() - nje, b.q.getMonth(), 35);
+ d = 35 - i.q.getDate();
+ ZA(b, $wnd.Math.min(d, g));
+ } else {
+ ZA(b, g);
+ }
+ a.f < 0 && (a.f = b.q.getHours());
+ a.b > 0 && a.f < 12 && (a.f += 12);
+ $A(b, a.f == 24 && a.g ? 0 : a.f);
+ a.j >= 0 && _A(b, a.j);
+ a.n >= 0 && bB(b, a.n);
+ a.i >= 0 && cB(b, wbb(Ibb(Abb(Cbb(b.q.getTime()), _ie), _ie), a.i));
+ if (a.a) {
+ e = new eB();
+ dB(e, e.q.getFullYear() - nje - 80);
+ Gbb(Cbb(b.q.getTime()), Cbb(e.q.getTime())) && dB(b, e.q.getFullYear() - nje + 100);
+ }
+ if (a.d >= 0) {
+ if (a.c == -1) {
+ c = (7 + a.d - b.q.getDay()) % 7;
+ c > 3 && (c -= 7);
+ h = b.q.getMonth();
+ ZA(b, b.q.getDate() + c);
+ b.q.getMonth() != h && ZA(b, b.q.getDate() + (c > 0 ? -7 : 7));
+ } else {
+ if (b.q.getDay() != a.d) {
+ return false;
+ }
+ }
+ }
+ if (a.o > Rie) {
+ f = b.q.getTimezoneOffset();
+ cB(b, wbb(Cbb(b.q.getTime()), (a.o - f) * 60 * _ie));
+ }
+ return true;
+ }
+ function z2b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ e = vNb(b, (wtc(), $sc));
+ if (!JD(e, 239)) {
+ return;
+ }
+ o2 = BD(e, 33);
+ p = b.e;
+ m = new g7c(b.c);
+ f = b.d;
+ m.a += f.b;
+ m.b += f.d;
+ u = BD(hkd(o2, (Nyc(), Ixc)), 174);
+ if (uqb(u, (Idd(), Add))) {
+ n = BD(hkd(o2, Kxc), 116);
+ w_b(n, f.a);
+ z_b(n, f.d);
+ x_b(n, f.b);
+ y_b(n, f.c);
+ }
+ c = new Rkb();
+ for (k = new olb(b.a); k.a < k.c.c.length; ) {
+ i = BD(mlb(k), 10);
+ if (JD(vNb(i, $sc), 239)) {
+ A2b(i, m);
+ } else if (JD(vNb(i, $sc), 186) && !p) {
+ d = BD(vNb(i, $sc), 118);
+ s = b_b(b, i, d.g, d.f);
+ bld(d, s.a, s.b);
+ }
+ for (r = new olb(i.j); r.a < r.c.c.length; ) {
+ q = BD(mlb(r), 11);
+ MAb(JAb(new YAb(null, new Kub(q.g, 16)), new G2b(i)), new I2b(c));
+ }
+ }
+ if (p) {
+ for (r = new olb(p.j); r.a < r.c.c.length; ) {
+ q = BD(mlb(r), 11);
+ MAb(JAb(new YAb(null, new Kub(q.g, 16)), new K2b(p)), new M2b(c));
+ }
+ }
+ t = BD(hkd(o2, Swc), 218);
+ for (h = new olb(c); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 17);
+ y2b(g, t, m);
+ }
+ B2b(b);
+ for (j = new olb(b.a); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 10);
+ l = i.e;
+ !!l && z2b(a, l);
+ }
+ }
+ function xSb(a) {
+ r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), ume), "ELK Force"), "Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported."), new ASb()), ume), qqb((Csd(), zsd), OC(GC(O3, 1), Kie, 237, 0, [xsd])))));
+ p4c(a, ume, vme, meb(1));
+ p4c(a, ume, wme, 80);
+ p4c(a, ume, xme, 5);
+ p4c(a, ume, _le, tme);
+ p4c(a, ume, yme, meb(1));
+ p4c(a, ume, zme, (Bcb(), true));
+ p4c(a, ume, ame, lSb);
+ p4c(a, ume, Ame, Ksd(dSb));
+ p4c(a, ume, Bme, Ksd(mSb));
+ p4c(a, ume, Cme, false);
+ p4c(a, ume, Dme, Ksd(jSb));
+ p4c(a, ume, Eme, Ksd(iSb));
+ p4c(a, ume, Fme, Ksd(hSb));
+ p4c(a, ume, Gme, Ksd(gSb));
+ p4c(a, ume, Hme, Ksd(nSb));
+ p4c(a, ume, mme, Ksd(fSb));
+ p4c(a, ume, pme, Ksd(vSb));
+ p4c(a, ume, nme, Ksd(eSb));
+ p4c(a, ume, rme, Ksd(qSb));
+ p4c(a, ume, ome, Ksd(rSb));
+ }
+ function GKb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n;
+ if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
+ return;
+ }
+ g = BD(Mpb(a.b, b), 124);
+ i = g.i;
+ h = g.n;
+ k = KIb(a, b);
+ d = i.b - h.b - h.c;
+ e = g.a.a;
+ f = i.c + h.b;
+ n = a.w;
+ if ((k == (Tbd(), Qbd) || k == Sbd) && BD(BD(Qc(a.r, b), 21), 84).gc() == 1) {
+ e = k == Qbd ? e - 2 * a.w : e;
+ k = Pbd;
+ }
+ if (d < e && !a.B.Hc((Idd(), Fdd))) {
+ if (k == Qbd) {
+ n += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
+ f += n;
+ } else {
+ n += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
+ }
+ } else {
+ if (d < e) {
+ e = k == Qbd ? e - 2 * a.w : e;
+ k = Pbd;
+ }
+ switch (k.g) {
+ case 3:
+ f += (d - e) / 2;
+ break;
+ case 4:
+ f += d - e;
+ break;
+ case 0:
+ c = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
+ n += $wnd.Math.max(0, c);
+ f += n;
+ break;
+ case 1:
+ c = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
+ n += $wnd.Math.max(0, c);
+ }
+ }
+ for (m = BD(BD(Qc(a.r, b), 21), 84).Kc(); m.Ob(); ) {
+ l = BD(m.Pb(), 111);
+ l.e.a = f + l.d.b;
+ l.e.b = (j = l.b, j.Xe((Y9c(), s9c)) ? j.Hf() == (Ucd(), Acd) ? -j.rf().b - Edb(ED(j.We(s9c))) : Edb(ED(j.We(s9c))) : j.Hf() == (Ucd(), Acd) ? -j.rf().b : 0);
+ f += l.d.b + l.b.rf().a + l.d.c + n;
+ }
+ }
+ function KKb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
+ return;
+ }
+ g = BD(Mpb(a.b, b), 124);
+ i = g.i;
+ h = g.n;
+ l = KIb(a, b);
+ d = i.a - h.d - h.a;
+ e = g.a.b;
+ f = i.d + h.d;
+ o2 = a.w;
+ j = a.o.a;
+ if ((l == (Tbd(), Qbd) || l == Sbd) && BD(BD(Qc(a.r, b), 21), 84).gc() == 1) {
+ e = l == Qbd ? e - 2 * a.w : e;
+ l = Pbd;
+ }
+ if (d < e && !a.B.Hc((Idd(), Fdd))) {
+ if (l == Qbd) {
+ o2 += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
+ f += o2;
+ } else {
+ o2 += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
+ }
+ } else {
+ if (d < e) {
+ e = l == Qbd ? e - 2 * a.w : e;
+ l = Pbd;
+ }
+ switch (l.g) {
+ case 3:
+ f += (d - e) / 2;
+ break;
+ case 4:
+ f += d - e;
+ break;
+ case 0:
+ c = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
+ o2 += $wnd.Math.max(0, c);
+ f += o2;
+ break;
+ case 1:
+ c = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
+ o2 += $wnd.Math.max(0, c);
+ }
+ }
+ for (n = BD(BD(Qc(a.r, b), 21), 84).Kc(); n.Ob(); ) {
+ m = BD(n.Pb(), 111);
+ m.e.a = (k = m.b, k.Xe((Y9c(), s9c)) ? k.Hf() == (Ucd(), Tcd) ? -k.rf().a - Edb(ED(k.We(s9c))) : j + Edb(ED(k.We(s9c))) : k.Hf() == (Ucd(), Tcd) ? -k.rf().a : j);
+ m.e.b = f + m.d.d;
+ f += m.d.d + m.b.rf().b + m.d.a + o2;
+ }
+ }
+ function Abc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ a.n = Edb(ED(vNb(a.g, (Nyc(), vyc))));
+ a.e = Edb(ED(vNb(a.g, pyc)));
+ a.i = a.g.b.c.length;
+ h = a.i - 1;
+ m = 0;
+ a.j = 0;
+ a.k = 0;
+ a.a = Ou(KC(JI, nie, 19, a.i, 0, 1));
+ a.b = Ou(KC(BI, nie, 333, a.i, 7, 1));
+ for (g = new olb(a.g.b); g.a < g.c.c.length; ) {
+ e = BD(mlb(g), 29);
+ e.p = h;
+ for (l = new olb(e.a); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 10);
+ k.p = m;
+ ++m;
+ }
+ --h;
+ }
+ a.f = KC(WD, oje, 25, m, 15, 1);
+ a.c = IC(WD, [nie, oje], [48, 25], 15, [m, 3], 2);
+ a.o = new Rkb();
+ a.p = new Rkb();
+ b = 0;
+ a.d = 0;
+ for (f = new olb(a.g.b); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 29);
+ h = e.p;
+ d = 0;
+ p = 0;
+ i = e.a.c.length;
+ j = 0;
+ for (l = new olb(e.a); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 10);
+ m = k.p;
+ a.f[m] = k.c.p;
+ j += k.o.b + a.n;
+ c = sr(new Sr(ur(R_b(k).a.Kc(), new Sq())));
+ o2 = sr(new Sr(ur(U_b(k).a.Kc(), new Sq())));
+ a.c[m][0] = o2 - c;
+ a.c[m][1] = c;
+ a.c[m][2] = o2;
+ d += c;
+ p += o2;
+ c > 0 && Ekb(a.p, k);
+ Ekb(a.o, k);
+ }
+ b -= d;
+ n = i + b;
+ j += b * a.e;
+ Nkb(a.a, h, meb(n));
+ Nkb(a.b, h, j);
+ a.j = $wnd.Math.max(a.j, n);
+ a.k = $wnd.Math.max(a.k, j);
+ a.d += b;
+ b += p;
+ }
+ }
+ function Ucd() {
+ Ucd = ccb;
+ var a;
+ Scd = new Ycd(ole, 0);
+ Acd = new Ycd(xle, 1);
+ zcd = new Ycd(yle, 2);
+ Rcd = new Ycd(zle, 3);
+ Tcd = new Ycd(Ale, 4);
+ Fcd = (mmb(), new zob((a = BD(gdb(F1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0))));
+ Gcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [])));
+ Bcd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [])));
+ Ocd = Up(qqb(Rcd, OC(GC(F1, 1), bne, 61, 0, [])));
+ Qcd = Up(qqb(Tcd, OC(GC(F1, 1), bne, 61, 0, [])));
+ Lcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Rcd])));
+ Ecd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Tcd])));
+ Ncd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Tcd])));
+ Hcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd])));
+ Pcd = Up(qqb(Rcd, OC(GC(F1, 1), bne, 61, 0, [Tcd])));
+ Ccd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Rcd])));
+ Kcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Tcd])));
+ Dcd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd])));
+ Mcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd])));
+ Icd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd])));
+ Jcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd, Tcd])));
+ }
+ function fSc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ if (b.b != 0) {
+ n = new Psb();
+ h = null;
+ o2 = null;
+ d = QD($wnd.Math.floor($wnd.Math.log(b.b) * $wnd.Math.LOG10E) + 1);
+ i = 0;
+ for (t = Jsb(b, 0); t.b != t.d.c; ) {
+ r = BD(Xsb(t), 86);
+ if (PD(o2) !== PD(vNb(r, (mTc(), $Sc)))) {
+ o2 = GD(vNb(r, $Sc));
+ i = 0;
+ }
+ o2 != null ? h = o2 + iSc(i++, d) : h = iSc(i++, d);
+ yNb(r, $Sc, h);
+ for (q = (e = Jsb(new ZRc(r).a.d, 0), new aSc(e)); Wsb(q.a); ) {
+ p = BD(Xsb(q.a), 188).c;
+ Gsb(n, p, n.c.b, n.c);
+ yNb(p, $Sc, h);
+ }
+ }
+ m = new Lqb();
+ for (g = 0; g < h.length - d; g++) {
+ for (s = Jsb(b, 0); s.b != s.d.c; ) {
+ r = BD(Xsb(s), 86);
+ j = qfb(GD(vNb(r, (mTc(), $Sc))), 0, g + 1);
+ c = (j == null ? Wd(irb(m.f, null)) : Crb(m.g, j)) != null ? BD(j == null ? Wd(irb(m.f, null)) : Crb(m.g, j), 19).a + 1 : 1;
+ Shb(m, j, meb(c));
+ }
+ }
+ for (l = new nib(new eib(m).a); l.b; ) {
+ k = lib(l);
+ f = meb(Ohb(a.a, k.cd()) != null ? BD(Ohb(a.a, k.cd()), 19).a : 0);
+ Shb(a.a, GD(k.cd()), meb(BD(k.dd(), 19).a + f.a));
+ f = BD(Ohb(a.b, k.cd()), 19);
+ (!f || f.a < BD(k.dd(), 19).a) && Shb(a.b, GD(k.cd()), BD(k.dd(), 19));
+ }
+ fSc(a, n);
+ }
+ }
+ function PCc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ Odd(c, "Interactive node layering", 1);
+ d = new Rkb();
+ for (n = new olb(b.a); n.a < n.c.c.length; ) {
+ l = BD(mlb(n), 10);
+ j = l.n.a;
+ i = j + l.o.a;
+ i = $wnd.Math.max(j + 1, i);
+ r = new Bib(d, 0);
+ e = null;
+ while (r.b < r.d.gc()) {
+ p = (sCb(r.b < r.d.gc()), BD(r.d.Xb(r.c = r.b++), 569));
+ if (p.c >= i) {
+ sCb(r.b > 0);
+ r.a.Xb(r.c = --r.b);
+ break;
+ } else if (p.a > j) {
+ if (!e) {
+ Ekb(p.b, l);
+ p.c = $wnd.Math.min(p.c, j);
+ p.a = $wnd.Math.max(p.a, i);
+ e = p;
+ } else {
+ Gkb(e.b, p.b);
+ e.a = $wnd.Math.max(e.a, p.a);
+ uib(r);
+ }
+ }
+ }
+ if (!e) {
+ e = new TCc();
+ e.c = j;
+ e.a = i;
+ Aib(r, e);
+ Ekb(e.b, l);
+ }
+ }
+ h = b.b;
+ k = 0;
+ for (q = new olb(d); q.a < q.c.c.length; ) {
+ p = BD(mlb(q), 569);
+ f = new H1b(b);
+ f.p = k++;
+ h.c[h.c.length] = f;
+ for (o2 = new olb(p.b); o2.a < o2.c.c.length; ) {
+ l = BD(mlb(o2), 10);
+ $_b(l, f);
+ l.p = 0;
+ }
+ }
+ for (m = new olb(b.a); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 10);
+ l.p == 0 && OCc(a, l, b);
+ }
+ g = new Bib(h, 0);
+ while (g.b < g.d.gc()) {
+ (sCb(g.b < g.d.gc()), BD(g.d.Xb(g.c = g.b++), 29)).a.c.length == 0 && uib(g);
+ }
+ b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Qdd(c);
+ }
+ function Snc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ if (b.e.c.length != 0 && c.e.c.length != 0) {
+ d = BD(Ikb(b.e, 0), 17).c.i;
+ g = BD(Ikb(c.e, 0), 17).c.i;
+ if (d == g) {
+ return beb(BD(vNb(BD(Ikb(b.e, 0), 17), (wtc(), Zsc)), 19).a, BD(vNb(BD(Ikb(c.e, 0), 17), Zsc), 19).a);
+ }
+ for (k = a.a, l = 0, m = k.length; l < m; ++l) {
+ j = k[l];
+ if (j == d) {
+ return 1;
+ } else if (j == g) {
+ return -1;
+ }
+ }
+ }
+ if (b.g.c.length != 0 && c.g.c.length != 0) {
+ f = BD(vNb(b, (wtc(), Xsc)), 10);
+ i = BD(vNb(c, Xsc), 10);
+ e = 0;
+ h = 0;
+ wNb(BD(Ikb(b.g, 0), 17), Zsc) && (e = BD(vNb(BD(Ikb(b.g, 0), 17), Zsc), 19).a);
+ wNb(BD(Ikb(c.g, 0), 17), Zsc) && (h = BD(vNb(BD(Ikb(b.g, 0), 17), Zsc), 19).a);
+ if (!!f && f == i) {
+ if (Ccb(DD(vNb(BD(Ikb(b.g, 0), 17), ltc))) && !Ccb(DD(vNb(BD(Ikb(c.g, 0), 17), ltc)))) {
+ return 1;
+ } else if (!Ccb(DD(vNb(BD(Ikb(b.g, 0), 17), ltc))) && Ccb(DD(vNb(BD(Ikb(c.g, 0), 17), ltc)))) {
+ return -1;
+ }
+ return e < h ? -1 : e > h ? 1 : 0;
+ }
+ if (a.b) {
+ a.b._b(f) && (e = BD(a.b.xc(f), 19).a);
+ a.b._b(i) && (h = BD(a.b.xc(i), 19).a);
+ }
+ return e < h ? -1 : e > h ? 1 : 0;
+ }
+ return b.e.c.length != 0 && c.g.c.length != 0 ? 1 : -1;
+ }
+ function acc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A;
+ Odd(b, Ine, 1);
+ p = new Rkb();
+ w = new Rkb();
+ for (j = new olb(a.b); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 29);
+ r = -1;
+ o2 = l_b(i.a);
+ for (l = o2, m = 0, n = l.length; m < n; ++m) {
+ k = l[m];
+ ++r;
+ if (!(k.k == (j0b(), h0b) && fcd(BD(vNb(k, (Nyc(), Vxc)), 98)))) {
+ continue;
+ }
+ ecd(BD(vNb(k, (Nyc(), Vxc)), 98)) || bcc(k);
+ yNb(k, (wtc(), Psc), k);
+ p.c = KC(SI, Uhe, 1, 0, 5, 1);
+ w.c = KC(SI, Uhe, 1, 0, 5, 1);
+ c = new Rkb();
+ u = new Psb();
+ Jq(u, Y_b(k, (Ucd(), Acd)));
+ $bc(a, u, p, w, c);
+ h = r;
+ A = k;
+ for (f = new olb(p); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 10);
+ Z_b(d, h, i);
+ ++r;
+ yNb(d, Psc, k);
+ g = BD(Ikb(d.j, 0), 11);
+ q = BD(vNb(g, $sc), 11);
+ Ccb(DD(vNb(q, nwc))) || BD(vNb(d, Qsc), 15).Fc(A);
+ }
+ Osb(u);
+ for (t = Y_b(k, Rcd).Kc(); t.Ob(); ) {
+ s = BD(t.Pb(), 11);
+ Gsb(u, s, u.a, u.a.a);
+ }
+ $bc(a, u, w, null, c);
+ v = k;
+ for (e = new olb(w); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 10);
+ Z_b(d, ++r, i);
+ yNb(d, Psc, k);
+ g = BD(Ikb(d.j, 0), 11);
+ q = BD(vNb(g, $sc), 11);
+ Ccb(DD(vNb(q, nwc))) || BD(vNb(v, Qsc), 15).Fc(d);
+ }
+ c.c.length == 0 || yNb(k, ssc, c);
+ }
+ }
+ Qdd(b);
+ }
+ function SQb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I;
+ l = BD(vNb(a, (HSb(), FSb)), 33);
+ r = Ohe;
+ s = Ohe;
+ p = Rie;
+ q = Rie;
+ for (u = new olb(a.e); u.a < u.c.c.length; ) {
+ t = BD(mlb(u), 144);
+ C = t.d;
+ D = t.e;
+ r = $wnd.Math.min(r, C.a - D.a / 2);
+ s = $wnd.Math.min(s, C.b - D.b / 2);
+ p = $wnd.Math.max(p, C.a + D.a / 2);
+ q = $wnd.Math.max(q, C.b + D.b / 2);
+ }
+ B = BD(hkd(l, (wSb(), kSb)), 116);
+ A = new f7c(B.b - r, B.d - s);
+ for (h = new olb(a.e); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 144);
+ w = vNb(g, FSb);
+ if (JD(w, 239)) {
+ n = BD(w, 33);
+ v = P6c(g.d, A);
+ bld(n, v.a - n.g / 2, v.b - n.f / 2);
+ }
+ }
+ for (d = new olb(a.c); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 282);
+ j = BD(vNb(c, FSb), 79);
+ k = itd(j, true, true);
+ F = (H = c7c(R6c(c.d.d), c.c.d), l6c(H, c.c.e.a, c.c.e.b), P6c(H, c.c.d));
+ nmd(k, F.a, F.b);
+ b = (I = c7c(R6c(c.c.d), c.d.d), l6c(I, c.d.e.a, c.d.e.b), P6c(I, c.d.d));
+ gmd(k, b.a, b.b);
+ }
+ for (f = new olb(a.d); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 447);
+ m = BD(vNb(e, FSb), 137);
+ o2 = P6c(e.d, A);
+ bld(m, o2.a, o2.b);
+ }
+ G = p - r + (B.b + B.c);
+ i = q - s + (B.d + B.a);
+ Afd(l, G, i, false, true);
+ }
+ function bmc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m;
+ c = null;
+ i = null;
+ e = BD(vNb(a.b, (Nyc(), Wwc)), 376);
+ if (e == (_Ac(), ZAc)) {
+ c = new Rkb();
+ i = new Rkb();
+ }
+ for (h = new olb(a.d); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 101);
+ f = g.i;
+ if (!f) {
+ continue;
+ }
+ switch (g.e.g) {
+ case 0:
+ b = BD(Fqb(new Gqb(g.b)), 61);
+ e == ZAc && b == (Ucd(), Acd) ? (c.c[c.c.length] = g, true) : e == ZAc && b == (Ucd(), Rcd) ? (i.c[i.c.length] = g, true) : _lc(g, b);
+ break;
+ case 1:
+ j = g.a.d.j;
+ k = g.c.d.j;
+ j == (Ucd(), Acd) ? amc(g, Acd, (Ajc(), xjc), g.a) : k == Acd ? amc(g, Acd, (Ajc(), yjc), g.c) : j == Rcd ? amc(g, Rcd, (Ajc(), yjc), g.a) : k == Rcd && amc(g, Rcd, (Ajc(), xjc), g.c);
+ break;
+ case 2:
+ case 3:
+ d = g.b;
+ uqb(d, (Ucd(), Acd)) ? uqb(d, Rcd) ? uqb(d, Tcd) ? uqb(d, zcd) || amc(g, Acd, (Ajc(), yjc), g.c) : amc(g, Acd, (Ajc(), xjc), g.a) : amc(g, Acd, (Ajc(), wjc), null) : amc(g, Rcd, (Ajc(), wjc), null);
+ break;
+ case 4:
+ l = g.a.d.j;
+ m = g.a.d.j;
+ l == (Ucd(), Acd) || m == Acd ? amc(g, Rcd, (Ajc(), wjc), null) : amc(g, Acd, (Ajc(), wjc), null);
+ }
+ }
+ if (c) {
+ c.c.length == 0 || $lc(c, (Ucd(), Acd));
+ i.c.length == 0 || $lc(i, (Ucd(), Rcd));
+ }
+ }
+ function A2b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ d = BD(vNb(a, (wtc(), $sc)), 33);
+ o2 = BD(vNb(a, (Nyc(), Gwc)), 19).a;
+ f = BD(vNb(a, nxc), 19).a;
+ jkd(d, Gwc, meb(o2));
+ jkd(d, nxc, meb(f));
+ dld(d, a.n.a + b.a);
+ eld(d, a.n.b + b.b);
+ if (BD(hkd(d, Fxc), 174).gc() != 0 || !!a.e || PD(vNb(Q_b(a), Exc)) === PD((Vzc(), Tzc)) && Jzc((Izc(), (!a.q ? (mmb(), mmb(), kmb) : a.q)._b(Cxc) ? m = BD(vNb(a, Cxc), 197) : m = BD(vNb(Q_b(a), Dxc), 197), m))) {
+ cld(d, a.o.a);
+ ald(d, a.o.b);
+ }
+ for (l = new olb(a.j); l.a < l.c.c.length; ) {
+ j = BD(mlb(l), 11);
+ p = vNb(j, $sc);
+ if (JD(p, 186)) {
+ e = BD(p, 118);
+ bld(e, j.n.a, j.n.b);
+ jkd(e, $xc, j.j);
+ }
+ }
+ n = BD(vNb(a, xxc), 174).gc() != 0;
+ for (i = new olb(a.b); i.a < i.c.c.length; ) {
+ g = BD(mlb(i), 70);
+ if (n || BD(vNb(g, xxc), 174).gc() != 0) {
+ c = BD(vNb(g, $sc), 137);
+ _kd(c, g.o.a, g.o.b);
+ bld(c, g.n.a, g.n.b);
+ }
+ }
+ if (!tcd(BD(vNb(a, Yxc), 21))) {
+ for (k = new olb(a.j); k.a < k.c.c.length; ) {
+ j = BD(mlb(k), 11);
+ for (h = new olb(j.f); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 70);
+ c = BD(vNb(g, $sc), 137);
+ cld(c, g.o.a);
+ ald(c, g.o.b);
+ bld(c, g.n.a, g.n.b);
+ }
+ }
+ }
+ }
+ function gtd(a) {
+ var b, c, d, e, f;
+ ytb(a, hue);
+ switch ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i + (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i) {
+ case 0:
+ throw vbb(new Wdb("The edge must have at least one source or target."));
+ case 1:
+ return (!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 0 ? Xod(atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82))) : Xod(atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)));
+ }
+ if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i == 1) {
+ e = atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82));
+ f = atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82));
+ if (Xod(e) == Xod(f)) {
+ return Xod(e);
+ } else if (e == Xod(f)) {
+ return e;
+ } else if (f == Xod(e)) {
+ return f;
+ }
+ }
+ d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)])));
+ b = atd(BD(Rr(d), 82));
+ while (Qr(d)) {
+ c = atd(BD(Rr(d), 82));
+ if (c != b && !ntd(c, b)) {
+ if (Xod(c) == Xod(b)) {
+ b = Xod(c);
+ } else {
+ b = htd(b, c);
+ if (!b) {
+ return null;
+ }
+ }
+ }
+ }
+ return b;
+ }
+ function KNc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ Odd(c, "Polyline edge routing", 1);
+ q = Edb(ED(vNb(b, (Nyc(), Uwc))));
+ n = Edb(ED(vNb(b, wyc)));
+ e = Edb(ED(vNb(b, myc)));
+ d = $wnd.Math.min(1, e / n);
+ t = 0;
+ i = 0;
+ if (b.b.c.length != 0) {
+ u = HNc(BD(Ikb(b.b, 0), 29));
+ t = 0.4 * d * u;
+ }
+ h = new Bib(b.b, 0);
+ while (h.b < h.d.gc()) {
+ g = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29));
+ f = Kq(g, DNc);
+ f && t > 0 && (t -= n);
+ h_b(g, t);
+ k = 0;
+ for (m = new olb(g.a); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 10);
+ j = 0;
+ for (p = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(p); ) {
+ o2 = BD(Rr(p), 17);
+ r = A0b(o2.c).b;
+ s = A0b(o2.d).b;
+ if (g == o2.d.i.c && !OZb(o2)) {
+ LNc(o2, t, 0.4 * d * $wnd.Math.abs(r - s));
+ if (o2.c.j == (Ucd(), Tcd)) {
+ r = 0;
+ s = 0;
+ }
+ }
+ j = $wnd.Math.max(j, $wnd.Math.abs(s - r));
+ }
+ switch (l.k.g) {
+ case 0:
+ case 4:
+ case 1:
+ case 3:
+ case 5:
+ MNc(a, l, t, q);
+ }
+ k = $wnd.Math.max(k, j);
+ }
+ if (h.b < h.d.gc()) {
+ u = HNc((sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29)));
+ k = $wnd.Math.max(k, u);
+ sCb(h.b > 0);
+ h.a.Xb(h.c = --h.b);
+ }
+ i = 0.4 * d * k;
+ !f && h.b < h.d.gc() && (i += n);
+ t += g.c.a + i;
+ }
+ a.a.a.$b();
+ b.f.a = t;
+ Qdd(c);
+ }
+ function bic(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s;
+ k = new Lqb();
+ i = new Hp();
+ for (d = new olb(a.a.a.b); d.a < d.c.c.length; ) {
+ b = BD(mlb(d), 57);
+ j = tgc(b);
+ if (j) {
+ jrb(k.f, j, b);
+ } else {
+ s = ugc(b);
+ if (s) {
+ for (f = new olb(s.k); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 17);
+ Rc(i, e, b);
+ }
+ }
+ }
+ }
+ for (c = new olb(a.a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 57);
+ j = tgc(b);
+ if (j) {
+ for (h = new Sr(ur(U_b(j).a.Kc(), new Sq())); Qr(h); ) {
+ g = BD(Rr(h), 17);
+ if (OZb(g)) {
+ continue;
+ }
+ o2 = g.c;
+ r = g.d;
+ if ((Ucd(), Lcd).Hc(g.c.j) && Lcd.Hc(g.d.j)) {
+ continue;
+ }
+ p = BD(Ohb(k, g.d.i), 57);
+ AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 100), a.c[b.a.d]), a.c[p.a.d]));
+ if (o2.j == Tcd && l1b((z0b(), o2))) {
+ for (m = BD(Qc(i, g), 21).Kc(); m.Ob(); ) {
+ l = BD(m.Pb(), 57);
+ if (l.d.c < b.d.c) {
+ n = a.c[l.a.d];
+ q = a.c[b.a.d];
+ if (n == q) {
+ continue;
+ }
+ AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 100), n), q));
+ }
+ }
+ }
+ if (r.j == zcd && g1b((z0b(), r))) {
+ for (m = BD(Qc(i, g), 21).Kc(); m.Ob(); ) {
+ l = BD(m.Pb(), 57);
+ if (l.d.c > b.d.c) {
+ n = a.c[b.a.d];
+ q = a.c[l.a.d];
+ if (n == q) {
+ continue;
+ }
+ AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 100), n), q));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ function QEd(a) {
+ IEd();
+ var b, c, d, e, f, g, h, i;
+ if (a == null)
+ return null;
+ e = hfb(a, wfb(37));
+ if (e < 0) {
+ return a;
+ } else {
+ i = new Wfb(a.substr(0, e));
+ b = KC(SD, wte, 25, 4, 15, 1);
+ h = 0;
+ d = 0;
+ for (g = a.length; e < g; e++) {
+ BCb(e, a.length);
+ if (a.charCodeAt(e) == 37 && a.length > e + 2 && _Ed((BCb(e + 1, a.length), a.charCodeAt(e + 1)), xEd, yEd) && _Ed((BCb(e + 2, a.length), a.charCodeAt(e + 2)), xEd, yEd)) {
+ c = dFd((BCb(e + 1, a.length), a.charCodeAt(e + 1)), (BCb(e + 2, a.length), a.charCodeAt(e + 2)));
+ e += 2;
+ if (d > 0) {
+ (c & 192) == 128 ? b[h++] = c << 24 >> 24 : d = 0;
+ } else if (c >= 128) {
+ if ((c & 224) == 192) {
+ b[h++] = c << 24 >> 24;
+ d = 2;
+ } else if ((c & 240) == 224) {
+ b[h++] = c << 24 >> 24;
+ d = 3;
+ } else if ((c & 248) == 240) {
+ b[h++] = c << 24 >> 24;
+ d = 4;
+ }
+ }
+ if (d > 0) {
+ if (h == d) {
+ switch (h) {
+ case 2: {
+ Kfb(i, ((b[0] & 31) << 6 | b[1] & 63) & aje);
+ break;
+ }
+ case 3: {
+ Kfb(i, ((b[0] & 15) << 12 | (b[1] & 63) << 6 | b[2] & 63) & aje);
+ break;
+ }
+ }
+ h = 0;
+ d = 0;
+ }
+ } else {
+ for (f = 0; f < h; ++f) {
+ Kfb(i, b[f] & aje);
+ }
+ h = 0;
+ i.a += String.fromCharCode(c);
+ }
+ } else {
+ for (f = 0; f < h; ++f) {
+ Kfb(i, b[f] & aje);
+ }
+ h = 0;
+ Kfb(i, (BCb(e, a.length), a.charCodeAt(e)));
+ }
+ }
+ return i.a;
+ }
+ }
+ function wA(a, b, c, d, e) {
+ var f, g, h;
+ uA(a, b);
+ g = b[0];
+ f = bfb(c.c, 0);
+ h = -1;
+ if (nA(c)) {
+ if (d > 0) {
+ if (g + d > a.length) {
+ return false;
+ }
+ h = rA(a.substr(0, g + d), b);
+ } else {
+ h = rA(a, b);
+ }
+ }
+ switch (f) {
+ case 71:
+ h = oA(a, g, OC(GC(ZI, 1), nie, 2, 6, [pje, qje]), b);
+ e.e = h;
+ return true;
+ case 77:
+ return zA(a, b, e, h, g);
+ case 76:
+ return BA(a, b, e, h, g);
+ case 69:
+ return xA(a, b, g, e);
+ case 99:
+ return AA(a, b, g, e);
+ case 97:
+ h = oA(a, g, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"]), b);
+ e.b = h;
+ return true;
+ case 121:
+ return DA(a, b, g, h, c, e);
+ case 100:
+ if (h <= 0) {
+ return false;
+ }
+ e.c = h;
+ return true;
+ case 83:
+ if (h < 0) {
+ return false;
+ }
+ return yA(h, g, b[0], e);
+ case 104:
+ h == 12 && (h = 0);
+ case 75:
+ case 72:
+ if (h < 0) {
+ return false;
+ }
+ e.f = h;
+ e.g = false;
+ return true;
+ case 107:
+ if (h < 0) {
+ return false;
+ }
+ e.f = h;
+ e.g = true;
+ return true;
+ case 109:
+ if (h < 0) {
+ return false;
+ }
+ e.j = h;
+ return true;
+ case 115:
+ if (h < 0) {
+ return false;
+ }
+ e.n = h;
+ return true;
+ case 90:
+ if (g < a.length && (BCb(g, a.length), a.charCodeAt(g) == 90)) {
+ ++b[0];
+ e.o = 0;
+ return true;
+ }
+ case 122:
+ case 118:
+ return CA(a, g, b, e);
+ default:
+ return false;
+ }
+ }
+ function vKb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w;
+ m = BD(BD(Qc(a.r, b), 21), 84);
+ if (b == (Ucd(), zcd) || b == Tcd) {
+ zKb(a, b);
+ return;
+ }
+ f = b == Acd ? (vLb(), rLb) : (vLb(), uLb);
+ u = b == Acd ? (EIb(), DIb) : (EIb(), BIb);
+ c = BD(Mpb(a.b, b), 124);
+ d = c.i;
+ e = d.c + w6c(OC(GC(UD, 1), Vje, 25, 15, [c.n.b, a.C.b, a.k]));
+ r = d.c + d.b - w6c(OC(GC(UD, 1), Vje, 25, 15, [c.n.c, a.C.c, a.k]));
+ g = dLb(iLb(f), a.t);
+ s = b == Acd ? Qje : Pje;
+ for (l = m.Kc(); l.Ob(); ) {
+ j = BD(l.Pb(), 111);
+ if (!j.c || j.c.d.c.length <= 0) {
+ continue;
+ }
+ q = j.b.rf();
+ p = j.e;
+ n = j.c;
+ o2 = n.i;
+ o2.b = (i = n.n, n.e.a + i.b + i.c);
+ o2.a = (h = n.n, n.e.b + h.d + h.a);
+ ytb(u, lle);
+ n.f = u;
+ $Hb(n, (NHb(), MHb));
+ o2.c = p.a - (o2.b - q.a) / 2;
+ v = $wnd.Math.min(e, p.a);
+ w = $wnd.Math.max(r, p.a + q.a);
+ o2.c < v ? o2.c = v : o2.c + o2.b > w && (o2.c = w - o2.b);
+ Ekb(g.d, new BLb(o2, bLb(g, o2)));
+ s = b == Acd ? $wnd.Math.max(s, p.b + j.b.rf().b) : $wnd.Math.min(s, p.b);
+ }
+ s += b == Acd ? a.t : -a.t;
+ t = cLb((g.e = s, g));
+ t > 0 && (BD(Mpb(a.b, b), 124).a.b = t);
+ for (k = m.Kc(); k.Ob(); ) {
+ j = BD(k.Pb(), 111);
+ if (!j.c || j.c.d.c.length <= 0) {
+ continue;
+ }
+ o2 = j.c.i;
+ o2.c -= j.e.a;
+ o2.d -= j.e.b;
+ }
+ }
+ function SPb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n;
+ b = new Lqb();
+ for (i = new Fyd(a); i.e != i.i.gc(); ) {
+ h = BD(Dyd(i), 33);
+ c = new Tqb();
+ Rhb(OPb, h, c);
+ n = new aQb();
+ e = BD(GAb(new YAb(null, new Lub(new Sr(ur($sd(h).a.Kc(), new Sq())))), Wyb(n, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)])))), 83);
+ RPb(c, BD(e.xc((Bcb(), true)), 14), new cQb());
+ d = BD(GAb(JAb(BD(e.xc(false), 15).Lc(), new eQb()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb]))), 15);
+ for (g = d.Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 79);
+ m = ktd(f);
+ if (m) {
+ j = BD(Wd(irb(b.f, m)), 21);
+ if (!j) {
+ j = UPb(m);
+ jrb(b.f, m, j);
+ }
+ ye(c, j);
+ }
+ }
+ e = BD(GAb(new YAb(null, new Lub(new Sr(ur(_sd(h).a.Kc(), new Sq())))), Wyb(n, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb])))), 83);
+ RPb(c, BD(e.xc(true), 14), new gQb());
+ d = BD(GAb(JAb(BD(e.xc(false), 15).Lc(), new iQb()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb]))), 15);
+ for (l = d.Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 79);
+ m = mtd(k);
+ if (m) {
+ j = BD(Wd(irb(b.f, m)), 21);
+ if (!j) {
+ j = UPb(m);
+ jrb(b.f, m, j);
+ }
+ ye(c, j);
+ }
+ }
+ }
+ }
+ function rhb(a, b) {
+ phb();
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ i = ybb(a, 0) < 0;
+ i && (a = Jbb(a));
+ if (ybb(a, 0) == 0) {
+ switch (b) {
+ case 0:
+ return "0";
+ case 1:
+ return $je;
+ case 2:
+ return "0.00";
+ case 3:
+ return "0.000";
+ case 4:
+ return "0.0000";
+ case 5:
+ return "0.00000";
+ case 6:
+ return "0.000000";
+ default:
+ n = new Ufb();
+ b < 0 ? (n.a += "0E+", n) : (n.a += "0E", n);
+ n.a += b == Rie ? "2147483648" : "" + -b;
+ return n.a;
+ }
+ }
+ k = 18;
+ l = KC(TD, $ie, 25, k + 1, 15, 1);
+ c = k;
+ p = a;
+ do {
+ j = p;
+ p = Abb(p, 10);
+ l[--c] = Tbb(wbb(48, Qbb(j, Ibb(p, 10)))) & aje;
+ } while (ybb(p, 0) != 0);
+ e = Qbb(Qbb(Qbb(k, c), b), 1);
+ if (b == 0) {
+ i && (l[--c] = 45);
+ return zfb(l, c, k - c);
+ }
+ if (b > 0 && ybb(e, -6) >= 0) {
+ if (ybb(e, 0) >= 0) {
+ f = c + Tbb(e);
+ for (h = k - 1; h >= f; h--) {
+ l[h + 1] = l[h];
+ }
+ l[++f] = 46;
+ i && (l[--c] = 45);
+ return zfb(l, c, k - c + 1);
+ }
+ for (g = 2; Gbb(g, wbb(Jbb(e), 1)); g++) {
+ l[--c] = 48;
+ }
+ l[--c] = 46;
+ l[--c] = 48;
+ i && (l[--c] = 45);
+ return zfb(l, c, k - c);
+ }
+ o2 = c + 1;
+ d = k;
+ m = new Vfb();
+ i && (m.a += "-", m);
+ if (d - o2 >= 1) {
+ Kfb(m, l[c]);
+ m.a += ".";
+ m.a += zfb(l, c + 1, k - c - 1);
+ } else {
+ m.a += zfb(l, c, k - c);
+ }
+ m.a += "E";
+ ybb(e, 0) > 0 && (m.a += "+", m);
+ m.a += "" + Ubb(e);
+ return m.a;
+ }
+ function iQc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n;
+ a.e.a.$b();
+ a.f.a.$b();
+ a.c.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.i.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.g.a.$b();
+ if (b) {
+ for (g = new olb(b.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ for (l = Y_b(f, (Ucd(), zcd)).Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 11);
+ Qqb(a.e, k);
+ for (e = new olb(k.g); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ if (OZb(d)) {
+ continue;
+ }
+ Ekb(a.c, d);
+ oQc(a, d);
+ h = d.c.i.k;
+ (h == (j0b(), h0b) || h == i0b || h == e0b || h == d0b) && Ekb(a.j, d);
+ n = d.d;
+ m = n.i.c;
+ m == c ? Qqb(a.f, n) : m == b ? Qqb(a.e, n) : Lkb(a.c, d);
+ }
+ }
+ }
+ }
+ if (c) {
+ for (g = new olb(c.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 10);
+ for (j = new olb(f.j); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 11);
+ for (e = new olb(i.g); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ OZb(d) && Qqb(a.g, d);
+ }
+ }
+ for (l = Y_b(f, (Ucd(), Tcd)).Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 11);
+ Qqb(a.f, k);
+ for (e = new olb(k.g); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ if (OZb(d)) {
+ continue;
+ }
+ Ekb(a.c, d);
+ oQc(a, d);
+ h = d.c.i.k;
+ (h == (j0b(), h0b) || h == i0b || h == e0b || h == d0b) && Ekb(a.j, d);
+ n = d.d;
+ m = n.i.c;
+ m == c ? Qqb(a.f, n) : m == b ? Qqb(a.e, n) : Lkb(a.c, d);
+ }
+ }
+ }
+ }
+ }
+ function Afd(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w;
+ q = new f7c(a.g, a.f);
+ p = rfd(a);
+ p.a = $wnd.Math.max(p.a, b);
+ p.b = $wnd.Math.max(p.b, c);
+ w = p.a / q.a;
+ k = p.b / q.b;
+ u = p.a - q.a;
+ i = p.b - q.b;
+ if (d) {
+ g = !Xod(a) ? BD(hkd(a, (Y9c(), z8c)), 103) : BD(hkd(Xod(a), (Y9c(), z8c)), 103);
+ h = PD(hkd(a, (Y9c(), t9c))) === PD((dcd(), $bd));
+ for (s = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); s.e != s.i.gc(); ) {
+ r = BD(Dyd(s), 118);
+ t = BD(hkd(r, A9c), 61);
+ if (t == (Ucd(), Scd)) {
+ t = lfd(r, g);
+ jkd(r, A9c, t);
+ }
+ switch (t.g) {
+ case 1:
+ h || dld(r, r.i * w);
+ break;
+ case 2:
+ dld(r, r.i + u);
+ h || eld(r, r.j * k);
+ break;
+ case 3:
+ h || dld(r, r.i * w);
+ eld(r, r.j + i);
+ break;
+ case 4:
+ h || eld(r, r.j * k);
+ }
+ }
+ }
+ _kd(a, p.a, p.b);
+ if (e) {
+ for (m = new Fyd((!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n)); m.e != m.i.gc(); ) {
+ l = BD(Dyd(m), 137);
+ n = l.i + l.g / 2;
+ o2 = l.j + l.f / 2;
+ v = n / q.a;
+ j = o2 / q.b;
+ if (v + j >= 1) {
+ if (v - j > 0 && o2 >= 0) {
+ dld(l, l.i + u);
+ eld(l, l.j + i * j);
+ } else if (v - j < 0 && n >= 0) {
+ dld(l, l.i + u * v);
+ eld(l, l.j + i);
+ }
+ }
+ }
+ }
+ jkd(a, (Y9c(), Y8c), (tdd(), f = BD(gdb(I1), 9), new xqb(f, BD(_Bb(f, f.length), 9), 0)));
+ return new f7c(w, k);
+ }
+ function Yfd(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ n = Xod(atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)));
+ o2 = Xod(atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)));
+ l = n == o2;
+ h = new d7c();
+ b = BD(hkd(a, (Zad(), Sad)), 74);
+ if (!!b && b.b >= 2) {
+ if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) {
+ c = (Fhd(), e = new rmd(), e);
+ wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), c);
+ } else if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i > 1) {
+ m = new Oyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a));
+ while (m.e != m.i.gc()) {
+ Eyd(m);
+ }
+ }
+ ifd(b, BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202));
+ }
+ if (l) {
+ for (d = new Fyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a)); d.e != d.i.gc(); ) {
+ c = BD(Dyd(d), 202);
+ for (j = new Fyd((!c.a && (c.a = new xMd(y2, c, 5)), c.a)); j.e != j.i.gc(); ) {
+ i = BD(Dyd(j), 469);
+ h.a = $wnd.Math.max(h.a, i.a);
+ h.b = $wnd.Math.max(h.b, i.b);
+ }
+ }
+ }
+ for (g = new Fyd((!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n)); g.e != g.i.gc(); ) {
+ f = BD(Dyd(g), 137);
+ k = BD(hkd(f, Yad), 8);
+ !!k && bld(f, k.a, k.b);
+ if (l) {
+ h.a = $wnd.Math.max(h.a, f.i + f.g);
+ h.b = $wnd.Math.max(h.b, f.j + f.f);
+ }
+ }
+ return h;
+ }
+ function yMc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B;
+ t = b.c.length;
+ e = new ULc(a.a, c, null, null);
+ B = KC(UD, Vje, 25, t, 15, 1);
+ p = KC(UD, Vje, 25, t, 15, 1);
+ o2 = KC(UD, Vje, 25, t, 15, 1);
+ q = 0;
+ for (h = 0; h < t; h++) {
+ p[h] = Ohe;
+ o2[h] = Rie;
+ }
+ for (i = 0; i < t; i++) {
+ d = (tCb(i, b.c.length), BD(b.c[i], 180));
+ B[i] = SLc(d);
+ B[q] > B[i] && (q = i);
+ for (l = new olb(a.a.b); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 29);
+ for (s = new olb(k.a); s.a < s.c.c.length; ) {
+ r = BD(mlb(s), 10);
+ w = Edb(d.p[r.p]) + Edb(d.d[r.p]);
+ p[i] = $wnd.Math.min(p[i], w);
+ o2[i] = $wnd.Math.max(o2[i], w + r.o.b);
+ }
+ }
+ }
+ A = KC(UD, Vje, 25, t, 15, 1);
+ for (j = 0; j < t; j++) {
+ (tCb(j, b.c.length), BD(b.c[j], 180)).o == (eMc(), cMc) ? A[j] = p[q] - p[j] : A[j] = o2[q] - o2[j];
+ }
+ f = KC(UD, Vje, 25, t, 15, 1);
+ for (n = new olb(a.a.b); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 29);
+ for (v = new olb(m.a); v.a < v.c.c.length; ) {
+ u = BD(mlb(v), 10);
+ for (g = 0; g < t; g++) {
+ f[g] = Edb((tCb(g, b.c.length), BD(b.c[g], 180)).p[u.p]) + Edb((tCb(g, b.c.length), BD(b.c[g], 180)).d[u.p]) + A[g];
+ }
+ f.sort(dcb(Ylb.prototype.te, Ylb, []));
+ e.p[u.p] = (f[1] + f[2]) / 2;
+ e.d[u.p] = 0;
+ }
+ }
+ return e;
+ }
+ function G3b(a, b, c) {
+ var d, e, f, g, h;
+ d = b.i;
+ f = a.i.o;
+ e = a.i.d;
+ h = a.n;
+ g = l7c(OC(GC(m1, 1), nie, 8, 0, [h, a.a]));
+ switch (a.j.g) {
+ case 1:
+ _Hb(b, (EIb(), BIb));
+ d.d = -e.d - c - d.a;
+ if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
+ $Hb(b, (NHb(), MHb));
+ d.c = g.a - Edb(ED(vNb(a, Ysc))) - c - d.b;
+ } else {
+ $Hb(b, (NHb(), LHb));
+ d.c = g.a + Edb(ED(vNb(a, Ysc))) + c;
+ }
+ break;
+ case 2:
+ $Hb(b, (NHb(), LHb));
+ d.c = f.a + e.c + c;
+ if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
+ _Hb(b, (EIb(), BIb));
+ d.d = g.b - Edb(ED(vNb(a, Ysc))) - c - d.a;
+ } else {
+ _Hb(b, (EIb(), DIb));
+ d.d = g.b + Edb(ED(vNb(a, Ysc))) + c;
+ }
+ break;
+ case 3:
+ _Hb(b, (EIb(), DIb));
+ d.d = f.b + e.a + c;
+ if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
+ $Hb(b, (NHb(), MHb));
+ d.c = g.a - Edb(ED(vNb(a, Ysc))) - c - d.b;
+ } else {
+ $Hb(b, (NHb(), LHb));
+ d.c = g.a + Edb(ED(vNb(a, Ysc))) + c;
+ }
+ break;
+ case 4:
+ $Hb(b, (NHb(), MHb));
+ d.c = -e.b - c - d.b;
+ if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
+ _Hb(b, (EIb(), BIb));
+ d.d = g.b - Edb(ED(vNb(a, Ysc))) - c - d.a;
+ } else {
+ _Hb(b, (EIb(), DIb));
+ d.d = g.b + Edb(ED(vNb(a, Ysc))) + c;
+ }
+ }
+ }
+ function ded(a, b, c, d, e, f, g) {
+ var h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I;
+ n = 0;
+ D = 0;
+ for (i = new olb(a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 33);
+ zfd(h);
+ n = $wnd.Math.max(n, h.g);
+ D += h.g * h.f;
+ }
+ o2 = D / a.c.length;
+ C = $dd(a, o2);
+ D += a.c.length * C;
+ n = $wnd.Math.max(n, $wnd.Math.sqrt(D * g)) + c.b;
+ H = c.b;
+ I = c.d;
+ m = 0;
+ k = c.b + c.c;
+ B = new Psb();
+ Dsb(B, meb(0));
+ w = new Psb();
+ j = new Bib(a, 0);
+ while (j.b < j.d.gc()) {
+ h = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 33));
+ G = h.g;
+ l = h.f;
+ if (H + G > n) {
+ if (f) {
+ Fsb(w, m);
+ Fsb(B, meb(j.b - 1));
+ }
+ H = c.b;
+ I += m + b;
+ m = 0;
+ k = $wnd.Math.max(k, c.b + c.c + G);
+ }
+ dld(h, H);
+ eld(h, I);
+ k = $wnd.Math.max(k, H + G + c.c);
+ m = $wnd.Math.max(m, l);
+ H += G + b;
+ }
+ k = $wnd.Math.max(k, d);
+ F = I + m + c.a;
+ if (F < e) {
+ m += e - F;
+ F = e;
+ }
+ if (f) {
+ H = c.b;
+ j = new Bib(a, 0);
+ Fsb(B, meb(a.c.length));
+ A = Jsb(B, 0);
+ r = BD(Xsb(A), 19).a;
+ Fsb(w, m);
+ v = Jsb(w, 0);
+ u = 0;
+ while (j.b < j.d.gc()) {
+ if (j.b == r) {
+ H = c.b;
+ u = Edb(ED(Xsb(v)));
+ r = BD(Xsb(A), 19).a;
+ }
+ h = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 33));
+ s = h.f;
+ ald(h, u);
+ p = u;
+ if (j.b == r) {
+ q = k - H - c.c;
+ t = h.g;
+ cld(h, q);
+ Ffd(h, new f7c(q, p), new f7c(t, s));
+ }
+ H += h.g + b;
+ }
+ }
+ return new f7c(k, F);
+ }
+ function _Yb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C;
+ Odd(b, "Compound graph postprocessor", 1);
+ c = Ccb(DD(vNb(a, (Nyc(), Byc))));
+ h = BD(vNb(a, (wtc(), zsc)), 224);
+ k = new Tqb();
+ for (r = h.ec().Kc(); r.Ob(); ) {
+ q = BD(r.Pb(), 17);
+ g = new Tkb(h.cc(q));
+ mmb();
+ Okb(g, new EZb(a));
+ v = zZb((tCb(0, g.c.length), BD(g.c[0], 243)));
+ A = AZb(BD(Ikb(g, g.c.length - 1), 243));
+ t = v.i;
+ f_b(A.i, t) ? s = t.e : s = Q_b(t);
+ l = aZb(q, g);
+ Osb(q.a);
+ m = null;
+ for (f = new olb(g); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 243);
+ p = new d7c();
+ Y$b(p, e.a, s);
+ n = e.b;
+ d = new s7c();
+ o7c(d, 0, n.a);
+ q7c(d, p);
+ u = new g7c(A0b(n.c));
+ w = new g7c(A0b(n.d));
+ P6c(u, p);
+ P6c(w, p);
+ if (m) {
+ d.b == 0 ? o2 = w : o2 = (sCb(d.b != 0), BD(d.a.a.c, 8));
+ B = $wnd.Math.abs(m.a - o2.a) > qme;
+ C = $wnd.Math.abs(m.b - o2.b) > qme;
+ (!c && B && C || c && (B || C)) && Dsb(q.a, u);
+ }
+ ye(q.a, d);
+ d.b == 0 ? m = u : m = (sCb(d.b != 0), BD(d.c.b.c, 8));
+ bZb(n, l, p);
+ if (AZb(e) == A) {
+ if (Q_b(A.i) != e.a) {
+ p = new d7c();
+ Y$b(p, Q_b(A.i), s);
+ }
+ yNb(q, utc, p);
+ }
+ cZb(n, q, s);
+ k.a.zc(n, k);
+ }
+ QZb(q, v);
+ RZb(q, A);
+ }
+ for (j = k.a.ec().Kc(); j.Ob(); ) {
+ i = BD(j.Pb(), 17);
+ QZb(i, null);
+ RZb(i, null);
+ }
+ Qdd(b);
+ }
+ function KQb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ if (a.gc() == 1) {
+ return BD(a.Xb(0), 231);
+ } else if (a.gc() <= 0) {
+ return new kRb();
+ }
+ for (e = a.Kc(); e.Ob(); ) {
+ c = BD(e.Pb(), 231);
+ o2 = 0;
+ k = Ohe;
+ l = Ohe;
+ i = Rie;
+ j = Rie;
+ for (n = new olb(c.e); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 144);
+ o2 += BD(vNb(m, (wSb(), oSb)), 19).a;
+ k = $wnd.Math.min(k, m.d.a - m.e.a / 2);
+ l = $wnd.Math.min(l, m.d.b - m.e.b / 2);
+ i = $wnd.Math.max(i, m.d.a + m.e.a / 2);
+ j = $wnd.Math.max(j, m.d.b + m.e.b / 2);
+ }
+ yNb(c, (wSb(), oSb), meb(o2));
+ yNb(c, (HSb(), ESb), new f7c(k, l));
+ yNb(c, DSb, new f7c(i, j));
+ }
+ mmb();
+ a.ad(new OQb());
+ p = new kRb();
+ tNb(p, BD(a.Xb(0), 94));
+ h = 0;
+ s = 0;
+ for (f = a.Kc(); f.Ob(); ) {
+ c = BD(f.Pb(), 231);
+ q = c7c(R6c(BD(vNb(c, (HSb(), DSb)), 8)), BD(vNb(c, ESb), 8));
+ h = $wnd.Math.max(h, q.a);
+ s += q.a * q.b;
+ }
+ h = $wnd.Math.max(h, $wnd.Math.sqrt(s) * Edb(ED(vNb(p, (wSb(), bSb)))));
+ r = Edb(ED(vNb(p, uSb)));
+ t = 0;
+ u = 0;
+ g = 0;
+ b = r;
+ for (d = a.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 231);
+ q = c7c(R6c(BD(vNb(c, (HSb(), DSb)), 8)), BD(vNb(c, ESb), 8));
+ if (t + q.a > h) {
+ t = 0;
+ u += g + r;
+ g = 0;
+ }
+ JQb(p, c, t, u);
+ b = $wnd.Math.max(b, t + q.a);
+ g = $wnd.Math.max(g, q.b);
+ t += q.a + r;
+ }
+ return p;
+ }
+ function Ioc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ k = new s7c();
+ switch (a.a.g) {
+ case 3:
+ m = BD(vNb(b.e, (wtc(), rtc)), 15);
+ n = BD(vNb(b.j, rtc), 15);
+ o2 = BD(vNb(b.f, rtc), 15);
+ c = BD(vNb(b.e, ptc), 15);
+ d = BD(vNb(b.j, ptc), 15);
+ e = BD(vNb(b.f, ptc), 15);
+ g = new Rkb();
+ Gkb(g, m);
+ n.Jc(new Loc());
+ Gkb(g, JD(n, 152) ? km(BD(n, 152)) : JD(n, 131) ? BD(n, 131).a : JD(n, 54) ? new ov(n) : new dv(n));
+ Gkb(g, o2);
+ f = new Rkb();
+ Gkb(f, c);
+ Gkb(f, JD(d, 152) ? km(BD(d, 152)) : JD(d, 131) ? BD(d, 131).a : JD(d, 54) ? new ov(d) : new dv(d));
+ Gkb(f, e);
+ yNb(b.f, rtc, g);
+ yNb(b.f, ptc, f);
+ yNb(b.f, stc, b.f);
+ yNb(b.e, rtc, null);
+ yNb(b.e, ptc, null);
+ yNb(b.j, rtc, null);
+ yNb(b.j, ptc, null);
+ break;
+ case 1:
+ ye(k, b.e.a);
+ Dsb(k, b.i.n);
+ ye(k, Su(b.j.a));
+ Dsb(k, b.a.n);
+ ye(k, b.f.a);
+ break;
+ default:
+ ye(k, b.e.a);
+ ye(k, Su(b.j.a));
+ ye(k, b.f.a);
+ }
+ Osb(b.f.a);
+ ye(b.f.a, k);
+ QZb(b.f, b.e.c);
+ h = BD(vNb(b.e, (Nyc(), jxc)), 74);
+ j = BD(vNb(b.j, jxc), 74);
+ i = BD(vNb(b.f, jxc), 74);
+ if (!!h || !!j || !!i) {
+ l = new s7c();
+ Goc(l, i);
+ Goc(l, j);
+ Goc(l, h);
+ yNb(b.f, jxc, l);
+ }
+ QZb(b.j, null);
+ RZb(b.j, null);
+ QZb(b.e, null);
+ RZb(b.e, null);
+ $_b(b.a, null);
+ $_b(b.i, null);
+ !!b.g && Ioc(a, b.g);
+ }
+ function bde(a) {
+ ade();
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ if (a == null)
+ return null;
+ f = rfb(a);
+ o2 = ede(f);
+ if (o2 % 4 != 0) {
+ return null;
+ }
+ p = o2 / 4 | 0;
+ if (p == 0)
+ return KC(SD, wte, 25, 0, 15, 1);
+ l = null;
+ b = 0;
+ c = 0;
+ d = 0;
+ e = 0;
+ g = 0;
+ h = 0;
+ i = 0;
+ j = 0;
+ n = 0;
+ m = 0;
+ k = 0;
+ l = KC(SD, wte, 25, p * 3, 15, 1);
+ for (; n < p - 1; n++) {
+ if (!dde(g = f[k++]) || !dde(h = f[k++]) || !dde(i = f[k++]) || !dde(j = f[k++]))
+ return null;
+ b = $ce[g];
+ c = $ce[h];
+ d = $ce[i];
+ e = $ce[j];
+ l[m++] = (b << 2 | c >> 4) << 24 >> 24;
+ l[m++] = ((c & 15) << 4 | d >> 2 & 15) << 24 >> 24;
+ l[m++] = (d << 6 | e) << 24 >> 24;
+ }
+ if (!dde(g = f[k++]) || !dde(h = f[k++])) {
+ return null;
+ }
+ b = $ce[g];
+ c = $ce[h];
+ i = f[k++];
+ j = f[k++];
+ if ($ce[i] == -1 || $ce[j] == -1) {
+ if (i == 61 && j == 61) {
+ if ((c & 15) != 0)
+ return null;
+ q = KC(SD, wte, 25, n * 3 + 1, 15, 1);
+ $fb(l, 0, q, 0, n * 3);
+ q[m] = (b << 2 | c >> 4) << 24 >> 24;
+ return q;
+ } else if (i != 61 && j == 61) {
+ d = $ce[i];
+ if ((d & 3) != 0)
+ return null;
+ q = KC(SD, wte, 25, n * 3 + 2, 15, 1);
+ $fb(l, 0, q, 0, n * 3);
+ q[m++] = (b << 2 | c >> 4) << 24 >> 24;
+ q[m] = ((c & 15) << 4 | d >> 2 & 15) << 24 >> 24;
+ return q;
+ } else {
+ return null;
+ }
+ } else {
+ d = $ce[i];
+ e = $ce[j];
+ l[m++] = (b << 2 | c >> 4) << 24 >> 24;
+ l[m++] = ((c & 15) << 4 | d >> 2 & 15) << 24 >> 24;
+ l[m++] = (d << 6 | e) << 24 >> 24;
+ }
+ return l;
+ }
+ function Sbc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v;
+ Odd(b, Ine, 1);
+ o2 = BD(vNb(a, (Nyc(), Swc)), 218);
+ for (e = new olb(a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 29);
+ j = l_b(d.a);
+ for (g = j, h = 0, i = g.length; h < i; ++h) {
+ f = g[h];
+ if (f.k != (j0b(), i0b)) {
+ continue;
+ }
+ if (o2 == (Aad(), yad)) {
+ for (l = new olb(f.j); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 11);
+ k.e.c.length == 0 || Vbc(k);
+ k.g.c.length == 0 || Wbc(k);
+ }
+ } else if (JD(vNb(f, (wtc(), $sc)), 17)) {
+ q = BD(vNb(f, $sc), 17);
+ r = BD(Y_b(f, (Ucd(), Tcd)).Kc().Pb(), 11);
+ s = BD(Y_b(f, zcd).Kc().Pb(), 11);
+ t = BD(vNb(r, $sc), 11);
+ u = BD(vNb(s, $sc), 11);
+ QZb(q, u);
+ RZb(q, t);
+ v = new g7c(s.i.n);
+ v.a = l7c(OC(GC(m1, 1), nie, 8, 0, [u.i.n, u.n, u.a])).a;
+ Dsb(q.a, v);
+ v = new g7c(r.i.n);
+ v.a = l7c(OC(GC(m1, 1), nie, 8, 0, [t.i.n, t.n, t.a])).a;
+ Dsb(q.a, v);
+ } else {
+ if (f.j.c.length >= 2) {
+ p = true;
+ m = new olb(f.j);
+ c = BD(mlb(m), 11);
+ n = null;
+ while (m.a < m.c.c.length) {
+ n = c;
+ c = BD(mlb(m), 11);
+ if (!pb(vNb(n, $sc), vNb(c, $sc))) {
+ p = false;
+ break;
+ }
+ }
+ } else {
+ p = false;
+ }
+ for (l = new olb(f.j); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 11);
+ k.e.c.length == 0 || Tbc(k, p);
+ k.g.c.length == 0 || Ubc(k, p);
+ }
+ }
+ $_b(f, null);
+ }
+ }
+ Qdd(b);
+ }
+ function KJc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B;
+ t = a.c[(tCb(0, b.c.length), BD(b.c[0], 17)).p];
+ A = a.c[(tCb(1, b.c.length), BD(b.c[1], 17)).p];
+ if (t.a.e.e - t.a.a - (t.b.e.e - t.b.a) == 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) == 0) {
+ return false;
+ }
+ r = t.b.e.f;
+ if (!JD(r, 10)) {
+ return false;
+ }
+ q = BD(r, 10);
+ v = a.i[q.p];
+ w = !q.c ? -1 : Jkb(q.c.a, q, 0);
+ f = Pje;
+ if (w > 0) {
+ e = BD(Ikb(q.c.a, w - 1), 10);
+ g = a.i[e.p];
+ B = $wnd.Math.ceil(jBc(a.n, e, q));
+ f = v.a.e - q.d.d - (g.a.e + e.o.b + e.d.a) - B;
+ }
+ j = Pje;
+ if (w < q.c.a.c.length - 1) {
+ i = BD(Ikb(q.c.a, w + 1), 10);
+ k = a.i[i.p];
+ B = $wnd.Math.ceil(jBc(a.n, i, q));
+ j = k.a.e - i.d.d - (v.a.e + q.o.b + q.d.a) - B;
+ }
+ if (c && (Iy(), My(Jqe), $wnd.Math.abs(f - j) <= Jqe || f == j || isNaN(f) && isNaN(j))) {
+ return true;
+ }
+ d = gKc(t.a);
+ h = -gKc(t.b);
+ l = -gKc(A.a);
+ s = gKc(A.b);
+ p = t.a.e.e - t.a.a - (t.b.e.e - t.b.a) > 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) < 0;
+ o2 = t.a.e.e - t.a.a - (t.b.e.e - t.b.a) < 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) > 0;
+ n = t.a.e.e + t.b.a < A.b.e.e + A.a.a;
+ m = t.a.e.e + t.b.a > A.b.e.e + A.a.a;
+ u = 0;
+ !p && !o2 && (m ? f + l > 0 ? u = l : j - d > 0 && (u = d) : n && (f + h > 0 ? u = h : j - s > 0 && (u = s)));
+ v.a.e += u;
+ v.b && (v.d.e += u);
+ return false;
+ }
+ function XGb(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ d = new J6c(b.qf().a, b.qf().b, b.rf().a, b.rf().b);
+ e = new I6c();
+ if (a.c) {
+ for (g = new olb(b.wf()); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 181);
+ e.c = f.qf().a + b.qf().a;
+ e.d = f.qf().b + b.qf().b;
+ e.b = f.rf().a;
+ e.a = f.rf().b;
+ H6c(d, e);
+ }
+ }
+ for (j = new olb(b.Cf()); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 838);
+ k = i.qf().a + b.qf().a;
+ l = i.qf().b + b.qf().b;
+ if (a.e) {
+ e.c = k;
+ e.d = l;
+ e.b = i.rf().a;
+ e.a = i.rf().b;
+ H6c(d, e);
+ }
+ if (a.d) {
+ for (g = new olb(i.wf()); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 181);
+ e.c = f.qf().a + k;
+ e.d = f.qf().b + l;
+ e.b = f.rf().a;
+ e.a = f.rf().b;
+ H6c(d, e);
+ }
+ }
+ if (a.b) {
+ m = new f7c(-c, -c);
+ if (BD(b.We((Y9c(), x9c)), 174).Hc((rcd(), pcd))) {
+ for (g = new olb(i.wf()); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 181);
+ m.a += f.rf().a + c;
+ m.b += f.rf().b + c;
+ }
+ }
+ m.a = $wnd.Math.max(m.a, 0);
+ m.b = $wnd.Math.max(m.b, 0);
+ VGb(d, i.Bf(), i.zf(), b, i, m, c);
+ }
+ }
+ a.b && VGb(d, b.Bf(), b.zf(), b, null, null, c);
+ h = new K_b(b.Af());
+ h.d = $wnd.Math.max(0, b.qf().b - d.d);
+ h.a = $wnd.Math.max(0, d.d + d.a - (b.qf().b + b.rf().b));
+ h.b = $wnd.Math.max(0, b.qf().a - d.c);
+ h.c = $wnd.Math.max(0, d.c + d.b - (b.qf().a + b.rf().a));
+ b.Ef(h);
+ }
+ function wz() {
+ var a = ["\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\u000B", "\\f", "\\r", "\\u000E", "\\u000F", "\\u0010", "\\u0011", "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", "\\u001A", "\\u001B", "\\u001C", "\\u001D", "\\u001E", "\\u001F"];
+ a[34] = '\\"';
+ a[92] = "\\\\";
+ a[173] = "\\u00ad";
+ a[1536] = "\\u0600";
+ a[1537] = "\\u0601";
+ a[1538] = "\\u0602";
+ a[1539] = "\\u0603";
+ a[1757] = "\\u06dd";
+ a[1807] = "\\u070f";
+ a[6068] = "\\u17b4";
+ a[6069] = "\\u17b5";
+ a[8203] = "\\u200b";
+ a[8204] = "\\u200c";
+ a[8205] = "\\u200d";
+ a[8206] = "\\u200e";
+ a[8207] = "\\u200f";
+ a[8232] = "\\u2028";
+ a[8233] = "\\u2029";
+ a[8234] = "\\u202a";
+ a[8235] = "\\u202b";
+ a[8236] = "\\u202c";
+ a[8237] = "\\u202d";
+ a[8238] = "\\u202e";
+ a[8288] = "\\u2060";
+ a[8289] = "\\u2061";
+ a[8290] = "\\u2062";
+ a[8291] = "\\u2063";
+ a[8292] = "\\u2064";
+ a[8298] = "\\u206a";
+ a[8299] = "\\u206b";
+ a[8300] = "\\u206c";
+ a[8301] = "\\u206d";
+ a[8302] = "\\u206e";
+ a[8303] = "\\u206f";
+ a[65279] = "\\ufeff";
+ a[65529] = "\\ufff9";
+ a[65530] = "\\ufffa";
+ a[65531] = "\\ufffb";
+ return a;
+ }
+ function pid(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m;
+ i = new Rkb();
+ l = b.length;
+ g = AUd(c);
+ for (j = 0; j < l; ++j) {
+ k = ifb(b, wfb(61), j);
+ d = $hd(g, b.substr(j, k - j));
+ e = KJd(d);
+ f = e.Aj().Nh();
+ switch (bfb(b, ++k)) {
+ case 39: {
+ h = gfb(b, 39, ++k);
+ Ekb(i, new kGd(d, Pid(b.substr(k, h - k), f, e)));
+ j = h + 1;
+ break;
+ }
+ case 34: {
+ h = gfb(b, 34, ++k);
+ Ekb(i, new kGd(d, Pid(b.substr(k, h - k), f, e)));
+ j = h + 1;
+ break;
+ }
+ case 91: {
+ m = new Rkb();
+ Ekb(i, new kGd(d, m));
+ n:
+ for (; ; ) {
+ switch (bfb(b, ++k)) {
+ case 39: {
+ h = gfb(b, 39, ++k);
+ Ekb(m, Pid(b.substr(k, h - k), f, e));
+ k = h + 1;
+ break;
+ }
+ case 34: {
+ h = gfb(b, 34, ++k);
+ Ekb(m, Pid(b.substr(k, h - k), f, e));
+ k = h + 1;
+ break;
+ }
+ case 110: {
+ ++k;
+ if (b.indexOf("ull", k) == k) {
+ m.c[m.c.length] = null;
+ } else {
+ throw vbb(new hz(kte));
+ }
+ k += 3;
+ break;
+ }
+ }
+ if (k < l) {
+ switch (BCb(k, b.length), b.charCodeAt(k)) {
+ case 44: {
+ break;
+ }
+ case 93: {
+ break n;
+ }
+ default: {
+ throw vbb(new hz("Expecting , or ]"));
+ }
+ }
+ } else {
+ break;
+ }
+ }
+ j = k + 1;
+ break;
+ }
+ case 110: {
+ ++k;
+ if (b.indexOf("ull", k) == k) {
+ Ekb(i, new kGd(d, null));
+ } else {
+ throw vbb(new hz(kte));
+ }
+ j = k + 3;
+ break;
+ }
+ }
+ if (j < l) {
+ BCb(j, b.length);
+ if (b.charCodeAt(j) != 44) {
+ throw vbb(new hz("Expecting ,"));
+ }
+ } else {
+ break;
+ }
+ }
+ return qid(a, i, c);
+ }
+ function AKb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ j = BD(BD(Qc(a.r, b), 21), 84);
+ g = bKb(a, b);
+ c = a.u.Hc((rcd(), lcd));
+ for (i = j.Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 111);
+ if (!h.c || h.c.d.c.length <= 0) {
+ continue;
+ }
+ m = h.b.rf();
+ k = h.c;
+ l = k.i;
+ l.b = (f = k.n, k.e.a + f.b + f.c);
+ l.a = (e = k.n, k.e.b + e.d + e.a);
+ switch (b.g) {
+ case 1:
+ if (h.a) {
+ l.c = (m.a - l.b) / 2;
+ $Hb(k, (NHb(), KHb));
+ } else if (g || c) {
+ l.c = -l.b - a.s;
+ $Hb(k, (NHb(), MHb));
+ } else {
+ l.c = m.a + a.s;
+ $Hb(k, (NHb(), LHb));
+ }
+ l.d = -l.a - a.t;
+ _Hb(k, (EIb(), BIb));
+ break;
+ case 3:
+ if (h.a) {
+ l.c = (m.a - l.b) / 2;
+ $Hb(k, (NHb(), KHb));
+ } else if (g || c) {
+ l.c = -l.b - a.s;
+ $Hb(k, (NHb(), MHb));
+ } else {
+ l.c = m.a + a.s;
+ $Hb(k, (NHb(), LHb));
+ }
+ l.d = m.b + a.t;
+ _Hb(k, (EIb(), DIb));
+ break;
+ case 2:
+ if (h.a) {
+ d = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
+ l.d = (m.b - d) / 2;
+ _Hb(k, (EIb(), CIb));
+ } else if (g || c) {
+ l.d = -l.a - a.t;
+ _Hb(k, (EIb(), BIb));
+ } else {
+ l.d = m.b + a.t;
+ _Hb(k, (EIb(), DIb));
+ }
+ l.c = m.a + a.s;
+ $Hb(k, (NHb(), LHb));
+ break;
+ case 4:
+ if (h.a) {
+ d = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
+ l.d = (m.b - d) / 2;
+ _Hb(k, (EIb(), CIb));
+ } else if (g || c) {
+ l.d = -l.a - a.t;
+ _Hb(k, (EIb(), BIb));
+ } else {
+ l.d = m.b + a.t;
+ _Hb(k, (EIb(), DIb));
+ }
+ l.c = -l.b - a.s;
+ $Hb(k, (NHb(), MHb));
+ }
+ g = false;
+ }
+ }
+ function Kfe(a, b) {
+ wfe();
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ if (Vhb(Zee) == 0) {
+ l = KC(lbb, nie, 117, _ee.length, 0, 1);
+ for (g = 0; g < l.length; g++) {
+ l[g] = new $fe(4);
+ }
+ d = new Ifb();
+ for (f = 0; f < Yee.length; f++) {
+ k = new $fe(4);
+ if (f < 84) {
+ h = f * 2;
+ n = (BCb(h, wxe.length), wxe.charCodeAt(h));
+ m = (BCb(h + 1, wxe.length), wxe.charCodeAt(h + 1));
+ Ufe(k, n, m);
+ } else {
+ h = (f - 84) * 2;
+ Ufe(k, afe[h], afe[h + 1]);
+ }
+ i = Yee[f];
+ dfb(i, "Specials") && Ufe(k, 65520, 65533);
+ if (dfb(i, uxe)) {
+ Ufe(k, 983040, 1048573);
+ Ufe(k, 1048576, 1114109);
+ }
+ Shb(Zee, i, k);
+ Shb($ee, i, _fe(k));
+ j = d.a.length;
+ 0 < j ? d.a = d.a.substr(0, 0) : 0 > j && (d.a += yfb(KC(TD, $ie, 25, -j, 15, 1)));
+ d.a += "Is";
+ if (hfb(i, wfb(32)) >= 0) {
+ for (e = 0; e < i.length; e++) {
+ BCb(e, i.length);
+ i.charCodeAt(e) != 32 && Afb(d, (BCb(e, i.length), i.charCodeAt(e)));
+ }
+ } else {
+ d.a += "" + i;
+ }
+ Ofe(d.a, i, true);
+ }
+ Ofe(vxe, "Cn", false);
+ Ofe(xxe, "Cn", true);
+ c = new $fe(4);
+ Ufe(c, 0, lxe);
+ Shb(Zee, "ALL", c);
+ Shb($ee, "ALL", _fe(c));
+ !bfe && (bfe = new Lqb());
+ Shb(bfe, vxe, vxe);
+ !bfe && (bfe = new Lqb());
+ Shb(bfe, xxe, xxe);
+ !bfe && (bfe = new Lqb());
+ Shb(bfe, "ALL", "ALL");
+ }
+ o2 = b ? BD(Phb(Zee, a), 136) : BD(Phb($ee, a), 136);
+ return o2;
+ }
+ function c3b(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s;
+ m = false;
+ l = false;
+ if (fcd(BD(vNb(d, (Nyc(), Vxc)), 98))) {
+ g = false;
+ h = false;
+ t:
+ for (o2 = new olb(d.j); o2.a < o2.c.c.length; ) {
+ n = BD(mlb(o2), 11);
+ for (q = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(n), new R0b(n)]))); Qr(q); ) {
+ p = BD(Rr(q), 11);
+ if (!Ccb(DD(vNb(p.i, pwc)))) {
+ if (n.j == (Ucd(), Acd)) {
+ g = true;
+ break t;
+ }
+ if (n.j == Rcd) {
+ h = true;
+ break t;
+ }
+ }
+ }
+ }
+ m = h && !g;
+ l = g && !h;
+ }
+ if (!m && !l && d.b.c.length != 0) {
+ k = 0;
+ for (j = new olb(d.b); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 70);
+ k += i.n.b + i.o.b / 2;
+ }
+ k /= d.b.c.length;
+ s = k >= d.o.b / 2;
+ } else {
+ s = !l;
+ }
+ if (s) {
+ r = BD(vNb(d, (wtc(), vtc)), 15);
+ if (!r) {
+ f = new Rkb();
+ yNb(d, vtc, f);
+ } else if (m) {
+ f = r;
+ } else {
+ e = BD(vNb(d, tsc), 15);
+ if (!e) {
+ f = new Rkb();
+ yNb(d, tsc, f);
+ } else {
+ r.gc() <= e.gc() ? f = r : f = e;
+ }
+ }
+ } else {
+ e = BD(vNb(d, (wtc(), tsc)), 15);
+ if (!e) {
+ f = new Rkb();
+ yNb(d, tsc, f);
+ } else if (l) {
+ f = e;
+ } else {
+ r = BD(vNb(d, vtc), 15);
+ if (!r) {
+ f = new Rkb();
+ yNb(d, vtc, f);
+ } else {
+ e.gc() <= r.gc() ? f = e : f = r;
+ }
+ }
+ }
+ f.Fc(a);
+ yNb(a, (wtc(), vsc), c);
+ if (b.d == c) {
+ RZb(b, null);
+ c.e.c.length + c.g.c.length == 0 && F0b(c, null);
+ d3b(c);
+ } else {
+ QZb(b, null);
+ c.e.c.length + c.g.c.length == 0 && F0b(c, null);
+ }
+ Osb(b.a);
+ }
+ function aoc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H;
+ s = new Bib(a.b, 0);
+ k = b.Kc();
+ o2 = 0;
+ j = BD(k.Pb(), 19).a;
+ v = 0;
+ c = new Tqb();
+ A = new zsb();
+ while (s.b < s.d.gc()) {
+ r = (sCb(s.b < s.d.gc()), BD(s.d.Xb(s.c = s.b++), 29));
+ for (u = new olb(r.a); u.a < u.c.c.length; ) {
+ t = BD(mlb(u), 10);
+ for (n = new Sr(ur(U_b(t).a.Kc(), new Sq())); Qr(n); ) {
+ l = BD(Rr(n), 17);
+ A.a.zc(l, A);
+ }
+ for (m = new Sr(ur(R_b(t).a.Kc(), new Sq())); Qr(m); ) {
+ l = BD(Rr(m), 17);
+ A.a.Bc(l) != null;
+ }
+ }
+ if (o2 + 1 == j) {
+ e = new H1b(a);
+ Aib(s, e);
+ f = new H1b(a);
+ Aib(s, f);
+ for (C = A.a.ec().Kc(); C.Ob(); ) {
+ B = BD(C.Pb(), 17);
+ if (!c.a._b(B)) {
+ ++v;
+ c.a.zc(B, c);
+ }
+ g = new b0b(a);
+ yNb(g, (Nyc(), Vxc), (dcd(), acd));
+ $_b(g, e);
+ __b(g, (j0b(), d0b));
+ p = new H0b();
+ F0b(p, g);
+ G0b(p, (Ucd(), Tcd));
+ D = new H0b();
+ F0b(D, g);
+ G0b(D, zcd);
+ d = new b0b(a);
+ yNb(d, Vxc, acd);
+ $_b(d, f);
+ __b(d, d0b);
+ q = new H0b();
+ F0b(q, d);
+ G0b(q, Tcd);
+ F = new H0b();
+ F0b(F, d);
+ G0b(F, zcd);
+ w = new UZb();
+ QZb(w, B.c);
+ RZb(w, p);
+ H = new UZb();
+ QZb(H, D);
+ RZb(H, q);
+ QZb(B, F);
+ h = new goc(g, d, w, H, B);
+ yNb(g, (wtc(), usc), h);
+ yNb(d, usc, h);
+ G = w.c.i;
+ if (G.k == d0b) {
+ i = BD(vNb(G, usc), 305);
+ i.d = h;
+ h.g = i;
+ }
+ }
+ if (k.Ob()) {
+ j = BD(k.Pb(), 19).a;
+ } else {
+ break;
+ }
+ }
+ ++o2;
+ }
+ return meb(v);
+ }
+ function T1b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ l = 0;
+ for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) {
+ d = BD(Dyd(e), 33);
+ if (!Ccb(DD(hkd(d, (Nyc(), Jxc))))) {
+ if ((PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && !Ccb(DD(hkd(d, xwc)))) {
+ jkd(d, (wtc(), Zsc), meb(l));
+ ++l;
+ }
+ $1b(a, d, c);
+ }
+ }
+ l = 0;
+ for (j = new Fyd((!b.b && (b.b = new cUd(B2, b, 12, 3)), b.b)); j.e != j.i.gc(); ) {
+ h = BD(Dyd(j), 79);
+ if (PD(hkd(b, (Nyc(), ywc))) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) {
+ jkd(h, (wtc(), Zsc), meb(l));
+ ++l;
+ }
+ o2 = jtd(h);
+ p = ltd(h);
+ k = Ccb(DD(hkd(o2, fxc)));
+ n = !Ccb(DD(hkd(h, Jxc)));
+ m = k && Qld(h) && Ccb(DD(hkd(h, gxc)));
+ f = Xod(o2) == b && Xod(o2) == Xod(p);
+ g = (Xod(o2) == b && p == b) ^ (Xod(p) == b && o2 == b);
+ n && !m && (g || f) && X1b(a, h, b, c);
+ }
+ if (Xod(b)) {
+ for (i = new Fyd(Wod(Xod(b))); i.e != i.i.gc(); ) {
+ h = BD(Dyd(i), 79);
+ o2 = jtd(h);
+ if (o2 == b && Qld(h)) {
+ m = Ccb(DD(hkd(o2, (Nyc(), fxc)))) && Ccb(DD(hkd(h, gxc)));
+ m && X1b(a, h, b, c);
+ }
+ }
+ }
+ }
+ function gDc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I;
+ Odd(c, "MinWidth layering", 1);
+ n = b.b;
+ A = b.a;
+ I = BD(vNb(b, (Nyc(), oxc)), 19).a;
+ h = BD(vNb(b, pxc), 19).a;
+ a.b = Edb(ED(vNb(b, lyc)));
+ a.d = Pje;
+ for (u = new olb(A); u.a < u.c.c.length; ) {
+ s = BD(mlb(u), 10);
+ if (s.k != (j0b(), h0b)) {
+ continue;
+ }
+ D = s.o.b;
+ a.d = $wnd.Math.min(a.d, D);
+ }
+ a.d = $wnd.Math.max(1, a.d);
+ B = A.c.length;
+ a.c = KC(WD, oje, 25, B, 15, 1);
+ a.f = KC(WD, oje, 25, B, 15, 1);
+ a.e = KC(UD, Vje, 25, B, 15, 1);
+ j = 0;
+ a.a = 0;
+ for (v = new olb(A); v.a < v.c.c.length; ) {
+ s = BD(mlb(v), 10);
+ s.p = j++;
+ a.c[s.p] = eDc(R_b(s));
+ a.f[s.p] = eDc(U_b(s));
+ a.e[s.p] = s.o.b / a.d;
+ a.a += a.e[s.p];
+ }
+ a.b /= a.d;
+ a.a /= B;
+ w = fDc(A);
+ Okb(A, tmb(new mDc(a)));
+ p = Pje;
+ o2 = Ohe;
+ g = null;
+ H = I;
+ G = I;
+ f = h;
+ e = h;
+ if (I < 0) {
+ H = BD(bDc.a.zd(), 19).a;
+ G = BD(bDc.b.zd(), 19).a;
+ }
+ if (h < 0) {
+ f = BD(aDc.a.zd(), 19).a;
+ e = BD(aDc.b.zd(), 19).a;
+ }
+ for (F = H; F <= G; F++) {
+ for (d = f; d <= e; d++) {
+ C = dDc(a, F, d, A, w);
+ r = Edb(ED(C.a));
+ m = BD(C.b, 15);
+ q = m.gc();
+ if (r < p || r == p && q < o2) {
+ p = r;
+ o2 = q;
+ g = m;
+ }
+ }
+ }
+ for (l = g.Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 15);
+ i = new H1b(b);
+ for (t = k.Kc(); t.Ob(); ) {
+ s = BD(t.Pb(), 10);
+ $_b(s, i);
+ }
+ n.c[n.c.length] = i;
+ }
+ smb(n);
+ A.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Qdd(c);
+ }
+ function I6b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D;
+ a.b = b;
+ a.a = BD(vNb(b, (Nyc(), bxc)), 19).a;
+ a.c = BD(vNb(b, dxc), 19).a;
+ a.c == 0 && (a.c = Ohe);
+ q = new Bib(b.b, 0);
+ while (q.b < q.d.gc()) {
+ p = (sCb(q.b < q.d.gc()), BD(q.d.Xb(q.c = q.b++), 29));
+ h = new Rkb();
+ k = -1;
+ u = -1;
+ for (t = new olb(p.a); t.a < t.c.c.length; ) {
+ s = BD(mlb(t), 10);
+ if (sr((D6b(), new Sr(ur(O_b(s).a.Kc(), new Sq())))) >= a.a) {
+ d = E6b(a, s);
+ k = $wnd.Math.max(k, d.b);
+ u = $wnd.Math.max(u, d.d);
+ Ekb(h, new vgd(s, d));
+ }
+ }
+ B = new Rkb();
+ for (j = 0; j < k; ++j) {
+ Dkb(B, 0, (sCb(q.b > 0), q.a.Xb(q.c = --q.b), C = new H1b(a.b), Aib(q, C), sCb(q.b < q.d.gc()), q.d.Xb(q.c = q.b++), C));
+ }
+ for (g = new olb(h); g.a < g.c.c.length; ) {
+ e = BD(mlb(g), 46);
+ n = BD(e.b, 571).a;
+ if (!n) {
+ continue;
+ }
+ for (m = new olb(n); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 10);
+ H6b(a, l, B6b, B);
+ }
+ }
+ c = new Rkb();
+ for (i = 0; i < u; ++i) {
+ Ekb(c, (D = new H1b(a.b), Aib(q, D), D));
+ }
+ for (f = new olb(h); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 46);
+ A = BD(e.b, 571).c;
+ if (!A) {
+ continue;
+ }
+ for (w = new olb(A); w.a < w.c.c.length; ) {
+ v = BD(mlb(w), 10);
+ H6b(a, v, C6b, c);
+ }
+ }
+ }
+ r = new Bib(b.b, 0);
+ while (r.b < r.d.gc()) {
+ o2 = (sCb(r.b < r.d.gc()), BD(r.d.Xb(r.c = r.b++), 29));
+ o2.a.c.length == 0 && uib(r);
+ }
+ }
+ function uQc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G;
+ Odd(c, "Spline edge routing", 1);
+ if (b.b.c.length == 0) {
+ b.f.a = 0;
+ Qdd(c);
+ return;
+ }
+ s = Edb(ED(vNb(b, (Nyc(), wyc))));
+ h = Edb(ED(vNb(b, pyc)));
+ g = Edb(ED(vNb(b, myc)));
+ r = BD(vNb(b, Xwc), 336);
+ B = r == (tBc(), sBc);
+ A = Edb(ED(vNb(b, Ywc)));
+ a.d = b;
+ a.j.c = KC(SI, Uhe, 1, 0, 5, 1);
+ a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Uhb(a.k);
+ i = BD(Ikb(b.b, 0), 29);
+ k = Kq(i.a, (FNc(), DNc));
+ o2 = BD(Ikb(b.b, b.b.c.length - 1), 29);
+ l = Kq(o2.a, DNc);
+ p = new olb(b.b);
+ q = null;
+ G = 0;
+ do {
+ t = p.a < p.c.c.length ? BD(mlb(p), 29) : null;
+ iQc(a, q, t);
+ lQc(a);
+ C = Vtb(uAb(PAb(JAb(new YAb(null, new Kub(a.i, 16)), new LQc()), new NQc())));
+ F = 0;
+ u = G;
+ m = !q || k && q == i;
+ n = !t || l && t == o2;
+ if (C > 0) {
+ j = 0;
+ !!q && (j += h);
+ j += (C - 1) * g;
+ !!t && (j += h);
+ B && !!t && (j = $wnd.Math.max(j, jQc(t, g, s, A)));
+ if (j < s && !m && !n) {
+ F = (s - j) / 2;
+ j = s;
+ }
+ u += j;
+ } else
+ !m && !n && (u += s);
+ !!t && h_b(t, u);
+ for (w = new olb(a.i); w.a < w.c.c.length; ) {
+ v = BD(mlb(w), 128);
+ v.a.c = G;
+ v.a.b = u - G;
+ v.F = F;
+ v.p = !q;
+ }
+ Gkb(a.a, a.i);
+ G = u;
+ !!t && (G += t.c.a);
+ q = t;
+ m = n;
+ } while (t);
+ for (e = new olb(a.j); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 17);
+ f = pQc(a, d);
+ yNb(d, (wtc(), ptc), f);
+ D = rQc(a, d);
+ yNb(d, rtc, D);
+ }
+ b.f.a = G;
+ a.d = null;
+ Qdd(c);
+ }
+ function Yxd(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ p = a.i != 0;
+ t = false;
+ r = null;
+ if (oid(a.e)) {
+ k = b.gc();
+ if (k > 0) {
+ m = k < 100 ? null : new Ixd(k);
+ j = new Aud(b);
+ o2 = j.g;
+ r = KC(WD, oje, 25, k, 15, 1);
+ d = 0;
+ u = new zud(k);
+ for (e = 0; e < a.i; ++e) {
+ h = a.g[e];
+ n = h;
+ v:
+ for (s = 0; s < 2; ++s) {
+ for (i = k; --i >= 0; ) {
+ if (n != null ? pb(n, o2[i]) : PD(n) === PD(o2[i])) {
+ if (r.length <= d) {
+ q = r;
+ r = KC(WD, oje, 25, 2 * r.length, 15, 1);
+ $fb(q, 0, r, 0, d);
+ }
+ r[d++] = e;
+ wtd(u, o2[i]);
+ break v;
+ }
+ }
+ n = n;
+ if (PD(n) === PD(h)) {
+ break;
+ }
+ }
+ }
+ j = u;
+ o2 = u.g;
+ k = d;
+ if (d > r.length) {
+ q = r;
+ r = KC(WD, oje, 25, d, 15, 1);
+ $fb(q, 0, r, 0, d);
+ }
+ if (d > 0) {
+ t = true;
+ for (f = 0; f < d; ++f) {
+ n = o2[f];
+ m = k3d(a, BD(n, 72), m);
+ }
+ for (g = d; --g >= 0; ) {
+ tud(a, r[g]);
+ }
+ if (d != k) {
+ for (e = k; --e >= d; ) {
+ tud(j, e);
+ }
+ q = r;
+ r = KC(WD, oje, 25, d, 15, 1);
+ $fb(q, 0, r, 0, d);
+ }
+ b = j;
+ }
+ }
+ } else {
+ b = Ctd(a, b);
+ for (e = a.i; --e >= 0; ) {
+ if (b.Hc(a.g[e])) {
+ tud(a, e);
+ t = true;
+ }
+ }
+ }
+ if (t) {
+ if (r != null) {
+ c = b.gc();
+ l = c == 1 ? FLd(a, 4, b.Kc().Pb(), null, r[0], p) : FLd(a, 6, b, r, r[0], p);
+ m = c < 100 ? null : new Ixd(c);
+ for (e = b.Kc(); e.Ob(); ) {
+ n = e.Pb();
+ m = Q2d(a, BD(n, 72), m);
+ }
+ if (!m) {
+ Uhd(a.e, l);
+ } else {
+ m.Ei(l);
+ m.Fi();
+ }
+ } else {
+ m = Vxd(b.gc());
+ for (e = b.Kc(); e.Ob(); ) {
+ n = e.Pb();
+ m = Q2d(a, BD(n, 72), m);
+ }
+ !!m && m.Fi();
+ }
+ return true;
+ } else {
+ return false;
+ }
+ }
+ function fYb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ c = new mYb(b);
+ c.a || $Xb(b);
+ j = ZXb(b);
+ i = new Hp();
+ q = new AYb();
+ for (p = new olb(b.a); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 10);
+ for (e = new Sr(ur(U_b(o2).a.Kc(), new Sq())); Qr(e); ) {
+ d = BD(Rr(e), 17);
+ if (d.c.i.k == (j0b(), e0b) || d.d.i.k == e0b) {
+ k = eYb(a, d, j, q);
+ Rc(i, cYb(k.d), k.a);
+ }
+ }
+ }
+ g = new Rkb();
+ for (t = BD(vNb(c.c, (wtc(), Esc)), 21).Kc(); t.Ob(); ) {
+ s = BD(t.Pb(), 61);
+ n = q.c[s.g];
+ m = q.b[s.g];
+ h = q.a[s.g];
+ f = null;
+ r = null;
+ switch (s.g) {
+ case 4:
+ f = new J6c(a.d.a, n, j.b.a - a.d.a, m - n);
+ r = new J6c(a.d.a, n, h, m - n);
+ iYb(j, new f7c(f.c + f.b, f.d));
+ iYb(j, new f7c(f.c + f.b, f.d + f.a));
+ break;
+ case 2:
+ f = new J6c(j.a.a, n, a.c.a - j.a.a, m - n);
+ r = new J6c(a.c.a - h, n, h, m - n);
+ iYb(j, new f7c(f.c, f.d));
+ iYb(j, new f7c(f.c, f.d + f.a));
+ break;
+ case 1:
+ f = new J6c(n, a.d.b, m - n, j.b.b - a.d.b);
+ r = new J6c(n, a.d.b, m - n, h);
+ iYb(j, new f7c(f.c, f.d + f.a));
+ iYb(j, new f7c(f.c + f.b, f.d + f.a));
+ break;
+ case 3:
+ f = new J6c(n, j.a.b, m - n, a.c.b - j.a.b);
+ r = new J6c(n, a.c.b - h, m - n, h);
+ iYb(j, new f7c(f.c, f.d));
+ iYb(j, new f7c(f.c + f.b, f.d));
+ }
+ if (f) {
+ l = new vYb();
+ l.d = s;
+ l.b = f;
+ l.c = r;
+ l.a = Dx(BD(Qc(i, cYb(s)), 21));
+ g.c[g.c.length] = l;
+ }
+ }
+ Gkb(c.b, g);
+ c.d = BWb(JWb(j));
+ return c;
+ }
+ function pMc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ if (c.p[b.p] != null) {
+ return;
+ }
+ h = true;
+ c.p[b.p] = 0;
+ g = b;
+ p = c.o == (eMc(), cMc) ? Qje : Pje;
+ do {
+ e = a.b.e[g.p];
+ f = g.c.a.c.length;
+ if (c.o == cMc && e > 0 || c.o == dMc && e < f - 1) {
+ i = null;
+ j = null;
+ c.o == dMc ? i = BD(Ikb(g.c.a, e + 1), 10) : i = BD(Ikb(g.c.a, e - 1), 10);
+ j = c.g[i.p];
+ pMc(a, j, c);
+ p = a.e.bg(p, b, g);
+ c.j[b.p] == b && (c.j[b.p] = c.j[j.p]);
+ if (c.j[b.p] == c.j[j.p]) {
+ o2 = jBc(a.d, g, i);
+ if (c.o == dMc) {
+ d = Edb(c.p[b.p]);
+ l = Edb(c.p[j.p]) + Edb(c.d[i.p]) - i.d.d - o2 - g.d.a - g.o.b - Edb(c.d[g.p]);
+ if (h) {
+ h = false;
+ c.p[b.p] = $wnd.Math.min(l, p);
+ } else {
+ c.p[b.p] = $wnd.Math.min(d, $wnd.Math.min(l, p));
+ }
+ } else {
+ d = Edb(c.p[b.p]);
+ l = Edb(c.p[j.p]) + Edb(c.d[i.p]) + i.o.b + i.d.a + o2 + g.d.d - Edb(c.d[g.p]);
+ if (h) {
+ h = false;
+ c.p[b.p] = $wnd.Math.max(l, p);
+ } else {
+ c.p[b.p] = $wnd.Math.max(d, $wnd.Math.max(l, p));
+ }
+ }
+ } else {
+ o2 = Edb(ED(vNb(a.a, (Nyc(), vyc))));
+ n = nMc(a, c.j[b.p]);
+ k = nMc(a, c.j[j.p]);
+ if (c.o == dMc) {
+ m = Edb(c.p[b.p]) + Edb(c.d[g.p]) + g.o.b + g.d.a + o2 - (Edb(c.p[j.p]) + Edb(c.d[i.p]) - i.d.d);
+ tMc(n, k, m);
+ } else {
+ m = Edb(c.p[b.p]) + Edb(c.d[g.p]) - g.d.d - Edb(c.p[j.p]) - Edb(c.d[i.p]) - i.o.b - i.d.a - o2;
+ tMc(n, k, m);
+ }
+ }
+ } else {
+ p = a.e.bg(p, b, g);
+ }
+ g = c.a[g.p];
+ } while (g != b);
+ SMc(a.e, b);
+ }
+ function _qd(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G;
+ t = b;
+ s = new Hp();
+ u = new Hp();
+ k = Ypd(t, Nte);
+ d = new ord(a, c, s, u);
+ qqd(d.a, d.b, d.c, d.d, k);
+ i = (A = s.i, !A ? s.i = new zf(s, s.c) : A);
+ for (C = i.Kc(); C.Ob(); ) {
+ B = BD(C.Pb(), 202);
+ e = BD(Qc(s, B), 21);
+ for (p = e.Kc(); p.Ob(); ) {
+ o2 = p.Pb();
+ v = BD(oo(a.d, o2), 202);
+ if (v) {
+ h = (!B.e && (B.e = new y5d(A2, B, 10, 9)), B.e);
+ wtd(h, v);
+ } else {
+ g = _pd(t, Vte);
+ m = _te + o2 + aue + g;
+ n = m + $te;
+ throw vbb(new cqd(n));
+ }
+ }
+ }
+ j = (w = u.i, !w ? u.i = new zf(u, u.c) : w);
+ for (F = j.Kc(); F.Ob(); ) {
+ D = BD(F.Pb(), 202);
+ f = BD(Qc(u, D), 21);
+ for (r = f.Kc(); r.Ob(); ) {
+ q = r.Pb();
+ v = BD(oo(a.d, q), 202);
+ if (v) {
+ l = (!D.g && (D.g = new y5d(A2, D, 9, 10)), D.g);
+ wtd(l, v);
+ } else {
+ g = _pd(t, Vte);
+ m = _te + q + aue + g;
+ n = m + $te;
+ throw vbb(new cqd(n));
+ }
+ }
+ }
+ !c.b && (c.b = new y5d(z2, c, 4, 7));
+ if (c.b.i != 0 && (!c.c && (c.c = new y5d(z2, c, 5, 8)), c.c.i != 0) && (!c.b && (c.b = new y5d(z2, c, 4, 7)), c.b.i <= 1 && (!c.c && (c.c = new y5d(z2, c, 5, 8)), c.c.i <= 1)) && (!c.a && (c.a = new cUd(A2, c, 6, 6)), c.a).i == 1) {
+ G = BD(qud((!c.a && (c.a = new cUd(A2, c, 6, 6)), c.a), 0), 202);
+ if (!dmd(G) && !emd(G)) {
+ kmd(G, BD(qud((!c.b && (c.b = new y5d(z2, c, 4, 7)), c.b), 0), 82));
+ lmd(G, BD(qud((!c.c && (c.c = new y5d(z2, c, 5, 8)), c.c), 0), 82));
+ }
+ }
+ }
+ function qJc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D;
+ for (t = a.a, u = 0, v = t.length; u < v; ++u) {
+ s = t[u];
+ j = Ohe;
+ k = Ohe;
+ for (o2 = new olb(s.e); o2.a < o2.c.c.length; ) {
+ m = BD(mlb(o2), 10);
+ g = !m.c ? -1 : Jkb(m.c.a, m, 0);
+ if (g > 0) {
+ l = BD(Ikb(m.c.a, g - 1), 10);
+ B = jBc(a.b, m, l);
+ q = m.n.b - m.d.d - (l.n.b + l.o.b + l.d.a + B);
+ } else {
+ q = m.n.b - m.d.d;
+ }
+ j = $wnd.Math.min(q, j);
+ if (g < m.c.a.c.length - 1) {
+ l = BD(Ikb(m.c.a, g + 1), 10);
+ B = jBc(a.b, m, l);
+ r = l.n.b - l.d.d - (m.n.b + m.o.b + m.d.a + B);
+ } else {
+ r = 2 * m.n.b;
+ }
+ k = $wnd.Math.min(r, k);
+ }
+ i = Ohe;
+ f = false;
+ e = BD(Ikb(s.e, 0), 10);
+ for (D = new olb(e.j); D.a < D.c.c.length; ) {
+ C = BD(mlb(D), 11);
+ p = e.n.b + C.n.b + C.a.b;
+ for (d = new olb(C.e); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 17);
+ w = c.c;
+ b = w.i.n.b + w.n.b + w.a.b - p;
+ if ($wnd.Math.abs(b) < $wnd.Math.abs(i) && $wnd.Math.abs(b) < (b < 0 ? j : k)) {
+ i = b;
+ f = true;
+ }
+ }
+ }
+ h = BD(Ikb(s.e, s.e.c.length - 1), 10);
+ for (A = new olb(h.j); A.a < A.c.c.length; ) {
+ w = BD(mlb(A), 11);
+ p = h.n.b + w.n.b + w.a.b;
+ for (d = new olb(w.g); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 17);
+ C = c.d;
+ b = C.i.n.b + C.n.b + C.a.b - p;
+ if ($wnd.Math.abs(b) < $wnd.Math.abs(i) && $wnd.Math.abs(b) < (b < 0 ? j : k)) {
+ i = b;
+ f = true;
+ }
+ }
+ }
+ if (f && i != 0) {
+ for (n = new olb(s.e); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 10);
+ m.n.b += i;
+ }
+ }
+ }
+ }
+ function ync(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ if (Mhb(a.a, b)) {
+ if (Rqb(BD(Ohb(a.a, b), 53), c)) {
+ return 1;
+ }
+ } else {
+ Rhb(a.a, b, new Tqb());
+ }
+ if (Mhb(a.a, c)) {
+ if (Rqb(BD(Ohb(a.a, c), 53), b)) {
+ return -1;
+ }
+ } else {
+ Rhb(a.a, c, new Tqb());
+ }
+ if (Mhb(a.e, b)) {
+ if (Rqb(BD(Ohb(a.e, b), 53), c)) {
+ return -1;
+ }
+ } else {
+ Rhb(a.e, b, new Tqb());
+ }
+ if (Mhb(a.e, c)) {
+ if (Rqb(BD(Ohb(a.a, c), 53), b)) {
+ return 1;
+ }
+ } else {
+ Rhb(a.e, c, new Tqb());
+ }
+ if (a.c == (tAc(), sAc) || !wNb(b, (wtc(), Zsc)) || !wNb(c, (wtc(), Zsc))) {
+ i = BD(Etb(Dtb(KAb(JAb(new YAb(null, new Kub(b.j, 16)), new Hnc())), new Jnc())), 11);
+ k = BD(Etb(Dtb(KAb(JAb(new YAb(null, new Kub(c.j, 16)), new Lnc())), new Nnc())), 11);
+ if (!!i && !!k) {
+ h = i.i;
+ j = k.i;
+ if (!!h && h == j) {
+ for (m = new olb(h.j); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 11);
+ if (l == i) {
+ Anc(a, c, b);
+ return -1;
+ } else if (l == k) {
+ Anc(a, b, c);
+ return 1;
+ }
+ }
+ return beb(znc(a, b), znc(a, c));
+ }
+ for (o2 = a.d, p = 0, q = o2.length; p < q; ++p) {
+ n = o2[p];
+ if (n == h) {
+ Anc(a, c, b);
+ return -1;
+ } else if (n == j) {
+ Anc(a, b, c);
+ return 1;
+ }
+ }
+ }
+ if (!wNb(b, (wtc(), Zsc)) || !wNb(c, Zsc)) {
+ e = znc(a, b);
+ g = znc(a, c);
+ e > g ? Anc(a, b, c) : Anc(a, c, b);
+ return e < g ? -1 : e > g ? 1 : 0;
+ }
+ }
+ d = BD(vNb(b, (wtc(), Zsc)), 19).a;
+ f = BD(vNb(c, Zsc), 19).a;
+ d > f ? Anc(a, b, c) : Anc(a, c, b);
+ return d < f ? -1 : d > f ? 1 : 0;
+ }
+ function u2c(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s;
+ if (Ccb(DD(hkd(b, (Y9c(), d9c))))) {
+ return mmb(), mmb(), jmb;
+ }
+ j = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i != 0;
+ l = s2c(b);
+ k = !l.dc();
+ if (j || k) {
+ e = BD(hkd(b, F9c), 149);
+ if (!e) {
+ throw vbb(new y2c("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));
+ }
+ s = D3c(e, (Csd(), ysd));
+ q2c(b);
+ if (!j && k && !s) {
+ return mmb(), mmb(), jmb;
+ }
+ i = new Rkb();
+ if (PD(hkd(b, J8c)) === PD((hbd(), ebd)) && (D3c(e, vsd) || D3c(e, usd))) {
+ n = p2c(a, b);
+ o2 = new Psb();
+ ye(o2, (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a));
+ while (o2.b != 0) {
+ m = BD(o2.b == 0 ? null : (sCb(o2.b != 0), Nsb(o2, o2.a.a)), 33);
+ q2c(m);
+ r = PD(hkd(m, J8c)) === PD(gbd);
+ if (r || ikd(m, o8c) && !C3c(e, hkd(m, F9c))) {
+ h = u2c(a, m, c, d);
+ Gkb(i, h);
+ jkd(m, J8c, gbd);
+ hfd(m);
+ } else {
+ ye(o2, (!m.a && (m.a = new cUd(E2, m, 10, 11)), m.a));
+ }
+ }
+ } else {
+ n = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i;
+ for (g = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); g.e != g.i.gc(); ) {
+ f = BD(Dyd(g), 33);
+ h = u2c(a, f, c, d);
+ Gkb(i, h);
+ hfd(f);
+ }
+ }
+ for (q = new olb(i); q.a < q.c.c.length; ) {
+ p = BD(mlb(q), 79);
+ jkd(p, d9c, (Bcb(), true));
+ }
+ r2c(b, e, Udd(d, n));
+ v2c(i);
+ return k && s ? l : (mmb(), mmb(), jmb);
+ } else {
+ return mmb(), mmb(), jmb;
+ }
+ }
+ function Z$b(a, b, c, d, e, f, g, h, i) {
+ var j, k, l, m, n, o2, p;
+ n = c;
+ k = new b0b(i);
+ __b(k, (j0b(), e0b));
+ yNb(k, (wtc(), Isc), g);
+ yNb(k, (Nyc(), Vxc), (dcd(), $bd));
+ p = Edb(ED(a.We(Uxc)));
+ yNb(k, Uxc, p);
+ l = new H0b();
+ F0b(l, k);
+ if (!(b != bcd && b != ccd)) {
+ d >= 0 ? n = Zcd(h) : n = Wcd(Zcd(h));
+ a.Ye($xc, n);
+ }
+ j = new d7c();
+ m = false;
+ if (a.Xe(Txc)) {
+ a7c(j, BD(a.We(Txc), 8));
+ m = true;
+ } else {
+ _6c(j, g.a / 2, g.b / 2);
+ }
+ switch (n.g) {
+ case 4:
+ yNb(k, mxc, (Ctc(), ytc));
+ yNb(k, Bsc, (Gqc(), Fqc));
+ k.o.b = g.b;
+ p < 0 && (k.o.a = -p);
+ G0b(l, (Ucd(), zcd));
+ m || (j.a = g.a);
+ j.a -= g.a;
+ break;
+ case 2:
+ yNb(k, mxc, (Ctc(), Atc));
+ yNb(k, Bsc, (Gqc(), Dqc));
+ k.o.b = g.b;
+ p < 0 && (k.o.a = -p);
+ G0b(l, (Ucd(), Tcd));
+ m || (j.a = 0);
+ break;
+ case 1:
+ yNb(k, Osc, (esc(), dsc));
+ k.o.a = g.a;
+ p < 0 && (k.o.b = -p);
+ G0b(l, (Ucd(), Rcd));
+ m || (j.b = g.b);
+ j.b -= g.b;
+ break;
+ case 3:
+ yNb(k, Osc, (esc(), bsc));
+ k.o.a = g.a;
+ p < 0 && (k.o.b = -p);
+ G0b(l, (Ucd(), Acd));
+ m || (j.b = 0);
+ }
+ a7c(l.n, j);
+ yNb(k, Txc, j);
+ if (b == Zbd || b == _bd || b == $bd) {
+ o2 = 0;
+ if (b == Zbd && a.Xe(Wxc)) {
+ switch (n.g) {
+ case 1:
+ case 2:
+ o2 = BD(a.We(Wxc), 19).a;
+ break;
+ case 3:
+ case 4:
+ o2 = -BD(a.We(Wxc), 19).a;
+ }
+ } else {
+ switch (n.g) {
+ case 4:
+ case 2:
+ o2 = f.b;
+ b == _bd && (o2 /= e.b);
+ break;
+ case 1:
+ case 3:
+ o2 = f.a;
+ b == _bd && (o2 /= e.a);
+ }
+ }
+ yNb(k, htc, o2);
+ }
+ yNb(k, Hsc, n);
+ return k;
+ }
+ function AGc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C;
+ c = Edb(ED(vNb(a.a.j, (Nyc(), Ewc))));
+ if (c < -1 || !a.a.i || ecd(BD(vNb(a.a.o, Vxc), 98)) || V_b(a.a.o, (Ucd(), zcd)).gc() < 2 && V_b(a.a.o, Tcd).gc() < 2) {
+ return true;
+ }
+ if (a.a.c.Rf()) {
+ return false;
+ }
+ v = 0;
+ u = 0;
+ t = new Rkb();
+ for (i = a.a.e, j = 0, k = i.length; j < k; ++j) {
+ h = i[j];
+ for (m = h, n = 0, p = m.length; n < p; ++n) {
+ l = m[n];
+ if (l.k == (j0b(), i0b)) {
+ t.c[t.c.length] = l;
+ continue;
+ }
+ d = a.b[l.c.p][l.p];
+ if (l.k == e0b) {
+ d.b = 1;
+ BD(vNb(l, (wtc(), $sc)), 11).j == (Ucd(), zcd) && (u += d.a);
+ } else {
+ C = V_b(l, (Ucd(), Tcd));
+ C.dc() || !Lq(C, new NGc()) ? d.c = 1 : (e = V_b(l, zcd), (e.dc() || !Lq(e, new JGc())) && (v += d.a));
+ }
+ for (g = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(g); ) {
+ f = BD(Rr(g), 17);
+ v += d.c;
+ u += d.b;
+ B = f.d.i;
+ zGc(a, d, B);
+ }
+ r = pl(OC(GC(KI, 1), Uhe, 20, 0, [V_b(l, (Ucd(), Acd)), V_b(l, Rcd)]));
+ for (A = new Sr(new xl(r.a.length, r.a)); Qr(A); ) {
+ w = BD(Rr(A), 11);
+ s = BD(vNb(w, (wtc(), gtc)), 10);
+ if (s) {
+ v += d.c;
+ u += d.b;
+ zGc(a, d, s);
+ }
+ }
+ }
+ for (o2 = new olb(t); o2.a < o2.c.c.length; ) {
+ l = BD(mlb(o2), 10);
+ d = a.b[l.c.p][l.p];
+ for (g = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(g); ) {
+ f = BD(Rr(g), 17);
+ v += d.c;
+ u += d.b;
+ B = f.d.i;
+ zGc(a, d, B);
+ }
+ }
+ t.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ b = v + u;
+ q = b == 0 ? Pje : (v - u) / b;
+ return q >= c;
+ }
+ function ovd() {
+ mvd();
+ function h(f) {
+ var g = this;
+ this.dispatch = function(a) {
+ var b = a.data;
+ switch (b.cmd) {
+ case "algorithms":
+ var c = pvd((mmb(), new lnb(new $ib(lvd.b))));
+ f.postMessage({ id: b.id, data: c });
+ break;
+ case "categories":
+ var d = pvd((mmb(), new lnb(new $ib(lvd.c))));
+ f.postMessage({ id: b.id, data: d });
+ break;
+ case "options":
+ var e = pvd((mmb(), new lnb(new $ib(lvd.d))));
+ f.postMessage({ id: b.id, data: e });
+ break;
+ case "register":
+ svd(b.algorithms);
+ f.postMessage({ id: b.id });
+ break;
+ case "layout":
+ qvd(b.graph, b.layoutOptions || {}, b.options || {});
+ f.postMessage({ id: b.id, data: b.graph });
+ break;
+ }
+ };
+ this.saveDispatch = function(b) {
+ try {
+ g.dispatch(b);
+ } catch (a) {
+ f.postMessage({ id: b.data.id, error: a });
+ }
+ };
+ }
+ function j(b) {
+ var c = this;
+ this.dispatcher = new h({ postMessage: function(a) {
+ c.onmessage({ data: a });
+ } });
+ this.postMessage = function(a) {
+ setTimeout(function() {
+ c.dispatcher.saveDispatch({ data: a });
+ }, 0);
+ };
+ }
+ if (typeof document === uke && typeof self !== uke) {
+ var i = new h(self);
+ self.onmessage = i.saveDispatch;
+ } else if (typeof module2 !== uke && module2.exports) {
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ module2.exports = { "default": j, Worker: j };
+ }
+ }
+ function aae(a) {
+ if (a.N)
+ return;
+ a.N = true;
+ a.b = Lnd(a, 0);
+ Knd(a.b, 0);
+ Knd(a.b, 1);
+ Knd(a.b, 2);
+ a.bb = Lnd(a, 1);
+ Knd(a.bb, 0);
+ Knd(a.bb, 1);
+ a.fb = Lnd(a, 2);
+ Knd(a.fb, 3);
+ Knd(a.fb, 4);
+ Qnd(a.fb, 5);
+ a.qb = Lnd(a, 3);
+ Knd(a.qb, 0);
+ Qnd(a.qb, 1);
+ Qnd(a.qb, 2);
+ Knd(a.qb, 3);
+ Knd(a.qb, 4);
+ Qnd(a.qb, 5);
+ Knd(a.qb, 6);
+ a.a = Mnd(a, 4);
+ a.c = Mnd(a, 5);
+ a.d = Mnd(a, 6);
+ a.e = Mnd(a, 7);
+ a.f = Mnd(a, 8);
+ a.g = Mnd(a, 9);
+ a.i = Mnd(a, 10);
+ a.j = Mnd(a, 11);
+ a.k = Mnd(a, 12);
+ a.n = Mnd(a, 13);
+ a.o = Mnd(a, 14);
+ a.p = Mnd(a, 15);
+ a.q = Mnd(a, 16);
+ a.s = Mnd(a, 17);
+ a.r = Mnd(a, 18);
+ a.t = Mnd(a, 19);
+ a.u = Mnd(a, 20);
+ a.v = Mnd(a, 21);
+ a.w = Mnd(a, 22);
+ a.B = Mnd(a, 23);
+ a.A = Mnd(a, 24);
+ a.C = Mnd(a, 25);
+ a.D = Mnd(a, 26);
+ a.F = Mnd(a, 27);
+ a.G = Mnd(a, 28);
+ a.H = Mnd(a, 29);
+ a.J = Mnd(a, 30);
+ a.I = Mnd(a, 31);
+ a.K = Mnd(a, 32);
+ a.M = Mnd(a, 33);
+ a.L = Mnd(a, 34);
+ a.P = Mnd(a, 35);
+ a.Q = Mnd(a, 36);
+ a.R = Mnd(a, 37);
+ a.S = Mnd(a, 38);
+ a.T = Mnd(a, 39);
+ a.U = Mnd(a, 40);
+ a.V = Mnd(a, 41);
+ a.X = Mnd(a, 42);
+ a.W = Mnd(a, 43);
+ a.Y = Mnd(a, 44);
+ a.Z = Mnd(a, 45);
+ a.$ = Mnd(a, 46);
+ a._ = Mnd(a, 47);
+ a.ab = Mnd(a, 48);
+ a.cb = Mnd(a, 49);
+ a.db = Mnd(a, 50);
+ a.eb = Mnd(a, 51);
+ a.gb = Mnd(a, 52);
+ a.hb = Mnd(a, 53);
+ a.ib = Mnd(a, 54);
+ a.jb = Mnd(a, 55);
+ a.kb = Mnd(a, 56);
+ a.lb = Mnd(a, 57);
+ a.mb = Mnd(a, 58);
+ a.nb = Mnd(a, 59);
+ a.ob = Mnd(a, 60);
+ a.pb = Mnd(a, 61);
+ }
+ function f5b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ s = 0;
+ if (b.f.a == 0) {
+ for (q = new olb(a); q.a < q.c.c.length; ) {
+ o2 = BD(mlb(q), 10);
+ s = $wnd.Math.max(s, o2.n.a + o2.o.a + o2.d.c);
+ }
+ } else {
+ s = b.f.a - b.c.a;
+ }
+ s -= b.c.a;
+ for (p = new olb(a); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 10);
+ g5b(o2.n, s - o2.o.a);
+ h5b(o2.f);
+ d5b(o2);
+ (!o2.q ? (mmb(), mmb(), kmb) : o2.q)._b((Nyc(), ayc)) && g5b(BD(vNb(o2, ayc), 8), s - o2.o.a);
+ switch (BD(vNb(o2, mwc), 248).g) {
+ case 1:
+ yNb(o2, mwc, (F7c(), D7c));
+ break;
+ case 2:
+ yNb(o2, mwc, (F7c(), C7c));
+ }
+ r = o2.o;
+ for (u = new olb(o2.j); u.a < u.c.c.length; ) {
+ t = BD(mlb(u), 11);
+ g5b(t.n, r.a - t.o.a);
+ g5b(t.a, t.o.a);
+ G0b(t, Z4b(t.j));
+ g = BD(vNb(t, Wxc), 19);
+ !!g && yNb(t, Wxc, meb(-g.a));
+ for (f = new olb(t.g); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 17);
+ for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 8);
+ c.a = s - c.a;
+ }
+ j = BD(vNb(e, jxc), 74);
+ if (j) {
+ for (i = Jsb(j, 0); i.b != i.d.c; ) {
+ h = BD(Xsb(i), 8);
+ h.a = s - h.a;
+ }
+ }
+ for (m = new olb(e.b); m.a < m.c.c.length; ) {
+ k = BD(mlb(m), 70);
+ g5b(k.n, s - k.o.a);
+ }
+ }
+ for (n = new olb(t.f); n.a < n.c.c.length; ) {
+ k = BD(mlb(n), 70);
+ g5b(k.n, t.o.a - k.o.a);
+ }
+ }
+ if (o2.k == (j0b(), e0b)) {
+ yNb(o2, (wtc(), Hsc), Z4b(BD(vNb(o2, Hsc), 61)));
+ c5b(o2);
+ }
+ for (l = new olb(o2.b); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 70);
+ d5b(k);
+ g5b(k.n, r.a - k.o.a);
+ }
+ }
+ }
+ function i5b(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ s = 0;
+ if (b.f.b == 0) {
+ for (q = new olb(a); q.a < q.c.c.length; ) {
+ o2 = BD(mlb(q), 10);
+ s = $wnd.Math.max(s, o2.n.b + o2.o.b + o2.d.a);
+ }
+ } else {
+ s = b.f.b - b.c.b;
+ }
+ s -= b.c.b;
+ for (p = new olb(a); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 10);
+ j5b(o2.n, s - o2.o.b);
+ k5b(o2.f);
+ e5b(o2);
+ (!o2.q ? (mmb(), mmb(), kmb) : o2.q)._b((Nyc(), ayc)) && j5b(BD(vNb(o2, ayc), 8), s - o2.o.b);
+ switch (BD(vNb(o2, mwc), 248).g) {
+ case 3:
+ yNb(o2, mwc, (F7c(), A7c));
+ break;
+ case 4:
+ yNb(o2, mwc, (F7c(), E7c));
+ }
+ r = o2.o;
+ for (u = new olb(o2.j); u.a < u.c.c.length; ) {
+ t = BD(mlb(u), 11);
+ j5b(t.n, r.b - t.o.b);
+ j5b(t.a, t.o.b);
+ G0b(t, $4b(t.j));
+ g = BD(vNb(t, Wxc), 19);
+ !!g && yNb(t, Wxc, meb(-g.a));
+ for (f = new olb(t.g); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 17);
+ for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 8);
+ c.b = s - c.b;
+ }
+ j = BD(vNb(e, jxc), 74);
+ if (j) {
+ for (i = Jsb(j, 0); i.b != i.d.c; ) {
+ h = BD(Xsb(i), 8);
+ h.b = s - h.b;
+ }
+ }
+ for (m = new olb(e.b); m.a < m.c.c.length; ) {
+ k = BD(mlb(m), 70);
+ j5b(k.n, s - k.o.b);
+ }
+ }
+ for (n = new olb(t.f); n.a < n.c.c.length; ) {
+ k = BD(mlb(n), 70);
+ j5b(k.n, t.o.b - k.o.b);
+ }
+ }
+ if (o2.k == (j0b(), e0b)) {
+ yNb(o2, (wtc(), Hsc), $4b(BD(vNb(o2, Hsc), 61)));
+ b5b(o2);
+ }
+ for (l = new olb(o2.b); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 70);
+ e5b(k);
+ j5b(k.n, r.b - k.o.b);
+ }
+ }
+ }
+ function tZc(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n;
+ l = false;
+ j = a + 1;
+ k = (tCb(a, b.c.length), BD(b.c[a], 200));
+ g = k.a;
+ h = null;
+ for (f = 0; f < k.a.c.length; f++) {
+ e = (tCb(f, g.c.length), BD(g.c[f], 187));
+ if (e.c) {
+ continue;
+ }
+ if (e.b.c.length == 0) {
+ Zfb();
+ v$c(k, e);
+ --f;
+ l = true;
+ continue;
+ }
+ if (!e.k) {
+ !!h && a$c(h);
+ h = new b$c(!h ? 0 : h.e + h.d + d, k.f, d);
+ OZc(e, h.e + h.d, k.f);
+ Ekb(k.d, h);
+ WZc(h, e);
+ e.k = true;
+ }
+ i = null;
+ i = (n = null, f < k.a.c.length - 1 ? n = BD(Ikb(k.a, f + 1), 187) : j < b.c.length && (tCb(j, b.c.length), BD(b.c[j], 200)).a.c.length != 0 && (n = BD(Ikb((tCb(j, b.c.length), BD(b.c[j], 200)).a, 0), 187)), n);
+ m = false;
+ !!i && (m = !pb(i.j, k));
+ if (i) {
+ if (i.b.c.length == 0) {
+ v$c(k, i);
+ break;
+ } else {
+ KZc(e, c - e.s);
+ a$c(e.q);
+ l = l | sZc(k, e, i, c, d);
+ }
+ if (i.b.c.length == 0) {
+ v$c((tCb(j, b.c.length), BD(b.c[j], 200)), i);
+ i = null;
+ while (b.c.length > j && (tCb(j, b.c.length), BD(b.c[j], 200)).a.c.length == 0) {
+ Lkb(b, (tCb(j, b.c.length), b.c[j]));
+ }
+ }
+ if (!i) {
+ --f;
+ continue;
+ }
+ if (uZc(b, k, e, i, m, c, j, d)) {
+ l = true;
+ continue;
+ }
+ if (m) {
+ if (vZc(b, k, e, i, c, j, d)) {
+ l = true;
+ continue;
+ } else if (wZc(k, e)) {
+ e.c = true;
+ l = true;
+ continue;
+ }
+ } else if (wZc(k, e)) {
+ e.c = true;
+ l = true;
+ continue;
+ }
+ if (l) {
+ continue;
+ }
+ }
+ if (wZc(k, e)) {
+ e.c = true;
+ l = true;
+ !!i && (i.k = false);
+ continue;
+ } else {
+ a$c(e.q);
+ }
+ }
+ return l;
+ }
+ function fed(a, b, c, d, e, f, g) {
+ var h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I;
+ p = 0;
+ D = 0;
+ for (j = new olb(a.b); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 157);
+ !!i.c && zfd(i.c);
+ p = $wnd.Math.max(p, red(i));
+ D += red(i) * qed(i);
+ }
+ q = D / a.b.c.length;
+ C = _dd(a.b, q);
+ D += a.b.c.length * C;
+ p = $wnd.Math.max(p, $wnd.Math.sqrt(D * g)) + c.b;
+ H = c.b;
+ I = c.d;
+ n = 0;
+ l = c.b + c.c;
+ B = new Psb();
+ Dsb(B, meb(0));
+ w = new Psb();
+ k = new Bib(a.b, 0);
+ o2 = null;
+ h = new Rkb();
+ while (k.b < k.d.gc()) {
+ i = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 157));
+ G = red(i);
+ m = qed(i);
+ if (H + G > p) {
+ if (f) {
+ Fsb(w, n);
+ Fsb(B, meb(k.b - 1));
+ Ekb(a.d, o2);
+ h.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ H = c.b;
+ I += n + b;
+ n = 0;
+ l = $wnd.Math.max(l, c.b + c.c + G);
+ }
+ h.c[h.c.length] = i;
+ ued(i, H, I);
+ l = $wnd.Math.max(l, H + G + c.c);
+ n = $wnd.Math.max(n, m);
+ H += G + b;
+ o2 = i;
+ }
+ Gkb(a.a, h);
+ Ekb(a.d, BD(Ikb(h, h.c.length - 1), 157));
+ l = $wnd.Math.max(l, d);
+ F = I + n + c.a;
+ if (F < e) {
+ n += e - F;
+ F = e;
+ }
+ if (f) {
+ H = c.b;
+ k = new Bib(a.b, 0);
+ Fsb(B, meb(a.b.c.length));
+ A = Jsb(B, 0);
+ s = BD(Xsb(A), 19).a;
+ Fsb(w, n);
+ v = Jsb(w, 0);
+ u = 0;
+ while (k.b < k.d.gc()) {
+ if (k.b == s) {
+ H = c.b;
+ u = Edb(ED(Xsb(v)));
+ s = BD(Xsb(A), 19).a;
+ }
+ i = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 157));
+ sed(i, u);
+ if (k.b == s) {
+ r = l - H - c.c;
+ t = red(i);
+ ted(i, r);
+ ved(i, (r - t) / 2, 0);
+ }
+ H += red(i) + b;
+ }
+ }
+ return new f7c(l, F);
+ }
+ function pde(a) {
+ var b, c, d, e, f;
+ b = a.c;
+ f = null;
+ switch (b) {
+ case 6:
+ return a.Vl();
+ case 13:
+ return a.Wl();
+ case 23:
+ return a.Nl();
+ case 22:
+ return a.Sl();
+ case 18:
+ return a.Pl();
+ case 8:
+ nde(a);
+ f = (wfe(), efe);
+ break;
+ case 9:
+ return a.vl(true);
+ case 19:
+ return a.wl();
+ case 10:
+ switch (a.a) {
+ case 100:
+ case 68:
+ case 119:
+ case 87:
+ case 115:
+ case 83:
+ f = a.ul(a.a);
+ nde(a);
+ return f;
+ case 101:
+ case 102:
+ case 110:
+ case 114:
+ case 116:
+ case 117:
+ case 118:
+ case 120:
+ {
+ c = a.tl();
+ c < Tje ? f = (wfe(), wfe(), new ige(0, c)) : f = Ffe(Tee(c));
+ }
+ break;
+ case 99:
+ return a.Fl();
+ case 67:
+ return a.Al();
+ case 105:
+ return a.Il();
+ case 73:
+ return a.Bl();
+ case 103:
+ return a.Gl();
+ case 88:
+ return a.Cl();
+ case 49:
+ case 50:
+ case 51:
+ case 52:
+ case 53:
+ case 54:
+ case 55:
+ case 56:
+ case 57:
+ return a.xl();
+ case 80:
+ case 112:
+ f = tde(a, a.a);
+ if (!f)
+ throw vbb(new mde(tvd((h0d(), Iue))));
+ break;
+ default:
+ f = zfe(a.a);
+ }
+ nde(a);
+ break;
+ case 0:
+ if (a.a == 93 || a.a == 123 || a.a == 125)
+ throw vbb(new mde(tvd((h0d(), Hue))));
+ f = zfe(a.a);
+ d = a.a;
+ nde(a);
+ if ((d & 64512) == Uje && a.c == 0 && (a.a & 64512) == 56320) {
+ e = KC(TD, $ie, 25, 2, 15, 1);
+ e[0] = d & aje;
+ e[1] = a.a & aje;
+ f = Efe(Ffe(zfb(e, 0, e.length)), 0);
+ nde(a);
+ }
+ break;
+ default:
+ throw vbb(new mde(tvd((h0d(), Hue))));
+ }
+ return f;
+ }
+ function e7b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ d = new Rkb();
+ e = Ohe;
+ f = Ohe;
+ g = Ohe;
+ if (c) {
+ e = a.f.a;
+ for (p = new olb(b.j); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 11);
+ for (i = new olb(o2.g); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 17);
+ if (h.a.b != 0) {
+ k = BD(Hsb(h.a), 8);
+ if (k.a < e) {
+ f = e - k.a;
+ g = Ohe;
+ d.c = KC(SI, Uhe, 1, 0, 5, 1);
+ e = k.a;
+ }
+ if (k.a <= e) {
+ d.c[d.c.length] = h;
+ h.a.b > 1 && (g = $wnd.Math.min(g, $wnd.Math.abs(BD(Ut(h.a, 1), 8).b - k.b)));
+ }
+ }
+ }
+ }
+ } else {
+ for (p = new olb(b.j); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 11);
+ for (i = new olb(o2.e); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 17);
+ if (h.a.b != 0) {
+ m = BD(Isb(h.a), 8);
+ if (m.a > e) {
+ f = m.a - e;
+ g = Ohe;
+ d.c = KC(SI, Uhe, 1, 0, 5, 1);
+ e = m.a;
+ }
+ if (m.a >= e) {
+ d.c[d.c.length] = h;
+ h.a.b > 1 && (g = $wnd.Math.min(g, $wnd.Math.abs(BD(Ut(h.a, h.a.b - 2), 8).b - m.b)));
+ }
+ }
+ }
+ }
+ }
+ if (d.c.length != 0 && f > b.o.a / 2 && g > b.o.b / 2) {
+ n = new H0b();
+ F0b(n, b);
+ G0b(n, (Ucd(), Acd));
+ n.n.a = b.o.a / 2;
+ r = new H0b();
+ F0b(r, b);
+ G0b(r, Rcd);
+ r.n.a = b.o.a / 2;
+ r.n.b = b.o.b;
+ for (i = new olb(d); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 17);
+ if (c) {
+ j = BD(Lsb(h.a), 8);
+ q = h.a.b == 0 ? A0b(h.d) : BD(Hsb(h.a), 8);
+ q.b >= j.b ? QZb(h, r) : QZb(h, n);
+ } else {
+ j = BD(Msb(h.a), 8);
+ q = h.a.b == 0 ? A0b(h.c) : BD(Isb(h.a), 8);
+ q.b >= j.b ? RZb(h, r) : RZb(h, n);
+ }
+ l = BD(vNb(h, (Nyc(), jxc)), 74);
+ !!l && ze(l, j, true);
+ }
+ b.n.a = e - b.o.a / 2;
+ }
+ }
+ function erd(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K;
+ D = null;
+ G = b;
+ F = Rqd(a, dtd(c), G);
+ Lkd(F, _pd(G, Vte));
+ H = BD(oo(a.g, Vpd(aC(G, Cte))), 33);
+ m = aC(G, "sourcePort");
+ d = null;
+ !!m && (d = Vpd(m));
+ I = BD(oo(a.j, d), 118);
+ if (!H) {
+ h = Wpd(G);
+ o2 = "An edge must have a source node (edge id: '" + h;
+ p = o2 + $te;
+ throw vbb(new cqd(p));
+ }
+ if (!!I && !Hb(mpd(I), H)) {
+ i = _pd(G, Vte);
+ q = "The source port of an edge must be a port of the edge's source node (edge id: '" + i;
+ r = q + $te;
+ throw vbb(new cqd(r));
+ }
+ B = (!F.b && (F.b = new y5d(z2, F, 4, 7)), F.b);
+ f = null;
+ I ? f = I : f = H;
+ wtd(B, f);
+ J = BD(oo(a.g, Vpd(aC(G, bue))), 33);
+ n = aC(G, "targetPort");
+ e = null;
+ !!n && (e = Vpd(n));
+ K = BD(oo(a.j, e), 118);
+ if (!J) {
+ l = Wpd(G);
+ s = "An edge must have a target node (edge id: '" + l;
+ t = s + $te;
+ throw vbb(new cqd(t));
+ }
+ if (!!K && !Hb(mpd(K), J)) {
+ j = _pd(G, Vte);
+ u = "The target port of an edge must be a port of the edge's target node (edge id: '" + j;
+ v = u + $te;
+ throw vbb(new cqd(v));
+ }
+ C = (!F.c && (F.c = new y5d(z2, F, 5, 8)), F.c);
+ g = null;
+ K ? g = K : g = J;
+ wtd(C, g);
+ if ((!F.b && (F.b = new y5d(z2, F, 4, 7)), F.b).i == 0 || (!F.c && (F.c = new y5d(z2, F, 5, 8)), F.c).i == 0) {
+ k = _pd(G, Vte);
+ w = Zte + k;
+ A = w + $te;
+ throw vbb(new cqd(A));
+ }
+ grd(G, F);
+ frd(G, F);
+ D = crd(a, G, F);
+ return D;
+ }
+ function DXb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D;
+ l = FXb(zXb(a, (Ucd(), Fcd)), b);
+ o2 = EXb(zXb(a, Gcd), b);
+ u = EXb(zXb(a, Ocd), b);
+ B = GXb(zXb(a, Qcd), b);
+ m = GXb(zXb(a, Bcd), b);
+ s = EXb(zXb(a, Ncd), b);
+ p = EXb(zXb(a, Hcd), b);
+ w = EXb(zXb(a, Pcd), b);
+ v = EXb(zXb(a, Ccd), b);
+ C = GXb(zXb(a, Ecd), b);
+ r = EXb(zXb(a, Lcd), b);
+ t = EXb(zXb(a, Kcd), b);
+ A = EXb(zXb(a, Dcd), b);
+ D = GXb(zXb(a, Mcd), b);
+ n = GXb(zXb(a, Icd), b);
+ q = EXb(zXb(a, Jcd), b);
+ c = w6c(OC(GC(UD, 1), Vje, 25, 15, [s.a, B.a, w.a, D.a]));
+ d = w6c(OC(GC(UD, 1), Vje, 25, 15, [o2.a, l.a, u.a, q.a]));
+ e = r.a;
+ f = w6c(OC(GC(UD, 1), Vje, 25, 15, [p.a, m.a, v.a, n.a]));
+ j = w6c(OC(GC(UD, 1), Vje, 25, 15, [s.b, o2.b, p.b, t.b]));
+ i = w6c(OC(GC(UD, 1), Vje, 25, 15, [B.b, l.b, m.b, q.b]));
+ k = C.b;
+ h = w6c(OC(GC(UD, 1), Vje, 25, 15, [w.b, u.b, v.b, A.b]));
+ vXb(zXb(a, Fcd), c + e, j + k);
+ vXb(zXb(a, Jcd), c + e, j + k);
+ vXb(zXb(a, Gcd), c + e, 0);
+ vXb(zXb(a, Ocd), c + e, j + k + i);
+ vXb(zXb(a, Qcd), 0, j + k);
+ vXb(zXb(a, Bcd), c + e + d, j + k);
+ vXb(zXb(a, Hcd), c + e + d, 0);
+ vXb(zXb(a, Pcd), 0, j + k + i);
+ vXb(zXb(a, Ccd), c + e + d, j + k + i);
+ vXb(zXb(a, Ecd), 0, j);
+ vXb(zXb(a, Lcd), c, 0);
+ vXb(zXb(a, Dcd), 0, j + k + i);
+ vXb(zXb(a, Icd), c + e + d, 0);
+ g = new d7c();
+ g.a = w6c(OC(GC(UD, 1), Vje, 25, 15, [c + d + e + f, C.a, t.a, A.a]));
+ g.b = w6c(OC(GC(UD, 1), Vje, 25, 15, [j + i + k + h, r.b, D.b, n.b]));
+ return g;
+ }
+ function Ngc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ p = new Rkb();
+ for (m = new olb(a.d.b); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 29);
+ for (o2 = new olb(l.a); o2.a < o2.c.c.length; ) {
+ n = BD(mlb(o2), 10);
+ e = BD(Ohb(a.f, n), 57);
+ for (i = new Sr(ur(U_b(n).a.Kc(), new Sq())); Qr(i); ) {
+ g = BD(Rr(i), 17);
+ d = Jsb(g.a, 0);
+ j = true;
+ k = null;
+ if (d.b != d.d.c) {
+ b = BD(Xsb(d), 8);
+ c = null;
+ if (g.c.j == (Ucd(), Acd)) {
+ q = new hic(b, new f7c(b.a, e.d.d), e, g);
+ q.f.a = true;
+ q.a = g.c;
+ p.c[p.c.length] = q;
+ }
+ if (g.c.j == Rcd) {
+ q = new hic(b, new f7c(b.a, e.d.d + e.d.a), e, g);
+ q.f.d = true;
+ q.a = g.c;
+ p.c[p.c.length] = q;
+ }
+ while (d.b != d.d.c) {
+ c = BD(Xsb(d), 8);
+ if (!ADb(b.b, c.b)) {
+ k = new hic(b, c, null, g);
+ p.c[p.c.length] = k;
+ if (j) {
+ j = false;
+ if (c.b < e.d.d) {
+ k.f.a = true;
+ } else if (c.b > e.d.d + e.d.a) {
+ k.f.d = true;
+ } else {
+ k.f.d = true;
+ k.f.a = true;
+ }
+ }
+ }
+ d.b != d.d.c && (b = c);
+ }
+ if (k) {
+ f = BD(Ohb(a.f, g.d.i), 57);
+ if (b.b < f.d.d) {
+ k.f.a = true;
+ } else if (b.b > f.d.d + f.d.a) {
+ k.f.d = true;
+ } else {
+ k.f.d = true;
+ k.f.a = true;
+ }
+ }
+ }
+ }
+ for (h = new Sr(ur(R_b(n).a.Kc(), new Sq())); Qr(h); ) {
+ g = BD(Rr(h), 17);
+ if (g.a.b != 0) {
+ b = BD(Isb(g.a), 8);
+ if (g.d.j == (Ucd(), Acd)) {
+ q = new hic(b, new f7c(b.a, e.d.d), e, g);
+ q.f.a = true;
+ q.a = g.d;
+ p.c[p.c.length] = q;
+ }
+ if (g.d.j == Rcd) {
+ q = new hic(b, new f7c(b.a, e.d.d + e.d.a), e, g);
+ q.f.d = true;
+ q.a = g.d;
+ p.c[p.c.length] = q;
+ }
+ }
+ }
+ }
+ }
+ return p;
+ }
+ function WJc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ Odd(c, "Network simplex node placement", 1);
+ a.e = b;
+ a.n = BD(vNb(b, (wtc(), otc)), 304);
+ VJc(a);
+ HJc(a);
+ MAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new KKc()), new MKc(a));
+ MAb(JAb(LAb(JAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new zLc()), new BLc()), new DLc()), new FLc()), new IKc(a));
+ if (Ccb(DD(vNb(a.e, (Nyc(), Axc))))) {
+ g = Udd(c, 1);
+ Odd(g, "Straight Edges Pre-Processing", 1);
+ UJc(a);
+ Qdd(g);
+ }
+ JFb(a.f);
+ f = BD(vNb(b, Ayc), 19).a * a.f.a.c.length;
+ uGb(HGb(IGb(LGb(a.f), f), false), Udd(c, 1));
+ if (a.d.a.gc() != 0) {
+ g = Udd(c, 1);
+ Odd(g, "Flexible Where Space Processing", 1);
+ h = BD(Btb(RAb(NAb(new YAb(null, new Kub(a.f.a, 16)), new OKc()), new iKc())), 19).a;
+ i = BD(Btb(QAb(NAb(new YAb(null, new Kub(a.f.a, 16)), new QKc()), new mKc())), 19).a;
+ j = i - h;
+ k = nGb(new pGb(), a.f);
+ l = nGb(new pGb(), a.f);
+ AFb(DFb(CFb(BFb(EFb(new FFb(), 2e4), j), k), l));
+ MAb(JAb(JAb(Plb(a.i), new SKc()), new UKc()), new WKc(h, k, j, l));
+ for (e = a.d.a.ec().Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 213);
+ d.g = 1;
+ }
+ uGb(HGb(IGb(LGb(a.f), f), false), Udd(g, 1));
+ Qdd(g);
+ }
+ if (Ccb(DD(vNb(b, Axc)))) {
+ g = Udd(c, 1);
+ Odd(g, "Straight Edges Post-Processing", 1);
+ TJc(a);
+ Qdd(g);
+ }
+ GJc(a);
+ a.e = null;
+ a.f = null;
+ a.i = null;
+ a.c = null;
+ Uhb(a.k);
+ a.j = null;
+ a.a = null;
+ a.o = null;
+ a.d.a.$b();
+ Qdd(c);
+ }
+ function lMc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v;
+ for (h = new olb(a.a.b); h.a < h.c.c.length; ) {
+ f = BD(mlb(h), 29);
+ for (t = new olb(f.a); t.a < t.c.c.length; ) {
+ s = BD(mlb(t), 10);
+ b.g[s.p] = s;
+ b.a[s.p] = s;
+ b.d[s.p] = 0;
+ }
+ }
+ i = a.a.b;
+ b.c == (YLc(), WLc) && (i = JD(i, 152) ? km(BD(i, 152)) : JD(i, 131) ? BD(i, 131).a : JD(i, 54) ? new ov(i) : new dv(i));
+ for (g = i.Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 29);
+ n = -1;
+ m = f.a;
+ if (b.o == (eMc(), dMc)) {
+ n = Ohe;
+ m = JD(m, 152) ? km(BD(m, 152)) : JD(m, 131) ? BD(m, 131).a : JD(m, 54) ? new ov(m) : new dv(m);
+ }
+ for (v = m.Kc(); v.Ob(); ) {
+ u = BD(v.Pb(), 10);
+ l = null;
+ b.c == WLc ? l = BD(Ikb(a.b.f, u.p), 15) : l = BD(Ikb(a.b.b, u.p), 15);
+ if (l.gc() > 0) {
+ d = l.gc();
+ j = QD($wnd.Math.floor((d + 1) / 2)) - 1;
+ e = QD($wnd.Math.ceil((d + 1) / 2)) - 1;
+ if (b.o == dMc) {
+ for (k = e; k >= j; k--) {
+ if (b.a[u.p] == u) {
+ p = BD(l.Xb(k), 46);
+ o2 = BD(p.a, 10);
+ if (!Rqb(c, p.b) && n > a.b.e[o2.p]) {
+ b.a[o2.p] = u;
+ b.g[u.p] = b.g[o2.p];
+ b.a[u.p] = b.g[u.p];
+ b.f[b.g[u.p].p] = (Bcb(), Ccb(b.f[b.g[u.p].p]) & u.k == (j0b(), g0b) ? true : false);
+ n = a.b.e[o2.p];
+ }
+ }
+ }
+ } else {
+ for (k = j; k <= e; k++) {
+ if (b.a[u.p] == u) {
+ r = BD(l.Xb(k), 46);
+ q = BD(r.a, 10);
+ if (!Rqb(c, r.b) && n < a.b.e[q.p]) {
+ b.a[q.p] = u;
+ b.g[u.p] = b.g[q.p];
+ b.a[u.p] = b.g[u.p];
+ b.f[b.g[u.p].p] = (Bcb(), Ccb(b.f[b.g[u.p].p]) & u.k == (j0b(), g0b) ? true : false);
+ n = a.b.e[q.p];
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ function Thd() {
+ Thd = ccb;
+ Hhd();
+ Shd = Ghd.a;
+ BD(qud(ZKd(Ghd.a), 0), 18);
+ Mhd = Ghd.f;
+ BD(qud(ZKd(Ghd.f), 0), 18);
+ BD(qud(ZKd(Ghd.f), 1), 34);
+ Rhd = Ghd.n;
+ BD(qud(ZKd(Ghd.n), 0), 34);
+ BD(qud(ZKd(Ghd.n), 1), 34);
+ BD(qud(ZKd(Ghd.n), 2), 34);
+ BD(qud(ZKd(Ghd.n), 3), 34);
+ Nhd = Ghd.g;
+ BD(qud(ZKd(Ghd.g), 0), 18);
+ BD(qud(ZKd(Ghd.g), 1), 34);
+ Jhd = Ghd.c;
+ BD(qud(ZKd(Ghd.c), 0), 18);
+ BD(qud(ZKd(Ghd.c), 1), 18);
+ Ohd = Ghd.i;
+ BD(qud(ZKd(Ghd.i), 0), 18);
+ BD(qud(ZKd(Ghd.i), 1), 18);
+ BD(qud(ZKd(Ghd.i), 2), 18);
+ BD(qud(ZKd(Ghd.i), 3), 18);
+ BD(qud(ZKd(Ghd.i), 4), 34);
+ Phd = Ghd.j;
+ BD(qud(ZKd(Ghd.j), 0), 18);
+ Khd = Ghd.d;
+ BD(qud(ZKd(Ghd.d), 0), 18);
+ BD(qud(ZKd(Ghd.d), 1), 18);
+ BD(qud(ZKd(Ghd.d), 2), 18);
+ BD(qud(ZKd(Ghd.d), 3), 18);
+ BD(qud(ZKd(Ghd.d), 4), 34);
+ BD(qud(ZKd(Ghd.d), 5), 34);
+ BD(qud(ZKd(Ghd.d), 6), 34);
+ BD(qud(ZKd(Ghd.d), 7), 34);
+ Ihd = Ghd.b;
+ BD(qud(ZKd(Ghd.b), 0), 34);
+ BD(qud(ZKd(Ghd.b), 1), 34);
+ Lhd = Ghd.e;
+ BD(qud(ZKd(Ghd.e), 0), 34);
+ BD(qud(ZKd(Ghd.e), 1), 34);
+ BD(qud(ZKd(Ghd.e), 2), 34);
+ BD(qud(ZKd(Ghd.e), 3), 34);
+ BD(qud(ZKd(Ghd.e), 4), 18);
+ BD(qud(ZKd(Ghd.e), 5), 18);
+ BD(qud(ZKd(Ghd.e), 6), 18);
+ BD(qud(ZKd(Ghd.e), 7), 18);
+ BD(qud(ZKd(Ghd.e), 8), 18);
+ BD(qud(ZKd(Ghd.e), 9), 18);
+ BD(qud(ZKd(Ghd.e), 10), 34);
+ Qhd = Ghd.k;
+ BD(qud(ZKd(Ghd.k), 0), 34);
+ BD(qud(ZKd(Ghd.k), 1), 34);
+ }
+ function wQc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F;
+ C = new Psb();
+ w = new Psb();
+ q = -1;
+ for (i = new olb(a); i.a < i.c.c.length; ) {
+ g = BD(mlb(i), 128);
+ g.s = q--;
+ k = 0;
+ t = 0;
+ for (f = new olb(g.t); f.a < f.c.c.length; ) {
+ d = BD(mlb(f), 268);
+ t += d.c;
+ }
+ for (e = new olb(g.i); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 268);
+ k += d.c;
+ }
+ g.n = k;
+ g.u = t;
+ t == 0 ? (Gsb(w, g, w.c.b, w.c), true) : k == 0 && (Gsb(C, g, C.c.b, C.c), true);
+ }
+ F = Gx(a);
+ l = a.c.length;
+ p = l + 1;
+ r = l - 1;
+ n = new Rkb();
+ while (F.a.gc() != 0) {
+ while (w.b != 0) {
+ v = (sCb(w.b != 0), BD(Nsb(w, w.a.a), 128));
+ F.a.Bc(v) != null;
+ v.s = r--;
+ AQc(v, C, w);
+ }
+ while (C.b != 0) {
+ A = (sCb(C.b != 0), BD(Nsb(C, C.a.a), 128));
+ F.a.Bc(A) != null;
+ A.s = p++;
+ AQc(A, C, w);
+ }
+ o2 = Rie;
+ for (j = F.a.ec().Kc(); j.Ob(); ) {
+ g = BD(j.Pb(), 128);
+ s = g.u - g.n;
+ if (s >= o2) {
+ if (s > o2) {
+ n.c = KC(SI, Uhe, 1, 0, 5, 1);
+ o2 = s;
+ }
+ n.c[n.c.length] = g;
+ }
+ }
+ if (n.c.length != 0) {
+ m = BD(Ikb(n, Bub(b, n.c.length)), 128);
+ F.a.Bc(m) != null;
+ m.s = p++;
+ AQc(m, C, w);
+ n.c = KC(SI, Uhe, 1, 0, 5, 1);
+ }
+ }
+ u = a.c.length + 1;
+ for (h = new olb(a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 128);
+ g.s < l && (g.s += u);
+ }
+ for (B = new olb(a); B.a < B.c.c.length; ) {
+ A = BD(mlb(B), 128);
+ c = new Bib(A.t, 0);
+ while (c.b < c.d.gc()) {
+ d = (sCb(c.b < c.d.gc()), BD(c.d.Xb(c.c = c.b++), 268));
+ D = d.b;
+ if (A.s > D.s) {
+ uib(c);
+ Lkb(D.i, d);
+ if (d.c > 0) {
+ d.a = D;
+ Ekb(D.t, d);
+ d.b = A;
+ Ekb(A.i, d);
+ }
+ }
+ }
+ }
+ }
+ function qde(a) {
+ var b, c, d, e, f;
+ b = a.c;
+ switch (b) {
+ case 11:
+ return a.Ml();
+ case 12:
+ return a.Ol();
+ case 14:
+ return a.Ql();
+ case 15:
+ return a.Tl();
+ case 16:
+ return a.Rl();
+ case 17:
+ return a.Ul();
+ case 21:
+ nde(a);
+ return wfe(), wfe(), ffe;
+ case 10:
+ switch (a.a) {
+ case 65:
+ return a.yl();
+ case 90:
+ return a.Dl();
+ case 122:
+ return a.Kl();
+ case 98:
+ return a.El();
+ case 66:
+ return a.zl();
+ case 60:
+ return a.Jl();
+ case 62:
+ return a.Hl();
+ }
+ }
+ f = pde(a);
+ b = a.c;
+ switch (b) {
+ case 3:
+ return a.Zl(f);
+ case 4:
+ return a.Xl(f);
+ case 5:
+ return a.Yl(f);
+ case 0:
+ if (a.a == 123 && a.d < a.j) {
+ e = a.d;
+ d = 0;
+ c = -1;
+ if ((b = bfb(a.i, e++)) >= 48 && b <= 57) {
+ d = b - 48;
+ while (e < a.j && (b = bfb(a.i, e++)) >= 48 && b <= 57) {
+ d = d * 10 + b - 48;
+ if (d < 0)
+ throw vbb(new mde(tvd((h0d(), bve))));
+ }
+ } else {
+ throw vbb(new mde(tvd((h0d(), Zue))));
+ }
+ c = d;
+ if (b == 44) {
+ if (e >= a.j) {
+ throw vbb(new mde(tvd((h0d(), _ue))));
+ } else if ((b = bfb(a.i, e++)) >= 48 && b <= 57) {
+ c = b - 48;
+ while (e < a.j && (b = bfb(a.i, e++)) >= 48 && b <= 57) {
+ c = c * 10 + b - 48;
+ if (c < 0)
+ throw vbb(new mde(tvd((h0d(), bve))));
+ }
+ if (d > c)
+ throw vbb(new mde(tvd((h0d(), ave))));
+ } else {
+ c = -1;
+ }
+ }
+ if (b != 125)
+ throw vbb(new mde(tvd((h0d(), $ue))));
+ if (a.sl(e)) {
+ f = (wfe(), wfe(), new lge(9, f));
+ a.d = e + 1;
+ } else {
+ f = (wfe(), wfe(), new lge(3, f));
+ a.d = e;
+ }
+ f.dm(d);
+ f.cm(c);
+ nde(a);
+ }
+ }
+ return f;
+ }
+ function $bc(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F;
+ p = new Skb(b.b);
+ u = new Skb(b.b);
+ m = new Skb(b.b);
+ B = new Skb(b.b);
+ q = new Skb(b.b);
+ for (A = Jsb(b, 0); A.b != A.d.c; ) {
+ v = BD(Xsb(A), 11);
+ for (h = new olb(v.g); h.a < h.c.c.length; ) {
+ f = BD(mlb(h), 17);
+ if (f.c.i == f.d.i) {
+ if (v.j == f.d.j) {
+ B.c[B.c.length] = f;
+ continue;
+ } else if (v.j == (Ucd(), Acd) && f.d.j == Rcd) {
+ q.c[q.c.length] = f;
+ continue;
+ }
+ }
+ }
+ }
+ for (i = new olb(q); i.a < i.c.c.length; ) {
+ f = BD(mlb(i), 17);
+ _bc(a, f, c, d, (Ucd(), zcd));
+ }
+ for (g = new olb(B); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 17);
+ C = new b0b(a);
+ __b(C, (j0b(), i0b));
+ yNb(C, (Nyc(), Vxc), (dcd(), $bd));
+ yNb(C, (wtc(), $sc), f);
+ D = new H0b();
+ yNb(D, $sc, f.d);
+ G0b(D, (Ucd(), Tcd));
+ F0b(D, C);
+ F = new H0b();
+ yNb(F, $sc, f.c);
+ G0b(F, zcd);
+ F0b(F, C);
+ yNb(f.c, gtc, C);
+ yNb(f.d, gtc, C);
+ QZb(f, null);
+ RZb(f, null);
+ c.c[c.c.length] = C;
+ yNb(C, ysc, meb(2));
+ }
+ for (w = Jsb(b, 0); w.b != w.d.c; ) {
+ v = BD(Xsb(w), 11);
+ j = v.e.c.length > 0;
+ r = v.g.c.length > 0;
+ j && r ? (m.c[m.c.length] = v, true) : j ? (p.c[p.c.length] = v, true) : r && (u.c[u.c.length] = v, true);
+ }
+ for (o2 = new olb(p); o2.a < o2.c.c.length; ) {
+ n = BD(mlb(o2), 11);
+ Ekb(e, Zbc(a, n, null, c));
+ }
+ for (t = new olb(u); t.a < t.c.c.length; ) {
+ s = BD(mlb(t), 11);
+ Ekb(e, Zbc(a, null, s, c));
+ }
+ for (l = new olb(m); l.a < l.c.c.length; ) {
+ k = BD(mlb(l), 11);
+ Ekb(e, Zbc(a, k, k, c));
+ }
+ }
+ function NCb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D;
+ s = new f7c(Pje, Pje);
+ b = new f7c(Qje, Qje);
+ for (B = new olb(a); B.a < B.c.c.length; ) {
+ A = BD(mlb(B), 8);
+ s.a = $wnd.Math.min(s.a, A.a);
+ s.b = $wnd.Math.min(s.b, A.b);
+ b.a = $wnd.Math.max(b.a, A.a);
+ b.b = $wnd.Math.max(b.b, A.b);
+ }
+ m = new f7c(b.a - s.a, b.b - s.b);
+ j = new f7c(s.a - 50, s.b - m.a - 50);
+ k = new f7c(s.a - 50, b.b + m.a + 50);
+ l = new f7c(b.a + m.b / 2 + 50, s.b + m.b / 2);
+ n = new eDb(j, k, l);
+ w = new Tqb();
+ f = new Rkb();
+ c = new Rkb();
+ w.a.zc(n, w);
+ for (D = new olb(a); D.a < D.c.c.length; ) {
+ C = BD(mlb(D), 8);
+ f.c = KC(SI, Uhe, 1, 0, 5, 1);
+ for (v = w.a.ec().Kc(); v.Ob(); ) {
+ t = BD(v.Pb(), 308);
+ d = t.d;
+ S6c(d, t.a);
+ Jy(S6c(t.d, C), S6c(t.d, t.a)) < 0 && (f.c[f.c.length] = t, true);
+ }
+ c.c = KC(SI, Uhe, 1, 0, 5, 1);
+ for (u = new olb(f); u.a < u.c.c.length; ) {
+ t = BD(mlb(u), 308);
+ for (q = new olb(t.e); q.a < q.c.c.length; ) {
+ o2 = BD(mlb(q), 168);
+ g = true;
+ for (i = new olb(f); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 308);
+ h != t && (wtb(o2, Ikb(h.e, 0)) || wtb(o2, Ikb(h.e, 1)) || wtb(o2, Ikb(h.e, 2))) && (g = false);
+ }
+ g && (c.c[c.c.length] = o2, true);
+ }
+ }
+ Ve(w, f);
+ reb(w, new OCb());
+ for (p = new olb(c); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 168);
+ Qqb(w, new eDb(C, o2.a, o2.b));
+ }
+ }
+ r = new Tqb();
+ reb(w, new QCb(r));
+ e = r.a.ec().Kc();
+ while (e.Ob()) {
+ o2 = BD(e.Pb(), 168);
+ (dDb(n, o2.a) || dDb(n, o2.b)) && e.Qb();
+ }
+ reb(r, new SCb());
+ return r;
+ }
+ function _Tb(a) {
+ var b, c, d, e, f;
+ c = BD(vNb(a, (wtc(), Ksc)), 21);
+ b = k3c(WTb);
+ e = BD(vNb(a, (Nyc(), axc)), 334);
+ e == (hbd(), ebd) && d3c(b, XTb);
+ Ccb(DD(vNb(a, $wc))) ? e3c(b, (qUb(), lUb), (S8b(), I8b)) : e3c(b, (qUb(), nUb), (S8b(), I8b));
+ vNb(a, (g6c(), f6c)) != null && d3c(b, YTb);
+ (Ccb(DD(vNb(a, hxc))) || Ccb(DD(vNb(a, _wc)))) && c3c(b, (qUb(), pUb), (S8b(), W7b));
+ switch (BD(vNb(a, Lwc), 103).g) {
+ case 2:
+ case 3:
+ case 4:
+ c3c(e3c(b, (qUb(), lUb), (S8b(), Y7b)), pUb, X7b);
+ }
+ c.Hc((Orc(), Frc)) && c3c(e3c(e3c(b, (qUb(), lUb), (S8b(), V7b)), oUb, T7b), pUb, U7b);
+ PD(vNb(a, rxc)) !== PD((kAc(), iAc)) && e3c(b, (qUb(), nUb), (S8b(), A8b));
+ if (c.Hc(Mrc)) {
+ e3c(b, (qUb(), lUb), (S8b(), G8b));
+ e3c(b, mUb, E8b);
+ e3c(b, nUb, F8b);
+ }
+ PD(vNb(a, swc)) !== PD((yrc(), wrc)) && PD(vNb(a, Swc)) !== PD((Aad(), xad)) && c3c(b, (qUb(), pUb), (S8b(), j8b));
+ Ccb(DD(vNb(a, cxc))) && e3c(b, (qUb(), nUb), (S8b(), i8b));
+ Ccb(DD(vNb(a, Hwc))) && e3c(b, (qUb(), nUb), (S8b(), O8b));
+ if (cUb(a)) {
+ PD(vNb(a, axc)) === PD(ebd) ? d = BD(vNb(a, Cwc), 292) : d = BD(vNb(a, Dwc), 292);
+ f = d == (Xrc(), Vrc) ? (S8b(), D8b) : (S8b(), R8b);
+ e3c(b, (qUb(), oUb), f);
+ }
+ switch (BD(vNb(a, Kyc), 377).g) {
+ case 1:
+ e3c(b, (qUb(), oUb), (S8b(), P8b));
+ break;
+ case 2:
+ c3c(e3c(e3c(b, (qUb(), nUb), (S8b(), P7b)), oUb, Q7b), pUb, R7b);
+ }
+ PD(vNb(a, ywc)) !== PD((tAc(), rAc)) && e3c(b, (qUb(), nUb), (S8b(), Q8b));
+ return b;
+ }
+ function mZc(a) {
+ r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Kre), "ELK Rectangle Packing"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."), new pZc())));
+ p4c(a, Kre, _le, 1.3);
+ p4c(a, Kre, Jre, Ksd(VYc));
+ p4c(a, Kre, ame, gZc);
+ p4c(a, Kre, wme, 15);
+ p4c(a, Kre, lqe, Ksd(SYc));
+ p4c(a, Kre, Fme, Ksd(_Yc));
+ p4c(a, Kre, Tme, Ksd(aZc));
+ p4c(a, Kre, Eme, Ksd(bZc));
+ p4c(a, Kre, Gme, Ksd($Yc));
+ p4c(a, Kre, Dme, Ksd(cZc));
+ p4c(a, Kre, Hme, Ksd(hZc));
+ p4c(a, Kre, Bre, Ksd(eZc));
+ p4c(a, Kre, Cre, Ksd(ZYc));
+ p4c(a, Kre, Fre, Ksd(dZc));
+ p4c(a, Kre, Gre, Ksd(iZc));
+ p4c(a, Kre, Hre, Ksd(WYc));
+ p4c(a, Kre, Ame, Ksd(XYc));
+ p4c(a, Kre, xqe, Ksd(YYc));
+ p4c(a, Kre, Ere, Ksd(UYc));
+ p4c(a, Kre, Dre, Ksd(TYc));
+ p4c(a, Kre, Ire, Ksd(kZc));
+ }
+ function Wmd(b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ if (d == null) {
+ return null;
+ }
+ if (b.a != c.Aj()) {
+ throw vbb(new Wdb(tte + c.ne() + ute));
+ }
+ if (JD(c, 457)) {
+ r = _Pd(BD(c, 671), d);
+ if (!r) {
+ throw vbb(new Wdb(vte + d + "' is not a valid enumerator of '" + c.ne() + "'"));
+ }
+ return r;
+ }
+ switch (o1d((O6d(), M6d), c).cl()) {
+ case 2: {
+ d = Qge(d, false);
+ break;
+ }
+ case 3: {
+ d = Qge(d, true);
+ break;
+ }
+ }
+ e = o1d(M6d, c).$k();
+ if (e) {
+ return e.Aj().Nh().Kh(e, d);
+ }
+ n = o1d(M6d, c).al();
+ if (n) {
+ r = new Rkb();
+ for (k = Zmd(d), l = 0, m = k.length; l < m; ++l) {
+ j = k[l];
+ Ekb(r, n.Aj().Nh().Kh(n, j));
+ }
+ return r;
+ }
+ q = o1d(M6d, c).bl();
+ if (!q.dc()) {
+ for (p = q.Kc(); p.Ob(); ) {
+ o2 = BD(p.Pb(), 148);
+ try {
+ r = o2.Aj().Nh().Kh(o2, d);
+ if (r != null) {
+ return r;
+ }
+ } catch (a) {
+ a = ubb(a);
+ if (!JD(a, 60))
+ throw vbb(a);
+ }
+ }
+ throw vbb(new Wdb(vte + d + "' does not match any member types of the union datatype '" + c.ne() + "'"));
+ }
+ BD(c, 834).Fj();
+ f = r6d(c.Bj());
+ if (!f)
+ return null;
+ if (f == yI) {
+ h = 0;
+ try {
+ h = Icb(d, Rie, Ohe) & aje;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ g = rfb(d);
+ h = g[0];
+ } else
+ throw vbb(a);
+ }
+ return bdb(h);
+ }
+ if (f == $J) {
+ for (i = 0; i < Pmd.length; ++i) {
+ try {
+ return DQd(Pmd[i], d);
+ } catch (a) {
+ a = ubb(a);
+ if (!JD(a, 32))
+ throw vbb(a);
+ }
+ }
+ throw vbb(new Wdb(vte + d + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof"));
+ }
+ throw vbb(new Wdb(vte + d + "' is invalid. "));
+ }
+ function ngb(a, b) {
+ var c, d, e, f, g, h, i, j;
+ c = 0;
+ g = 0;
+ f = b.length;
+ h = null;
+ j = new Vfb();
+ if (g < f && (BCb(g, b.length), b.charCodeAt(g) == 43)) {
+ ++g;
+ ++c;
+ if (g < f && (BCb(g, b.length), b.charCodeAt(g) == 43 || (BCb(g, b.length), b.charCodeAt(g) == 45))) {
+ throw vbb(new Oeb(Oje + b + '"'));
+ }
+ }
+ while (g < f && (BCb(g, b.length), b.charCodeAt(g) != 46) && (BCb(g, b.length), b.charCodeAt(g) != 101) && (BCb(g, b.length), b.charCodeAt(g) != 69)) {
+ ++g;
+ }
+ j.a += "" + qfb(b == null ? Xhe : (uCb(b), b), c, g);
+ if (g < f && (BCb(g, b.length), b.charCodeAt(g) == 46)) {
+ ++g;
+ c = g;
+ while (g < f && (BCb(g, b.length), b.charCodeAt(g) != 101) && (BCb(g, b.length), b.charCodeAt(g) != 69)) {
+ ++g;
+ }
+ a.e = g - c;
+ j.a += "" + qfb(b == null ? Xhe : (uCb(b), b), c, g);
+ } else {
+ a.e = 0;
+ }
+ if (g < f && (BCb(g, b.length), b.charCodeAt(g) == 101 || (BCb(g, b.length), b.charCodeAt(g) == 69))) {
+ ++g;
+ c = g;
+ if (g < f && (BCb(g, b.length), b.charCodeAt(g) == 43)) {
+ ++g;
+ g < f && (BCb(g, b.length), b.charCodeAt(g) != 45) && ++c;
+ }
+ h = b.substr(c, f - c);
+ a.e = a.e - Icb(h, Rie, Ohe);
+ if (a.e != QD(a.e)) {
+ throw vbb(new Oeb("Scale out of range."));
+ }
+ }
+ i = j.a;
+ if (i.length < 16) {
+ a.f = (kgb == null && (kgb = new RegExp("^[+-]?\\d*$", "i")), kgb.test(i) ? parseInt(i, 10) : NaN);
+ if (isNaN(a.f)) {
+ throw vbb(new Oeb(Oje + b + '"'));
+ }
+ a.a = ugb(a.f);
+ } else {
+ ogb(a, new Ygb(i));
+ }
+ a.d = j.a.length;
+ for (e = 0; e < j.a.length; ++e) {
+ d = bfb(j.a, e);
+ if (d != 45 && d != 48) {
+ break;
+ }
+ --a.d;
+ }
+ a.d == 0 && (a.d = 1);
+ }
+ function xXb() {
+ xXb = ccb;
+ wXb = new Hp();
+ Rc(wXb, (Ucd(), Fcd), Jcd);
+ Rc(wXb, Qcd, Jcd);
+ Rc(wXb, Qcd, Mcd);
+ Rc(wXb, Bcd, Icd);
+ Rc(wXb, Bcd, Jcd);
+ Rc(wXb, Gcd, Jcd);
+ Rc(wXb, Gcd, Kcd);
+ Rc(wXb, Ocd, Dcd);
+ Rc(wXb, Ocd, Jcd);
+ Rc(wXb, Lcd, Ecd);
+ Rc(wXb, Lcd, Jcd);
+ Rc(wXb, Lcd, Kcd);
+ Rc(wXb, Lcd, Dcd);
+ Rc(wXb, Ecd, Lcd);
+ Rc(wXb, Ecd, Mcd);
+ Rc(wXb, Ecd, Icd);
+ Rc(wXb, Ecd, Jcd);
+ Rc(wXb, Ncd, Ncd);
+ Rc(wXb, Ncd, Kcd);
+ Rc(wXb, Ncd, Mcd);
+ Rc(wXb, Hcd, Hcd);
+ Rc(wXb, Hcd, Kcd);
+ Rc(wXb, Hcd, Icd);
+ Rc(wXb, Pcd, Pcd);
+ Rc(wXb, Pcd, Dcd);
+ Rc(wXb, Pcd, Mcd);
+ Rc(wXb, Ccd, Ccd);
+ Rc(wXb, Ccd, Dcd);
+ Rc(wXb, Ccd, Icd);
+ Rc(wXb, Kcd, Gcd);
+ Rc(wXb, Kcd, Lcd);
+ Rc(wXb, Kcd, Ncd);
+ Rc(wXb, Kcd, Hcd);
+ Rc(wXb, Kcd, Jcd);
+ Rc(wXb, Kcd, Kcd);
+ Rc(wXb, Kcd, Mcd);
+ Rc(wXb, Kcd, Icd);
+ Rc(wXb, Dcd, Ocd);
+ Rc(wXb, Dcd, Lcd);
+ Rc(wXb, Dcd, Pcd);
+ Rc(wXb, Dcd, Ccd);
+ Rc(wXb, Dcd, Dcd);
+ Rc(wXb, Dcd, Mcd);
+ Rc(wXb, Dcd, Icd);
+ Rc(wXb, Dcd, Jcd);
+ Rc(wXb, Mcd, Qcd);
+ Rc(wXb, Mcd, Ecd);
+ Rc(wXb, Mcd, Ncd);
+ Rc(wXb, Mcd, Pcd);
+ Rc(wXb, Mcd, Kcd);
+ Rc(wXb, Mcd, Dcd);
+ Rc(wXb, Mcd, Mcd);
+ Rc(wXb, Mcd, Jcd);
+ Rc(wXb, Icd, Bcd);
+ Rc(wXb, Icd, Ecd);
+ Rc(wXb, Icd, Hcd);
+ Rc(wXb, Icd, Ccd);
+ Rc(wXb, Icd, Kcd);
+ Rc(wXb, Icd, Dcd);
+ Rc(wXb, Icd, Icd);
+ Rc(wXb, Icd, Jcd);
+ Rc(wXb, Jcd, Fcd);
+ Rc(wXb, Jcd, Qcd);
+ Rc(wXb, Jcd, Bcd);
+ Rc(wXb, Jcd, Gcd);
+ Rc(wXb, Jcd, Ocd);
+ Rc(wXb, Jcd, Lcd);
+ Rc(wXb, Jcd, Ecd);
+ Rc(wXb, Jcd, Kcd);
+ Rc(wXb, Jcd, Dcd);
+ Rc(wXb, Jcd, Mcd);
+ Rc(wXb, Jcd, Icd);
+ Rc(wXb, Jcd, Jcd);
+ }
+ function YXb(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B;
+ a.d = new f7c(Pje, Pje);
+ a.c = new f7c(Qje, Qje);
+ for (m = b.Kc(); m.Ob(); ) {
+ k = BD(m.Pb(), 37);
+ for (t = new olb(k.a); t.a < t.c.c.length; ) {
+ s = BD(mlb(t), 10);
+ a.d.a = $wnd.Math.min(a.d.a, s.n.a - s.d.b);
+ a.d.b = $wnd.Math.min(a.d.b, s.n.b - s.d.d);
+ a.c.a = $wnd.Math.max(a.c.a, s.n.a + s.o.a + s.d.c);
+ a.c.b = $wnd.Math.max(a.c.b, s.n.b + s.o.b + s.d.a);
+ }
+ }
+ h = new nYb();
+ for (l = b.Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 37);
+ d = fYb(a, k);
+ Ekb(h.a, d);
+ d.a = d.a | !BD(vNb(d.c, (wtc(), Esc)), 21).dc();
+ }
+ a.b = (LUb(), B = new VUb(), B.f = new CUb(c), B.b = BUb(B.f, h), B);
+ PUb((o2 = a.b, new Zdd(), o2));
+ a.e = new d7c();
+ a.a = a.b.f.e;
+ for (g = new olb(h.a); g.a < g.c.c.length; ) {
+ e = BD(mlb(g), 841);
+ u = QUb(a.b, e);
+ g_b(e.c, u.a, u.b);
+ for (q = new olb(e.c.a); q.a < q.c.c.length; ) {
+ p = BD(mlb(q), 10);
+ if (p.k == (j0b(), e0b)) {
+ r = aYb(a, p.n, BD(vNb(p, (wtc(), Hsc)), 61));
+ P6c(X6c(p.n), r);
+ }
+ }
+ }
+ for (f = new olb(h.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 841);
+ for (j = new olb(lYb(e)); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 17);
+ A = new t7c(i.a);
+ St(A, 0, A0b(i.c));
+ Dsb(A, A0b(i.d));
+ n = null;
+ for (w = Jsb(A, 0); w.b != w.d.c; ) {
+ v = BD(Xsb(w), 8);
+ if (!n) {
+ n = v;
+ continue;
+ }
+ if (Ky(n.a, v.a)) {
+ a.e.a = $wnd.Math.min(a.e.a, n.a);
+ a.a.a = $wnd.Math.max(a.a.a, n.a);
+ } else if (Ky(n.b, v.b)) {
+ a.e.b = $wnd.Math.min(a.e.b, n.b);
+ a.a.b = $wnd.Math.max(a.a.b, n.b);
+ }
+ n = v;
+ }
+ }
+ }
+ V6c(a.e);
+ P6c(a.a, a.e);
+ }
+ function wZd(a) {
+ Bnd(a.b, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentTransient"]));
+ Bnd(a.a, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedSourceURI"]));
+ Bnd(a.o, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"]));
+ Bnd(a.p, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedInstanceTypeName UniqueTypeParameterNames"]));
+ Bnd(a.v, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "UniqueEnumeratorNames UniqueEnumeratorLiterals"]));
+ Bnd(a.R, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedName"]));
+ Bnd(a.T, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"]));
+ Bnd(a.U, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"]));
+ Bnd(a.W, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"]));
+ Bnd(a.bb, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ValidDefaultValueLiteral"]));
+ Bnd(a.eb, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ValidLowerBound ValidUpperBound ConsistentBounds ValidType"]));
+ Bnd(a.H, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentType ConsistentBounds ConsistentArguments"]));
+ }
+ function B4b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C;
+ if (b.dc()) {
+ return;
+ }
+ e = new s7c();
+ h = c ? c : BD(b.Xb(0), 17);
+ o2 = h.c;
+ hQc();
+ m = o2.i.k;
+ if (!(m == (j0b(), h0b) || m == i0b || m == e0b || m == d0b)) {
+ throw vbb(new Wdb("The target node of the edge must be a normal node or a northSouthPort."));
+ }
+ Fsb(e, l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])));
+ if ((Ucd(), Lcd).Hc(o2.j)) {
+ q = Edb(ED(vNb(o2, (wtc(), qtc))));
+ l = new f7c(l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).a, q);
+ Gsb(e, l, e.c.b, e.c);
+ }
+ k = null;
+ d = false;
+ i = b.Kc();
+ while (i.Ob()) {
+ g = BD(i.Pb(), 17);
+ f = g.a;
+ if (f.b != 0) {
+ if (d) {
+ j = Y6c(P6c(k, (sCb(f.b != 0), BD(f.a.a.c, 8))), 0.5);
+ Gsb(e, j, e.c.b, e.c);
+ d = false;
+ } else {
+ d = true;
+ }
+ k = R6c((sCb(f.b != 0), BD(f.c.b.c, 8)));
+ ye(e, f);
+ Osb(f);
+ }
+ }
+ p = h.d;
+ if (Lcd.Hc(p.j)) {
+ q = Edb(ED(vNb(p, (wtc(), qtc))));
+ l = new f7c(l7c(OC(GC(m1, 1), nie, 8, 0, [p.i.n, p.n, p.a])).a, q);
+ Gsb(e, l, e.c.b, e.c);
+ }
+ Fsb(e, l7c(OC(GC(m1, 1), nie, 8, 0, [p.i.n, p.n, p.a])));
+ a.d == (tBc(), qBc) && (r = (sCb(e.b != 0), BD(e.a.a.c, 8)), s = BD(Ut(e, 1), 8), t = new e7c(bRc(o2.j)), t.a *= 5, t.b *= 5, u = c7c(new f7c(s.a, s.b), r), v = new f7c(A4b(t.a, u.a), A4b(t.b, u.b)), P6c(v, r), w = Jsb(e, 1), Vsb(w, v), A = (sCb(e.b != 0), BD(e.c.b.c, 8)), B = BD(Ut(e, e.b - 2), 8), t = new e7c(bRc(p.j)), t.a *= 5, t.b *= 5, u = c7c(new f7c(B.a, B.b), A), C = new f7c(A4b(t.a, u.a), A4b(t.b, u.b)), P6c(C, A), St(e, e.b - 1, C), void 0);
+ n = new YPc(e);
+ ye(h.a, UPc(n));
+ }
+ function Kgd(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K, L, M, N, O, P;
+ t = BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82);
+ v = t.Dg();
+ w = t.Eg();
+ u = t.Cg() / 2;
+ p = t.Bg() / 2;
+ if (JD(t, 186)) {
+ s = BD(t, 118);
+ v += mpd(s).i;
+ v += mpd(s).i;
+ }
+ v += u;
+ w += p;
+ F = BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82);
+ H = F.Dg();
+ I = F.Eg();
+ G = F.Cg() / 2;
+ A = F.Bg() / 2;
+ if (JD(F, 186)) {
+ D = BD(F, 118);
+ H += mpd(D).i;
+ H += mpd(D).i;
+ }
+ H += G;
+ I += A;
+ if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) {
+ h = (Fhd(), j = new rmd(), j);
+ wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), h);
+ } else if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i > 1) {
+ o2 = new Oyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a));
+ while (o2.e != o2.i.gc()) {
+ Eyd(o2);
+ }
+ }
+ g = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202);
+ q = H;
+ H > v + u ? q = v + u : H < v - u && (q = v - u);
+ r = I;
+ I > w + p ? r = w + p : I < w - p && (r = w - p);
+ q > v - u && q < v + u && r > w - p && r < w + p && (q = v + u);
+ omd(g, q);
+ pmd(g, r);
+ B = v;
+ v > H + G ? B = H + G : v < H - G && (B = H - G);
+ C = w;
+ w > I + A ? C = I + A : w < I - A && (C = I - A);
+ B > H - G && B < H + G && C > I - A && C < I + A && (C = I + A);
+ hmd(g, B);
+ imd(g, C);
+ Uxd((!g.a && (g.a = new xMd(y2, g, 5)), g.a));
+ f = Bub(b, 5);
+ t == F && ++f;
+ L = B - q;
+ O = C - r;
+ J = $wnd.Math.sqrt(L * L + O * O);
+ l = J * 0.20000000298023224;
+ M = L / (f + 1);
+ P = O / (f + 1);
+ K = q;
+ N = r;
+ for (k = 0; k < f; k++) {
+ K += M;
+ N += P;
+ m = K + Cub(b, 24) * lke * l - l / 2;
+ m < 0 ? m = 1 : m > c && (m = c - 1);
+ n = N + Cub(b, 24) * lke * l - l / 2;
+ n < 0 ? n = 1 : n > d && (n = d - 1);
+ e = (Fhd(), i = new xkd(), i);
+ vkd(e, m);
+ wkd(e, n);
+ wtd((!g.a && (g.a = new xMd(y2, g, 5)), g.a), e);
+ }
+ }
+ function Nyc() {
+ Nyc = ccb;
+ iyc = (Y9c(), I9c);
+ jyc = J9c;
+ kyc = K9c;
+ lyc = L9c;
+ nyc = M9c;
+ oyc = N9c;
+ ryc = P9c;
+ tyc = R9c;
+ uyc = S9c;
+ syc = Q9c;
+ vyc = T9c;
+ xyc = U9c;
+ zyc = X9c;
+ qyc = O9c;
+ hyc = (jwc(), Bvc);
+ myc = Cvc;
+ pyc = Dvc;
+ wyc = Evc;
+ byc = new Osd(D9c, meb(0));
+ cyc = yvc;
+ dyc = zvc;
+ eyc = Avc;
+ Kyc = awc;
+ Cyc = Hvc;
+ Dyc = Kvc;
+ Gyc = Svc;
+ Eyc = Nvc;
+ Fyc = Pvc;
+ Myc = fwc;
+ Lyc = cwc;
+ Iyc = Yvc;
+ Hyc = Wvc;
+ Jyc = $vc;
+ Cxc = pvc;
+ Dxc = qvc;
+ Xwc = Auc;
+ Ywc = Duc;
+ Lxc = new q0b(12);
+ Kxc = new Osd(f9c, Lxc);
+ Twc = (Aad(), wad);
+ Swc = new Osd(E8c, Twc);
+ Uxc = new Osd(s9c, 0);
+ fyc = new Osd(E9c, meb(1));
+ owc = new Osd(r8c, tme);
+ Jxc = d9c;
+ Vxc = t9c;
+ $xc = A9c;
+ Kwc = y8c;
+ mwc = p8c;
+ axc = J8c;
+ gyc = new Osd(H9c, (Bcb(), true));
+ fxc = M8c;
+ gxc = N8c;
+ Fxc = Y8c;
+ Ixc = b9c;
+ Gxc = $8c;
+ Nwc = (ead(), cad);
+ Lwc = new Osd(z8c, Nwc);
+ xxc = W8c;
+ wxc = U8c;
+ Yxc = x9c;
+ Xxc = w9c;
+ Zxc = z9c;
+ Oxc = (Tbd(), Sbd);
+ new Osd(l9c, Oxc);
+ Qxc = o9c;
+ Rxc = p9c;
+ Sxc = q9c;
+ Pxc = n9c;
+ Byc = Gvc;
+ sxc = avc;
+ rxc = $uc;
+ Ayc = Fvc;
+ mxc = Suc;
+ Jwc = muc;
+ Iwc = kuc;
+ Awc = Xtc;
+ Bwc = Ytc;
+ Dwc = buc;
+ Cwc = Ztc;
+ Hwc = iuc;
+ uxc = cvc;
+ vxc = dvc;
+ ixc = Luc;
+ Exc = uvc;
+ zxc = hvc;
+ $wc = Guc;
+ Bxc = nvc;
+ Vwc = wuc;
+ Wwc = yuc;
+ zwc = w8c;
+ yxc = evc;
+ swc = Mtc;
+ rwc = Ktc;
+ qwc = Jtc;
+ cxc = Juc;
+ bxc = Iuc;
+ dxc = Kuc;
+ Hxc = _8c;
+ jxc = Q8c;
+ Zwc = G8c;
+ Qwc = C8c;
+ Pwc = B8c;
+ Ewc = euc;
+ Wxc = v9c;
+ pwc = v8c;
+ exc = L8c;
+ Txc = r9c;
+ Mxc = h9c;
+ Nxc = j9c;
+ oxc = Vuc;
+ pxc = Xuc;
+ ayc = C9c;
+ nwc = Itc;
+ qxc = Zuc;
+ Rwc = suc;
+ Owc = quc;
+ txc = S8c;
+ kxc = Puc;
+ Axc = kvc;
+ yyc = V9c;
+ Mwc = ouc;
+ _xc = wvc;
+ Uwc = uuc;
+ lxc = Ruc;
+ Fwc = guc;
+ hxc = P8c;
+ nxc = Uuc;
+ Gwc = huc;
+ ywc = Vtc;
+ wwc = Stc;
+ uwc = Qtc;
+ vwc = Rtc;
+ xwc = Utc;
+ twc = Otc;
+ _wc = Huc;
+ }
+ function shb(a, b) {
+ phb();
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H;
+ B = a.e;
+ o2 = a.d;
+ e = a.a;
+ if (B == 0) {
+ switch (b) {
+ case 0:
+ return "0";
+ case 1:
+ return $je;
+ case 2:
+ return "0.00";
+ case 3:
+ return "0.000";
+ case 4:
+ return "0.0000";
+ case 5:
+ return "0.00000";
+ case 6:
+ return "0.000000";
+ default:
+ w = new Ufb();
+ b < 0 ? (w.a += "0E+", w) : (w.a += "0E", w);
+ w.a += -b;
+ return w.a;
+ }
+ }
+ t = o2 * 10 + 1 + 7;
+ u = KC(TD, $ie, 25, t + 1, 15, 1);
+ c = t;
+ if (o2 == 1) {
+ h = e[0];
+ if (h < 0) {
+ H = xbb(h, Yje);
+ do {
+ p = H;
+ H = Abb(H, 10);
+ u[--c] = 48 + Tbb(Qbb(p, Ibb(H, 10))) & aje;
+ } while (ybb(H, 0) != 0);
+ } else {
+ H = h;
+ do {
+ p = H;
+ H = H / 10 | 0;
+ u[--c] = 48 + (p - H * 10) & aje;
+ } while (H != 0);
+ }
+ } else {
+ D = KC(WD, oje, 25, o2, 15, 1);
+ G = o2;
+ $fb(e, 0, D, 0, G);
+ I:
+ while (true) {
+ A = 0;
+ for (j = G - 1; j >= 0; j--) {
+ F = wbb(Nbb(A, 32), xbb(D[j], Yje));
+ r = qhb(F);
+ D[j] = Tbb(r);
+ A = Tbb(Obb(r, 32));
+ }
+ s = Tbb(A);
+ q = c;
+ do {
+ u[--c] = 48 + s % 10 & aje;
+ } while ((s = s / 10 | 0) != 0 && c != 0);
+ d = 9 - q + c;
+ for (i = 0; i < d && c > 0; i++) {
+ u[--c] = 48;
+ }
+ l = G - 1;
+ for (; D[l] == 0; l--) {
+ if (l == 0) {
+ break I;
+ }
+ }
+ G = l + 1;
+ }
+ while (u[c] == 48) {
+ ++c;
+ }
+ }
+ n = B < 0;
+ g = t - c - b - 1;
+ if (b == 0) {
+ n && (u[--c] = 45);
+ return zfb(u, c, t - c);
+ }
+ if (b > 0 && g >= -6) {
+ if (g >= 0) {
+ k = c + g;
+ for (m = t - 1; m >= k; m--) {
+ u[m + 1] = u[m];
+ }
+ u[++k] = 46;
+ n && (u[--c] = 45);
+ return zfb(u, c, t - c + 1);
+ }
+ for (l = 2; l < -g + 1; l++) {
+ u[--c] = 48;
+ }
+ u[--c] = 46;
+ u[--c] = 48;
+ n && (u[--c] = 45);
+ return zfb(u, c, t - c);
+ }
+ C = c + 1;
+ f = t;
+ v = new Vfb();
+ n && (v.a += "-", v);
+ if (f - C >= 1) {
+ Kfb(v, u[c]);
+ v.a += ".";
+ v.a += zfb(u, c + 1, t - c - 1);
+ } else {
+ v.a += zfb(u, c, t - c);
+ }
+ v.a += "E";
+ g > 0 && (v.a += "+", v);
+ v.a += "" + g;
+ return v.a;
+ }
+ function z$c(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w;
+ a.c = b;
+ a.g = new Lqb();
+ c = (Pgd(), new bhd(a.c));
+ d = new YGb(c);
+ UGb(d);
+ t = GD(hkd(a.c, (d0c(), Y_c)));
+ i = BD(hkd(a.c, $_c), 316);
+ v = BD(hkd(a.c, __c), 429);
+ g = BD(hkd(a.c, T_c), 482);
+ u = BD(hkd(a.c, Z_c), 430);
+ a.j = Edb(ED(hkd(a.c, a0c)));
+ h = a.a;
+ switch (i.g) {
+ case 0:
+ h = a.a;
+ break;
+ case 1:
+ h = a.b;
+ break;
+ case 2:
+ h = a.i;
+ break;
+ case 3:
+ h = a.e;
+ break;
+ case 4:
+ h = a.f;
+ break;
+ default:
+ throw vbb(new Wdb(Mre + (i.f != null ? i.f : "" + i.g)));
+ }
+ a.d = new g_c(h, v, g);
+ yNb(a.d, (XNb(), VNb), DD(hkd(a.c, V_c)));
+ a.d.c = Ccb(DD(hkd(a.c, U_c)));
+ if (Vod(a.c).i == 0) {
+ return a.d;
+ }
+ for (l = new Fyd(Vod(a.c)); l.e != l.i.gc(); ) {
+ k = BD(Dyd(l), 33);
+ n = k.g / 2;
+ m = k.f / 2;
+ w = new f7c(k.i + n, k.j + m);
+ while (Mhb(a.g, w)) {
+ O6c(w, ($wnd.Math.random() - 0.5) * qme, ($wnd.Math.random() - 0.5) * qme);
+ }
+ p = BD(hkd(k, (Y9c(), S8c)), 142);
+ q = new aOb(w, new J6c(w.a - n - a.j / 2 - p.b, w.b - m - a.j / 2 - p.d, k.g + a.j + (p.b + p.c), k.f + a.j + (p.d + p.a)));
+ Ekb(a.d.i, q);
+ Rhb(a.g, w, new vgd(q, k));
+ }
+ switch (u.g) {
+ case 0:
+ if (t == null) {
+ a.d.d = BD(Ikb(a.d.i, 0), 65);
+ } else {
+ for (s = new olb(a.d.i); s.a < s.c.c.length; ) {
+ q = BD(mlb(s), 65);
+ o2 = BD(BD(Ohb(a.g, q.a), 46).b, 33).zg();
+ o2 != null && dfb(o2, t) && (a.d.d = q);
+ }
+ }
+ break;
+ case 1:
+ e = new f7c(a.c.g, a.c.f);
+ e.a *= 0.5;
+ e.b *= 0.5;
+ O6c(e, a.c.i, a.c.j);
+ f = Pje;
+ for (r = new olb(a.d.i); r.a < r.c.c.length; ) {
+ q = BD(mlb(r), 65);
+ j = S6c(q.a, e);
+ if (j < f) {
+ f = j;
+ a.d.d = q;
+ }
+ }
+ break;
+ default:
+ throw vbb(new Wdb(Mre + (u.f != null ? u.f : "" + u.g)));
+ }
+ return a.d;
+ }
+ function qfd(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w;
+ v = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202);
+ k = new s7c();
+ u = new Lqb();
+ w = tfd(v);
+ jrb(u.f, v, w);
+ m = new Lqb();
+ d = new Psb();
+ for (o2 = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!b.d && (b.d = new y5d(B2, b, 8, 5)), b.d), (!b.e && (b.e = new y5d(B2, b, 7, 4)), b.e)]))); Qr(o2); ) {
+ n = BD(Rr(o2), 79);
+ if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i != 1) {
+ throw vbb(new Wdb(Tse + (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i));
+ }
+ if (n != a) {
+ q = BD(qud((!n.a && (n.a = new cUd(A2, n, 6, 6)), n.a), 0), 202);
+ Gsb(d, q, d.c.b, d.c);
+ p = BD(Wd(irb(u.f, q)), 12);
+ if (!p) {
+ p = tfd(q);
+ jrb(u.f, q, p);
+ }
+ l = c ? c7c(new g7c(BD(Ikb(w, w.c.length - 1), 8)), BD(Ikb(p, p.c.length - 1), 8)) : c7c(new g7c((tCb(0, w.c.length), BD(w.c[0], 8))), (tCb(0, p.c.length), BD(p.c[0], 8)));
+ jrb(m.f, q, l);
+ }
+ }
+ if (d.b != 0) {
+ r = BD(Ikb(w, c ? w.c.length - 1 : 0), 8);
+ for (j = 1; j < w.c.length; j++) {
+ s = BD(Ikb(w, c ? w.c.length - 1 - j : j), 8);
+ e = Jsb(d, 0);
+ while (e.b != e.d.c) {
+ q = BD(Xsb(e), 202);
+ p = BD(Wd(irb(u.f, q)), 12);
+ if (p.c.length <= j) {
+ Zsb(e);
+ } else {
+ t = P6c(new g7c(BD(Ikb(p, c ? p.c.length - 1 - j : j), 8)), BD(Wd(irb(m.f, q)), 8));
+ if (s.a != t.a || s.b != t.b) {
+ f = s.a - r.a;
+ h = s.b - r.b;
+ g = t.a - r.a;
+ i = t.b - r.b;
+ g * h == i * f && (f == 0 || isNaN(f) ? f : f < 0 ? -1 : 1) == (g == 0 || isNaN(g) ? g : g < 0 ? -1 : 1) && (h == 0 || isNaN(h) ? h : h < 0 ? -1 : 1) == (i == 0 || isNaN(i) ? i : i < 0 ? -1 : 1) ? ($wnd.Math.abs(f) < $wnd.Math.abs(g) || $wnd.Math.abs(h) < $wnd.Math.abs(i)) && (Gsb(k, s, k.c.b, k.c), true) : j > 1 && (Gsb(k, r, k.c.b, k.c), true);
+ Zsb(e);
+ }
+ }
+ }
+ r = s;
+ }
+ }
+ return k;
+ }
+ function $Bc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K, L;
+ Odd(c, "Greedy cycle removal", 1);
+ t = b.a;
+ L = t.c.length;
+ a.a = KC(WD, oje, 25, L, 15, 1);
+ a.c = KC(WD, oje, 25, L, 15, 1);
+ a.b = KC(WD, oje, 25, L, 15, 1);
+ j = 0;
+ for (r = new olb(t); r.a < r.c.c.length; ) {
+ p = BD(mlb(r), 10);
+ p.p = j;
+ for (C = new olb(p.j); C.a < C.c.c.length; ) {
+ w = BD(mlb(C), 11);
+ for (h = new olb(w.e); h.a < h.c.c.length; ) {
+ d = BD(mlb(h), 17);
+ if (d.c.i == p) {
+ continue;
+ }
+ G = BD(vNb(d, (Nyc(), cyc)), 19).a;
+ a.a[j] += G > 0 ? G + 1 : 1;
+ }
+ for (g = new olb(w.g); g.a < g.c.c.length; ) {
+ d = BD(mlb(g), 17);
+ if (d.d.i == p) {
+ continue;
+ }
+ G = BD(vNb(d, (Nyc(), cyc)), 19).a;
+ a.c[j] += G > 0 ? G + 1 : 1;
+ }
+ }
+ a.c[j] == 0 ? Dsb(a.e, p) : a.a[j] == 0 && Dsb(a.f, p);
+ ++j;
+ }
+ o2 = -1;
+ n = 1;
+ l = new Rkb();
+ a.d = BD(vNb(b, (wtc(), jtc)), 230);
+ while (L > 0) {
+ while (a.e.b != 0) {
+ I = BD(Lsb(a.e), 10);
+ a.b[I.p] = o2--;
+ _Bc(a, I);
+ --L;
+ }
+ while (a.f.b != 0) {
+ J = BD(Lsb(a.f), 10);
+ a.b[J.p] = n++;
+ _Bc(a, J);
+ --L;
+ }
+ if (L > 0) {
+ m = Rie;
+ for (s = new olb(t); s.a < s.c.c.length; ) {
+ p = BD(mlb(s), 10);
+ if (a.b[p.p] == 0) {
+ u = a.c[p.p] - a.a[p.p];
+ if (u >= m) {
+ if (u > m) {
+ l.c = KC(SI, Uhe, 1, 0, 5, 1);
+ m = u;
+ }
+ l.c[l.c.length] = p;
+ }
+ }
+ }
+ k = a.Zf(l);
+ a.b[k.p] = n++;
+ _Bc(a, k);
+ --L;
+ }
+ }
+ H = t.c.length + 1;
+ for (j = 0; j < t.c.length; j++) {
+ a.b[j] < 0 && (a.b[j] += H);
+ }
+ for (q = new olb(t); q.a < q.c.c.length; ) {
+ p = BD(mlb(q), 10);
+ F = m_b(p.j);
+ for (A = F, B = 0, D = A.length; B < D; ++B) {
+ w = A[B];
+ v = k_b(w.g);
+ for (e = v, f = 0, i = e.length; f < i; ++f) {
+ d = e[f];
+ K = d.d.i.p;
+ if (a.b[p.p] > a.b[K]) {
+ PZb(d, true);
+ yNb(b, Asc, (Bcb(), true));
+ }
+ }
+ }
+ }
+ a.a = null;
+ a.c = null;
+ a.b = null;
+ Osb(a.f);
+ Osb(a.e);
+ Qdd(c);
+ }
+ function sQb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ d = new Rkb();
+ h = new Rkb();
+ q = b / 2;
+ n = a.gc();
+ e = BD(a.Xb(0), 8);
+ r = BD(a.Xb(1), 8);
+ o2 = tQb(e.a, e.b, r.a, r.b, q);
+ Ekb(d, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
+ Ekb(h, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
+ for (j = 2; j < n; j++) {
+ p = e;
+ e = r;
+ r = BD(a.Xb(j), 8);
+ o2 = tQb(e.a, e.b, p.a, p.b, q);
+ Ekb(d, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
+ Ekb(h, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
+ o2 = tQb(e.a, e.b, r.a, r.b, q);
+ Ekb(d, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
+ Ekb(h, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
+ }
+ o2 = tQb(r.a, r.b, e.a, e.b, q);
+ Ekb(d, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
+ Ekb(h, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
+ c = new s7c();
+ g = new Rkb();
+ Dsb(c, (tCb(0, d.c.length), BD(d.c[0], 8)));
+ for (k = 1; k < d.c.length - 2; k += 2) {
+ f = (tCb(k, d.c.length), BD(d.c[k], 8));
+ m = rQb((tCb(k - 1, d.c.length), BD(d.c[k - 1], 8)), f, (tCb(k + 1, d.c.length), BD(d.c[k + 1], 8)), (tCb(k + 2, d.c.length), BD(d.c[k + 2], 8)));
+ !isFinite(m.a) || !isFinite(m.b) ? (Gsb(c, f, c.c.b, c.c), true) : (Gsb(c, m, c.c.b, c.c), true);
+ }
+ Dsb(c, BD(Ikb(d, d.c.length - 1), 8));
+ Ekb(g, (tCb(0, h.c.length), BD(h.c[0], 8)));
+ for (l = 1; l < h.c.length - 2; l += 2) {
+ f = (tCb(l, h.c.length), BD(h.c[l], 8));
+ m = rQb((tCb(l - 1, h.c.length), BD(h.c[l - 1], 8)), f, (tCb(l + 1, h.c.length), BD(h.c[l + 1], 8)), (tCb(l + 2, h.c.length), BD(h.c[l + 2], 8)));
+ !isFinite(m.a) || !isFinite(m.b) ? (g.c[g.c.length] = f, true) : (g.c[g.c.length] = m, true);
+ }
+ Ekb(g, BD(Ikb(h, h.c.length - 1), 8));
+ for (i = g.c.length - 1; i >= 0; i--) {
+ Dsb(c, (tCb(i, g.c.length), BD(g.c[i], 8)));
+ }
+ return c;
+ }
+ function aFd(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n;
+ g = true;
+ l = null;
+ d = null;
+ e = null;
+ b = false;
+ n = BEd;
+ j = null;
+ f = null;
+ h = 0;
+ i = UEd(a, h, zEd, AEd);
+ if (i < a.length && (BCb(i, a.length), a.charCodeAt(i) == 58)) {
+ l = a.substr(h, i - h);
+ h = i + 1;
+ }
+ c = l != null && hnb(GEd, l.toLowerCase());
+ if (c) {
+ i = a.lastIndexOf("!/");
+ if (i == -1) {
+ throw vbb(new Wdb("no archive separator"));
+ }
+ g = true;
+ d = qfb(a, h, ++i);
+ h = i;
+ } else if (h >= 0 && dfb(a.substr(h, "//".length), "//")) {
+ h += 2;
+ i = UEd(a, h, CEd, DEd);
+ d = a.substr(h, i - h);
+ h = i;
+ } else if (l != null && (h == a.length || (BCb(h, a.length), a.charCodeAt(h) != 47))) {
+ g = false;
+ i = ifb(a, wfb(35), h);
+ i == -1 && (i = a.length);
+ d = a.substr(h, i - h);
+ h = i;
+ }
+ if (!c && h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47)) {
+ i = UEd(a, h + 1, CEd, DEd);
+ k = a.substr(h + 1, i - (h + 1));
+ if (k.length > 0 && bfb(k, k.length - 1) == 58) {
+ e = k;
+ h = i;
+ }
+ }
+ if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47)) {
+ ++h;
+ b = true;
+ }
+ if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) != 63) && (BCb(h, a.length), a.charCodeAt(h) != 35)) {
+ m = new Rkb();
+ while (h < a.length && (BCb(h, a.length), a.charCodeAt(h) != 63) && (BCb(h, a.length), a.charCodeAt(h) != 35)) {
+ i = UEd(a, h, CEd, DEd);
+ Ekb(m, a.substr(h, i - h));
+ h = i;
+ h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47) && (bFd(a, ++h) || (m.c[m.c.length] = "", true));
+ }
+ n = KC(ZI, nie, 2, m.c.length, 6, 1);
+ Qkb(m, n);
+ }
+ if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 63)) {
+ i = gfb(a, 35, ++h);
+ i == -1 && (i = a.length);
+ j = a.substr(h, i - h);
+ h = i;
+ }
+ h < a.length && (f = pfb(a, ++h));
+ iFd(g, l, d, e, n, j);
+ return new NEd(g, l, d, e, b, n, j, f);
+ }
+ function sJc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K;
+ I = new Rkb();
+ for (o2 = new olb(b.b); o2.a < o2.c.c.length; ) {
+ m = BD(mlb(o2), 29);
+ for (v = new olb(m.a); v.a < v.c.c.length; ) {
+ u = BD(mlb(v), 10);
+ u.p = -1;
+ l = Rie;
+ B = Rie;
+ for (D = new olb(u.j); D.a < D.c.c.length; ) {
+ C = BD(mlb(D), 11);
+ for (e = new olb(C.e); e.a < e.c.c.length; ) {
+ c = BD(mlb(e), 17);
+ F = BD(vNb(c, (Nyc(), eyc)), 19).a;
+ l = $wnd.Math.max(l, F);
+ }
+ for (d = new olb(C.g); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 17);
+ F = BD(vNb(c, (Nyc(), eyc)), 19).a;
+ B = $wnd.Math.max(B, F);
+ }
+ }
+ yNb(u, hJc, meb(l));
+ yNb(u, iJc, meb(B));
+ }
+ }
+ r = 0;
+ for (n = new olb(b.b); n.a < n.c.c.length; ) {
+ m = BD(mlb(n), 29);
+ for (v = new olb(m.a); v.a < v.c.c.length; ) {
+ u = BD(mlb(v), 10);
+ if (u.p < 0) {
+ H = new zJc();
+ H.b = r++;
+ oJc(a, u, H);
+ I.c[I.c.length] = H;
+ }
+ }
+ }
+ A = Pu(I.c.length);
+ k = Pu(I.c.length);
+ for (g = 0; g < I.c.length; g++) {
+ Ekb(A, new Rkb());
+ Ekb(k, meb(0));
+ }
+ mJc(b, I, A, k);
+ J = BD(Qkb(I, KC(sY, Iqe, 257, I.c.length, 0, 1)), 840);
+ w = BD(Qkb(A, KC(yK, eme, 15, A.c.length, 0, 1)), 192);
+ j = KC(WD, oje, 25, k.c.length, 15, 1);
+ for (h = 0; h < j.length; h++) {
+ j[h] = (tCb(h, k.c.length), BD(k.c[h], 19)).a;
+ }
+ s = 0;
+ t = new Rkb();
+ for (i = 0; i < J.length; i++) {
+ j[i] == 0 && Ekb(t, J[i]);
+ }
+ q = KC(WD, oje, 25, J.length, 15, 1);
+ while (t.c.length != 0) {
+ H = BD(Kkb(t, 0), 257);
+ q[H.b] = s++;
+ while (!w[H.b].dc()) {
+ K = BD(w[H.b].$c(0), 257);
+ --j[K.b];
+ j[K.b] == 0 && (t.c[t.c.length] = K, true);
+ }
+ }
+ a.a = KC(sY, Iqe, 257, J.length, 0, 1);
+ for (f = 0; f < J.length; f++) {
+ p = J[f];
+ G = q[f];
+ a.a[G] = p;
+ p.b = G;
+ for (v = new olb(p.e); v.a < v.c.c.length; ) {
+ u = BD(mlb(v), 10);
+ u.p = G;
+ }
+ }
+ return a.a;
+ }
+ function nde(a) {
+ var b, c, d;
+ if (a.d >= a.j) {
+ a.a = -1;
+ a.c = 1;
+ return;
+ }
+ b = bfb(a.i, a.d++);
+ a.a = b;
+ if (a.b == 1) {
+ switch (b) {
+ case 92:
+ d = 10;
+ if (a.d >= a.j)
+ throw vbb(new mde(tvd((h0d(), uue))));
+ a.a = bfb(a.i, a.d++);
+ break;
+ case 45:
+ if ((a.e & 512) == 512 && a.d < a.j && bfb(a.i, a.d) == 91) {
+ ++a.d;
+ d = 24;
+ } else
+ d = 0;
+ break;
+ case 91:
+ if ((a.e & 512) != 512 && a.d < a.j && bfb(a.i, a.d) == 58) {
+ ++a.d;
+ d = 20;
+ break;
+ }
+ default:
+ if ((b & 64512) == Uje && a.d < a.j) {
+ c = bfb(a.i, a.d);
+ if ((c & 64512) == 56320) {
+ a.a = Tje + (b - Uje << 10) + c - 56320;
+ ++a.d;
+ }
+ }
+ d = 0;
+ }
+ a.c = d;
+ return;
+ }
+ switch (b) {
+ case 124:
+ d = 2;
+ break;
+ case 42:
+ d = 3;
+ break;
+ case 43:
+ d = 4;
+ break;
+ case 63:
+ d = 5;
+ break;
+ case 41:
+ d = 7;
+ break;
+ case 46:
+ d = 8;
+ break;
+ case 91:
+ d = 9;
+ break;
+ case 94:
+ d = 11;
+ break;
+ case 36:
+ d = 12;
+ break;
+ case 40:
+ d = 6;
+ if (a.d >= a.j)
+ break;
+ if (bfb(a.i, a.d) != 63)
+ break;
+ if (++a.d >= a.j)
+ throw vbb(new mde(tvd((h0d(), vue))));
+ b = bfb(a.i, a.d++);
+ switch (b) {
+ case 58:
+ d = 13;
+ break;
+ case 61:
+ d = 14;
+ break;
+ case 33:
+ d = 15;
+ break;
+ case 91:
+ d = 19;
+ break;
+ case 62:
+ d = 18;
+ break;
+ case 60:
+ if (a.d >= a.j)
+ throw vbb(new mde(tvd((h0d(), vue))));
+ b = bfb(a.i, a.d++);
+ if (b == 61) {
+ d = 16;
+ } else if (b == 33) {
+ d = 17;
+ } else
+ throw vbb(new mde(tvd((h0d(), wue))));
+ break;
+ case 35:
+ while (a.d < a.j) {
+ b = bfb(a.i, a.d++);
+ if (b == 41)
+ break;
+ }
+ if (b != 41)
+ throw vbb(new mde(tvd((h0d(), xue))));
+ d = 21;
+ break;
+ default:
+ if (b == 45 || 97 <= b && b <= 122 || 65 <= b && b <= 90) {
+ --a.d;
+ d = 22;
+ break;
+ } else if (b == 40) {
+ d = 23;
+ break;
+ }
+ throw vbb(new mde(tvd((h0d(), vue))));
+ }
+ break;
+ case 92:
+ d = 10;
+ if (a.d >= a.j)
+ throw vbb(new mde(tvd((h0d(), uue))));
+ a.a = bfb(a.i, a.d++);
+ break;
+ default:
+ d = 0;
+ }
+ a.c = d;
+ }
+ function P5b(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G;
+ A = BD(vNb(a, (Nyc(), Vxc)), 98);
+ if (!(A != (dcd(), bcd) && A != ccd)) {
+ return;
+ }
+ o2 = a.b;
+ n = o2.c.length;
+ k = new Skb((Xj(n + 2, Mie), Oy(wbb(wbb(5, n + 2), (n + 2) / 10 | 0))));
+ p = new Skb((Xj(n + 2, Mie), Oy(wbb(wbb(5, n + 2), (n + 2) / 10 | 0))));
+ Ekb(k, new Lqb());
+ Ekb(k, new Lqb());
+ Ekb(p, new Rkb());
+ Ekb(p, new Rkb());
+ w = new Rkb();
+ for (b = 0; b < n; b++) {
+ c = (tCb(b, o2.c.length), BD(o2.c[b], 29));
+ B = (tCb(b, k.c.length), BD(k.c[b], 83));
+ q = new Lqb();
+ k.c[k.c.length] = q;
+ D = (tCb(b, p.c.length), BD(p.c[b], 15));
+ s = new Rkb();
+ p.c[p.c.length] = s;
+ for (e = new olb(c.a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 10);
+ if (L5b(d)) {
+ w.c[w.c.length] = d;
+ continue;
+ }
+ for (j = new Sr(ur(R_b(d).a.Kc(), new Sq())); Qr(j); ) {
+ h = BD(Rr(j), 17);
+ F = h.c.i;
+ if (!L5b(F)) {
+ continue;
+ }
+ C = BD(B.xc(vNb(F, (wtc(), $sc))), 10);
+ if (!C) {
+ C = K5b(a, F);
+ B.zc(vNb(F, $sc), C);
+ D.Fc(C);
+ }
+ QZb(h, BD(Ikb(C.j, 1), 11));
+ }
+ for (i = new Sr(ur(U_b(d).a.Kc(), new Sq())); Qr(i); ) {
+ h = BD(Rr(i), 17);
+ G = h.d.i;
+ if (!L5b(G)) {
+ continue;
+ }
+ r = BD(Ohb(q, vNb(G, (wtc(), $sc))), 10);
+ if (!r) {
+ r = K5b(a, G);
+ Rhb(q, vNb(G, $sc), r);
+ s.c[s.c.length] = r;
+ }
+ RZb(h, BD(Ikb(r.j, 0), 11));
+ }
+ }
+ }
+ for (l = 0; l < p.c.length; l++) {
+ t = (tCb(l, p.c.length), BD(p.c[l], 15));
+ if (t.dc()) {
+ continue;
+ }
+ m = null;
+ if (l == 0) {
+ m = new H1b(a);
+ wCb(0, o2.c.length);
+ aCb(o2.c, 0, m);
+ } else if (l == k.c.length - 1) {
+ m = new H1b(a);
+ o2.c[o2.c.length] = m;
+ } else {
+ m = (tCb(l - 1, o2.c.length), BD(o2.c[l - 1], 29));
+ }
+ for (g = t.Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 10);
+ $_b(f, m);
+ }
+ }
+ for (v = new olb(w); v.a < v.c.c.length; ) {
+ u = BD(mlb(v), 10);
+ $_b(u, null);
+ }
+ yNb(a, (wtc(), Fsc), w);
+ }
+ function BCc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v;
+ Odd(c, "Coffman-Graham Layering", 1);
+ if (b.a.c.length == 0) {
+ Qdd(c);
+ return;
+ }
+ v = BD(vNb(b, (Nyc(), kxc)), 19).a;
+ i = 0;
+ g = 0;
+ for (m = new olb(b.a); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 10);
+ l.p = i++;
+ for (f = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ e.p = g++;
+ }
+ }
+ a.d = KC(sbb, dle, 25, i, 16, 1);
+ a.a = KC(sbb, dle, 25, g, 16, 1);
+ a.b = KC(WD, oje, 25, i, 15, 1);
+ a.e = KC(WD, oje, 25, i, 15, 1);
+ a.f = KC(WD, oje, 25, i, 15, 1);
+ Nc(a.c);
+ CCc(a, b);
+ o2 = new gub(new GCc(a));
+ for (u = new olb(b.a); u.a < u.c.c.length; ) {
+ s = BD(mlb(u), 10);
+ for (f = new Sr(ur(R_b(s).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ a.a[e.p] || ++a.b[s.p];
+ }
+ a.b[s.p] == 0 && (zCb(cub(o2, s)), true);
+ }
+ h = 0;
+ while (o2.b.c.length != 0) {
+ s = BD(dub(o2), 10);
+ a.f[s.p] = h++;
+ for (f = new Sr(ur(U_b(s).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ if (a.a[e.p]) {
+ continue;
+ }
+ q = e.d.i;
+ --a.b[q.p];
+ Rc(a.c, q, meb(a.f[s.p]));
+ a.b[q.p] == 0 && (zCb(cub(o2, q)), true);
+ }
+ }
+ n = new gub(new KCc(a));
+ for (t = new olb(b.a); t.a < t.c.c.length; ) {
+ s = BD(mlb(t), 10);
+ for (f = new Sr(ur(U_b(s).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ a.a[e.p] || ++a.e[s.p];
+ }
+ a.e[s.p] == 0 && (zCb(cub(n, s)), true);
+ }
+ k = new Rkb();
+ d = yCc(b, k);
+ while (n.b.c.length != 0) {
+ r = BD(dub(n), 10);
+ (d.a.c.length >= v || !wCc(r, d)) && (d = yCc(b, k));
+ $_b(r, d);
+ for (f = new Sr(ur(R_b(r).a.Kc(), new Sq())); Qr(f); ) {
+ e = BD(Rr(f), 17);
+ if (a.a[e.p]) {
+ continue;
+ }
+ p = e.c.i;
+ --a.e[p.p];
+ a.e[p.p] == 0 && (zCb(cub(n, p)), true);
+ }
+ }
+ for (j = k.c.length - 1; j >= 0; --j) {
+ Ekb(b.b, (tCb(j, k.c.length), BD(k.c[j], 29)));
+ }
+ b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ Qdd(c);
+ }
+ function gee(a) {
+ var b, c, d, e, f, g, h, i, j;
+ a.b = 1;
+ nde(a);
+ b = null;
+ if (a.c == 0 && a.a == 94) {
+ nde(a);
+ b = (wfe(), wfe(), new $fe(4));
+ Ufe(b, 0, lxe);
+ h = new $fe(4);
+ } else {
+ h = (wfe(), wfe(), new $fe(4));
+ }
+ e = true;
+ while ((j = a.c) != 1) {
+ if (j == 0 && a.a == 93 && !e) {
+ if (b) {
+ Zfe(b, h);
+ h = b;
+ }
+ break;
+ }
+ c = a.a;
+ d = false;
+ if (j == 10) {
+ switch (c) {
+ case 100:
+ case 68:
+ case 119:
+ case 87:
+ case 115:
+ case 83:
+ Xfe(h, fee(c));
+ d = true;
+ break;
+ case 105:
+ case 73:
+ case 99:
+ case 67:
+ c = (Xfe(h, fee(c)), -1);
+ c < 0 && (d = true);
+ break;
+ case 112:
+ case 80:
+ i = tde(a, c);
+ if (!i)
+ throw vbb(new mde(tvd((h0d(), Iue))));
+ Xfe(h, i);
+ d = true;
+ break;
+ default:
+ c = eee(a);
+ }
+ } else if (j == 24 && !e) {
+ if (b) {
+ Zfe(b, h);
+ h = b;
+ }
+ f = gee(a);
+ Zfe(h, f);
+ if (a.c != 0 || a.a != 93)
+ throw vbb(new mde(tvd((h0d(), Mue))));
+ break;
+ }
+ nde(a);
+ if (!d) {
+ if (j == 0) {
+ if (c == 91)
+ throw vbb(new mde(tvd((h0d(), Nue))));
+ if (c == 93)
+ throw vbb(new mde(tvd((h0d(), Oue))));
+ if (c == 45 && !e && a.a != 93)
+ throw vbb(new mde(tvd((h0d(), Pue))));
+ }
+ if (a.c != 0 || a.a != 45 || c == 45 && e) {
+ Ufe(h, c, c);
+ } else {
+ nde(a);
+ if ((j = a.c) == 1)
+ throw vbb(new mde(tvd((h0d(), Kue))));
+ if (j == 0 && a.a == 93) {
+ Ufe(h, c, c);
+ Ufe(h, 45, 45);
+ } else if (j == 0 && a.a == 93 || j == 24) {
+ throw vbb(new mde(tvd((h0d(), Pue))));
+ } else {
+ g = a.a;
+ if (j == 0) {
+ if (g == 91)
+ throw vbb(new mde(tvd((h0d(), Nue))));
+ if (g == 93)
+ throw vbb(new mde(tvd((h0d(), Oue))));
+ if (g == 45)
+ throw vbb(new mde(tvd((h0d(), Pue))));
+ } else
+ j == 10 && (g = eee(a));
+ nde(a);
+ if (c > g)
+ throw vbb(new mde(tvd((h0d(), Sue))));
+ Ufe(h, c, g);
+ }
+ }
+ }
+ e = false;
+ }
+ if (a.c == 1)
+ throw vbb(new mde(tvd((h0d(), Kue))));
+ Yfe(h);
+ Vfe(h);
+ a.b = 0;
+ nde(a);
+ return h;
+ }
+ function xZd(a) {
+ Bnd(a.c, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#decimal"]));
+ Bnd(a.d, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#integer"]));
+ Bnd(a.e, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#boolean"]));
+ Bnd(a.f, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EBoolean", fue, "EBoolean:Object"]));
+ Bnd(a.i, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#byte"]));
+ Bnd(a.g, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#hexBinary"]));
+ Bnd(a.j, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EByte", fue, "EByte:Object"]));
+ Bnd(a.n, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EChar", fue, "EChar:Object"]));
+ Bnd(a.t, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#double"]));
+ Bnd(a.u, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EDouble", fue, "EDouble:Object"]));
+ Bnd(a.F, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#float"]));
+ Bnd(a.G, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EFloat", fue, "EFloat:Object"]));
+ Bnd(a.I, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#int"]));
+ Bnd(a.J, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EInt", fue, "EInt:Object"]));
+ Bnd(a.N, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#long"]));
+ Bnd(a.O, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "ELong", fue, "ELong:Object"]));
+ Bnd(a.Z, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#short"]));
+ Bnd(a.$, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EShort", fue, "EShort:Object"]));
+ Bnd(a._, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#string"]));
+ }
+ function fRc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G;
+ if (a.c.length == 1) {
+ return tCb(0, a.c.length), BD(a.c[0], 135);
+ } else if (a.c.length <= 0) {
+ return new SRc();
+ }
+ for (i = new olb(a); i.a < i.c.c.length; ) {
+ g = BD(mlb(i), 135);
+ s = 0;
+ o2 = Ohe;
+ p = Ohe;
+ m = Rie;
+ n = Rie;
+ for (r = Jsb(g.b, 0); r.b != r.d.c; ) {
+ q = BD(Xsb(r), 86);
+ s += BD(vNb(q, (JTc(), ETc)), 19).a;
+ o2 = $wnd.Math.min(o2, q.e.a);
+ p = $wnd.Math.min(p, q.e.b);
+ m = $wnd.Math.max(m, q.e.a + q.f.a);
+ n = $wnd.Math.max(n, q.e.b + q.f.b);
+ }
+ yNb(g, (JTc(), ETc), meb(s));
+ yNb(g, (mTc(), WSc), new f7c(o2, p));
+ yNb(g, VSc, new f7c(m, n));
+ }
+ mmb();
+ Okb(a, new jRc());
+ v = new SRc();
+ tNb(v, (tCb(0, a.c.length), BD(a.c[0], 94)));
+ l = 0;
+ D = 0;
+ for (j = new olb(a); j.a < j.c.c.length; ) {
+ g = BD(mlb(j), 135);
+ w = c7c(R6c(BD(vNb(g, (mTc(), VSc)), 8)), BD(vNb(g, WSc), 8));
+ l = $wnd.Math.max(l, w.a);
+ D += w.a * w.b;
+ }
+ l = $wnd.Math.max(l, $wnd.Math.sqrt(D) * Edb(ED(vNb(v, (JTc(), uTc)))));
+ A = Edb(ED(vNb(v, HTc)));
+ F = 0;
+ G = 0;
+ k = 0;
+ b = A;
+ for (h = new olb(a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 135);
+ w = c7c(R6c(BD(vNb(g, (mTc(), VSc)), 8)), BD(vNb(g, WSc), 8));
+ if (F + w.a > l) {
+ F = 0;
+ G += k + A;
+ k = 0;
+ }
+ eRc(v, g, F, G);
+ b = $wnd.Math.max(b, F + w.a);
+ k = $wnd.Math.max(k, w.b);
+ F += w.a + A;
+ }
+ u = new Lqb();
+ c = new Lqb();
+ for (C = new olb(a); C.a < C.c.c.length; ) {
+ B = BD(mlb(C), 135);
+ d = Ccb(DD(vNb(B, (Y9c(), y8c))));
+ t = !B.q ? kmb : B.q;
+ for (f = t.vc().Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 42);
+ if (Mhb(u, e.cd())) {
+ if (PD(BD(e.cd(), 146).wg()) !== PD(e.dd())) {
+ if (d && Mhb(c, e.cd())) {
+ Zfb();
+ "Found different values for property " + BD(e.cd(), 146).tg() + " in components.";
+ } else {
+ Rhb(u, BD(e.cd(), 146), e.dd());
+ yNb(v, BD(e.cd(), 146), e.dd());
+ d && Rhb(c, BD(e.cd(), 146), e.dd());
+ }
+ }
+ } else {
+ Rhb(u, BD(e.cd(), 146), e.dd());
+ yNb(v, BD(e.cd(), 146), e.dd());
+ }
+ }
+ }
+ return v;
+ }
+ function MYb() {
+ MYb = ccb;
+ xXb();
+ LYb = new Hp();
+ Rc(LYb, (Ucd(), Gcd), Fcd);
+ Rc(LYb, Qcd, Fcd);
+ Rc(LYb, Hcd, Fcd);
+ Rc(LYb, Ncd, Fcd);
+ Rc(LYb, Mcd, Fcd);
+ Rc(LYb, Kcd, Fcd);
+ Rc(LYb, Ncd, Gcd);
+ Rc(LYb, Fcd, Bcd);
+ Rc(LYb, Gcd, Bcd);
+ Rc(LYb, Qcd, Bcd);
+ Rc(LYb, Hcd, Bcd);
+ Rc(LYb, Lcd, Bcd);
+ Rc(LYb, Ncd, Bcd);
+ Rc(LYb, Mcd, Bcd);
+ Rc(LYb, Kcd, Bcd);
+ Rc(LYb, Ecd, Bcd);
+ Rc(LYb, Fcd, Ocd);
+ Rc(LYb, Gcd, Ocd);
+ Rc(LYb, Bcd, Ocd);
+ Rc(LYb, Qcd, Ocd);
+ Rc(LYb, Hcd, Ocd);
+ Rc(LYb, Lcd, Ocd);
+ Rc(LYb, Ncd, Ocd);
+ Rc(LYb, Ecd, Ocd);
+ Rc(LYb, Pcd, Ocd);
+ Rc(LYb, Mcd, Ocd);
+ Rc(LYb, Icd, Ocd);
+ Rc(LYb, Kcd, Ocd);
+ Rc(LYb, Gcd, Qcd);
+ Rc(LYb, Hcd, Qcd);
+ Rc(LYb, Ncd, Qcd);
+ Rc(LYb, Kcd, Qcd);
+ Rc(LYb, Gcd, Hcd);
+ Rc(LYb, Qcd, Hcd);
+ Rc(LYb, Ncd, Hcd);
+ Rc(LYb, Hcd, Hcd);
+ Rc(LYb, Mcd, Hcd);
+ Rc(LYb, Fcd, Ccd);
+ Rc(LYb, Gcd, Ccd);
+ Rc(LYb, Bcd, Ccd);
+ Rc(LYb, Ocd, Ccd);
+ Rc(LYb, Qcd, Ccd);
+ Rc(LYb, Hcd, Ccd);
+ Rc(LYb, Lcd, Ccd);
+ Rc(LYb, Ncd, Ccd);
+ Rc(LYb, Pcd, Ccd);
+ Rc(LYb, Ecd, Ccd);
+ Rc(LYb, Kcd, Ccd);
+ Rc(LYb, Mcd, Ccd);
+ Rc(LYb, Jcd, Ccd);
+ Rc(LYb, Fcd, Pcd);
+ Rc(LYb, Gcd, Pcd);
+ Rc(LYb, Bcd, Pcd);
+ Rc(LYb, Qcd, Pcd);
+ Rc(LYb, Hcd, Pcd);
+ Rc(LYb, Lcd, Pcd);
+ Rc(LYb, Ncd, Pcd);
+ Rc(LYb, Ecd, Pcd);
+ Rc(LYb, Kcd, Pcd);
+ Rc(LYb, Icd, Pcd);
+ Rc(LYb, Jcd, Pcd);
+ Rc(LYb, Gcd, Ecd);
+ Rc(LYb, Qcd, Ecd);
+ Rc(LYb, Hcd, Ecd);
+ Rc(LYb, Ncd, Ecd);
+ Rc(LYb, Pcd, Ecd);
+ Rc(LYb, Kcd, Ecd);
+ Rc(LYb, Mcd, Ecd);
+ Rc(LYb, Fcd, Dcd);
+ Rc(LYb, Gcd, Dcd);
+ Rc(LYb, Bcd, Dcd);
+ Rc(LYb, Qcd, Dcd);
+ Rc(LYb, Hcd, Dcd);
+ Rc(LYb, Lcd, Dcd);
+ Rc(LYb, Ncd, Dcd);
+ Rc(LYb, Ecd, Dcd);
+ Rc(LYb, Kcd, Dcd);
+ Rc(LYb, Gcd, Mcd);
+ Rc(LYb, Bcd, Mcd);
+ Rc(LYb, Ocd, Mcd);
+ Rc(LYb, Hcd, Mcd);
+ Rc(LYb, Fcd, Icd);
+ Rc(LYb, Gcd, Icd);
+ Rc(LYb, Ocd, Icd);
+ Rc(LYb, Qcd, Icd);
+ Rc(LYb, Hcd, Icd);
+ Rc(LYb, Lcd, Icd);
+ Rc(LYb, Ncd, Icd);
+ Rc(LYb, Ncd, Jcd);
+ Rc(LYb, Hcd, Jcd);
+ Rc(LYb, Ecd, Fcd);
+ Rc(LYb, Ecd, Qcd);
+ Rc(LYb, Ecd, Bcd);
+ Rc(LYb, Lcd, Fcd);
+ Rc(LYb, Lcd, Gcd);
+ Rc(LYb, Lcd, Ocd);
+ }
+ function HVd(a, b) {
+ switch (a.e) {
+ case 0:
+ case 2:
+ case 4:
+ case 6:
+ case 42:
+ case 44:
+ case 46:
+ case 48:
+ case 8:
+ case 10:
+ case 12:
+ case 14:
+ case 16:
+ case 18:
+ case 20:
+ case 22:
+ case 24:
+ case 26:
+ case 28:
+ case 30:
+ case 32:
+ case 34:
+ case 36:
+ case 38:
+ return new U5d(a.b, a.a, b, a.c);
+ case 1:
+ return new BMd(a.a, b, bLd(b.Tg(), a.c));
+ case 43:
+ return new N4d(a.a, b, bLd(b.Tg(), a.c));
+ case 3:
+ return new xMd(a.a, b, bLd(b.Tg(), a.c));
+ case 45:
+ return new K4d(a.a, b, bLd(b.Tg(), a.c));
+ case 41:
+ return new dId(BD(wId(a.c), 26), a.a, b, bLd(b.Tg(), a.c));
+ case 50:
+ return new c6d(BD(wId(a.c), 26), a.a, b, bLd(b.Tg(), a.c));
+ case 5:
+ return new Q4d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 47:
+ return new U4d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 7:
+ return new cUd(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 49:
+ return new gUd(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 9:
+ return new I4d(a.a, b, bLd(b.Tg(), a.c));
+ case 11:
+ return new G4d(a.a, b, bLd(b.Tg(), a.c));
+ case 13:
+ return new C4d(a.a, b, bLd(b.Tg(), a.c));
+ case 15:
+ return new k2d(a.a, b, bLd(b.Tg(), a.c));
+ case 17:
+ return new c5d(a.a, b, bLd(b.Tg(), a.c));
+ case 19:
+ return new _4d(a.a, b, bLd(b.Tg(), a.c));
+ case 21:
+ return new X4d(a.a, b, bLd(b.Tg(), a.c));
+ case 23:
+ return new pMd(a.a, b, bLd(b.Tg(), a.c));
+ case 25:
+ return new D5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 27:
+ return new y5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 29:
+ return new t5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 31:
+ return new n5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 33:
+ return new A5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 35:
+ return new v5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 37:
+ return new p5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 39:
+ return new i5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
+ case 40:
+ return new u3d(b, bLd(b.Tg(), a.c));
+ default:
+ throw vbb(new hz("Unknown feature style: " + a.e));
+ }
+ }
+ function BMc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w;
+ Odd(c, "Brandes & Koepf node placement", 1);
+ a.a = b;
+ a.c = KMc(b);
+ d = BD(vNb(b, (Nyc(), zxc)), 274);
+ n = Ccb(DD(vNb(b, Axc)));
+ a.d = d == (lrc(), irc) && !n || d == frc;
+ AMc(a, b);
+ v = null;
+ w = null;
+ r = null;
+ s = null;
+ q = (Xj(4, Jie), new Skb(4));
+ switch (BD(vNb(b, zxc), 274).g) {
+ case 3:
+ r = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), WLc));
+ q.c[q.c.length] = r;
+ break;
+ case 1:
+ s = new ULc(b, a.c.d, (eMc(), dMc), (YLc(), WLc));
+ q.c[q.c.length] = s;
+ break;
+ case 4:
+ v = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), XLc));
+ q.c[q.c.length] = v;
+ break;
+ case 2:
+ w = new ULc(b, a.c.d, (eMc(), dMc), (YLc(), XLc));
+ q.c[q.c.length] = w;
+ break;
+ default:
+ r = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), WLc));
+ s = new ULc(b, a.c.d, dMc, WLc);
+ v = new ULc(b, a.c.d, cMc, XLc);
+ w = new ULc(b, a.c.d, dMc, XLc);
+ q.c[q.c.length] = v;
+ q.c[q.c.length] = w;
+ q.c[q.c.length] = r;
+ q.c[q.c.length] = s;
+ }
+ e = new mMc(b, a.c);
+ for (h = new olb(q); h.a < h.c.c.length; ) {
+ f = BD(mlb(h), 180);
+ lMc(e, f, a.b);
+ kMc(f);
+ }
+ m = new rMc(b, a.c);
+ for (i = new olb(q); i.a < i.c.c.length; ) {
+ f = BD(mlb(i), 180);
+ oMc(m, f);
+ }
+ if (c.n) {
+ for (j = new olb(q); j.a < j.c.c.length; ) {
+ f = BD(mlb(j), 180);
+ Sdd(c, f + " size is " + SLc(f));
+ }
+ }
+ l = null;
+ if (a.d) {
+ k = yMc(a, q, a.c.d);
+ xMc(b, k, c) && (l = k);
+ }
+ if (!l) {
+ for (j = new olb(q); j.a < j.c.c.length; ) {
+ f = BD(mlb(j), 180);
+ xMc(b, f, c) && (!l || SLc(l) > SLc(f)) && (l = f);
+ }
+ }
+ !l && (l = (tCb(0, q.c.length), BD(q.c[0], 180)));
+ for (p = new olb(b.b); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 29);
+ for (u = new olb(o2.a); u.a < u.c.c.length; ) {
+ t = BD(mlb(u), 10);
+ t.n.b = Edb(l.p[t.p]) + Edb(l.d[t.p]);
+ }
+ }
+ if (c.n) {
+ Sdd(c, "Chosen node placement: " + l);
+ Sdd(c, "Blocks: " + DMc(l));
+ Sdd(c, "Classes: " + EMc(l, c));
+ Sdd(c, "Marked edges: " + a.b);
+ }
+ for (g = new olb(q); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 180);
+ f.g = null;
+ f.b = null;
+ f.a = null;
+ f.d = null;
+ f.j = null;
+ f.i = null;
+ f.p = null;
+ }
+ IMc(a.c);
+ a.b.a.$b();
+ Qdd(c);
+ }
+ function V1b(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F;
+ g = new Psb();
+ v = BD(vNb(c, (Nyc(), Lwc)), 103);
+ o2 = 0;
+ ye(g, (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a));
+ while (g.b != 0) {
+ j = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 33);
+ (PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && !Ccb(DD(hkd(j, xwc))) && jkd(j, (wtc(), Zsc), meb(o2++));
+ q = !Ccb(DD(hkd(j, Jxc)));
+ if (q) {
+ l = (!j.a && (j.a = new cUd(E2, j, 10, 11)), j.a).i != 0;
+ n = S1b(j);
+ m = PD(hkd(j, axc)) === PD((hbd(), ebd));
+ F = !ikd(j, (Y9c(), o8c)) || dfb(GD(hkd(j, o8c)), sne);
+ t = null;
+ if (F && m && (l || n)) {
+ t = P1b(j);
+ yNb(t, Lwc, v);
+ wNb(t, hyc) && Wyc(new ezc(Edb(ED(vNb(t, hyc)))), t);
+ if (BD(hkd(j, Fxc), 174).gc() != 0) {
+ k = t;
+ MAb(new YAb(null, (!j.c && (j.c = new cUd(F2, j, 9, 9)), new Kub(j.c, 16))), new k2b(k));
+ L1b(j, t);
+ }
+ }
+ w = c;
+ A = BD(Ohb(a.a, Xod(j)), 10);
+ !!A && (w = A.e);
+ s = $1b(a, j, w);
+ if (t) {
+ s.e = t;
+ t.e = s;
+ ye(g, (!j.a && (j.a = new cUd(E2, j, 10, 11)), j.a));
+ }
+ }
+ }
+ o2 = 0;
+ Gsb(g, b, g.c.b, g.c);
+ while (g.b != 0) {
+ f = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 33);
+ for (i = new Fyd((!f.b && (f.b = new cUd(B2, f, 12, 3)), f.b)); i.e != i.i.gc(); ) {
+ h = BD(Dyd(i), 79);
+ N1b(h);
+ (PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && jkd(h, (wtc(), Zsc), meb(o2++));
+ C = atd(BD(qud((!h.b && (h.b = new y5d(z2, h, 4, 7)), h.b), 0), 82));
+ D = atd(BD(qud((!h.c && (h.c = new y5d(z2, h, 5, 8)), h.c), 0), 82));
+ if (Ccb(DD(hkd(h, Jxc))) || Ccb(DD(hkd(C, Jxc))) || Ccb(DD(hkd(D, Jxc)))) {
+ continue;
+ }
+ p = Qld(h) && Ccb(DD(hkd(C, fxc))) && Ccb(DD(hkd(h, gxc)));
+ u = f;
+ p || ntd(D, C) ? u = C : ntd(C, D) && (u = D);
+ w = c;
+ A = BD(Ohb(a.a, u), 10);
+ !!A && (w = A.e);
+ r = X1b(a, h, u, w);
+ yNb(r, (wtc(), xsc), R1b(a, h, b, c));
+ }
+ m = PD(hkd(f, axc)) === PD((hbd(), ebd));
+ if (m) {
+ for (e = new Fyd((!f.a && (f.a = new cUd(E2, f, 10, 11)), f.a)); e.e != e.i.gc(); ) {
+ d = BD(Dyd(e), 33);
+ F = !ikd(d, (Y9c(), o8c)) || dfb(GD(hkd(d, o8c)), sne);
+ B = PD(hkd(d, axc)) === PD(ebd);
+ F && B && (Gsb(g, d, g.c.b, g.c), true);
+ }
+ }
+ }
+ }
+ function vA(a, b, c, d, e, f) {
+ var g, h, i, j, k, l, m, n, o2, p, q, r;
+ switch (b) {
+ case 71:
+ h = d.q.getFullYear() - nje >= -1900 ? 1 : 0;
+ c >= 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [pje, qje])[h]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["BC", "AD"])[h]);
+ break;
+ case 121:
+ kA(a, c, d);
+ break;
+ case 77:
+ jA(a, c, d);
+ break;
+ case 107:
+ i = e.q.getHours();
+ i == 0 ? EA(a, 24, c) : EA(a, i, c);
+ break;
+ case 83:
+ iA(a, c, e);
+ break;
+ case 69:
+ k = d.q.getDay();
+ c == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[k]) : c == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje])[k]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[k]);
+ break;
+ case 97:
+ e.q.getHours() >= 12 && e.q.getHours() < 24 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"])[1]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"])[0]);
+ break;
+ case 104:
+ l = e.q.getHours() % 12;
+ l == 0 ? EA(a, 12, c) : EA(a, l, c);
+ break;
+ case 75:
+ m = e.q.getHours() % 12;
+ EA(a, m, c);
+ break;
+ case 72:
+ n = e.q.getHours();
+ EA(a, n, c);
+ break;
+ case 99:
+ o2 = d.q.getDay();
+ c == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[o2]) : c == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje])[o2]) : c == 3 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[o2]) : EA(a, o2, 1);
+ break;
+ case 76:
+ p = d.q.getMonth();
+ c == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[p]) : c == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje])[p]) : c == 3 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[p]) : EA(a, p + 1, c);
+ break;
+ case 81:
+ q = d.q.getMonth() / 3 | 0;
+ c < 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Q1", "Q2", "Q3", "Q4"])[q]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"])[q]);
+ break;
+ case 100:
+ r = d.q.getDate();
+ EA(a, r, c);
+ break;
+ case 109:
+ j = e.q.getMinutes();
+ EA(a, j, c);
+ break;
+ case 115:
+ g = e.q.getSeconds();
+ EA(a, g, c);
+ break;
+ case 122:
+ c < 4 ? Qfb(a, f.c[0]) : Qfb(a, f.c[1]);
+ break;
+ case 118:
+ Qfb(a, f.b);
+ break;
+ case 90:
+ c < 3 ? Qfb(a, OA(f)) : c == 3 ? Qfb(a, NA(f)) : Qfb(a, QA(f.a));
+ break;
+ default:
+ return false;
+ }
+ return true;
+ }
+ function X1b(a, b, c, d) {
+ var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H;
+ N1b(b);
+ i = BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82);
+ k = BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82);
+ h = atd(i);
+ j = atd(k);
+ g = (!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a).i == 0 ? null : BD(qud((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a), 0), 202);
+ A = BD(Ohb(a.a, h), 10);
+ F = BD(Ohb(a.a, j), 10);
+ B = null;
+ G = null;
+ if (JD(i, 186)) {
+ w = BD(Ohb(a.a, i), 299);
+ if (JD(w, 11)) {
+ B = BD(w, 11);
+ } else if (JD(w, 10)) {
+ A = BD(w, 10);
+ B = BD(Ikb(A.j, 0), 11);
+ }
+ }
+ if (JD(k, 186)) {
+ D = BD(Ohb(a.a, k), 299);
+ if (JD(D, 11)) {
+ G = BD(D, 11);
+ } else if (JD(D, 10)) {
+ F = BD(D, 10);
+ G = BD(Ikb(F.j, 0), 11);
+ }
+ }
+ if (!A || !F) {
+ throw vbb(new z2c("The source or the target of edge " + b + " could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));
+ }
+ p = new UZb();
+ tNb(p, b);
+ yNb(p, (wtc(), $sc), b);
+ yNb(p, (Nyc(), jxc), null);
+ n = BD(vNb(d, Ksc), 21);
+ A == F && n.Fc((Orc(), Nrc));
+ if (!B) {
+ v = (KAc(), IAc);
+ C = null;
+ if (!!g && fcd(BD(vNb(A, Vxc), 98))) {
+ C = new f7c(g.j, g.k);
+ Bfd(C, Mld(b));
+ Cfd(C, c);
+ if (ntd(j, h)) {
+ v = HAc;
+ P6c(C, A.n);
+ }
+ }
+ B = $$b(A, C, v, d);
+ }
+ if (!G) {
+ v = (KAc(), HAc);
+ H = null;
+ if (!!g && fcd(BD(vNb(F, Vxc), 98))) {
+ H = new f7c(g.b, g.c);
+ Bfd(H, Mld(b));
+ Cfd(H, c);
+ }
+ G = $$b(F, H, v, Q_b(F));
+ }
+ QZb(p, B);
+ RZb(p, G);
+ (B.e.c.length > 1 || B.g.c.length > 1 || G.e.c.length > 1 || G.g.c.length > 1) && n.Fc((Orc(), Irc));
+ for (m = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); m.e != m.i.gc(); ) {
+ l = BD(Dyd(m), 137);
+ if (!Ccb(DD(hkd(l, Jxc))) && !!l.a) {
+ q = Z1b(l);
+ Ekb(p.b, q);
+ switch (BD(vNb(q, Qwc), 272).g) {
+ case 1:
+ case 2:
+ n.Fc((Orc(), Grc));
+ break;
+ case 0:
+ n.Fc((Orc(), Erc));
+ yNb(q, Qwc, (qad(), nad));
+ }
+ }
+ }
+ f = BD(vNb(d, Iwc), 314);
+ r = BD(vNb(d, Exc), 315);
+ e = f == (Rpc(), Opc) || r == (Vzc(), Rzc);
+ if (!!g && (!g.a && (g.a = new xMd(y2, g, 5)), g.a).i != 0 && e) {
+ s = ofd(g);
+ o2 = new s7c();
+ for (u = Jsb(s, 0); u.b != u.d.c; ) {
+ t = BD(Xsb(u), 8);
+ Dsb(o2, new g7c(t));
+ }
+ yNb(p, _sc, o2);
+ }
+ return p;
+ }
+ function yZd(a) {
+ if (a.gb)
+ return;
+ a.gb = true;
+ a.b = Lnd(a, 0);
+ Knd(a.b, 18);
+ Qnd(a.b, 19);
+ a.a = Lnd(a, 1);
+ Knd(a.a, 1);
+ Qnd(a.a, 2);
+ Qnd(a.a, 3);
+ Qnd(a.a, 4);
+ Qnd(a.a, 5);
+ a.o = Lnd(a, 2);
+ Knd(a.o, 8);
+ Knd(a.o, 9);
+ Qnd(a.o, 10);
+ Qnd(a.o, 11);
+ Qnd(a.o, 12);
+ Qnd(a.o, 13);
+ Qnd(a.o, 14);
+ Qnd(a.o, 15);
+ Qnd(a.o, 16);
+ Qnd(a.o, 17);
+ Qnd(a.o, 18);
+ Qnd(a.o, 19);
+ Qnd(a.o, 20);
+ Qnd(a.o, 21);
+ Qnd(a.o, 22);
+ Qnd(a.o, 23);
+ Pnd(a.o);
+ Pnd(a.o);
+ Pnd(a.o);
+ Pnd(a.o);
+ Pnd(a.o);
+ Pnd(a.o);
+ Pnd(a.o);
+ Pnd(a.o);
+ Pnd(a.o);
+ Pnd(a.o);
+ a.p = Lnd(a, 3);
+ Knd(a.p, 2);
+ Knd(a.p, 3);
+ Knd(a.p, 4);
+ Knd(a.p, 5);
+ Qnd(a.p, 6);
+ Qnd(a.p, 7);
+ Pnd(a.p);
+ Pnd(a.p);
+ a.q = Lnd(a, 4);
+ Knd(a.q, 8);
+ a.v = Lnd(a, 5);
+ Qnd(a.v, 9);
+ Pnd(a.v);
+ Pnd(a.v);
+ Pnd(a.v);
+ a.w = Lnd(a, 6);
+ Knd(a.w, 2);
+ Knd(a.w, 3);
+ Knd(a.w, 4);
+ Qnd(a.w, 5);
+ a.B = Lnd(a, 7);
+ Qnd(a.B, 1);
+ Pnd(a.B);
+ Pnd(a.B);
+ Pnd(a.B);
+ a.Q = Lnd(a, 8);
+ Qnd(a.Q, 0);
+ Pnd(a.Q);
+ a.R = Lnd(a, 9);
+ Knd(a.R, 1);
+ a.S = Lnd(a, 10);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ Pnd(a.S);
+ a.T = Lnd(a, 11);
+ Qnd(a.T, 10);
+ Qnd(a.T, 11);
+ Qnd(a.T, 12);
+ Qnd(a.T, 13);
+ Qnd(a.T, 14);
+ Pnd(a.T);
+ Pnd(a.T);
+ a.U = Lnd(a, 12);
+ Knd(a.U, 2);
+ Knd(a.U, 3);
+ Qnd(a.U, 4);
+ Qnd(a.U, 5);
+ Qnd(a.U, 6);
+ Qnd(a.U, 7);
+ Pnd(a.U);
+ a.V = Lnd(a, 13);
+ Qnd(a.V, 10);
+ a.W = Lnd(a, 14);
+ Knd(a.W, 18);
+ Knd(a.W, 19);
+ Knd(a.W, 20);
+ Qnd(a.W, 21);
+ Qnd(a.W, 22);
+ Qnd(a.W, 23);
+ a.bb = Lnd(a, 15);
+ Knd(a.bb, 10);
+ Knd(a.bb, 11);
+ Knd(a.bb, 12);
+ Knd(a.bb, 13);
+ Knd(a.bb, 14);
+ Knd(a.bb, 15);
+ Knd(a.bb, 16);
+ Qnd(a.bb, 17);
+ Pnd(a.bb);
+ Pnd(a.bb);
+ a.eb = Lnd(a, 16);
+ Knd(a.eb, 2);
+ Knd(a.eb, 3);
+ Knd(a.eb, 4);
+ Knd(a.eb, 5);
+ Knd(a.eb, 6);
+ Knd(a.eb, 7);
+ Qnd(a.eb, 8);
+ Qnd(a.eb, 9);
+ a.ab = Lnd(a, 17);
+ Knd(a.ab, 0);
+ Knd(a.ab, 1);
+ a.H = Lnd(a, 18);
+ Qnd(a.H, 0);
+ Qnd(a.H, 1);
+ Qnd(a.H, 2);
+ Qnd(a.H, 3);
+ Qnd(a.H, 4);
+ Qnd(a.H, 5);
+ Pnd(a.H);
+ a.db = Lnd(a, 19);
+ Qnd(a.db, 2);
+ a.c = Mnd(a, 20);
+ a.d = Mnd(a, 21);
+ a.e = Mnd(a, 22);
+ a.f = Mnd(a, 23);
+ a.i = Mnd(a, 24);
+ a.g = Mnd(a, 25);
+ a.j = Mnd(a, 26);
+ a.k = Mnd(a, 27);
+ a.n = Mnd(a, 28);
+ a.r = Mnd(a, 29);
+ a.s = Mnd(a, 30);
+ a.t = Mnd(a, 31);
+ a.u = Mnd(a, 32);
+ a.fb = Mnd(a, 33);
+ a.A = Mnd(a, 34);
+ a.C = Mnd(a, 35);
+ a.D = Mnd(a, 36);
+ a.F = Mnd(a, 37);
+ a.G = Mnd(a, 38);
+ a.I = Mnd(a, 39);
+ a.J = Mnd(a, 40);
+ a.L = Mnd(a, 41);
+ a.M = Mnd(a, 42);
+ a.N = Mnd(a, 43);
+ a.O = Mnd(a, 44);
+ a.P = Mnd(a, 45);
+ a.X = Mnd(a, 46);
+ a.Y = Mnd(a, 47);
+ a.Z = Mnd(a, 48);
+ a.$ = Mnd(a, 49);
+ a._ = Mnd(a, 50);
+ a.cb = Mnd(a, 51);
+ a.K = Mnd(a, 52);
+ }
+ function Y9c() {
+ Y9c = ccb;
+ var a, b;
+ o8c = new Lsd(sse);
+ F9c = new Lsd(tse);
+ q8c = (F7c(), z7c);
+ p8c = new Nsd($pe, q8c);
+ r8c = new Nsd(_le, null);
+ s8c = new Lsd(use);
+ x8c = (i8c(), qqb(h8c, OC(GC(r1, 1), Kie, 291, 0, [d8c])));
+ w8c = new Nsd(lqe, x8c);
+ y8c = new Nsd(Zpe, (Bcb(), false));
+ A8c = (ead(), cad);
+ z8c = new Nsd(cqe, A8c);
+ F8c = (Aad(), zad);
+ E8c = new Nsd(ype, F8c);
+ I8c = new Nsd(Jre, false);
+ K8c = (hbd(), fbd);
+ J8c = new Nsd(tpe, K8c);
+ g9c = new q0b(12);
+ f9c = new Nsd(ame, g9c);
+ O8c = new Nsd(Ame, false);
+ P8c = new Nsd(xqe, false);
+ e9c = new Nsd(Dme, false);
+ u9c = (dcd(), ccd);
+ t9c = new Nsd(Bme, u9c);
+ C9c = new Lsd(uqe);
+ D9c = new Lsd(vme);
+ E9c = new Lsd(yme);
+ H9c = new Lsd(zme);
+ R8c = new s7c();
+ Q8c = new Nsd(mqe, R8c);
+ v8c = new Nsd(pqe, false);
+ L8c = new Nsd(qqe, false);
+ T8c = new H_b();
+ S8c = new Nsd(vqe, T8c);
+ d9c = new Nsd(Xpe, false);
+ G9c = new Nsd(wse, 1);
+ new Nsd(xse, true);
+ meb(0);
+ new Nsd(yse, meb(100));
+ new Nsd(zse, false);
+ meb(0);
+ new Nsd(Ase, meb(4e3));
+ meb(0);
+ new Nsd(Bse, meb(400));
+ new Nsd(Cse, false);
+ new Nsd(Dse, false);
+ new Nsd(Ese, true);
+ new Nsd(Fse, false);
+ u8c = (Ded(), Ced);
+ t8c = new Nsd(rse, u8c);
+ I9c = new Nsd(Lpe, 10);
+ J9c = new Nsd(Mpe, 10);
+ K9c = new Nsd(Zle, 20);
+ L9c = new Nsd(Npe, 10);
+ M9c = new Nsd(xme, 2);
+ N9c = new Nsd(Ope, 10);
+ P9c = new Nsd(Ppe, 0);
+ Q9c = new Nsd(Spe, 5);
+ R9c = new Nsd(Qpe, 1);
+ S9c = new Nsd(Rpe, 1);
+ T9c = new Nsd(wme, 20);
+ U9c = new Nsd(Tpe, 10);
+ X9c = new Nsd(Upe, 10);
+ O9c = new Lsd(Vpe);
+ W9c = new I_b();
+ V9c = new Nsd(wqe, W9c);
+ j9c = new Lsd(tqe);
+ i9c = false;
+ h9c = new Nsd(sqe, i9c);
+ V8c = new q0b(5);
+ U8c = new Nsd(dqe, V8c);
+ X8c = (Hbd(), b = BD(gdb(B1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
+ W8c = new Nsd(Gme, X8c);
+ m9c = (Tbd(), Qbd);
+ l9c = new Nsd(gqe, m9c);
+ o9c = new Lsd(hqe);
+ p9c = new Lsd(iqe);
+ q9c = new Lsd(jqe);
+ n9c = new Lsd(kqe);
+ Z8c = (a = BD(gdb(I1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0));
+ Y8c = new Nsd(Fme, Z8c);
+ c9c = pqb((Idd(), Bdd));
+ b9c = new Nsd(Eme, c9c);
+ a9c = new f7c(0, 0);
+ _8c = new Nsd(Tme, a9c);
+ $8c = new Nsd(bqe, false);
+ D8c = (qad(), nad);
+ C8c = new Nsd(nqe, D8c);
+ B8c = new Nsd(Cme, false);
+ meb(1);
+ new Nsd(Hse, null);
+ r9c = new Lsd(rqe);
+ v9c = new Lsd(oqe);
+ B9c = (Ucd(), Scd);
+ A9c = new Nsd(Ype, B9c);
+ s9c = new Lsd(Wpe);
+ y9c = (rcd(), pqb(pcd));
+ x9c = new Nsd(Hme, y9c);
+ w9c = new Nsd(eqe, false);
+ z9c = new Nsd(fqe, true);
+ M8c = new Nsd(_pe, false);
+ N8c = new Nsd(aqe, false);
+ G8c = new Nsd($le, 1);
+ H8c = (Mad(), Kad);
+ new Nsd(Ise, H8c);
+ k9c = true;
+ }
+ function wtc() {
+ wtc = ccb;
+ var a, b;
+ $sc = new Lsd(Ime);
+ xsc = new Lsd("coordinateOrigin");
+ itc = new Lsd("processors");
+ wsc = new Msd("compoundNode", (Bcb(), false));
+ Nsc = new Msd("insideConnections", false);
+ _sc = new Lsd("originalBendpoints");
+ atc = new Lsd("originalDummyNodePosition");
+ btc = new Lsd("originalLabelEdge");
+ ktc = new Lsd("representedLabels");
+ Csc = new Lsd("endLabels");
+ Dsc = new Lsd("endLabel.origin");
+ Ssc = new Msd("labelSide", (rbd(), qbd));
+ Ysc = new Msd("maxEdgeThickness", 0);
+ ltc = new Msd("reversed", false);
+ jtc = new Lsd(Jme);
+ Vsc = new Msd("longEdgeSource", null);
+ Wsc = new Msd("longEdgeTarget", null);
+ Usc = new Msd("longEdgeHasLabelDummies", false);
+ Tsc = new Msd("longEdgeBeforeLabelDummy", false);
+ Bsc = new Msd("edgeConstraint", (Gqc(), Eqc));
+ Psc = new Lsd("inLayerLayoutUnit");
+ Osc = new Msd("inLayerConstraint", (esc(), csc));
+ Qsc = new Msd("inLayerSuccessorConstraint", new Rkb());
+ Rsc = new Msd("inLayerSuccessorConstraintBetweenNonDummies", false);
+ gtc = new Lsd("portDummy");
+ ysc = new Msd("crossingHint", meb(0));
+ Ksc = new Msd("graphProperties", (b = BD(gdb(PW), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)));
+ Hsc = new Msd("externalPortSide", (Ucd(), Scd));
+ Isc = new Msd("externalPortSize", new d7c());
+ Fsc = new Lsd("externalPortReplacedDummies");
+ Gsc = new Lsd("externalPortReplacedDummy");
+ Esc = new Msd("externalPortConnections", (a = BD(gdb(F1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0)));
+ htc = new Msd(tle, 0);
+ ssc = new Lsd("barycenterAssociates");
+ vtc = new Lsd("TopSideComments");
+ tsc = new Lsd("BottomSideComments");
+ vsc = new Lsd("CommentConnectionPort");
+ Msc = new Msd("inputCollect", false);
+ etc = new Msd("outputCollect", false);
+ Asc = new Msd("cyclic", false);
+ zsc = new Lsd("crossHierarchyMap");
+ utc = new Lsd("targetOffset");
+ new Msd("splineLabelSize", new d7c());
+ otc = new Lsd("spacings");
+ ftc = new Msd("partitionConstraint", false);
+ usc = new Lsd("breakingPoint.info");
+ stc = new Lsd("splines.survivingEdge");
+ rtc = new Lsd("splines.route.start");
+ ptc = new Lsd("splines.edgeChain");
+ dtc = new Lsd("originalPortConstraints");
+ ntc = new Lsd("selfLoopHolder");
+ qtc = new Lsd("splines.nsPortY");
+ Zsc = new Lsd("modelOrder");
+ Xsc = new Lsd("longEdgeTargetNode");
+ Jsc = new Msd(Xne, false);
+ mtc = new Msd(Xne, false);
+ Lsc = new Lsd("layerConstraints.hiddenNodes");
+ ctc = new Lsd("layerConstraints.opposidePort");
+ ttc = new Lsd("targetNode.modelOrder");
+ }
+ function jwc() {
+ jwc = ccb;
+ puc = (xqc(), vqc);
+ ouc = new Nsd(Yne, puc);
+ Guc = new Nsd(Zne, (Bcb(), false));
+ Muc = (msc(), ksc);
+ Luc = new Nsd($ne, Muc);
+ cvc = new Nsd(_ne, false);
+ dvc = new Nsd(aoe, true);
+ Itc = new Nsd(boe, false);
+ xvc = (BAc(), zAc);
+ wvc = new Nsd(coe, xvc);
+ meb(1);
+ Fvc = new Nsd(doe, meb(7));
+ Gvc = new Nsd(eoe, false);
+ Huc = new Nsd(foe, false);
+ nuc = (mqc(), iqc);
+ muc = new Nsd(goe, nuc);
+ bvc = (lzc(), jzc);
+ avc = new Nsd(hoe, bvc);
+ Tuc = (Ctc(), Btc);
+ Suc = new Nsd(ioe, Tuc);
+ meb(-1);
+ Ruc = new Nsd(joe, meb(-1));
+ meb(-1);
+ Uuc = new Nsd(koe, meb(-1));
+ meb(-1);
+ Vuc = new Nsd(loe, meb(4));
+ meb(-1);
+ Xuc = new Nsd(moe, meb(2));
+ _uc = (kAc(), iAc);
+ $uc = new Nsd(noe, _uc);
+ meb(0);
+ Zuc = new Nsd(ooe, meb(0));
+ Puc = new Nsd(poe, meb(Ohe));
+ luc = (Rpc(), Ppc);
+ kuc = new Nsd(qoe, luc);
+ Xtc = new Nsd(roe, false);
+ euc = new Nsd(soe, 0.1);
+ iuc = new Nsd(toe, false);
+ meb(-1);
+ guc = new Nsd(uoe, meb(-1));
+ meb(-1);
+ huc = new Nsd(voe, meb(-1));
+ meb(0);
+ Ytc = new Nsd(woe, meb(40));
+ cuc = (Xrc(), Wrc);
+ buc = new Nsd(xoe, cuc);
+ $tc = Urc;
+ Ztc = new Nsd(yoe, $tc);
+ vvc = (Vzc(), Qzc);
+ uvc = new Nsd(zoe, vvc);
+ kvc = new Lsd(Aoe);
+ fvc = (_qc(), Zqc);
+ evc = new Nsd(Boe, fvc);
+ ivc = (lrc(), irc);
+ hvc = new Nsd(Coe, ivc);
+ nvc = new Nsd(Doe, 0.3);
+ pvc = new Lsd(Eoe);
+ rvc = (Izc(), Gzc);
+ qvc = new Nsd(Foe, rvc);
+ xuc = (TAc(), RAc);
+ wuc = new Nsd(Goe, xuc);
+ zuc = (_Ac(), $Ac);
+ yuc = new Nsd(Hoe, zuc);
+ Buc = (tBc(), sBc);
+ Auc = new Nsd(Ioe, Buc);
+ Duc = new Nsd(Joe, 0.2);
+ uuc = new Nsd(Koe, 2);
+ Bvc = new Nsd(Loe, null);
+ Dvc = new Nsd(Moe, 10);
+ Cvc = new Nsd(Noe, 10);
+ Evc = new Nsd(Ooe, 20);
+ meb(0);
+ yvc = new Nsd(Poe, meb(0));
+ meb(0);
+ zvc = new Nsd(Qoe, meb(0));
+ meb(0);
+ Avc = new Nsd(Roe, meb(0));
+ Jtc = new Nsd(Soe, false);
+ Ntc = (yrc(), wrc);
+ Mtc = new Nsd(Toe, Ntc);
+ Ltc = (Ipc(), Hpc);
+ Ktc = new Nsd(Uoe, Ltc);
+ Juc = new Nsd(Voe, false);
+ meb(0);
+ Iuc = new Nsd(Woe, meb(16));
+ meb(0);
+ Kuc = new Nsd(Xoe, meb(5));
+ bwc = (LBc(), JBc);
+ awc = new Nsd(Yoe, bwc);
+ Hvc = new Nsd(Zoe, 10);
+ Kvc = new Nsd($oe, 1);
+ Tvc = (bqc(), aqc);
+ Svc = new Nsd(_oe, Tvc);
+ Nvc = new Lsd(ape);
+ Qvc = meb(1);
+ meb(0);
+ Pvc = new Nsd(bpe, Qvc);
+ gwc = (CBc(), zBc);
+ fwc = new Nsd(cpe, gwc);
+ cwc = new Lsd(dpe);
+ Yvc = new Nsd(epe, true);
+ Wvc = new Nsd(fpe, 2);
+ $vc = new Nsd(gpe, true);
+ tuc = (Sqc(), Qqc);
+ suc = new Nsd(hpe, tuc);
+ ruc = (Apc(), wpc);
+ quc = new Nsd(ipe, ruc);
+ Wtc = (tAc(), rAc);
+ Vtc = new Nsd(jpe, Wtc);
+ Utc = new Nsd(kpe, false);
+ Ptc = (RXb(), QXb);
+ Otc = new Nsd(lpe, Ptc);
+ Ttc = (xzc(), uzc);
+ Stc = new Nsd(mpe, Ttc);
+ Qtc = new Nsd(npe, 0);
+ Rtc = new Nsd(ope, 0);
+ Ouc = kqc;
+ Nuc = Opc;
+ Wuc = izc;
+ Yuc = izc;
+ Quc = fzc;
+ fuc = (hbd(), ebd);
+ juc = Ppc;
+ duc = Ppc;
+ _tc = Ppc;
+ auc = ebd;
+ lvc = Tzc;
+ mvc = Qzc;
+ gvc = Qzc;
+ jvc = Qzc;
+ ovc = Szc;
+ tvc = Tzc;
+ svc = Tzc;
+ Cuc = (Aad(), yad);
+ Euc = yad;
+ Fuc = sBc;
+ vuc = xad;
+ Ivc = KBc;
+ Jvc = IBc;
+ Lvc = KBc;
+ Mvc = IBc;
+ Uvc = KBc;
+ Vvc = IBc;
+ Ovc = _pc;
+ Rvc = aqc;
+ hwc = KBc;
+ iwc = IBc;
+ dwc = KBc;
+ ewc = IBc;
+ Zvc = IBc;
+ Xvc = IBc;
+ _vc = IBc;
+ }
+ function S8b() {
+ S8b = ccb;
+ Y7b = new T8b("DIRECTION_PREPROCESSOR", 0);
+ V7b = new T8b("COMMENT_PREPROCESSOR", 1);
+ Z7b = new T8b("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER", 2);
+ n8b = new T8b("INTERACTIVE_EXTERNAL_PORT_POSITIONER", 3);
+ G8b = new T8b("PARTITION_PREPROCESSOR", 4);
+ r8b = new T8b("LABEL_DUMMY_INSERTER", 5);
+ M8b = new T8b("SELF_LOOP_PREPROCESSOR", 6);
+ w8b = new T8b("LAYER_CONSTRAINT_PREPROCESSOR", 7);
+ E8b = new T8b("PARTITION_MIDPROCESSOR", 8);
+ i8b = new T8b("HIGH_DEGREE_NODE_LAYER_PROCESSOR", 9);
+ A8b = new T8b("NODE_PROMOTION", 10);
+ v8b = new T8b("LAYER_CONSTRAINT_POSTPROCESSOR", 11);
+ F8b = new T8b("PARTITION_POSTPROCESSOR", 12);
+ e8b = new T8b("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR", 13);
+ O8b = new T8b("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR", 14);
+ P7b = new T8b("BREAKING_POINT_INSERTER", 15);
+ z8b = new T8b("LONG_EDGE_SPLITTER", 16);
+ I8b = new T8b("PORT_SIDE_PROCESSOR", 17);
+ o8b = new T8b("INVERTED_PORT_PROCESSOR", 18);
+ H8b = new T8b("PORT_LIST_SORTER", 19);
+ Q8b = new T8b("SORT_BY_INPUT_ORDER_OF_MODEL", 20);
+ C8b = new T8b("NORTH_SOUTH_PORT_PREPROCESSOR", 21);
+ Q7b = new T8b("BREAKING_POINT_PROCESSOR", 22);
+ D8b = new T8b(Bne, 23);
+ R8b = new T8b(Cne, 24);
+ K8b = new T8b("SELF_LOOP_PORT_RESTORER", 25);
+ P8b = new T8b("SINGLE_EDGE_GRAPH_WRAPPER", 26);
+ p8b = new T8b("IN_LAYER_CONSTRAINT_PROCESSOR", 27);
+ b8b = new T8b("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR", 28);
+ q8b = new T8b("LABEL_AND_NODE_SIZE_PROCESSOR", 29);
+ m8b = new T8b("INNERMOST_NODE_MARGIN_CALCULATOR", 30);
+ N8b = new T8b("SELF_LOOP_ROUTER", 31);
+ T7b = new T8b("COMMENT_NODE_MARGIN_CALCULATOR", 32);
+ _7b = new T8b("END_LABEL_PREPROCESSOR", 33);
+ t8b = new T8b("LABEL_DUMMY_SWITCHER", 34);
+ S7b = new T8b("CENTER_LABEL_MANAGEMENT_PROCESSOR", 35);
+ u8b = new T8b("LABEL_SIDE_SELECTOR", 36);
+ k8b = new T8b("HYPEREDGE_DUMMY_MERGER", 37);
+ f8b = new T8b("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR", 38);
+ x8b = new T8b("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR", 39);
+ h8b = new T8b("HIERARCHICAL_PORT_POSITION_PROCESSOR", 40);
+ W7b = new T8b("CONSTRAINTS_POSTPROCESSOR", 41);
+ U7b = new T8b("COMMENT_POSTPROCESSOR", 42);
+ l8b = new T8b("HYPERNODE_PROCESSOR", 43);
+ g8b = new T8b("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER", 44);
+ y8b = new T8b("LONG_EDGE_JOINER", 45);
+ L8b = new T8b("SELF_LOOP_POSTPROCESSOR", 46);
+ R7b = new T8b("BREAKING_POINT_REMOVER", 47);
+ B8b = new T8b("NORTH_SOUTH_PORT_POSTPROCESSOR", 48);
+ j8b = new T8b("HORIZONTAL_COMPACTOR", 49);
+ s8b = new T8b("LABEL_DUMMY_REMOVER", 50);
+ c8b = new T8b("FINAL_SPLINE_BENDPOINTS_CALCULATOR", 51);
+ a8b = new T8b("END_LABEL_SORTER", 52);
+ J8b = new T8b("REVERSED_EDGE_RESTORER", 53);
+ $7b = new T8b("END_LABEL_POSTPROCESSOR", 54);
+ d8b = new T8b("HIERARCHICAL_NODE_RESIZER", 55);
+ X7b = new T8b("DIRECTION_POSTPROCESSOR", 56);
+ }
+ function KIc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, ab, bb, cb, db2, eb, fb, gb, hb, ib, jb, kb, lb;
+ cb = 0;
+ for (H = b, K = 0, N = H.length; K < N; ++K) {
+ F = H[K];
+ for (V = new olb(F.j); V.a < V.c.c.length; ) {
+ U = BD(mlb(V), 11);
+ X = 0;
+ for (h = new olb(U.g); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 17);
+ F.c != g.d.i.c && ++X;
+ }
+ X > 0 && (a.a[U.p] = cb++);
+ }
+ }
+ hb = 0;
+ for (I = c, L = 0, O = I.length; L < O; ++L) {
+ F = I[L];
+ P = 0;
+ for (V = new olb(F.j); V.a < V.c.c.length; ) {
+ U = BD(mlb(V), 11);
+ if (U.j == (Ucd(), Acd)) {
+ for (h = new olb(U.e); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 17);
+ if (F.c != g.c.i.c) {
+ ++P;
+ break;
+ }
+ }
+ } else {
+ break;
+ }
+ }
+ R = 0;
+ Y = new Bib(F.j, F.j.c.length);
+ while (Y.b > 0) {
+ U = (sCb(Y.b > 0), BD(Y.a.Xb(Y.c = --Y.b), 11));
+ X = 0;
+ for (h = new olb(U.e); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 17);
+ F.c != g.c.i.c && ++X;
+ }
+ if (X > 0) {
+ if (U.j == (Ucd(), Acd)) {
+ a.a[U.p] = hb;
+ ++hb;
+ } else {
+ a.a[U.p] = hb + P + R;
+ ++R;
+ }
+ }
+ }
+ hb += R;
+ }
+ W = new Lqb();
+ o2 = new zsb();
+ for (G = b, J = 0, M = G.length; J < M; ++J) {
+ F = G[J];
+ for (fb = new olb(F.j); fb.a < fb.c.c.length; ) {
+ eb = BD(mlb(fb), 11);
+ for (h = new olb(eb.g); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 17);
+ jb = g.d;
+ if (F.c != jb.i.c) {
+ db2 = BD(Wd(irb(W.f, eb)), 467);
+ ib = BD(Wd(irb(W.f, jb)), 467);
+ if (!db2 && !ib) {
+ n = new NIc();
+ o2.a.zc(n, o2);
+ Ekb(n.a, g);
+ Ekb(n.d, eb);
+ jrb(W.f, eb, n);
+ Ekb(n.d, jb);
+ jrb(W.f, jb, n);
+ } else if (!db2) {
+ Ekb(ib.a, g);
+ Ekb(ib.d, eb);
+ jrb(W.f, eb, ib);
+ } else if (!ib) {
+ Ekb(db2.a, g);
+ Ekb(db2.d, jb);
+ jrb(W.f, jb, db2);
+ } else if (db2 == ib) {
+ Ekb(db2.a, g);
+ } else {
+ Ekb(db2.a, g);
+ for (T = new olb(ib.d); T.a < T.c.c.length; ) {
+ S = BD(mlb(T), 11);
+ jrb(W.f, S, db2);
+ }
+ Gkb(db2.a, ib.a);
+ Gkb(db2.d, ib.d);
+ o2.a.Bc(ib) != null;
+ }
+ }
+ }
+ }
+ }
+ p = BD(Ee(o2, KC(oY, { 3: 1, 4: 1, 5: 1, 1946: 1 }, 467, o2.a.gc(), 0, 1)), 1946);
+ D = b[0].c;
+ bb = c[0].c;
+ for (k = p, l = 0, m = k.length; l < m; ++l) {
+ j = k[l];
+ j.e = cb;
+ j.f = hb;
+ for (V = new olb(j.d); V.a < V.c.c.length; ) {
+ U = BD(mlb(V), 11);
+ Z = a.a[U.p];
+ if (U.i.c == D) {
+ Z < j.e && (j.e = Z);
+ Z > j.b && (j.b = Z);
+ } else if (U.i.c == bb) {
+ Z < j.f && (j.f = Z);
+ Z > j.c && (j.c = Z);
+ }
+ }
+ }
+ Klb(p, 0, p.length, null);
+ gb = KC(WD, oje, 25, p.length, 15, 1);
+ d = KC(WD, oje, 25, hb + 1, 15, 1);
+ for (r = 0; r < p.length; r++) {
+ gb[r] = p[r].f;
+ d[gb[r]] = 1;
+ }
+ f = 0;
+ for (s = 0; s < d.length; s++) {
+ d[s] == 1 ? d[s] = f : --f;
+ }
+ $ = 0;
+ for (t = 0; t < gb.length; t++) {
+ gb[t] += d[gb[t]];
+ $ = $wnd.Math.max($, gb[t] + 1);
+ }
+ i = 1;
+ while (i < $) {
+ i *= 2;
+ }
+ lb = 2 * i - 1;
+ i -= 1;
+ kb = KC(WD, oje, 25, lb, 15, 1);
+ e = 0;
+ for (B = 0; B < gb.length; B++) {
+ A = gb[B] + i;
+ ++kb[A];
+ while (A > 0) {
+ A % 2 > 0 && (e += kb[A + 1]);
+ A = (A - 1) / 2 | 0;
+ ++kb[A];
+ }
+ }
+ C = KC(nY, Uhe, 362, p.length * 2, 0, 1);
+ for (u = 0; u < p.length; u++) {
+ C[2 * u] = new QIc(p[u], p[u].e, p[u].b, (UIc(), TIc));
+ C[2 * u + 1] = new QIc(p[u], p[u].b, p[u].e, SIc);
+ }
+ Klb(C, 0, C.length, null);
+ Q = 0;
+ for (v = 0; v < C.length; v++) {
+ switch (C[v].d.g) {
+ case 0:
+ ++Q;
+ break;
+ case 1:
+ --Q;
+ e += Q;
+ }
+ }
+ ab = KC(nY, Uhe, 362, p.length * 2, 0, 1);
+ for (w = 0; w < p.length; w++) {
+ ab[2 * w] = new QIc(p[w], p[w].f, p[w].c, (UIc(), TIc));
+ ab[2 * w + 1] = new QIc(p[w], p[w].c, p[w].f, SIc);
+ }
+ Klb(ab, 0, ab.length, null);
+ Q = 0;
+ for (q = 0; q < ab.length; q++) {
+ switch (ab[q].d.g) {
+ case 0:
+ ++Q;
+ break;
+ case 1:
+ --Q;
+ e += Q;
+ }
+ }
+ return e;
+ }
+ function wfe() {
+ wfe = ccb;
+ ffe = new xfe(7);
+ hfe = new ige(8, 94);
+ new ige(8, 64);
+ ife = new ige(8, 36);
+ ofe = new ige(8, 65);
+ pfe = new ige(8, 122);
+ qfe = new ige(8, 90);
+ tfe = new ige(8, 98);
+ mfe = new ige(8, 66);
+ rfe = new ige(8, 60);
+ ufe = new ige(8, 62);
+ efe = new xfe(11);
+ cfe = new $fe(4);
+ Ufe(cfe, 48, 57);
+ sfe = new $fe(4);
+ Ufe(sfe, 48, 57);
+ Ufe(sfe, 65, 90);
+ Ufe(sfe, 95, 95);
+ Ufe(sfe, 97, 122);
+ nfe = new $fe(4);
+ Ufe(nfe, 9, 9);
+ Ufe(nfe, 10, 10);
+ Ufe(nfe, 12, 12);
+ Ufe(nfe, 13, 13);
+ Ufe(nfe, 32, 32);
+ jfe = _fe(cfe);
+ lfe = _fe(sfe);
+ kfe = _fe(nfe);
+ Zee = new Lqb();
+ $ee = new Lqb();
+ _ee = OC(GC(ZI, 1), nie, 2, 6, ["Cn", "Lu", "Ll", "Lt", "Lm", "Lo", "Mn", "Me", "Mc", "Nd", "Nl", "No", "Zs", "Zl", "Zp", "Cc", "Cf", null, "Co", "Cs", "Pd", "Ps", "Pe", "Pc", "Po", "Sm", "Sc", "Sk", "So", "Pi", "Pf", "L", "M", "N", "Z", "C", "P", "S"]);
+ Yee = OC(GC(ZI, 1), nie, 2, 6, ["Basic Latin", "Latin-1 Supplement", "Latin Extended-A", "Latin Extended-B", "IPA Extensions", "Spacing Modifier Letters", "Combining Diacritical Marks", "Greek", "Cyrillic", "Armenian", "Hebrew", "Arabic", "Syriac", "Thaana", "Devanagari", "Bengali", "Gurmukhi", "Gujarati", "Oriya", "Tamil", "Telugu", "Kannada", "Malayalam", "Sinhala", "Thai", "Lao", "Tibetan", "Myanmar", "Georgian", "Hangul Jamo", "Ethiopic", "Cherokee", "Unified Canadian Aboriginal Syllabics", "Ogham", "Runic", "Khmer", "Mongolian", "Latin Extended Additional", "Greek Extended", "General Punctuation", "Superscripts and Subscripts", "Currency Symbols", "Combining Marks for Symbols", "Letterlike Symbols", "Number Forms", "Arrows", "Mathematical Operators", "Miscellaneous Technical", "Control Pictures", "Optical Character Recognition", "Enclosed Alphanumerics", "Box Drawing", "Block Elements", "Geometric Shapes", "Miscellaneous Symbols", "Dingbats", "Braille Patterns", "CJK Radicals Supplement", "Kangxi Radicals", "Ideographic Description Characters", "CJK Symbols and Punctuation", "Hiragana", "Katakana", "Bopomofo", "Hangul Compatibility Jamo", "Kanbun", "Bopomofo Extended", "Enclosed CJK Letters and Months", "CJK Compatibility", "CJK Unified Ideographs Extension A", "CJK Unified Ideographs", "Yi Syllables", "Yi Radicals", "Hangul Syllables", uxe, "CJK Compatibility Ideographs", "Alphabetic Presentation Forms", "Arabic Presentation Forms-A", "Combining Half Marks", "CJK Compatibility Forms", "Small Form Variants", "Arabic Presentation Forms-B", "Specials", "Halfwidth and Fullwidth Forms", "Old Italic", "Gothic", "Deseret", "Byzantine Musical Symbols", "Musical Symbols", "Mathematical Alphanumeric Symbols", "CJK Unified Ideographs Extension B", "CJK Compatibility Ideographs Supplement", "Tags"]);
+ afe = OC(GC(WD, 1), oje, 25, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]);
+ }
+ function qJb() {
+ qJb = ccb;
+ nJb = new tJb("OUT_T_L", 0, (NHb(), LHb), (EIb(), BIb), (gHb(), dHb), dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb((Hbd(), Dbd), OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd]))]));
+ mJb = new tJb("OUT_T_C", 1, KHb, BIb, dHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd, Abd]))]));
+ oJb = new tJb("OUT_T_R", 2, MHb, BIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd]))]));
+ eJb = new tJb("OUT_B_L", 3, LHb, DIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd]))]));
+ dJb = new tJb("OUT_B_C", 4, KHb, DIb, fHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd, Abd]))]));
+ fJb = new tJb("OUT_B_R", 5, MHb, DIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd]))]));
+ iJb = new tJb("OUT_L_T", 6, MHb, DIb, dHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Gbd, Abd]))]));
+ hJb = new tJb("OUT_L_C", 7, MHb, CIb, eHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Fbd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Fbd, Abd]))]));
+ gJb = new tJb("OUT_L_B", 8, MHb, BIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Ebd, Abd]))]));
+ lJb = new tJb("OUT_R_T", 9, LHb, DIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Gbd, Abd]))]));
+ kJb = new tJb("OUT_R_C", 10, LHb, CIb, eHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Fbd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Fbd, Abd]))]));
+ jJb = new tJb("OUT_R_B", 11, LHb, BIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Ebd, Abd]))]));
+ bJb = new tJb("IN_T_L", 12, LHb, DIb, dHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd, Abd]))]));
+ aJb = new tJb("IN_T_C", 13, KHb, DIb, dHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd, Abd]))]));
+ cJb = new tJb("IN_T_R", 14, MHb, DIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd, Abd]))]));
+ $Ib = new tJb("IN_C_L", 15, LHb, CIb, eHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, zbd, Abd]))]));
+ ZIb = new tJb("IN_C_C", 16, KHb, CIb, eHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, ybd, Abd]))]));
+ _Ib = new tJb("IN_C_R", 17, MHb, CIb, eHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Bbd, Abd]))]));
+ XIb = new tJb("IN_B_L", 18, LHb, BIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd, Abd]))]));
+ WIb = new tJb("IN_B_C", 19, KHb, BIb, fHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd, Abd]))]));
+ YIb = new tJb("IN_B_R", 20, MHb, BIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd, Abd]))]));
+ pJb = new tJb(ole, 21, null, null, null, null, OC(GC(LK, 1), Uhe, 21, 0, []));
+ }
+ function jGd() {
+ jGd = ccb;
+ PFd = (NFd(), MFd).b;
+ BD(qud(ZKd(MFd.b), 0), 34);
+ BD(qud(ZKd(MFd.b), 1), 18);
+ OFd = MFd.a;
+ BD(qud(ZKd(MFd.a), 0), 34);
+ BD(qud(ZKd(MFd.a), 1), 18);
+ BD(qud(ZKd(MFd.a), 2), 18);
+ BD(qud(ZKd(MFd.a), 3), 18);
+ BD(qud(ZKd(MFd.a), 4), 18);
+ QFd = MFd.o;
+ BD(qud(ZKd(MFd.o), 0), 34);
+ BD(qud(ZKd(MFd.o), 1), 34);
+ SFd = BD(qud(ZKd(MFd.o), 2), 18);
+ BD(qud(ZKd(MFd.o), 3), 18);
+ BD(qud(ZKd(MFd.o), 4), 18);
+ BD(qud(ZKd(MFd.o), 5), 18);
+ BD(qud(ZKd(MFd.o), 6), 18);
+ BD(qud(ZKd(MFd.o), 7), 18);
+ BD(qud(ZKd(MFd.o), 8), 18);
+ BD(qud(ZKd(MFd.o), 9), 18);
+ BD(qud(ZKd(MFd.o), 10), 18);
+ BD(qud(ZKd(MFd.o), 11), 18);
+ BD(qud(ZKd(MFd.o), 12), 18);
+ BD(qud(ZKd(MFd.o), 13), 18);
+ BD(qud(ZKd(MFd.o), 14), 18);
+ BD(qud(ZKd(MFd.o), 15), 18);
+ BD(qud(WKd(MFd.o), 0), 59);
+ BD(qud(WKd(MFd.o), 1), 59);
+ BD(qud(WKd(MFd.o), 2), 59);
+ BD(qud(WKd(MFd.o), 3), 59);
+ BD(qud(WKd(MFd.o), 4), 59);
+ BD(qud(WKd(MFd.o), 5), 59);
+ BD(qud(WKd(MFd.o), 6), 59);
+ BD(qud(WKd(MFd.o), 7), 59);
+ BD(qud(WKd(MFd.o), 8), 59);
+ BD(qud(WKd(MFd.o), 9), 59);
+ RFd = MFd.p;
+ BD(qud(ZKd(MFd.p), 0), 34);
+ BD(qud(ZKd(MFd.p), 1), 34);
+ BD(qud(ZKd(MFd.p), 2), 34);
+ BD(qud(ZKd(MFd.p), 3), 34);
+ BD(qud(ZKd(MFd.p), 4), 18);
+ BD(qud(ZKd(MFd.p), 5), 18);
+ BD(qud(WKd(MFd.p), 0), 59);
+ BD(qud(WKd(MFd.p), 1), 59);
+ TFd = MFd.q;
+ BD(qud(ZKd(MFd.q), 0), 34);
+ UFd = MFd.v;
+ BD(qud(ZKd(MFd.v), 0), 18);
+ BD(qud(WKd(MFd.v), 0), 59);
+ BD(qud(WKd(MFd.v), 1), 59);
+ BD(qud(WKd(MFd.v), 2), 59);
+ VFd = MFd.w;
+ BD(qud(ZKd(MFd.w), 0), 34);
+ BD(qud(ZKd(MFd.w), 1), 34);
+ BD(qud(ZKd(MFd.w), 2), 34);
+ BD(qud(ZKd(MFd.w), 3), 18);
+ WFd = MFd.B;
+ BD(qud(ZKd(MFd.B), 0), 18);
+ BD(qud(WKd(MFd.B), 0), 59);
+ BD(qud(WKd(MFd.B), 1), 59);
+ BD(qud(WKd(MFd.B), 2), 59);
+ ZFd = MFd.Q;
+ BD(qud(ZKd(MFd.Q), 0), 18);
+ BD(qud(WKd(MFd.Q), 0), 59);
+ $Fd = MFd.R;
+ BD(qud(ZKd(MFd.R), 0), 34);
+ _Fd = MFd.S;
+ BD(qud(WKd(MFd.S), 0), 59);
+ BD(qud(WKd(MFd.S), 1), 59);
+ BD(qud(WKd(MFd.S), 2), 59);
+ BD(qud(WKd(MFd.S), 3), 59);
+ BD(qud(WKd(MFd.S), 4), 59);
+ BD(qud(WKd(MFd.S), 5), 59);
+ BD(qud(WKd(MFd.S), 6), 59);
+ BD(qud(WKd(MFd.S), 7), 59);
+ BD(qud(WKd(MFd.S), 8), 59);
+ BD(qud(WKd(MFd.S), 9), 59);
+ BD(qud(WKd(MFd.S), 10), 59);
+ BD(qud(WKd(MFd.S), 11), 59);
+ BD(qud(WKd(MFd.S), 12), 59);
+ BD(qud(WKd(MFd.S), 13), 59);
+ BD(qud(WKd(MFd.S), 14), 59);
+ aGd = MFd.T;
+ BD(qud(ZKd(MFd.T), 0), 18);
+ BD(qud(ZKd(MFd.T), 2), 18);
+ bGd = BD(qud(ZKd(MFd.T), 3), 18);
+ BD(qud(ZKd(MFd.T), 4), 18);
+ BD(qud(WKd(MFd.T), 0), 59);
+ BD(qud(WKd(MFd.T), 1), 59);
+ BD(qud(ZKd(MFd.T), 1), 18);
+ cGd = MFd.U;
+ BD(qud(ZKd(MFd.U), 0), 34);
+ BD(qud(ZKd(MFd.U), 1), 34);
+ BD(qud(ZKd(MFd.U), 2), 18);
+ BD(qud(ZKd(MFd.U), 3), 18);
+ BD(qud(ZKd(MFd.U), 4), 18);
+ BD(qud(ZKd(MFd.U), 5), 18);
+ BD(qud(WKd(MFd.U), 0), 59);
+ dGd = MFd.V;
+ BD(qud(ZKd(MFd.V), 0), 18);
+ eGd = MFd.W;
+ BD(qud(ZKd(MFd.W), 0), 34);
+ BD(qud(ZKd(MFd.W), 1), 34);
+ BD(qud(ZKd(MFd.W), 2), 34);
+ BD(qud(ZKd(MFd.W), 3), 18);
+ BD(qud(ZKd(MFd.W), 4), 18);
+ BD(qud(ZKd(MFd.W), 5), 18);
+ gGd = MFd.bb;
+ BD(qud(ZKd(MFd.bb), 0), 34);
+ BD(qud(ZKd(MFd.bb), 1), 34);
+ BD(qud(ZKd(MFd.bb), 2), 34);
+ BD(qud(ZKd(MFd.bb), 3), 34);
+ BD(qud(ZKd(MFd.bb), 4), 34);
+ BD(qud(ZKd(MFd.bb), 5), 34);
+ BD(qud(ZKd(MFd.bb), 6), 34);
+ BD(qud(ZKd(MFd.bb), 7), 18);
+ BD(qud(WKd(MFd.bb), 0), 59);
+ BD(qud(WKd(MFd.bb), 1), 59);
+ hGd = MFd.eb;
+ BD(qud(ZKd(MFd.eb), 0), 34);
+ BD(qud(ZKd(MFd.eb), 1), 34);
+ BD(qud(ZKd(MFd.eb), 2), 34);
+ BD(qud(ZKd(MFd.eb), 3), 34);
+ BD(qud(ZKd(MFd.eb), 4), 34);
+ BD(qud(ZKd(MFd.eb), 5), 34);
+ BD(qud(ZKd(MFd.eb), 6), 18);
+ BD(qud(ZKd(MFd.eb), 7), 18);
+ fGd = MFd.ab;
+ BD(qud(ZKd(MFd.ab), 0), 34);
+ BD(qud(ZKd(MFd.ab), 1), 34);
+ XFd = MFd.H;
+ BD(qud(ZKd(MFd.H), 0), 18);
+ BD(qud(ZKd(MFd.H), 1), 18);
+ BD(qud(ZKd(MFd.H), 2), 18);
+ BD(qud(ZKd(MFd.H), 3), 18);
+ BD(qud(ZKd(MFd.H), 4), 18);
+ BD(qud(ZKd(MFd.H), 5), 18);
+ BD(qud(WKd(MFd.H), 0), 59);
+ iGd = MFd.db;
+ BD(qud(ZKd(MFd.db), 0), 18);
+ YFd = MFd.M;
+ }
+ function bae(a) {
+ var b;
+ if (a.O)
+ return;
+ a.O = true;
+ pnd(a, "type");
+ cod(a, "ecore.xml.type");
+ dod(a, Ewe);
+ b = BD(nUd((yFd(), xFd), Ewe), 1945);
+ wtd(_Kd(a.fb), a.b);
+ Xnd(a.b, Q9, "AnyType", false, false, true);
+ Vnd(BD(qud(ZKd(a.b), 0), 34), a.wb.D, Qve, null, 0, -1, Q9, false, false, true, false, false, false);
+ Vnd(BD(qud(ZKd(a.b), 1), 34), a.wb.D, "any", null, 0, -1, Q9, true, true, true, false, false, true);
+ Vnd(BD(qud(ZKd(a.b), 2), 34), a.wb.D, "anyAttribute", null, 0, -1, Q9, false, false, true, false, false, false);
+ Xnd(a.bb, S9, Jwe, false, false, true);
+ Vnd(BD(qud(ZKd(a.bb), 0), 34), a.gb, "data", null, 0, 1, S9, false, false, true, false, true, false);
+ Vnd(BD(qud(ZKd(a.bb), 1), 34), a.gb, bue, null, 1, 1, S9, false, false, true, false, true, false);
+ Xnd(a.fb, T9, Kwe, false, false, true);
+ Vnd(BD(qud(ZKd(a.fb), 0), 34), b.gb, "rawValue", null, 0, 1, T9, true, true, true, false, true, true);
+ Vnd(BD(qud(ZKd(a.fb), 1), 34), b.a, Bte, null, 0, 1, T9, true, true, true, false, true, true);
+ _nd(BD(qud(ZKd(a.fb), 2), 18), a.wb.q, null, "instanceType", 1, 1, T9, false, false, true, false, false, false, false);
+ Xnd(a.qb, U9, Lwe, false, false, true);
+ Vnd(BD(qud(ZKd(a.qb), 0), 34), a.wb.D, Qve, null, 0, -1, null, false, false, true, false, false, false);
+ _nd(BD(qud(ZKd(a.qb), 1), 18), a.wb.ab, null, "xMLNSPrefixMap", 0, -1, null, true, false, true, true, false, false, false);
+ _nd(BD(qud(ZKd(a.qb), 2), 18), a.wb.ab, null, "xSISchemaLocation", 0, -1, null, true, false, true, true, false, false, false);
+ Vnd(BD(qud(ZKd(a.qb), 3), 34), a.gb, "cDATA", null, 0, -2, null, true, true, true, false, false, true);
+ Vnd(BD(qud(ZKd(a.qb), 4), 34), a.gb, "comment", null, 0, -2, null, true, true, true, false, false, true);
+ _nd(BD(qud(ZKd(a.qb), 5), 18), a.bb, null, jxe, 0, -2, null, true, true, true, true, false, false, true);
+ Vnd(BD(qud(ZKd(a.qb), 6), 34), a.gb, Ite, null, 0, -2, null, true, true, true, false, false, true);
+ Znd(a.a, SI, "AnySimpleType", true);
+ Znd(a.c, ZI, "AnyURI", true);
+ Znd(a.d, GC(SD, 1), "Base64Binary", true);
+ Znd(a.e, sbb, "Boolean", true);
+ Znd(a.f, wI, "BooleanObject", true);
+ Znd(a.g, SD, "Byte", true);
+ Znd(a.i, xI, "ByteObject", true);
+ Znd(a.j, ZI, "Date", true);
+ Znd(a.k, ZI, "DateTime", true);
+ Znd(a.n, bJ, "Decimal", true);
+ Znd(a.o, UD, "Double", true);
+ Znd(a.p, BI, "DoubleObject", true);
+ Znd(a.q, ZI, "Duration", true);
+ Znd(a.s, yK, "ENTITIES", true);
+ Znd(a.r, yK, "ENTITIESBase", true);
+ Znd(a.t, ZI, Rwe, true);
+ Znd(a.u, VD, "Float", true);
+ Znd(a.v, FI, "FloatObject", true);
+ Znd(a.w, ZI, "GDay", true);
+ Znd(a.B, ZI, "GMonth", true);
+ Znd(a.A, ZI, "GMonthDay", true);
+ Znd(a.C, ZI, "GYear", true);
+ Znd(a.D, ZI, "GYearMonth", true);
+ Znd(a.F, GC(SD, 1), "HexBinary", true);
+ Znd(a.G, ZI, "ID", true);
+ Znd(a.H, ZI, "IDREF", true);
+ Znd(a.J, yK, "IDREFS", true);
+ Znd(a.I, yK, "IDREFSBase", true);
+ Znd(a.K, WD, "Int", true);
+ Znd(a.M, cJ, "Integer", true);
+ Znd(a.L, JI, "IntObject", true);
+ Znd(a.P, ZI, "Language", true);
+ Znd(a.Q, XD, "Long", true);
+ Znd(a.R, MI, "LongObject", true);
+ Znd(a.S, ZI, "Name", true);
+ Znd(a.T, ZI, Swe, true);
+ Znd(a.U, cJ, "NegativeInteger", true);
+ Znd(a.V, ZI, axe, true);
+ Znd(a.X, yK, "NMTOKENS", true);
+ Znd(a.W, yK, "NMTOKENSBase", true);
+ Znd(a.Y, cJ, "NonNegativeInteger", true);
+ Znd(a.Z, cJ, "NonPositiveInteger", true);
+ Znd(a.$, ZI, "NormalizedString", true);
+ Znd(a._, ZI, "NOTATION", true);
+ Znd(a.ab, ZI, "PositiveInteger", true);
+ Znd(a.cb, ZI, "QName", true);
+ Znd(a.db, rbb, "Short", true);
+ Znd(a.eb, UI, "ShortObject", true);
+ Znd(a.gb, ZI, Vie, true);
+ Znd(a.hb, ZI, "Time", true);
+ Znd(a.ib, ZI, "Token", true);
+ Znd(a.jb, rbb, "UnsignedByte", true);
+ Znd(a.kb, UI, "UnsignedByteObject", true);
+ Znd(a.lb, XD, "UnsignedInt", true);
+ Znd(a.mb, MI, "UnsignedIntObject", true);
+ Znd(a.nb, cJ, "UnsignedLong", true);
+ Znd(a.ob, WD, "UnsignedShort", true);
+ Znd(a.pb, JI, "UnsignedShortObject", true);
+ Rnd(a, Ewe);
+ _9d(a);
+ }
+ function Oyc(a) {
+ r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), sne), "ELK Layered"), "Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level."), new Ryc()), sne), qqb((Csd(), Bsd), OC(GC(O3, 1), Kie, 237, 0, [ysd, zsd, xsd, Asd, vsd, usd])))));
+ p4c(a, sne, Lpe, Ksd(iyc));
+ p4c(a, sne, Mpe, Ksd(jyc));
+ p4c(a, sne, Zle, Ksd(kyc));
+ p4c(a, sne, Npe, Ksd(lyc));
+ p4c(a, sne, xme, Ksd(nyc));
+ p4c(a, sne, Ope, Ksd(oyc));
+ p4c(a, sne, Ppe, Ksd(ryc));
+ p4c(a, sne, Qpe, Ksd(tyc));
+ p4c(a, sne, Rpe, Ksd(uyc));
+ p4c(a, sne, Spe, Ksd(syc));
+ p4c(a, sne, wme, Ksd(vyc));
+ p4c(a, sne, Tpe, Ksd(xyc));
+ p4c(a, sne, Upe, Ksd(zyc));
+ p4c(a, sne, Vpe, Ksd(qyc));
+ p4c(a, sne, Loe, Ksd(hyc));
+ p4c(a, sne, Noe, Ksd(myc));
+ p4c(a, sne, Moe, Ksd(pyc));
+ p4c(a, sne, Ooe, Ksd(wyc));
+ p4c(a, sne, vme, meb(0));
+ p4c(a, sne, Poe, Ksd(cyc));
+ p4c(a, sne, Qoe, Ksd(dyc));
+ p4c(a, sne, Roe, Ksd(eyc));
+ p4c(a, sne, Yoe, Ksd(Kyc));
+ p4c(a, sne, Zoe, Ksd(Cyc));
+ p4c(a, sne, $oe, Ksd(Dyc));
+ p4c(a, sne, _oe, Ksd(Gyc));
+ p4c(a, sne, ape, Ksd(Eyc));
+ p4c(a, sne, bpe, Ksd(Fyc));
+ p4c(a, sne, cpe, Ksd(Myc));
+ p4c(a, sne, dpe, Ksd(Lyc));
+ p4c(a, sne, epe, Ksd(Iyc));
+ p4c(a, sne, fpe, Ksd(Hyc));
+ p4c(a, sne, gpe, Ksd(Jyc));
+ p4c(a, sne, Eoe, Ksd(Cxc));
+ p4c(a, sne, Foe, Ksd(Dxc));
+ p4c(a, sne, Ioe, Ksd(Xwc));
+ p4c(a, sne, Joe, Ksd(Ywc));
+ p4c(a, sne, ame, Lxc);
+ p4c(a, sne, ype, Twc);
+ p4c(a, sne, Wpe, 0);
+ p4c(a, sne, yme, meb(1));
+ p4c(a, sne, _le, tme);
+ p4c(a, sne, Xpe, Ksd(Jxc));
+ p4c(a, sne, Bme, Ksd(Vxc));
+ p4c(a, sne, Ype, Ksd($xc));
+ p4c(a, sne, Zpe, Ksd(Kwc));
+ p4c(a, sne, $pe, Ksd(mwc));
+ p4c(a, sne, tpe, Ksd(axc));
+ p4c(a, sne, zme, (Bcb(), true));
+ p4c(a, sne, _pe, Ksd(fxc));
+ p4c(a, sne, aqe, Ksd(gxc));
+ p4c(a, sne, Fme, Ksd(Fxc));
+ p4c(a, sne, Eme, Ksd(Ixc));
+ p4c(a, sne, bqe, Ksd(Gxc));
+ p4c(a, sne, cqe, Nwc);
+ p4c(a, sne, Gme, Ksd(xxc));
+ p4c(a, sne, dqe, Ksd(wxc));
+ p4c(a, sne, Hme, Ksd(Yxc));
+ p4c(a, sne, eqe, Ksd(Xxc));
+ p4c(a, sne, fqe, Ksd(Zxc));
+ p4c(a, sne, gqe, Oxc);
+ p4c(a, sne, hqe, Ksd(Qxc));
+ p4c(a, sne, iqe, Ksd(Rxc));
+ p4c(a, sne, jqe, Ksd(Sxc));
+ p4c(a, sne, kqe, Ksd(Pxc));
+ p4c(a, sne, eoe, Ksd(Byc));
+ p4c(a, sne, hoe, Ksd(sxc));
+ p4c(a, sne, noe, Ksd(rxc));
+ p4c(a, sne, doe, Ksd(Ayc));
+ p4c(a, sne, ioe, Ksd(mxc));
+ p4c(a, sne, goe, Ksd(Jwc));
+ p4c(a, sne, qoe, Ksd(Iwc));
+ p4c(a, sne, roe, Ksd(Awc));
+ p4c(a, sne, woe, Ksd(Bwc));
+ p4c(a, sne, xoe, Ksd(Dwc));
+ p4c(a, sne, yoe, Ksd(Cwc));
+ p4c(a, sne, toe, Ksd(Hwc));
+ p4c(a, sne, _ne, Ksd(uxc));
+ p4c(a, sne, aoe, Ksd(vxc));
+ p4c(a, sne, $ne, Ksd(ixc));
+ p4c(a, sne, zoe, Ksd(Exc));
+ p4c(a, sne, Coe, Ksd(zxc));
+ p4c(a, sne, Zne, Ksd($wc));
+ p4c(a, sne, Doe, Ksd(Bxc));
+ p4c(a, sne, Goe, Ksd(Vwc));
+ p4c(a, sne, Hoe, Ksd(Wwc));
+ p4c(a, sne, lqe, Ksd(zwc));
+ p4c(a, sne, Boe, Ksd(yxc));
+ p4c(a, sne, Toe, Ksd(swc));
+ p4c(a, sne, Uoe, Ksd(rwc));
+ p4c(a, sne, Soe, Ksd(qwc));
+ p4c(a, sne, Voe, Ksd(cxc));
+ p4c(a, sne, Woe, Ksd(bxc));
+ p4c(a, sne, Xoe, Ksd(dxc));
+ p4c(a, sne, Tme, Ksd(Hxc));
+ p4c(a, sne, mqe, Ksd(jxc));
+ p4c(a, sne, $le, Ksd(Zwc));
+ p4c(a, sne, nqe, Ksd(Qwc));
+ p4c(a, sne, Cme, Ksd(Pwc));
+ p4c(a, sne, soe, Ksd(Ewc));
+ p4c(a, sne, oqe, Ksd(Wxc));
+ p4c(a, sne, pqe, Ksd(pwc));
+ p4c(a, sne, qqe, Ksd(exc));
+ p4c(a, sne, rqe, Ksd(Txc));
+ p4c(a, sne, sqe, Ksd(Mxc));
+ p4c(a, sne, tqe, Ksd(Nxc));
+ p4c(a, sne, loe, Ksd(oxc));
+ p4c(a, sne, moe, Ksd(pxc));
+ p4c(a, sne, uqe, Ksd(ayc));
+ p4c(a, sne, boe, Ksd(nwc));
+ p4c(a, sne, ooe, Ksd(qxc));
+ p4c(a, sne, hpe, Ksd(Rwc));
+ p4c(a, sne, ipe, Ksd(Owc));
+ p4c(a, sne, vqe, Ksd(txc));
+ p4c(a, sne, poe, Ksd(kxc));
+ p4c(a, sne, Aoe, Ksd(Axc));
+ p4c(a, sne, wqe, Ksd(yyc));
+ p4c(a, sne, Yne, Ksd(Mwc));
+ p4c(a, sne, coe, Ksd(_xc));
+ p4c(a, sne, Koe, Ksd(Uwc));
+ p4c(a, sne, joe, Ksd(lxc));
+ p4c(a, sne, uoe, Ksd(Fwc));
+ p4c(a, sne, xqe, Ksd(hxc));
+ p4c(a, sne, koe, Ksd(nxc));
+ p4c(a, sne, voe, Ksd(Gwc));
+ p4c(a, sne, jpe, Ksd(ywc));
+ p4c(a, sne, mpe, Ksd(wwc));
+ p4c(a, sne, npe, Ksd(uwc));
+ p4c(a, sne, ope, Ksd(vwc));
+ p4c(a, sne, kpe, Ksd(xwc));
+ p4c(a, sne, lpe, Ksd(twc));
+ p4c(a, sne, foe, Ksd(_wc));
+ }
+ function kee(a, b) {
+ var c, d;
+ if (!cee) {
+ cee = new Lqb();
+ dee = new Lqb();
+ d = (wfe(), wfe(), new $fe(4));
+ Ree(d, " \n\r\r ");
+ Shb(cee, pxe, d);
+ Shb(dee, pxe, _fe(d));
+ d = new $fe(4);
+ Ree(d, sxe);
+ Shb(cee, nxe, d);
+ Shb(dee, nxe, _fe(d));
+ d = new $fe(4);
+ Ree(d, sxe);
+ Shb(cee, nxe, d);
+ Shb(dee, nxe, _fe(d));
+ d = new $fe(4);
+ Ree(d, txe);
+ Xfe(d, BD(Phb(cee, nxe), 117));
+ Shb(cee, oxe, d);
+ Shb(dee, oxe, _fe(d));
+ d = new $fe(4);
+ Ree(d, "-.0:AZ__az··ÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁːˑ̀͠͡ͅΆΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁ҃҆ҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆֹֻֽֿֿׁׂ֑֣֡ׄׄאתװײءغـْ٠٩ٰڷںھۀێېۓە۪ۭۨ۰۹ँःअह़्॑॔क़ॣ०९ঁঃঅঌএঐওনপরললশহ়়াৄেৈো্ৗৗড়ঢ়য়ৣ০ৱਂਂਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹ਼਼ਾੂੇੈੋ੍ਖ਼ੜਫ਼ਫ਼੦ੴઁઃઅઋઍઍએઑઓનપરલળવહ઼ૅેૉો્ૠૠ૦૯ଁଃଅଌଏଐଓନପରଲଳଶହ଼ୃେୈୋ୍ୖୗଡ଼ଢ଼ୟୡ୦୯ஂஃஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹாூெைொ்ௗௗ௧௯ఁఃఅఌఎఐఒనపళవహాౄెైొ్ౕౖౠౡ౦౯ಂಃಅಌಎಐಒನಪಳವಹಾೄೆೈೊ್ೕೖೞೞೠೡ೦೯ംഃഅഌഎഐഒനപഹാൃെൈൊ്ൗൗൠൡ൦൯กฮะฺเ๎๐๙ກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະູົຽເໄໆໆ່ໍ໐໙༘༙༠༩༹༹༵༵༷༷༾ཇཉཀྵ྄ཱ྆ྋྐྕྗྗྙྭྱྷྐྵྐྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼ⃐⃜⃡⃡ΩΩKÅ℮℮ↀↂ々々〇〇〡〯〱〵ぁゔ゙゚ゝゞァヺーヾㄅㄬ一龥가힣");
+ Shb(cee, qxe, d);
+ Shb(dee, qxe, _fe(d));
+ d = new $fe(4);
+ Ree(d, txe);
+ Ufe(d, 95, 95);
+ Ufe(d, 58, 58);
+ Shb(cee, rxe, d);
+ Shb(dee, rxe, _fe(d));
+ }
+ c = b ? BD(Phb(cee, a), 136) : BD(Phb(dee, a), 136);
+ return c;
+ }
+ function _9d(a) {
+ Bnd(a.a, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anySimpleType"]));
+ Bnd(a.b, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anyType", Sve, Qve]));
+ Bnd(BD(qud(ZKd(a.b), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, fue, ":mixed"]));
+ Bnd(BD(qud(ZKd(a.b), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, Dwe, Fwe, fue, ":1", Owe, "lax"]));
+ Bnd(BD(qud(ZKd(a.b), 2), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, vwe, Dwe, Fwe, fue, ":2", Owe, "lax"]));
+ Bnd(a.c, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anyURI", Cwe, ywe]));
+ Bnd(a.d, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "base64Binary", Cwe, ywe]));
+ Bnd(a.e, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Khe, Cwe, ywe]));
+ Bnd(a.f, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "boolean:Object", cwe, Khe]));
+ Bnd(a.g, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Eve]));
+ Bnd(a.i, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "byte:Object", cwe, Eve]));
+ Bnd(a.j, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "date", Cwe, ywe]));
+ Bnd(a.k, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "dateTime", Cwe, ywe]));
+ Bnd(a.n, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "decimal", Cwe, ywe]));
+ Bnd(a.o, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Gve, Cwe, ywe]));
+ Bnd(a.p, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "double:Object", cwe, Gve]));
+ Bnd(a.q, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "duration", Cwe, ywe]));
+ Bnd(a.s, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "ENTITIES", cwe, Pwe, Qwe, "1"]));
+ Bnd(a.r, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Pwe, zwe, Rwe]));
+ Bnd(a.t, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Rwe, cwe, Swe]));
+ Bnd(a.u, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Hve, Cwe, ywe]));
+ Bnd(a.v, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "float:Object", cwe, Hve]));
+ Bnd(a.w, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gDay", Cwe, ywe]));
+ Bnd(a.B, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gMonth", Cwe, ywe]));
+ Bnd(a.A, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gMonthDay", Cwe, ywe]));
+ Bnd(a.C, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gYear", Cwe, ywe]));
+ Bnd(a.D, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gYearMonth", Cwe, ywe]));
+ Bnd(a.F, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "hexBinary", Cwe, ywe]));
+ Bnd(a.G, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "ID", cwe, Swe]));
+ Bnd(a.H, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "IDREF", cwe, Swe]));
+ Bnd(a.J, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "IDREFS", cwe, Twe, Qwe, "1"]));
+ Bnd(a.I, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Twe, zwe, "IDREF"]));
+ Bnd(a.K, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Ive]));
+ Bnd(a.M, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Uwe]));
+ Bnd(a.L, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "int:Object", cwe, Ive]));
+ Bnd(a.P, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "language", cwe, Vwe, Wwe, Xwe]));
+ Bnd(a.Q, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Jve]));
+ Bnd(a.R, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "long:Object", cwe, Jve]));
+ Bnd(a.S, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "Name", cwe, Vwe, Wwe, Ywe]));
+ Bnd(a.T, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Swe, cwe, "Name", Wwe, Zwe]));
+ Bnd(a.U, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "negativeInteger", cwe, $we, _we, "-1"]));
+ Bnd(a.V, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, axe, cwe, Vwe, Wwe, "\\c+"]));
+ Bnd(a.X, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "NMTOKENS", cwe, bxe, Qwe, "1"]));
+ Bnd(a.W, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, bxe, zwe, axe]));
+ Bnd(a.Y, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, cxe, cwe, Uwe, dxe, "0"]));
+ Bnd(a.Z, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, $we, cwe, Uwe, _we, "0"]));
+ Bnd(a.$, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, exe, cwe, Mhe, Cwe, "replace"]));
+ Bnd(a._, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "NOTATION", Cwe, ywe]));
+ Bnd(a.ab, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "positiveInteger", cwe, cxe, dxe, "1"]));
+ Bnd(a.bb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "processingInstruction_._type", Sve, "empty"]));
+ Bnd(BD(qud(ZKd(a.bb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "data"]));
+ Bnd(BD(qud(ZKd(a.bb), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, bue]));
+ Bnd(a.cb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "QName", Cwe, ywe]));
+ Bnd(a.db, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Kve]));
+ Bnd(a.eb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "short:Object", cwe, Kve]));
+ Bnd(a.fb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "simpleAnyType", Sve, twe]));
+ Bnd(BD(qud(ZKd(a.fb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":3", Sve, twe]));
+ Bnd(BD(qud(ZKd(a.fb), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":4", Sve, twe]));
+ Bnd(BD(qud(ZKd(a.fb), 2), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":5", Sve, twe]));
+ Bnd(a.gb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Mhe, Cwe, "preserve"]));
+ Bnd(a.hb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "time", Cwe, ywe]));
+ Bnd(a.ib, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Vwe, cwe, exe, Cwe, ywe]));
+ Bnd(a.jb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, fxe, _we, "255", dxe, "0"]));
+ Bnd(a.kb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedByte:Object", cwe, fxe]));
+ Bnd(a.lb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, gxe, _we, "4294967295", dxe, "0"]));
+ Bnd(a.mb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedInt:Object", cwe, gxe]));
+ Bnd(a.nb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedLong", cwe, cxe, _we, hxe, dxe, "0"]));
+ Bnd(a.ob, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ixe, _we, "65535", dxe, "0"]));
+ Bnd(a.pb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedShort:Object", cwe, ixe]));
+ Bnd(a.qb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "", Sve, Qve]));
+ Bnd(BD(qud(ZKd(a.qb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, fue, ":mixed"]));
+ Bnd(BD(qud(ZKd(a.qb), 1), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "xmlns:prefix"]));
+ Bnd(BD(qud(ZKd(a.qb), 2), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "xsi:schemaLocation"]));
+ Bnd(BD(qud(ZKd(a.qb), 3), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, "cDATA", Awe, Bwe]));
+ Bnd(BD(qud(ZKd(a.qb), 4), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, "comment", Awe, Bwe]));
+ Bnd(BD(qud(ZKd(a.qb), 5), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, jxe, Awe, Bwe]));
+ Bnd(BD(qud(ZKd(a.qb), 6), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, Ite, Awe, Bwe]));
+ }
+ function tvd(a) {
+ return dfb("_UI_EMFDiagnostic_marker", a) ? "EMF Problem" : dfb("_UI_CircularContainment_diagnostic", a) ? "An object may not circularly contain itself" : dfb(sue, a) ? "Wrong character." : dfb(tue, a) ? "Invalid reference number." : dfb(uue, a) ? "A character is required after \\." : dfb(vue, a) ? "'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?" : dfb(wue, a) ? "'(?<' or '(? toIndex: ", zke = ", toIndex: ", Ake = "Index: ", Bke = ", Size: ", Cke = "org.eclipse.elk.alg.common", Dke = { 62: 1 }, Eke = "org.eclipse.elk.alg.common.compaction", Fke = "Scanline/EventHandler", Gke = "org.eclipse.elk.alg.common.compaction.oned", Hke = "CNode belongs to another CGroup.", Ike = "ISpacingsHandler/1", Jke = "The ", Kke = " instance has been finished already.", Lke = "The direction ", Mke = " is not supported by the CGraph instance.", Nke = "OneDimensionalCompactor", Oke = "OneDimensionalCompactor/lambda$0$Type", Pke = "Quadruplet", Qke = "ScanlineConstraintCalculator", Rke = "ScanlineConstraintCalculator/ConstraintsScanlineHandler", Ske = "ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type", Tke = "ScanlineConstraintCalculator/Timestamp", Uke = "ScanlineConstraintCalculator/lambda$0$Type", Vke = { 169: 1, 45: 1 }, Wke = "org.eclipse.elk.alg.common.compaction.options", Xke = "org.eclipse.elk.core.data", Yke = "org.eclipse.elk.polyomino.traversalStrategy", Zke = "org.eclipse.elk.polyomino.lowLevelSort", $ke = "org.eclipse.elk.polyomino.highLevelSort", _ke = "org.eclipse.elk.polyomino.fill", ale = { 130: 1 }, ble = "polyomino", cle = "org.eclipse.elk.alg.common.networksimplex", dle = { 177: 1, 3: 1, 4: 1 }, ele = "org.eclipse.elk.alg.common.nodespacing", fle = "org.eclipse.elk.alg.common.nodespacing.cellsystem", gle = "CENTER", hle = { 212: 1, 326: 1 }, ile = { 3: 1, 4: 1, 5: 1, 595: 1 }, jle = "LEFT", kle = "RIGHT", lle = "Vertical alignment cannot be null", mle = "BOTTOM", nle = "org.eclipse.elk.alg.common.nodespacing.internal", ole = "UNDEFINED", ple = 0.01, qle = "org.eclipse.elk.alg.common.nodespacing.internal.algorithm", rle = "LabelPlacer/lambda$0$Type", sle = "LabelPlacer/lambda$1$Type", tle = "portRatioOrPosition", ule = "org.eclipse.elk.alg.common.overlaps", vle = "DOWN", wle = "org.eclipse.elk.alg.common.polyomino", xle = "NORTH", yle = "EAST", zle = "SOUTH", Ale = "WEST", Ble = "org.eclipse.elk.alg.common.polyomino.structures", Cle = "Direction", Dle = "Grid is only of size ", Ele = ". Requested point (", Fle = ") is out of bounds.", Gle = " Given center based coordinates were (", Hle = "org.eclipse.elk.graph.properties", Ile = "IPropertyHolder", Jle = { 3: 1, 94: 1, 134: 1 }, Kle = "org.eclipse.elk.alg.common.spore", Lle = "org.eclipse.elk.alg.common.utils", Mle = { 209: 1 }, Nle = "org.eclipse.elk.core", Ole = "Connected Components Compaction", Ple = "org.eclipse.elk.alg.disco", Qle = "org.eclipse.elk.alg.disco.graph", Rle = "org.eclipse.elk.alg.disco.options", Sle = "CompactionStrategy", Tle = "org.eclipse.elk.disco.componentCompaction.strategy", Ule = "org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm", Vle = "org.eclipse.elk.disco.debug.discoGraph", Wle = "org.eclipse.elk.disco.debug.discoPolys", Xle = "componentCompaction", Yle = "org.eclipse.elk.disco", Zle = "org.eclipse.elk.spacing.componentComponent", $le = "org.eclipse.elk.edge.thickness", _le = "org.eclipse.elk.aspectRatio", ame = "org.eclipse.elk.padding", bme = "org.eclipse.elk.alg.disco.transform", cme = 1.5707963267948966, dme = 17976931348623157e292, eme = { 3: 1, 4: 1, 5: 1, 192: 1 }, fme = { 3: 1, 6: 1, 4: 1, 5: 1, 106: 1, 120: 1 }, gme = "org.eclipse.elk.alg.force", hme = "ComponentsProcessor", ime = "ComponentsProcessor/1", jme = "org.eclipse.elk.alg.force.graph", kme = "Component Layout", lme = "org.eclipse.elk.alg.force.model", mme = "org.eclipse.elk.force.model", nme = "org.eclipse.elk.force.iterations", ome = "org.eclipse.elk.force.repulsivePower", pme = "org.eclipse.elk.force.temperature", qme = 1e-3, rme = "org.eclipse.elk.force.repulsion", sme = "org.eclipse.elk.alg.force.options", tme = 1.600000023841858, ume = "org.eclipse.elk.force", vme = "org.eclipse.elk.priority", wme = "org.eclipse.elk.spacing.nodeNode", xme = "org.eclipse.elk.spacing.edgeLabel", yme = "org.eclipse.elk.randomSeed", zme = "org.eclipse.elk.separateConnectedComponents", Ame = "org.eclipse.elk.interactive", Bme = "org.eclipse.elk.portConstraints", Cme = "org.eclipse.elk.edgeLabels.inline", Dme = "org.eclipse.elk.omitNodeMicroLayout", Eme = "org.eclipse.elk.nodeSize.options", Fme = "org.eclipse.elk.nodeSize.constraints", Gme = "org.eclipse.elk.nodeLabels.placement", Hme = "org.eclipse.elk.portLabels.placement", Ime = "origin", Jme = "random", Kme = "boundingBox.upLeft", Lme = "boundingBox.lowRight", Mme = "org.eclipse.elk.stress.fixed", Nme = "org.eclipse.elk.stress.desiredEdgeLength", Ome = "org.eclipse.elk.stress.dimension", Pme = "org.eclipse.elk.stress.epsilon", Qme = "org.eclipse.elk.stress.iterationLimit", Rme = "org.eclipse.elk.stress", Sme = "ELK Stress", Tme = "org.eclipse.elk.nodeSize.minimum", Ume = "org.eclipse.elk.alg.force.stress", Vme = "Layered layout", Wme = "org.eclipse.elk.alg.layered", Xme = "org.eclipse.elk.alg.layered.compaction.components", Yme = "org.eclipse.elk.alg.layered.compaction.oned", Zme = "org.eclipse.elk.alg.layered.compaction.oned.algs", $me = "org.eclipse.elk.alg.layered.compaction.recthull", _me = "org.eclipse.elk.alg.layered.components", ane = "NONE", bne = { 3: 1, 6: 1, 4: 1, 9: 1, 5: 1, 122: 1 }, cne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 106: 1, 120: 1 }, dne = "org.eclipse.elk.alg.layered.compound", ene = { 51: 1 }, fne = "org.eclipse.elk.alg.layered.graph", gne = " -> ", hne = "Not supported by LGraph", ine = "Port side is undefined", jne = { 3: 1, 6: 1, 4: 1, 5: 1, 474: 1, 141: 1, 106: 1, 120: 1 }, kne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 193: 1, 203: 1, 106: 1, 120: 1 }, lne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 1943: 1, 203: 1, 106: 1, 120: 1 }, mne = `([{"' \r
+`, nne = `)]}"' \r
+`, one = "The given string contains parts that cannot be parsed as numbers.", pne = "org.eclipse.elk.core.math", qne = { 3: 1, 4: 1, 142: 1, 207: 1, 414: 1 }, rne = { 3: 1, 4: 1, 116: 1, 207: 1, 414: 1 }, sne = "org.eclipse.elk.layered", tne = "org.eclipse.elk.alg.layered.graph.transform", une = "ElkGraphImporter", vne = "ElkGraphImporter/lambda$0$Type", wne = "ElkGraphImporter/lambda$1$Type", xne = "ElkGraphImporter/lambda$2$Type", yne = "ElkGraphImporter/lambda$4$Type", zne = "Node margin calculation", Ane = "org.eclipse.elk.alg.layered.intermediate", Bne = "ONE_SIDED_GREEDY_SWITCH", Cne = "TWO_SIDED_GREEDY_SWITCH", Dne = "No implementation is available for the layout processor ", Ene = "IntermediateProcessorStrategy", Fne = "Node '", Gne = "FIRST_SEPARATE", Hne = "LAST_SEPARATE", Ine = "Odd port side processing", Jne = "org.eclipse.elk.alg.layered.intermediate.compaction", Kne = "org.eclipse.elk.alg.layered.intermediate.greedyswitch", Lne = "org.eclipse.elk.alg.layered.p3order.counting", Mne = { 225: 1 }, Nne = "org.eclipse.elk.alg.layered.intermediate.loops", One = "org.eclipse.elk.alg.layered.intermediate.loops.ordering", Pne = "org.eclipse.elk.alg.layered.intermediate.loops.routing", Qne = "org.eclipse.elk.alg.layered.intermediate.preserveorder", Rne = "org.eclipse.elk.alg.layered.intermediate.wrapping", Sne = "org.eclipse.elk.alg.layered.options", Tne = "INTERACTIVE", Une = "DEPTH_FIRST", Vne = "EDGE_LENGTH", Wne = "SELF_LOOPS", Xne = "firstTryWithInitialOrder", Yne = "org.eclipse.elk.layered.directionCongruency", Zne = "org.eclipse.elk.layered.feedbackEdges", $ne = "org.eclipse.elk.layered.interactiveReferencePoint", _ne = "org.eclipse.elk.layered.mergeEdges", aoe = "org.eclipse.elk.layered.mergeHierarchyEdges", boe = "org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides", coe = "org.eclipse.elk.layered.portSortingStrategy", doe = "org.eclipse.elk.layered.thoroughness", eoe = "org.eclipse.elk.layered.unnecessaryBendpoints", foe = "org.eclipse.elk.layered.generatePositionAndLayerIds", goe = "org.eclipse.elk.layered.cycleBreaking.strategy", hoe = "org.eclipse.elk.layered.layering.strategy", ioe = "org.eclipse.elk.layered.layering.layerConstraint", joe = "org.eclipse.elk.layered.layering.layerChoiceConstraint", koe = "org.eclipse.elk.layered.layering.layerId", loe = "org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth", moe = "org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor", noe = "org.eclipse.elk.layered.layering.nodePromotion.strategy", ooe = "org.eclipse.elk.layered.layering.nodePromotion.maxIterations", poe = "org.eclipse.elk.layered.layering.coffmanGraham.layerBound", qoe = "org.eclipse.elk.layered.crossingMinimization.strategy", roe = "org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder", soe = "org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness", toe = "org.eclipse.elk.layered.crossingMinimization.semiInteractive", uoe = "org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint", voe = "org.eclipse.elk.layered.crossingMinimization.positionId", woe = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold", xoe = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.type", yoe = "org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type", zoe = "org.eclipse.elk.layered.nodePlacement.strategy", Aoe = "org.eclipse.elk.layered.nodePlacement.favorStraightEdges", Boe = "org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening", Coe = "org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment", Doe = "org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening", Eoe = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility", Foe = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default", Goe = "org.eclipse.elk.layered.edgeRouting.selfLoopDistribution", Hoe = "org.eclipse.elk.layered.edgeRouting.selfLoopOrdering", Ioe = "org.eclipse.elk.layered.edgeRouting.splines.mode", Joe = "org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor", Koe = "org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth", Loe = "org.eclipse.elk.layered.spacing.baseValue", Moe = "org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers", Noe = "org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers", Ooe = "org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers", Poe = "org.eclipse.elk.layered.priority.direction", Qoe = "org.eclipse.elk.layered.priority.shortness", Roe = "org.eclipse.elk.layered.priority.straightness", Soe = "org.eclipse.elk.layered.compaction.connectedComponents", Toe = "org.eclipse.elk.layered.compaction.postCompaction.strategy", Uoe = "org.eclipse.elk.layered.compaction.postCompaction.constraints", Voe = "org.eclipse.elk.layered.highDegreeNodes.treatment", Woe = "org.eclipse.elk.layered.highDegreeNodes.threshold", Xoe = "org.eclipse.elk.layered.highDegreeNodes.treeHeight", Yoe = "org.eclipse.elk.layered.wrapping.strategy", Zoe = "org.eclipse.elk.layered.wrapping.additionalEdgeSpacing", $oe = "org.eclipse.elk.layered.wrapping.correctionFactor", _oe = "org.eclipse.elk.layered.wrapping.cutting.strategy", ape = "org.eclipse.elk.layered.wrapping.cutting.cuts", bpe = "org.eclipse.elk.layered.wrapping.cutting.msd.freedom", cpe = "org.eclipse.elk.layered.wrapping.validify.strategy", dpe = "org.eclipse.elk.layered.wrapping.validify.forbiddenIndices", epe = "org.eclipse.elk.layered.wrapping.multiEdge.improveCuts", fpe = "org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty", gpe = "org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges", hpe = "org.eclipse.elk.layered.edgeLabels.sideSelection", ipe = "org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy", jpe = "org.eclipse.elk.layered.considerModelOrder.strategy", kpe = "org.eclipse.elk.layered.considerModelOrder.noModelOrder", lpe = "org.eclipse.elk.layered.considerModelOrder.components", mpe = "org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy", npe = "org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence", ope = "org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence", ppe = "layering", qpe = "layering.minWidth", rpe = "layering.nodePromotion", spe = "crossingMinimization", tpe = "org.eclipse.elk.hierarchyHandling", upe = "crossingMinimization.greedySwitch", vpe = "nodePlacement", wpe = "nodePlacement.bk", xpe = "edgeRouting", ype = "org.eclipse.elk.edgeRouting", zpe = "spacing", Ape = "priority", Bpe = "compaction", Cpe = "compaction.postCompaction", Dpe = "Specifies whether and how post-process compaction is applied.", Epe = "highDegreeNodes", Fpe = "wrapping", Gpe = "wrapping.cutting", Hpe = "wrapping.validify", Ipe = "wrapping.multiEdge", Jpe = "edgeLabels", Kpe = "considerModelOrder", Lpe = "org.eclipse.elk.spacing.commentComment", Mpe = "org.eclipse.elk.spacing.commentNode", Npe = "org.eclipse.elk.spacing.edgeEdge", Ope = "org.eclipse.elk.spacing.edgeNode", Ppe = "org.eclipse.elk.spacing.labelLabel", Qpe = "org.eclipse.elk.spacing.labelPortHorizontal", Rpe = "org.eclipse.elk.spacing.labelPortVertical", Spe = "org.eclipse.elk.spacing.labelNode", Tpe = "org.eclipse.elk.spacing.nodeSelfLoop", Upe = "org.eclipse.elk.spacing.portPort", Vpe = "org.eclipse.elk.spacing.individual", Wpe = "org.eclipse.elk.port.borderOffset", Xpe = "org.eclipse.elk.noLayout", Ype = "org.eclipse.elk.port.side", Zpe = "org.eclipse.elk.debugMode", $pe = "org.eclipse.elk.alignment", _pe = "org.eclipse.elk.insideSelfLoops.activate", aqe = "org.eclipse.elk.insideSelfLoops.yo", bqe = "org.eclipse.elk.nodeSize.fixedGraphSize", cqe = "org.eclipse.elk.direction", dqe = "org.eclipse.elk.nodeLabels.padding", eqe = "org.eclipse.elk.portLabels.nextToPortIfPossible", fqe = "org.eclipse.elk.portLabels.treatAsGroup", gqe = "org.eclipse.elk.portAlignment.default", hqe = "org.eclipse.elk.portAlignment.north", iqe = "org.eclipse.elk.portAlignment.south", jqe = "org.eclipse.elk.portAlignment.west", kqe = "org.eclipse.elk.portAlignment.east", lqe = "org.eclipse.elk.contentAlignment", mqe = "org.eclipse.elk.junctionPoints", nqe = "org.eclipse.elk.edgeLabels.placement", oqe = "org.eclipse.elk.port.index", pqe = "org.eclipse.elk.commentBox", qqe = "org.eclipse.elk.hypernode", rqe = "org.eclipse.elk.port.anchor", sqe = "org.eclipse.elk.partitioning.activate", tqe = "org.eclipse.elk.partitioning.partition", uqe = "org.eclipse.elk.position", vqe = "org.eclipse.elk.margins", wqe = "org.eclipse.elk.spacing.portsSurrounding", xqe = "org.eclipse.elk.interactiveLayout", yqe = "org.eclipse.elk.core.util", zqe = { 3: 1, 4: 1, 5: 1, 593: 1 }, Aqe = "NETWORK_SIMPLEX", Bqe = { 123: 1, 51: 1 }, Cqe = "org.eclipse.elk.alg.layered.p1cycles", Dqe = "org.eclipse.elk.alg.layered.p2layers", Eqe = { 402: 1, 225: 1 }, Fqe = { 832: 1, 3: 1, 4: 1 }, Gqe = "org.eclipse.elk.alg.layered.p3order", Hqe = "org.eclipse.elk.alg.layered.p4nodes", Iqe = { 3: 1, 4: 1, 5: 1, 840: 1 }, Jqe = 1e-5, Kqe = "org.eclipse.elk.alg.layered.p4nodes.bk", Lqe = "org.eclipse.elk.alg.layered.p5edges", Mqe = "org.eclipse.elk.alg.layered.p5edges.orthogonal", Nqe = "org.eclipse.elk.alg.layered.p5edges.orthogonal.direction", Oqe = 1e-6, Pqe = "org.eclipse.elk.alg.layered.p5edges.splines", Qqe = 0.09999999999999998, Rqe = 1e-8, Sqe = 4.71238898038469, Tqe = 3.141592653589793, Uqe = "org.eclipse.elk.alg.mrtree", Vqe = "org.eclipse.elk.alg.mrtree.graph", Wqe = "org.eclipse.elk.alg.mrtree.intermediate", Xqe = "Set neighbors in level", Yqe = "DESCENDANTS", Zqe = "org.eclipse.elk.mrtree.weighting", $qe = "org.eclipse.elk.mrtree.searchOrder", _qe = "org.eclipse.elk.alg.mrtree.options", are = "org.eclipse.elk.mrtree", bre = "org.eclipse.elk.tree", cre = "org.eclipse.elk.alg.radial", dre = 6.283185307179586, ere = 5e-324, fre = "org.eclipse.elk.alg.radial.intermediate", gre = "org.eclipse.elk.alg.radial.intermediate.compaction", hre = { 3: 1, 4: 1, 5: 1, 106: 1 }, ire = "org.eclipse.elk.alg.radial.intermediate.optimization", jre = "No implementation is available for the layout option ", kre = "org.eclipse.elk.alg.radial.options", lre = "org.eclipse.elk.radial.orderId", mre = "org.eclipse.elk.radial.radius", nre = "org.eclipse.elk.radial.compactor", ore = "org.eclipse.elk.radial.compactionStepSize", pre = "org.eclipse.elk.radial.sorter", qre = "org.eclipse.elk.radial.wedgeCriteria", rre = "org.eclipse.elk.radial.optimizationCriteria", sre = "org.eclipse.elk.radial", tre = "org.eclipse.elk.alg.radial.p1position.wedge", ure = "org.eclipse.elk.alg.radial.sorting", vre = 5.497787143782138, wre = 3.9269908169872414, xre = 2.356194490192345, yre = "org.eclipse.elk.alg.rectpacking", zre = "org.eclipse.elk.alg.rectpacking.firstiteration", Are = "org.eclipse.elk.alg.rectpacking.options", Bre = "org.eclipse.elk.rectpacking.optimizationGoal", Cre = "org.eclipse.elk.rectpacking.lastPlaceShift", Dre = "org.eclipse.elk.rectpacking.currentPosition", Ere = "org.eclipse.elk.rectpacking.desiredPosition", Fre = "org.eclipse.elk.rectpacking.onlyFirstIteration", Gre = "org.eclipse.elk.rectpacking.rowCompaction", Hre = "org.eclipse.elk.rectpacking.expandToAspectRatio", Ire = "org.eclipse.elk.rectpacking.targetWidth", Jre = "org.eclipse.elk.expandNodes", Kre = "org.eclipse.elk.rectpacking", Lre = "org.eclipse.elk.alg.rectpacking.util", Mre = "No implementation available for ", Nre = "org.eclipse.elk.alg.spore", Ore = "org.eclipse.elk.alg.spore.options", Pre = "org.eclipse.elk.sporeCompaction", Qre = "org.eclipse.elk.underlyingLayoutAlgorithm", Rre = "org.eclipse.elk.processingOrder.treeConstruction", Sre = "org.eclipse.elk.processingOrder.spanningTreeCostFunction", Tre = "org.eclipse.elk.processingOrder.preferredRoot", Ure = "org.eclipse.elk.processingOrder.rootSelection", Vre = "org.eclipse.elk.structure.structureExtractionStrategy", Wre = "org.eclipse.elk.compaction.compactionStrategy", Xre = "org.eclipse.elk.compaction.orthogonal", Yre = "org.eclipse.elk.overlapRemoval.maxIterations", Zre = "org.eclipse.elk.overlapRemoval.runScanline", $re = "processingOrder", _re = "overlapRemoval", ase = "org.eclipse.elk.sporeOverlap", bse = "org.eclipse.elk.alg.spore.p1structure", cse = "org.eclipse.elk.alg.spore.p2processingorder", dse = "org.eclipse.elk.alg.spore.p3execution", ese = "Invalid index: ", fse = "org.eclipse.elk.core.alg", gse = { 331: 1 }, hse = { 288: 1 }, ise = "Make sure its type is registered with the ", jse = " utility class.", kse = "true", lse = "false", mse = "Couldn't clone property '", nse = 0.05, ose = "org.eclipse.elk.core.options", pse = 1.2999999523162842, qse = "org.eclipse.elk.box", rse = "org.eclipse.elk.box.packingMode", sse = "org.eclipse.elk.algorithm", tse = "org.eclipse.elk.resolvedAlgorithm", use = "org.eclipse.elk.bendPoints", vse = "org.eclipse.elk.labelManager", wse = "org.eclipse.elk.scaleFactor", xse = "org.eclipse.elk.animate", yse = "org.eclipse.elk.animTimeFactor", zse = "org.eclipse.elk.layoutAncestors", Ase = "org.eclipse.elk.maxAnimTime", Bse = "org.eclipse.elk.minAnimTime", Cse = "org.eclipse.elk.progressBar", Dse = "org.eclipse.elk.validateGraph", Ese = "org.eclipse.elk.validateOptions", Fse = "org.eclipse.elk.zoomToFit", Gse = "org.eclipse.elk.font.name", Hse = "org.eclipse.elk.font.size", Ise = "org.eclipse.elk.edge.type", Jse = "partitioning", Kse = "nodeLabels", Lse = "portAlignment", Mse = "nodeSize", Nse = "port", Ose = "portLabels", Pse = "insideSelfLoops", Qse = "org.eclipse.elk.fixed", Rse = "org.eclipse.elk.random", Sse = "port must have a parent node to calculate the port side", Tse = "The edge needs to have exactly one edge section. Found: ", Use = "org.eclipse.elk.core.util.adapters", Vse = "org.eclipse.emf.ecore", Wse = "org.eclipse.elk.graph", Xse = "EMapPropertyHolder", Yse = "ElkBendPoint", Zse = "ElkGraphElement", $se = "ElkConnectableShape", _se = "ElkEdge", ate = "ElkEdgeSection", bte = "EModelElement", cte = "ENamedElement", dte = "ElkLabel", ete = "ElkNode", fte = "ElkPort", gte = { 92: 1, 90: 1 }, hte = "org.eclipse.emf.common.notify.impl", ite = "The feature '", jte = "' is not a valid changeable feature", kte = "Expecting null", lte = "' is not a valid feature", mte = "The feature ID", nte = " is not a valid feature ID", ote = 32768, pte = { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1 }, qte = "org.eclipse.emf.ecore.impl", rte = "org.eclipse.elk.graph.impl", ste = "Recursive containment not allowed for ", tte = "The datatype '", ute = "' is not a valid classifier", vte = "The value '", wte = { 190: 1, 3: 1, 4: 1 }, xte = "The class '", yte = "http://www.eclipse.org/elk/ElkGraph", zte = 1024, Ate = "property", Bte = "value", Cte = "source", Dte = "properties", Ete = "identifier", Fte = "height", Gte = "width", Hte = "parent", Ite = "text", Jte = "children", Kte = "hierarchical", Lte = "sources", Mte = "targets", Nte = "sections", Ote = "bendPoints", Pte = "outgoingShape", Qte = "incomingShape", Rte = "outgoingSections", Ste = "incomingSections", Tte = "org.eclipse.emf.common.util", Ute = "Severe implementation error in the Json to ElkGraph importer.", Vte = "id", Wte = "org.eclipse.elk.graph.json", Xte = "Unhandled parameter types: ", Yte = "startPoint", Zte = "An edge must have at least one source and one target (edge id: '", $te = "').", _te = "Referenced edge section does not exist: ", aue = " (edge id: '", bue = "target", cue = "sourcePoint", due = "targetPoint", eue = "group", fue = "name", gue = "connectableShape cannot be null", hue = "edge cannot be null", iue = "Passed edge is not 'simple'.", jue = "org.eclipse.elk.graph.util", kue = "The 'no duplicates' constraint is violated", lue = "targetIndex=", mue = ", size=", nue = "sourceIndex=", oue = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1 }, pue = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 47: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 588: 1 }, que = "logging", rue = "measureExecutionTime", sue = "parser.parse.1", tue = "parser.parse.2", uue = "parser.next.1", vue = "parser.next.2", wue = "parser.next.3", xue = "parser.next.4", yue = "parser.factor.1", zue = "parser.factor.2", Aue = "parser.factor.3", Bue = "parser.factor.4", Cue = "parser.factor.5", Due = "parser.factor.6", Eue = "parser.atom.1", Fue = "parser.atom.2", Gue = "parser.atom.3", Hue = "parser.atom.4", Iue = "parser.atom.5", Jue = "parser.cc.1", Kue = "parser.cc.2", Lue = "parser.cc.3", Mue = "parser.cc.5", Nue = "parser.cc.6", Oue = "parser.cc.7", Pue = "parser.cc.8", Que = "parser.ope.1", Rue = "parser.ope.2", Sue = "parser.ope.3", Tue = "parser.descape.1", Uue = "parser.descape.2", Vue = "parser.descape.3", Wue = "parser.descape.4", Xue = "parser.descape.5", Yue = "parser.process.1", Zue = "parser.quantifier.1", $ue = "parser.quantifier.2", _ue = "parser.quantifier.3", ave = "parser.quantifier.4", bve = "parser.quantifier.5", cve = "org.eclipse.emf.common.notify", dve = { 415: 1, 672: 1 }, eve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1 }, fve = { 366: 1, 143: 1 }, gve = "index=", hve = { 3: 1, 4: 1, 5: 1, 126: 1 }, ive = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 58: 1 }, jve = { 3: 1, 6: 1, 4: 1, 5: 1, 192: 1 }, kve = { 3: 1, 4: 1, 5: 1, 165: 1, 367: 1 }, lve = ";/?:@&=+$,", mve = "invalid authority: ", nve = "EAnnotation", ove = "ETypedElement", pve = "EStructuralFeature", qve = "EAttribute", rve = "EClassifier", sve = "EEnumLiteral", tve = "EGenericType", uve = "EOperation", vve = "EParameter", wve = "EReference", xve = "ETypeParameter", yve = "org.eclipse.emf.ecore.util", zve = { 76: 1 }, Ave = { 3: 1, 20: 1, 14: 1, 15: 1, 58: 1, 589: 1, 76: 1, 69: 1, 95: 1 }, Bve = "org.eclipse.emf.ecore.util.FeatureMap$Entry", Cve = 8192, Dve = 2048, Eve = "byte", Fve = "char", Gve = "double", Hve = "float", Ive = "int", Jve = "long", Kve = "short", Lve = "java.lang.Object", Mve = { 3: 1, 4: 1, 5: 1, 247: 1 }, Nve = { 3: 1, 4: 1, 5: 1, 673: 1 }, Ove = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 69: 1 }, Pve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, Qve = "mixed", Rve = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData", Sve = "kind", Tve = { 3: 1, 4: 1, 5: 1, 674: 1 }, Uve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, Vve = { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 69: 1 }, Wve = { 47: 1, 125: 1, 279: 1 }, Xve = { 72: 1, 332: 1 }, Yve = "The value of type '", Zve = "' must be of type '", $ve = 1316, _ve = "http://www.eclipse.org/emf/2002/Ecore", awe = -32768, bwe = "constraints", cwe = "baseType", dwe = "getEStructuralFeature", ewe = "getFeatureID", fwe = "feature", gwe = "getOperationID", hwe = "operation", iwe = "defaultValue", jwe = "eTypeParameters", kwe = "isInstance", lwe = "getEEnumLiteral", mwe = "eContainingClass", nwe = { 55: 1 }, owe = { 3: 1, 4: 1, 5: 1, 119: 1 }, pwe = "org.eclipse.emf.ecore.resource", qwe = { 92: 1, 90: 1, 591: 1, 1935: 1 }, rwe = "org.eclipse.emf.ecore.resource.impl", swe = "unspecified", twe = "simple", uwe = "attribute", vwe = "attributeWildcard", wwe = "element", xwe = "elementWildcard", ywe = "collapse", zwe = "itemType", Awe = "namespace", Bwe = "##targetNamespace", Cwe = "whiteSpace", Dwe = "wildcards", Ewe = "http://www.eclipse.org/emf/2003/XMLType", Fwe = "##any", Gwe = "uninitialized", Hwe = "The multiplicity constraint is violated", Iwe = "org.eclipse.emf.ecore.xml.type", Jwe = "ProcessingInstruction", Kwe = "SimpleAnyType", Lwe = "XMLTypeDocumentRoot", Mwe = "org.eclipse.emf.ecore.xml.type.impl", Nwe = "INF", Owe = "processing", Pwe = "ENTITIES_._base", Qwe = "minLength", Rwe = "ENTITY", Swe = "NCName", Twe = "IDREFS_._base", Uwe = "integer", Vwe = "token", Wwe = "pattern", Xwe = "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", Ywe = "\\i\\c*", Zwe = "[\\i-[:]][\\c-[:]]*", $we = "nonPositiveInteger", _we = "maxInclusive", axe = "NMTOKEN", bxe = "NMTOKENS_._base", cxe = "nonNegativeInteger", dxe = "minInclusive", exe = "normalizedString", fxe = "unsignedByte", gxe = "unsignedInt", hxe = "18446744073709551615", ixe = "unsignedShort", jxe = "processingInstruction", kxe = "org.eclipse.emf.ecore.xml.type.internal", lxe = 1114111, mxe = "Internal Error: shorthands: \\u", nxe = "xml:isDigit", oxe = "xml:isWord", pxe = "xml:isSpace", qxe = "xml:isNameChar", rxe = "xml:isInitialNameChar", sxe = "09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩", txe = "AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣", uxe = "Private Use", vxe = "ASSIGNED", wxe = "\0ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ֏ۿ܀ݏހऀॿঀ૿ఀ౿ಀഀൿༀက႟ႠჿᄀᇿሀᎠ᐀ᙿ ᚠក᠀Ḁỿἀ ⁰₠⃐℀⅏⅐←⇿∀⋿⌀⏿␀⑀①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⼀⿰ 〿ゟ゠ヿㄯ㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒐가힣豈ffﭏﭐ﷿︠︯︰﹏﹐ﹰ\uFEFF\uFEFF", xxe = "UNASSIGNED", yxe = { 3: 1, 117: 1 }, zxe = "org.eclipse.emf.ecore.xml.type.util", Axe = { 3: 1, 4: 1, 5: 1, 368: 1 }, Bxe = "org.eclipse.xtext.xbase.lib", Cxe = "Cannot add elements to a Range", Dxe = "Cannot set elements in a Range", Exe = "Cannot remove elements from a Range", Fxe = "locale", Gxe = "default", Hxe = "user.agent";
+ var _, _bb, Wbb;
+ $wnd.goog = $wnd.goog || {};
+ $wnd.goog.global = $wnd.goog.global || $wnd;
+ acb();
+ bcb(1, null, {}, nb);
+ _.Fb = function ob(a) {
+ return mb(this, a);
+ };
+ _.Gb = function qb() {
+ return this.gm;
+ };
+ _.Hb = function sb() {
+ return FCb(this);
+ };
+ _.Ib = function ub() {
+ var a;
+ return hdb(rb(this)) + "@" + (a = tb(this) >>> 0, a.toString(16));
+ };
+ _.equals = function(a) {
+ return this.Fb(a);
+ };
+ _.hashCode = function() {
+ return this.Hb();
+ };
+ _.toString = function() {
+ return this.Ib();
+ };
+ var xD, yD, zD;
+ bcb(290, 1, { 290: 1, 2026: 1 }, jdb);
+ _.le = function kdb(a) {
+ var b;
+ b = new jdb();
+ b.i = 4;
+ a > 1 ? b.c = rdb(this, a - 1) : b.c = this;
+ return b;
+ };
+ _.me = function qdb() {
+ fdb(this);
+ return this.b;
+ };
+ _.ne = function sdb() {
+ return hdb(this);
+ };
+ _.oe = function udb() {
+ return fdb(this), this.k;
+ };
+ _.pe = function wdb() {
+ return (this.i & 4) != 0;
+ };
+ _.qe = function xdb() {
+ return (this.i & 1) != 0;
+ };
+ _.Ib = function Adb() {
+ return idb(this);
+ };
+ _.i = 0;
+ var SI = mdb(Phe, "Object", 1);
+ var AI = mdb(Phe, "Class", 290);
+ bcb(1998, 1, Qhe);
+ mdb(Rhe, "Optional", 1998);
+ bcb(1170, 1998, Qhe, xb);
+ _.Fb = function yb(a) {
+ return a === this;
+ };
+ _.Hb = function zb() {
+ return 2040732332;
+ };
+ _.Ib = function Ab() {
+ return "Optional.absent()";
+ };
+ _.Jb = function Bb(a) {
+ Qb(a);
+ return wb(), vb;
+ };
+ var vb;
+ mdb(Rhe, "Absent", 1170);
+ bcb(628, 1, {}, Gb);
+ mdb(Rhe, "Joiner", 628);
+ var _D = odb(Rhe, "Predicate");
+ bcb(582, 1, { 169: 1, 582: 1, 3: 1, 45: 1 }, Yb);
+ _.Mb = function ac(a) {
+ return Xb(this, a);
+ };
+ _.Lb = function Zb(a) {
+ return Xb(this, a);
+ };
+ _.Fb = function $b(a) {
+ var b;
+ if (JD(a, 582)) {
+ b = BD(a, 582);
+ return At(this.a, b.a);
+ }
+ return false;
+ };
+ _.Hb = function _b() {
+ return qmb(this.a) + 306654252;
+ };
+ _.Ib = function bc() {
+ return Wb(this.a);
+ };
+ mdb(Rhe, "Predicates/AndPredicate", 582);
+ bcb(408, 1998, { 408: 1, 3: 1 }, cc);
+ _.Fb = function dc(a) {
+ var b;
+ if (JD(a, 408)) {
+ b = BD(a, 408);
+ return pb(this.a, b.a);
+ }
+ return false;
+ };
+ _.Hb = function ec() {
+ return 1502476572 + tb(this.a);
+ };
+ _.Ib = function fc() {
+ return Whe + this.a + ")";
+ };
+ _.Jb = function gc(a) {
+ return new cc(Rb(a.Kb(this.a), "the Function passed to Optional.transform() must not return null."));
+ };
+ mdb(Rhe, "Present", 408);
+ bcb(198, 1, Yhe);
+ _.Nb = function kc(a) {
+ Rrb(this, a);
+ };
+ _.Qb = function lc() {
+ jc();
+ };
+ mdb(Zhe, "UnmodifiableIterator", 198);
+ bcb(1978, 198, $he);
+ _.Qb = function nc() {
+ jc();
+ };
+ _.Rb = function mc(a) {
+ throw vbb(new bgb());
+ };
+ _.Wb = function oc(a) {
+ throw vbb(new bgb());
+ };
+ mdb(Zhe, "UnmodifiableListIterator", 1978);
+ bcb(386, 1978, $he);
+ _.Ob = function rc() {
+ return this.c < this.d;
+ };
+ _.Sb = function sc() {
+ return this.c > 0;
+ };
+ _.Pb = function tc() {
+ if (this.c >= this.d) {
+ throw vbb(new utb());
+ }
+ return this.Xb(this.c++);
+ };
+ _.Tb = function uc() {
+ return this.c;
+ };
+ _.Ub = function vc() {
+ if (this.c <= 0) {
+ throw vbb(new utb());
+ }
+ return this.Xb(--this.c);
+ };
+ _.Vb = function wc() {
+ return this.c - 1;
+ };
+ _.c = 0;
+ _.d = 0;
+ mdb(Zhe, "AbstractIndexedListIterator", 386);
+ bcb(699, 198, Yhe);
+ _.Ob = function Ac() {
+ return xc(this);
+ };
+ _.Pb = function Bc() {
+ return yc(this);
+ };
+ _.e = 1;
+ mdb(Zhe, "AbstractIterator", 699);
+ bcb(1986, 1, { 224: 1 });
+ _.Zb = function Hc() {
+ var a;
+ return a = this.f, !a ? this.f = this.ac() : a;
+ };
+ _.Fb = function Ic(a) {
+ return hw(this, a);
+ };
+ _.Hb = function Jc() {
+ return tb(this.Zb());
+ };
+ _.dc = function Kc() {
+ return this.gc() == 0;
+ };
+ _.ec = function Lc() {
+ return Ec(this);
+ };
+ _.Ib = function Mc() {
+ return fcb(this.Zb());
+ };
+ mdb(Zhe, "AbstractMultimap", 1986);
+ bcb(726, 1986, _he);
+ _.$b = function Xc() {
+ Nc(this);
+ };
+ _._b = function Yc(a) {
+ return Oc(this, a);
+ };
+ _.ac = function Zc() {
+ return new ne(this, this.c);
+ };
+ _.ic = function $c(a) {
+ return this.hc();
+ };
+ _.bc = function _c() {
+ return new zf(this, this.c);
+ };
+ _.jc = function ad() {
+ return this.mc(this.hc());
+ };
+ _.kc = function bd() {
+ return new Hd(this);
+ };
+ _.lc = function cd() {
+ return Yj(this.c.vc().Nc(), new $g(), 64, this.d);
+ };
+ _.cc = function dd(a) {
+ return Qc(this, a);
+ };
+ _.fc = function gd(a) {
+ return Sc(this, a);
+ };
+ _.gc = function hd() {
+ return this.d;
+ };
+ _.mc = function jd(a) {
+ return mmb(), new lnb(a);
+ };
+ _.nc = function kd() {
+ return new Dd(this);
+ };
+ _.oc = function ld() {
+ return Yj(this.c.Cc().Nc(), new Fd(), 64, this.d);
+ };
+ _.pc = function md(a, b) {
+ return new dg(this, a, b, null);
+ };
+ _.d = 0;
+ mdb(Zhe, "AbstractMapBasedMultimap", 726);
+ bcb(1631, 726, _he);
+ _.hc = function pd() {
+ return new Skb(this.a);
+ };
+ _.jc = function qd() {
+ return mmb(), mmb(), jmb;
+ };
+ _.cc = function sd(a) {
+ return BD(Qc(this, a), 15);
+ };
+ _.fc = function ud(a) {
+ return BD(Sc(this, a), 15);
+ };
+ _.Zb = function od() {
+ return nd(this);
+ };
+ _.Fb = function rd(a) {
+ return hw(this, a);
+ };
+ _.qc = function td(a) {
+ return BD(Qc(this, a), 15);
+ };
+ _.rc = function vd(a) {
+ return BD(Sc(this, a), 15);
+ };
+ _.mc = function wd(a) {
+ return vmb(BD(a, 15));
+ };
+ _.pc = function xd(a, b) {
+ return Vc(this, a, BD(b, 15), null);
+ };
+ mdb(Zhe, "AbstractListMultimap", 1631);
+ bcb(732, 1, aie);
+ _.Nb = function zd(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function Ad() {
+ return this.c.Ob() || this.e.Ob();
+ };
+ _.Pb = function Bd() {
+ var a;
+ if (!this.e.Ob()) {
+ a = BD(this.c.Pb(), 42);
+ this.b = a.cd();
+ this.a = BD(a.dd(), 14);
+ this.e = this.a.Kc();
+ }
+ return this.sc(this.b, this.e.Pb());
+ };
+ _.Qb = function Cd() {
+ this.e.Qb();
+ this.a.dc() && this.c.Qb();
+ --this.d.d;
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/Itr", 732);
+ bcb(1099, 732, aie, Dd);
+ _.sc = function Ed(a, b) {
+ return b;
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/1", 1099);
+ bcb(1100, 1, {}, Fd);
+ _.Kb = function Gd(a) {
+ return BD(a, 14).Nc();
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/1methodref$spliterator$Type", 1100);
+ bcb(1101, 732, aie, Hd);
+ _.sc = function Id(a, b) {
+ return new Wo(a, b);
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/2", 1101);
+ var DK = odb(bie, "Map");
+ bcb(1967, 1, cie);
+ _.wc = function Td(a) {
+ stb(this, a);
+ };
+ _.yc = function $d(a, b, c) {
+ return ttb(this, a, b, c);
+ };
+ _.$b = function Od() {
+ this.vc().$b();
+ };
+ _.tc = function Pd(a) {
+ return Jd(this, a);
+ };
+ _._b = function Qd(a) {
+ return !!Kd(this, a, false);
+ };
+ _.uc = function Rd(a) {
+ var b, c, d;
+ for (c = this.vc().Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 42);
+ d = b.dd();
+ if (PD(a) === PD(d) || a != null && pb(a, d)) {
+ return true;
+ }
+ }
+ return false;
+ };
+ _.Fb = function Sd(a) {
+ var b, c, d;
+ if (a === this) {
+ return true;
+ }
+ if (!JD(a, 83)) {
+ return false;
+ }
+ d = BD(a, 83);
+ if (this.gc() != d.gc()) {
+ return false;
+ }
+ for (c = d.vc().Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 42);
+ if (!this.tc(b)) {
+ return false;
+ }
+ }
+ return true;
+ };
+ _.xc = function Ud(a) {
+ return Wd(Kd(this, a, false));
+ };
+ _.Hb = function Xd() {
+ return pmb(this.vc());
+ };
+ _.dc = function Yd() {
+ return this.gc() == 0;
+ };
+ _.ec = function Zd() {
+ return new Pib(this);
+ };
+ _.zc = function _d(a, b) {
+ throw vbb(new cgb("Put not supported on this map"));
+ };
+ _.Ac = function ae(a) {
+ Ld(this, a);
+ };
+ _.Bc = function be(a) {
+ return Wd(Kd(this, a, true));
+ };
+ _.gc = function ce() {
+ return this.vc().gc();
+ };
+ _.Ib = function de() {
+ return Md(this);
+ };
+ _.Cc = function ee() {
+ return new $ib(this);
+ };
+ mdb(bie, "AbstractMap", 1967);
+ bcb(1987, 1967, cie);
+ _.bc = function ge() {
+ return new rf(this);
+ };
+ _.vc = function he() {
+ return fe(this);
+ };
+ _.ec = function ie() {
+ var a;
+ a = this.g;
+ return !a ? this.g = this.bc() : a;
+ };
+ _.Cc = function je() {
+ var a;
+ a = this.i;
+ return !a ? this.i = new Zv(this) : a;
+ };
+ mdb(Zhe, "Maps/ViewCachingAbstractMap", 1987);
+ bcb(389, 1987, cie, ne);
+ _.xc = function se(a) {
+ return ke(this, a);
+ };
+ _.Bc = function ve(a) {
+ return le(this, a);
+ };
+ _.$b = function oe() {
+ this.d == this.e.c ? this.e.$b() : ir(new mf(this));
+ };
+ _._b = function pe(a) {
+ return Gv(this.d, a);
+ };
+ _.Ec = function qe() {
+ return new df(this);
+ };
+ _.Dc = function() {
+ return this.Ec();
+ };
+ _.Fb = function re(a) {
+ return this === a || pb(this.d, a);
+ };
+ _.Hb = function te() {
+ return tb(this.d);
+ };
+ _.ec = function ue() {
+ return this.e.ec();
+ };
+ _.gc = function we() {
+ return this.d.gc();
+ };
+ _.Ib = function xe() {
+ return fcb(this.d);
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/AsMap", 389);
+ var KI = odb(Phe, "Iterable");
+ bcb(28, 1, die);
+ _.Jc = function Le(a) {
+ reb(this, a);
+ };
+ _.Lc = function Ne() {
+ return this.Oc();
+ };
+ _.Nc = function Pe() {
+ return new Kub(this, 0);
+ };
+ _.Oc = function Qe() {
+ return new YAb(null, this.Nc());
+ };
+ _.Fc = function Ge(a) {
+ throw vbb(new cgb("Add not supported on this collection"));
+ };
+ _.Gc = function He(a) {
+ return ye(this, a);
+ };
+ _.$b = function Ie() {
+ Ae(this);
+ };
+ _.Hc = function Je(a) {
+ return ze(this, a, false);
+ };
+ _.Ic = function Ke(a) {
+ return Be(this, a);
+ };
+ _.dc = function Me() {
+ return this.gc() == 0;
+ };
+ _.Mc = function Oe(a) {
+ return ze(this, a, true);
+ };
+ _.Pc = function Re() {
+ return De(this);
+ };
+ _.Qc = function Se(a) {
+ return Ee(this, a);
+ };
+ _.Ib = function Te() {
+ return Fe(this);
+ };
+ mdb(bie, "AbstractCollection", 28);
+ var LK = odb(bie, "Set");
+ bcb(eie, 28, fie);
+ _.Nc = function Ye() {
+ return new Kub(this, 1);
+ };
+ _.Fb = function We(a) {
+ return Ue(this, a);
+ };
+ _.Hb = function Xe() {
+ return pmb(this);
+ };
+ mdb(bie, "AbstractSet", eie);
+ bcb(1970, eie, fie);
+ mdb(Zhe, "Sets/ImprovedAbstractSet", 1970);
+ bcb(1971, 1970, fie);
+ _.$b = function $e() {
+ this.Rc().$b();
+ };
+ _.Hc = function _e(a) {
+ return Ze(this, a);
+ };
+ _.dc = function af() {
+ return this.Rc().dc();
+ };
+ _.Mc = function bf(a) {
+ var b;
+ if (this.Hc(a)) {
+ b = BD(a, 42);
+ return this.Rc().ec().Mc(b.cd());
+ }
+ return false;
+ };
+ _.gc = function cf() {
+ return this.Rc().gc();
+ };
+ mdb(Zhe, "Maps/EntrySet", 1971);
+ bcb(1097, 1971, fie, df);
+ _.Hc = function ef(a) {
+ return Ck(this.a.d.vc(), a);
+ };
+ _.Kc = function ff() {
+ return new mf(this.a);
+ };
+ _.Rc = function gf() {
+ return this.a;
+ };
+ _.Mc = function hf(a) {
+ var b;
+ if (!Ck(this.a.d.vc(), a)) {
+ return false;
+ }
+ b = BD(a, 42);
+ Tc(this.a.e, b.cd());
+ return true;
+ };
+ _.Nc = function jf() {
+ return $j(this.a.d.vc().Nc(), new kf(this.a));
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapEntries", 1097);
+ bcb(1098, 1, {}, kf);
+ _.Kb = function lf(a) {
+ return me(this.a, BD(a, 42));
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type", 1098);
+ bcb(730, 1, aie, mf);
+ _.Nb = function nf(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function pf() {
+ var a;
+ return a = BD(this.b.Pb(), 42), this.a = BD(a.dd(), 14), me(this.c, a);
+ };
+ _.Ob = function of() {
+ return this.b.Ob();
+ };
+ _.Qb = function qf() {
+ Vb(!!this.a);
+ this.b.Qb();
+ this.c.e.d -= this.a.gc();
+ this.a.$b();
+ this.a = null;
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapIterator", 730);
+ bcb(532, 1970, fie, rf);
+ _.$b = function sf() {
+ this.b.$b();
+ };
+ _.Hc = function tf(a) {
+ return this.b._b(a);
+ };
+ _.Jc = function uf(a) {
+ Qb(a);
+ this.b.wc(new Xv(a));
+ };
+ _.dc = function vf() {
+ return this.b.dc();
+ };
+ _.Kc = function wf() {
+ return new Mv(this.b.vc().Kc());
+ };
+ _.Mc = function xf(a) {
+ if (this.b._b(a)) {
+ this.b.Bc(a);
+ return true;
+ }
+ return false;
+ };
+ _.gc = function yf() {
+ return this.b.gc();
+ };
+ mdb(Zhe, "Maps/KeySet", 532);
+ bcb(318, 532, fie, zf);
+ _.$b = function Af() {
+ var a;
+ ir((a = this.b.vc().Kc(), new Hf(this, a)));
+ };
+ _.Ic = function Bf(a) {
+ return this.b.ec().Ic(a);
+ };
+ _.Fb = function Cf(a) {
+ return this === a || pb(this.b.ec(), a);
+ };
+ _.Hb = function Df() {
+ return tb(this.b.ec());
+ };
+ _.Kc = function Ef() {
+ var a;
+ return a = this.b.vc().Kc(), new Hf(this, a);
+ };
+ _.Mc = function Ff(a) {
+ var b, c;
+ c = 0;
+ b = BD(this.b.Bc(a), 14);
+ if (b) {
+ c = b.gc();
+ b.$b();
+ this.a.d -= c;
+ }
+ return c > 0;
+ };
+ _.Nc = function Gf() {
+ return this.b.ec().Nc();
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/KeySet", 318);
+ bcb(731, 1, aie, Hf);
+ _.Nb = function If(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function Jf() {
+ return this.c.Ob();
+ };
+ _.Pb = function Kf() {
+ this.a = BD(this.c.Pb(), 42);
+ return this.a.cd();
+ };
+ _.Qb = function Lf() {
+ var a;
+ Vb(!!this.a);
+ a = BD(this.a.dd(), 14);
+ this.c.Qb();
+ this.b.a.d -= a.gc();
+ a.$b();
+ this.a = null;
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/KeySet/1", 731);
+ bcb(491, 389, { 83: 1, 161: 1 }, Mf);
+ _.bc = function Nf() {
+ return this.Sc();
+ };
+ _.ec = function Pf() {
+ return this.Tc();
+ };
+ _.Sc = function Of() {
+ return new Yf(this.c, this.Uc());
+ };
+ _.Tc = function Qf() {
+ var a;
+ return a = this.b, !a ? this.b = this.Sc() : a;
+ };
+ _.Uc = function Rf() {
+ return BD(this.d, 161);
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/SortedAsMap", 491);
+ bcb(542, 491, gie, Sf);
+ _.bc = function Tf() {
+ return new $f(this.a, BD(BD(this.d, 161), 171));
+ };
+ _.Sc = function Uf() {
+ return new $f(this.a, BD(BD(this.d, 161), 171));
+ };
+ _.ec = function Vf() {
+ var a;
+ return a = this.b, BD(!a ? this.b = new $f(this.a, BD(BD(this.d, 161), 171)) : a, 271);
+ };
+ _.Tc = function Wf() {
+ var a;
+ return a = this.b, BD(!a ? this.b = new $f(this.a, BD(BD(this.d, 161), 171)) : a, 271);
+ };
+ _.Uc = function Xf() {
+ return BD(BD(this.d, 161), 171);
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/NavigableAsMap", 542);
+ bcb(490, 318, hie, Yf);
+ _.Nc = function Zf() {
+ return this.b.ec().Nc();
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/SortedKeySet", 490);
+ bcb(388, 490, iie, $f);
+ mdb(Zhe, "AbstractMapBasedMultimap/NavigableKeySet", 388);
+ bcb(541, 28, die, dg);
+ _.Fc = function eg(a) {
+ var b, c;
+ ag(this);
+ c = this.d.dc();
+ b = this.d.Fc(a);
+ if (b) {
+ ++this.f.d;
+ c && _f(this);
+ }
+ return b;
+ };
+ _.Gc = function fg(a) {
+ var b, c, d;
+ if (a.dc()) {
+ return false;
+ }
+ d = (ag(this), this.d.gc());
+ b = this.d.Gc(a);
+ if (b) {
+ c = this.d.gc();
+ this.f.d += c - d;
+ d == 0 && _f(this);
+ }
+ return b;
+ };
+ _.$b = function gg() {
+ var a;
+ a = (ag(this), this.d.gc());
+ if (a == 0) {
+ return;
+ }
+ this.d.$b();
+ this.f.d -= a;
+ bg(this);
+ };
+ _.Hc = function hg(a) {
+ ag(this);
+ return this.d.Hc(a);
+ };
+ _.Ic = function ig(a) {
+ ag(this);
+ return this.d.Ic(a);
+ };
+ _.Fb = function jg(a) {
+ if (a === this) {
+ return true;
+ }
+ ag(this);
+ return pb(this.d, a);
+ };
+ _.Hb = function kg() {
+ ag(this);
+ return tb(this.d);
+ };
+ _.Kc = function lg() {
+ ag(this);
+ return new Gg(this);
+ };
+ _.Mc = function mg(a) {
+ var b;
+ ag(this);
+ b = this.d.Mc(a);
+ if (b) {
+ --this.f.d;
+ bg(this);
+ }
+ return b;
+ };
+ _.gc = function ng() {
+ return cg(this);
+ };
+ _.Nc = function og() {
+ return ag(this), this.d.Nc();
+ };
+ _.Ib = function pg() {
+ ag(this);
+ return fcb(this.d);
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/WrappedCollection", 541);
+ var yK = odb(bie, "List");
+ bcb(728, 541, { 20: 1, 28: 1, 14: 1, 15: 1 }, qg);
+ _.ad = function zg(a) {
+ ktb(this, a);
+ };
+ _.Nc = function Ag() {
+ return ag(this), this.d.Nc();
+ };
+ _.Vc = function rg(a, b) {
+ var c;
+ ag(this);
+ c = this.d.dc();
+ BD(this.d, 15).Vc(a, b);
+ ++this.a.d;
+ c && _f(this);
+ };
+ _.Wc = function sg(a, b) {
+ var c, d, e;
+ if (b.dc()) {
+ return false;
+ }
+ e = (ag(this), this.d.gc());
+ c = BD(this.d, 15).Wc(a, b);
+ if (c) {
+ d = this.d.gc();
+ this.a.d += d - e;
+ e == 0 && _f(this);
+ }
+ return c;
+ };
+ _.Xb = function tg(a) {
+ ag(this);
+ return BD(this.d, 15).Xb(a);
+ };
+ _.Xc = function ug(a) {
+ ag(this);
+ return BD(this.d, 15).Xc(a);
+ };
+ _.Yc = function vg() {
+ ag(this);
+ return new Mg(this);
+ };
+ _.Zc = function wg(a) {
+ ag(this);
+ return new Ng(this, a);
+ };
+ _.$c = function xg(a) {
+ var b;
+ ag(this);
+ b = BD(this.d, 15).$c(a);
+ --this.a.d;
+ bg(this);
+ return b;
+ };
+ _._c = function yg(a, b) {
+ ag(this);
+ return BD(this.d, 15)._c(a, b);
+ };
+ _.bd = function Bg(a, b) {
+ ag(this);
+ return Vc(this.a, this.e, BD(this.d, 15).bd(a, b), !this.b ? this : this.b);
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/WrappedList", 728);
+ bcb(1096, 728, { 20: 1, 28: 1, 14: 1, 15: 1, 54: 1 }, Cg);
+ mdb(Zhe, "AbstractMapBasedMultimap/RandomAccessWrappedList", 1096);
+ bcb(620, 1, aie, Gg);
+ _.Nb = function Ig(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function Jg() {
+ Fg(this);
+ return this.b.Ob();
+ };
+ _.Pb = function Kg() {
+ Fg(this);
+ return this.b.Pb();
+ };
+ _.Qb = function Lg() {
+ Eg(this);
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/WrappedCollection/WrappedIterator", 620);
+ bcb(729, 620, jie, Mg, Ng);
+ _.Qb = function Tg() {
+ Eg(this);
+ };
+ _.Rb = function Og(a) {
+ var b;
+ b = cg(this.a) == 0;
+ (Fg(this), BD(this.b, 125)).Rb(a);
+ ++this.a.a.d;
+ b && _f(this.a);
+ };
+ _.Sb = function Pg() {
+ return (Fg(this), BD(this.b, 125)).Sb();
+ };
+ _.Tb = function Qg() {
+ return (Fg(this), BD(this.b, 125)).Tb();
+ };
+ _.Ub = function Rg() {
+ return (Fg(this), BD(this.b, 125)).Ub();
+ };
+ _.Vb = function Sg() {
+ return (Fg(this), BD(this.b, 125)).Vb();
+ };
+ _.Wb = function Ug(a) {
+ (Fg(this), BD(this.b, 125)).Wb(a);
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/WrappedList/WrappedListIterator", 729);
+ bcb(727, 541, hie, Vg);
+ _.Nc = function Wg() {
+ return ag(this), this.d.Nc();
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/WrappedSortedSet", 727);
+ bcb(1095, 727, iie, Xg);
+ mdb(Zhe, "AbstractMapBasedMultimap/WrappedNavigableSet", 1095);
+ bcb(1094, 541, fie, Yg);
+ _.Nc = function Zg() {
+ return ag(this), this.d.Nc();
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/WrappedSet", 1094);
+ bcb(1103, 1, {}, $g);
+ _.Kb = function _g(a) {
+ return fd(BD(a, 42));
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/lambda$1$Type", 1103);
+ bcb(1102, 1, {}, ah);
+ _.Kb = function bh(a) {
+ return new Wo(this.a, a);
+ };
+ mdb(Zhe, "AbstractMapBasedMultimap/lambda$2$Type", 1102);
+ var CK = odb(bie, "Map/Entry");
+ bcb(345, 1, kie);
+ _.Fb = function dh(a) {
+ var b;
+ if (JD(a, 42)) {
+ b = BD(a, 42);
+ return Hb(this.cd(), b.cd()) && Hb(this.dd(), b.dd());
+ }
+ return false;
+ };
+ _.Hb = function eh() {
+ var a, b;
+ a = this.cd();
+ b = this.dd();
+ return (a == null ? 0 : tb(a)) ^ (b == null ? 0 : tb(b));
+ };
+ _.ed = function fh(a) {
+ throw vbb(new bgb());
+ };
+ _.Ib = function gh() {
+ return this.cd() + "=" + this.dd();
+ };
+ mdb(Zhe, lie, 345);
+ bcb(1988, 28, die);
+ _.$b = function hh() {
+ this.fd().$b();
+ };
+ _.Hc = function ih(a) {
+ var b;
+ if (JD(a, 42)) {
+ b = BD(a, 42);
+ return Cc(this.fd(), b.cd(), b.dd());
+ }
+ return false;
+ };
+ _.Mc = function jh(a) {
+ var b;
+ if (JD(a, 42)) {
+ b = BD(a, 42);
+ return Gc(this.fd(), b.cd(), b.dd());
+ }
+ return false;
+ };
+ _.gc = function kh() {
+ return this.fd().d;
+ };
+ mdb(Zhe, "Multimaps/Entries", 1988);
+ bcb(733, 1988, die, lh);
+ _.Kc = function mh() {
+ return this.a.kc();
+ };
+ _.fd = function nh() {
+ return this.a;
+ };
+ _.Nc = function oh() {
+ return this.a.lc();
+ };
+ mdb(Zhe, "AbstractMultimap/Entries", 733);
+ bcb(734, 733, fie, ph);
+ _.Nc = function sh() {
+ return this.a.lc();
+ };
+ _.Fb = function qh(a) {
+ return Ax(this, a);
+ };
+ _.Hb = function rh() {
+ return Bx(this);
+ };
+ mdb(Zhe, "AbstractMultimap/EntrySet", 734);
+ bcb(735, 28, die, th);
+ _.$b = function uh() {
+ this.a.$b();
+ };
+ _.Hc = function vh(a) {
+ return Dc(this.a, a);
+ };
+ _.Kc = function wh() {
+ return this.a.nc();
+ };
+ _.gc = function xh() {
+ return this.a.d;
+ };
+ _.Nc = function yh() {
+ return this.a.oc();
+ };
+ mdb(Zhe, "AbstractMultimap/Values", 735);
+ bcb(1989, 28, { 835: 1, 20: 1, 28: 1, 14: 1 });
+ _.Jc = function Gh(a) {
+ Qb(a);
+ Ah(this).Jc(new Xw(a));
+ };
+ _.Nc = function Kh() {
+ var a;
+ return a = Ah(this).Nc(), Yj(a, new cx(), 64 | a.qd() & 1296, this.a.d);
+ };
+ _.Fc = function Ch(a) {
+ zh();
+ return true;
+ };
+ _.Gc = function Dh(a) {
+ return Qb(this), Qb(a), JD(a, 543) ? Zw(BD(a, 835)) : !a.dc() && fr(this, a.Kc());
+ };
+ _.Hc = function Eh(a) {
+ var b;
+ return b = BD(Hv(nd(this.a), a), 14), (!b ? 0 : b.gc()) > 0;
+ };
+ _.Fb = function Fh(a) {
+ return $w(this, a);
+ };
+ _.Hb = function Hh() {
+ return tb(Ah(this));
+ };
+ _.dc = function Ih() {
+ return Ah(this).dc();
+ };
+ _.Mc = function Jh(a) {
+ return Bw(this, a, 1) > 0;
+ };
+ _.Ib = function Lh() {
+ return fcb(Ah(this));
+ };
+ mdb(Zhe, "AbstractMultiset", 1989);
+ bcb(1991, 1970, fie);
+ _.$b = function Mh() {
+ Nc(this.a.a);
+ };
+ _.Hc = function Nh(a) {
+ var b, c;
+ if (JD(a, 492)) {
+ c = BD(a, 416);
+ if (BD(c.a.dd(), 14).gc() <= 0) {
+ return false;
+ }
+ b = Aw(this.a, c.a.cd());
+ return b == BD(c.a.dd(), 14).gc();
+ }
+ return false;
+ };
+ _.Mc = function Oh(a) {
+ var b, c, d, e;
+ if (JD(a, 492)) {
+ c = BD(a, 416);
+ b = c.a.cd();
+ d = BD(c.a.dd(), 14).gc();
+ if (d != 0) {
+ e = this.a;
+ return ax(e, b, d);
+ }
+ }
+ return false;
+ };
+ mdb(Zhe, "Multisets/EntrySet", 1991);
+ bcb(1109, 1991, fie, Ph);
+ _.Kc = function Qh() {
+ return new Lw(fe(nd(this.a.a)).Kc());
+ };
+ _.gc = function Rh() {
+ return nd(this.a.a).gc();
+ };
+ mdb(Zhe, "AbstractMultiset/EntrySet", 1109);
+ bcb(619, 726, _he);
+ _.hc = function Uh() {
+ return this.gd();
+ };
+ _.jc = function Vh() {
+ return this.hd();
+ };
+ _.cc = function Yh(a) {
+ return this.jd(a);
+ };
+ _.fc = function $h(a) {
+ return this.kd(a);
+ };
+ _.Zb = function Th() {
+ var a;
+ return a = this.f, !a ? this.f = this.ac() : a;
+ };
+ _.hd = function Wh() {
+ return mmb(), mmb(), lmb;
+ };
+ _.Fb = function Xh(a) {
+ return hw(this, a);
+ };
+ _.jd = function Zh(a) {
+ return BD(Qc(this, a), 21);
+ };
+ _.kd = function _h(a) {
+ return BD(Sc(this, a), 21);
+ };
+ _.mc = function ai(a) {
+ return mmb(), new zob(BD(a, 21));
+ };
+ _.pc = function bi(a, b) {
+ return new Yg(this, a, BD(b, 21));
+ };
+ mdb(Zhe, "AbstractSetMultimap", 619);
+ bcb(1657, 619, _he);
+ _.hc = function ei() {
+ return new Hxb(this.b);
+ };
+ _.gd = function fi() {
+ return new Hxb(this.b);
+ };
+ _.jc = function gi() {
+ return Ix(new Hxb(this.b));
+ };
+ _.hd = function hi() {
+ return Ix(new Hxb(this.b));
+ };
+ _.cc = function ii(a) {
+ return BD(BD(Qc(this, a), 21), 84);
+ };
+ _.jd = function ji(a) {
+ return BD(BD(Qc(this, a), 21), 84);
+ };
+ _.fc = function ki(a) {
+ return BD(BD(Sc(this, a), 21), 84);
+ };
+ _.kd = function li(a) {
+ return BD(BD(Sc(this, a), 21), 84);
+ };
+ _.mc = function mi(a) {
+ return JD(a, 271) ? Ix(BD(a, 271)) : (mmb(), new Zob(BD(a, 84)));
+ };
+ _.Zb = function di() {
+ var a;
+ return a = this.f, !a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a;
+ };
+ _.pc = function ni(a, b) {
+ return JD(b, 271) ? new Xg(this, a, BD(b, 271)) : new Vg(this, a, BD(b, 84));
+ };
+ mdb(Zhe, "AbstractSortedSetMultimap", 1657);
+ bcb(1658, 1657, _he);
+ _.Zb = function pi() {
+ var a;
+ return a = this.f, BD(BD(!a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a, 161), 171);
+ };
+ _.ec = function ri() {
+ var a;
+ return a = this.i, BD(BD(!a ? this.i = JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c) : a, 84), 271);
+ };
+ _.bc = function qi() {
+ return JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c);
+ };
+ mdb(Zhe, "AbstractSortedKeySortedSetMultimap", 1658);
+ bcb(2010, 1, { 1947: 1 });
+ _.Fb = function si(a) {
+ return zy(this, a);
+ };
+ _.Hb = function ti() {
+ var a;
+ return pmb((a = this.g, !a ? this.g = new vi(this) : a));
+ };
+ _.Ib = function ui() {
+ var a;
+ return Md((a = this.f, !a ? this.f = new Rj(this) : a));
+ };
+ mdb(Zhe, "AbstractTable", 2010);
+ bcb(665, eie, fie, vi);
+ _.$b = function wi() {
+ Pi();
+ };
+ _.Hc = function xi(a) {
+ var b, c;
+ if (JD(a, 468)) {
+ b = BD(a, 682);
+ c = BD(Hv(Vi(this.a), Em(b.c.e, b.b)), 83);
+ return !!c && Ck(c.vc(), new Wo(Em(b.c.c, b.a), Mi(b.c, b.b, b.a)));
+ }
+ return false;
+ };
+ _.Kc = function yi() {
+ return Ni(this.a);
+ };
+ _.Mc = function zi(a) {
+ var b, c;
+ if (JD(a, 468)) {
+ b = BD(a, 682);
+ c = BD(Hv(Vi(this.a), Em(b.c.e, b.b)), 83);
+ return !!c && Dk(c.vc(), new Wo(Em(b.c.c, b.a), Mi(b.c, b.b, b.a)));
+ }
+ return false;
+ };
+ _.gc = function Ai() {
+ return Xi(this.a);
+ };
+ _.Nc = function Bi() {
+ return Oi(this.a);
+ };
+ mdb(Zhe, "AbstractTable/CellSet", 665);
+ bcb(1928, 28, die, Ci);
+ _.$b = function Di() {
+ Pi();
+ };
+ _.Hc = function Ei(a) {
+ return Qi(this.a, a);
+ };
+ _.Kc = function Fi() {
+ return Zi(this.a);
+ };
+ _.gc = function Gi() {
+ return Xi(this.a);
+ };
+ _.Nc = function Hi() {
+ return $i(this.a);
+ };
+ mdb(Zhe, "AbstractTable/Values", 1928);
+ bcb(1632, 1631, _he);
+ mdb(Zhe, "ArrayListMultimapGwtSerializationDependencies", 1632);
+ bcb(513, 1632, _he, Ji, Ki);
+ _.hc = function Li() {
+ return new Skb(this.a);
+ };
+ _.a = 0;
+ mdb(Zhe, "ArrayListMultimap", 513);
+ bcb(664, 2010, { 664: 1, 1947: 1, 3: 1 }, _i);
+ mdb(Zhe, "ArrayTable", 664);
+ bcb(1924, 386, $he, aj);
+ _.Xb = function bj(a) {
+ return new hj(this.a, a);
+ };
+ mdb(Zhe, "ArrayTable/1", 1924);
+ bcb(1925, 1, {}, cj);
+ _.ld = function dj(a) {
+ return new hj(this.a, a);
+ };
+ mdb(Zhe, "ArrayTable/1methodref$getCell$Type", 1925);
+ bcb(2011, 1, { 682: 1 });
+ _.Fb = function ej(a) {
+ var b;
+ if (a === this) {
+ return true;
+ }
+ if (JD(a, 468)) {
+ b = BD(a, 682);
+ return Hb(Em(this.c.e, this.b), Em(b.c.e, b.b)) && Hb(Em(this.c.c, this.a), Em(b.c.c, b.a)) && Hb(Mi(this.c, this.b, this.a), Mi(b.c, b.b, b.a));
+ }
+ return false;
+ };
+ _.Hb = function fj() {
+ return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [Em(this.c.e, this.b), Em(this.c.c, this.a), Mi(this.c, this.b, this.a)]));
+ };
+ _.Ib = function gj() {
+ return "(" + Em(this.c.e, this.b) + "," + Em(this.c.c, this.a) + ")=" + Mi(this.c, this.b, this.a);
+ };
+ mdb(Zhe, "Tables/AbstractCell", 2011);
+ bcb(468, 2011, { 468: 1, 682: 1 }, hj);
+ _.a = 0;
+ _.b = 0;
+ _.d = 0;
+ mdb(Zhe, "ArrayTable/2", 468);
+ bcb(1927, 1, {}, ij);
+ _.ld = function jj(a) {
+ return Ti(this.a, a);
+ };
+ mdb(Zhe, "ArrayTable/2methodref$getValue$Type", 1927);
+ bcb(1926, 386, $he, kj);
+ _.Xb = function lj(a) {
+ return Ti(this.a, a);
+ };
+ mdb(Zhe, "ArrayTable/3", 1926);
+ bcb(1979, 1967, cie);
+ _.$b = function nj() {
+ ir(this.kc());
+ };
+ _.vc = function oj() {
+ return new Sv(this);
+ };
+ _.lc = function pj() {
+ return new Mub(this.kc(), this.gc());
+ };
+ mdb(Zhe, "Maps/IteratorBasedAbstractMap", 1979);
+ bcb(828, 1979, cie);
+ _.$b = function tj() {
+ throw vbb(new bgb());
+ };
+ _._b = function uj(a) {
+ return sn(this.c, a);
+ };
+ _.kc = function vj() {
+ return new Jj(this, this.c.b.c.gc());
+ };
+ _.lc = function wj() {
+ return Zj(this.c.b.c.gc(), 16, new Dj(this));
+ };
+ _.xc = function xj(a) {
+ var b;
+ b = BD(tn(this.c, a), 19);
+ return !b ? null : this.nd(b.a);
+ };
+ _.dc = function yj() {
+ return this.c.b.c.dc();
+ };
+ _.ec = function zj() {
+ return Xm(this.c);
+ };
+ _.zc = function Aj(a, b) {
+ var c;
+ c = BD(tn(this.c, a), 19);
+ if (!c) {
+ throw vbb(new Wdb(this.md() + " " + a + " not in " + Xm(this.c)));
+ }
+ return this.od(c.a, b);
+ };
+ _.Bc = function Bj(a) {
+ throw vbb(new bgb());
+ };
+ _.gc = function Cj() {
+ return this.c.b.c.gc();
+ };
+ mdb(Zhe, "ArrayTable/ArrayMap", 828);
+ bcb(1923, 1, {}, Dj);
+ _.ld = function Ej(a) {
+ return qj(this.a, a);
+ };
+ mdb(Zhe, "ArrayTable/ArrayMap/0methodref$getEntry$Type", 1923);
+ bcb(1921, 345, kie, Fj);
+ _.cd = function Gj() {
+ return rj(this.a, this.b);
+ };
+ _.dd = function Hj() {
+ return this.a.nd(this.b);
+ };
+ _.ed = function Ij(a) {
+ return this.a.od(this.b, a);
+ };
+ _.b = 0;
+ mdb(Zhe, "ArrayTable/ArrayMap/1", 1921);
+ bcb(1922, 386, $he, Jj);
+ _.Xb = function Kj(a) {
+ return qj(this.a, a);
+ };
+ mdb(Zhe, "ArrayTable/ArrayMap/2", 1922);
+ bcb(1920, 828, cie, Lj);
+ _.md = function Mj() {
+ return "Column";
+ };
+ _.nd = function Nj(a) {
+ return Mi(this.b, this.a, a);
+ };
+ _.od = function Oj(a, b) {
+ return Wi(this.b, this.a, a, b);
+ };
+ _.a = 0;
+ mdb(Zhe, "ArrayTable/Row", 1920);
+ bcb(829, 828, cie, Rj);
+ _.nd = function Tj(a) {
+ return new Lj(this.a, a);
+ };
+ _.zc = function Uj(a, b) {
+ return BD(b, 83), Pj();
+ };
+ _.od = function Vj(a, b) {
+ return BD(b, 83), Qj();
+ };
+ _.md = function Sj() {
+ return "Row";
+ };
+ mdb(Zhe, "ArrayTable/RowMap", 829);
+ bcb(1120, 1, pie, _j);
+ _.qd = function ak() {
+ return this.a.qd() & -262;
+ };
+ _.rd = function bk() {
+ return this.a.rd();
+ };
+ _.Nb = function ck(a) {
+ this.a.Nb(new gk(a, this.b));
+ };
+ _.sd = function dk(a) {
+ return this.a.sd(new ek(a, this.b));
+ };
+ mdb(Zhe, "CollectSpliterators/1", 1120);
+ bcb(1121, 1, qie, ek);
+ _.td = function fk(a) {
+ this.a.td(this.b.Kb(a));
+ };
+ mdb(Zhe, "CollectSpliterators/1/lambda$0$Type", 1121);
+ bcb(1122, 1, qie, gk);
+ _.td = function hk(a) {
+ this.a.td(this.b.Kb(a));
+ };
+ mdb(Zhe, "CollectSpliterators/1/lambda$1$Type", 1122);
+ bcb(1123, 1, pie, jk);
+ _.qd = function kk() {
+ return this.a;
+ };
+ _.rd = function lk() {
+ !!this.d && (this.b = Deb(this.b, this.d.rd()));
+ return Deb(this.b, 0);
+ };
+ _.Nb = function mk(a) {
+ if (this.d) {
+ this.d.Nb(a);
+ this.d = null;
+ }
+ this.c.Nb(new rk(this.e, a));
+ this.b = 0;
+ };
+ _.sd = function ok(a) {
+ while (true) {
+ if (!!this.d && this.d.sd(a)) {
+ Kbb(this.b, rie) && (this.b = Qbb(this.b, 1));
+ return true;
+ } else {
+ this.d = null;
+ }
+ if (!this.c.sd(new pk(this, this.e))) {
+ return false;
+ }
+ }
+ };
+ _.a = 0;
+ _.b = 0;
+ mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator", 1123);
+ bcb(1124, 1, qie, pk);
+ _.td = function qk(a) {
+ ik(this.a, this.b, a);
+ };
+ mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator/lambda$0$Type", 1124);
+ bcb(1125, 1, qie, rk);
+ _.td = function sk(a) {
+ nk(this.b, this.a, a);
+ };
+ mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator/lambda$1$Type", 1125);
+ bcb(1117, 1, pie, tk);
+ _.qd = function uk() {
+ return 16464 | this.b;
+ };
+ _.rd = function vk() {
+ return this.a.rd();
+ };
+ _.Nb = function wk(a) {
+ this.a.xe(new Ak(a, this.c));
+ };
+ _.sd = function xk(a) {
+ return this.a.ye(new yk(a, this.c));
+ };
+ _.b = 0;
+ mdb(Zhe, "CollectSpliterators/1WithCharacteristics", 1117);
+ bcb(1118, 1, sie, yk);
+ _.ud = function zk(a) {
+ this.a.td(this.b.ld(a));
+ };
+ mdb(Zhe, "CollectSpliterators/1WithCharacteristics/lambda$0$Type", 1118);
+ bcb(1119, 1, sie, Ak);
+ _.ud = function Bk(a) {
+ this.a.td(this.b.ld(a));
+ };
+ mdb(Zhe, "CollectSpliterators/1WithCharacteristics/lambda$1$Type", 1119);
+ bcb(245, 1, tie);
+ _.wd = function Hk(a) {
+ return this.vd(BD(a, 245));
+ };
+ _.vd = function Gk(a) {
+ var b;
+ if (a == (_k(), $k)) {
+ return 1;
+ }
+ if (a == (Lk(), Kk)) {
+ return -1;
+ }
+ b = (ex(), Fcb(this.a, a.a));
+ if (b != 0) {
+ return b;
+ }
+ return JD(this, 519) == JD(a, 519) ? 0 : JD(this, 519) ? 1 : -1;
+ };
+ _.zd = function Ik() {
+ return this.a;
+ };
+ _.Fb = function Jk(a) {
+ return Ek(this, a);
+ };
+ mdb(Zhe, "Cut", 245);
+ bcb(1761, 245, tie, Mk);
+ _.vd = function Nk(a) {
+ return a == this ? 0 : 1;
+ };
+ _.xd = function Ok(a) {
+ throw vbb(new xcb());
+ };
+ _.yd = function Pk(a) {
+ a.a += "+∞)";
+ };
+ _.zd = function Qk() {
+ throw vbb(new Zdb(uie));
+ };
+ _.Hb = function Rk() {
+ return Zfb(), kCb(this);
+ };
+ _.Ad = function Sk(a) {
+ return false;
+ };
+ _.Ib = function Tk() {
+ return "+∞";
+ };
+ var Kk;
+ mdb(Zhe, "Cut/AboveAll", 1761);
+ bcb(519, 245, { 245: 1, 519: 1, 3: 1, 35: 1 }, Uk);
+ _.xd = function Vk(a) {
+ Pfb((a.a += "(", a), this.a);
+ };
+ _.yd = function Wk(a) {
+ Kfb(Pfb(a, this.a), 93);
+ };
+ _.Hb = function Xk() {
+ return ~tb(this.a);
+ };
+ _.Ad = function Yk(a) {
+ return ex(), Fcb(this.a, a) < 0;
+ };
+ _.Ib = function Zk() {
+ return "/" + this.a + "\\";
+ };
+ mdb(Zhe, "Cut/AboveValue", 519);
+ bcb(1760, 245, tie, al);
+ _.vd = function bl(a) {
+ return a == this ? 0 : -1;
+ };
+ _.xd = function cl(a) {
+ a.a += "(-∞";
+ };
+ _.yd = function dl(a) {
+ throw vbb(new xcb());
+ };
+ _.zd = function el() {
+ throw vbb(new Zdb(uie));
+ };
+ _.Hb = function fl() {
+ return Zfb(), kCb(this);
+ };
+ _.Ad = function gl(a) {
+ return true;
+ };
+ _.Ib = function hl() {
+ return "-∞";
+ };
+ var $k;
+ mdb(Zhe, "Cut/BelowAll", 1760);
+ bcb(1762, 245, tie, il);
+ _.xd = function jl(a) {
+ Pfb((a.a += "[", a), this.a);
+ };
+ _.yd = function kl(a) {
+ Kfb(Pfb(a, this.a), 41);
+ };
+ _.Hb = function ll() {
+ return tb(this.a);
+ };
+ _.Ad = function ml(a) {
+ return ex(), Fcb(this.a, a) <= 0;
+ };
+ _.Ib = function nl() {
+ return "\\" + this.a + "/";
+ };
+ mdb(Zhe, "Cut/BelowValue", 1762);
+ bcb(537, 1, vie);
+ _.Jc = function ql(a) {
+ reb(this, a);
+ };
+ _.Ib = function rl() {
+ return tr(BD(Rb(this, "use Optional.orNull() instead of Optional.or(null)"), 20).Kc());
+ };
+ mdb(Zhe, "FluentIterable", 537);
+ bcb(433, 537, vie, sl);
+ _.Kc = function tl() {
+ return new Sr(ur(this.a.Kc(), new Sq()));
+ };
+ mdb(Zhe, "FluentIterable/2", 433);
+ bcb(1046, 537, vie, vl);
+ _.Kc = function wl() {
+ return ul(this);
+ };
+ mdb(Zhe, "FluentIterable/3", 1046);
+ bcb(708, 386, $he, xl);
+ _.Xb = function yl(a) {
+ return this.a[a].Kc();
+ };
+ mdb(Zhe, "FluentIterable/3/1", 708);
+ bcb(1972, 1, {});
+ _.Ib = function zl() {
+ return fcb(this.Bd().b);
+ };
+ mdb(Zhe, "ForwardingObject", 1972);
+ bcb(1973, 1972, wie);
+ _.Bd = function Fl() {
+ return this.Cd();
+ };
+ _.Jc = function Gl(a) {
+ reb(this, a);
+ };
+ _.Lc = function Jl() {
+ return this.Oc();
+ };
+ _.Nc = function Ml() {
+ return new Kub(this, 0);
+ };
+ _.Oc = function Nl() {
+ return new YAb(null, this.Nc());
+ };
+ _.Fc = function Al(a) {
+ return this.Cd(), enb();
+ };
+ _.Gc = function Bl(a) {
+ return this.Cd(), fnb();
+ };
+ _.$b = function Cl() {
+ this.Cd(), gnb();
+ };
+ _.Hc = function Dl(a) {
+ return this.Cd().Hc(a);
+ };
+ _.Ic = function El(a) {
+ return this.Cd().Ic(a);
+ };
+ _.dc = function Hl() {
+ return this.Cd().b.dc();
+ };
+ _.Kc = function Il() {
+ return this.Cd().Kc();
+ };
+ _.Mc = function Kl(a) {
+ return this.Cd(), jnb();
+ };
+ _.gc = function Ll() {
+ return this.Cd().b.gc();
+ };
+ _.Pc = function Ol() {
+ return this.Cd().Pc();
+ };
+ _.Qc = function Pl(a) {
+ return this.Cd().Qc(a);
+ };
+ mdb(Zhe, "ForwardingCollection", 1973);
+ bcb(1980, 28, xie);
+ _.Kc = function Xl() {
+ return this.Ed();
+ };
+ _.Fc = function Sl(a) {
+ throw vbb(new bgb());
+ };
+ _.Gc = function Tl(a) {
+ throw vbb(new bgb());
+ };
+ _.$b = function Ul() {
+ throw vbb(new bgb());
+ };
+ _.Hc = function Vl(a) {
+ return a != null && ze(this, a, false);
+ };
+ _.Dd = function Wl() {
+ switch (this.gc()) {
+ case 0:
+ return im(), im(), hm;
+ case 1:
+ return im(), new my(Qb(this.Ed().Pb()));
+ default:
+ return new px(this, this.Pc());
+ }
+ };
+ _.Mc = function Yl(a) {
+ throw vbb(new bgb());
+ };
+ mdb(Zhe, "ImmutableCollection", 1980);
+ bcb(712, 1980, xie, Zl);
+ _.Kc = function cm() {
+ return vr(this.a.Kc());
+ };
+ _.Hc = function $l(a) {
+ return a != null && this.a.Hc(a);
+ };
+ _.Ic = function _l(a) {
+ return this.a.Ic(a);
+ };
+ _.dc = function am() {
+ return this.a.dc();
+ };
+ _.Ed = function bm() {
+ return vr(this.a.Kc());
+ };
+ _.gc = function dm() {
+ return this.a.gc();
+ };
+ _.Pc = function em() {
+ return this.a.Pc();
+ };
+ _.Qc = function fm(a) {
+ return this.a.Qc(a);
+ };
+ _.Ib = function gm() {
+ return fcb(this.a);
+ };
+ mdb(Zhe, "ForwardingImmutableCollection", 712);
+ bcb(152, 1980, yie);
+ _.Kc = function sm() {
+ return this.Ed();
+ };
+ _.Yc = function tm() {
+ return this.Fd(0);
+ };
+ _.Zc = function vm(a) {
+ return this.Fd(a);
+ };
+ _.ad = function zm(a) {
+ ktb(this, a);
+ };
+ _.Nc = function Am() {
+ return new Kub(this, 16);
+ };
+ _.bd = function Cm(a, b) {
+ return this.Gd(a, b);
+ };
+ _.Vc = function lm(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Wc = function mm(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Fb = function om(a) {
+ return Ju(this, a);
+ };
+ _.Hb = function pm() {
+ return Ku(this);
+ };
+ _.Xc = function qm(a) {
+ return a == null ? -1 : Lu(this, a);
+ };
+ _.Ed = function rm() {
+ return this.Fd(0);
+ };
+ _.Fd = function um(a) {
+ return jm(this, a);
+ };
+ _.$c = function xm(a) {
+ throw vbb(new bgb());
+ };
+ _._c = function ym(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Gd = function Bm(a, b) {
+ var c;
+ return Dm((c = new $u(this), new Jib(c, a, b)));
+ };
+ var hm;
+ mdb(Zhe, "ImmutableList", 152);
+ bcb(2006, 152, yie);
+ _.Kc = function Nm() {
+ return vr(this.Hd().Kc());
+ };
+ _.bd = function Qm(a, b) {
+ return Dm(this.Hd().bd(a, b));
+ };
+ _.Hc = function Fm(a) {
+ return a != null && this.Hd().Hc(a);
+ };
+ _.Ic = function Gm(a) {
+ return this.Hd().Ic(a);
+ };
+ _.Fb = function Hm(a) {
+ return pb(this.Hd(), a);
+ };
+ _.Xb = function Im(a) {
+ return Em(this, a);
+ };
+ _.Hb = function Jm() {
+ return tb(this.Hd());
+ };
+ _.Xc = function Km(a) {
+ return this.Hd().Xc(a);
+ };
+ _.dc = function Lm() {
+ return this.Hd().dc();
+ };
+ _.Ed = function Mm() {
+ return vr(this.Hd().Kc());
+ };
+ _.gc = function Om() {
+ return this.Hd().gc();
+ };
+ _.Gd = function Pm(a, b) {
+ return Dm(this.Hd().bd(a, b));
+ };
+ _.Pc = function Rm() {
+ return this.Hd().Qc(KC(SI, Uhe, 1, this.Hd().gc(), 5, 1));
+ };
+ _.Qc = function Sm(a) {
+ return this.Hd().Qc(a);
+ };
+ _.Ib = function Tm() {
+ return fcb(this.Hd());
+ };
+ mdb(Zhe, "ForwardingImmutableList", 2006);
+ bcb(714, 1, Aie);
+ _.vc = function cn() {
+ return Wm(this);
+ };
+ _.wc = function en(a) {
+ stb(this, a);
+ };
+ _.ec = function jn() {
+ return Xm(this);
+ };
+ _.yc = function kn(a, b, c) {
+ return ttb(this, a, b, c);
+ };
+ _.Cc = function rn() {
+ return this.Ld();
+ };
+ _.$b = function Zm() {
+ throw vbb(new bgb());
+ };
+ _._b = function $m(a) {
+ return this.xc(a) != null;
+ };
+ _.uc = function _m(a) {
+ return this.Ld().Hc(a);
+ };
+ _.Jd = function an() {
+ return new jq(this);
+ };
+ _.Kd = function bn() {
+ return new sq(this);
+ };
+ _.Fb = function dn(a) {
+ return Dv(this, a);
+ };
+ _.Hb = function gn() {
+ return Wm(this).Hb();
+ };
+ _.dc = function hn() {
+ return this.gc() == 0;
+ };
+ _.zc = function nn(a, b) {
+ return Ym();
+ };
+ _.Bc = function on(a) {
+ throw vbb(new bgb());
+ };
+ _.Ib = function pn() {
+ return Jv(this);
+ };
+ _.Ld = function qn() {
+ if (this.e) {
+ return this.e;
+ }
+ return this.e = this.Kd();
+ };
+ _.c = null;
+ _.d = null;
+ _.e = null;
+ var Um;
+ mdb(Zhe, "ImmutableMap", 714);
+ bcb(715, 714, Aie);
+ _._b = function vn(a) {
+ return sn(this, a);
+ };
+ _.uc = function wn(a) {
+ return dob(this.b, a);
+ };
+ _.Id = function xn() {
+ return Vn(new Ln(this));
+ };
+ _.Jd = function yn() {
+ return Vn(gob(this.b));
+ };
+ _.Kd = function zn() {
+ return Ql(), new Zl(hob(this.b));
+ };
+ _.Fb = function An(a) {
+ return fob(this.b, a);
+ };
+ _.xc = function Bn(a) {
+ return tn(this, a);
+ };
+ _.Hb = function Cn() {
+ return tb(this.b.c);
+ };
+ _.dc = function Dn() {
+ return this.b.c.dc();
+ };
+ _.gc = function En() {
+ return this.b.c.gc();
+ };
+ _.Ib = function Fn() {
+ return fcb(this.b.c);
+ };
+ mdb(Zhe, "ForwardingImmutableMap", 715);
+ bcb(1974, 1973, Bie);
+ _.Bd = function Gn() {
+ return this.Md();
+ };
+ _.Cd = function Hn() {
+ return this.Md();
+ };
+ _.Nc = function Kn() {
+ return new Kub(this, 1);
+ };
+ _.Fb = function In(a) {
+ return a === this || this.Md().Fb(a);
+ };
+ _.Hb = function Jn() {
+ return this.Md().Hb();
+ };
+ mdb(Zhe, "ForwardingSet", 1974);
+ bcb(1069, 1974, Bie, Ln);
+ _.Bd = function Nn() {
+ return eob(this.a.b);
+ };
+ _.Cd = function On() {
+ return eob(this.a.b);
+ };
+ _.Hc = function Mn(b) {
+ if (JD(b, 42) && BD(b, 42).cd() == null) {
+ return false;
+ }
+ try {
+ return Dob(eob(this.a.b), b);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 205)) {
+ return false;
+ } else
+ throw vbb(a);
+ }
+ };
+ _.Md = function Pn() {
+ return eob(this.a.b);
+ };
+ _.Qc = function Qn(a) {
+ var b;
+ b = Eob(eob(this.a.b), a);
+ eob(this.a.b).b.gc() < b.length && NC(b, eob(this.a.b).b.gc(), null);
+ return b;
+ };
+ mdb(Zhe, "ForwardingImmutableMap/1", 1069);
+ bcb(1981, 1980, Cie);
+ _.Kc = function Tn() {
+ return this.Ed();
+ };
+ _.Nc = function Un() {
+ return new Kub(this, 1);
+ };
+ _.Fb = function Rn(a) {
+ return Ax(this, a);
+ };
+ _.Hb = function Sn() {
+ return Bx(this);
+ };
+ mdb(Zhe, "ImmutableSet", 1981);
+ bcb(703, 1981, Cie);
+ _.Kc = function ao() {
+ return vr(new Dnb(this.a.b.Kc()));
+ };
+ _.Hc = function Xn(a) {
+ return a != null && hnb(this.a, a);
+ };
+ _.Ic = function Yn(a) {
+ return inb(this.a, a);
+ };
+ _.Hb = function Zn() {
+ return tb(this.a.b);
+ };
+ _.dc = function $n() {
+ return this.a.b.dc();
+ };
+ _.Ed = function _n() {
+ return vr(new Dnb(this.a.b.Kc()));
+ };
+ _.gc = function bo() {
+ return this.a.b.gc();
+ };
+ _.Pc = function co() {
+ return this.a.b.Pc();
+ };
+ _.Qc = function eo(a) {
+ return knb(this.a, a);
+ };
+ _.Ib = function fo() {
+ return fcb(this.a.b);
+ };
+ mdb(Zhe, "ForwardingImmutableSet", 703);
+ bcb(1975, 1974, Die);
+ _.Bd = function go() {
+ return this.b;
+ };
+ _.Cd = function ho() {
+ return this.b;
+ };
+ _.Md = function io() {
+ return this.b;
+ };
+ _.Nc = function jo() {
+ return new Rub(this);
+ };
+ mdb(Zhe, "ForwardingSortedSet", 1975);
+ bcb(533, 1979, Aie, wo);
+ _.Ac = function Fo(a) {
+ Ld(this, a);
+ };
+ _.Cc = function Io() {
+ var a;
+ return a = this.d, new up(!a ? this.d = new ap(this) : a);
+ };
+ _.$b = function xo() {
+ ko(this);
+ };
+ _._b = function yo(a) {
+ return !!uo(this, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
+ };
+ _.uc = function zo(a) {
+ return lo(this, a);
+ };
+ _.kc = function Ao() {
+ return new Qo(this, this);
+ };
+ _.wc = function Bo(a) {
+ no(this, a);
+ };
+ _.xc = function Co(a) {
+ return oo(this, a);
+ };
+ _.ec = function Do() {
+ return new Bp(this);
+ };
+ _.zc = function Eo(a, b) {
+ return ro(this, a, b);
+ };
+ _.Bc = function Go(a) {
+ var b;
+ b = uo(this, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
+ if (!b) {
+ return null;
+ } else {
+ mo(this, b);
+ b.e = null;
+ b.c = null;
+ return b.i;
+ }
+ };
+ _.gc = function Ho() {
+ return this.i;
+ };
+ _.pd = function Jo() {
+ var a;
+ return a = this.d, new up(!a ? this.d = new ap(this) : a);
+ };
+ _.f = 0;
+ _.g = 0;
+ _.i = 0;
+ mdb(Zhe, "HashBiMap", 533);
+ bcb(534, 1, aie);
+ _.Nb = function Mo(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function No() {
+ return Ko(this);
+ };
+ _.Pb = function Oo() {
+ var a;
+ if (!Ko(this)) {
+ throw vbb(new utb());
+ }
+ a = this.c;
+ this.c = a.c;
+ this.f = a;
+ --this.d;
+ return this.Nd(a);
+ };
+ _.Qb = function Po() {
+ if (this.e.g != this.b) {
+ throw vbb(new Apb());
+ }
+ Vb(!!this.f);
+ mo(this.e, this.f);
+ this.b = this.e.g;
+ this.f = null;
+ };
+ _.b = 0;
+ _.d = 0;
+ _.f = null;
+ mdb(Zhe, "HashBiMap/Itr", 534);
+ bcb(1011, 534, aie, Qo);
+ _.Nd = function Ro(a) {
+ return new So(this, a);
+ };
+ mdb(Zhe, "HashBiMap/1", 1011);
+ bcb(1012, 345, kie, So);
+ _.cd = function To() {
+ return this.a.g;
+ };
+ _.dd = function Uo() {
+ return this.a.i;
+ };
+ _.ed = function Vo(a) {
+ var b, c, d;
+ c = this.a.i;
+ d = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
+ if (d == this.a.f && (PD(a) === PD(c) || a != null && pb(a, c))) {
+ return a;
+ }
+ Nb(!vo(this.b.a, a, d), a);
+ mo(this.b.a, this.a);
+ b = new $o(this.a.g, this.a.a, a, d);
+ po(this.b.a, b, this.a);
+ this.a.e = null;
+ this.a.c = null;
+ this.b.b = this.b.a.g;
+ this.b.f == this.a && (this.b.f = b);
+ this.a = b;
+ return c;
+ };
+ mdb(Zhe, "HashBiMap/1/MapEntry", 1012);
+ bcb(238, 345, { 345: 1, 238: 1, 3: 1, 42: 1 }, Wo);
+ _.cd = function Xo() {
+ return this.g;
+ };
+ _.dd = function Yo() {
+ return this.i;
+ };
+ _.ed = function Zo(a) {
+ throw vbb(new bgb());
+ };
+ mdb(Zhe, "ImmutableEntry", 238);
+ bcb(317, 238, { 345: 1, 317: 1, 238: 1, 3: 1, 42: 1 }, $o);
+ _.a = 0;
+ _.f = 0;
+ var GF = mdb(Zhe, "HashBiMap/BiEntry", 317);
+ bcb(610, 1979, Aie, ap);
+ _.Ac = function jp(a) {
+ Ld(this, a);
+ };
+ _.Cc = function mp() {
+ return new Bp(this.a);
+ };
+ _.$b = function bp() {
+ ko(this.a);
+ };
+ _._b = function cp(a) {
+ return lo(this.a, a);
+ };
+ _.kc = function dp() {
+ return new op(this, this.a);
+ };
+ _.wc = function ep(a) {
+ Qb(a);
+ no(this.a, new zp(a));
+ };
+ _.xc = function fp(a) {
+ return _o(this, a);
+ };
+ _.ec = function gp() {
+ return new up(this);
+ };
+ _.zc = function ip(a, b) {
+ return so(this.a, a, b, false);
+ };
+ _.Bc = function kp(a) {
+ var b;
+ b = vo(this.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
+ if (!b) {
+ return null;
+ } else {
+ mo(this.a, b);
+ b.e = null;
+ b.c = null;
+ return b.g;
+ }
+ };
+ _.gc = function lp() {
+ return this.a.i;
+ };
+ _.pd = function np() {
+ return new Bp(this.a);
+ };
+ mdb(Zhe, "HashBiMap/Inverse", 610);
+ bcb(1008, 534, aie, op);
+ _.Nd = function pp(a) {
+ return new qp(this, a);
+ };
+ mdb(Zhe, "HashBiMap/Inverse/1", 1008);
+ bcb(1009, 345, kie, qp);
+ _.cd = function rp() {
+ return this.a.i;
+ };
+ _.dd = function sp() {
+ return this.a.g;
+ };
+ _.ed = function tp(a) {
+ var b, c, d;
+ d = this.a.g;
+ b = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
+ if (b == this.a.a && (PD(a) === PD(d) || a != null && pb(a, d))) {
+ return a;
+ }
+ Nb(!uo(this.b.a.a, a, b), a);
+ mo(this.b.a.a, this.a);
+ c = new $o(a, b, this.a.i, this.a.f);
+ this.a = c;
+ po(this.b.a.a, c, null);
+ this.b.b = this.b.a.a.g;
+ return d;
+ };
+ mdb(Zhe, "HashBiMap/Inverse/1/InverseEntry", 1009);
+ bcb(611, 532, fie, up);
+ _.Kc = function vp() {
+ return new xp(this.a.a);
+ };
+ _.Mc = function wp(a) {
+ var b;
+ b = vo(this.a.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
+ if (!b) {
+ return false;
+ } else {
+ mo(this.a.a, b);
+ return true;
+ }
+ };
+ mdb(Zhe, "HashBiMap/Inverse/InverseKeySet", 611);
+ bcb(1007, 534, aie, xp);
+ _.Nd = function yp(a) {
+ return a.i;
+ };
+ mdb(Zhe, "HashBiMap/Inverse/InverseKeySet/1", 1007);
+ bcb(1010, 1, {}, zp);
+ _.Od = function Ap(a, b) {
+ hp(this.a, a, b);
+ };
+ mdb(Zhe, "HashBiMap/Inverse/lambda$0$Type", 1010);
+ bcb(609, 532, fie, Bp);
+ _.Kc = function Cp() {
+ return new Ep(this.a);
+ };
+ _.Mc = function Dp(a) {
+ var b;
+ b = uo(this.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
+ if (!b) {
+ return false;
+ } else {
+ mo(this.a, b);
+ b.e = null;
+ b.c = null;
+ return true;
+ }
+ };
+ mdb(Zhe, "HashBiMap/KeySet", 609);
+ bcb(1006, 534, aie, Ep);
+ _.Nd = function Fp(a) {
+ return a.g;
+ };
+ mdb(Zhe, "HashBiMap/KeySet/1", 1006);
+ bcb(1093, 619, _he);
+ mdb(Zhe, "HashMultimapGwtSerializationDependencies", 1093);
+ bcb(265, 1093, _he, Hp);
+ _.hc = function Ip() {
+ return new Uqb(Cv(this.a));
+ };
+ _.gd = function Jp() {
+ return new Uqb(Cv(this.a));
+ };
+ _.a = 2;
+ mdb(Zhe, "HashMultimap", 265);
+ bcb(1999, 152, yie);
+ _.Hc = function Mp(a) {
+ return this.Pd().Hc(a);
+ };
+ _.dc = function Np() {
+ return this.Pd().dc();
+ };
+ _.gc = function Op() {
+ return this.Pd().gc();
+ };
+ mdb(Zhe, "ImmutableAsList", 1999);
+ bcb(1931, 715, Aie);
+ _.Ld = function Qp() {
+ return Ql(), new oy(this.a);
+ };
+ _.Cc = function Rp() {
+ return Ql(), new oy(this.a);
+ };
+ _.pd = function Sp() {
+ return Ql(), new oy(this.a);
+ };
+ mdb(Zhe, "ImmutableBiMap", 1931);
+ bcb(1977, 1, {});
+ mdb(Zhe, "ImmutableCollection/Builder", 1977);
+ bcb(1022, 703, Cie, Tp);
+ mdb(Zhe, "ImmutableEnumSet", 1022);
+ bcb(969, 386, $he, Vp);
+ _.Xb = function Wp(a) {
+ return this.a.Xb(a);
+ };
+ mdb(Zhe, "ImmutableList/1", 969);
+ bcb(968, 1977, {}, Xp);
+ mdb(Zhe, "ImmutableList/Builder", 968);
+ bcb(614, 198, Yhe, Yp);
+ _.Ob = function Zp() {
+ return this.a.Ob();
+ };
+ _.Pb = function $p() {
+ return BD(this.a.Pb(), 42).cd();
+ };
+ mdb(Zhe, "ImmutableMap/1", 614);
+ bcb(1041, 1, {}, _p);
+ _.Kb = function aq(a) {
+ return BD(a, 42).cd();
+ };
+ mdb(Zhe, "ImmutableMap/2methodref$getKey$Type", 1041);
+ bcb(1040, 1, {}, cq);
+ mdb(Zhe, "ImmutableMap/Builder", 1040);
+ bcb(2e3, 1981, Cie);
+ _.Kc = function gq() {
+ var a;
+ return a = Wm(this.a).Ed(), new Yp(a);
+ };
+ _.Dd = function dq() {
+ return new Fq(this);
+ };
+ _.Jc = function eq(a) {
+ var b, c;
+ Qb(a);
+ c = this.gc();
+ for (b = 0; b < c; b++) {
+ a.td(BD(Rl(Wm(this.a)).Xb(b), 42).cd());
+ }
+ };
+ _.Ed = function fq() {
+ var a;
+ return (a = this.c, !a ? this.c = new Fq(this) : a).Ed();
+ };
+ _.Nc = function hq() {
+ return Zj(this.gc(), 1296, new Dq(this));
+ };
+ mdb(Zhe, "IndexedImmutableSet", 2e3);
+ bcb(1180, 2e3, Cie, jq);
+ _.Kc = function nq() {
+ var a;
+ return a = Wm(this.a).Ed(), new Yp(a);
+ };
+ _.Hc = function kq(a) {
+ return this.a._b(a);
+ };
+ _.Jc = function lq(a) {
+ Qb(a);
+ stb(this.a, new qq(a));
+ };
+ _.Ed = function mq() {
+ var a;
+ return a = Wm(this.a).Ed(), new Yp(a);
+ };
+ _.gc = function oq() {
+ return this.a.gc();
+ };
+ _.Nc = function pq() {
+ return $j(Wm(this.a).Nc(), new _p());
+ };
+ mdb(Zhe, "ImmutableMapKeySet", 1180);
+ bcb(1181, 1, {}, qq);
+ _.Od = function rq(a, b) {
+ Ql();
+ this.a.td(a);
+ };
+ mdb(Zhe, "ImmutableMapKeySet/lambda$0$Type", 1181);
+ bcb(1178, 1980, xie, sq);
+ _.Kc = function vq() {
+ return new Aq(this);
+ };
+ _.Hc = function tq(a) {
+ return a != null && jr(new Aq(this), a);
+ };
+ _.Ed = function uq() {
+ return new Aq(this);
+ };
+ _.gc = function wq() {
+ return this.a.gc();
+ };
+ _.Nc = function xq() {
+ return $j(Wm(this.a).Nc(), new yq());
+ };
+ mdb(Zhe, "ImmutableMapValues", 1178);
+ bcb(1179, 1, {}, yq);
+ _.Kb = function zq(a) {
+ return BD(a, 42).dd();
+ };
+ mdb(Zhe, "ImmutableMapValues/0methodref$getValue$Type", 1179);
+ bcb(626, 198, Yhe, Aq);
+ _.Ob = function Bq() {
+ return this.a.Ob();
+ };
+ _.Pb = function Cq() {
+ return BD(this.a.Pb(), 42).dd();
+ };
+ mdb(Zhe, "ImmutableMapValues/1", 626);
+ bcb(1182, 1, {}, Dq);
+ _.ld = function Eq(a) {
+ return iq(this.a, a);
+ };
+ mdb(Zhe, "IndexedImmutableSet/0methodref$get$Type", 1182);
+ bcb(752, 1999, yie, Fq);
+ _.Pd = function Gq() {
+ return this.a;
+ };
+ _.Xb = function Hq(a) {
+ return iq(this.a, a);
+ };
+ _.gc = function Iq() {
+ return this.a.a.gc();
+ };
+ mdb(Zhe, "IndexedImmutableSet/1", 752);
+ bcb(44, 1, {}, Sq);
+ _.Kb = function Tq(a) {
+ return BD(a, 20).Kc();
+ };
+ _.Fb = function Uq(a) {
+ return this === a;
+ };
+ mdb(Zhe, "Iterables/10", 44);
+ bcb(1042, 537, vie, Wq);
+ _.Jc = function Xq(a) {
+ Qb(a);
+ this.b.Jc(new $q(this.a, a));
+ };
+ _.Kc = function Yq() {
+ return Vq(this);
+ };
+ mdb(Zhe, "Iterables/4", 1042);
+ bcb(1043, 1, qie, $q);
+ _.td = function _q(a) {
+ Zq(this.b, this.a, a);
+ };
+ mdb(Zhe, "Iterables/4/lambda$0$Type", 1043);
+ bcb(1044, 537, vie, ar);
+ _.Jc = function br(a) {
+ Qb(a);
+ reb(this.a, new dr(a, this.b));
+ };
+ _.Kc = function cr() {
+ return ur(new Fyd(this.a), this.b);
+ };
+ mdb(Zhe, "Iterables/5", 1044);
+ bcb(1045, 1, qie, dr);
+ _.td = function er(a) {
+ this.a.td(Gfd(a));
+ };
+ mdb(Zhe, "Iterables/5/lambda$0$Type", 1045);
+ bcb(1071, 198, Yhe, wr);
+ _.Ob = function xr() {
+ return this.a.Ob();
+ };
+ _.Pb = function yr() {
+ return this.a.Pb();
+ };
+ mdb(Zhe, "Iterators/1", 1071);
+ bcb(1072, 699, Yhe, zr);
+ _.Yb = function Ar() {
+ var a;
+ while (this.b.Ob()) {
+ a = this.b.Pb();
+ if (this.a.Lb(a)) {
+ return a;
+ }
+ }
+ return this.e = 2, null;
+ };
+ mdb(Zhe, "Iterators/5", 1072);
+ bcb(487, 1, aie);
+ _.Nb = function Cr(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function Dr() {
+ return this.b.Ob();
+ };
+ _.Pb = function Er() {
+ return this.Qd(this.b.Pb());
+ };
+ _.Qb = function Fr() {
+ this.b.Qb();
+ };
+ mdb(Zhe, "TransformedIterator", 487);
+ bcb(1073, 487, aie, Gr);
+ _.Qd = function Hr(a) {
+ return this.a.Kb(a);
+ };
+ mdb(Zhe, "Iterators/6", 1073);
+ bcb(717, 198, Yhe, Ir);
+ _.Ob = function Jr() {
+ return !this.a;
+ };
+ _.Pb = function Kr() {
+ if (this.a) {
+ throw vbb(new utb());
+ }
+ this.a = true;
+ return this.b;
+ };
+ _.a = false;
+ mdb(Zhe, "Iterators/9", 717);
+ bcb(1070, 386, $he, Nr);
+ _.Xb = function Or(a) {
+ return this.a[this.b + a];
+ };
+ _.b = 0;
+ var Lr;
+ mdb(Zhe, "Iterators/ArrayItr", 1070);
+ bcb(39, 1, { 39: 1, 47: 1 }, Sr);
+ _.Nb = function Tr(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function Ur() {
+ return Qr(this);
+ };
+ _.Pb = function Vr() {
+ return Rr(this);
+ };
+ _.Qb = function Wr() {
+ Vb(!!this.c);
+ this.c.Qb();
+ this.c = null;
+ };
+ mdb(Zhe, "Iterators/ConcatenatedIterator", 39);
+ bcb(22, 1, { 3: 1, 35: 1, 22: 1 });
+ _.wd = function _r(a) {
+ return Xr(this, BD(a, 22));
+ };
+ _.Fb = function bs(a) {
+ return this === a;
+ };
+ _.Hb = function cs() {
+ return FCb(this);
+ };
+ _.Ib = function ds() {
+ return Zr(this);
+ };
+ _.g = 0;
+ var CI = mdb(Phe, "Enum", 22);
+ bcb(538, 22, { 538: 1, 3: 1, 35: 1, 22: 1, 47: 1 }, is);
+ _.Nb = function js(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function ks() {
+ return false;
+ };
+ _.Pb = function ls() {
+ throw vbb(new utb());
+ };
+ _.Qb = function ms() {
+ Vb(false);
+ };
+ var gs;
+ var yG = ndb(Zhe, "Iterators/EmptyModifiableIterator", 538, CI, os, ns);
+ var ps;
+ bcb(1834, 619, _he);
+ mdb(Zhe, "LinkedHashMultimapGwtSerializationDependencies", 1834);
+ bcb(1835, 1834, _he, ss);
+ _.hc = function us() {
+ return new Asb(Cv(this.b));
+ };
+ _.$b = function ts() {
+ Nc(this);
+ As(this.a, this.a);
+ };
+ _.gd = function vs() {
+ return new Asb(Cv(this.b));
+ };
+ _.ic = function ws(a) {
+ return new Ss(this, a, this.b);
+ };
+ _.kc = function xs() {
+ return new Hs(this);
+ };
+ _.lc = function ys() {
+ var a;
+ return new Kub((a = this.g, BD(!a ? this.g = new ph(this) : a, 21)), 17);
+ };
+ _.ec = function zs() {
+ var a;
+ return a = this.i, !a ? this.i = new zf(this, this.c) : a;
+ };
+ _.nc = function Cs() {
+ return new Ov(new Hs(this));
+ };
+ _.oc = function Ds() {
+ var a;
+ return $j(new Kub((a = this.g, BD(!a ? this.g = new ph(this) : a, 21)), 17), new Es());
+ };
+ _.b = 2;
+ mdb(Zhe, "LinkedHashMultimap", 1835);
+ bcb(1838, 1, {}, Es);
+ _.Kb = function Fs(a) {
+ return BD(a, 42).dd();
+ };
+ mdb(Zhe, "LinkedHashMultimap/0methodref$getValue$Type", 1838);
+ bcb(824, 1, aie, Hs);
+ _.Nb = function Is(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function Ks() {
+ return Gs(this);
+ };
+ _.Ob = function Js() {
+ return this.a != this.b.a;
+ };
+ _.Qb = function Ls() {
+ Vb(!!this.c);
+ Gc(this.b, this.c.g, this.c.i);
+ this.c = null;
+ };
+ mdb(Zhe, "LinkedHashMultimap/1", 824);
+ bcb(330, 238, { 345: 1, 238: 1, 330: 1, 2020: 1, 3: 1, 42: 1 }, Ms);
+ _.Rd = function Ns() {
+ return this.f;
+ };
+ _.Sd = function Os(a) {
+ this.c = a;
+ };
+ _.Td = function Ps(a) {
+ this.f = a;
+ };
+ _.d = 0;
+ var BG = mdb(Zhe, "LinkedHashMultimap/ValueEntry", 330);
+ bcb(1836, 1970, { 2020: 1, 20: 1, 28: 1, 14: 1, 21: 1 }, Ss);
+ _.Fc = function Ts(a) {
+ var b, c, d, e, f;
+ f = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
+ b = f & this.b.length - 1;
+ e = this.b[b];
+ for (c = e; c; c = c.a) {
+ if (c.d == f && Hb(c.i, a)) {
+ return false;
+ }
+ }
+ d = new Ms(this.c, a, f, e);
+ Bs(this.d, d);
+ d.f = this;
+ this.d = d;
+ As(this.g.a.b, d);
+ As(d, this.g.a);
+ this.b[b] = d;
+ ++this.f;
+ ++this.e;
+ Qs(this);
+ return true;
+ };
+ _.$b = function Us() {
+ var a, b;
+ Alb(this.b, null);
+ this.f = 0;
+ for (a = this.a; a != this; a = a.Rd()) {
+ b = BD(a, 330);
+ As(b.b, b.e);
+ }
+ this.a = this;
+ this.d = this;
+ ++this.e;
+ };
+ _.Hc = function Vs(a) {
+ var b, c;
+ c = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
+ for (b = this.b[c & this.b.length - 1]; b; b = b.a) {
+ if (b.d == c && Hb(b.i, a)) {
+ return true;
+ }
+ }
+ return false;
+ };
+ _.Jc = function Ws(a) {
+ var b;
+ Qb(a);
+ for (b = this.a; b != this; b = b.Rd()) {
+ a.td(BD(b, 330).i);
+ }
+ };
+ _.Rd = function Xs() {
+ return this.a;
+ };
+ _.Kc = function Ys() {
+ return new ct(this);
+ };
+ _.Mc = function Zs(a) {
+ return Rs(this, a);
+ };
+ _.Sd = function $s(a) {
+ this.d = a;
+ };
+ _.Td = function _s(a) {
+ this.a = a;
+ };
+ _.gc = function at() {
+ return this.f;
+ };
+ _.e = 0;
+ _.f = 0;
+ mdb(Zhe, "LinkedHashMultimap/ValueSet", 1836);
+ bcb(1837, 1, aie, ct);
+ _.Nb = function dt(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function et() {
+ return bt(this), this.b != this.c;
+ };
+ _.Pb = function ft() {
+ var a, b;
+ bt(this);
+ if (this.b == this.c) {
+ throw vbb(new utb());
+ }
+ a = BD(this.b, 330);
+ b = a.i;
+ this.d = a;
+ this.b = a.f;
+ return b;
+ };
+ _.Qb = function gt() {
+ bt(this);
+ Vb(!!this.d);
+ Rs(this.c, this.d.i);
+ this.a = this.c.e;
+ this.d = null;
+ };
+ _.a = 0;
+ mdb(Zhe, "LinkedHashMultimap/ValueSet/1", 1837);
+ bcb(766, 1986, _he, mt);
+ _.Zb = function nt() {
+ var a;
+ return a = this.f, !a ? this.f = new jw(this) : a;
+ };
+ _.Fb = function tt(a) {
+ return hw(this, a);
+ };
+ _.cc = function ut(a) {
+ return new bu(this, a);
+ };
+ _.fc = function xt(a) {
+ return kt(this, a);
+ };
+ _.$b = function pt() {
+ it(this);
+ };
+ _._b = function qt(a) {
+ return jt(this, a);
+ };
+ _.ac = function rt() {
+ return new jw(this);
+ };
+ _.bc = function st() {
+ return new eu(this);
+ };
+ _.qc = function vt(a) {
+ return new bu(this, a);
+ };
+ _.dc = function wt() {
+ return !this.a;
+ };
+ _.rc = function yt(a) {
+ return kt(this, a);
+ };
+ _.gc = function zt() {
+ return this.d;
+ };
+ _.c = 0;
+ _.d = 0;
+ mdb(Zhe, "LinkedListMultimap", 766);
+ bcb(52, 28, Lie);
+ _.ad = function Pt(a) {
+ ktb(this, a);
+ };
+ _.Nc = function Qt() {
+ return new Kub(this, 16);
+ };
+ _.Vc = function Ct(a, b) {
+ throw vbb(new cgb("Add not supported on this list"));
+ };
+ _.Fc = function Dt(a) {
+ this.Vc(this.gc(), a);
+ return true;
+ };
+ _.Wc = function Et(a, b) {
+ var c, d, e;
+ uCb(b);
+ c = false;
+ for (e = b.Kc(); e.Ob(); ) {
+ d = e.Pb();
+ this.Vc(a++, d);
+ c = true;
+ }
+ return c;
+ };
+ _.$b = function Ft() {
+ this.Ud(0, this.gc());
+ };
+ _.Fb = function Gt(a) {
+ return At(this, a);
+ };
+ _.Hb = function Ht() {
+ return qmb(this);
+ };
+ _.Xc = function It(a) {
+ return Bt(this, a);
+ };
+ _.Kc = function Jt() {
+ return new vib(this);
+ };
+ _.Yc = function Kt() {
+ return this.Zc(0);
+ };
+ _.Zc = function Lt(a) {
+ return new Bib(this, a);
+ };
+ _.$c = function Mt(a) {
+ throw vbb(new cgb("Remove not supported on this list"));
+ };
+ _.Ud = function Nt(a, b) {
+ var c, d;
+ d = this.Zc(a);
+ for (c = a; c < b; ++c) {
+ d.Pb();
+ d.Qb();
+ }
+ };
+ _._c = function Ot(a, b) {
+ throw vbb(new cgb("Set not supported on this list"));
+ };
+ _.bd = function Rt(a, b) {
+ return new Jib(this, a, b);
+ };
+ _.j = 0;
+ mdb(bie, "AbstractList", 52);
+ bcb(1964, 52, Lie);
+ _.Vc = function Wt(a, b) {
+ St(this, a, b);
+ };
+ _.Wc = function Xt(a, b) {
+ return Tt(this, a, b);
+ };
+ _.Xb = function Yt(a) {
+ return Ut(this, a);
+ };
+ _.Kc = function Zt() {
+ return this.Zc(0);
+ };
+ _.$c = function $t(a) {
+ return Vt(this, a);
+ };
+ _._c = function _t(b, c) {
+ var d, e;
+ d = this.Zc(b);
+ try {
+ e = d.Pb();
+ d.Wb(c);
+ return e;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 109)) {
+ throw vbb(new qcb("Can't set element " + b));
+ } else
+ throw vbb(a);
+ }
+ };
+ mdb(bie, "AbstractSequentialList", 1964);
+ bcb(636, 1964, Lie, bu);
+ _.Zc = function cu(a) {
+ return au(this, a);
+ };
+ _.gc = function du() {
+ var a;
+ a = BD(Ohb(this.a.b, this.b), 283);
+ return !a ? 0 : a.a;
+ };
+ mdb(Zhe, "LinkedListMultimap/1", 636);
+ bcb(1297, 1970, fie, eu);
+ _.Hc = function fu(a) {
+ return jt(this.a, a);
+ };
+ _.Kc = function gu() {
+ return new ku(this.a);
+ };
+ _.Mc = function hu(a) {
+ return !kt(this.a, a).a.dc();
+ };
+ _.gc = function iu() {
+ return Vhb(this.a.b);
+ };
+ mdb(Zhe, "LinkedListMultimap/1KeySetImpl", 1297);
+ bcb(1296, 1, aie, ku);
+ _.Nb = function lu(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function mu() {
+ ju(this);
+ return !!this.c;
+ };
+ _.Pb = function nu() {
+ ju(this);
+ ot(this.c);
+ this.a = this.c;
+ Qqb(this.d, this.a.a);
+ do {
+ this.c = this.c.b;
+ } while (!!this.c && !Qqb(this.d, this.c.a));
+ return this.a.a;
+ };
+ _.Qb = function ou() {
+ ju(this);
+ Vb(!!this.a);
+ ir(new wu(this.e, this.a.a));
+ this.a = null;
+ this.b = this.e.c;
+ };
+ _.b = 0;
+ mdb(Zhe, "LinkedListMultimap/DistinctKeyIterator", 1296);
+ bcb(283, 1, { 283: 1 }, pu);
+ _.a = 0;
+ mdb(Zhe, "LinkedListMultimap/KeyList", 283);
+ bcb(1295, 345, kie, qu);
+ _.cd = function ru() {
+ return this.a;
+ };
+ _.dd = function su() {
+ return this.f;
+ };
+ _.ed = function tu(a) {
+ var b;
+ b = this.f;
+ this.f = a;
+ return b;
+ };
+ mdb(Zhe, "LinkedListMultimap/Node", 1295);
+ bcb(560, 1, jie, wu, xu);
+ _.Nb = function zu(a) {
+ Rrb(this, a);
+ };
+ _.Rb = function yu(a) {
+ this.e = ht(this.f, this.b, a, this.c);
+ ++this.d;
+ this.a = null;
+ };
+ _.Ob = function Au() {
+ return !!this.c;
+ };
+ _.Sb = function Bu() {
+ return !!this.e;
+ };
+ _.Pb = function Cu() {
+ return uu(this);
+ };
+ _.Tb = function Du() {
+ return this.d;
+ };
+ _.Ub = function Eu() {
+ return vu(this);
+ };
+ _.Vb = function Fu() {
+ return this.d - 1;
+ };
+ _.Qb = function Gu() {
+ Vb(!!this.a);
+ if (this.a != this.c) {
+ this.e = this.a.e;
+ --this.d;
+ } else {
+ this.c = this.a.c;
+ }
+ lt(this.f, this.a);
+ this.a = null;
+ };
+ _.Wb = function Hu(a) {
+ Ub(!!this.a);
+ this.a.f = a;
+ };
+ _.d = 0;
+ mdb(Zhe, "LinkedListMultimap/ValueForKeyIterator", 560);
+ bcb(1018, 52, Lie);
+ _.Vc = function Tu(a, b) {
+ this.a.Vc(a, b);
+ };
+ _.Wc = function Uu(a, b) {
+ return this.a.Wc(a, b);
+ };
+ _.Hc = function Vu(a) {
+ return this.a.Hc(a);
+ };
+ _.Xb = function Wu(a) {
+ return this.a.Xb(a);
+ };
+ _.$c = function Xu(a) {
+ return this.a.$c(a);
+ };
+ _._c = function Yu(a, b) {
+ return this.a._c(a, b);
+ };
+ _.gc = function Zu() {
+ return this.a.gc();
+ };
+ mdb(Zhe, "Lists/AbstractListWrapper", 1018);
+ bcb(1019, 1018, Nie);
+ mdb(Zhe, "Lists/RandomAccessListWrapper", 1019);
+ bcb(1021, 1019, Nie, $u);
+ _.Zc = function _u(a) {
+ return this.a.Zc(a);
+ };
+ mdb(Zhe, "Lists/1", 1021);
+ bcb(131, 52, { 131: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1 }, dv);
+ _.Vc = function ev(a, b) {
+ this.a.Vc(cv(this, a), b);
+ };
+ _.$b = function fv() {
+ this.a.$b();
+ };
+ _.Xb = function gv(a) {
+ return this.a.Xb(bv(this, a));
+ };
+ _.Kc = function hv() {
+ return av(this, 0);
+ };
+ _.Zc = function iv(a) {
+ return av(this, a);
+ };
+ _.$c = function jv(a) {
+ return this.a.$c(bv(this, a));
+ };
+ _.Ud = function kv(a, b) {
+ (Tb(a, b, this.a.gc()), Su(this.a.bd(cv(this, b), cv(this, a)))).$b();
+ };
+ _._c = function lv(a, b) {
+ return this.a._c(bv(this, a), b);
+ };
+ _.gc = function mv() {
+ return this.a.gc();
+ };
+ _.bd = function nv(a, b) {
+ return Tb(a, b, this.a.gc()), Su(this.a.bd(cv(this, b), cv(this, a)));
+ };
+ mdb(Zhe, "Lists/ReverseList", 131);
+ bcb(280, 131, { 131: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1 }, ov);
+ mdb(Zhe, "Lists/RandomAccessReverseList", 280);
+ bcb(1020, 1, jie, qv);
+ _.Nb = function sv(a) {
+ Rrb(this, a);
+ };
+ _.Rb = function rv(a) {
+ this.c.Rb(a);
+ this.c.Ub();
+ this.a = false;
+ };
+ _.Ob = function tv() {
+ return this.c.Sb();
+ };
+ _.Sb = function uv() {
+ return this.c.Ob();
+ };
+ _.Pb = function vv() {
+ return pv(this);
+ };
+ _.Tb = function wv() {
+ return cv(this.b, this.c.Tb());
+ };
+ _.Ub = function xv() {
+ if (!this.c.Ob()) {
+ throw vbb(new utb());
+ }
+ this.a = true;
+ return this.c.Pb();
+ };
+ _.Vb = function yv() {
+ return cv(this.b, this.c.Tb()) - 1;
+ };
+ _.Qb = function zv() {
+ Vb(this.a);
+ this.c.Qb();
+ this.a = false;
+ };
+ _.Wb = function Av(a) {
+ Ub(this.a);
+ this.c.Wb(a);
+ };
+ _.a = false;
+ mdb(Zhe, "Lists/ReverseList/1", 1020);
+ bcb(432, 487, aie, Mv);
+ _.Qd = function Nv(a) {
+ return Lv(a);
+ };
+ mdb(Zhe, "Maps/1", 432);
+ bcb(698, 487, aie, Ov);
+ _.Qd = function Pv(a) {
+ return BD(a, 42).dd();
+ };
+ mdb(Zhe, "Maps/2", 698);
+ bcb(962, 487, aie, Qv);
+ _.Qd = function Rv(a) {
+ return new Wo(a, ww(this.a, a));
+ };
+ mdb(Zhe, "Maps/3", 962);
+ bcb(959, 1971, fie, Sv);
+ _.Jc = function Tv(a) {
+ mj(this.a, a);
+ };
+ _.Kc = function Uv() {
+ return this.a.kc();
+ };
+ _.Rc = function Vv() {
+ return this.a;
+ };
+ _.Nc = function Wv() {
+ return this.a.lc();
+ };
+ mdb(Zhe, "Maps/IteratorBasedAbstractMap/1", 959);
+ bcb(960, 1, {}, Xv);
+ _.Od = function Yv(a, b) {
+ this.a.td(a);
+ };
+ mdb(Zhe, "Maps/KeySet/lambda$0$Type", 960);
+ bcb(958, 28, die, Zv);
+ _.$b = function $v() {
+ this.a.$b();
+ };
+ _.Hc = function _v(a) {
+ return this.a.uc(a);
+ };
+ _.Jc = function aw(a) {
+ Qb(a);
+ this.a.wc(new fw(a));
+ };
+ _.dc = function bw() {
+ return this.a.dc();
+ };
+ _.Kc = function cw() {
+ return new Ov(this.a.vc().Kc());
+ };
+ _.Mc = function dw(b) {
+ var c, d;
+ try {
+ return ze(this, b, true);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 41)) {
+ for (d = this.a.vc().Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 42);
+ if (Hb(b, c.dd())) {
+ this.a.Bc(c.cd());
+ return true;
+ }
+ }
+ return false;
+ } else
+ throw vbb(a);
+ }
+ };
+ _.gc = function ew() {
+ return this.a.gc();
+ };
+ mdb(Zhe, "Maps/Values", 958);
+ bcb(961, 1, {}, fw);
+ _.Od = function gw(a, b) {
+ this.a.td(b);
+ };
+ mdb(Zhe, "Maps/Values/lambda$0$Type", 961);
+ bcb(736, 1987, cie, jw);
+ _.xc = function nw(a) {
+ return this.a._b(a) ? this.a.cc(a) : null;
+ };
+ _.Bc = function qw(a) {
+ return this.a._b(a) ? this.a.fc(a) : null;
+ };
+ _.$b = function kw() {
+ this.a.$b();
+ };
+ _._b = function lw(a) {
+ return this.a._b(a);
+ };
+ _.Ec = function mw() {
+ return new sw(this);
+ };
+ _.Dc = function() {
+ return this.Ec();
+ };
+ _.dc = function ow() {
+ return this.a.dc();
+ };
+ _.ec = function pw() {
+ return this.a.ec();
+ };
+ _.gc = function rw() {
+ return this.a.ec().gc();
+ };
+ mdb(Zhe, "Multimaps/AsMap", 736);
+ bcb(1104, 1971, fie, sw);
+ _.Kc = function tw() {
+ return Bv(this.a.a.ec(), new xw(this));
+ };
+ _.Rc = function uw() {
+ return this.a;
+ };
+ _.Mc = function vw(a) {
+ var b;
+ if (!Ze(this, a)) {
+ return false;
+ }
+ b = BD(a, 42);
+ iw(this.a, b.cd());
+ return true;
+ };
+ mdb(Zhe, "Multimaps/AsMap/EntrySet", 1104);
+ bcb(1108, 1, {}, xw);
+ _.Kb = function yw(a) {
+ return ww(this, a);
+ };
+ _.Fb = function zw(a) {
+ return this === a;
+ };
+ mdb(Zhe, "Multimaps/AsMap/EntrySet/1", 1108);
+ bcb(543, 1989, { 543: 1, 835: 1, 20: 1, 28: 1, 14: 1 }, Cw);
+ _.$b = function Dw() {
+ Nc(this.a);
+ };
+ _.Hc = function Ew(a) {
+ return Oc(this.a, a);
+ };
+ _.Jc = function Fw(a) {
+ Qb(a);
+ reb(Pc(this.a), new Rw(a));
+ };
+ _.Kc = function Gw() {
+ return new Mv(Pc(this.a).a.kc());
+ };
+ _.gc = function Hw() {
+ return this.a.d;
+ };
+ _.Nc = function Iw() {
+ return $j(Pc(this.a).Nc(), new Jw());
+ };
+ mdb(Zhe, "Multimaps/Keys", 543);
+ bcb(1106, 1, {}, Jw);
+ _.Kb = function Kw(a) {
+ return BD(a, 42).cd();
+ };
+ mdb(Zhe, "Multimaps/Keys/0methodref$getKey$Type", 1106);
+ bcb(1105, 487, aie, Lw);
+ _.Qd = function Mw(a) {
+ return new Qw(BD(a, 42));
+ };
+ mdb(Zhe, "Multimaps/Keys/1", 1105);
+ bcb(1990, 1, { 416: 1 });
+ _.Fb = function Nw(a) {
+ var b;
+ if (JD(a, 492)) {
+ b = BD(a, 416);
+ return BD(this.a.dd(), 14).gc() == BD(b.a.dd(), 14).gc() && Hb(this.a.cd(), b.a.cd());
+ }
+ return false;
+ };
+ _.Hb = function Ow() {
+ var a;
+ a = this.a.cd();
+ return (a == null ? 0 : tb(a)) ^ BD(this.a.dd(), 14).gc();
+ };
+ _.Ib = function Pw() {
+ var a, b;
+ b = xfb(this.a.cd());
+ a = BD(this.a.dd(), 14).gc();
+ return a == 1 ? b : b + " x " + a;
+ };
+ mdb(Zhe, "Multisets/AbstractEntry", 1990);
+ bcb(492, 1990, { 492: 1, 416: 1 }, Qw);
+ mdb(Zhe, "Multimaps/Keys/1/1", 492);
+ bcb(1107, 1, qie, Rw);
+ _.td = function Sw(a) {
+ this.a.td(BD(a, 42).cd());
+ };
+ mdb(Zhe, "Multimaps/Keys/lambda$1$Type", 1107);
+ bcb(1110, 1, qie, Vw);
+ _.td = function Ww(a) {
+ Tw(BD(a, 416));
+ };
+ mdb(Zhe, "Multiset/lambda$0$Type", 1110);
+ bcb(737, 1, qie, Xw);
+ _.td = function Yw(a) {
+ Uw(this.a, BD(a, 416));
+ };
+ mdb(Zhe, "Multiset/lambda$1$Type", 737);
+ bcb(1111, 1, {}, bx);
+ mdb(Zhe, "Multisets/0methodref$add$Type", 1111);
+ bcb(738, 1, {}, cx);
+ _.Kb = function dx(a) {
+ return _w(BD(a, 416));
+ };
+ mdb(Zhe, "Multisets/lambda$3$Type", 738);
+ bcb(2008, 1, Qhe);
+ mdb(Zhe, "RangeGwtSerializationDependencies", 2008);
+ bcb(514, 2008, { 169: 1, 514: 1, 3: 1, 45: 1 }, gx);
+ _.Lb = function hx(a) {
+ return fx(this, BD(a, 35));
+ };
+ _.Mb = function lx(a) {
+ return fx(this, BD(a, 35));
+ };
+ _.Fb = function jx(a) {
+ var b;
+ if (JD(a, 514)) {
+ b = BD(a, 514);
+ return Ek(this.a, b.a) && Ek(this.b, b.b);
+ }
+ return false;
+ };
+ _.Hb = function kx() {
+ return this.a.Hb() * 31 + this.b.Hb();
+ };
+ _.Ib = function mx() {
+ return nx(this.a, this.b);
+ };
+ mdb(Zhe, "Range", 514);
+ bcb(778, 1999, yie, px);
+ _.Zc = function tx(a) {
+ return jm(this.b, a);
+ };
+ _.Pd = function qx() {
+ return this.a;
+ };
+ _.Xb = function rx(a) {
+ return Em(this.b, a);
+ };
+ _.Fd = function sx(a) {
+ return jm(this.b, a);
+ };
+ mdb(Zhe, "RegularImmutableAsList", 778);
+ bcb(646, 2006, yie, ux);
+ _.Hd = function vx() {
+ return this.a;
+ };
+ mdb(Zhe, "RegularImmutableList", 646);
+ bcb(616, 715, Aie, wx);
+ mdb(Zhe, "RegularImmutableMap", 616);
+ bcb(716, 703, Cie, zx);
+ var xx;
+ mdb(Zhe, "RegularImmutableSet", 716);
+ bcb(1976, eie, fie);
+ _.Kc = function Mx() {
+ return new Xx(this.a, this.b);
+ };
+ _.Fc = function Jx(a) {
+ throw vbb(new bgb());
+ };
+ _.Gc = function Kx(a) {
+ throw vbb(new bgb());
+ };
+ _.$b = function Lx() {
+ throw vbb(new bgb());
+ };
+ _.Mc = function Nx(a) {
+ throw vbb(new bgb());
+ };
+ mdb(Zhe, "Sets/SetView", 1976);
+ bcb(963, 1976, fie, Px);
+ _.Kc = function Tx() {
+ return new Xx(this.a, this.b);
+ };
+ _.Hc = function Qx(a) {
+ return tqb(this.a, a) && this.b.Hc(a);
+ };
+ _.Ic = function Rx(a) {
+ return Be(this.a, a) && this.b.Ic(a);
+ };
+ _.dc = function Sx() {
+ return omb(this.b, this.a);
+ };
+ _.Lc = function Ux() {
+ return JAb(new YAb(null, new Kub(this.a, 1)), new _x(this.b));
+ };
+ _.gc = function Vx() {
+ return Ox(this);
+ };
+ _.Oc = function Wx() {
+ return JAb(new YAb(null, new Kub(this.a, 1)), new Zx(this.b));
+ };
+ mdb(Zhe, "Sets/2", 963);
+ bcb(700, 699, Yhe, Xx);
+ _.Yb = function Yx() {
+ var a;
+ while (Eqb(this.a)) {
+ a = Fqb(this.a);
+ if (this.c.Hc(a)) {
+ return a;
+ }
+ }
+ return this.e = 2, null;
+ };
+ mdb(Zhe, "Sets/2/1", 700);
+ bcb(964, 1, Oie, Zx);
+ _.Mb = function $x(a) {
+ return this.a.Hc(a);
+ };
+ mdb(Zhe, "Sets/2/4methodref$contains$Type", 964);
+ bcb(965, 1, Oie, _x);
+ _.Mb = function ay(a) {
+ return this.a.Hc(a);
+ };
+ mdb(Zhe, "Sets/2/5methodref$contains$Type", 965);
+ bcb(607, 1975, { 607: 1, 3: 1, 20: 1, 14: 1, 271: 1, 21: 1, 84: 1 }, by);
+ _.Bd = function cy() {
+ return this.b;
+ };
+ _.Cd = function dy() {
+ return this.b;
+ };
+ _.Md = function ey() {
+ return this.b;
+ };
+ _.Jc = function fy(a) {
+ this.a.Jc(a);
+ };
+ _.Lc = function gy() {
+ return this.a.Lc();
+ };
+ _.Oc = function hy() {
+ return this.a.Oc();
+ };
+ mdb(Zhe, "Sets/UnmodifiableNavigableSet", 607);
+ bcb(1932, 1931, Aie, iy);
+ _.Ld = function jy() {
+ return Ql(), new oy(this.a);
+ };
+ _.Cc = function ky() {
+ return Ql(), new oy(this.a);
+ };
+ _.pd = function ly() {
+ return Ql(), new oy(this.a);
+ };
+ mdb(Zhe, "SingletonImmutableBiMap", 1932);
+ bcb(647, 2006, yie, my);
+ _.Hd = function ny() {
+ return this.a;
+ };
+ mdb(Zhe, "SingletonImmutableList", 647);
+ bcb(350, 1981, Cie, oy);
+ _.Kc = function ry() {
+ return new Ir(this.a);
+ };
+ _.Hc = function py(a) {
+ return pb(this.a, a);
+ };
+ _.Ed = function qy() {
+ return new Ir(this.a);
+ };
+ _.gc = function sy() {
+ return 1;
+ };
+ mdb(Zhe, "SingletonImmutableSet", 350);
+ bcb(1115, 1, {}, vy);
+ _.Kb = function wy(a) {
+ return BD(a, 164);
+ };
+ mdb(Zhe, "Streams/lambda$0$Type", 1115);
+ bcb(1116, 1, Pie, xy);
+ _.Vd = function yy() {
+ uy(this.a);
+ };
+ mdb(Zhe, "Streams/lambda$1$Type", 1116);
+ bcb(1659, 1658, _he, Ay);
+ _.Zb = function By() {
+ var a;
+ return a = this.f, BD(BD(!a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a, 161), 171);
+ };
+ _.hc = function Ey() {
+ return new Hxb(this.b);
+ };
+ _.gd = function Fy() {
+ return new Hxb(this.b);
+ };
+ _.ec = function Hy() {
+ var a;
+ return a = this.i, BD(BD(!a ? this.i = JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c) : a, 84), 271);
+ };
+ _.ac = function Dy() {
+ return JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c);
+ };
+ _.ic = function Gy(a) {
+ a == null && this.a.ue(a, a);
+ return new Hxb(this.b);
+ };
+ mdb(Zhe, "TreeMultimap", 1659);
+ bcb(78, 1, { 3: 1, 78: 1 });
+ _.Wd = function $y(a) {
+ return new Error(a);
+ };
+ _.Xd = function az() {
+ return this.e;
+ };
+ _.Yd = function bz() {
+ return XAb(NAb(Plb((this.k == null && (this.k = KC(_I, nie, 78, 0, 0, 1)), this.k)), new _fb()));
+ };
+ _.Zd = function cz() {
+ return this.f;
+ };
+ _.$d = function dz() {
+ return this.g;
+ };
+ _._d = function ez() {
+ Vy(this, _y(this.Wd(Wy(this, this.g))));
+ Sz(this);
+ };
+ _.Ib = function fz() {
+ return Wy(this, this.$d());
+ };
+ _.e = Sie;
+ _.i = false;
+ _.n = true;
+ var _I = mdb(Phe, "Throwable", 78);
+ bcb(102, 78, { 3: 1, 102: 1, 78: 1 });
+ mdb(Phe, "Exception", 102);
+ bcb(60, 102, Tie, gz, hz);
+ mdb(Phe, "RuntimeException", 60);
+ bcb(598, 60, Tie);
+ mdb(Phe, "JsException", 598);
+ bcb(863, 598, Tie);
+ mdb(Uie, "JavaScriptExceptionBase", 863);
+ bcb(477, 863, { 477: 1, 3: 1, 102: 1, 60: 1, 78: 1 }, lz);
+ _.$d = function oz() {
+ kz(this);
+ return this.c;
+ };
+ _.ae = function pz() {
+ return PD(this.b) === PD(iz) ? null : this.b;
+ };
+ var iz;
+ mdb(Wie, "JavaScriptException", 477);
+ var PH = mdb(Wie, "JavaScriptObject$", 0);
+ var tz;
+ bcb(1948, 1, {});
+ mdb(Wie, "Scheduler", 1948);
+ var xz = 0, yz = 0, zz = -1;
+ bcb(890, 1948, {}, Nz);
+ var Jz;
+ mdb(Uie, "SchedulerImpl", 890);
+ var Qz;
+ bcb(1960, 1, {});
+ mdb(Uie, "StackTraceCreator/Collector", 1960);
+ bcb(864, 1960, {}, Yz);
+ _.be = function Zz(a) {
+ var b = {};
+ var c = [];
+ a[Yie] = c;
+ var d = arguments.callee.caller;
+ while (d) {
+ var e = (Rz(), d.name || (d.name = Uz(d.toString())));
+ c.push(e);
+ var f = ":" + e;
+ var g = b[f];
+ if (g) {
+ var h, i;
+ for (h = 0, i = g.length; h < i; h++) {
+ if (g[h] === d) {
+ return;
+ }
+ }
+ }
+ (g || (b[f] = [])).push(d);
+ d = d.caller;
+ }
+ };
+ _.ce = function $z(a) {
+ var b, c, d, e;
+ d = (Rz(), a && a[Yie] ? a[Yie] : []);
+ c = d.length;
+ e = KC(VI, nie, 310, c, 0, 1);
+ for (b = 0; b < c; b++) {
+ e[b] = new Zeb(d[b], null, -1);
+ }
+ return e;
+ };
+ mdb(Uie, "StackTraceCreator/CollectorLegacy", 864);
+ bcb(1961, 1960, {});
+ _.be = function aA(a) {
+ };
+ _.de = function bA(a, b, c, d) {
+ return new Zeb(b, a + "@" + d, c < 0 ? -1 : c);
+ };
+ _.ce = function cA(a) {
+ var b, c, d, e, f, g;
+ e = Wz(a);
+ f = KC(VI, nie, 310, 0, 0, 1);
+ b = 0;
+ d = e.length;
+ if (d == 0) {
+ return f;
+ }
+ g = _z(this, e[0]);
+ dfb(g.d, Xie) || (f[b++] = g);
+ for (c = 1; c < d; c++) {
+ f[b++] = _z(this, e[c]);
+ }
+ return f;
+ };
+ mdb(Uie, "StackTraceCreator/CollectorModern", 1961);
+ bcb(865, 1961, {}, dA);
+ _.de = function eA(a, b, c, d) {
+ return new Zeb(b, a, -1);
+ };
+ mdb(Uie, "StackTraceCreator/CollectorModernNoSourceMap", 865);
+ bcb(1050, 1, {});
+ mdb(yje, zje, 1050);
+ bcb(615, 1050, { 615: 1 }, HA);
+ var FA;
+ mdb(Aje, zje, 615);
+ bcb(2001, 1, {});
+ mdb(yje, Bje, 2001);
+ bcb(2002, 2001, {});
+ mdb(Aje, Bje, 2002);
+ bcb(1090, 1, {}, MA);
+ var JA;
+ mdb(Aje, "LocaleInfo", 1090);
+ bcb(1918, 1, {}, PA);
+ _.a = 0;
+ mdb(Aje, "TimeZone", 1918);
+ bcb(1258, 2002, {}, VA);
+ mdb("com.google.gwt.i18n.client.impl.cldr", "DateTimeFormatInfoImpl", 1258);
+ bcb(434, 1, { 434: 1 }, WA);
+ _.a = false;
+ _.b = 0;
+ mdb(yje, "DateTimeFormat/PatternPart", 434);
+ bcb(199, 1, Cje, eB, fB, gB);
+ _.wd = function hB(a) {
+ return XA(this, BD(a, 199));
+ };
+ _.Fb = function iB(a) {
+ return JD(a, 199) && Bbb(Cbb(this.q.getTime()), Cbb(BD(a, 199).q.getTime()));
+ };
+ _.Hb = function jB() {
+ var a;
+ a = Cbb(this.q.getTime());
+ return Tbb(Vbb(a, Pbb(a, 32)));
+ };
+ _.Ib = function lB() {
+ var a, b, c;
+ c = -this.q.getTimezoneOffset();
+ a = (c >= 0 ? "+" : "") + (c / 60 | 0);
+ b = kB($wnd.Math.abs(c) % 60);
+ return (Dpb(), Bpb)[this.q.getDay()] + " " + Cpb[this.q.getMonth()] + " " + kB(this.q.getDate()) + " " + kB(this.q.getHours()) + ":" + kB(this.q.getMinutes()) + ":" + kB(this.q.getSeconds()) + " GMT" + a + b + " " + this.q.getFullYear();
+ };
+ var $J = mdb(bie, "Date", 199);
+ bcb(1915, 199, Cje, nB);
+ _.a = false;
+ _.b = 0;
+ _.c = 0;
+ _.d = 0;
+ _.e = 0;
+ _.f = 0;
+ _.g = false;
+ _.i = 0;
+ _.j = 0;
+ _.k = 0;
+ _.n = 0;
+ _.o = 0;
+ _.p = 0;
+ mdb("com.google.gwt.i18n.shared.impl", "DateRecord", 1915);
+ bcb(1966, 1, {});
+ _.fe = function oB() {
+ return null;
+ };
+ _.ge = function pB() {
+ return null;
+ };
+ _.he = function qB() {
+ return null;
+ };
+ _.ie = function rB() {
+ return null;
+ };
+ _.je = function sB() {
+ return null;
+ };
+ mdb(Dje, "JSONValue", 1966);
+ bcb(216, 1966, { 216: 1 }, wB, xB);
+ _.Fb = function yB(a) {
+ if (!JD(a, 216)) {
+ return false;
+ }
+ return qz(this.a, BD(a, 216).a);
+ };
+ _.ee = function zB() {
+ return DB;
+ };
+ _.Hb = function AB() {
+ return rz(this.a);
+ };
+ _.fe = function BB() {
+ return this;
+ };
+ _.Ib = function CB() {
+ var a, b, c;
+ c = new Wfb("[");
+ for (b = 0, a = this.a.length; b < a; b++) {
+ b > 0 && (c.a += ",", c);
+ Pfb(c, tB(this, b));
+ }
+ c.a += "]";
+ return c.a;
+ };
+ mdb(Dje, "JSONArray", 216);
+ bcb(483, 1966, { 483: 1 }, HB);
+ _.ee = function IB() {
+ return LB;
+ };
+ _.ge = function JB() {
+ return this;
+ };
+ _.Ib = function KB() {
+ return Bcb(), "" + this.a;
+ };
+ _.a = false;
+ var EB, FB;
+ mdb(Dje, "JSONBoolean", 483);
+ bcb(985, 60, Tie, MB);
+ mdb(Dje, "JSONException", 985);
+ bcb(1023, 1966, {}, PB);
+ _.ee = function QB() {
+ return SB;
+ };
+ _.Ib = function RB() {
+ return Xhe;
+ };
+ var NB;
+ mdb(Dje, "JSONNull", 1023);
+ bcb(258, 1966, { 258: 1 }, TB);
+ _.Fb = function UB(a) {
+ if (!JD(a, 258)) {
+ return false;
+ }
+ return this.a == BD(a, 258).a;
+ };
+ _.ee = function VB() {
+ return ZB;
+ };
+ _.Hb = function WB() {
+ return Hdb(this.a);
+ };
+ _.he = function XB() {
+ return this;
+ };
+ _.Ib = function YB() {
+ return this.a + "";
+ };
+ _.a = 0;
+ mdb(Dje, "JSONNumber", 258);
+ bcb(183, 1966, { 183: 1 }, eC, fC);
+ _.Fb = function gC(a) {
+ if (!JD(a, 183)) {
+ return false;
+ }
+ return qz(this.a, BD(a, 183).a);
+ };
+ _.ee = function hC() {
+ return lC;
+ };
+ _.Hb = function iC() {
+ return rz(this.a);
+ };
+ _.ie = function jC() {
+ return this;
+ };
+ _.Ib = function kC() {
+ var a, b, c, d, e, f, g;
+ g = new Wfb("{");
+ a = true;
+ f = $B(this, KC(ZI, nie, 2, 0, 6, 1));
+ for (c = f, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ a ? a = false : (g.a += She, g);
+ Qfb(g, vz(b));
+ g.a += ":";
+ Pfb(g, aC(this, b));
+ }
+ g.a += "}";
+ return g.a;
+ };
+ mdb(Dje, "JSONObject", 183);
+ bcb(596, eie, fie, mC);
+ _.Hc = function nC(a) {
+ return ND(a) && _B(this.a, GD(a));
+ };
+ _.Kc = function oC() {
+ return new vib(new amb(this.b));
+ };
+ _.gc = function pC() {
+ return this.b.length;
+ };
+ mdb(Dje, "JSONObject/1", 596);
+ var qC;
+ bcb(204, 1966, { 204: 1 }, yC);
+ _.Fb = function zC(a) {
+ if (!JD(a, 204)) {
+ return false;
+ }
+ return dfb(this.a, BD(a, 204).a);
+ };
+ _.ee = function AC() {
+ return EC;
+ };
+ _.Hb = function BC() {
+ return LCb(this.a);
+ };
+ _.je = function CC() {
+ return this;
+ };
+ _.Ib = function DC() {
+ return vz(this.a);
+ };
+ mdb(Dje, "JSONString", 204);
+ var QC;
+ var sD, tD, uD, vD;
+ bcb(1962, 1, { 525: 1 });
+ mdb(Lje, "OutputStream", 1962);
+ bcb(1963, 1962, { 525: 1 });
+ mdb(Lje, "FilterOutputStream", 1963);
+ bcb(866, 1963, { 525: 1 }, jcb);
+ mdb(Lje, "PrintStream", 866);
+ bcb(418, 1, { 475: 1 });
+ _.Ib = function ncb() {
+ return this.a;
+ };
+ mdb(Phe, "AbstractStringBuilder", 418);
+ bcb(529, 60, Tie, ocb);
+ mdb(Phe, "ArithmeticException", 529);
+ bcb(73, 60, Mje, pcb, qcb);
+ mdb(Phe, "IndexOutOfBoundsException", 73);
+ bcb(320, 73, { 3: 1, 320: 1, 102: 1, 73: 1, 60: 1, 78: 1 }, rcb, scb);
+ mdb(Phe, "ArrayIndexOutOfBoundsException", 320);
+ bcb(528, 60, Tie, tcb, ucb);
+ mdb(Phe, "ArrayStoreException", 528);
+ bcb(289, 78, Nje, vcb);
+ mdb(Phe, "Error", 289);
+ bcb(194, 289, Nje, xcb, ycb);
+ mdb(Phe, "AssertionError", 194);
+ xD = { 3: 1, 476: 1, 35: 1 };
+ var zcb, Acb;
+ var wI = mdb(Phe, "Boolean", 476);
+ bcb(236, 1, { 3: 1, 236: 1 });
+ var Gcb;
+ mdb(Phe, "Number", 236);
+ bcb(217, 236, { 3: 1, 217: 1, 35: 1, 236: 1 }, Mcb);
+ _.wd = function Ncb(a) {
+ return Lcb(this, BD(a, 217));
+ };
+ _.ke = function Ocb() {
+ return this.a;
+ };
+ _.Fb = function Pcb(a) {
+ return JD(a, 217) && BD(a, 217).a == this.a;
+ };
+ _.Hb = function Qcb() {
+ return this.a;
+ };
+ _.Ib = function Rcb() {
+ return "" + this.a;
+ };
+ _.a = 0;
+ var xI = mdb(Phe, "Byte", 217);
+ var Tcb;
+ bcb(172, 1, { 3: 1, 172: 1, 35: 1 }, Xcb);
+ _.wd = function Ycb(a) {
+ return Wcb(this, BD(a, 172));
+ };
+ _.Fb = function $cb(a) {
+ return JD(a, 172) && BD(a, 172).a == this.a;
+ };
+ _.Hb = function _cb() {
+ return this.a;
+ };
+ _.Ib = function adb() {
+ return String.fromCharCode(this.a);
+ };
+ _.a = 0;
+ var Vcb;
+ var yI = mdb(Phe, "Character", 172);
+ var cdb;
+ bcb(205, 60, { 3: 1, 205: 1, 102: 1, 60: 1, 78: 1 }, Bdb, Cdb);
+ mdb(Phe, "ClassCastException", 205);
+ yD = { 3: 1, 35: 1, 333: 1, 236: 1 };
+ var BI = mdb(Phe, "Double", 333);
+ bcb(155, 236, { 3: 1, 35: 1, 155: 1, 236: 1 }, Ndb, Odb);
+ _.wd = function Pdb(a) {
+ return Mdb(this, BD(a, 155));
+ };
+ _.ke = function Qdb() {
+ return this.a;
+ };
+ _.Fb = function Rdb(a) {
+ return JD(a, 155) && Fdb(this.a, BD(a, 155).a);
+ };
+ _.Hb = function Sdb() {
+ return QD(this.a);
+ };
+ _.Ib = function Udb() {
+ return "" + this.a;
+ };
+ _.a = 0;
+ var FI = mdb(Phe, "Float", 155);
+ bcb(32, 60, { 3: 1, 102: 1, 32: 1, 60: 1, 78: 1 }, Vdb, Wdb, Xdb);
+ mdb(Phe, "IllegalArgumentException", 32);
+ bcb(71, 60, Tie, Ydb, Zdb);
+ mdb(Phe, "IllegalStateException", 71);
+ bcb(19, 236, { 3: 1, 35: 1, 19: 1, 236: 1 }, _db);
+ _.wd = function ceb(a) {
+ return $db(this, BD(a, 19));
+ };
+ _.ke = function deb() {
+ return this.a;
+ };
+ _.Fb = function eeb(a) {
+ return JD(a, 19) && BD(a, 19).a == this.a;
+ };
+ _.Hb = function feb() {
+ return this.a;
+ };
+ _.Ib = function leb() {
+ return "" + this.a;
+ };
+ _.a = 0;
+ var JI = mdb(Phe, "Integer", 19);
+ var neb;
+ var peb;
+ bcb(162, 236, { 3: 1, 35: 1, 162: 1, 236: 1 }, teb);
+ _.wd = function veb(a) {
+ return seb(this, BD(a, 162));
+ };
+ _.ke = function web() {
+ return Sbb(this.a);
+ };
+ _.Fb = function xeb(a) {
+ return JD(a, 162) && Bbb(BD(a, 162).a, this.a);
+ };
+ _.Hb = function yeb() {
+ return Tbb(this.a);
+ };
+ _.Ib = function zeb() {
+ return "" + Ubb(this.a);
+ };
+ _.a = 0;
+ var MI = mdb(Phe, "Long", 162);
+ var Beb;
+ bcb(2039, 1, {});
+ bcb(1831, 60, Tie, Feb);
+ mdb(Phe, "NegativeArraySizeException", 1831);
+ bcb(173, 598, { 3: 1, 102: 1, 173: 1, 60: 1, 78: 1 }, Geb, Heb);
+ _.Wd = function Ieb(a) {
+ return new TypeError(a);
+ };
+ mdb(Phe, "NullPointerException", 173);
+ var Jeb, Keb, Leb, Meb;
+ bcb(127, 32, { 3: 1, 102: 1, 32: 1, 127: 1, 60: 1, 78: 1 }, Oeb);
+ mdb(Phe, "NumberFormatException", 127);
+ bcb(184, 236, { 3: 1, 35: 1, 236: 1, 184: 1 }, Qeb);
+ _.wd = function Reb(a) {
+ return Peb(this, BD(a, 184));
+ };
+ _.ke = function Seb() {
+ return this.a;
+ };
+ _.Fb = function Teb(a) {
+ return JD(a, 184) && BD(a, 184).a == this.a;
+ };
+ _.Hb = function Ueb() {
+ return this.a;
+ };
+ _.Ib = function Veb() {
+ return "" + this.a;
+ };
+ _.a = 0;
+ var UI = mdb(Phe, "Short", 184);
+ var Xeb;
+ bcb(310, 1, { 3: 1, 310: 1 }, Zeb);
+ _.Fb = function $eb(a) {
+ var b;
+ if (JD(a, 310)) {
+ b = BD(a, 310);
+ return this.c == b.c && this.d == b.d && this.a == b.a && this.b == b.b;
+ }
+ return false;
+ };
+ _.Hb = function _eb() {
+ return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [meb(this.c), this.a, this.d, this.b]));
+ };
+ _.Ib = function afb() {
+ return this.a + "." + this.d + "(" + (this.b != null ? this.b : "Unknown Source") + (this.c >= 0 ? ":" + this.c : "") + ")";
+ };
+ _.c = 0;
+ var VI = mdb(Phe, "StackTraceElement", 310);
+ zD = { 3: 1, 475: 1, 35: 1, 2: 1 };
+ var ZI = mdb(Phe, Vie, 2);
+ bcb(107, 418, { 475: 1 }, Hfb, Ifb, Jfb);
+ mdb(Phe, "StringBuffer", 107);
+ bcb(100, 418, { 475: 1 }, Ufb, Vfb, Wfb);
+ mdb(Phe, "StringBuilder", 100);
+ bcb(687, 73, Mje, Xfb);
+ mdb(Phe, "StringIndexOutOfBoundsException", 687);
+ bcb(2043, 1, {});
+ var Yfb;
+ bcb(844, 1, {}, _fb);
+ _.Kb = function agb(a) {
+ return BD(a, 78).e;
+ };
+ mdb(Phe, "Throwable/lambda$0$Type", 844);
+ bcb(41, 60, { 3: 1, 102: 1, 60: 1, 78: 1, 41: 1 }, bgb, cgb);
+ mdb(Phe, "UnsupportedOperationException", 41);
+ bcb(240, 236, { 3: 1, 35: 1, 236: 1, 240: 1 }, sgb, tgb);
+ _.wd = function wgb(a) {
+ return mgb(this, BD(a, 240));
+ };
+ _.ke = function xgb() {
+ return Hcb(rgb(this));
+ };
+ _.Fb = function ygb(a) {
+ var b;
+ if (this === a) {
+ return true;
+ }
+ if (JD(a, 240)) {
+ b = BD(a, 240);
+ return this.e == b.e && mgb(this, b) == 0;
+ }
+ return false;
+ };
+ _.Hb = function zgb() {
+ var a;
+ if (this.b != 0) {
+ return this.b;
+ }
+ if (this.a < 54) {
+ a = Cbb(this.f);
+ this.b = Tbb(xbb(a, -1));
+ this.b = 33 * this.b + Tbb(xbb(Obb(a, 32), -1));
+ this.b = 17 * this.b + QD(this.e);
+ return this.b;
+ }
+ this.b = 17 * Ngb(this.c) + QD(this.e);
+ return this.b;
+ };
+ _.Ib = function Agb() {
+ return rgb(this);
+ };
+ _.a = 0;
+ _.b = 0;
+ _.d = 0;
+ _.e = 0;
+ _.f = 0;
+ var dgb, egb, fgb, ggb, hgb, igb, jgb, kgb;
+ var bJ = mdb("java.math", "BigDecimal", 240);
+ bcb(91, 236, { 3: 1, 35: 1, 236: 1, 91: 1 }, Tgb, Ugb, Vgb, Wgb, Xgb, Ygb);
+ _.wd = function $gb(a) {
+ return Igb(this, BD(a, 91));
+ };
+ _.ke = function _gb() {
+ return Hcb(shb(this, 0));
+ };
+ _.Fb = function ahb(a) {
+ return Kgb(this, a);
+ };
+ _.Hb = function chb() {
+ return Ngb(this);
+ };
+ _.Ib = function ehb() {
+ return shb(this, 0);
+ };
+ _.b = -2;
+ _.c = 0;
+ _.d = 0;
+ _.e = 0;
+ var Bgb, Cgb, Dgb, Egb, Fgb, Ggb;
+ var cJ = mdb("java.math", "BigInteger", 91);
+ var nhb, ohb;
+ var Bhb, Chb;
+ bcb(488, 1967, cie);
+ _.$b = function Xhb() {
+ Uhb(this);
+ };
+ _._b = function Yhb(a) {
+ return Mhb(this, a);
+ };
+ _.uc = function Zhb(a) {
+ return Nhb(this, a, this.g) || Nhb(this, a, this.f);
+ };
+ _.vc = function $hb() {
+ return new eib(this);
+ };
+ _.xc = function _hb(a) {
+ return Ohb(this, a);
+ };
+ _.zc = function aib(a, b) {
+ return Rhb(this, a, b);
+ };
+ _.Bc = function bib(a) {
+ return Thb(this, a);
+ };
+ _.gc = function cib() {
+ return Vhb(this);
+ };
+ mdb(bie, "AbstractHashMap", 488);
+ bcb(261, eie, fie, eib);
+ _.$b = function fib() {
+ this.a.$b();
+ };
+ _.Hc = function gib(a) {
+ return dib(this, a);
+ };
+ _.Kc = function hib() {
+ return new nib(this.a);
+ };
+ _.Mc = function iib(a) {
+ var b;
+ if (dib(this, a)) {
+ b = BD(a, 42).cd();
+ this.a.Bc(b);
+ return true;
+ }
+ return false;
+ };
+ _.gc = function jib() {
+ return this.a.gc();
+ };
+ mdb(bie, "AbstractHashMap/EntrySet", 261);
+ bcb(262, 1, aie, nib);
+ _.Nb = function oib(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function qib() {
+ return lib(this);
+ };
+ _.Ob = function pib() {
+ return this.b;
+ };
+ _.Qb = function rib() {
+ mib(this);
+ };
+ _.b = false;
+ mdb(bie, "AbstractHashMap/EntrySetIterator", 262);
+ bcb(417, 1, aie, vib);
+ _.Nb = function wib(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function xib() {
+ return sib(this);
+ };
+ _.Pb = function yib() {
+ return tib(this);
+ };
+ _.Qb = function zib() {
+ uib(this);
+ };
+ _.b = 0;
+ _.c = -1;
+ mdb(bie, "AbstractList/IteratorImpl", 417);
+ bcb(96, 417, jie, Bib);
+ _.Qb = function Hib() {
+ uib(this);
+ };
+ _.Rb = function Cib(a) {
+ Aib(this, a);
+ };
+ _.Sb = function Dib() {
+ return this.b > 0;
+ };
+ _.Tb = function Eib() {
+ return this.b;
+ };
+ _.Ub = function Fib() {
+ return sCb(this.b > 0), this.a.Xb(this.c = --this.b);
+ };
+ _.Vb = function Gib() {
+ return this.b - 1;
+ };
+ _.Wb = function Iib(a) {
+ yCb(this.c != -1);
+ this.a._c(this.c, a);
+ };
+ mdb(bie, "AbstractList/ListIteratorImpl", 96);
+ bcb(219, 52, Lie, Jib);
+ _.Vc = function Kib(a, b) {
+ wCb(a, this.b);
+ this.c.Vc(this.a + a, b);
+ ++this.b;
+ };
+ _.Xb = function Lib(a) {
+ tCb(a, this.b);
+ return this.c.Xb(this.a + a);
+ };
+ _.$c = function Mib(a) {
+ var b;
+ tCb(a, this.b);
+ b = this.c.$c(this.a + a);
+ --this.b;
+ return b;
+ };
+ _._c = function Nib(a, b) {
+ tCb(a, this.b);
+ return this.c._c(this.a + a, b);
+ };
+ _.gc = function Oib() {
+ return this.b;
+ };
+ _.a = 0;
+ _.b = 0;
+ mdb(bie, "AbstractList/SubList", 219);
+ bcb(384, eie, fie, Pib);
+ _.$b = function Qib() {
+ this.a.$b();
+ };
+ _.Hc = function Rib(a) {
+ return this.a._b(a);
+ };
+ _.Kc = function Sib() {
+ var a;
+ return a = this.a.vc().Kc(), new Vib(a);
+ };
+ _.Mc = function Tib(a) {
+ if (this.a._b(a)) {
+ this.a.Bc(a);
+ return true;
+ }
+ return false;
+ };
+ _.gc = function Uib() {
+ return this.a.gc();
+ };
+ mdb(bie, "AbstractMap/1", 384);
+ bcb(691, 1, aie, Vib);
+ _.Nb = function Wib(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function Xib() {
+ return this.a.Ob();
+ };
+ _.Pb = function Yib() {
+ var a;
+ return a = BD(this.a.Pb(), 42), a.cd();
+ };
+ _.Qb = function Zib() {
+ this.a.Qb();
+ };
+ mdb(bie, "AbstractMap/1/1", 691);
+ bcb(226, 28, die, $ib);
+ _.$b = function _ib() {
+ this.a.$b();
+ };
+ _.Hc = function ajb(a) {
+ return this.a.uc(a);
+ };
+ _.Kc = function bjb() {
+ var a;
+ return a = this.a.vc().Kc(), new djb(a);
+ };
+ _.gc = function cjb() {
+ return this.a.gc();
+ };
+ mdb(bie, "AbstractMap/2", 226);
+ bcb(294, 1, aie, djb);
+ _.Nb = function ejb(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function fjb() {
+ return this.a.Ob();
+ };
+ _.Pb = function gjb() {
+ var a;
+ return a = BD(this.a.Pb(), 42), a.dd();
+ };
+ _.Qb = function hjb() {
+ this.a.Qb();
+ };
+ mdb(bie, "AbstractMap/2/1", 294);
+ bcb(484, 1, { 484: 1, 42: 1 });
+ _.Fb = function jjb(a) {
+ var b;
+ if (!JD(a, 42)) {
+ return false;
+ }
+ b = BD(a, 42);
+ return wtb(this.d, b.cd()) && wtb(this.e, b.dd());
+ };
+ _.cd = function kjb() {
+ return this.d;
+ };
+ _.dd = function ljb() {
+ return this.e;
+ };
+ _.Hb = function mjb() {
+ return xtb(this.d) ^ xtb(this.e);
+ };
+ _.ed = function njb(a) {
+ return ijb(this, a);
+ };
+ _.Ib = function ojb() {
+ return this.d + "=" + this.e;
+ };
+ mdb(bie, "AbstractMap/AbstractEntry", 484);
+ bcb(383, 484, { 484: 1, 383: 1, 42: 1 }, pjb);
+ mdb(bie, "AbstractMap/SimpleEntry", 383);
+ bcb(1984, 1, _je);
+ _.Fb = function qjb(a) {
+ var b;
+ if (!JD(a, 42)) {
+ return false;
+ }
+ b = BD(a, 42);
+ return wtb(this.cd(), b.cd()) && wtb(this.dd(), b.dd());
+ };
+ _.Hb = function rjb() {
+ return xtb(this.cd()) ^ xtb(this.dd());
+ };
+ _.Ib = function sjb() {
+ return this.cd() + "=" + this.dd();
+ };
+ mdb(bie, lie, 1984);
+ bcb(1992, 1967, gie);
+ _.tc = function vjb(a) {
+ return tjb(this, a);
+ };
+ _._b = function wjb(a) {
+ return ujb(this, a);
+ };
+ _.vc = function xjb() {
+ return new Bjb(this);
+ };
+ _.xc = function yjb(a) {
+ var b;
+ b = a;
+ return Wd(Awb(this, b));
+ };
+ _.ec = function Ajb() {
+ return new Gjb(this);
+ };
+ mdb(bie, "AbstractNavigableMap", 1992);
+ bcb(739, eie, fie, Bjb);
+ _.Hc = function Cjb(a) {
+ return JD(a, 42) && tjb(this.b, BD(a, 42));
+ };
+ _.Kc = function Djb() {
+ return new Ywb(this.b);
+ };
+ _.Mc = function Ejb(a) {
+ var b;
+ if (JD(a, 42)) {
+ b = BD(a, 42);
+ return Kwb(this.b, b);
+ }
+ return false;
+ };
+ _.gc = function Fjb() {
+ return this.b.c;
+ };
+ mdb(bie, "AbstractNavigableMap/EntrySet", 739);
+ bcb(493, eie, iie, Gjb);
+ _.Nc = function Mjb() {
+ return new Rub(this);
+ };
+ _.$b = function Hjb() {
+ zwb(this.a);
+ };
+ _.Hc = function Ijb(a) {
+ return ujb(this.a, a);
+ };
+ _.Kc = function Jjb() {
+ var a;
+ return a = new Ywb(new cxb(this.a).b), new Njb(a);
+ };
+ _.Mc = function Kjb(a) {
+ if (ujb(this.a, a)) {
+ Jwb(this.a, a);
+ return true;
+ }
+ return false;
+ };
+ _.gc = function Ljb() {
+ return this.a.c;
+ };
+ mdb(bie, "AbstractNavigableMap/NavigableKeySet", 493);
+ bcb(494, 1, aie, Njb);
+ _.Nb = function Ojb(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function Pjb() {
+ return sib(this.a.a);
+ };
+ _.Pb = function Qjb() {
+ var a;
+ return a = Wwb(this.a), a.cd();
+ };
+ _.Qb = function Rjb() {
+ Xwb(this.a);
+ };
+ mdb(bie, "AbstractNavigableMap/NavigableKeySet/1", 494);
+ bcb(2004, 28, die);
+ _.Fc = function Sjb(a) {
+ return zCb(cub(this, a)), true;
+ };
+ _.Gc = function Tjb(a) {
+ uCb(a);
+ mCb(a != this, "Can't add a queue to itself");
+ return ye(this, a);
+ };
+ _.$b = function Ujb() {
+ while (dub(this) != null)
+ ;
+ };
+ mdb(bie, "AbstractQueue", 2004);
+ bcb(302, 28, { 4: 1, 20: 1, 28: 1, 14: 1 }, jkb, kkb);
+ _.Fc = function lkb(a) {
+ return Xjb(this, a), true;
+ };
+ _.$b = function nkb() {
+ Yjb(this);
+ };
+ _.Hc = function okb(a) {
+ return Zjb(new xkb(this), a);
+ };
+ _.dc = function pkb() {
+ return akb(this);
+ };
+ _.Kc = function qkb() {
+ return new xkb(this);
+ };
+ _.Mc = function rkb(a) {
+ return dkb(new xkb(this), a);
+ };
+ _.gc = function skb() {
+ return this.c - this.b & this.a.length - 1;
+ };
+ _.Nc = function tkb() {
+ return new Kub(this, 272);
+ };
+ _.Qc = function ukb(a) {
+ var b;
+ b = this.c - this.b & this.a.length - 1;
+ a.length < b && (a = eCb(new Array(b), a));
+ $jb(this, a, b);
+ a.length > b && NC(a, b, null);
+ return a;
+ };
+ _.b = 0;
+ _.c = 0;
+ mdb(bie, "ArrayDeque", 302);
+ bcb(446, 1, aie, xkb);
+ _.Nb = function ykb(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function zkb() {
+ return this.a != this.b;
+ };
+ _.Pb = function Akb() {
+ return vkb(this);
+ };
+ _.Qb = function Bkb() {
+ wkb(this);
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = -1;
+ mdb(bie, "ArrayDeque/IteratorImpl", 446);
+ bcb(12, 52, ake, Rkb, Skb, Tkb);
+ _.Vc = function Ukb(a, b) {
+ Dkb(this, a, b);
+ };
+ _.Fc = function Vkb(a) {
+ return Ekb(this, a);
+ };
+ _.Wc = function Wkb(a, b) {
+ return Fkb(this, a, b);
+ };
+ _.Gc = function Xkb(a) {
+ return Gkb(this, a);
+ };
+ _.$b = function Ykb() {
+ this.c = KC(SI, Uhe, 1, 0, 5, 1);
+ };
+ _.Hc = function Zkb(a) {
+ return Jkb(this, a, 0) != -1;
+ };
+ _.Jc = function $kb(a) {
+ Hkb(this, a);
+ };
+ _.Xb = function _kb(a) {
+ return Ikb(this, a);
+ };
+ _.Xc = function alb(a) {
+ return Jkb(this, a, 0);
+ };
+ _.dc = function blb() {
+ return this.c.length == 0;
+ };
+ _.Kc = function clb() {
+ return new olb(this);
+ };
+ _.$c = function dlb(a) {
+ return Kkb(this, a);
+ };
+ _.Mc = function elb(a) {
+ return Lkb(this, a);
+ };
+ _.Ud = function flb(a, b) {
+ Mkb(this, a, b);
+ };
+ _._c = function glb(a, b) {
+ return Nkb(this, a, b);
+ };
+ _.gc = function hlb() {
+ return this.c.length;
+ };
+ _.ad = function ilb(a) {
+ Okb(this, a);
+ };
+ _.Pc = function jlb() {
+ return Pkb(this);
+ };
+ _.Qc = function klb(a) {
+ return Qkb(this, a);
+ };
+ var DJ = mdb(bie, "ArrayList", 12);
+ bcb(7, 1, aie, olb);
+ _.Nb = function plb(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function qlb() {
+ return llb(this);
+ };
+ _.Pb = function rlb() {
+ return mlb(this);
+ };
+ _.Qb = function slb() {
+ nlb(this);
+ };
+ _.a = 0;
+ _.b = -1;
+ mdb(bie, "ArrayList/1", 7);
+ bcb(2013, $wnd.Function, {}, Ylb);
+ _.te = function Zlb(a, b) {
+ return Kdb(a, b);
+ };
+ bcb(154, 52, bke, amb);
+ _.Hc = function bmb(a) {
+ return Bt(this, a) != -1;
+ };
+ _.Jc = function cmb(a) {
+ var b, c, d, e;
+ uCb(a);
+ for (c = this.a, d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ a.td(b);
+ }
+ };
+ _.Xb = function dmb(a) {
+ return $lb(this, a);
+ };
+ _._c = function emb(a, b) {
+ var c;
+ c = (tCb(a, this.a.length), this.a[a]);
+ NC(this.a, a, b);
+ return c;
+ };
+ _.gc = function fmb() {
+ return this.a.length;
+ };
+ _.ad = function gmb(a) {
+ Mlb(this.a, this.a.length, a);
+ };
+ _.Pc = function hmb() {
+ return _lb(this, KC(SI, Uhe, 1, this.a.length, 5, 1));
+ };
+ _.Qc = function imb(a) {
+ return _lb(this, a);
+ };
+ mdb(bie, "Arrays/ArrayList", 154);
+ var jmb, kmb, lmb;
+ bcb(940, 52, bke, xmb);
+ _.Hc = function ymb(a) {
+ return false;
+ };
+ _.Xb = function zmb(a) {
+ return wmb(a);
+ };
+ _.Kc = function Amb() {
+ return mmb(), Emb(), Dmb;
+ };
+ _.Yc = function Bmb() {
+ return mmb(), Emb(), Dmb;
+ };
+ _.gc = function Cmb() {
+ return 0;
+ };
+ mdb(bie, "Collections/EmptyList", 940);
+ bcb(941, 1, jie, Fmb);
+ _.Nb = function Hmb(a) {
+ Rrb(this, a);
+ };
+ _.Rb = function Gmb(a) {
+ throw vbb(new bgb());
+ };
+ _.Ob = function Imb() {
+ return false;
+ };
+ _.Sb = function Jmb() {
+ return false;
+ };
+ _.Pb = function Kmb() {
+ throw vbb(new utb());
+ };
+ _.Tb = function Lmb() {
+ return 0;
+ };
+ _.Ub = function Mmb() {
+ throw vbb(new utb());
+ };
+ _.Vb = function Nmb() {
+ return -1;
+ };
+ _.Qb = function Omb() {
+ throw vbb(new Ydb());
+ };
+ _.Wb = function Pmb(a) {
+ throw vbb(new Ydb());
+ };
+ var Dmb;
+ mdb(bie, "Collections/EmptyListIterator", 941);
+ bcb(943, 1967, Aie, Qmb);
+ _._b = function Rmb(a) {
+ return false;
+ };
+ _.uc = function Smb(a) {
+ return false;
+ };
+ _.vc = function Tmb() {
+ return mmb(), lmb;
+ };
+ _.xc = function Umb(a) {
+ return null;
+ };
+ _.ec = function Vmb() {
+ return mmb(), lmb;
+ };
+ _.gc = function Wmb() {
+ return 0;
+ };
+ _.Cc = function Xmb() {
+ return mmb(), jmb;
+ };
+ mdb(bie, "Collections/EmptyMap", 943);
+ bcb(942, eie, Cie, Ymb);
+ _.Hc = function Zmb(a) {
+ return false;
+ };
+ _.Kc = function $mb() {
+ return mmb(), Emb(), Dmb;
+ };
+ _.gc = function _mb() {
+ return 0;
+ };
+ mdb(bie, "Collections/EmptySet", 942);
+ bcb(599, 52, { 3: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1 }, anb);
+ _.Hc = function bnb(a) {
+ return wtb(this.a, a);
+ };
+ _.Xb = function cnb(a) {
+ tCb(a, 1);
+ return this.a;
+ };
+ _.gc = function dnb() {
+ return 1;
+ };
+ mdb(bie, "Collections/SingletonList", 599);
+ bcb(372, 1, wie, lnb);
+ _.Jc = function rnb(a) {
+ reb(this, a);
+ };
+ _.Lc = function unb() {
+ return new YAb(null, this.Nc());
+ };
+ _.Nc = function xnb() {
+ return new Kub(this, 0);
+ };
+ _.Oc = function ynb() {
+ return new YAb(null, this.Nc());
+ };
+ _.Fc = function mnb(a) {
+ return enb();
+ };
+ _.Gc = function nnb(a) {
+ return fnb();
+ };
+ _.$b = function onb() {
+ gnb();
+ };
+ _.Hc = function pnb(a) {
+ return hnb(this, a);
+ };
+ _.Ic = function qnb(a) {
+ return inb(this, a);
+ };
+ _.dc = function snb() {
+ return this.b.dc();
+ };
+ _.Kc = function tnb() {
+ return new Dnb(this.b.Kc());
+ };
+ _.Mc = function vnb(a) {
+ return jnb();
+ };
+ _.gc = function wnb() {
+ return this.b.gc();
+ };
+ _.Pc = function znb() {
+ return this.b.Pc();
+ };
+ _.Qc = function Anb(a) {
+ return knb(this, a);
+ };
+ _.Ib = function Bnb() {
+ return fcb(this.b);
+ };
+ mdb(bie, "Collections/UnmodifiableCollection", 372);
+ bcb(371, 1, aie, Dnb);
+ _.Nb = function Enb(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function Fnb() {
+ return this.b.Ob();
+ };
+ _.Pb = function Gnb() {
+ return this.b.Pb();
+ };
+ _.Qb = function Hnb() {
+ Cnb();
+ };
+ mdb(bie, "Collections/UnmodifiableCollectionIterator", 371);
+ bcb(531, 372, cke, Inb);
+ _.Nc = function Vnb() {
+ return new Kub(this, 16);
+ };
+ _.Vc = function Jnb(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Wc = function Knb(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Fb = function Lnb(a) {
+ return pb(this.a, a);
+ };
+ _.Xb = function Mnb(a) {
+ return this.a.Xb(a);
+ };
+ _.Hb = function Nnb() {
+ return tb(this.a);
+ };
+ _.Xc = function Onb(a) {
+ return this.a.Xc(a);
+ };
+ _.dc = function Pnb() {
+ return this.a.dc();
+ };
+ _.Yc = function Qnb() {
+ return new Xnb(this.a.Zc(0));
+ };
+ _.Zc = function Rnb(a) {
+ return new Xnb(this.a.Zc(a));
+ };
+ _.$c = function Snb(a) {
+ throw vbb(new bgb());
+ };
+ _._c = function Tnb(a, b) {
+ throw vbb(new bgb());
+ };
+ _.ad = function Unb(a) {
+ throw vbb(new bgb());
+ };
+ _.bd = function Wnb(a, b) {
+ return new Inb(this.a.bd(a, b));
+ };
+ mdb(bie, "Collections/UnmodifiableList", 531);
+ bcb(690, 371, jie, Xnb);
+ _.Qb = function bob() {
+ Cnb();
+ };
+ _.Rb = function Ynb(a) {
+ throw vbb(new bgb());
+ };
+ _.Sb = function Znb() {
+ return this.a.Sb();
+ };
+ _.Tb = function $nb() {
+ return this.a.Tb();
+ };
+ _.Ub = function _nb() {
+ return this.a.Ub();
+ };
+ _.Vb = function aob() {
+ return this.a.Vb();
+ };
+ _.Wb = function cob(a) {
+ throw vbb(new bgb());
+ };
+ mdb(bie, "Collections/UnmodifiableListIterator", 690);
+ bcb(600, 1, cie, iob);
+ _.wc = function oob(a) {
+ stb(this, a);
+ };
+ _.yc = function tob(a, b, c) {
+ return ttb(this, a, b, c);
+ };
+ _.$b = function job() {
+ throw vbb(new bgb());
+ };
+ _._b = function kob(a) {
+ return this.c._b(a);
+ };
+ _.uc = function lob(a) {
+ return dob(this, a);
+ };
+ _.vc = function mob() {
+ return eob(this);
+ };
+ _.Fb = function nob(a) {
+ return fob(this, a);
+ };
+ _.xc = function pob(a) {
+ return this.c.xc(a);
+ };
+ _.Hb = function qob() {
+ return tb(this.c);
+ };
+ _.dc = function rob() {
+ return this.c.dc();
+ };
+ _.ec = function sob() {
+ return gob(this);
+ };
+ _.zc = function uob(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Bc = function vob(a) {
+ throw vbb(new bgb());
+ };
+ _.gc = function wob() {
+ return this.c.gc();
+ };
+ _.Ib = function xob() {
+ return fcb(this.c);
+ };
+ _.Cc = function yob() {
+ return hob(this);
+ };
+ mdb(bie, "Collections/UnmodifiableMap", 600);
+ bcb(382, 372, Bie, zob);
+ _.Nc = function Cob() {
+ return new Kub(this, 1);
+ };
+ _.Fb = function Aob(a) {
+ return pb(this.b, a);
+ };
+ _.Hb = function Bob() {
+ return tb(this.b);
+ };
+ mdb(bie, "Collections/UnmodifiableSet", 382);
+ bcb(944, 382, Bie, Gob);
+ _.Hc = function Hob(a) {
+ return Dob(this, a);
+ };
+ _.Ic = function Iob(a) {
+ return this.b.Ic(a);
+ };
+ _.Kc = function Job() {
+ var a;
+ a = this.b.Kc();
+ return new Mob(a);
+ };
+ _.Pc = function Kob() {
+ var a;
+ a = this.b.Pc();
+ Fob(a, a.length);
+ return a;
+ };
+ _.Qc = function Lob(a) {
+ return Eob(this, a);
+ };
+ mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet", 944);
+ bcb(945, 1, aie, Mob);
+ _.Nb = function Nob(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function Pob() {
+ return new Rob(BD(this.a.Pb(), 42));
+ };
+ _.Ob = function Oob() {
+ return this.a.Ob();
+ };
+ _.Qb = function Qob() {
+ throw vbb(new bgb());
+ };
+ mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet/1", 945);
+ bcb(688, 1, _je, Rob);
+ _.Fb = function Sob(a) {
+ return this.a.Fb(a);
+ };
+ _.cd = function Tob() {
+ return this.a.cd();
+ };
+ _.dd = function Uob() {
+ return this.a.dd();
+ };
+ _.Hb = function Vob() {
+ return this.a.Hb();
+ };
+ _.ed = function Wob(a) {
+ throw vbb(new bgb());
+ };
+ _.Ib = function Xob() {
+ return fcb(this.a);
+ };
+ mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry", 688);
+ bcb(601, 531, { 20: 1, 14: 1, 15: 1, 54: 1 }, Yob);
+ mdb(bie, "Collections/UnmodifiableRandomAccessList", 601);
+ bcb(689, 382, Die, Zob);
+ _.Nc = function apb() {
+ return new Rub(this);
+ };
+ _.Fb = function $ob(a) {
+ return pb(this.a, a);
+ };
+ _.Hb = function _ob() {
+ return tb(this.a);
+ };
+ mdb(bie, "Collections/UnmodifiableSortedSet", 689);
+ bcb(847, 1, dke, bpb);
+ _.ue = function cpb(a, b) {
+ var c;
+ return c = Ucc(BD(a, 11), BD(b, 11)), c != 0 ? c : Wcc(BD(a, 11), BD(b, 11));
+ };
+ _.Fb = function dpb(a) {
+ return this === a;
+ };
+ _.ve = function epb() {
+ return new tpb(this);
+ };
+ mdb(bie, "Comparator/lambda$0$Type", 847);
+ var fpb, gpb, hpb;
+ bcb(751, 1, dke, kpb);
+ _.ue = function lpb(a, b) {
+ return jpb(BD(a, 35), BD(b, 35));
+ };
+ _.Fb = function mpb(a) {
+ return this === a;
+ };
+ _.ve = function npb() {
+ return ipb(), hpb;
+ };
+ mdb(bie, "Comparators/NaturalOrderComparator", 751);
+ bcb(1177, 1, dke, ppb);
+ _.ue = function qpb(a, b) {
+ return opb(BD(a, 35), BD(b, 35));
+ };
+ _.Fb = function rpb(a) {
+ return this === a;
+ };
+ _.ve = function spb() {
+ return ipb(), gpb;
+ };
+ mdb(bie, "Comparators/ReverseNaturalOrderComparator", 1177);
+ bcb(64, 1, dke, tpb);
+ _.Fb = function vpb(a) {
+ return this === a;
+ };
+ _.ue = function upb(a, b) {
+ return this.a.ue(b, a);
+ };
+ _.ve = function wpb() {
+ return this.a;
+ };
+ mdb(bie, "Comparators/ReversedComparator", 64);
+ bcb(166, 60, Tie, Apb);
+ mdb(bie, "ConcurrentModificationException", 166);
+ var Bpb, Cpb;
+ bcb(1904, 1, eke, Gpb);
+ _.we = function Hpb(a) {
+ Epb(this, a);
+ };
+ _.Ib = function Ipb() {
+ return "DoubleSummaryStatistics[count = " + Ubb(this.a) + ", avg = " + (Dbb(this.a, 0) ? Fpb(this) / Sbb(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + Fpb(this) + "]";
+ };
+ _.a = 0;
+ _.b = Qje;
+ _.c = Pje;
+ _.d = 0;
+ _.e = 0;
+ _.f = 0;
+ mdb(bie, "DoubleSummaryStatistics", 1904);
+ bcb(1805, 60, Tie, Jpb);
+ mdb(bie, "EmptyStackException", 1805);
+ bcb(451, 1967, cie, Rpb);
+ _.zc = function Xpb(a, b) {
+ return Opb(this, a, b);
+ };
+ _.$b = function Spb() {
+ Kpb(this);
+ };
+ _._b = function Tpb(a) {
+ return Lpb(this, a);
+ };
+ _.uc = function Upb(a) {
+ var b, c;
+ for (c = new Gqb(this.a); c.a < c.c.a.length; ) {
+ b = Fqb(c);
+ if (wtb(a, this.b[b.g])) {
+ return true;
+ }
+ }
+ return false;
+ };
+ _.vc = function Vpb() {
+ return new _pb(this);
+ };
+ _.xc = function Wpb(a) {
+ return Mpb(this, a);
+ };
+ _.Bc = function Ypb(a) {
+ return Ppb(this, a);
+ };
+ _.gc = function Zpb() {
+ return this.a.c;
+ };
+ mdb(bie, "EnumMap", 451);
+ bcb(1352, eie, fie, _pb);
+ _.$b = function aqb() {
+ Kpb(this.a);
+ };
+ _.Hc = function bqb(a) {
+ return $pb(this, a);
+ };
+ _.Kc = function cqb() {
+ return new fqb(this.a);
+ };
+ _.Mc = function dqb(a) {
+ var b;
+ if ($pb(this, a)) {
+ b = BD(a, 42).cd();
+ Ppb(this.a, b);
+ return true;
+ }
+ return false;
+ };
+ _.gc = function eqb() {
+ return this.a.a.c;
+ };
+ mdb(bie, "EnumMap/EntrySet", 1352);
+ bcb(1353, 1, aie, fqb);
+ _.Nb = function gqb(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function iqb() {
+ return this.b = Fqb(this.a), new kqb(this.c, this.b);
+ };
+ _.Ob = function hqb() {
+ return Eqb(this.a);
+ };
+ _.Qb = function jqb() {
+ yCb(!!this.b);
+ Ppb(this.c, this.b);
+ this.b = null;
+ };
+ mdb(bie, "EnumMap/EntrySetIterator", 1353);
+ bcb(1354, 1984, _je, kqb);
+ _.cd = function lqb() {
+ return this.a;
+ };
+ _.dd = function mqb() {
+ return this.b.b[this.a.g];
+ };
+ _.ed = function nqb(a) {
+ return Qpb(this.b, this.a.g, a);
+ };
+ mdb(bie, "EnumMap/MapEntry", 1354);
+ bcb(174, eie, { 20: 1, 28: 1, 14: 1, 174: 1, 21: 1 });
+ var hK = mdb(bie, "EnumSet", 174);
+ bcb(156, 174, { 20: 1, 28: 1, 14: 1, 174: 1, 156: 1, 21: 1 }, xqb);
+ _.Fc = function yqb(a) {
+ return rqb(this, BD(a, 22));
+ };
+ _.Hc = function zqb(a) {
+ return tqb(this, a);
+ };
+ _.Kc = function Aqb() {
+ return new Gqb(this);
+ };
+ _.Mc = function Bqb(a) {
+ return vqb(this, a);
+ };
+ _.gc = function Cqb() {
+ return this.c;
+ };
+ _.c = 0;
+ mdb(bie, "EnumSet/EnumSetImpl", 156);
+ bcb(343, 1, aie, Gqb);
+ _.Nb = function Hqb(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function Jqb() {
+ return Fqb(this);
+ };
+ _.Ob = function Iqb() {
+ return Eqb(this);
+ };
+ _.Qb = function Kqb() {
+ yCb(this.b != -1);
+ NC(this.c.b, this.b, null);
+ --this.c.c;
+ this.b = -1;
+ };
+ _.a = -1;
+ _.b = -1;
+ mdb(bie, "EnumSet/EnumSetImpl/IteratorImpl", 343);
+ bcb(43, 488, fke, Lqb, Mqb, Nqb);
+ _.re = function Oqb(a, b) {
+ return PD(a) === PD(b) || a != null && pb(a, b);
+ };
+ _.se = function Pqb(a) {
+ var b;
+ b = tb(a);
+ return b | 0;
+ };
+ mdb(bie, "HashMap", 43);
+ bcb(53, eie, gke, Tqb, Uqb, Vqb);
+ _.Fc = function Xqb(a) {
+ return Qqb(this, a);
+ };
+ _.$b = function Yqb() {
+ this.a.$b();
+ };
+ _.Hc = function Zqb(a) {
+ return Rqb(this, a);
+ };
+ _.dc = function $qb() {
+ return this.a.gc() == 0;
+ };
+ _.Kc = function _qb() {
+ return this.a.ec().Kc();
+ };
+ _.Mc = function arb(a) {
+ return Sqb(this, a);
+ };
+ _.gc = function brb() {
+ return this.a.gc();
+ };
+ var jK = mdb(bie, "HashSet", 53);
+ bcb(1781, 1, sie, drb);
+ _.ud = function erb(a) {
+ crb(this, a);
+ };
+ _.Ib = function frb() {
+ return "IntSummaryStatistics[count = " + Ubb(this.a) + ", avg = " + (Dbb(this.a, 0) ? Sbb(this.d) / Sbb(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + Ubb(this.d) + "]";
+ };
+ _.a = 0;
+ _.b = Rie;
+ _.c = Ohe;
+ _.d = 0;
+ mdb(bie, "IntSummaryStatistics", 1781);
+ bcb(1049, 1, vie, lrb);
+ _.Jc = function mrb(a) {
+ reb(this, a);
+ };
+ _.Kc = function nrb() {
+ return new orb(this);
+ };
+ _.c = 0;
+ mdb(bie, "InternalHashCodeMap", 1049);
+ bcb(711, 1, aie, orb);
+ _.Nb = function prb(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function rrb() {
+ return this.d = this.a[this.c++], this.d;
+ };
+ _.Ob = function qrb() {
+ var a;
+ if (this.c < this.a.length) {
+ return true;
+ }
+ a = this.b.next();
+ if (!a.done) {
+ this.a = a.value[1];
+ this.c = 0;
+ return true;
+ }
+ return false;
+ };
+ _.Qb = function srb() {
+ krb(this.e, this.d.cd());
+ this.c != 0 && --this.c;
+ };
+ _.c = 0;
+ _.d = null;
+ mdb(bie, "InternalHashCodeMap/1", 711);
+ var vrb;
+ bcb(1047, 1, vie, Frb);
+ _.Jc = function Grb(a) {
+ reb(this, a);
+ };
+ _.Kc = function Hrb() {
+ return new Irb(this);
+ };
+ _.c = 0;
+ _.d = 0;
+ mdb(bie, "InternalStringMap", 1047);
+ bcb(710, 1, aie, Irb);
+ _.Nb = function Jrb(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function Lrb() {
+ return this.c = this.a, this.a = this.b.next(), new Nrb(this.d, this.c, this.d.d);
+ };
+ _.Ob = function Krb() {
+ return !this.a.done;
+ };
+ _.Qb = function Mrb() {
+ Erb(this.d, this.c.value[0]);
+ };
+ mdb(bie, "InternalStringMap/1", 710);
+ bcb(1048, 1984, _je, Nrb);
+ _.cd = function Orb() {
+ return this.b.value[0];
+ };
+ _.dd = function Prb() {
+ if (this.a.d != this.c) {
+ return Crb(this.a, this.b.value[0]);
+ }
+ return this.b.value[1];
+ };
+ _.ed = function Qrb(a) {
+ return Drb(this.a, this.b.value[0], a);
+ };
+ _.c = 0;
+ mdb(bie, "InternalStringMap/2", 1048);
+ bcb(228, 43, fke, $rb, _rb);
+ _.$b = function asb() {
+ Urb(this);
+ };
+ _._b = function bsb(a) {
+ return Vrb(this, a);
+ };
+ _.uc = function csb(a) {
+ var b;
+ b = this.d.a;
+ while (b != this.d) {
+ if (wtb(b.e, a)) {
+ return true;
+ }
+ b = b.a;
+ }
+ return false;
+ };
+ _.vc = function dsb() {
+ return new nsb(this);
+ };
+ _.xc = function esb(a) {
+ return Wrb(this, a);
+ };
+ _.zc = function fsb(a, b) {
+ return Xrb(this, a, b);
+ };
+ _.Bc = function gsb(a) {
+ return Zrb(this, a);
+ };
+ _.gc = function hsb() {
+ return Vhb(this.e);
+ };
+ _.c = false;
+ mdb(bie, "LinkedHashMap", 228);
+ bcb(387, 383, { 484: 1, 383: 1, 387: 1, 42: 1 }, ksb, lsb);
+ mdb(bie, "LinkedHashMap/ChainEntry", 387);
+ bcb(701, eie, fie, nsb);
+ _.$b = function osb() {
+ Urb(this.a);
+ };
+ _.Hc = function psb(a) {
+ return msb(this, a);
+ };
+ _.Kc = function qsb() {
+ return new usb(this);
+ };
+ _.Mc = function rsb(a) {
+ var b;
+ if (msb(this, a)) {
+ b = BD(a, 42).cd();
+ Zrb(this.a, b);
+ return true;
+ }
+ return false;
+ };
+ _.gc = function ssb() {
+ return Vhb(this.a.e);
+ };
+ mdb(bie, "LinkedHashMap/EntrySet", 701);
+ bcb(702, 1, aie, usb);
+ _.Nb = function vsb(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function xsb() {
+ return tsb(this);
+ };
+ _.Ob = function wsb() {
+ return this.b != this.c.a.d;
+ };
+ _.Qb = function ysb() {
+ yCb(!!this.a);
+ xpb(this.c.a.e, this);
+ jsb(this.a);
+ Thb(this.c.a.e, this.a.d);
+ ypb(this.c.a.e, this);
+ this.a = null;
+ };
+ mdb(bie, "LinkedHashMap/EntrySet/EntryIterator", 702);
+ bcb(178, 53, gke, zsb, Asb, Bsb);
+ var uK = mdb(bie, "LinkedHashSet", 178);
+ bcb(68, 1964, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 68: 1, 15: 1 }, Psb, Qsb);
+ _.Fc = function Rsb(a) {
+ return Dsb(this, a);
+ };
+ _.$b = function Ssb() {
+ Osb(this);
+ };
+ _.Zc = function Tsb(a) {
+ return Jsb(this, a);
+ };
+ _.gc = function Usb() {
+ return this.b;
+ };
+ _.b = 0;
+ var xK = mdb(bie, "LinkedList", 68);
+ bcb(970, 1, jie, $sb);
+ _.Nb = function atb(a) {
+ Rrb(this, a);
+ };
+ _.Rb = function _sb(a) {
+ Vsb(this, a);
+ };
+ _.Ob = function btb() {
+ return Wsb(this);
+ };
+ _.Sb = function ctb() {
+ return this.b.b != this.d.a;
+ };
+ _.Pb = function dtb() {
+ return Xsb(this);
+ };
+ _.Tb = function etb() {
+ return this.a;
+ };
+ _.Ub = function ftb() {
+ return Ysb(this);
+ };
+ _.Vb = function gtb() {
+ return this.a - 1;
+ };
+ _.Qb = function htb() {
+ Zsb(this);
+ };
+ _.Wb = function itb(a) {
+ yCb(!!this.c);
+ this.c.c = a;
+ };
+ _.a = 0;
+ _.c = null;
+ mdb(bie, "LinkedList/ListIteratorImpl", 970);
+ bcb(608, 1, {}, jtb);
+ mdb(bie, "LinkedList/Node", 608);
+ bcb(1959, 1, {});
+ var ltb, mtb;
+ mdb(bie, "Locale", 1959);
+ bcb(861, 1959, {}, otb);
+ _.Ib = function ptb() {
+ return "";
+ };
+ mdb(bie, "Locale/1", 861);
+ bcb(862, 1959, {}, qtb);
+ _.Ib = function rtb() {
+ return "unknown";
+ };
+ mdb(bie, "Locale/4", 862);
+ bcb(109, 60, { 3: 1, 102: 1, 60: 1, 78: 1, 109: 1 }, utb, vtb);
+ mdb(bie, "NoSuchElementException", 109);
+ bcb(404, 1, { 404: 1 }, Ftb);
+ _.Fb = function Gtb(a) {
+ var b;
+ if (a === this) {
+ return true;
+ }
+ if (!JD(a, 404)) {
+ return false;
+ }
+ b = BD(a, 404);
+ return wtb(this.a, b.a);
+ };
+ _.Hb = function Htb() {
+ return xtb(this.a);
+ };
+ _.Ib = function Jtb() {
+ return this.a != null ? Whe + xfb(this.a) + ")" : "Optional.empty()";
+ };
+ var ztb;
+ mdb(bie, "Optional", 404);
+ bcb(463, 1, { 463: 1 }, Otb, Ptb);
+ _.Fb = function Qtb(a) {
+ var b;
+ if (a === this) {
+ return true;
+ }
+ if (!JD(a, 463)) {
+ return false;
+ }
+ b = BD(a, 463);
+ return this.a == b.a && Kdb(this.b, b.b) == 0;
+ };
+ _.Hb = function Rtb() {
+ return this.a ? QD(this.b) : 0;
+ };
+ _.Ib = function Stb() {
+ return this.a ? "OptionalDouble.of(" + ("" + this.b) + ")" : "OptionalDouble.empty()";
+ };
+ _.a = false;
+ _.b = 0;
+ var Ktb;
+ mdb(bie, "OptionalDouble", 463);
+ bcb(517, 1, { 517: 1 }, Wtb, Xtb);
+ _.Fb = function Ytb(a) {
+ var b;
+ if (a === this) {
+ return true;
+ }
+ if (!JD(a, 517)) {
+ return false;
+ }
+ b = BD(a, 517);
+ return this.a == b.a && beb(this.b, b.b) == 0;
+ };
+ _.Hb = function Ztb() {
+ return this.a ? this.b : 0;
+ };
+ _.Ib = function $tb() {
+ return this.a ? "OptionalInt.of(" + ("" + this.b) + ")" : "OptionalInt.empty()";
+ };
+ _.a = false;
+ _.b = 0;
+ var Ttb;
+ mdb(bie, "OptionalInt", 517);
+ bcb(503, 2004, die, gub);
+ _.Gc = function hub(a) {
+ return _tb(this, a);
+ };
+ _.$b = function iub() {
+ this.b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ };
+ _.Hc = function jub(a) {
+ return (a == null ? -1 : Jkb(this.b, a, 0)) != -1;
+ };
+ _.Kc = function kub() {
+ return new qub(this);
+ };
+ _.Mc = function lub(a) {
+ return eub(this, a);
+ };
+ _.gc = function mub() {
+ return this.b.c.length;
+ };
+ _.Nc = function nub() {
+ return new Kub(this, 256);
+ };
+ _.Pc = function oub() {
+ return Pkb(this.b);
+ };
+ _.Qc = function pub(a) {
+ return Qkb(this.b, a);
+ };
+ mdb(bie, "PriorityQueue", 503);
+ bcb(1277, 1, aie, qub);
+ _.Nb = function rub(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function tub() {
+ return this.a < this.c.b.c.length;
+ };
+ _.Pb = function uub() {
+ sCb(this.a < this.c.b.c.length);
+ this.b = this.a++;
+ return Ikb(this.c.b, this.b);
+ };
+ _.Qb = function vub() {
+ yCb(this.b != -1);
+ fub(this.c, this.a = this.b);
+ this.b = -1;
+ };
+ _.a = 0;
+ _.b = -1;
+ mdb(bie, "PriorityQueue/1", 1277);
+ bcb(230, 1, { 230: 1 }, Gub, Hub);
+ _.a = 0;
+ _.b = 0;
+ var wub, xub, yub = 0;
+ mdb(bie, "Random", 230);
+ bcb(27, 1, pie, Kub, Lub, Mub);
+ _.qd = function Nub() {
+ return this.a;
+ };
+ _.rd = function Oub() {
+ Iub(this);
+ return this.c;
+ };
+ _.Nb = function Pub(a) {
+ Iub(this);
+ this.d.Nb(a);
+ };
+ _.sd = function Qub(a) {
+ return Jub(this, a);
+ };
+ _.a = 0;
+ _.c = 0;
+ mdb(bie, "Spliterators/IteratorSpliterator", 27);
+ bcb(485, 27, pie, Rub);
+ mdb(bie, "SortedSet/1", 485);
+ bcb(602, 1, eke, Tub);
+ _.we = function Uub(a) {
+ this.a.td(a);
+ };
+ mdb(bie, "Spliterator/OfDouble/0methodref$accept$Type", 602);
+ bcb(603, 1, eke, Vub);
+ _.we = function Wub(a) {
+ this.a.td(a);
+ };
+ mdb(bie, "Spliterator/OfDouble/1methodref$accept$Type", 603);
+ bcb(604, 1, sie, Xub);
+ _.ud = function Yub(a) {
+ this.a.td(meb(a));
+ };
+ mdb(bie, "Spliterator/OfInt/2methodref$accept$Type", 604);
+ bcb(605, 1, sie, Zub);
+ _.ud = function $ub(a) {
+ this.a.td(meb(a));
+ };
+ mdb(bie, "Spliterator/OfInt/3methodref$accept$Type", 605);
+ bcb(617, 1, pie);
+ _.Nb = function evb(a) {
+ Sub(this, a);
+ };
+ _.qd = function cvb() {
+ return this.d;
+ };
+ _.rd = function dvb() {
+ return this.e;
+ };
+ _.d = 0;
+ _.e = 0;
+ mdb(bie, "Spliterators/BaseSpliterator", 617);
+ bcb(721, 617, pie);
+ _.xe = function gvb(a) {
+ _ub(this, a);
+ };
+ _.Nb = function hvb(a) {
+ JD(a, 182) ? _ub(this, BD(a, 182)) : _ub(this, new Vub(a));
+ };
+ _.sd = function ivb(a) {
+ return JD(a, 182) ? this.ye(BD(a, 182)) : this.ye(new Tub(a));
+ };
+ mdb(bie, "Spliterators/AbstractDoubleSpliterator", 721);
+ bcb(720, 617, pie);
+ _.xe = function kvb(a) {
+ _ub(this, a);
+ };
+ _.Nb = function lvb(a) {
+ JD(a, 196) ? _ub(this, BD(a, 196)) : _ub(this, new Zub(a));
+ };
+ _.sd = function mvb(a) {
+ return JD(a, 196) ? this.ye(BD(a, 196)) : this.ye(new Xub(a));
+ };
+ mdb(bie, "Spliterators/AbstractIntSpliterator", 720);
+ bcb(540, 617, pie);
+ mdb(bie, "Spliterators/AbstractSpliterator", 540);
+ bcb(692, 1, pie);
+ _.Nb = function tvb(a) {
+ Sub(this, a);
+ };
+ _.qd = function rvb() {
+ return this.b;
+ };
+ _.rd = function svb() {
+ return this.d - this.c;
+ };
+ _.b = 0;
+ _.c = 0;
+ _.d = 0;
+ mdb(bie, "Spliterators/BaseArraySpliterator", 692);
+ bcb(947, 692, pie, vvb);
+ _.ze = function wvb(a, b) {
+ uvb(this, BD(a, 38), b);
+ };
+ _.Nb = function xvb(a) {
+ ovb(this, a);
+ };
+ _.sd = function yvb(a) {
+ return pvb(this, a);
+ };
+ mdb(bie, "Spliterators/ArraySpliterator", 947);
+ bcb(693, 692, pie, Avb);
+ _.ze = function Cvb(a, b) {
+ zvb(this, BD(a, 182), b);
+ };
+ _.xe = function Dvb(a) {
+ ovb(this, a);
+ };
+ _.Nb = function Evb(a) {
+ JD(a, 182) ? ovb(this, BD(a, 182)) : ovb(this, new Vub(a));
+ };
+ _.ye = function Fvb(a) {
+ return pvb(this, a);
+ };
+ _.sd = function Gvb(a) {
+ return JD(a, 182) ? pvb(this, BD(a, 182)) : pvb(this, new Tub(a));
+ };
+ mdb(bie, "Spliterators/DoubleArraySpliterator", 693);
+ bcb(1968, 1, pie);
+ _.Nb = function Lvb(a) {
+ Sub(this, a);
+ };
+ _.qd = function Jvb() {
+ return 16448;
+ };
+ _.rd = function Kvb() {
+ return 0;
+ };
+ var Hvb;
+ mdb(bie, "Spliterators/EmptySpliterator", 1968);
+ bcb(946, 1968, pie, Ovb);
+ _.xe = function Pvb(a) {
+ Mvb(a);
+ };
+ _.Nb = function Qvb(a) {
+ JD(a, 196) ? Mvb(BD(a, 196)) : Mvb(new Zub(a));
+ };
+ _.ye = function Rvb(a) {
+ return Nvb(a);
+ };
+ _.sd = function Svb(a) {
+ return JD(a, 196) ? Nvb(BD(a, 196)) : Nvb(new Xub(a));
+ };
+ mdb(bie, "Spliterators/EmptySpliterator/OfInt", 946);
+ bcb(580, 52, pke, Wvb);
+ _.Vc = function Xvb(a, b) {
+ _vb(a, this.a.c.length + 1);
+ Dkb(this.a, a, b);
+ };
+ _.Fc = function Yvb(a) {
+ return Ekb(this.a, a);
+ };
+ _.Wc = function Zvb(a, b) {
+ _vb(a, this.a.c.length + 1);
+ return Fkb(this.a, a, b);
+ };
+ _.Gc = function $vb(a) {
+ return Gkb(this.a, a);
+ };
+ _.$b = function awb() {
+ this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ };
+ _.Hc = function bwb(a) {
+ return Jkb(this.a, a, 0) != -1;
+ };
+ _.Ic = function cwb(a) {
+ return Be(this.a, a);
+ };
+ _.Jc = function dwb(a) {
+ Hkb(this.a, a);
+ };
+ _.Xb = function ewb(a) {
+ return _vb(a, this.a.c.length), Ikb(this.a, a);
+ };
+ _.Xc = function fwb(a) {
+ return Jkb(this.a, a, 0);
+ };
+ _.dc = function gwb() {
+ return this.a.c.length == 0;
+ };
+ _.Kc = function hwb() {
+ return new olb(this.a);
+ };
+ _.$c = function iwb(a) {
+ return _vb(a, this.a.c.length), Kkb(this.a, a);
+ };
+ _.Ud = function jwb(a, b) {
+ Mkb(this.a, a, b);
+ };
+ _._c = function kwb(a, b) {
+ return _vb(a, this.a.c.length), Nkb(this.a, a, b);
+ };
+ _.gc = function lwb() {
+ return this.a.c.length;
+ };
+ _.ad = function mwb(a) {
+ Okb(this.a, a);
+ };
+ _.bd = function nwb(a, b) {
+ return new Jib(this.a, a, b);
+ };
+ _.Pc = function owb() {
+ return Pkb(this.a);
+ };
+ _.Qc = function pwb(a) {
+ return Qkb(this.a, a);
+ };
+ _.Ib = function qwb() {
+ return Fe(this.a);
+ };
+ mdb(bie, "Vector", 580);
+ bcb(809, 580, pke, twb);
+ mdb(bie, "Stack", 809);
+ bcb(206, 1, { 206: 1 }, xwb);
+ _.Ib = function ywb() {
+ return wwb(this);
+ };
+ mdb(bie, "StringJoiner", 206);
+ bcb(544, 1992, { 3: 1, 83: 1, 171: 1, 161: 1 }, Pwb, Qwb);
+ _.$b = function Rwb() {
+ zwb(this);
+ };
+ _.vc = function Swb() {
+ return new cxb(this);
+ };
+ _.zc = function Twb(a, b) {
+ return Iwb(this, a, b);
+ };
+ _.Bc = function Uwb(a) {
+ return Jwb(this, a);
+ };
+ _.gc = function Vwb() {
+ return this.c;
+ };
+ _.c = 0;
+ mdb(bie, "TreeMap", 544);
+ bcb(390, 1, aie, Ywb);
+ _.Nb = function $wb(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function axb() {
+ return Wwb(this);
+ };
+ _.Ob = function _wb() {
+ return sib(this.a);
+ };
+ _.Qb = function bxb() {
+ Xwb(this);
+ };
+ mdb(bie, "TreeMap/EntryIterator", 390);
+ bcb(435, 739, fie, cxb);
+ _.$b = function dxb() {
+ zwb(this.a);
+ };
+ mdb(bie, "TreeMap/EntrySet", 435);
+ bcb(436, 383, { 484: 1, 383: 1, 42: 1, 436: 1 }, exb);
+ _.b = false;
+ var dL = mdb(bie, "TreeMap/Node", 436);
+ bcb(621, 1, {}, fxb);
+ _.Ib = function gxb() {
+ return "State: mv=" + this.c + " value=" + this.d + " done=" + this.a + " found=" + this.b;
+ };
+ _.a = false;
+ _.b = false;
+ _.c = false;
+ mdb(bie, "TreeMap/State", 621);
+ bcb(297, 22, qke, mxb);
+ _.Ae = function nxb() {
+ return false;
+ };
+ _.Be = function oxb() {
+ return false;
+ };
+ var hxb, ixb, jxb, kxb;
+ var iL = ndb(bie, "TreeMap/SubMapType", 297, CI, qxb, pxb);
+ bcb(1112, 297, qke, rxb);
+ _.Be = function sxb() {
+ return true;
+ };
+ ndb(bie, "TreeMap/SubMapType/1", 1112, iL, null, null);
+ bcb(1113, 297, qke, txb);
+ _.Ae = function uxb() {
+ return true;
+ };
+ _.Be = function vxb() {
+ return true;
+ };
+ ndb(bie, "TreeMap/SubMapType/2", 1113, iL, null, null);
+ bcb(1114, 297, qke, wxb);
+ _.Ae = function xxb() {
+ return true;
+ };
+ ndb(bie, "TreeMap/SubMapType/3", 1114, iL, null, null);
+ var yxb;
+ bcb(208, eie, { 3: 1, 20: 1, 28: 1, 14: 1, 271: 1, 21: 1, 84: 1, 208: 1 }, Gxb, Hxb);
+ _.Nc = function Oxb() {
+ return new Rub(this);
+ };
+ _.Fc = function Ixb(a) {
+ return Axb(this, a);
+ };
+ _.$b = function Jxb() {
+ zwb(this.a);
+ };
+ _.Hc = function Kxb(a) {
+ return ujb(this.a, a);
+ };
+ _.Kc = function Lxb() {
+ var a;
+ return a = new Ywb(new cxb(new Gjb(this.a).a).b), new Njb(a);
+ };
+ _.Mc = function Mxb(a) {
+ return Fxb(this, a);
+ };
+ _.gc = function Nxb() {
+ return this.a.c;
+ };
+ var kL = mdb(bie, "TreeSet", 208);
+ bcb(966, 1, {}, Rxb);
+ _.Ce = function Sxb(a, b) {
+ return Pxb(this.a, a, b);
+ };
+ mdb(rke, "BinaryOperator/lambda$0$Type", 966);
+ bcb(967, 1, {}, Txb);
+ _.Ce = function Uxb(a, b) {
+ return Qxb(this.a, a, b);
+ };
+ mdb(rke, "BinaryOperator/lambda$1$Type", 967);
+ bcb(846, 1, {}, Vxb);
+ _.Kb = function Wxb(a) {
+ return a;
+ };
+ mdb(rke, "Function/lambda$0$Type", 846);
+ bcb(431, 1, Oie, Xxb);
+ _.Mb = function Yxb(a) {
+ return !this.a.Mb(a);
+ };
+ mdb(rke, "Predicate/lambda$2$Type", 431);
+ bcb(572, 1, { 572: 1 });
+ var qL = mdb(ske, "Handler", 572);
+ bcb(2007, 1, Qhe);
+ _.ne = function _xb() {
+ return "DUMMY";
+ };
+ _.Ib = function ayb() {
+ return this.ne();
+ };
+ var Zxb;
+ mdb(ske, "Level", 2007);
+ bcb(1621, 2007, Qhe, byb);
+ _.ne = function cyb() {
+ return "INFO";
+ };
+ mdb(ske, "Level/LevelInfo", 1621);
+ bcb(1640, 1, {}, gyb);
+ var dyb;
+ mdb(ske, "LogManager", 1640);
+ bcb(1780, 1, Qhe, iyb);
+ _.b = null;
+ mdb(ske, "LogRecord", 1780);
+ bcb(512, 1, { 512: 1 }, wyb);
+ _.e = false;
+ var jyb = false, kyb = false, lyb = false, myb = false, nyb = false;
+ mdb(ske, "Logger", 512);
+ bcb(819, 572, { 572: 1 }, zyb);
+ mdb(ske, "SimpleConsoleLogHandler", 819);
+ bcb(132, 22, { 3: 1, 35: 1, 22: 1, 132: 1 }, Gyb);
+ var Cyb, Dyb, Eyb;
+ var xL = ndb(vke, "Collector/Characteristics", 132, CI, Iyb, Hyb);
+ var Jyb;
+ bcb(744, 1, {}, Lyb);
+ mdb(vke, "CollectorImpl", 744);
+ bcb(1060, 1, {}, Zyb);
+ _.Ce = function $yb(a, b) {
+ return vwb(BD(a, 206), BD(b, 206));
+ };
+ mdb(vke, "Collectors/10methodref$merge$Type", 1060);
+ bcb(1061, 1, {}, _yb);
+ _.Kb = function azb(a) {
+ return wwb(BD(a, 206));
+ };
+ mdb(vke, "Collectors/11methodref$toString$Type", 1061);
+ bcb(1062, 1, {}, bzb);
+ _.Kb = function czb(a) {
+ return Bcb(), _Pb(a) ? true : false;
+ };
+ mdb(vke, "Collectors/12methodref$test$Type", 1062);
+ bcb(251, 1, {}, dzb);
+ _.Od = function ezb(a, b) {
+ BD(a, 14).Fc(b);
+ };
+ mdb(vke, "Collectors/20methodref$add$Type", 251);
+ bcb(253, 1, {}, fzb);
+ _.Ee = function gzb() {
+ return new Rkb();
+ };
+ mdb(vke, "Collectors/21methodref$ctor$Type", 253);
+ bcb(346, 1, {}, hzb);
+ _.Ee = function izb() {
+ return new Tqb();
+ };
+ mdb(vke, "Collectors/23methodref$ctor$Type", 346);
+ bcb(347, 1, {}, jzb);
+ _.Od = function kzb(a, b) {
+ Qqb(BD(a, 53), b);
+ };
+ mdb(vke, "Collectors/24methodref$add$Type", 347);
+ bcb(1055, 1, {}, lzb);
+ _.Ce = function mzb(a, b) {
+ return Myb(BD(a, 15), BD(b, 14));
+ };
+ mdb(vke, "Collectors/4methodref$addAll$Type", 1055);
+ bcb(1059, 1, {}, nzb);
+ _.Od = function ozb(a, b) {
+ uwb(BD(a, 206), BD(b, 475));
+ };
+ mdb(vke, "Collectors/9methodref$add$Type", 1059);
+ bcb(1058, 1, {}, pzb);
+ _.Ee = function qzb() {
+ return new xwb(this.a, this.b, this.c);
+ };
+ mdb(vke, "Collectors/lambda$15$Type", 1058);
+ bcb(1063, 1, {}, rzb);
+ _.Ee = function szb() {
+ var a;
+ return a = new $rb(), Xrb(a, (Bcb(), false), new Rkb()), Xrb(a, true, new Rkb()), a;
+ };
+ mdb(vke, "Collectors/lambda$22$Type", 1063);
+ bcb(1064, 1, {}, tzb);
+ _.Ee = function uzb() {
+ return OC(GC(SI, 1), Uhe, 1, 5, [this.a]);
+ };
+ mdb(vke, "Collectors/lambda$25$Type", 1064);
+ bcb(1065, 1, {}, vzb);
+ _.Od = function wzb(a, b) {
+ Oyb(this.a, CD(a));
+ };
+ mdb(vke, "Collectors/lambda$26$Type", 1065);
+ bcb(1066, 1, {}, xzb);
+ _.Ce = function yzb(a, b) {
+ return Pyb(this.a, CD(a), CD(b));
+ };
+ mdb(vke, "Collectors/lambda$27$Type", 1066);
+ bcb(1067, 1, {}, zzb);
+ _.Kb = function Azb(a) {
+ return CD(a)[0];
+ };
+ mdb(vke, "Collectors/lambda$28$Type", 1067);
+ bcb(713, 1, {}, Czb);
+ _.Ce = function Dzb(a, b) {
+ return Bzb(a, b);
+ };
+ mdb(vke, "Collectors/lambda$4$Type", 713);
+ bcb(252, 1, {}, Ezb);
+ _.Ce = function Fzb(a, b) {
+ return Ryb(BD(a, 14), BD(b, 14));
+ };
+ mdb(vke, "Collectors/lambda$42$Type", 252);
+ bcb(348, 1, {}, Gzb);
+ _.Ce = function Hzb(a, b) {
+ return Syb(BD(a, 53), BD(b, 53));
+ };
+ mdb(vke, "Collectors/lambda$50$Type", 348);
+ bcb(349, 1, {}, Izb);
+ _.Kb = function Jzb(a) {
+ return BD(a, 53);
+ };
+ mdb(vke, "Collectors/lambda$51$Type", 349);
+ bcb(1054, 1, {}, Kzb);
+ _.Od = function Lzb(a, b) {
+ Tyb(this.a, BD(a, 83), b);
+ };
+ mdb(vke, "Collectors/lambda$7$Type", 1054);
+ bcb(1056, 1, {}, Mzb);
+ _.Ce = function Nzb(a, b) {
+ return Vyb(BD(a, 83), BD(b, 83), new lzb());
+ };
+ mdb(vke, "Collectors/lambda$8$Type", 1056);
+ bcb(1057, 1, {}, Ozb);
+ _.Kb = function Pzb(a) {
+ return Uyb(this.a, BD(a, 83));
+ };
+ mdb(vke, "Collectors/lambda$9$Type", 1057);
+ bcb(539, 1, {});
+ _.He = function Wzb() {
+ Qzb(this);
+ };
+ _.d = false;
+ mdb(vke, "TerminatableStream", 539);
+ bcb(812, 539, wke, bAb);
+ _.He = function cAb() {
+ Qzb(this);
+ };
+ mdb(vke, "DoubleStreamImpl", 812);
+ bcb(1784, 721, pie, fAb);
+ _.ye = function hAb(a) {
+ return eAb(this, BD(a, 182));
+ };
+ _.a = null;
+ mdb(vke, "DoubleStreamImpl/2", 1784);
+ bcb(1785, 1, eke, iAb);
+ _.we = function jAb(a) {
+ gAb(this.a, a);
+ };
+ mdb(vke, "DoubleStreamImpl/2/lambda$0$Type", 1785);
+ bcb(1782, 1, eke, kAb);
+ _.we = function lAb(a) {
+ dAb(this.a, a);
+ };
+ mdb(vke, "DoubleStreamImpl/lambda$0$Type", 1782);
+ bcb(1783, 1, eke, mAb);
+ _.we = function nAb(a) {
+ Epb(this.a, a);
+ };
+ mdb(vke, "DoubleStreamImpl/lambda$2$Type", 1783);
+ bcb(1358, 720, pie, rAb);
+ _.ye = function sAb(a) {
+ return qAb(this, BD(a, 196));
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ mdb(vke, "IntStream/5", 1358);
+ bcb(787, 539, wke, vAb);
+ _.He = function wAb() {
+ Qzb(this);
+ };
+ _.Ie = function xAb() {
+ return Tzb(this), this.a;
+ };
+ mdb(vke, "IntStreamImpl", 787);
+ bcb(788, 539, wke, yAb);
+ _.He = function zAb() {
+ Qzb(this);
+ };
+ _.Ie = function AAb() {
+ return Tzb(this), Ivb(), Hvb;
+ };
+ mdb(vke, "IntStreamImpl/Empty", 788);
+ bcb(1463, 1, sie, BAb);
+ _.ud = function CAb(a) {
+ crb(this.a, a);
+ };
+ mdb(vke, "IntStreamImpl/lambda$4$Type", 1463);
+ var xM = odb(vke, "Stream");
+ bcb(30, 539, { 525: 1, 670: 1, 833: 1 }, YAb);
+ _.He = function ZAb() {
+ Qzb(this);
+ };
+ var DAb;
+ mdb(vke, "StreamImpl", 30);
+ bcb(845, 1, {}, bBb);
+ _.ld = function cBb(a) {
+ return aBb(a);
+ };
+ mdb(vke, "StreamImpl/0methodref$lambda$2$Type", 845);
+ bcb(1084, 540, pie, fBb);
+ _.sd = function gBb(a) {
+ while (dBb(this)) {
+ if (this.a.sd(a)) {
+ return true;
+ } else {
+ Qzb(this.b);
+ this.b = null;
+ this.a = null;
+ }
+ }
+ return false;
+ };
+ mdb(vke, "StreamImpl/1", 1084);
+ bcb(1085, 1, qie, hBb);
+ _.td = function iBb(a) {
+ eBb(this.a, BD(a, 833));
+ };
+ mdb(vke, "StreamImpl/1/lambda$0$Type", 1085);
+ bcb(1086, 1, Oie, jBb);
+ _.Mb = function kBb(a) {
+ return Qqb(this.a, a);
+ };
+ mdb(vke, "StreamImpl/1methodref$add$Type", 1086);
+ bcb(1087, 540, pie, lBb);
+ _.sd = function mBb(a) {
+ var b;
+ if (!this.a) {
+ b = new Rkb();
+ this.b.a.Nb(new nBb(b));
+ mmb();
+ Okb(b, this.c);
+ this.a = new Kub(b, 16);
+ }
+ return Jub(this.a, a);
+ };
+ _.a = null;
+ mdb(vke, "StreamImpl/5", 1087);
+ bcb(1088, 1, qie, nBb);
+ _.td = function oBb(a) {
+ Ekb(this.a, a);
+ };
+ mdb(vke, "StreamImpl/5/2methodref$add$Type", 1088);
+ bcb(722, 540, pie, qBb);
+ _.sd = function rBb(a) {
+ this.b = false;
+ while (!this.b && this.c.sd(new sBb(this, a)))
+ ;
+ return this.b;
+ };
+ _.b = false;
+ mdb(vke, "StreamImpl/FilterSpliterator", 722);
+ bcb(1079, 1, qie, sBb);
+ _.td = function tBb(a) {
+ pBb(this.a, this.b, a);
+ };
+ mdb(vke, "StreamImpl/FilterSpliterator/lambda$0$Type", 1079);
+ bcb(1075, 721, pie, wBb);
+ _.ye = function xBb(a) {
+ return vBb(this, BD(a, 182));
+ };
+ mdb(vke, "StreamImpl/MapToDoubleSpliterator", 1075);
+ bcb(1078, 1, qie, yBb);
+ _.td = function zBb(a) {
+ uBb(this.a, this.b, a);
+ };
+ mdb(vke, "StreamImpl/MapToDoubleSpliterator/lambda$0$Type", 1078);
+ bcb(1074, 720, pie, CBb);
+ _.ye = function DBb(a) {
+ return BBb(this, BD(a, 196));
+ };
+ mdb(vke, "StreamImpl/MapToIntSpliterator", 1074);
+ bcb(1077, 1, qie, EBb);
+ _.td = function FBb(a) {
+ ABb(this.a, this.b, a);
+ };
+ mdb(vke, "StreamImpl/MapToIntSpliterator/lambda$0$Type", 1077);
+ bcb(719, 540, pie, IBb);
+ _.sd = function JBb(a) {
+ return HBb(this, a);
+ };
+ mdb(vke, "StreamImpl/MapToObjSpliterator", 719);
+ bcb(1076, 1, qie, KBb);
+ _.td = function LBb(a) {
+ GBb(this.a, this.b, a);
+ };
+ mdb(vke, "StreamImpl/MapToObjSpliterator/lambda$0$Type", 1076);
+ bcb(618, 1, qie, NBb);
+ _.td = function OBb(a) {
+ MBb(this, a);
+ };
+ mdb(vke, "StreamImpl/ValueConsumer", 618);
+ bcb(1080, 1, qie, PBb);
+ _.td = function QBb(a) {
+ EAb();
+ };
+ mdb(vke, "StreamImpl/lambda$0$Type", 1080);
+ bcb(1081, 1, qie, RBb);
+ _.td = function SBb(a) {
+ EAb();
+ };
+ mdb(vke, "StreamImpl/lambda$1$Type", 1081);
+ bcb(1082, 1, {}, TBb);
+ _.Ce = function UBb(a, b) {
+ return $Ab(this.a, a, b);
+ };
+ mdb(vke, "StreamImpl/lambda$4$Type", 1082);
+ bcb(1083, 1, qie, VBb);
+ _.td = function WBb(a) {
+ _Ab(this.b, this.a, a);
+ };
+ mdb(vke, "StreamImpl/lambda$5$Type", 1083);
+ bcb(1089, 1, qie, XBb);
+ _.td = function YBb(a) {
+ Xzb(this.a, BD(a, 365));
+ };
+ mdb(vke, "TerminatableStream/lambda$0$Type", 1089);
+ bcb(2041, 1, {});
+ bcb(1914, 1, {}, iCb);
+ mdb("javaemul.internal", "ConsoleLogger", 1914);
+ bcb(2038, 1, {});
+ var ECb = 0;
+ var GCb, HCb = 0, ICb;
+ bcb(1768, 1, qie, OCb);
+ _.td = function PCb(a) {
+ BD(a, 308);
+ };
+ mdb(Cke, "BowyerWatsonTriangulation/lambda$0$Type", 1768);
+ bcb(1769, 1, qie, QCb);
+ _.td = function RCb(a) {
+ ye(this.a, BD(a, 308).e);
+ };
+ mdb(Cke, "BowyerWatsonTriangulation/lambda$1$Type", 1769);
+ bcb(1770, 1, qie, SCb);
+ _.td = function TCb(a) {
+ BD(a, 168);
+ };
+ mdb(Cke, "BowyerWatsonTriangulation/lambda$2$Type", 1770);
+ bcb(1765, 1, Dke, WCb);
+ _.ue = function XCb(a, b) {
+ return VCb(this.a, BD(a, 168), BD(b, 168));
+ };
+ _.Fb = function YCb(a) {
+ return this === a;
+ };
+ _.ve = function ZCb() {
+ return new tpb(this);
+ };
+ mdb(Cke, "NaiveMinST/lambda$0$Type", 1765);
+ bcb(499, 1, {}, _Cb);
+ mdb(Cke, "NodeMicroLayout", 499);
+ bcb(168, 1, { 168: 1 }, aDb);
+ _.Fb = function bDb(a) {
+ var b;
+ if (JD(a, 168)) {
+ b = BD(a, 168);
+ return wtb(this.a, b.a) && wtb(this.b, b.b) || wtb(this.a, b.b) && wtb(this.b, b.a);
+ } else {
+ return false;
+ }
+ };
+ _.Hb = function cDb() {
+ return xtb(this.a) + xtb(this.b);
+ };
+ var GM = mdb(Cke, "TEdge", 168);
+ bcb(308, 1, { 308: 1 }, eDb);
+ _.Fb = function fDb(a) {
+ var b;
+ if (JD(a, 308)) {
+ b = BD(a, 308);
+ return dDb(this, b.a) && dDb(this, b.b) && dDb(this, b.c);
+ } else {
+ return false;
+ }
+ };
+ _.Hb = function gDb() {
+ return xtb(this.a) + xtb(this.b) + xtb(this.c);
+ };
+ mdb(Cke, "TTriangle", 308);
+ bcb(221, 1, { 221: 1 }, hDb);
+ mdb(Cke, "Tree", 221);
+ bcb(1254, 1, {}, jDb);
+ mdb(Eke, "Scanline", 1254);
+ var JM = odb(Eke, Fke);
+ bcb(1692, 1, {}, mDb);
+ mdb(Gke, "CGraph", 1692);
+ bcb(307, 1, { 307: 1 }, oDb);
+ _.b = 0;
+ _.c = 0;
+ _.d = 0;
+ _.g = 0;
+ _.i = 0;
+ _.k = Qje;
+ mdb(Gke, "CGroup", 307);
+ bcb(815, 1, {}, sDb);
+ mdb(Gke, "CGroup/CGroupBuilder", 815);
+ bcb(57, 1, { 57: 1 }, tDb);
+ _.Ib = function uDb() {
+ var a;
+ if (this.j) {
+ return GD(this.j.Kb(this));
+ }
+ return fdb(PM), PM.o + "@" + (a = FCb(this) >>> 0, a.toString(16));
+ };
+ _.f = 0;
+ _.i = Qje;
+ var PM = mdb(Gke, "CNode", 57);
+ bcb(814, 1, {}, zDb);
+ mdb(Gke, "CNode/CNodeBuilder", 814);
+ var EDb;
+ bcb(1525, 1, {}, GDb);
+ _.Oe = function HDb(a, b) {
+ return 0;
+ };
+ _.Pe = function IDb(a, b) {
+ return 0;
+ };
+ mdb(Gke, Ike, 1525);
+ bcb(1790, 1, {}, JDb);
+ _.Le = function KDb(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ j = Pje;
+ for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
+ b = BD(mlb(d), 57);
+ j = $wnd.Math.min(j, b.a.j.d.c + b.b.a);
+ }
+ n = new Psb();
+ for (g = new olb(a.a.a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 307);
+ f.k = j;
+ f.g == 0 && (Gsb(n, f, n.c.b, n.c), true);
+ }
+ while (n.b != 0) {
+ f = BD(n.b == 0 ? null : (sCb(n.b != 0), Nsb(n, n.a.a)), 307);
+ e = f.j.d.c;
+ for (m = f.a.a.ec().Kc(); m.Ob(); ) {
+ k = BD(m.Pb(), 57);
+ p = f.k + k.b.a;
+ !UDb(a, f, a.d) || k.d.c < p ? k.i = p : k.i = k.d.c;
+ }
+ e -= f.j.i;
+ f.b += e;
+ a.d == (ead(), bad) || a.d == _9c ? f.c += e : f.c -= e;
+ for (l = f.a.a.ec().Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 57);
+ for (i = k.c.Kc(); i.Ob(); ) {
+ h = BD(i.Pb(), 57);
+ fad(a.d) ? o2 = a.g.Oe(k, h) : o2 = a.g.Pe(k, h);
+ h.a.k = $wnd.Math.max(h.a.k, k.i + k.d.b + o2 - h.b.a);
+ VDb(a, h, a.d) && (h.a.k = $wnd.Math.max(h.a.k, h.d.c - h.b.a));
+ --h.a.g;
+ h.a.g == 0 && Dsb(n, h.a);
+ }
+ }
+ }
+ for (c = new olb(a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 57);
+ b.d.c = b.i;
+ }
+ };
+ mdb(Gke, "LongestPathCompaction", 1790);
+ bcb(1690, 1, {}, cEb);
+ _.e = false;
+ var LDb, MDb, NDb;
+ var TM = mdb(Gke, Nke, 1690);
+ bcb(1691, 1, qie, dEb);
+ _.td = function eEb(a) {
+ WDb(this.a, BD(a, 46));
+ };
+ mdb(Gke, Oke, 1691);
+ bcb(1791, 1, {}, fEb);
+ _.Me = function gEb(a) {
+ var b, c, d, e, f, g, h;
+ for (c = new olb(a.a.b); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 57);
+ b.c.$b();
+ }
+ for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 57);
+ for (g = new olb(a.a.b); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 57);
+ if (d == f) {
+ continue;
+ }
+ if (!!d.a && d.a == f.a) {
+ continue;
+ }
+ fad(a.d) ? h = a.g.Pe(d, f) : h = a.g.Oe(d, f);
+ (f.d.c > d.d.c || d.d.c == f.d.c && d.d.b < f.d.b) && BDb(f.d.d + f.d.a + h, d.d.d) && DDb(f.d.d, d.d.d + d.d.a + h) && d.c.Fc(f);
+ }
+ }
+ };
+ mdb(Gke, "QuadraticConstraintCalculation", 1791);
+ bcb(522, 1, { 522: 1 }, lEb);
+ _.a = false;
+ _.b = false;
+ _.c = false;
+ _.d = false;
+ mdb(Gke, Pke, 522);
+ bcb(803, 1, {}, oEb);
+ _.Me = function pEb(a) {
+ this.c = a;
+ nEb(this, new GEb());
+ };
+ mdb(Gke, Qke, 803);
+ bcb(1718, 1, { 679: 1 }, uEb);
+ _.Ke = function vEb(a) {
+ rEb(this, BD(a, 464));
+ };
+ mdb(Gke, Rke, 1718);
+ bcb(1719, 1, Dke, xEb);
+ _.ue = function yEb(a, b) {
+ return wEb(BD(a, 57), BD(b, 57));
+ };
+ _.Fb = function zEb(a) {
+ return this === a;
+ };
+ _.ve = function AEb() {
+ return new tpb(this);
+ };
+ mdb(Gke, Ske, 1719);
+ bcb(464, 1, { 464: 1 }, BEb);
+ _.a = false;
+ mdb(Gke, Tke, 464);
+ bcb(1720, 1, Dke, CEb);
+ _.ue = function DEb(a, b) {
+ return qEb(BD(a, 464), BD(b, 464));
+ };
+ _.Fb = function EEb(a) {
+ return this === a;
+ };
+ _.ve = function FEb() {
+ return new tpb(this);
+ };
+ mdb(Gke, Uke, 1720);
+ bcb(1721, 1, Vke, GEb);
+ _.Lb = function HEb(a) {
+ return BD(a, 57), true;
+ };
+ _.Fb = function IEb(a) {
+ return this === a;
+ };
+ _.Mb = function JEb(a) {
+ return BD(a, 57), true;
+ };
+ mdb(Gke, "ScanlineConstraintCalculator/lambda$1$Type", 1721);
+ bcb(428, 22, { 3: 1, 35: 1, 22: 1, 428: 1 }, NEb);
+ var KEb, LEb;
+ var aN = ndb(Wke, "HighLevelSortingCriterion", 428, CI, PEb, OEb);
+ var QEb;
+ bcb(427, 22, { 3: 1, 35: 1, 22: 1, 427: 1 }, VEb);
+ var SEb, TEb;
+ var bN = ndb(Wke, "LowLevelSortingCriterion", 427, CI, XEb, WEb);
+ var YEb;
+ var C0 = odb(Xke, "ILayoutMetaDataProvider");
+ bcb(853, 1, ale, gFb);
+ _.Qe = function hFb(a) {
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yke), ble), "Polyomino Traversal Strategy"), "Traversal strategy for trying different candidate positions for polyominoes."), eFb), (_5c(), V5c)), dN), pqb((N5c(), L5c)))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zke), ble), "Polyomino Secondary Sorting Criterion"), "Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."), cFb), V5c), bN), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $ke), ble), "Polyomino Primary Sorting Criterion"), "Possible primary sorting criteria for the processing order of polyominoes."), aFb), V5c), aN), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _ke), ble), "Fill Polyominoes"), "Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."), (Bcb(), true)), T5c), wI), pqb(L5c))));
+ };
+ var $Eb, _Eb, aFb, bFb, cFb, dFb, eFb;
+ mdb(Wke, "PolyominoOptions", 853);
+ bcb(250, 22, { 3: 1, 35: 1, 22: 1, 250: 1 }, sFb);
+ var iFb, jFb, kFb, lFb, mFb, nFb, oFb, pFb, qFb;
+ var dN = ndb(Wke, "TraversalStrategy", 250, CI, uFb, tFb);
+ var vFb;
+ bcb(213, 1, { 213: 1 }, yFb);
+ _.Ib = function zFb() {
+ return "NEdge[id=" + this.b + " w=" + this.g + " d=" + this.a + "]";
+ };
+ _.a = 1;
+ _.b = 0;
+ _.c = 0;
+ _.f = false;
+ _.g = 0;
+ var fN = mdb(cle, "NEdge", 213);
+ bcb(176, 1, {}, FFb);
+ mdb(cle, "NEdge/NEdgeBuilder", 176);
+ bcb(653, 1, {}, KFb);
+ mdb(cle, "NGraph", 653);
+ bcb(121, 1, { 121: 1 }, MFb);
+ _.c = -1;
+ _.d = 0;
+ _.e = 0;
+ _.i = -1;
+ _.j = false;
+ var jN = mdb(cle, "NNode", 121);
+ bcb(795, 1, cke, PFb);
+ _.Jc = function XFb(a) {
+ reb(this, a);
+ };
+ _.Lc = function cGb() {
+ return new YAb(null, new Kub(this, 16));
+ };
+ _.ad = function hGb(a) {
+ ktb(this, a);
+ };
+ _.Nc = function iGb() {
+ return new Kub(this, 16);
+ };
+ _.Oc = function jGb() {
+ return new YAb(null, new Kub(this, 16));
+ };
+ _.Vc = function QFb(a, b) {
+ ++this.b;
+ Dkb(this.a, a, b);
+ };
+ _.Fc = function RFb(a) {
+ return NFb(this, a);
+ };
+ _.Wc = function SFb(a, b) {
+ ++this.b;
+ return Fkb(this.a, a, b);
+ };
+ _.Gc = function TFb(a) {
+ ++this.b;
+ return Gkb(this.a, a);
+ };
+ _.$b = function UFb() {
+ ++this.b;
+ this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ };
+ _.Hc = function VFb(a) {
+ return Jkb(this.a, a, 0) != -1;
+ };
+ _.Ic = function WFb(a) {
+ return Be(this.a, a);
+ };
+ _.Xb = function YFb(a) {
+ return Ikb(this.a, a);
+ };
+ _.Xc = function ZFb(a) {
+ return Jkb(this.a, a, 0);
+ };
+ _.dc = function $Fb() {
+ return this.a.c.length == 0;
+ };
+ _.Kc = function _Fb() {
+ return vr(new olb(this.a));
+ };
+ _.Yc = function aGb() {
+ throw vbb(new bgb());
+ };
+ _.Zc = function bGb(a) {
+ throw vbb(new bgb());
+ };
+ _.$c = function dGb(a) {
+ ++this.b;
+ return Kkb(this.a, a);
+ };
+ _.Mc = function eGb(a) {
+ return OFb(this, a);
+ };
+ _._c = function fGb(a, b) {
+ ++this.b;
+ return Nkb(this.a, a, b);
+ };
+ _.gc = function gGb() {
+ return this.a.c.length;
+ };
+ _.bd = function kGb(a, b) {
+ return new Jib(this.a, a, b);
+ };
+ _.Pc = function lGb() {
+ return Pkb(this.a);
+ };
+ _.Qc = function mGb(a) {
+ return Qkb(this.a, a);
+ };
+ _.b = 0;
+ mdb(cle, "NNode/ChangeAwareArrayList", 795);
+ bcb(269, 1, {}, pGb);
+ mdb(cle, "NNode/NNodeBuilder", 269);
+ bcb(1630, 1, {}, KGb);
+ _.a = false;
+ _.f = Ohe;
+ _.j = 0;
+ mdb(cle, "NetworkSimplex", 1630);
+ bcb(1294, 1, qie, QGb);
+ _.td = function RGb(a) {
+ PGb(this.a, BD(a, 680), true, false);
+ };
+ mdb(ele, "NodeLabelAndSizeCalculator/lambda$0$Type", 1294);
+ bcb(558, 1, {}, YGb);
+ _.b = true;
+ _.c = true;
+ _.d = true;
+ _.e = true;
+ mdb(ele, "NodeMarginCalculator", 558);
+ bcb(212, 1, { 212: 1 });
+ _.j = false;
+ _.k = false;
+ var oN = mdb(fle, "Cell", 212);
+ bcb(124, 212, { 124: 1, 212: 1 }, aHb);
+ _.Re = function bHb() {
+ return _Gb(this);
+ };
+ _.Se = function cHb() {
+ var a;
+ a = this.n;
+ return this.a.a + a.b + a.c;
+ };
+ mdb(fle, "AtomicCell", 124);
+ bcb(232, 22, { 3: 1, 35: 1, 22: 1, 232: 1 }, hHb);
+ var dHb, eHb, fHb;
+ var pN = ndb(fle, "ContainerArea", 232, CI, jHb, iHb);
+ var kHb;
+ bcb(326, 212, hle);
+ mdb(fle, "ContainerCell", 326);
+ bcb(1473, 326, hle, FHb);
+ _.Re = function GHb() {
+ var a;
+ a = 0;
+ this.e ? this.b ? a = this.b.b : !!this.a[1][1] && (a = this.a[1][1].Re()) : a = EHb(this, AHb(this, true));
+ return a > 0 ? a + this.n.d + this.n.a : 0;
+ };
+ _.Se = function HHb() {
+ var a, b, c, d, e;
+ e = 0;
+ if (this.e) {
+ this.b ? e = this.b.a : !!this.a[1][1] && (e = this.a[1][1].Se());
+ } else if (this.g) {
+ e = EHb(this, yHb(this, null, true));
+ } else {
+ for (b = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), c = 0, d = b.length; c < d; ++c) {
+ a = b[c];
+ e = $wnd.Math.max(e, EHb(this, yHb(this, a, true)));
+ }
+ }
+ return e > 0 ? e + this.n.b + this.n.c : 0;
+ };
+ _.Te = function IHb() {
+ var a, b, c, d, e;
+ if (this.g) {
+ a = yHb(this, null, false);
+ for (c = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ wHb(this, b, a);
+ }
+ } else {
+ for (c = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), d = 0, e = c.length; d < e; ++d) {
+ b = c[d];
+ a = yHb(this, b, false);
+ wHb(this, b, a);
+ }
+ }
+ };
+ _.Ue = function JHb() {
+ var a, b, c, d;
+ b = this.i;
+ a = this.n;
+ d = AHb(this, false);
+ uHb(this, (gHb(), dHb), b.d + a.d, d);
+ uHb(this, fHb, b.d + b.a - a.a - d[2], d);
+ c = b.a - a.d - a.a;
+ if (d[0] > 0) {
+ d[0] += this.d;
+ c -= d[0];
+ }
+ if (d[2] > 0) {
+ d[2] += this.d;
+ c -= d[2];
+ }
+ this.c.a = $wnd.Math.max(0, c);
+ this.c.d = b.d + a.d + (this.c.a - c) / 2;
+ d[1] = $wnd.Math.max(d[1], c);
+ uHb(this, eHb, b.d + a.d + d[0] - (d[1] - c) / 2, d);
+ };
+ _.b = null;
+ _.d = 0;
+ _.e = false;
+ _.f = false;
+ _.g = false;
+ var rHb = 0, sHb = 0;
+ mdb(fle, "GridContainerCell", 1473);
+ bcb(461, 22, { 3: 1, 35: 1, 22: 1, 461: 1 }, OHb);
+ var KHb, LHb, MHb;
+ var sN = ndb(fle, "HorizontalLabelAlignment", 461, CI, QHb, PHb);
+ var RHb;
+ bcb(306, 212, { 212: 1, 306: 1 }, aIb, bIb, cIb);
+ _.Re = function dIb() {
+ return YHb(this);
+ };
+ _.Se = function eIb() {
+ return ZHb(this);
+ };
+ _.a = 0;
+ _.c = false;
+ var tN = mdb(fle, "LabelCell", 306);
+ bcb(244, 326, { 212: 1, 326: 1, 244: 1 }, mIb);
+ _.Re = function nIb() {
+ return fIb(this);
+ };
+ _.Se = function oIb() {
+ return gIb(this);
+ };
+ _.Te = function rIb() {
+ hIb(this);
+ };
+ _.Ue = function sIb() {
+ iIb(this);
+ };
+ _.b = 0;
+ _.c = 0;
+ _.d = false;
+ mdb(fle, "StripContainerCell", 244);
+ bcb(1626, 1, Oie, tIb);
+ _.Mb = function uIb(a) {
+ return pIb(BD(a, 212));
+ };
+ mdb(fle, "StripContainerCell/lambda$0$Type", 1626);
+ bcb(1627, 1, {}, vIb);
+ _.Fe = function wIb(a) {
+ return BD(a, 212).Se();
+ };
+ mdb(fle, "StripContainerCell/lambda$1$Type", 1627);
+ bcb(1628, 1, Oie, xIb);
+ _.Mb = function yIb(a) {
+ return qIb(BD(a, 212));
+ };
+ mdb(fle, "StripContainerCell/lambda$2$Type", 1628);
+ bcb(1629, 1, {}, zIb);
+ _.Fe = function AIb(a) {
+ return BD(a, 212).Re();
+ };
+ mdb(fle, "StripContainerCell/lambda$3$Type", 1629);
+ bcb(462, 22, { 3: 1, 35: 1, 22: 1, 462: 1 }, FIb);
+ var BIb, CIb, DIb;
+ var zN = ndb(fle, "VerticalLabelAlignment", 462, CI, HIb, GIb);
+ var IIb;
+ bcb(789, 1, {}, LIb);
+ _.c = 0;
+ _.d = 0;
+ _.k = 0;
+ _.s = 0;
+ _.t = 0;
+ _.v = false;
+ _.w = 0;
+ _.D = false;
+ mdb(nle, "NodeContext", 789);
+ bcb(1471, 1, Dke, OIb);
+ _.ue = function PIb(a, b) {
+ return NIb(BD(a, 61), BD(b, 61));
+ };
+ _.Fb = function QIb(a) {
+ return this === a;
+ };
+ _.ve = function RIb() {
+ return new tpb(this);
+ };
+ mdb(nle, "NodeContext/0methodref$comparePortSides$Type", 1471);
+ bcb(1472, 1, Dke, SIb);
+ _.ue = function TIb(a, b) {
+ return MIb(BD(a, 111), BD(b, 111));
+ };
+ _.Fb = function UIb(a) {
+ return this === a;
+ };
+ _.ve = function VIb() {
+ return new tpb(this);
+ };
+ mdb(nle, "NodeContext/1methodref$comparePortContexts$Type", 1472);
+ bcb(159, 22, { 3: 1, 35: 1, 22: 1, 159: 1 }, tJb);
+ var WIb, XIb, YIb, ZIb, $Ib, _Ib, aJb, bJb, cJb, dJb, eJb, fJb, gJb, hJb, iJb, jJb, kJb, lJb, mJb, nJb, oJb, pJb;
+ var DN = ndb(nle, "NodeLabelLocation", 159, CI, wJb, vJb);
+ var xJb;
+ bcb(111, 1, { 111: 1 }, AJb);
+ _.a = false;
+ mdb(nle, "PortContext", 111);
+ bcb(1476, 1, qie, TJb);
+ _.td = function UJb(a) {
+ WHb(BD(a, 306));
+ };
+ mdb(qle, rle, 1476);
+ bcb(1477, 1, Oie, VJb);
+ _.Mb = function WJb(a) {
+ return !!BD(a, 111).c;
+ };
+ mdb(qle, sle, 1477);
+ bcb(1478, 1, qie, XJb);
+ _.td = function YJb(a) {
+ WHb(BD(a, 111).c);
+ };
+ mdb(qle, "LabelPlacer/lambda$2$Type", 1478);
+ var ZJb;
+ bcb(1475, 1, qie, fKb);
+ _.td = function gKb(a) {
+ $Jb();
+ zJb(BD(a, 111));
+ };
+ mdb(qle, "NodeLabelAndSizeUtilities/lambda$0$Type", 1475);
+ bcb(790, 1, qie, mKb);
+ _.td = function nKb(a) {
+ kKb(this.b, this.c, this.a, BD(a, 181));
+ };
+ _.a = false;
+ _.c = false;
+ mdb(qle, "NodeLabelCellCreator/lambda$0$Type", 790);
+ bcb(1474, 1, qie, tKb);
+ _.td = function uKb(a) {
+ sKb(this.a, BD(a, 181));
+ };
+ mdb(qle, "PortContextCreator/lambda$0$Type", 1474);
+ var BKb;
+ bcb(1829, 1, {}, VKb);
+ mdb(ule, "GreedyRectangleStripOverlapRemover", 1829);
+ bcb(1830, 1, Dke, XKb);
+ _.ue = function YKb(a, b) {
+ return WKb(BD(a, 222), BD(b, 222));
+ };
+ _.Fb = function ZKb(a) {
+ return this === a;
+ };
+ _.ve = function $Kb() {
+ return new tpb(this);
+ };
+ mdb(ule, "GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type", 1830);
+ bcb(1786, 1, {}, fLb);
+ _.a = 5;
+ _.e = 0;
+ mdb(ule, "RectangleStripOverlapRemover", 1786);
+ bcb(1787, 1, Dke, jLb);
+ _.ue = function kLb(a, b) {
+ return gLb(BD(a, 222), BD(b, 222));
+ };
+ _.Fb = function lLb(a) {
+ return this === a;
+ };
+ _.ve = function mLb() {
+ return new tpb(this);
+ };
+ mdb(ule, "RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type", 1787);
+ bcb(1789, 1, Dke, nLb);
+ _.ue = function oLb(a, b) {
+ return hLb(BD(a, 222), BD(b, 222));
+ };
+ _.Fb = function pLb(a) {
+ return this === a;
+ };
+ _.ve = function qLb() {
+ return new tpb(this);
+ };
+ mdb(ule, "RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type", 1789);
+ bcb(406, 22, { 3: 1, 35: 1, 22: 1, 406: 1 }, wLb);
+ var rLb, sLb, tLb, uLb;
+ var PN = ndb(ule, "RectangleStripOverlapRemover/OverlapRemovalDirection", 406, CI, yLb, xLb);
+ var zLb;
+ bcb(222, 1, { 222: 1 }, BLb);
+ mdb(ule, "RectangleStripOverlapRemover/RectangleNode", 222);
+ bcb(1788, 1, qie, CLb);
+ _.td = function DLb(a) {
+ aLb(this.a, BD(a, 222));
+ };
+ mdb(ule, "RectangleStripOverlapRemover/lambda$1$Type", 1788);
+ bcb(1304, 1, Dke, GLb);
+ _.ue = function HLb(a, b) {
+ return FLb(BD(a, 167), BD(b, 167));
+ };
+ _.Fb = function ILb(a) {
+ return this === a;
+ };
+ _.ve = function JLb() {
+ return new tpb(this);
+ };
+ mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator", 1304);
+ bcb(1307, 1, {}, KLb);
+ _.Kb = function LLb(a) {
+ return BD(a, 324).a;
+ };
+ mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type", 1307);
+ bcb(1308, 1, Oie, MLb);
+ _.Mb = function NLb(a) {
+ return BD(a, 323).a;
+ };
+ mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type", 1308);
+ bcb(1309, 1, Oie, OLb);
+ _.Mb = function PLb(a) {
+ return BD(a, 323).a;
+ };
+ mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type", 1309);
+ bcb(1302, 1, Dke, RLb);
+ _.ue = function SLb(a, b) {
+ return QLb(BD(a, 167), BD(b, 167));
+ };
+ _.Fb = function TLb(a) {
+ return this === a;
+ };
+ _.ve = function ULb() {
+ return new tpb(this);
+ };
+ mdb(wle, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator", 1302);
+ bcb(1305, 1, {}, VLb);
+ _.Kb = function WLb(a) {
+ return BD(a, 324).a;
+ };
+ mdb(wle, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type", 1305);
+ bcb(767, 1, Dke, YLb);
+ _.ue = function ZLb(a, b) {
+ return XLb(BD(a, 167), BD(b, 167));
+ };
+ _.Fb = function $Lb(a) {
+ return this === a;
+ };
+ _.ve = function _Lb() {
+ return new tpb(this);
+ };
+ mdb(wle, "PolyominoCompactor/MinNumOfExtensionsComparator", 767);
+ bcb(1300, 1, Dke, bMb);
+ _.ue = function cMb(a, b) {
+ return aMb(BD(a, 321), BD(b, 321));
+ };
+ _.Fb = function dMb(a) {
+ return this === a;
+ };
+ _.ve = function eMb() {
+ return new tpb(this);
+ };
+ mdb(wle, "PolyominoCompactor/MinPerimeterComparator", 1300);
+ bcb(1301, 1, Dke, gMb);
+ _.ue = function hMb(a, b) {
+ return fMb(BD(a, 321), BD(b, 321));
+ };
+ _.Fb = function iMb(a) {
+ return this === a;
+ };
+ _.ve = function jMb() {
+ return new tpb(this);
+ };
+ mdb(wle, "PolyominoCompactor/MinPerimeterComparatorWithShape", 1301);
+ bcb(1303, 1, Dke, lMb);
+ _.ue = function mMb(a, b) {
+ return kMb(BD(a, 167), BD(b, 167));
+ };
+ _.Fb = function nMb(a) {
+ return this === a;
+ };
+ _.ve = function oMb() {
+ return new tpb(this);
+ };
+ mdb(wle, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator", 1303);
+ bcb(1306, 1, {}, pMb);
+ _.Kb = function qMb(a) {
+ return BD(a, 324).a;
+ };
+ mdb(wle, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type", 1306);
+ bcb(777, 1, {}, tMb);
+ _.Ce = function uMb(a, b) {
+ return sMb(this, BD(a, 46), BD(b, 167));
+ };
+ mdb(wle, "SuccessorCombination", 777);
+ bcb(644, 1, {}, wMb);
+ _.Ce = function xMb(a, b) {
+ var c;
+ return vMb((c = BD(a, 46), BD(b, 167), c));
+ };
+ mdb(wle, "SuccessorJitter", 644);
+ bcb(643, 1, {}, zMb);
+ _.Ce = function AMb(a, b) {
+ var c;
+ return yMb((c = BD(a, 46), BD(b, 167), c));
+ };
+ mdb(wle, "SuccessorLineByLine", 643);
+ bcb(568, 1, {}, CMb);
+ _.Ce = function DMb(a, b) {
+ var c;
+ return BMb((c = BD(a, 46), BD(b, 167), c));
+ };
+ mdb(wle, "SuccessorManhattan", 568);
+ bcb(1356, 1, {}, FMb);
+ _.Ce = function GMb(a, b) {
+ var c;
+ return EMb((c = BD(a, 46), BD(b, 167), c));
+ };
+ mdb(wle, "SuccessorMaxNormWindingInMathPosSense", 1356);
+ bcb(400, 1, {}, JMb);
+ _.Ce = function KMb(a, b) {
+ return HMb(this, a, b);
+ };
+ _.c = false;
+ _.d = false;
+ _.e = false;
+ _.f = false;
+ mdb(wle, "SuccessorQuadrantsGeneric", 400);
+ bcb(1357, 1, {}, LMb);
+ _.Kb = function MMb(a) {
+ return BD(a, 324).a;
+ };
+ mdb(wle, "SuccessorQuadrantsGeneric/lambda$0$Type", 1357);
+ bcb(323, 22, { 3: 1, 35: 1, 22: 1, 323: 1 }, SMb);
+ _.a = false;
+ var NMb, OMb, PMb, QMb;
+ var jO = ndb(Ble, Cle, 323, CI, UMb, TMb);
+ var VMb;
+ bcb(1298, 1, {});
+ _.Ib = function bNb() {
+ var a, b, c, d, e, f;
+ c = " ";
+ a = meb(0);
+ for (e = 0; e < this.o; e++) {
+ c += "" + a.a;
+ a = meb(XMb(a.a));
+ }
+ c += "\n";
+ a = meb(0);
+ for (f = 0; f < this.p; f++) {
+ c += "" + a.a;
+ a = meb(XMb(a.a));
+ for (d = 0; d < this.o; d++) {
+ b = _Mb(this, d, f);
+ ybb(b, 0) == 0 ? c += "_" : ybb(b, 1) == 0 ? c += "X" : c += "0";
+ }
+ c += "\n";
+ }
+ return qfb(c, 0, c.length - 1);
+ };
+ _.o = 0;
+ _.p = 0;
+ mdb(Ble, "TwoBitGrid", 1298);
+ bcb(321, 1298, { 321: 1 }, pNb);
+ _.j = 0;
+ _.k = 0;
+ mdb(Ble, "PlanarGrid", 321);
+ bcb(167, 321, { 321: 1, 167: 1 });
+ _.g = 0;
+ _.i = 0;
+ mdb(Ble, "Polyomino", 167);
+ var P3 = odb(Hle, Ile);
+ bcb(134, 1, Jle, zNb);
+ _.Ye = function DNb(a, b) {
+ return xNb(this, a, b);
+ };
+ _.Ve = function ANb() {
+ return uNb(this);
+ };
+ _.We = function BNb(a) {
+ return vNb(this, a);
+ };
+ _.Xe = function CNb(a) {
+ return wNb(this, a);
+ };
+ mdb(Hle, "MapPropertyHolder", 134);
+ bcb(1299, 134, Jle, ENb);
+ mdb(Ble, "Polyominoes", 1299);
+ var FNb = false, GNb, HNb;
+ bcb(1766, 1, qie, PNb);
+ _.td = function QNb(a) {
+ JNb(BD(a, 221));
+ };
+ mdb(Kle, "DepthFirstCompaction/0methodref$compactTree$Type", 1766);
+ bcb(810, 1, qie, RNb);
+ _.td = function SNb(a) {
+ MNb(this.a, BD(a, 221));
+ };
+ mdb(Kle, "DepthFirstCompaction/lambda$1$Type", 810);
+ bcb(1767, 1, qie, TNb);
+ _.td = function UNb(a) {
+ NNb(this.a, this.b, this.c, BD(a, 221));
+ };
+ mdb(Kle, "DepthFirstCompaction/lambda$2$Type", 1767);
+ var VNb, WNb;
+ bcb(65, 1, { 65: 1 }, aOb);
+ mdb(Kle, "Node", 65);
+ bcb(1250, 1, {}, dOb);
+ mdb(Kle, "ScanlineOverlapCheck", 1250);
+ bcb(1251, 1, { 679: 1 }, hOb);
+ _.Ke = function iOb(a) {
+ fOb(this, BD(a, 440));
+ };
+ mdb(Kle, "ScanlineOverlapCheck/OverlapsScanlineHandler", 1251);
+ bcb(1252, 1, Dke, kOb);
+ _.ue = function lOb(a, b) {
+ return jOb(BD(a, 65), BD(b, 65));
+ };
+ _.Fb = function mOb(a) {
+ return this === a;
+ };
+ _.ve = function nOb() {
+ return new tpb(this);
+ };
+ mdb(Kle, "ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type", 1252);
+ bcb(440, 1, { 440: 1 }, oOb);
+ _.a = false;
+ mdb(Kle, "ScanlineOverlapCheck/Timestamp", 440);
+ bcb(1253, 1, Dke, pOb);
+ _.ue = function qOb(a, b) {
+ return eOb(BD(a, 440), BD(b, 440));
+ };
+ _.Fb = function rOb(a) {
+ return this === a;
+ };
+ _.ve = function sOb() {
+ return new tpb(this);
+ };
+ mdb(Kle, "ScanlineOverlapCheck/lambda$0$Type", 1253);
+ bcb(550, 1, {}, tOb);
+ mdb(Lle, "SVGImage", 550);
+ bcb(324, 1, { 324: 1 }, uOb);
+ _.Ib = function vOb() {
+ return "(" + this.a + She + this.b + She + this.c + ")";
+ };
+ mdb(Lle, "UniqueTriple", 324);
+ bcb(209, 1, Mle);
+ mdb(Nle, "AbstractLayoutProvider", 209);
+ bcb(1132, 209, Mle, yOb);
+ _.Ze = function zOb(a, b) {
+ var c, d, e, f;
+ Odd(b, Ole, 1);
+ this.a = Edb(ED(hkd(a, (CPb(), BPb))));
+ if (ikd(a, rPb)) {
+ e = GD(hkd(a, rPb));
+ c = h4c(n4c(), e);
+ if (c) {
+ d = BD(hgd(c.f), 209);
+ d.Ze(a, Udd(b, 1));
+ }
+ }
+ f = new AQb(this.a);
+ this.b = yQb(f, a);
+ switch (BD(hkd(a, (nPb(), jPb)), 481).g) {
+ case 0:
+ BOb(new FOb(), this.b);
+ jkd(a, uPb, vNb(this.b, uPb));
+ break;
+ default:
+ Zfb();
+ }
+ qQb(f);
+ jkd(a, tPb, this.b);
+ Qdd(b);
+ };
+ _.a = 0;
+ mdb(Ple, "DisCoLayoutProvider", 1132);
+ bcb(1244, 1, {}, FOb);
+ _.c = false;
+ _.e = 0;
+ _.f = 0;
+ mdb(Ple, "DisCoPolyominoCompactor", 1244);
+ bcb(561, 1, { 561: 1 }, MOb);
+ _.b = true;
+ mdb(Qle, "DCComponent", 561);
+ bcb(394, 22, { 3: 1, 35: 1, 22: 1, 394: 1 }, SOb);
+ _.a = false;
+ var NOb, OOb, POb, QOb;
+ var CO = ndb(Qle, "DCDirection", 394, CI, UOb, TOb);
+ var VOb;
+ bcb(266, 134, { 3: 1, 266: 1, 94: 1, 134: 1 }, XOb);
+ mdb(Qle, "DCElement", 266);
+ bcb(395, 1, { 395: 1 }, ZOb);
+ _.c = 0;
+ mdb(Qle, "DCExtension", 395);
+ bcb(755, 134, Jle, aPb);
+ mdb(Qle, "DCGraph", 755);
+ bcb(481, 22, { 3: 1, 35: 1, 22: 1, 481: 1 }, dPb);
+ var bPb;
+ var GO = ndb(Rle, Sle, 481, CI, fPb, ePb);
+ var gPb;
+ bcb(854, 1, ale, oPb);
+ _.Qe = function pPb(a) {
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tle), Xle), "Connected Components Compaction Strategy"), "Strategy for packing different connected components in order to save space and enhance readability of a graph."), kPb), (_5c(), V5c)), GO), pqb((N5c(), L5c)))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Ule), Xle), "Connected Components Layout Algorithm"), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), Z5c), ZI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Vle), "debug"), "DCGraph"), "Access to the DCGraph is intended for the debug view,"), Y5c), SI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Wle), "debug"), "List of Polyominoes"), "Access to the polyominoes is intended for the debug view,"), Y5c), SI), pqb(L5c))));
+ DPb((new EPb(), a));
+ };
+ var iPb, jPb, kPb, lPb, mPb;
+ mdb(Rle, "DisCoMetaDataProvider", 854);
+ bcb(998, 1, ale, EPb);
+ _.Qe = function FPb(a) {
+ DPb(a);
+ };
+ var qPb, rPb, sPb, tPb, uPb, vPb, wPb, xPb, yPb, zPb, APb, BPb;
+ mdb(Rle, "DisCoOptions", 998);
+ bcb(999, 1, {}, GPb);
+ _.$e = function HPb() {
+ var a;
+ return a = new yOb(), a;
+ };
+ _._e = function IPb(a) {
+ };
+ mdb(Rle, "DisCoOptions/DiscoFactory", 999);
+ bcb(562, 167, { 321: 1, 167: 1, 562: 1 }, MPb);
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ _.d = 0;
+ mdb("org.eclipse.elk.alg.disco.structures", "DCPolyomino", 562);
+ var NPb, OPb, PPb;
+ bcb(1268, 1, Oie, aQb);
+ _.Mb = function bQb(a) {
+ return _Pb(a);
+ };
+ mdb(bme, "ElkGraphComponentsProcessor/lambda$0$Type", 1268);
+ bcb(1269, 1, {}, cQb);
+ _.Kb = function dQb(a) {
+ return QPb(), jtd(BD(a, 79));
+ };
+ mdb(bme, "ElkGraphComponentsProcessor/lambda$1$Type", 1269);
+ bcb(1270, 1, Oie, eQb);
+ _.Mb = function fQb(a) {
+ return WPb(BD(a, 79));
+ };
+ mdb(bme, "ElkGraphComponentsProcessor/lambda$2$Type", 1270);
+ bcb(1271, 1, {}, gQb);
+ _.Kb = function hQb(a) {
+ return QPb(), ltd(BD(a, 79));
+ };
+ mdb(bme, "ElkGraphComponentsProcessor/lambda$3$Type", 1271);
+ bcb(1272, 1, Oie, iQb);
+ _.Mb = function jQb(a) {
+ return XPb(BD(a, 79));
+ };
+ mdb(bme, "ElkGraphComponentsProcessor/lambda$4$Type", 1272);
+ bcb(1273, 1, Oie, kQb);
+ _.Mb = function lQb(a) {
+ return YPb(this.a, BD(a, 79));
+ };
+ mdb(bme, "ElkGraphComponentsProcessor/lambda$5$Type", 1273);
+ bcb(1274, 1, {}, mQb);
+ _.Kb = function nQb(a) {
+ return ZPb(this.a, BD(a, 79));
+ };
+ mdb(bme, "ElkGraphComponentsProcessor/lambda$6$Type", 1274);
+ bcb(1241, 1, {}, AQb);
+ _.a = 0;
+ mdb(bme, "ElkGraphTransformer", 1241);
+ bcb(1242, 1, {}, CQb);
+ _.Od = function DQb(a, b) {
+ BQb(this, BD(a, 160), BD(b, 266));
+ };
+ mdb(bme, "ElkGraphTransformer/OffsetApplier", 1242);
+ bcb(1243, 1, qie, FQb);
+ _.td = function GQb(a) {
+ EQb(this, BD(a, 8));
+ };
+ mdb(bme, "ElkGraphTransformer/OffsetApplier/OffSetToChainApplier", 1243);
+ bcb(753, 1, {}, MQb);
+ mdb(gme, hme, 753);
+ bcb(1232, 1, Dke, OQb);
+ _.ue = function PQb(a, b) {
+ return NQb(BD(a, 231), BD(b, 231));
+ };
+ _.Fb = function QQb(a) {
+ return this === a;
+ };
+ _.ve = function RQb() {
+ return new tpb(this);
+ };
+ mdb(gme, ime, 1232);
+ bcb(740, 209, Mle, ZQb);
+ _.Ze = function $Qb(a, b) {
+ WQb(this, a, b);
+ };
+ mdb(gme, "ForceLayoutProvider", 740);
+ bcb(357, 134, { 3: 1, 357: 1, 94: 1, 134: 1 });
+ mdb(jme, "FParticle", 357);
+ bcb(559, 357, { 3: 1, 559: 1, 357: 1, 94: 1, 134: 1 }, aRb);
+ _.Ib = function bRb() {
+ var a;
+ if (this.a) {
+ a = Jkb(this.a.a, this, 0);
+ return a >= 0 ? "b" + a + "[" + fRb(this.a) + "]" : "b[" + fRb(this.a) + "]";
+ }
+ return "b_" + FCb(this);
+ };
+ mdb(jme, "FBendpoint", 559);
+ bcb(282, 134, { 3: 1, 282: 1, 94: 1, 134: 1 }, gRb);
+ _.Ib = function hRb() {
+ return fRb(this);
+ };
+ mdb(jme, "FEdge", 282);
+ bcb(231, 134, { 3: 1, 231: 1, 94: 1, 134: 1 }, kRb);
+ var $O = mdb(jme, "FGraph", 231);
+ bcb(447, 357, { 3: 1, 447: 1, 357: 1, 94: 1, 134: 1 }, mRb);
+ _.Ib = function nRb() {
+ return this.b == null || this.b.length == 0 ? "l[" + fRb(this.a) + "]" : "l_" + this.b;
+ };
+ mdb(jme, "FLabel", 447);
+ bcb(144, 357, { 3: 1, 144: 1, 357: 1, 94: 1, 134: 1 }, pRb);
+ _.Ib = function qRb() {
+ return oRb(this);
+ };
+ _.b = 0;
+ mdb(jme, "FNode", 144);
+ bcb(2003, 1, {});
+ _.bf = function vRb(a) {
+ rRb(this, a);
+ };
+ _.cf = function wRb() {
+ sRb(this);
+ };
+ _.d = 0;
+ mdb(lme, "AbstractForceModel", 2003);
+ bcb(631, 2003, { 631: 1 }, xRb);
+ _.af = function zRb(a, b) {
+ var c, d, e, f, g;
+ uRb(this.f, a, b);
+ e = c7c(R6c(b.d), a.d);
+ g = $wnd.Math.sqrt(e.a * e.a + e.b * e.b);
+ d = $wnd.Math.max(0, g - U6c(a.e) / 2 - U6c(b.e) / 2);
+ c = jRb(this.e, a, b);
+ c > 0 ? f = -yRb(d, this.c) * c : f = CRb(d, this.b) * BD(vNb(a, (wSb(), oSb)), 19).a;
+ Y6c(e, f / g);
+ return e;
+ };
+ _.bf = function ARb(a) {
+ rRb(this, a);
+ this.a = BD(vNb(a, (wSb(), eSb)), 19).a;
+ this.c = Edb(ED(vNb(a, uSb)));
+ this.b = Edb(ED(vNb(a, qSb)));
+ };
+ _.df = function BRb(a) {
+ return a < this.a;
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ mdb(lme, "EadesModel", 631);
+ bcb(632, 2003, { 632: 1 }, DRb);
+ _.af = function FRb(a, b) {
+ var c, d, e, f, g;
+ uRb(this.f, a, b);
+ e = c7c(R6c(b.d), a.d);
+ g = $wnd.Math.sqrt(e.a * e.a + e.b * e.b);
+ d = $wnd.Math.max(0, g - U6c(a.e) / 2 - U6c(b.e) / 2);
+ f = JRb(d, this.a) * BD(vNb(a, (wSb(), oSb)), 19).a;
+ c = jRb(this.e, a, b);
+ c > 0 && (f -= ERb(d, this.a) * c);
+ Y6c(e, f * this.b / g);
+ return e;
+ };
+ _.bf = function GRb(a) {
+ var b, c, d, e, f, g, h;
+ rRb(this, a);
+ this.b = Edb(ED(vNb(a, (wSb(), vSb))));
+ this.c = this.b / BD(vNb(a, eSb), 19).a;
+ d = a.e.c.length;
+ f = 0;
+ e = 0;
+ for (h = new olb(a.e); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 144);
+ f += g.e.a;
+ e += g.e.b;
+ }
+ b = f * e;
+ c = Edb(ED(vNb(a, uSb))) * ple;
+ this.a = $wnd.Math.sqrt(b / (2 * d)) * c;
+ };
+ _.cf = function HRb() {
+ sRb(this);
+ this.b -= this.c;
+ };
+ _.df = function IRb(a) {
+ return this.b > 0;
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ mdb(lme, "FruchtermanReingoldModel", 632);
+ bcb(849, 1, ale, TRb);
+ _.Qe = function URb(a) {
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mme), ""), "Force Model"), "Determines the model for force calculation."), MRb), (_5c(), V5c)), gP), pqb((N5c(), L5c)))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nme), ""), "Iterations"), "The number of iterations on the force model."), meb(300)), X5c), JI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ome), ""), "Repulsive Power"), "Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"), meb(0)), X5c), JI), pqb(I5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pme), ""), "FR Temperature"), "The temperature is used as a scaling factor for particle displacements."), qme), U5c), BI), pqb(L5c))));
+ o4c(a, pme, mme, RRb);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rme), ""), "Eades Repulsion"), "Factor for repulsive forces in Eades' model."), 5), U5c), BI), pqb(L5c))));
+ o4c(a, rme, mme, ORb);
+ xSb((new ySb(), a));
+ };
+ var KRb, LRb, MRb, NRb, ORb, PRb, QRb, RRb;
+ mdb(sme, "ForceMetaDataProvider", 849);
+ bcb(424, 22, { 3: 1, 35: 1, 22: 1, 424: 1 }, YRb);
+ var VRb, WRb;
+ var gP = ndb(sme, "ForceModelStrategy", 424, CI, $Rb, ZRb);
+ var _Rb;
+ bcb(988, 1, ale, ySb);
+ _.Qe = function zSb(a) {
+ xSb(a);
+ };
+ var bSb, cSb, dSb, eSb, fSb, gSb, hSb, iSb, jSb, kSb, lSb, mSb, nSb, oSb, pSb, qSb, rSb, sSb, tSb, uSb, vSb;
+ mdb(sme, "ForceOptions", 988);
+ bcb(989, 1, {}, ASb);
+ _.$e = function BSb() {
+ var a;
+ return a = new ZQb(), a;
+ };
+ _._e = function CSb(a) {
+ };
+ mdb(sme, "ForceOptions/ForceFactory", 989);
+ var DSb, ESb, FSb, GSb;
+ bcb(850, 1, ale, PSb);
+ _.Qe = function QSb(a) {
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Mme), ""), "Fixed Position"), "Prevent that the node is moved by the layout algorithm."), (Bcb(), false)), (_5c(), T5c)), wI), pqb((N5c(), K5c)))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Nme), ""), "Desired Edge Length"), "Either specified for parent nodes or for individual edges, where the latter takes higher precedence."), 100), U5c), BI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [I5c])))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ome), ""), "Layout Dimension"), "Dimensions that are permitted to be altered during layout."), KSb), V5c), oP), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Pme), ""), "Stress Epsilon"), "Termination criterion for the iterative process."), qme), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qme), ""), "Iteration Limit"), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), meb(Ohe)), X5c), JI), pqb(L5c))));
+ cTb((new dTb(), a));
+ };
+ var ISb, JSb, KSb, LSb, MSb, NSb;
+ mdb(sme, "StressMetaDataProvider", 850);
+ bcb(992, 1, ale, dTb);
+ _.Qe = function eTb(a) {
+ cTb(a);
+ };
+ var RSb, SSb, TSb, USb, VSb, WSb, XSb, YSb, ZSb, $Sb, _Sb, aTb;
+ mdb(sme, "StressOptions", 992);
+ bcb(993, 1, {}, fTb);
+ _.$e = function gTb() {
+ var a;
+ return a = new iTb(), a;
+ };
+ _._e = function hTb(a) {
+ };
+ mdb(sme, "StressOptions/StressFactory", 993);
+ bcb(1128, 209, Mle, iTb);
+ _.Ze = function jTb(a, b) {
+ var c, d, e, f, g;
+ Odd(b, Sme, 1);
+ Ccb(DD(hkd(a, (bTb(), VSb)))) ? Ccb(DD(hkd(a, _Sb))) || $Cb((c = new _Cb((Pgd(), new bhd(a))), c)) : WQb(new ZQb(), a, Udd(b, 1));
+ e = TQb(a);
+ d = LQb(this.a, e);
+ for (g = d.Kc(); g.Ob(); ) {
+ f = BD(g.Pb(), 231);
+ if (f.e.c.length <= 1) {
+ continue;
+ }
+ sTb(this.b, f);
+ qTb(this.b);
+ Hkb(f.d, new kTb());
+ }
+ e = KQb(d);
+ SQb(e);
+ Qdd(b);
+ };
+ mdb(Ume, "StressLayoutProvider", 1128);
+ bcb(1129, 1, qie, kTb);
+ _.td = function lTb(a) {
+ lRb(BD(a, 447));
+ };
+ mdb(Ume, "StressLayoutProvider/lambda$0$Type", 1129);
+ bcb(990, 1, {}, tTb);
+ _.c = 0;
+ _.e = 0;
+ _.g = 0;
+ mdb(Ume, "StressMajorization", 990);
+ bcb(379, 22, { 3: 1, 35: 1, 22: 1, 379: 1 }, zTb);
+ var vTb, wTb, xTb;
+ var oP = ndb(Ume, "StressMajorization/Dimension", 379, CI, BTb, ATb);
+ var CTb;
+ bcb(991, 1, Dke, ETb);
+ _.ue = function FTb(a, b) {
+ return uTb(this.a, BD(a, 144), BD(b, 144));
+ };
+ _.Fb = function GTb(a) {
+ return this === a;
+ };
+ _.ve = function HTb() {
+ return new tpb(this);
+ };
+ mdb(Ume, "StressMajorization/lambda$0$Type", 991);
+ bcb(1229, 1, {}, PTb);
+ mdb(Wme, "ElkLayered", 1229);
+ bcb(1230, 1, qie, STb);
+ _.td = function TTb(a) {
+ QTb(BD(a, 37));
+ };
+ mdb(Wme, "ElkLayered/lambda$0$Type", 1230);
+ bcb(1231, 1, qie, UTb);
+ _.td = function VTb(a) {
+ RTb(this.a, BD(a, 37));
+ };
+ mdb(Wme, "ElkLayered/lambda$1$Type", 1231);
+ bcb(1263, 1, {}, bUb);
+ var WTb, XTb, YTb;
+ mdb(Wme, "GraphConfigurator", 1263);
+ bcb(759, 1, qie, dUb);
+ _.td = function eUb(a) {
+ $Tb(this.a, BD(a, 10));
+ };
+ mdb(Wme, "GraphConfigurator/lambda$0$Type", 759);
+ bcb(760, 1, {}, fUb);
+ _.Kb = function gUb(a) {
+ return ZTb(), new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Wme, "GraphConfigurator/lambda$1$Type", 760);
+ bcb(761, 1, qie, hUb);
+ _.td = function iUb(a) {
+ $Tb(this.a, BD(a, 10));
+ };
+ mdb(Wme, "GraphConfigurator/lambda$2$Type", 761);
+ bcb(1127, 209, Mle, jUb);
+ _.Ze = function kUb(a, b) {
+ var c;
+ c = U1b(new a2b(), a);
+ PD(hkd(a, (Nyc(), axc))) === PD((hbd(), ebd)) ? JTb(this.a, c, b) : KTb(this.a, c, b);
+ z2b(new D2b(), c);
+ };
+ mdb(Wme, "LayeredLayoutProvider", 1127);
+ bcb(356, 22, { 3: 1, 35: 1, 22: 1, 356: 1 }, rUb);
+ var lUb, mUb, nUb, oUb, pUb;
+ var zP = ndb(Wme, "LayeredPhases", 356, CI, tUb, sUb);
+ var uUb;
+ bcb(1651, 1, {}, CUb);
+ _.i = 0;
+ var wUb;
+ mdb(Xme, "ComponentsToCGraphTransformer", 1651);
+ var hVb;
+ bcb(1652, 1, {}, DUb);
+ _.ef = function EUb(a, b) {
+ return $wnd.Math.min(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
+ };
+ _.ff = function FUb(a, b) {
+ return $wnd.Math.min(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
+ };
+ mdb(Xme, "ComponentsToCGraphTransformer/1", 1652);
+ bcb(81, 1, { 81: 1 });
+ _.i = 0;
+ _.k = true;
+ _.o = Qje;
+ var IP = mdb(Yme, "CNode", 81);
+ bcb(460, 81, { 460: 1, 81: 1 }, GUb, HUb);
+ _.Ib = function IUb() {
+ return "";
+ };
+ mdb(Xme, "ComponentsToCGraphTransformer/CRectNode", 460);
+ bcb(1623, 1, {}, VUb);
+ var JUb, KUb;
+ mdb(Xme, "OneDimensionalComponentsCompaction", 1623);
+ bcb(1624, 1, {}, YUb);
+ _.Kb = function ZUb(a) {
+ return WUb(BD(a, 46));
+ };
+ _.Fb = function $Ub(a) {
+ return this === a;
+ };
+ mdb(Xme, "OneDimensionalComponentsCompaction/lambda$0$Type", 1624);
+ bcb(1625, 1, {}, _Ub);
+ _.Kb = function aVb(a) {
+ return XUb(BD(a, 46));
+ };
+ _.Fb = function bVb(a) {
+ return this === a;
+ };
+ mdb(Xme, "OneDimensionalComponentsCompaction/lambda$1$Type", 1625);
+ bcb(1654, 1, {}, dVb);
+ mdb(Yme, "CGraph", 1654);
+ bcb(189, 1, { 189: 1 }, gVb);
+ _.b = 0;
+ _.c = 0;
+ _.e = 0;
+ _.g = true;
+ _.i = Qje;
+ mdb(Yme, "CGroup", 189);
+ bcb(1653, 1, {}, jVb);
+ _.ef = function kVb(a, b) {
+ return $wnd.Math.max(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
+ };
+ _.ff = function lVb(a, b) {
+ return $wnd.Math.max(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
+ };
+ mdb(Yme, Ike, 1653);
+ bcb(1655, 1, {}, CVb);
+ _.d = false;
+ var mVb;
+ var LP = mdb(Yme, Nke, 1655);
+ bcb(1656, 1, {}, DVb);
+ _.Kb = function EVb(a) {
+ return nVb(), Bcb(), BD(BD(a, 46).a, 81).d.e != 0 ? true : false;
+ };
+ _.Fb = function FVb(a) {
+ return this === a;
+ };
+ mdb(Yme, Oke, 1656);
+ bcb(823, 1, {}, IVb);
+ _.a = false;
+ _.b = false;
+ _.c = false;
+ _.d = false;
+ mdb(Yme, Pke, 823);
+ bcb(1825, 1, {}, OVb);
+ mdb(Zme, Qke, 1825);
+ var bQ = odb($me, Fke);
+ bcb(1826, 1, { 369: 1 }, SVb);
+ _.Ke = function TVb(a) {
+ QVb(this, BD(a, 466));
+ };
+ mdb(Zme, Rke, 1826);
+ bcb(1827, 1, Dke, VVb);
+ _.ue = function WVb(a, b) {
+ return UVb(BD(a, 81), BD(b, 81));
+ };
+ _.Fb = function XVb(a) {
+ return this === a;
+ };
+ _.ve = function YVb() {
+ return new tpb(this);
+ };
+ mdb(Zme, Ske, 1827);
+ bcb(466, 1, { 466: 1 }, ZVb);
+ _.a = false;
+ mdb(Zme, Tke, 466);
+ bcb(1828, 1, Dke, $Vb);
+ _.ue = function _Vb(a, b) {
+ return PVb(BD(a, 466), BD(b, 466));
+ };
+ _.Fb = function aWb(a) {
+ return this === a;
+ };
+ _.ve = function bWb() {
+ return new tpb(this);
+ };
+ mdb(Zme, Uke, 1828);
+ bcb(140, 1, { 140: 1 }, cWb, dWb);
+ _.Fb = function eWb(a) {
+ var b;
+ if (a == null) {
+ return false;
+ }
+ if (TP != rb(a)) {
+ return false;
+ }
+ b = BD(a, 140);
+ return wtb(this.c, b.c) && wtb(this.d, b.d);
+ };
+ _.Hb = function fWb() {
+ return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.c, this.d]));
+ };
+ _.Ib = function gWb() {
+ return "(" + this.c + She + this.d + (this.a ? "cx" : "") + this.b + ")";
+ };
+ _.a = true;
+ _.c = 0;
+ _.d = 0;
+ var TP = mdb($me, "Point", 140);
+ bcb(405, 22, { 3: 1, 35: 1, 22: 1, 405: 1 }, oWb);
+ var hWb, iWb, jWb, kWb;
+ var SP = ndb($me, "Point/Quadrant", 405, CI, sWb, rWb);
+ var tWb;
+ bcb(1642, 1, {}, CWb);
+ _.b = null;
+ _.c = null;
+ _.d = null;
+ _.e = null;
+ _.f = null;
+ var vWb, wWb, xWb, yWb, zWb;
+ mdb($me, "RectilinearConvexHull", 1642);
+ bcb(574, 1, { 369: 1 }, NWb);
+ _.Ke = function OWb(a) {
+ MWb(this, BD(a, 140));
+ };
+ _.b = 0;
+ var KWb;
+ mdb($me, "RectilinearConvexHull/MaximalElementsEventHandler", 574);
+ bcb(1644, 1, Dke, QWb);
+ _.ue = function RWb(a, b) {
+ return PWb(ED(a), ED(b));
+ };
+ _.Fb = function SWb(a) {
+ return this === a;
+ };
+ _.ve = function TWb() {
+ return new tpb(this);
+ };
+ mdb($me, "RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type", 1644);
+ bcb(1643, 1, { 369: 1 }, VWb);
+ _.Ke = function WWb(a) {
+ UWb(this, BD(a, 140));
+ };
+ _.a = 0;
+ _.b = null;
+ _.c = null;
+ _.d = null;
+ _.e = null;
+ mdb($me, "RectilinearConvexHull/RectangleEventHandler", 1643);
+ bcb(1645, 1, Dke, XWb);
+ _.ue = function YWb(a, b) {
+ return EWb(BD(a, 140), BD(b, 140));
+ };
+ _.Fb = function ZWb(a) {
+ return this === a;
+ };
+ _.ve = function $Wb() {
+ return new tpb(this);
+ };
+ mdb($me, "RectilinearConvexHull/lambda$0$Type", 1645);
+ bcb(1646, 1, Dke, _Wb);
+ _.ue = function aXb(a, b) {
+ return FWb(BD(a, 140), BD(b, 140));
+ };
+ _.Fb = function bXb(a) {
+ return this === a;
+ };
+ _.ve = function cXb() {
+ return new tpb(this);
+ };
+ mdb($me, "RectilinearConvexHull/lambda$1$Type", 1646);
+ bcb(1647, 1, Dke, dXb);
+ _.ue = function eXb(a, b) {
+ return GWb(BD(a, 140), BD(b, 140));
+ };
+ _.Fb = function fXb(a) {
+ return this === a;
+ };
+ _.ve = function gXb() {
+ return new tpb(this);
+ };
+ mdb($me, "RectilinearConvexHull/lambda$2$Type", 1647);
+ bcb(1648, 1, Dke, hXb);
+ _.ue = function iXb(a, b) {
+ return HWb(BD(a, 140), BD(b, 140));
+ };
+ _.Fb = function jXb(a) {
+ return this === a;
+ };
+ _.ve = function kXb() {
+ return new tpb(this);
+ };
+ mdb($me, "RectilinearConvexHull/lambda$3$Type", 1648);
+ bcb(1649, 1, Dke, lXb);
+ _.ue = function mXb(a, b) {
+ return IWb(BD(a, 140), BD(b, 140));
+ };
+ _.Fb = function nXb(a) {
+ return this === a;
+ };
+ _.ve = function oXb() {
+ return new tpb(this);
+ };
+ mdb($me, "RectilinearConvexHull/lambda$4$Type", 1649);
+ bcb(1650, 1, {}, qXb);
+ mdb($me, "Scanline", 1650);
+ bcb(2005, 1, {});
+ mdb(_me, "AbstractGraphPlacer", 2005);
+ bcb(325, 1, { 325: 1 }, AXb);
+ _.mf = function BXb(a) {
+ if (this.nf(a)) {
+ Rc(this.b, BD(vNb(a, (wtc(), Esc)), 21), a);
+ return true;
+ } else {
+ return false;
+ }
+ };
+ _.nf = function CXb(a) {
+ var b, c, d, e;
+ b = BD(vNb(a, (wtc(), Esc)), 21);
+ e = BD(Qc(wXb, b), 21);
+ for (d = e.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 21);
+ if (!BD(Qc(this.b, c), 15).dc()) {
+ return false;
+ }
+ }
+ return true;
+ };
+ var wXb;
+ mdb(_me, "ComponentGroup", 325);
+ bcb(765, 2005, {}, HXb);
+ _.of = function IXb(a) {
+ var b, c;
+ for (c = new olb(this.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 325);
+ if (b.mf(a)) {
+ return;
+ }
+ }
+ Ekb(this.a, new AXb(a));
+ };
+ _.lf = function JXb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2;
+ this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ if (a.dc()) {
+ b.f.a = 0;
+ b.f.b = 0;
+ return;
+ }
+ g = BD(a.Xb(0), 37);
+ tNb(b, g);
+ for (e = a.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 37);
+ this.of(d);
+ }
+ o2 = new d7c();
+ f = Edb(ED(vNb(g, (Nyc(), kyc))));
+ for (j = new olb(this.a); j.a < j.c.c.length; ) {
+ h = BD(mlb(j), 325);
+ k = DXb(h, f);
+ vXb(Uc(h.b), o2.a, o2.b);
+ o2.a += k.a;
+ o2.b += k.b;
+ }
+ b.f.a = o2.a - f;
+ b.f.b = o2.b - f;
+ if (Ccb(DD(vNb(g, qwc))) && PD(vNb(g, Swc)) === PD((Aad(), wad))) {
+ for (n = a.Kc(); n.Ob(); ) {
+ l = BD(n.Pb(), 37);
+ uXb(l, l.c.a, l.c.b);
+ }
+ c = new gYb();
+ YXb(c, a, f);
+ for (m = a.Kc(); m.Ob(); ) {
+ l = BD(m.Pb(), 37);
+ P6c(X6c(l.c), c.e);
+ }
+ P6c(X6c(b.f), c.a);
+ }
+ for (i = new olb(this.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 325);
+ tXb(b, Uc(h.b));
+ }
+ };
+ mdb(_me, "ComponentGroupGraphPlacer", 765);
+ bcb(1293, 765, {}, LXb);
+ _.of = function MXb(a) {
+ KXb(this, a);
+ };
+ _.lf = function NXb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t;
+ this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ if (a.dc()) {
+ b.f.a = 0;
+ b.f.b = 0;
+ return;
+ }
+ g = BD(a.Xb(0), 37);
+ tNb(b, g);
+ for (e = a.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 37);
+ KXb(this, d);
+ }
+ t = new d7c();
+ s = new d7c();
+ p = new d7c();
+ o2 = new d7c();
+ f = Edb(ED(vNb(g, (Nyc(), kyc))));
+ for (j = new olb(this.a); j.a < j.c.c.length; ) {
+ h = BD(mlb(j), 325);
+ if (fad(BD(vNb(b, (Y9c(), z8c)), 103))) {
+ p.a = t.a;
+ for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
+ q = BD(Lv(r.b.Pb()), 21);
+ if (q.Hc((Ucd(), Acd))) {
+ p.a = s.a;
+ break;
+ }
+ }
+ } else if (gad(BD(vNb(b, z8c), 103))) {
+ p.b = t.b;
+ for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
+ q = BD(Lv(r.b.Pb()), 21);
+ if (q.Hc((Ucd(), Tcd))) {
+ p.b = s.b;
+ break;
+ }
+ }
+ }
+ k = DXb(BD(h, 570), f);
+ vXb(Uc(h.b), p.a, p.b);
+ if (fad(BD(vNb(b, z8c), 103))) {
+ s.a = p.a + k.a;
+ o2.a = $wnd.Math.max(o2.a, s.a);
+ for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
+ q = BD(Lv(r.b.Pb()), 21);
+ if (q.Hc((Ucd(), Rcd))) {
+ t.a = p.a + k.a;
+ break;
+ }
+ }
+ s.b = p.b + k.b;
+ p.b = s.b;
+ o2.b = $wnd.Math.max(o2.b, p.b);
+ } else if (gad(BD(vNb(b, z8c), 103))) {
+ s.b = p.b + k.b;
+ o2.b = $wnd.Math.max(o2.b, s.b);
+ for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
+ q = BD(Lv(r.b.Pb()), 21);
+ if (q.Hc((Ucd(), zcd))) {
+ t.b = p.b + k.b;
+ break;
+ }
+ }
+ s.a = p.a + k.a;
+ p.a = s.a;
+ o2.a = $wnd.Math.max(o2.a, p.a);
+ }
+ }
+ b.f.a = o2.a - f;
+ b.f.b = o2.b - f;
+ if (Ccb(DD(vNb(g, qwc))) && PD(vNb(g, Swc)) === PD((Aad(), wad))) {
+ for (n = a.Kc(); n.Ob(); ) {
+ l = BD(n.Pb(), 37);
+ uXb(l, l.c.a, l.c.b);
+ }
+ c = new gYb();
+ YXb(c, a, f);
+ for (m = a.Kc(); m.Ob(); ) {
+ l = BD(m.Pb(), 37);
+ P6c(X6c(l.c), c.e);
+ }
+ P6c(X6c(b.f), c.a);
+ }
+ for (i = new olb(this.a); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 325);
+ tXb(b, Uc(h.b));
+ }
+ };
+ mdb(_me, "ComponentGroupModelOrderGraphPlacer", 1293);
+ bcb(423, 22, { 3: 1, 35: 1, 22: 1, 423: 1 }, SXb);
+ var OXb, PXb, QXb;
+ var hQ = ndb(_me, "ComponentOrderingStrategy", 423, CI, UXb, TXb);
+ var VXb;
+ bcb(650, 1, {}, gYb);
+ mdb(_me, "ComponentsCompactor", 650);
+ bcb(1468, 12, ake, jYb);
+ _.Fc = function kYb(a) {
+ return hYb(this, BD(a, 140));
+ };
+ mdb(_me, "ComponentsCompactor/Hullpoints", 1468);
+ bcb(1465, 1, { 841: 1 }, mYb);
+ _.a = false;
+ mdb(_me, "ComponentsCompactor/InternalComponent", 1465);
+ bcb(1464, 1, vie, nYb);
+ _.Jc = function oYb(a) {
+ reb(this, a);
+ };
+ _.Kc = function pYb() {
+ return new olb(this.a);
+ };
+ mdb(_me, "ComponentsCompactor/InternalConnectedComponents", 1464);
+ bcb(1467, 1, { 594: 1 }, qYb);
+ _.hf = function sYb() {
+ return null;
+ };
+ _.jf = function tYb() {
+ return this.a;
+ };
+ _.gf = function rYb() {
+ return cYb(this.d);
+ };
+ _.kf = function uYb() {
+ return this.b;
+ };
+ mdb(_me, "ComponentsCompactor/InternalExternalExtension", 1467);
+ bcb(1466, 1, { 594: 1 }, vYb);
+ _.jf = function yYb() {
+ return this.a;
+ };
+ _.gf = function wYb() {
+ return cYb(this.d);
+ };
+ _.hf = function xYb() {
+ return this.c;
+ };
+ _.kf = function zYb() {
+ return this.b;
+ };
+ mdb(_me, "ComponentsCompactor/InternalUnionExternalExtension", 1466);
+ bcb(1470, 1, {}, AYb);
+ mdb(_me, "ComponentsCompactor/OuterSegments", 1470);
+ bcb(1469, 1, {}, BYb);
+ mdb(_me, "ComponentsCompactor/Segments", 1469);
+ bcb(1264, 1, {}, FYb);
+ mdb(_me, hme, 1264);
+ bcb(1265, 1, Dke, HYb);
+ _.ue = function IYb(a, b) {
+ return GYb(BD(a, 37), BD(b, 37));
+ };
+ _.Fb = function JYb(a) {
+ return this === a;
+ };
+ _.ve = function KYb() {
+ return new tpb(this);
+ };
+ mdb(_me, "ComponentsProcessor/lambda$0$Type", 1265);
+ bcb(570, 325, { 325: 1, 570: 1 }, PYb);
+ _.mf = function QYb(a) {
+ return NYb(this, a);
+ };
+ _.nf = function RYb(a) {
+ return OYb(this, a);
+ };
+ var LYb;
+ mdb(_me, "ModelOrderComponentGroup", 570);
+ bcb(1291, 2005, {}, SYb);
+ _.lf = function TYb(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w;
+ if (a.gc() == 1) {
+ t = BD(a.Xb(0), 37);
+ if (t != b) {
+ b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ sXb(b, t, 0, 0);
+ tNb(b, t);
+ u_b(b.d, t.d);
+ b.f.a = t.f.a;
+ b.f.b = t.f.b;
+ }
+ return;
+ } else if (a.dc()) {
+ b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ b.f.a = 0;
+ b.f.b = 0;
+ return;
+ }
+ if (PD(vNb(b, (Nyc(), twc))) === PD((RXb(), QXb))) {
+ for (i = a.Kc(); i.Ob(); ) {
+ g = BD(i.Pb(), 37);
+ r = 0;
+ for (p = new olb(g.a); p.a < p.c.c.length; ) {
+ o2 = BD(mlb(p), 10);
+ r += BD(vNb(o2, byc), 19).a;
+ }
+ g.p = r;
+ }
+ mmb();
+ a.ad(new VYb());
+ }
+ f = BD(a.Xb(0), 37);
+ b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
+ tNb(b, f);
+ n = 0;
+ u = 0;
+ for (j = a.Kc(); j.Ob(); ) {
+ g = BD(j.Pb(), 37);
+ s = g.f;
+ n = $wnd.Math.max(n, s.a);
+ u += s.a * s.b;
+ }
+ n = $wnd.Math.max(n, $wnd.Math.sqrt(u) * Edb(ED(vNb(b, owc))));
+ e = Edb(ED(vNb(b, kyc)));
+ v = 0;
+ w = 0;
+ m = 0;
+ c = e;
+ for (h = a.Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 37);
+ s = g.f;
+ if (v + s.a > n) {
+ v = 0;
+ w += m + e;
+ m = 0;
+ }
+ q = g.c;
+ uXb(g, v + q.a, w + q.b);
+ X6c(q);
+ c = $wnd.Math.max(c, v + s.a);
+ m = $wnd.Math.max(m, s.b);
+ v += s.a + e;
+ }
+ b.f.a = c;
+ b.f.b = w + m;
+ if (Ccb(DD(vNb(f, qwc)))) {
+ d = new gYb();
+ YXb(d, a, e);
+ for (l = a.Kc(); l.Ob(); ) {
+ k = BD(l.Pb(), 37);
+ P6c(X6c(k.c), d.e);
+ }
+ P6c(X6c(b.f), d.a);
+ }
+ tXb(b, a);
+ };
+ mdb(_me, "SimpleRowGraphPlacer", 1291);
+ bcb(1292, 1, Dke, VYb);
+ _.ue = function WYb(a, b) {
+ return UYb(BD(a, 37), BD(b, 37));
+ };
+ _.Fb = function XYb(a) {
+ return this === a;
+ };
+ _.ve = function YYb() {
+ return new tpb(this);
+ };
+ mdb(_me, "SimpleRowGraphPlacer/1", 1292);
+ var ZYb;
+ bcb(1262, 1, Vke, dZb);
+ _.Lb = function eZb(a) {
+ var b;
+ return b = BD(vNb(BD(a, 243).b, (Nyc(), jxc)), 74), !!b && b.b != 0;
+ };
+ _.Fb = function fZb(a) {
+ return this === a;
+ };
+ _.Mb = function gZb(a) {
+ var b;
+ return b = BD(vNb(BD(a, 243).b, (Nyc(), jxc)), 74), !!b && b.b != 0;
+ };
+ mdb(dne, "CompoundGraphPostprocessor/1", 1262);
+ bcb(1261, 1, ene, wZb);
+ _.pf = function xZb(a, b) {
+ qZb(this, BD(a, 37), b);
+ };
+ mdb(dne, "CompoundGraphPreprocessor", 1261);
+ bcb(441, 1, { 441: 1 }, yZb);
+ _.c = false;
+ mdb(dne, "CompoundGraphPreprocessor/ExternalPort", 441);
+ bcb(243, 1, { 243: 1 }, BZb);
+ _.Ib = function CZb() {
+ return Zr(this.c) + ":" + TZb(this.b);
+ };
+ mdb(dne, "CrossHierarchyEdge", 243);
+ bcb(763, 1, Dke, EZb);
+ _.ue = function FZb(a, b) {
+ return DZb(this, BD(a, 243), BD(b, 243));
+ };
+ _.Fb = function GZb(a) {
+ return this === a;
+ };
+ _.ve = function IZb() {
+ return new tpb(this);
+ };
+ mdb(dne, "CrossHierarchyEdgeComparator", 763);
+ bcb(299, 134, { 3: 1, 299: 1, 94: 1, 134: 1 });
+ _.p = 0;
+ mdb(fne, "LGraphElement", 299);
+ bcb(17, 299, { 3: 1, 17: 1, 299: 1, 94: 1, 134: 1 }, UZb);
+ _.Ib = function VZb() {
+ return TZb(this);
+ };
+ var AQ = mdb(fne, "LEdge", 17);
+ bcb(37, 299, { 3: 1, 20: 1, 37: 1, 299: 1, 94: 1, 134: 1 }, XZb);
+ _.Jc = function YZb(a) {
+ reb(this, a);
+ };
+ _.Kc = function ZZb() {
+ return new olb(this.b);
+ };
+ _.Ib = function $Zb() {
+ if (this.b.c.length == 0) {
+ return "G-unlayered" + Fe(this.a);
+ } else if (this.a.c.length == 0) {
+ return "G-layered" + Fe(this.b);
+ }
+ return "G[layerless" + Fe(this.a) + ", layers" + Fe(this.b) + "]";
+ };
+ var KQ = mdb(fne, "LGraph", 37);
+ var _Zb;
+ bcb(657, 1, {});
+ _.qf = function b$b() {
+ return this.e.n;
+ };
+ _.We = function c$b(a) {
+ return vNb(this.e, a);
+ };
+ _.rf = function d$b() {
+ return this.e.o;
+ };
+ _.sf = function e$b() {
+ return this.e.p;
+ };
+ _.Xe = function f$b(a) {
+ return wNb(this.e, a);
+ };
+ _.tf = function g$b(a) {
+ this.e.n.a = a.a;
+ this.e.n.b = a.b;
+ };
+ _.uf = function h$b(a) {
+ this.e.o.a = a.a;
+ this.e.o.b = a.b;
+ };
+ _.vf = function i$b(a) {
+ this.e.p = a;
+ };
+ mdb(fne, "LGraphAdapters/AbstractLShapeAdapter", 657);
+ bcb(577, 1, { 839: 1 }, j$b);
+ _.wf = function k$b() {
+ var a, b;
+ if (!this.b) {
+ this.b = Pu(this.a.b.c.length);
+ for (b = new olb(this.a.b); b.a < b.c.c.length; ) {
+ a = BD(mlb(b), 70);
+ Ekb(this.b, new v$b(a));
+ }
+ }
+ return this.b;
+ };
+ _.b = null;
+ mdb(fne, "LGraphAdapters/LEdgeAdapter", 577);
+ bcb(656, 1, {}, l$b);
+ _.xf = function m$b() {
+ var a, b, c, d, e, f;
+ if (!this.b) {
+ this.b = new Rkb();
+ for (d = new olb(this.a.b); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 29);
+ for (f = new olb(c.a); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 10);
+ if (this.c.Mb(e)) {
+ Ekb(this.b, new x$b(this, e, this.e));
+ if (this.d) {
+ if (wNb(e, (wtc(), vtc))) {
+ for (b = BD(vNb(e, vtc), 15).Kc(); b.Ob(); ) {
+ a = BD(b.Pb(), 10);
+ Ekb(this.b, new x$b(this, a, false));
+ }
+ }
+ if (wNb(e, tsc)) {
+ for (b = BD(vNb(e, tsc), 15).Kc(); b.Ob(); ) {
+ a = BD(b.Pb(), 10);
+ Ekb(this.b, new x$b(this, a, false));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return this.b;
+ };
+ _.qf = function n$b() {
+ throw vbb(new cgb(hne));
+ };
+ _.We = function o$b(a) {
+ return vNb(this.a, a);
+ };
+ _.rf = function p$b() {
+ return this.a.f;
+ };
+ _.sf = function q$b() {
+ return this.a.p;
+ };
+ _.Xe = function r$b(a) {
+ return wNb(this.a, a);
+ };
+ _.tf = function s$b(a) {
+ throw vbb(new cgb(hne));
+ };
+ _.uf = function t$b(a) {
+ this.a.f.a = a.a;
+ this.a.f.b = a.b;
+ };
+ _.vf = function u$b(a) {
+ this.a.p = a;
+ };
+ _.b = null;
+ _.d = false;
+ _.e = false;
+ mdb(fne, "LGraphAdapters/LGraphAdapter", 656);
+ bcb(576, 657, { 181: 1 }, v$b);
+ mdb(fne, "LGraphAdapters/LLabelAdapter", 576);
+ bcb(575, 657, { 680: 1 }, x$b);
+ _.yf = function y$b() {
+ return this.b;
+ };
+ _.zf = function z$b() {
+ return mmb(), mmb(), jmb;
+ };
+ _.wf = function A$b() {
+ var a, b;
+ if (!this.a) {
+ this.a = Pu(BD(this.e, 10).b.c.length);
+ for (b = new olb(BD(this.e, 10).b); b.a < b.c.c.length; ) {
+ a = BD(mlb(b), 70);
+ Ekb(this.a, new v$b(a));
+ }
+ }
+ return this.a;
+ };
+ _.Af = function B$b() {
+ var a;
+ a = BD(this.e, 10).d;
+ return new J_b(a.d, a.c, a.a, a.b);
+ };
+ _.Bf = function C$b() {
+ return mmb(), mmb(), jmb;
+ };
+ _.Cf = function D$b() {
+ var a, b;
+ if (!this.c) {
+ this.c = Pu(BD(this.e, 10).j.c.length);
+ for (b = new olb(BD(this.e, 10).j); b.a < b.c.c.length; ) {
+ a = BD(mlb(b), 11);
+ Ekb(this.c, new I$b(a, this.d));
+ }
+ }
+ return this.c;
+ };
+ _.Df = function E$b() {
+ return Ccb(DD(vNb(BD(this.e, 10), (wtc(), wsc))));
+ };
+ _.Ef = function F$b(a) {
+ BD(this.e, 10).d.b = a.b;
+ BD(this.e, 10).d.d = a.d;
+ BD(this.e, 10).d.c = a.c;
+ BD(this.e, 10).d.a = a.a;
+ };
+ _.Ff = function G$b(a) {
+ BD(this.e, 10).f.b = a.b;
+ BD(this.e, 10).f.d = a.d;
+ BD(this.e, 10).f.c = a.c;
+ BD(this.e, 10).f.a = a.a;
+ };
+ _.Gf = function H$b() {
+ w$b(this, (a$b(), _Zb));
+ };
+ _.a = null;
+ _.b = null;
+ _.c = null;
+ _.d = false;
+ mdb(fne, "LGraphAdapters/LNodeAdapter", 575);
+ bcb(1722, 657, { 838: 1 }, I$b);
+ _.zf = function J$b() {
+ var a, b, c, d;
+ if (this.d && BD(this.e, 11).i.k == (j0b(), i0b)) {
+ return mmb(), mmb(), jmb;
+ } else if (!this.a) {
+ this.a = new Rkb();
+ for (c = new olb(BD(this.e, 11).e); c.a < c.c.c.length; ) {
+ a = BD(mlb(c), 17);
+ Ekb(this.a, new j$b(a));
+ }
+ if (this.d) {
+ d = BD(vNb(BD(this.e, 11), (wtc(), gtc)), 10);
+ if (d) {
+ for (b = new Sr(ur(R_b(d).a.Kc(), new Sq())); Qr(b); ) {
+ a = BD(Rr(b), 17);
+ Ekb(this.a, new j$b(a));
+ }
+ }
+ }
+ }
+ return this.a;
+ };
+ _.wf = function K$b() {
+ var a, b;
+ if (!this.b) {
+ this.b = Pu(BD(this.e, 11).f.c.length);
+ for (b = new olb(BD(this.e, 11).f); b.a < b.c.c.length; ) {
+ a = BD(mlb(b), 70);
+ Ekb(this.b, new v$b(a));
+ }
+ }
+ return this.b;
+ };
+ _.Bf = function L$b() {
+ var a, b, c, d;
+ if (this.d && BD(this.e, 11).i.k == (j0b(), i0b)) {
+ return mmb(), mmb(), jmb;
+ } else if (!this.c) {
+ this.c = new Rkb();
+ for (c = new olb(BD(this.e, 11).g); c.a < c.c.c.length; ) {
+ a = BD(mlb(c), 17);
+ Ekb(this.c, new j$b(a));
+ }
+ if (this.d) {
+ d = BD(vNb(BD(this.e, 11), (wtc(), gtc)), 10);
+ if (d) {
+ for (b = new Sr(ur(U_b(d).a.Kc(), new Sq())); Qr(b); ) {
+ a = BD(Rr(b), 17);
+ Ekb(this.c, new j$b(a));
+ }
+ }
+ }
+ }
+ return this.c;
+ };
+ _.Hf = function M$b() {
+ return BD(this.e, 11).j;
+ };
+ _.If = function N$b() {
+ return Ccb(DD(vNb(BD(this.e, 11), (wtc(), Nsc))));
+ };
+ _.a = null;
+ _.b = null;
+ _.c = null;
+ _.d = false;
+ mdb(fne, "LGraphAdapters/LPortAdapter", 1722);
+ bcb(1723, 1, Dke, P$b);
+ _.ue = function Q$b(a, b) {
+ return O$b(BD(a, 11), BD(b, 11));
+ };
+ _.Fb = function R$b(a) {
+ return this === a;
+ };
+ _.ve = function S$b() {
+ return new tpb(this);
+ };
+ mdb(fne, "LGraphAdapters/PortComparator", 1723);
+ bcb(804, 1, Oie, T$b);
+ _.Mb = function U$b(a) {
+ return BD(a, 10), a$b(), true;
+ };
+ mdb(fne, "LGraphAdapters/lambda$0$Type", 804);
+ bcb(392, 299, { 3: 1, 299: 1, 392: 1, 94: 1, 134: 1 });
+ mdb(fne, "LShape", 392);
+ bcb(70, 392, { 3: 1, 299: 1, 70: 1, 392: 1, 94: 1, 134: 1 }, p_b, q_b);
+ _.Ib = function r_b() {
+ var a;
+ a = o_b(this);
+ return a == null ? "label" : "l_" + a;
+ };
+ mdb(fne, "LLabel", 70);
+ bcb(207, 1, { 3: 1, 4: 1, 207: 1, 414: 1 });
+ _.Fb = function C_b(a) {
+ var b;
+ if (JD(a, 207)) {
+ b = BD(a, 207);
+ return this.d == b.d && this.a == b.a && this.b == b.b && this.c == b.c;
+ } else {
+ return false;
+ }
+ };
+ _.Hb = function D_b() {
+ var a, b;
+ a = Hdb(this.b) << 16;
+ a |= Hdb(this.a) & aje;
+ b = Hdb(this.c) << 16;
+ b |= Hdb(this.d) & aje;
+ return a ^ b;
+ };
+ _.Jf = function F_b(b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ g = 0;
+ while (g < b.length && E_b((BCb(g, b.length), b.charCodeAt(g)), mne)) {
+ ++g;
+ }
+ c = b.length;
+ while (c > 0 && E_b((BCb(c - 1, b.length), b.charCodeAt(c - 1)), nne)) {
+ --c;
+ }
+ if (g < c) {
+ l = mfb(b.substr(g, c - g), ",|;");
+ try {
+ for (i = l, j = 0, k = i.length; j < k; ++j) {
+ h = i[j];
+ f = mfb(h, "=");
+ if (f.length != 2) {
+ throw vbb(new Wdb("Expecting a list of key-value pairs."));
+ }
+ e = ufb(f[0]);
+ m = Hcb(ufb(f[1]));
+ dfb(e, "top") ? this.d = m : dfb(e, "left") ? this.b = m : dfb(e, "bottom") ? this.a = m : dfb(e, "right") && (this.c = m);
+ }
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ d = a;
+ throw vbb(new Wdb(one + d));
+ } else
+ throw vbb(a);
+ }
+ }
+ };
+ _.Ib = function G_b() {
+ return "[top=" + this.d + ",left=" + this.b + ",bottom=" + this.a + ",right=" + this.c + "]";
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ _.d = 0;
+ mdb(pne, "Spacing", 207);
+ bcb(142, 207, qne, H_b, I_b, J_b, K_b);
+ var i1 = mdb(pne, "ElkMargin", 142);
+ bcb(651, 142, qne, L_b);
+ mdb(fne, "LMargin", 651);
+ bcb(10, 392, { 3: 1, 299: 1, 10: 1, 392: 1, 94: 1, 134: 1 }, b0b);
+ _.Ib = function c0b() {
+ return a0b(this);
+ };
+ _.i = false;
+ var OQ = mdb(fne, "LNode", 10);
+ bcb(267, 22, { 3: 1, 35: 1, 22: 1, 267: 1 }, k0b);
+ var d0b, e0b, f0b, g0b, h0b, i0b;
+ var NQ = ndb(fne, "LNode/NodeType", 267, CI, m0b, l0b);
+ var n0b;
+ bcb(116, 207, rne, p0b, q0b, r0b);
+ var j1 = mdb(pne, "ElkPadding", 116);
+ bcb(764, 116, rne, s0b);
+ mdb(fne, "LPadding", 764);
+ bcb(11, 392, { 3: 1, 299: 1, 11: 1, 392: 1, 94: 1, 134: 1 }, H0b);
+ _.Ib = function I0b() {
+ var a, b, c;
+ a = new Ufb();
+ Qfb((a.a += "p_", a), C0b(this));
+ !!this.i && Qfb(Pfb((a.a += "[", a), this.i), "]");
+ if (this.e.c.length == 1 && this.g.c.length == 0 && BD(Ikb(this.e, 0), 17).c != this) {
+ b = BD(Ikb(this.e, 0), 17).c;
+ Qfb((a.a += " << ", a), C0b(b));
+ Qfb(Pfb((a.a += "[", a), b.i), "]");
+ }
+ if (this.e.c.length == 0 && this.g.c.length == 1 && BD(Ikb(this.g, 0), 17).d != this) {
+ c = BD(Ikb(this.g, 0), 17).d;
+ Qfb((a.a += " >> ", a), C0b(c));
+ Qfb(Pfb((a.a += "[", a), c.i), "]");
+ }
+ return a.a;
+ };
+ _.c = true;
+ _.d = false;
+ var t0b, u0b, v0b, w0b, x0b, y0b;
+ var aR = mdb(fne, "LPort", 11);
+ bcb(397, 1, vie, J0b);
+ _.Jc = function K0b(a) {
+ reb(this, a);
+ };
+ _.Kc = function L0b() {
+ var a;
+ a = new olb(this.a.e);
+ return new M0b(a);
+ };
+ mdb(fne, "LPort/1", 397);
+ bcb(1290, 1, aie, M0b);
+ _.Nb = function N0b(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function P0b() {
+ return BD(mlb(this.a), 17).c;
+ };
+ _.Ob = function O0b() {
+ return llb(this.a);
+ };
+ _.Qb = function Q0b() {
+ nlb(this.a);
+ };
+ mdb(fne, "LPort/1/1", 1290);
+ bcb(359, 1, vie, R0b);
+ _.Jc = function S0b(a) {
+ reb(this, a);
+ };
+ _.Kc = function T0b() {
+ var a;
+ return a = new olb(this.a.g), new U0b(a);
+ };
+ mdb(fne, "LPort/2", 359);
+ bcb(762, 1, aie, U0b);
+ _.Nb = function V0b(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function X0b() {
+ return BD(mlb(this.a), 17).d;
+ };
+ _.Ob = function W0b() {
+ return llb(this.a);
+ };
+ _.Qb = function Y0b() {
+ nlb(this.a);
+ };
+ mdb(fne, "LPort/2/1", 762);
+ bcb(1283, 1, vie, Z0b);
+ _.Jc = function $0b(a) {
+ reb(this, a);
+ };
+ _.Kc = function _0b() {
+ return new b1b(this);
+ };
+ mdb(fne, "LPort/CombineIter", 1283);
+ bcb(201, 1, aie, b1b);
+ _.Nb = function c1b(a) {
+ Rrb(this, a);
+ };
+ _.Qb = function f1b() {
+ Srb();
+ };
+ _.Ob = function d1b() {
+ return a1b(this);
+ };
+ _.Pb = function e1b() {
+ return llb(this.a) ? mlb(this.a) : mlb(this.b);
+ };
+ mdb(fne, "LPort/CombineIter/1", 201);
+ bcb(1285, 1, Vke, h1b);
+ _.Lb = function i1b(a) {
+ return g1b(a);
+ };
+ _.Fb = function j1b(a) {
+ return this === a;
+ };
+ _.Mb = function k1b(a) {
+ return z0b(), BD(a, 11).e.c.length != 0;
+ };
+ mdb(fne, "LPort/lambda$0$Type", 1285);
+ bcb(1284, 1, Vke, m1b);
+ _.Lb = function n1b(a) {
+ return l1b(a);
+ };
+ _.Fb = function o1b(a) {
+ return this === a;
+ };
+ _.Mb = function p1b(a) {
+ return z0b(), BD(a, 11).g.c.length != 0;
+ };
+ mdb(fne, "LPort/lambda$1$Type", 1284);
+ bcb(1286, 1, Vke, q1b);
+ _.Lb = function r1b(a) {
+ return z0b(), BD(a, 11).j == (Ucd(), Acd);
+ };
+ _.Fb = function s1b(a) {
+ return this === a;
+ };
+ _.Mb = function t1b(a) {
+ return z0b(), BD(a, 11).j == (Ucd(), Acd);
+ };
+ mdb(fne, "LPort/lambda$2$Type", 1286);
+ bcb(1287, 1, Vke, u1b);
+ _.Lb = function v1b(a) {
+ return z0b(), BD(a, 11).j == (Ucd(), zcd);
+ };
+ _.Fb = function w1b(a) {
+ return this === a;
+ };
+ _.Mb = function x1b(a) {
+ return z0b(), BD(a, 11).j == (Ucd(), zcd);
+ };
+ mdb(fne, "LPort/lambda$3$Type", 1287);
+ bcb(1288, 1, Vke, y1b);
+ _.Lb = function z1b(a) {
+ return z0b(), BD(a, 11).j == (Ucd(), Rcd);
+ };
+ _.Fb = function A1b(a) {
+ return this === a;
+ };
+ _.Mb = function B1b(a) {
+ return z0b(), BD(a, 11).j == (Ucd(), Rcd);
+ };
+ mdb(fne, "LPort/lambda$4$Type", 1288);
+ bcb(1289, 1, Vke, C1b);
+ _.Lb = function D1b(a) {
+ return z0b(), BD(a, 11).j == (Ucd(), Tcd);
+ };
+ _.Fb = function E1b(a) {
+ return this === a;
+ };
+ _.Mb = function F1b(a) {
+ return z0b(), BD(a, 11).j == (Ucd(), Tcd);
+ };
+ mdb(fne, "LPort/lambda$5$Type", 1289);
+ bcb(29, 299, { 3: 1, 20: 1, 299: 1, 29: 1, 94: 1, 134: 1 }, H1b);
+ _.Jc = function I1b(a) {
+ reb(this, a);
+ };
+ _.Kc = function J1b() {
+ return new olb(this.a);
+ };
+ _.Ib = function K1b() {
+ return "L_" + Jkb(this.b.b, this, 0) + Fe(this.a);
+ };
+ mdb(fne, "Layer", 29);
+ bcb(1342, 1, {}, a2b);
+ mdb(tne, une, 1342);
+ bcb(1346, 1, {}, e2b);
+ _.Kb = function f2b(a) {
+ return atd(BD(a, 82));
+ };
+ mdb(tne, "ElkGraphImporter/0methodref$connectableShapeToNode$Type", 1346);
+ bcb(1349, 1, {}, g2b);
+ _.Kb = function h2b(a) {
+ return atd(BD(a, 82));
+ };
+ mdb(tne, "ElkGraphImporter/1methodref$connectableShapeToNode$Type", 1349);
+ bcb(1343, 1, qie, i2b);
+ _.td = function j2b(a) {
+ Q1b(this.a, BD(a, 118));
+ };
+ mdb(tne, vne, 1343);
+ bcb(1344, 1, qie, k2b);
+ _.td = function l2b(a) {
+ Q1b(this.a, BD(a, 118));
+ };
+ mdb(tne, wne, 1344);
+ bcb(1345, 1, {}, m2b);
+ _.Kb = function n2b(a) {
+ return new YAb(null, new Kub(Old(BD(a, 79)), 16));
+ };
+ mdb(tne, xne, 1345);
+ bcb(1347, 1, Oie, o2b);
+ _.Mb = function p2b(a) {
+ return b2b(this.a, BD(a, 33));
+ };
+ mdb(tne, yne, 1347);
+ bcb(1348, 1, {}, q2b);
+ _.Kb = function r2b(a) {
+ return new YAb(null, new Kub(Nld(BD(a, 79)), 16));
+ };
+ mdb(tne, "ElkGraphImporter/lambda$5$Type", 1348);
+ bcb(1350, 1, Oie, s2b);
+ _.Mb = function t2b(a) {
+ return c2b(this.a, BD(a, 33));
+ };
+ mdb(tne, "ElkGraphImporter/lambda$7$Type", 1350);
+ bcb(1351, 1, Oie, u2b);
+ _.Mb = function v2b(a) {
+ return d2b(BD(a, 79));
+ };
+ mdb(tne, "ElkGraphImporter/lambda$8$Type", 1351);
+ bcb(1278, 1, {}, D2b);
+ var w2b;
+ mdb(tne, "ElkGraphLayoutTransferrer", 1278);
+ bcb(1279, 1, Oie, G2b);
+ _.Mb = function H2b(a) {
+ return E2b(this.a, BD(a, 17));
+ };
+ mdb(tne, "ElkGraphLayoutTransferrer/lambda$0$Type", 1279);
+ bcb(1280, 1, qie, I2b);
+ _.td = function J2b(a) {
+ x2b();
+ Ekb(this.a, BD(a, 17));
+ };
+ mdb(tne, "ElkGraphLayoutTransferrer/lambda$1$Type", 1280);
+ bcb(1281, 1, Oie, K2b);
+ _.Mb = function L2b(a) {
+ return F2b(this.a, BD(a, 17));
+ };
+ mdb(tne, "ElkGraphLayoutTransferrer/lambda$2$Type", 1281);
+ bcb(1282, 1, qie, M2b);
+ _.td = function N2b(a) {
+ x2b();
+ Ekb(this.a, BD(a, 17));
+ };
+ mdb(tne, "ElkGraphLayoutTransferrer/lambda$3$Type", 1282);
+ bcb(1485, 1, ene, S2b);
+ _.pf = function T2b(a, b) {
+ Q2b(BD(a, 37), b);
+ };
+ mdb(Ane, "CommentNodeMarginCalculator", 1485);
+ bcb(1486, 1, {}, U2b);
+ _.Kb = function V2b(a) {
+ return new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Ane, "CommentNodeMarginCalculator/lambda$0$Type", 1486);
+ bcb(1487, 1, qie, W2b);
+ _.td = function X2b(a) {
+ R2b(BD(a, 10));
+ };
+ mdb(Ane, "CommentNodeMarginCalculator/lambda$1$Type", 1487);
+ bcb(1488, 1, ene, _2b);
+ _.pf = function a3b(a, b) {
+ Z2b(BD(a, 37), b);
+ };
+ mdb(Ane, "CommentPostprocessor", 1488);
+ bcb(1489, 1, ene, e3b);
+ _.pf = function f3b(a, b) {
+ b3b(BD(a, 37), b);
+ };
+ mdb(Ane, "CommentPreprocessor", 1489);
+ bcb(1490, 1, ene, h3b);
+ _.pf = function i3b(a, b) {
+ g3b(BD(a, 37), b);
+ };
+ mdb(Ane, "ConstraintsPostprocessor", 1490);
+ bcb(1491, 1, ene, p3b);
+ _.pf = function q3b(a, b) {
+ n3b(BD(a, 37), b);
+ };
+ mdb(Ane, "EdgeAndLayerConstraintEdgeReverser", 1491);
+ bcb(1492, 1, ene, t3b);
+ _.pf = function v3b(a, b) {
+ r3b(BD(a, 37), b);
+ };
+ mdb(Ane, "EndLabelPostprocessor", 1492);
+ bcb(1493, 1, {}, w3b);
+ _.Kb = function x3b(a) {
+ return new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Ane, "EndLabelPostprocessor/lambda$0$Type", 1493);
+ bcb(1494, 1, Oie, y3b);
+ _.Mb = function z3b(a) {
+ return u3b(BD(a, 10));
+ };
+ mdb(Ane, "EndLabelPostprocessor/lambda$1$Type", 1494);
+ bcb(1495, 1, qie, A3b);
+ _.td = function B3b(a) {
+ s3b(BD(a, 10));
+ };
+ mdb(Ane, "EndLabelPostprocessor/lambda$2$Type", 1495);
+ bcb(1496, 1, ene, M3b);
+ _.pf = function P3b(a, b) {
+ I3b(BD(a, 37), b);
+ };
+ mdb(Ane, "EndLabelPreprocessor", 1496);
+ bcb(1497, 1, {}, Q3b);
+ _.Kb = function R3b(a) {
+ return new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Ane, "EndLabelPreprocessor/lambda$0$Type", 1497);
+ bcb(1498, 1, qie, S3b);
+ _.td = function T3b(a) {
+ E3b(this.a, this.b, this.c, BD(a, 10));
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = false;
+ mdb(Ane, "EndLabelPreprocessor/lambda$1$Type", 1498);
+ bcb(1499, 1, Oie, U3b);
+ _.Mb = function V3b(a) {
+ return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), pad));
+ };
+ mdb(Ane, "EndLabelPreprocessor/lambda$2$Type", 1499);
+ bcb(1500, 1, qie, W3b);
+ _.td = function X3b(a) {
+ Dsb(this.a, BD(a, 70));
+ };
+ mdb(Ane, "EndLabelPreprocessor/lambda$3$Type", 1500);
+ bcb(1501, 1, Oie, Y3b);
+ _.Mb = function Z3b(a) {
+ return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), oad));
+ };
+ mdb(Ane, "EndLabelPreprocessor/lambda$4$Type", 1501);
+ bcb(1502, 1, qie, $3b);
+ _.td = function _3b(a) {
+ Dsb(this.a, BD(a, 70));
+ };
+ mdb(Ane, "EndLabelPreprocessor/lambda$5$Type", 1502);
+ bcb(1551, 1, ene, i4b);
+ _.pf = function j4b(a, b) {
+ f4b(BD(a, 37), b);
+ };
+ var a4b;
+ mdb(Ane, "EndLabelSorter", 1551);
+ bcb(1552, 1, Dke, l4b);
+ _.ue = function m4b(a, b) {
+ return k4b(BD(a, 456), BD(b, 456));
+ };
+ _.Fb = function n4b(a) {
+ return this === a;
+ };
+ _.ve = function o4b() {
+ return new tpb(this);
+ };
+ mdb(Ane, "EndLabelSorter/1", 1552);
+ bcb(456, 1, { 456: 1 }, p4b);
+ mdb(Ane, "EndLabelSorter/LabelGroup", 456);
+ bcb(1553, 1, {}, q4b);
+ _.Kb = function r4b(a) {
+ return b4b(), new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Ane, "EndLabelSorter/lambda$0$Type", 1553);
+ bcb(1554, 1, Oie, s4b);
+ _.Mb = function t4b(a) {
+ return b4b(), BD(a, 10).k == (j0b(), h0b);
+ };
+ mdb(Ane, "EndLabelSorter/lambda$1$Type", 1554);
+ bcb(1555, 1, qie, u4b);
+ _.td = function v4b(a) {
+ g4b(BD(a, 10));
+ };
+ mdb(Ane, "EndLabelSorter/lambda$2$Type", 1555);
+ bcb(1556, 1, Oie, w4b);
+ _.Mb = function x4b(a) {
+ return b4b(), PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), oad));
+ };
+ mdb(Ane, "EndLabelSorter/lambda$3$Type", 1556);
+ bcb(1557, 1, Oie, y4b);
+ _.Mb = function z4b(a) {
+ return b4b(), PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), pad));
+ };
+ mdb(Ane, "EndLabelSorter/lambda$4$Type", 1557);
+ bcb(1503, 1, ene, L4b);
+ _.pf = function M4b(a, b) {
+ J4b(this, BD(a, 37));
+ };
+ _.b = 0;
+ _.c = 0;
+ mdb(Ane, "FinalSplineBendpointsCalculator", 1503);
+ bcb(1504, 1, {}, N4b);
+ _.Kb = function O4b(a) {
+ return new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Ane, "FinalSplineBendpointsCalculator/lambda$0$Type", 1504);
+ bcb(1505, 1, {}, P4b);
+ _.Kb = function Q4b(a) {
+ return new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
+ };
+ mdb(Ane, "FinalSplineBendpointsCalculator/lambda$1$Type", 1505);
+ bcb(1506, 1, Oie, R4b);
+ _.Mb = function S4b(a) {
+ return !OZb(BD(a, 17));
+ };
+ mdb(Ane, "FinalSplineBendpointsCalculator/lambda$2$Type", 1506);
+ bcb(1507, 1, Oie, T4b);
+ _.Mb = function U4b(a) {
+ return wNb(BD(a, 17), (wtc(), rtc));
+ };
+ mdb(Ane, "FinalSplineBendpointsCalculator/lambda$3$Type", 1507);
+ bcb(1508, 1, qie, V4b);
+ _.td = function W4b(a) {
+ C4b(this.a, BD(a, 128));
+ };
+ mdb(Ane, "FinalSplineBendpointsCalculator/lambda$4$Type", 1508);
+ bcb(1509, 1, qie, X4b);
+ _.td = function Y4b(a) {
+ smb(BD(a, 17).a);
+ };
+ mdb(Ane, "FinalSplineBendpointsCalculator/lambda$5$Type", 1509);
+ bcb(792, 1, ene, u5b);
+ _.pf = function v5b(a, b) {
+ l5b(this, BD(a, 37), b);
+ };
+ mdb(Ane, "GraphTransformer", 792);
+ bcb(511, 22, { 3: 1, 35: 1, 22: 1, 511: 1 }, z5b);
+ var w5b, x5b;
+ var ZR = ndb(Ane, "GraphTransformer/Mode", 511, CI, B5b, A5b);
+ var C5b;
+ bcb(1510, 1, ene, I5b);
+ _.pf = function J5b(a, b) {
+ F5b(BD(a, 37), b);
+ };
+ mdb(Ane, "HierarchicalNodeResizingProcessor", 1510);
+ bcb(1511, 1, ene, Q5b);
+ _.pf = function R5b(a, b) {
+ M5b(BD(a, 37), b);
+ };
+ mdb(Ane, "HierarchicalPortConstraintProcessor", 1511);
+ bcb(1512, 1, Dke, T5b);
+ _.ue = function U5b(a, b) {
+ return S5b(BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function V5b(a) {
+ return this === a;
+ };
+ _.ve = function W5b() {
+ return new tpb(this);
+ };
+ mdb(Ane, "HierarchicalPortConstraintProcessor/NodeComparator", 1512);
+ bcb(1513, 1, ene, Z5b);
+ _.pf = function $5b(a, b) {
+ X5b(BD(a, 37), b);
+ };
+ mdb(Ane, "HierarchicalPortDummySizeProcessor", 1513);
+ bcb(1514, 1, ene, l6b);
+ _.pf = function m6b(a, b) {
+ e6b(this, BD(a, 37), b);
+ };
+ _.a = 0;
+ mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter", 1514);
+ bcb(1515, 1, Dke, o6b);
+ _.ue = function p6b(a, b) {
+ return n6b(BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function q6b(a) {
+ return this === a;
+ };
+ _.ve = function r6b() {
+ return new tpb(this);
+ };
+ mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter/1", 1515);
+ bcb(1516, 1, Dke, t6b);
+ _.ue = function u6b(a, b) {
+ return s6b(BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function v6b(a) {
+ return this === a;
+ };
+ _.ve = function w6b() {
+ return new tpb(this);
+ };
+ mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter/2", 1516);
+ bcb(1517, 1, ene, z6b);
+ _.pf = function A6b(a, b) {
+ y6b(BD(a, 37), b);
+ };
+ mdb(Ane, "HierarchicalPortPositionProcessor", 1517);
+ bcb(1518, 1, ene, J6b);
+ _.pf = function K6b(a, b) {
+ I6b(this, BD(a, 37));
+ };
+ _.a = 0;
+ _.c = 0;
+ var B6b, C6b;
+ mdb(Ane, "HighDegreeNodeLayeringProcessor", 1518);
+ bcb(571, 1, { 571: 1 }, L6b);
+ _.b = -1;
+ _.d = -1;
+ mdb(Ane, "HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation", 571);
+ bcb(1519, 1, {}, M6b);
+ _.Kb = function N6b(a) {
+ return D6b(), R_b(BD(a, 10));
+ };
+ _.Fb = function O6b(a) {
+ return this === a;
+ };
+ mdb(Ane, "HighDegreeNodeLayeringProcessor/lambda$0$Type", 1519);
+ bcb(1520, 1, {}, P6b);
+ _.Kb = function Q6b(a) {
+ return D6b(), U_b(BD(a, 10));
+ };
+ _.Fb = function R6b(a) {
+ return this === a;
+ };
+ mdb(Ane, "HighDegreeNodeLayeringProcessor/lambda$1$Type", 1520);
+ bcb(1526, 1, ene, X6b);
+ _.pf = function Y6b(a, b) {
+ W6b(this, BD(a, 37), b);
+ };
+ mdb(Ane, "HyperedgeDummyMerger", 1526);
+ bcb(793, 1, {}, Z6b);
+ _.a = false;
+ _.b = false;
+ _.c = false;
+ mdb(Ane, "HyperedgeDummyMerger/MergeState", 793);
+ bcb(1527, 1, {}, $6b);
+ _.Kb = function _6b(a) {
+ return new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Ane, "HyperedgeDummyMerger/lambda$0$Type", 1527);
+ bcb(1528, 1, {}, a7b);
+ _.Kb = function b7b(a) {
+ return new YAb(null, new Kub(BD(a, 10).j, 16));
+ };
+ mdb(Ane, "HyperedgeDummyMerger/lambda$1$Type", 1528);
+ bcb(1529, 1, qie, c7b);
+ _.td = function d7b(a) {
+ BD(a, 11).p = -1;
+ };
+ mdb(Ane, "HyperedgeDummyMerger/lambda$2$Type", 1529);
+ bcb(1530, 1, ene, g7b);
+ _.pf = function h7b(a, b) {
+ f7b(BD(a, 37), b);
+ };
+ mdb(Ane, "HypernodesProcessor", 1530);
+ bcb(1531, 1, ene, j7b);
+ _.pf = function k7b(a, b) {
+ i7b(BD(a, 37), b);
+ };
+ mdb(Ane, "InLayerConstraintProcessor", 1531);
+ bcb(1532, 1, ene, m7b);
+ _.pf = function n7b(a, b) {
+ l7b(BD(a, 37), b);
+ };
+ mdb(Ane, "InnermostNodeMarginCalculator", 1532);
+ bcb(1533, 1, ene, r7b);
+ _.pf = function w7b(a, b) {
+ q7b(this, BD(a, 37));
+ };
+ _.a = Qje;
+ _.b = Qje;
+ _.c = Pje;
+ _.d = Pje;
+ var zS = mdb(Ane, "InteractiveExternalPortPositioner", 1533);
+ bcb(1534, 1, {}, x7b);
+ _.Kb = function y7b(a) {
+ return BD(a, 17).d.i;
+ };
+ _.Fb = function z7b(a) {
+ return this === a;
+ };
+ mdb(Ane, "InteractiveExternalPortPositioner/lambda$0$Type", 1534);
+ bcb(1535, 1, {}, A7b);
+ _.Kb = function B7b(a) {
+ return s7b(this.a, ED(a));
+ };
+ _.Fb = function C7b(a) {
+ return this === a;
+ };
+ mdb(Ane, "InteractiveExternalPortPositioner/lambda$1$Type", 1535);
+ bcb(1536, 1, {}, D7b);
+ _.Kb = function E7b(a) {
+ return BD(a, 17).c.i;
+ };
+ _.Fb = function F7b(a) {
+ return this === a;
+ };
+ mdb(Ane, "InteractiveExternalPortPositioner/lambda$2$Type", 1536);
+ bcb(1537, 1, {}, G7b);
+ _.Kb = function H7b(a) {
+ return t7b(this.a, ED(a));
+ };
+ _.Fb = function I7b(a) {
+ return this === a;
+ };
+ mdb(Ane, "InteractiveExternalPortPositioner/lambda$3$Type", 1537);
+ bcb(1538, 1, {}, J7b);
+ _.Kb = function K7b(a) {
+ return u7b(this.a, ED(a));
+ };
+ _.Fb = function L7b(a) {
+ return this === a;
+ };
+ mdb(Ane, "InteractiveExternalPortPositioner/lambda$4$Type", 1538);
+ bcb(1539, 1, {}, M7b);
+ _.Kb = function N7b(a) {
+ return v7b(this.a, ED(a));
+ };
+ _.Fb = function O7b(a) {
+ return this === a;
+ };
+ mdb(Ane, "InteractiveExternalPortPositioner/lambda$5$Type", 1539);
+ bcb(77, 22, { 3: 1, 35: 1, 22: 1, 77: 1, 234: 1 }, T8b);
+ _.Kf = function U8b() {
+ switch (this.g) {
+ case 15:
+ return new eoc();
+ case 22:
+ return new Aoc();
+ case 47:
+ return new Joc();
+ case 28:
+ case 35:
+ return new uac();
+ case 32:
+ return new S2b();
+ case 42:
+ return new _2b();
+ case 1:
+ return new e3b();
+ case 41:
+ return new h3b();
+ case 56:
+ return new u5b((y5b(), x5b));
+ case 0:
+ return new u5b((y5b(), w5b));
+ case 2:
+ return new p3b();
+ case 54:
+ return new t3b();
+ case 33:
+ return new M3b();
+ case 51:
+ return new L4b();
+ case 55:
+ return new I5b();
+ case 13:
+ return new Q5b();
+ case 38:
+ return new Z5b();
+ case 44:
+ return new l6b();
+ case 40:
+ return new z6b();
+ case 9:
+ return new J6b();
+ case 49:
+ return new sgc();
+ case 37:
+ return new X6b();
+ case 43:
+ return new g7b();
+ case 27:
+ return new j7b();
+ case 30:
+ return new m7b();
+ case 3:
+ return new r7b();
+ case 18:
+ return new b9b();
+ case 29:
+ return new h9b();
+ case 5:
+ return new u9b();
+ case 50:
+ return new D9b();
+ case 34:
+ return new $9b();
+ case 36:
+ return new Iac();
+ case 52:
+ return new i4b();
+ case 11:
+ return new Sac();
+ case 7:
+ return new abc();
+ case 39:
+ return new obc();
+ case 45:
+ return new rbc();
+ case 16:
+ return new vbc();
+ case 10:
+ return new Fbc();
+ case 48:
+ return new Xbc();
+ case 21:
+ return new ccc();
+ case 23:
+ return new fGc((rGc(), pGc));
+ case 8:
+ return new lcc();
+ case 12:
+ return new tcc();
+ case 4:
+ return new ycc();
+ case 19:
+ return new Tcc();
+ case 17:
+ return new pdc();
+ case 53:
+ return new sdc();
+ case 6:
+ return new hec();
+ case 25:
+ return new wdc();
+ case 46:
+ return new Ndc();
+ case 31:
+ return new sec();
+ case 14:
+ return new Fec();
+ case 26:
+ return new ppc();
+ case 20:
+ return new Uec();
+ case 24:
+ return new fGc((rGc(), qGc));
+ default:
+ throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g)));
+ }
+ };
+ var P7b, Q7b, R7b, S7b, T7b, U7b, V7b, W7b, X7b, Y7b, Z7b, $7b, _7b, a8b, b8b, c8b, d8b, e8b, f8b, g8b, h8b, i8b, j8b, k8b, l8b, m8b, n8b, o8b, p8b, q8b, r8b, s8b, t8b, u8b, v8b, w8b, x8b, y8b, z8b, A8b, B8b, C8b, D8b, E8b, F8b, G8b, H8b, I8b, J8b, K8b, L8b, M8b, N8b, O8b, P8b, Q8b, R8b;
+ var AS = ndb(Ane, Ene, 77, CI, W8b, V8b);
+ var X8b;
+ bcb(1540, 1, ene, b9b);
+ _.pf = function c9b(a, b) {
+ _8b(BD(a, 37), b);
+ };
+ mdb(Ane, "InvertedPortProcessor", 1540);
+ bcb(1541, 1, ene, h9b);
+ _.pf = function i9b(a, b) {
+ g9b(BD(a, 37), b);
+ };
+ mdb(Ane, "LabelAndNodeSizeProcessor", 1541);
+ bcb(1542, 1, Oie, j9b);
+ _.Mb = function k9b(a) {
+ return BD(a, 10).k == (j0b(), h0b);
+ };
+ mdb(Ane, "LabelAndNodeSizeProcessor/lambda$0$Type", 1542);
+ bcb(1543, 1, Oie, l9b);
+ _.Mb = function m9b(a) {
+ return BD(a, 10).k == (j0b(), e0b);
+ };
+ mdb(Ane, "LabelAndNodeSizeProcessor/lambda$1$Type", 1543);
+ bcb(1544, 1, qie, n9b);
+ _.td = function o9b(a) {
+ e9b(this.b, this.a, this.c, BD(a, 10));
+ };
+ _.a = false;
+ _.c = false;
+ mdb(Ane, "LabelAndNodeSizeProcessor/lambda$2$Type", 1544);
+ bcb(1545, 1, ene, u9b);
+ _.pf = function v9b(a, b) {
+ s9b(BD(a, 37), b);
+ };
+ var p9b;
+ mdb(Ane, "LabelDummyInserter", 1545);
+ bcb(1546, 1, Vke, w9b);
+ _.Lb = function x9b(a) {
+ return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), nad));
+ };
+ _.Fb = function y9b(a) {
+ return this === a;
+ };
+ _.Mb = function z9b(a) {
+ return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), nad));
+ };
+ mdb(Ane, "LabelDummyInserter/1", 1546);
+ bcb(1547, 1, ene, D9b);
+ _.pf = function E9b(a, b) {
+ C9b(BD(a, 37), b);
+ };
+ mdb(Ane, "LabelDummyRemover", 1547);
+ bcb(1548, 1, Oie, F9b);
+ _.Mb = function G9b(a) {
+ return Ccb(DD(vNb(BD(a, 70), (Nyc(), Pwc))));
+ };
+ mdb(Ane, "LabelDummyRemover/lambda$0$Type", 1548);
+ bcb(1359, 1, ene, $9b);
+ _.pf = function cac(a, b) {
+ W9b(this, BD(a, 37), b);
+ };
+ _.a = null;
+ var H9b;
+ mdb(Ane, "LabelDummySwitcher", 1359);
+ bcb(286, 1, { 286: 1 }, gac);
+ _.c = 0;
+ _.d = null;
+ _.f = 0;
+ mdb(Ane, "LabelDummySwitcher/LabelDummyInfo", 286);
+ bcb(1360, 1, {}, hac);
+ _.Kb = function iac(a) {
+ return I9b(), new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Ane, "LabelDummySwitcher/lambda$0$Type", 1360);
+ bcb(1361, 1, Oie, jac);
+ _.Mb = function kac(a) {
+ return I9b(), BD(a, 10).k == (j0b(), f0b);
+ };
+ mdb(Ane, "LabelDummySwitcher/lambda$1$Type", 1361);
+ bcb(1362, 1, {}, lac);
+ _.Kb = function mac(a) {
+ return _9b(this.a, BD(a, 10));
+ };
+ mdb(Ane, "LabelDummySwitcher/lambda$2$Type", 1362);
+ bcb(1363, 1, qie, nac);
+ _.td = function oac(a) {
+ aac(this.a, BD(a, 286));
+ };
+ mdb(Ane, "LabelDummySwitcher/lambda$3$Type", 1363);
+ bcb(1364, 1, Dke, pac);
+ _.ue = function qac(a, b) {
+ return bac(BD(a, 286), BD(b, 286));
+ };
+ _.Fb = function rac(a) {
+ return this === a;
+ };
+ _.ve = function sac() {
+ return new tpb(this);
+ };
+ mdb(Ane, "LabelDummySwitcher/lambda$4$Type", 1364);
+ bcb(791, 1, ene, uac);
+ _.pf = function vac(a, b) {
+ tac(BD(a, 37), b);
+ };
+ mdb(Ane, "LabelManagementProcessor", 791);
+ bcb(1549, 1, ene, Iac);
+ _.pf = function Jac(a, b) {
+ Cac(BD(a, 37), b);
+ };
+ mdb(Ane, "LabelSideSelector", 1549);
+ bcb(1550, 1, Oie, Kac);
+ _.Mb = function Lac(a) {
+ return Ccb(DD(vNb(BD(a, 70), (Nyc(), Pwc))));
+ };
+ mdb(Ane, "LabelSideSelector/lambda$0$Type", 1550);
+ bcb(1558, 1, ene, Sac);
+ _.pf = function Tac(a, b) {
+ Oac(BD(a, 37), b);
+ };
+ mdb(Ane, "LayerConstraintPostprocessor", 1558);
+ bcb(1559, 1, ene, abc);
+ _.pf = function bbc(a, b) {
+ $ac(BD(a, 37), b);
+ };
+ var Uac;
+ mdb(Ane, "LayerConstraintPreprocessor", 1559);
+ bcb(360, 22, { 3: 1, 35: 1, 22: 1, 360: 1 }, ibc);
+ var cbc, dbc, ebc, fbc;
+ var VS = ndb(Ane, "LayerConstraintPreprocessor/HiddenNodeConnections", 360, CI, kbc, jbc);
+ var lbc;
+ bcb(1560, 1, ene, obc);
+ _.pf = function pbc(a, b) {
+ nbc(BD(a, 37), b);
+ };
+ mdb(Ane, "LayerSizeAndGraphHeightCalculator", 1560);
+ bcb(1561, 1, ene, rbc);
+ _.pf = function tbc(a, b) {
+ qbc(BD(a, 37), b);
+ };
+ mdb(Ane, "LongEdgeJoiner", 1561);
+ bcb(1562, 1, ene, vbc);
+ _.pf = function xbc(a, b) {
+ ubc(BD(a, 37), b);
+ };
+ mdb(Ane, "LongEdgeSplitter", 1562);
+ bcb(1563, 1, ene, Fbc);
+ _.pf = function Ibc(a, b) {
+ Bbc(this, BD(a, 37), b);
+ };
+ _.d = 0;
+ _.e = 0;
+ _.i = 0;
+ _.j = 0;
+ _.k = 0;
+ _.n = 0;
+ mdb(Ane, "NodePromotion", 1563);
+ bcb(1564, 1, {}, Jbc);
+ _.Kb = function Kbc(a) {
+ return BD(a, 46), Bcb(), true;
+ };
+ _.Fb = function Lbc(a) {
+ return this === a;
+ };
+ mdb(Ane, "NodePromotion/lambda$0$Type", 1564);
+ bcb(1565, 1, {}, Mbc);
+ _.Kb = function Nbc(a) {
+ return Gbc(this.a, BD(a, 46));
+ };
+ _.Fb = function Obc(a) {
+ return this === a;
+ };
+ _.a = 0;
+ mdb(Ane, "NodePromotion/lambda$1$Type", 1565);
+ bcb(1566, 1, {}, Pbc);
+ _.Kb = function Qbc(a) {
+ return Hbc(this.a, BD(a, 46));
+ };
+ _.Fb = function Rbc(a) {
+ return this === a;
+ };
+ _.a = 0;
+ mdb(Ane, "NodePromotion/lambda$2$Type", 1566);
+ bcb(1567, 1, ene, Xbc);
+ _.pf = function Ybc(a, b) {
+ Sbc(BD(a, 37), b);
+ };
+ mdb(Ane, "NorthSouthPortPostprocessor", 1567);
+ bcb(1568, 1, ene, ccc);
+ _.pf = function ecc(a, b) {
+ acc(BD(a, 37), b);
+ };
+ mdb(Ane, "NorthSouthPortPreprocessor", 1568);
+ bcb(1569, 1, Dke, fcc);
+ _.ue = function gcc(a, b) {
+ return dcc(BD(a, 11), BD(b, 11));
+ };
+ _.Fb = function hcc(a) {
+ return this === a;
+ };
+ _.ve = function icc() {
+ return new tpb(this);
+ };
+ mdb(Ane, "NorthSouthPortPreprocessor/lambda$0$Type", 1569);
+ bcb(1570, 1, ene, lcc);
+ _.pf = function ncc(a, b) {
+ kcc(BD(a, 37), b);
+ };
+ mdb(Ane, "PartitionMidprocessor", 1570);
+ bcb(1571, 1, Oie, occ);
+ _.Mb = function pcc(a) {
+ return wNb(BD(a, 10), (Nyc(), Nxc));
+ };
+ mdb(Ane, "PartitionMidprocessor/lambda$0$Type", 1571);
+ bcb(1572, 1, qie, qcc);
+ _.td = function rcc(a) {
+ mcc(this.a, BD(a, 10));
+ };
+ mdb(Ane, "PartitionMidprocessor/lambda$1$Type", 1572);
+ bcb(1573, 1, ene, tcc);
+ _.pf = function ucc(a, b) {
+ scc(BD(a, 37), b);
+ };
+ mdb(Ane, "PartitionPostprocessor", 1573);
+ bcb(1574, 1, ene, ycc);
+ _.pf = function zcc(a, b) {
+ wcc(BD(a, 37), b);
+ };
+ mdb(Ane, "PartitionPreprocessor", 1574);
+ bcb(1575, 1, Oie, Acc);
+ _.Mb = function Bcc(a) {
+ return wNb(BD(a, 10), (Nyc(), Nxc));
+ };
+ mdb(Ane, "PartitionPreprocessor/lambda$0$Type", 1575);
+ bcb(1576, 1, {}, Ccc);
+ _.Kb = function Dcc(a) {
+ return new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
+ };
+ mdb(Ane, "PartitionPreprocessor/lambda$1$Type", 1576);
+ bcb(1577, 1, Oie, Ecc);
+ _.Mb = function Fcc(a) {
+ return vcc(BD(a, 17));
+ };
+ mdb(Ane, "PartitionPreprocessor/lambda$2$Type", 1577);
+ bcb(1578, 1, qie, Gcc);
+ _.td = function Hcc(a) {
+ xcc(BD(a, 17));
+ };
+ mdb(Ane, "PartitionPreprocessor/lambda$3$Type", 1578);
+ bcb(1579, 1, ene, Tcc);
+ _.pf = function Xcc(a, b) {
+ Qcc(BD(a, 37), b);
+ };
+ var Icc, Jcc, Kcc, Lcc, Mcc, Ncc;
+ mdb(Ane, "PortListSorter", 1579);
+ bcb(1580, 1, {}, Zcc);
+ _.Kb = function $cc(a) {
+ return Occ(), BD(a, 11).e;
+ };
+ mdb(Ane, "PortListSorter/lambda$0$Type", 1580);
+ bcb(1581, 1, {}, _cc);
+ _.Kb = function adc(a) {
+ return Occ(), BD(a, 11).g;
+ };
+ mdb(Ane, "PortListSorter/lambda$1$Type", 1581);
+ bcb(1582, 1, Dke, bdc);
+ _.ue = function cdc(a, b) {
+ return Ucc(BD(a, 11), BD(b, 11));
+ };
+ _.Fb = function ddc(a) {
+ return this === a;
+ };
+ _.ve = function edc() {
+ return new tpb(this);
+ };
+ mdb(Ane, "PortListSorter/lambda$2$Type", 1582);
+ bcb(1583, 1, Dke, fdc);
+ _.ue = function gdc(a, b) {
+ return Vcc(BD(a, 11), BD(b, 11));
+ };
+ _.Fb = function hdc(a) {
+ return this === a;
+ };
+ _.ve = function idc() {
+ return new tpb(this);
+ };
+ mdb(Ane, "PortListSorter/lambda$3$Type", 1583);
+ bcb(1584, 1, Dke, jdc);
+ _.ue = function kdc(a, b) {
+ return Wcc(BD(a, 11), BD(b, 11));
+ };
+ _.Fb = function ldc(a) {
+ return this === a;
+ };
+ _.ve = function mdc() {
+ return new tpb(this);
+ };
+ mdb(Ane, "PortListSorter/lambda$4$Type", 1584);
+ bcb(1585, 1, ene, pdc);
+ _.pf = function qdc(a, b) {
+ ndc(BD(a, 37), b);
+ };
+ mdb(Ane, "PortSideProcessor", 1585);
+ bcb(1586, 1, ene, sdc);
+ _.pf = function tdc(a, b) {
+ rdc(BD(a, 37), b);
+ };
+ mdb(Ane, "ReversedEdgeRestorer", 1586);
+ bcb(1591, 1, ene, wdc);
+ _.pf = function xdc(a, b) {
+ udc(this, BD(a, 37), b);
+ };
+ mdb(Ane, "SelfLoopPortRestorer", 1591);
+ bcb(1592, 1, {}, ydc);
+ _.Kb = function zdc(a) {
+ return new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Ane, "SelfLoopPortRestorer/lambda$0$Type", 1592);
+ bcb(1593, 1, Oie, Adc);
+ _.Mb = function Bdc(a) {
+ return BD(a, 10).k == (j0b(), h0b);
+ };
+ mdb(Ane, "SelfLoopPortRestorer/lambda$1$Type", 1593);
+ bcb(1594, 1, Oie, Cdc);
+ _.Mb = function Ddc(a) {
+ return wNb(BD(a, 10), (wtc(), ntc));
+ };
+ mdb(Ane, "SelfLoopPortRestorer/lambda$2$Type", 1594);
+ bcb(1595, 1, {}, Edc);
+ _.Kb = function Fdc(a) {
+ return BD(vNb(BD(a, 10), (wtc(), ntc)), 403);
+ };
+ mdb(Ane, "SelfLoopPortRestorer/lambda$3$Type", 1595);
+ bcb(1596, 1, qie, Gdc);
+ _.td = function Hdc(a) {
+ vdc(this.a, BD(a, 403));
+ };
+ mdb(Ane, "SelfLoopPortRestorer/lambda$4$Type", 1596);
+ bcb(794, 1, qie, Idc);
+ _.td = function Jdc(a) {
+ ljc(BD(a, 101));
+ };
+ mdb(Ane, "SelfLoopPortRestorer/lambda$5$Type", 794);
+ bcb(1597, 1, ene, Ndc);
+ _.pf = function Pdc(a, b) {
+ Kdc(BD(a, 37), b);
+ };
+ mdb(Ane, "SelfLoopPostProcessor", 1597);
+ bcb(1598, 1, {}, Qdc);
+ _.Kb = function Rdc(a) {
+ return new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Ane, "SelfLoopPostProcessor/lambda$0$Type", 1598);
+ bcb(1599, 1, Oie, Sdc);
+ _.Mb = function Tdc(a) {
+ return BD(a, 10).k == (j0b(), h0b);
+ };
+ mdb(Ane, "SelfLoopPostProcessor/lambda$1$Type", 1599);
+ bcb(1600, 1, Oie, Udc);
+ _.Mb = function Vdc(a) {
+ return wNb(BD(a, 10), (wtc(), ntc));
+ };
+ mdb(Ane, "SelfLoopPostProcessor/lambda$2$Type", 1600);
+ bcb(1601, 1, qie, Wdc);
+ _.td = function Xdc(a) {
+ Ldc(BD(a, 10));
+ };
+ mdb(Ane, "SelfLoopPostProcessor/lambda$3$Type", 1601);
+ bcb(1602, 1, {}, Ydc);
+ _.Kb = function Zdc(a) {
+ return new YAb(null, new Kub(BD(a, 101).f, 1));
+ };
+ mdb(Ane, "SelfLoopPostProcessor/lambda$4$Type", 1602);
+ bcb(1603, 1, qie, $dc);
+ _.td = function _dc(a) {
+ Mdc(this.a, BD(a, 409));
+ };
+ mdb(Ane, "SelfLoopPostProcessor/lambda$5$Type", 1603);
+ bcb(1604, 1, Oie, aec);
+ _.Mb = function bec(a) {
+ return !!BD(a, 101).i;
+ };
+ mdb(Ane, "SelfLoopPostProcessor/lambda$6$Type", 1604);
+ bcb(1605, 1, qie, cec);
+ _.td = function dec(a) {
+ Odc(this.a, BD(a, 101));
+ };
+ mdb(Ane, "SelfLoopPostProcessor/lambda$7$Type", 1605);
+ bcb(1587, 1, ene, hec);
+ _.pf = function iec(a, b) {
+ gec(BD(a, 37), b);
+ };
+ mdb(Ane, "SelfLoopPreProcessor", 1587);
+ bcb(1588, 1, {}, jec);
+ _.Kb = function kec(a) {
+ return new YAb(null, new Kub(BD(a, 101).f, 1));
+ };
+ mdb(Ane, "SelfLoopPreProcessor/lambda$0$Type", 1588);
+ bcb(1589, 1, {}, lec);
+ _.Kb = function mec(a) {
+ return BD(a, 409).a;
+ };
+ mdb(Ane, "SelfLoopPreProcessor/lambda$1$Type", 1589);
+ bcb(1590, 1, qie, nec);
+ _.td = function oec(a) {
+ fec(BD(a, 17));
+ };
+ mdb(Ane, "SelfLoopPreProcessor/lambda$2$Type", 1590);
+ bcb(1606, 1, ene, sec);
+ _.pf = function tec(a, b) {
+ qec(this, BD(a, 37), b);
+ };
+ mdb(Ane, "SelfLoopRouter", 1606);
+ bcb(1607, 1, {}, uec);
+ _.Kb = function vec(a) {
+ return new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Ane, "SelfLoopRouter/lambda$0$Type", 1607);
+ bcb(1608, 1, Oie, wec);
+ _.Mb = function xec(a) {
+ return BD(a, 10).k == (j0b(), h0b);
+ };
+ mdb(Ane, "SelfLoopRouter/lambda$1$Type", 1608);
+ bcb(1609, 1, Oie, yec);
+ _.Mb = function zec(a) {
+ return wNb(BD(a, 10), (wtc(), ntc));
+ };
+ mdb(Ane, "SelfLoopRouter/lambda$2$Type", 1609);
+ bcb(1610, 1, {}, Aec);
+ _.Kb = function Bec(a) {
+ return BD(vNb(BD(a, 10), (wtc(), ntc)), 403);
+ };
+ mdb(Ane, "SelfLoopRouter/lambda$3$Type", 1610);
+ bcb(1611, 1, qie, Cec);
+ _.td = function Dec(a) {
+ pec(this.a, this.b, BD(a, 403));
+ };
+ mdb(Ane, "SelfLoopRouter/lambda$4$Type", 1611);
+ bcb(1612, 1, ene, Fec);
+ _.pf = function Iec(a, b) {
+ Eec(BD(a, 37), b);
+ };
+ mdb(Ane, "SemiInteractiveCrossMinProcessor", 1612);
+ bcb(1613, 1, Oie, Jec);
+ _.Mb = function Kec(a) {
+ return BD(a, 10).k == (j0b(), h0b);
+ };
+ mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$0$Type", 1613);
+ bcb(1614, 1, Oie, Lec);
+ _.Mb = function Mec(a) {
+ return uNb(BD(a, 10))._b((Nyc(), ayc));
+ };
+ mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$1$Type", 1614);
+ bcb(1615, 1, Dke, Nec);
+ _.ue = function Oec(a, b) {
+ return Gec(BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function Pec(a) {
+ return this === a;
+ };
+ _.ve = function Qec() {
+ return new tpb(this);
+ };
+ mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$2$Type", 1615);
+ bcb(1616, 1, {}, Rec);
+ _.Ce = function Sec(a, b) {
+ return Hec(BD(a, 10), BD(b, 10));
+ };
+ mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$3$Type", 1616);
+ bcb(1618, 1, ene, Uec);
+ _.pf = function Yec(a, b) {
+ Tec(BD(a, 37), b);
+ };
+ mdb(Ane, "SortByInputModelProcessor", 1618);
+ bcb(1619, 1, Oie, Zec);
+ _.Mb = function $ec(a) {
+ return BD(a, 11).g.c.length != 0;
+ };
+ mdb(Ane, "SortByInputModelProcessor/lambda$0$Type", 1619);
+ bcb(1620, 1, qie, _ec);
+ _.td = function afc(a) {
+ Wec(this.a, BD(a, 11));
+ };
+ mdb(Ane, "SortByInputModelProcessor/lambda$1$Type", 1620);
+ bcb(1693, 803, {}, jfc);
+ _.Me = function kfc(a) {
+ var b, c, d, e;
+ this.c = a;
+ switch (this.a.g) {
+ case 2:
+ b = new Rkb();
+ MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new lgc()), new ngc(this, b));
+ nEb(this, new tfc());
+ Hkb(b, new xfc());
+ b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new zfc()), new Bfc(b));
+ nEb(this, new Ffc());
+ Hkb(b, new Jfc());
+ b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ c = Ntb($zb(OAb(new YAb(null, new Kub(this.c.a.b, 16)), new Lfc(this))), new Nfc());
+ MAb(new YAb(null, new Kub(this.c.a.a, 16)), new Rfc(c, b));
+ nEb(this, new Vfc());
+ Hkb(b, new Zfc());
+ b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ break;
+ case 3:
+ d = new Rkb();
+ nEb(this, new lfc());
+ e = Ntb($zb(OAb(new YAb(null, new Kub(this.c.a.b, 16)), new pfc(this))), new Pfc());
+ MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new _fc()), new bgc(e, d));
+ nEb(this, new fgc());
+ Hkb(d, new jgc());
+ d.c = KC(SI, Uhe, 1, 0, 5, 1);
+ break;
+ default:
+ throw vbb(new x2c());
+ }
+ };
+ _.b = 0;
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation", 1693);
+ bcb(1694, 1, Vke, lfc);
+ _.Lb = function mfc(a) {
+ return JD(BD(a, 57).g, 145);
+ };
+ _.Fb = function nfc(a) {
+ return this === a;
+ };
+ _.Mb = function ofc(a) {
+ return JD(BD(a, 57).g, 145);
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$0$Type", 1694);
+ bcb(1695, 1, {}, pfc);
+ _.Fe = function qfc(a) {
+ return dfc(this.a, BD(a, 57));
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$1$Type", 1695);
+ bcb(1703, 1, Pie, rfc);
+ _.Vd = function sfc() {
+ cfc(this.a, this.b, -1);
+ };
+ _.b = 0;
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$10$Type", 1703);
+ bcb(1705, 1, Vke, tfc);
+ _.Lb = function ufc(a) {
+ return JD(BD(a, 57).g, 145);
+ };
+ _.Fb = function vfc(a) {
+ return this === a;
+ };
+ _.Mb = function wfc(a) {
+ return JD(BD(a, 57).g, 145);
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$11$Type", 1705);
+ bcb(1706, 1, qie, xfc);
+ _.td = function yfc(a) {
+ BD(a, 365).Vd();
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$12$Type", 1706);
+ bcb(1707, 1, Oie, zfc);
+ _.Mb = function Afc(a) {
+ return JD(BD(a, 57).g, 10);
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$13$Type", 1707);
+ bcb(1709, 1, qie, Bfc);
+ _.td = function Cfc(a) {
+ efc(this.a, BD(a, 57));
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$14$Type", 1709);
+ bcb(1708, 1, Pie, Dfc);
+ _.Vd = function Efc() {
+ cfc(this.b, this.a, -1);
+ };
+ _.a = 0;
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$15$Type", 1708);
+ bcb(1710, 1, Vke, Ffc);
+ _.Lb = function Gfc(a) {
+ return JD(BD(a, 57).g, 10);
+ };
+ _.Fb = function Hfc(a) {
+ return this === a;
+ };
+ _.Mb = function Ifc(a) {
+ return JD(BD(a, 57).g, 10);
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$16$Type", 1710);
+ bcb(1711, 1, qie, Jfc);
+ _.td = function Kfc(a) {
+ BD(a, 365).Vd();
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$17$Type", 1711);
+ bcb(1712, 1, {}, Lfc);
+ _.Fe = function Mfc(a) {
+ return ffc(this.a, BD(a, 57));
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$18$Type", 1712);
+ bcb(1713, 1, {}, Nfc);
+ _.De = function Ofc() {
+ return 0;
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$19$Type", 1713);
+ bcb(1696, 1, {}, Pfc);
+ _.De = function Qfc() {
+ return 0;
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$2$Type", 1696);
+ bcb(1715, 1, qie, Rfc);
+ _.td = function Sfc(a) {
+ gfc(this.a, this.b, BD(a, 307));
+ };
+ _.a = 0;
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$20$Type", 1715);
+ bcb(1714, 1, Pie, Tfc);
+ _.Vd = function Ufc() {
+ bfc(this.a, this.b, -1);
+ };
+ _.b = 0;
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$21$Type", 1714);
+ bcb(1716, 1, Vke, Vfc);
+ _.Lb = function Wfc(a) {
+ return BD(a, 57), true;
+ };
+ _.Fb = function Xfc(a) {
+ return this === a;
+ };
+ _.Mb = function Yfc(a) {
+ return BD(a, 57), true;
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$22$Type", 1716);
+ bcb(1717, 1, qie, Zfc);
+ _.td = function $fc(a) {
+ BD(a, 365).Vd();
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$23$Type", 1717);
+ bcb(1697, 1, Oie, _fc);
+ _.Mb = function agc(a) {
+ return JD(BD(a, 57).g, 10);
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$3$Type", 1697);
+ bcb(1699, 1, qie, bgc);
+ _.td = function cgc(a) {
+ hfc(this.a, this.b, BD(a, 57));
+ };
+ _.a = 0;
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$4$Type", 1699);
+ bcb(1698, 1, Pie, dgc);
+ _.Vd = function egc() {
+ cfc(this.b, this.a, -1);
+ };
+ _.a = 0;
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$5$Type", 1698);
+ bcb(1700, 1, Vke, fgc);
+ _.Lb = function ggc(a) {
+ return BD(a, 57), true;
+ };
+ _.Fb = function hgc(a) {
+ return this === a;
+ };
+ _.Mb = function igc(a) {
+ return BD(a, 57), true;
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$6$Type", 1700);
+ bcb(1701, 1, qie, jgc);
+ _.td = function kgc(a) {
+ BD(a, 365).Vd();
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$7$Type", 1701);
+ bcb(1702, 1, Oie, lgc);
+ _.Mb = function mgc(a) {
+ return JD(BD(a, 57).g, 145);
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$8$Type", 1702);
+ bcb(1704, 1, qie, ngc);
+ _.td = function ogc(a) {
+ ifc(this.a, this.b, BD(a, 57));
+ };
+ mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$9$Type", 1704);
+ bcb(1521, 1, ene, sgc);
+ _.pf = function xgc(a, b) {
+ rgc(this, BD(a, 37), b);
+ };
+ var pgc;
+ mdb(Jne, "HorizontalGraphCompactor", 1521);
+ bcb(1522, 1, {}, ygc);
+ _.Oe = function zgc(a, b) {
+ var c, d, e;
+ if (vgc(a, b)) {
+ return 0;
+ }
+ c = tgc(a);
+ d = tgc(b);
+ if (!!c && c.k == (j0b(), e0b) || !!d && d.k == (j0b(), e0b)) {
+ return 0;
+ }
+ e = BD(vNb(this.a.a, (wtc(), otc)), 304);
+ return fBc(e, c ? c.k : (j0b(), g0b), d ? d.k : (j0b(), g0b));
+ };
+ _.Pe = function Agc(a, b) {
+ var c, d, e;
+ if (vgc(a, b)) {
+ return 1;
+ }
+ c = tgc(a);
+ d = tgc(b);
+ e = BD(vNb(this.a.a, (wtc(), otc)), 304);
+ return iBc(e, c ? c.k : (j0b(), g0b), d ? d.k : (j0b(), g0b));
+ };
+ mdb(Jne, "HorizontalGraphCompactor/1", 1522);
+ bcb(1523, 1, {}, Bgc);
+ _.Ne = function Cgc(a, b) {
+ return qgc(), a.a.i == 0;
+ };
+ mdb(Jne, "HorizontalGraphCompactor/lambda$0$Type", 1523);
+ bcb(1524, 1, {}, Dgc);
+ _.Ne = function Egc(a, b) {
+ return wgc(this.a, a, b);
+ };
+ mdb(Jne, "HorizontalGraphCompactor/lambda$1$Type", 1524);
+ bcb(1664, 1, {}, Ygc);
+ var Fgc, Ggc;
+ mdb(Jne, "LGraphToCGraphTransformer", 1664);
+ bcb(1672, 1, Oie, ehc);
+ _.Mb = function fhc(a) {
+ return a != null;
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/0methodref$nonNull$Type", 1672);
+ bcb(1665, 1, {}, ghc);
+ _.Kb = function hhc(a) {
+ return Hgc(), fcb(vNb(BD(BD(a, 57).g, 10), (wtc(), $sc)));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$0$Type", 1665);
+ bcb(1666, 1, {}, ihc);
+ _.Kb = function jhc(a) {
+ return Hgc(), gic(BD(BD(a, 57).g, 145));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$1$Type", 1666);
+ bcb(1675, 1, Oie, khc);
+ _.Mb = function lhc(a) {
+ return Hgc(), JD(BD(a, 57).g, 10);
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$10$Type", 1675);
+ bcb(1676, 1, qie, mhc);
+ _.td = function nhc(a) {
+ Zgc(BD(a, 57));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$11$Type", 1676);
+ bcb(1677, 1, Oie, ohc);
+ _.Mb = function phc(a) {
+ return Hgc(), JD(BD(a, 57).g, 145);
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$12$Type", 1677);
+ bcb(1681, 1, qie, qhc);
+ _.td = function rhc(a) {
+ $gc(BD(a, 57));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$13$Type", 1681);
+ bcb(1678, 1, qie, shc);
+ _.td = function thc(a) {
+ _gc(this.a, BD(a, 8));
+ };
+ _.a = 0;
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$14$Type", 1678);
+ bcb(1679, 1, qie, uhc);
+ _.td = function vhc(a) {
+ ahc(this.a, BD(a, 110));
+ };
+ _.a = 0;
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$15$Type", 1679);
+ bcb(1680, 1, qie, whc);
+ _.td = function xhc(a) {
+ bhc(this.a, BD(a, 8));
+ };
+ _.a = 0;
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$16$Type", 1680);
+ bcb(1682, 1, {}, yhc);
+ _.Kb = function zhc(a) {
+ return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$17$Type", 1682);
+ bcb(1683, 1, Oie, Ahc);
+ _.Mb = function Bhc(a) {
+ return Hgc(), OZb(BD(a, 17));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$18$Type", 1683);
+ bcb(1684, 1, qie, Chc);
+ _.td = function Dhc(a) {
+ Qgc(this.a, BD(a, 17));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$19$Type", 1684);
+ bcb(1668, 1, qie, Ehc);
+ _.td = function Fhc(a) {
+ Rgc(this.a, BD(a, 145));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$2$Type", 1668);
+ bcb(1685, 1, {}, Ghc);
+ _.Kb = function Hhc(a) {
+ return Hgc(), new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$20$Type", 1685);
+ bcb(1686, 1, {}, Ihc);
+ _.Kb = function Jhc(a) {
+ return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$21$Type", 1686);
+ bcb(1687, 1, {}, Khc);
+ _.Kb = function Lhc(a) {
+ return Hgc(), BD(vNb(BD(a, 17), (wtc(), rtc)), 15);
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$22$Type", 1687);
+ bcb(1688, 1, Oie, Mhc);
+ _.Mb = function Nhc(a) {
+ return chc(BD(a, 15));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$23$Type", 1688);
+ bcb(1689, 1, qie, Ohc);
+ _.td = function Phc(a) {
+ Jgc(this.a, BD(a, 15));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$24$Type", 1689);
+ bcb(1667, 1, qie, Qhc);
+ _.td = function Rhc(a) {
+ Sgc(this.a, this.b, BD(a, 145));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$3$Type", 1667);
+ bcb(1669, 1, {}, Shc);
+ _.Kb = function Thc(a) {
+ return Hgc(), new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$4$Type", 1669);
+ bcb(1670, 1, {}, Uhc);
+ _.Kb = function Vhc(a) {
+ return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$5$Type", 1670);
+ bcb(1671, 1, {}, Whc);
+ _.Kb = function Xhc(a) {
+ return Hgc(), BD(vNb(BD(a, 17), (wtc(), rtc)), 15);
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$6$Type", 1671);
+ bcb(1673, 1, qie, Yhc);
+ _.td = function Zhc(a) {
+ dhc(this.a, BD(a, 15));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$8$Type", 1673);
+ bcb(1674, 1, qie, $hc);
+ _.td = function _hc(a) {
+ Tgc(this.a, this.b, BD(a, 145));
+ };
+ mdb(Jne, "LGraphToCGraphTransformer/lambda$9$Type", 1674);
+ bcb(1663, 1, {}, dic);
+ _.Le = function eic(a) {
+ var b, c, d, e, f;
+ this.a = a;
+ this.d = new KFb();
+ this.c = KC(jN, Uhe, 121, this.a.a.a.c.length, 0, 1);
+ this.b = 0;
+ for (c = new olb(this.a.a.a); c.a < c.c.c.length; ) {
+ b = BD(mlb(c), 307);
+ b.d = this.b;
+ f = nGb(oGb(new pGb(), b), this.d);
+ this.c[this.b] = f;
+ ++this.b;
+ }
+ cic(this);
+ bic(this);
+ aic(this);
+ uGb(LGb(this.d), new Zdd());
+ for (e = new olb(this.a.a.b); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 57);
+ d.d.c = this.c[d.a.d].e + d.b.a;
+ }
+ };
+ _.b = 0;
+ mdb(Jne, "NetworkSimplexCompaction", 1663);
+ bcb(145, 1, { 35: 1, 145: 1 }, hic);
+ _.wd = function iic(a) {
+ return fic(this, BD(a, 145));
+ };
+ _.Ib = function jic() {
+ return gic(this);
+ };
+ mdb(Jne, "VerticalSegment", 145);
+ bcb(827, 1, {}, sic);
+ _.c = 0;
+ _.e = 0;
+ _.i = 0;
+ mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter", 827);
+ bcb(663, 1, { 663: 1 }, zic);
+ _.Ib = function Aic() {
+ return "AdjacencyList [node=" + this.d + ", adjacencies= " + this.a + "]";
+ };
+ _.b = 0;
+ _.c = 0;
+ _.f = 0;
+ mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList", 663);
+ bcb(287, 1, { 35: 1, 287: 1 }, Dic);
+ _.wd = function Eic(a) {
+ return Bic(this, BD(a, 287));
+ };
+ _.Ib = function Fic() {
+ return "Adjacency [position=" + this.c + ", cardinality=" + this.a + ", currentCardinality=" + this.b + "]";
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency", 287);
+ bcb(1929, 1, {}, Iic);
+ _.b = 0;
+ _.e = false;
+ mdb(Kne, "CrossingMatrixFiller", 1929);
+ var qY = odb(Lne, "IInitializable");
+ bcb(1804, 1, Mne, Oic);
+ _.Nf = function Ric(a, b, c, d, e, f) {
+ };
+ _.Pf = function Tic(a, b, c) {
+ };
+ _.Lf = function Pic() {
+ return this.c != (rGc(), pGc);
+ };
+ _.Mf = function Qic() {
+ this.e = KC(WD, oje, 25, this.d, 15, 1);
+ };
+ _.Of = function Sic(a, b) {
+ b[a][0].c.p = a;
+ };
+ _.Qf = function Uic(a, b, c, d) {
+ ++this.d;
+ };
+ _.Rf = function Vic() {
+ return true;
+ };
+ _.Sf = function Wic(a, b, c, d) {
+ Kic(this, a, b, c);
+ return Jic(this, b);
+ };
+ _.Tf = function Xic(a, b) {
+ var c;
+ c = Lic(b, a.length);
+ Kic(this, a, c, b);
+ return Mic(this, c);
+ };
+ _.d = 0;
+ mdb(Kne, "GreedySwitchHeuristic", 1804);
+ bcb(1930, 1, {}, ejc);
+ _.b = 0;
+ _.d = 0;
+ mdb(Kne, "NorthSouthEdgeNeighbouringNodeCrossingsCounter", 1930);
+ bcb(1917, 1, {}, jjc);
+ _.a = false;
+ mdb(Kne, "SwitchDecider", 1917);
+ bcb(101, 1, { 101: 1 }, pjc);
+ _.a = null;
+ _.c = null;
+ _.i = null;
+ mdb(Nne, "SelfHyperLoop", 101);
+ bcb(1916, 1, {}, vjc);
+ _.c = 0;
+ _.e = 0;
+ mdb(Nne, "SelfHyperLoopLabels", 1916);
+ bcb(411, 22, { 3: 1, 35: 1, 22: 1, 411: 1 }, Bjc);
+ var wjc, xjc, yjc, zjc;
+ var mV = ndb(Nne, "SelfHyperLoopLabels/Alignment", 411, CI, Djc, Cjc);
+ var Ejc;
+ bcb(409, 1, { 409: 1 }, Gjc);
+ mdb(Nne, "SelfLoopEdge", 409);
+ bcb(403, 1, { 403: 1 }, Kjc);
+ _.a = false;
+ mdb(Nne, "SelfLoopHolder", 403);
+ bcb(1724, 1, Oie, Mjc);
+ _.Mb = function Njc(a) {
+ return OZb(BD(a, 17));
+ };
+ mdb(Nne, "SelfLoopHolder/lambda$0$Type", 1724);
+ bcb(113, 1, { 113: 1 }, Pjc);
+ _.a = false;
+ _.c = false;
+ mdb(Nne, "SelfLoopPort", 113);
+ bcb(1792, 1, Oie, Qjc);
+ _.Mb = function Rjc(a) {
+ return OZb(BD(a, 17));
+ };
+ mdb(Nne, "SelfLoopPort/lambda$0$Type", 1792);
+ bcb(363, 22, { 3: 1, 35: 1, 22: 1, 363: 1 }, Yjc);
+ var Sjc, Tjc, Ujc, Vjc, Wjc;
+ var uV = ndb(Nne, "SelfLoopType", 363, CI, _jc, $jc);
+ var akc;
+ bcb(1732, 1, {}, xkc);
+ var ckc, dkc, ekc, fkc;
+ mdb(One, "PortRestorer", 1732);
+ bcb(361, 22, { 3: 1, 35: 1, 22: 1, 361: 1 }, Gkc);
+ var Ckc, Dkc, Ekc;
+ var vV = ndb(One, "PortRestorer/PortSideArea", 361, CI, Ikc, Hkc);
+ var Jkc;
+ bcb(1733, 1, {}, Lkc);
+ _.Kb = function Mkc(a) {
+ return gkc(), BD(a, 15).Oc();
+ };
+ mdb(One, "PortRestorer/lambda$0$Type", 1733);
+ bcb(1734, 1, qie, Nkc);
+ _.td = function Okc(a) {
+ gkc();
+ BD(a, 113).c = false;
+ };
+ mdb(One, "PortRestorer/lambda$1$Type", 1734);
+ bcb(1743, 1, Oie, Pkc);
+ _.Mb = function Qkc(a) {
+ return gkc(), BD(a, 11).j == (Ucd(), Tcd);
+ };
+ mdb(One, "PortRestorer/lambda$10$Type", 1743);
+ bcb(1744, 1, {}, Rkc);
+ _.Kb = function Skc(a) {
+ return gkc(), BD(a, 113).d;
+ };
+ mdb(One, "PortRestorer/lambda$11$Type", 1744);
+ bcb(1745, 1, qie, Tkc);
+ _.td = function Ukc(a) {
+ ykc(this.a, BD(a, 11));
+ };
+ mdb(One, "PortRestorer/lambda$12$Type", 1745);
+ bcb(1735, 1, qie, Vkc);
+ _.td = function Wkc(a) {
+ zkc(this.a, BD(a, 101));
+ };
+ mdb(One, "PortRestorer/lambda$2$Type", 1735);
+ bcb(1736, 1, Dke, Xkc);
+ _.ue = function Ykc(a, b) {
+ return Akc(BD(a, 113), BD(b, 113));
+ };
+ _.Fb = function Zkc(a) {
+ return this === a;
+ };
+ _.ve = function $kc() {
+ return new tpb(this);
+ };
+ mdb(One, "PortRestorer/lambda$3$Type", 1736);
+ bcb(1737, 1, Oie, _kc);
+ _.Mb = function alc(a) {
+ return gkc(), BD(a, 113).c;
+ };
+ mdb(One, "PortRestorer/lambda$4$Type", 1737);
+ bcb(1738, 1, Oie, blc);
+ _.Mb = function clc(a) {
+ return nkc(BD(a, 11));
+ };
+ mdb(One, "PortRestorer/lambda$5$Type", 1738);
+ bcb(1739, 1, Oie, dlc);
+ _.Mb = function elc(a) {
+ return gkc(), BD(a, 11).j == (Ucd(), Acd);
+ };
+ mdb(One, "PortRestorer/lambda$6$Type", 1739);
+ bcb(1740, 1, Oie, flc);
+ _.Mb = function glc(a) {
+ return gkc(), BD(a, 11).j == (Ucd(), zcd);
+ };
+ mdb(One, "PortRestorer/lambda$7$Type", 1740);
+ bcb(1741, 1, Oie, hlc);
+ _.Mb = function ilc(a) {
+ return okc(BD(a, 11));
+ };
+ mdb(One, "PortRestorer/lambda$8$Type", 1741);
+ bcb(1742, 1, Oie, jlc);
+ _.Mb = function klc(a) {
+ return gkc(), BD(a, 11).j == (Ucd(), Rcd);
+ };
+ mdb(One, "PortRestorer/lambda$9$Type", 1742);
+ bcb(270, 22, { 3: 1, 35: 1, 22: 1, 270: 1 }, Blc);
+ var slc, tlc, ulc, vlc, wlc, xlc, ylc, zlc;
+ var KV = ndb(One, "PortSideAssigner/Target", 270, CI, Dlc, Clc);
+ var Elc;
+ bcb(1725, 1, {}, Glc);
+ _.Kb = function Hlc(a) {
+ return JAb(new YAb(null, new Kub(BD(a, 101).j, 16)), new Ylc());
+ };
+ mdb(One, "PortSideAssigner/lambda$1$Type", 1725);
+ bcb(1726, 1, {}, Ilc);
+ _.Kb = function Jlc(a) {
+ return BD(a, 113).d;
+ };
+ mdb(One, "PortSideAssigner/lambda$2$Type", 1726);
+ bcb(1727, 1, qie, Klc);
+ _.td = function Llc(a) {
+ G0b(BD(a, 11), (Ucd(), Acd));
+ };
+ mdb(One, "PortSideAssigner/lambda$3$Type", 1727);
+ bcb(1728, 1, {}, Mlc);
+ _.Kb = function Nlc(a) {
+ return BD(a, 113).d;
+ };
+ mdb(One, "PortSideAssigner/lambda$4$Type", 1728);
+ bcb(1729, 1, qie, Olc);
+ _.td = function Plc(a) {
+ plc(this.a, BD(a, 11));
+ };
+ mdb(One, "PortSideAssigner/lambda$5$Type", 1729);
+ bcb(1730, 1, Dke, Qlc);
+ _.ue = function Rlc(a, b) {
+ return qlc(BD(a, 101), BD(b, 101));
+ };
+ _.Fb = function Slc(a) {
+ return this === a;
+ };
+ _.ve = function Tlc() {
+ return new tpb(this);
+ };
+ mdb(One, "PortSideAssigner/lambda$6$Type", 1730);
+ bcb(1731, 1, Dke, Ulc);
+ _.ue = function Vlc(a, b) {
+ return rlc(BD(a, 113), BD(b, 113));
+ };
+ _.Fb = function Wlc(a) {
+ return this === a;
+ };
+ _.ve = function Xlc() {
+ return new tpb(this);
+ };
+ mdb(One, "PortSideAssigner/lambda$7$Type", 1731);
+ bcb(805, 1, Oie, Ylc);
+ _.Mb = function Zlc(a) {
+ return BD(a, 113).c;
+ };
+ mdb(One, "PortSideAssigner/lambda$8$Type", 805);
+ bcb(2009, 1, {});
+ mdb(Pne, "AbstractSelfLoopRouter", 2009);
+ bcb(1750, 1, Dke, gmc);
+ _.ue = function hmc(a, b) {
+ return emc(BD(a, 101), BD(b, 101));
+ };
+ _.Fb = function imc(a) {
+ return this === a;
+ };
+ _.ve = function jmc() {
+ return new tpb(this);
+ };
+ mdb(Pne, rle, 1750);
+ bcb(1751, 1, Dke, kmc);
+ _.ue = function lmc(a, b) {
+ return fmc(BD(a, 101), BD(b, 101));
+ };
+ _.Fb = function mmc(a) {
+ return this === a;
+ };
+ _.ve = function nmc() {
+ return new tpb(this);
+ };
+ mdb(Pne, sle, 1751);
+ bcb(1793, 2009, {}, zmc);
+ _.Uf = function Amc(a, b, c) {
+ return c;
+ };
+ mdb(Pne, "OrthogonalSelfLoopRouter", 1793);
+ bcb(1795, 1, qie, Bmc);
+ _.td = function Cmc(a) {
+ ymc(this.b, this.a, BD(a, 8));
+ };
+ mdb(Pne, "OrthogonalSelfLoopRouter/lambda$0$Type", 1795);
+ bcb(1794, 1793, {}, Fmc);
+ _.Uf = function Gmc(a, b, c) {
+ var d, e;
+ d = a.c.d;
+ St(c, 0, P6c(R6c(d.n), d.a));
+ e = a.d.d;
+ Dsb(c, P6c(R6c(e.n), e.a));
+ return Dmc(c);
+ };
+ mdb(Pne, "PolylineSelfLoopRouter", 1794);
+ bcb(1746, 1, {}, Umc);
+ _.a = null;
+ var Hmc;
+ mdb(Pne, "RoutingDirector", 1746);
+ bcb(1747, 1, Dke, Wmc);
+ _.ue = function Xmc(a, b) {
+ return Vmc(BD(a, 113), BD(b, 113));
+ };
+ _.Fb = function Ymc(a) {
+ return this === a;
+ };
+ _.ve = function Zmc() {
+ return new tpb(this);
+ };
+ mdb(Pne, "RoutingDirector/lambda$0$Type", 1747);
+ bcb(1748, 1, {}, $mc);
+ _.Kb = function _mc(a) {
+ return Imc(), BD(a, 101).j;
+ };
+ mdb(Pne, "RoutingDirector/lambda$1$Type", 1748);
+ bcb(1749, 1, qie, anc);
+ _.td = function bnc(a) {
+ Imc();
+ BD(a, 15).ad(Hmc);
+ };
+ mdb(Pne, "RoutingDirector/lambda$2$Type", 1749);
+ bcb(1752, 1, {}, mnc);
+ mdb(Pne, "RoutingSlotAssigner", 1752);
+ bcb(1753, 1, Oie, pnc);
+ _.Mb = function qnc(a) {
+ return nnc(this.a, BD(a, 101));
+ };
+ mdb(Pne, "RoutingSlotAssigner/lambda$0$Type", 1753);
+ bcb(1754, 1, Dke, rnc);
+ _.ue = function snc(a, b) {
+ return onc(this.a, BD(a, 101), BD(b, 101));
+ };
+ _.Fb = function tnc(a) {
+ return this === a;
+ };
+ _.ve = function unc() {
+ return new tpb(this);
+ };
+ mdb(Pne, "RoutingSlotAssigner/lambda$1$Type", 1754);
+ bcb(1796, 1793, {}, wnc);
+ _.Uf = function xnc(a, b, c) {
+ var d, e, f, g;
+ d = Edb(ED(c_b(a.b.g.b, (Nyc(), nyc))));
+ g = new u7c(OC(GC(m1, 1), nie, 8, 0, [(f = a.c.d, P6c(new g7c(f.n), f.a))]));
+ vnc(a, b, c, g, d);
+ Dsb(g, (e = a.d.d, P6c(new g7c(e.n), e.a)));
+ return UPc(new YPc(g));
+ };
+ mdb(Pne, "SplineSelfLoopRouter", 1796);
+ bcb(578, 1, Dke, Bnc, Dnc);
+ _.ue = function Enc(a, b) {
+ return ync(this, BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function Fnc(a) {
+ return this === a;
+ };
+ _.ve = function Gnc() {
+ return new tpb(this);
+ };
+ mdb(Qne, "ModelOrderNodeComparator", 578);
+ bcb(1755, 1, Oie, Hnc);
+ _.Mb = function Inc(a) {
+ return BD(a, 11).e.c.length != 0;
+ };
+ mdb(Qne, "ModelOrderNodeComparator/lambda$0$Type", 1755);
+ bcb(1756, 1, {}, Jnc);
+ _.Kb = function Knc(a) {
+ return BD(Ikb(BD(a, 11).e, 0), 17).c;
+ };
+ mdb(Qne, "ModelOrderNodeComparator/lambda$1$Type", 1756);
+ bcb(1757, 1, Oie, Lnc);
+ _.Mb = function Mnc(a) {
+ return BD(a, 11).e.c.length != 0;
+ };
+ mdb(Qne, "ModelOrderNodeComparator/lambda$2$Type", 1757);
+ bcb(1758, 1, {}, Nnc);
+ _.Kb = function Onc(a) {
+ return BD(Ikb(BD(a, 11).e, 0), 17).c;
+ };
+ mdb(Qne, "ModelOrderNodeComparator/lambda$3$Type", 1758);
+ bcb(1759, 1, Oie, Pnc);
+ _.Mb = function Qnc(a) {
+ return BD(a, 11).e.c.length != 0;
+ };
+ mdb(Qne, "ModelOrderNodeComparator/lambda$4$Type", 1759);
+ bcb(806, 1, Dke, Tnc, Unc);
+ _.ue = function Vnc(a, b) {
+ return Rnc(this, a, b);
+ };
+ _.Fb = function Wnc(a) {
+ return this === a;
+ };
+ _.ve = function Xnc() {
+ return new tpb(this);
+ };
+ mdb(Qne, "ModelOrderPortComparator", 806);
+ bcb(801, 1, {}, Ync);
+ _.Vf = function $nc(a, b) {
+ var c, d, e, f;
+ e = Znc(b);
+ c = new Rkb();
+ f = b.f / e;
+ for (d = 1; d < e; ++d) {
+ Ekb(c, meb(Tbb(Cbb($wnd.Math.round(d * f)))));
+ }
+ return c;
+ };
+ _.Wf = function _nc() {
+ return false;
+ };
+ mdb(Rne, "ARDCutIndexHeuristic", 801);
+ bcb(1479, 1, ene, eoc);
+ _.pf = function foc(a, b) {
+ doc(BD(a, 37), b);
+ };
+ mdb(Rne, "BreakingPointInserter", 1479);
+ bcb(305, 1, { 305: 1 }, goc);
+ _.Ib = function joc() {
+ var a;
+ a = new Ufb();
+ a.a += "BPInfo[";
+ a.a += "\n start=";
+ Pfb(a, this.i);
+ a.a += "\n end=";
+ Pfb(a, this.a);
+ a.a += "\n nodeStartEdge=";
+ Pfb(a, this.e);
+ a.a += "\n startEndEdge=";
+ Pfb(a, this.j);
+ a.a += "\n originalEdge=";
+ Pfb(a, this.f);
+ a.a += "\n startInLayerDummy=";
+ Pfb(a, this.k);
+ a.a += "\n startInLayerEdge=";
+ Pfb(a, this.n);
+ a.a += "\n endInLayerDummy=";
+ Pfb(a, this.b);
+ a.a += "\n endInLayerEdge=";
+ Pfb(a, this.c);
+ return a.a;
+ };
+ mdb(Rne, "BreakingPointInserter/BPInfo", 305);
+ bcb(652, 1, { 652: 1 }, qoc);
+ _.a = false;
+ _.b = 0;
+ _.c = 0;
+ mdb(Rne, "BreakingPointInserter/Cut", 652);
+ bcb(1480, 1, ene, Aoc);
+ _.pf = function Boc(a, b) {
+ yoc(BD(a, 37), b);
+ };
+ mdb(Rne, "BreakingPointProcessor", 1480);
+ bcb(1481, 1, Oie, Coc);
+ _.Mb = function Doc(a) {
+ return hoc(BD(a, 10));
+ };
+ mdb(Rne, "BreakingPointProcessor/0methodref$isEnd$Type", 1481);
+ bcb(1482, 1, Oie, Eoc);
+ _.Mb = function Foc(a) {
+ return ioc(BD(a, 10));
+ };
+ mdb(Rne, "BreakingPointProcessor/1methodref$isStart$Type", 1482);
+ bcb(1483, 1, ene, Joc);
+ _.pf = function Koc(a, b) {
+ Hoc(this, BD(a, 37), b);
+ };
+ mdb(Rne, "BreakingPointRemover", 1483);
+ bcb(1484, 1, qie, Loc);
+ _.td = function Moc(a) {
+ BD(a, 128).k = true;
+ };
+ mdb(Rne, "BreakingPointRemover/lambda$0$Type", 1484);
+ bcb(797, 1, {}, Xoc);
+ _.b = 0;
+ _.e = 0;
+ _.f = 0;
+ _.j = 0;
+ mdb(Rne, "GraphStats", 797);
+ bcb(798, 1, {}, Zoc);
+ _.Ce = function $oc(a, b) {
+ return $wnd.Math.max(Edb(ED(a)), Edb(ED(b)));
+ };
+ mdb(Rne, "GraphStats/0methodref$max$Type", 798);
+ bcb(799, 1, {}, _oc);
+ _.Ce = function apc(a, b) {
+ return $wnd.Math.max(Edb(ED(a)), Edb(ED(b)));
+ };
+ mdb(Rne, "GraphStats/2methodref$max$Type", 799);
+ bcb(1660, 1, {}, bpc);
+ _.Ce = function cpc(a, b) {
+ return Yoc(ED(a), ED(b));
+ };
+ mdb(Rne, "GraphStats/lambda$1$Type", 1660);
+ bcb(1661, 1, {}, dpc);
+ _.Kb = function epc(a) {
+ return Roc(this.a, BD(a, 29));
+ };
+ mdb(Rne, "GraphStats/lambda$2$Type", 1661);
+ bcb(1662, 1, {}, fpc);
+ _.Kb = function gpc(a) {
+ return Qoc(this.a, BD(a, 29));
+ };
+ mdb(Rne, "GraphStats/lambda$6$Type", 1662);
+ bcb(800, 1, {}, hpc);
+ _.Vf = function ipc(a, b) {
+ var c;
+ c = BD(vNb(a, (Nyc(), Eyc)), 15);
+ return c ? c : (mmb(), mmb(), jmb);
+ };
+ _.Wf = function jpc() {
+ return false;
+ };
+ mdb(Rne, "ICutIndexCalculator/ManualCutIndexCalculator", 800);
+ bcb(802, 1, {}, kpc);
+ _.Vf = function lpc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u;
+ u = (b.n == null && Uoc(b), b.n);
+ i = (b.d == null && Uoc(b), b.d);
+ t = KC(UD, Vje, 25, u.length, 15, 1);
+ t[0] = u[0];
+ r = u[0];
+ for (j = 1; j < u.length; j++) {
+ t[j] = t[j - 1] + u[j];
+ r += u[j];
+ }
+ e = Znc(b) - 1;
+ g = BD(vNb(a, (Nyc(), Fyc)), 19).a;
+ d = Qje;
+ c = new Rkb();
+ for (m = $wnd.Math.max(0, e - g); m <= $wnd.Math.min(b.f - 1, e + g); m++) {
+ p = r / (m + 1);
+ q = 0;
+ k = 1;
+ f = new Rkb();
+ s = Qje;
+ l = 0;
+ h = 0;
+ o2 = i[0];
+ if (m == 0) {
+ s = r;
+ h = (b.g == null && (b.g = Poc(b, new _oc())), Edb(b.g));
+ } else {
+ while (k < b.f) {
+ if (t[k - 1] - q >= p) {
+ Ekb(f, meb(k));
+ s = $wnd.Math.max(s, t[k - 1] - l);
+ h += o2;
+ q += t[k - 1] - q;
+ l = t[k - 1];
+ o2 = i[k];
+ }
+ o2 = $wnd.Math.max(o2, i[k]);
+ ++k;
+ }
+ h += o2;
+ }
+ n = $wnd.Math.min(1 / s, 1 / b.b / h);
+ if (n > d) {
+ d = n;
+ c = f;
+ }
+ }
+ return c;
+ };
+ _.Wf = function mpc() {
+ return false;
+ };
+ mdb(Rne, "MSDCutIndexHeuristic", 802);
+ bcb(1617, 1, ene, ppc);
+ _.pf = function qpc(a, b) {
+ opc(BD(a, 37), b);
+ };
+ mdb(Rne, "SingleEdgeGraphWrapper", 1617);
+ bcb(227, 22, { 3: 1, 35: 1, 22: 1, 227: 1 }, Bpc);
+ var upc, vpc, wpc, xpc, ypc, zpc;
+ var EW = ndb(Sne, "CenterEdgeLabelPlacementStrategy", 227, CI, Dpc, Cpc);
+ var Epc;
+ bcb(422, 22, { 3: 1, 35: 1, 22: 1, 422: 1 }, Jpc);
+ var Gpc, Hpc;
+ var FW = ndb(Sne, "ConstraintCalculationStrategy", 422, CI, Lpc, Kpc);
+ var Mpc;
+ bcb(314, 22, { 3: 1, 35: 1, 22: 1, 314: 1, 246: 1, 234: 1 }, Tpc);
+ _.Kf = function Vpc() {
+ return Spc(this);
+ };
+ _.Xf = function Upc() {
+ return Spc(this);
+ };
+ var Opc, Ppc, Qpc;
+ var GW = ndb(Sne, "CrossingMinimizationStrategy", 314, CI, Xpc, Wpc);
+ var Ypc;
+ bcb(337, 22, { 3: 1, 35: 1, 22: 1, 337: 1 }, cqc);
+ var $pc, _pc, aqc;
+ var HW = ndb(Sne, "CuttingStrategy", 337, CI, eqc, dqc);
+ var fqc;
+ bcb(335, 22, { 3: 1, 35: 1, 22: 1, 335: 1, 246: 1, 234: 1 }, oqc);
+ _.Kf = function qqc() {
+ return nqc(this);
+ };
+ _.Xf = function pqc() {
+ return nqc(this);
+ };
+ var hqc, iqc, jqc, kqc, lqc;
+ var IW = ndb(Sne, "CycleBreakingStrategy", 335, CI, sqc, rqc);
+ var tqc;
+ bcb(419, 22, { 3: 1, 35: 1, 22: 1, 419: 1 }, yqc);
+ var vqc, wqc;
+ var JW = ndb(Sne, "DirectionCongruency", 419, CI, Aqc, zqc);
+ var Bqc;
+ bcb(450, 22, { 3: 1, 35: 1, 22: 1, 450: 1 }, Hqc);
+ var Dqc, Eqc, Fqc;
+ var KW = ndb(Sne, "EdgeConstraint", 450, CI, Jqc, Iqc);
+ var Kqc;
+ bcb(276, 22, { 3: 1, 35: 1, 22: 1, 276: 1 }, Uqc);
+ var Mqc, Nqc, Oqc, Pqc, Qqc, Rqc;
+ var LW = ndb(Sne, "EdgeLabelSideSelection", 276, CI, Wqc, Vqc);
+ var Xqc;
+ bcb(479, 22, { 3: 1, 35: 1, 22: 1, 479: 1 }, arc);
+ var Zqc, $qc;
+ var MW = ndb(Sne, "EdgeStraighteningStrategy", 479, CI, crc, brc);
+ var drc;
+ bcb(274, 22, { 3: 1, 35: 1, 22: 1, 274: 1 }, mrc);
+ var frc, grc, hrc, irc, jrc, krc;
+ var NW = ndb(Sne, "FixedAlignment", 274, CI, orc, nrc);
+ var prc;
+ bcb(275, 22, { 3: 1, 35: 1, 22: 1, 275: 1 }, zrc);
+ var rrc, trc, urc, vrc, wrc, xrc;
+ var OW = ndb(Sne, "GraphCompactionStrategy", 275, CI, Brc, Arc);
+ var Crc;
+ bcb(256, 22, { 3: 1, 35: 1, 22: 1, 256: 1 }, Prc);
+ var Erc, Frc, Grc, Hrc, Irc, Jrc, Krc, Lrc, Mrc, Nrc;
+ var PW = ndb(Sne, "GraphProperties", 256, CI, Rrc, Qrc);
+ var Src;
+ bcb(292, 22, { 3: 1, 35: 1, 22: 1, 292: 1 }, Yrc);
+ var Urc, Vrc, Wrc;
+ var QW = ndb(Sne, "GreedySwitchType", 292, CI, $rc, Zrc);
+ var _rc;
+ bcb(303, 22, { 3: 1, 35: 1, 22: 1, 303: 1 }, fsc);
+ var bsc, csc, dsc;
+ var RW = ndb(Sne, "InLayerConstraint", 303, CI, hsc, gsc);
+ var isc;
+ bcb(420, 22, { 3: 1, 35: 1, 22: 1, 420: 1 }, nsc);
+ var ksc, lsc;
+ var SW = ndb(Sne, "InteractiveReferencePoint", 420, CI, psc, osc);
+ var qsc;
+ var ssc, tsc, usc, vsc, wsc, xsc, ysc, zsc, Asc, Bsc, Csc, Dsc, Esc, Fsc, Gsc, Hsc, Isc, Jsc, Ksc, Lsc, Msc, Nsc, Osc, Psc, Qsc, Rsc, Ssc, Tsc, Usc, Vsc, Wsc, Xsc, Ysc, Zsc, $sc, _sc, atc, btc, ctc, dtc, etc, ftc, gtc, htc, itc, jtc, ktc, ltc, mtc, ntc, otc, ptc, qtc, rtc, stc, ttc, utc, vtc;
+ bcb(163, 22, { 3: 1, 35: 1, 22: 1, 163: 1 }, Dtc);
+ var xtc, ytc, ztc, Atc, Btc;
+ var TW = ndb(Sne, "LayerConstraint", 163, CI, Ftc, Etc);
+ var Gtc;
+ bcb(848, 1, ale, kwc);
+ _.Qe = function lwc(a) {
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yne), ""), "Direction Congruency"), "Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."), puc), (_5c(), V5c)), JW), pqb((N5c(), L5c)))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zne), ""), "Feedback Edges"), "Whether feedback edges should be highlighted by routing around the nodes."), (Bcb(), false)), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $ne), ""), "Interactive Reference Point"), "Determines which point of a node is considered by interactive layout phases."), Muc), V5c), SW), pqb(L5c))));
+ o4c(a, $ne, goe, Ouc);
+ o4c(a, $ne, qoe, Nuc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _ne), ""), "Merge Edges"), "Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), aoe), ""), "Merge Hierarchy-Crossing Edges"), "If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."), true), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), boe), ""), "Allow Non-Flow Ports To Switch Sides"), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), false), T5c), wI), pqb(M5c)), OC(GC(ZI, 1), nie, 2, 6, ["org.eclipse.elk.layered.northOrSouthPort"]))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), coe), ""), "Port Sorting Strategy"), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), xvc), V5c), cX), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), doe), ""), "Thoroughness"), "How much effort should be spent to produce a nice layout."), meb(7)), X5c), JI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), eoe), ""), "Add Unnecessary Bendpoints"), "Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), foe), ""), "Generate Position and Layer IDs"), "If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), goe), "cycleBreaking"), "Cycle Breaking Strategy"), "Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."), nuc), V5c), IW), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), hoe), ppe), "Node Layering Strategy"), "Strategy for node layering."), bvc), V5c), YW), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ioe), ppe), "Layer Constraint"), "Determines a constraint on the placement of the node regarding the layering."), Tuc), V5c), TW), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), joe), ppe), "Layer Choice Constraint"), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), meb(-1)), X5c), JI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), koe), ppe), "Layer ID"), "Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), meb(-1)), X5c), JI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), loe), qpe), "Upper Bound On Width [MinWidth Layerer]"), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), meb(4)), X5c), JI), pqb(L5c))));
+ o4c(a, loe, hoe, Wuc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), moe), qpe), "Upper Layer Estimation Scaling Factor [MinWidth Layerer]"), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), meb(2)), X5c), JI), pqb(L5c))));
+ o4c(a, moe, hoe, Yuc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), noe), rpe), "Node Promotion Strategy"), "Reduces number of dummy nodes after layering phase (if possible)."), _uc), V5c), aX), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ooe), rpe), "Max Node Promotion Iterations"), "Limits the number of iterations for node promotion."), meb(0)), X5c), JI), pqb(L5c))));
+ o4c(a, ooe, noe, null);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), poe), "layering.coffmanGraham"), "Layer Bound"), "The maximum number of nodes allowed per layer."), meb(Ohe)), X5c), JI), pqb(L5c))));
+ o4c(a, poe, hoe, Quc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qoe), spe), "Crossing Minimization Strategy"), "Strategy for crossing minimization."), luc), V5c), GW), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), roe), spe), "Force Node Model Order"), "The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), soe), spe), "Hierarchical Sweepiness"), "How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."), 0.1), U5c), BI), pqb(L5c))));
+ o4c(a, soe, tpe, fuc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), toe), spe), "Semi-Interactive Crossing Minimization"), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), false), T5c), wI), pqb(L5c))));
+ o4c(a, toe, qoe, juc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), uoe), spe), "Position Choice Constraint"), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), meb(-1)), X5c), JI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), voe), spe), "Position ID"), "Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), meb(-1)), X5c), JI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), woe), upe), "Greedy Switch Activation Threshold"), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), meb(40)), X5c), JI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xoe), upe), "Greedy Switch Crossing Minimization"), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), cuc), V5c), QW), pqb(L5c))));
+ o4c(a, xoe, qoe, duc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), yoe), "crossingMinimization.greedySwitchHierarchical"), "Greedy Switch Crossing Minimization (hierarchical)"), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), $tc), V5c), QW), pqb(L5c))));
+ o4c(a, yoe, qoe, _tc);
+ o4c(a, yoe, tpe, auc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), zoe), vpe), "Node Placement Strategy"), "Strategy for node placement."), vvc), V5c), _W), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Aoe), vpe), "Favor Straight Edges Over Balancing"), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), T5c), wI), pqb(L5c))));
+ o4c(a, Aoe, zoe, lvc);
+ o4c(a, Aoe, zoe, mvc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Boe), wpe), "BK Edge Straightening"), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), fvc), V5c), MW), pqb(L5c))));
+ o4c(a, Boe, zoe, gvc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Coe), wpe), "BK Fixed Alignment"), "Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."), ivc), V5c), NW), pqb(L5c))));
+ o4c(a, Coe, zoe, jvc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Doe), "nodePlacement.linearSegments"), "Linear Segments Deflection Dampening"), "Dampens the movement of nodes to keep the diagram from getting too large."), 0.3), U5c), BI), pqb(L5c))));
+ o4c(a, Doe, zoe, ovc);
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Eoe), "nodePlacement.networkSimplex"), "Node Flexibility"), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), V5c), $W), pqb(K5c))));
+ o4c(a, Eoe, zoe, tvc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Foe), "nodePlacement.networkSimplex.nodeFlexibility"), "Node Flexibility Default"), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), rvc), V5c), $W), pqb(L5c))));
+ o4c(a, Foe, zoe, svc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Goe), xpe), "Self-Loop Distribution"), "Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."), xuc), V5c), eX), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hoe), xpe), "Self-Loop Ordering"), "Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."), zuc), V5c), fX), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ioe), "edgeRouting.splines"), "Spline Routing Mode"), "Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."), Buc), V5c), hX), pqb(L5c))));
+ o4c(a, Ioe, ype, Cuc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Joe), "edgeRouting.splines.sloppy"), "Sloppy Spline Layer Spacing Factor"), "Spacing factor for routing area between layers when using sloppy spline routing."), 0.2), U5c), BI), pqb(L5c))));
+ o4c(a, Joe, ype, Euc);
+ o4c(a, Joe, Ioe, Fuc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Koe), "edgeRouting.polyline"), "Sloped Edge Zone Width"), "Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."), 2), U5c), BI), pqb(L5c))));
+ o4c(a, Koe, ype, vuc);
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Loe), zpe), "Spacing Base Value"), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Moe), zpe), "Edge Node Between Layers Spacing"), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Noe), zpe), "Edge Edge Between Layer Spacing"), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ooe), zpe), "Node Node Between Layers Spacing"), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Poe), Ape), "Direction Priority"), "Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."), meb(0)), X5c), JI), pqb(I5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qoe), Ape), "Shortness Priority"), "Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."), meb(0)), X5c), JI), pqb(I5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Roe), Ape), "Straightness Priority"), "Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."), meb(0)), X5c), JI), pqb(I5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Soe), Bpe), Ole), "Tries to further compact components (disconnected sub-graphs)."), false), T5c), wI), pqb(L5c))));
+ o4c(a, Soe, zme, true);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Toe), Cpe), "Post Compaction Strategy"), Dpe), Ntc), V5c), OW), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Uoe), Cpe), "Post Compaction Constraint Calculation"), Dpe), Ltc), V5c), FW), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Voe), Epe), "High Degree Node Treatment"), "Makes room around high degree nodes to place leafs and trees."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Woe), Epe), "High Degree Node Threshold"), "Whether a node is considered to have a high degree."), meb(16)), X5c), JI), pqb(L5c))));
+ o4c(a, Woe, Voe, true);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xoe), Epe), "High Degree Node Maximum Tree Height"), "Maximum height of a subtree connected to a high degree node to be moved to separate layers."), meb(5)), X5c), JI), pqb(L5c))));
+ o4c(a, Xoe, Voe, true);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yoe), Fpe), "Graph Wrapping Strategy"), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), bwc), V5c), jX), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zoe), Fpe), "Additional Wrapped Edges Spacing"), "To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."), 10), U5c), BI), pqb(L5c))));
+ o4c(a, Zoe, Yoe, Ivc);
+ o4c(a, Zoe, Yoe, Jvc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $oe), Fpe), "Correction Factor for Wrapping"), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), U5c), BI), pqb(L5c))));
+ o4c(a, $oe, Yoe, Lvc);
+ o4c(a, $oe, Yoe, Mvc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _oe), Gpe), "Cutting Strategy"), "The strategy by which the layer indexes are determined at which the layering crumbles into chunks."), Tvc), V5c), HW), pqb(L5c))));
+ o4c(a, _oe, Yoe, Uvc);
+ o4c(a, _oe, Yoe, Vvc);
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), ape), Gpe), "Manually Specified Cuts"), "Allows the user to specify her own cuts for a certain graph."), Y5c), yK), pqb(L5c))));
+ o4c(a, ape, _oe, Ovc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), bpe), "wrapping.cutting.msd"), "MSD Freedom"), "The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."), Qvc), X5c), JI), pqb(L5c))));
+ o4c(a, bpe, _oe, Rvc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), cpe), Hpe), "Validification Strategy"), "When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."), gwc), V5c), iX), pqb(L5c))));
+ o4c(a, cpe, Yoe, hwc);
+ o4c(a, cpe, Yoe, iwc);
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), dpe), Hpe), "Valid Indices for Wrapping"), null), Y5c), yK), pqb(L5c))));
+ o4c(a, dpe, Yoe, dwc);
+ o4c(a, dpe, Yoe, ewc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), epe), Ipe), "Improve Cuts"), "For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."), true), T5c), wI), pqb(L5c))));
+ o4c(a, epe, Yoe, Zvc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), fpe), Ipe), "Distance Penalty When Improving Cuts"), null), 2), U5c), BI), pqb(L5c))));
+ o4c(a, fpe, Yoe, Xvc);
+ o4c(a, fpe, epe, true);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), gpe), Ipe), "Improve Wrapped Edges"), "The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."), true), T5c), wI), pqb(L5c))));
+ o4c(a, gpe, Yoe, _vc);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), hpe), Jpe), "Edge Label Side Selection"), "Method to decide on edge label sides."), tuc), V5c), LW), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ipe), Jpe), "Edge Center Label Placement Strategy"), "Determines in which layer center labels of long edges should be placed."), ruc), V5c), EW), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [J5c])))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), jpe), Kpe), "Consider Model Order"), "Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."), Wtc), V5c), bX), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), kpe), Kpe), "No Model Order"), "Set on a node to not set a model order for this node even though it is a real node."), false), T5c), wI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lpe), Kpe), "Consider Model Order for Components"), "If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."), Ptc), V5c), hQ), pqb(L5c))));
+ o4c(a, lpe, zme, null);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mpe), Kpe), "Long Edge Ordering Strategy"), "Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."), Ttc), V5c), ZW), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), npe), Kpe), "Crossing Counter Node Order Influence"), "Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."), 0), U5c), BI), pqb(L5c))));
+ o4c(a, npe, jpe, null);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ope), Kpe), "Crossing Counter Port Order Influence"), "Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."), 0), U5c), BI), pqb(L5c))));
+ o4c(a, ope, jpe, null);
+ Oyc((new Pyc(), a));
+ };
+ var Itc, Jtc, Ktc, Ltc, Mtc, Ntc, Otc, Ptc, Qtc, Rtc, Stc, Ttc, Utc, Vtc, Wtc, Xtc, Ytc, Ztc, $tc, _tc, auc, buc, cuc, duc, euc, fuc, guc, huc, iuc, juc, kuc, luc, muc, nuc, ouc, puc, quc, ruc, suc, tuc, uuc, vuc, wuc, xuc, yuc, zuc, Auc, Buc, Cuc, Duc, Euc, Fuc, Guc, Huc, Iuc, Juc, Kuc, Luc, Muc, Nuc, Ouc, Puc, Quc, Ruc, Suc, Tuc, Uuc, Vuc, Wuc, Xuc, Yuc, Zuc, $uc, _uc, avc, bvc, cvc, dvc, evc, fvc, gvc, hvc, ivc, jvc, kvc, lvc, mvc, nvc, ovc, pvc, qvc, rvc, svc, tvc, uvc, vvc, wvc, xvc, yvc, zvc, Avc, Bvc, Cvc, Dvc, Evc, Fvc, Gvc, Hvc, Ivc, Jvc, Kvc, Lvc, Mvc, Nvc, Ovc, Pvc, Qvc, Rvc, Svc, Tvc, Uvc, Vvc, Wvc, Xvc, Yvc, Zvc, $vc, _vc, awc, bwc, cwc, dwc, ewc, fwc, gwc, hwc, iwc;
+ mdb(Sne, "LayeredMetaDataProvider", 848);
+ bcb(986, 1, ale, Pyc);
+ _.Qe = function Qyc(a) {
+ Oyc(a);
+ };
+ var mwc, nwc, owc, pwc, qwc, rwc, swc, twc, uwc, vwc, wwc, xwc, ywc, zwc, Awc, Bwc, Cwc, Dwc, Ewc, Fwc, Gwc, Hwc, Iwc, Jwc, Kwc, Lwc, Mwc, Nwc, Owc, Pwc, Qwc, Rwc, Swc, Twc, Uwc, Vwc, Wwc, Xwc, Ywc, Zwc, $wc, _wc, axc, bxc, cxc, dxc, exc, fxc, gxc, hxc, ixc, jxc, kxc, lxc, mxc, nxc, oxc, pxc, qxc, rxc, sxc, txc, uxc, vxc, wxc, xxc, yxc, zxc, Axc, Bxc, Cxc, Dxc, Exc, Fxc, Gxc, Hxc, Ixc, Jxc, Kxc, Lxc, Mxc, Nxc, Oxc, Pxc, Qxc, Rxc, Sxc, Txc, Uxc, Vxc, Wxc, Xxc, Yxc, Zxc, $xc, _xc, ayc, byc, cyc, dyc, eyc, fyc, gyc, hyc, iyc, jyc, kyc, lyc, myc, nyc, oyc, pyc, qyc, ryc, syc, tyc, uyc, vyc, wyc, xyc, yyc, zyc, Ayc, Byc, Cyc, Dyc, Eyc, Fyc, Gyc, Hyc, Iyc, Jyc, Kyc, Lyc, Myc;
+ mdb(Sne, "LayeredOptions", 986);
+ bcb(987, 1, {}, Ryc);
+ _.$e = function Syc() {
+ var a;
+ return a = new jUb(), a;
+ };
+ _._e = function Tyc(a) {
+ };
+ mdb(Sne, "LayeredOptions/LayeredFactory", 987);
+ bcb(1372, 1, {});
+ _.a = 0;
+ var Uyc;
+ mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder", 1372);
+ bcb(779, 1372, {}, ezc);
+ var bzc, czc;
+ mdb(Sne, "LayeredSpacings/LayeredSpacingsBuilder", 779);
+ bcb(313, 22, { 3: 1, 35: 1, 22: 1, 313: 1, 246: 1, 234: 1 }, nzc);
+ _.Kf = function pzc() {
+ return mzc(this);
+ };
+ _.Xf = function ozc() {
+ return mzc(this);
+ };
+ var fzc, gzc, hzc, izc, jzc, kzc;
+ var YW = ndb(Sne, "LayeringStrategy", 313, CI, rzc, qzc);
+ var szc;
+ bcb(378, 22, { 3: 1, 35: 1, 22: 1, 378: 1 }, zzc);
+ var uzc, vzc, wzc;
+ var ZW = ndb(Sne, "LongEdgeOrderingStrategy", 378, CI, Bzc, Azc);
+ var Czc;
+ bcb(197, 22, { 3: 1, 35: 1, 22: 1, 197: 1 }, Kzc);
+ var Ezc, Fzc, Gzc, Hzc;
+ var $W = ndb(Sne, "NodeFlexibility", 197, CI, Nzc, Mzc);
+ var Ozc;
+ bcb(315, 22, { 3: 1, 35: 1, 22: 1, 315: 1, 246: 1, 234: 1 }, Xzc);
+ _.Kf = function Zzc() {
+ return Wzc(this);
+ };
+ _.Xf = function Yzc() {
+ return Wzc(this);
+ };
+ var Qzc, Rzc, Szc, Tzc, Uzc;
+ var _W = ndb(Sne, "NodePlacementStrategy", 315, CI, _zc, $zc);
+ var aAc;
+ bcb(260, 22, { 3: 1, 35: 1, 22: 1, 260: 1 }, lAc);
+ var cAc, dAc, eAc, fAc, gAc, hAc, iAc, jAc;
+ var aX = ndb(Sne, "NodePromotionStrategy", 260, CI, nAc, mAc);
+ var oAc;
+ bcb(339, 22, { 3: 1, 35: 1, 22: 1, 339: 1 }, uAc);
+ var qAc, rAc, sAc;
+ var bX = ndb(Sne, "OrderingStrategy", 339, CI, wAc, vAc);
+ var xAc;
+ bcb(421, 22, { 3: 1, 35: 1, 22: 1, 421: 1 }, CAc);
+ var zAc, AAc;
+ var cX = ndb(Sne, "PortSortingStrategy", 421, CI, EAc, DAc);
+ var FAc;
+ bcb(452, 22, { 3: 1, 35: 1, 22: 1, 452: 1 }, LAc);
+ var HAc, IAc, JAc;
+ var dX = ndb(Sne, "PortType", 452, CI, NAc, MAc);
+ var OAc;
+ bcb(375, 22, { 3: 1, 35: 1, 22: 1, 375: 1 }, UAc);
+ var QAc, RAc, SAc;
+ var eX = ndb(Sne, "SelfLoopDistributionStrategy", 375, CI, WAc, VAc);
+ var XAc;
+ bcb(376, 22, { 3: 1, 35: 1, 22: 1, 376: 1 }, aBc);
+ var ZAc, $Ac;
+ var fX = ndb(Sne, "SelfLoopOrderingStrategy", 376, CI, cBc, bBc);
+ var dBc;
+ bcb(304, 1, { 304: 1 }, oBc);
+ mdb(Sne, "Spacings", 304);
+ bcb(336, 22, { 3: 1, 35: 1, 22: 1, 336: 1 }, uBc);
+ var qBc, rBc, sBc;
+ var hX = ndb(Sne, "SplineRoutingMode", 336, CI, wBc, vBc);
+ var xBc;
+ bcb(338, 22, { 3: 1, 35: 1, 22: 1, 338: 1 }, DBc);
+ var zBc, ABc, BBc;
+ var iX = ndb(Sne, "ValidifyStrategy", 338, CI, FBc, EBc);
+ var GBc;
+ bcb(377, 22, { 3: 1, 35: 1, 22: 1, 377: 1 }, MBc);
+ var IBc, JBc, KBc;
+ var jX = ndb(Sne, "WrappingStrategy", 377, CI, OBc, NBc);
+ var PBc;
+ bcb(1383, 1, Bqe, VBc);
+ _.Yf = function WBc(a) {
+ return BD(a, 37), RBc;
+ };
+ _.pf = function XBc(a, b) {
+ UBc(this, BD(a, 37), b);
+ };
+ var RBc;
+ mdb(Cqe, "DepthFirstCycleBreaker", 1383);
+ bcb(782, 1, Bqe, aCc);
+ _.Yf = function cCc(a) {
+ return BD(a, 37), YBc;
+ };
+ _.pf = function dCc(a, b) {
+ $Bc(this, BD(a, 37), b);
+ };
+ _.Zf = function bCc(a) {
+ return BD(Ikb(a, Bub(this.d, a.c.length)), 10);
+ };
+ var YBc;
+ mdb(Cqe, "GreedyCycleBreaker", 782);
+ bcb(1386, 782, Bqe, eCc);
+ _.Zf = function fCc(a) {
+ var b, c, d, e;
+ e = null;
+ b = Ohe;
+ for (d = new olb(a); d.a < d.c.c.length; ) {
+ c = BD(mlb(d), 10);
+ if (wNb(c, (wtc(), Zsc)) && BD(vNb(c, Zsc), 19).a < b) {
+ b = BD(vNb(c, Zsc), 19).a;
+ e = c;
+ }
+ }
+ if (!e) {
+ return BD(Ikb(a, Bub(this.d, a.c.length)), 10);
+ }
+ return e;
+ };
+ mdb(Cqe, "GreedyModelOrderCycleBreaker", 1386);
+ bcb(1384, 1, Bqe, kCc);
+ _.Yf = function lCc(a) {
+ return BD(a, 37), gCc;
+ };
+ _.pf = function mCc(a, b) {
+ jCc(this, BD(a, 37), b);
+ };
+ var gCc;
+ mdb(Cqe, "InteractiveCycleBreaker", 1384);
+ bcb(1385, 1, Bqe, rCc);
+ _.Yf = function sCc(a) {
+ return BD(a, 37), nCc;
+ };
+ _.pf = function tCc(a, b) {
+ qCc(this, BD(a, 37), b);
+ };
+ _.a = 0;
+ _.b = 0;
+ var nCc;
+ mdb(Cqe, "ModelOrderCycleBreaker", 1385);
+ bcb(1389, 1, Bqe, DCc);
+ _.Yf = function ECc(a) {
+ return BD(a, 37), uCc;
+ };
+ _.pf = function FCc(a, b) {
+ BCc(this, BD(a, 37), b);
+ };
+ var uCc;
+ mdb(Dqe, "CoffmanGrahamLayerer", 1389);
+ bcb(1390, 1, Dke, GCc);
+ _.ue = function HCc(a, b) {
+ return xCc(this.a, BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function ICc(a) {
+ return this === a;
+ };
+ _.ve = function JCc() {
+ return new tpb(this);
+ };
+ mdb(Dqe, "CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type", 1390);
+ bcb(1391, 1, Dke, KCc);
+ _.ue = function LCc(a, b) {
+ return ACc(this.a, BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function MCc(a) {
+ return this === a;
+ };
+ _.ve = function NCc() {
+ return new tpb(this);
+ };
+ mdb(Dqe, "CoffmanGrahamLayerer/lambda$1$Type", 1391);
+ bcb(1392, 1, Bqe, QCc);
+ _.Yf = function RCc(a) {
+ return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), n8b)), mUb, w8b), nUb, v8b);
+ };
+ _.pf = function SCc(a, b) {
+ PCc(this, BD(a, 37), b);
+ };
+ mdb(Dqe, "InteractiveLayerer", 1392);
+ bcb(569, 1, { 569: 1 }, TCc);
+ _.a = 0;
+ _.c = 0;
+ mdb(Dqe, "InteractiveLayerer/LayerSpan", 569);
+ bcb(1388, 1, Bqe, ZCc);
+ _.Yf = function $Cc(a) {
+ return BD(a, 37), UCc;
+ };
+ _.pf = function _Cc(a, b) {
+ WCc(this, BD(a, 37), b);
+ };
+ var UCc;
+ mdb(Dqe, "LongestPathLayerer", 1388);
+ bcb(1395, 1, Bqe, iDc);
+ _.Yf = function jDc(a) {
+ return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
+ };
+ _.pf = function kDc(a, b) {
+ gDc(this, BD(a, 37), b);
+ };
+ _.a = 0;
+ _.b = 0;
+ _.d = 0;
+ var aDc, bDc;
+ mdb(Dqe, "MinWidthLayerer", 1395);
+ bcb(1396, 1, Dke, mDc);
+ _.ue = function nDc(a, b) {
+ return lDc(this, BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function oDc(a) {
+ return this === a;
+ };
+ _.ve = function pDc() {
+ return new tpb(this);
+ };
+ mdb(Dqe, "MinWidthLayerer/MinOutgoingEdgesComparator", 1396);
+ bcb(1387, 1, Bqe, xDc);
+ _.Yf = function yDc(a) {
+ return BD(a, 37), qDc;
+ };
+ _.pf = function zDc(a, b) {
+ wDc(this, BD(a, 37), b);
+ };
+ var qDc;
+ mdb(Dqe, "NetworkSimplexLayerer", 1387);
+ bcb(1393, 1, Bqe, LDc);
+ _.Yf = function MDc(a) {
+ return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
+ };
+ _.pf = function NDc(a, b) {
+ IDc(this, BD(a, 37), b);
+ };
+ _.d = 0;
+ _.f = 0;
+ _.g = 0;
+ _.i = 0;
+ _.s = 0;
+ _.t = 0;
+ _.u = 0;
+ mdb(Dqe, "StretchWidthLayerer", 1393);
+ bcb(1394, 1, Dke, PDc);
+ _.ue = function QDc(a, b) {
+ return ODc(BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function RDc(a) {
+ return this === a;
+ };
+ _.ve = function SDc() {
+ return new tpb(this);
+ };
+ mdb(Dqe, "StretchWidthLayerer/1", 1394);
+ bcb(402, 1, Eqe);
+ _.Nf = function fEc(a, b, c, d, e, f) {
+ };
+ _._f = function dEc(a, b, c) {
+ return YDc(this, a, b, c);
+ };
+ _.Mf = function eEc() {
+ this.g = KC(VD, Fqe, 25, this.d, 15, 1);
+ this.f = KC(VD, Fqe, 25, this.d, 15, 1);
+ };
+ _.Of = function gEc(a, b) {
+ this.e[a] = KC(WD, oje, 25, b[a].length, 15, 1);
+ };
+ _.Pf = function hEc(a, b, c) {
+ var d;
+ d = c[a][b];
+ d.p = b;
+ this.e[a][b] = b;
+ };
+ _.Qf = function iEc(a, b, c, d) {
+ BD(Ikb(d[a][b].j, c), 11).p = this.d++;
+ };
+ _.b = 0;
+ _.c = 0;
+ _.d = 0;
+ mdb(Gqe, "AbstractBarycenterPortDistributor", 402);
+ bcb(1633, 1, Dke, jEc);
+ _.ue = function kEc(a, b) {
+ return _Dc(this.a, BD(a, 11), BD(b, 11));
+ };
+ _.Fb = function lEc(a) {
+ return this === a;
+ };
+ _.ve = function mEc() {
+ return new tpb(this);
+ };
+ mdb(Gqe, "AbstractBarycenterPortDistributor/lambda$0$Type", 1633);
+ bcb(817, 1, Mne, uEc);
+ _.Nf = function xEc(a, b, c, d, e, f) {
+ };
+ _.Pf = function zEc(a, b, c) {
+ };
+ _.Qf = function AEc(a, b, c, d) {
+ };
+ _.Lf = function vEc() {
+ return false;
+ };
+ _.Mf = function wEc() {
+ this.c = this.e.a;
+ this.g = this.f.g;
+ };
+ _.Of = function yEc(a, b) {
+ b[a][0].c.p = a;
+ };
+ _.Rf = function BEc() {
+ return false;
+ };
+ _.ag = function CEc(a, b, c, d) {
+ if (c) {
+ rEc(this, a);
+ } else {
+ oEc(this, a, d);
+ pEc(this, a, b);
+ }
+ if (a.c.length > 1) {
+ Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), (Nyc(), Awc)))) ? YGc(a, this.d, BD(this, 660)) : (mmb(), Okb(a, this.d));
+ PEc(this.e, a);
+ }
+ };
+ _.Sf = function DEc(a, b, c, d) {
+ var e, f, g, h, i, j, k;
+ if (b != sEc(c, a.length)) {
+ f = a[b - (c ? 1 : -1)];
+ UDc(this.f, f, c ? (KAc(), IAc) : (KAc(), HAc));
+ }
+ e = a[b][0];
+ k = !d || e.k == (j0b(), e0b);
+ j = Ou(a[b]);
+ this.ag(j, k, false, c);
+ g = 0;
+ for (i = new olb(j); i.a < i.c.c.length; ) {
+ h = BD(mlb(i), 10);
+ a[b][g++] = h;
+ }
+ return false;
+ };
+ _.Tf = function EEc(a, b) {
+ var c, d, e, f, g;
+ g = sEc(b, a.length);
+ f = Ou(a[g]);
+ this.ag(f, false, true, b);
+ c = 0;
+ for (e = new olb(f); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 10);
+ a[g][c++] = d;
+ }
+ return false;
+ };
+ mdb(Gqe, "BarycenterHeuristic", 817);
+ bcb(658, 1, { 658: 1 }, FEc);
+ _.Ib = function GEc() {
+ return "BarycenterState [node=" + this.c + ", summedWeight=" + this.d + ", degree=" + this.b + ", barycenter=" + this.a + ", visited=" + this.e + "]";
+ };
+ _.b = 0;
+ _.d = 0;
+ _.e = false;
+ var CX = mdb(Gqe, "BarycenterHeuristic/BarycenterState", 658);
+ bcb(1802, 1, Dke, HEc);
+ _.ue = function IEc(a, b) {
+ return qEc(this.a, BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function JEc(a) {
+ return this === a;
+ };
+ _.ve = function KEc() {
+ return new tpb(this);
+ };
+ mdb(Gqe, "BarycenterHeuristic/lambda$0$Type", 1802);
+ bcb(816, 1, Mne, SEc);
+ _.Mf = function TEc() {
+ };
+ _.Nf = function UEc(a, b, c, d, e, f) {
+ };
+ _.Qf = function XEc(a, b, c, d) {
+ };
+ _.Of = function VEc(a, b) {
+ this.a[a] = KC(CX, { 3: 1, 4: 1, 5: 1, 2018: 1 }, 658, b[a].length, 0, 1);
+ this.b[a] = KC(FX, { 3: 1, 4: 1, 5: 1, 2019: 1 }, 233, b[a].length, 0, 1);
+ };
+ _.Pf = function WEc(a, b, c) {
+ OEc(this, c[a][b], true);
+ };
+ _.c = false;
+ mdb(Gqe, "ForsterConstraintResolver", 816);
+ bcb(233, 1, { 233: 1 }, $Ec, _Ec);
+ _.Ib = function aFc() {
+ var a, b;
+ b = new Ufb();
+ b.a += "[";
+ for (a = 0; a < this.d.length; a++) {
+ Qfb(b, a0b(this.d[a]));
+ REc(this.g, this.d[0]).a != null && Qfb(Qfb((b.a += "<", b), Jdb(REc(this.g, this.d[0]).a)), ">");
+ a < this.d.length - 1 && (b.a += She, b);
+ }
+ return (b.a += "]", b).a;
+ };
+ _.a = 0;
+ _.c = 0;
+ _.f = 0;
+ var FX = mdb(Gqe, "ForsterConstraintResolver/ConstraintGroup", 233);
+ bcb(1797, 1, qie, bFc);
+ _.td = function cFc(a) {
+ OEc(this.a, BD(a, 10), false);
+ };
+ mdb(Gqe, "ForsterConstraintResolver/lambda$0$Type", 1797);
+ bcb(214, 1, { 214: 1, 225: 1 }, fFc);
+ _.Nf = function hFc(a, b, c, d, e, f) {
+ };
+ _.Of = function iFc(a, b) {
+ };
+ _.Mf = function gFc() {
+ this.r = KC(WD, oje, 25, this.n, 15, 1);
+ };
+ _.Pf = function jFc(a, b, c) {
+ var d, e;
+ e = c[a][b];
+ d = e.e;
+ !!d && Ekb(this.b, d);
+ };
+ _.Qf = function kFc(a, b, c, d) {
+ ++this.n;
+ };
+ _.Ib = function lFc() {
+ return wlb(this.e, new Tqb());
+ };
+ _.g = false;
+ _.i = false;
+ _.n = 0;
+ _.s = false;
+ mdb(Gqe, "GraphInfoHolder", 214);
+ bcb(1832, 1, Mne, pFc);
+ _.Nf = function sFc(a, b, c, d, e, f) {
+ };
+ _.Of = function tFc(a, b) {
+ };
+ _.Qf = function vFc(a, b, c, d) {
+ };
+ _._f = function qFc(a, b, c) {
+ c && b > 0 ? (RHc(this.a, a[b - 1], a[b]), void 0) : !c && b < a.length - 1 ? (RHc(this.a, a[b], a[b + 1]), void 0) : THc(this.a, a[b], c ? (Ucd(), Tcd) : (Ucd(), zcd));
+ return mFc(this, a, b, c);
+ };
+ _.Mf = function rFc() {
+ this.d = KC(WD, oje, 25, this.c, 15, 1);
+ this.a = new dIc(this.d);
+ };
+ _.Pf = function uFc(a, b, c) {
+ var d;
+ d = c[a][b];
+ this.c += d.j.c.length;
+ };
+ _.c = 0;
+ mdb(Gqe, "GreedyPortDistributor", 1832);
+ bcb(1401, 1, Bqe, CFc);
+ _.Yf = function DFc(a) {
+ return zFc(BD(a, 37));
+ };
+ _.pf = function EFc(a, b) {
+ BFc(BD(a, 37), b);
+ };
+ var xFc;
+ mdb(Gqe, "InteractiveCrossingMinimizer", 1401);
+ bcb(1402, 1, Dke, GFc);
+ _.ue = function HFc(a, b) {
+ return FFc(this, BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function IFc(a) {
+ return this === a;
+ };
+ _.ve = function JFc() {
+ return new tpb(this);
+ };
+ mdb(Gqe, "InteractiveCrossingMinimizer/1", 1402);
+ bcb(507, 1, { 507: 1, 123: 1, 51: 1 }, fGc);
+ _.Yf = function gGc(a) {
+ var b;
+ return BD(a, 37), b = k3c(KFc), e3c(b, (qUb(), nUb), (S8b(), H8b)), b;
+ };
+ _.pf = function hGc(a, b) {
+ YFc(this, BD(a, 37), b);
+ };
+ _.e = 0;
+ var KFc;
+ mdb(Gqe, "LayerSweepCrossingMinimizer", 507);
+ bcb(1398, 1, qie, iGc);
+ _.td = function jGc(a) {
+ MFc(this.a, BD(a, 214));
+ };
+ mdb(Gqe, "LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type", 1398);
+ bcb(1399, 1, qie, kGc);
+ _.td = function lGc(a) {
+ VFc(this.a, BD(a, 214));
+ };
+ mdb(Gqe, "LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type", 1399);
+ bcb(1400, 1, qie, mGc);
+ _.td = function nGc(a) {
+ XFc(this.a, BD(a, 214));
+ };
+ mdb(Gqe, "LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type", 1400);
+ bcb(454, 22, { 3: 1, 35: 1, 22: 1, 454: 1 }, sGc);
+ var oGc, pGc, qGc;
+ var PX = ndb(Gqe, "LayerSweepCrossingMinimizer/CrossMinType", 454, CI, uGc, tGc);
+ var vGc;
+ bcb(1397, 1, Oie, xGc);
+ _.Mb = function yGc(a) {
+ return LFc(), BD(a, 29).a.c.length == 0;
+ };
+ mdb(Gqe, "LayerSweepCrossingMinimizer/lambda$0$Type", 1397);
+ bcb(1799, 1, Mne, BGc);
+ _.Mf = function CGc() {
+ };
+ _.Nf = function DGc(a, b, c, d, e, f) {
+ };
+ _.Qf = function GGc(a, b, c, d) {
+ };
+ _.Of = function EGc(a, b) {
+ b[a][0].c.p = a;
+ this.b[a] = KC(SX, { 3: 1, 4: 1, 5: 1, 1944: 1 }, 659, b[a].length, 0, 1);
+ };
+ _.Pf = function FGc(a, b, c) {
+ var d;
+ d = c[a][b];
+ d.p = b;
+ NC(this.b[a], b, new HGc());
+ };
+ mdb(Gqe, "LayerSweepTypeDecider", 1799);
+ bcb(659, 1, { 659: 1 }, HGc);
+ _.Ib = function IGc() {
+ return "NodeInfo [connectedEdges=" + this.a + ", hierarchicalInfluence=" + this.b + ", randomInfluence=" + this.c + "]";
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ var SX = mdb(Gqe, "LayerSweepTypeDecider/NodeInfo", 659);
+ bcb(1800, 1, Vke, JGc);
+ _.Lb = function KGc(a) {
+ return a1b(new b1b(BD(a, 11).b));
+ };
+ _.Fb = function LGc(a) {
+ return this === a;
+ };
+ _.Mb = function MGc(a) {
+ return a1b(new b1b(BD(a, 11).b));
+ };
+ mdb(Gqe, "LayerSweepTypeDecider/lambda$0$Type", 1800);
+ bcb(1801, 1, Vke, NGc);
+ _.Lb = function OGc(a) {
+ return a1b(new b1b(BD(a, 11).b));
+ };
+ _.Fb = function PGc(a) {
+ return this === a;
+ };
+ _.Mb = function QGc(a) {
+ return a1b(new b1b(BD(a, 11).b));
+ };
+ mdb(Gqe, "LayerSweepTypeDecider/lambda$1$Type", 1801);
+ bcb(1833, 402, Eqe, RGc);
+ _.$f = function SGc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l;
+ j = this.g;
+ switch (c.g) {
+ case 1: {
+ d = 0;
+ e = 0;
+ for (i = new olb(a.j); i.a < i.c.c.length; ) {
+ g = BD(mlb(i), 11);
+ if (g.e.c.length != 0) {
+ ++d;
+ g.j == (Ucd(), Acd) && ++e;
+ }
+ }
+ f = b + e;
+ l = b + d;
+ for (h = W_b(a, (KAc(), HAc)).Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 11);
+ if (g.j == (Ucd(), Acd)) {
+ j[g.p] = f;
+ --f;
+ } else {
+ j[g.p] = l;
+ --l;
+ }
+ }
+ return d;
+ }
+ case 2: {
+ k = 0;
+ for (h = W_b(a, (KAc(), IAc)).Kc(); h.Ob(); ) {
+ g = BD(h.Pb(), 11);
+ ++k;
+ j[g.p] = b + k;
+ }
+ return k;
+ }
+ default:
+ throw vbb(new Vdb());
+ }
+ };
+ mdb(Gqe, "LayerTotalPortDistributor", 1833);
+ bcb(660, 817, { 660: 1, 225: 1 }, XGc);
+ _.ag = function ZGc(a, b, c, d) {
+ if (c) {
+ rEc(this, a);
+ } else {
+ oEc(this, a, d);
+ pEc(this, a, b);
+ }
+ if (a.c.length > 1) {
+ Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), (Nyc(), Awc)))) ? YGc(a, this.d, this) : (mmb(), Okb(a, this.d));
+ Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), Awc))) || PEc(this.e, a);
+ }
+ };
+ mdb(Gqe, "ModelOrderBarycenterHeuristic", 660);
+ bcb(1803, 1, Dke, $Gc);
+ _.ue = function _Gc(a, b) {
+ return VGc(this.a, BD(a, 10), BD(b, 10));
+ };
+ _.Fb = function aHc(a) {
+ return this === a;
+ };
+ _.ve = function bHc() {
+ return new tpb(this);
+ };
+ mdb(Gqe, "ModelOrderBarycenterHeuristic/lambda$0$Type", 1803);
+ bcb(1403, 1, Bqe, fHc);
+ _.Yf = function gHc(a) {
+ var b;
+ return BD(a, 37), b = k3c(cHc), e3c(b, (qUb(), nUb), (S8b(), H8b)), b;
+ };
+ _.pf = function hHc(a, b) {
+ eHc((BD(a, 37), b));
+ };
+ var cHc;
+ mdb(Gqe, "NoCrossingMinimizer", 1403);
+ bcb(796, 402, Eqe, iHc);
+ _.$f = function jHc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n;
+ l = this.g;
+ switch (c.g) {
+ case 1: {
+ e = 0;
+ f = 0;
+ for (k = new olb(a.j); k.a < k.c.c.length; ) {
+ i = BD(mlb(k), 11);
+ if (i.e.c.length != 0) {
+ ++e;
+ i.j == (Ucd(), Acd) && ++f;
+ }
+ }
+ d = 1 / (e + 1);
+ g = b + f * d;
+ n = b + 1 - d;
+ for (j = W_b(a, (KAc(), HAc)).Kc(); j.Ob(); ) {
+ i = BD(j.Pb(), 11);
+ if (i.j == (Ucd(), Acd)) {
+ l[i.p] = g;
+ g -= d;
+ } else {
+ l[i.p] = n;
+ n -= d;
+ }
+ }
+ break;
+ }
+ case 2: {
+ h = 0;
+ for (k = new olb(a.j); k.a < k.c.c.length; ) {
+ i = BD(mlb(k), 11);
+ i.g.c.length == 0 || ++h;
+ }
+ d = 1 / (h + 1);
+ m = b + d;
+ for (j = W_b(a, (KAc(), IAc)).Kc(); j.Ob(); ) {
+ i = BD(j.Pb(), 11);
+ l[i.p] = m;
+ m += d;
+ }
+ break;
+ }
+ default:
+ throw vbb(new Wdb("Port type is undefined"));
+ }
+ return 1;
+ };
+ mdb(Gqe, "NodeRelativePortDistributor", 796);
+ bcb(807, 1, {}, nHc, oHc);
+ mdb(Gqe, "SweepCopy", 807);
+ bcb(1798, 1, Mne, rHc);
+ _.Of = function uHc(a, b) {
+ };
+ _.Mf = function sHc() {
+ var a;
+ a = KC(WD, oje, 25, this.f, 15, 1);
+ this.d = new LIc(a);
+ this.a = new dIc(a);
+ };
+ _.Nf = function tHc(a, b, c, d, e, f) {
+ var g;
+ g = BD(Ikb(f[a][b].j, c), 11);
+ e.c == g && e.c.i.c == e.d.i.c && ++this.e[a];
+ };
+ _.Pf = function vHc(a, b, c) {
+ var d;
+ d = c[a][b];
+ this.c[a] = this.c[a] | d.k == (j0b(), i0b);
+ };
+ _.Qf = function wHc(a, b, c, d) {
+ var e;
+ e = BD(Ikb(d[a][b].j, c), 11);
+ e.p = this.f++;
+ e.g.c.length + e.e.c.length > 1 && (e.j == (Ucd(), zcd) ? this.b[a] = true : e.j == Tcd && a > 0 && (this.b[a - 1] = true));
+ };
+ _.f = 0;
+ mdb(Lne, "AllCrossingsCounter", 1798);
+ bcb(587, 1, {}, BHc);
+ _.b = 0;
+ _.d = 0;
+ mdb(Lne, "BinaryIndexedTree", 587);
+ bcb(524, 1, {}, dIc);
+ var DHc, EHc;
+ mdb(Lne, "CrossingsCounter", 524);
+ bcb(1906, 1, Dke, hIc);
+ _.ue = function iIc(a, b) {
+ return YHc(this.a, BD(a, 11), BD(b, 11));
+ };
+ _.Fb = function jIc(a) {
+ return this === a;
+ };
+ _.ve = function kIc() {
+ return new tpb(this);
+ };
+ mdb(Lne, "CrossingsCounter/lambda$0$Type", 1906);
+ bcb(1907, 1, Dke, lIc);
+ _.ue = function mIc(a, b) {
+ return ZHc(this.a, BD(a, 11), BD(b, 11));
+ };
+ _.Fb = function nIc(a) {
+ return this === a;
+ };
+ _.ve = function oIc() {
+ return new tpb(this);
+ };
+ mdb(Lne, "CrossingsCounter/lambda$1$Type", 1907);
+ bcb(1908, 1, Dke, pIc);
+ _.ue = function qIc(a, b) {
+ return $Hc(this.a, BD(a, 11), BD(b, 11));
+ };
+ _.Fb = function rIc(a) {
+ return this === a;
+ };
+ _.ve = function sIc() {
+ return new tpb(this);
+ };
+ mdb(Lne, "CrossingsCounter/lambda$2$Type", 1908);
+ bcb(1909, 1, Dke, tIc);
+ _.ue = function uIc(a, b) {
+ return _Hc(this.a, BD(a, 11), BD(b, 11));
+ };
+ _.Fb = function vIc(a) {
+ return this === a;
+ };
+ _.ve = function wIc() {
+ return new tpb(this);
+ };
+ mdb(Lne, "CrossingsCounter/lambda$3$Type", 1909);
+ bcb(1910, 1, qie, xIc);
+ _.td = function yIc(a) {
+ eIc(this.a, BD(a, 11));
+ };
+ mdb(Lne, "CrossingsCounter/lambda$4$Type", 1910);
+ bcb(1911, 1, Oie, zIc);
+ _.Mb = function AIc(a) {
+ return fIc(this.a, BD(a, 11));
+ };
+ mdb(Lne, "CrossingsCounter/lambda$5$Type", 1911);
+ bcb(1912, 1, qie, CIc);
+ _.td = function DIc(a) {
+ BIc(this, a);
+ };
+ mdb(Lne, "CrossingsCounter/lambda$6$Type", 1912);
+ bcb(1913, 1, qie, EIc);
+ _.td = function FIc(a) {
+ var b;
+ FHc();
+ Wjb(this.b, (b = this.a, BD(a, 11), b));
+ };
+ mdb(Lne, "CrossingsCounter/lambda$7$Type", 1913);
+ bcb(826, 1, Vke, GIc);
+ _.Lb = function HIc(a) {
+ return FHc(), wNb(BD(a, 11), (wtc(), gtc));
+ };
+ _.Fb = function IIc(a) {
+ return this === a;
+ };
+ _.Mb = function JIc(a) {
+ return FHc(), wNb(BD(a, 11), (wtc(), gtc));
+ };
+ mdb(Lne, "CrossingsCounter/lambda$8$Type", 826);
+ bcb(1905, 1, {}, LIc);
+ mdb(Lne, "HyperedgeCrossingsCounter", 1905);
+ bcb(467, 1, { 35: 1, 467: 1 }, NIc);
+ _.wd = function OIc(a) {
+ return MIc(this, BD(a, 467));
+ };
+ _.b = 0;
+ _.c = 0;
+ _.e = 0;
+ _.f = 0;
+ var oY = mdb(Lne, "HyperedgeCrossingsCounter/Hyperedge", 467);
+ bcb(362, 1, { 35: 1, 362: 1 }, QIc);
+ _.wd = function RIc(a) {
+ return PIc(this, BD(a, 362));
+ };
+ _.b = 0;
+ _.c = 0;
+ var nY = mdb(Lne, "HyperedgeCrossingsCounter/HyperedgeCorner", 362);
+ bcb(523, 22, { 3: 1, 35: 1, 22: 1, 523: 1 }, VIc);
+ var SIc, TIc;
+ var mY = ndb(Lne, "HyperedgeCrossingsCounter/HyperedgeCorner/Type", 523, CI, XIc, WIc);
+ var YIc;
+ bcb(1405, 1, Bqe, dJc);
+ _.Yf = function eJc(a) {
+ return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? _Ic : null;
+ };
+ _.pf = function fJc(a, b) {
+ cJc(this, BD(a, 37), b);
+ };
+ var _Ic;
+ mdb(Hqe, "InteractiveNodePlacer", 1405);
+ bcb(1406, 1, Bqe, tJc);
+ _.Yf = function uJc(a) {
+ return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? gJc : null;
+ };
+ _.pf = function vJc(a, b) {
+ rJc(this, BD(a, 37), b);
+ };
+ var gJc, hJc, iJc;
+ mdb(Hqe, "LinearSegmentsNodePlacer", 1406);
+ bcb(257, 1, { 35: 1, 257: 1 }, zJc);
+ _.wd = function AJc(a) {
+ return wJc(this, BD(a, 257));
+ };
+ _.Fb = function BJc(a) {
+ var b;
+ if (JD(a, 257)) {
+ b = BD(a, 257);
+ return this.b == b.b;
+ }
+ return false;
+ };
+ _.Hb = function CJc() {
+ return this.b;
+ };
+ _.Ib = function DJc() {
+ return "ls" + Fe(this.e);
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = -1;
+ _.d = -1;
+ _.g = 0;
+ var sY = mdb(Hqe, "LinearSegmentsNodePlacer/LinearSegment", 257);
+ bcb(1408, 1, Bqe, $Jc);
+ _.Yf = function _Jc(a) {
+ return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? EJc : null;
+ };
+ _.pf = function hKc(a, b) {
+ WJc(this, BD(a, 37), b);
+ };
+ _.b = 0;
+ _.g = 0;
+ var EJc;
+ mdb(Hqe, "NetworkSimplexPlacer", 1408);
+ bcb(1427, 1, Dke, iKc);
+ _.ue = function jKc(a, b) {
+ return beb(BD(a, 19).a, BD(b, 19).a);
+ };
+ _.Fb = function kKc(a) {
+ return this === a;
+ };
+ _.ve = function lKc() {
+ return new tpb(this);
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/0methodref$compare$Type", 1427);
+ bcb(1429, 1, Dke, mKc);
+ _.ue = function nKc(a, b) {
+ return beb(BD(a, 19).a, BD(b, 19).a);
+ };
+ _.Fb = function oKc(a) {
+ return this === a;
+ };
+ _.ve = function pKc() {
+ return new tpb(this);
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/1methodref$compare$Type", 1429);
+ bcb(649, 1, { 649: 1 }, qKc);
+ var wY = mdb(Hqe, "NetworkSimplexPlacer/EdgeRep", 649);
+ bcb(401, 1, { 401: 1 }, rKc);
+ _.b = false;
+ var xY = mdb(Hqe, "NetworkSimplexPlacer/NodeRep", 401);
+ bcb(508, 12, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 12: 1, 14: 1, 15: 1, 54: 1, 508: 1 }, vKc);
+ mdb(Hqe, "NetworkSimplexPlacer/Path", 508);
+ bcb(1409, 1, {}, wKc);
+ _.Kb = function xKc(a) {
+ return BD(a, 17).d.i.k;
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$0$Type", 1409);
+ bcb(1410, 1, Oie, yKc);
+ _.Mb = function zKc(a) {
+ return BD(a, 267) == (j0b(), g0b);
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$1$Type", 1410);
+ bcb(1411, 1, {}, AKc);
+ _.Kb = function BKc(a) {
+ return BD(a, 17).d.i;
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$2$Type", 1411);
+ bcb(1412, 1, Oie, CKc);
+ _.Mb = function DKc(a) {
+ return eLc(Lzc(BD(a, 10)));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$3$Type", 1412);
+ bcb(1413, 1, Oie, EKc);
+ _.Mb = function FKc(a) {
+ return dKc(BD(a, 11));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$0$Type", 1413);
+ bcb(1414, 1, qie, GKc);
+ _.td = function HKc(a) {
+ LJc(this.a, this.b, BD(a, 11));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$1$Type", 1414);
+ bcb(1423, 1, qie, IKc);
+ _.td = function JKc(a) {
+ MJc(this.a, BD(a, 17));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$10$Type", 1423);
+ bcb(1424, 1, {}, KKc);
+ _.Kb = function LKc(a) {
+ return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$11$Type", 1424);
+ bcb(1425, 1, qie, MKc);
+ _.td = function NKc(a) {
+ NJc(this.a, BD(a, 10));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$12$Type", 1425);
+ bcb(1426, 1, {}, OKc);
+ _.Kb = function PKc(a) {
+ return FJc(), meb(BD(a, 121).e);
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$13$Type", 1426);
+ bcb(1428, 1, {}, QKc);
+ _.Kb = function RKc(a) {
+ return FJc(), meb(BD(a, 121).e);
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$15$Type", 1428);
+ bcb(1430, 1, Oie, SKc);
+ _.Mb = function TKc(a) {
+ return FJc(), BD(a, 401).c.k == (j0b(), h0b);
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$17$Type", 1430);
+ bcb(1431, 1, Oie, UKc);
+ _.Mb = function VKc(a) {
+ return FJc(), BD(a, 401).c.j.c.length > 1;
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$18$Type", 1431);
+ bcb(1432, 1, qie, WKc);
+ _.td = function XKc(a) {
+ eKc(this.c, this.b, this.d, this.a, BD(a, 401));
+ };
+ _.c = 0;
+ _.d = 0;
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$19$Type", 1432);
+ bcb(1415, 1, {}, YKc);
+ _.Kb = function ZKc(a) {
+ return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$2$Type", 1415);
+ bcb(1433, 1, qie, $Kc);
+ _.td = function _Kc(a) {
+ fKc(this.a, BD(a, 11));
+ };
+ _.a = 0;
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$20$Type", 1433);
+ bcb(1434, 1, {}, aLc);
+ _.Kb = function bLc(a) {
+ return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$21$Type", 1434);
+ bcb(1435, 1, qie, cLc);
+ _.td = function dLc(a) {
+ OJc(this.a, BD(a, 10));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$22$Type", 1435);
+ bcb(1436, 1, Oie, fLc);
+ _.Mb = function gLc(a) {
+ return eLc(a);
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$23$Type", 1436);
+ bcb(1437, 1, {}, hLc);
+ _.Kb = function iLc(a) {
+ return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$24$Type", 1437);
+ bcb(1438, 1, Oie, jLc);
+ _.Mb = function kLc(a) {
+ return PJc(this.a, BD(a, 10));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$25$Type", 1438);
+ bcb(1439, 1, qie, lLc);
+ _.td = function mLc(a) {
+ QJc(this.a, this.b, BD(a, 10));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$26$Type", 1439);
+ bcb(1440, 1, Oie, nLc);
+ _.Mb = function oLc(a) {
+ return FJc(), !OZb(BD(a, 17));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$27$Type", 1440);
+ bcb(1441, 1, Oie, pLc);
+ _.Mb = function qLc(a) {
+ return FJc(), !OZb(BD(a, 17));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$28$Type", 1441);
+ bcb(1442, 1, {}, rLc);
+ _.Ce = function sLc(a, b) {
+ return RJc(this.a, BD(a, 29), BD(b, 29));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$29$Type", 1442);
+ bcb(1416, 1, {}, tLc);
+ _.Kb = function uLc(a) {
+ return FJc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$3$Type", 1416);
+ bcb(1417, 1, Oie, vLc);
+ _.Mb = function wLc(a) {
+ return FJc(), cKc(BD(a, 17));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$4$Type", 1417);
+ bcb(1418, 1, qie, xLc);
+ _.td = function yLc(a) {
+ XJc(this.a, BD(a, 17));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$5$Type", 1418);
+ bcb(1419, 1, {}, zLc);
+ _.Kb = function ALc(a) {
+ return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$6$Type", 1419);
+ bcb(1420, 1, Oie, BLc);
+ _.Mb = function CLc(a) {
+ return FJc(), BD(a, 10).k == (j0b(), h0b);
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$7$Type", 1420);
+ bcb(1421, 1, {}, DLc);
+ _.Kb = function ELc(a) {
+ return FJc(), new YAb(null, new Lub(new Sr(ur(O_b(BD(a, 10)).a.Kc(), new Sq()))));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$8$Type", 1421);
+ bcb(1422, 1, Oie, FLc);
+ _.Mb = function GLc(a) {
+ return FJc(), NZb(BD(a, 17));
+ };
+ mdb(Hqe, "NetworkSimplexPlacer/lambda$9$Type", 1422);
+ bcb(1404, 1, Bqe, KLc);
+ _.Yf = function LLc(a) {
+ return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? HLc : null;
+ };
+ _.pf = function MLc(a, b) {
+ JLc(BD(a, 37), b);
+ };
+ var HLc;
+ mdb(Hqe, "SimpleNodePlacer", 1404);
+ bcb(180, 1, { 180: 1 }, ULc);
+ _.Ib = function VLc() {
+ var a;
+ a = "";
+ this.c == (YLc(), XLc) ? a += kle : this.c == WLc && (a += jle);
+ this.o == (eMc(), cMc) ? a += vle : this.o == dMc ? a += "UP" : a += "BALANCED";
+ return a;
+ };
+ mdb(Kqe, "BKAlignedLayout", 180);
+ bcb(516, 22, { 3: 1, 35: 1, 22: 1, 516: 1 }, ZLc);
+ var WLc, XLc;
+ var fZ = ndb(Kqe, "BKAlignedLayout/HDirection", 516, CI, _Lc, $Lc);
+ var aMc;
+ bcb(515, 22, { 3: 1, 35: 1, 22: 1, 515: 1 }, fMc);
+ var cMc, dMc;
+ var gZ = ndb(Kqe, "BKAlignedLayout/VDirection", 515, CI, hMc, gMc);
+ var iMc;
+ bcb(1634, 1, {}, mMc);
+ mdb(Kqe, "BKAligner", 1634);
+ bcb(1637, 1, {}, rMc);
+ mdb(Kqe, "BKCompactor", 1637);
+ bcb(654, 1, { 654: 1 }, sMc);
+ _.a = 0;
+ mdb(Kqe, "BKCompactor/ClassEdge", 654);
+ bcb(458, 1, { 458: 1 }, uMc);
+ _.a = null;
+ _.b = 0;
+ mdb(Kqe, "BKCompactor/ClassNode", 458);
+ bcb(1407, 1, Bqe, CMc);
+ _.Yf = function GMc(a) {
+ return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? vMc : null;
+ };
+ _.pf = function HMc(a, b) {
+ BMc(this, BD(a, 37), b);
+ };
+ _.d = false;
+ var vMc;
+ mdb(Kqe, "BKNodePlacer", 1407);
+ bcb(1635, 1, {}, JMc);
+ _.d = 0;
+ mdb(Kqe, "NeighborhoodInformation", 1635);
+ bcb(1636, 1, Dke, OMc);
+ _.ue = function PMc(a, b) {
+ return NMc(this, BD(a, 46), BD(b, 46));
+ };
+ _.Fb = function QMc(a) {
+ return this === a;
+ };
+ _.ve = function RMc() {
+ return new tpb(this);
+ };
+ mdb(Kqe, "NeighborhoodInformation/NeighborComparator", 1636);
+ bcb(808, 1, {});
+ mdb(Kqe, "ThresholdStrategy", 808);
+ bcb(1763, 808, {}, WMc);
+ _.bg = function XMc(a, b, c) {
+ return this.a.o == (eMc(), dMc) ? Pje : Qje;
+ };
+ _.cg = function YMc() {
+ };
+ mdb(Kqe, "ThresholdStrategy/NullThresholdStrategy", 1763);
+ bcb(579, 1, { 579: 1 }, ZMc);
+ _.c = false;
+ _.d = false;
+ mdb(Kqe, "ThresholdStrategy/Postprocessable", 579);
+ bcb(1764, 808, {}, bNc);
+ _.bg = function cNc(a, b, c) {
+ var d, e, f;
+ e = b == c;
+ d = this.a.a[c.p] == b;
+ if (!(e || d)) {
+ return a;
+ }
+ f = a;
+ if (this.a.c == (YLc(), XLc)) {
+ e && (f = $Mc(this, b, true));
+ !isNaN(f) && !isFinite(f) && d && (f = $Mc(this, c, false));
+ } else {
+ e && (f = $Mc(this, b, true));
+ !isNaN(f) && !isFinite(f) && d && (f = $Mc(this, c, false));
+ }
+ return f;
+ };
+ _.cg = function dNc() {
+ var a, b, c, d, e;
+ while (this.d.b != 0) {
+ e = BD(Ksb(this.d), 579);
+ d = _Mc(this, e);
+ if (!d.a) {
+ continue;
+ }
+ a = d.a;
+ c = Ccb(this.a.f[this.a.g[e.b.p].p]);
+ if (!c && !OZb(a) && a.c.i.c == a.d.i.c) {
+ continue;
+ }
+ b = aNc(this, e);
+ b || swb(this.e, e);
+ }
+ while (this.e.a.c.length != 0) {
+ aNc(this, BD(rwb(this.e), 579));
+ }
+ };
+ mdb(Kqe, "ThresholdStrategy/SimpleThresholdStrategy", 1764);
+ bcb(635, 1, { 635: 1, 246: 1, 234: 1 }, hNc);
+ _.Kf = function jNc() {
+ return gNc(this);
+ };
+ _.Xf = function iNc() {
+ return gNc(this);
+ };
+ var eNc;
+ mdb(Lqe, "EdgeRouterFactory", 635);
+ bcb(1458, 1, Bqe, wNc);
+ _.Yf = function xNc(a) {
+ return uNc(BD(a, 37));
+ };
+ _.pf = function yNc(a, b) {
+ vNc(BD(a, 37), b);
+ };
+ var lNc, mNc, nNc, oNc, pNc, qNc, rNc, sNc;
+ mdb(Lqe, "OrthogonalEdgeRouter", 1458);
+ bcb(1451, 1, Bqe, NNc);
+ _.Yf = function ONc(a) {
+ return INc(BD(a, 37));
+ };
+ _.pf = function PNc(a, b) {
+ KNc(this, BD(a, 37), b);
+ };
+ var zNc, ANc, BNc, CNc, DNc, ENc;
+ mdb(Lqe, "PolylineEdgeRouter", 1451);
+ bcb(1452, 1, Vke, RNc);
+ _.Lb = function SNc(a) {
+ return QNc(BD(a, 10));
+ };
+ _.Fb = function TNc(a) {
+ return this === a;
+ };
+ _.Mb = function UNc(a) {
+ return QNc(BD(a, 10));
+ };
+ mdb(Lqe, "PolylineEdgeRouter/1", 1452);
+ bcb(1809, 1, Oie, ZNc);
+ _.Mb = function $Nc(a) {
+ return BD(a, 129).c == (HOc(), FOc);
+ };
+ mdb(Mqe, "HyperEdgeCycleDetector/lambda$0$Type", 1809);
+ bcb(1810, 1, {}, _Nc);
+ _.Ge = function aOc(a) {
+ return BD(a, 129).d;
+ };
+ mdb(Mqe, "HyperEdgeCycleDetector/lambda$1$Type", 1810);
+ bcb(1811, 1, Oie, bOc);
+ _.Mb = function cOc(a) {
+ return BD(a, 129).c == (HOc(), FOc);
+ };
+ mdb(Mqe, "HyperEdgeCycleDetector/lambda$2$Type", 1811);
+ bcb(1812, 1, {}, dOc);
+ _.Ge = function eOc(a) {
+ return BD(a, 129).d;
+ };
+ mdb(Mqe, "HyperEdgeCycleDetector/lambda$3$Type", 1812);
+ bcb(1813, 1, {}, fOc);
+ _.Ge = function gOc(a) {
+ return BD(a, 129).d;
+ };
+ mdb(Mqe, "HyperEdgeCycleDetector/lambda$4$Type", 1813);
+ bcb(1814, 1, {}, hOc);
+ _.Ge = function iOc(a) {
+ return BD(a, 129).d;
+ };
+ mdb(Mqe, "HyperEdgeCycleDetector/lambda$5$Type", 1814);
+ bcb(112, 1, { 35: 1, 112: 1 }, uOc);
+ _.wd = function vOc(a) {
+ return kOc(this, BD(a, 112));
+ };
+ _.Fb = function wOc(a) {
+ var b;
+ if (JD(a, 112)) {
+ b = BD(a, 112);
+ return this.g == b.g;
+ }
+ return false;
+ };
+ _.Hb = function xOc() {
+ return this.g;
+ };
+ _.Ib = function zOc() {
+ var a, b, c, d;
+ a = new Wfb("{");
+ d = new olb(this.n);
+ while (d.a < d.c.c.length) {
+ c = BD(mlb(d), 11);
+ b = P_b(c.i);
+ b == null && (b = "n" + S_b(c.i));
+ a.a += "" + b;
+ d.a < d.c.c.length && (a.a += ",", a);
+ }
+ a.a += "}";
+ return a.a;
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = NaN;
+ _.d = 0;
+ _.g = 0;
+ _.i = 0;
+ _.o = 0;
+ _.s = NaN;
+ mdb(Mqe, "HyperEdgeSegment", 112);
+ bcb(129, 1, { 129: 1 }, DOc);
+ _.Ib = function EOc() {
+ return this.a + "->" + this.b + " (" + Yr(this.c) + ")";
+ };
+ _.d = 0;
+ mdb(Mqe, "HyperEdgeSegmentDependency", 129);
+ bcb(520, 22, { 3: 1, 35: 1, 22: 1, 520: 1 }, IOc);
+ var FOc, GOc;
+ var DZ = ndb(Mqe, "HyperEdgeSegmentDependency/DependencyType", 520, CI, KOc, JOc);
+ var LOc;
+ bcb(1815, 1, {}, ZOc);
+ mdb(Mqe, "HyperEdgeSegmentSplitter", 1815);
+ bcb(1816, 1, {}, aPc);
+ _.a = 0;
+ _.b = 0;
+ mdb(Mqe, "HyperEdgeSegmentSplitter/AreaRating", 1816);
+ bcb(329, 1, { 329: 1 }, bPc);
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ mdb(Mqe, "HyperEdgeSegmentSplitter/FreeArea", 329);
+ bcb(1817, 1, Dke, cPc);
+ _.ue = function dPc(a, b) {
+ return _Oc(BD(a, 112), BD(b, 112));
+ };
+ _.Fb = function ePc(a) {
+ return this === a;
+ };
+ _.ve = function fPc() {
+ return new tpb(this);
+ };
+ mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$0$Type", 1817);
+ bcb(1818, 1, qie, gPc);
+ _.td = function hPc(a) {
+ TOc(this.a, this.d, this.c, this.b, BD(a, 112));
+ };
+ _.b = 0;
+ mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$1$Type", 1818);
+ bcb(1819, 1, {}, iPc);
+ _.Kb = function jPc(a) {
+ return new YAb(null, new Kub(BD(a, 112).e, 16));
+ };
+ mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$2$Type", 1819);
+ bcb(1820, 1, {}, kPc);
+ _.Kb = function lPc(a) {
+ return new YAb(null, new Kub(BD(a, 112).j, 16));
+ };
+ mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$3$Type", 1820);
+ bcb(1821, 1, {}, mPc);
+ _.Fe = function nPc(a) {
+ return Edb(ED(a));
+ };
+ mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$4$Type", 1821);
+ bcb(655, 1, {}, tPc);
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ mdb(Mqe, "OrthogonalRoutingGenerator", 655);
+ bcb(1638, 1, {}, xPc);
+ _.Kb = function yPc(a) {
+ return new YAb(null, new Kub(BD(a, 112).e, 16));
+ };
+ mdb(Mqe, "OrthogonalRoutingGenerator/lambda$0$Type", 1638);
+ bcb(1639, 1, {}, zPc);
+ _.Kb = function APc(a) {
+ return new YAb(null, new Kub(BD(a, 112).j, 16));
+ };
+ mdb(Mqe, "OrthogonalRoutingGenerator/lambda$1$Type", 1639);
+ bcb(661, 1, {});
+ mdb(Nqe, "BaseRoutingDirectionStrategy", 661);
+ bcb(1807, 661, {}, EPc);
+ _.dg = function FPc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ if (!!a.r && !a.q) {
+ return;
+ }
+ k = b + a.o * c;
+ for (j = new olb(a.n); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 11);
+ l = l7c(OC(GC(m1, 1), nie, 8, 0, [i.i.n, i.n, i.a])).a;
+ for (h = new olb(i.g); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 17);
+ if (!OZb(g)) {
+ o2 = g.d;
+ p = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).a;
+ if ($wnd.Math.abs(l - p) > qme) {
+ f = k;
+ e = a;
+ d = new f7c(l, f);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, false);
+ m = a.r;
+ if (m) {
+ n = Edb(ED(Ut(m.e, 0)));
+ d = new f7c(n, f);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, false);
+ f = b + m.o * c;
+ e = m;
+ d = new f7c(n, f);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, false);
+ }
+ d = new f7c(p, f);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, false);
+ }
+ }
+ }
+ }
+ };
+ _.eg = function GPc(a) {
+ return a.i.n.a + a.n.a + a.a.a;
+ };
+ _.fg = function HPc() {
+ return Ucd(), Rcd;
+ };
+ _.gg = function IPc() {
+ return Ucd(), Acd;
+ };
+ mdb(Nqe, "NorthToSouthRoutingStrategy", 1807);
+ bcb(1808, 661, {}, JPc);
+ _.dg = function KPc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ if (!!a.r && !a.q) {
+ return;
+ }
+ k = b - a.o * c;
+ for (j = new olb(a.n); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 11);
+ l = l7c(OC(GC(m1, 1), nie, 8, 0, [i.i.n, i.n, i.a])).a;
+ for (h = new olb(i.g); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 17);
+ if (!OZb(g)) {
+ o2 = g.d;
+ p = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).a;
+ if ($wnd.Math.abs(l - p) > qme) {
+ f = k;
+ e = a;
+ d = new f7c(l, f);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, false);
+ m = a.r;
+ if (m) {
+ n = Edb(ED(Ut(m.e, 0)));
+ d = new f7c(n, f);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, false);
+ f = b - m.o * c;
+ e = m;
+ d = new f7c(n, f);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, false);
+ }
+ d = new f7c(p, f);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, false);
+ }
+ }
+ }
+ }
+ };
+ _.eg = function LPc(a) {
+ return a.i.n.a + a.n.a + a.a.a;
+ };
+ _.fg = function MPc() {
+ return Ucd(), Acd;
+ };
+ _.gg = function NPc() {
+ return Ucd(), Rcd;
+ };
+ mdb(Nqe, "SouthToNorthRoutingStrategy", 1808);
+ bcb(1806, 661, {}, OPc);
+ _.dg = function PPc(a, b, c) {
+ var d, e, f, g, h, i, j, k, l, m, n, o2, p;
+ if (!!a.r && !a.q) {
+ return;
+ }
+ k = b + a.o * c;
+ for (j = new olb(a.n); j.a < j.c.c.length; ) {
+ i = BD(mlb(j), 11);
+ l = l7c(OC(GC(m1, 1), nie, 8, 0, [i.i.n, i.n, i.a])).b;
+ for (h = new olb(i.g); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 17);
+ if (!OZb(g)) {
+ o2 = g.d;
+ p = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).b;
+ if ($wnd.Math.abs(l - p) > qme) {
+ f = k;
+ e = a;
+ d = new f7c(f, l);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, true);
+ m = a.r;
+ if (m) {
+ n = Edb(ED(Ut(m.e, 0)));
+ d = new f7c(f, n);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, true);
+ f = b + m.o * c;
+ e = m;
+ d = new f7c(f, n);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, true);
+ }
+ d = new f7c(f, p);
+ Dsb(g.a, d);
+ BPc(this, g, e, d, true);
+ }
+ }
+ }
+ }
+ };
+ _.eg = function QPc(a) {
+ return a.i.n.b + a.n.b + a.a.b;
+ };
+ _.fg = function RPc() {
+ return Ucd(), zcd;
+ };
+ _.gg = function SPc() {
+ return Ucd(), Tcd;
+ };
+ mdb(Nqe, "WestToEastRoutingStrategy", 1806);
+ bcb(813, 1, {}, YPc);
+ _.Ib = function ZPc() {
+ return Fe(this.a);
+ };
+ _.b = 0;
+ _.c = false;
+ _.d = false;
+ _.f = 0;
+ mdb(Pqe, "NubSpline", 813);
+ bcb(407, 1, { 407: 1 }, aQc, bQc);
+ mdb(Pqe, "NubSpline/PolarCP", 407);
+ bcb(1453, 1, Bqe, vQc);
+ _.Yf = function xQc(a) {
+ return qQc(BD(a, 37));
+ };
+ _.pf = function yQc(a, b) {
+ uQc(this, BD(a, 37), b);
+ };
+ var cQc, dQc, eQc, fQc, gQc;
+ mdb(Pqe, "SplineEdgeRouter", 1453);
+ bcb(268, 1, { 268: 1 }, BQc);
+ _.Ib = function CQc() {
+ return this.a + " ->(" + this.c + ") " + this.b;
+ };
+ _.c = 0;
+ mdb(Pqe, "SplineEdgeRouter/Dependency", 268);
+ bcb(455, 22, { 3: 1, 35: 1, 22: 1, 455: 1 }, GQc);
+ var DQc, EQc;
+ var YZ = ndb(Pqe, "SplineEdgeRouter/SideToProcess", 455, CI, IQc, HQc);
+ var JQc;
+ bcb(1454, 1, Oie, LQc);
+ _.Mb = function MQc(a) {
+ return hQc(), !BD(a, 128).o;
+ };
+ mdb(Pqe, "SplineEdgeRouter/lambda$0$Type", 1454);
+ bcb(1455, 1, {}, NQc);
+ _.Ge = function OQc(a) {
+ return hQc(), BD(a, 128).v + 1;
+ };
+ mdb(Pqe, "SplineEdgeRouter/lambda$1$Type", 1455);
+ bcb(1456, 1, qie, PQc);
+ _.td = function QQc(a) {
+ sQc(this.a, this.b, BD(a, 46));
+ };
+ mdb(Pqe, "SplineEdgeRouter/lambda$2$Type", 1456);
+ bcb(1457, 1, qie, RQc);
+ _.td = function SQc(a) {
+ tQc(this.a, this.b, BD(a, 46));
+ };
+ mdb(Pqe, "SplineEdgeRouter/lambda$3$Type", 1457);
+ bcb(128, 1, { 35: 1, 128: 1 }, YQc, ZQc);
+ _.wd = function $Qc(a) {
+ return WQc(this, BD(a, 128));
+ };
+ _.b = 0;
+ _.e = false;
+ _.f = 0;
+ _.g = 0;
+ _.j = false;
+ _.k = false;
+ _.n = 0;
+ _.o = false;
+ _.p = false;
+ _.q = false;
+ _.s = 0;
+ _.u = 0;
+ _.v = 0;
+ _.F = 0;
+ mdb(Pqe, "SplineSegment", 128);
+ bcb(459, 1, { 459: 1 }, _Qc);
+ _.a = 0;
+ _.b = false;
+ _.c = false;
+ _.d = false;
+ _.e = false;
+ _.f = 0;
+ mdb(Pqe, "SplineSegment/EdgeInformation", 459);
+ bcb(1234, 1, {}, hRc);
+ mdb(Uqe, hme, 1234);
+ bcb(1235, 1, Dke, jRc);
+ _.ue = function kRc(a, b) {
+ return iRc(BD(a, 135), BD(b, 135));
+ };
+ _.Fb = function lRc(a) {
+ return this === a;
+ };
+ _.ve = function mRc() {
+ return new tpb(this);
+ };
+ mdb(Uqe, ime, 1235);
+ bcb(1233, 1, {}, tRc);
+ mdb(Uqe, "MrTree", 1233);
+ bcb(393, 22, { 3: 1, 35: 1, 22: 1, 393: 1, 246: 1, 234: 1 }, ARc);
+ _.Kf = function CRc() {
+ return zRc(this);
+ };
+ _.Xf = function BRc() {
+ return zRc(this);
+ };
+ var uRc, vRc, wRc, xRc;
+ var h$ = ndb(Uqe, "TreeLayoutPhases", 393, CI, ERc, DRc);
+ var FRc;
+ bcb(1130, 209, Mle, HRc);
+ _.Ze = function IRc(a, b) {
+ var c, d, e, f, g, h, i;
+ Ccb(DD(hkd(a, (JTc(), ATc)))) || $Cb((c = new _Cb((Pgd(), new bhd(a))), c));
+ g = (h = new SRc(), tNb(h, a), yNb(h, (mTc(), dTc), a), i = new Lqb(), pRc(a, h, i), oRc(a, h, i), h);
+ f = gRc(this.a, g);
+ for (e = new olb(f); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 135);
+ rRc(this.b, d, Udd(b, 1 / f.c.length));
+ }
+ g = fRc(f);
+ nRc(g);
+ };
+ mdb(Uqe, "TreeLayoutProvider", 1130);
+ bcb(1847, 1, vie, KRc);
+ _.Jc = function LRc(a) {
+ reb(this, a);
+ };
+ _.Kc = function MRc() {
+ return mmb(), Emb(), Dmb;
+ };
+ mdb(Uqe, "TreeUtil/1", 1847);
+ bcb(1848, 1, vie, NRc);
+ _.Jc = function ORc(a) {
+ reb(this, a);
+ };
+ _.Kc = function PRc() {
+ return mmb(), Emb(), Dmb;
+ };
+ mdb(Uqe, "TreeUtil/2", 1848);
+ bcb(502, 134, { 3: 1, 502: 1, 94: 1, 134: 1 });
+ _.g = 0;
+ mdb(Vqe, "TGraphElement", 502);
+ bcb(188, 502, { 3: 1, 188: 1, 502: 1, 94: 1, 134: 1 }, QRc);
+ _.Ib = function RRc() {
+ return !!this.b && !!this.c ? WRc(this.b) + "->" + WRc(this.c) : "e_" + tb(this);
+ };
+ mdb(Vqe, "TEdge", 188);
+ bcb(135, 134, { 3: 1, 135: 1, 94: 1, 134: 1 }, SRc);
+ _.Ib = function TRc() {
+ var a, b, c, d, e;
+ e = null;
+ for (d = Jsb(this.b, 0); d.b != d.d.c; ) {
+ c = BD(Xsb(d), 86);
+ e += (c.c == null || c.c.length == 0 ? "n_" + c.g : "n_" + c.c) + "\n";
+ }
+ for (b = Jsb(this.a, 0); b.b != b.d.c; ) {
+ a = BD(Xsb(b), 188);
+ e += (!!a.b && !!a.c ? WRc(a.b) + "->" + WRc(a.c) : "e_" + tb(a)) + "\n";
+ }
+ return e;
+ };
+ var n$ = mdb(Vqe, "TGraph", 135);
+ bcb(633, 502, { 3: 1, 502: 1, 633: 1, 94: 1, 134: 1 });
+ mdb(Vqe, "TShape", 633);
+ bcb(86, 633, { 3: 1, 502: 1, 86: 1, 633: 1, 94: 1, 134: 1 }, XRc);
+ _.Ib = function YRc() {
+ return WRc(this);
+ };
+ var q$ = mdb(Vqe, "TNode", 86);
+ bcb(255, 1, vie, ZRc);
+ _.Jc = function $Rc(a) {
+ reb(this, a);
+ };
+ _.Kc = function _Rc() {
+ var a;
+ return a = Jsb(this.a.d, 0), new aSc(a);
+ };
+ mdb(Vqe, "TNode/2", 255);
+ bcb(358, 1, aie, aSc);
+ _.Nb = function bSc(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function dSc() {
+ return BD(Xsb(this.a), 188).c;
+ };
+ _.Ob = function cSc() {
+ return Wsb(this.a);
+ };
+ _.Qb = function eSc() {
+ Zsb(this.a);
+ };
+ mdb(Vqe, "TNode/2/1", 358);
+ bcb(1840, 1, ene, hSc);
+ _.pf = function jSc(a, b) {
+ gSc(this, BD(a, 135), b);
+ };
+ mdb(Wqe, "FanProcessor", 1840);
+ bcb(327, 22, { 3: 1, 35: 1, 22: 1, 327: 1, 234: 1 }, rSc);
+ _.Kf = function sSc() {
+ switch (this.g) {
+ case 0:
+ return new QSc();
+ case 1:
+ return new hSc();
+ case 2:
+ return new GSc();
+ case 3:
+ return new zSc();
+ case 4:
+ return new NSc();
+ case 5:
+ return new TSc();
+ default:
+ throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g)));
+ }
+ };
+ var kSc, lSc, mSc, nSc, oSc, pSc;
+ var t$ = ndb(Wqe, Ene, 327, CI, uSc, tSc);
+ var vSc;
+ bcb(1843, 1, ene, zSc);
+ _.pf = function ASc(a, b) {
+ xSc(this, BD(a, 135), b);
+ };
+ _.a = 0;
+ mdb(Wqe, "LevelHeightProcessor", 1843);
+ bcb(1844, 1, vie, BSc);
+ _.Jc = function CSc(a) {
+ reb(this, a);
+ };
+ _.Kc = function DSc() {
+ return mmb(), Emb(), Dmb;
+ };
+ mdb(Wqe, "LevelHeightProcessor/1", 1844);
+ bcb(1841, 1, ene, GSc);
+ _.pf = function HSc(a, b) {
+ ESc(this, BD(a, 135), b);
+ };
+ _.a = 0;
+ mdb(Wqe, "NeighborsProcessor", 1841);
+ bcb(1842, 1, vie, ISc);
+ _.Jc = function JSc(a) {
+ reb(this, a);
+ };
+ _.Kc = function KSc() {
+ return mmb(), Emb(), Dmb;
+ };
+ mdb(Wqe, "NeighborsProcessor/1", 1842);
+ bcb(1845, 1, ene, NSc);
+ _.pf = function OSc(a, b) {
+ LSc(this, BD(a, 135), b);
+ };
+ _.a = 0;
+ mdb(Wqe, "NodePositionProcessor", 1845);
+ bcb(1839, 1, ene, QSc);
+ _.pf = function RSc(a, b) {
+ PSc(this, BD(a, 135));
+ };
+ mdb(Wqe, "RootProcessor", 1839);
+ bcb(1846, 1, ene, TSc);
+ _.pf = function USc(a, b) {
+ SSc(BD(a, 135));
+ };
+ mdb(Wqe, "Untreeifyer", 1846);
+ var VSc, WSc, XSc, YSc, ZSc, $Sc, _Sc, aTc, bTc, cTc, dTc, eTc, fTc, gTc, hTc, iTc, jTc, kTc, lTc;
+ bcb(851, 1, ale, sTc);
+ _.Qe = function tTc(a) {
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zqe), ""), "Weighting of Nodes"), "Which weighting to use when computing a node order."), qTc), (_5c(), V5c)), E$), pqb((N5c(), L5c)))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $qe), ""), "Search Order"), "Which search order to use when computing a spanning tree."), oTc), V5c), F$), pqb(L5c))));
+ KTc((new LTc(), a));
+ };
+ var nTc, oTc, pTc, qTc;
+ mdb(_qe, "MrTreeMetaDataProvider", 851);
+ bcb(994, 1, ale, LTc);
+ _.Qe = function MTc(a) {
+ KTc(a);
+ };
+ var uTc, vTc, wTc, xTc, yTc, zTc, ATc, BTc, CTc, DTc, ETc, FTc, GTc, HTc, ITc;
+ mdb(_qe, "MrTreeOptions", 994);
+ bcb(995, 1, {}, NTc);
+ _.$e = function OTc() {
+ var a;
+ return a = new HRc(), a;
+ };
+ _._e = function PTc(a) {
+ };
+ mdb(_qe, "MrTreeOptions/MrtreeFactory", 995);
+ bcb(480, 22, { 3: 1, 35: 1, 22: 1, 480: 1 }, TTc);
+ var QTc, RTc;
+ var E$ = ndb(_qe, "OrderWeighting", 480, CI, VTc, UTc);
+ var WTc;
+ bcb(425, 22, { 3: 1, 35: 1, 22: 1, 425: 1 }, _Tc);
+ var YTc, ZTc;
+ var F$ = ndb(_qe, "TreeifyingOrder", 425, CI, bUc, aUc);
+ var cUc;
+ bcb(1459, 1, Bqe, lUc);
+ _.Yf = function mUc(a) {
+ return BD(a, 135), eUc;
+ };
+ _.pf = function nUc(a, b) {
+ kUc(this, BD(a, 135), b);
+ };
+ var eUc;
+ mdb("org.eclipse.elk.alg.mrtree.p1treeify", "DFSTreeifyer", 1459);
+ bcb(1460, 1, Bqe, sUc);
+ _.Yf = function tUc(a) {
+ return BD(a, 135), oUc;
+ };
+ _.pf = function uUc(a, b) {
+ rUc(this, BD(a, 135), b);
+ };
+ var oUc;
+ mdb("org.eclipse.elk.alg.mrtree.p2order", "NodeOrderer", 1460);
+ bcb(1461, 1, Bqe, CUc);
+ _.Yf = function DUc(a) {
+ return BD(a, 135), vUc;
+ };
+ _.pf = function EUc(a, b) {
+ AUc(this, BD(a, 135), b);
+ };
+ _.a = 0;
+ var vUc;
+ mdb("org.eclipse.elk.alg.mrtree.p3place", "NodePlacer", 1461);
+ bcb(1462, 1, Bqe, IUc);
+ _.Yf = function JUc(a) {
+ return BD(a, 135), FUc;
+ };
+ _.pf = function KUc(a, b) {
+ HUc(BD(a, 135), b);
+ };
+ var FUc;
+ mdb("org.eclipse.elk.alg.mrtree.p4route", "EdgeRouter", 1462);
+ var LUc;
+ bcb(495, 22, { 3: 1, 35: 1, 22: 1, 495: 1, 246: 1, 234: 1 }, RUc);
+ _.Kf = function TUc() {
+ return QUc(this);
+ };
+ _.Xf = function SUc() {
+ return QUc(this);
+ };
+ var NUc, OUc;
+ var K$ = ndb(cre, "RadialLayoutPhases", 495, CI, VUc, UUc);
+ var WUc;
+ bcb(1131, 209, Mle, ZUc);
+ _.Ze = function $Uc(a, b) {
+ var c, d, e, f, g, h;
+ c = YUc(this, a);
+ Odd(b, "Radial layout", c.c.length);
+ Ccb(DD(hkd(a, (ZWc(), QWc)))) || $Cb((d = new _Cb((Pgd(), new bhd(a))), d));
+ h = aVc(a);
+ jkd(a, (MUc(), LUc), h);
+ if (!h) {
+ throw vbb(new Wdb("The given graph is not a tree!"));
+ }
+ e = Edb(ED(hkd(a, VWc)));
+ e == 0 && (e = _Uc(a));
+ jkd(a, VWc, e);
+ for (g = new olb(YUc(this, a)); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 51);
+ f.pf(a, Udd(b, 1));
+ }
+ Qdd(b);
+ };
+ mdb(cre, "RadialLayoutProvider", 1131);
+ bcb(549, 1, Dke, jVc);
+ _.ue = function kVc(a, b) {
+ return iVc(this.a, this.b, BD(a, 33), BD(b, 33));
+ };
+ _.Fb = function lVc(a) {
+ return this === a;
+ };
+ _.ve = function mVc() {
+ return new tpb(this);
+ };
+ _.a = 0;
+ _.b = 0;
+ mdb(cre, "RadialUtil/lambda$0$Type", 549);
+ bcb(1375, 1, ene, oVc);
+ _.pf = function pVc(a, b) {
+ nVc(BD(a, 33), b);
+ };
+ mdb(fre, "CalculateGraphSize", 1375);
+ bcb(442, 22, { 3: 1, 35: 1, 22: 1, 442: 1, 234: 1 }, uVc);
+ _.Kf = function vVc() {
+ switch (this.g) {
+ case 0:
+ return new bWc();
+ case 1:
+ return new NVc();
+ case 2:
+ return new oVc();
+ default:
+ throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g)));
+ }
+ };
+ var qVc, rVc, sVc;
+ var O$ = ndb(fre, Ene, 442, CI, xVc, wVc);
+ var yVc;
+ bcb(645, 1, {});
+ _.e = 1;
+ _.g = 0;
+ mdb(gre, "AbstractRadiusExtensionCompaction", 645);
+ bcb(1772, 645, {}, KVc);
+ _.hg = function LVc(a) {
+ var b, c, d, e, f, g, h, i, j;
+ this.c = BD(hkd(a, (MUc(), LUc)), 33);
+ EVc(this, this.c);
+ this.d = tXc(BD(hkd(a, (ZWc(), WWc)), 293));
+ i = BD(hkd(a, KWc), 19);
+ !!i && DVc(this, i.a);
+ h = ED(hkd(a, (Y9c(), T9c)));
+ FVc(this, (uCb(h), h));
+ j = gVc(this.c);
+ !!this.d && this.d.lg(j);
+ GVc(this, j);
+ g = new amb(OC(GC(E2, 1), hre, 33, 0, [this.c]));
+ for (c = 0; c < 2; c++) {
+ for (b = 0; b < j.c.length; b++) {
+ e = new amb(OC(GC(E2, 1), hre, 33, 0, [(tCb(b, j.c.length), BD(j.c[b], 33))]));
+ f = b < j.c.length - 1 ? (tCb(b + 1, j.c.length), BD(j.c[b + 1], 33)) : (tCb(0, j.c.length), BD(j.c[0], 33));
+ d = b == 0 ? BD(Ikb(j, j.c.length - 1), 33) : (tCb(b - 1, j.c.length), BD(j.c[b - 1], 33));
+ IVc(this, (tCb(b, j.c.length), BD(j.c[b], 33), g), d, f, e);
+ }
+ }
+ };
+ mdb(gre, "AnnulusWedgeCompaction", 1772);
+ bcb(1374, 1, ene, NVc);
+ _.pf = function OVc(a, b) {
+ MVc(BD(a, 33), b);
+ };
+ mdb(gre, "GeneralCompactor", 1374);
+ bcb(1771, 645, {}, SVc);
+ _.hg = function TVc(a) {
+ var b, c, d, e;
+ c = BD(hkd(a, (MUc(), LUc)), 33);
+ this.f = c;
+ this.b = tXc(BD(hkd(a, (ZWc(), WWc)), 293));
+ e = BD(hkd(a, KWc), 19);
+ !!e && DVc(this, e.a);
+ d = ED(hkd(a, (Y9c(), T9c)));
+ FVc(this, (uCb(d), d));
+ b = gVc(c);
+ !!this.b && this.b.lg(b);
+ QVc(this, b);
+ };
+ _.a = 0;
+ mdb(gre, "RadialCompaction", 1771);
+ bcb(1779, 1, {}, VVc);
+ _.ig = function WVc(a) {
+ var b, c, d, e, f, g;
+ this.a = a;
+ b = 0;
+ g = gVc(a);
+ d = 0;
+ for (f = new olb(g); f.a < f.c.c.length; ) {
+ e = BD(mlb(f), 33);
+ ++d;
+ for (c = d; c < g.c.length; c++) {
+ UVc(this, e, (tCb(c, g.c.length), BD(g.c[c], 33))) && (b += 1);
+ }
+ }
+ return b;
+ };
+ mdb(ire, "CrossingMinimizationPosition", 1779);
+ bcb(1777, 1, {}, XVc);
+ _.ig = function YVc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n;
+ d = 0;
+ for (c = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 79);
+ h = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82));
+ j = h.i + h.g / 2;
+ k = h.j + h.f / 2;
+ e = a.i + a.g / 2;
+ f = a.j + a.f / 2;
+ l = new d7c();
+ l.a = j - e;
+ l.b = k - f;
+ g = new f7c(l.a, l.b);
+ l6c(g, a.g, a.f);
+ l.a -= g.a;
+ l.b -= g.b;
+ e = j - l.a;
+ f = k - l.b;
+ i = new f7c(l.a, l.b);
+ l6c(i, h.g, h.f);
+ l.a -= i.a;
+ l.b -= i.b;
+ j = e + l.a;
+ k = f + l.b;
+ m = j - e;
+ n = k - f;
+ d += $wnd.Math.sqrt(m * m + n * n);
+ }
+ return d;
+ };
+ mdb(ire, "EdgeLengthOptimization", 1777);
+ bcb(1778, 1, {}, ZVc);
+ _.ig = function $Vc(a) {
+ var b, c, d, e, f, g, h, i, j, k, l;
+ d = 0;
+ for (c = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c); ) {
+ b = BD(Rr(c), 79);
+ h = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82));
+ i = h.i + h.g / 2;
+ j = h.j + h.f / 2;
+ e = BD(hkd(h, (Y9c(), C9c)), 8);
+ f = a.i + e.a + a.g / 2;
+ g = a.j + e.b + a.f;
+ k = i - f;
+ l = j - g;
+ d += $wnd.Math.sqrt(k * k + l * l);
+ }
+ return d;
+ };
+ mdb(ire, "EdgeLengthPositionOptimization", 1778);
+ bcb(1373, 645, ene, bWc);
+ _.pf = function cWc(a, b) {
+ aWc(this, BD(a, 33), b);
+ };
+ mdb("org.eclipse.elk.alg.radial.intermediate.overlaps", "RadiusExtensionOverlapRemoval", 1373);
+ bcb(426, 22, { 3: 1, 35: 1, 22: 1, 426: 1 }, hWc);
+ var dWc, eWc;
+ var X$ = ndb(kre, "AnnulusWedgeCriteria", 426, CI, jWc, iWc);
+ var kWc;
+ bcb(380, 22, { 3: 1, 35: 1, 22: 1, 380: 1 }, rWc);
+ var mWc, nWc, oWc;
+ var Y$ = ndb(kre, Sle, 380, CI, tWc, sWc);
+ var uWc;
+ bcb(852, 1, ale, IWc);
+ _.Qe = function JWc(a) {
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lre), ""), "Order ID"), "The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."), meb(0)), (_5c(), X5c)), JI), pqb((N5c(), K5c)))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mre), ""), "Radius"), "The radius option can be used to set the initial radius for the radial layouter."), 0), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nre), ""), "Compaction"), "With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."), yWc), V5c), Y$), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ore), ""), "Compaction Step Size"), "Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."), meb(1)), X5c), JI), pqb(L5c))));
+ o4c(a, ore, nre, null);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pre), ""), "Sorter"), "Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."), EWc), V5c), b_), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qre), ""), "Annulus Wedge Criteria"), "Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."), GWc), V5c), X$), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rre), ""), "Translation Optimization"), "Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."), AWc), V5c), a_), pqb(L5c))));
+ $Wc((new _Wc(), a));
+ };
+ var wWc, xWc, yWc, zWc, AWc, BWc, CWc, DWc, EWc, FWc, GWc;
+ mdb(kre, "RadialMetaDataProvider", 852);
+ bcb(996, 1, ale, _Wc);
+ _.Qe = function aXc(a) {
+ $Wc(a);
+ };
+ var KWc, LWc, MWc, NWc, OWc, PWc, QWc, RWc, SWc, TWc, UWc, VWc, WWc, XWc, YWc;
+ mdb(kre, "RadialOptions", 996);
+ bcb(997, 1, {}, bXc);
+ _.$e = function cXc() {
+ var a;
+ return a = new ZUc(), a;
+ };
+ _._e = function dXc(a) {
+ };
+ mdb(kre, "RadialOptions/RadialFactory", 997);
+ bcb(340, 22, { 3: 1, 35: 1, 22: 1, 340: 1 }, kXc);
+ var eXc, fXc, gXc, hXc;
+ var a_ = ndb(kre, "RadialTranslationStrategy", 340, CI, mXc, lXc);
+ var nXc;
+ bcb(293, 22, { 3: 1, 35: 1, 22: 1, 293: 1 }, uXc);
+ var pXc, qXc, rXc;
+ var b_ = ndb(kre, "SortingStrategy", 293, CI, wXc, vXc);
+ var xXc;
+ bcb(1449, 1, Bqe, CXc);
+ _.Yf = function DXc(a) {
+ return BD(a, 33), null;
+ };
+ _.pf = function EXc(a, b) {
+ AXc(this, BD(a, 33), b);
+ };
+ _.c = 0;
+ mdb("org.eclipse.elk.alg.radial.p1position", "EadesRadial", 1449);
+ bcb(1775, 1, {}, FXc);
+ _.jg = function GXc(a) {
+ return eVc(a);
+ };
+ mdb(tre, "AnnulusWedgeByLeafs", 1775);
+ bcb(1776, 1, {}, IXc);
+ _.jg = function JXc(a) {
+ return HXc(this, a);
+ };
+ mdb(tre, "AnnulusWedgeByNodeSpace", 1776);
+ bcb(1450, 1, Bqe, MXc);
+ _.Yf = function NXc(a) {
+ return BD(a, 33), null;
+ };
+ _.pf = function OXc(a, b) {
+ KXc(this, BD(a, 33), b);
+ };
+ mdb("org.eclipse.elk.alg.radial.p2routing", "StraightLineEdgeRouter", 1450);
+ bcb(811, 1, {}, QXc);
+ _.kg = function RXc(a) {
+ };
+ _.lg = function TXc(a) {
+ PXc(this, a);
+ };
+ mdb(ure, "IDSorter", 811);
+ bcb(1774, 1, Dke, UXc);
+ _.ue = function VXc(a, b) {
+ return SXc(BD(a, 33), BD(b, 33));
+ };
+ _.Fb = function WXc(a) {
+ return this === a;
+ };
+ _.ve = function XXc() {
+ return new tpb(this);
+ };
+ mdb(ure, "IDSorter/lambda$0$Type", 1774);
+ bcb(1773, 1, {}, $Xc);
+ _.kg = function _Xc(a) {
+ YXc(this, a);
+ };
+ _.lg = function aYc(a) {
+ var b;
+ if (!a.dc()) {
+ if (!this.e) {
+ b = bVc(BD(a.Xb(0), 33));
+ YXc(this, b);
+ }
+ PXc(this.e, a);
+ }
+ };
+ mdb(ure, "PolarCoordinateSorter", 1773);
+ bcb(1136, 209, Mle, bYc);
+ _.Ze = function eYc(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F;
+ Odd(b, "Rectangle Packing", 1);
+ b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
+ c = Edb(ED(hkd(a, (lZc(), RYc))));
+ p = BD(hkd(a, eZc), 381);
+ s = Ccb(DD(hkd(a, ZYc)));
+ w = Ccb(DD(hkd(a, dZc)));
+ l = Ccb(DD(hkd(a, VYc)));
+ A = BD(hkd(a, fZc), 116);
+ v = Edb(ED(hkd(a, jZc)));
+ e = Ccb(DD(hkd(a, iZc)));
+ m = Ccb(DD(hkd(a, WYc)));
+ r = Ccb(DD(hkd(a, XYc)));
+ F = Edb(ED(hkd(a, kZc)));
+ C = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a);
+ r$c(C);
+ if (r) {
+ o2 = new Rkb();
+ for (i = new Fyd(C); i.e != i.i.gc(); ) {
+ g = BD(Dyd(i), 33);
+ ikd(g, UYc) && (o2.c[o2.c.length] = g, true);
+ }
+ for (j = new olb(o2); j.a < j.c.c.length; ) {
+ g = BD(mlb(j), 33);
+ Ftd(C, g);
+ }
+ mmb();
+ Okb(o2, new fYc());
+ for (k = new olb(o2); k.a < k.c.c.length; ) {
+ g = BD(mlb(k), 33);
+ B = BD(hkd(g, UYc), 19).a;
+ B = $wnd.Math.min(B, C.i);
+ vtd(C, B, g);
+ }
+ q = 0;
+ for (h = new Fyd(C); h.e != h.i.gc(); ) {
+ g = BD(Dyd(h), 33);
+ jkd(g, TYc, meb(q));
+ ++q;
+ }
+ }
+ u = rfd(a);
+ u.a -= A.b + A.c;
+ u.b -= A.d + A.a;
+ t = u.a;
+ if (F < 0 || F < u.a) {
+ n = new nYc(c, p, s);
+ f = jYc(n, C, v, A);
+ b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
+ } else {
+ f = new d$c(c, F, 0, (k$c(), j$c));
+ }
+ u.a += A.b + A.c;
+ u.b += A.d + A.a;
+ if (!w) {
+ r$c(C);
+ D = new DZc(c, l, m, e, v);
+ t = $wnd.Math.max(u.a, f.c);
+ f = CZc(D, C, t, u, b, a, A);
+ }
+ cYc(C, A);
+ Afd(a, f.c + (A.b + A.c), f.b + (A.d + A.a), false, true);
+ Ccb(DD(hkd(a, cZc))) || $Cb((d = new _Cb((Pgd(), new bhd(a))), d));
+ b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
+ Qdd(b);
+ };
+ mdb(yre, "RectPackingLayoutProvider", 1136);
+ bcb(1137, 1, Dke, fYc);
+ _.ue = function gYc(a, b) {
+ return dYc(BD(a, 33), BD(b, 33));
+ };
+ _.Fb = function hYc(a) {
+ return this === a;
+ };
+ _.ve = function iYc() {
+ return new tpb(this);
+ };
+ mdb(yre, "RectPackingLayoutProvider/lambda$0$Type", 1137);
+ bcb(1256, 1, {}, nYc);
+ _.a = 0;
+ _.c = false;
+ mdb(zre, "AreaApproximation", 1256);
+ var o_ = odb(zre, "BestCandidateFilter");
+ bcb(638, 1, { 526: 1 }, oYc);
+ _.mg = function pYc(a, b, c) {
+ var d, e, f, g, h, i;
+ i = new Rkb();
+ f = Pje;
+ for (h = new olb(a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 220);
+ f = $wnd.Math.min(f, (g.c + (c.b + c.c)) * (g.b + (c.d + c.a)));
+ }
+ for (e = new olb(a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 220);
+ (d.c + (c.b + c.c)) * (d.b + (c.d + c.a)) == f && (i.c[i.c.length] = d, true);
+ }
+ return i;
+ };
+ mdb(zre, "AreaFilter", 638);
+ bcb(639, 1, { 526: 1 }, qYc);
+ _.mg = function rYc(a, b, c) {
+ var d, e, f, g, h, i;
+ h = new Rkb();
+ i = Pje;
+ for (g = new olb(a); g.a < g.c.c.length; ) {
+ f = BD(mlb(g), 220);
+ i = $wnd.Math.min(i, $wnd.Math.abs((f.c + (c.b + c.c)) / (f.b + (c.d + c.a)) - b));
+ }
+ for (e = new olb(a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 220);
+ $wnd.Math.abs((d.c + (c.b + c.c)) / (d.b + (c.d + c.a)) - b) == i && (h.c[h.c.length] = d, true);
+ }
+ return h;
+ };
+ mdb(zre, "AspectRatioFilter", 639);
+ bcb(637, 1, { 526: 1 }, uYc);
+ _.mg = function vYc(a, b, c) {
+ var d, e, f, g, h, i;
+ i = new Rkb();
+ f = Qje;
+ for (h = new olb(a); h.a < h.c.c.length; ) {
+ g = BD(mlb(h), 220);
+ f = $wnd.Math.max(f, q$c(g.c + (c.b + c.c), g.b + (c.d + c.a), g.a));
+ }
+ for (e = new olb(a); e.a < e.c.c.length; ) {
+ d = BD(mlb(e), 220);
+ q$c(d.c + (c.b + c.c), d.b + (c.d + c.a), d.a) == f && (i.c[i.c.length] = d, true);
+ }
+ return i;
+ };
+ mdb(zre, "ScaleMeasureFilter", 637);
+ bcb(381, 22, { 3: 1, 35: 1, 22: 1, 381: 1 }, AYc);
+ var wYc, xYc, yYc;
+ var q_ = ndb(Are, "OptimizationGoal", 381, CI, CYc, BYc);
+ var DYc;
+ bcb(856, 1, ale, PYc);
+ _.Qe = function QYc(a) {
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bre), ""), "Optimization Goal"), "Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."), LYc), (_5c(), V5c)), q_), pqb((N5c(), K5c)))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cre), ""), "Shift Last Placed."), "When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."), (Bcb(), true)), T5c), wI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dre), ""), "Current position of a node in the order of nodes"), "The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."), meb(-1)), X5c), JI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ere), ""), "Desired index of node"), "The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."), meb(-1)), X5c), JI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fre), ""), "Only Area Approximation"), "If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place."), false), T5c), wI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Gre), ""), "Compact Rows"), "Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows."), true), T5c), wI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hre), ""), "Fit Aspect Ratio"), "Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion."), false), T5c), wI), pqb(K5c))));
+ o4c(a, Hre, Jre, null);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ire), ""), "Target Width"), "Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."), -1), U5c), BI), pqb(K5c))));
+ mZc((new nZc(), a));
+ };
+ var FYc, GYc, HYc, IYc, JYc, KYc, LYc, MYc, NYc;
+ mdb(Are, "RectPackingMetaDataProvider", 856);
+ bcb(1004, 1, ale, nZc);
+ _.Qe = function oZc(a) {
+ mZc(a);
+ };
+ var RYc, SYc, TYc, UYc, VYc, WYc, XYc, YYc, ZYc, $Yc, _Yc, aZc, bZc, cZc, dZc, eZc, fZc, gZc, hZc, iZc, jZc, kZc;
+ mdb(Are, "RectPackingOptions", 1004);
+ bcb(1005, 1, {}, pZc);
+ _.$e = function qZc() {
+ var a;
+ return a = new bYc(), a;
+ };
+ _._e = function rZc(a) {
+ };
+ mdb(Are, "RectPackingOptions/RectpackingFactory", 1005);
+ bcb(1257, 1, {}, DZc);
+ _.a = 0;
+ _.b = false;
+ _.c = 0;
+ _.d = 0;
+ _.e = false;
+ _.f = false;
+ _.g = 0;
+ mdb("org.eclipse.elk.alg.rectpacking.seconditeration", "RowFillingAndCompaction", 1257);
+ bcb(187, 1, { 187: 1 }, PZc);
+ _.a = 0;
+ _.c = false;
+ _.d = 0;
+ _.e = 0;
+ _.f = 0;
+ _.g = 0;
+ _.i = 0;
+ _.k = false;
+ _.o = Pje;
+ _.p = Pje;
+ _.r = 0;
+ _.s = 0;
+ _.t = 0;
+ mdb(Lre, "Block", 187);
+ bcb(211, 1, { 211: 1 }, VZc);
+ _.a = 0;
+ _.b = 0;
+ _.d = 0;
+ _.e = 0;
+ _.f = 0;
+ mdb(Lre, "BlockRow", 211);
+ bcb(443, 1, { 443: 1 }, b$c);
+ _.b = 0;
+ _.c = 0;
+ _.d = 0;
+ _.e = 0;
+ _.f = 0;
+ mdb(Lre, "BlockStack", 443);
+ bcb(220, 1, { 220: 1 }, d$c, e$c);
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ _.d = 0;
+ _.e = 0;
+ var z_ = mdb(Lre, "DrawingData", 220);
+ bcb(355, 22, { 3: 1, 35: 1, 22: 1, 355: 1 }, l$c);
+ var f$c, g$c, h$c, i$c, j$c;
+ var y_ = ndb(Lre, "DrawingDataDescriptor", 355, CI, n$c, m$c);
+ var o$c;
+ bcb(200, 1, { 200: 1 }, x$c);
+ _.b = 0;
+ _.c = 0;
+ _.e = 0;
+ _.f = 0;
+ mdb(Lre, "RectRow", 200);
+ bcb(756, 1, {}, F$c);
+ _.j = 0;
+ mdb(Nre, une, 756);
+ bcb(1245, 1, {}, G$c);
+ _.Je = function H$c(a) {
+ return S6c(a.a, a.b);
+ };
+ mdb(Nre, vne, 1245);
+ bcb(1246, 1, {}, I$c);
+ _.Je = function J$c(a) {
+ return A$c(this.a, a);
+ };
+ mdb(Nre, wne, 1246);
+ bcb(1247, 1, {}, K$c);
+ _.Je = function L$c(a) {
+ return B$c(this.a, a);
+ };
+ mdb(Nre, xne, 1247);
+ bcb(1248, 1, {}, M$c);
+ _.Je = function N$c(a) {
+ return C$c(this.a, a);
+ };
+ mdb(Nre, "ElkGraphImporter/lambda$3$Type", 1248);
+ bcb(1249, 1, {}, O$c);
+ _.Je = function P$c(a) {
+ return D$c(this.a, a);
+ };
+ mdb(Nre, yne, 1249);
+ bcb(1133, 209, Mle, Q$c);
+ _.Ze = function S$c(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n;
+ if (ikd(a, (d0c(), c0c))) {
+ n = GD(hkd(a, (J0c(), I0c)));
+ f = h4c(n4c(), n);
+ if (f) {
+ g = BD(hgd(f.f), 209);
+ g.Ze(a, Udd(b, 1));
+ }
+ }
+ jkd(a, Z_c, (C_c(), A_c));
+ jkd(a, $_c, (N_c(), K_c));
+ jkd(a, __c, (a1c(), _0c));
+ h = BD(hkd(a, (J0c(), E0c)), 19).a;
+ Odd(b, "Overlap removal", 1);
+ Ccb(DD(hkd(a, D0c))) && "null45scanlineOverlaps";
+ i = new Tqb();
+ j = new U$c(i);
+ d = new F$c();
+ c = z$c(d, a);
+ k = true;
+ e = 0;
+ while (e < h && k) {
+ if (Ccb(DD(hkd(a, F0c)))) {
+ i.a.$b();
+ cOb(new dOb(j), c.i);
+ if (i.a.gc() == 0) {
+ break;
+ }
+ c.e = i;
+ }
+ H2c(this.b);
+ K2c(this.b, (Y$c(), V$c), (R0c(), Q0c));
+ K2c(this.b, W$c, c.g);
+ K2c(this.b, X$c, (s_c(), r_c));
+ this.a = F2c(this.b, c);
+ for (m = new olb(this.a); m.a < m.c.c.length; ) {
+ l = BD(mlb(m), 51);
+ l.pf(c, Udd(b, 1));
+ }
+ E$c(d, c);
+ k = Ccb(DD(vNb(c, (XNb(), WNb))));
+ ++e;
+ }
+ y$c(d, c);
+ Qdd(b);
+ };
+ mdb(Nre, "OverlapRemovalLayoutProvider", 1133);
+ bcb(1134, 1, {}, U$c);
+ mdb(Nre, "OverlapRemovalLayoutProvider/lambda$0$Type", 1134);
+ bcb(437, 22, { 3: 1, 35: 1, 22: 1, 437: 1 }, Z$c);
+ var V$c, W$c, X$c;
+ var J_ = ndb(Nre, "SPOrEPhases", 437, CI, _$c, $$c);
+ var a_c;
+ bcb(1255, 1, {}, d_c);
+ mdb(Nre, "ShrinkTree", 1255);
+ bcb(1135, 209, Mle, e_c);
+ _.Ze = function f_c(a, b) {
+ var c, d, e, f, g;
+ if (ikd(a, (d0c(), c0c))) {
+ g = GD(hkd(a, c0c));
+ e = h4c(n4c(), g);
+ if (e) {
+ f = BD(hgd(e.f), 209);
+ f.Ze(a, Udd(b, 1));
+ }
+ }
+ d = new F$c();
+ c = z$c(d, a);
+ c_c(this.a, c, Udd(b, 1));
+ y$c(d, c);
+ };
+ mdb(Nre, "ShrinkTreeLayoutProvider", 1135);
+ bcb(300, 134, { 3: 1, 300: 1, 94: 1, 134: 1 }, g_c);
+ _.c = false;
+ mdb("org.eclipse.elk.alg.spore.graph", "Graph", 300);
+ bcb(482, 22, { 3: 1, 35: 1, 22: 1, 482: 1, 246: 1, 234: 1 }, k_c);
+ _.Kf = function m_c() {
+ return j_c(this);
+ };
+ _.Xf = function l_c() {
+ return j_c(this);
+ };
+ var h_c;
+ var N_ = ndb(Ore, Sle, 482, CI, o_c, n_c);
+ var p_c;
+ bcb(551, 22, { 3: 1, 35: 1, 22: 1, 551: 1, 246: 1, 234: 1 }, t_c);
+ _.Kf = function v_c() {
+ return new I1c();
+ };
+ _.Xf = function u_c() {
+ return new I1c();
+ };
+ var r_c;
+ var O_ = ndb(Ore, "OverlapRemovalStrategy", 551, CI, x_c, w_c);
+ var y_c;
+ bcb(430, 22, { 3: 1, 35: 1, 22: 1, 430: 1 }, D_c);
+ var A_c, B_c;
+ var P_ = ndb(Ore, "RootSelection", 430, CI, F_c, E_c);
+ var G_c;
+ bcb(316, 22, { 3: 1, 35: 1, 22: 1, 316: 1 }, O_c);
+ var I_c, J_c, K_c, L_c, M_c;
+ var Q_ = ndb(Ore, "SpanningTreeCostFunction", 316, CI, Q_c, P_c);
+ var R_c;
+ bcb(1002, 1, ale, f0c);
+ _.Qe = function g0c(a) {
+ e0c(a);
+ };
+ var T_c, U_c, V_c, W_c, X_c, Y_c, Z_c, $_c, __c, a0c, b0c, c0c;
+ mdb(Ore, "SporeCompactionOptions", 1002);
+ bcb(1003, 1, {}, h0c);
+ _.$e = function i0c() {
+ var a;
+ return a = new e_c(), a;
+ };
+ _._e = function j0c(a) {
+ };
+ mdb(Ore, "SporeCompactionOptions/SporeCompactionFactory", 1003);
+ bcb(855, 1, ale, B0c);
+ _.Qe = function C0c(a) {
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Qre), ""), "Underlying Layout Algorithm"), "A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."), (_5c(), Z5c)), ZI), pqb((N5c(), L5c)))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Vre), "structure"), "Structure Extraction Strategy"), "This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."), y0c), V5c), W_), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Rre), $re), "Tree Construction Strategy"), "Whether a minimum spanning tree or a maximum spanning tree should be constructed."), w0c), V5c), X_), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Sre), $re), "Cost Function for Spanning Tree"), "The cost function is used in the creation of the spanning tree."), u0c), V5c), Q_), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tre), $re), "Root node for spanning tree construction"), "The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."), null), Z5c), ZI), pqb(L5c))));
+ o4c(a, Tre, Ure, q0c);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ure), $re), "Root selection for spanning tree"), "This sets the method used to select a root node for the construction of a spanning tree"), s0c), V5c), P_), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Wre), Bpe), "Compaction Strategy"), "This option defines how the compaction is applied."), l0c), V5c), N_), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xre), Bpe), "Orthogonal Compaction"), "Restricts the translation of nodes to orthogonal directions in the compaction phase."), (Bcb(), false)), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yre), _re), "Upper limit for iterations of overlap removal"), null), meb(64)), X5c), JI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zre), _re), "Whether to run a supplementary scanline overlap check."), null), true), T5c), wI), pqb(L5c))));
+ K0c((new L0c(), a));
+ e0c((new f0c(), a));
+ };
+ var k0c, l0c, m0c, n0c, o0c, p0c, q0c, r0c, s0c, t0c, u0c, v0c, w0c, x0c, y0c, z0c;
+ mdb(Ore, "SporeMetaDataProvider", 855);
+ bcb(_ie, 1, ale, L0c);
+ _.Qe = function M0c(a) {
+ K0c(a);
+ };
+ var D0c, E0c, F0c, G0c, H0c, I0c;
+ mdb(Ore, "SporeOverlapRemovalOptions", _ie);
+ bcb(1001, 1, {}, N0c);
+ _.$e = function O0c() {
+ var a;
+ return a = new Q$c(), a;
+ };
+ _._e = function P0c(a) {
+ };
+ mdb(Ore, "SporeOverlapRemovalOptions/SporeOverlapFactory", 1001);
+ bcb(530, 22, { 3: 1, 35: 1, 22: 1, 530: 1, 246: 1, 234: 1 }, T0c);
+ _.Kf = function V0c() {
+ return S0c(this);
+ };
+ _.Xf = function U0c() {
+ return S0c(this);
+ };
+ var Q0c;
+ var W_ = ndb(Ore, "StructureExtractionStrategy", 530, CI, X0c, W0c);
+ var Y0c;
+ bcb(429, 22, { 3: 1, 35: 1, 22: 1, 429: 1, 246: 1, 234: 1 }, c1c);
+ _.Kf = function e1c() {
+ return b1c(this);
+ };
+ _.Xf = function d1c() {
+ return b1c(this);
+ };
+ var $0c, _0c;
+ var X_ = ndb(Ore, "TreeConstructionStrategy", 429, CI, g1c, f1c);
+ var h1c;
+ bcb(1443, 1, Bqe, k1c);
+ _.Yf = function l1c(a) {
+ return BD(a, 300), new j3c();
+ };
+ _.pf = function m1c(a, b) {
+ j1c(BD(a, 300), b);
+ };
+ mdb(bse, "DelaunayTriangulationPhase", 1443);
+ bcb(1444, 1, qie, n1c);
+ _.td = function o1c(a) {
+ Ekb(this.a, BD(a, 65).a);
+ };
+ mdb(bse, "DelaunayTriangulationPhase/lambda$0$Type", 1444);
+ bcb(783, 1, Bqe, s1c);
+ _.Yf = function t1c(a) {
+ return BD(a, 300), new j3c();
+ };
+ _.pf = function u1c(a, b) {
+ this.ng(BD(a, 300), b);
+ };
+ _.ng = function v1c(a, b) {
+ var c, d, e;
+ Odd(b, "Minimum spanning tree construction", 1);
+ a.d ? d = a.d.a : d = BD(Ikb(a.i, 0), 65).a;
+ Ccb(DD(vNb(a, (XNb(), VNb)))) ? e = UCb(a.e, d, (c = a.b, c)) : e = UCb(a.e, d, a.b);
+ q1c(this, e, a);
+ Qdd(b);
+ };
+ mdb(cse, "MinSTPhase", 783);
+ bcb(1446, 783, Bqe, w1c);
+ _.ng = function y1c(a, b) {
+ var c, d, e, f;
+ Odd(b, "Maximum spanning tree construction", 1);
+ c = new z1c(a);
+ a.d ? e = a.d.c : e = BD(Ikb(a.i, 0), 65).c;
+ Ccb(DD(vNb(a, (XNb(), VNb)))) ? f = UCb(a.e, e, (d = c, d)) : f = UCb(a.e, e, c);
+ q1c(this, f, a);
+ Qdd(b);
+ };
+ mdb(cse, "MaxSTPhase", 1446);
+ bcb(1447, 1, {}, z1c);
+ _.Je = function A1c(a) {
+ return x1c(this.a, a);
+ };
+ mdb(cse, "MaxSTPhase/lambda$0$Type", 1447);
+ bcb(1445, 1, qie, B1c);
+ _.td = function C1c(a) {
+ r1c(this.a, BD(a, 65));
+ };
+ mdb(cse, "MinSTPhase/lambda$0$Type", 1445);
+ bcb(785, 1, Bqe, I1c);
+ _.Yf = function J1c(a) {
+ return BD(a, 300), new j3c();
+ };
+ _.pf = function K1c(a, b) {
+ H1c(this, BD(a, 300), b);
+ };
+ _.a = false;
+ mdb(dse, "GrowTreePhase", 785);
+ bcb(786, 1, qie, L1c);
+ _.td = function M1c(a) {
+ G1c(this.a, this.b, this.c, BD(a, 221));
+ };
+ mdb(dse, "GrowTreePhase/lambda$0$Type", 786);
+ bcb(1448, 1, Bqe, Q1c);
+ _.Yf = function R1c(a) {
+ return BD(a, 300), new j3c();
+ };
+ _.pf = function S1c(a, b) {
+ P1c(this, BD(a, 300), b);
+ };
+ mdb(dse, "ShrinkTreeCompactionPhase", 1448);
+ bcb(784, 1, qie, T1c);
+ _.td = function U1c(a) {
+ O1c(this.a, this.b, this.c, BD(a, 221));
+ };
+ mdb(dse, "ShrinkTreeCompactionPhase/lambda$0$Type", 784);
+ var g2 = odb(yqe, "IGraphElementVisitor");
+ bcb(860, 1, { 527: 1 }, b2c);
+ _.og = function e2c(a) {
+ var b;
+ b = a2c(this, a);
+ tNb(b, BD(Ohb(this.b, a), 94));
+ $1c(this, a, b);
+ };
+ var V1c, W1c;
+ mdb(Nle, "LayoutConfigurator", 860);
+ var h0 = odb(Nle, "LayoutConfigurator/IPropertyHolderOptionFilter");
+ bcb(932, 1, { 1933: 1 }, f2c);
+ _.pg = function g2c(a, b) {
+ return Y1c(), !a.Xe(b);
+ };
+ mdb(Nle, "LayoutConfigurator/lambda$0$Type", 932);
+ bcb(933, 1, { 1933: 1 }, i2c);
+ _.pg = function j2c(a, b) {
+ return h2c(a, b);
+ };
+ mdb(Nle, "LayoutConfigurator/lambda$1$Type", 933);
+ bcb(931, 1, { 831: 1 }, k2c);
+ _.qg = function l2c(a, b) {
+ return Y1c(), !a.Xe(b);
+ };
+ mdb(Nle, "LayoutConfigurator/lambda$2$Type", 931);
+ bcb(934, 1, Oie, m2c);
+ _.Mb = function n2c(a) {
+ return d2c(this.a, this.b, BD(a, 1933));
+ };
+ mdb(Nle, "LayoutConfigurator/lambda$3$Type", 934);
+ bcb(858, 1, {}, w2c);
+ mdb(Nle, "RecursiveGraphLayoutEngine", 858);
+ bcb(296, 60, Tie, x2c, y2c);
+ mdb(Nle, "UnsupportedConfigurationException", 296);
+ bcb(453, 60, Tie, z2c);
+ mdb(Nle, "UnsupportedGraphException", 453);
+ bcb(754, 1, {});
+ mdb(yqe, "AbstractRandomListAccessor", 754);
+ bcb(500, 754, {}, L2c);
+ _.rg = function N2c() {
+ return null;
+ };
+ _.d = true;
+ _.e = true;
+ _.f = 0;
+ mdb(fse, "AlgorithmAssembler", 500);
+ bcb(1236, 1, Oie, O2c);
+ _.Mb = function P2c(a) {
+ return !!BD(a, 123);
+ };
+ mdb(fse, "AlgorithmAssembler/lambda$0$Type", 1236);
+ bcb(1237, 1, {}, Q2c);
+ _.Kb = function R2c(a) {
+ return M2c(this.a, BD(a, 123));
+ };
+ mdb(fse, "AlgorithmAssembler/lambda$1$Type", 1237);
+ bcb(1238, 1, Oie, S2c);
+ _.Mb = function T2c(a) {
+ return !!BD(a, 80);
+ };
+ mdb(fse, "AlgorithmAssembler/lambda$2$Type", 1238);
+ bcb(1239, 1, qie, U2c);
+ _.td = function V2c(a) {
+ d3c(this.a, BD(a, 80));
+ };
+ mdb(fse, "AlgorithmAssembler/lambda$3$Type", 1239);
+ bcb(1240, 1, qie, W2c);
+ _.td = function X2c(a) {
+ G2c(this.a, this.b, BD(a, 234));
+ };
+ mdb(fse, "AlgorithmAssembler/lambda$4$Type", 1240);
+ bcb(1355, 1, Dke, Z2c);
+ _.ue = function $2c(a, b) {
+ return Y2c(BD(a, 234), BD(b, 234));
+ };
+ _.Fb = function _2c(a) {
+ return this === a;
+ };
+ _.ve = function a3c() {
+ return new tpb(this);
+ };
+ mdb(fse, "EnumBasedFactoryComparator", 1355);
+ bcb(80, 754, { 80: 1 }, j3c);
+ _.rg = function l3c() {
+ return new Tqb();
+ };
+ _.a = 0;
+ mdb(fse, "LayoutProcessorConfiguration", 80);
+ bcb(1013, 1, { 527: 1 }, q3c);
+ _.og = function u3c(a) {
+ stb(n3c, new z3c(a));
+ };
+ var m3c, n3c, o3c;
+ mdb(Xke, "DeprecatedLayoutOptionReplacer", 1013);
+ bcb(1014, 1, qie, v3c);
+ _.td = function w3c(a) {
+ r3c(BD(a, 160));
+ };
+ mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$0$Type", 1014);
+ bcb(1015, 1, qie, x3c);
+ _.td = function y3c(a) {
+ s3c(BD(a, 160));
+ };
+ mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$1$Type", 1015);
+ bcb(1016, 1, {}, z3c);
+ _.Od = function A3c(a, b) {
+ t3c(this.a, BD(a, 146), BD(b, 38));
+ };
+ mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$2$Type", 1016);
+ bcb(149, 1, { 686: 1, 149: 1 }, E3c);
+ _.Fb = function F3c(a) {
+ return C3c(this, a);
+ };
+ _.sg = function G3c() {
+ return this.b;
+ };
+ _.tg = function H3c() {
+ return this.c;
+ };
+ _.ne = function I3c() {
+ return this.e;
+ };
+ _.Hb = function J3c() {
+ return LCb(this.c);
+ };
+ _.Ib = function K3c() {
+ return "Layout Algorithm: " + this.c;
+ };
+ var E0 = mdb(Xke, "LayoutAlgorithmData", 149);
+ bcb(263, 1, {}, R3c);
+ mdb(Xke, "LayoutAlgorithmData/Builder", 263);
+ bcb(1017, 1, { 527: 1 }, U3c);
+ _.og = function V3c(a) {
+ JD(a, 239) && !Ccb(DD(a.We((Y9c(), d9c)))) && S3c(BD(a, 33));
+ };
+ mdb(Xke, "LayoutAlgorithmResolver", 1017);
+ bcb(229, 1, { 686: 1, 229: 1 }, W3c);
+ _.Fb = function X3c(a) {
+ if (JD(a, 229)) {
+ return dfb(this.b, BD(a, 229).b);
+ }
+ return false;
+ };
+ _.sg = function Y3c() {
+ return this.a;
+ };
+ _.tg = function Z3c() {
+ return this.b;
+ };
+ _.ne = function $3c() {
+ return this.d;
+ };
+ _.Hb = function _3c() {
+ return LCb(this.b);
+ };
+ _.Ib = function a4c() {
+ return "Layout Type: " + this.b;
+ };
+ mdb(Xke, "LayoutCategoryData", 229);
+ bcb(344, 1, {}, e4c);
+ mdb(Xke, "LayoutCategoryData/Builder", 344);
+ bcb(867, 1, {}, m4c);
+ var f4c;
+ mdb(Xke, "LayoutMetaDataService", 867);
+ bcb(868, 1, {}, v4c);
+ mdb(Xke, "LayoutMetaDataService/Registry", 868);
+ bcb(478, 1, { 478: 1 }, w4c);
+ mdb(Xke, "LayoutMetaDataService/Registry/Triple", 478);
+ bcb(869, 1, gse, x4c);
+ _.ug = function y4c() {
+ return new d7c();
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$0$Type", 869);
+ bcb(870, 1, hse, z4c);
+ _.vg = function A4c(a) {
+ return R6c(BD(a, 8));
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$1$Type", 870);
+ bcb(879, 1, gse, B4c);
+ _.ug = function C4c() {
+ return new Rkb();
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$10$Type", 879);
+ bcb(880, 1, hse, D4c);
+ _.vg = function E4c(a) {
+ return new Tkb(BD(a, 12));
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$11$Type", 880);
+ bcb(881, 1, gse, F4c);
+ _.ug = function G4c() {
+ return new Psb();
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$12$Type", 881);
+ bcb(882, 1, hse, H4c);
+ _.vg = function I4c(a) {
+ return Ru(BD(a, 68));
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$13$Type", 882);
+ bcb(883, 1, gse, J4c);
+ _.ug = function K4c() {
+ return new Tqb();
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$14$Type", 883);
+ bcb(884, 1, hse, L4c);
+ _.vg = function M4c(a) {
+ return Dx(BD(a, 53));
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$15$Type", 884);
+ bcb(885, 1, gse, N4c);
+ _.ug = function O4c() {
+ return new zsb();
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$16$Type", 885);
+ bcb(886, 1, hse, P4c);
+ _.vg = function Q4c(a) {
+ return Gx(BD(a, 53));
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$17$Type", 886);
+ bcb(887, 1, gse, R4c);
+ _.ug = function S4c() {
+ return new Gxb();
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$18$Type", 887);
+ bcb(888, 1, hse, T4c);
+ _.vg = function U4c(a) {
+ return Hx(BD(a, 208));
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$19$Type", 888);
+ bcb(871, 1, gse, V4c);
+ _.ug = function W4c() {
+ return new s7c();
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$2$Type", 871);
+ bcb(872, 1, hse, X4c);
+ _.vg = function Y4c(a) {
+ return new t7c(BD(a, 74));
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$3$Type", 872);
+ bcb(873, 1, gse, Z4c);
+ _.ug = function $4c() {
+ return new H_b();
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$4$Type", 873);
+ bcb(874, 1, hse, _4c);
+ _.vg = function a5c(a) {
+ return new K_b(BD(a, 142));
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$5$Type", 874);
+ bcb(875, 1, gse, b5c);
+ _.ug = function c5c() {
+ return new p0b();
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$6$Type", 875);
+ bcb(876, 1, hse, d5c);
+ _.vg = function e5c(a) {
+ return new r0b(BD(a, 116));
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$7$Type", 876);
+ bcb(877, 1, gse, f5c);
+ _.ug = function g5c() {
+ return new _fd();
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$8$Type", 877);
+ bcb(878, 1, hse, h5c);
+ _.vg = function i5c(a) {
+ return new agd(BD(a, 373));
+ };
+ mdb(Xke, "LayoutMetaDataService/lambda$9$Type", 878);
+ var Q3 = odb(Hle, "IProperty");
+ bcb(23, 1, { 35: 1, 686: 1, 23: 1, 146: 1 }, p5c);
+ _.wd = function q5c(a) {
+ return k5c(this, BD(a, 146));
+ };
+ _.Fb = function r5c(a) {
+ return JD(a, 23) ? dfb(this.f, BD(a, 23).f) : JD(a, 146) && dfb(this.f, BD(a, 146).tg());
+ };
+ _.wg = function s5c() {
+ var a;
+ if (JD(this.b, 4)) {
+ a = fvd(this.b);
+ if (a == null) {
+ throw vbb(new Zdb(mse + this.f + "'. Make sure it's type is registered with the " + (fdb(Y3), Y3.k) + jse));
+ }
+ return a;
+ } else {
+ return this.b;
+ }
+ };
+ _.sg = function t5c() {
+ return this.d;
+ };
+ _.tg = function u5c() {
+ return this.f;
+ };
+ _.ne = function v5c() {
+ return this.i;
+ };
+ _.Hb = function w5c() {
+ return LCb(this.f);
+ };
+ _.Ib = function x5c() {
+ return "Layout Option: " + this.f;
+ };
+ mdb(Xke, "LayoutOptionData", 23);
+ bcb(24, 1, {}, H5c);
+ mdb(Xke, "LayoutOptionData/Builder", 24);
+ bcb(175, 22, { 3: 1, 35: 1, 22: 1, 175: 1 }, O5c);
+ var I5c, J5c, K5c, L5c, M5c;
+ var e1 = ndb(Xke, "LayoutOptionData/Target", 175, CI, Q5c, P5c);
+ var R5c;
+ bcb(277, 22, { 3: 1, 35: 1, 22: 1, 277: 1 }, a6c);
+ var T5c, U5c, V5c, W5c, X5c, Y5c, Z5c, $5c;
+ var f1 = ndb(Xke, "LayoutOptionData/Type", 277, CI, c6c, b6c);
+ var d6c;
+ var f6c;
+ var h6c;
+ bcb(110, 1, { 110: 1 }, I6c, J6c, K6c);
+ _.Fb = function L6c(a) {
+ var b;
+ if (a == null || !JD(a, 110)) {
+ return false;
+ }
+ b = BD(a, 110);
+ return wtb(this.c, b.c) && wtb(this.d, b.d) && wtb(this.b, b.b) && wtb(this.a, b.a);
+ };
+ _.Hb = function M6c() {
+ return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.c, this.d, this.b, this.a]));
+ };
+ _.Ib = function N6c() {
+ return "Rect[x=" + this.c + ",y=" + this.d + ",w=" + this.b + ",h=" + this.a + "]";
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ _.d = 0;
+ mdb(pne, "ElkRectangle", 110);
+ bcb(8, 1, { 3: 1, 4: 1, 8: 1, 414: 1 }, d7c, e7c, f7c, g7c);
+ _.Fb = function h7c(a) {
+ return T6c(this, a);
+ };
+ _.Hb = function i7c() {
+ return Hdb(this.a) + jeb(Hdb(this.b));
+ };
+ _.Jf = function k7c(b) {
+ var c, d, e, f;
+ e = 0;
+ while (e < b.length && j7c((BCb(e, b.length), b.charCodeAt(e)), mne)) {
+ ++e;
+ }
+ c = b.length;
+ while (c > 0 && j7c((BCb(c - 1, b.length), b.charCodeAt(c - 1)), nne)) {
+ --c;
+ }
+ if (e >= c) {
+ throw vbb(new Wdb("The given string does not contain any numbers."));
+ }
+ f = mfb(b.substr(e, c - e), ",|;|\r|\n");
+ if (f.length != 2) {
+ throw vbb(new Wdb("Exactly two numbers are expected, " + f.length + " were found."));
+ }
+ try {
+ this.a = Hcb(ufb(f[0]));
+ this.b = Hcb(ufb(f[1]));
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ d = a;
+ throw vbb(new Wdb(one + d));
+ } else
+ throw vbb(a);
+ }
+ };
+ _.Ib = function m7c() {
+ return "(" + this.a + "," + this.b + ")";
+ };
+ _.a = 0;
+ _.b = 0;
+ var m1 = mdb(pne, "KVector", 8);
+ bcb(74, 68, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 68: 1, 15: 1, 74: 1, 414: 1 }, s7c, t7c, u7c);
+ _.Pc = function x7c() {
+ return r7c(this);
+ };
+ _.Jf = function v7c(b) {
+ var c, d, e, f, g, h;
+ e = mfb(b, ",|;|\\(|\\)|\\[|\\]|\\{|\\}| | |\n");
+ Osb(this);
+ try {
+ d = 0;
+ g = 0;
+ f = 0;
+ h = 0;
+ while (d < e.length) {
+ if (e[d] != null && ufb(e[d]).length > 0) {
+ g % 2 == 0 ? f = Hcb(e[d]) : h = Hcb(e[d]);
+ g > 0 && g % 2 != 0 && Dsb(this, new f7c(f, h));
+ ++g;
+ }
+ ++d;
+ }
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 127)) {
+ c = a;
+ throw vbb(new Wdb("The given string does not match the expected format for vectors." + c));
+ } else
+ throw vbb(a);
+ }
+ };
+ _.Ib = function y7c() {
+ var a, b, c;
+ a = new Wfb("(");
+ b = Jsb(this, 0);
+ while (b.b != b.d.c) {
+ c = BD(Xsb(b), 8);
+ Qfb(a, c.a + "," + c.b);
+ b.b != b.d.c && (a.a += "; ", a);
+ }
+ return (a.a += ")", a).a;
+ };
+ var l1 = mdb(pne, "KVectorChain", 74);
+ bcb(248, 22, { 3: 1, 35: 1, 22: 1, 248: 1 }, G7c);
+ var z7c, A7c, B7c, C7c, D7c, E7c;
+ var o1 = ndb(ose, "Alignment", 248, CI, I7c, H7c);
+ var J7c;
+ bcb(979, 1, ale, Z7c);
+ _.Qe = function $7c(a) {
+ Y7c(a);
+ };
+ var L7c, M7c, N7c, O7c, P7c, Q7c, R7c, S7c, T7c, U7c, V7c, W7c;
+ mdb(ose, "BoxLayouterOptions", 979);
+ bcb(980, 1, {}, _7c);
+ _.$e = function a8c() {
+ var a;
+ return a = new ged(), a;
+ };
+ _._e = function b8c(a) {
+ };
+ mdb(ose, "BoxLayouterOptions/BoxFactory", 980);
+ bcb(291, 22, { 3: 1, 35: 1, 22: 1, 291: 1 }, j8c);
+ var c8c, d8c, e8c, f8c, g8c, h8c;
+ var r1 = ndb(ose, "ContentAlignment", 291, CI, l8c, k8c);
+ var m8c;
+ bcb(684, 1, ale, Z9c);
+ _.Qe = function $9c(a) {
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), sse), ""), "Layout Algorithm"), "Select a specific layout algorithm."), (_5c(), Z5c)), ZI), pqb((N5c(), L5c)))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), tse), ""), "Resolved Layout Algorithm"), "Meta data associated with the selected algorithm."), Y5c), E0), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $pe), ""), "Alignment"), "Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."), q8c), V5c), o1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), _le), ""), "Aspect Ratio"), "The desired aspect ratio of the drawing, that is the quotient of width by height."), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), use), ""), "Bend Points"), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), Y5c), l1), pqb(I5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lqe), ""), "Content Alignment"), "Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."), x8c), W5c), r1), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zpe), ""), "Debug Mode"), "Whether additional debug information shall be generated."), (Bcb(), false)), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), cqe), ""), Cle), "Overall direction of edges: horizontal (right / left) or vertical (down / up)."), A8c), V5c), t1), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ype), ""), "Edge Routing"), "What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."), F8c), V5c), v1), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Jre), ""), "Expand Nodes"), "If active, nodes are expanded to fill the area of their parent."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), tpe), ""), "Hierarchy Handling"), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), K8c), V5c), z1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ame), ""), "Padding"), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), g9c), Y5c), j1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ame), ""), "Interactive"), "Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xqe), ""), "interactive Layout"), "Whether the graph should be changeable interactively and by setting constraints"), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dme), ""), "Omit Node Micro Layout"), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bme), ""), "Port Constraints"), "Defines constraints of the position of the ports of a node."), u9c), V5c), D1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), uqe), ""), "Position"), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), Y5c), m1), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [M5c, J5c])))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), vme), ""), "Priority"), "Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."), X5c), JI), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c])))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), yme), ""), "Randomization Seed"), "Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."), X5c), JI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), zme), ""), "Separate Connected Components"), "Whether each connected component should be processed separately."), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mqe), ""), "Junction Points"), "This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."), R8c), Y5c), l1), pqb(I5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pqe), ""), "Comment Box"), "Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."), false), T5c), wI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qqe), ""), "Hypernode"), "Whether the node should be handled as a hypernode."), false), T5c), wI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), vse), ""), "Label Manager"), "Label managers can shorten labels upon a layout algorithm's request."), Y5c), h1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [J5c])))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), vqe), ""), "Margins"), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), T8c), Y5c), i1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xpe), ""), "No Layout"), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), false), T5c), wI), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c, M5c, J5c])))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wse), ""), "Scale Factor"), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), U5c), BI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xse), ""), "Animate"), "Whether the shift from the old layout to the new computed layout shall be animated."), true), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), yse), ""), "Animation Time Factor"), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), meb(100)), X5c), JI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), zse), ""), "Layout Ancestors"), "Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ase), ""), "Maximal Animation Time"), "The maximal time for animations, in milliseconds."), meb(4e3)), X5c), JI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bse), ""), "Minimal Animation Time"), "The minimal time for animations, in milliseconds."), meb(400)), X5c), JI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cse), ""), "Progress Bar"), "Whether a progress bar shall be displayed during layout computations."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dse), ""), "Validate Graph"), "Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ese), ""), "Validate Options"), "Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), true), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fse), ""), "Zoom to Fit"), "Whether the zoom level shall be set to view the whole diagram after layout."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rse), "box"), "Box Layout Mode"), "Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."), u8c), V5c), O1), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Lpe), zpe), "Comment Comment Spacing"), "Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."), 10), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Mpe), zpe), "Comment Node Spacing"), "Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."), 10), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zle), zpe), "Components Spacing"), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Npe), zpe), "Edge Spacing"), "Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."), 10), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xme), zpe), "Edge Label Spacing"), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ope), zpe), "Edge Node Spacing"), "Spacing to be preserved between nodes and edges."), 10), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ppe), zpe), "Label Spacing"), "Determines the amount of space to be left between two labels of the same graph element."), 0), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Spe), zpe), "Label Node Spacing"), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qpe), zpe), "Horizontal spacing between Label and Port"), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Rpe), zpe), "Vertical spacing between Label and Port"), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wme), zpe), "Node Spacing"), "The minimal distance to be preserved between each two nodes."), 20), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tpe), zpe), "Node Self Loop Spacing"), "Spacing to be preserved between a node and its self loops."), 10), U5c), BI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Upe), zpe), "Port Spacing"), "Spacing between pairs of ports of the same node."), 10), U5c), BI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Vpe), zpe), "Individual Spacing"), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), Y5c), i2), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c, M5c, J5c])))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wqe), zpe), "Additional Port Space"), "Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."), W9c), Y5c), i1), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), tqe), Jse), "Layout Partition"), "Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."), X5c), JI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
+ o4c(a, tqe, sqe, k9c);
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), sqe), Jse), "Layout Partitioning"), "Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."), i9c), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), dqe), Kse), "Node Label Padding"), "Define padding for node labels that are placed inside of a node."), V8c), Y5c), j1), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Gme), Kse), "Node Label Placement"), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), X8c), W5c), B1), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [J5c])))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), gqe), Lse), "Port Alignment"), "Defines the default port distribution for a node. May be overridden for each side individually."), m9c), V5c), C1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), hqe), Lse), "Port Alignment (North)"), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), iqe), Lse), "Port Alignment (South)"), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), jqe), Lse), "Port Alignment (West)"), "Defines how ports on the western side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), kqe), Lse), "Port Alignment (East)"), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fme), Mse), "Node Size Constraints"), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), Z8c), W5c), I1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Eme), Mse), "Node Size Options"), "Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."), c9c), W5c), J1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tme), Mse), "Node Size Minimum"), "The minimal size to which a node can be reduced."), a9c), Y5c), m1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), bqe), Mse), "Fixed Graph Size"), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), false), T5c), wI), pqb(L5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nqe), Jpe), "Edge Label Placement"), "Gives a hint on where to put edge labels."), D8c), V5c), u1), pqb(J5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cme), Jpe), "Inline Edge Labels"), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), false), T5c), wI), pqb(J5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Gse), "font"), "Font Name"), "Font name used for a label."), Z5c), ZI), pqb(J5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Hse), "font"), "Font Size"), "Font size used for a label."), X5c), JI), pqb(J5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), rqe), Nse), "Port Anchor Offset"), "The offset to the port position where connections shall be attached."), Y5c), m1), pqb(M5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), oqe), Nse), "Port Index"), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), X5c), JI), pqb(M5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ype), Nse), "Port Side"), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), B9c), V5c), F1), pqb(M5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Wpe), Nse), "Port Border Offset"), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), U5c), BI), pqb(M5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hme), Ose), "Port Label Placement"), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), y9c), W5c), E1), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), eqe), Ose), "Port Labels Next to Port"), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), false), T5c), wI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), fqe), Ose), "Treat Port Labels as Group"), "If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."), true), T5c), wI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _pe), Pse), "Activate Inside Self Loops"), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), false), T5c), wI), pqb(K5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), aqe), Pse), "Inside Self Loop"), "Whether a self loop should be routed inside a node instead of around that node."), false), T5c), wI), pqb(I5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $le), "edge"), "Edge Thickness"), "The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."), 1), U5c), BI), pqb(I5c))));
+ t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ise), "edge"), "Edge Type"), "The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."), H8c), V5c), w1), pqb(I5c))));
+ s4c(a, new W3c(b4c(d4c(c4c(new e4c(), sne), "Layered"), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));
+ s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.orthogonal"), "Orthogonal"), `Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`)));
+ s4c(a, new W3c(b4c(d4c(c4c(new e4c(), ume), "Force"), "Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.")));
+ s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.circle"), "Circle"), "Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.")));
+ s4c(a, new W3c(b4c(d4c(c4c(new e4c(), bre), "Tree"), "Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.")));
+ s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.planar"), "Planar"), "Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.")));
+ s4c(a, new W3c(b4c(d4c(c4c(new e4c(), sre), "Radial"), "Radial layout algorithms usually position the nodes of the graph on concentric circles.")));
+ $ad((new _ad(), a));
+ Y7c((new Z7c(), a));
+ jdd((new kdd(), a));
+ };
+ var o8c, p8c, q8c, r8c, s8c, t8c, u8c, v8c, w8c, x8c, y8c, z8c, A8c, B8c, C8c, D8c, E8c, F8c, G8c, H8c, I8c, J8c, K8c, L8c, M8c, N8c, O8c, P8c, Q8c, R8c, S8c, T8c, U8c, V8c, W8c, X8c, Y8c, Z8c, $8c, _8c, a9c, b9c, c9c, d9c, e9c, f9c, g9c, h9c, i9c, j9c, k9c, l9c, m9c, n9c, o9c, p9c, q9c, r9c, s9c, t9c, u9c, v9c, w9c, x9c, y9c, z9c, A9c, B9c, C9c, D9c, E9c, F9c, G9c, H9c, I9c, J9c, K9c, L9c, M9c, N9c, O9c, P9c, Q9c, R9c, S9c, T9c, U9c, V9c, W9c, X9c;
+ mdb(ose, "CoreOptions", 684);
+ bcb(103, 22, { 3: 1, 35: 1, 22: 1, 103: 1 }, iad);
+ var _9c, aad, bad, cad, dad;
+ var t1 = ndb(ose, Cle, 103, CI, kad, jad);
+ var lad;
+ bcb(272, 22, { 3: 1, 35: 1, 22: 1, 272: 1 }, rad);
+ var nad, oad, pad;
+ var u1 = ndb(ose, "EdgeLabelPlacement", 272, CI, tad, sad);
+ var uad;
+ bcb(218, 22, { 3: 1, 35: 1, 22: 1, 218: 1 }, Bad);
+ var wad, xad, yad, zad;
+ var v1 = ndb(ose, "EdgeRouting", 218, CI, Dad, Cad);
+ var Ead;
+ bcb(312, 22, { 3: 1, 35: 1, 22: 1, 312: 1 }, Nad);
+ var Gad, Had, Iad, Jad, Kad, Lad;
+ var w1 = ndb(ose, "EdgeType", 312, CI, Pad, Oad);
+ var Qad;
+ bcb(977, 1, ale, _ad);
+ _.Qe = function abd(a) {
+ $ad(a);
+ };
+ var Sad, Tad, Uad, Vad, Wad, Xad, Yad;
+ mdb(ose, "FixedLayouterOptions", 977);
+ bcb(978, 1, {}, bbd);
+ _.$e = function cbd() {
+ var a;
+ return a = new Zfd(), a;
+ };
+ _._e = function dbd(a) {
+ };
+ mdb(ose, "FixedLayouterOptions/FixedFactory", 978);
+ bcb(334, 22, { 3: 1, 35: 1, 22: 1, 334: 1 }, ibd);
+ var ebd, fbd, gbd;
+ var z1 = ndb(ose, "HierarchyHandling", 334, CI, kbd, jbd);
+ var lbd;
+ bcb(285, 22, { 3: 1, 35: 1, 22: 1, 285: 1 }, tbd);
+ var nbd, obd, pbd, qbd;
+ var A1 = ndb(ose, "LabelSide", 285, CI, vbd, ubd);
+ var wbd;
+ bcb(93, 22, { 3: 1, 35: 1, 22: 1, 93: 1 }, Ibd);
+ var ybd, zbd, Abd, Bbd, Cbd, Dbd, Ebd, Fbd, Gbd;
+ var B1 = ndb(ose, "NodeLabelPlacement", 93, CI, Lbd, Kbd);
+ var Mbd;
+ bcb(249, 22, { 3: 1, 35: 1, 22: 1, 249: 1 }, Ubd);
+ var Obd, Pbd, Qbd, Rbd, Sbd;
+ var C1 = ndb(ose, "PortAlignment", 249, CI, Wbd, Vbd);
+ var Xbd;
+ bcb(98, 22, { 3: 1, 35: 1, 22: 1, 98: 1 }, gcd);
+ var Zbd, $bd, _bd, acd, bcd, ccd;
+ var D1 = ndb(ose, "PortConstraints", 98, CI, icd, hcd);
+ var jcd;
+ bcb(273, 22, { 3: 1, 35: 1, 22: 1, 273: 1 }, scd);
+ var lcd, mcd, ncd, ocd, pcd, qcd;
+ var E1 = ndb(ose, "PortLabelPlacement", 273, CI, wcd, vcd);
+ var xcd;
+ bcb(61, 22, { 3: 1, 35: 1, 22: 1, 61: 1 }, Ycd);
+ var zcd, Acd, Bcd, Ccd, Dcd, Ecd, Fcd, Gcd, Hcd, Icd, Jcd, Kcd, Lcd, Mcd, Ncd, Ocd, Pcd, Qcd, Rcd, Scd, Tcd;
+ var F1 = ndb(ose, "PortSide", 61, CI, _cd, $cd);
+ var bdd;
+ bcb(981, 1, ale, kdd);
+ _.Qe = function ldd(a) {
+ jdd(a);
+ };
+ var ddd, edd, fdd, gdd, hdd;
+ mdb(ose, "RandomLayouterOptions", 981);
+ bcb(982, 1, {}, mdd);
+ _.$e = function ndd() {
+ var a;
+ return a = new Mgd(), a;
+ };
+ _._e = function odd(a) {
+ };
+ mdb(ose, "RandomLayouterOptions/RandomFactory", 982);
+ bcb(374, 22, { 3: 1, 35: 1, 22: 1, 374: 1 }, udd);
+ var pdd, qdd, rdd, sdd;
+ var I1 = ndb(ose, "SizeConstraint", 374, CI, wdd, vdd);
+ var xdd;
+ bcb(259, 22, { 3: 1, 35: 1, 22: 1, 259: 1 }, Jdd);
+ var zdd, Add, Bdd, Cdd, Ddd, Edd, Fdd, Gdd, Hdd;
+ var J1 = ndb(ose, "SizeOptions", 259, CI, Ldd, Kdd);
+ var Mdd;
+ bcb(370, 1, { 1949: 1 }, Zdd);
+ _.b = false;
+ _.c = 0;
+ _.d = -1;
+ _.e = null;
+ _.f = null;
+ _.g = -1;
+ _.j = false;
+ _.k = false;
+ _.n = false;
+ _.o = 0;
+ _.q = 0;
+ _.r = 0;
+ mdb(yqe, "BasicProgressMonitor", 370);
+ bcb(972, 209, Mle, ged);
+ _.Ze = function ked(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ Odd(b, "Box layout", 2);
+ e = Gdb(ED(hkd(a, (X7c(), W7c))));
+ f = BD(hkd(a, T7c), 116);
+ c = Ccb(DD(hkd(a, O7c)));
+ d = Ccb(DD(hkd(a, P7c)));
+ switch (BD(hkd(a, M7c), 311).g) {
+ case 0:
+ g = (h = new Tkb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)), mmb(), Okb(h, new med(d)), h);
+ i = rfd(a);
+ j = ED(hkd(a, L7c));
+ (j == null || (uCb(j), j) <= 0) && (j = 1.3);
+ k = ded(g, e, f, i.a, i.b, c, (uCb(j), j));
+ Afd(a, k.a, k.b, false, true);
+ break;
+ default:
+ eed(a, e, f, c);
+ }
+ Qdd(b);
+ };
+ mdb(yqe, "BoxLayoutProvider", 972);
+ bcb(973, 1, Dke, med);
+ _.ue = function ned(a, b) {
+ return led(this, BD(a, 33), BD(b, 33));
+ };
+ _.Fb = function oed(a) {
+ return this === a;
+ };
+ _.ve = function ped() {
+ return new tpb(this);
+ };
+ _.a = false;
+ mdb(yqe, "BoxLayoutProvider/1", 973);
+ bcb(157, 1, { 157: 1 }, wed, xed);
+ _.Ib = function yed() {
+ return this.c ? _od(this.c) : Fe(this.b);
+ };
+ mdb(yqe, "BoxLayoutProvider/Group", 157);
+ bcb(311, 22, { 3: 1, 35: 1, 22: 1, 311: 1 }, Eed);
+ var zed, Aed, Bed, Ced;
+ var O1 = ndb(yqe, "BoxLayoutProvider/PackingMode", 311, CI, Ged, Fed);
+ var Hed;
+ bcb(974, 1, Dke, Jed);
+ _.ue = function Ked(a, b) {
+ return hed(BD(a, 157), BD(b, 157));
+ };
+ _.Fb = function Led(a) {
+ return this === a;
+ };
+ _.ve = function Med() {
+ return new tpb(this);
+ };
+ mdb(yqe, "BoxLayoutProvider/lambda$0$Type", 974);
+ bcb(975, 1, Dke, Ned);
+ _.ue = function Oed(a, b) {
+ return ied(BD(a, 157), BD(b, 157));
+ };
+ _.Fb = function Ped(a) {
+ return this === a;
+ };
+ _.ve = function Qed() {
+ return new tpb(this);
+ };
+ mdb(yqe, "BoxLayoutProvider/lambda$1$Type", 975);
+ bcb(976, 1, Dke, Red);
+ _.ue = function Sed(a, b) {
+ return jed(BD(a, 157), BD(b, 157));
+ };
+ _.Fb = function Ted(a) {
+ return this === a;
+ };
+ _.ve = function Ued() {
+ return new tpb(this);
+ };
+ mdb(yqe, "BoxLayoutProvider/lambda$2$Type", 976);
+ bcb(1365, 1, { 831: 1 }, Ved);
+ _.qg = function Wed(a, b) {
+ return Vyc(), !JD(b, 160) || h2c((Y1c(), BD(a, 160)), b);
+ };
+ mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type", 1365);
+ bcb(1366, 1, qie, Xed);
+ _.td = function Yed(a) {
+ Yyc(this.a, BD(a, 146));
+ };
+ mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type", 1366);
+ bcb(1367, 1, qie, Zed);
+ _.td = function $ed(a) {
+ BD(a, 94);
+ Vyc();
+ };
+ mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type", 1367);
+ bcb(1371, 1, qie, _ed);
+ _.td = function afd(a) {
+ Zyc(this.a, BD(a, 94));
+ };
+ mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type", 1371);
+ bcb(1369, 1, Oie, bfd);
+ _.Mb = function cfd(a) {
+ return $yc(this.a, this.b, BD(a, 146));
+ };
+ mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type", 1369);
+ bcb(1368, 1, Oie, dfd);
+ _.Mb = function efd(a) {
+ return azc(this.a, this.b, BD(a, 831));
+ };
+ mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type", 1368);
+ bcb(1370, 1, qie, ffd);
+ _.td = function gfd(a) {
+ _yc(this.a, this.b, BD(a, 146));
+ };
+ mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type", 1370);
+ bcb(935, 1, {}, Hfd);
+ _.Kb = function Ifd(a) {
+ return Gfd(a);
+ };
+ _.Fb = function Jfd(a) {
+ return this === a;
+ };
+ mdb(yqe, "ElkUtil/lambda$0$Type", 935);
+ bcb(936, 1, qie, Kfd);
+ _.td = function Lfd(a) {
+ ufd(this.a, this.b, BD(a, 79));
+ };
+ _.a = 0;
+ _.b = 0;
+ mdb(yqe, "ElkUtil/lambda$1$Type", 936);
+ bcb(937, 1, qie, Mfd);
+ _.td = function Nfd(a) {
+ vfd(this.a, this.b, BD(a, 202));
+ };
+ _.a = 0;
+ _.b = 0;
+ mdb(yqe, "ElkUtil/lambda$2$Type", 937);
+ bcb(938, 1, qie, Ofd);
+ _.td = function Pfd(a) {
+ wfd(this.a, this.b, BD(a, 137));
+ };
+ _.a = 0;
+ _.b = 0;
+ mdb(yqe, "ElkUtil/lambda$3$Type", 938);
+ bcb(939, 1, qie, Qfd);
+ _.td = function Rfd(a) {
+ xfd(this.a, BD(a, 469));
+ };
+ mdb(yqe, "ElkUtil/lambda$4$Type", 939);
+ bcb(342, 1, { 35: 1, 342: 1 }, Tfd);
+ _.wd = function Ufd(a) {
+ return Sfd(this, BD(a, 236));
+ };
+ _.Fb = function Vfd(a) {
+ var b;
+ if (JD(a, 342)) {
+ b = BD(a, 342);
+ return this.a == b.a;
+ }
+ return false;
+ };
+ _.Hb = function Wfd() {
+ return QD(this.a);
+ };
+ _.Ib = function Xfd() {
+ return this.a + " (exclusive)";
+ };
+ _.a = 0;
+ mdb(yqe, "ExclusiveBounds/ExclusiveLowerBound", 342);
+ bcb(1138, 209, Mle, Zfd);
+ _.Ze = function $fd(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B;
+ Odd(b, "Fixed Layout", 1);
+ f = BD(hkd(a, (Y9c(), E8c)), 218);
+ l = 0;
+ m = 0;
+ for (s = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); s.e != s.i.gc(); ) {
+ q = BD(Dyd(s), 33);
+ B = BD(hkd(q, (Zad(), Yad)), 8);
+ if (B) {
+ bld(q, B.a, B.b);
+ if (BD(hkd(q, Tad), 174).Hc((tdd(), pdd))) {
+ n = BD(hkd(q, Vad), 8);
+ n.a > 0 && n.b > 0 && Afd(q, n.a, n.b, true, true);
+ }
+ }
+ l = $wnd.Math.max(l, q.i + q.g);
+ m = $wnd.Math.max(m, q.j + q.f);
+ for (j = new Fyd((!q.n && (q.n = new cUd(D2, q, 1, 7)), q.n)); j.e != j.i.gc(); ) {
+ h = BD(Dyd(j), 137);
+ B = BD(hkd(h, Yad), 8);
+ !!B && bld(h, B.a, B.b);
+ l = $wnd.Math.max(l, q.i + h.i + h.g);
+ m = $wnd.Math.max(m, q.j + h.j + h.f);
+ }
+ for (v = new Fyd((!q.c && (q.c = new cUd(F2, q, 9, 9)), q.c)); v.e != v.i.gc(); ) {
+ u = BD(Dyd(v), 118);
+ B = BD(hkd(u, Yad), 8);
+ !!B && bld(u, B.a, B.b);
+ w = q.i + u.i;
+ A = q.j + u.j;
+ l = $wnd.Math.max(l, w + u.g);
+ m = $wnd.Math.max(m, A + u.f);
+ for (i = new Fyd((!u.n && (u.n = new cUd(D2, u, 1, 7)), u.n)); i.e != i.i.gc(); ) {
+ h = BD(Dyd(i), 137);
+ B = BD(hkd(h, Yad), 8);
+ !!B && bld(h, B.a, B.b);
+ l = $wnd.Math.max(l, w + h.i + h.g);
+ m = $wnd.Math.max(m, A + h.j + h.f);
+ }
+ }
+ for (e = new Sr(ur(_sd(q).a.Kc(), new Sq())); Qr(e); ) {
+ c = BD(Rr(e), 79);
+ k = Yfd(c);
+ l = $wnd.Math.max(l, k.a);
+ m = $wnd.Math.max(m, k.b);
+ }
+ for (d = new Sr(ur($sd(q).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 79);
+ if (Xod(jtd(c)) != a) {
+ k = Yfd(c);
+ l = $wnd.Math.max(l, k.a);
+ m = $wnd.Math.max(m, k.b);
+ }
+ }
+ }
+ if (f == (Aad(), wad)) {
+ for (r = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); r.e != r.i.gc(); ) {
+ q = BD(Dyd(r), 33);
+ for (d = new Sr(ur(_sd(q).a.Kc(), new Sq())); Qr(d); ) {
+ c = BD(Rr(d), 79);
+ g = pfd(c);
+ g.b == 0 ? jkd(c, Q8c, null) : jkd(c, Q8c, g);
+ }
+ }
+ }
+ if (!Ccb(DD(hkd(a, (Zad(), Uad))))) {
+ t = BD(hkd(a, Wad), 116);
+ p = l + t.b + t.c;
+ o2 = m + t.d + t.a;
+ Afd(a, p, o2, true, true);
+ }
+ Qdd(b);
+ };
+ mdb(yqe, "FixedLayoutProvider", 1138);
+ bcb(373, 134, { 3: 1, 414: 1, 373: 1, 94: 1, 134: 1 }, _fd, agd);
+ _.Jf = function dgd(b) {
+ var c, d, e, f, g, h, i, j, k;
+ if (!b) {
+ return;
+ }
+ try {
+ j = mfb(b, ";,;");
+ for (g = j, h = 0, i = g.length; h < i; ++h) {
+ f = g[h];
+ d = mfb(f, "\\:");
+ e = k4c(n4c(), d[0]);
+ if (!e) {
+ throw vbb(new Wdb("Invalid option id: " + d[0]));
+ }
+ k = o5c(e, d[1]);
+ if (k == null) {
+ throw vbb(new Wdb("Invalid option value: " + d[1]));
+ }
+ k == null ? (!this.q && (this.q = new Lqb()), Thb(this.q, e)) : (!this.q && (this.q = new Lqb()), Rhb(this.q, e, k));
+ }
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 102)) {
+ c = a;
+ throw vbb(new Xdb(c));
+ } else
+ throw vbb(a);
+ }
+ };
+ _.Ib = function egd() {
+ var a;
+ a = GD(GAb(NAb((!this.q ? (mmb(), mmb(), kmb) : this.q).vc().Oc(), new fgd()), Ayb(new pzb(), new nzb(), new Zyb(), new _yb(), OC(GC(xL, 1), Kie, 132, 0, []))));
+ return a;
+ };
+ var i2 = mdb(yqe, "IndividualSpacings", 373);
+ bcb(971, 1, {}, fgd);
+ _.Kb = function ggd(a) {
+ return cgd(BD(a, 42));
+ };
+ mdb(yqe, "IndividualSpacings/lambda$0$Type", 971);
+ bcb(709, 1, {}, jgd);
+ _.c = 0;
+ mdb(yqe, "InstancePool", 709);
+ bcb(1275, 1, {}, kgd);
+ mdb(yqe, "LoggedGraph", 1275);
+ bcb(396, 22, { 3: 1, 35: 1, 22: 1, 396: 1 }, qgd);
+ var lgd, mgd, ngd, ogd;
+ var k2 = ndb(yqe, "LoggedGraph/Type", 396, CI, sgd, rgd);
+ var tgd;
+ bcb(46, 1, { 20: 1, 46: 1 }, vgd);
+ _.Jc = function xgd(a) {
+ reb(this, a);
+ };
+ _.Fb = function wgd(a) {
+ var b, c, d;
+ if (JD(a, 46)) {
+ c = BD(a, 46);
+ b = this.a == null ? c.a == null : pb(this.a, c.a);
+ d = this.b == null ? c.b == null : pb(this.b, c.b);
+ return b && d;
+ } else {
+ return false;
+ }
+ };
+ _.Hb = function ygd() {
+ var a, b, c, d, e, f;
+ c = this.a == null ? 0 : tb(this.a);
+ a = c & aje;
+ b = c & -65536;
+ f = this.b == null ? 0 : tb(this.b);
+ d = f & aje;
+ e = f & -65536;
+ return a ^ e >> 16 & aje | b ^ d << 16;
+ };
+ _.Kc = function zgd() {
+ return new Bgd(this);
+ };
+ _.Ib = function Agd() {
+ return this.a == null && this.b == null ? "pair(null,null)" : this.a == null ? "pair(null," + fcb(this.b) + ")" : this.b == null ? "pair(" + fcb(this.a) + ",null)" : "pair(" + fcb(this.a) + "," + fcb(this.b) + ")";
+ };
+ mdb(yqe, "Pair", 46);
+ bcb(983, 1, aie, Bgd);
+ _.Nb = function Cgd(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function Dgd() {
+ return !this.c && (!this.b && this.a.a != null || this.a.b != null);
+ };
+ _.Pb = function Egd() {
+ if (!this.c && !this.b && this.a.a != null) {
+ this.b = true;
+ return this.a.a;
+ } else if (!this.c && this.a.b != null) {
+ this.c = true;
+ return this.a.b;
+ }
+ throw vbb(new utb());
+ };
+ _.Qb = function Fgd() {
+ this.c && this.a.b != null ? this.a.b = null : this.b && this.a.a != null && (this.a.a = null);
+ throw vbb(new Ydb());
+ };
+ _.b = false;
+ _.c = false;
+ mdb(yqe, "Pair/1", 983);
+ bcb(448, 1, { 448: 1 }, Ggd);
+ _.Fb = function Hgd(a) {
+ return wtb(this.a, BD(a, 448).a) && wtb(this.c, BD(a, 448).c) && wtb(this.d, BD(a, 448).d) && wtb(this.b, BD(a, 448).b);
+ };
+ _.Hb = function Igd() {
+ return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.a, this.c, this.d, this.b]));
+ };
+ _.Ib = function Jgd() {
+ return "(" + this.a + She + this.c + She + this.d + She + this.b + ")";
+ };
+ mdb(yqe, "Quadruple", 448);
+ bcb(1126, 209, Mle, Mgd);
+ _.Ze = function Ngd(a, b) {
+ var c, d, e, f, g;
+ Odd(b, "Random Layout", 1);
+ if ((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i == 0) {
+ Qdd(b);
+ return;
+ }
+ f = BD(hkd(a, (idd(), gdd)), 19);
+ !!f && f.a != 0 ? e = new Hub(f.a) : e = new Gub();
+ c = Gdb(ED(hkd(a, ddd)));
+ g = Gdb(ED(hkd(a, hdd)));
+ d = BD(hkd(a, edd), 116);
+ Lgd(a, e, c, g, d);
+ Qdd(b);
+ };
+ mdb(yqe, "RandomLayoutProvider", 1126);
+ var Ogd;
+ bcb(553, 1, {});
+ _.qf = function Sgd() {
+ return new f7c(this.f.i, this.f.j);
+ };
+ _.We = function Tgd(a) {
+ if (Jsd(a, (Y9c(), s9c))) {
+ return hkd(this.f, Qgd);
+ }
+ return hkd(this.f, a);
+ };
+ _.rf = function Ugd() {
+ return new f7c(this.f.g, this.f.f);
+ };
+ _.sf = function Vgd() {
+ return this.g;
+ };
+ _.Xe = function Wgd(a) {
+ return ikd(this.f, a);
+ };
+ _.tf = function Xgd(a) {
+ dld(this.f, a.a);
+ eld(this.f, a.b);
+ };
+ _.uf = function Ygd(a) {
+ cld(this.f, a.a);
+ ald(this.f, a.b);
+ };
+ _.vf = function Zgd(a) {
+ this.g = a;
+ };
+ _.g = 0;
+ var Qgd;
+ mdb(Use, "ElkGraphAdapters/AbstractElkGraphElementAdapter", 553);
+ bcb(554, 1, { 839: 1 }, $gd);
+ _.wf = function _gd() {
+ var a, b;
+ if (!this.b) {
+ this.b = Qu(Kkd(this.a).i);
+ for (b = new Fyd(Kkd(this.a)); b.e != b.i.gc(); ) {
+ a = BD(Dyd(b), 137);
+ Ekb(this.b, new dhd(a));
+ }
+ }
+ return this.b;
+ };
+ _.b = null;
+ mdb(Use, "ElkGraphAdapters/ElkEdgeAdapter", 554);
+ bcb(301, 553, {}, bhd);
+ _.xf = function chd() {
+ return ahd(this);
+ };
+ _.a = null;
+ mdb(Use, "ElkGraphAdapters/ElkGraphAdapter", 301);
+ bcb(630, 553, { 181: 1 }, dhd);
+ mdb(Use, "ElkGraphAdapters/ElkLabelAdapter", 630);
+ bcb(629, 553, { 680: 1 }, hhd);
+ _.wf = function khd() {
+ return ehd(this);
+ };
+ _.Af = function lhd() {
+ var a;
+ return a = BD(hkd(this.f, (Y9c(), S8c)), 142), !a && (a = new H_b()), a;
+ };
+ _.Cf = function nhd() {
+ return fhd(this);
+ };
+ _.Ef = function phd(a) {
+ var b;
+ b = new K_b(a);
+ jkd(this.f, (Y9c(), S8c), b);
+ };
+ _.Ff = function qhd(a) {
+ jkd(this.f, (Y9c(), f9c), new r0b(a));
+ };
+ _.yf = function ihd() {
+ return this.d;
+ };
+ _.zf = function jhd() {
+ var a, b;
+ if (!this.a) {
+ this.a = new Rkb();
+ for (b = new Sr(ur($sd(BD(this.f, 33)).a.Kc(), new Sq())); Qr(b); ) {
+ a = BD(Rr(b), 79);
+ Ekb(this.a, new $gd(a));
+ }
+ }
+ return this.a;
+ };
+ _.Bf = function mhd() {
+ var a, b;
+ if (!this.c) {
+ this.c = new Rkb();
+ for (b = new Sr(ur(_sd(BD(this.f, 33)).a.Kc(), new Sq())); Qr(b); ) {
+ a = BD(Rr(b), 79);
+ Ekb(this.c, new $gd(a));
+ }
+ }
+ return this.c;
+ };
+ _.Df = function ohd() {
+ return Vod(BD(this.f, 33)).i != 0 || Ccb(DD(BD(this.f, 33).We((Y9c(), M8c))));
+ };
+ _.Gf = function rhd() {
+ ghd(this, (Pgd(), Ogd));
+ };
+ _.a = null;
+ _.b = null;
+ _.c = null;
+ _.d = null;
+ _.e = null;
+ mdb(Use, "ElkGraphAdapters/ElkNodeAdapter", 629);
+ bcb(1266, 553, { 838: 1 }, thd);
+ _.wf = function vhd() {
+ return shd(this);
+ };
+ _.zf = function uhd() {
+ var a, b;
+ if (!this.a) {
+ this.a = Pu(BD(this.f, 118).xg().i);
+ for (b = new Fyd(BD(this.f, 118).xg()); b.e != b.i.gc(); ) {
+ a = BD(Dyd(b), 79);
+ Ekb(this.a, new $gd(a));
+ }
+ }
+ return this.a;
+ };
+ _.Bf = function whd() {
+ var a, b;
+ if (!this.c) {
+ this.c = Pu(BD(this.f, 118).yg().i);
+ for (b = new Fyd(BD(this.f, 118).yg()); b.e != b.i.gc(); ) {
+ a = BD(Dyd(b), 79);
+ Ekb(this.c, new $gd(a));
+ }
+ }
+ return this.c;
+ };
+ _.Hf = function xhd() {
+ return BD(BD(this.f, 118).We((Y9c(), A9c)), 61);
+ };
+ _.If = function yhd() {
+ var a, b, c, d, e, f, g, h;
+ d = mpd(BD(this.f, 118));
+ for (c = new Fyd(BD(this.f, 118).yg()); c.e != c.i.gc(); ) {
+ a = BD(Dyd(c), 79);
+ for (h = new Fyd((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)); h.e != h.i.gc(); ) {
+ g = BD(Dyd(h), 82);
+ if (ntd(atd(g), d)) {
+ return true;
+ } else if (atd(g) == d && Ccb(DD(hkd(a, (Y9c(), N8c))))) {
+ return true;
+ }
+ }
+ }
+ for (b = new Fyd(BD(this.f, 118).xg()); b.e != b.i.gc(); ) {
+ a = BD(Dyd(b), 79);
+ for (f = new Fyd((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b)); f.e != f.i.gc(); ) {
+ e = BD(Dyd(f), 82);
+ if (ntd(atd(e), d)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+ _.a = null;
+ _.b = null;
+ _.c = null;
+ mdb(Use, "ElkGraphAdapters/ElkPortAdapter", 1266);
+ bcb(1267, 1, Dke, Ahd);
+ _.ue = function Bhd(a, b) {
+ return zhd(BD(a, 118), BD(b, 118));
+ };
+ _.Fb = function Chd(a) {
+ return this === a;
+ };
+ _.ve = function Dhd() {
+ return new tpb(this);
+ };
+ mdb(Use, "ElkGraphAdapters/PortComparator", 1267);
+ var m5 = odb(Vse, "EObject");
+ var x2 = odb(Wse, Xse);
+ var y2 = odb(Wse, Yse);
+ var C2 = odb(Wse, Zse);
+ var G2 = odb(Wse, "ElkShape");
+ var z2 = odb(Wse, $se);
+ var B2 = odb(Wse, _se);
+ var A2 = odb(Wse, ate);
+ var k5 = odb(Vse, bte);
+ var i5 = odb(Vse, "EFactory");
+ var Ehd;
+ var l5 = odb(Vse, cte);
+ var o5 = odb(Vse, "EPackage");
+ var Ghd;
+ var Ihd, Jhd, Khd, Lhd, Mhd, Nhd, Ohd, Phd, Qhd, Rhd, Shd;
+ var D2 = odb(Wse, dte);
+ var E2 = odb(Wse, ete);
+ var F2 = odb(Wse, fte);
+ bcb(90, 1, gte);
+ _.Jg = function Vhd() {
+ this.Kg();
+ return null;
+ };
+ _.Kg = function Whd() {
+ return null;
+ };
+ _.Lg = function Xhd() {
+ return this.Kg(), false;
+ };
+ _.Mg = function Yhd() {
+ return false;
+ };
+ _.Ng = function Zhd(a) {
+ Uhd(this, a);
+ };
+ mdb(hte, "BasicNotifierImpl", 90);
+ bcb(97, 90, pte);
+ _.nh = function fjd() {
+ return oid(this);
+ };
+ _.Og = function Fid(a, b) {
+ return a;
+ };
+ _.Pg = function Gid() {
+ throw vbb(new bgb());
+ };
+ _.Qg = function Hid(a) {
+ var b;
+ return b = zUd(BD(XKd(this.Tg(), this.Vg()), 18)), this.eh().ih(this, b.n, b.f, a);
+ };
+ _.Rg = function Iid(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Sg = function Jid(a, b, c) {
+ return _hd(this, a, b, c);
+ };
+ _.Tg = function Kid() {
+ var a;
+ if (this.Pg()) {
+ a = this.Pg().ck();
+ if (a) {
+ return a;
+ }
+ }
+ return this.zh();
+ };
+ _.Ug = function Lid() {
+ return aid(this);
+ };
+ _.Vg = function Mid() {
+ throw vbb(new bgb());
+ };
+ _.Wg = function Oid() {
+ var a, b;
+ b = this.ph().dk();
+ !b && this.Pg().ik(b = (nRd(), a = pNd(TKd(this.Tg())), a == null ? mRd : new qRd(this, a)));
+ return b;
+ };
+ _.Xg = function Qid(a, b) {
+ return a;
+ };
+ _.Yg = function Rid(a) {
+ var b;
+ b = a.Gj();
+ return !b ? bLd(this.Tg(), a) : a.aj();
+ };
+ _.Zg = function Sid() {
+ var a;
+ a = this.Pg();
+ return !a ? null : a.fk();
+ };
+ _.$g = function Tid() {
+ return !this.Pg() ? null : this.Pg().ck();
+ };
+ _._g = function Uid(a, b, c) {
+ return fid(this, a, b, c);
+ };
+ _.ah = function Vid(a) {
+ return gid(this, a);
+ };
+ _.bh = function Wid(a, b) {
+ return hid(this, a, b);
+ };
+ _.dh = function Xid() {
+ var a;
+ a = this.Pg();
+ return !!a && a.gk();
+ };
+ _.eh = function Yid() {
+ throw vbb(new bgb());
+ };
+ _.fh = function Zid() {
+ return jid(this);
+ };
+ _.gh = function $id(a, b, c, d) {
+ return kid(this, a, b, d);
+ };
+ _.hh = function _id(a, b, c) {
+ var d;
+ return d = BD(XKd(this.Tg(), b), 66), d.Nj().Qj(this, this.yh(), b - this.Ah(), a, c);
+ };
+ _.ih = function ajd(a, b, c, d) {
+ return lid(this, a, b, d);
+ };
+ _.jh = function bjd(a, b, c) {
+ var d;
+ return d = BD(XKd(this.Tg(), b), 66), d.Nj().Rj(this, this.yh(), b - this.Ah(), a, c);
+ };
+ _.kh = function cjd() {
+ return !!this.Pg() && !!this.Pg().ek();
+ };
+ _.lh = function djd(a) {
+ return mid(this, a);
+ };
+ _.mh = function ejd(a) {
+ return nid(this, a);
+ };
+ _.oh = function gjd(a) {
+ return rid(this, a);
+ };
+ _.ph = function hjd() {
+ throw vbb(new bgb());
+ };
+ _.qh = function ijd() {
+ return !this.Pg() ? null : this.Pg().ek();
+ };
+ _.rh = function jjd() {
+ return jid(this);
+ };
+ _.sh = function kjd(a, b) {
+ yid(this, a, b);
+ };
+ _.th = function ljd(a) {
+ this.ph().hk(a);
+ };
+ _.uh = function mjd(a) {
+ this.ph().kk(a);
+ };
+ _.vh = function njd(a) {
+ this.ph().jk(a);
+ };
+ _.wh = function ojd(a, b) {
+ var c, d, e, f;
+ f = this.Zg();
+ if (!!f && !!a) {
+ b = Txd(f.Vk(), this, b);
+ f.Zk(this);
+ }
+ d = this.eh();
+ if (d) {
+ if ((Nid(this, this.eh(), this.Vg()).Bb & Tje) != 0) {
+ e = d.fh();
+ !!e && (!a ? e.Yk(this) : !f && e.Zk(this));
+ } else {
+ b = (c = this.Vg(), c >= 0 ? this.Qg(b) : this.eh().ih(this, -1 - c, null, b));
+ b = this.Sg(null, -1, b);
+ }
+ }
+ this.uh(a);
+ return b;
+ };
+ _.xh = function pjd(a) {
+ var b, c, d, e, f, g, h, i;
+ c = this.Tg();
+ f = bLd(c, a);
+ b = this.Ah();
+ if (f >= b) {
+ return BD(a, 66).Nj().Uj(this, this.yh(), f - b);
+ } else if (f <= -1) {
+ g = e1d((O6d(), M6d), c, a);
+ if (g) {
+ Q6d();
+ BD(g, 66).Oj() || (g = _1d(q1d(M6d, g)));
+ e = (d = this.Yg(g), BD(d >= 0 ? this._g(d, true, true) : sid(this, g, true), 153));
+ i = g.Zj();
+ if (i > 1 || i == -1) {
+ return BD(BD(e, 215).hl(a, false), 76);
+ }
+ } else {
+ throw vbb(new Wdb(ite + a.ne() + lte));
+ }
+ } else if (a.$j()) {
+ return d = this.Yg(a), BD(d >= 0 ? this._g(d, false, true) : sid(this, a, false), 76);
+ }
+ h = new nGd(this, a);
+ return h;
+ };
+ _.yh = function qjd() {
+ return Aid(this);
+ };
+ _.zh = function rjd() {
+ return (NFd(), MFd).S;
+ };
+ _.Ah = function sjd() {
+ return aLd(this.zh());
+ };
+ _.Bh = function tjd(a) {
+ Cid(this, a);
+ };
+ _.Ib = function ujd() {
+ return Eid(this);
+ };
+ mdb(qte, "BasicEObjectImpl", 97);
+ var zFd;
+ bcb(114, 97, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1 });
+ _.Ch = function Djd(a) {
+ var b;
+ b = xjd(this);
+ return b[a];
+ };
+ _.Dh = function Ejd(a, b) {
+ var c;
+ c = xjd(this);
+ NC(c, a, b);
+ };
+ _.Eh = function Fjd(a) {
+ var b;
+ b = xjd(this);
+ NC(b, a, null);
+ };
+ _.Jg = function Gjd() {
+ return BD(Ajd(this, 4), 126);
+ };
+ _.Kg = function Hjd() {
+ throw vbb(new bgb());
+ };
+ _.Lg = function Ijd() {
+ return (this.Db & 4) != 0;
+ };
+ _.Pg = function Jjd() {
+ throw vbb(new bgb());
+ };
+ _.Fh = function Kjd(a) {
+ Cjd(this, 2, a);
+ };
+ _.Rg = function Ljd(a, b) {
+ this.Db = b << 16 | this.Db & 255;
+ this.Fh(a);
+ };
+ _.Tg = function Mjd() {
+ return wjd(this);
+ };
+ _.Vg = function Njd() {
+ return this.Db >> 16;
+ };
+ _.Wg = function Ojd() {
+ var a, b;
+ return nRd(), b = pNd(TKd((a = BD(Ajd(this, 16), 26), !a ? this.zh() : a))), b == null ? mRd : new qRd(this, b);
+ };
+ _.Mg = function Pjd() {
+ return (this.Db & 1) == 0;
+ };
+ _.Zg = function Qjd() {
+ return BD(Ajd(this, 128), 1935);
+ };
+ _.$g = function Rjd() {
+ return BD(Ajd(this, 16), 26);
+ };
+ _.dh = function Sjd() {
+ return (this.Db & 32) != 0;
+ };
+ _.eh = function Tjd() {
+ return BD(Ajd(this, 2), 49);
+ };
+ _.kh = function Ujd() {
+ return (this.Db & 64) != 0;
+ };
+ _.ph = function Vjd() {
+ throw vbb(new bgb());
+ };
+ _.qh = function Wjd() {
+ return BD(Ajd(this, 64), 281);
+ };
+ _.th = function Xjd(a) {
+ Cjd(this, 16, a);
+ };
+ _.uh = function Yjd(a) {
+ Cjd(this, 128, a);
+ };
+ _.vh = function Zjd(a) {
+ Cjd(this, 64, a);
+ };
+ _.yh = function $jd() {
+ return yjd(this);
+ };
+ _.Db = 0;
+ mdb(qte, "MinimalEObjectImpl", 114);
+ bcb(115, 114, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
+ _.Fh = function _jd(a) {
+ this.Cb = a;
+ };
+ _.eh = function akd() {
+ return this.Cb;
+ };
+ mdb(qte, "MinimalEObjectImpl/Container", 115);
+ bcb(1985, 115, { 105: 1, 413: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
+ _._g = function kkd(a, b, c) {
+ return bkd(this, a, b, c);
+ };
+ _.jh = function lkd(a, b, c) {
+ return ckd(this, a, b, c);
+ };
+ _.lh = function mkd(a) {
+ return dkd(this, a);
+ };
+ _.sh = function nkd(a, b) {
+ ekd(this, a, b);
+ };
+ _.zh = function okd() {
+ return Thd(), Shd;
+ };
+ _.Bh = function pkd(a) {
+ fkd(this, a);
+ };
+ _.Ve = function qkd() {
+ return gkd(this);
+ };
+ _.We = function rkd(a) {
+ return hkd(this, a);
+ };
+ _.Xe = function skd(a) {
+ return ikd(this, a);
+ };
+ _.Ye = function tkd(a, b) {
+ return jkd(this, a, b);
+ };
+ mdb(rte, "EMapPropertyHolderImpl", 1985);
+ bcb(567, 115, { 105: 1, 469: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, xkd);
+ _._g = function ykd(a, b, c) {
+ switch (a) {
+ case 0:
+ return this.a;
+ case 1:
+ return this.b;
+ }
+ return fid(this, a, b, c);
+ };
+ _.lh = function zkd(a) {
+ switch (a) {
+ case 0:
+ return this.a != 0;
+ case 1:
+ return this.b != 0;
+ }
+ return mid(this, a);
+ };
+ _.sh = function Akd(a, b) {
+ switch (a) {
+ case 0:
+ vkd(this, Edb(ED(b)));
+ return;
+ case 1:
+ wkd(this, Edb(ED(b)));
+ return;
+ }
+ yid(this, a, b);
+ };
+ _.zh = function Bkd() {
+ return Thd(), Ihd;
+ };
+ _.Bh = function Ckd(a) {
+ switch (a) {
+ case 0:
+ vkd(this, 0);
+ return;
+ case 1:
+ wkd(this, 0);
+ return;
+ }
+ Cid(this, a);
+ };
+ _.Ib = function Dkd() {
+ var a;
+ if ((this.Db & 64) != 0)
+ return Eid(this);
+ a = new Jfb(Eid(this));
+ a.a += " (x: ";
+ Bfb(a, this.a);
+ a.a += ", y: ";
+ Bfb(a, this.b);
+ a.a += ")";
+ return a.a;
+ };
+ _.a = 0;
+ _.b = 0;
+ mdb(rte, "ElkBendPointImpl", 567);
+ bcb(723, 1985, { 105: 1, 413: 1, 160: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
+ _._g = function Nkd(a, b, c) {
+ return Ekd(this, a, b, c);
+ };
+ _.hh = function Okd(a, b, c) {
+ return Fkd(this, a, b, c);
+ };
+ _.jh = function Pkd(a, b, c) {
+ return Gkd(this, a, b, c);
+ };
+ _.lh = function Qkd(a) {
+ return Hkd(this, a);
+ };
+ _.sh = function Rkd(a, b) {
+ Ikd(this, a, b);
+ };
+ _.zh = function Skd() {
+ return Thd(), Mhd;
+ };
+ _.Bh = function Tkd(a) {
+ Jkd(this, a);
+ };
+ _.zg = function Ukd() {
+ return this.k;
+ };
+ _.Ag = function Vkd() {
+ return Kkd(this);
+ };
+ _.Ib = function Wkd() {
+ return Mkd(this);
+ };
+ _.k = null;
+ mdb(rte, "ElkGraphElementImpl", 723);
+ bcb(724, 723, { 105: 1, 413: 1, 160: 1, 470: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
+ _._g = function gld(a, b, c) {
+ return Xkd(this, a, b, c);
+ };
+ _.lh = function hld(a) {
+ return Ykd(this, a);
+ };
+ _.sh = function ild(a, b) {
+ Zkd(this, a, b);
+ };
+ _.zh = function jld() {
+ return Thd(), Rhd;
+ };
+ _.Bh = function kld(a) {
+ $kd(this, a);
+ };
+ _.Bg = function lld() {
+ return this.f;
+ };
+ _.Cg = function mld() {
+ return this.g;
+ };
+ _.Dg = function nld() {
+ return this.i;
+ };
+ _.Eg = function old() {
+ return this.j;
+ };
+ _.Fg = function pld(a, b) {
+ _kd(this, a, b);
+ };
+ _.Gg = function qld(a, b) {
+ bld(this, a, b);
+ };
+ _.Hg = function rld(a) {
+ dld(this, a);
+ };
+ _.Ig = function sld(a) {
+ eld(this, a);
+ };
+ _.Ib = function tld() {
+ return fld(this);
+ };
+ _.f = 0;
+ _.g = 0;
+ _.i = 0;
+ _.j = 0;
+ mdb(rte, "ElkShapeImpl", 724);
+ bcb(725, 724, { 105: 1, 413: 1, 82: 1, 160: 1, 470: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
+ _._g = function Bld(a, b, c) {
+ return uld(this, a, b, c);
+ };
+ _.hh = function Cld(a, b, c) {
+ return vld(this, a, b, c);
+ };
+ _.jh = function Dld(a, b, c) {
+ return wld(this, a, b, c);
+ };
+ _.lh = function Eld(a) {
+ return xld(this, a);
+ };
+ _.sh = function Fld(a, b) {
+ yld(this, a, b);
+ };
+ _.zh = function Gld() {
+ return Thd(), Jhd;
+ };
+ _.Bh = function Hld(a) {
+ zld(this, a);
+ };
+ _.xg = function Ild() {
+ return !this.d && (this.d = new y5d(B2, this, 8, 5)), this.d;
+ };
+ _.yg = function Jld() {
+ return !this.e && (this.e = new y5d(B2, this, 7, 4)), this.e;
+ };
+ mdb(rte, "ElkConnectableShapeImpl", 725);
+ bcb(352, 723, { 105: 1, 413: 1, 79: 1, 160: 1, 352: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Tld);
+ _.Qg = function Uld(a) {
+ return Lld(this, a);
+ };
+ _._g = function Vld(a, b, c) {
+ switch (a) {
+ case 3:
+ return Mld(this);
+ case 4:
+ return !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b;
+ case 5:
+ return !this.c && (this.c = new y5d(z2, this, 5, 8)), this.c;
+ case 6:
+ return !this.a && (this.a = new cUd(A2, this, 6, 6)), this.a;
+ case 7:
+ return Bcb(), !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i <= 1 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i <= 1) ? false : true;
+ case 8:
+ return Bcb(), Pld(this) ? true : false;
+ case 9:
+ return Bcb(), Qld(this) ? true : false;
+ case 10:
+ return Bcb(), !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i != 0) ? true : false;
+ }
+ return Ekd(this, a, b, c);
+ };
+ _.hh = function Wld(a, b, c) {
+ var d;
+ switch (b) {
+ case 3:
+ !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? Lld(this, c) : this.Cb.ih(this, -1 - d, null, c)));
+ return Kld(this, BD(a, 33), c);
+ case 4:
+ return !this.b && (this.b = new y5d(z2, this, 4, 7)), Sxd(this.b, a, c);
+ case 5:
+ return !this.c && (this.c = new y5d(z2, this, 5, 8)), Sxd(this.c, a, c);
+ case 6:
+ return !this.a && (this.a = new cUd(A2, this, 6, 6)), Sxd(this.a, a, c);
+ }
+ return Fkd(this, a, b, c);
+ };
+ _.jh = function Xld(a, b, c) {
+ switch (b) {
+ case 3:
+ return Kld(this, null, c);
+ case 4:
+ return !this.b && (this.b = new y5d(z2, this, 4, 7)), Txd(this.b, a, c);
+ case 5:
+ return !this.c && (this.c = new y5d(z2, this, 5, 8)), Txd(this.c, a, c);
+ case 6:
+ return !this.a && (this.a = new cUd(A2, this, 6, 6)), Txd(this.a, a, c);
+ }
+ return Gkd(this, a, b, c);
+ };
+ _.lh = function Yld(a) {
+ switch (a) {
+ case 3:
+ return !!Mld(this);
+ case 4:
+ return !!this.b && this.b.i != 0;
+ case 5:
+ return !!this.c && this.c.i != 0;
+ case 6:
+ return !!this.a && this.a.i != 0;
+ case 7:
+ return !this.b && (this.b = new y5d(z2, this, 4, 7)), !(this.b.i <= 1 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i <= 1));
+ case 8:
+ return Pld(this);
+ case 9:
+ return Qld(this);
+ case 10:
+ return !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i != 0);
+ }
+ return Hkd(this, a);
+ };
+ _.sh = function Zld(a, b) {
+ switch (a) {
+ case 3:
+ Rld(this, BD(b, 33));
+ return;
+ case 4:
+ !this.b && (this.b = new y5d(z2, this, 4, 7));
+ Uxd(this.b);
+ !this.b && (this.b = new y5d(z2, this, 4, 7));
+ ytd(this.b, BD(b, 14));
+ return;
+ case 5:
+ !this.c && (this.c = new y5d(z2, this, 5, 8));
+ Uxd(this.c);
+ !this.c && (this.c = new y5d(z2, this, 5, 8));
+ ytd(this.c, BD(b, 14));
+ return;
+ case 6:
+ !this.a && (this.a = new cUd(A2, this, 6, 6));
+ Uxd(this.a);
+ !this.a && (this.a = new cUd(A2, this, 6, 6));
+ ytd(this.a, BD(b, 14));
+ return;
+ }
+ Ikd(this, a, b);
+ };
+ _.zh = function $ld() {
+ return Thd(), Khd;
+ };
+ _.Bh = function _ld(a) {
+ switch (a) {
+ case 3:
+ Rld(this, null);
+ return;
+ case 4:
+ !this.b && (this.b = new y5d(z2, this, 4, 7));
+ Uxd(this.b);
+ return;
+ case 5:
+ !this.c && (this.c = new y5d(z2, this, 5, 8));
+ Uxd(this.c);
+ return;
+ case 6:
+ !this.a && (this.a = new cUd(A2, this, 6, 6));
+ Uxd(this.a);
+ return;
+ }
+ Jkd(this, a);
+ };
+ _.Ib = function amd() {
+ return Sld(this);
+ };
+ mdb(rte, "ElkEdgeImpl", 352);
+ bcb(439, 1985, { 105: 1, 413: 1, 202: 1, 439: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, rmd);
+ _.Qg = function smd(a) {
+ return cmd(this, a);
+ };
+ _._g = function tmd(a, b, c) {
+ switch (a) {
+ case 1:
+ return this.j;
+ case 2:
+ return this.k;
+ case 3:
+ return this.b;
+ case 4:
+ return this.c;
+ case 5:
+ return !this.a && (this.a = new xMd(y2, this, 5)), this.a;
+ case 6:
+ return fmd(this);
+ case 7:
+ if (b)
+ return emd(this);
+ return this.i;
+ case 8:
+ if (b)
+ return dmd(this);
+ return this.f;
+ case 9:
+ return !this.g && (this.g = new y5d(A2, this, 9, 10)), this.g;
+ case 10:
+ return !this.e && (this.e = new y5d(A2, this, 10, 9)), this.e;
+ case 11:
+ return this.d;
+ }
+ return bkd(this, a, b, c);
+ };
+ _.hh = function umd(a, b, c) {
+ var d, e, f;
+ switch (b) {
+ case 6:
+ !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? cmd(this, c) : this.Cb.ih(this, -1 - e, null, c)));
+ return bmd(this, BD(a, 79), c);
+ case 9:
+ return !this.g && (this.g = new y5d(A2, this, 9, 10)), Sxd(this.g, a, c);
+ case 10:
+ return !this.e && (this.e = new y5d(A2, this, 10, 9)), Sxd(this.e, a, c);
+ }
+ return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (Thd(), Lhd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((Thd(), Lhd)), a, c);
+ };
+ _.jh = function vmd(a, b, c) {
+ switch (b) {
+ case 5:
+ return !this.a && (this.a = new xMd(y2, this, 5)), Txd(this.a, a, c);
+ case 6:
+ return bmd(this, null, c);
+ case 9:
+ return !this.g && (this.g = new y5d(A2, this, 9, 10)), Txd(this.g, a, c);
+ case 10:
+ return !this.e && (this.e = new y5d(A2, this, 10, 9)), Txd(this.e, a, c);
+ }
+ return ckd(this, a, b, c);
+ };
+ _.lh = function wmd(a) {
+ switch (a) {
+ case 1:
+ return this.j != 0;
+ case 2:
+ return this.k != 0;
+ case 3:
+ return this.b != 0;
+ case 4:
+ return this.c != 0;
+ case 5:
+ return !!this.a && this.a.i != 0;
+ case 6:
+ return !!fmd(this);
+ case 7:
+ return !!this.i;
+ case 8:
+ return !!this.f;
+ case 9:
+ return !!this.g && this.g.i != 0;
+ case 10:
+ return !!this.e && this.e.i != 0;
+ case 11:
+ return this.d != null;
+ }
+ return dkd(this, a);
+ };
+ _.sh = function xmd(a, b) {
+ switch (a) {
+ case 1:
+ omd(this, Edb(ED(b)));
+ return;
+ case 2:
+ pmd(this, Edb(ED(b)));
+ return;
+ case 3:
+ hmd(this, Edb(ED(b)));
+ return;
+ case 4:
+ imd(this, Edb(ED(b)));
+ return;
+ case 5:
+ !this.a && (this.a = new xMd(y2, this, 5));
+ Uxd(this.a);
+ !this.a && (this.a = new xMd(y2, this, 5));
+ ytd(this.a, BD(b, 14));
+ return;
+ case 6:
+ mmd(this, BD(b, 79));
+ return;
+ case 7:
+ lmd(this, BD(b, 82));
+ return;
+ case 8:
+ kmd(this, BD(b, 82));
+ return;
+ case 9:
+ !this.g && (this.g = new y5d(A2, this, 9, 10));
+ Uxd(this.g);
+ !this.g && (this.g = new y5d(A2, this, 9, 10));
+ ytd(this.g, BD(b, 14));
+ return;
+ case 10:
+ !this.e && (this.e = new y5d(A2, this, 10, 9));
+ Uxd(this.e);
+ !this.e && (this.e = new y5d(A2, this, 10, 9));
+ ytd(this.e, BD(b, 14));
+ return;
+ case 11:
+ jmd(this, GD(b));
+ return;
+ }
+ ekd(this, a, b);
+ };
+ _.zh = function ymd() {
+ return Thd(), Lhd;
+ };
+ _.Bh = function zmd(a) {
+ switch (a) {
+ case 1:
+ omd(this, 0);
+ return;
+ case 2:
+ pmd(this, 0);
+ return;
+ case 3:
+ hmd(this, 0);
+ return;
+ case 4:
+ imd(this, 0);
+ return;
+ case 5:
+ !this.a && (this.a = new xMd(y2, this, 5));
+ Uxd(this.a);
+ return;
+ case 6:
+ mmd(this, null);
+ return;
+ case 7:
+ lmd(this, null);
+ return;
+ case 8:
+ kmd(this, null);
+ return;
+ case 9:
+ !this.g && (this.g = new y5d(A2, this, 9, 10));
+ Uxd(this.g);
+ return;
+ case 10:
+ !this.e && (this.e = new y5d(A2, this, 10, 9));
+ Uxd(this.e);
+ return;
+ case 11:
+ jmd(this, null);
+ return;
+ }
+ fkd(this, a);
+ };
+ _.Ib = function Amd() {
+ return qmd(this);
+ };
+ _.b = 0;
+ _.c = 0;
+ _.d = null;
+ _.j = 0;
+ _.k = 0;
+ mdb(rte, "ElkEdgeSectionImpl", 439);
+ bcb(150, 115, { 105: 1, 92: 1, 90: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 });
+ _._g = function Emd(a, b, c) {
+ var d;
+ if (a == 0) {
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ }
+ return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c);
+ };
+ _.hh = function Fmd(a, b, c) {
+ var d, e;
+ if (b == 0) {
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c);
+ };
+ _.jh = function Gmd(a, b, c) {
+ var d, e;
+ if (b == 0) {
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c);
+ };
+ _.lh = function Hmd(a) {
+ var b;
+ if (a == 0) {
+ return !!this.Ab && this.Ab.i != 0;
+ }
+ return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.oh = function Imd(a) {
+ return Bmd(this, a);
+ };
+ _.sh = function Jmd(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ }
+ did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b);
+ };
+ _.uh = function Kmd(a) {
+ Cjd(this, 128, a);
+ };
+ _.zh = function Lmd() {
+ return jGd(), ZFd;
+ };
+ _.Bh = function Mmd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ }
+ eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.Gh = function Nmd() {
+ this.Bb |= 1;
+ };
+ _.Hh = function Omd(a) {
+ return Dmd(this, a);
+ };
+ _.Bb = 0;
+ mdb(qte, "EModelElementImpl", 150);
+ bcb(704, 150, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, $md);
+ _.Ih = function _md(a, b) {
+ return Vmd(this, a, b);
+ };
+ _.Jh = function and(a) {
+ var b, c, d, e, f;
+ if (this.a != bKd(a) || (a.Bb & 256) != 0) {
+ throw vbb(new Wdb(xte + a.zb + ute));
+ }
+ for (d = _Kd(a); VKd(d.a).i != 0; ) {
+ c = BD(nOd(d, 0, (b = BD(qud(VKd(d.a), 0), 87), f = b.c, JD(f, 88) ? BD(f, 26) : (jGd(), _Fd))), 26);
+ if (dKd(c)) {
+ e = bKd(c).Nh().Jh(c);
+ BD(e, 49).th(a);
+ return e;
+ }
+ d = _Kd(c);
+ }
+ return (a.D != null ? a.D : a.B) == "java.util.Map$Entry" ? new lHd(a) : new _Gd(a);
+ };
+ _.Kh = function bnd(a, b) {
+ return Wmd(this, a, b);
+ };
+ _._g = function cnd(a, b, c) {
+ var d;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.a;
+ }
+ return bid(this, a - aLd((jGd(), WFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? WFd : d), a), b, c);
+ };
+ _.hh = function dnd(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c);
+ case 1:
+ !!this.a && (c = BD(this.a, 49).ih(this, 4, o5, c));
+ return Tmd(this, BD(a, 235), c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), WFd) : d), b), 66), e.Nj().Qj(this, yjd(this), b - aLd((jGd(), WFd)), a, c);
+ };
+ _.jh = function end(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 1:
+ return Tmd(this, null, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), WFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), WFd)), a, c);
+ };
+ _.lh = function fnd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return !!this.a;
+ }
+ return cid(this, a - aLd((jGd(), WFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? WFd : b), a));
+ };
+ _.sh = function gnd(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ Ymd(this, BD(b, 235));
+ return;
+ }
+ did(this, a - aLd((jGd(), WFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? WFd : c), a), b);
+ };
+ _.zh = function hnd() {
+ return jGd(), WFd;
+ };
+ _.Bh = function ind(a) {
+ var b;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ Ymd(this, null);
+ return;
+ }
+ eid(this, a - aLd((jGd(), WFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? WFd : b), a));
+ };
+ var Pmd, Qmd, Rmd;
+ mdb(qte, "EFactoryImpl", 704);
+ bcb(zte, 704, { 105: 1, 2014: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, knd);
+ _.Ih = function lnd(a, b) {
+ switch (a.yj()) {
+ case 12:
+ return BD(b, 146).tg();
+ case 13:
+ return fcb(b);
+ default:
+ throw vbb(new Wdb(tte + a.ne() + ute));
+ }
+ };
+ _.Jh = function mnd(a) {
+ var b, c, d, e, f, g, h, i;
+ switch (a.G == -1 && (a.G = (b = bKd(a), b ? HLd(b.Mh(), a) : -1)), a.G) {
+ case 4:
+ return f = new Jod(), f;
+ case 6:
+ return g = new apd(), g;
+ case 7:
+ return h = new ppd(), h;
+ case 8:
+ return d = new Tld(), d;
+ case 9:
+ return c = new xkd(), c;
+ case 10:
+ return e = new rmd(), e;
+ case 11:
+ return i = new Bpd(), i;
+ default:
+ throw vbb(new Wdb(xte + a.zb + ute));
+ }
+ };
+ _.Kh = function nnd(a, b) {
+ switch (a.yj()) {
+ case 13:
+ case 12:
+ return null;
+ default:
+ throw vbb(new Wdb(tte + a.ne() + ute));
+ }
+ };
+ mdb(rte, "ElkGraphFactoryImpl", zte);
+ bcb(438, 150, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 });
+ _.Wg = function rnd() {
+ var a, b;
+ b = (a = BD(Ajd(this, 16), 26), pNd(TKd(!a ? this.zh() : a)));
+ return b == null ? (nRd(), nRd(), mRd) : new GRd(this, b);
+ };
+ _._g = function snd(a, b, c) {
+ var d;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.ne();
+ }
+ return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c);
+ };
+ _.lh = function tnd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ }
+ return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.sh = function und(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ this.Lh(GD(b));
+ return;
+ }
+ did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b);
+ };
+ _.zh = function vnd() {
+ return jGd(), $Fd;
+ };
+ _.Bh = function wnd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ this.Lh(null);
+ return;
+ }
+ eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.ne = function xnd() {
+ return this.zb;
+ };
+ _.Lh = function ynd(a) {
+ pnd(this, a);
+ };
+ _.Ib = function znd() {
+ return qnd(this);
+ };
+ _.zb = null;
+ mdb(qte, "ENamedElementImpl", 438);
+ bcb(179, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1 }, eod);
+ _.Qg = function god(a) {
+ return Snd(this, a);
+ };
+ _._g = function hod(a, b, c) {
+ var d;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return this.yb;
+ case 3:
+ return this.xb;
+ case 4:
+ return this.sb;
+ case 5:
+ return !this.rb && (this.rb = new jUd(this, d5, this)), this.rb;
+ case 6:
+ return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), this.vb;
+ case 7:
+ if (b)
+ return this.Db >> 16 == 7 ? BD(this.Cb, 235) : null;
+ return Ind(this);
+ }
+ return bid(this, a - aLd((jGd(), cGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? cGd : d), a), b, c);
+ };
+ _.hh = function iod(a, b, c) {
+ var d, e, f;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c);
+ case 4:
+ !!this.sb && (c = BD(this.sb, 49).ih(this, 1, i5, c));
+ return Jnd(this, BD(a, 471), c);
+ case 5:
+ return !this.rb && (this.rb = new jUd(this, d5, this)), Sxd(this.rb, a, c);
+ case 6:
+ return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), Sxd(this.vb, a, c);
+ case 7:
+ !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? Snd(this, c) : this.Cb.ih(this, -1 - e, null, c)));
+ return _hd(this, a, 7, c);
+ }
+ return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), cGd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), cGd)), a, c);
+ };
+ _.jh = function jod(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 4:
+ return Jnd(this, null, c);
+ case 5:
+ return !this.rb && (this.rb = new jUd(this, d5, this)), Txd(this.rb, a, c);
+ case 6:
+ return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), Txd(this.vb, a, c);
+ case 7:
+ return _hd(this, null, 7, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), cGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), cGd)), a, c);
+ };
+ _.lh = function kod(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.yb != null;
+ case 3:
+ return this.xb != null;
+ case 4:
+ return !!this.sb;
+ case 5:
+ return !!this.rb && this.rb.i != 0;
+ case 6:
+ return !!this.vb && this.vb.i != 0;
+ case 7:
+ return !!Ind(this);
+ }
+ return cid(this, a - aLd((jGd(), cGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? cGd : b), a));
+ };
+ _.oh = function lod(a) {
+ var b;
+ b = Und(this, a);
+ return b ? b : Bmd(this, a);
+ };
+ _.sh = function mod(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ pnd(this, GD(b));
+ return;
+ case 2:
+ dod(this, GD(b));
+ return;
+ case 3:
+ cod(this, GD(b));
+ return;
+ case 4:
+ bod(this, BD(b, 471));
+ return;
+ case 5:
+ !this.rb && (this.rb = new jUd(this, d5, this));
+ Uxd(this.rb);
+ !this.rb && (this.rb = new jUd(this, d5, this));
+ ytd(this.rb, BD(b, 14));
+ return;
+ case 6:
+ !this.vb && (this.vb = new gUd(o5, this, 6, 7));
+ Uxd(this.vb);
+ !this.vb && (this.vb = new gUd(o5, this, 6, 7));
+ ytd(this.vb, BD(b, 14));
+ return;
+ }
+ did(this, a - aLd((jGd(), cGd)), XKd((c = BD(Ajd(this, 16), 26), !c ? cGd : c), a), b);
+ };
+ _.vh = function nod(a) {
+ var b, c;
+ if (!!a && !!this.rb) {
+ for (c = new Fyd(this.rb); c.e != c.i.gc(); ) {
+ b = Dyd(c);
+ JD(b, 351) && (BD(b, 351).w = null);
+ }
+ }
+ Cjd(this, 64, a);
+ };
+ _.zh = function ood() {
+ return jGd(), cGd;
+ };
+ _.Bh = function pod(a) {
+ var b;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ pnd(this, null);
+ return;
+ case 2:
+ dod(this, null);
+ return;
+ case 3:
+ cod(this, null);
+ return;
+ case 4:
+ bod(this, null);
+ return;
+ case 5:
+ !this.rb && (this.rb = new jUd(this, d5, this));
+ Uxd(this.rb);
+ return;
+ case 6:
+ !this.vb && (this.vb = new gUd(o5, this, 6, 7));
+ Uxd(this.vb);
+ return;
+ }
+ eid(this, a - aLd((jGd(), cGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? cGd : b), a));
+ };
+ _.Gh = function qod() {
+ Tnd(this);
+ };
+ _.Mh = function rod() {
+ return !this.rb && (this.rb = new jUd(this, d5, this)), this.rb;
+ };
+ _.Nh = function sod() {
+ return this.sb;
+ };
+ _.Oh = function tod() {
+ return this.ub;
+ };
+ _.Ph = function uod() {
+ return this.xb;
+ };
+ _.Qh = function vod() {
+ return this.yb;
+ };
+ _.Rh = function wod(a) {
+ this.ub = a;
+ };
+ _.Ib = function xod() {
+ var a;
+ if ((this.Db & 64) != 0)
+ return qnd(this);
+ a = new Jfb(qnd(this));
+ a.a += " (nsURI: ";
+ Efb(a, this.yb);
+ a.a += ", nsPrefix: ";
+ Efb(a, this.xb);
+ a.a += ")";
+ return a.a;
+ };
+ _.xb = null;
+ _.yb = null;
+ mdb(qte, "EPackageImpl", 179);
+ bcb(555, 179, { 105: 1, 2016: 1, 555: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1 }, Bod);
+ _.q = false;
+ _.r = false;
+ var yod = false;
+ mdb(rte, "ElkGraphPackageImpl", 555);
+ bcb(354, 724, { 105: 1, 413: 1, 160: 1, 137: 1, 470: 1, 354: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Jod);
+ _.Qg = function Kod(a) {
+ return Eod(this, a);
+ };
+ _._g = function Lod(a, b, c) {
+ switch (a) {
+ case 7:
+ return Fod(this);
+ case 8:
+ return this.a;
+ }
+ return Xkd(this, a, b, c);
+ };
+ _.hh = function Mod(a, b, c) {
+ var d;
+ switch (b) {
+ case 7:
+ !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? Eod(this, c) : this.Cb.ih(this, -1 - d, null, c)));
+ return Dod(this, BD(a, 160), c);
+ }
+ return Fkd(this, a, b, c);
+ };
+ _.jh = function Nod(a, b, c) {
+ if (b == 7) {
+ return Dod(this, null, c);
+ }
+ return Gkd(this, a, b, c);
+ };
+ _.lh = function Ood(a) {
+ switch (a) {
+ case 7:
+ return !!Fod(this);
+ case 8:
+ return !dfb("", this.a);
+ }
+ return Ykd(this, a);
+ };
+ _.sh = function Pod(a, b) {
+ switch (a) {
+ case 7:
+ God(this, BD(b, 160));
+ return;
+ case 8:
+ Hod(this, GD(b));
+ return;
+ }
+ Zkd(this, a, b);
+ };
+ _.zh = function Qod() {
+ return Thd(), Nhd;
+ };
+ _.Bh = function Rod(a) {
+ switch (a) {
+ case 7:
+ God(this, null);
+ return;
+ case 8:
+ Hod(this, "");
+ return;
+ }
+ $kd(this, a);
+ };
+ _.Ib = function Sod() {
+ return Iod(this);
+ };
+ _.a = "";
+ mdb(rte, "ElkLabelImpl", 354);
+ bcb(239, 725, { 105: 1, 413: 1, 82: 1, 160: 1, 33: 1, 470: 1, 239: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, apd);
+ _.Qg = function bpd(a) {
+ return Uod(this, a);
+ };
+ _._g = function cpd(a, b, c) {
+ switch (a) {
+ case 9:
+ return !this.c && (this.c = new cUd(F2, this, 9, 9)), this.c;
+ case 10:
+ return !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a;
+ case 11:
+ return Xod(this);
+ case 12:
+ return !this.b && (this.b = new cUd(B2, this, 12, 3)), this.b;
+ case 13:
+ return Bcb(), !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a.i > 0 ? true : false;
+ }
+ return uld(this, a, b, c);
+ };
+ _.hh = function dpd(a, b, c) {
+ var d;
+ switch (b) {
+ case 9:
+ return !this.c && (this.c = new cUd(F2, this, 9, 9)), Sxd(this.c, a, c);
+ case 10:
+ return !this.a && (this.a = new cUd(E2, this, 10, 11)), Sxd(this.a, a, c);
+ case 11:
+ !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? Uod(this, c) : this.Cb.ih(this, -1 - d, null, c)));
+ return Tod(this, BD(a, 33), c);
+ case 12:
+ return !this.b && (this.b = new cUd(B2, this, 12, 3)), Sxd(this.b, a, c);
+ }
+ return vld(this, a, b, c);
+ };
+ _.jh = function epd(a, b, c) {
+ switch (b) {
+ case 9:
+ return !this.c && (this.c = new cUd(F2, this, 9, 9)), Txd(this.c, a, c);
+ case 10:
+ return !this.a && (this.a = new cUd(E2, this, 10, 11)), Txd(this.a, a, c);
+ case 11:
+ return Tod(this, null, c);
+ case 12:
+ return !this.b && (this.b = new cUd(B2, this, 12, 3)), Txd(this.b, a, c);
+ }
+ return wld(this, a, b, c);
+ };
+ _.lh = function fpd(a) {
+ switch (a) {
+ case 9:
+ return !!this.c && this.c.i != 0;
+ case 10:
+ return !!this.a && this.a.i != 0;
+ case 11:
+ return !!Xod(this);
+ case 12:
+ return !!this.b && this.b.i != 0;
+ case 13:
+ return !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a.i > 0;
+ }
+ return xld(this, a);
+ };
+ _.sh = function gpd(a, b) {
+ switch (a) {
+ case 9:
+ !this.c && (this.c = new cUd(F2, this, 9, 9));
+ Uxd(this.c);
+ !this.c && (this.c = new cUd(F2, this, 9, 9));
+ ytd(this.c, BD(b, 14));
+ return;
+ case 10:
+ !this.a && (this.a = new cUd(E2, this, 10, 11));
+ Uxd(this.a);
+ !this.a && (this.a = new cUd(E2, this, 10, 11));
+ ytd(this.a, BD(b, 14));
+ return;
+ case 11:
+ $od(this, BD(b, 33));
+ return;
+ case 12:
+ !this.b && (this.b = new cUd(B2, this, 12, 3));
+ Uxd(this.b);
+ !this.b && (this.b = new cUd(B2, this, 12, 3));
+ ytd(this.b, BD(b, 14));
+ return;
+ }
+ yld(this, a, b);
+ };
+ _.zh = function hpd() {
+ return Thd(), Ohd;
+ };
+ _.Bh = function ipd(a) {
+ switch (a) {
+ case 9:
+ !this.c && (this.c = new cUd(F2, this, 9, 9));
+ Uxd(this.c);
+ return;
+ case 10:
+ !this.a && (this.a = new cUd(E2, this, 10, 11));
+ Uxd(this.a);
+ return;
+ case 11:
+ $od(this, null);
+ return;
+ case 12:
+ !this.b && (this.b = new cUd(B2, this, 12, 3));
+ Uxd(this.b);
+ return;
+ }
+ zld(this, a);
+ };
+ _.Ib = function jpd() {
+ return _od(this);
+ };
+ mdb(rte, "ElkNodeImpl", 239);
+ bcb(186, 725, { 105: 1, 413: 1, 82: 1, 160: 1, 118: 1, 470: 1, 186: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, ppd);
+ _.Qg = function qpd(a) {
+ return lpd(this, a);
+ };
+ _._g = function rpd(a, b, c) {
+ if (a == 9) {
+ return mpd(this);
+ }
+ return uld(this, a, b, c);
+ };
+ _.hh = function spd(a, b, c) {
+ var d;
+ switch (b) {
+ case 9:
+ !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? lpd(this, c) : this.Cb.ih(this, -1 - d, null, c)));
+ return kpd(this, BD(a, 33), c);
+ }
+ return vld(this, a, b, c);
+ };
+ _.jh = function tpd(a, b, c) {
+ if (b == 9) {
+ return kpd(this, null, c);
+ }
+ return wld(this, a, b, c);
+ };
+ _.lh = function upd(a) {
+ if (a == 9) {
+ return !!mpd(this);
+ }
+ return xld(this, a);
+ };
+ _.sh = function vpd(a, b) {
+ switch (a) {
+ case 9:
+ npd(this, BD(b, 33));
+ return;
+ }
+ yld(this, a, b);
+ };
+ _.zh = function wpd() {
+ return Thd(), Phd;
+ };
+ _.Bh = function xpd(a) {
+ switch (a) {
+ case 9:
+ npd(this, null);
+ return;
+ }
+ zld(this, a);
+ };
+ _.Ib = function ypd() {
+ return opd(this);
+ };
+ mdb(rte, "ElkPortImpl", 186);
+ var J4 = odb(Tte, "BasicEMap/Entry");
+ bcb(1092, 115, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Bpd);
+ _.Fb = function Hpd(a) {
+ return this === a;
+ };
+ _.cd = function Jpd() {
+ return this.b;
+ };
+ _.Hb = function Lpd() {
+ return FCb(this);
+ };
+ _.Uh = function Npd(a) {
+ zpd(this, BD(a, 146));
+ };
+ _._g = function Cpd(a, b, c) {
+ switch (a) {
+ case 0:
+ return this.b;
+ case 1:
+ return this.c;
+ }
+ return fid(this, a, b, c);
+ };
+ _.lh = function Dpd(a) {
+ switch (a) {
+ case 0:
+ return !!this.b;
+ case 1:
+ return this.c != null;
+ }
+ return mid(this, a);
+ };
+ _.sh = function Epd(a, b) {
+ switch (a) {
+ case 0:
+ zpd(this, BD(b, 146));
+ return;
+ case 1:
+ Apd(this, b);
+ return;
+ }
+ yid(this, a, b);
+ };
+ _.zh = function Fpd() {
+ return Thd(), Qhd;
+ };
+ _.Bh = function Gpd(a) {
+ switch (a) {
+ case 0:
+ zpd(this, null);
+ return;
+ case 1:
+ Apd(this, null);
+ return;
+ }
+ Cid(this, a);
+ };
+ _.Sh = function Ipd() {
+ var a;
+ if (this.a == -1) {
+ a = this.b;
+ this.a = !a ? 0 : tb(a);
+ }
+ return this.a;
+ };
+ _.dd = function Kpd() {
+ return this.c;
+ };
+ _.Th = function Mpd(a) {
+ this.a = a;
+ };
+ _.ed = function Opd(a) {
+ var b;
+ b = this.c;
+ Apd(this, a);
+ return b;
+ };
+ _.Ib = function Ppd() {
+ var a;
+ if ((this.Db & 64) != 0)
+ return Eid(this);
+ a = new Ufb();
+ Qfb(Qfb(Qfb(a, this.b ? this.b.tg() : Xhe), gne), xfb(this.c));
+ return a.a;
+ };
+ _.a = -1;
+ _.c = null;
+ var S2 = mdb(rte, "ElkPropertyToValueMapEntryImpl", 1092);
+ bcb(984, 1, {}, bqd);
+ mdb(Wte, "JsonAdapter", 984);
+ bcb(210, 60, Tie, cqd);
+ mdb(Wte, "JsonImportException", 210);
+ bcb(857, 1, {}, ird);
+ mdb(Wte, "JsonImporter", 857);
+ bcb(891, 1, {}, jrd);
+ mdb(Wte, "JsonImporter/lambda$0$Type", 891);
+ bcb(892, 1, {}, krd);
+ mdb(Wte, "JsonImporter/lambda$1$Type", 892);
+ bcb(900, 1, {}, lrd);
+ mdb(Wte, "JsonImporter/lambda$10$Type", 900);
+ bcb(902, 1, {}, mrd);
+ mdb(Wte, "JsonImporter/lambda$11$Type", 902);
+ bcb(903, 1, {}, nrd);
+ mdb(Wte, "JsonImporter/lambda$12$Type", 903);
+ bcb(909, 1, {}, ord);
+ mdb(Wte, "JsonImporter/lambda$13$Type", 909);
+ bcb(908, 1, {}, prd);
+ mdb(Wte, "JsonImporter/lambda$14$Type", 908);
+ bcb(904, 1, {}, qrd);
+ mdb(Wte, "JsonImporter/lambda$15$Type", 904);
+ bcb(905, 1, {}, rrd);
+ mdb(Wte, "JsonImporter/lambda$16$Type", 905);
+ bcb(906, 1, {}, srd);
+ mdb(Wte, "JsonImporter/lambda$17$Type", 906);
+ bcb(907, 1, {}, trd);
+ mdb(Wte, "JsonImporter/lambda$18$Type", 907);
+ bcb(912, 1, {}, urd);
+ mdb(Wte, "JsonImporter/lambda$19$Type", 912);
+ bcb(893, 1, {}, vrd);
+ mdb(Wte, "JsonImporter/lambda$2$Type", 893);
+ bcb(910, 1, {}, wrd);
+ mdb(Wte, "JsonImporter/lambda$20$Type", 910);
+ bcb(911, 1, {}, xrd);
+ mdb(Wte, "JsonImporter/lambda$21$Type", 911);
+ bcb(915, 1, {}, yrd);
+ mdb(Wte, "JsonImporter/lambda$22$Type", 915);
+ bcb(913, 1, {}, zrd);
+ mdb(Wte, "JsonImporter/lambda$23$Type", 913);
+ bcb(914, 1, {}, Ard);
+ mdb(Wte, "JsonImporter/lambda$24$Type", 914);
+ bcb(917, 1, {}, Brd);
+ mdb(Wte, "JsonImporter/lambda$25$Type", 917);
+ bcb(916, 1, {}, Crd);
+ mdb(Wte, "JsonImporter/lambda$26$Type", 916);
+ bcb(918, 1, qie, Drd);
+ _.td = function Erd(a) {
+ Bqd(this.b, this.a, GD(a));
+ };
+ mdb(Wte, "JsonImporter/lambda$27$Type", 918);
+ bcb(919, 1, qie, Frd);
+ _.td = function Grd(a) {
+ Cqd(this.b, this.a, GD(a));
+ };
+ mdb(Wte, "JsonImporter/lambda$28$Type", 919);
+ bcb(920, 1, {}, Hrd);
+ mdb(Wte, "JsonImporter/lambda$29$Type", 920);
+ bcb(896, 1, {}, Ird);
+ mdb(Wte, "JsonImporter/lambda$3$Type", 896);
+ bcb(921, 1, {}, Jrd);
+ mdb(Wte, "JsonImporter/lambda$30$Type", 921);
+ bcb(922, 1, {}, Krd);
+ mdb(Wte, "JsonImporter/lambda$31$Type", 922);
+ bcb(923, 1, {}, Lrd);
+ mdb(Wte, "JsonImporter/lambda$32$Type", 923);
+ bcb(924, 1, {}, Mrd);
+ mdb(Wte, "JsonImporter/lambda$33$Type", 924);
+ bcb(925, 1, {}, Nrd);
+ mdb(Wte, "JsonImporter/lambda$34$Type", 925);
+ bcb(859, 1, {}, Prd);
+ mdb(Wte, "JsonImporter/lambda$35$Type", 859);
+ bcb(929, 1, {}, Rrd);
+ mdb(Wte, "JsonImporter/lambda$36$Type", 929);
+ bcb(926, 1, qie, Srd);
+ _.td = function Trd(a) {
+ Lqd(this.a, BD(a, 469));
+ };
+ mdb(Wte, "JsonImporter/lambda$37$Type", 926);
+ bcb(927, 1, qie, Urd);
+ _.td = function Vrd(a) {
+ Mqd(this.a, this.b, BD(a, 202));
+ };
+ mdb(Wte, "JsonImporter/lambda$38$Type", 927);
+ bcb(928, 1, qie, Wrd);
+ _.td = function Xrd(a) {
+ Nqd(this.a, this.b, BD(a, 202));
+ };
+ mdb(Wte, "JsonImporter/lambda$39$Type", 928);
+ bcb(894, 1, {}, Yrd);
+ mdb(Wte, "JsonImporter/lambda$4$Type", 894);
+ bcb(930, 1, qie, Zrd);
+ _.td = function $rd(a) {
+ Oqd(this.a, BD(a, 8));
+ };
+ mdb(Wte, "JsonImporter/lambda$40$Type", 930);
+ bcb(895, 1, {}, _rd);
+ mdb(Wte, "JsonImporter/lambda$5$Type", 895);
+ bcb(899, 1, {}, asd);
+ mdb(Wte, "JsonImporter/lambda$6$Type", 899);
+ bcb(897, 1, {}, bsd);
+ mdb(Wte, "JsonImporter/lambda$7$Type", 897);
+ bcb(898, 1, {}, csd);
+ mdb(Wte, "JsonImporter/lambda$8$Type", 898);
+ bcb(901, 1, {}, dsd);
+ mdb(Wte, "JsonImporter/lambda$9$Type", 901);
+ bcb(948, 1, qie, msd);
+ _.td = function nsd(a) {
+ Qpd(this.a, new yC(GD(a)));
+ };
+ mdb(Wte, "JsonMetaDataConverter/lambda$0$Type", 948);
+ bcb(949, 1, qie, osd);
+ _.td = function psd(a) {
+ isd(this.a, BD(a, 237));
+ };
+ mdb(Wte, "JsonMetaDataConverter/lambda$1$Type", 949);
+ bcb(950, 1, qie, qsd);
+ _.td = function rsd(a) {
+ jsd(this.a, BD(a, 149));
+ };
+ mdb(Wte, "JsonMetaDataConverter/lambda$2$Type", 950);
+ bcb(951, 1, qie, ssd);
+ _.td = function tsd(a) {
+ ksd(this.a, BD(a, 175));
+ };
+ mdb(Wte, "JsonMetaDataConverter/lambda$3$Type", 951);
+ bcb(237, 22, { 3: 1, 35: 1, 22: 1, 237: 1 }, Dsd);
+ var usd, vsd, wsd, xsd, ysd, zsd, Asd, Bsd;
+ var O3 = ndb(Hle, "GraphFeature", 237, CI, Fsd, Esd);
+ var Gsd;
+ bcb(13, 1, { 35: 1, 146: 1 }, Lsd, Msd, Nsd, Osd);
+ _.wd = function Psd(a) {
+ return Isd(this, BD(a, 146));
+ };
+ _.Fb = function Qsd(a) {
+ return Jsd(this, a);
+ };
+ _.wg = function Rsd() {
+ return Ksd(this);
+ };
+ _.tg = function Ssd() {
+ return this.b;
+ };
+ _.Hb = function Tsd() {
+ return LCb(this.b);
+ };
+ _.Ib = function Usd() {
+ return this.b;
+ };
+ mdb(Hle, "Property", 13);
+ bcb(818, 1, Dke, Wsd);
+ _.ue = function Xsd(a, b) {
+ return Vsd(this, BD(a, 94), BD(b, 94));
+ };
+ _.Fb = function Ysd(a) {
+ return this === a;
+ };
+ _.ve = function Zsd() {
+ return new tpb(this);
+ };
+ mdb(Hle, "PropertyHolderComparator", 818);
+ bcb(695, 1, aie, qtd);
+ _.Nb = function rtd(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function ttd() {
+ return ptd(this);
+ };
+ _.Qb = function utd() {
+ Srb();
+ };
+ _.Ob = function std() {
+ return !!this.a;
+ };
+ mdb(jue, "ElkGraphUtil/AncestorIterator", 695);
+ var T4 = odb(Tte, "EList");
+ bcb(67, 52, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1 });
+ _.Vc = function Jtd(a, b) {
+ vtd(this, a, b);
+ };
+ _.Fc = function Ktd(a) {
+ return wtd(this, a);
+ };
+ _.Wc = function Ltd(a, b) {
+ return xtd(this, a, b);
+ };
+ _.Gc = function Mtd(a) {
+ return ytd(this, a);
+ };
+ _.Zh = function Ntd() {
+ return new $yd(this);
+ };
+ _.$h = function Otd() {
+ return new bzd(this);
+ };
+ _._h = function Ptd(a) {
+ return ztd(this, a);
+ };
+ _.ai = function Qtd() {
+ return true;
+ };
+ _.bi = function Rtd(a, b) {
+ };
+ _.ci = function Std() {
+ };
+ _.di = function Ttd(a, b) {
+ Atd(this, a, b);
+ };
+ _.ei = function Utd(a, b, c) {
+ };
+ _.fi = function Vtd(a, b) {
+ };
+ _.gi = function Wtd(a, b, c) {
+ };
+ _.Fb = function Xtd(a) {
+ return Btd(this, a);
+ };
+ _.Hb = function Ytd() {
+ return Etd(this);
+ };
+ _.hi = function Ztd() {
+ return false;
+ };
+ _.Kc = function $td() {
+ return new Fyd(this);
+ };
+ _.Yc = function _td() {
+ return new Oyd(this);
+ };
+ _.Zc = function aud(a) {
+ var b;
+ b = this.gc();
+ if (a < 0 || a > b)
+ throw vbb(new Cyd(a, b));
+ return new Pyd(this, a);
+ };
+ _.ji = function bud(a, b) {
+ this.ii(a, this.Xc(b));
+ };
+ _.Mc = function cud(a) {
+ return Ftd(this, a);
+ };
+ _.li = function dud(a, b) {
+ return b;
+ };
+ _._c = function eud(a, b) {
+ return Gtd(this, a, b);
+ };
+ _.Ib = function fud() {
+ return Htd(this);
+ };
+ _.ni = function gud() {
+ return true;
+ };
+ _.oi = function hud(a, b) {
+ return Itd(this, b);
+ };
+ mdb(Tte, "AbstractEList", 67);
+ bcb(63, 67, oue, yud, zud, Aud);
+ _.Vh = function Bud(a, b) {
+ return iud(this, a, b);
+ };
+ _.Wh = function Cud(a) {
+ return jud(this, a);
+ };
+ _.Xh = function Dud(a, b) {
+ kud(this, a, b);
+ };
+ _.Yh = function Eud(a) {
+ lud(this, a);
+ };
+ _.pi = function Fud(a) {
+ return nud(this, a);
+ };
+ _.$b = function Gud() {
+ oud(this);
+ };
+ _.Hc = function Hud(a) {
+ return pud(this, a);
+ };
+ _.Xb = function Iud(a) {
+ return qud(this, a);
+ };
+ _.qi = function Jud(a) {
+ var b, c, d;
+ ++this.j;
+ c = this.g == null ? 0 : this.g.length;
+ if (a > c) {
+ d = this.g;
+ b = c + (c / 2 | 0) + 4;
+ b < a && (b = a);
+ this.g = this.ri(b);
+ d != null && $fb(d, 0, this.g, 0, this.i);
+ }
+ };
+ _.Xc = function Kud(a) {
+ return rud(this, a);
+ };
+ _.dc = function Lud() {
+ return this.i == 0;
+ };
+ _.ii = function Mud(a, b) {
+ return sud(this, a, b);
+ };
+ _.ri = function Nud(a) {
+ return KC(SI, Uhe, 1, a, 5, 1);
+ };
+ _.ki = function Oud(a) {
+ return this.g[a];
+ };
+ _.$c = function Pud(a) {
+ return tud(this, a);
+ };
+ _.mi = function Qud(a, b) {
+ return uud(this, a, b);
+ };
+ _.gc = function Rud() {
+ return this.i;
+ };
+ _.Pc = function Sud() {
+ return wud(this);
+ };
+ _.Qc = function Tud(a) {
+ return xud(this, a);
+ };
+ _.i = 0;
+ var y4 = mdb(Tte, "BasicEList", 63);
+ var X4 = odb(Tte, "TreeIterator");
+ bcb(694, 63, pue);
+ _.Nb = function Xud(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function Yud() {
+ return this.g == null && !this.c ? Uud(this) : this.g == null || this.i != 0 && BD(this.g[this.i - 1], 47).Ob();
+ };
+ _.Pb = function Zud() {
+ return Vud(this);
+ };
+ _.Qb = function $ud() {
+ if (!this.e) {
+ throw vbb(new Zdb("There is no valid object to remove."));
+ }
+ this.e.Qb();
+ };
+ _.c = false;
+ mdb(Tte, "AbstractTreeIterator", 694);
+ bcb(685, 694, pue, _ud);
+ _.si = function avd(a) {
+ var b;
+ b = BD(a, 56).Wg().Kc();
+ JD(b, 279) && BD(b, 279).Nk(new bvd());
+ return b;
+ };
+ mdb(jue, "ElkGraphUtil/PropertiesSkippingTreeIterator", 685);
+ bcb(952, 1, {}, bvd);
+ mdb(jue, "ElkGraphUtil/PropertiesSkippingTreeIterator/1", 952);
+ var cvd, dvd;
+ var Y3 = mdb(jue, "ElkReflect", null);
+ bcb(889, 1, hse, jvd);
+ _.vg = function kvd(a) {
+ return evd(), sqb(BD(a, 174));
+ };
+ mdb(jue, "ElkReflect/lambda$0$Type", 889);
+ var lvd;
+ odb(Tte, "ResourceLocator");
+ bcb(1051, 1, {});
+ mdb(Tte, "DelegatingResourceLocator", 1051);
+ bcb(1052, 1051, {});
+ mdb("org.eclipse.emf.common", "EMFPlugin", 1052);
+ var $3 = odb(cve, "Adapter");
+ var _3 = odb(cve, "Notification");
+ bcb(1153, 1, dve);
+ _.ti = function vvd() {
+ return this.d;
+ };
+ _.ui = function wvd(a) {
+ };
+ _.vi = function xvd(a) {
+ this.d = a;
+ };
+ _.wi = function yvd(a) {
+ this.d == a && (this.d = null);
+ };
+ _.d = null;
+ mdb(hte, "AdapterImpl", 1153);
+ bcb(1995, 67, eve);
+ _.Vh = function Fvd(a, b) {
+ return zvd(this, a, b);
+ };
+ _.Wh = function Gvd(a) {
+ var b, c, d;
+ ++this.j;
+ if (a.dc()) {
+ return false;
+ } else {
+ b = this.Vi();
+ for (d = a.Kc(); d.Ob(); ) {
+ c = d.Pb();
+ this.Ii(this.oi(b, c));
+ ++b;
+ }
+ return true;
+ }
+ };
+ _.Xh = function Hvd(a, b) {
+ Avd(this, a, b);
+ };
+ _.Yh = function Ivd(a) {
+ Bvd(this, a);
+ };
+ _.Gi = function Jvd() {
+ return this.Ji();
+ };
+ _.$b = function Kvd() {
+ Cvd(this, this.Vi(), this.Wi());
+ };
+ _.Hc = function Lvd(a) {
+ return this.Li(a);
+ };
+ _.Ic = function Mvd(a) {
+ return this.Mi(a);
+ };
+ _.Hi = function Nvd(a, b) {
+ this.Si().jm();
+ };
+ _.Ii = function Ovd(a) {
+ this.Si().jm();
+ };
+ _.Ji = function Pvd() {
+ return this.Si();
+ };
+ _.Ki = function Qvd() {
+ this.Si().jm();
+ };
+ _.Li = function Rvd(a) {
+ return this.Si().jm();
+ };
+ _.Mi = function Svd(a) {
+ return this.Si().jm();
+ };
+ _.Ni = function Tvd(a) {
+ return this.Si().jm();
+ };
+ _.Oi = function Uvd(a) {
+ return this.Si().jm();
+ };
+ _.Pi = function Vvd() {
+ return this.Si().jm();
+ };
+ _.Qi = function Wvd(a) {
+ return this.Si().jm();
+ };
+ _.Ri = function Xvd() {
+ return this.Si().jm();
+ };
+ _.Ti = function Yvd(a) {
+ return this.Si().jm();
+ };
+ _.Ui = function Zvd(a, b) {
+ return this.Si().jm();
+ };
+ _.Vi = function $vd() {
+ return this.Si().jm();
+ };
+ _.Wi = function _vd() {
+ return this.Si().jm();
+ };
+ _.Xi = function awd(a) {
+ return this.Si().jm();
+ };
+ _.Yi = function bwd() {
+ return this.Si().jm();
+ };
+ _.Fb = function cwd(a) {
+ return this.Ni(a);
+ };
+ _.Xb = function dwd(a) {
+ return this.li(a, this.Oi(a));
+ };
+ _.Hb = function ewd() {
+ return this.Pi();
+ };
+ _.Xc = function fwd(a) {
+ return this.Qi(a);
+ };
+ _.dc = function gwd() {
+ return this.Ri();
+ };
+ _.ii = function hwd(a, b) {
+ return Dvd(this, a, b);
+ };
+ _.ki = function iwd(a) {
+ return this.Oi(a);
+ };
+ _.$c = function jwd(a) {
+ return Evd(this, a);
+ };
+ _.Mc = function kwd(a) {
+ var b;
+ b = this.Xc(a);
+ if (b >= 0) {
+ this.$c(b);
+ return true;
+ } else {
+ return false;
+ }
+ };
+ _.mi = function lwd(a, b) {
+ return this.Ui(a, this.oi(a, b));
+ };
+ _.gc = function mwd() {
+ return this.Vi();
+ };
+ _.Pc = function nwd() {
+ return this.Wi();
+ };
+ _.Qc = function owd(a) {
+ return this.Xi(a);
+ };
+ _.Ib = function pwd() {
+ return this.Yi();
+ };
+ mdb(Tte, "DelegatingEList", 1995);
+ bcb(1996, 1995, eve);
+ _.Vh = function xwd(a, b) {
+ return qwd(this, a, b);
+ };
+ _.Wh = function ywd(a) {
+ return this.Vh(this.Vi(), a);
+ };
+ _.Xh = function zwd(a, b) {
+ rwd(this, a, b);
+ };
+ _.Yh = function Awd(a) {
+ swd(this, a);
+ };
+ _.ai = function Bwd() {
+ return !this.bj();
+ };
+ _.$b = function Cwd() {
+ vwd(this);
+ };
+ _.Zi = function Dwd(a, b, c, d, e) {
+ return new Cxd(this, a, b, c, d, e);
+ };
+ _.$i = function Ewd(a) {
+ Uhd(this.Ai(), a);
+ };
+ _._i = function Fwd() {
+ return null;
+ };
+ _.aj = function Gwd() {
+ return -1;
+ };
+ _.Ai = function Hwd() {
+ return null;
+ };
+ _.bj = function Iwd() {
+ return false;
+ };
+ _.cj = function Jwd(a, b) {
+ return b;
+ };
+ _.dj = function Kwd(a, b) {
+ return b;
+ };
+ _.ej = function Lwd() {
+ return false;
+ };
+ _.fj = function Mwd() {
+ return !this.Ri();
+ };
+ _.ii = function Nwd(a, b) {
+ var c, d;
+ if (this.ej()) {
+ d = this.fj();
+ c = Dvd(this, a, b);
+ this.$i(this.Zi(7, meb(b), c, a, d));
+ return c;
+ } else {
+ return Dvd(this, a, b);
+ }
+ };
+ _.$c = function Owd(a) {
+ var b, c, d, e;
+ if (this.ej()) {
+ c = null;
+ d = this.fj();
+ b = this.Zi(4, e = Evd(this, a), null, a, d);
+ if (this.bj() && !!e) {
+ c = this.dj(e, c);
+ if (!c) {
+ this.$i(b);
+ } else {
+ c.Ei(b);
+ c.Fi();
+ }
+ } else {
+ if (!c) {
+ this.$i(b);
+ } else {
+ c.Ei(b);
+ c.Fi();
+ }
+ }
+ return e;
+ } else {
+ e = Evd(this, a);
+ if (this.bj() && !!e) {
+ c = this.dj(e, null);
+ !!c && c.Fi();
+ }
+ return e;
+ }
+ };
+ _.mi = function Pwd(a, b) {
+ return wwd(this, a, b);
+ };
+ mdb(hte, "DelegatingNotifyingListImpl", 1996);
+ bcb(143, 1, fve);
+ _.Ei = function pxd(a) {
+ return Qwd(this, a);
+ };
+ _.Fi = function qxd() {
+ Rwd(this);
+ };
+ _.xi = function rxd() {
+ return this.d;
+ };
+ _._i = function sxd() {
+ return null;
+ };
+ _.gj = function txd() {
+ return null;
+ };
+ _.yi = function uxd(a) {
+ return -1;
+ };
+ _.zi = function vxd() {
+ return $wd(this);
+ };
+ _.Ai = function wxd() {
+ return null;
+ };
+ _.Bi = function xxd() {
+ return hxd(this);
+ };
+ _.Ci = function yxd() {
+ return this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o;
+ };
+ _.hj = function zxd() {
+ return false;
+ };
+ _.Di = function Axd(a) {
+ var b, c, d, e, f, g, h, i, j, k, l;
+ switch (this.d) {
+ case 1:
+ case 2: {
+ e = a.xi();
+ switch (e) {
+ case 1:
+ case 2: {
+ f = a.Ai();
+ if (PD(f) === PD(this.Ai()) && this.yi(null) == a.yi(null)) {
+ this.g = a.zi();
+ a.xi() == 1 && (this.d = 1);
+ return true;
+ }
+ }
+ }
+ }
+ case 4: {
+ e = a.xi();
+ switch (e) {
+ case 4: {
+ f = a.Ai();
+ if (PD(f) === PD(this.Ai()) && this.yi(null) == a.yi(null)) {
+ j = jxd(this);
+ i = this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o;
+ g = a.Ci();
+ this.d = 6;
+ l = new zud(2);
+ if (i <= g) {
+ wtd(l, this.n);
+ wtd(l, a.Bi());
+ this.g = OC(GC(WD, 1), oje, 25, 15, [this.o = i, g + 1]);
+ } else {
+ wtd(l, a.Bi());
+ wtd(l, this.n);
+ this.g = OC(GC(WD, 1), oje, 25, 15, [this.o = g, i]);
+ }
+ this.n = l;
+ j || (this.o = -2 - this.o - 1);
+ return true;
+ }
+ break;
+ }
+ }
+ break;
+ }
+ case 6: {
+ e = a.xi();
+ switch (e) {
+ case 4: {
+ f = a.Ai();
+ if (PD(f) === PD(this.Ai()) && this.yi(null) == a.yi(null)) {
+ j = jxd(this);
+ g = a.Ci();
+ k = BD(this.g, 48);
+ d = KC(WD, oje, 25, k.length + 1, 15, 1);
+ b = 0;
+ while (b < k.length) {
+ h = k[b];
+ if (h <= g) {
+ d[b++] = h;
+ ++g;
+ } else {
+ break;
+ }
+ }
+ c = BD(this.n, 15);
+ c.Vc(b, a.Bi());
+ d[b] = g;
+ while (++b < d.length) {
+ d[b] = k[b - 1];
+ }
+ this.g = d;
+ j || (this.o = -2 - d[0]);
+ return true;
+ }
+ break;
+ }
+ }
+ break;
+ }
+ }
+ return false;
+ };
+ _.Ib = function Bxd() {
+ var a, b, c, d;
+ d = new Jfb(hdb(this.gm) + "@" + (b = tb(this) >>> 0, b.toString(16)));
+ d.a += " (eventType: ";
+ switch (this.d) {
+ case 1: {
+ d.a += "SET";
+ break;
+ }
+ case 2: {
+ d.a += "UNSET";
+ break;
+ }
+ case 3: {
+ d.a += "ADD";
+ break;
+ }
+ case 5: {
+ d.a += "ADD_MANY";
+ break;
+ }
+ case 4: {
+ d.a += "REMOVE";
+ break;
+ }
+ case 6: {
+ d.a += "REMOVE_MANY";
+ break;
+ }
+ case 7: {
+ d.a += "MOVE";
+ break;
+ }
+ case 8: {
+ d.a += "REMOVING_ADAPTER";
+ break;
+ }
+ case 9: {
+ d.a += "RESOLVE";
+ break;
+ }
+ default: {
+ Cfb(d, this.d);
+ break;
+ }
+ }
+ ixd(this) && (d.a += ", touch: true", d);
+ d.a += ", position: ";
+ Cfb(d, this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o);
+ d.a += ", notifier: ";
+ Dfb(d, this.Ai());
+ d.a += ", feature: ";
+ Dfb(d, this._i());
+ d.a += ", oldValue: ";
+ Dfb(d, hxd(this));
+ d.a += ", newValue: ";
+ if (this.d == 6 && JD(this.g, 48)) {
+ c = BD(this.g, 48);
+ d.a += "[";
+ for (a = 0; a < c.length; ) {
+ d.a += c[a];
+ ++a < c.length && (d.a += She, d);
+ }
+ d.a += "]";
+ } else {
+ Dfb(d, $wd(this));
+ }
+ d.a += ", isTouch: ";
+ Ffb(d, ixd(this));
+ d.a += ", wasSet: ";
+ Ffb(d, jxd(this));
+ d.a += ")";
+ return d.a;
+ };
+ _.d = 0;
+ _.e = 0;
+ _.f = 0;
+ _.j = 0;
+ _.k = 0;
+ _.o = 0;
+ _.p = 0;
+ mdb(hte, "NotificationImpl", 143);
+ bcb(1167, 143, fve, Cxd);
+ _._i = function Dxd() {
+ return this.a._i();
+ };
+ _.yi = function Exd(a) {
+ return this.a.aj();
+ };
+ _.Ai = function Fxd() {
+ return this.a.Ai();
+ };
+ mdb(hte, "DelegatingNotifyingListImpl/1", 1167);
+ bcb(242, 63, oue, Hxd, Ixd);
+ _.Fc = function Jxd(a) {
+ return Gxd(this, BD(a, 366));
+ };
+ _.Ei = function Kxd(a) {
+ return Gxd(this, a);
+ };
+ _.Fi = function Lxd() {
+ var a, b, c;
+ for (a = 0; a < this.i; ++a) {
+ b = BD(this.g[a], 366);
+ c = b.Ai();
+ c != null && b.xi() != -1 && BD(c, 92).Ng(b);
+ }
+ };
+ _.ri = function Mxd(a) {
+ return KC(_3, Uhe, 366, a, 0, 1);
+ };
+ mdb(hte, "NotificationChainImpl", 242);
+ bcb(1378, 90, gte);
+ _.Kg = function Nxd() {
+ return this.e;
+ };
+ _.Mg = function Oxd() {
+ return (this.f & 1) != 0;
+ };
+ _.f = 1;
+ mdb(hte, "NotifierImpl", 1378);
+ bcb(1993, 63, oue);
+ _.Vh = function $xd(a, b) {
+ return Pxd(this, a, b);
+ };
+ _.Wh = function _xd(a) {
+ return this.Vh(this.i, a);
+ };
+ _.Xh = function ayd(a, b) {
+ Qxd(this, a, b);
+ };
+ _.Yh = function byd(a) {
+ Rxd(this, a);
+ };
+ _.ai = function cyd() {
+ return !this.bj();
+ };
+ _.$b = function dyd() {
+ Uxd(this);
+ };
+ _.Zi = function eyd(a, b, c, d, e) {
+ return new vyd(this, a, b, c, d, e);
+ };
+ _.$i = function fyd(a) {
+ Uhd(this.Ai(), a);
+ };
+ _._i = function gyd() {
+ return null;
+ };
+ _.aj = function hyd() {
+ return -1;
+ };
+ _.Ai = function iyd() {
+ return null;
+ };
+ _.bj = function jyd() {
+ return false;
+ };
+ _.ij = function kyd() {
+ return false;
+ };
+ _.cj = function lyd(a, b) {
+ return b;
+ };
+ _.dj = function myd(a, b) {
+ return b;
+ };
+ _.ej = function nyd() {
+ return false;
+ };
+ _.fj = function oyd() {
+ return this.i != 0;
+ };
+ _.ii = function pyd(a, b) {
+ return Wxd(this, a, b);
+ };
+ _.$c = function qyd(a) {
+ return Xxd(this, a);
+ };
+ _.mi = function ryd(a, b) {
+ return Zxd(this, a, b);
+ };
+ _.jj = function syd(a, b) {
+ return b;
+ };
+ _.kj = function tyd(a, b) {
+ return b;
+ };
+ _.lj = function uyd(a, b, c) {
+ return c;
+ };
+ mdb(hte, "NotifyingListImpl", 1993);
+ bcb(1166, 143, fve, vyd);
+ _._i = function wyd() {
+ return this.a._i();
+ };
+ _.yi = function xyd(a) {
+ return this.a.aj();
+ };
+ _.Ai = function yyd() {
+ return this.a.Ai();
+ };
+ mdb(hte, "NotifyingListImpl/1", 1166);
+ bcb(953, 63, oue, zyd);
+ _.Hc = function Ayd(a) {
+ if (this.i > 10) {
+ if (!this.b || this.c.j != this.a) {
+ this.b = new Vqb(this);
+ this.a = this.j;
+ }
+ return Rqb(this.b, a);
+ } else {
+ return pud(this, a);
+ }
+ };
+ _.ni = function Byd() {
+ return true;
+ };
+ _.a = 0;
+ mdb(Tte, "AbstractEList/1", 953);
+ bcb(295, 73, Mje, Cyd);
+ mdb(Tte, "AbstractEList/BasicIndexOutOfBoundsException", 295);
+ bcb(40, 1, aie, Fyd);
+ _.Nb = function Iyd(a) {
+ Rrb(this, a);
+ };
+ _.mj = function Gyd() {
+ if (this.i.j != this.f) {
+ throw vbb(new Apb());
+ }
+ };
+ _.nj = function Hyd() {
+ return Dyd(this);
+ };
+ _.Ob = function Jyd() {
+ return this.e != this.i.gc();
+ };
+ _.Pb = function Kyd() {
+ return this.nj();
+ };
+ _.Qb = function Lyd() {
+ Eyd(this);
+ };
+ _.e = 0;
+ _.f = 0;
+ _.g = -1;
+ mdb(Tte, "AbstractEList/EIterator", 40);
+ bcb(278, 40, jie, Oyd, Pyd);
+ _.Qb = function Xyd() {
+ Eyd(this);
+ };
+ _.Rb = function Qyd(a) {
+ Myd(this, a);
+ };
+ _.oj = function Ryd() {
+ var b;
+ try {
+ b = this.d.Xb(--this.e);
+ this.mj();
+ this.g = this.e;
+ return b;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ this.mj();
+ throw vbb(new utb());
+ } else
+ throw vbb(a);
+ }
+ };
+ _.pj = function Syd(a) {
+ Nyd(this, a);
+ };
+ _.Sb = function Tyd() {
+ return this.e != 0;
+ };
+ _.Tb = function Uyd() {
+ return this.e;
+ };
+ _.Ub = function Vyd() {
+ return this.oj();
+ };
+ _.Vb = function Wyd() {
+ return this.e - 1;
+ };
+ _.Wb = function Yyd(a) {
+ this.pj(a);
+ };
+ mdb(Tte, "AbstractEList/EListIterator", 278);
+ bcb(341, 40, aie, $yd);
+ _.nj = function _yd() {
+ return Zyd(this);
+ };
+ _.Qb = function azd() {
+ throw vbb(new bgb());
+ };
+ mdb(Tte, "AbstractEList/NonResolvingEIterator", 341);
+ bcb(385, 278, jie, bzd, czd);
+ _.Rb = function dzd(a) {
+ throw vbb(new bgb());
+ };
+ _.nj = function ezd() {
+ var b;
+ try {
+ b = this.c.ki(this.e);
+ this.mj();
+ this.g = this.e++;
+ return b;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ this.mj();
+ throw vbb(new utb());
+ } else
+ throw vbb(a);
+ }
+ };
+ _.oj = function fzd() {
+ var b;
+ try {
+ b = this.c.ki(--this.e);
+ this.mj();
+ this.g = this.e;
+ return b;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ this.mj();
+ throw vbb(new utb());
+ } else
+ throw vbb(a);
+ }
+ };
+ _.Qb = function gzd() {
+ throw vbb(new bgb());
+ };
+ _.Wb = function hzd(a) {
+ throw vbb(new bgb());
+ };
+ mdb(Tte, "AbstractEList/NonResolvingEListIterator", 385);
+ bcb(1982, 67, ive);
+ _.Vh = function pzd(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m;
+ e = b.gc();
+ if (e != 0) {
+ j = BD(Ajd(this.a, 4), 126);
+ k = j == null ? 0 : j.length;
+ m = k + e;
+ d = nzd(this, m);
+ l = k - a;
+ l > 0 && $fb(j, a, d, a + e, l);
+ i = b.Kc();
+ for (g = 0; g < e; ++g) {
+ h = i.Pb();
+ c = a + g;
+ lzd(d, c, Itd(this, h));
+ }
+ b0d(this, d);
+ for (f = 0; f < e; ++f) {
+ h = d[a];
+ this.bi(a, h);
+ ++a;
+ }
+ return true;
+ } else {
+ ++this.j;
+ return false;
+ }
+ };
+ _.Wh = function qzd(a) {
+ var b, c, d, e, f, g, h, i, j;
+ d = a.gc();
+ if (d != 0) {
+ i = (c = BD(Ajd(this.a, 4), 126), c == null ? 0 : c.length);
+ j = i + d;
+ b = nzd(this, j);
+ h = a.Kc();
+ for (f = i; f < j; ++f) {
+ g = h.Pb();
+ lzd(b, f, Itd(this, g));
+ }
+ b0d(this, b);
+ for (e = i; e < j; ++e) {
+ g = b[e];
+ this.bi(e, g);
+ }
+ return true;
+ } else {
+ ++this.j;
+ return false;
+ }
+ };
+ _.Xh = function rzd(a, b) {
+ var c, d, e, f;
+ d = BD(Ajd(this.a, 4), 126);
+ e = d == null ? 0 : d.length;
+ c = nzd(this, e + 1);
+ f = Itd(this, b);
+ a != e && $fb(d, a, c, a + 1, e - a);
+ NC(c, a, f);
+ b0d(this, c);
+ this.bi(a, b);
+ };
+ _.Yh = function szd(a) {
+ var b, c, d;
+ d = (c = BD(Ajd(this.a, 4), 126), c == null ? 0 : c.length);
+ b = nzd(this, d + 1);
+ lzd(b, d, Itd(this, a));
+ b0d(this, b);
+ this.bi(d, a);
+ };
+ _.Zh = function tzd() {
+ return new Uzd(this);
+ };
+ _.$h = function uzd() {
+ return new Xzd(this);
+ };
+ _._h = function vzd(a) {
+ var b, c;
+ c = (b = BD(Ajd(this.a, 4), 126), b == null ? 0 : b.length);
+ if (a < 0 || a > c)
+ throw vbb(new Cyd(a, c));
+ return new Yzd(this, a);
+ };
+ _.$b = function wzd() {
+ var a, b;
+ ++this.j;
+ a = BD(Ajd(this.a, 4), 126);
+ b = a == null ? 0 : a.length;
+ b0d(this, null);
+ Atd(this, b, a);
+ };
+ _.Hc = function xzd(a) {
+ var b, c, d, e, f;
+ b = BD(Ajd(this.a, 4), 126);
+ if (b != null) {
+ if (a != null) {
+ for (d = b, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ if (pb(a, c)) {
+ return true;
+ }
+ }
+ } else {
+ for (d = b, e = 0, f = d.length; e < f; ++e) {
+ c = d[e];
+ if (PD(c) === PD(a)) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ };
+ _.Xb = function yzd(a) {
+ var b, c;
+ b = BD(Ajd(this.a, 4), 126);
+ c = b == null ? 0 : b.length;
+ if (a >= c)
+ throw vbb(new Cyd(a, c));
+ return b[a];
+ };
+ _.Xc = function zzd(a) {
+ var b, c, d;
+ b = BD(Ajd(this.a, 4), 126);
+ if (b != null) {
+ if (a != null) {
+ for (c = 0, d = b.length; c < d; ++c) {
+ if (pb(a, b[c])) {
+ return c;
+ }
+ }
+ } else {
+ for (c = 0, d = b.length; c < d; ++c) {
+ if (PD(b[c]) === PD(a)) {
+ return c;
+ }
+ }
+ }
+ }
+ return -1;
+ };
+ _.dc = function Azd() {
+ return BD(Ajd(this.a, 4), 126) == null;
+ };
+ _.Kc = function Bzd() {
+ return new Lzd(this);
+ };
+ _.Yc = function Czd() {
+ return new Pzd(this);
+ };
+ _.Zc = function Dzd(a) {
+ var b, c;
+ c = (b = BD(Ajd(this.a, 4), 126), b == null ? 0 : b.length);
+ if (a < 0 || a > c)
+ throw vbb(new Cyd(a, c));
+ return new Qzd(this, a);
+ };
+ _.ii = function Ezd(a, b) {
+ var c, d, e;
+ c = mzd(this);
+ e = c == null ? 0 : c.length;
+ if (a >= e)
+ throw vbb(new qcb(lue + a + mue + e));
+ if (b >= e)
+ throw vbb(new qcb(nue + b + mue + e));
+ d = c[b];
+ if (a != b) {
+ a < b ? $fb(c, a, c, a + 1, b - a) : $fb(c, b + 1, c, b, a - b);
+ NC(c, a, d);
+ b0d(this, c);
+ }
+ return d;
+ };
+ _.ki = function Fzd(a) {
+ return BD(Ajd(this.a, 4), 126)[a];
+ };
+ _.$c = function Gzd(a) {
+ return ozd(this, a);
+ };
+ _.mi = function Hzd(a, b) {
+ var c, d;
+ c = mzd(this);
+ d = c[a];
+ lzd(c, a, Itd(this, b));
+ b0d(this, c);
+ return d;
+ };
+ _.gc = function Izd() {
+ var a;
+ return a = BD(Ajd(this.a, 4), 126), a == null ? 0 : a.length;
+ };
+ _.Pc = function Jzd() {
+ var a, b, c;
+ a = BD(Ajd(this.a, 4), 126);
+ c = a == null ? 0 : a.length;
+ b = KC($3, hve, 415, c, 0, 1);
+ c > 0 && $fb(a, 0, b, 0, c);
+ return b;
+ };
+ _.Qc = function Kzd(a) {
+ var b, c, d;
+ b = BD(Ajd(this.a, 4), 126);
+ d = b == null ? 0 : b.length;
+ if (d > 0) {
+ if (a.length < d) {
+ c = izd(rb(a).c, d);
+ a = c;
+ }
+ $fb(b, 0, a, 0, d);
+ }
+ a.length > d && NC(a, d, null);
+ return a;
+ };
+ var jzd;
+ mdb(Tte, "ArrayDelegatingEList", 1982);
+ bcb(1038, 40, aie, Lzd);
+ _.mj = function Mzd() {
+ if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
+ throw vbb(new Apb());
+ }
+ };
+ _.Qb = function Nzd() {
+ Eyd(this);
+ this.a = BD(Ajd(this.b.a, 4), 126);
+ };
+ mdb(Tte, "ArrayDelegatingEList/EIterator", 1038);
+ bcb(706, 278, jie, Pzd, Qzd);
+ _.mj = function Rzd() {
+ if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
+ throw vbb(new Apb());
+ }
+ };
+ _.pj = function Szd(a) {
+ Nyd(this, a);
+ this.a = BD(Ajd(this.b.a, 4), 126);
+ };
+ _.Qb = function Tzd() {
+ Eyd(this);
+ this.a = BD(Ajd(this.b.a, 4), 126);
+ };
+ mdb(Tte, "ArrayDelegatingEList/EListIterator", 706);
+ bcb(1039, 341, aie, Uzd);
+ _.mj = function Vzd() {
+ if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
+ throw vbb(new Apb());
+ }
+ };
+ mdb(Tte, "ArrayDelegatingEList/NonResolvingEIterator", 1039);
+ bcb(707, 385, jie, Xzd, Yzd);
+ _.mj = function Zzd() {
+ if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
+ throw vbb(new Apb());
+ }
+ };
+ mdb(Tte, "ArrayDelegatingEList/NonResolvingEListIterator", 707);
+ bcb(606, 295, Mje, $zd);
+ mdb(Tte, "BasicEList/BasicIndexOutOfBoundsException", 606);
+ bcb(696, 63, oue, _zd);
+ _.Vc = function aAd(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Fc = function bAd(a) {
+ throw vbb(new bgb());
+ };
+ _.Wc = function cAd(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Gc = function dAd(a) {
+ throw vbb(new bgb());
+ };
+ _.$b = function eAd() {
+ throw vbb(new bgb());
+ };
+ _.qi = function fAd(a) {
+ throw vbb(new bgb());
+ };
+ _.Kc = function gAd() {
+ return this.Zh();
+ };
+ _.Yc = function hAd() {
+ return this.$h();
+ };
+ _.Zc = function iAd(a) {
+ return this._h(a);
+ };
+ _.ii = function jAd(a, b) {
+ throw vbb(new bgb());
+ };
+ _.ji = function kAd(a, b) {
+ throw vbb(new bgb());
+ };
+ _.$c = function lAd(a) {
+ throw vbb(new bgb());
+ };
+ _.Mc = function mAd(a) {
+ throw vbb(new bgb());
+ };
+ _._c = function nAd(a, b) {
+ throw vbb(new bgb());
+ };
+ mdb(Tte, "BasicEList/UnmodifiableEList", 696);
+ bcb(705, 1, { 3: 1, 20: 1, 14: 1, 15: 1, 58: 1, 589: 1 });
+ _.Vc = function OAd(a, b) {
+ oAd(this, a, BD(b, 42));
+ };
+ _.Fc = function PAd(a) {
+ return pAd(this, BD(a, 42));
+ };
+ _.Jc = function XAd(a) {
+ reb(this, a);
+ };
+ _.Xb = function YAd(a) {
+ return BD(qud(this.c, a), 133);
+ };
+ _.ii = function fBd(a, b) {
+ return BD(this.c.ii(a, b), 42);
+ };
+ _.ji = function gBd(a, b) {
+ GAd(this, a, BD(b, 42));
+ };
+ _.Lc = function jBd() {
+ return new YAb(null, new Kub(this, 16));
+ };
+ _.$c = function kBd(a) {
+ return BD(this.c.$c(a), 42);
+ };
+ _._c = function mBd(a, b) {
+ return MAd(this, a, BD(b, 42));
+ };
+ _.ad = function oBd(a) {
+ ktb(this, a);
+ };
+ _.Nc = function pBd() {
+ return new Kub(this, 16);
+ };
+ _.Oc = function qBd() {
+ return new YAb(null, new Kub(this, 16));
+ };
+ _.Wc = function QAd(a, b) {
+ return this.c.Wc(a, b);
+ };
+ _.Gc = function RAd(a) {
+ return this.c.Gc(a);
+ };
+ _.$b = function SAd() {
+ this.c.$b();
+ };
+ _.Hc = function TAd(a) {
+ return this.c.Hc(a);
+ };
+ _.Ic = function UAd(a) {
+ return Be(this.c, a);
+ };
+ _.qj = function VAd() {
+ var a, b, c;
+ if (this.d == null) {
+ this.d = KC(y4, jve, 63, 2 * this.f + 1, 0, 1);
+ c = this.e;
+ this.f = 0;
+ for (b = this.c.Kc(); b.e != b.i.gc(); ) {
+ a = BD(b.nj(), 133);
+ uAd(this, a);
+ }
+ this.e = c;
+ }
+ };
+ _.Fb = function WAd(a) {
+ return zAd(this, a);
+ };
+ _.Hb = function ZAd() {
+ return Etd(this.c);
+ };
+ _.Xc = function $Ad(a) {
+ return this.c.Xc(a);
+ };
+ _.rj = function _Ad() {
+ this.c = new yBd(this);
+ };
+ _.dc = function aBd() {
+ return this.f == 0;
+ };
+ _.Kc = function bBd() {
+ return this.c.Kc();
+ };
+ _.Yc = function cBd() {
+ return this.c.Yc();
+ };
+ _.Zc = function dBd(a) {
+ return this.c.Zc(a);
+ };
+ _.sj = function eBd() {
+ return FAd(this);
+ };
+ _.tj = function hBd(a, b, c) {
+ return new zCd(a, b, c);
+ };
+ _.uj = function iBd() {
+ return new EBd();
+ };
+ _.Mc = function lBd(a) {
+ return JAd(this, a);
+ };
+ _.gc = function nBd() {
+ return this.f;
+ };
+ _.bd = function rBd(a, b) {
+ return new Jib(this.c, a, b);
+ };
+ _.Pc = function sBd() {
+ return this.c.Pc();
+ };
+ _.Qc = function tBd(a) {
+ return this.c.Qc(a);
+ };
+ _.Ib = function uBd() {
+ return Htd(this.c);
+ };
+ _.e = 0;
+ _.f = 0;
+ mdb(Tte, "BasicEMap", 705);
+ bcb(1033, 63, oue, yBd);
+ _.bi = function zBd(a, b) {
+ vBd(this, BD(b, 133));
+ };
+ _.ei = function BBd(a, b, c) {
+ var d;
+ ++(d = this, BD(b, 133), d).a.e;
+ };
+ _.fi = function CBd(a, b) {
+ wBd(this, BD(b, 133));
+ };
+ _.gi = function DBd(a, b, c) {
+ xBd(this, BD(b, 133), BD(c, 133));
+ };
+ _.di = function ABd(a, b) {
+ tAd(this.a);
+ };
+ mdb(Tte, "BasicEMap/1", 1033);
+ bcb(1034, 63, oue, EBd);
+ _.ri = function FBd(a) {
+ return KC(I4, kve, 612, a, 0, 1);
+ };
+ mdb(Tte, "BasicEMap/2", 1034);
+ bcb(1035, eie, fie, GBd);
+ _.$b = function HBd() {
+ this.a.c.$b();
+ };
+ _.Hc = function IBd(a) {
+ return qAd(this.a, a);
+ };
+ _.Kc = function JBd() {
+ return this.a.f == 0 ? (LCd(), KCd.a) : new dCd(this.a);
+ };
+ _.Mc = function KBd(a) {
+ var b;
+ b = this.a.f;
+ LAd(this.a, a);
+ return this.a.f != b;
+ };
+ _.gc = function LBd() {
+ return this.a.f;
+ };
+ mdb(Tte, "BasicEMap/3", 1035);
+ bcb(1036, 28, die, MBd);
+ _.$b = function NBd() {
+ this.a.c.$b();
+ };
+ _.Hc = function OBd(a) {
+ return rAd(this.a, a);
+ };
+ _.Kc = function PBd() {
+ return this.a.f == 0 ? (LCd(), KCd.a) : new fCd(this.a);
+ };
+ _.gc = function QBd() {
+ return this.a.f;
+ };
+ mdb(Tte, "BasicEMap/4", 1036);
+ bcb(1037, eie, fie, SBd);
+ _.$b = function TBd() {
+ this.a.c.$b();
+ };
+ _.Hc = function UBd(a) {
+ var b, c, d, e, f, g, h, i, j;
+ if (this.a.f > 0 && JD(a, 42)) {
+ this.a.qj();
+ i = BD(a, 42);
+ h = i.cd();
+ e = h == null ? 0 : tb(h);
+ f = DAd(this.a, e);
+ b = this.a.d[f];
+ if (b) {
+ c = BD(b.g, 367);
+ j = b.i;
+ for (g = 0; g < j; ++g) {
+ d = c[g];
+ if (d.Sh() == e && d.Fb(i)) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ };
+ _.Kc = function VBd() {
+ return this.a.f == 0 ? (LCd(), KCd.a) : new ZBd(this.a);
+ };
+ _.Mc = function WBd(a) {
+ return RBd(this, a);
+ };
+ _.gc = function XBd() {
+ return this.a.f;
+ };
+ mdb(Tte, "BasicEMap/5", 1037);
+ bcb(613, 1, aie, ZBd);
+ _.Nb = function $Bd(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function _Bd() {
+ return this.b != -1;
+ };
+ _.Pb = function aCd() {
+ var a;
+ if (this.f.e != this.c) {
+ throw vbb(new Apb());
+ }
+ if (this.b == -1) {
+ throw vbb(new utb());
+ }
+ this.d = this.a;
+ this.e = this.b;
+ YBd(this);
+ a = BD(this.f.d[this.d].g[this.e], 133);
+ return this.vj(a);
+ };
+ _.Qb = function bCd() {
+ if (this.f.e != this.c) {
+ throw vbb(new Apb());
+ }
+ if (this.e == -1) {
+ throw vbb(new Ydb());
+ }
+ this.f.c.Mc(qud(this.f.d[this.d], this.e));
+ this.c = this.f.e;
+ this.e = -1;
+ this.a == this.d && this.b != -1 && --this.b;
+ };
+ _.vj = function cCd(a) {
+ return a;
+ };
+ _.a = 0;
+ _.b = -1;
+ _.c = 0;
+ _.d = 0;
+ _.e = 0;
+ mdb(Tte, "BasicEMap/BasicEMapIterator", 613);
+ bcb(1031, 613, aie, dCd);
+ _.vj = function eCd(a) {
+ return a.cd();
+ };
+ mdb(Tte, "BasicEMap/BasicEMapKeyIterator", 1031);
+ bcb(1032, 613, aie, fCd);
+ _.vj = function gCd(a) {
+ return a.dd();
+ };
+ mdb(Tte, "BasicEMap/BasicEMapValueIterator", 1032);
+ bcb(1030, 1, cie, iCd);
+ _.wc = function oCd(a) {
+ stb(this, a);
+ };
+ _.yc = function tCd(a, b, c) {
+ return ttb(this, a, b, c);
+ };
+ _.$b = function jCd() {
+ this.a.c.$b();
+ };
+ _._b = function kCd(a) {
+ return hCd(this, a);
+ };
+ _.uc = function lCd(a) {
+ return rAd(this.a, a);
+ };
+ _.vc = function mCd() {
+ return yAd(this.a);
+ };
+ _.Fb = function nCd(a) {
+ return zAd(this.a, a);
+ };
+ _.xc = function pCd(a) {
+ return AAd(this.a, a);
+ };
+ _.Hb = function qCd() {
+ return Etd(this.a.c);
+ };
+ _.dc = function rCd() {
+ return this.a.f == 0;
+ };
+ _.ec = function sCd() {
+ return EAd(this.a);
+ };
+ _.zc = function uCd(a, b) {
+ return HAd(this.a, a, b);
+ };
+ _.Bc = function vCd(a) {
+ return LAd(this.a, a);
+ };
+ _.gc = function wCd() {
+ return this.a.f;
+ };
+ _.Ib = function xCd() {
+ return Htd(this.a.c);
+ };
+ _.Cc = function yCd() {
+ return NAd(this.a);
+ };
+ mdb(Tte, "BasicEMap/DelegatingMap", 1030);
+ bcb(612, 1, { 42: 1, 133: 1, 612: 1 }, zCd);
+ _.Fb = function ACd(a) {
+ var b;
+ if (JD(a, 42)) {
+ b = BD(a, 42);
+ return (this.b != null ? pb(this.b, b.cd()) : PD(this.b) === PD(b.cd())) && (this.c != null ? pb(this.c, b.dd()) : PD(this.c) === PD(b.dd()));
+ } else {
+ return false;
+ }
+ };
+ _.Sh = function BCd() {
+ return this.a;
+ };
+ _.cd = function CCd() {
+ return this.b;
+ };
+ _.dd = function DCd() {
+ return this.c;
+ };
+ _.Hb = function ECd() {
+ return this.a ^ (this.c == null ? 0 : tb(this.c));
+ };
+ _.Th = function FCd(a) {
+ this.a = a;
+ };
+ _.Uh = function GCd(a) {
+ throw vbb(new gz());
+ };
+ _.ed = function HCd(a) {
+ var b;
+ b = this.c;
+ this.c = a;
+ return b;
+ };
+ _.Ib = function ICd() {
+ return this.b + "->" + this.c;
+ };
+ _.a = 0;
+ var I4 = mdb(Tte, "BasicEMap/EntryImpl", 612);
+ bcb(536, 1, {}, JCd);
+ mdb(Tte, "BasicEMap/View", 536);
+ var KCd;
+ bcb(768, 1, {});
+ _.Fb = function ZCd(a) {
+ return At((mmb(), jmb), a);
+ };
+ _.Hb = function $Cd() {
+ return qmb((mmb(), jmb));
+ };
+ _.Ib = function _Cd() {
+ return Fe((mmb(), jmb));
+ };
+ mdb(Tte, "ECollections/BasicEmptyUnmodifiableEList", 768);
+ bcb(1312, 1, jie, aDd);
+ _.Nb = function cDd(a) {
+ Rrb(this, a);
+ };
+ _.Rb = function bDd(a) {
+ throw vbb(new bgb());
+ };
+ _.Ob = function dDd() {
+ return false;
+ };
+ _.Sb = function eDd() {
+ return false;
+ };
+ _.Pb = function fDd() {
+ throw vbb(new utb());
+ };
+ _.Tb = function gDd() {
+ return 0;
+ };
+ _.Ub = function hDd() {
+ throw vbb(new utb());
+ };
+ _.Vb = function iDd() {
+ return -1;
+ };
+ _.Qb = function jDd() {
+ throw vbb(new bgb());
+ };
+ _.Wb = function kDd(a) {
+ throw vbb(new bgb());
+ };
+ mdb(Tte, "ECollections/BasicEmptyUnmodifiableEList/1", 1312);
+ bcb(1310, 768, { 20: 1, 14: 1, 15: 1, 58: 1 }, lDd);
+ _.Vc = function mDd(a, b) {
+ OCd();
+ };
+ _.Fc = function nDd(a) {
+ return PCd();
+ };
+ _.Wc = function oDd(a, b) {
+ return QCd();
+ };
+ _.Gc = function pDd(a) {
+ return RCd();
+ };
+ _.$b = function qDd() {
+ SCd();
+ };
+ _.Hc = function rDd(a) {
+ return false;
+ };
+ _.Ic = function sDd(a) {
+ return false;
+ };
+ _.Jc = function tDd(a) {
+ reb(this, a);
+ };
+ _.Xb = function uDd(a) {
+ return wmb((mmb(), a)), null;
+ };
+ _.Xc = function vDd(a) {
+ return -1;
+ };
+ _.dc = function wDd() {
+ return true;
+ };
+ _.Kc = function xDd() {
+ return this.a;
+ };
+ _.Yc = function yDd() {
+ return this.a;
+ };
+ _.Zc = function zDd(a) {
+ return this.a;
+ };
+ _.ii = function ADd(a, b) {
+ return TCd();
+ };
+ _.ji = function BDd(a, b) {
+ UCd();
+ };
+ _.Lc = function CDd() {
+ return new YAb(null, new Kub(this, 16));
+ };
+ _.$c = function DDd(a) {
+ return VCd();
+ };
+ _.Mc = function EDd(a) {
+ return WCd();
+ };
+ _._c = function FDd(a, b) {
+ return XCd();
+ };
+ _.gc = function GDd() {
+ return 0;
+ };
+ _.ad = function HDd(a) {
+ ktb(this, a);
+ };
+ _.Nc = function IDd() {
+ return new Kub(this, 16);
+ };
+ _.Oc = function JDd() {
+ return new YAb(null, new Kub(this, 16));
+ };
+ _.bd = function KDd(a, b) {
+ return mmb(), new Jib(jmb, a, b);
+ };
+ _.Pc = function LDd() {
+ return De((mmb(), jmb));
+ };
+ _.Qc = function MDd(a) {
+ return mmb(), Ee(jmb, a);
+ };
+ mdb(Tte, "ECollections/EmptyUnmodifiableEList", 1310);
+ bcb(1311, 768, { 20: 1, 14: 1, 15: 1, 58: 1, 589: 1 }, NDd);
+ _.Vc = function ODd(a, b) {
+ OCd();
+ };
+ _.Fc = function PDd(a) {
+ return PCd();
+ };
+ _.Wc = function QDd(a, b) {
+ return QCd();
+ };
+ _.Gc = function RDd(a) {
+ return RCd();
+ };
+ _.$b = function SDd() {
+ SCd();
+ };
+ _.Hc = function TDd(a) {
+ return false;
+ };
+ _.Ic = function UDd(a) {
+ return false;
+ };
+ _.Jc = function VDd(a) {
+ reb(this, a);
+ };
+ _.Xb = function WDd(a) {
+ return wmb((mmb(), a)), null;
+ };
+ _.Xc = function XDd(a) {
+ return -1;
+ };
+ _.dc = function YDd() {
+ return true;
+ };
+ _.Kc = function ZDd() {
+ return this.a;
+ };
+ _.Yc = function $Dd() {
+ return this.a;
+ };
+ _.Zc = function _Dd(a) {
+ return this.a;
+ };
+ _.ii = function bEd(a, b) {
+ return TCd();
+ };
+ _.ji = function cEd(a, b) {
+ UCd();
+ };
+ _.Lc = function dEd() {
+ return new YAb(null, new Kub(this, 16));
+ };
+ _.$c = function eEd(a) {
+ return VCd();
+ };
+ _.Mc = function fEd(a) {
+ return WCd();
+ };
+ _._c = function gEd(a, b) {
+ return XCd();
+ };
+ _.gc = function hEd() {
+ return 0;
+ };
+ _.ad = function iEd(a) {
+ ktb(this, a);
+ };
+ _.Nc = function jEd() {
+ return new Kub(this, 16);
+ };
+ _.Oc = function kEd() {
+ return new YAb(null, new Kub(this, 16));
+ };
+ _.bd = function lEd(a, b) {
+ return mmb(), new Jib(jmb, a, b);
+ };
+ _.Pc = function mEd() {
+ return De((mmb(), jmb));
+ };
+ _.Qc = function nEd(a) {
+ return mmb(), Ee(jmb, a);
+ };
+ _.sj = function aEd() {
+ return mmb(), mmb(), kmb;
+ };
+ mdb(Tte, "ECollections/EmptyUnmodifiableEMap", 1311);
+ var U4 = odb(Tte, "Enumerator");
+ var oEd;
+ bcb(281, 1, { 281: 1 }, NEd);
+ _.Fb = function REd(a) {
+ var b;
+ if (this === a)
+ return true;
+ if (!JD(a, 281))
+ return false;
+ b = BD(a, 281);
+ return this.f == b.f && TEd(this.i, b.i) && SEd(this.a, (this.f & 256) != 0 ? (b.f & 256) != 0 ? b.a : null : (b.f & 256) != 0 ? null : b.a) && SEd(this.d, b.d) && SEd(this.g, b.g) && SEd(this.e, b.e) && KEd(this, b);
+ };
+ _.Hb = function WEd() {
+ return this.f;
+ };
+ _.Ib = function cFd() {
+ return LEd(this);
+ };
+ _.f = 0;
+ var sEd = 0, tEd = 0, uEd = 0, vEd = 0, wEd = 0, xEd = 0, yEd = 0, zEd = 0, AEd = 0, BEd, CEd = 0, DEd = 0, EEd = 0, FEd = 0, GEd, HEd;
+ mdb(Tte, "URI", 281);
+ bcb(1091, 43, fke, mFd);
+ _.zc = function nFd(a, b) {
+ return BD(Shb(this, GD(a), BD(b, 281)), 281);
+ };
+ mdb(Tte, "URI/URICache", 1091);
+ bcb(497, 63, oue, oFd, pFd);
+ _.hi = function qFd() {
+ return true;
+ };
+ mdb(Tte, "UniqueEList", 497);
+ bcb(581, 60, Tie, rFd);
+ mdb(Tte, "WrappedException", 581);
+ var a5 = odb(Vse, nve);
+ var v5 = odb(Vse, ove);
+ var t5 = odb(Vse, pve);
+ var b5 = odb(Vse, qve);
+ var d5 = odb(Vse, rve);
+ var c5 = odb(Vse, "EClass");
+ var f5 = odb(Vse, "EDataType");
+ var sFd;
+ bcb(1183, 43, fke, vFd);
+ _.xc = function wFd(a) {
+ return ND(a) ? Phb(this, a) : Wd(irb(this.f, a));
+ };
+ mdb(Vse, "EDataType/Internal/ConversionDelegate/Factory/Registry/Impl", 1183);
+ var h5 = odb(Vse, "EEnum");
+ var g5 = odb(Vse, sve);
+ var j5 = odb(Vse, tve);
+ var n5 = odb(Vse, uve);
+ var xFd;
+ var p5 = odb(Vse, vve);
+ var q5 = odb(Vse, wve);
+ bcb(1029, 1, {}, BFd);
+ _.Ib = function CFd() {
+ return "NIL";
+ };
+ mdb(Vse, "EStructuralFeature/Internal/DynamicValueHolder/1", 1029);
+ var DFd;
+ bcb(1028, 43, fke, GFd);
+ _.xc = function HFd(a) {
+ return ND(a) ? Phb(this, a) : Wd(irb(this.f, a));
+ };
+ mdb(Vse, "EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl", 1028);
+ var u5 = odb(Vse, xve);
+ var w5 = odb(Vse, "EValidator/PatternMatcher");
+ var IFd;
+ var KFd;
+ var MFd;
+ var OFd, PFd, QFd, RFd, SFd, TFd, UFd, VFd, WFd, XFd, YFd, ZFd, $Fd, _Fd, aGd, bGd, cGd, dGd, eGd, fGd, gGd, hGd, iGd;
+ var E9 = odb(yve, "FeatureMap/Entry");
+ bcb(535, 1, { 72: 1 }, kGd);
+ _.ak = function lGd() {
+ return this.a;
+ };
+ _.dd = function mGd() {
+ return this.b;
+ };
+ mdb(qte, "BasicEObjectImpl/1", 535);
+ bcb(1027, 1, zve, nGd);
+ _.Wj = function oGd(a) {
+ return hid(this.a, this.b, a);
+ };
+ _.fj = function pGd() {
+ return nid(this.a, this.b);
+ };
+ _.Wb = function qGd(a) {
+ zid(this.a, this.b, a);
+ };
+ _.Xj = function rGd() {
+ Did(this.a, this.b);
+ };
+ mdb(qte, "BasicEObjectImpl/4", 1027);
+ bcb(1983, 1, { 108: 1 });
+ _.bk = function uGd(a) {
+ this.e = a == 0 ? sGd : KC(SI, Uhe, 1, a, 5, 1);
+ };
+ _.Ch = function vGd(a) {
+ return this.e[a];
+ };
+ _.Dh = function wGd(a, b) {
+ this.e[a] = b;
+ };
+ _.Eh = function xGd(a) {
+ this.e[a] = null;
+ };
+ _.ck = function yGd() {
+ return this.c;
+ };
+ _.dk = function zGd() {
+ throw vbb(new bgb());
+ };
+ _.ek = function AGd() {
+ throw vbb(new bgb());
+ };
+ _.fk = function BGd() {
+ return this.d;
+ };
+ _.gk = function CGd() {
+ return this.e != null;
+ };
+ _.hk = function DGd(a) {
+ this.c = a;
+ };
+ _.ik = function EGd(a) {
+ throw vbb(new bgb());
+ };
+ _.jk = function FGd(a) {
+ throw vbb(new bgb());
+ };
+ _.kk = function GGd(a) {
+ this.d = a;
+ };
+ var sGd;
+ mdb(qte, "BasicEObjectImpl/EPropertiesHolderBaseImpl", 1983);
+ bcb(185, 1983, { 108: 1 }, HGd);
+ _.dk = function IGd() {
+ return this.a;
+ };
+ _.ek = function JGd() {
+ return this.b;
+ };
+ _.ik = function KGd(a) {
+ this.a = a;
+ };
+ _.jk = function LGd(a) {
+ this.b = a;
+ };
+ mdb(qte, "BasicEObjectImpl/EPropertiesHolderImpl", 185);
+ bcb(506, 97, pte, MGd);
+ _.Kg = function NGd() {
+ return this.f;
+ };
+ _.Pg = function OGd() {
+ return this.k;
+ };
+ _.Rg = function PGd(a, b) {
+ this.g = a;
+ this.i = b;
+ };
+ _.Tg = function QGd() {
+ return (this.j & 2) == 0 ? this.zh() : this.ph().ck();
+ };
+ _.Vg = function RGd() {
+ return this.i;
+ };
+ _.Mg = function SGd() {
+ return (this.j & 1) != 0;
+ };
+ _.eh = function TGd() {
+ return this.g;
+ };
+ _.kh = function UGd() {
+ return (this.j & 4) != 0;
+ };
+ _.ph = function VGd() {
+ return !this.k && (this.k = new HGd()), this.k;
+ };
+ _.th = function WGd(a) {
+ this.ph().hk(a);
+ a ? this.j |= 2 : this.j &= -3;
+ };
+ _.vh = function XGd(a) {
+ this.ph().jk(a);
+ a ? this.j |= 4 : this.j &= -5;
+ };
+ _.zh = function YGd() {
+ return (NFd(), MFd).S;
+ };
+ _.i = 0;
+ _.j = 1;
+ mdb(qte, "EObjectImpl", 506);
+ bcb(780, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1 }, _Gd);
+ _.Ch = function aHd(a) {
+ return this.e[a];
+ };
+ _.Dh = function bHd(a, b) {
+ this.e[a] = b;
+ };
+ _.Eh = function cHd(a) {
+ this.e[a] = null;
+ };
+ _.Tg = function dHd() {
+ return this.d;
+ };
+ _.Yg = function eHd(a) {
+ return bLd(this.d, a);
+ };
+ _.$g = function fHd() {
+ return this.d;
+ };
+ _.dh = function gHd() {
+ return this.e != null;
+ };
+ _.ph = function hHd() {
+ !this.k && (this.k = new vHd());
+ return this.k;
+ };
+ _.th = function iHd(a) {
+ this.d = a;
+ };
+ _.yh = function jHd() {
+ var a;
+ if (this.e == null) {
+ a = aLd(this.d);
+ this.e = a == 0 ? ZGd : KC(SI, Uhe, 1, a, 5, 1);
+ }
+ return this;
+ };
+ _.Ah = function kHd() {
+ return 0;
+ };
+ var ZGd;
+ mdb(qte, "DynamicEObjectImpl", 780);
+ bcb(1376, 780, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1 }, lHd);
+ _.Fb = function nHd(a) {
+ return this === a;
+ };
+ _.Hb = function rHd() {
+ return FCb(this);
+ };
+ _.th = function mHd(a) {
+ this.d = a;
+ this.b = YKd(a, "key");
+ this.c = YKd(a, Bte);
+ };
+ _.Sh = function oHd() {
+ var a;
+ if (this.a == -1) {
+ a = iid(this, this.b);
+ this.a = a == null ? 0 : tb(a);
+ }
+ return this.a;
+ };
+ _.cd = function pHd() {
+ return iid(this, this.b);
+ };
+ _.dd = function qHd() {
+ return iid(this, this.c);
+ };
+ _.Th = function sHd(a) {
+ this.a = a;
+ };
+ _.Uh = function tHd(a) {
+ zid(this, this.b, a);
+ };
+ _.ed = function uHd(a) {
+ var b;
+ b = iid(this, this.c);
+ zid(this, this.c, a);
+ return b;
+ };
+ _.a = 0;
+ mdb(qte, "DynamicEObjectImpl/BasicEMapEntry", 1376);
+ bcb(1377, 1, { 108: 1 }, vHd);
+ _.bk = function wHd(a) {
+ throw vbb(new bgb());
+ };
+ _.Ch = function xHd(a) {
+ throw vbb(new bgb());
+ };
+ _.Dh = function yHd(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Eh = function zHd(a) {
+ throw vbb(new bgb());
+ };
+ _.ck = function AHd() {
+ throw vbb(new bgb());
+ };
+ _.dk = function BHd() {
+ return this.a;
+ };
+ _.ek = function CHd() {
+ return this.b;
+ };
+ _.fk = function DHd() {
+ return this.c;
+ };
+ _.gk = function EHd() {
+ throw vbb(new bgb());
+ };
+ _.hk = function FHd(a) {
+ throw vbb(new bgb());
+ };
+ _.ik = function GHd(a) {
+ this.a = a;
+ };
+ _.jk = function HHd(a) {
+ this.b = a;
+ };
+ _.kk = function IHd(a) {
+ this.c = a;
+ };
+ mdb(qte, "DynamicEObjectImpl/DynamicEPropertiesHolderImpl", 1377);
+ bcb(510, 150, { 105: 1, 92: 1, 90: 1, 590: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 510: 1, 150: 1, 114: 1, 115: 1 }, RHd);
+ _.Qg = function SHd(a) {
+ return KHd(this, a);
+ };
+ _._g = function THd(a, b, c) {
+ var d;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.d;
+ case 2:
+ return c ? (!this.b && (this.b = new sId((jGd(), fGd), x6, this)), this.b) : (!this.b && (this.b = new sId((jGd(), fGd), x6, this)), FAd(this.b));
+ case 3:
+ return MHd(this);
+ case 4:
+ return !this.a && (this.a = new xMd(m5, this, 4)), this.a;
+ case 5:
+ return !this.c && (this.c = new _4d(m5, this, 5)), this.c;
+ }
+ return bid(this, a - aLd((jGd(), OFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? OFd : d), a), b, c);
+ };
+ _.hh = function UHd(a, b, c) {
+ var d, e, f;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c);
+ case 3:
+ !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? KHd(this, c) : this.Cb.ih(this, -1 - e, null, c)));
+ return JHd(this, BD(a, 147), c);
+ }
+ return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), OFd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), OFd)), a, c);
+ };
+ _.jh = function VHd(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 2:
+ return !this.b && (this.b = new sId((jGd(), fGd), x6, this)), bId(this.b, a, c);
+ case 3:
+ return JHd(this, null, c);
+ case 4:
+ return !this.a && (this.a = new xMd(m5, this, 4)), Txd(this.a, a, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), OFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), OFd)), a, c);
+ };
+ _.lh = function WHd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.d != null;
+ case 2:
+ return !!this.b && this.b.f != 0;
+ case 3:
+ return !!MHd(this);
+ case 4:
+ return !!this.a && this.a.i != 0;
+ case 5:
+ return !!this.c && this.c.i != 0;
+ }
+ return cid(this, a - aLd((jGd(), OFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? OFd : b), a));
+ };
+ _.sh = function XHd(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ OHd(this, GD(b));
+ return;
+ case 2:
+ !this.b && (this.b = new sId((jGd(), fGd), x6, this));
+ cId(this.b, b);
+ return;
+ case 3:
+ NHd(this, BD(b, 147));
+ return;
+ case 4:
+ !this.a && (this.a = new xMd(m5, this, 4));
+ Uxd(this.a);
+ !this.a && (this.a = new xMd(m5, this, 4));
+ ytd(this.a, BD(b, 14));
+ return;
+ case 5:
+ !this.c && (this.c = new _4d(m5, this, 5));
+ Uxd(this.c);
+ !this.c && (this.c = new _4d(m5, this, 5));
+ ytd(this.c, BD(b, 14));
+ return;
+ }
+ did(this, a - aLd((jGd(), OFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? OFd : c), a), b);
+ };
+ _.zh = function YHd() {
+ return jGd(), OFd;
+ };
+ _.Bh = function ZHd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ PHd(this, null);
+ return;
+ case 2:
+ !this.b && (this.b = new sId((jGd(), fGd), x6, this));
+ this.b.c.$b();
+ return;
+ case 3:
+ NHd(this, null);
+ return;
+ case 4:
+ !this.a && (this.a = new xMd(m5, this, 4));
+ Uxd(this.a);
+ return;
+ case 5:
+ !this.c && (this.c = new _4d(m5, this, 5));
+ Uxd(this.c);
+ return;
+ }
+ eid(this, a - aLd((jGd(), OFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? OFd : b), a));
+ };
+ _.Ib = function $Hd() {
+ return QHd(this);
+ };
+ _.d = null;
+ mdb(qte, "EAnnotationImpl", 510);
+ bcb(151, 705, Ave, dId);
+ _.Xh = function eId(a, b) {
+ _Hd(this, a, BD(b, 42));
+ };
+ _.lk = function fId(a, b) {
+ return aId(this, BD(a, 42), b);
+ };
+ _.pi = function gId(a) {
+ return BD(BD(this.c, 69).pi(a), 133);
+ };
+ _.Zh = function hId() {
+ return BD(this.c, 69).Zh();
+ };
+ _.$h = function iId() {
+ return BD(this.c, 69).$h();
+ };
+ _._h = function jId(a) {
+ return BD(this.c, 69)._h(a);
+ };
+ _.mk = function kId(a, b) {
+ return bId(this, a, b);
+ };
+ _.Wj = function lId(a) {
+ return BD(this.c, 76).Wj(a);
+ };
+ _.rj = function mId() {
+ };
+ _.fj = function nId() {
+ return BD(this.c, 76).fj();
+ };
+ _.tj = function oId(a, b, c) {
+ var d;
+ d = BD(bKd(this.b).Nh().Jh(this.b), 133);
+ d.Th(a);
+ d.Uh(b);
+ d.ed(c);
+ return d;
+ };
+ _.uj = function pId() {
+ return new W5d(this);
+ };
+ _.Wb = function qId(a) {
+ cId(this, a);
+ };
+ _.Xj = function rId() {
+ BD(this.c, 76).Xj();
+ };
+ mdb(yve, "EcoreEMap", 151);
+ bcb(158, 151, Ave, sId);
+ _.qj = function tId() {
+ var a, b, c, d, e, f;
+ if (this.d == null) {
+ f = KC(y4, jve, 63, 2 * this.f + 1, 0, 1);
+ for (c = this.c.Kc(); c.e != c.i.gc(); ) {
+ b = BD(c.nj(), 133);
+ d = b.Sh();
+ e = (d & Ohe) % f.length;
+ a = f[e];
+ !a && (a = f[e] = new W5d(this));
+ a.Fc(b);
+ }
+ this.d = f;
+ }
+ };
+ mdb(qte, "EAnnotationImpl/1", 158);
+ bcb(284, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 284: 1, 114: 1, 115: 1 });
+ _._g = function GId(a, b, c) {
+ var d, e;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return Bcb(), (this.Bb & 256) != 0 ? true : false;
+ case 3:
+ return Bcb(), (this.Bb & 512) != 0 ? true : false;
+ case 4:
+ return meb(this.s);
+ case 5:
+ return meb(this.t);
+ case 6:
+ return Bcb(), this.$j() ? true : false;
+ case 7:
+ return Bcb(), e = this.s, e >= 1 ? true : false;
+ case 8:
+ if (b)
+ return wId(this);
+ return this.r;
+ case 9:
+ return this.q;
+ }
+ return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c);
+ };
+ _.jh = function HId(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 9:
+ return vId(this, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c);
+ };
+ _.lh = function IId(a) {
+ var b, c;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return this.$j();
+ case 7:
+ return c = this.s, c >= 1;
+ case 8:
+ return !!this.r && !this.q.e && LQd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
+ }
+ return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.sh = function JId(a, b) {
+ var c, d;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ this.Lh(GD(b));
+ return;
+ case 2:
+ BId(this, Ccb(DD(b)));
+ return;
+ case 3:
+ CId(this, Ccb(DD(b)));
+ return;
+ case 4:
+ AId(this, BD(b, 19).a);
+ return;
+ case 5:
+ this.ok(BD(b, 19).a);
+ return;
+ case 8:
+ yId(this, BD(b, 138));
+ return;
+ case 9:
+ d = xId(this, BD(b, 87), null);
+ !!d && d.Fi();
+ return;
+ }
+ did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b);
+ };
+ _.zh = function KId() {
+ return jGd(), hGd;
+ };
+ _.Bh = function LId(a) {
+ var b, c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ this.Lh(null);
+ return;
+ case 2:
+ BId(this, true);
+ return;
+ case 3:
+ CId(this, true);
+ return;
+ case 4:
+ AId(this, 0);
+ return;
+ case 5:
+ this.ok(1);
+ return;
+ case 8:
+ yId(this, null);
+ return;
+ case 9:
+ c = xId(this, null, null);
+ !!c && c.Fi();
+ return;
+ }
+ eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.Gh = function MId() {
+ wId(this);
+ this.Bb |= 1;
+ };
+ _.Yj = function NId() {
+ return wId(this);
+ };
+ _.Zj = function OId() {
+ return this.t;
+ };
+ _.$j = function PId() {
+ var a;
+ return a = this.t, a > 1 || a == -1;
+ };
+ _.hi = function QId() {
+ return (this.Bb & 512) != 0;
+ };
+ _.nk = function RId(a, b) {
+ return zId(this, a, b);
+ };
+ _.ok = function SId(a) {
+ DId(this, a);
+ };
+ _.Ib = function TId() {
+ return EId(this);
+ };
+ _.s = 0;
+ _.t = 1;
+ mdb(qte, "ETypedElementImpl", 284);
+ bcb(449, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 });
+ _.Qg = function iJd(a) {
+ return UId(this, a);
+ };
+ _._g = function jJd(a, b, c) {
+ var d, e;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return Bcb(), (this.Bb & 256) != 0 ? true : false;
+ case 3:
+ return Bcb(), (this.Bb & 512) != 0 ? true : false;
+ case 4:
+ return meb(this.s);
+ case 5:
+ return meb(this.t);
+ case 6:
+ return Bcb(), this.$j() ? true : false;
+ case 7:
+ return Bcb(), e = this.s, e >= 1 ? true : false;
+ case 8:
+ if (b)
+ return wId(this);
+ return this.r;
+ case 9:
+ return this.q;
+ case 10:
+ return Bcb(), (this.Bb & zte) != 0 ? true : false;
+ case 11:
+ return Bcb(), (this.Bb & Dve) != 0 ? true : false;
+ case 12:
+ return Bcb(), (this.Bb & Rje) != 0 ? true : false;
+ case 13:
+ return this.j;
+ case 14:
+ return VId(this);
+ case 15:
+ return Bcb(), (this.Bb & Cve) != 0 ? true : false;
+ case 16:
+ return Bcb(), (this.Bb & oie) != 0 ? true : false;
+ case 17:
+ return WId(this);
+ }
+ return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c);
+ };
+ _.hh = function kJd(a, b, c) {
+ var d, e, f;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c);
+ case 17:
+ !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? UId(this, c) : this.Cb.ih(this, -1 - e, null, c)));
+ return _hd(this, a, 17, c);
+ }
+ return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c);
+ };
+ _.jh = function lJd(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 9:
+ return vId(this, c);
+ case 17:
+ return _hd(this, null, 17, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c);
+ };
+ _.lh = function mJd(a) {
+ var b, c;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return this.$j();
+ case 7:
+ return c = this.s, c >= 1;
+ case 8:
+ return !!this.r && !this.q.e && LQd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
+ case 10:
+ return (this.Bb & zte) == 0;
+ case 11:
+ return (this.Bb & Dve) != 0;
+ case 12:
+ return (this.Bb & Rje) != 0;
+ case 13:
+ return this.j != null;
+ case 14:
+ return VId(this) != null;
+ case 15:
+ return (this.Bb & Cve) != 0;
+ case 16:
+ return (this.Bb & oie) != 0;
+ case 17:
+ return !!WId(this);
+ }
+ return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.sh = function nJd(a, b) {
+ var c, d;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ cJd(this, GD(b));
+ return;
+ case 2:
+ BId(this, Ccb(DD(b)));
+ return;
+ case 3:
+ CId(this, Ccb(DD(b)));
+ return;
+ case 4:
+ AId(this, BD(b, 19).a);
+ return;
+ case 5:
+ this.ok(BD(b, 19).a);
+ return;
+ case 8:
+ yId(this, BD(b, 138));
+ return;
+ case 9:
+ d = xId(this, BD(b, 87), null);
+ !!d && d.Fi();
+ return;
+ case 10:
+ ZId(this, Ccb(DD(b)));
+ return;
+ case 11:
+ fJd(this, Ccb(DD(b)));
+ return;
+ case 12:
+ dJd(this, Ccb(DD(b)));
+ return;
+ case 13:
+ $Id(this, GD(b));
+ return;
+ case 15:
+ eJd(this, Ccb(DD(b)));
+ return;
+ case 16:
+ aJd(this, Ccb(DD(b)));
+ return;
+ }
+ did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b);
+ };
+ _.zh = function oJd() {
+ return jGd(), gGd;
+ };
+ _.Bh = function pJd(a) {
+ var b, c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4);
+ pnd(this, null);
+ return;
+ case 2:
+ BId(this, true);
+ return;
+ case 3:
+ CId(this, true);
+ return;
+ case 4:
+ AId(this, 0);
+ return;
+ case 5:
+ this.ok(1);
+ return;
+ case 8:
+ yId(this, null);
+ return;
+ case 9:
+ c = xId(this, null, null);
+ !!c && c.Fi();
+ return;
+ case 10:
+ ZId(this, true);
+ return;
+ case 11:
+ fJd(this, false);
+ return;
+ case 12:
+ dJd(this, false);
+ return;
+ case 13:
+ this.i = null;
+ _Id(this, null);
+ return;
+ case 15:
+ eJd(this, false);
+ return;
+ case 16:
+ aJd(this, false);
+ return;
+ }
+ eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.Gh = function qJd() {
+ a2d(q1d((O6d(), M6d), this));
+ wId(this);
+ this.Bb |= 1;
+ };
+ _.Gj = function rJd() {
+ return this.f;
+ };
+ _.zj = function sJd() {
+ return VId(this);
+ };
+ _.Hj = function tJd() {
+ return WId(this);
+ };
+ _.Lj = function uJd() {
+ return null;
+ };
+ _.pk = function vJd() {
+ return this.k;
+ };
+ _.aj = function wJd() {
+ return this.n;
+ };
+ _.Mj = function xJd() {
+ return XId(this);
+ };
+ _.Nj = function yJd() {
+ var a, b, c, d, e, f, g, h, i;
+ if (!this.p) {
+ c = WId(this);
+ (c.i == null && TKd(c), c.i).length;
+ d = this.Lj();
+ !!d && aLd(WId(d));
+ e = wId(this);
+ g = e.Bj();
+ a = !g ? null : (g.i & 1) != 0 ? g == sbb ? wI : g == WD ? JI : g == VD ? FI : g == UD ? BI : g == XD ? MI : g == rbb ? UI : g == SD ? xI : yI : g;
+ b = VId(this);
+ h = e.zj();
+ n6d(this);
+ (this.Bb & oie) != 0 && (!!(f = t1d((O6d(), M6d), c)) && f != this || !!(f = _1d(q1d(M6d, this)))) ? this.p = new zVd(this, f) : this.$j() ? this.rk() ? !d ? (this.Bb & Cve) != 0 ? !a ? this.sk() ? this.p = new KVd(42, this) : this.p = new KVd(0, this) : a == CK ? this.p = new IVd(50, J4, this) : this.sk() ? this.p = new IVd(43, a, this) : this.p = new IVd(1, a, this) : !a ? this.sk() ? this.p = new KVd(44, this) : this.p = new KVd(2, this) : a == CK ? this.p = new IVd(41, J4, this) : this.sk() ? this.p = new IVd(45, a, this) : this.p = new IVd(3, a, this) : (this.Bb & Cve) != 0 ? !a ? this.sk() ? this.p = new LVd(46, this, d) : this.p = new LVd(4, this, d) : this.sk() ? this.p = new JVd(47, a, this, d) : this.p = new JVd(5, a, this, d) : !a ? this.sk() ? this.p = new LVd(48, this, d) : this.p = new LVd(6, this, d) : this.sk() ? this.p = new JVd(49, a, this, d) : this.p = new JVd(7, a, this, d) : JD(e, 148) ? a == E9 ? this.p = new KVd(40, this) : (this.Bb & 512) != 0 ? (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(8, this) : this.p = new IVd(9, a, this) : !a ? this.p = new KVd(10, this) : this.p = new IVd(11, a, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(12, this) : this.p = new IVd(13, a, this) : !a ? this.p = new KVd(14, this) : this.p = new IVd(15, a, this) : !d ? this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(16, this) : this.p = new IVd(17, a, this) : !a ? this.p = new KVd(18, this) : this.p = new IVd(19, a, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(20, this) : this.p = new IVd(21, a, this) : !a ? this.p = new KVd(22, this) : this.p = new IVd(23, a, this) : (i = d.t, i > 1 || i == -1 ? this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(24, this, d) : this.p = new JVd(25, a, this, d) : !a ? this.p = new LVd(26, this, d) : this.p = new JVd(27, a, this, d) : (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(28, this, d) : this.p = new JVd(29, a, this, d) : !a ? this.p = new LVd(30, this, d) : this.p = new JVd(31, a, this, d) : this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(32, this, d) : this.p = new JVd(33, a, this, d) : !a ? this.p = new LVd(34, this, d) : this.p = new JVd(35, a, this, d) : (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(36, this, d) : this.p = new JVd(37, a, this, d) : !a ? this.p = new LVd(38, this, d) : this.p = new JVd(39, a, this, d)) : this.qk() ? this.sk() ? this.p = new kWd(BD(e, 26), this, d) : this.p = new cWd(BD(e, 26), this, d) : JD(e, 148) ? a == E9 ? this.p = new KVd(40, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new jXd(BD(e, 148), b, h, this) : this.p = new lXd(b, h, this, (CWd(), g == WD ? yWd : g == sbb ? tWd : g == XD ? zWd : g == VD ? xWd : g == UD ? wWd : g == rbb ? BWd : g == SD ? uWd : g == TD ? vWd : AWd)) : !a ? this.p = new cXd(BD(e, 148), b, h, this) : this.p = new eXd(b, h, this, (CWd(), g == WD ? yWd : g == sbb ? tWd : g == XD ? zWd : g == VD ? xWd : g == UD ? wWd : g == rbb ? BWd : g == SD ? uWd : g == TD ? vWd : AWd)) : this.rk() ? !d ? (this.Bb & Cve) != 0 ? this.sk() ? this.p = new FXd(BD(e, 26), this) : this.p = new DXd(BD(e, 26), this) : this.sk() ? this.p = new BXd(BD(e, 26), this) : this.p = new zXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.sk() ? this.p = new NXd(BD(e, 26), this, d) : this.p = new LXd(BD(e, 26), this, d) : this.sk() ? this.p = new JXd(BD(e, 26), this, d) : this.p = new HXd(BD(e, 26), this, d) : this.sk() ? !d ? (this.Bb & Cve) != 0 ? this.p = new RXd(BD(e, 26), this) : this.p = new PXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.p = new VXd(BD(e, 26), this, d) : this.p = new TXd(BD(e, 26), this, d) : !d ? (this.Bb & Cve) != 0 ? this.p = new XXd(BD(e, 26), this) : this.p = new nXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.p = new _Xd(BD(e, 26), this, d) : this.p = new ZXd(BD(e, 26), this, d);
+ }
+ return this.p;
+ };
+ _.Ij = function zJd() {
+ return (this.Bb & zte) != 0;
+ };
+ _.qk = function AJd() {
+ return false;
+ };
+ _.rk = function BJd() {
+ return false;
+ };
+ _.Jj = function CJd() {
+ return (this.Bb & oie) != 0;
+ };
+ _.Oj = function DJd() {
+ return YId(this);
+ };
+ _.sk = function EJd() {
+ return false;
+ };
+ _.Kj = function FJd() {
+ return (this.Bb & Cve) != 0;
+ };
+ _.tk = function GJd(a) {
+ this.k = a;
+ };
+ _.Lh = function HJd(a) {
+ cJd(this, a);
+ };
+ _.Ib = function IJd() {
+ return gJd(this);
+ };
+ _.e = false;
+ _.n = 0;
+ mdb(qte, "EStructuralFeatureImpl", 449);
+ bcb(322, 449, { 105: 1, 92: 1, 90: 1, 34: 1, 147: 1, 191: 1, 56: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 322: 1, 150: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }, OJd);
+ _._g = function PJd(a, b, c) {
+ var d, e;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return Bcb(), (this.Bb & 256) != 0 ? true : false;
+ case 3:
+ return Bcb(), (this.Bb & 512) != 0 ? true : false;
+ case 4:
+ return meb(this.s);
+ case 5:
+ return meb(this.t);
+ case 6:
+ return Bcb(), LJd(this) ? true : false;
+ case 7:
+ return Bcb(), e = this.s, e >= 1 ? true : false;
+ case 8:
+ if (b)
+ return wId(this);
+ return this.r;
+ case 9:
+ return this.q;
+ case 10:
+ return Bcb(), (this.Bb & zte) != 0 ? true : false;
+ case 11:
+ return Bcb(), (this.Bb & Dve) != 0 ? true : false;
+ case 12:
+ return Bcb(), (this.Bb & Rje) != 0 ? true : false;
+ case 13:
+ return this.j;
+ case 14:
+ return VId(this);
+ case 15:
+ return Bcb(), (this.Bb & Cve) != 0 ? true : false;
+ case 16:
+ return Bcb(), (this.Bb & oie) != 0 ? true : false;
+ case 17:
+ return WId(this);
+ case 18:
+ return Bcb(), (this.Bb & ote) != 0 ? true : false;
+ case 19:
+ if (b)
+ return KJd(this);
+ return JJd(this);
+ }
+ return bid(this, a - aLd((jGd(), PFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? PFd : d), a), b, c);
+ };
+ _.lh = function QJd(a) {
+ var b, c;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return LJd(this);
+ case 7:
+ return c = this.s, c >= 1;
+ case 8:
+ return !!this.r && !this.q.e && LQd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
+ case 10:
+ return (this.Bb & zte) == 0;
+ case 11:
+ return (this.Bb & Dve) != 0;
+ case 12:
+ return (this.Bb & Rje) != 0;
+ case 13:
+ return this.j != null;
+ case 14:
+ return VId(this) != null;
+ case 15:
+ return (this.Bb & Cve) != 0;
+ case 16:
+ return (this.Bb & oie) != 0;
+ case 17:
+ return !!WId(this);
+ case 18:
+ return (this.Bb & ote) != 0;
+ case 19:
+ return !!JJd(this);
+ }
+ return cid(this, a - aLd((jGd(), PFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? PFd : b), a));
+ };
+ _.sh = function RJd(a, b) {
+ var c, d;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ cJd(this, GD(b));
+ return;
+ case 2:
+ BId(this, Ccb(DD(b)));
+ return;
+ case 3:
+ CId(this, Ccb(DD(b)));
+ return;
+ case 4:
+ AId(this, BD(b, 19).a);
+ return;
+ case 5:
+ NJd(this, BD(b, 19).a);
+ return;
+ case 8:
+ yId(this, BD(b, 138));
+ return;
+ case 9:
+ d = xId(this, BD(b, 87), null);
+ !!d && d.Fi();
+ return;
+ case 10:
+ ZId(this, Ccb(DD(b)));
+ return;
+ case 11:
+ fJd(this, Ccb(DD(b)));
+ return;
+ case 12:
+ dJd(this, Ccb(DD(b)));
+ return;
+ case 13:
+ $Id(this, GD(b));
+ return;
+ case 15:
+ eJd(this, Ccb(DD(b)));
+ return;
+ case 16:
+ aJd(this, Ccb(DD(b)));
+ return;
+ case 18:
+ MJd(this, Ccb(DD(b)));
+ return;
+ }
+ did(this, a - aLd((jGd(), PFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? PFd : c), a), b);
+ };
+ _.zh = function SJd() {
+ return jGd(), PFd;
+ };
+ _.Bh = function TJd(a) {
+ var b, c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4);
+ pnd(this, null);
+ return;
+ case 2:
+ BId(this, true);
+ return;
+ case 3:
+ CId(this, true);
+ return;
+ case 4:
+ AId(this, 0);
+ return;
+ case 5:
+ this.b = 0;
+ DId(this, 1);
+ return;
+ case 8:
+ yId(this, null);
+ return;
+ case 9:
+ c = xId(this, null, null);
+ !!c && c.Fi();
+ return;
+ case 10:
+ ZId(this, true);
+ return;
+ case 11:
+ fJd(this, false);
+ return;
+ case 12:
+ dJd(this, false);
+ return;
+ case 13:
+ this.i = null;
+ _Id(this, null);
+ return;
+ case 15:
+ eJd(this, false);
+ return;
+ case 16:
+ aJd(this, false);
+ return;
+ case 18:
+ MJd(this, false);
+ return;
+ }
+ eid(this, a - aLd((jGd(), PFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? PFd : b), a));
+ };
+ _.Gh = function UJd() {
+ KJd(this);
+ a2d(q1d((O6d(), M6d), this));
+ wId(this);
+ this.Bb |= 1;
+ };
+ _.$j = function VJd() {
+ return LJd(this);
+ };
+ _.nk = function WJd(a, b) {
+ this.b = 0;
+ this.a = null;
+ return zId(this, a, b);
+ };
+ _.ok = function XJd(a) {
+ NJd(this, a);
+ };
+ _.Ib = function YJd() {
+ var a;
+ if ((this.Db & 64) != 0)
+ return gJd(this);
+ a = new Jfb(gJd(this));
+ a.a += " (iD: ";
+ Ffb(a, (this.Bb & ote) != 0);
+ a.a += ")";
+ return a.a;
+ };
+ _.b = 0;
+ mdb(qte, "EAttributeImpl", 322);
+ bcb(351, 438, { 105: 1, 92: 1, 90: 1, 138: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 150: 1, 114: 1, 115: 1, 676: 1 });
+ _.uk = function nKd(a) {
+ return a.Tg() == this;
+ };
+ _.Qg = function oKd(a) {
+ return aKd(this, a);
+ };
+ _.Rg = function pKd(a, b) {
+ this.w = null;
+ this.Db = b << 16 | this.Db & 255;
+ this.Cb = a;
+ };
+ _._g = function qKd(a, b, c) {
+ var d;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return this.D != null ? this.D : this.B;
+ case 3:
+ return dKd(this);
+ case 4:
+ return this.zj();
+ case 5:
+ return this.F;
+ case 6:
+ if (b)
+ return bKd(this);
+ return ZJd(this);
+ case 7:
+ return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
+ }
+ return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c);
+ };
+ _.hh = function rKd(a, b, c) {
+ var d, e, f;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c);
+ case 6:
+ !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? aKd(this, c) : this.Cb.ih(this, -1 - e, null, c)));
+ return _hd(this, a, 6, c);
+ }
+ return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c);
+ };
+ _.jh = function sKd(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 6:
+ return _hd(this, null, 6, c);
+ case 7:
+ return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c);
+ };
+ _.lh = function tKd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.D != null && this.D == this.F;
+ case 3:
+ return !!dKd(this);
+ case 4:
+ return this.zj() != null;
+ case 5:
+ return this.F != null && this.F != this.D && this.F != this.B;
+ case 6:
+ return !!ZJd(this);
+ case 7:
+ return !!this.A && this.A.i != 0;
+ }
+ return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.sh = function uKd(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ lKd(this, GD(b));
+ return;
+ case 2:
+ iKd(this, GD(b));
+ return;
+ case 5:
+ kKd(this, GD(b));
+ return;
+ case 7:
+ !this.A && (this.A = new K4d(u5, this, 7));
+ Uxd(this.A);
+ !this.A && (this.A = new K4d(u5, this, 7));
+ ytd(this.A, BD(b, 14));
+ return;
+ }
+ did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b);
+ };
+ _.zh = function vKd() {
+ return jGd(), RFd;
+ };
+ _.Bh = function wKd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
+ pnd(this, null);
+ return;
+ case 2:
+ $Jd(this, null);
+ _Jd(this, this.D);
+ return;
+ case 5:
+ kKd(this, null);
+ return;
+ case 7:
+ !this.A && (this.A = new K4d(u5, this, 7));
+ Uxd(this.A);
+ return;
+ }
+ eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.yj = function xKd() {
+ var a;
+ return this.G == -1 && (this.G = (a = bKd(this), a ? HLd(a.Mh(), this) : -1)), this.G;
+ };
+ _.zj = function yKd() {
+ return null;
+ };
+ _.Aj = function zKd() {
+ return bKd(this);
+ };
+ _.vk = function AKd() {
+ return this.v;
+ };
+ _.Bj = function BKd() {
+ return dKd(this);
+ };
+ _.Cj = function CKd() {
+ return this.D != null ? this.D : this.B;
+ };
+ _.Dj = function DKd() {
+ return this.F;
+ };
+ _.wj = function EKd(a) {
+ return fKd(this, a);
+ };
+ _.wk = function FKd(a) {
+ this.v = a;
+ };
+ _.xk = function GKd(a) {
+ gKd(this, a);
+ };
+ _.yk = function HKd(a) {
+ this.C = a;
+ };
+ _.Lh = function IKd(a) {
+ lKd(this, a);
+ };
+ _.Ib = function JKd() {
+ return mKd(this);
+ };
+ _.C = null;
+ _.D = null;
+ _.G = -1;
+ mdb(qte, "EClassifierImpl", 351);
+ bcb(88, 351, { 105: 1, 92: 1, 90: 1, 26: 1, 138: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 88: 1, 351: 1, 150: 1, 473: 1, 114: 1, 115: 1, 676: 1 }, hLd);
+ _.uk = function iLd(a) {
+ return dLd(this, a.Tg());
+ };
+ _._g = function jLd(a, b, c) {
+ var d;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return this.D != null ? this.D : this.B;
+ case 3:
+ return dKd(this);
+ case 4:
+ return null;
+ case 5:
+ return this.F;
+ case 6:
+ if (b)
+ return bKd(this);
+ return ZJd(this);
+ case 7:
+ return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
+ case 8:
+ return Bcb(), (this.Bb & 256) != 0 ? true : false;
+ case 9:
+ return Bcb(), (this.Bb & 512) != 0 ? true : false;
+ case 10:
+ return _Kd(this);
+ case 11:
+ return !this.q && (this.q = new cUd(n5, this, 11, 10)), this.q;
+ case 12:
+ return OKd(this);
+ case 13:
+ return SKd(this);
+ case 14:
+ return SKd(this), this.r;
+ case 15:
+ return OKd(this), this.k;
+ case 16:
+ return PKd(this);
+ case 17:
+ return RKd(this);
+ case 18:
+ return TKd(this);
+ case 19:
+ return UKd(this);
+ case 20:
+ return OKd(this), this.o;
+ case 21:
+ return !this.s && (this.s = new cUd(t5, this, 21, 17)), this.s;
+ case 22:
+ return VKd(this);
+ case 23:
+ return QKd(this);
+ }
+ return bid(this, a - aLd((jGd(), QFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? QFd : d), a), b, c);
+ };
+ _.hh = function kLd(a, b, c) {
+ var d, e, f;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c);
+ case 6:
+ !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? aKd(this, c) : this.Cb.ih(this, -1 - e, null, c)));
+ return _hd(this, a, 6, c);
+ case 11:
+ return !this.q && (this.q = new cUd(n5, this, 11, 10)), Sxd(this.q, a, c);
+ case 21:
+ return !this.s && (this.s = new cUd(t5, this, 21, 17)), Sxd(this.s, a, c);
+ }
+ return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), QFd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), QFd)), a, c);
+ };
+ _.jh = function lLd(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 6:
+ return _hd(this, null, 6, c);
+ case 7:
+ return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c);
+ case 11:
+ return !this.q && (this.q = new cUd(n5, this, 11, 10)), Txd(this.q, a, c);
+ case 21:
+ return !this.s && (this.s = new cUd(t5, this, 21, 17)), Txd(this.s, a, c);
+ case 22:
+ return Txd(VKd(this), a, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), QFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), QFd)), a, c);
+ };
+ _.lh = function mLd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.D != null && this.D == this.F;
+ case 3:
+ return !!dKd(this);
+ case 4:
+ return false;
+ case 5:
+ return this.F != null && this.F != this.D && this.F != this.B;
+ case 6:
+ return !!ZJd(this);
+ case 7:
+ return !!this.A && this.A.i != 0;
+ case 8:
+ return (this.Bb & 256) != 0;
+ case 9:
+ return (this.Bb & 512) != 0;
+ case 10:
+ return !!this.u && VKd(this.u.a).i != 0 && !(!!this.n && FMd(this.n));
+ case 11:
+ return !!this.q && this.q.i != 0;
+ case 12:
+ return OKd(this).i != 0;
+ case 13:
+ return SKd(this).i != 0;
+ case 14:
+ return SKd(this), this.r.i != 0;
+ case 15:
+ return OKd(this), this.k.i != 0;
+ case 16:
+ return PKd(this).i != 0;
+ case 17:
+ return RKd(this).i != 0;
+ case 18:
+ return TKd(this).i != 0;
+ case 19:
+ return UKd(this).i != 0;
+ case 20:
+ return OKd(this), !!this.o;
+ case 21:
+ return !!this.s && this.s.i != 0;
+ case 22:
+ return !!this.n && FMd(this.n);
+ case 23:
+ return QKd(this).i != 0;
+ }
+ return cid(this, a - aLd((jGd(), QFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? QFd : b), a));
+ };
+ _.oh = function nLd(a) {
+ var b;
+ b = this.i == null || !!this.q && this.q.i != 0 ? null : YKd(this, a);
+ return b ? b : Bmd(this, a);
+ };
+ _.sh = function oLd(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ lKd(this, GD(b));
+ return;
+ case 2:
+ iKd(this, GD(b));
+ return;
+ case 5:
+ kKd(this, GD(b));
+ return;
+ case 7:
+ !this.A && (this.A = new K4d(u5, this, 7));
+ Uxd(this.A);
+ !this.A && (this.A = new K4d(u5, this, 7));
+ ytd(this.A, BD(b, 14));
+ return;
+ case 8:
+ eLd(this, Ccb(DD(b)));
+ return;
+ case 9:
+ fLd(this, Ccb(DD(b)));
+ return;
+ case 10:
+ vwd(_Kd(this));
+ ytd(_Kd(this), BD(b, 14));
+ return;
+ case 11:
+ !this.q && (this.q = new cUd(n5, this, 11, 10));
+ Uxd(this.q);
+ !this.q && (this.q = new cUd(n5, this, 11, 10));
+ ytd(this.q, BD(b, 14));
+ return;
+ case 21:
+ !this.s && (this.s = new cUd(t5, this, 21, 17));
+ Uxd(this.s);
+ !this.s && (this.s = new cUd(t5, this, 21, 17));
+ ytd(this.s, BD(b, 14));
+ return;
+ case 22:
+ Uxd(VKd(this));
+ ytd(VKd(this), BD(b, 14));
+ return;
+ }
+ did(this, a - aLd((jGd(), QFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? QFd : c), a), b);
+ };
+ _.zh = function pLd() {
+ return jGd(), QFd;
+ };
+ _.Bh = function qLd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
+ pnd(this, null);
+ return;
+ case 2:
+ $Jd(this, null);
+ _Jd(this, this.D);
+ return;
+ case 5:
+ kKd(this, null);
+ return;
+ case 7:
+ !this.A && (this.A = new K4d(u5, this, 7));
+ Uxd(this.A);
+ return;
+ case 8:
+ eLd(this, false);
+ return;
+ case 9:
+ fLd(this, false);
+ return;
+ case 10:
+ !!this.u && vwd(this.u);
+ return;
+ case 11:
+ !this.q && (this.q = new cUd(n5, this, 11, 10));
+ Uxd(this.q);
+ return;
+ case 21:
+ !this.s && (this.s = new cUd(t5, this, 21, 17));
+ Uxd(this.s);
+ return;
+ case 22:
+ !!this.n && Uxd(this.n);
+ return;
+ }
+ eid(this, a - aLd((jGd(), QFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? QFd : b), a));
+ };
+ _.Gh = function rLd() {
+ var a, b;
+ OKd(this);
+ SKd(this);
+ PKd(this);
+ RKd(this);
+ TKd(this);
+ UKd(this);
+ QKd(this);
+ oud(SMd($Kd(this)));
+ if (this.s) {
+ for (a = 0, b = this.s.i; a < b; ++a) {
+ Cmd(qud(this.s, a));
+ }
+ }
+ if (this.q) {
+ for (a = 0, b = this.q.i; a < b; ++a) {
+ Cmd(qud(this.q, a));
+ }
+ }
+ o1d((O6d(), M6d), this).ne();
+ this.Bb |= 1;
+ };
+ _.Ib = function sLd() {
+ return gLd(this);
+ };
+ _.k = null;
+ _.r = null;
+ var KKd, LKd, MKd;
+ mdb(qte, "EClassImpl", 88);
+ bcb(1994, 1993, Ove);
+ _.Vh = function tLd(a, b) {
+ return Pxd(this, a, b);
+ };
+ _.Wh = function uLd(a) {
+ return Pxd(this, this.i, a);
+ };
+ _.Xh = function vLd(a, b) {
+ Qxd(this, a, b);
+ };
+ _.Yh = function wLd(a) {
+ Rxd(this, a);
+ };
+ _.lk = function xLd(a, b) {
+ return Sxd(this, a, b);
+ };
+ _.pi = function yLd(a) {
+ return nud(this, a);
+ };
+ _.mk = function CLd(a, b) {
+ return Txd(this, a, b);
+ };
+ _.mi = function DLd(a, b) {
+ return Zxd(this, a, b);
+ };
+ _.Zh = function zLd() {
+ return new $yd(this);
+ };
+ _.$h = function ALd() {
+ return new bzd(this);
+ };
+ _._h = function BLd(a) {
+ return ztd(this, a);
+ };
+ mdb(yve, "NotifyingInternalEListImpl", 1994);
+ bcb(622, 1994, Pve);
+ _.Hc = function NLd(a) {
+ return ELd(this, a);
+ };
+ _.Zi = function OLd(a, b, c, d, e) {
+ return FLd(this, a, b, c, d, e);
+ };
+ _.$i = function PLd(a) {
+ GLd(this, a);
+ };
+ _.Wj = function QLd(a) {
+ return this;
+ };
+ _.ak = function RLd() {
+ return XKd(this.e.Tg(), this.aj());
+ };
+ _._i = function SLd() {
+ return this.ak();
+ };
+ _.aj = function TLd() {
+ return bLd(this.e.Tg(), this.ak());
+ };
+ _.zk = function ULd() {
+ return BD(this.ak().Yj(), 26).Bj();
+ };
+ _.Ak = function VLd() {
+ return zUd(BD(this.ak(), 18)).n;
+ };
+ _.Ai = function WLd() {
+ return this.e;
+ };
+ _.Bk = function XLd() {
+ return true;
+ };
+ _.Ck = function YLd() {
+ return false;
+ };
+ _.Dk = function ZLd() {
+ return false;
+ };
+ _.Ek = function $Ld() {
+ return false;
+ };
+ _.Xc = function _Ld(a) {
+ return HLd(this, a);
+ };
+ _.cj = function aMd(a, b) {
+ var c;
+ return c = BD(a, 49), this.Dk() ? this.Bk() ? c.gh(this.e, this.Ak(), this.zk(), b) : c.gh(this.e, bLd(c.Tg(), zUd(BD(this.ak(), 18))), null, b) : c.gh(this.e, -1 - this.aj(), null, b);
+ };
+ _.dj = function bMd(a, b) {
+ var c;
+ return c = BD(a, 49), this.Dk() ? this.Bk() ? c.ih(this.e, this.Ak(), this.zk(), b) : c.ih(this.e, bLd(c.Tg(), zUd(BD(this.ak(), 18))), null, b) : c.ih(this.e, -1 - this.aj(), null, b);
+ };
+ _.rk = function cMd() {
+ return false;
+ };
+ _.Fk = function dMd() {
+ return true;
+ };
+ _.wj = function eMd(a) {
+ return qEd(this.d, a);
+ };
+ _.ej = function fMd() {
+ return oid(this.e);
+ };
+ _.fj = function gMd() {
+ return this.i != 0;
+ };
+ _.ri = function hMd(a) {
+ return izd(this.d, a);
+ };
+ _.li = function iMd(a, b) {
+ return this.Fk() && this.Ek() ? ILd(this, a, BD(b, 56)) : b;
+ };
+ _.Gk = function jMd(a) {
+ return a.kh() ? xid(this.e, BD(a, 49)) : a;
+ };
+ _.Wb = function kMd(a) {
+ JLd(this, a);
+ };
+ _.Pc = function lMd() {
+ return KLd(this);
+ };
+ _.Qc = function mMd(a) {
+ var b;
+ if (this.Ek()) {
+ for (b = this.i - 1; b >= 0; --b) {
+ qud(this, b);
+ }
+ }
+ return xud(this, a);
+ };
+ _.Xj = function nMd() {
+ Uxd(this);
+ };
+ _.oi = function oMd(a, b) {
+ return LLd(this, a, b);
+ };
+ mdb(yve, "EcoreEList", 622);
+ bcb(496, 622, Pve, pMd);
+ _.ai = function qMd() {
+ return false;
+ };
+ _.aj = function rMd() {
+ return this.c;
+ };
+ _.bj = function sMd() {
+ return false;
+ };
+ _.Fk = function tMd() {
+ return true;
+ };
+ _.hi = function uMd() {
+ return true;
+ };
+ _.li = function vMd(a, b) {
+ return b;
+ };
+ _.ni = function wMd() {
+ return false;
+ };
+ _.c = 0;
+ mdb(yve, "EObjectEList", 496);
+ bcb(85, 496, Pve, xMd);
+ _.bj = function yMd() {
+ return true;
+ };
+ _.Dk = function zMd() {
+ return false;
+ };
+ _.rk = function AMd() {
+ return true;
+ };
+ mdb(yve, "EObjectContainmentEList", 85);
+ bcb(545, 85, Pve, BMd);
+ _.ci = function CMd() {
+ this.b = true;
+ };
+ _.fj = function DMd() {
+ return this.b;
+ };
+ _.Xj = function EMd() {
+ var a;
+ Uxd(this);
+ if (oid(this.e)) {
+ a = this.b;
+ this.b = false;
+ Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
+ } else {
+ this.b = false;
+ }
+ };
+ _.b = false;
+ mdb(yve, "EObjectContainmentEList/Unsettable", 545);
+ bcb(1140, 545, Pve, JMd);
+ _.ii = function NMd(a, b) {
+ var c, d;
+ return c = BD(Wxd(this, a, b), 87), oid(this.e) && GLd(this, new ESd(this.a, 7, (jGd(), SFd), meb(b), (d = c.c, JD(d, 88) ? BD(d, 26) : _Fd), a)), c;
+ };
+ _.jj = function OMd(a, b) {
+ return GMd(this, BD(a, 87), b);
+ };
+ _.kj = function PMd(a, b) {
+ return HMd(this, BD(a, 87), b);
+ };
+ _.lj = function QMd(a, b, c) {
+ return IMd(this, BD(a, 87), BD(b, 87), c);
+ };
+ _.Zi = function KMd(a, b, c, d, e) {
+ switch (a) {
+ case 3: {
+ return FLd(this, a, b, c, d, this.i > 1);
+ }
+ case 5: {
+ return FLd(this, a, b, c, d, this.i - BD(c, 15).gc() > 0);
+ }
+ default: {
+ return new pSd(this.e, a, this.c, b, c, d, true);
+ }
+ }
+ };
+ _.ij = function LMd() {
+ return true;
+ };
+ _.fj = function MMd() {
+ return FMd(this);
+ };
+ _.Xj = function RMd() {
+ Uxd(this);
+ };
+ mdb(qte, "EClassImpl/1", 1140);
+ bcb(1154, 1153, dve);
+ _.ui = function VMd(a) {
+ var b, c, d, e, f, g, h;
+ c = a.xi();
+ if (c != 8) {
+ d = UMd(a);
+ if (d == 0) {
+ switch (c) {
+ case 1:
+ case 9: {
+ h = a.Bi();
+ if (h != null) {
+ b = $Kd(BD(h, 473));
+ !b.c && (b.c = new xYd());
+ Ftd(b.c, a.Ai());
+ }
+ g = a.zi();
+ if (g != null) {
+ e = BD(g, 473);
+ if ((e.Bb & 1) == 0) {
+ b = $Kd(e);
+ !b.c && (b.c = new xYd());
+ wtd(b.c, BD(a.Ai(), 26));
+ }
+ }
+ break;
+ }
+ case 3: {
+ g = a.zi();
+ if (g != null) {
+ e = BD(g, 473);
+ if ((e.Bb & 1) == 0) {
+ b = $Kd(e);
+ !b.c && (b.c = new xYd());
+ wtd(b.c, BD(a.Ai(), 26));
+ }
+ }
+ break;
+ }
+ case 5: {
+ g = a.zi();
+ if (g != null) {
+ for (f = BD(g, 14).Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 473);
+ if ((e.Bb & 1) == 0) {
+ b = $Kd(e);
+ !b.c && (b.c = new xYd());
+ wtd(b.c, BD(a.Ai(), 26));
+ }
+ }
+ }
+ break;
+ }
+ case 4: {
+ h = a.Bi();
+ if (h != null) {
+ e = BD(h, 473);
+ if ((e.Bb & 1) == 0) {
+ b = $Kd(e);
+ !b.c && (b.c = new xYd());
+ Ftd(b.c, a.Ai());
+ }
+ }
+ break;
+ }
+ case 6: {
+ h = a.Bi();
+ if (h != null) {
+ for (f = BD(h, 14).Kc(); f.Ob(); ) {
+ e = BD(f.Pb(), 473);
+ if ((e.Bb & 1) == 0) {
+ b = $Kd(e);
+ !b.c && (b.c = new xYd());
+ Ftd(b.c, a.Ai());
+ }
+ }
+ }
+ break;
+ }
+ }
+ }
+ this.Hk(d);
+ }
+ };
+ _.Hk = function WMd(a) {
+ TMd(this, a);
+ };
+ _.b = 63;
+ mdb(qte, "ESuperAdapter", 1154);
+ bcb(1155, 1154, dve, YMd);
+ _.Hk = function ZMd(a) {
+ XMd(this, a);
+ };
+ mdb(qte, "EClassImpl/10", 1155);
+ bcb(1144, 696, Pve);
+ _.Vh = function $Md(a, b) {
+ return iud(this, a, b);
+ };
+ _.Wh = function _Md(a) {
+ return jud(this, a);
+ };
+ _.Xh = function aNd(a, b) {
+ kud(this, a, b);
+ };
+ _.Yh = function bNd(a) {
+ lud(this, a);
+ };
+ _.pi = function dNd(a) {
+ return nud(this, a);
+ };
+ _.mi = function lNd(a, b) {
+ return uud(this, a, b);
+ };
+ _.lk = function cNd(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Zh = function eNd() {
+ return new $yd(this);
+ };
+ _.$h = function fNd() {
+ return new bzd(this);
+ };
+ _._h = function gNd(a) {
+ return ztd(this, a);
+ };
+ _.mk = function hNd(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Wj = function iNd(a) {
+ return this;
+ };
+ _.fj = function jNd() {
+ return this.i != 0;
+ };
+ _.Wb = function kNd(a) {
+ throw vbb(new bgb());
+ };
+ _.Xj = function mNd() {
+ throw vbb(new bgb());
+ };
+ mdb(yve, "EcoreEList/UnmodifiableEList", 1144);
+ bcb(319, 1144, Pve, nNd);
+ _.ni = function oNd() {
+ return false;
+ };
+ mdb(yve, "EcoreEList/UnmodifiableEList/FastCompare", 319);
+ bcb(1147, 319, Pve, rNd);
+ _.Xc = function sNd(a) {
+ var b, c, d;
+ if (JD(a, 170)) {
+ b = BD(a, 170);
+ c = b.aj();
+ if (c != -1) {
+ for (d = this.i; c < d; ++c) {
+ if (PD(this.g[c]) === PD(a)) {
+ return c;
+ }
+ }
+ }
+ }
+ return -1;
+ };
+ mdb(qte, "EClassImpl/1EAllStructuralFeaturesList", 1147);
+ bcb(1141, 497, oue, wNd);
+ _.ri = function xNd(a) {
+ return KC(j5, Tve, 87, a, 0, 1);
+ };
+ _.ni = function yNd() {
+ return false;
+ };
+ mdb(qte, "EClassImpl/1EGenericSuperTypeEList", 1141);
+ bcb(623, 497, oue, zNd);
+ _.ri = function ANd(a) {
+ return KC(t5, Mve, 170, a, 0, 1);
+ };
+ _.ni = function BNd() {
+ return false;
+ };
+ mdb(qte, "EClassImpl/1EStructuralFeatureUniqueEList", 623);
+ bcb(741, 497, oue, CNd);
+ _.ri = function DNd(a) {
+ return KC(q5, Mve, 18, a, 0, 1);
+ };
+ _.ni = function ENd() {
+ return false;
+ };
+ mdb(qte, "EClassImpl/1ReferenceList", 741);
+ bcb(1142, 497, oue, GNd);
+ _.bi = function HNd(a, b) {
+ FNd(this, BD(b, 34));
+ };
+ _.ri = function INd(a) {
+ return KC(b5, Mve, 34, a, 0, 1);
+ };
+ _.ni = function JNd() {
+ return false;
+ };
+ mdb(qte, "EClassImpl/2", 1142);
+ bcb(1143, 497, oue, KNd);
+ _.ri = function LNd(a) {
+ return KC(b5, Mve, 34, a, 0, 1);
+ };
+ _.ni = function MNd() {
+ return false;
+ };
+ mdb(qte, "EClassImpl/3", 1143);
+ bcb(1145, 319, Pve, PNd);
+ _.Fc = function QNd(a) {
+ return NNd(this, BD(a, 34));
+ };
+ _.Yh = function RNd(a) {
+ ONd(this, BD(a, 34));
+ };
+ mdb(qte, "EClassImpl/4", 1145);
+ bcb(1146, 319, Pve, UNd);
+ _.Fc = function VNd(a) {
+ return SNd(this, BD(a, 18));
+ };
+ _.Yh = function WNd(a) {
+ TNd(this, BD(a, 18));
+ };
+ mdb(qte, "EClassImpl/5", 1146);
+ bcb(1148, 497, oue, XNd);
+ _.ri = function YNd(a) {
+ return KC(n5, Nve, 59, a, 0, 1);
+ };
+ _.ni = function ZNd() {
+ return false;
+ };
+ mdb(qte, "EClassImpl/6", 1148);
+ bcb(1149, 497, oue, $Nd);
+ _.ri = function _Nd(a) {
+ return KC(q5, Mve, 18, a, 0, 1);
+ };
+ _.ni = function aOd() {
+ return false;
+ };
+ mdb(qte, "EClassImpl/7", 1149);
+ bcb(1997, 1996, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1, 69: 1 });
+ _.Vh = function bOd(a, b) {
+ return qwd(this, a, b);
+ };
+ _.Wh = function cOd(a) {
+ return qwd(this, this.Vi(), a);
+ };
+ _.Xh = function dOd(a, b) {
+ rwd(this, a, b);
+ };
+ _.Yh = function eOd(a) {
+ swd(this, a);
+ };
+ _.lk = function fOd(a, b) {
+ return twd(this, a, b);
+ };
+ _.mk = function lOd(a, b) {
+ return uwd(this, a, b);
+ };
+ _.mi = function mOd(a, b) {
+ return wwd(this, a, b);
+ };
+ _.pi = function gOd(a) {
+ return this.Oi(a);
+ };
+ _.Zh = function hOd() {
+ return new $yd(this);
+ };
+ _.Gi = function iOd() {
+ return this.Ji();
+ };
+ _.$h = function jOd() {
+ return new bzd(this);
+ };
+ _._h = function kOd(a) {
+ return ztd(this, a);
+ };
+ mdb(yve, "DelegatingNotifyingInternalEListImpl", 1997);
+ bcb(742, 1997, Uve);
+ _.ai = function rOd() {
+ var a;
+ a = XKd(wjd(this.b), this.aj()).Yj();
+ return JD(a, 148) && !JD(a, 457) && (a.Bj().i & 1) == 0;
+ };
+ _.Hc = function sOd(a) {
+ var b, c, d, e, f, g, h, i;
+ if (this.Fk()) {
+ i = this.Vi();
+ if (i > 4) {
+ if (this.wj(a)) {
+ if (this.rk()) {
+ d = BD(a, 49);
+ c = d.Ug();
+ h = c == this.b && (this.Dk() ? d.Og(d.Vg(), BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj()) == zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n : -1 - d.Vg() == this.aj());
+ if (this.Ek() && !h && !c && !!d.Zg()) {
+ for (e = 0; e < i; ++e) {
+ b = oOd(this, this.Oi(e));
+ if (PD(b) === PD(a)) {
+ return true;
+ }
+ }
+ }
+ return h;
+ } else if (this.Dk() && !this.Ck()) {
+ f = BD(a, 56).ah(zUd(BD(XKd(wjd(this.b), this.aj()), 18)));
+ if (PD(f) === PD(this.b)) {
+ return true;
+ } else if (f == null || !BD(f, 56).kh()) {
+ return false;
+ }
+ }
+ } else {
+ return false;
+ }
+ }
+ g = this.Li(a);
+ if (this.Ek() && !g) {
+ for (e = 0; e < i; ++e) {
+ d = oOd(this, this.Oi(e));
+ if (PD(d) === PD(a)) {
+ return true;
+ }
+ }
+ }
+ return g;
+ } else {
+ return this.Li(a);
+ }
+ };
+ _.Zi = function tOd(a, b, c, d, e) {
+ return new pSd(this.b, a, this.aj(), b, c, d, e);
+ };
+ _.$i = function uOd(a) {
+ Uhd(this.b, a);
+ };
+ _.Wj = function vOd(a) {
+ return this;
+ };
+ _._i = function wOd() {
+ return XKd(wjd(this.b), this.aj());
+ };
+ _.aj = function xOd() {
+ return bLd(wjd(this.b), XKd(wjd(this.b), this.aj()));
+ };
+ _.Ai = function yOd() {
+ return this.b;
+ };
+ _.Bk = function zOd() {
+ return !!XKd(wjd(this.b), this.aj()).Yj().Bj();
+ };
+ _.bj = function AOd() {
+ var a, b;
+ b = XKd(wjd(this.b), this.aj());
+ if (JD(b, 99)) {
+ a = BD(b, 18);
+ return (a.Bb & ote) != 0 || !!zUd(BD(b, 18));
+ } else {
+ return false;
+ }
+ };
+ _.Ck = function BOd() {
+ var a, b, c, d;
+ b = XKd(wjd(this.b), this.aj());
+ if (JD(b, 99)) {
+ a = BD(b, 18);
+ c = zUd(a);
+ return !!c && (d = c.t, d > 1 || d == -1);
+ } else {
+ return false;
+ }
+ };
+ _.Dk = function COd() {
+ var a, b, c;
+ b = XKd(wjd(this.b), this.aj());
+ if (JD(b, 99)) {
+ a = BD(b, 18);
+ c = zUd(a);
+ return !!c;
+ } else {
+ return false;
+ }
+ };
+ _.Ek = function DOd() {
+ var a, b;
+ b = XKd(wjd(this.b), this.aj());
+ if (JD(b, 99)) {
+ a = BD(b, 18);
+ return (a.Bb & Tje) != 0;
+ } else {
+ return false;
+ }
+ };
+ _.Xc = function EOd(a) {
+ var b, c, d, e;
+ d = this.Qi(a);
+ if (d >= 0)
+ return d;
+ if (this.Fk()) {
+ for (c = 0, e = this.Vi(); c < e; ++c) {
+ b = oOd(this, this.Oi(c));
+ if (PD(b) === PD(a)) {
+ return c;
+ }
+ }
+ }
+ return -1;
+ };
+ _.cj = function FOd(a, b) {
+ var c;
+ return c = BD(a, 49), this.Dk() ? this.Bk() ? c.gh(this.b, zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n, BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj(), b) : c.gh(this.b, bLd(c.Tg(), zUd(BD(XKd(wjd(this.b), this.aj()), 18))), null, b) : c.gh(this.b, -1 - this.aj(), null, b);
+ };
+ _.dj = function GOd(a, b) {
+ var c;
+ return c = BD(a, 49), this.Dk() ? this.Bk() ? c.ih(this.b, zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n, BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj(), b) : c.ih(this.b, bLd(c.Tg(), zUd(BD(XKd(wjd(this.b), this.aj()), 18))), null, b) : c.ih(this.b, -1 - this.aj(), null, b);
+ };
+ _.rk = function HOd() {
+ var a, b;
+ b = XKd(wjd(this.b), this.aj());
+ if (JD(b, 99)) {
+ a = BD(b, 18);
+ return (a.Bb & ote) != 0;
+ } else {
+ return false;
+ }
+ };
+ _.Fk = function IOd() {
+ return JD(XKd(wjd(this.b), this.aj()).Yj(), 88);
+ };
+ _.wj = function JOd(a) {
+ return XKd(wjd(this.b), this.aj()).Yj().wj(a);
+ };
+ _.ej = function KOd() {
+ return oid(this.b);
+ };
+ _.fj = function LOd() {
+ return !this.Ri();
+ };
+ _.hi = function MOd() {
+ return XKd(wjd(this.b), this.aj()).hi();
+ };
+ _.li = function NOd(a, b) {
+ return nOd(this, a, b);
+ };
+ _.Wb = function OOd(a) {
+ vwd(this);
+ ytd(this, BD(a, 15));
+ };
+ _.Pc = function POd() {
+ var a;
+ if (this.Ek()) {
+ for (a = this.Vi() - 1; a >= 0; --a) {
+ nOd(this, a, this.Oi(a));
+ }
+ }
+ return this.Wi();
+ };
+ _.Qc = function QOd(a) {
+ var b;
+ if (this.Ek()) {
+ for (b = this.Vi() - 1; b >= 0; --b) {
+ nOd(this, b, this.Oi(b));
+ }
+ }
+ return this.Xi(a);
+ };
+ _.Xj = function ROd() {
+ vwd(this);
+ };
+ _.oi = function SOd(a, b) {
+ return pOd(this, a, b);
+ };
+ mdb(yve, "DelegatingEcoreEList", 742);
+ bcb(1150, 742, Uve, YOd);
+ _.Hi = function _Od(a, b) {
+ TOd(this, a, BD(b, 26));
+ };
+ _.Ii = function aPd(a) {
+ UOd(this, BD(a, 26));
+ };
+ _.Oi = function gPd(a) {
+ var b, c;
+ return b = BD(qud(VKd(this.a), a), 87), c = b.c, JD(c, 88) ? BD(c, 26) : (jGd(), _Fd);
+ };
+ _.Ti = function lPd(a) {
+ var b, c;
+ return b = BD(Xxd(VKd(this.a), a), 87), c = b.c, JD(c, 88) ? BD(c, 26) : (jGd(), _Fd);
+ };
+ _.Ui = function mPd(a, b) {
+ return WOd(this, a, BD(b, 26));
+ };
+ _.ai = function ZOd() {
+ return false;
+ };
+ _.Zi = function $Od(a, b, c, d, e) {
+ return null;
+ };
+ _.Ji = function bPd() {
+ return new EPd(this);
+ };
+ _.Ki = function cPd() {
+ Uxd(VKd(this.a));
+ };
+ _.Li = function dPd(a) {
+ return VOd(this, a);
+ };
+ _.Mi = function ePd(a) {
+ var b, c;
+ for (c = a.Kc(); c.Ob(); ) {
+ b = c.Pb();
+ if (!VOd(this, b)) {
+ return false;
+ }
+ }
+ return true;
+ };
+ _.Ni = function fPd(a) {
+ var b, c, d;
+ if (JD(a, 15)) {
+ d = BD(a, 15);
+ if (d.gc() == VKd(this.a).i) {
+ for (b = d.Kc(), c = new Fyd(this); b.Ob(); ) {
+ if (PD(b.Pb()) !== PD(Dyd(c))) {
+ return false;
+ }
+ }
+ return true;
+ }
+ }
+ return false;
+ };
+ _.Pi = function hPd() {
+ var a, b, c, d, e;
+ c = 1;
+ for (b = new Fyd(VKd(this.a)); b.e != b.i.gc(); ) {
+ a = BD(Dyd(b), 87);
+ d = (e = a.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd));
+ c = 31 * c + (!d ? 0 : FCb(d));
+ }
+ return c;
+ };
+ _.Qi = function iPd(a) {
+ var b, c, d, e;
+ d = 0;
+ for (c = new Fyd(VKd(this.a)); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 87);
+ if (PD(a) === PD((e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)))) {
+ return d;
+ }
+ ++d;
+ }
+ return -1;
+ };
+ _.Ri = function jPd() {
+ return VKd(this.a).i == 0;
+ };
+ _.Si = function kPd() {
+ return null;
+ };
+ _.Vi = function nPd() {
+ return VKd(this.a).i;
+ };
+ _.Wi = function oPd() {
+ var a, b, c, d, e, f;
+ f = VKd(this.a).i;
+ e = KC(SI, Uhe, 1, f, 5, 1);
+ c = 0;
+ for (b = new Fyd(VKd(this.a)); b.e != b.i.gc(); ) {
+ a = BD(Dyd(b), 87);
+ e[c++] = (d = a.c, JD(d, 88) ? BD(d, 26) : (jGd(), _Fd));
+ }
+ return e;
+ };
+ _.Xi = function pPd(a) {
+ var b, c, d, e, f, g, h;
+ h = VKd(this.a).i;
+ if (a.length < h) {
+ e = izd(rb(a).c, h);
+ a = e;
+ }
+ a.length > h && NC(a, h, null);
+ d = 0;
+ for (c = new Fyd(VKd(this.a)); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 87);
+ f = (g = b.c, JD(g, 88) ? BD(g, 26) : (jGd(), _Fd));
+ NC(a, d++, f);
+ }
+ return a;
+ };
+ _.Yi = function qPd() {
+ var a, b, c, d, e;
+ e = new Hfb();
+ e.a += "[";
+ a = VKd(this.a);
+ for (b = 0, d = VKd(this.a).i; b < d; ) {
+ Efb(e, xfb((c = BD(qud(a, b), 87).c, JD(c, 88) ? BD(c, 26) : (jGd(), _Fd))));
+ ++b < d && (e.a += She, e);
+ }
+ e.a += "]";
+ return e.a;
+ };
+ _.$i = function rPd(a) {
+ };
+ _.aj = function sPd() {
+ return 10;
+ };
+ _.Bk = function tPd() {
+ return true;
+ };
+ _.bj = function uPd() {
+ return false;
+ };
+ _.Ck = function vPd() {
+ return false;
+ };
+ _.Dk = function wPd() {
+ return false;
+ };
+ _.Ek = function xPd() {
+ return true;
+ };
+ _.rk = function yPd() {
+ return false;
+ };
+ _.Fk = function zPd() {
+ return true;
+ };
+ _.wj = function APd(a) {
+ return JD(a, 88);
+ };
+ _.fj = function BPd() {
+ return cLd(this.a);
+ };
+ _.hi = function CPd() {
+ return true;
+ };
+ _.ni = function DPd() {
+ return true;
+ };
+ mdb(qte, "EClassImpl/8", 1150);
+ bcb(1151, 1964, Lie, EPd);
+ _.Zc = function FPd(a) {
+ return ztd(this.a, a);
+ };
+ _.gc = function GPd() {
+ return VKd(this.a.a).i;
+ };
+ mdb(qte, "EClassImpl/8/1", 1151);
+ bcb(1152, 497, oue, HPd);
+ _.ri = function IPd(a) {
+ return KC(d5, Uhe, 138, a, 0, 1);
+ };
+ _.ni = function JPd() {
+ return false;
+ };
+ mdb(qte, "EClassImpl/9", 1152);
+ bcb(1139, 53, gke, KPd);
+ mdb(qte, "EClassImpl/MyHashSet", 1139);
+ bcb(566, 351, { 105: 1, 92: 1, 90: 1, 138: 1, 148: 1, 834: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 150: 1, 114: 1, 115: 1, 676: 1 }, MPd);
+ _._g = function NPd(a, b, c) {
+ var d;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return this.D != null ? this.D : this.B;
+ case 3:
+ return dKd(this);
+ case 4:
+ return this.zj();
+ case 5:
+ return this.F;
+ case 6:
+ if (b)
+ return bKd(this);
+ return ZJd(this);
+ case 7:
+ return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
+ case 8:
+ return Bcb(), (this.Bb & 256) != 0 ? true : false;
+ }
+ return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c);
+ };
+ _.lh = function OPd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.D != null && this.D == this.F;
+ case 3:
+ return !!dKd(this);
+ case 4:
+ return this.zj() != null;
+ case 5:
+ return this.F != null && this.F != this.D && this.F != this.B;
+ case 6:
+ return !!ZJd(this);
+ case 7:
+ return !!this.A && this.A.i != 0;
+ case 8:
+ return (this.Bb & 256) == 0;
+ }
+ return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.sh = function PPd(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ lKd(this, GD(b));
+ return;
+ case 2:
+ iKd(this, GD(b));
+ return;
+ case 5:
+ kKd(this, GD(b));
+ return;
+ case 7:
+ !this.A && (this.A = new K4d(u5, this, 7));
+ Uxd(this.A);
+ !this.A && (this.A = new K4d(u5, this, 7));
+ ytd(this.A, BD(b, 14));
+ return;
+ case 8:
+ LPd(this, Ccb(DD(b)));
+ return;
+ }
+ did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b);
+ };
+ _.zh = function QPd() {
+ return jGd(), TFd;
+ };
+ _.Bh = function RPd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
+ pnd(this, null);
+ return;
+ case 2:
+ $Jd(this, null);
+ _Jd(this, this.D);
+ return;
+ case 5:
+ kKd(this, null);
+ return;
+ case 7:
+ !this.A && (this.A = new K4d(u5, this, 7));
+ Uxd(this.A);
+ return;
+ case 8:
+ LPd(this, true);
+ return;
+ }
+ eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
+ };
+ _.Gh = function SPd() {
+ o1d((O6d(), M6d), this).ne();
+ this.Bb |= 1;
+ };
+ _.Fj = function TPd() {
+ var a, b, c;
+ if (!this.c) {
+ a = l6d(bKd(this));
+ if (!a.dc()) {
+ for (c = a.Kc(); c.Ob(); ) {
+ b = GD(c.Pb());
+ !!Dmd(this, b) && k6d(this);
+ }
+ }
+ }
+ return this.b;
+ };
+ _.zj = function UPd() {
+ var b;
+ if (!this.e) {
+ b = null;
+ try {
+ b = dKd(this);
+ } catch (a) {
+ a = ubb(a);
+ if (!JD(a, 102))
+ throw vbb(a);
+ }
+ this.d = null;
+ !!b && (b.i & 1) != 0 && (b == sbb ? this.d = (Bcb(), zcb) : b == WD ? this.d = meb(0) : b == VD ? this.d = new Ndb(0) : b == UD ? this.d = 0 : b == XD ? this.d = Aeb(0) : b == rbb ? this.d = Web(0) : b == SD ? this.d = Scb(0) : this.d = bdb(0));
+ this.e = true;
+ }
+ return this.d;
+ };
+ _.Ej = function VPd() {
+ return (this.Bb & 256) != 0;
+ };
+ _.Ik = function WPd(a) {
+ a && (this.D = "org.eclipse.emf.common.util.AbstractEnumerator");
+ };
+ _.xk = function XPd(a) {
+ gKd(this, a);
+ this.Ik(a);
+ };
+ _.yk = function YPd(a) {
+ this.C = a;
+ this.e = false;
+ };
+ _.Ib = function ZPd() {
+ var a;
+ if ((this.Db & 64) != 0)
+ return mKd(this);
+ a = new Jfb(mKd(this));
+ a.a += " (serializable: ";
+ Ffb(a, (this.Bb & 256) != 0);
+ a.a += ")";
+ return a.a;
+ };
+ _.c = false;
+ _.d = null;
+ _.e = false;
+ mdb(qte, "EDataTypeImpl", 566);
+ bcb(457, 566, { 105: 1, 92: 1, 90: 1, 138: 1, 148: 1, 834: 1, 671: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 457: 1, 150: 1, 114: 1, 115: 1, 676: 1 }, aQd);
+ _._g = function bQd(a, b, c) {
+ var d;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return this.D != null ? this.D : this.B;
+ case 3:
+ return dKd(this);
+ case 4:
+ return $Pd(this);
+ case 5:
+ return this.F;
+ case 6:
+ if (b)
+ return bKd(this);
+ return ZJd(this);
+ case 7:
+ return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
+ case 8:
+ return Bcb(), (this.Bb & 256) != 0 ? true : false;
+ case 9:
+ return !this.a && (this.a = new cUd(g5, this, 9, 5)), this.a;
+ }
+ return bid(this, a - aLd((jGd(), UFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? UFd : d), a), b, c);
+ };
+ _.hh = function cQd(a, b, c) {
+ var d, e, f;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c);
+ case 6:
+ !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? aKd(this, c) : this.Cb.ih(this, -1 - e, null, c)));
+ return _hd(this, a, 6, c);
+ case 9:
+ return !this.a && (this.a = new cUd(g5, this, 9, 5)), Sxd(this.a, a, c);
+ }
+ return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), UFd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), UFd)), a, c);
+ };
+ _.jh = function dQd(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 6:
+ return _hd(this, null, 6, c);
+ case 7:
+ return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c);
+ case 9:
+ return !this.a && (this.a = new cUd(g5, this, 9, 5)), Txd(this.a, a, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), UFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), UFd)), a, c);
+ };
+ _.lh = function eQd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.D != null && this.D == this.F;
+ case 3:
+ return !!dKd(this);
+ case 4:
+ return !!$Pd(this);
+ case 5:
+ return this.F != null && this.F != this.D && this.F != this.B;
+ case 6:
+ return !!ZJd(this);
+ case 7:
+ return !!this.A && this.A.i != 0;
+ case 8:
+ return (this.Bb & 256) == 0;
+ case 9:
+ return !!this.a && this.a.i != 0;
+ }
+ return cid(this, a - aLd((jGd(), UFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? UFd : b), a));
+ };
+ _.sh = function fQd(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ lKd(this, GD(b));
+ return;
+ case 2:
+ iKd(this, GD(b));
+ return;
+ case 5:
+ kKd(this, GD(b));
+ return;
+ case 7:
+ !this.A && (this.A = new K4d(u5, this, 7));
+ Uxd(this.A);
+ !this.A && (this.A = new K4d(u5, this, 7));
+ ytd(this.A, BD(b, 14));
+ return;
+ case 8:
+ LPd(this, Ccb(DD(b)));
+ return;
+ case 9:
+ !this.a && (this.a = new cUd(g5, this, 9, 5));
+ Uxd(this.a);
+ !this.a && (this.a = new cUd(g5, this, 9, 5));
+ ytd(this.a, BD(b, 14));
+ return;
+ }
+ did(this, a - aLd((jGd(), UFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? UFd : c), a), b);
+ };
+ _.zh = function gQd() {
+ return jGd(), UFd;
+ };
+ _.Bh = function hQd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
+ pnd(this, null);
+ return;
+ case 2:
+ $Jd(this, null);
+ _Jd(this, this.D);
+ return;
+ case 5:
+ kKd(this, null);
+ return;
+ case 7:
+ !this.A && (this.A = new K4d(u5, this, 7));
+ Uxd(this.A);
+ return;
+ case 8:
+ LPd(this, true);
+ return;
+ case 9:
+ !this.a && (this.a = new cUd(g5, this, 9, 5));
+ Uxd(this.a);
+ return;
+ }
+ eid(this, a - aLd((jGd(), UFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? UFd : b), a));
+ };
+ _.Gh = function iQd() {
+ var a, b;
+ if (this.a) {
+ for (a = 0, b = this.a.i; a < b; ++a) {
+ Cmd(qud(this.a, a));
+ }
+ }
+ o1d((O6d(), M6d), this).ne();
+ this.Bb |= 1;
+ };
+ _.zj = function jQd() {
+ return $Pd(this);
+ };
+ _.wj = function kQd(a) {
+ if (a != null) {
+ return true;
+ }
+ return false;
+ };
+ _.Ik = function lQd(a) {
+ };
+ mdb(qte, "EEnumImpl", 457);
+ bcb(573, 438, { 105: 1, 92: 1, 90: 1, 1940: 1, 678: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 573: 1, 150: 1, 114: 1, 115: 1 }, rQd);
+ _.ne = function AQd() {
+ return this.zb;
+ };
+ _.Qg = function sQd(a) {
+ return mQd(this, a);
+ };
+ _._g = function tQd(a, b, c) {
+ var d, e;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return meb(this.d);
+ case 3:
+ return this.b ? this.b : this.a;
+ case 4:
+ return e = this.c, e == null ? this.zb : e;
+ case 5:
+ return this.Db >> 16 == 5 ? BD(this.Cb, 671) : null;
+ }
+ return bid(this, a - aLd((jGd(), VFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? VFd : d), a), b, c);
+ };
+ _.hh = function uQd(a, b, c) {
+ var d, e, f;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c);
+ case 5:
+ !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? mQd(this, c) : this.Cb.ih(this, -1 - e, null, c)));
+ return _hd(this, a, 5, c);
+ }
+ return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), VFd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), VFd)), a, c);
+ };
+ _.jh = function vQd(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 5:
+ return _hd(this, null, 5, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), VFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), VFd)), a, c);
+ };
+ _.lh = function wQd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return this.d != 0;
+ case 3:
+ return !!this.b;
+ case 4:
+ return this.c != null;
+ case 5:
+ return !!(this.Db >> 16 == 5 ? BD(this.Cb, 671) : null);
+ }
+ return cid(this, a - aLd((jGd(), VFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? VFd : b), a));
+ };
+ _.sh = function xQd(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ pnd(this, GD(b));
+ return;
+ case 2:
+ qQd(this, BD(b, 19).a);
+ return;
+ case 3:
+ oQd(this, BD(b, 1940));
+ return;
+ case 4:
+ pQd(this, GD(b));
+ return;
+ }
+ did(this, a - aLd((jGd(), VFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? VFd : c), a), b);
+ };
+ _.zh = function yQd() {
+ return jGd(), VFd;
+ };
+ _.Bh = function zQd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ pnd(this, null);
+ return;
+ case 2:
+ qQd(this, 0);
+ return;
+ case 3:
+ oQd(this, null);
+ return;
+ case 4:
+ pQd(this, null);
+ return;
+ }
+ eid(this, a - aLd((jGd(), VFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? VFd : b), a));
+ };
+ _.Ib = function BQd() {
+ var a;
+ return a = this.c, a == null ? this.zb : a;
+ };
+ _.b = null;
+ _.c = null;
+ _.d = 0;
+ mdb(qte, "EEnumLiteralImpl", 573);
+ var c6 = odb(qte, "EFactoryImpl/InternalEDateTimeFormat");
+ bcb(489, 1, { 2015: 1 }, EQd);
+ mdb(qte, "EFactoryImpl/1ClientInternalEDateTimeFormat", 489);
+ bcb(241, 115, { 105: 1, 92: 1, 90: 1, 87: 1, 56: 1, 108: 1, 49: 1, 97: 1, 241: 1, 114: 1, 115: 1 }, UQd);
+ _.Sg = function VQd(a, b, c) {
+ var d;
+ c = _hd(this, a, b, c);
+ if (!!this.e && JD(a, 170)) {
+ d = MQd(this, this.e);
+ d != this.c && (c = QQd(this, d, c));
+ }
+ return c;
+ };
+ _._g = function WQd(a, b, c) {
+ var d;
+ switch (a) {
+ case 0:
+ return this.f;
+ case 1:
+ return !this.d && (this.d = new xMd(j5, this, 1)), this.d;
+ case 2:
+ if (b)
+ return KQd(this);
+ return this.c;
+ case 3:
+ return this.b;
+ case 4:
+ return this.e;
+ case 5:
+ if (b)
+ return JQd(this);
+ return this.a;
+ }
+ return bid(this, a - aLd((jGd(), XFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? XFd : d), a), b, c);
+ };
+ _.jh = function XQd(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return IQd(this, null, c);
+ case 1:
+ return !this.d && (this.d = new xMd(j5, this, 1)), Txd(this.d, a, c);
+ case 3:
+ return GQd(this, null, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), XFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), XFd)), a, c);
+ };
+ _.lh = function YQd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return !!this.f;
+ case 1:
+ return !!this.d && this.d.i != 0;
+ case 2:
+ return !!this.c;
+ case 3:
+ return !!this.b;
+ case 4:
+ return !!this.e;
+ case 5:
+ return !!this.a;
+ }
+ return cid(this, a - aLd((jGd(), XFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? XFd : b), a));
+ };
+ _.sh = function ZQd(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ SQd(this, BD(b, 87));
+ return;
+ case 1:
+ !this.d && (this.d = new xMd(j5, this, 1));
+ Uxd(this.d);
+ !this.d && (this.d = new xMd(j5, this, 1));
+ ytd(this.d, BD(b, 14));
+ return;
+ case 3:
+ PQd(this, BD(b, 87));
+ return;
+ case 4:
+ RQd(this, BD(b, 836));
+ return;
+ case 5:
+ NQd(this, BD(b, 138));
+ return;
+ }
+ did(this, a - aLd((jGd(), XFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? XFd : c), a), b);
+ };
+ _.zh = function $Qd() {
+ return jGd(), XFd;
+ };
+ _.Bh = function _Qd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ SQd(this, null);
+ return;
+ case 1:
+ !this.d && (this.d = new xMd(j5, this, 1));
+ Uxd(this.d);
+ return;
+ case 3:
+ PQd(this, null);
+ return;
+ case 4:
+ RQd(this, null);
+ return;
+ case 5:
+ NQd(this, null);
+ return;
+ }
+ eid(this, a - aLd((jGd(), XFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? XFd : b), a));
+ };
+ _.Ib = function aRd() {
+ var a;
+ a = new Wfb(Eid(this));
+ a.a += " (expression: ";
+ TQd(this, a);
+ a.a += ")";
+ return a.a;
+ };
+ var FQd;
+ mdb(qte, "EGenericTypeImpl", 241);
+ bcb(1969, 1964, Vve);
+ _.Xh = function cRd(a, b) {
+ bRd(this, a, b);
+ };
+ _.lk = function dRd(a, b) {
+ bRd(this, this.gc(), a);
+ return b;
+ };
+ _.pi = function eRd(a) {
+ return Ut(this.Gi(), a);
+ };
+ _.Zh = function fRd() {
+ return this.$h();
+ };
+ _.Gi = function gRd() {
+ return new O0d(this);
+ };
+ _.$h = function hRd() {
+ return this._h(0);
+ };
+ _._h = function iRd(a) {
+ return this.Gi().Zc(a);
+ };
+ _.mk = function jRd(a, b) {
+ ze(this, a, true);
+ return b;
+ };
+ _.ii = function kRd(a, b) {
+ var c, d;
+ d = Vt(this, b);
+ c = this.Zc(a);
+ c.Rb(d);
+ return d;
+ };
+ _.ji = function lRd(a, b) {
+ var c;
+ ze(this, b, true);
+ c = this.Zc(a);
+ c.Rb(b);
+ };
+ mdb(yve, "AbstractSequentialInternalEList", 1969);
+ bcb(486, 1969, Vve, qRd);
+ _.pi = function rRd(a) {
+ return Ut(this.Gi(), a);
+ };
+ _.Zh = function sRd() {
+ if (this.b == null) {
+ return LRd(), LRd(), KRd;
+ }
+ return this.Jk();
+ };
+ _.Gi = function tRd() {
+ return new w4d(this.a, this.b);
+ };
+ _.$h = function uRd() {
+ if (this.b == null) {
+ return LRd(), LRd(), KRd;
+ }
+ return this.Jk();
+ };
+ _._h = function vRd(a) {
+ var b, c;
+ if (this.b == null) {
+ if (a < 0 || a > 1) {
+ throw vbb(new qcb(gve + a + ", size=0"));
+ }
+ return LRd(), LRd(), KRd;
+ }
+ c = this.Jk();
+ for (b = 0; b < a; ++b) {
+ MRd(c);
+ }
+ return c;
+ };
+ _.dc = function wRd() {
+ var a, b, c, d, e, f;
+ if (this.b != null) {
+ for (c = 0; c < this.b.length; ++c) {
+ a = this.b[c];
+ if (!this.Mk() || this.a.mh(a)) {
+ f = this.a.bh(a, false);
+ Q6d();
+ if (BD(a, 66).Oj()) {
+ b = BD(f, 153);
+ for (d = 0, e = b.gc(); d < e; ++d) {
+ if (oRd(b.il(d)) && b.jl(d) != null) {
+ return false;
+ }
+ }
+ } else if (a.$j()) {
+ if (!BD(f, 14).dc()) {
+ return false;
+ }
+ } else if (f != null) {
+ return false;
+ }
+ }
+ }
+ }
+ return true;
+ };
+ _.Kc = function xRd() {
+ return pRd(this);
+ };
+ _.Zc = function yRd(a) {
+ var b, c;
+ if (this.b == null) {
+ if (a != 0) {
+ throw vbb(new qcb(gve + a + ", size=0"));
+ }
+ return LRd(), LRd(), KRd;
+ }
+ c = this.Lk() ? this.Kk() : this.Jk();
+ for (b = 0; b < a; ++b) {
+ MRd(c);
+ }
+ return c;
+ };
+ _.ii = function zRd(a, b) {
+ throw vbb(new bgb());
+ };
+ _.ji = function ARd(a, b) {
+ throw vbb(new bgb());
+ };
+ _.Jk = function BRd() {
+ return new RRd(this.a, this.b);
+ };
+ _.Kk = function CRd() {
+ return new dSd(this.a, this.b);
+ };
+ _.Lk = function DRd() {
+ return true;
+ };
+ _.gc = function ERd() {
+ var a, b, c, d, e, f, g;
+ e = 0;
+ if (this.b != null) {
+ for (c = 0; c < this.b.length; ++c) {
+ a = this.b[c];
+ if (!this.Mk() || this.a.mh(a)) {
+ g = this.a.bh(a, false);
+ Q6d();
+ if (BD(a, 66).Oj()) {
+ b = BD(g, 153);
+ for (d = 0, f = b.gc(); d < f; ++d) {
+ oRd(b.il(d)) && b.jl(d) != null && ++e;
+ }
+ } else
+ a.$j() ? e += BD(g, 14).gc() : g != null && ++e;
+ }
+ }
+ }
+ return e;
+ };
+ _.Mk = function FRd() {
+ return true;
+ };
+ var mRd;
+ mdb(yve, "EContentsEList", 486);
+ bcb(1156, 486, Vve, GRd);
+ _.Jk = function HRd() {
+ return new hSd(this.a, this.b);
+ };
+ _.Kk = function IRd() {
+ return new fSd(this.a, this.b);
+ };
+ _.Mk = function JRd() {
+ return false;
+ };
+ mdb(qte, "ENamedElementImpl/1", 1156);
+ bcb(279, 1, Wve, RRd);
+ _.Nb = function URd(a) {
+ Rrb(this, a);
+ };
+ _.Rb = function SRd(a) {
+ throw vbb(new bgb());
+ };
+ _.Nk = function TRd(a) {
+ if (this.g != 0 || !!this.e) {
+ throw vbb(new Zdb("Iterator already in use or already filtered"));
+ }
+ this.e = a;
+ };
+ _.Ob = function VRd() {
+ var a, b, c, d, e, f;
+ switch (this.g) {
+ case 3:
+ case 2: {
+ return true;
+ }
+ case 1: {
+ return false;
+ }
+ case -3: {
+ !this.p ? ++this.n : this.p.Pb();
+ }
+ default: {
+ if (!this.k || (!this.p ? !NRd(this) : !ORd(this, this.p))) {
+ while (this.d < this.c.length) {
+ b = this.c[this.d++];
+ if ((!this.e || b.Gj() != x2 || b.aj() != 0) && (!this.Mk() || this.b.mh(b))) {
+ f = this.b.bh(b, this.Lk());
+ this.f = (Q6d(), BD(b, 66).Oj());
+ if (this.f || b.$j()) {
+ if (this.Lk()) {
+ d = BD(f, 15);
+ this.k = d;
+ } else {
+ d = BD(f, 69);
+ this.k = this.j = d;
+ }
+ if (JD(this.k, 54)) {
+ this.p = null;
+ this.o = this.k.gc();
+ this.n = 0;
+ } else {
+ this.p = !this.j ? this.k.Yc() : this.j.$h();
+ }
+ if (!this.p ? NRd(this) : ORd(this, this.p)) {
+ e = !this.p ? !this.j ? this.k.Xb(this.n++) : this.j.pi(this.n++) : this.p.Pb();
+ if (this.f) {
+ a = BD(e, 72);
+ a.ak();
+ c = a.dd();
+ this.i = c;
+ } else {
+ c = e;
+ this.i = c;
+ }
+ this.g = 3;
+ return true;
+ }
+ } else if (f != null) {
+ this.k = null;
+ this.p = null;
+ c = f;
+ this.i = c;
+ this.g = 2;
+ return true;
+ }
+ }
+ }
+ this.k = null;
+ this.p = null;
+ this.f = false;
+ this.g = 1;
+ return false;
+ } else {
+ e = !this.p ? !this.j ? this.k.Xb(this.n++) : this.j.pi(this.n++) : this.p.Pb();
+ if (this.f) {
+ a = BD(e, 72);
+ a.ak();
+ c = a.dd();
+ this.i = c;
+ } else {
+ c = e;
+ this.i = c;
+ }
+ this.g = 3;
+ return true;
+ }
+ }
+ }
+ };
+ _.Sb = function WRd() {
+ var a, b, c, d, e, f;
+ switch (this.g) {
+ case -3:
+ case -2: {
+ return true;
+ }
+ case -1: {
+ return false;
+ }
+ case 3: {
+ !this.p ? --this.n : this.p.Ub();
+ }
+ default: {
+ if (!this.k || (!this.p ? !PRd(this) : !QRd(this, this.p))) {
+ while (this.d > 0) {
+ b = this.c[--this.d];
+ if ((!this.e || b.Gj() != x2 || b.aj() != 0) && (!this.Mk() || this.b.mh(b))) {
+ f = this.b.bh(b, this.Lk());
+ this.f = (Q6d(), BD(b, 66).Oj());
+ if (this.f || b.$j()) {
+ if (this.Lk()) {
+ d = BD(f, 15);
+ this.k = d;
+ } else {
+ d = BD(f, 69);
+ this.k = this.j = d;
+ }
+ if (JD(this.k, 54)) {
+ this.o = this.k.gc();
+ this.n = this.o;
+ } else {
+ this.p = !this.j ? this.k.Zc(this.k.gc()) : this.j._h(this.k.gc());
+ }
+ if (!this.p ? PRd(this) : QRd(this, this.p)) {
+ e = !this.p ? !this.j ? this.k.Xb(--this.n) : this.j.pi(--this.n) : this.p.Ub();
+ if (this.f) {
+ a = BD(e, 72);
+ a.ak();
+ c = a.dd();
+ this.i = c;
+ } else {
+ c = e;
+ this.i = c;
+ }
+ this.g = -3;
+ return true;
+ }
+ } else if (f != null) {
+ this.k = null;
+ this.p = null;
+ c = f;
+ this.i = c;
+ this.g = -2;
+ return true;
+ }
+ }
+ }
+ this.k = null;
+ this.p = null;
+ this.g = -1;
+ return false;
+ } else {
+ e = !this.p ? !this.j ? this.k.Xb(--this.n) : this.j.pi(--this.n) : this.p.Ub();
+ if (this.f) {
+ a = BD(e, 72);
+ a.ak();
+ c = a.dd();
+ this.i = c;
+ } else {
+ c = e;
+ this.i = c;
+ }
+ this.g = -3;
+ return true;
+ }
+ }
+ }
+ };
+ _.Pb = function XRd() {
+ return MRd(this);
+ };
+ _.Tb = function YRd() {
+ return this.a;
+ };
+ _.Ub = function ZRd() {
+ var a;
+ if (this.g < -1 || this.Sb()) {
+ --this.a;
+ this.g = 0;
+ a = this.i;
+ this.Sb();
+ return a;
+ } else {
+ throw vbb(new utb());
+ }
+ };
+ _.Vb = function $Rd() {
+ return this.a - 1;
+ };
+ _.Qb = function _Rd() {
+ throw vbb(new bgb());
+ };
+ _.Lk = function aSd() {
+ return false;
+ };
+ _.Wb = function bSd(a) {
+ throw vbb(new bgb());
+ };
+ _.Mk = function cSd() {
+ return true;
+ };
+ _.a = 0;
+ _.d = 0;
+ _.f = false;
+ _.g = 0;
+ _.n = 0;
+ _.o = 0;
+ var KRd;
+ mdb(yve, "EContentsEList/FeatureIteratorImpl", 279);
+ bcb(697, 279, Wve, dSd);
+ _.Lk = function eSd() {
+ return true;
+ };
+ mdb(yve, "EContentsEList/ResolvingFeatureIteratorImpl", 697);
+ bcb(1157, 697, Wve, fSd);
+ _.Mk = function gSd() {
+ return false;
+ };
+ mdb(qte, "ENamedElementImpl/1/1", 1157);
+ bcb(1158, 279, Wve, hSd);
+ _.Mk = function iSd() {
+ return false;
+ };
+ mdb(qte, "ENamedElementImpl/1/2", 1158);
+ bcb(36, 143, fve, lSd, mSd, nSd, oSd, pSd, qSd, rSd, sSd, tSd, uSd, vSd, wSd, xSd, ySd, zSd, ASd, BSd, CSd, DSd, ESd, FSd, GSd, HSd, ISd, JSd);
+ _._i = function KSd() {
+ return kSd(this);
+ };
+ _.gj = function LSd() {
+ var a;
+ a = kSd(this);
+ if (a) {
+ return a.zj();
+ }
+ return null;
+ };
+ _.yi = function MSd(a) {
+ this.b == -1 && !!this.a && (this.b = this.c.Xg(this.a.aj(), this.a.Gj()));
+ return this.c.Og(this.b, a);
+ };
+ _.Ai = function NSd() {
+ return this.c;
+ };
+ _.hj = function OSd() {
+ var a;
+ a = kSd(this);
+ if (a) {
+ return a.Kj();
+ }
+ return false;
+ };
+ _.b = -1;
+ mdb(qte, "ENotificationImpl", 36);
+ bcb(399, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 59: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 399: 1, 284: 1, 114: 1, 115: 1 }, SSd);
+ _.Qg = function TSd(a) {
+ return PSd(this, a);
+ };
+ _._g = function USd(a, b, c) {
+ var d, e, f;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return Bcb(), (this.Bb & 256) != 0 ? true : false;
+ case 3:
+ return Bcb(), (this.Bb & 512) != 0 ? true : false;
+ case 4:
+ return meb(this.s);
+ case 5:
+ return meb(this.t);
+ case 6:
+ return Bcb(), f = this.t, f > 1 || f == -1 ? true : false;
+ case 7:
+ return Bcb(), e = this.s, e >= 1 ? true : false;
+ case 8:
+ if (b)
+ return wId(this);
+ return this.r;
+ case 9:
+ return this.q;
+ case 10:
+ return this.Db >> 16 == 10 ? BD(this.Cb, 26) : null;
+ case 11:
+ return !this.d && (this.d = new K4d(u5, this, 11)), this.d;
+ case 12:
+ return !this.c && (this.c = new cUd(p5, this, 12, 10)), this.c;
+ case 13:
+ return !this.a && (this.a = new fTd(this, this)), this.a;
+ case 14:
+ return QSd(this);
+ }
+ return bid(this, a - aLd((jGd(), aGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? aGd : d), a), b, c);
+ };
+ _.hh = function VSd(a, b, c) {
+ var d, e, f;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c);
+ case 10:
+ !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? PSd(this, c) : this.Cb.ih(this, -1 - e, null, c)));
+ return _hd(this, a, 10, c);
+ case 12:
+ return !this.c && (this.c = new cUd(p5, this, 12, 10)), Sxd(this.c, a, c);
+ }
+ return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), aGd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), aGd)), a, c);
+ };
+ _.jh = function WSd(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 9:
+ return vId(this, c);
+ case 10:
+ return _hd(this, null, 10, c);
+ case 11:
+ return !this.d && (this.d = new K4d(u5, this, 11)), Txd(this.d, a, c);
+ case 12:
+ return !this.c && (this.c = new cUd(p5, this, 12, 10)), Txd(this.c, a, c);
+ case 14:
+ return Txd(QSd(this), a, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), aGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), aGd)), a, c);
+ };
+ _.lh = function XSd(a) {
+ var b, c, d;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return d = this.t, d > 1 || d == -1;
+ case 7:
+ return c = this.s, c >= 1;
+ case 8:
+ return !!this.r && !this.q.e && LQd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
+ case 10:
+ return !!(this.Db >> 16 == 10 ? BD(this.Cb, 26) : null);
+ case 11:
+ return !!this.d && this.d.i != 0;
+ case 12:
+ return !!this.c && this.c.i != 0;
+ case 13:
+ return !!this.a && QSd(this.a.a).i != 0 && !(!!this.b && QTd(this.b));
+ case 14:
+ return !!this.b && QTd(this.b);
+ }
+ return cid(this, a - aLd((jGd(), aGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? aGd : b), a));
+ };
+ _.sh = function YSd(a, b) {
+ var c, d;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ pnd(this, GD(b));
+ return;
+ case 2:
+ BId(this, Ccb(DD(b)));
+ return;
+ case 3:
+ CId(this, Ccb(DD(b)));
+ return;
+ case 4:
+ AId(this, BD(b, 19).a);
+ return;
+ case 5:
+ DId(this, BD(b, 19).a);
+ return;
+ case 8:
+ yId(this, BD(b, 138));
+ return;
+ case 9:
+ d = xId(this, BD(b, 87), null);
+ !!d && d.Fi();
+ return;
+ case 11:
+ !this.d && (this.d = new K4d(u5, this, 11));
+ Uxd(this.d);
+ !this.d && (this.d = new K4d(u5, this, 11));
+ ytd(this.d, BD(b, 14));
+ return;
+ case 12:
+ !this.c && (this.c = new cUd(p5, this, 12, 10));
+ Uxd(this.c);
+ !this.c && (this.c = new cUd(p5, this, 12, 10));
+ ytd(this.c, BD(b, 14));
+ return;
+ case 13:
+ !this.a && (this.a = new fTd(this, this));
+ vwd(this.a);
+ !this.a && (this.a = new fTd(this, this));
+ ytd(this.a, BD(b, 14));
+ return;
+ case 14:
+ Uxd(QSd(this));
+ ytd(QSd(this), BD(b, 14));
+ return;
+ }
+ did(this, a - aLd((jGd(), aGd)), XKd((c = BD(Ajd(this, 16), 26), !c ? aGd : c), a), b);
+ };
+ _.zh = function ZSd() {
+ return jGd(), aGd;
+ };
+ _.Bh = function $Sd(a) {
+ var b, c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ pnd(this, null);
+ return;
+ case 2:
+ BId(this, true);
+ return;
+ case 3:
+ CId(this, true);
+ return;
+ case 4:
+ AId(this, 0);
+ return;
+ case 5:
+ DId(this, 1);
+ return;
+ case 8:
+ yId(this, null);
+ return;
+ case 9:
+ c = xId(this, null, null);
+ !!c && c.Fi();
+ return;
+ case 11:
+ !this.d && (this.d = new K4d(u5, this, 11));
+ Uxd(this.d);
+ return;
+ case 12:
+ !this.c && (this.c = new cUd(p5, this, 12, 10));
+ Uxd(this.c);
+ return;
+ case 13:
+ !!this.a && vwd(this.a);
+ return;
+ case 14:
+ !!this.b && Uxd(this.b);
+ return;
+ }
+ eid(this, a - aLd((jGd(), aGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? aGd : b), a));
+ };
+ _.Gh = function _Sd() {
+ var a, b;
+ if (this.c) {
+ for (a = 0, b = this.c.i; a < b; ++a) {
+ Cmd(qud(this.c, a));
+ }
+ }
+ wId(this);
+ this.Bb |= 1;
+ };
+ mdb(qte, "EOperationImpl", 399);
+ bcb(505, 742, Uve, fTd);
+ _.Hi = function iTd(a, b) {
+ aTd(this, a, BD(b, 138));
+ };
+ _.Ii = function jTd(a) {
+ bTd(this, BD(a, 138));
+ };
+ _.Oi = function pTd(a) {
+ var b, c;
+ return b = BD(qud(QSd(this.a), a), 87), c = b.c, c ? c : (jGd(), YFd);
+ };
+ _.Ti = function uTd(a) {
+ var b, c;
+ return b = BD(Xxd(QSd(this.a), a), 87), c = b.c, c ? c : (jGd(), YFd);
+ };
+ _.Ui = function vTd(a, b) {
+ return dTd(this, a, BD(b, 138));
+ };
+ _.ai = function gTd() {
+ return false;
+ };
+ _.Zi = function hTd(a, b, c, d, e) {
+ return null;
+ };
+ _.Ji = function kTd() {
+ return new NTd(this);
+ };
+ _.Ki = function lTd() {
+ Uxd(QSd(this.a));
+ };
+ _.Li = function mTd(a) {
+ return cTd(this, a);
+ };
+ _.Mi = function nTd(a) {
+ var b, c;
+ for (c = a.Kc(); c.Ob(); ) {
+ b = c.Pb();
+ if (!cTd(this, b)) {
+ return false;
+ }
+ }
+ return true;
+ };
+ _.Ni = function oTd(a) {
+ var b, c, d;
+ if (JD(a, 15)) {
+ d = BD(a, 15);
+ if (d.gc() == QSd(this.a).i) {
+ for (b = d.Kc(), c = new Fyd(this); b.Ob(); ) {
+ if (PD(b.Pb()) !== PD(Dyd(c))) {
+ return false;
+ }
+ }
+ return true;
+ }
+ }
+ return false;
+ };
+ _.Pi = function qTd() {
+ var a, b, c, d, e;
+ c = 1;
+ for (b = new Fyd(QSd(this.a)); b.e != b.i.gc(); ) {
+ a = BD(Dyd(b), 87);
+ d = (e = a.c, e ? e : (jGd(), YFd));
+ c = 31 * c + (!d ? 0 : tb(d));
+ }
+ return c;
+ };
+ _.Qi = function rTd(a) {
+ var b, c, d, e;
+ d = 0;
+ for (c = new Fyd(QSd(this.a)); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 87);
+ if (PD(a) === PD((e = b.c, e ? e : (jGd(), YFd)))) {
+ return d;
+ }
+ ++d;
+ }
+ return -1;
+ };
+ _.Ri = function sTd() {
+ return QSd(this.a).i == 0;
+ };
+ _.Si = function tTd() {
+ return null;
+ };
+ _.Vi = function wTd() {
+ return QSd(this.a).i;
+ };
+ _.Wi = function xTd() {
+ var a, b, c, d, e, f;
+ f = QSd(this.a).i;
+ e = KC(SI, Uhe, 1, f, 5, 1);
+ c = 0;
+ for (b = new Fyd(QSd(this.a)); b.e != b.i.gc(); ) {
+ a = BD(Dyd(b), 87);
+ e[c++] = (d = a.c, d ? d : (jGd(), YFd));
+ }
+ return e;
+ };
+ _.Xi = function yTd(a) {
+ var b, c, d, e, f, g, h;
+ h = QSd(this.a).i;
+ if (a.length < h) {
+ e = izd(rb(a).c, h);
+ a = e;
+ }
+ a.length > h && NC(a, h, null);
+ d = 0;
+ for (c = new Fyd(QSd(this.a)); c.e != c.i.gc(); ) {
+ b = BD(Dyd(c), 87);
+ f = (g = b.c, g ? g : (jGd(), YFd));
+ NC(a, d++, f);
+ }
+ return a;
+ };
+ _.Yi = function zTd() {
+ var a, b, c, d, e;
+ e = new Hfb();
+ e.a += "[";
+ a = QSd(this.a);
+ for (b = 0, d = QSd(this.a).i; b < d; ) {
+ Efb(e, xfb((c = BD(qud(a, b), 87).c, c ? c : (jGd(), YFd))));
+ ++b < d && (e.a += She, e);
+ }
+ e.a += "]";
+ return e.a;
+ };
+ _.$i = function ATd(a) {
+ };
+ _.aj = function BTd() {
+ return 13;
+ };
+ _.Bk = function CTd() {
+ return true;
+ };
+ _.bj = function DTd() {
+ return false;
+ };
+ _.Ck = function ETd() {
+ return false;
+ };
+ _.Dk = function FTd() {
+ return false;
+ };
+ _.Ek = function GTd() {
+ return true;
+ };
+ _.rk = function HTd() {
+ return false;
+ };
+ _.Fk = function ITd() {
+ return true;
+ };
+ _.wj = function JTd(a) {
+ return JD(a, 138);
+ };
+ _.fj = function KTd() {
+ return RSd(this.a);
+ };
+ _.hi = function LTd() {
+ return true;
+ };
+ _.ni = function MTd() {
+ return true;
+ };
+ mdb(qte, "EOperationImpl/1", 505);
+ bcb(1340, 1964, Lie, NTd);
+ _.Zc = function OTd(a) {
+ return ztd(this.a, a);
+ };
+ _.gc = function PTd() {
+ return QSd(this.a.a).i;
+ };
+ mdb(qte, "EOperationImpl/1/1", 1340);
+ bcb(1341, 545, Pve, UTd);
+ _.ii = function YTd(a, b) {
+ var c, d;
+ return c = BD(Wxd(this, a, b), 87), oid(this.e) && GLd(this, new ESd(this.a, 7, (jGd(), bGd), meb(b), (d = c.c, d ? d : YFd), a)), c;
+ };
+ _.jj = function ZTd(a, b) {
+ return RTd(this, BD(a, 87), b);
+ };
+ _.kj = function $Td(a, b) {
+ return STd(this, BD(a, 87), b);
+ };
+ _.lj = function _Td(a, b, c) {
+ return TTd(this, BD(a, 87), BD(b, 87), c);
+ };
+ _.Zi = function VTd(a, b, c, d, e) {
+ switch (a) {
+ case 3: {
+ return FLd(this, a, b, c, d, this.i > 1);
+ }
+ case 5: {
+ return FLd(this, a, b, c, d, this.i - BD(c, 15).gc() > 0);
+ }
+ default: {
+ return new pSd(this.e, a, this.c, b, c, d, true);
+ }
+ }
+ };
+ _.ij = function WTd() {
+ return true;
+ };
+ _.fj = function XTd() {
+ return QTd(this);
+ };
+ _.Xj = function aUd() {
+ Uxd(this);
+ };
+ mdb(qte, "EOperationImpl/2", 1341);
+ bcb(498, 1, { 1938: 1, 498: 1 }, bUd);
+ mdb(qte, "EPackageImpl/1", 498);
+ bcb(16, 85, Pve, cUd);
+ _.zk = function dUd() {
+ return this.d;
+ };
+ _.Ak = function eUd() {
+ return this.b;
+ };
+ _.Dk = function fUd() {
+ return true;
+ };
+ _.b = 0;
+ mdb(yve, "EObjectContainmentWithInverseEList", 16);
+ bcb(353, 16, Pve, gUd);
+ _.Ek = function hUd() {
+ return true;
+ };
+ _.li = function iUd(a, b) {
+ return ILd(this, a, BD(b, 56));
+ };
+ mdb(yve, "EObjectContainmentWithInverseEList/Resolving", 353);
+ bcb(298, 353, Pve, jUd);
+ _.ci = function kUd() {
+ this.a.tb = null;
+ };
+ mdb(qte, "EPackageImpl/2", 298);
+ bcb(1228, 1, {}, lUd);
+ mdb(qte, "EPackageImpl/3", 1228);
+ bcb(718, 43, fke, oUd);
+ _._b = function pUd(a) {
+ return ND(a) ? Qhb(this, a) : !!irb(this.f, a);
+ };
+ mdb(qte, "EPackageRegistryImpl", 718);
+ bcb(509, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 2017: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 509: 1, 284: 1, 114: 1, 115: 1 }, rUd);
+ _.Qg = function sUd(a) {
+ return qUd(this, a);
+ };
+ _._g = function tUd(a, b, c) {
+ var d, e, f;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return Bcb(), (this.Bb & 256) != 0 ? true : false;
+ case 3:
+ return Bcb(), (this.Bb & 512) != 0 ? true : false;
+ case 4:
+ return meb(this.s);
+ case 5:
+ return meb(this.t);
+ case 6:
+ return Bcb(), f = this.t, f > 1 || f == -1 ? true : false;
+ case 7:
+ return Bcb(), e = this.s, e >= 1 ? true : false;
+ case 8:
+ if (b)
+ return wId(this);
+ return this.r;
+ case 9:
+ return this.q;
+ case 10:
+ return this.Db >> 16 == 10 ? BD(this.Cb, 59) : null;
+ }
+ return bid(this, a - aLd((jGd(), dGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? dGd : d), a), b, c);
+ };
+ _.hh = function uUd(a, b, c) {
+ var d, e, f;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c);
+ case 10:
+ !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? qUd(this, c) : this.Cb.ih(this, -1 - e, null, c)));
+ return _hd(this, a, 10, c);
+ }
+ return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), dGd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), dGd)), a, c);
+ };
+ _.jh = function vUd(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 9:
+ return vId(this, c);
+ case 10:
+ return _hd(this, null, 10, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), dGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), dGd)), a, c);
+ };
+ _.lh = function wUd(a) {
+ var b, c, d;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return d = this.t, d > 1 || d == -1;
+ case 7:
+ return c = this.s, c >= 1;
+ case 8:
+ return !!this.r && !this.q.e && LQd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
+ case 10:
+ return !!(this.Db >> 16 == 10 ? BD(this.Cb, 59) : null);
+ }
+ return cid(this, a - aLd((jGd(), dGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? dGd : b), a));
+ };
+ _.zh = function xUd() {
+ return jGd(), dGd;
+ };
+ mdb(qte, "EParameterImpl", 509);
+ bcb(99, 449, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 18: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 99: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }, FUd);
+ _._g = function GUd(a, b, c) {
+ var d, e, f, g;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return Bcb(), (this.Bb & 256) != 0 ? true : false;
+ case 3:
+ return Bcb(), (this.Bb & 512) != 0 ? true : false;
+ case 4:
+ return meb(this.s);
+ case 5:
+ return meb(this.t);
+ case 6:
+ return Bcb(), g = this.t, g > 1 || g == -1 ? true : false;
+ case 7:
+ return Bcb(), e = this.s, e >= 1 ? true : false;
+ case 8:
+ if (b)
+ return wId(this);
+ return this.r;
+ case 9:
+ return this.q;
+ case 10:
+ return Bcb(), (this.Bb & zte) != 0 ? true : false;
+ case 11:
+ return Bcb(), (this.Bb & Dve) != 0 ? true : false;
+ case 12:
+ return Bcb(), (this.Bb & Rje) != 0 ? true : false;
+ case 13:
+ return this.j;
+ case 14:
+ return VId(this);
+ case 15:
+ return Bcb(), (this.Bb & Cve) != 0 ? true : false;
+ case 16:
+ return Bcb(), (this.Bb & oie) != 0 ? true : false;
+ case 17:
+ return WId(this);
+ case 18:
+ return Bcb(), (this.Bb & ote) != 0 ? true : false;
+ case 19:
+ return Bcb(), f = zUd(this), !!f && (f.Bb & ote) != 0 ? true : false;
+ case 20:
+ return Bcb(), (this.Bb & Tje) != 0 ? true : false;
+ case 21:
+ if (b)
+ return zUd(this);
+ return this.b;
+ case 22:
+ if (b)
+ return AUd(this);
+ return yUd(this);
+ case 23:
+ return !this.a && (this.a = new _4d(b5, this, 23)), this.a;
+ }
+ return bid(this, a - aLd((jGd(), eGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? eGd : d), a), b, c);
+ };
+ _.lh = function HUd(a) {
+ var b, c, d, e;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return (this.Bb & 256) == 0;
+ case 3:
+ return (this.Bb & 512) == 0;
+ case 4:
+ return this.s != 0;
+ case 5:
+ return this.t != 1;
+ case 6:
+ return e = this.t, e > 1 || e == -1;
+ case 7:
+ return c = this.s, c >= 1;
+ case 8:
+ return !!this.r && !this.q.e && LQd(this.q).i == 0;
+ case 9:
+ return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
+ case 10:
+ return (this.Bb & zte) == 0;
+ case 11:
+ return (this.Bb & Dve) != 0;
+ case 12:
+ return (this.Bb & Rje) != 0;
+ case 13:
+ return this.j != null;
+ case 14:
+ return VId(this) != null;
+ case 15:
+ return (this.Bb & Cve) != 0;
+ case 16:
+ return (this.Bb & oie) != 0;
+ case 17:
+ return !!WId(this);
+ case 18:
+ return (this.Bb & ote) != 0;
+ case 19:
+ return d = zUd(this), !!d && (d.Bb & ote) != 0;
+ case 20:
+ return (this.Bb & Tje) == 0;
+ case 21:
+ return !!this.b;
+ case 22:
+ return !!yUd(this);
+ case 23:
+ return !!this.a && this.a.i != 0;
+ }
+ return cid(this, a - aLd((jGd(), eGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? eGd : b), a));
+ };
+ _.sh = function IUd(a, b) {
+ var c, d;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ cJd(this, GD(b));
+ return;
+ case 2:
+ BId(this, Ccb(DD(b)));
+ return;
+ case 3:
+ CId(this, Ccb(DD(b)));
+ return;
+ case 4:
+ AId(this, BD(b, 19).a);
+ return;
+ case 5:
+ DId(this, BD(b, 19).a);
+ return;
+ case 8:
+ yId(this, BD(b, 138));
+ return;
+ case 9:
+ d = xId(this, BD(b, 87), null);
+ !!d && d.Fi();
+ return;
+ case 10:
+ ZId(this, Ccb(DD(b)));
+ return;
+ case 11:
+ fJd(this, Ccb(DD(b)));
+ return;
+ case 12:
+ dJd(this, Ccb(DD(b)));
+ return;
+ case 13:
+ $Id(this, GD(b));
+ return;
+ case 15:
+ eJd(this, Ccb(DD(b)));
+ return;
+ case 16:
+ aJd(this, Ccb(DD(b)));
+ return;
+ case 18:
+ BUd(this, Ccb(DD(b)));
+ return;
+ case 20:
+ EUd(this, Ccb(DD(b)));
+ return;
+ case 21:
+ DUd(this, BD(b, 18));
+ return;
+ case 23:
+ !this.a && (this.a = new _4d(b5, this, 23));
+ Uxd(this.a);
+ !this.a && (this.a = new _4d(b5, this, 23));
+ ytd(this.a, BD(b, 14));
+ return;
+ }
+ did(this, a - aLd((jGd(), eGd)), XKd((c = BD(Ajd(this, 16), 26), !c ? eGd : c), a), b);
+ };
+ _.zh = function JUd() {
+ return jGd(), eGd;
+ };
+ _.Bh = function KUd(a) {
+ var b, c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4);
+ pnd(this, null);
+ return;
+ case 2:
+ BId(this, true);
+ return;
+ case 3:
+ CId(this, true);
+ return;
+ case 4:
+ AId(this, 0);
+ return;
+ case 5:
+ DId(this, 1);
+ return;
+ case 8:
+ yId(this, null);
+ return;
+ case 9:
+ c = xId(this, null, null);
+ !!c && c.Fi();
+ return;
+ case 10:
+ ZId(this, true);
+ return;
+ case 11:
+ fJd(this, false);
+ return;
+ case 12:
+ dJd(this, false);
+ return;
+ case 13:
+ this.i = null;
+ _Id(this, null);
+ return;
+ case 15:
+ eJd(this, false);
+ return;
+ case 16:
+ aJd(this, false);
+ return;
+ case 18:
+ CUd(this, false);
+ JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 2);
+ return;
+ case 20:
+ EUd(this, true);
+ return;
+ case 21:
+ DUd(this, null);
+ return;
+ case 23:
+ !this.a && (this.a = new _4d(b5, this, 23));
+ Uxd(this.a);
+ return;
+ }
+ eid(this, a - aLd((jGd(), eGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? eGd : b), a));
+ };
+ _.Gh = function LUd() {
+ AUd(this);
+ a2d(q1d((O6d(), M6d), this));
+ wId(this);
+ this.Bb |= 1;
+ };
+ _.Lj = function MUd() {
+ return zUd(this);
+ };
+ _.qk = function NUd() {
+ var a;
+ return a = zUd(this), !!a && (a.Bb & ote) != 0;
+ };
+ _.rk = function OUd() {
+ return (this.Bb & ote) != 0;
+ };
+ _.sk = function PUd() {
+ return (this.Bb & Tje) != 0;
+ };
+ _.nk = function QUd(a, b) {
+ this.c = null;
+ return zId(this, a, b);
+ };
+ _.Ib = function RUd() {
+ var a;
+ if ((this.Db & 64) != 0)
+ return gJd(this);
+ a = new Jfb(gJd(this));
+ a.a += " (containment: ";
+ Ffb(a, (this.Bb & ote) != 0);
+ a.a += ", resolveProxies: ";
+ Ffb(a, (this.Bb & Tje) != 0);
+ a.a += ")";
+ return a.a;
+ };
+ mdb(qte, "EReferenceImpl", 99);
+ bcb(548, 115, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1, 548: 1, 114: 1, 115: 1 }, XUd);
+ _.Fb = function bVd(a) {
+ return this === a;
+ };
+ _.cd = function dVd() {
+ return this.b;
+ };
+ _.dd = function eVd() {
+ return this.c;
+ };
+ _.Hb = function fVd() {
+ return FCb(this);
+ };
+ _.Uh = function hVd(a) {
+ SUd(this, GD(a));
+ };
+ _.ed = function iVd(a) {
+ return WUd(this, GD(a));
+ };
+ _._g = function YUd(a, b, c) {
+ var d;
+ switch (a) {
+ case 0:
+ return this.b;
+ case 1:
+ return this.c;
+ }
+ return bid(this, a - aLd((jGd(), fGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? fGd : d), a), b, c);
+ };
+ _.lh = function ZUd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return this.b != null;
+ case 1:
+ return this.c != null;
+ }
+ return cid(this, a - aLd((jGd(), fGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? fGd : b), a));
+ };
+ _.sh = function $Ud(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ TUd(this, GD(b));
+ return;
+ case 1:
+ VUd(this, GD(b));
+ return;
+ }
+ did(this, a - aLd((jGd(), fGd)), XKd((c = BD(Ajd(this, 16), 26), !c ? fGd : c), a), b);
+ };
+ _.zh = function _Ud() {
+ return jGd(), fGd;
+ };
+ _.Bh = function aVd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ UUd(this, null);
+ return;
+ case 1:
+ VUd(this, null);
+ return;
+ }
+ eid(this, a - aLd((jGd(), fGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? fGd : b), a));
+ };
+ _.Sh = function cVd() {
+ var a;
+ if (this.a == -1) {
+ a = this.b;
+ this.a = a == null ? 0 : LCb(a);
+ }
+ return this.a;
+ };
+ _.Th = function gVd(a) {
+ this.a = a;
+ };
+ _.Ib = function jVd() {
+ var a;
+ if ((this.Db & 64) != 0)
+ return Eid(this);
+ a = new Jfb(Eid(this));
+ a.a += " (key: ";
+ Efb(a, this.b);
+ a.a += ", value: ";
+ Efb(a, this.c);
+ a.a += ")";
+ return a.a;
+ };
+ _.a = -1;
+ _.b = null;
+ _.c = null;
+ var x6 = mdb(qte, "EStringToStringMapEntryImpl", 548);
+ var D9 = odb(yve, "FeatureMap/Entry/Internal");
+ bcb(565, 1, Xve);
+ _.Ok = function mVd(a) {
+ return this.Pk(BD(a, 49));
+ };
+ _.Pk = function nVd(a) {
+ return this.Ok(a);
+ };
+ _.Fb = function oVd(a) {
+ var b, c;
+ if (this === a) {
+ return true;
+ } else if (JD(a, 72)) {
+ b = BD(a, 72);
+ if (b.ak() == this.c) {
+ c = this.dd();
+ return c == null ? b.dd() == null : pb(c, b.dd());
+ } else {
+ return false;
+ }
+ } else {
+ return false;
+ }
+ };
+ _.ak = function pVd() {
+ return this.c;
+ };
+ _.Hb = function qVd() {
+ var a;
+ a = this.dd();
+ return tb(this.c) ^ (a == null ? 0 : tb(a));
+ };
+ _.Ib = function rVd() {
+ var a, b;
+ a = this.c;
+ b = bKd(a.Hj()).Ph();
+ a.ne();
+ return (b != null && b.length != 0 ? b + ":" + a.ne() : a.ne()) + "=" + this.dd();
+ };
+ mdb(qte, "EStructuralFeatureImpl/BasicFeatureMapEntry", 565);
+ bcb(776, 565, Xve, uVd);
+ _.Pk = function vVd(a) {
+ return new uVd(this.c, a);
+ };
+ _.dd = function wVd() {
+ return this.a;
+ };
+ _.Qk = function xVd(a, b, c) {
+ return sVd(this, a, this.a, b, c);
+ };
+ _.Rk = function yVd(a, b, c) {
+ return tVd(this, a, this.a, b, c);
+ };
+ mdb(qte, "EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry", 776);
+ bcb(1314, 1, {}, zVd);
+ _.Pj = function AVd(a, b, c, d, e) {
+ var f;
+ f = BD(gid(a, this.b), 215);
+ return f.nl(this.a).Wj(d);
+ };
+ _.Qj = function BVd(a, b, c, d, e) {
+ var f;
+ f = BD(gid(a, this.b), 215);
+ return f.el(this.a, d, e);
+ };
+ _.Rj = function CVd(a, b, c, d, e) {
+ var f;
+ f = BD(gid(a, this.b), 215);
+ return f.fl(this.a, d, e);
+ };
+ _.Sj = function DVd(a, b, c) {
+ var d;
+ d = BD(gid(a, this.b), 215);
+ return d.nl(this.a).fj();
+ };
+ _.Tj = function EVd(a, b, c, d) {
+ var e;
+ e = BD(gid(a, this.b), 215);
+ e.nl(this.a).Wb(d);
+ };
+ _.Uj = function FVd(a, b, c) {
+ return BD(gid(a, this.b), 215).nl(this.a);
+ };
+ _.Vj = function GVd(a, b, c) {
+ var d;
+ d = BD(gid(a, this.b), 215);
+ d.nl(this.a).Xj();
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator", 1314);
+ bcb(89, 1, {}, IVd, JVd, KVd, LVd);
+ _.Pj = function MVd(a, b, c, d, e) {
+ var f;
+ f = b.Ch(c);
+ f == null && b.Dh(c, f = HVd(this, a));
+ if (!e) {
+ switch (this.e) {
+ case 50:
+ case 41:
+ return BD(f, 589).sj();
+ case 40:
+ return BD(f, 215).kl();
+ }
+ }
+ return f;
+ };
+ _.Qj = function NVd(a, b, c, d, e) {
+ var f, g;
+ g = b.Ch(c);
+ g == null && b.Dh(c, g = HVd(this, a));
+ f = BD(g, 69).lk(d, e);
+ return f;
+ };
+ _.Rj = function OVd(a, b, c, d, e) {
+ var f;
+ f = b.Ch(c);
+ f != null && (e = BD(f, 69).mk(d, e));
+ return e;
+ };
+ _.Sj = function PVd(a, b, c) {
+ var d;
+ d = b.Ch(c);
+ return d != null && BD(d, 76).fj();
+ };
+ _.Tj = function QVd(a, b, c, d) {
+ var e;
+ e = BD(b.Ch(c), 76);
+ !e && b.Dh(c, e = HVd(this, a));
+ e.Wb(d);
+ };
+ _.Uj = function RVd(a, b, c) {
+ var d, e;
+ e = b.Ch(c);
+ e == null && b.Dh(c, e = HVd(this, a));
+ if (JD(e, 76)) {
+ return BD(e, 76);
+ } else {
+ d = BD(b.Ch(c), 15);
+ return new iYd(d);
+ }
+ };
+ _.Vj = function SVd(a, b, c) {
+ var d;
+ d = BD(b.Ch(c), 76);
+ !d && b.Dh(c, d = HVd(this, a));
+ d.Xj();
+ };
+ _.b = 0;
+ _.e = 0;
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateMany", 89);
+ bcb(504, 1, {});
+ _.Qj = function WVd(a, b, c, d, e) {
+ throw vbb(new bgb());
+ };
+ _.Rj = function XVd(a, b, c, d, e) {
+ throw vbb(new bgb());
+ };
+ _.Uj = function YVd(a, b, c) {
+ return new ZVd(this, a, b, c);
+ };
+ var TVd;
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingle", 504);
+ bcb(1331, 1, zve, ZVd);
+ _.Wj = function $Vd(a) {
+ return this.a.Pj(this.c, this.d, this.b, a, true);
+ };
+ _.fj = function _Vd() {
+ return this.a.Sj(this.c, this.d, this.b);
+ };
+ _.Wb = function aWd(a) {
+ this.a.Tj(this.c, this.d, this.b, a);
+ };
+ _.Xj = function bWd() {
+ this.a.Vj(this.c, this.d, this.b);
+ };
+ _.b = 0;
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingle/1", 1331);
+ bcb(769, 504, {}, cWd);
+ _.Pj = function dWd(a, b, c, d, e) {
+ return Nid(a, a.eh(), a.Vg()) == this.b ? this.sk() && d ? aid(a) : a.eh() : null;
+ };
+ _.Qj = function eWd(a, b, c, d, e) {
+ var f, g;
+ !!a.eh() && (e = (f = a.Vg(), f >= 0 ? a.Qg(e) : a.eh().ih(a, -1 - f, null, e)));
+ g = bLd(a.Tg(), this.e);
+ return a.Sg(d, g, e);
+ };
+ _.Rj = function fWd(a, b, c, d, e) {
+ var f;
+ f = bLd(a.Tg(), this.e);
+ return a.Sg(null, f, e);
+ };
+ _.Sj = function gWd(a, b, c) {
+ var d;
+ d = bLd(a.Tg(), this.e);
+ return !!a.eh() && a.Vg() == d;
+ };
+ _.Tj = function hWd(a, b, c, d) {
+ var e, f, g, h, i;
+ if (d != null && !fKd(this.a, d)) {
+ throw vbb(new Cdb(Yve + (JD(d, 56) ? gLd(BD(d, 56).Tg()) : idb(rb(d))) + Zve + this.a + "'"));
+ }
+ e = a.eh();
+ g = bLd(a.Tg(), this.e);
+ if (PD(d) !== PD(e) || a.Vg() != g && d != null) {
+ if (p6d(a, BD(d, 56)))
+ throw vbb(new Wdb(ste + a.Ib()));
+ i = null;
+ !!e && (i = (f = a.Vg(), f >= 0 ? a.Qg(i) : a.eh().ih(a, -1 - f, null, i)));
+ h = BD(d, 49);
+ !!h && (i = h.gh(a, bLd(h.Tg(), this.b), null, i));
+ i = a.Sg(h, g, i);
+ !!i && i.Fi();
+ } else {
+ a.Lg() && a.Mg() && Uhd(a, new nSd(a, 1, g, d, d));
+ }
+ };
+ _.Vj = function iWd(a, b, c) {
+ var d, e, f, g;
+ d = a.eh();
+ if (d) {
+ g = (e = a.Vg(), e >= 0 ? a.Qg(null) : a.eh().ih(a, -1 - e, null, null));
+ f = bLd(a.Tg(), this.e);
+ g = a.Sg(null, f, g);
+ !!g && g.Fi();
+ } else {
+ a.Lg() && a.Mg() && Uhd(a, new DSd(a, 1, this.e, null, null));
+ }
+ };
+ _.sk = function jWd() {
+ return false;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainer", 769);
+ bcb(1315, 769, {}, kWd);
+ _.sk = function lWd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving", 1315);
+ bcb(563, 504, {});
+ _.Pj = function oWd(a, b, c, d, e) {
+ var f;
+ return f = b.Ch(c), f == null ? this.b : PD(f) === PD(TVd) ? null : f;
+ };
+ _.Sj = function pWd(a, b, c) {
+ var d;
+ d = b.Ch(c);
+ return d != null && (PD(d) === PD(TVd) || !pb(d, this.b));
+ };
+ _.Tj = function qWd(a, b, c, d) {
+ var e, f;
+ if (a.Lg() && a.Mg()) {
+ e = (f = b.Ch(c), f == null ? this.b : PD(f) === PD(TVd) ? null : f);
+ if (d == null) {
+ if (this.c != null) {
+ b.Dh(c, null);
+ d = this.b;
+ } else
+ this.b != null ? b.Dh(c, TVd) : b.Dh(c, null);
+ } else {
+ this.Sk(d);
+ b.Dh(c, d);
+ }
+ Uhd(a, this.d.Tk(a, 1, this.e, e, d));
+ } else {
+ if (d == null) {
+ this.c != null ? b.Dh(c, null) : this.b != null ? b.Dh(c, TVd) : b.Dh(c, null);
+ } else {
+ this.Sk(d);
+ b.Dh(c, d);
+ }
+ }
+ };
+ _.Vj = function rWd(a, b, c) {
+ var d, e;
+ if (a.Lg() && a.Mg()) {
+ d = (e = b.Ch(c), e == null ? this.b : PD(e) === PD(TVd) ? null : e);
+ b.Eh(c);
+ Uhd(a, this.d.Tk(a, 1, this.e, d, this.b));
+ } else {
+ b.Eh(c);
+ }
+ };
+ _.Sk = function sWd(a) {
+ throw vbb(new Bdb());
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData", 563);
+ bcb($ve, 1, {}, DWd);
+ _.Tk = function EWd(a, b, c, d, e) {
+ return new DSd(a, b, c, d, e);
+ };
+ _.Uk = function FWd(a, b, c, d, e, f) {
+ return new FSd(a, b, c, d, e, f);
+ };
+ var tWd, uWd, vWd, wWd, xWd, yWd, zWd, AWd, BWd;
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator", $ve);
+ bcb(1332, $ve, {}, GWd);
+ _.Tk = function HWd(a, b, c, d, e) {
+ return new ISd(a, b, c, Ccb(DD(d)), Ccb(DD(e)));
+ };
+ _.Uk = function IWd(a, b, c, d, e, f) {
+ return new JSd(a, b, c, Ccb(DD(d)), Ccb(DD(e)), f);
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1", 1332);
+ bcb(1333, $ve, {}, JWd);
+ _.Tk = function KWd(a, b, c, d, e) {
+ return new rSd(a, b, c, BD(d, 217).a, BD(e, 217).a);
+ };
+ _.Uk = function LWd(a, b, c, d, e, f) {
+ return new sSd(a, b, c, BD(d, 217).a, BD(e, 217).a, f);
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2", 1333);
+ bcb(1334, $ve, {}, MWd);
+ _.Tk = function NWd(a, b, c, d, e) {
+ return new tSd(a, b, c, BD(d, 172).a, BD(e, 172).a);
+ };
+ _.Uk = function OWd(a, b, c, d, e, f) {
+ return new uSd(a, b, c, BD(d, 172).a, BD(e, 172).a, f);
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3", 1334);
+ bcb(1335, $ve, {}, PWd);
+ _.Tk = function QWd(a, b, c, d, e) {
+ return new vSd(a, b, c, Edb(ED(d)), Edb(ED(e)));
+ };
+ _.Uk = function RWd(a, b, c, d, e, f) {
+ return new wSd(a, b, c, Edb(ED(d)), Edb(ED(e)), f);
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4", 1335);
+ bcb(1336, $ve, {}, SWd);
+ _.Tk = function TWd(a, b, c, d, e) {
+ return new xSd(a, b, c, BD(d, 155).a, BD(e, 155).a);
+ };
+ _.Uk = function UWd(a, b, c, d, e, f) {
+ return new ySd(a, b, c, BD(d, 155).a, BD(e, 155).a, f);
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5", 1336);
+ bcb(1337, $ve, {}, VWd);
+ _.Tk = function WWd(a, b, c, d, e) {
+ return new zSd(a, b, c, BD(d, 19).a, BD(e, 19).a);
+ };
+ _.Uk = function XWd(a, b, c, d, e, f) {
+ return new ASd(a, b, c, BD(d, 19).a, BD(e, 19).a, f);
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6", 1337);
+ bcb(1338, $ve, {}, YWd);
+ _.Tk = function ZWd(a, b, c, d, e) {
+ return new BSd(a, b, c, BD(d, 162).a, BD(e, 162).a);
+ };
+ _.Uk = function $Wd(a, b, c, d, e, f) {
+ return new CSd(a, b, c, BD(d, 162).a, BD(e, 162).a, f);
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7", 1338);
+ bcb(1339, $ve, {}, _Wd);
+ _.Tk = function aXd(a, b, c, d, e) {
+ return new GSd(a, b, c, BD(d, 184).a, BD(e, 184).a);
+ };
+ _.Uk = function bXd(a, b, c, d, e, f) {
+ return new HSd(a, b, c, BD(d, 184).a, BD(e, 184).a, f);
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8", 1339);
+ bcb(1317, 563, {}, cXd);
+ _.Sk = function dXd(a) {
+ if (!this.a.wj(a)) {
+ throw vbb(new Cdb(Yve + rb(a) + Zve + this.a + "'"));
+ }
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic", 1317);
+ bcb(1318, 563, {}, eXd);
+ _.Sk = function fXd(a) {
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic", 1318);
+ bcb(770, 563, {});
+ _.Sj = function gXd(a, b, c) {
+ var d;
+ d = b.Ch(c);
+ return d != null;
+ };
+ _.Tj = function hXd(a, b, c, d) {
+ var e, f;
+ if (a.Lg() && a.Mg()) {
+ e = true;
+ f = b.Ch(c);
+ if (f == null) {
+ e = false;
+ f = this.b;
+ } else
+ PD(f) === PD(TVd) && (f = null);
+ if (d == null) {
+ if (this.c != null) {
+ b.Dh(c, null);
+ d = this.b;
+ } else {
+ b.Dh(c, TVd);
+ }
+ } else {
+ this.Sk(d);
+ b.Dh(c, d);
+ }
+ Uhd(a, this.d.Uk(a, 1, this.e, f, d, !e));
+ } else {
+ if (d == null) {
+ this.c != null ? b.Dh(c, null) : b.Dh(c, TVd);
+ } else {
+ this.Sk(d);
+ b.Dh(c, d);
+ }
+ }
+ };
+ _.Vj = function iXd(a, b, c) {
+ var d, e;
+ if (a.Lg() && a.Mg()) {
+ d = true;
+ e = b.Ch(c);
+ if (e == null) {
+ d = false;
+ e = this.b;
+ } else
+ PD(e) === PD(TVd) && (e = null);
+ b.Eh(c);
+ Uhd(a, this.d.Uk(a, 2, this.e, e, this.b, d));
+ } else {
+ b.Eh(c);
+ }
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable", 770);
+ bcb(1319, 770, {}, jXd);
+ _.Sk = function kXd(a) {
+ if (!this.a.wj(a)) {
+ throw vbb(new Cdb(Yve + rb(a) + Zve + this.a + "'"));
+ }
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic", 1319);
+ bcb(1320, 770, {}, lXd);
+ _.Sk = function mXd(a) {
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic", 1320);
+ bcb(398, 504, {}, nXd);
+ _.Pj = function pXd(a, b, c, d, e) {
+ var f, g, h, i, j;
+ j = b.Ch(c);
+ if (this.Kj() && PD(j) === PD(TVd)) {
+ return null;
+ } else if (this.sk() && d && j != null) {
+ h = BD(j, 49);
+ if (h.kh()) {
+ i = xid(a, h);
+ if (h != i) {
+ if (!fKd(this.a, i)) {
+ throw vbb(new Cdb(Yve + rb(i) + Zve + this.a + "'"));
+ }
+ b.Dh(c, j = i);
+ if (this.rk()) {
+ f = BD(i, 49);
+ g = h.ih(a, !this.b ? -1 - bLd(a.Tg(), this.e) : bLd(h.Tg(), this.b), null, null);
+ !f.eh() && (g = f.gh(a, !this.b ? -1 - bLd(a.Tg(), this.e) : bLd(f.Tg(), this.b), null, g));
+ !!g && g.Fi();
+ }
+ a.Lg() && a.Mg() && Uhd(a, new DSd(a, 9, this.e, h, i));
+ }
+ }
+ return j;
+ } else {
+ return j;
+ }
+ };
+ _.Qj = function qXd(a, b, c, d, e) {
+ var f, g;
+ g = b.Ch(c);
+ PD(g) === PD(TVd) && (g = null);
+ b.Dh(c, d);
+ if (this.bj()) {
+ if (PD(g) !== PD(d) && g != null) {
+ f = BD(g, 49);
+ e = f.ih(a, bLd(f.Tg(), this.b), null, e);
+ }
+ } else
+ this.rk() && g != null && (e = BD(g, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, e));
+ if (a.Lg() && a.Mg()) {
+ !e && (e = new Ixd(4));
+ e.Ei(new DSd(a, 1, this.e, g, d));
+ }
+ return e;
+ };
+ _.Rj = function rXd(a, b, c, d, e) {
+ var f;
+ f = b.Ch(c);
+ PD(f) === PD(TVd) && (f = null);
+ b.Eh(c);
+ if (a.Lg() && a.Mg()) {
+ !e && (e = new Ixd(4));
+ this.Kj() ? e.Ei(new DSd(a, 2, this.e, f, null)) : e.Ei(new DSd(a, 1, this.e, f, null));
+ }
+ return e;
+ };
+ _.Sj = function sXd(a, b, c) {
+ var d;
+ d = b.Ch(c);
+ return d != null;
+ };
+ _.Tj = function tXd(a, b, c, d) {
+ var e, f, g, h, i;
+ if (d != null && !fKd(this.a, d)) {
+ throw vbb(new Cdb(Yve + (JD(d, 56) ? gLd(BD(d, 56).Tg()) : idb(rb(d))) + Zve + this.a + "'"));
+ }
+ i = b.Ch(c);
+ h = i != null;
+ this.Kj() && PD(i) === PD(TVd) && (i = null);
+ g = null;
+ if (this.bj()) {
+ if (PD(i) !== PD(d)) {
+ if (i != null) {
+ e = BD(i, 49);
+ g = e.ih(a, bLd(e.Tg(), this.b), null, g);
+ }
+ if (d != null) {
+ e = BD(d, 49);
+ g = e.gh(a, bLd(e.Tg(), this.b), null, g);
+ }
+ }
+ } else if (this.rk()) {
+ if (PD(i) !== PD(d)) {
+ i != null && (g = BD(i, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, g));
+ d != null && (g = BD(d, 49).gh(a, -1 - bLd(a.Tg(), this.e), null, g));
+ }
+ }
+ d == null && this.Kj() ? b.Dh(c, TVd) : b.Dh(c, d);
+ if (a.Lg() && a.Mg()) {
+ f = new FSd(a, 1, this.e, i, d, this.Kj() && !h);
+ if (!g) {
+ Uhd(a, f);
+ } else {
+ g.Ei(f);
+ g.Fi();
+ }
+ } else
+ !!g && g.Fi();
+ };
+ _.Vj = function uXd(a, b, c) {
+ var d, e, f, g, h;
+ h = b.Ch(c);
+ g = h != null;
+ this.Kj() && PD(h) === PD(TVd) && (h = null);
+ f = null;
+ if (h != null) {
+ if (this.bj()) {
+ d = BD(h, 49);
+ f = d.ih(a, bLd(d.Tg(), this.b), null, f);
+ } else
+ this.rk() && (f = BD(h, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, f));
+ }
+ b.Eh(c);
+ if (a.Lg() && a.Mg()) {
+ e = new FSd(a, this.Kj() ? 2 : 1, this.e, h, null, g);
+ if (!f) {
+ Uhd(a, e);
+ } else {
+ f.Ei(e);
+ f.Fi();
+ }
+ } else
+ !!f && f.Fi();
+ };
+ _.bj = function vXd() {
+ return false;
+ };
+ _.rk = function wXd() {
+ return false;
+ };
+ _.sk = function xXd() {
+ return false;
+ };
+ _.Kj = function yXd() {
+ return false;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObject", 398);
+ bcb(564, 398, {}, zXd);
+ _.rk = function AXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment", 564);
+ bcb(1323, 564, {}, BXd);
+ _.sk = function CXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving", 1323);
+ bcb(772, 564, {}, DXd);
+ _.Kj = function EXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable", 772);
+ bcb(1325, 772, {}, FXd);
+ _.sk = function GXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving", 1325);
+ bcb(640, 564, {}, HXd);
+ _.bj = function IXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse", 640);
+ bcb(1324, 640, {}, JXd);
+ _.sk = function KXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving", 1324);
+ bcb(773, 640, {}, LXd);
+ _.Kj = function MXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable", 773);
+ bcb(1326, 773, {}, NXd);
+ _.sk = function OXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving", 1326);
+ bcb(641, 398, {}, PXd);
+ _.sk = function QXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving", 641);
+ bcb(1327, 641, {}, RXd);
+ _.Kj = function SXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable", 1327);
+ bcb(774, 641, {}, TXd);
+ _.bj = function UXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse", 774);
+ bcb(1328, 774, {}, VXd);
+ _.Kj = function WXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable", 1328);
+ bcb(1321, 398, {}, XXd);
+ _.Kj = function YXd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable", 1321);
+ bcb(771, 398, {}, ZXd);
+ _.bj = function $Xd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse", 771);
+ bcb(1322, 771, {}, _Xd);
+ _.Kj = function aYd() {
+ return true;
+ };
+ mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable", 1322);
+ bcb(775, 565, Xve, dYd);
+ _.Pk = function eYd(a) {
+ return new dYd(this.a, this.c, a);
+ };
+ _.dd = function fYd() {
+ return this.b;
+ };
+ _.Qk = function gYd(a, b, c) {
+ return bYd(this, a, this.b, c);
+ };
+ _.Rk = function hYd(a, b, c) {
+ return cYd(this, a, this.b, c);
+ };
+ mdb(qte, "EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry", 775);
+ bcb(1329, 1, zve, iYd);
+ _.Wj = function jYd(a) {
+ return this.a;
+ };
+ _.fj = function kYd() {
+ return JD(this.a, 95) ? BD(this.a, 95).fj() : !this.a.dc();
+ };
+ _.Wb = function lYd(a) {
+ this.a.$b();
+ this.a.Gc(BD(a, 15));
+ };
+ _.Xj = function mYd() {
+ JD(this.a, 95) ? BD(this.a, 95).Xj() : this.a.$b();
+ };
+ mdb(qte, "EStructuralFeatureImpl/SettingMany", 1329);
+ bcb(1330, 565, Xve, nYd);
+ _.Ok = function oYd(a) {
+ return new sYd((Q8d(), P8d), this.b.Ih(this.a, a));
+ };
+ _.dd = function pYd() {
+ return null;
+ };
+ _.Qk = function qYd(a, b, c) {
+ return c;
+ };
+ _.Rk = function rYd(a, b, c) {
+ return c;
+ };
+ mdb(qte, "EStructuralFeatureImpl/SimpleContentFeatureMapEntry", 1330);
+ bcb(642, 565, Xve, sYd);
+ _.Ok = function tYd(a) {
+ return new sYd(this.c, a);
+ };
+ _.dd = function uYd() {
+ return this.a;
+ };
+ _.Qk = function vYd(a, b, c) {
+ return c;
+ };
+ _.Rk = function wYd(a, b, c) {
+ return c;
+ };
+ mdb(qte, "EStructuralFeatureImpl/SimpleFeatureMapEntry", 642);
+ bcb(391, 497, oue, xYd);
+ _.ri = function yYd(a) {
+ return KC(c5, Uhe, 26, a, 0, 1);
+ };
+ _.ni = function zYd() {
+ return false;
+ };
+ mdb(qte, "ESuperAdapter/1", 391);
+ bcb(444, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 836: 1, 49: 1, 97: 1, 150: 1, 444: 1, 114: 1, 115: 1 }, BYd);
+ _._g = function CYd(a, b, c) {
+ var d;
+ switch (a) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
+ case 1:
+ return this.zb;
+ case 2:
+ return !this.a && (this.a = new KYd(this, j5, this)), this.a;
+ }
+ return bid(this, a - aLd((jGd(), iGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? iGd : d), a), b, c);
+ };
+ _.jh = function DYd(a, b, c) {
+ var d, e;
+ switch (b) {
+ case 0:
+ return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c);
+ case 2:
+ return !this.a && (this.a = new KYd(this, j5, this)), Txd(this.a, a, c);
+ }
+ return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), iGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), iGd)), a, c);
+ };
+ _.lh = function EYd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ return !!this.Ab && this.Ab.i != 0;
+ case 1:
+ return this.zb != null;
+ case 2:
+ return !!this.a && this.a.i != 0;
+ }
+ return cid(this, a - aLd((jGd(), iGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? iGd : b), a));
+ };
+ _.sh = function FYd(a, b) {
+ var c;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ ytd(this.Ab, BD(b, 14));
+ return;
+ case 1:
+ pnd(this, GD(b));
+ return;
+ case 2:
+ !this.a && (this.a = new KYd(this, j5, this));
+ Uxd(this.a);
+ !this.a && (this.a = new KYd(this, j5, this));
+ ytd(this.a, BD(b, 14));
+ return;
+ }
+ did(this, a - aLd((jGd(), iGd)), XKd((c = BD(Ajd(this, 16), 26), !c ? iGd : c), a), b);
+ };
+ _.zh = function GYd() {
+ return jGd(), iGd;
+ };
+ _.Bh = function HYd(a) {
+ var b;
+ switch (a) {
+ case 0:
+ !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
+ Uxd(this.Ab);
+ return;
+ case 1:
+ pnd(this, null);
+ return;
+ case 2:
+ !this.a && (this.a = new KYd(this, j5, this));
+ Uxd(this.a);
+ return;
+ }
+ eid(this, a - aLd((jGd(), iGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? iGd : b), a));
+ };
+ mdb(qte, "ETypeParameterImpl", 444);
+ bcb(445, 85, Pve, KYd);
+ _.cj = function LYd(a, b) {
+ return IYd(this, BD(a, 87), b);
+ };
+ _.dj = function MYd(a, b) {
+ return JYd(this, BD(a, 87), b);
+ };
+ mdb(qte, "ETypeParameterImpl/1", 445);
+ bcb(634, 43, fke, NYd);
+ _.ec = function OYd() {
+ return new RYd(this);
+ };
+ mdb(qte, "ETypeParameterImpl/2", 634);
+ bcb(556, eie, fie, RYd);
+ _.Fc = function SYd(a) {
+ return PYd(this, BD(a, 87));
+ };
+ _.Gc = function TYd(a) {
+ var b, c, d;
+ d = false;
+ for (c = a.Kc(); c.Ob(); ) {
+ b = BD(c.Pb(), 87);
+ Rhb(this.a, b, "") == null && (d = true);
+ }
+ return d;
+ };
+ _.$b = function UYd() {
+ Uhb(this.a);
+ };
+ _.Hc = function VYd(a) {
+ return Mhb(this.a, a);
+ };
+ _.Kc = function WYd() {
+ var a;
+ return a = new nib(new eib(this.a).a), new ZYd(a);
+ };
+ _.Mc = function XYd(a) {
+ return QYd(this, a);
+ };
+ _.gc = function YYd() {
+ return Vhb(this.a);
+ };
+ mdb(qte, "ETypeParameterImpl/2/1", 556);
+ bcb(557, 1, aie, ZYd);
+ _.Nb = function $Yd(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function aZd() {
+ return BD(lib(this.a).cd(), 87);
+ };
+ _.Ob = function _Yd() {
+ return this.a.b;
+ };
+ _.Qb = function bZd() {
+ mib(this.a);
+ };
+ mdb(qte, "ETypeParameterImpl/2/1/1", 557);
+ bcb(1276, 43, fke, cZd);
+ _._b = function dZd(a) {
+ return ND(a) ? Qhb(this, a) : !!irb(this.f, a);
+ };
+ _.xc = function eZd(a) {
+ var b, c;
+ b = ND(a) ? Phb(this, a) : Wd(irb(this.f, a));
+ if (JD(b, 837)) {
+ c = BD(b, 837);
+ b = c._j();
+ Rhb(this, BD(a, 235), b);
+ return b;
+ } else
+ return b != null ? b : a == null ? (g5d(), f5d) : null;
+ };
+ mdb(qte, "EValidatorRegistryImpl", 1276);
+ bcb(1313, 704, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 1941: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, mZd);
+ _.Ih = function nZd(a, b) {
+ switch (a.yj()) {
+ case 21:
+ case 22:
+ case 23:
+ case 24:
+ case 26:
+ case 31:
+ case 32:
+ case 37:
+ case 38:
+ case 39:
+ case 40:
+ case 43:
+ case 44:
+ case 48:
+ case 49:
+ case 20:
+ return b == null ? null : fcb(b);
+ case 25:
+ return gZd(b);
+ case 27:
+ return hZd(b);
+ case 28:
+ return iZd(b);
+ case 29:
+ return b == null ? null : CQd(Pmd[0], BD(b, 199));
+ case 41:
+ return b == null ? "" : hdb(BD(b, 290));
+ case 42:
+ return fcb(b);
+ case 50:
+ return GD(b);
+ default:
+ throw vbb(new Wdb(tte + a.ne() + ute));
+ }
+ };
+ _.Jh = function oZd(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q;
+ switch (a.G == -1 && (a.G = (m = bKd(a), m ? HLd(m.Mh(), a) : -1)), a.G) {
+ case 0:
+ return c = new OJd(), c;
+ case 1:
+ return b = new RHd(), b;
+ case 2:
+ return d = new hLd(), d;
+ case 4:
+ return e = new MPd(), e;
+ case 5:
+ return f = new aQd(), f;
+ case 6:
+ return g = new rQd(), g;
+ case 7:
+ return h = new $md(), h;
+ case 10:
+ return j = new MGd(), j;
+ case 11:
+ return k = new SSd(), k;
+ case 12:
+ return l = new eod(), l;
+ case 13:
+ return n = new rUd(), n;
+ case 14:
+ return o2 = new FUd(), o2;
+ case 17:
+ return p = new XUd(), p;
+ case 18:
+ return i = new UQd(), i;
+ case 19:
+ return q = new BYd(), q;
+ default:
+ throw vbb(new Wdb(xte + a.zb + ute));
+ }
+ };
+ _.Kh = function pZd(a, b) {
+ switch (a.yj()) {
+ case 20:
+ return b == null ? null : new tgb(b);
+ case 21:
+ return b == null ? null : new Ygb(b);
+ case 23:
+ case 22:
+ return b == null ? null : fZd(b);
+ case 26:
+ case 24:
+ return b == null ? null : Scb(Icb(b, -128, 127) << 24 >> 24);
+ case 25:
+ return Xmd(b);
+ case 27:
+ return jZd(b);
+ case 28:
+ return kZd(b);
+ case 29:
+ return lZd(b);
+ case 32:
+ case 31:
+ return b == null ? null : Hcb(b);
+ case 38:
+ case 37:
+ return b == null ? null : new Odb(b);
+ case 40:
+ case 39:
+ return b == null ? null : meb(Icb(b, Rie, Ohe));
+ case 41:
+ return null;
+ case 42:
+ return b == null ? null : null;
+ case 44:
+ case 43:
+ return b == null ? null : Aeb(Jcb(b));
+ case 49:
+ case 48:
+ return b == null ? null : Web(Icb(b, awe, 32767) << 16 >> 16);
+ case 50:
+ return b;
+ default:
+ throw vbb(new Wdb(tte + a.ne() + ute));
+ }
+ };
+ mdb(qte, "EcoreFactoryImpl", 1313);
+ bcb(547, 179, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 1939: 1, 49: 1, 97: 1, 150: 1, 179: 1, 547: 1, 114: 1, 115: 1, 675: 1 }, AZd);
+ _.gb = false;
+ _.hb = false;
+ var rZd, sZd = false;
+ mdb(qte, "EcorePackageImpl", 547);
+ bcb(1184, 1, { 837: 1 }, EZd);
+ _._j = function FZd() {
+ return I6d(), H6d;
+ };
+ mdb(qte, "EcorePackageImpl/1", 1184);
+ bcb(1193, 1, nwe, GZd);
+ _.wj = function HZd(a) {
+ return JD(a, 147);
+ };
+ _.xj = function IZd(a) {
+ return KC(k5, Uhe, 147, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/10", 1193);
+ bcb(1194, 1, nwe, JZd);
+ _.wj = function KZd(a) {
+ return JD(a, 191);
+ };
+ _.xj = function LZd(a) {
+ return KC(l5, Uhe, 191, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/11", 1194);
+ bcb(1195, 1, nwe, MZd);
+ _.wj = function NZd(a) {
+ return JD(a, 56);
+ };
+ _.xj = function OZd(a) {
+ return KC(m5, Uhe, 56, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/12", 1195);
+ bcb(1196, 1, nwe, PZd);
+ _.wj = function QZd(a) {
+ return JD(a, 399);
+ };
+ _.xj = function RZd(a) {
+ return KC(n5, Nve, 59, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/13", 1196);
+ bcb(1197, 1, nwe, SZd);
+ _.wj = function TZd(a) {
+ return JD(a, 235);
+ };
+ _.xj = function UZd(a) {
+ return KC(o5, Uhe, 235, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/14", 1197);
+ bcb(1198, 1, nwe, VZd);
+ _.wj = function WZd(a) {
+ return JD(a, 509);
+ };
+ _.xj = function XZd(a) {
+ return KC(p5, Uhe, 2017, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/15", 1198);
+ bcb(1199, 1, nwe, YZd);
+ _.wj = function ZZd(a) {
+ return JD(a, 99);
+ };
+ _.xj = function $Zd(a) {
+ return KC(q5, Mve, 18, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/16", 1199);
+ bcb(1200, 1, nwe, _Zd);
+ _.wj = function a$d(a) {
+ return JD(a, 170);
+ };
+ _.xj = function b$d(a) {
+ return KC(t5, Mve, 170, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/17", 1200);
+ bcb(1201, 1, nwe, c$d);
+ _.wj = function d$d(a) {
+ return JD(a, 472);
+ };
+ _.xj = function e$d(a) {
+ return KC(v5, Uhe, 472, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/18", 1201);
+ bcb(1202, 1, nwe, f$d);
+ _.wj = function g$d(a) {
+ return JD(a, 548);
+ };
+ _.xj = function h$d(a) {
+ return KC(x6, kve, 548, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/19", 1202);
+ bcb(1185, 1, nwe, i$d);
+ _.wj = function j$d(a) {
+ return JD(a, 322);
+ };
+ _.xj = function k$d(a) {
+ return KC(b5, Mve, 34, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/2", 1185);
+ bcb(1203, 1, nwe, l$d);
+ _.wj = function m$d(a) {
+ return JD(a, 241);
+ };
+ _.xj = function n$d(a) {
+ return KC(j5, Tve, 87, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/20", 1203);
+ bcb(1204, 1, nwe, o$d);
+ _.wj = function p$d(a) {
+ return JD(a, 444);
+ };
+ _.xj = function q$d(a) {
+ return KC(u5, Uhe, 836, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/21", 1204);
+ bcb(1205, 1, nwe, r$d);
+ _.wj = function s$d(a) {
+ return KD(a);
+ };
+ _.xj = function t$d(a) {
+ return KC(wI, nie, 476, a, 8, 1);
+ };
+ mdb(qte, "EcorePackageImpl/22", 1205);
+ bcb(1206, 1, nwe, u$d);
+ _.wj = function v$d(a) {
+ return JD(a, 190);
+ };
+ _.xj = function w$d(a) {
+ return KC(SD, nie, 190, a, 0, 2);
+ };
+ mdb(qte, "EcorePackageImpl/23", 1206);
+ bcb(1207, 1, nwe, x$d);
+ _.wj = function y$d(a) {
+ return JD(a, 217);
+ };
+ _.xj = function z$d(a) {
+ return KC(xI, nie, 217, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/24", 1207);
+ bcb(1208, 1, nwe, A$d);
+ _.wj = function B$d(a) {
+ return JD(a, 172);
+ };
+ _.xj = function C$d(a) {
+ return KC(yI, nie, 172, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/25", 1208);
+ bcb(1209, 1, nwe, D$d);
+ _.wj = function E$d(a) {
+ return JD(a, 199);
+ };
+ _.xj = function F$d(a) {
+ return KC($J, nie, 199, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/26", 1209);
+ bcb(1210, 1, nwe, G$d);
+ _.wj = function H$d(a) {
+ return false;
+ };
+ _.xj = function I$d(a) {
+ return KC(O4, Uhe, 2110, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/27", 1210);
+ bcb(1211, 1, nwe, J$d);
+ _.wj = function K$d(a) {
+ return LD(a);
+ };
+ _.xj = function L$d(a) {
+ return KC(BI, nie, 333, a, 7, 1);
+ };
+ mdb(qte, "EcorePackageImpl/28", 1211);
+ bcb(1212, 1, nwe, M$d);
+ _.wj = function N$d(a) {
+ return JD(a, 58);
+ };
+ _.xj = function O$d(a) {
+ return KC(T4, eme, 58, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/29", 1212);
+ bcb(1186, 1, nwe, P$d);
+ _.wj = function Q$d(a) {
+ return JD(a, 510);
+ };
+ _.xj = function R$d(a) {
+ return KC(a5, { 3: 1, 4: 1, 5: 1, 1934: 1 }, 590, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/3", 1186);
+ bcb(1213, 1, nwe, S$d);
+ _.wj = function T$d(a) {
+ return JD(a, 573);
+ };
+ _.xj = function U$d(a) {
+ return KC(U4, Uhe, 1940, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/30", 1213);
+ bcb(1214, 1, nwe, V$d);
+ _.wj = function W$d(a) {
+ return JD(a, 153);
+ };
+ _.xj = function X$d(a) {
+ return KC(O9, eme, 153, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/31", 1214);
+ bcb(1215, 1, nwe, Y$d);
+ _.wj = function Z$d(a) {
+ return JD(a, 72);
+ };
+ _.xj = function $$d(a) {
+ return KC(E9, owe, 72, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/32", 1215);
+ bcb(1216, 1, nwe, _$d);
+ _.wj = function a_d(a) {
+ return JD(a, 155);
+ };
+ _.xj = function b_d(a) {
+ return KC(FI, nie, 155, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/33", 1216);
+ bcb(1217, 1, nwe, c_d);
+ _.wj = function d_d(a) {
+ return JD(a, 19);
+ };
+ _.xj = function e_d(a) {
+ return KC(JI, nie, 19, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/34", 1217);
+ bcb(1218, 1, nwe, f_d);
+ _.wj = function g_d(a) {
+ return JD(a, 290);
+ };
+ _.xj = function h_d(a) {
+ return KC(AI, Uhe, 290, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/35", 1218);
+ bcb(1219, 1, nwe, i_d);
+ _.wj = function j_d(a) {
+ return JD(a, 162);
+ };
+ _.xj = function k_d(a) {
+ return KC(MI, nie, 162, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/36", 1219);
+ bcb(1220, 1, nwe, l_d);
+ _.wj = function m_d(a) {
+ return JD(a, 83);
+ };
+ _.xj = function n_d(a) {
+ return KC(DK, Uhe, 83, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/37", 1220);
+ bcb(1221, 1, nwe, o_d);
+ _.wj = function p_d(a) {
+ return JD(a, 591);
+ };
+ _.xj = function q_d(a) {
+ return KC(v8, Uhe, 591, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/38", 1221);
+ bcb(1222, 1, nwe, r_d);
+ _.wj = function s_d(a) {
+ return false;
+ };
+ _.xj = function t_d(a) {
+ return KC(u8, Uhe, 2111, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/39", 1222);
+ bcb(1187, 1, nwe, u_d);
+ _.wj = function v_d(a) {
+ return JD(a, 88);
+ };
+ _.xj = function w_d(a) {
+ return KC(c5, Uhe, 26, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/4", 1187);
+ bcb(1223, 1, nwe, x_d);
+ _.wj = function y_d(a) {
+ return JD(a, 184);
+ };
+ _.xj = function z_d(a) {
+ return KC(UI, nie, 184, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/40", 1223);
+ bcb(1224, 1, nwe, A_d);
+ _.wj = function B_d(a) {
+ return ND(a);
+ };
+ _.xj = function C_d(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(qte, "EcorePackageImpl/41", 1224);
+ bcb(1225, 1, nwe, D_d);
+ _.wj = function E_d(a) {
+ return JD(a, 588);
+ };
+ _.xj = function F_d(a) {
+ return KC(X4, Uhe, 588, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/42", 1225);
+ bcb(1226, 1, nwe, G_d);
+ _.wj = function H_d(a) {
+ return false;
+ };
+ _.xj = function I_d(a) {
+ return KC(V4, nie, 2112, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/43", 1226);
+ bcb(1227, 1, nwe, J_d);
+ _.wj = function K_d(a) {
+ return JD(a, 42);
+ };
+ _.xj = function L_d(a) {
+ return KC(CK, zie, 42, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/44", 1227);
+ bcb(1188, 1, nwe, M_d);
+ _.wj = function N_d(a) {
+ return JD(a, 138);
+ };
+ _.xj = function O_d(a) {
+ return KC(d5, Uhe, 138, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/5", 1188);
+ bcb(1189, 1, nwe, P_d);
+ _.wj = function Q_d(a) {
+ return JD(a, 148);
+ };
+ _.xj = function R_d(a) {
+ return KC(f5, Uhe, 148, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/6", 1189);
+ bcb(1190, 1, nwe, S_d);
+ _.wj = function T_d(a) {
+ return JD(a, 457);
+ };
+ _.xj = function U_d(a) {
+ return KC(h5, Uhe, 671, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/7", 1190);
+ bcb(1191, 1, nwe, V_d);
+ _.wj = function W_d(a) {
+ return JD(a, 573);
+ };
+ _.xj = function X_d(a) {
+ return KC(g5, Uhe, 678, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/8", 1191);
+ bcb(1192, 1, nwe, Y_d);
+ _.wj = function Z_d(a) {
+ return JD(a, 471);
+ };
+ _.xj = function $_d(a) {
+ return KC(i5, Uhe, 471, a, 0, 1);
+ };
+ mdb(qte, "EcorePackageImpl/9", 1192);
+ bcb(1025, 1982, ive, c0d);
+ _.bi = function d0d(a, b) {
+ __d(this, BD(b, 415));
+ };
+ _.fi = function e0d(a, b) {
+ a0d(this, a, BD(b, 415));
+ };
+ mdb(qte, "MinimalEObjectImpl/1ArrayDelegatingAdapterList", 1025);
+ bcb(1026, 143, fve, f0d);
+ _.Ai = function g0d() {
+ return this.a.a;
+ };
+ mdb(qte, "MinimalEObjectImpl/1ArrayDelegatingAdapterList/1", 1026);
+ bcb(1053, 1052, {}, i0d);
+ mdb("org.eclipse.emf.ecore.plugin", "EcorePlugin", 1053);
+ var v8 = odb(pwe, "Resource");
+ bcb(781, 1378, qwe);
+ _.Yk = function m0d(a) {
+ };
+ _.Zk = function n0d(a) {
+ };
+ _.Vk = function o0d() {
+ return !this.a && (this.a = new z0d(this)), this.a;
+ };
+ _.Wk = function p0d(a) {
+ var b, c, d, e, f;
+ d = a.length;
+ if (d > 0) {
+ BCb(0, a.length);
+ if (a.charCodeAt(0) == 47) {
+ f = new Skb(4);
+ e = 1;
+ for (b = 1; b < d; ++b) {
+ BCb(b, a.length);
+ if (a.charCodeAt(b) == 47) {
+ Ekb(f, e == b ? "" : a.substr(e, b - e));
+ e = b + 1;
+ }
+ }
+ Ekb(f, a.substr(e));
+ return j0d(this, f);
+ } else {
+ BCb(d - 1, a.length);
+ if (a.charCodeAt(d - 1) == 63) {
+ c = lfb(a, wfb(63), d - 2);
+ c > 0 && (a = a.substr(0, c));
+ }
+ }
+ }
+ return k0d(this, a);
+ };
+ _.Xk = function q0d() {
+ return this.c;
+ };
+ _.Ib = function r0d() {
+ var a;
+ return hdb(this.gm) + "@" + (a = tb(this) >>> 0, a.toString(16)) + " uri='" + this.d + "'";
+ };
+ _.b = false;
+ mdb(rwe, "ResourceImpl", 781);
+ bcb(1379, 781, qwe, s0d);
+ mdb(rwe, "BinaryResourceImpl", 1379);
+ bcb(1169, 694, pue);
+ _.si = function v0d(a) {
+ return JD(a, 56) ? t0d(this, BD(a, 56)) : JD(a, 591) ? new Fyd(BD(a, 591).Vk()) : PD(a) === PD(this.f) ? BD(a, 14).Kc() : (LCd(), KCd.a);
+ };
+ _.Ob = function w0d() {
+ return u0d(this);
+ };
+ _.a = false;
+ mdb(yve, "EcoreUtil/ContentTreeIterator", 1169);
+ bcb(1380, 1169, pue, x0d);
+ _.si = function y0d(a) {
+ return PD(a) === PD(this.f) ? BD(a, 15).Kc() : new C6d(BD(a, 56));
+ };
+ mdb(rwe, "ResourceImpl/5", 1380);
+ bcb(648, 1994, Ove, z0d);
+ _.Hc = function A0d(a) {
+ return this.i <= 4 ? pud(this, a) : JD(a, 49) && BD(a, 49).Zg() == this.a;
+ };
+ _.bi = function B0d(a, b) {
+ a == this.i - 1 && (this.a.b || (this.a.b = true, null));
+ };
+ _.di = function C0d(a, b) {
+ a == 0 ? this.a.b || (this.a.b = true, null) : Atd(this, a, b);
+ };
+ _.fi = function D0d(a, b) {
+ };
+ _.gi = function E0d(a, b, c) {
+ };
+ _.aj = function F0d() {
+ return 2;
+ };
+ _.Ai = function G0d() {
+ return this.a;
+ };
+ _.bj = function H0d() {
+ return true;
+ };
+ _.cj = function I0d(a, b) {
+ var c;
+ c = BD(a, 49);
+ b = c.wh(this.a, b);
+ return b;
+ };
+ _.dj = function J0d(a, b) {
+ var c;
+ c = BD(a, 49);
+ return c.wh(null, b);
+ };
+ _.ej = function K0d() {
+ return false;
+ };
+ _.hi = function L0d() {
+ return true;
+ };
+ _.ri = function M0d(a) {
+ return KC(m5, Uhe, 56, a, 0, 1);
+ };
+ _.ni = function N0d() {
+ return false;
+ };
+ mdb(rwe, "ResourceImpl/ContentsEList", 648);
+ bcb(957, 1964, Lie, O0d);
+ _.Zc = function P0d(a) {
+ return this.a._h(a);
+ };
+ _.gc = function Q0d() {
+ return this.a.gc();
+ };
+ mdb(yve, "AbstractSequentialInternalEList/1", 957);
+ var K6d, L6d, M6d, N6d;
+ bcb(624, 1, {}, y1d);
+ var R0d, S0d;
+ mdb(yve, "BasicExtendedMetaData", 624);
+ bcb(1160, 1, {}, C1d);
+ _.$k = function D1d() {
+ return null;
+ };
+ _._k = function E1d() {
+ this.a == -2 && A1d(this, W0d(this.d, this.b));
+ return this.a;
+ };
+ _.al = function F1d() {
+ return null;
+ };
+ _.bl = function G1d() {
+ return mmb(), mmb(), jmb;
+ };
+ _.ne = function H1d() {
+ this.c == Gwe && B1d(this, _0d(this.d, this.b));
+ return this.c;
+ };
+ _.cl = function I1d() {
+ return 0;
+ };
+ _.a = -2;
+ _.c = Gwe;
+ mdb(yve, "BasicExtendedMetaData/EClassExtendedMetaDataImpl", 1160);
+ bcb(1161, 1, {}, O1d);
+ _.$k = function P1d() {
+ this.a == (T0d(), R0d) && J1d(this, V0d(this.f, this.b));
+ return this.a;
+ };
+ _._k = function Q1d() {
+ return 0;
+ };
+ _.al = function R1d() {
+ this.c == (T0d(), R0d) && K1d(this, Z0d(this.f, this.b));
+ return this.c;
+ };
+ _.bl = function S1d() {
+ !this.d && L1d(this, $0d(this.f, this.b));
+ return this.d;
+ };
+ _.ne = function T1d() {
+ this.e == Gwe && M1d(this, _0d(this.f, this.b));
+ return this.e;
+ };
+ _.cl = function U1d() {
+ this.g == -2 && N1d(this, c1d(this.f, this.b));
+ return this.g;
+ };
+ _.e = Gwe;
+ _.g = -2;
+ mdb(yve, "BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl", 1161);
+ bcb(1159, 1, {}, Y1d);
+ _.b = false;
+ _.c = false;
+ mdb(yve, "BasicExtendedMetaData/EPackageExtendedMetaDataImpl", 1159);
+ bcb(1162, 1, {}, j2d);
+ _.c = -2;
+ _.e = Gwe;
+ _.f = Gwe;
+ mdb(yve, "BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl", 1162);
+ bcb(585, 622, Pve, k2d);
+ _.aj = function l2d() {
+ return this.c;
+ };
+ _.Fk = function m2d() {
+ return false;
+ };
+ _.li = function n2d(a, b) {
+ return b;
+ };
+ _.c = 0;
+ mdb(yve, "EDataTypeEList", 585);
+ var O9 = odb(yve, "FeatureMap");
+ bcb(75, 585, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 76: 1, 153: 1, 215: 1, 1937: 1, 69: 1, 95: 1 }, u3d);
+ _.Vc = function v3d(a, b) {
+ o2d(this, a, BD(b, 72));
+ };
+ _.Fc = function w3d(a) {
+ return r2d(this, BD(a, 72));
+ };
+ _.Yh = function B3d(a) {
+ w2d(this, BD(a, 72));
+ };
+ _.cj = function M3d(a, b) {
+ return O2d(this, BD(a, 72), b);
+ };
+ _.dj = function N3d(a, b) {
+ return Q2d(this, BD(a, 72), b);
+ };
+ _.ii = function P3d(a, b) {
+ return W2d(this, a, b);
+ };
+ _.li = function R3d(a, b) {
+ return _2d(this, a, BD(b, 72));
+ };
+ _._c = function T3d(a, b) {
+ return c3d(this, a, BD(b, 72));
+ };
+ _.jj = function X3d(a, b) {
+ return i3d(this, BD(a, 72), b);
+ };
+ _.kj = function Y3d(a, b) {
+ return k3d(this, BD(a, 72), b);
+ };
+ _.lj = function Z3d(a, b, c) {
+ return l3d(this, BD(a, 72), BD(b, 72), c);
+ };
+ _.oi = function _3d(a, b) {
+ return t3d(this, a, BD(b, 72));
+ };
+ _.dl = function x3d(a, b) {
+ return q2d(this, a, b);
+ };
+ _.Wc = function y3d(a, b) {
+ var c, d, e, f, g, h, i, j, k;
+ j = new zud(b.gc());
+ for (e = b.Kc(); e.Ob(); ) {
+ d = BD(e.Pb(), 72);
+ f = d.ak();
+ if (T6d(this.e, f)) {
+ (!f.hi() || !E2d(this, f, d.dd()) && !pud(j, d)) && wtd(j, d);
+ } else {
+ k = S6d(this.e.Tg(), f);
+ c = BD(this.g, 119);
+ g = true;
+ for (h = 0; h < this.i; ++h) {
+ i = c[h];
+ if (k.rl(i.ak())) {
+ BD(Gtd(this, h, d), 72);
+ g = false;
+ break;
+ }
+ }
+ g && wtd(j, d);
+ }
+ }
+ return xtd(this, a, j);
+ };
+ _.Gc = function z3d(a) {
+ var b, c, d, e, f, g, h, i, j;
+ i = new zud(a.gc());
+ for (d = a.Kc(); d.Ob(); ) {
+ c = BD(d.Pb(), 72);
+ e = c.ak();
+ if (T6d(this.e, e)) {
+ (!e.hi() || !E2d(this, e, c.dd()) && !pud(i, c)) && wtd(i, c);
+ } else {
+ j = S6d(this.e.Tg(), e);
+ b = BD(this.g, 119);
+ f = true;
+ for (g = 0; g < this.i; ++g) {
+ h = b[g];
+ if (j.rl(h.ak())) {
+ BD(Gtd(this, g, c), 72);
+ f = false;
+ break;
+ }
+ }
+ f && wtd(i, c);
+ }
+ }
+ return ytd(this, i);
+ };
+ _.Wh = function A3d(a) {
+ this.j = -1;
+ return Pxd(this, this.i, a);
+ };
+ _.el = function C3d(a, b, c) {
+ return x2d(this, a, b, c);
+ };
+ _.mk = function D3d(a, b) {
+ return B2d(this, a, b);
+ };
+ _.fl = function E3d(a, b, c) {
+ return C2d(this, a, b, c);
+ };
+ _.gl = function F3d() {
+ return this;
+ };
+ _.hl = function G3d(a, b) {
+ return K2d(this, a, b);
+ };
+ _.il = function H3d(a) {
+ return BD(qud(this, a), 72).ak();
+ };
+ _.jl = function I3d(a) {
+ return BD(qud(this, a), 72).dd();
+ };
+ _.kl = function J3d() {
+ return this.b;
+ };
+ _.bj = function K3d() {
+ return true;
+ };
+ _.ij = function L3d() {
+ return true;
+ };
+ _.ll = function O3d(a) {
+ return !R2d(this, a);
+ };
+ _.ri = function Q3d(a) {
+ return KC(D9, owe, 332, a, 0, 1);
+ };
+ _.Gk = function S3d(a) {
+ return a3d(this, a);
+ };
+ _.Wb = function U3d(a) {
+ d3d(this, a);
+ };
+ _.ml = function V3d(a, b) {
+ f3d(this, a, b);
+ };
+ _.nl = function W3d(a) {
+ return g3d(this, a);
+ };
+ _.ol = function $3d(a) {
+ s3d(this, a);
+ };
+ mdb(yve, "BasicFeatureMap", 75);
+ bcb(1851, 1, jie);
+ _.Nb = function f4d(a) {
+ Rrb(this, a);
+ };
+ _.Rb = function e4d(b) {
+ if (this.g == -1) {
+ throw vbb(new Ydb());
+ }
+ a4d(this);
+ try {
+ p2d(this.e, this.b, this.a, b);
+ this.d = this.e.j;
+ d4d(this);
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ throw vbb(new Apb());
+ } else
+ throw vbb(a);
+ }
+ };
+ _.Ob = function g4d() {
+ return b4d(this);
+ };
+ _.Sb = function h4d() {
+ return c4d(this);
+ };
+ _.Pb = function i4d() {
+ return d4d(this);
+ };
+ _.Tb = function j4d() {
+ return this.a;
+ };
+ _.Ub = function k4d() {
+ var a;
+ if (c4d(this)) {
+ a4d(this);
+ this.g = --this.a;
+ if (this.Lk()) {
+ a = b3d(this.e, this.b, this.c, this.a, this.j);
+ this.j = a;
+ }
+ this.i = 0;
+ return this.j;
+ } else {
+ throw vbb(new utb());
+ }
+ };
+ _.Vb = function l4d() {
+ return this.a - 1;
+ };
+ _.Qb = function m4d() {
+ if (this.g == -1) {
+ throw vbb(new Ydb());
+ }
+ a4d(this);
+ try {
+ Z2d(this.e, this.b, this.g);
+ this.d = this.e.j;
+ if (this.g < this.a) {
+ --this.a;
+ --this.c;
+ }
+ --this.g;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ throw vbb(new Apb());
+ } else
+ throw vbb(a);
+ }
+ };
+ _.Lk = function n4d() {
+ return false;
+ };
+ _.Wb = function o4d(b) {
+ if (this.g == -1) {
+ throw vbb(new Ydb());
+ }
+ a4d(this);
+ try {
+ e3d(this.e, this.b, this.g, b);
+ this.d = this.e.j;
+ } catch (a) {
+ a = ubb(a);
+ if (JD(a, 73)) {
+ throw vbb(new Apb());
+ } else
+ throw vbb(a);
+ }
+ };
+ _.a = 0;
+ _.c = 0;
+ _.d = 0;
+ _.f = false;
+ _.g = 0;
+ _.i = 0;
+ mdb(yve, "FeatureMapUtil/BasicFeatureEIterator", 1851);
+ bcb(410, 1851, jie, p4d);
+ _.pl = function q4d() {
+ var a, b, c;
+ c = this.e.i;
+ a = BD(this.e.g, 119);
+ while (this.c < c) {
+ b = a[this.c];
+ if (this.k.rl(b.ak())) {
+ this.j = this.f ? b : b.dd();
+ this.i = 2;
+ return true;
+ }
+ ++this.c;
+ }
+ this.i = 1;
+ this.g = -1;
+ return false;
+ };
+ _.ql = function r4d() {
+ var a, b;
+ a = BD(this.e.g, 119);
+ while (--this.c >= 0) {
+ b = a[this.c];
+ if (this.k.rl(b.ak())) {
+ this.j = this.f ? b : b.dd();
+ this.i = -2;
+ return true;
+ }
+ }
+ this.i = -1;
+ this.g = -1;
+ return false;
+ };
+ mdb(yve, "BasicFeatureMap/FeatureEIterator", 410);
+ bcb(662, 410, jie, s4d);
+ _.Lk = function t4d() {
+ return true;
+ };
+ mdb(yve, "BasicFeatureMap/ResolvingFeatureEIterator", 662);
+ bcb(955, 486, Vve, u4d);
+ _.Gi = function v4d() {
+ return this;
+ };
+ mdb(yve, "EContentsEList/1", 955);
+ bcb(956, 486, Vve, w4d);
+ _.Lk = function x4d() {
+ return false;
+ };
+ mdb(yve, "EContentsEList/2", 956);
+ bcb(954, 279, Wve, y4d);
+ _.Nk = function z4d(a) {
+ };
+ _.Ob = function A4d() {
+ return false;
+ };
+ _.Sb = function B4d() {
+ return false;
+ };
+ mdb(yve, "EContentsEList/FeatureIteratorImpl/1", 954);
+ bcb(825, 585, Pve, C4d);
+ _.ci = function D4d() {
+ this.a = true;
+ };
+ _.fj = function E4d() {
+ return this.a;
+ };
+ _.Xj = function F4d() {
+ var a;
+ Uxd(this);
+ if (oid(this.e)) {
+ a = this.a;
+ this.a = false;
+ Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
+ } else {
+ this.a = false;
+ }
+ };
+ _.a = false;
+ mdb(yve, "EDataTypeEList/Unsettable", 825);
+ bcb(1849, 585, Pve, G4d);
+ _.hi = function H4d() {
+ return true;
+ };
+ mdb(yve, "EDataTypeUniqueEList", 1849);
+ bcb(1850, 825, Pve, I4d);
+ _.hi = function J4d() {
+ return true;
+ };
+ mdb(yve, "EDataTypeUniqueEList/Unsettable", 1850);
+ bcb(139, 85, Pve, K4d);
+ _.Ek = function L4d() {
+ return true;
+ };
+ _.li = function M4d(a, b) {
+ return ILd(this, a, BD(b, 56));
+ };
+ mdb(yve, "EObjectContainmentEList/Resolving", 139);
+ bcb(1163, 545, Pve, N4d);
+ _.Ek = function O4d() {
+ return true;
+ };
+ _.li = function P4d(a, b) {
+ return ILd(this, a, BD(b, 56));
+ };
+ mdb(yve, "EObjectContainmentEList/Unsettable/Resolving", 1163);
+ bcb(748, 16, Pve, Q4d);
+ _.ci = function R4d() {
+ this.a = true;
+ };
+ _.fj = function S4d() {
+ return this.a;
+ };
+ _.Xj = function T4d() {
+ var a;
+ Uxd(this);
+ if (oid(this.e)) {
+ a = this.a;
+ this.a = false;
+ Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
+ } else {
+ this.a = false;
+ }
+ };
+ _.a = false;
+ mdb(yve, "EObjectContainmentWithInverseEList/Unsettable", 748);
+ bcb(1173, 748, Pve, U4d);
+ _.Ek = function V4d() {
+ return true;
+ };
+ _.li = function W4d(a, b) {
+ return ILd(this, a, BD(b, 56));
+ };
+ mdb(yve, "EObjectContainmentWithInverseEList/Unsettable/Resolving", 1173);
+ bcb(743, 496, Pve, X4d);
+ _.ci = function Y4d() {
+ this.a = true;
+ };
+ _.fj = function Z4d() {
+ return this.a;
+ };
+ _.Xj = function $4d() {
+ var a;
+ Uxd(this);
+ if (oid(this.e)) {
+ a = this.a;
+ this.a = false;
+ Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
+ } else {
+ this.a = false;
+ }
+ };
+ _.a = false;
+ mdb(yve, "EObjectEList/Unsettable", 743);
+ bcb(328, 496, Pve, _4d);
+ _.Ek = function a5d() {
+ return true;
+ };
+ _.li = function b5d(a, b) {
+ return ILd(this, a, BD(b, 56));
+ };
+ mdb(yve, "EObjectResolvingEList", 328);
+ bcb(1641, 743, Pve, c5d);
+ _.Ek = function d5d() {
+ return true;
+ };
+ _.li = function e5d(a, b) {
+ return ILd(this, a, BD(b, 56));
+ };
+ mdb(yve, "EObjectResolvingEList/Unsettable", 1641);
+ bcb(1381, 1, {}, h5d);
+ var f5d;
+ mdb(yve, "EObjectValidator", 1381);
+ bcb(546, 496, Pve, i5d);
+ _.zk = function j5d() {
+ return this.d;
+ };
+ _.Ak = function k5d() {
+ return this.b;
+ };
+ _.bj = function l5d() {
+ return true;
+ };
+ _.Dk = function m5d() {
+ return true;
+ };
+ _.b = 0;
+ mdb(yve, "EObjectWithInverseEList", 546);
+ bcb(1176, 546, Pve, n5d);
+ _.Ck = function o5d() {
+ return true;
+ };
+ mdb(yve, "EObjectWithInverseEList/ManyInverse", 1176);
+ bcb(625, 546, Pve, p5d);
+ _.ci = function q5d() {
+ this.a = true;
+ };
+ _.fj = function r5d() {
+ return this.a;
+ };
+ _.Xj = function s5d() {
+ var a;
+ Uxd(this);
+ if (oid(this.e)) {
+ a = this.a;
+ this.a = false;
+ Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
+ } else {
+ this.a = false;
+ }
+ };
+ _.a = false;
+ mdb(yve, "EObjectWithInverseEList/Unsettable", 625);
+ bcb(1175, 625, Pve, t5d);
+ _.Ck = function u5d() {
+ return true;
+ };
+ mdb(yve, "EObjectWithInverseEList/Unsettable/ManyInverse", 1175);
+ bcb(749, 546, Pve, v5d);
+ _.Ek = function w5d() {
+ return true;
+ };
+ _.li = function x5d(a, b) {
+ return ILd(this, a, BD(b, 56));
+ };
+ mdb(yve, "EObjectWithInverseResolvingEList", 749);
+ bcb(31, 749, Pve, y5d);
+ _.Ck = function z5d() {
+ return true;
+ };
+ mdb(yve, "EObjectWithInverseResolvingEList/ManyInverse", 31);
+ bcb(750, 625, Pve, A5d);
+ _.Ek = function B5d() {
+ return true;
+ };
+ _.li = function C5d(a, b) {
+ return ILd(this, a, BD(b, 56));
+ };
+ mdb(yve, "EObjectWithInverseResolvingEList/Unsettable", 750);
+ bcb(1174, 750, Pve, D5d);
+ _.Ck = function E5d() {
+ return true;
+ };
+ mdb(yve, "EObjectWithInverseResolvingEList/Unsettable/ManyInverse", 1174);
+ bcb(1164, 622, Pve);
+ _.ai = function F5d() {
+ return (this.b & 1792) == 0;
+ };
+ _.ci = function G5d() {
+ this.b |= 1;
+ };
+ _.Bk = function H5d() {
+ return (this.b & 4) != 0;
+ };
+ _.bj = function I5d() {
+ return (this.b & 40) != 0;
+ };
+ _.Ck = function J5d() {
+ return (this.b & 16) != 0;
+ };
+ _.Dk = function K5d() {
+ return (this.b & 8) != 0;
+ };
+ _.Ek = function L5d() {
+ return (this.b & Dve) != 0;
+ };
+ _.rk = function M5d() {
+ return (this.b & 32) != 0;
+ };
+ _.Fk = function N5d() {
+ return (this.b & zte) != 0;
+ };
+ _.wj = function O5d(a) {
+ return !this.d ? this.ak().Yj().wj(a) : qEd(this.d, a);
+ };
+ _.fj = function P5d() {
+ return (this.b & 2) != 0 ? (this.b & 1) != 0 : this.i != 0;
+ };
+ _.hi = function Q5d() {
+ return (this.b & 128) != 0;
+ };
+ _.Xj = function S5d() {
+ var a;
+ Uxd(this);
+ if ((this.b & 2) != 0) {
+ if (oid(this.e)) {
+ a = (this.b & 1) != 0;
+ this.b &= -2;
+ GLd(this, new qSd(this.e, 2, bLd(this.e.Tg(), this.ak()), a, false));
+ } else {
+ this.b &= -2;
+ }
+ }
+ };
+ _.ni = function T5d() {
+ return (this.b & 1536) == 0;
+ };
+ _.b = 0;
+ mdb(yve, "EcoreEList/Generic", 1164);
+ bcb(1165, 1164, Pve, U5d);
+ _.ak = function V5d() {
+ return this.a;
+ };
+ mdb(yve, "EcoreEList/Dynamic", 1165);
+ bcb(747, 63, oue, W5d);
+ _.ri = function X5d(a) {
+ return izd(this.a.a, a);
+ };
+ mdb(yve, "EcoreEMap/1", 747);
+ bcb(746, 85, Pve, Y5d);
+ _.bi = function Z5d(a, b) {
+ uAd(this.b, BD(b, 133));
+ };
+ _.di = function $5d(a, b) {
+ tAd(this.b);
+ };
+ _.ei = function _5d(a, b, c) {
+ var d;
+ ++(d = this.b, BD(b, 133), d).e;
+ };
+ _.fi = function a6d(a, b) {
+ vAd(this.b, BD(b, 133));
+ };
+ _.gi = function b6d(a, b, c) {
+ vAd(this.b, BD(c, 133));
+ PD(c) === PD(b) && BD(c, 133).Th(CAd(BD(b, 133).cd()));
+ uAd(this.b, BD(b, 133));
+ };
+ mdb(yve, "EcoreEMap/DelegateEObjectContainmentEList", 746);
+ bcb(1171, 151, Ave, c6d);
+ mdb(yve, "EcoreEMap/Unsettable", 1171);
+ bcb(1172, 746, Pve, d6d);
+ _.ci = function e6d() {
+ this.a = true;
+ };
+ _.fj = function f6d() {
+ return this.a;
+ };
+ _.Xj = function g6d() {
+ var a;
+ Uxd(this);
+ if (oid(this.e)) {
+ a = this.a;
+ this.a = false;
+ Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
+ } else {
+ this.a = false;
+ }
+ };
+ _.a = false;
+ mdb(yve, "EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList", 1172);
+ bcb(1168, 228, fke, A6d);
+ _.a = false;
+ _.b = false;
+ mdb(yve, "EcoreUtil/Copier", 1168);
+ bcb(745, 1, aie, C6d);
+ _.Nb = function D6d(a) {
+ Rrb(this, a);
+ };
+ _.Ob = function E6d() {
+ return B6d(this);
+ };
+ _.Pb = function F6d() {
+ var a;
+ B6d(this);
+ a = this.b;
+ this.b = null;
+ return a;
+ };
+ _.Qb = function G6d() {
+ this.a.Qb();
+ };
+ mdb(yve, "EcoreUtil/ProperContentIterator", 745);
+ bcb(1382, 1381, {}, J6d);
+ var H6d;
+ mdb(yve, "EcoreValidator", 1382);
+ var P6d;
+ odb(yve, "FeatureMapUtil/Validator");
+ bcb(1260, 1, { 1942: 1 }, U6d);
+ _.rl = function V6d(a) {
+ return true;
+ };
+ mdb(yve, "FeatureMapUtil/1", 1260);
+ bcb(757, 1, { 1942: 1 }, Z6d);
+ _.rl = function $6d(a) {
+ var b;
+ if (this.c == a)
+ return true;
+ b = DD(Ohb(this.a, a));
+ if (b == null) {
+ if (Y6d(this, a)) {
+ _6d(this.a, a, (Bcb(), Acb));
+ return true;
+ } else {
+ _6d(this.a, a, (Bcb(), zcb));
+ return false;
+ }
+ } else {
+ return b == (Bcb(), Acb);
+ }
+ };
+ _.e = false;
+ var W6d;
+ mdb(yve, "FeatureMapUtil/BasicValidator", 757);
+ bcb(758, 43, fke, a7d);
+ mdb(yve, "FeatureMapUtil/BasicValidator/Cache", 758);
+ bcb(501, 52, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, f7d);
+ _.Vc = function g7d(a, b) {
+ p2d(this.c, this.b, a, b);
+ };
+ _.Fc = function h7d(a) {
+ return q2d(this.c, this.b, a);
+ };
+ _.Wc = function i7d(a, b) {
+ return s2d(this.c, this.b, a, b);
+ };
+ _.Gc = function j7d(a) {
+ return b7d(this, a);
+ };
+ _.Xh = function k7d(a, b) {
+ u2d(this.c, this.b, a, b);
+ };
+ _.lk = function l7d(a, b) {
+ return x2d(this.c, this.b, a, b);
+ };
+ _.pi = function m7d(a) {
+ return J2d(this.c, this.b, a, false);
+ };
+ _.Zh = function n7d() {
+ return y2d(this.c, this.b);
+ };
+ _.$h = function o7d() {
+ return z2d(this.c, this.b);
+ };
+ _._h = function p7d(a) {
+ return A2d(this.c, this.b, a);
+ };
+ _.mk = function q7d(a, b) {
+ return c7d(this, a, b);
+ };
+ _.$b = function r7d() {
+ d7d(this);
+ };
+ _.Hc = function s7d(a) {
+ return E2d(this.c, this.b, a);
+ };
+ _.Ic = function t7d(a) {
+ return G2d(this.c, this.b, a);
+ };
+ _.Xb = function u7d(a) {
+ return J2d(this.c, this.b, a, true);
+ };
+ _.Wj = function v7d(a) {
+ return this;
+ };
+ _.Xc = function w7d(a) {
+ return L2d(this.c, this.b, a);
+ };
+ _.dc = function x7d() {
+ return e7d(this);
+ };
+ _.fj = function y7d() {
+ return !R2d(this.c, this.b);
+ };
+ _.Kc = function z7d() {
+ return S2d(this.c, this.b);
+ };
+ _.Yc = function A7d() {
+ return U2d(this.c, this.b);
+ };
+ _.Zc = function B7d(a) {
+ return V2d(this.c, this.b, a);
+ };
+ _.ii = function C7d(a, b) {
+ return X2d(this.c, this.b, a, b);
+ };
+ _.ji = function D7d(a, b) {
+ Y2d(this.c, this.b, a, b);
+ };
+ _.$c = function E7d(a) {
+ return Z2d(this.c, this.b, a);
+ };
+ _.Mc = function F7d(a) {
+ return $2d(this.c, this.b, a);
+ };
+ _._c = function G7d(a, b) {
+ return e3d(this.c, this.b, a, b);
+ };
+ _.Wb = function H7d(a) {
+ D2d(this.c, this.b);
+ b7d(this, BD(a, 15));
+ };
+ _.gc = function I7d() {
+ return n3d(this.c, this.b);
+ };
+ _.Pc = function J7d() {
+ return o3d(this.c, this.b);
+ };
+ _.Qc = function K7d(a) {
+ return q3d(this.c, this.b, a);
+ };
+ _.Ib = function L7d() {
+ var a, b;
+ b = new Hfb();
+ b.a += "[";
+ for (a = y2d(this.c, this.b); b4d(a); ) {
+ Efb(b, xfb(d4d(a)));
+ b4d(a) && (b.a += She, b);
+ }
+ b.a += "]";
+ return b.a;
+ };
+ _.Xj = function M7d() {
+ D2d(this.c, this.b);
+ };
+ mdb(yve, "FeatureMapUtil/FeatureEList", 501);
+ bcb(627, 36, fve, O7d);
+ _.yi = function P7d(a) {
+ return N7d(this, a);
+ };
+ _.Di = function Q7d(a) {
+ var b, c, d, e, f, g, h;
+ switch (this.d) {
+ case 1:
+ case 2: {
+ f = a.Ai();
+ if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) {
+ this.g = a.zi();
+ a.xi() == 1 && (this.d = 1);
+ return true;
+ }
+ break;
+ }
+ case 3: {
+ e = a.xi();
+ switch (e) {
+ case 3: {
+ f = a.Ai();
+ if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) {
+ this.d = 5;
+ b = new zud(2);
+ wtd(b, this.g);
+ wtd(b, a.zi());
+ this.g = b;
+ return true;
+ }
+ break;
+ }
+ }
+ break;
+ }
+ case 5: {
+ e = a.xi();
+ switch (e) {
+ case 3: {
+ f = a.Ai();
+ if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) {
+ c = BD(this.g, 14);
+ c.Fc(a.zi());
+ return true;
+ }
+ break;
+ }
+ }
+ break;
+ }
+ case 4: {
+ e = a.xi();
+ switch (e) {
+ case 3: {
+ f = a.Ai();
+ if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) {
+ this.d = 1;
+ this.g = a.zi();
+ return true;
+ }
+ break;
+ }
+ case 4: {
+ f = a.Ai();
+ if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) {
+ this.d = 6;
+ h = new zud(2);
+ wtd(h, this.n);
+ wtd(h, a.Bi());
+ this.n = h;
+ g = OC(GC(WD, 1), oje, 25, 15, [this.o, a.Ci()]);
+ this.g = g;
+ return true;
+ }
+ break;
+ }
+ }
+ break;
+ }
+ case 6: {
+ e = a.xi();
+ switch (e) {
+ case 4: {
+ f = a.Ai();
+ if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) {
+ c = BD(this.n, 14);
+ c.Fc(a.Bi());
+ g = BD(this.g, 48);
+ d = KC(WD, oje, 25, g.length + 1, 15, 1);
+ $fb(g, 0, d, 0, g.length);
+ d[g.length] = a.Ci();
+ this.g = d;
+ return true;
+ }
+ break;
+ }
+ }
+ break;
+ }
+ }
+ return false;
+ };
+ mdb(yve, "FeatureMapUtil/FeatureENotificationImpl", 627);
+ bcb(552, 501, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 76: 1, 153: 1, 215: 1, 1937: 1, 69: 1, 95: 1 }, R7d);
+ _.dl = function S7d(a, b) {
+ return q2d(this.c, a, b);
+ };
+ _.el = function T7d(a, b, c) {
+ return x2d(this.c, a, b, c);
+ };
+ _.fl = function U7d(a, b, c) {
+ return C2d(this.c, a, b, c);
+ };
+ _.gl = function V7d() {
+ return this;
+ };
+ _.hl = function W7d(a, b) {
+ return K2d(this.c, a, b);
+ };
+ _.il = function X7d(a) {
+ return BD(J2d(this.c, this.b, a, false), 72).ak();
+ };
+ _.jl = function Y7d(a) {
+ return BD(J2d(this.c, this.b, a, false), 72).dd();
+ };
+ _.kl = function Z7d() {
+ return this.a;
+ };
+ _.ll = function $7d(a) {
+ return !R2d(this.c, a);
+ };
+ _.ml = function _7d(a, b) {
+ f3d(this.c, a, b);
+ };
+ _.nl = function a8d(a) {
+ return g3d(this.c, a);
+ };
+ _.ol = function b8d(a) {
+ s3d(this.c, a);
+ };
+ mdb(yve, "FeatureMapUtil/FeatureFeatureMap", 552);
+ bcb(1259, 1, zve, c8d);
+ _.Wj = function d8d(a) {
+ return J2d(this.b, this.a, -1, a);
+ };
+ _.fj = function e8d() {
+ return !R2d(this.b, this.a);
+ };
+ _.Wb = function f8d(a) {
+ f3d(this.b, this.a, a);
+ };
+ _.Xj = function g8d() {
+ D2d(this.b, this.a);
+ };
+ mdb(yve, "FeatureMapUtil/FeatureValue", 1259);
+ var h8d, i8d, j8d, k8d, l8d;
+ var Q9 = odb(Iwe, "AnyType");
+ bcb(666, 60, Tie, n8d);
+ mdb(Iwe, "InvalidDatatypeValueException", 666);
+ var S9 = odb(Iwe, Jwe);
+ var T9 = odb(Iwe, Kwe);
+ var U9 = odb(Iwe, Lwe);
+ var o8d;
+ var q8d;
+ var s8d, t8d, u8d, v8d, w8d, x8d, y8d, z8d, A8d, B8d, C8d, D8d, E8d, F8d, G8d, H8d, I8d, J8d, K8d, L8d, M8d, N8d, O8d, P8d;
+ bcb(830, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 843: 1 }, R8d);
+ _._g = function S8d(a, b, c) {
+ switch (a) {
+ case 0:
+ if (c)
+ return !this.c && (this.c = new u3d(this, 0)), this.c;
+ return !this.c && (this.c = new u3d(this, 0)), this.c.b;
+ case 1:
+ if (c)
+ return !this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153);
+ return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).kl();
+ case 2:
+ if (c)
+ return !this.b && (this.b = new u3d(this, 2)), this.b;
+ return !this.b && (this.b = new u3d(this, 2)), this.b.b;
+ }
+ return bid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c);
+ };
+ _.jh = function T8d(a, b, c) {
+ var d;
+ switch (b) {
+ case 0:
+ return !this.c && (this.c = new u3d(this, 0)), B2d(this.c, a, c);
+ case 1:
+ return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 69)).mk(a, c);
+ case 2:
+ return !this.b && (this.b = new u3d(this, 2)), B2d(this.b, a, c);
+ }
+ return d = BD(XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), b), 66), d.Nj().Rj(this, Aid(this), b - aLd(this.zh()), a, c);
+ };
+ _.lh = function U8d(a) {
+ switch (a) {
+ case 0:
+ return !!this.c && this.c.i != 0;
+ case 1:
+ return !(!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).dc();
+ case 2:
+ return !!this.b && this.b.i != 0;
+ }
+ return cid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a));
+ };
+ _.sh = function V8d(a, b) {
+ switch (a) {
+ case 0:
+ !this.c && (this.c = new u3d(this, 0));
+ d3d(this.c, b);
+ return;
+ case 1:
+ (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).Wb(b);
+ return;
+ case 2:
+ !this.b && (this.b = new u3d(this, 2));
+ d3d(this.b, b);
+ return;
+ }
+ did(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
+ };
+ _.zh = function W8d() {
+ return Q8d(), s8d;
+ };
+ _.Bh = function X8d(a) {
+ switch (a) {
+ case 0:
+ !this.c && (this.c = new u3d(this, 0));
+ Uxd(this.c);
+ return;
+ case 1:
+ (!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).$b();
+ return;
+ case 2:
+ !this.b && (this.b = new u3d(this, 2));
+ Uxd(this.b);
+ return;
+ }
+ eid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a));
+ };
+ _.Ib = function Y8d() {
+ var a;
+ if ((this.j & 4) != 0)
+ return Eid(this);
+ a = new Jfb(Eid(this));
+ a.a += " (mixed: ";
+ Dfb(a, this.c);
+ a.a += ", anyAttribute: ";
+ Dfb(a, this.b);
+ a.a += ")";
+ return a.a;
+ };
+ mdb(Mwe, "AnyTypeImpl", 830);
+ bcb(667, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 2021: 1, 667: 1 }, _8d);
+ _._g = function a9d(a, b, c) {
+ switch (a) {
+ case 0:
+ return this.a;
+ case 1:
+ return this.b;
+ }
+ return bid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c);
+ };
+ _.lh = function b9d(a) {
+ switch (a) {
+ case 0:
+ return this.a != null;
+ case 1:
+ return this.b != null;
+ }
+ return cid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
+ };
+ _.sh = function c9d(a, b) {
+ switch (a) {
+ case 0:
+ Z8d(this, GD(b));
+ return;
+ case 1:
+ $8d(this, GD(b));
+ return;
+ }
+ did(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
+ };
+ _.zh = function d9d() {
+ return Q8d(), F8d;
+ };
+ _.Bh = function e9d(a) {
+ switch (a) {
+ case 0:
+ this.a = null;
+ return;
+ case 1:
+ this.b = null;
+ return;
+ }
+ eid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
+ };
+ _.Ib = function f9d() {
+ var a;
+ if ((this.j & 4) != 0)
+ return Eid(this);
+ a = new Jfb(Eid(this));
+ a.a += " (data: ";
+ Efb(a, this.a);
+ a.a += ", target: ";
+ Efb(a, this.b);
+ a.a += ")";
+ return a.a;
+ };
+ _.a = null;
+ _.b = null;
+ mdb(Mwe, "ProcessingInstructionImpl", 667);
+ bcb(668, 830, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 843: 1, 2022: 1, 668: 1 }, i9d);
+ _._g = function j9d(a, b, c) {
+ switch (a) {
+ case 0:
+ if (c)
+ return !this.c && (this.c = new u3d(this, 0)), this.c;
+ return !this.c && (this.c = new u3d(this, 0)), this.c.b;
+ case 1:
+ if (c)
+ return !this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153);
+ return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).kl();
+ case 2:
+ if (c)
+ return !this.b && (this.b = new u3d(this, 2)), this.b;
+ return !this.b && (this.b = new u3d(this, 2)), this.b.b;
+ case 3:
+ return !this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true));
+ case 4:
+ return j6d(this.a, (!this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true))));
+ case 5:
+ return this.a;
+ }
+ return bid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c);
+ };
+ _.lh = function k9d(a) {
+ switch (a) {
+ case 0:
+ return !!this.c && this.c.i != 0;
+ case 1:
+ return !(!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).dc();
+ case 2:
+ return !!this.b && this.b.i != 0;
+ case 3:
+ return !this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true)) != null;
+ case 4:
+ return j6d(this.a, (!this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true)))) != null;
+ case 5:
+ return !!this.a;
+ }
+ return cid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
+ };
+ _.sh = function l9d(a, b) {
+ switch (a) {
+ case 0:
+ !this.c && (this.c = new u3d(this, 0));
+ d3d(this.c, b);
+ return;
+ case 1:
+ (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).Wb(b);
+ return;
+ case 2:
+ !this.b && (this.b = new u3d(this, 2));
+ d3d(this.b, b);
+ return;
+ case 3:
+ h9d(this, GD(b));
+ return;
+ case 4:
+ h9d(this, h6d(this.a, b));
+ return;
+ case 5:
+ g9d(this, BD(b, 148));
+ return;
+ }
+ did(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
+ };
+ _.zh = function m9d() {
+ return Q8d(), H8d;
+ };
+ _.Bh = function n9d(a) {
+ switch (a) {
+ case 0:
+ !this.c && (this.c = new u3d(this, 0));
+ Uxd(this.c);
+ return;
+ case 1:
+ (!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).$b();
+ return;
+ case 2:
+ !this.b && (this.b = new u3d(this, 2));
+ Uxd(this.b);
+ return;
+ case 3:
+ !this.c && (this.c = new u3d(this, 0));
+ f3d(this.c, (Q8d(), I8d), null);
+ return;
+ case 4:
+ h9d(this, h6d(this.a, null));
+ return;
+ case 5:
+ this.a = null;
+ return;
+ }
+ eid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
+ };
+ mdb(Mwe, "SimpleAnyTypeImpl", 668);
+ bcb(669, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 2023: 1, 669: 1 }, o9d);
+ _._g = function p9d(a, b, c) {
+ switch (a) {
+ case 0:
+ if (c)
+ return !this.a && (this.a = new u3d(this, 0)), this.a;
+ return !this.a && (this.a = new u3d(this, 0)), this.a.b;
+ case 1:
+ return c ? (!this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), this.b) : (!this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), FAd(this.b));
+ case 2:
+ return c ? (!this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), this.c) : (!this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), FAd(this.c));
+ case 3:
+ return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), L8d));
+ case 4:
+ return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), M8d));
+ case 5:
+ return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), O8d));
+ case 6:
+ return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), P8d));
+ }
+ return bid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c);
+ };
+ _.jh = function q9d(a, b, c) {
+ var d;
+ switch (b) {
+ case 0:
+ return !this.a && (this.a = new u3d(this, 0)), B2d(this.a, a, c);
+ case 1:
+ return !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), bId(this.b, a, c);
+ case 2:
+ return !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), bId(this.c, a, c);
+ case 5:
+ return !this.a && (this.a = new u3d(this, 0)), c7d(T2d(this.a, (Q8d(), O8d)), a, c);
+ }
+ return d = BD(XKd((this.j & 2) == 0 ? (Q8d(), K8d) : (!this.k && (this.k = new HGd()), this.k).ck(), b), 66), d.Nj().Rj(this, Aid(this), b - aLd((Q8d(), K8d)), a, c);
+ };
+ _.lh = function r9d(a) {
+ switch (a) {
+ case 0:
+ return !!this.a && this.a.i != 0;
+ case 1:
+ return !!this.b && this.b.f != 0;
+ case 2:
+ return !!this.c && this.c.f != 0;
+ case 3:
+ return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), L8d)));
+ case 4:
+ return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), M8d)));
+ case 5:
+ return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), O8d)));
+ case 6:
+ return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), P8d)));
+ }
+ return cid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
+ };
+ _.sh = function s9d(a, b) {
+ switch (a) {
+ case 0:
+ !this.a && (this.a = new u3d(this, 0));
+ d3d(this.a, b);
+ return;
+ case 1:
+ !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1));
+ cId(this.b, b);
+ return;
+ case 2:
+ !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2));
+ cId(this.c, b);
+ return;
+ case 3:
+ !this.a && (this.a = new u3d(this, 0));
+ d7d(T2d(this.a, (Q8d(), L8d)));
+ !this.a && (this.a = new u3d(this, 0));
+ b7d(T2d(this.a, L8d), BD(b, 14));
+ return;
+ case 4:
+ !this.a && (this.a = new u3d(this, 0));
+ d7d(T2d(this.a, (Q8d(), M8d)));
+ !this.a && (this.a = new u3d(this, 0));
+ b7d(T2d(this.a, M8d), BD(b, 14));
+ return;
+ case 5:
+ !this.a && (this.a = new u3d(this, 0));
+ d7d(T2d(this.a, (Q8d(), O8d)));
+ !this.a && (this.a = new u3d(this, 0));
+ b7d(T2d(this.a, O8d), BD(b, 14));
+ return;
+ case 6:
+ !this.a && (this.a = new u3d(this, 0));
+ d7d(T2d(this.a, (Q8d(), P8d)));
+ !this.a && (this.a = new u3d(this, 0));
+ b7d(T2d(this.a, P8d), BD(b, 14));
+ return;
+ }
+ did(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
+ };
+ _.zh = function t9d() {
+ return Q8d(), K8d;
+ };
+ _.Bh = function u9d(a) {
+ switch (a) {
+ case 0:
+ !this.a && (this.a = new u3d(this, 0));
+ Uxd(this.a);
+ return;
+ case 1:
+ !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1));
+ this.b.c.$b();
+ return;
+ case 2:
+ !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2));
+ this.c.c.$b();
+ return;
+ case 3:
+ !this.a && (this.a = new u3d(this, 0));
+ d7d(T2d(this.a, (Q8d(), L8d)));
+ return;
+ case 4:
+ !this.a && (this.a = new u3d(this, 0));
+ d7d(T2d(this.a, (Q8d(), M8d)));
+ return;
+ case 5:
+ !this.a && (this.a = new u3d(this, 0));
+ d7d(T2d(this.a, (Q8d(), O8d)));
+ return;
+ case 6:
+ !this.a && (this.a = new u3d(this, 0));
+ d7d(T2d(this.a, (Q8d(), P8d)));
+ return;
+ }
+ eid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
+ };
+ _.Ib = function v9d() {
+ var a;
+ if ((this.j & 4) != 0)
+ return Eid(this);
+ a = new Jfb(Eid(this));
+ a.a += " (mixed: ";
+ Dfb(a, this.a);
+ a.a += ")";
+ return a.a;
+ };
+ mdb(Mwe, "XMLTypeDocumentRootImpl", 669);
+ bcb(1919, 704, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1, 2024: 1 }, U9d);
+ _.Ih = function V9d(a, b) {
+ switch (a.yj()) {
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 16:
+ case 22:
+ case 23:
+ case 24:
+ case 25:
+ case 26:
+ case 32:
+ case 33:
+ case 34:
+ case 36:
+ case 37:
+ case 44:
+ case 45:
+ case 50:
+ case 51:
+ case 53:
+ case 55:
+ case 56:
+ case 57:
+ case 58:
+ case 60:
+ case 61:
+ case 4:
+ return b == null ? null : fcb(b);
+ case 19:
+ case 28:
+ case 29:
+ case 35:
+ case 38:
+ case 39:
+ case 41:
+ case 46:
+ case 52:
+ case 54:
+ case 5:
+ return GD(b);
+ case 6:
+ return C9d(BD(b, 190));
+ case 12:
+ case 47:
+ case 49:
+ case 11:
+ return Vmd(this, a, b);
+ case 13:
+ return b == null ? null : qgb(BD(b, 240));
+ case 15:
+ case 14:
+ return b == null ? null : D9d(Edb(ED(b)));
+ case 17:
+ return E9d((Q8d(), b));
+ case 18:
+ return E9d(b);
+ case 21:
+ case 20:
+ return b == null ? null : F9d(BD(b, 155).a);
+ case 27:
+ return G9d(BD(b, 190));
+ case 30:
+ return H9d((Q8d(), BD(b, 15)));
+ case 31:
+ return H9d(BD(b, 15));
+ case 40:
+ return K9d((Q8d(), b));
+ case 42:
+ return I9d((Q8d(), b));
+ case 43:
+ return I9d(b);
+ case 59:
+ case 48:
+ return J9d((Q8d(), b));
+ default:
+ throw vbb(new Wdb(tte + a.ne() + ute));
+ }
+ };
+ _.Jh = function W9d(a) {
+ var b, c, d, e, f;
+ switch (a.G == -1 && (a.G = (c = bKd(a), c ? HLd(c.Mh(), a) : -1)), a.G) {
+ case 0:
+ return b = new R8d(), b;
+ case 1:
+ return d = new _8d(), d;
+ case 2:
+ return e = new i9d(), e;
+ case 3:
+ return f = new o9d(), f;
+ default:
+ throw vbb(new Wdb(xte + a.zb + ute));
+ }
+ };
+ _.Kh = function X9d(a, b) {
+ var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r;
+ switch (a.yj()) {
+ case 5:
+ case 52:
+ case 4:
+ return b;
+ case 6:
+ return L9d(b);
+ case 8:
+ case 7:
+ return b == null ? null : B9d(b);
+ case 9:
+ return b == null ? null : Scb(Icb((d = Qge(b, true), d.length > 0 && (BCb(0, d.length), d.charCodeAt(0) == 43) ? d.substr(1) : d), -128, 127) << 24 >> 24);
+ case 10:
+ return b == null ? null : Scb(Icb((e = Qge(b, true), e.length > 0 && (BCb(0, e.length), e.charCodeAt(0) == 43) ? e.substr(1) : e), -128, 127) << 24 >> 24);
+ case 11:
+ return GD(Wmd(this, (Q8d(), w8d), b));
+ case 12:
+ return GD(Wmd(this, (Q8d(), x8d), b));
+ case 13:
+ return b == null ? null : new tgb(Qge(b, true));
+ case 15:
+ case 14:
+ return M9d(b);
+ case 16:
+ return GD(Wmd(this, (Q8d(), y8d), b));
+ case 17:
+ return N9d((Q8d(), b));
+ case 18:
+ return N9d(b);
+ case 28:
+ case 29:
+ case 35:
+ case 38:
+ case 39:
+ case 41:
+ case 54:
+ case 19:
+ return Qge(b, true);
+ case 21:
+ case 20:
+ return O9d(b);
+ case 22:
+ return GD(Wmd(this, (Q8d(), z8d), b));
+ case 23:
+ return GD(Wmd(this, (Q8d(), A8d), b));
+ case 24:
+ return GD(Wmd(this, (Q8d(), B8d), b));
+ case 25:
+ return GD(Wmd(this, (Q8d(), C8d), b));
+ case 26:
+ return GD(Wmd(this, (Q8d(), D8d), b));
+ case 27:
+ return P9d(b);
+ case 30:
+ return Q9d((Q8d(), b));
+ case 31:
+ return Q9d(b);
+ case 32:
+ return b == null ? null : meb(Icb((k = Qge(b, true), k.length > 0 && (BCb(0, k.length), k.charCodeAt(0) == 43) ? k.substr(1) : k), Rie, Ohe));
+ case 33:
+ return b == null ? null : new Ygb((l = Qge(b, true), l.length > 0 && (BCb(0, l.length), l.charCodeAt(0) == 43) ? l.substr(1) : l));
+ case 34:
+ return b == null ? null : meb(Icb((m = Qge(b, true), m.length > 0 && (BCb(0, m.length), m.charCodeAt(0) == 43) ? m.substr(1) : m), Rie, Ohe));
+ case 36:
+ return b == null ? null : Aeb(Jcb((n = Qge(b, true), n.length > 0 && (BCb(0, n.length), n.charCodeAt(0) == 43) ? n.substr(1) : n)));
+ case 37:
+ return b == null ? null : Aeb(Jcb((o2 = Qge(b, true), o2.length > 0 && (BCb(0, o2.length), o2.charCodeAt(0) == 43) ? o2.substr(1) : o2)));
+ case 40:
+ return T9d((Q8d(), b));
+ case 42:
+ return R9d((Q8d(), b));
+ case 43:
+ return R9d(b);
+ case 44:
+ return b == null ? null : new Ygb((p = Qge(b, true), p.length > 0 && (BCb(0, p.length), p.charCodeAt(0) == 43) ? p.substr(1) : p));
+ case 45:
+ return b == null ? null : new Ygb((q = Qge(b, true), q.length > 0 && (BCb(0, q.length), q.charCodeAt(0) == 43) ? q.substr(1) : q));
+ case 46:
+ return Qge(b, false);
+ case 47:
+ return GD(Wmd(this, (Q8d(), E8d), b));
+ case 59:
+ case 48:
+ return S9d((Q8d(), b));
+ case 49:
+ return GD(Wmd(this, (Q8d(), G8d), b));
+ case 50:
+ return b == null ? null : Web(Icb((r = Qge(b, true), r.length > 0 && (BCb(0, r.length), r.charCodeAt(0) == 43) ? r.substr(1) : r), awe, 32767) << 16 >> 16);
+ case 51:
+ return b == null ? null : Web(Icb((f = Qge(b, true), f.length > 0 && (BCb(0, f.length), f.charCodeAt(0) == 43) ? f.substr(1) : f), awe, 32767) << 16 >> 16);
+ case 53:
+ return GD(Wmd(this, (Q8d(), J8d), b));
+ case 55:
+ return b == null ? null : Web(Icb((g = Qge(b, true), g.length > 0 && (BCb(0, g.length), g.charCodeAt(0) == 43) ? g.substr(1) : g), awe, 32767) << 16 >> 16);
+ case 56:
+ return b == null ? null : Web(Icb((h = Qge(b, true), h.length > 0 && (BCb(0, h.length), h.charCodeAt(0) == 43) ? h.substr(1) : h), awe, 32767) << 16 >> 16);
+ case 57:
+ return b == null ? null : Aeb(Jcb((i = Qge(b, true), i.length > 0 && (BCb(0, i.length), i.charCodeAt(0) == 43) ? i.substr(1) : i)));
+ case 58:
+ return b == null ? null : Aeb(Jcb((j = Qge(b, true), j.length > 0 && (BCb(0, j.length), j.charCodeAt(0) == 43) ? j.substr(1) : j)));
+ case 60:
+ return b == null ? null : meb(Icb((c = Qge(b, true), c.length > 0 && (BCb(0, c.length), c.charCodeAt(0) == 43) ? c.substr(1) : c), Rie, Ohe));
+ case 61:
+ return b == null ? null : meb(Icb(Qge(b, true), Rie, Ohe));
+ default:
+ throw vbb(new Wdb(tte + a.ne() + ute));
+ }
+ };
+ var w9d, x9d, y9d, z9d;
+ mdb(Mwe, "XMLTypeFactoryImpl", 1919);
+ bcb(586, 179, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1, 1945: 1, 586: 1 }, cae);
+ _.N = false;
+ _.O = false;
+ var Z9d = false;
+ mdb(Mwe, "XMLTypePackageImpl", 586);
+ bcb(1852, 1, { 837: 1 }, fae);
+ _._j = function gae() {
+ return Uge(), Tge;
+ };
+ mdb(Mwe, "XMLTypePackageImpl/1", 1852);
+ bcb(1861, 1, nwe, hae);
+ _.wj = function iae(a) {
+ return ND(a);
+ };
+ _.xj = function jae(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/10", 1861);
+ bcb(1862, 1, nwe, kae);
+ _.wj = function lae(a) {
+ return ND(a);
+ };
+ _.xj = function mae(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/11", 1862);
+ bcb(1863, 1, nwe, nae);
+ _.wj = function oae(a) {
+ return ND(a);
+ };
+ _.xj = function pae(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/12", 1863);
+ bcb(1864, 1, nwe, qae);
+ _.wj = function rae(a) {
+ return LD(a);
+ };
+ _.xj = function sae(a) {
+ return KC(BI, nie, 333, a, 7, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/13", 1864);
+ bcb(1865, 1, nwe, tae);
+ _.wj = function uae(a) {
+ return ND(a);
+ };
+ _.xj = function vae(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/14", 1865);
+ bcb(1866, 1, nwe, wae);
+ _.wj = function xae(a) {
+ return JD(a, 15);
+ };
+ _.xj = function yae(a) {
+ return KC(yK, eme, 15, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/15", 1866);
+ bcb(1867, 1, nwe, zae);
+ _.wj = function Aae(a) {
+ return JD(a, 15);
+ };
+ _.xj = function Bae(a) {
+ return KC(yK, eme, 15, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/16", 1867);
+ bcb(1868, 1, nwe, Cae);
+ _.wj = function Dae(a) {
+ return ND(a);
+ };
+ _.xj = function Eae(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/17", 1868);
+ bcb(1869, 1, nwe, Fae);
+ _.wj = function Gae(a) {
+ return JD(a, 155);
+ };
+ _.xj = function Hae(a) {
+ return KC(FI, nie, 155, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/18", 1869);
+ bcb(1870, 1, nwe, Iae);
+ _.wj = function Jae(a) {
+ return ND(a);
+ };
+ _.xj = function Kae(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/19", 1870);
+ bcb(1853, 1, nwe, Lae);
+ _.wj = function Mae(a) {
+ return JD(a, 843);
+ };
+ _.xj = function Nae(a) {
+ return KC(Q9, Uhe, 843, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/2", 1853);
+ bcb(1871, 1, nwe, Oae);
+ _.wj = function Pae(a) {
+ return ND(a);
+ };
+ _.xj = function Qae(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/20", 1871);
+ bcb(1872, 1, nwe, Rae);
+ _.wj = function Sae(a) {
+ return ND(a);
+ };
+ _.xj = function Tae(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/21", 1872);
+ bcb(1873, 1, nwe, Uae);
+ _.wj = function Vae(a) {
+ return ND(a);
+ };
+ _.xj = function Wae(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/22", 1873);
+ bcb(1874, 1, nwe, Xae);
+ _.wj = function Yae(a) {
+ return ND(a);
+ };
+ _.xj = function Zae(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/23", 1874);
+ bcb(1875, 1, nwe, $ae);
+ _.wj = function _ae(a) {
+ return JD(a, 190);
+ };
+ _.xj = function abe(a) {
+ return KC(SD, nie, 190, a, 0, 2);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/24", 1875);
+ bcb(1876, 1, nwe, bbe);
+ _.wj = function cbe(a) {
+ return ND(a);
+ };
+ _.xj = function dbe(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/25", 1876);
+ bcb(1877, 1, nwe, ebe);
+ _.wj = function fbe(a) {
+ return ND(a);
+ };
+ _.xj = function gbe(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/26", 1877);
+ bcb(1878, 1, nwe, hbe);
+ _.wj = function ibe(a) {
+ return JD(a, 15);
+ };
+ _.xj = function jbe(a) {
+ return KC(yK, eme, 15, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/27", 1878);
+ bcb(1879, 1, nwe, kbe);
+ _.wj = function lbe(a) {
+ return JD(a, 15);
+ };
+ _.xj = function mbe(a) {
+ return KC(yK, eme, 15, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/28", 1879);
+ bcb(1880, 1, nwe, nbe);
+ _.wj = function obe(a) {
+ return ND(a);
+ };
+ _.xj = function pbe(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/29", 1880);
+ bcb(1854, 1, nwe, qbe);
+ _.wj = function rbe(a) {
+ return JD(a, 667);
+ };
+ _.xj = function sbe(a) {
+ return KC(S9, Uhe, 2021, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/3", 1854);
+ bcb(1881, 1, nwe, tbe);
+ _.wj = function ube(a) {
+ return JD(a, 19);
+ };
+ _.xj = function vbe(a) {
+ return KC(JI, nie, 19, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/30", 1881);
+ bcb(1882, 1, nwe, wbe);
+ _.wj = function xbe(a) {
+ return ND(a);
+ };
+ _.xj = function ybe(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/31", 1882);
+ bcb(1883, 1, nwe, zbe);
+ _.wj = function Abe(a) {
+ return JD(a, 162);
+ };
+ _.xj = function Bbe(a) {
+ return KC(MI, nie, 162, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/32", 1883);
+ bcb(1884, 1, nwe, Cbe);
+ _.wj = function Dbe(a) {
+ return ND(a);
+ };
+ _.xj = function Ebe(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/33", 1884);
+ bcb(1885, 1, nwe, Fbe);
+ _.wj = function Gbe(a) {
+ return ND(a);
+ };
+ _.xj = function Hbe(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/34", 1885);
+ bcb(1886, 1, nwe, Ibe);
+ _.wj = function Jbe(a) {
+ return ND(a);
+ };
+ _.xj = function Kbe(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/35", 1886);
+ bcb(1887, 1, nwe, Lbe);
+ _.wj = function Mbe(a) {
+ return ND(a);
+ };
+ _.xj = function Nbe(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/36", 1887);
+ bcb(1888, 1, nwe, Obe);
+ _.wj = function Pbe(a) {
+ return JD(a, 15);
+ };
+ _.xj = function Qbe(a) {
+ return KC(yK, eme, 15, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/37", 1888);
+ bcb(1889, 1, nwe, Rbe);
+ _.wj = function Sbe(a) {
+ return JD(a, 15);
+ };
+ _.xj = function Tbe(a) {
+ return KC(yK, eme, 15, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/38", 1889);
+ bcb(1890, 1, nwe, Ube);
+ _.wj = function Vbe(a) {
+ return ND(a);
+ };
+ _.xj = function Wbe(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/39", 1890);
+ bcb(1855, 1, nwe, Xbe);
+ _.wj = function Ybe(a) {
+ return JD(a, 668);
+ };
+ _.xj = function Zbe(a) {
+ return KC(T9, Uhe, 2022, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/4", 1855);
+ bcb(1891, 1, nwe, $be);
+ _.wj = function _be(a) {
+ return ND(a);
+ };
+ _.xj = function ace(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/40", 1891);
+ bcb(1892, 1, nwe, bce);
+ _.wj = function cce(a) {
+ return ND(a);
+ };
+ _.xj = function dce(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/41", 1892);
+ bcb(1893, 1, nwe, ece);
+ _.wj = function fce(a) {
+ return ND(a);
+ };
+ _.xj = function gce(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/42", 1893);
+ bcb(1894, 1, nwe, hce);
+ _.wj = function ice(a) {
+ return ND(a);
+ };
+ _.xj = function jce(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/43", 1894);
+ bcb(1895, 1, nwe, kce);
+ _.wj = function lce(a) {
+ return ND(a);
+ };
+ _.xj = function mce(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/44", 1895);
+ bcb(1896, 1, nwe, nce);
+ _.wj = function oce(a) {
+ return JD(a, 184);
+ };
+ _.xj = function pce(a) {
+ return KC(UI, nie, 184, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/45", 1896);
+ bcb(1897, 1, nwe, qce);
+ _.wj = function rce(a) {
+ return ND(a);
+ };
+ _.xj = function sce(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/46", 1897);
+ bcb(1898, 1, nwe, tce);
+ _.wj = function uce(a) {
+ return ND(a);
+ };
+ _.xj = function vce(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/47", 1898);
+ bcb(1899, 1, nwe, wce);
+ _.wj = function xce(a) {
+ return ND(a);
+ };
+ _.xj = function yce(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/48", 1899);
+ bcb(nje, 1, nwe, zce);
+ _.wj = function Ace(a) {
+ return JD(a, 184);
+ };
+ _.xj = function Bce(a) {
+ return KC(UI, nie, 184, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/49", nje);
+ bcb(1856, 1, nwe, Cce);
+ _.wj = function Dce(a) {
+ return JD(a, 669);
+ };
+ _.xj = function Ece(a) {
+ return KC(U9, Uhe, 2023, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/5", 1856);
+ bcb(1901, 1, nwe, Fce);
+ _.wj = function Gce(a) {
+ return JD(a, 162);
+ };
+ _.xj = function Hce(a) {
+ return KC(MI, nie, 162, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/50", 1901);
+ bcb(1902, 1, nwe, Ice);
+ _.wj = function Jce(a) {
+ return ND(a);
+ };
+ _.xj = function Kce(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/51", 1902);
+ bcb(1903, 1, nwe, Lce);
+ _.wj = function Mce(a) {
+ return JD(a, 19);
+ };
+ _.xj = function Nce(a) {
+ return KC(JI, nie, 19, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/52", 1903);
+ bcb(1857, 1, nwe, Oce);
+ _.wj = function Pce(a) {
+ return ND(a);
+ };
+ _.xj = function Qce(a) {
+ return KC(ZI, nie, 2, a, 6, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/6", 1857);
+ bcb(1858, 1, nwe, Rce);
+ _.wj = function Sce(a) {
+ return JD(a, 190);
+ };
+ _.xj = function Tce(a) {
+ return KC(SD, nie, 190, a, 0, 2);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/7", 1858);
+ bcb(1859, 1, nwe, Uce);
+ _.wj = function Vce(a) {
+ return KD(a);
+ };
+ _.xj = function Wce(a) {
+ return KC(wI, nie, 476, a, 8, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/8", 1859);
+ bcb(1860, 1, nwe, Xce);
+ _.wj = function Yce(a) {
+ return JD(a, 217);
+ };
+ _.xj = function Zce(a) {
+ return KC(xI, nie, 217, a, 0, 1);
+ };
+ mdb(Mwe, "XMLTypePackageImpl/9", 1860);
+ var $ce, _ce;
+ var fde, gde;
+ var kde;
+ bcb(50, 60, Tie, mde);
+ mdb(kxe, "RegEx/ParseException", 50);
+ bcb(820, 1, {}, ude);
+ _.sl = function vde(a) {
+ return a < this.j && bfb(this.i, a) == 63;
+ };
+ _.tl = function wde() {
+ var a, b, c, d, e;
+ if (this.c != 10)
+ throw vbb(new mde(tvd((h0d(), uue))));
+ a = this.a;
+ switch (a) {
+ case 101:
+ a = 27;
+ break;
+ case 102:
+ a = 12;
+ break;
+ case 110:
+ a = 10;
+ break;
+ case 114:
+ a = 13;
+ break;
+ case 116:
+ a = 9;
+ break;
+ case 120:
+ nde(this);
+ if (this.c != 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ if (this.a == 123) {
+ e = 0;
+ c = 0;
+ do {
+ nde(this);
+ if (this.c != 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ if ((e = yde(this.a)) < 0)
+ break;
+ if (c > c * 16)
+ throw vbb(new mde(tvd((h0d(), Uue))));
+ c = c * 16 + e;
+ } while (true);
+ if (this.a != 125)
+ throw vbb(new mde(tvd((h0d(), Vue))));
+ if (c > lxe)
+ throw vbb(new mde(tvd((h0d(), Wue))));
+ a = c;
+ } else {
+ e = 0;
+ if (this.c != 0 || (e = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ c = e;
+ nde(this);
+ if (this.c != 0 || (e = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ c = c * 16 + e;
+ a = c;
+ }
+ break;
+ case 117:
+ d = 0;
+ nde(this);
+ if (this.c != 0 || (d = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ b = d;
+ nde(this);
+ if (this.c != 0 || (d = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ b = b * 16 + d;
+ nde(this);
+ if (this.c != 0 || (d = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ b = b * 16 + d;
+ nde(this);
+ if (this.c != 0 || (d = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ b = b * 16 + d;
+ a = b;
+ break;
+ case 118:
+ nde(this);
+ if (this.c != 0 || (d = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ b = d;
+ nde(this);
+ if (this.c != 0 || (d = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ b = b * 16 + d;
+ nde(this);
+ if (this.c != 0 || (d = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ b = b * 16 + d;
+ nde(this);
+ if (this.c != 0 || (d = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ b = b * 16 + d;
+ nde(this);
+ if (this.c != 0 || (d = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ b = b * 16 + d;
+ nde(this);
+ if (this.c != 0 || (d = yde(this.a)) < 0)
+ throw vbb(new mde(tvd((h0d(), Tue))));
+ b = b * 16 + d;
+ if (b > lxe)
+ throw vbb(new mde(tvd((h0d(), "parser.descappe.4"))));
+ a = b;
+ break;
+ case 65:
+ case 90:
+ case 122:
+ throw vbb(new mde(tvd((h0d(), Xue))));
+ }
+ return a;
+ };
+ _.ul = function xde(a) {
+ var b, c;
+ switch (a) {
+ case 100:
+ c = (this.e & 32) == 32 ? Kfe("Nd", true) : (wfe(), cfe);
+ break;
+ case 68:
+ c = (this.e & 32) == 32 ? Kfe("Nd", false) : (wfe(), jfe);
+ break;
+ case 119:
+ c = (this.e & 32) == 32 ? Kfe("IsWord", true) : (wfe(), sfe);
+ break;
+ case 87:
+ c = (this.e & 32) == 32 ? Kfe("IsWord", false) : (wfe(), lfe);
+ break;
+ case 115:
+ c = (this.e & 32) == 32 ? Kfe("IsSpace", true) : (wfe(), nfe);
+ break;
+ case 83:
+ c = (this.e & 32) == 32 ? Kfe("IsSpace", false) : (wfe(), kfe);
+ break;
+ default:
+ throw vbb(new hz((b = a, mxe + b.toString(16))));
+ }
+ return c;
+ };
+ _.vl = function zde(a) {
+ var b, c, d, e, f, g, h, i, j, k, l, m;
+ this.b = 1;
+ nde(this);
+ b = null;
+ if (this.c == 0 && this.a == 94) {
+ nde(this);
+ if (a) {
+ k = (wfe(), wfe(), new $fe(5));
+ } else {
+ b = (wfe(), wfe(), new $fe(4));
+ Ufe(b, 0, lxe);
+ k = new $fe(4);
+ }
+ } else {
+ k = (wfe(), wfe(), new $fe(4));
+ }
+ e = true;
+ while ((m = this.c) != 1) {
+ if (m == 0 && this.a == 93 && !e)
+ break;
+ e = false;
+ c = this.a;
+ d = false;
+ if (m == 10) {
+ switch (c) {
+ case 100:
+ case 68:
+ case 119:
+ case 87:
+ case 115:
+ case 83:
+ Xfe(k, this.ul(c));
+ d = true;
+ break;
+ case 105:
+ case 73:
+ case 99:
+ case 67:
+ c = this.Ll(k, c);
+ c < 0 && (d = true);
+ break;
+ case 112:
+ case 80:
+ l = tde(this, c);
+ if (!l)
+ throw vbb(new mde(tvd((h0d(), Iue))));
+ Xfe(k, l);
+ d = true;
+ break;
+ default:
+ c = this.tl();
+ }
+ } else if (m == 20) {
+ g = gfb(this.i, 58, this.d);
+ if (g < 0)
+ throw vbb(new mde(tvd((h0d(), Jue))));
+ h = true;
+ if (bfb(this.i, this.d) == 94) {
+ ++this.d;
+ h = false;
+ }
+ f = qfb(this.i, this.d, g);
+ i = Lfe(f, h, (this.e & 512) == 512);
+ if (!i)
+ throw vbb(new mde(tvd((h0d(), Lue))));
+ Xfe(k, i);
+ d = true;
+ if (g + 1 >= this.j || bfb(this.i, g + 1) != 93)
+ throw vbb(new mde(tvd((h0d(), Jue))));
+ this.d = g + 2;
+ }
+ nde(this);
+ if (!d) {
+ if (this.c != 0 || this.a != 45) {
+ Ufe(k, c, c);
+ } else {
+ nde(this);
+ if ((m = this.c) == 1)
+ throw vbb(new mde(tvd((h0d(), Kue))));
+ if (m == 0 && this.a == 93) {
+ Ufe(k, c, c);
+ Ufe(k, 45, 45);
+ } else {
+ j = this.a;
+ m == 10 && (j = this.tl());
+ nde(this);
+ Ufe(k, c, j);
+ }
+ }
+ }
+ (this.e & zte) == zte && this.c == 0 && this.a == 44 && nde(this);
+ }
+ if (this.c == 1)
+ throw vbb(new mde(tvd((h0d(), Kue))));
+ if (b) {
+ Zfe(b, k);
+ k = b;
+ }
+ Yfe(k);
+ Vfe(k);
+ this.b = 0;
+ nde(this);
+ return k;
+ };
+ _.wl = function Ade() {
+ var a, b, c, d;
+ c = this.vl(false);
+ while ((d = this.c) != 7) {
+ a = this.a;
+ if (d == 0 && (a == 45 || a == 38) || d == 4) {
+ nde(this);
+ if (this.c != 9)
+ throw vbb(new mde(tvd((h0d(), Que))));
+ b = this.vl(false);
+ if (d == 4)
+ Xfe(c, b);
+ else if (a == 45)
+ Zfe(c, b);
+ else if (a == 38)
+ Wfe(c, b);
+ else
+ throw vbb(new hz("ASSERT"));
+ } else {
+ throw vbb(new mde(tvd((h0d(), Rue))));
+ }
+ }
+ nde(this);
+ return c;
+ };
+ _.xl = function Bde() {
+ var a, b;
+ a = this.a - 48;
+ b = (wfe(), wfe(), new Hge(12, null, a));
+ !this.g && (this.g = new Wvb());
+ Tvb(this.g, new cge(a));
+ nde(this);
+ return b;
+ };
+ _.yl = function Cde() {
+ nde(this);
+ return wfe(), ofe;
+ };
+ _.zl = function Dde() {
+ nde(this);
+ return wfe(), mfe;
+ };
+ _.Al = function Ede() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Bl = function Fde() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Cl = function Gde() {
+ nde(this);
+ return Ife();
+ };
+ _.Dl = function Hde() {
+ nde(this);
+ return wfe(), qfe;
+ };
+ _.El = function Ide() {
+ nde(this);
+ return wfe(), tfe;
+ };
+ _.Fl = function Jde() {
+ var a;
+ if (this.d >= this.j || ((a = bfb(this.i, this.d++)) & 65504) != 64)
+ throw vbb(new mde(tvd((h0d(), Eue))));
+ nde(this);
+ return wfe(), wfe(), new ige(0, a - 64);
+ };
+ _.Gl = function Kde() {
+ nde(this);
+ return Jfe();
+ };
+ _.Hl = function Lde() {
+ nde(this);
+ return wfe(), ufe;
+ };
+ _.Il = function Mde() {
+ var a;
+ a = (wfe(), wfe(), new ige(0, 105));
+ nde(this);
+ return a;
+ };
+ _.Jl = function Nde() {
+ nde(this);
+ return wfe(), rfe;
+ };
+ _.Kl = function Ode() {
+ nde(this);
+ return wfe(), pfe;
+ };
+ _.Ll = function Pde(a, b) {
+ return this.tl();
+ };
+ _.Ml = function Qde() {
+ nde(this);
+ return wfe(), hfe;
+ };
+ _.Nl = function Rde() {
+ var a, b, c, d, e;
+ if (this.d + 1 >= this.j)
+ throw vbb(new mde(tvd((h0d(), Bue))));
+ d = -1;
+ b = null;
+ a = bfb(this.i, this.d);
+ if (49 <= a && a <= 57) {
+ d = a - 48;
+ !this.g && (this.g = new Wvb());
+ Tvb(this.g, new cge(d));
+ ++this.d;
+ if (bfb(this.i, this.d) != 41)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ ++this.d;
+ } else {
+ a == 63 && --this.d;
+ nde(this);
+ b = qde(this);
+ switch (b.e) {
+ case 20:
+ case 21:
+ case 22:
+ case 23:
+ break;
+ case 8:
+ if (this.c != 7)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ break;
+ default:
+ throw vbb(new mde(tvd((h0d(), Cue))));
+ }
+ }
+ nde(this);
+ e = rde(this);
+ c = null;
+ if (e.e == 2) {
+ if (e.em() != 2)
+ throw vbb(new mde(tvd((h0d(), Due))));
+ c = e.am(1);
+ e = e.am(0);
+ }
+ if (this.c != 7)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ nde(this);
+ return wfe(), wfe(), new vge(d, b, e, c);
+ };
+ _.Ol = function Sde() {
+ nde(this);
+ return wfe(), ife;
+ };
+ _.Pl = function Tde() {
+ var a;
+ nde(this);
+ a = Cfe(24, rde(this));
+ if (this.c != 7)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ nde(this);
+ return a;
+ };
+ _.Ql = function Ude() {
+ var a;
+ nde(this);
+ a = Cfe(20, rde(this));
+ if (this.c != 7)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ nde(this);
+ return a;
+ };
+ _.Rl = function Vde() {
+ var a;
+ nde(this);
+ a = Cfe(22, rde(this));
+ if (this.c != 7)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ nde(this);
+ return a;
+ };
+ _.Sl = function Wde() {
+ var a, b, c, d, e;
+ a = 0;
+ c = 0;
+ b = -1;
+ while (this.d < this.j) {
+ b = bfb(this.i, this.d);
+ e = Uee(b);
+ if (e == 0)
+ break;
+ a |= e;
+ ++this.d;
+ }
+ if (this.d >= this.j)
+ throw vbb(new mde(tvd((h0d(), zue))));
+ if (b == 45) {
+ ++this.d;
+ while (this.d < this.j) {
+ b = bfb(this.i, this.d);
+ e = Uee(b);
+ if (e == 0)
+ break;
+ c |= e;
+ ++this.d;
+ }
+ if (this.d >= this.j)
+ throw vbb(new mde(tvd((h0d(), zue))));
+ }
+ if (b == 58) {
+ ++this.d;
+ nde(this);
+ d = Dfe(rde(this), a, c);
+ if (this.c != 7)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ nde(this);
+ } else if (b == 41) {
+ ++this.d;
+ nde(this);
+ d = Dfe(rde(this), a, c);
+ } else
+ throw vbb(new mde(tvd((h0d(), Aue))));
+ return d;
+ };
+ _.Tl = function Xde() {
+ var a;
+ nde(this);
+ a = Cfe(21, rde(this));
+ if (this.c != 7)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ nde(this);
+ return a;
+ };
+ _.Ul = function Yde() {
+ var a;
+ nde(this);
+ a = Cfe(23, rde(this));
+ if (this.c != 7)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ nde(this);
+ return a;
+ };
+ _.Vl = function Zde() {
+ var a, b;
+ nde(this);
+ a = this.f++;
+ b = Efe(rde(this), a);
+ if (this.c != 7)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ nde(this);
+ return b;
+ };
+ _.Wl = function $de() {
+ var a;
+ nde(this);
+ a = Efe(rde(this), 0);
+ if (this.c != 7)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ nde(this);
+ return a;
+ };
+ _.Xl = function _de(a) {
+ nde(this);
+ if (this.c == 5) {
+ nde(this);
+ return Bfe(a, (wfe(), wfe(), new lge(9, a)));
+ } else
+ return Bfe(a, (wfe(), wfe(), new lge(3, a)));
+ };
+ _.Yl = function aee(a) {
+ var b;
+ nde(this);
+ b = (wfe(), wfe(), new Lge(2));
+ if (this.c == 5) {
+ nde(this);
+ Kge(b, ffe);
+ Kge(b, a);
+ } else {
+ Kge(b, a);
+ Kge(b, ffe);
+ }
+ return b;
+ };
+ _.Zl = function bee(a) {
+ nde(this);
+ if (this.c == 5) {
+ nde(this);
+ return wfe(), wfe(), new lge(9, a);
+ } else
+ return wfe(), wfe(), new lge(3, a);
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ _.d = 0;
+ _.e = 0;
+ _.f = 1;
+ _.g = null;
+ _.j = 0;
+ mdb(kxe, "RegEx/RegexParser", 820);
+ bcb(1824, 820, {}, hee);
+ _.sl = function iee(a) {
+ return false;
+ };
+ _.tl = function jee() {
+ return eee(this);
+ };
+ _.ul = function lee(a) {
+ return fee(a);
+ };
+ _.vl = function mee(a) {
+ return gee(this);
+ };
+ _.wl = function nee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.xl = function oee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.yl = function pee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.zl = function qee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Al = function ree() {
+ nde(this);
+ return fee(67);
+ };
+ _.Bl = function see() {
+ nde(this);
+ return fee(73);
+ };
+ _.Cl = function tee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Dl = function uee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.El = function vee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Fl = function wee() {
+ nde(this);
+ return fee(99);
+ };
+ _.Gl = function xee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Hl = function yee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Il = function zee() {
+ nde(this);
+ return fee(105);
+ };
+ _.Jl = function Aee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Kl = function Bee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Ll = function Cee(a, b) {
+ return Xfe(a, fee(b)), -1;
+ };
+ _.Ml = function Dee() {
+ nde(this);
+ return wfe(), wfe(), new ige(0, 94);
+ };
+ _.Nl = function Eee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Ol = function Fee() {
+ nde(this);
+ return wfe(), wfe(), new ige(0, 36);
+ };
+ _.Pl = function Gee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Ql = function Hee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Rl = function Iee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Sl = function Jee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Tl = function Kee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Ul = function Lee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Vl = function Mee() {
+ var a;
+ nde(this);
+ a = Efe(rde(this), 0);
+ if (this.c != 7)
+ throw vbb(new mde(tvd((h0d(), yue))));
+ nde(this);
+ return a;
+ };
+ _.Wl = function Nee() {
+ throw vbb(new mde(tvd((h0d(), Yue))));
+ };
+ _.Xl = function Oee(a) {
+ nde(this);
+ return Bfe(a, (wfe(), wfe(), new lge(3, a)));
+ };
+ _.Yl = function Pee(a) {
+ var b;
+ nde(this);
+ b = (wfe(), wfe(), new Lge(2));
+ Kge(b, a);
+ Kge(b, ffe);
+ return b;
+ };
+ _.Zl = function Qee(a) {
+ nde(this);
+ return wfe(), wfe(), new lge(3, a);
+ };
+ var cee = null, dee = null;
+ mdb(kxe, "RegEx/ParserForXMLSchema", 1824);
+ bcb(117, 1, yxe, xfe);
+ _.$l = function yfe(a) {
+ throw vbb(new hz("Not supported."));
+ };
+ _._l = function Gfe() {
+ return -1;
+ };
+ _.am = function Hfe(a) {
+ return null;
+ };
+ _.bm = function Mfe() {
+ return null;
+ };
+ _.cm = function Pfe(a) {
+ };
+ _.dm = function Qfe(a) {
+ };
+ _.em = function Rfe() {
+ return 0;
+ };
+ _.Ib = function Sfe() {
+ return this.fm(0);
+ };
+ _.fm = function Tfe(a) {
+ return this.e == 11 ? "." : "";
+ };
+ _.e = 0;
+ var Yee, Zee, $ee, _ee, afe, bfe = null, cfe, dfe = null, efe, ffe, gfe = null, hfe, ife, jfe, kfe, lfe, mfe, nfe, ofe, pfe, qfe, rfe, sfe, tfe, ufe;
+ var lbb = mdb(kxe, "RegEx/Token", 117);
+ bcb(136, 117, { 3: 1, 136: 1, 117: 1 }, $fe);
+ _.fm = function bge(a) {
+ var b, c, d;
+ if (this.e == 4) {
+ if (this == efe)
+ c = ".";
+ else if (this == cfe)
+ c = "\\d";
+ else if (this == sfe)
+ c = "\\w";
+ else if (this == nfe)
+ c = "\\s";
+ else {
+ d = new Hfb();
+ d.a += "[";
+ for (b = 0; b < this.b.length; b += 2) {
+ (a & zte) != 0 && b > 0 && (d.a += ",", d);
+ if (this.b[b] === this.b[b + 1]) {
+ Efb(d, age(this.b[b]));
+ } else {
+ Efb(d, age(this.b[b]));
+ d.a += "-";
+ Efb(d, age(this.b[b + 1]));
+ }
+ }
+ d.a += "]";
+ c = d.a;
+ }
+ } else {
+ if (this == jfe)
+ c = "\\D";
+ else if (this == lfe)
+ c = "\\W";
+ else if (this == kfe)
+ c = "\\S";
+ else {
+ d = new Hfb();
+ d.a += "[^";
+ for (b = 0; b < this.b.length; b += 2) {
+ (a & zte) != 0 && b > 0 && (d.a += ",", d);
+ if (this.b[b] === this.b[b + 1]) {
+ Efb(d, age(this.b[b]));
+ } else {
+ Efb(d, age(this.b[b]));
+ d.a += "-";
+ Efb(d, age(this.b[b + 1]));
+ }
+ }
+ d.a += "]";
+ c = d.a;
+ }
+ }
+ return c;
+ };
+ _.a = false;
+ _.c = false;
+ mdb(kxe, "RegEx/RangeToken", 136);
+ bcb(584, 1, { 584: 1 }, cge);
+ _.a = 0;
+ mdb(kxe, "RegEx/RegexParser/ReferencePosition", 584);
+ bcb(583, 1, { 3: 1, 583: 1 }, ege);
+ _.Fb = function fge(a) {
+ var b;
+ if (a == null)
+ return false;
+ if (!JD(a, 583))
+ return false;
+ b = BD(a, 583);
+ return dfb(this.b, b.b) && this.a == b.a;
+ };
+ _.Hb = function gge() {
+ return LCb(this.b + "/" + See(this.a));
+ };
+ _.Ib = function hge() {
+ return this.c.fm(this.a);
+ };
+ _.a = 0;
+ mdb(kxe, "RegEx/RegularExpression", 583);
+ bcb(223, 117, yxe, ige);
+ _._l = function jge() {
+ return this.a;
+ };
+ _.fm = function kge(a) {
+ var b, c, d;
+ switch (this.e) {
+ case 0:
+ switch (this.a) {
+ case 124:
+ case 42:
+ case 43:
+ case 63:
+ case 40:
+ case 41:
+ case 46:
+ case 91:
+ case 123:
+ case 92:
+ d = "\\" + HD(this.a & aje);
+ break;
+ case 12:
+ d = "\\f";
+ break;
+ case 10:
+ d = "\\n";
+ break;
+ case 13:
+ d = "\\r";
+ break;
+ case 9:
+ d = "\\t";
+ break;
+ case 27:
+ d = "\\e";
+ break;
+ default:
+ if (this.a >= Tje) {
+ c = (b = this.a >>> 0, "0" + b.toString(16));
+ d = "\\v" + qfb(c, c.length - 6, c.length);
+ } else
+ d = "" + HD(this.a & aje);
+ }
+ break;
+ case 8:
+ this == hfe || this == ife ? d = "" + HD(this.a & aje) : d = "\\" + HD(this.a & aje);
+ break;
+ default:
+ d = null;
+ }
+ return d;
+ };
+ _.a = 0;
+ mdb(kxe, "RegEx/Token/CharToken", 223);
+ bcb(309, 117, yxe, lge);
+ _.am = function mge(a) {
+ return this.a;
+ };
+ _.cm = function nge(a) {
+ this.b = a;
+ };
+ _.dm = function oge(a) {
+ this.c = a;
+ };
+ _.em = function pge() {
+ return 1;
+ };
+ _.fm = function qge(a) {
+ var b;
+ if (this.e == 3) {
+ if (this.c < 0 && this.b < 0) {
+ b = this.a.fm(a) + "*";
+ } else if (this.c == this.b) {
+ b = this.a.fm(a) + "{" + this.c + "}";
+ } else if (this.c >= 0 && this.b >= 0) {
+ b = this.a.fm(a) + "{" + this.c + "," + this.b + "}";
+ } else if (this.c >= 0 && this.b < 0) {
+ b = this.a.fm(a) + "{" + this.c + ",}";
+ } else
+ throw vbb(new hz("Token#toString(): CLOSURE " + this.c + She + this.b));
+ } else {
+ if (this.c < 0 && this.b < 0) {
+ b = this.a.fm(a) + "*?";
+ } else if (this.c == this.b) {
+ b = this.a.fm(a) + "{" + this.c + "}?";
+ } else if (this.c >= 0 && this.b >= 0) {
+ b = this.a.fm(a) + "{" + this.c + "," + this.b + "}?";
+ } else if (this.c >= 0 && this.b < 0) {
+ b = this.a.fm(a) + "{" + this.c + ",}?";
+ } else
+ throw vbb(new hz("Token#toString(): NONGREEDYCLOSURE " + this.c + She + this.b));
+ }
+ return b;
+ };
+ _.b = 0;
+ _.c = 0;
+ mdb(kxe, "RegEx/Token/ClosureToken", 309);
+ bcb(821, 117, yxe, rge);
+ _.am = function sge(a) {
+ return a == 0 ? this.a : this.b;
+ };
+ _.em = function tge() {
+ return 2;
+ };
+ _.fm = function uge(a) {
+ var b;
+ this.b.e == 3 && this.b.am(0) == this.a ? b = this.a.fm(a) + "+" : this.b.e == 9 && this.b.am(0) == this.a ? b = this.a.fm(a) + "+?" : b = this.a.fm(a) + ("" + this.b.fm(a));
+ return b;
+ };
+ mdb(kxe, "RegEx/Token/ConcatToken", 821);
+ bcb(1822, 117, yxe, vge);
+ _.am = function wge(a) {
+ if (a == 0)
+ return this.d;
+ if (a == 1)
+ return this.b;
+ throw vbb(new hz("Internal Error: " + a));
+ };
+ _.em = function xge() {
+ return !this.b ? 1 : 2;
+ };
+ _.fm = function yge(a) {
+ var b;
+ this.c > 0 ? b = "(?(" + this.c + ")" : this.a.e == 8 ? b = "(?(" + this.a + ")" : b = "(?" + this.a;
+ !this.b ? b += this.d + ")" : b += this.d + "|" + this.b + ")";
+ return b;
+ };
+ _.c = 0;
+ mdb(kxe, "RegEx/Token/ConditionToken", 1822);
+ bcb(1823, 117, yxe, zge);
+ _.am = function Age(a) {
+ return this.b;
+ };
+ _.em = function Bge() {
+ return 1;
+ };
+ _.fm = function Cge(a) {
+ return "(?" + (this.a == 0 ? "" : See(this.a)) + (this.c == 0 ? "" : See(this.c)) + ":" + this.b.fm(a) + ")";
+ };
+ _.a = 0;
+ _.c = 0;
+ mdb(kxe, "RegEx/Token/ModifierToken", 1823);
+ bcb(822, 117, yxe, Dge);
+ _.am = function Ege(a) {
+ return this.a;
+ };
+ _.em = function Fge() {
+ return 1;
+ };
+ _.fm = function Gge(a) {
+ var b;
+ b = null;
+ switch (this.e) {
+ case 6:
+ this.b == 0 ? b = "(?:" + this.a.fm(a) + ")" : b = "(" + this.a.fm(a) + ")";
+ break;
+ case 20:
+ b = "(?=" + this.a.fm(a) + ")";
+ break;
+ case 21:
+ b = "(?!" + this.a.fm(a) + ")";
+ break;
+ case 22:
+ b = "(?<=" + this.a.fm(a) + ")";
+ break;
+ case 23:
+ b = "(?" + this.a.fm(a) + ")";
+ }
+ return b;
+ };
+ _.b = 0;
+ mdb(kxe, "RegEx/Token/ParenToken", 822);
+ bcb(521, 117, { 3: 1, 117: 1, 521: 1 }, Hge);
+ _.bm = function Ige() {
+ return this.b;
+ };
+ _.fm = function Jge(a) {
+ return this.e == 12 ? "\\" + this.a : Wee(this.b);
+ };
+ _.a = 0;
+ mdb(kxe, "RegEx/Token/StringToken", 521);
+ bcb(465, 117, yxe, Lge);
+ _.$l = function Mge(a) {
+ Kge(this, a);
+ };
+ _.am = function Nge(a) {
+ return BD(Uvb(this.a, a), 117);
+ };
+ _.em = function Oge() {
+ return !this.a ? 0 : this.a.a.c.length;
+ };
+ _.fm = function Pge(a) {
+ var b, c, d, e, f;
+ if (this.e == 1) {
+ if (this.a.a.c.length == 2) {
+ b = BD(Uvb(this.a, 0), 117);
+ c = BD(Uvb(this.a, 1), 117);
+ c.e == 3 && c.am(0) == b ? e = b.fm(a) + "+" : c.e == 9 && c.am(0) == b ? e = b.fm(a) + "+?" : e = b.fm(a) + ("" + c.fm(a));
+ } else {
+ f = new Hfb();
+ for (d = 0; d < this.a.a.c.length; d++) {
+ Efb(f, BD(Uvb(this.a, d), 117).fm(a));
+ }
+ e = f.a;
+ }
+ return e;
+ }
+ if (this.a.a.c.length == 2 && BD(Uvb(this.a, 1), 117).e == 7) {
+ e = BD(Uvb(this.a, 0), 117).fm(a) + "?";
+ } else if (this.a.a.c.length == 2 && BD(Uvb(this.a, 0), 117).e == 7) {
+ e = BD(Uvb(this.a, 1), 117).fm(a) + "??";
+ } else {
+ f = new Hfb();
+ Efb(f, BD(Uvb(this.a, 0), 117).fm(a));
+ for (d = 1; d < this.a.a.c.length; d++) {
+ f.a += "|";
+ Efb(f, BD(Uvb(this.a, d), 117).fm(a));
+ }
+ e = f.a;
+ }
+ return e;
+ };
+ mdb(kxe, "RegEx/Token/UnionToken", 465);
+ bcb(518, 1, { 592: 1 }, Rge);
+ _.Ib = function Sge() {
+ return this.a.b;
+ };
+ mdb(zxe, "XMLTypeUtil/PatternMatcherImpl", 518);
+ bcb(1622, 1381, {}, Vge);
+ var Tge;
+ mdb(zxe, "XMLTypeValidator", 1622);
+ bcb(264, 1, vie, Yge);
+ _.Jc = function Zge(a) {
+ reb(this, a);
+ };
+ _.Kc = function $ge() {
+ return (this.b - this.a) * this.c < 0 ? Wge : new she(this);
+ };
+ _.a = 0;
+ _.b = 0;
+ _.c = 0;
+ var Wge;
+ mdb(Bxe, "ExclusiveRange", 264);
+ bcb(1068, 1, jie, dhe);
+ _.Rb = function ehe(a) {
+ BD(a, 19);
+ _ge();
+ };
+ _.Nb = function fhe(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function ihe() {
+ return ahe();
+ };
+ _.Ub = function khe() {
+ return bhe();
+ };
+ _.Wb = function nhe(a) {
+ BD(a, 19);
+ che();
+ };
+ _.Ob = function ghe() {
+ return false;
+ };
+ _.Sb = function hhe() {
+ return false;
+ };
+ _.Tb = function jhe() {
+ return -1;
+ };
+ _.Vb = function lhe() {
+ return -1;
+ };
+ _.Qb = function mhe() {
+ throw vbb(new cgb(Exe));
+ };
+ mdb(Bxe, "ExclusiveRange/1", 1068);
+ bcb(254, 1, jie, she);
+ _.Rb = function the(a) {
+ BD(a, 19);
+ ohe();
+ };
+ _.Nb = function uhe(a) {
+ Rrb(this, a);
+ };
+ _.Pb = function xhe() {
+ return phe(this);
+ };
+ _.Ub = function zhe() {
+ return qhe(this);
+ };
+ _.Wb = function Che(a) {
+ BD(a, 19);
+ rhe();
+ };
+ _.Ob = function vhe() {
+ return this.c.c < 0 ? this.a >= this.c.b : this.a <= this.c.b;
+ };
+ _.Sb = function whe() {
+ return this.b > 0;
+ };
+ _.Tb = function yhe() {
+ return this.b;
+ };
+ _.Vb = function Ahe() {
+ return this.b - 1;
+ };
+ _.Qb = function Bhe() {
+ throw vbb(new cgb(Exe));
+ };
+ _.a = 0;
+ _.b = 0;
+ mdb(Bxe, "ExclusiveRange/RangeIterator", 254);
+ var TD = pdb(Fve, "C");
+ var WD = pdb(Ive, "I");
+ var sbb = pdb(Khe, "Z");
+ var XD = pdb(Jve, "J");
+ var SD = pdb(Eve, "B");
+ var UD = pdb(Gve, "D");
+ var VD = pdb(Hve, "F");
+ var rbb = pdb(Kve, "S");
+ var h1 = odb("org.eclipse.elk.core.labels", "ILabelManager");
+ var O4 = odb(Tte, "DiagnosticChain");
+ var u8 = odb(pwe, "ResourceSet");
+ var V4 = mdb(Tte, "InvocationTargetException", null);
+ var Ihe = (Az(), Dz);
+ var gwtOnLoad = gwtOnLoad = Zbb;
+ Xbb(hcb);
+ $bb("permProps", [[[Fxe, Gxe], [Hxe, "gecko1_8"]], [[Fxe, Gxe], [Hxe, "ie10"]], [[Fxe, Gxe], [Hxe, "ie8"]], [[Fxe, Gxe], [Hxe, "ie9"]], [[Fxe, Gxe], [Hxe, "safari"]]]);
+ gwtOnLoad(null, "elk", null);
+ }).call(this);
+ }).call(this, typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {});
+ }, {}], 3: [function(require2, module2, exports2) {
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+ function _possibleConstructorReturn(self2, call) {
+ if (!self2) {
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+ }
+ return call && (typeof call === "object" || typeof call === "function") ? call : self2;
+ }
+ function _inherits(subClass, superClass) {
+ if (typeof superClass !== "function" && superClass !== null) {
+ throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
+ }
+ subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });
+ if (superClass)
+ Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
+ }
+ var ELK2 = require2("./elk-api.js").default;
+ var ELKNode = function(_ELK) {
+ _inherits(ELKNode2, _ELK);
+ function ELKNode2() {
+ var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
+ _classCallCheck(this, ELKNode2);
+ var optionsClone = Object.assign({}, options);
+ var workerThreadsExist = false;
+ try {
+ require2.resolve("web-worker");
+ workerThreadsExist = true;
+ } catch (e) {
+ }
+ if (options.workerUrl) {
+ if (workerThreadsExist) {
+ var Worker2 = require2("web-worker");
+ optionsClone.workerFactory = function(url) {
+ return new Worker2(url);
+ };
+ } else {
+ console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version.");
+ }
+ }
+ if (!optionsClone.workerFactory) {
+ var _require = require2("./elk-worker.min.js"), _Worker = _require.Worker;
+ optionsClone.workerFactory = function(url) {
+ return new _Worker(url);
+ };
+ }
+ return _possibleConstructorReturn(this, (ELKNode2.__proto__ || Object.getPrototypeOf(ELKNode2)).call(this, optionsClone));
+ }
+ return ELKNode2;
+ }(ELK2);
+ Object.defineProperty(module2.exports, "__esModule", {
+ value: true
+ });
+ module2.exports = ELKNode;
+ ELKNode.default = ELKNode;
+ }, { "./elk-api.js": 1, "./elk-worker.min.js": 2, "web-worker": 4 }], 4: [function(require2, module2, exports2) {
+ module2.exports = Worker;
+ }, {}] }, {}, [3])(3);
+ });
+})(elk_bundled);
+const ELK = /* @__PURE__ */ getDefaultExportFromCjs(elk_bundledExports);
+const elk = new ELK();
+let portPos = {};
+const conf = {};
+let nodeDb = {};
+const addVertices = function(vert, svgId, root, doc, diagObj, parentLookupDb, graph) {
+ const svg = root.select(`[id="${svgId}"]`);
+ const nodes = svg.insert("g").attr("class", "nodes");
+ const keys = Object.keys(vert);
+ keys.forEach(function(id) {
+ const vertex = vert[id];
+ let classStr = "default";
+ if (vertex.classes.length > 0) {
+ classStr = vertex.classes.join(" ");
+ }
+ classStr = classStr + " flowchart-label";
+ const styles2 = getStylesFromArray(vertex.styles);
+ let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
+ const labelData = { width: 0, height: 0 };
+ const ports = [
+ {
+ id: vertex.id + "-west",
+ layoutOptions: {
+ "port.side": "WEST"
+ }
+ },
+ {
+ id: vertex.id + "-east",
+ layoutOptions: {
+ "port.side": "EAST"
+ }
+ },
+ {
+ id: vertex.id + "-south",
+ layoutOptions: {
+ "port.side": "SOUTH"
+ }
+ },
+ {
+ id: vertex.id + "-north",
+ layoutOptions: {
+ "port.side": "NORTH"
+ }
+ }
+ ];
+ let radious = 0;
+ let _shape = "";
+ let layoutOptions = {};
+ switch (vertex.type) {
+ case "round":
+ radious = 5;
+ _shape = "rect";
+ break;
+ case "square":
+ _shape = "rect";
+ break;
+ case "diamond":
+ _shape = "question";
+ layoutOptions = {
+ portConstraints: "FIXED_SIDE"
+ };
+ break;
+ case "hexagon":
+ _shape = "hexagon";
+ break;
+ case "odd":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "lean_right":
+ _shape = "lean_right";
+ break;
+ case "lean_left":
+ _shape = "lean_left";
+ break;
+ case "trapezoid":
+ _shape = "trapezoid";
+ break;
+ case "inv_trapezoid":
+ _shape = "inv_trapezoid";
+ break;
+ case "odd_right":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "circle":
+ _shape = "circle";
+ break;
+ case "ellipse":
+ _shape = "ellipse";
+ break;
+ case "stadium":
+ _shape = "stadium";
+ break;
+ case "subroutine":
+ _shape = "subroutine";
+ break;
+ case "cylinder":
+ _shape = "cylinder";
+ break;
+ case "group":
+ _shape = "rect";
+ break;
+ case "doublecircle":
+ _shape = "doublecircle";
+ break;
+ default:
+ _shape = "rect";
+ }
+ const node = {
+ labelStyle: styles2.labelStyle,
+ shape: _shape,
+ labelText: vertexText,
+ labelType: vertex.labelType,
+ rx: radious,
+ ry: radious,
+ class: classStr,
+ style: styles2.style,
+ id: vertex.id,
+ link: vertex.link,
+ linkTarget: vertex.linkTarget,
+ tooltip: diagObj.db.getTooltip(vertex.id) || "",
+ domId: diagObj.db.lookUpDomId(vertex.id),
+ haveCallback: vertex.haveCallback,
+ width: vertex.type === "group" ? 500 : void 0,
+ dir: vertex.dir,
+ type: vertex.type,
+ props: vertex.props,
+ padding: getConfig().flowchart.padding
+ };
+ let boundingBox;
+ let nodeEl;
+ if (node.type !== "group") {
+ nodeEl = insertNode(nodes, node, vertex.dir);
+ boundingBox = nodeEl.node().getBBox();
+ } else {
+ doc.createElementNS("http://www.w3.org/2000/svg", "text");
+ const { shapeSvg, bbox } = labelHelper(nodes, node, void 0, true);
+ labelData.width = bbox.width;
+ labelData.wrappingWidth = getConfig().flowchart.wrappingWidth;
+ labelData.height = bbox.height;
+ labelData.labelNode = shapeSvg.node();
+ node.labelData = labelData;
+ }
+ const data = {
+ id: vertex.id,
+ ports: vertex.type === "diamond" ? ports : [],
+ // labelStyle: styles.labelStyle,
+ // shape: _shape,
+ layoutOptions,
+ labelText: vertexText,
+ labelData,
+ // labels: [{ text: vertexText }],
+ // rx: radius,
+ // ry: radius,
+ // class: classStr,
+ // style: styles.style,
+ // link: vertex.link,
+ // linkTarget: vertex.linkTarget,
+ // tooltip: diagObj.db.getTooltip(vertex.id) || '',
+ domId: diagObj.db.lookUpDomId(vertex.id),
+ // haveCallback: vertex.haveCallback,
+ width: boundingBox == null ? void 0 : boundingBox.width,
+ height: boundingBox == null ? void 0 : boundingBox.height,
+ // dir: vertex.dir,
+ type: vertex.type,
+ // props: vertex.props,
+ // padding: getConfig().flowchart.padding,
+ // boundingBox,
+ el: nodeEl,
+ parent: parentLookupDb.parentById[vertex.id]
+ };
+ nodeDb[node.id] = data;
+ });
+ return graph;
+};
+const getNextPosition = (position, edgeDirection, graphDirection) => {
+ const portPos2 = {
+ TB: {
+ in: {
+ north: "north"
+ },
+ out: {
+ south: "west",
+ west: "east",
+ east: "south"
+ }
+ },
+ LR: {
+ in: {
+ west: "west"
+ },
+ out: {
+ east: "south",
+ south: "north",
+ north: "east"
+ }
+ },
+ RL: {
+ in: {
+ east: "east"
+ },
+ out: {
+ west: "north",
+ north: "south",
+ south: "west"
+ }
+ },
+ BT: {
+ in: {
+ south: "south"
+ },
+ out: {
+ north: "east",
+ east: "west",
+ west: "north"
+ }
+ }
+ };
+ portPos2.TD = portPos2.TB;
+ log.info("abc88", graphDirection, edgeDirection, position);
+ return portPos2[graphDirection][edgeDirection][position];
+};
+const getNextPort = (node, edgeDirection, graphDirection) => {
+ log.info("getNextPort abc88", { node, edgeDirection, graphDirection });
+ if (!portPos[node]) {
+ switch (graphDirection) {
+ case "TB":
+ case "TD":
+ portPos[node] = {
+ inPosition: "north",
+ outPosition: "south"
+ };
+ break;
+ case "BT":
+ portPos[node] = {
+ inPosition: "south",
+ outPosition: "north"
+ };
+ break;
+ case "RL":
+ portPos[node] = {
+ inPosition: "east",
+ outPosition: "west"
+ };
+ break;
+ case "LR":
+ portPos[node] = {
+ inPosition: "west",
+ outPosition: "east"
+ };
+ break;
+ }
+ }
+ const result = edgeDirection === "in" ? portPos[node].inPosition : portPos[node].outPosition;
+ if (edgeDirection === "in") {
+ portPos[node].inPosition = getNextPosition(
+ portPos[node].inPosition,
+ edgeDirection,
+ graphDirection
+ );
+ } else {
+ portPos[node].outPosition = getNextPosition(
+ portPos[node].outPosition,
+ edgeDirection,
+ graphDirection
+ );
+ }
+ return result;
+};
+const getEdgeStartEndPoint = (edge, dir) => {
+ let source = edge.start;
+ let target = edge.end;
+ const sourceId = source;
+ const targetId = target;
+ const startNode = nodeDb[source];
+ const endNode = nodeDb[target];
+ if (!startNode || !endNode) {
+ return { source, target };
+ }
+ if (startNode.type === "diamond") {
+ source = `${source}-${getNextPort(source, "out", dir)}`;
+ }
+ if (endNode.type === "diamond") {
+ target = `${target}-${getNextPort(target, "in", dir)}`;
+ }
+ return { source, target, sourceId, targetId };
+};
+const addEdges = function(edges, diagObj, graph, svg) {
+ log.info("abc78 edges = ", edges);
+ const labelsEl = svg.insert("g").attr("class", "edgeLabels");
+ let linkIdCnt = {};
+ let dir = diagObj.db.getDirection();
+ let defaultStyle;
+ let defaultLabelStyle;
+ if (edges.defaultStyle !== void 0) {
+ const defaultStyles = getStylesFromArray(edges.defaultStyle);
+ defaultStyle = defaultStyles.style;
+ defaultLabelStyle = defaultStyles.labelStyle;
+ }
+ edges.forEach(function(edge) {
+ var linkIdBase = "L-" + edge.start + "-" + edge.end;
+ if (linkIdCnt[linkIdBase] === void 0) {
+ linkIdCnt[linkIdBase] = 0;
+ log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
+ } else {
+ linkIdCnt[linkIdBase]++;
+ log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
+ }
+ let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase];
+ log.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]);
+ var linkNameStart = "LS-" + edge.start;
+ var linkNameEnd = "LE-" + edge.end;
+ const edgeData = { style: "", labelStyle: "" };
+ edgeData.minlen = edge.length || 1;
+ if (edge.type === "arrow_open") {
+ edgeData.arrowhead = "none";
+ } else {
+ edgeData.arrowhead = "normal";
+ }
+ edgeData.arrowTypeStart = "arrow_open";
+ edgeData.arrowTypeEnd = "arrow_open";
+ switch (edge.type) {
+ case "double_arrow_cross":
+ edgeData.arrowTypeStart = "arrow_cross";
+ case "arrow_cross":
+ edgeData.arrowTypeEnd = "arrow_cross";
+ break;
+ case "double_arrow_point":
+ edgeData.arrowTypeStart = "arrow_point";
+ case "arrow_point":
+ edgeData.arrowTypeEnd = "arrow_point";
+ break;
+ case "double_arrow_circle":
+ edgeData.arrowTypeStart = "arrow_circle";
+ case "arrow_circle":
+ edgeData.arrowTypeEnd = "arrow_circle";
+ break;
+ }
+ let style = "";
+ let labelStyle = "";
+ switch (edge.stroke) {
+ case "normal":
+ style = "fill:none;";
+ if (defaultStyle !== void 0) {
+ style = defaultStyle;
+ }
+ if (defaultLabelStyle !== void 0) {
+ labelStyle = defaultLabelStyle;
+ }
+ edgeData.thickness = "normal";
+ edgeData.pattern = "solid";
+ break;
+ case "dotted":
+ edgeData.thickness = "normal";
+ edgeData.pattern = "dotted";
+ edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
+ break;
+ case "thick":
+ edgeData.thickness = "thick";
+ edgeData.pattern = "solid";
+ edgeData.style = "stroke-width: 3.5px;fill:none;";
+ break;
+ }
+ if (edge.style !== void 0) {
+ const styles2 = getStylesFromArray(edge.style);
+ style = styles2.style;
+ labelStyle = styles2.labelStyle;
+ }
+ edgeData.style = edgeData.style += style;
+ edgeData.labelStyle = edgeData.labelStyle += labelStyle;
+ if (edge.interpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
+ } else if (edges.defaultInterpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);
+ } else {
+ edgeData.curve = interpolateToCurve(conf.curve, curveLinear);
+ }
+ if (edge.text === void 0) {
+ if (edge.style !== void 0) {
+ edgeData.arrowheadStyle = "fill: #333";
+ }
+ } else {
+ edgeData.arrowheadStyle = "fill: #333";
+ edgeData.labelpos = "c";
+ }
+ edgeData.labelType = edge.labelType;
+ edgeData.label = edge.text.replace(common.lineBreakRegex, "\n");
+ if (edge.style === void 0) {
+ edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;";
+ }
+ edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
+ edgeData.id = linkId;
+ edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd;
+ const labelEl = insertEdgeLabel(labelsEl, edgeData);
+ const { source, target, sourceId, targetId } = getEdgeStartEndPoint(edge, dir);
+ log.debug("abc78 source and target", source, target);
+ graph.edges.push({
+ id: "e" + edge.start + edge.end,
+ sources: [source],
+ targets: [target],
+ sourceId,
+ targetId,
+ labelEl,
+ labels: [
+ {
+ width: edgeData.width,
+ height: edgeData.height,
+ orgWidth: edgeData.width,
+ orgHeight: edgeData.height,
+ text: edgeData.label,
+ layoutOptions: {
+ "edgeLabels.inline": "true",
+ "edgeLabels.placement": "CENTER"
+ }
+ }
+ ],
+ edgeData
+ });
+ });
+ return graph;
+};
+const addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute) {
+ let url = "";
+ if (arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ switch (edgeData.arrowTypeStart) {
+ case "arrow_cross":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-crossStart)");
+ break;
+ case "arrow_point":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-pointStart)");
+ break;
+ case "arrow_barb":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-barbStart)");
+ break;
+ case "arrow_circle":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-circleStart)");
+ break;
+ case "aggregation":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-aggregationStart)");
+ break;
+ case "extension":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-extensionStart)");
+ break;
+ case "composition":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-compositionStart)");
+ break;
+ case "dependency":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-dependencyStart)");
+ break;
+ case "lollipop":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-lollipopStart)");
+ break;
+ }
+ switch (edgeData.arrowTypeEnd) {
+ case "arrow_cross":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-crossEnd)");
+ break;
+ case "arrow_point":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-pointEnd)");
+ break;
+ case "arrow_barb":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-barbEnd)");
+ break;
+ case "arrow_circle":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-circleEnd)");
+ break;
+ case "aggregation":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-aggregationEnd)");
+ break;
+ case "extension":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-extensionEnd)");
+ break;
+ case "composition":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-compositionEnd)");
+ break;
+ case "dependency":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-dependencyEnd)");
+ break;
+ case "lollipop":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-lollipopEnd)");
+ break;
+ }
+};
+const getClasses = function(text, diagObj) {
+ log.info("Extracting classes");
+ diagObj.db.clear("ver-2");
+ try {
+ diagObj.parse(text);
+ return diagObj.db.getClasses();
+ } catch (e) {
+ return {};
+ }
+};
+const addSubGraphs = function(db2) {
+ const parentLookupDb = { parentById: {}, childrenById: {} };
+ const subgraphs = db2.getSubGraphs();
+ log.info("Subgraphs - ", subgraphs);
+ subgraphs.forEach(function(subgraph) {
+ subgraph.nodes.forEach(function(node) {
+ parentLookupDb.parentById[node] = subgraph.id;
+ if (parentLookupDb.childrenById[subgraph.id] === void 0) {
+ parentLookupDb.childrenById[subgraph.id] = [];
+ }
+ parentLookupDb.childrenById[subgraph.id].push(node);
+ });
+ });
+ subgraphs.forEach(function(subgraph) {
+ ({ id: subgraph.id });
+ if (parentLookupDb.parentById[subgraph.id] !== void 0) {
+ parentLookupDb.parentById[subgraph.id];
+ }
+ });
+ return parentLookupDb;
+};
+const calcOffset = function(src, dest, parentLookupDb) {
+ const ancestor = findCommonAncestor(src, dest, parentLookupDb);
+ if (ancestor === void 0 || ancestor === "root") {
+ return { x: 0, y: 0 };
+ }
+ const ancestorOffset = nodeDb[ancestor].offset;
+ return { x: ancestorOffset.posX, y: ancestorOffset.posY };
+};
+const insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb) {
+ const offset = calcOffset(edge.sourceId, edge.targetId, parentLookupDb);
+ const src = edge.sections[0].startPoint;
+ const dest = edge.sections[0].endPoint;
+ const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : [];
+ const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]);
+ const points = [
+ [src.x + offset.x, src.y + offset.y],
+ ...segPoints,
+ [dest.x + offset.x, dest.y + offset.y]
+ ];
+ const curve = line().curve(curveLinear);
+ const edgePath = edgesEl.insert("path").attr("d", curve(points)).attr("class", "path").attr("fill", "none");
+ const edgeG = edgesEl.insert("g").attr("class", "edgeLabel");
+ const edgeWithLabel = select(edgeG.node().appendChild(edge.labelEl));
+ const box = edgeWithLabel.node().firstChild.getBoundingClientRect();
+ edgeWithLabel.attr("width", box.width);
+ edgeWithLabel.attr("height", box.height);
+ edgeG.attr(
+ "transform",
+ `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})`
+ );
+ addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute);
+};
+const insertChildren = (nodeArray, parentLookupDb) => {
+ nodeArray.forEach((node) => {
+ if (!node.children) {
+ node.children = [];
+ }
+ const childIds = parentLookupDb.childrenById[node.id];
+ if (childIds) {
+ childIds.forEach((childId) => {
+ node.children.push(nodeDb[childId]);
+ });
+ }
+ insertChildren(node.children, parentLookupDb);
+ });
+};
+const draw = async function(text, id, _version, diagObj) {
+ var _a;
+ diagObj.db.clear();
+ nodeDb = {};
+ portPos = {};
+ diagObj.db.setGen("gen-2");
+ diagObj.parser.parse(text);
+ const renderEl = select("body").append("div").attr("style", "height:400px").attr("id", "cy");
+ let graph = {
+ id: "root",
+ layoutOptions: {
+ "elk.hierarchyHandling": "INCLUDE_CHILDREN",
+ "org.eclipse.elk.padding": "[top=100, left=100, bottom=110, right=110]",
+ "elk.layered.spacing.edgeNodeBetweenLayers": "30",
+ // 'elk.layered.mergeEdges': 'true',
+ "elk.direction": "DOWN"
+ // 'elk.ports.sameLayerEdges': true,
+ // 'nodePlacement.strategy': 'SIMPLE',
+ },
+ children: [],
+ edges: []
+ };
+ log.info("Drawing flowchart using v3 renderer", elk);
+ let dir = diagObj.db.getDirection();
+ switch (dir) {
+ case "BT":
+ graph.layoutOptions["elk.direction"] = "UP";
+ break;
+ case "TB":
+ graph.layoutOptions["elk.direction"] = "DOWN";
+ break;
+ case "LR":
+ graph.layoutOptions["elk.direction"] = "RIGHT";
+ break;
+ case "RL":
+ graph.layoutOptions["elk.direction"] = "LEFT";
+ break;
+ }
+ const { securityLevel, flowchart: conf2 } = getConfig();
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ const svg = root.select(`[id="${id}"]`);
+ const markers = ["point", "circle", "cross"];
+ insertMarkers(svg, markers, diagObj.type, diagObj.arrowMarkerAbsolute);
+ const vert = diagObj.db.getVertices();
+ let subG;
+ const subGraphs = diagObj.db.getSubGraphs();
+ log.info("Subgraphs - ", subGraphs);
+ for (let i = subGraphs.length - 1; i >= 0; i--) {
+ subG = subGraphs[i];
+ diagObj.db.addVertex(
+ subG.id,
+ { text: subG.title, type: subG.labelType },
+ "group",
+ void 0,
+ subG.classes,
+ subG.dir
+ );
+ }
+ const subGraphsEl = svg.insert("g").attr("class", "subgraphs");
+ const parentLookupDb = addSubGraphs(diagObj.db);
+ graph = addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph);
+ const edgesEl = svg.insert("g").attr("class", "edges edgePath");
+ const edges = diagObj.db.getEdges();
+ graph = addEdges(edges, diagObj, graph, svg);
+ const nodes = Object.keys(nodeDb);
+ nodes.forEach((nodeId) => {
+ const node = nodeDb[nodeId];
+ if (!node.parent) {
+ graph.children.push(node);
+ }
+ if (parentLookupDb.childrenById[nodeId] !== void 0) {
+ node.labels = [
+ {
+ text: node.labelText,
+ layoutOptions: {
+ "nodeLabels.placement": "[H_CENTER, V_TOP, INSIDE]"
+ },
+ width: node.labelData.width,
+ height: node.labelData.height
+ // width: 100,
+ // height: 100,
+ }
+ ];
+ delete node.x;
+ delete node.y;
+ delete node.width;
+ delete node.height;
+ }
+ });
+ insertChildren(graph.children, parentLookupDb);
+ log.info("after layout", JSON.stringify(graph, null, 2));
+ const g = await elk.layout(graph);
+ drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0);
+ log.info("after layout", g);
+ (_a = g.edges) == null ? void 0 : _a.map((edge) => {
+ insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb);
+ });
+ setupGraphViewbox({}, svg, conf2.diagramPadding, conf2.useMaxWidth);
+ renderEl.remove();
+};
+const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => {
+ nodeArray.forEach(function(node) {
+ if (node) {
+ nodeDb[node.id].offset = {
+ posX: node.x + relX,
+ posY: node.y + relY,
+ x: relX,
+ y: relY,
+ depth,
+ width: node.width,
+ height: node.height
+ };
+ if (node.type === "group") {
+ const subgraphEl = subgraphsEl.insert("g").attr("class", "subgraph");
+ subgraphEl.insert("rect").attr("class", "subgraph subgraph-lvl-" + depth % 5 + " node").attr("x", node.x + relX).attr("y", node.y + relY).attr("width", node.width).attr("height", node.height);
+ const label = subgraphEl.insert("g").attr("class", "label");
+ const labelCentering = getConfig().flowchart.htmlLabels ? node.labelData.width / 2 : 0;
+ label.attr(
+ "transform",
+ `translate(${node.labels[0].x + relX + node.x + labelCentering}, ${node.labels[0].y + relY + node.y + 3})`
+ );
+ label.node().appendChild(node.labelData.labelNode);
+ log.info("Id (UGH)= ", node.type, node.labels);
+ } else {
+ log.info("Id (UGH)= ", node.id);
+ node.el.attr(
+ "transform",
+ `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})`
+ );
+ }
+ }
+ });
+ nodeArray.forEach(function(node) {
+ if (node && node.type === "group") {
+ drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj, depth + 1);
+ }
+ });
+};
+const renderer = {
+ getClasses,
+ draw
+};
+const genSections = (options) => {
+ let sections = "";
+ for (let i = 0; i < 5; i++) {
+ sections += `
+ .subgraph-lvl-${i} {
+ fill: ${options[`surface${i}`]};
+ stroke: ${options[`surfacePeer${i}`]};
+ }
+ `;
+ }
+ return sections;
+};
+const getStyles = (options) => `.label {
+ font-family: ${options.fontFamily};
+ color: ${options.nodeTextColor || options.textColor};
+ }
+ .cluster-label text {
+ fill: ${options.titleColor};
+ }
+ .cluster-label span {
+ color: ${options.titleColor};
+ }
+
+ .label text,span {
+ fill: ${options.nodeTextColor || options.textColor};
+ color: ${options.nodeTextColor || options.textColor};
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+ stroke-width: 1px;
+ }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${options.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${options.lineColor};
+ stroke-width: 2.0px;
+ }
+
+ .flowchart-link {
+ stroke: ${options.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${options.edgeLabelBackground};
+ rect {
+ opacity: 0.85;
+ background-color: ${options.edgeLabelBackground};
+ fill: ${options.edgeLabelBackground};
+ }
+ text-align: center;
+ }
+
+ .cluster rect {
+ fill: ${options.clusterBkg};
+ stroke: ${options.clusterBorder};
+ stroke-width: 1px;
+ }
+
+ .cluster text {
+ fill: ${options.titleColor};
+ }
+
+ .cluster span {
+ color: ${options.titleColor};
+ }
+ /* .cluster div {
+ color: ${options.titleColor};
+ } */
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: ${options.fontFamily};
+ font-size: 12px;
+ background: ${options.tertiaryColor};
+ border: 1px solid ${options.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .flowchartTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor};
+ }
+ .subgraph {
+ stroke-width:2;
+ rx:3;
+ }
+ // .subgraph-lvl-1 {
+ // fill:#ccc;
+ // // stroke:black;
+ // }
+
+ .flowchart-label text {
+ text-anchor: middle;
+ }
+
+ ${genSections(options)}
+`;
+const styles = getStyles;
+const diagram = {
+ db,
+ renderer,
+ parser,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=flowchart-elk-definition-859d9cf8.js.map
diff --git a/scopegraphs-render-docs/doc/js/flowchart-elk-definition-a44a74cb.js b/scopegraphs-render-docs/doc/js/flowchart-elk-definition-a44a74cb.js
new file mode 100644
index 0000000..b355664
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/flowchart-elk-definition-a44a74cb.js
@@ -0,0 +1,878 @@
+import { d as db, p as parser } from "./flowDb-52e24d17.js";
+import { select, curveLinear, line } from "d3";
+import { a as insertMarkers, e as insertNode, l as labelHelper, f as insertEdgeLabel } from "./edges-2e77835f.js";
+import "dagre-d3-es/src/dagre-js/label/add-html-label.js";
+import { l as log, g as getConfig, e as common } from "./commonDb-573409be.js";
+import { s as setupGraphViewbox, n as getStylesFromArray, o as interpolateToCurve } from "./utils-d622194a.js";
+import ELK from "elkjs/lib/elk.bundled.js";
+import "./mermaidAPI-3ae0f2f0.js";
+import "stylis";
+import "dompurify";
+import "lodash-es/isEmpty.js";
+import "./createText-1f5f8f92.js";
+import "@khanacademy/simple-markdown";
+import "./svgDraw-2526cba0.js";
+import "dayjs";
+import "khroma";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+const findCommonAncestor = (id1, id2, treeData) => {
+ const { parentById } = treeData;
+ const visited = /* @__PURE__ */ new Set();
+ let currentId = id1;
+ while (currentId) {
+ visited.add(currentId);
+ if (currentId === id2) {
+ return currentId;
+ }
+ currentId = parentById[currentId];
+ }
+ currentId = id2;
+ while (currentId) {
+ if (visited.has(currentId)) {
+ return currentId;
+ }
+ currentId = parentById[currentId];
+ }
+ return "root";
+};
+const elk = new ELK();
+let portPos = {};
+const conf = {};
+let nodeDb = {};
+const addVertices = function(vert, svgId, root, doc, diagObj, parentLookupDb, graph) {
+ const svg = root.select(`[id="${svgId}"]`);
+ const nodes = svg.insert("g").attr("class", "nodes");
+ const keys = Object.keys(vert);
+ keys.forEach(function(id) {
+ const vertex = vert[id];
+ let classStr = "default";
+ if (vertex.classes.length > 0) {
+ classStr = vertex.classes.join(" ");
+ }
+ classStr = classStr + " flowchart-label";
+ const styles2 = getStylesFromArray(vertex.styles);
+ let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
+ const labelData = { width: 0, height: 0 };
+ const ports = [
+ {
+ id: vertex.id + "-west",
+ layoutOptions: {
+ "port.side": "WEST"
+ }
+ },
+ {
+ id: vertex.id + "-east",
+ layoutOptions: {
+ "port.side": "EAST"
+ }
+ },
+ {
+ id: vertex.id + "-south",
+ layoutOptions: {
+ "port.side": "SOUTH"
+ }
+ },
+ {
+ id: vertex.id + "-north",
+ layoutOptions: {
+ "port.side": "NORTH"
+ }
+ }
+ ];
+ let radious = 0;
+ let _shape = "";
+ let layoutOptions = {};
+ switch (vertex.type) {
+ case "round":
+ radious = 5;
+ _shape = "rect";
+ break;
+ case "square":
+ _shape = "rect";
+ break;
+ case "diamond":
+ _shape = "question";
+ layoutOptions = {
+ portConstraints: "FIXED_SIDE"
+ };
+ break;
+ case "hexagon":
+ _shape = "hexagon";
+ break;
+ case "odd":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "lean_right":
+ _shape = "lean_right";
+ break;
+ case "lean_left":
+ _shape = "lean_left";
+ break;
+ case "trapezoid":
+ _shape = "trapezoid";
+ break;
+ case "inv_trapezoid":
+ _shape = "inv_trapezoid";
+ break;
+ case "odd_right":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "circle":
+ _shape = "circle";
+ break;
+ case "ellipse":
+ _shape = "ellipse";
+ break;
+ case "stadium":
+ _shape = "stadium";
+ break;
+ case "subroutine":
+ _shape = "subroutine";
+ break;
+ case "cylinder":
+ _shape = "cylinder";
+ break;
+ case "group":
+ _shape = "rect";
+ break;
+ case "doublecircle":
+ _shape = "doublecircle";
+ break;
+ default:
+ _shape = "rect";
+ }
+ const node = {
+ labelStyle: styles2.labelStyle,
+ shape: _shape,
+ labelText: vertexText,
+ labelType: vertex.labelType,
+ rx: radious,
+ ry: radious,
+ class: classStr,
+ style: styles2.style,
+ id: vertex.id,
+ link: vertex.link,
+ linkTarget: vertex.linkTarget,
+ tooltip: diagObj.db.getTooltip(vertex.id) || "",
+ domId: diagObj.db.lookUpDomId(vertex.id),
+ haveCallback: vertex.haveCallback,
+ width: vertex.type === "group" ? 500 : void 0,
+ dir: vertex.dir,
+ type: vertex.type,
+ props: vertex.props,
+ padding: getConfig().flowchart.padding
+ };
+ let boundingBox;
+ let nodeEl;
+ if (node.type !== "group") {
+ nodeEl = insertNode(nodes, node, vertex.dir);
+ boundingBox = nodeEl.node().getBBox();
+ } else {
+ doc.createElementNS("http://www.w3.org/2000/svg", "text");
+ const { shapeSvg, bbox } = labelHelper(nodes, node, void 0, true);
+ labelData.width = bbox.width;
+ labelData.wrappingWidth = getConfig().flowchart.wrappingWidth;
+ labelData.height = bbox.height;
+ labelData.labelNode = shapeSvg.node();
+ node.labelData = labelData;
+ }
+ const data = {
+ id: vertex.id,
+ ports: vertex.type === "diamond" ? ports : [],
+ // labelStyle: styles.labelStyle,
+ // shape: _shape,
+ layoutOptions,
+ labelText: vertexText,
+ labelData,
+ // labels: [{ text: vertexText }],
+ // rx: radius,
+ // ry: radius,
+ // class: classStr,
+ // style: styles.style,
+ // link: vertex.link,
+ // linkTarget: vertex.linkTarget,
+ // tooltip: diagObj.db.getTooltip(vertex.id) || '',
+ domId: diagObj.db.lookUpDomId(vertex.id),
+ // haveCallback: vertex.haveCallback,
+ width: boundingBox == null ? void 0 : boundingBox.width,
+ height: boundingBox == null ? void 0 : boundingBox.height,
+ // dir: vertex.dir,
+ type: vertex.type,
+ // props: vertex.props,
+ // padding: getConfig().flowchart.padding,
+ // boundingBox,
+ el: nodeEl,
+ parent: parentLookupDb.parentById[vertex.id]
+ };
+ nodeDb[node.id] = data;
+ });
+ return graph;
+};
+const getNextPosition = (position, edgeDirection, graphDirection) => {
+ const portPos2 = {
+ TB: {
+ in: {
+ north: "north"
+ },
+ out: {
+ south: "west",
+ west: "east",
+ east: "south"
+ }
+ },
+ LR: {
+ in: {
+ west: "west"
+ },
+ out: {
+ east: "south",
+ south: "north",
+ north: "east"
+ }
+ },
+ RL: {
+ in: {
+ east: "east"
+ },
+ out: {
+ west: "north",
+ north: "south",
+ south: "west"
+ }
+ },
+ BT: {
+ in: {
+ south: "south"
+ },
+ out: {
+ north: "east",
+ east: "west",
+ west: "north"
+ }
+ }
+ };
+ portPos2.TD = portPos2.TB;
+ log.info("abc88", graphDirection, edgeDirection, position);
+ return portPos2[graphDirection][edgeDirection][position];
+};
+const getNextPort = (node, edgeDirection, graphDirection) => {
+ log.info("getNextPort abc88", { node, edgeDirection, graphDirection });
+ if (!portPos[node]) {
+ switch (graphDirection) {
+ case "TB":
+ case "TD":
+ portPos[node] = {
+ inPosition: "north",
+ outPosition: "south"
+ };
+ break;
+ case "BT":
+ portPos[node] = {
+ inPosition: "south",
+ outPosition: "north"
+ };
+ break;
+ case "RL":
+ portPos[node] = {
+ inPosition: "east",
+ outPosition: "west"
+ };
+ break;
+ case "LR":
+ portPos[node] = {
+ inPosition: "west",
+ outPosition: "east"
+ };
+ break;
+ }
+ }
+ const result = edgeDirection === "in" ? portPos[node].inPosition : portPos[node].outPosition;
+ if (edgeDirection === "in") {
+ portPos[node].inPosition = getNextPosition(
+ portPos[node].inPosition,
+ edgeDirection,
+ graphDirection
+ );
+ } else {
+ portPos[node].outPosition = getNextPosition(
+ portPos[node].outPosition,
+ edgeDirection,
+ graphDirection
+ );
+ }
+ return result;
+};
+const getEdgeStartEndPoint = (edge, dir) => {
+ let source = edge.start;
+ let target = edge.end;
+ const sourceId = source;
+ const targetId = target;
+ const startNode = nodeDb[source];
+ const endNode = nodeDb[target];
+ if (!startNode || !endNode) {
+ return { source, target };
+ }
+ if (startNode.type === "diamond") {
+ source = `${source}-${getNextPort(source, "out", dir)}`;
+ }
+ if (endNode.type === "diamond") {
+ target = `${target}-${getNextPort(target, "in", dir)}`;
+ }
+ return { source, target, sourceId, targetId };
+};
+const addEdges = function(edges, diagObj, graph, svg) {
+ log.info("abc78 edges = ", edges);
+ const labelsEl = svg.insert("g").attr("class", "edgeLabels");
+ let linkIdCnt = {};
+ let dir = diagObj.db.getDirection();
+ let defaultStyle;
+ let defaultLabelStyle;
+ if (edges.defaultStyle !== void 0) {
+ const defaultStyles = getStylesFromArray(edges.defaultStyle);
+ defaultStyle = defaultStyles.style;
+ defaultLabelStyle = defaultStyles.labelStyle;
+ }
+ edges.forEach(function(edge) {
+ var linkIdBase = "L-" + edge.start + "-" + edge.end;
+ if (linkIdCnt[linkIdBase] === void 0) {
+ linkIdCnt[linkIdBase] = 0;
+ log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
+ } else {
+ linkIdCnt[linkIdBase]++;
+ log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
+ }
+ let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase];
+ log.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]);
+ var linkNameStart = "LS-" + edge.start;
+ var linkNameEnd = "LE-" + edge.end;
+ const edgeData = { style: "", labelStyle: "" };
+ edgeData.minlen = edge.length || 1;
+ if (edge.type === "arrow_open") {
+ edgeData.arrowhead = "none";
+ } else {
+ edgeData.arrowhead = "normal";
+ }
+ edgeData.arrowTypeStart = "arrow_open";
+ edgeData.arrowTypeEnd = "arrow_open";
+ switch (edge.type) {
+ case "double_arrow_cross":
+ edgeData.arrowTypeStart = "arrow_cross";
+ case "arrow_cross":
+ edgeData.arrowTypeEnd = "arrow_cross";
+ break;
+ case "double_arrow_point":
+ edgeData.arrowTypeStart = "arrow_point";
+ case "arrow_point":
+ edgeData.arrowTypeEnd = "arrow_point";
+ break;
+ case "double_arrow_circle":
+ edgeData.arrowTypeStart = "arrow_circle";
+ case "arrow_circle":
+ edgeData.arrowTypeEnd = "arrow_circle";
+ break;
+ }
+ let style = "";
+ let labelStyle = "";
+ switch (edge.stroke) {
+ case "normal":
+ style = "fill:none;";
+ if (defaultStyle !== void 0) {
+ style = defaultStyle;
+ }
+ if (defaultLabelStyle !== void 0) {
+ labelStyle = defaultLabelStyle;
+ }
+ edgeData.thickness = "normal";
+ edgeData.pattern = "solid";
+ break;
+ case "dotted":
+ edgeData.thickness = "normal";
+ edgeData.pattern = "dotted";
+ edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
+ break;
+ case "thick":
+ edgeData.thickness = "thick";
+ edgeData.pattern = "solid";
+ edgeData.style = "stroke-width: 3.5px;fill:none;";
+ break;
+ }
+ if (edge.style !== void 0) {
+ const styles2 = getStylesFromArray(edge.style);
+ style = styles2.style;
+ labelStyle = styles2.labelStyle;
+ }
+ edgeData.style = edgeData.style += style;
+ edgeData.labelStyle = edgeData.labelStyle += labelStyle;
+ if (edge.interpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
+ } else if (edges.defaultInterpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);
+ } else {
+ edgeData.curve = interpolateToCurve(conf.curve, curveLinear);
+ }
+ if (edge.text === void 0) {
+ if (edge.style !== void 0) {
+ edgeData.arrowheadStyle = "fill: #333";
+ }
+ } else {
+ edgeData.arrowheadStyle = "fill: #333";
+ edgeData.labelpos = "c";
+ }
+ edgeData.labelType = edge.labelType;
+ edgeData.label = edge.text.replace(common.lineBreakRegex, "\n");
+ if (edge.style === void 0) {
+ edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;";
+ }
+ edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
+ edgeData.id = linkId;
+ edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd;
+ const labelEl = insertEdgeLabel(labelsEl, edgeData);
+ const { source, target, sourceId, targetId } = getEdgeStartEndPoint(edge, dir);
+ log.debug("abc78 source and target", source, target);
+ graph.edges.push({
+ id: "e" + edge.start + edge.end,
+ sources: [source],
+ targets: [target],
+ sourceId,
+ targetId,
+ labelEl,
+ labels: [
+ {
+ width: edgeData.width,
+ height: edgeData.height,
+ orgWidth: edgeData.width,
+ orgHeight: edgeData.height,
+ text: edgeData.label,
+ layoutOptions: {
+ "edgeLabels.inline": "true",
+ "edgeLabels.placement": "CENTER"
+ }
+ }
+ ],
+ edgeData
+ });
+ });
+ return graph;
+};
+const addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute) {
+ let url = "";
+ if (arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ switch (edgeData.arrowTypeStart) {
+ case "arrow_cross":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-crossStart)");
+ break;
+ case "arrow_point":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-pointStart)");
+ break;
+ case "arrow_barb":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-barbStart)");
+ break;
+ case "arrow_circle":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-circleStart)");
+ break;
+ case "aggregation":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-aggregationStart)");
+ break;
+ case "extension":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-extensionStart)");
+ break;
+ case "composition":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-compositionStart)");
+ break;
+ case "dependency":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-dependencyStart)");
+ break;
+ case "lollipop":
+ svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-lollipopStart)");
+ break;
+ }
+ switch (edgeData.arrowTypeEnd) {
+ case "arrow_cross":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-crossEnd)");
+ break;
+ case "arrow_point":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-pointEnd)");
+ break;
+ case "arrow_barb":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-barbEnd)");
+ break;
+ case "arrow_circle":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-circleEnd)");
+ break;
+ case "aggregation":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-aggregationEnd)");
+ break;
+ case "extension":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-extensionEnd)");
+ break;
+ case "composition":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-compositionEnd)");
+ break;
+ case "dependency":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-dependencyEnd)");
+ break;
+ case "lollipop":
+ svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-lollipopEnd)");
+ break;
+ }
+};
+const getClasses = function(text, diagObj) {
+ log.info("Extracting classes");
+ diagObj.db.clear("ver-2");
+ try {
+ diagObj.parse(text);
+ return diagObj.db.getClasses();
+ } catch (e) {
+ return {};
+ }
+};
+const addSubGraphs = function(db2) {
+ const parentLookupDb = { parentById: {}, childrenById: {} };
+ const subgraphs = db2.getSubGraphs();
+ log.info("Subgraphs - ", subgraphs);
+ subgraphs.forEach(function(subgraph) {
+ subgraph.nodes.forEach(function(node) {
+ parentLookupDb.parentById[node] = subgraph.id;
+ if (parentLookupDb.childrenById[subgraph.id] === void 0) {
+ parentLookupDb.childrenById[subgraph.id] = [];
+ }
+ parentLookupDb.childrenById[subgraph.id].push(node);
+ });
+ });
+ subgraphs.forEach(function(subgraph) {
+ ({ id: subgraph.id });
+ if (parentLookupDb.parentById[subgraph.id] !== void 0) {
+ parentLookupDb.parentById[subgraph.id];
+ }
+ });
+ return parentLookupDb;
+};
+const calcOffset = function(src, dest, parentLookupDb) {
+ const ancestor = findCommonAncestor(src, dest, parentLookupDb);
+ if (ancestor === void 0 || ancestor === "root") {
+ return { x: 0, y: 0 };
+ }
+ const ancestorOffset = nodeDb[ancestor].offset;
+ return { x: ancestorOffset.posX, y: ancestorOffset.posY };
+};
+const insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb) {
+ const offset = calcOffset(edge.sourceId, edge.targetId, parentLookupDb);
+ const src = edge.sections[0].startPoint;
+ const dest = edge.sections[0].endPoint;
+ const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : [];
+ const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]);
+ const points = [
+ [src.x + offset.x, src.y + offset.y],
+ ...segPoints,
+ [dest.x + offset.x, dest.y + offset.y]
+ ];
+ const curve = line().curve(curveLinear);
+ const edgePath = edgesEl.insert("path").attr("d", curve(points)).attr("class", "path").attr("fill", "none");
+ const edgeG = edgesEl.insert("g").attr("class", "edgeLabel");
+ const edgeWithLabel = select(edgeG.node().appendChild(edge.labelEl));
+ const box = edgeWithLabel.node().firstChild.getBoundingClientRect();
+ edgeWithLabel.attr("width", box.width);
+ edgeWithLabel.attr("height", box.height);
+ edgeG.attr(
+ "transform",
+ `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})`
+ );
+ addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute);
+};
+const insertChildren = (nodeArray, parentLookupDb) => {
+ nodeArray.forEach((node) => {
+ if (!node.children) {
+ node.children = [];
+ }
+ const childIds = parentLookupDb.childrenById[node.id];
+ if (childIds) {
+ childIds.forEach((childId) => {
+ node.children.push(nodeDb[childId]);
+ });
+ }
+ insertChildren(node.children, parentLookupDb);
+ });
+};
+const draw = async function(text, id, _version, diagObj) {
+ var _a;
+ diagObj.db.clear();
+ nodeDb = {};
+ portPos = {};
+ diagObj.db.setGen("gen-2");
+ diagObj.parser.parse(text);
+ const renderEl = select("body").append("div").attr("style", "height:400px").attr("id", "cy");
+ let graph = {
+ id: "root",
+ layoutOptions: {
+ "elk.hierarchyHandling": "INCLUDE_CHILDREN",
+ "org.eclipse.elk.padding": "[top=100, left=100, bottom=110, right=110]",
+ "elk.layered.spacing.edgeNodeBetweenLayers": "30",
+ // 'elk.layered.mergeEdges': 'true',
+ "elk.direction": "DOWN"
+ // 'elk.ports.sameLayerEdges': true,
+ // 'nodePlacement.strategy': 'SIMPLE',
+ },
+ children: [],
+ edges: []
+ };
+ log.info("Drawing flowchart using v3 renderer", elk);
+ let dir = diagObj.db.getDirection();
+ switch (dir) {
+ case "BT":
+ graph.layoutOptions["elk.direction"] = "UP";
+ break;
+ case "TB":
+ graph.layoutOptions["elk.direction"] = "DOWN";
+ break;
+ case "LR":
+ graph.layoutOptions["elk.direction"] = "RIGHT";
+ break;
+ case "RL":
+ graph.layoutOptions["elk.direction"] = "LEFT";
+ break;
+ }
+ const { securityLevel, flowchart: conf2 } = getConfig();
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ const svg = root.select(`[id="${id}"]`);
+ const markers = ["point", "circle", "cross"];
+ insertMarkers(svg, markers, diagObj.type, diagObj.arrowMarkerAbsolute);
+ const vert = diagObj.db.getVertices();
+ let subG;
+ const subGraphs = diagObj.db.getSubGraphs();
+ log.info("Subgraphs - ", subGraphs);
+ for (let i = subGraphs.length - 1; i >= 0; i--) {
+ subG = subGraphs[i];
+ diagObj.db.addVertex(
+ subG.id,
+ { text: subG.title, type: subG.labelType },
+ "group",
+ void 0,
+ subG.classes,
+ subG.dir
+ );
+ }
+ const subGraphsEl = svg.insert("g").attr("class", "subgraphs");
+ const parentLookupDb = addSubGraphs(diagObj.db);
+ graph = addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph);
+ const edgesEl = svg.insert("g").attr("class", "edges edgePath");
+ const edges = diagObj.db.getEdges();
+ graph = addEdges(edges, diagObj, graph, svg);
+ const nodes = Object.keys(nodeDb);
+ nodes.forEach((nodeId) => {
+ const node = nodeDb[nodeId];
+ if (!node.parent) {
+ graph.children.push(node);
+ }
+ if (parentLookupDb.childrenById[nodeId] !== void 0) {
+ node.labels = [
+ {
+ text: node.labelText,
+ layoutOptions: {
+ "nodeLabels.placement": "[H_CENTER, V_TOP, INSIDE]"
+ },
+ width: node.labelData.width,
+ height: node.labelData.height
+ // width: 100,
+ // height: 100,
+ }
+ ];
+ delete node.x;
+ delete node.y;
+ delete node.width;
+ delete node.height;
+ }
+ });
+ insertChildren(graph.children, parentLookupDb);
+ log.info("after layout", JSON.stringify(graph, null, 2));
+ const g = await elk.layout(graph);
+ drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0);
+ log.info("after layout", g);
+ (_a = g.edges) == null ? void 0 : _a.map((edge) => {
+ insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb);
+ });
+ setupGraphViewbox({}, svg, conf2.diagramPadding, conf2.useMaxWidth);
+ renderEl.remove();
+};
+const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => {
+ nodeArray.forEach(function(node) {
+ if (node) {
+ nodeDb[node.id].offset = {
+ posX: node.x + relX,
+ posY: node.y + relY,
+ x: relX,
+ y: relY,
+ depth,
+ width: node.width,
+ height: node.height
+ };
+ if (node.type === "group") {
+ const subgraphEl = subgraphsEl.insert("g").attr("class", "subgraph");
+ subgraphEl.insert("rect").attr("class", "subgraph subgraph-lvl-" + depth % 5 + " node").attr("x", node.x + relX).attr("y", node.y + relY).attr("width", node.width).attr("height", node.height);
+ const label = subgraphEl.insert("g").attr("class", "label");
+ const labelCentering = getConfig().flowchart.htmlLabels ? node.labelData.width / 2 : 0;
+ label.attr(
+ "transform",
+ `translate(${node.labels[0].x + relX + node.x + labelCentering}, ${node.labels[0].y + relY + node.y + 3})`
+ );
+ label.node().appendChild(node.labelData.labelNode);
+ log.info("Id (UGH)= ", node.type, node.labels);
+ } else {
+ log.info("Id (UGH)= ", node.id);
+ node.el.attr(
+ "transform",
+ `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})`
+ );
+ }
+ }
+ });
+ nodeArray.forEach(function(node) {
+ if (node && node.type === "group") {
+ drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj, depth + 1);
+ }
+ });
+};
+const renderer = {
+ getClasses,
+ draw
+};
+const genSections = (options) => {
+ let sections = "";
+ for (let i = 0; i < 5; i++) {
+ sections += `
+ .subgraph-lvl-${i} {
+ fill: ${options[`surface${i}`]};
+ stroke: ${options[`surfacePeer${i}`]};
+ }
+ `;
+ }
+ return sections;
+};
+const getStyles = (options) => `.label {
+ font-family: ${options.fontFamily};
+ color: ${options.nodeTextColor || options.textColor};
+ }
+ .cluster-label text {
+ fill: ${options.titleColor};
+ }
+ .cluster-label span {
+ color: ${options.titleColor};
+ }
+
+ .label text,span {
+ fill: ${options.nodeTextColor || options.textColor};
+ color: ${options.nodeTextColor || options.textColor};
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+ stroke-width: 1px;
+ }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${options.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${options.lineColor};
+ stroke-width: 2.0px;
+ }
+
+ .flowchart-link {
+ stroke: ${options.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${options.edgeLabelBackground};
+ rect {
+ opacity: 0.85;
+ background-color: ${options.edgeLabelBackground};
+ fill: ${options.edgeLabelBackground};
+ }
+ text-align: center;
+ }
+
+ .cluster rect {
+ fill: ${options.clusterBkg};
+ stroke: ${options.clusterBorder};
+ stroke-width: 1px;
+ }
+
+ .cluster text {
+ fill: ${options.titleColor};
+ }
+
+ .cluster span {
+ color: ${options.titleColor};
+ }
+ /* .cluster div {
+ color: ${options.titleColor};
+ } */
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: ${options.fontFamily};
+ font-size: 12px;
+ background: ${options.tertiaryColor};
+ border: 1px solid ${options.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .flowchartTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor};
+ }
+ .subgraph {
+ stroke-width:2;
+ rx:3;
+ }
+ // .subgraph-lvl-1 {
+ // fill:#ccc;
+ // // stroke:black;
+ // }
+
+ .flowchart-label text {
+ text-anchor: middle;
+ }
+
+ ${genSections(options)}
+`;
+const styles = getStyles;
+const diagram = {
+ db,
+ renderer,
+ parser,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=flowchart-elk-definition-a44a74cb.js.map
diff --git a/scopegraphs-render-docs/doc/js/ganttDiagram-04e74c0a.js b/scopegraphs-render-docs/doc/js/ganttDiagram-04e74c0a.js
new file mode 100644
index 0000000..5ea97cc
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/ganttDiagram-04e74c0a.js
@@ -0,0 +1,2006 @@
+import { sanitizeUrl } from "@braintree/sanitize-url";
+import dayjs from "dayjs";
+import dayjsIsoWeek from "dayjs/plugin/isoWeek.js";
+import dayjsCustomParseFormat from "dayjs/plugin/customParseFormat.js";
+import dayjsAdvancedFormat from "dayjs/plugin/advancedFormat.js";
+import { g as getConfig, o as setAccTitle, p as getAccTitle, w as setDiagramTitle, x as getDiagramTitle, v as setAccDescription, q as getAccDescription, y as clear$1, l as log, e as common } from "./commonDb-573409be.js";
+import { u as utils, k as configureSvgSize } from "./utils-d622194a.js";
+import { m as mermaidAPI } from "./mermaidAPI-3ae0f2f0.js";
+import { select, scaleTime, min, max, scaleLinear, interpolateHcl, axisBottom, timeFormat, timeMonth, timeWeek, timeDay, timeHour, timeMinute, axisTop } from "d3";
+import "dompurify";
+import "khroma";
+import "lodash-es/memoize.js";
+import "stylis";
+import "lodash-es/isEmpty.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 20], $V9 = [1, 21], $Va = [1, 22], $Vb = [1, 23], $Vc = [1, 24], $Vd = [1, 25], $Ve = [1, 26], $Vf = [1, 27], $Vg = [1, 29], $Vh = [1, 31], $Vi = [1, 34], $Vj = [5, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "directive": 4, "gantt": 5, "document": 6, "EOF": 7, "line": 8, "SPACE": 9, "statement": 10, "NL": 11, "dateFormat": 12, "inclusiveEndDates": 13, "topAxis": 14, "axisFormat": 15, "tickInterval": 16, "excludes": 17, "includes": 18, "todayMarker": 19, "title": 20, "acc_title": 21, "acc_title_value": 22, "acc_descr": 23, "acc_descr_value": 24, "acc_descr_multiline_value": 25, "section": 26, "clickStatement": 27, "taskTxt": 28, "taskData": 29, "openDirective": 30, "typeDirective": 31, "closeDirective": 32, ":": 33, "argDirective": 34, "click": 35, "callbackname": 36, "callbackargs": 37, "href": 38, "clickStatementDebug": 39, "open_directive": 40, "type_directive": 41, "arg_directive": 42, "close_directive": 43, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 5: "gantt", 7: "EOF", 9: "SPACE", 11: "NL", 12: "dateFormat", 13: "inclusiveEndDates", 14: "topAxis", 15: "axisFormat", 16: "tickInterval", 17: "excludes", 18: "includes", 19: "todayMarker", 20: "title", 21: "acc_title", 22: "acc_title_value", 23: "acc_descr", 24: "acc_descr_value", 25: "acc_descr_multiline_value", 26: "section", 28: "taskTxt", 29: "taskData", 33: ":", 35: "click", 36: "callbackname", 37: "callbackargs", 38: "href", 40: "open_directive", 41: "type_directive", 42: "arg_directive", 43: "close_directive" },
+ productions_: [0, [3, 2], [3, 3], [6, 0], [6, 2], [8, 2], [8, 1], [8, 1], [8, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 2], [10, 1], [4, 4], [4, 6], [27, 2], [27, 3], [27, 3], [27, 4], [27, 3], [27, 4], [27, 2], [39, 2], [39, 3], [39, 3], [39, 4], [39, 3], [39, 4], [39, 2], [30, 1], [31, 1], [34, 1], [32, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 2:
+ return $$[$0 - 1];
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = $$[$0];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 9:
+ yy.setDateFormat($$[$0].substr(11));
+ this.$ = $$[$0].substr(11);
+ break;
+ case 10:
+ yy.enableInclusiveEndDates();
+ this.$ = $$[$0].substr(18);
+ break;
+ case 11:
+ yy.TopAxis();
+ this.$ = $$[$0].substr(8);
+ break;
+ case 12:
+ yy.setAxisFormat($$[$0].substr(11));
+ this.$ = $$[$0].substr(11);
+ break;
+ case 13:
+ yy.setTickInterval($$[$0].substr(13));
+ this.$ = $$[$0].substr(13);
+ break;
+ case 14:
+ yy.setExcludes($$[$0].substr(9));
+ this.$ = $$[$0].substr(9);
+ break;
+ case 15:
+ yy.setIncludes($$[$0].substr(9));
+ this.$ = $$[$0].substr(9);
+ break;
+ case 16:
+ yy.setTodayMarker($$[$0].substr(12));
+ this.$ = $$[$0].substr(12);
+ break;
+ case 17:
+ yy.setDiagramTitle($$[$0].substr(6));
+ this.$ = $$[$0].substr(6);
+ break;
+ case 18:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 19:
+ case 20:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 21:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 23:
+ yy.addTask($$[$0 - 1], $$[$0]);
+ this.$ = "task";
+ break;
+ case 27:
+ this.$ = $$[$0 - 1];
+ yy.setClickEvent($$[$0 - 1], $$[$0], null);
+ break;
+ case 28:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 29:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);
+ yy.setLink($$[$0 - 2], $$[$0]);
+ break;
+ case 30:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
+ yy.setLink($$[$0 - 3], $$[$0]);
+ break;
+ case 31:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0], null);
+ yy.setLink($$[$0 - 2], $$[$0 - 1]);
+ break;
+ case 32:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);
+ yy.setLink($$[$0 - 3], $$[$0 - 2]);
+ break;
+ case 33:
+ this.$ = $$[$0 - 1];
+ yy.setLink($$[$0 - 1], $$[$0]);
+ break;
+ case 34:
+ case 40:
+ this.$ = $$[$0 - 1] + " " + $$[$0];
+ break;
+ case 35:
+ case 36:
+ case 38:
+ this.$ = $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
+ break;
+ case 37:
+ case 39:
+ this.$ = $$[$0 - 3] + " " + $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
+ break;
+ case 41:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 42:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 43:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 44:
+ yy.parseDirective("}%%", "close_directive", "gantt");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: $V0, 30: 4, 40: $V1 }, { 1: [3] }, { 3: 6, 4: 2, 5: $V0, 30: 4, 40: $V1 }, o($V2, [2, 3], { 6: 7 }), { 31: 8, 41: [1, 9] }, { 41: [2, 41] }, { 1: [2, 1] }, { 4: 30, 7: [1, 10], 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: $V3, 13: $V4, 14: $V5, 15: $V6, 16: $V7, 17: $V8, 18: $V9, 19: $Va, 20: $Vb, 21: $Vc, 23: $Vd, 25: $Ve, 26: $Vf, 27: 28, 28: $Vg, 30: 4, 35: $Vh, 40: $V1 }, { 32: 32, 33: [1, 33], 43: $Vi }, o([33, 43], [2, 42]), o($V2, [2, 8], { 1: [2, 2] }), o($V2, [2, 4]), { 4: 30, 10: 35, 12: $V3, 13: $V4, 14: $V5, 15: $V6, 16: $V7, 17: $V8, 18: $V9, 19: $Va, 20: $Vb, 21: $Vc, 23: $Vd, 25: $Ve, 26: $Vf, 27: 28, 28: $Vg, 30: 4, 35: $Vh, 40: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 9]), o($V2, [2, 10]), o($V2, [2, 11]), o($V2, [2, 12]), o($V2, [2, 13]), o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), { 22: [1, 36] }, { 24: [1, 37] }, o($V2, [2, 20]), o($V2, [2, 21]), o($V2, [2, 22]), { 29: [1, 38] }, o($V2, [2, 24]), { 36: [1, 39], 38: [1, 40] }, { 11: [1, 41] }, { 34: 42, 42: [1, 43] }, { 11: [2, 44] }, o($V2, [2, 5]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 23]), o($V2, [2, 27], { 37: [1, 44], 38: [1, 45] }), o($V2, [2, 33], { 36: [1, 46] }), o($Vj, [2, 25]), { 32: 47, 43: $Vi }, { 43: [2, 43] }, o($V2, [2, 28], { 38: [1, 48] }), o($V2, [2, 29]), o($V2, [2, 31], { 37: [1, 49] }), { 11: [1, 50] }, o($V2, [2, 30]), o($V2, [2, 32]), o($Vj, [2, 26])],
+ defaultActions: { 5: [2, 41], 6: [2, 1], 34: [2, 44], 43: [2, 43] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 40;
+ case 1:
+ this.begin("type_directive");
+ return 41;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 33;
+ case 3:
+ this.popState();
+ this.popState();
+ return 43;
+ case 4:
+ return 42;
+ case 5:
+ this.begin("acc_title");
+ return 21;
+ case 6:
+ this.popState();
+ return "acc_title_value";
+ case 7:
+ this.begin("acc_descr");
+ return 23;
+ case 8:
+ this.popState();
+ return "acc_descr_value";
+ case 9:
+ this.begin("acc_descr_multiline");
+ break;
+ case 10:
+ this.popState();
+ break;
+ case 11:
+ return "acc_descr_multiline_value";
+ case 12:
+ break;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ return 11;
+ case 16:
+ break;
+ case 17:
+ break;
+ case 18:
+ break;
+ case 19:
+ this.begin("href");
+ break;
+ case 20:
+ this.popState();
+ break;
+ case 21:
+ return 38;
+ case 22:
+ this.begin("callbackname");
+ break;
+ case 23:
+ this.popState();
+ break;
+ case 24:
+ this.popState();
+ this.begin("callbackargs");
+ break;
+ case 25:
+ return 36;
+ case 26:
+ this.popState();
+ break;
+ case 27:
+ return 37;
+ case 28:
+ this.begin("click");
+ break;
+ case 29:
+ this.popState();
+ break;
+ case 30:
+ return 35;
+ case 31:
+ return 5;
+ case 32:
+ return 12;
+ case 33:
+ return 13;
+ case 34:
+ return 14;
+ case 35:
+ return 15;
+ case 36:
+ return 16;
+ case 37:
+ return 18;
+ case 38:
+ return 17;
+ case 39:
+ return 19;
+ case 40:
+ return "date";
+ case 41:
+ return 20;
+ case 42:
+ return "accDescription";
+ case 43:
+ return 26;
+ case 44:
+ return 28;
+ case 45:
+ return 29;
+ case 46:
+ return 33;
+ case 47:
+ return 7;
+ case 48:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\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, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "callbackargs": { "rules": [26, 27], "inclusive": false }, "callbackname": { "rules": [23, 24, 25], "inclusive": false }, "href": { "rules": [20, 21], "inclusive": false }, "click": { "rules": [29, 30], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 22, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const ganttParser = parser;
+dayjs.extend(dayjsIsoWeek);
+dayjs.extend(dayjsCustomParseFormat);
+dayjs.extend(dayjsAdvancedFormat);
+let dateFormat = "";
+let axisFormat = "";
+let tickInterval = void 0;
+let todayMarker = "";
+let includes = [];
+let excludes = [];
+let links = {};
+let sections = [];
+let tasks = [];
+let currentSection = "";
+let displayMode = "";
+const tags = ["active", "done", "crit", "milestone"];
+let funs = [];
+let inclusiveEndDates = false;
+let topAxis = false;
+let lastOrder = 0;
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const clear = function() {
+ sections = [];
+ tasks = [];
+ currentSection = "";
+ funs = [];
+ taskCnt = 0;
+ lastTask = void 0;
+ lastTaskID = void 0;
+ rawTasks = [];
+ dateFormat = "";
+ axisFormat = "";
+ displayMode = "";
+ tickInterval = void 0;
+ todayMarker = "";
+ includes = [];
+ excludes = [];
+ inclusiveEndDates = false;
+ topAxis = false;
+ lastOrder = 0;
+ links = {};
+ clear$1();
+};
+const setAxisFormat = function(txt) {
+ axisFormat = txt;
+};
+const getAxisFormat = function() {
+ return axisFormat;
+};
+const setTickInterval = function(txt) {
+ tickInterval = txt;
+};
+const getTickInterval = function() {
+ return tickInterval;
+};
+const setTodayMarker = function(txt) {
+ todayMarker = txt;
+};
+const getTodayMarker = function() {
+ return todayMarker;
+};
+const setDateFormat = function(txt) {
+ dateFormat = txt;
+};
+const enableInclusiveEndDates = function() {
+ inclusiveEndDates = true;
+};
+const endDatesAreInclusive = function() {
+ return inclusiveEndDates;
+};
+const enableTopAxis = function() {
+ topAxis = true;
+};
+const topAxisEnabled = function() {
+ return topAxis;
+};
+const setDisplayMode = function(txt) {
+ displayMode = txt;
+};
+const getDisplayMode = function() {
+ return displayMode;
+};
+const getDateFormat = function() {
+ return dateFormat;
+};
+const setIncludes = function(txt) {
+ includes = txt.toLowerCase().split(/[\s,]+/);
+};
+const getIncludes = function() {
+ return includes;
+};
+const setExcludes = function(txt) {
+ excludes = txt.toLowerCase().split(/[\s,]+/);
+};
+const getExcludes = function() {
+ return excludes;
+};
+const getLinks = function() {
+ return links;
+};
+const addSection = function(txt) {
+ currentSection = txt;
+ sections.push(txt);
+};
+const getSections = function() {
+ return sections;
+};
+const getTasks = function() {
+ let allItemsProcessed = compileTasks();
+ const maxDepth = 10;
+ let iterationCount = 0;
+ while (!allItemsProcessed && iterationCount < maxDepth) {
+ allItemsProcessed = compileTasks();
+ iterationCount++;
+ }
+ tasks = rawTasks;
+ return tasks;
+};
+const isInvalidDate = function(date, dateFormat2, excludes2, includes2) {
+ if (includes2.includes(date.format(dateFormat2.trim()))) {
+ return false;
+ }
+ if (date.isoWeekday() >= 6 && excludes2.includes("weekends")) {
+ return true;
+ }
+ if (excludes2.includes(date.format("dddd").toLowerCase())) {
+ return true;
+ }
+ return excludes2.includes(date.format(dateFormat2.trim()));
+};
+const checkTaskDates = function(task, dateFormat2, excludes2, includes2) {
+ if (!excludes2.length || task.manualEndTime) {
+ return;
+ }
+ let startTime;
+ if (task.startTime instanceof Date) {
+ startTime = dayjs(task.startTime);
+ } else {
+ startTime = dayjs(task.startTime, dateFormat2, true);
+ }
+ startTime = startTime.add(1, "d");
+ let originalEndTime;
+ if (task.endTime instanceof Date) {
+ originalEndTime = dayjs(task.endTime);
+ } else {
+ originalEndTime = dayjs(task.endTime, dateFormat2, true);
+ }
+ const [fixedEndTime, renderEndTime] = fixTaskDates(
+ startTime,
+ originalEndTime,
+ dateFormat2,
+ excludes2,
+ includes2
+ );
+ task.endTime = fixedEndTime.toDate();
+ task.renderEndTime = renderEndTime;
+};
+const fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) {
+ let invalid = false;
+ let renderEndTime = null;
+ while (startTime <= endTime) {
+ if (!invalid) {
+ renderEndTime = endTime.toDate();
+ }
+ invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2);
+ if (invalid) {
+ endTime = endTime.add(1, "d");
+ }
+ startTime = startTime.add(1, "d");
+ }
+ return [endTime, renderEndTime];
+};
+const getStartDate = function(prevTime, dateFormat2, str) {
+ str = str.trim();
+ const re = /^after\s+([\d\w- ]+)/;
+ const afterStatement = re.exec(str.trim());
+ if (afterStatement !== null) {
+ let latestEndingTask = null;
+ afterStatement[1].split(" ").forEach(function(id) {
+ let task = findTaskById(id);
+ if (task !== void 0) {
+ if (!latestEndingTask) {
+ latestEndingTask = task;
+ } else {
+ if (task.endTime > latestEndingTask.endTime) {
+ latestEndingTask = task;
+ }
+ }
+ }
+ });
+ if (!latestEndingTask) {
+ const dt = new Date();
+ dt.setHours(0, 0, 0, 0);
+ return dt;
+ } else {
+ return latestEndingTask.endTime;
+ }
+ }
+ let mDate = dayjs(str, dateFormat2.trim(), true);
+ if (mDate.isValid()) {
+ return mDate.toDate();
+ } else {
+ log.debug("Invalid date:" + str);
+ log.debug("With date format:" + dateFormat2.trim());
+ const d = new Date(str);
+ if (d === void 0 || isNaN(d.getTime())) {
+ throw new Error("Invalid date:" + str);
+ }
+ return d;
+ }
+};
+const parseDuration = function(str) {
+ const statement = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(str.trim());
+ if (statement !== null) {
+ return [Number.parseFloat(statement[1]), statement[2]];
+ }
+ return [NaN, "ms"];
+};
+const getEndDate = function(prevTime, dateFormat2, str, inclusive = false) {
+ str = str.trim();
+ let mDate = dayjs(str, dateFormat2.trim(), true);
+ if (mDate.isValid()) {
+ if (inclusive) {
+ mDate = mDate.add(1, "d");
+ }
+ return mDate.toDate();
+ }
+ let endTime = dayjs(prevTime);
+ const [durationValue, durationUnit] = parseDuration(str);
+ if (!Number.isNaN(durationValue)) {
+ const newEndTime = endTime.add(durationValue, durationUnit);
+ if (newEndTime.isValid()) {
+ endTime = newEndTime;
+ }
+ }
+ return endTime.toDate();
+};
+let taskCnt = 0;
+const parseId = function(idStr) {
+ if (idStr === void 0) {
+ taskCnt = taskCnt + 1;
+ return "task" + taskCnt;
+ }
+ return idStr;
+};
+const compileData = function(prevTask, dataStr) {
+ let ds;
+ if (dataStr.substr(0, 1) === ":") {
+ ds = dataStr.substr(1, dataStr.length);
+ } else {
+ ds = dataStr;
+ }
+ const data = ds.split(",");
+ const task = {};
+ getTaskTags(data, task, tags);
+ for (let i = 0; i < data.length; i++) {
+ data[i] = data[i].trim();
+ }
+ let endTimeData = "";
+ switch (data.length) {
+ case 1:
+ task.id = parseId();
+ task.startTime = prevTask.endTime;
+ endTimeData = data[0];
+ break;
+ case 2:
+ task.id = parseId();
+ task.startTime = getStartDate(void 0, dateFormat, data[0]);
+ endTimeData = data[1];
+ break;
+ case 3:
+ task.id = parseId(data[0]);
+ task.startTime = getStartDate(void 0, dateFormat, data[1]);
+ endTimeData = data[2];
+ break;
+ }
+ if (endTimeData) {
+ task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
+ task.manualEndTime = dayjs(endTimeData, "YYYY-MM-DD", true).isValid();
+ checkTaskDates(task, dateFormat, excludes, includes);
+ }
+ return task;
+};
+const parseData = function(prevTaskId, dataStr) {
+ let ds;
+ if (dataStr.substr(0, 1) === ":") {
+ ds = dataStr.substr(1, dataStr.length);
+ } else {
+ ds = dataStr;
+ }
+ const data = ds.split(",");
+ const task = {};
+ getTaskTags(data, task, tags);
+ for (let i = 0; i < data.length; i++) {
+ data[i] = data[i].trim();
+ }
+ switch (data.length) {
+ case 1:
+ task.id = parseId();
+ task.startTime = {
+ type: "prevTaskEnd",
+ id: prevTaskId
+ };
+ task.endTime = {
+ data: data[0]
+ };
+ break;
+ case 2:
+ task.id = parseId();
+ task.startTime = {
+ type: "getStartDate",
+ startData: data[0]
+ };
+ task.endTime = {
+ data: data[1]
+ };
+ break;
+ case 3:
+ task.id = parseId(data[0]);
+ task.startTime = {
+ type: "getStartDate",
+ startData: data[1]
+ };
+ task.endTime = {
+ data: data[2]
+ };
+ break;
+ }
+ return task;
+};
+let lastTask;
+let lastTaskID;
+let rawTasks = [];
+const taskDb = {};
+const addTask = function(descr, data) {
+ const rawTask = {
+ section: currentSection,
+ type: currentSection,
+ processed: false,
+ manualEndTime: false,
+ renderEndTime: null,
+ raw: { data },
+ task: descr,
+ classes: []
+ };
+ const taskInfo = parseData(lastTaskID, data);
+ rawTask.raw.startTime = taskInfo.startTime;
+ rawTask.raw.endTime = taskInfo.endTime;
+ rawTask.id = taskInfo.id;
+ rawTask.prevTaskId = lastTaskID;
+ rawTask.active = taskInfo.active;
+ rawTask.done = taskInfo.done;
+ rawTask.crit = taskInfo.crit;
+ rawTask.milestone = taskInfo.milestone;
+ rawTask.order = lastOrder;
+ lastOrder++;
+ const pos = rawTasks.push(rawTask);
+ lastTaskID = rawTask.id;
+ taskDb[rawTask.id] = pos - 1;
+};
+const findTaskById = function(id) {
+ const pos = taskDb[id];
+ return rawTasks[pos];
+};
+const addTaskOrg = function(descr, data) {
+ const newTask = {
+ section: currentSection,
+ type: currentSection,
+ description: descr,
+ task: descr,
+ classes: []
+ };
+ const taskInfo = compileData(lastTask, data);
+ newTask.startTime = taskInfo.startTime;
+ newTask.endTime = taskInfo.endTime;
+ newTask.id = taskInfo.id;
+ newTask.active = taskInfo.active;
+ newTask.done = taskInfo.done;
+ newTask.crit = taskInfo.crit;
+ newTask.milestone = taskInfo.milestone;
+ lastTask = newTask;
+ tasks.push(newTask);
+};
+const compileTasks = function() {
+ const compileTask = function(pos) {
+ const task = rawTasks[pos];
+ let startTime = "";
+ switch (rawTasks[pos].raw.startTime.type) {
+ case "prevTaskEnd": {
+ const prevTask = findTaskById(task.prevTaskId);
+ task.startTime = prevTask.endTime;
+ break;
+ }
+ case "getStartDate":
+ startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData);
+ if (startTime) {
+ rawTasks[pos].startTime = startTime;
+ }
+ break;
+ }
+ if (rawTasks[pos].startTime) {
+ rawTasks[pos].endTime = getEndDate(
+ rawTasks[pos].startTime,
+ dateFormat,
+ rawTasks[pos].raw.endTime.data,
+ inclusiveEndDates
+ );
+ if (rawTasks[pos].endTime) {
+ rawTasks[pos].processed = true;
+ rawTasks[pos].manualEndTime = dayjs(
+ rawTasks[pos].raw.endTime.data,
+ "YYYY-MM-DD",
+ true
+ ).isValid();
+ checkTaskDates(rawTasks[pos], dateFormat, excludes, includes);
+ }
+ }
+ return rawTasks[pos].processed;
+ };
+ let allProcessed = true;
+ for (const [i, rawTask] of rawTasks.entries()) {
+ compileTask(i);
+ allProcessed = allProcessed && rawTask.processed;
+ }
+ return allProcessed;
+};
+const setLink = function(ids, _linkStr) {
+ let linkStr = _linkStr;
+ if (getConfig().securityLevel !== "loose") {
+ linkStr = sanitizeUrl(_linkStr);
+ }
+ ids.split(",").forEach(function(id) {
+ let rawTask = findTaskById(id);
+ if (rawTask !== void 0) {
+ pushFun(id, () => {
+ window.open(linkStr, "_self");
+ });
+ links[id] = linkStr;
+ }
+ });
+ setClass(ids, "clickable");
+};
+const setClass = function(ids, className) {
+ ids.split(",").forEach(function(id) {
+ let rawTask = findTaskById(id);
+ if (rawTask !== void 0) {
+ rawTask.classes.push(className);
+ }
+ });
+};
+const setClickFun = function(id, functionName, functionArgs) {
+ if (getConfig().securityLevel !== "loose") {
+ return;
+ }
+ if (functionName === void 0) {
+ return;
+ }
+ let argList = [];
+ if (typeof functionArgs === "string") {
+ argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let i = 0; i < argList.length; i++) {
+ let item = argList[i].trim();
+ if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
+ item = item.substr(1, item.length - 2);
+ }
+ argList[i] = item;
+ }
+ }
+ if (argList.length === 0) {
+ argList.push(id);
+ }
+ let rawTask = findTaskById(id);
+ if (rawTask !== void 0) {
+ pushFun(id, () => {
+ utils.runFunc(functionName, ...argList);
+ });
+ }
+};
+const pushFun = function(id, callbackFunction) {
+ funs.push(
+ function() {
+ const elem = document.querySelector(`[id="${id}"]`);
+ if (elem !== null) {
+ elem.addEventListener("click", function() {
+ callbackFunction();
+ });
+ }
+ },
+ function() {
+ const elem = document.querySelector(`[id="${id}-text"]`);
+ if (elem !== null) {
+ elem.addEventListener("click", function() {
+ callbackFunction();
+ });
+ }
+ }
+ );
+};
+const setClickEvent = function(ids, functionName, functionArgs) {
+ ids.split(",").forEach(function(id) {
+ setClickFun(id, functionName, functionArgs);
+ });
+ setClass(ids, "clickable");
+};
+const bindFunctions = function(element) {
+ funs.forEach(function(fun) {
+ fun(element);
+ });
+};
+const ganttDb = {
+ parseDirective,
+ getConfig: () => getConfig().gantt,
+ clear,
+ setDateFormat,
+ getDateFormat,
+ enableInclusiveEndDates,
+ endDatesAreInclusive,
+ enableTopAxis,
+ topAxisEnabled,
+ setAxisFormat,
+ getAxisFormat,
+ setTickInterval,
+ getTickInterval,
+ setTodayMarker,
+ getTodayMarker,
+ setAccTitle,
+ getAccTitle,
+ setDiagramTitle,
+ getDiagramTitle,
+ setDisplayMode,
+ getDisplayMode,
+ setAccDescription,
+ getAccDescription,
+ addSection,
+ getSections,
+ getTasks,
+ addTask,
+ findTaskById,
+ addTaskOrg,
+ setIncludes,
+ getIncludes,
+ setExcludes,
+ getExcludes,
+ setClickEvent,
+ setLink,
+ getLinks,
+ bindFunctions,
+ parseDuration,
+ isInvalidDate
+};
+function getTaskTags(data, task, tags2) {
+ let matchFound = true;
+ while (matchFound) {
+ matchFound = false;
+ tags2.forEach(function(t) {
+ const pattern = "^\\s*" + t + "\\s*$";
+ const regex = new RegExp(pattern);
+ if (data[0].match(regex)) {
+ task[t] = true;
+ data.shift(1);
+ matchFound = true;
+ }
+ });
+ }
+}
+const setConf = function() {
+ log.debug("Something is calling, setConf, remove the call");
+};
+const getMaxIntersections = (tasks2, orderOffset) => {
+ let timeline = [...tasks2].map(() => -Infinity);
+ let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order);
+ let maxIntersections = 0;
+ for (const element of sorted) {
+ for (let j = 0; j < timeline.length; j++) {
+ if (element.startTime >= timeline[j]) {
+ timeline[j] = element.endTime;
+ element.order = j + orderOffset;
+ if (j > maxIntersections) {
+ maxIntersections = j;
+ }
+ break;
+ }
+ }
+ }
+ return maxIntersections;
+};
+let w;
+const draw = function(text, id, version, diagObj) {
+ const conf = getConfig().gantt;
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ const elem = doc.getElementById(id);
+ w = elem.parentElement.offsetWidth;
+ if (w === void 0) {
+ w = 1200;
+ }
+ if (conf.useWidth !== void 0) {
+ w = conf.useWidth;
+ }
+ const taskArray = diagObj.db.getTasks();
+ let categories = [];
+ for (const element of taskArray) {
+ categories.push(element.type);
+ }
+ categories = checkUnique(categories);
+ const categoryHeights = {};
+ let h = 2 * conf.topPadding;
+ if (diagObj.db.getDisplayMode() === "compact" || conf.displayMode === "compact") {
+ const categoryElements = {};
+ for (const element of taskArray) {
+ if (categoryElements[element.section] === void 0) {
+ categoryElements[element.section] = [element];
+ } else {
+ categoryElements[element.section].push(element);
+ }
+ }
+ let intersections = 0;
+ for (const category of Object.keys(categoryElements)) {
+ const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1;
+ intersections += categoryHeight;
+ h += categoryHeight * (conf.barHeight + conf.barGap);
+ categoryHeights[category] = categoryHeight;
+ }
+ } else {
+ h += taskArray.length * (conf.barHeight + conf.barGap);
+ for (const category of categories) {
+ categoryHeights[category] = taskArray.filter((task) => task.type === category).length;
+ }
+ }
+ elem.setAttribute("viewBox", "0 0 " + w + " " + h);
+ const svg = root.select(`[id="${id}"]`);
+ const timeScale = scaleTime().domain([
+ min(taskArray, function(d) {
+ return d.startTime;
+ }),
+ max(taskArray, function(d) {
+ return d.endTime;
+ })
+ ]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);
+ function taskCompare(a, b) {
+ const taskA = a.startTime;
+ const taskB = b.startTime;
+ let result = 0;
+ if (taskA > taskB) {
+ result = 1;
+ } else if (taskA < taskB) {
+ result = -1;
+ }
+ return result;
+ }
+ taskArray.sort(taskCompare);
+ makeGant(taskArray, w, h);
+ configureSvgSize(svg, h, w, conf.useMaxWidth);
+ svg.append("text").text(diagObj.db.getDiagramTitle()).attr("x", w / 2).attr("y", conf.titleTopMargin).attr("class", "titleText");
+ function makeGant(tasks2, pageWidth, pageHeight) {
+ const barHeight = conf.barHeight;
+ const gap = barHeight + conf.barGap;
+ const topPadding = conf.topPadding;
+ const leftPadding = conf.leftPadding;
+ const colorScale = scaleLinear().domain([0, categories.length]).range(["#00B9FA", "#F95002"]).interpolate(interpolateHcl);
+ drawExcludeDays(
+ gap,
+ topPadding,
+ leftPadding,
+ pageWidth,
+ pageHeight,
+ tasks2,
+ diagObj.db.getExcludes(),
+ diagObj.db.getIncludes()
+ );
+ makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
+ drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth);
+ vertLabels(gap, topPadding);
+ drawToday(leftPadding, topPadding, pageWidth, pageHeight);
+ }
+ function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) {
+ const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))];
+ const uniqueTasks = uniqueTaskOrderIds.map((id2) => theArray.find((item) => item.order === id2));
+ svg.append("g").selectAll("rect").data(uniqueTasks).enter().append("rect").attr("x", 0).attr("y", function(d, i) {
+ i = d.order;
+ return i * theGap + theTopPad - 2;
+ }).attr("width", function() {
+ return w2 - conf.rightPadding / 2;
+ }).attr("height", theGap).attr("class", function(d) {
+ for (const [i, category] of categories.entries()) {
+ if (d.type === category) {
+ return "section section" + i % conf.numberSectionStyles;
+ }
+ }
+ return "section section0";
+ });
+ const rectangles = svg.append("g").selectAll("rect").data(theArray).enter();
+ const links2 = diagObj.db.getLinks();
+ rectangles.append("rect").attr("id", function(d) {
+ return d.id;
+ }).attr("rx", 3).attr("ry", 3).attr("x", function(d) {
+ if (d.milestone) {
+ return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
+ }
+ return timeScale(d.startTime) + theSidePad;
+ }).attr("y", function(d, i) {
+ i = d.order;
+ return i * theGap + theTopPad;
+ }).attr("width", function(d) {
+ if (d.milestone) {
+ return theBarHeight;
+ }
+ return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);
+ }).attr("height", theBarHeight).attr("transform-origin", function(d, i) {
+ i = d.order;
+ return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + "px " + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + "px";
+ }).attr("class", function(d) {
+ const res = "task";
+ let classStr = "";
+ if (d.classes.length > 0) {
+ classStr = d.classes.join(" ");
+ }
+ let secNum = 0;
+ for (const [i, category] of categories.entries()) {
+ if (d.type === category) {
+ secNum = i % conf.numberSectionStyles;
+ }
+ }
+ let taskClass = "";
+ if (d.active) {
+ if (d.crit) {
+ taskClass += " activeCrit";
+ } else {
+ taskClass = " active";
+ }
+ } else if (d.done) {
+ if (d.crit) {
+ taskClass = " doneCrit";
+ } else {
+ taskClass = " done";
+ }
+ } else {
+ if (d.crit) {
+ taskClass += " crit";
+ }
+ }
+ if (taskClass.length === 0) {
+ taskClass = " task";
+ }
+ if (d.milestone) {
+ taskClass = " milestone " + taskClass;
+ }
+ taskClass += secNum;
+ taskClass += " " + classStr;
+ return res + taskClass;
+ });
+ rectangles.append("text").attr("id", function(d) {
+ return d.id + "-text";
+ }).text(function(d) {
+ return d.task;
+ }).attr("font-size", conf.fontSize).attr("x", function(d) {
+ let startX = timeScale(d.startTime);
+ let endX = timeScale(d.renderEndTime || d.endTime);
+ if (d.milestone) {
+ startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
+ }
+ if (d.milestone) {
+ endX = startX + theBarHeight;
+ }
+ const textWidth = this.getBBox().width;
+ if (textWidth > endX - startX) {
+ if (endX + textWidth + 1.5 * conf.leftPadding > w2) {
+ return startX + theSidePad - 5;
+ } else {
+ return endX + theSidePad + 5;
+ }
+ } else {
+ return (endX - startX) / 2 + startX + theSidePad;
+ }
+ }).attr("y", function(d, i) {
+ i = d.order;
+ return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;
+ }).attr("text-height", theBarHeight).attr("class", function(d) {
+ const startX = timeScale(d.startTime);
+ let endX = timeScale(d.endTime);
+ if (d.milestone) {
+ endX = startX + theBarHeight;
+ }
+ const textWidth = this.getBBox().width;
+ let classStr = "";
+ if (d.classes.length > 0) {
+ classStr = d.classes.join(" ");
+ }
+ let secNum = 0;
+ for (const [i, category] of categories.entries()) {
+ if (d.type === category) {
+ secNum = i % conf.numberSectionStyles;
+ }
+ }
+ let taskType = "";
+ if (d.active) {
+ if (d.crit) {
+ taskType = "activeCritText" + secNum;
+ } else {
+ taskType = "activeText" + secNum;
+ }
+ }
+ if (d.done) {
+ if (d.crit) {
+ taskType = taskType + " doneCritText" + secNum;
+ } else {
+ taskType = taskType + " doneText" + secNum;
+ }
+ } else {
+ if (d.crit) {
+ taskType = taskType + " critText" + secNum;
+ }
+ }
+ if (d.milestone) {
+ taskType += " milestoneText";
+ }
+ if (textWidth > endX - startX) {
+ if (endX + textWidth + 1.5 * conf.leftPadding > w2) {
+ return classStr + " taskTextOutsideLeft taskTextOutside" + secNum + " " + taskType;
+ } else {
+ return classStr + " taskTextOutsideRight taskTextOutside" + secNum + " " + taskType + " width-" + textWidth;
+ }
+ } else {
+ return classStr + " taskText taskText" + secNum + " " + taskType + " width-" + textWidth;
+ }
+ });
+ const securityLevel2 = getConfig().securityLevel;
+ if (securityLevel2 === "sandbox") {
+ let sandboxElement2;
+ sandboxElement2 = select("#i" + id);
+ const doc2 = sandboxElement2.nodes()[0].contentDocument;
+ rectangles.filter(function(d) {
+ return links2[d.id] !== void 0;
+ }).each(function(o) {
+ var taskRect = doc2.querySelector("#" + o.id);
+ var taskText = doc2.querySelector("#" + o.id + "-text");
+ const oldParent = taskRect.parentNode;
+ var Link = doc2.createElement("a");
+ Link.setAttribute("xlink:href", links2[o.id]);
+ Link.setAttribute("target", "_top");
+ oldParent.appendChild(Link);
+ Link.appendChild(taskRect);
+ Link.appendChild(taskText);
+ });
+ }
+ }
+ function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) {
+ const minTime = tasks2.reduce(
+ (min2, { startTime }) => min2 ? Math.min(min2, startTime) : startTime,
+ 0
+ );
+ const maxTime = tasks2.reduce((max2, { endTime }) => max2 ? Math.max(max2, endTime) : endTime, 0);
+ const dateFormat2 = diagObj.db.getDateFormat();
+ if (!minTime || !maxTime) {
+ return;
+ }
+ const excludeRanges = [];
+ let range = null;
+ let d = dayjs(minTime);
+ while (d.valueOf() <= maxTime) {
+ if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) {
+ if (!range) {
+ range = {
+ start: d,
+ end: d
+ };
+ } else {
+ range.end = d;
+ }
+ } else {
+ if (range) {
+ excludeRanges.push(range);
+ range = null;
+ }
+ }
+ d = d.add(1, "d");
+ }
+ const rectangles = svg.append("g").selectAll("rect").data(excludeRanges).enter();
+ rectangles.append("rect").attr("id", function(d2) {
+ return "exclude-" + d2.start.format("YYYY-MM-DD");
+ }).attr("x", function(d2) {
+ return timeScale(d2.start) + theSidePad;
+ }).attr("y", conf.gridLineStartPadding).attr("width", function(d2) {
+ const renderEnd = d2.end.add(1, "day");
+ return timeScale(renderEnd) - timeScale(d2.start);
+ }).attr("height", h2 - theTopPad - conf.gridLineStartPadding).attr("transform-origin", function(d2, i) {
+ return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + "px " + (i * theGap + 0.5 * h2).toString() + "px";
+ }).attr("class", "exclude-range");
+ }
+ function makeGrid(theSidePad, theTopPad, w2, h2) {
+ let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d"));
+ const reTickInterval = /^([1-9]\d*)(minute|hour|day|week|month)$/;
+ const resultTickInterval = reTickInterval.exec(
+ diagObj.db.getTickInterval() || conf.tickInterval
+ );
+ if (resultTickInterval !== null) {
+ const every = resultTickInterval[1];
+ const interval = resultTickInterval[2];
+ switch (interval) {
+ case "minute":
+ bottomXAxis.ticks(timeMinute.every(every));
+ break;
+ case "hour":
+ bottomXAxis.ticks(timeHour.every(every));
+ break;
+ case "day":
+ bottomXAxis.ticks(timeDay.every(every));
+ break;
+ case "week":
+ bottomXAxis.ticks(timeWeek.every(every));
+ break;
+ case "month":
+ bottomXAxis.ticks(timeMonth.every(every));
+ break;
+ }
+ }
+ svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + (h2 - 50) + ")").call(bottomXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em");
+ if (diagObj.db.topAxisEnabled() || conf.topAxis) {
+ let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d"));
+ if (resultTickInterval !== null) {
+ const every = resultTickInterval[1];
+ const interval = resultTickInterval[2];
+ switch (interval) {
+ case "minute":
+ topXAxis.ticks(timeMinute.every(every));
+ break;
+ case "hour":
+ topXAxis.ticks(timeHour.every(every));
+ break;
+ case "day":
+ topXAxis.ticks(timeDay.every(every));
+ break;
+ case "week":
+ topXAxis.ticks(timeWeek.every(every));
+ break;
+ case "month":
+ topXAxis.ticks(timeMonth.every(every));
+ break;
+ }
+ }
+ svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + theTopPad + ")").call(topXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10);
+ }
+ }
+ function vertLabels(theGap, theTopPad) {
+ let prevGap = 0;
+ const numOccurances = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]);
+ svg.append("g").selectAll("text").data(numOccurances).enter().append(function(d) {
+ const rows = d[0].split(common.lineBreakRegex);
+ const dy = -(rows.length - 1) / 2;
+ const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("dy", dy + "em");
+ for (const [j, row] of rows.entries()) {
+ const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttribute("alignment-baseline", "central");
+ tspan.setAttribute("x", "10");
+ if (j > 0) {
+ tspan.setAttribute("dy", "1em");
+ }
+ tspan.textContent = row;
+ svgLabel.appendChild(tspan);
+ }
+ return svgLabel;
+ }).attr("x", 10).attr("y", function(d, i) {
+ if (i > 0) {
+ for (let j = 0; j < i; j++) {
+ prevGap += numOccurances[i - 1][1];
+ return d[1] * theGap / 2 + prevGap * theGap + theTopPad;
+ }
+ } else {
+ return d[1] * theGap / 2 + theTopPad;
+ }
+ }).attr("font-size", conf.sectionFontSize).attr("class", function(d) {
+ for (const [i, category] of categories.entries()) {
+ if (d[0] === category) {
+ return "sectionTitle sectionTitle" + i % conf.numberSectionStyles;
+ }
+ }
+ return "sectionTitle";
+ });
+ }
+ function drawToday(theSidePad, theTopPad, w2, h2) {
+ const todayMarker2 = diagObj.db.getTodayMarker();
+ if (todayMarker2 === "off") {
+ return;
+ }
+ const todayG = svg.append("g").attr("class", "today");
+ const today = new Date();
+ const todayLine = todayG.append("line");
+ todayLine.attr("x1", timeScale(today) + theSidePad).attr("x2", timeScale(today) + theSidePad).attr("y1", conf.titleTopMargin).attr("y2", h2 - conf.titleTopMargin).attr("class", "today");
+ if (todayMarker2 !== "") {
+ todayLine.attr("style", todayMarker2.replace(/,/g, ";"));
+ }
+ }
+ function checkUnique(arr) {
+ const hash = {};
+ const result = [];
+ for (let i = 0, l = arr.length; i < l; ++i) {
+ if (!Object.prototype.hasOwnProperty.call(hash, arr[i])) {
+ hash[arr[i]] = true;
+ result.push(arr[i]);
+ }
+ }
+ return result;
+ }
+};
+const ganttRenderer = {
+ setConf,
+ draw
+};
+const getStyles = (options) => `
+ .mermaid-main-font {
+ font-family: "trebuchet ms", verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+ .exclude-range {
+ fill: ${options.excludeBkgColor};
+ }
+
+ .section {
+ stroke: none;
+ opacity: 0.2;
+ }
+
+ .section0 {
+ fill: ${options.sectionBkgColor};
+ }
+
+ .section2 {
+ fill: ${options.sectionBkgColor2};
+ }
+
+ .section1,
+ .section3 {
+ fill: ${options.altSectionBkgColor};
+ opacity: 0.2;
+ }
+
+ .sectionTitle0 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle1 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle2 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle3 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle {
+ text-anchor: start;
+ // font-size: ${options.ganttFontSize};
+ // text-height: 14px;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+
+ }
+
+
+ /* Grid and axis */
+
+ .grid .tick {
+ stroke: ${options.gridColor};
+ opacity: 0.8;
+ shape-rendering: crispEdges;
+ text {
+ font-family: ${options.fontFamily};
+ fill: ${options.textColor};
+ }
+ }
+
+ .grid path {
+ stroke-width: 0;
+ }
+
+
+ /* Today line */
+
+ .today {
+ fill: none;
+ stroke: ${options.todayLineColor};
+ stroke-width: 2px;
+ }
+
+
+ /* Task styling */
+
+ /* Default task */
+
+ .task {
+ stroke-width: 2;
+ }
+
+ .taskText {
+ text-anchor: middle;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+
+ // .taskText:not([font-size]) {
+ // font-size: ${options.ganttFontSize};
+ // }
+
+ .taskTextOutsideRight {
+ fill: ${options.taskTextDarkColor};
+ text-anchor: start;
+ // font-size: ${options.ganttFontSize};
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+
+ }
+
+ .taskTextOutsideLeft {
+ fill: ${options.taskTextDarkColor};
+ text-anchor: end;
+ // font-size: ${options.ganttFontSize};
+ }
+
+ /* Special case clickable */
+ .task.clickable {
+ cursor: pointer;
+ }
+ .taskText.clickable {
+ cursor: pointer;
+ fill: ${options.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ .taskTextOutsideLeft.clickable {
+ cursor: pointer;
+ fill: ${options.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ .taskTextOutsideRight.clickable {
+ cursor: pointer;
+ fill: ${options.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ /* Specific task settings for the sections*/
+
+ .taskText0,
+ .taskText1,
+ .taskText2,
+ .taskText3 {
+ fill: ${options.taskTextColor};
+ }
+
+ .task0,
+ .task1,
+ .task2,
+ .task3 {
+ fill: ${options.taskBkgColor};
+ stroke: ${options.taskBorderColor};
+ }
+
+ .taskTextOutside0,
+ .taskTextOutside2
+ {
+ fill: ${options.taskTextOutsideColor};
+ }
+
+ .taskTextOutside1,
+ .taskTextOutside3 {
+ fill: ${options.taskTextOutsideColor};
+ }
+
+
+ /* Active task */
+
+ .active0,
+ .active1,
+ .active2,
+ .active3 {
+ fill: ${options.activeTaskBkgColor};
+ stroke: ${options.activeTaskBorderColor};
+ }
+
+ .activeText0,
+ .activeText1,
+ .activeText2,
+ .activeText3 {
+ fill: ${options.taskTextDarkColor} !important;
+ }
+
+
+ /* Completed task */
+
+ .done0,
+ .done1,
+ .done2,
+ .done3 {
+ stroke: ${options.doneTaskBorderColor};
+ fill: ${options.doneTaskBkgColor};
+ stroke-width: 2;
+ }
+
+ .doneText0,
+ .doneText1,
+ .doneText2,
+ .doneText3 {
+ fill: ${options.taskTextDarkColor} !important;
+ }
+
+
+ /* Tasks on the critical line */
+
+ .crit0,
+ .crit1,
+ .crit2,
+ .crit3 {
+ stroke: ${options.critBorderColor};
+ fill: ${options.critBkgColor};
+ stroke-width: 2;
+ }
+
+ .activeCrit0,
+ .activeCrit1,
+ .activeCrit2,
+ .activeCrit3 {
+ stroke: ${options.critBorderColor};
+ fill: ${options.activeTaskBkgColor};
+ stroke-width: 2;
+ }
+
+ .doneCrit0,
+ .doneCrit1,
+ .doneCrit2,
+ .doneCrit3 {
+ stroke: ${options.critBorderColor};
+ fill: ${options.doneTaskBkgColor};
+ 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: ${options.taskTextDarkColor} !important;
+ }
+
+ .activeCritText0,
+ .activeCritText1,
+ .activeCritText2,
+ .activeCritText3 {
+ fill: ${options.taskTextDarkColor} !important;
+ }
+
+ .titleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor} ;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+`;
+const ganttStyles = getStyles;
+const diagram = {
+ parser: ganttParser,
+ db: ganttDb,
+ renderer: ganttRenderer,
+ styles: ganttStyles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=ganttDiagram-04e74c0a.js.map
diff --git a/scopegraphs-render-docs/doc/js/ganttDiagram-536170c3.js b/scopegraphs-render-docs/doc/js/ganttDiagram-536170c3.js
new file mode 100644
index 0000000..8f517cc
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/ganttDiagram-536170c3.js
@@ -0,0 +1,3990 @@
+import { s as sanitizeUrl_1, u as utils, v as configureSvgSize } from "./utils-1aebe9b6.js";
+import { E as define, F as extend, R as Rgb, G as Color, H as rgbConvert, I as constant, J as interpolateNumber, K as color, L as interpolateRgb, M as interpolateString, N as nogamma, O as hue, P as commonjsGlobal, g as getConfig, q as setAccTitle, v as getAccTitle, y as setDiagramTitle, z as getDiagramTitle, x as setAccDescription, w as getAccDescription, Q as dayjs, A as clear$1, l as log, h as select, f as common } from "./commonDb-89160e91.js";
+import { m as mermaidAPI } from "./mermaidAPI-c841a67f.js";
+import { i as initRange } from "./init-cc95ec8e.js";
+function ascending(a, b) {
+ return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
+}
+function descending(a, b) {
+ return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
+}
+function bisector(f) {
+ let compare1, compare2, delta;
+ if (f.length !== 2) {
+ compare1 = ascending;
+ compare2 = (d, x) => ascending(f(d), x);
+ delta = (d, x) => f(d) - x;
+ } else {
+ compare1 = f === ascending || f === descending ? f : zero;
+ compare2 = f;
+ delta = f;
+ }
+ function left2(a, x, lo = 0, hi = a.length) {
+ if (lo < hi) {
+ if (compare1(x, x) !== 0)
+ return hi;
+ do {
+ const mid = lo + hi >>> 1;
+ if (compare2(a[mid], x) < 0)
+ lo = mid + 1;
+ else
+ hi = mid;
+ } while (lo < hi);
+ }
+ return lo;
+ }
+ function right2(a, x, lo = 0, hi = a.length) {
+ if (lo < hi) {
+ if (compare1(x, x) !== 0)
+ return hi;
+ do {
+ const mid = lo + hi >>> 1;
+ if (compare2(a[mid], x) <= 0)
+ lo = mid + 1;
+ else
+ hi = mid;
+ } while (lo < hi);
+ }
+ return lo;
+ }
+ function center2(a, x, lo = 0, hi = a.length) {
+ const i = left2(a, x, lo, hi - 1);
+ return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
+ }
+ return { left: left2, center: center2, right: right2 };
+}
+function zero() {
+ return 0;
+}
+function number$3(x) {
+ return x === null ? NaN : +x;
+}
+const ascendingBisect = bisector(ascending);
+const bisectRight = ascendingBisect.right;
+bisector(number$3).center;
+const bisect = bisectRight;
+var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2);
+function ticks(start, stop, count) {
+ var reverse, i = -1, n, ticks2, step;
+ stop = +stop, start = +start, count = +count;
+ if (start === stop && count > 0)
+ return [start];
+ if (reverse = stop < start)
+ n = start, start = stop, stop = n;
+ if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step))
+ return [];
+ if (step > 0) {
+ let r0 = Math.round(start / step), r1 = Math.round(stop / step);
+ if (r0 * step < start)
+ ++r0;
+ if (r1 * step > stop)
+ --r1;
+ ticks2 = new Array(n = r1 - r0 + 1);
+ while (++i < n)
+ ticks2[i] = (r0 + i) * step;
+ } else {
+ step = -step;
+ let r0 = Math.round(start * step), r1 = Math.round(stop * step);
+ if (r0 / step < start)
+ ++r0;
+ if (r1 / step > stop)
+ --r1;
+ ticks2 = new Array(n = r1 - r0 + 1);
+ while (++i < n)
+ ticks2[i] = (r0 + i) / step;
+ }
+ if (reverse)
+ ticks2.reverse();
+ return ticks2;
+}
+function tickIncrement(start, stop, count) {
+ var step = (stop - start) / Math.max(0, count), power = Math.floor(Math.log(step) / Math.LN10), error = step / Math.pow(10, power);
+ return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
+}
+function tickStep(start, stop, count) {
+ var step0 = Math.abs(stop - start) / Math.max(0, count), step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), error = step0 / step1;
+ if (error >= e10)
+ step1 *= 10;
+ else if (error >= e5)
+ step1 *= 5;
+ else if (error >= e2)
+ step1 *= 2;
+ return stop < start ? -step1 : step1;
+}
+function max(values, valueof) {
+ let max2;
+ if (valueof === void 0) {
+ for (const value of values) {
+ if (value != null && (max2 < value || max2 === void 0 && value >= value)) {
+ max2 = value;
+ }
+ }
+ } else {
+ let index = -1;
+ for (let value of values) {
+ if ((value = valueof(value, ++index, values)) != null && (max2 < value || max2 === void 0 && value >= value)) {
+ max2 = value;
+ }
+ }
+ }
+ return max2;
+}
+function min(values, valueof) {
+ let min2;
+ if (valueof === void 0) {
+ for (const value of values) {
+ if (value != null && (min2 > value || min2 === void 0 && value >= value)) {
+ min2 = value;
+ }
+ }
+ } else {
+ let index = -1;
+ for (let value of values) {
+ if ((value = valueof(value, ++index, values)) != null && (min2 > value || min2 === void 0 && value >= value)) {
+ min2 = value;
+ }
+ }
+ }
+ return min2;
+}
+function identity$2(x) {
+ return x;
+}
+var top = 1, right = 2, bottom = 3, left = 4, epsilon = 1e-6;
+function translateX(x) {
+ return "translate(" + x + ",0)";
+}
+function translateY(y) {
+ return "translate(0," + y + ")";
+}
+function number$2(scale) {
+ return (d) => +scale(d);
+}
+function center(scale, offset) {
+ offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;
+ if (scale.round())
+ offset = Math.round(offset);
+ return (d) => +scale(d) + offset;
+}
+function entering() {
+ return !this.__axis;
+}
+function axis(orient, scale) {
+ var tickArguments = [], tickValues = null, tickFormat2 = null, tickSizeInner = 6, tickSizeOuter = 6, tickPadding = 3, offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, k = orient === top || orient === left ? -1 : 1, x = orient === left || orient === right ? "x" : "y", transform = orient === top || orient === bottom ? translateX : translateY;
+ function axis2(context) {
+ var values = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain() : tickValues, format2 = tickFormat2 == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity$2 : tickFormat2, spacing = Math.max(tickSizeInner, 0) + tickPadding, range = scale.range(), range0 = +range[0] + offset, range1 = +range[range.length - 1] + offset, position = (scale.bandwidth ? center : number$2)(scale.copy(), offset), selection = context.selection ? context.selection() : context, path = selection.selectAll(".domain").data([null]), tick = selection.selectAll(".tick").data(values, scale).order(), tickExit = tick.exit(), tickEnter = tick.enter().append("g").attr("class", "tick"), line = tick.select("line"), text = tick.select("text");
+ path = path.merge(path.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor"));
+ tick = tick.merge(tickEnter);
+ line = line.merge(tickEnter.append("line").attr("stroke", "currentColor").attr(x + "2", k * tickSizeInner));
+ text = text.merge(tickEnter.append("text").attr("fill", "currentColor").attr(x, k * spacing).attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
+ if (context !== selection) {
+ path = path.transition(context);
+ tick = tick.transition(context);
+ line = line.transition(context);
+ text = text.transition(context);
+ tickExit = tickExit.transition(context).attr("opacity", epsilon).attr("transform", function(d) {
+ return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform");
+ });
+ tickEnter.attr("opacity", epsilon).attr("transform", function(d) {
+ var p = this.parentNode.__axis;
+ return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset);
+ });
+ }
+ tickExit.remove();
+ path.attr("d", orient === left || orient === right ? tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1 : tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1);
+ tick.attr("opacity", 1).attr("transform", function(d) {
+ return transform(position(d) + offset);
+ });
+ line.attr(x + "2", k * tickSizeInner);
+ text.attr(x, k * spacing).text(format2);
+ selection.filter(entering).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
+ selection.each(function() {
+ this.__axis = position;
+ });
+ }
+ axis2.scale = function(_) {
+ return arguments.length ? (scale = _, axis2) : scale;
+ };
+ axis2.ticks = function() {
+ return tickArguments = Array.from(arguments), axis2;
+ };
+ axis2.tickArguments = function(_) {
+ return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis2) : tickArguments.slice();
+ };
+ axis2.tickValues = function(_) {
+ return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis2) : tickValues && tickValues.slice();
+ };
+ axis2.tickFormat = function(_) {
+ return arguments.length ? (tickFormat2 = _, axis2) : tickFormat2;
+ };
+ axis2.tickSize = function(_) {
+ return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis2) : tickSizeInner;
+ };
+ axis2.tickSizeInner = function(_) {
+ return arguments.length ? (tickSizeInner = +_, axis2) : tickSizeInner;
+ };
+ axis2.tickSizeOuter = function(_) {
+ return arguments.length ? (tickSizeOuter = +_, axis2) : tickSizeOuter;
+ };
+ axis2.tickPadding = function(_) {
+ return arguments.length ? (tickPadding = +_, axis2) : tickPadding;
+ };
+ axis2.offset = function(_) {
+ return arguments.length ? (offset = +_, axis2) : offset;
+ };
+ return axis2;
+}
+function axisTop(scale) {
+ return axis(top, scale);
+}
+function axisBottom(scale) {
+ return axis(bottom, scale);
+}
+const radians = Math.PI / 180;
+const degrees = 180 / Math.PI;
+const K = 18, Xn = 0.96422, Yn = 1, Zn = 0.82521, t0$1 = 4 / 29, t1$1 = 6 / 29, t2 = 3 * t1$1 * t1$1, t3 = t1$1 * t1$1 * t1$1;
+function labConvert(o) {
+ if (o instanceof Lab)
+ return new Lab(o.l, o.a, o.b, o.opacity);
+ if (o instanceof Hcl)
+ return hcl2lab(o);
+ if (!(o instanceof Rgb))
+ o = rgbConvert(o);
+ var r = rgb2lrgb(o.r), g = rgb2lrgb(o.g), b = rgb2lrgb(o.b), y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;
+ if (r === g && g === b)
+ x = z = y;
+ else {
+ x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
+ z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
+ }
+ return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
+}
+function lab(l, a, b, opacity) {
+ return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
+}
+function Lab(l, a, b, opacity) {
+ this.l = +l;
+ this.a = +a;
+ this.b = +b;
+ this.opacity = +opacity;
+}
+define(Lab, lab, extend(Color, {
+ brighter(k) {
+ return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
+ },
+ darker(k) {
+ return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
+ },
+ rgb() {
+ var y = (this.l + 16) / 116, x = isNaN(this.a) ? y : y + this.a / 500, z = isNaN(this.b) ? y : y - this.b / 200;
+ x = Xn * lab2xyz(x);
+ y = Yn * lab2xyz(y);
+ z = Zn * lab2xyz(z);
+ return new Rgb(
+ lrgb2rgb(3.1338561 * x - 1.6168667 * y - 0.4906146 * z),
+ lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.033454 * z),
+ lrgb2rgb(0.0719453 * x - 0.2289914 * y + 1.4052427 * z),
+ this.opacity
+ );
+ }
+}));
+function xyz2lab(t) {
+ return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0$1;
+}
+function lab2xyz(t) {
+ return t > t1$1 ? t * t * t : t2 * (t - t0$1);
+}
+function lrgb2rgb(x) {
+ return 255 * (x <= 31308e-7 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
+}
+function rgb2lrgb(x) {
+ return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
+}
+function hclConvert(o) {
+ if (o instanceof Hcl)
+ return new Hcl(o.h, o.c, o.l, o.opacity);
+ if (!(o instanceof Lab))
+ o = labConvert(o);
+ if (o.a === 0 && o.b === 0)
+ return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);
+ var h = Math.atan2(o.b, o.a) * degrees;
+ return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
+}
+function hcl$1(h, c, l, opacity) {
+ return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
+}
+function Hcl(h, c, l, opacity) {
+ this.h = +h;
+ this.c = +c;
+ this.l = +l;
+ this.opacity = +opacity;
+}
+function hcl2lab(o) {
+ if (isNaN(o.h))
+ return new Lab(o.l, 0, 0, o.opacity);
+ var h = o.h * radians;
+ return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
+}
+define(Hcl, hcl$1, extend(Color, {
+ brighter(k) {
+ return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
+ },
+ darker(k) {
+ return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
+ },
+ rgb() {
+ return hcl2lab(this).rgb();
+ }
+}));
+function numberArray(a, b) {
+ if (!b)
+ b = [];
+ var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i;
+ return function(t) {
+ for (i = 0; i < n; ++i)
+ c[i] = a[i] * (1 - t) + b[i] * t;
+ return c;
+ };
+}
+function isNumberArray(x) {
+ return ArrayBuffer.isView(x) && !(x instanceof DataView);
+}
+function genericArray(a, b) {
+ var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i;
+ for (i = 0; i < na; ++i)
+ x[i] = interpolate(a[i], b[i]);
+ for (; i < nb; ++i)
+ c[i] = b[i];
+ return function(t) {
+ for (i = 0; i < na; ++i)
+ c[i] = x[i](t);
+ return c;
+ };
+}
+function date$1(a, b) {
+ var d = new Date();
+ return a = +a, b = +b, function(t) {
+ return d.setTime(a * (1 - t) + b * t), d;
+ };
+}
+function object(a, b) {
+ var i = {}, c = {}, k;
+ if (a === null || typeof a !== "object")
+ a = {};
+ if (b === null || typeof b !== "object")
+ b = {};
+ for (k in b) {
+ if (k in a) {
+ i[k] = interpolate(a[k], b[k]);
+ } else {
+ c[k] = b[k];
+ }
+ }
+ return function(t) {
+ for (k in i)
+ c[k] = i[k](t);
+ return c;
+ };
+}
+function interpolate(a, b) {
+ var t = typeof b, c;
+ return b == null || t === "boolean" ? constant(b) : (t === "number" ? interpolateNumber : t === "string" ? (c = color(b)) ? (b = c, interpolateRgb) : interpolateString : b instanceof color ? interpolateRgb : b instanceof Date ? date$1 : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object : interpolateNumber)(a, b);
+}
+function interpolateRound(a, b) {
+ return a = +a, b = +b, function(t) {
+ return Math.round(a * (1 - t) + b * t);
+ };
+}
+function hcl(hue2) {
+ return function(start, end) {
+ var h = hue2((start = hcl$1(start)).h, (end = hcl$1(end)).h), c = nogamma(start.c, end.c), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity);
+ return function(t) {
+ start.h = h(t);
+ start.c = c(t);
+ start.l = l(t);
+ start.opacity = opacity(t);
+ return start + "";
+ };
+ };
+}
+const interpolateHcl = hcl(hue);
+function formatDecimal(x) {
+ return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString("en").replace(/,/g, "") : x.toString(10);
+}
+function formatDecimalParts(x, p) {
+ if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0)
+ return null;
+ var i, coefficient = x.slice(0, i);
+ return [
+ coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
+ +x.slice(i + 1)
+ ];
+}
+function exponent(x) {
+ return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;
+}
+function formatGroup(grouping, thousands) {
+ return function(value, width) {
+ var i = value.length, t = [], j = 0, g = grouping[0], length = 0;
+ while (i > 0 && g > 0) {
+ if (length + g + 1 > width)
+ g = Math.max(1, width - length);
+ t.push(value.substring(i -= g, i + g));
+ if ((length += g + 1) > width)
+ break;
+ g = grouping[j = (j + 1) % grouping.length];
+ }
+ return t.reverse().join(thousands);
+ };
+}
+function formatNumerals(numerals) {
+ return function(value) {
+ return value.replace(/[0-9]/g, function(i) {
+ return numerals[+i];
+ });
+ };
+}
+var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
+function formatSpecifier(specifier) {
+ if (!(match = re.exec(specifier)))
+ throw new Error("invalid format: " + specifier);
+ var match;
+ return new FormatSpecifier({
+ fill: match[1],
+ align: match[2],
+ sign: match[3],
+ symbol: match[4],
+ zero: match[5],
+ width: match[6],
+ comma: match[7],
+ precision: match[8] && match[8].slice(1),
+ trim: match[9],
+ type: match[10]
+ });
+}
+formatSpecifier.prototype = FormatSpecifier.prototype;
+function FormatSpecifier(specifier) {
+ this.fill = specifier.fill === void 0 ? " " : specifier.fill + "";
+ this.align = specifier.align === void 0 ? ">" : specifier.align + "";
+ this.sign = specifier.sign === void 0 ? "-" : specifier.sign + "";
+ this.symbol = specifier.symbol === void 0 ? "" : specifier.symbol + "";
+ this.zero = !!specifier.zero;
+ this.width = specifier.width === void 0 ? void 0 : +specifier.width;
+ this.comma = !!specifier.comma;
+ this.precision = specifier.precision === void 0 ? void 0 : +specifier.precision;
+ this.trim = !!specifier.trim;
+ this.type = specifier.type === void 0 ? "" : specifier.type + "";
+}
+FormatSpecifier.prototype.toString = function() {
+ return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type;
+};
+function formatTrim(s) {
+ out:
+ for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
+ switch (s[i]) {
+ case ".":
+ i0 = i1 = i;
+ break;
+ case "0":
+ if (i0 === 0)
+ i0 = i;
+ i1 = i;
+ break;
+ default:
+ if (!+s[i])
+ break out;
+ if (i0 > 0)
+ i0 = 0;
+ break;
+ }
+ }
+ return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
+}
+var prefixExponent;
+function formatPrefixAuto(x, p) {
+ var d = formatDecimalParts(x, p);
+ if (!d)
+ return x + "";
+ var coefficient = d[0], exponent2 = d[1], i = exponent2 - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent2 / 3))) * 3) + 1, n = coefficient.length;
+ return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join("0") : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0];
+}
+function formatRounded(x, p) {
+ var d = formatDecimalParts(x, p);
+ if (!d)
+ return x + "";
+ var coefficient = d[0], exponent2 = d[1];
+ return exponent2 < 0 ? "0." + new Array(-exponent2).join("0") + coefficient : coefficient.length > exponent2 + 1 ? coefficient.slice(0, exponent2 + 1) + "." + coefficient.slice(exponent2 + 1) : coefficient + new Array(exponent2 - coefficient.length + 2).join("0");
+}
+const formatTypes = {
+ "%": (x, p) => (x * 100).toFixed(p),
+ "b": (x) => Math.round(x).toString(2),
+ "c": (x) => x + "",
+ "d": formatDecimal,
+ "e": (x, p) => x.toExponential(p),
+ "f": (x, p) => x.toFixed(p),
+ "g": (x, p) => x.toPrecision(p),
+ "o": (x) => Math.round(x).toString(8),
+ "p": (x, p) => formatRounded(x * 100, p),
+ "r": formatRounded,
+ "s": formatPrefixAuto,
+ "X": (x) => Math.round(x).toString(16).toUpperCase(),
+ "x": (x) => Math.round(x).toString(16)
+};
+function identity$1(x) {
+ return x;
+}
+var map = Array.prototype.map, prefixes = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
+function formatLocale$1(locale2) {
+ var group = locale2.grouping === void 0 || locale2.thousands === void 0 ? identity$1 : formatGroup(map.call(locale2.grouping, Number), locale2.thousands + ""), currencyPrefix = locale2.currency === void 0 ? "" : locale2.currency[0] + "", currencySuffix = locale2.currency === void 0 ? "" : locale2.currency[1] + "", decimal = locale2.decimal === void 0 ? "." : locale2.decimal + "", numerals = locale2.numerals === void 0 ? identity$1 : formatNumerals(map.call(locale2.numerals, String)), percent = locale2.percent === void 0 ? "%" : locale2.percent + "", minus = locale2.minus === void 0 ? "−" : locale2.minus + "", nan = locale2.nan === void 0 ? "NaN" : locale2.nan + "";
+ function newFormat(specifier) {
+ specifier = formatSpecifier(specifier);
+ var fill = specifier.fill, align = specifier.align, sign = specifier.sign, symbol = specifier.symbol, zero2 = specifier.zero, width = specifier.width, comma = specifier.comma, precision = specifier.precision, trim = specifier.trim, type = specifier.type;
+ if (type === "n")
+ comma = true, type = "g";
+ else if (!formatTypes[type])
+ precision === void 0 && (precision = 12), trim = true, type = "g";
+ if (zero2 || fill === "0" && align === "=")
+ zero2 = true, fill = "0", align = "=";
+ var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "", suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : "";
+ var formatType = formatTypes[type], maybeSuffix = /[defgprs%]/.test(type);
+ precision = precision === void 0 ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));
+ function format2(value) {
+ var valuePrefix = prefix, valueSuffix = suffix, i, n, c;
+ if (type === "c") {
+ valueSuffix = formatType(value) + valueSuffix;
+ value = "";
+ } else {
+ value = +value;
+ var valueNegative = value < 0 || 1 / value < 0;
+ value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
+ if (trim)
+ value = formatTrim(value);
+ if (valueNegative && +value === 0 && sign !== "+")
+ valueNegative = false;
+ valuePrefix = (valueNegative ? sign === "(" ? sign : minus : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
+ valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
+ if (maybeSuffix) {
+ i = -1, n = value.length;
+ while (++i < n) {
+ if (c = value.charCodeAt(i), 48 > c || c > 57) {
+ valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
+ value = value.slice(0, i);
+ break;
+ }
+ }
+ }
+ }
+ if (comma && !zero2)
+ value = group(value, Infinity);
+ var length = valuePrefix.length + value.length + valueSuffix.length, padding = length < width ? new Array(width - length + 1).join(fill) : "";
+ if (comma && zero2)
+ value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";
+ switch (align) {
+ case "<":
+ value = valuePrefix + value + valueSuffix + padding;
+ break;
+ case "=":
+ value = valuePrefix + padding + value + valueSuffix;
+ break;
+ case "^":
+ value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);
+ break;
+ default:
+ value = padding + valuePrefix + value + valueSuffix;
+ break;
+ }
+ return numerals(value);
+ }
+ format2.toString = function() {
+ return specifier + "";
+ };
+ return format2;
+ }
+ function formatPrefix2(specifier, value) {
+ var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, k = Math.pow(10, -e), prefix = prefixes[8 + e / 3];
+ return function(value2) {
+ return f(k * value2) + prefix;
+ };
+ }
+ return {
+ format: newFormat,
+ formatPrefix: formatPrefix2
+ };
+}
+var locale$1;
+var format;
+var formatPrefix;
+defaultLocale$1({
+ thousands: ",",
+ grouping: [3],
+ currency: ["$", ""]
+});
+function defaultLocale$1(definition) {
+ locale$1 = formatLocale$1(definition);
+ format = locale$1.format;
+ formatPrefix = locale$1.formatPrefix;
+ return locale$1;
+}
+function precisionFixed(step) {
+ return Math.max(0, -exponent(Math.abs(step)));
+}
+function precisionPrefix(step, value) {
+ return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));
+}
+function precisionRound(step, max2) {
+ step = Math.abs(step), max2 = Math.abs(max2) - step;
+ return Math.max(0, exponent(max2) - exponent(step)) + 1;
+}
+function constants(x) {
+ return function() {
+ return x;
+ };
+}
+function number$1(x) {
+ return +x;
+}
+var unit = [0, 1];
+function identity(x) {
+ return x;
+}
+function normalize(a, b) {
+ return (b -= a = +a) ? function(x) {
+ return (x - a) / b;
+ } : constants(isNaN(b) ? NaN : 0.5);
+}
+function clamper(a, b) {
+ var t;
+ if (a > b)
+ t = a, a = b, b = t;
+ return function(x) {
+ return Math.max(a, Math.min(b, x));
+ };
+}
+function bimap(domain, range, interpolate2) {
+ var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
+ if (d1 < d0)
+ d0 = normalize(d1, d0), r0 = interpolate2(r1, r0);
+ else
+ d0 = normalize(d0, d1), r0 = interpolate2(r0, r1);
+ return function(x) {
+ return r0(d0(x));
+ };
+}
+function polymap(domain, range, interpolate2) {
+ var j = Math.min(domain.length, range.length) - 1, d = new Array(j), r = new Array(j), i = -1;
+ if (domain[j] < domain[0]) {
+ domain = domain.slice().reverse();
+ range = range.slice().reverse();
+ }
+ while (++i < j) {
+ d[i] = normalize(domain[i], domain[i + 1]);
+ r[i] = interpolate2(range[i], range[i + 1]);
+ }
+ return function(x) {
+ var i2 = bisect(domain, x, 1, j) - 1;
+ return r[i2](d[i2](x));
+ };
+}
+function copy(source, target) {
+ return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());
+}
+function transformer() {
+ var domain = unit, range = unit, interpolate$1 = interpolate, transform, untransform, unknown, clamp = identity, piecewise, output, input;
+ function rescale() {
+ var n = Math.min(domain.length, range.length);
+ if (clamp !== identity)
+ clamp = clamper(domain[0], domain[n - 1]);
+ piecewise = n > 2 ? polymap : bimap;
+ output = input = null;
+ return scale;
+ }
+ function scale(x) {
+ return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate$1)))(transform(clamp(x)));
+ }
+ scale.invert = function(y) {
+ return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));
+ };
+ scale.domain = function(_) {
+ return arguments.length ? (domain = Array.from(_, number$1), rescale()) : domain.slice();
+ };
+ scale.range = function(_) {
+ return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
+ };
+ scale.rangeRound = function(_) {
+ return range = Array.from(_), interpolate$1 = interpolateRound, rescale();
+ };
+ scale.clamp = function(_) {
+ return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;
+ };
+ scale.interpolate = function(_) {
+ return arguments.length ? (interpolate$1 = _, rescale()) : interpolate$1;
+ };
+ scale.unknown = function(_) {
+ return arguments.length ? (unknown = _, scale) : unknown;
+ };
+ return function(t, u) {
+ transform = t, untransform = u;
+ return rescale();
+ };
+}
+function continuous() {
+ return transformer()(identity, identity);
+}
+function tickFormat(start, stop, count, specifier) {
+ var step = tickStep(start, stop, count), precision;
+ specifier = formatSpecifier(specifier == null ? ",f" : specifier);
+ switch (specifier.type) {
+ case "s": {
+ var value = Math.max(Math.abs(start), Math.abs(stop));
+ if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value)))
+ specifier.precision = precision;
+ return formatPrefix(specifier, value);
+ }
+ case "":
+ case "e":
+ case "g":
+ case "p":
+ case "r": {
+ if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop)))))
+ specifier.precision = precision - (specifier.type === "e");
+ break;
+ }
+ case "f":
+ case "%": {
+ if (specifier.precision == null && !isNaN(precision = precisionFixed(step)))
+ specifier.precision = precision - (specifier.type === "%") * 2;
+ break;
+ }
+ }
+ return format(specifier);
+}
+function linearish(scale) {
+ var domain = scale.domain;
+ scale.ticks = function(count) {
+ var d = domain();
+ return ticks(d[0], d[d.length - 1], count == null ? 10 : count);
+ };
+ scale.tickFormat = function(count, specifier) {
+ var d = domain();
+ return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);
+ };
+ scale.nice = function(count) {
+ if (count == null)
+ count = 10;
+ var d = domain();
+ var i0 = 0;
+ var i1 = d.length - 1;
+ var start = d[i0];
+ var stop = d[i1];
+ var prestep;
+ var step;
+ var maxIter = 10;
+ if (stop < start) {
+ step = start, start = stop, stop = step;
+ step = i0, i0 = i1, i1 = step;
+ }
+ while (maxIter-- > 0) {
+ step = tickIncrement(start, stop, count);
+ if (step === prestep) {
+ d[i0] = start;
+ d[i1] = stop;
+ return domain(d);
+ } else if (step > 0) {
+ start = Math.floor(start / step) * step;
+ stop = Math.ceil(stop / step) * step;
+ } else if (step < 0) {
+ start = Math.ceil(start * step) / step;
+ stop = Math.floor(stop * step) / step;
+ } else {
+ break;
+ }
+ prestep = step;
+ }
+ return scale;
+ };
+ return scale;
+}
+function linear() {
+ var scale = continuous();
+ scale.copy = function() {
+ return copy(scale, linear());
+ };
+ initRange.apply(scale, arguments);
+ return linearish(scale);
+}
+function nice(domain, interval) {
+ domain = domain.slice();
+ var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], t;
+ if (x1 < x0) {
+ t = i0, i0 = i1, i1 = t;
+ t = x0, x0 = x1, x1 = t;
+ }
+ domain[i0] = interval.floor(x0);
+ domain[i1] = interval.ceil(x1);
+ return domain;
+}
+var t0 = new Date(), t1 = new Date();
+function newInterval(floori, offseti, count, field) {
+ function interval(date2) {
+ return floori(date2 = arguments.length === 0 ? new Date() : new Date(+date2)), date2;
+ }
+ interval.floor = function(date2) {
+ return floori(date2 = new Date(+date2)), date2;
+ };
+ interval.ceil = function(date2) {
+ return floori(date2 = new Date(date2 - 1)), offseti(date2, 1), floori(date2), date2;
+ };
+ interval.round = function(date2) {
+ var d0 = interval(date2), d1 = interval.ceil(date2);
+ return date2 - d0 < d1 - date2 ? d0 : d1;
+ };
+ interval.offset = function(date2, step) {
+ return offseti(date2 = new Date(+date2), step == null ? 1 : Math.floor(step)), date2;
+ };
+ interval.range = function(start, stop, step) {
+ var range = [], previous;
+ start = interval.ceil(start);
+ step = step == null ? 1 : Math.floor(step);
+ if (!(start < stop) || !(step > 0))
+ return range;
+ do
+ range.push(previous = new Date(+start)), offseti(start, step), floori(start);
+ while (previous < start && start < stop);
+ return range;
+ };
+ interval.filter = function(test) {
+ return newInterval(function(date2) {
+ if (date2 >= date2)
+ while (floori(date2), !test(date2))
+ date2.setTime(date2 - 1);
+ }, function(date2, step) {
+ if (date2 >= date2) {
+ if (step < 0)
+ while (++step <= 0) {
+ while (offseti(date2, -1), !test(date2)) {
+ }
+ }
+ else
+ while (--step >= 0) {
+ while (offseti(date2, 1), !test(date2)) {
+ }
+ }
+ }
+ });
+ };
+ if (count) {
+ interval.count = function(start, end) {
+ t0.setTime(+start), t1.setTime(+end);
+ floori(t0), floori(t1);
+ return Math.floor(count(t0, t1));
+ };
+ interval.every = function(step) {
+ step = Math.floor(step);
+ return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function(d) {
+ return field(d) % step === 0;
+ } : function(d) {
+ return interval.count(0, d) % step === 0;
+ });
+ };
+ }
+ return interval;
+}
+var millisecond = newInterval(function() {
+}, function(date2, step) {
+ date2.setTime(+date2 + step);
+}, function(start, end) {
+ return end - start;
+});
+millisecond.every = function(k) {
+ k = Math.floor(k);
+ if (!isFinite(k) || !(k > 0))
+ return null;
+ if (!(k > 1))
+ return millisecond;
+ return newInterval(function(date2) {
+ date2.setTime(Math.floor(date2 / k) * k);
+ }, function(date2, step) {
+ date2.setTime(+date2 + step * k);
+ }, function(start, end) {
+ return (end - start) / k;
+ });
+};
+const millisecond$1 = millisecond;
+millisecond.range;
+const durationSecond = 1e3;
+const durationMinute = durationSecond * 60;
+const durationHour = durationMinute * 60;
+const durationDay = durationHour * 24;
+const durationWeek = durationDay * 7;
+const durationMonth = durationDay * 30;
+const durationYear = durationDay * 365;
+var second = newInterval(function(date2) {
+ date2.setTime(date2 - date2.getMilliseconds());
+}, function(date2, step) {
+ date2.setTime(+date2 + step * durationSecond);
+}, function(start, end) {
+ return (end - start) / durationSecond;
+}, function(date2) {
+ return date2.getUTCSeconds();
+});
+const utcSecond = second;
+second.range;
+var minute = newInterval(function(date2) {
+ date2.setTime(date2 - date2.getMilliseconds() - date2.getSeconds() * durationSecond);
+}, function(date2, step) {
+ date2.setTime(+date2 + step * durationMinute);
+}, function(start, end) {
+ return (end - start) / durationMinute;
+}, function(date2) {
+ return date2.getMinutes();
+});
+const timeMinute = minute;
+minute.range;
+var hour = newInterval(function(date2) {
+ date2.setTime(date2 - date2.getMilliseconds() - date2.getSeconds() * durationSecond - date2.getMinutes() * durationMinute);
+}, function(date2, step) {
+ date2.setTime(+date2 + step * durationHour);
+}, function(start, end) {
+ return (end - start) / durationHour;
+}, function(date2) {
+ return date2.getHours();
+});
+const timeHour = hour;
+hour.range;
+var day = newInterval(
+ (date2) => date2.setHours(0, 0, 0, 0),
+ (date2, step) => date2.setDate(date2.getDate() + step),
+ (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,
+ (date2) => date2.getDate() - 1
+);
+const timeDay = day;
+day.range;
+function weekday(i) {
+ return newInterval(function(date2) {
+ date2.setDate(date2.getDate() - (date2.getDay() + 7 - i) % 7);
+ date2.setHours(0, 0, 0, 0);
+ }, function(date2, step) {
+ date2.setDate(date2.getDate() + step * 7);
+ }, function(start, end) {
+ return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;
+ });
+}
+var sunday = weekday(0);
+var monday = weekday(1);
+var tuesday = weekday(2);
+var wednesday = weekday(3);
+var thursday = weekday(4);
+var friday = weekday(5);
+var saturday = weekday(6);
+sunday.range;
+monday.range;
+tuesday.range;
+wednesday.range;
+thursday.range;
+friday.range;
+saturday.range;
+var month = newInterval(function(date2) {
+ date2.setDate(1);
+ date2.setHours(0, 0, 0, 0);
+}, function(date2, step) {
+ date2.setMonth(date2.getMonth() + step);
+}, function(start, end) {
+ return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
+}, function(date2) {
+ return date2.getMonth();
+});
+const timeMonth = month;
+month.range;
+var year = newInterval(function(date2) {
+ date2.setMonth(0, 1);
+ date2.setHours(0, 0, 0, 0);
+}, function(date2, step) {
+ date2.setFullYear(date2.getFullYear() + step);
+}, function(start, end) {
+ return end.getFullYear() - start.getFullYear();
+}, function(date2) {
+ return date2.getFullYear();
+});
+year.every = function(k) {
+ return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date2) {
+ date2.setFullYear(Math.floor(date2.getFullYear() / k) * k);
+ date2.setMonth(0, 1);
+ date2.setHours(0, 0, 0, 0);
+ }, function(date2, step) {
+ date2.setFullYear(date2.getFullYear() + step * k);
+ });
+};
+const timeYear = year;
+year.range;
+var utcMinute = newInterval(function(date2) {
+ date2.setUTCSeconds(0, 0);
+}, function(date2, step) {
+ date2.setTime(+date2 + step * durationMinute);
+}, function(start, end) {
+ return (end - start) / durationMinute;
+}, function(date2) {
+ return date2.getUTCMinutes();
+});
+const utcMinute$1 = utcMinute;
+utcMinute.range;
+var utcHour = newInterval(function(date2) {
+ date2.setUTCMinutes(0, 0, 0);
+}, function(date2, step) {
+ date2.setTime(+date2 + step * durationHour);
+}, function(start, end) {
+ return (end - start) / durationHour;
+}, function(date2) {
+ return date2.getUTCHours();
+});
+const utcHour$1 = utcHour;
+utcHour.range;
+var utcDay = newInterval(function(date2) {
+ date2.setUTCHours(0, 0, 0, 0);
+}, function(date2, step) {
+ date2.setUTCDate(date2.getUTCDate() + step);
+}, function(start, end) {
+ return (end - start) / durationDay;
+}, function(date2) {
+ return date2.getUTCDate() - 1;
+});
+const utcDay$1 = utcDay;
+utcDay.range;
+function utcWeekday(i) {
+ return newInterval(function(date2) {
+ date2.setUTCDate(date2.getUTCDate() - (date2.getUTCDay() + 7 - i) % 7);
+ date2.setUTCHours(0, 0, 0, 0);
+ }, function(date2, step) {
+ date2.setUTCDate(date2.getUTCDate() + step * 7);
+ }, function(start, end) {
+ return (end - start) / durationWeek;
+ });
+}
+var utcSunday = utcWeekday(0);
+var utcMonday = utcWeekday(1);
+var utcTuesday = utcWeekday(2);
+var utcWednesday = utcWeekday(3);
+var utcThursday = utcWeekday(4);
+var utcFriday = utcWeekday(5);
+var utcSaturday = utcWeekday(6);
+utcSunday.range;
+utcMonday.range;
+utcTuesday.range;
+utcWednesday.range;
+utcThursday.range;
+utcFriday.range;
+utcSaturday.range;
+var utcMonth = newInterval(function(date2) {
+ date2.setUTCDate(1);
+ date2.setUTCHours(0, 0, 0, 0);
+}, function(date2, step) {
+ date2.setUTCMonth(date2.getUTCMonth() + step);
+}, function(start, end) {
+ return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
+}, function(date2) {
+ return date2.getUTCMonth();
+});
+const utcMonth$1 = utcMonth;
+utcMonth.range;
+var utcYear = newInterval(function(date2) {
+ date2.setUTCMonth(0, 1);
+ date2.setUTCHours(0, 0, 0, 0);
+}, function(date2, step) {
+ date2.setUTCFullYear(date2.getUTCFullYear() + step);
+}, function(start, end) {
+ return end.getUTCFullYear() - start.getUTCFullYear();
+}, function(date2) {
+ return date2.getUTCFullYear();
+});
+utcYear.every = function(k) {
+ return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date2) {
+ date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / k) * k);
+ date2.setUTCMonth(0, 1);
+ date2.setUTCHours(0, 0, 0, 0);
+ }, function(date2, step) {
+ date2.setUTCFullYear(date2.getUTCFullYear() + step * k);
+ });
+};
+const utcYear$1 = utcYear;
+utcYear.range;
+function ticker(year2, month2, week, day2, hour2, minute2) {
+ const tickIntervals = [
+ [utcSecond, 1, durationSecond],
+ [utcSecond, 5, 5 * durationSecond],
+ [utcSecond, 15, 15 * durationSecond],
+ [utcSecond, 30, 30 * durationSecond],
+ [minute2, 1, durationMinute],
+ [minute2, 5, 5 * durationMinute],
+ [minute2, 15, 15 * durationMinute],
+ [minute2, 30, 30 * durationMinute],
+ [hour2, 1, durationHour],
+ [hour2, 3, 3 * durationHour],
+ [hour2, 6, 6 * durationHour],
+ [hour2, 12, 12 * durationHour],
+ [day2, 1, durationDay],
+ [day2, 2, 2 * durationDay],
+ [week, 1, durationWeek],
+ [month2, 1, durationMonth],
+ [month2, 3, 3 * durationMonth],
+ [year2, 1, durationYear]
+ ];
+ function ticks2(start, stop, count) {
+ const reverse = stop < start;
+ if (reverse)
+ [start, stop] = [stop, start];
+ const interval = count && typeof count.range === "function" ? count : tickInterval2(start, stop, count);
+ const ticks3 = interval ? interval.range(start, +stop + 1) : [];
+ return reverse ? ticks3.reverse() : ticks3;
+ }
+ function tickInterval2(start, stop, count) {
+ const target = Math.abs(stop - start) / count;
+ const i = bisector(([, , step2]) => step2).right(tickIntervals, target);
+ if (i === tickIntervals.length)
+ return year2.every(tickStep(start / durationYear, stop / durationYear, count));
+ if (i === 0)
+ return millisecond$1.every(Math.max(tickStep(start, stop, count), 1));
+ const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
+ return t.every(step);
+ }
+ return [ticks2, tickInterval2];
+}
+ticker(utcYear$1, utcMonth$1, utcSunday, utcDay$1, utcHour$1, utcMinute$1);
+const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, sunday, timeDay, timeHour, timeMinute);
+function localDate(d) {
+ if (0 <= d.y && d.y < 100) {
+ var date2 = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
+ date2.setFullYear(d.y);
+ return date2;
+ }
+ return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
+}
+function utcDate(d) {
+ if (0 <= d.y && d.y < 100) {
+ var date2 = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
+ date2.setUTCFullYear(d.y);
+ return date2;
+ }
+ return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
+}
+function newDate(y, m, d) {
+ return { y, m, d, H: 0, M: 0, S: 0, L: 0 };
+}
+function formatLocale(locale2) {
+ var locale_dateTime = locale2.dateTime, locale_date = locale2.date, locale_time = locale2.time, locale_periods = locale2.periods, locale_weekdays = locale2.days, locale_shortWeekdays = locale2.shortDays, locale_months = locale2.months, locale_shortMonths = locale2.shortMonths;
+ var periodRe = formatRe(locale_periods), periodLookup = formatLookup(locale_periods), weekdayRe = formatRe(locale_weekdays), weekdayLookup = formatLookup(locale_weekdays), shortWeekdayRe = formatRe(locale_shortWeekdays), shortWeekdayLookup = formatLookup(locale_shortWeekdays), monthRe = formatRe(locale_months), monthLookup = formatLookup(locale_months), shortMonthRe = formatRe(locale_shortMonths), shortMonthLookup = formatLookup(locale_shortMonths);
+ var formats = {
+ "a": formatShortWeekday,
+ "A": formatWeekday,
+ "b": formatShortMonth,
+ "B": formatMonth,
+ "c": null,
+ "d": formatDayOfMonth,
+ "e": formatDayOfMonth,
+ "f": formatMicroseconds,
+ "g": formatYearISO,
+ "G": formatFullYearISO,
+ "H": formatHour24,
+ "I": formatHour12,
+ "j": formatDayOfYear,
+ "L": formatMilliseconds,
+ "m": formatMonthNumber,
+ "M": formatMinutes,
+ "p": formatPeriod,
+ "q": formatQuarter,
+ "Q": formatUnixTimestamp,
+ "s": formatUnixTimestampSeconds,
+ "S": formatSeconds,
+ "u": formatWeekdayNumberMonday,
+ "U": formatWeekNumberSunday,
+ "V": formatWeekNumberISO,
+ "w": formatWeekdayNumberSunday,
+ "W": formatWeekNumberMonday,
+ "x": null,
+ "X": null,
+ "y": formatYear,
+ "Y": formatFullYear,
+ "Z": formatZone,
+ "%": formatLiteralPercent
+ };
+ var utcFormats = {
+ "a": formatUTCShortWeekday,
+ "A": formatUTCWeekday,
+ "b": formatUTCShortMonth,
+ "B": formatUTCMonth,
+ "c": null,
+ "d": formatUTCDayOfMonth,
+ "e": formatUTCDayOfMonth,
+ "f": formatUTCMicroseconds,
+ "g": formatUTCYearISO,
+ "G": formatUTCFullYearISO,
+ "H": formatUTCHour24,
+ "I": formatUTCHour12,
+ "j": formatUTCDayOfYear,
+ "L": formatUTCMilliseconds,
+ "m": formatUTCMonthNumber,
+ "M": formatUTCMinutes,
+ "p": formatUTCPeriod,
+ "q": formatUTCQuarter,
+ "Q": formatUnixTimestamp,
+ "s": formatUnixTimestampSeconds,
+ "S": formatUTCSeconds,
+ "u": formatUTCWeekdayNumberMonday,
+ "U": formatUTCWeekNumberSunday,
+ "V": formatUTCWeekNumberISO,
+ "w": formatUTCWeekdayNumberSunday,
+ "W": formatUTCWeekNumberMonday,
+ "x": null,
+ "X": null,
+ "y": formatUTCYear,
+ "Y": formatUTCFullYear,
+ "Z": formatUTCZone,
+ "%": formatLiteralPercent
+ };
+ var parses = {
+ "a": parseShortWeekday,
+ "A": parseWeekday,
+ "b": parseShortMonth,
+ "B": parseMonth,
+ "c": parseLocaleDateTime,
+ "d": parseDayOfMonth,
+ "e": parseDayOfMonth,
+ "f": parseMicroseconds,
+ "g": parseYear,
+ "G": parseFullYear,
+ "H": parseHour24,
+ "I": parseHour24,
+ "j": parseDayOfYear,
+ "L": parseMilliseconds,
+ "m": parseMonthNumber,
+ "M": parseMinutes,
+ "p": parsePeriod,
+ "q": parseQuarter,
+ "Q": parseUnixTimestamp,
+ "s": parseUnixTimestampSeconds,
+ "S": parseSeconds,
+ "u": parseWeekdayNumberMonday,
+ "U": parseWeekNumberSunday,
+ "V": parseWeekNumberISO,
+ "w": parseWeekdayNumberSunday,
+ "W": parseWeekNumberMonday,
+ "x": parseLocaleDate,
+ "X": parseLocaleTime,
+ "y": parseYear,
+ "Y": parseFullYear,
+ "Z": parseZone,
+ "%": parseLiteralPercent
+ };
+ formats.x = newFormat(locale_date, formats);
+ formats.X = newFormat(locale_time, formats);
+ formats.c = newFormat(locale_dateTime, formats);
+ utcFormats.x = newFormat(locale_date, utcFormats);
+ utcFormats.X = newFormat(locale_time, utcFormats);
+ utcFormats.c = newFormat(locale_dateTime, utcFormats);
+ function newFormat(specifier, formats2) {
+ return function(date2) {
+ var string = [], i = -1, j = 0, n = specifier.length, c, pad2, format2;
+ if (!(date2 instanceof Date))
+ date2 = new Date(+date2);
+ while (++i < n) {
+ if (specifier.charCodeAt(i) === 37) {
+ string.push(specifier.slice(j, i));
+ if ((pad2 = pads[c = specifier.charAt(++i)]) != null)
+ c = specifier.charAt(++i);
+ else
+ pad2 = c === "e" ? " " : "0";
+ if (format2 = formats2[c])
+ c = format2(date2, pad2);
+ string.push(c);
+ j = i + 1;
+ }
+ }
+ string.push(specifier.slice(j, i));
+ return string.join("");
+ };
+ }
+ function newParse(specifier, Z) {
+ return function(string) {
+ var d = newDate(1900, void 0, 1), i = parseSpecifier(d, specifier, string += "", 0), week, day2;
+ if (i != string.length)
+ return null;
+ if ("Q" in d)
+ return new Date(d.Q);
+ if ("s" in d)
+ return new Date(d.s * 1e3 + ("L" in d ? d.L : 0));
+ if (Z && !("Z" in d))
+ d.Z = 0;
+ if ("p" in d)
+ d.H = d.H % 12 + d.p * 12;
+ if (d.m === void 0)
+ d.m = "q" in d ? d.q : 0;
+ if ("V" in d) {
+ if (d.V < 1 || d.V > 53)
+ return null;
+ if (!("w" in d))
+ d.w = 1;
+ if ("Z" in d) {
+ week = utcDate(newDate(d.y, 0, 1)), day2 = week.getUTCDay();
+ week = day2 > 4 || day2 === 0 ? utcMonday.ceil(week) : utcMonday(week);
+ week = utcDay$1.offset(week, (d.V - 1) * 7);
+ d.y = week.getUTCFullYear();
+ d.m = week.getUTCMonth();
+ d.d = week.getUTCDate() + (d.w + 6) % 7;
+ } else {
+ week = localDate(newDate(d.y, 0, 1)), day2 = week.getDay();
+ week = day2 > 4 || day2 === 0 ? monday.ceil(week) : monday(week);
+ week = timeDay.offset(week, (d.V - 1) * 7);
+ d.y = week.getFullYear();
+ d.m = week.getMonth();
+ d.d = week.getDate() + (d.w + 6) % 7;
+ }
+ } else if ("W" in d || "U" in d) {
+ if (!("w" in d))
+ d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
+ day2 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
+ d.m = 0;
+ d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day2 + 5) % 7 : d.w + d.U * 7 - (day2 + 6) % 7;
+ }
+ if ("Z" in d) {
+ d.H += d.Z / 100 | 0;
+ d.M += d.Z % 100;
+ return utcDate(d);
+ }
+ return localDate(d);
+ };
+ }
+ function parseSpecifier(d, specifier, string, j) {
+ var i = 0, n = specifier.length, m = string.length, c, parse;
+ while (i < n) {
+ if (j >= m)
+ return -1;
+ c = specifier.charCodeAt(i++);
+ if (c === 37) {
+ c = specifier.charAt(i++);
+ parse = parses[c in pads ? specifier.charAt(i++) : c];
+ if (!parse || (j = parse(d, string, j)) < 0)
+ return -1;
+ } else if (c != string.charCodeAt(j++)) {
+ return -1;
+ }
+ }
+ return j;
+ }
+ function parsePeriod(d, string, i) {
+ var n = periodRe.exec(string.slice(i));
+ return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+ }
+ function parseShortWeekday(d, string, i) {
+ var n = shortWeekdayRe.exec(string.slice(i));
+ return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+ }
+ function parseWeekday(d, string, i) {
+ var n = weekdayRe.exec(string.slice(i));
+ return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+ }
+ function parseShortMonth(d, string, i) {
+ var n = shortMonthRe.exec(string.slice(i));
+ return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+ }
+ function parseMonth(d, string, i) {
+ var n = monthRe.exec(string.slice(i));
+ return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+ }
+ function parseLocaleDateTime(d, string, i) {
+ return parseSpecifier(d, locale_dateTime, string, i);
+ }
+ function parseLocaleDate(d, string, i) {
+ return parseSpecifier(d, locale_date, string, i);
+ }
+ function parseLocaleTime(d, string, i) {
+ return parseSpecifier(d, locale_time, string, i);
+ }
+ function formatShortWeekday(d) {
+ return locale_shortWeekdays[d.getDay()];
+ }
+ function formatWeekday(d) {
+ return locale_weekdays[d.getDay()];
+ }
+ function formatShortMonth(d) {
+ return locale_shortMonths[d.getMonth()];
+ }
+ function formatMonth(d) {
+ return locale_months[d.getMonth()];
+ }
+ function formatPeriod(d) {
+ return locale_periods[+(d.getHours() >= 12)];
+ }
+ function formatQuarter(d) {
+ return 1 + ~~(d.getMonth() / 3);
+ }
+ function formatUTCShortWeekday(d) {
+ return locale_shortWeekdays[d.getUTCDay()];
+ }
+ function formatUTCWeekday(d) {
+ return locale_weekdays[d.getUTCDay()];
+ }
+ function formatUTCShortMonth(d) {
+ return locale_shortMonths[d.getUTCMonth()];
+ }
+ function formatUTCMonth(d) {
+ return locale_months[d.getUTCMonth()];
+ }
+ function formatUTCPeriod(d) {
+ return locale_periods[+(d.getUTCHours() >= 12)];
+ }
+ function formatUTCQuarter(d) {
+ return 1 + ~~(d.getUTCMonth() / 3);
+ }
+ return {
+ format: function(specifier) {
+ var f = newFormat(specifier += "", formats);
+ f.toString = function() {
+ return specifier;
+ };
+ return f;
+ },
+ parse: function(specifier) {
+ var p = newParse(specifier += "", false);
+ p.toString = function() {
+ return specifier;
+ };
+ return p;
+ },
+ utcFormat: function(specifier) {
+ var f = newFormat(specifier += "", utcFormats);
+ f.toString = function() {
+ return specifier;
+ };
+ return f;
+ },
+ utcParse: function(specifier) {
+ var p = newParse(specifier += "", true);
+ p.toString = function() {
+ return specifier;
+ };
+ return p;
+ }
+ };
+}
+var pads = { "-": "", "_": " ", "0": "0" }, numberRe = /^\s*\d+/, percentRe = /^%/, requoteRe = /[\\^$*+?|[\]().{}]/g;
+function pad(value, fill, width) {
+ var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length;
+ return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
+}
+function requote(s) {
+ return s.replace(requoteRe, "\\$&");
+}
+function formatRe(names) {
+ return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
+}
+function formatLookup(names) {
+ return new Map(names.map((name, i) => [name.toLowerCase(), i]));
+}
+function parseWeekdayNumberSunday(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 1));
+ return n ? (d.w = +n[0], i + n[0].length) : -1;
+}
+function parseWeekdayNumberMonday(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 1));
+ return n ? (d.u = +n[0], i + n[0].length) : -1;
+}
+function parseWeekNumberSunday(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 2));
+ return n ? (d.U = +n[0], i + n[0].length) : -1;
+}
+function parseWeekNumberISO(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 2));
+ return n ? (d.V = +n[0], i + n[0].length) : -1;
+}
+function parseWeekNumberMonday(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 2));
+ return n ? (d.W = +n[0], i + n[0].length) : -1;
+}
+function parseFullYear(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 4));
+ return n ? (d.y = +n[0], i + n[0].length) : -1;
+}
+function parseYear(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 2));
+ return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2e3), i + n[0].length) : -1;
+}
+function parseZone(d, string, i) {
+ var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
+ return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
+}
+function parseQuarter(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 1));
+ return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;
+}
+function parseMonthNumber(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 2));
+ return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
+}
+function parseDayOfMonth(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 2));
+ return n ? (d.d = +n[0], i + n[0].length) : -1;
+}
+function parseDayOfYear(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 3));
+ return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
+}
+function parseHour24(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 2));
+ return n ? (d.H = +n[0], i + n[0].length) : -1;
+}
+function parseMinutes(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 2));
+ return n ? (d.M = +n[0], i + n[0].length) : -1;
+}
+function parseSeconds(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 2));
+ return n ? (d.S = +n[0], i + n[0].length) : -1;
+}
+function parseMilliseconds(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 3));
+ return n ? (d.L = +n[0], i + n[0].length) : -1;
+}
+function parseMicroseconds(d, string, i) {
+ var n = numberRe.exec(string.slice(i, i + 6));
+ return n ? (d.L = Math.floor(n[0] / 1e3), i + n[0].length) : -1;
+}
+function parseLiteralPercent(d, string, i) {
+ var n = percentRe.exec(string.slice(i, i + 1));
+ return n ? i + n[0].length : -1;
+}
+function parseUnixTimestamp(d, string, i) {
+ var n = numberRe.exec(string.slice(i));
+ return n ? (d.Q = +n[0], i + n[0].length) : -1;
+}
+function parseUnixTimestampSeconds(d, string, i) {
+ var n = numberRe.exec(string.slice(i));
+ return n ? (d.s = +n[0], i + n[0].length) : -1;
+}
+function formatDayOfMonth(d, p) {
+ return pad(d.getDate(), p, 2);
+}
+function formatHour24(d, p) {
+ return pad(d.getHours(), p, 2);
+}
+function formatHour12(d, p) {
+ return pad(d.getHours() % 12 || 12, p, 2);
+}
+function formatDayOfYear(d, p) {
+ return pad(1 + timeDay.count(timeYear(d), d), p, 3);
+}
+function formatMilliseconds(d, p) {
+ return pad(d.getMilliseconds(), p, 3);
+}
+function formatMicroseconds(d, p) {
+ return formatMilliseconds(d, p) + "000";
+}
+function formatMonthNumber(d, p) {
+ return pad(d.getMonth() + 1, p, 2);
+}
+function formatMinutes(d, p) {
+ return pad(d.getMinutes(), p, 2);
+}
+function formatSeconds(d, p) {
+ return pad(d.getSeconds(), p, 2);
+}
+function formatWeekdayNumberMonday(d) {
+ var day2 = d.getDay();
+ return day2 === 0 ? 7 : day2;
+}
+function formatWeekNumberSunday(d, p) {
+ return pad(sunday.count(timeYear(d) - 1, d), p, 2);
+}
+function dISO(d) {
+ var day2 = d.getDay();
+ return day2 >= 4 || day2 === 0 ? thursday(d) : thursday.ceil(d);
+}
+function formatWeekNumberISO(d, p) {
+ d = dISO(d);
+ return pad(thursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);
+}
+function formatWeekdayNumberSunday(d) {
+ return d.getDay();
+}
+function formatWeekNumberMonday(d, p) {
+ return pad(monday.count(timeYear(d) - 1, d), p, 2);
+}
+function formatYear(d, p) {
+ return pad(d.getFullYear() % 100, p, 2);
+}
+function formatYearISO(d, p) {
+ d = dISO(d);
+ return pad(d.getFullYear() % 100, p, 2);
+}
+function formatFullYear(d, p) {
+ return pad(d.getFullYear() % 1e4, p, 4);
+}
+function formatFullYearISO(d, p) {
+ var day2 = d.getDay();
+ d = day2 >= 4 || day2 === 0 ? thursday(d) : thursday.ceil(d);
+ return pad(d.getFullYear() % 1e4, p, 4);
+}
+function formatZone(d) {
+ var z = d.getTimezoneOffset();
+ return (z > 0 ? "-" : (z *= -1, "+")) + pad(z / 60 | 0, "0", 2) + pad(z % 60, "0", 2);
+}
+function formatUTCDayOfMonth(d, p) {
+ return pad(d.getUTCDate(), p, 2);
+}
+function formatUTCHour24(d, p) {
+ return pad(d.getUTCHours(), p, 2);
+}
+function formatUTCHour12(d, p) {
+ return pad(d.getUTCHours() % 12 || 12, p, 2);
+}
+function formatUTCDayOfYear(d, p) {
+ return pad(1 + utcDay$1.count(utcYear$1(d), d), p, 3);
+}
+function formatUTCMilliseconds(d, p) {
+ return pad(d.getUTCMilliseconds(), p, 3);
+}
+function formatUTCMicroseconds(d, p) {
+ return formatUTCMilliseconds(d, p) + "000";
+}
+function formatUTCMonthNumber(d, p) {
+ return pad(d.getUTCMonth() + 1, p, 2);
+}
+function formatUTCMinutes(d, p) {
+ return pad(d.getUTCMinutes(), p, 2);
+}
+function formatUTCSeconds(d, p) {
+ return pad(d.getUTCSeconds(), p, 2);
+}
+function formatUTCWeekdayNumberMonday(d) {
+ var dow = d.getUTCDay();
+ return dow === 0 ? 7 : dow;
+}
+function formatUTCWeekNumberSunday(d, p) {
+ return pad(utcSunday.count(utcYear$1(d) - 1, d), p, 2);
+}
+function UTCdISO(d) {
+ var day2 = d.getUTCDay();
+ return day2 >= 4 || day2 === 0 ? utcThursday(d) : utcThursday.ceil(d);
+}
+function formatUTCWeekNumberISO(d, p) {
+ d = UTCdISO(d);
+ return pad(utcThursday.count(utcYear$1(d), d) + (utcYear$1(d).getUTCDay() === 4), p, 2);
+}
+function formatUTCWeekdayNumberSunday(d) {
+ return d.getUTCDay();
+}
+function formatUTCWeekNumberMonday(d, p) {
+ return pad(utcMonday.count(utcYear$1(d) - 1, d), p, 2);
+}
+function formatUTCYear(d, p) {
+ return pad(d.getUTCFullYear() % 100, p, 2);
+}
+function formatUTCYearISO(d, p) {
+ d = UTCdISO(d);
+ return pad(d.getUTCFullYear() % 100, p, 2);
+}
+function formatUTCFullYear(d, p) {
+ return pad(d.getUTCFullYear() % 1e4, p, 4);
+}
+function formatUTCFullYearISO(d, p) {
+ var day2 = d.getUTCDay();
+ d = day2 >= 4 || day2 === 0 ? utcThursday(d) : utcThursday.ceil(d);
+ return pad(d.getUTCFullYear() % 1e4, p, 4);
+}
+function formatUTCZone() {
+ return "+0000";
+}
+function formatLiteralPercent() {
+ return "%";
+}
+function formatUnixTimestamp(d) {
+ return +d;
+}
+function formatUnixTimestampSeconds(d) {
+ return Math.floor(+d / 1e3);
+}
+var locale;
+var timeFormat;
+defaultLocale({
+ 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"]
+});
+function defaultLocale(definition) {
+ locale = formatLocale(definition);
+ timeFormat = locale.format;
+ locale.parse;
+ locale.utcFormat;
+ locale.utcParse;
+ return locale;
+}
+function date(t) {
+ return new Date(t);
+}
+function number(t) {
+ return t instanceof Date ? +t : +new Date(+t);
+}
+function calendar(ticks2, tickInterval2, year2, month2, week, day2, hour2, minute2, second2, format2) {
+ var scale = continuous(), invert = scale.invert, domain = scale.domain;
+ var formatMillisecond = format2(".%L"), formatSecond = format2(":%S"), formatMinute = format2("%I:%M"), formatHour = format2("%I %p"), formatDay = format2("%a %d"), formatWeek = format2("%b %d"), formatMonth = format2("%B"), formatYear2 = format2("%Y");
+ function tickFormat2(date2) {
+ return (second2(date2) < date2 ? formatMillisecond : minute2(date2) < date2 ? formatSecond : hour2(date2) < date2 ? formatMinute : day2(date2) < date2 ? formatHour : month2(date2) < date2 ? week(date2) < date2 ? formatDay : formatWeek : year2(date2) < date2 ? formatMonth : formatYear2)(date2);
+ }
+ scale.invert = function(y) {
+ return new Date(invert(y));
+ };
+ scale.domain = function(_) {
+ return arguments.length ? domain(Array.from(_, number)) : domain().map(date);
+ };
+ scale.ticks = function(interval) {
+ var d = domain();
+ return ticks2(d[0], d[d.length - 1], interval == null ? 10 : interval);
+ };
+ scale.tickFormat = function(count, specifier) {
+ return specifier == null ? tickFormat2 : format2(specifier);
+ };
+ scale.nice = function(interval) {
+ var d = domain();
+ if (!interval || typeof interval.range !== "function")
+ interval = tickInterval2(d[0], d[d.length - 1], interval == null ? 10 : interval);
+ return interval ? domain(nice(d, interval)) : scale;
+ };
+ scale.copy = function() {
+ return copy(scale, calendar(ticks2, tickInterval2, year2, month2, week, day2, hour2, minute2, second2, format2));
+ };
+ return scale;
+}
+function time() {
+ return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, sunday, timeDay, timeHour, timeMinute, utcSecond, timeFormat).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), arguments);
+}
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 20], $V9 = [1, 21], $Va = [1, 22], $Vb = [1, 23], $Vc = [1, 24], $Vd = [1, 25], $Ve = [1, 26], $Vf = [1, 27], $Vg = [1, 29], $Vh = [1, 31], $Vi = [1, 34], $Vj = [5, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "directive": 4, "gantt": 5, "document": 6, "EOF": 7, "line": 8, "SPACE": 9, "statement": 10, "NL": 11, "dateFormat": 12, "inclusiveEndDates": 13, "topAxis": 14, "axisFormat": 15, "tickInterval": 16, "excludes": 17, "includes": 18, "todayMarker": 19, "title": 20, "acc_title": 21, "acc_title_value": 22, "acc_descr": 23, "acc_descr_value": 24, "acc_descr_multiline_value": 25, "section": 26, "clickStatement": 27, "taskTxt": 28, "taskData": 29, "openDirective": 30, "typeDirective": 31, "closeDirective": 32, ":": 33, "argDirective": 34, "click": 35, "callbackname": 36, "callbackargs": 37, "href": 38, "clickStatementDebug": 39, "open_directive": 40, "type_directive": 41, "arg_directive": 42, "close_directive": 43, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 5: "gantt", 7: "EOF", 9: "SPACE", 11: "NL", 12: "dateFormat", 13: "inclusiveEndDates", 14: "topAxis", 15: "axisFormat", 16: "tickInterval", 17: "excludes", 18: "includes", 19: "todayMarker", 20: "title", 21: "acc_title", 22: "acc_title_value", 23: "acc_descr", 24: "acc_descr_value", 25: "acc_descr_multiline_value", 26: "section", 28: "taskTxt", 29: "taskData", 33: ":", 35: "click", 36: "callbackname", 37: "callbackargs", 38: "href", 40: "open_directive", 41: "type_directive", 42: "arg_directive", 43: "close_directive" },
+ productions_: [0, [3, 2], [3, 3], [6, 0], [6, 2], [8, 2], [8, 1], [8, 1], [8, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 2], [10, 1], [4, 4], [4, 6], [27, 2], [27, 3], [27, 3], [27, 4], [27, 3], [27, 4], [27, 2], [39, 2], [39, 3], [39, 3], [39, 4], [39, 3], [39, 4], [39, 2], [30, 1], [31, 1], [34, 1], [32, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 2:
+ return $$[$0 - 1];
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = $$[$0];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 9:
+ yy.setDateFormat($$[$0].substr(11));
+ this.$ = $$[$0].substr(11);
+ break;
+ case 10:
+ yy.enableInclusiveEndDates();
+ this.$ = $$[$0].substr(18);
+ break;
+ case 11:
+ yy.TopAxis();
+ this.$ = $$[$0].substr(8);
+ break;
+ case 12:
+ yy.setAxisFormat($$[$0].substr(11));
+ this.$ = $$[$0].substr(11);
+ break;
+ case 13:
+ yy.setTickInterval($$[$0].substr(13));
+ this.$ = $$[$0].substr(13);
+ break;
+ case 14:
+ yy.setExcludes($$[$0].substr(9));
+ this.$ = $$[$0].substr(9);
+ break;
+ case 15:
+ yy.setIncludes($$[$0].substr(9));
+ this.$ = $$[$0].substr(9);
+ break;
+ case 16:
+ yy.setTodayMarker($$[$0].substr(12));
+ this.$ = $$[$0].substr(12);
+ break;
+ case 17:
+ yy.setDiagramTitle($$[$0].substr(6));
+ this.$ = $$[$0].substr(6);
+ break;
+ case 18:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 19:
+ case 20:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 21:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 23:
+ yy.addTask($$[$0 - 1], $$[$0]);
+ this.$ = "task";
+ break;
+ case 27:
+ this.$ = $$[$0 - 1];
+ yy.setClickEvent($$[$0 - 1], $$[$0], null);
+ break;
+ case 28:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 29:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);
+ yy.setLink($$[$0 - 2], $$[$0]);
+ break;
+ case 30:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
+ yy.setLink($$[$0 - 3], $$[$0]);
+ break;
+ case 31:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0], null);
+ yy.setLink($$[$0 - 2], $$[$0 - 1]);
+ break;
+ case 32:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);
+ yy.setLink($$[$0 - 3], $$[$0 - 2]);
+ break;
+ case 33:
+ this.$ = $$[$0 - 1];
+ yy.setLink($$[$0 - 1], $$[$0]);
+ break;
+ case 34:
+ case 40:
+ this.$ = $$[$0 - 1] + " " + $$[$0];
+ break;
+ case 35:
+ case 36:
+ case 38:
+ this.$ = $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
+ break;
+ case 37:
+ case 39:
+ this.$ = $$[$0 - 3] + " " + $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
+ break;
+ case 41:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 42:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 43:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 44:
+ yy.parseDirective("}%%", "close_directive", "gantt");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: $V0, 30: 4, 40: $V1 }, { 1: [3] }, { 3: 6, 4: 2, 5: $V0, 30: 4, 40: $V1 }, o($V2, [2, 3], { 6: 7 }), { 31: 8, 41: [1, 9] }, { 41: [2, 41] }, { 1: [2, 1] }, { 4: 30, 7: [1, 10], 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: $V3, 13: $V4, 14: $V5, 15: $V6, 16: $V7, 17: $V8, 18: $V9, 19: $Va, 20: $Vb, 21: $Vc, 23: $Vd, 25: $Ve, 26: $Vf, 27: 28, 28: $Vg, 30: 4, 35: $Vh, 40: $V1 }, { 32: 32, 33: [1, 33], 43: $Vi }, o([33, 43], [2, 42]), o($V2, [2, 8], { 1: [2, 2] }), o($V2, [2, 4]), { 4: 30, 10: 35, 12: $V3, 13: $V4, 14: $V5, 15: $V6, 16: $V7, 17: $V8, 18: $V9, 19: $Va, 20: $Vb, 21: $Vc, 23: $Vd, 25: $Ve, 26: $Vf, 27: 28, 28: $Vg, 30: 4, 35: $Vh, 40: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 9]), o($V2, [2, 10]), o($V2, [2, 11]), o($V2, [2, 12]), o($V2, [2, 13]), o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), { 22: [1, 36] }, { 24: [1, 37] }, o($V2, [2, 20]), o($V2, [2, 21]), o($V2, [2, 22]), { 29: [1, 38] }, o($V2, [2, 24]), { 36: [1, 39], 38: [1, 40] }, { 11: [1, 41] }, { 34: 42, 42: [1, 43] }, { 11: [2, 44] }, o($V2, [2, 5]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 23]), o($V2, [2, 27], { 37: [1, 44], 38: [1, 45] }), o($V2, [2, 33], { 36: [1, 46] }), o($Vj, [2, 25]), { 32: 47, 43: $Vi }, { 43: [2, 43] }, o($V2, [2, 28], { 38: [1, 48] }), o($V2, [2, 29]), o($V2, [2, 31], { 37: [1, 49] }), { 11: [1, 50] }, o($V2, [2, 30]), o($V2, [2, 32]), o($Vj, [2, 26])],
+ defaultActions: { 5: [2, 41], 6: [2, 1], 34: [2, 44], 43: [2, 43] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 40;
+ case 1:
+ this.begin("type_directive");
+ return 41;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 33;
+ case 3:
+ this.popState();
+ this.popState();
+ return 43;
+ case 4:
+ return 42;
+ case 5:
+ this.begin("acc_title");
+ return 21;
+ case 6:
+ this.popState();
+ return "acc_title_value";
+ case 7:
+ this.begin("acc_descr");
+ return 23;
+ case 8:
+ this.popState();
+ return "acc_descr_value";
+ case 9:
+ this.begin("acc_descr_multiline");
+ break;
+ case 10:
+ this.popState();
+ break;
+ case 11:
+ return "acc_descr_multiline_value";
+ case 12:
+ break;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ return 11;
+ case 16:
+ break;
+ case 17:
+ break;
+ case 18:
+ break;
+ case 19:
+ this.begin("href");
+ break;
+ case 20:
+ this.popState();
+ break;
+ case 21:
+ return 38;
+ case 22:
+ this.begin("callbackname");
+ break;
+ case 23:
+ this.popState();
+ break;
+ case 24:
+ this.popState();
+ this.begin("callbackargs");
+ break;
+ case 25:
+ return 36;
+ case 26:
+ this.popState();
+ break;
+ case 27:
+ return 37;
+ case 28:
+ this.begin("click");
+ break;
+ case 29:
+ this.popState();
+ break;
+ case 30:
+ return 35;
+ case 31:
+ return 5;
+ case 32:
+ return 12;
+ case 33:
+ return 13;
+ case 34:
+ return 14;
+ case 35:
+ return 15;
+ case 36:
+ return 16;
+ case 37:
+ return 18;
+ case 38:
+ return 17;
+ case 39:
+ return 19;
+ case 40:
+ return "date";
+ case 41:
+ return 20;
+ case 42:
+ return "accDescription";
+ case 43:
+ return 26;
+ case 44:
+ return 28;
+ case 45:
+ return 29;
+ case 46:
+ return 33;
+ case 47:
+ return 7;
+ case 48:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\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, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "callbackargs": { "rules": [26, 27], "inclusive": false }, "callbackname": { "rules": [23, 24, 25], "inclusive": false }, "href": { "rules": [20, 21], "inclusive": false }, "click": { "rules": [29, 30], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 22, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const ganttParser = parser;
+var isoWeekExports = {};
+var isoWeek = {
+ get exports() {
+ return isoWeekExports;
+ },
+ set exports(v) {
+ isoWeekExports = v;
+ }
+};
+(function(module, exports) {
+ !function(e, t) {
+ module.exports = t();
+ }(commonjsGlobal, function() {
+ var e = "day";
+ return function(t, i, s) {
+ var a = function(t4) {
+ return t4.add(4 - t4.isoWeekday(), e);
+ }, d = i.prototype;
+ d.isoWeekYear = function() {
+ return a(this).year();
+ }, d.isoWeek = function(t4) {
+ if (!this.$utils().u(t4))
+ return this.add(7 * (t4 - this.isoWeek()), e);
+ var i2, d2, n2, o, r = a(this), u = (i2 = this.isoWeekYear(), d2 = this.$u, n2 = (d2 ? s.utc : s)().year(i2).startOf("year"), o = 4 - n2.isoWeekday(), n2.isoWeekday() > 4 && (o += 7), n2.add(o, e));
+ return r.diff(u, "week") + 1;
+ }, d.isoWeekday = function(e3) {
+ return this.$utils().u(e3) ? this.day() || 7 : this.day(this.day() % 7 ? e3 : e3 - 7);
+ };
+ var n = d.startOf;
+ d.startOf = function(e3, t4) {
+ var i2 = this.$utils(), s2 = !!i2.u(t4) || t4;
+ return "isoweek" === i2.p(e3) ? s2 ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day") : n.bind(this)(e3, t4);
+ };
+ };
+ });
+})(isoWeek);
+const dayjsIsoWeek = isoWeekExports;
+var customParseFormatExports = {};
+var customParseFormat = {
+ get exports() {
+ return customParseFormatExports;
+ },
+ set exports(v) {
+ customParseFormatExports = v;
+ }
+};
+(function(module, exports) {
+ !function(e, t) {
+ module.exports = t();
+ }(commonjsGlobal, function() {
+ var e = { 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" }, t = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g, n = /\d\d/, r = /\d\d?/, i = /\d*[^-_:/,()\s\d]+/, o = {}, s = function(e3) {
+ return (e3 = +e3) + (e3 > 68 ? 1900 : 2e3);
+ };
+ var a = function(e3) {
+ return function(t4) {
+ this[e3] = +t4;
+ };
+ }, f = [/[+-]\d\d:?(\d\d)?|Z/, function(e3) {
+ (this.zone || (this.zone = {})).offset = function(e4) {
+ if (!e4)
+ return 0;
+ if ("Z" === e4)
+ return 0;
+ var t4 = e4.match(/([+-]|\d\d)/g), n2 = 60 * t4[1] + (+t4[2] || 0);
+ return 0 === n2 ? 0 : "+" === t4[0] ? -n2 : n2;
+ }(e3);
+ }], h = function(e3) {
+ var t4 = o[e3];
+ return t4 && (t4.indexOf ? t4 : t4.s.concat(t4.f));
+ }, u = function(e3, t4) {
+ var n2, r2 = o.meridiem;
+ if (r2) {
+ for (var i2 = 1; i2 <= 24; i2 += 1)
+ if (e3.indexOf(r2(i2, 0, t4)) > -1) {
+ n2 = i2 > 12;
+ break;
+ }
+ } else
+ n2 = e3 === (t4 ? "pm" : "PM");
+ return n2;
+ }, d = { A: [i, function(e3) {
+ this.afternoon = u(e3, false);
+ }], a: [i, function(e3) {
+ this.afternoon = u(e3, true);
+ }], S: [/\d/, function(e3) {
+ this.milliseconds = 100 * +e3;
+ }], SS: [n, function(e3) {
+ this.milliseconds = 10 * +e3;
+ }], SSS: [/\d{3}/, function(e3) {
+ this.milliseconds = +e3;
+ }], s: [r, a("seconds")], ss: [r, a("seconds")], m: [r, a("minutes")], mm: [r, a("minutes")], H: [r, a("hours")], h: [r, a("hours")], HH: [r, a("hours")], hh: [r, a("hours")], D: [r, a("day")], DD: [n, a("day")], Do: [i, function(e3) {
+ var t4 = o.ordinal, n2 = e3.match(/\d+/);
+ if (this.day = n2[0], t4)
+ for (var r2 = 1; r2 <= 31; r2 += 1)
+ t4(r2).replace(/\[|\]/g, "") === e3 && (this.day = r2);
+ }], M: [r, a("month")], MM: [n, a("month")], MMM: [i, function(e3) {
+ var t4 = h("months"), n2 = (h("monthsShort") || t4.map(function(e4) {
+ return e4.slice(0, 3);
+ })).indexOf(e3) + 1;
+ if (n2 < 1)
+ throw new Error();
+ this.month = n2 % 12 || n2;
+ }], MMMM: [i, function(e3) {
+ var t4 = h("months").indexOf(e3) + 1;
+ if (t4 < 1)
+ throw new Error();
+ this.month = t4 % 12 || t4;
+ }], Y: [/[+-]?\d+/, a("year")], YY: [n, function(e3) {
+ this.year = s(e3);
+ }], YYYY: [/\d{4}/, a("year")], Z: f, ZZ: f };
+ function c(n2) {
+ var r2, i2;
+ r2 = n2, i2 = o && o.formats;
+ for (var s2 = (n2 = r2.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(t4, n3, r3) {
+ var o2 = r3 && r3.toUpperCase();
+ return n3 || i2[r3] || e[r3] || i2[o2].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function(e3, t5, n4) {
+ return t5 || n4.slice(1);
+ });
+ })).match(t), a2 = s2.length, f2 = 0; f2 < a2; f2 += 1) {
+ var h2 = s2[f2], u2 = d[h2], c2 = u2 && u2[0], l = u2 && u2[1];
+ s2[f2] = l ? { regex: c2, parser: l } : h2.replace(/^\[|\]$/g, "");
+ }
+ return function(e3) {
+ for (var t4 = {}, n3 = 0, r3 = 0; n3 < a2; n3 += 1) {
+ var i3 = s2[n3];
+ if ("string" == typeof i3)
+ r3 += i3.length;
+ else {
+ var o2 = i3.regex, f3 = i3.parser, h3 = e3.slice(r3), u3 = o2.exec(h3)[0];
+ f3.call(t4, u3), e3 = e3.replace(u3, "");
+ }
+ }
+ return function(e4) {
+ var t5 = e4.afternoon;
+ if (void 0 !== t5) {
+ var n4 = e4.hours;
+ t5 ? n4 < 12 && (e4.hours += 12) : 12 === n4 && (e4.hours = 0), delete e4.afternoon;
+ }
+ }(t4), t4;
+ };
+ }
+ return function(e3, t4, n2) {
+ n2.p.customParseFormat = true, e3 && e3.parseTwoDigitYear && (s = e3.parseTwoDigitYear);
+ var r2 = t4.prototype, i2 = r2.parse;
+ r2.parse = function(e4) {
+ var t5 = e4.date, r3 = e4.utc, s2 = e4.args;
+ this.$u = r3;
+ var a2 = s2[1];
+ if ("string" == typeof a2) {
+ var f2 = true === s2[2], h2 = true === s2[3], u2 = f2 || h2, d2 = s2[2];
+ h2 && (d2 = s2[2]), o = this.$locale(), !f2 && d2 && (o = n2.Ls[d2]), this.$d = function(e6, t6, n3) {
+ try {
+ if (["x", "X"].indexOf(t6) > -1)
+ return new Date(("X" === t6 ? 1e3 : 1) * e6);
+ var r4 = c(t6)(e6), i3 = r4.year, o2 = r4.month, s3 = r4.day, a3 = r4.hours, f3 = r4.minutes, h3 = r4.seconds, u3 = r4.milliseconds, d3 = r4.zone, l2 = new Date(), m2 = s3 || (i3 || o2 ? 1 : l2.getDate()), M2 = i3 || l2.getFullYear(), Y = 0;
+ i3 && !o2 || (Y = o2 > 0 ? o2 - 1 : l2.getMonth());
+ var p = a3 || 0, v = f3 || 0, D = h3 || 0, g = u3 || 0;
+ return d3 ? new Date(Date.UTC(M2, Y, m2, p, v, D, g + 60 * d3.offset * 1e3)) : n3 ? new Date(Date.UTC(M2, Y, m2, p, v, D, g)) : new Date(M2, Y, m2, p, v, D, g);
+ } catch (e7) {
+ return new Date("");
+ }
+ }(t5, a2, r3), this.init(), d2 && true !== d2 && (this.$L = this.locale(d2).$L), u2 && t5 != this.format(a2) && (this.$d = new Date("")), o = {};
+ } else if (a2 instanceof Array)
+ for (var l = a2.length, m = 1; m <= l; m += 1) {
+ s2[1] = a2[m - 1];
+ var M = n2.apply(this, s2);
+ if (M.isValid()) {
+ this.$d = M.$d, this.$L = M.$L, this.init();
+ break;
+ }
+ m === l && (this.$d = new Date(""));
+ }
+ else
+ i2.call(this, e4);
+ };
+ };
+ });
+})(customParseFormat);
+const dayjsCustomParseFormat = customParseFormatExports;
+var advancedFormatExports = {};
+var advancedFormat = {
+ get exports() {
+ return advancedFormatExports;
+ },
+ set exports(v) {
+ advancedFormatExports = v;
+ }
+};
+(function(module, exports) {
+ !function(e, t) {
+ module.exports = t();
+ }(commonjsGlobal, function() {
+ return function(e, t) {
+ var r = t.prototype, n = r.format;
+ r.format = function(e3) {
+ var t4 = this, r2 = this.$locale();
+ if (!this.isValid())
+ return n.bind(this)(e3);
+ var s = this.$utils(), a = (e3 || "YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, function(e4) {
+ switch (e4) {
+ case "Q":
+ return Math.ceil((t4.$M + 1) / 3);
+ case "Do":
+ return r2.ordinal(t4.$D);
+ case "gggg":
+ return t4.weekYear();
+ case "GGGG":
+ return t4.isoWeekYear();
+ case "wo":
+ return r2.ordinal(t4.week(), "W");
+ case "w":
+ case "ww":
+ return s.s(t4.week(), "w" === e4 ? 1 : 2, "0");
+ case "W":
+ case "WW":
+ return s.s(t4.isoWeek(), "W" === e4 ? 1 : 2, "0");
+ case "k":
+ case "kk":
+ return s.s(String(0 === t4.$H ? 24 : t4.$H), "k" === e4 ? 1 : 2, "0");
+ case "X":
+ return Math.floor(t4.$d.getTime() / 1e3);
+ case "x":
+ return t4.$d.getTime();
+ case "z":
+ return "[" + t4.offsetName() + "]";
+ case "zzz":
+ return "[" + t4.offsetName("long") + "]";
+ default:
+ return e4;
+ }
+ });
+ return n.bind(this)(a);
+ };
+ };
+ });
+})(advancedFormat);
+const dayjsAdvancedFormat = advancedFormatExports;
+dayjs.extend(dayjsIsoWeek);
+dayjs.extend(dayjsCustomParseFormat);
+dayjs.extend(dayjsAdvancedFormat);
+let dateFormat = "";
+let axisFormat = "";
+let tickInterval = void 0;
+let todayMarker = "";
+let includes = [];
+let excludes = [];
+let links = {};
+let sections = [];
+let tasks = [];
+let currentSection = "";
+let displayMode = "";
+const tags = ["active", "done", "crit", "milestone"];
+let funs = [];
+let inclusiveEndDates = false;
+let topAxis = false;
+let lastOrder = 0;
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const clear = function() {
+ sections = [];
+ tasks = [];
+ currentSection = "";
+ funs = [];
+ taskCnt = 0;
+ lastTask = void 0;
+ lastTaskID = void 0;
+ rawTasks = [];
+ dateFormat = "";
+ axisFormat = "";
+ displayMode = "";
+ tickInterval = void 0;
+ todayMarker = "";
+ includes = [];
+ excludes = [];
+ inclusiveEndDates = false;
+ topAxis = false;
+ lastOrder = 0;
+ links = {};
+ clear$1();
+};
+const setAxisFormat = function(txt) {
+ axisFormat = txt;
+};
+const getAxisFormat = function() {
+ return axisFormat;
+};
+const setTickInterval = function(txt) {
+ tickInterval = txt;
+};
+const getTickInterval = function() {
+ return tickInterval;
+};
+const setTodayMarker = function(txt) {
+ todayMarker = txt;
+};
+const getTodayMarker = function() {
+ return todayMarker;
+};
+const setDateFormat = function(txt) {
+ dateFormat = txt;
+};
+const enableInclusiveEndDates = function() {
+ inclusiveEndDates = true;
+};
+const endDatesAreInclusive = function() {
+ return inclusiveEndDates;
+};
+const enableTopAxis = function() {
+ topAxis = true;
+};
+const topAxisEnabled = function() {
+ return topAxis;
+};
+const setDisplayMode = function(txt) {
+ displayMode = txt;
+};
+const getDisplayMode = function() {
+ return displayMode;
+};
+const getDateFormat = function() {
+ return dateFormat;
+};
+const setIncludes = function(txt) {
+ includes = txt.toLowerCase().split(/[\s,]+/);
+};
+const getIncludes = function() {
+ return includes;
+};
+const setExcludes = function(txt) {
+ excludes = txt.toLowerCase().split(/[\s,]+/);
+};
+const getExcludes = function() {
+ return excludes;
+};
+const getLinks = function() {
+ return links;
+};
+const addSection = function(txt) {
+ currentSection = txt;
+ sections.push(txt);
+};
+const getSections = function() {
+ return sections;
+};
+const getTasks = function() {
+ let allItemsProcessed = compileTasks();
+ const maxDepth = 10;
+ let iterationCount = 0;
+ while (!allItemsProcessed && iterationCount < maxDepth) {
+ allItemsProcessed = compileTasks();
+ iterationCount++;
+ }
+ tasks = rawTasks;
+ return tasks;
+};
+const isInvalidDate = function(date2, dateFormat2, excludes2, includes2) {
+ if (includes2.includes(date2.format(dateFormat2.trim()))) {
+ return false;
+ }
+ if (date2.isoWeekday() >= 6 && excludes2.includes("weekends")) {
+ return true;
+ }
+ if (excludes2.includes(date2.format("dddd").toLowerCase())) {
+ return true;
+ }
+ return excludes2.includes(date2.format(dateFormat2.trim()));
+};
+const checkTaskDates = function(task, dateFormat2, excludes2, includes2) {
+ if (!excludes2.length || task.manualEndTime) {
+ return;
+ }
+ let startTime;
+ if (task.startTime instanceof Date) {
+ startTime = dayjs(task.startTime);
+ } else {
+ startTime = dayjs(task.startTime, dateFormat2, true);
+ }
+ startTime = startTime.add(1, "d");
+ let originalEndTime;
+ if (task.endTime instanceof Date) {
+ originalEndTime = dayjs(task.endTime);
+ } else {
+ originalEndTime = dayjs(task.endTime, dateFormat2, true);
+ }
+ const [fixedEndTime, renderEndTime] = fixTaskDates(
+ startTime,
+ originalEndTime,
+ dateFormat2,
+ excludes2,
+ includes2
+ );
+ task.endTime = fixedEndTime.toDate();
+ task.renderEndTime = renderEndTime;
+};
+const fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) {
+ let invalid = false;
+ let renderEndTime = null;
+ while (startTime <= endTime) {
+ if (!invalid) {
+ renderEndTime = endTime.toDate();
+ }
+ invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2);
+ if (invalid) {
+ endTime = endTime.add(1, "d");
+ }
+ startTime = startTime.add(1, "d");
+ }
+ return [endTime, renderEndTime];
+};
+const getStartDate = function(prevTime, dateFormat2, str) {
+ str = str.trim();
+ const re2 = /^after\s+([\d\w- ]+)/;
+ const afterStatement = re2.exec(str.trim());
+ if (afterStatement !== null) {
+ let latestEndingTask = null;
+ afterStatement[1].split(" ").forEach(function(id) {
+ let task = findTaskById(id);
+ if (task !== void 0) {
+ if (!latestEndingTask) {
+ latestEndingTask = task;
+ } else {
+ if (task.endTime > latestEndingTask.endTime) {
+ latestEndingTask = task;
+ }
+ }
+ }
+ });
+ if (!latestEndingTask) {
+ const dt = new Date();
+ dt.setHours(0, 0, 0, 0);
+ return dt;
+ } else {
+ return latestEndingTask.endTime;
+ }
+ }
+ let mDate = dayjs(str, dateFormat2.trim(), true);
+ if (mDate.isValid()) {
+ return mDate.toDate();
+ } else {
+ log.debug("Invalid date:" + str);
+ log.debug("With date format:" + dateFormat2.trim());
+ const d = new Date(str);
+ if (d === void 0 || isNaN(d.getTime())) {
+ throw new Error("Invalid date:" + str);
+ }
+ return d;
+ }
+};
+const parseDuration = function(str) {
+ const statement = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(str.trim());
+ if (statement !== null) {
+ return [Number.parseFloat(statement[1]), statement[2]];
+ }
+ return [NaN, "ms"];
+};
+const getEndDate = function(prevTime, dateFormat2, str, inclusive = false) {
+ str = str.trim();
+ let mDate = dayjs(str, dateFormat2.trim(), true);
+ if (mDate.isValid()) {
+ if (inclusive) {
+ mDate = mDate.add(1, "d");
+ }
+ return mDate.toDate();
+ }
+ let endTime = dayjs(prevTime);
+ const [durationValue, durationUnit] = parseDuration(str);
+ if (!Number.isNaN(durationValue)) {
+ const newEndTime = endTime.add(durationValue, durationUnit);
+ if (newEndTime.isValid()) {
+ endTime = newEndTime;
+ }
+ }
+ return endTime.toDate();
+};
+let taskCnt = 0;
+const parseId = function(idStr) {
+ if (idStr === void 0) {
+ taskCnt = taskCnt + 1;
+ return "task" + taskCnt;
+ }
+ return idStr;
+};
+const compileData = function(prevTask, dataStr) {
+ let ds;
+ if (dataStr.substr(0, 1) === ":") {
+ ds = dataStr.substr(1, dataStr.length);
+ } else {
+ ds = dataStr;
+ }
+ const data = ds.split(",");
+ const task = {};
+ getTaskTags(data, task, tags);
+ for (let i = 0; i < data.length; i++) {
+ data[i] = data[i].trim();
+ }
+ let endTimeData = "";
+ switch (data.length) {
+ case 1:
+ task.id = parseId();
+ task.startTime = prevTask.endTime;
+ endTimeData = data[0];
+ break;
+ case 2:
+ task.id = parseId();
+ task.startTime = getStartDate(void 0, dateFormat, data[0]);
+ endTimeData = data[1];
+ break;
+ case 3:
+ task.id = parseId(data[0]);
+ task.startTime = getStartDate(void 0, dateFormat, data[1]);
+ endTimeData = data[2];
+ break;
+ }
+ if (endTimeData) {
+ task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
+ task.manualEndTime = dayjs(endTimeData, "YYYY-MM-DD", true).isValid();
+ checkTaskDates(task, dateFormat, excludes, includes);
+ }
+ return task;
+};
+const parseData = function(prevTaskId, dataStr) {
+ let ds;
+ if (dataStr.substr(0, 1) === ":") {
+ ds = dataStr.substr(1, dataStr.length);
+ } else {
+ ds = dataStr;
+ }
+ const data = ds.split(",");
+ const task = {};
+ getTaskTags(data, task, tags);
+ for (let i = 0; i < data.length; i++) {
+ data[i] = data[i].trim();
+ }
+ switch (data.length) {
+ case 1:
+ task.id = parseId();
+ task.startTime = {
+ type: "prevTaskEnd",
+ id: prevTaskId
+ };
+ task.endTime = {
+ data: data[0]
+ };
+ break;
+ case 2:
+ task.id = parseId();
+ task.startTime = {
+ type: "getStartDate",
+ startData: data[0]
+ };
+ task.endTime = {
+ data: data[1]
+ };
+ break;
+ case 3:
+ task.id = parseId(data[0]);
+ task.startTime = {
+ type: "getStartDate",
+ startData: data[1]
+ };
+ task.endTime = {
+ data: data[2]
+ };
+ break;
+ }
+ return task;
+};
+let lastTask;
+let lastTaskID;
+let rawTasks = [];
+const taskDb = {};
+const addTask = function(descr, data) {
+ const rawTask = {
+ section: currentSection,
+ type: currentSection,
+ processed: false,
+ manualEndTime: false,
+ renderEndTime: null,
+ raw: { data },
+ task: descr,
+ classes: []
+ };
+ const taskInfo = parseData(lastTaskID, data);
+ rawTask.raw.startTime = taskInfo.startTime;
+ rawTask.raw.endTime = taskInfo.endTime;
+ rawTask.id = taskInfo.id;
+ rawTask.prevTaskId = lastTaskID;
+ rawTask.active = taskInfo.active;
+ rawTask.done = taskInfo.done;
+ rawTask.crit = taskInfo.crit;
+ rawTask.milestone = taskInfo.milestone;
+ rawTask.order = lastOrder;
+ lastOrder++;
+ const pos = rawTasks.push(rawTask);
+ lastTaskID = rawTask.id;
+ taskDb[rawTask.id] = pos - 1;
+};
+const findTaskById = function(id) {
+ const pos = taskDb[id];
+ return rawTasks[pos];
+};
+const addTaskOrg = function(descr, data) {
+ const newTask = {
+ section: currentSection,
+ type: currentSection,
+ description: descr,
+ task: descr,
+ classes: []
+ };
+ const taskInfo = compileData(lastTask, data);
+ newTask.startTime = taskInfo.startTime;
+ newTask.endTime = taskInfo.endTime;
+ newTask.id = taskInfo.id;
+ newTask.active = taskInfo.active;
+ newTask.done = taskInfo.done;
+ newTask.crit = taskInfo.crit;
+ newTask.milestone = taskInfo.milestone;
+ lastTask = newTask;
+ tasks.push(newTask);
+};
+const compileTasks = function() {
+ const compileTask = function(pos) {
+ const task = rawTasks[pos];
+ let startTime = "";
+ switch (rawTasks[pos].raw.startTime.type) {
+ case "prevTaskEnd": {
+ const prevTask = findTaskById(task.prevTaskId);
+ task.startTime = prevTask.endTime;
+ break;
+ }
+ case "getStartDate":
+ startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData);
+ if (startTime) {
+ rawTasks[pos].startTime = startTime;
+ }
+ break;
+ }
+ if (rawTasks[pos].startTime) {
+ rawTasks[pos].endTime = getEndDate(
+ rawTasks[pos].startTime,
+ dateFormat,
+ rawTasks[pos].raw.endTime.data,
+ inclusiveEndDates
+ );
+ if (rawTasks[pos].endTime) {
+ rawTasks[pos].processed = true;
+ rawTasks[pos].manualEndTime = dayjs(
+ rawTasks[pos].raw.endTime.data,
+ "YYYY-MM-DD",
+ true
+ ).isValid();
+ checkTaskDates(rawTasks[pos], dateFormat, excludes, includes);
+ }
+ }
+ return rawTasks[pos].processed;
+ };
+ let allProcessed = true;
+ for (const [i, rawTask] of rawTasks.entries()) {
+ compileTask(i);
+ allProcessed = allProcessed && rawTask.processed;
+ }
+ return allProcessed;
+};
+const setLink = function(ids, _linkStr) {
+ let linkStr = _linkStr;
+ if (getConfig().securityLevel !== "loose") {
+ linkStr = sanitizeUrl_1(_linkStr);
+ }
+ ids.split(",").forEach(function(id) {
+ let rawTask = findTaskById(id);
+ if (rawTask !== void 0) {
+ pushFun(id, () => {
+ window.open(linkStr, "_self");
+ });
+ links[id] = linkStr;
+ }
+ });
+ setClass(ids, "clickable");
+};
+const setClass = function(ids, className) {
+ ids.split(",").forEach(function(id) {
+ let rawTask = findTaskById(id);
+ if (rawTask !== void 0) {
+ rawTask.classes.push(className);
+ }
+ });
+};
+const setClickFun = function(id, functionName, functionArgs) {
+ if (getConfig().securityLevel !== "loose") {
+ return;
+ }
+ if (functionName === void 0) {
+ return;
+ }
+ let argList = [];
+ if (typeof functionArgs === "string") {
+ argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let i = 0; i < argList.length; i++) {
+ let item = argList[i].trim();
+ if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
+ item = item.substr(1, item.length - 2);
+ }
+ argList[i] = item;
+ }
+ }
+ if (argList.length === 0) {
+ argList.push(id);
+ }
+ let rawTask = findTaskById(id);
+ if (rawTask !== void 0) {
+ pushFun(id, () => {
+ utils.runFunc(functionName, ...argList);
+ });
+ }
+};
+const pushFun = function(id, callbackFunction) {
+ funs.push(
+ function() {
+ const elem = document.querySelector(`[id="${id}"]`);
+ if (elem !== null) {
+ elem.addEventListener("click", function() {
+ callbackFunction();
+ });
+ }
+ },
+ function() {
+ const elem = document.querySelector(`[id="${id}-text"]`);
+ if (elem !== null) {
+ elem.addEventListener("click", function() {
+ callbackFunction();
+ });
+ }
+ }
+ );
+};
+const setClickEvent = function(ids, functionName, functionArgs) {
+ ids.split(",").forEach(function(id) {
+ setClickFun(id, functionName, functionArgs);
+ });
+ setClass(ids, "clickable");
+};
+const bindFunctions = function(element) {
+ funs.forEach(function(fun) {
+ fun(element);
+ });
+};
+const ganttDb = {
+ parseDirective,
+ getConfig: () => getConfig().gantt,
+ clear,
+ setDateFormat,
+ getDateFormat,
+ enableInclusiveEndDates,
+ endDatesAreInclusive,
+ enableTopAxis,
+ topAxisEnabled,
+ setAxisFormat,
+ getAxisFormat,
+ setTickInterval,
+ getTickInterval,
+ setTodayMarker,
+ getTodayMarker,
+ setAccTitle,
+ getAccTitle,
+ setDiagramTitle,
+ getDiagramTitle,
+ setDisplayMode,
+ getDisplayMode,
+ setAccDescription,
+ getAccDescription,
+ addSection,
+ getSections,
+ getTasks,
+ addTask,
+ findTaskById,
+ addTaskOrg,
+ setIncludes,
+ getIncludes,
+ setExcludes,
+ getExcludes,
+ setClickEvent,
+ setLink,
+ getLinks,
+ bindFunctions,
+ parseDuration,
+ isInvalidDate
+};
+function getTaskTags(data, task, tags2) {
+ let matchFound = true;
+ while (matchFound) {
+ matchFound = false;
+ tags2.forEach(function(t) {
+ const pattern = "^\\s*" + t + "\\s*$";
+ const regex = new RegExp(pattern);
+ if (data[0].match(regex)) {
+ task[t] = true;
+ data.shift(1);
+ matchFound = true;
+ }
+ });
+ }
+}
+const setConf = function() {
+ log.debug("Something is calling, setConf, remove the call");
+};
+const getMaxIntersections = (tasks2, orderOffset) => {
+ let timeline = [...tasks2].map(() => -Infinity);
+ let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order);
+ let maxIntersections = 0;
+ for (const element of sorted) {
+ for (let j = 0; j < timeline.length; j++) {
+ if (element.startTime >= timeline[j]) {
+ timeline[j] = element.endTime;
+ element.order = j + orderOffset;
+ if (j > maxIntersections) {
+ maxIntersections = j;
+ }
+ break;
+ }
+ }
+ }
+ return maxIntersections;
+};
+let w;
+const draw = function(text, id, version, diagObj) {
+ const conf = getConfig().gantt;
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ const elem = doc.getElementById(id);
+ w = elem.parentElement.offsetWidth;
+ if (w === void 0) {
+ w = 1200;
+ }
+ if (conf.useWidth !== void 0) {
+ w = conf.useWidth;
+ }
+ const taskArray = diagObj.db.getTasks();
+ let categories = [];
+ for (const element of taskArray) {
+ categories.push(element.type);
+ }
+ categories = checkUnique(categories);
+ const categoryHeights = {};
+ let h = 2 * conf.topPadding;
+ if (diagObj.db.getDisplayMode() === "compact" || conf.displayMode === "compact") {
+ const categoryElements = {};
+ for (const element of taskArray) {
+ if (categoryElements[element.section] === void 0) {
+ categoryElements[element.section] = [element];
+ } else {
+ categoryElements[element.section].push(element);
+ }
+ }
+ let intersections = 0;
+ for (const category of Object.keys(categoryElements)) {
+ const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1;
+ intersections += categoryHeight;
+ h += categoryHeight * (conf.barHeight + conf.barGap);
+ categoryHeights[category] = categoryHeight;
+ }
+ } else {
+ h += taskArray.length * (conf.barHeight + conf.barGap);
+ for (const category of categories) {
+ categoryHeights[category] = taskArray.filter((task) => task.type === category).length;
+ }
+ }
+ elem.setAttribute("viewBox", "0 0 " + w + " " + h);
+ const svg = root.select(`[id="${id}"]`);
+ const timeScale = time().domain([
+ min(taskArray, function(d) {
+ return d.startTime;
+ }),
+ max(taskArray, function(d) {
+ return d.endTime;
+ })
+ ]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);
+ function taskCompare(a, b) {
+ const taskA = a.startTime;
+ const taskB = b.startTime;
+ let result = 0;
+ if (taskA > taskB) {
+ result = 1;
+ } else if (taskA < taskB) {
+ result = -1;
+ }
+ return result;
+ }
+ taskArray.sort(taskCompare);
+ makeGant(taskArray, w, h);
+ configureSvgSize(svg, h, w, conf.useMaxWidth);
+ svg.append("text").text(diagObj.db.getDiagramTitle()).attr("x", w / 2).attr("y", conf.titleTopMargin).attr("class", "titleText");
+ function makeGant(tasks2, pageWidth, pageHeight) {
+ const barHeight = conf.barHeight;
+ const gap = barHeight + conf.barGap;
+ const topPadding = conf.topPadding;
+ const leftPadding = conf.leftPadding;
+ const colorScale = linear().domain([0, categories.length]).range(["#00B9FA", "#F95002"]).interpolate(interpolateHcl);
+ drawExcludeDays(
+ gap,
+ topPadding,
+ leftPadding,
+ pageWidth,
+ pageHeight,
+ tasks2,
+ diagObj.db.getExcludes(),
+ diagObj.db.getIncludes()
+ );
+ makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
+ drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth);
+ vertLabels(gap, topPadding);
+ drawToday(leftPadding, topPadding, pageWidth, pageHeight);
+ }
+ function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) {
+ const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))];
+ const uniqueTasks = uniqueTaskOrderIds.map((id2) => theArray.find((item) => item.order === id2));
+ svg.append("g").selectAll("rect").data(uniqueTasks).enter().append("rect").attr("x", 0).attr("y", function(d, i) {
+ i = d.order;
+ return i * theGap + theTopPad - 2;
+ }).attr("width", function() {
+ return w2 - conf.rightPadding / 2;
+ }).attr("height", theGap).attr("class", function(d) {
+ for (const [i, category] of categories.entries()) {
+ if (d.type === category) {
+ return "section section" + i % conf.numberSectionStyles;
+ }
+ }
+ return "section section0";
+ });
+ const rectangles = svg.append("g").selectAll("rect").data(theArray).enter();
+ const links2 = diagObj.db.getLinks();
+ rectangles.append("rect").attr("id", function(d) {
+ return d.id;
+ }).attr("rx", 3).attr("ry", 3).attr("x", function(d) {
+ if (d.milestone) {
+ return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
+ }
+ return timeScale(d.startTime) + theSidePad;
+ }).attr("y", function(d, i) {
+ i = d.order;
+ return i * theGap + theTopPad;
+ }).attr("width", function(d) {
+ if (d.milestone) {
+ return theBarHeight;
+ }
+ return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);
+ }).attr("height", theBarHeight).attr("transform-origin", function(d, i) {
+ i = d.order;
+ return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + "px " + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + "px";
+ }).attr("class", function(d) {
+ const res = "task";
+ let classStr = "";
+ if (d.classes.length > 0) {
+ classStr = d.classes.join(" ");
+ }
+ let secNum = 0;
+ for (const [i, category] of categories.entries()) {
+ if (d.type === category) {
+ secNum = i % conf.numberSectionStyles;
+ }
+ }
+ let taskClass = "";
+ if (d.active) {
+ if (d.crit) {
+ taskClass += " activeCrit";
+ } else {
+ taskClass = " active";
+ }
+ } else if (d.done) {
+ if (d.crit) {
+ taskClass = " doneCrit";
+ } else {
+ taskClass = " done";
+ }
+ } else {
+ if (d.crit) {
+ taskClass += " crit";
+ }
+ }
+ if (taskClass.length === 0) {
+ taskClass = " task";
+ }
+ if (d.milestone) {
+ taskClass = " milestone " + taskClass;
+ }
+ taskClass += secNum;
+ taskClass += " " + classStr;
+ return res + taskClass;
+ });
+ rectangles.append("text").attr("id", function(d) {
+ return d.id + "-text";
+ }).text(function(d) {
+ return d.task;
+ }).attr("font-size", conf.fontSize).attr("x", function(d) {
+ let startX = timeScale(d.startTime);
+ let endX = timeScale(d.renderEndTime || d.endTime);
+ if (d.milestone) {
+ startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
+ }
+ if (d.milestone) {
+ endX = startX + theBarHeight;
+ }
+ const textWidth = this.getBBox().width;
+ if (textWidth > endX - startX) {
+ if (endX + textWidth + 1.5 * conf.leftPadding > w2) {
+ return startX + theSidePad - 5;
+ } else {
+ return endX + theSidePad + 5;
+ }
+ } else {
+ return (endX - startX) / 2 + startX + theSidePad;
+ }
+ }).attr("y", function(d, i) {
+ i = d.order;
+ return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;
+ }).attr("text-height", theBarHeight).attr("class", function(d) {
+ const startX = timeScale(d.startTime);
+ let endX = timeScale(d.endTime);
+ if (d.milestone) {
+ endX = startX + theBarHeight;
+ }
+ const textWidth = this.getBBox().width;
+ let classStr = "";
+ if (d.classes.length > 0) {
+ classStr = d.classes.join(" ");
+ }
+ let secNum = 0;
+ for (const [i, category] of categories.entries()) {
+ if (d.type === category) {
+ secNum = i % conf.numberSectionStyles;
+ }
+ }
+ let taskType = "";
+ if (d.active) {
+ if (d.crit) {
+ taskType = "activeCritText" + secNum;
+ } else {
+ taskType = "activeText" + secNum;
+ }
+ }
+ if (d.done) {
+ if (d.crit) {
+ taskType = taskType + " doneCritText" + secNum;
+ } else {
+ taskType = taskType + " doneText" + secNum;
+ }
+ } else {
+ if (d.crit) {
+ taskType = taskType + " critText" + secNum;
+ }
+ }
+ if (d.milestone) {
+ taskType += " milestoneText";
+ }
+ if (textWidth > endX - startX) {
+ if (endX + textWidth + 1.5 * conf.leftPadding > w2) {
+ return classStr + " taskTextOutsideLeft taskTextOutside" + secNum + " " + taskType;
+ } else {
+ return classStr + " taskTextOutsideRight taskTextOutside" + secNum + " " + taskType + " width-" + textWidth;
+ }
+ } else {
+ return classStr + " taskText taskText" + secNum + " " + taskType + " width-" + textWidth;
+ }
+ });
+ const securityLevel2 = getConfig().securityLevel;
+ if (securityLevel2 === "sandbox") {
+ let sandboxElement2;
+ sandboxElement2 = select("#i" + id);
+ const doc2 = sandboxElement2.nodes()[0].contentDocument;
+ rectangles.filter(function(d) {
+ return links2[d.id] !== void 0;
+ }).each(function(o) {
+ var taskRect = doc2.querySelector("#" + o.id);
+ var taskText = doc2.querySelector("#" + o.id + "-text");
+ const oldParent = taskRect.parentNode;
+ var Link = doc2.createElement("a");
+ Link.setAttribute("xlink:href", links2[o.id]);
+ Link.setAttribute("target", "_top");
+ oldParent.appendChild(Link);
+ Link.appendChild(taskRect);
+ Link.appendChild(taskText);
+ });
+ }
+ }
+ function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) {
+ const minTime = tasks2.reduce(
+ (min2, { startTime }) => min2 ? Math.min(min2, startTime) : startTime,
+ 0
+ );
+ const maxTime = tasks2.reduce((max2, { endTime }) => max2 ? Math.max(max2, endTime) : endTime, 0);
+ const dateFormat2 = diagObj.db.getDateFormat();
+ if (!minTime || !maxTime) {
+ return;
+ }
+ const excludeRanges = [];
+ let range = null;
+ let d = dayjs(minTime);
+ while (d.valueOf() <= maxTime) {
+ if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) {
+ if (!range) {
+ range = {
+ start: d,
+ end: d
+ };
+ } else {
+ range.end = d;
+ }
+ } else {
+ if (range) {
+ excludeRanges.push(range);
+ range = null;
+ }
+ }
+ d = d.add(1, "d");
+ }
+ const rectangles = svg.append("g").selectAll("rect").data(excludeRanges).enter();
+ rectangles.append("rect").attr("id", function(d2) {
+ return "exclude-" + d2.start.format("YYYY-MM-DD");
+ }).attr("x", function(d2) {
+ return timeScale(d2.start) + theSidePad;
+ }).attr("y", conf.gridLineStartPadding).attr("width", function(d2) {
+ const renderEnd = d2.end.add(1, "day");
+ return timeScale(renderEnd) - timeScale(d2.start);
+ }).attr("height", h2 - theTopPad - conf.gridLineStartPadding).attr("transform-origin", function(d2, i) {
+ return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + "px " + (i * theGap + 0.5 * h2).toString() + "px";
+ }).attr("class", "exclude-range");
+ }
+ function makeGrid(theSidePad, theTopPad, w2, h2) {
+ let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d"));
+ const reTickInterval = /^([1-9]\d*)(minute|hour|day|week|month)$/;
+ const resultTickInterval = reTickInterval.exec(
+ diagObj.db.getTickInterval() || conf.tickInterval
+ );
+ if (resultTickInterval !== null) {
+ const every = resultTickInterval[1];
+ const interval = resultTickInterval[2];
+ switch (interval) {
+ case "minute":
+ bottomXAxis.ticks(timeMinute.every(every));
+ break;
+ case "hour":
+ bottomXAxis.ticks(timeHour.every(every));
+ break;
+ case "day":
+ bottomXAxis.ticks(timeDay.every(every));
+ break;
+ case "week":
+ bottomXAxis.ticks(sunday.every(every));
+ break;
+ case "month":
+ bottomXAxis.ticks(timeMonth.every(every));
+ break;
+ }
+ }
+ svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + (h2 - 50) + ")").call(bottomXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em");
+ if (diagObj.db.topAxisEnabled() || conf.topAxis) {
+ let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d"));
+ if (resultTickInterval !== null) {
+ const every = resultTickInterval[1];
+ const interval = resultTickInterval[2];
+ switch (interval) {
+ case "minute":
+ topXAxis.ticks(timeMinute.every(every));
+ break;
+ case "hour":
+ topXAxis.ticks(timeHour.every(every));
+ break;
+ case "day":
+ topXAxis.ticks(timeDay.every(every));
+ break;
+ case "week":
+ topXAxis.ticks(sunday.every(every));
+ break;
+ case "month":
+ topXAxis.ticks(timeMonth.every(every));
+ break;
+ }
+ }
+ svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + theTopPad + ")").call(topXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10);
+ }
+ }
+ function vertLabels(theGap, theTopPad) {
+ let prevGap = 0;
+ const numOccurances = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]);
+ svg.append("g").selectAll("text").data(numOccurances).enter().append(function(d) {
+ const rows = d[0].split(common.lineBreakRegex);
+ const dy = -(rows.length - 1) / 2;
+ const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("dy", dy + "em");
+ for (const [j, row] of rows.entries()) {
+ const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttribute("alignment-baseline", "central");
+ tspan.setAttribute("x", "10");
+ if (j > 0) {
+ tspan.setAttribute("dy", "1em");
+ }
+ tspan.textContent = row;
+ svgLabel.appendChild(tspan);
+ }
+ return svgLabel;
+ }).attr("x", 10).attr("y", function(d, i) {
+ if (i > 0) {
+ for (let j = 0; j < i; j++) {
+ prevGap += numOccurances[i - 1][1];
+ return d[1] * theGap / 2 + prevGap * theGap + theTopPad;
+ }
+ } else {
+ return d[1] * theGap / 2 + theTopPad;
+ }
+ }).attr("font-size", conf.sectionFontSize).attr("class", function(d) {
+ for (const [i, category] of categories.entries()) {
+ if (d[0] === category) {
+ return "sectionTitle sectionTitle" + i % conf.numberSectionStyles;
+ }
+ }
+ return "sectionTitle";
+ });
+ }
+ function drawToday(theSidePad, theTopPad, w2, h2) {
+ const todayMarker2 = diagObj.db.getTodayMarker();
+ if (todayMarker2 === "off") {
+ return;
+ }
+ const todayG = svg.append("g").attr("class", "today");
+ const today = new Date();
+ const todayLine = todayG.append("line");
+ todayLine.attr("x1", timeScale(today) + theSidePad).attr("x2", timeScale(today) + theSidePad).attr("y1", conf.titleTopMargin).attr("y2", h2 - conf.titleTopMargin).attr("class", "today");
+ if (todayMarker2 !== "") {
+ todayLine.attr("style", todayMarker2.replace(/,/g, ";"));
+ }
+ }
+ function checkUnique(arr) {
+ const hash = {};
+ const result = [];
+ for (let i = 0, l = arr.length; i < l; ++i) {
+ if (!Object.prototype.hasOwnProperty.call(hash, arr[i])) {
+ hash[arr[i]] = true;
+ result.push(arr[i]);
+ }
+ }
+ return result;
+ }
+};
+const ganttRenderer = {
+ setConf,
+ draw
+};
+const getStyles = (options) => `
+ .mermaid-main-font {
+ font-family: "trebuchet ms", verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+ .exclude-range {
+ fill: ${options.excludeBkgColor};
+ }
+
+ .section {
+ stroke: none;
+ opacity: 0.2;
+ }
+
+ .section0 {
+ fill: ${options.sectionBkgColor};
+ }
+
+ .section2 {
+ fill: ${options.sectionBkgColor2};
+ }
+
+ .section1,
+ .section3 {
+ fill: ${options.altSectionBkgColor};
+ opacity: 0.2;
+ }
+
+ .sectionTitle0 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle1 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle2 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle3 {
+ fill: ${options.titleColor};
+ }
+
+ .sectionTitle {
+ text-anchor: start;
+ // font-size: ${options.ganttFontSize};
+ // text-height: 14px;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+
+ }
+
+
+ /* Grid and axis */
+
+ .grid .tick {
+ stroke: ${options.gridColor};
+ opacity: 0.8;
+ shape-rendering: crispEdges;
+ text {
+ font-family: ${options.fontFamily};
+ fill: ${options.textColor};
+ }
+ }
+
+ .grid path {
+ stroke-width: 0;
+ }
+
+
+ /* Today line */
+
+ .today {
+ fill: none;
+ stroke: ${options.todayLineColor};
+ stroke-width: 2px;
+ }
+
+
+ /* Task styling */
+
+ /* Default task */
+
+ .task {
+ stroke-width: 2;
+ }
+
+ .taskText {
+ text-anchor: middle;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+
+ // .taskText:not([font-size]) {
+ // font-size: ${options.ganttFontSize};
+ // }
+
+ .taskTextOutsideRight {
+ fill: ${options.taskTextDarkColor};
+ text-anchor: start;
+ // font-size: ${options.ganttFontSize};
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+
+ }
+
+ .taskTextOutsideLeft {
+ fill: ${options.taskTextDarkColor};
+ text-anchor: end;
+ // font-size: ${options.ganttFontSize};
+ }
+
+ /* Special case clickable */
+ .task.clickable {
+ cursor: pointer;
+ }
+ .taskText.clickable {
+ cursor: pointer;
+ fill: ${options.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ .taskTextOutsideLeft.clickable {
+ cursor: pointer;
+ fill: ${options.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ .taskTextOutsideRight.clickable {
+ cursor: pointer;
+ fill: ${options.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ /* Specific task settings for the sections*/
+
+ .taskText0,
+ .taskText1,
+ .taskText2,
+ .taskText3 {
+ fill: ${options.taskTextColor};
+ }
+
+ .task0,
+ .task1,
+ .task2,
+ .task3 {
+ fill: ${options.taskBkgColor};
+ stroke: ${options.taskBorderColor};
+ }
+
+ .taskTextOutside0,
+ .taskTextOutside2
+ {
+ fill: ${options.taskTextOutsideColor};
+ }
+
+ .taskTextOutside1,
+ .taskTextOutside3 {
+ fill: ${options.taskTextOutsideColor};
+ }
+
+
+ /* Active task */
+
+ .active0,
+ .active1,
+ .active2,
+ .active3 {
+ fill: ${options.activeTaskBkgColor};
+ stroke: ${options.activeTaskBorderColor};
+ }
+
+ .activeText0,
+ .activeText1,
+ .activeText2,
+ .activeText3 {
+ fill: ${options.taskTextDarkColor} !important;
+ }
+
+
+ /* Completed task */
+
+ .done0,
+ .done1,
+ .done2,
+ .done3 {
+ stroke: ${options.doneTaskBorderColor};
+ fill: ${options.doneTaskBkgColor};
+ stroke-width: 2;
+ }
+
+ .doneText0,
+ .doneText1,
+ .doneText2,
+ .doneText3 {
+ fill: ${options.taskTextDarkColor} !important;
+ }
+
+
+ /* Tasks on the critical line */
+
+ .crit0,
+ .crit1,
+ .crit2,
+ .crit3 {
+ stroke: ${options.critBorderColor};
+ fill: ${options.critBkgColor};
+ stroke-width: 2;
+ }
+
+ .activeCrit0,
+ .activeCrit1,
+ .activeCrit2,
+ .activeCrit3 {
+ stroke: ${options.critBorderColor};
+ fill: ${options.activeTaskBkgColor};
+ stroke-width: 2;
+ }
+
+ .doneCrit0,
+ .doneCrit1,
+ .doneCrit2,
+ .doneCrit3 {
+ stroke: ${options.critBorderColor};
+ fill: ${options.doneTaskBkgColor};
+ 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: ${options.taskTextDarkColor} !important;
+ }
+
+ .activeCritText0,
+ .activeCritText1,
+ .activeCritText2,
+ .activeCritText3 {
+ fill: ${options.taskTextDarkColor} !important;
+ }
+
+ .titleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor} ;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+`;
+const ganttStyles = getStyles;
+const diagram = {
+ parser: ganttParser,
+ db: ganttDb,
+ renderer: ganttRenderer,
+ styles: ganttStyles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=ganttDiagram-536170c3.js.map
diff --git a/scopegraphs-render-docs/doc/js/ganttDiagram-6b6599ba.js b/scopegraphs-render-docs/doc/js/ganttDiagram-6b6599ba.js
new file mode 100644
index 0000000..e7bd629
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/ganttDiagram-6b6599ba.js
@@ -0,0 +1,2976 @@
+import { s as rr, u as ir, v as ar } from "./utils-8ea37061.js";
+import { E as mn, F as dn, R as gn, G as yn, H as sr, I as or, J as he, K as Ze, L as je, M as cr, N as ee, O as ur, P as _e, g as vt, q as lr, v as fr, y as hr, z as mr, x as dr, w as gr, Q as nt, A as yr, l as me, h as Wt, f as pr } from "./commonDb-41f8b4c5.js";
+import { m as kr } from "./mermaidAPI-67f627de.js";
+import { i as pn } from "./init-f9637058.js";
+function Ht(t, e) {
+ return t == null || e == null ? NaN : t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN;
+}
+function vr(t, e) {
+ return t == null || e == null ? NaN : e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN;
+}
+function Ae(t) {
+ let e, r, n;
+ t.length !== 2 ? (e = Ht, r = (c, y) => Ht(t(c), y), n = (c, y) => t(c) - y) : (e = t === Ht || t === vr ? t : Tr, r = t, n = t);
+ function i(c, y, f = 0, x = c.length) {
+ if (f < x) {
+ if (e(y, y) !== 0)
+ return x;
+ do {
+ const p = f + x >>> 1;
+ r(c[p], y) < 0 ? f = p + 1 : x = p;
+ } while (f < x);
+ }
+ return f;
+ }
+ function a(c, y, f = 0, x = c.length) {
+ if (f < x) {
+ if (e(y, y) !== 0)
+ return x;
+ do {
+ const p = f + x >>> 1;
+ r(c[p], y) <= 0 ? f = p + 1 : x = p;
+ } while (f < x);
+ }
+ return f;
+ }
+ function s(c, y, f = 0, x = c.length) {
+ const p = i(c, y, f, x - 1);
+ return p > f && n(c[p - 1], y) > -n(c[p], y) ? p - 1 : p;
+ }
+ return { left: i, center: s, right: a };
+}
+function Tr() {
+ return 0;
+}
+function xr(t) {
+ return t === null ? NaN : +t;
+}
+const br = Ae(Ht), Mr = br.right;
+Ae(xr).center;
+const wr = Mr;
+var de = Math.sqrt(50), ge = Math.sqrt(10), ye = Math.sqrt(2);
+function Dr(t, e, r) {
+ var n, i = -1, a, s, c;
+ if (e = +e, t = +t, r = +r, t === e && r > 0)
+ return [t];
+ if ((n = e < t) && (a = t, t = e, e = a), (c = kn(t, e, r)) === 0 || !isFinite(c))
+ return [];
+ if (c > 0) {
+ let y = Math.round(t / c), f = Math.round(e / c);
+ for (y * c < t && ++y, f * c > e && --f, s = new Array(a = f - y + 1); ++i < a; )
+ s[i] = (y + i) * c;
+ } else {
+ c = -c;
+ let y = Math.round(t * c), f = Math.round(e * c);
+ for (y / c < t && ++y, f / c > e && --f, s = new Array(a = f - y + 1); ++i < a; )
+ s[i] = (y + i) / c;
+ }
+ return n && s.reverse(), s;
+}
+function kn(t, e, r) {
+ var n = (e - t) / Math.max(0, r), i = Math.floor(Math.log(n) / Math.LN10), a = n / Math.pow(10, i);
+ return i >= 0 ? (a >= de ? 10 : a >= ge ? 5 : a >= ye ? 2 : 1) * Math.pow(10, i) : -Math.pow(10, -i) / (a >= de ? 10 : a >= ge ? 5 : a >= ye ? 2 : 1);
+}
+function pe(t, e, r) {
+ var n = Math.abs(e - t) / Math.max(0, r), i = Math.pow(10, Math.floor(Math.log(n) / Math.LN10)), a = n / i;
+ return a >= de ? i *= 10 : a >= ge ? i *= 5 : a >= ye && (i *= 2), e < t ? -i : i;
+}
+function Cr(t, e) {
+ let r;
+ if (e === void 0)
+ for (const n of t)
+ n != null && (r < n || r === void 0 && n >= n) && (r = n);
+ else {
+ let n = -1;
+ for (let i of t)
+ (i = e(i, ++n, t)) != null && (r < i || r === void 0 && i >= i) && (r = i);
+ }
+ return r;
+}
+function Sr(t, e) {
+ let r;
+ if (e === void 0)
+ for (const n of t)
+ n != null && (r > n || r === void 0 && n >= n) && (r = n);
+ else {
+ let n = -1;
+ for (let i of t)
+ (i = e(i, ++n, t)) != null && (r > i || r === void 0 && i >= i) && (r = i);
+ }
+ return r;
+}
+function _r(t) {
+ return t;
+}
+var Pt = 1, ne = 2, ke = 3, zt = 4, qe = 1e-6;
+function Ar(t) {
+ return "translate(" + t + ",0)";
+}
+function Fr(t) {
+ return "translate(0," + t + ")";
+}
+function Yr(t) {
+ return (e) => +t(e);
+}
+function Ur(t, e) {
+ return e = Math.max(0, t.bandwidth() - e * 2) / 2, t.round() && (e = Math.round(e)), (r) => +t(r) + e;
+}
+function Lr() {
+ return !this.__axis;
+}
+function vn(t, e) {
+ var r = [], n = null, i = null, a = 6, s = 6, c = 3, y = typeof window < "u" && window.devicePixelRatio > 1 ? 0 : 0.5, f = t === Pt || t === zt ? -1 : 1, x = t === zt || t === ne ? "x" : "y", p = t === Pt || t === ke ? Ar : Fr;
+ function v(D) {
+ var z = n ?? (e.ticks ? e.ticks.apply(e, r) : e.domain()), T = i ?? (e.tickFormat ? e.tickFormat.apply(e, r) : _r), _ = Math.max(a, 0) + c, I = e.range(), W = +I[0] + y, O = +I[I.length - 1] + y, V = (e.bandwidth ? Ur : Yr)(e.copy(), y), P = D.selection ? D.selection() : D, C = P.selectAll(".domain").data([null]), U = P.selectAll(".tick").data(z, e).order(), w = U.exit(), h = U.enter().append("g").attr("class", "tick"), g = U.select("line"), u = U.select("text");
+ C = C.merge(C.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor")), U = U.merge(h), g = g.merge(h.append("line").attr("stroke", "currentColor").attr(x + "2", f * a)), u = u.merge(h.append("text").attr("fill", "currentColor").attr(x, f * _).attr("dy", t === Pt ? "0em" : t === ke ? "0.71em" : "0.32em")), D !== P && (C = C.transition(D), U = U.transition(D), g = g.transition(D), u = u.transition(D), w = w.transition(D).attr("opacity", qe).attr("transform", function(l) {
+ return isFinite(l = V(l)) ? p(l + y) : this.getAttribute("transform");
+ }), h.attr("opacity", qe).attr("transform", function(l) {
+ var b = this.parentNode.__axis;
+ return p((b && isFinite(b = b(l)) ? b : V(l)) + y);
+ })), w.remove(), C.attr("d", t === zt || t === ne ? s ? "M" + f * s + "," + W + "H" + y + "V" + O + "H" + f * s : "M" + y + "," + W + "V" + O : s ? "M" + W + "," + f * s + "V" + y + "H" + O + "V" + f * s : "M" + W + "," + y + "H" + O), U.attr("opacity", 1).attr("transform", function(l) {
+ return p(V(l) + y);
+ }), g.attr(x + "2", f * a), u.attr(x, f * _).text(T), P.filter(Lr).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", t === ne ? "start" : t === zt ? "end" : "middle"), P.each(function() {
+ this.__axis = V;
+ });
+ }
+ return v.scale = function(D) {
+ return arguments.length ? (e = D, v) : e;
+ }, v.ticks = function() {
+ return r = Array.from(arguments), v;
+ }, v.tickArguments = function(D) {
+ return arguments.length ? (r = D == null ? [] : Array.from(D), v) : r.slice();
+ }, v.tickValues = function(D) {
+ return arguments.length ? (n = D == null ? null : Array.from(D), v) : n && n.slice();
+ }, v.tickFormat = function(D) {
+ return arguments.length ? (i = D, v) : i;
+ }, v.tickSize = function(D) {
+ return arguments.length ? (a = s = +D, v) : a;
+ }, v.tickSizeInner = function(D) {
+ return arguments.length ? (a = +D, v) : a;
+ }, v.tickSizeOuter = function(D) {
+ return arguments.length ? (s = +D, v) : s;
+ }, v.tickPadding = function(D) {
+ return arguments.length ? (c = +D, v) : c;
+ }, v.offset = function(D) {
+ return arguments.length ? (y = +D, v) : y;
+ }, v;
+}
+function Er(t) {
+ return vn(Pt, t);
+}
+function Ir(t) {
+ return vn(ke, t);
+}
+const Nr = Math.PI / 180, Wr = 180 / Math.PI, Bt = 18, Tn = 0.96422, xn = 1, bn = 0.82521, Mn = 4 / 29, Tt = 6 / 29, wn = 3 * Tt * Tt, zr = Tt * Tt * Tt;
+function Dn(t) {
+ if (t instanceof ot)
+ return new ot(t.l, t.a, t.b, t.opacity);
+ if (t instanceof ut)
+ return Cn(t);
+ t instanceof gn || (t = sr(t));
+ var e = se(t.r), r = se(t.g), n = se(t.b), i = re((0.2225045 * e + 0.7168786 * r + 0.0606169 * n) / xn), a, s;
+ return e === r && r === n ? a = s = i : (a = re((0.4360747 * e + 0.3850649 * r + 0.1430804 * n) / Tn), s = re((0.0139322 * e + 0.0971045 * r + 0.7141733 * n) / bn)), new ot(116 * i - 16, 500 * (a - i), 200 * (i - s), t.opacity);
+}
+function Or(t, e, r, n) {
+ return arguments.length === 1 ? Dn(t) : new ot(t, e, r, n ?? 1);
+}
+function ot(t, e, r, n) {
+ this.l = +t, this.a = +e, this.b = +r, this.opacity = +n;
+}
+mn(ot, Or, dn(yn, {
+ brighter(t) {
+ return new ot(this.l + Bt * (t ?? 1), this.a, this.b, this.opacity);
+ },
+ darker(t) {
+ return new ot(this.l - Bt * (t ?? 1), this.a, this.b, this.opacity);
+ },
+ rgb() {
+ var t = (this.l + 16) / 116, e = isNaN(this.a) ? t : t + this.a / 500, r = isNaN(this.b) ? t : t - this.b / 200;
+ return e = Tn * ie(e), t = xn * ie(t), r = bn * ie(r), new gn(
+ ae(3.1338561 * e - 1.6168667 * t - 0.4906146 * r),
+ ae(-0.9787684 * e + 1.9161415 * t + 0.033454 * r),
+ ae(0.0719453 * e - 0.2289914 * t + 1.4052427 * r),
+ this.opacity
+ );
+ }
+}));
+function re(t) {
+ return t > zr ? Math.pow(t, 1 / 3) : t / wn + Mn;
+}
+function ie(t) {
+ return t > Tt ? t * t * t : wn * (t - Mn);
+}
+function ae(t) {
+ return 255 * (t <= 31308e-7 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - 0.055);
+}
+function se(t) {
+ return (t /= 255) <= 0.04045 ? t / 12.92 : Math.pow((t + 0.055) / 1.055, 2.4);
+}
+function Hr(t) {
+ if (t instanceof ut)
+ return new ut(t.h, t.c, t.l, t.opacity);
+ if (t instanceof ot || (t = Dn(t)), t.a === 0 && t.b === 0)
+ return new ut(NaN, 0 < t.l && t.l < 100 ? 0 : NaN, t.l, t.opacity);
+ var e = Math.atan2(t.b, t.a) * Wr;
+ return new ut(e < 0 ? e + 360 : e, Math.sqrt(t.a * t.a + t.b * t.b), t.l, t.opacity);
+}
+function ve(t, e, r, n) {
+ return arguments.length === 1 ? Hr(t) : new ut(t, e, r, n ?? 1);
+}
+function ut(t, e, r, n) {
+ this.h = +t, this.c = +e, this.l = +r, this.opacity = +n;
+}
+function Cn(t) {
+ if (isNaN(t.h))
+ return new ot(t.l, 0, 0, t.opacity);
+ var e = t.h * Nr;
+ return new ot(t.l, Math.cos(e) * t.c, Math.sin(e) * t.c, t.opacity);
+}
+mn(ut, ve, dn(yn, {
+ brighter(t) {
+ return new ut(this.h, this.c, this.l + Bt * (t ?? 1), this.opacity);
+ },
+ darker(t) {
+ return new ut(this.h, this.c, this.l - Bt * (t ?? 1), this.opacity);
+ },
+ rgb() {
+ return Cn(this).rgb();
+ }
+}));
+function Pr(t, e) {
+ e || (e = []);
+ var r = t ? Math.min(e.length, t.length) : 0, n = e.slice(), i;
+ return function(a) {
+ for (i = 0; i < r; ++i)
+ n[i] = t[i] * (1 - a) + e[i] * a;
+ return n;
+ };
+}
+function Vr(t) {
+ return ArrayBuffer.isView(t) && !(t instanceof DataView);
+}
+function Rr(t, e) {
+ var r = e ? e.length : 0, n = t ? Math.min(r, t.length) : 0, i = new Array(n), a = new Array(r), s;
+ for (s = 0; s < n; ++s)
+ i[s] = Fe(t[s], e[s]);
+ for (; s < r; ++s)
+ a[s] = e[s];
+ return function(c) {
+ for (s = 0; s < n; ++s)
+ a[s] = i[s](c);
+ return a;
+ };
+}
+function Br(t, e) {
+ var r = new Date();
+ return t = +t, e = +e, function(n) {
+ return r.setTime(t * (1 - n) + e * n), r;
+ };
+}
+function Zr(t, e) {
+ var r = {}, n = {}, i;
+ (t === null || typeof t != "object") && (t = {}), (e === null || typeof e != "object") && (e = {});
+ for (i in e)
+ i in t ? r[i] = Fe(t[i], e[i]) : n[i] = e[i];
+ return function(a) {
+ for (i in r)
+ n[i] = r[i](a);
+ return n;
+ };
+}
+function Fe(t, e) {
+ var r = typeof e, n;
+ return e == null || r === "boolean" ? or(e) : (r === "number" ? he : r === "string" ? (n = Ze(e)) ? (e = n, je) : cr : e instanceof Ze ? je : e instanceof Date ? Br : Vr(e) ? Pr : Array.isArray(e) ? Rr : typeof e.valueOf != "function" && typeof e.toString != "function" || isNaN(e) ? Zr : he)(t, e);
+}
+function jr(t, e) {
+ return t = +t, e = +e, function(r) {
+ return Math.round(t * (1 - r) + e * r);
+ };
+}
+function qr(t) {
+ return function(e, r) {
+ var n = t((e = ve(e)).h, (r = ve(r)).h), i = ee(e.c, r.c), a = ee(e.l, r.l), s = ee(e.opacity, r.opacity);
+ return function(c) {
+ return e.h = n(c), e.c = i(c), e.l = a(c), e.opacity = s(c), e + "";
+ };
+ };
+}
+const Xr = qr(ur);
+function Gr(t) {
+ return Math.abs(t = Math.round(t)) >= 1e21 ? t.toLocaleString("en").replace(/,/g, "") : t.toString(10);
+}
+function Zt(t, e) {
+ if ((r = (t = e ? t.toExponential(e - 1) : t.toExponential()).indexOf("e")) < 0)
+ return null;
+ var r, n = t.slice(0, r);
+ return [
+ n.length > 1 ? n[0] + n.slice(2) : n,
+ +t.slice(r + 1)
+ ];
+}
+function bt(t) {
+ return t = Zt(Math.abs(t)), t ? t[1] : NaN;
+}
+function $r(t, e) {
+ return function(r, n) {
+ for (var i = r.length, a = [], s = 0, c = t[0], y = 0; i > 0 && c > 0 && (y + c + 1 > n && (c = Math.max(1, n - y)), a.push(r.substring(i -= c, i + c)), !((y += c + 1) > n)); )
+ c = t[s = (s + 1) % t.length];
+ return a.reverse().join(e);
+ };
+}
+function Qr(t) {
+ return function(e) {
+ return e.replace(/[0-9]/g, function(r) {
+ return t[+r];
+ });
+ };
+}
+var Jr = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
+function jt(t) {
+ if (!(e = Jr.exec(t)))
+ throw new Error("invalid format: " + t);
+ var e;
+ return new Ye({
+ 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]
+ });
+}
+jt.prototype = Ye.prototype;
+function Ye(t) {
+ this.fill = t.fill === void 0 ? " " : t.fill + "", this.align = t.align === void 0 ? ">" : t.align + "", this.sign = t.sign === void 0 ? "-" : t.sign + "", this.symbol = t.symbol === void 0 ? "" : t.symbol + "", this.zero = !!t.zero, this.width = t.width === void 0 ? void 0 : +t.width, this.comma = !!t.comma, this.precision = t.precision === void 0 ? void 0 : +t.precision, this.trim = !!t.trim, this.type = t.type === void 0 ? "" : t.type + "";
+}
+Ye.prototype.toString = function() {
+ return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type;
+};
+function Kr(t) {
+ t:
+ for (var e = t.length, r = 1, n = -1, i; r < e; ++r)
+ switch (t[r]) {
+ case ".":
+ n = i = r;
+ break;
+ case "0":
+ n === 0 && (n = r), i = r;
+ break;
+ default:
+ if (!+t[r])
+ break t;
+ n > 0 && (n = 0);
+ break;
+ }
+ return n > 0 ? t.slice(0, n) + t.slice(i + 1) : t;
+}
+var Sn;
+function ti(t, e) {
+ var r = Zt(t, e);
+ if (!r)
+ return t + "";
+ var n = r[0], i = r[1], a = i - (Sn = Math.max(-8, Math.min(8, Math.floor(i / 3))) * 3) + 1, s = n.length;
+ return a === s ? n : a > s ? n + new Array(a - s + 1).join("0") : a > 0 ? n.slice(0, a) + "." + n.slice(a) : "0." + new Array(1 - a).join("0") + Zt(t, Math.max(0, e + a - 1))[0];
+}
+function Xe(t, e) {
+ var r = Zt(t, e);
+ if (!r)
+ return t + "";
+ var n = r[0], i = r[1];
+ return i < 0 ? "0." + new Array(-i).join("0") + n : n.length > i + 1 ? n.slice(0, i + 1) + "." + n.slice(i + 1) : n + new Array(i - n.length + 2).join("0");
+}
+const Ge = {
+ "%": (t, e) => (t * 100).toFixed(e),
+ b: (t) => Math.round(t).toString(2),
+ c: (t) => t + "",
+ d: Gr,
+ e: (t, e) => t.toExponential(e),
+ f: (t, e) => t.toFixed(e),
+ g: (t, e) => t.toPrecision(e),
+ o: (t) => Math.round(t).toString(8),
+ p: (t, e) => Xe(t * 100, e),
+ r: Xe,
+ s: ti,
+ X: (t) => Math.round(t).toString(16).toUpperCase(),
+ x: (t) => Math.round(t).toString(16)
+};
+function $e(t) {
+ return t;
+}
+var Qe = Array.prototype.map, Je = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
+function ei(t) {
+ var e = t.grouping === void 0 || t.thousands === void 0 ? $e : $r(Qe.call(t.grouping, Number), t.thousands + ""), r = t.currency === void 0 ? "" : t.currency[0] + "", n = t.currency === void 0 ? "" : t.currency[1] + "", i = t.decimal === void 0 ? "." : t.decimal + "", a = t.numerals === void 0 ? $e : Qr(Qe.call(t.numerals, String)), s = t.percent === void 0 ? "%" : t.percent + "", c = t.minus === void 0 ? "−" : t.minus + "", y = t.nan === void 0 ? "NaN" : t.nan + "";
+ function f(p) {
+ p = jt(p);
+ var v = p.fill, D = p.align, z = p.sign, T = p.symbol, _ = p.zero, I = p.width, W = p.comma, O = p.precision, V = p.trim, P = p.type;
+ P === "n" ? (W = !0, P = "g") : Ge[P] || (O === void 0 && (O = 12), V = !0, P = "g"), (_ || v === "0" && D === "=") && (_ = !0, v = "0", D = "=");
+ var C = T === "$" ? r : T === "#" && /[boxX]/.test(P) ? "0" + P.toLowerCase() : "", U = T === "$" ? n : /[%p]/.test(P) ? s : "", w = Ge[P], h = /[defgprs%]/.test(P);
+ O = O === void 0 ? 6 : /[gprs]/.test(P) ? Math.max(1, Math.min(21, O)) : Math.max(0, Math.min(20, O));
+ function g(u) {
+ var l = C, b = U, o, Y, m;
+ if (P === "c")
+ b = w(u) + b, u = "";
+ else {
+ u = +u;
+ var Z = u < 0 || 1 / u < 0;
+ if (u = isNaN(u) ? y : w(Math.abs(u), O), V && (u = Kr(u)), Z && +u == 0 && z !== "+" && (Z = !1), l = (Z ? z === "(" ? z : c : z === "-" || z === "(" ? "" : z) + l, b = (P === "s" ? Je[8 + Sn / 3] : "") + b + (Z && z === "(" ? ")" : ""), h) {
+ for (o = -1, Y = u.length; ++o < Y; )
+ if (m = u.charCodeAt(o), 48 > m || m > 57) {
+ b = (m === 46 ? i + u.slice(o + 1) : u.slice(o)) + b, u = u.slice(0, o);
+ break;
+ }
+ }
+ }
+ W && !_ && (u = e(u, 1 / 0));
+ var j = l.length + u.length + b.length, B = j < I ? new Array(I - j + 1).join(v) : "";
+ switch (W && _ && (u = e(B + u, B.length ? I - b.length : 1 / 0), B = ""), D) {
+ case "<":
+ u = l + u + b + B;
+ break;
+ case "=":
+ u = l + B + u + b;
+ break;
+ case "^":
+ u = B.slice(0, j = B.length >> 1) + l + u + b + B.slice(j);
+ break;
+ default:
+ u = B + l + u + b;
+ break;
+ }
+ return a(u);
+ }
+ return g.toString = function() {
+ return p + "";
+ }, g;
+ }
+ function x(p, v) {
+ var D = f((p = jt(p), p.type = "f", p)), z = Math.max(-8, Math.min(8, Math.floor(bt(v) / 3))) * 3, T = Math.pow(10, -z), _ = Je[8 + z / 3];
+ return function(I) {
+ return D(T * I) + _;
+ };
+ }
+ return {
+ format: f,
+ formatPrefix: x
+ };
+}
+var Ot, _n, An;
+ni({
+ thousands: ",",
+ grouping: [3],
+ currency: ["$", ""]
+});
+function ni(t) {
+ return Ot = ei(t), _n = Ot.format, An = Ot.formatPrefix, Ot;
+}
+function ri(t) {
+ return Math.max(0, -bt(Math.abs(t)));
+}
+function ii(t, e) {
+ return Math.max(0, Math.max(-8, Math.min(8, Math.floor(bt(e) / 3))) * 3 - bt(Math.abs(t)));
+}
+function ai(t, e) {
+ return t = Math.abs(t), e = Math.abs(e) - t, Math.max(0, bt(e) - bt(t)) + 1;
+}
+function si(t) {
+ return function() {
+ return t;
+ };
+}
+function oi(t) {
+ return +t;
+}
+var Ke = [0, 1];
+function kt(t) {
+ return t;
+}
+function Te(t, e) {
+ return (e -= t = +t) ? function(r) {
+ return (r - t) / e;
+ } : si(isNaN(e) ? NaN : 0.5);
+}
+function ci(t, e) {
+ var r;
+ return t > e && (r = t, t = e, e = r), function(n) {
+ return Math.max(t, Math.min(e, n));
+ };
+}
+function ui(t, e, r) {
+ var n = t[0], i = t[1], a = e[0], s = e[1];
+ return i < n ? (n = Te(i, n), a = r(s, a)) : (n = Te(n, i), a = r(a, s)), function(c) {
+ return a(n(c));
+ };
+}
+function li(t, e, r) {
+ var n = Math.min(t.length, e.length) - 1, i = new Array(n), a = new Array(n), s = -1;
+ for (t[n] < t[0] && (t = t.slice().reverse(), e = e.slice().reverse()); ++s < n; )
+ i[s] = Te(t[s], t[s + 1]), a[s] = r(e[s], e[s + 1]);
+ return function(c) {
+ var y = wr(t, c, 1, n) - 1;
+ return a[y](i[y](c));
+ };
+}
+function Fn(t, e) {
+ return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown());
+}
+function fi() {
+ var t = Ke, e = Ke, r = Fe, n, i, a, s = kt, c, y, f;
+ function x() {
+ var v = Math.min(t.length, e.length);
+ return s !== kt && (s = ci(t[0], t[v - 1])), c = v > 2 ? li : ui, y = f = null, p;
+ }
+ function p(v) {
+ return v == null || isNaN(v = +v) ? a : (y || (y = c(t.map(n), e, r)))(n(s(v)));
+ }
+ return p.invert = function(v) {
+ return s(i((f || (f = c(e, t.map(n), he)))(v)));
+ }, p.domain = function(v) {
+ return arguments.length ? (t = Array.from(v, oi), x()) : t.slice();
+ }, p.range = function(v) {
+ return arguments.length ? (e = Array.from(v), x()) : e.slice();
+ }, p.rangeRound = function(v) {
+ return e = Array.from(v), r = jr, x();
+ }, p.clamp = function(v) {
+ return arguments.length ? (s = v ? !0 : kt, x()) : s !== kt;
+ }, p.interpolate = function(v) {
+ return arguments.length ? (r = v, x()) : r;
+ }, p.unknown = function(v) {
+ return arguments.length ? (a = v, p) : a;
+ }, function(v, D) {
+ return n = v, i = D, x();
+ };
+}
+function Yn() {
+ return fi()(kt, kt);
+}
+function hi(t, e, r, n) {
+ var i = pe(t, e, r), a;
+ switch (n = jt(n ?? ",f"), n.type) {
+ case "s": {
+ var s = Math.max(Math.abs(t), Math.abs(e));
+ return n.precision == null && !isNaN(a = ii(i, s)) && (n.precision = a), An(n, s);
+ }
+ case "":
+ case "e":
+ case "g":
+ case "p":
+ case "r": {
+ n.precision == null && !isNaN(a = ai(i, Math.max(Math.abs(t), Math.abs(e)))) && (n.precision = a - (n.type === "e"));
+ break;
+ }
+ case "f":
+ case "%": {
+ n.precision == null && !isNaN(a = ri(i)) && (n.precision = a - (n.type === "%") * 2);
+ break;
+ }
+ }
+ return _n(n);
+}
+function mi(t) {
+ var e = t.domain;
+ return t.ticks = function(r) {
+ var n = e();
+ return Dr(n[0], n[n.length - 1], r ?? 10);
+ }, t.tickFormat = function(r, n) {
+ var i = e();
+ return hi(i[0], i[i.length - 1], r ?? 10, n);
+ }, t.nice = function(r) {
+ r == null && (r = 10);
+ var n = e(), i = 0, a = n.length - 1, s = n[i], c = n[a], y, f, x = 10;
+ for (c < s && (f = s, s = c, c = f, f = i, i = a, a = f); x-- > 0; ) {
+ if (f = kn(s, c, r), f === y)
+ return n[i] = s, n[a] = c, e(n);
+ if (f > 0)
+ s = Math.floor(s / f) * f, c = Math.ceil(c / f) * f;
+ else if (f < 0)
+ s = Math.ceil(s * f) / f, c = Math.floor(c * f) / f;
+ else
+ break;
+ y = f;
+ }
+ return t;
+ }, t;
+}
+function Un() {
+ var t = Yn();
+ return t.copy = function() {
+ return Fn(t, Un());
+ }, pn.apply(t, arguments), mi(t);
+}
+function di(t, e) {
+ t = t.slice();
+ var r = 0, n = t.length - 1, i = t[r], a = t[n], s;
+ return a < i && (s = r, r = n, n = s, s = i, i = a, a = s), t[r] = e.floor(i), t[n] = e.ceil(a), t;
+}
+var oe = new Date(), ce = new Date();
+function tt(t, e, r, n) {
+ function i(a) {
+ return t(a = arguments.length === 0 ? new Date() : new Date(+a)), a;
+ }
+ return i.floor = function(a) {
+ return t(a = new Date(+a)), a;
+ }, i.ceil = function(a) {
+ return t(a = new Date(a - 1)), e(a, 1), t(a), a;
+ }, i.round = function(a) {
+ var s = i(a), c = i.ceil(a);
+ return a - s < c - a ? s : c;
+ }, i.offset = function(a, s) {
+ return e(a = new Date(+a), s == null ? 1 : Math.floor(s)), a;
+ }, i.range = function(a, s, c) {
+ var y = [], f;
+ if (a = i.ceil(a), c = c == null ? 1 : Math.floor(c), !(a < s) || !(c > 0))
+ return y;
+ do
+ y.push(f = new Date(+a)), e(a, c), t(a);
+ while (f < a && a < s);
+ return y;
+ }, i.filter = function(a) {
+ return tt(function(s) {
+ if (s >= s)
+ for (; t(s), !a(s); )
+ s.setTime(s - 1);
+ }, function(s, c) {
+ if (s >= s)
+ if (c < 0)
+ for (; ++c <= 0; )
+ for (; e(s, -1), !a(s); )
+ ;
+ else
+ for (; --c >= 0; )
+ for (; e(s, 1), !a(s); )
+ ;
+ });
+ }, r && (i.count = function(a, s) {
+ return oe.setTime(+a), ce.setTime(+s), t(oe), t(ce), Math.floor(r(oe, ce));
+ }, i.every = function(a) {
+ return a = Math.floor(a), !isFinite(a) || !(a > 0) ? null : a > 1 ? i.filter(n ? function(s) {
+ return n(s) % a === 0;
+ } : function(s) {
+ return i.count(0, s) % a === 0;
+ }) : i;
+ }), i;
+}
+var qt = tt(function() {
+}, function(t, e) {
+ t.setTime(+t + e);
+}, function(t, e) {
+ return e - t;
+});
+qt.every = function(t) {
+ return t = Math.floor(t), !isFinite(t) || !(t > 0) ? null : t > 1 ? tt(function(e) {
+ e.setTime(Math.floor(e / t) * t);
+ }, function(e, r) {
+ e.setTime(+e + r * t);
+ }, function(e, r) {
+ return (r - e) / t;
+ }) : qt;
+};
+const gi = qt;
+qt.range;
+const lt = 1e3, it = lt * 60, ft = it * 60, mt = ft * 24, Ue = mt * 7, tn = mt * 30, ue = mt * 365;
+var Ln = tt(function(t) {
+ t.setTime(t - t.getMilliseconds());
+}, function(t, e) {
+ t.setTime(+t + e * lt);
+}, function(t, e) {
+ return (e - t) / lt;
+}, function(t) {
+ return t.getUTCSeconds();
+});
+const Lt = Ln;
+Ln.range;
+var En = tt(function(t) {
+ t.setTime(t - t.getMilliseconds() - t.getSeconds() * lt);
+}, function(t, e) {
+ t.setTime(+t + e * it);
+}, function(t, e) {
+ return (e - t) / it;
+}, function(t) {
+ return t.getMinutes();
+});
+const Xt = En;
+En.range;
+var In = tt(function(t) {
+ t.setTime(t - t.getMilliseconds() - t.getSeconds() * lt - t.getMinutes() * it);
+}, function(t, e) {
+ t.setTime(+t + e * ft);
+}, function(t, e) {
+ return (e - t) / ft;
+}, function(t) {
+ return t.getHours();
+});
+const Gt = In;
+In.range;
+var Nn = tt(
+ (t) => t.setHours(0, 0, 0, 0),
+ (t, e) => t.setDate(t.getDate() + e),
+ (t, e) => (e - t - (e.getTimezoneOffset() - t.getTimezoneOffset()) * it) / mt,
+ (t) => t.getDate() - 1
+);
+const Mt = Nn;
+Nn.range;
+function gt(t) {
+ return tt(function(e) {
+ e.setDate(e.getDate() - (e.getDay() + 7 - t) % 7), e.setHours(0, 0, 0, 0);
+ }, function(e, r) {
+ e.setDate(e.getDate() + r * 7);
+ }, function(e, r) {
+ return (r - e - (r.getTimezoneOffset() - e.getTimezoneOffset()) * it) / Ue;
+ });
+}
+var wt = gt(0), $t = gt(1), yi = gt(2), pi = gt(3), Dt = gt(4), ki = gt(5), vi = gt(6);
+wt.range;
+$t.range;
+yi.range;
+pi.range;
+Dt.range;
+ki.range;
+vi.range;
+var Wn = tt(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() + (e.getFullYear() - t.getFullYear()) * 12;
+}, function(t) {
+ return t.getMonth();
+});
+const Qt = Wn;
+Wn.range;
+var Le = tt(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();
+});
+Le.every = function(t) {
+ return !isFinite(t = Math.floor(t)) || !(t > 0) ? null : tt(function(e) {
+ e.setFullYear(Math.floor(e.getFullYear() / t) * t), e.setMonth(0, 1), e.setHours(0, 0, 0, 0);
+ }, function(e, r) {
+ e.setFullYear(e.getFullYear() + r * t);
+ });
+};
+const dt = Le;
+Le.range;
+var zn = tt(function(t) {
+ t.setUTCSeconds(0, 0);
+}, function(t, e) {
+ t.setTime(+t + e * it);
+}, function(t, e) {
+ return (e - t) / it;
+}, function(t) {
+ return t.getUTCMinutes();
+});
+const Ti = zn;
+zn.range;
+var On = tt(function(t) {
+ t.setUTCMinutes(0, 0, 0);
+}, function(t, e) {
+ t.setTime(+t + e * ft);
+}, function(t, e) {
+ return (e - t) / ft;
+}, function(t) {
+ return t.getUTCHours();
+});
+const xi = On;
+On.range;
+var Hn = tt(function(t) {
+ t.setUTCHours(0, 0, 0, 0);
+}, function(t, e) {
+ t.setUTCDate(t.getUTCDate() + e);
+}, function(t, e) {
+ return (e - t) / mt;
+}, function(t) {
+ return t.getUTCDate() - 1;
+});
+const Ee = Hn;
+Hn.range;
+function yt(t) {
+ return tt(function(e) {
+ e.setUTCDate(e.getUTCDate() - (e.getUTCDay() + 7 - t) % 7), e.setUTCHours(0, 0, 0, 0);
+ }, function(e, r) {
+ e.setUTCDate(e.getUTCDate() + r * 7);
+ }, function(e, r) {
+ return (r - e) / Ue;
+ });
+}
+var Ie = yt(0), Jt = yt(1), bi = yt(2), Mi = yt(3), Ct = yt(4), wi = yt(5), Di = yt(6);
+Ie.range;
+Jt.range;
+bi.range;
+Mi.range;
+Ct.range;
+wi.range;
+Di.range;
+var Pn = tt(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() + (e.getUTCFullYear() - t.getUTCFullYear()) * 12;
+}, function(t) {
+ return t.getUTCMonth();
+});
+const Ci = Pn;
+Pn.range;
+var Ne = tt(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();
+});
+Ne.every = function(t) {
+ return !isFinite(t = Math.floor(t)) || !(t > 0) ? null : tt(function(e) {
+ e.setUTCFullYear(Math.floor(e.getUTCFullYear() / t) * t), e.setUTCMonth(0, 1), e.setUTCHours(0, 0, 0, 0);
+ }, function(e, r) {
+ e.setUTCFullYear(e.getUTCFullYear() + r * t);
+ });
+};
+const St = Ne;
+Ne.range;
+function Vn(t, e, r, n, i, a) {
+ const s = [
+ [Lt, 1, lt],
+ [Lt, 5, 5 * lt],
+ [Lt, 15, 15 * lt],
+ [Lt, 30, 30 * lt],
+ [a, 1, it],
+ [a, 5, 5 * it],
+ [a, 15, 15 * it],
+ [a, 30, 30 * it],
+ [i, 1, ft],
+ [i, 3, 3 * ft],
+ [i, 6, 6 * ft],
+ [i, 12, 12 * ft],
+ [n, 1, mt],
+ [n, 2, 2 * mt],
+ [r, 1, Ue],
+ [e, 1, tn],
+ [e, 3, 3 * tn],
+ [t, 1, ue]
+ ];
+ function c(f, x, p) {
+ const v = x < f;
+ v && ([f, x] = [x, f]);
+ const D = p && typeof p.range == "function" ? p : y(f, x, p), z = D ? D.range(f, +x + 1) : [];
+ return v ? z.reverse() : z;
+ }
+ function y(f, x, p) {
+ const v = Math.abs(x - f) / p, D = Ae(([, , _]) => _).right(s, v);
+ if (D === s.length)
+ return t.every(pe(f / ue, x / ue, p));
+ if (D === 0)
+ return gi.every(Math.max(pe(f, x, p), 1));
+ const [z, T] = s[v / s[D - 1][2] < s[D][2] / v ? D - 1 : D];
+ return z.every(T);
+ }
+ return [c, y];
+}
+Vn(St, Ci, Ie, Ee, xi, Ti);
+const [Si, _i] = Vn(dt, Qt, wt, Mt, Gt, Xt);
+function le(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 fe(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 Ft(t, e, r) {
+ return { y: t, m: e, d: r, H: 0, M: 0, S: 0, L: 0 };
+}
+function Ai(t) {
+ var e = t.dateTime, r = t.date, n = t.time, i = t.periods, a = t.days, s = t.shortDays, c = t.months, y = t.shortMonths, f = Yt(i), x = Ut(i), p = Yt(a), v = Ut(a), D = Yt(s), z = Ut(s), T = Yt(c), _ = Ut(c), I = Yt(y), W = Ut(y), O = {
+ a: Z,
+ A: j,
+ b: B,
+ B: k,
+ c: null,
+ d: on,
+ e: on,
+ f: Ji,
+ g: ca,
+ G: la,
+ H: Gi,
+ I: $i,
+ j: Qi,
+ L: Rn,
+ m: Ki,
+ M: ta,
+ p: A,
+ q: F,
+ Q: ln,
+ s: fn,
+ S: ea,
+ u: na,
+ U: ra,
+ V: ia,
+ w: aa,
+ W: sa,
+ x: null,
+ X: null,
+ y: oa,
+ Y: ua,
+ Z: fa,
+ "%": un
+ }, V = {
+ a: L,
+ A: H,
+ b: $,
+ B: q,
+ c: null,
+ d: cn,
+ e: cn,
+ f: ga,
+ g: Da,
+ G: Sa,
+ H: ha,
+ I: ma,
+ j: da,
+ L: Zn,
+ m: ya,
+ M: pa,
+ p: ht,
+ q: G,
+ Q: ln,
+ s: fn,
+ S: ka,
+ u: va,
+ U: Ta,
+ V: xa,
+ w: ba,
+ W: Ma,
+ x: null,
+ X: null,
+ y: wa,
+ Y: Ca,
+ Z: _a,
+ "%": un
+ }, P = {
+ a: g,
+ A: u,
+ b: l,
+ B: b,
+ c: o,
+ d: an,
+ e: an,
+ f: Zi,
+ g: rn,
+ G: nn,
+ H: sn,
+ I: sn,
+ j: Pi,
+ L: Bi,
+ m: Hi,
+ M: Vi,
+ p: h,
+ q: Oi,
+ Q: qi,
+ s: Xi,
+ S: Ri,
+ u: Ei,
+ U: Ii,
+ V: Ni,
+ w: Li,
+ W: Wi,
+ x: Y,
+ X: m,
+ y: rn,
+ Y: nn,
+ Z: zi,
+ "%": ji
+ };
+ O.x = C(r, O), O.X = C(n, O), O.c = C(e, O), V.x = C(r, V), V.X = C(n, V), V.c = C(e, V);
+ function C(M, S) {
+ return function(E) {
+ var d = [], X = -1, N = 0, Q = M.length, J, at, rt;
+ for (E instanceof Date || (E = new Date(+E)); ++X < Q; )
+ M.charCodeAt(X) === 37 && (d.push(M.slice(N, X)), (at = en[J = M.charAt(++X)]) != null ? J = M.charAt(++X) : at = J === "e" ? " " : "0", (rt = S[J]) && (J = rt(E, at)), d.push(J), N = X + 1);
+ return d.push(M.slice(N, X)), d.join("");
+ };
+ }
+ function U(M, S) {
+ return function(E) {
+ var d = Ft(1900, void 0, 1), X = w(d, M, E += "", 0), N, Q;
+ if (X != E.length)
+ return null;
+ if ("Q" in d)
+ return new Date(d.Q);
+ if ("s" in d)
+ return new Date(d.s * 1e3 + ("L" in d ? d.L : 0));
+ if (S && !("Z" in d) && (d.Z = 0), "p" in d && (d.H = d.H % 12 + d.p * 12), d.m === void 0 && (d.m = "q" in d ? d.q : 0), "V" in d) {
+ if (d.V < 1 || d.V > 53)
+ return null;
+ "w" in d || (d.w = 1), "Z" in d ? (N = fe(Ft(d.y, 0, 1)), Q = N.getUTCDay(), N = Q > 4 || Q === 0 ? Jt.ceil(N) : Jt(N), N = Ee.offset(N, (d.V - 1) * 7), d.y = N.getUTCFullYear(), d.m = N.getUTCMonth(), d.d = N.getUTCDate() + (d.w + 6) % 7) : (N = le(Ft(d.y, 0, 1)), Q = N.getDay(), N = Q > 4 || Q === 0 ? $t.ceil(N) : $t(N), N = Mt.offset(N, (d.V - 1) * 7), d.y = N.getFullYear(), d.m = N.getMonth(), d.d = N.getDate() + (d.w + 6) % 7);
+ } else
+ ("W" in d || "U" in d) && ("w" in d || (d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0), Q = "Z" in d ? fe(Ft(d.y, 0, 1)).getUTCDay() : le(Ft(d.y, 0, 1)).getDay(), d.m = 0, d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (Q + 5) % 7 : d.w + d.U * 7 - (Q + 6) % 7);
+ return "Z" in d ? (d.H += d.Z / 100 | 0, d.M += d.Z % 100, fe(d)) : le(d);
+ };
+ }
+ function w(M, S, E, d) {
+ for (var X = 0, N = S.length, Q = E.length, J, at; X < N; ) {
+ if (d >= Q)
+ return -1;
+ if (J = S.charCodeAt(X++), J === 37) {
+ if (J = S.charAt(X++), at = P[J in en ? S.charAt(X++) : J], !at || (d = at(M, E, d)) < 0)
+ return -1;
+ } else if (J != E.charCodeAt(d++))
+ return -1;
+ }
+ return d;
+ }
+ function h(M, S, E) {
+ var d = f.exec(S.slice(E));
+ return d ? (M.p = x.get(d[0].toLowerCase()), E + d[0].length) : -1;
+ }
+ function g(M, S, E) {
+ var d = D.exec(S.slice(E));
+ return d ? (M.w = z.get(d[0].toLowerCase()), E + d[0].length) : -1;
+ }
+ function u(M, S, E) {
+ var d = p.exec(S.slice(E));
+ return d ? (M.w = v.get(d[0].toLowerCase()), E + d[0].length) : -1;
+ }
+ function l(M, S, E) {
+ var d = I.exec(S.slice(E));
+ return d ? (M.m = W.get(d[0].toLowerCase()), E + d[0].length) : -1;
+ }
+ function b(M, S, E) {
+ var d = T.exec(S.slice(E));
+ return d ? (M.m = _.get(d[0].toLowerCase()), E + d[0].length) : -1;
+ }
+ function o(M, S, E) {
+ return w(M, e, S, E);
+ }
+ function Y(M, S, E) {
+ return w(M, r, S, E);
+ }
+ function m(M, S, E) {
+ return w(M, n, S, E);
+ }
+ function Z(M) {
+ return s[M.getDay()];
+ }
+ function j(M) {
+ return a[M.getDay()];
+ }
+ function B(M) {
+ return y[M.getMonth()];
+ }
+ function k(M) {
+ return c[M.getMonth()];
+ }
+ function A(M) {
+ return i[+(M.getHours() >= 12)];
+ }
+ function F(M) {
+ return 1 + ~~(M.getMonth() / 3);
+ }
+ function L(M) {
+ return s[M.getUTCDay()];
+ }
+ function H(M) {
+ return a[M.getUTCDay()];
+ }
+ function $(M) {
+ return y[M.getUTCMonth()];
+ }
+ function q(M) {
+ return c[M.getUTCMonth()];
+ }
+ function ht(M) {
+ return i[+(M.getUTCHours() >= 12)];
+ }
+ function G(M) {
+ return 1 + ~~(M.getUTCMonth() / 3);
+ }
+ return {
+ format: function(M) {
+ var S = C(M += "", O);
+ return S.toString = function() {
+ return M;
+ }, S;
+ },
+ parse: function(M) {
+ var S = U(M += "", !1);
+ return S.toString = function() {
+ return M;
+ }, S;
+ },
+ utcFormat: function(M) {
+ var S = C(M += "", V);
+ return S.toString = function() {
+ return M;
+ }, S;
+ },
+ utcParse: function(M) {
+ var S = U(M += "", !0);
+ return S.toString = function() {
+ return M;
+ }, S;
+ }
+ };
+}
+var en = { "-": "", _: " ", 0: "0" }, et = /^\s*\d+/, Fi = /^%/, Yi = /[\\^$*+?|[\]().{}]/g;
+function R(t, e, r) {
+ var n = t < 0 ? "-" : "", i = (n ? -t : t) + "", a = i.length;
+ return n + (a < r ? new Array(r - a + 1).join(e) + i : i);
+}
+function Ui(t) {
+ return t.replace(Yi, "\\$&");
+}
+function Yt(t) {
+ return new RegExp("^(?:" + t.map(Ui).join("|") + ")", "i");
+}
+function Ut(t) {
+ return new Map(t.map((e, r) => [e.toLowerCase(), r]));
+}
+function Li(t, e, r) {
+ var n = et.exec(e.slice(r, r + 1));
+ return n ? (t.w = +n[0], r + n[0].length) : -1;
+}
+function Ei(t, e, r) {
+ var n = et.exec(e.slice(r, r + 1));
+ return n ? (t.u = +n[0], r + n[0].length) : -1;
+}
+function Ii(t, e, r) {
+ var n = et.exec(e.slice(r, r + 2));
+ return n ? (t.U = +n[0], r + n[0].length) : -1;
+}
+function Ni(t, e, r) {
+ var n = et.exec(e.slice(r, r + 2));
+ return n ? (t.V = +n[0], r + n[0].length) : -1;
+}
+function Wi(t, e, r) {
+ var n = et.exec(e.slice(r, r + 2));
+ return n ? (t.W = +n[0], r + n[0].length) : -1;
+}
+function nn(t, e, r) {
+ var n = et.exec(e.slice(r, r + 4));
+ return n ? (t.y = +n[0], r + n[0].length) : -1;
+}
+function rn(t, e, r) {
+ var n = et.exec(e.slice(r, r + 2));
+ return n ? (t.y = +n[0] + (+n[0] > 68 ? 1900 : 2e3), r + n[0].length) : -1;
+}
+function zi(t, e, r) {
+ var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r, r + 6));
+ return n ? (t.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), r + n[0].length) : -1;
+}
+function Oi(t, e, r) {
+ var n = et.exec(e.slice(r, r + 1));
+ return n ? (t.q = n[0] * 3 - 3, r + n[0].length) : -1;
+}
+function Hi(t, e, r) {
+ var n = et.exec(e.slice(r, r + 2));
+ return n ? (t.m = n[0] - 1, r + n[0].length) : -1;
+}
+function an(t, e, r) {
+ var n = et.exec(e.slice(r, r + 2));
+ return n ? (t.d = +n[0], r + n[0].length) : -1;
+}
+function Pi(t, e, r) {
+ var n = et.exec(e.slice(r, r + 3));
+ return n ? (t.m = 0, t.d = +n[0], r + n[0].length) : -1;
+}
+function sn(t, e, r) {
+ var n = et.exec(e.slice(r, r + 2));
+ return n ? (t.H = +n[0], r + n[0].length) : -1;
+}
+function Vi(t, e, r) {
+ var n = et.exec(e.slice(r, r + 2));
+ return n ? (t.M = +n[0], r + n[0].length) : -1;
+}
+function Ri(t, e, r) {
+ var n = et.exec(e.slice(r, r + 2));
+ return n ? (t.S = +n[0], r + n[0].length) : -1;
+}
+function Bi(t, e, r) {
+ var n = et.exec(e.slice(r, r + 3));
+ return n ? (t.L = +n[0], r + n[0].length) : -1;
+}
+function Zi(t, e, r) {
+ var n = et.exec(e.slice(r, r + 6));
+ return n ? (t.L = Math.floor(n[0] / 1e3), r + n[0].length) : -1;
+}
+function ji(t, e, r) {
+ var n = Fi.exec(e.slice(r, r + 1));
+ return n ? r + n[0].length : -1;
+}
+function qi(t, e, r) {
+ var n = et.exec(e.slice(r));
+ return n ? (t.Q = +n[0], r + n[0].length) : -1;
+}
+function Xi(t, e, r) {
+ var n = et.exec(e.slice(r));
+ return n ? (t.s = +n[0], r + n[0].length) : -1;
+}
+function on(t, e) {
+ return R(t.getDate(), e, 2);
+}
+function Gi(t, e) {
+ return R(t.getHours(), e, 2);
+}
+function $i(t, e) {
+ return R(t.getHours() % 12 || 12, e, 2);
+}
+function Qi(t, e) {
+ return R(1 + Mt.count(dt(t), t), e, 3);
+}
+function Rn(t, e) {
+ return R(t.getMilliseconds(), e, 3);
+}
+function Ji(t, e) {
+ return Rn(t, e) + "000";
+}
+function Ki(t, e) {
+ return R(t.getMonth() + 1, e, 2);
+}
+function ta(t, e) {
+ return R(t.getMinutes(), e, 2);
+}
+function ea(t, e) {
+ return R(t.getSeconds(), e, 2);
+}
+function na(t) {
+ var e = t.getDay();
+ return e === 0 ? 7 : e;
+}
+function ra(t, e) {
+ return R(wt.count(dt(t) - 1, t), e, 2);
+}
+function Bn(t) {
+ var e = t.getDay();
+ return e >= 4 || e === 0 ? Dt(t) : Dt.ceil(t);
+}
+function ia(t, e) {
+ return t = Bn(t), R(Dt.count(dt(t), t) + (dt(t).getDay() === 4), e, 2);
+}
+function aa(t) {
+ return t.getDay();
+}
+function sa(t, e) {
+ return R($t.count(dt(t) - 1, t), e, 2);
+}
+function oa(t, e) {
+ return R(t.getFullYear() % 100, e, 2);
+}
+function ca(t, e) {
+ return t = Bn(t), R(t.getFullYear() % 100, e, 2);
+}
+function ua(t, e) {
+ return R(t.getFullYear() % 1e4, e, 4);
+}
+function la(t, e) {
+ var r = t.getDay();
+ return t = r >= 4 || r === 0 ? Dt(t) : Dt.ceil(t), R(t.getFullYear() % 1e4, e, 4);
+}
+function fa(t) {
+ var e = t.getTimezoneOffset();
+ return (e > 0 ? "-" : (e *= -1, "+")) + R(e / 60 | 0, "0", 2) + R(e % 60, "0", 2);
+}
+function cn(t, e) {
+ return R(t.getUTCDate(), e, 2);
+}
+function ha(t, e) {
+ return R(t.getUTCHours(), e, 2);
+}
+function ma(t, e) {
+ return R(t.getUTCHours() % 12 || 12, e, 2);
+}
+function da(t, e) {
+ return R(1 + Ee.count(St(t), t), e, 3);
+}
+function Zn(t, e) {
+ return R(t.getUTCMilliseconds(), e, 3);
+}
+function ga(t, e) {
+ return Zn(t, e) + "000";
+}
+function ya(t, e) {
+ return R(t.getUTCMonth() + 1, e, 2);
+}
+function pa(t, e) {
+ return R(t.getUTCMinutes(), e, 2);
+}
+function ka(t, e) {
+ return R(t.getUTCSeconds(), e, 2);
+}
+function va(t) {
+ var e = t.getUTCDay();
+ return e === 0 ? 7 : e;
+}
+function Ta(t, e) {
+ return R(Ie.count(St(t) - 1, t), e, 2);
+}
+function jn(t) {
+ var e = t.getUTCDay();
+ return e >= 4 || e === 0 ? Ct(t) : Ct.ceil(t);
+}
+function xa(t, e) {
+ return t = jn(t), R(Ct.count(St(t), t) + (St(t).getUTCDay() === 4), e, 2);
+}
+function ba(t) {
+ return t.getUTCDay();
+}
+function Ma(t, e) {
+ return R(Jt.count(St(t) - 1, t), e, 2);
+}
+function wa(t, e) {
+ return R(t.getUTCFullYear() % 100, e, 2);
+}
+function Da(t, e) {
+ return t = jn(t), R(t.getUTCFullYear() % 100, e, 2);
+}
+function Ca(t, e) {
+ return R(t.getUTCFullYear() % 1e4, e, 4);
+}
+function Sa(t, e) {
+ var r = t.getUTCDay();
+ return t = r >= 4 || r === 0 ? Ct(t) : Ct.ceil(t), R(t.getUTCFullYear() % 1e4, e, 4);
+}
+function _a() {
+ return "+0000";
+}
+function un() {
+ return "%";
+}
+function ln(t) {
+ return +t;
+}
+function fn(t) {
+ return Math.floor(+t / 1e3);
+}
+var pt, Kt;
+Aa({
+ 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"]
+});
+function Aa(t) {
+ return pt = Ai(t), Kt = pt.format, pt.parse, pt.utcFormat, pt.utcParse, pt;
+}
+function Fa(t) {
+ return new Date(t);
+}
+function Ya(t) {
+ return t instanceof Date ? +t : +new Date(+t);
+}
+function qn(t, e, r, n, i, a, s, c, y, f) {
+ var x = Yn(), p = x.invert, v = x.domain, D = f(".%L"), z = f(":%S"), T = f("%I:%M"), _ = f("%I %p"), I = f("%a %d"), W = f("%b %d"), O = f("%B"), V = f("%Y");
+ function P(C) {
+ return (y(C) < C ? D : c(C) < C ? z : s(C) < C ? T : a(C) < C ? _ : n(C) < C ? i(C) < C ? I : W : r(C) < C ? O : V)(C);
+ }
+ return x.invert = function(C) {
+ return new Date(p(C));
+ }, x.domain = function(C) {
+ return arguments.length ? v(Array.from(C, Ya)) : v().map(Fa);
+ }, x.ticks = function(C) {
+ var U = v();
+ return t(U[0], U[U.length - 1], C ?? 10);
+ }, x.tickFormat = function(C, U) {
+ return U == null ? P : f(U);
+ }, x.nice = function(C) {
+ var U = v();
+ return (!C || typeof C.range != "function") && (C = e(U[0], U[U.length - 1], C ?? 10)), C ? v(di(U, C)) : x;
+ }, x.copy = function() {
+ return Fn(x, qn(t, e, r, n, i, a, s, c, y, f));
+ }, x;
+}
+function Ua() {
+ return pn.apply(qn(Si, _i, dt, Qt, wt, Mt, Gt, Xt, Lt, Kt).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), arguments);
+}
+var xe = function() {
+ var t = function(w, h, g, u) {
+ for (g = g || {}, u = w.length; u--; g[w[u]] = h)
+ ;
+ return g;
+ }, e = [1, 3], r = [1, 5], n = [7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40], i = [1, 15], a = [1, 16], s = [1, 17], c = [1, 18], y = [1, 19], f = [1, 20], x = [1, 21], p = [1, 22], v = [1, 23], D = [1, 24], z = [1, 25], T = [1, 26], _ = [1, 27], I = [1, 29], W = [1, 31], O = [1, 34], V = [5, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40], P = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, directive: 4, gantt: 5, document: 6, EOF: 7, line: 8, SPACE: 9, statement: 10, NL: 11, dateFormat: 12, inclusiveEndDates: 13, topAxis: 14, axisFormat: 15, tickInterval: 16, excludes: 17, includes: 18, todayMarker: 19, title: 20, acc_title: 21, acc_title_value: 22, acc_descr: 23, acc_descr_value: 24, acc_descr_multiline_value: 25, section: 26, clickStatement: 27, taskTxt: 28, taskData: 29, openDirective: 30, typeDirective: 31, closeDirective: 32, ":": 33, argDirective: 34, click: 35, callbackname: 36, callbackargs: 37, href: 38, clickStatementDebug: 39, open_directive: 40, type_directive: 41, arg_directive: 42, close_directive: 43, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 5: "gantt", 7: "EOF", 9: "SPACE", 11: "NL", 12: "dateFormat", 13: "inclusiveEndDates", 14: "topAxis", 15: "axisFormat", 16: "tickInterval", 17: "excludes", 18: "includes", 19: "todayMarker", 20: "title", 21: "acc_title", 22: "acc_title_value", 23: "acc_descr", 24: "acc_descr_value", 25: "acc_descr_multiline_value", 26: "section", 28: "taskTxt", 29: "taskData", 33: ":", 35: "click", 36: "callbackname", 37: "callbackargs", 38: "href", 40: "open_directive", 41: "type_directive", 42: "arg_directive", 43: "close_directive" },
+ productions_: [0, [3, 2], [3, 3], [6, 0], [6, 2], [8, 2], [8, 1], [8, 1], [8, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 2], [10, 1], [4, 4], [4, 6], [27, 2], [27, 3], [27, 3], [27, 4], [27, 3], [27, 4], [27, 2], [39, 2], [39, 3], [39, 3], [39, 4], [39, 3], [39, 4], [39, 2], [30, 1], [31, 1], [34, 1], [32, 1]],
+ performAction: function(h, g, u, l, b, o, Y) {
+ var m = o.length - 1;
+ switch (b) {
+ case 2:
+ return o[m - 1];
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ o[m - 1].push(o[m]), this.$ = o[m - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = o[m];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 9:
+ l.setDateFormat(o[m].substr(11)), this.$ = o[m].substr(11);
+ break;
+ case 10:
+ l.enableInclusiveEndDates(), this.$ = o[m].substr(18);
+ break;
+ case 11:
+ l.TopAxis(), this.$ = o[m].substr(8);
+ break;
+ case 12:
+ l.setAxisFormat(o[m].substr(11)), this.$ = o[m].substr(11);
+ break;
+ case 13:
+ l.setTickInterval(o[m].substr(13)), this.$ = o[m].substr(13);
+ break;
+ case 14:
+ l.setExcludes(o[m].substr(9)), this.$ = o[m].substr(9);
+ break;
+ case 15:
+ l.setIncludes(o[m].substr(9)), this.$ = o[m].substr(9);
+ break;
+ case 16:
+ l.setTodayMarker(o[m].substr(12)), this.$ = o[m].substr(12);
+ break;
+ case 17:
+ l.setDiagramTitle(o[m].substr(6)), this.$ = o[m].substr(6);
+ break;
+ case 18:
+ this.$ = o[m].trim(), l.setAccTitle(this.$);
+ break;
+ case 19:
+ case 20:
+ this.$ = o[m].trim(), l.setAccDescription(this.$);
+ break;
+ case 21:
+ l.addSection(o[m].substr(8)), this.$ = o[m].substr(8);
+ break;
+ case 23:
+ l.addTask(o[m - 1], o[m]), this.$ = "task";
+ break;
+ case 27:
+ this.$ = o[m - 1], l.setClickEvent(o[m - 1], o[m], null);
+ break;
+ case 28:
+ this.$ = o[m - 2], l.setClickEvent(o[m - 2], o[m - 1], o[m]);
+ break;
+ case 29:
+ this.$ = o[m - 2], l.setClickEvent(o[m - 2], o[m - 1], null), l.setLink(o[m - 2], o[m]);
+ break;
+ case 30:
+ this.$ = o[m - 3], l.setClickEvent(o[m - 3], o[m - 2], o[m - 1]), l.setLink(o[m - 3], o[m]);
+ break;
+ case 31:
+ this.$ = o[m - 2], l.setClickEvent(o[m - 2], o[m], null), l.setLink(o[m - 2], o[m - 1]);
+ break;
+ case 32:
+ this.$ = o[m - 3], l.setClickEvent(o[m - 3], o[m - 1], o[m]), l.setLink(o[m - 3], o[m - 2]);
+ break;
+ case 33:
+ this.$ = o[m - 1], l.setLink(o[m - 1], o[m]);
+ break;
+ case 34:
+ case 40:
+ this.$ = o[m - 1] + " " + o[m];
+ break;
+ case 35:
+ case 36:
+ case 38:
+ this.$ = o[m - 2] + " " + o[m - 1] + " " + o[m];
+ break;
+ case 37:
+ case 39:
+ this.$ = o[m - 3] + " " + o[m - 2] + " " + o[m - 1] + " " + o[m];
+ break;
+ case 41:
+ l.parseDirective("%%{", "open_directive");
+ break;
+ case 42:
+ l.parseDirective(o[m], "type_directive");
+ break;
+ case 43:
+ o[m] = o[m].trim().replace(/'/g, '"'), l.parseDirective(o[m], "arg_directive");
+ break;
+ case 44:
+ l.parseDirective("}%%", "close_directive", "gantt");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: e, 30: 4, 40: r }, { 1: [3] }, { 3: 6, 4: 2, 5: e, 30: 4, 40: r }, t(n, [2, 3], { 6: 7 }), { 31: 8, 41: [1, 9] }, { 41: [2, 41] }, { 1: [2, 1] }, { 4: 30, 7: [1, 10], 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: i, 13: a, 14: s, 15: c, 16: y, 17: f, 18: x, 19: p, 20: v, 21: D, 23: z, 25: T, 26: _, 27: 28, 28: I, 30: 4, 35: W, 40: r }, { 32: 32, 33: [1, 33], 43: O }, t([33, 43], [2, 42]), t(n, [2, 8], { 1: [2, 2] }), t(n, [2, 4]), { 4: 30, 10: 35, 12: i, 13: a, 14: s, 15: c, 16: y, 17: f, 18: x, 19: p, 20: v, 21: D, 23: z, 25: T, 26: _, 27: 28, 28: I, 30: 4, 35: W, 40: r }, t(n, [2, 6]), t(n, [2, 7]), t(n, [2, 9]), t(n, [2, 10]), t(n, [2, 11]), t(n, [2, 12]), t(n, [2, 13]), t(n, [2, 14]), t(n, [2, 15]), t(n, [2, 16]), t(n, [2, 17]), { 22: [1, 36] }, { 24: [1, 37] }, t(n, [2, 20]), t(n, [2, 21]), t(n, [2, 22]), { 29: [1, 38] }, t(n, [2, 24]), { 36: [1, 39], 38: [1, 40] }, { 11: [1, 41] }, { 34: 42, 42: [1, 43] }, { 11: [2, 44] }, t(n, [2, 5]), t(n, [2, 18]), t(n, [2, 19]), t(n, [2, 23]), t(n, [2, 27], { 37: [1, 44], 38: [1, 45] }), t(n, [2, 33], { 36: [1, 46] }), t(V, [2, 25]), { 32: 47, 43: O }, { 43: [2, 43] }, t(n, [2, 28], { 38: [1, 48] }), t(n, [2, 29]), t(n, [2, 31], { 37: [1, 49] }), { 11: [1, 50] }, t(n, [2, 30]), t(n, [2, 32]), t(V, [2, 26])],
+ defaultActions: { 5: [2, 41], 6: [2, 1], 34: [2, 44], 43: [2, 43] },
+ parseError: function(h, g) {
+ if (g.recoverable)
+ this.trace(h);
+ else {
+ var u = new Error(h);
+ throw u.hash = g, u;
+ }
+ },
+ parse: function(h) {
+ var g = this, u = [0], l = [], b = [null], o = [], Y = this.table, m = "", Z = 0, j = 0, B = 2, k = 1, A = o.slice.call(arguments, 1), F = Object.create(this.lexer), L = { yy: {} };
+ for (var H in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, H) && (L.yy[H] = this.yy[H]);
+ F.setInput(h, L.yy), L.yy.lexer = F, L.yy.parser = this, typeof F.yylloc > "u" && (F.yylloc = {});
+ var $ = F.yylloc;
+ o.push($);
+ var q = F.options && F.options.ranges;
+ typeof L.yy.parseError == "function" ? this.parseError = L.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function ht() {
+ var rt;
+ return rt = l.pop() || F.lex() || k, typeof rt != "number" && (rt instanceof Array && (l = rt, rt = l.pop()), rt = g.symbols_[rt] || rt), rt;
+ }
+ for (var G, M, S, E, d = {}, X, N, Q, J; ; ) {
+ if (M = u[u.length - 1], this.defaultActions[M] ? S = this.defaultActions[M] : ((G === null || typeof G > "u") && (G = ht()), S = Y[M] && Y[M][G]), typeof S > "u" || !S.length || !S[0]) {
+ var at = "";
+ J = [];
+ for (X in Y[M])
+ this.terminals_[X] && X > B && J.push("'" + this.terminals_[X] + "'");
+ F.showPosition ? at = "Parse error on line " + (Z + 1) + `:
+` + F.showPosition() + `
+Expecting ` + J.join(", ") + ", got '" + (this.terminals_[G] || G) + "'" : at = "Parse error on line " + (Z + 1) + ": Unexpected " + (G == k ? "end of input" : "'" + (this.terminals_[G] || G) + "'"), this.parseError(at, {
+ text: F.match,
+ token: this.terminals_[G] || G,
+ line: F.yylineno,
+ loc: $,
+ expected: J
+ });
+ }
+ if (S[0] instanceof Array && S.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + M + ", token: " + G);
+ switch (S[0]) {
+ case 1:
+ u.push(G), b.push(F.yytext), o.push(F.yylloc), u.push(S[1]), G = null, j = F.yyleng, m = F.yytext, Z = F.yylineno, $ = F.yylloc;
+ break;
+ case 2:
+ if (N = this.productions_[S[1]][1], d.$ = b[b.length - N], d._$ = {
+ first_line: o[o.length - (N || 1)].first_line,
+ last_line: o[o.length - 1].last_line,
+ first_column: o[o.length - (N || 1)].first_column,
+ last_column: o[o.length - 1].last_column
+ }, q && (d._$.range = [
+ o[o.length - (N || 1)].range[0],
+ o[o.length - 1].range[1]
+ ]), E = this.performAction.apply(d, [
+ m,
+ j,
+ Z,
+ L.yy,
+ S[1],
+ b,
+ o
+ ].concat(A)), typeof E < "u")
+ return E;
+ N && (u = u.slice(0, -1 * N * 2), b = b.slice(0, -1 * N), o = o.slice(0, -1 * N)), u.push(this.productions_[S[1]][0]), b.push(d.$), o.push(d._$), Q = Y[u[u.length - 2]][u[u.length - 1]], u.push(Q);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, C = function() {
+ var w = {
+ EOF: 1,
+ parseError: function(g, u) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(g, u);
+ else
+ throw new Error(g);
+ },
+ // resets the lexer, sets new input
+ setInput: function(h, g) {
+ return this.yy = g || this.yy || {}, this._input = h, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var h = this._input[0];
+ this.yytext += h, this.yyleng++, this.offset++, this.match += h, this.matched += h;
+ var g = h.match(/(?:\r\n?|\n).*/g);
+ return g ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), h;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(h) {
+ var g = h.length, u = h.split(/(?:\r\n?|\n)/g);
+ this._input = h + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - g), this.offset -= g;
+ var l = 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), u.length - 1 && (this.yylineno -= u.length - 1);
+ var b = 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: u ? (u.length === l.length ? this.yylloc.first_column : 0) + l[l.length - u.length].length - u[0].length : this.yylloc.first_column - g
+ }, this.options.ranges && (this.yylloc.range = [b[0], b[0] + this.yyleng - g]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(h) {
+ this.unput(this.match.slice(h));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var h = this.matched.substr(0, this.matched.length - this.match.length);
+ return (h.length > 20 ? "..." : "") + h.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var h = this.match;
+ return h.length < 20 && (h += this._input.substr(0, 20 - h.length)), (h.substr(0, 20) + (h.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var h = this.pastInput(), g = new Array(h.length + 1).join("-");
+ return h + this.upcomingInput() + `
+` + g + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(h, g) {
+ var u, l, b;
+ if (this.options.backtrack_lexer && (b = {
+ 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 && (b.yylloc.range = this.yylloc.range.slice(0))), l = h[0].match(/(?:\r\n?|\n).*/g), l && (this.yylineno += l.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: l ? l[l.length - 1].length - l[l.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + h[0].length
+ }, this.yytext += h[0], this.match += h[0], this.matches = h, 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(h[0].length), this.matched += h[0], u = this.performAction.call(this, this.yy, this, g, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), u)
+ return u;
+ if (this._backtrack) {
+ for (var o in b)
+ this[o] = b[o];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var h, g, u, l;
+ this._more || (this.yytext = "", this.match = "");
+ for (var b = this._currentRules(), o = 0; o < b.length; o++)
+ if (u = this._input.match(this.rules[b[o]]), u && (!g || u[0].length > g[0].length)) {
+ if (g = u, l = o, this.options.backtrack_lexer) {
+ if (h = this.test_match(u, b[o]), h !== !1)
+ return h;
+ if (this._backtrack) {
+ g = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return g ? (h = this.test_match(g, b[l]), h !== !1 ? h : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var g = this.next();
+ return g || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(g) {
+ this.conditionStack.push(g);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var g = this.conditionStack.length - 1;
+ return g > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(g) {
+ return g = this.conditionStack.length - 1 - Math.abs(g || 0), g >= 0 ? this.conditionStack[g] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(g) {
+ this.begin(g);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": !0 },
+ performAction: function(g, u, l, b) {
+ switch (l) {
+ case 0:
+ return this.begin("open_directive"), 40;
+ case 1:
+ return this.begin("type_directive"), 41;
+ case 2:
+ return this.popState(), this.begin("arg_directive"), 33;
+ case 3:
+ return this.popState(), this.popState(), 43;
+ case 4:
+ return 42;
+ case 5:
+ return this.begin("acc_title"), 21;
+ case 6:
+ return this.popState(), "acc_title_value";
+ case 7:
+ return this.begin("acc_descr"), 23;
+ case 8:
+ return this.popState(), "acc_descr_value";
+ case 9:
+ this.begin("acc_descr_multiline");
+ break;
+ case 10:
+ this.popState();
+ break;
+ case 11:
+ return "acc_descr_multiline_value";
+ case 12:
+ break;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ return 11;
+ case 16:
+ break;
+ case 17:
+ break;
+ case 18:
+ break;
+ case 19:
+ this.begin("href");
+ break;
+ case 20:
+ this.popState();
+ break;
+ case 21:
+ return 38;
+ case 22:
+ this.begin("callbackname");
+ break;
+ case 23:
+ this.popState();
+ break;
+ case 24:
+ this.popState(), this.begin("callbackargs");
+ break;
+ case 25:
+ return 36;
+ case 26:
+ this.popState();
+ break;
+ case 27:
+ return 37;
+ case 28:
+ this.begin("click");
+ break;
+ case 29:
+ this.popState();
+ break;
+ case 30:
+ return 35;
+ case 31:
+ return 5;
+ case 32:
+ return 12;
+ case 33:
+ return 13;
+ case 34:
+ return 14;
+ case 35:
+ return 15;
+ case 36:
+ return 16;
+ case 37:
+ return 18;
+ case 38:
+ return 17;
+ case 39:
+ return 19;
+ case 40:
+ return "date";
+ case 41:
+ return 20;
+ case 42:
+ return "accDescription";
+ case 43:
+ return 26;
+ case 44:
+ return 28;
+ case 45:
+ return 29;
+ case 46:
+ return 33;
+ case 47:
+ return 7;
+ case 48:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\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, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { acc_descr_multiline: { rules: [10, 11], inclusive: !1 }, acc_descr: { rules: [8], inclusive: !1 }, acc_title: { rules: [6], inclusive: !1 }, close_directive: { rules: [], inclusive: !1 }, arg_directive: { rules: [3, 4], inclusive: !1 }, type_directive: { rules: [2, 3], inclusive: !1 }, open_directive: { rules: [1], inclusive: !1 }, callbackargs: { rules: [26, 27], inclusive: !1 }, callbackname: { rules: [23, 24, 25], inclusive: !1 }, href: { rules: [20, 21], inclusive: !1 }, click: { rules: [29, 30], inclusive: !1 }, INITIAL: { rules: [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 22, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], inclusive: !0 } }
+ };
+ return w;
+ }();
+ P.lexer = C;
+ function U() {
+ this.yy = {};
+ }
+ return U.prototype = P, P.Parser = U, new U();
+}();
+xe.parser = xe;
+const La = xe;
+var be = {}, Ea = {
+ get exports() {
+ return be;
+ },
+ set exports(t) {
+ be = t;
+ }
+};
+(function(t, e) {
+ (function(r, n) {
+ t.exports = n();
+ })(_e, function() {
+ var r = "day";
+ return function(n, i, a) {
+ var s = function(f) {
+ return f.add(4 - f.isoWeekday(), r);
+ }, c = i.prototype;
+ c.isoWeekYear = function() {
+ return s(this).year();
+ }, c.isoWeek = function(f) {
+ if (!this.$utils().u(f))
+ return this.add(7 * (f - this.isoWeek()), r);
+ var x, p, v, D, z = s(this), T = (x = this.isoWeekYear(), p = this.$u, v = (p ? a.utc : a)().year(x).startOf("year"), D = 4 - v.isoWeekday(), v.isoWeekday() > 4 && (D += 7), v.add(D, r));
+ return z.diff(T, "week") + 1;
+ }, c.isoWeekday = function(f) {
+ return this.$utils().u(f) ? this.day() || 7 : this.day(this.day() % 7 ? f : f - 7);
+ };
+ var y = c.startOf;
+ c.startOf = function(f, x) {
+ var p = this.$utils(), v = !!p.u(x) || x;
+ return p.p(f) === "isoweek" ? v ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day") : y.bind(this)(f, x);
+ };
+ };
+ });
+})(Ea);
+const Ia = be;
+var Me = {}, Na = {
+ get exports() {
+ return Me;
+ },
+ set exports(t) {
+ Me = t;
+ }
+};
+(function(t, e) {
+ (function(r, n) {
+ t.exports = n();
+ })(_e, function() {
+ var r = { 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" }, n = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g, i = /\d\d/, a = /\d\d?/, s = /\d*[^-_:/,()\s\d]+/, c = {}, y = function(T) {
+ return (T = +T) + (T > 68 ? 1900 : 2e3);
+ }, f = function(T) {
+ return function(_) {
+ this[T] = +_;
+ };
+ }, x = [/[+-]\d\d:?(\d\d)?|Z/, function(T) {
+ (this.zone || (this.zone = {})).offset = function(_) {
+ if (!_ || _ === "Z")
+ return 0;
+ var I = _.match(/([+-]|\d\d)/g), W = 60 * I[1] + (+I[2] || 0);
+ return W === 0 ? 0 : I[0] === "+" ? -W : W;
+ }(T);
+ }], p = function(T) {
+ var _ = c[T];
+ return _ && (_.indexOf ? _ : _.s.concat(_.f));
+ }, v = function(T, _) {
+ var I, W = c.meridiem;
+ if (W) {
+ for (var O = 1; O <= 24; O += 1)
+ if (T.indexOf(W(O, 0, _)) > -1) {
+ I = O > 12;
+ break;
+ }
+ } else
+ I = T === (_ ? "pm" : "PM");
+ return I;
+ }, D = { A: [s, function(T) {
+ this.afternoon = v(T, !1);
+ }], a: [s, function(T) {
+ this.afternoon = v(T, !0);
+ }], S: [/\d/, function(T) {
+ this.milliseconds = 100 * +T;
+ }], SS: [i, function(T) {
+ this.milliseconds = 10 * +T;
+ }], SSS: [/\d{3}/, function(T) {
+ this.milliseconds = +T;
+ }], s: [a, f("seconds")], ss: [a, f("seconds")], m: [a, f("minutes")], mm: [a, f("minutes")], H: [a, f("hours")], h: [a, f("hours")], HH: [a, f("hours")], hh: [a, f("hours")], D: [a, f("day")], DD: [i, f("day")], Do: [s, function(T) {
+ var _ = c.ordinal, I = T.match(/\d+/);
+ if (this.day = I[0], _)
+ for (var W = 1; W <= 31; W += 1)
+ _(W).replace(/\[|\]/g, "") === T && (this.day = W);
+ }], M: [a, f("month")], MM: [i, f("month")], MMM: [s, function(T) {
+ var _ = p("months"), I = (p("monthsShort") || _.map(function(W) {
+ return W.slice(0, 3);
+ })).indexOf(T) + 1;
+ if (I < 1)
+ throw new Error();
+ this.month = I % 12 || I;
+ }], MMMM: [s, function(T) {
+ var _ = p("months").indexOf(T) + 1;
+ if (_ < 1)
+ throw new Error();
+ this.month = _ % 12 || _;
+ }], Y: [/[+-]?\d+/, f("year")], YY: [i, function(T) {
+ this.year = y(T);
+ }], YYYY: [/\d{4}/, f("year")], Z: x, ZZ: x };
+ function z(T) {
+ var _, I;
+ _ = T, I = c && c.formats;
+ for (var W = (T = _.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(h, g, u) {
+ var l = u && u.toUpperCase();
+ return g || I[u] || r[u] || I[l].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function(b, o, Y) {
+ return o || Y.slice(1);
+ });
+ })).match(n), O = W.length, V = 0; V < O; V += 1) {
+ var P = W[V], C = D[P], U = C && C[0], w = C && C[1];
+ W[V] = w ? { regex: U, parser: w } : P.replace(/^\[|\]$/g, "");
+ }
+ return function(h) {
+ for (var g = {}, u = 0, l = 0; u < O; u += 1) {
+ var b = W[u];
+ if (typeof b == "string")
+ l += b.length;
+ else {
+ var o = b.regex, Y = b.parser, m = h.slice(l), Z = o.exec(m)[0];
+ Y.call(g, Z), h = h.replace(Z, "");
+ }
+ }
+ return function(j) {
+ var B = j.afternoon;
+ if (B !== void 0) {
+ var k = j.hours;
+ B ? k < 12 && (j.hours += 12) : k === 12 && (j.hours = 0), delete j.afternoon;
+ }
+ }(g), g;
+ };
+ }
+ return function(T, _, I) {
+ I.p.customParseFormat = !0, T && T.parseTwoDigitYear && (y = T.parseTwoDigitYear);
+ var W = _.prototype, O = W.parse;
+ W.parse = function(V) {
+ var P = V.date, C = V.utc, U = V.args;
+ this.$u = C;
+ var w = U[1];
+ if (typeof w == "string") {
+ var h = U[2] === !0, g = U[3] === !0, u = h || g, l = U[2];
+ g && (l = U[2]), c = this.$locale(), !h && l && (c = I.Ls[l]), this.$d = function(m, Z, j) {
+ try {
+ if (["x", "X"].indexOf(Z) > -1)
+ return new Date((Z === "X" ? 1e3 : 1) * m);
+ var B = z(Z)(m), k = B.year, A = B.month, F = B.day, L = B.hours, H = B.minutes, $ = B.seconds, q = B.milliseconds, ht = B.zone, G = new Date(), M = F || (k || A ? 1 : G.getDate()), S = k || G.getFullYear(), E = 0;
+ k && !A || (E = A > 0 ? A - 1 : G.getMonth());
+ var d = L || 0, X = H || 0, N = $ || 0, Q = q || 0;
+ return ht ? new Date(Date.UTC(S, E, M, d, X, N, Q + 60 * ht.offset * 1e3)) : j ? new Date(Date.UTC(S, E, M, d, X, N, Q)) : new Date(S, E, M, d, X, N, Q);
+ } catch {
+ return new Date("");
+ }
+ }(P, w, C), this.init(), l && l !== !0 && (this.$L = this.locale(l).$L), u && P != this.format(w) && (this.$d = new Date("")), c = {};
+ } else if (w instanceof Array)
+ for (var b = w.length, o = 1; o <= b; o += 1) {
+ U[1] = w[o - 1];
+ var Y = I.apply(this, U);
+ if (Y.isValid()) {
+ this.$d = Y.$d, this.$L = Y.$L, this.init();
+ break;
+ }
+ o === b && (this.$d = new Date(""));
+ }
+ else
+ O.call(this, V);
+ };
+ };
+ });
+})(Na);
+const Wa = Me;
+var we = {}, za = {
+ get exports() {
+ return we;
+ },
+ set exports(t) {
+ we = t;
+ }
+};
+(function(t, e) {
+ (function(r, n) {
+ t.exports = n();
+ })(_e, function() {
+ return function(r, n) {
+ var i = n.prototype, a = i.format;
+ i.format = function(s) {
+ var c = this, y = this.$locale();
+ if (!this.isValid())
+ return a.bind(this)(s);
+ var f = this.$utils(), x = (s || "YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, function(p) {
+ switch (p) {
+ case "Q":
+ return Math.ceil((c.$M + 1) / 3);
+ case "Do":
+ return y.ordinal(c.$D);
+ case "gggg":
+ return c.weekYear();
+ case "GGGG":
+ return c.isoWeekYear();
+ case "wo":
+ return y.ordinal(c.week(), "W");
+ case "w":
+ case "ww":
+ return f.s(c.week(), p === "w" ? 1 : 2, "0");
+ case "W":
+ case "WW":
+ return f.s(c.isoWeek(), p === "W" ? 1 : 2, "0");
+ case "k":
+ case "kk":
+ return f.s(String(c.$H === 0 ? 24 : c.$H), p === "k" ? 1 : 2, "0");
+ case "X":
+ return Math.floor(c.$d.getTime() / 1e3);
+ case "x":
+ return c.$d.getTime();
+ case "z":
+ return "[" + c.offsetName() + "]";
+ case "zzz":
+ return "[" + c.offsetName("long") + "]";
+ default:
+ return p;
+ }
+ });
+ return a.bind(this)(x);
+ };
+ };
+ });
+})(za);
+const Oa = we;
+nt.extend(Ia);
+nt.extend(Wa);
+nt.extend(Oa);
+let st = "", We = "", ze, Oe = "", Et = [], It = [], He = {}, Pe = [], te = [], _t = "", Ve = "";
+const Xn = ["active", "done", "crit", "milestone"];
+let Re = [], Nt = !1, Be = !1, De = 0;
+const Ha = function(t, e, r) {
+ kr.parseDirective(this, t, e, r);
+}, Pa = function() {
+ Pe = [], te = [], _t = "", Re = [], Vt = 0, Se = void 0, Rt = void 0, K = [], st = "", We = "", Ve = "", ze = void 0, Oe = "", Et = [], It = [], Nt = !1, Be = !1, De = 0, He = {}, yr();
+}, Va = function(t) {
+ We = t;
+}, Ra = function() {
+ return We;
+}, Ba = function(t) {
+ ze = t;
+}, Za = function() {
+ return ze;
+}, ja = function(t) {
+ Oe = t;
+}, qa = function() {
+ return Oe;
+}, Xa = function(t) {
+ st = t;
+}, Ga = function() {
+ Nt = !0;
+}, $a = function() {
+ return Nt;
+}, Qa = function() {
+ Be = !0;
+}, Ja = function() {
+ return Be;
+}, Ka = function(t) {
+ Ve = t;
+}, ts = function() {
+ return Ve;
+}, es = function() {
+ return st;
+}, ns = function(t) {
+ Et = t.toLowerCase().split(/[\s,]+/);
+}, rs = function() {
+ return Et;
+}, is = function(t) {
+ It = t.toLowerCase().split(/[\s,]+/);
+}, as = function() {
+ return It;
+}, ss = function() {
+ return He;
+}, os = function(t) {
+ _t = t, Pe.push(t);
+}, cs = function() {
+ return Pe;
+}, us = function() {
+ let t = hn();
+ const e = 10;
+ let r = 0;
+ for (; !t && r < e; )
+ t = hn(), r++;
+ return te = K, te;
+}, Gn = function(t, e, r, n) {
+ return n.includes(t.format(e.trim())) ? !1 : t.isoWeekday() >= 6 && r.includes("weekends") || r.includes(t.format("dddd").toLowerCase()) ? !0 : r.includes(t.format(e.trim()));
+}, $n = function(t, e, r, n) {
+ if (!r.length || t.manualEndTime)
+ return;
+ let i;
+ t.startTime instanceof Date ? i = nt(t.startTime) : i = nt(t.startTime, e, !0), i = i.add(1, "d");
+ let a;
+ t.endTime instanceof Date ? a = nt(t.endTime) : a = nt(t.endTime, e, !0);
+ const [s, c] = ls(
+ i,
+ a,
+ e,
+ r,
+ n
+ );
+ t.endTime = s.toDate(), t.renderEndTime = c;
+}, ls = function(t, e, r, n, i) {
+ let a = !1, s = null;
+ for (; t <= e; )
+ a || (s = e.toDate()), a = Gn(t, r, n, i), a && (e = e.add(1, "d")), t = t.add(1, "d");
+ return [e, s];
+}, Ce = function(t, e, r) {
+ r = r.trim();
+ const i = /^after\s+([\d\w- ]+)/.exec(r.trim());
+ if (i !== null) {
+ let s = null;
+ if (i[1].split(" ").forEach(function(c) {
+ let y = At(c);
+ y !== void 0 && (s ? y.endTime > s.endTime && (s = y) : s = y);
+ }), s)
+ return s.endTime;
+ {
+ const c = new Date();
+ return c.setHours(0, 0, 0, 0), c;
+ }
+ }
+ let a = nt(r, e.trim(), !0);
+ if (a.isValid())
+ return a.toDate();
+ {
+ me.debug("Invalid date:" + r), me.debug("With date format:" + e.trim());
+ const s = new Date(r);
+ if (s === void 0 || isNaN(s.getTime()))
+ throw new Error("Invalid date:" + r);
+ return s;
+ }
+}, Qn = function(t) {
+ const e = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());
+ return e !== null ? [Number.parseFloat(e[1]), e[2]] : [NaN, "ms"];
+}, Jn = function(t, e, r, n = !1) {
+ r = r.trim();
+ let i = nt(r, e.trim(), !0);
+ if (i.isValid())
+ return n && (i = i.add(1, "d")), i.toDate();
+ let a = nt(t);
+ const [s, c] = Qn(r);
+ if (!Number.isNaN(s)) {
+ const y = a.add(s, c);
+ y.isValid() && (a = y);
+ }
+ return a.toDate();
+};
+let Vt = 0;
+const xt = function(t) {
+ return t === void 0 ? (Vt = Vt + 1, "task" + Vt) : t;
+}, fs = function(t, e) {
+ let r;
+ e.substr(0, 1) === ":" ? r = e.substr(1, e.length) : r = e;
+ const n = r.split(","), i = {};
+ nr(n, i, Xn);
+ for (let s = 0; s < n.length; s++)
+ n[s] = n[s].trim();
+ let a = "";
+ switch (n.length) {
+ case 1:
+ i.id = xt(), i.startTime = t.endTime, a = n[0];
+ break;
+ case 2:
+ i.id = xt(), i.startTime = Ce(void 0, st, n[0]), a = n[1];
+ break;
+ case 3:
+ i.id = xt(n[0]), i.startTime = Ce(void 0, st, n[1]), a = n[2];
+ break;
+ }
+ return a && (i.endTime = Jn(i.startTime, st, a, Nt), i.manualEndTime = nt(a, "YYYY-MM-DD", !0).isValid(), $n(i, st, It, Et)), i;
+}, hs = function(t, e) {
+ let r;
+ e.substr(0, 1) === ":" ? r = e.substr(1, e.length) : r = e;
+ const n = r.split(","), i = {};
+ nr(n, i, Xn);
+ for (let a = 0; a < n.length; a++)
+ n[a] = n[a].trim();
+ switch (n.length) {
+ case 1:
+ i.id = xt(), i.startTime = {
+ type: "prevTaskEnd",
+ id: t
+ }, i.endTime = {
+ data: n[0]
+ };
+ break;
+ case 2:
+ i.id = xt(), i.startTime = {
+ type: "getStartDate",
+ startData: n[0]
+ }, i.endTime = {
+ data: n[1]
+ };
+ break;
+ case 3:
+ i.id = xt(n[0]), i.startTime = {
+ type: "getStartDate",
+ startData: n[1]
+ }, i.endTime = {
+ data: n[2]
+ };
+ break;
+ }
+ return i;
+};
+let Se, Rt, K = [];
+const Kn = {}, ms = function(t, e) {
+ const r = {
+ section: _t,
+ type: _t,
+ processed: !1,
+ manualEndTime: !1,
+ renderEndTime: null,
+ raw: { data: e },
+ task: t,
+ classes: []
+ }, n = hs(Rt, e);
+ r.raw.startTime = n.startTime, r.raw.endTime = n.endTime, r.id = n.id, r.prevTaskId = Rt, r.active = n.active, r.done = n.done, r.crit = n.crit, r.milestone = n.milestone, r.order = De, De++;
+ const i = K.push(r);
+ Rt = r.id, Kn[r.id] = i - 1;
+}, At = function(t) {
+ const e = Kn[t];
+ return K[e];
+}, ds = function(t, e) {
+ const r = {
+ section: _t,
+ type: _t,
+ description: t,
+ task: t,
+ classes: []
+ }, n = fs(Se, e);
+ r.startTime = n.startTime, r.endTime = n.endTime, r.id = n.id, r.active = n.active, r.done = n.done, r.crit = n.crit, r.milestone = n.milestone, Se = r, te.push(r);
+}, hn = function() {
+ const t = function(r) {
+ const n = K[r];
+ let i = "";
+ switch (K[r].raw.startTime.type) {
+ case "prevTaskEnd": {
+ const a = At(n.prevTaskId);
+ n.startTime = a.endTime;
+ break;
+ }
+ case "getStartDate":
+ i = Ce(void 0, st, K[r].raw.startTime.startData), i && (K[r].startTime = i);
+ break;
+ }
+ return K[r].startTime && (K[r].endTime = Jn(
+ K[r].startTime,
+ st,
+ K[r].raw.endTime.data,
+ Nt
+ ), K[r].endTime && (K[r].processed = !0, K[r].manualEndTime = nt(
+ K[r].raw.endTime.data,
+ "YYYY-MM-DD",
+ !0
+ ).isValid(), $n(K[r], st, It, Et))), K[r].processed;
+ };
+ let e = !0;
+ for (const [r, n] of K.entries())
+ t(r), e = e && n.processed;
+ return e;
+}, gs = function(t, e) {
+ let r = e;
+ vt().securityLevel !== "loose" && (r = rr(e)), t.split(",").forEach(function(n) {
+ At(n) !== void 0 && (er(n, () => {
+ window.open(r, "_self");
+ }), He[n] = r);
+ }), tr(t, "clickable");
+}, tr = function(t, e) {
+ t.split(",").forEach(function(r) {
+ let n = At(r);
+ n !== void 0 && n.classes.push(e);
+ });
+}, ys = function(t, e, r) {
+ if (vt().securityLevel !== "loose" || e === void 0)
+ return;
+ let n = [];
+ if (typeof r == "string") {
+ n = r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let a = 0; a < n.length; a++) {
+ let s = n[a].trim();
+ s.charAt(0) === '"' && s.charAt(s.length - 1) === '"' && (s = s.substr(1, s.length - 2)), n[a] = s;
+ }
+ }
+ n.length === 0 && n.push(t), At(t) !== void 0 && er(t, () => {
+ ir.runFunc(e, ...n);
+ });
+}, er = function(t, e) {
+ Re.push(
+ function() {
+ const r = document.querySelector(`[id="${t}"]`);
+ r !== null && r.addEventListener("click", function() {
+ e();
+ });
+ },
+ function() {
+ const r = document.querySelector(`[id="${t}-text"]`);
+ r !== null && r.addEventListener("click", function() {
+ e();
+ });
+ }
+ );
+}, ps = function(t, e, r) {
+ t.split(",").forEach(function(n) {
+ ys(n, e, r);
+ }), tr(t, "clickable");
+}, ks = function(t) {
+ Re.forEach(function(e) {
+ e(t);
+ });
+}, vs = {
+ parseDirective: Ha,
+ getConfig: () => vt().gantt,
+ clear: Pa,
+ setDateFormat: Xa,
+ getDateFormat: es,
+ enableInclusiveEndDates: Ga,
+ endDatesAreInclusive: $a,
+ enableTopAxis: Qa,
+ topAxisEnabled: Ja,
+ setAxisFormat: Va,
+ getAxisFormat: Ra,
+ setTickInterval: Ba,
+ getTickInterval: Za,
+ setTodayMarker: ja,
+ getTodayMarker: qa,
+ setAccTitle: lr,
+ getAccTitle: fr,
+ setDiagramTitle: hr,
+ getDiagramTitle: mr,
+ setDisplayMode: Ka,
+ getDisplayMode: ts,
+ setAccDescription: dr,
+ getAccDescription: gr,
+ addSection: os,
+ getSections: cs,
+ getTasks: us,
+ addTask: ms,
+ findTaskById: At,
+ addTaskOrg: ds,
+ setIncludes: ns,
+ getIncludes: rs,
+ setExcludes: is,
+ getExcludes: as,
+ setClickEvent: ps,
+ setLink: gs,
+ getLinks: ss,
+ bindFunctions: ks,
+ parseDuration: Qn,
+ isInvalidDate: Gn
+};
+function nr(t, e, r) {
+ let n = !0;
+ for (; n; )
+ n = !1, r.forEach(function(i) {
+ const a = "^\\s*" + i + "\\s*$", s = new RegExp(a);
+ t[0].match(s) && (e[i] = !0, t.shift(1), n = !0);
+ });
+}
+const Ts = function() {
+ me.debug("Something is calling, setConf, remove the call");
+}, xs = (t, e) => {
+ let r = [...t].map(() => -1 / 0), n = [...t].sort((a, s) => a.startTime - s.startTime || a.order - s.order), i = 0;
+ for (const a of n)
+ for (let s = 0; s < r.length; s++)
+ if (a.startTime >= r[s]) {
+ r[s] = a.endTime, a.order = s + e, s > i && (i = s);
+ break;
+ }
+ return i;
+};
+let ct;
+const bs = function(t, e, r, n) {
+ const i = vt().gantt, a = vt().securityLevel;
+ let s;
+ a === "sandbox" && (s = Wt("#i" + e));
+ const c = a === "sandbox" ? Wt(s.nodes()[0].contentDocument.body) : Wt("body"), y = a === "sandbox" ? s.nodes()[0].contentDocument : document, f = y.getElementById(e);
+ ct = f.parentElement.offsetWidth, ct === void 0 && (ct = 1200), i.useWidth !== void 0 && (ct = i.useWidth);
+ const x = n.db.getTasks();
+ let p = [];
+ for (const w of x)
+ p.push(w.type);
+ p = U(p);
+ const v = {};
+ let D = 2 * i.topPadding;
+ if (n.db.getDisplayMode() === "compact" || i.displayMode === "compact") {
+ const w = {};
+ for (const g of x)
+ w[g.section] === void 0 ? w[g.section] = [g] : w[g.section].push(g);
+ let h = 0;
+ for (const g of Object.keys(w)) {
+ const u = xs(w[g], h) + 1;
+ h += u, D += u * (i.barHeight + i.barGap), v[g] = u;
+ }
+ } else {
+ D += x.length * (i.barHeight + i.barGap);
+ for (const w of p)
+ v[w] = x.filter((h) => h.type === w).length;
+ }
+ f.setAttribute("viewBox", "0 0 " + ct + " " + D);
+ const z = c.select(`[id="${e}"]`), T = Ua().domain([
+ Sr(x, function(w) {
+ return w.startTime;
+ }),
+ Cr(x, function(w) {
+ return w.endTime;
+ })
+ ]).rangeRound([0, ct - i.leftPadding - i.rightPadding]);
+ function _(w, h) {
+ const g = w.startTime, u = h.startTime;
+ let l = 0;
+ return g > u ? l = 1 : g < u && (l = -1), l;
+ }
+ x.sort(_), I(x, ct, D), ar(z, D, ct, i.useMaxWidth), z.append("text").text(n.db.getDiagramTitle()).attr("x", ct / 2).attr("y", i.titleTopMargin).attr("class", "titleText");
+ function I(w, h, g) {
+ const u = i.barHeight, l = u + i.barGap, b = i.topPadding, o = i.leftPadding, Y = Un().domain([0, p.length]).range(["#00B9FA", "#F95002"]).interpolate(Xr);
+ O(
+ l,
+ b,
+ o,
+ h,
+ g,
+ w,
+ n.db.getExcludes(),
+ n.db.getIncludes()
+ ), V(o, b, h, g), W(w, l, b, o, u, Y, h), P(l, b), C(o, b, h, g);
+ }
+ function W(w, h, g, u, l, b, o) {
+ const m = [...new Set(w.map((k) => k.order))].map((k) => w.find((A) => A.order === k));
+ z.append("g").selectAll("rect").data(m).enter().append("rect").attr("x", 0).attr("y", function(k, A) {
+ return A = k.order, A * h + g - 2;
+ }).attr("width", function() {
+ return o - i.rightPadding / 2;
+ }).attr("height", h).attr("class", function(k) {
+ for (const [A, F] of p.entries())
+ if (k.type === F)
+ return "section section" + A % i.numberSectionStyles;
+ return "section section0";
+ });
+ const Z = z.append("g").selectAll("rect").data(w).enter(), j = n.db.getLinks();
+ if (Z.append("rect").attr("id", function(k) {
+ return k.id;
+ }).attr("rx", 3).attr("ry", 3).attr("x", function(k) {
+ return k.milestone ? T(k.startTime) + u + 0.5 * (T(k.endTime) - T(k.startTime)) - 0.5 * l : T(k.startTime) + u;
+ }).attr("y", function(k, A) {
+ return A = k.order, A * h + g;
+ }).attr("width", function(k) {
+ return k.milestone ? l : T(k.renderEndTime || k.endTime) - T(k.startTime);
+ }).attr("height", l).attr("transform-origin", function(k, A) {
+ return A = k.order, (T(k.startTime) + u + 0.5 * (T(k.endTime) - T(k.startTime))).toString() + "px " + (A * h + g + 0.5 * l).toString() + "px";
+ }).attr("class", function(k) {
+ const A = "task";
+ let F = "";
+ k.classes.length > 0 && (F = k.classes.join(" "));
+ let L = 0;
+ for (const [$, q] of p.entries())
+ k.type === q && (L = $ % i.numberSectionStyles);
+ let H = "";
+ return k.active ? k.crit ? H += " activeCrit" : H = " active" : k.done ? k.crit ? H = " doneCrit" : H = " done" : k.crit && (H += " crit"), H.length === 0 && (H = " task"), k.milestone && (H = " milestone " + H), H += L, H += " " + F, A + H;
+ }), Z.append("text").attr("id", function(k) {
+ return k.id + "-text";
+ }).text(function(k) {
+ return k.task;
+ }).attr("font-size", i.fontSize).attr("x", function(k) {
+ let A = T(k.startTime), F = T(k.renderEndTime || k.endTime);
+ k.milestone && (A += 0.5 * (T(k.endTime) - T(k.startTime)) - 0.5 * l), k.milestone && (F = A + l);
+ const L = this.getBBox().width;
+ return L > F - A ? F + L + 1.5 * i.leftPadding > o ? A + u - 5 : F + u + 5 : (F - A) / 2 + A + u;
+ }).attr("y", function(k, A) {
+ return A = k.order, A * h + i.barHeight / 2 + (i.fontSize / 2 - 2) + g;
+ }).attr("text-height", l).attr("class", function(k) {
+ const A = T(k.startTime);
+ let F = T(k.endTime);
+ k.milestone && (F = A + l);
+ const L = this.getBBox().width;
+ let H = "";
+ k.classes.length > 0 && (H = k.classes.join(" "));
+ let $ = 0;
+ for (const [ht, G] of p.entries())
+ k.type === G && ($ = ht % i.numberSectionStyles);
+ let q = "";
+ return k.active && (k.crit ? q = "activeCritText" + $ : q = "activeText" + $), k.done ? k.crit ? q = q + " doneCritText" + $ : q = q + " doneText" + $ : k.crit && (q = q + " critText" + $), k.milestone && (q += " milestoneText"), L > F - A ? F + L + 1.5 * i.leftPadding > o ? H + " taskTextOutsideLeft taskTextOutside" + $ + " " + q : H + " taskTextOutsideRight taskTextOutside" + $ + " " + q + " width-" + L : H + " taskText taskText" + $ + " " + q + " width-" + L;
+ }), vt().securityLevel === "sandbox") {
+ let k;
+ k = Wt("#i" + e);
+ const A = k.nodes()[0].contentDocument;
+ Z.filter(function(F) {
+ return j[F.id] !== void 0;
+ }).each(function(F) {
+ var L = A.querySelector("#" + F.id), H = A.querySelector("#" + F.id + "-text");
+ const $ = L.parentNode;
+ var q = A.createElement("a");
+ q.setAttribute("xlink:href", j[F.id]), q.setAttribute("target", "_top"), $.appendChild(q), q.appendChild(L), q.appendChild(H);
+ });
+ }
+ }
+ function O(w, h, g, u, l, b, o, Y) {
+ const m = b.reduce(
+ (L, { startTime: H }) => L ? Math.min(L, H) : H,
+ 0
+ ), Z = b.reduce((L, { endTime: H }) => L ? Math.max(L, H) : H, 0), j = n.db.getDateFormat();
+ if (!m || !Z)
+ return;
+ const B = [];
+ let k = null, A = nt(m);
+ for (; A.valueOf() <= Z; )
+ n.db.isInvalidDate(A, j, o, Y) ? k ? k.end = A : k = {
+ start: A,
+ end: A
+ } : k && (B.push(k), k = null), A = A.add(1, "d");
+ z.append("g").selectAll("rect").data(B).enter().append("rect").attr("id", function(L) {
+ return "exclude-" + L.start.format("YYYY-MM-DD");
+ }).attr("x", function(L) {
+ return T(L.start) + g;
+ }).attr("y", i.gridLineStartPadding).attr("width", function(L) {
+ const H = L.end.add(1, "day");
+ return T(H) - T(L.start);
+ }).attr("height", l - h - i.gridLineStartPadding).attr("transform-origin", function(L, H) {
+ return (T(L.start) + g + 0.5 * (T(L.end) - T(L.start))).toString() + "px " + (H * w + 0.5 * l).toString() + "px";
+ }).attr("class", "exclude-range");
+ }
+ function V(w, h, g, u) {
+ let l = Ir(T).tickSize(-u + h + i.gridLineStartPadding).tickFormat(Kt(n.db.getAxisFormat() || i.axisFormat || "%Y-%m-%d"));
+ const o = /^([1-9]\d*)(minute|hour|day|week|month)$/.exec(
+ n.db.getTickInterval() || i.tickInterval
+ );
+ if (o !== null) {
+ const Y = o[1];
+ switch (o[2]) {
+ case "minute":
+ l.ticks(Xt.every(Y));
+ break;
+ case "hour":
+ l.ticks(Gt.every(Y));
+ break;
+ case "day":
+ l.ticks(Mt.every(Y));
+ break;
+ case "week":
+ l.ticks(wt.every(Y));
+ break;
+ case "month":
+ l.ticks(Qt.every(Y));
+ break;
+ }
+ }
+ if (z.append("g").attr("class", "grid").attr("transform", "translate(" + w + ", " + (u - 50) + ")").call(l).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em"), n.db.topAxisEnabled() || i.topAxis) {
+ let Y = Er(T).tickSize(-u + h + i.gridLineStartPadding).tickFormat(Kt(n.db.getAxisFormat() || i.axisFormat || "%Y-%m-%d"));
+ if (o !== null) {
+ const m = o[1];
+ switch (o[2]) {
+ case "minute":
+ Y.ticks(Xt.every(m));
+ break;
+ case "hour":
+ Y.ticks(Gt.every(m));
+ break;
+ case "day":
+ Y.ticks(Mt.every(m));
+ break;
+ case "week":
+ Y.ticks(wt.every(m));
+ break;
+ case "month":
+ Y.ticks(Qt.every(m));
+ break;
+ }
+ }
+ z.append("g").attr("class", "grid").attr("transform", "translate(" + w + ", " + h + ")").call(Y).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10);
+ }
+ }
+ function P(w, h) {
+ let g = 0;
+ const u = Object.keys(v).map((l) => [l, v[l]]);
+ z.append("g").selectAll("text").data(u).enter().append(function(l) {
+ const b = l[0].split(pr.lineBreakRegex), o = -(b.length - 1) / 2, Y = y.createElementNS("http://www.w3.org/2000/svg", "text");
+ Y.setAttribute("dy", o + "em");
+ for (const [m, Z] of b.entries()) {
+ const j = y.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ j.setAttribute("alignment-baseline", "central"), j.setAttribute("x", "10"), m > 0 && j.setAttribute("dy", "1em"), j.textContent = Z, Y.appendChild(j);
+ }
+ return Y;
+ }).attr("x", 10).attr("y", function(l, b) {
+ if (b > 0)
+ for (let o = 0; o < b; o++)
+ return g += u[b - 1][1], l[1] * w / 2 + g * w + h;
+ else
+ return l[1] * w / 2 + h;
+ }).attr("font-size", i.sectionFontSize).attr("class", function(l) {
+ for (const [b, o] of p.entries())
+ if (l[0] === o)
+ return "sectionTitle sectionTitle" + b % i.numberSectionStyles;
+ return "sectionTitle";
+ });
+ }
+ function C(w, h, g, u) {
+ const l = n.db.getTodayMarker();
+ if (l === "off")
+ return;
+ const b = z.append("g").attr("class", "today"), o = new Date(), Y = b.append("line");
+ Y.attr("x1", T(o) + w).attr("x2", T(o) + w).attr("y1", i.titleTopMargin).attr("y2", u - i.titleTopMargin).attr("class", "today"), l !== "" && Y.attr("style", l.replace(/,/g, ";"));
+ }
+ function U(w) {
+ const h = {}, g = [];
+ for (let u = 0, l = w.length; u < l; ++u)
+ Object.prototype.hasOwnProperty.call(h, w[u]) || (h[w[u]] = !0, g.push(w[u]));
+ return g;
+ }
+}, Ms = {
+ setConf: Ts,
+ draw: bs
+}, ws = (t) => `
+ .mermaid-main-font {
+ font-family: "trebuchet ms", verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+ .exclude-range {
+ fill: ${t.excludeBkgColor};
+ }
+
+ .section {
+ stroke: none;
+ opacity: 0.2;
+ }
+
+ .section0 {
+ fill: ${t.sectionBkgColor};
+ }
+
+ .section2 {
+ fill: ${t.sectionBkgColor2};
+ }
+
+ .section1,
+ .section3 {
+ fill: ${t.altSectionBkgColor};
+ opacity: 0.2;
+ }
+
+ .sectionTitle0 {
+ fill: ${t.titleColor};
+ }
+
+ .sectionTitle1 {
+ fill: ${t.titleColor};
+ }
+
+ .sectionTitle2 {
+ fill: ${t.titleColor};
+ }
+
+ .sectionTitle3 {
+ fill: ${t.titleColor};
+ }
+
+ .sectionTitle {
+ text-anchor: start;
+ // font-size: ${t.ganttFontSize};
+ // text-height: 14px;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+
+ }
+
+
+ /* Grid and axis */
+
+ .grid .tick {
+ stroke: ${t.gridColor};
+ opacity: 0.8;
+ shape-rendering: crispEdges;
+ text {
+ font-family: ${t.fontFamily};
+ fill: ${t.textColor};
+ }
+ }
+
+ .grid path {
+ stroke-width: 0;
+ }
+
+
+ /* Today line */
+
+ .today {
+ fill: none;
+ stroke: ${t.todayLineColor};
+ stroke-width: 2px;
+ }
+
+
+ /* Task styling */
+
+ /* Default task */
+
+ .task {
+ stroke-width: 2;
+ }
+
+ .taskText {
+ text-anchor: middle;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+
+ // .taskText:not([font-size]) {
+ // font-size: ${t.ganttFontSize};
+ // }
+
+ .taskTextOutsideRight {
+ fill: ${t.taskTextDarkColor};
+ text-anchor: start;
+ // font-size: ${t.ganttFontSize};
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+
+ }
+
+ .taskTextOutsideLeft {
+ fill: ${t.taskTextDarkColor};
+ text-anchor: end;
+ // font-size: ${t.ganttFontSize};
+ }
+
+ /* Special case clickable */
+ .task.clickable {
+ cursor: pointer;
+ }
+ .taskText.clickable {
+ cursor: pointer;
+ fill: ${t.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ .taskTextOutsideLeft.clickable {
+ cursor: pointer;
+ fill: ${t.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ .taskTextOutsideRight.clickable {
+ cursor: pointer;
+ fill: ${t.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ /* Specific task settings for the sections*/
+
+ .taskText0,
+ .taskText1,
+ .taskText2,
+ .taskText3 {
+ fill: ${t.taskTextColor};
+ }
+
+ .task0,
+ .task1,
+ .task2,
+ .task3 {
+ fill: ${t.taskBkgColor};
+ stroke: ${t.taskBorderColor};
+ }
+
+ .taskTextOutside0,
+ .taskTextOutside2
+ {
+ fill: ${t.taskTextOutsideColor};
+ }
+
+ .taskTextOutside1,
+ .taskTextOutside3 {
+ fill: ${t.taskTextOutsideColor};
+ }
+
+
+ /* Active task */
+
+ .active0,
+ .active1,
+ .active2,
+ .active3 {
+ fill: ${t.activeTaskBkgColor};
+ stroke: ${t.activeTaskBorderColor};
+ }
+
+ .activeText0,
+ .activeText1,
+ .activeText2,
+ .activeText3 {
+ fill: ${t.taskTextDarkColor} !important;
+ }
+
+
+ /* Completed task */
+
+ .done0,
+ .done1,
+ .done2,
+ .done3 {
+ stroke: ${t.doneTaskBorderColor};
+ fill: ${t.doneTaskBkgColor};
+ stroke-width: 2;
+ }
+
+ .doneText0,
+ .doneText1,
+ .doneText2,
+ .doneText3 {
+ fill: ${t.taskTextDarkColor} !important;
+ }
+
+
+ /* Tasks on the critical line */
+
+ .crit0,
+ .crit1,
+ .crit2,
+ .crit3 {
+ stroke: ${t.critBorderColor};
+ fill: ${t.critBkgColor};
+ stroke-width: 2;
+ }
+
+ .activeCrit0,
+ .activeCrit1,
+ .activeCrit2,
+ .activeCrit3 {
+ stroke: ${t.critBorderColor};
+ fill: ${t.activeTaskBkgColor};
+ stroke-width: 2;
+ }
+
+ .doneCrit0,
+ .doneCrit1,
+ .doneCrit2,
+ .doneCrit3 {
+ stroke: ${t.critBorderColor};
+ fill: ${t.doneTaskBkgColor};
+ 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: ${t.taskTextDarkColor} !important;
+ }
+
+ .activeCritText0,
+ .activeCritText1,
+ .activeCritText2,
+ .activeCritText3 {
+ fill: ${t.taskTextDarkColor} !important;
+ }
+
+ .titleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${t.textColor} ;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+`, Ds = ws, Fs = {
+ parser: La,
+ db: vs,
+ renderer: Ms,
+ styles: Ds
+};
+export {
+ Fs as diagram
+};
+//# sourceMappingURL=ganttDiagram-6b6599ba.js.map
diff --git a/scopegraphs-render-docs/doc/js/gitGraphDiagram-0a645df6.js b/scopegraphs-render-docs/doc/js/gitGraphDiagram-0a645df6.js
new file mode 100644
index 0000000..48ee2e1
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/gitGraphDiagram-0a645df6.js
@@ -0,0 +1,1685 @@
+import { g as getConfig, o as setAccTitle, p as getAccTitle, q as getAccDescription, v as setAccDescription, w as setDiagramTitle, x as getDiagramTitle, l as log, e as common, y as clear$2 } from "./commonDb-573409be.js";
+import { q as random, t as getConfig$1, u as utils, v as setupGraphViewbox } from "./utils-d622194a.js";
+import { m as mermaidAPI } from "./mermaidAPI-3ae0f2f0.js";
+import { select } from "d3";
+import "dompurify";
+import "dayjs";
+import "khroma";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+import "stylis";
+import "lodash-es/isEmpty.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 4], $V1 = [1, 7], $V2 = [1, 5], $V3 = [1, 9], $V4 = [1, 6], $V5 = [2, 6], $V6 = [1, 16], $V7 = [6, 8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40, 50, 55], $V8 = [8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], $V9 = [8, 13, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], $Va = [1, 26], $Vb = [6, 8, 14, 50, 55], $Vc = [8, 14, 55], $Vd = [1, 53], $Ve = [1, 52], $Vf = [8, 14, 30, 33, 35, 38, 55], $Vg = [1, 67], $Vh = [1, 68], $Vi = [1, 69], $Vj = [8, 14, 33, 35, 42, 55];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "eol": 4, "directive": 5, "GG": 6, "document": 7, "EOF": 8, ":": 9, "DIR": 10, "options": 11, "body": 12, "OPT": 13, "NL": 14, "line": 15, "statement": 16, "commitStatement": 17, "mergeStatement": 18, "cherryPickStatement": 19, "acc_title": 20, "acc_title_value": 21, "acc_descr": 22, "acc_descr_value": 23, "acc_descr_multiline_value": 24, "section": 25, "branchStatement": 26, "CHECKOUT": 27, "ref": 28, "BRANCH": 29, "ORDER": 30, "NUM": 31, "CHERRY_PICK": 32, "COMMIT_ID": 33, "STR": 34, "COMMIT_TAG": 35, "EMPTYSTR": 36, "MERGE": 37, "COMMIT_TYPE": 38, "commitType": 39, "COMMIT": 40, "commit_arg": 41, "COMMIT_MSG": 42, "NORMAL": 43, "REVERSE": 44, "HIGHLIGHT": 45, "openDirective": 46, "typeDirective": 47, "closeDirective": 48, "argDirective": 49, "open_directive": 50, "type_directive": 51, "arg_directive": 52, "close_directive": 53, "ID": 54, ";": 55, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 6: "GG", 8: "EOF", 9: ":", 10: "DIR", 13: "OPT", 14: "NL", 20: "acc_title", 21: "acc_title_value", 22: "acc_descr", 23: "acc_descr_value", 24: "acc_descr_multiline_value", 25: "section", 27: "CHECKOUT", 29: "BRANCH", 30: "ORDER", 31: "NUM", 32: "CHERRY_PICK", 33: "COMMIT_ID", 34: "STR", 35: "COMMIT_TAG", 36: "EMPTYSTR", 37: "MERGE", 38: "COMMIT_TYPE", 40: "COMMIT", 42: "COMMIT_MSG", 43: "NORMAL", 44: "REVERSE", 45: "HIGHLIGHT", 50: "open_directive", 51: "type_directive", 52: "arg_directive", 53: "close_directive", 54: "ID", 55: ";" },
+ productions_: [0, [3, 2], [3, 2], [3, 3], [3, 4], [3, 5], [7, 0], [7, 2], [11, 2], [11, 1], [12, 0], [12, 2], [15, 2], [15, 1], [16, 1], [16, 1], [16, 1], [16, 2], [16, 2], [16, 1], [16, 1], [16, 1], [16, 2], [26, 2], [26, 4], [19, 3], [19, 5], [19, 5], [19, 5], [19, 5], [18, 2], [18, 4], [18, 4], [18, 4], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [17, 2], [17, 3], [17, 3], [17, 5], [17, 5], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [41, 0], [41, 1], [39, 1], [39, 1], [39, 1], [5, 3], [5, 5], [46, 1], [47, 1], [49, 1], [48, 1], [28, 1], [28, 1], [4, 1], [4, 1], [4, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 3:
+ return $$[$0];
+ case 4:
+ return $$[$0 - 1];
+ case 5:
+ yy.setDirection($$[$0 - 3]);
+ return $$[$0 - 1];
+ case 7:
+ yy.setOptions($$[$0 - 1]);
+ this.$ = $$[$0];
+ break;
+ case 8:
+ $$[$0 - 1] += $$[$0];
+ this.$ = $$[$0 - 1];
+ break;
+ case 10:
+ this.$ = [];
+ break;
+ case 11:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 12:
+ this.$ = $$[$0 - 1];
+ break;
+ case 17:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 18:
+ case 19:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 20:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 22:
+ yy.checkout($$[$0]);
+ break;
+ case 23:
+ yy.branch($$[$0]);
+ break;
+ case 24:
+ yy.branch($$[$0 - 2], $$[$0]);
+ break;
+ case 25:
+ yy.cherryPick($$[$0], "", void 0);
+ break;
+ case 26:
+ yy.cherryPick($$[$0 - 2], "", $$[$0]);
+ break;
+ case 27:
+ case 29:
+ yy.cherryPick($$[$0 - 2], "", "");
+ break;
+ case 28:
+ yy.cherryPick($$[$0], "", $$[$0 - 2]);
+ break;
+ case 30:
+ yy.merge($$[$0], "", "", "");
+ break;
+ case 31:
+ yy.merge($$[$0 - 2], $$[$0], "", "");
+ break;
+ case 32:
+ yy.merge($$[$0 - 2], "", $$[$0], "");
+ break;
+ case 33:
+ yy.merge($$[$0 - 2], "", "", $$[$0]);
+ break;
+ case 34:
+ yy.merge($$[$0 - 4], $$[$0], "", $$[$0 - 2]);
+ break;
+ case 35:
+ yy.merge($$[$0 - 4], "", $$[$0], $$[$0 - 2]);
+ break;
+ case 36:
+ yy.merge($$[$0 - 4], "", $$[$0 - 2], $$[$0]);
+ break;
+ case 37:
+ yy.merge($$[$0 - 4], $$[$0 - 2], $$[$0], "");
+ break;
+ case 38:
+ yy.merge($$[$0 - 4], $$[$0 - 2], "", $$[$0]);
+ break;
+ case 39:
+ yy.merge($$[$0 - 4], $$[$0], $$[$0 - 2], "");
+ break;
+ case 40:
+ yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);
+ break;
+ case 41:
+ yy.merge($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);
+ break;
+ case 42:
+ yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);
+ break;
+ case 43:
+ yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);
+ break;
+ case 44:
+ yy.merge($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);
+ break;
+ case 45:
+ yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);
+ break;
+ case 46:
+ yy.commit($$[$0]);
+ break;
+ case 47:
+ yy.commit("", "", yy.commitType.NORMAL, $$[$0]);
+ break;
+ case 48:
+ yy.commit("", "", $$[$0], "");
+ break;
+ case 49:
+ yy.commit("", "", $$[$0], $$[$0 - 2]);
+ break;
+ case 50:
+ yy.commit("", "", $$[$0 - 2], $$[$0]);
+ break;
+ case 51:
+ yy.commit("", $$[$0], yy.commitType.NORMAL, "");
+ break;
+ case 52:
+ yy.commit("", $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);
+ break;
+ case 53:
+ yy.commit("", $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);
+ break;
+ case 54:
+ yy.commit("", $$[$0 - 2], $$[$0], "");
+ break;
+ case 55:
+ yy.commit("", $$[$0], $$[$0 - 2], "");
+ break;
+ case 56:
+ yy.commit("", $$[$0 - 4], $$[$0 - 2], $$[$0]);
+ break;
+ case 57:
+ yy.commit("", $$[$0 - 4], $$[$0], $$[$0 - 2]);
+ break;
+ case 58:
+ yy.commit("", $$[$0 - 2], $$[$0 - 4], $$[$0]);
+ break;
+ case 59:
+ yy.commit("", $$[$0], $$[$0 - 4], $$[$0 - 2]);
+ break;
+ case 60:
+ yy.commit("", $$[$0], $$[$0 - 2], $$[$0 - 4]);
+ break;
+ case 61:
+ yy.commit("", $$[$0 - 2], $$[$0], $$[$0 - 4]);
+ break;
+ case 62:
+ yy.commit($$[$0], "", yy.commitType.NORMAL, "");
+ break;
+ case 63:
+ yy.commit($$[$0], "", yy.commitType.NORMAL, $$[$0 - 2]);
+ break;
+ case 64:
+ yy.commit($$[$0 - 2], "", yy.commitType.NORMAL, $$[$0]);
+ break;
+ case 65:
+ yy.commit($$[$0 - 2], "", $$[$0], "");
+ break;
+ case 66:
+ yy.commit($$[$0], "", $$[$0 - 2], "");
+ break;
+ case 67:
+ yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, "");
+ break;
+ case 68:
+ yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, "");
+ break;
+ case 69:
+ yy.commit($$[$0 - 4], "", $$[$0 - 2], $$[$0]);
+ break;
+ case 70:
+ yy.commit($$[$0 - 4], "", $$[$0], $$[$0 - 2]);
+ break;
+ case 71:
+ yy.commit($$[$0 - 2], "", $$[$0 - 4], $$[$0]);
+ break;
+ case 72:
+ yy.commit($$[$0], "", $$[$0 - 4], $$[$0 - 2]);
+ break;
+ case 73:
+ yy.commit($$[$0], "", $$[$0 - 2], $$[$0 - 4]);
+ break;
+ case 74:
+ yy.commit($$[$0 - 2], "", $$[$0], $$[$0 - 4]);
+ break;
+ case 75:
+ yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], "");
+ break;
+ case 76:
+ yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], "");
+ break;
+ case 77:
+ yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], "");
+ break;
+ case 78:
+ yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], "");
+ break;
+ case 79:
+ yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], "");
+ break;
+ case 80:
+ yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], "");
+ break;
+ case 81:
+ yy.commit($$[$0 - 4], $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);
+ break;
+ case 82:
+ yy.commit($$[$0 - 4], $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);
+ break;
+ case 83:
+ yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, $$[$0 - 4]);
+ break;
+ case 84:
+ yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, $$[$0 - 4]);
+ break;
+ case 85:
+ yy.commit($$[$0], $$[$0 - 4], yy.commitType.NORMAL, $$[$0 - 2]);
+ break;
+ case 86:
+ yy.commit($$[$0 - 2], $$[$0 - 4], yy.commitType.NORMAL, $$[$0]);
+ break;
+ case 87:
+ yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);
+ break;
+ case 88:
+ yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);
+ break;
+ case 89:
+ yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);
+ break;
+ case 90:
+ yy.commit($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);
+ break;
+ case 91:
+ yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);
+ break;
+ case 92:
+ yy.commit($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);
+ break;
+ case 93:
+ yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0 - 2], $$[$0]);
+ break;
+ case 94:
+ yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0], $$[$0 - 2]);
+ break;
+ case 95:
+ yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0 - 4], $$[$0]);
+ break;
+ case 96:
+ yy.commit($$[$0], $$[$0 - 6], $$[$0 - 4], $$[$0 - 2]);
+ break;
+ case 97:
+ yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0], $$[$0 - 4]);
+ break;
+ case 98:
+ yy.commit($$[$0], $$[$0 - 6], $$[$0 - 2], $$[$0 - 4]);
+ break;
+ case 99:
+ yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], $$[$0 - 6]);
+ break;
+ case 100:
+ yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], $$[$0 - 6]);
+ break;
+ case 101:
+ yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], $$[$0 - 6]);
+ break;
+ case 102:
+ yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], $$[$0 - 6]);
+ break;
+ case 103:
+ yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], $$[$0 - 6]);
+ break;
+ case 104:
+ yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 6]);
+ break;
+ case 105:
+ yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0 - 6], $$[$0]);
+ break;
+ case 106:
+ yy.commit($$[$0], $$[$0 - 4], $$[$0 - 6], $$[$0 - 2]);
+ break;
+ case 107:
+ yy.commit($$[$0 - 2], $$[$0], $$[$0 - 6], $$[$0 - 4]);
+ break;
+ case 108:
+ yy.commit($$[$0], $$[$0 - 2], $$[$0 - 6], $$[$0 - 4]);
+ break;
+ case 109:
+ yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0 - 6], $$[$0]);
+ break;
+ case 110:
+ yy.commit($$[$0 - 4], $$[$0], $$[$0 - 6], $$[$0 - 2]);
+ break;
+ case 111:
+ this.$ = "";
+ break;
+ case 112:
+ this.$ = $$[$0];
+ break;
+ case 113:
+ this.$ = yy.commitType.NORMAL;
+ break;
+ case 114:
+ this.$ = yy.commitType.REVERSE;
+ break;
+ case 115:
+ this.$ = yy.commitType.HIGHLIGHT;
+ break;
+ case 118:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 119:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 120:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 121:
+ yy.parseDirective("}%%", "close_directive", "gitGraph");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 3: 11, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 7: 12, 8: $V5, 9: [1, 13], 10: [1, 14], 11: 15, 14: $V6 }, o($V7, [2, 124]), o($V7, [2, 125]), o($V7, [2, 126]), { 47: 17, 51: [1, 18] }, { 51: [2, 118] }, { 1: [2, 1] }, { 1: [2, 2] }, { 8: [1, 19] }, { 7: 20, 8: $V5, 11: 15, 14: $V6 }, { 9: [1, 21] }, o($V8, [2, 10], { 12: 22, 13: [1, 23] }), o($V9, [2, 9]), { 9: [1, 25], 48: 24, 53: $Va }, o([9, 53], [2, 119]), { 1: [2, 3] }, { 8: [1, 27] }, { 7: 28, 8: $V5, 11: 15, 14: $V6 }, { 8: [2, 7], 14: [1, 31], 15: 29, 16: 30, 17: 32, 18: 33, 19: 34, 20: [1, 35], 22: [1, 36], 24: [1, 37], 25: [1, 38], 26: 39, 27: [1, 40], 29: [1, 44], 32: [1, 43], 37: [1, 42], 40: [1, 41] }, o($V9, [2, 8]), o($Vb, [2, 116]), { 49: 45, 52: [1, 46] }, o($Vb, [2, 121]), { 1: [2, 4] }, { 8: [1, 47] }, o($V8, [2, 11]), { 4: 48, 8: $V1, 14: $V2, 55: $V4 }, o($V8, [2, 13]), o($Vc, [2, 14]), o($Vc, [2, 15]), o($Vc, [2, 16]), { 21: [1, 49] }, { 23: [1, 50] }, o($Vc, [2, 19]), o($Vc, [2, 20]), o($Vc, [2, 21]), { 28: 51, 34: $Vd, 54: $Ve }, o($Vc, [2, 111], { 41: 54, 33: [1, 57], 34: [1, 59], 35: [1, 55], 38: [1, 56], 42: [1, 58] }), { 28: 60, 34: $Vd, 54: $Ve }, { 33: [1, 61], 35: [1, 62] }, { 28: 63, 34: $Vd, 54: $Ve }, { 48: 64, 53: $Va }, { 53: [2, 120] }, { 1: [2, 5] }, o($V8, [2, 12]), o($Vc, [2, 17]), o($Vc, [2, 18]), o($Vc, [2, 22]), o($Vf, [2, 122]), o($Vf, [2, 123]), o($Vc, [2, 46]), { 34: [1, 65] }, { 39: 66, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 70] }, { 34: [1, 71] }, o($Vc, [2, 112]), o($Vc, [2, 30], { 33: [1, 72], 35: [1, 74], 38: [1, 73] }), { 34: [1, 75] }, { 34: [1, 76], 36: [1, 77] }, o($Vc, [2, 23], { 30: [1, 78] }), o($Vb, [2, 117]), o($Vc, [2, 47], { 33: [1, 80], 38: [1, 79], 42: [1, 81] }), o($Vc, [2, 48], { 33: [1, 83], 35: [1, 82], 42: [1, 84] }), o($Vj, [2, 113]), o($Vj, [2, 114]), o($Vj, [2, 115]), o($Vc, [2, 51], { 35: [1, 85], 38: [1, 86], 42: [1, 87] }), o($Vc, [2, 62], { 33: [1, 90], 35: [1, 88], 38: [1, 89] }), { 34: [1, 91] }, { 39: 92, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 93] }, o($Vc, [2, 25], { 35: [1, 94] }), { 33: [1, 95] }, { 33: [1, 96] }, { 31: [1, 97] }, { 39: 98, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 99] }, { 34: [1, 100] }, { 34: [1, 101] }, { 34: [1, 102] }, { 34: [1, 103] }, { 34: [1, 104] }, { 39: 105, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 106] }, { 34: [1, 107] }, { 39: 108, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 109] }, o($Vc, [2, 31], { 35: [1, 111], 38: [1, 110] }), o($Vc, [2, 32], { 33: [1, 113], 35: [1, 112] }), o($Vc, [2, 33], { 33: [1, 114], 38: [1, 115] }), { 34: [1, 116], 36: [1, 117] }, { 34: [1, 118] }, { 34: [1, 119] }, o($Vc, [2, 24]), o($Vc, [2, 49], { 33: [1, 120], 42: [1, 121] }), o($Vc, [2, 53], { 38: [1, 122], 42: [1, 123] }), o($Vc, [2, 63], { 33: [1, 125], 38: [1, 124] }), o($Vc, [2, 50], { 33: [1, 126], 42: [1, 127] }), o($Vc, [2, 55], { 35: [1, 128], 42: [1, 129] }), o($Vc, [2, 66], { 33: [1, 131], 35: [1, 130] }), o($Vc, [2, 52], { 38: [1, 132], 42: [1, 133] }), o($Vc, [2, 54], { 35: [1, 134], 42: [1, 135] }), o($Vc, [2, 67], { 35: [1, 137], 38: [1, 136] }), o($Vc, [2, 64], { 33: [1, 139], 38: [1, 138] }), o($Vc, [2, 65], { 33: [1, 141], 35: [1, 140] }), o($Vc, [2, 68], { 35: [1, 143], 38: [1, 142] }), { 39: 144, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 145] }, { 34: [1, 146] }, { 34: [1, 147] }, { 34: [1, 148] }, { 39: 149, 43: $Vg, 44: $Vh, 45: $Vi }, o($Vc, [2, 26]), o($Vc, [2, 27]), o($Vc, [2, 28]), o($Vc, [2, 29]), { 34: [1, 150] }, { 34: [1, 151] }, { 39: 152, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 153] }, { 39: 154, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 155] }, { 34: [1, 156] }, { 34: [1, 157] }, { 34: [1, 158] }, { 34: [1, 159] }, { 34: [1, 160] }, { 34: [1, 161] }, { 39: 162, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 163] }, { 34: [1, 164] }, { 34: [1, 165] }, { 39: 166, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 167] }, { 39: 168, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 169] }, { 34: [1, 170] }, { 34: [1, 171] }, { 39: 172, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 173] }, o($Vc, [2, 37], { 35: [1, 174] }), o($Vc, [2, 38], { 38: [1, 175] }), o($Vc, [2, 36], { 33: [1, 176] }), o($Vc, [2, 39], { 35: [1, 177] }), o($Vc, [2, 34], { 38: [1, 178] }), o($Vc, [2, 35], { 33: [1, 179] }), o($Vc, [2, 60], { 42: [1, 180] }), o($Vc, [2, 73], { 33: [1, 181] }), o($Vc, [2, 61], { 42: [1, 182] }), o($Vc, [2, 84], { 38: [1, 183] }), o($Vc, [2, 74], { 33: [1, 184] }), o($Vc, [2, 83], { 38: [1, 185] }), o($Vc, [2, 59], { 42: [1, 186] }), o($Vc, [2, 72], { 33: [1, 187] }), o($Vc, [2, 58], { 42: [1, 188] }), o($Vc, [2, 78], { 35: [1, 189] }), o($Vc, [2, 71], { 33: [1, 190] }), o($Vc, [2, 77], { 35: [1, 191] }), o($Vc, [2, 57], { 42: [1, 192] }), o($Vc, [2, 85], { 38: [1, 193] }), o($Vc, [2, 56], { 42: [1, 194] }), o($Vc, [2, 79], { 35: [1, 195] }), o($Vc, [2, 80], { 35: [1, 196] }), o($Vc, [2, 86], { 38: [1, 197] }), o($Vc, [2, 70], { 33: [1, 198] }), o($Vc, [2, 81], { 38: [1, 199] }), o($Vc, [2, 69], { 33: [1, 200] }), o($Vc, [2, 75], { 35: [1, 201] }), o($Vc, [2, 76], { 35: [1, 202] }), o($Vc, [2, 82], { 38: [1, 203] }), { 34: [1, 204] }, { 39: 205, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 206] }, { 34: [1, 207] }, { 39: 208, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 209] }, { 34: [1, 210] }, { 34: [1, 211] }, { 34: [1, 212] }, { 39: 213, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 214] }, { 39: 215, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 216] }, { 34: [1, 217] }, { 34: [1, 218] }, { 34: [1, 219] }, { 34: [1, 220] }, { 34: [1, 221] }, { 34: [1, 222] }, { 39: 223, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 224] }, { 34: [1, 225] }, { 34: [1, 226] }, { 39: 227, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 228] }, { 39: 229, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 230] }, { 34: [1, 231] }, { 34: [1, 232] }, { 39: 233, 43: $Vg, 44: $Vh, 45: $Vi }, o($Vc, [2, 40]), o($Vc, [2, 42]), o($Vc, [2, 41]), o($Vc, [2, 43]), o($Vc, [2, 45]), o($Vc, [2, 44]), o($Vc, [2, 101]), o($Vc, [2, 102]), o($Vc, [2, 99]), o($Vc, [2, 100]), o($Vc, [2, 104]), o($Vc, [2, 103]), o($Vc, [2, 108]), o($Vc, [2, 107]), o($Vc, [2, 106]), o($Vc, [2, 105]), o($Vc, [2, 110]), o($Vc, [2, 109]), o($Vc, [2, 98]), o($Vc, [2, 97]), o($Vc, [2, 96]), o($Vc, [2, 95]), o($Vc, [2, 93]), o($Vc, [2, 94]), o($Vc, [2, 92]), o($Vc, [2, 91]), o($Vc, [2, 90]), o($Vc, [2, 89]), o($Vc, [2, 87]), o($Vc, [2, 88])],
+ defaultActions: { 9: [2, 118], 10: [2, 1], 11: [2, 2], 19: [2, 3], 27: [2, 4], 46: [2, 120], 47: [2, 5] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 50;
+ case 1:
+ this.begin("type_directive");
+ return 51;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 9;
+ case 3:
+ this.popState();
+ this.popState();
+ return 53;
+ case 4:
+ return 52;
+ case 5:
+ this.begin("acc_title");
+ return 20;
+ case 6:
+ this.popState();
+ return "acc_title_value";
+ case 7:
+ this.begin("acc_descr");
+ return 22;
+ case 8:
+ this.popState();
+ return "acc_descr_value";
+ case 9:
+ this.begin("acc_descr_multiline");
+ break;
+ case 10:
+ this.popState();
+ break;
+ case 11:
+ return "acc_descr_multiline_value";
+ case 12:
+ return 14;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ return 6;
+ case 16:
+ return 40;
+ case 17:
+ return 33;
+ case 18:
+ return 38;
+ case 19:
+ return 42;
+ case 20:
+ return 43;
+ case 21:
+ return 44;
+ case 22:
+ return 45;
+ case 23:
+ return 35;
+ case 24:
+ return 29;
+ case 25:
+ return 30;
+ case 26:
+ return 37;
+ case 27:
+ return 32;
+ case 28:
+ return 27;
+ case 29:
+ return 10;
+ case 30:
+ return 10;
+ case 31:
+ return 9;
+ case 32:
+ return "CARET";
+ case 33:
+ this.begin("options");
+ break;
+ case 34:
+ this.popState();
+ break;
+ case 35:
+ return 13;
+ case 36:
+ return 36;
+ case 37:
+ this.begin("string");
+ break;
+ case 38:
+ this.popState();
+ break;
+ case 39:
+ return 34;
+ case 40:
+ return 31;
+ case 41:
+ return 54;
+ case 42:
+ return 8;
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gitGraph\b)/i, /^(?:commit(?=\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\b)/i, /^(?:REVERSE\b)/i, /^(?:HIGHLIGHT\b)/i, /^(?:tag:)/i, /^(?:branch(?=\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\s|$))/i, /^(?:cherry-pick(?=\s|$))/i, /^(?:checkout(?=\s|$))/i, /^(?:LR\b)/i, /^(?:BT\b)/i, /^(?::)/i, /^(?:\^)/i, /^(?:options\r?\n)/i, /^(?:[ \r\n\t]+end\b)/i, /^(?:[\s\S]+(?=[ \r\n\t]+end))/i, /^(?:["]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[0-9]+(?=\s|$))/i, /^(?:\w([-\./\w]*[-\w])?)/i, /^(?:$)/i, /^(?:\s+)/i],
+ conditions: { "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "options": { "rules": [34, 35], "inclusive": false }, "string": { "rules": [38, 39], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 40, 41, 42, 43], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const gitGraphParser = parser;
+let mainBranchName = getConfig().gitGraph.mainBranchName;
+let mainBranchOrder = getConfig().gitGraph.mainBranchOrder;
+let commits = {};
+let head = null;
+let branchesConfig = {};
+branchesConfig[mainBranchName] = { name: mainBranchName, order: mainBranchOrder };
+let branches = {};
+branches[mainBranchName] = head;
+let curBranch = mainBranchName;
+let direction = "LR";
+let seq = 0;
+function getId() {
+ return random({ length: 7 });
+}
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+function uniqBy(list, fn) {
+ const recordMap = /* @__PURE__ */ Object.create(null);
+ return list.reduce((out, item) => {
+ const key = fn(item);
+ if (!recordMap[key]) {
+ recordMap[key] = true;
+ out.push(item);
+ }
+ return out;
+ }, []);
+}
+const setDirection = function(dir) {
+ direction = dir;
+};
+let options = {};
+const setOptions = function(rawOptString) {
+ log.debug("options str", rawOptString);
+ rawOptString = rawOptString && rawOptString.trim();
+ rawOptString = rawOptString || "{}";
+ try {
+ options = JSON.parse(rawOptString);
+ } catch (e) {
+ log.error("error while parsing gitGraph options", e.message);
+ }
+};
+const getOptions = function() {
+ return options;
+};
+const commit = function(msg, id, type, tag) {
+ log.debug("Entering commit:", msg, id, type, tag);
+ id = common.sanitizeText(id, getConfig());
+ msg = common.sanitizeText(msg, getConfig());
+ tag = common.sanitizeText(tag, getConfig());
+ const commit2 = {
+ id: id ? id : seq + "-" + getId(),
+ message: msg,
+ seq: seq++,
+ type: type ? type : commitType$1.NORMAL,
+ tag: tag ? tag : "",
+ parents: head == null ? [] : [head.id],
+ branch: curBranch
+ };
+ head = commit2;
+ commits[commit2.id] = commit2;
+ branches[curBranch] = commit2.id;
+ log.debug("in pushCommit " + commit2.id);
+};
+const branch = function(name, order) {
+ name = common.sanitizeText(name, getConfig());
+ if (branches[name] === void 0) {
+ branches[name] = head != null ? head.id : null;
+ branchesConfig[name] = { name, order: order ? parseInt(order, 10) : null };
+ checkout(name);
+ log.debug("in createBranch");
+ } else {
+ let error = new Error(
+ 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ' + name + '")'
+ );
+ error.hash = {
+ text: "branch " + name,
+ token: "branch " + name,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"checkout ' + name + '"']
+ };
+ throw error;
+ }
+};
+const merge = function(otherBranch, custom_id, override_type, custom_tag) {
+ otherBranch = common.sanitizeText(otherBranch, getConfig());
+ custom_id = common.sanitizeText(custom_id, getConfig());
+ const currentCommit = commits[branches[curBranch]];
+ const otherCommit = commits[branches[otherBranch]];
+ if (curBranch === otherBranch) {
+ let error = new Error('Incorrect usage of "merge". Cannot merge a branch to itself');
+ error.hash = {
+ text: "merge " + otherBranch,
+ token: "merge " + otherBranch,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["branch abc"]
+ };
+ throw error;
+ } else if (currentCommit === void 0 || !currentCommit) {
+ let error = new Error(
+ 'Incorrect usage of "merge". Current branch (' + curBranch + ")has no commits"
+ );
+ error.hash = {
+ text: "merge " + otherBranch,
+ token: "merge " + otherBranch,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["commit"]
+ };
+ throw error;
+ } else if (branches[otherBranch] === void 0) {
+ let error = new Error(
+ 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") does not exist"
+ );
+ error.hash = {
+ text: "merge " + otherBranch,
+ token: "merge " + otherBranch,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["branch " + otherBranch]
+ };
+ throw error;
+ } else if (otherCommit === void 0 || !otherCommit) {
+ let error = new Error(
+ 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") has no commits"
+ );
+ error.hash = {
+ text: "merge " + otherBranch,
+ token: "merge " + otherBranch,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"commit"']
+ };
+ throw error;
+ } else if (currentCommit === otherCommit) {
+ let error = new Error('Incorrect usage of "merge". Both branches have same head');
+ error.hash = {
+ text: "merge " + otherBranch,
+ token: "merge " + otherBranch,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["branch abc"]
+ };
+ throw error;
+ } else if (custom_id && commits[custom_id] !== void 0) {
+ let error = new Error(
+ 'Incorrect usage of "merge". Commit with id:' + custom_id + " already exists, use different custom Id"
+ );
+ error.hash = {
+ text: "merge " + otherBranch + custom_id + override_type + custom_tag,
+ token: "merge " + otherBranch + custom_id + override_type + custom_tag,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: [
+ "merge " + otherBranch + " " + custom_id + "_UNIQUE " + override_type + " " + custom_tag
+ ]
+ };
+ throw error;
+ }
+ const commit2 = {
+ id: custom_id ? custom_id : seq + "-" + getId(),
+ message: "merged branch " + otherBranch + " into " + curBranch,
+ seq: seq++,
+ parents: [head == null ? null : head.id, branches[otherBranch]],
+ branch: curBranch,
+ type: commitType$1.MERGE,
+ customType: override_type,
+ customId: custom_id ? true : false,
+ tag: custom_tag ? custom_tag : ""
+ };
+ head = commit2;
+ commits[commit2.id] = commit2;
+ branches[curBranch] = commit2.id;
+ log.debug(branches);
+ log.debug("in mergeBranch");
+};
+const cherryPick = function(sourceId, targetId, tag) {
+ log.debug("Entering cherryPick:", sourceId, targetId, tag);
+ sourceId = common.sanitizeText(sourceId, getConfig());
+ targetId = common.sanitizeText(targetId, getConfig());
+ tag = common.sanitizeText(tag, getConfig());
+ if (!sourceId || commits[sourceId] === void 0) {
+ let error = new Error(
+ 'Incorrect usage of "cherryPick". Source commit id should exist and provided'
+ );
+ error.hash = {
+ text: "cherryPick " + sourceId + " " + targetId,
+ token: "cherryPick " + sourceId + " " + targetId,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ };
+ throw error;
+ }
+ let sourceCommit = commits[sourceId];
+ let sourceCommitBranch = sourceCommit.branch;
+ if (sourceCommit.type === commitType$1.MERGE) {
+ let error = new Error(
+ 'Incorrect usage of "cherryPick". Source commit should not be a merge commit'
+ );
+ error.hash = {
+ text: "cherryPick " + sourceId + " " + targetId,
+ token: "cherryPick " + sourceId + " " + targetId,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ };
+ throw error;
+ }
+ if (!targetId || commits[targetId] === void 0) {
+ if (sourceCommitBranch === curBranch) {
+ let error = new Error(
+ 'Incorrect usage of "cherryPick". Source commit is already on current branch'
+ );
+ error.hash = {
+ text: "cherryPick " + sourceId + " " + targetId,
+ token: "cherryPick " + sourceId + " " + targetId,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ };
+ throw error;
+ }
+ const currentCommit = commits[branches[curBranch]];
+ if (currentCommit === void 0 || !currentCommit) {
+ let error = new Error(
+ 'Incorrect usage of "cherry-pick". Current branch (' + curBranch + ")has no commits"
+ );
+ error.hash = {
+ text: "cherryPick " + sourceId + " " + targetId,
+ token: "cherryPick " + sourceId + " " + targetId,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ };
+ throw error;
+ }
+ const commit2 = {
+ id: seq + "-" + getId(),
+ message: "cherry-picked " + sourceCommit + " into " + curBranch,
+ seq: seq++,
+ parents: [head == null ? null : head.id, sourceCommit.id],
+ branch: curBranch,
+ type: commitType$1.CHERRY_PICK,
+ tag: tag ?? "cherry-pick:" + sourceCommit.id
+ };
+ head = commit2;
+ commits[commit2.id] = commit2;
+ branches[curBranch] = commit2.id;
+ log.debug(branches);
+ log.debug("in cherryPick");
+ }
+};
+const checkout = function(branch2) {
+ branch2 = common.sanitizeText(branch2, getConfig());
+ if (branches[branch2] === void 0) {
+ let error = new Error(
+ 'Trying to checkout branch which is not yet created. (Help try using "branch ' + branch2 + '")'
+ );
+ error.hash = {
+ text: "checkout " + branch2,
+ token: "checkout " + branch2,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"branch ' + branch2 + '"']
+ };
+ throw error;
+ } else {
+ curBranch = branch2;
+ const id = branches[curBranch];
+ head = commits[id];
+ }
+};
+function upsert(arr, key, newVal) {
+ const index = arr.indexOf(key);
+ if (index === -1) {
+ arr.push(newVal);
+ } else {
+ arr.splice(index, 1, newVal);
+ }
+}
+function prettyPrintCommitHistory(commitArr) {
+ const commit2 = commitArr.reduce((out, commit3) => {
+ if (out.seq > commit3.seq) {
+ return out;
+ }
+ return commit3;
+ }, commitArr[0]);
+ let line = "";
+ commitArr.forEach(function(c) {
+ if (c === commit2) {
+ line += " *";
+ } else {
+ line += " |";
+ }
+ });
+ const label = [line, commit2.id, commit2.seq];
+ for (let branch2 in branches) {
+ if (branches[branch2] === commit2.id) {
+ label.push(branch2);
+ }
+ }
+ log.debug(label.join(" "));
+ if (commit2.parents && commit2.parents.length == 2) {
+ const newCommit = commits[commit2.parents[0]];
+ upsert(commitArr, commit2, newCommit);
+ commitArr.push(commits[commit2.parents[1]]);
+ } else if (commit2.parents.length == 0) {
+ return;
+ } else {
+ const nextCommit = commits[commit2.parents];
+ upsert(commitArr, commit2, nextCommit);
+ }
+ commitArr = uniqBy(commitArr, (c) => c.id);
+ prettyPrintCommitHistory(commitArr);
+}
+const prettyPrint = function() {
+ log.debug(commits);
+ const node = getCommitsArray()[0];
+ prettyPrintCommitHistory([node]);
+};
+const clear$1 = function() {
+ commits = {};
+ head = null;
+ let mainBranch = getConfig().gitGraph.mainBranchName;
+ let mainBranchOrder2 = getConfig().gitGraph.mainBranchOrder;
+ branches = {};
+ branches[mainBranch] = null;
+ branchesConfig = {};
+ branchesConfig[mainBranch] = { name: mainBranch, order: mainBranchOrder2 };
+ curBranch = mainBranch;
+ seq = 0;
+ clear$2();
+};
+const getBranchesAsObjArray = function() {
+ const branchesArray = Object.values(branchesConfig).map((branchConfig, i) => {
+ if (branchConfig.order !== null) {
+ return branchConfig;
+ }
+ return {
+ ...branchConfig,
+ order: parseFloat(`0.${i}`, 10)
+ };
+ }).sort((a, b) => a.order - b.order).map(({ name }) => ({ name }));
+ return branchesArray;
+};
+const getBranches = function() {
+ return branches;
+};
+const getCommits = function() {
+ return commits;
+};
+const getCommitsArray = function() {
+ const commitArr = Object.keys(commits).map(function(key) {
+ return commits[key];
+ });
+ commitArr.forEach(function(o) {
+ log.debug(o.id);
+ });
+ commitArr.sort((a, b) => a.seq - b.seq);
+ return commitArr;
+};
+const getCurrentBranch = function() {
+ return curBranch;
+};
+const getDirection = function() {
+ return direction;
+};
+const getHead = function() {
+ return head;
+};
+const commitType$1 = {
+ NORMAL: 0,
+ REVERSE: 1,
+ HIGHLIGHT: 2,
+ MERGE: 3,
+ CHERRY_PICK: 4
+};
+const gitGraphDb = {
+ parseDirective,
+ getConfig: () => getConfig().gitGraph,
+ setDirection,
+ setOptions,
+ getOptions,
+ commit,
+ branch,
+ merge,
+ cherryPick,
+ checkout,
+ //reset,
+ prettyPrint,
+ clear: clear$1,
+ getBranchesAsObjArray,
+ getBranches,
+ getCommits,
+ getCommitsArray,
+ getCurrentBranch,
+ getDirection,
+ getHead,
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ setAccDescription,
+ setDiagramTitle,
+ getDiagramTitle,
+ commitType: commitType$1
+};
+let allCommitsDict = {};
+const commitType = {
+ NORMAL: 0,
+ REVERSE: 1,
+ HIGHLIGHT: 2,
+ MERGE: 3,
+ CHERRY_PICK: 4
+};
+const THEME_COLOR_LIMIT = 8;
+let branchPos = {};
+let commitPos = {};
+let lanes = [];
+let maxPos = 0;
+const clear = () => {
+ branchPos = {};
+ commitPos = {};
+ allCommitsDict = {};
+ maxPos = 0;
+ lanes = [];
+};
+const drawText = (txt) => {
+ const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ let rows = [];
+ if (typeof txt === "string") {
+ rows = txt.split(/\\n|\n|
/gi);
+ } else if (Array.isArray(txt)) {
+ rows = txt;
+ } else {
+ rows = [];
+ }
+ for (const row of rows) {
+ const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
+ tspan.setAttribute("dy", "1em");
+ tspan.setAttribute("x", "0");
+ tspan.setAttribute("class", "row");
+ tspan.textContent = row.trim();
+ svgLabel.appendChild(tspan);
+ }
+ return svgLabel;
+};
+const drawCommits = (svg, commits2, modifyGraph) => {
+ const gitGraphConfig = getConfig$1().gitGraph;
+ const gBullets = svg.append("g").attr("class", "commit-bullets");
+ const gLabels = svg.append("g").attr("class", "commit-labels");
+ let pos = 0;
+ const keys = Object.keys(commits2);
+ const sortedKeys = keys.sort((a, b) => {
+ return commits2[a].seq - commits2[b].seq;
+ });
+ sortedKeys.forEach((key) => {
+ const commit2 = commits2[key];
+ const y = branchPos[commit2.branch].pos;
+ const x = pos + 10;
+ if (modifyGraph) {
+ let typeClass;
+ let commitSymbolType = commit2.customType !== void 0 && commit2.customType !== "" ? commit2.customType : commit2.type;
+ switch (commitSymbolType) {
+ case commitType.NORMAL:
+ typeClass = "commit-normal";
+ break;
+ case commitType.REVERSE:
+ typeClass = "commit-reverse";
+ break;
+ case commitType.HIGHLIGHT:
+ typeClass = "commit-highlight";
+ break;
+ case commitType.MERGE:
+ typeClass = "commit-merge";
+ break;
+ case commitType.CHERRY_PICK:
+ typeClass = "commit-cherry-pick";
+ break;
+ default:
+ typeClass = "commit-normal";
+ }
+ if (commitSymbolType === commitType.HIGHLIGHT) {
+ const circle = gBullets.append("rect");
+ circle.attr("x", x - 10);
+ circle.attr("y", y - 10);
+ circle.attr("height", 20);
+ circle.attr("width", 20);
+ circle.attr(
+ "class",
+ `commit ${commit2.id} commit-highlight${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-outer`
+ );
+ gBullets.append("rect").attr("x", x - 6).attr("y", y - 6).attr("height", 12).attr("width", 12).attr(
+ "class",
+ `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-inner`
+ );
+ } else if (commitSymbolType === commitType.CHERRY_PICK) {
+ gBullets.append("circle").attr("cx", x).attr("cy", y).attr("r", 10).attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("circle").attr("cx", x - 3).attr("cy", y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("circle").attr("cx", x + 3).attr("cy", y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("line").attr("x1", x + 3).attr("y1", y + 1).attr("x2", x).attr("y2", y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("line").attr("x1", x - 3).attr("y1", y + 1).attr("x2", x).attr("y2", y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ } else {
+ const circle = gBullets.append("circle");
+ circle.attr("cx", x);
+ circle.attr("cy", y);
+ circle.attr("r", commit2.type === commitType.MERGE ? 9 : 10);
+ circle.attr(
+ "class",
+ `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
+ );
+ if (commitSymbolType === commitType.MERGE) {
+ const circle2 = gBullets.append("circle");
+ circle2.attr("cx", x);
+ circle2.attr("cy", y);
+ circle2.attr("r", 6);
+ circle2.attr(
+ "class",
+ `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
+ );
+ }
+ if (commitSymbolType === commitType.REVERSE) {
+ const cross = gBullets.append("path");
+ cross.attr("d", `M ${x - 5},${y - 5}L${x + 5},${y + 5}M${x - 5},${y + 5}L${x + 5},${y - 5}`).attr(
+ "class",
+ `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
+ );
+ }
+ }
+ }
+ commitPos[commit2.id] = { x: pos + 10, y };
+ if (modifyGraph) {
+ const px = 4;
+ const py = 2;
+ if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && gitGraphConfig.showCommitLabel) {
+ const wrapper = gLabels.append("g");
+ const labelBkg = wrapper.insert("rect").attr("class", "commit-label-bkg");
+ const text = wrapper.append("text").attr("x", pos).attr("y", y + 25).attr("class", "commit-label").text(commit2.id);
+ let bbox = text.node().getBBox();
+ labelBkg.attr("x", pos + 10 - bbox.width / 2 - py).attr("y", y + 13.5).attr("width", bbox.width + 2 * py).attr("height", bbox.height + 2 * py);
+ text.attr("x", pos + 10 - bbox.width / 2);
+ if (gitGraphConfig.rotateCommitLabel) {
+ let r_x = -7.5 - (bbox.width + 10) / 25 * 9.5;
+ let r_y = 10 + bbox.width / 25 * 8.5;
+ wrapper.attr(
+ "transform",
+ "translate(" + r_x + ", " + r_y + ") rotate(" + -45 + ", " + pos + ", " + y + ")"
+ );
+ }
+ }
+ if (commit2.tag) {
+ const rect = gLabels.insert("polygon");
+ const hole = gLabels.append("circle");
+ const tag = gLabels.append("text").attr("y", y - 16).attr("class", "tag-label").text(commit2.tag);
+ let tagBbox = tag.node().getBBox();
+ tag.attr("x", pos + 10 - tagBbox.width / 2);
+ const h2 = tagBbox.height / 2;
+ const ly = y - 19.2;
+ rect.attr("class", "tag-label-bkg").attr(
+ "points",
+ `
+ ${pos - tagBbox.width / 2 - px / 2},${ly + py}
+ ${pos - tagBbox.width / 2 - px / 2},${ly - py}
+ ${pos + 10 - tagBbox.width / 2 - px},${ly - h2 - py}
+ ${pos + 10 + tagBbox.width / 2 + px},${ly - h2 - py}
+ ${pos + 10 + tagBbox.width / 2 + px},${ly + h2 + py}
+ ${pos + 10 - tagBbox.width / 2 - px},${ly + h2 + py}`
+ );
+ hole.attr("cx", pos - tagBbox.width / 2 + px / 2).attr("cy", ly).attr("r", 1.5).attr("class", "tag-hole");
+ }
+ }
+ pos += 50;
+ if (pos > maxPos) {
+ maxPos = pos;
+ }
+ });
+};
+const hasOverlappingCommits = (commit1, commit2, allCommits) => {
+ const keys = Object.keys(allCommits);
+ const overlappingComits = keys.filter((key) => {
+ return allCommits[key].branch === commit2.branch && allCommits[key].seq > commit1.seq && allCommits[key].seq < commit2.seq;
+ });
+ return overlappingComits.length > 0;
+};
+const findLane = (y1, y2, depth = 0) => {
+ const candidate = y1 + Math.abs(y1 - y2) / 2;
+ if (depth > 5) {
+ return candidate;
+ }
+ let ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10);
+ if (ok) {
+ lanes.push(candidate);
+ return candidate;
+ }
+ const diff = Math.abs(y1 - y2);
+ return findLane(y1, y2 - diff / 5, depth + 1);
+};
+const drawArrow = (svg, commit1, commit2, allCommits) => {
+ const p1 = commitPos[commit1.id];
+ const p2 = commitPos[commit2.id];
+ const overlappingCommits = hasOverlappingCommits(commit1, commit2, allCommits);
+ let arc = "";
+ let arc2 = "";
+ let radius = 0;
+ let offset = 0;
+ let colorClassNum = branchPos[commit2.branch].index;
+ let lineDef;
+ if (overlappingCommits) {
+ arc = "A 10 10, 0, 0, 0,";
+ arc2 = "A 10 10, 0, 0, 1,";
+ radius = 10;
+ offset = 10;
+ colorClassNum = branchPos[commit2.branch].index;
+ const lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y);
+ if (p1.y < p2.y) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius} ${arc} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc2} ${p2.x} ${lineY + offset} L ${p2.x} ${p2.y}`;
+ } else {
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius} ${arc2} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc} ${p2.x} ${lineY - offset} L ${p2.x} ${p2.y}`;
+ }
+ } else {
+ if (p1.y < p2.y) {
+ arc = "A 20 20, 0, 0, 0,";
+ radius = 20;
+ offset = 20;
+ colorClassNum = branchPos[commit2.branch].index;
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;
+ }
+ if (p1.y > p2.y) {
+ arc = "A 20 20, 0, 0, 0,";
+ radius = 20;
+ offset = 20;
+ colorClassNum = branchPos[commit1.branch].index;
+ lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`;
+ }
+ if (p1.y === p2.y) {
+ colorClassNum = branchPos[commit1.branch].index;
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;
+ }
+ }
+ svg.append("path").attr("d", lineDef).attr("class", "arrow arrow" + colorClassNum % THEME_COLOR_LIMIT);
+};
+const drawArrows = (svg, commits2) => {
+ const gArrows = svg.append("g").attr("class", "commit-arrows");
+ Object.keys(commits2).forEach((key) => {
+ const commit2 = commits2[key];
+ if (commit2.parents && commit2.parents.length > 0) {
+ commit2.parents.forEach((parent) => {
+ drawArrow(gArrows, commits2[parent], commit2, commits2);
+ });
+ }
+ });
+};
+const drawBranches = (svg, branches2) => {
+ const gitGraphConfig = getConfig$1().gitGraph;
+ const g = svg.append("g");
+ branches2.forEach((branch2, index) => {
+ const adjustIndexForTheme = index % THEME_COLOR_LIMIT;
+ const pos = branchPos[branch2.name].pos;
+ const line = g.append("line");
+ line.attr("x1", 0);
+ line.attr("y1", pos);
+ line.attr("x2", maxPos);
+ line.attr("y2", pos);
+ line.attr("class", "branch branch" + adjustIndexForTheme);
+ lanes.push(pos);
+ let name = branch2.name;
+ const labelElement = drawText(name);
+ const bkg = g.insert("rect");
+ const branchLabel = g.insert("g").attr("class", "branchLabel");
+ const label = branchLabel.insert("g").attr("class", "label branch-label" + adjustIndexForTheme);
+ label.node().appendChild(labelElement);
+ let bbox = labelElement.getBBox();
+ bkg.attr("class", "branchLabelBkg label" + adjustIndexForTheme).attr("rx", 4).attr("ry", 4).attr("x", -bbox.width - 4 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)).attr("y", -bbox.height / 2 + 8).attr("width", bbox.width + 18).attr("height", bbox.height + 4);
+ label.attr(
+ "transform",
+ "translate(" + (-bbox.width - 14 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)) + ", " + (pos - bbox.height / 2 - 1) + ")"
+ );
+ bkg.attr("transform", "translate(" + -19 + ", " + (pos - bbox.height / 2) + ")");
+ });
+};
+const draw = function(txt, id, ver, diagObj) {
+ clear();
+ const conf = getConfig$1();
+ const gitGraphConfig = conf.gitGraph;
+ log.debug("in gitgraph renderer", txt + "\n", "id:", id, ver);
+ allCommitsDict = diagObj.db.getCommits();
+ const branches2 = diagObj.db.getBranchesAsObjArray();
+ let pos = 0;
+ branches2.forEach((branch2, index) => {
+ branchPos[branch2.name] = { pos, index };
+ pos += 50 + (gitGraphConfig.rotateCommitLabel ? 40 : 0);
+ });
+ const diagram2 = select(`[id="${id}"]`);
+ drawCommits(diagram2, allCommitsDict, false);
+ if (gitGraphConfig.showBranches) {
+ drawBranches(diagram2, branches2);
+ }
+ drawArrows(diagram2, allCommitsDict);
+ drawCommits(diagram2, allCommitsDict, true);
+ utils.insertTitle(
+ diagram2,
+ "gitTitleText",
+ gitGraphConfig.titleTopMargin,
+ diagObj.db.getDiagramTitle()
+ );
+ setupGraphViewbox(
+ void 0,
+ diagram2,
+ gitGraphConfig.diagramPadding,
+ gitGraphConfig.useMaxWidth ?? conf.useMaxWidth
+ );
+};
+const gitGraphRenderer = {
+ draw
+};
+const getStyles = (options2) => `
+ .commit-id,
+ .commit-msg,
+ .branch-label {
+ fill: lightgrey;
+ color: lightgrey;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+ ${[0, 1, 2, 3, 4, 5, 6, 7].map(
+ (i) => `
+ .branch-label${i} { fill: ${options2["gitBranchLabel" + i]}; }
+ .commit${i} { stroke: ${options2["git" + i]}; fill: ${options2["git" + i]}; }
+ .commit-highlight${i} { stroke: ${options2["gitInv" + i]}; fill: ${options2["gitInv" + i]}; }
+ .label${i} { fill: ${options2["git" + i]}; }
+ .arrow${i} { stroke: ${options2["git" + i]}; }
+ `
+).join("\n")}
+
+ .branch {
+ stroke-width: 1;
+ stroke: ${options2.lineColor};
+ stroke-dasharray: 2;
+ }
+ .commit-label { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelColor};}
+ .commit-label-bkg { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelBackground}; opacity: 0.5; }
+ .tag-label { font-size: ${options2.tagLabelFontSize}; fill: ${options2.tagLabelColor};}
+ .tag-label-bkg { fill: ${options2.tagLabelBackground}; stroke: ${options2.tagLabelBorder}; }
+ .tag-hole { fill: ${options2.textColor}; }
+
+ .commit-merge {
+ stroke: ${options2.primaryColor};
+ fill: ${options2.primaryColor};
+ }
+ .commit-reverse {
+ stroke: ${options2.primaryColor};
+ fill: ${options2.primaryColor};
+ stroke-width: 3;
+ }
+ .commit-highlight-outer {
+ }
+ .commit-highlight-inner {
+ stroke: ${options2.primaryColor};
+ fill: ${options2.primaryColor};
+ }
+
+ .arrow { stroke-width: 8; stroke-linecap: round; fill: none}
+ .gitTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options2.textColor};
+ }
+ }
+`;
+const gitGraphStyles = getStyles;
+const diagram = {
+ parser: gitGraphParser,
+ db: gitGraphDb,
+ renderer: gitGraphRenderer,
+ styles: gitGraphStyles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=gitGraphDiagram-0a645df6.js.map
diff --git a/scopegraphs-render-docs/doc/js/gitGraphDiagram-603d2a33.js b/scopegraphs-render-docs/doc/js/gitGraphDiagram-603d2a33.js
new file mode 100644
index 0000000..38f777f
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/gitGraphDiagram-603d2a33.js
@@ -0,0 +1,1238 @@
+import { g as A, q as Ae, v as Oe, w as Se, x as Ie, y as Ge, z as Pe, l as G, f as V, A as He, h as Ne } from "./commonDb-41f8b4c5.js";
+import { H as De, I as pe, u as Ve, J as ze } from "./utils-8ea37061.js";
+import { m as je } from "./mermaidAPI-67f627de.js";
+var me = function() {
+ var r = function(q, l, u, b) {
+ for (u = u || {}, b = q.length; b--; u[q[b]] = l)
+ ;
+ return u;
+ }, n = [1, 4], o = [1, 7], h = [1, 5], a = [1, 9], c = [1, 6], f = [2, 6], p = [1, 16], w = [6, 8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40, 50, 55], y = [8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], m = [8, 13, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], d = [1, 26], _ = [6, 8, 14, 50, 55], s = [8, 14, 55], C = [1, 53], v = [1, 52], N = [8, 14, 30, 33, 35, 38, 55], x = [1, 67], g = [1, 68], k = [1, 69], P = [8, 14, 33, 35, 42, 55], ne = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, eol: 4, directive: 5, GG: 6, document: 7, EOF: 8, ":": 9, DIR: 10, options: 11, body: 12, OPT: 13, NL: 14, line: 15, statement: 16, commitStatement: 17, mergeStatement: 18, cherryPickStatement: 19, acc_title: 20, acc_title_value: 21, acc_descr: 22, acc_descr_value: 23, acc_descr_multiline_value: 24, section: 25, branchStatement: 26, CHECKOUT: 27, ref: 28, BRANCH: 29, ORDER: 30, NUM: 31, CHERRY_PICK: 32, COMMIT_ID: 33, STR: 34, COMMIT_TAG: 35, EMPTYSTR: 36, MERGE: 37, COMMIT_TYPE: 38, commitType: 39, COMMIT: 40, commit_arg: 41, COMMIT_MSG: 42, NORMAL: 43, REVERSE: 44, HIGHLIGHT: 45, openDirective: 46, typeDirective: 47, closeDirective: 48, argDirective: 49, open_directive: 50, type_directive: 51, arg_directive: 52, close_directive: 53, ID: 54, ";": 55, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 6: "GG", 8: "EOF", 9: ":", 10: "DIR", 13: "OPT", 14: "NL", 20: "acc_title", 21: "acc_title_value", 22: "acc_descr", 23: "acc_descr_value", 24: "acc_descr_multiline_value", 25: "section", 27: "CHECKOUT", 29: "BRANCH", 30: "ORDER", 31: "NUM", 32: "CHERRY_PICK", 33: "COMMIT_ID", 34: "STR", 35: "COMMIT_TAG", 36: "EMPTYSTR", 37: "MERGE", 38: "COMMIT_TYPE", 40: "COMMIT", 42: "COMMIT_MSG", 43: "NORMAL", 44: "REVERSE", 45: "HIGHLIGHT", 50: "open_directive", 51: "type_directive", 52: "arg_directive", 53: "close_directive", 54: "ID", 55: ";" },
+ productions_: [0, [3, 2], [3, 2], [3, 3], [3, 4], [3, 5], [7, 0], [7, 2], [11, 2], [11, 1], [12, 0], [12, 2], [15, 2], [15, 1], [16, 1], [16, 1], [16, 1], [16, 2], [16, 2], [16, 1], [16, 1], [16, 1], [16, 2], [26, 2], [26, 4], [19, 3], [19, 5], [19, 5], [19, 5], [19, 5], [18, 2], [18, 4], [18, 4], [18, 4], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [17, 2], [17, 3], [17, 3], [17, 5], [17, 5], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [41, 0], [41, 1], [39, 1], [39, 1], [39, 1], [5, 3], [5, 5], [46, 1], [47, 1], [49, 1], [48, 1], [28, 1], [28, 1], [4, 1], [4, 1], [4, 1]],
+ performAction: function(l, u, b, i, E, e, J) {
+ var t = e.length - 1;
+ switch (E) {
+ case 3:
+ return e[t];
+ case 4:
+ return e[t - 1];
+ case 5:
+ return i.setDirection(e[t - 3]), e[t - 1];
+ case 7:
+ i.setOptions(e[t - 1]), this.$ = e[t];
+ break;
+ case 8:
+ e[t - 1] += e[t], this.$ = e[t - 1];
+ break;
+ case 10:
+ this.$ = [];
+ break;
+ case 11:
+ e[t - 1].push(e[t]), this.$ = e[t - 1];
+ break;
+ case 12:
+ this.$ = e[t - 1];
+ break;
+ case 17:
+ this.$ = e[t].trim(), i.setAccTitle(this.$);
+ break;
+ case 18:
+ case 19:
+ this.$ = e[t].trim(), i.setAccDescription(this.$);
+ break;
+ case 20:
+ i.addSection(e[t].substr(8)), this.$ = e[t].substr(8);
+ break;
+ case 22:
+ i.checkout(e[t]);
+ break;
+ case 23:
+ i.branch(e[t]);
+ break;
+ case 24:
+ i.branch(e[t - 2], e[t]);
+ break;
+ case 25:
+ i.cherryPick(e[t], "", void 0);
+ break;
+ case 26:
+ i.cherryPick(e[t - 2], "", e[t]);
+ break;
+ case 27:
+ case 29:
+ i.cherryPick(e[t - 2], "", "");
+ break;
+ case 28:
+ i.cherryPick(e[t], "", e[t - 2]);
+ break;
+ case 30:
+ i.merge(e[t], "", "", "");
+ break;
+ case 31:
+ i.merge(e[t - 2], e[t], "", "");
+ break;
+ case 32:
+ i.merge(e[t - 2], "", e[t], "");
+ break;
+ case 33:
+ i.merge(e[t - 2], "", "", e[t]);
+ break;
+ case 34:
+ i.merge(e[t - 4], e[t], "", e[t - 2]);
+ break;
+ case 35:
+ i.merge(e[t - 4], "", e[t], e[t - 2]);
+ break;
+ case 36:
+ i.merge(e[t - 4], "", e[t - 2], e[t]);
+ break;
+ case 37:
+ i.merge(e[t - 4], e[t - 2], e[t], "");
+ break;
+ case 38:
+ i.merge(e[t - 4], e[t - 2], "", e[t]);
+ break;
+ case 39:
+ i.merge(e[t - 4], e[t], e[t - 2], "");
+ break;
+ case 40:
+ i.merge(e[t - 6], e[t - 4], e[t - 2], e[t]);
+ break;
+ case 41:
+ i.merge(e[t - 6], e[t], e[t - 4], e[t - 2]);
+ break;
+ case 42:
+ i.merge(e[t - 6], e[t - 4], e[t], e[t - 2]);
+ break;
+ case 43:
+ i.merge(e[t - 6], e[t - 2], e[t - 4], e[t]);
+ break;
+ case 44:
+ i.merge(e[t - 6], e[t], e[t - 2], e[t - 4]);
+ break;
+ case 45:
+ i.merge(e[t - 6], e[t - 2], e[t], e[t - 4]);
+ break;
+ case 46:
+ i.commit(e[t]);
+ break;
+ case 47:
+ i.commit("", "", i.commitType.NORMAL, e[t]);
+ break;
+ case 48:
+ i.commit("", "", e[t], "");
+ break;
+ case 49:
+ i.commit("", "", e[t], e[t - 2]);
+ break;
+ case 50:
+ i.commit("", "", e[t - 2], e[t]);
+ break;
+ case 51:
+ i.commit("", e[t], i.commitType.NORMAL, "");
+ break;
+ case 52:
+ i.commit("", e[t - 2], i.commitType.NORMAL, e[t]);
+ break;
+ case 53:
+ i.commit("", e[t], i.commitType.NORMAL, e[t - 2]);
+ break;
+ case 54:
+ i.commit("", e[t - 2], e[t], "");
+ break;
+ case 55:
+ i.commit("", e[t], e[t - 2], "");
+ break;
+ case 56:
+ i.commit("", e[t - 4], e[t - 2], e[t]);
+ break;
+ case 57:
+ i.commit("", e[t - 4], e[t], e[t - 2]);
+ break;
+ case 58:
+ i.commit("", e[t - 2], e[t - 4], e[t]);
+ break;
+ case 59:
+ i.commit("", e[t], e[t - 4], e[t - 2]);
+ break;
+ case 60:
+ i.commit("", e[t], e[t - 2], e[t - 4]);
+ break;
+ case 61:
+ i.commit("", e[t - 2], e[t], e[t - 4]);
+ break;
+ case 62:
+ i.commit(e[t], "", i.commitType.NORMAL, "");
+ break;
+ case 63:
+ i.commit(e[t], "", i.commitType.NORMAL, e[t - 2]);
+ break;
+ case 64:
+ i.commit(e[t - 2], "", i.commitType.NORMAL, e[t]);
+ break;
+ case 65:
+ i.commit(e[t - 2], "", e[t], "");
+ break;
+ case 66:
+ i.commit(e[t], "", e[t - 2], "");
+ break;
+ case 67:
+ i.commit(e[t], e[t - 2], i.commitType.NORMAL, "");
+ break;
+ case 68:
+ i.commit(e[t - 2], e[t], i.commitType.NORMAL, "");
+ break;
+ case 69:
+ i.commit(e[t - 4], "", e[t - 2], e[t]);
+ break;
+ case 70:
+ i.commit(e[t - 4], "", e[t], e[t - 2]);
+ break;
+ case 71:
+ i.commit(e[t - 2], "", e[t - 4], e[t]);
+ break;
+ case 72:
+ i.commit(e[t], "", e[t - 4], e[t - 2]);
+ break;
+ case 73:
+ i.commit(e[t], "", e[t - 2], e[t - 4]);
+ break;
+ case 74:
+ i.commit(e[t - 2], "", e[t], e[t - 4]);
+ break;
+ case 75:
+ i.commit(e[t - 4], e[t], e[t - 2], "");
+ break;
+ case 76:
+ i.commit(e[t - 4], e[t - 2], e[t], "");
+ break;
+ case 77:
+ i.commit(e[t - 2], e[t], e[t - 4], "");
+ break;
+ case 78:
+ i.commit(e[t], e[t - 2], e[t - 4], "");
+ break;
+ case 79:
+ i.commit(e[t], e[t - 4], e[t - 2], "");
+ break;
+ case 80:
+ i.commit(e[t - 2], e[t - 4], e[t], "");
+ break;
+ case 81:
+ i.commit(e[t - 4], e[t], i.commitType.NORMAL, e[t - 2]);
+ break;
+ case 82:
+ i.commit(e[t - 4], e[t - 2], i.commitType.NORMAL, e[t]);
+ break;
+ case 83:
+ i.commit(e[t - 2], e[t], i.commitType.NORMAL, e[t - 4]);
+ break;
+ case 84:
+ i.commit(e[t], e[t - 2], i.commitType.NORMAL, e[t - 4]);
+ break;
+ case 85:
+ i.commit(e[t], e[t - 4], i.commitType.NORMAL, e[t - 2]);
+ break;
+ case 86:
+ i.commit(e[t - 2], e[t - 4], i.commitType.NORMAL, e[t]);
+ break;
+ case 87:
+ i.commit(e[t - 6], e[t - 4], e[t - 2], e[t]);
+ break;
+ case 88:
+ i.commit(e[t - 6], e[t - 4], e[t], e[t - 2]);
+ break;
+ case 89:
+ i.commit(e[t - 6], e[t - 2], e[t - 4], e[t]);
+ break;
+ case 90:
+ i.commit(e[t - 6], e[t], e[t - 4], e[t - 2]);
+ break;
+ case 91:
+ i.commit(e[t - 6], e[t - 2], e[t], e[t - 4]);
+ break;
+ case 92:
+ i.commit(e[t - 6], e[t], e[t - 2], e[t - 4]);
+ break;
+ case 93:
+ i.commit(e[t - 4], e[t - 6], e[t - 2], e[t]);
+ break;
+ case 94:
+ i.commit(e[t - 4], e[t - 6], e[t], e[t - 2]);
+ break;
+ case 95:
+ i.commit(e[t - 2], e[t - 6], e[t - 4], e[t]);
+ break;
+ case 96:
+ i.commit(e[t], e[t - 6], e[t - 4], e[t - 2]);
+ break;
+ case 97:
+ i.commit(e[t - 2], e[t - 6], e[t], e[t - 4]);
+ break;
+ case 98:
+ i.commit(e[t], e[t - 6], e[t - 2], e[t - 4]);
+ break;
+ case 99:
+ i.commit(e[t], e[t - 4], e[t - 2], e[t - 6]);
+ break;
+ case 100:
+ i.commit(e[t - 2], e[t - 4], e[t], e[t - 6]);
+ break;
+ case 101:
+ i.commit(e[t], e[t - 2], e[t - 4], e[t - 6]);
+ break;
+ case 102:
+ i.commit(e[t - 2], e[t], e[t - 4], e[t - 6]);
+ break;
+ case 103:
+ i.commit(e[t - 4], e[t - 2], e[t], e[t - 6]);
+ break;
+ case 104:
+ i.commit(e[t - 4], e[t], e[t - 2], e[t - 6]);
+ break;
+ case 105:
+ i.commit(e[t - 2], e[t - 4], e[t - 6], e[t]);
+ break;
+ case 106:
+ i.commit(e[t], e[t - 4], e[t - 6], e[t - 2]);
+ break;
+ case 107:
+ i.commit(e[t - 2], e[t], e[t - 6], e[t - 4]);
+ break;
+ case 108:
+ i.commit(e[t], e[t - 2], e[t - 6], e[t - 4]);
+ break;
+ case 109:
+ i.commit(e[t - 4], e[t - 2], e[t - 6], e[t]);
+ break;
+ case 110:
+ i.commit(e[t - 4], e[t], e[t - 6], e[t - 2]);
+ break;
+ case 111:
+ this.$ = "";
+ break;
+ case 112:
+ this.$ = e[t];
+ break;
+ case 113:
+ this.$ = i.commitType.NORMAL;
+ break;
+ case 114:
+ this.$ = i.commitType.REVERSE;
+ break;
+ case 115:
+ this.$ = i.commitType.HIGHLIGHT;
+ break;
+ case 118:
+ i.parseDirective("%%{", "open_directive");
+ break;
+ case 119:
+ i.parseDirective(e[t], "type_directive");
+ break;
+ case 120:
+ e[t] = e[t].trim().replace(/'/g, '"'), i.parseDirective(e[t], "arg_directive");
+ break;
+ case 121:
+ i.parseDirective("}%%", "close_directive", "gitGraph");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: n, 8: o, 14: h, 46: 8, 50: a, 55: c }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: n, 8: o, 14: h, 46: 8, 50: a, 55: c }, { 3: 11, 4: 2, 5: 3, 6: n, 8: o, 14: h, 46: 8, 50: a, 55: c }, { 7: 12, 8: f, 9: [1, 13], 10: [1, 14], 11: 15, 14: p }, r(w, [2, 124]), r(w, [2, 125]), r(w, [2, 126]), { 47: 17, 51: [1, 18] }, { 51: [2, 118] }, { 1: [2, 1] }, { 1: [2, 2] }, { 8: [1, 19] }, { 7: 20, 8: f, 11: 15, 14: p }, { 9: [1, 21] }, r(y, [2, 10], { 12: 22, 13: [1, 23] }), r(m, [2, 9]), { 9: [1, 25], 48: 24, 53: d }, r([9, 53], [2, 119]), { 1: [2, 3] }, { 8: [1, 27] }, { 7: 28, 8: f, 11: 15, 14: p }, { 8: [2, 7], 14: [1, 31], 15: 29, 16: 30, 17: 32, 18: 33, 19: 34, 20: [1, 35], 22: [1, 36], 24: [1, 37], 25: [1, 38], 26: 39, 27: [1, 40], 29: [1, 44], 32: [1, 43], 37: [1, 42], 40: [1, 41] }, r(m, [2, 8]), r(_, [2, 116]), { 49: 45, 52: [1, 46] }, r(_, [2, 121]), { 1: [2, 4] }, { 8: [1, 47] }, r(y, [2, 11]), { 4: 48, 8: o, 14: h, 55: c }, r(y, [2, 13]), r(s, [2, 14]), r(s, [2, 15]), r(s, [2, 16]), { 21: [1, 49] }, { 23: [1, 50] }, r(s, [2, 19]), r(s, [2, 20]), r(s, [2, 21]), { 28: 51, 34: C, 54: v }, r(s, [2, 111], { 41: 54, 33: [1, 57], 34: [1, 59], 35: [1, 55], 38: [1, 56], 42: [1, 58] }), { 28: 60, 34: C, 54: v }, { 33: [1, 61], 35: [1, 62] }, { 28: 63, 34: C, 54: v }, { 48: 64, 53: d }, { 53: [2, 120] }, { 1: [2, 5] }, r(y, [2, 12]), r(s, [2, 17]), r(s, [2, 18]), r(s, [2, 22]), r(N, [2, 122]), r(N, [2, 123]), r(s, [2, 46]), { 34: [1, 65] }, { 39: 66, 43: x, 44: g, 45: k }, { 34: [1, 70] }, { 34: [1, 71] }, r(s, [2, 112]), r(s, [2, 30], { 33: [1, 72], 35: [1, 74], 38: [1, 73] }), { 34: [1, 75] }, { 34: [1, 76], 36: [1, 77] }, r(s, [2, 23], { 30: [1, 78] }), r(_, [2, 117]), r(s, [2, 47], { 33: [1, 80], 38: [1, 79], 42: [1, 81] }), r(s, [2, 48], { 33: [1, 83], 35: [1, 82], 42: [1, 84] }), r(P, [2, 113]), r(P, [2, 114]), r(P, [2, 115]), r(s, [2, 51], { 35: [1, 85], 38: [1, 86], 42: [1, 87] }), r(s, [2, 62], { 33: [1, 90], 35: [1, 88], 38: [1, 89] }), { 34: [1, 91] }, { 39: 92, 43: x, 44: g, 45: k }, { 34: [1, 93] }, r(s, [2, 25], { 35: [1, 94] }), { 33: [1, 95] }, { 33: [1, 96] }, { 31: [1, 97] }, { 39: 98, 43: x, 44: g, 45: k }, { 34: [1, 99] }, { 34: [1, 100] }, { 34: [1, 101] }, { 34: [1, 102] }, { 34: [1, 103] }, { 34: [1, 104] }, { 39: 105, 43: x, 44: g, 45: k }, { 34: [1, 106] }, { 34: [1, 107] }, { 39: 108, 43: x, 44: g, 45: k }, { 34: [1, 109] }, r(s, [2, 31], { 35: [1, 111], 38: [1, 110] }), r(s, [2, 32], { 33: [1, 113], 35: [1, 112] }), r(s, [2, 33], { 33: [1, 114], 38: [1, 115] }), { 34: [1, 116], 36: [1, 117] }, { 34: [1, 118] }, { 34: [1, 119] }, r(s, [2, 24]), r(s, [2, 49], { 33: [1, 120], 42: [1, 121] }), r(s, [2, 53], { 38: [1, 122], 42: [1, 123] }), r(s, [2, 63], { 33: [1, 125], 38: [1, 124] }), r(s, [2, 50], { 33: [1, 126], 42: [1, 127] }), r(s, [2, 55], { 35: [1, 128], 42: [1, 129] }), r(s, [2, 66], { 33: [1, 131], 35: [1, 130] }), r(s, [2, 52], { 38: [1, 132], 42: [1, 133] }), r(s, [2, 54], { 35: [1, 134], 42: [1, 135] }), r(s, [2, 67], { 35: [1, 137], 38: [1, 136] }), r(s, [2, 64], { 33: [1, 139], 38: [1, 138] }), r(s, [2, 65], { 33: [1, 141], 35: [1, 140] }), r(s, [2, 68], { 35: [1, 143], 38: [1, 142] }), { 39: 144, 43: x, 44: g, 45: k }, { 34: [1, 145] }, { 34: [1, 146] }, { 34: [1, 147] }, { 34: [1, 148] }, { 39: 149, 43: x, 44: g, 45: k }, r(s, [2, 26]), r(s, [2, 27]), r(s, [2, 28]), r(s, [2, 29]), { 34: [1, 150] }, { 34: [1, 151] }, { 39: 152, 43: x, 44: g, 45: k }, { 34: [1, 153] }, { 39: 154, 43: x, 44: g, 45: k }, { 34: [1, 155] }, { 34: [1, 156] }, { 34: [1, 157] }, { 34: [1, 158] }, { 34: [1, 159] }, { 34: [1, 160] }, { 34: [1, 161] }, { 39: 162, 43: x, 44: g, 45: k }, { 34: [1, 163] }, { 34: [1, 164] }, { 34: [1, 165] }, { 39: 166, 43: x, 44: g, 45: k }, { 34: [1, 167] }, { 39: 168, 43: x, 44: g, 45: k }, { 34: [1, 169] }, { 34: [1, 170] }, { 34: [1, 171] }, { 39: 172, 43: x, 44: g, 45: k }, { 34: [1, 173] }, r(s, [2, 37], { 35: [1, 174] }), r(s, [2, 38], { 38: [1, 175] }), r(s, [2, 36], { 33: [1, 176] }), r(s, [2, 39], { 35: [1, 177] }), r(s, [2, 34], { 38: [1, 178] }), r(s, [2, 35], { 33: [1, 179] }), r(s, [2, 60], { 42: [1, 180] }), r(s, [2, 73], { 33: [1, 181] }), r(s, [2, 61], { 42: [1, 182] }), r(s, [2, 84], { 38: [1, 183] }), r(s, [2, 74], { 33: [1, 184] }), r(s, [2, 83], { 38: [1, 185] }), r(s, [2, 59], { 42: [1, 186] }), r(s, [2, 72], { 33: [1, 187] }), r(s, [2, 58], { 42: [1, 188] }), r(s, [2, 78], { 35: [1, 189] }), r(s, [2, 71], { 33: [1, 190] }), r(s, [2, 77], { 35: [1, 191] }), r(s, [2, 57], { 42: [1, 192] }), r(s, [2, 85], { 38: [1, 193] }), r(s, [2, 56], { 42: [1, 194] }), r(s, [2, 79], { 35: [1, 195] }), r(s, [2, 80], { 35: [1, 196] }), r(s, [2, 86], { 38: [1, 197] }), r(s, [2, 70], { 33: [1, 198] }), r(s, [2, 81], { 38: [1, 199] }), r(s, [2, 69], { 33: [1, 200] }), r(s, [2, 75], { 35: [1, 201] }), r(s, [2, 76], { 35: [1, 202] }), r(s, [2, 82], { 38: [1, 203] }), { 34: [1, 204] }, { 39: 205, 43: x, 44: g, 45: k }, { 34: [1, 206] }, { 34: [1, 207] }, { 39: 208, 43: x, 44: g, 45: k }, { 34: [1, 209] }, { 34: [1, 210] }, { 34: [1, 211] }, { 34: [1, 212] }, { 39: 213, 43: x, 44: g, 45: k }, { 34: [1, 214] }, { 39: 215, 43: x, 44: g, 45: k }, { 34: [1, 216] }, { 34: [1, 217] }, { 34: [1, 218] }, { 34: [1, 219] }, { 34: [1, 220] }, { 34: [1, 221] }, { 34: [1, 222] }, { 39: 223, 43: x, 44: g, 45: k }, { 34: [1, 224] }, { 34: [1, 225] }, { 34: [1, 226] }, { 39: 227, 43: x, 44: g, 45: k }, { 34: [1, 228] }, { 39: 229, 43: x, 44: g, 45: k }, { 34: [1, 230] }, { 34: [1, 231] }, { 34: [1, 232] }, { 39: 233, 43: x, 44: g, 45: k }, r(s, [2, 40]), r(s, [2, 42]), r(s, [2, 41]), r(s, [2, 43]), r(s, [2, 45]), r(s, [2, 44]), r(s, [2, 101]), r(s, [2, 102]), r(s, [2, 99]), r(s, [2, 100]), r(s, [2, 104]), r(s, [2, 103]), r(s, [2, 108]), r(s, [2, 107]), r(s, [2, 106]), r(s, [2, 105]), r(s, [2, 110]), r(s, [2, 109]), r(s, [2, 98]), r(s, [2, 97]), r(s, [2, 96]), r(s, [2, 95]), r(s, [2, 93]), r(s, [2, 94]), r(s, [2, 92]), r(s, [2, 91]), r(s, [2, 90]), r(s, [2, 89]), r(s, [2, 87]), r(s, [2, 88])],
+ defaultActions: { 9: [2, 118], 10: [2, 1], 11: [2, 2], 19: [2, 3], 27: [2, 4], 46: [2, 120], 47: [2, 5] },
+ parseError: function(l, u) {
+ if (u.recoverable)
+ this.trace(l);
+ else {
+ var b = new Error(l);
+ throw b.hash = u, b;
+ }
+ },
+ parse: function(l) {
+ var u = this, b = [0], i = [], E = [null], e = [], J = this.table, t = "", Z = 0, be = 0, Re = 2, ge = 1, Ce = e.slice.call(arguments, 1), L = Object.create(this.lexer), B = { yy: {} };
+ for (var ce in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, ce) && (B.yy[ce] = this.yy[ce]);
+ L.setInput(l, B.yy), B.yy.lexer = L, B.yy.parser = this, typeof L.yylloc > "u" && (L.yylloc = {});
+ var oe = L.yylloc;
+ e.push(oe);
+ var Le = L.options && L.options.ranges;
+ typeof B.yy.parseError == "function" ? this.parseError = B.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function Me() {
+ var j;
+ return j = i.pop() || L.lex() || ge, typeof j != "number" && (j instanceof Array && (i = j, j = i.pop()), j = u.symbols_[j] || j), j;
+ }
+ for (var S, Y, D, le, U = {}, $, z, de, ee; ; ) {
+ if (Y = b[b.length - 1], this.defaultActions[Y] ? D = this.defaultActions[Y] : ((S === null || typeof S > "u") && (S = Me()), D = J[Y] && J[Y][S]), typeof D > "u" || !D.length || !D[0]) {
+ var he = "";
+ ee = [];
+ for ($ in J[Y])
+ this.terminals_[$] && $ > Re && ee.push("'" + this.terminals_[$] + "'");
+ L.showPosition ? he = "Parse error on line " + (Z + 1) + `:
+` + L.showPosition() + `
+Expecting ` + ee.join(", ") + ", got '" + (this.terminals_[S] || S) + "'" : he = "Parse error on line " + (Z + 1) + ": Unexpected " + (S == ge ? "end of input" : "'" + (this.terminals_[S] || S) + "'"), this.parseError(he, {
+ text: L.match,
+ token: this.terminals_[S] || S,
+ line: L.yylineno,
+ loc: oe,
+ expected: ee
+ });
+ }
+ if (D[0] instanceof Array && D.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + Y + ", token: " + S);
+ switch (D[0]) {
+ case 1:
+ b.push(S), E.push(L.yytext), e.push(L.yylloc), b.push(D[1]), S = null, be = L.yyleng, t = L.yytext, Z = L.yylineno, oe = L.yylloc;
+ break;
+ case 2:
+ if (z = this.productions_[D[1]][1], U.$ = E[E.length - z], U._$ = {
+ first_line: e[e.length - (z || 1)].first_line,
+ last_line: e[e.length - 1].last_line,
+ first_column: e[e.length - (z || 1)].first_column,
+ last_column: e[e.length - 1].last_column
+ }, Le && (U._$.range = [
+ e[e.length - (z || 1)].range[0],
+ e[e.length - 1].range[1]
+ ]), le = this.performAction.apply(U, [
+ t,
+ be,
+ Z,
+ B.yy,
+ D[1],
+ E,
+ e
+ ].concat(Ce)), typeof le < "u")
+ return le;
+ z && (b = b.slice(0, -1 * z * 2), E = E.slice(0, -1 * z), e = e.slice(0, -1 * z)), b.push(this.productions_[D[1]][0]), E.push(U.$), e.push(U._$), de = J[b[b.length - 2]][b[b.length - 1]], b.push(de);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, Te = function() {
+ var q = {
+ EOF: 1,
+ parseError: function(u, b) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(u, b);
+ else
+ throw new Error(u);
+ },
+ // resets the lexer, sets new input
+ setInput: function(l, u) {
+ return this.yy = u || this.yy || {}, this._input = l, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var l = this._input[0];
+ this.yytext += l, this.yyleng++, this.offset++, this.match += l, this.matched += l;
+ var u = l.match(/(?:\r\n?|\n).*/g);
+ return u ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), l;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(l) {
+ var u = l.length, b = l.split(/(?:\r\n?|\n)/g);
+ this._input = l + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - u), this.offset -= u;
+ var i = 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), b.length - 1 && (this.yylineno -= b.length - 1);
+ var E = 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: b ? (b.length === i.length ? this.yylloc.first_column : 0) + i[i.length - b.length].length - b[0].length : this.yylloc.first_column - u
+ }, this.options.ranges && (this.yylloc.range = [E[0], E[0] + this.yyleng - u]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(l) {
+ this.unput(this.match.slice(l));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var l = this.matched.substr(0, this.matched.length - this.match.length);
+ return (l.length > 20 ? "..." : "") + l.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var l = this.match;
+ return l.length < 20 && (l += this._input.substr(0, 20 - l.length)), (l.substr(0, 20) + (l.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var l = this.pastInput(), u = new Array(l.length + 1).join("-");
+ return l + this.upcomingInput() + `
+` + u + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(l, u) {
+ var b, i, E;
+ if (this.options.backtrack_lexer && (E = {
+ 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 && (E.yylloc.range = this.yylloc.range.slice(0))), i = l[0].match(/(?:\r\n?|\n).*/g), i && (this.yylineno += i.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: i ? i[i.length - 1].length - i[i.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + l[0].length
+ }, this.yytext += l[0], this.match += l[0], this.matches = l, 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(l[0].length), this.matched += l[0], b = this.performAction.call(this, this.yy, this, u, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), b)
+ return b;
+ if (this._backtrack) {
+ for (var e in E)
+ this[e] = E[e];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var l, u, b, i;
+ this._more || (this.yytext = "", this.match = "");
+ for (var E = this._currentRules(), e = 0; e < E.length; e++)
+ if (b = this._input.match(this.rules[E[e]]), b && (!u || b[0].length > u[0].length)) {
+ if (u = b, i = e, this.options.backtrack_lexer) {
+ if (l = this.test_match(b, E[e]), l !== !1)
+ return l;
+ if (this._backtrack) {
+ u = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return u ? (l = this.test_match(u, E[i]), l !== !1 ? l : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var u = this.next();
+ return u || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(u) {
+ this.conditionStack.push(u);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var u = this.conditionStack.length - 1;
+ return u > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(u) {
+ return u = this.conditionStack.length - 1 - Math.abs(u || 0), u >= 0 ? this.conditionStack[u] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(u) {
+ this.begin(u);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": !0 },
+ performAction: function(u, b, i, E) {
+ switch (i) {
+ case 0:
+ return this.begin("open_directive"), 50;
+ case 1:
+ return this.begin("type_directive"), 51;
+ case 2:
+ return this.popState(), this.begin("arg_directive"), 9;
+ case 3:
+ return this.popState(), this.popState(), 53;
+ case 4:
+ return 52;
+ case 5:
+ return this.begin("acc_title"), 20;
+ case 6:
+ return this.popState(), "acc_title_value";
+ case 7:
+ return this.begin("acc_descr"), 22;
+ case 8:
+ return this.popState(), "acc_descr_value";
+ case 9:
+ this.begin("acc_descr_multiline");
+ break;
+ case 10:
+ this.popState();
+ break;
+ case 11:
+ return "acc_descr_multiline_value";
+ case 12:
+ return 14;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ return 6;
+ case 16:
+ return 40;
+ case 17:
+ return 33;
+ case 18:
+ return 38;
+ case 19:
+ return 42;
+ case 20:
+ return 43;
+ case 21:
+ return 44;
+ case 22:
+ return 45;
+ case 23:
+ return 35;
+ case 24:
+ return 29;
+ case 25:
+ return 30;
+ case 26:
+ return 37;
+ case 27:
+ return 32;
+ case 28:
+ return 27;
+ case 29:
+ return 10;
+ case 30:
+ return 10;
+ case 31:
+ return 9;
+ case 32:
+ return "CARET";
+ case 33:
+ this.begin("options");
+ break;
+ case 34:
+ this.popState();
+ break;
+ case 35:
+ return 13;
+ case 36:
+ return 36;
+ case 37:
+ this.begin("string");
+ break;
+ case 38:
+ this.popState();
+ break;
+ case 39:
+ return 34;
+ case 40:
+ return 31;
+ case 41:
+ return 54;
+ case 42:
+ return 8;
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gitGraph\b)/i, /^(?:commit(?=\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\b)/i, /^(?:REVERSE\b)/i, /^(?:HIGHLIGHT\b)/i, /^(?:tag:)/i, /^(?:branch(?=\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\s|$))/i, /^(?:cherry-pick(?=\s|$))/i, /^(?:checkout(?=\s|$))/i, /^(?:LR\b)/i, /^(?:BT\b)/i, /^(?::)/i, /^(?:\^)/i, /^(?:options\r?\n)/i, /^(?:[ \r\n\t]+end\b)/i, /^(?:[\s\S]+(?=[ \r\n\t]+end))/i, /^(?:["]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[0-9]+(?=\s|$))/i, /^(?:\w([-\./\w]*[-\w])?)/i, /^(?:$)/i, /^(?:\s+)/i],
+ conditions: { acc_descr_multiline: { rules: [10, 11], inclusive: !1 }, acc_descr: { rules: [8], inclusive: !1 }, acc_title: { rules: [6], inclusive: !1 }, close_directive: { rules: [], inclusive: !1 }, arg_directive: { rules: [3, 4], inclusive: !1 }, type_directive: { rules: [2, 3], inclusive: !1 }, open_directive: { rules: [1], inclusive: !1 }, options: { rules: [34, 35], inclusive: !1 }, string: { rules: [38, 39], inclusive: !1 }, INITIAL: { rules: [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 40, 41, 42, 43], inclusive: !0 } }
+ };
+ return q;
+ }();
+ ne.lexer = Te;
+ function ae() {
+ this.yy = {};
+ }
+ return ae.prototype = ne, ne.Parser = ae, new ae();
+}();
+me.parser = me;
+const qe = me;
+let te = A().gitGraph.mainBranchName, Be = A().gitGraph.mainBranchOrder, R = {}, O = null, Q = {};
+Q[te] = { name: te, order: Be };
+let T = {};
+T[te] = O;
+let M = te, xe = "LR", F = 0;
+function fe() {
+ return De({ length: 7 });
+}
+const Ye = function(r, n, o) {
+ je.parseDirective(this, r, n, o);
+};
+function Ke(r, n) {
+ const o = /* @__PURE__ */ Object.create(null);
+ return r.reduce((h, a) => {
+ const c = n(a);
+ return o[c] || (o[c] = !0, h.push(a)), h;
+ }, []);
+}
+const Fe = function(r) {
+ xe = r;
+};
+let ye = {};
+const Ue = function(r) {
+ G.debug("options str", r), r = r && r.trim(), r = r || "{}";
+ try {
+ ye = JSON.parse(r);
+ } catch (n) {
+ G.error("error while parsing gitGraph options", n.message);
+ }
+}, Je = function() {
+ return ye;
+}, We = function(r, n, o, h) {
+ G.debug("Entering commit:", r, n, o, h), n = V.sanitizeText(n, A()), r = V.sanitizeText(r, A()), h = V.sanitizeText(h, A());
+ const a = {
+ id: n || F + "-" + fe(),
+ message: r,
+ seq: F++,
+ type: o || X.NORMAL,
+ tag: h || "",
+ parents: O == null ? [] : [O.id],
+ branch: M
+ };
+ O = a, R[a.id] = a, T[M] = a.id, G.debug("in pushCommit " + a.id);
+}, Qe = function(r, n) {
+ if (r = V.sanitizeText(r, A()), T[r] === void 0)
+ T[r] = O != null ? O.id : null, Q[r] = { name: r, order: n ? parseInt(n, 10) : null }, Ee(r), G.debug("in createBranch");
+ else {
+ let o = new Error(
+ 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ' + r + '")'
+ );
+ throw o.hash = {
+ text: "branch " + r,
+ token: "branch " + r,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"checkout ' + r + '"']
+ }, o;
+ }
+}, Xe = function(r, n, o, h) {
+ r = V.sanitizeText(r, A()), n = V.sanitizeText(n, A());
+ const a = R[T[M]], c = R[T[r]];
+ if (M === r) {
+ let p = new Error('Incorrect usage of "merge". Cannot merge a branch to itself');
+ throw p.hash = {
+ text: "merge " + r,
+ token: "merge " + r,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["branch abc"]
+ }, p;
+ } else if (a === void 0 || !a) {
+ let p = new Error(
+ 'Incorrect usage of "merge". Current branch (' + M + ")has no commits"
+ );
+ throw p.hash = {
+ text: "merge " + r,
+ token: "merge " + r,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["commit"]
+ }, p;
+ } else if (T[r] === void 0) {
+ let p = new Error(
+ 'Incorrect usage of "merge". Branch to be merged (' + r + ") does not exist"
+ );
+ throw p.hash = {
+ text: "merge " + r,
+ token: "merge " + r,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["branch " + r]
+ }, p;
+ } else if (c === void 0 || !c) {
+ let p = new Error(
+ 'Incorrect usage of "merge". Branch to be merged (' + r + ") has no commits"
+ );
+ throw p.hash = {
+ text: "merge " + r,
+ token: "merge " + r,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"commit"']
+ }, p;
+ } else if (a === c) {
+ let p = new Error('Incorrect usage of "merge". Both branches have same head');
+ throw p.hash = {
+ text: "merge " + r,
+ token: "merge " + r,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["branch abc"]
+ }, p;
+ } else if (n && R[n] !== void 0) {
+ let p = new Error(
+ 'Incorrect usage of "merge". Commit with id:' + n + " already exists, use different custom Id"
+ );
+ throw p.hash = {
+ text: "merge " + r + n + o + h,
+ token: "merge " + r + n + o + h,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: [
+ "merge " + r + " " + n + "_UNIQUE " + o + " " + h
+ ]
+ }, p;
+ }
+ const f = {
+ id: n || F + "-" + fe(),
+ message: "merged branch " + r + " into " + M,
+ seq: F++,
+ parents: [O == null ? null : O.id, T[r]],
+ branch: M,
+ type: X.MERGE,
+ customType: o,
+ customId: !!n,
+ tag: h || ""
+ };
+ O = f, R[f.id] = f, T[M] = f.id, G.debug(T), G.debug("in mergeBranch");
+}, Ze = function(r, n, o) {
+ if (G.debug("Entering cherryPick:", r, n, o), r = V.sanitizeText(r, A()), n = V.sanitizeText(n, A()), o = V.sanitizeText(o, A()), !r || R[r] === void 0) {
+ let c = new Error(
+ 'Incorrect usage of "cherryPick". Source commit id should exist and provided'
+ );
+ throw c.hash = {
+ text: "cherryPick " + r + " " + n,
+ token: "cherryPick " + r + " " + n,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ }, c;
+ }
+ let h = R[r], a = h.branch;
+ if (h.type === X.MERGE) {
+ let c = new Error(
+ 'Incorrect usage of "cherryPick". Source commit should not be a merge commit'
+ );
+ throw c.hash = {
+ text: "cherryPick " + r + " " + n,
+ token: "cherryPick " + r + " " + n,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ }, c;
+ }
+ if (!n || R[n] === void 0) {
+ if (a === M) {
+ let p = new Error(
+ 'Incorrect usage of "cherryPick". Source commit is already on current branch'
+ );
+ throw p.hash = {
+ text: "cherryPick " + r + " " + n,
+ token: "cherryPick " + r + " " + n,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ }, p;
+ }
+ const c = R[T[M]];
+ if (c === void 0 || !c) {
+ let p = new Error(
+ 'Incorrect usage of "cherry-pick". Current branch (' + M + ")has no commits"
+ );
+ throw p.hash = {
+ text: "cherryPick " + r + " " + n,
+ token: "cherryPick " + r + " " + n,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ }, p;
+ }
+ const f = {
+ id: F + "-" + fe(),
+ message: "cherry-picked " + h + " into " + M,
+ seq: F++,
+ parents: [O == null ? null : O.id, h.id],
+ branch: M,
+ type: X.CHERRY_PICK,
+ tag: o ?? "cherry-pick:" + h.id
+ };
+ O = f, R[f.id] = f, T[M] = f.id, G.debug(T), G.debug("in cherryPick");
+ }
+}, Ee = function(r) {
+ if (r = V.sanitizeText(r, A()), T[r] === void 0) {
+ let n = new Error(
+ 'Trying to checkout branch which is not yet created. (Help try using "branch ' + r + '")'
+ );
+ throw n.hash = {
+ text: "checkout " + r,
+ token: "checkout " + r,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"branch ' + r + '"']
+ }, n;
+ } else {
+ M = r;
+ const n = T[M];
+ O = R[n];
+ }
+};
+function ke(r, n, o) {
+ const h = r.indexOf(n);
+ h === -1 ? r.push(o) : r.splice(h, 1, o);
+}
+function we(r) {
+ const n = r.reduce((a, c) => a.seq > c.seq ? a : c, r[0]);
+ let o = "";
+ r.forEach(function(a) {
+ a === n ? o += " *" : o += " |";
+ });
+ const h = [o, n.id, n.seq];
+ for (let a in T)
+ T[a] === n.id && h.push(a);
+ if (G.debug(h.join(" ")), n.parents && n.parents.length == 2) {
+ const a = R[n.parents[0]];
+ ke(r, n, a), r.push(R[n.parents[1]]);
+ } else {
+ if (n.parents.length == 0)
+ return;
+ {
+ const a = R[n.parents];
+ ke(r, n, a);
+ }
+ }
+ r = Ke(r, (a) => a.id), we(r);
+}
+const $e = function() {
+ G.debug(R);
+ const r = ve()[0];
+ we([r]);
+}, et = function() {
+ R = {}, O = null;
+ let r = A().gitGraph.mainBranchName, n = A().gitGraph.mainBranchOrder;
+ T = {}, T[r] = null, Q = {}, Q[r] = { name: r, order: n }, M = r, F = 0, He();
+}, tt = function() {
+ return Object.values(Q).map((n, o) => n.order !== null ? n : {
+ ...n,
+ order: parseFloat(`0.${o}`, 10)
+ }).sort((n, o) => n.order - o.order).map(({ name: n }) => ({ name: n }));
+}, rt = function() {
+ return T;
+}, it = function() {
+ return R;
+}, ve = function() {
+ const r = Object.keys(R).map(function(n) {
+ return R[n];
+ });
+ return r.forEach(function(n) {
+ G.debug(n.id);
+ }), r.sort((n, o) => n.seq - o.seq), r;
+}, st = function() {
+ return M;
+}, nt = function() {
+ return xe;
+}, at = function() {
+ return O;
+}, X = {
+ NORMAL: 0,
+ REVERSE: 1,
+ HIGHLIGHT: 2,
+ MERGE: 3,
+ CHERRY_PICK: 4
+}, ct = {
+ parseDirective: Ye,
+ getConfig: () => A().gitGraph,
+ setDirection: Fe,
+ setOptions: Ue,
+ getOptions: Je,
+ commit: We,
+ branch: Qe,
+ merge: Xe,
+ cherryPick: Ze,
+ checkout: Ee,
+ //reset,
+ prettyPrint: $e,
+ clear: et,
+ getBranchesAsObjArray: tt,
+ getBranches: rt,
+ getCommits: it,
+ getCommitsArray: ve,
+ getCurrentBranch: st,
+ getDirection: nt,
+ getHead: at,
+ setAccTitle: Ae,
+ getAccTitle: Oe,
+ getAccDescription: Se,
+ setAccDescription: Ie,
+ setDiagramTitle: Ge,
+ getDiagramTitle: Pe,
+ commitType: X
+};
+let W = {};
+const H = {
+ NORMAL: 0,
+ REVERSE: 1,
+ HIGHLIGHT: 2,
+ MERGE: 3,
+ CHERRY_PICK: 4
+}, K = 8;
+let I = {}, re = {}, ie = [], se = 0;
+const ot = () => {
+ I = {}, re = {}, W = {}, se = 0, ie = [];
+}, lt = (r) => {
+ const n = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ let o = [];
+ typeof r == "string" ? o = r.split(/\\n|\n|
/gi) : Array.isArray(r) ? o = r : o = [];
+ for (const h of o) {
+ const a = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ a.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), a.setAttribute("dy", "1em"), a.setAttribute("x", "0"), a.setAttribute("class", "row"), a.textContent = h.trim(), n.appendChild(a);
+ }
+ return n;
+}, _e = (r, n, o) => {
+ const h = pe().gitGraph, a = r.append("g").attr("class", "commit-bullets"), c = r.append("g").attr("class", "commit-labels");
+ let f = 0;
+ Object.keys(n).sort((y, m) => n[y].seq - n[m].seq).forEach((y) => {
+ const m = n[y], d = I[m.branch].pos, _ = f + 10;
+ if (o) {
+ let s, C = m.customType !== void 0 && m.customType !== "" ? m.customType : m.type;
+ switch (C) {
+ case H.NORMAL:
+ s = "commit-normal";
+ break;
+ case H.REVERSE:
+ s = "commit-reverse";
+ break;
+ case H.HIGHLIGHT:
+ s = "commit-highlight";
+ break;
+ case H.MERGE:
+ s = "commit-merge";
+ break;
+ case H.CHERRY_PICK:
+ s = "commit-cherry-pick";
+ break;
+ default:
+ s = "commit-normal";
+ }
+ if (C === H.HIGHLIGHT) {
+ const v = a.append("rect");
+ v.attr("x", _ - 10), v.attr("y", d - 10), v.attr("height", 20), v.attr("width", 20), v.attr(
+ "class",
+ `commit ${m.id} commit-highlight${I[m.branch].index % K} ${s}-outer`
+ ), a.append("rect").attr("x", _ - 6).attr("y", d - 6).attr("height", 12).attr("width", 12).attr(
+ "class",
+ `commit ${m.id} commit${I[m.branch].index % K} ${s}-inner`
+ );
+ } else if (C === H.CHERRY_PICK)
+ a.append("circle").attr("cx", _).attr("cy", d).attr("r", 10).attr("class", `commit ${m.id} ${s}`), a.append("circle").attr("cx", _ - 3).attr("cy", d + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${m.id} ${s}`), a.append("circle").attr("cx", _ + 3).attr("cy", d + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${m.id} ${s}`), a.append("line").attr("x1", _ + 3).attr("y1", d + 1).attr("x2", _).attr("y2", d - 5).attr("stroke", "#fff").attr("class", `commit ${m.id} ${s}`), a.append("line").attr("x1", _ - 3).attr("y1", d + 1).attr("x2", _).attr("y2", d - 5).attr("stroke", "#fff").attr("class", `commit ${m.id} ${s}`);
+ else {
+ const v = a.append("circle");
+ if (v.attr("cx", _), v.attr("cy", d), v.attr("r", m.type === H.MERGE ? 9 : 10), v.attr(
+ "class",
+ `commit ${m.id} commit${I[m.branch].index % K}`
+ ), C === H.MERGE) {
+ const N = a.append("circle");
+ N.attr("cx", _), N.attr("cy", d), N.attr("r", 6), N.attr(
+ "class",
+ `commit ${s} ${m.id} commit${I[m.branch].index % K}`
+ );
+ }
+ C === H.REVERSE && a.append("path").attr("d", `M ${_ - 5},${d - 5}L${_ + 5},${d + 5}M${_ - 5},${d + 5}L${_ + 5},${d - 5}`).attr(
+ "class",
+ `commit ${s} ${m.id} commit${I[m.branch].index % K}`
+ );
+ }
+ }
+ if (re[m.id] = { x: f + 10, y: d }, o) {
+ if (m.type !== H.CHERRY_PICK && (m.customId && m.type === H.MERGE || m.type !== H.MERGE) && h.showCommitLabel) {
+ const v = c.append("g"), N = v.insert("rect").attr("class", "commit-label-bkg"), x = v.append("text").attr("x", f).attr("y", d + 25).attr("class", "commit-label").text(m.id);
+ let g = x.node().getBBox();
+ if (N.attr("x", f + 10 - g.width / 2 - 2).attr("y", d + 13.5).attr("width", g.width + 2 * 2).attr("height", g.height + 2 * 2), x.attr("x", f + 10 - g.width / 2), h.rotateCommitLabel) {
+ let k = -7.5 - (g.width + 10) / 25 * 9.5, P = 10 + g.width / 25 * 8.5;
+ v.attr(
+ "transform",
+ "translate(" + k + ", " + P + ") rotate(" + -45 + ", " + f + ", " + d + ")"
+ );
+ }
+ }
+ if (m.tag) {
+ const v = c.insert("polygon"), N = c.append("circle"), x = c.append("text").attr("y", d - 16).attr("class", "tag-label").text(m.tag);
+ let g = x.node().getBBox();
+ x.attr("x", f + 10 - g.width / 2);
+ const k = g.height / 2, P = d - 19.2;
+ v.attr("class", "tag-label-bkg").attr(
+ "points",
+ `
+ ${f - g.width / 2 - 4 / 2},${P + 2}
+ ${f - g.width / 2 - 4 / 2},${P - 2}
+ ${f + 10 - g.width / 2 - 4},${P - k - 2}
+ ${f + 10 + g.width / 2 + 4},${P - k - 2}
+ ${f + 10 + g.width / 2 + 4},${P + k + 2}
+ ${f + 10 - g.width / 2 - 4},${P + k + 2}`
+ ), N.attr("cx", f - g.width / 2 + 4 / 2).attr("cy", P).attr("r", 1.5).attr("class", "tag-hole");
+ }
+ }
+ f += 50, f > se && (se = f);
+ });
+}, ht = (r, n, o) => Object.keys(o).filter((c) => o[c].branch === n.branch && o[c].seq > r.seq && o[c].seq < n.seq).length > 0, ue = (r, n, o = 0) => {
+ const h = r + Math.abs(r - n) / 2;
+ if (o > 5)
+ return h;
+ if (ie.every((f) => Math.abs(f - h) >= 10))
+ return ie.push(h), h;
+ const c = Math.abs(r - n);
+ return ue(r, n - c / 5, o + 1);
+}, mt = (r, n, o, h) => {
+ const a = re[n.id], c = re[o.id], f = ht(n, o, h);
+ let p = "", w = "", y = 0, m = 0, d = I[o.branch].index, _;
+ if (f) {
+ p = "A 10 10, 0, 0, 0,", w = "A 10 10, 0, 0, 1,", y = 10, m = 10, d = I[o.branch].index;
+ const s = a.y < c.y ? ue(a.y, c.y) : ue(c.y, a.y);
+ a.y < c.y ? _ = `M ${a.x} ${a.y} L ${a.x} ${s - y} ${p} ${a.x + m} ${s} L ${c.x - y} ${s} ${w} ${c.x} ${s + m} L ${c.x} ${c.y}` : _ = `M ${a.x} ${a.y} L ${a.x} ${s + y} ${w} ${a.x + m} ${s} L ${c.x - y} ${s} ${p} ${c.x} ${s - m} L ${c.x} ${c.y}`;
+ } else
+ a.y < c.y && (p = "A 20 20, 0, 0, 0,", y = 20, m = 20, d = I[o.branch].index, _ = `M ${a.x} ${a.y} L ${a.x} ${c.y - y} ${p} ${a.x + m} ${c.y} L ${c.x} ${c.y}`), a.y > c.y && (p = "A 20 20, 0, 0, 0,", y = 20, m = 20, d = I[n.branch].index, _ = `M ${a.x} ${a.y} L ${c.x - y} ${a.y} ${p} ${c.x} ${a.y - m} L ${c.x} ${c.y}`), a.y === c.y && (d = I[n.branch].index, _ = `M ${a.x} ${a.y} L ${a.x} ${c.y - y} ${p} ${a.x + m} ${c.y} L ${c.x} ${c.y}`);
+ r.append("path").attr("d", _).attr("class", "arrow arrow" + d % K);
+}, ut = (r, n) => {
+ const o = r.append("g").attr("class", "commit-arrows");
+ Object.keys(n).forEach((h) => {
+ const a = n[h];
+ a.parents && a.parents.length > 0 && a.parents.forEach((c) => {
+ mt(o, n[c], a, n);
+ });
+ });
+}, pt = (r, n) => {
+ const o = pe().gitGraph, h = r.append("g");
+ n.forEach((a, c) => {
+ const f = c % K, p = I[a.name].pos, w = h.append("line");
+ w.attr("x1", 0), w.attr("y1", p), w.attr("x2", se), w.attr("y2", p), w.attr("class", "branch branch" + f), ie.push(p);
+ let y = a.name;
+ const m = lt(y), d = h.insert("rect"), s = h.insert("g").attr("class", "branchLabel").insert("g").attr("class", "label branch-label" + f);
+ s.node().appendChild(m);
+ let C = m.getBBox();
+ d.attr("class", "branchLabelBkg label" + f).attr("rx", 4).attr("ry", 4).attr("x", -C.width - 4 - (o.rotateCommitLabel === !0 ? 30 : 0)).attr("y", -C.height / 2 + 8).attr("width", C.width + 18).attr("height", C.height + 4), s.attr(
+ "transform",
+ "translate(" + (-C.width - 14 - (o.rotateCommitLabel === !0 ? 30 : 0)) + ", " + (p - C.height / 2 - 1) + ")"
+ ), d.attr("transform", "translate(" + -19 + ", " + (p - C.height / 2) + ")");
+ });
+}, ft = function(r, n, o, h) {
+ ot();
+ const a = pe(), c = a.gitGraph;
+ G.debug("in gitgraph renderer", r + `
+`, "id:", n, o), W = h.db.getCommits();
+ const f = h.db.getBranchesAsObjArray();
+ let p = 0;
+ f.forEach((y, m) => {
+ I[y.name] = { pos: p, index: m }, p += 50 + (c.rotateCommitLabel ? 40 : 0);
+ });
+ const w = Ne(`[id="${n}"]`);
+ _e(w, W, !1), c.showBranches && pt(w, f), ut(w, W), _e(w, W, !0), Ve.insertTitle(
+ w,
+ "gitTitleText",
+ c.titleTopMargin,
+ h.db.getDiagramTitle()
+ ), ze(
+ void 0,
+ w,
+ c.diagramPadding,
+ c.useMaxWidth ?? a.useMaxWidth
+ );
+}, bt = {
+ draw: ft
+}, gt = (r) => `
+ .commit-id,
+ .commit-msg,
+ .branch-label {
+ fill: lightgrey;
+ color: lightgrey;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+ ${[0, 1, 2, 3, 4, 5, 6, 7].map(
+ (n) => `
+ .branch-label${n} { fill: ${r["gitBranchLabel" + n]}; }
+ .commit${n} { stroke: ${r["git" + n]}; fill: ${r["git" + n]}; }
+ .commit-highlight${n} { stroke: ${r["gitInv" + n]}; fill: ${r["gitInv" + n]}; }
+ .label${n} { fill: ${r["git" + n]}; }
+ .arrow${n} { stroke: ${r["git" + n]}; }
+ `
+).join(`
+`)}
+
+ .branch {
+ stroke-width: 1;
+ stroke: ${r.lineColor};
+ stroke-dasharray: 2;
+ }
+ .commit-label { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelColor};}
+ .commit-label-bkg { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelBackground}; opacity: 0.5; }
+ .tag-label { font-size: ${r.tagLabelFontSize}; fill: ${r.tagLabelColor};}
+ .tag-label-bkg { fill: ${r.tagLabelBackground}; stroke: ${r.tagLabelBorder}; }
+ .tag-hole { fill: ${r.textColor}; }
+
+ .commit-merge {
+ stroke: ${r.primaryColor};
+ fill: ${r.primaryColor};
+ }
+ .commit-reverse {
+ stroke: ${r.primaryColor};
+ fill: ${r.primaryColor};
+ stroke-width: 3;
+ }
+ .commit-highlight-outer {
+ }
+ .commit-highlight-inner {
+ stroke: ${r.primaryColor};
+ fill: ${r.primaryColor};
+ }
+
+ .arrow { stroke-width: 8; stroke-linecap: round; fill: none}
+ .gitTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${r.textColor};
+ }
+ }
+`, dt = gt, yt = {
+ parser: qe,
+ db: ct,
+ renderer: bt,
+ styles: dt
+};
+export {
+ yt as diagram
+};
+//# sourceMappingURL=gitGraphDiagram-603d2a33.js.map
diff --git a/scopegraphs-render-docs/doc/js/gitGraphDiagram-fb502d5b.js b/scopegraphs-render-docs/doc/js/gitGraphDiagram-fb502d5b.js
new file mode 100644
index 0000000..29bb684
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/gitGraphDiagram-fb502d5b.js
@@ -0,0 +1,1677 @@
+import { g as getConfig, q as setAccTitle, v as getAccTitle, w as getAccDescription, x as setAccDescription, y as setDiagramTitle, z as getDiagramTitle, l as log, f as common, A as clear$2, h as select } from "./commonDb-89160e91.js";
+import { H as random, I as getConfig$1, u as utils, J as setupGraphViewbox } from "./utils-1aebe9b6.js";
+import { m as mermaidAPI } from "./mermaidAPI-c841a67f.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 4], $V1 = [1, 7], $V2 = [1, 5], $V3 = [1, 9], $V4 = [1, 6], $V5 = [2, 6], $V6 = [1, 16], $V7 = [6, 8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40, 50, 55], $V8 = [8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], $V9 = [8, 13, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], $Va = [1, 26], $Vb = [6, 8, 14, 50, 55], $Vc = [8, 14, 55], $Vd = [1, 53], $Ve = [1, 52], $Vf = [8, 14, 30, 33, 35, 38, 55], $Vg = [1, 67], $Vh = [1, 68], $Vi = [1, 69], $Vj = [8, 14, 33, 35, 42, 55];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "eol": 4, "directive": 5, "GG": 6, "document": 7, "EOF": 8, ":": 9, "DIR": 10, "options": 11, "body": 12, "OPT": 13, "NL": 14, "line": 15, "statement": 16, "commitStatement": 17, "mergeStatement": 18, "cherryPickStatement": 19, "acc_title": 20, "acc_title_value": 21, "acc_descr": 22, "acc_descr_value": 23, "acc_descr_multiline_value": 24, "section": 25, "branchStatement": 26, "CHECKOUT": 27, "ref": 28, "BRANCH": 29, "ORDER": 30, "NUM": 31, "CHERRY_PICK": 32, "COMMIT_ID": 33, "STR": 34, "COMMIT_TAG": 35, "EMPTYSTR": 36, "MERGE": 37, "COMMIT_TYPE": 38, "commitType": 39, "COMMIT": 40, "commit_arg": 41, "COMMIT_MSG": 42, "NORMAL": 43, "REVERSE": 44, "HIGHLIGHT": 45, "openDirective": 46, "typeDirective": 47, "closeDirective": 48, "argDirective": 49, "open_directive": 50, "type_directive": 51, "arg_directive": 52, "close_directive": 53, "ID": 54, ";": 55, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 6: "GG", 8: "EOF", 9: ":", 10: "DIR", 13: "OPT", 14: "NL", 20: "acc_title", 21: "acc_title_value", 22: "acc_descr", 23: "acc_descr_value", 24: "acc_descr_multiline_value", 25: "section", 27: "CHECKOUT", 29: "BRANCH", 30: "ORDER", 31: "NUM", 32: "CHERRY_PICK", 33: "COMMIT_ID", 34: "STR", 35: "COMMIT_TAG", 36: "EMPTYSTR", 37: "MERGE", 38: "COMMIT_TYPE", 40: "COMMIT", 42: "COMMIT_MSG", 43: "NORMAL", 44: "REVERSE", 45: "HIGHLIGHT", 50: "open_directive", 51: "type_directive", 52: "arg_directive", 53: "close_directive", 54: "ID", 55: ";" },
+ productions_: [0, [3, 2], [3, 2], [3, 3], [3, 4], [3, 5], [7, 0], [7, 2], [11, 2], [11, 1], [12, 0], [12, 2], [15, 2], [15, 1], [16, 1], [16, 1], [16, 1], [16, 2], [16, 2], [16, 1], [16, 1], [16, 1], [16, 2], [26, 2], [26, 4], [19, 3], [19, 5], [19, 5], [19, 5], [19, 5], [18, 2], [18, 4], [18, 4], [18, 4], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [17, 2], [17, 3], [17, 3], [17, 5], [17, 5], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [41, 0], [41, 1], [39, 1], [39, 1], [39, 1], [5, 3], [5, 5], [46, 1], [47, 1], [49, 1], [48, 1], [28, 1], [28, 1], [4, 1], [4, 1], [4, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 3:
+ return $$[$0];
+ case 4:
+ return $$[$0 - 1];
+ case 5:
+ yy.setDirection($$[$0 - 3]);
+ return $$[$0 - 1];
+ case 7:
+ yy.setOptions($$[$0 - 1]);
+ this.$ = $$[$0];
+ break;
+ case 8:
+ $$[$0 - 1] += $$[$0];
+ this.$ = $$[$0 - 1];
+ break;
+ case 10:
+ this.$ = [];
+ break;
+ case 11:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 12:
+ this.$ = $$[$0 - 1];
+ break;
+ case 17:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 18:
+ case 19:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 20:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 22:
+ yy.checkout($$[$0]);
+ break;
+ case 23:
+ yy.branch($$[$0]);
+ break;
+ case 24:
+ yy.branch($$[$0 - 2], $$[$0]);
+ break;
+ case 25:
+ yy.cherryPick($$[$0], "", void 0);
+ break;
+ case 26:
+ yy.cherryPick($$[$0 - 2], "", $$[$0]);
+ break;
+ case 27:
+ case 29:
+ yy.cherryPick($$[$0 - 2], "", "");
+ break;
+ case 28:
+ yy.cherryPick($$[$0], "", $$[$0 - 2]);
+ break;
+ case 30:
+ yy.merge($$[$0], "", "", "");
+ break;
+ case 31:
+ yy.merge($$[$0 - 2], $$[$0], "", "");
+ break;
+ case 32:
+ yy.merge($$[$0 - 2], "", $$[$0], "");
+ break;
+ case 33:
+ yy.merge($$[$0 - 2], "", "", $$[$0]);
+ break;
+ case 34:
+ yy.merge($$[$0 - 4], $$[$0], "", $$[$0 - 2]);
+ break;
+ case 35:
+ yy.merge($$[$0 - 4], "", $$[$0], $$[$0 - 2]);
+ break;
+ case 36:
+ yy.merge($$[$0 - 4], "", $$[$0 - 2], $$[$0]);
+ break;
+ case 37:
+ yy.merge($$[$0 - 4], $$[$0 - 2], $$[$0], "");
+ break;
+ case 38:
+ yy.merge($$[$0 - 4], $$[$0 - 2], "", $$[$0]);
+ break;
+ case 39:
+ yy.merge($$[$0 - 4], $$[$0], $$[$0 - 2], "");
+ break;
+ case 40:
+ yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);
+ break;
+ case 41:
+ yy.merge($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);
+ break;
+ case 42:
+ yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);
+ break;
+ case 43:
+ yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);
+ break;
+ case 44:
+ yy.merge($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);
+ break;
+ case 45:
+ yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);
+ break;
+ case 46:
+ yy.commit($$[$0]);
+ break;
+ case 47:
+ yy.commit("", "", yy.commitType.NORMAL, $$[$0]);
+ break;
+ case 48:
+ yy.commit("", "", $$[$0], "");
+ break;
+ case 49:
+ yy.commit("", "", $$[$0], $$[$0 - 2]);
+ break;
+ case 50:
+ yy.commit("", "", $$[$0 - 2], $$[$0]);
+ break;
+ case 51:
+ yy.commit("", $$[$0], yy.commitType.NORMAL, "");
+ break;
+ case 52:
+ yy.commit("", $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);
+ break;
+ case 53:
+ yy.commit("", $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);
+ break;
+ case 54:
+ yy.commit("", $$[$0 - 2], $$[$0], "");
+ break;
+ case 55:
+ yy.commit("", $$[$0], $$[$0 - 2], "");
+ break;
+ case 56:
+ yy.commit("", $$[$0 - 4], $$[$0 - 2], $$[$0]);
+ break;
+ case 57:
+ yy.commit("", $$[$0 - 4], $$[$0], $$[$0 - 2]);
+ break;
+ case 58:
+ yy.commit("", $$[$0 - 2], $$[$0 - 4], $$[$0]);
+ break;
+ case 59:
+ yy.commit("", $$[$0], $$[$0 - 4], $$[$0 - 2]);
+ break;
+ case 60:
+ yy.commit("", $$[$0], $$[$0 - 2], $$[$0 - 4]);
+ break;
+ case 61:
+ yy.commit("", $$[$0 - 2], $$[$0], $$[$0 - 4]);
+ break;
+ case 62:
+ yy.commit($$[$0], "", yy.commitType.NORMAL, "");
+ break;
+ case 63:
+ yy.commit($$[$0], "", yy.commitType.NORMAL, $$[$0 - 2]);
+ break;
+ case 64:
+ yy.commit($$[$0 - 2], "", yy.commitType.NORMAL, $$[$0]);
+ break;
+ case 65:
+ yy.commit($$[$0 - 2], "", $$[$0], "");
+ break;
+ case 66:
+ yy.commit($$[$0], "", $$[$0 - 2], "");
+ break;
+ case 67:
+ yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, "");
+ break;
+ case 68:
+ yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, "");
+ break;
+ case 69:
+ yy.commit($$[$0 - 4], "", $$[$0 - 2], $$[$0]);
+ break;
+ case 70:
+ yy.commit($$[$0 - 4], "", $$[$0], $$[$0 - 2]);
+ break;
+ case 71:
+ yy.commit($$[$0 - 2], "", $$[$0 - 4], $$[$0]);
+ break;
+ case 72:
+ yy.commit($$[$0], "", $$[$0 - 4], $$[$0 - 2]);
+ break;
+ case 73:
+ yy.commit($$[$0], "", $$[$0 - 2], $$[$0 - 4]);
+ break;
+ case 74:
+ yy.commit($$[$0 - 2], "", $$[$0], $$[$0 - 4]);
+ break;
+ case 75:
+ yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], "");
+ break;
+ case 76:
+ yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], "");
+ break;
+ case 77:
+ yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], "");
+ break;
+ case 78:
+ yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], "");
+ break;
+ case 79:
+ yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], "");
+ break;
+ case 80:
+ yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], "");
+ break;
+ case 81:
+ yy.commit($$[$0 - 4], $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);
+ break;
+ case 82:
+ yy.commit($$[$0 - 4], $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);
+ break;
+ case 83:
+ yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, $$[$0 - 4]);
+ break;
+ case 84:
+ yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, $$[$0 - 4]);
+ break;
+ case 85:
+ yy.commit($$[$0], $$[$0 - 4], yy.commitType.NORMAL, $$[$0 - 2]);
+ break;
+ case 86:
+ yy.commit($$[$0 - 2], $$[$0 - 4], yy.commitType.NORMAL, $$[$0]);
+ break;
+ case 87:
+ yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);
+ break;
+ case 88:
+ yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);
+ break;
+ case 89:
+ yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);
+ break;
+ case 90:
+ yy.commit($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);
+ break;
+ case 91:
+ yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);
+ break;
+ case 92:
+ yy.commit($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);
+ break;
+ case 93:
+ yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0 - 2], $$[$0]);
+ break;
+ case 94:
+ yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0], $$[$0 - 2]);
+ break;
+ case 95:
+ yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0 - 4], $$[$0]);
+ break;
+ case 96:
+ yy.commit($$[$0], $$[$0 - 6], $$[$0 - 4], $$[$0 - 2]);
+ break;
+ case 97:
+ yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0], $$[$0 - 4]);
+ break;
+ case 98:
+ yy.commit($$[$0], $$[$0 - 6], $$[$0 - 2], $$[$0 - 4]);
+ break;
+ case 99:
+ yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], $$[$0 - 6]);
+ break;
+ case 100:
+ yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], $$[$0 - 6]);
+ break;
+ case 101:
+ yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], $$[$0 - 6]);
+ break;
+ case 102:
+ yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], $$[$0 - 6]);
+ break;
+ case 103:
+ yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], $$[$0 - 6]);
+ break;
+ case 104:
+ yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 6]);
+ break;
+ case 105:
+ yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0 - 6], $$[$0]);
+ break;
+ case 106:
+ yy.commit($$[$0], $$[$0 - 4], $$[$0 - 6], $$[$0 - 2]);
+ break;
+ case 107:
+ yy.commit($$[$0 - 2], $$[$0], $$[$0 - 6], $$[$0 - 4]);
+ break;
+ case 108:
+ yy.commit($$[$0], $$[$0 - 2], $$[$0 - 6], $$[$0 - 4]);
+ break;
+ case 109:
+ yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0 - 6], $$[$0]);
+ break;
+ case 110:
+ yy.commit($$[$0 - 4], $$[$0], $$[$0 - 6], $$[$0 - 2]);
+ break;
+ case 111:
+ this.$ = "";
+ break;
+ case 112:
+ this.$ = $$[$0];
+ break;
+ case 113:
+ this.$ = yy.commitType.NORMAL;
+ break;
+ case 114:
+ this.$ = yy.commitType.REVERSE;
+ break;
+ case 115:
+ this.$ = yy.commitType.HIGHLIGHT;
+ break;
+ case 118:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 119:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 120:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 121:
+ yy.parseDirective("}%%", "close_directive", "gitGraph");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 3: 11, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 7: 12, 8: $V5, 9: [1, 13], 10: [1, 14], 11: 15, 14: $V6 }, o($V7, [2, 124]), o($V7, [2, 125]), o($V7, [2, 126]), { 47: 17, 51: [1, 18] }, { 51: [2, 118] }, { 1: [2, 1] }, { 1: [2, 2] }, { 8: [1, 19] }, { 7: 20, 8: $V5, 11: 15, 14: $V6 }, { 9: [1, 21] }, o($V8, [2, 10], { 12: 22, 13: [1, 23] }), o($V9, [2, 9]), { 9: [1, 25], 48: 24, 53: $Va }, o([9, 53], [2, 119]), { 1: [2, 3] }, { 8: [1, 27] }, { 7: 28, 8: $V5, 11: 15, 14: $V6 }, { 8: [2, 7], 14: [1, 31], 15: 29, 16: 30, 17: 32, 18: 33, 19: 34, 20: [1, 35], 22: [1, 36], 24: [1, 37], 25: [1, 38], 26: 39, 27: [1, 40], 29: [1, 44], 32: [1, 43], 37: [1, 42], 40: [1, 41] }, o($V9, [2, 8]), o($Vb, [2, 116]), { 49: 45, 52: [1, 46] }, o($Vb, [2, 121]), { 1: [2, 4] }, { 8: [1, 47] }, o($V8, [2, 11]), { 4: 48, 8: $V1, 14: $V2, 55: $V4 }, o($V8, [2, 13]), o($Vc, [2, 14]), o($Vc, [2, 15]), o($Vc, [2, 16]), { 21: [1, 49] }, { 23: [1, 50] }, o($Vc, [2, 19]), o($Vc, [2, 20]), o($Vc, [2, 21]), { 28: 51, 34: $Vd, 54: $Ve }, o($Vc, [2, 111], { 41: 54, 33: [1, 57], 34: [1, 59], 35: [1, 55], 38: [1, 56], 42: [1, 58] }), { 28: 60, 34: $Vd, 54: $Ve }, { 33: [1, 61], 35: [1, 62] }, { 28: 63, 34: $Vd, 54: $Ve }, { 48: 64, 53: $Va }, { 53: [2, 120] }, { 1: [2, 5] }, o($V8, [2, 12]), o($Vc, [2, 17]), o($Vc, [2, 18]), o($Vc, [2, 22]), o($Vf, [2, 122]), o($Vf, [2, 123]), o($Vc, [2, 46]), { 34: [1, 65] }, { 39: 66, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 70] }, { 34: [1, 71] }, o($Vc, [2, 112]), o($Vc, [2, 30], { 33: [1, 72], 35: [1, 74], 38: [1, 73] }), { 34: [1, 75] }, { 34: [1, 76], 36: [1, 77] }, o($Vc, [2, 23], { 30: [1, 78] }), o($Vb, [2, 117]), o($Vc, [2, 47], { 33: [1, 80], 38: [1, 79], 42: [1, 81] }), o($Vc, [2, 48], { 33: [1, 83], 35: [1, 82], 42: [1, 84] }), o($Vj, [2, 113]), o($Vj, [2, 114]), o($Vj, [2, 115]), o($Vc, [2, 51], { 35: [1, 85], 38: [1, 86], 42: [1, 87] }), o($Vc, [2, 62], { 33: [1, 90], 35: [1, 88], 38: [1, 89] }), { 34: [1, 91] }, { 39: 92, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 93] }, o($Vc, [2, 25], { 35: [1, 94] }), { 33: [1, 95] }, { 33: [1, 96] }, { 31: [1, 97] }, { 39: 98, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 99] }, { 34: [1, 100] }, { 34: [1, 101] }, { 34: [1, 102] }, { 34: [1, 103] }, { 34: [1, 104] }, { 39: 105, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 106] }, { 34: [1, 107] }, { 39: 108, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 109] }, o($Vc, [2, 31], { 35: [1, 111], 38: [1, 110] }), o($Vc, [2, 32], { 33: [1, 113], 35: [1, 112] }), o($Vc, [2, 33], { 33: [1, 114], 38: [1, 115] }), { 34: [1, 116], 36: [1, 117] }, { 34: [1, 118] }, { 34: [1, 119] }, o($Vc, [2, 24]), o($Vc, [2, 49], { 33: [1, 120], 42: [1, 121] }), o($Vc, [2, 53], { 38: [1, 122], 42: [1, 123] }), o($Vc, [2, 63], { 33: [1, 125], 38: [1, 124] }), o($Vc, [2, 50], { 33: [1, 126], 42: [1, 127] }), o($Vc, [2, 55], { 35: [1, 128], 42: [1, 129] }), o($Vc, [2, 66], { 33: [1, 131], 35: [1, 130] }), o($Vc, [2, 52], { 38: [1, 132], 42: [1, 133] }), o($Vc, [2, 54], { 35: [1, 134], 42: [1, 135] }), o($Vc, [2, 67], { 35: [1, 137], 38: [1, 136] }), o($Vc, [2, 64], { 33: [1, 139], 38: [1, 138] }), o($Vc, [2, 65], { 33: [1, 141], 35: [1, 140] }), o($Vc, [2, 68], { 35: [1, 143], 38: [1, 142] }), { 39: 144, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 145] }, { 34: [1, 146] }, { 34: [1, 147] }, { 34: [1, 148] }, { 39: 149, 43: $Vg, 44: $Vh, 45: $Vi }, o($Vc, [2, 26]), o($Vc, [2, 27]), o($Vc, [2, 28]), o($Vc, [2, 29]), { 34: [1, 150] }, { 34: [1, 151] }, { 39: 152, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 153] }, { 39: 154, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 155] }, { 34: [1, 156] }, { 34: [1, 157] }, { 34: [1, 158] }, { 34: [1, 159] }, { 34: [1, 160] }, { 34: [1, 161] }, { 39: 162, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 163] }, { 34: [1, 164] }, { 34: [1, 165] }, { 39: 166, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 167] }, { 39: 168, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 169] }, { 34: [1, 170] }, { 34: [1, 171] }, { 39: 172, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 173] }, o($Vc, [2, 37], { 35: [1, 174] }), o($Vc, [2, 38], { 38: [1, 175] }), o($Vc, [2, 36], { 33: [1, 176] }), o($Vc, [2, 39], { 35: [1, 177] }), o($Vc, [2, 34], { 38: [1, 178] }), o($Vc, [2, 35], { 33: [1, 179] }), o($Vc, [2, 60], { 42: [1, 180] }), o($Vc, [2, 73], { 33: [1, 181] }), o($Vc, [2, 61], { 42: [1, 182] }), o($Vc, [2, 84], { 38: [1, 183] }), o($Vc, [2, 74], { 33: [1, 184] }), o($Vc, [2, 83], { 38: [1, 185] }), o($Vc, [2, 59], { 42: [1, 186] }), o($Vc, [2, 72], { 33: [1, 187] }), o($Vc, [2, 58], { 42: [1, 188] }), o($Vc, [2, 78], { 35: [1, 189] }), o($Vc, [2, 71], { 33: [1, 190] }), o($Vc, [2, 77], { 35: [1, 191] }), o($Vc, [2, 57], { 42: [1, 192] }), o($Vc, [2, 85], { 38: [1, 193] }), o($Vc, [2, 56], { 42: [1, 194] }), o($Vc, [2, 79], { 35: [1, 195] }), o($Vc, [2, 80], { 35: [1, 196] }), o($Vc, [2, 86], { 38: [1, 197] }), o($Vc, [2, 70], { 33: [1, 198] }), o($Vc, [2, 81], { 38: [1, 199] }), o($Vc, [2, 69], { 33: [1, 200] }), o($Vc, [2, 75], { 35: [1, 201] }), o($Vc, [2, 76], { 35: [1, 202] }), o($Vc, [2, 82], { 38: [1, 203] }), { 34: [1, 204] }, { 39: 205, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 206] }, { 34: [1, 207] }, { 39: 208, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 209] }, { 34: [1, 210] }, { 34: [1, 211] }, { 34: [1, 212] }, { 39: 213, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 214] }, { 39: 215, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 216] }, { 34: [1, 217] }, { 34: [1, 218] }, { 34: [1, 219] }, { 34: [1, 220] }, { 34: [1, 221] }, { 34: [1, 222] }, { 39: 223, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 224] }, { 34: [1, 225] }, { 34: [1, 226] }, { 39: 227, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 228] }, { 39: 229, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 230] }, { 34: [1, 231] }, { 34: [1, 232] }, { 39: 233, 43: $Vg, 44: $Vh, 45: $Vi }, o($Vc, [2, 40]), o($Vc, [2, 42]), o($Vc, [2, 41]), o($Vc, [2, 43]), o($Vc, [2, 45]), o($Vc, [2, 44]), o($Vc, [2, 101]), o($Vc, [2, 102]), o($Vc, [2, 99]), o($Vc, [2, 100]), o($Vc, [2, 104]), o($Vc, [2, 103]), o($Vc, [2, 108]), o($Vc, [2, 107]), o($Vc, [2, 106]), o($Vc, [2, 105]), o($Vc, [2, 110]), o($Vc, [2, 109]), o($Vc, [2, 98]), o($Vc, [2, 97]), o($Vc, [2, 96]), o($Vc, [2, 95]), o($Vc, [2, 93]), o($Vc, [2, 94]), o($Vc, [2, 92]), o($Vc, [2, 91]), o($Vc, [2, 90]), o($Vc, [2, 89]), o($Vc, [2, 87]), o($Vc, [2, 88])],
+ defaultActions: { 9: [2, 118], 10: [2, 1], 11: [2, 2], 19: [2, 3], 27: [2, 4], 46: [2, 120], 47: [2, 5] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 50;
+ case 1:
+ this.begin("type_directive");
+ return 51;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 9;
+ case 3:
+ this.popState();
+ this.popState();
+ return 53;
+ case 4:
+ return 52;
+ case 5:
+ this.begin("acc_title");
+ return 20;
+ case 6:
+ this.popState();
+ return "acc_title_value";
+ case 7:
+ this.begin("acc_descr");
+ return 22;
+ case 8:
+ this.popState();
+ return "acc_descr_value";
+ case 9:
+ this.begin("acc_descr_multiline");
+ break;
+ case 10:
+ this.popState();
+ break;
+ case 11:
+ return "acc_descr_multiline_value";
+ case 12:
+ return 14;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ return 6;
+ case 16:
+ return 40;
+ case 17:
+ return 33;
+ case 18:
+ return 38;
+ case 19:
+ return 42;
+ case 20:
+ return 43;
+ case 21:
+ return 44;
+ case 22:
+ return 45;
+ case 23:
+ return 35;
+ case 24:
+ return 29;
+ case 25:
+ return 30;
+ case 26:
+ return 37;
+ case 27:
+ return 32;
+ case 28:
+ return 27;
+ case 29:
+ return 10;
+ case 30:
+ return 10;
+ case 31:
+ return 9;
+ case 32:
+ return "CARET";
+ case 33:
+ this.begin("options");
+ break;
+ case 34:
+ this.popState();
+ break;
+ case 35:
+ return 13;
+ case 36:
+ return 36;
+ case 37:
+ this.begin("string");
+ break;
+ case 38:
+ this.popState();
+ break;
+ case 39:
+ return 34;
+ case 40:
+ return 31;
+ case 41:
+ return 54;
+ case 42:
+ return 8;
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gitGraph\b)/i, /^(?:commit(?=\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\b)/i, /^(?:REVERSE\b)/i, /^(?:HIGHLIGHT\b)/i, /^(?:tag:)/i, /^(?:branch(?=\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\s|$))/i, /^(?:cherry-pick(?=\s|$))/i, /^(?:checkout(?=\s|$))/i, /^(?:LR\b)/i, /^(?:BT\b)/i, /^(?::)/i, /^(?:\^)/i, /^(?:options\r?\n)/i, /^(?:[ \r\n\t]+end\b)/i, /^(?:[\s\S]+(?=[ \r\n\t]+end))/i, /^(?:["]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[0-9]+(?=\s|$))/i, /^(?:\w([-\./\w]*[-\w])?)/i, /^(?:$)/i, /^(?:\s+)/i],
+ conditions: { "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "options": { "rules": [34, 35], "inclusive": false }, "string": { "rules": [38, 39], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 40, 41, 42, 43], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const gitGraphParser = parser;
+let mainBranchName = getConfig().gitGraph.mainBranchName;
+let mainBranchOrder = getConfig().gitGraph.mainBranchOrder;
+let commits = {};
+let head = null;
+let branchesConfig = {};
+branchesConfig[mainBranchName] = { name: mainBranchName, order: mainBranchOrder };
+let branches = {};
+branches[mainBranchName] = head;
+let curBranch = mainBranchName;
+let direction = "LR";
+let seq = 0;
+function getId() {
+ return random({ length: 7 });
+}
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+function uniqBy(list, fn) {
+ const recordMap = /* @__PURE__ */ Object.create(null);
+ return list.reduce((out, item) => {
+ const key = fn(item);
+ if (!recordMap[key]) {
+ recordMap[key] = true;
+ out.push(item);
+ }
+ return out;
+ }, []);
+}
+const setDirection = function(dir) {
+ direction = dir;
+};
+let options = {};
+const setOptions = function(rawOptString) {
+ log.debug("options str", rawOptString);
+ rawOptString = rawOptString && rawOptString.trim();
+ rawOptString = rawOptString || "{}";
+ try {
+ options = JSON.parse(rawOptString);
+ } catch (e) {
+ log.error("error while parsing gitGraph options", e.message);
+ }
+};
+const getOptions = function() {
+ return options;
+};
+const commit = function(msg, id, type, tag) {
+ log.debug("Entering commit:", msg, id, type, tag);
+ id = common.sanitizeText(id, getConfig());
+ msg = common.sanitizeText(msg, getConfig());
+ tag = common.sanitizeText(tag, getConfig());
+ const commit2 = {
+ id: id ? id : seq + "-" + getId(),
+ message: msg,
+ seq: seq++,
+ type: type ? type : commitType$1.NORMAL,
+ tag: tag ? tag : "",
+ parents: head == null ? [] : [head.id],
+ branch: curBranch
+ };
+ head = commit2;
+ commits[commit2.id] = commit2;
+ branches[curBranch] = commit2.id;
+ log.debug("in pushCommit " + commit2.id);
+};
+const branch = function(name, order) {
+ name = common.sanitizeText(name, getConfig());
+ if (branches[name] === void 0) {
+ branches[name] = head != null ? head.id : null;
+ branchesConfig[name] = { name, order: order ? parseInt(order, 10) : null };
+ checkout(name);
+ log.debug("in createBranch");
+ } else {
+ let error = new Error(
+ 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ' + name + '")'
+ );
+ error.hash = {
+ text: "branch " + name,
+ token: "branch " + name,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"checkout ' + name + '"']
+ };
+ throw error;
+ }
+};
+const merge = function(otherBranch, custom_id, override_type, custom_tag) {
+ otherBranch = common.sanitizeText(otherBranch, getConfig());
+ custom_id = common.sanitizeText(custom_id, getConfig());
+ const currentCommit = commits[branches[curBranch]];
+ const otherCommit = commits[branches[otherBranch]];
+ if (curBranch === otherBranch) {
+ let error = new Error('Incorrect usage of "merge". Cannot merge a branch to itself');
+ error.hash = {
+ text: "merge " + otherBranch,
+ token: "merge " + otherBranch,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["branch abc"]
+ };
+ throw error;
+ } else if (currentCommit === void 0 || !currentCommit) {
+ let error = new Error(
+ 'Incorrect usage of "merge". Current branch (' + curBranch + ")has no commits"
+ );
+ error.hash = {
+ text: "merge " + otherBranch,
+ token: "merge " + otherBranch,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["commit"]
+ };
+ throw error;
+ } else if (branches[otherBranch] === void 0) {
+ let error = new Error(
+ 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") does not exist"
+ );
+ error.hash = {
+ text: "merge " + otherBranch,
+ token: "merge " + otherBranch,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["branch " + otherBranch]
+ };
+ throw error;
+ } else if (otherCommit === void 0 || !otherCommit) {
+ let error = new Error(
+ 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") has no commits"
+ );
+ error.hash = {
+ text: "merge " + otherBranch,
+ token: "merge " + otherBranch,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"commit"']
+ };
+ throw error;
+ } else if (currentCommit === otherCommit) {
+ let error = new Error('Incorrect usage of "merge". Both branches have same head');
+ error.hash = {
+ text: "merge " + otherBranch,
+ token: "merge " + otherBranch,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["branch abc"]
+ };
+ throw error;
+ } else if (custom_id && commits[custom_id] !== void 0) {
+ let error = new Error(
+ 'Incorrect usage of "merge". Commit with id:' + custom_id + " already exists, use different custom Id"
+ );
+ error.hash = {
+ text: "merge " + otherBranch + custom_id + override_type + custom_tag,
+ token: "merge " + otherBranch + custom_id + override_type + custom_tag,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: [
+ "merge " + otherBranch + " " + custom_id + "_UNIQUE " + override_type + " " + custom_tag
+ ]
+ };
+ throw error;
+ }
+ const commit2 = {
+ id: custom_id ? custom_id : seq + "-" + getId(),
+ message: "merged branch " + otherBranch + " into " + curBranch,
+ seq: seq++,
+ parents: [head == null ? null : head.id, branches[otherBranch]],
+ branch: curBranch,
+ type: commitType$1.MERGE,
+ customType: override_type,
+ customId: custom_id ? true : false,
+ tag: custom_tag ? custom_tag : ""
+ };
+ head = commit2;
+ commits[commit2.id] = commit2;
+ branches[curBranch] = commit2.id;
+ log.debug(branches);
+ log.debug("in mergeBranch");
+};
+const cherryPick = function(sourceId, targetId, tag) {
+ log.debug("Entering cherryPick:", sourceId, targetId, tag);
+ sourceId = common.sanitizeText(sourceId, getConfig());
+ targetId = common.sanitizeText(targetId, getConfig());
+ tag = common.sanitizeText(tag, getConfig());
+ if (!sourceId || commits[sourceId] === void 0) {
+ let error = new Error(
+ 'Incorrect usage of "cherryPick". Source commit id should exist and provided'
+ );
+ error.hash = {
+ text: "cherryPick " + sourceId + " " + targetId,
+ token: "cherryPick " + sourceId + " " + targetId,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ };
+ throw error;
+ }
+ let sourceCommit = commits[sourceId];
+ let sourceCommitBranch = sourceCommit.branch;
+ if (sourceCommit.type === commitType$1.MERGE) {
+ let error = new Error(
+ 'Incorrect usage of "cherryPick". Source commit should not be a merge commit'
+ );
+ error.hash = {
+ text: "cherryPick " + sourceId + " " + targetId,
+ token: "cherryPick " + sourceId + " " + targetId,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ };
+ throw error;
+ }
+ if (!targetId || commits[targetId] === void 0) {
+ if (sourceCommitBranch === curBranch) {
+ let error = new Error(
+ 'Incorrect usage of "cherryPick". Source commit is already on current branch'
+ );
+ error.hash = {
+ text: "cherryPick " + sourceId + " " + targetId,
+ token: "cherryPick " + sourceId + " " + targetId,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ };
+ throw error;
+ }
+ const currentCommit = commits[branches[curBranch]];
+ if (currentCommit === void 0 || !currentCommit) {
+ let error = new Error(
+ 'Incorrect usage of "cherry-pick". Current branch (' + curBranch + ")has no commits"
+ );
+ error.hash = {
+ text: "cherryPick " + sourceId + " " + targetId,
+ token: "cherryPick " + sourceId + " " + targetId,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["cherry-pick abc"]
+ };
+ throw error;
+ }
+ const commit2 = {
+ id: seq + "-" + getId(),
+ message: "cherry-picked " + sourceCommit + " into " + curBranch,
+ seq: seq++,
+ parents: [head == null ? null : head.id, sourceCommit.id],
+ branch: curBranch,
+ type: commitType$1.CHERRY_PICK,
+ tag: tag ?? "cherry-pick:" + sourceCommit.id
+ };
+ head = commit2;
+ commits[commit2.id] = commit2;
+ branches[curBranch] = commit2.id;
+ log.debug(branches);
+ log.debug("in cherryPick");
+ }
+};
+const checkout = function(branch2) {
+ branch2 = common.sanitizeText(branch2, getConfig());
+ if (branches[branch2] === void 0) {
+ let error = new Error(
+ 'Trying to checkout branch which is not yet created. (Help try using "branch ' + branch2 + '")'
+ );
+ error.hash = {
+ text: "checkout " + branch2,
+ token: "checkout " + branch2,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"branch ' + branch2 + '"']
+ };
+ throw error;
+ } else {
+ curBranch = branch2;
+ const id = branches[curBranch];
+ head = commits[id];
+ }
+};
+function upsert(arr, key, newVal) {
+ const index = arr.indexOf(key);
+ if (index === -1) {
+ arr.push(newVal);
+ } else {
+ arr.splice(index, 1, newVal);
+ }
+}
+function prettyPrintCommitHistory(commitArr) {
+ const commit2 = commitArr.reduce((out, commit3) => {
+ if (out.seq > commit3.seq) {
+ return out;
+ }
+ return commit3;
+ }, commitArr[0]);
+ let line = "";
+ commitArr.forEach(function(c) {
+ if (c === commit2) {
+ line += " *";
+ } else {
+ line += " |";
+ }
+ });
+ const label = [line, commit2.id, commit2.seq];
+ for (let branch2 in branches) {
+ if (branches[branch2] === commit2.id) {
+ label.push(branch2);
+ }
+ }
+ log.debug(label.join(" "));
+ if (commit2.parents && commit2.parents.length == 2) {
+ const newCommit = commits[commit2.parents[0]];
+ upsert(commitArr, commit2, newCommit);
+ commitArr.push(commits[commit2.parents[1]]);
+ } else if (commit2.parents.length == 0) {
+ return;
+ } else {
+ const nextCommit = commits[commit2.parents];
+ upsert(commitArr, commit2, nextCommit);
+ }
+ commitArr = uniqBy(commitArr, (c) => c.id);
+ prettyPrintCommitHistory(commitArr);
+}
+const prettyPrint = function() {
+ log.debug(commits);
+ const node = getCommitsArray()[0];
+ prettyPrintCommitHistory([node]);
+};
+const clear$1 = function() {
+ commits = {};
+ head = null;
+ let mainBranch = getConfig().gitGraph.mainBranchName;
+ let mainBranchOrder2 = getConfig().gitGraph.mainBranchOrder;
+ branches = {};
+ branches[mainBranch] = null;
+ branchesConfig = {};
+ branchesConfig[mainBranch] = { name: mainBranch, order: mainBranchOrder2 };
+ curBranch = mainBranch;
+ seq = 0;
+ clear$2();
+};
+const getBranchesAsObjArray = function() {
+ const branchesArray = Object.values(branchesConfig).map((branchConfig, i) => {
+ if (branchConfig.order !== null) {
+ return branchConfig;
+ }
+ return {
+ ...branchConfig,
+ order: parseFloat(`0.${i}`, 10)
+ };
+ }).sort((a, b) => a.order - b.order).map(({ name }) => ({ name }));
+ return branchesArray;
+};
+const getBranches = function() {
+ return branches;
+};
+const getCommits = function() {
+ return commits;
+};
+const getCommitsArray = function() {
+ const commitArr = Object.keys(commits).map(function(key) {
+ return commits[key];
+ });
+ commitArr.forEach(function(o) {
+ log.debug(o.id);
+ });
+ commitArr.sort((a, b) => a.seq - b.seq);
+ return commitArr;
+};
+const getCurrentBranch = function() {
+ return curBranch;
+};
+const getDirection = function() {
+ return direction;
+};
+const getHead = function() {
+ return head;
+};
+const commitType$1 = {
+ NORMAL: 0,
+ REVERSE: 1,
+ HIGHLIGHT: 2,
+ MERGE: 3,
+ CHERRY_PICK: 4
+};
+const gitGraphDb = {
+ parseDirective,
+ getConfig: () => getConfig().gitGraph,
+ setDirection,
+ setOptions,
+ getOptions,
+ commit,
+ branch,
+ merge,
+ cherryPick,
+ checkout,
+ //reset,
+ prettyPrint,
+ clear: clear$1,
+ getBranchesAsObjArray,
+ getBranches,
+ getCommits,
+ getCommitsArray,
+ getCurrentBranch,
+ getDirection,
+ getHead,
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ setAccDescription,
+ setDiagramTitle,
+ getDiagramTitle,
+ commitType: commitType$1
+};
+let allCommitsDict = {};
+const commitType = {
+ NORMAL: 0,
+ REVERSE: 1,
+ HIGHLIGHT: 2,
+ MERGE: 3,
+ CHERRY_PICK: 4
+};
+const THEME_COLOR_LIMIT = 8;
+let branchPos = {};
+let commitPos = {};
+let lanes = [];
+let maxPos = 0;
+const clear = () => {
+ branchPos = {};
+ commitPos = {};
+ allCommitsDict = {};
+ maxPos = 0;
+ lanes = [];
+};
+const drawText = (txt) => {
+ const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ let rows = [];
+ if (typeof txt === "string") {
+ rows = txt.split(/\\n|\n|
/gi);
+ } else if (Array.isArray(txt)) {
+ rows = txt;
+ } else {
+ rows = [];
+ }
+ for (const row of rows) {
+ const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
+ tspan.setAttribute("dy", "1em");
+ tspan.setAttribute("x", "0");
+ tspan.setAttribute("class", "row");
+ tspan.textContent = row.trim();
+ svgLabel.appendChild(tspan);
+ }
+ return svgLabel;
+};
+const drawCommits = (svg, commits2, modifyGraph) => {
+ const gitGraphConfig = getConfig$1().gitGraph;
+ const gBullets = svg.append("g").attr("class", "commit-bullets");
+ const gLabels = svg.append("g").attr("class", "commit-labels");
+ let pos = 0;
+ const keys = Object.keys(commits2);
+ const sortedKeys = keys.sort((a, b) => {
+ return commits2[a].seq - commits2[b].seq;
+ });
+ sortedKeys.forEach((key) => {
+ const commit2 = commits2[key];
+ const y = branchPos[commit2.branch].pos;
+ const x = pos + 10;
+ if (modifyGraph) {
+ let typeClass;
+ let commitSymbolType = commit2.customType !== void 0 && commit2.customType !== "" ? commit2.customType : commit2.type;
+ switch (commitSymbolType) {
+ case commitType.NORMAL:
+ typeClass = "commit-normal";
+ break;
+ case commitType.REVERSE:
+ typeClass = "commit-reverse";
+ break;
+ case commitType.HIGHLIGHT:
+ typeClass = "commit-highlight";
+ break;
+ case commitType.MERGE:
+ typeClass = "commit-merge";
+ break;
+ case commitType.CHERRY_PICK:
+ typeClass = "commit-cherry-pick";
+ break;
+ default:
+ typeClass = "commit-normal";
+ }
+ if (commitSymbolType === commitType.HIGHLIGHT) {
+ const circle = gBullets.append("rect");
+ circle.attr("x", x - 10);
+ circle.attr("y", y - 10);
+ circle.attr("height", 20);
+ circle.attr("width", 20);
+ circle.attr(
+ "class",
+ `commit ${commit2.id} commit-highlight${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-outer`
+ );
+ gBullets.append("rect").attr("x", x - 6).attr("y", y - 6).attr("height", 12).attr("width", 12).attr(
+ "class",
+ `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-inner`
+ );
+ } else if (commitSymbolType === commitType.CHERRY_PICK) {
+ gBullets.append("circle").attr("cx", x).attr("cy", y).attr("r", 10).attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("circle").attr("cx", x - 3).attr("cy", y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("circle").attr("cx", x + 3).attr("cy", y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("line").attr("x1", x + 3).attr("y1", y + 1).attr("x2", x).attr("y2", y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("line").attr("x1", x - 3).attr("y1", y + 1).attr("x2", x).attr("y2", y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ } else {
+ const circle = gBullets.append("circle");
+ circle.attr("cx", x);
+ circle.attr("cy", y);
+ circle.attr("r", commit2.type === commitType.MERGE ? 9 : 10);
+ circle.attr(
+ "class",
+ `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
+ );
+ if (commitSymbolType === commitType.MERGE) {
+ const circle2 = gBullets.append("circle");
+ circle2.attr("cx", x);
+ circle2.attr("cy", y);
+ circle2.attr("r", 6);
+ circle2.attr(
+ "class",
+ `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
+ );
+ }
+ if (commitSymbolType === commitType.REVERSE) {
+ const cross = gBullets.append("path");
+ cross.attr("d", `M ${x - 5},${y - 5}L${x + 5},${y + 5}M${x - 5},${y + 5}L${x + 5},${y - 5}`).attr(
+ "class",
+ `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
+ );
+ }
+ }
+ }
+ commitPos[commit2.id] = { x: pos + 10, y };
+ if (modifyGraph) {
+ const px = 4;
+ const py = 2;
+ if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && gitGraphConfig.showCommitLabel) {
+ const wrapper = gLabels.append("g");
+ const labelBkg = wrapper.insert("rect").attr("class", "commit-label-bkg");
+ const text = wrapper.append("text").attr("x", pos).attr("y", y + 25).attr("class", "commit-label").text(commit2.id);
+ let bbox = text.node().getBBox();
+ labelBkg.attr("x", pos + 10 - bbox.width / 2 - py).attr("y", y + 13.5).attr("width", bbox.width + 2 * py).attr("height", bbox.height + 2 * py);
+ text.attr("x", pos + 10 - bbox.width / 2);
+ if (gitGraphConfig.rotateCommitLabel) {
+ let r_x = -7.5 - (bbox.width + 10) / 25 * 9.5;
+ let r_y = 10 + bbox.width / 25 * 8.5;
+ wrapper.attr(
+ "transform",
+ "translate(" + r_x + ", " + r_y + ") rotate(" + -45 + ", " + pos + ", " + y + ")"
+ );
+ }
+ }
+ if (commit2.tag) {
+ const rect = gLabels.insert("polygon");
+ const hole = gLabels.append("circle");
+ const tag = gLabels.append("text").attr("y", y - 16).attr("class", "tag-label").text(commit2.tag);
+ let tagBbox = tag.node().getBBox();
+ tag.attr("x", pos + 10 - tagBbox.width / 2);
+ const h2 = tagBbox.height / 2;
+ const ly = y - 19.2;
+ rect.attr("class", "tag-label-bkg").attr(
+ "points",
+ `
+ ${pos - tagBbox.width / 2 - px / 2},${ly + py}
+ ${pos - tagBbox.width / 2 - px / 2},${ly - py}
+ ${pos + 10 - tagBbox.width / 2 - px},${ly - h2 - py}
+ ${pos + 10 + tagBbox.width / 2 + px},${ly - h2 - py}
+ ${pos + 10 + tagBbox.width / 2 + px},${ly + h2 + py}
+ ${pos + 10 - tagBbox.width / 2 - px},${ly + h2 + py}`
+ );
+ hole.attr("cx", pos - tagBbox.width / 2 + px / 2).attr("cy", ly).attr("r", 1.5).attr("class", "tag-hole");
+ }
+ }
+ pos += 50;
+ if (pos > maxPos) {
+ maxPos = pos;
+ }
+ });
+};
+const hasOverlappingCommits = (commit1, commit2, allCommits) => {
+ const keys = Object.keys(allCommits);
+ const overlappingComits = keys.filter((key) => {
+ return allCommits[key].branch === commit2.branch && allCommits[key].seq > commit1.seq && allCommits[key].seq < commit2.seq;
+ });
+ return overlappingComits.length > 0;
+};
+const findLane = (y1, y2, depth = 0) => {
+ const candidate = y1 + Math.abs(y1 - y2) / 2;
+ if (depth > 5) {
+ return candidate;
+ }
+ let ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10);
+ if (ok) {
+ lanes.push(candidate);
+ return candidate;
+ }
+ const diff = Math.abs(y1 - y2);
+ return findLane(y1, y2 - diff / 5, depth + 1);
+};
+const drawArrow = (svg, commit1, commit2, allCommits) => {
+ const p1 = commitPos[commit1.id];
+ const p2 = commitPos[commit2.id];
+ const overlappingCommits = hasOverlappingCommits(commit1, commit2, allCommits);
+ let arc = "";
+ let arc2 = "";
+ let radius = 0;
+ let offset = 0;
+ let colorClassNum = branchPos[commit2.branch].index;
+ let lineDef;
+ if (overlappingCommits) {
+ arc = "A 10 10, 0, 0, 0,";
+ arc2 = "A 10 10, 0, 0, 1,";
+ radius = 10;
+ offset = 10;
+ colorClassNum = branchPos[commit2.branch].index;
+ const lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y);
+ if (p1.y < p2.y) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius} ${arc} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc2} ${p2.x} ${lineY + offset} L ${p2.x} ${p2.y}`;
+ } else {
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius} ${arc2} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc} ${p2.x} ${lineY - offset} L ${p2.x} ${p2.y}`;
+ }
+ } else {
+ if (p1.y < p2.y) {
+ arc = "A 20 20, 0, 0, 0,";
+ radius = 20;
+ offset = 20;
+ colorClassNum = branchPos[commit2.branch].index;
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;
+ }
+ if (p1.y > p2.y) {
+ arc = "A 20 20, 0, 0, 0,";
+ radius = 20;
+ offset = 20;
+ colorClassNum = branchPos[commit1.branch].index;
+ lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`;
+ }
+ if (p1.y === p2.y) {
+ colorClassNum = branchPos[commit1.branch].index;
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;
+ }
+ }
+ svg.append("path").attr("d", lineDef).attr("class", "arrow arrow" + colorClassNum % THEME_COLOR_LIMIT);
+};
+const drawArrows = (svg, commits2) => {
+ const gArrows = svg.append("g").attr("class", "commit-arrows");
+ Object.keys(commits2).forEach((key) => {
+ const commit2 = commits2[key];
+ if (commit2.parents && commit2.parents.length > 0) {
+ commit2.parents.forEach((parent) => {
+ drawArrow(gArrows, commits2[parent], commit2, commits2);
+ });
+ }
+ });
+};
+const drawBranches = (svg, branches2) => {
+ const gitGraphConfig = getConfig$1().gitGraph;
+ const g = svg.append("g");
+ branches2.forEach((branch2, index) => {
+ const adjustIndexForTheme = index % THEME_COLOR_LIMIT;
+ const pos = branchPos[branch2.name].pos;
+ const line = g.append("line");
+ line.attr("x1", 0);
+ line.attr("y1", pos);
+ line.attr("x2", maxPos);
+ line.attr("y2", pos);
+ line.attr("class", "branch branch" + adjustIndexForTheme);
+ lanes.push(pos);
+ let name = branch2.name;
+ const labelElement = drawText(name);
+ const bkg = g.insert("rect");
+ const branchLabel = g.insert("g").attr("class", "branchLabel");
+ const label = branchLabel.insert("g").attr("class", "label branch-label" + adjustIndexForTheme);
+ label.node().appendChild(labelElement);
+ let bbox = labelElement.getBBox();
+ bkg.attr("class", "branchLabelBkg label" + adjustIndexForTheme).attr("rx", 4).attr("ry", 4).attr("x", -bbox.width - 4 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)).attr("y", -bbox.height / 2 + 8).attr("width", bbox.width + 18).attr("height", bbox.height + 4);
+ label.attr(
+ "transform",
+ "translate(" + (-bbox.width - 14 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)) + ", " + (pos - bbox.height / 2 - 1) + ")"
+ );
+ bkg.attr("transform", "translate(" + -19 + ", " + (pos - bbox.height / 2) + ")");
+ });
+};
+const draw = function(txt, id, ver, diagObj) {
+ clear();
+ const conf = getConfig$1();
+ const gitGraphConfig = conf.gitGraph;
+ log.debug("in gitgraph renderer", txt + "\n", "id:", id, ver);
+ allCommitsDict = diagObj.db.getCommits();
+ const branches2 = diagObj.db.getBranchesAsObjArray();
+ let pos = 0;
+ branches2.forEach((branch2, index) => {
+ branchPos[branch2.name] = { pos, index };
+ pos += 50 + (gitGraphConfig.rotateCommitLabel ? 40 : 0);
+ });
+ const diagram2 = select(`[id="${id}"]`);
+ drawCommits(diagram2, allCommitsDict, false);
+ if (gitGraphConfig.showBranches) {
+ drawBranches(diagram2, branches2);
+ }
+ drawArrows(diagram2, allCommitsDict);
+ drawCommits(diagram2, allCommitsDict, true);
+ utils.insertTitle(
+ diagram2,
+ "gitTitleText",
+ gitGraphConfig.titleTopMargin,
+ diagObj.db.getDiagramTitle()
+ );
+ setupGraphViewbox(
+ void 0,
+ diagram2,
+ gitGraphConfig.diagramPadding,
+ gitGraphConfig.useMaxWidth ?? conf.useMaxWidth
+ );
+};
+const gitGraphRenderer = {
+ draw
+};
+const getStyles = (options2) => `
+ .commit-id,
+ .commit-msg,
+ .branch-label {
+ fill: lightgrey;
+ color: lightgrey;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+ ${[0, 1, 2, 3, 4, 5, 6, 7].map(
+ (i) => `
+ .branch-label${i} { fill: ${options2["gitBranchLabel" + i]}; }
+ .commit${i} { stroke: ${options2["git" + i]}; fill: ${options2["git" + i]}; }
+ .commit-highlight${i} { stroke: ${options2["gitInv" + i]}; fill: ${options2["gitInv" + i]}; }
+ .label${i} { fill: ${options2["git" + i]}; }
+ .arrow${i} { stroke: ${options2["git" + i]}; }
+ `
+).join("\n")}
+
+ .branch {
+ stroke-width: 1;
+ stroke: ${options2.lineColor};
+ stroke-dasharray: 2;
+ }
+ .commit-label { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelColor};}
+ .commit-label-bkg { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelBackground}; opacity: 0.5; }
+ .tag-label { font-size: ${options2.tagLabelFontSize}; fill: ${options2.tagLabelColor};}
+ .tag-label-bkg { fill: ${options2.tagLabelBackground}; stroke: ${options2.tagLabelBorder}; }
+ .tag-hole { fill: ${options2.textColor}; }
+
+ .commit-merge {
+ stroke: ${options2.primaryColor};
+ fill: ${options2.primaryColor};
+ }
+ .commit-reverse {
+ stroke: ${options2.primaryColor};
+ fill: ${options2.primaryColor};
+ stroke-width: 3;
+ }
+ .commit-highlight-outer {
+ }
+ .commit-highlight-inner {
+ stroke: ${options2.primaryColor};
+ fill: ${options2.primaryColor};
+ }
+
+ .arrow { stroke-width: 8; stroke-linecap: round; fill: none}
+ .gitTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options2.textColor};
+ }
+ }
+`;
+const gitGraphStyles = getStyles;
+const diagram = {
+ parser: gitGraphParser,
+ db: gitGraphDb,
+ renderer: gitGraphRenderer,
+ styles: gitGraphStyles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=gitGraphDiagram-fb502d5b.js.map
diff --git a/scopegraphs-render-docs/doc/js/index-5219d011.js b/scopegraphs-render-docs/doc/js/index-5219d011.js
new file mode 100644
index 0000000..479a669
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/index-5219d011.js
@@ -0,0 +1,593 @@
+import { layout } from "dagre-d3-es/src/dagre/index.js";
+import * as graphlibJson from "dagre-d3-es/src/graphlib/json.js";
+import { c as createLabel, i as intersectRect, a as insertMarkers, b as clear$2, d as clear$3, u as updateNodeBounds, s as setNodeElem, e as insertNode, f as insertEdgeLabel, p as positionNode, g as insertEdge, h as positionEdgeLabel } from "./edges-2e77835f.js";
+import { l as log, k as evaluate, g as getConfig } from "./commonDb-573409be.js";
+import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
+import { c as createText } from "./createText-1f5f8f92.js";
+import { select } from "d3";
+let clusterDb = {};
+let descendants = {};
+let parents = {};
+const clear$1 = () => {
+ descendants = {};
+ parents = {};
+ clusterDb = {};
+};
+const isDescendant = (id, ancenstorId) => {
+ log.trace("In isDecendant", ancenstorId, " ", id, " = ", descendants[ancenstorId].includes(id));
+ if (descendants[ancenstorId].includes(id)) {
+ return true;
+ }
+ return false;
+};
+const edgeInCluster = (edge, clusterId) => {
+ log.info("Decendants of ", clusterId, " is ", descendants[clusterId]);
+ log.info("Edge is ", edge);
+ if (edge.v === clusterId) {
+ return false;
+ }
+ if (edge.w === clusterId) {
+ return false;
+ }
+ if (!descendants[clusterId]) {
+ log.debug("Tilt, ", clusterId, ",not in decendants");
+ return false;
+ }
+ return descendants[clusterId].includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || descendants[clusterId].includes(edge.w);
+};
+const copy = (clusterId, graph, newGraph, rootId) => {
+ log.warn(
+ "Copying children of ",
+ clusterId,
+ "root",
+ rootId,
+ "data",
+ graph.node(clusterId),
+ rootId
+ );
+ const nodes = graph.children(clusterId) || [];
+ if (clusterId !== rootId) {
+ nodes.push(clusterId);
+ }
+ log.warn("Copying (nodes) clusterId", clusterId, "nodes", nodes);
+ nodes.forEach((node) => {
+ if (graph.children(node).length > 0) {
+ copy(node, graph, newGraph, rootId);
+ } else {
+ const data = graph.node(node);
+ log.info("cp ", node, " to ", rootId, " with parent ", clusterId);
+ newGraph.setNode(node, data);
+ if (rootId !== graph.parent(node)) {
+ log.warn("Setting parent", node, graph.parent(node));
+ newGraph.setParent(node, graph.parent(node));
+ }
+ if (clusterId !== rootId && node !== clusterId) {
+ log.debug("Setting parent", node, clusterId);
+ newGraph.setParent(node, clusterId);
+ } else {
+ log.info("In copy ", clusterId, "root", rootId, "data", graph.node(clusterId), rootId);
+ log.debug(
+ "Not Setting parent for node=",
+ node,
+ "cluster!==rootId",
+ clusterId !== rootId,
+ "node!==clusterId",
+ node !== clusterId
+ );
+ }
+ const edges = graph.edges(node);
+ log.debug("Copying Edges", edges);
+ edges.forEach((edge) => {
+ log.info("Edge", edge);
+ const data2 = graph.edge(edge.v, edge.w, edge.name);
+ log.info("Edge data", data2, rootId);
+ try {
+ if (edgeInCluster(edge, rootId)) {
+ log.info("Copying as ", edge.v, edge.w, data2, edge.name);
+ newGraph.setEdge(edge.v, edge.w, data2, edge.name);
+ log.info("newGraph edges ", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));
+ } else {
+ log.info(
+ "Skipping copy of edge ",
+ edge.v,
+ "-->",
+ edge.w,
+ " rootId: ",
+ rootId,
+ " clusterId:",
+ clusterId
+ );
+ }
+ } catch (e) {
+ log.error(e);
+ }
+ });
+ }
+ log.debug("Removing node", node);
+ graph.removeNode(node);
+ });
+};
+const extractDescendants = (id, graph) => {
+ const children = graph.children(id);
+ let res = [...children];
+ for (const child of children) {
+ parents[child] = id;
+ res = [...res, ...extractDescendants(child, graph)];
+ }
+ return res;
+};
+const findNonClusterChild = (id, graph) => {
+ log.trace("Searching", id);
+ const children = graph.children(id);
+ log.trace("Searching children of id ", id, children);
+ if (children.length < 1) {
+ log.trace("This is a valid node", id);
+ return id;
+ }
+ for (const child of children) {
+ const _id = findNonClusterChild(child, graph);
+ if (_id) {
+ log.trace("Found replacement for", id, " => ", _id);
+ return _id;
+ }
+ }
+};
+const getAnchorId = (id) => {
+ if (!clusterDb[id]) {
+ return id;
+ }
+ if (!clusterDb[id].externalConnections) {
+ return id;
+ }
+ if (clusterDb[id]) {
+ return clusterDb[id].id;
+ }
+ return id;
+};
+const adjustClustersAndEdges = (graph, depth) => {
+ if (!graph || depth > 10) {
+ log.debug("Opting out, no graph ");
+ return;
+ } else {
+ log.debug("Opting in, graph ");
+ }
+ graph.nodes().forEach(function(id) {
+ const children = graph.children(id);
+ if (children.length > 0) {
+ log.warn(
+ "Cluster identified",
+ id,
+ " Replacement id in edges: ",
+ findNonClusterChild(id, graph)
+ );
+ descendants[id] = extractDescendants(id, graph);
+ clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };
+ }
+ });
+ graph.nodes().forEach(function(id) {
+ const children = graph.children(id);
+ const edges = graph.edges();
+ if (children.length > 0) {
+ log.debug("Cluster identified", id, descendants);
+ edges.forEach((edge) => {
+ if (edge.v !== id && edge.w !== id) {
+ const d1 = isDescendant(edge.v, id);
+ const d2 = isDescendant(edge.w, id);
+ if (d1 ^ d2) {
+ log.warn("Edge: ", edge, " leaves cluster ", id);
+ log.warn("Decendants of XXX ", id, ": ", descendants[id]);
+ clusterDb[id].externalConnections = true;
+ }
+ }
+ });
+ } else {
+ log.debug("Not a cluster ", id, descendants);
+ }
+ });
+ graph.edges().forEach(function(e) {
+ const edge = graph.edge(e);
+ log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
+ log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e)));
+ let v = e.v;
+ let w = e.w;
+ log.warn(
+ "Fix XXX",
+ clusterDb,
+ "ids:",
+ e.v,
+ e.w,
+ "Translating: ",
+ clusterDb[e.v],
+ " --- ",
+ clusterDb[e.w]
+ );
+ if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) {
+ log.warn("Fixing and trixing link to self - removing XXX", e.v, e.w, e.name);
+ log.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name);
+ v = getAnchorId(e.v);
+ w = getAnchorId(e.w);
+ graph.removeEdge(e.v, e.w, e.name);
+ const specialId = e.w + "---" + e.v;
+ graph.setNode(specialId, {
+ domId: specialId,
+ id: specialId,
+ labelStyle: "",
+ labelText: edge.label,
+ padding: 0,
+ shape: "labelRect",
+ style: ""
+ });
+ const edge1 = JSON.parse(JSON.stringify(edge));
+ const edge2 = JSON.parse(JSON.stringify(edge));
+ edge1.label = "";
+ edge1.arrowTypeEnd = "none";
+ edge2.label = "";
+ edge1.fromCluster = e.v;
+ edge2.toCluster = e.v;
+ graph.setEdge(v, specialId, edge1, e.name + "-cyclic-special");
+ graph.setEdge(specialId, w, edge2, e.name + "-cyclic-special");
+ } else if (clusterDb[e.v] || clusterDb[e.w]) {
+ log.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name);
+ v = getAnchorId(e.v);
+ w = getAnchorId(e.w);
+ graph.removeEdge(e.v, e.w, e.name);
+ if (v !== e.v) {
+ edge.fromCluster = e.v;
+ }
+ if (w !== e.w) {
+ edge.toCluster = e.w;
+ }
+ log.warn("Fix Replacing with XXX", v, w, e.name);
+ graph.setEdge(v, w, edge, e.name);
+ }
+ });
+ log.warn("Adjusted Graph", graphlibJson.write(graph));
+ extractor(graph, 0);
+ log.trace(clusterDb);
+};
+const extractor = (graph, depth) => {
+ log.warn("extractor - ", depth, graphlibJson.write(graph), graph.children("D"));
+ if (depth > 10) {
+ log.error("Bailing out");
+ return;
+ }
+ let nodes = graph.nodes();
+ let hasChildren = false;
+ for (const node of nodes) {
+ const children = graph.children(node);
+ hasChildren = hasChildren || children.length > 0;
+ }
+ if (!hasChildren) {
+ log.debug("Done, no node has children", graph.nodes());
+ return;
+ }
+ log.debug("Nodes = ", nodes, depth);
+ for (const node of nodes) {
+ log.debug(
+ "Extracting node",
+ node,
+ clusterDb,
+ clusterDb[node] && !clusterDb[node].externalConnections,
+ !graph.parent(node),
+ graph.node(node),
+ graph.children("D"),
+ " Depth ",
+ depth
+ );
+ if (!clusterDb[node]) {
+ log.debug("Not a cluster", node, depth);
+ } else if (!clusterDb[node].externalConnections && // !graph.parent(node) &&
+ graph.children(node) && graph.children(node).length > 0) {
+ log.warn(
+ "Cluster without external connections, without a parent and with children",
+ node,
+ depth
+ );
+ const graphSettings = graph.graph();
+ let dir = graphSettings.rankdir === "TB" ? "LR" : "TB";
+ if (clusterDb[node] && clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {
+ dir = clusterDb[node].clusterData.dir;
+ log.warn("Fixing dir", clusterDb[node].clusterData.dir, dir);
+ }
+ const clusterGraph = new graphlib.Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: dir,
+ // Todo: set proper spacing
+ nodesep: 50,
+ ranksep: 50,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ log.warn("Old graph before copy", graphlibJson.write(graph));
+ copy(node, graph, clusterGraph, node);
+ graph.setNode(node, {
+ clusterNode: true,
+ id: node,
+ clusterData: clusterDb[node].clusterData,
+ labelText: clusterDb[node].labelText,
+ graph: clusterGraph
+ });
+ log.warn("New graph after copy node: (", node, ")", graphlibJson.write(clusterGraph));
+ log.debug("Old graph after copy", graphlibJson.write(graph));
+ } else {
+ log.warn(
+ "Cluster ** ",
+ node,
+ " **not meeting the criteria !externalConnections:",
+ !clusterDb[node].externalConnections,
+ " no parent: ",
+ !graph.parent(node),
+ " children ",
+ graph.children(node) && graph.children(node).length > 0,
+ graph.children("D"),
+ depth
+ );
+ log.debug(clusterDb);
+ }
+ }
+ nodes = graph.nodes();
+ log.warn("New list of nodes", nodes);
+ for (const node of nodes) {
+ const data = graph.node(node);
+ log.warn(" Now next level", node, data);
+ if (data.clusterNode) {
+ extractor(data.graph, depth + 1);
+ }
+ }
+};
+const sorter = (graph, nodes) => {
+ if (nodes.length === 0) {
+ return [];
+ }
+ let result = Object.assign(nodes);
+ nodes.forEach((node) => {
+ const children = graph.children(node);
+ const sorted = sorter(graph, children);
+ result = [...result, ...sorted];
+ });
+ return result;
+};
+const sortNodesByHierarchy = (graph) => sorter(graph, graph.children());
+const rect = (parent, node) => {
+ log.info("Creating subgraph rect for ", node.id, node);
+ const shapeSvg = parent.insert("g").attr("class", "cluster" + (node.class ? " " + node.class : "")).attr("id", node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);
+ const label = shapeSvg.insert("g").attr("class", "cluster-label");
+ const text = node.labelType === "markdown" ? createText(label, node.labelText, { style: node.labelStyle, useHtmlLabels }) : label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));
+ let bbox = text.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = text.children[0];
+ const dv = select(text);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ const padding = 0 * node.padding;
+ const halfPadding = padding / 2;
+ const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;
+ if (node.width <= bbox.width + padding) {
+ node.diff = (bbox.width - node.width) / 2 - node.padding / 2;
+ } else {
+ node.diff = -node.padding / 2;
+ }
+ log.trace("Data ", node, JSON.stringify(node));
+ rect2.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - width / 2).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width).attr("height", node.height + padding);
+ if (useHtmlLabels) {
+ label.attr(
+ "transform",
+ // This puts the labal on top of the box instead of inside it
+ "translate(" + (node.x - bbox.width / 2) + ", " + (node.y - node.height / 2) + ")"
+ );
+ } else {
+ label.attr(
+ "transform",
+ // This puts the labal on top of the box instead of inside it
+ "translate(" + node.x + ", " + (node.y - node.height / 2) + ")"
+ );
+ }
+ const rectBox = rect2.node().getBBox();
+ node.width = rectBox.width;
+ node.height = rectBox.height;
+ node.intersect = function(point) {
+ return intersectRect(node, point);
+ };
+ return shapeSvg;
+};
+const noteGroup = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", "note-cluster").attr("id", node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const padding = 0 * node.padding;
+ const halfPadding = padding / 2;
+ rect2.attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", node.width + padding).attr("height", node.height + padding).attr("fill", "none");
+ const rectBox = rect2.node().getBBox();
+ node.width = rectBox.width;
+ node.height = rectBox.height;
+ node.intersect = function(point) {
+ return intersectRect(node, point);
+ };
+ return shapeSvg;
+};
+const roundedWithTitle = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const label = shapeSvg.insert("g").attr("class", "cluster-label");
+ const innerRect = shapeSvg.append("rect");
+ const text = label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));
+ let bbox = text.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = text.children[0];
+ const dv = select(text);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ bbox = text.getBBox();
+ const padding = 0 * node.padding;
+ const halfPadding = padding / 2;
+ const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;
+ if (node.width <= bbox.width + node.padding) {
+ node.diff = (bbox.width + node.padding * 0 - node.width) / 2;
+ } else {
+ node.diff = -node.padding / 2;
+ }
+ rect2.attr("class", "outer").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width + padding).attr("height", node.height + padding);
+ innerRect.attr("class", "inner").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding + bbox.height - 1).attr("width", width + padding).attr("height", node.height + padding - bbox.height - 3);
+ label.attr(
+ "transform",
+ "translate(" + (node.x - bbox.width / 2) + ", " + (node.y - node.height / 2 - node.padding / 3 + (evaluate(getConfig().flowchart.htmlLabels) ? 5 : 3)) + ")"
+ );
+ const rectBox = rect2.node().getBBox();
+ node.height = rectBox.height;
+ node.intersect = function(point) {
+ return intersectRect(node, point);
+ };
+ return shapeSvg;
+};
+const divider = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const padding = 0 * node.padding;
+ const halfPadding = padding / 2;
+ rect2.attr("class", "divider").attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2).attr("width", node.width + padding).attr("height", node.height + padding);
+ const rectBox = rect2.node().getBBox();
+ node.width = rectBox.width;
+ node.height = rectBox.height;
+ node.diff = -node.padding / 2;
+ node.intersect = function(point) {
+ return intersectRect(node, point);
+ };
+ return shapeSvg;
+};
+const shapes = { rect, roundedWithTitle, noteGroup, divider };
+let clusterElems = {};
+const insertCluster = (elem, node) => {
+ log.trace("Inserting cluster");
+ const shape = node.shape || "rect";
+ clusterElems[node.id] = shapes[shape](elem, node);
+};
+const clear = () => {
+ clusterElems = {};
+};
+const recursiveRender = (_elem, graph, diagramtype, parentCluster) => {
+ log.info("Graph in recursive render: XXX", graphlibJson.write(graph), parentCluster);
+ const dir = graph.graph().rankdir;
+ log.trace("Dir in recursive render - dir:", dir);
+ const elem = _elem.insert("g").attr("class", "root");
+ if (!graph.nodes()) {
+ log.info("No nodes found for", graph);
+ } else {
+ log.info("Recursive render XXX", graph.nodes());
+ }
+ if (graph.edges().length > 0) {
+ log.trace("Recursive edges", graph.edge(graph.edges()[0]));
+ }
+ const clusters = elem.insert("g").attr("class", "clusters");
+ const edgePaths = elem.insert("g").attr("class", "edgePaths");
+ const edgeLabels = elem.insert("g").attr("class", "edgeLabels");
+ const nodes = elem.insert("g").attr("class", "nodes");
+ graph.nodes().forEach(function(v) {
+ const node = graph.node(v);
+ if (parentCluster !== void 0) {
+ const data = JSON.parse(JSON.stringify(parentCluster.clusterData));
+ log.info("Setting data for cluster XXX (", v, ") ", data, parentCluster);
+ graph.setNode(parentCluster.id, data);
+ if (!graph.parent(v)) {
+ log.trace("Setting parent", v, parentCluster.id);
+ graph.setParent(v, parentCluster.id, data);
+ }
+ }
+ log.info("(Insert) Node XXX" + v + ": " + JSON.stringify(graph.node(v)));
+ if (node && node.clusterNode) {
+ log.info("Cluster identified", v, node.width, graph.node(v));
+ const o = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));
+ const newEl = o.elem;
+ updateNodeBounds(node, newEl);
+ node.diff = o.diff || 0;
+ log.info("Node bounds (abc123)", v, node, node.width, node.x, node.y);
+ setNodeElem(newEl, node);
+ log.warn("Recursive render complete ", newEl, node);
+ } else {
+ if (graph.children(v).length > 0) {
+ log.info("Cluster - the non recursive path XXX", v, node.id, node, graph);
+ log.info(findNonClusterChild(node.id, graph));
+ clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };
+ } else {
+ log.info("Node - the non recursive path", v, node.id, node);
+ insertNode(nodes, graph.node(v), dir);
+ }
+ }
+ });
+ graph.edges().forEach(function(e) {
+ const edge = graph.edge(e.v, e.w, e.name);
+ log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
+ log.info("Edge " + e.v + " -> " + e.w + ": ", e, " ", JSON.stringify(graph.edge(e)));
+ log.info("Fix", clusterDb, "ids:", e.v, e.w, "Translateing: ", clusterDb[e.v], clusterDb[e.w]);
+ insertEdgeLabel(edgeLabels, edge);
+ });
+ graph.edges().forEach(function(e) {
+ log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
+ });
+ log.info("#############################################");
+ log.info("### Layout ###");
+ log.info("#############################################");
+ log.info(graph);
+ layout(graph);
+ log.info("Graph after layout:", graphlibJson.write(graph));
+ let diff = 0;
+ sortNodesByHierarchy(graph).forEach(function(v) {
+ const node = graph.node(v);
+ log.info("Position " + v + ": " + JSON.stringify(graph.node(v)));
+ log.info(
+ "Position " + v + ": (" + node.x,
+ "," + node.y,
+ ") width: ",
+ node.width,
+ " height: ",
+ node.height
+ );
+ if (node && node.clusterNode) {
+ positionNode(node);
+ } else {
+ if (graph.children(v).length > 0) {
+ insertCluster(clusters, node);
+ clusterDb[node.id].node = node;
+ } else {
+ positionNode(node);
+ }
+ }
+ });
+ graph.edges().forEach(function(e) {
+ const edge = graph.edge(e);
+ log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(edge), edge);
+ const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph);
+ positionEdgeLabel(edge, paths);
+ });
+ graph.nodes().forEach(function(v) {
+ const n = graph.node(v);
+ log.info(v, n.type, n.diff);
+ if (n.type === "group") {
+ diff = n.diff;
+ }
+ });
+ return { elem, diff };
+};
+const render = (elem, graph, markers, diagramtype, id) => {
+ insertMarkers(elem, markers, diagramtype, id);
+ clear$2();
+ clear$3();
+ clear();
+ clear$1();
+ log.warn("Graph at first:", graphlibJson.write(graph));
+ adjustClustersAndEdges(graph);
+ log.warn("Graph after:", graphlibJson.write(graph));
+ recursiveRender(elem, graph, diagramtype);
+};
+export {
+ render as r
+};
+//# sourceMappingURL=index-5219d011.js.map
diff --git a/scopegraphs-render-docs/doc/js/index-6271e032.js b/scopegraphs-render-docs/doc/js/index-6271e032.js
new file mode 100644
index 0000000..926cb38
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/index-6271e032.js
@@ -0,0 +1,346 @@
+import { b as G, a as b, m as D, G as j, l as A } from "./layout-492ec81d.js";
+import { c as O, i as X, a as M, b as _, d as $, u as H, s as V, e as U, f as W, p as B, g as Y, h as q } from "./edges-de377bae.js";
+import { l as i, m as N, g as E, h as L } from "./commonDb-41f8b4c5.js";
+import { c as z } from "./createText-23817c58.js";
+var K = 4;
+function Q(e) {
+ return G(e, K);
+}
+function y(e) {
+ var t = {
+ options: {
+ directed: e.isDirected(),
+ multigraph: e.isMultigraph(),
+ compound: e.isCompound()
+ },
+ nodes: Z(e),
+ edges: I(e)
+ };
+ return b(e.graph()) || (t.value = Q(e.graph())), t;
+}
+function Z(e) {
+ return D(e.nodes(), function(t) {
+ var n = e.node(t), r = e.parent(t), s = { v: t };
+ return b(n) || (s.value = n), b(r) || (s.parent = r), s;
+ });
+}
+function I(e) {
+ return D(e.edges(), function(t) {
+ var n = e.edge(t), r = { v: t.v, w: t.w };
+ return b(t.name) || (r.name = t.name), b(n) || (r.value = n), r;
+ });
+}
+let f = {}, x = {}, T = {};
+const tt = () => {
+ x = {}, T = {}, f = {};
+}, S = (e, t) => (i.trace("In isDecendant", t, " ", e, " = ", x[t].includes(e)), !!x[t].includes(e)), et = (e, t) => (i.info("Decendants of ", t, " is ", x[t]), i.info("Edge is ", e), e.v === t || e.w === t ? !1 : x[t] ? x[t].includes(e.v) || S(e.v, t) || S(e.w, t) || x[t].includes(e.w) : (i.debug("Tilt, ", t, ",not in decendants"), !1)), J = (e, t, n, r) => {
+ i.warn(
+ "Copying children of ",
+ e,
+ "root",
+ r,
+ "data",
+ t.node(e),
+ r
+ );
+ const s = t.children(e) || [];
+ e !== r && s.push(e), i.warn("Copying (nodes) clusterId", e, "nodes", s), s.forEach((a) => {
+ if (t.children(a).length > 0)
+ J(a, t, n, r);
+ else {
+ const u = t.node(a);
+ i.info("cp ", a, " to ", r, " with parent ", e), n.setNode(a, u), r !== t.parent(a) && (i.warn("Setting parent", a, t.parent(a)), n.setParent(a, t.parent(a))), e !== r && a !== e ? (i.debug("Setting parent", a, e), n.setParent(a, e)) : (i.info("In copy ", e, "root", r, "data", t.node(e), r), i.debug(
+ "Not Setting parent for node=",
+ a,
+ "cluster!==rootId",
+ e !== r,
+ "node!==clusterId",
+ a !== e
+ ));
+ const l = t.edges(a);
+ i.debug("Copying Edges", l), l.forEach((d) => {
+ i.info("Edge", d);
+ const g = t.edge(d.v, d.w, d.name);
+ i.info("Edge data", g, r);
+ try {
+ et(d, r) ? (i.info("Copying as ", d.v, d.w, g, d.name), n.setEdge(d.v, d.w, g, d.name), i.info("newGraph edges ", n.edges(), n.edge(n.edges()[0]))) : i.info(
+ "Skipping copy of edge ",
+ d.v,
+ "-->",
+ d.w,
+ " rootId: ",
+ r,
+ " clusterId:",
+ e
+ );
+ } catch (w) {
+ i.error(w);
+ }
+ });
+ }
+ i.debug("Removing node", a), t.removeNode(a);
+ });
+}, R = (e, t) => {
+ const n = t.children(e);
+ let r = [...n];
+ for (const s of n)
+ T[s] = e, r = [...r, ...R(s, t)];
+ return r;
+}, m = (e, t) => {
+ i.trace("Searching", e);
+ const n = t.children(e);
+ if (i.trace("Searching children of id ", e, n), n.length < 1)
+ return i.trace("This is a valid node", e), e;
+ for (const r of n) {
+ const s = m(r, t);
+ if (s)
+ return i.trace("Found replacement for", e, " => ", s), s;
+ }
+}, v = (e) => !f[e] || !f[e].externalConnections ? e : f[e] ? f[e].id : e, nt = (e, t) => {
+ if (!e || t > 10) {
+ i.debug("Opting out, no graph ");
+ return;
+ } else
+ i.debug("Opting in, graph ");
+ e.nodes().forEach(function(n) {
+ e.children(n).length > 0 && (i.warn(
+ "Cluster identified",
+ n,
+ " Replacement id in edges: ",
+ m(n, e)
+ ), x[n] = R(n, e), f[n] = { id: m(n, e), clusterData: e.node(n) });
+ }), e.nodes().forEach(function(n) {
+ const r = e.children(n), s = e.edges();
+ r.length > 0 ? (i.debug("Cluster identified", n, x), s.forEach((a) => {
+ if (a.v !== n && a.w !== n) {
+ const u = S(a.v, n), l = S(a.w, n);
+ u ^ l && (i.warn("Edge: ", a, " leaves cluster ", n), i.warn("Decendants of XXX ", n, ": ", x[n]), f[n].externalConnections = !0);
+ }
+ })) : i.debug("Not a cluster ", n, x);
+ }), e.edges().forEach(function(n) {
+ const r = e.edge(n);
+ i.warn("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(n)), i.warn("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(e.edge(n)));
+ let s = n.v, a = n.w;
+ if (i.warn(
+ "Fix XXX",
+ f,
+ "ids:",
+ n.v,
+ n.w,
+ "Translating: ",
+ f[n.v],
+ " --- ",
+ f[n.w]
+ ), f[n.v] && f[n.w] && f[n.v] === f[n.w]) {
+ i.warn("Fixing and trixing link to self - removing XXX", n.v, n.w, n.name), i.warn("Fixing and trixing - removing XXX", n.v, n.w, n.name), s = v(n.v), a = v(n.w), e.removeEdge(n.v, n.w, n.name);
+ const u = n.w + "---" + n.v;
+ e.setNode(u, {
+ domId: u,
+ id: u,
+ labelStyle: "",
+ labelText: r.label,
+ padding: 0,
+ shape: "labelRect",
+ style: ""
+ });
+ const l = JSON.parse(JSON.stringify(r)), d = JSON.parse(JSON.stringify(r));
+ l.label = "", l.arrowTypeEnd = "none", d.label = "", l.fromCluster = n.v, d.toCluster = n.v, e.setEdge(s, u, l, n.name + "-cyclic-special"), e.setEdge(u, a, d, n.name + "-cyclic-special");
+ } else
+ (f[n.v] || f[n.w]) && (i.warn("Fixing and trixing - removing XXX", n.v, n.w, n.name), s = v(n.v), a = v(n.w), e.removeEdge(n.v, n.w, n.name), s !== n.v && (r.fromCluster = n.v), a !== n.w && (r.toCluster = n.w), i.warn("Fix Replacing with XXX", s, a, n.name), e.setEdge(s, a, r, n.name));
+ }), i.warn("Adjusted Graph", y(e)), p(e, 0), i.trace(f);
+}, p = (e, t) => {
+ if (i.warn("extractor - ", t, y(e), e.children("D")), t > 10) {
+ i.error("Bailing out");
+ return;
+ }
+ let n = e.nodes(), r = !1;
+ for (const s of n) {
+ const a = e.children(s);
+ r = r || a.length > 0;
+ }
+ if (!r) {
+ i.debug("Done, no node has children", e.nodes());
+ return;
+ }
+ i.debug("Nodes = ", n, t);
+ for (const s of n)
+ if (i.debug(
+ "Extracting node",
+ s,
+ f,
+ f[s] && !f[s].externalConnections,
+ !e.parent(s),
+ e.node(s),
+ e.children("D"),
+ " Depth ",
+ t
+ ), !f[s])
+ i.debug("Not a cluster", s, t);
+ else if (!f[s].externalConnections && // !graph.parent(node) &&
+ e.children(s) && e.children(s).length > 0) {
+ i.warn(
+ "Cluster without external connections, without a parent and with children",
+ s,
+ t
+ );
+ let u = e.graph().rankdir === "TB" ? "LR" : "TB";
+ f[s] && f[s].clusterData && f[s].clusterData.dir && (u = f[s].clusterData.dir, i.warn("Fixing dir", f[s].clusterData.dir, u));
+ const l = new j({
+ multigraph: !0,
+ compound: !0
+ }).setGraph({
+ rankdir: u,
+ // Todo: set proper spacing
+ nodesep: 50,
+ ranksep: 50,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ i.warn("Old graph before copy", y(e)), J(s, e, l, s), e.setNode(s, {
+ clusterNode: !0,
+ id: s,
+ clusterData: f[s].clusterData,
+ labelText: f[s].labelText,
+ graph: l
+ }), i.warn("New graph after copy node: (", s, ")", y(l)), i.debug("Old graph after copy", y(e));
+ } else
+ i.warn(
+ "Cluster ** ",
+ s,
+ " **not meeting the criteria !externalConnections:",
+ !f[s].externalConnections,
+ " no parent: ",
+ !e.parent(s),
+ " children ",
+ e.children(s) && e.children(s).length > 0,
+ e.children("D"),
+ t
+ ), i.debug(f);
+ n = e.nodes(), i.warn("New list of nodes", n);
+ for (const s of n) {
+ const a = e.node(s);
+ i.warn(" Now next level", s, a), a.clusterNode && p(a.graph, t + 1);
+ }
+}, P = (e, t) => {
+ if (t.length === 0)
+ return [];
+ let n = Object.assign(t);
+ return t.forEach((r) => {
+ const s = e.children(r), a = P(e, s);
+ n = [...n, ...a];
+ }), n;
+}, it = (e) => P(e, e.children()), st = (e, t) => {
+ i.info("Creating subgraph rect for ", t.id, t);
+ const n = e.insert("g").attr("class", "cluster" + (t.class ? " " + t.class : "")).attr("id", t.id), r = n.insert("rect", ":first-child"), s = N(E().flowchart.htmlLabels), a = n.insert("g").attr("class", "cluster-label"), u = t.labelType === "markdown" ? z(a, t.labelText, { style: t.labelStyle, useHtmlLabels: s }) : a.node().appendChild(O(t.labelText, t.labelStyle, void 0, !0));
+ let l = u.getBBox();
+ if (N(E().flowchart.htmlLabels)) {
+ const o = u.children[0], h = L(u);
+ l = o.getBoundingClientRect(), h.attr("width", l.width), h.attr("height", l.height);
+ }
+ const d = 0 * t.padding, g = d / 2, w = t.width <= l.width + d ? l.width + d : t.width;
+ t.width <= l.width + d ? t.diff = (l.width - t.width) / 2 - t.padding / 2 : t.diff = -t.padding / 2, i.trace("Data ", t, JSON.stringify(t)), r.attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("x", t.x - w / 2).attr("y", t.y - t.height / 2 - g).attr("width", w).attr("height", t.height + d), s ? a.attr(
+ "transform",
+ // This puts the labal on top of the box instead of inside it
+ "translate(" + (t.x - l.width / 2) + ", " + (t.y - t.height / 2) + ")"
+ ) : a.attr(
+ "transform",
+ // This puts the labal on top of the box instead of inside it
+ "translate(" + t.x + ", " + (t.y - t.height / 2) + ")"
+ );
+ const c = r.node().getBBox();
+ return t.width = c.width, t.height = c.height, t.intersect = function(o) {
+ return X(t, o);
+ }, n;
+}, rt = (e, t) => {
+ const n = e.insert("g").attr("class", "note-cluster").attr("id", t.id), r = n.insert("rect", ":first-child"), s = 0 * t.padding, a = s / 2;
+ r.attr("rx", t.rx).attr("ry", t.ry).attr("x", t.x - t.width / 2 - a).attr("y", t.y - t.height / 2 - a).attr("width", t.width + s).attr("height", t.height + s).attr("fill", "none");
+ const u = r.node().getBBox();
+ return t.width = u.width, t.height = u.height, t.intersect = function(l) {
+ return X(t, l);
+ }, n;
+}, at = (e, t) => {
+ const n = e.insert("g").attr("class", t.classes).attr("id", t.id), r = n.insert("rect", ":first-child"), s = n.insert("g").attr("class", "cluster-label"), a = n.append("rect"), u = s.node().appendChild(O(t.labelText, t.labelStyle, void 0, !0));
+ let l = u.getBBox();
+ if (N(E().flowchart.htmlLabels)) {
+ const o = u.children[0], h = L(u);
+ l = o.getBoundingClientRect(), h.attr("width", l.width), h.attr("height", l.height);
+ }
+ l = u.getBBox();
+ const d = 0 * t.padding, g = d / 2, w = t.width <= l.width + t.padding ? l.width + t.padding : t.width;
+ t.width <= l.width + t.padding ? t.diff = (l.width + t.padding * 0 - t.width) / 2 : t.diff = -t.padding / 2, r.attr("class", "outer").attr("x", t.x - w / 2 - g).attr("y", t.y - t.height / 2 - g).attr("width", w + d).attr("height", t.height + d), a.attr("class", "inner").attr("x", t.x - w / 2 - g).attr("y", t.y - t.height / 2 - g + l.height - 1).attr("width", w + d).attr("height", t.height + d - l.height - 3), s.attr(
+ "transform",
+ "translate(" + (t.x - l.width / 2) + ", " + (t.y - t.height / 2 - t.padding / 3 + (N(E().flowchart.htmlLabels) ? 5 : 3)) + ")"
+ );
+ const c = r.node().getBBox();
+ return t.height = c.height, t.intersect = function(o) {
+ return X(t, o);
+ }, n;
+}, ct = (e, t) => {
+ const n = e.insert("g").attr("class", t.classes).attr("id", t.id), r = n.insert("rect", ":first-child"), s = 0 * t.padding, a = s / 2;
+ r.attr("class", "divider").attr("x", t.x - t.width / 2 - a).attr("y", t.y - t.height / 2).attr("width", t.width + s).attr("height", t.height + s);
+ const u = r.node().getBBox();
+ return t.width = u.width, t.height = u.height, t.diff = -t.padding / 2, t.intersect = function(l) {
+ return X(t, l);
+ }, n;
+}, ot = { rect: st, roundedWithTitle: at, noteGroup: rt, divider: ct };
+let F = {};
+const lt = (e, t) => {
+ i.trace("Inserting cluster");
+ const n = t.shape || "rect";
+ F[t.id] = ot[n](e, t);
+}, ft = () => {
+ F = {};
+}, k = (e, t, n, r) => {
+ i.info("Graph in recursive render: XXX", y(t), r);
+ const s = t.graph().rankdir;
+ i.trace("Dir in recursive render - dir:", s);
+ const a = e.insert("g").attr("class", "root");
+ t.nodes() ? i.info("Recursive render XXX", t.nodes()) : i.info("No nodes found for", t), t.edges().length > 0 && i.trace("Recursive edges", t.edge(t.edges()[0]));
+ const u = a.insert("g").attr("class", "clusters"), l = a.insert("g").attr("class", "edgePaths"), d = a.insert("g").attr("class", "edgeLabels"), g = a.insert("g").attr("class", "nodes");
+ t.nodes().forEach(function(c) {
+ const o = t.node(c);
+ if (r !== void 0) {
+ const h = JSON.parse(JSON.stringify(r.clusterData));
+ i.info("Setting data for cluster XXX (", c, ") ", h, r), t.setNode(r.id, h), t.parent(c) || (i.trace("Setting parent", c, r.id), t.setParent(c, r.id, h));
+ }
+ if (i.info("(Insert) Node XXX" + c + ": " + JSON.stringify(t.node(c))), o && o.clusterNode) {
+ i.info("Cluster identified", c, o.width, t.node(c));
+ const h = k(g, o.graph, n, t.node(c)), C = h.elem;
+ H(o, C), o.diff = h.diff || 0, i.info("Node bounds (abc123)", c, o, o.width, o.x, o.y), V(C, o), i.warn("Recursive render complete ", C, o);
+ } else
+ t.children(c).length > 0 ? (i.info("Cluster - the non recursive path XXX", c, o.id, o, t), i.info(m(o.id, t)), f[o.id] = { id: m(o.id, t), node: o }) : (i.info("Node - the non recursive path", c, o.id, o), U(g, t.node(c), s));
+ }), t.edges().forEach(function(c) {
+ const o = t.edge(c.v, c.w, c.name);
+ i.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(c)), i.info("Edge " + c.v + " -> " + c.w + ": ", c, " ", JSON.stringify(t.edge(c))), i.info("Fix", f, "ids:", c.v, c.w, "Translateing: ", f[c.v], f[c.w]), W(d, o);
+ }), t.edges().forEach(function(c) {
+ i.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(c));
+ }), i.info("#############################################"), i.info("### Layout ###"), i.info("#############################################"), i.info(t), A(t), i.info("Graph after layout:", y(t));
+ let w = 0;
+ return it(t).forEach(function(c) {
+ const o = t.node(c);
+ i.info("Position " + c + ": " + JSON.stringify(t.node(c))), i.info(
+ "Position " + c + ": (" + o.x,
+ "," + o.y,
+ ") width: ",
+ o.width,
+ " height: ",
+ o.height
+ ), o && o.clusterNode ? B(o) : t.children(c).length > 0 ? (lt(u, o), f[o.id].node = o) : B(o);
+ }), t.edges().forEach(function(c) {
+ const o = t.edge(c);
+ i.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(o), o);
+ const h = Y(l, c, o, f, n, t);
+ q(o, h);
+ }), t.nodes().forEach(function(c) {
+ const o = t.node(c);
+ i.info(c, o.type, o.diff), o.type === "group" && (w = o.diff);
+ }), { elem: a, diff: w };
+}, wt = (e, t, n, r, s) => {
+ M(e, n, r, s), _(), $(), ft(), tt(), i.warn("Graph at first:", y(t)), nt(t), i.warn("Graph after:", y(t)), k(e, t, r);
+};
+export {
+ wt as r
+};
+//# sourceMappingURL=index-6271e032.js.map
diff --git a/scopegraphs-render-docs/doc/js/index-c47ff54b.js b/scopegraphs-render-docs/doc/js/index-c47ff54b.js
new file mode 100644
index 0000000..bb2844a
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/index-c47ff54b.js
@@ -0,0 +1,636 @@
+import { b as baseClone, a as isUndefined, m as map, G as Graph, l as layout } from "./layout-3ff13c4c.js";
+import { c as createLabel, i as intersectRect, a as insertMarkers, b as clear$2, d as clear$3, u as updateNodeBounds, s as setNodeElem, e as insertNode, f as insertEdgeLabel, p as positionNode, g as insertEdge, h as positionEdgeLabel } from "./edges-17d4be60.js";
+import { l as log, m as evaluate, g as getConfig, h as select } from "./commonDb-89160e91.js";
+import { c as createText } from "./createText-b0d5c0ec.js";
+var CLONE_SYMBOLS_FLAG = 4;
+function clone(value) {
+ return baseClone(value, CLONE_SYMBOLS_FLAG);
+}
+function write(g) {
+ var json = {
+ options: {
+ directed: g.isDirected(),
+ multigraph: g.isMultigraph(),
+ compound: g.isCompound()
+ },
+ nodes: writeNodes(g),
+ edges: writeEdges(g)
+ };
+ if (!isUndefined(g.graph())) {
+ json.value = clone(g.graph());
+ }
+ return json;
+}
+function writeNodes(g) {
+ return map(g.nodes(), function(v) {
+ var nodeValue = g.node(v);
+ var parent = g.parent(v);
+ var node = { v };
+ if (!isUndefined(nodeValue)) {
+ node.value = nodeValue;
+ }
+ if (!isUndefined(parent)) {
+ node.parent = parent;
+ }
+ return node;
+ });
+}
+function writeEdges(g) {
+ return map(g.edges(), function(e) {
+ var edgeValue = g.edge(e);
+ var edge = { v: e.v, w: e.w };
+ if (!isUndefined(e.name)) {
+ edge.name = e.name;
+ }
+ if (!isUndefined(edgeValue)) {
+ edge.value = edgeValue;
+ }
+ return edge;
+ });
+}
+let clusterDb = {};
+let descendants = {};
+let parents = {};
+const clear$1 = () => {
+ descendants = {};
+ parents = {};
+ clusterDb = {};
+};
+const isDescendant = (id, ancenstorId) => {
+ log.trace("In isDecendant", ancenstorId, " ", id, " = ", descendants[ancenstorId].includes(id));
+ if (descendants[ancenstorId].includes(id)) {
+ return true;
+ }
+ return false;
+};
+const edgeInCluster = (edge, clusterId) => {
+ log.info("Decendants of ", clusterId, " is ", descendants[clusterId]);
+ log.info("Edge is ", edge);
+ if (edge.v === clusterId) {
+ return false;
+ }
+ if (edge.w === clusterId) {
+ return false;
+ }
+ if (!descendants[clusterId]) {
+ log.debug("Tilt, ", clusterId, ",not in decendants");
+ return false;
+ }
+ return descendants[clusterId].includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || descendants[clusterId].includes(edge.w);
+};
+const copy = (clusterId, graph, newGraph, rootId) => {
+ log.warn(
+ "Copying children of ",
+ clusterId,
+ "root",
+ rootId,
+ "data",
+ graph.node(clusterId),
+ rootId
+ );
+ const nodes = graph.children(clusterId) || [];
+ if (clusterId !== rootId) {
+ nodes.push(clusterId);
+ }
+ log.warn("Copying (nodes) clusterId", clusterId, "nodes", nodes);
+ nodes.forEach((node) => {
+ if (graph.children(node).length > 0) {
+ copy(node, graph, newGraph, rootId);
+ } else {
+ const data = graph.node(node);
+ log.info("cp ", node, " to ", rootId, " with parent ", clusterId);
+ newGraph.setNode(node, data);
+ if (rootId !== graph.parent(node)) {
+ log.warn("Setting parent", node, graph.parent(node));
+ newGraph.setParent(node, graph.parent(node));
+ }
+ if (clusterId !== rootId && node !== clusterId) {
+ log.debug("Setting parent", node, clusterId);
+ newGraph.setParent(node, clusterId);
+ } else {
+ log.info("In copy ", clusterId, "root", rootId, "data", graph.node(clusterId), rootId);
+ log.debug(
+ "Not Setting parent for node=",
+ node,
+ "cluster!==rootId",
+ clusterId !== rootId,
+ "node!==clusterId",
+ node !== clusterId
+ );
+ }
+ const edges = graph.edges(node);
+ log.debug("Copying Edges", edges);
+ edges.forEach((edge) => {
+ log.info("Edge", edge);
+ const data2 = graph.edge(edge.v, edge.w, edge.name);
+ log.info("Edge data", data2, rootId);
+ try {
+ if (edgeInCluster(edge, rootId)) {
+ log.info("Copying as ", edge.v, edge.w, data2, edge.name);
+ newGraph.setEdge(edge.v, edge.w, data2, edge.name);
+ log.info("newGraph edges ", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));
+ } else {
+ log.info(
+ "Skipping copy of edge ",
+ edge.v,
+ "-->",
+ edge.w,
+ " rootId: ",
+ rootId,
+ " clusterId:",
+ clusterId
+ );
+ }
+ } catch (e) {
+ log.error(e);
+ }
+ });
+ }
+ log.debug("Removing node", node);
+ graph.removeNode(node);
+ });
+};
+const extractDescendants = (id, graph) => {
+ const children = graph.children(id);
+ let res = [...children];
+ for (const child of children) {
+ parents[child] = id;
+ res = [...res, ...extractDescendants(child, graph)];
+ }
+ return res;
+};
+const findNonClusterChild = (id, graph) => {
+ log.trace("Searching", id);
+ const children = graph.children(id);
+ log.trace("Searching children of id ", id, children);
+ if (children.length < 1) {
+ log.trace("This is a valid node", id);
+ return id;
+ }
+ for (const child of children) {
+ const _id = findNonClusterChild(child, graph);
+ if (_id) {
+ log.trace("Found replacement for", id, " => ", _id);
+ return _id;
+ }
+ }
+};
+const getAnchorId = (id) => {
+ if (!clusterDb[id]) {
+ return id;
+ }
+ if (!clusterDb[id].externalConnections) {
+ return id;
+ }
+ if (clusterDb[id]) {
+ return clusterDb[id].id;
+ }
+ return id;
+};
+const adjustClustersAndEdges = (graph, depth) => {
+ if (!graph || depth > 10) {
+ log.debug("Opting out, no graph ");
+ return;
+ } else {
+ log.debug("Opting in, graph ");
+ }
+ graph.nodes().forEach(function(id) {
+ const children = graph.children(id);
+ if (children.length > 0) {
+ log.warn(
+ "Cluster identified",
+ id,
+ " Replacement id in edges: ",
+ findNonClusterChild(id, graph)
+ );
+ descendants[id] = extractDescendants(id, graph);
+ clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };
+ }
+ });
+ graph.nodes().forEach(function(id) {
+ const children = graph.children(id);
+ const edges = graph.edges();
+ if (children.length > 0) {
+ log.debug("Cluster identified", id, descendants);
+ edges.forEach((edge) => {
+ if (edge.v !== id && edge.w !== id) {
+ const d1 = isDescendant(edge.v, id);
+ const d2 = isDescendant(edge.w, id);
+ if (d1 ^ d2) {
+ log.warn("Edge: ", edge, " leaves cluster ", id);
+ log.warn("Decendants of XXX ", id, ": ", descendants[id]);
+ clusterDb[id].externalConnections = true;
+ }
+ }
+ });
+ } else {
+ log.debug("Not a cluster ", id, descendants);
+ }
+ });
+ graph.edges().forEach(function(e) {
+ const edge = graph.edge(e);
+ log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
+ log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e)));
+ let v = e.v;
+ let w = e.w;
+ log.warn(
+ "Fix XXX",
+ clusterDb,
+ "ids:",
+ e.v,
+ e.w,
+ "Translating: ",
+ clusterDb[e.v],
+ " --- ",
+ clusterDb[e.w]
+ );
+ if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) {
+ log.warn("Fixing and trixing link to self - removing XXX", e.v, e.w, e.name);
+ log.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name);
+ v = getAnchorId(e.v);
+ w = getAnchorId(e.w);
+ graph.removeEdge(e.v, e.w, e.name);
+ const specialId = e.w + "---" + e.v;
+ graph.setNode(specialId, {
+ domId: specialId,
+ id: specialId,
+ labelStyle: "",
+ labelText: edge.label,
+ padding: 0,
+ shape: "labelRect",
+ style: ""
+ });
+ const edge1 = JSON.parse(JSON.stringify(edge));
+ const edge2 = JSON.parse(JSON.stringify(edge));
+ edge1.label = "";
+ edge1.arrowTypeEnd = "none";
+ edge2.label = "";
+ edge1.fromCluster = e.v;
+ edge2.toCluster = e.v;
+ graph.setEdge(v, specialId, edge1, e.name + "-cyclic-special");
+ graph.setEdge(specialId, w, edge2, e.name + "-cyclic-special");
+ } else if (clusterDb[e.v] || clusterDb[e.w]) {
+ log.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name);
+ v = getAnchorId(e.v);
+ w = getAnchorId(e.w);
+ graph.removeEdge(e.v, e.w, e.name);
+ if (v !== e.v) {
+ edge.fromCluster = e.v;
+ }
+ if (w !== e.w) {
+ edge.toCluster = e.w;
+ }
+ log.warn("Fix Replacing with XXX", v, w, e.name);
+ graph.setEdge(v, w, edge, e.name);
+ }
+ });
+ log.warn("Adjusted Graph", write(graph));
+ extractor(graph, 0);
+ log.trace(clusterDb);
+};
+const extractor = (graph, depth) => {
+ log.warn("extractor - ", depth, write(graph), graph.children("D"));
+ if (depth > 10) {
+ log.error("Bailing out");
+ return;
+ }
+ let nodes = graph.nodes();
+ let hasChildren = false;
+ for (const node of nodes) {
+ const children = graph.children(node);
+ hasChildren = hasChildren || children.length > 0;
+ }
+ if (!hasChildren) {
+ log.debug("Done, no node has children", graph.nodes());
+ return;
+ }
+ log.debug("Nodes = ", nodes, depth);
+ for (const node of nodes) {
+ log.debug(
+ "Extracting node",
+ node,
+ clusterDb,
+ clusterDb[node] && !clusterDb[node].externalConnections,
+ !graph.parent(node),
+ graph.node(node),
+ graph.children("D"),
+ " Depth ",
+ depth
+ );
+ if (!clusterDb[node]) {
+ log.debug("Not a cluster", node, depth);
+ } else if (!clusterDb[node].externalConnections && // !graph.parent(node) &&
+ graph.children(node) && graph.children(node).length > 0) {
+ log.warn(
+ "Cluster without external connections, without a parent and with children",
+ node,
+ depth
+ );
+ const graphSettings = graph.graph();
+ let dir = graphSettings.rankdir === "TB" ? "LR" : "TB";
+ if (clusterDb[node] && clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {
+ dir = clusterDb[node].clusterData.dir;
+ log.warn("Fixing dir", clusterDb[node].clusterData.dir, dir);
+ }
+ const clusterGraph = new Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: dir,
+ // Todo: set proper spacing
+ nodesep: 50,
+ ranksep: 50,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ log.warn("Old graph before copy", write(graph));
+ copy(node, graph, clusterGraph, node);
+ graph.setNode(node, {
+ clusterNode: true,
+ id: node,
+ clusterData: clusterDb[node].clusterData,
+ labelText: clusterDb[node].labelText,
+ graph: clusterGraph
+ });
+ log.warn("New graph after copy node: (", node, ")", write(clusterGraph));
+ log.debug("Old graph after copy", write(graph));
+ } else {
+ log.warn(
+ "Cluster ** ",
+ node,
+ " **not meeting the criteria !externalConnections:",
+ !clusterDb[node].externalConnections,
+ " no parent: ",
+ !graph.parent(node),
+ " children ",
+ graph.children(node) && graph.children(node).length > 0,
+ graph.children("D"),
+ depth
+ );
+ log.debug(clusterDb);
+ }
+ }
+ nodes = graph.nodes();
+ log.warn("New list of nodes", nodes);
+ for (const node of nodes) {
+ const data = graph.node(node);
+ log.warn(" Now next level", node, data);
+ if (data.clusterNode) {
+ extractor(data.graph, depth + 1);
+ }
+ }
+};
+const sorter = (graph, nodes) => {
+ if (nodes.length === 0) {
+ return [];
+ }
+ let result = Object.assign(nodes);
+ nodes.forEach((node) => {
+ const children = graph.children(node);
+ const sorted = sorter(graph, children);
+ result = [...result, ...sorted];
+ });
+ return result;
+};
+const sortNodesByHierarchy = (graph) => sorter(graph, graph.children());
+const rect = (parent, node) => {
+ log.info("Creating subgraph rect for ", node.id, node);
+ const shapeSvg = parent.insert("g").attr("class", "cluster" + (node.class ? " " + node.class : "")).attr("id", node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);
+ const label = shapeSvg.insert("g").attr("class", "cluster-label");
+ const text = node.labelType === "markdown" ? createText(label, node.labelText, { style: node.labelStyle, useHtmlLabels }) : label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));
+ let bbox = text.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = text.children[0];
+ const dv = select(text);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ const padding = 0 * node.padding;
+ const halfPadding = padding / 2;
+ const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;
+ if (node.width <= bbox.width + padding) {
+ node.diff = (bbox.width - node.width) / 2 - node.padding / 2;
+ } else {
+ node.diff = -node.padding / 2;
+ }
+ log.trace("Data ", node, JSON.stringify(node));
+ rect2.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - width / 2).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width).attr("height", node.height + padding);
+ if (useHtmlLabels) {
+ label.attr(
+ "transform",
+ // This puts the labal on top of the box instead of inside it
+ "translate(" + (node.x - bbox.width / 2) + ", " + (node.y - node.height / 2) + ")"
+ );
+ } else {
+ label.attr(
+ "transform",
+ // This puts the labal on top of the box instead of inside it
+ "translate(" + node.x + ", " + (node.y - node.height / 2) + ")"
+ );
+ }
+ const rectBox = rect2.node().getBBox();
+ node.width = rectBox.width;
+ node.height = rectBox.height;
+ node.intersect = function(point) {
+ return intersectRect(node, point);
+ };
+ return shapeSvg;
+};
+const noteGroup = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", "note-cluster").attr("id", node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const padding = 0 * node.padding;
+ const halfPadding = padding / 2;
+ rect2.attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", node.width + padding).attr("height", node.height + padding).attr("fill", "none");
+ const rectBox = rect2.node().getBBox();
+ node.width = rectBox.width;
+ node.height = rectBox.height;
+ node.intersect = function(point) {
+ return intersectRect(node, point);
+ };
+ return shapeSvg;
+};
+const roundedWithTitle = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const label = shapeSvg.insert("g").attr("class", "cluster-label");
+ const innerRect = shapeSvg.append("rect");
+ const text = label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));
+ let bbox = text.getBBox();
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const div = text.children[0];
+ const dv = select(text);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ bbox = text.getBBox();
+ const padding = 0 * node.padding;
+ const halfPadding = padding / 2;
+ const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;
+ if (node.width <= bbox.width + node.padding) {
+ node.diff = (bbox.width + node.padding * 0 - node.width) / 2;
+ } else {
+ node.diff = -node.padding / 2;
+ }
+ rect2.attr("class", "outer").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width + padding).attr("height", node.height + padding);
+ innerRect.attr("class", "inner").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding + bbox.height - 1).attr("width", width + padding).attr("height", node.height + padding - bbox.height - 3);
+ label.attr(
+ "transform",
+ "translate(" + (node.x - bbox.width / 2) + ", " + (node.y - node.height / 2 - node.padding / 3 + (evaluate(getConfig().flowchart.htmlLabels) ? 5 : 3)) + ")"
+ );
+ const rectBox = rect2.node().getBBox();
+ node.height = rectBox.height;
+ node.intersect = function(point) {
+ return intersectRect(node, point);
+ };
+ return shapeSvg;
+};
+const divider = (parent, node) => {
+ const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id);
+ const rect2 = shapeSvg.insert("rect", ":first-child");
+ const padding = 0 * node.padding;
+ const halfPadding = padding / 2;
+ rect2.attr("class", "divider").attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2).attr("width", node.width + padding).attr("height", node.height + padding);
+ const rectBox = rect2.node().getBBox();
+ node.width = rectBox.width;
+ node.height = rectBox.height;
+ node.diff = -node.padding / 2;
+ node.intersect = function(point) {
+ return intersectRect(node, point);
+ };
+ return shapeSvg;
+};
+const shapes = { rect, roundedWithTitle, noteGroup, divider };
+let clusterElems = {};
+const insertCluster = (elem, node) => {
+ log.trace("Inserting cluster");
+ const shape = node.shape || "rect";
+ clusterElems[node.id] = shapes[shape](elem, node);
+};
+const clear = () => {
+ clusterElems = {};
+};
+const recursiveRender = (_elem, graph, diagramtype, parentCluster) => {
+ log.info("Graph in recursive render: XXX", write(graph), parentCluster);
+ const dir = graph.graph().rankdir;
+ log.trace("Dir in recursive render - dir:", dir);
+ const elem = _elem.insert("g").attr("class", "root");
+ if (!graph.nodes()) {
+ log.info("No nodes found for", graph);
+ } else {
+ log.info("Recursive render XXX", graph.nodes());
+ }
+ if (graph.edges().length > 0) {
+ log.trace("Recursive edges", graph.edge(graph.edges()[0]));
+ }
+ const clusters = elem.insert("g").attr("class", "clusters");
+ const edgePaths = elem.insert("g").attr("class", "edgePaths");
+ const edgeLabels = elem.insert("g").attr("class", "edgeLabels");
+ const nodes = elem.insert("g").attr("class", "nodes");
+ graph.nodes().forEach(function(v) {
+ const node = graph.node(v);
+ if (parentCluster !== void 0) {
+ const data = JSON.parse(JSON.stringify(parentCluster.clusterData));
+ log.info("Setting data for cluster XXX (", v, ") ", data, parentCluster);
+ graph.setNode(parentCluster.id, data);
+ if (!graph.parent(v)) {
+ log.trace("Setting parent", v, parentCluster.id);
+ graph.setParent(v, parentCluster.id, data);
+ }
+ }
+ log.info("(Insert) Node XXX" + v + ": " + JSON.stringify(graph.node(v)));
+ if (node && node.clusterNode) {
+ log.info("Cluster identified", v, node.width, graph.node(v));
+ const o = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));
+ const newEl = o.elem;
+ updateNodeBounds(node, newEl);
+ node.diff = o.diff || 0;
+ log.info("Node bounds (abc123)", v, node, node.width, node.x, node.y);
+ setNodeElem(newEl, node);
+ log.warn("Recursive render complete ", newEl, node);
+ } else {
+ if (graph.children(v).length > 0) {
+ log.info("Cluster - the non recursive path XXX", v, node.id, node, graph);
+ log.info(findNonClusterChild(node.id, graph));
+ clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };
+ } else {
+ log.info("Node - the non recursive path", v, node.id, node);
+ insertNode(nodes, graph.node(v), dir);
+ }
+ }
+ });
+ graph.edges().forEach(function(e) {
+ const edge = graph.edge(e.v, e.w, e.name);
+ log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
+ log.info("Edge " + e.v + " -> " + e.w + ": ", e, " ", JSON.stringify(graph.edge(e)));
+ log.info("Fix", clusterDb, "ids:", e.v, e.w, "Translateing: ", clusterDb[e.v], clusterDb[e.w]);
+ insertEdgeLabel(edgeLabels, edge);
+ });
+ graph.edges().forEach(function(e) {
+ log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
+ });
+ log.info("#############################################");
+ log.info("### Layout ###");
+ log.info("#############################################");
+ log.info(graph);
+ layout(graph);
+ log.info("Graph after layout:", write(graph));
+ let diff = 0;
+ sortNodesByHierarchy(graph).forEach(function(v) {
+ const node = graph.node(v);
+ log.info("Position " + v + ": " + JSON.stringify(graph.node(v)));
+ log.info(
+ "Position " + v + ": (" + node.x,
+ "," + node.y,
+ ") width: ",
+ node.width,
+ " height: ",
+ node.height
+ );
+ if (node && node.clusterNode) {
+ positionNode(node);
+ } else {
+ if (graph.children(v).length > 0) {
+ insertCluster(clusters, node);
+ clusterDb[node.id].node = node;
+ } else {
+ positionNode(node);
+ }
+ }
+ });
+ graph.edges().forEach(function(e) {
+ const edge = graph.edge(e);
+ log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(edge), edge);
+ const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph);
+ positionEdgeLabel(edge, paths);
+ });
+ graph.nodes().forEach(function(v) {
+ const n = graph.node(v);
+ log.info(v, n.type, n.diff);
+ if (n.type === "group") {
+ diff = n.diff;
+ }
+ });
+ return { elem, diff };
+};
+const render = (elem, graph, markers, diagramtype, id) => {
+ insertMarkers(elem, markers, diagramtype, id);
+ clear$2();
+ clear$3();
+ clear();
+ clear$1();
+ log.warn("Graph at first:", write(graph));
+ adjustClustersAndEdges(graph);
+ log.warn("Graph after:", write(graph));
+ recursiveRender(elem, graph, diagramtype);
+};
+export {
+ render as r
+};
+//# sourceMappingURL=index-c47ff54b.js.map
diff --git a/scopegraphs-render-docs/doc/js/infoDiagram-24bbb26e.js b/scopegraphs-render-docs/doc/js/infoDiagram-24bbb26e.js
new file mode 100644
index 0000000..6ec0b2c
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/infoDiagram-24bbb26e.js
@@ -0,0 +1,535 @@
+import { A as clear, l as log, g as getConfig, h as select } from "./commonDb-89160e91.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [6, 9, 10];
+ var parser2 = {
+ trace: function trace() {
+ },
+ 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 anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return yy;
+ case 4:
+ break;
+ case 6:
+ yy.setInfo(true);
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6])],
+ defaultActions: { 4: [2, 1] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ 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": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+var message = "";
+var info = false;
+const setMessage = (txt) => {
+ log.debug("Setting message to: " + txt);
+ message = txt;
+};
+const getMessage = () => {
+ return message;
+};
+const setInfo = (inf) => {
+ info = inf;
+};
+const getInfo = () => {
+ return info;
+};
+const db = {
+ setMessage,
+ getMessage,
+ setInfo,
+ getInfo,
+ clear
+ // parseError
+};
+const getStyles = () => ``;
+const styles = getStyles;
+const draw = (text, id, version) => {
+ try {
+ log.debug("Rendering info diagram\n" + text);
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const svg = root.select("#" + id);
+ const g = svg.append("g");
+ g.append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", "32px").style("text-anchor", "middle").text("v " + version);
+ svg.attr("height", 100);
+ svg.attr("width", 400);
+ } catch (e) {
+ log.error("Error while rendering info diagram");
+ log.error(e.message);
+ }
+};
+const renderer = {
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db,
+ renderer,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=infoDiagram-24bbb26e.js.map
diff --git a/scopegraphs-render-docs/doc/js/infoDiagram-388842fb.js b/scopegraphs-render-docs/doc/js/infoDiagram-388842fb.js
new file mode 100644
index 0000000..3cc1a31
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/infoDiagram-388842fb.js
@@ -0,0 +1,331 @@
+import { A as C, l as E, g as D, h as P } from "./commonDb-41f8b4c5.js";
+var L = function() {
+ var h = function(c, t, e, n) {
+ for (e = e || {}, n = c.length; n--; e[c[n]] = t)
+ ;
+ return e;
+ }, f = [6, 9, 10], x = {
+ 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, s, r, i, k) {
+ switch (i.length - 1, r) {
+ case 1:
+ return s;
+ case 4:
+ break;
+ case 6:
+ s.setInfo(!0);
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, h(f, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, h(f, [2, 3]), h(f, [2, 4]), h(f, [2, 5]), h(f, [2, 6])],
+ defaultActions: { 4: [2, 1] },
+ parseError: function(t, e) {
+ if (e.recoverable)
+ this.trace(t);
+ else {
+ var n = new Error(t);
+ throw n.hash = e, n;
+ }
+ },
+ parse: function(t) {
+ var e = this, n = [0], s = [], r = [null], i = [], k = this.table, $ = "", b = 0, T = 0, z = 2, R = 1, M = i.slice.call(arguments, 1), o = Object.create(this.lexer), p = { yy: {} };
+ for (var w in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, w) && (p.yy[w] = this.yy[w]);
+ o.setInput(t, p.yy), p.yy.lexer = o, p.yy.parser = this, typeof o.yylloc > "u" && (o.yylloc = {});
+ var I = o.yylloc;
+ i.push(I);
+ var Y = o.options && o.options.ranges;
+ typeof p.yy.parseError == "function" ? this.parseError = p.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function U() {
+ var u;
+ return u = s.pop() || o.lex() || R, typeof u != "number" && (u instanceof Array && (s = u, u = s.pop()), u = e.symbols_[u] || u), u;
+ }
+ for (var l, g, a, A, d = {}, v, y, j, S; ; ) {
+ if (g = n[n.length - 1], this.defaultActions[g] ? a = this.defaultActions[g] : ((l === null || typeof l > "u") && (l = U()), a = k[g] && k[g][l]), typeof a > "u" || !a.length || !a[0]) {
+ var O = "";
+ S = [];
+ for (v in k[g])
+ this.terminals_[v] && v > z && S.push("'" + this.terminals_[v] + "'");
+ o.showPosition ? O = "Parse error on line " + (b + 1) + `:
+` + o.showPosition() + `
+Expecting ` + S.join(", ") + ", got '" + (this.terminals_[l] || l) + "'" : O = "Parse error on line " + (b + 1) + ": Unexpected " + (l == R ? "end of input" : "'" + (this.terminals_[l] || l) + "'"), this.parseError(O, {
+ text: o.match,
+ token: this.terminals_[l] || l,
+ line: o.yylineno,
+ loc: I,
+ expected: S
+ });
+ }
+ if (a[0] instanceof Array && a.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + g + ", token: " + l);
+ switch (a[0]) {
+ case 1:
+ n.push(l), r.push(o.yytext), i.push(o.yylloc), n.push(a[1]), l = null, T = o.yyleng, $ = o.yytext, b = o.yylineno, I = o.yylloc;
+ break;
+ case 2:
+ if (y = this.productions_[a[1]][1], d.$ = r[r.length - y], d._$ = {
+ first_line: i[i.length - (y || 1)].first_line,
+ last_line: i[i.length - 1].last_line,
+ first_column: i[i.length - (y || 1)].first_column,
+ last_column: i[i.length - 1].last_column
+ }, Y && (d._$.range = [
+ i[i.length - (y || 1)].range[0],
+ i[i.length - 1].range[1]
+ ]), A = this.performAction.apply(d, [
+ $,
+ T,
+ b,
+ p.yy,
+ a[1],
+ r,
+ i
+ ].concat(M)), typeof A < "u")
+ return A;
+ y && (n = n.slice(0, -1 * y * 2), r = r.slice(0, -1 * y), i = i.slice(0, -1 * y)), n.push(this.productions_[a[1]][0]), r.push(d.$), i.push(d._$), j = k[n[n.length - 2]][n[n.length - 1]], n.push(j);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, m = function() {
+ var c = {
+ EOF: 1,
+ parseError: function(e, n) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(e, n);
+ else
+ throw new Error(e);
+ },
+ // resets the lexer, sets new input
+ 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var t = this._input[0];
+ this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t;
+ var e = t.match(/(?:\r\n?|\n).*/g);
+ return e ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t;
+ },
+ // unshifts one char (or a string) into the input
+ 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 s = 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 r = 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 === s.length ? this.yylloc.first_column : 0) + s[s.length - n.length].length - n[0].length : this.yylloc.first_column - e
+ }, this.options.ranges && (this.yylloc.range = [r[0], r[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(t) {
+ this.unput(this.match.slice(t));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var t = this.matched.substr(0, this.matched.length - this.match.length);
+ return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ 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, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var t = this.pastInput(), e = new Array(t.length + 1).join("-");
+ return t + this.upcomingInput() + `
+` + e + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(t, e) {
+ var n, s, r;
+ if (this.options.backtrack_lexer && (r = {
+ 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 && (r.yylloc.range = this.yylloc.range.slice(0))), s = t[0].match(/(?:\r\n?|\n).*/g), s && (this.yylineno += s.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: s ? s[s.length - 1].length - s[s.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 i in r)
+ this[i] = r[i];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var t, e, n, s;
+ this._more || (this.yytext = "", this.match = "");
+ for (var r = this._currentRules(), i = 0; i < r.length; i++)
+ if (n = this._input.match(this.rules[r[i]]), n && (!e || n[0].length > e[0].length)) {
+ if (e = n, s = i, this.options.backtrack_lexer) {
+ if (t = this.test_match(n, r[i]), t !== !1)
+ return t;
+ if (this._backtrack) {
+ e = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return e ? (t = this.test_match(e, r[s]), t !== !1 ? t : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var e = this.next();
+ return e || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(e) {
+ this.conditionStack.push(e);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var e = this.conditionStack.length - 1;
+ return e > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(e) {
+ return e = this.conditionStack.length - 1 - Math.abs(e || 0), e >= 0 ? this.conditionStack[e] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(e) {
+ this.begin(e);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": !0 },
+ performAction: function(e, n, s, r) {
+ switch (s) {
+ 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 } }
+ };
+ return c;
+ }();
+ x.lexer = m;
+ function _() {
+ this.yy = {};
+ }
+ return _.prototype = x, x.Parser = _, new _();
+}();
+L.parser = L;
+const V = L;
+var F = "", N = !1;
+const X = (h) => {
+ E.debug("Setting message to: " + h), F = h;
+}, q = () => F, B = (h) => {
+ N = h;
+}, G = () => N, H = {
+ setMessage: X,
+ getMessage: q,
+ setInfo: B,
+ getInfo: G,
+ clear: C
+ // parseError
+}, J = () => "", K = J, Q = (h, f, x) => {
+ try {
+ E.debug(`Rendering info diagram
+` + h);
+ const m = D().securityLevel;
+ let _;
+ m === "sandbox" && (_ = P("#i" + f));
+ const t = (m === "sandbox" ? P(_.nodes()[0].contentDocument.body) : P("body")).select("#" + f);
+ t.append("g").append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", "32px").style("text-anchor", "middle").text("v " + x), t.attr("height", 100), t.attr("width", 400);
+ } catch (m) {
+ E.error("Error while rendering info diagram"), E.error(m.message);
+ }
+}, W = {
+ draw: Q
+}, tt = {
+ parser: V,
+ db: H,
+ renderer: W,
+ styles: K
+};
+export {
+ tt as diagram
+};
+//# sourceMappingURL=infoDiagram-388842fb.js.map
diff --git a/scopegraphs-render-docs/doc/js/infoDiagram-69ec1a58.js b/scopegraphs-render-docs/doc/js/infoDiagram-69ec1a58.js
new file mode 100644
index 0000000..4b1a61c
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/infoDiagram-69ec1a58.js
@@ -0,0 +1,539 @@
+import { y as clear, l as log, g as getConfig } from "./commonDb-573409be.js";
+import { select } from "d3";
+import "dompurify";
+import "dayjs";
+import "khroma";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [6, 9, 10];
+ var parser2 = {
+ trace: function trace() {
+ },
+ 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 anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return yy;
+ case 4:
+ break;
+ case 6:
+ yy.setInfo(true);
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6])],
+ defaultActions: { 4: [2, 1] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ 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": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+var message = "";
+var info = false;
+const setMessage = (txt) => {
+ log.debug("Setting message to: " + txt);
+ message = txt;
+};
+const getMessage = () => {
+ return message;
+};
+const setInfo = (inf) => {
+ info = inf;
+};
+const getInfo = () => {
+ return info;
+};
+const db = {
+ setMessage,
+ getMessage,
+ setInfo,
+ getInfo,
+ clear
+ // parseError
+};
+const getStyles = () => ``;
+const styles = getStyles;
+const draw = (text, id, version) => {
+ try {
+ log.debug("Rendering info diagram\n" + text);
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const svg = root.select("#" + id);
+ const g = svg.append("g");
+ g.append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", "32px").style("text-anchor", "middle").text("v " + version);
+ svg.attr("height", 100);
+ svg.attr("width", 400);
+ } catch (e) {
+ log.error("Error while rendering info diagram");
+ log.error(e.message);
+ }
+};
+const renderer = {
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db,
+ renderer,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=infoDiagram-69ec1a58.js.map
diff --git a/scopegraphs-render-docs/doc/js/init-cc95ec8e.js b/scopegraphs-render-docs/doc/js/init-cc95ec8e.js
new file mode 100644
index 0000000..df5fc45
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/init-cc95ec8e.js
@@ -0,0 +1,17 @@
+function initRange(domain, range) {
+ switch (arguments.length) {
+ case 0:
+ break;
+ case 1:
+ this.range(domain);
+ break;
+ default:
+ this.range(range).domain(domain);
+ break;
+ }
+ return this;
+}
+export {
+ initRange as i
+};
+//# sourceMappingURL=init-cc95ec8e.js.map
diff --git a/scopegraphs-render-docs/doc/js/init-f9637058.js b/scopegraphs-render-docs/doc/js/init-f9637058.js
new file mode 100644
index 0000000..155e7f4
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/init-f9637058.js
@@ -0,0 +1,17 @@
+function t(e, a) {
+ switch (arguments.length) {
+ case 0:
+ break;
+ case 1:
+ this.range(e);
+ break;
+ default:
+ this.range(a).domain(e);
+ break;
+ }
+ return this;
+}
+export {
+ t as i
+};
+//# sourceMappingURL=init-f9637058.js.map
diff --git a/scopegraphs-render-docs/doc/js/interactionDb.d.ts b/scopegraphs-render-docs/doc/js/interactionDb.d.ts
new file mode 100644
index 0000000..aad64b1
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/interactionDb.d.ts
@@ -0,0 +1,2 @@
+export declare const addFunction: (func: () => void) => void;
+export declare const attachFunctions: () => void;
diff --git a/scopegraphs-render-docs/doc/js/is_dark-a2294536.js b/scopegraphs-render-docs/doc/js/is_dark-a2294536.js
new file mode 100644
index 0000000..e432ada
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/is_dark-a2294536.js
@@ -0,0 +1,9 @@
+import { W as c, _ as r } from "./commonDb-41f8b4c5.js";
+const e = (n) => {
+ const { r: t, g: o, b: a } = c.parse(n), s = 0.2126 * r.channel.toLinear(t) + 0.7152 * r.channel.toLinear(o) + 0.0722 * r.channel.toLinear(a);
+ return r.lang.round(s);
+}, i = e, l = (n) => i(n) >= 0.5, u = l, h = (n) => !u(n), L = h;
+export {
+ L as i
+};
+//# sourceMappingURL=is_dark-a2294536.js.map
diff --git a/scopegraphs-render-docs/doc/js/is_dark-b77964f3.js b/scopegraphs-render-docs/doc/js/is_dark-b77964f3.js
new file mode 100644
index 0000000..df4c2b2
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/is_dark-b77964f3.js
@@ -0,0 +1,19 @@
+import { W as Color, _ } from "./commonDb-89160e91.js";
+const luminance = (color) => {
+ const { r, g, b } = Color.parse(color);
+ const luminance2 = 0.2126 * _.channel.toLinear(r) + 0.7152 * _.channel.toLinear(g) + 0.0722 * _.channel.toLinear(b);
+ return _.lang.round(luminance2);
+};
+const luminance$1 = luminance;
+const isLight = (color) => {
+ return luminance$1(color) >= 0.5;
+};
+const isLight$1 = isLight;
+const isDark = (color) => {
+ return !isLight$1(color);
+};
+const isDark$1 = isDark;
+export {
+ isDark$1 as i
+};
+//# sourceMappingURL=is_dark-b77964f3.js.map
diff --git a/scopegraphs-render-docs/doc/js/journeyDiagram-420adb66.js b/scopegraphs-render-docs/doc/js/journeyDiagram-420adb66.js
new file mode 100644
index 0000000..0e11123
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/journeyDiagram-420adb66.js
@@ -0,0 +1,869 @@
+import { m as gt } from "./mermaidAPI-67f627de.js";
+import { g as V, y as mt, z as xt, q as _t, v as kt, x as vt, w as bt, A as wt, h as Z } from "./commonDb-41f8b4c5.js";
+import { d as st } from "./arc-f7872e1e.js";
+import { v as Tt } from "./utils-8ea37061.js";
+import "./constant-2fe7eae5.js";
+var K = function() {
+ var e = function(_, n, a, h) {
+ for (a = a || {}, h = _.length; h--; a[_[h]] = n)
+ ;
+ return a;
+ }, t = [1, 2], i = [1, 5], r = [6, 9, 11, 17, 18, 20, 22, 23, 24, 26], s = [1, 15], o = [1, 16], l = [1, 17], y = [1, 18], u = [1, 19], x = [1, 20], g = [1, 24], f = [4, 6, 9, 11, 17, 18, 20, 22, 23, 24, 26], d = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, journey: 4, document: 5, EOF: 6, directive: 7, line: 8, SPACE: 9, statement: 10, NEWLINE: 11, openDirective: 12, typeDirective: 13, closeDirective: 14, ":": 15, argDirective: 16, title: 17, acc_title: 18, acc_title_value: 19, acc_descr: 20, acc_descr_value: 21, acc_descr_multiline_value: 22, section: 23, taskName: 24, taskData: 25, open_directive: 26, type_directive: 27, arg_directive: 28, close_directive: 29, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 4: "journey", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 24: "taskName", 25: "taskData", 26: "open_directive", 27: "type_directive", 28: "arg_directive", 29: "close_directive" },
+ productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
+ performAction: function(n, a, h, p, m, c, R) {
+ var k = c.length - 1;
+ switch (m) {
+ case 1:
+ return c[k - 1];
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ c[k - 1].push(c[k]), this.$ = c[k - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = c[k];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 11:
+ p.setDiagramTitle(c[k].substr(6)), this.$ = c[k].substr(6);
+ break;
+ case 12:
+ this.$ = c[k].trim(), p.setAccTitle(this.$);
+ break;
+ case 13:
+ case 14:
+ this.$ = c[k].trim(), p.setAccDescription(this.$);
+ break;
+ case 15:
+ p.addSection(c[k].substr(8)), this.$ = c[k].substr(8);
+ break;
+ case 16:
+ p.addTask(c[k - 1], c[k]), this.$ = "task";
+ break;
+ case 18:
+ p.parseDirective("%%{", "open_directive");
+ break;
+ case 19:
+ p.parseDirective(c[k], "type_directive");
+ break;
+ case 20:
+ c[k] = c[k].trim().replace(/'/g, '"'), p.parseDirective(c[k], "arg_directive");
+ break;
+ case 21:
+ p.parseDirective("}%%", "close_directive", "journey");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: t, 7: 3, 12: 4, 26: i }, { 1: [3] }, e(r, [2, 3], { 5: 6 }), { 3: 7, 4: t, 7: 3, 12: 4, 26: i }, { 13: 8, 27: [1, 9] }, { 27: [2, 18] }, { 6: [1, 10], 7: 21, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: s, 18: o, 20: l, 22: y, 23: u, 24: x, 26: i }, { 1: [2, 2] }, { 14: 22, 15: [1, 23], 29: g }, e([15, 29], [2, 19]), e(r, [2, 8], { 1: [2, 1] }), e(r, [2, 4]), { 7: 21, 10: 25, 12: 4, 17: s, 18: o, 20: l, 22: y, 23: u, 24: x, 26: i }, e(r, [2, 6]), e(r, [2, 7]), e(r, [2, 11]), { 19: [1, 26] }, { 21: [1, 27] }, e(r, [2, 14]), e(r, [2, 15]), { 25: [1, 28] }, e(r, [2, 17]), { 11: [1, 29] }, { 16: 30, 28: [1, 31] }, { 11: [2, 21] }, e(r, [2, 5]), e(r, [2, 12]), e(r, [2, 13]), e(r, [2, 16]), e(f, [2, 9]), { 14: 32, 29: g }, { 29: [2, 20] }, { 11: [1, 33] }, e(f, [2, 10])],
+ defaultActions: { 5: [2, 18], 7: [2, 2], 24: [2, 21], 31: [2, 20] },
+ parseError: function(n, a) {
+ if (a.recoverable)
+ this.trace(n);
+ else {
+ var h = new Error(n);
+ throw h.hash = a, h;
+ }
+ },
+ parse: function(n) {
+ var a = this, h = [0], p = [], m = [null], c = [], R = this.table, k = "", z = 0, tt = 0, yt = 2, et = 1, dt = c.slice.call(arguments, 1), b = Object.create(this.lexer), A = { yy: {} };
+ for (var X in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, X) && (A.yy[X] = this.yy[X]);
+ b.setInput(n, A.yy), A.yy.lexer = b, A.yy.parser = this, typeof b.yylloc > "u" && (b.yylloc = {});
+ var G = b.yylloc;
+ c.push(G);
+ var pt = b.options && b.options.ranges;
+ typeof A.yy.parseError == "function" ? this.parseError = A.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function ft() {
+ var E;
+ return E = p.pop() || b.lex() || et, typeof E != "number" && (E instanceof Array && (p = E, E = p.pop()), E = a.symbols_[E] || E), E;
+ }
+ for (var w, I, M, H, F = {}, Y, $, it, q; ; ) {
+ if (I = h[h.length - 1], this.defaultActions[I] ? M = this.defaultActions[I] : ((w === null || typeof w > "u") && (w = ft()), M = R[I] && R[I][w]), typeof M > "u" || !M.length || !M[0]) {
+ var U = "";
+ q = [];
+ for (Y in R[I])
+ this.terminals_[Y] && Y > yt && q.push("'" + this.terminals_[Y] + "'");
+ b.showPosition ? U = "Parse error on line " + (z + 1) + `:
+` + b.showPosition() + `
+Expecting ` + q.join(", ") + ", got '" + (this.terminals_[w] || w) + "'" : U = "Parse error on line " + (z + 1) + ": Unexpected " + (w == et ? "end of input" : "'" + (this.terminals_[w] || w) + "'"), this.parseError(U, {
+ text: b.match,
+ token: this.terminals_[w] || w,
+ line: b.yylineno,
+ loc: G,
+ expected: q
+ });
+ }
+ if (M[0] instanceof Array && M.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + I + ", token: " + w);
+ switch (M[0]) {
+ case 1:
+ h.push(w), m.push(b.yytext), c.push(b.yylloc), h.push(M[1]), w = null, tt = b.yyleng, k = b.yytext, z = b.yylineno, G = b.yylloc;
+ break;
+ case 2:
+ if ($ = this.productions_[M[1]][1], F.$ = m[m.length - $], F._$ = {
+ first_line: c[c.length - ($ || 1)].first_line,
+ last_line: c[c.length - 1].last_line,
+ first_column: c[c.length - ($ || 1)].first_column,
+ last_column: c[c.length - 1].last_column
+ }, pt && (F._$.range = [
+ c[c.length - ($ || 1)].range[0],
+ c[c.length - 1].range[1]
+ ]), H = this.performAction.apply(F, [
+ k,
+ tt,
+ z,
+ A.yy,
+ M[1],
+ m,
+ c
+ ].concat(dt)), typeof H < "u")
+ return H;
+ $ && (h = h.slice(0, -1 * $ * 2), m = m.slice(0, -1 * $), c = c.slice(0, -1 * $)), h.push(this.productions_[M[1]][0]), m.push(F.$), c.push(F._$), it = R[h[h.length - 2]][h[h.length - 1]], h.push(it);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, T = function() {
+ var _ = {
+ EOF: 1,
+ parseError: function(a, h) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(a, h);
+ else
+ throw new Error(a);
+ },
+ // resets the lexer, sets new input
+ setInput: function(n, a) {
+ return this.yy = a || this.yy || {}, this._input = n, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var n = this._input[0];
+ this.yytext += n, this.yyleng++, this.offset++, this.match += n, this.matched += n;
+ var a = n.match(/(?:\r\n?|\n).*/g);
+ return a ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), n;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(n) {
+ var a = n.length, h = n.split(/(?:\r\n?|\n)/g);
+ this._input = n + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - a), this.offset -= a;
+ var p = 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), h.length - 1 && (this.yylineno -= h.length - 1);
+ var m = 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: h ? (h.length === p.length ? this.yylloc.first_column : 0) + p[p.length - h.length].length - h[0].length : this.yylloc.first_column - a
+ }, this.options.ranges && (this.yylloc.range = [m[0], m[0] + this.yyleng - a]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var n = this.matched.substr(0, this.matched.length - this.match.length);
+ return (n.length > 20 ? "..." : "") + n.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var n = this.match;
+ return n.length < 20 && (n += this._input.substr(0, 20 - n.length)), (n.substr(0, 20) + (n.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var n = this.pastInput(), a = new Array(n.length + 1).join("-");
+ return n + this.upcomingInput() + `
+` + a + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(n, a) {
+ var h, p, m;
+ if (this.options.backtrack_lexer && (m = {
+ 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 && (m.yylloc.range = this.yylloc.range.slice(0))), p = n[0].match(/(?:\r\n?|\n).*/g), p && (this.yylineno += p.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: p ? p[p.length - 1].length - p[p.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + n[0].length
+ }, this.yytext += n[0], this.match += n[0], this.matches = n, 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(n[0].length), this.matched += n[0], h = this.performAction.call(this, this.yy, this, a, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), h)
+ return h;
+ if (this._backtrack) {
+ for (var c in m)
+ this[c] = m[c];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var n, a, h, p;
+ this._more || (this.yytext = "", this.match = "");
+ for (var m = this._currentRules(), c = 0; c < m.length; c++)
+ if (h = this._input.match(this.rules[m[c]]), h && (!a || h[0].length > a[0].length)) {
+ if (a = h, p = c, this.options.backtrack_lexer) {
+ if (n = this.test_match(h, m[c]), n !== !1)
+ return n;
+ if (this._backtrack) {
+ a = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return a ? (n = this.test_match(a, m[p]), n !== !1 ? n : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var a = this.next();
+ return a || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(a) {
+ this.conditionStack.push(a);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var a = this.conditionStack.length - 1;
+ return a > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(a) {
+ return a = this.conditionStack.length - 1 - Math.abs(a || 0), a >= 0 ? this.conditionStack[a] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(a) {
+ this.begin(a);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": !0 },
+ performAction: function(a, h, p, m) {
+ switch (p) {
+ case 0:
+ return this.begin("open_directive"), 26;
+ case 1:
+ return this.begin("type_directive"), 27;
+ case 2:
+ return this.popState(), this.begin("arg_directive"), 15;
+ case 3:
+ return this.popState(), this.popState(), 29;
+ case 4:
+ return 28;
+ case 5:
+ break;
+ case 6:
+ break;
+ case 7:
+ return 11;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ return 4;
+ case 11:
+ return 17;
+ case 12:
+ return this.begin("acc_title"), 18;
+ case 13:
+ return this.popState(), "acc_title_value";
+ case 14:
+ return this.begin("acc_descr"), 20;
+ case 15:
+ return this.popState(), "acc_descr_value";
+ case 16:
+ this.begin("acc_descr_multiline");
+ break;
+ case 17:
+ this.popState();
+ break;
+ case 18:
+ return "acc_descr_multiline_value";
+ case 19:
+ return 23;
+ case 20:
+ return 24;
+ case 21:
+ return 25;
+ case 22:
+ return 15;
+ case 23:
+ return 6;
+ case 24:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { open_directive: { rules: [1], inclusive: !1 }, type_directive: { rules: [2, 3], inclusive: !1 }, arg_directive: { rules: [3, 4], inclusive: !1 }, acc_descr_multiline: { rules: [17, 18], inclusive: !1 }, acc_descr: { rules: [15], inclusive: !1 }, acc_title: { rules: [13], inclusive: !1 }, INITIAL: { rules: [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23, 24], inclusive: !0 } }
+ };
+ return _;
+ }();
+ d.lexer = T;
+ function v() {
+ this.yy = {};
+ }
+ return v.prototype = d, d.Parser = v, new v();
+}();
+K.parser = K;
+const Mt = K;
+let L = "";
+const Q = [], N = [], B = [], St = function(e, t, i) {
+ gt.parseDirective(this, e, t, i);
+}, $t = function() {
+ Q.length = 0, N.length = 0, L = "", B.length = 0, wt();
+}, Et = function(e) {
+ L = e, Q.push(e);
+}, Pt = function() {
+ return Q;
+}, At = function() {
+ let e = rt();
+ const t = 100;
+ let i = 0;
+ for (; !e && i < t; )
+ e = rt(), i++;
+ return N.push(...B), N;
+}, It = function() {
+ const e = [];
+ return N.forEach((i) => {
+ i.people && e.push(...i.people);
+ }), [...new Set(e)].sort();
+}, Ct = function(e, t) {
+ const i = t.substr(1).split(":");
+ let r = 0, s = [];
+ i.length === 1 ? (r = Number(i[0]), s = []) : (r = Number(i[0]), s = i[1].split(","));
+ const o = s.map((y) => y.trim()), l = {
+ section: L,
+ type: L,
+ people: o,
+ task: e,
+ score: r
+ };
+ B.push(l);
+}, Vt = function(e) {
+ const t = {
+ section: L,
+ type: L,
+ description: e,
+ task: e,
+ classes: []
+ };
+ N.push(t);
+}, rt = function() {
+ const e = function(i) {
+ return B[i].processed;
+ };
+ let t = !0;
+ for (const [i, r] of B.entries())
+ e(i), t = t && r.processed;
+ return t;
+}, Ft = function() {
+ return It();
+}, nt = {
+ parseDirective: St,
+ getConfig: () => V().journey,
+ clear: $t,
+ setDiagramTitle: mt,
+ getDiagramTitle: xt,
+ setAccTitle: _t,
+ getAccTitle: kt,
+ setAccDescription: vt,
+ getAccDescription: bt,
+ addSection: Et,
+ getSections: Pt,
+ getTasks: At,
+ addTask: Ct,
+ addTaskOrg: Vt,
+ getActors: Ft
+}, Lt = (e) => `.label {
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ color: ${e.textColor};
+ }
+ .mouth {
+ stroke: #666;
+ }
+
+ line {
+ stroke: ${e.textColor}
+ }
+
+ .legend {
+ fill: ${e.textColor};
+ }
+
+ .label text {
+ fill: #333;
+ }
+ .label {
+ color: ${e.textColor}
+ }
+
+ .face {
+ ${e.faceColor ? `fill: ${e.faceColor}` : "fill: #FFF8DC"};
+ stroke: #999;
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${e.mainBkg};
+ stroke: ${e.nodeBorder};
+ stroke-width: 1px;
+ }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${e.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${e.lineColor};
+ stroke-width: 1.5px;
+ }
+
+ .flowchart-link {
+ stroke: ${e.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${e.edgeLabelBackground};
+ rect {
+ opacity: 0.5;
+ }
+ text-align: center;
+ }
+
+ .cluster rect {
+ }
+
+ .cluster text {
+ fill: ${e.titleColor};
+ }
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ font-size: 12px;
+ background: ${e.tertiaryColor};
+ border: 1px solid ${e.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .task-type-0, .section-type-0 {
+ ${e.fillType0 ? `fill: ${e.fillType0}` : ""};
+ }
+ .task-type-1, .section-type-1 {
+ ${e.fillType0 ? `fill: ${e.fillType1}` : ""};
+ }
+ .task-type-2, .section-type-2 {
+ ${e.fillType0 ? `fill: ${e.fillType2}` : ""};
+ }
+ .task-type-3, .section-type-3 {
+ ${e.fillType0 ? `fill: ${e.fillType3}` : ""};
+ }
+ .task-type-4, .section-type-4 {
+ ${e.fillType0 ? `fill: ${e.fillType4}` : ""};
+ }
+ .task-type-5, .section-type-5 {
+ ${e.fillType0 ? `fill: ${e.fillType5}` : ""};
+ }
+ .task-type-6, .section-type-6 {
+ ${e.fillType0 ? `fill: ${e.fillType6}` : ""};
+ }
+ .task-type-7, .section-type-7 {
+ ${e.fillType0 ? `fill: ${e.fillType7}` : ""};
+ }
+
+ .actor-0 {
+ ${e.actor0 ? `fill: ${e.actor0}` : ""};
+ }
+ .actor-1 {
+ ${e.actor1 ? `fill: ${e.actor1}` : ""};
+ }
+ .actor-2 {
+ ${e.actor2 ? `fill: ${e.actor2}` : ""};
+ }
+ .actor-3 {
+ ${e.actor3 ? `fill: ${e.actor3}` : ""};
+ }
+ .actor-4 {
+ ${e.actor4 ? `fill: ${e.actor4}` : ""};
+ }
+ .actor-5 {
+ ${e.actor5 ? `fill: ${e.actor5}` : ""};
+ }
+`, Rt = Lt, O = function(e, t) {
+ const i = e.append("rect");
+ return i.attr("x", t.x), i.attr("y", t.y), i.attr("fill", t.fill), i.attr("stroke", t.stroke), i.attr("width", t.width), i.attr("height", t.height), i.attr("rx", t.rx), i.attr("ry", t.ry), t.class !== void 0 && i.attr("class", t.class), i;
+}, Nt = function(e, t) {
+ const r = e.append("circle").attr("cx", t.cx).attr("cy", t.cy).attr("class", "face").attr("r", 15).attr("stroke-width", 2).attr("overflow", "visible"), s = e.append("g");
+ s.append("circle").attr("cx", t.cx - 15 / 3).attr("cy", t.cy - 15 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"), s.append("circle").attr("cx", t.cx + 15 / 3).attr("cy", t.cy - 15 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ function o(u) {
+ const x = st().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(7.5).outerRadius(6.8181818181818175);
+ u.append("path").attr("class", "mouth").attr("d", x).attr("transform", "translate(" + t.cx + "," + (t.cy + 2) + ")");
+ }
+ function l(u) {
+ const x = st().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(7.5).outerRadius(6.8181818181818175);
+ u.append("path").attr("class", "mouth").attr("d", x).attr("transform", "translate(" + t.cx + "," + (t.cy + 7) + ")");
+ }
+ function y(u) {
+ u.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", t.cx - 5).attr("y1", t.cy + 7).attr("x2", t.cx + 5).attr("y2", t.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
+ }
+ return t.score > 3 ? o(s) : t.score < 3 ? l(s) : y(s), r;
+}, ot = function(e, t) {
+ const i = e.append("circle");
+ return i.attr("cx", t.cx), i.attr("cy", t.cy), i.attr("class", "actor-" + t.pos), i.attr("fill", t.fill), i.attr("stroke", t.stroke), i.attr("r", t.r), i.class !== void 0 && i.attr("class", i.class), t.title !== void 0 && i.append("title").text(t.title), i;
+}, ht = function(e, t) {
+ const i = t.text.replace(/
/gi, " "), r = e.append("text");
+ r.attr("x", t.x), r.attr("y", t.y), r.attr("class", "legend"), r.style("text-anchor", t.anchor), t.class !== void 0 && r.attr("class", t.class);
+ const s = r.append("tspan");
+ return s.attr("x", t.x + t.textMargin * 2), s.text(i), r;
+}, Bt = function(e, t) {
+ function i(s, o, l, y, u) {
+ return s + "," + o + " " + (s + l) + "," + o + " " + (s + l) + "," + (o + y - u) + " " + (s + l - u * 1.2) + "," + (o + y) + " " + s + "," + (o + y);
+ }
+ const r = e.append("polygon");
+ r.attr("points", i(t.x, t.y, 50, 20, 7)), r.attr("class", "labelBox"), t.y = t.y + t.labelMargin, t.x = t.x + 0.5 * t.labelMargin, ht(e, t);
+}, jt = function(e, t, i) {
+ const r = e.append("g"), s = D();
+ s.x = t.x, s.y = t.y, s.fill = t.fill, s.width = i.width * t.taskCount + // width of the tasks
+ i.diagramMarginX * (t.taskCount - 1), s.height = i.height, s.class = "journey-section section-type-" + t.num, s.rx = 3, s.ry = 3, O(r, s), ut(i)(
+ t.text,
+ r,
+ s.x,
+ s.y,
+ s.width,
+ s.height,
+ { class: "journey-section section-type-" + t.num },
+ i,
+ t.colour
+ );
+};
+let at = -1;
+const zt = function(e, t, i) {
+ const r = t.x + i.width / 2, s = e.append("g");
+ at++;
+ const o = 300 + 5 * 30;
+ s.append("line").attr("id", "task" + at).attr("x1", r).attr("y1", t.y).attr("x2", r).attr("y2", o).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"), Nt(s, {
+ cx: r,
+ cy: 300 + (5 - t.score) * 30,
+ score: t.score
+ });
+ const l = D();
+ l.x = t.x, l.y = t.y, l.fill = t.fill, l.width = i.width, l.height = i.height, l.class = "task task-type-" + t.num, l.rx = 3, l.ry = 3, O(s, l);
+ let y = t.x + 14;
+ t.people.forEach((u) => {
+ const x = t.actors[u].color, g = {
+ cx: y,
+ cy: t.y,
+ r: 7,
+ fill: x,
+ stroke: "#000",
+ title: u,
+ pos: t.actors[u].position
+ };
+ ot(s, g), y += 10;
+ }), ut(i)(
+ t.task,
+ s,
+ l.x,
+ l.y,
+ l.width,
+ l.height,
+ { class: "task" },
+ i,
+ t.colour
+ );
+}, Yt = function(e, t) {
+ O(e, {
+ x: t.startx,
+ y: t.starty,
+ width: t.stopx - t.startx,
+ height: t.stopy - t.starty,
+ fill: t.fill,
+ class: "rect"
+ }).lower();
+}, qt = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ "text-anchor": "start",
+ width: 100,
+ height: 100,
+ textMargin: 0,
+ rx: 0,
+ ry: 0
+ };
+}, D = function() {
+ return {
+ x: 0,
+ y: 0,
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+}, ut = function() {
+ function e(s, o, l, y, u, x, g, f) {
+ const d = o.append("text").attr("x", l + u / 2).attr("y", y + x / 2 + 5).style("font-color", f).style("text-anchor", "middle").text(s);
+ r(d, g);
+ }
+ function t(s, o, l, y, u, x, g, f, d) {
+ const { taskFontSize: T, taskFontFamily: v } = f, _ = s.split(/
/gi);
+ for (let n = 0; n < _.length; n++) {
+ const a = n * T - T * (_.length - 1) / 2, h = o.append("text").attr("x", l + u / 2).attr("y", y).attr("fill", d).style("text-anchor", "middle").style("font-size", T).style("font-family", v);
+ h.append("tspan").attr("x", l + u / 2).attr("dy", a).text(_[n]), h.attr("y", y + x / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"), r(h, g);
+ }
+ }
+ function i(s, o, l, y, u, x, g, f) {
+ const d = o.append("switch"), v = d.append("foreignObject").attr("x", l).attr("y", y).attr("width", u).attr("height", x).attr("position", "fixed").append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ v.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(s), t(s, d, l, y, u, x, g, f), r(v, g);
+ }
+ function r(s, o) {
+ for (const l in o)
+ l in o && s.attr(l, o[l]);
+ }
+ return function(s) {
+ return s.textPlacement === "fo" ? i : s.textPlacement === "old" ? e : t;
+ };
+}(), Ot = function(e) {
+ e.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");
+}, j = {
+ drawRect: O,
+ drawCircle: ot,
+ drawSection: jt,
+ drawText: ht,
+ drawLabel: Bt,
+ drawTask: zt,
+ drawBackgroundRect: Yt,
+ getTextObj: qt,
+ getNoteRect: D,
+ initGraphics: Ot
+}, Wt = function(e) {
+ Object.keys(e).forEach(function(i) {
+ W[i] = e[i];
+ });
+}, P = {};
+function Xt(e) {
+ const t = V().journey;
+ let i = 60;
+ Object.keys(P).forEach((r) => {
+ const s = P[r].color, o = {
+ cx: 20,
+ cy: i,
+ r: 7,
+ fill: s,
+ stroke: "#000",
+ pos: P[r].position
+ };
+ j.drawCircle(e, o);
+ const l = {
+ x: 40,
+ y: i + 7,
+ fill: "#666",
+ text: r,
+ textMargin: t.boxTextMargin | 5
+ };
+ j.drawText(e, l), i += 20;
+ });
+}
+const W = V().journey, C = W.leftMargin, Gt = function(e, t, i, r) {
+ const s = V().journey;
+ r.db.clear(), r.parser.parse(e + `
+`);
+ const o = V().securityLevel;
+ let l;
+ o === "sandbox" && (l = Z("#i" + t));
+ const y = o === "sandbox" ? Z(l.nodes()[0].contentDocument.body) : Z("body");
+ S.init();
+ const u = y.select("#" + t);
+ j.initGraphics(u);
+ const x = r.db.getTasks(), g = r.db.getDiagramTitle(), f = r.db.getActors();
+ for (const a in P)
+ delete P[a];
+ let d = 0;
+ f.forEach((a) => {
+ P[a] = {
+ color: s.actorColours[d % s.actorColours.length],
+ position: d
+ }, d++;
+ }), Xt(u), S.insert(0, 0, C, Object.keys(P).length * 50), Ht(u, x, 0);
+ const T = S.getBounds();
+ g && u.append("text").text(g).attr("x", C).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 25);
+ const v = T.stopy - T.starty + 2 * s.diagramMarginY, _ = C + T.stopx + 2 * s.diagramMarginX;
+ Tt(u, v, _, s.useMaxWidth), u.append("line").attr("x1", C).attr("y1", s.height * 4).attr("x2", _ - C - 4).attr("y2", s.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
+ const n = g ? 70 : 0;
+ u.attr("viewBox", `${T.startx} -25 ${_} ${v + n}`), u.attr("preserveAspectRatio", "xMinYMin meet"), u.attr("height", v + n + 25);
+}, S = {
+ data: {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ },
+ verticalPos: 0,
+ sequenceItems: [],
+ init: function() {
+ this.sequenceItems = [], this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ }, this.verticalPos = 0;
+ },
+ updateVal: function(e, t, i, r) {
+ e[t] === void 0 ? e[t] = i : e[t] = r(i, e[t]);
+ },
+ updateBounds: function(e, t, i, r) {
+ const s = V().journey, o = this;
+ let l = 0;
+ function y(u) {
+ return function(g) {
+ l++;
+ const f = o.sequenceItems.length - l + 1;
+ o.updateVal(g, "starty", t - f * s.boxMargin, Math.min), o.updateVal(g, "stopy", r + f * s.boxMargin, Math.max), o.updateVal(S.data, "startx", e - f * s.boxMargin, Math.min), o.updateVal(S.data, "stopx", i + f * s.boxMargin, Math.max), u !== "activation" && (o.updateVal(g, "startx", e - f * s.boxMargin, Math.min), o.updateVal(g, "stopx", i + f * s.boxMargin, Math.max), o.updateVal(S.data, "starty", t - f * s.boxMargin, Math.min), o.updateVal(S.data, "stopy", r + f * s.boxMargin, Math.max));
+ };
+ }
+ this.sequenceItems.forEach(y());
+ },
+ insert: function(e, t, i, r) {
+ const s = Math.min(e, i), o = Math.max(e, i), l = Math.min(t, r), y = Math.max(t, r);
+ this.updateVal(S.data, "startx", s, Math.min), this.updateVal(S.data, "starty", l, Math.min), this.updateVal(S.data, "stopx", o, Math.max), this.updateVal(S.data, "stopy", y, Math.max), this.updateBounds(s, l, o, y);
+ },
+ bumpVerticalPos: function(e) {
+ this.verticalPos = this.verticalPos + e, this.data.stopy = this.verticalPos;
+ },
+ getVerticalPos: function() {
+ return this.verticalPos;
+ },
+ getBounds: function() {
+ return this.data;
+ }
+}, J = W.sectionFills, lt = W.sectionColours, Ht = function(e, t, i) {
+ const r = V().journey;
+ let s = "";
+ const o = r.height * 2 + r.diagramMarginY, l = i + o;
+ let y = 0, u = "#CCC", x = "black", g = 0;
+ for (const [f, d] of t.entries()) {
+ if (s !== d.section) {
+ u = J[y % J.length], g = y % J.length, x = lt[y % lt.length];
+ let v = 0;
+ const _ = d.section;
+ for (let a = f; a < t.length && t[a].section == _; a++)
+ v = v + 1;
+ const n = {
+ x: f * r.taskMargin + f * r.width + C,
+ y: 50,
+ text: d.section,
+ fill: u,
+ num: g,
+ colour: x,
+ taskCount: v
+ };
+ j.drawSection(e, n, r), s = d.section, y++;
+ }
+ const T = d.people.reduce((v, _) => (P[_] && (v[_] = P[_]), v), {});
+ d.x = f * r.taskMargin + f * r.width + C, d.y = l, d.width = r.diagramMarginX, d.height = r.diagramMarginY, d.colour = x, d.fill = u, d.num = g, d.actors = T, j.drawTask(e, d, r), S.insert(d.x, d.y, d.x + d.width + r.taskMargin, 300 + 5 * 30);
+ }
+}, ct = {
+ setConf: Wt,
+ draw: Gt
+}, Dt = {
+ parser: Mt,
+ db: nt,
+ renderer: ct,
+ styles: Rt,
+ init: (e) => {
+ ct.setConf(e.journey), nt.clear();
+ }
+};
+export {
+ Dt as diagram
+};
+//# sourceMappingURL=journeyDiagram-420adb66.js.map
diff --git a/scopegraphs-render-docs/doc/js/journeyDiagram-55528350.js b/scopegraphs-render-docs/doc/js/journeyDiagram-55528350.js
new file mode 100644
index 0000000..de1500e
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/journeyDiagram-55528350.js
@@ -0,0 +1,1278 @@
+import { m as mermaidAPI } from "./mermaidAPI-c841a67f.js";
+import { g as getConfig, y as setDiagramTitle, z as getDiagramTitle, q as setAccTitle, v as getAccTitle, x as setAccDescription, w as getAccDescription, A as clear$1, h as select } from "./commonDb-89160e91.js";
+import { d as d3arc } from "./arc-c50f0902.js";
+import { v as configureSvgSize } from "./utils-1aebe9b6.js";
+import "./constant-b644328d.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 24, 26], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 20], $V9 = [1, 24], $Va = [4, 6, 9, 11, 17, 18, 20, 22, 23, 24, 26];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "journey": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "title": 17, "acc_title": 18, "acc_title_value": 19, "acc_descr": 20, "acc_descr_value": 21, "acc_descr_multiline_value": 22, "section": 23, "taskName": 24, "taskData": 25, "open_directive": 26, "type_directive": 27, "arg_directive": 28, "close_directive": 29, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "journey", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 24: "taskName", 25: "taskData", 26: "open_directive", 27: "type_directive", 28: "arg_directive", 29: "close_directive" },
+ productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return $$[$0 - 1];
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = $$[$0];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 11:
+ yy.setDiagramTitle($$[$0].substr(6));
+ this.$ = $$[$0].substr(6);
+ break;
+ case 12:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 13:
+ case 14:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 15:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 16:
+ yy.addTask($$[$0 - 1], $$[$0]);
+ this.$ = "task";
+ break;
+ case 18:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 19:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 20:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 21:
+ yy.parseDirective("}%%", "close_directive", "journey");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 26: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 26: $V1 }, { 13: 8, 27: [1, 9] }, { 27: [2, 18] }, { 6: [1, 10], 7: 21, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: $V8, 26: $V1 }, { 1: [2, 2] }, { 14: 22, 15: [1, 23], 29: $V9 }, o([15, 29], [2, 19]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 21, 10: 25, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: $V8, 26: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 26] }, { 21: [1, 27] }, o($V2, [2, 14]), o($V2, [2, 15]), { 25: [1, 28] }, o($V2, [2, 17]), { 11: [1, 29] }, { 16: 30, 28: [1, 31] }, { 11: [2, 21] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($V2, [2, 16]), o($Va, [2, 9]), { 14: 32, 29: $V9 }, { 29: [2, 20] }, { 11: [1, 33] }, o($Va, [2, 10])],
+ defaultActions: { 5: [2, 18], 7: [2, 2], 24: [2, 21], 31: [2, 20] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 26;
+ case 1:
+ this.begin("type_directive");
+ return 27;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 15;
+ case 3:
+ this.popState();
+ this.popState();
+ return 29;
+ case 4:
+ return 28;
+ case 5:
+ break;
+ case 6:
+ break;
+ case 7:
+ return 11;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ return 4;
+ case 11:
+ return 17;
+ case 12:
+ this.begin("acc_title");
+ return 18;
+ case 13:
+ this.popState();
+ return "acc_title_value";
+ case 14:
+ this.begin("acc_descr");
+ return 20;
+ case 15:
+ this.popState();
+ return "acc_descr_value";
+ case 16:
+ this.begin("acc_descr_multiline");
+ break;
+ case 17:
+ this.popState();
+ break;
+ case 18:
+ return "acc_descr_multiline_value";
+ case 19:
+ return 23;
+ case 20:
+ return 24;
+ case 21:
+ return 25;
+ case 22:
+ return 15;
+ case 23:
+ return 6;
+ case 24:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "open_directive": { "rules": [1], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23, 24], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+let currentSection = "";
+const sections = [];
+const tasks = [];
+const rawTasks = [];
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const clear = function() {
+ sections.length = 0;
+ tasks.length = 0;
+ currentSection = "";
+ rawTasks.length = 0;
+ clear$1();
+};
+const addSection = function(txt) {
+ currentSection = txt;
+ sections.push(txt);
+};
+const getSections = function() {
+ return sections;
+};
+const getTasks = function() {
+ let allItemsProcessed = compileTasks();
+ const maxDepth = 100;
+ let iterationCount = 0;
+ while (!allItemsProcessed && iterationCount < maxDepth) {
+ allItemsProcessed = compileTasks();
+ iterationCount++;
+ }
+ tasks.push(...rawTasks);
+ return tasks;
+};
+const updateActors = function() {
+ const tempActors = [];
+ tasks.forEach((task) => {
+ if (task.people) {
+ tempActors.push(...task.people);
+ }
+ });
+ const unique = new Set(tempActors);
+ return [...unique].sort();
+};
+const addTask = function(descr, taskData) {
+ const pieces = taskData.substr(1).split(":");
+ let score = 0;
+ let peeps = [];
+ if (pieces.length === 1) {
+ score = Number(pieces[0]);
+ peeps = [];
+ } else {
+ score = Number(pieces[0]);
+ peeps = pieces[1].split(",");
+ }
+ const peopleList = peeps.map((s) => s.trim());
+ const rawTask = {
+ section: currentSection,
+ type: currentSection,
+ people: peopleList,
+ task: descr,
+ score
+ };
+ rawTasks.push(rawTask);
+};
+const addTaskOrg = function(descr) {
+ const newTask = {
+ section: currentSection,
+ type: currentSection,
+ description: descr,
+ task: descr,
+ classes: []
+ };
+ tasks.push(newTask);
+};
+const compileTasks = function() {
+ const compileTask = function(pos) {
+ return rawTasks[pos].processed;
+ };
+ let allProcessed = true;
+ for (const [i, rawTask] of rawTasks.entries()) {
+ compileTask(i);
+ allProcessed = allProcessed && rawTask.processed;
+ }
+ return allProcessed;
+};
+const getActors = function() {
+ return updateActors();
+};
+const db = {
+ parseDirective,
+ getConfig: () => getConfig().journey,
+ clear,
+ setDiagramTitle,
+ getDiagramTitle,
+ setAccTitle,
+ getAccTitle,
+ setAccDescription,
+ getAccDescription,
+ addSection,
+ getSections,
+ getTasks,
+ addTask,
+ addTaskOrg,
+ getActors
+};
+const getStyles = (options) => `.label {
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ color: ${options.textColor};
+ }
+ .mouth {
+ stroke: #666;
+ }
+
+ line {
+ stroke: ${options.textColor}
+ }
+
+ .legend {
+ fill: ${options.textColor};
+ }
+
+ .label text {
+ fill: #333;
+ }
+ .label {
+ color: ${options.textColor}
+ }
+
+ .face {
+ ${options.faceColor ? `fill: ${options.faceColor}` : "fill: #FFF8DC"};
+ stroke: #999;
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+ stroke-width: 1px;
+ }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${options.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${options.lineColor};
+ stroke-width: 1.5px;
+ }
+
+ .flowchart-link {
+ stroke: ${options.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${options.edgeLabelBackground};
+ rect {
+ opacity: 0.5;
+ }
+ text-align: center;
+ }
+
+ .cluster rect {
+ }
+
+ .cluster text {
+ fill: ${options.titleColor};
+ }
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ font-size: 12px;
+ background: ${options.tertiaryColor};
+ border: 1px solid ${options.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .task-type-0, .section-type-0 {
+ ${options.fillType0 ? `fill: ${options.fillType0}` : ""};
+ }
+ .task-type-1, .section-type-1 {
+ ${options.fillType0 ? `fill: ${options.fillType1}` : ""};
+ }
+ .task-type-2, .section-type-2 {
+ ${options.fillType0 ? `fill: ${options.fillType2}` : ""};
+ }
+ .task-type-3, .section-type-3 {
+ ${options.fillType0 ? `fill: ${options.fillType3}` : ""};
+ }
+ .task-type-4, .section-type-4 {
+ ${options.fillType0 ? `fill: ${options.fillType4}` : ""};
+ }
+ .task-type-5, .section-type-5 {
+ ${options.fillType0 ? `fill: ${options.fillType5}` : ""};
+ }
+ .task-type-6, .section-type-6 {
+ ${options.fillType0 ? `fill: ${options.fillType6}` : ""};
+ }
+ .task-type-7, .section-type-7 {
+ ${options.fillType0 ? `fill: ${options.fillType7}` : ""};
+ }
+
+ .actor-0 {
+ ${options.actor0 ? `fill: ${options.actor0}` : ""};
+ }
+ .actor-1 {
+ ${options.actor1 ? `fill: ${options.actor1}` : ""};
+ }
+ .actor-2 {
+ ${options.actor2 ? `fill: ${options.actor2}` : ""};
+ }
+ .actor-3 {
+ ${options.actor3 ? `fill: ${options.actor3}` : ""};
+ }
+ .actor-4 {
+ ${options.actor4 ? `fill: ${options.actor4}` : ""};
+ }
+ .actor-5 {
+ ${options.actor5 ? `fill: ${options.actor5}` : ""};
+ }
+`;
+const styles = getStyles;
+const drawRect = function(elem, rectData) {
+ const rectElem = elem.append("rect");
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.y);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", rectData.width);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (rectData.class !== void 0) {
+ rectElem.attr("class", rectData.class);
+ }
+ return rectElem;
+};
+const drawFace = function(element, faceData) {
+ const radius = 15;
+ const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible");
+ const face = element.append("g");
+ face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ function smile(face2) {
+ const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
+ }
+ function sad(face2) {
+ const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
+ }
+ function ambivalent(face2) {
+ face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
+ }
+ if (faceData.score > 3) {
+ smile(face);
+ } else if (faceData.score < 3) {
+ sad(face);
+ } else {
+ ambivalent(face);
+ }
+ return circleElement;
+};
+const drawCircle = function(element, circleData) {
+ const circleElement = element.append("circle");
+ circleElement.attr("cx", circleData.cx);
+ circleElement.attr("cy", circleData.cy);
+ circleElement.attr("class", "actor-" + circleData.pos);
+ circleElement.attr("fill", circleData.fill);
+ circleElement.attr("stroke", circleData.stroke);
+ circleElement.attr("r", circleData.r);
+ if (circleElement.class !== void 0) {
+ circleElement.attr("class", circleElement.class);
+ }
+ if (circleData.title !== void 0) {
+ circleElement.append("title").text(circleData.title);
+ }
+ return circleElement;
+};
+const drawText = function(elem, textData) {
+ const nText = textData.text.replace(/
/gi, " ");
+ const textElem = elem.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", textData.y);
+ textElem.attr("class", "legend");
+ textElem.style("text-anchor", textData.anchor);
+ if (textData.class !== void 0) {
+ textElem.attr("class", textData.class);
+ }
+ const span = textElem.append("tspan");
+ span.attr("x", textData.x + textData.textMargin * 2);
+ span.text(nText);
+ return textElem;
+};
+const drawLabel = function(elem, txtObject) {
+ function genPoints(x, y, width, height, cut) {
+ return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height);
+ }
+ const polygon = elem.append("polygon");
+ polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
+ polygon.attr("class", "labelBox");
+ txtObject.y = txtObject.y + txtObject.labelMargin;
+ txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
+ drawText(elem, txtObject);
+};
+const drawSection = function(elem, section, conf2) {
+ const g = elem.append("g");
+ const rect = getNoteRect();
+ rect.x = section.x;
+ rect.y = section.y;
+ rect.fill = section.fill;
+ rect.width = conf2.width * section.taskCount + // width of the tasks
+ conf2.diagramMarginX * (section.taskCount - 1);
+ rect.height = conf2.height;
+ rect.class = "journey-section section-type-" + section.num;
+ rect.rx = 3;
+ rect.ry = 3;
+ drawRect(g, rect);
+ _drawTextCandidateFunc(conf2)(
+ section.text,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "journey-section section-type-" + section.num },
+ conf2,
+ section.colour
+ );
+};
+let taskCount = -1;
+const drawTask = function(elem, task, conf2) {
+ const center = task.x + conf2.width / 2;
+ const g = elem.append("g");
+ taskCount++;
+ const maxHeight = 300 + 5 * 30;
+ g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
+ drawFace(g, {
+ cx: center,
+ cy: 300 + (5 - task.score) * 30,
+ score: task.score
+ });
+ const rect = getNoteRect();
+ rect.x = task.x;
+ rect.y = task.y;
+ rect.fill = task.fill;
+ rect.width = conf2.width;
+ rect.height = conf2.height;
+ rect.class = "task task-type-" + task.num;
+ rect.rx = 3;
+ rect.ry = 3;
+ drawRect(g, rect);
+ let xPos = task.x + 14;
+ task.people.forEach((person) => {
+ const colour = task.actors[person].color;
+ const circle = {
+ cx: xPos,
+ cy: task.y,
+ r: 7,
+ fill: colour,
+ stroke: "#000",
+ title: person,
+ pos: task.actors[person].position
+ };
+ drawCircle(g, circle);
+ xPos += 10;
+ });
+ _drawTextCandidateFunc(conf2)(
+ task.task,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "task" },
+ conf2,
+ task.colour
+ );
+};
+const drawBackgroundRect = function(elem, bounds2) {
+ const rectElem = drawRect(elem, {
+ x: bounds2.startx,
+ y: bounds2.starty,
+ width: bounds2.stopx - bounds2.startx,
+ height: bounds2.stopy - bounds2.starty,
+ fill: bounds2.fill,
+ class: "rect"
+ });
+ rectElem.lower();
+};
+const getTextObj = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ "text-anchor": "start",
+ width: 100,
+ height: 100,
+ textMargin: 0,
+ rx: 0,
+ ry: 0
+ };
+};
+const getNoteRect = function() {
+ return {
+ x: 0,
+ y: 0,
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+};
+const _drawTextCandidateFunc = function() {
+ function byText(content, g, x, y, width, height, textAttrs, colour) {
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text, textAttrs);
+ }
+ function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) {
+ const { taskFontSize, taskFontFamily } = conf2;
+ const lines = content.split(/
/gi);
+ for (let i = 0; i < lines.length; i++) {
+ const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
+ text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]);
+ text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text, textAttrs);
+ }
+ }
+ function byFo(content, g, x, y, width, height, textAttrs, conf2) {
+ const body = g.append("switch");
+ const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed");
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, body, x, y, width, height, textAttrs, conf2);
+ _setTextAttrs(text, textAttrs);
+ }
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (key in fromTextAttrsDict) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ return function(conf2) {
+ return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
+ };
+}();
+const initGraphics = function(graphics) {
+ graphics.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");
+};
+const svgDraw = {
+ drawRect,
+ drawCircle,
+ drawSection,
+ drawText,
+ drawLabel,
+ drawTask,
+ drawBackgroundRect,
+ getTextObj,
+ getNoteRect,
+ initGraphics
+};
+const setConf = function(cnf) {
+ const keys = Object.keys(cnf);
+ keys.forEach(function(key) {
+ conf[key] = cnf[key];
+ });
+};
+const actors = {};
+function drawActorLegend(diagram2) {
+ const conf2 = getConfig().journey;
+ let yPos = 60;
+ Object.keys(actors).forEach((person) => {
+ const colour = actors[person].color;
+ const circleData = {
+ cx: 20,
+ cy: yPos,
+ r: 7,
+ fill: colour,
+ stroke: "#000",
+ pos: actors[person].position
+ };
+ svgDraw.drawCircle(diagram2, circleData);
+ const labelData = {
+ x: 40,
+ y: yPos + 7,
+ fill: "#666",
+ text: person,
+ textMargin: conf2.boxTextMargin | 5
+ };
+ svgDraw.drawText(diagram2, labelData);
+ yPos += 20;
+ });
+}
+const conf = getConfig().journey;
+const LEFT_MARGIN = conf.leftMargin;
+const draw = function(text, id, version, diagObj) {
+ const conf2 = getConfig().journey;
+ diagObj.db.clear();
+ diagObj.parser.parse(text + "\n");
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ bounds.init();
+ const diagram2 = root.select("#" + id);
+ svgDraw.initGraphics(diagram2);
+ const tasks2 = diagObj.db.getTasks();
+ const title = diagObj.db.getDiagramTitle();
+ const actorNames = diagObj.db.getActors();
+ for (const member in actors) {
+ delete actors[member];
+ }
+ let actorPos = 0;
+ actorNames.forEach((actorName) => {
+ actors[actorName] = {
+ color: conf2.actorColours[actorPos % conf2.actorColours.length],
+ position: actorPos
+ };
+ actorPos++;
+ });
+ drawActorLegend(diagram2);
+ bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);
+ drawTasks(diagram2, tasks2, 0);
+ const box = bounds.getBounds();
+ if (title) {
+ diagram2.append("text").text(title).attr("x", LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 25);
+ }
+ const height = box.stopy - box.starty + 2 * conf2.diagramMarginY;
+ const width = LEFT_MARGIN + box.stopx + 2 * conf2.diagramMarginX;
+ configureSvgSize(diagram2, height, width, conf2.useMaxWidth);
+ diagram2.append("line").attr("x1", LEFT_MARGIN).attr("y1", conf2.height * 4).attr("x2", width - LEFT_MARGIN - 4).attr("y2", conf2.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
+ const extraVertForTitle = title ? 70 : 0;
+ diagram2.attr("viewBox", `${box.startx} -25 ${width} ${height + extraVertForTitle}`);
+ diagram2.attr("preserveAspectRatio", "xMinYMin meet");
+ diagram2.attr("height", height + extraVertForTitle + 25);
+};
+const bounds = {
+ data: {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ },
+ verticalPos: 0,
+ sequenceItems: [],
+ init: function() {
+ this.sequenceItems = [];
+ this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ };
+ this.verticalPos = 0;
+ },
+ updateVal: function(obj, key, val, fun) {
+ if (obj[key] === void 0) {
+ obj[key] = val;
+ } else {
+ obj[key] = fun(val, obj[key]);
+ }
+ },
+ updateBounds: function(startx, starty, stopx, stopy) {
+ const conf2 = getConfig().journey;
+ const _self = this;
+ let cnt = 0;
+ function updateFn(type) {
+ return function updateItemBounds(item) {
+ cnt++;
+ const n = _self.sequenceItems.length - cnt + 1;
+ _self.updateVal(item, "starty", starty - n * conf2.boxMargin, Math.min);
+ _self.updateVal(item, "stopy", stopy + n * conf2.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "startx", startx - n * conf2.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopx", stopx + n * conf2.boxMargin, Math.max);
+ if (!(type === "activation")) {
+ _self.updateVal(item, "startx", startx - n * conf2.boxMargin, Math.min);
+ _self.updateVal(item, "stopx", stopx + n * conf2.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "starty", starty - n * conf2.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopy", stopy + n * conf2.boxMargin, Math.max);
+ }
+ };
+ }
+ this.sequenceItems.forEach(updateFn());
+ },
+ insert: function(startx, starty, stopx, stopy) {
+ const _startx = Math.min(startx, stopx);
+ const _stopx = Math.max(startx, stopx);
+ const _starty = Math.min(starty, stopy);
+ const _stopy = Math.max(starty, stopy);
+ this.updateVal(bounds.data, "startx", _startx, Math.min);
+ this.updateVal(bounds.data, "starty", _starty, Math.min);
+ this.updateVal(bounds.data, "stopx", _stopx, Math.max);
+ this.updateVal(bounds.data, "stopy", _stopy, Math.max);
+ this.updateBounds(_startx, _starty, _stopx, _stopy);
+ },
+ bumpVerticalPos: function(bump) {
+ this.verticalPos = this.verticalPos + bump;
+ this.data.stopy = this.verticalPos;
+ },
+ getVerticalPos: function() {
+ return this.verticalPos;
+ },
+ getBounds: function() {
+ return this.data;
+ }
+};
+const fills = conf.sectionFills;
+const textColours = conf.sectionColours;
+const drawTasks = function(diagram2, tasks2, verticalPos) {
+ const conf2 = getConfig().journey;
+ let lastSection = "";
+ const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY;
+ const taskPos = verticalPos + sectionVHeight;
+ let sectionNumber = 0;
+ let fill = "#CCC";
+ let colour = "black";
+ let num = 0;
+ for (const [i, task] of tasks2.entries()) {
+ if (lastSection !== task.section) {
+ fill = fills[sectionNumber % fills.length];
+ num = sectionNumber % fills.length;
+ colour = textColours[sectionNumber % textColours.length];
+ let taskInSectionCount = 0;
+ const currentSection2 = task.section;
+ for (let taskIndex = i; taskIndex < tasks2.length; taskIndex++) {
+ if (tasks2[taskIndex].section == currentSection2) {
+ taskInSectionCount = taskInSectionCount + 1;
+ } else {
+ break;
+ }
+ }
+ const section = {
+ x: i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN,
+ y: 50,
+ text: task.section,
+ fill,
+ num,
+ colour,
+ taskCount: taskInSectionCount
+ };
+ svgDraw.drawSection(diagram2, section, conf2);
+ lastSection = task.section;
+ sectionNumber++;
+ }
+ const taskActors = task.people.reduce((acc, actorName) => {
+ if (actors[actorName]) {
+ acc[actorName] = actors[actorName];
+ }
+ return acc;
+ }, {});
+ task.x = i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN;
+ task.y = taskPos;
+ task.width = conf2.diagramMarginX;
+ task.height = conf2.diagramMarginY;
+ task.colour = colour;
+ task.fill = fill;
+ task.num = num;
+ task.actors = taskActors;
+ svgDraw.drawTask(diagram2, task, conf2);
+ bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30);
+ }
+};
+const renderer = {
+ setConf,
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ renderer.setConf(cnf.journey);
+ db.clear();
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=journeyDiagram-55528350.js.map
diff --git a/scopegraphs-render-docs/doc/js/journeyDiagram-d38aa57d.js b/scopegraphs-render-docs/doc/js/journeyDiagram-d38aa57d.js
new file mode 100644
index 0000000..225f562
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/journeyDiagram-d38aa57d.js
@@ -0,0 +1,1284 @@
+import { m as mermaidAPI } from "./mermaidAPI-3ae0f2f0.js";
+import { g as getConfig, w as setDiagramTitle, x as getDiagramTitle, o as setAccTitle, p as getAccTitle, v as setAccDescription, q as getAccDescription, y as clear$1 } from "./commonDb-573409be.js";
+import { arc, select } from "d3";
+import { k as configureSvgSize } from "./utils-d622194a.js";
+import "stylis";
+import "dompurify";
+import "lodash-es/isEmpty.js";
+import "dayjs";
+import "khroma";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 24, 26], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 20], $V9 = [1, 24], $Va = [4, 6, 9, 11, 17, 18, 20, 22, 23, 24, 26];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "journey": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "title": 17, "acc_title": 18, "acc_title_value": 19, "acc_descr": 20, "acc_descr_value": 21, "acc_descr_multiline_value": 22, "section": 23, "taskName": 24, "taskData": 25, "open_directive": 26, "type_directive": 27, "arg_directive": 28, "close_directive": 29, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "journey", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 24: "taskName", 25: "taskData", 26: "open_directive", 27: "type_directive", 28: "arg_directive", 29: "close_directive" },
+ productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return $$[$0 - 1];
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = $$[$0];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 11:
+ yy.setDiagramTitle($$[$0].substr(6));
+ this.$ = $$[$0].substr(6);
+ break;
+ case 12:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 13:
+ case 14:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 15:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 16:
+ yy.addTask($$[$0 - 1], $$[$0]);
+ this.$ = "task";
+ break;
+ case 18:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 19:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 20:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 21:
+ yy.parseDirective("}%%", "close_directive", "journey");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 26: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 26: $V1 }, { 13: 8, 27: [1, 9] }, { 27: [2, 18] }, { 6: [1, 10], 7: 21, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: $V8, 26: $V1 }, { 1: [2, 2] }, { 14: 22, 15: [1, 23], 29: $V9 }, o([15, 29], [2, 19]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 21, 10: 25, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: $V8, 26: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 26] }, { 21: [1, 27] }, o($V2, [2, 14]), o($V2, [2, 15]), { 25: [1, 28] }, o($V2, [2, 17]), { 11: [1, 29] }, { 16: 30, 28: [1, 31] }, { 11: [2, 21] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($V2, [2, 16]), o($Va, [2, 9]), { 14: 32, 29: $V9 }, { 29: [2, 20] }, { 11: [1, 33] }, o($Va, [2, 10])],
+ defaultActions: { 5: [2, 18], 7: [2, 2], 24: [2, 21], 31: [2, 20] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 26;
+ case 1:
+ this.begin("type_directive");
+ return 27;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 15;
+ case 3:
+ this.popState();
+ this.popState();
+ return 29;
+ case 4:
+ return 28;
+ case 5:
+ break;
+ case 6:
+ break;
+ case 7:
+ return 11;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ return 4;
+ case 11:
+ return 17;
+ case 12:
+ this.begin("acc_title");
+ return 18;
+ case 13:
+ this.popState();
+ return "acc_title_value";
+ case 14:
+ this.begin("acc_descr");
+ return 20;
+ case 15:
+ this.popState();
+ return "acc_descr_value";
+ case 16:
+ this.begin("acc_descr_multiline");
+ break;
+ case 17:
+ this.popState();
+ break;
+ case 18:
+ return "acc_descr_multiline_value";
+ case 19:
+ return 23;
+ case 20:
+ return 24;
+ case 21:
+ return 25;
+ case 22:
+ return 15;
+ case 23:
+ return 6;
+ case 24:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "open_directive": { "rules": [1], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23, 24], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+let currentSection = "";
+const sections = [];
+const tasks = [];
+const rawTasks = [];
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const clear = function() {
+ sections.length = 0;
+ tasks.length = 0;
+ currentSection = "";
+ rawTasks.length = 0;
+ clear$1();
+};
+const addSection = function(txt) {
+ currentSection = txt;
+ sections.push(txt);
+};
+const getSections = function() {
+ return sections;
+};
+const getTasks = function() {
+ let allItemsProcessed = compileTasks();
+ const maxDepth = 100;
+ let iterationCount = 0;
+ while (!allItemsProcessed && iterationCount < maxDepth) {
+ allItemsProcessed = compileTasks();
+ iterationCount++;
+ }
+ tasks.push(...rawTasks);
+ return tasks;
+};
+const updateActors = function() {
+ const tempActors = [];
+ tasks.forEach((task) => {
+ if (task.people) {
+ tempActors.push(...task.people);
+ }
+ });
+ const unique = new Set(tempActors);
+ return [...unique].sort();
+};
+const addTask = function(descr, taskData) {
+ const pieces = taskData.substr(1).split(":");
+ let score = 0;
+ let peeps = [];
+ if (pieces.length === 1) {
+ score = Number(pieces[0]);
+ peeps = [];
+ } else {
+ score = Number(pieces[0]);
+ peeps = pieces[1].split(",");
+ }
+ const peopleList = peeps.map((s) => s.trim());
+ const rawTask = {
+ section: currentSection,
+ type: currentSection,
+ people: peopleList,
+ task: descr,
+ score
+ };
+ rawTasks.push(rawTask);
+};
+const addTaskOrg = function(descr) {
+ const newTask = {
+ section: currentSection,
+ type: currentSection,
+ description: descr,
+ task: descr,
+ classes: []
+ };
+ tasks.push(newTask);
+};
+const compileTasks = function() {
+ const compileTask = function(pos) {
+ return rawTasks[pos].processed;
+ };
+ let allProcessed = true;
+ for (const [i, rawTask] of rawTasks.entries()) {
+ compileTask(i);
+ allProcessed = allProcessed && rawTask.processed;
+ }
+ return allProcessed;
+};
+const getActors = function() {
+ return updateActors();
+};
+const db = {
+ parseDirective,
+ getConfig: () => getConfig().journey,
+ clear,
+ setDiagramTitle,
+ getDiagramTitle,
+ setAccTitle,
+ getAccTitle,
+ setAccDescription,
+ getAccDescription,
+ addSection,
+ getSections,
+ getTasks,
+ addTask,
+ addTaskOrg,
+ getActors
+};
+const getStyles = (options) => `.label {
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ color: ${options.textColor};
+ }
+ .mouth {
+ stroke: #666;
+ }
+
+ line {
+ stroke: ${options.textColor}
+ }
+
+ .legend {
+ fill: ${options.textColor};
+ }
+
+ .label text {
+ fill: #333;
+ }
+ .label {
+ color: ${options.textColor}
+ }
+
+ .face {
+ ${options.faceColor ? `fill: ${options.faceColor}` : "fill: #FFF8DC"};
+ stroke: #999;
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+ stroke-width: 1px;
+ }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${options.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${options.lineColor};
+ stroke-width: 1.5px;
+ }
+
+ .flowchart-link {
+ stroke: ${options.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${options.edgeLabelBackground};
+ rect {
+ opacity: 0.5;
+ }
+ text-align: center;
+ }
+
+ .cluster rect {
+ }
+
+ .cluster text {
+ fill: ${options.titleColor};
+ }
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ font-size: 12px;
+ background: ${options.tertiaryColor};
+ border: 1px solid ${options.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .task-type-0, .section-type-0 {
+ ${options.fillType0 ? `fill: ${options.fillType0}` : ""};
+ }
+ .task-type-1, .section-type-1 {
+ ${options.fillType0 ? `fill: ${options.fillType1}` : ""};
+ }
+ .task-type-2, .section-type-2 {
+ ${options.fillType0 ? `fill: ${options.fillType2}` : ""};
+ }
+ .task-type-3, .section-type-3 {
+ ${options.fillType0 ? `fill: ${options.fillType3}` : ""};
+ }
+ .task-type-4, .section-type-4 {
+ ${options.fillType0 ? `fill: ${options.fillType4}` : ""};
+ }
+ .task-type-5, .section-type-5 {
+ ${options.fillType0 ? `fill: ${options.fillType5}` : ""};
+ }
+ .task-type-6, .section-type-6 {
+ ${options.fillType0 ? `fill: ${options.fillType6}` : ""};
+ }
+ .task-type-7, .section-type-7 {
+ ${options.fillType0 ? `fill: ${options.fillType7}` : ""};
+ }
+
+ .actor-0 {
+ ${options.actor0 ? `fill: ${options.actor0}` : ""};
+ }
+ .actor-1 {
+ ${options.actor1 ? `fill: ${options.actor1}` : ""};
+ }
+ .actor-2 {
+ ${options.actor2 ? `fill: ${options.actor2}` : ""};
+ }
+ .actor-3 {
+ ${options.actor3 ? `fill: ${options.actor3}` : ""};
+ }
+ .actor-4 {
+ ${options.actor4 ? `fill: ${options.actor4}` : ""};
+ }
+ .actor-5 {
+ ${options.actor5 ? `fill: ${options.actor5}` : ""};
+ }
+`;
+const styles = getStyles;
+const drawRect = function(elem, rectData) {
+ const rectElem = elem.append("rect");
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.y);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", rectData.width);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (rectData.class !== void 0) {
+ rectElem.attr("class", rectData.class);
+ }
+ return rectElem;
+};
+const drawFace = function(element, faceData) {
+ const radius = 15;
+ const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible");
+ const face = element.append("g");
+ face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ function smile(face2) {
+ const arc$1 = arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
+ }
+ function sad(face2) {
+ const arc$1 = arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
+ }
+ function ambivalent(face2) {
+ face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
+ }
+ if (faceData.score > 3) {
+ smile(face);
+ } else if (faceData.score < 3) {
+ sad(face);
+ } else {
+ ambivalent(face);
+ }
+ return circleElement;
+};
+const drawCircle = function(element, circleData) {
+ const circleElement = element.append("circle");
+ circleElement.attr("cx", circleData.cx);
+ circleElement.attr("cy", circleData.cy);
+ circleElement.attr("class", "actor-" + circleData.pos);
+ circleElement.attr("fill", circleData.fill);
+ circleElement.attr("stroke", circleData.stroke);
+ circleElement.attr("r", circleData.r);
+ if (circleElement.class !== void 0) {
+ circleElement.attr("class", circleElement.class);
+ }
+ if (circleData.title !== void 0) {
+ circleElement.append("title").text(circleData.title);
+ }
+ return circleElement;
+};
+const drawText = function(elem, textData) {
+ const nText = textData.text.replace(/
/gi, " ");
+ const textElem = elem.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", textData.y);
+ textElem.attr("class", "legend");
+ textElem.style("text-anchor", textData.anchor);
+ if (textData.class !== void 0) {
+ textElem.attr("class", textData.class);
+ }
+ const span = textElem.append("tspan");
+ span.attr("x", textData.x + textData.textMargin * 2);
+ span.text(nText);
+ return textElem;
+};
+const drawLabel = function(elem, txtObject) {
+ function genPoints(x, y, width, height, cut) {
+ return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height);
+ }
+ const polygon = elem.append("polygon");
+ polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
+ polygon.attr("class", "labelBox");
+ txtObject.y = txtObject.y + txtObject.labelMargin;
+ txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
+ drawText(elem, txtObject);
+};
+const drawSection = function(elem, section, conf2) {
+ const g = elem.append("g");
+ const rect = getNoteRect();
+ rect.x = section.x;
+ rect.y = section.y;
+ rect.fill = section.fill;
+ rect.width = conf2.width * section.taskCount + // width of the tasks
+ conf2.diagramMarginX * (section.taskCount - 1);
+ rect.height = conf2.height;
+ rect.class = "journey-section section-type-" + section.num;
+ rect.rx = 3;
+ rect.ry = 3;
+ drawRect(g, rect);
+ _drawTextCandidateFunc(conf2)(
+ section.text,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "journey-section section-type-" + section.num },
+ conf2,
+ section.colour
+ );
+};
+let taskCount = -1;
+const drawTask = function(elem, task, conf2) {
+ const center = task.x + conf2.width / 2;
+ const g = elem.append("g");
+ taskCount++;
+ const maxHeight = 300 + 5 * 30;
+ g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
+ drawFace(g, {
+ cx: center,
+ cy: 300 + (5 - task.score) * 30,
+ score: task.score
+ });
+ const rect = getNoteRect();
+ rect.x = task.x;
+ rect.y = task.y;
+ rect.fill = task.fill;
+ rect.width = conf2.width;
+ rect.height = conf2.height;
+ rect.class = "task task-type-" + task.num;
+ rect.rx = 3;
+ rect.ry = 3;
+ drawRect(g, rect);
+ let xPos = task.x + 14;
+ task.people.forEach((person) => {
+ const colour = task.actors[person].color;
+ const circle = {
+ cx: xPos,
+ cy: task.y,
+ r: 7,
+ fill: colour,
+ stroke: "#000",
+ title: person,
+ pos: task.actors[person].position
+ };
+ drawCircle(g, circle);
+ xPos += 10;
+ });
+ _drawTextCandidateFunc(conf2)(
+ task.task,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "task" },
+ conf2,
+ task.colour
+ );
+};
+const drawBackgroundRect = function(elem, bounds2) {
+ const rectElem = drawRect(elem, {
+ x: bounds2.startx,
+ y: bounds2.starty,
+ width: bounds2.stopx - bounds2.startx,
+ height: bounds2.stopy - bounds2.starty,
+ fill: bounds2.fill,
+ class: "rect"
+ });
+ rectElem.lower();
+};
+const getTextObj = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ "text-anchor": "start",
+ width: 100,
+ height: 100,
+ textMargin: 0,
+ rx: 0,
+ ry: 0
+ };
+};
+const getNoteRect = function() {
+ return {
+ x: 0,
+ y: 0,
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+};
+const _drawTextCandidateFunc = function() {
+ function byText(content, g, x, y, width, height, textAttrs, colour) {
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text, textAttrs);
+ }
+ function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) {
+ const { taskFontSize, taskFontFamily } = conf2;
+ const lines = content.split(/
/gi);
+ for (let i = 0; i < lines.length; i++) {
+ const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
+ text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]);
+ text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text, textAttrs);
+ }
+ }
+ function byFo(content, g, x, y, width, height, textAttrs, conf2) {
+ const body = g.append("switch");
+ const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed");
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, body, x, y, width, height, textAttrs, conf2);
+ _setTextAttrs(text, textAttrs);
+ }
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (key in fromTextAttrsDict) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ return function(conf2) {
+ return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
+ };
+}();
+const initGraphics = function(graphics) {
+ graphics.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");
+};
+const svgDraw = {
+ drawRect,
+ drawCircle,
+ drawSection,
+ drawText,
+ drawLabel,
+ drawTask,
+ drawBackgroundRect,
+ getTextObj,
+ getNoteRect,
+ initGraphics
+};
+const setConf = function(cnf) {
+ const keys = Object.keys(cnf);
+ keys.forEach(function(key) {
+ conf[key] = cnf[key];
+ });
+};
+const actors = {};
+function drawActorLegend(diagram2) {
+ const conf2 = getConfig().journey;
+ let yPos = 60;
+ Object.keys(actors).forEach((person) => {
+ const colour = actors[person].color;
+ const circleData = {
+ cx: 20,
+ cy: yPos,
+ r: 7,
+ fill: colour,
+ stroke: "#000",
+ pos: actors[person].position
+ };
+ svgDraw.drawCircle(diagram2, circleData);
+ const labelData = {
+ x: 40,
+ y: yPos + 7,
+ fill: "#666",
+ text: person,
+ textMargin: conf2.boxTextMargin | 5
+ };
+ svgDraw.drawText(diagram2, labelData);
+ yPos += 20;
+ });
+}
+const conf = getConfig().journey;
+const LEFT_MARGIN = conf.leftMargin;
+const draw = function(text, id, version, diagObj) {
+ const conf2 = getConfig().journey;
+ diagObj.db.clear();
+ diagObj.parser.parse(text + "\n");
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ bounds.init();
+ const diagram2 = root.select("#" + id);
+ svgDraw.initGraphics(diagram2);
+ const tasks2 = diagObj.db.getTasks();
+ const title = diagObj.db.getDiagramTitle();
+ const actorNames = diagObj.db.getActors();
+ for (const member in actors) {
+ delete actors[member];
+ }
+ let actorPos = 0;
+ actorNames.forEach((actorName) => {
+ actors[actorName] = {
+ color: conf2.actorColours[actorPos % conf2.actorColours.length],
+ position: actorPos
+ };
+ actorPos++;
+ });
+ drawActorLegend(diagram2);
+ bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);
+ drawTasks(diagram2, tasks2, 0);
+ const box = bounds.getBounds();
+ if (title) {
+ diagram2.append("text").text(title).attr("x", LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 25);
+ }
+ const height = box.stopy - box.starty + 2 * conf2.diagramMarginY;
+ const width = LEFT_MARGIN + box.stopx + 2 * conf2.diagramMarginX;
+ configureSvgSize(diagram2, height, width, conf2.useMaxWidth);
+ diagram2.append("line").attr("x1", LEFT_MARGIN).attr("y1", conf2.height * 4).attr("x2", width - LEFT_MARGIN - 4).attr("y2", conf2.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
+ const extraVertForTitle = title ? 70 : 0;
+ diagram2.attr("viewBox", `${box.startx} -25 ${width} ${height + extraVertForTitle}`);
+ diagram2.attr("preserveAspectRatio", "xMinYMin meet");
+ diagram2.attr("height", height + extraVertForTitle + 25);
+};
+const bounds = {
+ data: {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ },
+ verticalPos: 0,
+ sequenceItems: [],
+ init: function() {
+ this.sequenceItems = [];
+ this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ };
+ this.verticalPos = 0;
+ },
+ updateVal: function(obj, key, val, fun) {
+ if (obj[key] === void 0) {
+ obj[key] = val;
+ } else {
+ obj[key] = fun(val, obj[key]);
+ }
+ },
+ updateBounds: function(startx, starty, stopx, stopy) {
+ const conf2 = getConfig().journey;
+ const _self = this;
+ let cnt = 0;
+ function updateFn(type) {
+ return function updateItemBounds(item) {
+ cnt++;
+ const n = _self.sequenceItems.length - cnt + 1;
+ _self.updateVal(item, "starty", starty - n * conf2.boxMargin, Math.min);
+ _self.updateVal(item, "stopy", stopy + n * conf2.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "startx", startx - n * conf2.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopx", stopx + n * conf2.boxMargin, Math.max);
+ if (!(type === "activation")) {
+ _self.updateVal(item, "startx", startx - n * conf2.boxMargin, Math.min);
+ _self.updateVal(item, "stopx", stopx + n * conf2.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "starty", starty - n * conf2.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopy", stopy + n * conf2.boxMargin, Math.max);
+ }
+ };
+ }
+ this.sequenceItems.forEach(updateFn());
+ },
+ insert: function(startx, starty, stopx, stopy) {
+ const _startx = Math.min(startx, stopx);
+ const _stopx = Math.max(startx, stopx);
+ const _starty = Math.min(starty, stopy);
+ const _stopy = Math.max(starty, stopy);
+ this.updateVal(bounds.data, "startx", _startx, Math.min);
+ this.updateVal(bounds.data, "starty", _starty, Math.min);
+ this.updateVal(bounds.data, "stopx", _stopx, Math.max);
+ this.updateVal(bounds.data, "stopy", _stopy, Math.max);
+ this.updateBounds(_startx, _starty, _stopx, _stopy);
+ },
+ bumpVerticalPos: function(bump) {
+ this.verticalPos = this.verticalPos + bump;
+ this.data.stopy = this.verticalPos;
+ },
+ getVerticalPos: function() {
+ return this.verticalPos;
+ },
+ getBounds: function() {
+ return this.data;
+ }
+};
+const fills = conf.sectionFills;
+const textColours = conf.sectionColours;
+const drawTasks = function(diagram2, tasks2, verticalPos) {
+ const conf2 = getConfig().journey;
+ let lastSection = "";
+ const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY;
+ const taskPos = verticalPos + sectionVHeight;
+ let sectionNumber = 0;
+ let fill = "#CCC";
+ let colour = "black";
+ let num = 0;
+ for (const [i, task] of tasks2.entries()) {
+ if (lastSection !== task.section) {
+ fill = fills[sectionNumber % fills.length];
+ num = sectionNumber % fills.length;
+ colour = textColours[sectionNumber % textColours.length];
+ let taskInSectionCount = 0;
+ const currentSection2 = task.section;
+ for (let taskIndex = i; taskIndex < tasks2.length; taskIndex++) {
+ if (tasks2[taskIndex].section == currentSection2) {
+ taskInSectionCount = taskInSectionCount + 1;
+ } else {
+ break;
+ }
+ }
+ const section = {
+ x: i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN,
+ y: 50,
+ text: task.section,
+ fill,
+ num,
+ colour,
+ taskCount: taskInSectionCount
+ };
+ svgDraw.drawSection(diagram2, section, conf2);
+ lastSection = task.section;
+ sectionNumber++;
+ }
+ const taskActors = task.people.reduce((acc, actorName) => {
+ if (actors[actorName]) {
+ acc[actorName] = actors[actorName];
+ }
+ return acc;
+ }, {});
+ task.x = i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN;
+ task.y = taskPos;
+ task.width = conf2.diagramMarginX;
+ task.height = conf2.diagramMarginY;
+ task.colour = colour;
+ task.fill = fill;
+ task.num = num;
+ task.actors = taskActors;
+ svgDraw.drawTask(diagram2, task, conf2);
+ bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30);
+ }
+};
+const renderer = {
+ setConf,
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ renderer.setConf(cnf.journey);
+ db.clear();
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=journeyDiagram-d38aa57d.js.map
diff --git a/scopegraphs-render-docs/doc/js/layout-3ff13c4c.js b/scopegraphs-render-docs/doc/js/layout-3ff13c4c.js
new file mode 100644
index 0000000..02463ae
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/layout-3ff13c4c.js
@@ -0,0 +1,3988 @@
+import { i as isObjectLike, a as isArray, b as isArrayLike, c as isArguments, d as isBuffer, e as isTypedArray, f as baseKeys, g as isPrototype, o as overArg, h as getTag, n as nodeUtil, j as baseUnary, k as isLength, S as Set, l as isEmpty } from "./mermaidAPI-c841a67f.js";
+import { j as baseGetTag, S as Symbol$1, C as isObject, f as getNative, D as eq, E as memoize, L as ListCache, M as Map, F as MapCache, h as root, k as isFunction } from "./utils-1aebe9b6.js";
+var symbolTag$3 = "[object Symbol]";
+function isSymbol(value) {
+ return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3;
+}
+function arrayMap(array, iteratee) {
+ var index = -1, length = array == null ? 0 : array.length, result = Array(length);
+ while (++index < length) {
+ result[index] = iteratee(array[index], index, array);
+ }
+ return result;
+}
+var INFINITY$3 = 1 / 0;
+var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
+function baseToString(value) {
+ if (typeof value == "string") {
+ return value;
+ }
+ if (isArray(value)) {
+ return arrayMap(value, baseToString) + "";
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : "";
+ }
+ var result = value + "";
+ return result == "0" && 1 / value == -INFINITY$3 ? "-0" : result;
+}
+var reWhitespace = /\s/;
+function trimmedEndIndex(string) {
+ var index = string.length;
+ while (index-- && reWhitespace.test(string.charAt(index))) {
+ }
+ return index;
+}
+var reTrimStart = /^\s+/;
+function baseTrim(string) {
+ return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
+}
+var NAN = 0 / 0;
+var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
+var reIsBinary = /^0b[01]+$/i;
+var reIsOctal = /^0o[0-7]+$/i;
+var freeParseInt = parseInt;
+function toNumber(value) {
+ if (typeof value == "number") {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return NAN;
+ }
+ if (isObject(value)) {
+ var other = typeof value.valueOf == "function" ? value.valueOf() : value;
+ value = isObject(other) ? other + "" : other;
+ }
+ if (typeof value != "string") {
+ return value === 0 ? value : +value;
+ }
+ value = baseTrim(value);
+ var isBinary = reIsBinary.test(value);
+ return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
+}
+var INFINITY$2 = 1 / 0, MAX_INTEGER = 17976931348623157e292;
+function toFinite(value) {
+ if (!value) {
+ return value === 0 ? value : 0;
+ }
+ value = toNumber(value);
+ if (value === INFINITY$2 || value === -INFINITY$2) {
+ var sign = value < 0 ? -1 : 1;
+ return sign * MAX_INTEGER;
+ }
+ return value === value ? value : 0;
+}
+function toInteger(value) {
+ var result = toFinite(value), remainder = result % 1;
+ return result === result ? remainder ? result - remainder : result : 0;
+}
+function identity(value) {
+ return value;
+}
+var objectCreate = Object.create;
+var baseCreate = function() {
+ function object() {
+ }
+ return function(proto) {
+ if (!isObject(proto)) {
+ return {};
+ }
+ if (objectCreate) {
+ return objectCreate(proto);
+ }
+ object.prototype = proto;
+ var result = new object();
+ object.prototype = void 0;
+ return result;
+ };
+}();
+const baseCreate$1 = baseCreate;
+function apply(func, thisArg, args) {
+ switch (args.length) {
+ case 0:
+ return func.call(thisArg);
+ case 1:
+ return func.call(thisArg, args[0]);
+ case 2:
+ return func.call(thisArg, args[0], args[1]);
+ case 3:
+ return func.call(thisArg, args[0], args[1], args[2]);
+ }
+ return func.apply(thisArg, args);
+}
+function noop() {
+}
+function copyArray(source, array) {
+ var index = -1, length = source.length;
+ array || (array = Array(length));
+ while (++index < length) {
+ array[index] = source[index];
+ }
+ return array;
+}
+var HOT_COUNT = 800, HOT_SPAN = 16;
+var nativeNow = Date.now;
+function shortOut(func) {
+ var count = 0, lastCalled = 0;
+ return function() {
+ var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
+ lastCalled = stamp;
+ if (remaining > 0) {
+ if (++count >= HOT_COUNT) {
+ return arguments[0];
+ }
+ } else {
+ count = 0;
+ }
+ return func.apply(void 0, arguments);
+ };
+}
+function constant(value) {
+ return function() {
+ return value;
+ };
+}
+var defineProperty = function() {
+ try {
+ var func = getNative(Object, "defineProperty");
+ func({}, "", {});
+ return func;
+ } catch (e) {
+ }
+}();
+const defineProperty$1 = defineProperty;
+var baseSetToString = !defineProperty$1 ? identity : function(func, string) {
+ return defineProperty$1(func, "toString", {
+ "configurable": true,
+ "enumerable": false,
+ "value": constant(string),
+ "writable": true
+ });
+};
+const baseSetToString$1 = baseSetToString;
+var setToString = shortOut(baseSetToString$1);
+const setToString$1 = setToString;
+function arrayEach(array, iteratee) {
+ var index = -1, length = array == null ? 0 : array.length;
+ while (++index < length) {
+ if (iteratee(array[index], index, array) === false) {
+ break;
+ }
+ }
+ return array;
+}
+function baseFindIndex(array, predicate, fromIndex, fromRight) {
+ var length = array.length, index = fromIndex + (fromRight ? 1 : -1);
+ while (fromRight ? index-- : ++index < length) {
+ if (predicate(array[index], index, array)) {
+ return index;
+ }
+ }
+ return -1;
+}
+function baseIsNaN(value) {
+ return value !== value;
+}
+function strictIndexOf(array, value, fromIndex) {
+ var index = fromIndex - 1, length = array.length;
+ while (++index < length) {
+ if (array[index] === value) {
+ return index;
+ }
+ }
+ return -1;
+}
+function baseIndexOf(array, value, fromIndex) {
+ return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);
+}
+function arrayIncludes(array, value) {
+ var length = array == null ? 0 : array.length;
+ return !!length && baseIndexOf(array, value, 0) > -1;
+}
+var MAX_SAFE_INTEGER = 9007199254740991;
+var reIsUint = /^(?:0|[1-9]\d*)$/;
+function isIndex(value, length) {
+ var type = typeof value;
+ length = length == null ? MAX_SAFE_INTEGER : length;
+ return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
+}
+function baseAssignValue(object, key, value) {
+ if (key == "__proto__" && defineProperty$1) {
+ defineProperty$1(object, key, {
+ "configurable": true,
+ "enumerable": true,
+ "value": value,
+ "writable": true
+ });
+ } else {
+ object[key] = value;
+ }
+}
+var objectProto$9 = Object.prototype;
+var hasOwnProperty$8 = objectProto$9.hasOwnProperty;
+function assignValue(object, key, value) {
+ var objValue = object[key];
+ if (!(hasOwnProperty$8.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) {
+ baseAssignValue(object, key, value);
+ }
+}
+function copyObject(source, props, object, customizer) {
+ var isNew = !object;
+ object || (object = {});
+ var index = -1, length = props.length;
+ while (++index < length) {
+ var key = props[index];
+ var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;
+ if (newValue === void 0) {
+ newValue = source[key];
+ }
+ if (isNew) {
+ baseAssignValue(object, key, newValue);
+ } else {
+ assignValue(object, key, newValue);
+ }
+ }
+ return object;
+}
+var nativeMax$2 = Math.max;
+function overRest(func, start, transform) {
+ start = nativeMax$2(start === void 0 ? func.length - 1 : start, 0);
+ return function() {
+ var args = arguments, index = -1, length = nativeMax$2(args.length - start, 0), array = Array(length);
+ while (++index < length) {
+ array[index] = args[start + index];
+ }
+ index = -1;
+ var otherArgs = Array(start + 1);
+ while (++index < start) {
+ otherArgs[index] = args[index];
+ }
+ otherArgs[start] = transform(array);
+ return apply(func, this, otherArgs);
+ };
+}
+function baseRest(func, start) {
+ return setToString$1(overRest(func, start, identity), func + "");
+}
+function isIterateeCall(value, index, object) {
+ if (!isObject(object)) {
+ return false;
+ }
+ var type = typeof index;
+ if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && index in object) {
+ return eq(object[index], value);
+ }
+ return false;
+}
+function createAssigner(assigner) {
+ return baseRest(function(object, sources) {
+ var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0;
+ customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0;
+ if (guard && isIterateeCall(sources[0], sources[1], guard)) {
+ customizer = length < 3 ? void 0 : customizer;
+ length = 1;
+ }
+ object = Object(object);
+ while (++index < length) {
+ var source = sources[index];
+ if (source) {
+ assigner(object, source, index, customizer);
+ }
+ }
+ return object;
+ });
+}
+function baseTimes(n, iteratee) {
+ var index = -1, result = Array(n);
+ while (++index < n) {
+ result[index] = iteratee(index);
+ }
+ return result;
+}
+var objectProto$8 = Object.prototype;
+var hasOwnProperty$7 = objectProto$8.hasOwnProperty;
+function arrayLikeKeys(value, inherited) {
+ var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
+ for (var key in value) {
+ if ((inherited || hasOwnProperty$7.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
+ (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
+ isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
+ isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
+ isIndex(key, length)))) {
+ result.push(key);
+ }
+ }
+ return result;
+}
+function keys(object) {
+ return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
+}
+function nativeKeysIn(object) {
+ var result = [];
+ if (object != null) {
+ for (var key in Object(object)) {
+ result.push(key);
+ }
+ }
+ return result;
+}
+var objectProto$7 = Object.prototype;
+var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
+function baseKeysIn(object) {
+ if (!isObject(object)) {
+ return nativeKeysIn(object);
+ }
+ var isProto = isPrototype(object), result = [];
+ for (var key in object) {
+ if (!(key == "constructor" && (isProto || !hasOwnProperty$6.call(object, key)))) {
+ result.push(key);
+ }
+ }
+ return result;
+}
+function keysIn(object) {
+ return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
+}
+var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/;
+function isKey(value, object) {
+ if (isArray(value)) {
+ return false;
+ }
+ var type = typeof value;
+ if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) {
+ return true;
+ }
+ return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);
+}
+var MAX_MEMOIZE_SIZE = 500;
+function memoizeCapped(func) {
+ var result = memoize(func, function(key) {
+ if (cache.size === MAX_MEMOIZE_SIZE) {
+ cache.clear();
+ }
+ return key;
+ });
+ var cache = result.cache;
+ return result;
+}
+var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
+var reEscapeChar = /\\(\\)?/g;
+var stringToPath = memoizeCapped(function(string) {
+ var result = [];
+ if (string.charCodeAt(0) === 46) {
+ result.push("");
+ }
+ string.replace(rePropName, function(match, number, quote, subString) {
+ result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match);
+ });
+ return result;
+});
+const stringToPath$1 = stringToPath;
+function toString(value) {
+ return value == null ? "" : baseToString(value);
+}
+function castPath(value, object) {
+ if (isArray(value)) {
+ return value;
+ }
+ return isKey(value, object) ? [value] : stringToPath$1(toString(value));
+}
+var INFINITY$1 = 1 / 0;
+function toKey(value) {
+ if (typeof value == "string" || isSymbol(value)) {
+ return value;
+ }
+ var result = value + "";
+ return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result;
+}
+function baseGet(object, path) {
+ path = castPath(path, object);
+ var index = 0, length = path.length;
+ while (object != null && index < length) {
+ object = object[toKey(path[index++])];
+ }
+ return index && index == length ? object : void 0;
+}
+function get(object, path, defaultValue) {
+ var result = object == null ? void 0 : baseGet(object, path);
+ return result === void 0 ? defaultValue : result;
+}
+function arrayPush(array, values2) {
+ var index = -1, length = values2.length, offset = array.length;
+ while (++index < length) {
+ array[offset + index] = values2[index];
+ }
+ return array;
+}
+var spreadableSymbol = Symbol$1 ? Symbol$1.isConcatSpreadable : void 0;
+function isFlattenable(value) {
+ return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
+}
+function baseFlatten(array, depth, predicate, isStrict, result) {
+ var index = -1, length = array.length;
+ predicate || (predicate = isFlattenable);
+ result || (result = []);
+ while (++index < length) {
+ var value = array[index];
+ if (depth > 0 && predicate(value)) {
+ if (depth > 1) {
+ baseFlatten(value, depth - 1, predicate, isStrict, result);
+ } else {
+ arrayPush(result, value);
+ }
+ } else if (!isStrict) {
+ result[result.length] = value;
+ }
+ }
+ return result;
+}
+function flatten(array) {
+ var length = array == null ? 0 : array.length;
+ return length ? baseFlatten(array, 1) : [];
+}
+function flatRest(func) {
+ return setToString$1(overRest(func, void 0, flatten), func + "");
+}
+var getPrototype = overArg(Object.getPrototypeOf, Object);
+const getPrototype$1 = getPrototype;
+var objectTag$2 = "[object Object]";
+var funcProto = Function.prototype, objectProto$6 = Object.prototype;
+var funcToString = funcProto.toString;
+var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
+var objectCtorString = funcToString.call(Object);
+function isPlainObject(value) {
+ if (!isObjectLike(value) || baseGetTag(value) != objectTag$2) {
+ return false;
+ }
+ var proto = getPrototype$1(value);
+ if (proto === null) {
+ return true;
+ }
+ var Ctor = hasOwnProperty$5.call(proto, "constructor") && proto.constructor;
+ return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
+}
+function arrayReduce(array, iteratee, accumulator, initAccum) {
+ var index = -1, length = array == null ? 0 : array.length;
+ if (initAccum && length) {
+ accumulator = array[++index];
+ }
+ while (++index < length) {
+ accumulator = iteratee(accumulator, array[index], index, array);
+ }
+ return accumulator;
+}
+function stackClear() {
+ this.__data__ = new ListCache();
+ this.size = 0;
+}
+function stackDelete(key) {
+ var data = this.__data__, result = data["delete"](key);
+ this.size = data.size;
+ return result;
+}
+function stackGet(key) {
+ return this.__data__.get(key);
+}
+function stackHas(key) {
+ return this.__data__.has(key);
+}
+var LARGE_ARRAY_SIZE$1 = 200;
+function stackSet(key, value) {
+ var data = this.__data__;
+ if (data instanceof ListCache) {
+ var pairs = data.__data__;
+ if (!Map || pairs.length < LARGE_ARRAY_SIZE$1 - 1) {
+ pairs.push([key, value]);
+ this.size = ++data.size;
+ return this;
+ }
+ data = this.__data__ = new MapCache(pairs);
+ }
+ data.set(key, value);
+ this.size = data.size;
+ return this;
+}
+function Stack(entries) {
+ var data = this.__data__ = new ListCache(entries);
+ this.size = data.size;
+}
+Stack.prototype.clear = stackClear;
+Stack.prototype["delete"] = stackDelete;
+Stack.prototype.get = stackGet;
+Stack.prototype.has = stackHas;
+Stack.prototype.set = stackSet;
+function baseAssign(object, source) {
+ return object && copyObject(source, keys(source), object);
+}
+function baseAssignIn(object, source) {
+ return object && copyObject(source, keysIn(source), object);
+}
+var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
+var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
+var moduleExports = freeModule && freeModule.exports === freeExports;
+var Buffer = moduleExports ? root.Buffer : void 0, allocUnsafe = Buffer ? Buffer.allocUnsafe : void 0;
+function cloneBuffer(buffer, isDeep) {
+ if (isDeep) {
+ return buffer.slice();
+ }
+ var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
+ buffer.copy(result);
+ return result;
+}
+function arrayFilter(array, predicate) {
+ var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];
+ while (++index < length) {
+ var value = array[index];
+ if (predicate(value, index, array)) {
+ result[resIndex++] = value;
+ }
+ }
+ return result;
+}
+function stubArray() {
+ return [];
+}
+var objectProto$5 = Object.prototype;
+var propertyIsEnumerable = objectProto$5.propertyIsEnumerable;
+var nativeGetSymbols$1 = Object.getOwnPropertySymbols;
+var getSymbols = !nativeGetSymbols$1 ? stubArray : function(object) {
+ if (object == null) {
+ return [];
+ }
+ object = Object(object);
+ return arrayFilter(nativeGetSymbols$1(object), function(symbol) {
+ return propertyIsEnumerable.call(object, symbol);
+ });
+};
+const getSymbols$1 = getSymbols;
+function copySymbols(source, object) {
+ return copyObject(source, getSymbols$1(source), object);
+}
+var nativeGetSymbols = Object.getOwnPropertySymbols;
+var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
+ var result = [];
+ while (object) {
+ arrayPush(result, getSymbols$1(object));
+ object = getPrototype$1(object);
+ }
+ return result;
+};
+const getSymbolsIn$1 = getSymbolsIn;
+function copySymbolsIn(source, object) {
+ return copyObject(source, getSymbolsIn$1(source), object);
+}
+function baseGetAllKeys(object, keysFunc, symbolsFunc) {
+ var result = keysFunc(object);
+ return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
+}
+function getAllKeys(object) {
+ return baseGetAllKeys(object, keys, getSymbols$1);
+}
+function getAllKeysIn(object) {
+ return baseGetAllKeys(object, keysIn, getSymbolsIn$1);
+}
+var objectProto$4 = Object.prototype;
+var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
+function initCloneArray(array) {
+ var length = array.length, result = new array.constructor(length);
+ if (length && typeof array[0] == "string" && hasOwnProperty$4.call(array, "index")) {
+ result.index = array.index;
+ result.input = array.input;
+ }
+ return result;
+}
+var Uint8Array = root.Uint8Array;
+const Uint8Array$1 = Uint8Array;
+function cloneArrayBuffer(arrayBuffer) {
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
+ new Uint8Array$1(result).set(new Uint8Array$1(arrayBuffer));
+ return result;
+}
+function cloneDataView(dataView, isDeep) {
+ var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
+ return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
+}
+var reFlags = /\w*$/;
+function cloneRegExp(regexp) {
+ var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
+ result.lastIndex = regexp.lastIndex;
+ return result;
+}
+var symbolProto$1 = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0;
+function cloneSymbol(symbol) {
+ return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {};
+}
+function cloneTypedArray(typedArray, isDeep) {
+ var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
+}
+var boolTag$2 = "[object Boolean]", dateTag$2 = "[object Date]", mapTag$3 = "[object Map]", numberTag$2 = "[object Number]", regexpTag$2 = "[object RegExp]", setTag$3 = "[object Set]", stringTag$2 = "[object String]", symbolTag$2 = "[object Symbol]";
+var arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]";
+function initCloneByTag(object, tag, isDeep) {
+ var Ctor = object.constructor;
+ switch (tag) {
+ case arrayBufferTag$2:
+ return cloneArrayBuffer(object);
+ case boolTag$2:
+ case dateTag$2:
+ return new Ctor(+object);
+ case dataViewTag$2:
+ return cloneDataView(object, isDeep);
+ case float32Tag$1:
+ case float64Tag$1:
+ case int8Tag$1:
+ case int16Tag$1:
+ case int32Tag$1:
+ case uint8Tag$1:
+ case uint8ClampedTag$1:
+ case uint16Tag$1:
+ case uint32Tag$1:
+ return cloneTypedArray(object, isDeep);
+ case mapTag$3:
+ return new Ctor();
+ case numberTag$2:
+ case stringTag$2:
+ return new Ctor(object);
+ case regexpTag$2:
+ return cloneRegExp(object);
+ case setTag$3:
+ return new Ctor();
+ case symbolTag$2:
+ return cloneSymbol(object);
+ }
+}
+function initCloneObject(object) {
+ return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate$1(getPrototype$1(object)) : {};
+}
+var mapTag$2 = "[object Map]";
+function baseIsMap(value) {
+ return isObjectLike(value) && getTag(value) == mapTag$2;
+}
+var nodeIsMap = nodeUtil && nodeUtil.isMap;
+var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
+const isMap$1 = isMap;
+var setTag$2 = "[object Set]";
+function baseIsSet(value) {
+ return isObjectLike(value) && getTag(value) == setTag$2;
+}
+var nodeIsSet = nodeUtil && nodeUtil.isSet;
+var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
+const isSet$1 = isSet;
+var CLONE_DEEP_FLAG$1 = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG$1 = 4;
+var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag$1 = "[object Map]", numberTag$1 = "[object Number]", objectTag$1 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$1 = "[object Set]", stringTag$1 = "[object String]", symbolTag$1 = "[object Symbol]", weakMapTag = "[object WeakMap]";
+var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
+var cloneableTags = {};
+cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$1] = cloneableTags[numberTag$1] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$1] = cloneableTags[stringTag$1] = cloneableTags[symbolTag$1] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
+cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
+function baseClone(value, bitmask, customizer, key, object, stack) {
+ var result, isDeep = bitmask & CLONE_DEEP_FLAG$1, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG$1;
+ if (customizer) {
+ result = object ? customizer(value, key, object, stack) : customizer(value);
+ }
+ if (result !== void 0) {
+ return result;
+ }
+ if (!isObject(value)) {
+ return value;
+ }
+ var isArr = isArray(value);
+ if (isArr) {
+ result = initCloneArray(value);
+ if (!isDeep) {
+ return copyArray(value, result);
+ }
+ } else {
+ var tag = getTag(value), isFunc = tag == funcTag || tag == genTag;
+ if (isBuffer(value)) {
+ return cloneBuffer(value, isDeep);
+ }
+ if (tag == objectTag$1 || tag == argsTag$1 || isFunc && !object) {
+ result = isFlat || isFunc ? {} : initCloneObject(value);
+ if (!isDeep) {
+ return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));
+ }
+ } else {
+ if (!cloneableTags[tag]) {
+ return object ? value : {};
+ }
+ result = initCloneByTag(value, tag, isDeep);
+ }
+ }
+ stack || (stack = new Stack());
+ var stacked = stack.get(value);
+ if (stacked) {
+ return stacked;
+ }
+ stack.set(value, result);
+ if (isSet$1(value)) {
+ value.forEach(function(subValue) {
+ result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
+ });
+ } else if (isMap$1(value)) {
+ value.forEach(function(subValue, key2) {
+ result.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
+ });
+ }
+ var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;
+ var props = isArr ? void 0 : keysFunc(value);
+ arrayEach(props || value, function(subValue, key2) {
+ if (props) {
+ key2 = subValue;
+ subValue = value[key2];
+ }
+ assignValue(result, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
+ });
+ return result;
+}
+var CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4;
+function cloneDeep(value) {
+ return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
+}
+var HASH_UNDEFINED = "__lodash_hash_undefined__";
+function setCacheAdd(value) {
+ this.__data__.set(value, HASH_UNDEFINED);
+ return this;
+}
+function setCacheHas(value) {
+ return this.__data__.has(value);
+}
+function SetCache(values2) {
+ var index = -1, length = values2 == null ? 0 : values2.length;
+ this.__data__ = new MapCache();
+ while (++index < length) {
+ this.add(values2[index]);
+ }
+}
+SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
+SetCache.prototype.has = setCacheHas;
+function arraySome(array, predicate) {
+ var index = -1, length = array == null ? 0 : array.length;
+ while (++index < length) {
+ if (predicate(array[index], index, array)) {
+ return true;
+ }
+ }
+ return false;
+}
+function cacheHas(cache, key) {
+ return cache.has(key);
+}
+var COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2;
+function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array.length, othLength = other.length;
+ if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
+ return false;
+ }
+ var arrStacked = stack.get(array);
+ var othStacked = stack.get(other);
+ if (arrStacked && othStacked) {
+ return arrStacked == other && othStacked == array;
+ }
+ var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0;
+ stack.set(array, other);
+ stack.set(other, array);
+ while (++index < arrLength) {
+ var arrValue = array[index], othValue = other[index];
+ if (customizer) {
+ var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);
+ }
+ if (compared !== void 0) {
+ if (compared) {
+ continue;
+ }
+ result = false;
+ break;
+ }
+ if (seen) {
+ if (!arraySome(other, function(othValue2, othIndex) {
+ if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
+ return seen.push(othIndex);
+ }
+ })) {
+ result = false;
+ break;
+ }
+ } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
+ result = false;
+ break;
+ }
+ }
+ stack["delete"](array);
+ stack["delete"](other);
+ return result;
+}
+function mapToArray(map2) {
+ var index = -1, result = Array(map2.size);
+ map2.forEach(function(value, key) {
+ result[++index] = [key, value];
+ });
+ return result;
+}
+function setToArray(set) {
+ var index = -1, result = Array(set.size);
+ set.forEach(function(value) {
+ result[++index] = value;
+ });
+ return result;
+}
+var COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2;
+var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]";
+var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]";
+var symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
+function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
+ switch (tag) {
+ case dataViewTag:
+ if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
+ return false;
+ }
+ object = object.buffer;
+ other = other.buffer;
+ case arrayBufferTag:
+ if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) {
+ return false;
+ }
+ return true;
+ case boolTag:
+ case dateTag:
+ case numberTag:
+ return eq(+object, +other);
+ case errorTag:
+ return object.name == other.name && object.message == other.message;
+ case regexpTag:
+ case stringTag:
+ return object == other + "";
+ case mapTag:
+ var convert = mapToArray;
+ case setTag:
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4;
+ convert || (convert = setToArray);
+ if (object.size != other.size && !isPartial) {
+ return false;
+ }
+ var stacked = stack.get(object);
+ if (stacked) {
+ return stacked == other;
+ }
+ bitmask |= COMPARE_UNORDERED_FLAG$2;
+ stack.set(object, other);
+ var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
+ stack["delete"](object);
+ return result;
+ case symbolTag:
+ if (symbolValueOf) {
+ return symbolValueOf.call(object) == symbolValueOf.call(other);
+ }
+ }
+ return false;
+}
+var COMPARE_PARTIAL_FLAG$3 = 1;
+var objectProto$3 = Object.prototype;
+var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
+function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
+ if (objLength != othLength && !isPartial) {
+ return false;
+ }
+ var index = objLength;
+ while (index--) {
+ var key = objProps[index];
+ if (!(isPartial ? key in other : hasOwnProperty$3.call(other, key))) {
+ return false;
+ }
+ }
+ var objStacked = stack.get(object);
+ var othStacked = stack.get(other);
+ if (objStacked && othStacked) {
+ return objStacked == other && othStacked == object;
+ }
+ var result = true;
+ stack.set(object, other);
+ stack.set(other, object);
+ var skipCtor = isPartial;
+ while (++index < objLength) {
+ key = objProps[index];
+ var objValue = object[key], othValue = other[key];
+ if (customizer) {
+ var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
+ }
+ if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
+ result = false;
+ break;
+ }
+ skipCtor || (skipCtor = key == "constructor");
+ }
+ if (result && !skipCtor) {
+ var objCtor = object.constructor, othCtor = other.constructor;
+ if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
+ result = false;
+ }
+ }
+ stack["delete"](object);
+ stack["delete"](other);
+ return result;
+}
+var COMPARE_PARTIAL_FLAG$2 = 1;
+var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]";
+var objectProto$2 = Object.prototype;
+var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
+function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
+ var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);
+ objTag = objTag == argsTag ? objectTag : objTag;
+ othTag = othTag == argsTag ? objectTag : othTag;
+ var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
+ if (isSameTag && isBuffer(object)) {
+ if (!isBuffer(other)) {
+ return false;
+ }
+ objIsArr = true;
+ objIsObj = false;
+ }
+ if (isSameTag && !objIsObj) {
+ stack || (stack = new Stack());
+ return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
+ }
+ if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
+ var objIsWrapped = objIsObj && hasOwnProperty$2.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty$2.call(other, "__wrapped__");
+ if (objIsWrapped || othIsWrapped) {
+ var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
+ stack || (stack = new Stack());
+ return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
+ }
+ }
+ if (!isSameTag) {
+ return false;
+ }
+ stack || (stack = new Stack());
+ return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
+}
+function baseIsEqual(value, other, bitmask, customizer, stack) {
+ if (value === other) {
+ return true;
+ }
+ if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
+ return value !== value && other !== other;
+ }
+ return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
+}
+var COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2;
+function baseIsMatch(object, source, matchData, customizer) {
+ var index = matchData.length, length = index, noCustomizer = !customizer;
+ if (object == null) {
+ return !length;
+ }
+ object = Object(object);
+ while (index--) {
+ var data = matchData[index];
+ if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {
+ return false;
+ }
+ }
+ while (++index < length) {
+ data = matchData[index];
+ var key = data[0], objValue = object[key], srcValue = data[1];
+ if (noCustomizer && data[2]) {
+ if (objValue === void 0 && !(key in object)) {
+ return false;
+ }
+ } else {
+ var stack = new Stack();
+ if (customizer) {
+ var result = customizer(objValue, srcValue, key, object, source, stack);
+ }
+ if (!(result === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) {
+ return false;
+ }
+ }
+ }
+ return true;
+}
+function isStrictComparable(value) {
+ return value === value && !isObject(value);
+}
+function getMatchData(object) {
+ var result = keys(object), length = result.length;
+ while (length--) {
+ var key = result[length], value = object[key];
+ result[length] = [key, value, isStrictComparable(value)];
+ }
+ return result;
+}
+function matchesStrictComparable(key, srcValue) {
+ return function(object) {
+ if (object == null) {
+ return false;
+ }
+ return object[key] === srcValue && (srcValue !== void 0 || key in Object(object));
+ };
+}
+function baseMatches(source) {
+ var matchData = getMatchData(source);
+ if (matchData.length == 1 && matchData[0][2]) {
+ return matchesStrictComparable(matchData[0][0], matchData[0][1]);
+ }
+ return function(object) {
+ return object === source || baseIsMatch(object, source, matchData);
+ };
+}
+function baseHasIn(object, key) {
+ return object != null && key in Object(object);
+}
+function hasPath(object, path, hasFunc) {
+ path = castPath(path, object);
+ var index = -1, length = path.length, result = false;
+ while (++index < length) {
+ var key = toKey(path[index]);
+ if (!(result = object != null && hasFunc(object, key))) {
+ break;
+ }
+ object = object[key];
+ }
+ if (result || ++index != length) {
+ return result;
+ }
+ length = object == null ? 0 : object.length;
+ return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));
+}
+function hasIn(object, path) {
+ return object != null && hasPath(object, path, baseHasIn);
+}
+var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
+function baseMatchesProperty(path, srcValue) {
+ if (isKey(path) && isStrictComparable(srcValue)) {
+ return matchesStrictComparable(toKey(path), srcValue);
+ }
+ return function(object) {
+ var objValue = get(object, path);
+ return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
+ };
+}
+function baseProperty(key) {
+ return function(object) {
+ return object == null ? void 0 : object[key];
+ };
+}
+function basePropertyDeep(path) {
+ return function(object) {
+ return baseGet(object, path);
+ };
+}
+function property(path) {
+ return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
+}
+function baseIteratee(value) {
+ if (typeof value == "function") {
+ return value;
+ }
+ if (value == null) {
+ return identity;
+ }
+ if (typeof value == "object") {
+ return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);
+ }
+ return property(value);
+}
+function createBaseFor(fromRight) {
+ return function(object, iteratee, keysFunc) {
+ var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length;
+ while (length--) {
+ var key = props[fromRight ? length : ++index];
+ if (iteratee(iterable[key], key, iterable) === false) {
+ break;
+ }
+ }
+ return object;
+ };
+}
+var baseFor = createBaseFor();
+const baseFor$1 = baseFor;
+function baseForOwn(object, iteratee) {
+ return object && baseFor$1(object, iteratee, keys);
+}
+function createBaseEach(eachFunc, fromRight) {
+ return function(collection, iteratee) {
+ if (collection == null) {
+ return collection;
+ }
+ if (!isArrayLike(collection)) {
+ return eachFunc(collection, iteratee);
+ }
+ var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection);
+ while (fromRight ? index-- : ++index < length) {
+ if (iteratee(iterable[index], index, iterable) === false) {
+ break;
+ }
+ }
+ return collection;
+ };
+}
+var baseEach = createBaseEach(baseForOwn);
+const baseEach$1 = baseEach;
+var now = function() {
+ return root.Date.now();
+};
+const now$1 = now;
+var objectProto$1 = Object.prototype;
+var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
+var defaults = baseRest(function(object, sources) {
+ object = Object(object);
+ var index = -1;
+ var length = sources.length;
+ var guard = length > 2 ? sources[2] : void 0;
+ if (guard && isIterateeCall(sources[0], sources[1], guard)) {
+ length = 1;
+ }
+ while (++index < length) {
+ var source = sources[index];
+ var props = keysIn(source);
+ var propsIndex = -1;
+ var propsLength = props.length;
+ while (++propsIndex < propsLength) {
+ var key = props[propsIndex];
+ var value = object[key];
+ if (value === void 0 || eq(value, objectProto$1[key]) && !hasOwnProperty$1.call(object, key)) {
+ object[key] = source[key];
+ }
+ }
+ }
+ return object;
+});
+const defaults$1 = defaults;
+function assignMergeValue(object, key, value) {
+ if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) {
+ baseAssignValue(object, key, value);
+ }
+}
+function isArrayLikeObject(value) {
+ return isObjectLike(value) && isArrayLike(value);
+}
+function safeGet(object, key) {
+ if (key === "constructor" && typeof object[key] === "function") {
+ return;
+ }
+ if (key == "__proto__") {
+ return;
+ }
+ return object[key];
+}
+function toPlainObject(value) {
+ return copyObject(value, keysIn(value));
+}
+function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
+ var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);
+ if (stacked) {
+ assignMergeValue(object, key, stacked);
+ return;
+ }
+ var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : void 0;
+ var isCommon = newValue === void 0;
+ if (isCommon) {
+ var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);
+ newValue = srcValue;
+ if (isArr || isBuff || isTyped) {
+ if (isArray(objValue)) {
+ newValue = objValue;
+ } else if (isArrayLikeObject(objValue)) {
+ newValue = copyArray(objValue);
+ } else if (isBuff) {
+ isCommon = false;
+ newValue = cloneBuffer(srcValue, true);
+ } else if (isTyped) {
+ isCommon = false;
+ newValue = cloneTypedArray(srcValue, true);
+ } else {
+ newValue = [];
+ }
+ } else if (isPlainObject(srcValue) || isArguments(srcValue)) {
+ newValue = objValue;
+ if (isArguments(objValue)) {
+ newValue = toPlainObject(objValue);
+ } else if (!isObject(objValue) || isFunction(objValue)) {
+ newValue = initCloneObject(srcValue);
+ }
+ } else {
+ isCommon = false;
+ }
+ }
+ if (isCommon) {
+ stack.set(srcValue, newValue);
+ mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
+ stack["delete"](srcValue);
+ }
+ assignMergeValue(object, key, newValue);
+}
+function baseMerge(object, source, srcIndex, customizer, stack) {
+ if (object === source) {
+ return;
+ }
+ baseFor$1(source, function(srcValue, key) {
+ stack || (stack = new Stack());
+ if (isObject(srcValue)) {
+ baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
+ } else {
+ var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : void 0;
+ if (newValue === void 0) {
+ newValue = srcValue;
+ }
+ assignMergeValue(object, key, newValue);
+ }
+ }, keysIn);
+}
+function arrayIncludesWith(array, value, comparator) {
+ var index = -1, length = array == null ? 0 : array.length;
+ while (++index < length) {
+ if (comparator(value, array[index])) {
+ return true;
+ }
+ }
+ return false;
+}
+function last(array) {
+ var length = array == null ? 0 : array.length;
+ return length ? array[length - 1] : void 0;
+}
+function castFunction(value) {
+ return typeof value == "function" ? value : identity;
+}
+function forEach(collection, iteratee) {
+ var func = isArray(collection) ? arrayEach : baseEach$1;
+ return func(collection, castFunction(iteratee));
+}
+function baseFilter(collection, predicate) {
+ var result = [];
+ baseEach$1(collection, function(value, index, collection2) {
+ if (predicate(value, index, collection2)) {
+ result.push(value);
+ }
+ });
+ return result;
+}
+function filter(collection, predicate) {
+ var func = isArray(collection) ? arrayFilter : baseFilter;
+ return func(collection, baseIteratee(predicate));
+}
+function createFind(findIndexFunc) {
+ return function(collection, predicate, fromIndex) {
+ var iterable = Object(collection);
+ if (!isArrayLike(collection)) {
+ var iteratee = baseIteratee(predicate);
+ collection = keys(collection);
+ predicate = function(key) {
+ return iteratee(iterable[key], key, iterable);
+ };
+ }
+ var index = findIndexFunc(collection, predicate, fromIndex);
+ return index > -1 ? iterable[iteratee ? collection[index] : index] : void 0;
+ };
+}
+var nativeMax$1 = Math.max;
+function findIndex(array, predicate, fromIndex) {
+ var length = array == null ? 0 : array.length;
+ if (!length) {
+ return -1;
+ }
+ var index = fromIndex == null ? 0 : toInteger(fromIndex);
+ if (index < 0) {
+ index = nativeMax$1(length + index, 0);
+ }
+ return baseFindIndex(array, baseIteratee(predicate), index);
+}
+var find = createFind(findIndex);
+const find$1 = find;
+function baseMap(collection, iteratee) {
+ var index = -1, result = isArrayLike(collection) ? Array(collection.length) : [];
+ baseEach$1(collection, function(value, key, collection2) {
+ result[++index] = iteratee(value, key, collection2);
+ });
+ return result;
+}
+function map(collection, iteratee) {
+ var func = isArray(collection) ? arrayMap : baseMap;
+ return func(collection, baseIteratee(iteratee));
+}
+function forIn(object, iteratee) {
+ return object == null ? object : baseFor$1(object, castFunction(iteratee), keysIn);
+}
+function forOwn(object, iteratee) {
+ return object && baseForOwn(object, castFunction(iteratee));
+}
+function baseGt(value, other) {
+ return value > other;
+}
+var objectProto = Object.prototype;
+var hasOwnProperty = objectProto.hasOwnProperty;
+function baseHas(object, key) {
+ return object != null && hasOwnProperty.call(object, key);
+}
+function has(object, path) {
+ return object != null && hasPath(object, path, baseHas);
+}
+function baseValues(object, props) {
+ return arrayMap(props, function(key) {
+ return object[key];
+ });
+}
+function values(object) {
+ return object == null ? [] : baseValues(object, keys(object));
+}
+function isUndefined(value) {
+ return value === void 0;
+}
+function baseLt(value, other) {
+ return value < other;
+}
+function mapValues(object, iteratee) {
+ var result = {};
+ iteratee = baseIteratee(iteratee);
+ baseForOwn(object, function(value, key, object2) {
+ baseAssignValue(result, key, iteratee(value, key, object2));
+ });
+ return result;
+}
+function baseExtremum(array, iteratee, comparator) {
+ var index = -1, length = array.length;
+ while (++index < length) {
+ var value = array[index], current = iteratee(value);
+ if (current != null && (computed === void 0 ? current === current && !isSymbol(current) : comparator(current, computed))) {
+ var computed = current, result = value;
+ }
+ }
+ return result;
+}
+function max(array) {
+ return array && array.length ? baseExtremum(array, identity, baseGt) : void 0;
+}
+var merge = createAssigner(function(object, source, srcIndex) {
+ baseMerge(object, source, srcIndex);
+});
+const merge$1 = merge;
+function min(array) {
+ return array && array.length ? baseExtremum(array, identity, baseLt) : void 0;
+}
+function minBy(array, iteratee) {
+ return array && array.length ? baseExtremum(array, baseIteratee(iteratee), baseLt) : void 0;
+}
+function baseSet(object, path, value, customizer) {
+ if (!isObject(object)) {
+ return object;
+ }
+ path = castPath(path, object);
+ var index = -1, length = path.length, lastIndex = length - 1, nested = object;
+ while (nested != null && ++index < length) {
+ var key = toKey(path[index]), newValue = value;
+ if (key === "__proto__" || key === "constructor" || key === "prototype") {
+ return object;
+ }
+ if (index != lastIndex) {
+ var objValue = nested[key];
+ newValue = customizer ? customizer(objValue, key, nested) : void 0;
+ if (newValue === void 0) {
+ newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};
+ }
+ }
+ assignValue(nested, key, newValue);
+ nested = nested[key];
+ }
+ return object;
+}
+function basePickBy(object, paths, predicate) {
+ var index = -1, length = paths.length, result = {};
+ while (++index < length) {
+ var path = paths[index], value = baseGet(object, path);
+ if (predicate(value, path)) {
+ baseSet(result, castPath(path, object), value);
+ }
+ }
+ return result;
+}
+function baseSortBy(array, comparer) {
+ var length = array.length;
+ array.sort(comparer);
+ while (length--) {
+ array[length] = array[length].value;
+ }
+ return array;
+}
+function compareAscending(value, other) {
+ if (value !== other) {
+ var valIsDefined = value !== void 0, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value);
+ var othIsDefined = other !== void 0, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other);
+ if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {
+ return 1;
+ }
+ if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {
+ return -1;
+ }
+ }
+ return 0;
+}
+function compareMultiple(object, other, orders) {
+ var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length;
+ while (++index < length) {
+ var result = compareAscending(objCriteria[index], othCriteria[index]);
+ if (result) {
+ if (index >= ordersLength) {
+ return result;
+ }
+ var order2 = orders[index];
+ return result * (order2 == "desc" ? -1 : 1);
+ }
+ }
+ return object.index - other.index;
+}
+function baseOrderBy(collection, iteratees, orders) {
+ if (iteratees.length) {
+ iteratees = arrayMap(iteratees, function(iteratee) {
+ if (isArray(iteratee)) {
+ return function(value) {
+ return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
+ };
+ }
+ return iteratee;
+ });
+ } else {
+ iteratees = [identity];
+ }
+ var index = -1;
+ iteratees = arrayMap(iteratees, baseUnary(baseIteratee));
+ var result = baseMap(collection, function(value, key, collection2) {
+ var criteria = arrayMap(iteratees, function(iteratee) {
+ return iteratee(value);
+ });
+ return { "criteria": criteria, "index": ++index, "value": value };
+ });
+ return baseSortBy(result, function(object, other) {
+ return compareMultiple(object, other, orders);
+ });
+}
+function basePick(object, paths) {
+ return basePickBy(object, paths, function(value, path) {
+ return hasIn(object, path);
+ });
+}
+var pick = flatRest(function(object, paths) {
+ return object == null ? {} : basePick(object, paths);
+});
+const pick$1 = pick;
+var nativeCeil = Math.ceil, nativeMax = Math.max;
+function baseRange(start, end, step, fromRight) {
+ var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result = Array(length);
+ while (length--) {
+ result[fromRight ? length : ++index] = start;
+ start += step;
+ }
+ return result;
+}
+function createRange(fromRight) {
+ return function(start, end, step) {
+ if (step && typeof step != "number" && isIterateeCall(start, end, step)) {
+ end = step = void 0;
+ }
+ start = toFinite(start);
+ if (end === void 0) {
+ end = start;
+ start = 0;
+ } else {
+ end = toFinite(end);
+ }
+ step = step === void 0 ? start < end ? 1 : -1 : toFinite(step);
+ return baseRange(start, end, step, fromRight);
+ };
+}
+var range = createRange();
+const range$1 = range;
+function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
+ eachFunc(collection, function(value, index, collection2) {
+ accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2);
+ });
+ return accumulator;
+}
+function reduce(collection, iteratee, accumulator) {
+ var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3;
+ return func(collection, baseIteratee(iteratee), accumulator, initAccum, baseEach$1);
+}
+var sortBy = baseRest(function(collection, iteratees) {
+ if (collection == null) {
+ return [];
+ }
+ var length = iteratees.length;
+ if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
+ iteratees = [];
+ } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
+ iteratees = [iteratees[0]];
+ }
+ return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
+});
+const sortBy$1 = sortBy;
+var INFINITY = 1 / 0;
+var createSet = !(Set && 1 / setToArray(new Set([, -0]))[1] == INFINITY) ? noop : function(values2) {
+ return new Set(values2);
+};
+const createSet$1 = createSet;
+var LARGE_ARRAY_SIZE = 200;
+function baseUniq(array, iteratee, comparator) {
+ var index = -1, includes = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result;
+ if (comparator) {
+ isCommon = false;
+ includes = arrayIncludesWith;
+ } else if (length >= LARGE_ARRAY_SIZE) {
+ var set = iteratee ? null : createSet$1(array);
+ if (set) {
+ return setToArray(set);
+ }
+ isCommon = false;
+ includes = cacheHas;
+ seen = new SetCache();
+ } else {
+ seen = iteratee ? [] : result;
+ }
+ outer:
+ while (++index < length) {
+ var value = array[index], computed = iteratee ? iteratee(value) : value;
+ value = comparator || value !== 0 ? value : 0;
+ if (isCommon && computed === computed) {
+ var seenIndex = seen.length;
+ while (seenIndex--) {
+ if (seen[seenIndex] === computed) {
+ continue outer;
+ }
+ }
+ if (iteratee) {
+ seen.push(computed);
+ }
+ result.push(value);
+ } else if (!includes(seen, computed, comparator)) {
+ if (seen !== result) {
+ seen.push(computed);
+ }
+ result.push(value);
+ }
+ }
+ return result;
+}
+var union = baseRest(function(arrays) {
+ return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
+});
+const union$1 = union;
+var idCounter = 0;
+function uniqueId(prefix) {
+ var id = ++idCounter;
+ return toString(prefix) + id;
+}
+function baseZipObject(props, values2, assignFunc) {
+ var index = -1, length = props.length, valsLength = values2.length, result = {};
+ while (++index < length) {
+ var value = index < valsLength ? values2[index] : void 0;
+ assignFunc(result, props[index], value);
+ }
+ return result;
+}
+function zipObject(props, values2) {
+ return baseZipObject(props || [], values2 || [], assignValue);
+}
+var DEFAULT_EDGE_NAME = "\0";
+var GRAPH_NODE = "\0";
+var EDGE_KEY_DELIM = "";
+class Graph {
+ constructor(opts = {}) {
+ this._isDirected = has(opts, "directed") ? opts.directed : true;
+ this._isMultigraph = has(opts, "multigraph") ? opts.multigraph : false;
+ this._isCompound = has(opts, "compound") ? opts.compound : false;
+ this._label = void 0;
+ this._defaultNodeLabelFn = constant(void 0);
+ this._defaultEdgeLabelFn = constant(void 0);
+ this._nodes = {};
+ if (this._isCompound) {
+ this._parent = {};
+ this._children = {};
+ this._children[GRAPH_NODE] = {};
+ }
+ this._in = {};
+ this._preds = {};
+ this._out = {};
+ this._sucs = {};
+ this._edgeObjs = {};
+ this._edgeLabels = {};
+ }
+ /* === Graph functions ========= */
+ isDirected() {
+ return this._isDirected;
+ }
+ isMultigraph() {
+ return this._isMultigraph;
+ }
+ isCompound() {
+ return this._isCompound;
+ }
+ setGraph(label) {
+ this._label = label;
+ return this;
+ }
+ graph() {
+ return this._label;
+ }
+ /* === Node functions ========== */
+ setDefaultNodeLabel(newDefault) {
+ if (!isFunction(newDefault)) {
+ newDefault = constant(newDefault);
+ }
+ this._defaultNodeLabelFn = newDefault;
+ return this;
+ }
+ nodeCount() {
+ return this._nodeCount;
+ }
+ nodes() {
+ return keys(this._nodes);
+ }
+ sources() {
+ var self = this;
+ return filter(this.nodes(), function(v) {
+ return isEmpty(self._in[v]);
+ });
+ }
+ sinks() {
+ var self = this;
+ return filter(this.nodes(), function(v) {
+ return isEmpty(self._out[v]);
+ });
+ }
+ setNodes(vs, value) {
+ var args = arguments;
+ var self = this;
+ forEach(vs, function(v) {
+ if (args.length > 1) {
+ self.setNode(v, value);
+ } else {
+ self.setNode(v);
+ }
+ });
+ return this;
+ }
+ setNode(v, value) {
+ if (has(this._nodes, v)) {
+ if (arguments.length > 1) {
+ this._nodes[v] = value;
+ }
+ return this;
+ }
+ this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);
+ if (this._isCompound) {
+ this._parent[v] = GRAPH_NODE;
+ this._children[v] = {};
+ this._children[GRAPH_NODE][v] = true;
+ }
+ this._in[v] = {};
+ this._preds[v] = {};
+ this._out[v] = {};
+ this._sucs[v] = {};
+ ++this._nodeCount;
+ return this;
+ }
+ node(v) {
+ return this._nodes[v];
+ }
+ hasNode(v) {
+ return has(this._nodes, v);
+ }
+ removeNode(v) {
+ var self = this;
+ if (has(this._nodes, v)) {
+ var removeEdge = function(e) {
+ self.removeEdge(self._edgeObjs[e]);
+ };
+ delete this._nodes[v];
+ if (this._isCompound) {
+ this._removeFromParentsChildList(v);
+ delete this._parent[v];
+ forEach(this.children(v), function(child) {
+ self.setParent(child);
+ });
+ delete this._children[v];
+ }
+ forEach(keys(this._in[v]), removeEdge);
+ delete this._in[v];
+ delete this._preds[v];
+ forEach(keys(this._out[v]), removeEdge);
+ delete this._out[v];
+ delete this._sucs[v];
+ --this._nodeCount;
+ }
+ return this;
+ }
+ setParent(v, parent) {
+ if (!this._isCompound) {
+ throw new Error("Cannot set parent in a non-compound graph");
+ }
+ if (isUndefined(parent)) {
+ parent = GRAPH_NODE;
+ } else {
+ parent += "";
+ for (var ancestor = parent; !isUndefined(ancestor); ancestor = this.parent(ancestor)) {
+ if (ancestor === v) {
+ throw new Error("Setting " + parent + " as parent of " + v + " would create a cycle");
+ }
+ }
+ this.setNode(parent);
+ }
+ this.setNode(v);
+ this._removeFromParentsChildList(v);
+ this._parent[v] = parent;
+ this._children[parent][v] = true;
+ return this;
+ }
+ _removeFromParentsChildList(v) {
+ delete this._children[this._parent[v]][v];
+ }
+ parent(v) {
+ if (this._isCompound) {
+ var parent = this._parent[v];
+ if (parent !== GRAPH_NODE) {
+ return parent;
+ }
+ }
+ }
+ children(v) {
+ if (isUndefined(v)) {
+ v = GRAPH_NODE;
+ }
+ if (this._isCompound) {
+ var children = this._children[v];
+ if (children) {
+ return keys(children);
+ }
+ } else if (v === GRAPH_NODE) {
+ return this.nodes();
+ } else if (this.hasNode(v)) {
+ return [];
+ }
+ }
+ predecessors(v) {
+ var predsV = this._preds[v];
+ if (predsV) {
+ return keys(predsV);
+ }
+ }
+ successors(v) {
+ var sucsV = this._sucs[v];
+ if (sucsV) {
+ return keys(sucsV);
+ }
+ }
+ neighbors(v) {
+ var preds = this.predecessors(v);
+ if (preds) {
+ return union$1(preds, this.successors(v));
+ }
+ }
+ isLeaf(v) {
+ var neighbors;
+ if (this.isDirected()) {
+ neighbors = this.successors(v);
+ } else {
+ neighbors = this.neighbors(v);
+ }
+ return neighbors.length === 0;
+ }
+ filterNodes(filter2) {
+ var copy = new this.constructor({
+ directed: this._isDirected,
+ multigraph: this._isMultigraph,
+ compound: this._isCompound
+ });
+ copy.setGraph(this.graph());
+ var self = this;
+ forEach(this._nodes, function(value, v) {
+ if (filter2(v)) {
+ copy.setNode(v, value);
+ }
+ });
+ forEach(this._edgeObjs, function(e) {
+ if (copy.hasNode(e.v) && copy.hasNode(e.w)) {
+ copy.setEdge(e, self.edge(e));
+ }
+ });
+ var parents = {};
+ function findParent(v) {
+ var parent = self.parent(v);
+ if (parent === void 0 || copy.hasNode(parent)) {
+ parents[v] = parent;
+ return parent;
+ } else if (parent in parents) {
+ return parents[parent];
+ } else {
+ return findParent(parent);
+ }
+ }
+ if (this._isCompound) {
+ forEach(copy.nodes(), function(v) {
+ copy.setParent(v, findParent(v));
+ });
+ }
+ return copy;
+ }
+ /* === Edge functions ========== */
+ setDefaultEdgeLabel(newDefault) {
+ if (!isFunction(newDefault)) {
+ newDefault = constant(newDefault);
+ }
+ this._defaultEdgeLabelFn = newDefault;
+ return this;
+ }
+ edgeCount() {
+ return this._edgeCount;
+ }
+ edges() {
+ return values(this._edgeObjs);
+ }
+ setPath(vs, value) {
+ var self = this;
+ var args = arguments;
+ reduce(vs, function(v, w) {
+ if (args.length > 1) {
+ self.setEdge(v, w, value);
+ } else {
+ self.setEdge(v, w);
+ }
+ return w;
+ });
+ return this;
+ }
+ /*
+ * setEdge(v, w, [value, [name]])
+ * setEdge({ v, w, [name] }, [value])
+ */
+ setEdge() {
+ var v, w, name, value;
+ var valueSpecified = false;
+ var arg0 = arguments[0];
+ if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) {
+ v = arg0.v;
+ w = arg0.w;
+ name = arg0.name;
+ if (arguments.length === 2) {
+ value = arguments[1];
+ valueSpecified = true;
+ }
+ } else {
+ v = arg0;
+ w = arguments[1];
+ name = arguments[3];
+ if (arguments.length > 2) {
+ value = arguments[2];
+ valueSpecified = true;
+ }
+ }
+ v = "" + v;
+ w = "" + w;
+ if (!isUndefined(name)) {
+ name = "" + name;
+ }
+ var e = edgeArgsToId(this._isDirected, v, w, name);
+ if (has(this._edgeLabels, e)) {
+ if (valueSpecified) {
+ this._edgeLabels[e] = value;
+ }
+ return this;
+ }
+ if (!isUndefined(name) && !this._isMultigraph) {
+ throw new Error("Cannot set a named edge when isMultigraph = false");
+ }
+ this.setNode(v);
+ this.setNode(w);
+ this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);
+ var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);
+ v = edgeObj.v;
+ w = edgeObj.w;
+ Object.freeze(edgeObj);
+ this._edgeObjs[e] = edgeObj;
+ incrementOrInitEntry(this._preds[w], v);
+ incrementOrInitEntry(this._sucs[v], w);
+ this._in[w][e] = edgeObj;
+ this._out[v][e] = edgeObj;
+ this._edgeCount++;
+ return this;
+ }
+ edge(v, w, name) {
+ var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name);
+ return this._edgeLabels[e];
+ }
+ hasEdge(v, w, name) {
+ var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name);
+ return has(this._edgeLabels, e);
+ }
+ removeEdge(v, w, name) {
+ var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name);
+ var edge = this._edgeObjs[e];
+ if (edge) {
+ v = edge.v;
+ w = edge.w;
+ delete this._edgeLabels[e];
+ delete this._edgeObjs[e];
+ decrementOrRemoveEntry(this._preds[w], v);
+ decrementOrRemoveEntry(this._sucs[v], w);
+ delete this._in[w][e];
+ delete this._out[v][e];
+ this._edgeCount--;
+ }
+ return this;
+ }
+ inEdges(v, u) {
+ var inV = this._in[v];
+ if (inV) {
+ var edges = values(inV);
+ if (!u) {
+ return edges;
+ }
+ return filter(edges, function(edge) {
+ return edge.v === u;
+ });
+ }
+ }
+ outEdges(v, w) {
+ var outV = this._out[v];
+ if (outV) {
+ var edges = values(outV);
+ if (!w) {
+ return edges;
+ }
+ return filter(edges, function(edge) {
+ return edge.w === w;
+ });
+ }
+ }
+ nodeEdges(v, w) {
+ var inEdges = this.inEdges(v, w);
+ if (inEdges) {
+ return inEdges.concat(this.outEdges(v, w));
+ }
+ }
+}
+Graph.prototype._nodeCount = 0;
+Graph.prototype._edgeCount = 0;
+function incrementOrInitEntry(map2, k) {
+ if (map2[k]) {
+ map2[k]++;
+ } else {
+ map2[k] = 1;
+ }
+}
+function decrementOrRemoveEntry(map2, k) {
+ if (!--map2[k]) {
+ delete map2[k];
+ }
+}
+function edgeArgsToId(isDirected, v_, w_, name) {
+ var v = "" + v_;
+ var w = "" + w_;
+ if (!isDirected && v > w) {
+ var tmp = v;
+ v = w;
+ w = tmp;
+ }
+ return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (isUndefined(name) ? DEFAULT_EDGE_NAME : name);
+}
+function edgeArgsToObj(isDirected, v_, w_, name) {
+ var v = "" + v_;
+ var w = "" + w_;
+ if (!isDirected && v > w) {
+ var tmp = v;
+ v = w;
+ w = tmp;
+ }
+ var edgeObj = { v, w };
+ if (name) {
+ edgeObj.name = name;
+ }
+ return edgeObj;
+}
+function edgeObjToId(isDirected, edgeObj) {
+ return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);
+}
+class List {
+ constructor() {
+ var sentinel = {};
+ sentinel._next = sentinel._prev = sentinel;
+ this._sentinel = sentinel;
+ }
+ dequeue() {
+ var sentinel = this._sentinel;
+ var entry = sentinel._prev;
+ if (entry !== sentinel) {
+ unlink(entry);
+ return entry;
+ }
+ }
+ enqueue(entry) {
+ var sentinel = this._sentinel;
+ if (entry._prev && entry._next) {
+ unlink(entry);
+ }
+ entry._next = sentinel._next;
+ sentinel._next._prev = entry;
+ sentinel._next = entry;
+ entry._prev = sentinel;
+ }
+ toString() {
+ var strs = [];
+ var sentinel = this._sentinel;
+ var curr = sentinel._prev;
+ while (curr !== sentinel) {
+ strs.push(JSON.stringify(curr, filterOutLinks));
+ curr = curr._prev;
+ }
+ return "[" + strs.join(", ") + "]";
+ }
+}
+function unlink(entry) {
+ entry._prev._next = entry._next;
+ entry._next._prev = entry._prev;
+ delete entry._next;
+ delete entry._prev;
+}
+function filterOutLinks(k, v) {
+ if (k !== "_next" && k !== "_prev") {
+ return v;
+ }
+}
+var DEFAULT_WEIGHT_FN = constant(1);
+function greedyFAS(g, weightFn) {
+ if (g.nodeCount() <= 1) {
+ return [];
+ }
+ var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);
+ var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);
+ return flatten(
+ map(results, function(e) {
+ return g.outEdges(e.v, e.w);
+ })
+ );
+}
+function doGreedyFAS(g, buckets, zeroIdx) {
+ var results = [];
+ var sources = buckets[buckets.length - 1];
+ var sinks = buckets[0];
+ var entry;
+ while (g.nodeCount()) {
+ while (entry = sinks.dequeue()) {
+ removeNode(g, buckets, zeroIdx, entry);
+ }
+ while (entry = sources.dequeue()) {
+ removeNode(g, buckets, zeroIdx, entry);
+ }
+ if (g.nodeCount()) {
+ for (var i = buckets.length - 2; i > 0; --i) {
+ entry = buckets[i].dequeue();
+ if (entry) {
+ results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));
+ break;
+ }
+ }
+ }
+ }
+ return results;
+}
+function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {
+ var results = collectPredecessors ? [] : void 0;
+ forEach(g.inEdges(entry.v), function(edge) {
+ var weight = g.edge(edge);
+ var uEntry = g.node(edge.v);
+ if (collectPredecessors) {
+ results.push({ v: edge.v, w: edge.w });
+ }
+ uEntry.out -= weight;
+ assignBucket(buckets, zeroIdx, uEntry);
+ });
+ forEach(g.outEdges(entry.v), function(edge) {
+ var weight = g.edge(edge);
+ var w = edge.w;
+ var wEntry = g.node(w);
+ wEntry["in"] -= weight;
+ assignBucket(buckets, zeroIdx, wEntry);
+ });
+ g.removeNode(entry.v);
+ return results;
+}
+function buildState(g, weightFn) {
+ var fasGraph = new Graph();
+ var maxIn = 0;
+ var maxOut = 0;
+ forEach(g.nodes(), function(v) {
+ fasGraph.setNode(v, { v, in: 0, out: 0 });
+ });
+ forEach(g.edges(), function(e) {
+ var prevWeight = fasGraph.edge(e.v, e.w) || 0;
+ var weight = weightFn(e);
+ var edgeWeight = prevWeight + weight;
+ fasGraph.setEdge(e.v, e.w, edgeWeight);
+ maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);
+ maxIn = Math.max(maxIn, fasGraph.node(e.w)["in"] += weight);
+ });
+ var buckets = range$1(maxOut + maxIn + 3).map(function() {
+ return new List();
+ });
+ var zeroIdx = maxIn + 1;
+ forEach(fasGraph.nodes(), function(v) {
+ assignBucket(buckets, zeroIdx, fasGraph.node(v));
+ });
+ return { graph: fasGraph, buckets, zeroIdx };
+}
+function assignBucket(buckets, zeroIdx, entry) {
+ if (!entry.out) {
+ buckets[0].enqueue(entry);
+ } else if (!entry["in"]) {
+ buckets[buckets.length - 1].enqueue(entry);
+ } else {
+ buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry);
+ }
+}
+function run$2(g) {
+ var fas = g.graph().acyclicer === "greedy" ? greedyFAS(g, weightFn(g)) : dfsFAS(g);
+ forEach(fas, function(e) {
+ var label = g.edge(e);
+ g.removeEdge(e);
+ label.forwardName = e.name;
+ label.reversed = true;
+ g.setEdge(e.w, e.v, label, uniqueId("rev"));
+ });
+ function weightFn(g2) {
+ return function(e) {
+ return g2.edge(e).weight;
+ };
+ }
+}
+function dfsFAS(g) {
+ var fas = [];
+ var stack = {};
+ var visited = {};
+ function dfs2(v) {
+ if (has(visited, v)) {
+ return;
+ }
+ visited[v] = true;
+ stack[v] = true;
+ forEach(g.outEdges(v), function(e) {
+ if (has(stack, e.w)) {
+ fas.push(e);
+ } else {
+ dfs2(e.w);
+ }
+ });
+ delete stack[v];
+ }
+ forEach(g.nodes(), dfs2);
+ return fas;
+}
+function undo$2(g) {
+ forEach(g.edges(), function(e) {
+ var label = g.edge(e);
+ if (label.reversed) {
+ g.removeEdge(e);
+ var forwardName = label.forwardName;
+ delete label.reversed;
+ delete label.forwardName;
+ g.setEdge(e.w, e.v, label, forwardName);
+ }
+ });
+}
+function addDummyNode(g, type, attrs, name) {
+ var v;
+ do {
+ v = uniqueId(name);
+ } while (g.hasNode(v));
+ attrs.dummy = type;
+ g.setNode(v, attrs);
+ return v;
+}
+function simplify(g) {
+ var simplified = new Graph().setGraph(g.graph());
+ forEach(g.nodes(), function(v) {
+ simplified.setNode(v, g.node(v));
+ });
+ forEach(g.edges(), function(e) {
+ var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };
+ var label = g.edge(e);
+ simplified.setEdge(e.v, e.w, {
+ weight: simpleLabel.weight + label.weight,
+ minlen: Math.max(simpleLabel.minlen, label.minlen)
+ });
+ });
+ return simplified;
+}
+function asNonCompoundGraph(g) {
+ var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());
+ forEach(g.nodes(), function(v) {
+ if (!g.children(v).length) {
+ simplified.setNode(v, g.node(v));
+ }
+ });
+ forEach(g.edges(), function(e) {
+ simplified.setEdge(e, g.edge(e));
+ });
+ return simplified;
+}
+function intersectRect(rect, point) {
+ var x = rect.x;
+ var y = rect.y;
+ var dx = point.x - x;
+ var dy = point.y - y;
+ var w = rect.width / 2;
+ var h = rect.height / 2;
+ if (!dx && !dy) {
+ throw new Error("Not possible to find intersection inside of the rectangle");
+ }
+ var sx, sy;
+ if (Math.abs(dy) * w > Math.abs(dx) * h) {
+ if (dy < 0) {
+ h = -h;
+ }
+ sx = h * dx / dy;
+ sy = h;
+ } else {
+ if (dx < 0) {
+ w = -w;
+ }
+ sx = w;
+ sy = w * dy / dx;
+ }
+ return { x: x + sx, y: y + sy };
+}
+function buildLayerMatrix(g) {
+ var layering = map(range$1(maxRank(g) + 1), function() {
+ return [];
+ });
+ forEach(g.nodes(), function(v) {
+ var node = g.node(v);
+ var rank2 = node.rank;
+ if (!isUndefined(rank2)) {
+ layering[rank2][node.order] = v;
+ }
+ });
+ return layering;
+}
+function normalizeRanks(g) {
+ var min$1 = min(
+ map(g.nodes(), function(v) {
+ return g.node(v).rank;
+ })
+ );
+ forEach(g.nodes(), function(v) {
+ var node = g.node(v);
+ if (has(node, "rank")) {
+ node.rank -= min$1;
+ }
+ });
+}
+function removeEmptyRanks(g) {
+ var offset = min(
+ map(g.nodes(), function(v) {
+ return g.node(v).rank;
+ })
+ );
+ var layers = [];
+ forEach(g.nodes(), function(v) {
+ var rank2 = g.node(v).rank - offset;
+ if (!layers[rank2]) {
+ layers[rank2] = [];
+ }
+ layers[rank2].push(v);
+ });
+ var delta = 0;
+ var nodeRankFactor = g.graph().nodeRankFactor;
+ forEach(layers, function(vs, i) {
+ if (isUndefined(vs) && i % nodeRankFactor !== 0) {
+ --delta;
+ } else if (delta) {
+ forEach(vs, function(v) {
+ g.node(v).rank += delta;
+ });
+ }
+ });
+}
+function addBorderNode$1(g, prefix, rank2, order2) {
+ var node = {
+ width: 0,
+ height: 0
+ };
+ if (arguments.length >= 4) {
+ node.rank = rank2;
+ node.order = order2;
+ }
+ return addDummyNode(g, "border", node, prefix);
+}
+function maxRank(g) {
+ return max(
+ map(g.nodes(), function(v) {
+ var rank2 = g.node(v).rank;
+ if (!isUndefined(rank2)) {
+ return rank2;
+ }
+ })
+ );
+}
+function partition(collection, fn) {
+ var result = { lhs: [], rhs: [] };
+ forEach(collection, function(value) {
+ if (fn(value)) {
+ result.lhs.push(value);
+ } else {
+ result.rhs.push(value);
+ }
+ });
+ return result;
+}
+function time(name, fn) {
+ var start = now$1();
+ try {
+ return fn();
+ } finally {
+ console.log(name + " time: " + (now$1() - start) + "ms");
+ }
+}
+function notime(name, fn) {
+ return fn();
+}
+function addBorderSegments(g) {
+ function dfs2(v) {
+ var children = g.children(v);
+ var node = g.node(v);
+ if (children.length) {
+ forEach(children, dfs2);
+ }
+ if (has(node, "minRank")) {
+ node.borderLeft = [];
+ node.borderRight = [];
+ for (var rank2 = node.minRank, maxRank2 = node.maxRank + 1; rank2 < maxRank2; ++rank2) {
+ addBorderNode(g, "borderLeft", "_bl", v, node, rank2);
+ addBorderNode(g, "borderRight", "_br", v, node, rank2);
+ }
+ }
+ }
+ forEach(g.children(), dfs2);
+}
+function addBorderNode(g, prop, prefix, sg, sgNode, rank2) {
+ var label = { width: 0, height: 0, rank: rank2, borderType: prop };
+ var prev = sgNode[prop][rank2 - 1];
+ var curr = addDummyNode(g, "border", label, prefix);
+ sgNode[prop][rank2] = curr;
+ g.setParent(curr, sg);
+ if (prev) {
+ g.setEdge(prev, curr, { weight: 1 });
+ }
+}
+function adjust(g) {
+ var rankDir = g.graph().rankdir.toLowerCase();
+ if (rankDir === "lr" || rankDir === "rl") {
+ swapWidthHeight(g);
+ }
+}
+function undo$1(g) {
+ var rankDir = g.graph().rankdir.toLowerCase();
+ if (rankDir === "bt" || rankDir === "rl") {
+ reverseY(g);
+ }
+ if (rankDir === "lr" || rankDir === "rl") {
+ swapXY(g);
+ swapWidthHeight(g);
+ }
+}
+function swapWidthHeight(g) {
+ forEach(g.nodes(), function(v) {
+ swapWidthHeightOne(g.node(v));
+ });
+ forEach(g.edges(), function(e) {
+ swapWidthHeightOne(g.edge(e));
+ });
+}
+function swapWidthHeightOne(attrs) {
+ var w = attrs.width;
+ attrs.width = attrs.height;
+ attrs.height = w;
+}
+function reverseY(g) {
+ forEach(g.nodes(), function(v) {
+ reverseYOne(g.node(v));
+ });
+ forEach(g.edges(), function(e) {
+ var edge = g.edge(e);
+ forEach(edge.points, reverseYOne);
+ if (has(edge, "y")) {
+ reverseYOne(edge);
+ }
+ });
+}
+function reverseYOne(attrs) {
+ attrs.y = -attrs.y;
+}
+function swapXY(g) {
+ forEach(g.nodes(), function(v) {
+ swapXYOne(g.node(v));
+ });
+ forEach(g.edges(), function(e) {
+ var edge = g.edge(e);
+ forEach(edge.points, swapXYOne);
+ if (has(edge, "x")) {
+ swapXYOne(edge);
+ }
+ });
+}
+function swapXYOne(attrs) {
+ var x = attrs.x;
+ attrs.x = attrs.y;
+ attrs.y = x;
+}
+function run$1(g) {
+ g.graph().dummyChains = [];
+ forEach(g.edges(), function(edge) {
+ normalizeEdge(g, edge);
+ });
+}
+function normalizeEdge(g, e) {
+ var v = e.v;
+ var vRank = g.node(v).rank;
+ var w = e.w;
+ var wRank = g.node(w).rank;
+ var name = e.name;
+ var edgeLabel = g.edge(e);
+ var labelRank = edgeLabel.labelRank;
+ if (wRank === vRank + 1)
+ return;
+ g.removeEdge(e);
+ var dummy, attrs, i;
+ for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {
+ edgeLabel.points = [];
+ attrs = {
+ width: 0,
+ height: 0,
+ edgeLabel,
+ edgeObj: e,
+ rank: vRank
+ };
+ dummy = addDummyNode(g, "edge", attrs, "_d");
+ if (vRank === labelRank) {
+ attrs.width = edgeLabel.width;
+ attrs.height = edgeLabel.height;
+ attrs.dummy = "edge-label";
+ attrs.labelpos = edgeLabel.labelpos;
+ }
+ g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);
+ if (i === 0) {
+ g.graph().dummyChains.push(dummy);
+ }
+ v = dummy;
+ }
+ g.setEdge(v, w, { weight: edgeLabel.weight }, name);
+}
+function undo(g) {
+ forEach(g.graph().dummyChains, function(v) {
+ var node = g.node(v);
+ var origLabel = node.edgeLabel;
+ var w;
+ g.setEdge(node.edgeObj, origLabel);
+ while (node.dummy) {
+ w = g.successors(v)[0];
+ g.removeNode(v);
+ origLabel.points.push({ x: node.x, y: node.y });
+ if (node.dummy === "edge-label") {
+ origLabel.x = node.x;
+ origLabel.y = node.y;
+ origLabel.width = node.width;
+ origLabel.height = node.height;
+ }
+ v = w;
+ node = g.node(v);
+ }
+ });
+}
+function longestPath(g) {
+ var visited = {};
+ function dfs2(v) {
+ var label = g.node(v);
+ if (has(visited, v)) {
+ return label.rank;
+ }
+ visited[v] = true;
+ var rank2 = min(
+ map(g.outEdges(v), function(e) {
+ return dfs2(e.w) - g.edge(e).minlen;
+ })
+ );
+ if (rank2 === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3
+ rank2 === void 0 || // return value of _.map([]) for Lodash 4
+ rank2 === null) {
+ rank2 = 0;
+ }
+ return label.rank = rank2;
+ }
+ forEach(g.sources(), dfs2);
+}
+function slack(g, e) {
+ return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;
+}
+function feasibleTree(g) {
+ var t = new Graph({ directed: false });
+ var start = g.nodes()[0];
+ var size = g.nodeCount();
+ t.setNode(start, {});
+ var edge, delta;
+ while (tightTree(t, g) < size) {
+ edge = findMinSlackEdge(t, g);
+ delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);
+ shiftRanks(t, g, delta);
+ }
+ return t;
+}
+function tightTree(t, g) {
+ function dfs2(v) {
+ forEach(g.nodeEdges(v), function(e) {
+ var edgeV = e.v, w = v === edgeV ? e.w : edgeV;
+ if (!t.hasNode(w) && !slack(g, e)) {
+ t.setNode(w, {});
+ t.setEdge(v, w, {});
+ dfs2(w);
+ }
+ });
+ }
+ forEach(t.nodes(), dfs2);
+ return t.nodeCount();
+}
+function findMinSlackEdge(t, g) {
+ return minBy(g.edges(), function(e) {
+ if (t.hasNode(e.v) !== t.hasNode(e.w)) {
+ return slack(g, e);
+ }
+ });
+}
+function shiftRanks(t, g, delta) {
+ forEach(t.nodes(), function(v) {
+ g.node(v).rank += delta;
+ });
+}
+function CycleException() {
+}
+CycleException.prototype = new Error();
+function dfs$1(g, vs, order2) {
+ if (!isArray(vs)) {
+ vs = [vs];
+ }
+ var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);
+ var acc = [];
+ var visited = {};
+ forEach(vs, function(v) {
+ if (!g.hasNode(v)) {
+ throw new Error("Graph does not have node: " + v);
+ }
+ doDfs(g, v, order2 === "post", visited, navigation, acc);
+ });
+ return acc;
+}
+function doDfs(g, v, postorder2, visited, navigation, acc) {
+ if (!has(visited, v)) {
+ visited[v] = true;
+ if (!postorder2) {
+ acc.push(v);
+ }
+ forEach(navigation(v), function(w) {
+ doDfs(g, w, postorder2, visited, navigation, acc);
+ });
+ if (postorder2) {
+ acc.push(v);
+ }
+ }
+}
+function postorder$1(g, vs) {
+ return dfs$1(g, vs, "post");
+}
+function preorder(g, vs) {
+ return dfs$1(g, vs, "pre");
+}
+networkSimplex.initLowLimValues = initLowLimValues;
+networkSimplex.initCutValues = initCutValues;
+networkSimplex.calcCutValue = calcCutValue;
+networkSimplex.leaveEdge = leaveEdge;
+networkSimplex.enterEdge = enterEdge;
+networkSimplex.exchangeEdges = exchangeEdges;
+function networkSimplex(g) {
+ g = simplify(g);
+ longestPath(g);
+ var t = feasibleTree(g);
+ initLowLimValues(t);
+ initCutValues(t, g);
+ var e, f;
+ while (e = leaveEdge(t)) {
+ f = enterEdge(t, g, e);
+ exchangeEdges(t, g, e, f);
+ }
+}
+function initCutValues(t, g) {
+ var vs = postorder$1(t, t.nodes());
+ vs = vs.slice(0, vs.length - 1);
+ forEach(vs, function(v) {
+ assignCutValue(t, g, v);
+ });
+}
+function assignCutValue(t, g, child) {
+ var childLab = t.node(child);
+ var parent = childLab.parent;
+ t.edge(child, parent).cutvalue = calcCutValue(t, g, child);
+}
+function calcCutValue(t, g, child) {
+ var childLab = t.node(child);
+ var parent = childLab.parent;
+ var childIsTail = true;
+ var graphEdge = g.edge(child, parent);
+ var cutValue = 0;
+ if (!graphEdge) {
+ childIsTail = false;
+ graphEdge = g.edge(parent, child);
+ }
+ cutValue = graphEdge.weight;
+ forEach(g.nodeEdges(child), function(e) {
+ var isOutEdge = e.v === child, other = isOutEdge ? e.w : e.v;
+ if (other !== parent) {
+ var pointsToHead = isOutEdge === childIsTail, otherWeight = g.edge(e).weight;
+ cutValue += pointsToHead ? otherWeight : -otherWeight;
+ if (isTreeEdge(t, child, other)) {
+ var otherCutValue = t.edge(child, other).cutvalue;
+ cutValue += pointsToHead ? -otherCutValue : otherCutValue;
+ }
+ }
+ });
+ return cutValue;
+}
+function initLowLimValues(tree, root2) {
+ if (arguments.length < 2) {
+ root2 = tree.nodes()[0];
+ }
+ dfsAssignLowLim(tree, {}, 1, root2);
+}
+function dfsAssignLowLim(tree, visited, nextLim, v, parent) {
+ var low = nextLim;
+ var label = tree.node(v);
+ visited[v] = true;
+ forEach(tree.neighbors(v), function(w) {
+ if (!has(visited, w)) {
+ nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);
+ }
+ });
+ label.low = low;
+ label.lim = nextLim++;
+ if (parent) {
+ label.parent = parent;
+ } else {
+ delete label.parent;
+ }
+ return nextLim;
+}
+function leaveEdge(tree) {
+ return find$1(tree.edges(), function(e) {
+ return tree.edge(e).cutvalue < 0;
+ });
+}
+function enterEdge(t, g, edge) {
+ var v = edge.v;
+ var w = edge.w;
+ if (!g.hasEdge(v, w)) {
+ v = edge.w;
+ w = edge.v;
+ }
+ var vLabel = t.node(v);
+ var wLabel = t.node(w);
+ var tailLabel = vLabel;
+ var flip = false;
+ if (vLabel.lim > wLabel.lim) {
+ tailLabel = wLabel;
+ flip = true;
+ }
+ var candidates = filter(g.edges(), function(edge2) {
+ return flip === isDescendant(t, t.node(edge2.v), tailLabel) && flip !== isDescendant(t, t.node(edge2.w), tailLabel);
+ });
+ return minBy(candidates, function(edge2) {
+ return slack(g, edge2);
+ });
+}
+function exchangeEdges(t, g, e, f) {
+ var v = e.v;
+ var w = e.w;
+ t.removeEdge(v, w);
+ t.setEdge(f.v, f.w, {});
+ initLowLimValues(t);
+ initCutValues(t, g);
+ updateRanks(t, g);
+}
+function updateRanks(t, g) {
+ var root2 = find$1(t.nodes(), function(v) {
+ return !g.node(v).parent;
+ });
+ var vs = preorder(t, root2);
+ vs = vs.slice(1);
+ forEach(vs, function(v) {
+ var parent = t.node(v).parent, edge = g.edge(v, parent), flipped = false;
+ if (!edge) {
+ edge = g.edge(parent, v);
+ flipped = true;
+ }
+ g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);
+ });
+}
+function isTreeEdge(tree, u, v) {
+ return tree.hasEdge(u, v);
+}
+function isDescendant(tree, vLabel, rootLabel) {
+ return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;
+}
+function rank(g) {
+ switch (g.graph().ranker) {
+ case "network-simplex":
+ networkSimplexRanker(g);
+ break;
+ case "tight-tree":
+ tightTreeRanker(g);
+ break;
+ case "longest-path":
+ longestPathRanker(g);
+ break;
+ default:
+ networkSimplexRanker(g);
+ }
+}
+var longestPathRanker = longestPath;
+function tightTreeRanker(g) {
+ longestPath(g);
+ feasibleTree(g);
+}
+function networkSimplexRanker(g) {
+ networkSimplex(g);
+}
+function run(g) {
+ var root2 = addDummyNode(g, "root", {}, "_root");
+ var depths = treeDepths(g);
+ var height = max(values(depths)) - 1;
+ var nodeSep = 2 * height + 1;
+ g.graph().nestingRoot = root2;
+ forEach(g.edges(), function(e) {
+ g.edge(e).minlen *= nodeSep;
+ });
+ var weight = sumWeights(g) + 1;
+ forEach(g.children(), function(child) {
+ dfs(g, root2, nodeSep, weight, height, depths, child);
+ });
+ g.graph().nodeRankFactor = nodeSep;
+}
+function dfs(g, root2, nodeSep, weight, height, depths, v) {
+ var children = g.children(v);
+ if (!children.length) {
+ if (v !== root2) {
+ g.setEdge(root2, v, { weight: 0, minlen: nodeSep });
+ }
+ return;
+ }
+ var top = addBorderNode$1(g, "_bt");
+ var bottom = addBorderNode$1(g, "_bb");
+ var label = g.node(v);
+ g.setParent(top, v);
+ label.borderTop = top;
+ g.setParent(bottom, v);
+ label.borderBottom = bottom;
+ forEach(children, function(child) {
+ dfs(g, root2, nodeSep, weight, height, depths, child);
+ var childNode = g.node(child);
+ var childTop = childNode.borderTop ? childNode.borderTop : child;
+ var childBottom = childNode.borderBottom ? childNode.borderBottom : child;
+ var thisWeight = childNode.borderTop ? weight : 2 * weight;
+ var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;
+ g.setEdge(top, childTop, {
+ weight: thisWeight,
+ minlen,
+ nestingEdge: true
+ });
+ g.setEdge(childBottom, bottom, {
+ weight: thisWeight,
+ minlen,
+ nestingEdge: true
+ });
+ });
+ if (!g.parent(v)) {
+ g.setEdge(root2, top, { weight: 0, minlen: height + depths[v] });
+ }
+}
+function treeDepths(g) {
+ var depths = {};
+ function dfs2(v, depth) {
+ var children = g.children(v);
+ if (children && children.length) {
+ forEach(children, function(child) {
+ dfs2(child, depth + 1);
+ });
+ }
+ depths[v] = depth;
+ }
+ forEach(g.children(), function(v) {
+ dfs2(v, 1);
+ });
+ return depths;
+}
+function sumWeights(g) {
+ return reduce(
+ g.edges(),
+ function(acc, e) {
+ return acc + g.edge(e).weight;
+ },
+ 0
+ );
+}
+function cleanup(g) {
+ var graphLabel = g.graph();
+ g.removeNode(graphLabel.nestingRoot);
+ delete graphLabel.nestingRoot;
+ forEach(g.edges(), function(e) {
+ var edge = g.edge(e);
+ if (edge.nestingEdge) {
+ g.removeEdge(e);
+ }
+ });
+}
+function addSubgraphConstraints(g, cg, vs) {
+ var prev = {}, rootPrev;
+ forEach(vs, function(v) {
+ var child = g.parent(v), parent, prevChild;
+ while (child) {
+ parent = g.parent(child);
+ if (parent) {
+ prevChild = prev[parent];
+ prev[parent] = child;
+ } else {
+ prevChild = rootPrev;
+ rootPrev = child;
+ }
+ if (prevChild && prevChild !== child) {
+ cg.setEdge(prevChild, child);
+ return;
+ }
+ child = parent;
+ }
+ });
+}
+function buildLayerGraph(g, rank2, relationship) {
+ var root2 = createRootNode(g), result = new Graph({ compound: true }).setGraph({ root: root2 }).setDefaultNodeLabel(function(v) {
+ return g.node(v);
+ });
+ forEach(g.nodes(), function(v) {
+ var node = g.node(v), parent = g.parent(v);
+ if (node.rank === rank2 || node.minRank <= rank2 && rank2 <= node.maxRank) {
+ result.setNode(v);
+ result.setParent(v, parent || root2);
+ forEach(g[relationship](v), function(e) {
+ var u = e.v === v ? e.w : e.v, edge = result.edge(u, v), weight = !isUndefined(edge) ? edge.weight : 0;
+ result.setEdge(u, v, { weight: g.edge(e).weight + weight });
+ });
+ if (has(node, "minRank")) {
+ result.setNode(v, {
+ borderLeft: node.borderLeft[rank2],
+ borderRight: node.borderRight[rank2]
+ });
+ }
+ }
+ });
+ return result;
+}
+function createRootNode(g) {
+ var v;
+ while (g.hasNode(v = uniqueId("_root")))
+ ;
+ return v;
+}
+function crossCount(g, layering) {
+ var cc = 0;
+ for (var i = 1; i < layering.length; ++i) {
+ cc += twoLayerCrossCount(g, layering[i - 1], layering[i]);
+ }
+ return cc;
+}
+function twoLayerCrossCount(g, northLayer, southLayer) {
+ var southPos = zipObject(
+ southLayer,
+ map(southLayer, function(v, i) {
+ return i;
+ })
+ );
+ var southEntries = flatten(
+ map(northLayer, function(v) {
+ return sortBy$1(
+ map(g.outEdges(v), function(e) {
+ return { pos: southPos[e.w], weight: g.edge(e).weight };
+ }),
+ "pos"
+ );
+ })
+ );
+ var firstIndex = 1;
+ while (firstIndex < southLayer.length)
+ firstIndex <<= 1;
+ var treeSize = 2 * firstIndex - 1;
+ firstIndex -= 1;
+ var tree = map(new Array(treeSize), function() {
+ return 0;
+ });
+ var cc = 0;
+ forEach(
+ // @ts-expect-error
+ southEntries.forEach(function(entry) {
+ var index = entry.pos + firstIndex;
+ tree[index] += entry.weight;
+ var weightSum = 0;
+ while (index > 0) {
+ if (index % 2) {
+ weightSum += tree[index + 1];
+ }
+ index = index - 1 >> 1;
+ tree[index] += entry.weight;
+ }
+ cc += entry.weight * weightSum;
+ })
+ );
+ return cc;
+}
+function initOrder(g) {
+ var visited = {};
+ var simpleNodes = filter(g.nodes(), function(v) {
+ return !g.children(v).length;
+ });
+ var maxRank2 = max(
+ map(simpleNodes, function(v) {
+ return g.node(v).rank;
+ })
+ );
+ var layers = map(range$1(maxRank2 + 1), function() {
+ return [];
+ });
+ function dfs2(v) {
+ if (has(visited, v))
+ return;
+ visited[v] = true;
+ var node = g.node(v);
+ layers[node.rank].push(v);
+ forEach(g.successors(v), dfs2);
+ }
+ var orderedVs = sortBy$1(simpleNodes, function(v) {
+ return g.node(v).rank;
+ });
+ forEach(orderedVs, dfs2);
+ return layers;
+}
+function barycenter(g, movable) {
+ return map(movable, function(v) {
+ var inV = g.inEdges(v);
+ if (!inV.length) {
+ return { v };
+ } else {
+ var result = reduce(
+ inV,
+ function(acc, e) {
+ var edge = g.edge(e), nodeU = g.node(e.v);
+ return {
+ sum: acc.sum + edge.weight * nodeU.order,
+ weight: acc.weight + edge.weight
+ };
+ },
+ { sum: 0, weight: 0 }
+ );
+ return {
+ v,
+ barycenter: result.sum / result.weight,
+ weight: result.weight
+ };
+ }
+ });
+}
+function resolveConflicts(entries, cg) {
+ var mappedEntries = {};
+ forEach(entries, function(entry, i) {
+ var tmp = mappedEntries[entry.v] = {
+ indegree: 0,
+ in: [],
+ out: [],
+ vs: [entry.v],
+ i
+ };
+ if (!isUndefined(entry.barycenter)) {
+ tmp.barycenter = entry.barycenter;
+ tmp.weight = entry.weight;
+ }
+ });
+ forEach(cg.edges(), function(e) {
+ var entryV = mappedEntries[e.v];
+ var entryW = mappedEntries[e.w];
+ if (!isUndefined(entryV) && !isUndefined(entryW)) {
+ entryW.indegree++;
+ entryV.out.push(mappedEntries[e.w]);
+ }
+ });
+ var sourceSet = filter(mappedEntries, function(entry) {
+ return !entry.indegree;
+ });
+ return doResolveConflicts(sourceSet);
+}
+function doResolveConflicts(sourceSet) {
+ var entries = [];
+ function handleIn(vEntry) {
+ return function(uEntry) {
+ if (uEntry.merged) {
+ return;
+ }
+ if (isUndefined(uEntry.barycenter) || isUndefined(vEntry.barycenter) || uEntry.barycenter >= vEntry.barycenter) {
+ mergeEntries(vEntry, uEntry);
+ }
+ };
+ }
+ function handleOut(vEntry) {
+ return function(wEntry) {
+ wEntry["in"].push(vEntry);
+ if (--wEntry.indegree === 0) {
+ sourceSet.push(wEntry);
+ }
+ };
+ }
+ while (sourceSet.length) {
+ var entry = sourceSet.pop();
+ entries.push(entry);
+ forEach(entry["in"].reverse(), handleIn(entry));
+ forEach(entry.out, handleOut(entry));
+ }
+ return map(
+ filter(entries, function(entry2) {
+ return !entry2.merged;
+ }),
+ function(entry2) {
+ return pick$1(entry2, ["vs", "i", "barycenter", "weight"]);
+ }
+ );
+}
+function mergeEntries(target, source) {
+ var sum = 0;
+ var weight = 0;
+ if (target.weight) {
+ sum += target.barycenter * target.weight;
+ weight += target.weight;
+ }
+ if (source.weight) {
+ sum += source.barycenter * source.weight;
+ weight += source.weight;
+ }
+ target.vs = source.vs.concat(target.vs);
+ target.barycenter = sum / weight;
+ target.weight = weight;
+ target.i = Math.min(source.i, target.i);
+ source.merged = true;
+}
+function sort(entries, biasRight) {
+ var parts = partition(entries, function(entry) {
+ return has(entry, "barycenter");
+ });
+ var sortable = parts.lhs, unsortable = sortBy$1(parts.rhs, function(entry) {
+ return -entry.i;
+ }), vs = [], sum = 0, weight = 0, vsIndex = 0;
+ sortable.sort(compareWithBias(!!biasRight));
+ vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
+ forEach(sortable, function(entry) {
+ vsIndex += entry.vs.length;
+ vs.push(entry.vs);
+ sum += entry.barycenter * entry.weight;
+ weight += entry.weight;
+ vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
+ });
+ var result = { vs: flatten(vs) };
+ if (weight) {
+ result.barycenter = sum / weight;
+ result.weight = weight;
+ }
+ return result;
+}
+function consumeUnsortable(vs, unsortable, index) {
+ var last$1;
+ while (unsortable.length && (last$1 = last(unsortable)).i <= index) {
+ unsortable.pop();
+ vs.push(last$1.vs);
+ index++;
+ }
+ return index;
+}
+function compareWithBias(bias) {
+ return function(entryV, entryW) {
+ if (entryV.barycenter < entryW.barycenter) {
+ return -1;
+ } else if (entryV.barycenter > entryW.barycenter) {
+ return 1;
+ }
+ return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;
+ };
+}
+function sortSubgraph(g, v, cg, biasRight) {
+ var movable = g.children(v);
+ var node = g.node(v);
+ var bl = node ? node.borderLeft : void 0;
+ var br = node ? node.borderRight : void 0;
+ var subgraphs = {};
+ if (bl) {
+ movable = filter(movable, function(w) {
+ return w !== bl && w !== br;
+ });
+ }
+ var barycenters = barycenter(g, movable);
+ forEach(barycenters, function(entry) {
+ if (g.children(entry.v).length) {
+ var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);
+ subgraphs[entry.v] = subgraphResult;
+ if (has(subgraphResult, "barycenter")) {
+ mergeBarycenters(entry, subgraphResult);
+ }
+ }
+ });
+ var entries = resolveConflicts(barycenters, cg);
+ expandSubgraphs(entries, subgraphs);
+ var result = sort(entries, biasRight);
+ if (bl) {
+ result.vs = flatten([bl, result.vs, br]);
+ if (g.predecessors(bl).length) {
+ var blPred = g.node(g.predecessors(bl)[0]), brPred = g.node(g.predecessors(br)[0]);
+ if (!has(result, "barycenter")) {
+ result.barycenter = 0;
+ result.weight = 0;
+ }
+ result.barycenter = (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2);
+ result.weight += 2;
+ }
+ }
+ return result;
+}
+function expandSubgraphs(entries, subgraphs) {
+ forEach(entries, function(entry) {
+ entry.vs = flatten(
+ entry.vs.map(function(v) {
+ if (subgraphs[v]) {
+ return subgraphs[v].vs;
+ }
+ return v;
+ })
+ );
+ });
+}
+function mergeBarycenters(target, other) {
+ if (!isUndefined(target.barycenter)) {
+ target.barycenter = (target.barycenter * target.weight + other.barycenter * other.weight) / (target.weight + other.weight);
+ target.weight += other.weight;
+ } else {
+ target.barycenter = other.barycenter;
+ target.weight = other.weight;
+ }
+}
+function order(g) {
+ var maxRank$1 = maxRank(g), downLayerGraphs = buildLayerGraphs(g, range$1(1, maxRank$1 + 1), "inEdges"), upLayerGraphs = buildLayerGraphs(g, range$1(maxRank$1 - 1, -1, -1), "outEdges");
+ var layering = initOrder(g);
+ assignOrder(g, layering);
+ var bestCC = Number.POSITIVE_INFINITY, best;
+ for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {
+ sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);
+ layering = buildLayerMatrix(g);
+ var cc = crossCount(g, layering);
+ if (cc < bestCC) {
+ lastBest = 0;
+ best = cloneDeep(layering);
+ bestCC = cc;
+ }
+ }
+ assignOrder(g, best);
+}
+function buildLayerGraphs(g, ranks, relationship) {
+ return map(ranks, function(rank2) {
+ return buildLayerGraph(g, rank2, relationship);
+ });
+}
+function sweepLayerGraphs(layerGraphs, biasRight) {
+ var cg = new Graph();
+ forEach(layerGraphs, function(lg) {
+ var root2 = lg.graph().root;
+ var sorted = sortSubgraph(lg, root2, cg, biasRight);
+ forEach(sorted.vs, function(v, i) {
+ lg.node(v).order = i;
+ });
+ addSubgraphConstraints(lg, cg, sorted.vs);
+ });
+}
+function assignOrder(g, layering) {
+ forEach(layering, function(layer) {
+ forEach(layer, function(v, i) {
+ g.node(v).order = i;
+ });
+ });
+}
+function parentDummyChains(g) {
+ var postorderNums = postorder(g);
+ forEach(g.graph().dummyChains, function(v) {
+ var node = g.node(v);
+ var edgeObj = node.edgeObj;
+ var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);
+ var path = pathData.path;
+ var lca = pathData.lca;
+ var pathIdx = 0;
+ var pathV = path[pathIdx];
+ var ascending = true;
+ while (v !== edgeObj.w) {
+ node = g.node(v);
+ if (ascending) {
+ while ((pathV = path[pathIdx]) !== lca && g.node(pathV).maxRank < node.rank) {
+ pathIdx++;
+ }
+ if (pathV === lca) {
+ ascending = false;
+ }
+ }
+ if (!ascending) {
+ while (pathIdx < path.length - 1 && g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) {
+ pathIdx++;
+ }
+ pathV = path[pathIdx];
+ }
+ g.setParent(v, pathV);
+ v = g.successors(v)[0];
+ }
+ });
+}
+function findPath(g, postorderNums, v, w) {
+ var vPath = [];
+ var wPath = [];
+ var low = Math.min(postorderNums[v].low, postorderNums[w].low);
+ var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);
+ var parent;
+ var lca;
+ parent = v;
+ do {
+ parent = g.parent(parent);
+ vPath.push(parent);
+ } while (parent && (postorderNums[parent].low > low || lim > postorderNums[parent].lim));
+ lca = parent;
+ parent = w;
+ while ((parent = g.parent(parent)) !== lca) {
+ wPath.push(parent);
+ }
+ return { path: vPath.concat(wPath.reverse()), lca };
+}
+function postorder(g) {
+ var result = {};
+ var lim = 0;
+ function dfs2(v) {
+ var low = lim;
+ forEach(g.children(v), dfs2);
+ result[v] = { low, lim: lim++ };
+ }
+ forEach(g.children(), dfs2);
+ return result;
+}
+function findType1Conflicts(g, layering) {
+ var conflicts = {};
+ function visitLayer(prevLayer, layer) {
+ var k0 = 0, scanPos = 0, prevLayerLength = prevLayer.length, lastNode = last(layer);
+ forEach(layer, function(v, i) {
+ var w = findOtherInnerSegmentNode(g, v), k1 = w ? g.node(w).order : prevLayerLength;
+ if (w || v === lastNode) {
+ forEach(layer.slice(scanPos, i + 1), function(scanNode) {
+ forEach(g.predecessors(scanNode), function(u) {
+ var uLabel = g.node(u), uPos = uLabel.order;
+ if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g.node(scanNode).dummy)) {
+ addConflict(conflicts, u, scanNode);
+ }
+ });
+ });
+ scanPos = i + 1;
+ k0 = k1;
+ }
+ });
+ return layer;
+ }
+ reduce(layering, visitLayer);
+ return conflicts;
+}
+function findType2Conflicts(g, layering) {
+ var conflicts = {};
+ function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {
+ var v;
+ forEach(range$1(southPos, southEnd), function(i) {
+ v = south[i];
+ if (g.node(v).dummy) {
+ forEach(g.predecessors(v), function(u) {
+ var uNode = g.node(u);
+ if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {
+ addConflict(conflicts, u, v);
+ }
+ });
+ }
+ });
+ }
+ function visitLayer(north, south) {
+ var prevNorthPos = -1, nextNorthPos, southPos = 0;
+ forEach(south, function(v, southLookahead) {
+ if (g.node(v).dummy === "border") {
+ var predecessors = g.predecessors(v);
+ if (predecessors.length) {
+ nextNorthPos = g.node(predecessors[0]).order;
+ scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);
+ southPos = southLookahead;
+ prevNorthPos = nextNorthPos;
+ }
+ }
+ scan(south, southPos, south.length, nextNorthPos, north.length);
+ });
+ return south;
+ }
+ reduce(layering, visitLayer);
+ return conflicts;
+}
+function findOtherInnerSegmentNode(g, v) {
+ if (g.node(v).dummy) {
+ return find$1(g.predecessors(v), function(u) {
+ return g.node(u).dummy;
+ });
+ }
+}
+function addConflict(conflicts, v, w) {
+ if (v > w) {
+ var tmp = v;
+ v = w;
+ w = tmp;
+ }
+ var conflictsV = conflicts[v];
+ if (!conflictsV) {
+ conflicts[v] = conflictsV = {};
+ }
+ conflictsV[w] = true;
+}
+function hasConflict(conflicts, v, w) {
+ if (v > w) {
+ var tmp = v;
+ v = w;
+ w = tmp;
+ }
+ return has(conflicts[v], w);
+}
+function verticalAlignment(g, layering, conflicts, neighborFn) {
+ var root2 = {}, align = {}, pos = {};
+ forEach(layering, function(layer) {
+ forEach(layer, function(v, order2) {
+ root2[v] = v;
+ align[v] = v;
+ pos[v] = order2;
+ });
+ });
+ forEach(layering, function(layer) {
+ var prevIdx = -1;
+ forEach(layer, function(v) {
+ var ws = neighborFn(v);
+ if (ws.length) {
+ ws = sortBy$1(ws, function(w2) {
+ return pos[w2];
+ });
+ var mp = (ws.length - 1) / 2;
+ for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {
+ var w = ws[i];
+ if (align[v] === v && prevIdx < pos[w] && !hasConflict(conflicts, v, w)) {
+ align[w] = v;
+ align[v] = root2[v] = root2[w];
+ prevIdx = pos[w];
+ }
+ }
+ }
+ });
+ });
+ return { root: root2, align };
+}
+function horizontalCompaction(g, layering, root2, align, reverseSep) {
+ var xs = {}, blockG = buildBlockGraph(g, layering, root2, reverseSep), borderType = reverseSep ? "borderLeft" : "borderRight";
+ function iterate(setXsFunc, nextNodesFunc) {
+ var stack = blockG.nodes();
+ var elem = stack.pop();
+ var visited = {};
+ while (elem) {
+ if (visited[elem]) {
+ setXsFunc(elem);
+ } else {
+ visited[elem] = true;
+ stack.push(elem);
+ stack = stack.concat(nextNodesFunc(elem));
+ }
+ elem = stack.pop();
+ }
+ }
+ function pass1(elem) {
+ xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) {
+ return Math.max(acc, xs[e.v] + blockG.edge(e));
+ }, 0);
+ }
+ function pass2(elem) {
+ var min2 = blockG.outEdges(elem).reduce(function(acc, e) {
+ return Math.min(acc, xs[e.w] - blockG.edge(e));
+ }, Number.POSITIVE_INFINITY);
+ var node = g.node(elem);
+ if (min2 !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {
+ xs[elem] = Math.max(xs[elem], min2);
+ }
+ }
+ iterate(pass1, blockG.predecessors.bind(blockG));
+ iterate(pass2, blockG.successors.bind(blockG));
+ forEach(align, function(v) {
+ xs[v] = xs[root2[v]];
+ });
+ return xs;
+}
+function buildBlockGraph(g, layering, root2, reverseSep) {
+ var blockGraph = new Graph(), graphLabel = g.graph(), sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);
+ forEach(layering, function(layer) {
+ var u;
+ forEach(layer, function(v) {
+ var vRoot = root2[v];
+ blockGraph.setNode(vRoot);
+ if (u) {
+ var uRoot = root2[u], prevMax = blockGraph.edge(uRoot, vRoot);
+ blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));
+ }
+ u = v;
+ });
+ });
+ return blockGraph;
+}
+function findSmallestWidthAlignment(g, xss) {
+ return minBy(values(xss), function(xs) {
+ var max2 = Number.NEGATIVE_INFINITY;
+ var min2 = Number.POSITIVE_INFINITY;
+ forIn(xs, function(x, v) {
+ var halfWidth = width(g, v) / 2;
+ max2 = Math.max(x + halfWidth, max2);
+ min2 = Math.min(x - halfWidth, min2);
+ });
+ return max2 - min2;
+ });
+}
+function alignCoordinates(xss, alignTo) {
+ var alignToVals = values(alignTo), alignToMin = min(alignToVals), alignToMax = max(alignToVals);
+ forEach(["u", "d"], function(vert) {
+ forEach(["l", "r"], function(horiz) {
+ var alignment = vert + horiz, xs = xss[alignment], delta;
+ if (xs === alignTo)
+ return;
+ var xsVals = values(xs);
+ delta = horiz === "l" ? alignToMin - min(xsVals) : alignToMax - max(xsVals);
+ if (delta) {
+ xss[alignment] = mapValues(xs, function(x) {
+ return x + delta;
+ });
+ }
+ });
+ });
+}
+function balance(xss, align) {
+ return mapValues(xss.ul, function(ignore, v) {
+ if (align) {
+ return xss[align.toLowerCase()][v];
+ } else {
+ var xs = sortBy$1(map(xss, v));
+ return (xs[1] + xs[2]) / 2;
+ }
+ });
+}
+function positionX(g) {
+ var layering = buildLayerMatrix(g);
+ var conflicts = merge$1(findType1Conflicts(g, layering), findType2Conflicts(g, layering));
+ var xss = {};
+ var adjustedLayering;
+ forEach(["u", "d"], function(vert) {
+ adjustedLayering = vert === "u" ? layering : values(layering).reverse();
+ forEach(["l", "r"], function(horiz) {
+ if (horiz === "r") {
+ adjustedLayering = map(adjustedLayering, function(inner) {
+ return values(inner).reverse();
+ });
+ }
+ var neighborFn = (vert === "u" ? g.predecessors : g.successors).bind(g);
+ var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);
+ var xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, horiz === "r");
+ if (horiz === "r") {
+ xs = mapValues(xs, function(x) {
+ return -x;
+ });
+ }
+ xss[vert + horiz] = xs;
+ });
+ });
+ var smallestWidth = findSmallestWidthAlignment(g, xss);
+ alignCoordinates(xss, smallestWidth);
+ return balance(xss, g.graph().align);
+}
+function sep(nodeSep, edgeSep, reverseSep) {
+ return function(g, v, w) {
+ var vLabel = g.node(v);
+ var wLabel = g.node(w);
+ var sum = 0;
+ var delta;
+ sum += vLabel.width / 2;
+ if (has(vLabel, "labelpos")) {
+ switch (vLabel.labelpos.toLowerCase()) {
+ case "l":
+ delta = -vLabel.width / 2;
+ break;
+ case "r":
+ delta = vLabel.width / 2;
+ break;
+ }
+ }
+ if (delta) {
+ sum += reverseSep ? delta : -delta;
+ }
+ delta = 0;
+ sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;
+ sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;
+ sum += wLabel.width / 2;
+ if (has(wLabel, "labelpos")) {
+ switch (wLabel.labelpos.toLowerCase()) {
+ case "l":
+ delta = wLabel.width / 2;
+ break;
+ case "r":
+ delta = -wLabel.width / 2;
+ break;
+ }
+ }
+ if (delta) {
+ sum += reverseSep ? delta : -delta;
+ }
+ delta = 0;
+ return sum;
+ };
+}
+function width(g, v) {
+ return g.node(v).width;
+}
+function position(g) {
+ g = asNonCompoundGraph(g);
+ positionY(g);
+ forOwn(positionX(g), function(x, v) {
+ g.node(v).x = x;
+ });
+}
+function positionY(g) {
+ var layering = buildLayerMatrix(g);
+ var rankSep = g.graph().ranksep;
+ var prevY = 0;
+ forEach(layering, function(layer) {
+ var maxHeight = max(
+ map(layer, function(v) {
+ return g.node(v).height;
+ })
+ );
+ forEach(layer, function(v) {
+ g.node(v).y = prevY + maxHeight / 2;
+ });
+ prevY += maxHeight + rankSep;
+ });
+}
+function layout(g, opts) {
+ var time$1 = opts && opts.debugTiming ? time : notime;
+ time$1("layout", function() {
+ var layoutGraph = time$1(" buildLayoutGraph", function() {
+ return buildLayoutGraph(g);
+ });
+ time$1(" runLayout", function() {
+ runLayout(layoutGraph, time$1);
+ });
+ time$1(" updateInputGraph", function() {
+ updateInputGraph(g, layoutGraph);
+ });
+ });
+}
+function runLayout(g, time2) {
+ time2(" makeSpaceForEdgeLabels", function() {
+ makeSpaceForEdgeLabels(g);
+ });
+ time2(" removeSelfEdges", function() {
+ removeSelfEdges(g);
+ });
+ time2(" acyclic", function() {
+ run$2(g);
+ });
+ time2(" nestingGraph.run", function() {
+ run(g);
+ });
+ time2(" rank", function() {
+ rank(asNonCompoundGraph(g));
+ });
+ time2(" injectEdgeLabelProxies", function() {
+ injectEdgeLabelProxies(g);
+ });
+ time2(" removeEmptyRanks", function() {
+ removeEmptyRanks(g);
+ });
+ time2(" nestingGraph.cleanup", function() {
+ cleanup(g);
+ });
+ time2(" normalizeRanks", function() {
+ normalizeRanks(g);
+ });
+ time2(" assignRankMinMax", function() {
+ assignRankMinMax(g);
+ });
+ time2(" removeEdgeLabelProxies", function() {
+ removeEdgeLabelProxies(g);
+ });
+ time2(" normalize.run", function() {
+ run$1(g);
+ });
+ time2(" parentDummyChains", function() {
+ parentDummyChains(g);
+ });
+ time2(" addBorderSegments", function() {
+ addBorderSegments(g);
+ });
+ time2(" order", function() {
+ order(g);
+ });
+ time2(" insertSelfEdges", function() {
+ insertSelfEdges(g);
+ });
+ time2(" adjustCoordinateSystem", function() {
+ adjust(g);
+ });
+ time2(" position", function() {
+ position(g);
+ });
+ time2(" positionSelfEdges", function() {
+ positionSelfEdges(g);
+ });
+ time2(" removeBorderNodes", function() {
+ removeBorderNodes(g);
+ });
+ time2(" normalize.undo", function() {
+ undo(g);
+ });
+ time2(" fixupEdgeLabelCoords", function() {
+ fixupEdgeLabelCoords(g);
+ });
+ time2(" undoCoordinateSystem", function() {
+ undo$1(g);
+ });
+ time2(" translateGraph", function() {
+ translateGraph(g);
+ });
+ time2(" assignNodeIntersects", function() {
+ assignNodeIntersects(g);
+ });
+ time2(" reversePoints", function() {
+ reversePointsForReversedEdges(g);
+ });
+ time2(" acyclic.undo", function() {
+ undo$2(g);
+ });
+}
+function updateInputGraph(inputGraph, layoutGraph) {
+ forEach(inputGraph.nodes(), function(v) {
+ var inputLabel = inputGraph.node(v);
+ var layoutLabel = layoutGraph.node(v);
+ if (inputLabel) {
+ inputLabel.x = layoutLabel.x;
+ inputLabel.y = layoutLabel.y;
+ if (layoutGraph.children(v).length) {
+ inputLabel.width = layoutLabel.width;
+ inputLabel.height = layoutLabel.height;
+ }
+ }
+ });
+ forEach(inputGraph.edges(), function(e) {
+ var inputLabel = inputGraph.edge(e);
+ var layoutLabel = layoutGraph.edge(e);
+ inputLabel.points = layoutLabel.points;
+ if (has(layoutLabel, "x")) {
+ inputLabel.x = layoutLabel.x;
+ inputLabel.y = layoutLabel.y;
+ }
+ });
+ inputGraph.graph().width = layoutGraph.graph().width;
+ inputGraph.graph().height = layoutGraph.graph().height;
+}
+var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"];
+var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" };
+var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"];
+var nodeNumAttrs = ["width", "height"];
+var nodeDefaults = { width: 0, height: 0 };
+var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"];
+var edgeDefaults = {
+ minlen: 1,
+ weight: 1,
+ width: 0,
+ height: 0,
+ labeloffset: 10,
+ labelpos: "r"
+};
+var edgeAttrs = ["labelpos"];
+function buildLayoutGraph(inputGraph) {
+ var g = new Graph({ multigraph: true, compound: true });
+ var graph = canonicalize(inputGraph.graph());
+ g.setGraph(
+ merge$1({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), pick$1(graph, graphAttrs))
+ );
+ forEach(inputGraph.nodes(), function(v) {
+ var node = canonicalize(inputGraph.node(v));
+ g.setNode(v, defaults$1(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));
+ g.setParent(v, inputGraph.parent(v));
+ });
+ forEach(inputGraph.edges(), function(e) {
+ var edge = canonicalize(inputGraph.edge(e));
+ g.setEdge(
+ e,
+ merge$1({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), pick$1(edge, edgeAttrs))
+ );
+ });
+ return g;
+}
+function makeSpaceForEdgeLabels(g) {
+ var graph = g.graph();
+ graph.ranksep /= 2;
+ forEach(g.edges(), function(e) {
+ var edge = g.edge(e);
+ edge.minlen *= 2;
+ if (edge.labelpos.toLowerCase() !== "c") {
+ if (graph.rankdir === "TB" || graph.rankdir === "BT") {
+ edge.width += edge.labeloffset;
+ } else {
+ edge.height += edge.labeloffset;
+ }
+ }
+ });
+}
+function injectEdgeLabelProxies(g) {
+ forEach(g.edges(), function(e) {
+ var edge = g.edge(e);
+ if (edge.width && edge.height) {
+ var v = g.node(e.v);
+ var w = g.node(e.w);
+ var label = { rank: (w.rank - v.rank) / 2 + v.rank, e };
+ addDummyNode(g, "edge-proxy", label, "_ep");
+ }
+ });
+}
+function assignRankMinMax(g) {
+ var maxRank2 = 0;
+ forEach(g.nodes(), function(v) {
+ var node = g.node(v);
+ if (node.borderTop) {
+ node.minRank = g.node(node.borderTop).rank;
+ node.maxRank = g.node(node.borderBottom).rank;
+ maxRank2 = max(maxRank2, node.maxRank);
+ }
+ });
+ g.graph().maxRank = maxRank2;
+}
+function removeEdgeLabelProxies(g) {
+ forEach(g.nodes(), function(v) {
+ var node = g.node(v);
+ if (node.dummy === "edge-proxy") {
+ g.edge(node.e).labelRank = node.rank;
+ g.removeNode(v);
+ }
+ });
+}
+function translateGraph(g) {
+ var minX = Number.POSITIVE_INFINITY;
+ var maxX = 0;
+ var minY = Number.POSITIVE_INFINITY;
+ var maxY = 0;
+ var graphLabel = g.graph();
+ var marginX = graphLabel.marginx || 0;
+ var marginY = graphLabel.marginy || 0;
+ function getExtremes(attrs) {
+ var x = attrs.x;
+ var y = attrs.y;
+ var w = attrs.width;
+ var h = attrs.height;
+ minX = Math.min(minX, x - w / 2);
+ maxX = Math.max(maxX, x + w / 2);
+ minY = Math.min(minY, y - h / 2);
+ maxY = Math.max(maxY, y + h / 2);
+ }
+ forEach(g.nodes(), function(v) {
+ getExtremes(g.node(v));
+ });
+ forEach(g.edges(), function(e) {
+ var edge = g.edge(e);
+ if (has(edge, "x")) {
+ getExtremes(edge);
+ }
+ });
+ minX -= marginX;
+ minY -= marginY;
+ forEach(g.nodes(), function(v) {
+ var node = g.node(v);
+ node.x -= minX;
+ node.y -= minY;
+ });
+ forEach(g.edges(), function(e) {
+ var edge = g.edge(e);
+ forEach(edge.points, function(p) {
+ p.x -= minX;
+ p.y -= minY;
+ });
+ if (has(edge, "x")) {
+ edge.x -= minX;
+ }
+ if (has(edge, "y")) {
+ edge.y -= minY;
+ }
+ });
+ graphLabel.width = maxX - minX + marginX;
+ graphLabel.height = maxY - minY + marginY;
+}
+function assignNodeIntersects(g) {
+ forEach(g.edges(), function(e) {
+ var edge = g.edge(e);
+ var nodeV = g.node(e.v);
+ var nodeW = g.node(e.w);
+ var p1, p2;
+ if (!edge.points) {
+ edge.points = [];
+ p1 = nodeW;
+ p2 = nodeV;
+ } else {
+ p1 = edge.points[0];
+ p2 = edge.points[edge.points.length - 1];
+ }
+ edge.points.unshift(intersectRect(nodeV, p1));
+ edge.points.push(intersectRect(nodeW, p2));
+ });
+}
+function fixupEdgeLabelCoords(g) {
+ forEach(g.edges(), function(e) {
+ var edge = g.edge(e);
+ if (has(edge, "x")) {
+ if (edge.labelpos === "l" || edge.labelpos === "r") {
+ edge.width -= edge.labeloffset;
+ }
+ switch (edge.labelpos) {
+ case "l":
+ edge.x -= edge.width / 2 + edge.labeloffset;
+ break;
+ case "r":
+ edge.x += edge.width / 2 + edge.labeloffset;
+ break;
+ }
+ }
+ });
+}
+function reversePointsForReversedEdges(g) {
+ forEach(g.edges(), function(e) {
+ var edge = g.edge(e);
+ if (edge.reversed) {
+ edge.points.reverse();
+ }
+ });
+}
+function removeBorderNodes(g) {
+ forEach(g.nodes(), function(v) {
+ if (g.children(v).length) {
+ var node = g.node(v);
+ var t = g.node(node.borderTop);
+ var b = g.node(node.borderBottom);
+ var l = g.node(last(node.borderLeft));
+ var r = g.node(last(node.borderRight));
+ node.width = Math.abs(r.x - l.x);
+ node.height = Math.abs(b.y - t.y);
+ node.x = l.x + node.width / 2;
+ node.y = t.y + node.height / 2;
+ }
+ });
+ forEach(g.nodes(), function(v) {
+ if (g.node(v).dummy === "border") {
+ g.removeNode(v);
+ }
+ });
+}
+function removeSelfEdges(g) {
+ forEach(g.edges(), function(e) {
+ if (e.v === e.w) {
+ var node = g.node(e.v);
+ if (!node.selfEdges) {
+ node.selfEdges = [];
+ }
+ node.selfEdges.push({ e, label: g.edge(e) });
+ g.removeEdge(e);
+ }
+ });
+}
+function insertSelfEdges(g) {
+ var layers = buildLayerMatrix(g);
+ forEach(layers, function(layer) {
+ var orderShift = 0;
+ forEach(layer, function(v, i) {
+ var node = g.node(v);
+ node.order = i + orderShift;
+ forEach(node.selfEdges, function(selfEdge) {
+ addDummyNode(
+ g,
+ "selfedge",
+ {
+ width: selfEdge.label.width,
+ height: selfEdge.label.height,
+ rank: node.rank,
+ order: i + ++orderShift,
+ e: selfEdge.e,
+ label: selfEdge.label
+ },
+ "_se"
+ );
+ });
+ delete node.selfEdges;
+ });
+ });
+}
+function positionSelfEdges(g) {
+ forEach(g.nodes(), function(v) {
+ var node = g.node(v);
+ if (node.dummy === "selfedge") {
+ var selfNode = g.node(node.e.v);
+ var x = selfNode.x + selfNode.width / 2;
+ var y = selfNode.y;
+ var dx = node.x - x;
+ var dy = selfNode.height / 2;
+ g.setEdge(node.e, node.label);
+ g.removeNode(v);
+ node.label.points = [
+ { x: x + 2 * dx / 3, y: y - dy },
+ { x: x + 5 * dx / 6, y: y - dy },
+ { x: x + dx, y },
+ { x: x + 5 * dx / 6, y: y + dy },
+ { x: x + 2 * dx / 3, y: y + dy }
+ ];
+ node.label.x = node.x;
+ node.label.y = node.y;
+ }
+ });
+}
+function selectNumberAttrs(obj, attrs) {
+ return mapValues(pick$1(obj, attrs), Number);
+}
+function canonicalize(attrs) {
+ var newAttrs = {};
+ forEach(attrs, function(v, k) {
+ newAttrs[k.toLowerCase()] = v;
+ });
+ return newAttrs;
+}
+export {
+ Graph as G,
+ isUndefined as a,
+ baseClone as b,
+ defaults$1 as d,
+ forEach as f,
+ has as h,
+ isPlainObject as i,
+ layout as l,
+ map as m,
+ pick$1 as p,
+ range$1 as r,
+ uniqueId as u
+};
+//# sourceMappingURL=layout-3ff13c4c.js.map
diff --git a/scopegraphs-render-docs/doc/js/layout-492ec81d.js b/scopegraphs-render-docs/doc/js/layout-492ec81d.js
new file mode 100644
index 0000000..b966019
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/layout-492ec81d.js
@@ -0,0 +1,2681 @@
+import { i as M, a as _, b as D, c as X, d as Z, e as Un, f as Fr, g as He, o as Dr, h as V, n as cn, j as Yn, k as Gr, S as Ln, l as se } from "./mermaidAPI-67f627de.js";
+import { j as ke, S as C, C as L, f as Br, D as nn, E as Ur, L as Hn, M as Yr, F as qe, h as kn, k as Mn } from "./utils-8ea37061.js";
+var Hr = "[object Symbol]";
+function R(n) {
+ return typeof n == "symbol" || M(n) && ke(n) == Hr;
+}
+function H(n, e) {
+ for (var r = -1, t = n == null ? 0 : n.length, i = Array(t); ++r < t; )
+ i[r] = e(n[r], r, n);
+ return i;
+}
+var kr = 1 / 0, fe = C ? C.prototype : void 0, de = fe ? fe.toString : void 0;
+function Ke(n) {
+ if (typeof n == "string")
+ return n;
+ if (_(n))
+ return H(n, Ke) + "";
+ if (R(n))
+ return de ? de.call(n) : "";
+ var e = n + "";
+ return e == "0" && 1 / n == -kr ? "-0" : e;
+}
+var qr = /\s/;
+function Kr(n) {
+ for (var e = n.length; e-- && qr.test(n.charAt(e)); )
+ ;
+ return e;
+}
+var Wr = /^\s+/;
+function Xr(n) {
+ return n && n.slice(0, Kr(n) + 1).replace(Wr, "");
+}
+var ce = 0 / 0, Zr = /^[-+]0x[0-9a-f]+$/i, Vr = /^0b[01]+$/i, jr = /^0o[0-7]+$/i, zr = parseInt;
+function Jr(n) {
+ if (typeof n == "number")
+ return n;
+ if (R(n))
+ return ce;
+ if (L(n)) {
+ var e = typeof n.valueOf == "function" ? n.valueOf() : n;
+ n = L(e) ? e + "" : e;
+ }
+ if (typeof n != "string")
+ return n === 0 ? n : +n;
+ n = Xr(n);
+ var r = Vr.test(n);
+ return r || jr.test(n) ? zr(n.slice(2), r ? 2 : 8) : Zr.test(n) ? ce : +n;
+}
+var le = 1 / 0, Qr = 17976931348623157e292;
+function fn(n) {
+ if (!n)
+ return n === 0 ? n : 0;
+ if (n = Jr(n), n === le || n === -le) {
+ var e = n < 0 ? -1 : 1;
+ return e * Qr;
+ }
+ return n === n ? n : 0;
+}
+function nt(n) {
+ var e = fn(n), r = e % 1;
+ return e === e ? r ? e - r : e : 0;
+}
+function G(n) {
+ return n;
+}
+var he = Object.create, et = function() {
+ function n() {
+ }
+ return function(e) {
+ if (!L(e))
+ return {};
+ if (he)
+ return he(e);
+ n.prototype = e;
+ var r = new n();
+ return n.prototype = void 0, r;
+ };
+}();
+const rt = et;
+function tt(n, e, r) {
+ switch (r.length) {
+ case 0:
+ return n.call(e);
+ case 1:
+ return n.call(e, r[0]);
+ case 2:
+ return n.call(e, r[0], r[1]);
+ case 3:
+ return n.call(e, r[0], r[1], r[2]);
+ }
+ return n.apply(e, r);
+}
+function it() {
+}
+function We(n, e) {
+ var r = -1, t = n.length;
+ for (e || (e = Array(t)); ++r < t; )
+ e[r] = n[r];
+ return e;
+}
+var at = 800, ot = 16, ut = Date.now;
+function st(n) {
+ var e = 0, r = 0;
+ return function() {
+ var t = ut(), i = ot - (t - r);
+ if (r = t, i > 0) {
+ if (++e >= at)
+ return arguments[0];
+ } else
+ e = 0;
+ return n.apply(void 0, arguments);
+ };
+}
+function Y(n) {
+ return function() {
+ return n;
+ };
+}
+var ft = function() {
+ try {
+ var n = Br(Object, "defineProperty");
+ return n({}, "", {}), n;
+ } catch {
+ }
+}();
+const ln = ft;
+var dt = ln ? function(n, e) {
+ return ln(n, "toString", {
+ configurable: !0,
+ enumerable: !1,
+ value: Y(e),
+ writable: !0
+ });
+} : G;
+const ct = dt;
+var lt = st(ct);
+const Xe = lt;
+function Ze(n, e) {
+ for (var r = -1, t = n == null ? 0 : n.length; ++r < t && e(n[r], r, n) !== !1; )
+ ;
+ return n;
+}
+function Ve(n, e, r, t) {
+ for (var i = n.length, a = r + (t ? 1 : -1); t ? a-- : ++a < i; )
+ if (e(n[a], a, n))
+ return a;
+ return -1;
+}
+function ht(n) {
+ return n !== n;
+}
+function vt(n, e, r) {
+ for (var t = r - 1, i = n.length; ++t < i; )
+ if (n[t] === e)
+ return t;
+ return -1;
+}
+function gt(n, e, r) {
+ return e === e ? vt(n, e, r) : Ve(n, ht, r);
+}
+function pt(n, e) {
+ var r = n == null ? 0 : n.length;
+ return !!r && gt(n, e, 0) > -1;
+}
+var bt = 9007199254740991, wt = /^(?:0|[1-9]\d*)$/;
+function pn(n, e) {
+ var r = typeof n;
+ return e = e ?? bt, !!e && (r == "number" || r != "symbol" && wt.test(n)) && n > -1 && n % 1 == 0 && n < e;
+}
+function bn(n, e, r) {
+ e == "__proto__" && ln ? ln(n, e, {
+ configurable: !0,
+ enumerable: !0,
+ value: r,
+ writable: !0
+ }) : n[e] = r;
+}
+var mt = Object.prototype, _t = mt.hasOwnProperty;
+function wn(n, e, r) {
+ var t = n[e];
+ (!(_t.call(n, e) && nn(t, r)) || r === void 0 && !(e in n)) && bn(n, e, r);
+}
+function en(n, e, r, t) {
+ var i = !r;
+ r || (r = {});
+ for (var a = -1, o = e.length; ++a < o; ) {
+ var u = e[a], s = t ? t(r[u], n[u], u, r, n) : void 0;
+ s === void 0 && (s = n[u]), i ? bn(r, u, s) : wn(r, u, s);
+ }
+ return r;
+}
+var ve = Math.max;
+function je(n, e, r) {
+ return e = ve(e === void 0 ? n.length - 1 : e, 0), function() {
+ for (var t = arguments, i = -1, a = ve(t.length - e, 0), o = Array(a); ++i < a; )
+ o[i] = t[e + i];
+ i = -1;
+ for (var u = Array(e + 1); ++i < e; )
+ u[i] = t[i];
+ return u[e] = r(o), tt(n, this, u);
+ };
+}
+function mn(n, e) {
+ return Xe(je(n, e, G), n + "");
+}
+function j(n, e, r) {
+ if (!L(r))
+ return !1;
+ var t = typeof e;
+ return (t == "number" ? D(r) && pn(e, r.length) : t == "string" && e in r) ? nn(r[e], n) : !1;
+}
+function Et(n) {
+ return mn(function(e, r) {
+ var t = -1, i = r.length, a = i > 1 ? r[i - 1] : void 0, o = i > 2 ? r[2] : void 0;
+ for (a = n.length > 3 && typeof a == "function" ? (i--, a) : void 0, o && j(r[0], r[1], o) && (a = i < 3 ? void 0 : a, i = 1), e = Object(e); ++t < i; ) {
+ var u = r[t];
+ u && n(e, u, t, a);
+ }
+ return e;
+ });
+}
+function yt(n, e) {
+ for (var r = -1, t = Array(n); ++r < n; )
+ t[r] = e(r);
+ return t;
+}
+var xt = Object.prototype, Tt = xt.hasOwnProperty;
+function ze(n, e) {
+ var r = _(n), t = !r && X(n), i = !r && !t && Z(n), a = !r && !t && !i && Un(n), o = r || t || i || a, u = o ? yt(n.length, String) : [], s = u.length;
+ for (var f in n)
+ (e || Tt.call(n, f)) && !(o && // Safari 9 has enumerable `arguments.length` in strict mode.
+ (f == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
+ i && (f == "offset" || f == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
+ a && (f == "buffer" || f == "byteLength" || f == "byteOffset") || // Skip index properties.
+ pn(f, s))) && u.push(f);
+ return u;
+}
+function T(n) {
+ return D(n) ? ze(n) : Fr(n);
+}
+function Ot(n) {
+ var e = [];
+ if (n != null)
+ for (var r in Object(n))
+ e.push(r);
+ return e;
+}
+var Lt = Object.prototype, At = Lt.hasOwnProperty;
+function Pt(n) {
+ if (!L(n))
+ return Ot(n);
+ var e = He(n), r = [];
+ for (var t in n)
+ t == "constructor" && (e || !At.call(n, t)) || r.push(t);
+ return r;
+}
+function B(n) {
+ return D(n) ? ze(n, !0) : Pt(n);
+}
+var Nt = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Ct = /^\w*$/;
+function qn(n, e) {
+ if (_(n))
+ return !1;
+ var r = typeof n;
+ return r == "number" || r == "symbol" || r == "boolean" || n == null || R(n) ? !0 : Ct.test(n) || !Nt.test(n) || e != null && n in Object(e);
+}
+var $t = 500;
+function It(n) {
+ var e = Ur(n, function(t) {
+ return r.size === $t && r.clear(), t;
+ }), r = e.cache;
+ return e;
+}
+var St = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, Mt = /\\(\\)?/g, Rt = It(function(n) {
+ var e = [];
+ return n.charCodeAt(0) === 46 && e.push(""), n.replace(St, function(r, t, i, a) {
+ e.push(i ? a.replace(Mt, "$1") : t || r);
+ }), e;
+});
+const Ft = Rt;
+function Je(n) {
+ return n == null ? "" : Ke(n);
+}
+function _n(n, e) {
+ return _(n) ? n : qn(n, e) ? [n] : Ft(Je(n));
+}
+var Dt = 1 / 0;
+function rn(n) {
+ if (typeof n == "string" || R(n))
+ return n;
+ var e = n + "";
+ return e == "0" && 1 / n == -Dt ? "-0" : e;
+}
+function En(n, e) {
+ e = _n(e, n);
+ for (var r = 0, t = e.length; n != null && r < t; )
+ n = n[rn(e[r++])];
+ return r && r == t ? n : void 0;
+}
+function Gt(n, e, r) {
+ var t = n == null ? void 0 : En(n, e);
+ return t === void 0 ? r : t;
+}
+function Kn(n, e) {
+ for (var r = -1, t = e.length, i = n.length; ++r < t; )
+ n[i + r] = e[r];
+ return n;
+}
+var ge = C ? C.isConcatSpreadable : void 0;
+function Bt(n) {
+ return _(n) || X(n) || !!(ge && n && n[ge]);
+}
+function yn(n, e, r, t, i) {
+ var a = -1, o = n.length;
+ for (r || (r = Bt), i || (i = []); ++a < o; ) {
+ var u = n[a];
+ e > 0 && r(u) ? e > 1 ? yn(u, e - 1, r, t, i) : Kn(i, u) : t || (i[i.length] = u);
+ }
+ return i;
+}
+function q(n) {
+ var e = n == null ? 0 : n.length;
+ return e ? yn(n, 1) : [];
+}
+function Ut(n) {
+ return Xe(je(n, void 0, q), n + "");
+}
+var Yt = Dr(Object.getPrototypeOf, Object);
+const Wn = Yt;
+var Ht = "[object Object]", kt = Function.prototype, qt = Object.prototype, Qe = kt.toString, Kt = qt.hasOwnProperty, Wt = Qe.call(Object);
+function Xt(n) {
+ if (!M(n) || ke(n) != Ht)
+ return !1;
+ var e = Wn(n);
+ if (e === null)
+ return !0;
+ var r = Kt.call(e, "constructor") && e.constructor;
+ return typeof r == "function" && r instanceof r && Qe.call(r) == Wt;
+}
+function Zt(n, e, r, t) {
+ var i = -1, a = n == null ? 0 : n.length;
+ for (t && a && (r = n[++i]); ++i < a; )
+ r = e(r, n[i], i, n);
+ return r;
+}
+function Vt() {
+ this.__data__ = new Hn(), this.size = 0;
+}
+function jt(n) {
+ var e = this.__data__, r = e.delete(n);
+ return this.size = e.size, r;
+}
+function zt(n) {
+ return this.__data__.get(n);
+}
+function Jt(n) {
+ return this.__data__.has(n);
+}
+var Qt = 200;
+function ni(n, e) {
+ var r = this.__data__;
+ if (r instanceof Hn) {
+ var t = r.__data__;
+ if (!Yr || t.length < Qt - 1)
+ return t.push([n, e]), this.size = ++r.size, this;
+ r = this.__data__ = new qe(t);
+ }
+ return r.set(n, e), this.size = r.size, this;
+}
+function O(n) {
+ var e = this.__data__ = new Hn(n);
+ this.size = e.size;
+}
+O.prototype.clear = Vt;
+O.prototype.delete = jt;
+O.prototype.get = zt;
+O.prototype.has = Jt;
+O.prototype.set = ni;
+function ei(n, e) {
+ return n && en(e, T(e), n);
+}
+function ri(n, e) {
+ return n && en(e, B(e), n);
+}
+var nr = typeof exports == "object" && exports && !exports.nodeType && exports, pe = nr && typeof module == "object" && module && !module.nodeType && module, ti = pe && pe.exports === nr, be = ti ? kn.Buffer : void 0, we = be ? be.allocUnsafe : void 0;
+function er(n, e) {
+ if (e)
+ return n.slice();
+ var r = n.length, t = we ? we(r) : new n.constructor(r);
+ return n.copy(t), t;
+}
+function rr(n, e) {
+ for (var r = -1, t = n == null ? 0 : n.length, i = 0, a = []; ++r < t; ) {
+ var o = n[r];
+ e(o, r, n) && (a[i++] = o);
+ }
+ return a;
+}
+function tr() {
+ return [];
+}
+var ii = Object.prototype, ai = ii.propertyIsEnumerable, me = Object.getOwnPropertySymbols, oi = me ? function(n) {
+ return n == null ? [] : (n = Object(n), rr(me(n), function(e) {
+ return ai.call(n, e);
+ }));
+} : tr;
+const Xn = oi;
+function ui(n, e) {
+ return en(n, Xn(n), e);
+}
+var si = Object.getOwnPropertySymbols, fi = si ? function(n) {
+ for (var e = []; n; )
+ Kn(e, Xn(n)), n = Wn(n);
+ return e;
+} : tr;
+const ir = fi;
+function di(n, e) {
+ return en(n, ir(n), e);
+}
+function ar(n, e, r) {
+ var t = e(n);
+ return _(n) ? t : Kn(t, r(n));
+}
+function Rn(n) {
+ return ar(n, T, Xn);
+}
+function ci(n) {
+ return ar(n, B, ir);
+}
+var li = Object.prototype, hi = li.hasOwnProperty;
+function vi(n) {
+ var e = n.length, r = new n.constructor(e);
+ return e && typeof n[0] == "string" && hi.call(n, "index") && (r.index = n.index, r.input = n.input), r;
+}
+var gi = kn.Uint8Array;
+const hn = gi;
+function Zn(n) {
+ var e = new n.constructor(n.byteLength);
+ return new hn(e).set(new hn(n)), e;
+}
+function pi(n, e) {
+ var r = e ? Zn(n.buffer) : n.buffer;
+ return new n.constructor(r, n.byteOffset, n.byteLength);
+}
+var bi = /\w*$/;
+function wi(n) {
+ var e = new n.constructor(n.source, bi.exec(n));
+ return e.lastIndex = n.lastIndex, e;
+}
+var _e = C ? C.prototype : void 0, Ee = _e ? _e.valueOf : void 0;
+function mi(n) {
+ return Ee ? Object(Ee.call(n)) : {};
+}
+function or(n, e) {
+ var r = e ? Zn(n.buffer) : n.buffer;
+ return new n.constructor(r, n.byteOffset, n.length);
+}
+var _i = "[object Boolean]", Ei = "[object Date]", yi = "[object Map]", xi = "[object Number]", Ti = "[object RegExp]", Oi = "[object Set]", Li = "[object String]", Ai = "[object Symbol]", Pi = "[object ArrayBuffer]", Ni = "[object DataView]", Ci = "[object Float32Array]", $i = "[object Float64Array]", Ii = "[object Int8Array]", Si = "[object Int16Array]", Mi = "[object Int32Array]", Ri = "[object Uint8Array]", Fi = "[object Uint8ClampedArray]", Di = "[object Uint16Array]", Gi = "[object Uint32Array]";
+function Bi(n, e, r) {
+ var t = n.constructor;
+ switch (e) {
+ case Pi:
+ return Zn(n);
+ case _i:
+ case Ei:
+ return new t(+n);
+ case Ni:
+ return pi(n, r);
+ case Ci:
+ case $i:
+ case Ii:
+ case Si:
+ case Mi:
+ case Ri:
+ case Fi:
+ case Di:
+ case Gi:
+ return or(n, r);
+ case yi:
+ return new t();
+ case xi:
+ case Li:
+ return new t(n);
+ case Ti:
+ return wi(n);
+ case Oi:
+ return new t();
+ case Ai:
+ return mi(n);
+ }
+}
+function ur(n) {
+ return typeof n.constructor == "function" && !He(n) ? rt(Wn(n)) : {};
+}
+var Ui = "[object Map]";
+function Yi(n) {
+ return M(n) && V(n) == Ui;
+}
+var ye = cn && cn.isMap, Hi = ye ? Yn(ye) : Yi;
+const ki = Hi;
+var qi = "[object Set]";
+function Ki(n) {
+ return M(n) && V(n) == qi;
+}
+var xe = cn && cn.isSet, Wi = xe ? Yn(xe) : Ki;
+const Xi = Wi;
+var Zi = 1, Vi = 2, ji = 4, sr = "[object Arguments]", zi = "[object Array]", Ji = "[object Boolean]", Qi = "[object Date]", na = "[object Error]", fr = "[object Function]", ea = "[object GeneratorFunction]", ra = "[object Map]", ta = "[object Number]", dr = "[object Object]", ia = "[object RegExp]", aa = "[object Set]", oa = "[object String]", ua = "[object Symbol]", sa = "[object WeakMap]", fa = "[object ArrayBuffer]", da = "[object DataView]", ca = "[object Float32Array]", la = "[object Float64Array]", ha = "[object Int8Array]", va = "[object Int16Array]", ga = "[object Int32Array]", pa = "[object Uint8Array]", ba = "[object Uint8ClampedArray]", wa = "[object Uint16Array]", ma = "[object Uint32Array]", w = {};
+w[sr] = w[zi] = w[fa] = w[da] = w[Ji] = w[Qi] = w[ca] = w[la] = w[ha] = w[va] = w[ga] = w[ra] = w[ta] = w[dr] = w[ia] = w[aa] = w[oa] = w[ua] = w[pa] = w[ba] = w[wa] = w[ma] = !0;
+w[na] = w[fr] = w[sa] = !1;
+function dn(n, e, r, t, i, a) {
+ var o, u = e & Zi, s = e & Vi, f = e & ji;
+ if (r && (o = i ? r(n, t, i, a) : r(n)), o !== void 0)
+ return o;
+ if (!L(n))
+ return n;
+ var d = _(n);
+ if (d) {
+ if (o = vi(n), !u)
+ return We(n, o);
+ } else {
+ var l = V(n), h = l == fr || l == ea;
+ if (Z(n))
+ return er(n, u);
+ if (l == dr || l == sr || h && !i) {
+ if (o = s || h ? {} : ur(n), !u)
+ return s ? di(n, ri(o, n)) : ui(n, ei(o, n));
+ } else {
+ if (!w[l])
+ return i ? n : {};
+ o = Bi(n, l, u);
+ }
+ }
+ a || (a = new O());
+ var g = a.get(n);
+ if (g)
+ return g;
+ a.set(n, o), Xi(n) ? n.forEach(function(m) {
+ o.add(dn(m, e, r, m, n, a));
+ }) : ki(n) && n.forEach(function(m, E) {
+ o.set(E, dn(m, e, r, E, n, a));
+ });
+ var v = f ? s ? ci : Rn : s ? B : T, p = d ? void 0 : v(n);
+ return Ze(p || n, function(m, E) {
+ p && (E = m, m = n[E]), wn(o, E, dn(m, e, r, E, n, a));
+ }), o;
+}
+var _a = 1, Ea = 4;
+function ya(n) {
+ return dn(n, _a | Ea);
+}
+var xa = "__lodash_hash_undefined__";
+function Ta(n) {
+ return this.__data__.set(n, xa), this;
+}
+function Oa(n) {
+ return this.__data__.has(n);
+}
+function z(n) {
+ var e = -1, r = n == null ? 0 : n.length;
+ for (this.__data__ = new qe(); ++e < r; )
+ this.add(n[e]);
+}
+z.prototype.add = z.prototype.push = Ta;
+z.prototype.has = Oa;
+function La(n, e) {
+ for (var r = -1, t = n == null ? 0 : n.length; ++r < t; )
+ if (e(n[r], r, n))
+ return !0;
+ return !1;
+}
+function cr(n, e) {
+ return n.has(e);
+}
+var Aa = 1, Pa = 2;
+function lr(n, e, r, t, i, a) {
+ var o = r & Aa, u = n.length, s = e.length;
+ if (u != s && !(o && s > u))
+ return !1;
+ var f = a.get(n), d = a.get(e);
+ if (f && d)
+ return f == e && d == n;
+ var l = -1, h = !0, g = r & Pa ? new z() : void 0;
+ for (a.set(n, e), a.set(e, n); ++l < u; ) {
+ var v = n[l], p = e[l];
+ if (t)
+ var m = o ? t(p, v, l, e, n, a) : t(v, p, l, n, e, a);
+ if (m !== void 0) {
+ if (m)
+ continue;
+ h = !1;
+ break;
+ }
+ if (g) {
+ if (!La(e, function(E, I) {
+ if (!cr(g, I) && (v === E || i(v, E, r, t, a)))
+ return g.push(I);
+ })) {
+ h = !1;
+ break;
+ }
+ } else if (!(v === p || i(v, p, r, t, a))) {
+ h = !1;
+ break;
+ }
+ }
+ return a.delete(n), a.delete(e), h;
+}
+function Na(n) {
+ var e = -1, r = Array(n.size);
+ return n.forEach(function(t, i) {
+ r[++e] = [i, t];
+ }), r;
+}
+function Vn(n) {
+ var e = -1, r = Array(n.size);
+ return n.forEach(function(t) {
+ r[++e] = t;
+ }), r;
+}
+var Ca = 1, $a = 2, Ia = "[object Boolean]", Sa = "[object Date]", Ma = "[object Error]", Ra = "[object Map]", Fa = "[object Number]", Da = "[object RegExp]", Ga = "[object Set]", Ba = "[object String]", Ua = "[object Symbol]", Ya = "[object ArrayBuffer]", Ha = "[object DataView]", Te = C ? C.prototype : void 0, An = Te ? Te.valueOf : void 0;
+function ka(n, e, r, t, i, a, o) {
+ switch (r) {
+ case Ha:
+ if (n.byteLength != e.byteLength || n.byteOffset != e.byteOffset)
+ return !1;
+ n = n.buffer, e = e.buffer;
+ case Ya:
+ return !(n.byteLength != e.byteLength || !a(new hn(n), new hn(e)));
+ case Ia:
+ case Sa:
+ case Fa:
+ return nn(+n, +e);
+ case Ma:
+ return n.name == e.name && n.message == e.message;
+ case Da:
+ case Ba:
+ return n == e + "";
+ case Ra:
+ var u = Na;
+ case Ga:
+ var s = t & Ca;
+ if (u || (u = Vn), n.size != e.size && !s)
+ return !1;
+ var f = o.get(n);
+ if (f)
+ return f == e;
+ t |= $a, o.set(n, e);
+ var d = lr(u(n), u(e), t, i, a, o);
+ return o.delete(n), d;
+ case Ua:
+ if (An)
+ return An.call(n) == An.call(e);
+ }
+ return !1;
+}
+var qa = 1, Ka = Object.prototype, Wa = Ka.hasOwnProperty;
+function Xa(n, e, r, t, i, a) {
+ var o = r & qa, u = Rn(n), s = u.length, f = Rn(e), d = f.length;
+ if (s != d && !o)
+ return !1;
+ for (var l = s; l--; ) {
+ var h = u[l];
+ if (!(o ? h in e : Wa.call(e, h)))
+ return !1;
+ }
+ var g = a.get(n), v = a.get(e);
+ if (g && v)
+ return g == e && v == n;
+ var p = !0;
+ a.set(n, e), a.set(e, n);
+ for (var m = o; ++l < s; ) {
+ h = u[l];
+ var E = n[h], I = e[h];
+ if (t)
+ var ue = o ? t(I, E, h, e, n, a) : t(E, I, h, n, e, a);
+ if (!(ue === void 0 ? E === I || i(E, I, r, t, a) : ue)) {
+ p = !1;
+ break;
+ }
+ m || (m = h == "constructor");
+ }
+ if (p && !m) {
+ var on = n.constructor, un = e.constructor;
+ on != un && "constructor" in n && "constructor" in e && !(typeof on == "function" && on instanceof on && typeof un == "function" && un instanceof un) && (p = !1);
+ }
+ return a.delete(n), a.delete(e), p;
+}
+var Za = 1, Oe = "[object Arguments]", Le = "[object Array]", sn = "[object Object]", Va = Object.prototype, Ae = Va.hasOwnProperty;
+function ja(n, e, r, t, i, a) {
+ var o = _(n), u = _(e), s = o ? Le : V(n), f = u ? Le : V(e);
+ s = s == Oe ? sn : s, f = f == Oe ? sn : f;
+ var d = s == sn, l = f == sn, h = s == f;
+ if (h && Z(n)) {
+ if (!Z(e))
+ return !1;
+ o = !0, d = !1;
+ }
+ if (h && !d)
+ return a || (a = new O()), o || Un(n) ? lr(n, e, r, t, i, a) : ka(n, e, s, r, t, i, a);
+ if (!(r & Za)) {
+ var g = d && Ae.call(n, "__wrapped__"), v = l && Ae.call(e, "__wrapped__");
+ if (g || v) {
+ var p = g ? n.value() : n, m = v ? e.value() : e;
+ return a || (a = new O()), i(p, m, r, t, a);
+ }
+ }
+ return h ? (a || (a = new O()), Xa(n, e, r, t, i, a)) : !1;
+}
+function jn(n, e, r, t, i) {
+ return n === e ? !0 : n == null || e == null || !M(n) && !M(e) ? n !== n && e !== e : ja(n, e, r, t, jn, i);
+}
+var za = 1, Ja = 2;
+function Qa(n, e, r, t) {
+ var i = r.length, a = i, o = !t;
+ if (n == null)
+ return !a;
+ for (n = Object(n); i--; ) {
+ var u = r[i];
+ if (o && u[2] ? u[1] !== n[u[0]] : !(u[0] in n))
+ return !1;
+ }
+ for (; ++i < a; ) {
+ u = r[i];
+ var s = u[0], f = n[s], d = u[1];
+ if (o && u[2]) {
+ if (f === void 0 && !(s in n))
+ return !1;
+ } else {
+ var l = new O();
+ if (t)
+ var h = t(f, d, s, n, e, l);
+ if (!(h === void 0 ? jn(d, f, za | Ja, t, l) : h))
+ return !1;
+ }
+ }
+ return !0;
+}
+function hr(n) {
+ return n === n && !L(n);
+}
+function no(n) {
+ for (var e = T(n), r = e.length; r--; ) {
+ var t = e[r], i = n[t];
+ e[r] = [t, i, hr(i)];
+ }
+ return e;
+}
+function vr(n, e) {
+ return function(r) {
+ return r == null ? !1 : r[n] === e && (e !== void 0 || n in Object(r));
+ };
+}
+function eo(n) {
+ var e = no(n);
+ return e.length == 1 && e[0][2] ? vr(e[0][0], e[0][1]) : function(r) {
+ return r === n || Qa(r, n, e);
+ };
+}
+function ro(n, e) {
+ return n != null && e in Object(n);
+}
+function gr(n, e, r) {
+ e = _n(e, n);
+ for (var t = -1, i = e.length, a = !1; ++t < i; ) {
+ var o = rn(e[t]);
+ if (!(a = n != null && r(n, o)))
+ break;
+ n = n[o];
+ }
+ return a || ++t != i ? a : (i = n == null ? 0 : n.length, !!i && Gr(i) && pn(o, i) && (_(n) || X(n)));
+}
+function pr(n, e) {
+ return n != null && gr(n, e, ro);
+}
+var to = 1, io = 2;
+function ao(n, e) {
+ return qn(n) && hr(e) ? vr(rn(n), e) : function(r) {
+ var t = Gt(r, n);
+ return t === void 0 && t === e ? pr(r, n) : jn(e, t, to | io);
+ };
+}
+function oo(n) {
+ return function(e) {
+ return e == null ? void 0 : e[n];
+ };
+}
+function uo(n) {
+ return function(e) {
+ return En(e, n);
+ };
+}
+function so(n) {
+ return qn(n) ? oo(rn(n)) : uo(n);
+}
+function $(n) {
+ return typeof n == "function" ? n : n == null ? G : typeof n == "object" ? _(n) ? ao(n[0], n[1]) : eo(n) : so(n);
+}
+function fo(n) {
+ return function(e, r, t) {
+ for (var i = -1, a = Object(e), o = t(e), u = o.length; u--; ) {
+ var s = o[n ? u : ++i];
+ if (r(a[s], s, a) === !1)
+ break;
+ }
+ return e;
+ };
+}
+var co = fo();
+const zn = co;
+function Jn(n, e) {
+ return n && zn(n, e, T);
+}
+function lo(n, e) {
+ return function(r, t) {
+ if (r == null)
+ return r;
+ if (!D(r))
+ return n(r, t);
+ for (var i = r.length, a = e ? i : -1, o = Object(r); (e ? a-- : ++a < i) && t(o[a], a, o) !== !1; )
+ ;
+ return r;
+ };
+}
+var ho = lo(Jn);
+const xn = ho;
+var vo = function() {
+ return kn.Date.now();
+};
+const Pe = vo;
+var br = Object.prototype, go = br.hasOwnProperty, po = mn(function(n, e) {
+ n = Object(n);
+ var r = -1, t = e.length, i = t > 2 ? e[2] : void 0;
+ for (i && j(e[0], e[1], i) && (t = 1); ++r < t; )
+ for (var a = e[r], o = B(a), u = -1, s = o.length; ++u < s; ) {
+ var f = o[u], d = n[f];
+ (d === void 0 || nn(d, br[f]) && !go.call(n, f)) && (n[f] = a[f]);
+ }
+ return n;
+});
+const bo = po;
+function Fn(n, e, r) {
+ (r !== void 0 && !nn(n[e], r) || r === void 0 && !(e in n)) && bn(n, e, r);
+}
+function wr(n) {
+ return M(n) && D(n);
+}
+function Dn(n, e) {
+ if (!(e === "constructor" && typeof n[e] == "function") && e != "__proto__")
+ return n[e];
+}
+function wo(n) {
+ return en(n, B(n));
+}
+function mo(n, e, r, t, i, a, o) {
+ var u = Dn(n, r), s = Dn(e, r), f = o.get(s);
+ if (f) {
+ Fn(n, r, f);
+ return;
+ }
+ var d = a ? a(u, s, r + "", n, e, o) : void 0, l = d === void 0;
+ if (l) {
+ var h = _(s), g = !h && Z(s), v = !h && !g && Un(s);
+ d = s, h || g || v ? _(u) ? d = u : wr(u) ? d = We(u) : g ? (l = !1, d = er(s, !0)) : v ? (l = !1, d = or(s, !0)) : d = [] : Xt(s) || X(s) ? (d = u, X(u) ? d = wo(u) : (!L(u) || Mn(u)) && (d = ur(s))) : l = !1;
+ }
+ l && (o.set(s, d), i(d, s, t, a, o), o.delete(s)), Fn(n, r, d);
+}
+function mr(n, e, r, t, i) {
+ n !== e && zn(e, function(a, o) {
+ if (i || (i = new O()), L(a))
+ mo(n, e, o, r, mr, t, i);
+ else {
+ var u = t ? t(Dn(n, o), a, o + "", n, e, i) : void 0;
+ u === void 0 && (u = a), Fn(n, o, u);
+ }
+ }, B);
+}
+function _o(n, e, r) {
+ for (var t = -1, i = n == null ? 0 : n.length; ++t < i; )
+ if (r(e, n[t]))
+ return !0;
+ return !1;
+}
+function vn(n) {
+ var e = n == null ? 0 : n.length;
+ return e ? n[e - 1] : void 0;
+}
+function Qn(n) {
+ return typeof n == "function" ? n : G;
+}
+function c(n, e) {
+ var r = _(n) ? Ze : xn;
+ return r(n, Qn(e));
+}
+function Eo(n, e) {
+ var r = [];
+ return xn(n, function(t, i, a) {
+ e(t, i, a) && r.push(t);
+ }), r;
+}
+function P(n, e) {
+ var r = _(n) ? rr : Eo;
+ return r(n, $(e));
+}
+function yo(n) {
+ return function(e, r, t) {
+ var i = Object(e);
+ if (!D(e)) {
+ var a = $(r);
+ e = T(e), r = function(u) {
+ return a(i[u], u, i);
+ };
+ }
+ var o = n(e, r, t);
+ return o > -1 ? i[a ? e[o] : o] : void 0;
+ };
+}
+var xo = Math.max;
+function To(n, e, r) {
+ var t = n == null ? 0 : n.length;
+ if (!t)
+ return -1;
+ var i = r == null ? 0 : nt(r);
+ return i < 0 && (i = xo(t + i, 0)), Ve(n, $(e), i);
+}
+var Oo = yo(To);
+const ne = Oo;
+function _r(n, e) {
+ var r = -1, t = D(n) ? Array(n.length) : [];
+ return xn(n, function(i, a, o) {
+ t[++r] = e(i, a, o);
+ }), t;
+}
+function y(n, e) {
+ var r = _(n) ? H : _r;
+ return r(n, $(e));
+}
+function Lo(n, e) {
+ return n == null ? n : zn(n, Qn(e), B);
+}
+function Ao(n, e) {
+ return n && Jn(n, Qn(e));
+}
+function Po(n, e) {
+ return n > e;
+}
+var No = Object.prototype, Co = No.hasOwnProperty;
+function $o(n, e) {
+ return n != null && Co.call(n, e);
+}
+function b(n, e) {
+ return n != null && gr(n, e, $o);
+}
+function Io(n, e) {
+ return H(e, function(r) {
+ return n[r];
+ });
+}
+function N(n) {
+ return n == null ? [] : Io(n, T(n));
+}
+function x(n) {
+ return n === void 0;
+}
+function Er(n, e) {
+ return n < e;
+}
+function Tn(n, e) {
+ var r = {};
+ return e = $(e), Jn(n, function(t, i, a) {
+ bn(r, i, e(t, i, a));
+ }), r;
+}
+function ee(n, e, r) {
+ for (var t = -1, i = n.length; ++t < i; ) {
+ var a = n[t], o = e(a);
+ if (o != null && (u === void 0 ? o === o && !R(o) : r(o, u)))
+ var u = o, s = a;
+ }
+ return s;
+}
+function F(n) {
+ return n && n.length ? ee(n, G, Po) : void 0;
+}
+var So = Et(function(n, e, r) {
+ mr(n, e, r);
+});
+const Gn = So;
+function J(n) {
+ return n && n.length ? ee(n, G, Er) : void 0;
+}
+function re(n, e) {
+ return n && n.length ? ee(n, $(e), Er) : void 0;
+}
+function Mo(n, e, r, t) {
+ if (!L(n))
+ return n;
+ e = _n(e, n);
+ for (var i = -1, a = e.length, o = a - 1, u = n; u != null && ++i < a; ) {
+ var s = rn(e[i]), f = r;
+ if (s === "__proto__" || s === "constructor" || s === "prototype")
+ return n;
+ if (i != o) {
+ var d = u[s];
+ f = t ? t(d, s, u) : void 0, f === void 0 && (f = L(d) ? d : pn(e[i + 1]) ? [] : {});
+ }
+ wn(u, s, f), u = u[s];
+ }
+ return n;
+}
+function Ro(n, e, r) {
+ for (var t = -1, i = e.length, a = {}; ++t < i; ) {
+ var o = e[t], u = En(n, o);
+ r(u, o) && Mo(a, _n(o, n), u);
+ }
+ return a;
+}
+function Fo(n, e) {
+ var r = n.length;
+ for (n.sort(e); r--; )
+ n[r] = n[r].value;
+ return n;
+}
+function Do(n, e) {
+ if (n !== e) {
+ var r = n !== void 0, t = n === null, i = n === n, a = R(n), o = e !== void 0, u = e === null, s = e === e, f = R(e);
+ if (!u && !f && !a && n > e || a && o && s && !u && !f || t && o && s || !r && s || !i)
+ return 1;
+ if (!t && !a && !f && n < e || f && r && i && !t && !a || u && r && i || !o && i || !s)
+ return -1;
+ }
+ return 0;
+}
+function Go(n, e, r) {
+ for (var t = -1, i = n.criteria, a = e.criteria, o = i.length, u = r.length; ++t < o; ) {
+ var s = Do(i[t], a[t]);
+ if (s) {
+ if (t >= u)
+ return s;
+ var f = r[t];
+ return s * (f == "desc" ? -1 : 1);
+ }
+ }
+ return n.index - e.index;
+}
+function Bo(n, e, r) {
+ e.length ? e = H(e, function(a) {
+ return _(a) ? function(o) {
+ return En(o, a.length === 1 ? a[0] : a);
+ } : a;
+ }) : e = [G];
+ var t = -1;
+ e = H(e, Yn($));
+ var i = _r(n, function(a, o, u) {
+ var s = H(e, function(f) {
+ return f(a);
+ });
+ return { criteria: s, index: ++t, value: a };
+ });
+ return Fo(i, function(a, o) {
+ return Go(a, o, r);
+ });
+}
+function Uo(n, e) {
+ return Ro(n, e, function(r, t) {
+ return pr(n, t);
+ });
+}
+var Yo = Ut(function(n, e) {
+ return n == null ? {} : Uo(n, e);
+});
+const gn = Yo;
+var Ho = Math.ceil, ko = Math.max;
+function qo(n, e, r, t) {
+ for (var i = -1, a = ko(Ho((e - n) / (r || 1)), 0), o = Array(a); a--; )
+ o[t ? a : ++i] = n, n += r;
+ return o;
+}
+function Ko(n) {
+ return function(e, r, t) {
+ return t && typeof t != "number" && j(e, r, t) && (r = t = void 0), e = fn(e), r === void 0 ? (r = e, e = 0) : r = fn(r), t = t === void 0 ? e < r ? 1 : -1 : fn(t), qo(e, r, t, n);
+ };
+}
+var Wo = Ko();
+const k = Wo;
+function Xo(n, e, r, t, i) {
+ return i(n, function(a, o, u) {
+ r = t ? (t = !1, a) : e(r, a, o, u);
+ }), r;
+}
+function tn(n, e, r) {
+ var t = _(n) ? Zt : Xo, i = arguments.length < 3;
+ return t(n, $(e), r, i, xn);
+}
+var Zo = mn(function(n, e) {
+ if (n == null)
+ return [];
+ var r = e.length;
+ return r > 1 && j(n, e[0], e[1]) ? e = [] : r > 2 && j(e[0], e[1], e[2]) && (e = [e[0]]), Bo(n, yn(e, 1), []);
+});
+const an = Zo;
+var Vo = 1 / 0, jo = Ln && 1 / Vn(new Ln([, -0]))[1] == Vo ? function(n) {
+ return new Ln(n);
+} : it;
+const zo = jo;
+var Jo = 200;
+function Qo(n, e, r) {
+ var t = -1, i = pt, a = n.length, o = !0, u = [], s = u;
+ if (r)
+ o = !1, i = _o;
+ else if (a >= Jo) {
+ var f = e ? null : zo(n);
+ if (f)
+ return Vn(f);
+ o = !1, i = cr, s = new z();
+ } else
+ s = e ? [] : u;
+ n:
+ for (; ++t < a; ) {
+ var d = n[t], l = e ? e(d) : d;
+ if (d = r || d !== 0 ? d : 0, o && l === l) {
+ for (var h = s.length; h--; )
+ if (s[h] === l)
+ continue n;
+ e && s.push(l), u.push(d);
+ } else
+ i(s, l, r) || (s !== u && s.push(l), u.push(d));
+ }
+ return u;
+}
+var nu = mn(function(n) {
+ return Qo(yn(n, 1, wr, !0));
+});
+const eu = nu;
+var ru = 0;
+function te(n) {
+ var e = ++ru;
+ return Je(n) + e;
+}
+function tu(n, e, r) {
+ for (var t = -1, i = n.length, a = e.length, o = {}; ++t < i; ) {
+ var u = t < a ? e[t] : void 0;
+ r(o, n[t], u);
+ }
+ return o;
+}
+function iu(n, e) {
+ return tu(n || [], e || [], wn);
+}
+var au = "\0", S = "\0", Ne = "";
+class A {
+ constructor(e = {}) {
+ this._isDirected = b(e, "directed") ? e.directed : !0, this._isMultigraph = b(e, "multigraph") ? e.multigraph : !1, this._isCompound = b(e, "compound") ? e.compound : !1, this._label = void 0, this._defaultNodeLabelFn = Y(void 0), this._defaultEdgeLabelFn = Y(void 0), this._nodes = {}, this._isCompound && (this._parent = {}, this._children = {}, this._children[S] = {}), this._in = {}, this._preds = {}, this._out = {}, this._sucs = {}, this._edgeObjs = {}, this._edgeLabels = {};
+ }
+ /* === Graph functions ========= */
+ isDirected() {
+ return this._isDirected;
+ }
+ isMultigraph() {
+ return this._isMultigraph;
+ }
+ isCompound() {
+ return this._isCompound;
+ }
+ setGraph(e) {
+ return this._label = e, this;
+ }
+ graph() {
+ return this._label;
+ }
+ /* === Node functions ========== */
+ setDefaultNodeLabel(e) {
+ return Mn(e) || (e = Y(e)), this._defaultNodeLabelFn = e, this;
+ }
+ nodeCount() {
+ return this._nodeCount;
+ }
+ nodes() {
+ return T(this._nodes);
+ }
+ sources() {
+ var e = this;
+ return P(this.nodes(), function(r) {
+ return se(e._in[r]);
+ });
+ }
+ sinks() {
+ var e = this;
+ return P(this.nodes(), function(r) {
+ return se(e._out[r]);
+ });
+ }
+ setNodes(e, r) {
+ var t = arguments, i = this;
+ return c(e, function(a) {
+ t.length > 1 ? i.setNode(a, r) : i.setNode(a);
+ }), this;
+ }
+ setNode(e, r) {
+ return b(this._nodes, e) ? (arguments.length > 1 && (this._nodes[e] = r), this) : (this._nodes[e] = arguments.length > 1 ? r : this._defaultNodeLabelFn(e), this._isCompound && (this._parent[e] = S, this._children[e] = {}, this._children[S][e] = !0), this._in[e] = {}, this._preds[e] = {}, this._out[e] = {}, this._sucs[e] = {}, ++this._nodeCount, this);
+ }
+ node(e) {
+ return this._nodes[e];
+ }
+ hasNode(e) {
+ return b(this._nodes, e);
+ }
+ removeNode(e) {
+ var r = this;
+ if (b(this._nodes, e)) {
+ var t = function(i) {
+ r.removeEdge(r._edgeObjs[i]);
+ };
+ delete this._nodes[e], this._isCompound && (this._removeFromParentsChildList(e), delete this._parent[e], c(this.children(e), function(i) {
+ r.setParent(i);
+ }), delete this._children[e]), c(T(this._in[e]), t), delete this._in[e], delete this._preds[e], c(T(this._out[e]), t), delete this._out[e], delete this._sucs[e], --this._nodeCount;
+ }
+ return this;
+ }
+ setParent(e, r) {
+ if (!this._isCompound)
+ throw new Error("Cannot set parent in a non-compound graph");
+ if (x(r))
+ r = S;
+ else {
+ r += "";
+ for (var t = r; !x(t); t = this.parent(t))
+ if (t === e)
+ throw new Error("Setting " + r + " as parent of " + e + " would create a cycle");
+ this.setNode(r);
+ }
+ return this.setNode(e), this._removeFromParentsChildList(e), this._parent[e] = r, this._children[r][e] = !0, this;
+ }
+ _removeFromParentsChildList(e) {
+ delete this._children[this._parent[e]][e];
+ }
+ parent(e) {
+ if (this._isCompound) {
+ var r = this._parent[e];
+ if (r !== S)
+ return r;
+ }
+ }
+ children(e) {
+ if (x(e) && (e = S), this._isCompound) {
+ var r = this._children[e];
+ if (r)
+ return T(r);
+ } else {
+ if (e === S)
+ return this.nodes();
+ if (this.hasNode(e))
+ return [];
+ }
+ }
+ predecessors(e) {
+ var r = this._preds[e];
+ if (r)
+ return T(r);
+ }
+ successors(e) {
+ var r = this._sucs[e];
+ if (r)
+ return T(r);
+ }
+ neighbors(e) {
+ var r = this.predecessors(e);
+ if (r)
+ return eu(r, this.successors(e));
+ }
+ isLeaf(e) {
+ var r;
+ return this.isDirected() ? r = this.successors(e) : r = this.neighbors(e), r.length === 0;
+ }
+ filterNodes(e) {
+ var r = new this.constructor({
+ directed: this._isDirected,
+ multigraph: this._isMultigraph,
+ compound: this._isCompound
+ });
+ r.setGraph(this.graph());
+ var t = this;
+ c(this._nodes, function(o, u) {
+ e(u) && r.setNode(u, o);
+ }), c(this._edgeObjs, function(o) {
+ r.hasNode(o.v) && r.hasNode(o.w) && r.setEdge(o, t.edge(o));
+ });
+ var i = {};
+ function a(o) {
+ var u = t.parent(o);
+ return u === void 0 || r.hasNode(u) ? (i[o] = u, u) : u in i ? i[u] : a(u);
+ }
+ return this._isCompound && c(r.nodes(), function(o) {
+ r.setParent(o, a(o));
+ }), r;
+ }
+ /* === Edge functions ========== */
+ setDefaultEdgeLabel(e) {
+ return Mn(e) || (e = Y(e)), this._defaultEdgeLabelFn = e, this;
+ }
+ edgeCount() {
+ return this._edgeCount;
+ }
+ edges() {
+ return N(this._edgeObjs);
+ }
+ setPath(e, r) {
+ var t = this, i = arguments;
+ return tn(e, function(a, o) {
+ return i.length > 1 ? t.setEdge(a, o, r) : t.setEdge(a, o), o;
+ }), this;
+ }
+ /*
+ * setEdge(v, w, [value, [name]])
+ * setEdge({ v, w, [name] }, [value])
+ */
+ setEdge() {
+ var e, r, t, i, a = !1, o = arguments[0];
+ typeof o == "object" && o !== null && "v" in o ? (e = o.v, r = o.w, t = o.name, arguments.length === 2 && (i = arguments[1], a = !0)) : (e = o, r = arguments[1], t = arguments[3], arguments.length > 2 && (i = arguments[2], a = !0)), e = "" + e, r = "" + r, x(t) || (t = "" + t);
+ var u = W(this._isDirected, e, r, t);
+ if (b(this._edgeLabels, u))
+ return a && (this._edgeLabels[u] = i), this;
+ if (!x(t) && !this._isMultigraph)
+ throw new Error("Cannot set a named edge when isMultigraph = false");
+ this.setNode(e), this.setNode(r), this._edgeLabels[u] = a ? i : this._defaultEdgeLabelFn(e, r, t);
+ var s = ou(this._isDirected, e, r, t);
+ return e = s.v, r = s.w, Object.freeze(s), this._edgeObjs[u] = s, Ce(this._preds[r], e), Ce(this._sucs[e], r), this._in[r][u] = s, this._out[e][u] = s, this._edgeCount++, this;
+ }
+ edge(e, r, t) {
+ var i = arguments.length === 1 ? Pn(this._isDirected, arguments[0]) : W(this._isDirected, e, r, t);
+ return this._edgeLabels[i];
+ }
+ hasEdge(e, r, t) {
+ var i = arguments.length === 1 ? Pn(this._isDirected, arguments[0]) : W(this._isDirected, e, r, t);
+ return b(this._edgeLabels, i);
+ }
+ removeEdge(e, r, t) {
+ var i = arguments.length === 1 ? Pn(this._isDirected, arguments[0]) : W(this._isDirected, e, r, t), a = this._edgeObjs[i];
+ return a && (e = a.v, r = a.w, delete this._edgeLabels[i], delete this._edgeObjs[i], $e(this._preds[r], e), $e(this._sucs[e], r), delete this._in[r][i], delete this._out[e][i], this._edgeCount--), this;
+ }
+ inEdges(e, r) {
+ var t = this._in[e];
+ if (t) {
+ var i = N(t);
+ return r ? P(i, function(a) {
+ return a.v === r;
+ }) : i;
+ }
+ }
+ outEdges(e, r) {
+ var t = this._out[e];
+ if (t) {
+ var i = N(t);
+ return r ? P(i, function(a) {
+ return a.w === r;
+ }) : i;
+ }
+ }
+ nodeEdges(e, r) {
+ var t = this.inEdges(e, r);
+ if (t)
+ return t.concat(this.outEdges(e, r));
+ }
+}
+A.prototype._nodeCount = 0;
+A.prototype._edgeCount = 0;
+function Ce(n, e) {
+ n[e] ? n[e]++ : n[e] = 1;
+}
+function $e(n, e) {
+ --n[e] || delete n[e];
+}
+function W(n, e, r, t) {
+ var i = "" + e, a = "" + r;
+ if (!n && i > a) {
+ var o = i;
+ i = a, a = o;
+ }
+ return i + Ne + a + Ne + (x(t) ? au : t);
+}
+function ou(n, e, r, t) {
+ var i = "" + e, a = "" + r;
+ if (!n && i > a) {
+ var o = i;
+ i = a, a = o;
+ }
+ var u = { v: i, w: a };
+ return t && (u.name = t), u;
+}
+function Pn(n, e) {
+ return W(n, e.v, e.w, e.name);
+}
+class uu {
+ constructor() {
+ var e = {};
+ e._next = e._prev = e, this._sentinel = e;
+ }
+ dequeue() {
+ var e = this._sentinel, r = e._prev;
+ if (r !== e)
+ return Ie(r), r;
+ }
+ enqueue(e) {
+ var r = this._sentinel;
+ e._prev && e._next && Ie(e), e._next = r._next, r._next._prev = e, r._next = e, e._prev = r;
+ }
+ toString() {
+ for (var e = [], r = this._sentinel, t = r._prev; t !== r; )
+ e.push(JSON.stringify(t, su)), t = t._prev;
+ return "[" + e.join(", ") + "]";
+ }
+}
+function Ie(n) {
+ n._prev._next = n._next, n._next._prev = n._prev, delete n._next, delete n._prev;
+}
+function su(n, e) {
+ if (n !== "_next" && n !== "_prev")
+ return e;
+}
+var fu = Y(1);
+function du(n, e) {
+ if (n.nodeCount() <= 1)
+ return [];
+ var r = lu(n, e || fu), t = cu(r.graph, r.buckets, r.zeroIdx);
+ return q(
+ y(t, function(i) {
+ return n.outEdges(i.v, i.w);
+ })
+ );
+}
+function cu(n, e, r) {
+ for (var t = [], i = e[e.length - 1], a = e[0], o; n.nodeCount(); ) {
+ for (; o = a.dequeue(); )
+ Nn(n, e, r, o);
+ for (; o = i.dequeue(); )
+ Nn(n, e, r, o);
+ if (n.nodeCount()) {
+ for (var u = e.length - 2; u > 0; --u)
+ if (o = e[u].dequeue(), o) {
+ t = t.concat(Nn(n, e, r, o, !0));
+ break;
+ }
+ }
+ }
+ return t;
+}
+function Nn(n, e, r, t, i) {
+ var a = i ? [] : void 0;
+ return c(n.inEdges(t.v), function(o) {
+ var u = n.edge(o), s = n.node(o.v);
+ i && a.push({ v: o.v, w: o.w }), s.out -= u, Bn(e, r, s);
+ }), c(n.outEdges(t.v), function(o) {
+ var u = n.edge(o), s = o.w, f = n.node(s);
+ f.in -= u, Bn(e, r, f);
+ }), n.removeNode(t.v), a;
+}
+function lu(n, e) {
+ var r = new A(), t = 0, i = 0;
+ c(n.nodes(), function(u) {
+ r.setNode(u, { v: u, in: 0, out: 0 });
+ }), c(n.edges(), function(u) {
+ var s = r.edge(u.v, u.w) || 0, f = e(u), d = s + f;
+ r.setEdge(u.v, u.w, d), i = Math.max(i, r.node(u.v).out += f), t = Math.max(t, r.node(u.w).in += f);
+ });
+ var a = k(i + t + 3).map(function() {
+ return new uu();
+ }), o = t + 1;
+ return c(r.nodes(), function(u) {
+ Bn(a, o, r.node(u));
+ }), { graph: r, buckets: a, zeroIdx: o };
+}
+function Bn(n, e, r) {
+ r.out ? r.in ? n[r.out - r.in + e].enqueue(r) : n[n.length - 1].enqueue(r) : n[0].enqueue(r);
+}
+function hu(n) {
+ var e = n.graph().acyclicer === "greedy" ? du(n, r(n)) : vu(n);
+ c(e, function(t) {
+ var i = n.edge(t);
+ n.removeEdge(t), i.forwardName = t.name, i.reversed = !0, n.setEdge(t.w, t.v, i, te("rev"));
+ });
+ function r(t) {
+ return function(i) {
+ return t.edge(i).weight;
+ };
+ }
+}
+function vu(n) {
+ var e = [], r = {}, t = {};
+ function i(a) {
+ b(t, a) || (t[a] = !0, r[a] = !0, c(n.outEdges(a), function(o) {
+ b(r, o.w) ? e.push(o) : i(o.w);
+ }), delete r[a]);
+ }
+ return c(n.nodes(), i), e;
+}
+function gu(n) {
+ c(n.edges(), function(e) {
+ var r = n.edge(e);
+ if (r.reversed) {
+ n.removeEdge(e);
+ var t = r.forwardName;
+ delete r.reversed, delete r.forwardName, n.setEdge(e.w, e.v, r, t);
+ }
+ });
+}
+function K(n, e, r, t) {
+ var i;
+ do
+ i = te(t);
+ while (n.hasNode(i));
+ return r.dummy = e, n.setNode(i, r), i;
+}
+function pu(n) {
+ var e = new A().setGraph(n.graph());
+ return c(n.nodes(), function(r) {
+ e.setNode(r, n.node(r));
+ }), c(n.edges(), function(r) {
+ var t = e.edge(r.v, r.w) || { weight: 0, minlen: 1 }, i = n.edge(r);
+ e.setEdge(r.v, r.w, {
+ weight: t.weight + i.weight,
+ minlen: Math.max(t.minlen, i.minlen)
+ });
+ }), e;
+}
+function yr(n) {
+ var e = new A({ multigraph: n.isMultigraph() }).setGraph(n.graph());
+ return c(n.nodes(), function(r) {
+ n.children(r).length || e.setNode(r, n.node(r));
+ }), c(n.edges(), function(r) {
+ e.setEdge(r, n.edge(r));
+ }), e;
+}
+function Se(n, e) {
+ var r = n.x, t = n.y, i = e.x - r, a = e.y - t, o = n.width / 2, u = n.height / 2;
+ if (!i && !a)
+ throw new Error("Not possible to find intersection inside of the rectangle");
+ var s, f;
+ return Math.abs(a) * o > Math.abs(i) * u ? (a < 0 && (u = -u), s = u * i / a, f = u) : (i < 0 && (o = -o), s = o, f = o * a / i), { x: r + s, y: t + f };
+}
+function On(n) {
+ var e = y(k(xr(n) + 1), function() {
+ return [];
+ });
+ return c(n.nodes(), function(r) {
+ var t = n.node(r), i = t.rank;
+ x(i) || (e[i][t.order] = r);
+ }), e;
+}
+function bu(n) {
+ var e = J(
+ y(n.nodes(), function(r) {
+ return n.node(r).rank;
+ })
+ );
+ c(n.nodes(), function(r) {
+ var t = n.node(r);
+ b(t, "rank") && (t.rank -= e);
+ });
+}
+function wu(n) {
+ var e = J(
+ y(n.nodes(), function(a) {
+ return n.node(a).rank;
+ })
+ ), r = [];
+ c(n.nodes(), function(a) {
+ var o = n.node(a).rank - e;
+ r[o] || (r[o] = []), r[o].push(a);
+ });
+ var t = 0, i = n.graph().nodeRankFactor;
+ c(r, function(a, o) {
+ x(a) && o % i !== 0 ? --t : t && c(a, function(u) {
+ n.node(u).rank += t;
+ });
+ });
+}
+function Me(n, e, r, t) {
+ var i = {
+ width: 0,
+ height: 0
+ };
+ return arguments.length >= 4 && (i.rank = r, i.order = t), K(n, "border", i, e);
+}
+function xr(n) {
+ return F(
+ y(n.nodes(), function(e) {
+ var r = n.node(e).rank;
+ if (!x(r))
+ return r;
+ })
+ );
+}
+function mu(n, e) {
+ var r = { lhs: [], rhs: [] };
+ return c(n, function(t) {
+ e(t) ? r.lhs.push(t) : r.rhs.push(t);
+ }), r;
+}
+function _u(n, e) {
+ var r = Pe();
+ try {
+ return e();
+ } finally {
+ console.log(n + " time: " + (Pe() - r) + "ms");
+ }
+}
+function Eu(n, e) {
+ return e();
+}
+function yu(n) {
+ function e(r) {
+ var t = n.children(r), i = n.node(r);
+ if (t.length && c(t, e), b(i, "minRank")) {
+ i.borderLeft = [], i.borderRight = [];
+ for (var a = i.minRank, o = i.maxRank + 1; a < o; ++a)
+ Re(n, "borderLeft", "_bl", r, i, a), Re(n, "borderRight", "_br", r, i, a);
+ }
+ }
+ c(n.children(), e);
+}
+function Re(n, e, r, t, i, a) {
+ var o = { width: 0, height: 0, rank: a, borderType: e }, u = i[e][a - 1], s = K(n, "border", o, r);
+ i[e][a] = s, n.setParent(s, t), u && n.setEdge(u, s, { weight: 1 });
+}
+function xu(n) {
+ var e = n.graph().rankdir.toLowerCase();
+ (e === "lr" || e === "rl") && Tr(n);
+}
+function Tu(n) {
+ var e = n.graph().rankdir.toLowerCase();
+ (e === "bt" || e === "rl") && Ou(n), (e === "lr" || e === "rl") && (Lu(n), Tr(n));
+}
+function Tr(n) {
+ c(n.nodes(), function(e) {
+ Fe(n.node(e));
+ }), c(n.edges(), function(e) {
+ Fe(n.edge(e));
+ });
+}
+function Fe(n) {
+ var e = n.width;
+ n.width = n.height, n.height = e;
+}
+function Ou(n) {
+ c(n.nodes(), function(e) {
+ Cn(n.node(e));
+ }), c(n.edges(), function(e) {
+ var r = n.edge(e);
+ c(r.points, Cn), b(r, "y") && Cn(r);
+ });
+}
+function Cn(n) {
+ n.y = -n.y;
+}
+function Lu(n) {
+ c(n.nodes(), function(e) {
+ $n(n.node(e));
+ }), c(n.edges(), function(e) {
+ var r = n.edge(e);
+ c(r.points, $n), b(r, "x") && $n(r);
+ });
+}
+function $n(n) {
+ var e = n.x;
+ n.x = n.y, n.y = e;
+}
+function Au(n) {
+ n.graph().dummyChains = [], c(n.edges(), function(e) {
+ Pu(n, e);
+ });
+}
+function Pu(n, e) {
+ var r = e.v, t = n.node(r).rank, i = e.w, a = n.node(i).rank, o = e.name, u = n.edge(e), s = u.labelRank;
+ if (a !== t + 1) {
+ n.removeEdge(e);
+ var f, d, l;
+ for (l = 0, ++t; t < a; ++l, ++t)
+ u.points = [], d = {
+ width: 0,
+ height: 0,
+ edgeLabel: u,
+ edgeObj: e,
+ rank: t
+ }, f = K(n, "edge", d, "_d"), t === s && (d.width = u.width, d.height = u.height, d.dummy = "edge-label", d.labelpos = u.labelpos), n.setEdge(r, f, { weight: u.weight }, o), l === 0 && n.graph().dummyChains.push(f), r = f;
+ n.setEdge(r, i, { weight: u.weight }, o);
+ }
+}
+function Nu(n) {
+ c(n.graph().dummyChains, function(e) {
+ var r = n.node(e), t = r.edgeLabel, i;
+ for (n.setEdge(r.edgeObj, t); r.dummy; )
+ i = n.successors(e)[0], n.removeNode(e), t.points.push({ x: r.x, y: r.y }), r.dummy === "edge-label" && (t.x = r.x, t.y = r.y, t.width = r.width, t.height = r.height), e = i, r = n.node(e);
+ });
+}
+function ie(n) {
+ var e = {};
+ function r(t) {
+ var i = n.node(t);
+ if (b(e, t))
+ return i.rank;
+ e[t] = !0;
+ var a = J(
+ y(n.outEdges(t), function(o) {
+ return r(o.w) - n.edge(o).minlen;
+ })
+ );
+ return (a === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3
+ a === void 0 || // return value of _.map([]) for Lodash 4
+ a === null) && (a = 0), i.rank = a;
+ }
+ c(n.sources(), r);
+}
+function Q(n, e) {
+ return n.node(e.w).rank - n.node(e.v).rank - n.edge(e).minlen;
+}
+function Or(n) {
+ var e = new A({ directed: !1 }), r = n.nodes()[0], t = n.nodeCount();
+ e.setNode(r, {});
+ for (var i, a; Cu(e, n) < t; )
+ i = $u(e, n), a = e.hasNode(i.v) ? Q(n, i) : -Q(n, i), Iu(e, n, a);
+ return e;
+}
+function Cu(n, e) {
+ function r(t) {
+ c(e.nodeEdges(t), function(i) {
+ var a = i.v, o = t === a ? i.w : a;
+ !n.hasNode(o) && !Q(e, i) && (n.setNode(o, {}), n.setEdge(t, o, {}), r(o));
+ });
+ }
+ return c(n.nodes(), r), n.nodeCount();
+}
+function $u(n, e) {
+ return re(e.edges(), function(r) {
+ if (n.hasNode(r.v) !== n.hasNode(r.w))
+ return Q(e, r);
+ });
+}
+function Iu(n, e, r) {
+ c(n.nodes(), function(t) {
+ e.node(t).rank += r;
+ });
+}
+function Su() {
+}
+Su.prototype = new Error();
+function Lr(n, e, r) {
+ _(e) || (e = [e]);
+ var t = (n.isDirected() ? n.successors : n.neighbors).bind(n), i = [], a = {};
+ return c(e, function(o) {
+ if (!n.hasNode(o))
+ throw new Error("Graph does not have node: " + o);
+ Ar(n, o, r === "post", a, t, i);
+ }), i;
+}
+function Ar(n, e, r, t, i, a) {
+ b(t, e) || (t[e] = !0, r || a.push(e), c(i(e), function(o) {
+ Ar(n, o, r, t, i, a);
+ }), r && a.push(e));
+}
+function Mu(n, e) {
+ return Lr(n, e, "post");
+}
+function Ru(n, e) {
+ return Lr(n, e, "pre");
+}
+U.initLowLimValues = oe;
+U.initCutValues = ae;
+U.calcCutValue = Pr;
+U.leaveEdge = Cr;
+U.enterEdge = $r;
+U.exchangeEdges = Ir;
+function U(n) {
+ n = pu(n), ie(n);
+ var e = Or(n);
+ oe(e), ae(e, n);
+ for (var r, t; r = Cr(e); )
+ t = $r(e, n, r), Ir(e, n, r, t);
+}
+function ae(n, e) {
+ var r = Mu(n, n.nodes());
+ r = r.slice(0, r.length - 1), c(r, function(t) {
+ Fu(n, e, t);
+ });
+}
+function Fu(n, e, r) {
+ var t = n.node(r), i = t.parent;
+ n.edge(r, i).cutvalue = Pr(n, e, r);
+}
+function Pr(n, e, r) {
+ var t = n.node(r), i = t.parent, a = !0, o = e.edge(r, i), u = 0;
+ return o || (a = !1, o = e.edge(i, r)), u = o.weight, c(e.nodeEdges(r), function(s) {
+ var f = s.v === r, d = f ? s.w : s.v;
+ if (d !== i) {
+ var l = f === a, h = e.edge(s).weight;
+ if (u += l ? h : -h, Gu(n, r, d)) {
+ var g = n.edge(r, d).cutvalue;
+ u += l ? -g : g;
+ }
+ }
+ }), u;
+}
+function oe(n, e) {
+ arguments.length < 2 && (e = n.nodes()[0]), Nr(n, {}, 1, e);
+}
+function Nr(n, e, r, t, i) {
+ var a = r, o = n.node(t);
+ return e[t] = !0, c(n.neighbors(t), function(u) {
+ b(e, u) || (r = Nr(n, e, r, u, t));
+ }), o.low = a, o.lim = r++, i ? o.parent = i : delete o.parent, r;
+}
+function Cr(n) {
+ return ne(n.edges(), function(e) {
+ return n.edge(e).cutvalue < 0;
+ });
+}
+function $r(n, e, r) {
+ var t = r.v, i = r.w;
+ e.hasEdge(t, i) || (t = r.w, i = r.v);
+ var a = n.node(t), o = n.node(i), u = a, s = !1;
+ a.lim > o.lim && (u = o, s = !0);
+ var f = P(e.edges(), function(d) {
+ return s === De(n, n.node(d.v), u) && s !== De(n, n.node(d.w), u);
+ });
+ return re(f, function(d) {
+ return Q(e, d);
+ });
+}
+function Ir(n, e, r, t) {
+ var i = r.v, a = r.w;
+ n.removeEdge(i, a), n.setEdge(t.v, t.w, {}), oe(n), ae(n, e), Du(n, e);
+}
+function Du(n, e) {
+ var r = ne(n.nodes(), function(i) {
+ return !e.node(i).parent;
+ }), t = Ru(n, r);
+ t = t.slice(1), c(t, function(i) {
+ var a = n.node(i).parent, o = e.edge(i, a), u = !1;
+ o || (o = e.edge(a, i), u = !0), e.node(i).rank = e.node(a).rank + (u ? o.minlen : -o.minlen);
+ });
+}
+function Gu(n, e, r) {
+ return n.hasEdge(e, r);
+}
+function De(n, e, r) {
+ return r.low <= e.lim && e.lim <= r.lim;
+}
+function Bu(n) {
+ switch (n.graph().ranker) {
+ case "network-simplex":
+ Ge(n);
+ break;
+ case "tight-tree":
+ Yu(n);
+ break;
+ case "longest-path":
+ Uu(n);
+ break;
+ default:
+ Ge(n);
+ }
+}
+var Uu = ie;
+function Yu(n) {
+ ie(n), Or(n);
+}
+function Ge(n) {
+ U(n);
+}
+function Hu(n) {
+ var e = K(n, "root", {}, "_root"), r = ku(n), t = F(N(r)) - 1, i = 2 * t + 1;
+ n.graph().nestingRoot = e, c(n.edges(), function(o) {
+ n.edge(o).minlen *= i;
+ });
+ var a = qu(n) + 1;
+ c(n.children(), function(o) {
+ Sr(n, e, i, a, t, r, o);
+ }), n.graph().nodeRankFactor = i;
+}
+function Sr(n, e, r, t, i, a, o) {
+ var u = n.children(o);
+ if (!u.length) {
+ o !== e && n.setEdge(e, o, { weight: 0, minlen: r });
+ return;
+ }
+ var s = Me(n, "_bt"), f = Me(n, "_bb"), d = n.node(o);
+ n.setParent(s, o), d.borderTop = s, n.setParent(f, o), d.borderBottom = f, c(u, function(l) {
+ Sr(n, e, r, t, i, a, l);
+ var h = n.node(l), g = h.borderTop ? h.borderTop : l, v = h.borderBottom ? h.borderBottom : l, p = h.borderTop ? t : 2 * t, m = g !== v ? 1 : i - a[o] + 1;
+ n.setEdge(s, g, {
+ weight: p,
+ minlen: m,
+ nestingEdge: !0
+ }), n.setEdge(v, f, {
+ weight: p,
+ minlen: m,
+ nestingEdge: !0
+ });
+ }), n.parent(o) || n.setEdge(e, s, { weight: 0, minlen: i + a[o] });
+}
+function ku(n) {
+ var e = {};
+ function r(t, i) {
+ var a = n.children(t);
+ a && a.length && c(a, function(o) {
+ r(o, i + 1);
+ }), e[t] = i;
+ }
+ return c(n.children(), function(t) {
+ r(t, 1);
+ }), e;
+}
+function qu(n) {
+ return tn(
+ n.edges(),
+ function(e, r) {
+ return e + n.edge(r).weight;
+ },
+ 0
+ );
+}
+function Ku(n) {
+ var e = n.graph();
+ n.removeNode(e.nestingRoot), delete e.nestingRoot, c(n.edges(), function(r) {
+ var t = n.edge(r);
+ t.nestingEdge && n.removeEdge(r);
+ });
+}
+function Wu(n, e, r) {
+ var t = {}, i;
+ c(r, function(a) {
+ for (var o = n.parent(a), u, s; o; ) {
+ if (u = n.parent(o), u ? (s = t[u], t[u] = o) : (s = i, i = o), s && s !== o) {
+ e.setEdge(s, o);
+ return;
+ }
+ o = u;
+ }
+ });
+}
+function Xu(n, e, r) {
+ var t = Zu(n), i = new A({ compound: !0 }).setGraph({ root: t }).setDefaultNodeLabel(function(a) {
+ return n.node(a);
+ });
+ return c(n.nodes(), function(a) {
+ var o = n.node(a), u = n.parent(a);
+ (o.rank === e || o.minRank <= e && e <= o.maxRank) && (i.setNode(a), i.setParent(a, u || t), c(n[r](a), function(s) {
+ var f = s.v === a ? s.w : s.v, d = i.edge(f, a), l = x(d) ? 0 : d.weight;
+ i.setEdge(f, a, { weight: n.edge(s).weight + l });
+ }), b(o, "minRank") && i.setNode(a, {
+ borderLeft: o.borderLeft[e],
+ borderRight: o.borderRight[e]
+ }));
+ }), i;
+}
+function Zu(n) {
+ for (var e; n.hasNode(e = te("_root")); )
+ ;
+ return e;
+}
+function Vu(n, e) {
+ for (var r = 0, t = 1; t < e.length; ++t)
+ r += ju(n, e[t - 1], e[t]);
+ return r;
+}
+function ju(n, e, r) {
+ for (var t = iu(
+ r,
+ y(r, function(f, d) {
+ return d;
+ })
+ ), i = q(
+ y(e, function(f) {
+ return an(
+ y(n.outEdges(f), function(d) {
+ return { pos: t[d.w], weight: n.edge(d).weight };
+ }),
+ "pos"
+ );
+ })
+ ), a = 1; a < r.length; )
+ a <<= 1;
+ var o = 2 * a - 1;
+ a -= 1;
+ var u = y(new Array(o), function() {
+ return 0;
+ }), s = 0;
+ return c(
+ // @ts-expect-error
+ i.forEach(function(f) {
+ var d = f.pos + a;
+ u[d] += f.weight;
+ for (var l = 0; d > 0; )
+ d % 2 && (l += u[d + 1]), d = d - 1 >> 1, u[d] += f.weight;
+ s += f.weight * l;
+ })
+ ), s;
+}
+function zu(n) {
+ var e = {}, r = P(n.nodes(), function(u) {
+ return !n.children(u).length;
+ }), t = F(
+ y(r, function(u) {
+ return n.node(u).rank;
+ })
+ ), i = y(k(t + 1), function() {
+ return [];
+ });
+ function a(u) {
+ if (!b(e, u)) {
+ e[u] = !0;
+ var s = n.node(u);
+ i[s.rank].push(u), c(n.successors(u), a);
+ }
+ }
+ var o = an(r, function(u) {
+ return n.node(u).rank;
+ });
+ return c(o, a), i;
+}
+function Ju(n, e) {
+ return y(e, function(r) {
+ var t = n.inEdges(r);
+ if (t.length) {
+ var i = tn(
+ t,
+ function(a, o) {
+ var u = n.edge(o), s = n.node(o.v);
+ return {
+ sum: a.sum + u.weight * s.order,
+ weight: a.weight + u.weight
+ };
+ },
+ { sum: 0, weight: 0 }
+ );
+ return {
+ v: r,
+ barycenter: i.sum / i.weight,
+ weight: i.weight
+ };
+ } else
+ return { v: r };
+ });
+}
+function Qu(n, e) {
+ var r = {};
+ c(n, function(i, a) {
+ var o = r[i.v] = {
+ indegree: 0,
+ in: [],
+ out: [],
+ vs: [i.v],
+ i: a
+ };
+ x(i.barycenter) || (o.barycenter = i.barycenter, o.weight = i.weight);
+ }), c(e.edges(), function(i) {
+ var a = r[i.v], o = r[i.w];
+ !x(a) && !x(o) && (o.indegree++, a.out.push(r[i.w]));
+ });
+ var t = P(r, function(i) {
+ return !i.indegree;
+ });
+ return ns(t);
+}
+function ns(n) {
+ var e = [];
+ function r(a) {
+ return function(o) {
+ o.merged || (x(o.barycenter) || x(a.barycenter) || o.barycenter >= a.barycenter) && es(a, o);
+ };
+ }
+ function t(a) {
+ return function(o) {
+ o.in.push(a), --o.indegree === 0 && n.push(o);
+ };
+ }
+ for (; n.length; ) {
+ var i = n.pop();
+ e.push(i), c(i.in.reverse(), r(i)), c(i.out, t(i));
+ }
+ return y(
+ P(e, function(a) {
+ return !a.merged;
+ }),
+ function(a) {
+ return gn(a, ["vs", "i", "barycenter", "weight"]);
+ }
+ );
+}
+function es(n, e) {
+ var r = 0, t = 0;
+ n.weight && (r += n.barycenter * n.weight, t += n.weight), e.weight && (r += e.barycenter * e.weight, t += e.weight), n.vs = e.vs.concat(n.vs), n.barycenter = r / t, n.weight = t, n.i = Math.min(e.i, n.i), e.merged = !0;
+}
+function rs(n, e) {
+ var r = mu(n, function(d) {
+ return b(d, "barycenter");
+ }), t = r.lhs, i = an(r.rhs, function(d) {
+ return -d.i;
+ }), a = [], o = 0, u = 0, s = 0;
+ t.sort(ts(!!e)), s = Be(a, i, s), c(t, function(d) {
+ s += d.vs.length, a.push(d.vs), o += d.barycenter * d.weight, u += d.weight, s = Be(a, i, s);
+ });
+ var f = { vs: q(a) };
+ return u && (f.barycenter = o / u, f.weight = u), f;
+}
+function Be(n, e, r) {
+ for (var t; e.length && (t = vn(e)).i <= r; )
+ e.pop(), n.push(t.vs), r++;
+ return r;
+}
+function ts(n) {
+ return function(e, r) {
+ return e.barycenter < r.barycenter ? -1 : e.barycenter > r.barycenter ? 1 : n ? r.i - e.i : e.i - r.i;
+ };
+}
+function Mr(n, e, r, t) {
+ var i = n.children(e), a = n.node(e), o = a ? a.borderLeft : void 0, u = a ? a.borderRight : void 0, s = {};
+ o && (i = P(i, function(v) {
+ return v !== o && v !== u;
+ }));
+ var f = Ju(n, i);
+ c(f, function(v) {
+ if (n.children(v.v).length) {
+ var p = Mr(n, v.v, r, t);
+ s[v.v] = p, b(p, "barycenter") && as(v, p);
+ }
+ });
+ var d = Qu(f, r);
+ is(d, s);
+ var l = rs(d, t);
+ if (o && (l.vs = q([o, l.vs, u]), n.predecessors(o).length)) {
+ var h = n.node(n.predecessors(o)[0]), g = n.node(n.predecessors(u)[0]);
+ b(l, "barycenter") || (l.barycenter = 0, l.weight = 0), l.barycenter = (l.barycenter * l.weight + h.order + g.order) / (l.weight + 2), l.weight += 2;
+ }
+ return l;
+}
+function is(n, e) {
+ c(n, function(r) {
+ r.vs = q(
+ r.vs.map(function(t) {
+ return e[t] ? e[t].vs : t;
+ })
+ );
+ });
+}
+function as(n, e) {
+ x(n.barycenter) ? (n.barycenter = e.barycenter, n.weight = e.weight) : (n.barycenter = (n.barycenter * n.weight + e.barycenter * e.weight) / (n.weight + e.weight), n.weight += e.weight);
+}
+function os(n) {
+ var e = xr(n), r = Ue(n, k(1, e + 1), "inEdges"), t = Ue(n, k(e - 1, -1, -1), "outEdges"), i = zu(n);
+ Ye(n, i);
+ for (var a = Number.POSITIVE_INFINITY, o, u = 0, s = 0; s < 4; ++u, ++s) {
+ us(u % 2 ? r : t, u % 4 >= 2), i = On(n);
+ var f = Vu(n, i);
+ f < a && (s = 0, o = ya(i), a = f);
+ }
+ Ye(n, o);
+}
+function Ue(n, e, r) {
+ return y(e, function(t) {
+ return Xu(n, t, r);
+ });
+}
+function us(n, e) {
+ var r = new A();
+ c(n, function(t) {
+ var i = t.graph().root, a = Mr(t, i, r, e);
+ c(a.vs, function(o, u) {
+ t.node(o).order = u;
+ }), Wu(t, r, a.vs);
+ });
+}
+function Ye(n, e) {
+ c(e, function(r) {
+ c(r, function(t, i) {
+ n.node(t).order = i;
+ });
+ });
+}
+function ss(n) {
+ var e = ds(n);
+ c(n.graph().dummyChains, function(r) {
+ for (var t = n.node(r), i = t.edgeObj, a = fs(n, e, i.v, i.w), o = a.path, u = a.lca, s = 0, f = o[s], d = !0; r !== i.w; ) {
+ if (t = n.node(r), d) {
+ for (; (f = o[s]) !== u && n.node(f).maxRank < t.rank; )
+ s++;
+ f === u && (d = !1);
+ }
+ if (!d) {
+ for (; s < o.length - 1 && n.node(f = o[s + 1]).minRank <= t.rank; )
+ s++;
+ f = o[s];
+ }
+ n.setParent(r, f), r = n.successors(r)[0];
+ }
+ });
+}
+function fs(n, e, r, t) {
+ var i = [], a = [], o = Math.min(e[r].low, e[t].low), u = Math.max(e[r].lim, e[t].lim), s, f;
+ s = r;
+ do
+ s = n.parent(s), i.push(s);
+ while (s && (e[s].low > o || u > e[s].lim));
+ for (f = s, s = t; (s = n.parent(s)) !== f; )
+ a.push(s);
+ return { path: i.concat(a.reverse()), lca: f };
+}
+function ds(n) {
+ var e = {}, r = 0;
+ function t(i) {
+ var a = r;
+ c(n.children(i), t), e[i] = { low: a, lim: r++ };
+ }
+ return c(n.children(), t), e;
+}
+function cs(n, e) {
+ var r = {};
+ function t(i, a) {
+ var o = 0, u = 0, s = i.length, f = vn(a);
+ return c(a, function(d, l) {
+ var h = hs(n, d), g = h ? n.node(h).order : s;
+ (h || d === f) && (c(a.slice(u, l + 1), function(v) {
+ c(n.predecessors(v), function(p) {
+ var m = n.node(p), E = m.order;
+ (E < o || g < E) && !(m.dummy && n.node(v).dummy) && Rr(r, p, v);
+ });
+ }), u = l + 1, o = g);
+ }), a;
+ }
+ return tn(e, t), r;
+}
+function ls(n, e) {
+ var r = {};
+ function t(a, o, u, s, f) {
+ var d;
+ c(k(o, u), function(l) {
+ d = a[l], n.node(d).dummy && c(n.predecessors(d), function(h) {
+ var g = n.node(h);
+ g.dummy && (g.order < s || g.order > f) && Rr(r, h, d);
+ });
+ });
+ }
+ function i(a, o) {
+ var u = -1, s, f = 0;
+ return c(o, function(d, l) {
+ if (n.node(d).dummy === "border") {
+ var h = n.predecessors(d);
+ h.length && (s = n.node(h[0]).order, t(o, f, l, u, s), f = l, u = s);
+ }
+ t(o, f, o.length, s, a.length);
+ }), o;
+ }
+ return tn(e, i), r;
+}
+function hs(n, e) {
+ if (n.node(e).dummy)
+ return ne(n.predecessors(e), function(r) {
+ return n.node(r).dummy;
+ });
+}
+function Rr(n, e, r) {
+ if (e > r) {
+ var t = e;
+ e = r, r = t;
+ }
+ var i = n[e];
+ i || (n[e] = i = {}), i[r] = !0;
+}
+function vs(n, e, r) {
+ if (e > r) {
+ var t = e;
+ e = r, r = t;
+ }
+ return b(n[e], r);
+}
+function gs(n, e, r, t) {
+ var i = {}, a = {}, o = {};
+ return c(e, function(u) {
+ c(u, function(s, f) {
+ i[s] = s, a[s] = s, o[s] = f;
+ });
+ }), c(e, function(u) {
+ var s = -1;
+ c(u, function(f) {
+ var d = t(f);
+ if (d.length) {
+ d = an(d, function(p) {
+ return o[p];
+ });
+ for (var l = (d.length - 1) / 2, h = Math.floor(l), g = Math.ceil(l); h <= g; ++h) {
+ var v = d[h];
+ a[f] === f && s < o[v] && !vs(r, f, v) && (a[v] = f, a[f] = i[f] = i[v], s = o[v]);
+ }
+ }
+ });
+ }), { root: i, align: a };
+}
+function ps(n, e, r, t, i) {
+ var a = {}, o = bs(n, e, r, i), u = i ? "borderLeft" : "borderRight";
+ function s(l, h) {
+ for (var g = o.nodes(), v = g.pop(), p = {}; v; )
+ p[v] ? l(v) : (p[v] = !0, g.push(v), g = g.concat(h(v))), v = g.pop();
+ }
+ function f(l) {
+ a[l] = o.inEdges(l).reduce(function(h, g) {
+ return Math.max(h, a[g.v] + o.edge(g));
+ }, 0);
+ }
+ function d(l) {
+ var h = o.outEdges(l).reduce(function(v, p) {
+ return Math.min(v, a[p.w] - o.edge(p));
+ }, Number.POSITIVE_INFINITY), g = n.node(l);
+ h !== Number.POSITIVE_INFINITY && g.borderType !== u && (a[l] = Math.max(a[l], h));
+ }
+ return s(f, o.predecessors.bind(o)), s(d, o.successors.bind(o)), c(t, function(l) {
+ a[l] = a[r[l]];
+ }), a;
+}
+function bs(n, e, r, t) {
+ var i = new A(), a = n.graph(), o = ys(a.nodesep, a.edgesep, t);
+ return c(e, function(u) {
+ var s;
+ c(u, function(f) {
+ var d = r[f];
+ if (i.setNode(d), s) {
+ var l = r[s], h = i.edge(l, d);
+ i.setEdge(l, d, Math.max(o(n, f, s), h || 0));
+ }
+ s = f;
+ });
+ }), i;
+}
+function ws(n, e) {
+ return re(N(e), function(r) {
+ var t = Number.NEGATIVE_INFINITY, i = Number.POSITIVE_INFINITY;
+ return Lo(r, function(a, o) {
+ var u = xs(n, o) / 2;
+ t = Math.max(a + u, t), i = Math.min(a - u, i);
+ }), t - i;
+ });
+}
+function ms(n, e) {
+ var r = N(e), t = J(r), i = F(r);
+ c(["u", "d"], function(a) {
+ c(["l", "r"], function(o) {
+ var u = a + o, s = n[u], f;
+ if (s !== e) {
+ var d = N(s);
+ f = o === "l" ? t - J(d) : i - F(d), f && (n[u] = Tn(s, function(l) {
+ return l + f;
+ }));
+ }
+ });
+ });
+}
+function _s(n, e) {
+ return Tn(n.ul, function(r, t) {
+ if (e)
+ return n[e.toLowerCase()][t];
+ var i = an(y(n, t));
+ return (i[1] + i[2]) / 2;
+ });
+}
+function Es(n) {
+ var e = On(n), r = Gn(cs(n, e), ls(n, e)), t = {}, i;
+ c(["u", "d"], function(o) {
+ i = o === "u" ? e : N(e).reverse(), c(["l", "r"], function(u) {
+ u === "r" && (i = y(i, function(l) {
+ return N(l).reverse();
+ }));
+ var s = (o === "u" ? n.predecessors : n.successors).bind(n), f = gs(n, i, r, s), d = ps(n, i, f.root, f.align, u === "r");
+ u === "r" && (d = Tn(d, function(l) {
+ return -l;
+ })), t[o + u] = d;
+ });
+ });
+ var a = ws(n, t);
+ return ms(t, a), _s(t, n.graph().align);
+}
+function ys(n, e, r) {
+ return function(t, i, a) {
+ var o = t.node(i), u = t.node(a), s = 0, f;
+ if (s += o.width / 2, b(o, "labelpos"))
+ switch (o.labelpos.toLowerCase()) {
+ case "l":
+ f = -o.width / 2;
+ break;
+ case "r":
+ f = o.width / 2;
+ break;
+ }
+ if (f && (s += r ? f : -f), f = 0, s += (o.dummy ? e : n) / 2, s += (u.dummy ? e : n) / 2, s += u.width / 2, b(u, "labelpos"))
+ switch (u.labelpos.toLowerCase()) {
+ case "l":
+ f = u.width / 2;
+ break;
+ case "r":
+ f = -u.width / 2;
+ break;
+ }
+ return f && (s += r ? f : -f), f = 0, s;
+ };
+}
+function xs(n, e) {
+ return n.node(e).width;
+}
+function Ts(n) {
+ n = yr(n), Os(n), Ao(Es(n), function(e, r) {
+ n.node(r).x = e;
+ });
+}
+function Os(n) {
+ var e = On(n), r = n.graph().ranksep, t = 0;
+ c(e, function(i) {
+ var a = F(
+ y(i, function(o) {
+ return n.node(o).height;
+ })
+ );
+ c(i, function(o) {
+ n.node(o).y = t + a / 2;
+ }), t += a + r;
+ });
+}
+function zs(n, e) {
+ var r = e && e.debugTiming ? _u : Eu;
+ r("layout", function() {
+ var t = r(" buildLayoutGraph", function() {
+ return Fs(n);
+ });
+ r(" runLayout", function() {
+ Ls(t, r);
+ }), r(" updateInputGraph", function() {
+ As(n, t);
+ });
+ });
+}
+function Ls(n, e) {
+ e(" makeSpaceForEdgeLabels", function() {
+ Ds(n);
+ }), e(" removeSelfEdges", function() {
+ Ws(n);
+ }), e(" acyclic", function() {
+ hu(n);
+ }), e(" nestingGraph.run", function() {
+ Hu(n);
+ }), e(" rank", function() {
+ Bu(yr(n));
+ }), e(" injectEdgeLabelProxies", function() {
+ Gs(n);
+ }), e(" removeEmptyRanks", function() {
+ wu(n);
+ }), e(" nestingGraph.cleanup", function() {
+ Ku(n);
+ }), e(" normalizeRanks", function() {
+ bu(n);
+ }), e(" assignRankMinMax", function() {
+ Bs(n);
+ }), e(" removeEdgeLabelProxies", function() {
+ Us(n);
+ }), e(" normalize.run", function() {
+ Au(n);
+ }), e(" parentDummyChains", function() {
+ ss(n);
+ }), e(" addBorderSegments", function() {
+ yu(n);
+ }), e(" order", function() {
+ os(n);
+ }), e(" insertSelfEdges", function() {
+ Xs(n);
+ }), e(" adjustCoordinateSystem", function() {
+ xu(n);
+ }), e(" position", function() {
+ Ts(n);
+ }), e(" positionSelfEdges", function() {
+ Zs(n);
+ }), e(" removeBorderNodes", function() {
+ Ks(n);
+ }), e(" normalize.undo", function() {
+ Nu(n);
+ }), e(" fixupEdgeLabelCoords", function() {
+ ks(n);
+ }), e(" undoCoordinateSystem", function() {
+ Tu(n);
+ }), e(" translateGraph", function() {
+ Ys(n);
+ }), e(" assignNodeIntersects", function() {
+ Hs(n);
+ }), e(" reversePoints", function() {
+ qs(n);
+ }), e(" acyclic.undo", function() {
+ gu(n);
+ });
+}
+function As(n, e) {
+ c(n.nodes(), function(r) {
+ var t = n.node(r), i = e.node(r);
+ t && (t.x = i.x, t.y = i.y, e.children(r).length && (t.width = i.width, t.height = i.height));
+ }), c(n.edges(), function(r) {
+ var t = n.edge(r), i = e.edge(r);
+ t.points = i.points, b(i, "x") && (t.x = i.x, t.y = i.y);
+ }), n.graph().width = e.graph().width, n.graph().height = e.graph().height;
+}
+var Ps = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"], Ns = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" }, Cs = ["acyclicer", "ranker", "rankdir", "align"], $s = ["width", "height"], Is = { width: 0, height: 0 }, Ss = ["minlen", "weight", "width", "height", "labeloffset"], Ms = {
+ minlen: 1,
+ weight: 1,
+ width: 0,
+ height: 0,
+ labeloffset: 10,
+ labelpos: "r"
+}, Rs = ["labelpos"];
+function Fs(n) {
+ var e = new A({ multigraph: !0, compound: !0 }), r = Sn(n.graph());
+ return e.setGraph(
+ Gn({}, Ns, In(r, Ps), gn(r, Cs))
+ ), c(n.nodes(), function(t) {
+ var i = Sn(n.node(t));
+ e.setNode(t, bo(In(i, $s), Is)), e.setParent(t, n.parent(t));
+ }), c(n.edges(), function(t) {
+ var i = Sn(n.edge(t));
+ e.setEdge(
+ t,
+ Gn({}, Ms, In(i, Ss), gn(i, Rs))
+ );
+ }), e;
+}
+function Ds(n) {
+ var e = n.graph();
+ e.ranksep /= 2, c(n.edges(), function(r) {
+ var t = n.edge(r);
+ t.minlen *= 2, t.labelpos.toLowerCase() !== "c" && (e.rankdir === "TB" || e.rankdir === "BT" ? t.width += t.labeloffset : t.height += t.labeloffset);
+ });
+}
+function Gs(n) {
+ c(n.edges(), function(e) {
+ var r = n.edge(e);
+ if (r.width && r.height) {
+ var t = n.node(e.v), i = n.node(e.w), a = { rank: (i.rank - t.rank) / 2 + t.rank, e };
+ K(n, "edge-proxy", a, "_ep");
+ }
+ });
+}
+function Bs(n) {
+ var e = 0;
+ c(n.nodes(), function(r) {
+ var t = n.node(r);
+ t.borderTop && (t.minRank = n.node(t.borderTop).rank, t.maxRank = n.node(t.borderBottom).rank, e = F(e, t.maxRank));
+ }), n.graph().maxRank = e;
+}
+function Us(n) {
+ c(n.nodes(), function(e) {
+ var r = n.node(e);
+ r.dummy === "edge-proxy" && (n.edge(r.e).labelRank = r.rank, n.removeNode(e));
+ });
+}
+function Ys(n) {
+ var e = Number.POSITIVE_INFINITY, r = 0, t = Number.POSITIVE_INFINITY, i = 0, a = n.graph(), o = a.marginx || 0, u = a.marginy || 0;
+ function s(f) {
+ var d = f.x, l = f.y, h = f.width, g = f.height;
+ e = Math.min(e, d - h / 2), r = Math.max(r, d + h / 2), t = Math.min(t, l - g / 2), i = Math.max(i, l + g / 2);
+ }
+ c(n.nodes(), function(f) {
+ s(n.node(f));
+ }), c(n.edges(), function(f) {
+ var d = n.edge(f);
+ b(d, "x") && s(d);
+ }), e -= o, t -= u, c(n.nodes(), function(f) {
+ var d = n.node(f);
+ d.x -= e, d.y -= t;
+ }), c(n.edges(), function(f) {
+ var d = n.edge(f);
+ c(d.points, function(l) {
+ l.x -= e, l.y -= t;
+ }), b(d, "x") && (d.x -= e), b(d, "y") && (d.y -= t);
+ }), a.width = r - e + o, a.height = i - t + u;
+}
+function Hs(n) {
+ c(n.edges(), function(e) {
+ var r = n.edge(e), t = n.node(e.v), i = n.node(e.w), a, o;
+ r.points ? (a = r.points[0], o = r.points[r.points.length - 1]) : (r.points = [], a = i, o = t), r.points.unshift(Se(t, a)), r.points.push(Se(i, o));
+ });
+}
+function ks(n) {
+ c(n.edges(), function(e) {
+ var r = n.edge(e);
+ if (b(r, "x"))
+ switch ((r.labelpos === "l" || r.labelpos === "r") && (r.width -= r.labeloffset), r.labelpos) {
+ case "l":
+ r.x -= r.width / 2 + r.labeloffset;
+ break;
+ case "r":
+ r.x += r.width / 2 + r.labeloffset;
+ break;
+ }
+ });
+}
+function qs(n) {
+ c(n.edges(), function(e) {
+ var r = n.edge(e);
+ r.reversed && r.points.reverse();
+ });
+}
+function Ks(n) {
+ c(n.nodes(), function(e) {
+ if (n.children(e).length) {
+ var r = n.node(e), t = n.node(r.borderTop), i = n.node(r.borderBottom), a = n.node(vn(r.borderLeft)), o = n.node(vn(r.borderRight));
+ r.width = Math.abs(o.x - a.x), r.height = Math.abs(i.y - t.y), r.x = a.x + r.width / 2, r.y = t.y + r.height / 2;
+ }
+ }), c(n.nodes(), function(e) {
+ n.node(e).dummy === "border" && n.removeNode(e);
+ });
+}
+function Ws(n) {
+ c(n.edges(), function(e) {
+ if (e.v === e.w) {
+ var r = n.node(e.v);
+ r.selfEdges || (r.selfEdges = []), r.selfEdges.push({ e, label: n.edge(e) }), n.removeEdge(e);
+ }
+ });
+}
+function Xs(n) {
+ var e = On(n);
+ c(e, function(r) {
+ var t = 0;
+ c(r, function(i, a) {
+ var o = n.node(i);
+ o.order = a + t, c(o.selfEdges, function(u) {
+ K(
+ n,
+ "selfedge",
+ {
+ width: u.label.width,
+ height: u.label.height,
+ rank: o.rank,
+ order: a + ++t,
+ e: u.e,
+ label: u.label
+ },
+ "_se"
+ );
+ }), delete o.selfEdges;
+ });
+ });
+}
+function Zs(n) {
+ c(n.nodes(), function(e) {
+ var r = n.node(e);
+ if (r.dummy === "selfedge") {
+ var t = n.node(r.e.v), i = t.x + t.width / 2, a = t.y, o = r.x - i, u = t.height / 2;
+ n.setEdge(r.e, r.label), n.removeNode(e), r.label.points = [
+ { x: i + 2 * o / 3, y: a - u },
+ { x: i + 5 * o / 6, y: a - u },
+ { x: i + o, y: a },
+ { x: i + 5 * o / 6, y: a + u },
+ { x: i + 2 * o / 3, y: a + u }
+ ], r.label.x = r.x, r.label.y = r.y;
+ }
+ });
+}
+function In(n, e) {
+ return Tn(gn(n, e), Number);
+}
+function Sn(n) {
+ var e = {};
+ return c(n, function(r, t) {
+ e[t.toLowerCase()] = r;
+ }), e;
+}
+export {
+ A as G,
+ x as a,
+ dn as b,
+ bo as d,
+ c as f,
+ b as h,
+ Xt as i,
+ zs as l,
+ y as m,
+ gn as p,
+ k as r,
+ te as u
+};
+//# sourceMappingURL=layout-492ec81d.js.map
diff --git a/scopegraphs-render-docs/doc/js/line-05ccbb85.js b/scopegraphs-render-docs/doc/js/line-05ccbb85.js
new file mode 100644
index 0000000..ea8c48e
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/line-05ccbb85.js
@@ -0,0 +1,35 @@
+import { a } from "./array-2ff2c7a6.js";
+import { c as o, p as d } from "./constant-2fe7eae5.js";
+import { y as h } from "./utils-8ea37061.js";
+function v(e) {
+ return e[0];
+}
+function y(e) {
+ return e[1];
+}
+function S(e, u) {
+ var p = o(!0), i = null, l = h, r = null;
+ e = typeof e == "function" ? e : e === void 0 ? v : o(e), u = typeof u == "function" ? u : u === void 0 ? y : o(u);
+ function t(n) {
+ var f, m = (n = a(n)).length, s, c = !1, g;
+ for (i == null && (r = l(g = d())), f = 0; f <= m; ++f)
+ !(f < m && p(s = n[f], f, n)) === c && ((c = !c) ? r.lineStart() : r.lineEnd()), c && r.point(+e(s, f, n), +u(s, f, n));
+ if (g)
+ return r = null, g + "" || null;
+ }
+ return t.x = function(n) {
+ return arguments.length ? (e = typeof n == "function" ? n : o(+n), t) : e;
+ }, t.y = function(n) {
+ return arguments.length ? (u = typeof n == "function" ? n : o(+n), t) : u;
+ }, t.defined = function(n) {
+ return arguments.length ? (p = typeof n == "function" ? n : o(!!n), t) : p;
+ }, t.curve = function(n) {
+ return arguments.length ? (l = n, i != null && (r = l(i)), t) : l;
+ }, t.context = function(n) {
+ return arguments.length ? (n == null ? i = r = null : r = l(i = n), t) : i;
+ }, t;
+}
+export {
+ S as l
+};
+//# sourceMappingURL=line-05ccbb85.js.map
diff --git a/scopegraphs-render-docs/doc/js/line-fbe8f138.js b/scopegraphs-render-docs/doc/js/line-fbe8f138.js
new file mode 100644
index 0000000..6c37fb3
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/line-fbe8f138.js
@@ -0,0 +1,51 @@
+import { a as array } from "./array-b7dcf730.js";
+import { c as constant, p as path } from "./constant-b644328d.js";
+import { y as curveLinear } from "./utils-1aebe9b6.js";
+function x(p) {
+ return p[0];
+}
+function y(p) {
+ return p[1];
+}
+function line(x$1, y$1) {
+ var defined = constant(true), context = null, curve = curveLinear, output = null;
+ x$1 = typeof x$1 === "function" ? x$1 : x$1 === void 0 ? x : constant(x$1);
+ y$1 = typeof y$1 === "function" ? y$1 : y$1 === void 0 ? y : constant(y$1);
+ function line2(data) {
+ var i, n = (data = array(data)).length, d, defined0 = false, buffer;
+ if (context == null)
+ output = curve(buffer = path());
+ for (i = 0; i <= n; ++i) {
+ if (!(i < n && defined(d = data[i], i, data)) === defined0) {
+ if (defined0 = !defined0)
+ output.lineStart();
+ else
+ output.lineEnd();
+ }
+ if (defined0)
+ output.point(+x$1(d, i, data), +y$1(d, i, data));
+ }
+ if (buffer)
+ return output = null, buffer + "" || null;
+ }
+ line2.x = function(_) {
+ return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant(+_), line2) : x$1;
+ };
+ line2.y = function(_) {
+ return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant(+_), line2) : y$1;
+ };
+ line2.defined = function(_) {
+ return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), line2) : defined;
+ };
+ line2.curve = function(_) {
+ return arguments.length ? (curve = _, context != null && (output = curve(context)), line2) : curve;
+ };
+ line2.context = function(_) {
+ return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line2) : context;
+ };
+ return line2;
+}
+export {
+ line as l
+};
+//# sourceMappingURL=line-fbe8f138.js.map
diff --git a/scopegraphs-render-docs/doc/js/logger.d.ts b/scopegraphs-render-docs/doc/js/logger.d.ts
new file mode 100644
index 0000000..0993c93
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/logger.d.ts
@@ -0,0 +1,9 @@
+export declare type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
+export declare const LEVELS: Record;
+export declare const log: Record;
+/**
+ * Sets a log level
+ *
+ * @param level - The level to set the logging to. Default is `"fatal"`
+ */
+export declare const setLogLevel: (level?: keyof typeof LEVELS | number | string) => void;
diff --git a/scopegraphs-render-docs/doc/js/mermaid.core.mjs b/scopegraphs-render-docs/doc/js/mermaid.core.mjs
new file mode 100644
index 0000000..c693229
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mermaid.core.mjs
@@ -0,0 +1,227 @@
+import dedent from "ts-dedent";
+import { l as log } from "./commonDb-573409be.js";
+import { d as detectType, i as isDetailedError, u as utils, r as registerLazyLoadedDiagrams, l as loadRegisteredDiagrams } from "./utils-d622194a.js";
+import { m as mermaidAPI } from "./mermaidAPI-3ae0f2f0.js";
+import "dompurify";
+import "dayjs";
+import "khroma";
+import "@braintree/sanitize-url";
+import "d3";
+import "lodash-es/memoize.js";
+import "stylis";
+import "lodash-es/isEmpty.js";
+const handleError = (error, errors, parseError) => {
+ log.warn(error);
+ if (isDetailedError(error)) {
+ if (parseError) {
+ parseError(error.str, error.hash);
+ }
+ errors.push({ ...error, message: error.str, error });
+ } else {
+ if (parseError) {
+ parseError(error);
+ }
+ if (error instanceof Error) {
+ errors.push({
+ str: error.message,
+ message: error.message,
+ hash: error.name,
+ error
+ });
+ }
+ }
+};
+const run = async function(options = {
+ querySelector: ".mermaid"
+}) {
+ try {
+ await runThrowsErrors(options);
+ } catch (e) {
+ if (isDetailedError(e)) {
+ log.error(e.str);
+ }
+ if (mermaid.parseError) {
+ mermaid.parseError(e);
+ }
+ if (!options.suppressErrors) {
+ log.error("Use the suppressErrors option to suppress these errors");
+ throw e;
+ }
+ }
+};
+const runThrowsErrors = async function({ postRenderCallback, querySelector, nodes } = {
+ querySelector: ".mermaid"
+}) {
+ const conf = mermaidAPI.getConfig();
+ log.debug(`${!postRenderCallback ? "No " : ""}Callback function found`);
+ let nodesToProcess;
+ if (nodes) {
+ nodesToProcess = nodes;
+ } else if (querySelector) {
+ nodesToProcess = document.querySelectorAll(querySelector);
+ } else {
+ throw new Error("Nodes and querySelector are both undefined");
+ }
+ log.debug(`Found ${nodesToProcess.length} diagrams`);
+ if ((conf == null ? void 0 : conf.startOnLoad) !== void 0) {
+ log.debug("Start On Load: " + (conf == null ? void 0 : conf.startOnLoad));
+ mermaidAPI.updateSiteConfig({ startOnLoad: conf == null ? void 0 : conf.startOnLoad });
+ }
+ const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed);
+ let txt;
+ const errors = [];
+ for (const element of Array.from(nodesToProcess)) {
+ log.info("Rendering diagram: " + element.id);
+ /*! Check if previously processed */
+ if (element.getAttribute("data-processed")) {
+ continue;
+ }
+ element.setAttribute("data-processed", "true");
+ const id = `mermaid-${idGenerator.next()}`;
+ txt = element.innerHTML;
+ txt = dedent(utils.entityDecode(txt)).trim().replace(/
/gi, "
");
+ const init2 = utils.detectInit(txt);
+ if (init2) {
+ log.debug("Detected early reinit: ", init2);
+ }
+ try {
+ const { svg, bindFunctions } = await render(id, txt, element);
+ element.innerHTML = svg;
+ if (postRenderCallback) {
+ await postRenderCallback(id);
+ }
+ if (bindFunctions) {
+ bindFunctions(element);
+ }
+ } catch (error) {
+ handleError(error, errors, mermaid.parseError);
+ }
+ }
+ if (errors.length > 0) {
+ throw errors[0];
+ }
+};
+const initialize = function(config) {
+ mermaidAPI.initialize(config);
+};
+const init = async function(config, nodes, callback) {
+ log.warn("mermaid.init is deprecated. Please use run instead.");
+ if (config) {
+ initialize(config);
+ }
+ const runOptions = { postRenderCallback: callback, querySelector: ".mermaid" };
+ if (typeof nodes === "string") {
+ runOptions.querySelector = nodes;
+ } else if (nodes) {
+ if (nodes instanceof HTMLElement) {
+ runOptions.nodes = [nodes];
+ } else {
+ runOptions.nodes = nodes;
+ }
+ }
+ await run(runOptions);
+};
+const registerExternalDiagrams = async (diagrams, {
+ lazyLoad = true
+} = {}) => {
+ registerLazyLoadedDiagrams(...diagrams);
+ if (lazyLoad === false) {
+ await loadRegisteredDiagrams();
+ }
+};
+const contentLoaded = function() {
+ if (mermaid.startOnLoad) {
+ const { startOnLoad } = mermaidAPI.getConfig();
+ if (startOnLoad) {
+ mermaid.run().catch((err) => log.error("Mermaid failed to initialize", err));
+ }
+ }
+};
+if (typeof document !== "undefined") {
+ /*!
+ * Wait for document loaded before starting the execution
+ */
+ window.addEventListener("load", contentLoaded, false);
+}
+const setParseErrorHandler = function(parseErrorHandler) {
+ mermaid.parseError = parseErrorHandler;
+};
+const executionQueue = [];
+let executionQueueRunning = false;
+const executeQueue = async () => {
+ if (executionQueueRunning) {
+ return;
+ }
+ executionQueueRunning = true;
+ while (executionQueue.length > 0) {
+ const f = executionQueue.shift();
+ if (f) {
+ try {
+ await f();
+ } catch (e) {
+ log.error("Error executing queue", e);
+ }
+ }
+ }
+ executionQueueRunning = false;
+};
+const parse = async (text, parseOptions) => {
+ return new Promise((resolve, reject) => {
+ const performCall = () => new Promise((res, rej) => {
+ mermaidAPI.parse(text, parseOptions).then(
+ (r) => {
+ res(r);
+ resolve(r);
+ },
+ (e) => {
+ var _a;
+ log.error("Error parsing", e);
+ (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);
+ rej(e);
+ reject(e);
+ }
+ );
+ });
+ executionQueue.push(performCall);
+ executeQueue().catch(reject);
+ });
+};
+const render = (id, text, container) => {
+ return new Promise((resolve, reject) => {
+ const performCall = () => new Promise((res, rej) => {
+ mermaidAPI.render(id, text, container).then(
+ (r) => {
+ res(r);
+ resolve(r);
+ },
+ (e) => {
+ var _a;
+ log.error("Error parsing", e);
+ (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);
+ rej(e);
+ reject(e);
+ }
+ );
+ });
+ executionQueue.push(performCall);
+ executeQueue().catch(reject);
+ });
+};
+const mermaid = {
+ startOnLoad: true,
+ mermaidAPI,
+ parse,
+ render,
+ init,
+ run,
+ registerExternalDiagrams,
+ initialize,
+ parseError: void 0,
+ contentLoaded,
+ setParseErrorHandler,
+ detectType
+};
+export {
+ mermaid as default
+};
+//# sourceMappingURL=mermaid.core.mjs.map
diff --git a/scopegraphs-render-docs/doc/js/mermaid.d.ts b/scopegraphs-render-docs/doc/js/mermaid.d.ts
new file mode 100644
index 0000000..f3579d8
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mermaid.d.ts
@@ -0,0 +1,145 @@
+import { MermaidConfig } from './config.type';
+import { mermaidAPI, ParseOptions, RenderResult } from './mermaidAPI';
+import { detectType } from './diagram-api/detectType';
+import type { ParseErrorFunction } from './Diagram';
+import type { DetailedError } from './utils';
+import { ExternalDiagramDefinition } from './diagram-api/types';
+import { UnknownDiagramError } from './errors';
+export type { MermaidConfig, DetailedError, ExternalDiagramDefinition, ParseErrorFunction, RenderResult, ParseOptions, UnknownDiagramError, };
+export interface RunOptions {
+ /**
+ * The query selector to use when finding elements to render. Default: `".mermaid"`.
+ */
+ querySelector?: string;
+ /**
+ * The nodes to render. If this is set, `querySelector` will be ignored.
+ */
+ nodes?: ArrayLike;
+ /**
+ * A callback to call after each diagram is rendered.
+ */
+ postRenderCallback?: (id: string) => unknown;
+ /**
+ * If `true`, errors will be logged to the console, but not thrown. Default: `false`
+ */
+ suppressErrors?: boolean;
+}
+/**
+ * ## run
+ *
+ * Function that goes through the document to find the chart definitions in there and render them.
+ *
+ * The function tags the processed attributes with the attribute data-processed and ignores found
+ * elements with the attribute already set. This way the init function can be triggered several
+ * times.
+ *
+ * ```mermaid
+ * graph LR;
+ * a(Find elements)-->b{Processed}
+ * b-->|Yes|c(Leave element)
+ * b-->|No |d(Transform)
+ * ```
+ *
+ * Renders the mermaid diagrams
+ *
+ * @param options - Optional runtime configs
+ */
+declare const run: (options?: RunOptions) => Promise;
+/**
+ * Used to set configurations for mermaid.
+ * This function should be called before the run function.
+ * @param config - Configuration object for mermaid.
+ */
+declare const initialize: (config: MermaidConfig) => void;
+/**
+ * ## init
+ *
+ * @deprecated Use {@link initialize} and {@link run} instead.
+ *
+ * Renders the mermaid diagrams
+ *
+ * @param config - **Deprecated**, please set configuration in {@link initialize}.
+ * @param nodes - **Default**: `.mermaid`. One of the following:
+ * - A DOM Node
+ * - An array of DOM nodes (as would come from a jQuery selector)
+ * - A W3C selector, a la `.mermaid`
+ * @param callback - Called once for each rendered diagram's id.
+ */
+declare const init: (config?: MermaidConfig, nodes?: string | HTMLElement | NodeListOf, callback?: ((id: string) => unknown) | undefined) => Promise;
+/**
+ * Used to register external diagram types.
+ * @param diagrams - Array of {@link ExternalDiagramDefinition}.
+ * @param opts - If opts.lazyLoad is false, the diagrams will be loaded immediately.
+ */
+declare const registerExternalDiagrams: (diagrams: ExternalDiagramDefinition[], { lazyLoad, }?: {
+ lazyLoad?: boolean | undefined;
+}) => Promise;
+/**
+ * ##contentLoaded Callback function that is called when page is loaded. This functions fetches
+ * configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the
+ * page.
+ */
+declare const contentLoaded: () => void;
+/**
+ * ## setParseErrorHandler Alternative to directly setting parseError using:
+ *
+ * ```js
+ * mermaid.parseError = function(err,hash){=
+ * forExampleDisplayErrorInGui(err); // do something with the error
+ * };
+ * ```
+ *
+ * This is provided for environments where the mermaid object can't directly have a new member added
+ * to it (eg. dart interop wrapper). (Initially there is no parseError member of mermaid).
+ *
+ * @param parseErrorHandler - New parseError() callback.
+ */
+declare const setParseErrorHandler: (parseErrorHandler: (err: any, hash: any) => void) => void;
+/**
+ * Parse the text and validate the syntax.
+ * @param text - The mermaid diagram definition.
+ * @param parseOptions - Options for parsing.
+ * @returns true if the diagram is valid, false otherwise if parseOptions.suppressErrors is true.
+ * @throws Error if the diagram is invalid and parseOptions.suppressErrors is false.
+ */
+declare const parse: (text: string, parseOptions?: ParseOptions) => Promise;
+/**
+ * Function that renders an svg with a graph from a chart definition. Usage example below.
+ *
+ * ```javascript
+ * element = document.querySelector('#graphDiv');
+ * const graphDefinition = 'graph TB\na-->b';
+ * const { svg, bindFunctions } = await mermaid.render('graphDiv', graphDefinition);
+ * element.innerHTML = svg;
+ * bindFunctions?.(element);
+ * ```
+ *
+ * @remarks
+ * Multiple calls to this function will be enqueued to run serially.
+ *
+ * @param id - The id for the SVG element (the element to be rendered)
+ * @param text - The text for the graph definition
+ * @param container - HTML element where the svg will be inserted. (Is usually element with the .mermaid class)
+ * If no svgContainingElement is provided then the SVG element will be appended to the body.
+ * Selector to element in which a div with the graph temporarily will be
+ * inserted. If one is provided a hidden div will be inserted in the body of the page instead. The
+ * element will be removed when rendering is completed.
+ * @returns Returns the SVG Definition and BindFunctions.
+ */
+declare const render: (id: string, text: string, container?: Element) => Promise;
+export interface Mermaid {
+ startOnLoad: boolean;
+ parseError?: ParseErrorFunction;
+ mermaidAPI: typeof mermaidAPI;
+ parse: typeof parse;
+ render: typeof render;
+ init: typeof init;
+ run: typeof run;
+ registerExternalDiagrams: typeof registerExternalDiagrams;
+ initialize: typeof initialize;
+ contentLoaded: typeof contentLoaded;
+ setParseErrorHandler: typeof setParseErrorHandler;
+ detectType: typeof detectType;
+}
+declare const mermaid: Mermaid;
+export default mermaid;
diff --git a/scopegraphs-render-docs/doc/js/mermaid.esm.min.mjs b/scopegraphs-render-docs/doc/js/mermaid.esm.min.mjs
new file mode 100644
index 0000000..2a01bb2
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mermaid.esm.min.mjs
@@ -0,0 +1,169 @@
+import { l as o } from "./commonDb-41f8b4c5.js";
+import { d as P, i as E, u as y, r as D, l as q } from "./utils-8ea37061.js";
+import { m } from "./mermaidAPI-67f627de.js";
+function A(e) {
+ for (var n = [], a = 1; a < arguments.length; a++)
+ n[a - 1] = arguments[a];
+ var t = Array.from(typeof e == "string" ? [e] : e);
+ t[t.length - 1] = t[t.length - 1].replace(/\r?\n([\t ]*)$/, "");
+ var c = t.reduce(function(r, i) {
+ var d = i.match(/\n([\t ]+|(?!\s).)/g);
+ return d ? r.concat(d.map(function(h) {
+ var f, l;
+ return (l = (f = h.match(/[\t ]/g)) === null || f === void 0 ? void 0 : f.length) !== null && l !== void 0 ? l : 0;
+ })) : r;
+ }, []);
+ if (c.length) {
+ var g = new RegExp(`
+[ ]{` + Math.min.apply(Math, c) + "}", "g");
+ t = t.map(function(r) {
+ return r.replace(g, `
+`);
+ });
+ }
+ t[0] = t[0].replace(/^\r?\n/, "");
+ var s = t[0];
+ return n.forEach(function(r, i) {
+ var d = s.match(/(?:^|\n)( *)$/), h = d ? d[1] : "", f = r;
+ typeof r == "string" && r.includes(`
+`) && (f = String(r).split(`
+`).map(function(l, S) {
+ return S === 0 ? l : "" + h + l;
+ }).join(`
+`)), s += f + t[i + 1];
+ }), s;
+}
+const M = (e, n, a) => {
+ o.warn(e), E(e) ? (a && a(e.str, e.hash), n.push({ ...e, message: e.str, error: e })) : (a && a(e), e instanceof Error && n.push({
+ str: e.message,
+ message: e.message,
+ hash: e.name,
+ error: e
+ }));
+}, v = async function(e = {
+ querySelector: ".mermaid"
+}) {
+ try {
+ await T(e);
+ } catch (n) {
+ if (E(n) && o.error(n.str), u.parseError && u.parseError(n), !e.suppressErrors)
+ throw o.error("Use the suppressErrors option to suppress these errors"), n;
+ }
+}, T = async function({ postRenderCallback: e, querySelector: n, nodes: a } = {
+ querySelector: ".mermaid"
+}) {
+ const t = m.getConfig();
+ o.debug(`${e ? "" : "No "}Callback function found`);
+ let c;
+ if (a)
+ c = a;
+ else if (n)
+ c = document.querySelectorAll(n);
+ else
+ throw new Error("Nodes and querySelector are both undefined");
+ o.debug(`Found ${c.length} diagrams`), (t == null ? void 0 : t.startOnLoad) !== void 0 && (o.debug("Start On Load: " + (t == null ? void 0 : t.startOnLoad)), m.updateSiteConfig({ startOnLoad: t == null ? void 0 : t.startOnLoad }));
+ const g = new y.initIdGenerator(t.deterministicIds, t.deterministicIDSeed);
+ let s;
+ const r = [];
+ for (const i of Array.from(c)) {
+ o.info("Rendering diagram: " + i.id);
+ /*! Check if previously processed */
+ if (i.getAttribute("data-processed"))
+ continue;
+ i.setAttribute("data-processed", "true");
+ const d = `mermaid-${g.next()}`;
+ s = i.innerHTML, s = A(y.entityDecode(s)).trim().replace(/
/gi, "
");
+ const h = y.detectInit(s);
+ h && o.debug("Detected early reinit: ", h);
+ try {
+ const { svg: f, bindFunctions: l } = await O(d, s, i);
+ i.innerHTML = f, e && await e(d), l && l(i);
+ } catch (f) {
+ M(f, r, u.parseError);
+ }
+ }
+ if (r.length > 0)
+ throw r[0];
+}, L = function(e) {
+ m.initialize(e);
+}, C = async function(e, n, a) {
+ o.warn("mermaid.init is deprecated. Please use run instead."), e && L(e);
+ const t = { postRenderCallback: a, querySelector: ".mermaid" };
+ typeof n == "string" ? t.querySelector = n : n && (n instanceof HTMLElement ? t.nodes = [n] : t.nodes = n), await v(t);
+}, I = async (e, {
+ lazyLoad: n = !0
+} = {}) => {
+ D(...e), n === !1 && await q();
+}, b = function() {
+ if (u.startOnLoad) {
+ const { startOnLoad: e } = m.getConfig();
+ e && u.run().catch((n) => o.error("Mermaid failed to initialize", n));
+ }
+};
+if (typeof document < "u") {
+ /*!
+ * Wait for document loaded before starting the execution
+ */
+ window.addEventListener("load", b, !1);
+}
+const $ = function(e) {
+ u.parseError = e;
+}, p = [];
+let w = !1;
+const x = async () => {
+ if (!w) {
+ for (w = !0; p.length > 0; ) {
+ const e = p.shift();
+ if (e)
+ try {
+ await e();
+ } catch (n) {
+ o.error("Error executing queue", n);
+ }
+ }
+ w = !1;
+ }
+}, z = async (e, n) => new Promise((a, t) => {
+ const c = () => new Promise((g, s) => {
+ m.parse(e, n).then(
+ (r) => {
+ g(r), a(r);
+ },
+ (r) => {
+ var i;
+ o.error("Error parsing", r), (i = u.parseError) == null || i.call(u, r), s(r), t(r);
+ }
+ );
+ });
+ p.push(c), x().catch(t);
+}), O = (e, n, a) => new Promise((t, c) => {
+ const g = () => new Promise((s, r) => {
+ m.render(e, n, a).then(
+ (i) => {
+ s(i), t(i);
+ },
+ (i) => {
+ var d;
+ o.error("Error parsing", i), (d = u.parseError) == null || d.call(u, i), r(i), c(i);
+ }
+ );
+ });
+ p.push(g), x().catch(c);
+}), u = {
+ startOnLoad: !0,
+ mermaidAPI: m,
+ parse: z,
+ render: O,
+ init: C,
+ run: v,
+ registerExternalDiagrams: I,
+ initialize: L,
+ parseError: void 0,
+ contentLoaded: b,
+ setParseErrorHandler: $,
+ detectType: P
+};
+export {
+ u as default
+};
+//# sourceMappingURL=mermaid.esm.min.mjs.map
diff --git a/scopegraphs-render-docs/doc/js/mermaid.esm.mjs b/scopegraphs-render-docs/doc/js/mermaid.esm.mjs
new file mode 100644
index 0000000..8743443
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mermaid.esm.mjs
@@ -0,0 +1,256 @@
+import { l as log } from "./commonDb-89160e91.js";
+import { d as detectType, i as isDetailedError, u as utils, r as registerLazyLoadedDiagrams, l as loadRegisteredDiagrams } from "./utils-1aebe9b6.js";
+import { m as mermaidAPI } from "./mermaidAPI-c841a67f.js";
+function dedent(templ) {
+ var values = [];
+ for (var _i = 1; _i < arguments.length; _i++) {
+ values[_i - 1] = arguments[_i];
+ }
+ var strings = Array.from(typeof templ === "string" ? [templ] : templ);
+ strings[strings.length - 1] = strings[strings.length - 1].replace(/\r?\n([\t ]*)$/, "");
+ var indentLengths = strings.reduce(function(arr, str) {
+ var matches = str.match(/\n([\t ]+|(?!\s).)/g);
+ if (matches) {
+ return arr.concat(matches.map(function(match) {
+ var _a, _b;
+ return (_b = (_a = match.match(/[\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
+ }));
+ }
+ return arr;
+ }, []);
+ if (indentLengths.length) {
+ var pattern_1 = new RegExp("\n[ ]{" + Math.min.apply(Math, indentLengths) + "}", "g");
+ strings = strings.map(function(str) {
+ return str.replace(pattern_1, "\n");
+ });
+ }
+ strings[0] = strings[0].replace(/^\r?\n/, "");
+ var string = strings[0];
+ values.forEach(function(value, i) {
+ var endentations = string.match(/(?:^|\n)( *)$/);
+ var endentation = endentations ? endentations[1] : "";
+ var indentedValue = value;
+ if (typeof value === "string" && value.includes("\n")) {
+ indentedValue = String(value).split("\n").map(function(str, i2) {
+ return i2 === 0 ? str : "" + endentation + str;
+ }).join("\n");
+ }
+ string += indentedValue + strings[i + 1];
+ });
+ return string;
+}
+const handleError = (error, errors, parseError) => {
+ log.warn(error);
+ if (isDetailedError(error)) {
+ if (parseError) {
+ parseError(error.str, error.hash);
+ }
+ errors.push({ ...error, message: error.str, error });
+ } else {
+ if (parseError) {
+ parseError(error);
+ }
+ if (error instanceof Error) {
+ errors.push({
+ str: error.message,
+ message: error.message,
+ hash: error.name,
+ error
+ });
+ }
+ }
+};
+const run = async function(options = {
+ querySelector: ".mermaid"
+}) {
+ try {
+ await runThrowsErrors(options);
+ } catch (e) {
+ if (isDetailedError(e)) {
+ log.error(e.str);
+ }
+ if (mermaid.parseError) {
+ mermaid.parseError(e);
+ }
+ if (!options.suppressErrors) {
+ log.error("Use the suppressErrors option to suppress these errors");
+ throw e;
+ }
+ }
+};
+const runThrowsErrors = async function({ postRenderCallback, querySelector, nodes } = {
+ querySelector: ".mermaid"
+}) {
+ const conf = mermaidAPI.getConfig();
+ log.debug(`${!postRenderCallback ? "No " : ""}Callback function found`);
+ let nodesToProcess;
+ if (nodes) {
+ nodesToProcess = nodes;
+ } else if (querySelector) {
+ nodesToProcess = document.querySelectorAll(querySelector);
+ } else {
+ throw new Error("Nodes and querySelector are both undefined");
+ }
+ log.debug(`Found ${nodesToProcess.length} diagrams`);
+ if ((conf == null ? void 0 : conf.startOnLoad) !== void 0) {
+ log.debug("Start On Load: " + (conf == null ? void 0 : conf.startOnLoad));
+ mermaidAPI.updateSiteConfig({ startOnLoad: conf == null ? void 0 : conf.startOnLoad });
+ }
+ const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed);
+ let txt;
+ const errors = [];
+ for (const element of Array.from(nodesToProcess)) {
+ log.info("Rendering diagram: " + element.id);
+ /*! Check if previously processed */
+ if (element.getAttribute("data-processed")) {
+ continue;
+ }
+ element.setAttribute("data-processed", "true");
+ const id = `mermaid-${idGenerator.next()}`;
+ txt = element.innerHTML;
+ txt = dedent(utils.entityDecode(txt)).trim().replace(/
/gi, "
");
+ const init2 = utils.detectInit(txt);
+ if (init2) {
+ log.debug("Detected early reinit: ", init2);
+ }
+ try {
+ const { svg, bindFunctions } = await render(id, txt, element);
+ element.innerHTML = svg;
+ if (postRenderCallback) {
+ await postRenderCallback(id);
+ }
+ if (bindFunctions) {
+ bindFunctions(element);
+ }
+ } catch (error) {
+ handleError(error, errors, mermaid.parseError);
+ }
+ }
+ if (errors.length > 0) {
+ throw errors[0];
+ }
+};
+const initialize = function(config) {
+ mermaidAPI.initialize(config);
+};
+const init = async function(config, nodes, callback) {
+ log.warn("mermaid.init is deprecated. Please use run instead.");
+ if (config) {
+ initialize(config);
+ }
+ const runOptions = { postRenderCallback: callback, querySelector: ".mermaid" };
+ if (typeof nodes === "string") {
+ runOptions.querySelector = nodes;
+ } else if (nodes) {
+ if (nodes instanceof HTMLElement) {
+ runOptions.nodes = [nodes];
+ } else {
+ runOptions.nodes = nodes;
+ }
+ }
+ await run(runOptions);
+};
+const registerExternalDiagrams = async (diagrams, {
+ lazyLoad = true
+} = {}) => {
+ registerLazyLoadedDiagrams(...diagrams);
+ if (lazyLoad === false) {
+ await loadRegisteredDiagrams();
+ }
+};
+const contentLoaded = function() {
+ if (mermaid.startOnLoad) {
+ const { startOnLoad } = mermaidAPI.getConfig();
+ if (startOnLoad) {
+ mermaid.run().catch((err) => log.error("Mermaid failed to initialize", err));
+ }
+ }
+};
+if (typeof document !== "undefined") {
+ /*!
+ * Wait for document loaded before starting the execution
+ */
+ window.addEventListener("load", contentLoaded, false);
+}
+const setParseErrorHandler = function(parseErrorHandler) {
+ mermaid.parseError = parseErrorHandler;
+};
+const executionQueue = [];
+let executionQueueRunning = false;
+const executeQueue = async () => {
+ if (executionQueueRunning) {
+ return;
+ }
+ executionQueueRunning = true;
+ while (executionQueue.length > 0) {
+ const f = executionQueue.shift();
+ if (f) {
+ try {
+ await f();
+ } catch (e) {
+ log.error("Error executing queue", e);
+ }
+ }
+ }
+ executionQueueRunning = false;
+};
+const parse = async (text, parseOptions) => {
+ return new Promise((resolve, reject) => {
+ const performCall = () => new Promise((res, rej) => {
+ mermaidAPI.parse(text, parseOptions).then(
+ (r) => {
+ res(r);
+ resolve(r);
+ },
+ (e) => {
+ var _a;
+ log.error("Error parsing", e);
+ (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);
+ rej(e);
+ reject(e);
+ }
+ );
+ });
+ executionQueue.push(performCall);
+ executeQueue().catch(reject);
+ });
+};
+const render = (id, text, container) => {
+ return new Promise((resolve, reject) => {
+ const performCall = () => new Promise((res, rej) => {
+ mermaidAPI.render(id, text, container).then(
+ (r) => {
+ res(r);
+ resolve(r);
+ },
+ (e) => {
+ var _a;
+ log.error("Error parsing", e);
+ (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);
+ rej(e);
+ reject(e);
+ }
+ );
+ });
+ executionQueue.push(performCall);
+ executeQueue().catch(reject);
+ });
+};
+const mermaid = {
+ startOnLoad: true,
+ mermaidAPI,
+ parse,
+ render,
+ init,
+ run,
+ registerExternalDiagrams,
+ initialize,
+ parseError: void 0,
+ contentLoaded,
+ setParseErrorHandler,
+ detectType
+};
+export {
+ mermaid as default
+};
+//# sourceMappingURL=mermaid.esm.mjs.map
diff --git a/scopegraphs-render-docs/doc/js/mermaid.spec.d.ts b/scopegraphs-render-docs/doc/js/mermaid.spec.d.ts
new file mode 100644
index 0000000..526656f
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mermaid.spec.d.ts
@@ -0,0 +1 @@
+import './diagram-api/diagram-orchestration';
diff --git a/scopegraphs-render-docs/doc/js/mermaidAPI-3ae0f2f0.js b/scopegraphs-render-docs/doc/js/mermaidAPI-3ae0f2f0.js
new file mode 100644
index 0000000..371d8cf
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mermaidAPI-3ae0f2f0.js
@@ -0,0 +1,820 @@
+import { select } from "d3";
+import { serialize, compile, stringify } from "stylis";
+import { l as log, g as getConfig, h as setConfig, i as getSiteConfig, u as updateSiteConfig, r as reset, j as defaultConfig, s as setLogLevel, a as addDirective, k as evaluate, m as saveConfigFromInitialize, t as theme, n as setSiteConfig } from "./commonDb-573409be.js";
+import { g as getErrorMessage, a as registerDiagram, r as registerLazyLoadedDiagrams, d as detectType, b as getDiagram, c as getDiagramLoader, U as UnknownDiagramError, e as extractFrontMatter, p as parseDirective, u as utils, f as directiveSanitizer, h as getStyles$1 } from "./utils-d622194a.js";
+import DOMPurify from "dompurify";
+import isEmpty from "lodash-es/isEmpty.js";
+const version = "10.1.0";
+const id$h = "c4";
+const detector$h = (txt) => {
+ return txt.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/) !== null;
+};
+const loader$h = async () => {
+ const { diagram: diagram2 } = await import("./c4Diagram-44c43e89.js");
+ return { id: id$h, diagram: diagram2 };
+};
+const plugin$h = {
+ id: id$h,
+ detector: detector$h,
+ loader: loader$h
+};
+const c4 = plugin$h;
+const id$g = "flowchart";
+const detector$g = (txt, config) => {
+ var _a, _b;
+ if (((_a = config == null ? void 0 : config.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper" || ((_b = config == null ? void 0 : config.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") {
+ return false;
+ }
+ return txt.match(/^\s*graph/) !== null;
+};
+const loader$g = async () => {
+ const { diagram: diagram2 } = await import("./flowDiagram-46a15f6f.js");
+ return { id: id$g, diagram: diagram2 };
+};
+const plugin$g = {
+ id: id$g,
+ detector: detector$g,
+ loader: loader$g
+};
+const flowchart = plugin$g;
+const id$f = "flowchart-v2";
+const detector$f = (txt, config) => {
+ var _a, _b, _c;
+ if (((_a = config == null ? void 0 : config.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-d3" || ((_b = config == null ? void 0 : config.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") {
+ return false;
+ }
+ if (txt.match(/^\s*graph/) !== null && ((_c = config == null ? void 0 : config.flowchart) == null ? void 0 : _c.defaultRenderer) === "dagre-wrapper") {
+ return true;
+ }
+ return txt.match(/^\s*flowchart/) !== null;
+};
+const loader$f = async () => {
+ const { diagram: diagram2 } = await import("./flowDiagram-v2-8e52592d.js");
+ return { id: id$f, diagram: diagram2 };
+};
+const plugin$f = {
+ id: id$f,
+ detector: detector$f,
+ loader: loader$f
+};
+const flowchartV2 = plugin$f;
+const id$e = "er";
+const detector$e = (txt) => {
+ return txt.match(/^\s*erDiagram/) !== null;
+};
+const loader$e = async () => {
+ const { diagram: diagram2 } = await import("./erDiagram-20cc9db4.js");
+ return { id: id$e, diagram: diagram2 };
+};
+const plugin$e = {
+ id: id$e,
+ detector: detector$e,
+ loader: loader$e
+};
+const er = plugin$e;
+const id$d = "gitGraph";
+const detector$d = (txt) => {
+ return txt.match(/^\s*gitGraph/) !== null;
+};
+const loader$d = async () => {
+ const { diagram: diagram2 } = await import("./gitGraphDiagram-0a645df6.js");
+ return { id: id$d, diagram: diagram2 };
+};
+const plugin$d = {
+ id: id$d,
+ detector: detector$d,
+ loader: loader$d
+};
+const git = plugin$d;
+const id$c = "gantt";
+const detector$c = (txt) => {
+ return txt.match(/^\s*gantt/) !== null;
+};
+const loader$c = async () => {
+ const { diagram: diagram2 } = await import("./ganttDiagram-04e74c0a.js");
+ return { id: id$c, diagram: diagram2 };
+};
+const plugin$c = {
+ id: id$c,
+ detector: detector$c,
+ loader: loader$c
+};
+const gantt = plugin$c;
+const id$b = "info";
+const detector$b = (txt) => {
+ return txt.match(/^\s*info/) !== null;
+};
+const loader$b = async () => {
+ const { diagram: diagram2 } = await import("./infoDiagram-69ec1a58.js");
+ return { id: id$b, diagram: diagram2 };
+};
+const plugin$b = {
+ id: id$b,
+ detector: detector$b,
+ loader: loader$b
+};
+const info = plugin$b;
+const id$a = "pie";
+const detector$a = (txt) => {
+ return txt.match(/^\s*pie/) !== null;
+};
+const loader$a = async () => {
+ const { diagram: diagram2 } = await import("./pieDiagram-db1a8a21.js");
+ return { id: id$a, diagram: diagram2 };
+};
+const plugin$a = {
+ id: id$a,
+ detector: detector$a,
+ loader: loader$a
+};
+const pie = plugin$a;
+const id$9 = "requirement";
+const detector$9 = (txt) => {
+ return txt.match(/^\s*requirement(Diagram)?/) !== null;
+};
+const loader$9 = async () => {
+ const { diagram: diagram2 } = await import("./requirementDiagram-b9649942.js");
+ return { id: id$9, diagram: diagram2 };
+};
+const plugin$9 = {
+ id: id$9,
+ detector: detector$9,
+ loader: loader$9
+};
+const requirement = plugin$9;
+const id$8 = "sequence";
+const detector$8 = (txt) => {
+ return txt.match(/^\s*sequenceDiagram/) !== null;
+};
+const loader$8 = async () => {
+ const { diagram: diagram2 } = await import("./sequenceDiagram-446df3e4.js");
+ return { id: id$8, diagram: diagram2 };
+};
+const plugin$8 = {
+ id: id$8,
+ detector: detector$8,
+ loader: loader$8
+};
+const sequence = plugin$8;
+const id$7 = "class";
+const detector$7 = (txt, config) => {
+ var _a;
+ if (((_a = config == null ? void 0 : config.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
+ return false;
+ }
+ return txt.match(/^\s*classDiagram/) !== null;
+};
+const loader$7 = async () => {
+ const { diagram: diagram2 } = await import("./classDiagram-634fc78b.js");
+ return { id: id$7, diagram: diagram2 };
+};
+const plugin$7 = {
+ id: id$7,
+ detector: detector$7,
+ loader: loader$7
+};
+const classDiagram = plugin$7;
+const id$6 = "classDiagram";
+const detector$6 = (txt, config) => {
+ var _a;
+ if (txt.match(/^\s*classDiagram/) !== null && ((_a = config == null ? void 0 : config.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
+ return true;
+ }
+ return txt.match(/^\s*classDiagram-v2/) !== null;
+};
+const loader$6 = async () => {
+ const { diagram: diagram2 } = await import("./classDiagram-v2-72bddc41.js");
+ return { id: id$6, diagram: diagram2 };
+};
+const plugin$6 = {
+ id: id$6,
+ detector: detector$6,
+ loader: loader$6
+};
+const classDiagramV2 = plugin$6;
+const id$5 = "state";
+const detector$5 = (txt, config) => {
+ var _a;
+ if (((_a = config == null ? void 0 : config.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
+ return false;
+ }
+ return txt.match(/^\s*stateDiagram/) !== null;
+};
+const loader$5 = async () => {
+ const { diagram: diagram2 } = await import("./stateDiagram-d53d2428.js");
+ return { id: id$5, diagram: diagram2 };
+};
+const plugin$5 = {
+ id: id$5,
+ detector: detector$5,
+ loader: loader$5
+};
+const state = plugin$5;
+const id$4 = "stateDiagram";
+const detector$4 = (text, config) => {
+ var _a, _b;
+ if (text.match(/^\s*stateDiagram-v2/) !== null) {
+ return true;
+ }
+ if (text.match(/^\s*stateDiagram/) && ((_a = config == null ? void 0 : config.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
+ return true;
+ }
+ if (text.match(/^\s*stateDiagram/) && ((_b = config == null ? void 0 : config.state) == null ? void 0 : _b.defaultRenderer) === "dagre-wrapper") {
+ return true;
+ }
+ return false;
+};
+const loader$4 = async () => {
+ const { diagram: diagram2 } = await import("./stateDiagram-v2-9765461d.js");
+ return { id: id$4, diagram: diagram2 };
+};
+const plugin$4 = {
+ id: id$4,
+ detector: detector$4,
+ loader: loader$4
+};
+const stateV2 = plugin$4;
+const id$3 = "journey";
+const detector$3 = (txt) => {
+ return txt.match(/^\s*journey/) !== null;
+};
+const loader$3 = async () => {
+ const { diagram: diagram2 } = await import("./journeyDiagram-d38aa57d.js");
+ return { id: id$3, diagram: diagram2 };
+};
+const plugin$3 = {
+ id: id$3,
+ detector: detector$3,
+ loader: loader$3
+};
+const journey = plugin$3;
+const getStyles = () => ``;
+const styles = getStyles;
+const setConf = function() {
+};
+const draw = (_text, id2, mermaidVersion) => {
+ try {
+ log.debug("Renering svg for syntax error\n");
+ const svg = select("#" + id2);
+ const g = svg.append("g");
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"
+ );
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"
+ );
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"
+ );
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"
+ );
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"
+ );
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"
+ );
+ g.append("text").attr("class", "error-text").attr("x", 1440).attr("y", 250).attr("font-size", "150px").style("text-anchor", "middle").text("Syntax error in text");
+ g.append("text").attr("class", "error-text").attr("x", 1250).attr("y", 400).attr("font-size", "100px").style("text-anchor", "middle").text("mermaid version " + mermaidVersion);
+ svg.attr("height", 100);
+ svg.attr("width", 500);
+ svg.attr("viewBox", "768 0 912 512");
+ } catch (e) {
+ log.error("Error while rendering info diagram");
+ log.error(getErrorMessage(e));
+ }
+};
+const errorRenderer = {
+ setConf,
+ draw
+};
+const diagram = {
+ db: {
+ clear: () => {
+ }
+ },
+ styles,
+ renderer: errorRenderer,
+ parser: {
+ parser: { yy: {} },
+ parse: () => {
+ }
+ },
+ init: () => {
+ }
+};
+const errorDiagram = diagram;
+const id$2 = "flowchart-elk";
+const detector$2 = (txt, config) => {
+ var _a;
+ if (
+ // If diagram explicitly states flowchart-elk
+ txt.match(/^\s*flowchart-elk/) || // If a flowchart/graph diagram has their default renderer set to elk
+ txt.match(/^\s*flowchart|graph/) && ((_a = config == null ? void 0 : config.flowchart) == null ? void 0 : _a.defaultRenderer) === "elk"
+ ) {
+ return true;
+ }
+ return false;
+};
+const loader$2 = async () => {
+ const { diagram: diagram2 } = await import("./flowchart-elk-definition-a44a74cb.js");
+ return { id: id$2, diagram: diagram2 };
+};
+const plugin$2 = {
+ id: id$2,
+ detector: detector$2,
+ loader: loader$2
+};
+const flowchartElk = plugin$2;
+const id$1 = "timeline";
+const detector$1 = (txt) => {
+ return txt.match(/^\s*timeline/) !== null;
+};
+const loader$1 = async () => {
+ const { diagram: diagram2 } = await import("./timeline-definition-de69aca6.js");
+ return { id: id$1, diagram: diagram2 };
+};
+const plugin$1 = {
+ id: id$1,
+ detector: detector$1,
+ loader: loader$1
+};
+const timeline = plugin$1;
+const id = "mindmap";
+const detector = (txt) => {
+ return txt.match(/^\s*mindmap/) !== null;
+};
+const loader = async () => {
+ const { diagram: diagram2 } = await import("./mindmap-definition-65b51176.js");
+ return { id, diagram: diagram2 };
+};
+const plugin = {
+ id,
+ detector,
+ loader
+};
+const mindmap = plugin;
+let hasLoadedDiagrams = false;
+const addDiagrams = () => {
+ if (hasLoadedDiagrams) {
+ return;
+ }
+ hasLoadedDiagrams = true;
+ registerDiagram("error", errorDiagram, (text) => {
+ return text.toLowerCase().trim() === "error";
+ });
+ registerDiagram(
+ "---",
+ // --- diagram type may appear if YAML front-matter is not parsed correctly
+ {
+ db: {
+ clear: () => {
+ }
+ },
+ styles: {},
+ // should never be used
+ renderer: {},
+ // should never be used
+ parser: {
+ parser: { yy: {} },
+ parse: () => {
+ throw new Error(
+ "Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks"
+ );
+ }
+ },
+ init: () => null
+ // no op
+ },
+ (text) => {
+ return text.toLowerCase().trimStart().startsWith("---");
+ }
+ );
+ registerLazyLoadedDiagrams(
+ c4,
+ classDiagramV2,
+ classDiagram,
+ er,
+ gantt,
+ info,
+ pie,
+ requirement,
+ sequence,
+ flowchartElk,
+ flowchartV2,
+ flowchart,
+ mindmap,
+ timeline,
+ git,
+ stateV2,
+ state,
+ journey
+ );
+};
+const cleanupComments = (text) => {
+ return text.trimStart().replace(/^\s*%%(?!{)[^\n]+\n?/gm, "");
+};
+class Diagram {
+ constructor(text) {
+ var _a, _b;
+ this.text = text;
+ this.type = "graph";
+ this.text += "\n";
+ const cnf = getConfig();
+ try {
+ this.type = detectType(text, cnf);
+ } catch (e) {
+ this.type = "error";
+ this.detectError = e;
+ }
+ const diagram2 = getDiagram(this.type);
+ log.debug("Type " + this.type);
+ this.db = diagram2.db;
+ (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);
+ this.renderer = diagram2.renderer;
+ this.parser = diagram2.parser;
+ const originalParse = this.parser.parse.bind(this.parser);
+ this.parser.parse = (text2) => originalParse(cleanupComments(extractFrontMatter(text2, this.db)));
+ this.parser.parser.yy = this.db;
+ if (diagram2.init) {
+ diagram2.init(cnf);
+ log.info("Initialized diagram " + this.type, cnf);
+ }
+ this.parse();
+ }
+ parse() {
+ var _a, _b;
+ if (this.detectError) {
+ throw this.detectError;
+ }
+ (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);
+ this.parser.parse(this.text);
+ }
+ async render(id2, version2) {
+ await this.renderer.draw(this.text, id2, version2, this);
+ }
+ getParser() {
+ return this.parser;
+ }
+ getType() {
+ return this.type;
+ }
+}
+const getDiagramFromText = async (text) => {
+ const type = detectType(text, getConfig());
+ try {
+ getDiagram(type);
+ } catch (error) {
+ const loader2 = getDiagramLoader(type);
+ if (!loader2) {
+ throw new UnknownDiagramError(`Diagram ${type} not found.`);
+ }
+ const { id: id2, diagram: diagram2 } = await loader2();
+ registerDiagram(id2, diagram2);
+ }
+ return new Diagram(text);
+};
+let interactionFunctions = [];
+const addFunction = (func) => {
+ interactionFunctions.push(func);
+};
+const attachFunctions = () => {
+ interactionFunctions.forEach((f) => {
+ f();
+ });
+ interactionFunctions = [];
+};
+const SVG_ROLE = "graphics-document document";
+function setA11yDiagramInfo(svg, diagramType) {
+ svg.attr("role", SVG_ROLE);
+ if (!isEmpty(diagramType)) {
+ svg.attr("aria-roledescription", diagramType);
+ }
+}
+function addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) {
+ if (svg.insert === void 0) {
+ return;
+ }
+ if (a11yTitle || a11yDesc) {
+ if (a11yDesc) {
+ const descId = "chart-desc-" + baseId;
+ svg.attr("aria-describedby", descId);
+ svg.insert("desc", ":first-child").attr("id", descId).text(a11yDesc);
+ }
+ if (a11yTitle) {
+ const titleId = "chart-title-" + baseId;
+ svg.attr("aria-labelledby", titleId);
+ svg.insert("title", ":first-child").attr("id", titleId).text(a11yTitle);
+ }
+ } else {
+ return;
+ }
+}
+const CLASSDEF_DIAGRAMS = [
+ "graph",
+ "flowchart",
+ "flowchart-v2",
+ "flowchart-elk",
+ "stateDiagram",
+ "stateDiagram-v2"
+];
+const MAX_TEXTLENGTH = 5e4;
+const MAX_TEXTLENGTH_EXCEEDED_MSG = "graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa";
+const SECURITY_LVL_SANDBOX = "sandbox";
+const SECURITY_LVL_LOOSE = "loose";
+const XMLNS_SVG_STD = "http://www.w3.org/2000/svg";
+const XMLNS_XLINK_STD = "http://www.w3.org/1999/xlink";
+const XMLNS_XHTML_STD = "http://www.w3.org/1999/xhtml";
+const IFRAME_WIDTH = "100%";
+const IFRAME_HEIGHT = "100%";
+const IFRAME_STYLES = "border:0;margin:0;";
+const IFRAME_BODY_STYLE = "margin:0";
+const IFRAME_SANDBOX_OPTS = "allow-top-navigation-by-user-activation allow-popups";
+const IFRAME_NOT_SUPPORTED_MSG = 'The "iframe" tag is not supported by your browser.';
+const DOMPURIFY_TAGS = ["foreignobject"];
+const DOMPURIFY_ATTR = ["dominant-baseline"];
+async function parse(text, parseOptions) {
+ addDiagrams();
+ try {
+ const diagram2 = await getDiagramFromText(text);
+ diagram2.parse();
+ } catch (error) {
+ if (parseOptions == null ? void 0 : parseOptions.suppressErrors) {
+ return false;
+ }
+ throw error;
+ }
+ return true;
+}
+const encodeEntities = function(text) {
+ let txt = text;
+ txt = txt.replace(/style.*:\S*#.*;/g, function(s) {
+ return s.substring(0, s.length - 1);
+ });
+ txt = txt.replace(/classDef.*:\S*#.*;/g, function(s) {
+ return s.substring(0, s.length - 1);
+ });
+ txt = txt.replace(/#\w+;/g, function(s) {
+ const innerTxt = s.substring(1, s.length - 1);
+ const isInt = /^\+?\d+$/.test(innerTxt);
+ if (isInt) {
+ return "fl°°" + innerTxt + "¶ß";
+ } else {
+ return "fl°" + innerTxt + "¶ß";
+ }
+ });
+ return txt;
+};
+const decodeEntities = function(text) {
+ let txt = text;
+ txt = txt.replace(/fl°°/g, "");
+ txt = txt.replace(/fl°/g, "&");
+ txt = txt.replace(/¶ß/g, ";");
+ return txt;
+};
+const cssImportantStyles = (cssClass, element, cssClasses = []) => {
+ return `
+.${cssClass} ${element} { ${cssClasses.join(" !important; ")} !important; }`;
+};
+const createCssStyles = (config, graphType, classDefs = {}) => {
+ var _a;
+ let cssStyles = "";
+ if (config.themeCSS !== void 0) {
+ cssStyles += `
+${config.themeCSS}`;
+ }
+ if (config.fontFamily !== void 0) {
+ cssStyles += `
+:root { --mermaid-font-family: ${config.fontFamily}}`;
+ }
+ if (config.altFontFamily !== void 0) {
+ cssStyles += `
+:root { --mermaid-alt-font-family: ${config.altFontFamily}}`;
+ }
+ if (!isEmpty(classDefs) && CLASSDEF_DIAGRAMS.includes(graphType)) {
+ const htmlLabels = config.htmlLabels || ((_a = config.flowchart) == null ? void 0 : _a.htmlLabels);
+ const cssHtmlElements = ["> *", "span"];
+ const cssShapeElements = ["rect", "polygon", "ellipse", "circle", "path"];
+ const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;
+ for (const classId in classDefs) {
+ const styleClassDef = classDefs[classId];
+ if (!isEmpty(styleClassDef.styles)) {
+ cssElements.forEach((cssElement) => {
+ cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);
+ });
+ }
+ if (!isEmpty(styleClassDef.textStyles)) {
+ cssStyles += cssImportantStyles(styleClassDef.id, "tspan", styleClassDef.textStyles);
+ }
+ }
+ }
+ return cssStyles;
+};
+const createUserStyles = (config, graphType, classDefs, svgId) => {
+ const userCSSstyles = createCssStyles(config, graphType, classDefs);
+ const allStyles = getStyles$1(graphType, userCSSstyles, config.themeVariables);
+ return serialize(compile(`${svgId}{${allStyles}}`), stringify);
+};
+const cleanUpSvgCode = (svgCode = "", inSandboxMode, useArrowMarkerUrls) => {
+ let cleanedUpSvg = svgCode;
+ if (!useArrowMarkerUrls && !inSandboxMode) {
+ cleanedUpSvg = cleanedUpSvg.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#');
+ }
+ cleanedUpSvg = decodeEntities(cleanedUpSvg);
+ cleanedUpSvg = cleanedUpSvg.replace(/
/g, "
");
+ return cleanedUpSvg;
+};
+const putIntoIFrame = (svgCode = "", svgElement) => {
+ const height = svgElement ? svgElement.viewBox.baseVal.height + "px" : IFRAME_HEIGHT;
+ const base64encodedSrc = btoa('' + svgCode + "");
+ return ``;
+};
+const appendDivSvgG = (parentRoot, id2, enclosingDivId, divStyle, svgXlink) => {
+ const enclosingDiv = parentRoot.append("div");
+ enclosingDiv.attr("id", enclosingDivId);
+ if (divStyle) {
+ enclosingDiv.attr("style", divStyle);
+ }
+ const svgNode = enclosingDiv.append("svg").attr("id", id2).attr("width", "100%").attr("xmlns", XMLNS_SVG_STD);
+ if (svgXlink) {
+ svgNode.attr("xmlns:xlink", svgXlink);
+ }
+ svgNode.append("g");
+ return parentRoot;
+};
+function sandboxedIframe(parentNode, iFrameId) {
+ return parentNode.append("iframe").attr("id", iFrameId).attr("style", "width: 100%; height: 100%;").attr("sandbox", "");
+}
+const removeExistingElements = (doc, id2, divId, iFrameId) => {
+ var _a, _b, _c;
+ (_a = doc.getElementById(id2)) == null ? void 0 : _a.remove();
+ (_b = doc.getElementById(divId)) == null ? void 0 : _b.remove();
+ (_c = doc.getElementById(iFrameId)) == null ? void 0 : _c.remove();
+};
+const render = async function(id2, text, svgContainingElement) {
+ var _a, _b, _c, _d;
+ addDiagrams();
+ reset();
+ const graphInit = utils.detectInit(text);
+ if (graphInit) {
+ directiveSanitizer(graphInit);
+ addDirective(graphInit);
+ }
+ const config = getConfig();
+ log.debug(config);
+ if (text.length > ((config == null ? void 0 : config.maxTextSize) ?? MAX_TEXTLENGTH)) {
+ text = MAX_TEXTLENGTH_EXCEEDED_MSG;
+ }
+ text = text.replace(/\r\n?/g, "\n");
+ const idSelector = "#" + id2;
+ const iFrameID = "i" + id2;
+ const iFrameID_selector = "#" + iFrameID;
+ const enclosingDivID = "d" + id2;
+ const enclosingDivID_selector = "#" + enclosingDivID;
+ let root = select("body");
+ const isSandboxed = config.securityLevel === SECURITY_LVL_SANDBOX;
+ const isLooseSecurityLevel = config.securityLevel === SECURITY_LVL_LOOSE;
+ const fontFamily = config.fontFamily;
+ if (svgContainingElement !== void 0) {
+ if (svgContainingElement) {
+ svgContainingElement.innerHTML = "";
+ }
+ if (isSandboxed) {
+ const iframe = sandboxedIframe(select(svgContainingElement), iFrameID);
+ root = select(iframe.nodes()[0].contentDocument.body);
+ root.node().style.margin = 0;
+ } else {
+ root = select(svgContainingElement);
+ }
+ appendDivSvgG(root, id2, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);
+ } else {
+ removeExistingElements(document, id2, enclosingDivID, iFrameID);
+ if (isSandboxed) {
+ const iframe = sandboxedIframe(select("body"), iFrameID);
+ root = select(iframe.nodes()[0].contentDocument.body);
+ root.node().style.margin = 0;
+ } else {
+ root = select("body");
+ }
+ appendDivSvgG(root, id2, enclosingDivID);
+ }
+ text = encodeEntities(text);
+ let diag;
+ let parseEncounteredException;
+ try {
+ diag = await getDiagramFromText(text);
+ } catch (error) {
+ diag = new Diagram("error");
+ parseEncounteredException = error;
+ }
+ const element = root.select(enclosingDivID_selector).node();
+ const graphType = diag.type;
+ const svg = element.firstChild;
+ const firstChild = svg.firstChild;
+ const diagramClassDefs = CLASSDEF_DIAGRAMS.includes(graphType) ? diag.renderer.getClasses(text, diag) : {};
+ const rules = createUserStyles(
+ config,
+ graphType,
+ // @ts-ignore convert renderer to TS.
+ diagramClassDefs,
+ idSelector
+ );
+ const style1 = document.createElement("style");
+ style1.innerHTML = rules;
+ svg.insertBefore(style1, firstChild);
+ try {
+ await diag.renderer.draw(text, id2, version, diag);
+ } catch (e) {
+ errorRenderer.draw(text, id2, version);
+ throw e;
+ }
+ const svgNode = root.select(`${enclosingDivID_selector} svg`);
+ const a11yTitle = (_b = (_a = diag.db).getAccTitle) == null ? void 0 : _b.call(_a);
+ const a11yDescr = (_d = (_c = diag.db).getAccDescription) == null ? void 0 : _d.call(_c);
+ addA11yInfo(graphType, svgNode, a11yTitle, a11yDescr);
+ root.select(`[id="${id2}"]`).selectAll("foreignobject > *").attr("xmlns", XMLNS_XHTML_STD);
+ let svgCode = root.select(enclosingDivID_selector).node().innerHTML;
+ log.debug("config.arrowMarkerAbsolute", config.arrowMarkerAbsolute);
+ svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config.arrowMarkerAbsolute));
+ if (isSandboxed) {
+ const svgEl = root.select(enclosingDivID_selector + " svg").node();
+ svgCode = putIntoIFrame(svgCode, svgEl);
+ } else if (!isLooseSecurityLevel) {
+ svgCode = DOMPurify.sanitize(svgCode, {
+ ADD_TAGS: DOMPURIFY_TAGS,
+ ADD_ATTR: DOMPURIFY_ATTR
+ });
+ }
+ attachFunctions();
+ if (parseEncounteredException) {
+ throw parseEncounteredException;
+ }
+ const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;
+ const node = select(tmpElementSelector).node();
+ if (node && "remove" in node) {
+ node.remove();
+ }
+ return {
+ svg: svgCode,
+ bindFunctions: diag.db.bindFunctions
+ };
+};
+function initialize(options = {}) {
+ var _a;
+ if ((options == null ? void 0 : options.fontFamily) && !((_a = options.themeVariables) == null ? void 0 : _a.fontFamily)) {
+ if (!options.themeVariables) {
+ options.themeVariables = {};
+ }
+ options.themeVariables.fontFamily = options.fontFamily;
+ }
+ saveConfigFromInitialize(options);
+ if ((options == null ? void 0 : options.theme) && options.theme in theme) {
+ options.themeVariables = theme[options.theme].getThemeVariables(
+ options.themeVariables
+ );
+ } else if (options) {
+ options.themeVariables = theme.default.getThemeVariables(options.themeVariables);
+ }
+ const config = typeof options === "object" ? setSiteConfig(options) : getSiteConfig();
+ setLogLevel(config.logLevel);
+ addDiagrams();
+}
+function addA11yInfo(graphType, svgNode, a11yTitle, a11yDescr) {
+ setA11yDiagramInfo(svgNode, graphType);
+ addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr("id"));
+}
+const mermaidAPI = Object.freeze({
+ render,
+ parse,
+ parseDirective,
+ getDiagramFromText,
+ initialize,
+ getConfig,
+ setConfig,
+ getSiteConfig,
+ updateSiteConfig,
+ reset: () => {
+ reset();
+ },
+ globalReset: () => {
+ reset(defaultConfig);
+ },
+ defaultConfig
+});
+setLogLevel(getConfig().logLevel);
+reset(getConfig());
+export {
+ addFunction as a,
+ decodeEntities as d,
+ mermaidAPI as m
+};
+//# sourceMappingURL=mermaidAPI-3ae0f2f0.js.map
diff --git a/scopegraphs-render-docs/doc/js/mermaidAPI-67f627de.js b/scopegraphs-render-docs/doc/js/mermaidAPI-67f627de.js
new file mode 100644
index 0000000..c472e01
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mermaidAPI-67f627de.js
@@ -0,0 +1,867 @@
+import { l as M, h as A, g as R, i as De, j as zt, u as Ae, r as H, k as Tt, s as Bt, a as Ee, m as je, p as xe, n as Ce, t as Z, o as Ie } from "./commonDb-41f8b4c5.js";
+import { g as Me, a as rt, r as ke, d as Ut, b as Gt, c as Le, U as Fe, e as _e, f as Y, h as B, t as O, j as q, M as at, k as Re, m as Oe, p as Ve, u as Pe, n as ze, o as Be } from "./utils-8ea37061.js";
+var Nt = "comm", Xt = "rule", Ht = "decl", Ue = "@import", Ge = "@keyframes", Ne = Math.abs, ft = String.fromCharCode;
+function Yt(t) {
+ return t.trim();
+}
+function nt(t, e, r) {
+ return t.replace(e, r);
+}
+function Xe(t, e) {
+ return t.indexOf(e);
+}
+function W(t, e) {
+ return t.charCodeAt(e) | 0;
+}
+function z(t, e, r) {
+ return t.slice(e, r);
+}
+function x(t) {
+ return t.length;
+}
+function qt(t) {
+ return t.length;
+}
+function U(t, e) {
+ return e.push(t), t;
+}
+var K = 1, _ = 1, Wt = 0, $ = 0, m = 0, V = "";
+function pt(t, e, r, a, n, o, d) {
+ return { value: t, root: e, parent: r, type: a, props: n, children: o, line: K, column: _, length: d, return: "" };
+}
+function He() {
+ return m;
+}
+function Ye() {
+ return m = $ > 0 ? W(V, --$) : 0, _--, m === 10 && (_ = 1, K--), m;
+}
+function v() {
+ return m = $ < Wt ? W(V, $++) : 0, _++, m === 10 && (_ = 1, K++), m;
+}
+function k() {
+ return W(V, $);
+}
+function G() {
+ return $;
+}
+function J(t, e) {
+ return z(V, t, e);
+}
+function st(t) {
+ switch (t) {
+ case 0:
+ case 9:
+ case 10:
+ case 13:
+ case 32:
+ return 5;
+ case 33:
+ case 43:
+ case 44:
+ case 47:
+ case 62:
+ case 64:
+ case 126:
+ case 59:
+ case 123:
+ case 125:
+ return 4;
+ case 58:
+ return 3;
+ case 34:
+ case 39:
+ case 40:
+ case 91:
+ return 2;
+ case 41:
+ case 93:
+ return 1;
+ }
+ return 0;
+}
+function qe(t) {
+ return K = _ = 1, Wt = x(V = t), $ = 0, [];
+}
+function We(t) {
+ return V = "", t;
+}
+function tt(t) {
+ return Yt(J($ - 1, ot(t === 91 ? t + 2 : t === 40 ? t + 1 : t)));
+}
+function Ke(t) {
+ for (; (m = k()) && m < 33; )
+ v();
+ return st(t) > 2 || st(m) > 3 ? "" : " ";
+}
+function Je(t, e) {
+ for (; --e && v() && !(m < 48 || m > 102 || m > 57 && m < 65 || m > 70 && m < 97); )
+ ;
+ return J(t, G() + (e < 6 && k() == 32 && v() == 32));
+}
+function ot(t) {
+ for (; v(); )
+ switch (m) {
+ case t:
+ return $;
+ case 34:
+ case 39:
+ t !== 34 && t !== 39 && ot(m);
+ break;
+ case 40:
+ t === 41 && ot(t);
+ break;
+ case 92:
+ v();
+ break;
+ }
+ return $;
+}
+function Qe(t, e) {
+ for (; v() && t + m !== 47 + 10; )
+ if (t + m === 42 + 42 && k() === 47)
+ break;
+ return "/*" + J(e, $ - 1) + "*" + ft(t === 47 ? t : v());
+}
+function Ze(t) {
+ for (; !st(k()); )
+ v();
+ return J(t, $);
+}
+function tr(t) {
+ return We(N("", null, null, null, [""], t = qe(t), 0, [0], t));
+}
+function N(t, e, r, a, n, o, d, p, w) {
+ for (var y = 0, s = 0, l = d, E = 0, j = 0, u = 0, h = 1, L = 1, g = 1, f = 0, T = "", F = n, S = o, b = a, i = T; L; )
+ switch (u = f, f = v()) {
+ case 40:
+ if (u != 108 && W(i, l - 1) == 58) {
+ Xe(i += nt(tt(f), "&", "&\f"), "&\f") != -1 && (g = -1);
+ break;
+ }
+ case 34:
+ case 39:
+ case 91:
+ i += tt(f);
+ break;
+ case 9:
+ case 10:
+ case 13:
+ case 32:
+ i += Ke(u);
+ break;
+ case 92:
+ i += Je(G() - 1, 7);
+ continue;
+ case 47:
+ switch (k()) {
+ case 42:
+ case 47:
+ U(er(Qe(v(), G()), e, r), w);
+ break;
+ default:
+ i += "/";
+ }
+ break;
+ case 123 * h:
+ p[y++] = x(i) * g;
+ case 125 * h:
+ case 59:
+ case 0:
+ switch (f) {
+ case 0:
+ case 125:
+ L = 0;
+ case 59 + s:
+ j > 0 && x(i) - l && U(j > 32 ? Dt(i + ";", a, r, l - 1) : Dt(nt(i, " ", "") + ";", a, r, l - 2), w);
+ break;
+ case 59:
+ i += ";";
+ default:
+ if (U(b = St(i, e, r, y, s, n, p, T, F = [], S = [], l), o), f === 123)
+ if (s === 0)
+ N(i, e, b, b, F, o, l, p, S);
+ else
+ switch (E) {
+ case 100:
+ case 109:
+ case 115:
+ N(t, b, b, a && U(St(t, b, b, 0, 0, n, p, T, n, F = [], l), S), n, S, l, p, a ? F : S);
+ break;
+ default:
+ N(i, b, b, b, [""], S, 0, p, S);
+ }
+ }
+ y = s = j = 0, h = g = 1, T = i = "", l = d;
+ break;
+ case 58:
+ l = 1 + x(i), j = u;
+ default:
+ if (h < 1) {
+ if (f == 123)
+ --h;
+ else if (f == 125 && h++ == 0 && Ye() == 125)
+ continue;
+ }
+ switch (i += ft(f), f * h) {
+ case 38:
+ g = s > 0 ? 1 : (i += "\f", -1);
+ break;
+ case 44:
+ p[y++] = (x(i) - 1) * g, g = 1;
+ break;
+ case 64:
+ k() === 45 && (i += tt(v())), E = k(), s = l = x(T = i += Ze(G())), f++;
+ break;
+ case 45:
+ u === 45 && x(i) == 2 && (h = 0);
+ }
+ }
+ return o;
+}
+function St(t, e, r, a, n, o, d, p, w, y, s) {
+ for (var l = n - 1, E = n === 0 ? o : [""], j = qt(E), u = 0, h = 0, L = 0; u < a; ++u)
+ for (var g = 0, f = z(t, l + 1, l = Ne(h = d[u])), T = t; g < j; ++g)
+ (T = Yt(h > 0 ? E[g] + " " + f : nt(f, /&\f/g, E[g]))) && (w[L++] = T);
+ return pt(t, e, r, n === 0 ? Xt : p, w, y, s);
+}
+function er(t, e, r) {
+ return pt(t, e, r, Nt, ft(He()), z(t, 2, -2), 0);
+}
+function Dt(t, e, r, a) {
+ return pt(t, e, r, Ht, z(t, 0, a), z(t, a + 1, -1), a);
+}
+function ct(t, e) {
+ for (var r = "", a = qt(t), n = 0; n < a; n++)
+ r += e(t[n], n, t, e) || "";
+ return r;
+}
+function rr(t, e, r, a) {
+ switch (t.type) {
+ case Ue:
+ case Ht:
+ return t.return = t.return || t.value;
+ case Nt:
+ return "";
+ case Ge:
+ return t.return = t.value + "{" + ct(t.children, a) + "}";
+ case Xt:
+ t.value = t.props.join(",");
+ }
+ return x(r = ct(t.children, a)) ? t.return = t.value + "{" + r + "}" : "";
+}
+const At = "10.1.0", Kt = "c4", ar = (t) => t.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/) !== null, nr = async () => {
+ const { diagram: t } = await import("./c4Diagram-d4b415eb.js");
+ return { id: Kt, diagram: t };
+}, sr = {
+ id: Kt,
+ detector: ar,
+ loader: nr
+}, or = sr, Jt = "flowchart", cr = (t, e) => {
+ var r, a;
+ return ((r = e == null ? void 0 : e.flowchart) == null ? void 0 : r.defaultRenderer) === "dagre-wrapper" || ((a = e == null ? void 0 : e.flowchart) == null ? void 0 : a.defaultRenderer) === "elk" ? !1 : t.match(/^\s*graph/) !== null;
+}, ir = async () => {
+ const { diagram: t } = await import("./flowDiagram-7d05970f.js");
+ return { id: Jt, diagram: t };
+}, lr = {
+ id: Jt,
+ detector: cr,
+ loader: ir
+}, dr = lr, Qt = "flowchart-v2", ur = (t, e) => {
+ var r, a, n;
+ return ((r = e == null ? void 0 : e.flowchart) == null ? void 0 : r.defaultRenderer) === "dagre-d3" || ((a = e == null ? void 0 : e.flowchart) == null ? void 0 : a.defaultRenderer) === "elk" ? !1 : t.match(/^\s*graph/) !== null && ((n = e == null ? void 0 : e.flowchart) == null ? void 0 : n.defaultRenderer) === "dagre-wrapper" ? !0 : t.match(/^\s*flowchart/) !== null;
+}, mr = async () => {
+ const { diagram: t } = await import("./flowDiagram-v2-6bfe9e0e.js");
+ return { id: Qt, diagram: t };
+}, fr = {
+ id: Qt,
+ detector: ur,
+ loader: mr
+}, pr = fr, Zt = "er", hr = (t) => t.match(/^\s*erDiagram/) !== null, gr = async () => {
+ const { diagram: t } = await import("./erDiagram-215b0341.js");
+ return { id: Zt, diagram: t };
+}, yr = {
+ id: Zt,
+ detector: hr,
+ loader: gr
+}, br = yr, te = "gitGraph", wr = (t) => t.match(/^\s*gitGraph/) !== null, $r = async () => {
+ const { diagram: t } = await import("./gitGraphDiagram-603d2a33.js");
+ return { id: te, diagram: t };
+}, vr = {
+ id: te,
+ detector: wr,
+ loader: $r
+}, Tr = vr, ee = "gantt", Sr = (t) => t.match(/^\s*gantt/) !== null, Dr = async () => {
+ const { diagram: t } = await import("./ganttDiagram-6b6599ba.js");
+ return { id: ee, diagram: t };
+}, Ar = {
+ id: ee,
+ detector: Sr,
+ loader: Dr
+}, Er = Ar, re = "info", jr = (t) => t.match(/^\s*info/) !== null, xr = async () => {
+ const { diagram: t } = await import("./infoDiagram-388842fb.js");
+ return { id: re, diagram: t };
+}, Cr = {
+ id: re,
+ detector: jr,
+ loader: xr
+}, Ir = Cr, ae = "pie", Mr = (t) => t.match(/^\s*pie/) !== null, kr = async () => {
+ const { diagram: t } = await import("./pieDiagram-ffb7c1e5.js");
+ return { id: ae, diagram: t };
+}, Lr = {
+ id: ae,
+ detector: Mr,
+ loader: kr
+}, Fr = Lr, ne = "requirement", _r = (t) => t.match(/^\s*requirement(Diagram)?/) !== null, Rr = async () => {
+ const { diagram: t } = await import("./requirementDiagram-51a5ec78.js");
+ return { id: ne, diagram: t };
+}, Or = {
+ id: ne,
+ detector: _r,
+ loader: Rr
+}, Vr = Or, se = "sequence", Pr = (t) => t.match(/^\s*sequenceDiagram/) !== null, zr = async () => {
+ const { diagram: t } = await import("./sequenceDiagram-3b765acc.js");
+ return { id: se, diagram: t };
+}, Br = {
+ id: se,
+ detector: Pr,
+ loader: zr
+}, Ur = Br, oe = "class", Gr = (t, e) => {
+ var r;
+ return ((r = e == null ? void 0 : e.class) == null ? void 0 : r.defaultRenderer) === "dagre-wrapper" ? !1 : t.match(/^\s*classDiagram/) !== null;
+}, Nr = async () => {
+ const { diagram: t } = await import("./classDiagram-7b4b2ee6.js");
+ return { id: oe, diagram: t };
+}, Xr = {
+ id: oe,
+ detector: Gr,
+ loader: Nr
+}, Hr = Xr, ce = "classDiagram", Yr = (t, e) => {
+ var r;
+ return t.match(/^\s*classDiagram/) !== null && ((r = e == null ? void 0 : e.class) == null ? void 0 : r.defaultRenderer) === "dagre-wrapper" ? !0 : t.match(/^\s*classDiagram-v2/) !== null;
+}, qr = async () => {
+ const { diagram: t } = await import("./classDiagram-v2-556a8c31.js");
+ return { id: ce, diagram: t };
+}, Wr = {
+ id: ce,
+ detector: Yr,
+ loader: qr
+}, Kr = Wr, ie = "state", Jr = (t, e) => {
+ var r;
+ return ((r = e == null ? void 0 : e.state) == null ? void 0 : r.defaultRenderer) === "dagre-wrapper" ? !1 : t.match(/^\s*stateDiagram/) !== null;
+}, Qr = async () => {
+ const { diagram: t } = await import("./stateDiagram-d14e810e.js");
+ return { id: ie, diagram: t };
+}, Zr = {
+ id: ie,
+ detector: Jr,
+ loader: Qr
+}, ta = Zr, le = "stateDiagram", ea = (t, e) => {
+ var r, a;
+ return !!(t.match(/^\s*stateDiagram-v2/) !== null || t.match(/^\s*stateDiagram/) && ((r = e == null ? void 0 : e.state) == null ? void 0 : r.defaultRenderer) === "dagre-wrapper" || t.match(/^\s*stateDiagram/) && ((a = e == null ? void 0 : e.state) == null ? void 0 : a.defaultRenderer) === "dagre-wrapper");
+}, ra = async () => {
+ const { diagram: t } = await import("./stateDiagram-v2-c3d22c51.js");
+ return { id: le, diagram: t };
+}, aa = {
+ id: le,
+ detector: ea,
+ loader: ra
+}, na = aa, de = "journey", sa = (t) => t.match(/^\s*journey/) !== null, oa = async () => {
+ const { diagram: t } = await import("./journeyDiagram-420adb66.js");
+ return { id: de, diagram: t };
+}, ca = {
+ id: de,
+ detector: sa,
+ loader: oa
+}, ia = ca, la = () => "", da = la, ua = function() {
+}, ma = (t, e, r) => {
+ try {
+ M.debug(`Renering svg for syntax error
+`);
+ const a = A("#" + e), n = a.append("g");
+ n.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"
+ ), n.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"
+ ), n.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"
+ ), n.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"
+ ), n.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"
+ ), n.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"
+ ), n.append("text").attr("class", "error-text").attr("x", 1440).attr("y", 250).attr("font-size", "150px").style("text-anchor", "middle").text("Syntax error in text"), n.append("text").attr("class", "error-text").attr("x", 1250).attr("y", 400).attr("font-size", "100px").style("text-anchor", "middle").text("mermaid version " + r), a.attr("height", 100), a.attr("width", 500), a.attr("viewBox", "768 0 912 512");
+ } catch (a) {
+ M.error("Error while rendering info diagram"), M.error(Me(a));
+ }
+}, ue = {
+ setConf: ua,
+ draw: ma
+}, fa = {
+ db: {
+ clear: () => {
+ }
+ },
+ styles: da,
+ renderer: ue,
+ parser: {
+ parser: { yy: {} },
+ parse: () => {
+ }
+ },
+ init: () => {
+ }
+}, pa = fa, me = "flowchart-elk", ha = (t, e) => {
+ var r;
+ return (
+ // If diagram explicitly states flowchart-elk
+ !!(t.match(/^\s*flowchart-elk/) || // If a flowchart/graph diagram has their default renderer set to elk
+ t.match(/^\s*flowchart|graph/) && ((r = e == null ? void 0 : e.flowchart) == null ? void 0 : r.defaultRenderer) === "elk")
+ );
+}, ga = async () => {
+ const { diagram: t } = await import("./flowchart-elk-definition-55d9b0bb.js");
+ return { id: me, diagram: t };
+}, ya = {
+ id: me,
+ detector: ha,
+ loader: ga
+}, ba = ya, fe = "timeline", wa = (t) => t.match(/^\s*timeline/) !== null, $a = async () => {
+ const { diagram: t } = await import("./timeline-definition-f3a4334c.js");
+ return { id: fe, diagram: t };
+}, va = {
+ id: fe,
+ detector: wa,
+ loader: $a
+}, Ta = va, pe = "mindmap", Sa = (t) => t.match(/^\s*mindmap/) !== null, Da = async () => {
+ const { diagram: t } = await import("./mindmap-definition-b90592f0.js");
+ return { id: pe, diagram: t };
+}, Aa = {
+ id: pe,
+ detector: Sa,
+ loader: Da
+}, Ea = Aa;
+let Et = !1;
+const ht = () => {
+ Et || (Et = !0, rt("error", pa, (t) => t.toLowerCase().trim() === "error"), rt(
+ "---",
+ // --- diagram type may appear if YAML front-matter is not parsed correctly
+ {
+ db: {
+ clear: () => {
+ }
+ },
+ styles: {},
+ // should never be used
+ renderer: {},
+ // should never be used
+ parser: {
+ parser: { yy: {} },
+ parse: () => {
+ throw new Error(
+ "Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks"
+ );
+ }
+ },
+ init: () => null
+ // no op
+ },
+ (t) => t.toLowerCase().trimStart().startsWith("---")
+ ), ke(
+ or,
+ Kr,
+ Hr,
+ br,
+ Er,
+ Ir,
+ Fr,
+ Vr,
+ Ur,
+ ba,
+ pr,
+ dr,
+ Ea,
+ Ta,
+ Tr,
+ na,
+ ta,
+ ia
+ ));
+}, ja = (t) => t.trimStart().replace(/^\s*%%(?!{)[^\n]+\n?/gm, "");
+class he {
+ constructor(e) {
+ var o, d;
+ this.text = e, this.type = "graph", this.text += `
+`;
+ const r = R();
+ try {
+ this.type = Ut(e, r);
+ } catch (p) {
+ this.type = "error", this.detectError = p;
+ }
+ const a = Gt(this.type);
+ M.debug("Type " + this.type), this.db = a.db, (d = (o = this.db).clear) == null || d.call(o), this.renderer = a.renderer, this.parser = a.parser;
+ const n = this.parser.parse.bind(this.parser);
+ this.parser.parse = (p) => n(ja(_e(p, this.db))), this.parser.parser.yy = this.db, a.init && (a.init(r), M.info("Initialized diagram " + this.type, r)), this.parse();
+ }
+ parse() {
+ var e, r;
+ if (this.detectError)
+ throw this.detectError;
+ (r = (e = this.db).clear) == null || r.call(e), this.parser.parse(this.text);
+ }
+ async render(e, r) {
+ await this.renderer.draw(this.text, e, r, this);
+ }
+ getParser() {
+ return this.parser;
+ }
+ getType() {
+ return this.type;
+ }
+}
+const gt = async (t) => {
+ const e = Ut(t, R());
+ try {
+ Gt(e);
+ } catch {
+ const a = Le(e);
+ if (!a)
+ throw new Fe(`Diagram ${e} not found.`);
+ const { id: n, diagram: o } = await a();
+ rt(n, o);
+ }
+ return new he(t);
+};
+let it = [];
+const $s = (t) => {
+ it.push(t);
+}, xa = () => {
+ it.forEach((t) => {
+ t();
+ }), it = [];
+};
+var Ca = Object.prototype;
+function ge(t) {
+ var e = t && t.constructor, r = typeof e == "function" && e.prototype || Ca;
+ return t === r;
+}
+function Ia(t, e) {
+ return function(r) {
+ return t(e(r));
+ };
+}
+var Ma = Ia(Object.keys, Object);
+const ka = Ma;
+var La = Object.prototype, Fa = La.hasOwnProperty;
+function _a(t) {
+ if (!ge(t))
+ return ka(t);
+ var e = [];
+ for (var r in Object(t))
+ Fa.call(t, r) && r != "constructor" && e.push(r);
+ return e;
+}
+var Ra = Y(B, "DataView");
+const lt = Ra;
+var Oa = Y(B, "Promise");
+const dt = Oa;
+var Va = Y(B, "Set");
+const ut = Va;
+var Pa = Y(B, "WeakMap");
+const mt = Pa;
+var jt = "[object Map]", za = "[object Object]", xt = "[object Promise]", Ct = "[object Set]", It = "[object WeakMap]", Mt = "[object DataView]", Ba = O(lt), Ua = O(at), Ga = O(dt), Na = O(ut), Xa = O(mt), I = q;
+(lt && I(new lt(new ArrayBuffer(1))) != Mt || at && I(new at()) != jt || dt && I(dt.resolve()) != xt || ut && I(new ut()) != Ct || mt && I(new mt()) != It) && (I = function(t) {
+ var e = q(t), r = e == za ? t.constructor : void 0, a = r ? O(r) : "";
+ if (a)
+ switch (a) {
+ case Ba:
+ return Mt;
+ case Ua:
+ return jt;
+ case Ga:
+ return xt;
+ case Na:
+ return Ct;
+ case Xa:
+ return It;
+ }
+ return e;
+});
+const Ha = I;
+function yt(t) {
+ return t != null && typeof t == "object";
+}
+var Ya = "[object Arguments]";
+function kt(t) {
+ return yt(t) && q(t) == Ya;
+}
+var ye = Object.prototype, qa = ye.hasOwnProperty, Wa = ye.propertyIsEnumerable, Ka = kt(function() {
+ return arguments;
+}()) ? kt : function(t) {
+ return yt(t) && qa.call(t, "callee") && !Wa.call(t, "callee");
+};
+const Ja = Ka;
+var Qa = Array.isArray;
+const Za = Qa;
+var tn = 9007199254740991;
+function be(t) {
+ return typeof t == "number" && t > -1 && t % 1 == 0 && t <= tn;
+}
+function en(t) {
+ return t != null && be(t.length) && !Re(t);
+}
+function rn() {
+ return !1;
+}
+var we = typeof exports == "object" && exports && !exports.nodeType && exports, Lt = we && typeof module == "object" && module && !module.nodeType && module, an = Lt && Lt.exports === we, Ft = an ? B.Buffer : void 0, nn = Ft ? Ft.isBuffer : void 0, sn = nn || rn;
+const on = sn;
+var cn = "[object Arguments]", ln = "[object Array]", dn = "[object Boolean]", un = "[object Date]", mn = "[object Error]", fn = "[object Function]", pn = "[object Map]", hn = "[object Number]", gn = "[object Object]", yn = "[object RegExp]", bn = "[object Set]", wn = "[object String]", $n = "[object WeakMap]", vn = "[object ArrayBuffer]", Tn = "[object DataView]", Sn = "[object Float32Array]", Dn = "[object Float64Array]", An = "[object Int8Array]", En = "[object Int16Array]", jn = "[object Int32Array]", xn = "[object Uint8Array]", Cn = "[object Uint8ClampedArray]", In = "[object Uint16Array]", Mn = "[object Uint32Array]", c = {};
+c[Sn] = c[Dn] = c[An] = c[En] = c[jn] = c[xn] = c[Cn] = c[In] = c[Mn] = !0;
+c[cn] = c[ln] = c[vn] = c[dn] = c[Tn] = c[un] = c[mn] = c[fn] = c[pn] = c[hn] = c[gn] = c[yn] = c[bn] = c[wn] = c[$n] = !1;
+function kn(t) {
+ return yt(t) && be(t.length) && !!c[q(t)];
+}
+function Ln(t) {
+ return function(e) {
+ return t(e);
+ };
+}
+var $e = typeof exports == "object" && exports && !exports.nodeType && exports, P = $e && typeof module == "object" && module && !module.nodeType && module, Fn = P && P.exports === $e, et = Fn && Oe.process, _n = function() {
+ try {
+ var t = P && P.require && P.require("util").types;
+ return t || et && et.binding && et.binding("util");
+ } catch {
+ }
+}();
+const _t = _n;
+var Rt = _t && _t.isTypedArray, Rn = Rt ? Ln(Rt) : kn;
+const On = Rn;
+var Vn = "[object Map]", Pn = "[object Set]", zn = Object.prototype, Bn = zn.hasOwnProperty;
+function X(t) {
+ if (t == null)
+ return !0;
+ if (en(t) && (Za(t) || typeof t == "string" || typeof t.splice == "function" || on(t) || On(t) || Ja(t)))
+ return !t.length;
+ var e = Ha(t);
+ if (e == Vn || e == Pn)
+ return !t.size;
+ if (ge(t))
+ return !_a(t).length;
+ for (var r in t)
+ if (Bn.call(t, r))
+ return !1;
+ return !0;
+}
+const Un = "graphics-document document";
+function Gn(t, e) {
+ t.attr("role", Un), X(e) || t.attr("aria-roledescription", e);
+}
+function Nn(t, e, r, a) {
+ if (t.insert !== void 0)
+ if (e || r) {
+ if (r) {
+ const n = "chart-desc-" + a;
+ t.attr("aria-describedby", n), t.insert("desc", ":first-child").attr("id", n).text(r);
+ }
+ if (e) {
+ const n = "chart-title-" + a;
+ t.attr("aria-labelledby", n), t.insert("title", ":first-child").attr("id", n).text(e);
+ }
+ } else
+ return;
+}
+const ve = [
+ "graph",
+ "flowchart",
+ "flowchart-v2",
+ "flowchart-elk",
+ "stateDiagram",
+ "stateDiagram-v2"
+], Xn = 5e4, Hn = "graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa", Yn = "sandbox", qn = "loose", Wn = "http://www.w3.org/2000/svg", Kn = "http://www.w3.org/1999/xlink", Jn = "http://www.w3.org/1999/xhtml", Qn = "100%", Zn = "100%", ts = "border:0;margin:0;", es = "margin:0", rs = "allow-top-navigation-by-user-activation allow-popups", as = 'The "iframe" tag is not supported by your browser.', ns = ["foreignobject"], ss = ["dominant-baseline"];
+async function os(t, e) {
+ ht();
+ try {
+ (await gt(t)).parse();
+ } catch (r) {
+ if (e != null && e.suppressErrors)
+ return !1;
+ throw r;
+ }
+ return !0;
+}
+const cs = function(t) {
+ let e = t;
+ return e = e.replace(/style.*:\S*#.*;/g, function(r) {
+ return r.substring(0, r.length - 1);
+ }), e = e.replace(/classDef.*:\S*#.*;/g, function(r) {
+ return r.substring(0, r.length - 1);
+ }), e = e.replace(/#\w+;/g, function(r) {
+ const a = r.substring(1, r.length - 1);
+ return /^\+?\d+$/.test(a) ? "fl°°" + a + "¶ß" : "fl°" + a + "¶ß";
+ }), e;
+}, is = function(t) {
+ let e = t;
+ return e = e.replace(/fl°°/g, ""), e = e.replace(/fl°/g, "&"), e = e.replace(/¶ß/g, ";"), e;
+}, Ot = (t, e, r = []) => `
+.${t} ${e} { ${r.join(" !important; ")} !important; }`, ls = (t, e, r = {}) => {
+ var n;
+ let a = "";
+ if (t.themeCSS !== void 0 && (a += `
+${t.themeCSS}`), t.fontFamily !== void 0 && (a += `
+:root { --mermaid-font-family: ${t.fontFamily}}`), t.altFontFamily !== void 0 && (a += `
+:root { --mermaid-alt-font-family: ${t.altFontFamily}}`), !X(r) && ve.includes(e)) {
+ const w = t.htmlLabels || ((n = t.flowchart) == null ? void 0 : n.htmlLabels) ? ["> *", "span"] : ["rect", "polygon", "ellipse", "circle", "path"];
+ for (const y in r) {
+ const s = r[y];
+ X(s.styles) || w.forEach((l) => {
+ a += Ot(s.id, l, s.styles);
+ }), X(s.textStyles) || (a += Ot(s.id, "tspan", s.textStyles));
+ }
+ }
+ return a;
+}, ds = (t, e, r, a) => {
+ const n = ls(t, e, r), o = Be(e, n, t.themeVariables);
+ return ct(tr(`${a}{${o}}`), rr);
+}, us = (t = "", e, r) => {
+ let a = t;
+ return !r && !e && (a = a.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#')), a = is(a), a = a.replace(/
/g, "
"), a;
+}, ms = (t = "", e) => {
+ const r = e ? e.viewBox.baseVal.height + "px" : Zn, a = btoa('' + t + "");
+ return ``;
+}, Vt = (t, e, r, a, n) => {
+ const o = t.append("div");
+ o.attr("id", r), a && o.attr("style", a);
+ const d = o.append("svg").attr("id", e).attr("width", "100%").attr("xmlns", Wn);
+ return n && d.attr("xmlns:xlink", n), d.append("g"), t;
+};
+function Pt(t, e) {
+ return t.append("iframe").attr("id", e).attr("style", "width: 100%; height: 100%;").attr("sandbox", "");
+}
+const fs = (t, e, r, a) => {
+ var n, o, d;
+ (n = t.getElementById(e)) == null || n.remove(), (o = t.getElementById(r)) == null || o.remove(), (d = t.getElementById(a)) == null || d.remove();
+}, ps = async function(t, e, r) {
+ var bt, wt, $t, vt;
+ ht(), H();
+ const a = Pe.detectInit(e);
+ a && (ze(a), Ee(a));
+ const n = R();
+ M.debug(n), e.length > ((n == null ? void 0 : n.maxTextSize) ?? Xn) && (e = Hn), e = e.replace(/\r\n?/g, `
+`);
+ const o = "#" + t, d = "i" + t, p = "#" + d, w = "d" + t, y = "#" + w;
+ let s = A("body");
+ const l = n.securityLevel === Yn, E = n.securityLevel === qn, j = n.fontFamily;
+ if (r !== void 0) {
+ if (r && (r.innerHTML = ""), l) {
+ const D = Pt(A(r), d);
+ s = A(D.nodes()[0].contentDocument.body), s.node().style.margin = 0;
+ } else
+ s = A(r);
+ Vt(s, t, w, `font-family: ${j}`, Kn);
+ } else {
+ if (fs(document, t, w, d), l) {
+ const D = Pt(A("body"), d);
+ s = A(D.nodes()[0].contentDocument.body), s.node().style.margin = 0;
+ } else
+ s = A("body");
+ Vt(s, t, w);
+ }
+ e = cs(e);
+ let u, h;
+ try {
+ u = await gt(e);
+ } catch (D) {
+ u = new he("error"), h = D;
+ }
+ const L = s.select(y).node(), g = u.type, f = L.firstChild, T = f.firstChild, F = ve.includes(g) ? u.renderer.getClasses(e, u) : {}, S = ds(
+ n,
+ g,
+ // @ts-ignore convert renderer to TS.
+ F,
+ o
+ ), b = document.createElement("style");
+ b.innerHTML = S, f.insertBefore(b, T);
+ try {
+ await u.renderer.draw(e, t, At, u);
+ } catch (D) {
+ throw ue.draw(e, t, At), D;
+ }
+ const i = s.select(`${y} svg`), Te = (wt = (bt = u.db).getAccTitle) == null ? void 0 : wt.call(bt), Se = (vt = ($t = u.db).getAccDescription) == null ? void 0 : vt.call($t);
+ gs(g, i, Te, Se), s.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns", Jn);
+ let C = s.select(y).node().innerHTML;
+ if (M.debug("config.arrowMarkerAbsolute", n.arrowMarkerAbsolute), C = us(C, l, je(n.arrowMarkerAbsolute)), l) {
+ const D = s.select(y + " svg").node();
+ C = ms(C, D);
+ } else
+ E || (C = xe.sanitize(C, {
+ ADD_TAGS: ns,
+ ADD_ATTR: ss
+ }));
+ if (xa(), h)
+ throw h;
+ const Q = A(l ? p : y).node();
+ return Q && "remove" in Q && Q.remove(), {
+ svg: C,
+ bindFunctions: u.db.bindFunctions
+ };
+};
+function hs(t = {}) {
+ var r;
+ t != null && t.fontFamily && !((r = t.themeVariables) != null && r.fontFamily) && (t.themeVariables || (t.themeVariables = {}), t.themeVariables.fontFamily = t.fontFamily), Ce(t), t != null && t.theme && t.theme in Z ? t.themeVariables = Z[t.theme].getThemeVariables(
+ t.themeVariables
+ ) : t && (t.themeVariables = Z.default.getThemeVariables(t.themeVariables));
+ const e = typeof t == "object" ? Ie(t) : zt();
+ Bt(e.logLevel), ht();
+}
+function gs(t, e, r, a) {
+ Gn(e, t), Nn(e, r, a, e.attr("id"));
+}
+const vs = Object.freeze({
+ render: ps,
+ parse: os,
+ parseDirective: Ve,
+ getDiagramFromText: gt,
+ initialize: hs,
+ getConfig: R,
+ setConfig: De,
+ getSiteConfig: zt,
+ updateSiteConfig: Ae,
+ reset: () => {
+ H();
+ },
+ globalReset: () => {
+ H(Tt);
+ },
+ defaultConfig: Tt
+});
+Bt(R().logLevel);
+H(R());
+export {
+ ut as S,
+ Za as a,
+ en as b,
+ Ja as c,
+ on as d,
+ On as e,
+ _a as f,
+ ge as g,
+ Ha as h,
+ yt as i,
+ Ln as j,
+ be as k,
+ X as l,
+ vs as m,
+ _t as n,
+ Ia as o,
+ is as p,
+ $s as q
+};
+//# sourceMappingURL=mermaidAPI-67f627de.js.map
diff --git a/scopegraphs-render-docs/doc/js/mermaidAPI-c841a67f.js b/scopegraphs-render-docs/doc/js/mermaidAPI-c841a67f.js
new file mode 100644
index 0000000..99ba064
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mermaidAPI-c841a67f.js
@@ -0,0 +1,1281 @@
+import { l as log, h as select, g as getConfig, i as setConfig, j as getSiteConfig, u as updateSiteConfig, r as reset, k as defaultConfig, s as setLogLevel, a as addDirective, m as evaluate, p as purify, n as saveConfigFromInitialize, t as theme, o as setSiteConfig } from "./commonDb-89160e91.js";
+import { g as getErrorMessage, a as registerDiagram, r as registerLazyLoadedDiagrams, d as detectType, b as getDiagram, c as getDiagramLoader, U as UnknownDiagramError, e as extractFrontMatter, f as getNative, h as root, t as toSource, j as baseGetTag, M as Map, k as isFunction, m as freeGlobal, p as parseDirective, u as utils, n as directiveSanitizer, o as getStyles$1 } from "./utils-1aebe9b6.js";
+var COMMENT = "comm";
+var RULESET = "rule";
+var DECLARATION = "decl";
+var IMPORT = "@import";
+var KEYFRAMES = "@keyframes";
+var abs = Math.abs;
+var from = String.fromCharCode;
+function trim(value) {
+ return value.trim();
+}
+function replace(value, pattern, replacement) {
+ return value.replace(pattern, replacement);
+}
+function indexof(value, search) {
+ return value.indexOf(search);
+}
+function charat(value, index) {
+ return value.charCodeAt(index) | 0;
+}
+function substr(value, begin, end) {
+ return value.slice(begin, end);
+}
+function strlen(value) {
+ return value.length;
+}
+function sizeof(value) {
+ return value.length;
+}
+function append(value, array) {
+ return array.push(value), value;
+}
+var line = 1;
+var column = 1;
+var length = 0;
+var position = 0;
+var character = 0;
+var characters = "";
+function node(value, root2, parent, type, props, children, length2) {
+ return { value, root: root2, parent, type, props, children, line, column, length: length2, return: "" };
+}
+function char() {
+ return character;
+}
+function prev() {
+ character = position > 0 ? charat(characters, --position) : 0;
+ if (column--, character === 10)
+ column = 1, line--;
+ return character;
+}
+function next() {
+ character = position < length ? charat(characters, position++) : 0;
+ if (column++, character === 10)
+ column = 1, line++;
+ return character;
+}
+function peek() {
+ return charat(characters, position);
+}
+function caret() {
+ return position;
+}
+function slice(begin, end) {
+ return substr(characters, begin, end);
+}
+function token(type) {
+ switch (type) {
+ case 0:
+ case 9:
+ case 10:
+ case 13:
+ case 32:
+ return 5;
+ case 33:
+ case 43:
+ case 44:
+ case 47:
+ case 62:
+ case 64:
+ case 126:
+ case 59:
+ case 123:
+ case 125:
+ return 4;
+ case 58:
+ return 3;
+ case 34:
+ case 39:
+ case 40:
+ case 91:
+ return 2;
+ case 41:
+ case 93:
+ return 1;
+ }
+ return 0;
+}
+function alloc(value) {
+ return line = column = 1, length = strlen(characters = value), position = 0, [];
+}
+function dealloc(value) {
+ return characters = "", value;
+}
+function delimit(type) {
+ return trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)));
+}
+function whitespace(type) {
+ while (character = peek())
+ if (character < 33)
+ next();
+ else
+ break;
+ return token(type) > 2 || token(character) > 3 ? "" : " ";
+}
+function escaping(index, count) {
+ while (--count && next())
+ if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97)
+ break;
+ return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32));
+}
+function delimiter(type) {
+ while (next())
+ switch (character) {
+ case type:
+ return position;
+ case 34:
+ case 39:
+ if (type !== 34 && type !== 39)
+ delimiter(character);
+ break;
+ case 40:
+ if (type === 41)
+ delimiter(type);
+ break;
+ case 92:
+ next();
+ break;
+ }
+ return position;
+}
+function commenter(type, index) {
+ while (next())
+ if (type + character === 47 + 10)
+ break;
+ else if (type + character === 42 + 42 && peek() === 47)
+ break;
+ return "/*" + slice(index, position - 1) + "*" + from(type === 47 ? type : next());
+}
+function identifier(index) {
+ while (!token(peek()))
+ next();
+ return slice(index, position);
+}
+function compile(value) {
+ return dealloc(parse$1("", null, null, null, [""], value = alloc(value), 0, [0], value));
+}
+function parse$1(value, root2, parent, rule, rules, rulesets, pseudo, points, declarations) {
+ var index = 0;
+ var offset = 0;
+ var length2 = pseudo;
+ var atrule = 0;
+ var property = 0;
+ var previous = 0;
+ var variable = 1;
+ var scanning = 1;
+ var ampersand = 1;
+ var character2 = 0;
+ var type = "";
+ var props = rules;
+ var children = rulesets;
+ var reference = rule;
+ var characters2 = type;
+ while (scanning)
+ switch (previous = character2, character2 = next()) {
+ case 40:
+ if (previous != 108 && charat(characters2, length2 - 1) == 58) {
+ if (indexof(characters2 += replace(delimit(character2), "&", "&\f"), "&\f") != -1)
+ ampersand = -1;
+ break;
+ }
+ case 34:
+ case 39:
+ case 91:
+ characters2 += delimit(character2);
+ break;
+ case 9:
+ case 10:
+ case 13:
+ case 32:
+ characters2 += whitespace(previous);
+ break;
+ case 92:
+ characters2 += escaping(caret() - 1, 7);
+ continue;
+ case 47:
+ switch (peek()) {
+ case 42:
+ case 47:
+ append(comment(commenter(next(), caret()), root2, parent), declarations);
+ break;
+ default:
+ characters2 += "/";
+ }
+ break;
+ case 123 * variable:
+ points[index++] = strlen(characters2) * ampersand;
+ case 125 * variable:
+ case 59:
+ case 0:
+ switch (character2) {
+ case 0:
+ case 125:
+ scanning = 0;
+ case 59 + offset:
+ if (property > 0 && strlen(characters2) - length2)
+ append(property > 32 ? declaration(characters2 + ";", rule, parent, length2 - 1) : declaration(replace(characters2, " ", "") + ";", rule, parent, length2 - 2), declarations);
+ break;
+ case 59:
+ characters2 += ";";
+ default:
+ append(reference = ruleset(characters2, root2, parent, index, offset, rules, points, type, props = [], children = [], length2), rulesets);
+ if (character2 === 123)
+ if (offset === 0)
+ parse$1(characters2, root2, reference, reference, props, rulesets, length2, points, children);
+ else
+ switch (atrule) {
+ case 100:
+ case 109:
+ case 115:
+ parse$1(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length2), children), rules, children, length2, points, rule ? props : children);
+ break;
+ default:
+ parse$1(characters2, reference, reference, reference, [""], children, 0, points, children);
+ }
+ }
+ index = offset = property = 0, variable = ampersand = 1, type = characters2 = "", length2 = pseudo;
+ break;
+ case 58:
+ length2 = 1 + strlen(characters2), property = previous;
+ default:
+ if (variable < 1) {
+ if (character2 == 123)
+ --variable;
+ else if (character2 == 125 && variable++ == 0 && prev() == 125)
+ continue;
+ }
+ switch (characters2 += from(character2), character2 * variable) {
+ case 38:
+ ampersand = offset > 0 ? 1 : (characters2 += "\f", -1);
+ break;
+ case 44:
+ points[index++] = (strlen(characters2) - 1) * ampersand, ampersand = 1;
+ break;
+ case 64:
+ if (peek() === 45)
+ characters2 += delimit(next());
+ atrule = peek(), offset = length2 = strlen(type = characters2 += identifier(caret())), character2++;
+ break;
+ case 45:
+ if (previous === 45 && strlen(characters2) == 2)
+ variable = 0;
+ }
+ }
+ return rulesets;
+}
+function ruleset(value, root2, parent, index, offset, rules, points, type, props, children, length2) {
+ var post = offset - 1;
+ var rule = offset === 0 ? rules : [""];
+ var size = sizeof(rule);
+ for (var i = 0, j = 0, k = 0; i < index; ++i)
+ for (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)
+ if (z = trim(j > 0 ? rule[x] + " " + y : replace(y, /&\f/g, rule[x])))
+ props[k++] = z;
+ return node(value, root2, parent, offset === 0 ? RULESET : type, props, children, length2);
+}
+function comment(value, root2, parent) {
+ return node(value, root2, parent, COMMENT, from(char()), substr(value, 2, -2), 0);
+}
+function declaration(value, root2, parent, length2) {
+ return node(value, root2, parent, DECLARATION, substr(value, 0, length2), substr(value, length2 + 1, -1), length2);
+}
+function serialize(children, callback) {
+ var output = "";
+ var length2 = sizeof(children);
+ for (var i = 0; i < length2; i++)
+ output += callback(children[i], i, children, callback) || "";
+ return output;
+}
+function stringify(element, index, children, callback) {
+ switch (element.type) {
+ case IMPORT:
+ case DECLARATION:
+ return element.return = element.return || element.value;
+ case COMMENT:
+ return "";
+ case KEYFRAMES:
+ return element.return = element.value + "{" + serialize(element.children, callback) + "}";
+ case RULESET:
+ element.value = element.props.join(",");
+ }
+ return strlen(children = serialize(element.children, callback)) ? element.return = element.value + "{" + children + "}" : "";
+}
+const version = "10.1.0";
+const id$h = "c4";
+const detector$h = (txt) => {
+ return txt.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/) !== null;
+};
+const loader$h = async () => {
+ const { diagram: diagram2 } = await import("./c4Diagram-be8b5c2c.js");
+ return { id: id$h, diagram: diagram2 };
+};
+const plugin$h = {
+ id: id$h,
+ detector: detector$h,
+ loader: loader$h
+};
+const c4 = plugin$h;
+const id$g = "flowchart";
+const detector$g = (txt, config) => {
+ var _a, _b;
+ if (((_a = config == null ? void 0 : config.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper" || ((_b = config == null ? void 0 : config.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") {
+ return false;
+ }
+ return txt.match(/^\s*graph/) !== null;
+};
+const loader$g = async () => {
+ const { diagram: diagram2 } = await import("./flowDiagram-3d69eb42.js");
+ return { id: id$g, diagram: diagram2 };
+};
+const plugin$g = {
+ id: id$g,
+ detector: detector$g,
+ loader: loader$g
+};
+const flowchart = plugin$g;
+const id$f = "flowchart-v2";
+const detector$f = (txt, config) => {
+ var _a, _b, _c;
+ if (((_a = config == null ? void 0 : config.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-d3" || ((_b = config == null ? void 0 : config.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") {
+ return false;
+ }
+ if (txt.match(/^\s*graph/) !== null && ((_c = config == null ? void 0 : config.flowchart) == null ? void 0 : _c.defaultRenderer) === "dagre-wrapper") {
+ return true;
+ }
+ return txt.match(/^\s*flowchart/) !== null;
+};
+const loader$f = async () => {
+ const { diagram: diagram2 } = await import("./flowDiagram-v2-e9772692.js");
+ return { id: id$f, diagram: diagram2 };
+};
+const plugin$f = {
+ id: id$f,
+ detector: detector$f,
+ loader: loader$f
+};
+const flowchartV2 = plugin$f;
+const id$e = "er";
+const detector$e = (txt) => {
+ return txt.match(/^\s*erDiagram/) !== null;
+};
+const loader$e = async () => {
+ const { diagram: diagram2 } = await import("./erDiagram-dfd3761e.js");
+ return { id: id$e, diagram: diagram2 };
+};
+const plugin$e = {
+ id: id$e,
+ detector: detector$e,
+ loader: loader$e
+};
+const er = plugin$e;
+const id$d = "gitGraph";
+const detector$d = (txt) => {
+ return txt.match(/^\s*gitGraph/) !== null;
+};
+const loader$d = async () => {
+ const { diagram: diagram2 } = await import("./gitGraphDiagram-fb502d5b.js");
+ return { id: id$d, diagram: diagram2 };
+};
+const plugin$d = {
+ id: id$d,
+ detector: detector$d,
+ loader: loader$d
+};
+const git = plugin$d;
+const id$c = "gantt";
+const detector$c = (txt) => {
+ return txt.match(/^\s*gantt/) !== null;
+};
+const loader$c = async () => {
+ const { diagram: diagram2 } = await import("./ganttDiagram-536170c3.js");
+ return { id: id$c, diagram: diagram2 };
+};
+const plugin$c = {
+ id: id$c,
+ detector: detector$c,
+ loader: loader$c
+};
+const gantt = plugin$c;
+const id$b = "info";
+const detector$b = (txt) => {
+ return txt.match(/^\s*info/) !== null;
+};
+const loader$b = async () => {
+ const { diagram: diagram2 } = await import("./infoDiagram-24bbb26e.js");
+ return { id: id$b, diagram: diagram2 };
+};
+const plugin$b = {
+ id: id$b,
+ detector: detector$b,
+ loader: loader$b
+};
+const info = plugin$b;
+const id$a = "pie";
+const detector$a = (txt) => {
+ return txt.match(/^\s*pie/) !== null;
+};
+const loader$a = async () => {
+ const { diagram: diagram2 } = await import("./pieDiagram-9555168c.js");
+ return { id: id$a, diagram: diagram2 };
+};
+const plugin$a = {
+ id: id$a,
+ detector: detector$a,
+ loader: loader$a
+};
+const pie = plugin$a;
+const id$9 = "requirement";
+const detector$9 = (txt) => {
+ return txt.match(/^\s*requirement(Diagram)?/) !== null;
+};
+const loader$9 = async () => {
+ const { diagram: diagram2 } = await import("./requirementDiagram-ff8da15b.js");
+ return { id: id$9, diagram: diagram2 };
+};
+const plugin$9 = {
+ id: id$9,
+ detector: detector$9,
+ loader: loader$9
+};
+const requirement = plugin$9;
+const id$8 = "sequence";
+const detector$8 = (txt) => {
+ return txt.match(/^\s*sequenceDiagram/) !== null;
+};
+const loader$8 = async () => {
+ const { diagram: diagram2 } = await import("./sequenceDiagram-a52c6980.js");
+ return { id: id$8, diagram: diagram2 };
+};
+const plugin$8 = {
+ id: id$8,
+ detector: detector$8,
+ loader: loader$8
+};
+const sequence = plugin$8;
+const id$7 = "class";
+const detector$7 = (txt, config) => {
+ var _a;
+ if (((_a = config == null ? void 0 : config.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
+ return false;
+ }
+ return txt.match(/^\s*classDiagram/) !== null;
+};
+const loader$7 = async () => {
+ const { diagram: diagram2 } = await import("./classDiagram-6d218cdd.js");
+ return { id: id$7, diagram: diagram2 };
+};
+const plugin$7 = {
+ id: id$7,
+ detector: detector$7,
+ loader: loader$7
+};
+const classDiagram = plugin$7;
+const id$6 = "classDiagram";
+const detector$6 = (txt, config) => {
+ var _a;
+ if (txt.match(/^\s*classDiagram/) !== null && ((_a = config == null ? void 0 : config.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
+ return true;
+ }
+ return txt.match(/^\s*classDiagram-v2/) !== null;
+};
+const loader$6 = async () => {
+ const { diagram: diagram2 } = await import("./classDiagram-v2-6aaa1e9f.js");
+ return { id: id$6, diagram: diagram2 };
+};
+const plugin$6 = {
+ id: id$6,
+ detector: detector$6,
+ loader: loader$6
+};
+const classDiagramV2 = plugin$6;
+const id$5 = "state";
+const detector$5 = (txt, config) => {
+ var _a;
+ if (((_a = config == null ? void 0 : config.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
+ return false;
+ }
+ return txt.match(/^\s*stateDiagram/) !== null;
+};
+const loader$5 = async () => {
+ const { diagram: diagram2 } = await import("./stateDiagram-2fc945a0.js");
+ return { id: id$5, diagram: diagram2 };
+};
+const plugin$5 = {
+ id: id$5,
+ detector: detector$5,
+ loader: loader$5
+};
+const state = plugin$5;
+const id$4 = "stateDiagram";
+const detector$4 = (text, config) => {
+ var _a, _b;
+ if (text.match(/^\s*stateDiagram-v2/) !== null) {
+ return true;
+ }
+ if (text.match(/^\s*stateDiagram/) && ((_a = config == null ? void 0 : config.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
+ return true;
+ }
+ if (text.match(/^\s*stateDiagram/) && ((_b = config == null ? void 0 : config.state) == null ? void 0 : _b.defaultRenderer) === "dagre-wrapper") {
+ return true;
+ }
+ return false;
+};
+const loader$4 = async () => {
+ const { diagram: diagram2 } = await import("./stateDiagram-v2-660a5d6e.js");
+ return { id: id$4, diagram: diagram2 };
+};
+const plugin$4 = {
+ id: id$4,
+ detector: detector$4,
+ loader: loader$4
+};
+const stateV2 = plugin$4;
+const id$3 = "journey";
+const detector$3 = (txt) => {
+ return txt.match(/^\s*journey/) !== null;
+};
+const loader$3 = async () => {
+ const { diagram: diagram2 } = await import("./journeyDiagram-55528350.js");
+ return { id: id$3, diagram: diagram2 };
+};
+const plugin$3 = {
+ id: id$3,
+ detector: detector$3,
+ loader: loader$3
+};
+const journey = plugin$3;
+const getStyles = () => ``;
+const styles = getStyles;
+const setConf = function() {
+};
+const draw = (_text, id2, mermaidVersion) => {
+ try {
+ log.debug("Renering svg for syntax error\n");
+ const svg = select("#" + id2);
+ const g = svg.append("g");
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"
+ );
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"
+ );
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"
+ );
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"
+ );
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"
+ );
+ g.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"
+ );
+ g.append("text").attr("class", "error-text").attr("x", 1440).attr("y", 250).attr("font-size", "150px").style("text-anchor", "middle").text("Syntax error in text");
+ g.append("text").attr("class", "error-text").attr("x", 1250).attr("y", 400).attr("font-size", "100px").style("text-anchor", "middle").text("mermaid version " + mermaidVersion);
+ svg.attr("height", 100);
+ svg.attr("width", 500);
+ svg.attr("viewBox", "768 0 912 512");
+ } catch (e) {
+ log.error("Error while rendering info diagram");
+ log.error(getErrorMessage(e));
+ }
+};
+const errorRenderer = {
+ setConf,
+ draw
+};
+const diagram = {
+ db: {
+ clear: () => {
+ }
+ },
+ styles,
+ renderer: errorRenderer,
+ parser: {
+ parser: { yy: {} },
+ parse: () => {
+ }
+ },
+ init: () => {
+ }
+};
+const errorDiagram = diagram;
+const id$2 = "flowchart-elk";
+const detector$2 = (txt, config) => {
+ var _a;
+ if (
+ // If diagram explicitly states flowchart-elk
+ txt.match(/^\s*flowchart-elk/) || // If a flowchart/graph diagram has their default renderer set to elk
+ txt.match(/^\s*flowchart|graph/) && ((_a = config == null ? void 0 : config.flowchart) == null ? void 0 : _a.defaultRenderer) === "elk"
+ ) {
+ return true;
+ }
+ return false;
+};
+const loader$2 = async () => {
+ const { diagram: diagram2 } = await import("./flowchart-elk-definition-859d9cf8.js");
+ return { id: id$2, diagram: diagram2 };
+};
+const plugin$2 = {
+ id: id$2,
+ detector: detector$2,
+ loader: loader$2
+};
+const flowchartElk = plugin$2;
+const id$1 = "timeline";
+const detector$1 = (txt) => {
+ return txt.match(/^\s*timeline/) !== null;
+};
+const loader$1 = async () => {
+ const { diagram: diagram2 } = await import("./timeline-definition-472c301b.js");
+ return { id: id$1, diagram: diagram2 };
+};
+const plugin$1 = {
+ id: id$1,
+ detector: detector$1,
+ loader: loader$1
+};
+const timeline = plugin$1;
+const id = "mindmap";
+const detector = (txt) => {
+ return txt.match(/^\s*mindmap/) !== null;
+};
+const loader = async () => {
+ const { diagram: diagram2 } = await import("./mindmap-definition-57c198db.js");
+ return { id, diagram: diagram2 };
+};
+const plugin = {
+ id,
+ detector,
+ loader
+};
+const mindmap = plugin;
+let hasLoadedDiagrams = false;
+const addDiagrams = () => {
+ if (hasLoadedDiagrams) {
+ return;
+ }
+ hasLoadedDiagrams = true;
+ registerDiagram("error", errorDiagram, (text) => {
+ return text.toLowerCase().trim() === "error";
+ });
+ registerDiagram(
+ "---",
+ // --- diagram type may appear if YAML front-matter is not parsed correctly
+ {
+ db: {
+ clear: () => {
+ }
+ },
+ styles: {},
+ // should never be used
+ renderer: {},
+ // should never be used
+ parser: {
+ parser: { yy: {} },
+ parse: () => {
+ throw new Error(
+ "Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks"
+ );
+ }
+ },
+ init: () => null
+ // no op
+ },
+ (text) => {
+ return text.toLowerCase().trimStart().startsWith("---");
+ }
+ );
+ registerLazyLoadedDiagrams(
+ c4,
+ classDiagramV2,
+ classDiagram,
+ er,
+ gantt,
+ info,
+ pie,
+ requirement,
+ sequence,
+ flowchartElk,
+ flowchartV2,
+ flowchart,
+ mindmap,
+ timeline,
+ git,
+ stateV2,
+ state,
+ journey
+ );
+};
+const cleanupComments = (text) => {
+ return text.trimStart().replace(/^\s*%%(?!{)[^\n]+\n?/gm, "");
+};
+class Diagram {
+ constructor(text) {
+ var _a, _b;
+ this.text = text;
+ this.type = "graph";
+ this.text += "\n";
+ const cnf = getConfig();
+ try {
+ this.type = detectType(text, cnf);
+ } catch (e) {
+ this.type = "error";
+ this.detectError = e;
+ }
+ const diagram2 = getDiagram(this.type);
+ log.debug("Type " + this.type);
+ this.db = diagram2.db;
+ (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);
+ this.renderer = diagram2.renderer;
+ this.parser = diagram2.parser;
+ const originalParse = this.parser.parse.bind(this.parser);
+ this.parser.parse = (text2) => originalParse(cleanupComments(extractFrontMatter(text2, this.db)));
+ this.parser.parser.yy = this.db;
+ if (diagram2.init) {
+ diagram2.init(cnf);
+ log.info("Initialized diagram " + this.type, cnf);
+ }
+ this.parse();
+ }
+ parse() {
+ var _a, _b;
+ if (this.detectError) {
+ throw this.detectError;
+ }
+ (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);
+ this.parser.parse(this.text);
+ }
+ async render(id2, version2) {
+ await this.renderer.draw(this.text, id2, version2, this);
+ }
+ getParser() {
+ return this.parser;
+ }
+ getType() {
+ return this.type;
+ }
+}
+const getDiagramFromText = async (text) => {
+ const type = detectType(text, getConfig());
+ try {
+ getDiagram(type);
+ } catch (error) {
+ const loader2 = getDiagramLoader(type);
+ if (!loader2) {
+ throw new UnknownDiagramError(`Diagram ${type} not found.`);
+ }
+ const { id: id2, diagram: diagram2 } = await loader2();
+ registerDiagram(id2, diagram2);
+ }
+ return new Diagram(text);
+};
+let interactionFunctions = [];
+const addFunction = (func) => {
+ interactionFunctions.push(func);
+};
+const attachFunctions = () => {
+ interactionFunctions.forEach((f) => {
+ f();
+ });
+ interactionFunctions = [];
+};
+var objectProto$3 = Object.prototype;
+function isPrototype(value) {
+ var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto$3;
+ return value === proto;
+}
+function overArg(func, transform) {
+ return function(arg) {
+ return func(transform(arg));
+ };
+}
+var nativeKeys = overArg(Object.keys, Object);
+const nativeKeys$1 = nativeKeys;
+var objectProto$2 = Object.prototype;
+var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
+function baseKeys(object) {
+ if (!isPrototype(object)) {
+ return nativeKeys$1(object);
+ }
+ var result = [];
+ for (var key in Object(object)) {
+ if (hasOwnProperty$2.call(object, key) && key != "constructor") {
+ result.push(key);
+ }
+ }
+ return result;
+}
+var DataView = getNative(root, "DataView");
+const DataView$1 = DataView;
+var Promise$1 = getNative(root, "Promise");
+const Promise$2 = Promise$1;
+var Set = getNative(root, "Set");
+const Set$1 = Set;
+var WeakMap = getNative(root, "WeakMap");
+const WeakMap$1 = WeakMap;
+var mapTag$2 = "[object Map]", objectTag$1 = "[object Object]", promiseTag = "[object Promise]", setTag$2 = "[object Set]", weakMapTag$1 = "[object WeakMap]";
+var dataViewTag$1 = "[object DataView]";
+var dataViewCtorString = toSource(DataView$1), mapCtorString = toSource(Map), promiseCtorString = toSource(Promise$2), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap$1);
+var getTag = baseGetTag;
+if (DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$1 || Map && getTag(new Map()) != mapTag$2 || Promise$2 && getTag(Promise$2.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$2 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag$1) {
+ getTag = function(value) {
+ var result = baseGetTag(value), Ctor = result == objectTag$1 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
+ if (ctorString) {
+ switch (ctorString) {
+ case dataViewCtorString:
+ return dataViewTag$1;
+ case mapCtorString:
+ return mapTag$2;
+ case promiseCtorString:
+ return promiseTag;
+ case setCtorString:
+ return setTag$2;
+ case weakMapCtorString:
+ return weakMapTag$1;
+ }
+ }
+ return result;
+ };
+}
+const getTag$1 = getTag;
+function isObjectLike(value) {
+ return value != null && typeof value == "object";
+}
+var argsTag$1 = "[object Arguments]";
+function baseIsArguments(value) {
+ return isObjectLike(value) && baseGetTag(value) == argsTag$1;
+}
+var objectProto$1 = Object.prototype;
+var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
+var propertyIsEnumerable = objectProto$1.propertyIsEnumerable;
+var isArguments = baseIsArguments(function() {
+ return arguments;
+}()) ? baseIsArguments : function(value) {
+ return isObjectLike(value) && hasOwnProperty$1.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
+};
+const isArguments$1 = isArguments;
+var isArray = Array.isArray;
+const isArray$1 = isArray;
+var MAX_SAFE_INTEGER = 9007199254740991;
+function isLength(value) {
+ return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+function isArrayLike(value) {
+ return value != null && isLength(value.length) && !isFunction(value);
+}
+function stubFalse() {
+ return false;
+}
+var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports;
+var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module;
+var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;
+var Buffer = moduleExports$1 ? root.Buffer : void 0;
+var nativeIsBuffer = Buffer ? Buffer.isBuffer : void 0;
+var isBuffer = nativeIsBuffer || stubFalse;
+const isBuffer$1 = isBuffer;
+var argsTag = "[object Arguments]", arrayTag = "[object Array]", boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", funcTag = "[object Function]", mapTag$1 = "[object Map]", numberTag = "[object Number]", objectTag = "[object Object]", regexpTag = "[object RegExp]", setTag$1 = "[object Set]", stringTag = "[object String]", weakMapTag = "[object WeakMap]";
+var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
+var typedArrayTags = {};
+typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
+typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag$1] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag$1] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
+function baseIsTypedArray(value) {
+ return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
+}
+function baseUnary(func) {
+ return function(value) {
+ return func(value);
+ };
+}
+var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
+var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
+var moduleExports = freeModule && freeModule.exports === freeExports;
+var freeProcess = moduleExports && freeGlobal.process;
+var nodeUtil = function() {
+ try {
+ var types = freeModule && freeModule.require && freeModule.require("util").types;
+ if (types) {
+ return types;
+ }
+ return freeProcess && freeProcess.binding && freeProcess.binding("util");
+ } catch (e) {
+ }
+}();
+const nodeUtil$1 = nodeUtil;
+var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray;
+var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
+const isTypedArray$1 = isTypedArray;
+var mapTag = "[object Map]", setTag = "[object Set]";
+var objectProto = Object.prototype;
+var hasOwnProperty = objectProto.hasOwnProperty;
+function isEmpty(value) {
+ if (value == null) {
+ return true;
+ }
+ if (isArrayLike(value) && (isArray$1(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer$1(value) || isTypedArray$1(value) || isArguments$1(value))) {
+ return !value.length;
+ }
+ var tag = getTag$1(value);
+ if (tag == mapTag || tag == setTag) {
+ return !value.size;
+ }
+ if (isPrototype(value)) {
+ return !baseKeys(value).length;
+ }
+ for (var key in value) {
+ if (hasOwnProperty.call(value, key)) {
+ return false;
+ }
+ }
+ return true;
+}
+const SVG_ROLE = "graphics-document document";
+function setA11yDiagramInfo(svg, diagramType) {
+ svg.attr("role", SVG_ROLE);
+ if (!isEmpty(diagramType)) {
+ svg.attr("aria-roledescription", diagramType);
+ }
+}
+function addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) {
+ if (svg.insert === void 0) {
+ return;
+ }
+ if (a11yTitle || a11yDesc) {
+ if (a11yDesc) {
+ const descId = "chart-desc-" + baseId;
+ svg.attr("aria-describedby", descId);
+ svg.insert("desc", ":first-child").attr("id", descId).text(a11yDesc);
+ }
+ if (a11yTitle) {
+ const titleId = "chart-title-" + baseId;
+ svg.attr("aria-labelledby", titleId);
+ svg.insert("title", ":first-child").attr("id", titleId).text(a11yTitle);
+ }
+ } else {
+ return;
+ }
+}
+const CLASSDEF_DIAGRAMS = [
+ "graph",
+ "flowchart",
+ "flowchart-v2",
+ "flowchart-elk",
+ "stateDiagram",
+ "stateDiagram-v2"
+];
+const MAX_TEXTLENGTH = 5e4;
+const MAX_TEXTLENGTH_EXCEEDED_MSG = "graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa";
+const SECURITY_LVL_SANDBOX = "sandbox";
+const SECURITY_LVL_LOOSE = "loose";
+const XMLNS_SVG_STD = "http://www.w3.org/2000/svg";
+const XMLNS_XLINK_STD = "http://www.w3.org/1999/xlink";
+const XMLNS_XHTML_STD = "http://www.w3.org/1999/xhtml";
+const IFRAME_WIDTH = "100%";
+const IFRAME_HEIGHT = "100%";
+const IFRAME_STYLES = "border:0;margin:0;";
+const IFRAME_BODY_STYLE = "margin:0";
+const IFRAME_SANDBOX_OPTS = "allow-top-navigation-by-user-activation allow-popups";
+const IFRAME_NOT_SUPPORTED_MSG = 'The "iframe" tag is not supported by your browser.';
+const DOMPURIFY_TAGS = ["foreignobject"];
+const DOMPURIFY_ATTR = ["dominant-baseline"];
+async function parse(text, parseOptions) {
+ addDiagrams();
+ try {
+ const diagram2 = await getDiagramFromText(text);
+ diagram2.parse();
+ } catch (error) {
+ if (parseOptions == null ? void 0 : parseOptions.suppressErrors) {
+ return false;
+ }
+ throw error;
+ }
+ return true;
+}
+const encodeEntities = function(text) {
+ let txt = text;
+ txt = txt.replace(/style.*:\S*#.*;/g, function(s) {
+ return s.substring(0, s.length - 1);
+ });
+ txt = txt.replace(/classDef.*:\S*#.*;/g, function(s) {
+ return s.substring(0, s.length - 1);
+ });
+ txt = txt.replace(/#\w+;/g, function(s) {
+ const innerTxt = s.substring(1, s.length - 1);
+ const isInt = /^\+?\d+$/.test(innerTxt);
+ if (isInt) {
+ return "fl°°" + innerTxt + "¶ß";
+ } else {
+ return "fl°" + innerTxt + "¶ß";
+ }
+ });
+ return txt;
+};
+const decodeEntities = function(text) {
+ let txt = text;
+ txt = txt.replace(/fl°°/g, "");
+ txt = txt.replace(/fl°/g, "&");
+ txt = txt.replace(/¶ß/g, ";");
+ return txt;
+};
+const cssImportantStyles = (cssClass, element, cssClasses = []) => {
+ return `
+.${cssClass} ${element} { ${cssClasses.join(" !important; ")} !important; }`;
+};
+const createCssStyles = (config, graphType, classDefs = {}) => {
+ var _a;
+ let cssStyles = "";
+ if (config.themeCSS !== void 0) {
+ cssStyles += `
+${config.themeCSS}`;
+ }
+ if (config.fontFamily !== void 0) {
+ cssStyles += `
+:root { --mermaid-font-family: ${config.fontFamily}}`;
+ }
+ if (config.altFontFamily !== void 0) {
+ cssStyles += `
+:root { --mermaid-alt-font-family: ${config.altFontFamily}}`;
+ }
+ if (!isEmpty(classDefs) && CLASSDEF_DIAGRAMS.includes(graphType)) {
+ const htmlLabels = config.htmlLabels || ((_a = config.flowchart) == null ? void 0 : _a.htmlLabels);
+ const cssHtmlElements = ["> *", "span"];
+ const cssShapeElements = ["rect", "polygon", "ellipse", "circle", "path"];
+ const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;
+ for (const classId in classDefs) {
+ const styleClassDef = classDefs[classId];
+ if (!isEmpty(styleClassDef.styles)) {
+ cssElements.forEach((cssElement) => {
+ cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);
+ });
+ }
+ if (!isEmpty(styleClassDef.textStyles)) {
+ cssStyles += cssImportantStyles(styleClassDef.id, "tspan", styleClassDef.textStyles);
+ }
+ }
+ }
+ return cssStyles;
+};
+const createUserStyles = (config, graphType, classDefs, svgId) => {
+ const userCSSstyles = createCssStyles(config, graphType, classDefs);
+ const allStyles = getStyles$1(graphType, userCSSstyles, config.themeVariables);
+ return serialize(compile(`${svgId}{${allStyles}}`), stringify);
+};
+const cleanUpSvgCode = (svgCode = "", inSandboxMode, useArrowMarkerUrls) => {
+ let cleanedUpSvg = svgCode;
+ if (!useArrowMarkerUrls && !inSandboxMode) {
+ cleanedUpSvg = cleanedUpSvg.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#');
+ }
+ cleanedUpSvg = decodeEntities(cleanedUpSvg);
+ cleanedUpSvg = cleanedUpSvg.replace(/
/g, "
");
+ return cleanedUpSvg;
+};
+const putIntoIFrame = (svgCode = "", svgElement) => {
+ const height = svgElement ? svgElement.viewBox.baseVal.height + "px" : IFRAME_HEIGHT;
+ const base64encodedSrc = btoa('' + svgCode + "");
+ return ``;
+};
+const appendDivSvgG = (parentRoot, id2, enclosingDivId, divStyle, svgXlink) => {
+ const enclosingDiv = parentRoot.append("div");
+ enclosingDiv.attr("id", enclosingDivId);
+ if (divStyle) {
+ enclosingDiv.attr("style", divStyle);
+ }
+ const svgNode = enclosingDiv.append("svg").attr("id", id2).attr("width", "100%").attr("xmlns", XMLNS_SVG_STD);
+ if (svgXlink) {
+ svgNode.attr("xmlns:xlink", svgXlink);
+ }
+ svgNode.append("g");
+ return parentRoot;
+};
+function sandboxedIframe(parentNode, iFrameId) {
+ return parentNode.append("iframe").attr("id", iFrameId).attr("style", "width: 100%; height: 100%;").attr("sandbox", "");
+}
+const removeExistingElements = (doc, id2, divId, iFrameId) => {
+ var _a, _b, _c;
+ (_a = doc.getElementById(id2)) == null ? void 0 : _a.remove();
+ (_b = doc.getElementById(divId)) == null ? void 0 : _b.remove();
+ (_c = doc.getElementById(iFrameId)) == null ? void 0 : _c.remove();
+};
+const render = async function(id2, text, svgContainingElement) {
+ var _a, _b, _c, _d;
+ addDiagrams();
+ reset();
+ const graphInit = utils.detectInit(text);
+ if (graphInit) {
+ directiveSanitizer(graphInit);
+ addDirective(graphInit);
+ }
+ const config = getConfig();
+ log.debug(config);
+ if (text.length > ((config == null ? void 0 : config.maxTextSize) ?? MAX_TEXTLENGTH)) {
+ text = MAX_TEXTLENGTH_EXCEEDED_MSG;
+ }
+ text = text.replace(/\r\n?/g, "\n");
+ const idSelector = "#" + id2;
+ const iFrameID = "i" + id2;
+ const iFrameID_selector = "#" + iFrameID;
+ const enclosingDivID = "d" + id2;
+ const enclosingDivID_selector = "#" + enclosingDivID;
+ let root2 = select("body");
+ const isSandboxed = config.securityLevel === SECURITY_LVL_SANDBOX;
+ const isLooseSecurityLevel = config.securityLevel === SECURITY_LVL_LOOSE;
+ const fontFamily = config.fontFamily;
+ if (svgContainingElement !== void 0) {
+ if (svgContainingElement) {
+ svgContainingElement.innerHTML = "";
+ }
+ if (isSandboxed) {
+ const iframe = sandboxedIframe(select(svgContainingElement), iFrameID);
+ root2 = select(iframe.nodes()[0].contentDocument.body);
+ root2.node().style.margin = 0;
+ } else {
+ root2 = select(svgContainingElement);
+ }
+ appendDivSvgG(root2, id2, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);
+ } else {
+ removeExistingElements(document, id2, enclosingDivID, iFrameID);
+ if (isSandboxed) {
+ const iframe = sandboxedIframe(select("body"), iFrameID);
+ root2 = select(iframe.nodes()[0].contentDocument.body);
+ root2.node().style.margin = 0;
+ } else {
+ root2 = select("body");
+ }
+ appendDivSvgG(root2, id2, enclosingDivID);
+ }
+ text = encodeEntities(text);
+ let diag;
+ let parseEncounteredException;
+ try {
+ diag = await getDiagramFromText(text);
+ } catch (error) {
+ diag = new Diagram("error");
+ parseEncounteredException = error;
+ }
+ const element = root2.select(enclosingDivID_selector).node();
+ const graphType = diag.type;
+ const svg = element.firstChild;
+ const firstChild = svg.firstChild;
+ const diagramClassDefs = CLASSDEF_DIAGRAMS.includes(graphType) ? diag.renderer.getClasses(text, diag) : {};
+ const rules = createUserStyles(
+ config,
+ graphType,
+ // @ts-ignore convert renderer to TS.
+ diagramClassDefs,
+ idSelector
+ );
+ const style1 = document.createElement("style");
+ style1.innerHTML = rules;
+ svg.insertBefore(style1, firstChild);
+ try {
+ await diag.renderer.draw(text, id2, version, diag);
+ } catch (e) {
+ errorRenderer.draw(text, id2, version);
+ throw e;
+ }
+ const svgNode = root2.select(`${enclosingDivID_selector} svg`);
+ const a11yTitle = (_b = (_a = diag.db).getAccTitle) == null ? void 0 : _b.call(_a);
+ const a11yDescr = (_d = (_c = diag.db).getAccDescription) == null ? void 0 : _d.call(_c);
+ addA11yInfo(graphType, svgNode, a11yTitle, a11yDescr);
+ root2.select(`[id="${id2}"]`).selectAll("foreignobject > *").attr("xmlns", XMLNS_XHTML_STD);
+ let svgCode = root2.select(enclosingDivID_selector).node().innerHTML;
+ log.debug("config.arrowMarkerAbsolute", config.arrowMarkerAbsolute);
+ svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config.arrowMarkerAbsolute));
+ if (isSandboxed) {
+ const svgEl = root2.select(enclosingDivID_selector + " svg").node();
+ svgCode = putIntoIFrame(svgCode, svgEl);
+ } else if (!isLooseSecurityLevel) {
+ svgCode = purify.sanitize(svgCode, {
+ ADD_TAGS: DOMPURIFY_TAGS,
+ ADD_ATTR: DOMPURIFY_ATTR
+ });
+ }
+ attachFunctions();
+ if (parseEncounteredException) {
+ throw parseEncounteredException;
+ }
+ const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;
+ const node2 = select(tmpElementSelector).node();
+ if (node2 && "remove" in node2) {
+ node2.remove();
+ }
+ return {
+ svg: svgCode,
+ bindFunctions: diag.db.bindFunctions
+ };
+};
+function initialize(options = {}) {
+ var _a;
+ if ((options == null ? void 0 : options.fontFamily) && !((_a = options.themeVariables) == null ? void 0 : _a.fontFamily)) {
+ if (!options.themeVariables) {
+ options.themeVariables = {};
+ }
+ options.themeVariables.fontFamily = options.fontFamily;
+ }
+ saveConfigFromInitialize(options);
+ if ((options == null ? void 0 : options.theme) && options.theme in theme) {
+ options.themeVariables = theme[options.theme].getThemeVariables(
+ options.themeVariables
+ );
+ } else if (options) {
+ options.themeVariables = theme.default.getThemeVariables(options.themeVariables);
+ }
+ const config = typeof options === "object" ? setSiteConfig(options) : getSiteConfig();
+ setLogLevel(config.logLevel);
+ addDiagrams();
+}
+function addA11yInfo(graphType, svgNode, a11yTitle, a11yDescr) {
+ setA11yDiagramInfo(svgNode, graphType);
+ addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr("id"));
+}
+const mermaidAPI = Object.freeze({
+ render,
+ parse,
+ parseDirective,
+ getDiagramFromText,
+ initialize,
+ getConfig,
+ setConfig,
+ getSiteConfig,
+ updateSiteConfig,
+ reset: () => {
+ reset();
+ },
+ globalReset: () => {
+ reset(defaultConfig);
+ },
+ defaultConfig
+});
+setLogLevel(getConfig().logLevel);
+reset(getConfig());
+export {
+ Set$1 as S,
+ isArray$1 as a,
+ isArrayLike as b,
+ isArguments$1 as c,
+ isBuffer$1 as d,
+ isTypedArray$1 as e,
+ baseKeys as f,
+ isPrototype as g,
+ getTag$1 as h,
+ isObjectLike as i,
+ baseUnary as j,
+ isLength as k,
+ isEmpty as l,
+ mermaidAPI as m,
+ nodeUtil$1 as n,
+ overArg as o,
+ decodeEntities as p,
+ addFunction as q
+};
+//# sourceMappingURL=mermaidAPI-c841a67f.js.map
diff --git a/scopegraphs-render-docs/doc/js/mermaidAPI.d.ts b/scopegraphs-render-docs/doc/js/mermaidAPI.d.ts
new file mode 100644
index 0000000..e593df7
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mermaidAPI.d.ts
@@ -0,0 +1,187 @@
+import { Diagram } from './Diagram';
+import { MermaidConfig } from './config.type';
+interface DiagramStyleClassDef {
+ id: string;
+ styles?: string[];
+ textStyles?: string[];
+}
+export interface ParseOptions {
+ suppressErrors?: boolean;
+}
+export declare type D3Element = any;
+export interface RenderResult {
+ /**
+ * The svg code for the rendered graph.
+ */
+ svg: string;
+ /**
+ * Bind function to be called after the svg has been inserted into the DOM.
+ * This is necessary for adding event listeners to the elements in the svg.
+ * ```js
+ * const { svg, bindFunctions } = mermaidAPI.render('id1', 'graph TD;A-->B');
+ * div.innerHTML = svg;
+ * bindFunctions?.(div); // To call bindFunctions only if it's present.
+ * ```
+ */
+ bindFunctions?: (element: Element) => void;
+}
+/**
+ * Parse the text and validate the syntax.
+ * @param text - The mermaid diagram definition.
+ * @param parseOptions - Options for parsing.
+ * @returns true if the diagram is valid, false otherwise if parseOptions.suppressErrors is true.
+ * @throws Error if the diagram is invalid and parseOptions.suppressErrors is false.
+ */
+declare function parse(text: string, parseOptions?: ParseOptions): Promise;
+/**
+ * @param text - text to be encoded
+ * @returns
+ */
+export declare const encodeEntities: (text: string) => string;
+/**
+ *
+ * @param text - text to be decoded
+ * @returns
+ */
+export declare const decodeEntities: (text: string) => string;
+/**
+ * Create a CSS style that starts with the given class name, then the element,
+ * with an enclosing block that has each of the cssClasses followed by !important;
+ * @param cssClass - CSS class name
+ * @param element - CSS element
+ * @param cssClasses - list of CSS styles to append after the element
+ * @returns - the constructed string
+ */
+export declare const cssImportantStyles: (cssClass: string, element: string, cssClasses?: string[]) => string;
+/**
+ * Create the user styles
+ *
+ * @param config - configuration that has style and theme settings to use
+ * @param graphType - used for checking if classDefs should be applied
+ * @param classDefs - the classDefs in the diagram text. Might be null if none were defined. Usually is the result of a call to getClasses(...)
+ * @returns the string with all the user styles
+ */
+export declare const createCssStyles: (config: MermaidConfig, graphType: string, classDefs?: Record | null | undefined) => string;
+export declare const createUserStyles: (config: MermaidConfig, graphType: string, classDefs: Record, svgId: string) => string;
+/**
+ * Clean up svgCode. Do replacements needed
+ *
+ * @param svgCode - the code to clean up
+ * @param inSandboxMode - security level
+ * @param useArrowMarkerUrls - should arrow marker's use full urls? (vs. just the anchors)
+ * @returns the cleaned up svgCode
+ */
+export declare const cleanUpSvgCode: (svgCode: string | undefined, inSandboxMode: boolean, useArrowMarkerUrls: boolean) => string;
+/**
+ * Put the svgCode into an iFrame. Return the iFrame code
+ *
+ * @param svgCode - the svg code to put inside the iFrame
+ * @param svgElement - the d3 node that has the current svgElement so we can get the height from it
+ * @returns - the code with the iFrame that now contains the svgCode
+ * TODO replace btoa(). Replace with buf.toString('base64')?
+ */
+export declare const putIntoIFrame: (svgCode?: string, svgElement?: D3Element) => string;
+/**
+ * Append an enclosing div, then svg, then g (group) to the d3 parentRoot. Set attributes.
+ * Only set the style attribute on the enclosing div if divStyle is given.
+ * Only set the xmlns:xlink attribute on svg if svgXlink is given.
+ * Return the last node appended
+ *
+ * @param parentRoot - the d3 node to append things to
+ * @param id - the value to set the id attr to
+ * @param enclosingDivId - the id to set the enclosing div to
+ * @param divStyle - if given, the style to set the enclosing div to
+ * @param svgXlink - if given, the link to set the new svg element to
+ * @returns - returns the parentRoot that had nodes appended
+ */
+export declare const appendDivSvgG: (parentRoot: D3Element, id: string, enclosingDivId: string, divStyle?: string, svgXlink?: string) => D3Element;
+/**
+ * Remove any existing elements from the given document
+ *
+ * @param doc - the document to removed elements from
+ * @param id - id for any existing SVG element
+ * @param divSelector - selector for any existing enclosing div element
+ * @param iFrameSelector - selector for any existing iFrame element
+ */
+export declare const removeExistingElements: (doc: Document, id: string, divId: string, iFrameId: string) => void;
+/**
+ * @param options - Initial Mermaid options
+ */
+declare function initialize(options?: MermaidConfig): void;
+/**
+ * ## mermaidAPI configuration defaults
+ *
+ * ```ts
+ * const config = {
+ * theme: 'default',
+ * logLevel: 'fatal',
+ * securityLevel: 'strict',
+ * startOnLoad: true,
+ * arrowMarkerAbsolute: false,
+ *
+ * er: {
+ * diagramPadding: 20,
+ * layoutDirection: 'TB',
+ * minEntityWidth: 100,
+ * minEntityHeight: 75,
+ * entityPadding: 15,
+ * stroke: 'gray',
+ * fill: 'honeydew',
+ * fontSize: 12,
+ * useMaxWidth: true,
+ * },
+ * flowchart: {
+ * diagramPadding: 8,
+ * htmlLabels: true,
+ * curve: 'basis',
+ * },
+ * sequence: {
+ * diagramMarginX: 50,
+ * diagramMarginY: 10,
+ * actorMargin: 50,
+ * width: 150,
+ * height: 65,
+ * boxMargin: 10,
+ * boxTextMargin: 5,
+ * noteMargin: 10,
+ * messageMargin: 35,
+ * messageAlign: 'center',
+ * mirrorActors: true,
+ * bottomMarginAdj: 1,
+ * useMaxWidth: true,
+ * rightAngles: false,
+ * showSequenceNumbers: false,
+ * },
+ * 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',
+ * topAxis: false,
+ * displayMode: '',
+ * },
+ * };
+ * mermaid.initialize(config);
+ * ```
+ */
+export declare const mermaidAPI: Readonly<{
+ render: (id: string, text: string, svgContainingElement?: Element) => Promise;
+ parse: typeof parse;
+ parseDirective: (p: any, statement: string, context: string, type: string) => void;
+ getDiagramFromText: (text: string) => Promise;
+ initialize: typeof initialize;
+ getConfig: () => MermaidConfig;
+ setConfig: (conf: MermaidConfig) => MermaidConfig;
+ getSiteConfig: () => MermaidConfig;
+ updateSiteConfig: (conf: MermaidConfig) => MermaidConfig;
+ reset: () => void;
+ globalReset: () => void;
+ defaultConfig: MermaidConfig;
+}>;
+export default mermaidAPI;
diff --git a/scopegraphs-render-docs/doc/js/mermaidAPI.spec.d.ts b/scopegraphs-render-docs/doc/js/mermaidAPI.spec.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mermaidAPI.spec.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/scopegraphs-render-docs/doc/js/mindmap-definition-57c198db.js b/scopegraphs-render-docs/doc/js/mindmap-definition-57c198db.js
new file mode 100644
index 0000000..39bd29e
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mindmap-definition-57c198db.js
@@ -0,0 +1,32084 @@
+import { b as sanitizeText$1, g as getConfig, l as log, P as commonjsGlobal, T as getDefaultExportFromCjs, h as select, U as lighten, V as darken } from "./commonDb-89160e91.js";
+import { B as setupGraphViewbox } from "./utils-1aebe9b6.js";
+import { c as createText } from "./createText-b0d5c0ec.js";
+import { i as isDark } from "./is_dark-b77964f3.js";
+import "./mermaidAPI-c841a67f.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mindMap": 4, "spaceLines": 5, "SPACELINE": 6, "NL": 7, "MINDMAP": 8, "document": 9, "stop": 10, "EOF": 11, "statement": 12, "SPACELIST": 13, "node": 14, "ICON": 15, "CLASS": 16, "nodeWithId": 17, "nodeWithoutId": 18, "NODE_DSTART": 19, "NODE_DESCR": 20, "NODE_DEND": 21, "NODE_ID": 22, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" },
+ productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 6:
+ case 7:
+ return yy;
+ case 8:
+ yy.getLogger().trace("Stop NL ");
+ break;
+ case 9:
+ yy.getLogger().trace("Stop EOF ");
+ break;
+ case 11:
+ yy.getLogger().trace("Stop NL2 ");
+ break;
+ case 12:
+ yy.getLogger().trace("Stop EOF2 ");
+ break;
+ case 15:
+ yy.getLogger().info("Node: ", $$[$0].id);
+ yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);
+ break;
+ case 16:
+ yy.getLogger().trace("Icon: ", $$[$0]);
+ yy.decorateNode({ icon: $$[$0] });
+ break;
+ case 17:
+ case 21:
+ yy.decorateNode({ class: $$[$0] });
+ break;
+ case 18:
+ yy.getLogger().trace("SPACELIST");
+ break;
+ case 19:
+ yy.getLogger().trace("Node: ", $$[$0].id);
+ yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);
+ break;
+ case 20:
+ yy.decorateNode({ icon: $$[$0] });
+ break;
+ case 25:
+ yy.getLogger().trace("node found ..", $$[$0 - 2]);
+ this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
+ break;
+ case 26:
+ this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT };
+ break;
+ case 27:
+ yy.getLogger().trace("node found ..", $$[$0 - 3]);
+ this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])],
+ defaultActions: { 2: [2, 1], 6: [2, 2] },
+ parseError: function parseError2(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self2.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError2(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next2 = this.match;
+ if (next2.length < 20) {
+ next2 += this._input.substr(0, 20 - next2.length);
+ }
+ return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ yy.getLogger().trace("Found comment", yy_.yytext);
+ return 6;
+ case 1:
+ return 8;
+ case 2:
+ this.begin("CLASS");
+ break;
+ case 3:
+ this.popState();
+ return 16;
+ case 4:
+ this.popState();
+ break;
+ case 5:
+ yy.getLogger().trace("Begin icon");
+ this.begin("ICON");
+ break;
+ case 6:
+ yy.getLogger().trace("SPACELINE");
+ return 6;
+ case 7:
+ return 7;
+ case 8:
+ return 15;
+ case 9:
+ yy.getLogger().trace("end icon");
+ this.popState();
+ break;
+ case 10:
+ yy.getLogger().trace("Exploding node");
+ this.begin("NODE");
+ return 19;
+ case 11:
+ yy.getLogger().trace("Cloud");
+ this.begin("NODE");
+ return 19;
+ case 12:
+ yy.getLogger().trace("Explosion Bang");
+ this.begin("NODE");
+ return 19;
+ case 13:
+ yy.getLogger().trace("Cloud Bang");
+ this.begin("NODE");
+ return 19;
+ case 14:
+ this.begin("NODE");
+ return 19;
+ case 15:
+ this.begin("NODE");
+ return 19;
+ case 16:
+ this.begin("NODE");
+ return 19;
+ case 17:
+ this.begin("NODE");
+ return 19;
+ case 18:
+ return 13;
+ case 19:
+ return 22;
+ case 20:
+ return 11;
+ case 21:
+ this.begin("NSTR2");
+ break;
+ case 22:
+ return "NODE_DESCR";
+ case 23:
+ this.popState();
+ break;
+ case 24:
+ yy.getLogger().trace("Starting NSTR");
+ this.begin("NSTR");
+ break;
+ case 25:
+ yy.getLogger().trace("description:", yy_.yytext);
+ return "NODE_DESCR";
+ case 26:
+ this.popState();
+ break;
+ case 27:
+ this.popState();
+ yy.getLogger().trace("node end ))");
+ return "NODE_DEND";
+ case 28:
+ this.popState();
+ yy.getLogger().trace("node end )");
+ return "NODE_DEND";
+ case 29:
+ this.popState();
+ yy.getLogger().trace("node end ...", yy_.yytext);
+ return "NODE_DEND";
+ case 30:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
+ case 31:
+ this.popState();
+ yy.getLogger().trace("node end (-");
+ return "NODE_DEND";
+ case 32:
+ this.popState();
+ yy.getLogger().trace("node end (-");
+ return "NODE_DEND";
+ case 33:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
+ case 34:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
+ case 35:
+ yy.getLogger().trace("Long description:", yy_.yytext);
+ return 20;
+ case 36:
+ yy.getLogger().trace("Long description:", yy_.yytext);
+ return 20;
+ }
+ },
+ rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\-\)\{\}]+)/i, /^(?:$)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i],
+ conditions: { "CLASS": { "rules": [3, 4], "inclusive": false }, "ICON": { "rules": [8, 9], "inclusive": false }, "NSTR2": { "rules": [22, 23], "inclusive": false }, "NSTR": { "rules": [25, 26], "inclusive": false }, "NODE": { "rules": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const mindmapParser = parser;
+const sanitizeText = (text) => sanitizeText$1(text, getConfig());
+let nodes = [];
+let cnt = 0;
+let elements = {};
+const clear = () => {
+ nodes = [];
+ cnt = 0;
+ elements = {};
+};
+const getParent = function(level) {
+ for (let i = nodes.length - 1; i >= 0; i--) {
+ if (nodes[i].level < level) {
+ return nodes[i];
+ }
+ }
+ return null;
+};
+const getMindmap = () => {
+ return nodes.length > 0 ? nodes[0] : null;
+};
+const addNode = (level, id, descr, type) => {
+ log.info("addNode", level, id, descr, type);
+ const conf = getConfig();
+ const node = {
+ id: cnt++,
+ nodeId: sanitizeText(id),
+ level,
+ descr: sanitizeText(descr),
+ type,
+ children: [],
+ width: getConfig().mindmap.maxNodeWidth
+ };
+ switch (node.type) {
+ case nodeType.ROUNDED_RECT:
+ node.padding = 2 * conf.mindmap.padding;
+ break;
+ case nodeType.RECT:
+ node.padding = 2 * conf.mindmap.padding;
+ break;
+ case nodeType.HEXAGON:
+ node.padding = 2 * conf.mindmap.padding;
+ break;
+ default:
+ node.padding = conf.mindmap.padding;
+ }
+ const parent = getParent(level);
+ if (parent) {
+ parent.children.push(node);
+ nodes.push(node);
+ } else {
+ if (nodes.length === 0) {
+ nodes.push(node);
+ } else {
+ let error = new Error(
+ 'There can be only one root. No parent could be found for ("' + node.descr + '")'
+ );
+ error.hash = {
+ text: "branch " + name,
+ token: "branch " + name,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"checkout ' + name + '"']
+ };
+ throw error;
+ }
+ }
+};
+const nodeType = {
+ DEFAULT: 0,
+ NO_BORDER: 0,
+ ROUNDED_RECT: 1,
+ RECT: 2,
+ CIRCLE: 3,
+ CLOUD: 4,
+ BANG: 5,
+ HEXAGON: 6
+};
+const getType = (startStr, endStr) => {
+ log.debug("In get type", startStr, endStr);
+ switch (startStr) {
+ case "[":
+ return nodeType.RECT;
+ case "(":
+ return endStr === ")" ? nodeType.ROUNDED_RECT : nodeType.CLOUD;
+ case "((":
+ return nodeType.CIRCLE;
+ case ")":
+ return nodeType.CLOUD;
+ case "))":
+ return nodeType.BANG;
+ case "{{":
+ return nodeType.HEXAGON;
+ default:
+ return nodeType.DEFAULT;
+ }
+};
+const setElementForId = (id, element) => {
+ elements[id] = element;
+};
+const decorateNode = (decoration) => {
+ const node = nodes[nodes.length - 1];
+ if (decoration && decoration.icon) {
+ node.icon = sanitizeText(decoration.icon);
+ }
+ if (decoration && decoration.class) {
+ node.class = sanitizeText(decoration.class);
+ }
+};
+const type2Str = (type) => {
+ switch (type) {
+ case nodeType.DEFAULT:
+ return "no-border";
+ case nodeType.RECT:
+ return "rect";
+ case nodeType.ROUNDED_RECT:
+ return "rounded-rect";
+ case nodeType.CIRCLE:
+ return "circle";
+ case nodeType.CLOUD:
+ return "cloud";
+ case nodeType.BANG:
+ return "bang";
+ case nodeType.HEXAGON:
+ return "hexgon";
+ default:
+ return "no-border";
+ }
+};
+let parseError;
+const setErrorHandler = (handler) => {
+ parseError = handler;
+};
+const getLogger = () => log;
+const getNodeById = (id) => nodes[id];
+const getElementById = (id) => elements[id];
+const mindmapDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ addNode,
+ clear,
+ decorateNode,
+ getElementById,
+ getLogger,
+ getMindmap,
+ getNodeById,
+ getType,
+ nodeType,
+ get parseError() {
+ return parseError;
+ },
+ sanitizeText,
+ setElementForId,
+ setErrorHandler,
+ type2Str
+}, Symbol.toStringTag, { value: "Module" }));
+const MAX_SECTIONS = 12;
+const defaultBkg = function(elem, node, section) {
+ const rd = 5;
+ elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr(
+ "d",
+ `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`
+ );
+ elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height);
+};
+const rectBkg = function(elem, node) {
+ elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("width", node.width);
+};
+const cloudBkg = function(elem, node) {
+ const w = node.width;
+ const h = node.height;
+ const r1 = 0.15 * w;
+ const r2 = 0.25 * w;
+ const r3 = 0.35 * w;
+ const r4 = 0.2 * w;
+ elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr(
+ "d",
+ `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1}
+ a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1}
+ a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2}
+
+ a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35}
+ a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65}
+
+ a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15}
+ a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0}
+ a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15}
+
+ a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35}
+ a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65}
+
+ H0 V0 Z`
+ );
+};
+const bangBkg = function(elem, node) {
+ const w = node.width;
+ const h = node.height;
+ const r = 0.15 * w;
+ elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr(
+ "d",
+ `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1}
+ a${r},${r} 1 0,0 ${w * 0.25},${0}
+ a${r},${r} 1 0,0 ${w * 0.25},${0}
+ a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1}
+
+ a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33}
+ a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34}
+ a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33}
+
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15}
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15}
+
+ a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33}
+ a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34}
+ a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33}
+
+ H0 V0 Z`
+ );
+};
+const circleBkg = function(elem, node) {
+ elem.append("circle").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("r", node.width / 2);
+};
+function insertPolygonShape(parent, w, h, points, node) {
+ return parent.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d) {
+ return d.x + "," + d.y;
+ }).join(" ")
+ ).attr("transform", "translate(" + (node.width - w) / 2 + ", " + h + ")");
+}
+const hexagonBkg = function(elem, node) {
+ const h = node.height;
+ const f = 4;
+ const m = h / f;
+ const w = node.width - node.padding + 2 * m;
+ const points = [
+ { x: m, y: 0 },
+ { x: w - m, y: 0 },
+ { x: w, y: -h / 2 },
+ { x: w - m, y: -h },
+ { x: m, y: -h },
+ { x: 0, y: -h / 2 }
+ ];
+ insertPolygonShape(elem, w, h, points, node);
+};
+const roundedRectBkg = function(elem, node) {
+ elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("rx", node.padding).attr("ry", node.padding).attr("width", node.width);
+};
+const drawNode = function(elem, node, fullSection, conf) {
+ const htmlLabels = conf.htmlLabels;
+ const section = fullSection % (MAX_SECTIONS - 1);
+ const nodeElem = elem.append("g");
+ node.section = section;
+ let sectionClass = "section-" + section;
+ if (section < 0) {
+ sectionClass += " section-root";
+ }
+ nodeElem.attr("class", (node.class ? node.class + " " : "") + "mindmap-node " + sectionClass);
+ const bkgElem = nodeElem.append("g");
+ const textElem = nodeElem.append("g");
+ const description = node.descr.replace(/(
)/g, "\n");
+ createText(textElem, description, {
+ useHtmlLabels: htmlLabels,
+ width: node.width,
+ classes: "mindmap-node-label"
+ });
+ if (!htmlLabels) {
+ textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle");
+ }
+ const bbox = textElem.node().getBBox();
+ const fontSize = conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize;
+ node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;
+ node.width = bbox.width + 2 * node.padding;
+ if (node.icon) {
+ if (node.type === nodeType.CIRCLE) {
+ node.height += 50;
+ node.width += 50;
+ const icon = nodeElem.append("foreignObject").attr("height", "50px").attr("width", node.width).attr("style", "text-align: center;");
+ icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon);
+ textElem.attr(
+ "transform",
+ "translate(" + node.width / 2 + ", " + (node.height / 2 - 1.5 * node.padding) + ")"
+ );
+ } else {
+ node.width += 50;
+ const orgHeight = node.height;
+ node.height = Math.max(orgHeight, 60);
+ const heightDiff = Math.abs(node.height - orgHeight);
+ const icon = nodeElem.append("foreignObject").attr("width", "60px").attr("height", node.height).attr("style", "text-align: center;margin-top:" + heightDiff / 2 + "px;");
+ icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon);
+ textElem.attr(
+ "transform",
+ "translate(" + (25 + node.width / 2) + ", " + (heightDiff / 2 + node.padding / 2) + ")"
+ );
+ }
+ } else {
+ if (!htmlLabels) {
+ const dx = node.width / 2;
+ const dy = node.padding / 2;
+ textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
+ } else {
+ const dx = (node.width - bbox.width) / 2;
+ const dy = (node.height - bbox.height) / 2;
+ textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
+ }
+ }
+ switch (node.type) {
+ case nodeType.DEFAULT:
+ defaultBkg(bkgElem, node, section);
+ break;
+ case nodeType.ROUNDED_RECT:
+ roundedRectBkg(bkgElem, node);
+ break;
+ case nodeType.RECT:
+ rectBkg(bkgElem, node);
+ break;
+ case nodeType.CIRCLE:
+ bkgElem.attr("transform", "translate(" + node.width / 2 + ", " + +node.height / 2 + ")");
+ circleBkg(bkgElem, node);
+ break;
+ case nodeType.CLOUD:
+ cloudBkg(bkgElem, node);
+ break;
+ case nodeType.BANG:
+ bangBkg(bkgElem, node);
+ break;
+ case nodeType.HEXAGON:
+ hexagonBkg(bkgElem, node);
+ break;
+ }
+ setElementForId(node.id, nodeElem);
+ return node.height;
+};
+const drawEdge = function drawEdge2(edgesElem, mindmap, parent, depth, fullSection) {
+ const section = fullSection % (MAX_SECTIONS - 1);
+ const sx = parent.x + parent.width / 2;
+ const sy = parent.y + parent.height / 2;
+ const ex = mindmap.x + mindmap.width / 2;
+ const ey = mindmap.y + mindmap.height / 2;
+ const mx = ex > sx ? sx + Math.abs(sx - ex) / 2 : sx - Math.abs(sx - ex) / 2;
+ const my = ey > sy ? sy + Math.abs(sy - ey) / 2 : sy - Math.abs(sy - ey) / 2;
+ const qx = ex > sx ? Math.abs(sx - mx) / 2 + sx : -Math.abs(sx - mx) / 2 + sx;
+ const qy = ey > sy ? Math.abs(sy - my) / 2 + sy : -Math.abs(sy - my) / 2 + sy;
+ edgesElem.append("path").attr(
+ "d",
+ parent.direction === "TB" || parent.direction === "BT" ? `M${sx},${sy} Q${sx},${qy} ${mx},${my} T${ex},${ey}` : `M${sx},${sy} Q${qx},${sy} ${mx},${my} T${ex},${ey}`
+ ).attr("class", "edge section-edge-" + section + " edge-depth-" + depth);
+};
+const positionNode = function(node) {
+ const nodeElem = getElementById(node.id);
+ const x = node.x || 0;
+ const y = node.y || 0;
+ nodeElem.attr("transform", "translate(" + x + "," + y + ")");
+};
+const svgDraw = { drawNode, positionNode, drawEdge };
+var cytoscape_umdExports = {};
+var cytoscape_umd = {
+ get exports() {
+ return cytoscape_umdExports;
+ },
+ set exports(v) {
+ cytoscape_umdExports = v;
+ }
+};
+(function(module, exports) {
+ (function(global, factory) {
+ module.exports = factory();
+ })(commonjsGlobal, function() {
+ function _typeof(obj) {
+ "@babel/helpers - typeof";
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
+ return typeof obj2;
+ } : function(obj2) {
+ return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
+ }, _typeof(obj);
+ }
+ function _classCallCheck(instance2, Constructor) {
+ if (!(instance2 instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+ function _defineProperties(target, props) {
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var descriptor = props[i2];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor)
+ descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps)
+ _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps)
+ _defineProperties(Constructor, staticProps);
+ Object.defineProperty(Constructor, "prototype", {
+ writable: false
+ });
+ return Constructor;
+ }
+ function _defineProperty$1(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+ return obj;
+ }
+ function _slicedToArray(arr, i2) {
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i2) || _unsupportedIterableToArray(arr, i2) || _nonIterableRest();
+ }
+ function _arrayWithHoles(arr) {
+ if (Array.isArray(arr))
+ return arr;
+ }
+ function _iterableToArrayLimit(arr, i2) {
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
+ if (_i == null)
+ return;
+ var _arr = [];
+ var _n = true;
+ var _d = false;
+ var _s, _e;
+ try {
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
+ _arr.push(_s.value);
+ if (i2 && _arr.length === i2)
+ break;
+ }
+ } catch (err) {
+ _d = true;
+ _e = err;
+ } finally {
+ try {
+ if (!_n && _i["return"] != null)
+ _i["return"]();
+ } finally {
+ if (_d)
+ throw _e;
+ }
+ }
+ return _arr;
+ }
+ function _unsupportedIterableToArray(o, minLen) {
+ if (!o)
+ return;
+ if (typeof o === "string")
+ return _arrayLikeToArray(o, minLen);
+ var n = Object.prototype.toString.call(o).slice(8, -1);
+ if (n === "Object" && o.constructor)
+ n = o.constructor.name;
+ if (n === "Map" || n === "Set")
+ return Array.from(o);
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
+ return _arrayLikeToArray(o, minLen);
+ }
+ function _arrayLikeToArray(arr, len) {
+ if (len == null || len > arr.length)
+ len = arr.length;
+ for (var i2 = 0, arr2 = new Array(len); i2 < len; i2++)
+ arr2[i2] = arr[i2];
+ return arr2;
+ }
+ function _nonIterableRest() {
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+ }
+ var window$1 = typeof window === "undefined" ? null : window;
+ var navigator = window$1 ? window$1.navigator : null;
+ window$1 ? window$1.document : null;
+ var typeofstr = _typeof("");
+ var typeofobj = _typeof({});
+ var typeoffn = _typeof(function() {
+ });
+ var typeofhtmlele = typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement);
+ var instanceStr = function instanceStr2(obj) {
+ return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null;
+ };
+ var string = function string2(obj) {
+ return obj != null && _typeof(obj) == typeofstr;
+ };
+ var fn$6 = function fn2(obj) {
+ return obj != null && _typeof(obj) === typeoffn;
+ };
+ var array = function array2(obj) {
+ return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array);
+ };
+ var plainObject = function plainObject2(obj) {
+ return obj != null && _typeof(obj) === typeofobj && !array(obj) && obj.constructor === Object;
+ };
+ var object = function object2(obj) {
+ return obj != null && _typeof(obj) === typeofobj;
+ };
+ var number$1 = function number2(obj) {
+ return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj);
+ };
+ var integer = function integer2(obj) {
+ return number$1(obj) && Math.floor(obj) === obj;
+ };
+ var htmlElement = function htmlElement2(obj) {
+ if ("undefined" === typeofhtmlele) {
+ return void 0;
+ } else {
+ return null != obj && obj instanceof HTMLElement;
+ }
+ };
+ var elementOrCollection = function elementOrCollection2(obj) {
+ return element(obj) || collection(obj);
+ };
+ var element = function element2(obj) {
+ return instanceStr(obj) === "collection" && obj._private.single;
+ };
+ var collection = function collection2(obj) {
+ return instanceStr(obj) === "collection" && !obj._private.single;
+ };
+ var core = function core2(obj) {
+ return instanceStr(obj) === "core";
+ };
+ var stylesheet = function stylesheet2(obj) {
+ return instanceStr(obj) === "stylesheet";
+ };
+ var event = function event2(obj) {
+ return instanceStr(obj) === "event";
+ };
+ var emptyString = function emptyString2(obj) {
+ if (obj === void 0 || obj === null) {
+ return true;
+ } else if (obj === "" || obj.match(/^\s+$/)) {
+ return true;
+ }
+ return false;
+ };
+ var domElement = function domElement2(obj) {
+ if (typeof HTMLElement === "undefined") {
+ return false;
+ } else {
+ return obj instanceof HTMLElement;
+ }
+ };
+ var boundingBox = function boundingBox2(obj) {
+ return plainObject(obj) && number$1(obj.x1) && number$1(obj.x2) && number$1(obj.y1) && number$1(obj.y2);
+ };
+ var promise = function promise2(obj) {
+ return object(obj) && fn$6(obj.then);
+ };
+ var ms = function ms2() {
+ return navigator && navigator.userAgent.match(/msie|trident|edge/i);
+ };
+ var memoize$1 = function memoize2(fn2, keyFn) {
+ if (!keyFn) {
+ keyFn = function keyFn2() {
+ if (arguments.length === 1) {
+ return arguments[0];
+ } else if (arguments.length === 0) {
+ return "undefined";
+ }
+ var args = [];
+ for (var i2 = 0; i2 < arguments.length; i2++) {
+ args.push(arguments[i2]);
+ }
+ return args.join("$");
+ };
+ }
+ var memoizedFn = function memoizedFn2() {
+ var self2 = this;
+ var args = arguments;
+ var ret;
+ var k = keyFn.apply(self2, args);
+ var cache2 = memoizedFn2.cache;
+ if (!(ret = cache2[k])) {
+ ret = cache2[k] = fn2.apply(self2, args);
+ }
+ return ret;
+ };
+ memoizedFn.cache = {};
+ return memoizedFn;
+ };
+ var camel2dash = memoize$1(function(str) {
+ return str.replace(/([A-Z])/g, function(v) {
+ return "-" + v.toLowerCase();
+ });
+ });
+ var dash2camel = memoize$1(function(str) {
+ return str.replace(/(-\w)/g, function(v) {
+ return v[1].toUpperCase();
+ });
+ });
+ var prependCamel = memoize$1(function(prefix, str) {
+ return prefix + str[0].toUpperCase() + str.substring(1);
+ }, function(prefix, str) {
+ return prefix + "$" + str;
+ });
+ var capitalize = function capitalize2(str) {
+ if (emptyString(str)) {
+ return str;
+ }
+ return str.charAt(0).toUpperCase() + str.substring(1);
+ };
+ var number = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))";
+ var rgba = "rgb[a]?\\((" + number + "[%]?)\\s*,\\s*(" + number + "[%]?)\\s*,\\s*(" + number + "[%]?)(?:\\s*,\\s*(" + number + "))?\\)";
+ var rgbaNoBackRefs = "rgb[a]?\\((?:" + number + "[%]?)\\s*,\\s*(?:" + number + "[%]?)\\s*,\\s*(?:" + number + "[%]?)(?:\\s*,\\s*(?:" + number + "))?\\)";
+ var hsla = "hsl[a]?\\((" + number + ")\\s*,\\s*(" + number + "[%])\\s*,\\s*(" + number + "[%])(?:\\s*,\\s*(" + number + "))?\\)";
+ var hslaNoBackRefs = "hsl[a]?\\((?:" + number + ")\\s*,\\s*(?:" + number + "[%])\\s*,\\s*(?:" + number + "[%])(?:\\s*,\\s*(?:" + number + "))?\\)";
+ var hex3 = "\\#[0-9a-fA-F]{3}";
+ var hex6 = "\\#[0-9a-fA-F]{6}";
+ var ascending = function ascending2(a, b) {
+ if (a < b) {
+ return -1;
+ } else if (a > b) {
+ return 1;
+ } else {
+ return 0;
+ }
+ };
+ var descending = function descending2(a, b) {
+ return -1 * ascending(a, b);
+ };
+ var extend = Object.assign != null ? Object.assign.bind(Object) : function(tgt) {
+ var args = arguments;
+ for (var i2 = 1; i2 < args.length; i2++) {
+ var obj = args[i2];
+ if (obj == null) {
+ continue;
+ }
+ var keys = Object.keys(obj);
+ for (var j = 0; j < keys.length; j++) {
+ var k = keys[j];
+ tgt[k] = obj[k];
+ }
+ }
+ return tgt;
+ };
+ var hex2tuple = function hex2tuple2(hex) {
+ if (!(hex.length === 4 || hex.length === 7) || hex[0] !== "#") {
+ return;
+ }
+ var shortHex = hex.length === 4;
+ var r, g, b;
+ var base = 16;
+ if (shortHex) {
+ r = parseInt(hex[1] + hex[1], base);
+ g = parseInt(hex[2] + hex[2], base);
+ b = parseInt(hex[3] + hex[3], base);
+ } else {
+ r = parseInt(hex[1] + hex[2], base);
+ g = parseInt(hex[3] + hex[4], base);
+ b = parseInt(hex[5] + hex[6], base);
+ }
+ return [r, g, b];
+ };
+ var hsl2tuple = function hsl2tuple2(hsl) {
+ var ret;
+ var h, s, l, a, r, g, b;
+ function hue2rgb(p3, q2, t) {
+ if (t < 0)
+ t += 1;
+ if (t > 1)
+ t -= 1;
+ if (t < 1 / 6)
+ return p3 + (q2 - p3) * 6 * t;
+ if (t < 1 / 2)
+ return q2;
+ if (t < 2 / 3)
+ return p3 + (q2 - p3) * (2 / 3 - t) * 6;
+ return p3;
+ }
+ var m = new RegExp("^" + hsla + "$").exec(hsl);
+ if (m) {
+ h = parseInt(m[1]);
+ if (h < 0) {
+ h = (360 - -1 * h % 360) % 360;
+ } else if (h > 360) {
+ h = h % 360;
+ }
+ h /= 360;
+ s = parseFloat(m[2]);
+ if (s < 0 || s > 100) {
+ return;
+ }
+ s = s / 100;
+ l = parseFloat(m[3]);
+ if (l < 0 || l > 100) {
+ return;
+ }
+ l = l / 100;
+ a = m[4];
+ if (a !== void 0) {
+ a = parseFloat(a);
+ if (a < 0 || a > 1) {
+ return;
+ }
+ }
+ if (s === 0) {
+ r = g = b = Math.round(l * 255);
+ } else {
+ var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
+ var p2 = 2 * l - q;
+ r = Math.round(255 * hue2rgb(p2, q, h + 1 / 3));
+ g = Math.round(255 * hue2rgb(p2, q, h));
+ b = Math.round(255 * hue2rgb(p2, q, h - 1 / 3));
+ }
+ ret = [r, g, b, a];
+ }
+ return ret;
+ };
+ var rgb2tuple = function rgb2tuple2(rgb) {
+ var ret;
+ var m = new RegExp("^" + rgba + "$").exec(rgb);
+ if (m) {
+ ret = [];
+ var isPct = [];
+ for (var i2 = 1; i2 <= 3; i2++) {
+ var channel = m[i2];
+ if (channel[channel.length - 1] === "%") {
+ isPct[i2] = true;
+ }
+ channel = parseFloat(channel);
+ if (isPct[i2]) {
+ channel = channel / 100 * 255;
+ }
+ if (channel < 0 || channel > 255) {
+ return;
+ }
+ ret.push(Math.floor(channel));
+ }
+ var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3];
+ var allArePct = isPct[1] && isPct[2] && isPct[3];
+ if (atLeastOneIsPct && !allArePct) {
+ return;
+ }
+ var alpha = m[4];
+ if (alpha !== void 0) {
+ alpha = parseFloat(alpha);
+ if (alpha < 0 || alpha > 1) {
+ return;
+ }
+ ret.push(alpha);
+ }
+ }
+ return ret;
+ };
+ var colorname2tuple = function colorname2tuple2(color) {
+ return colors[color.toLowerCase()];
+ };
+ var color2tuple = function color2tuple2(color) {
+ return (array(color) ? color : null) || colorname2tuple(color) || hex2tuple(color) || rgb2tuple(color) || hsl2tuple(color);
+ };
+ var colors = {
+ // special colour names
+ transparent: [0, 0, 0, 0],
+ // NB alpha === 0
+ // regular colours
+ aliceblue: [240, 248, 255],
+ antiquewhite: [250, 235, 215],
+ aqua: [0, 255, 255],
+ aquamarine: [127, 255, 212],
+ azure: [240, 255, 255],
+ beige: [245, 245, 220],
+ bisque: [255, 228, 196],
+ black: [0, 0, 0],
+ blanchedalmond: [255, 235, 205],
+ blue: [0, 0, 255],
+ blueviolet: [138, 43, 226],
+ brown: [165, 42, 42],
+ burlywood: [222, 184, 135],
+ cadetblue: [95, 158, 160],
+ chartreuse: [127, 255, 0],
+ chocolate: [210, 105, 30],
+ coral: [255, 127, 80],
+ cornflowerblue: [100, 149, 237],
+ cornsilk: [255, 248, 220],
+ crimson: [220, 20, 60],
+ cyan: [0, 255, 255],
+ darkblue: [0, 0, 139],
+ darkcyan: [0, 139, 139],
+ darkgoldenrod: [184, 134, 11],
+ darkgray: [169, 169, 169],
+ darkgreen: [0, 100, 0],
+ darkgrey: [169, 169, 169],
+ darkkhaki: [189, 183, 107],
+ darkmagenta: [139, 0, 139],
+ darkolivegreen: [85, 107, 47],
+ darkorange: [255, 140, 0],
+ darkorchid: [153, 50, 204],
+ darkred: [139, 0, 0],
+ darksalmon: [233, 150, 122],
+ darkseagreen: [143, 188, 143],
+ darkslateblue: [72, 61, 139],
+ darkslategray: [47, 79, 79],
+ darkslategrey: [47, 79, 79],
+ darkturquoise: [0, 206, 209],
+ darkviolet: [148, 0, 211],
+ deeppink: [255, 20, 147],
+ deepskyblue: [0, 191, 255],
+ dimgray: [105, 105, 105],
+ dimgrey: [105, 105, 105],
+ dodgerblue: [30, 144, 255],
+ firebrick: [178, 34, 34],
+ floralwhite: [255, 250, 240],
+ forestgreen: [34, 139, 34],
+ fuchsia: [255, 0, 255],
+ gainsboro: [220, 220, 220],
+ ghostwhite: [248, 248, 255],
+ gold: [255, 215, 0],
+ goldenrod: [218, 165, 32],
+ gray: [128, 128, 128],
+ grey: [128, 128, 128],
+ green: [0, 128, 0],
+ greenyellow: [173, 255, 47],
+ honeydew: [240, 255, 240],
+ hotpink: [255, 105, 180],
+ indianred: [205, 92, 92],
+ indigo: [75, 0, 130],
+ ivory: [255, 255, 240],
+ khaki: [240, 230, 140],
+ lavender: [230, 230, 250],
+ lavenderblush: [255, 240, 245],
+ lawngreen: [124, 252, 0],
+ lemonchiffon: [255, 250, 205],
+ lightblue: [173, 216, 230],
+ lightcoral: [240, 128, 128],
+ lightcyan: [224, 255, 255],
+ lightgoldenrodyellow: [250, 250, 210],
+ lightgray: [211, 211, 211],
+ lightgreen: [144, 238, 144],
+ lightgrey: [211, 211, 211],
+ lightpink: [255, 182, 193],
+ lightsalmon: [255, 160, 122],
+ lightseagreen: [32, 178, 170],
+ lightskyblue: [135, 206, 250],
+ lightslategray: [119, 136, 153],
+ lightslategrey: [119, 136, 153],
+ lightsteelblue: [176, 196, 222],
+ lightyellow: [255, 255, 224],
+ lime: [0, 255, 0],
+ limegreen: [50, 205, 50],
+ linen: [250, 240, 230],
+ magenta: [255, 0, 255],
+ maroon: [128, 0, 0],
+ mediumaquamarine: [102, 205, 170],
+ mediumblue: [0, 0, 205],
+ mediumorchid: [186, 85, 211],
+ mediumpurple: [147, 112, 219],
+ mediumseagreen: [60, 179, 113],
+ mediumslateblue: [123, 104, 238],
+ mediumspringgreen: [0, 250, 154],
+ mediumturquoise: [72, 209, 204],
+ mediumvioletred: [199, 21, 133],
+ midnightblue: [25, 25, 112],
+ mintcream: [245, 255, 250],
+ mistyrose: [255, 228, 225],
+ moccasin: [255, 228, 181],
+ navajowhite: [255, 222, 173],
+ navy: [0, 0, 128],
+ oldlace: [253, 245, 230],
+ olive: [128, 128, 0],
+ olivedrab: [107, 142, 35],
+ orange: [255, 165, 0],
+ orangered: [255, 69, 0],
+ orchid: [218, 112, 214],
+ palegoldenrod: [238, 232, 170],
+ palegreen: [152, 251, 152],
+ paleturquoise: [175, 238, 238],
+ palevioletred: [219, 112, 147],
+ papayawhip: [255, 239, 213],
+ peachpuff: [255, 218, 185],
+ peru: [205, 133, 63],
+ pink: [255, 192, 203],
+ plum: [221, 160, 221],
+ powderblue: [176, 224, 230],
+ purple: [128, 0, 128],
+ red: [255, 0, 0],
+ rosybrown: [188, 143, 143],
+ royalblue: [65, 105, 225],
+ saddlebrown: [139, 69, 19],
+ salmon: [250, 128, 114],
+ sandybrown: [244, 164, 96],
+ seagreen: [46, 139, 87],
+ seashell: [255, 245, 238],
+ sienna: [160, 82, 45],
+ silver: [192, 192, 192],
+ skyblue: [135, 206, 235],
+ slateblue: [106, 90, 205],
+ slategray: [112, 128, 144],
+ slategrey: [112, 128, 144],
+ snow: [255, 250, 250],
+ springgreen: [0, 255, 127],
+ steelblue: [70, 130, 180],
+ tan: [210, 180, 140],
+ teal: [0, 128, 128],
+ thistle: [216, 191, 216],
+ tomato: [255, 99, 71],
+ turquoise: [64, 224, 208],
+ violet: [238, 130, 238],
+ wheat: [245, 222, 179],
+ white: [255, 255, 255],
+ whitesmoke: [245, 245, 245],
+ yellow: [255, 255, 0],
+ yellowgreen: [154, 205, 50]
+ };
+ var setMap = function setMap2(options) {
+ var obj = options.map;
+ var keys = options.keys;
+ var l = keys.length;
+ for (var i2 = 0; i2 < l; i2++) {
+ var key = keys[i2];
+ if (plainObject(key)) {
+ throw Error("Tried to set map with object key");
+ }
+ if (i2 < keys.length - 1) {
+ if (obj[key] == null) {
+ obj[key] = {};
+ }
+ obj = obj[key];
+ } else {
+ obj[key] = options.value;
+ }
+ }
+ };
+ var getMap = function getMap2(options) {
+ var obj = options.map;
+ var keys = options.keys;
+ var l = keys.length;
+ for (var i2 = 0; i2 < l; i2++) {
+ var key = keys[i2];
+ if (plainObject(key)) {
+ throw Error("Tried to get map with object key");
+ }
+ obj = obj[key];
+ if (obj == null) {
+ return obj;
+ }
+ }
+ return obj;
+ };
+ function isObject(value) {
+ var type = typeof value;
+ return value != null && (type == "object" || type == "function");
+ }
+ var isObject_1 = isObject;
+ var commonjsGlobal$1 = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof self !== "undefined" ? self : {};
+ function createCommonjsModule(fn2, module2) {
+ return module2 = { exports: {} }, fn2(module2, module2.exports), module2.exports;
+ }
+ var freeGlobal = typeof commonjsGlobal$1 == "object" && commonjsGlobal$1 && commonjsGlobal$1.Object === Object && commonjsGlobal$1;
+ var _freeGlobal = freeGlobal;
+ var freeSelf = typeof self == "object" && self && self.Object === Object && self;
+ var root = _freeGlobal || freeSelf || Function("return this")();
+ var _root = root;
+ var now = function() {
+ return _root.Date.now();
+ };
+ var now_1 = now;
+ var reWhitespace = /\s/;
+ function trimmedEndIndex(string2) {
+ var index = string2.length;
+ while (index-- && reWhitespace.test(string2.charAt(index))) {
+ }
+ return index;
+ }
+ var _trimmedEndIndex = trimmedEndIndex;
+ var reTrimStart = /^\s+/;
+ function baseTrim(string2) {
+ return string2 ? string2.slice(0, _trimmedEndIndex(string2) + 1).replace(reTrimStart, "") : string2;
+ }
+ var _baseTrim = baseTrim;
+ var Symbol$1 = _root.Symbol;
+ var _Symbol = Symbol$1;
+ var objectProto$5 = Object.prototype;
+ var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
+ var nativeObjectToString$1 = objectProto$5.toString;
+ var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : void 0;
+ function getRawTag(value) {
+ var isOwn = hasOwnProperty$4.call(value, symToStringTag$1), tag = value[symToStringTag$1];
+ try {
+ value[symToStringTag$1] = void 0;
+ var unmasked = true;
+ } catch (e) {
+ }
+ var result = nativeObjectToString$1.call(value);
+ if (unmasked) {
+ if (isOwn) {
+ value[symToStringTag$1] = tag;
+ } else {
+ delete value[symToStringTag$1];
+ }
+ }
+ return result;
+ }
+ var _getRawTag = getRawTag;
+ var objectProto$4 = Object.prototype;
+ var nativeObjectToString = objectProto$4.toString;
+ function objectToString(value) {
+ return nativeObjectToString.call(value);
+ }
+ var _objectToString = objectToString;
+ var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
+ var symToStringTag = _Symbol ? _Symbol.toStringTag : void 0;
+ function baseGetTag(value) {
+ if (value == null) {
+ return value === void 0 ? undefinedTag : nullTag;
+ }
+ return symToStringTag && symToStringTag in Object(value) ? _getRawTag(value) : _objectToString(value);
+ }
+ var _baseGetTag = baseGetTag;
+ function isObjectLike(value) {
+ return value != null && typeof value == "object";
+ }
+ var isObjectLike_1 = isObjectLike;
+ var symbolTag = "[object Symbol]";
+ function isSymbol(value) {
+ return typeof value == "symbol" || isObjectLike_1(value) && _baseGetTag(value) == symbolTag;
+ }
+ var isSymbol_1 = isSymbol;
+ var NAN = 0 / 0;
+ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
+ var reIsBinary = /^0b[01]+$/i;
+ var reIsOctal = /^0o[0-7]+$/i;
+ var freeParseInt = parseInt;
+ function toNumber(value) {
+ if (typeof value == "number") {
+ return value;
+ }
+ if (isSymbol_1(value)) {
+ return NAN;
+ }
+ if (isObject_1(value)) {
+ var other = typeof value.valueOf == "function" ? value.valueOf() : value;
+ value = isObject_1(other) ? other + "" : other;
+ }
+ if (typeof value != "string") {
+ return value === 0 ? value : +value;
+ }
+ value = _baseTrim(value);
+ var isBinary = reIsBinary.test(value);
+ return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
+ }
+ var toNumber_1 = toNumber;
+ var FUNC_ERROR_TEXT$1 = "Expected a function";
+ var nativeMax = Math.max, nativeMin = Math.min;
+ function debounce(func, wait, options) {
+ var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
+ if (typeof func != "function") {
+ throw new TypeError(FUNC_ERROR_TEXT$1);
+ }
+ wait = toNumber_1(wait) || 0;
+ if (isObject_1(options)) {
+ leading = !!options.leading;
+ maxing = "maxWait" in options;
+ maxWait = maxing ? nativeMax(toNumber_1(options.maxWait) || 0, wait) : maxWait;
+ trailing = "trailing" in options ? !!options.trailing : trailing;
+ }
+ function invokeFunc(time) {
+ var args = lastArgs, thisArg = lastThis;
+ lastArgs = lastThis = void 0;
+ lastInvokeTime = time;
+ result = func.apply(thisArg, args);
+ return result;
+ }
+ function leadingEdge(time) {
+ lastInvokeTime = time;
+ timerId = setTimeout(timerExpired, wait);
+ return leading ? invokeFunc(time) : result;
+ }
+ function remainingWait(time) {
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
+ return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
+ }
+ function shouldInvoke(time) {
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
+ return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
+ }
+ function timerExpired() {
+ var time = now_1();
+ if (shouldInvoke(time)) {
+ return trailingEdge(time);
+ }
+ timerId = setTimeout(timerExpired, remainingWait(time));
+ }
+ function trailingEdge(time) {
+ timerId = void 0;
+ if (trailing && lastArgs) {
+ return invokeFunc(time);
+ }
+ lastArgs = lastThis = void 0;
+ return result;
+ }
+ function cancel() {
+ if (timerId !== void 0) {
+ clearTimeout(timerId);
+ }
+ lastInvokeTime = 0;
+ lastArgs = lastCallTime = lastThis = timerId = void 0;
+ }
+ function flush() {
+ return timerId === void 0 ? result : trailingEdge(now_1());
+ }
+ function debounced() {
+ var time = now_1(), isInvoking = shouldInvoke(time);
+ lastArgs = arguments;
+ lastThis = this;
+ lastCallTime = time;
+ if (isInvoking) {
+ if (timerId === void 0) {
+ return leadingEdge(lastCallTime);
+ }
+ if (maxing) {
+ clearTimeout(timerId);
+ timerId = setTimeout(timerExpired, wait);
+ return invokeFunc(lastCallTime);
+ }
+ }
+ if (timerId === void 0) {
+ timerId = setTimeout(timerExpired, wait);
+ }
+ return result;
+ }
+ debounced.cancel = cancel;
+ debounced.flush = flush;
+ return debounced;
+ }
+ var debounce_1 = debounce;
+ var performance = window$1 ? window$1.performance : null;
+ var pnow = performance && performance.now ? function() {
+ return performance.now();
+ } : function() {
+ return Date.now();
+ };
+ var raf = function() {
+ if (window$1) {
+ if (window$1.requestAnimationFrame) {
+ return function(fn2) {
+ window$1.requestAnimationFrame(fn2);
+ };
+ } else if (window$1.mozRequestAnimationFrame) {
+ return function(fn2) {
+ window$1.mozRequestAnimationFrame(fn2);
+ };
+ } else if (window$1.webkitRequestAnimationFrame) {
+ return function(fn2) {
+ window$1.webkitRequestAnimationFrame(fn2);
+ };
+ } else if (window$1.msRequestAnimationFrame) {
+ return function(fn2) {
+ window$1.msRequestAnimationFrame(fn2);
+ };
+ }
+ }
+ return function(fn2) {
+ if (fn2) {
+ setTimeout(function() {
+ fn2(pnow());
+ }, 1e3 / 60);
+ }
+ };
+ }();
+ var requestAnimationFrame2 = function requestAnimationFrame3(fn2) {
+ return raf(fn2);
+ };
+ var performanceNow = pnow;
+ var DEFAULT_HASH_SEED = 9261;
+ var K = 65599;
+ var DEFAULT_HASH_SEED_ALT = 5381;
+ var hashIterableInts = function hashIterableInts2(iterator) {
+ var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED;
+ var hash = seed;
+ var entry;
+ for (; ; ) {
+ entry = iterator.next();
+ if (entry.done) {
+ break;
+ }
+ hash = hash * K + entry.value | 0;
+ }
+ return hash;
+ };
+ var hashInt = function hashInt2(num) {
+ var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED;
+ return seed * K + num | 0;
+ };
+ var hashIntAlt = function hashIntAlt2(num) {
+ var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED_ALT;
+ return (seed << 5) + seed + num | 0;
+ };
+ var combineHashes = function combineHashes2(hash1, hash2) {
+ return hash1 * 2097152 + hash2;
+ };
+ var combineHashesArray = function combineHashesArray2(hashes) {
+ return hashes[0] * 2097152 + hashes[1];
+ };
+ var hashArrays = function hashArrays2(hashes1, hashes2) {
+ return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])];
+ };
+ var hashIntsArray = function hashIntsArray2(ints, seed) {
+ var entry = {
+ value: 0,
+ done: false
+ };
+ var i2 = 0;
+ var length = ints.length;
+ var iterator = {
+ next: function next2() {
+ if (i2 < length) {
+ entry.value = ints[i2++];
+ } else {
+ entry.done = true;
+ }
+ return entry;
+ }
+ };
+ return hashIterableInts(iterator, seed);
+ };
+ var hashString = function hashString2(str, seed) {
+ var entry = {
+ value: 0,
+ done: false
+ };
+ var i2 = 0;
+ var length = str.length;
+ var iterator = {
+ next: function next2() {
+ if (i2 < length) {
+ entry.value = str.charCodeAt(i2++);
+ } else {
+ entry.done = true;
+ }
+ return entry;
+ }
+ };
+ return hashIterableInts(iterator, seed);
+ };
+ var hashStrings = function hashStrings2() {
+ return hashStringsArray(arguments);
+ };
+ var hashStringsArray = function hashStringsArray2(strs) {
+ var hash;
+ for (var i2 = 0; i2 < strs.length; i2++) {
+ var str = strs[i2];
+ if (i2 === 0) {
+ hash = hashString(str);
+ } else {
+ hash = hashString(str, hash);
+ }
+ }
+ return hash;
+ };
+ var warningsEnabled = true;
+ var warnSupported = console.warn != null;
+ var traceSupported = console.trace != null;
+ var MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991;
+ var trueify = function trueify2() {
+ return true;
+ };
+ var falsify = function falsify2() {
+ return false;
+ };
+ var zeroify = function zeroify2() {
+ return 0;
+ };
+ var noop$1 = function noop2() {
+ };
+ var error = function error2(msg) {
+ throw new Error(msg);
+ };
+ var warnings = function warnings2(enabled) {
+ if (enabled !== void 0) {
+ warningsEnabled = !!enabled;
+ } else {
+ return warningsEnabled;
+ }
+ };
+ var warn = function warn2(msg) {
+ if (!warnings()) {
+ return;
+ }
+ if (warnSupported) {
+ console.warn(msg);
+ } else {
+ console.log(msg);
+ if (traceSupported) {
+ console.trace();
+ }
+ }
+ };
+ var clone = function clone2(obj) {
+ return extend({}, obj);
+ };
+ var copy = function copy2(obj) {
+ if (obj == null) {
+ return obj;
+ }
+ if (array(obj)) {
+ return obj.slice();
+ } else if (plainObject(obj)) {
+ return clone(obj);
+ } else {
+ return obj;
+ }
+ };
+ var copyArray$1 = function copyArray2(arr) {
+ return arr.slice();
+ };
+ var uuid = function uuid2(a, b) {
+ for (
+ // loop :)
+ b = a = "";
+ // b - result , a - numeric letiable
+ a++ < 36;
+ //
+ b += a * 51 & 52 ? (
+ // return a random number or 4
+ (a ^ 15 ? (
+ // generate a random number from 0 to 15
+ 8 ^ Math.random() * (a ^ 20 ? 16 : 4)
+ ) : 4).toString(16)
+ ) : "-"
+ ) {
+ }
+ return b;
+ };
+ var _staticEmptyObject = {};
+ var staticEmptyObject = function staticEmptyObject2() {
+ return _staticEmptyObject;
+ };
+ var defaults$g = function defaults2(_defaults) {
+ var keys = Object.keys(_defaults);
+ return function(opts) {
+ var filledOpts = {};
+ for (var i2 = 0; i2 < keys.length; i2++) {
+ var key = keys[i2];
+ var optVal = opts == null ? void 0 : opts[key];
+ filledOpts[key] = optVal === void 0 ? _defaults[key] : optVal;
+ }
+ return filledOpts;
+ };
+ };
+ var removeFromArray = function removeFromArray2(arr, ele, oneCopy) {
+ for (var i2 = arr.length - 1; i2 >= 0; i2--) {
+ if (arr[i2] === ele) {
+ arr.splice(i2, 1);
+ if (oneCopy) {
+ break;
+ }
+ }
+ }
+ };
+ var clearArray = function clearArray2(arr) {
+ arr.splice(0, arr.length);
+ };
+ var push = function push2(arr, otherArr) {
+ for (var i2 = 0; i2 < otherArr.length; i2++) {
+ var el = otherArr[i2];
+ arr.push(el);
+ }
+ };
+ var getPrefixedProperty = function getPrefixedProperty2(obj, propName, prefix) {
+ if (prefix) {
+ propName = prependCamel(prefix, propName);
+ }
+ return obj[propName];
+ };
+ var setPrefixedProperty = function setPrefixedProperty2(obj, propName, prefix, value) {
+ if (prefix) {
+ propName = prependCamel(prefix, propName);
+ }
+ obj[propName] = value;
+ };
+ var ObjectMap = /* @__PURE__ */ function() {
+ function ObjectMap2() {
+ _classCallCheck(this, ObjectMap2);
+ this._obj = {};
+ }
+ _createClass(ObjectMap2, [{
+ key: "set",
+ value: function set2(key, val) {
+ this._obj[key] = val;
+ return this;
+ }
+ }, {
+ key: "delete",
+ value: function _delete(key) {
+ this._obj[key] = void 0;
+ return this;
+ }
+ }, {
+ key: "clear",
+ value: function clear2() {
+ this._obj = {};
+ }
+ }, {
+ key: "has",
+ value: function has(key) {
+ return this._obj[key] !== void 0;
+ }
+ }, {
+ key: "get",
+ value: function get2(key) {
+ return this._obj[key];
+ }
+ }]);
+ return ObjectMap2;
+ }();
+ var Map$2 = typeof Map !== "undefined" ? Map : ObjectMap;
+ var undef = "undefined";
+ var ObjectSet = /* @__PURE__ */ function() {
+ function ObjectSet2(arrayOrObjectSet) {
+ _classCallCheck(this, ObjectSet2);
+ this._obj = /* @__PURE__ */ Object.create(null);
+ this.size = 0;
+ if (arrayOrObjectSet != null) {
+ var arr;
+ if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) {
+ arr = arrayOrObjectSet.toArray();
+ } else {
+ arr = arrayOrObjectSet;
+ }
+ for (var i2 = 0; i2 < arr.length; i2++) {
+ this.add(arr[i2]);
+ }
+ }
+ }
+ _createClass(ObjectSet2, [{
+ key: "instanceString",
+ value: function instanceString() {
+ return "set";
+ }
+ }, {
+ key: "add",
+ value: function add(val) {
+ var o = this._obj;
+ if (o[val] !== 1) {
+ o[val] = 1;
+ this.size++;
+ }
+ }
+ }, {
+ key: "delete",
+ value: function _delete(val) {
+ var o = this._obj;
+ if (o[val] === 1) {
+ o[val] = 0;
+ this.size--;
+ }
+ }
+ }, {
+ key: "clear",
+ value: function clear2() {
+ this._obj = /* @__PURE__ */ Object.create(null);
+ }
+ }, {
+ key: "has",
+ value: function has(val) {
+ return this._obj[val] === 1;
+ }
+ }, {
+ key: "toArray",
+ value: function toArray() {
+ var _this = this;
+ return Object.keys(this._obj).filter(function(key) {
+ return _this.has(key);
+ });
+ }
+ }, {
+ key: "forEach",
+ value: function forEach(callback, thisArg) {
+ return this.toArray().forEach(callback, thisArg);
+ }
+ }]);
+ return ObjectSet2;
+ }();
+ var Set$1 = (typeof Set === "undefined" ? "undefined" : _typeof(Set)) !== undef ? Set : ObjectSet;
+ var Element = function Element2(cy, params) {
+ var restore = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
+ if (cy === void 0 || params === void 0 || !core(cy)) {
+ error("An element must have a core reference and parameters set");
+ return;
+ }
+ var group = params.group;
+ if (group == null) {
+ if (params.data && params.data.source != null && params.data.target != null) {
+ group = "edges";
+ } else {
+ group = "nodes";
+ }
+ }
+ if (group !== "nodes" && group !== "edges") {
+ error("An element must be of type `nodes` or `edges`; you specified `" + group + "`");
+ return;
+ }
+ this.length = 1;
+ this[0] = this;
+ var _p = this._private = {
+ cy,
+ single: true,
+ // indicates this is an element
+ data: params.data || {},
+ // data object
+ position: params.position || {
+ x: 0,
+ y: 0
+ },
+ // (x, y) position pair
+ autoWidth: void 0,
+ // width and height of nodes calculated by the renderer when set to special 'auto' value
+ autoHeight: void 0,
+ autoPadding: void 0,
+ compoundBoundsClean: false,
+ // whether the compound dimensions need to be recalculated the next time dimensions are read
+ listeners: [],
+ // array of bound listeners
+ group,
+ // string; 'nodes' or 'edges'
+ style: {},
+ // properties as set by the style
+ rstyle: {},
+ // properties for style sent from the renderer to the core
+ styleCxts: [],
+ // applied style contexts from the styler
+ styleKeys: {},
+ // per-group keys of style property values
+ removed: true,
+ // whether it's inside the vis; true if removed (set true here since we call restore)
+ selected: params.selected ? true : false,
+ // whether it's selected
+ selectable: params.selectable === void 0 ? true : params.selectable ? true : false,
+ // whether it's selectable
+ locked: params.locked ? true : false,
+ // whether the element is locked (cannot be moved)
+ grabbed: false,
+ // whether the element is grabbed by the mouse; renderer sets this privately
+ grabbable: params.grabbable === void 0 ? true : params.grabbable ? true : false,
+ // whether the element can be grabbed
+ pannable: params.pannable === void 0 ? group === "edges" ? true : false : params.pannable ? true : false,
+ // whether the element has passthrough panning enabled
+ active: false,
+ // whether the element is active from user interaction
+ classes: new Set$1(),
+ // map ( className => true )
+ animation: {
+ // object for currently-running animations
+ current: [],
+ queue: []
+ },
+ rscratch: {},
+ // object in which the renderer can store information
+ scratch: params.scratch || {},
+ // scratch objects
+ edges: [],
+ // array of connected edges
+ children: [],
+ // array of children
+ parent: params.parent && params.parent.isNode() ? params.parent : null,
+ // parent ref
+ traversalCache: {},
+ // cache of output of traversal functions
+ backgrounding: false,
+ // whether background images are loading
+ bbCache: null,
+ // cache of the current bounding box
+ bbCacheShift: {
+ x: 0,
+ y: 0
+ },
+ // shift applied to cached bb to be applied on next get
+ bodyBounds: null,
+ // bounds cache of element body, w/o overlay
+ overlayBounds: null,
+ // bounds cache of element body, including overlay
+ labelBounds: {
+ // bounds cache of labels
+ all: null,
+ source: null,
+ target: null,
+ main: null
+ },
+ arrowBounds: {
+ // bounds cache of edge arrows
+ source: null,
+ target: null,
+ "mid-source": null,
+ "mid-target": null
+ }
+ };
+ if (_p.position.x == null) {
+ _p.position.x = 0;
+ }
+ if (_p.position.y == null) {
+ _p.position.y = 0;
+ }
+ if (params.renderedPosition) {
+ var rpos = params.renderedPosition;
+ var pan = cy.pan();
+ var zoom = cy.zoom();
+ _p.position = {
+ x: (rpos.x - pan.x) / zoom,
+ y: (rpos.y - pan.y) / zoom
+ };
+ }
+ var classes = [];
+ if (array(params.classes)) {
+ classes = params.classes;
+ } else if (string(params.classes)) {
+ classes = params.classes.split(/\s+/);
+ }
+ for (var i2 = 0, l = classes.length; i2 < l; i2++) {
+ var cls = classes[i2];
+ if (!cls || cls === "") {
+ continue;
+ }
+ _p.classes.add(cls);
+ }
+ this.createEmitter();
+ var bypass = params.style || params.css;
+ if (bypass) {
+ warn("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead.");
+ this.style(bypass);
+ }
+ if (restore === void 0 || restore) {
+ this.restore();
+ }
+ };
+ var defineSearch = function defineSearch2(params) {
+ params = {
+ bfs: params.bfs || !params.dfs,
+ dfs: params.dfs || !params.bfs
+ };
+ return function searchFn(roots, fn2, directed) {
+ var options;
+ if (plainObject(roots) && !elementOrCollection(roots)) {
+ options = roots;
+ roots = options.roots || options.root;
+ fn2 = options.visit;
+ directed = options.directed;
+ }
+ directed = arguments.length === 2 && !fn$6(fn2) ? fn2 : directed;
+ fn2 = fn$6(fn2) ? fn2 : function() {
+ };
+ var cy = this._private.cy;
+ var v = roots = string(roots) ? this.filter(roots) : roots;
+ var Q = [];
+ var connectedNodes = [];
+ var connectedBy = {};
+ var id2depth = {};
+ var V = {};
+ var j = 0;
+ var found;
+ var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges;
+ for (var i2 = 0; i2 < v.length; i2++) {
+ var vi = v[i2];
+ var viId = vi.id();
+ if (vi.isNode()) {
+ Q.unshift(vi);
+ if (params.bfs) {
+ V[viId] = true;
+ connectedNodes.push(vi);
+ }
+ id2depth[viId] = 0;
+ }
+ }
+ var _loop = function _loop2() {
+ var v2 = params.bfs ? Q.shift() : Q.pop();
+ var vId = v2.id();
+ if (params.dfs) {
+ if (V[vId]) {
+ return "continue";
+ }
+ V[vId] = true;
+ connectedNodes.push(v2);
+ }
+ var depth = id2depth[vId];
+ var prevEdge = connectedBy[vId];
+ var src = prevEdge != null ? prevEdge.source() : null;
+ var tgt = prevEdge != null ? prevEdge.target() : null;
+ var prevNode = prevEdge == null ? void 0 : v2.same(src) ? tgt[0] : src[0];
+ var ret = void 0;
+ ret = fn2(v2, prevEdge, prevNode, j++, depth);
+ if (ret === true) {
+ found = v2;
+ return "break";
+ }
+ if (ret === false) {
+ return "break";
+ }
+ var vwEdges = v2.connectedEdges().filter(function(e2) {
+ return (!directed || e2.source().same(v2)) && edges.has(e2);
+ });
+ for (var _i2 = 0; _i2 < vwEdges.length; _i2++) {
+ var e = vwEdges[_i2];
+ var w = e.connectedNodes().filter(function(n) {
+ return !n.same(v2) && nodes2.has(n);
+ });
+ var wId = w.id();
+ if (w.length !== 0 && !V[wId]) {
+ w = w[0];
+ Q.push(w);
+ if (params.bfs) {
+ V[wId] = true;
+ connectedNodes.push(w);
+ }
+ connectedBy[wId] = e;
+ id2depth[wId] = id2depth[vId] + 1;
+ }
+ }
+ };
+ while (Q.length !== 0) {
+ var _ret = _loop();
+ if (_ret === "continue")
+ continue;
+ if (_ret === "break")
+ break;
+ }
+ var connectedEles = cy.collection();
+ for (var _i = 0; _i < connectedNodes.length; _i++) {
+ var node = connectedNodes[_i];
+ var edge = connectedBy[node.id()];
+ if (edge != null) {
+ connectedEles.push(edge);
+ }
+ connectedEles.push(node);
+ }
+ return {
+ path: cy.collection(connectedEles),
+ found: cy.collection(found)
+ };
+ };
+ };
+ var elesfn$v = {
+ breadthFirstSearch: defineSearch({
+ bfs: true
+ }),
+ depthFirstSearch: defineSearch({
+ dfs: true
+ })
+ };
+ elesfn$v.bfs = elesfn$v.breadthFirstSearch;
+ elesfn$v.dfs = elesfn$v.depthFirstSearch;
+ var heap$1 = createCommonjsModule(function(module2, exports2) {
+ (function() {
+ var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min2, nlargest, nsmallest, updateItem, _siftdown, _siftup;
+ floor = Math.floor, min2 = Math.min;
+ defaultCmp = function(x, y) {
+ if (x < y) {
+ return -1;
+ }
+ if (x > y) {
+ return 1;
+ }
+ return 0;
+ };
+ insort = function(a, x, lo, hi, cmp) {
+ var mid;
+ if (lo == null) {
+ lo = 0;
+ }
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ if (lo < 0) {
+ throw new Error("lo must be non-negative");
+ }
+ if (hi == null) {
+ hi = a.length;
+ }
+ while (lo < hi) {
+ mid = floor((lo + hi) / 2);
+ if (cmp(x, a[mid]) < 0) {
+ hi = mid;
+ } else {
+ lo = mid + 1;
+ }
+ }
+ return [].splice.apply(a, [lo, lo - lo].concat(x)), x;
+ };
+ heappush = function(array2, item, cmp) {
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ array2.push(item);
+ return _siftdown(array2, 0, array2.length - 1, cmp);
+ };
+ heappop = function(array2, cmp) {
+ var lastelt, returnitem;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ lastelt = array2.pop();
+ if (array2.length) {
+ returnitem = array2[0];
+ array2[0] = lastelt;
+ _siftup(array2, 0, cmp);
+ } else {
+ returnitem = lastelt;
+ }
+ return returnitem;
+ };
+ heapreplace = function(array2, item, cmp) {
+ var returnitem;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ returnitem = array2[0];
+ array2[0] = item;
+ _siftup(array2, 0, cmp);
+ return returnitem;
+ };
+ heappushpop = function(array2, item, cmp) {
+ var _ref;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ if (array2.length && cmp(array2[0], item) < 0) {
+ _ref = [array2[0], item], item = _ref[0], array2[0] = _ref[1];
+ _siftup(array2, 0, cmp);
+ }
+ return item;
+ };
+ heapify = function(array2, cmp) {
+ var i2, _i, _len, _ref1, _results, _results1;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ _ref1 = function() {
+ _results1 = [];
+ for (var _j = 0, _ref = floor(array2.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--) {
+ _results1.push(_j);
+ }
+ return _results1;
+ }.apply(this).reverse();
+ _results = [];
+ for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
+ i2 = _ref1[_i];
+ _results.push(_siftup(array2, i2, cmp));
+ }
+ return _results;
+ };
+ updateItem = function(array2, item, cmp) {
+ var pos;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ pos = array2.indexOf(item);
+ if (pos === -1) {
+ return;
+ }
+ _siftdown(array2, 0, pos, cmp);
+ return _siftup(array2, pos, cmp);
+ };
+ nlargest = function(array2, n, cmp) {
+ var elem, result, _i, _len, _ref;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ result = array2.slice(0, n);
+ if (!result.length) {
+ return result;
+ }
+ heapify(result, cmp);
+ _ref = array2.slice(n);
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ elem = _ref[_i];
+ heappushpop(result, elem, cmp);
+ }
+ return result.sort(cmp).reverse();
+ };
+ nsmallest = function(array2, n, cmp) {
+ var elem, los, result, _i, _j, _len, _ref, _ref1, _results;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ if (n * 10 <= array2.length) {
+ result = array2.slice(0, n).sort(cmp);
+ if (!result.length) {
+ return result;
+ }
+ los = result[result.length - 1];
+ _ref = array2.slice(n);
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ elem = _ref[_i];
+ if (cmp(elem, los) < 0) {
+ insort(result, elem, 0, null, cmp);
+ result.pop();
+ los = result[result.length - 1];
+ }
+ }
+ return result;
+ }
+ heapify(array2, cmp);
+ _results = [];
+ for (_j = 0, _ref1 = min2(n, array2.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) {
+ _results.push(heappop(array2, cmp));
+ }
+ return _results;
+ };
+ _siftdown = function(array2, startpos, pos, cmp) {
+ var newitem, parent, parentpos;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ newitem = array2[pos];
+ while (pos > startpos) {
+ parentpos = pos - 1 >> 1;
+ parent = array2[parentpos];
+ if (cmp(newitem, parent) < 0) {
+ array2[pos] = parent;
+ pos = parentpos;
+ continue;
+ }
+ break;
+ }
+ return array2[pos] = newitem;
+ };
+ _siftup = function(array2, pos, cmp) {
+ var childpos, endpos, newitem, rightpos, startpos;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ endpos = array2.length;
+ startpos = pos;
+ newitem = array2[pos];
+ childpos = 2 * pos + 1;
+ while (childpos < endpos) {
+ rightpos = childpos + 1;
+ if (rightpos < endpos && !(cmp(array2[childpos], array2[rightpos]) < 0)) {
+ childpos = rightpos;
+ }
+ array2[pos] = array2[childpos];
+ pos = childpos;
+ childpos = 2 * pos + 1;
+ }
+ array2[pos] = newitem;
+ return _siftdown(array2, startpos, pos, cmp);
+ };
+ Heap = function() {
+ Heap2.push = heappush;
+ Heap2.pop = heappop;
+ Heap2.replace = heapreplace;
+ Heap2.pushpop = heappushpop;
+ Heap2.heapify = heapify;
+ Heap2.updateItem = updateItem;
+ Heap2.nlargest = nlargest;
+ Heap2.nsmallest = nsmallest;
+ function Heap2(cmp) {
+ this.cmp = cmp != null ? cmp : defaultCmp;
+ this.nodes = [];
+ }
+ Heap2.prototype.push = function(x) {
+ return heappush(this.nodes, x, this.cmp);
+ };
+ Heap2.prototype.pop = function() {
+ return heappop(this.nodes, this.cmp);
+ };
+ Heap2.prototype.peek = function() {
+ return this.nodes[0];
+ };
+ Heap2.prototype.contains = function(x) {
+ return this.nodes.indexOf(x) !== -1;
+ };
+ Heap2.prototype.replace = function(x) {
+ return heapreplace(this.nodes, x, this.cmp);
+ };
+ Heap2.prototype.pushpop = function(x) {
+ return heappushpop(this.nodes, x, this.cmp);
+ };
+ Heap2.prototype.heapify = function() {
+ return heapify(this.nodes, this.cmp);
+ };
+ Heap2.prototype.updateItem = function(x) {
+ return updateItem(this.nodes, x, this.cmp);
+ };
+ Heap2.prototype.clear = function() {
+ return this.nodes = [];
+ };
+ Heap2.prototype.empty = function() {
+ return this.nodes.length === 0;
+ };
+ Heap2.prototype.size = function() {
+ return this.nodes.length;
+ };
+ Heap2.prototype.clone = function() {
+ var heap2;
+ heap2 = new Heap2();
+ heap2.nodes = this.nodes.slice(0);
+ return heap2;
+ };
+ Heap2.prototype.toArray = function() {
+ return this.nodes.slice(0);
+ };
+ Heap2.prototype.insert = Heap2.prototype.push;
+ Heap2.prototype.top = Heap2.prototype.peek;
+ Heap2.prototype.front = Heap2.prototype.peek;
+ Heap2.prototype.has = Heap2.prototype.contains;
+ Heap2.prototype.copy = Heap2.prototype.clone;
+ return Heap2;
+ }();
+ (function(root2, factory) {
+ {
+ return module2.exports = factory();
+ }
+ })(this, function() {
+ return Heap;
+ });
+ }).call(commonjsGlobal$1);
+ });
+ var heap = heap$1;
+ var dijkstraDefaults = defaults$g({
+ root: null,
+ weight: function weight(edge) {
+ return 1;
+ },
+ directed: false
+ });
+ var elesfn$u = {
+ dijkstra: function dijkstra(options) {
+ if (!plainObject(options)) {
+ var args = arguments;
+ options = {
+ root: args[0],
+ weight: args[1],
+ directed: args[2]
+ };
+ }
+ var _dijkstraDefaults = dijkstraDefaults(options), root2 = _dijkstraDefaults.root, weight = _dijkstraDefaults.weight, directed = _dijkstraDefaults.directed;
+ var eles = this;
+ var weightFn = weight;
+ var source = string(root2) ? this.filter(root2)[0] : root2[0];
+ var dist2 = {};
+ var prev = {};
+ var knownDist = {};
+ var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges;
+ edges.unmergeBy(function(ele) {
+ return ele.isLoop();
+ });
+ var getDist2 = function getDist3(node2) {
+ return dist2[node2.id()];
+ };
+ var setDist = function setDist2(node2, d) {
+ dist2[node2.id()] = d;
+ Q.updateItem(node2);
+ };
+ var Q = new heap(function(a, b) {
+ return getDist2(a) - getDist2(b);
+ });
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ var node = nodes2[i2];
+ dist2[node.id()] = node.same(source) ? 0 : Infinity;
+ Q.push(node);
+ }
+ var distBetween = function distBetween2(u2, v2) {
+ var uvs = (directed ? u2.edgesTo(v2) : u2.edgesWith(v2)).intersect(edges);
+ var smallestDistance = Infinity;
+ var smallestEdge;
+ for (var _i = 0; _i < uvs.length; _i++) {
+ var edge = uvs[_i];
+ var _weight = weightFn(edge);
+ if (_weight < smallestDistance || !smallestEdge) {
+ smallestDistance = _weight;
+ smallestEdge = edge;
+ }
+ }
+ return {
+ edge: smallestEdge,
+ dist: smallestDistance
+ };
+ };
+ while (Q.size() > 0) {
+ var u = Q.pop();
+ var smalletsDist = getDist2(u);
+ var uid = u.id();
+ knownDist[uid] = smalletsDist;
+ if (smalletsDist === Infinity) {
+ continue;
+ }
+ var neighbors = u.neighborhood().intersect(nodes2);
+ for (var _i2 = 0; _i2 < neighbors.length; _i2++) {
+ var v = neighbors[_i2];
+ var vid = v.id();
+ var vDist = distBetween(u, v);
+ var alt = smalletsDist + vDist.dist;
+ if (alt < getDist2(v)) {
+ setDist(v, alt);
+ prev[vid] = {
+ node: u,
+ edge: vDist.edge
+ };
+ }
+ }
+ }
+ return {
+ distanceTo: function distanceTo(node2) {
+ var target = string(node2) ? nodes2.filter(node2)[0] : node2[0];
+ return knownDist[target.id()];
+ },
+ pathTo: function pathTo(node2) {
+ var target = string(node2) ? nodes2.filter(node2)[0] : node2[0];
+ var S = [];
+ var u2 = target;
+ var uid2 = u2.id();
+ if (target.length > 0) {
+ S.unshift(target);
+ while (prev[uid2]) {
+ var p2 = prev[uid2];
+ S.unshift(p2.edge);
+ S.unshift(p2.node);
+ u2 = p2.node;
+ uid2 = u2.id();
+ }
+ }
+ return eles.spawn(S);
+ }
+ };
+ }
+ };
+ var elesfn$t = {
+ // kruskal's algorithm (finds min spanning tree, assuming undirected graph)
+ // implemented from pseudocode from wikipedia
+ kruskal: function kruskal(weightFn) {
+ weightFn = weightFn || function(edge2) {
+ return 1;
+ };
+ var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges;
+ var numNodes = nodes2.length;
+ var forest = new Array(numNodes);
+ var A = nodes2;
+ var findSetIndex = function findSetIndex2(ele) {
+ for (var i3 = 0; i3 < forest.length; i3++) {
+ var eles = forest[i3];
+ if (eles.has(ele)) {
+ return i3;
+ }
+ }
+ };
+ for (var i2 = 0; i2 < numNodes; i2++) {
+ forest[i2] = this.spawn(nodes2[i2]);
+ }
+ var S = edges.sort(function(a, b) {
+ return weightFn(a) - weightFn(b);
+ });
+ for (var _i = 0; _i < S.length; _i++) {
+ var edge = S[_i];
+ var u = edge.source()[0];
+ var v = edge.target()[0];
+ var setUIndex = findSetIndex(u);
+ var setVIndex = findSetIndex(v);
+ var setU = forest[setUIndex];
+ var setV = forest[setVIndex];
+ if (setUIndex !== setVIndex) {
+ A.merge(edge);
+ setU.merge(setV);
+ forest.splice(setVIndex, 1);
+ }
+ }
+ return A;
+ }
+ };
+ var aStarDefaults = defaults$g({
+ root: null,
+ goal: null,
+ weight: function weight(edge) {
+ return 1;
+ },
+ heuristic: function heuristic(edge) {
+ return 0;
+ },
+ directed: false
+ });
+ var elesfn$s = {
+ // Implemented from pseudocode from wikipedia
+ aStar: function aStar(options) {
+ var cy = this.cy();
+ var _aStarDefaults = aStarDefaults(options), root2 = _aStarDefaults.root, goal = _aStarDefaults.goal, heuristic = _aStarDefaults.heuristic, directed = _aStarDefaults.directed, weight = _aStarDefaults.weight;
+ root2 = cy.collection(root2)[0];
+ goal = cy.collection(goal)[0];
+ var sid = root2.id();
+ var tid = goal.id();
+ var gScore = {};
+ var fScore = {};
+ var closedSetIds = {};
+ var openSet = new heap(function(a, b) {
+ return fScore[a.id()] - fScore[b.id()];
+ });
+ var openSetIds = new Set$1();
+ var cameFrom = {};
+ var cameFromEdge = {};
+ var addToOpenSet = function addToOpenSet2(ele, id) {
+ openSet.push(ele);
+ openSetIds.add(id);
+ };
+ var cMin, cMinId;
+ var popFromOpenSet = function popFromOpenSet2() {
+ cMin = openSet.pop();
+ cMinId = cMin.id();
+ openSetIds["delete"](cMinId);
+ };
+ var isInOpenSet = function isInOpenSet2(id) {
+ return openSetIds.has(id);
+ };
+ addToOpenSet(root2, sid);
+ gScore[sid] = 0;
+ fScore[sid] = heuristic(root2);
+ var steps = 0;
+ while (openSet.size() > 0) {
+ popFromOpenSet();
+ steps++;
+ if (cMinId === tid) {
+ var path = [];
+ var pathNode = goal;
+ var pathNodeId = tid;
+ var pathEdge = cameFromEdge[pathNodeId];
+ for (; ; ) {
+ path.unshift(pathNode);
+ if (pathEdge != null) {
+ path.unshift(pathEdge);
+ }
+ pathNode = cameFrom[pathNodeId];
+ if (pathNode == null) {
+ break;
+ }
+ pathNodeId = pathNode.id();
+ pathEdge = cameFromEdge[pathNodeId];
+ }
+ return {
+ found: true,
+ distance: gScore[cMinId],
+ path: this.spawn(path),
+ steps
+ };
+ }
+ closedSetIds[cMinId] = true;
+ var vwEdges = cMin._private.edges;
+ for (var i2 = 0; i2 < vwEdges.length; i2++) {
+ var e = vwEdges[i2];
+ if (!this.hasElementWithId(e.id())) {
+ continue;
+ }
+ if (directed && e.data("source") !== cMinId) {
+ continue;
+ }
+ var wSrc = e.source();
+ var wTgt = e.target();
+ var w = wSrc.id() !== cMinId ? wSrc : wTgt;
+ var wid = w.id();
+ if (!this.hasElementWithId(wid)) {
+ continue;
+ }
+ if (closedSetIds[wid]) {
+ continue;
+ }
+ var tempScore = gScore[cMinId] + weight(e);
+ if (!isInOpenSet(wid)) {
+ gScore[wid] = tempScore;
+ fScore[wid] = tempScore + heuristic(w);
+ addToOpenSet(w, wid);
+ cameFrom[wid] = cMin;
+ cameFromEdge[wid] = e;
+ continue;
+ }
+ if (tempScore < gScore[wid]) {
+ gScore[wid] = tempScore;
+ fScore[wid] = tempScore + heuristic(w);
+ cameFrom[wid] = cMin;
+ cameFromEdge[wid] = e;
+ }
+ }
+ }
+ return {
+ found: false,
+ distance: void 0,
+ path: void 0,
+ steps
+ };
+ }
+ };
+ var floydWarshallDefaults = defaults$g({
+ weight: function weight(edge) {
+ return 1;
+ },
+ directed: false
+ });
+ var elesfn$r = {
+ // Implemented from pseudocode from wikipedia
+ floydWarshall: function floydWarshall(options) {
+ var cy = this.cy();
+ var _floydWarshallDefault = floydWarshallDefaults(options), weight = _floydWarshallDefault.weight, directed = _floydWarshallDefault.directed;
+ var weightFn = weight;
+ var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges;
+ var N = nodes2.length;
+ var Nsq = N * N;
+ var indexOf = function indexOf2(node) {
+ return nodes2.indexOf(node);
+ };
+ var atIndex = function atIndex2(i3) {
+ return nodes2[i3];
+ };
+ var dist2 = new Array(Nsq);
+ for (var n = 0; n < Nsq; n++) {
+ var j = n % N;
+ var i2 = (n - j) / N;
+ if (i2 === j) {
+ dist2[n] = 0;
+ } else {
+ dist2[n] = Infinity;
+ }
+ }
+ var next2 = new Array(Nsq);
+ var edgeNext = new Array(Nsq);
+ for (var _i = 0; _i < edges.length; _i++) {
+ var edge = edges[_i];
+ var src = edge.source()[0];
+ var tgt = edge.target()[0];
+ if (src === tgt) {
+ continue;
+ }
+ var s = indexOf(src);
+ var t = indexOf(tgt);
+ var st = s * N + t;
+ var _weight = weightFn(edge);
+ if (dist2[st] > _weight) {
+ dist2[st] = _weight;
+ next2[st] = t;
+ edgeNext[st] = edge;
+ }
+ if (!directed) {
+ var ts = t * N + s;
+ if (!directed && dist2[ts] > _weight) {
+ dist2[ts] = _weight;
+ next2[ts] = s;
+ edgeNext[ts] = edge;
+ }
+ }
+ }
+ for (var k = 0; k < N; k++) {
+ for (var _i2 = 0; _i2 < N; _i2++) {
+ var ik = _i2 * N + k;
+ for (var _j = 0; _j < N; _j++) {
+ var ij = _i2 * N + _j;
+ var kj = k * N + _j;
+ if (dist2[ik] + dist2[kj] < dist2[ij]) {
+ dist2[ij] = dist2[ik] + dist2[kj];
+ next2[ij] = next2[ik];
+ }
+ }
+ }
+ }
+ var getArgEle = function getArgEle2(ele) {
+ return (string(ele) ? cy.filter(ele) : ele)[0];
+ };
+ var indexOfArgEle = function indexOfArgEle2(ele) {
+ return indexOf(getArgEle(ele));
+ };
+ var res = {
+ distance: function distance(from, to) {
+ var i3 = indexOfArgEle(from);
+ var j2 = indexOfArgEle(to);
+ return dist2[i3 * N + j2];
+ },
+ path: function path(from, to) {
+ var i3 = indexOfArgEle(from);
+ var j2 = indexOfArgEle(to);
+ var fromNode = atIndex(i3);
+ if (i3 === j2) {
+ return fromNode.collection();
+ }
+ if (next2[i3 * N + j2] == null) {
+ return cy.collection();
+ }
+ var path2 = cy.collection();
+ var prev = i3;
+ var edge2;
+ path2.merge(fromNode);
+ while (i3 !== j2) {
+ prev = i3;
+ i3 = next2[i3 * N + j2];
+ edge2 = edgeNext[prev * N + i3];
+ path2.merge(edge2);
+ path2.merge(atIndex(i3));
+ }
+ return path2;
+ }
+ };
+ return res;
+ }
+ // floydWarshall
+ };
+ var bellmanFordDefaults = defaults$g({
+ weight: function weight(edge) {
+ return 1;
+ },
+ directed: false,
+ root: null
+ });
+ var elesfn$q = {
+ // Implemented from pseudocode from wikipedia
+ bellmanFord: function bellmanFord(options) {
+ var _this = this;
+ var _bellmanFordDefaults = bellmanFordDefaults(options), weight = _bellmanFordDefaults.weight, directed = _bellmanFordDefaults.directed, root2 = _bellmanFordDefaults.root;
+ var weightFn = weight;
+ var eles = this;
+ var cy = this.cy();
+ var _this$byGroup = this.byGroup(), edges = _this$byGroup.edges, nodes2 = _this$byGroup.nodes;
+ var numNodes = nodes2.length;
+ var infoMap = new Map$2();
+ var hasNegativeWeightCycle = false;
+ var negativeWeightCycles = [];
+ root2 = cy.collection(root2)[0];
+ edges.unmergeBy(function(edge2) {
+ return edge2.isLoop();
+ });
+ var numEdges = edges.length;
+ var getInfo2 = function getInfo3(node2) {
+ var obj = infoMap.get(node2.id());
+ if (!obj) {
+ obj = {};
+ infoMap.set(node2.id(), obj);
+ }
+ return obj;
+ };
+ var getNodeFromTo = function getNodeFromTo2(to) {
+ return (string(to) ? cy.$(to) : to)[0];
+ };
+ var distanceTo = function distanceTo2(to) {
+ return getInfo2(getNodeFromTo(to)).dist;
+ };
+ var pathTo = function pathTo2(to) {
+ var thisStart = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : root2;
+ var end = getNodeFromTo(to);
+ var path = [];
+ var node2 = end;
+ for (; ; ) {
+ if (node2 == null) {
+ return _this.spawn();
+ }
+ var _getInfo = getInfo2(node2), edge2 = _getInfo.edge, pred = _getInfo.pred;
+ path.unshift(node2[0]);
+ if (node2.same(thisStart) && path.length > 0) {
+ break;
+ }
+ if (edge2 != null) {
+ path.unshift(edge2);
+ }
+ node2 = pred;
+ }
+ return eles.spawn(path);
+ };
+ for (var i2 = 0; i2 < numNodes; i2++) {
+ var node = nodes2[i2];
+ var info = getInfo2(node);
+ if (node.same(root2)) {
+ info.dist = 0;
+ } else {
+ info.dist = Infinity;
+ }
+ info.pred = null;
+ info.edge = null;
+ }
+ var replacedEdge = false;
+ var checkForEdgeReplacement = function checkForEdgeReplacement2(node1, node2, edge2, info1, info2, weight2) {
+ var dist2 = info1.dist + weight2;
+ if (dist2 < info2.dist && !edge2.same(info1.edge)) {
+ info2.dist = dist2;
+ info2.pred = node1;
+ info2.edge = edge2;
+ replacedEdge = true;
+ }
+ };
+ for (var _i = 1; _i < numNodes; _i++) {
+ replacedEdge = false;
+ for (var e = 0; e < numEdges; e++) {
+ var edge = edges[e];
+ var src = edge.source();
+ var tgt = edge.target();
+ var _weight = weightFn(edge);
+ var srcInfo = getInfo2(src);
+ var tgtInfo = getInfo2(tgt);
+ checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight);
+ if (!directed) {
+ checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight);
+ }
+ }
+ if (!replacedEdge) {
+ break;
+ }
+ }
+ if (replacedEdge) {
+ var negativeWeightCycleIds = [];
+ for (var _e = 0; _e < numEdges; _e++) {
+ var _edge = edges[_e];
+ var _src = _edge.source();
+ var _tgt = _edge.target();
+ var _weight2 = weightFn(_edge);
+ var srcDist = getInfo2(_src).dist;
+ var tgtDist = getInfo2(_tgt).dist;
+ if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) {
+ if (!hasNegativeWeightCycle) {
+ warn("Graph contains a negative weight cycle for Bellman-Ford");
+ hasNegativeWeightCycle = true;
+ }
+ if (options.findNegativeWeightCycles !== false) {
+ var negativeNodes = [];
+ if (srcDist + _weight2 < tgtDist) {
+ negativeNodes.push(_src);
+ }
+ if (!directed && tgtDist + _weight2 < srcDist) {
+ negativeNodes.push(_tgt);
+ }
+ var numNegativeNodes = negativeNodes.length;
+ for (var n = 0; n < numNegativeNodes; n++) {
+ var start = negativeNodes[n];
+ var cycle = [start];
+ cycle.push(getInfo2(start).edge);
+ var _node = getInfo2(start).pred;
+ while (cycle.indexOf(_node) === -1) {
+ cycle.push(_node);
+ cycle.push(getInfo2(_node).edge);
+ _node = getInfo2(_node).pred;
+ }
+ cycle = cycle.slice(cycle.indexOf(_node));
+ var smallestId = cycle[0].id();
+ var smallestIndex = 0;
+ for (var c = 2; c < cycle.length; c += 2) {
+ if (cycle[c].id() < smallestId) {
+ smallestId = cycle[c].id();
+ smallestIndex = c;
+ }
+ }
+ cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex));
+ cycle.push(cycle[0]);
+ var cycleId = cycle.map(function(el) {
+ return el.id();
+ }).join(",");
+ if (negativeWeightCycleIds.indexOf(cycleId) === -1) {
+ negativeWeightCycles.push(eles.spawn(cycle));
+ negativeWeightCycleIds.push(cycleId);
+ }
+ }
+ } else {
+ break;
+ }
+ }
+ }
+ }
+ return {
+ distanceTo,
+ pathTo,
+ hasNegativeWeightCycle,
+ negativeWeightCycles
+ };
+ }
+ // bellmanFord
+ };
+ var sqrt2 = Math.sqrt(2);
+ var collapse = function collapse2(edgeIndex, nodeMap, remainingEdges) {
+ if (remainingEdges.length === 0) {
+ error("Karger-Stein must be run on a connected (sub)graph");
+ }
+ var edgeInfo = remainingEdges[edgeIndex];
+ var sourceIn = edgeInfo[1];
+ var targetIn = edgeInfo[2];
+ var partition1 = nodeMap[sourceIn];
+ var partition2 = nodeMap[targetIn];
+ var newEdges = remainingEdges;
+ for (var i2 = newEdges.length - 1; i2 >= 0; i2--) {
+ var edge = newEdges[i2];
+ var src = edge[1];
+ var tgt = edge[2];
+ if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) {
+ newEdges.splice(i2, 1);
+ }
+ }
+ for (var _i = 0; _i < newEdges.length; _i++) {
+ var _edge = newEdges[_i];
+ if (_edge[1] === partition2) {
+ newEdges[_i] = _edge.slice();
+ newEdges[_i][1] = partition1;
+ } else if (_edge[2] === partition2) {
+ newEdges[_i] = _edge.slice();
+ newEdges[_i][2] = partition1;
+ }
+ }
+ for (var _i2 = 0; _i2 < nodeMap.length; _i2++) {
+ if (nodeMap[_i2] === partition2) {
+ nodeMap[_i2] = partition1;
+ }
+ }
+ return newEdges;
+ };
+ var contractUntil = function contractUntil2(metaNodeMap, remainingEdges, size, sizeLimit) {
+ while (size > sizeLimit) {
+ var edgeIndex = Math.floor(Math.random() * remainingEdges.length);
+ remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges);
+ size--;
+ }
+ return remainingEdges;
+ };
+ var elesfn$p = {
+ // Computes the minimum cut of an undirected graph
+ // Returns the correct answer with high probability
+ kargerStein: function kargerStein() {
+ var _this = this;
+ var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges;
+ edges.unmergeBy(function(edge) {
+ return edge.isLoop();
+ });
+ var numNodes = nodes2.length;
+ var numEdges = edges.length;
+ var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2));
+ var stopSize = Math.floor(numNodes / sqrt2);
+ if (numNodes < 2) {
+ error("At least 2 nodes are required for Karger-Stein algorithm");
+ return void 0;
+ }
+ var edgeIndexes = [];
+ for (var i2 = 0; i2 < numEdges; i2++) {
+ var e = edges[i2];
+ edgeIndexes.push([i2, nodes2.indexOf(e.source()), nodes2.indexOf(e.target())]);
+ }
+ var minCutSize = Infinity;
+ var minCutEdgeIndexes = [];
+ var minCutNodeMap = new Array(numNodes);
+ var metaNodeMap = new Array(numNodes);
+ var metaNodeMap2 = new Array(numNodes);
+ var copyNodesMap = function copyNodesMap2(from, to) {
+ for (var _i3 = 0; _i3 < numNodes; _i3++) {
+ to[_i3] = from[_i3];
+ }
+ };
+ for (var iter = 0; iter <= numIter; iter++) {
+ for (var _i4 = 0; _i4 < numNodes; _i4++) {
+ metaNodeMap[_i4] = _i4;
+ }
+ var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize);
+ var edgesState2 = edgesState.slice();
+ copyNodesMap(metaNodeMap, metaNodeMap2);
+ var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2);
+ var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2);
+ if (res1.length <= res2.length && res1.length < minCutSize) {
+ minCutSize = res1.length;
+ minCutEdgeIndexes = res1;
+ copyNodesMap(metaNodeMap, minCutNodeMap);
+ } else if (res2.length <= res1.length && res2.length < minCutSize) {
+ minCutSize = res2.length;
+ minCutEdgeIndexes = res2;
+ copyNodesMap(metaNodeMap2, minCutNodeMap);
+ }
+ }
+ var cut = this.spawn(minCutEdgeIndexes.map(function(e2) {
+ return edges[e2[0]];
+ }));
+ var partition1 = this.spawn();
+ var partition2 = this.spawn();
+ var witnessNodePartition = minCutNodeMap[0];
+ for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) {
+ var partitionId = minCutNodeMap[_i5];
+ var node = nodes2[_i5];
+ if (partitionId === witnessNodePartition) {
+ partition1.merge(node);
+ } else {
+ partition2.merge(node);
+ }
+ }
+ var constructComponent = function constructComponent2(subset) {
+ var component = _this.spawn();
+ subset.forEach(function(node2) {
+ component.merge(node2);
+ node2.connectedEdges().forEach(function(edge) {
+ if (_this.contains(edge) && !cut.contains(edge)) {
+ component.merge(edge);
+ }
+ });
+ });
+ return component;
+ };
+ var components = [constructComponent(partition1), constructComponent(partition2)];
+ var ret = {
+ cut,
+ components,
+ // n.b. partitions are included to be compatible with the old api spec
+ // (could be removed in a future major version)
+ partition1,
+ partition2
+ };
+ return ret;
+ }
+ };
+ var copyPosition = function copyPosition2(p2) {
+ return {
+ x: p2.x,
+ y: p2.y
+ };
+ };
+ var modelToRenderedPosition = function modelToRenderedPosition2(p2, zoom, pan) {
+ return {
+ x: p2.x * zoom + pan.x,
+ y: p2.y * zoom + pan.y
+ };
+ };
+ var renderedToModelPosition = function renderedToModelPosition2(p2, zoom, pan) {
+ return {
+ x: (p2.x - pan.x) / zoom,
+ y: (p2.y - pan.y) / zoom
+ };
+ };
+ var array2point = function array2point2(arr) {
+ return {
+ x: arr[0],
+ y: arr[1]
+ };
+ };
+ var min = function min2(arr) {
+ var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
+ var min3 = Infinity;
+ for (var i2 = begin; i2 < end; i2++) {
+ var val = arr[i2];
+ if (isFinite(val)) {
+ min3 = Math.min(val, min3);
+ }
+ }
+ return min3;
+ };
+ var max = function max2(arr) {
+ var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
+ var max3 = -Infinity;
+ for (var i2 = begin; i2 < end; i2++) {
+ var val = arr[i2];
+ if (isFinite(val)) {
+ max3 = Math.max(val, max3);
+ }
+ }
+ return max3;
+ };
+ var mean = function mean2(arr) {
+ var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
+ var total = 0;
+ var n = 0;
+ for (var i2 = begin; i2 < end; i2++) {
+ var val = arr[i2];
+ if (isFinite(val)) {
+ total += val;
+ n++;
+ }
+ }
+ return total / n;
+ };
+ var median = function median2(arr) {
+ var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
+ var copy2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
+ var sort = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
+ var includeHoles = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
+ if (copy2) {
+ arr = arr.slice(begin, end);
+ } else {
+ if (end < arr.length) {
+ arr.splice(end, arr.length - end);
+ }
+ if (begin > 0) {
+ arr.splice(0, begin);
+ }
+ }
+ var off = 0;
+ for (var i2 = arr.length - 1; i2 >= 0; i2--) {
+ var v = arr[i2];
+ if (includeHoles) {
+ if (!isFinite(v)) {
+ arr[i2] = -Infinity;
+ off++;
+ }
+ } else {
+ arr.splice(i2, 1);
+ }
+ }
+ if (sort) {
+ arr.sort(function(a, b) {
+ return a - b;
+ });
+ }
+ var len = arr.length;
+ var mid = Math.floor(len / 2);
+ if (len % 2 !== 0) {
+ return arr[mid + 1 + off];
+ } else {
+ return (arr[mid - 1 + off] + arr[mid + off]) / 2;
+ }
+ };
+ var deg2rad = function deg2rad2(deg) {
+ return Math.PI * deg / 180;
+ };
+ var getAngleFromDisp = function getAngleFromDisp2(dispX, dispY) {
+ return Math.atan2(dispY, dispX) - Math.PI / 2;
+ };
+ var log2 = Math.log2 || function(n) {
+ return Math.log(n) / Math.log(2);
+ };
+ var signum = function signum2(x) {
+ if (x > 0) {
+ return 1;
+ } else if (x < 0) {
+ return -1;
+ } else {
+ return 0;
+ }
+ };
+ var dist = function dist2(p1, p2) {
+ return Math.sqrt(sqdist(p1, p2));
+ };
+ var sqdist = function sqdist2(p1, p2) {
+ var dx = p2.x - p1.x;
+ var dy = p2.y - p1.y;
+ return dx * dx + dy * dy;
+ };
+ var inPlaceSumNormalize = function inPlaceSumNormalize2(v) {
+ var length = v.length;
+ var total = 0;
+ for (var i2 = 0; i2 < length; i2++) {
+ total += v[i2];
+ }
+ for (var _i = 0; _i < length; _i++) {
+ v[_i] = v[_i] / total;
+ }
+ return v;
+ };
+ var qbezierAt = function qbezierAt2(p0, p1, p2, t) {
+ return (1 - t) * (1 - t) * p0 + 2 * (1 - t) * t * p1 + t * t * p2;
+ };
+ var qbezierPtAt = function qbezierPtAt2(p0, p1, p2, t) {
+ return {
+ x: qbezierAt(p0.x, p1.x, p2.x, t),
+ y: qbezierAt(p0.y, p1.y, p2.y, t)
+ };
+ };
+ var lineAt = function lineAt2(p0, p1, t, d) {
+ var vec = {
+ x: p1.x - p0.x,
+ y: p1.y - p0.y
+ };
+ var vecDist = dist(p0, p1);
+ var normVec = {
+ x: vec.x / vecDist,
+ y: vec.y / vecDist
+ };
+ t = t == null ? 0 : t;
+ d = d != null ? d : t * vecDist;
+ return {
+ x: p0.x + normVec.x * d,
+ y: p0.y + normVec.y * d
+ };
+ };
+ var bound = function bound2(min2, val, max2) {
+ return Math.max(min2, Math.min(max2, val));
+ };
+ var makeBoundingBox = function makeBoundingBox2(bb) {
+ if (bb == null) {
+ return {
+ x1: Infinity,
+ y1: Infinity,
+ x2: -Infinity,
+ y2: -Infinity,
+ w: 0,
+ h: 0
+ };
+ } else if (bb.x1 != null && bb.y1 != null) {
+ if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) {
+ return {
+ x1: bb.x1,
+ y1: bb.y1,
+ x2: bb.x2,
+ y2: bb.y2,
+ w: bb.x2 - bb.x1,
+ h: bb.y2 - bb.y1
+ };
+ } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) {
+ return {
+ x1: bb.x1,
+ y1: bb.y1,
+ x2: bb.x1 + bb.w,
+ y2: bb.y1 + bb.h,
+ w: bb.w,
+ h: bb.h
+ };
+ }
+ }
+ };
+ var copyBoundingBox = function copyBoundingBox2(bb) {
+ return {
+ x1: bb.x1,
+ x2: bb.x2,
+ w: bb.w,
+ y1: bb.y1,
+ y2: bb.y2,
+ h: bb.h
+ };
+ };
+ var clearBoundingBox = function clearBoundingBox2(bb) {
+ bb.x1 = Infinity;
+ bb.y1 = Infinity;
+ bb.x2 = -Infinity;
+ bb.y2 = -Infinity;
+ bb.w = 0;
+ bb.h = 0;
+ };
+ var updateBoundingBox = function updateBoundingBox2(bb1, bb2) {
+ bb1.x1 = Math.min(bb1.x1, bb2.x1);
+ bb1.x2 = Math.max(bb1.x2, bb2.x2);
+ bb1.w = bb1.x2 - bb1.x1;
+ bb1.y1 = Math.min(bb1.y1, bb2.y1);
+ bb1.y2 = Math.max(bb1.y2, bb2.y2);
+ bb1.h = bb1.y2 - bb1.y1;
+ };
+ var expandBoundingBoxByPoint = function expandBoundingBoxByPoint2(bb, x, y) {
+ bb.x1 = Math.min(bb.x1, x);
+ bb.x2 = Math.max(bb.x2, x);
+ bb.w = bb.x2 - bb.x1;
+ bb.y1 = Math.min(bb.y1, y);
+ bb.y2 = Math.max(bb.y2, y);
+ bb.h = bb.y2 - bb.y1;
+ };
+ var expandBoundingBox = function expandBoundingBox2(bb) {
+ var padding = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ bb.x1 -= padding;
+ bb.x2 += padding;
+ bb.y1 -= padding;
+ bb.y2 += padding;
+ bb.w = bb.x2 - bb.x1;
+ bb.h = bb.y2 - bb.y1;
+ return bb;
+ };
+ var expandBoundingBoxSides = function expandBoundingBoxSides2(bb) {
+ var padding = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [0];
+ var top, right, bottom, left;
+ if (padding.length === 1) {
+ top = right = bottom = left = padding[0];
+ } else if (padding.length === 2) {
+ top = bottom = padding[0];
+ left = right = padding[1];
+ } else if (padding.length === 4) {
+ var _padding = _slicedToArray(padding, 4);
+ top = _padding[0];
+ right = _padding[1];
+ bottom = _padding[2];
+ left = _padding[3];
+ }
+ bb.x1 -= left;
+ bb.x2 += right;
+ bb.y1 -= top;
+ bb.y2 += bottom;
+ bb.w = bb.x2 - bb.x1;
+ bb.h = bb.y2 - bb.y1;
+ return bb;
+ };
+ var assignBoundingBox = function assignBoundingBox2(bb1, bb2) {
+ bb1.x1 = bb2.x1;
+ bb1.y1 = bb2.y1;
+ bb1.x2 = bb2.x2;
+ bb1.y2 = bb2.y2;
+ bb1.w = bb1.x2 - bb1.x1;
+ bb1.h = bb1.y2 - bb1.y1;
+ };
+ var boundingBoxesIntersect = function boundingBoxesIntersect2(bb1, bb2) {
+ if (bb1.x1 > bb2.x2) {
+ return false;
+ }
+ if (bb2.x1 > bb1.x2) {
+ return false;
+ }
+ if (bb1.x2 < bb2.x1) {
+ return false;
+ }
+ if (bb2.x2 < bb1.x1) {
+ return false;
+ }
+ if (bb1.y2 < bb2.y1) {
+ return false;
+ }
+ if (bb2.y2 < bb1.y1) {
+ return false;
+ }
+ if (bb1.y1 > bb2.y2) {
+ return false;
+ }
+ if (bb2.y1 > bb1.y2) {
+ return false;
+ }
+ return true;
+ };
+ var inBoundingBox = function inBoundingBox2(bb, x, y) {
+ return bb.x1 <= x && x <= bb.x2 && bb.y1 <= y && y <= bb.y2;
+ };
+ var pointInBoundingBox = function pointInBoundingBox2(bb, pt) {
+ return inBoundingBox(bb, pt.x, pt.y);
+ };
+ var boundingBoxInBoundingBox = function boundingBoxInBoundingBox2(bb1, bb2) {
+ return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2);
+ };
+ var roundRectangleIntersectLine = function roundRectangleIntersectLine2(x, y, nodeX, nodeY, width, height, padding) {
+ var cornerRadius = getRoundRectangleRadius(width, height);
+ var halfWidth = width / 2;
+ var halfHeight = height / 2;
+ var straightLineIntersections;
+ {
+ var topStartX = nodeX - halfWidth + cornerRadius - padding;
+ var topStartY = nodeY - halfHeight - padding;
+ var topEndX = nodeX + halfWidth - cornerRadius + padding;
+ var topEndY = topStartY;
+ straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);
+ if (straightLineIntersections.length > 0) {
+ return straightLineIntersections;
+ }
+ }
+ {
+ var rightStartX = nodeX + halfWidth + padding;
+ var rightStartY = nodeY - halfHeight + cornerRadius - padding;
+ var rightEndX = rightStartX;
+ var rightEndY = nodeY + halfHeight - cornerRadius + padding;
+ straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false);
+ if (straightLineIntersections.length > 0) {
+ return straightLineIntersections;
+ }
+ }
+ {
+ var bottomStartX = nodeX - halfWidth + cornerRadius - padding;
+ var bottomStartY = nodeY + halfHeight + padding;
+ var bottomEndX = nodeX + halfWidth - cornerRadius + padding;
+ var bottomEndY = bottomStartY;
+ straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false);
+ if (straightLineIntersections.length > 0) {
+ return straightLineIntersections;
+ }
+ }
+ {
+ var leftStartX = nodeX - halfWidth - padding;
+ var leftStartY = nodeY - halfHeight + cornerRadius - padding;
+ var leftEndX = leftStartX;
+ var leftEndY = nodeY + halfHeight - cornerRadius + padding;
+ straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false);
+ if (straightLineIntersections.length > 0) {
+ return straightLineIntersections;
+ }
+ }
+ var arcIntersections;
+ {
+ var topLeftCenterX = nodeX - halfWidth + cornerRadius;
+ var topLeftCenterY = nodeY - halfHeight + cornerRadius;
+ arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding);
+ if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) {
+ return [arcIntersections[0], arcIntersections[1]];
+ }
+ }
+ {
+ var topRightCenterX = nodeX + halfWidth - cornerRadius;
+ var topRightCenterY = nodeY - halfHeight + cornerRadius;
+ arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding);
+ if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) {
+ return [arcIntersections[0], arcIntersections[1]];
+ }
+ }
+ {
+ var bottomRightCenterX = nodeX + halfWidth - cornerRadius;
+ var bottomRightCenterY = nodeY + halfHeight - cornerRadius;
+ arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding);
+ if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) {
+ return [arcIntersections[0], arcIntersections[1]];
+ }
+ }
+ {
+ var bottomLeftCenterX = nodeX - halfWidth + cornerRadius;
+ var bottomLeftCenterY = nodeY + halfHeight - cornerRadius;
+ arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding);
+ if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) {
+ return [arcIntersections[0], arcIntersections[1]];
+ }
+ }
+ return [];
+ };
+ var inLineVicinity = function inLineVicinity2(x, y, lx1, ly1, lx2, ly2, tolerance) {
+ var t = tolerance;
+ var x1 = Math.min(lx1, lx2);
+ var x2 = Math.max(lx1, lx2);
+ var y1 = Math.min(ly1, ly2);
+ var y2 = Math.max(ly1, ly2);
+ return x1 - t <= x && x <= x2 + t && y1 - t <= y && y <= y2 + t;
+ };
+ var inBezierVicinity = function inBezierVicinity2(x, y, x1, y1, x2, y2, x3, y3, tolerance) {
+ var bb = {
+ x1: Math.min(x1, x3, x2) - tolerance,
+ x2: Math.max(x1, x3, x2) + tolerance,
+ y1: Math.min(y1, y3, y2) - tolerance,
+ y2: Math.max(y1, y3, y2) + tolerance
+ };
+ if (x < bb.x1 || x > bb.x2 || y < bb.y1 || y > bb.y2) {
+ return false;
+ } else {
+ return true;
+ }
+ };
+ var solveQuadratic = function solveQuadratic2(a, b, c, val) {
+ c -= val;
+ var r = b * b - 4 * a * c;
+ if (r < 0) {
+ return [];
+ }
+ var sqrtR = Math.sqrt(r);
+ var denom = 2 * a;
+ var root1 = (-b + sqrtR) / denom;
+ var root2 = (-b - sqrtR) / denom;
+ return [root1, root2];
+ };
+ var solveCubic = function solveCubic2(a, b, c, d, result) {
+ var epsilon = 1e-5;
+ if (a === 0) {
+ a = epsilon;
+ }
+ b /= a;
+ c /= a;
+ d /= a;
+ var discriminant, q, r, dum1, s, t, term1, r13;
+ q = (3 * c - b * b) / 9;
+ r = -(27 * d) + b * (9 * c - 2 * (b * b));
+ r /= 54;
+ discriminant = q * q * q + r * r;
+ result[1] = 0;
+ term1 = b / 3;
+ if (discriminant > 0) {
+ s = r + Math.sqrt(discriminant);
+ s = s < 0 ? -Math.pow(-s, 1 / 3) : Math.pow(s, 1 / 3);
+ t = r - Math.sqrt(discriminant);
+ t = t < 0 ? -Math.pow(-t, 1 / 3) : Math.pow(t, 1 / 3);
+ result[0] = -term1 + s + t;
+ term1 += (s + t) / 2;
+ result[4] = result[2] = -term1;
+ term1 = Math.sqrt(3) * (-t + s) / 2;
+ result[3] = term1;
+ result[5] = -term1;
+ return;
+ }
+ result[5] = result[3] = 0;
+ if (discriminant === 0) {
+ r13 = r < 0 ? -Math.pow(-r, 1 / 3) : Math.pow(r, 1 / 3);
+ result[0] = -term1 + 2 * r13;
+ result[4] = result[2] = -(r13 + term1);
+ return;
+ }
+ q = -q;
+ dum1 = q * q * q;
+ dum1 = Math.acos(r / Math.sqrt(dum1));
+ r13 = 2 * Math.sqrt(q);
+ result[0] = -term1 + r13 * Math.cos(dum1 / 3);
+ result[2] = -term1 + r13 * Math.cos((dum1 + 2 * Math.PI) / 3);
+ result[4] = -term1 + r13 * Math.cos((dum1 + 4 * Math.PI) / 3);
+ return;
+ };
+ var sqdistToQuadraticBezier = function sqdistToQuadraticBezier2(x, y, x1, y1, x2, y2, x3, y3) {
+ var a = 1 * x1 * x1 - 4 * x1 * x2 + 2 * x1 * x3 + 4 * x2 * x2 - 4 * x2 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y2 + 2 * y1 * y3 + 4 * y2 * y2 - 4 * y2 * y3 + y3 * y3;
+ var b = 1 * 9 * x1 * x2 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x2 * x2 + 3 * x2 * x3 + 9 * y1 * y2 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y2 * y2 + 3 * y2 * y3;
+ var c = 1 * 3 * x1 * x1 - 6 * x1 * x2 + x1 * x3 - x1 * x + 2 * x2 * x2 + 2 * x2 * x - x3 * x + 3 * y1 * y1 - 6 * y1 * y2 + y1 * y3 - y1 * y + 2 * y2 * y2 + 2 * y2 * y - y3 * y;
+ var d = 1 * x1 * x2 - x1 * x1 + x1 * x - x2 * x + y1 * y2 - y1 * y1 + y1 * y - y2 * y;
+ var roots = [];
+ solveCubic(a, b, c, d, roots);
+ var zeroThreshold = 1e-7;
+ var params = [];
+ for (var index = 0; index < 6; index += 2) {
+ if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1) {
+ params.push(roots[index]);
+ }
+ }
+ params.push(1);
+ params.push(0);
+ var minDistanceSquared = -1;
+ var curX, curY, distSquared;
+ for (var i2 = 0; i2 < params.length; i2++) {
+ curX = Math.pow(1 - params[i2], 2) * x1 + 2 * (1 - params[i2]) * params[i2] * x2 + params[i2] * params[i2] * x3;
+ curY = Math.pow(1 - params[i2], 2) * y1 + 2 * (1 - params[i2]) * params[i2] * y2 + params[i2] * params[i2] * y3;
+ distSquared = Math.pow(curX - x, 2) + Math.pow(curY - y, 2);
+ if (minDistanceSquared >= 0) {
+ if (distSquared < minDistanceSquared) {
+ minDistanceSquared = distSquared;
+ }
+ } else {
+ minDistanceSquared = distSquared;
+ }
+ }
+ return minDistanceSquared;
+ };
+ var sqdistToFiniteLine = function sqdistToFiniteLine2(x, y, x1, y1, x2, y2) {
+ var offset = [x - x1, y - y1];
+ var line = [x2 - x1, y2 - y1];
+ var lineSq = line[0] * line[0] + line[1] * line[1];
+ var hypSq = offset[0] * offset[0] + offset[1] * offset[1];
+ var dotProduct = offset[0] * line[0] + offset[1] * line[1];
+ var adjSq = dotProduct * dotProduct / lineSq;
+ if (dotProduct < 0) {
+ return hypSq;
+ }
+ if (adjSq > lineSq) {
+ return (x - x2) * (x - x2) + (y - y2) * (y - y2);
+ }
+ return hypSq - adjSq;
+ };
+ var pointInsidePolygonPoints = function pointInsidePolygonPoints2(x, y, points) {
+ var x1, y1, x2, y2;
+ var y3;
+ var up = 0;
+ for (var i2 = 0; i2 < points.length / 2; i2++) {
+ x1 = points[i2 * 2];
+ y1 = points[i2 * 2 + 1];
+ if (i2 + 1 < points.length / 2) {
+ x2 = points[(i2 + 1) * 2];
+ y2 = points[(i2 + 1) * 2 + 1];
+ } else {
+ x2 = points[(i2 + 1 - points.length / 2) * 2];
+ y2 = points[(i2 + 1 - points.length / 2) * 2 + 1];
+ }
+ if (x1 == x && x2 == x)
+ ;
+ else if (x1 >= x && x >= x2 || x1 <= x && x <= x2) {
+ y3 = (x - x1) / (x2 - x1) * (y2 - y1) + y1;
+ if (y3 > y) {
+ up++;
+ }
+ } else {
+ continue;
+ }
+ }
+ if (up % 2 === 0) {
+ return false;
+ } else {
+ return true;
+ }
+ };
+ var pointInsidePolygon = function pointInsidePolygon2(x, y, basePoints, centerX, centerY, width, height, direction, padding) {
+ var transformedPoints = new Array(basePoints.length);
+ var angle;
+ if (direction[0] != null) {
+ angle = Math.atan(direction[1] / direction[0]);
+ if (direction[0] < 0) {
+ angle = angle + Math.PI / 2;
+ } else {
+ angle = -angle - Math.PI / 2;
+ }
+ } else {
+ angle = direction;
+ }
+ var cos2 = Math.cos(-angle);
+ var sin2 = Math.sin(-angle);
+ for (var i2 = 0; i2 < transformedPoints.length / 2; i2++) {
+ transformedPoints[i2 * 2] = width / 2 * (basePoints[i2 * 2] * cos2 - basePoints[i2 * 2 + 1] * sin2);
+ transformedPoints[i2 * 2 + 1] = height / 2 * (basePoints[i2 * 2 + 1] * cos2 + basePoints[i2 * 2] * sin2);
+ transformedPoints[i2 * 2] += centerX;
+ transformedPoints[i2 * 2 + 1] += centerY;
+ }
+ var points;
+ if (padding > 0) {
+ var expandedLineSet = expandPolygon(transformedPoints, -padding);
+ points = joinLines(expandedLineSet);
+ } else {
+ points = transformedPoints;
+ }
+ return pointInsidePolygonPoints(x, y, points);
+ };
+ var pointInsideRoundPolygon = function pointInsideRoundPolygon2(x, y, basePoints, centerX, centerY, width, height) {
+ var cutPolygonPoints = new Array(basePoints.length);
+ var halfW = width / 2;
+ var halfH = height / 2;
+ var cornerRadius = getRoundPolygonRadius(width, height);
+ var squaredCornerRadius = cornerRadius * cornerRadius;
+ for (var i2 = 0; i2 < basePoints.length / 4; i2++) {
+ var sourceUv = void 0, destUv = void 0;
+ if (i2 === 0) {
+ sourceUv = basePoints.length - 2;
+ } else {
+ sourceUv = i2 * 4 - 2;
+ }
+ destUv = i2 * 4 + 2;
+ var px = centerX + halfW * basePoints[i2 * 4];
+ var py = centerY + halfH * basePoints[i2 * 4 + 1];
+ var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1];
+ var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);
+ var cp0x = px - offset * basePoints[sourceUv];
+ var cp0y = py - offset * basePoints[sourceUv + 1];
+ var cp1x = px + offset * basePoints[destUv];
+ var cp1y = py + offset * basePoints[destUv + 1];
+ cutPolygonPoints[i2 * 4] = cp0x;
+ cutPolygonPoints[i2 * 4 + 1] = cp0y;
+ cutPolygonPoints[i2 * 4 + 2] = cp1x;
+ cutPolygonPoints[i2 * 4 + 3] = cp1y;
+ var orthx = basePoints[sourceUv + 1];
+ var orthy = -basePoints[sourceUv];
+ var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1];
+ if (cosAlpha < 0) {
+ orthx *= -1;
+ orthy *= -1;
+ }
+ var cx = cp0x + orthx * cornerRadius;
+ var cy = cp0y + orthy * cornerRadius;
+ var squaredDistance = Math.pow(cx - x, 2) + Math.pow(cy - y, 2);
+ if (squaredDistance <= squaredCornerRadius) {
+ return true;
+ }
+ }
+ return pointInsidePolygonPoints(x, y, cutPolygonPoints);
+ };
+ var joinLines = function joinLines2(lineSet) {
+ var vertices = new Array(lineSet.length / 2);
+ var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY;
+ var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY;
+ for (var i2 = 0; i2 < lineSet.length / 4; i2++) {
+ currentLineStartX = lineSet[i2 * 4];
+ currentLineStartY = lineSet[i2 * 4 + 1];
+ currentLineEndX = lineSet[i2 * 4 + 2];
+ currentLineEndY = lineSet[i2 * 4 + 3];
+ if (i2 < lineSet.length / 4 - 1) {
+ nextLineStartX = lineSet[(i2 + 1) * 4];
+ nextLineStartY = lineSet[(i2 + 1) * 4 + 1];
+ nextLineEndX = lineSet[(i2 + 1) * 4 + 2];
+ nextLineEndY = lineSet[(i2 + 1) * 4 + 3];
+ } else {
+ nextLineStartX = lineSet[0];
+ nextLineStartY = lineSet[1];
+ nextLineEndX = lineSet[2];
+ nextLineEndY = lineSet[3];
+ }
+ var intersection = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true);
+ vertices[i2 * 2] = intersection[0];
+ vertices[i2 * 2 + 1] = intersection[1];
+ }
+ return vertices;
+ };
+ var expandPolygon = function expandPolygon2(points, pad) {
+ var expandedLineSet = new Array(points.length * 2);
+ var currentPointX, currentPointY, nextPointX, nextPointY;
+ for (var i2 = 0; i2 < points.length / 2; i2++) {
+ currentPointX = points[i2 * 2];
+ currentPointY = points[i2 * 2 + 1];
+ if (i2 < points.length / 2 - 1) {
+ nextPointX = points[(i2 + 1) * 2];
+ nextPointY = points[(i2 + 1) * 2 + 1];
+ } else {
+ nextPointX = points[0];
+ nextPointY = points[1];
+ }
+ var offsetX = nextPointY - currentPointY;
+ var offsetY = -(nextPointX - currentPointX);
+ var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY);
+ var normalizedOffsetX = offsetX / offsetLength;
+ var normalizedOffsetY = offsetY / offsetLength;
+ expandedLineSet[i2 * 4] = currentPointX + normalizedOffsetX * pad;
+ expandedLineSet[i2 * 4 + 1] = currentPointY + normalizedOffsetY * pad;
+ expandedLineSet[i2 * 4 + 2] = nextPointX + normalizedOffsetX * pad;
+ expandedLineSet[i2 * 4 + 3] = nextPointY + normalizedOffsetY * pad;
+ }
+ return expandedLineSet;
+ };
+ var intersectLineEllipse = function intersectLineEllipse2(x, y, centerX, centerY, ellipseWradius, ellipseHradius) {
+ var dispX = centerX - x;
+ var dispY = centerY - y;
+ dispX /= ellipseWradius;
+ dispY /= ellipseHradius;
+ var len = Math.sqrt(dispX * dispX + dispY * dispY);
+ var newLength = len - 1;
+ if (newLength < 0) {
+ return [];
+ }
+ var lenProportion = newLength / len;
+ return [(centerX - x) * lenProportion + x, (centerY - y) * lenProportion + y];
+ };
+ var checkInEllipse = function checkInEllipse2(x, y, width, height, centerX, centerY, padding) {
+ x -= centerX;
+ y -= centerY;
+ x /= width / 2 + padding;
+ y /= height / 2 + padding;
+ return x * x + y * y <= 1;
+ };
+ var intersectLineCircle = function intersectLineCircle2(x1, y1, x2, y2, centerX, centerY, radius) {
+ var d = [x2 - x1, y2 - y1];
+ var f = [x1 - centerX, y1 - centerY];
+ var a = d[0] * d[0] + d[1] * d[1];
+ var b = 2 * (f[0] * d[0] + f[1] * d[1]);
+ var c = f[0] * f[0] + f[1] * f[1] - radius * radius;
+ var discriminant = b * b - 4 * a * c;
+ if (discriminant < 0) {
+ return [];
+ }
+ var t1 = (-b + Math.sqrt(discriminant)) / (2 * a);
+ var t2 = (-b - Math.sqrt(discriminant)) / (2 * a);
+ var tMin = Math.min(t1, t2);
+ var tMax = Math.max(t1, t2);
+ var inRangeParams = [];
+ if (tMin >= 0 && tMin <= 1) {
+ inRangeParams.push(tMin);
+ }
+ if (tMax >= 0 && tMax <= 1) {
+ inRangeParams.push(tMax);
+ }
+ if (inRangeParams.length === 0) {
+ return [];
+ }
+ var nearIntersectionX = inRangeParams[0] * d[0] + x1;
+ var nearIntersectionY = inRangeParams[0] * d[1] + y1;
+ if (inRangeParams.length > 1) {
+ if (inRangeParams[0] == inRangeParams[1]) {
+ return [nearIntersectionX, nearIntersectionY];
+ } else {
+ var farIntersectionX = inRangeParams[1] * d[0] + x1;
+ var farIntersectionY = inRangeParams[1] * d[1] + y1;
+ return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY];
+ }
+ } else {
+ return [nearIntersectionX, nearIntersectionY];
+ }
+ };
+ var midOfThree = function midOfThree2(a, b, c) {
+ if (b <= a && a <= c || c <= a && a <= b) {
+ return a;
+ } else if (a <= b && b <= c || c <= b && b <= a) {
+ return b;
+ } else {
+ return c;
+ }
+ };
+ var finiteLinesIntersect = function finiteLinesIntersect2(x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) {
+ var dx13 = x1 - x3;
+ var dx21 = x2 - x1;
+ var dx43 = x4 - x3;
+ var dy13 = y1 - y3;
+ var dy21 = y2 - y1;
+ var dy43 = y4 - y3;
+ var ua_t = dx43 * dy13 - dy43 * dx13;
+ var ub_t = dx21 * dy13 - dy21 * dx13;
+ var u_b = dy43 * dx21 - dx43 * dy21;
+ if (u_b !== 0) {
+ var ua = ua_t / u_b;
+ var ub = ub_t / u_b;
+ var flptThreshold = 1e-3;
+ var _min = 0 - flptThreshold;
+ var _max = 1 + flptThreshold;
+ if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) {
+ return [x1 + ua * dx21, y1 + ua * dy21];
+ } else {
+ if (!infiniteLines) {
+ return [];
+ } else {
+ return [x1 + ua * dx21, y1 + ua * dy21];
+ }
+ }
+ } else {
+ if (ua_t === 0 || ub_t === 0) {
+ if (midOfThree(x1, x2, x4) === x4) {
+ return [x4, y4];
+ }
+ if (midOfThree(x1, x2, x3) === x3) {
+ return [x3, y3];
+ }
+ if (midOfThree(x3, x4, x2) === x2) {
+ return [x2, y2];
+ }
+ return [];
+ } else {
+ return [];
+ }
+ }
+ };
+ var polygonIntersectLine = function polygonIntersectLine2(x, y, basePoints, centerX, centerY, width, height, padding) {
+ var intersections = [];
+ var intersection;
+ var transformedPoints = new Array(basePoints.length);
+ var doTransform = true;
+ if (width == null) {
+ doTransform = false;
+ }
+ var points;
+ if (doTransform) {
+ for (var i2 = 0; i2 < transformedPoints.length / 2; i2++) {
+ transformedPoints[i2 * 2] = basePoints[i2 * 2] * width + centerX;
+ transformedPoints[i2 * 2 + 1] = basePoints[i2 * 2 + 1] * height + centerY;
+ }
+ if (padding > 0) {
+ var expandedLineSet = expandPolygon(transformedPoints, -padding);
+ points = joinLines(expandedLineSet);
+ } else {
+ points = transformedPoints;
+ }
+ } else {
+ points = basePoints;
+ }
+ var currentX, currentY, nextX, nextY;
+ for (var _i2 = 0; _i2 < points.length / 2; _i2++) {
+ currentX = points[_i2 * 2];
+ currentY = points[_i2 * 2 + 1];
+ if (_i2 < points.length / 2 - 1) {
+ nextX = points[(_i2 + 1) * 2];
+ nextY = points[(_i2 + 1) * 2 + 1];
+ } else {
+ nextX = points[0];
+ nextY = points[1];
+ }
+ intersection = finiteLinesIntersect(x, y, centerX, centerY, currentX, currentY, nextX, nextY);
+ if (intersection.length !== 0) {
+ intersections.push(intersection[0], intersection[1]);
+ }
+ }
+ return intersections;
+ };
+ var roundPolygonIntersectLine = function roundPolygonIntersectLine2(x, y, basePoints, centerX, centerY, width, height, padding) {
+ var intersections = [];
+ var intersection;
+ var lines = new Array(basePoints.length);
+ var halfW = width / 2;
+ var halfH = height / 2;
+ var cornerRadius = getRoundPolygonRadius(width, height);
+ for (var i2 = 0; i2 < basePoints.length / 4; i2++) {
+ var sourceUv = void 0, destUv = void 0;
+ if (i2 === 0) {
+ sourceUv = basePoints.length - 2;
+ } else {
+ sourceUv = i2 * 4 - 2;
+ }
+ destUv = i2 * 4 + 2;
+ var px = centerX + halfW * basePoints[i2 * 4];
+ var py = centerY + halfH * basePoints[i2 * 4 + 1];
+ var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1];
+ var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);
+ var cp0x = px - offset * basePoints[sourceUv];
+ var cp0y = py - offset * basePoints[sourceUv + 1];
+ var cp1x = px + offset * basePoints[destUv];
+ var cp1y = py + offset * basePoints[destUv + 1];
+ if (i2 === 0) {
+ lines[basePoints.length - 2] = cp0x;
+ lines[basePoints.length - 1] = cp0y;
+ } else {
+ lines[i2 * 4 - 2] = cp0x;
+ lines[i2 * 4 - 1] = cp0y;
+ }
+ lines[i2 * 4] = cp1x;
+ lines[i2 * 4 + 1] = cp1y;
+ var orthx = basePoints[sourceUv + 1];
+ var orthy = -basePoints[sourceUv];
+ var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1];
+ if (cosAlpha < 0) {
+ orthx *= -1;
+ orthy *= -1;
+ }
+ var cx = cp0x + orthx * cornerRadius;
+ var cy = cp0y + orthy * cornerRadius;
+ intersection = intersectLineCircle(x, y, centerX, centerY, cx, cy, cornerRadius);
+ if (intersection.length !== 0) {
+ intersections.push(intersection[0], intersection[1]);
+ }
+ }
+ for (var _i3 = 0; _i3 < lines.length / 4; _i3++) {
+ intersection = finiteLinesIntersect(x, y, centerX, centerY, lines[_i3 * 4], lines[_i3 * 4 + 1], lines[_i3 * 4 + 2], lines[_i3 * 4 + 3], false);
+ if (intersection.length !== 0) {
+ intersections.push(intersection[0], intersection[1]);
+ }
+ }
+ if (intersections.length > 2) {
+ var lowestIntersection = [intersections[0], intersections[1]];
+ var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x, 2) + Math.pow(lowestIntersection[1] - y, 2);
+ for (var _i4 = 1; _i4 < intersections.length / 2; _i4++) {
+ var squaredDistance = Math.pow(intersections[_i4 * 2] - x, 2) + Math.pow(intersections[_i4 * 2 + 1] - y, 2);
+ if (squaredDistance <= lowestSquaredDistance) {
+ lowestIntersection[0] = intersections[_i4 * 2];
+ lowestIntersection[1] = intersections[_i4 * 2 + 1];
+ lowestSquaredDistance = squaredDistance;
+ }
+ }
+ return lowestIntersection;
+ }
+ return intersections;
+ };
+ var shortenIntersection = function shortenIntersection2(intersection, offset, amount) {
+ var disp = [intersection[0] - offset[0], intersection[1] - offset[1]];
+ var length = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]);
+ var lenRatio = (length - amount) / length;
+ if (lenRatio < 0) {
+ lenRatio = 1e-5;
+ }
+ return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]];
+ };
+ var generateUnitNgonPointsFitToSquare = function generateUnitNgonPointsFitToSquare2(sides, rotationRadians) {
+ var points = generateUnitNgonPoints(sides, rotationRadians);
+ points = fitPolygonToSquare(points);
+ return points;
+ };
+ var fitPolygonToSquare = function fitPolygonToSquare2(points) {
+ var x, y;
+ var sides = points.length / 2;
+ var minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
+ for (var i2 = 0; i2 < sides; i2++) {
+ x = points[2 * i2];
+ y = points[2 * i2 + 1];
+ minX = Math.min(minX, x);
+ maxX = Math.max(maxX, x);
+ minY = Math.min(minY, y);
+ maxY = Math.max(maxY, y);
+ }
+ var sx = 2 / (maxX - minX);
+ var sy = 2 / (maxY - minY);
+ for (var _i5 = 0; _i5 < sides; _i5++) {
+ x = points[2 * _i5] = points[2 * _i5] * sx;
+ y = points[2 * _i5 + 1] = points[2 * _i5 + 1] * sy;
+ minX = Math.min(minX, x);
+ maxX = Math.max(maxX, x);
+ minY = Math.min(minY, y);
+ maxY = Math.max(maxY, y);
+ }
+ if (minY < -1) {
+ for (var _i6 = 0; _i6 < sides; _i6++) {
+ y = points[2 * _i6 + 1] = points[2 * _i6 + 1] + (-1 - minY);
+ }
+ }
+ return points;
+ };
+ var generateUnitNgonPoints = function generateUnitNgonPoints2(sides, rotationRadians) {
+ var increment = 1 / sides * 2 * Math.PI;
+ var startAngle = sides % 2 === 0 ? Math.PI / 2 + increment / 2 : Math.PI / 2;
+ startAngle += rotationRadians;
+ var points = new Array(sides * 2);
+ var currentAngle;
+ for (var i2 = 0; i2 < sides; i2++) {
+ currentAngle = i2 * increment + startAngle;
+ points[2 * i2] = Math.cos(currentAngle);
+ points[2 * i2 + 1] = Math.sin(-currentAngle);
+ }
+ return points;
+ };
+ var getRoundRectangleRadius = function getRoundRectangleRadius2(width, height) {
+ return Math.min(width / 4, height / 4, 8);
+ };
+ var getRoundPolygonRadius = function getRoundPolygonRadius2(width, height) {
+ return Math.min(width / 10, height / 10, 8);
+ };
+ var getCutRectangleCornerLength = function getCutRectangleCornerLength2() {
+ return 8;
+ };
+ var bezierPtsToQuadCoeff = function bezierPtsToQuadCoeff2(p0, p1, p2) {
+ return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0];
+ };
+ var getBarrelCurveConstants = function getBarrelCurveConstants2(width, height) {
+ return {
+ heightOffset: Math.min(15, 0.05 * height),
+ widthOffset: Math.min(100, 0.25 * width),
+ ctrlPtOffsetPct: 0.05
+ };
+ };
+ var pageRankDefaults = defaults$g({
+ dampingFactor: 0.8,
+ precision: 1e-6,
+ iterations: 200,
+ weight: function weight(edge) {
+ return 1;
+ }
+ });
+ var elesfn$o = {
+ pageRank: function pageRank(options) {
+ var _pageRankDefaults = pageRankDefaults(options), dampingFactor = _pageRankDefaults.dampingFactor, precision = _pageRankDefaults.precision, iterations = _pageRankDefaults.iterations, weight = _pageRankDefaults.weight;
+ var cy = this._private.cy;
+ var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges;
+ var numNodes = nodes2.length;
+ var numNodesSqd = numNodes * numNodes;
+ var numEdges = edges.length;
+ var matrix = new Array(numNodesSqd);
+ var columnSum = new Array(numNodes);
+ var additionalProb = (1 - dampingFactor) / numNodes;
+ for (var i2 = 0; i2 < numNodes; i2++) {
+ for (var j = 0; j < numNodes; j++) {
+ var n = i2 * numNodes + j;
+ matrix[n] = 0;
+ }
+ columnSum[i2] = 0;
+ }
+ for (var _i = 0; _i < numEdges; _i++) {
+ var edge = edges[_i];
+ var srcId = edge.data("source");
+ var tgtId = edge.data("target");
+ if (srcId === tgtId) {
+ continue;
+ }
+ var s = nodes2.indexOfId(srcId);
+ var t = nodes2.indexOfId(tgtId);
+ var w = weight(edge);
+ var _n = t * numNodes + s;
+ matrix[_n] += w;
+ columnSum[s] += w;
+ }
+ var p2 = 1 / numNodes + additionalProb;
+ for (var _j = 0; _j < numNodes; _j++) {
+ if (columnSum[_j] === 0) {
+ for (var _i2 = 0; _i2 < numNodes; _i2++) {
+ var _n2 = _i2 * numNodes + _j;
+ matrix[_n2] = p2;
+ }
+ } else {
+ for (var _i3 = 0; _i3 < numNodes; _i3++) {
+ var _n3 = _i3 * numNodes + _j;
+ matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb;
+ }
+ }
+ }
+ var eigenvector = new Array(numNodes);
+ var temp = new Array(numNodes);
+ var previous;
+ for (var _i4 = 0; _i4 < numNodes; _i4++) {
+ eigenvector[_i4] = 1;
+ }
+ for (var iter = 0; iter < iterations; iter++) {
+ for (var _i5 = 0; _i5 < numNodes; _i5++) {
+ temp[_i5] = 0;
+ }
+ for (var _i6 = 0; _i6 < numNodes; _i6++) {
+ for (var _j2 = 0; _j2 < numNodes; _j2++) {
+ var _n4 = _i6 * numNodes + _j2;
+ temp[_i6] += matrix[_n4] * eigenvector[_j2];
+ }
+ }
+ inPlaceSumNormalize(temp);
+ previous = eigenvector;
+ eigenvector = temp;
+ temp = previous;
+ var diff = 0;
+ for (var _i7 = 0; _i7 < numNodes; _i7++) {
+ var delta = previous[_i7] - eigenvector[_i7];
+ diff += delta * delta;
+ }
+ if (diff < precision) {
+ break;
+ }
+ }
+ var res = {
+ rank: function rank(node) {
+ node = cy.collection(node)[0];
+ return eigenvector[nodes2.indexOf(node)];
+ }
+ };
+ return res;
+ }
+ // pageRank
+ };
+ var defaults$f = defaults$g({
+ root: null,
+ weight: function weight(edge) {
+ return 1;
+ },
+ directed: false,
+ alpha: 0
+ });
+ var elesfn$n = {
+ degreeCentralityNormalized: function degreeCentralityNormalized(options) {
+ options = defaults$f(options);
+ var cy = this.cy();
+ var nodes2 = this.nodes();
+ var numNodes = nodes2.length;
+ if (!options.directed) {
+ var degrees = {};
+ var maxDegree = 0;
+ for (var i2 = 0; i2 < numNodes; i2++) {
+ var node = nodes2[i2];
+ options.root = node;
+ var currDegree = this.degreeCentrality(options);
+ if (maxDegree < currDegree.degree) {
+ maxDegree = currDegree.degree;
+ }
+ degrees[node.id()] = currDegree.degree;
+ }
+ return {
+ degree: function degree(node2) {
+ if (maxDegree === 0) {
+ return 0;
+ }
+ if (string(node2)) {
+ node2 = cy.filter(node2);
+ }
+ return degrees[node2.id()] / maxDegree;
+ }
+ };
+ } else {
+ var indegrees = {};
+ var outdegrees = {};
+ var maxIndegree = 0;
+ var maxOutdegree = 0;
+ for (var _i = 0; _i < numNodes; _i++) {
+ var _node = nodes2[_i];
+ var id = _node.id();
+ options.root = _node;
+ var _currDegree = this.degreeCentrality(options);
+ if (maxIndegree < _currDegree.indegree)
+ maxIndegree = _currDegree.indegree;
+ if (maxOutdegree < _currDegree.outdegree)
+ maxOutdegree = _currDegree.outdegree;
+ indegrees[id] = _currDegree.indegree;
+ outdegrees[id] = _currDegree.outdegree;
+ }
+ return {
+ indegree: function indegree(node2) {
+ if (maxIndegree == 0) {
+ return 0;
+ }
+ if (string(node2)) {
+ node2 = cy.filter(node2);
+ }
+ return indegrees[node2.id()] / maxIndegree;
+ },
+ outdegree: function outdegree(node2) {
+ if (maxOutdegree === 0) {
+ return 0;
+ }
+ if (string(node2)) {
+ node2 = cy.filter(node2);
+ }
+ return outdegrees[node2.id()] / maxOutdegree;
+ }
+ };
+ }
+ },
+ // degreeCentralityNormalized
+ // Implemented from the algorithm in Opsahl's paper
+ // "Node centrality in weighted networks: Generalizing degree and shortest paths"
+ // check the heading 2 "Degree"
+ degreeCentrality: function degreeCentrality(options) {
+ options = defaults$f(options);
+ var cy = this.cy();
+ var callingEles = this;
+ var _options = options, root2 = _options.root, weight = _options.weight, directed = _options.directed, alpha = _options.alpha;
+ root2 = cy.collection(root2)[0];
+ if (!directed) {
+ var connEdges = root2.connectedEdges().intersection(callingEles);
+ var k = connEdges.length;
+ var s = 0;
+ for (var i2 = 0; i2 < connEdges.length; i2++) {
+ s += weight(connEdges[i2]);
+ }
+ return {
+ degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha)
+ };
+ } else {
+ var edges = root2.connectedEdges();
+ var incoming = edges.filter(function(edge) {
+ return edge.target().same(root2) && callingEles.has(edge);
+ });
+ var outgoing = edges.filter(function(edge) {
+ return edge.source().same(root2) && callingEles.has(edge);
+ });
+ var k_in = incoming.length;
+ var k_out = outgoing.length;
+ var s_in = 0;
+ var s_out = 0;
+ for (var _i2 = 0; _i2 < incoming.length; _i2++) {
+ s_in += weight(incoming[_i2]);
+ }
+ for (var _i3 = 0; _i3 < outgoing.length; _i3++) {
+ s_out += weight(outgoing[_i3]);
+ }
+ return {
+ indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha),
+ outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha)
+ };
+ }
+ }
+ // degreeCentrality
+ };
+ elesfn$n.dc = elesfn$n.degreeCentrality;
+ elesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized;
+ var defaults$e = defaults$g({
+ harmonic: true,
+ weight: function weight() {
+ return 1;
+ },
+ directed: false,
+ root: null
+ });
+ var elesfn$m = {
+ closenessCentralityNormalized: function closenessCentralityNormalized(options) {
+ var _defaults = defaults$e(options), harmonic = _defaults.harmonic, weight = _defaults.weight, directed = _defaults.directed;
+ var cy = this.cy();
+ var closenesses = {};
+ var maxCloseness = 0;
+ var nodes2 = this.nodes();
+ var fw = this.floydWarshall({
+ weight,
+ directed
+ });
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ var currCloseness = 0;
+ var node_i = nodes2[i2];
+ for (var j = 0; j < nodes2.length; j++) {
+ if (i2 !== j) {
+ var d = fw.distance(node_i, nodes2[j]);
+ if (harmonic) {
+ currCloseness += 1 / d;
+ } else {
+ currCloseness += d;
+ }
+ }
+ }
+ if (!harmonic) {
+ currCloseness = 1 / currCloseness;
+ }
+ if (maxCloseness < currCloseness) {
+ maxCloseness = currCloseness;
+ }
+ closenesses[node_i.id()] = currCloseness;
+ }
+ return {
+ closeness: function closeness(node) {
+ if (maxCloseness == 0) {
+ return 0;
+ }
+ if (string(node)) {
+ node = cy.filter(node)[0].id();
+ } else {
+ node = node.id();
+ }
+ return closenesses[node] / maxCloseness;
+ }
+ };
+ },
+ // Implemented from pseudocode from wikipedia
+ closenessCentrality: function closenessCentrality(options) {
+ var _defaults2 = defaults$e(options), root2 = _defaults2.root, weight = _defaults2.weight, directed = _defaults2.directed, harmonic = _defaults2.harmonic;
+ root2 = this.filter(root2)[0];
+ var dijkstra = this.dijkstra({
+ root: root2,
+ weight,
+ directed
+ });
+ var totalDistance = 0;
+ var nodes2 = this.nodes();
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ var n = nodes2[i2];
+ if (!n.same(root2)) {
+ var d = dijkstra.distanceTo(n);
+ if (harmonic) {
+ totalDistance += 1 / d;
+ } else {
+ totalDistance += d;
+ }
+ }
+ }
+ return harmonic ? totalDistance : 1 / totalDistance;
+ }
+ // closenessCentrality
+ };
+ elesfn$m.cc = elesfn$m.closenessCentrality;
+ elesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized;
+ var defaults$d = defaults$g({
+ weight: null,
+ directed: false
+ });
+ var elesfn$l = {
+ // Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes
+ betweennessCentrality: function betweennessCentrality(options) {
+ var _defaults = defaults$d(options), directed = _defaults.directed, weight = _defaults.weight;
+ var weighted = weight != null;
+ var cy = this.cy();
+ var V = this.nodes();
+ var A = {};
+ var _C = {};
+ var max2 = 0;
+ var C = {
+ set: function set2(key, val) {
+ _C[key] = val;
+ if (val > max2) {
+ max2 = val;
+ }
+ },
+ get: function get2(key) {
+ return _C[key];
+ }
+ };
+ for (var i2 = 0; i2 < V.length; i2++) {
+ var v = V[i2];
+ var vid = v.id();
+ if (directed) {
+ A[vid] = v.outgoers().nodes();
+ } else {
+ A[vid] = v.openNeighborhood().nodes();
+ }
+ C.set(vid, 0);
+ }
+ var _loop = function _loop2(s2) {
+ var sid = V[s2].id();
+ var S = [];
+ var P = {};
+ var g = {};
+ var d = {};
+ var Q = new heap(function(a, b) {
+ return d[a] - d[b];
+ });
+ for (var _i = 0; _i < V.length; _i++) {
+ var _vid = V[_i].id();
+ P[_vid] = [];
+ g[_vid] = 0;
+ d[_vid] = Infinity;
+ }
+ g[sid] = 1;
+ d[sid] = 0;
+ Q.push(sid);
+ while (!Q.empty()) {
+ var _v = Q.pop();
+ S.push(_v);
+ if (weighted) {
+ for (var j = 0; j < A[_v].length; j++) {
+ var w = A[_v][j];
+ var vEle = cy.getElementById(_v);
+ var edge = void 0;
+ if (vEle.edgesTo(w).length > 0) {
+ edge = vEle.edgesTo(w)[0];
+ } else {
+ edge = w.edgesTo(vEle)[0];
+ }
+ var edgeWeight = weight(edge);
+ w = w.id();
+ if (d[w] > d[_v] + edgeWeight) {
+ d[w] = d[_v] + edgeWeight;
+ if (Q.nodes.indexOf(w) < 0) {
+ Q.push(w);
+ } else {
+ Q.updateItem(w);
+ }
+ g[w] = 0;
+ P[w] = [];
+ }
+ if (d[w] == d[_v] + edgeWeight) {
+ g[w] = g[w] + g[_v];
+ P[w].push(_v);
+ }
+ }
+ } else {
+ for (var _j = 0; _j < A[_v].length; _j++) {
+ var _w = A[_v][_j].id();
+ if (d[_w] == Infinity) {
+ Q.push(_w);
+ d[_w] = d[_v] + 1;
+ }
+ if (d[_w] == d[_v] + 1) {
+ g[_w] = g[_w] + g[_v];
+ P[_w].push(_v);
+ }
+ }
+ }
+ }
+ var e = {};
+ for (var _i2 = 0; _i2 < V.length; _i2++) {
+ e[V[_i2].id()] = 0;
+ }
+ while (S.length > 0) {
+ var _w2 = S.pop();
+ for (var _j2 = 0; _j2 < P[_w2].length; _j2++) {
+ var _v2 = P[_w2][_j2];
+ e[_v2] = e[_v2] + g[_v2] / g[_w2] * (1 + e[_w2]);
+ }
+ if (_w2 != V[s2].id()) {
+ C.set(_w2, C.get(_w2) + e[_w2]);
+ }
+ }
+ };
+ for (var s = 0; s < V.length; s++) {
+ _loop(s);
+ }
+ var ret = {
+ betweenness: function betweenness(node) {
+ var id = cy.collection(node).id();
+ return C.get(id);
+ },
+ betweennessNormalized: function betweennessNormalized(node) {
+ if (max2 == 0) {
+ return 0;
+ }
+ var id = cy.collection(node).id();
+ return C.get(id) / max2;
+ }
+ };
+ ret.betweennessNormalised = ret.betweennessNormalized;
+ return ret;
+ }
+ // betweennessCentrality
+ };
+ elesfn$l.bc = elesfn$l.betweennessCentrality;
+ var defaults$c = defaults$g({
+ expandFactor: 2,
+ // affects time of computation and cluster granularity to some extent: M * M
+ inflateFactor: 2,
+ // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j)
+ multFactor: 1,
+ // optional self loops for each node. Use a neutral value to improve cluster computations.
+ maxIterations: 20,
+ // maximum number of iterations of the MCL algorithm in a single run
+ attributes: [
+ // attributes/features used to group nodes, ie. similarity values between nodes
+ function(edge) {
+ return 1;
+ }
+ ]
+ });
+ var setOptions$3 = function setOptions2(options) {
+ return defaults$c(options);
+ };
+ var getSimilarity$1 = function getSimilarity2(edge, attributes) {
+ var total = 0;
+ for (var i2 = 0; i2 < attributes.length; i2++) {
+ total += attributes[i2](edge);
+ }
+ return total;
+ };
+ var addLoops = function addLoops2(M, n, val) {
+ for (var i2 = 0; i2 < n; i2++) {
+ M[i2 * n + i2] = val;
+ }
+ };
+ var normalize = function normalize2(M, n) {
+ var sum;
+ for (var col = 0; col < n; col++) {
+ sum = 0;
+ for (var row = 0; row < n; row++) {
+ sum += M[row * n + col];
+ }
+ for (var _row = 0; _row < n; _row++) {
+ M[_row * n + col] = M[_row * n + col] / sum;
+ }
+ }
+ };
+ var mmult = function mmult2(A, B, n) {
+ var C = new Array(n * n);
+ for (var i2 = 0; i2 < n; i2++) {
+ for (var j = 0; j < n; j++) {
+ C[i2 * n + j] = 0;
+ }
+ for (var k = 0; k < n; k++) {
+ for (var _j = 0; _j < n; _j++) {
+ C[i2 * n + _j] += A[i2 * n + k] * B[k * n + _j];
+ }
+ }
+ }
+ return C;
+ };
+ var expand = function expand2(M, n, expandFactor) {
+ var _M = M.slice(0);
+ for (var p2 = 1; p2 < expandFactor; p2++) {
+ M = mmult(M, _M, n);
+ }
+ return M;
+ };
+ var inflate = function inflate2(M, n, inflateFactor) {
+ var _M = new Array(n * n);
+ for (var i2 = 0; i2 < n * n; i2++) {
+ _M[i2] = Math.pow(M[i2], inflateFactor);
+ }
+ normalize(_M, n);
+ return _M;
+ };
+ var hasConverged = function hasConverged2(M, _M, n2, roundFactor) {
+ for (var i2 = 0; i2 < n2; i2++) {
+ var v1 = Math.round(M[i2] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);
+ var v2 = Math.round(_M[i2] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);
+ if (v1 !== v2) {
+ return false;
+ }
+ }
+ return true;
+ };
+ var assign$2 = function assign2(M, n, nodes2, cy) {
+ var clusters = [];
+ for (var i2 = 0; i2 < n; i2++) {
+ var cluster = [];
+ for (var j = 0; j < n; j++) {
+ if (Math.round(M[i2 * n + j] * 1e3) / 1e3 > 0) {
+ cluster.push(nodes2[j]);
+ }
+ }
+ if (cluster.length !== 0) {
+ clusters.push(cy.collection(cluster));
+ }
+ }
+ return clusters;
+ };
+ var isDuplicate = function isDuplicate2(c1, c2) {
+ for (var i2 = 0; i2 < c1.length; i2++) {
+ if (!c2[i2] || c1[i2].id() !== c2[i2].id()) {
+ return false;
+ }
+ }
+ return true;
+ };
+ var removeDuplicates = function removeDuplicates2(clusters) {
+ for (var i2 = 0; i2 < clusters.length; i2++) {
+ for (var j = 0; j < clusters.length; j++) {
+ if (i2 != j && isDuplicate(clusters[i2], clusters[j])) {
+ clusters.splice(j, 1);
+ }
+ }
+ }
+ return clusters;
+ };
+ var markovClustering = function markovClustering2(options) {
+ var nodes2 = this.nodes();
+ var edges = this.edges();
+ var cy = this.cy();
+ var opts = setOptions$3(options);
+ var id2position = {};
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ id2position[nodes2[i2].id()] = i2;
+ }
+ var n = nodes2.length, n2 = n * n;
+ var M = new Array(n2), _M;
+ for (var _i = 0; _i < n2; _i++) {
+ M[_i] = 0;
+ }
+ for (var e = 0; e < edges.length; e++) {
+ var edge = edges[e];
+ var _i2 = id2position[edge.source().id()];
+ var j = id2position[edge.target().id()];
+ var sim = getSimilarity$1(edge, opts.attributes);
+ M[_i2 * n + j] += sim;
+ M[j * n + _i2] += sim;
+ }
+ addLoops(M, n, opts.multFactor);
+ normalize(M, n);
+ var isStillMoving = true;
+ var iterations = 0;
+ while (isStillMoving && iterations < opts.maxIterations) {
+ isStillMoving = false;
+ _M = expand(M, n, opts.expandFactor);
+ M = inflate(_M, n, opts.inflateFactor);
+ if (!hasConverged(M, _M, n2, 4)) {
+ isStillMoving = true;
+ }
+ iterations++;
+ }
+ var clusters = assign$2(M, n, nodes2, cy);
+ clusters = removeDuplicates(clusters);
+ return clusters;
+ };
+ var markovClustering$1 = {
+ markovClustering,
+ mcl: markovClustering
+ };
+ var identity = function identity2(x) {
+ return x;
+ };
+ var absDiff = function absDiff2(p2, q) {
+ return Math.abs(q - p2);
+ };
+ var addAbsDiff = function addAbsDiff2(total, p2, q) {
+ return total + absDiff(p2, q);
+ };
+ var addSquaredDiff = function addSquaredDiff2(total, p2, q) {
+ return total + Math.pow(q - p2, 2);
+ };
+ var sqrt = function sqrt3(x) {
+ return Math.sqrt(x);
+ };
+ var maxAbsDiff = function maxAbsDiff2(currentMax, p2, q) {
+ return Math.max(currentMax, absDiff(p2, q));
+ };
+ var getDistance = function getDistance2(length, getP, getQ, init, visit) {
+ var post = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : identity;
+ var ret = init;
+ var p2, q;
+ for (var dim = 0; dim < length; dim++) {
+ p2 = getP(dim);
+ q = getQ(dim);
+ ret = visit(ret, p2, q);
+ }
+ return post(ret);
+ };
+ var distances = {
+ euclidean: function euclidean(length, getP, getQ) {
+ if (length >= 2) {
+ return getDistance(length, getP, getQ, 0, addSquaredDiff, sqrt);
+ } else {
+ return getDistance(length, getP, getQ, 0, addAbsDiff);
+ }
+ },
+ squaredEuclidean: function squaredEuclidean(length, getP, getQ) {
+ return getDistance(length, getP, getQ, 0, addSquaredDiff);
+ },
+ manhattan: function manhattan(length, getP, getQ) {
+ return getDistance(length, getP, getQ, 0, addAbsDiff);
+ },
+ max: function max2(length, getP, getQ) {
+ return getDistance(length, getP, getQ, -Infinity, maxAbsDiff);
+ }
+ };
+ distances["squared-euclidean"] = distances["squaredEuclidean"];
+ distances["squaredeuclidean"] = distances["squaredEuclidean"];
+ function clusteringDistance(method, length, getP, getQ, nodeP, nodeQ) {
+ var impl2;
+ if (fn$6(method)) {
+ impl2 = method;
+ } else {
+ impl2 = distances[method] || distances.euclidean;
+ }
+ if (length === 0 && fn$6(method)) {
+ return impl2(nodeP, nodeQ);
+ } else {
+ return impl2(length, getP, getQ, nodeP, nodeQ);
+ }
+ }
+ var defaults$b = defaults$g({
+ k: 2,
+ m: 2,
+ sensitivityThreshold: 1e-4,
+ distance: "euclidean",
+ maxIterations: 10,
+ attributes: [],
+ testMode: false,
+ testCentroids: null
+ });
+ var setOptions$2 = function setOptions2(options) {
+ return defaults$b(options);
+ };
+ var getDist = function getDist2(type, node, centroid, attributes, mode) {
+ var noNodeP = mode !== "kMedoids";
+ var getP = noNodeP ? function(i2) {
+ return centroid[i2];
+ } : function(i2) {
+ return attributes[i2](centroid);
+ };
+ var getQ = function getQ2(i2) {
+ return attributes[i2](node);
+ };
+ var nodeP = centroid;
+ var nodeQ = node;
+ return clusteringDistance(type, attributes.length, getP, getQ, nodeP, nodeQ);
+ };
+ var randomCentroids = function randomCentroids2(nodes2, k, attributes) {
+ var ndim = attributes.length;
+ var min2 = new Array(ndim);
+ var max2 = new Array(ndim);
+ var centroids = new Array(k);
+ var centroid = null;
+ for (var i2 = 0; i2 < ndim; i2++) {
+ min2[i2] = nodes2.min(attributes[i2]).value;
+ max2[i2] = nodes2.max(attributes[i2]).value;
+ }
+ for (var c = 0; c < k; c++) {
+ centroid = [];
+ for (var _i = 0; _i < ndim; _i++) {
+ centroid[_i] = Math.random() * (max2[_i] - min2[_i]) + min2[_i];
+ }
+ centroids[c] = centroid;
+ }
+ return centroids;
+ };
+ var classify = function classify2(node, centroids, distance, attributes, type) {
+ var min2 = Infinity;
+ var index = 0;
+ for (var i2 = 0; i2 < centroids.length; i2++) {
+ var dist2 = getDist(distance, node, centroids[i2], attributes, type);
+ if (dist2 < min2) {
+ min2 = dist2;
+ index = i2;
+ }
+ }
+ return index;
+ };
+ var buildCluster = function buildCluster2(centroid, nodes2, assignment) {
+ var cluster = [];
+ var node = null;
+ for (var n = 0; n < nodes2.length; n++) {
+ node = nodes2[n];
+ if (assignment[node.id()] === centroid) {
+ cluster.push(node);
+ }
+ }
+ return cluster;
+ };
+ var haveValuesConverged = function haveValuesConverged2(v1, v2, sensitivityThreshold) {
+ return Math.abs(v2 - v1) <= sensitivityThreshold;
+ };
+ var haveMatricesConverged = function haveMatricesConverged2(v1, v2, sensitivityThreshold) {
+ for (var i2 = 0; i2 < v1.length; i2++) {
+ for (var j = 0; j < v1[i2].length; j++) {
+ var diff = Math.abs(v1[i2][j] - v2[i2][j]);
+ if (diff > sensitivityThreshold) {
+ return false;
+ }
+ }
+ }
+ return true;
+ };
+ var seenBefore = function seenBefore2(node, medoids, n) {
+ for (var i2 = 0; i2 < n; i2++) {
+ if (node === medoids[i2])
+ return true;
+ }
+ return false;
+ };
+ var randomMedoids = function randomMedoids2(nodes2, k) {
+ var medoids = new Array(k);
+ if (nodes2.length < 50) {
+ for (var i2 = 0; i2 < k; i2++) {
+ var node = nodes2[Math.floor(Math.random() * nodes2.length)];
+ while (seenBefore(node, medoids, i2)) {
+ node = nodes2[Math.floor(Math.random() * nodes2.length)];
+ }
+ medoids[i2] = node;
+ }
+ } else {
+ for (var _i2 = 0; _i2 < k; _i2++) {
+ medoids[_i2] = nodes2[Math.floor(Math.random() * nodes2.length)];
+ }
+ }
+ return medoids;
+ };
+ var findCost = function findCost2(potentialNewMedoid, cluster, attributes) {
+ var cost = 0;
+ for (var n = 0; n < cluster.length; n++) {
+ cost += getDist("manhattan", cluster[n], potentialNewMedoid, attributes, "kMedoids");
+ }
+ return cost;
+ };
+ var kMeans = function kMeans2(options) {
+ var cy = this.cy();
+ var nodes2 = this.nodes();
+ var node = null;
+ var opts = setOptions$2(options);
+ var clusters = new Array(opts.k);
+ var assignment = {};
+ var centroids;
+ if (opts.testMode) {
+ if (typeof opts.testCentroids === "number") {
+ opts.testCentroids;
+ centroids = randomCentroids(nodes2, opts.k, opts.attributes);
+ } else if (_typeof(opts.testCentroids) === "object") {
+ centroids = opts.testCentroids;
+ } else {
+ centroids = randomCentroids(nodes2, opts.k, opts.attributes);
+ }
+ } else {
+ centroids = randomCentroids(nodes2, opts.k, opts.attributes);
+ }
+ var isStillMoving = true;
+ var iterations = 0;
+ while (isStillMoving && iterations < opts.maxIterations) {
+ for (var n = 0; n < nodes2.length; n++) {
+ node = nodes2[n];
+ assignment[node.id()] = classify(node, centroids, opts.distance, opts.attributes, "kMeans");
+ }
+ isStillMoving = false;
+ for (var c = 0; c < opts.k; c++) {
+ var cluster = buildCluster(c, nodes2, assignment);
+ if (cluster.length === 0) {
+ continue;
+ }
+ var ndim = opts.attributes.length;
+ var centroid = centroids[c];
+ var newCentroid = new Array(ndim);
+ var sum = new Array(ndim);
+ for (var d = 0; d < ndim; d++) {
+ sum[d] = 0;
+ for (var i2 = 0; i2 < cluster.length; i2++) {
+ node = cluster[i2];
+ sum[d] += opts.attributes[d](node);
+ }
+ newCentroid[d] = sum[d] / cluster.length;
+ if (!haveValuesConverged(newCentroid[d], centroid[d], opts.sensitivityThreshold)) {
+ isStillMoving = true;
+ }
+ }
+ centroids[c] = newCentroid;
+ clusters[c] = cy.collection(cluster);
+ }
+ iterations++;
+ }
+ return clusters;
+ };
+ var kMedoids = function kMedoids2(options) {
+ var cy = this.cy();
+ var nodes2 = this.nodes();
+ var node = null;
+ var opts = setOptions$2(options);
+ var clusters = new Array(opts.k);
+ var medoids;
+ var assignment = {};
+ var curCost;
+ var minCosts = new Array(opts.k);
+ if (opts.testMode) {
+ if (typeof opts.testCentroids === "number")
+ ;
+ else if (_typeof(opts.testCentroids) === "object") {
+ medoids = opts.testCentroids;
+ } else {
+ medoids = randomMedoids(nodes2, opts.k);
+ }
+ } else {
+ medoids = randomMedoids(nodes2, opts.k);
+ }
+ var isStillMoving = true;
+ var iterations = 0;
+ while (isStillMoving && iterations < opts.maxIterations) {
+ for (var n = 0; n < nodes2.length; n++) {
+ node = nodes2[n];
+ assignment[node.id()] = classify(node, medoids, opts.distance, opts.attributes, "kMedoids");
+ }
+ isStillMoving = false;
+ for (var m = 0; m < medoids.length; m++) {
+ var cluster = buildCluster(m, nodes2, assignment);
+ if (cluster.length === 0) {
+ continue;
+ }
+ minCosts[m] = findCost(medoids[m], cluster, opts.attributes);
+ for (var _n = 0; _n < cluster.length; _n++) {
+ curCost = findCost(cluster[_n], cluster, opts.attributes);
+ if (curCost < minCosts[m]) {
+ minCosts[m] = curCost;
+ medoids[m] = cluster[_n];
+ isStillMoving = true;
+ }
+ }
+ clusters[m] = cy.collection(cluster);
+ }
+ iterations++;
+ }
+ return clusters;
+ };
+ var updateCentroids = function updateCentroids2(centroids, nodes2, U, weight, opts) {
+ var numerator, denominator;
+ for (var n = 0; n < nodes2.length; n++) {
+ for (var c = 0; c < centroids.length; c++) {
+ weight[n][c] = Math.pow(U[n][c], opts.m);
+ }
+ }
+ for (var _c = 0; _c < centroids.length; _c++) {
+ for (var dim = 0; dim < opts.attributes.length; dim++) {
+ numerator = 0;
+ denominator = 0;
+ for (var _n2 = 0; _n2 < nodes2.length; _n2++) {
+ numerator += weight[_n2][_c] * opts.attributes[dim](nodes2[_n2]);
+ denominator += weight[_n2][_c];
+ }
+ centroids[_c][dim] = numerator / denominator;
+ }
+ }
+ };
+ var updateMembership = function updateMembership2(U, _U, centroids, nodes2, opts) {
+ for (var i2 = 0; i2 < U.length; i2++) {
+ _U[i2] = U[i2].slice();
+ }
+ var sum, numerator, denominator;
+ var pow = 2 / (opts.m - 1);
+ for (var c = 0; c < centroids.length; c++) {
+ for (var n = 0; n < nodes2.length; n++) {
+ sum = 0;
+ for (var k = 0; k < centroids.length; k++) {
+ numerator = getDist(opts.distance, nodes2[n], centroids[c], opts.attributes, "cmeans");
+ denominator = getDist(opts.distance, nodes2[n], centroids[k], opts.attributes, "cmeans");
+ sum += Math.pow(numerator / denominator, pow);
+ }
+ U[n][c] = 1 / sum;
+ }
+ }
+ };
+ var assign$1 = function assign2(nodes2, U, opts, cy) {
+ var clusters = new Array(opts.k);
+ for (var c = 0; c < clusters.length; c++) {
+ clusters[c] = [];
+ }
+ var max2;
+ var index;
+ for (var n = 0; n < U.length; n++) {
+ max2 = -Infinity;
+ index = -1;
+ for (var _c2 = 0; _c2 < U[0].length; _c2++) {
+ if (U[n][_c2] > max2) {
+ max2 = U[n][_c2];
+ index = _c2;
+ }
+ }
+ clusters[index].push(nodes2[n]);
+ }
+ for (var _c3 = 0; _c3 < clusters.length; _c3++) {
+ clusters[_c3] = cy.collection(clusters[_c3]);
+ }
+ return clusters;
+ };
+ var fuzzyCMeans = function fuzzyCMeans2(options) {
+ var cy = this.cy();
+ var nodes2 = this.nodes();
+ var opts = setOptions$2(options);
+ var clusters;
+ var centroids;
+ var U;
+ var _U;
+ var weight;
+ _U = new Array(nodes2.length);
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ _U[i2] = new Array(opts.k);
+ }
+ U = new Array(nodes2.length);
+ for (var _i3 = 0; _i3 < nodes2.length; _i3++) {
+ U[_i3] = new Array(opts.k);
+ }
+ for (var _i4 = 0; _i4 < nodes2.length; _i4++) {
+ var total = 0;
+ for (var j = 0; j < opts.k; j++) {
+ U[_i4][j] = Math.random();
+ total += U[_i4][j];
+ }
+ for (var _j = 0; _j < opts.k; _j++) {
+ U[_i4][_j] = U[_i4][_j] / total;
+ }
+ }
+ centroids = new Array(opts.k);
+ for (var _i5 = 0; _i5 < opts.k; _i5++) {
+ centroids[_i5] = new Array(opts.attributes.length);
+ }
+ weight = new Array(nodes2.length);
+ for (var _i6 = 0; _i6 < nodes2.length; _i6++) {
+ weight[_i6] = new Array(opts.k);
+ }
+ var isStillMoving = true;
+ var iterations = 0;
+ while (isStillMoving && iterations < opts.maxIterations) {
+ isStillMoving = false;
+ updateCentroids(centroids, nodes2, U, weight, opts);
+ updateMembership(U, _U, centroids, nodes2, opts);
+ if (!haveMatricesConverged(U, _U, opts.sensitivityThreshold)) {
+ isStillMoving = true;
+ }
+ iterations++;
+ }
+ clusters = assign$1(nodes2, U, opts, cy);
+ return {
+ clusters,
+ degreeOfMembership: U
+ };
+ };
+ var kClustering = {
+ kMeans,
+ kMedoids,
+ fuzzyCMeans,
+ fcm: fuzzyCMeans
+ };
+ var defaults$a = defaults$g({
+ distance: "euclidean",
+ // distance metric to compare nodes
+ linkage: "min",
+ // linkage criterion : how to determine the distance between clusters of nodes
+ mode: "threshold",
+ // mode:'threshold' => clusters must be threshold distance apart
+ threshold: Infinity,
+ // the distance threshold
+ // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters
+ addDendrogram: false,
+ // whether to add the dendrogram to the graph for viz
+ dendrogramDepth: 0,
+ // depth at which dendrogram branches are merged into the returned clusters
+ attributes: []
+ // array of attr functions
+ });
+ var linkageAliases = {
+ "single": "min",
+ "complete": "max"
+ };
+ var setOptions$1 = function setOptions2(options) {
+ var opts = defaults$a(options);
+ var preferredAlias = linkageAliases[opts.linkage];
+ if (preferredAlias != null) {
+ opts.linkage = preferredAlias;
+ }
+ return opts;
+ };
+ var mergeClosest = function mergeClosest2(clusters, index, dists, mins, opts) {
+ var minKey = 0;
+ var min2 = Infinity;
+ var dist2;
+ var attrs = opts.attributes;
+ var getDist2 = function getDist3(n1, n2) {
+ return clusteringDistance(opts.distance, attrs.length, function(i3) {
+ return attrs[i3](n1);
+ }, function(i3) {
+ return attrs[i3](n2);
+ }, n1, n2);
+ };
+ for (var i2 = 0; i2 < clusters.length; i2++) {
+ var key = clusters[i2].key;
+ var _dist = dists[key][mins[key]];
+ if (_dist < min2) {
+ minKey = key;
+ min2 = _dist;
+ }
+ }
+ if (opts.mode === "threshold" && min2 >= opts.threshold || opts.mode === "dendrogram" && clusters.length === 1) {
+ return false;
+ }
+ var c1 = index[minKey];
+ var c2 = index[mins[minKey]];
+ var merged;
+ if (opts.mode === "dendrogram") {
+ merged = {
+ left: c1,
+ right: c2,
+ key: c1.key
+ };
+ } else {
+ merged = {
+ value: c1.value.concat(c2.value),
+ key: c1.key
+ };
+ }
+ clusters[c1.index] = merged;
+ clusters.splice(c2.index, 1);
+ index[c1.key] = merged;
+ for (var _i = 0; _i < clusters.length; _i++) {
+ var cur = clusters[_i];
+ if (c1.key === cur.key) {
+ dist2 = Infinity;
+ } else if (opts.linkage === "min") {
+ dist2 = dists[c1.key][cur.key];
+ if (dists[c1.key][cur.key] > dists[c2.key][cur.key]) {
+ dist2 = dists[c2.key][cur.key];
+ }
+ } else if (opts.linkage === "max") {
+ dist2 = dists[c1.key][cur.key];
+ if (dists[c1.key][cur.key] < dists[c2.key][cur.key]) {
+ dist2 = dists[c2.key][cur.key];
+ }
+ } else if (opts.linkage === "mean") {
+ dist2 = (dists[c1.key][cur.key] * c1.size + dists[c2.key][cur.key] * c2.size) / (c1.size + c2.size);
+ } else {
+ if (opts.mode === "dendrogram")
+ dist2 = getDist2(cur.value, c1.value);
+ else
+ dist2 = getDist2(cur.value[0], c1.value[0]);
+ }
+ dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist2;
+ }
+ for (var _i2 = 0; _i2 < clusters.length; _i2++) {
+ var key1 = clusters[_i2].key;
+ if (mins[key1] === c1.key || mins[key1] === c2.key) {
+ var _min = key1;
+ for (var j = 0; j < clusters.length; j++) {
+ var key2 = clusters[j].key;
+ if (dists[key1][key2] < dists[key1][_min]) {
+ _min = key2;
+ }
+ }
+ mins[key1] = _min;
+ }
+ clusters[_i2].index = _i2;
+ }
+ c1.key = c2.key = c1.index = c2.index = null;
+ return true;
+ };
+ var getAllChildren = function getAllChildren2(root2, arr, cy) {
+ if (!root2)
+ return;
+ if (root2.value) {
+ arr.push(root2.value);
+ } else {
+ if (root2.left)
+ getAllChildren2(root2.left, arr);
+ if (root2.right)
+ getAllChildren2(root2.right, arr);
+ }
+ };
+ var buildDendrogram = function buildDendrogram2(root2, cy) {
+ if (!root2)
+ return "";
+ if (root2.left && root2.right) {
+ var leftStr = buildDendrogram2(root2.left, cy);
+ var rightStr = buildDendrogram2(root2.right, cy);
+ var node = cy.add({
+ group: "nodes",
+ data: {
+ id: leftStr + "," + rightStr
+ }
+ });
+ cy.add({
+ group: "edges",
+ data: {
+ source: leftStr,
+ target: node.id()
+ }
+ });
+ cy.add({
+ group: "edges",
+ data: {
+ source: rightStr,
+ target: node.id()
+ }
+ });
+ return node.id();
+ } else if (root2.value) {
+ return root2.value.id();
+ }
+ };
+ var buildClustersFromTree = function buildClustersFromTree2(root2, k, cy) {
+ if (!root2)
+ return [];
+ var left = [], right = [], leaves = [];
+ if (k === 0) {
+ if (root2.left)
+ getAllChildren(root2.left, left);
+ if (root2.right)
+ getAllChildren(root2.right, right);
+ leaves = left.concat(right);
+ return [cy.collection(leaves)];
+ } else if (k === 1) {
+ if (root2.value) {
+ return [cy.collection(root2.value)];
+ } else {
+ if (root2.left)
+ getAllChildren(root2.left, left);
+ if (root2.right)
+ getAllChildren(root2.right, right);
+ return [cy.collection(left), cy.collection(right)];
+ }
+ } else {
+ if (root2.value) {
+ return [cy.collection(root2.value)];
+ } else {
+ if (root2.left)
+ left = buildClustersFromTree2(root2.left, k - 1, cy);
+ if (root2.right)
+ right = buildClustersFromTree2(root2.right, k - 1, cy);
+ return left.concat(right);
+ }
+ }
+ };
+ var hierarchicalClustering = function hierarchicalClustering2(options) {
+ var cy = this.cy();
+ var nodes2 = this.nodes();
+ var opts = setOptions$1(options);
+ var attrs = opts.attributes;
+ var getDist2 = function getDist3(n1, n2) {
+ return clusteringDistance(opts.distance, attrs.length, function(i3) {
+ return attrs[i3](n1);
+ }, function(i3) {
+ return attrs[i3](n2);
+ }, n1, n2);
+ };
+ var clusters = [];
+ var dists = [];
+ var mins = [];
+ var index = [];
+ for (var n = 0; n < nodes2.length; n++) {
+ var cluster = {
+ value: opts.mode === "dendrogram" ? nodes2[n] : [nodes2[n]],
+ key: n,
+ index: n
+ };
+ clusters[n] = cluster;
+ index[n] = cluster;
+ dists[n] = [];
+ mins[n] = 0;
+ }
+ for (var i2 = 0; i2 < clusters.length; i2++) {
+ for (var j = 0; j <= i2; j++) {
+ var dist2 = void 0;
+ if (opts.mode === "dendrogram") {
+ dist2 = i2 === j ? Infinity : getDist2(clusters[i2].value, clusters[j].value);
+ } else {
+ dist2 = i2 === j ? Infinity : getDist2(clusters[i2].value[0], clusters[j].value[0]);
+ }
+ dists[i2][j] = dist2;
+ dists[j][i2] = dist2;
+ if (dist2 < dists[i2][mins[i2]]) {
+ mins[i2] = j;
+ }
+ }
+ }
+ var merged = mergeClosest(clusters, index, dists, mins, opts);
+ while (merged) {
+ merged = mergeClosest(clusters, index, dists, mins, opts);
+ }
+ var retClusters;
+ if (opts.mode === "dendrogram") {
+ retClusters = buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy);
+ if (opts.addDendrogram)
+ buildDendrogram(clusters[0], cy);
+ } else {
+ retClusters = new Array(clusters.length);
+ clusters.forEach(function(cluster2, i3) {
+ cluster2.key = cluster2.index = null;
+ retClusters[i3] = cy.collection(cluster2.value);
+ });
+ }
+ return retClusters;
+ };
+ var hierarchicalClustering$1 = {
+ hierarchicalClustering,
+ hca: hierarchicalClustering
+ };
+ var defaults$9 = defaults$g({
+ distance: "euclidean",
+ // distance metric to compare attributes between two nodes
+ preference: "median",
+ // suitability of a data point to serve as an exemplar
+ damping: 0.8,
+ // damping factor between [0.5, 1)
+ maxIterations: 1e3,
+ // max number of iterations to run
+ minIterations: 100,
+ // min number of iterations to run in order for clustering to stop
+ attributes: [
+ // functions to quantify the similarity between any two points
+ // e.g. node => node.data('weight')
+ ]
+ });
+ var setOptions = function setOptions2(options) {
+ var dmp = options.damping;
+ var pref = options.preference;
+ if (!(0.5 <= dmp && dmp < 1)) {
+ error("Damping must range on [0.5, 1). Got: ".concat(dmp));
+ }
+ var validPrefs = ["median", "mean", "min", "max"];
+ if (!(validPrefs.some(function(v) {
+ return v === pref;
+ }) || number$1(pref))) {
+ error("Preference must be one of [".concat(validPrefs.map(function(p2) {
+ return "'".concat(p2, "'");
+ }).join(", "), "] or a number. Got: ").concat(pref));
+ }
+ return defaults$9(options);
+ };
+ var getSimilarity = function getSimilarity2(type, n1, n2, attributes) {
+ var attr = function attr2(n, i2) {
+ return attributes[i2](n);
+ };
+ return -clusteringDistance(type, attributes.length, function(i2) {
+ return attr(n1, i2);
+ }, function(i2) {
+ return attr(n2, i2);
+ }, n1, n2);
+ };
+ var getPreference = function getPreference2(S, preference) {
+ var p2 = null;
+ if (preference === "median") {
+ p2 = median(S);
+ } else if (preference === "mean") {
+ p2 = mean(S);
+ } else if (preference === "min") {
+ p2 = min(S);
+ } else if (preference === "max") {
+ p2 = max(S);
+ } else {
+ p2 = preference;
+ }
+ return p2;
+ };
+ var findExemplars = function findExemplars2(n, R, A) {
+ var indices = [];
+ for (var i2 = 0; i2 < n; i2++) {
+ if (R[i2 * n + i2] + A[i2 * n + i2] > 0) {
+ indices.push(i2);
+ }
+ }
+ return indices;
+ };
+ var assignClusters = function assignClusters2(n, S, exemplars) {
+ var clusters = [];
+ for (var i2 = 0; i2 < n; i2++) {
+ var index = -1;
+ var max2 = -Infinity;
+ for (var ei = 0; ei < exemplars.length; ei++) {
+ var e = exemplars[ei];
+ if (S[i2 * n + e] > max2) {
+ index = e;
+ max2 = S[i2 * n + e];
+ }
+ }
+ if (index > 0) {
+ clusters.push(index);
+ }
+ }
+ for (var _ei = 0; _ei < exemplars.length; _ei++) {
+ clusters[exemplars[_ei]] = exemplars[_ei];
+ }
+ return clusters;
+ };
+ var assign = function assign2(n, S, exemplars) {
+ var clusters = assignClusters(n, S, exemplars);
+ for (var ei = 0; ei < exemplars.length; ei++) {
+ var ii = [];
+ for (var c = 0; c < clusters.length; c++) {
+ if (clusters[c] === exemplars[ei]) {
+ ii.push(c);
+ }
+ }
+ var maxI = -1;
+ var maxSum = -Infinity;
+ for (var i2 = 0; i2 < ii.length; i2++) {
+ var sum = 0;
+ for (var j = 0; j < ii.length; j++) {
+ sum += S[ii[j] * n + ii[i2]];
+ }
+ if (sum > maxSum) {
+ maxI = i2;
+ maxSum = sum;
+ }
+ }
+ exemplars[ei] = ii[maxI];
+ }
+ clusters = assignClusters(n, S, exemplars);
+ return clusters;
+ };
+ var affinityPropagation = function affinityPropagation2(options) {
+ var cy = this.cy();
+ var nodes2 = this.nodes();
+ var opts = setOptions(options);
+ var id2position = {};
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ id2position[nodes2[i2].id()] = i2;
+ }
+ var n;
+ var n2;
+ var S;
+ var p2;
+ var R;
+ var A;
+ n = nodes2.length;
+ n2 = n * n;
+ S = new Array(n2);
+ for (var _i = 0; _i < n2; _i++) {
+ S[_i] = -Infinity;
+ }
+ for (var _i2 = 0; _i2 < n; _i2++) {
+ for (var j = 0; j < n; j++) {
+ if (_i2 !== j) {
+ S[_i2 * n + j] = getSimilarity(opts.distance, nodes2[_i2], nodes2[j], opts.attributes);
+ }
+ }
+ }
+ p2 = getPreference(S, opts.preference);
+ for (var _i3 = 0; _i3 < n; _i3++) {
+ S[_i3 * n + _i3] = p2;
+ }
+ R = new Array(n2);
+ for (var _i4 = 0; _i4 < n2; _i4++) {
+ R[_i4] = 0;
+ }
+ A = new Array(n2);
+ for (var _i5 = 0; _i5 < n2; _i5++) {
+ A[_i5] = 0;
+ }
+ var old = new Array(n);
+ var Rp = new Array(n);
+ var se = new Array(n);
+ for (var _i6 = 0; _i6 < n; _i6++) {
+ old[_i6] = 0;
+ Rp[_i6] = 0;
+ se[_i6] = 0;
+ }
+ var e = new Array(n * opts.minIterations);
+ for (var _i7 = 0; _i7 < e.length; _i7++) {
+ e[_i7] = 0;
+ }
+ var iter;
+ for (iter = 0; iter < opts.maxIterations; iter++) {
+ for (var _i8 = 0; _i8 < n; _i8++) {
+ var max2 = -Infinity, max22 = -Infinity, maxI = -1, AS = 0;
+ for (var _j = 0; _j < n; _j++) {
+ old[_j] = R[_i8 * n + _j];
+ AS = A[_i8 * n + _j] + S[_i8 * n + _j];
+ if (AS >= max2) {
+ max22 = max2;
+ max2 = AS;
+ maxI = _j;
+ } else if (AS > max22) {
+ max22 = AS;
+ }
+ }
+ for (var _j2 = 0; _j2 < n; _j2++) {
+ R[_i8 * n + _j2] = (1 - opts.damping) * (S[_i8 * n + _j2] - max2) + opts.damping * old[_j2];
+ }
+ R[_i8 * n + maxI] = (1 - opts.damping) * (S[_i8 * n + maxI] - max22) + opts.damping * old[maxI];
+ }
+ for (var _i9 = 0; _i9 < n; _i9++) {
+ var sum = 0;
+ for (var _j3 = 0; _j3 < n; _j3++) {
+ old[_j3] = A[_j3 * n + _i9];
+ Rp[_j3] = Math.max(0, R[_j3 * n + _i9]);
+ sum += Rp[_j3];
+ }
+ sum -= Rp[_i9];
+ Rp[_i9] = R[_i9 * n + _i9];
+ sum += Rp[_i9];
+ for (var _j4 = 0; _j4 < n; _j4++) {
+ A[_j4 * n + _i9] = (1 - opts.damping) * Math.min(0, sum - Rp[_j4]) + opts.damping * old[_j4];
+ }
+ A[_i9 * n + _i9] = (1 - opts.damping) * (sum - Rp[_i9]) + opts.damping * old[_i9];
+ }
+ var K2 = 0;
+ for (var _i10 = 0; _i10 < n; _i10++) {
+ var E = A[_i10 * n + _i10] + R[_i10 * n + _i10] > 0 ? 1 : 0;
+ e[iter % opts.minIterations * n + _i10] = E;
+ K2 += E;
+ }
+ if (K2 > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) {
+ var _sum = 0;
+ for (var _i11 = 0; _i11 < n; _i11++) {
+ se[_i11] = 0;
+ for (var _j5 = 0; _j5 < opts.minIterations; _j5++) {
+ se[_i11] += e[_j5 * n + _i11];
+ }
+ if (se[_i11] === 0 || se[_i11] === opts.minIterations) {
+ _sum++;
+ }
+ }
+ if (_sum === n) {
+ break;
+ }
+ }
+ }
+ var exemplarsIndices = findExemplars(n, R, A);
+ var clusterIndices = assign(n, S, exemplarsIndices);
+ var clusters = {};
+ for (var c = 0; c < exemplarsIndices.length; c++) {
+ clusters[exemplarsIndices[c]] = [];
+ }
+ for (var _i12 = 0; _i12 < nodes2.length; _i12++) {
+ var pos = id2position[nodes2[_i12].id()];
+ var clusterIndex = clusterIndices[pos];
+ if (clusterIndex != null) {
+ clusters[clusterIndex].push(nodes2[_i12]);
+ }
+ }
+ var retClusters = new Array(exemplarsIndices.length);
+ for (var _c = 0; _c < exemplarsIndices.length; _c++) {
+ retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]);
+ }
+ return retClusters;
+ };
+ var affinityPropagation$1 = {
+ affinityPropagation,
+ ap: affinityPropagation
+ };
+ var hierholzerDefaults = defaults$g({
+ root: void 0,
+ directed: false
+ });
+ var elesfn$k = {
+ hierholzer: function hierholzer(options) {
+ if (!plainObject(options)) {
+ var args = arguments;
+ options = {
+ root: args[0],
+ directed: args[1]
+ };
+ }
+ var _hierholzerDefaults = hierholzerDefaults(options), root2 = _hierholzerDefaults.root, directed = _hierholzerDefaults.directed;
+ var eles = this;
+ var dflag = false;
+ var oddIn;
+ var oddOut;
+ var startVertex;
+ if (root2)
+ startVertex = string(root2) ? this.filter(root2)[0].id() : root2[0].id();
+ var nodes2 = {};
+ var edges = {};
+ if (directed) {
+ eles.forEach(function(ele) {
+ var id = ele.id();
+ if (ele.isNode()) {
+ var ind = ele.indegree(true);
+ var outd = ele.outdegree(true);
+ var d1 = ind - outd;
+ var d2 = outd - ind;
+ if (d1 == 1) {
+ if (oddIn)
+ dflag = true;
+ else
+ oddIn = id;
+ } else if (d2 == 1) {
+ if (oddOut)
+ dflag = true;
+ else
+ oddOut = id;
+ } else if (d2 > 1 || d1 > 1) {
+ dflag = true;
+ }
+ nodes2[id] = [];
+ ele.outgoers().forEach(function(e) {
+ if (e.isEdge())
+ nodes2[id].push(e.id());
+ });
+ } else {
+ edges[id] = [void 0, ele.target().id()];
+ }
+ });
+ } else {
+ eles.forEach(function(ele) {
+ var id = ele.id();
+ if (ele.isNode()) {
+ var d2 = ele.degree(true);
+ if (d2 % 2) {
+ if (!oddIn)
+ oddIn = id;
+ else if (!oddOut)
+ oddOut = id;
+ else
+ dflag = true;
+ }
+ nodes2[id] = [];
+ ele.connectedEdges().forEach(function(e) {
+ return nodes2[id].push(e.id());
+ });
+ } else {
+ edges[id] = [ele.source().id(), ele.target().id()];
+ }
+ });
+ }
+ var result = {
+ found: false,
+ trail: void 0
+ };
+ if (dflag)
+ return result;
+ else if (oddOut && oddIn) {
+ if (directed) {
+ if (startVertex && oddOut != startVertex) {
+ return result;
+ }
+ startVertex = oddOut;
+ } else {
+ if (startVertex && oddOut != startVertex && oddIn != startVertex) {
+ return result;
+ } else if (!startVertex) {
+ startVertex = oddOut;
+ }
+ }
+ } else {
+ if (!startVertex)
+ startVertex = eles[0].id();
+ }
+ var walk = function walk2(v) {
+ var currentNode = v;
+ var subtour2 = [v];
+ var adj, adjTail, adjHead;
+ while (nodes2[currentNode].length) {
+ adj = nodes2[currentNode].shift();
+ adjTail = edges[adj][0];
+ adjHead = edges[adj][1];
+ if (currentNode != adjHead) {
+ nodes2[adjHead] = nodes2[adjHead].filter(function(e) {
+ return e != adj;
+ });
+ currentNode = adjHead;
+ } else if (!directed && currentNode != adjTail) {
+ nodes2[adjTail] = nodes2[adjTail].filter(function(e) {
+ return e != adj;
+ });
+ currentNode = adjTail;
+ }
+ subtour2.unshift(adj);
+ subtour2.unshift(currentNode);
+ }
+ return subtour2;
+ };
+ var trail = [];
+ var subtour = [];
+ subtour = walk(startVertex);
+ while (subtour.length != 1) {
+ if (nodes2[subtour[0]].length == 0) {
+ trail.unshift(eles.getElementById(subtour.shift()));
+ trail.unshift(eles.getElementById(subtour.shift()));
+ } else {
+ subtour = walk(subtour.shift()).concat(subtour);
+ }
+ }
+ trail.unshift(eles.getElementById(subtour.shift()));
+ for (var d in nodes2) {
+ if (nodes2[d].length) {
+ return result;
+ }
+ }
+ result.found = true;
+ result.trail = this.spawn(trail, true);
+ return result;
+ }
+ };
+ var hopcroftTarjanBiconnected = function hopcroftTarjanBiconnected2() {
+ var eles = this;
+ var nodes2 = {};
+ var id = 0;
+ var edgeCount = 0;
+ var components = [];
+ var stack = [];
+ var visitedEdges = {};
+ var buildComponent = function buildComponent2(x, y) {
+ var i2 = stack.length - 1;
+ var cutset = [];
+ var component = eles.spawn();
+ while (stack[i2].x != x || stack[i2].y != y) {
+ cutset.push(stack.pop().edge);
+ i2--;
+ }
+ cutset.push(stack.pop().edge);
+ cutset.forEach(function(edge) {
+ var connectedNodes = edge.connectedNodes().intersection(eles);
+ component.merge(edge);
+ connectedNodes.forEach(function(node) {
+ var nodeId = node.id();
+ var connectedEdges = node.connectedEdges().intersection(eles);
+ component.merge(node);
+ if (!nodes2[nodeId].cutVertex) {
+ component.merge(connectedEdges);
+ } else {
+ component.merge(connectedEdges.filter(function(edge2) {
+ return edge2.isLoop();
+ }));
+ }
+ });
+ });
+ components.push(component);
+ };
+ var biconnectedSearch = function biconnectedSearch2(root2, currentNode, parent) {
+ if (root2 === parent)
+ edgeCount += 1;
+ nodes2[currentNode] = {
+ id,
+ low: id++,
+ cutVertex: false
+ };
+ var edges = eles.getElementById(currentNode).connectedEdges().intersection(eles);
+ if (edges.size() === 0) {
+ components.push(eles.spawn(eles.getElementById(currentNode)));
+ } else {
+ var sourceId, targetId, otherNodeId, edgeId;
+ edges.forEach(function(edge) {
+ sourceId = edge.source().id();
+ targetId = edge.target().id();
+ otherNodeId = sourceId === currentNode ? targetId : sourceId;
+ if (otherNodeId !== parent) {
+ edgeId = edge.id();
+ if (!visitedEdges[edgeId]) {
+ visitedEdges[edgeId] = true;
+ stack.push({
+ x: currentNode,
+ y: otherNodeId,
+ edge
+ });
+ }
+ if (!(otherNodeId in nodes2)) {
+ biconnectedSearch2(root2, otherNodeId, currentNode);
+ nodes2[currentNode].low = Math.min(nodes2[currentNode].low, nodes2[otherNodeId].low);
+ if (nodes2[currentNode].id <= nodes2[otherNodeId].low) {
+ nodes2[currentNode].cutVertex = true;
+ buildComponent(currentNode, otherNodeId);
+ }
+ } else {
+ nodes2[currentNode].low = Math.min(nodes2[currentNode].low, nodes2[otherNodeId].id);
+ }
+ }
+ });
+ }
+ };
+ eles.forEach(function(ele) {
+ if (ele.isNode()) {
+ var nodeId = ele.id();
+ if (!(nodeId in nodes2)) {
+ edgeCount = 0;
+ biconnectedSearch(nodeId, nodeId);
+ nodes2[nodeId].cutVertex = edgeCount > 1;
+ }
+ }
+ });
+ var cutVertices = Object.keys(nodes2).filter(function(id2) {
+ return nodes2[id2].cutVertex;
+ }).map(function(id2) {
+ return eles.getElementById(id2);
+ });
+ return {
+ cut: eles.spawn(cutVertices),
+ components
+ };
+ };
+ var hopcroftTarjanBiconnected$1 = {
+ hopcroftTarjanBiconnected,
+ htbc: hopcroftTarjanBiconnected,
+ htb: hopcroftTarjanBiconnected,
+ hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected
+ };
+ var tarjanStronglyConnected = function tarjanStronglyConnected2() {
+ var eles = this;
+ var nodes2 = {};
+ var index = 0;
+ var components = [];
+ var stack = [];
+ var cut = eles.spawn(eles);
+ var stronglyConnectedSearch = function stronglyConnectedSearch2(sourceNodeId) {
+ stack.push(sourceNodeId);
+ nodes2[sourceNodeId] = {
+ index,
+ low: index++,
+ explored: false
+ };
+ var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles);
+ connectedEdges.forEach(function(edge) {
+ var targetNodeId = edge.target().id();
+ if (targetNodeId !== sourceNodeId) {
+ if (!(targetNodeId in nodes2)) {
+ stronglyConnectedSearch2(targetNodeId);
+ }
+ if (!nodes2[targetNodeId].explored) {
+ nodes2[sourceNodeId].low = Math.min(nodes2[sourceNodeId].low, nodes2[targetNodeId].low);
+ }
+ }
+ });
+ if (nodes2[sourceNodeId].index === nodes2[sourceNodeId].low) {
+ var componentNodes = eles.spawn();
+ for (; ; ) {
+ var nodeId = stack.pop();
+ componentNodes.merge(eles.getElementById(nodeId));
+ nodes2[nodeId].low = nodes2[sourceNodeId].index;
+ nodes2[nodeId].explored = true;
+ if (nodeId === sourceNodeId) {
+ break;
+ }
+ }
+ var componentEdges = componentNodes.edgesWith(componentNodes);
+ var component = componentNodes.merge(componentEdges);
+ components.push(component);
+ cut = cut.difference(component);
+ }
+ };
+ eles.forEach(function(ele) {
+ if (ele.isNode()) {
+ var nodeId = ele.id();
+ if (!(nodeId in nodes2)) {
+ stronglyConnectedSearch(nodeId);
+ }
+ }
+ });
+ return {
+ cut,
+ components
+ };
+ };
+ var tarjanStronglyConnected$1 = {
+ tarjanStronglyConnected,
+ tsc: tarjanStronglyConnected,
+ tscc: tarjanStronglyConnected,
+ tarjanStronglyConnectedComponents: tarjanStronglyConnected
+ };
+ var elesfn$j = {};
+ [elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function(props) {
+ extend(elesfn$j, props);
+ });
+ /*!
+ Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
+ Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
+ Licensed under The MIT License (http://opensource.org/licenses/MIT)
+ */
+ var STATE_PENDING = 0;
+ var STATE_FULFILLED = 1;
+ var STATE_REJECTED = 2;
+ var api = function api2(executor) {
+ if (!(this instanceof api2))
+ return new api2(executor);
+ this.id = "Thenable/1.0.7";
+ this.state = STATE_PENDING;
+ this.fulfillValue = void 0;
+ this.rejectReason = void 0;
+ this.onFulfilled = [];
+ this.onRejected = [];
+ this.proxy = {
+ then: this.then.bind(this)
+ };
+ if (typeof executor === "function")
+ executor.call(this, this.fulfill.bind(this), this.reject.bind(this));
+ };
+ api.prototype = {
+ /* promise resolving methods */
+ fulfill: function fulfill(value) {
+ return deliver(this, STATE_FULFILLED, "fulfillValue", value);
+ },
+ reject: function reject(value) {
+ return deliver(this, STATE_REJECTED, "rejectReason", value);
+ },
+ /* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */
+ then: function then(onFulfilled, onRejected) {
+ var curr = this;
+ var next2 = new api();
+ curr.onFulfilled.push(resolver(onFulfilled, next2, "fulfill"));
+ curr.onRejected.push(resolver(onRejected, next2, "reject"));
+ execute(curr);
+ return next2.proxy;
+ }
+ };
+ var deliver = function deliver2(curr, state, name2, value) {
+ if (curr.state === STATE_PENDING) {
+ curr.state = state;
+ curr[name2] = value;
+ execute(curr);
+ }
+ return curr;
+ };
+ var execute = function execute2(curr) {
+ if (curr.state === STATE_FULFILLED)
+ execute_handlers(curr, "onFulfilled", curr.fulfillValue);
+ else if (curr.state === STATE_REJECTED)
+ execute_handlers(curr, "onRejected", curr.rejectReason);
+ };
+ var execute_handlers = function execute_handlers2(curr, name2, value) {
+ if (curr[name2].length === 0)
+ return;
+ var handlers = curr[name2];
+ curr[name2] = [];
+ var func = function func2() {
+ for (var i2 = 0; i2 < handlers.length; i2++) {
+ handlers[i2](value);
+ }
+ };
+ if (typeof setImmediate === "function")
+ setImmediate(func);
+ else
+ setTimeout(func, 0);
+ };
+ var resolver = function resolver2(cb, next2, method) {
+ return function(value) {
+ if (typeof cb !== "function")
+ next2[method].call(next2, value);
+ else {
+ var result;
+ try {
+ result = cb(value);
+ } catch (e) {
+ next2.reject(e);
+ return;
+ }
+ resolve(next2, result);
+ }
+ };
+ };
+ var resolve = function resolve2(promise2, x) {
+ if (promise2 === x || promise2.proxy === x) {
+ promise2.reject(new TypeError("cannot resolve promise with itself"));
+ return;
+ }
+ var then;
+ if (_typeof(x) === "object" && x !== null || typeof x === "function") {
+ try {
+ then = x.then;
+ } catch (e) {
+ promise2.reject(e);
+ return;
+ }
+ }
+ if (typeof then === "function") {
+ var resolved = false;
+ try {
+ then.call(
+ x,
+ /* resolvePromise */
+ /* [Promises/A+ 2.3.3.3.1] */
+ function(y) {
+ if (resolved)
+ return;
+ resolved = true;
+ if (y === x)
+ promise2.reject(new TypeError("circular thenable chain"));
+ else
+ resolve2(promise2, y);
+ },
+ /* rejectPromise */
+ /* [Promises/A+ 2.3.3.3.2] */
+ function(r) {
+ if (resolved)
+ return;
+ resolved = true;
+ promise2.reject(r);
+ }
+ );
+ } catch (e) {
+ if (!resolved)
+ promise2.reject(e);
+ }
+ return;
+ }
+ promise2.fulfill(x);
+ };
+ api.all = function(ps) {
+ return new api(function(resolveAll, rejectAll) {
+ var vals = new Array(ps.length);
+ var doneCount = 0;
+ var fulfill = function fulfill2(i3, val) {
+ vals[i3] = val;
+ doneCount++;
+ if (doneCount === ps.length) {
+ resolveAll(vals);
+ }
+ };
+ for (var i2 = 0; i2 < ps.length; i2++) {
+ (function(i3) {
+ var p2 = ps[i3];
+ var isPromise = p2 != null && p2.then != null;
+ if (isPromise) {
+ p2.then(function(val2) {
+ fulfill(i3, val2);
+ }, function(err) {
+ rejectAll(err);
+ });
+ } else {
+ var val = p2;
+ fulfill(i3, val);
+ }
+ })(i2);
+ }
+ });
+ };
+ api.resolve = function(val) {
+ return new api(function(resolve2, reject) {
+ resolve2(val);
+ });
+ };
+ api.reject = function(val) {
+ return new api(function(resolve2, reject) {
+ reject(val);
+ });
+ };
+ var Promise$1 = typeof Promise !== "undefined" ? Promise : api;
+ var Animation = function Animation2(target, opts, opts2) {
+ var isCore = core(target);
+ var isEle = !isCore;
+ var _p = this._private = extend({
+ duration: 1e3
+ }, opts, opts2);
+ _p.target = target;
+ _p.style = _p.style || _p.css;
+ _p.started = false;
+ _p.playing = false;
+ _p.hooked = false;
+ _p.applying = false;
+ _p.progress = 0;
+ _p.completes = [];
+ _p.frames = [];
+ if (_p.complete && fn$6(_p.complete)) {
+ _p.completes.push(_p.complete);
+ }
+ if (isEle) {
+ var pos = target.position();
+ _p.startPosition = _p.startPosition || {
+ x: pos.x,
+ y: pos.y
+ };
+ _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style);
+ }
+ if (isCore) {
+ var pan = target.pan();
+ _p.startPan = {
+ x: pan.x,
+ y: pan.y
+ };
+ _p.startZoom = target.zoom();
+ }
+ this.length = 1;
+ this[0] = this;
+ };
+ var anifn = Animation.prototype;
+ extend(anifn, {
+ instanceString: function instanceString() {
+ return "animation";
+ },
+ hook: function hook() {
+ var _p = this._private;
+ if (!_p.hooked) {
+ var q;
+ var tAni = _p.target._private.animation;
+ if (_p.queue) {
+ q = tAni.queue;
+ } else {
+ q = tAni.current;
+ }
+ q.push(this);
+ if (elementOrCollection(_p.target)) {
+ _p.target.cy().addToAnimationPool(_p.target);
+ }
+ _p.hooked = true;
+ }
+ return this;
+ },
+ play: function play() {
+ var _p = this._private;
+ if (_p.progress === 1) {
+ _p.progress = 0;
+ }
+ _p.playing = true;
+ _p.started = false;
+ _p.stopped = false;
+ this.hook();
+ return this;
+ },
+ playing: function playing() {
+ return this._private.playing;
+ },
+ apply: function apply() {
+ var _p = this._private;
+ _p.applying = true;
+ _p.started = false;
+ _p.stopped = false;
+ this.hook();
+ return this;
+ },
+ applying: function applying() {
+ return this._private.applying;
+ },
+ pause: function pause() {
+ var _p = this._private;
+ _p.playing = false;
+ _p.started = false;
+ return this;
+ },
+ stop: function stop() {
+ var _p = this._private;
+ _p.playing = false;
+ _p.started = false;
+ _p.stopped = true;
+ return this;
+ },
+ rewind: function rewind() {
+ return this.progress(0);
+ },
+ fastforward: function fastforward() {
+ return this.progress(1);
+ },
+ time: function time(t) {
+ var _p = this._private;
+ if (t === void 0) {
+ return _p.progress * _p.duration;
+ } else {
+ return this.progress(t / _p.duration);
+ }
+ },
+ progress: function progress(p2) {
+ var _p = this._private;
+ var wasPlaying = _p.playing;
+ if (p2 === void 0) {
+ return _p.progress;
+ } else {
+ if (wasPlaying) {
+ this.pause();
+ }
+ _p.progress = p2;
+ _p.started = false;
+ if (wasPlaying) {
+ this.play();
+ }
+ }
+ return this;
+ },
+ completed: function completed() {
+ return this._private.progress === 1;
+ },
+ reverse: function reverse() {
+ var _p = this._private;
+ var wasPlaying = _p.playing;
+ if (wasPlaying) {
+ this.pause();
+ }
+ _p.progress = 1 - _p.progress;
+ _p.started = false;
+ var swap = function swap2(a, b) {
+ var _pa = _p[a];
+ if (_pa == null) {
+ return;
+ }
+ _p[a] = _p[b];
+ _p[b] = _pa;
+ };
+ swap("zoom", "startZoom");
+ swap("pan", "startPan");
+ swap("position", "startPosition");
+ if (_p.style) {
+ for (var i2 = 0; i2 < _p.style.length; i2++) {
+ var prop = _p.style[i2];
+ var name2 = prop.name;
+ var startStyleProp = _p.startStyle[name2];
+ _p.startStyle[name2] = prop;
+ _p.style[i2] = startStyleProp;
+ }
+ }
+ if (wasPlaying) {
+ this.play();
+ }
+ return this;
+ },
+ promise: function promise2(type) {
+ var _p = this._private;
+ var arr;
+ switch (type) {
+ case "frame":
+ arr = _p.frames;
+ break;
+ default:
+ case "complete":
+ case "completed":
+ arr = _p.completes;
+ }
+ return new Promise$1(function(resolve2, reject) {
+ arr.push(function() {
+ resolve2();
+ });
+ });
+ }
+ });
+ anifn.complete = anifn.completed;
+ anifn.run = anifn.play;
+ anifn.running = anifn.playing;
+ var define$3 = {
+ animated: function animated() {
+ return function animatedImpl() {
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return false;
+ }
+ var ele = all[0];
+ if (ele) {
+ return ele._private.animation.current.length > 0;
+ }
+ };
+ },
+ // animated
+ clearQueue: function clearQueue() {
+ return function clearQueueImpl() {
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ for (var i2 = 0; i2 < all.length; i2++) {
+ var ele = all[i2];
+ ele._private.animation.queue = [];
+ }
+ return this;
+ };
+ },
+ // clearQueue
+ delay: function delay() {
+ return function delayImpl(time, complete) {
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ return this.animate({
+ delay: time,
+ duration: time,
+ complete
+ });
+ };
+ },
+ // delay
+ delayAnimation: function delayAnimation() {
+ return function delayAnimationImpl(time, complete) {
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ return this.animation({
+ delay: time,
+ duration: time,
+ complete
+ });
+ };
+ },
+ // delay
+ animation: function animation() {
+ return function animationImpl(properties, params) {
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var cy = this._private.cy || this;
+ var isCore = !selfIsArrayLike;
+ var isEles = !isCore;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ var style = cy.style();
+ properties = extend({}, properties, params);
+ var propertiesEmpty = Object.keys(properties).length === 0;
+ if (propertiesEmpty) {
+ return new Animation(all[0], properties);
+ }
+ if (properties.duration === void 0) {
+ properties.duration = 400;
+ }
+ switch (properties.duration) {
+ case "slow":
+ properties.duration = 600;
+ break;
+ case "fast":
+ properties.duration = 200;
+ break;
+ }
+ if (isEles) {
+ properties.style = style.getPropsList(properties.style || properties.css);
+ properties.css = void 0;
+ }
+ if (isEles && properties.renderedPosition != null) {
+ var rpos = properties.renderedPosition;
+ var pan = cy.pan();
+ var zoom = cy.zoom();
+ properties.position = renderedToModelPosition(rpos, zoom, pan);
+ }
+ if (isCore && properties.panBy != null) {
+ var panBy = properties.panBy;
+ var cyPan = cy.pan();
+ properties.pan = {
+ x: cyPan.x + panBy.x,
+ y: cyPan.y + panBy.y
+ };
+ }
+ var center = properties.center || properties.centre;
+ if (isCore && center != null) {
+ var centerPan = cy.getCenterPan(center.eles, properties.zoom);
+ if (centerPan != null) {
+ properties.pan = centerPan;
+ }
+ }
+ if (isCore && properties.fit != null) {
+ var fit = properties.fit;
+ var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding);
+ if (fitVp != null) {
+ properties.pan = fitVp.pan;
+ properties.zoom = fitVp.zoom;
+ }
+ }
+ if (isCore && plainObject(properties.zoom)) {
+ var vp = cy.getZoomedViewport(properties.zoom);
+ if (vp != null) {
+ if (vp.zoomed) {
+ properties.zoom = vp.zoom;
+ }
+ if (vp.panned) {
+ properties.pan = vp.pan;
+ }
+ } else {
+ properties.zoom = null;
+ }
+ }
+ return new Animation(all[0], properties);
+ };
+ },
+ // animate
+ animate: function animate() {
+ return function animateImpl(properties, params) {
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ if (params) {
+ properties = extend({}, properties, params);
+ }
+ for (var i2 = 0; i2 < all.length; i2++) {
+ var ele = all[i2];
+ var queue = ele.animated() && (properties.queue === void 0 || properties.queue);
+ var ani = ele.animation(properties, queue ? {
+ queue: true
+ } : void 0);
+ ani.play();
+ }
+ return this;
+ };
+ },
+ // animate
+ stop: function stop() {
+ return function stopImpl(clearQueue, jumpToEnd) {
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ for (var i2 = 0; i2 < all.length; i2++) {
+ var ele = all[i2];
+ var _p = ele._private;
+ var anis = _p.animation.current;
+ for (var j = 0; j < anis.length; j++) {
+ var ani = anis[j];
+ var ani_p = ani._private;
+ if (jumpToEnd) {
+ ani_p.duration = 0;
+ }
+ }
+ if (clearQueue) {
+ _p.animation.queue = [];
+ }
+ if (!jumpToEnd) {
+ _p.animation.current = [];
+ }
+ }
+ cy.notify("draw");
+ return this;
+ };
+ }
+ // stop
+ };
+ var isArray = Array.isArray;
+ var isArray_1 = isArray;
+ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/;
+ function isKey(value, object2) {
+ if (isArray_1(value)) {
+ return false;
+ }
+ var type = typeof value;
+ if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol_1(value)) {
+ return true;
+ }
+ return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object2 != null && value in Object(object2);
+ }
+ var _isKey = isKey;
+ var asyncTag = "[object AsyncFunction]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
+ function isFunction(value) {
+ if (!isObject_1(value)) {
+ return false;
+ }
+ var tag = _baseGetTag(value);
+ return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
+ }
+ var isFunction_1 = isFunction;
+ var coreJsData = _root["__core-js_shared__"];
+ var _coreJsData = coreJsData;
+ var maskSrcKey = function() {
+ var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || "");
+ return uid ? "Symbol(src)_1." + uid : "";
+ }();
+ function isMasked(func) {
+ return !!maskSrcKey && maskSrcKey in func;
+ }
+ var _isMasked = isMasked;
+ var funcProto$1 = Function.prototype;
+ var funcToString$1 = funcProto$1.toString;
+ function toSource(func) {
+ if (func != null) {
+ try {
+ return funcToString$1.call(func);
+ } catch (e) {
+ }
+ try {
+ return func + "";
+ } catch (e) {
+ }
+ }
+ return "";
+ }
+ var _toSource = toSource;
+ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
+ var reIsHostCtor = /^\[object .+?Constructor\]$/;
+ var funcProto = Function.prototype, objectProto$3 = Object.prototype;
+ var funcToString = funcProto.toString;
+ var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
+ var reIsNative = RegExp(
+ "^" + funcToString.call(hasOwnProperty$3).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
+ );
+ function baseIsNative(value) {
+ if (!isObject_1(value) || _isMasked(value)) {
+ return false;
+ }
+ var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor;
+ return pattern.test(_toSource(value));
+ }
+ var _baseIsNative = baseIsNative;
+ function getValue$1(object2, key) {
+ return object2 == null ? void 0 : object2[key];
+ }
+ var _getValue = getValue$1;
+ function getNative(object2, key) {
+ var value = _getValue(object2, key);
+ return _baseIsNative(value) ? value : void 0;
+ }
+ var _getNative = getNative;
+ var nativeCreate = _getNative(Object, "create");
+ var _nativeCreate = nativeCreate;
+ function hashClear() {
+ this.__data__ = _nativeCreate ? _nativeCreate(null) : {};
+ this.size = 0;
+ }
+ var _hashClear = hashClear;
+ function hashDelete(key) {
+ var result = this.has(key) && delete this.__data__[key];
+ this.size -= result ? 1 : 0;
+ return result;
+ }
+ var _hashDelete = hashDelete;
+ var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
+ var objectProto$2 = Object.prototype;
+ var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
+ function hashGet(key) {
+ var data2 = this.__data__;
+ if (_nativeCreate) {
+ var result = data2[key];
+ return result === HASH_UNDEFINED$1 ? void 0 : result;
+ }
+ return hasOwnProperty$2.call(data2, key) ? data2[key] : void 0;
+ }
+ var _hashGet = hashGet;
+ var objectProto$1 = Object.prototype;
+ var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
+ function hashHas(key) {
+ var data2 = this.__data__;
+ return _nativeCreate ? data2[key] !== void 0 : hasOwnProperty$1.call(data2, key);
+ }
+ var _hashHas = hashHas;
+ var HASH_UNDEFINED = "__lodash_hash_undefined__";
+ function hashSet(key, value) {
+ var data2 = this.__data__;
+ this.size += this.has(key) ? 0 : 1;
+ data2[key] = _nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
+ return this;
+ }
+ var _hashSet = hashSet;
+ function Hash(entries) {
+ var index = -1, length = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+ Hash.prototype.clear = _hashClear;
+ Hash.prototype["delete"] = _hashDelete;
+ Hash.prototype.get = _hashGet;
+ Hash.prototype.has = _hashHas;
+ Hash.prototype.set = _hashSet;
+ var _Hash = Hash;
+ function listCacheClear() {
+ this.__data__ = [];
+ this.size = 0;
+ }
+ var _listCacheClear = listCacheClear;
+ function eq(value, other) {
+ return value === other || value !== value && other !== other;
+ }
+ var eq_1 = eq;
+ function assocIndexOf(array2, key) {
+ var length = array2.length;
+ while (length--) {
+ if (eq_1(array2[length][0], key)) {
+ return length;
+ }
+ }
+ return -1;
+ }
+ var _assocIndexOf = assocIndexOf;
+ var arrayProto = Array.prototype;
+ var splice = arrayProto.splice;
+ function listCacheDelete(key) {
+ var data2 = this.__data__, index = _assocIndexOf(data2, key);
+ if (index < 0) {
+ return false;
+ }
+ var lastIndex = data2.length - 1;
+ if (index == lastIndex) {
+ data2.pop();
+ } else {
+ splice.call(data2, index, 1);
+ }
+ --this.size;
+ return true;
+ }
+ var _listCacheDelete = listCacheDelete;
+ function listCacheGet(key) {
+ var data2 = this.__data__, index = _assocIndexOf(data2, key);
+ return index < 0 ? void 0 : data2[index][1];
+ }
+ var _listCacheGet = listCacheGet;
+ function listCacheHas(key) {
+ return _assocIndexOf(this.__data__, key) > -1;
+ }
+ var _listCacheHas = listCacheHas;
+ function listCacheSet(key, value) {
+ var data2 = this.__data__, index = _assocIndexOf(data2, key);
+ if (index < 0) {
+ ++this.size;
+ data2.push([key, value]);
+ } else {
+ data2[index][1] = value;
+ }
+ return this;
+ }
+ var _listCacheSet = listCacheSet;
+ function ListCache(entries) {
+ var index = -1, length = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+ ListCache.prototype.clear = _listCacheClear;
+ ListCache.prototype["delete"] = _listCacheDelete;
+ ListCache.prototype.get = _listCacheGet;
+ ListCache.prototype.has = _listCacheHas;
+ ListCache.prototype.set = _listCacheSet;
+ var _ListCache = ListCache;
+ var Map$1 = _getNative(_root, "Map");
+ var _Map = Map$1;
+ function mapCacheClear() {
+ this.size = 0;
+ this.__data__ = {
+ "hash": new _Hash(),
+ "map": new (_Map || _ListCache)(),
+ "string": new _Hash()
+ };
+ }
+ var _mapCacheClear = mapCacheClear;
+ function isKeyable(value) {
+ var type = typeof value;
+ return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
+ }
+ var _isKeyable = isKeyable;
+ function getMapData(map, key) {
+ var data2 = map.__data__;
+ return _isKeyable(key) ? data2[typeof key == "string" ? "string" : "hash"] : data2.map;
+ }
+ var _getMapData = getMapData;
+ function mapCacheDelete(key) {
+ var result = _getMapData(this, key)["delete"](key);
+ this.size -= result ? 1 : 0;
+ return result;
+ }
+ var _mapCacheDelete = mapCacheDelete;
+ function mapCacheGet(key) {
+ return _getMapData(this, key).get(key);
+ }
+ var _mapCacheGet = mapCacheGet;
+ function mapCacheHas(key) {
+ return _getMapData(this, key).has(key);
+ }
+ var _mapCacheHas = mapCacheHas;
+ function mapCacheSet(key, value) {
+ var data2 = _getMapData(this, key), size = data2.size;
+ data2.set(key, value);
+ this.size += data2.size == size ? 0 : 1;
+ return this;
+ }
+ var _mapCacheSet = mapCacheSet;
+ function MapCache(entries) {
+ var index = -1, length = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+ MapCache.prototype.clear = _mapCacheClear;
+ MapCache.prototype["delete"] = _mapCacheDelete;
+ MapCache.prototype.get = _mapCacheGet;
+ MapCache.prototype.has = _mapCacheHas;
+ MapCache.prototype.set = _mapCacheSet;
+ var _MapCache = MapCache;
+ var FUNC_ERROR_TEXT = "Expected a function";
+ function memoize(func, resolver2) {
+ if (typeof func != "function" || resolver2 != null && typeof resolver2 != "function") {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ var memoized = function() {
+ var args = arguments, key = resolver2 ? resolver2.apply(this, args) : args[0], cache2 = memoized.cache;
+ if (cache2.has(key)) {
+ return cache2.get(key);
+ }
+ var result = func.apply(this, args);
+ memoized.cache = cache2.set(key, result) || cache2;
+ return result;
+ };
+ memoized.cache = new (memoize.Cache || _MapCache)();
+ return memoized;
+ }
+ memoize.Cache = _MapCache;
+ var memoize_1 = memoize;
+ var MAX_MEMOIZE_SIZE = 500;
+ function memoizeCapped(func) {
+ var result = memoize_1(func, function(key) {
+ if (cache2.size === MAX_MEMOIZE_SIZE) {
+ cache2.clear();
+ }
+ return key;
+ });
+ var cache2 = result.cache;
+ return result;
+ }
+ var _memoizeCapped = memoizeCapped;
+ var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
+ var reEscapeChar = /\\(\\)?/g;
+ var stringToPath = _memoizeCapped(function(string2) {
+ var result = [];
+ if (string2.charCodeAt(0) === 46) {
+ result.push("");
+ }
+ string2.replace(rePropName, function(match2, number2, quote, subString) {
+ result.push(quote ? subString.replace(reEscapeChar, "$1") : number2 || match2);
+ });
+ return result;
+ });
+ var _stringToPath = stringToPath;
+ function arrayMap(array2, iteratee) {
+ var index = -1, length = array2 == null ? 0 : array2.length, result = Array(length);
+ while (++index < length) {
+ result[index] = iteratee(array2[index], index, array2);
+ }
+ return result;
+ }
+ var _arrayMap = arrayMap;
+ var INFINITY$1 = 1 / 0;
+ var symbolProto = _Symbol ? _Symbol.prototype : void 0, symbolToString = symbolProto ? symbolProto.toString : void 0;
+ function baseToString(value) {
+ if (typeof value == "string") {
+ return value;
+ }
+ if (isArray_1(value)) {
+ return _arrayMap(value, baseToString) + "";
+ }
+ if (isSymbol_1(value)) {
+ return symbolToString ? symbolToString.call(value) : "";
+ }
+ var result = value + "";
+ return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result;
+ }
+ var _baseToString = baseToString;
+ function toString$1(value) {
+ return value == null ? "" : _baseToString(value);
+ }
+ var toString_1 = toString$1;
+ function castPath(value, object2) {
+ if (isArray_1(value)) {
+ return value;
+ }
+ return _isKey(value, object2) ? [value] : _stringToPath(toString_1(value));
+ }
+ var _castPath = castPath;
+ var INFINITY = 1 / 0;
+ function toKey(value) {
+ if (typeof value == "string" || isSymbol_1(value)) {
+ return value;
+ }
+ var result = value + "";
+ return result == "0" && 1 / value == -INFINITY ? "-0" : result;
+ }
+ var _toKey = toKey;
+ function baseGet(object2, path) {
+ path = _castPath(path, object2);
+ var index = 0, length = path.length;
+ while (object2 != null && index < length) {
+ object2 = object2[_toKey(path[index++])];
+ }
+ return index && index == length ? object2 : void 0;
+ }
+ var _baseGet = baseGet;
+ function get(object2, path, defaultValue) {
+ var result = object2 == null ? void 0 : _baseGet(object2, path);
+ return result === void 0 ? defaultValue : result;
+ }
+ var get_1 = get;
+ var defineProperty = function() {
+ try {
+ var func = _getNative(Object, "defineProperty");
+ func({}, "", {});
+ return func;
+ } catch (e) {
+ }
+ }();
+ var _defineProperty = defineProperty;
+ function baseAssignValue(object2, key, value) {
+ if (key == "__proto__" && _defineProperty) {
+ _defineProperty(object2, key, {
+ "configurable": true,
+ "enumerable": true,
+ "value": value,
+ "writable": true
+ });
+ } else {
+ object2[key] = value;
+ }
+ }
+ var _baseAssignValue = baseAssignValue;
+ var objectProto = Object.prototype;
+ var hasOwnProperty = objectProto.hasOwnProperty;
+ function assignValue(object2, key, value) {
+ var objValue = object2[key];
+ if (!(hasOwnProperty.call(object2, key) && eq_1(objValue, value)) || value === void 0 && !(key in object2)) {
+ _baseAssignValue(object2, key, value);
+ }
+ }
+ var _assignValue = assignValue;
+ var MAX_SAFE_INTEGER = 9007199254740991;
+ var reIsUint = /^(?:0|[1-9]\d*)$/;
+ function isIndex(value, length) {
+ var type = typeof value;
+ length = length == null ? MAX_SAFE_INTEGER : length;
+ return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
+ }
+ var _isIndex = isIndex;
+ function baseSet(object2, path, value, customizer) {
+ if (!isObject_1(object2)) {
+ return object2;
+ }
+ path = _castPath(path, object2);
+ var index = -1, length = path.length, lastIndex = length - 1, nested = object2;
+ while (nested != null && ++index < length) {
+ var key = _toKey(path[index]), newValue = value;
+ if (key === "__proto__" || key === "constructor" || key === "prototype") {
+ return object2;
+ }
+ if (index != lastIndex) {
+ var objValue = nested[key];
+ newValue = customizer ? customizer(objValue, key, nested) : void 0;
+ if (newValue === void 0) {
+ newValue = isObject_1(objValue) ? objValue : _isIndex(path[index + 1]) ? [] : {};
+ }
+ }
+ _assignValue(nested, key, newValue);
+ nested = nested[key];
+ }
+ return object2;
+ }
+ var _baseSet = baseSet;
+ function set(object2, path, value) {
+ return object2 == null ? object2 : _baseSet(object2, path, value);
+ }
+ var set_1 = set;
+ function copyArray(source, array2) {
+ var index = -1, length = source.length;
+ array2 || (array2 = Array(length));
+ while (++index < length) {
+ array2[index] = source[index];
+ }
+ return array2;
+ }
+ var _copyArray = copyArray;
+ function toPath(value) {
+ if (isArray_1(value)) {
+ return _arrayMap(value, _toKey);
+ }
+ return isSymbol_1(value) ? [value] : _copyArray(_stringToPath(toString_1(value)));
+ }
+ var toPath_1 = toPath;
+ var define$2 = {
+ // access data field
+ data: function data2(params) {
+ var defaults2 = {
+ field: "data",
+ bindingEvent: "data",
+ allowBinding: false,
+ allowSetting: false,
+ allowGetting: false,
+ settingEvent: "data",
+ settingTriggersEvent: false,
+ triggerFnName: "trigger",
+ immutableKeys: {},
+ // key => true if immutable
+ updateStyle: false,
+ beforeGet: function beforeGet(self2) {
+ },
+ beforeSet: function beforeSet(self2, obj) {
+ },
+ onSet: function onSet(self2) {
+ },
+ canSet: function canSet(self2) {
+ return true;
+ }
+ };
+ params = extend({}, defaults2, params);
+ return function dataImpl(name2, value) {
+ var p2 = params;
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var single = selfIsArrayLike ? self2[0] : self2;
+ if (string(name2)) {
+ var isPathLike = name2.indexOf(".") !== -1;
+ var path = isPathLike && toPath_1(name2);
+ if (p2.allowGetting && value === void 0) {
+ var ret;
+ if (single) {
+ p2.beforeGet(single);
+ if (path && single._private[p2.field][name2] === void 0) {
+ ret = get_1(single._private[p2.field], path);
+ } else {
+ ret = single._private[p2.field][name2];
+ }
+ }
+ return ret;
+ } else if (p2.allowSetting && value !== void 0) {
+ var valid2 = !p2.immutableKeys[name2];
+ if (valid2) {
+ var change = _defineProperty$1({}, name2, value);
+ p2.beforeSet(self2, change);
+ for (var i2 = 0, l = all.length; i2 < l; i2++) {
+ var ele = all[i2];
+ if (p2.canSet(ele)) {
+ if (path && single._private[p2.field][name2] === void 0) {
+ set_1(ele._private[p2.field], path, value);
+ } else {
+ ele._private[p2.field][name2] = value;
+ }
+ }
+ }
+ if (p2.updateStyle) {
+ self2.updateStyle();
+ }
+ p2.onSet(self2);
+ if (p2.settingTriggersEvent) {
+ self2[p2.triggerFnName](p2.settingEvent);
+ }
+ }
+ }
+ } else if (p2.allowSetting && plainObject(name2)) {
+ var obj = name2;
+ var k, v;
+ var keys = Object.keys(obj);
+ p2.beforeSet(self2, obj);
+ for (var _i = 0; _i < keys.length; _i++) {
+ k = keys[_i];
+ v = obj[k];
+ var _valid = !p2.immutableKeys[k];
+ if (_valid) {
+ for (var j = 0; j < all.length; j++) {
+ var _ele = all[j];
+ if (p2.canSet(_ele)) {
+ _ele._private[p2.field][k] = v;
+ }
+ }
+ }
+ }
+ if (p2.updateStyle) {
+ self2.updateStyle();
+ }
+ p2.onSet(self2);
+ if (p2.settingTriggersEvent) {
+ self2[p2.triggerFnName](p2.settingEvent);
+ }
+ } else if (p2.allowBinding && fn$6(name2)) {
+ var fn2 = name2;
+ self2.on(p2.bindingEvent, fn2);
+ } else if (p2.allowGetting && name2 === void 0) {
+ var _ret;
+ if (single) {
+ p2.beforeGet(single);
+ _ret = single._private[p2.field];
+ }
+ return _ret;
+ }
+ return self2;
+ };
+ },
+ // data
+ // remove data field
+ removeData: function removeData(params) {
+ var defaults2 = {
+ field: "data",
+ event: "data",
+ triggerFnName: "trigger",
+ triggerEvent: false,
+ immutableKeys: {}
+ // key => true if immutable
+ };
+ params = extend({}, defaults2, params);
+ return function removeDataImpl(names) {
+ var p2 = params;
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ if (string(names)) {
+ var keys = names.split(/\s+/);
+ var l = keys.length;
+ for (var i2 = 0; i2 < l; i2++) {
+ var key = keys[i2];
+ if (emptyString(key)) {
+ continue;
+ }
+ var valid2 = !p2.immutableKeys[key];
+ if (valid2) {
+ for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) {
+ all[i_a]._private[p2.field][key] = void 0;
+ }
+ }
+ }
+ if (p2.triggerEvent) {
+ self2[p2.triggerFnName](p2.event);
+ }
+ } else if (names === void 0) {
+ for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) {
+ var _privateFields = all[_i_a]._private[p2.field];
+ var _keys = Object.keys(_privateFields);
+ for (var _i2 = 0; _i2 < _keys.length; _i2++) {
+ var _key = _keys[_i2];
+ var validKeyToDelete = !p2.immutableKeys[_key];
+ if (validKeyToDelete) {
+ _privateFields[_key] = void 0;
+ }
+ }
+ }
+ if (p2.triggerEvent) {
+ self2[p2.triggerFnName](p2.event);
+ }
+ }
+ return self2;
+ };
+ }
+ // removeData
+ };
+ var define$1 = {
+ eventAliasesOn: function eventAliasesOn(proto) {
+ var p2 = proto;
+ p2.addListener = p2.listen = p2.bind = p2.on;
+ p2.unlisten = p2.unbind = p2.off = p2.removeListener;
+ p2.trigger = p2.emit;
+ p2.pon = p2.promiseOn = function(events, selector) {
+ var self2 = this;
+ var args = Array.prototype.slice.call(arguments, 0);
+ return new Promise$1(function(resolve2, reject) {
+ var callback = function callback2(e) {
+ self2.off.apply(self2, offArgs);
+ resolve2(e);
+ };
+ var onArgs = args.concat([callback]);
+ var offArgs = onArgs.concat([]);
+ self2.on.apply(self2, onArgs);
+ });
+ };
+ }
+ };
+ var define = {};
+ [define$3, define$2, define$1].forEach(function(m) {
+ extend(define, m);
+ });
+ var elesfn$i = {
+ animate: define.animate(),
+ animation: define.animation(),
+ animated: define.animated(),
+ clearQueue: define.clearQueue(),
+ delay: define.delay(),
+ delayAnimation: define.delayAnimation(),
+ stop: define.stop()
+ };
+ var elesfn$h = {
+ classes: function classes(_classes) {
+ var self2 = this;
+ if (_classes === void 0) {
+ var ret = [];
+ self2[0]._private.classes.forEach(function(cls2) {
+ return ret.push(cls2);
+ });
+ return ret;
+ } else if (!array(_classes)) {
+ _classes = (_classes || "").match(/\S+/g) || [];
+ }
+ var changed = [];
+ var classesSet = new Set$1(_classes);
+ for (var j = 0; j < self2.length; j++) {
+ var ele = self2[j];
+ var _p = ele._private;
+ var eleClasses = _p.classes;
+ var changedEle = false;
+ for (var i2 = 0; i2 < _classes.length; i2++) {
+ var cls = _classes[i2];
+ var eleHasClass = eleClasses.has(cls);
+ if (!eleHasClass) {
+ changedEle = true;
+ break;
+ }
+ }
+ if (!changedEle) {
+ changedEle = eleClasses.size !== _classes.length;
+ }
+ if (changedEle) {
+ _p.classes = classesSet;
+ changed.push(ele);
+ }
+ }
+ if (changed.length > 0) {
+ this.spawn(changed).updateStyle().emit("class");
+ }
+ return self2;
+ },
+ addClass: function addClass(classes) {
+ return this.toggleClass(classes, true);
+ },
+ hasClass: function hasClass(className) {
+ var ele = this[0];
+ return ele != null && ele._private.classes.has(className);
+ },
+ toggleClass: function toggleClass(classes, toggle) {
+ if (!array(classes)) {
+ classes = classes.match(/\S+/g) || [];
+ }
+ var self2 = this;
+ var toggleUndefd = toggle === void 0;
+ var changed = [];
+ for (var i2 = 0, il = self2.length; i2 < il; i2++) {
+ var ele = self2[i2];
+ var eleClasses = ele._private.classes;
+ var changedEle = false;
+ for (var j = 0; j < classes.length; j++) {
+ var cls = classes[j];
+ var hasClass = eleClasses.has(cls);
+ var changedNow = false;
+ if (toggle || toggleUndefd && !hasClass) {
+ eleClasses.add(cls);
+ changedNow = true;
+ } else if (!toggle || toggleUndefd && hasClass) {
+ eleClasses["delete"](cls);
+ changedNow = true;
+ }
+ if (!changedEle && changedNow) {
+ changed.push(ele);
+ changedEle = true;
+ }
+ }
+ }
+ if (changed.length > 0) {
+ this.spawn(changed).updateStyle().emit("class");
+ }
+ return self2;
+ },
+ removeClass: function removeClass(classes) {
+ return this.toggleClass(classes, false);
+ },
+ flashClass: function flashClass(classes, duration) {
+ var self2 = this;
+ if (duration == null) {
+ duration = 250;
+ } else if (duration === 0) {
+ return self2;
+ }
+ self2.addClass(classes);
+ setTimeout(function() {
+ self2.removeClass(classes);
+ }, duration);
+ return self2;
+ }
+ };
+ elesfn$h.className = elesfn$h.classNames = elesfn$h.classes;
+ var tokens = {
+ metaChar: "[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",
+ // chars we need to escape in let names, etc
+ comparatorOp: "=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",
+ // binary comparison op (used in data selectors)
+ boolOp: "\\?|\\!|\\^",
+ // boolean (unary) operators (used in data selectors)
+ string: `"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,
+ // string literals (used in data selectors) -- doublequotes | singlequotes
+ number,
+ // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123
+ meta: "degree|indegree|outdegree",
+ // allowed metadata fields (i.e. allowed functions to use from Collection)
+ separator: "\\s*,\\s*",
+ // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass
+ descendant: "\\s+",
+ child: "\\s+>\\s+",
+ subject: "\\$",
+ group: "node|edge|\\*",
+ directedEdge: "\\s+->\\s+",
+ undirectedEdge: "\\s+<->\\s+"
+ };
+ tokens.variable = "(?:[\\w-.]|(?:\\\\" + tokens.metaChar + "))+";
+ tokens.className = "(?:[\\w-]|(?:\\\\" + tokens.metaChar + "))+";
+ tokens.value = tokens.string + "|" + tokens.number;
+ tokens.id = tokens.variable;
+ (function() {
+ var ops, op, i2;
+ ops = tokens.comparatorOp.split("|");
+ for (i2 = 0; i2 < ops.length; i2++) {
+ op = ops[i2];
+ tokens.comparatorOp += "|@" + op;
+ }
+ ops = tokens.comparatorOp.split("|");
+ for (i2 = 0; i2 < ops.length; i2++) {
+ op = ops[i2];
+ if (op.indexOf("!") >= 0) {
+ continue;
+ }
+ if (op === "=") {
+ continue;
+ }
+ tokens.comparatorOp += "|\\!" + op;
+ }
+ })();
+ var newQuery = function newQuery2() {
+ return {
+ checks: []
+ };
+ };
+ var Type = {
+ /** E.g. node */
+ GROUP: 0,
+ /** A collection of elements */
+ COLLECTION: 1,
+ /** A filter(ele) function */
+ FILTER: 2,
+ /** E.g. [foo > 1] */
+ DATA_COMPARE: 3,
+ /** E.g. [foo] */
+ DATA_EXIST: 4,
+ /** E.g. [?foo] */
+ DATA_BOOL: 5,
+ /** E.g. [[degree > 2]] */
+ META_COMPARE: 6,
+ /** E.g. :selected */
+ STATE: 7,
+ /** E.g. #foo */
+ ID: 8,
+ /** E.g. .foo */
+ CLASS: 9,
+ /** E.g. #foo <-> #bar */
+ UNDIRECTED_EDGE: 10,
+ /** E.g. #foo -> #bar */
+ DIRECTED_EDGE: 11,
+ /** E.g. $#foo -> #bar */
+ NODE_SOURCE: 12,
+ /** E.g. #foo -> $#bar */
+ NODE_TARGET: 13,
+ /** E.g. $#foo <-> #bar */
+ NODE_NEIGHBOR: 14,
+ /** E.g. #foo > #bar */
+ CHILD: 15,
+ /** E.g. #foo #bar */
+ DESCENDANT: 16,
+ /** E.g. $#foo > #bar */
+ PARENT: 17,
+ /** E.g. $#foo #bar */
+ ANCESTOR: 18,
+ /** E.g. #foo > $bar > #baz */
+ COMPOUND_SPLIT: 19,
+ /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */
+ TRUE: 20
+ };
+ var stateSelectors = [{
+ selector: ":selected",
+ matches: function matches2(ele) {
+ return ele.selected();
+ }
+ }, {
+ selector: ":unselected",
+ matches: function matches2(ele) {
+ return !ele.selected();
+ }
+ }, {
+ selector: ":selectable",
+ matches: function matches2(ele) {
+ return ele.selectable();
+ }
+ }, {
+ selector: ":unselectable",
+ matches: function matches2(ele) {
+ return !ele.selectable();
+ }
+ }, {
+ selector: ":locked",
+ matches: function matches2(ele) {
+ return ele.locked();
+ }
+ }, {
+ selector: ":unlocked",
+ matches: function matches2(ele) {
+ return !ele.locked();
+ }
+ }, {
+ selector: ":visible",
+ matches: function matches2(ele) {
+ return ele.visible();
+ }
+ }, {
+ selector: ":hidden",
+ matches: function matches2(ele) {
+ return !ele.visible();
+ }
+ }, {
+ selector: ":transparent",
+ matches: function matches2(ele) {
+ return ele.transparent();
+ }
+ }, {
+ selector: ":grabbed",
+ matches: function matches2(ele) {
+ return ele.grabbed();
+ }
+ }, {
+ selector: ":free",
+ matches: function matches2(ele) {
+ return !ele.grabbed();
+ }
+ }, {
+ selector: ":removed",
+ matches: function matches2(ele) {
+ return ele.removed();
+ }
+ }, {
+ selector: ":inside",
+ matches: function matches2(ele) {
+ return !ele.removed();
+ }
+ }, {
+ selector: ":grabbable",
+ matches: function matches2(ele) {
+ return ele.grabbable();
+ }
+ }, {
+ selector: ":ungrabbable",
+ matches: function matches2(ele) {
+ return !ele.grabbable();
+ }
+ }, {
+ selector: ":animated",
+ matches: function matches2(ele) {
+ return ele.animated();
+ }
+ }, {
+ selector: ":unanimated",
+ matches: function matches2(ele) {
+ return !ele.animated();
+ }
+ }, {
+ selector: ":parent",
+ matches: function matches2(ele) {
+ return ele.isParent();
+ }
+ }, {
+ selector: ":childless",
+ matches: function matches2(ele) {
+ return ele.isChildless();
+ }
+ }, {
+ selector: ":child",
+ matches: function matches2(ele) {
+ return ele.isChild();
+ }
+ }, {
+ selector: ":orphan",
+ matches: function matches2(ele) {
+ return ele.isOrphan();
+ }
+ }, {
+ selector: ":nonorphan",
+ matches: function matches2(ele) {
+ return ele.isChild();
+ }
+ }, {
+ selector: ":compound",
+ matches: function matches2(ele) {
+ if (ele.isNode()) {
+ return ele.isParent();
+ } else {
+ return ele.source().isParent() || ele.target().isParent();
+ }
+ }
+ }, {
+ selector: ":loop",
+ matches: function matches2(ele) {
+ return ele.isLoop();
+ }
+ }, {
+ selector: ":simple",
+ matches: function matches2(ele) {
+ return ele.isSimple();
+ }
+ }, {
+ selector: ":active",
+ matches: function matches2(ele) {
+ return ele.active();
+ }
+ }, {
+ selector: ":inactive",
+ matches: function matches2(ele) {
+ return !ele.active();
+ }
+ }, {
+ selector: ":backgrounding",
+ matches: function matches2(ele) {
+ return ele.backgrounding();
+ }
+ }, {
+ selector: ":nonbackgrounding",
+ matches: function matches2(ele) {
+ return !ele.backgrounding();
+ }
+ }].sort(function(a, b) {
+ return descending(a.selector, b.selector);
+ });
+ var lookup = function() {
+ var selToFn = {};
+ var s;
+ for (var i2 = 0; i2 < stateSelectors.length; i2++) {
+ s = stateSelectors[i2];
+ selToFn[s.selector] = s.matches;
+ }
+ return selToFn;
+ }();
+ var stateSelectorMatches = function stateSelectorMatches2(sel, ele) {
+ return lookup[sel](ele);
+ };
+ var stateSelectorRegex = "(" + stateSelectors.map(function(s) {
+ return s.selector;
+ }).join("|") + ")";
+ var cleanMetaChars = function cleanMetaChars2(str) {
+ return str.replace(new RegExp("\\\\(" + tokens.metaChar + ")", "g"), function(match2, $1) {
+ return $1;
+ });
+ };
+ var replaceLastQuery = function replaceLastQuery2(selector, examiningQuery, replacementQuery) {
+ selector[selector.length - 1] = replacementQuery;
+ };
+ var exprs = [{
+ name: "group",
+ // just used for identifying when debugging
+ query: true,
+ regex: "(" + tokens.group + ")",
+ populate: function populate(selector, query, _ref) {
+ var _ref2 = _slicedToArray(_ref, 1), group = _ref2[0];
+ query.checks.push({
+ type: Type.GROUP,
+ value: group === "*" ? group : group + "s"
+ });
+ }
+ }, {
+ name: "state",
+ query: true,
+ regex: stateSelectorRegex,
+ populate: function populate(selector, query, _ref3) {
+ var _ref4 = _slicedToArray(_ref3, 1), state = _ref4[0];
+ query.checks.push({
+ type: Type.STATE,
+ value: state
+ });
+ }
+ }, {
+ name: "id",
+ query: true,
+ regex: "\\#(" + tokens.id + ")",
+ populate: function populate(selector, query, _ref5) {
+ var _ref6 = _slicedToArray(_ref5, 1), id = _ref6[0];
+ query.checks.push({
+ type: Type.ID,
+ value: cleanMetaChars(id)
+ });
+ }
+ }, {
+ name: "className",
+ query: true,
+ regex: "\\.(" + tokens.className + ")",
+ populate: function populate(selector, query, _ref7) {
+ var _ref8 = _slicedToArray(_ref7, 1), className = _ref8[0];
+ query.checks.push({
+ type: Type.CLASS,
+ value: cleanMetaChars(className)
+ });
+ }
+ }, {
+ name: "dataExists",
+ query: true,
+ regex: "\\[\\s*(" + tokens.variable + ")\\s*\\]",
+ populate: function populate(selector, query, _ref9) {
+ var _ref10 = _slicedToArray(_ref9, 1), variable = _ref10[0];
+ query.checks.push({
+ type: Type.DATA_EXIST,
+ field: cleanMetaChars(variable)
+ });
+ }
+ }, {
+ name: "dataCompare",
+ query: true,
+ regex: "\\[\\s*(" + tokens.variable + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.value + ")\\s*\\]",
+ populate: function populate(selector, query, _ref11) {
+ var _ref12 = _slicedToArray(_ref11, 3), variable = _ref12[0], comparatorOp = _ref12[1], value = _ref12[2];
+ var valueIsString = new RegExp("^" + tokens.string + "$").exec(value) != null;
+ if (valueIsString) {
+ value = value.substring(1, value.length - 1);
+ } else {
+ value = parseFloat(value);
+ }
+ query.checks.push({
+ type: Type.DATA_COMPARE,
+ field: cleanMetaChars(variable),
+ operator: comparatorOp,
+ value
+ });
+ }
+ }, {
+ name: "dataBool",
+ query: true,
+ regex: "\\[\\s*(" + tokens.boolOp + ")\\s*(" + tokens.variable + ")\\s*\\]",
+ populate: function populate(selector, query, _ref13) {
+ var _ref14 = _slicedToArray(_ref13, 2), boolOp = _ref14[0], variable = _ref14[1];
+ query.checks.push({
+ type: Type.DATA_BOOL,
+ field: cleanMetaChars(variable),
+ operator: boolOp
+ });
+ }
+ }, {
+ name: "metaCompare",
+ query: true,
+ regex: "\\[\\[\\s*(" + tokens.meta + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.number + ")\\s*\\]\\]",
+ populate: function populate(selector, query, _ref15) {
+ var _ref16 = _slicedToArray(_ref15, 3), meta2 = _ref16[0], comparatorOp = _ref16[1], number2 = _ref16[2];
+ query.checks.push({
+ type: Type.META_COMPARE,
+ field: cleanMetaChars(meta2),
+ operator: comparatorOp,
+ value: parseFloat(number2)
+ });
+ }
+ }, {
+ name: "nextQuery",
+ separator: true,
+ regex: tokens.separator,
+ populate: function populate(selector, query) {
+ var currentSubject = selector.currentSubject;
+ var edgeCount = selector.edgeCount;
+ var compoundCount = selector.compoundCount;
+ var lastQ = selector[selector.length - 1];
+ if (currentSubject != null) {
+ lastQ.subject = currentSubject;
+ selector.currentSubject = null;
+ }
+ lastQ.edgeCount = edgeCount;
+ lastQ.compoundCount = compoundCount;
+ selector.edgeCount = 0;
+ selector.compoundCount = 0;
+ var nextQuery = selector[selector.length++] = newQuery();
+ return nextQuery;
+ }
+ }, {
+ name: "directedEdge",
+ separator: true,
+ regex: tokens.directedEdge,
+ populate: function populate(selector, query) {
+ if (selector.currentSubject == null) {
+ var edgeQuery = newQuery();
+ var source = query;
+ var target = newQuery();
+ edgeQuery.checks.push({
+ type: Type.DIRECTED_EDGE,
+ source,
+ target
+ });
+ replaceLastQuery(selector, query, edgeQuery);
+ selector.edgeCount++;
+ return target;
+ } else {
+ var srcTgtQ = newQuery();
+ var _source = query;
+ var _target = newQuery();
+ srcTgtQ.checks.push({
+ type: Type.NODE_SOURCE,
+ source: _source,
+ target: _target
+ });
+ replaceLastQuery(selector, query, srcTgtQ);
+ selector.edgeCount++;
+ return _target;
+ }
+ }
+ }, {
+ name: "undirectedEdge",
+ separator: true,
+ regex: tokens.undirectedEdge,
+ populate: function populate(selector, query) {
+ if (selector.currentSubject == null) {
+ var edgeQuery = newQuery();
+ var source = query;
+ var target = newQuery();
+ edgeQuery.checks.push({
+ type: Type.UNDIRECTED_EDGE,
+ nodes: [source, target]
+ });
+ replaceLastQuery(selector, query, edgeQuery);
+ selector.edgeCount++;
+ return target;
+ } else {
+ var nhoodQ = newQuery();
+ var node = query;
+ var neighbor = newQuery();
+ nhoodQ.checks.push({
+ type: Type.NODE_NEIGHBOR,
+ node,
+ neighbor
+ });
+ replaceLastQuery(selector, query, nhoodQ);
+ return neighbor;
+ }
+ }
+ }, {
+ name: "child",
+ separator: true,
+ regex: tokens.child,
+ populate: function populate(selector, query) {
+ if (selector.currentSubject == null) {
+ var parentChildQuery = newQuery();
+ var child = newQuery();
+ var parent = selector[selector.length - 1];
+ parentChildQuery.checks.push({
+ type: Type.CHILD,
+ parent,
+ child
+ });
+ replaceLastQuery(selector, query, parentChildQuery);
+ selector.compoundCount++;
+ return child;
+ } else if (selector.currentSubject === query) {
+ var compound = newQuery();
+ var left = selector[selector.length - 1];
+ var right = newQuery();
+ var subject = newQuery();
+ var _child = newQuery();
+ var _parent = newQuery();
+ compound.checks.push({
+ type: Type.COMPOUND_SPLIT,
+ left,
+ right,
+ subject
+ });
+ subject.checks = query.checks;
+ query.checks = [{
+ type: Type.TRUE
+ }];
+ _parent.checks.push({
+ type: Type.TRUE
+ });
+ right.checks.push({
+ type: Type.PARENT,
+ // type is swapped on right side queries
+ parent: _parent,
+ child: _child
+ // empty for now
+ });
+ replaceLastQuery(selector, left, compound);
+ selector.currentSubject = subject;
+ selector.compoundCount++;
+ return _child;
+ } else {
+ var _parent2 = newQuery();
+ var _child2 = newQuery();
+ var pcQChecks = [{
+ type: Type.PARENT,
+ parent: _parent2,
+ child: _child2
+ }];
+ _parent2.checks = query.checks;
+ query.checks = pcQChecks;
+ selector.compoundCount++;
+ return _child2;
+ }
+ }
+ }, {
+ name: "descendant",
+ separator: true,
+ regex: tokens.descendant,
+ populate: function populate(selector, query) {
+ if (selector.currentSubject == null) {
+ var ancChQuery = newQuery();
+ var descendant = newQuery();
+ var ancestor = selector[selector.length - 1];
+ ancChQuery.checks.push({
+ type: Type.DESCENDANT,
+ ancestor,
+ descendant
+ });
+ replaceLastQuery(selector, query, ancChQuery);
+ selector.compoundCount++;
+ return descendant;
+ } else if (selector.currentSubject === query) {
+ var compound = newQuery();
+ var left = selector[selector.length - 1];
+ var right = newQuery();
+ var subject = newQuery();
+ var _descendant = newQuery();
+ var _ancestor = newQuery();
+ compound.checks.push({
+ type: Type.COMPOUND_SPLIT,
+ left,
+ right,
+ subject
+ });
+ subject.checks = query.checks;
+ query.checks = [{
+ type: Type.TRUE
+ }];
+ _ancestor.checks.push({
+ type: Type.TRUE
+ });
+ right.checks.push({
+ type: Type.ANCESTOR,
+ // type is swapped on right side queries
+ ancestor: _ancestor,
+ descendant: _descendant
+ // empty for now
+ });
+ replaceLastQuery(selector, left, compound);
+ selector.currentSubject = subject;
+ selector.compoundCount++;
+ return _descendant;
+ } else {
+ var _ancestor2 = newQuery();
+ var _descendant2 = newQuery();
+ var adQChecks = [{
+ type: Type.ANCESTOR,
+ ancestor: _ancestor2,
+ descendant: _descendant2
+ }];
+ _ancestor2.checks = query.checks;
+ query.checks = adQChecks;
+ selector.compoundCount++;
+ return _descendant2;
+ }
+ }
+ }, {
+ name: "subject",
+ modifier: true,
+ regex: tokens.subject,
+ populate: function populate(selector, query) {
+ if (selector.currentSubject != null && selector.currentSubject !== query) {
+ warn("Redefinition of subject in selector `" + selector.toString() + "`");
+ return false;
+ }
+ selector.currentSubject = query;
+ var topQ = selector[selector.length - 1];
+ var topChk = topQ.checks[0];
+ var topType = topChk == null ? null : topChk.type;
+ if (topType === Type.DIRECTED_EDGE) {
+ topChk.type = Type.NODE_TARGET;
+ } else if (topType === Type.UNDIRECTED_EDGE) {
+ topChk.type = Type.NODE_NEIGHBOR;
+ topChk.node = topChk.nodes[1];
+ topChk.neighbor = topChk.nodes[0];
+ topChk.nodes = null;
+ }
+ }
+ }];
+ exprs.forEach(function(e) {
+ return e.regexObj = new RegExp("^" + e.regex);
+ });
+ var consumeExpr = function consumeExpr2(remaining) {
+ var expr;
+ var match2;
+ var name2;
+ for (var j = 0; j < exprs.length; j++) {
+ var e = exprs[j];
+ var n = e.name;
+ var m = remaining.match(e.regexObj);
+ if (m != null) {
+ match2 = m;
+ expr = e;
+ name2 = n;
+ var consumed = m[0];
+ remaining = remaining.substring(consumed.length);
+ break;
+ }
+ }
+ return {
+ expr,
+ match: match2,
+ name: name2,
+ remaining
+ };
+ };
+ var consumeWhitespace = function consumeWhitespace2(remaining) {
+ var match2 = remaining.match(/^\s+/);
+ if (match2) {
+ var consumed = match2[0];
+ remaining = remaining.substring(consumed.length);
+ }
+ return remaining;
+ };
+ var parse = function parse2(selector) {
+ var self2 = this;
+ var remaining = self2.inputText = selector;
+ var currentQuery = self2[0] = newQuery();
+ self2.length = 1;
+ remaining = consumeWhitespace(remaining);
+ for (; ; ) {
+ var exprInfo = consumeExpr(remaining);
+ if (exprInfo.expr == null) {
+ warn("The selector `" + selector + "`is invalid");
+ return false;
+ } else {
+ var args = exprInfo.match.slice(1);
+ var ret = exprInfo.expr.populate(self2, currentQuery, args);
+ if (ret === false) {
+ return false;
+ } else if (ret != null) {
+ currentQuery = ret;
+ }
+ }
+ remaining = exprInfo.remaining;
+ if (remaining.match(/^\s*$/)) {
+ break;
+ }
+ }
+ var lastQ = self2[self2.length - 1];
+ if (self2.currentSubject != null) {
+ lastQ.subject = self2.currentSubject;
+ }
+ lastQ.edgeCount = self2.edgeCount;
+ lastQ.compoundCount = self2.compoundCount;
+ for (var i2 = 0; i2 < self2.length; i2++) {
+ var q = self2[i2];
+ if (q.compoundCount > 0 && q.edgeCount > 0) {
+ warn("The selector `" + selector + "` is invalid because it uses both a compound selector and an edge selector");
+ return false;
+ }
+ if (q.edgeCount > 1) {
+ warn("The selector `" + selector + "` is invalid because it uses multiple edge selectors");
+ return false;
+ } else if (q.edgeCount === 1) {
+ warn("The selector `" + selector + "` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.");
+ }
+ }
+ return true;
+ };
+ var toString = function toString2() {
+ if (this.toStringCache != null) {
+ return this.toStringCache;
+ }
+ var clean = function clean2(obj) {
+ if (obj == null) {
+ return "";
+ } else {
+ return obj;
+ }
+ };
+ var cleanVal = function cleanVal2(val) {
+ if (string(val)) {
+ return '"' + val + '"';
+ } else {
+ return clean(val);
+ }
+ };
+ var space = function space2(val) {
+ return " " + val + " ";
+ };
+ var checkToString = function checkToString2(check, subject) {
+ var type = check.type, value = check.value;
+ switch (type) {
+ case Type.GROUP: {
+ var group = clean(value);
+ return group.substring(0, group.length - 1);
+ }
+ case Type.DATA_COMPARE: {
+ var field = check.field, operator = check.operator;
+ return "[" + field + space(clean(operator)) + cleanVal(value) + "]";
+ }
+ case Type.DATA_BOOL: {
+ var _operator = check.operator, _field = check.field;
+ return "[" + clean(_operator) + _field + "]";
+ }
+ case Type.DATA_EXIST: {
+ var _field2 = check.field;
+ return "[" + _field2 + "]";
+ }
+ case Type.META_COMPARE: {
+ var _operator2 = check.operator, _field3 = check.field;
+ return "[[" + _field3 + space(clean(_operator2)) + cleanVal(value) + "]]";
+ }
+ case Type.STATE: {
+ return value;
+ }
+ case Type.ID: {
+ return "#" + value;
+ }
+ case Type.CLASS: {
+ return "." + value;
+ }
+ case Type.PARENT:
+ case Type.CHILD: {
+ return queryToString(check.parent, subject) + space(">") + queryToString(check.child, subject);
+ }
+ case Type.ANCESTOR:
+ case Type.DESCENDANT: {
+ return queryToString(check.ancestor, subject) + " " + queryToString(check.descendant, subject);
+ }
+ case Type.COMPOUND_SPLIT: {
+ var lhs = queryToString(check.left, subject);
+ var sub = queryToString(check.subject, subject);
+ var rhs = queryToString(check.right, subject);
+ return lhs + (lhs.length > 0 ? " " : "") + sub + rhs;
+ }
+ case Type.TRUE: {
+ return "";
+ }
+ }
+ };
+ var queryToString = function queryToString2(query2, subject) {
+ return query2.checks.reduce(function(str2, chk, i3) {
+ return str2 + (subject === query2 && i3 === 0 ? "$" : "") + checkToString(chk, subject);
+ }, "");
+ };
+ var str = "";
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var query = this[i2];
+ str += queryToString(query, query.subject);
+ if (this.length > 1 && i2 < this.length - 1) {
+ str += ", ";
+ }
+ }
+ this.toStringCache = str;
+ return str;
+ };
+ var parse$1 = {
+ parse,
+ toString
+ };
+ var valCmp = function valCmp2(fieldVal, operator, value) {
+ var matches2;
+ var isFieldStr = string(fieldVal);
+ var isFieldNum = number$1(fieldVal);
+ var isValStr = string(value);
+ var fieldStr, valStr;
+ var caseInsensitive = false;
+ var notExpr = false;
+ var isIneqCmp = false;
+ if (operator.indexOf("!") >= 0) {
+ operator = operator.replace("!", "");
+ notExpr = true;
+ }
+ if (operator.indexOf("@") >= 0) {
+ operator = operator.replace("@", "");
+ caseInsensitive = true;
+ }
+ if (isFieldStr || isValStr || caseInsensitive) {
+ fieldStr = !isFieldStr && !isFieldNum ? "" : "" + fieldVal;
+ valStr = "" + value;
+ }
+ if (caseInsensitive) {
+ fieldVal = fieldStr = fieldStr.toLowerCase();
+ value = valStr = valStr.toLowerCase();
+ }
+ switch (operator) {
+ case "*=":
+ matches2 = fieldStr.indexOf(valStr) >= 0;
+ break;
+ case "$=":
+ matches2 = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0;
+ break;
+ case "^=":
+ matches2 = fieldStr.indexOf(valStr) === 0;
+ break;
+ case "=":
+ matches2 = fieldVal === value;
+ break;
+ case ">":
+ isIneqCmp = true;
+ matches2 = fieldVal > value;
+ break;
+ case ">=":
+ isIneqCmp = true;
+ matches2 = fieldVal >= value;
+ break;
+ case "<":
+ isIneqCmp = true;
+ matches2 = fieldVal < value;
+ break;
+ case "<=":
+ isIneqCmp = true;
+ matches2 = fieldVal <= value;
+ break;
+ default:
+ matches2 = false;
+ break;
+ }
+ if (notExpr && (fieldVal != null || !isIneqCmp)) {
+ matches2 = !matches2;
+ }
+ return matches2;
+ };
+ var boolCmp = function boolCmp2(fieldVal, operator) {
+ switch (operator) {
+ case "?":
+ return fieldVal ? true : false;
+ case "!":
+ return fieldVal ? false : true;
+ case "^":
+ return fieldVal === void 0;
+ }
+ };
+ var existCmp = function existCmp2(fieldVal) {
+ return fieldVal !== void 0;
+ };
+ var data$1 = function data2(ele, field) {
+ return ele.data(field);
+ };
+ var meta = function meta2(ele, field) {
+ return ele[field]();
+ };
+ var match = [];
+ var matches$1 = function matches2(query, ele) {
+ return query.checks.every(function(chk) {
+ return match[chk.type](chk, ele);
+ });
+ };
+ match[Type.GROUP] = function(check, ele) {
+ var group = check.value;
+ return group === "*" || group === ele.group();
+ };
+ match[Type.STATE] = function(check, ele) {
+ var stateSelector = check.value;
+ return stateSelectorMatches(stateSelector, ele);
+ };
+ match[Type.ID] = function(check, ele) {
+ var id = check.value;
+ return ele.id() === id;
+ };
+ match[Type.CLASS] = function(check, ele) {
+ var cls = check.value;
+ return ele.hasClass(cls);
+ };
+ match[Type.META_COMPARE] = function(check, ele) {
+ var field = check.field, operator = check.operator, value = check.value;
+ return valCmp(meta(ele, field), operator, value);
+ };
+ match[Type.DATA_COMPARE] = function(check, ele) {
+ var field = check.field, operator = check.operator, value = check.value;
+ return valCmp(data$1(ele, field), operator, value);
+ };
+ match[Type.DATA_BOOL] = function(check, ele) {
+ var field = check.field, operator = check.operator;
+ return boolCmp(data$1(ele, field), operator);
+ };
+ match[Type.DATA_EXIST] = function(check, ele) {
+ var field = check.field;
+ check.operator;
+ return existCmp(data$1(ele, field));
+ };
+ match[Type.UNDIRECTED_EDGE] = function(check, ele) {
+ var qA = check.nodes[0];
+ var qB = check.nodes[1];
+ var src = ele.source();
+ var tgt = ele.target();
+ return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt);
+ };
+ match[Type.NODE_NEIGHBOR] = function(check, ele) {
+ return matches$1(check.node, ele) && ele.neighborhood().some(function(n) {
+ return n.isNode() && matches$1(check.neighbor, n);
+ });
+ };
+ match[Type.DIRECTED_EDGE] = function(check, ele) {
+ return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target());
+ };
+ match[Type.NODE_SOURCE] = function(check, ele) {
+ return matches$1(check.source, ele) && ele.outgoers().some(function(n) {
+ return n.isNode() && matches$1(check.target, n);
+ });
+ };
+ match[Type.NODE_TARGET] = function(check, ele) {
+ return matches$1(check.target, ele) && ele.incomers().some(function(n) {
+ return n.isNode() && matches$1(check.source, n);
+ });
+ };
+ match[Type.CHILD] = function(check, ele) {
+ return matches$1(check.child, ele) && matches$1(check.parent, ele.parent());
+ };
+ match[Type.PARENT] = function(check, ele) {
+ return matches$1(check.parent, ele) && ele.children().some(function(c) {
+ return matches$1(check.child, c);
+ });
+ };
+ match[Type.DESCENDANT] = function(check, ele) {
+ return matches$1(check.descendant, ele) && ele.ancestors().some(function(a) {
+ return matches$1(check.ancestor, a);
+ });
+ };
+ match[Type.ANCESTOR] = function(check, ele) {
+ return matches$1(check.ancestor, ele) && ele.descendants().some(function(d) {
+ return matches$1(check.descendant, d);
+ });
+ };
+ match[Type.COMPOUND_SPLIT] = function(check, ele) {
+ return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele);
+ };
+ match[Type.TRUE] = function() {
+ return true;
+ };
+ match[Type.COLLECTION] = function(check, ele) {
+ var collection2 = check.value;
+ return collection2.has(ele);
+ };
+ match[Type.FILTER] = function(check, ele) {
+ var filter2 = check.value;
+ return filter2(ele);
+ };
+ var filter = function filter2(collection2) {
+ var self2 = this;
+ if (self2.length === 1 && self2[0].checks.length === 1 && self2[0].checks[0].type === Type.ID) {
+ return collection2.getElementById(self2[0].checks[0].value).collection();
+ }
+ var selectorFunction = function selectorFunction2(element2) {
+ for (var j = 0; j < self2.length; j++) {
+ var query = self2[j];
+ if (matches$1(query, element2)) {
+ return true;
+ }
+ }
+ return false;
+ };
+ if (self2.text() == null) {
+ selectorFunction = function selectorFunction2() {
+ return true;
+ };
+ }
+ return collection2.filter(selectorFunction);
+ };
+ var matches = function matches2(ele) {
+ var self2 = this;
+ for (var j = 0; j < self2.length; j++) {
+ var query = self2[j];
+ if (matches$1(query, ele)) {
+ return true;
+ }
+ }
+ return false;
+ };
+ var matching = {
+ matches,
+ filter
+ };
+ var Selector = function Selector2(selector) {
+ this.inputText = selector;
+ this.currentSubject = null;
+ this.compoundCount = 0;
+ this.edgeCount = 0;
+ this.length = 0;
+ if (selector == null || string(selector) && selector.match(/^\s*$/))
+ ;
+ else if (elementOrCollection(selector)) {
+ this.addQuery({
+ checks: [{
+ type: Type.COLLECTION,
+ value: selector.collection()
+ }]
+ });
+ } else if (fn$6(selector)) {
+ this.addQuery({
+ checks: [{
+ type: Type.FILTER,
+ value: selector
+ }]
+ });
+ } else if (string(selector)) {
+ if (!this.parse(selector)) {
+ this.invalid = true;
+ }
+ } else {
+ error("A selector must be created from a string; found ");
+ }
+ };
+ var selfn = Selector.prototype;
+ [parse$1, matching].forEach(function(p2) {
+ return extend(selfn, p2);
+ });
+ selfn.text = function() {
+ return this.inputText;
+ };
+ selfn.size = function() {
+ return this.length;
+ };
+ selfn.eq = function(i2) {
+ return this[i2];
+ };
+ selfn.sameText = function(otherSel) {
+ return !this.invalid && !otherSel.invalid && this.text() === otherSel.text();
+ };
+ selfn.addQuery = function(q) {
+ this[this.length++] = q;
+ };
+ selfn.selector = selfn.toString;
+ var elesfn$g = {
+ allAre: function allAre(selector) {
+ var selObj = new Selector(selector);
+ return this.every(function(ele) {
+ return selObj.matches(ele);
+ });
+ },
+ is: function is(selector) {
+ var selObj = new Selector(selector);
+ return this.some(function(ele) {
+ return selObj.matches(ele);
+ });
+ },
+ some: function some(fn2, thisArg) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ret = !thisArg ? fn2(this[i2], i2, this) : fn2.apply(thisArg, [this[i2], i2, this]);
+ if (ret) {
+ return true;
+ }
+ }
+ return false;
+ },
+ every: function every(fn2, thisArg) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ret = !thisArg ? fn2(this[i2], i2, this) : fn2.apply(thisArg, [this[i2], i2, this]);
+ if (!ret) {
+ return false;
+ }
+ }
+ return true;
+ },
+ same: function same(collection2) {
+ if (this === collection2) {
+ return true;
+ }
+ collection2 = this.cy().collection(collection2);
+ var thisLength = this.length;
+ var collectionLength = collection2.length;
+ if (thisLength !== collectionLength) {
+ return false;
+ }
+ if (thisLength === 1) {
+ return this[0] === collection2[0];
+ }
+ return this.every(function(ele) {
+ return collection2.hasElementWithId(ele.id());
+ });
+ },
+ anySame: function anySame(collection2) {
+ collection2 = this.cy().collection(collection2);
+ return this.some(function(ele) {
+ return collection2.hasElementWithId(ele.id());
+ });
+ },
+ allAreNeighbors: function allAreNeighbors(collection2) {
+ collection2 = this.cy().collection(collection2);
+ var nhood = this.neighborhood();
+ return collection2.every(function(ele) {
+ return nhood.hasElementWithId(ele.id());
+ });
+ },
+ contains: function contains(collection2) {
+ collection2 = this.cy().collection(collection2);
+ var self2 = this;
+ return collection2.every(function(ele) {
+ return self2.hasElementWithId(ele.id());
+ });
+ }
+ };
+ elesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors;
+ elesfn$g.has = elesfn$g.contains;
+ elesfn$g.equal = elesfn$g.equals = elesfn$g.same;
+ var cache = function cache2(fn2, name2) {
+ return function traversalCache(arg1, arg2, arg3, arg4) {
+ var selectorOrEles = arg1;
+ var eles = this;
+ var key;
+ if (selectorOrEles == null) {
+ key = "";
+ } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) {
+ key = selectorOrEles.id();
+ }
+ if (eles.length === 1 && key) {
+ var _p = eles[0]._private;
+ var tch = _p.traversalCache = _p.traversalCache || {};
+ var ch = tch[name2] = tch[name2] || [];
+ var hash = hashString(key);
+ var cacheHit = ch[hash];
+ if (cacheHit) {
+ return cacheHit;
+ } else {
+ return ch[hash] = fn2.call(eles, arg1, arg2, arg3, arg4);
+ }
+ } else {
+ return fn2.call(eles, arg1, arg2, arg3, arg4);
+ }
+ };
+ };
+ var elesfn$f = {
+ parent: function parent(selector) {
+ var parents = [];
+ if (this.length === 1) {
+ var parent2 = this[0]._private.parent;
+ if (parent2) {
+ return parent2;
+ }
+ }
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var _parent = ele._private.parent;
+ if (_parent) {
+ parents.push(_parent);
+ }
+ }
+ return this.spawn(parents, true).filter(selector);
+ },
+ parents: function parents(selector) {
+ var parents2 = [];
+ var eles = this.parent();
+ while (eles.nonempty()) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ parents2.push(ele);
+ }
+ eles = eles.parent();
+ }
+ return this.spawn(parents2, true).filter(selector);
+ },
+ commonAncestors: function commonAncestors(selector) {
+ var ancestors;
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var parents = ele.parents();
+ ancestors = ancestors || parents;
+ ancestors = ancestors.intersect(parents);
+ }
+ return ancestors.filter(selector);
+ },
+ orphans: function orphans(selector) {
+ return this.stdFilter(function(ele) {
+ return ele.isOrphan();
+ }).filter(selector);
+ },
+ nonorphans: function nonorphans(selector) {
+ return this.stdFilter(function(ele) {
+ return ele.isChild();
+ }).filter(selector);
+ },
+ children: cache(function(selector) {
+ var children = [];
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var eleChildren = ele._private.children;
+ for (var j = 0; j < eleChildren.length; j++) {
+ children.push(eleChildren[j]);
+ }
+ }
+ return this.spawn(children, true).filter(selector);
+ }, "children"),
+ siblings: function siblings(selector) {
+ return this.parent().children().not(this).filter(selector);
+ },
+ isParent: function isParent() {
+ var ele = this[0];
+ if (ele) {
+ return ele.isNode() && ele._private.children.length !== 0;
+ }
+ },
+ isChildless: function isChildless() {
+ var ele = this[0];
+ if (ele) {
+ return ele.isNode() && ele._private.children.length === 0;
+ }
+ },
+ isChild: function isChild() {
+ var ele = this[0];
+ if (ele) {
+ return ele.isNode() && ele._private.parent != null;
+ }
+ },
+ isOrphan: function isOrphan() {
+ var ele = this[0];
+ if (ele) {
+ return ele.isNode() && ele._private.parent == null;
+ }
+ },
+ descendants: function descendants(selector) {
+ var elements2 = [];
+ function add(eles) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ elements2.push(ele);
+ if (ele.children().nonempty()) {
+ add(ele.children());
+ }
+ }
+ }
+ add(this.children());
+ return this.spawn(elements2, true).filter(selector);
+ }
+ };
+ function forEachCompound(eles, fn2, includeSelf, recursiveStep) {
+ var q = [];
+ var did = new Set$1();
+ var cy = eles.cy();
+ var hasCompounds = cy.hasCompoundNodes();
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ if (includeSelf) {
+ q.push(ele);
+ } else if (hasCompounds) {
+ recursiveStep(q, did, ele);
+ }
+ }
+ while (q.length > 0) {
+ var _ele = q.shift();
+ fn2(_ele);
+ did.add(_ele.id());
+ if (hasCompounds) {
+ recursiveStep(q, did, _ele);
+ }
+ }
+ return eles;
+ }
+ function addChildren(q, did, ele) {
+ if (ele.isParent()) {
+ var children = ele._private.children;
+ for (var i2 = 0; i2 < children.length; i2++) {
+ var child = children[i2];
+ if (!did.has(child.id())) {
+ q.push(child);
+ }
+ }
+ }
+ }
+ elesfn$f.forEachDown = function(fn2) {
+ var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ return forEachCompound(this, fn2, includeSelf, addChildren);
+ };
+ function addParent(q, did, ele) {
+ if (ele.isChild()) {
+ var parent = ele._private.parent;
+ if (!did.has(parent.id())) {
+ q.push(parent);
+ }
+ }
+ }
+ elesfn$f.forEachUp = function(fn2) {
+ var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ return forEachCompound(this, fn2, includeSelf, addParent);
+ };
+ function addParentAndChildren(q, did, ele) {
+ addParent(q, did, ele);
+ addChildren(q, did, ele);
+ }
+ elesfn$f.forEachUpAndDown = function(fn2) {
+ var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ return forEachCompound(this, fn2, includeSelf, addParentAndChildren);
+ };
+ elesfn$f.ancestors = elesfn$f.parents;
+ var fn$5, elesfn$e;
+ fn$5 = elesfn$e = {
+ data: define.data({
+ field: "data",
+ bindingEvent: "data",
+ allowBinding: true,
+ allowSetting: true,
+ settingEvent: "data",
+ settingTriggersEvent: true,
+ triggerFnName: "trigger",
+ allowGetting: true,
+ immutableKeys: {
+ "id": true,
+ "source": true,
+ "target": true,
+ "parent": true
+ },
+ updateStyle: true
+ }),
+ removeData: define.removeData({
+ field: "data",
+ event: "data",
+ triggerFnName: "trigger",
+ triggerEvent: true,
+ immutableKeys: {
+ "id": true,
+ "source": true,
+ "target": true,
+ "parent": true
+ },
+ updateStyle: true
+ }),
+ scratch: define.data({
+ field: "scratch",
+ bindingEvent: "scratch",
+ allowBinding: true,
+ allowSetting: true,
+ settingEvent: "scratch",
+ settingTriggersEvent: true,
+ triggerFnName: "trigger",
+ allowGetting: true,
+ updateStyle: true
+ }),
+ removeScratch: define.removeData({
+ field: "scratch",
+ event: "scratch",
+ triggerFnName: "trigger",
+ triggerEvent: true,
+ updateStyle: true
+ }),
+ rscratch: define.data({
+ field: "rscratch",
+ allowBinding: false,
+ allowSetting: true,
+ settingTriggersEvent: false,
+ allowGetting: true
+ }),
+ removeRscratch: define.removeData({
+ field: "rscratch",
+ triggerEvent: false
+ }),
+ id: function id() {
+ var ele = this[0];
+ if (ele) {
+ return ele._private.data.id;
+ }
+ }
+ };
+ fn$5.attr = fn$5.data;
+ fn$5.removeAttr = fn$5.removeData;
+ var data = elesfn$e;
+ var elesfn$d = {};
+ function defineDegreeFunction(callback) {
+ return function(includeLoops) {
+ var self2 = this;
+ if (includeLoops === void 0) {
+ includeLoops = true;
+ }
+ if (self2.length === 0) {
+ return;
+ }
+ if (self2.isNode() && !self2.removed()) {
+ var degree = 0;
+ var node = self2[0];
+ var connectedEdges = node._private.edges;
+ for (var i2 = 0; i2 < connectedEdges.length; i2++) {
+ var edge = connectedEdges[i2];
+ if (!includeLoops && edge.isLoop()) {
+ continue;
+ }
+ degree += callback(node, edge);
+ }
+ return degree;
+ } else {
+ return;
+ }
+ };
+ }
+ extend(elesfn$d, {
+ degree: defineDegreeFunction(function(node, edge) {
+ if (edge.source().same(edge.target())) {
+ return 2;
+ } else {
+ return 1;
+ }
+ }),
+ indegree: defineDegreeFunction(function(node, edge) {
+ if (edge.target().same(node)) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }),
+ outdegree: defineDegreeFunction(function(node, edge) {
+ if (edge.source().same(node)) {
+ return 1;
+ } else {
+ return 0;
+ }
+ })
+ });
+ function defineDegreeBoundsFunction(degreeFn, callback) {
+ return function(includeLoops) {
+ var ret;
+ var nodes2 = this.nodes();
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ var ele = nodes2[i2];
+ var degree = ele[degreeFn](includeLoops);
+ if (degree !== void 0 && (ret === void 0 || callback(degree, ret))) {
+ ret = degree;
+ }
+ }
+ return ret;
+ };
+ }
+ extend(elesfn$d, {
+ minDegree: defineDegreeBoundsFunction("degree", function(degree, min2) {
+ return degree < min2;
+ }),
+ maxDegree: defineDegreeBoundsFunction("degree", function(degree, max2) {
+ return degree > max2;
+ }),
+ minIndegree: defineDegreeBoundsFunction("indegree", function(degree, min2) {
+ return degree < min2;
+ }),
+ maxIndegree: defineDegreeBoundsFunction("indegree", function(degree, max2) {
+ return degree > max2;
+ }),
+ minOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, min2) {
+ return degree < min2;
+ }),
+ maxOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, max2) {
+ return degree > max2;
+ })
+ });
+ extend(elesfn$d, {
+ totalDegree: function totalDegree(includeLoops) {
+ var total = 0;
+ var nodes2 = this.nodes();
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ total += nodes2[i2].degree(includeLoops);
+ }
+ return total;
+ }
+ });
+ var fn$4, elesfn$c;
+ var beforePositionSet = function beforePositionSet2(eles, newPos, silent) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ if (!ele.locked()) {
+ var oldPos = ele._private.position;
+ var delta = {
+ x: newPos.x != null ? newPos.x - oldPos.x : 0,
+ y: newPos.y != null ? newPos.y - oldPos.y : 0
+ };
+ if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) {
+ ele.children().shift(delta, silent);
+ }
+ ele.dirtyBoundingBoxCache();
+ }
+ }
+ };
+ var positionDef = {
+ field: "position",
+ bindingEvent: "position",
+ allowBinding: true,
+ allowSetting: true,
+ settingEvent: "position",
+ settingTriggersEvent: true,
+ triggerFnName: "emitAndNotify",
+ allowGetting: true,
+ validKeys: ["x", "y"],
+ beforeGet: function beforeGet(ele) {
+ ele.updateCompoundBounds();
+ },
+ beforeSet: function beforeSet(eles, newPos) {
+ beforePositionSet(eles, newPos, false);
+ },
+ onSet: function onSet(eles) {
+ eles.dirtyCompoundBoundsCache();
+ },
+ canSet: function canSet(ele) {
+ return !ele.locked();
+ }
+ };
+ fn$4 = elesfn$c = {
+ position: define.data(positionDef),
+ // position but no notification to renderer
+ silentPosition: define.data(extend({}, positionDef, {
+ allowBinding: false,
+ allowSetting: true,
+ settingTriggersEvent: false,
+ allowGetting: false,
+ beforeSet: function beforeSet(eles, newPos) {
+ beforePositionSet(eles, newPos, true);
+ },
+ onSet: function onSet(eles) {
+ eles.dirtyCompoundBoundsCache();
+ }
+ })),
+ positions: function positions(pos, silent) {
+ if (plainObject(pos)) {
+ if (silent) {
+ this.silentPosition(pos);
+ } else {
+ this.position(pos);
+ }
+ } else if (fn$6(pos)) {
+ var _fn = pos;
+ var cy = this.cy();
+ cy.startBatch();
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var _pos = void 0;
+ if (_pos = _fn(ele, i2)) {
+ if (silent) {
+ ele.silentPosition(_pos);
+ } else {
+ ele.position(_pos);
+ }
+ }
+ }
+ cy.endBatch();
+ }
+ return this;
+ },
+ silentPositions: function silentPositions(pos) {
+ return this.positions(pos, true);
+ },
+ shift: function shift(dim, val, silent) {
+ var delta;
+ if (plainObject(dim)) {
+ delta = {
+ x: number$1(dim.x) ? dim.x : 0,
+ y: number$1(dim.y) ? dim.y : 0
+ };
+ silent = val;
+ } else if (string(dim) && number$1(val)) {
+ delta = {
+ x: 0,
+ y: 0
+ };
+ delta[dim] = val;
+ }
+ if (delta != null) {
+ var cy = this.cy();
+ cy.startBatch();
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) {
+ continue;
+ }
+ var pos = ele.position();
+ var newPos = {
+ x: pos.x + delta.x,
+ y: pos.y + delta.y
+ };
+ if (silent) {
+ ele.silentPosition(newPos);
+ } else {
+ ele.position(newPos);
+ }
+ }
+ cy.endBatch();
+ }
+ return this;
+ },
+ silentShift: function silentShift(dim, val) {
+ if (plainObject(dim)) {
+ this.shift(dim, true);
+ } else if (string(dim) && number$1(val)) {
+ this.shift(dim, val, true);
+ }
+ return this;
+ },
+ // get/set the rendered (i.e. on screen) positon of the element
+ renderedPosition: function renderedPosition(dim, val) {
+ var ele = this[0];
+ var cy = this.cy();
+ var zoom = cy.zoom();
+ var pan = cy.pan();
+ var rpos = plainObject(dim) ? dim : void 0;
+ var setting = rpos !== void 0 || val !== void 0 && string(dim);
+ if (ele && ele.isNode()) {
+ if (setting) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var _ele = this[i2];
+ if (val !== void 0) {
+ _ele.position(dim, (val - pan[dim]) / zoom);
+ } else if (rpos !== void 0) {
+ _ele.position(renderedToModelPosition(rpos, zoom, pan));
+ }
+ }
+ } else {
+ var pos = ele.position();
+ rpos = modelToRenderedPosition(pos, zoom, pan);
+ if (dim === void 0) {
+ return rpos;
+ } else {
+ return rpos[dim];
+ }
+ }
+ } else if (!setting) {
+ return void 0;
+ }
+ return this;
+ },
+ // get/set the position relative to the parent
+ relativePosition: function relativePosition(dim, val) {
+ var ele = this[0];
+ var cy = this.cy();
+ var ppos = plainObject(dim) ? dim : void 0;
+ var setting = ppos !== void 0 || val !== void 0 && string(dim);
+ var hasCompoundNodes = cy.hasCompoundNodes();
+ if (ele && ele.isNode()) {
+ if (setting) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var _ele2 = this[i2];
+ var parent = hasCompoundNodes ? _ele2.parent() : null;
+ var hasParent = parent && parent.length > 0;
+ var relativeToParent = hasParent;
+ if (hasParent) {
+ parent = parent[0];
+ }
+ var origin = relativeToParent ? parent.position() : {
+ x: 0,
+ y: 0
+ };
+ if (val !== void 0) {
+ _ele2.position(dim, val + origin[dim]);
+ } else if (ppos !== void 0) {
+ _ele2.position({
+ x: ppos.x + origin.x,
+ y: ppos.y + origin.y
+ });
+ }
+ }
+ } else {
+ var pos = ele.position();
+ var _parent = hasCompoundNodes ? ele.parent() : null;
+ var _hasParent = _parent && _parent.length > 0;
+ var _relativeToParent = _hasParent;
+ if (_hasParent) {
+ _parent = _parent[0];
+ }
+ var _origin = _relativeToParent ? _parent.position() : {
+ x: 0,
+ y: 0
+ };
+ ppos = {
+ x: pos.x - _origin.x,
+ y: pos.y - _origin.y
+ };
+ if (dim === void 0) {
+ return ppos;
+ } else {
+ return ppos[dim];
+ }
+ }
+ } else if (!setting) {
+ return void 0;
+ }
+ return this;
+ }
+ };
+ fn$4.modelPosition = fn$4.point = fn$4.position;
+ fn$4.modelPositions = fn$4.points = fn$4.positions;
+ fn$4.renderedPoint = fn$4.renderedPosition;
+ fn$4.relativePoint = fn$4.relativePosition;
+ var position = elesfn$c;
+ var fn$3, elesfn$b;
+ fn$3 = elesfn$b = {};
+ elesfn$b.renderedBoundingBox = function(options) {
+ var bb = this.boundingBox(options);
+ var cy = this.cy();
+ var zoom = cy.zoom();
+ var pan = cy.pan();
+ var x1 = bb.x1 * zoom + pan.x;
+ var x2 = bb.x2 * zoom + pan.x;
+ var y1 = bb.y1 * zoom + pan.y;
+ var y2 = bb.y2 * zoom + pan.y;
+ return {
+ x1,
+ x2,
+ y1,
+ y2,
+ w: x2 - x1,
+ h: y2 - y1
+ };
+ };
+ elesfn$b.dirtyCompoundBoundsCache = function() {
+ var silent = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
+ var cy = this.cy();
+ if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {
+ return this;
+ }
+ this.forEachUp(function(ele) {
+ if (ele.isParent()) {
+ var _p = ele._private;
+ _p.compoundBoundsClean = false;
+ _p.bbCache = null;
+ if (!silent) {
+ ele.emitAndNotify("bounds");
+ }
+ }
+ });
+ return this;
+ };
+ elesfn$b.updateCompoundBounds = function() {
+ var force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
+ var cy = this.cy();
+ if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {
+ return this;
+ }
+ if (!force && cy.batching()) {
+ return this;
+ }
+ function update2(parent) {
+ if (!parent.isParent()) {
+ return;
+ }
+ var _p2 = parent._private;
+ var children = parent.children();
+ var includeLabels = parent.pstyle("compound-sizing-wrt-labels").value === "include";
+ var min2 = {
+ width: {
+ val: parent.pstyle("min-width").pfValue,
+ left: parent.pstyle("min-width-bias-left"),
+ right: parent.pstyle("min-width-bias-right")
+ },
+ height: {
+ val: parent.pstyle("min-height").pfValue,
+ top: parent.pstyle("min-height-bias-top"),
+ bottom: parent.pstyle("min-height-bias-bottom")
+ }
+ };
+ var bb = children.boundingBox({
+ includeLabels,
+ includeOverlays: false,
+ // updating the compound bounds happens outside of the regular
+ // cache cycle (i.e. before fired events)
+ useCache: false
+ });
+ var pos = _p2.position;
+ if (bb.w === 0 || bb.h === 0) {
+ bb = {
+ w: parent.pstyle("width").pfValue,
+ h: parent.pstyle("height").pfValue
+ };
+ bb.x1 = pos.x - bb.w / 2;
+ bb.x2 = pos.x + bb.w / 2;
+ bb.y1 = pos.y - bb.h / 2;
+ bb.y2 = pos.y + bb.h / 2;
+ }
+ function computeBiasValues(propDiff, propBias, propBiasComplement) {
+ var biasDiff = 0;
+ var biasComplementDiff = 0;
+ var biasTotal = propBias + propBiasComplement;
+ if (propDiff > 0 && biasTotal > 0) {
+ biasDiff = propBias / biasTotal * propDiff;
+ biasComplementDiff = propBiasComplement / biasTotal * propDiff;
+ }
+ return {
+ biasDiff,
+ biasComplementDiff
+ };
+ }
+ function computePaddingValues(width, height, paddingObject, relativeTo) {
+ if (paddingObject.units === "%") {
+ switch (relativeTo) {
+ case "width":
+ return width > 0 ? paddingObject.pfValue * width : 0;
+ case "height":
+ return height > 0 ? paddingObject.pfValue * height : 0;
+ case "average":
+ return width > 0 && height > 0 ? paddingObject.pfValue * (width + height) / 2 : 0;
+ case "min":
+ return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * height : paddingObject.pfValue * width : 0;
+ case "max":
+ return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * width : paddingObject.pfValue * height : 0;
+ default:
+ return 0;
+ }
+ } else if (paddingObject.units === "px") {
+ return paddingObject.pfValue;
+ } else {
+ return 0;
+ }
+ }
+ var leftVal = min2.width.left.value;
+ if (min2.width.left.units === "px" && min2.width.val > 0) {
+ leftVal = leftVal * 100 / min2.width.val;
+ }
+ var rightVal = min2.width.right.value;
+ if (min2.width.right.units === "px" && min2.width.val > 0) {
+ rightVal = rightVal * 100 / min2.width.val;
+ }
+ var topVal = min2.height.top.value;
+ if (min2.height.top.units === "px" && min2.height.val > 0) {
+ topVal = topVal * 100 / min2.height.val;
+ }
+ var bottomVal = min2.height.bottom.value;
+ if (min2.height.bottom.units === "px" && min2.height.val > 0) {
+ bottomVal = bottomVal * 100 / min2.height.val;
+ }
+ var widthBiasDiffs = computeBiasValues(min2.width.val - bb.w, leftVal, rightVal);
+ var diffLeft = widthBiasDiffs.biasDiff;
+ var diffRight = widthBiasDiffs.biasComplementDiff;
+ var heightBiasDiffs = computeBiasValues(min2.height.val - bb.h, topVal, bottomVal);
+ var diffTop = heightBiasDiffs.biasDiff;
+ var diffBottom = heightBiasDiffs.biasComplementDiff;
+ _p2.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle("padding"), parent.pstyle("padding-relative-to").value);
+ _p2.autoWidth = Math.max(bb.w, min2.width.val);
+ pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2;
+ _p2.autoHeight = Math.max(bb.h, min2.height.val);
+ pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2;
+ }
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var _p = ele._private;
+ if (!_p.compoundBoundsClean || force) {
+ update2(ele);
+ if (!cy.batching()) {
+ _p.compoundBoundsClean = true;
+ }
+ }
+ }
+ return this;
+ };
+ var noninf = function noninf2(x) {
+ if (x === Infinity || x === -Infinity) {
+ return 0;
+ }
+ return x;
+ };
+ var updateBounds = function updateBounds2(b, x1, y1, x2, y2) {
+ if (x2 - x1 === 0 || y2 - y1 === 0) {
+ return;
+ }
+ if (x1 == null || y1 == null || x2 == null || y2 == null) {
+ return;
+ }
+ b.x1 = x1 < b.x1 ? x1 : b.x1;
+ b.x2 = x2 > b.x2 ? x2 : b.x2;
+ b.y1 = y1 < b.y1 ? y1 : b.y1;
+ b.y2 = y2 > b.y2 ? y2 : b.y2;
+ b.w = b.x2 - b.x1;
+ b.h = b.y2 - b.y1;
+ };
+ var updateBoundsFromBox = function updateBoundsFromBox2(b, b2) {
+ if (b2 == null) {
+ return b;
+ }
+ return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2);
+ };
+ var prefixedProperty = function prefixedProperty2(obj, field, prefix) {
+ return getPrefixedProperty(obj, field, prefix);
+ };
+ var updateBoundsFromArrow = function updateBoundsFromArrow2(bounds2, ele, prefix) {
+ if (ele.cy().headless()) {
+ return;
+ }
+ var _p = ele._private;
+ var rstyle = _p.rstyle;
+ var halfArW = rstyle.arrowWidth / 2;
+ var arrowType = ele.pstyle(prefix + "-arrow-shape").value;
+ var x;
+ var y;
+ if (arrowType !== "none") {
+ if (prefix === "source") {
+ x = rstyle.srcX;
+ y = rstyle.srcY;
+ } else if (prefix === "target") {
+ x = rstyle.tgtX;
+ y = rstyle.tgtY;
+ } else {
+ x = rstyle.midX;
+ y = rstyle.midY;
+ }
+ var bbs = _p.arrowBounds = _p.arrowBounds || {};
+ var bb = bbs[prefix] = bbs[prefix] || {};
+ bb.x1 = x - halfArW;
+ bb.y1 = y - halfArW;
+ bb.x2 = x + halfArW;
+ bb.y2 = y + halfArW;
+ bb.w = bb.x2 - bb.x1;
+ bb.h = bb.y2 - bb.y1;
+ expandBoundingBox(bb, 1);
+ updateBounds(bounds2, bb.x1, bb.y1, bb.x2, bb.y2);
+ }
+ };
+ var updateBoundsFromLabel = function updateBoundsFromLabel2(bounds2, ele, prefix) {
+ if (ele.cy().headless()) {
+ return;
+ }
+ var prefixDash;
+ if (prefix) {
+ prefixDash = prefix + "-";
+ } else {
+ prefixDash = "";
+ }
+ var _p = ele._private;
+ var rstyle = _p.rstyle;
+ var label = ele.pstyle(prefixDash + "label").strValue;
+ if (label) {
+ var halign = ele.pstyle("text-halign");
+ var valign = ele.pstyle("text-valign");
+ var labelWidth = prefixedProperty(rstyle, "labelWidth", prefix);
+ var labelHeight = prefixedProperty(rstyle, "labelHeight", prefix);
+ var labelX = prefixedProperty(rstyle, "labelX", prefix);
+ var labelY = prefixedProperty(rstyle, "labelY", prefix);
+ var marginX = ele.pstyle(prefixDash + "text-margin-x").pfValue;
+ var marginY = ele.pstyle(prefixDash + "text-margin-y").pfValue;
+ var isEdge = ele.isEdge();
+ var rotation = ele.pstyle(prefixDash + "text-rotation");
+ var outlineWidth = ele.pstyle("text-outline-width").pfValue;
+ var borderWidth = ele.pstyle("text-border-width").pfValue;
+ var halfBorderWidth = borderWidth / 2;
+ var padding = ele.pstyle("text-background-padding").pfValue;
+ var marginOfError = 2;
+ var lh = labelHeight;
+ var lw = labelWidth;
+ var lw_2 = lw / 2;
+ var lh_2 = lh / 2;
+ var lx1, lx2, ly1, ly2;
+ if (isEdge) {
+ lx1 = labelX - lw_2;
+ lx2 = labelX + lw_2;
+ ly1 = labelY - lh_2;
+ ly2 = labelY + lh_2;
+ } else {
+ switch (halign.value) {
+ case "left":
+ lx1 = labelX - lw;
+ lx2 = labelX;
+ break;
+ case "center":
+ lx1 = labelX - lw_2;
+ lx2 = labelX + lw_2;
+ break;
+ case "right":
+ lx1 = labelX;
+ lx2 = labelX + lw;
+ break;
+ }
+ switch (valign.value) {
+ case "top":
+ ly1 = labelY - lh;
+ ly2 = labelY;
+ break;
+ case "center":
+ ly1 = labelY - lh_2;
+ ly2 = labelY + lh_2;
+ break;
+ case "bottom":
+ ly1 = labelY;
+ ly2 = labelY + lh;
+ break;
+ }
+ }
+ lx1 += marginX - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError;
+ lx2 += marginX + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError;
+ ly1 += marginY - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError;
+ ly2 += marginY + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError;
+ var bbPrefix = prefix || "main";
+ var bbs = _p.labelBounds;
+ var bb = bbs[bbPrefix] = bbs[bbPrefix] || {};
+ bb.x1 = lx1;
+ bb.y1 = ly1;
+ bb.x2 = lx2;
+ bb.y2 = ly2;
+ bb.w = lx2 - lx1;
+ bb.h = ly2 - ly1;
+ var isAutorotate = isEdge && rotation.strValue === "autorotate";
+ var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0;
+ if (isAutorotate || isPfValue) {
+ var theta = isAutorotate ? prefixedProperty(_p.rstyle, "labelAngle", prefix) : rotation.pfValue;
+ var cos2 = Math.cos(theta);
+ var sin2 = Math.sin(theta);
+ var xo = (lx1 + lx2) / 2;
+ var yo = (ly1 + ly2) / 2;
+ if (!isEdge) {
+ switch (halign.value) {
+ case "left":
+ xo = lx2;
+ break;
+ case "right":
+ xo = lx1;
+ break;
+ }
+ switch (valign.value) {
+ case "top":
+ yo = ly2;
+ break;
+ case "bottom":
+ yo = ly1;
+ break;
+ }
+ }
+ var rotate = function rotate2(x, y) {
+ x = x - xo;
+ y = y - yo;
+ return {
+ x: x * cos2 - y * sin2 + xo,
+ y: x * sin2 + y * cos2 + yo
+ };
+ };
+ var px1y1 = rotate(lx1, ly1);
+ var px1y2 = rotate(lx1, ly2);
+ var px2y1 = rotate(lx2, ly1);
+ var px2y2 = rotate(lx2, ly2);
+ lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x);
+ lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x);
+ ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y);
+ ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y);
+ }
+ var bbPrefixRot = bbPrefix + "Rot";
+ var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {};
+ bbRot.x1 = lx1;
+ bbRot.y1 = ly1;
+ bbRot.x2 = lx2;
+ bbRot.y2 = ly2;
+ bbRot.w = lx2 - lx1;
+ bbRot.h = ly2 - ly1;
+ updateBounds(bounds2, lx1, ly1, lx2, ly2);
+ updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2);
+ }
+ return bounds2;
+ };
+ var boundingBoxImpl = function boundingBoxImpl2(ele, options) {
+ var cy = ele._private.cy;
+ var styleEnabled = cy.styleEnabled();
+ var headless = cy.headless();
+ var bounds2 = makeBoundingBox();
+ var _p = ele._private;
+ var isNode = ele.isNode();
+ var isEdge = ele.isEdge();
+ var ex1, ex2, ey1, ey2;
+ var x, y;
+ var rstyle = _p.rstyle;
+ var manualExpansion = isNode && styleEnabled ? ele.pstyle("bounds-expansion").pfValue : [0];
+ var isDisplayed = function isDisplayed2(ele2) {
+ return ele2.pstyle("display").value !== "none";
+ };
+ var displayed = !styleEnabled || isDisplayed(ele) && (!isEdge || isDisplayed(ele.source()) && isDisplayed(ele.target()));
+ if (displayed) {
+ var overlayOpacity = 0;
+ var overlayPadding = 0;
+ if (styleEnabled && options.includeOverlays) {
+ overlayOpacity = ele.pstyle("overlay-opacity").value;
+ if (overlayOpacity !== 0) {
+ overlayPadding = ele.pstyle("overlay-padding").value;
+ }
+ }
+ var underlayOpacity = 0;
+ var underlayPadding = 0;
+ if (styleEnabled && options.includeUnderlays) {
+ underlayOpacity = ele.pstyle("underlay-opacity").value;
+ if (underlayOpacity !== 0) {
+ underlayPadding = ele.pstyle("underlay-padding").value;
+ }
+ }
+ var padding = Math.max(overlayPadding, underlayPadding);
+ var w = 0;
+ var wHalf = 0;
+ if (styleEnabled) {
+ w = ele.pstyle("width").pfValue;
+ wHalf = w / 2;
+ }
+ if (isNode && options.includeNodes) {
+ var pos = ele.position();
+ x = pos.x;
+ y = pos.y;
+ var _w = ele.outerWidth();
+ var halfW = _w / 2;
+ var h = ele.outerHeight();
+ var halfH = h / 2;
+ ex1 = x - halfW;
+ ex2 = x + halfW;
+ ey1 = y - halfH;
+ ey2 = y + halfH;
+ updateBounds(bounds2, ex1, ey1, ex2, ey2);
+ } else if (isEdge && options.includeEdges) {
+ if (styleEnabled && !headless) {
+ var curveStyle = ele.pstyle("curve-style").strValue;
+ ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX);
+ ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX);
+ ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY);
+ ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY);
+ ex1 -= wHalf;
+ ex2 += wHalf;
+ ey1 -= wHalf;
+ ey2 += wHalf;
+ updateBounds(bounds2, ex1, ey1, ex2, ey2);
+ if (curveStyle === "haystack") {
+ var hpts = rstyle.haystackPts;
+ if (hpts && hpts.length === 2) {
+ ex1 = hpts[0].x;
+ ey1 = hpts[0].y;
+ ex2 = hpts[1].x;
+ ey2 = hpts[1].y;
+ if (ex1 > ex2) {
+ var temp = ex1;
+ ex1 = ex2;
+ ex2 = temp;
+ }
+ if (ey1 > ey2) {
+ var _temp = ey1;
+ ey1 = ey2;
+ ey2 = _temp;
+ }
+ updateBounds(bounds2, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf);
+ }
+ } else if (curveStyle === "bezier" || curveStyle === "unbundled-bezier" || curveStyle === "segments" || curveStyle === "taxi") {
+ var pts2;
+ switch (curveStyle) {
+ case "bezier":
+ case "unbundled-bezier":
+ pts2 = rstyle.bezierPts;
+ break;
+ case "segments":
+ case "taxi":
+ pts2 = rstyle.linePts;
+ break;
+ }
+ if (pts2 != null) {
+ for (var j = 0; j < pts2.length; j++) {
+ var pt = pts2[j];
+ ex1 = pt.x - wHalf;
+ ex2 = pt.x + wHalf;
+ ey1 = pt.y - wHalf;
+ ey2 = pt.y + wHalf;
+ updateBounds(bounds2, ex1, ey1, ex2, ey2);
+ }
+ }
+ }
+ } else {
+ var n1 = ele.source();
+ var n1pos = n1.position();
+ var n2 = ele.target();
+ var n2pos = n2.position();
+ ex1 = n1pos.x;
+ ex2 = n2pos.x;
+ ey1 = n1pos.y;
+ ey2 = n2pos.y;
+ if (ex1 > ex2) {
+ var _temp2 = ex1;
+ ex1 = ex2;
+ ex2 = _temp2;
+ }
+ if (ey1 > ey2) {
+ var _temp3 = ey1;
+ ey1 = ey2;
+ ey2 = _temp3;
+ }
+ ex1 -= wHalf;
+ ex2 += wHalf;
+ ey1 -= wHalf;
+ ey2 += wHalf;
+ updateBounds(bounds2, ex1, ey1, ex2, ey2);
+ }
+ }
+ if (styleEnabled && options.includeEdges && isEdge) {
+ updateBoundsFromArrow(bounds2, ele, "mid-source");
+ updateBoundsFromArrow(bounds2, ele, "mid-target");
+ updateBoundsFromArrow(bounds2, ele, "source");
+ updateBoundsFromArrow(bounds2, ele, "target");
+ }
+ if (styleEnabled) {
+ var ghost = ele.pstyle("ghost").value === "yes";
+ if (ghost) {
+ var gx = ele.pstyle("ghost-offset-x").pfValue;
+ var gy = ele.pstyle("ghost-offset-y").pfValue;
+ updateBounds(bounds2, bounds2.x1 + gx, bounds2.y1 + gy, bounds2.x2 + gx, bounds2.y2 + gy);
+ }
+ }
+ var bbBody = _p.bodyBounds = _p.bodyBounds || {};
+ assignBoundingBox(bbBody, bounds2);
+ expandBoundingBoxSides(bbBody, manualExpansion);
+ expandBoundingBox(bbBody, 1);
+ if (styleEnabled) {
+ ex1 = bounds2.x1;
+ ex2 = bounds2.x2;
+ ey1 = bounds2.y1;
+ ey2 = bounds2.y2;
+ updateBounds(bounds2, ex1 - padding, ey1 - padding, ex2 + padding, ey2 + padding);
+ }
+ var bbOverlay = _p.overlayBounds = _p.overlayBounds || {};
+ assignBoundingBox(bbOverlay, bounds2);
+ expandBoundingBoxSides(bbOverlay, manualExpansion);
+ expandBoundingBox(bbOverlay, 1);
+ var bbLabels = _p.labelBounds = _p.labelBounds || {};
+ if (bbLabels.all != null) {
+ clearBoundingBox(bbLabels.all);
+ } else {
+ bbLabels.all = makeBoundingBox();
+ }
+ if (styleEnabled && options.includeLabels) {
+ if (options.includeMainLabels) {
+ updateBoundsFromLabel(bounds2, ele, null);
+ }
+ if (isEdge) {
+ if (options.includeSourceLabels) {
+ updateBoundsFromLabel(bounds2, ele, "source");
+ }
+ if (options.includeTargetLabels) {
+ updateBoundsFromLabel(bounds2, ele, "target");
+ }
+ }
+ }
+ }
+ bounds2.x1 = noninf(bounds2.x1);
+ bounds2.y1 = noninf(bounds2.y1);
+ bounds2.x2 = noninf(bounds2.x2);
+ bounds2.y2 = noninf(bounds2.y2);
+ bounds2.w = noninf(bounds2.x2 - bounds2.x1);
+ bounds2.h = noninf(bounds2.y2 - bounds2.y1);
+ if (bounds2.w > 0 && bounds2.h > 0 && displayed) {
+ expandBoundingBoxSides(bounds2, manualExpansion);
+ expandBoundingBox(bounds2, 1);
+ }
+ return bounds2;
+ };
+ var getKey = function getKey2(opts) {
+ var i2 = 0;
+ var tf = function tf2(val) {
+ return (val ? 1 : 0) << i2++;
+ };
+ var key = 0;
+ key += tf(opts.incudeNodes);
+ key += tf(opts.includeEdges);
+ key += tf(opts.includeLabels);
+ key += tf(opts.includeMainLabels);
+ key += tf(opts.includeSourceLabels);
+ key += tf(opts.includeTargetLabels);
+ key += tf(opts.includeOverlays);
+ return key;
+ };
+ var getBoundingBoxPosKey = function getBoundingBoxPosKey2(ele) {
+ if (ele.isEdge()) {
+ var p1 = ele.source().position();
+ var p2 = ele.target().position();
+ var r = function r2(x) {
+ return Math.round(x);
+ };
+ return hashIntsArray([r(p1.x), r(p1.y), r(p2.x), r(p2.y)]);
+ } else {
+ return 0;
+ }
+ };
+ var cachedBoundingBoxImpl = function cachedBoundingBoxImpl2(ele, opts) {
+ var _p = ele._private;
+ var bb;
+ var isEdge = ele.isEdge();
+ var key = opts == null ? defBbOptsKey : getKey(opts);
+ var usingDefOpts = key === defBbOptsKey;
+ var currPosKey = getBoundingBoxPosKey(ele);
+ var isPosKeySame = _p.bbCachePosKey === currPosKey;
+ var useCache = opts.useCache && isPosKeySame;
+ var isDirty = function isDirty2(ele2) {
+ return ele2._private.bbCache == null || ele2._private.styleDirty;
+ };
+ var needRecalc = !useCache || isDirty(ele) || isEdge && isDirty(ele.source()) || isDirty(ele.target());
+ if (needRecalc) {
+ if (!isPosKeySame) {
+ ele.recalculateRenderedStyle(useCache);
+ }
+ bb = boundingBoxImpl(ele, defBbOpts);
+ _p.bbCache = bb;
+ _p.bbCachePosKey = currPosKey;
+ } else {
+ bb = _p.bbCache;
+ }
+ if (!usingDefOpts) {
+ var isNode = ele.isNode();
+ bb = makeBoundingBox();
+ if (opts.includeNodes && isNode || opts.includeEdges && !isNode) {
+ if (opts.includeOverlays) {
+ updateBoundsFromBox(bb, _p.overlayBounds);
+ } else {
+ updateBoundsFromBox(bb, _p.bodyBounds);
+ }
+ }
+ if (opts.includeLabels) {
+ if (opts.includeMainLabels && (!isEdge || opts.includeSourceLabels && opts.includeTargetLabels)) {
+ updateBoundsFromBox(bb, _p.labelBounds.all);
+ } else {
+ if (opts.includeMainLabels) {
+ updateBoundsFromBox(bb, _p.labelBounds.mainRot);
+ }
+ if (opts.includeSourceLabels) {
+ updateBoundsFromBox(bb, _p.labelBounds.sourceRot);
+ }
+ if (opts.includeTargetLabels) {
+ updateBoundsFromBox(bb, _p.labelBounds.targetRot);
+ }
+ }
+ }
+ bb.w = bb.x2 - bb.x1;
+ bb.h = bb.y2 - bb.y1;
+ }
+ return bb;
+ };
+ var defBbOpts = {
+ includeNodes: true,
+ includeEdges: true,
+ includeLabels: true,
+ includeMainLabels: true,
+ includeSourceLabels: true,
+ includeTargetLabels: true,
+ includeOverlays: true,
+ includeUnderlays: true,
+ useCache: true
+ };
+ var defBbOptsKey = getKey(defBbOpts);
+ var filledBbOpts = defaults$g(defBbOpts);
+ elesfn$b.boundingBox = function(options) {
+ var bounds2;
+ if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (options === void 0 || options.useCache === void 0 || options.useCache === true)) {
+ if (options === void 0) {
+ options = defBbOpts;
+ } else {
+ options = filledBbOpts(options);
+ }
+ bounds2 = cachedBoundingBoxImpl(this[0], options);
+ } else {
+ bounds2 = makeBoundingBox();
+ options = options || defBbOpts;
+ var opts = filledBbOpts(options);
+ var eles = this;
+ var cy = eles.cy();
+ var styleEnabled = cy.styleEnabled();
+ if (styleEnabled) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var _p = ele._private;
+ var currPosKey = getBoundingBoxPosKey(ele);
+ var isPosKeySame = _p.bbCachePosKey === currPosKey;
+ var useCache = opts.useCache && isPosKeySame && !_p.styleDirty;
+ ele.recalculateRenderedStyle(useCache);
+ }
+ }
+ this.updateCompoundBounds(!options.useCache);
+ for (var _i = 0; _i < eles.length; _i++) {
+ var _ele = eles[_i];
+ updateBoundsFromBox(bounds2, cachedBoundingBoxImpl(_ele, opts));
+ }
+ }
+ bounds2.x1 = noninf(bounds2.x1);
+ bounds2.y1 = noninf(bounds2.y1);
+ bounds2.x2 = noninf(bounds2.x2);
+ bounds2.y2 = noninf(bounds2.y2);
+ bounds2.w = noninf(bounds2.x2 - bounds2.x1);
+ bounds2.h = noninf(bounds2.y2 - bounds2.y1);
+ return bounds2;
+ };
+ elesfn$b.dirtyBoundingBoxCache = function() {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var _p = this[i2]._private;
+ _p.bbCache = null;
+ _p.bbCachePosKey = null;
+ _p.bodyBounds = null;
+ _p.overlayBounds = null;
+ _p.labelBounds.all = null;
+ _p.labelBounds.source = null;
+ _p.labelBounds.target = null;
+ _p.labelBounds.main = null;
+ _p.labelBounds.sourceRot = null;
+ _p.labelBounds.targetRot = null;
+ _p.labelBounds.mainRot = null;
+ _p.arrowBounds.source = null;
+ _p.arrowBounds.target = null;
+ _p.arrowBounds["mid-source"] = null;
+ _p.arrowBounds["mid-target"] = null;
+ }
+ this.emitAndNotify("bounds");
+ return this;
+ };
+ elesfn$b.boundingBoxAt = function(fn2) {
+ var nodes2 = this.nodes();
+ var cy = this.cy();
+ var hasCompoundNodes = cy.hasCompoundNodes();
+ var parents = cy.collection();
+ if (hasCompoundNodes) {
+ parents = nodes2.filter(function(node) {
+ return node.isParent();
+ });
+ nodes2 = nodes2.not(parents);
+ }
+ if (plainObject(fn2)) {
+ var obj = fn2;
+ fn2 = function fn3() {
+ return obj;
+ };
+ }
+ var storeOldPos = function storeOldPos2(node, i2) {
+ return node._private.bbAtOldPos = fn2(node, i2);
+ };
+ var getOldPos = function getOldPos2(node) {
+ return node._private.bbAtOldPos;
+ };
+ cy.startBatch();
+ nodes2.forEach(storeOldPos).silentPositions(fn2);
+ if (hasCompoundNodes) {
+ parents.dirtyCompoundBoundsCache();
+ parents.dirtyBoundingBoxCache();
+ parents.updateCompoundBounds(true);
+ }
+ var bb = copyBoundingBox(this.boundingBox({
+ useCache: false
+ }));
+ nodes2.silentPositions(getOldPos);
+ if (hasCompoundNodes) {
+ parents.dirtyCompoundBoundsCache();
+ parents.dirtyBoundingBoxCache();
+ parents.updateCompoundBounds(true);
+ }
+ cy.endBatch();
+ return bb;
+ };
+ fn$3.boundingbox = fn$3.bb = fn$3.boundingBox;
+ fn$3.renderedBoundingbox = fn$3.renderedBoundingBox;
+ var bounds = elesfn$b;
+ var fn$2, elesfn$a;
+ fn$2 = elesfn$a = {};
+ var defineDimFns = function defineDimFns2(opts) {
+ opts.uppercaseName = capitalize(opts.name);
+ opts.autoName = "auto" + opts.uppercaseName;
+ opts.labelName = "label" + opts.uppercaseName;
+ opts.outerName = "outer" + opts.uppercaseName;
+ opts.uppercaseOuterName = capitalize(opts.outerName);
+ fn$2[opts.name] = function dimImpl() {
+ var ele = this[0];
+ var _p = ele._private;
+ var cy = _p.cy;
+ var styleEnabled = cy._private.styleEnabled;
+ if (ele) {
+ if (styleEnabled) {
+ if (ele.isParent()) {
+ ele.updateCompoundBounds();
+ return _p[opts.autoName] || 0;
+ }
+ var d = ele.pstyle(opts.name);
+ switch (d.strValue) {
+ case "label":
+ ele.recalculateRenderedStyle();
+ return _p.rstyle[opts.labelName] || 0;
+ default:
+ return d.pfValue;
+ }
+ } else {
+ return 1;
+ }
+ }
+ };
+ fn$2["outer" + opts.uppercaseName] = function outerDimImpl() {
+ var ele = this[0];
+ var _p = ele._private;
+ var cy = _p.cy;
+ var styleEnabled = cy._private.styleEnabled;
+ if (ele) {
+ if (styleEnabled) {
+ var dim = ele[opts.name]();
+ var border = ele.pstyle("border-width").pfValue;
+ var padding = 2 * ele.padding();
+ return dim + border + padding;
+ } else {
+ return 1;
+ }
+ }
+ };
+ fn$2["rendered" + opts.uppercaseName] = function renderedDimImpl() {
+ var ele = this[0];
+ if (ele) {
+ var d = ele[opts.name]();
+ return d * this.cy().zoom();
+ }
+ };
+ fn$2["rendered" + opts.uppercaseOuterName] = function renderedOuterDimImpl() {
+ var ele = this[0];
+ if (ele) {
+ var od = ele[opts.outerName]();
+ return od * this.cy().zoom();
+ }
+ };
+ };
+ defineDimFns({
+ name: "width"
+ });
+ defineDimFns({
+ name: "height"
+ });
+ elesfn$a.padding = function() {
+ var ele = this[0];
+ var _p = ele._private;
+ if (ele.isParent()) {
+ ele.updateCompoundBounds();
+ if (_p.autoPadding !== void 0) {
+ return _p.autoPadding;
+ } else {
+ return ele.pstyle("padding").pfValue;
+ }
+ } else {
+ return ele.pstyle("padding").pfValue;
+ }
+ };
+ elesfn$a.paddedHeight = function() {
+ var ele = this[0];
+ return ele.height() + 2 * ele.padding();
+ };
+ elesfn$a.paddedWidth = function() {
+ var ele = this[0];
+ return ele.width() + 2 * ele.padding();
+ };
+ var widthHeight = elesfn$a;
+ var ifEdge = function ifEdge2(ele, getValue2) {
+ if (ele.isEdge()) {
+ return getValue2(ele);
+ }
+ };
+ var ifEdgeRenderedPosition = function ifEdgeRenderedPosition2(ele, getPoint) {
+ if (ele.isEdge()) {
+ var cy = ele.cy();
+ return modelToRenderedPosition(getPoint(ele), cy.zoom(), cy.pan());
+ }
+ };
+ var ifEdgeRenderedPositions = function ifEdgeRenderedPositions2(ele, getPoints) {
+ if (ele.isEdge()) {
+ var cy = ele.cy();
+ var pan = cy.pan();
+ var zoom = cy.zoom();
+ return getPoints(ele).map(function(p2) {
+ return modelToRenderedPosition(p2, zoom, pan);
+ });
+ }
+ };
+ var controlPoints = function controlPoints2(ele) {
+ return ele.renderer().getControlPoints(ele);
+ };
+ var segmentPoints = function segmentPoints2(ele) {
+ return ele.renderer().getSegmentPoints(ele);
+ };
+ var sourceEndpoint = function sourceEndpoint2(ele) {
+ return ele.renderer().getSourceEndpoint(ele);
+ };
+ var targetEndpoint = function targetEndpoint2(ele) {
+ return ele.renderer().getTargetEndpoint(ele);
+ };
+ var midpoint = function midpoint2(ele) {
+ return ele.renderer().getEdgeMidpoint(ele);
+ };
+ var pts = {
+ controlPoints: {
+ get: controlPoints,
+ mult: true
+ },
+ segmentPoints: {
+ get: segmentPoints,
+ mult: true
+ },
+ sourceEndpoint: {
+ get: sourceEndpoint
+ },
+ targetEndpoint: {
+ get: targetEndpoint
+ },
+ midpoint: {
+ get: midpoint
+ }
+ };
+ var renderedName = function renderedName2(name2) {
+ return "rendered" + name2[0].toUpperCase() + name2.substr(1);
+ };
+ var edgePoints = Object.keys(pts).reduce(function(obj, name2) {
+ var spec = pts[name2];
+ var rName = renderedName(name2);
+ obj[name2] = function() {
+ return ifEdge(this, spec.get);
+ };
+ if (spec.mult) {
+ obj[rName] = function() {
+ return ifEdgeRenderedPositions(this, spec.get);
+ };
+ } else {
+ obj[rName] = function() {
+ return ifEdgeRenderedPosition(this, spec.get);
+ };
+ }
+ return obj;
+ }, {});
+ var dimensions = extend({}, position, bounds, widthHeight, edgePoints);
+ /*!
+ Event object based on jQuery events, MIT license
+
+ https://jquery.org/license/
+ https://tldrlegal.com/license/mit-license
+ https://github.com/jquery/jquery/blob/master/src/event.js
+ */
+ var Event = function Event2(src, props) {
+ this.recycle(src, props);
+ };
+ function returnFalse() {
+ return false;
+ }
+ function returnTrue() {
+ return true;
+ }
+ Event.prototype = {
+ instanceString: function instanceString() {
+ return "event";
+ },
+ recycle: function recycle(src, props) {
+ this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse;
+ if (src != null && src.preventDefault) {
+ this.type = src.type;
+ this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse;
+ } else if (src != null && src.type) {
+ props = src;
+ } else {
+ this.type = src;
+ }
+ if (props != null) {
+ this.originalEvent = props.originalEvent;
+ this.type = props.type != null ? props.type : this.type;
+ this.cy = props.cy;
+ this.target = props.target;
+ this.position = props.position;
+ this.renderedPosition = props.renderedPosition;
+ this.namespace = props.namespace;
+ this.layout = props.layout;
+ }
+ if (this.cy != null && this.position != null && this.renderedPosition == null) {
+ var pos = this.position;
+ var zoom = this.cy.zoom();
+ var pan = this.cy.pan();
+ this.renderedPosition = {
+ x: pos.x * zoom + pan.x,
+ y: pos.y * zoom + pan.y
+ };
+ }
+ this.timeStamp = src && src.timeStamp || Date.now();
+ },
+ preventDefault: function preventDefault() {
+ this.isDefaultPrevented = returnTrue;
+ var e = this.originalEvent;
+ if (!e) {
+ return;
+ }
+ if (e.preventDefault) {
+ e.preventDefault();
+ }
+ },
+ stopPropagation: function stopPropagation() {
+ this.isPropagationStopped = returnTrue;
+ var e = this.originalEvent;
+ if (!e) {
+ return;
+ }
+ if (e.stopPropagation) {
+ e.stopPropagation();
+ }
+ },
+ stopImmediatePropagation: function stopImmediatePropagation() {
+ this.isImmediatePropagationStopped = returnTrue;
+ this.stopPropagation();
+ },
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse
+ };
+ var eventRegex = /^([^.]+)(\.(?:[^.]+))?$/;
+ var universalNamespace = ".*";
+ var defaults$8 = {
+ qualifierCompare: function qualifierCompare(q1, q2) {
+ return q1 === q2;
+ },
+ eventMatches: function eventMatches() {
+ return true;
+ },
+ addEventFields: function addEventFields() {
+ },
+ callbackContext: function callbackContext(context) {
+ return context;
+ },
+ beforeEmit: function beforeEmit() {
+ },
+ afterEmit: function afterEmit() {
+ },
+ bubble: function bubble() {
+ return false;
+ },
+ parent: function parent() {
+ return null;
+ },
+ context: null
+ };
+ var defaultsKeys = Object.keys(defaults$8);
+ var emptyOpts = {};
+ function Emitter() {
+ var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : emptyOpts;
+ var context = arguments.length > 1 ? arguments[1] : void 0;
+ for (var i2 = 0; i2 < defaultsKeys.length; i2++) {
+ var key = defaultsKeys[i2];
+ this[key] = opts[key] || defaults$8[key];
+ }
+ this.context = context || this.context;
+ this.listeners = [];
+ this.emitting = 0;
+ }
+ var p = Emitter.prototype;
+ var forEachEvent = function forEachEvent2(self2, handler, events, qualifier, callback, conf, confOverrides) {
+ if (fn$6(qualifier)) {
+ callback = qualifier;
+ qualifier = null;
+ }
+ if (confOverrides) {
+ if (conf == null) {
+ conf = confOverrides;
+ } else {
+ conf = extend({}, conf, confOverrides);
+ }
+ }
+ var eventList = array(events) ? events : events.split(/\s+/);
+ for (var i2 = 0; i2 < eventList.length; i2++) {
+ var evt = eventList[i2];
+ if (emptyString(evt)) {
+ continue;
+ }
+ var match2 = evt.match(eventRegex);
+ if (match2) {
+ var type = match2[1];
+ var namespace = match2[2] ? match2[2] : null;
+ var ret = handler(self2, evt, type, namespace, qualifier, callback, conf);
+ if (ret === false) {
+ break;
+ }
+ }
+ }
+ };
+ var makeEventObj = function makeEventObj2(self2, obj) {
+ self2.addEventFields(self2.context, obj);
+ return new Event(obj.type, obj);
+ };
+ var forEachEventObj = function forEachEventObj2(self2, handler, events) {
+ if (event(events)) {
+ handler(self2, events);
+ return;
+ } else if (plainObject(events)) {
+ handler(self2, makeEventObj(self2, events));
+ return;
+ }
+ var eventList = array(events) ? events : events.split(/\s+/);
+ for (var i2 = 0; i2 < eventList.length; i2++) {
+ var evt = eventList[i2];
+ if (emptyString(evt)) {
+ continue;
+ }
+ var match2 = evt.match(eventRegex);
+ if (match2) {
+ var type = match2[1];
+ var namespace = match2[2] ? match2[2] : null;
+ var eventObj = makeEventObj(self2, {
+ type,
+ namespace,
+ target: self2.context
+ });
+ handler(self2, eventObj);
+ }
+ }
+ };
+ p.on = p.addListener = function(events, qualifier, callback, conf, confOverrides) {
+ forEachEvent(this, function(self2, event2, type, namespace, qualifier2, callback2, conf2) {
+ if (fn$6(callback2)) {
+ self2.listeners.push({
+ event: event2,
+ // full event string
+ callback: callback2,
+ // callback to run
+ type,
+ // the event type (e.g. 'click')
+ namespace,
+ // the event namespace (e.g. ".foo")
+ qualifier: qualifier2,
+ // a restriction on whether to match this emitter
+ conf: conf2
+ // additional configuration
+ });
+ }
+ }, events, qualifier, callback, conf, confOverrides);
+ return this;
+ };
+ p.one = function(events, qualifier, callback, conf) {
+ return this.on(events, qualifier, callback, conf, {
+ one: true
+ });
+ };
+ p.removeListener = p.off = function(events, qualifier, callback, conf) {
+ var _this = this;
+ if (this.emitting !== 0) {
+ this.listeners = copyArray$1(this.listeners);
+ }
+ var listeners = this.listeners;
+ var _loop = function _loop2(i3) {
+ var listener = listeners[i3];
+ forEachEvent(_this, function(self2, event2, type, namespace, qualifier2, callback2) {
+ if ((listener.type === type || events === "*") && (!namespace && listener.namespace !== ".*" || listener.namespace === namespace) && (!qualifier2 || self2.qualifierCompare(listener.qualifier, qualifier2)) && (!callback2 || listener.callback === callback2)) {
+ listeners.splice(i3, 1);
+ return false;
+ }
+ }, events, qualifier, callback, conf);
+ };
+ for (var i2 = listeners.length - 1; i2 >= 0; i2--) {
+ _loop(i2);
+ }
+ return this;
+ };
+ p.removeAllListeners = function() {
+ return this.removeListener("*");
+ };
+ p.emit = p.trigger = function(events, extraParams, manualCallback) {
+ var listeners = this.listeners;
+ var numListenersBeforeEmit = listeners.length;
+ this.emitting++;
+ if (!array(extraParams)) {
+ extraParams = [extraParams];
+ }
+ forEachEventObj(this, function(self2, eventObj) {
+ if (manualCallback != null) {
+ listeners = [{
+ event: eventObj.event,
+ type: eventObj.type,
+ namespace: eventObj.namespace,
+ callback: manualCallback
+ }];
+ numListenersBeforeEmit = listeners.length;
+ }
+ var _loop2 = function _loop22(i3) {
+ var listener = listeners[i3];
+ if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self2.eventMatches(self2.context, listener, eventObj)) {
+ var args = [eventObj];
+ if (extraParams != null) {
+ push(args, extraParams);
+ }
+ self2.beforeEmit(self2.context, listener, eventObj);
+ if (listener.conf && listener.conf.one) {
+ self2.listeners = self2.listeners.filter(function(l) {
+ return l !== listener;
+ });
+ }
+ var context = self2.callbackContext(self2.context, listener, eventObj);
+ var ret = listener.callback.apply(context, args);
+ self2.afterEmit(self2.context, listener, eventObj);
+ if (ret === false) {
+ eventObj.stopPropagation();
+ eventObj.preventDefault();
+ }
+ }
+ };
+ for (var i2 = 0; i2 < numListenersBeforeEmit; i2++) {
+ _loop2(i2);
+ }
+ if (self2.bubble(self2.context) && !eventObj.isPropagationStopped()) {
+ self2.parent(self2.context).emit(eventObj, extraParams);
+ }
+ }, events);
+ this.emitting--;
+ return this;
+ };
+ var emitterOptions$1 = {
+ qualifierCompare: function qualifierCompare(selector1, selector2) {
+ if (selector1 == null || selector2 == null) {
+ return selector1 == null && selector2 == null;
+ } else {
+ return selector1.sameText(selector2);
+ }
+ },
+ eventMatches: function eventMatches(ele, listener, eventObj) {
+ var selector = listener.qualifier;
+ if (selector != null) {
+ return ele !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);
+ }
+ return true;
+ },
+ addEventFields: function addEventFields(ele, evt) {
+ evt.cy = ele.cy();
+ evt.target = ele;
+ },
+ callbackContext: function callbackContext(ele, listener, eventObj) {
+ return listener.qualifier != null ? eventObj.target : ele;
+ },
+ beforeEmit: function beforeEmit(context, listener) {
+ if (listener.conf && listener.conf.once) {
+ listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback);
+ }
+ },
+ bubble: function bubble() {
+ return true;
+ },
+ parent: function parent(ele) {
+ return ele.isChild() ? ele.parent() : ele.cy();
+ }
+ };
+ var argSelector$1 = function argSelector2(arg) {
+ if (string(arg)) {
+ return new Selector(arg);
+ } else {
+ return arg;
+ }
+ };
+ var elesfn$9 = {
+ createEmitter: function createEmitter() {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var _p = ele._private;
+ if (!_p.emitter) {
+ _p.emitter = new Emitter(emitterOptions$1, ele);
+ }
+ }
+ return this;
+ },
+ emitter: function emitter() {
+ return this._private.emitter;
+ },
+ on: function on(events, selector, callback) {
+ var argSel = argSelector$1(selector);
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().on(events, argSel, callback);
+ }
+ return this;
+ },
+ removeListener: function removeListener(events, selector, callback) {
+ var argSel = argSelector$1(selector);
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().removeListener(events, argSel, callback);
+ }
+ return this;
+ },
+ removeAllListeners: function removeAllListeners() {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().removeAllListeners();
+ }
+ return this;
+ },
+ one: function one(events, selector, callback) {
+ var argSel = argSelector$1(selector);
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().one(events, argSel, callback);
+ }
+ return this;
+ },
+ once: function once(events, selector, callback) {
+ var argSel = argSelector$1(selector);
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().on(events, argSel, callback, {
+ once: true,
+ onceCollection: this
+ });
+ }
+ },
+ emit: function emit(events, extraParams) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().emit(events, extraParams);
+ }
+ return this;
+ },
+ emitAndNotify: function emitAndNotify(event2, extraParams) {
+ if (this.length === 0) {
+ return;
+ }
+ this.cy().notify(event2, this);
+ this.emit(event2, extraParams);
+ return this;
+ }
+ };
+ define.eventAliasesOn(elesfn$9);
+ var elesfn$8 = {
+ nodes: function nodes2(selector) {
+ return this.filter(function(ele) {
+ return ele.isNode();
+ }).filter(selector);
+ },
+ edges: function edges(selector) {
+ return this.filter(function(ele) {
+ return ele.isEdge();
+ }).filter(selector);
+ },
+ // internal helper to get nodes and edges as separate collections with single iteration over elements
+ byGroup: function byGroup() {
+ var nodes2 = this.spawn();
+ var edges = this.spawn();
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ if (ele.isNode()) {
+ nodes2.push(ele);
+ } else {
+ edges.push(ele);
+ }
+ }
+ return {
+ nodes: nodes2,
+ edges
+ };
+ },
+ filter: function filter2(_filter, thisArg) {
+ if (_filter === void 0) {
+ return this;
+ } else if (string(_filter) || elementOrCollection(_filter)) {
+ return new Selector(_filter).filter(this);
+ } else if (fn$6(_filter)) {
+ var filterEles = this.spawn();
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var include = thisArg ? _filter.apply(thisArg, [ele, i2, eles]) : _filter(ele, i2, eles);
+ if (include) {
+ filterEles.push(ele);
+ }
+ }
+ return filterEles;
+ }
+ return this.spawn();
+ },
+ not: function not(toRemove) {
+ if (!toRemove) {
+ return this;
+ } else {
+ if (string(toRemove)) {
+ toRemove = this.filter(toRemove);
+ }
+ var elements2 = this.spawn();
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var element2 = this[i2];
+ var remove = toRemove.has(element2);
+ if (!remove) {
+ elements2.push(element2);
+ }
+ }
+ return elements2;
+ }
+ },
+ absoluteComplement: function absoluteComplement() {
+ var cy = this.cy();
+ return cy.mutableElements().not(this);
+ },
+ intersect: function intersect(other) {
+ if (string(other)) {
+ var selector = other;
+ return this.filter(selector);
+ }
+ var elements2 = this.spawn();
+ var col1 = this;
+ var col2 = other;
+ var col1Smaller = this.length < other.length;
+ var colS = col1Smaller ? col1 : col2;
+ var colL = col1Smaller ? col2 : col1;
+ for (var i2 = 0; i2 < colS.length; i2++) {
+ var ele = colS[i2];
+ if (colL.has(ele)) {
+ elements2.push(ele);
+ }
+ }
+ return elements2;
+ },
+ xor: function xor(other) {
+ var cy = this._private.cy;
+ if (string(other)) {
+ other = cy.$(other);
+ }
+ var elements2 = this.spawn();
+ var col1 = this;
+ var col2 = other;
+ var add = function add2(col, other2) {
+ for (var i2 = 0; i2 < col.length; i2++) {
+ var ele = col[i2];
+ var id = ele._private.data.id;
+ var inOther = other2.hasElementWithId(id);
+ if (!inOther) {
+ elements2.push(ele);
+ }
+ }
+ };
+ add(col1, col2);
+ add(col2, col1);
+ return elements2;
+ },
+ diff: function diff(other) {
+ var cy = this._private.cy;
+ if (string(other)) {
+ other = cy.$(other);
+ }
+ var left = this.spawn();
+ var right = this.spawn();
+ var both = this.spawn();
+ var col1 = this;
+ var col2 = other;
+ var add = function add2(col, other2, retEles) {
+ for (var i2 = 0; i2 < col.length; i2++) {
+ var ele = col[i2];
+ var id = ele._private.data.id;
+ var inOther = other2.hasElementWithId(id);
+ if (inOther) {
+ both.merge(ele);
+ } else {
+ retEles.push(ele);
+ }
+ }
+ };
+ add(col1, col2, left);
+ add(col2, col1, right);
+ return {
+ left,
+ right,
+ both
+ };
+ },
+ add: function add(toAdd) {
+ var cy = this._private.cy;
+ if (!toAdd) {
+ return this;
+ }
+ if (string(toAdd)) {
+ var selector = toAdd;
+ toAdd = cy.mutableElements().filter(selector);
+ }
+ var elements2 = this.spawnSelf();
+ for (var i2 = 0; i2 < toAdd.length; i2++) {
+ var ele = toAdd[i2];
+ var add2 = !this.has(ele);
+ if (add2) {
+ elements2.push(ele);
+ }
+ }
+ return elements2;
+ },
+ // in place merge on calling collection
+ merge: function merge(toAdd) {
+ var _p = this._private;
+ var cy = _p.cy;
+ if (!toAdd) {
+ return this;
+ }
+ if (toAdd && string(toAdd)) {
+ var selector = toAdd;
+ toAdd = cy.mutableElements().filter(selector);
+ }
+ var map = _p.map;
+ for (var i2 = 0; i2 < toAdd.length; i2++) {
+ var toAddEle = toAdd[i2];
+ var id = toAddEle._private.data.id;
+ var add = !map.has(id);
+ if (add) {
+ var index = this.length++;
+ this[index] = toAddEle;
+ map.set(id, {
+ ele: toAddEle,
+ index
+ });
+ }
+ }
+ return this;
+ },
+ unmergeAt: function unmergeAt(i2) {
+ var ele = this[i2];
+ var id = ele.id();
+ var _p = this._private;
+ var map = _p.map;
+ this[i2] = void 0;
+ map["delete"](id);
+ var unmergedLastEle = i2 === this.length - 1;
+ if (this.length > 1 && !unmergedLastEle) {
+ var lastEleI = this.length - 1;
+ var lastEle = this[lastEleI];
+ var lastEleId = lastEle._private.data.id;
+ this[lastEleI] = void 0;
+ this[i2] = lastEle;
+ map.set(lastEleId, {
+ ele: lastEle,
+ index: i2
+ });
+ }
+ this.length--;
+ return this;
+ },
+ // remove single ele in place in calling collection
+ unmergeOne: function unmergeOne(ele) {
+ ele = ele[0];
+ var _p = this._private;
+ var id = ele._private.data.id;
+ var map = _p.map;
+ var entry = map.get(id);
+ if (!entry) {
+ return this;
+ }
+ var i2 = entry.index;
+ this.unmergeAt(i2);
+ return this;
+ },
+ // remove eles in place on calling collection
+ unmerge: function unmerge(toRemove) {
+ var cy = this._private.cy;
+ if (!toRemove) {
+ return this;
+ }
+ if (toRemove && string(toRemove)) {
+ var selector = toRemove;
+ toRemove = cy.mutableElements().filter(selector);
+ }
+ for (var i2 = 0; i2 < toRemove.length; i2++) {
+ this.unmergeOne(toRemove[i2]);
+ }
+ return this;
+ },
+ unmergeBy: function unmergeBy(toRmFn) {
+ for (var i2 = this.length - 1; i2 >= 0; i2--) {
+ var ele = this[i2];
+ if (toRmFn(ele)) {
+ this.unmergeAt(i2);
+ }
+ }
+ return this;
+ },
+ map: function map(mapFn, thisArg) {
+ var arr = [];
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var ret = thisArg ? mapFn.apply(thisArg, [ele, i2, eles]) : mapFn(ele, i2, eles);
+ arr.push(ret);
+ }
+ return arr;
+ },
+ reduce: function reduce(fn2, initialValue) {
+ var val = initialValue;
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ val = fn2(val, eles[i2], i2, eles);
+ }
+ return val;
+ },
+ max: function max2(valFn, thisArg) {
+ var max3 = -Infinity;
+ var maxEle;
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var val = thisArg ? valFn.apply(thisArg, [ele, i2, eles]) : valFn(ele, i2, eles);
+ if (val > max3) {
+ max3 = val;
+ maxEle = ele;
+ }
+ }
+ return {
+ value: max3,
+ ele: maxEle
+ };
+ },
+ min: function min2(valFn, thisArg) {
+ var min3 = Infinity;
+ var minEle;
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var val = thisArg ? valFn.apply(thisArg, [ele, i2, eles]) : valFn(ele, i2, eles);
+ if (val < min3) {
+ min3 = val;
+ minEle = ele;
+ }
+ }
+ return {
+ value: min3,
+ ele: minEle
+ };
+ }
+ };
+ var fn$1 = elesfn$8;
+ fn$1["u"] = fn$1["|"] = fn$1["+"] = fn$1.union = fn$1.or = fn$1.add;
+ fn$1["\\"] = fn$1["!"] = fn$1["-"] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not;
+ fn$1["n"] = fn$1["&"] = fn$1["."] = fn$1.and = fn$1.intersection = fn$1.intersect;
+ fn$1["^"] = fn$1["(+)"] = fn$1["(-)"] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor;
+ fn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter;
+ fn$1.complement = fn$1.abscomp = fn$1.absoluteComplement;
+ var elesfn$7 = {
+ isNode: function isNode() {
+ return this.group() === "nodes";
+ },
+ isEdge: function isEdge() {
+ return this.group() === "edges";
+ },
+ isLoop: function isLoop() {
+ return this.isEdge() && this.source()[0] === this.target()[0];
+ },
+ isSimple: function isSimple() {
+ return this.isEdge() && this.source()[0] !== this.target()[0];
+ },
+ group: function group() {
+ var ele = this[0];
+ if (ele) {
+ return ele._private.group;
+ }
+ }
+ };
+ var zIndexSort = function zIndexSort2(a, b) {
+ var cy = a.cy();
+ var hasCompoundNodes = cy.hasCompoundNodes();
+ function getDepth(ele) {
+ var style = ele.pstyle("z-compound-depth");
+ if (style.value === "auto") {
+ return hasCompoundNodes ? ele.zDepth() : 0;
+ } else if (style.value === "bottom") {
+ return -1;
+ } else if (style.value === "top") {
+ return MAX_INT$1;
+ }
+ return 0;
+ }
+ var depthDiff = getDepth(a) - getDepth(b);
+ if (depthDiff !== 0) {
+ return depthDiff;
+ }
+ function getEleDepth(ele) {
+ var style = ele.pstyle("z-index-compare");
+ if (style.value === "auto") {
+ return ele.isNode() ? 1 : 0;
+ }
+ return 0;
+ }
+ var eleDiff = getEleDepth(a) - getEleDepth(b);
+ if (eleDiff !== 0) {
+ return eleDiff;
+ }
+ var zDiff = a.pstyle("z-index").value - b.pstyle("z-index").value;
+ if (zDiff !== 0) {
+ return zDiff;
+ }
+ return a.poolIndex() - b.poolIndex();
+ };
+ var elesfn$6 = {
+ forEach: function forEach(fn2, thisArg) {
+ if (fn$6(fn2)) {
+ var N = this.length;
+ for (var i2 = 0; i2 < N; i2++) {
+ var ele = this[i2];
+ var ret = thisArg ? fn2.apply(thisArg, [ele, i2, this]) : fn2(ele, i2, this);
+ if (ret === false) {
+ break;
+ }
+ }
+ }
+ return this;
+ },
+ toArray: function toArray() {
+ var array2 = [];
+ for (var i2 = 0; i2 < this.length; i2++) {
+ array2.push(this[i2]);
+ }
+ return array2;
+ },
+ slice: function slice(start, end) {
+ var array2 = [];
+ var thisSize = this.length;
+ if (end == null) {
+ end = thisSize;
+ }
+ if (start == null) {
+ start = 0;
+ }
+ if (start < 0) {
+ start = thisSize + start;
+ }
+ if (end < 0) {
+ end = thisSize + end;
+ }
+ for (var i2 = start; i2 >= 0 && i2 < end && i2 < thisSize; i2++) {
+ array2.push(this[i2]);
+ }
+ return this.spawn(array2);
+ },
+ size: function size() {
+ return this.length;
+ },
+ eq: function eq2(i2) {
+ return this[i2] || this.spawn();
+ },
+ first: function first() {
+ return this[0] || this.spawn();
+ },
+ last: function last() {
+ return this[this.length - 1] || this.spawn();
+ },
+ empty: function empty() {
+ return this.length === 0;
+ },
+ nonempty: function nonempty() {
+ return !this.empty();
+ },
+ sort: function sort(sortFn) {
+ if (!fn$6(sortFn)) {
+ return this;
+ }
+ var sorted = this.toArray().sort(sortFn);
+ return this.spawn(sorted);
+ },
+ sortByZIndex: function sortByZIndex() {
+ return this.sort(zIndexSort);
+ },
+ zDepth: function zDepth() {
+ var ele = this[0];
+ if (!ele) {
+ return void 0;
+ }
+ var _p = ele._private;
+ var group = _p.group;
+ if (group === "nodes") {
+ var depth = _p.data.parent ? ele.parents().size() : 0;
+ if (!ele.isParent()) {
+ return MAX_INT$1 - 1;
+ }
+ return depth;
+ } else {
+ var src = _p.source;
+ var tgt = _p.target;
+ var srcDepth = src.zDepth();
+ var tgtDepth = tgt.zDepth();
+ return Math.max(srcDepth, tgtDepth, 0);
+ }
+ }
+ };
+ elesfn$6.each = elesfn$6.forEach;
+ var defineSymbolIterator = function defineSymbolIterator2() {
+ var typeofUndef = "undefined";
+ var isIteratorSupported = (typeof Symbol === "undefined" ? "undefined" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef;
+ if (isIteratorSupported) {
+ elesfn$6[Symbol.iterator] = function() {
+ var _this = this;
+ var entry = {
+ value: void 0,
+ done: false
+ };
+ var i2 = 0;
+ var length = this.length;
+ return _defineProperty$1({
+ next: function next2() {
+ if (i2 < length) {
+ entry.value = _this[i2++];
+ } else {
+ entry.value = void 0;
+ entry.done = true;
+ }
+ return entry;
+ }
+ }, Symbol.iterator, function() {
+ return this;
+ });
+ };
+ }
+ };
+ defineSymbolIterator();
+ var getLayoutDimensionOptions = defaults$g({
+ nodeDimensionsIncludeLabels: false
+ });
+ var elesfn$5 = {
+ // Calculates and returns node dimensions { x, y } based on options given
+ layoutDimensions: function layoutDimensions(options) {
+ options = getLayoutDimensionOptions(options);
+ var dims;
+ if (!this.takesUpSpace()) {
+ dims = {
+ w: 0,
+ h: 0
+ };
+ } else if (options.nodeDimensionsIncludeLabels) {
+ var bbDim = this.boundingBox();
+ dims = {
+ w: bbDim.w,
+ h: bbDim.h
+ };
+ } else {
+ dims = {
+ w: this.outerWidth(),
+ h: this.outerHeight()
+ };
+ }
+ if (dims.w === 0 || dims.h === 0) {
+ dims.w = dims.h = 1;
+ }
+ return dims;
+ },
+ // using standard layout options, apply position function (w/ or w/o animation)
+ layoutPositions: function layoutPositions(layout2, options, fn2) {
+ var nodes2 = this.nodes().filter(function(n) {
+ return !n.isParent();
+ });
+ var cy = this.cy();
+ var layoutEles = options.eles;
+ var getMemoizeKey = function getMemoizeKey2(node2) {
+ return node2.id();
+ };
+ var fnMem = memoize$1(fn2, getMemoizeKey);
+ layout2.emit({
+ type: "layoutstart",
+ layout: layout2
+ });
+ layout2.animations = [];
+ var calculateSpacing = function calculateSpacing2(spacing, nodesBb, pos) {
+ var center = {
+ x: nodesBb.x1 + nodesBb.w / 2,
+ y: nodesBb.y1 + nodesBb.h / 2
+ };
+ var spacingVector = {
+ // scale from center of bounding box (not necessarily 0,0)
+ x: (pos.x - center.x) * spacing,
+ y: (pos.y - center.y) * spacing
+ };
+ return {
+ x: center.x + spacingVector.x,
+ y: center.y + spacingVector.y
+ };
+ };
+ var useSpacingFactor = options.spacingFactor && options.spacingFactor !== 1;
+ var spacingBb = function spacingBb2() {
+ if (!useSpacingFactor) {
+ return null;
+ }
+ var bb2 = makeBoundingBox();
+ for (var i3 = 0; i3 < nodes2.length; i3++) {
+ var node2 = nodes2[i3];
+ var pos = fnMem(node2, i3);
+ expandBoundingBoxByPoint(bb2, pos.x, pos.y);
+ }
+ return bb2;
+ };
+ var bb = spacingBb();
+ var getFinalPos = memoize$1(function(node2, i3) {
+ var newPos2 = fnMem(node2, i3);
+ if (useSpacingFactor) {
+ var spacing = Math.abs(options.spacingFactor);
+ newPos2 = calculateSpacing(spacing, bb, newPos2);
+ }
+ if (options.transform != null) {
+ newPos2 = options.transform(node2, newPos2);
+ }
+ return newPos2;
+ }, getMemoizeKey);
+ if (options.animate) {
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ var node = nodes2[i2];
+ var newPos = getFinalPos(node, i2);
+ var animateNode = options.animateFilter == null || options.animateFilter(node, i2);
+ if (animateNode) {
+ var ani = node.animation({
+ position: newPos,
+ duration: options.animationDuration,
+ easing: options.animationEasing
+ });
+ layout2.animations.push(ani);
+ } else {
+ node.position(newPos);
+ }
+ }
+ if (options.fit) {
+ var fitAni = cy.animation({
+ fit: {
+ boundingBox: layoutEles.boundingBoxAt(getFinalPos),
+ padding: options.padding
+ },
+ duration: options.animationDuration,
+ easing: options.animationEasing
+ });
+ layout2.animations.push(fitAni);
+ } else if (options.zoom !== void 0 && options.pan !== void 0) {
+ var zoomPanAni = cy.animation({
+ zoom: options.zoom,
+ pan: options.pan,
+ duration: options.animationDuration,
+ easing: options.animationEasing
+ });
+ layout2.animations.push(zoomPanAni);
+ }
+ layout2.animations.forEach(function(ani2) {
+ return ani2.play();
+ });
+ layout2.one("layoutready", options.ready);
+ layout2.emit({
+ type: "layoutready",
+ layout: layout2
+ });
+ Promise$1.all(layout2.animations.map(function(ani2) {
+ return ani2.promise();
+ })).then(function() {
+ layout2.one("layoutstop", options.stop);
+ layout2.emit({
+ type: "layoutstop",
+ layout: layout2
+ });
+ });
+ } else {
+ nodes2.positions(getFinalPos);
+ if (options.fit) {
+ cy.fit(options.eles, options.padding);
+ }
+ if (options.zoom != null) {
+ cy.zoom(options.zoom);
+ }
+ if (options.pan) {
+ cy.pan(options.pan);
+ }
+ layout2.one("layoutready", options.ready);
+ layout2.emit({
+ type: "layoutready",
+ layout: layout2
+ });
+ layout2.one("layoutstop", options.stop);
+ layout2.emit({
+ type: "layoutstop",
+ layout: layout2
+ });
+ }
+ return this;
+ },
+ layout: function layout2(options) {
+ var cy = this.cy();
+ return cy.makeLayout(extend({}, options, {
+ eles: this
+ }));
+ }
+ };
+ elesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout;
+ function styleCache(key, fn2, ele) {
+ var _p = ele._private;
+ var cache2 = _p.styleCache = _p.styleCache || [];
+ var val;
+ if ((val = cache2[key]) != null) {
+ return val;
+ } else {
+ val = cache2[key] = fn2(ele);
+ return val;
+ }
+ }
+ function cacheStyleFunction(key, fn2) {
+ key = hashString(key);
+ return function cachedStyleFunction(ele) {
+ return styleCache(key, fn2, ele);
+ };
+ }
+ function cachePrototypeStyleFunction(key, fn2) {
+ key = hashString(key);
+ var selfFn = function selfFn2(ele) {
+ return fn2.call(ele);
+ };
+ return function cachedPrototypeStyleFunction() {
+ var ele = this[0];
+ if (ele) {
+ return styleCache(key, selfFn, ele);
+ }
+ };
+ }
+ var elesfn$4 = {
+ recalculateRenderedStyle: function recalculateRenderedStyle(useCache) {
+ var cy = this.cy();
+ var renderer2 = cy.renderer();
+ var styleEnabled = cy.styleEnabled();
+ if (renderer2 && styleEnabled) {
+ renderer2.recalculateRenderedStyle(this, useCache);
+ }
+ return this;
+ },
+ dirtyStyleCache: function dirtyStyleCache() {
+ var cy = this.cy();
+ var dirty = function dirty2(ele) {
+ return ele._private.styleCache = null;
+ };
+ if (cy.hasCompoundNodes()) {
+ var eles;
+ eles = this.spawnSelf().merge(this.descendants()).merge(this.parents());
+ eles.merge(eles.connectedEdges());
+ eles.forEach(dirty);
+ } else {
+ this.forEach(function(ele) {
+ dirty(ele);
+ ele.connectedEdges().forEach(dirty);
+ });
+ }
+ return this;
+ },
+ // fully updates (recalculates) the style for the elements
+ updateStyle: function updateStyle(notifyRenderer) {
+ var cy = this._private.cy;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ if (cy.batching()) {
+ var bEles = cy._private.batchStyleEles;
+ bEles.merge(this);
+ return this;
+ }
+ var hasCompounds = cy.hasCompoundNodes();
+ var updatedEles = this;
+ notifyRenderer = notifyRenderer || notifyRenderer === void 0 ? true : false;
+ if (hasCompounds) {
+ updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents());
+ }
+ var changedEles = updatedEles;
+ if (notifyRenderer) {
+ changedEles.emitAndNotify("style");
+ } else {
+ changedEles.emit("style");
+ }
+ updatedEles.forEach(function(ele) {
+ return ele._private.styleDirty = true;
+ });
+ return this;
+ },
+ // private: clears dirty flag and recalculates style
+ cleanStyle: function cleanStyle() {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return;
+ }
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ if (ele._private.styleDirty) {
+ ele._private.styleDirty = false;
+ cy.style().apply(ele);
+ }
+ }
+ },
+ // get the internal parsed style object for the specified property
+ parsedStyle: function parsedStyle(property) {
+ var includeNonDefault = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ var ele = this[0];
+ var cy = ele.cy();
+ if (!cy.styleEnabled()) {
+ return;
+ }
+ if (ele) {
+ this.cleanStyle();
+ var overriddenStyle = ele._private.style[property];
+ if (overriddenStyle != null) {
+ return overriddenStyle;
+ } else if (includeNonDefault) {
+ return cy.style().getDefaultProperty(property);
+ } else {
+ return null;
+ }
+ }
+ },
+ numericStyle: function numericStyle(property) {
+ var ele = this[0];
+ if (!ele.cy().styleEnabled()) {
+ return;
+ }
+ if (ele) {
+ var pstyle = ele.pstyle(property);
+ return pstyle.pfValue !== void 0 ? pstyle.pfValue : pstyle.value;
+ }
+ },
+ numericStyleUnits: function numericStyleUnits(property) {
+ var ele = this[0];
+ if (!ele.cy().styleEnabled()) {
+ return;
+ }
+ if (ele) {
+ return ele.pstyle(property).units;
+ }
+ },
+ // get the specified css property as a rendered value (i.e. on-screen value)
+ // or get the whole rendered style if no property specified (NB doesn't allow setting)
+ renderedStyle: function renderedStyle(property) {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ var ele = this[0];
+ if (ele) {
+ return cy.style().getRenderedStyle(ele, property);
+ }
+ },
+ // read the calculated css style of the element or override the style (via a bypass)
+ style: function style(name2, value) {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ var updateTransitions = false;
+ var style2 = cy.style();
+ if (plainObject(name2)) {
+ var props = name2;
+ style2.applyBypass(this, props, updateTransitions);
+ this.emitAndNotify("style");
+ } else if (string(name2)) {
+ if (value === void 0) {
+ var ele = this[0];
+ if (ele) {
+ return style2.getStylePropertyValue(ele, name2);
+ } else {
+ return;
+ }
+ } else {
+ style2.applyBypass(this, name2, value, updateTransitions);
+ this.emitAndNotify("style");
+ }
+ } else if (name2 === void 0) {
+ var _ele = this[0];
+ if (_ele) {
+ return style2.getRawStyle(_ele);
+ } else {
+ return;
+ }
+ }
+ return this;
+ },
+ removeStyle: function removeStyle(names) {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ var updateTransitions = false;
+ var style = cy.style();
+ var eles = this;
+ if (names === void 0) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ style.removeAllBypasses(ele, updateTransitions);
+ }
+ } else {
+ names = names.split(/\s+/);
+ for (var _i = 0; _i < eles.length; _i++) {
+ var _ele2 = eles[_i];
+ style.removeBypasses(_ele2, names, updateTransitions);
+ }
+ }
+ this.emitAndNotify("style");
+ return this;
+ },
+ show: function show() {
+ this.css("display", "element");
+ return this;
+ },
+ hide: function hide() {
+ this.css("display", "none");
+ return this;
+ },
+ effectiveOpacity: function effectiveOpacity() {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return 1;
+ }
+ var hasCompoundNodes = cy.hasCompoundNodes();
+ var ele = this[0];
+ if (ele) {
+ var _p = ele._private;
+ var parentOpacity = ele.pstyle("opacity").value;
+ if (!hasCompoundNodes) {
+ return parentOpacity;
+ }
+ var parents = !_p.data.parent ? null : ele.parents();
+ if (parents) {
+ for (var i2 = 0; i2 < parents.length; i2++) {
+ var parent = parents[i2];
+ var opacity = parent.pstyle("opacity").value;
+ parentOpacity = opacity * parentOpacity;
+ }
+ }
+ return parentOpacity;
+ }
+ },
+ transparent: function transparent() {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return false;
+ }
+ var ele = this[0];
+ var hasCompoundNodes = ele.cy().hasCompoundNodes();
+ if (ele) {
+ if (!hasCompoundNodes) {
+ return ele.pstyle("opacity").value === 0;
+ } else {
+ return ele.effectiveOpacity() === 0;
+ }
+ }
+ },
+ backgrounding: function backgrounding() {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return false;
+ }
+ var ele = this[0];
+ return ele._private.backgrounding ? true : false;
+ }
+ };
+ function checkCompound(ele, parentOk) {
+ var _p = ele._private;
+ var parents = _p.data.parent ? ele.parents() : null;
+ if (parents) {
+ for (var i2 = 0; i2 < parents.length; i2++) {
+ var parent = parents[i2];
+ if (!parentOk(parent)) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+ function defineDerivedStateFunction(specs) {
+ var ok = specs.ok;
+ var edgeOkViaNode = specs.edgeOkViaNode || specs.ok;
+ var parentOk = specs.parentOk || specs.ok;
+ return function() {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return true;
+ }
+ var ele = this[0];
+ var hasCompoundNodes = cy.hasCompoundNodes();
+ if (ele) {
+ var _p = ele._private;
+ if (!ok(ele)) {
+ return false;
+ }
+ if (ele.isNode()) {
+ return !hasCompoundNodes || checkCompound(ele, parentOk);
+ } else {
+ var src = _p.source;
+ var tgt = _p.target;
+ return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode)));
+ }
+ }
+ };
+ }
+ var eleTakesUpSpace = cacheStyleFunction("eleTakesUpSpace", function(ele) {
+ return ele.pstyle("display").value === "element" && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true);
+ });
+ elesfn$4.takesUpSpace = cachePrototypeStyleFunction("takesUpSpace", defineDerivedStateFunction({
+ ok: eleTakesUpSpace
+ }));
+ var eleInteractive = cacheStyleFunction("eleInteractive", function(ele) {
+ return ele.pstyle("events").value === "yes" && ele.pstyle("visibility").value === "visible" && eleTakesUpSpace(ele);
+ });
+ var parentInteractive = cacheStyleFunction("parentInteractive", function(parent) {
+ return parent.pstyle("visibility").value === "visible" && eleTakesUpSpace(parent);
+ });
+ elesfn$4.interactive = cachePrototypeStyleFunction("interactive", defineDerivedStateFunction({
+ ok: eleInteractive,
+ parentOk: parentInteractive,
+ edgeOkViaNode: eleTakesUpSpace
+ }));
+ elesfn$4.noninteractive = function() {
+ var ele = this[0];
+ if (ele) {
+ return !ele.interactive();
+ }
+ };
+ var eleVisible = cacheStyleFunction("eleVisible", function(ele) {
+ return ele.pstyle("visibility").value === "visible" && ele.pstyle("opacity").pfValue !== 0 && eleTakesUpSpace(ele);
+ });
+ var edgeVisibleViaNode = eleTakesUpSpace;
+ elesfn$4.visible = cachePrototypeStyleFunction("visible", defineDerivedStateFunction({
+ ok: eleVisible,
+ edgeOkViaNode: edgeVisibleViaNode
+ }));
+ elesfn$4.hidden = function() {
+ var ele = this[0];
+ if (ele) {
+ return !ele.visible();
+ }
+ };
+ elesfn$4.isBundledBezier = cachePrototypeStyleFunction("isBundledBezier", function() {
+ if (!this.cy().styleEnabled()) {
+ return false;
+ }
+ return !this.removed() && this.pstyle("curve-style").value === "bezier" && this.takesUpSpace();
+ });
+ elesfn$4.bypass = elesfn$4.css = elesfn$4.style;
+ elesfn$4.renderedCss = elesfn$4.renderedStyle;
+ elesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle;
+ elesfn$4.pstyle = elesfn$4.parsedStyle;
+ var elesfn$3 = {};
+ function defineSwitchFunction(params) {
+ return function() {
+ var args = arguments;
+ var changedEles = [];
+ if (args.length === 2) {
+ var data2 = args[0];
+ var handler = args[1];
+ this.on(params.event, data2, handler);
+ } else if (args.length === 1 && fn$6(args[0])) {
+ var _handler = args[0];
+ this.on(params.event, _handler);
+ } else if (args.length === 0 || args.length === 1 && array(args[0])) {
+ var addlEvents = args.length === 1 ? args[0] : null;
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var able = !params.ableField || ele._private[params.ableField];
+ var changed = ele._private[params.field] != params.value;
+ if (params.overrideAble) {
+ var overrideAble = params.overrideAble(ele);
+ if (overrideAble !== void 0) {
+ able = overrideAble;
+ if (!overrideAble) {
+ return this;
+ }
+ }
+ }
+ if (able) {
+ ele._private[params.field] = params.value;
+ if (changed) {
+ changedEles.push(ele);
+ }
+ }
+ }
+ var changedColl = this.spawn(changedEles);
+ changedColl.updateStyle();
+ changedColl.emit(params.event);
+ if (addlEvents) {
+ changedColl.emit(addlEvents);
+ }
+ }
+ return this;
+ };
+ }
+ function defineSwitchSet(params) {
+ elesfn$3[params.field] = function() {
+ var ele = this[0];
+ if (ele) {
+ if (params.overrideField) {
+ var val = params.overrideField(ele);
+ if (val !== void 0) {
+ return val;
+ }
+ }
+ return ele._private[params.field];
+ }
+ };
+ elesfn$3[params.on] = defineSwitchFunction({
+ event: params.on,
+ field: params.field,
+ ableField: params.ableField,
+ overrideAble: params.overrideAble,
+ value: true
+ });
+ elesfn$3[params.off] = defineSwitchFunction({
+ event: params.off,
+ field: params.field,
+ ableField: params.ableField,
+ overrideAble: params.overrideAble,
+ value: false
+ });
+ }
+ defineSwitchSet({
+ field: "locked",
+ overrideField: function overrideField(ele) {
+ return ele.cy().autolock() ? true : void 0;
+ },
+ on: "lock",
+ off: "unlock"
+ });
+ defineSwitchSet({
+ field: "grabbable",
+ overrideField: function overrideField(ele) {
+ return ele.cy().autoungrabify() || ele.pannable() ? false : void 0;
+ },
+ on: "grabify",
+ off: "ungrabify"
+ });
+ defineSwitchSet({
+ field: "selected",
+ ableField: "selectable",
+ overrideAble: function overrideAble(ele) {
+ return ele.cy().autounselectify() ? false : void 0;
+ },
+ on: "select",
+ off: "unselect"
+ });
+ defineSwitchSet({
+ field: "selectable",
+ overrideField: function overrideField(ele) {
+ return ele.cy().autounselectify() ? false : void 0;
+ },
+ on: "selectify",
+ off: "unselectify"
+ });
+ elesfn$3.deselect = elesfn$3.unselect;
+ elesfn$3.grabbed = function() {
+ var ele = this[0];
+ if (ele) {
+ return ele._private.grabbed;
+ }
+ };
+ defineSwitchSet({
+ field: "active",
+ on: "activate",
+ off: "unactivate"
+ });
+ defineSwitchSet({
+ field: "pannable",
+ on: "panify",
+ off: "unpanify"
+ });
+ elesfn$3.inactive = function() {
+ var ele = this[0];
+ if (ele) {
+ return !ele._private.active;
+ }
+ };
+ var elesfn$2 = {};
+ var defineDagExtremity = function defineDagExtremity2(params) {
+ return function dagExtremityImpl(selector) {
+ var eles = this;
+ var ret = [];
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ if (!ele.isNode()) {
+ continue;
+ }
+ var disqualified = false;
+ var edges = ele.connectedEdges();
+ for (var j = 0; j < edges.length; j++) {
+ var edge = edges[j];
+ var src = edge.source();
+ var tgt = edge.target();
+ if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) {
+ disqualified = true;
+ break;
+ }
+ }
+ if (!disqualified) {
+ ret.push(ele);
+ }
+ }
+ return this.spawn(ret, true).filter(selector);
+ };
+ };
+ var defineDagOneHop = function defineDagOneHop2(params) {
+ return function(selector) {
+ var eles = this;
+ var oEles = [];
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ if (!ele.isNode()) {
+ continue;
+ }
+ var edges = ele.connectedEdges();
+ for (var j = 0; j < edges.length; j++) {
+ var edge = edges[j];
+ var src = edge.source();
+ var tgt = edge.target();
+ if (params.outgoing && src === ele) {
+ oEles.push(edge);
+ oEles.push(tgt);
+ } else if (params.incoming && tgt === ele) {
+ oEles.push(edge);
+ oEles.push(src);
+ }
+ }
+ }
+ return this.spawn(oEles, true).filter(selector);
+ };
+ };
+ var defineDagAllHops = function defineDagAllHops2(params) {
+ return function(selector) {
+ var eles = this;
+ var sEles = [];
+ var sElesIds = {};
+ for (; ; ) {
+ var next2 = params.outgoing ? eles.outgoers() : eles.incomers();
+ if (next2.length === 0) {
+ break;
+ }
+ var newNext = false;
+ for (var i2 = 0; i2 < next2.length; i2++) {
+ var n = next2[i2];
+ var nid = n.id();
+ if (!sElesIds[nid]) {
+ sElesIds[nid] = true;
+ sEles.push(n);
+ newNext = true;
+ }
+ }
+ if (!newNext) {
+ break;
+ }
+ eles = next2;
+ }
+ return this.spawn(sEles, true).filter(selector);
+ };
+ };
+ elesfn$2.clearTraversalCache = function() {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ this[i2]._private.traversalCache = null;
+ }
+ };
+ extend(elesfn$2, {
+ // get the root nodes in the DAG
+ roots: defineDagExtremity({
+ noIncomingEdges: true
+ }),
+ // get the leaf nodes in the DAG
+ leaves: defineDagExtremity({
+ noOutgoingEdges: true
+ }),
+ // normally called children in graph theory
+ // these nodes =edges=> outgoing nodes
+ outgoers: cache(defineDagOneHop({
+ outgoing: true
+ }), "outgoers"),
+ // aka DAG descendants
+ successors: defineDagAllHops({
+ outgoing: true
+ }),
+ // normally called parents in graph theory
+ // these nodes <=edges= incoming nodes
+ incomers: cache(defineDagOneHop({
+ incoming: true
+ }), "incomers"),
+ // aka DAG ancestors
+ predecessors: defineDagAllHops({
+ incoming: true
+ })
+ });
+ extend(elesfn$2, {
+ neighborhood: cache(function(selector) {
+ var elements2 = [];
+ var nodes2 = this.nodes();
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ var node = nodes2[i2];
+ var connectedEdges = node.connectedEdges();
+ for (var j = 0; j < connectedEdges.length; j++) {
+ var edge = connectedEdges[j];
+ var src = edge.source();
+ var tgt = edge.target();
+ var otherNode = node === src ? tgt : src;
+ if (otherNode.length > 0) {
+ elements2.push(otherNode[0]);
+ }
+ elements2.push(edge[0]);
+ }
+ }
+ return this.spawn(elements2, true).filter(selector);
+ }, "neighborhood"),
+ closedNeighborhood: function closedNeighborhood(selector) {
+ return this.neighborhood().add(this).filter(selector);
+ },
+ openNeighborhood: function openNeighborhood(selector) {
+ return this.neighborhood(selector);
+ }
+ });
+ elesfn$2.neighbourhood = elesfn$2.neighborhood;
+ elesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood;
+ elesfn$2.openNeighbourhood = elesfn$2.openNeighborhood;
+ extend(elesfn$2, {
+ source: cache(function sourceImpl(selector) {
+ var ele = this[0];
+ var src;
+ if (ele) {
+ src = ele._private.source || ele.cy().collection();
+ }
+ return src && selector ? src.filter(selector) : src;
+ }, "source"),
+ target: cache(function targetImpl(selector) {
+ var ele = this[0];
+ var tgt;
+ if (ele) {
+ tgt = ele._private.target || ele.cy().collection();
+ }
+ return tgt && selector ? tgt.filter(selector) : tgt;
+ }, "target"),
+ sources: defineSourceFunction({
+ attr: "source"
+ }),
+ targets: defineSourceFunction({
+ attr: "target"
+ })
+ });
+ function defineSourceFunction(params) {
+ return function sourceImpl(selector) {
+ var sources = [];
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var src = ele._private[params.attr];
+ if (src) {
+ sources.push(src);
+ }
+ }
+ return this.spawn(sources, true).filter(selector);
+ };
+ }
+ extend(elesfn$2, {
+ edgesWith: cache(defineEdgesWithFunction(), "edgesWith"),
+ edgesTo: cache(defineEdgesWithFunction({
+ thisIsSrc: true
+ }), "edgesTo")
+ });
+ function defineEdgesWithFunction(params) {
+ return function edgesWithImpl(otherNodes) {
+ var elements2 = [];
+ var cy = this._private.cy;
+ var p2 = params || {};
+ if (string(otherNodes)) {
+ otherNodes = cy.$(otherNodes);
+ }
+ for (var h = 0; h < otherNodes.length; h++) {
+ var edges = otherNodes[h]._private.edges;
+ for (var i2 = 0; i2 < edges.length; i2++) {
+ var edge = edges[i2];
+ var edgeData = edge._private.data;
+ var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target);
+ var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target);
+ var edgeConnectsThisAndOther = thisToOther || otherToThis;
+ if (!edgeConnectsThisAndOther) {
+ continue;
+ }
+ if (p2.thisIsSrc || p2.thisIsTgt) {
+ if (p2.thisIsSrc && !thisToOther) {
+ continue;
+ }
+ if (p2.thisIsTgt && !otherToThis) {
+ continue;
+ }
+ }
+ elements2.push(edge);
+ }
+ }
+ return this.spawn(elements2, true);
+ };
+ }
+ extend(elesfn$2, {
+ connectedEdges: cache(function(selector) {
+ var retEles = [];
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var node = eles[i2];
+ if (!node.isNode()) {
+ continue;
+ }
+ var edges = node._private.edges;
+ for (var j = 0; j < edges.length; j++) {
+ var edge = edges[j];
+ retEles.push(edge);
+ }
+ }
+ return this.spawn(retEles, true).filter(selector);
+ }, "connectedEdges"),
+ connectedNodes: cache(function(selector) {
+ var retEles = [];
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var edge = eles[i2];
+ if (!edge.isEdge()) {
+ continue;
+ }
+ retEles.push(edge.source()[0]);
+ retEles.push(edge.target()[0]);
+ }
+ return this.spawn(retEles, true).filter(selector);
+ }, "connectedNodes"),
+ parallelEdges: cache(defineParallelEdgesFunction(), "parallelEdges"),
+ codirectedEdges: cache(defineParallelEdgesFunction({
+ codirected: true
+ }), "codirectedEdges")
+ });
+ function defineParallelEdgesFunction(params) {
+ var defaults2 = {
+ codirected: false
+ };
+ params = extend({}, defaults2, params);
+ return function parallelEdgesImpl(selector) {
+ var elements2 = [];
+ var edges = this.edges();
+ var p2 = params;
+ for (var i2 = 0; i2 < edges.length; i2++) {
+ var edge1 = edges[i2];
+ var edge1_p = edge1._private;
+ var src1 = edge1_p.source;
+ var srcid1 = src1._private.data.id;
+ var tgtid1 = edge1_p.data.target;
+ var srcEdges1 = src1._private.edges;
+ for (var j = 0; j < srcEdges1.length; j++) {
+ var edge2 = srcEdges1[j];
+ var edge2data = edge2._private.data;
+ var tgtid2 = edge2data.target;
+ var srcid2 = edge2data.source;
+ var codirected = tgtid2 === tgtid1 && srcid2 === srcid1;
+ var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2;
+ if (p2.codirected && codirected || !p2.codirected && (codirected || oppdirected)) {
+ elements2.push(edge2);
+ }
+ }
+ }
+ return this.spawn(elements2, true).filter(selector);
+ };
+ }
+ extend(elesfn$2, {
+ components: function components(root2) {
+ var self2 = this;
+ var cy = self2.cy();
+ var visited = cy.collection();
+ var unvisited = root2 == null ? self2.nodes() : root2.nodes();
+ var components2 = [];
+ if (root2 != null && unvisited.empty()) {
+ unvisited = root2.sources();
+ }
+ var visitInComponent = function visitInComponent2(node, component) {
+ visited.merge(node);
+ unvisited.unmerge(node);
+ component.merge(node);
+ };
+ if (unvisited.empty()) {
+ return self2.spawn();
+ }
+ var _loop = function _loop2() {
+ var cmpt = cy.collection();
+ components2.push(cmpt);
+ var root3 = unvisited[0];
+ visitInComponent(root3, cmpt);
+ self2.bfs({
+ directed: false,
+ roots: root3,
+ visit: function visit(v) {
+ return visitInComponent(v, cmpt);
+ }
+ });
+ cmpt.forEach(function(node) {
+ node.connectedEdges().forEach(function(e) {
+ if (self2.has(e) && cmpt.has(e.source()) && cmpt.has(e.target())) {
+ cmpt.merge(e);
+ }
+ });
+ });
+ };
+ do {
+ _loop();
+ } while (unvisited.length > 0);
+ return components2;
+ },
+ component: function component() {
+ var ele = this[0];
+ return ele.cy().mutableElements().components(ele)[0];
+ }
+ });
+ elesfn$2.componentsOf = elesfn$2.components;
+ var Collection = function Collection2(cy, elements2) {
+ var unique = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
+ var removed = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
+ if (cy === void 0) {
+ error("A collection must have a reference to the core");
+ return;
+ }
+ var map = new Map$2();
+ var createdElements = false;
+ if (!elements2) {
+ elements2 = [];
+ } else if (elements2.length > 0 && plainObject(elements2[0]) && !element(elements2[0])) {
+ createdElements = true;
+ var eles = [];
+ var elesIds = new Set$1();
+ for (var i2 = 0, l = elements2.length; i2 < l; i2++) {
+ var json = elements2[i2];
+ if (json.data == null) {
+ json.data = {};
+ }
+ var _data = json.data;
+ if (_data.id == null) {
+ _data.id = uuid();
+ } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) {
+ continue;
+ }
+ var ele = new Element(cy, json, false);
+ eles.push(ele);
+ elesIds.add(_data.id);
+ }
+ elements2 = eles;
+ }
+ this.length = 0;
+ for (var _i = 0, _l = elements2.length; _i < _l; _i++) {
+ var element$1 = elements2[_i][0];
+ if (element$1 == null) {
+ continue;
+ }
+ var id = element$1._private.data.id;
+ if (!unique || !map.has(id)) {
+ if (unique) {
+ map.set(id, {
+ index: this.length,
+ ele: element$1
+ });
+ }
+ this[this.length] = element$1;
+ this.length++;
+ }
+ }
+ this._private = {
+ eles: this,
+ cy,
+ get map() {
+ if (this.lazyMap == null) {
+ this.rebuildMap();
+ }
+ return this.lazyMap;
+ },
+ set map(m) {
+ this.lazyMap = m;
+ },
+ rebuildMap: function rebuildMap() {
+ var m = this.lazyMap = new Map$2();
+ var eles2 = this.eles;
+ for (var _i2 = 0; _i2 < eles2.length; _i2++) {
+ var _ele = eles2[_i2];
+ m.set(_ele.id(), {
+ index: _i2,
+ ele: _ele
+ });
+ }
+ }
+ };
+ if (unique) {
+ this._private.map = map;
+ }
+ if (createdElements && !removed) {
+ this.restore();
+ }
+ };
+ var elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype);
+ elesfn$1.instanceString = function() {
+ return "collection";
+ };
+ elesfn$1.spawn = function(eles, unique) {
+ return new Collection(this.cy(), eles, unique);
+ };
+ elesfn$1.spawnSelf = function() {
+ return this.spawn(this);
+ };
+ elesfn$1.cy = function() {
+ return this._private.cy;
+ };
+ elesfn$1.renderer = function() {
+ return this._private.cy.renderer();
+ };
+ elesfn$1.element = function() {
+ return this[0];
+ };
+ elesfn$1.collection = function() {
+ if (collection(this)) {
+ return this;
+ } else {
+ return new Collection(this._private.cy, [this]);
+ }
+ };
+ elesfn$1.unique = function() {
+ return new Collection(this._private.cy, this, true);
+ };
+ elesfn$1.hasElementWithId = function(id) {
+ id = "" + id;
+ return this._private.map.has(id);
+ };
+ elesfn$1.getElementById = function(id) {
+ id = "" + id;
+ var cy = this._private.cy;
+ var entry = this._private.map.get(id);
+ return entry ? entry.ele : new Collection(cy);
+ };
+ elesfn$1.$id = elesfn$1.getElementById;
+ elesfn$1.poolIndex = function() {
+ var cy = this._private.cy;
+ var eles = cy._private.elements;
+ var id = this[0]._private.data.id;
+ return eles._private.map.get(id).index;
+ };
+ elesfn$1.indexOf = function(ele) {
+ var id = ele[0]._private.data.id;
+ return this._private.map.get(id).index;
+ };
+ elesfn$1.indexOfId = function(id) {
+ id = "" + id;
+ return this._private.map.get(id).index;
+ };
+ elesfn$1.json = function(obj) {
+ var ele = this.element();
+ var cy = this.cy();
+ if (ele == null && obj) {
+ return this;
+ }
+ if (ele == null) {
+ return void 0;
+ }
+ var p2 = ele._private;
+ if (plainObject(obj)) {
+ cy.startBatch();
+ if (obj.data) {
+ ele.data(obj.data);
+ var _data2 = p2.data;
+ if (ele.isEdge()) {
+ var move = false;
+ var spec = {};
+ var src = obj.data.source;
+ var tgt = obj.data.target;
+ if (src != null && src != _data2.source) {
+ spec.source = "" + src;
+ move = true;
+ }
+ if (tgt != null && tgt != _data2.target) {
+ spec.target = "" + tgt;
+ move = true;
+ }
+ if (move) {
+ ele = ele.move(spec);
+ }
+ } else {
+ var newParentValSpecd = "parent" in obj.data;
+ var parent = obj.data.parent;
+ if (newParentValSpecd && (parent != null || _data2.parent != null) && parent != _data2.parent) {
+ if (parent === void 0) {
+ parent = null;
+ }
+ if (parent != null) {
+ parent = "" + parent;
+ }
+ ele = ele.move({
+ parent
+ });
+ }
+ }
+ }
+ if (obj.position) {
+ ele.position(obj.position);
+ }
+ var checkSwitch = function checkSwitch2(k, trueFnName, falseFnName) {
+ var obj_k = obj[k];
+ if (obj_k != null && obj_k !== p2[k]) {
+ if (obj_k) {
+ ele[trueFnName]();
+ } else {
+ ele[falseFnName]();
+ }
+ }
+ };
+ checkSwitch("removed", "remove", "restore");
+ checkSwitch("selected", "select", "unselect");
+ checkSwitch("selectable", "selectify", "unselectify");
+ checkSwitch("locked", "lock", "unlock");
+ checkSwitch("grabbable", "grabify", "ungrabify");
+ checkSwitch("pannable", "panify", "unpanify");
+ if (obj.classes != null) {
+ ele.classes(obj.classes);
+ }
+ cy.endBatch();
+ return this;
+ } else if (obj === void 0) {
+ var json = {
+ data: copy(p2.data),
+ position: copy(p2.position),
+ group: p2.group,
+ removed: p2.removed,
+ selected: p2.selected,
+ selectable: p2.selectable,
+ locked: p2.locked,
+ grabbable: p2.grabbable,
+ pannable: p2.pannable,
+ classes: null
+ };
+ json.classes = "";
+ var i2 = 0;
+ p2.classes.forEach(function(cls) {
+ return json.classes += i2++ === 0 ? cls : " " + cls;
+ });
+ return json;
+ }
+ };
+ elesfn$1.jsons = function() {
+ var jsons = [];
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var json = ele.json();
+ jsons.push(json);
+ }
+ return jsons;
+ };
+ elesfn$1.clone = function() {
+ var cy = this.cy();
+ var elesArr = [];
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var json = ele.json();
+ var clone2 = new Element(cy, json, false);
+ elesArr.push(clone2);
+ }
+ return new Collection(cy, elesArr);
+ };
+ elesfn$1.copy = elesfn$1.clone;
+ elesfn$1.restore = function() {
+ var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
+ var addToPool = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ var self2 = this;
+ var cy = self2.cy();
+ var cy_p = cy._private;
+ var nodes2 = [];
+ var edges = [];
+ var elements2;
+ for (var _i3 = 0, l = self2.length; _i3 < l; _i3++) {
+ var ele = self2[_i3];
+ if (addToPool && !ele.removed()) {
+ continue;
+ }
+ if (ele.isNode()) {
+ nodes2.push(ele);
+ } else {
+ edges.push(ele);
+ }
+ }
+ elements2 = nodes2.concat(edges);
+ var i2;
+ var removeFromElements = function removeFromElements2() {
+ elements2.splice(i2, 1);
+ i2--;
+ };
+ for (i2 = 0; i2 < elements2.length; i2++) {
+ var _ele2 = elements2[i2];
+ var _private = _ele2._private;
+ var _data3 = _private.data;
+ _ele2.clearTraversalCache();
+ if (!addToPool && !_private.removed)
+ ;
+ else if (_data3.id === void 0) {
+ _data3.id = uuid();
+ } else if (number$1(_data3.id)) {
+ _data3.id = "" + _data3.id;
+ } else if (emptyString(_data3.id) || !string(_data3.id)) {
+ error("Can not create element with invalid string ID `" + _data3.id + "`");
+ removeFromElements();
+ continue;
+ } else if (cy.hasElementWithId(_data3.id)) {
+ error("Can not create second element with ID `" + _data3.id + "`");
+ removeFromElements();
+ continue;
+ }
+ var id = _data3.id;
+ if (_ele2.isNode()) {
+ var pos = _private.position;
+ if (pos.x == null) {
+ pos.x = 0;
+ }
+ if (pos.y == null) {
+ pos.y = 0;
+ }
+ }
+ if (_ele2.isEdge()) {
+ var edge = _ele2;
+ var fields = ["source", "target"];
+ var fieldsLength = fields.length;
+ var badSourceOrTarget = false;
+ for (var j = 0; j < fieldsLength; j++) {
+ var field = fields[j];
+ var val = _data3[field];
+ if (number$1(val)) {
+ val = _data3[field] = "" + _data3[field];
+ }
+ if (val == null || val === "") {
+ error("Can not create edge `" + id + "` with unspecified " + field);
+ badSourceOrTarget = true;
+ } else if (!cy.hasElementWithId(val)) {
+ error("Can not create edge `" + id + "` with nonexistant " + field + " `" + val + "`");
+ badSourceOrTarget = true;
+ }
+ }
+ if (badSourceOrTarget) {
+ removeFromElements();
+ continue;
+ }
+ var src = cy.getElementById(_data3.source);
+ var tgt = cy.getElementById(_data3.target);
+ if (src.same(tgt)) {
+ src._private.edges.push(edge);
+ } else {
+ src._private.edges.push(edge);
+ tgt._private.edges.push(edge);
+ }
+ edge._private.source = src;
+ edge._private.target = tgt;
+ }
+ _private.map = new Map$2();
+ _private.map.set(id, {
+ ele: _ele2,
+ index: 0
+ });
+ _private.removed = false;
+ if (addToPool) {
+ cy.addToPool(_ele2);
+ }
+ }
+ for (var _i4 = 0; _i4 < nodes2.length; _i4++) {
+ var node = nodes2[_i4];
+ var _data4 = node._private.data;
+ if (number$1(_data4.parent)) {
+ _data4.parent = "" + _data4.parent;
+ }
+ var parentId = _data4.parent;
+ var specifiedParent = parentId != null;
+ if (specifiedParent || node._private.parent) {
+ var parent = node._private.parent ? cy.collection().merge(node._private.parent) : cy.getElementById(parentId);
+ if (parent.empty()) {
+ _data4.parent = void 0;
+ } else if (parent[0].removed()) {
+ warn("Node added with missing parent, reference to parent removed");
+ _data4.parent = void 0;
+ node._private.parent = null;
+ } else {
+ var selfAsParent = false;
+ var ancestor = parent;
+ while (!ancestor.empty()) {
+ if (node.same(ancestor)) {
+ selfAsParent = true;
+ _data4.parent = void 0;
+ break;
+ }
+ ancestor = ancestor.parent();
+ }
+ if (!selfAsParent) {
+ parent[0]._private.children.push(node);
+ node._private.parent = parent[0];
+ cy_p.hasCompoundNodes = true;
+ }
+ }
+ }
+ }
+ if (elements2.length > 0) {
+ var restored = elements2.length === self2.length ? self2 : new Collection(cy, elements2);
+ for (var _i5 = 0; _i5 < restored.length; _i5++) {
+ var _ele3 = restored[_i5];
+ if (_ele3.isNode()) {
+ continue;
+ }
+ _ele3.parallelEdges().clearTraversalCache();
+ _ele3.source().clearTraversalCache();
+ _ele3.target().clearTraversalCache();
+ }
+ var toUpdateStyle;
+ if (cy_p.hasCompoundNodes) {
+ toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent());
+ } else {
+ toUpdateStyle = restored;
+ }
+ toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer);
+ if (notifyRenderer) {
+ restored.emitAndNotify("add");
+ } else if (addToPool) {
+ restored.emit("add");
+ }
+ }
+ return self2;
+ };
+ elesfn$1.removed = function() {
+ var ele = this[0];
+ return ele && ele._private.removed;
+ };
+ elesfn$1.inside = function() {
+ var ele = this[0];
+ return ele && !ele._private.removed;
+ };
+ elesfn$1.remove = function() {
+ var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
+ var removeFromPool = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ var self2 = this;
+ var elesToRemove = [];
+ var elesToRemoveIds = {};
+ var cy = self2._private.cy;
+ function addConnectedEdges(node) {
+ var edges = node._private.edges;
+ for (var i3 = 0; i3 < edges.length; i3++) {
+ add(edges[i3]);
+ }
+ }
+ function addChildren2(node) {
+ var children = node._private.children;
+ for (var i3 = 0; i3 < children.length; i3++) {
+ add(children[i3]);
+ }
+ }
+ function add(ele2) {
+ var alreadyAdded = elesToRemoveIds[ele2.id()];
+ if (removeFromPool && ele2.removed() || alreadyAdded) {
+ return;
+ } else {
+ elesToRemoveIds[ele2.id()] = true;
+ }
+ if (ele2.isNode()) {
+ elesToRemove.push(ele2);
+ addConnectedEdges(ele2);
+ addChildren2(ele2);
+ } else {
+ elesToRemove.unshift(ele2);
+ }
+ }
+ for (var i2 = 0, l = self2.length; i2 < l; i2++) {
+ var ele = self2[i2];
+ add(ele);
+ }
+ function removeEdgeRef(node, edge) {
+ var connectedEdges = node._private.edges;
+ removeFromArray(connectedEdges, edge);
+ node.clearTraversalCache();
+ }
+ function removeParallelRef(pllEdge2) {
+ pllEdge2.clearTraversalCache();
+ }
+ var alteredParents = [];
+ alteredParents.ids = {};
+ function removeChildRef(parent2, ele2) {
+ ele2 = ele2[0];
+ parent2 = parent2[0];
+ var children = parent2._private.children;
+ var pid = parent2.id();
+ removeFromArray(children, ele2);
+ ele2._private.parent = null;
+ if (!alteredParents.ids[pid]) {
+ alteredParents.ids[pid] = true;
+ alteredParents.push(parent2);
+ }
+ }
+ self2.dirtyCompoundBoundsCache();
+ if (removeFromPool) {
+ cy.removeFromPool(elesToRemove);
+ }
+ for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) {
+ var _ele4 = elesToRemove[_i6];
+ if (_ele4.isEdge()) {
+ var src = _ele4.source()[0];
+ var tgt = _ele4.target()[0];
+ removeEdgeRef(src, _ele4);
+ removeEdgeRef(tgt, _ele4);
+ var pllEdges = _ele4.parallelEdges();
+ for (var j = 0; j < pllEdges.length; j++) {
+ var pllEdge = pllEdges[j];
+ removeParallelRef(pllEdge);
+ if (pllEdge.isBundledBezier()) {
+ pllEdge.dirtyBoundingBoxCache();
+ }
+ }
+ } else {
+ var parent = _ele4.parent();
+ if (parent.length !== 0) {
+ removeChildRef(parent, _ele4);
+ }
+ }
+ if (removeFromPool) {
+ _ele4._private.removed = true;
+ }
+ }
+ var elesStillInside = cy._private.elements;
+ cy._private.hasCompoundNodes = false;
+ for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) {
+ var _ele5 = elesStillInside[_i7];
+ if (_ele5.isParent()) {
+ cy._private.hasCompoundNodes = true;
+ break;
+ }
+ }
+ var removedElements = new Collection(this.cy(), elesToRemove);
+ if (removedElements.size() > 0) {
+ if (notifyRenderer) {
+ removedElements.emitAndNotify("remove");
+ } else if (removeFromPool) {
+ removedElements.emit("remove");
+ }
+ }
+ for (var _i8 = 0; _i8 < alteredParents.length; _i8++) {
+ var _ele6 = alteredParents[_i8];
+ if (!removeFromPool || !_ele6.removed()) {
+ _ele6.updateStyle();
+ }
+ }
+ return removedElements;
+ };
+ elesfn$1.move = function(struct) {
+ var cy = this._private.cy;
+ var eles = this;
+ var notifyRenderer = false;
+ var modifyPool = false;
+ var toString2 = function toString3(id) {
+ return id == null ? id : "" + id;
+ };
+ if (struct.source !== void 0 || struct.target !== void 0) {
+ var srcId = toString2(struct.source);
+ var tgtId = toString2(struct.target);
+ var srcExists = srcId != null && cy.hasElementWithId(srcId);
+ var tgtExists = tgtId != null && cy.hasElementWithId(tgtId);
+ if (srcExists || tgtExists) {
+ cy.batch(function() {
+ eles.remove(notifyRenderer, modifyPool);
+ eles.emitAndNotify("moveout");
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var _data5 = ele._private.data;
+ if (ele.isEdge()) {
+ if (srcExists) {
+ _data5.source = srcId;
+ }
+ if (tgtExists) {
+ _data5.target = tgtId;
+ }
+ }
+ }
+ eles.restore(notifyRenderer, modifyPool);
+ });
+ eles.emitAndNotify("move");
+ }
+ } else if (struct.parent !== void 0) {
+ var parentId = toString2(struct.parent);
+ var parentExists = parentId === null || cy.hasElementWithId(parentId);
+ if (parentExists) {
+ var pidToAssign = parentId === null ? void 0 : parentId;
+ cy.batch(function() {
+ var updated = eles.remove(notifyRenderer, modifyPool);
+ updated.emitAndNotify("moveout");
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var _data6 = ele._private.data;
+ if (ele.isNode()) {
+ _data6.parent = pidToAssign;
+ }
+ }
+ updated.restore(notifyRenderer, modifyPool);
+ });
+ eles.emitAndNotify("move");
+ }
+ }
+ return this;
+ };
+ [elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function(props) {
+ extend(elesfn$1, props);
+ });
+ var corefn$9 = {
+ add: function add(opts) {
+ var elements2;
+ var cy = this;
+ if (elementOrCollection(opts)) {
+ var eles = opts;
+ if (eles._private.cy === cy) {
+ elements2 = eles.restore();
+ } else {
+ var jsons = [];
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ jsons.push(ele.json());
+ }
+ elements2 = new Collection(cy, jsons);
+ }
+ } else if (array(opts)) {
+ var _jsons = opts;
+ elements2 = new Collection(cy, _jsons);
+ } else if (plainObject(opts) && (array(opts.nodes) || array(opts.edges))) {
+ var elesByGroup = opts;
+ var _jsons2 = [];
+ var grs = ["nodes", "edges"];
+ for (var _i = 0, il = grs.length; _i < il; _i++) {
+ var group = grs[_i];
+ var elesArray = elesByGroup[group];
+ if (array(elesArray)) {
+ for (var j = 0, jl = elesArray.length; j < jl; j++) {
+ var json = extend({
+ group
+ }, elesArray[j]);
+ _jsons2.push(json);
+ }
+ }
+ }
+ elements2 = new Collection(cy, _jsons2);
+ } else {
+ var _json = opts;
+ elements2 = new Element(cy, _json).collection();
+ }
+ return elements2;
+ },
+ remove: function remove(collection2) {
+ if (elementOrCollection(collection2))
+ ;
+ else if (string(collection2)) {
+ var selector = collection2;
+ collection2 = this.$(selector);
+ }
+ return collection2.remove();
+ }
+ };
+ /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */
+ function generateCubicBezier(mX1, mY1, mX2, mY2) {
+ var NEWTON_ITERATIONS = 4, NEWTON_MIN_SLOPE = 1e-3, SUBDIVISION_PRECISION = 1e-7, SUBDIVISION_MAX_ITERATIONS = 10, kSplineTableSize = 11, kSampleStepSize = 1 / (kSplineTableSize - 1), float32ArraySupported = typeof Float32Array !== "undefined";
+ if (arguments.length !== 4) {
+ return false;
+ }
+ for (var i2 = 0; i2 < 4; ++i2) {
+ if (typeof arguments[i2] !== "number" || isNaN(arguments[i2]) || !isFinite(arguments[i2])) {
+ return false;
+ }
+ }
+ mX1 = Math.min(mX1, 1);
+ mX2 = Math.min(mX2, 1);
+ mX1 = Math.max(mX1, 0);
+ mX2 = Math.max(mX2, 0);
+ var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
+ function A(aA1, aA2) {
+ return 1 - 3 * aA2 + 3 * aA1;
+ }
+ function B(aA1, aA2) {
+ return 3 * aA2 - 6 * aA1;
+ }
+ function C(aA1) {
+ return 3 * aA1;
+ }
+ function calcBezier(aT, aA1, aA2) {
+ return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
+ }
+ function getSlope(aT, aA1, aA2) {
+ return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
+ }
+ function newtonRaphsonIterate(aX, aGuessT) {
+ for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) {
+ var currentSlope = getSlope(aGuessT, mX1, mX2);
+ if (currentSlope === 0) {
+ return aGuessT;
+ }
+ var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
+ aGuessT -= currentX / currentSlope;
+ }
+ return aGuessT;
+ }
+ function calcSampleValues() {
+ for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) {
+ mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2);
+ }
+ }
+ function binarySubdivide(aX, aA, aB) {
+ var currentX, currentT, i3 = 0;
+ do {
+ currentT = aA + (aB - aA) / 2;
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
+ if (currentX > 0) {
+ aB = currentT;
+ } else {
+ aA = currentT;
+ }
+ } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i3 < SUBDIVISION_MAX_ITERATIONS);
+ return currentT;
+ }
+ function getTForX(aX) {
+ var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1;
+ for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {
+ intervalStart += kSampleStepSize;
+ }
+ --currentSample;
+ var dist2 = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]), guessForT = intervalStart + dist2 * kSampleStepSize, initialSlope = getSlope(guessForT, mX1, mX2);
+ if (initialSlope >= NEWTON_MIN_SLOPE) {
+ return newtonRaphsonIterate(aX, guessForT);
+ } else if (initialSlope === 0) {
+ return guessForT;
+ } else {
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);
+ }
+ }
+ var _precomputed = false;
+ function precompute() {
+ _precomputed = true;
+ if (mX1 !== mY1 || mX2 !== mY2) {
+ calcSampleValues();
+ }
+ }
+ var f = function f2(aX) {
+ if (!_precomputed) {
+ precompute();
+ }
+ if (mX1 === mY1 && mX2 === mY2) {
+ return aX;
+ }
+ if (aX === 0) {
+ return 0;
+ }
+ if (aX === 1) {
+ return 1;
+ }
+ return calcBezier(getTForX(aX), mY1, mY2);
+ };
+ f.getControlPoints = function() {
+ return [{
+ x: mX1,
+ y: mY1
+ }, {
+ x: mX2,
+ y: mY2
+ }];
+ };
+ var str = "generateBezier(" + [mX1, mY1, mX2, mY2] + ")";
+ f.toString = function() {
+ return str;
+ };
+ return f;
+ }
+ /*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */
+ var generateSpringRK4 = function() {
+ function springAccelerationForState(state) {
+ return -state.tension * state.x - state.friction * state.v;
+ }
+ function springEvaluateStateWithDerivative(initialState, dt, derivative) {
+ var state = {
+ x: initialState.x + derivative.dx * dt,
+ v: initialState.v + derivative.dv * dt,
+ tension: initialState.tension,
+ friction: initialState.friction
+ };
+ return {
+ dx: state.v,
+ dv: springAccelerationForState(state)
+ };
+ }
+ function springIntegrateState(state, dt) {
+ var a = {
+ dx: state.v,
+ dv: springAccelerationForState(state)
+ }, b = springEvaluateStateWithDerivative(state, dt * 0.5, a), c = springEvaluateStateWithDerivative(state, dt * 0.5, b), d = springEvaluateStateWithDerivative(state, dt, c), dxdt = 1 / 6 * (a.dx + 2 * (b.dx + c.dx) + d.dx), dvdt = 1 / 6 * (a.dv + 2 * (b.dv + c.dv) + d.dv);
+ state.x = state.x + dxdt * dt;
+ state.v = state.v + dvdt * dt;
+ return state;
+ }
+ return function springRK4Factory(tension, friction, duration) {
+ var initState = {
+ x: -1,
+ v: 0,
+ tension: null,
+ friction: null
+ }, path = [0], time_lapsed = 0, tolerance = 1 / 1e4, DT = 16 / 1e3, have_duration, dt, last_state;
+ tension = parseFloat(tension) || 500;
+ friction = parseFloat(friction) || 20;
+ duration = duration || null;
+ initState.tension = tension;
+ initState.friction = friction;
+ have_duration = duration !== null;
+ if (have_duration) {
+ time_lapsed = springRK4Factory(tension, friction);
+ dt = time_lapsed / duration * DT;
+ } else {
+ dt = DT;
+ }
+ for (; ; ) {
+ last_state = springIntegrateState(last_state || initState, dt);
+ path.push(1 + last_state.x);
+ time_lapsed += 16;
+ if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {
+ break;
+ }
+ }
+ return !have_duration ? time_lapsed : function(percentComplete) {
+ return path[percentComplete * (path.length - 1) | 0];
+ };
+ };
+ }();
+ var cubicBezier = function cubicBezier2(t1, p1, t2, p2) {
+ var bezier = generateCubicBezier(t1, p1, t2, p2);
+ return function(start, end, percent) {
+ return start + (end - start) * bezier(percent);
+ };
+ };
+ var easings = {
+ "linear": function linear(start, end, percent) {
+ return start + (end - start) * percent;
+ },
+ // default easings
+ "ease": cubicBezier(0.25, 0.1, 0.25, 1),
+ "ease-in": cubicBezier(0.42, 0, 1, 1),
+ "ease-out": cubicBezier(0, 0, 0.58, 1),
+ "ease-in-out": cubicBezier(0.42, 0, 0.58, 1),
+ // sine
+ "ease-in-sine": cubicBezier(0.47, 0, 0.745, 0.715),
+ "ease-out-sine": cubicBezier(0.39, 0.575, 0.565, 1),
+ "ease-in-out-sine": cubicBezier(0.445, 0.05, 0.55, 0.95),
+ // quad
+ "ease-in-quad": cubicBezier(0.55, 0.085, 0.68, 0.53),
+ "ease-out-quad": cubicBezier(0.25, 0.46, 0.45, 0.94),
+ "ease-in-out-quad": cubicBezier(0.455, 0.03, 0.515, 0.955),
+ // cubic
+ "ease-in-cubic": cubicBezier(0.55, 0.055, 0.675, 0.19),
+ "ease-out-cubic": cubicBezier(0.215, 0.61, 0.355, 1),
+ "ease-in-out-cubic": cubicBezier(0.645, 0.045, 0.355, 1),
+ // quart
+ "ease-in-quart": cubicBezier(0.895, 0.03, 0.685, 0.22),
+ "ease-out-quart": cubicBezier(0.165, 0.84, 0.44, 1),
+ "ease-in-out-quart": cubicBezier(0.77, 0, 0.175, 1),
+ // quint
+ "ease-in-quint": cubicBezier(0.755, 0.05, 0.855, 0.06),
+ "ease-out-quint": cubicBezier(0.23, 1, 0.32, 1),
+ "ease-in-out-quint": cubicBezier(0.86, 0, 0.07, 1),
+ // expo
+ "ease-in-expo": cubicBezier(0.95, 0.05, 0.795, 0.035),
+ "ease-out-expo": cubicBezier(0.19, 1, 0.22, 1),
+ "ease-in-out-expo": cubicBezier(1, 0, 0, 1),
+ // circ
+ "ease-in-circ": cubicBezier(0.6, 0.04, 0.98, 0.335),
+ "ease-out-circ": cubicBezier(0.075, 0.82, 0.165, 1),
+ "ease-in-out-circ": cubicBezier(0.785, 0.135, 0.15, 0.86),
+ // user param easings...
+ "spring": function spring(tension, friction, duration) {
+ if (duration === 0) {
+ return easings.linear;
+ }
+ var spring2 = generateSpringRK4(tension, friction, duration);
+ return function(start, end, percent) {
+ return start + (end - start) * spring2(percent);
+ };
+ },
+ "cubic-bezier": cubicBezier
+ };
+ function getEasedValue(type, start, end, percent, easingFn) {
+ if (percent === 1) {
+ return end;
+ }
+ if (start === end) {
+ return end;
+ }
+ var val = easingFn(start, end, percent);
+ if (type == null) {
+ return val;
+ }
+ if (type.roundValue || type.color) {
+ val = Math.round(val);
+ }
+ if (type.min !== void 0) {
+ val = Math.max(val, type.min);
+ }
+ if (type.max !== void 0) {
+ val = Math.min(val, type.max);
+ }
+ return val;
+ }
+ function getValue(prop, spec) {
+ if (prop.pfValue != null || prop.value != null) {
+ if (prop.pfValue != null && (spec == null || spec.type.units !== "%")) {
+ return prop.pfValue;
+ } else {
+ return prop.value;
+ }
+ } else {
+ return prop;
+ }
+ }
+ function ease(startProp, endProp, percent, easingFn, propSpec) {
+ var type = propSpec != null ? propSpec.type : null;
+ if (percent < 0) {
+ percent = 0;
+ } else if (percent > 1) {
+ percent = 1;
+ }
+ var start = getValue(startProp, propSpec);
+ var end = getValue(endProp, propSpec);
+ if (number$1(start) && number$1(end)) {
+ return getEasedValue(type, start, end, percent, easingFn);
+ } else if (array(start) && array(end)) {
+ var easedArr = [];
+ for (var i2 = 0; i2 < end.length; i2++) {
+ var si = start[i2];
+ var ei = end[i2];
+ if (si != null && ei != null) {
+ var val = getEasedValue(type, si, ei, percent, easingFn);
+ easedArr.push(val);
+ } else {
+ easedArr.push(ei);
+ }
+ }
+ return easedArr;
+ }
+ return void 0;
+ }
+ function step$1(self2, ani, now2, isCore) {
+ var isEles = !isCore;
+ var _p = self2._private;
+ var ani_p = ani._private;
+ var pEasing = ani_p.easing;
+ var startTime = ani_p.startTime;
+ var cy = isCore ? self2 : self2.cy();
+ var style = cy.style();
+ if (!ani_p.easingImpl) {
+ if (pEasing == null) {
+ ani_p.easingImpl = easings["linear"];
+ } else {
+ var easingVals;
+ if (string(pEasing)) {
+ var easingProp = style.parse("transition-timing-function", pEasing);
+ easingVals = easingProp.value;
+ } else {
+ easingVals = pEasing;
+ }
+ var name2, args;
+ if (string(easingVals)) {
+ name2 = easingVals;
+ args = [];
+ } else {
+ name2 = easingVals[1];
+ args = easingVals.slice(2).map(function(n) {
+ return +n;
+ });
+ }
+ if (args.length > 0) {
+ if (name2 === "spring") {
+ args.push(ani_p.duration);
+ }
+ ani_p.easingImpl = easings[name2].apply(null, args);
+ } else {
+ ani_p.easingImpl = easings[name2];
+ }
+ }
+ }
+ var easing = ani_p.easingImpl;
+ var percent;
+ if (ani_p.duration === 0) {
+ percent = 1;
+ } else {
+ percent = (now2 - startTime) / ani_p.duration;
+ }
+ if (ani_p.applying) {
+ percent = ani_p.progress;
+ }
+ if (percent < 0) {
+ percent = 0;
+ } else if (percent > 1) {
+ percent = 1;
+ }
+ if (ani_p.delay == null) {
+ var startPos = ani_p.startPosition;
+ var endPos = ani_p.position;
+ if (endPos && isEles && !self2.locked()) {
+ var newPos = {};
+ if (valid(startPos.x, endPos.x)) {
+ newPos.x = ease(startPos.x, endPos.x, percent, easing);
+ }
+ if (valid(startPos.y, endPos.y)) {
+ newPos.y = ease(startPos.y, endPos.y, percent, easing);
+ }
+ self2.position(newPos);
+ }
+ var startPan = ani_p.startPan;
+ var endPan = ani_p.pan;
+ var pan = _p.pan;
+ var animatingPan = endPan != null && isCore;
+ if (animatingPan) {
+ if (valid(startPan.x, endPan.x)) {
+ pan.x = ease(startPan.x, endPan.x, percent, easing);
+ }
+ if (valid(startPan.y, endPan.y)) {
+ pan.y = ease(startPan.y, endPan.y, percent, easing);
+ }
+ self2.emit("pan");
+ }
+ var startZoom = ani_p.startZoom;
+ var endZoom = ani_p.zoom;
+ var animatingZoom = endZoom != null && isCore;
+ if (animatingZoom) {
+ if (valid(startZoom, endZoom)) {
+ _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom);
+ }
+ self2.emit("zoom");
+ }
+ if (animatingPan || animatingZoom) {
+ self2.emit("viewport");
+ }
+ var props = ani_p.style;
+ if (props && props.length > 0 && isEles) {
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var prop = props[i2];
+ var _name = prop.name;
+ var end = prop;
+ var start = ani_p.startStyle[_name];
+ var propSpec = style.properties[start.name];
+ var easedVal = ease(start, end, percent, easing, propSpec);
+ style.overrideBypass(self2, _name, easedVal);
+ }
+ self2.emit("style");
+ }
+ }
+ ani_p.progress = percent;
+ return percent;
+ }
+ function valid(start, end) {
+ if (start == null || end == null) {
+ return false;
+ }
+ if (number$1(start) && number$1(end)) {
+ return true;
+ } else if (start && end) {
+ return true;
+ }
+ return false;
+ }
+ function startAnimation(self2, ani, now2, isCore) {
+ var ani_p = ani._private;
+ ani_p.started = true;
+ ani_p.startTime = now2 - ani_p.progress * ani_p.duration;
+ }
+ function stepAll(now2, cy) {
+ var eles = cy._private.aniEles;
+ var doneEles = [];
+ function stepOne(ele2, isCore) {
+ var _p = ele2._private;
+ var current = _p.animation.current;
+ var queue = _p.animation.queue;
+ var ranAnis = false;
+ if (current.length === 0) {
+ var next2 = queue.shift();
+ if (next2) {
+ current.push(next2);
+ }
+ }
+ var callbacks = function callbacks2(_callbacks) {
+ for (var j = _callbacks.length - 1; j >= 0; j--) {
+ var cb = _callbacks[j];
+ cb();
+ }
+ _callbacks.splice(0, _callbacks.length);
+ };
+ for (var i2 = current.length - 1; i2 >= 0; i2--) {
+ var ani = current[i2];
+ var ani_p = ani._private;
+ if (ani_p.stopped) {
+ current.splice(i2, 1);
+ ani_p.hooked = false;
+ ani_p.playing = false;
+ ani_p.started = false;
+ callbacks(ani_p.frames);
+ continue;
+ }
+ if (!ani_p.playing && !ani_p.applying) {
+ continue;
+ }
+ if (ani_p.playing && ani_p.applying) {
+ ani_p.applying = false;
+ }
+ if (!ani_p.started) {
+ startAnimation(ele2, ani, now2);
+ }
+ step$1(ele2, ani, now2, isCore);
+ if (ani_p.applying) {
+ ani_p.applying = false;
+ }
+ callbacks(ani_p.frames);
+ if (ani_p.step != null) {
+ ani_p.step(now2);
+ }
+ if (ani.completed()) {
+ current.splice(i2, 1);
+ ani_p.hooked = false;
+ ani_p.playing = false;
+ ani_p.started = false;
+ callbacks(ani_p.completes);
+ }
+ ranAnis = true;
+ }
+ if (!isCore && current.length === 0 && queue.length === 0) {
+ doneEles.push(ele2);
+ }
+ return ranAnis;
+ }
+ var ranEleAni = false;
+ for (var e = 0; e < eles.length; e++) {
+ var ele = eles[e];
+ var handledThisEle = stepOne(ele);
+ ranEleAni = ranEleAni || handledThisEle;
+ }
+ var ranCoreAni = stepOne(cy, true);
+ if (ranEleAni || ranCoreAni) {
+ if (eles.length > 0) {
+ cy.notify("draw", eles);
+ } else {
+ cy.notify("draw");
+ }
+ }
+ eles.unmerge(doneEles);
+ cy.emit("step");
+ }
+ var corefn$8 = {
+ // pull in animation functions
+ animate: define.animate(),
+ animation: define.animation(),
+ animated: define.animated(),
+ clearQueue: define.clearQueue(),
+ delay: define.delay(),
+ delayAnimation: define.delayAnimation(),
+ stop: define.stop(),
+ addToAnimationPool: function addToAnimationPool(eles) {
+ var cy = this;
+ if (!cy.styleEnabled()) {
+ return;
+ }
+ cy._private.aniEles.merge(eles);
+ },
+ stopAnimationLoop: function stopAnimationLoop() {
+ this._private.animationsRunning = false;
+ },
+ startAnimationLoop: function startAnimationLoop() {
+ var cy = this;
+ cy._private.animationsRunning = true;
+ if (!cy.styleEnabled()) {
+ return;
+ }
+ function headlessStep() {
+ if (!cy._private.animationsRunning) {
+ return;
+ }
+ requestAnimationFrame2(function animationStep(now2) {
+ stepAll(now2, cy);
+ headlessStep();
+ });
+ }
+ var renderer2 = cy.renderer();
+ if (renderer2 && renderer2.beforeRender) {
+ renderer2.beforeRender(function rendererAnimationStep(willDraw, now2) {
+ stepAll(now2, cy);
+ }, renderer2.beforeRenderPriorities.animations);
+ } else {
+ headlessStep();
+ }
+ }
+ };
+ var emitterOptions = {
+ qualifierCompare: function qualifierCompare(selector1, selector2) {
+ if (selector1 == null || selector2 == null) {
+ return selector1 == null && selector2 == null;
+ } else {
+ return selector1.sameText(selector2);
+ }
+ },
+ eventMatches: function eventMatches(cy, listener, eventObj) {
+ var selector = listener.qualifier;
+ if (selector != null) {
+ return cy !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);
+ }
+ return true;
+ },
+ addEventFields: function addEventFields(cy, evt) {
+ evt.cy = cy;
+ evt.target = cy;
+ },
+ callbackContext: function callbackContext(cy, listener, eventObj) {
+ return listener.qualifier != null ? eventObj.target : cy;
+ }
+ };
+ var argSelector = function argSelector2(arg) {
+ if (string(arg)) {
+ return new Selector(arg);
+ } else {
+ return arg;
+ }
+ };
+ var elesfn = {
+ createEmitter: function createEmitter() {
+ var _p = this._private;
+ if (!_p.emitter) {
+ _p.emitter = new Emitter(emitterOptions, this);
+ }
+ return this;
+ },
+ emitter: function emitter() {
+ return this._private.emitter;
+ },
+ on: function on(events, selector, callback) {
+ this.emitter().on(events, argSelector(selector), callback);
+ return this;
+ },
+ removeListener: function removeListener(events, selector, callback) {
+ this.emitter().removeListener(events, argSelector(selector), callback);
+ return this;
+ },
+ removeAllListeners: function removeAllListeners() {
+ this.emitter().removeAllListeners();
+ return this;
+ },
+ one: function one(events, selector, callback) {
+ this.emitter().one(events, argSelector(selector), callback);
+ return this;
+ },
+ once: function once(events, selector, callback) {
+ this.emitter().one(events, argSelector(selector), callback);
+ return this;
+ },
+ emit: function emit(events, extraParams) {
+ this.emitter().emit(events, extraParams);
+ return this;
+ },
+ emitAndNotify: function emitAndNotify(event2, eles) {
+ this.emit(event2);
+ this.notify(event2, eles);
+ return this;
+ }
+ };
+ define.eventAliasesOn(elesfn);
+ var corefn$7 = {
+ png: function png(options) {
+ var renderer2 = this._private.renderer;
+ options = options || {};
+ return renderer2.png(options);
+ },
+ jpg: function jpg(options) {
+ var renderer2 = this._private.renderer;
+ options = options || {};
+ options.bg = options.bg || "#fff";
+ return renderer2.jpg(options);
+ }
+ };
+ corefn$7.jpeg = corefn$7.jpg;
+ var corefn$6 = {
+ layout: function layout2(options) {
+ var cy = this;
+ if (options == null) {
+ error("Layout options must be specified to make a layout");
+ return;
+ }
+ if (options.name == null) {
+ error("A `name` must be specified to make a layout");
+ return;
+ }
+ var name2 = options.name;
+ var Layout2 = cy.extension("layout", name2);
+ if (Layout2 == null) {
+ error("No such layout `" + name2 + "` found. Did you forget to import it and `cytoscape.use()` it?");
+ return;
+ }
+ var eles;
+ if (string(options.eles)) {
+ eles = cy.$(options.eles);
+ } else {
+ eles = options.eles != null ? options.eles : cy.$();
+ }
+ var layout3 = new Layout2(extend({}, options, {
+ cy,
+ eles
+ }));
+ return layout3;
+ }
+ };
+ corefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout;
+ var corefn$5 = {
+ notify: function notify(eventName, eventEles) {
+ var _p = this._private;
+ if (this.batching()) {
+ _p.batchNotifications = _p.batchNotifications || {};
+ var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection();
+ if (eventEles != null) {
+ eles.merge(eventEles);
+ }
+ return;
+ }
+ if (!_p.notificationsEnabled) {
+ return;
+ }
+ var renderer2 = this.renderer();
+ if (this.destroyed() || !renderer2) {
+ return;
+ }
+ renderer2.notify(eventName, eventEles);
+ },
+ notifications: function notifications(bool) {
+ var p2 = this._private;
+ if (bool === void 0) {
+ return p2.notificationsEnabled;
+ } else {
+ p2.notificationsEnabled = bool ? true : false;
+ }
+ return this;
+ },
+ noNotifications: function noNotifications(callback) {
+ this.notifications(false);
+ callback();
+ this.notifications(true);
+ },
+ batching: function batching() {
+ return this._private.batchCount > 0;
+ },
+ startBatch: function startBatch() {
+ var _p = this._private;
+ if (_p.batchCount == null) {
+ _p.batchCount = 0;
+ }
+ if (_p.batchCount === 0) {
+ _p.batchStyleEles = this.collection();
+ _p.batchNotifications = {};
+ }
+ _p.batchCount++;
+ return this;
+ },
+ endBatch: function endBatch() {
+ var _p = this._private;
+ if (_p.batchCount === 0) {
+ return this;
+ }
+ _p.batchCount--;
+ if (_p.batchCount === 0) {
+ _p.batchStyleEles.updateStyle();
+ var renderer2 = this.renderer();
+ Object.keys(_p.batchNotifications).forEach(function(eventName) {
+ var eles = _p.batchNotifications[eventName];
+ if (eles.empty()) {
+ renderer2.notify(eventName);
+ } else {
+ renderer2.notify(eventName, eles);
+ }
+ });
+ }
+ return this;
+ },
+ batch: function batch(callback) {
+ this.startBatch();
+ callback();
+ this.endBatch();
+ return this;
+ },
+ // for backwards compatibility
+ batchData: function batchData(map) {
+ var cy = this;
+ return this.batch(function() {
+ var ids = Object.keys(map);
+ for (var i2 = 0; i2 < ids.length; i2++) {
+ var id = ids[i2];
+ var data2 = map[id];
+ var ele = cy.getElementById(id);
+ ele.data(data2);
+ }
+ });
+ }
+ };
+ var rendererDefaults = defaults$g({
+ hideEdgesOnViewport: false,
+ textureOnViewport: false,
+ motionBlur: false,
+ motionBlurOpacity: 0.05,
+ pixelRatio: void 0,
+ desktopTapThreshold: 4,
+ touchTapThreshold: 8,
+ wheelSensitivity: 1,
+ debug: false,
+ showFps: false
+ });
+ var corefn$4 = {
+ renderTo: function renderTo(context, zoom, pan, pxRatio) {
+ var r = this._private.renderer;
+ r.renderTo(context, zoom, pan, pxRatio);
+ return this;
+ },
+ renderer: function renderer2() {
+ return this._private.renderer;
+ },
+ forceRender: function forceRender() {
+ this.notify("draw");
+ return this;
+ },
+ resize: function resize() {
+ this.invalidateSize();
+ this.emitAndNotify("resize");
+ return this;
+ },
+ initRenderer: function initRenderer(options) {
+ var cy = this;
+ var RendererProto = cy.extension("renderer", options.name);
+ if (RendererProto == null) {
+ error("Can not initialise: No such renderer `".concat(options.name, "` found. Did you forget to import it and `cytoscape.use()` it?"));
+ return;
+ }
+ if (options.wheelSensitivity !== void 0) {
+ warn("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");
+ }
+ var rOpts = rendererDefaults(options);
+ rOpts.cy = cy;
+ cy._private.renderer = new RendererProto(rOpts);
+ this.notify("init");
+ },
+ destroyRenderer: function destroyRenderer() {
+ var cy = this;
+ cy.notify("destroy");
+ var domEle = cy.container();
+ if (domEle) {
+ domEle._cyreg = null;
+ while (domEle.childNodes.length > 0) {
+ domEle.removeChild(domEle.childNodes[0]);
+ }
+ }
+ cy._private.renderer = null;
+ cy.mutableElements().forEach(function(ele) {
+ var _p = ele._private;
+ _p.rscratch = {};
+ _p.rstyle = {};
+ _p.animation.current = [];
+ _p.animation.queue = [];
+ });
+ },
+ onRender: function onRender(fn2) {
+ return this.on("render", fn2);
+ },
+ offRender: function offRender(fn2) {
+ return this.off("render", fn2);
+ }
+ };
+ corefn$4.invalidateDimensions = corefn$4.resize;
+ var corefn$3 = {
+ // get a collection
+ // - empty collection on no args
+ // - collection of elements in the graph on selector arg
+ // - guarantee a returned collection when elements or collection specified
+ collection: function collection2(eles, opts) {
+ if (string(eles)) {
+ return this.$(eles);
+ } else if (elementOrCollection(eles)) {
+ return eles.collection();
+ } else if (array(eles)) {
+ if (!opts) {
+ opts = {};
+ }
+ return new Collection(this, eles, opts.unique, opts.removed);
+ }
+ return new Collection(this);
+ },
+ nodes: function nodes2(selector) {
+ var nodes3 = this.$(function(ele) {
+ return ele.isNode();
+ });
+ if (selector) {
+ return nodes3.filter(selector);
+ }
+ return nodes3;
+ },
+ edges: function edges(selector) {
+ var edges2 = this.$(function(ele) {
+ return ele.isEdge();
+ });
+ if (selector) {
+ return edges2.filter(selector);
+ }
+ return edges2;
+ },
+ // search the graph like jQuery
+ $: function $(selector) {
+ var eles = this._private.elements;
+ if (selector) {
+ return eles.filter(selector);
+ } else {
+ return eles.spawnSelf();
+ }
+ },
+ mutableElements: function mutableElements() {
+ return this._private.elements;
+ }
+ };
+ corefn$3.elements = corefn$3.filter = corefn$3.$;
+ var styfn$8 = {};
+ var TRUE = "t";
+ var FALSE = "f";
+ styfn$8.apply = function(eles) {
+ var self2 = this;
+ var _p = self2._private;
+ var cy = _p.cy;
+ var updatedEles = cy.collection();
+ for (var ie = 0; ie < eles.length; ie++) {
+ var ele = eles[ie];
+ var cxtMeta = self2.getContextMeta(ele);
+ if (cxtMeta.empty) {
+ continue;
+ }
+ var cxtStyle = self2.getContextStyle(cxtMeta);
+ var app = self2.applyContextStyle(cxtMeta, cxtStyle, ele);
+ if (ele._private.appliedInitStyle) {
+ self2.updateTransitions(ele, app.diffProps);
+ } else {
+ ele._private.appliedInitStyle = true;
+ }
+ var hintsDiff = self2.updateStyleHints(ele);
+ if (hintsDiff) {
+ updatedEles.push(ele);
+ }
+ }
+ return updatedEles;
+ };
+ styfn$8.getPropertiesDiff = function(oldCxtKey, newCxtKey) {
+ var self2 = this;
+ var cache2 = self2._private.propDiffs = self2._private.propDiffs || {};
+ var dualCxtKey = oldCxtKey + "-" + newCxtKey;
+ var cachedVal = cache2[dualCxtKey];
+ if (cachedVal) {
+ return cachedVal;
+ }
+ var diffProps = [];
+ var addedProp = {};
+ for (var i2 = 0; i2 < self2.length; i2++) {
+ var cxt = self2[i2];
+ var oldHasCxt = oldCxtKey[i2] === TRUE;
+ var newHasCxt = newCxtKey[i2] === TRUE;
+ var cxtHasDiffed = oldHasCxt !== newHasCxt;
+ var cxtHasMappedProps = cxt.mappedProperties.length > 0;
+ if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) {
+ var props = void 0;
+ if (cxtHasDiffed && cxtHasMappedProps) {
+ props = cxt.properties;
+ } else if (cxtHasDiffed) {
+ props = cxt.properties;
+ } else if (cxtHasMappedProps) {
+ props = cxt.mappedProperties;
+ }
+ for (var j = 0; j < props.length; j++) {
+ var prop = props[j];
+ var name2 = prop.name;
+ var laterCxtOverrides = false;
+ for (var k = i2 + 1; k < self2.length; k++) {
+ var laterCxt = self2[k];
+ var hasLaterCxt = newCxtKey[k] === TRUE;
+ if (!hasLaterCxt) {
+ continue;
+ }
+ laterCxtOverrides = laterCxt.properties[prop.name] != null;
+ if (laterCxtOverrides) {
+ break;
+ }
+ }
+ if (!addedProp[name2] && !laterCxtOverrides) {
+ addedProp[name2] = true;
+ diffProps.push(name2);
+ }
+ }
+ }
+ }
+ cache2[dualCxtKey] = diffProps;
+ return diffProps;
+ };
+ styfn$8.getContextMeta = function(ele) {
+ var self2 = this;
+ var cxtKey = "";
+ var diffProps;
+ var prevKey = ele._private.styleCxtKey || "";
+ for (var i2 = 0; i2 < self2.length; i2++) {
+ var context = self2[i2];
+ var contextSelectorMatches = context.selector && context.selector.matches(ele);
+ if (contextSelectorMatches) {
+ cxtKey += TRUE;
+ } else {
+ cxtKey += FALSE;
+ }
+ }
+ diffProps = self2.getPropertiesDiff(prevKey, cxtKey);
+ ele._private.styleCxtKey = cxtKey;
+ return {
+ key: cxtKey,
+ diffPropNames: diffProps,
+ empty: diffProps.length === 0
+ };
+ };
+ styfn$8.getContextStyle = function(cxtMeta) {
+ var cxtKey = cxtMeta.key;
+ var self2 = this;
+ var cxtStyles = this._private.contextStyles = this._private.contextStyles || {};
+ if (cxtStyles[cxtKey]) {
+ return cxtStyles[cxtKey];
+ }
+ var style = {
+ _private: {
+ key: cxtKey
+ }
+ };
+ for (var i2 = 0; i2 < self2.length; i2++) {
+ var cxt = self2[i2];
+ var hasCxt = cxtKey[i2] === TRUE;
+ if (!hasCxt) {
+ continue;
+ }
+ for (var j = 0; j < cxt.properties.length; j++) {
+ var prop = cxt.properties[j];
+ style[prop.name] = prop;
+ }
+ }
+ cxtStyles[cxtKey] = style;
+ return style;
+ };
+ styfn$8.applyContextStyle = function(cxtMeta, cxtStyle, ele) {
+ var self2 = this;
+ var diffProps = cxtMeta.diffPropNames;
+ var retDiffProps = {};
+ var types = self2.types;
+ for (var i2 = 0; i2 < diffProps.length; i2++) {
+ var diffPropName = diffProps[i2];
+ var cxtProp = cxtStyle[diffPropName];
+ var eleProp = ele.pstyle(diffPropName);
+ if (!cxtProp) {
+ if (!eleProp) {
+ continue;
+ } else if (eleProp.bypass) {
+ cxtProp = {
+ name: diffPropName,
+ deleteBypassed: true
+ };
+ } else {
+ cxtProp = {
+ name: diffPropName,
+ "delete": true
+ };
+ }
+ }
+ if (eleProp === cxtProp) {
+ continue;
+ }
+ if (cxtProp.mapped === types.fn && eleProp != null && eleProp.mapping != null && eleProp.mapping.value === cxtProp.value) {
+ var mapping = eleProp.mapping;
+ var fnValue = mapping.fnValue = cxtProp.value(ele);
+ if (fnValue === mapping.prevFnValue) {
+ continue;
+ }
+ }
+ var retDiffProp = retDiffProps[diffPropName] = {
+ prev: eleProp
+ };
+ self2.applyParsedProperty(ele, cxtProp);
+ retDiffProp.next = ele.pstyle(diffPropName);
+ if (retDiffProp.next && retDiffProp.next.bypass) {
+ retDiffProp.next = retDiffProp.next.bypassed;
+ }
+ }
+ return {
+ diffProps: retDiffProps
+ };
+ };
+ styfn$8.updateStyleHints = function(ele) {
+ var _p = ele._private;
+ var self2 = this;
+ var propNames = self2.propertyGroupNames;
+ var propGrKeys = self2.propertyGroupKeys;
+ var propHash = function propHash2(ele2, propNames2, seedKey) {
+ return self2.getPropertiesHash(ele2, propNames2, seedKey);
+ };
+ var oldStyleKey = _p.styleKey;
+ if (ele.removed()) {
+ return false;
+ }
+ var isNode = _p.group === "nodes";
+ var overriddenStyles = ele._private.style;
+ propNames = Object.keys(overriddenStyles);
+ for (var i2 = 0; i2 < propGrKeys.length; i2++) {
+ var grKey = propGrKeys[i2];
+ _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];
+ }
+ var updateGrKey1 = function updateGrKey12(val, grKey2) {
+ return _p.styleKeys[grKey2][0] = hashInt(val, _p.styleKeys[grKey2][0]);
+ };
+ var updateGrKey2 = function updateGrKey22(val, grKey2) {
+ return _p.styleKeys[grKey2][1] = hashIntAlt(val, _p.styleKeys[grKey2][1]);
+ };
+ var updateGrKey = function updateGrKey3(val, grKey2) {
+ updateGrKey1(val, grKey2);
+ updateGrKey2(val, grKey2);
+ };
+ var updateGrKeyWStr = function updateGrKeyWStr2(strVal, grKey2) {
+ for (var j = 0; j < strVal.length; j++) {
+ var ch = strVal.charCodeAt(j);
+ updateGrKey1(ch, grKey2);
+ updateGrKey2(ch, grKey2);
+ }
+ };
+ var N = 2e9;
+ var cleanNum = function cleanNum2(val) {
+ return -128 < val && val < 128 && Math.floor(val) !== val ? N - (val * 1024 | 0) : val;
+ };
+ for (var _i = 0; _i < propNames.length; _i++) {
+ var name2 = propNames[_i];
+ var parsedProp = overriddenStyles[name2];
+ if (parsedProp == null) {
+ continue;
+ }
+ var propInfo = this.properties[name2];
+ var type = propInfo.type;
+ var _grKey = propInfo.groupKey;
+ var normalizedNumberVal = void 0;
+ if (propInfo.hashOverride != null) {
+ normalizedNumberVal = propInfo.hashOverride(ele, parsedProp);
+ } else if (parsedProp.pfValue != null) {
+ normalizedNumberVal = parsedProp.pfValue;
+ }
+ var numberVal = propInfo.enums == null ? parsedProp.value : null;
+ var haveNormNum = normalizedNumberVal != null;
+ var haveUnitedNum = numberVal != null;
+ var haveNum = haveNormNum || haveUnitedNum;
+ var units = parsedProp.units;
+ if (type.number && haveNum && !type.multiple) {
+ var v = haveNormNum ? normalizedNumberVal : numberVal;
+ updateGrKey(cleanNum(v), _grKey);
+ if (!haveNormNum && units != null) {
+ updateGrKeyWStr(units, _grKey);
+ }
+ } else {
+ updateGrKeyWStr(parsedProp.strValue, _grKey);
+ }
+ }
+ var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];
+ for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) {
+ var _grKey2 = propGrKeys[_i2];
+ var grHash = _p.styleKeys[_grKey2];
+ hash[0] = hashInt(grHash[0], hash[0]);
+ hash[1] = hashIntAlt(grHash[1], hash[1]);
+ }
+ _p.styleKey = combineHashes(hash[0], hash[1]);
+ var sk = _p.styleKeys;
+ _p.labelDimsKey = combineHashesArray(sk.labelDimensions);
+ var labelKeys = propHash(ele, ["label"], sk.labelDimensions);
+ _p.labelKey = combineHashesArray(labelKeys);
+ _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys));
+ if (!isNode) {
+ var sourceLabelKeys = propHash(ele, ["source-label"], sk.labelDimensions);
+ _p.sourceLabelKey = combineHashesArray(sourceLabelKeys);
+ _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys));
+ var targetLabelKeys = propHash(ele, ["target-label"], sk.labelDimensions);
+ _p.targetLabelKey = combineHashesArray(targetLabelKeys);
+ _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys));
+ }
+ if (isNode) {
+ var _p$styleKeys = _p.styleKeys, nodeBody = _p$styleKeys.nodeBody, nodeBorder = _p$styleKeys.nodeBorder, backgroundImage = _p$styleKeys.backgroundImage, compound = _p$styleKeys.compound, pie = _p$styleKeys.pie;
+ var nodeKeys = [nodeBody, nodeBorder, backgroundImage, compound, pie].filter(function(k) {
+ return k != null;
+ }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]);
+ _p.nodeKey = combineHashesArray(nodeKeys);
+ _p.hasPie = pie != null && pie[0] !== DEFAULT_HASH_SEED && pie[1] !== DEFAULT_HASH_SEED_ALT;
+ }
+ return oldStyleKey !== _p.styleKey;
+ };
+ styfn$8.clearStyleHints = function(ele) {
+ var _p = ele._private;
+ _p.styleCxtKey = "";
+ _p.styleKeys = {};
+ _p.styleKey = null;
+ _p.labelKey = null;
+ _p.labelStyleKey = null;
+ _p.sourceLabelKey = null;
+ _p.sourceLabelStyleKey = null;
+ _p.targetLabelKey = null;
+ _p.targetLabelStyleKey = null;
+ _p.nodeKey = null;
+ _p.hasPie = null;
+ };
+ styfn$8.applyParsedProperty = function(ele, parsedProp) {
+ var self2 = this;
+ var prop = parsedProp;
+ var style = ele._private.style;
+ var flatProp;
+ var types = self2.types;
+ var type = self2.properties[prop.name].type;
+ var propIsBypass = prop.bypass;
+ var origProp = style[prop.name];
+ var origPropIsBypass = origProp && origProp.bypass;
+ var _p = ele._private;
+ var flatPropMapping = "mapping";
+ var getVal = function getVal2(p2) {
+ if (p2 == null) {
+ return null;
+ } else if (p2.pfValue != null) {
+ return p2.pfValue;
+ } else {
+ return p2.value;
+ }
+ };
+ var checkTriggers = function checkTriggers2() {
+ var fromVal = getVal(origProp);
+ var toVal = getVal(prop);
+ self2.checkTriggers(ele, prop.name, fromVal, toVal);
+ };
+ if (prop && prop.name.substr(0, 3) === "pie") {
+ warn("The pie style properties are deprecated. Create charts using background images instead.");
+ }
+ if (parsedProp.name === "curve-style" && ele.isEdge() && // loops must be bundled beziers
+ (parsedProp.value !== "bezier" && ele.isLoop() || // edges connected to compound nodes can not be haystacks
+ parsedProp.value === "haystack" && (ele.source().isParent() || ele.target().isParent()))) {
+ prop = parsedProp = this.parse(parsedProp.name, "bezier", propIsBypass);
+ }
+ if (prop["delete"]) {
+ style[prop.name] = void 0;
+ checkTriggers();
+ return true;
+ }
+ if (prop.deleteBypassed) {
+ if (!origProp) {
+ checkTriggers();
+ return true;
+ } else if (origProp.bypass) {
+ origProp.bypassed = void 0;
+ checkTriggers();
+ return true;
+ } else {
+ return false;
+ }
+ }
+ if (prop.deleteBypass) {
+ if (!origProp) {
+ checkTriggers();
+ return true;
+ } else if (origProp.bypass) {
+ style[prop.name] = origProp.bypassed;
+ checkTriggers();
+ return true;
+ } else {
+ return false;
+ }
+ }
+ var printMappingErr = function printMappingErr2() {
+ warn("Do not assign mappings to elements without corresponding data (i.e. ele `" + ele.id() + "` has no mapping for property `" + prop.name + "` with data field `" + prop.field + "`); try a `[" + prop.field + "]` selector to limit scope to elements with `" + prop.field + "` defined");
+ };
+ switch (prop.mapped) {
+ case types.mapData: {
+ var fields = prop.field.split(".");
+ var fieldVal = _p.data;
+ for (var i2 = 0; i2 < fields.length && fieldVal; i2++) {
+ var field = fields[i2];
+ fieldVal = fieldVal[field];
+ }
+ if (fieldVal == null) {
+ printMappingErr();
+ return false;
+ }
+ var percent;
+ if (!number$1(fieldVal)) {
+ warn("Do not use continuous mappers without specifying numeric data (i.e. `" + prop.field + ": " + fieldVal + "` for `" + ele.id() + "` is non-numeric)");
+ return false;
+ } else {
+ var fieldWidth = prop.fieldMax - prop.fieldMin;
+ if (fieldWidth === 0) {
+ percent = 0;
+ } else {
+ percent = (fieldVal - prop.fieldMin) / fieldWidth;
+ }
+ }
+ if (percent < 0) {
+ percent = 0;
+ } else if (percent > 1) {
+ percent = 1;
+ }
+ if (type.color) {
+ var r1 = prop.valueMin[0];
+ var r2 = prop.valueMax[0];
+ var g1 = prop.valueMin[1];
+ var g2 = prop.valueMax[1];
+ var b1 = prop.valueMin[2];
+ var b2 = prop.valueMax[2];
+ var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3];
+ var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3];
+ var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)];
+ flatProp = {
+ // colours are simple, so just create the flat property instead of expensive string parsing
+ bypass: prop.bypass,
+ // we're a bypass if the mapping property is a bypass
+ name: prop.name,
+ value: clr,
+ strValue: "rgb(" + clr[0] + ", " + clr[1] + ", " + clr[2] + ")"
+ };
+ } else if (type.number) {
+ var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent;
+ flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping);
+ } else {
+ return false;
+ }
+ if (!flatProp) {
+ printMappingErr();
+ return false;
+ }
+ flatProp.mapping = prop;
+ prop = flatProp;
+ break;
+ }
+ case types.data: {
+ var _fields = prop.field.split(".");
+ var _fieldVal = _p.data;
+ for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) {
+ var _field = _fields[_i3];
+ _fieldVal = _fieldVal[_field];
+ }
+ if (_fieldVal != null) {
+ flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping);
+ }
+ if (!flatProp) {
+ printMappingErr();
+ return false;
+ }
+ flatProp.mapping = prop;
+ prop = flatProp;
+ break;
+ }
+ case types.fn: {
+ var fn2 = prop.value;
+ var fnRetVal = prop.fnValue != null ? prop.fnValue : fn2(ele);
+ prop.prevFnValue = fnRetVal;
+ if (fnRetVal == null) {
+ warn("Custom function mappers may not return null (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is null)");
+ return false;
+ }
+ flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping);
+ if (!flatProp) {
+ warn("Custom function mappers may not return invalid values for the property type (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is invalid)");
+ return false;
+ }
+ flatProp.mapping = copy(prop);
+ prop = flatProp;
+ break;
+ }
+ case void 0:
+ break;
+ default:
+ return false;
+ }
+ if (propIsBypass) {
+ if (origPropIsBypass) {
+ prop.bypassed = origProp.bypassed;
+ } else {
+ prop.bypassed = origProp;
+ }
+ style[prop.name] = prop;
+ } else {
+ if (origPropIsBypass) {
+ origProp.bypassed = prop;
+ } else {
+ style[prop.name] = prop;
+ }
+ }
+ checkTriggers();
+ return true;
+ };
+ styfn$8.cleanElements = function(eles, keepBypasses) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ this.clearStyleHints(ele);
+ ele.dirtyCompoundBoundsCache();
+ ele.dirtyBoundingBoxCache();
+ if (!keepBypasses) {
+ ele._private.style = {};
+ } else {
+ var style = ele._private.style;
+ var propNames = Object.keys(style);
+ for (var j = 0; j < propNames.length; j++) {
+ var propName = propNames[j];
+ var eleProp = style[propName];
+ if (eleProp != null) {
+ if (eleProp.bypass) {
+ eleProp.bypassed = null;
+ } else {
+ style[propName] = null;
+ }
+ }
+ }
+ }
+ }
+ };
+ styfn$8.update = function() {
+ var cy = this._private.cy;
+ var eles = cy.mutableElements();
+ eles.updateStyle();
+ };
+ styfn$8.updateTransitions = function(ele, diffProps) {
+ var self2 = this;
+ var _p = ele._private;
+ var props = ele.pstyle("transition-property").value;
+ var duration = ele.pstyle("transition-duration").pfValue;
+ var delay = ele.pstyle("transition-delay").pfValue;
+ if (props.length > 0 && duration > 0) {
+ var style = {};
+ var anyPrev = false;
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var prop = props[i2];
+ var styProp = ele.pstyle(prop);
+ var diffProp = diffProps[prop];
+ if (!diffProp) {
+ continue;
+ }
+ var prevProp = diffProp.prev;
+ var fromProp = prevProp;
+ var toProp = diffProp.next != null ? diffProp.next : styProp;
+ var diff = false;
+ var initVal = void 0;
+ var initDt = 1e-6;
+ if (!fromProp) {
+ continue;
+ }
+ if (number$1(fromProp.pfValue) && number$1(toProp.pfValue)) {
+ diff = toProp.pfValue - fromProp.pfValue;
+ initVal = fromProp.pfValue + initDt * diff;
+ } else if (number$1(fromProp.value) && number$1(toProp.value)) {
+ diff = toProp.value - fromProp.value;
+ initVal = fromProp.value + initDt * diff;
+ } else if (array(fromProp.value) && array(toProp.value)) {
+ diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2];
+ initVal = fromProp.strValue;
+ }
+ if (diff) {
+ style[prop] = toProp.strValue;
+ this.applyBypass(ele, prop, initVal);
+ anyPrev = true;
+ }
+ }
+ if (!anyPrev) {
+ return;
+ }
+ _p.transitioning = true;
+ new Promise$1(function(resolve2) {
+ if (delay > 0) {
+ ele.delayAnimation(delay).play().promise().then(resolve2);
+ } else {
+ resolve2();
+ }
+ }).then(function() {
+ return ele.animation({
+ style,
+ duration,
+ easing: ele.pstyle("transition-timing-function").value,
+ queue: false
+ }).play().promise();
+ }).then(function() {
+ self2.removeBypasses(ele, props);
+ ele.emitAndNotify("style");
+ _p.transitioning = false;
+ });
+ } else if (_p.transitioning) {
+ this.removeBypasses(ele, props);
+ ele.emitAndNotify("style");
+ _p.transitioning = false;
+ }
+ };
+ styfn$8.checkTrigger = function(ele, name2, fromValue, toValue, getTrigger, onTrigger) {
+ var prop = this.properties[name2];
+ var triggerCheck = getTrigger(prop);
+ if (triggerCheck != null && triggerCheck(fromValue, toValue)) {
+ onTrigger(prop);
+ }
+ };
+ styfn$8.checkZOrderTrigger = function(ele, name2, fromValue, toValue) {
+ var _this = this;
+ this.checkTrigger(ele, name2, fromValue, toValue, function(prop) {
+ return prop.triggersZOrder;
+ }, function() {
+ _this._private.cy.notify("zorder", ele);
+ });
+ };
+ styfn$8.checkBoundsTrigger = function(ele, name2, fromValue, toValue) {
+ this.checkTrigger(ele, name2, fromValue, toValue, function(prop) {
+ return prop.triggersBounds;
+ }, function(prop) {
+ ele.dirtyCompoundBoundsCache();
+ ele.dirtyBoundingBoxCache();
+ if (
+ // only for beziers -- so performance of other edges isn't affected
+ prop.triggersBoundsOfParallelBeziers && (name2 === "curve-style" && (fromValue === "bezier" || toValue === "bezier") || name2 === "display" && (fromValue === "none" || toValue === "none"))
+ ) {
+ ele.parallelEdges().forEach(function(pllEdge) {
+ if (pllEdge.isBundledBezier()) {
+ pllEdge.dirtyBoundingBoxCache();
+ }
+ });
+ }
+ });
+ };
+ styfn$8.checkTriggers = function(ele, name2, fromValue, toValue) {
+ ele.dirtyStyleCache();
+ this.checkZOrderTrigger(ele, name2, fromValue, toValue);
+ this.checkBoundsTrigger(ele, name2, fromValue, toValue);
+ };
+ var styfn$7 = {};
+ styfn$7.applyBypass = function(eles, name2, value, updateTransitions) {
+ var self2 = this;
+ var props = [];
+ var isBypass = true;
+ if (name2 === "*" || name2 === "**") {
+ if (value !== void 0) {
+ for (var i2 = 0; i2 < self2.properties.length; i2++) {
+ var prop = self2.properties[i2];
+ var _name = prop.name;
+ var parsedProp = this.parse(_name, value, true);
+ if (parsedProp) {
+ props.push(parsedProp);
+ }
+ }
+ }
+ } else if (string(name2)) {
+ var _parsedProp = this.parse(name2, value, true);
+ if (_parsedProp) {
+ props.push(_parsedProp);
+ }
+ } else if (plainObject(name2)) {
+ var specifiedProps = name2;
+ updateTransitions = value;
+ var names = Object.keys(specifiedProps);
+ for (var _i = 0; _i < names.length; _i++) {
+ var _name2 = names[_i];
+ var _value = specifiedProps[_name2];
+ if (_value === void 0) {
+ _value = specifiedProps[dash2camel(_name2)];
+ }
+ if (_value !== void 0) {
+ var _parsedProp2 = this.parse(_name2, _value, true);
+ if (_parsedProp2) {
+ props.push(_parsedProp2);
+ }
+ }
+ }
+ } else {
+ return false;
+ }
+ if (props.length === 0) {
+ return false;
+ }
+ var ret = false;
+ for (var _i2 = 0; _i2 < eles.length; _i2++) {
+ var ele = eles[_i2];
+ var diffProps = {};
+ var diffProp = void 0;
+ for (var j = 0; j < props.length; j++) {
+ var _prop = props[j];
+ if (updateTransitions) {
+ var prevProp = ele.pstyle(_prop.name);
+ diffProp = diffProps[_prop.name] = {
+ prev: prevProp
+ };
+ }
+ ret = this.applyParsedProperty(ele, copy(_prop)) || ret;
+ if (updateTransitions) {
+ diffProp.next = ele.pstyle(_prop.name);
+ }
+ }
+ if (ret) {
+ this.updateStyleHints(ele);
+ }
+ if (updateTransitions) {
+ this.updateTransitions(ele, diffProps, isBypass);
+ }
+ }
+ return ret;
+ };
+ styfn$7.overrideBypass = function(eles, name2, value) {
+ name2 = camel2dash(name2);
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var prop = ele._private.style[name2];
+ var type = this.properties[name2].type;
+ var isColor = type.color;
+ var isMulti = type.mutiple;
+ var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value;
+ if (!prop || !prop.bypass) {
+ this.applyBypass(ele, name2, value);
+ } else {
+ prop.value = value;
+ if (prop.pfValue != null) {
+ prop.pfValue = value;
+ }
+ if (isColor) {
+ prop.strValue = "rgb(" + value.join(",") + ")";
+ } else if (isMulti) {
+ prop.strValue = value.join(" ");
+ } else {
+ prop.strValue = "" + value;
+ }
+ this.updateStyleHints(ele);
+ }
+ this.checkTriggers(ele, name2, oldValue, value);
+ }
+ };
+ styfn$7.removeAllBypasses = function(eles, updateTransitions) {
+ return this.removeBypasses(eles, this.propertyNames, updateTransitions);
+ };
+ styfn$7.removeBypasses = function(eles, props, updateTransitions) {
+ var isBypass = true;
+ for (var j = 0; j < eles.length; j++) {
+ var ele = eles[j];
+ var diffProps = {};
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var name2 = props[i2];
+ var prop = this.properties[name2];
+ var prevProp = ele.pstyle(prop.name);
+ if (!prevProp || !prevProp.bypass) {
+ continue;
+ }
+ var value = "";
+ var parsedProp = this.parse(name2, value, true);
+ var diffProp = diffProps[prop.name] = {
+ prev: prevProp
+ };
+ this.applyParsedProperty(ele, parsedProp);
+ diffProp.next = ele.pstyle(prop.name);
+ }
+ this.updateStyleHints(ele);
+ if (updateTransitions) {
+ this.updateTransitions(ele, diffProps, isBypass);
+ }
+ }
+ };
+ var styfn$6 = {};
+ styfn$6.getEmSizeInPixels = function() {
+ var px = this.containerCss("font-size");
+ if (px != null) {
+ return parseFloat(px);
+ } else {
+ return 1;
+ }
+ };
+ styfn$6.containerCss = function(propName) {
+ var cy = this._private.cy;
+ var domElement2 = cy.container();
+ if (window$1 && domElement2 && window$1.getComputedStyle) {
+ return window$1.getComputedStyle(domElement2).getPropertyValue(propName);
+ }
+ };
+ var styfn$5 = {};
+ styfn$5.getRenderedStyle = function(ele, prop) {
+ if (prop) {
+ return this.getStylePropertyValue(ele, prop, true);
+ } else {
+ return this.getRawStyle(ele, true);
+ }
+ };
+ styfn$5.getRawStyle = function(ele, isRenderedVal) {
+ var self2 = this;
+ ele = ele[0];
+ if (ele) {
+ var rstyle = {};
+ for (var i2 = 0; i2 < self2.properties.length; i2++) {
+ var prop = self2.properties[i2];
+ var val = self2.getStylePropertyValue(ele, prop.name, isRenderedVal);
+ if (val != null) {
+ rstyle[prop.name] = val;
+ rstyle[dash2camel(prop.name)] = val;
+ }
+ }
+ return rstyle;
+ }
+ };
+ styfn$5.getIndexedStyle = function(ele, property, subproperty, index) {
+ var pstyle = ele.pstyle(property)[subproperty][index];
+ return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property)[subproperty][0];
+ };
+ styfn$5.getStylePropertyValue = function(ele, propName, isRenderedVal) {
+ var self2 = this;
+ ele = ele[0];
+ if (ele) {
+ var prop = self2.properties[propName];
+ if (prop.alias) {
+ prop = prop.pointsTo;
+ }
+ var type = prop.type;
+ var styleProp = ele.pstyle(prop.name);
+ if (styleProp) {
+ var value = styleProp.value, units = styleProp.units, strValue = styleProp.strValue;
+ if (isRenderedVal && type.number && value != null && number$1(value)) {
+ var zoom = ele.cy().zoom();
+ var getRenderedValue = function getRenderedValue2(val) {
+ return val * zoom;
+ };
+ var getValueStringWithUnits = function getValueStringWithUnits2(val, units2) {
+ return getRenderedValue(val) + units2;
+ };
+ var isArrayValue = array(value);
+ var haveUnits = isArrayValue ? units.every(function(u) {
+ return u != null;
+ }) : units != null;
+ if (haveUnits) {
+ if (isArrayValue) {
+ return value.map(function(v, i2) {
+ return getValueStringWithUnits(v, units[i2]);
+ }).join(" ");
+ } else {
+ return getValueStringWithUnits(value, units);
+ }
+ } else {
+ if (isArrayValue) {
+ return value.map(function(v) {
+ return string(v) ? v : "" + getRenderedValue(v);
+ }).join(" ");
+ } else {
+ return "" + getRenderedValue(value);
+ }
+ }
+ } else if (strValue != null) {
+ return strValue;
+ }
+ }
+ return null;
+ }
+ };
+ styfn$5.getAnimationStartStyle = function(ele, aniProps) {
+ var rstyle = {};
+ for (var i2 = 0; i2 < aniProps.length; i2++) {
+ var aniProp = aniProps[i2];
+ var name2 = aniProp.name;
+ var styleProp = ele.pstyle(name2);
+ if (styleProp !== void 0) {
+ if (plainObject(styleProp)) {
+ styleProp = this.parse(name2, styleProp.strValue);
+ } else {
+ styleProp = this.parse(name2, styleProp);
+ }
+ }
+ if (styleProp) {
+ rstyle[name2] = styleProp;
+ }
+ }
+ return rstyle;
+ };
+ styfn$5.getPropsList = function(propsObj) {
+ var self2 = this;
+ var rstyle = [];
+ var style = propsObj;
+ var props = self2.properties;
+ if (style) {
+ var names = Object.keys(style);
+ for (var i2 = 0; i2 < names.length; i2++) {
+ var name2 = names[i2];
+ var val = style[name2];
+ var prop = props[name2] || props[camel2dash(name2)];
+ var styleProp = this.parse(prop.name, val);
+ if (styleProp) {
+ rstyle.push(styleProp);
+ }
+ }
+ }
+ return rstyle;
+ };
+ styfn$5.getNonDefaultPropertiesHash = function(ele, propNames, seed) {
+ var hash = seed.slice();
+ var name2, val, strVal, chVal;
+ var i2, j;
+ for (i2 = 0; i2 < propNames.length; i2++) {
+ name2 = propNames[i2];
+ val = ele.pstyle(name2, false);
+ if (val == null) {
+ continue;
+ } else if (val.pfValue != null) {
+ hash[0] = hashInt(chVal, hash[0]);
+ hash[1] = hashIntAlt(chVal, hash[1]);
+ } else {
+ strVal = val.strValue;
+ for (j = 0; j < strVal.length; j++) {
+ chVal = strVal.charCodeAt(j);
+ hash[0] = hashInt(chVal, hash[0]);
+ hash[1] = hashIntAlt(chVal, hash[1]);
+ }
+ }
+ }
+ return hash;
+ };
+ styfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash;
+ var styfn$4 = {};
+ styfn$4.appendFromJson = function(json) {
+ var style = this;
+ for (var i2 = 0; i2 < json.length; i2++) {
+ var context = json[i2];
+ var selector = context.selector;
+ var props = context.style || context.css;
+ var names = Object.keys(props);
+ style.selector(selector);
+ for (var j = 0; j < names.length; j++) {
+ var name2 = names[j];
+ var value = props[name2];
+ style.css(name2, value);
+ }
+ }
+ return style;
+ };
+ styfn$4.fromJson = function(json) {
+ var style = this;
+ style.resetToDefault();
+ style.appendFromJson(json);
+ return style;
+ };
+ styfn$4.json = function() {
+ var json = [];
+ for (var i2 = this.defaultLength; i2 < this.length; i2++) {
+ var cxt = this[i2];
+ var selector = cxt.selector;
+ var props = cxt.properties;
+ var css = {};
+ for (var j = 0; j < props.length; j++) {
+ var prop = props[j];
+ css[prop.name] = prop.strValue;
+ }
+ json.push({
+ selector: !selector ? "core" : selector.toString(),
+ style: css
+ });
+ }
+ return json;
+ };
+ var styfn$3 = {};
+ styfn$3.appendFromString = function(string2) {
+ var self2 = this;
+ var style = this;
+ var remaining = "" + string2;
+ var selAndBlockStr;
+ var blockRem;
+ var propAndValStr;
+ remaining = remaining.replace(/[/][*](\s|.)+?[*][/]/g, "");
+ function removeSelAndBlockFromRemaining() {
+ if (remaining.length > selAndBlockStr.length) {
+ remaining = remaining.substr(selAndBlockStr.length);
+ } else {
+ remaining = "";
+ }
+ }
+ function removePropAndValFromRem() {
+ if (blockRem.length > propAndValStr.length) {
+ blockRem = blockRem.substr(propAndValStr.length);
+ } else {
+ blockRem = "";
+ }
+ }
+ for (; ; ) {
+ var nothingLeftToParse = remaining.match(/^\s*$/);
+ if (nothingLeftToParse) {
+ break;
+ }
+ var selAndBlock = remaining.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);
+ if (!selAndBlock) {
+ warn("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: " + remaining);
+ break;
+ }
+ selAndBlockStr = selAndBlock[0];
+ var selectorStr = selAndBlock[1];
+ if (selectorStr !== "core") {
+ var selector = new Selector(selectorStr);
+ if (selector.invalid) {
+ warn("Skipping parsing of block: Invalid selector found in string stylesheet: " + selectorStr);
+ removeSelAndBlockFromRemaining();
+ continue;
+ }
+ }
+ var blockStr = selAndBlock[2];
+ var invalidBlock = false;
+ blockRem = blockStr;
+ var props = [];
+ for (; ; ) {
+ var _nothingLeftToParse = blockRem.match(/^\s*$/);
+ if (_nothingLeftToParse) {
+ break;
+ }
+ var propAndVal = blockRem.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);
+ if (!propAndVal) {
+ warn("Skipping parsing of block: Invalid formatting of style property and value definitions found in:" + blockStr);
+ invalidBlock = true;
+ break;
+ }
+ propAndValStr = propAndVal[0];
+ var propStr = propAndVal[1];
+ var valStr = propAndVal[2];
+ var prop = self2.properties[propStr];
+ if (!prop) {
+ warn("Skipping property: Invalid property name in: " + propAndValStr);
+ removePropAndValFromRem();
+ continue;
+ }
+ var parsedProp = style.parse(propStr, valStr);
+ if (!parsedProp) {
+ warn("Skipping property: Invalid property definition in: " + propAndValStr);
+ removePropAndValFromRem();
+ continue;
+ }
+ props.push({
+ name: propStr,
+ val: valStr
+ });
+ removePropAndValFromRem();
+ }
+ if (invalidBlock) {
+ removeSelAndBlockFromRemaining();
+ break;
+ }
+ style.selector(selectorStr);
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var _prop = props[i2];
+ style.css(_prop.name, _prop.val);
+ }
+ removeSelAndBlockFromRemaining();
+ }
+ return style;
+ };
+ styfn$3.fromString = function(string2) {
+ var style = this;
+ style.resetToDefault();
+ style.appendFromString(string2);
+ return style;
+ };
+ var styfn$2 = {};
+ (function() {
+ var number$12 = number;
+ var rgba2 = rgbaNoBackRefs;
+ var hsla2 = hslaNoBackRefs;
+ var hex3$1 = hex3;
+ var hex6$1 = hex6;
+ var data2 = function data3(prefix) {
+ return "^" + prefix + "\\s*\\(\\s*([\\w\\.]+)\\s*\\)$";
+ };
+ var mapData = function mapData2(prefix) {
+ var mapArg = number$12 + "|\\w+|" + rgba2 + "|" + hsla2 + "|" + hex3$1 + "|" + hex6$1;
+ return "^" + prefix + "\\s*\\(([\\w\\.]+)\\s*\\,\\s*(" + number$12 + ")\\s*\\,\\s*(" + number$12 + ")\\s*,\\s*(" + mapArg + ")\\s*\\,\\s*(" + mapArg + ")\\)$";
+ };
+ var urlRegexes = [`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`, "^(none)$", "^(.+)$"];
+ styfn$2.types = {
+ time: {
+ number: true,
+ min: 0,
+ units: "s|ms",
+ implicitUnits: "ms"
+ },
+ percent: {
+ number: true,
+ min: 0,
+ max: 100,
+ units: "%",
+ implicitUnits: "%"
+ },
+ percentages: {
+ number: true,
+ min: 0,
+ max: 100,
+ units: "%",
+ implicitUnits: "%",
+ multiple: true
+ },
+ zeroOneNumber: {
+ number: true,
+ min: 0,
+ max: 1,
+ unitless: true
+ },
+ zeroOneNumbers: {
+ number: true,
+ min: 0,
+ max: 1,
+ unitless: true,
+ multiple: true
+ },
+ nOneOneNumber: {
+ number: true,
+ min: -1,
+ max: 1,
+ unitless: true
+ },
+ nonNegativeInt: {
+ number: true,
+ min: 0,
+ integer: true,
+ unitless: true
+ },
+ position: {
+ enums: ["parent", "origin"]
+ },
+ nodeSize: {
+ number: true,
+ min: 0,
+ enums: ["label"]
+ },
+ number: {
+ number: true,
+ unitless: true
+ },
+ numbers: {
+ number: true,
+ unitless: true,
+ multiple: true
+ },
+ positiveNumber: {
+ number: true,
+ unitless: true,
+ min: 0,
+ strictMin: true
+ },
+ size: {
+ number: true,
+ min: 0
+ },
+ bidirectionalSize: {
+ number: true
+ },
+ // allows negative
+ bidirectionalSizeMaybePercent: {
+ number: true,
+ allowPercent: true
+ },
+ // allows negative
+ bidirectionalSizes: {
+ number: true,
+ multiple: true
+ },
+ // allows negative
+ sizeMaybePercent: {
+ number: true,
+ min: 0,
+ allowPercent: true
+ },
+ axisDirection: {
+ enums: ["horizontal", "leftward", "rightward", "vertical", "upward", "downward", "auto"]
+ },
+ paddingRelativeTo: {
+ enums: ["width", "height", "average", "min", "max"]
+ },
+ bgWH: {
+ number: true,
+ min: 0,
+ allowPercent: true,
+ enums: ["auto"],
+ multiple: true
+ },
+ bgPos: {
+ number: true,
+ allowPercent: true,
+ multiple: true
+ },
+ bgRelativeTo: {
+ enums: ["inner", "include-padding"],
+ multiple: true
+ },
+ bgRepeat: {
+ enums: ["repeat", "repeat-x", "repeat-y", "no-repeat"],
+ multiple: true
+ },
+ bgFit: {
+ enums: ["none", "contain", "cover"],
+ multiple: true
+ },
+ bgCrossOrigin: {
+ enums: ["anonymous", "use-credentials"],
+ multiple: true
+ },
+ bgClip: {
+ enums: ["none", "node"],
+ multiple: true
+ },
+ bgContainment: {
+ enums: ["inside", "over"],
+ multiple: true
+ },
+ color: {
+ color: true
+ },
+ colors: {
+ color: true,
+ multiple: true
+ },
+ fill: {
+ enums: ["solid", "linear-gradient", "radial-gradient"]
+ },
+ bool: {
+ enums: ["yes", "no"]
+ },
+ bools: {
+ enums: ["yes", "no"],
+ multiple: true
+ },
+ lineStyle: {
+ enums: ["solid", "dotted", "dashed"]
+ },
+ lineCap: {
+ enums: ["butt", "round", "square"]
+ },
+ borderStyle: {
+ enums: ["solid", "dotted", "dashed", "double"]
+ },
+ curveStyle: {
+ enums: ["bezier", "unbundled-bezier", "haystack", "segments", "straight", "straight-triangle", "taxi"]
+ },
+ fontFamily: {
+ regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'
+ },
+ fontStyle: {
+ enums: ["italic", "normal", "oblique"]
+ },
+ fontWeight: {
+ enums: ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "800", "900", 100, 200, 300, 400, 500, 600, 700, 800, 900]
+ },
+ textDecoration: {
+ enums: ["none", "underline", "overline", "line-through"]
+ },
+ textTransform: {
+ enums: ["none", "uppercase", "lowercase"]
+ },
+ textWrap: {
+ enums: ["none", "wrap", "ellipsis"]
+ },
+ textOverflowWrap: {
+ enums: ["whitespace", "anywhere"]
+ },
+ textBackgroundShape: {
+ enums: ["rectangle", "roundrectangle", "round-rectangle"]
+ },
+ nodeShape: {
+ enums: ["rectangle", "roundrectangle", "round-rectangle", "cutrectangle", "cut-rectangle", "bottomroundrectangle", "bottom-round-rectangle", "barrel", "ellipse", "triangle", "round-triangle", "square", "pentagon", "round-pentagon", "hexagon", "round-hexagon", "concavehexagon", "concave-hexagon", "heptagon", "round-heptagon", "octagon", "round-octagon", "tag", "round-tag", "star", "diamond", "round-diamond", "vee", "rhomboid", "polygon"]
+ },
+ overlayShape: {
+ enums: ["roundrectangle", "round-rectangle", "ellipse"]
+ },
+ compoundIncludeLabels: {
+ enums: ["include", "exclude"]
+ },
+ arrowShape: {
+ enums: ["tee", "triangle", "triangle-tee", "circle-triangle", "triangle-cross", "triangle-backcurve", "vee", "square", "circle", "diamond", "chevron", "none"]
+ },
+ arrowFill: {
+ enums: ["filled", "hollow"]
+ },
+ display: {
+ enums: ["element", "none"]
+ },
+ visibility: {
+ enums: ["hidden", "visible"]
+ },
+ zCompoundDepth: {
+ enums: ["bottom", "orphan", "auto", "top"]
+ },
+ zIndexCompare: {
+ enums: ["auto", "manual"]
+ },
+ valign: {
+ enums: ["top", "center", "bottom"]
+ },
+ halign: {
+ enums: ["left", "center", "right"]
+ },
+ justification: {
+ enums: ["left", "center", "right", "auto"]
+ },
+ text: {
+ string: true
+ },
+ data: {
+ mapping: true,
+ regex: data2("data")
+ },
+ layoutData: {
+ mapping: true,
+ regex: data2("layoutData")
+ },
+ scratch: {
+ mapping: true,
+ regex: data2("scratch")
+ },
+ mapData: {
+ mapping: true,
+ regex: mapData("mapData")
+ },
+ mapLayoutData: {
+ mapping: true,
+ regex: mapData("mapLayoutData")
+ },
+ mapScratch: {
+ mapping: true,
+ regex: mapData("mapScratch")
+ },
+ fn: {
+ mapping: true,
+ fn: true
+ },
+ url: {
+ regexes: urlRegexes,
+ singleRegexMatchValue: true
+ },
+ urls: {
+ regexes: urlRegexes,
+ singleRegexMatchValue: true,
+ multiple: true
+ },
+ propList: {
+ propList: true
+ },
+ angle: {
+ number: true,
+ units: "deg|rad",
+ implicitUnits: "rad"
+ },
+ textRotation: {
+ number: true,
+ units: "deg|rad",
+ implicitUnits: "rad",
+ enums: ["none", "autorotate"]
+ },
+ polygonPointList: {
+ number: true,
+ multiple: true,
+ evenMultiple: true,
+ min: -1,
+ max: 1,
+ unitless: true
+ },
+ edgeDistances: {
+ enums: ["intersection", "node-position"]
+ },
+ edgeEndpoint: {
+ number: true,
+ multiple: true,
+ units: "%|px|em|deg|rad",
+ implicitUnits: "px",
+ enums: ["inside-to-node", "outside-to-node", "outside-to-node-or-label", "outside-to-line", "outside-to-line-or-label"],
+ singleEnum: true,
+ validate: function validate(valArr, unitsArr) {
+ switch (valArr.length) {
+ case 2:
+ return unitsArr[0] !== "deg" && unitsArr[0] !== "rad" && unitsArr[1] !== "deg" && unitsArr[1] !== "rad";
+ case 1:
+ return string(valArr[0]) || unitsArr[0] === "deg" || unitsArr[0] === "rad";
+ default:
+ return false;
+ }
+ }
+ },
+ easing: {
+ regexes: ["^(spring)\\s*\\(\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*\\)$", "^(cubic-bezier)\\s*\\(\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*\\)$"],
+ enums: ["linear", "ease", "ease-in", "ease-out", "ease-in-out", "ease-in-sine", "ease-out-sine", "ease-in-out-sine", "ease-in-quad", "ease-out-quad", "ease-in-out-quad", "ease-in-cubic", "ease-out-cubic", "ease-in-out-cubic", "ease-in-quart", "ease-out-quart", "ease-in-out-quart", "ease-in-quint", "ease-out-quint", "ease-in-out-quint", "ease-in-expo", "ease-out-expo", "ease-in-out-expo", "ease-in-circ", "ease-out-circ", "ease-in-out-circ"]
+ },
+ gradientDirection: {
+ enums: [
+ "to-bottom",
+ "to-top",
+ "to-left",
+ "to-right",
+ "to-bottom-right",
+ "to-bottom-left",
+ "to-top-right",
+ "to-top-left",
+ "to-right-bottom",
+ "to-left-bottom",
+ "to-right-top",
+ "to-left-top"
+ // different order
+ ]
+ },
+ boundsExpansion: {
+ number: true,
+ multiple: true,
+ min: 0,
+ validate: function validate(valArr) {
+ var length = valArr.length;
+ return length === 1 || length === 2 || length === 4;
+ }
+ }
+ };
+ var diff = {
+ zeroNonZero: function zeroNonZero(val1, val2) {
+ if ((val1 == null || val2 == null) && val1 !== val2) {
+ return true;
+ }
+ if (val1 == 0 && val2 != 0) {
+ return true;
+ } else if (val1 != 0 && val2 == 0) {
+ return true;
+ } else {
+ return false;
+ }
+ },
+ any: function any(val1, val2) {
+ return val1 != val2;
+ },
+ emptyNonEmpty: function emptyNonEmpty(str1, str2) {
+ var empty1 = emptyString(str1);
+ var empty2 = emptyString(str2);
+ return empty1 && !empty2 || !empty1 && empty2;
+ }
+ };
+ var t = styfn$2.types;
+ var mainLabel = [{
+ name: "label",
+ type: t.text,
+ triggersBounds: diff.any,
+ triggersZOrder: diff.emptyNonEmpty
+ }, {
+ name: "text-rotation",
+ type: t.textRotation,
+ triggersBounds: diff.any
+ }, {
+ name: "text-margin-x",
+ type: t.bidirectionalSize,
+ triggersBounds: diff.any
+ }, {
+ name: "text-margin-y",
+ type: t.bidirectionalSize,
+ triggersBounds: diff.any
+ }];
+ var sourceLabel = [{
+ name: "source-label",
+ type: t.text,
+ triggersBounds: diff.any
+ }, {
+ name: "source-text-rotation",
+ type: t.textRotation,
+ triggersBounds: diff.any
+ }, {
+ name: "source-text-margin-x",
+ type: t.bidirectionalSize,
+ triggersBounds: diff.any
+ }, {
+ name: "source-text-margin-y",
+ type: t.bidirectionalSize,
+ triggersBounds: diff.any
+ }, {
+ name: "source-text-offset",
+ type: t.size,
+ triggersBounds: diff.any
+ }];
+ var targetLabel = [{
+ name: "target-label",
+ type: t.text,
+ triggersBounds: diff.any
+ }, {
+ name: "target-text-rotation",
+ type: t.textRotation,
+ triggersBounds: diff.any
+ }, {
+ name: "target-text-margin-x",
+ type: t.bidirectionalSize,
+ triggersBounds: diff.any
+ }, {
+ name: "target-text-margin-y",
+ type: t.bidirectionalSize,
+ triggersBounds: diff.any
+ }, {
+ name: "target-text-offset",
+ type: t.size,
+ triggersBounds: diff.any
+ }];
+ var labelDimensions = [{
+ name: "font-family",
+ type: t.fontFamily,
+ triggersBounds: diff.any
+ }, {
+ name: "font-style",
+ type: t.fontStyle,
+ triggersBounds: diff.any
+ }, {
+ name: "font-weight",
+ type: t.fontWeight,
+ triggersBounds: diff.any
+ }, {
+ name: "font-size",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "text-transform",
+ type: t.textTransform,
+ triggersBounds: diff.any
+ }, {
+ name: "text-wrap",
+ type: t.textWrap,
+ triggersBounds: diff.any
+ }, {
+ name: "text-overflow-wrap",
+ type: t.textOverflowWrap,
+ triggersBounds: diff.any
+ }, {
+ name: "text-max-width",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "text-outline-width",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "line-height",
+ type: t.positiveNumber,
+ triggersBounds: diff.any
+ }];
+ var commonLabel = [{
+ name: "text-valign",
+ type: t.valign,
+ triggersBounds: diff.any
+ }, {
+ name: "text-halign",
+ type: t.halign,
+ triggersBounds: diff.any
+ }, {
+ name: "color",
+ type: t.color
+ }, {
+ name: "text-outline-color",
+ type: t.color
+ }, {
+ name: "text-outline-opacity",
+ type: t.zeroOneNumber
+ }, {
+ name: "text-background-color",
+ type: t.color
+ }, {
+ name: "text-background-opacity",
+ type: t.zeroOneNumber
+ }, {
+ name: "text-background-padding",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "text-border-opacity",
+ type: t.zeroOneNumber
+ }, {
+ name: "text-border-color",
+ type: t.color
+ }, {
+ name: "text-border-width",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "text-border-style",
+ type: t.borderStyle,
+ triggersBounds: diff.any
+ }, {
+ name: "text-background-shape",
+ type: t.textBackgroundShape,
+ triggersBounds: diff.any
+ }, {
+ name: "text-justification",
+ type: t.justification
+ }];
+ var behavior = [{
+ name: "events",
+ type: t.bool
+ }, {
+ name: "text-events",
+ type: t.bool
+ }];
+ var visibility = [{
+ name: "display",
+ type: t.display,
+ triggersZOrder: diff.any,
+ triggersBounds: diff.any,
+ triggersBoundsOfParallelBeziers: true
+ }, {
+ name: "visibility",
+ type: t.visibility,
+ triggersZOrder: diff.any
+ }, {
+ name: "opacity",
+ type: t.zeroOneNumber,
+ triggersZOrder: diff.zeroNonZero
+ }, {
+ name: "text-opacity",
+ type: t.zeroOneNumber
+ }, {
+ name: "min-zoomed-font-size",
+ type: t.size
+ }, {
+ name: "z-compound-depth",
+ type: t.zCompoundDepth,
+ triggersZOrder: diff.any
+ }, {
+ name: "z-index-compare",
+ type: t.zIndexCompare,
+ triggersZOrder: diff.any
+ }, {
+ name: "z-index",
+ type: t.nonNegativeInt,
+ triggersZOrder: diff.any
+ }];
+ var overlay = [{
+ name: "overlay-padding",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "overlay-color",
+ type: t.color
+ }, {
+ name: "overlay-opacity",
+ type: t.zeroOneNumber,
+ triggersBounds: diff.zeroNonZero
+ }, {
+ name: "overlay-shape",
+ type: t.overlayShape,
+ triggersBounds: diff.any
+ }];
+ var underlay = [{
+ name: "underlay-padding",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "underlay-color",
+ type: t.color
+ }, {
+ name: "underlay-opacity",
+ type: t.zeroOneNumber,
+ triggersBounds: diff.zeroNonZero
+ }, {
+ name: "underlay-shape",
+ type: t.overlayShape,
+ triggersBounds: diff.any
+ }];
+ var transition = [{
+ name: "transition-property",
+ type: t.propList
+ }, {
+ name: "transition-duration",
+ type: t.time
+ }, {
+ name: "transition-delay",
+ type: t.time
+ }, {
+ name: "transition-timing-function",
+ type: t.easing
+ }];
+ var nodeSizeHashOverride = function nodeSizeHashOverride2(ele, parsedProp) {
+ if (parsedProp.value === "label") {
+ return -ele.poolIndex();
+ } else {
+ return parsedProp.pfValue;
+ }
+ };
+ var nodeBody = [{
+ name: "height",
+ type: t.nodeSize,
+ triggersBounds: diff.any,
+ hashOverride: nodeSizeHashOverride
+ }, {
+ name: "width",
+ type: t.nodeSize,
+ triggersBounds: diff.any,
+ hashOverride: nodeSizeHashOverride
+ }, {
+ name: "shape",
+ type: t.nodeShape,
+ triggersBounds: diff.any
+ }, {
+ name: "shape-polygon-points",
+ type: t.polygonPointList,
+ triggersBounds: diff.any
+ }, {
+ name: "background-color",
+ type: t.color
+ }, {
+ name: "background-fill",
+ type: t.fill
+ }, {
+ name: "background-opacity",
+ type: t.zeroOneNumber
+ }, {
+ name: "background-blacken",
+ type: t.nOneOneNumber
+ }, {
+ name: "background-gradient-stop-colors",
+ type: t.colors
+ }, {
+ name: "background-gradient-stop-positions",
+ type: t.percentages
+ }, {
+ name: "background-gradient-direction",
+ type: t.gradientDirection
+ }, {
+ name: "padding",
+ type: t.sizeMaybePercent,
+ triggersBounds: diff.any
+ }, {
+ name: "padding-relative-to",
+ type: t.paddingRelativeTo,
+ triggersBounds: diff.any
+ }, {
+ name: "bounds-expansion",
+ type: t.boundsExpansion,
+ triggersBounds: diff.any
+ }];
+ var nodeBorder = [{
+ name: "border-color",
+ type: t.color
+ }, {
+ name: "border-opacity",
+ type: t.zeroOneNumber
+ }, {
+ name: "border-width",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "border-style",
+ type: t.borderStyle
+ }];
+ var backgroundImage = [{
+ name: "background-image",
+ type: t.urls
+ }, {
+ name: "background-image-crossorigin",
+ type: t.bgCrossOrigin
+ }, {
+ name: "background-image-opacity",
+ type: t.zeroOneNumbers
+ }, {
+ name: "background-image-containment",
+ type: t.bgContainment
+ }, {
+ name: "background-image-smoothing",
+ type: t.bools
+ }, {
+ name: "background-position-x",
+ type: t.bgPos
+ }, {
+ name: "background-position-y",
+ type: t.bgPos
+ }, {
+ name: "background-width-relative-to",
+ type: t.bgRelativeTo
+ }, {
+ name: "background-height-relative-to",
+ type: t.bgRelativeTo
+ }, {
+ name: "background-repeat",
+ type: t.bgRepeat
+ }, {
+ name: "background-fit",
+ type: t.bgFit
+ }, {
+ name: "background-clip",
+ type: t.bgClip
+ }, {
+ name: "background-width",
+ type: t.bgWH
+ }, {
+ name: "background-height",
+ type: t.bgWH
+ }, {
+ name: "background-offset-x",
+ type: t.bgPos
+ }, {
+ name: "background-offset-y",
+ type: t.bgPos
+ }];
+ var compound = [{
+ name: "position",
+ type: t.position,
+ triggersBounds: diff.any
+ }, {
+ name: "compound-sizing-wrt-labels",
+ type: t.compoundIncludeLabels,
+ triggersBounds: diff.any
+ }, {
+ name: "min-width",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "min-width-bias-left",
+ type: t.sizeMaybePercent,
+ triggersBounds: diff.any
+ }, {
+ name: "min-width-bias-right",
+ type: t.sizeMaybePercent,
+ triggersBounds: diff.any
+ }, {
+ name: "min-height",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "min-height-bias-top",
+ type: t.sizeMaybePercent,
+ triggersBounds: diff.any
+ }, {
+ name: "min-height-bias-bottom",
+ type: t.sizeMaybePercent,
+ triggersBounds: diff.any
+ }];
+ var edgeLine = [{
+ name: "line-style",
+ type: t.lineStyle
+ }, {
+ name: "line-color",
+ type: t.color
+ }, {
+ name: "line-fill",
+ type: t.fill
+ }, {
+ name: "line-cap",
+ type: t.lineCap
+ }, {
+ name: "line-opacity",
+ type: t.zeroOneNumber
+ }, {
+ name: "line-dash-pattern",
+ type: t.numbers
+ }, {
+ name: "line-dash-offset",
+ type: t.number
+ }, {
+ name: "line-gradient-stop-colors",
+ type: t.colors
+ }, {
+ name: "line-gradient-stop-positions",
+ type: t.percentages
+ }, {
+ name: "curve-style",
+ type: t.curveStyle,
+ triggersBounds: diff.any,
+ triggersBoundsOfParallelBeziers: true
+ }, {
+ name: "haystack-radius",
+ type: t.zeroOneNumber,
+ triggersBounds: diff.any
+ }, {
+ name: "source-endpoint",
+ type: t.edgeEndpoint,
+ triggersBounds: diff.any
+ }, {
+ name: "target-endpoint",
+ type: t.edgeEndpoint,
+ triggersBounds: diff.any
+ }, {
+ name: "control-point-step-size",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "control-point-distances",
+ type: t.bidirectionalSizes,
+ triggersBounds: diff.any
+ }, {
+ name: "control-point-weights",
+ type: t.numbers,
+ triggersBounds: diff.any
+ }, {
+ name: "segment-distances",
+ type: t.bidirectionalSizes,
+ triggersBounds: diff.any
+ }, {
+ name: "segment-weights",
+ type: t.numbers,
+ triggersBounds: diff.any
+ }, {
+ name: "taxi-turn",
+ type: t.bidirectionalSizeMaybePercent,
+ triggersBounds: diff.any
+ }, {
+ name: "taxi-turn-min-distance",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "taxi-direction",
+ type: t.axisDirection,
+ triggersBounds: diff.any
+ }, {
+ name: "edge-distances",
+ type: t.edgeDistances,
+ triggersBounds: diff.any
+ }, {
+ name: "arrow-scale",
+ type: t.positiveNumber,
+ triggersBounds: diff.any
+ }, {
+ name: "loop-direction",
+ type: t.angle,
+ triggersBounds: diff.any
+ }, {
+ name: "loop-sweep",
+ type: t.angle,
+ triggersBounds: diff.any
+ }, {
+ name: "source-distance-from-node",
+ type: t.size,
+ triggersBounds: diff.any
+ }, {
+ name: "target-distance-from-node",
+ type: t.size,
+ triggersBounds: diff.any
+ }];
+ var ghost = [{
+ name: "ghost",
+ type: t.bool,
+ triggersBounds: diff.any
+ }, {
+ name: "ghost-offset-x",
+ type: t.bidirectionalSize,
+ triggersBounds: diff.any
+ }, {
+ name: "ghost-offset-y",
+ type: t.bidirectionalSize,
+ triggersBounds: diff.any
+ }, {
+ name: "ghost-opacity",
+ type: t.zeroOneNumber
+ }];
+ var core2 = [{
+ name: "selection-box-color",
+ type: t.color
+ }, {
+ name: "selection-box-opacity",
+ type: t.zeroOneNumber
+ }, {
+ name: "selection-box-border-color",
+ type: t.color
+ }, {
+ name: "selection-box-border-width",
+ type: t.size
+ }, {
+ name: "active-bg-color",
+ type: t.color
+ }, {
+ name: "active-bg-opacity",
+ type: t.zeroOneNumber
+ }, {
+ name: "active-bg-size",
+ type: t.size
+ }, {
+ name: "outside-texture-bg-color",
+ type: t.color
+ }, {
+ name: "outside-texture-bg-opacity",
+ type: t.zeroOneNumber
+ }];
+ var pie = [];
+ styfn$2.pieBackgroundN = 16;
+ pie.push({
+ name: "pie-size",
+ type: t.sizeMaybePercent
+ });
+ for (var i2 = 1; i2 <= styfn$2.pieBackgroundN; i2++) {
+ pie.push({
+ name: "pie-" + i2 + "-background-color",
+ type: t.color
+ });
+ pie.push({
+ name: "pie-" + i2 + "-background-size",
+ type: t.percent
+ });
+ pie.push({
+ name: "pie-" + i2 + "-background-opacity",
+ type: t.zeroOneNumber
+ });
+ }
+ var edgeArrow = [];
+ var arrowPrefixes = styfn$2.arrowPrefixes = ["source", "mid-source", "target", "mid-target"];
+ [{
+ name: "arrow-shape",
+ type: t.arrowShape,
+ triggersBounds: diff.any
+ }, {
+ name: "arrow-color",
+ type: t.color
+ }, {
+ name: "arrow-fill",
+ type: t.arrowFill
+ }].forEach(function(prop2) {
+ arrowPrefixes.forEach(function(prefix) {
+ var name2 = prefix + "-" + prop2.name;
+ var type = prop2.type, triggersBounds = prop2.triggersBounds;
+ edgeArrow.push({
+ name: name2,
+ type,
+ triggersBounds
+ });
+ });
+ }, {});
+ var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, backgroundImage, pie, compound, edgeLine, edgeArrow, core2);
+ var propGroups = styfn$2.propertyGroups = {
+ // common to all eles
+ behavior,
+ transition,
+ visibility,
+ overlay,
+ underlay,
+ ghost,
+ // labels
+ commonLabel,
+ labelDimensions,
+ mainLabel,
+ sourceLabel,
+ targetLabel,
+ // node props
+ nodeBody,
+ nodeBorder,
+ backgroundImage,
+ pie,
+ compound,
+ // edge props
+ edgeLine,
+ edgeArrow,
+ core: core2
+ };
+ var propGroupNames = styfn$2.propertyGroupNames = {};
+ var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups);
+ propGroupKeys.forEach(function(key) {
+ propGroupNames[key] = propGroups[key].map(function(prop2) {
+ return prop2.name;
+ });
+ propGroups[key].forEach(function(prop2) {
+ return prop2.groupKey = key;
+ });
+ });
+ var aliases = styfn$2.aliases = [{
+ name: "content",
+ pointsTo: "label"
+ }, {
+ name: "control-point-distance",
+ pointsTo: "control-point-distances"
+ }, {
+ name: "control-point-weight",
+ pointsTo: "control-point-weights"
+ }, {
+ name: "edge-text-rotation",
+ pointsTo: "text-rotation"
+ }, {
+ name: "padding-left",
+ pointsTo: "padding"
+ }, {
+ name: "padding-right",
+ pointsTo: "padding"
+ }, {
+ name: "padding-top",
+ pointsTo: "padding"
+ }, {
+ name: "padding-bottom",
+ pointsTo: "padding"
+ }];
+ styfn$2.propertyNames = props.map(function(p2) {
+ return p2.name;
+ });
+ for (var _i = 0; _i < props.length; _i++) {
+ var prop = props[_i];
+ props[prop.name] = prop;
+ }
+ for (var _i2 = 0; _i2 < aliases.length; _i2++) {
+ var alias = aliases[_i2];
+ var pointsToProp = props[alias.pointsTo];
+ var aliasProp = {
+ name: alias.name,
+ alias: true,
+ pointsTo: pointsToProp
+ };
+ props.push(aliasProp);
+ props[alias.name] = aliasProp;
+ }
+ })();
+ styfn$2.getDefaultProperty = function(name2) {
+ return this.getDefaultProperties()[name2];
+ };
+ styfn$2.getDefaultProperties = function() {
+ var _p = this._private;
+ if (_p.defaultProperties != null) {
+ return _p.defaultProperties;
+ }
+ var rawProps = extend({
+ // core props
+ "selection-box-color": "#ddd",
+ "selection-box-opacity": 0.65,
+ "selection-box-border-color": "#aaa",
+ "selection-box-border-width": 1,
+ "active-bg-color": "black",
+ "active-bg-opacity": 0.15,
+ "active-bg-size": 30,
+ "outside-texture-bg-color": "#000",
+ "outside-texture-bg-opacity": 0.125,
+ // common node/edge props
+ "events": "yes",
+ "text-events": "no",
+ "text-valign": "top",
+ "text-halign": "center",
+ "text-justification": "auto",
+ "line-height": 1,
+ "color": "#000",
+ "text-outline-color": "#000",
+ "text-outline-width": 0,
+ "text-outline-opacity": 1,
+ "text-opacity": 1,
+ "text-decoration": "none",
+ "text-transform": "none",
+ "text-wrap": "none",
+ "text-overflow-wrap": "whitespace",
+ "text-max-width": 9999,
+ "text-background-color": "#000",
+ "text-background-opacity": 0,
+ "text-background-shape": "rectangle",
+ "text-background-padding": 0,
+ "text-border-opacity": 0,
+ "text-border-width": 0,
+ "text-border-style": "solid",
+ "text-border-color": "#000",
+ "font-family": "Helvetica Neue, Helvetica, sans-serif",
+ "font-style": "normal",
+ "font-weight": "normal",
+ "font-size": 16,
+ "min-zoomed-font-size": 0,
+ "text-rotation": "none",
+ "source-text-rotation": "none",
+ "target-text-rotation": "none",
+ "visibility": "visible",
+ "display": "element",
+ "opacity": 1,
+ "z-compound-depth": "auto",
+ "z-index-compare": "auto",
+ "z-index": 0,
+ "label": "",
+ "text-margin-x": 0,
+ "text-margin-y": 0,
+ "source-label": "",
+ "source-text-offset": 0,
+ "source-text-margin-x": 0,
+ "source-text-margin-y": 0,
+ "target-label": "",
+ "target-text-offset": 0,
+ "target-text-margin-x": 0,
+ "target-text-margin-y": 0,
+ "overlay-opacity": 0,
+ "overlay-color": "#000",
+ "overlay-padding": 10,
+ "overlay-shape": "round-rectangle",
+ "underlay-opacity": 0,
+ "underlay-color": "#000",
+ "underlay-padding": 10,
+ "underlay-shape": "round-rectangle",
+ "transition-property": "none",
+ "transition-duration": 0,
+ "transition-delay": 0,
+ "transition-timing-function": "linear",
+ // node props
+ "background-blacken": 0,
+ "background-color": "#999",
+ "background-fill": "solid",
+ "background-opacity": 1,
+ "background-image": "none",
+ "background-image-crossorigin": "anonymous",
+ "background-image-opacity": 1,
+ "background-image-containment": "inside",
+ "background-image-smoothing": "yes",
+ "background-position-x": "50%",
+ "background-position-y": "50%",
+ "background-offset-x": 0,
+ "background-offset-y": 0,
+ "background-width-relative-to": "include-padding",
+ "background-height-relative-to": "include-padding",
+ "background-repeat": "no-repeat",
+ "background-fit": "none",
+ "background-clip": "node",
+ "background-width": "auto",
+ "background-height": "auto",
+ "border-color": "#000",
+ "border-opacity": 1,
+ "border-width": 0,
+ "border-style": "solid",
+ "height": 30,
+ "width": 30,
+ "shape": "ellipse",
+ "shape-polygon-points": "-1, -1, 1, -1, 1, 1, -1, 1",
+ "bounds-expansion": 0,
+ // node gradient
+ "background-gradient-direction": "to-bottom",
+ "background-gradient-stop-colors": "#999",
+ "background-gradient-stop-positions": "0%",
+ // ghost props
+ "ghost": "no",
+ "ghost-offset-y": 0,
+ "ghost-offset-x": 0,
+ "ghost-opacity": 0,
+ // compound props
+ "padding": 0,
+ "padding-relative-to": "width",
+ "position": "origin",
+ "compound-sizing-wrt-labels": "include",
+ "min-width": 0,
+ "min-width-bias-left": 0,
+ "min-width-bias-right": 0,
+ "min-height": 0,
+ "min-height-bias-top": 0,
+ "min-height-bias-bottom": 0
+ }, {
+ // node pie bg
+ "pie-size": "100%"
+ }, [{
+ name: "pie-{{i}}-background-color",
+ value: "black"
+ }, {
+ name: "pie-{{i}}-background-size",
+ value: "0%"
+ }, {
+ name: "pie-{{i}}-background-opacity",
+ value: 1
+ }].reduce(function(css, prop2) {
+ for (var i3 = 1; i3 <= styfn$2.pieBackgroundN; i3++) {
+ var name3 = prop2.name.replace("{{i}}", i3);
+ var val2 = prop2.value;
+ css[name3] = val2;
+ }
+ return css;
+ }, {}), {
+ // edge props
+ "line-style": "solid",
+ "line-color": "#999",
+ "line-fill": "solid",
+ "line-cap": "butt",
+ "line-opacity": 1,
+ "line-gradient-stop-colors": "#999",
+ "line-gradient-stop-positions": "0%",
+ "control-point-step-size": 40,
+ "control-point-weights": 0.5,
+ "segment-weights": 0.5,
+ "segment-distances": 20,
+ "taxi-turn": "50%",
+ "taxi-turn-min-distance": 10,
+ "taxi-direction": "auto",
+ "edge-distances": "intersection",
+ "curve-style": "haystack",
+ "haystack-radius": 0,
+ "arrow-scale": 1,
+ "loop-direction": "-45deg",
+ "loop-sweep": "-90deg",
+ "source-distance-from-node": 0,
+ "target-distance-from-node": 0,
+ "source-endpoint": "outside-to-node",
+ "target-endpoint": "outside-to-node",
+ "line-dash-pattern": [6, 3],
+ "line-dash-offset": 0
+ }, [{
+ name: "arrow-shape",
+ value: "none"
+ }, {
+ name: "arrow-color",
+ value: "#999"
+ }, {
+ name: "arrow-fill",
+ value: "filled"
+ }].reduce(function(css, prop2) {
+ styfn$2.arrowPrefixes.forEach(function(prefix) {
+ var name3 = prefix + "-" + prop2.name;
+ var val2 = prop2.value;
+ css[name3] = val2;
+ });
+ return css;
+ }, {}));
+ var parsedProps = {};
+ for (var i2 = 0; i2 < this.properties.length; i2++) {
+ var prop = this.properties[i2];
+ if (prop.pointsTo) {
+ continue;
+ }
+ var name2 = prop.name;
+ var val = rawProps[name2];
+ var parsedProp = this.parse(name2, val);
+ parsedProps[name2] = parsedProp;
+ }
+ _p.defaultProperties = parsedProps;
+ return _p.defaultProperties;
+ };
+ styfn$2.addDefaultStylesheet = function() {
+ this.selector(":parent").css({
+ "shape": "rectangle",
+ "padding": 10,
+ "background-color": "#eee",
+ "border-color": "#ccc",
+ "border-width": 1
+ }).selector("edge").css({
+ "width": 3
+ }).selector(":loop").css({
+ "curve-style": "bezier"
+ }).selector("edge:compound").css({
+ "curve-style": "bezier",
+ "source-endpoint": "outside-to-line",
+ "target-endpoint": "outside-to-line"
+ }).selector(":selected").css({
+ "background-color": "#0169D9",
+ "line-color": "#0169D9",
+ "source-arrow-color": "#0169D9",
+ "target-arrow-color": "#0169D9",
+ "mid-source-arrow-color": "#0169D9",
+ "mid-target-arrow-color": "#0169D9"
+ }).selector(":parent:selected").css({
+ "background-color": "#CCE1F9",
+ "border-color": "#aec8e5"
+ }).selector(":active").css({
+ "overlay-color": "black",
+ "overlay-padding": 10,
+ "overlay-opacity": 0.25
+ });
+ this.defaultLength = this.length;
+ };
+ var styfn$1 = {};
+ styfn$1.parse = function(name2, value, propIsBypass, propIsFlat) {
+ var self2 = this;
+ if (fn$6(value)) {
+ return self2.parseImplWarn(name2, value, propIsBypass, propIsFlat);
+ }
+ var flatKey = propIsFlat === "mapping" || propIsFlat === true || propIsFlat === false || propIsFlat == null ? "dontcare" : propIsFlat;
+ var bypassKey = propIsBypass ? "t" : "f";
+ var valueKey = "" + value;
+ var argHash = hashStrings(name2, valueKey, bypassKey, flatKey);
+ var propCache = self2.propCache = self2.propCache || [];
+ var ret;
+ if (!(ret = propCache[argHash])) {
+ ret = propCache[argHash] = self2.parseImplWarn(name2, value, propIsBypass, propIsFlat);
+ }
+ if (propIsBypass || propIsFlat === "mapping") {
+ ret = copy(ret);
+ if (ret) {
+ ret.value = copy(ret.value);
+ }
+ }
+ return ret;
+ };
+ styfn$1.parseImplWarn = function(name2, value, propIsBypass, propIsFlat) {
+ var prop = this.parseImpl(name2, value, propIsBypass, propIsFlat);
+ if (!prop && value != null) {
+ warn("The style property `".concat(name2, ": ").concat(value, "` is invalid"));
+ }
+ if (prop && (prop.name === "width" || prop.name === "height") && value === "label") {
+ warn("The style value of `label` is deprecated for `" + prop.name + "`");
+ }
+ return prop;
+ };
+ styfn$1.parseImpl = function(name2, value, propIsBypass, propIsFlat) {
+ var self2 = this;
+ name2 = camel2dash(name2);
+ var property = self2.properties[name2];
+ var passedValue = value;
+ var types = self2.types;
+ if (!property) {
+ return null;
+ }
+ if (value === void 0) {
+ return null;
+ }
+ if (property.alias) {
+ property = property.pointsTo;
+ name2 = property.name;
+ }
+ var valueIsString = string(value);
+ if (valueIsString) {
+ value = value.trim();
+ }
+ var type = property.type;
+ if (!type) {
+ return null;
+ }
+ if (propIsBypass && (value === "" || value === null)) {
+ return {
+ name: name2,
+ value,
+ bypass: true,
+ deleteBypass: true
+ };
+ }
+ if (fn$6(value)) {
+ return {
+ name: name2,
+ value,
+ strValue: "fn",
+ mapped: types.fn,
+ bypass: propIsBypass
+ };
+ }
+ var data2, mapData;
+ if (!valueIsString || propIsFlat || value.length < 7 || value[1] !== "a")
+ ;
+ else if (value.length >= 7 && value[0] === "d" && (data2 = new RegExp(types.data.regex).exec(value))) {
+ if (propIsBypass) {
+ return false;
+ }
+ var mapped = types.data;
+ return {
+ name: name2,
+ value: data2,
+ strValue: "" + value,
+ mapped,
+ field: data2[1],
+ bypass: propIsBypass
+ };
+ } else if (value.length >= 10 && value[0] === "m" && (mapData = new RegExp(types.mapData.regex).exec(value))) {
+ if (propIsBypass) {
+ return false;
+ }
+ if (type.multiple) {
+ return false;
+ }
+ var _mapped = types.mapData;
+ if (!(type.color || type.number)) {
+ return false;
+ }
+ var valueMin = this.parse(name2, mapData[4]);
+ if (!valueMin || valueMin.mapped) {
+ return false;
+ }
+ var valueMax = this.parse(name2, mapData[5]);
+ if (!valueMax || valueMax.mapped) {
+ return false;
+ }
+ if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) {
+ warn("`" + name2 + ": " + value + "` is not a valid mapper because the output range is zero; converting to `" + name2 + ": " + valueMin.strValue + "`");
+ return this.parse(name2, valueMin.strValue);
+ } else if (type.color) {
+ var c1 = valueMin.value;
+ var c2 = valueMax.value;
+ var same = c1[0] === c2[0] && c1[1] === c2[1] && c1[2] === c2[2] && // optional alpha
+ (c1[3] === c2[3] || (c1[3] == null || c1[3] === 1) && (c2[3] == null || c2[3] === 1));
+ if (same) {
+ return false;
+ }
+ }
+ return {
+ name: name2,
+ value: mapData,
+ strValue: "" + value,
+ mapped: _mapped,
+ field: mapData[1],
+ fieldMin: parseFloat(mapData[2]),
+ // min & max are numeric
+ fieldMax: parseFloat(mapData[3]),
+ valueMin: valueMin.value,
+ valueMax: valueMax.value,
+ bypass: propIsBypass
+ };
+ }
+ if (type.multiple && propIsFlat !== "multiple") {
+ var vals;
+ if (valueIsString) {
+ vals = value.split(/\s+/);
+ } else if (array(value)) {
+ vals = value;
+ } else {
+ vals = [value];
+ }
+ if (type.evenMultiple && vals.length % 2 !== 0) {
+ return null;
+ }
+ var valArr = [];
+ var unitsArr = [];
+ var pfValArr = [];
+ var strVal = "";
+ var hasEnum = false;
+ for (var i2 = 0; i2 < vals.length; i2++) {
+ var p2 = self2.parse(name2, vals[i2], propIsBypass, "multiple");
+ hasEnum = hasEnum || string(p2.value);
+ valArr.push(p2.value);
+ pfValArr.push(p2.pfValue != null ? p2.pfValue : p2.value);
+ unitsArr.push(p2.units);
+ strVal += (i2 > 0 ? " " : "") + p2.strValue;
+ }
+ if (type.validate && !type.validate(valArr, unitsArr)) {
+ return null;
+ }
+ if (type.singleEnum && hasEnum) {
+ if (valArr.length === 1 && string(valArr[0])) {
+ return {
+ name: name2,
+ value: valArr[0],
+ strValue: valArr[0],
+ bypass: propIsBypass
+ };
+ } else {
+ return null;
+ }
+ }
+ return {
+ name: name2,
+ value: valArr,
+ pfValue: pfValArr,
+ strValue: strVal,
+ bypass: propIsBypass,
+ units: unitsArr
+ };
+ }
+ var checkEnums = function checkEnums2() {
+ for (var _i = 0; _i < type.enums.length; _i++) {
+ var en = type.enums[_i];
+ if (en === value) {
+ return {
+ name: name2,
+ value,
+ strValue: "" + value,
+ bypass: propIsBypass
+ };
+ }
+ }
+ return null;
+ };
+ if (type.number) {
+ var units;
+ var implicitUnits = "px";
+ if (type.units) {
+ units = type.units;
+ }
+ if (type.implicitUnits) {
+ implicitUnits = type.implicitUnits;
+ }
+ if (!type.unitless) {
+ if (valueIsString) {
+ var unitsRegex = "px|em" + (type.allowPercent ? "|\\%" : "");
+ if (units) {
+ unitsRegex = units;
+ }
+ var match2 = value.match("^(" + number + ")(" + unitsRegex + ")?$");
+ if (match2) {
+ value = match2[1];
+ units = match2[2] || implicitUnits;
+ }
+ } else if (!units || type.implicitUnits) {
+ units = implicitUnits;
+ }
+ }
+ value = parseFloat(value);
+ if (isNaN(value) && type.enums === void 0) {
+ return null;
+ }
+ if (isNaN(value) && type.enums !== void 0) {
+ value = passedValue;
+ return checkEnums();
+ }
+ if (type.integer && !integer(value)) {
+ return null;
+ }
+ if (type.min !== void 0 && (value < type.min || type.strictMin && value === type.min) || type.max !== void 0 && (value > type.max || type.strictMax && value === type.max)) {
+ return null;
+ }
+ var ret = {
+ name: name2,
+ value,
+ strValue: "" + value + (units ? units : ""),
+ units,
+ bypass: propIsBypass
+ };
+ if (type.unitless || units !== "px" && units !== "em") {
+ ret.pfValue = value;
+ } else {
+ ret.pfValue = units === "px" || !units ? value : this.getEmSizeInPixels() * value;
+ }
+ if (units === "ms" || units === "s") {
+ ret.pfValue = units === "ms" ? value : 1e3 * value;
+ }
+ if (units === "deg" || units === "rad") {
+ ret.pfValue = units === "rad" ? value : deg2rad(value);
+ }
+ if (units === "%") {
+ ret.pfValue = value / 100;
+ }
+ return ret;
+ } else if (type.propList) {
+ var props = [];
+ var propsStr = "" + value;
+ if (propsStr === "none")
+ ;
+ else {
+ var propsSplit = propsStr.split(/\s*,\s*|\s+/);
+ for (var _i2 = 0; _i2 < propsSplit.length; _i2++) {
+ var propName = propsSplit[_i2].trim();
+ if (self2.properties[propName]) {
+ props.push(propName);
+ } else {
+ warn("`" + propName + "` is not a valid property name");
+ }
+ }
+ if (props.length === 0) {
+ return null;
+ }
+ }
+ return {
+ name: name2,
+ value: props,
+ strValue: props.length === 0 ? "none" : props.join(" "),
+ bypass: propIsBypass
+ };
+ } else if (type.color) {
+ var tuple = color2tuple(value);
+ if (!tuple) {
+ return null;
+ }
+ return {
+ name: name2,
+ value: tuple,
+ pfValue: tuple,
+ strValue: "rgb(" + tuple[0] + "," + tuple[1] + "," + tuple[2] + ")",
+ // n.b. no spaces b/c of multiple support
+ bypass: propIsBypass
+ };
+ } else if (type.regex || type.regexes) {
+ if (type.enums) {
+ var enumProp = checkEnums();
+ if (enumProp) {
+ return enumProp;
+ }
+ }
+ var regexes = type.regexes ? type.regexes : [type.regex];
+ for (var _i3 = 0; _i3 < regexes.length; _i3++) {
+ var regex = new RegExp(regexes[_i3]);
+ var m = regex.exec(value);
+ if (m) {
+ return {
+ name: name2,
+ value: type.singleRegexMatchValue ? m[1] : m,
+ strValue: "" + value,
+ bypass: propIsBypass
+ };
+ }
+ }
+ return null;
+ } else if (type.string) {
+ return {
+ name: name2,
+ value: "" + value,
+ strValue: "" + value,
+ bypass: propIsBypass
+ };
+ } else if (type.enums) {
+ return checkEnums();
+ } else {
+ return null;
+ }
+ };
+ var Style = function Style2(cy) {
+ if (!(this instanceof Style2)) {
+ return new Style2(cy);
+ }
+ if (!core(cy)) {
+ error("A style must have a core reference");
+ return;
+ }
+ this._private = {
+ cy,
+ coreStyle: {}
+ };
+ this.length = 0;
+ this.resetToDefault();
+ };
+ var styfn = Style.prototype;
+ styfn.instanceString = function() {
+ return "style";
+ };
+ styfn.clear = function() {
+ var _p = this._private;
+ var cy = _p.cy;
+ var eles = cy.elements();
+ for (var i2 = 0; i2 < this.length; i2++) {
+ this[i2] = void 0;
+ }
+ this.length = 0;
+ _p.contextStyles = {};
+ _p.propDiffs = {};
+ this.cleanElements(eles, true);
+ eles.forEach(function(ele) {
+ var ele_p = ele[0]._private;
+ ele_p.styleDirty = true;
+ ele_p.appliedInitStyle = false;
+ });
+ return this;
+ };
+ styfn.resetToDefault = function() {
+ this.clear();
+ this.addDefaultStylesheet();
+ return this;
+ };
+ styfn.core = function(propName) {
+ return this._private.coreStyle[propName] || this.getDefaultProperty(propName);
+ };
+ styfn.selector = function(selectorStr) {
+ var selector = selectorStr === "core" ? null : new Selector(selectorStr);
+ var i2 = this.length++;
+ this[i2] = {
+ selector,
+ properties: [],
+ mappedProperties: [],
+ index: i2
+ };
+ return this;
+ };
+ styfn.css = function() {
+ var self2 = this;
+ var args = arguments;
+ if (args.length === 1) {
+ var map = args[0];
+ for (var i2 = 0; i2 < self2.properties.length; i2++) {
+ var prop = self2.properties[i2];
+ var mapVal = map[prop.name];
+ if (mapVal === void 0) {
+ mapVal = map[dash2camel(prop.name)];
+ }
+ if (mapVal !== void 0) {
+ this.cssRule(prop.name, mapVal);
+ }
+ }
+ } else if (args.length === 2) {
+ this.cssRule(args[0], args[1]);
+ }
+ return this;
+ };
+ styfn.style = styfn.css;
+ styfn.cssRule = function(name2, value) {
+ var property = this.parse(name2, value);
+ if (property) {
+ var i2 = this.length - 1;
+ this[i2].properties.push(property);
+ this[i2].properties[property.name] = property;
+ if (property.name.match(/pie-(\d+)-background-size/) && property.value) {
+ this._private.hasPie = true;
+ }
+ if (property.mapped) {
+ this[i2].mappedProperties.push(property);
+ }
+ var currentSelectorIsCore = !this[i2].selector;
+ if (currentSelectorIsCore) {
+ this._private.coreStyle[property.name] = property;
+ }
+ }
+ return this;
+ };
+ styfn.append = function(style) {
+ if (stylesheet(style)) {
+ style.appendToStyle(this);
+ } else if (array(style)) {
+ this.appendFromJson(style);
+ } else if (string(style)) {
+ this.appendFromString(style);
+ }
+ return this;
+ };
+ Style.fromJson = function(cy, json) {
+ var style = new Style(cy);
+ style.fromJson(json);
+ return style;
+ };
+ Style.fromString = function(cy, string2) {
+ return new Style(cy).fromString(string2);
+ };
+ [styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function(props) {
+ extend(styfn, props);
+ });
+ Style.types = styfn.types;
+ Style.properties = styfn.properties;
+ Style.propertyGroups = styfn.propertyGroups;
+ Style.propertyGroupNames = styfn.propertyGroupNames;
+ Style.propertyGroupKeys = styfn.propertyGroupKeys;
+ var corefn$2 = {
+ style: function style(newStyle) {
+ if (newStyle) {
+ var s = this.setStyle(newStyle);
+ s.update();
+ }
+ return this._private.style;
+ },
+ setStyle: function setStyle(style) {
+ var _p = this._private;
+ if (stylesheet(style)) {
+ _p.style = style.generateStyle(this);
+ } else if (array(style)) {
+ _p.style = Style.fromJson(this, style);
+ } else if (string(style)) {
+ _p.style = Style.fromString(this, style);
+ } else {
+ _p.style = Style(this);
+ }
+ return _p.style;
+ },
+ // e.g. cy.data() changed => recalc ele mappers
+ updateStyle: function updateStyle() {
+ this.mutableElements().updateStyle();
+ }
+ };
+ var defaultSelectionType = "single";
+ var corefn$1 = {
+ autolock: function autolock(bool) {
+ if (bool !== void 0) {
+ this._private.autolock = bool ? true : false;
+ } else {
+ return this._private.autolock;
+ }
+ return this;
+ },
+ autoungrabify: function autoungrabify(bool) {
+ if (bool !== void 0) {
+ this._private.autoungrabify = bool ? true : false;
+ } else {
+ return this._private.autoungrabify;
+ }
+ return this;
+ },
+ autounselectify: function autounselectify(bool) {
+ if (bool !== void 0) {
+ this._private.autounselectify = bool ? true : false;
+ } else {
+ return this._private.autounselectify;
+ }
+ return this;
+ },
+ selectionType: function selectionType(selType) {
+ var _p = this._private;
+ if (_p.selectionType == null) {
+ _p.selectionType = defaultSelectionType;
+ }
+ if (selType !== void 0) {
+ if (selType === "additive" || selType === "single") {
+ _p.selectionType = selType;
+ }
+ } else {
+ return _p.selectionType;
+ }
+ return this;
+ },
+ panningEnabled: function panningEnabled(bool) {
+ if (bool !== void 0) {
+ this._private.panningEnabled = bool ? true : false;
+ } else {
+ return this._private.panningEnabled;
+ }
+ return this;
+ },
+ userPanningEnabled: function userPanningEnabled(bool) {
+ if (bool !== void 0) {
+ this._private.userPanningEnabled = bool ? true : false;
+ } else {
+ return this._private.userPanningEnabled;
+ }
+ return this;
+ },
+ zoomingEnabled: function zoomingEnabled(bool) {
+ if (bool !== void 0) {
+ this._private.zoomingEnabled = bool ? true : false;
+ } else {
+ return this._private.zoomingEnabled;
+ }
+ return this;
+ },
+ userZoomingEnabled: function userZoomingEnabled(bool) {
+ if (bool !== void 0) {
+ this._private.userZoomingEnabled = bool ? true : false;
+ } else {
+ return this._private.userZoomingEnabled;
+ }
+ return this;
+ },
+ boxSelectionEnabled: function boxSelectionEnabled(bool) {
+ if (bool !== void 0) {
+ this._private.boxSelectionEnabled = bool ? true : false;
+ } else {
+ return this._private.boxSelectionEnabled;
+ }
+ return this;
+ },
+ pan: function pan() {
+ var args = arguments;
+ var pan2 = this._private.pan;
+ var dim, val, dims, x, y;
+ switch (args.length) {
+ case 0:
+ return pan2;
+ case 1:
+ if (string(args[0])) {
+ dim = args[0];
+ return pan2[dim];
+ } else if (plainObject(args[0])) {
+ if (!this._private.panningEnabled) {
+ return this;
+ }
+ dims = args[0];
+ x = dims.x;
+ y = dims.y;
+ if (number$1(x)) {
+ pan2.x = x;
+ }
+ if (number$1(y)) {
+ pan2.y = y;
+ }
+ this.emit("pan viewport");
+ }
+ break;
+ case 2:
+ if (!this._private.panningEnabled) {
+ return this;
+ }
+ dim = args[0];
+ val = args[1];
+ if ((dim === "x" || dim === "y") && number$1(val)) {
+ pan2[dim] = val;
+ }
+ this.emit("pan viewport");
+ break;
+ }
+ this.notify("viewport");
+ return this;
+ },
+ panBy: function panBy(arg0, arg1) {
+ var args = arguments;
+ var pan = this._private.pan;
+ var dim, val, dims, x, y;
+ if (!this._private.panningEnabled) {
+ return this;
+ }
+ switch (args.length) {
+ case 1:
+ if (plainObject(arg0)) {
+ dims = args[0];
+ x = dims.x;
+ y = dims.y;
+ if (number$1(x)) {
+ pan.x += x;
+ }
+ if (number$1(y)) {
+ pan.y += y;
+ }
+ this.emit("pan viewport");
+ }
+ break;
+ case 2:
+ dim = arg0;
+ val = arg1;
+ if ((dim === "x" || dim === "y") && number$1(val)) {
+ pan[dim] += val;
+ }
+ this.emit("pan viewport");
+ break;
+ }
+ this.notify("viewport");
+ return this;
+ },
+ fit: function fit(elements2, padding) {
+ var viewportState = this.getFitViewport(elements2, padding);
+ if (viewportState) {
+ var _p = this._private;
+ _p.zoom = viewportState.zoom;
+ _p.pan = viewportState.pan;
+ this.emit("pan zoom viewport");
+ this.notify("viewport");
+ }
+ return this;
+ },
+ getFitViewport: function getFitViewport(elements2, padding) {
+ if (number$1(elements2) && padding === void 0) {
+ padding = elements2;
+ elements2 = void 0;
+ }
+ if (!this._private.panningEnabled || !this._private.zoomingEnabled) {
+ return;
+ }
+ var bb;
+ if (string(elements2)) {
+ var sel = elements2;
+ elements2 = this.$(sel);
+ } else if (boundingBox(elements2)) {
+ var bbe = elements2;
+ bb = {
+ x1: bbe.x1,
+ y1: bbe.y1,
+ x2: bbe.x2,
+ y2: bbe.y2
+ };
+ bb.w = bb.x2 - bb.x1;
+ bb.h = bb.y2 - bb.y1;
+ } else if (!elementOrCollection(elements2)) {
+ elements2 = this.mutableElements();
+ }
+ if (elementOrCollection(elements2) && elements2.empty()) {
+ return;
+ }
+ bb = bb || elements2.boundingBox();
+ var w = this.width();
+ var h = this.height();
+ var zoom;
+ padding = number$1(padding) ? padding : 0;
+ if (!isNaN(w) && !isNaN(h) && w > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) {
+ zoom = Math.min((w - 2 * padding) / bb.w, (h - 2 * padding) / bb.h);
+ zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom;
+ zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom;
+ var pan = {
+ // now pan to middle
+ x: (w - zoom * (bb.x1 + bb.x2)) / 2,
+ y: (h - zoom * (bb.y1 + bb.y2)) / 2
+ };
+ return {
+ zoom,
+ pan
+ };
+ }
+ return;
+ },
+ zoomRange: function zoomRange(min2, max2) {
+ var _p = this._private;
+ if (max2 == null) {
+ var opts = min2;
+ min2 = opts.min;
+ max2 = opts.max;
+ }
+ if (number$1(min2) && number$1(max2) && min2 <= max2) {
+ _p.minZoom = min2;
+ _p.maxZoom = max2;
+ } else if (number$1(min2) && max2 === void 0 && min2 <= _p.maxZoom) {
+ _p.minZoom = min2;
+ } else if (number$1(max2) && min2 === void 0 && max2 >= _p.minZoom) {
+ _p.maxZoom = max2;
+ }
+ return this;
+ },
+ minZoom: function minZoom(zoom) {
+ if (zoom === void 0) {
+ return this._private.minZoom;
+ } else {
+ return this.zoomRange({
+ min: zoom
+ });
+ }
+ },
+ maxZoom: function maxZoom2(zoom) {
+ if (zoom === void 0) {
+ return this._private.maxZoom;
+ } else {
+ return this.zoomRange({
+ max: zoom
+ });
+ }
+ },
+ getZoomedViewport: function getZoomedViewport(params) {
+ var _p = this._private;
+ var currentPan = _p.pan;
+ var currentZoom = _p.zoom;
+ var pos;
+ var zoom;
+ var bail = false;
+ if (!_p.zoomingEnabled) {
+ bail = true;
+ }
+ if (number$1(params)) {
+ zoom = params;
+ } else if (plainObject(params)) {
+ zoom = params.level;
+ if (params.position != null) {
+ pos = modelToRenderedPosition(params.position, currentZoom, currentPan);
+ } else if (params.renderedPosition != null) {
+ pos = params.renderedPosition;
+ }
+ if (pos != null && !_p.panningEnabled) {
+ bail = true;
+ }
+ }
+ zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom;
+ zoom = zoom < _p.minZoom ? _p.minZoom : zoom;
+ if (bail || !number$1(zoom) || zoom === currentZoom || pos != null && (!number$1(pos.x) || !number$1(pos.y))) {
+ return null;
+ }
+ if (pos != null) {
+ var pan1 = currentPan;
+ var zoom1 = currentZoom;
+ var zoom2 = zoom;
+ var pan2 = {
+ x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x,
+ y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y
+ };
+ return {
+ zoomed: true,
+ panned: true,
+ zoom: zoom2,
+ pan: pan2
+ };
+ } else {
+ return {
+ zoomed: true,
+ panned: false,
+ zoom,
+ pan: currentPan
+ };
+ }
+ },
+ zoom: function zoom(params) {
+ if (params === void 0) {
+ return this._private.zoom;
+ } else {
+ var vp = this.getZoomedViewport(params);
+ var _p = this._private;
+ if (vp == null || !vp.zoomed) {
+ return this;
+ }
+ _p.zoom = vp.zoom;
+ if (vp.panned) {
+ _p.pan.x = vp.pan.x;
+ _p.pan.y = vp.pan.y;
+ }
+ this.emit("zoom" + (vp.panned ? " pan" : "") + " viewport");
+ this.notify("viewport");
+ return this;
+ }
+ },
+ viewport: function viewport(opts) {
+ var _p = this._private;
+ var zoomDefd = true;
+ var panDefd = true;
+ var events = [];
+ var zoomFailed = false;
+ var panFailed = false;
+ if (!opts) {
+ return this;
+ }
+ if (!number$1(opts.zoom)) {
+ zoomDefd = false;
+ }
+ if (!plainObject(opts.pan)) {
+ panDefd = false;
+ }
+ if (!zoomDefd && !panDefd) {
+ return this;
+ }
+ if (zoomDefd) {
+ var z = opts.zoom;
+ if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) {
+ zoomFailed = true;
+ } else {
+ _p.zoom = z;
+ events.push("zoom");
+ }
+ }
+ if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) {
+ var p2 = opts.pan;
+ if (number$1(p2.x)) {
+ _p.pan.x = p2.x;
+ panFailed = false;
+ }
+ if (number$1(p2.y)) {
+ _p.pan.y = p2.y;
+ panFailed = false;
+ }
+ if (!panFailed) {
+ events.push("pan");
+ }
+ }
+ if (events.length > 0) {
+ events.push("viewport");
+ this.emit(events.join(" "));
+ this.notify("viewport");
+ }
+ return this;
+ },
+ center: function center(elements2) {
+ var pan = this.getCenterPan(elements2);
+ if (pan) {
+ this._private.pan = pan;
+ this.emit("pan viewport");
+ this.notify("viewport");
+ }
+ return this;
+ },
+ getCenterPan: function getCenterPan(elements2, zoom) {
+ if (!this._private.panningEnabled) {
+ return;
+ }
+ if (string(elements2)) {
+ var selector = elements2;
+ elements2 = this.mutableElements().filter(selector);
+ } else if (!elementOrCollection(elements2)) {
+ elements2 = this.mutableElements();
+ }
+ if (elements2.length === 0) {
+ return;
+ }
+ var bb = elements2.boundingBox();
+ var w = this.width();
+ var h = this.height();
+ zoom = zoom === void 0 ? this._private.zoom : zoom;
+ var pan = {
+ // middle
+ x: (w - zoom * (bb.x1 + bb.x2)) / 2,
+ y: (h - zoom * (bb.y1 + bb.y2)) / 2
+ };
+ return pan;
+ },
+ reset: function reset() {
+ if (!this._private.panningEnabled || !this._private.zoomingEnabled) {
+ return this;
+ }
+ this.viewport({
+ pan: {
+ x: 0,
+ y: 0
+ },
+ zoom: 1
+ });
+ return this;
+ },
+ invalidateSize: function invalidateSize() {
+ this._private.sizeCache = null;
+ },
+ size: function size() {
+ var _p = this._private;
+ var container = _p.container;
+ return _p.sizeCache = _p.sizeCache || (container ? function() {
+ var style = window$1.getComputedStyle(container);
+ var val = function val2(name2) {
+ return parseFloat(style.getPropertyValue(name2));
+ };
+ return {
+ width: container.clientWidth - val("padding-left") - val("padding-right"),
+ height: container.clientHeight - val("padding-top") - val("padding-bottom")
+ };
+ }() : {
+ // fallback if no container (not 0 b/c can be used for dividing etc)
+ width: 1,
+ height: 1
+ });
+ },
+ width: function width() {
+ return this.size().width;
+ },
+ height: function height() {
+ return this.size().height;
+ },
+ extent: function extent() {
+ var pan = this._private.pan;
+ var zoom = this._private.zoom;
+ var rb = this.renderedExtent();
+ var b = {
+ x1: (rb.x1 - pan.x) / zoom,
+ x2: (rb.x2 - pan.x) / zoom,
+ y1: (rb.y1 - pan.y) / zoom,
+ y2: (rb.y2 - pan.y) / zoom
+ };
+ b.w = b.x2 - b.x1;
+ b.h = b.y2 - b.y1;
+ return b;
+ },
+ renderedExtent: function renderedExtent() {
+ var width = this.width();
+ var height = this.height();
+ return {
+ x1: 0,
+ y1: 0,
+ x2: width,
+ y2: height,
+ w: width,
+ h: height
+ };
+ },
+ multiClickDebounceTime: function multiClickDebounceTime(_int) {
+ if (_int)
+ this._private.multiClickDebounceTime = _int;
+ else
+ return this._private.multiClickDebounceTime;
+ return this;
+ }
+ };
+ corefn$1.centre = corefn$1.center;
+ corefn$1.autolockNodes = corefn$1.autolock;
+ corefn$1.autoungrabifyNodes = corefn$1.autoungrabify;
+ var fn = {
+ data: define.data({
+ field: "data",
+ bindingEvent: "data",
+ allowBinding: true,
+ allowSetting: true,
+ settingEvent: "data",
+ settingTriggersEvent: true,
+ triggerFnName: "trigger",
+ allowGetting: true,
+ updateStyle: true
+ }),
+ removeData: define.removeData({
+ field: "data",
+ event: "data",
+ triggerFnName: "trigger",
+ triggerEvent: true,
+ updateStyle: true
+ }),
+ scratch: define.data({
+ field: "scratch",
+ bindingEvent: "scratch",
+ allowBinding: true,
+ allowSetting: true,
+ settingEvent: "scratch",
+ settingTriggersEvent: true,
+ triggerFnName: "trigger",
+ allowGetting: true,
+ updateStyle: true
+ }),
+ removeScratch: define.removeData({
+ field: "scratch",
+ event: "scratch",
+ triggerFnName: "trigger",
+ triggerEvent: true,
+ updateStyle: true
+ })
+ };
+ fn.attr = fn.data;
+ fn.removeAttr = fn.removeData;
+ var Core = function Core2(opts) {
+ var cy = this;
+ opts = extend({}, opts);
+ var container = opts.container;
+ if (container && !htmlElement(container) && htmlElement(container[0])) {
+ container = container[0];
+ }
+ var reg = container ? container._cyreg : null;
+ reg = reg || {};
+ if (reg && reg.cy) {
+ reg.cy.destroy();
+ reg = {};
+ }
+ var readies = reg.readies = reg.readies || [];
+ if (container) {
+ container._cyreg = reg;
+ }
+ reg.cy = cy;
+ var head = window$1 !== void 0 && container !== void 0 && !opts.headless;
+ var options = opts;
+ options.layout = extend({
+ name: head ? "grid" : "null"
+ }, options.layout);
+ options.renderer = extend({
+ name: head ? "canvas" : "null"
+ }, options.renderer);
+ var defVal = function defVal2(def, val, altVal) {
+ if (val !== void 0) {
+ return val;
+ } else if (altVal !== void 0) {
+ return altVal;
+ } else {
+ return def;
+ }
+ };
+ var _p = this._private = {
+ container,
+ // html dom ele container
+ ready: false,
+ // whether ready has been triggered
+ options,
+ // cached options
+ elements: new Collection(this),
+ // elements in the graph
+ listeners: [],
+ // list of listeners
+ aniEles: new Collection(this),
+ // elements being animated
+ data: options.data || {},
+ // data for the core
+ scratch: {},
+ // scratch object for core
+ layout: null,
+ renderer: null,
+ destroyed: false,
+ // whether destroy was called
+ notificationsEnabled: true,
+ // whether notifications are sent to the renderer
+ minZoom: 1e-50,
+ maxZoom: 1e50,
+ zoomingEnabled: defVal(true, options.zoomingEnabled),
+ userZoomingEnabled: defVal(true, options.userZoomingEnabled),
+ panningEnabled: defVal(true, options.panningEnabled),
+ userPanningEnabled: defVal(true, options.userPanningEnabled),
+ boxSelectionEnabled: defVal(true, options.boxSelectionEnabled),
+ autolock: defVal(false, options.autolock, options.autolockNodes),
+ autoungrabify: defVal(false, options.autoungrabify, options.autoungrabifyNodes),
+ autounselectify: defVal(false, options.autounselectify),
+ styleEnabled: options.styleEnabled === void 0 ? head : options.styleEnabled,
+ zoom: number$1(options.zoom) ? options.zoom : 1,
+ pan: {
+ x: plainObject(options.pan) && number$1(options.pan.x) ? options.pan.x : 0,
+ y: plainObject(options.pan) && number$1(options.pan.y) ? options.pan.y : 0
+ },
+ animation: {
+ // object for currently-running animations
+ current: [],
+ queue: []
+ },
+ hasCompoundNodes: false,
+ multiClickDebounceTime: defVal(250, options.multiClickDebounceTime)
+ };
+ this.createEmitter();
+ this.selectionType(options.selectionType);
+ this.zoomRange({
+ min: options.minZoom,
+ max: options.maxZoom
+ });
+ var loadExtData = function loadExtData2(extData, next2) {
+ var anyIsPromise = extData.some(promise);
+ if (anyIsPromise) {
+ return Promise$1.all(extData).then(next2);
+ } else {
+ next2(extData);
+ }
+ };
+ if (_p.styleEnabled) {
+ cy.setStyle([]);
+ }
+ var rendererOptions = extend({}, options, options.renderer);
+ cy.initRenderer(rendererOptions);
+ var setElesAndLayout = function setElesAndLayout2(elements2, onload, ondone) {
+ cy.notifications(false);
+ var oldEles = cy.mutableElements();
+ if (oldEles.length > 0) {
+ oldEles.remove();
+ }
+ if (elements2 != null) {
+ if (plainObject(elements2) || array(elements2)) {
+ cy.add(elements2);
+ }
+ }
+ cy.one("layoutready", function(e) {
+ cy.notifications(true);
+ cy.emit(e);
+ cy.one("load", onload);
+ cy.emitAndNotify("load");
+ }).one("layoutstop", function() {
+ cy.one("done", ondone);
+ cy.emit("done");
+ });
+ var layoutOpts = extend({}, cy._private.options.layout);
+ layoutOpts.eles = cy.elements();
+ cy.layout(layoutOpts).run();
+ };
+ loadExtData([options.style, options.elements], function(thens) {
+ var initStyle = thens[0];
+ var initEles = thens[1];
+ if (_p.styleEnabled) {
+ cy.style().append(initStyle);
+ }
+ setElesAndLayout(initEles, function() {
+ cy.startAnimationLoop();
+ _p.ready = true;
+ if (fn$6(options.ready)) {
+ cy.on("ready", options.ready);
+ }
+ for (var i2 = 0; i2 < readies.length; i2++) {
+ var fn2 = readies[i2];
+ cy.on("ready", fn2);
+ }
+ if (reg) {
+ reg.readies = [];
+ }
+ cy.emit("ready");
+ }, options.done);
+ });
+ };
+ var corefn = Core.prototype;
+ extend(corefn, {
+ instanceString: function instanceString() {
+ return "core";
+ },
+ isReady: function isReady() {
+ return this._private.ready;
+ },
+ destroyed: function destroyed() {
+ return this._private.destroyed;
+ },
+ ready: function ready(fn2) {
+ if (this.isReady()) {
+ this.emitter().emit("ready", [], fn2);
+ } else {
+ this.on("ready", fn2);
+ }
+ return this;
+ },
+ destroy: function destroy() {
+ var cy = this;
+ if (cy.destroyed())
+ return;
+ cy.stopAnimationLoop();
+ cy.destroyRenderer();
+ this.emit("destroy");
+ cy._private.destroyed = true;
+ return cy;
+ },
+ hasElementWithId: function hasElementWithId(id) {
+ return this._private.elements.hasElementWithId(id);
+ },
+ getElementById: function getElementById2(id) {
+ return this._private.elements.getElementById(id);
+ },
+ hasCompoundNodes: function hasCompoundNodes() {
+ return this._private.hasCompoundNodes;
+ },
+ headless: function headless() {
+ return this._private.renderer.isHeadless();
+ },
+ styleEnabled: function styleEnabled() {
+ return this._private.styleEnabled;
+ },
+ addToPool: function addToPool(eles) {
+ this._private.elements.merge(eles);
+ return this;
+ },
+ removeFromPool: function removeFromPool(eles) {
+ this._private.elements.unmerge(eles);
+ return this;
+ },
+ container: function container() {
+ return this._private.container || null;
+ },
+ mount: function mount(container) {
+ if (container == null) {
+ return;
+ }
+ var cy = this;
+ var _p = cy._private;
+ var options = _p.options;
+ if (!htmlElement(container) && htmlElement(container[0])) {
+ container = container[0];
+ }
+ cy.stopAnimationLoop();
+ cy.destroyRenderer();
+ _p.container = container;
+ _p.styleEnabled = true;
+ cy.invalidateSize();
+ cy.initRenderer(extend({}, options, options.renderer, {
+ // allow custom renderer name to be re-used, otherwise use canvas
+ name: options.renderer.name === "null" ? "canvas" : options.renderer.name
+ }));
+ cy.startAnimationLoop();
+ cy.style(options.style);
+ cy.emit("mount");
+ return cy;
+ },
+ unmount: function unmount() {
+ var cy = this;
+ cy.stopAnimationLoop();
+ cy.destroyRenderer();
+ cy.initRenderer({
+ name: "null"
+ });
+ cy.emit("unmount");
+ return cy;
+ },
+ options: function options() {
+ return copy(this._private.options);
+ },
+ json: function json(obj) {
+ var cy = this;
+ var _p = cy._private;
+ var eles = cy.mutableElements();
+ var getFreshRef = function getFreshRef2(ele) {
+ return cy.getElementById(ele.id());
+ };
+ if (plainObject(obj)) {
+ cy.startBatch();
+ if (obj.elements) {
+ var idInJson = {};
+ var updateEles = function updateEles2(jsons, gr2) {
+ var toAdd = [];
+ var toMod = [];
+ for (var i3 = 0; i3 < jsons.length; i3++) {
+ var json3 = jsons[i3];
+ if (!json3.data.id) {
+ warn("cy.json() cannot handle elements without an ID attribute");
+ continue;
+ }
+ var id = "" + json3.data.id;
+ var ele = cy.getElementById(id);
+ idInJson[id] = true;
+ if (ele.length !== 0) {
+ toMod.push({
+ ele,
+ json: json3
+ });
+ } else {
+ if (gr2) {
+ json3.group = gr2;
+ toAdd.push(json3);
+ } else {
+ toAdd.push(json3);
+ }
+ }
+ }
+ cy.add(toAdd);
+ for (var _i = 0; _i < toMod.length; _i++) {
+ var _toMod$_i = toMod[_i], _ele = _toMod$_i.ele, _json = _toMod$_i.json;
+ _ele.json(_json);
+ }
+ };
+ if (array(obj.elements)) {
+ updateEles(obj.elements);
+ } else {
+ var grs = ["nodes", "edges"];
+ for (var i2 = 0; i2 < grs.length; i2++) {
+ var gr = grs[i2];
+ var elements2 = obj.elements[gr];
+ if (array(elements2)) {
+ updateEles(elements2, gr);
+ }
+ }
+ }
+ var parentsToRemove = cy.collection();
+ eles.filter(function(ele) {
+ return !idInJson[ele.id()];
+ }).forEach(function(ele) {
+ if (ele.isParent()) {
+ parentsToRemove.merge(ele);
+ } else {
+ ele.remove();
+ }
+ });
+ parentsToRemove.forEach(function(ele) {
+ return ele.children().move({
+ parent: null
+ });
+ });
+ parentsToRemove.forEach(function(ele) {
+ return getFreshRef(ele).remove();
+ });
+ }
+ if (obj.style) {
+ cy.style(obj.style);
+ }
+ if (obj.zoom != null && obj.zoom !== _p.zoom) {
+ cy.zoom(obj.zoom);
+ }
+ if (obj.pan) {
+ if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) {
+ cy.pan(obj.pan);
+ }
+ }
+ if (obj.data) {
+ cy.data(obj.data);
+ }
+ var fields = ["minZoom", "maxZoom", "zoomingEnabled", "userZoomingEnabled", "panningEnabled", "userPanningEnabled", "boxSelectionEnabled", "autolock", "autoungrabify", "autounselectify", "multiClickDebounceTime"];
+ for (var _i2 = 0; _i2 < fields.length; _i2++) {
+ var f = fields[_i2];
+ if (obj[f] != null) {
+ cy[f](obj[f]);
+ }
+ }
+ cy.endBatch();
+ return this;
+ } else {
+ var flat = !!obj;
+ var json2 = {};
+ if (flat) {
+ json2.elements = this.elements().map(function(ele) {
+ return ele.json();
+ });
+ } else {
+ json2.elements = {};
+ eles.forEach(function(ele) {
+ var group = ele.group();
+ if (!json2.elements[group]) {
+ json2.elements[group] = [];
+ }
+ json2.elements[group].push(ele.json());
+ });
+ }
+ if (this._private.styleEnabled) {
+ json2.style = cy.style().json();
+ }
+ json2.data = copy(cy.data());
+ var options = _p.options;
+ json2.zoomingEnabled = _p.zoomingEnabled;
+ json2.userZoomingEnabled = _p.userZoomingEnabled;
+ json2.zoom = _p.zoom;
+ json2.minZoom = _p.minZoom;
+ json2.maxZoom = _p.maxZoom;
+ json2.panningEnabled = _p.panningEnabled;
+ json2.userPanningEnabled = _p.userPanningEnabled;
+ json2.pan = copy(_p.pan);
+ json2.boxSelectionEnabled = _p.boxSelectionEnabled;
+ json2.renderer = copy(options.renderer);
+ json2.hideEdgesOnViewport = options.hideEdgesOnViewport;
+ json2.textureOnViewport = options.textureOnViewport;
+ json2.wheelSensitivity = options.wheelSensitivity;
+ json2.motionBlur = options.motionBlur;
+ json2.multiClickDebounceTime = options.multiClickDebounceTime;
+ return json2;
+ }
+ }
+ });
+ corefn.$id = corefn.getElementById;
+ [corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn].forEach(function(props) {
+ extend(corefn, props);
+ });
+ var defaults$7 = {
+ fit: true,
+ // whether to fit the viewport to the graph
+ directed: false,
+ // whether the tree is directed downwards (or edges can point in any direction if false)
+ padding: 30,
+ // padding on fit
+ circle: false,
+ // put depths in concentric circles if true, put depths top down if false
+ grid: false,
+ // whether to create an even grid into which the DAG is placed (circle:false only)
+ spacingFactor: 1.75,
+ // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap)
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: true,
+ // prevents node overlap, may overflow boundingBox if not enough space
+ nodeDimensionsIncludeLabels: false,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ roots: void 0,
+ // the roots of the trees
+ maximal: false,
+ // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only)
+ depthSort: void 0,
+ // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') }
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled,
+ animateFilter: function animateFilter(node, i2) {
+ return true;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function transform(node, position2) {
+ return position2;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ var getInfo = function getInfo2(ele) {
+ return ele.scratch("breadthfirst");
+ };
+ var setInfo = function setInfo2(ele, obj) {
+ return ele.scratch("breadthfirst", obj);
+ };
+ function BreadthFirstLayout(options) {
+ this.options = extend({}, defaults$7, options);
+ }
+ BreadthFirstLayout.prototype.run = function() {
+ var params = this.options;
+ var options = params;
+ var cy = params.cy;
+ var eles = options.eles;
+ var nodes2 = eles.nodes().filter(function(n2) {
+ return !n2.isParent();
+ });
+ var graph = eles;
+ var directed = options.directed;
+ var maximal = options.maximal || options.maximalAdjustments > 0;
+ var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ });
+ var roots;
+ if (elementOrCollection(options.roots)) {
+ roots = options.roots;
+ } else if (array(options.roots)) {
+ var rootsArray = [];
+ for (var i2 = 0; i2 < options.roots.length; i2++) {
+ var id = options.roots[i2];
+ var ele = cy.getElementById(id);
+ rootsArray.push(ele);
+ }
+ roots = cy.collection(rootsArray);
+ } else if (string(options.roots)) {
+ roots = cy.$(options.roots);
+ } else {
+ if (directed) {
+ roots = nodes2.roots();
+ } else {
+ var components = eles.components();
+ roots = cy.collection();
+ var _loop = function _loop2(_i3) {
+ var comp = components[_i3];
+ var maxDegree = comp.maxDegree(false);
+ var compRoots = comp.filter(function(ele2) {
+ return ele2.degree(false) === maxDegree;
+ });
+ roots = roots.add(compRoots);
+ };
+ for (var _i = 0; _i < components.length; _i++) {
+ _loop(_i);
+ }
+ }
+ }
+ var depths = [];
+ var foundByBfs = {};
+ var addToDepth = function addToDepth2(ele2, d) {
+ if (depths[d] == null) {
+ depths[d] = [];
+ }
+ var i3 = depths[d].length;
+ depths[d].push(ele2);
+ setInfo(ele2, {
+ index: i3,
+ depth: d
+ });
+ };
+ var changeDepth = function changeDepth2(ele2, newDepth) {
+ var _getInfo = getInfo(ele2), depth = _getInfo.depth, index = _getInfo.index;
+ depths[depth][index] = null;
+ addToDepth(ele2, newDepth);
+ };
+ graph.bfs({
+ roots,
+ directed: options.directed,
+ visit: function visit(node, edge, pNode, i3, depth) {
+ var ele2 = node[0];
+ var id2 = ele2.id();
+ addToDepth(ele2, depth);
+ foundByBfs[id2] = true;
+ }
+ });
+ var orphanNodes = [];
+ for (var _i2 = 0; _i2 < nodes2.length; _i2++) {
+ var _ele = nodes2[_i2];
+ if (foundByBfs[_ele.id()]) {
+ continue;
+ } else {
+ orphanNodes.push(_ele);
+ }
+ }
+ var assignDepthsAt = function assignDepthsAt2(i3) {
+ var eles2 = depths[i3];
+ for (var j = 0; j < eles2.length; j++) {
+ var _ele2 = eles2[j];
+ if (_ele2 == null) {
+ eles2.splice(j, 1);
+ j--;
+ continue;
+ }
+ setInfo(_ele2, {
+ depth: i3,
+ index: j
+ });
+ }
+ };
+ var assignDepths = function assignDepths2() {
+ for (var _i3 = 0; _i3 < depths.length; _i3++) {
+ assignDepthsAt(_i3);
+ }
+ };
+ var adjustMaximally = function adjustMaximally2(ele2, shifted2) {
+ var eInfo = getInfo(ele2);
+ var incomers = ele2.incomers().filter(function(el) {
+ return el.isNode() && eles.has(el);
+ });
+ var maxDepth = -1;
+ var id2 = ele2.id();
+ for (var k = 0; k < incomers.length; k++) {
+ var incmr = incomers[k];
+ var iInfo = getInfo(incmr);
+ maxDepth = Math.max(maxDepth, iInfo.depth);
+ }
+ if (eInfo.depth <= maxDepth) {
+ if (shifted2[id2]) {
+ return null;
+ }
+ changeDepth(ele2, maxDepth + 1);
+ shifted2[id2] = true;
+ return true;
+ }
+ return false;
+ };
+ if (directed && maximal) {
+ var Q = [];
+ var shifted = {};
+ var enqueue = function enqueue2(n2) {
+ return Q.push(n2);
+ };
+ var dequeue = function dequeue2() {
+ return Q.shift();
+ };
+ nodes2.forEach(function(n2) {
+ return Q.push(n2);
+ });
+ while (Q.length > 0) {
+ var _ele3 = dequeue();
+ var didShift = adjustMaximally(_ele3, shifted);
+ if (didShift) {
+ _ele3.outgoers().filter(function(el) {
+ return el.isNode() && eles.has(el);
+ }).forEach(enqueue);
+ } else if (didShift === null) {
+ warn("Detected double maximal shift for node `" + _ele3.id() + "`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");
+ break;
+ }
+ }
+ }
+ assignDepths();
+ var minDistance = 0;
+ if (options.avoidOverlap) {
+ for (var _i4 = 0; _i4 < nodes2.length; _i4++) {
+ var n = nodes2[_i4];
+ var nbb = n.layoutDimensions(options);
+ var w = nbb.w;
+ var h = nbb.h;
+ minDistance = Math.max(minDistance, w, h);
+ }
+ }
+ var cachedWeightedPercent = {};
+ var getWeightedPercent = function getWeightedPercent2(ele2) {
+ if (cachedWeightedPercent[ele2.id()]) {
+ return cachedWeightedPercent[ele2.id()];
+ }
+ var eleDepth = getInfo(ele2).depth;
+ var neighbors = ele2.neighborhood();
+ var percent = 0;
+ var samples = 0;
+ for (var _i5 = 0; _i5 < neighbors.length; _i5++) {
+ var neighbor = neighbors[_i5];
+ if (neighbor.isEdge() || neighbor.isParent() || !nodes2.has(neighbor)) {
+ continue;
+ }
+ var bf = getInfo(neighbor);
+ if (bf == null) {
+ continue;
+ }
+ var index = bf.index;
+ var depth = bf.depth;
+ if (index == null || depth == null) {
+ continue;
+ }
+ var nDepth = depths[depth].length;
+ if (depth < eleDepth) {
+ percent += index / nDepth;
+ samples++;
+ }
+ }
+ samples = Math.max(1, samples);
+ percent = percent / samples;
+ if (samples === 0) {
+ percent = 0;
+ }
+ cachedWeightedPercent[ele2.id()] = percent;
+ return percent;
+ };
+ var sortFn = function sortFn2(a, b) {
+ var apct = getWeightedPercent(a);
+ var bpct = getWeightedPercent(b);
+ var diff = apct - bpct;
+ if (diff === 0) {
+ return ascending(a.id(), b.id());
+ } else {
+ return diff;
+ }
+ };
+ if (options.depthSort !== void 0) {
+ sortFn = options.depthSort;
+ }
+ for (var _i6 = 0; _i6 < depths.length; _i6++) {
+ depths[_i6].sort(sortFn);
+ assignDepthsAt(_i6);
+ }
+ var orphanDepth = [];
+ for (var _i7 = 0; _i7 < orphanNodes.length; _i7++) {
+ orphanDepth.push(orphanNodes[_i7]);
+ }
+ depths.unshift(orphanDepth);
+ assignDepths();
+ var biggestDepthSize = 0;
+ for (var _i8 = 0; _i8 < depths.length; _i8++) {
+ biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize);
+ }
+ var center = {
+ x: bb.x1 + bb.w / 2,
+ y: bb.x1 + bb.h / 2
+ };
+ var maxDepthSize = depths.reduce(function(max2, eles2) {
+ return Math.max(max2, eles2.length);
+ }, 0);
+ var getPosition = function getPosition2(ele2) {
+ var _getInfo2 = getInfo(ele2), depth = _getInfo2.depth, index = _getInfo2.index;
+ var depthSize = depths[depth].length;
+ var distanceX = Math.max(bb.w / ((options.grid ? maxDepthSize : depthSize) + 1), minDistance);
+ var distanceY = Math.max(bb.h / (depths.length + 1), minDistance);
+ var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length);
+ radiusStepSize = Math.max(radiusStepSize, minDistance);
+ if (!options.circle) {
+ var epos = {
+ x: center.x + (index + 1 - (depthSize + 1) / 2) * distanceX,
+ y: (depth + 1) * distanceY
+ };
+ return epos;
+ } else {
+ var radius = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0);
+ var theta = 2 * Math.PI / depths[depth].length * index;
+ if (depth === 0 && depths[0].length === 1) {
+ radius = 1;
+ }
+ return {
+ x: center.x + radius * Math.cos(theta),
+ y: center.y + radius * Math.sin(theta)
+ };
+ }
+ };
+ eles.nodes().layoutPositions(this, options, getPosition);
+ return this;
+ };
+ var defaults$6 = {
+ fit: true,
+ // whether to fit the viewport to the graph
+ padding: 30,
+ // the padding on fit
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: true,
+ // prevents node overlap, may overflow boundingBox and radius if not enough space
+ nodeDimensionsIncludeLabels: false,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ spacingFactor: void 0,
+ // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
+ radius: void 0,
+ // the radius of the circle
+ startAngle: 3 / 2 * Math.PI,
+ // where nodes start in radians
+ sweep: void 0,
+ // how many radians should be between the first and last node (defaults to full circle)
+ clockwise: true,
+ // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
+ sort: void 0,
+ // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: function animateFilter(node, i2) {
+ return true;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function transform(node, position2) {
+ return position2;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ function CircleLayout(options) {
+ this.options = extend({}, defaults$6, options);
+ }
+ CircleLayout.prototype.run = function() {
+ var params = this.options;
+ var options = params;
+ var cy = params.cy;
+ var eles = options.eles;
+ var clockwise = options.counterclockwise !== void 0 ? !options.counterclockwise : options.clockwise;
+ var nodes2 = eles.nodes().not(":parent");
+ if (options.sort) {
+ nodes2 = nodes2.sort(options.sort);
+ }
+ var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ });
+ var center = {
+ x: bb.x1 + bb.w / 2,
+ y: bb.y1 + bb.h / 2
+ };
+ var sweep = options.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / nodes2.length : options.sweep;
+ var dTheta = sweep / Math.max(1, nodes2.length - 1);
+ var r;
+ var minDistance = 0;
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ var n = nodes2[i2];
+ var nbb = n.layoutDimensions(options);
+ var w = nbb.w;
+ var h = nbb.h;
+ minDistance = Math.max(minDistance, w, h);
+ }
+ if (number$1(options.radius)) {
+ r = options.radius;
+ } else if (nodes2.length <= 1) {
+ r = 0;
+ } else {
+ r = Math.min(bb.h, bb.w) / 2 - minDistance;
+ }
+ if (nodes2.length > 1 && options.avoidOverlap) {
+ minDistance *= 1.75;
+ var dcos = Math.cos(dTheta) - Math.cos(0);
+ var dsin = Math.sin(dTheta) - Math.sin(0);
+ var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin));
+ r = Math.max(rMin, r);
+ }
+ var getPos = function getPos2(ele, i3) {
+ var theta = options.startAngle + i3 * dTheta * (clockwise ? 1 : -1);
+ var rx = r * Math.cos(theta);
+ var ry = r * Math.sin(theta);
+ var pos = {
+ x: center.x + rx,
+ y: center.y + ry
+ };
+ return pos;
+ };
+ eles.nodes().layoutPositions(this, options, getPos);
+ return this;
+ };
+ var defaults$5 = {
+ fit: true,
+ // whether to fit the viewport to the graph
+ padding: 30,
+ // the padding on fit
+ startAngle: 3 / 2 * Math.PI,
+ // where nodes start in radians
+ sweep: void 0,
+ // how many radians should be between the first and last node (defaults to full circle)
+ clockwise: true,
+ // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
+ equidistant: false,
+ // whether levels have an equal radial distance betwen them, may cause bounding box overflow
+ minNodeSpacing: 10,
+ // min spacing between outside of nodes (used for radius adjustment)
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: true,
+ // prevents node overlap, may overflow boundingBox if not enough space
+ nodeDimensionsIncludeLabels: false,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ height: void 0,
+ // height of layout area (overrides container height)
+ width: void 0,
+ // width of layout area (overrides container width)
+ spacingFactor: void 0,
+ // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
+ concentric: function concentric(node) {
+ return node.degree();
+ },
+ levelWidth: function levelWidth(nodes2) {
+ return nodes2.maxDegree() / 4;
+ },
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: function animateFilter(node, i2) {
+ return true;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function transform(node, position2) {
+ return position2;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ function ConcentricLayout(options) {
+ this.options = extend({}, defaults$5, options);
+ }
+ ConcentricLayout.prototype.run = function() {
+ var params = this.options;
+ var options = params;
+ var clockwise = options.counterclockwise !== void 0 ? !options.counterclockwise : options.clockwise;
+ var cy = params.cy;
+ var eles = options.eles;
+ var nodes2 = eles.nodes().not(":parent");
+ var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ });
+ var center = {
+ x: bb.x1 + bb.w / 2,
+ y: bb.y1 + bb.h / 2
+ };
+ var nodeValues = [];
+ var maxNodeSize = 0;
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ var node = nodes2[i2];
+ var value = void 0;
+ value = options.concentric(node);
+ nodeValues.push({
+ value,
+ node
+ });
+ node._private.scratch.concentric = value;
+ }
+ nodes2.updateStyle();
+ for (var _i = 0; _i < nodes2.length; _i++) {
+ var _node = nodes2[_i];
+ var nbb = _node.layoutDimensions(options);
+ maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h);
+ }
+ nodeValues.sort(function(a, b) {
+ return b.value - a.value;
+ });
+ var levelWidth = options.levelWidth(nodes2);
+ var levels = [[]];
+ var currentLevel = levels[0];
+ for (var _i2 = 0; _i2 < nodeValues.length; _i2++) {
+ var val = nodeValues[_i2];
+ if (currentLevel.length > 0) {
+ var diff = Math.abs(currentLevel[0].value - val.value);
+ if (diff >= levelWidth) {
+ currentLevel = [];
+ levels.push(currentLevel);
+ }
+ }
+ currentLevel.push(val);
+ }
+ var minDist = maxNodeSize + options.minNodeSpacing;
+ if (!options.avoidOverlap) {
+ var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1;
+ var maxR = Math.min(bb.w, bb.h) / 2 - minDist;
+ var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0);
+ minDist = Math.min(minDist, rStep);
+ }
+ var r = 0;
+ for (var _i3 = 0; _i3 < levels.length; _i3++) {
+ var level = levels[_i3];
+ var sweep = options.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / level.length : options.sweep;
+ var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1);
+ if (level.length > 1 && options.avoidOverlap) {
+ var dcos = Math.cos(dTheta) - Math.cos(0);
+ var dsin = Math.sin(dTheta) - Math.sin(0);
+ var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin));
+ r = Math.max(rMin, r);
+ }
+ level.r = r;
+ r += minDist;
+ }
+ if (options.equidistant) {
+ var rDeltaMax = 0;
+ var _r = 0;
+ for (var _i4 = 0; _i4 < levels.length; _i4++) {
+ var _level = levels[_i4];
+ var rDelta = _level.r - _r;
+ rDeltaMax = Math.max(rDeltaMax, rDelta);
+ }
+ _r = 0;
+ for (var _i5 = 0; _i5 < levels.length; _i5++) {
+ var _level2 = levels[_i5];
+ if (_i5 === 0) {
+ _r = _level2.r;
+ }
+ _level2.r = _r;
+ _r += rDeltaMax;
+ }
+ }
+ var pos = {};
+ for (var _i6 = 0; _i6 < levels.length; _i6++) {
+ var _level3 = levels[_i6];
+ var _dTheta = _level3.dTheta;
+ var _r2 = _level3.r;
+ for (var j = 0; j < _level3.length; j++) {
+ var _val = _level3[j];
+ var theta = options.startAngle + (clockwise ? 1 : -1) * _dTheta * j;
+ var p2 = {
+ x: center.x + _r2 * Math.cos(theta),
+ y: center.y + _r2 * Math.sin(theta)
+ };
+ pos[_val.node.id()] = p2;
+ }
+ }
+ eles.nodes().layoutPositions(this, options, function(ele) {
+ var id = ele.id();
+ return pos[id];
+ });
+ return this;
+ };
+ var DEBUG;
+ var defaults$4 = {
+ // Called on `layoutready`
+ ready: function ready() {
+ },
+ // Called on `layoutstop`
+ stop: function stop() {
+ },
+ // Whether to animate while running the layout
+ // true : Animate continuously as the layout is running
+ // false : Just show the end result
+ // 'end' : Animate with the end result, from the initial positions to the end positions
+ animate: true,
+ // Easing of the animation for animate:'end'
+ animationEasing: void 0,
+ // The duration of the animation for animate:'end'
+ animationDuration: void 0,
+ // A function that determines whether the node should be animated
+ // All nodes animated by default on animate enabled
+ // Non-animated nodes are positioned immediately when the layout starts
+ animateFilter: function animateFilter(node, i2) {
+ return true;
+ },
+ // The layout animates only after this many milliseconds for animate:true
+ // (prevents flashing on fast runs)
+ animationThreshold: 250,
+ // Number of iterations between consecutive screen positions update
+ refresh: 20,
+ // Whether to fit the network view after when done
+ fit: true,
+ // Padding on fit
+ padding: 30,
+ // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ boundingBox: void 0,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ nodeDimensionsIncludeLabels: false,
+ // Randomize the initial positions of the nodes (true) or use existing positions (false)
+ randomize: false,
+ // Extra spacing between components in non-compound graphs
+ componentSpacing: 40,
+ // Node repulsion (non overlapping) multiplier
+ nodeRepulsion: function nodeRepulsion2(node) {
+ return 2048;
+ },
+ // Node repulsion (overlapping) multiplier
+ nodeOverlap: 4,
+ // Ideal edge (non nested) length
+ idealEdgeLength: function idealEdgeLength(edge) {
+ return 32;
+ },
+ // Divisor to compute edge forces
+ edgeElasticity: function edgeElasticity(edge) {
+ return 32;
+ },
+ // Nesting factor (multiplier) to compute ideal edge length for nested edges
+ nestingFactor: 1.2,
+ // Gravity force (constant)
+ gravity: 1,
+ // Maximum number of iterations to perform
+ numIter: 1e3,
+ // Initial temperature (maximum node displacement)
+ initialTemp: 1e3,
+ // Cooling factor (how the temperature is reduced between consecutive iterations
+ coolingFactor: 0.99,
+ // Lower temperature threshold (below this point the layout will end)
+ minTemp: 1
+ };
+ function CoseLayout(options) {
+ this.options = extend({}, defaults$4, options);
+ this.options.layout = this;
+ }
+ CoseLayout.prototype.run = function() {
+ var options = this.options;
+ var cy = options.cy;
+ var layout2 = this;
+ layout2.stopped = false;
+ if (options.animate === true || options.animate === false) {
+ layout2.emit({
+ type: "layoutstart",
+ layout: layout2
+ });
+ }
+ if (true === options.debug) {
+ DEBUG = true;
+ } else {
+ DEBUG = false;
+ }
+ var layoutInfo = createLayoutInfo(cy, layout2, options);
+ if (DEBUG) {
+ printLayoutInfo(layoutInfo);
+ }
+ if (options.randomize) {
+ randomizePositions(layoutInfo);
+ }
+ var startTime = performanceNow();
+ var refresh = function refresh2() {
+ refreshPositions(layoutInfo, cy, options);
+ if (true === options.fit) {
+ cy.fit(options.padding);
+ }
+ };
+ var mainLoop = function mainLoop2(i3) {
+ if (layout2.stopped || i3 >= options.numIter) {
+ return false;
+ }
+ step(layoutInfo, options);
+ layoutInfo.temperature = layoutInfo.temperature * options.coolingFactor;
+ if (layoutInfo.temperature < options.minTemp) {
+ return false;
+ }
+ return true;
+ };
+ var done = function done2() {
+ if (options.animate === true || options.animate === false) {
+ refresh();
+ layout2.one("layoutstop", options.stop);
+ layout2.emit({
+ type: "layoutstop",
+ layout: layout2
+ });
+ } else {
+ var nodes2 = options.eles.nodes();
+ var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes2);
+ nodes2.layoutPositions(layout2, options, getScaledPos);
+ }
+ };
+ var i2 = 0;
+ var loopRet = true;
+ if (options.animate === true) {
+ var frame = function frame2() {
+ var f = 0;
+ while (loopRet && f < options.refresh) {
+ loopRet = mainLoop(i2);
+ i2++;
+ f++;
+ }
+ if (!loopRet) {
+ separateComponents(layoutInfo, options);
+ done();
+ } else {
+ var now2 = performanceNow();
+ if (now2 - startTime >= options.animationThreshold) {
+ refresh();
+ }
+ requestAnimationFrame2(frame2);
+ }
+ };
+ frame();
+ } else {
+ while (loopRet) {
+ loopRet = mainLoop(i2);
+ i2++;
+ }
+ separateComponents(layoutInfo, options);
+ done();
+ }
+ return this;
+ };
+ CoseLayout.prototype.stop = function() {
+ this.stopped = true;
+ if (this.thread) {
+ this.thread.stop();
+ }
+ this.emit("layoutstop");
+ return this;
+ };
+ CoseLayout.prototype.destroy = function() {
+ if (this.thread) {
+ this.thread.stop();
+ }
+ return this;
+ };
+ var createLayoutInfo = function createLayoutInfo2(cy, layout2, options) {
+ var edges = options.eles.edges();
+ var nodes2 = options.eles.nodes();
+ var layoutInfo = {
+ isCompound: cy.hasCompoundNodes(),
+ layoutNodes: [],
+ idToIndex: {},
+ nodeSize: nodes2.size(),
+ graphSet: [],
+ indexToGraph: [],
+ layoutEdges: [],
+ edgeSize: edges.size(),
+ temperature: options.initialTemp,
+ clientWidth: cy.width(),
+ clientHeight: cy.width(),
+ boundingBox: makeBoundingBox(options.boundingBox ? options.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ })
+ };
+ var components = options.eles.components();
+ var id2cmptId = {};
+ for (var i2 = 0; i2 < components.length; i2++) {
+ var component = components[i2];
+ for (var j = 0; j < component.length; j++) {
+ var node = component[j];
+ id2cmptId[node.id()] = i2;
+ }
+ }
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n = nodes2[i2];
+ var nbb = n.layoutDimensions(options);
+ var tempNode = {};
+ tempNode.isLocked = n.locked();
+ tempNode.id = n.data("id");
+ tempNode.parentId = n.data("parent");
+ tempNode.cmptId = id2cmptId[n.id()];
+ tempNode.children = [];
+ tempNode.positionX = n.position("x");
+ tempNode.positionY = n.position("y");
+ tempNode.offsetX = 0;
+ tempNode.offsetY = 0;
+ tempNode.height = nbb.w;
+ tempNode.width = nbb.h;
+ tempNode.maxX = tempNode.positionX + tempNode.width / 2;
+ tempNode.minX = tempNode.positionX - tempNode.width / 2;
+ tempNode.maxY = tempNode.positionY + tempNode.height / 2;
+ tempNode.minY = tempNode.positionY - tempNode.height / 2;
+ tempNode.padLeft = parseFloat(n.style("padding"));
+ tempNode.padRight = parseFloat(n.style("padding"));
+ tempNode.padTop = parseFloat(n.style("padding"));
+ tempNode.padBottom = parseFloat(n.style("padding"));
+ tempNode.nodeRepulsion = fn$6(options.nodeRepulsion) ? options.nodeRepulsion(n) : options.nodeRepulsion;
+ layoutInfo.layoutNodes.push(tempNode);
+ layoutInfo.idToIndex[tempNode.id] = i2;
+ }
+ var queue = [];
+ var start = 0;
+ var end = -1;
+ var tempGraph = [];
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n = layoutInfo.layoutNodes[i2];
+ var p_id = n.parentId;
+ if (null != p_id) {
+ layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id);
+ } else {
+ queue[++end] = n.id;
+ tempGraph.push(n.id);
+ }
+ }
+ layoutInfo.graphSet.push(tempGraph);
+ while (start <= end) {
+ var node_id = queue[start++];
+ var node_ix = layoutInfo.idToIndex[node_id];
+ var node = layoutInfo.layoutNodes[node_ix];
+ var children = node.children;
+ if (children.length > 0) {
+ layoutInfo.graphSet.push(children);
+ for (var i2 = 0; i2 < children.length; i2++) {
+ queue[++end] = children[i2];
+ }
+ }
+ }
+ for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) {
+ var graph = layoutInfo.graphSet[i2];
+ for (var j = 0; j < graph.length; j++) {
+ var index = layoutInfo.idToIndex[graph[j]];
+ layoutInfo.indexToGraph[index] = i2;
+ }
+ }
+ for (var i2 = 0; i2 < layoutInfo.edgeSize; i2++) {
+ var e = edges[i2];
+ var tempEdge = {};
+ tempEdge.id = e.data("id");
+ tempEdge.sourceId = e.data("source");
+ tempEdge.targetId = e.data("target");
+ var idealLength = fn$6(options.idealEdgeLength) ? options.idealEdgeLength(e) : options.idealEdgeLength;
+ var elasticity = fn$6(options.edgeElasticity) ? options.edgeElasticity(e) : options.edgeElasticity;
+ var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId];
+ var targetIx = layoutInfo.idToIndex[tempEdge.targetId];
+ var sourceGraph = layoutInfo.indexToGraph[sourceIx];
+ var targetGraph = layoutInfo.indexToGraph[targetIx];
+ if (sourceGraph != targetGraph) {
+ var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo);
+ var lcaGraph = layoutInfo.graphSet[lca];
+ var depth = 0;
+ var tempNode = layoutInfo.layoutNodes[sourceIx];
+ while (-1 === lcaGraph.indexOf(tempNode.id)) {
+ tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];
+ depth++;
+ }
+ tempNode = layoutInfo.layoutNodes[targetIx];
+ while (-1 === lcaGraph.indexOf(tempNode.id)) {
+ tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];
+ depth++;
+ }
+ idealLength *= depth * options.nestingFactor;
+ }
+ tempEdge.idealLength = idealLength;
+ tempEdge.elasticity = elasticity;
+ layoutInfo.layoutEdges.push(tempEdge);
+ }
+ return layoutInfo;
+ };
+ var findLCA = function findLCA2(node1, node2, layoutInfo) {
+ var res = findLCA_aux(node1, node2, 0, layoutInfo);
+ if (2 > res.count) {
+ return 0;
+ } else {
+ return res.graph;
+ }
+ };
+ var findLCA_aux = function findLCA_aux2(node1, node2, graphIx, layoutInfo) {
+ var graph = layoutInfo.graphSet[graphIx];
+ if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) {
+ return {
+ count: 2,
+ graph: graphIx
+ };
+ }
+ var c = 0;
+ for (var i2 = 0; i2 < graph.length; i2++) {
+ var nodeId = graph[i2];
+ var nodeIx = layoutInfo.idToIndex[nodeId];
+ var children = layoutInfo.layoutNodes[nodeIx].children;
+ if (0 === children.length) {
+ continue;
+ }
+ var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children[0]]];
+ var result = findLCA_aux2(node1, node2, childGraphIx, layoutInfo);
+ if (0 === result.count) {
+ continue;
+ } else if (1 === result.count) {
+ c++;
+ if (2 === c) {
+ break;
+ }
+ } else {
+ return result;
+ }
+ }
+ return {
+ count: c,
+ graph: graphIx
+ };
+ };
+ var printLayoutInfo;
+ var randomizePositions = function randomizePositions2(layoutInfo, cy) {
+ var width = layoutInfo.clientWidth;
+ var height = layoutInfo.clientHeight;
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n = layoutInfo.layoutNodes[i2];
+ if (0 === n.children.length && !n.isLocked) {
+ n.positionX = Math.random() * width;
+ n.positionY = Math.random() * height;
+ }
+ }
+ };
+ var getScaleInBoundsFn = function getScaleInBoundsFn2(layoutInfo, options, nodes2) {
+ var bb = layoutInfo.boundingBox;
+ var coseBB = {
+ x1: Infinity,
+ x2: -Infinity,
+ y1: Infinity,
+ y2: -Infinity
+ };
+ if (options.boundingBox) {
+ nodes2.forEach(function(node) {
+ var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node.data("id")]];
+ coseBB.x1 = Math.min(coseBB.x1, lnode.positionX);
+ coseBB.x2 = Math.max(coseBB.x2, lnode.positionX);
+ coseBB.y1 = Math.min(coseBB.y1, lnode.positionY);
+ coseBB.y2 = Math.max(coseBB.y2, lnode.positionY);
+ });
+ coseBB.w = coseBB.x2 - coseBB.x1;
+ coseBB.h = coseBB.y2 - coseBB.y1;
+ }
+ return function(ele, i2) {
+ var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data("id")]];
+ if (options.boundingBox) {
+ var pctX = (lnode.positionX - coseBB.x1) / coseBB.w;
+ var pctY = (lnode.positionY - coseBB.y1) / coseBB.h;
+ return {
+ x: bb.x1 + pctX * bb.w,
+ y: bb.y1 + pctY * bb.h
+ };
+ } else {
+ return {
+ x: lnode.positionX,
+ y: lnode.positionY
+ };
+ }
+ };
+ };
+ var refreshPositions = function refreshPositions2(layoutInfo, cy, options) {
+ var layout2 = options.layout;
+ var nodes2 = options.eles.nodes();
+ var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes2);
+ nodes2.positions(getScaledPos);
+ if (true !== layoutInfo.ready) {
+ layoutInfo.ready = true;
+ layout2.one("layoutready", options.ready);
+ layout2.emit({
+ type: "layoutready",
+ layout: this
+ });
+ }
+ };
+ var step = function step2(layoutInfo, options, _step) {
+ calculateNodeForces(layoutInfo, options);
+ calculateEdgeForces(layoutInfo);
+ calculateGravityForces(layoutInfo, options);
+ propagateForces(layoutInfo);
+ updatePositions(layoutInfo);
+ };
+ var calculateNodeForces = function calculateNodeForces2(layoutInfo, options) {
+ for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) {
+ var graph = layoutInfo.graphSet[i2];
+ var numNodes = graph.length;
+ for (var j = 0; j < numNodes; j++) {
+ var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];
+ for (var k = j + 1; k < numNodes; k++) {
+ var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]];
+ nodeRepulsion(node1, node2, layoutInfo, options);
+ }
+ }
+ }
+ };
+ var randomDistance = function randomDistance2(max2) {
+ return -max2 + 2 * max2 * Math.random();
+ };
+ var nodeRepulsion = function nodeRepulsion2(node1, node2, layoutInfo, options) {
+ var cmptId1 = node1.cmptId;
+ var cmptId2 = node2.cmptId;
+ if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) {
+ return;
+ }
+ var directionX = node2.positionX - node1.positionX;
+ var directionY = node2.positionY - node1.positionY;
+ var maxRandDist = 1;
+ if (0 === directionX && 0 === directionY) {
+ directionX = randomDistance(maxRandDist);
+ directionY = randomDistance(maxRandDist);
+ }
+ var overlap = nodesOverlap(node1, node2, directionX, directionY);
+ if (overlap > 0) {
+ var force = options.nodeOverlap * overlap;
+ var distance = Math.sqrt(directionX * directionX + directionY * directionY);
+ var forceX = force * directionX / distance;
+ var forceY = force * directionY / distance;
+ } else {
+ var point1 = findClippingPoint(node1, directionX, directionY);
+ var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY);
+ var distanceX = point2.x - point1.x;
+ var distanceY = point2.y - point1.y;
+ var distanceSqr = distanceX * distanceX + distanceY * distanceY;
+ var distance = Math.sqrt(distanceSqr);
+ var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr;
+ var forceX = force * distanceX / distance;
+ var forceY = force * distanceY / distance;
+ }
+ if (!node1.isLocked) {
+ node1.offsetX -= forceX;
+ node1.offsetY -= forceY;
+ }
+ if (!node2.isLocked) {
+ node2.offsetX += forceX;
+ node2.offsetY += forceY;
+ }
+ return;
+ };
+ var nodesOverlap = function nodesOverlap2(node1, node2, dX, dY) {
+ if (dX > 0) {
+ var overlapX = node1.maxX - node2.minX;
+ } else {
+ var overlapX = node2.maxX - node1.minX;
+ }
+ if (dY > 0) {
+ var overlapY = node1.maxY - node2.minY;
+ } else {
+ var overlapY = node2.maxY - node1.minY;
+ }
+ if (overlapX >= 0 && overlapY >= 0) {
+ return Math.sqrt(overlapX * overlapX + overlapY * overlapY);
+ } else {
+ return 0;
+ }
+ };
+ var findClippingPoint = function findClippingPoint2(node, dX, dY) {
+ var X = node.positionX;
+ var Y = node.positionY;
+ var H = node.height || 1;
+ var W = node.width || 1;
+ var dirSlope = dY / dX;
+ var nodeSlope = H / W;
+ var res = {};
+ if (0 === dX && 0 < dY) {
+ res.x = X;
+ res.y = Y + H / 2;
+ return res;
+ }
+ if (0 === dX && 0 > dY) {
+ res.x = X;
+ res.y = Y + H / 2;
+ return res;
+ }
+ if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {
+ res.x = X + W / 2;
+ res.y = Y + W * dY / 2 / dX;
+ return res;
+ }
+ if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {
+ res.x = X - W / 2;
+ res.y = Y - W * dY / 2 / dX;
+ return res;
+ }
+ if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {
+ res.x = X + H * dX / 2 / dY;
+ res.y = Y + H / 2;
+ return res;
+ }
+ if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {
+ res.x = X - H * dX / 2 / dY;
+ res.y = Y - H / 2;
+ return res;
+ }
+ return res;
+ };
+ var calculateEdgeForces = function calculateEdgeForces2(layoutInfo, options) {
+ for (var i2 = 0; i2 < layoutInfo.edgeSize; i2++) {
+ var edge = layoutInfo.layoutEdges[i2];
+ var sourceIx = layoutInfo.idToIndex[edge.sourceId];
+ var source = layoutInfo.layoutNodes[sourceIx];
+ var targetIx = layoutInfo.idToIndex[edge.targetId];
+ var target = layoutInfo.layoutNodes[targetIx];
+ var directionX = target.positionX - source.positionX;
+ var directionY = target.positionY - source.positionY;
+ if (0 === directionX && 0 === directionY) {
+ continue;
+ }
+ var point1 = findClippingPoint(source, directionX, directionY);
+ var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY);
+ var lx = point2.x - point1.x;
+ var ly = point2.y - point1.y;
+ var l = Math.sqrt(lx * lx + ly * ly);
+ var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity;
+ if (0 !== l) {
+ var forceX = force * lx / l;
+ var forceY = force * ly / l;
+ } else {
+ var forceX = 0;
+ var forceY = 0;
+ }
+ if (!source.isLocked) {
+ source.offsetX += forceX;
+ source.offsetY += forceY;
+ }
+ if (!target.isLocked) {
+ target.offsetX -= forceX;
+ target.offsetY -= forceY;
+ }
+ }
+ };
+ var calculateGravityForces = function calculateGravityForces2(layoutInfo, options) {
+ if (options.gravity === 0) {
+ return;
+ }
+ var distThreshold = 1;
+ for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) {
+ var graph = layoutInfo.graphSet[i2];
+ var numNodes = graph.length;
+ if (0 === i2) {
+ var centerX = layoutInfo.clientHeight / 2;
+ var centerY = layoutInfo.clientWidth / 2;
+ } else {
+ var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]];
+ var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]];
+ var centerX = parent.positionX;
+ var centerY = parent.positionY;
+ }
+ for (var j = 0; j < numNodes; j++) {
+ var node = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];
+ if (node.isLocked) {
+ continue;
+ }
+ var dx = centerX - node.positionX;
+ var dy = centerY - node.positionY;
+ var d = Math.sqrt(dx * dx + dy * dy);
+ if (d > distThreshold) {
+ var fx = options.gravity * dx / d;
+ var fy = options.gravity * dy / d;
+ node.offsetX += fx;
+ node.offsetY += fy;
+ }
+ }
+ }
+ };
+ var propagateForces = function propagateForces2(layoutInfo, options) {
+ var queue = [];
+ var start = 0;
+ var end = -1;
+ queue.push.apply(queue, layoutInfo.graphSet[0]);
+ end += layoutInfo.graphSet[0].length;
+ while (start <= end) {
+ var nodeId = queue[start++];
+ var nodeIndex = layoutInfo.idToIndex[nodeId];
+ var node = layoutInfo.layoutNodes[nodeIndex];
+ var children = node.children;
+ if (0 < children.length && !node.isLocked) {
+ var offX = node.offsetX;
+ var offY = node.offsetY;
+ for (var i2 = 0; i2 < children.length; i2++) {
+ var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children[i2]]];
+ childNode.offsetX += offX;
+ childNode.offsetY += offY;
+ queue[++end] = children[i2];
+ }
+ node.offsetX = 0;
+ node.offsetY = 0;
+ }
+ }
+ };
+ var updatePositions = function updatePositions2(layoutInfo, options) {
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n = layoutInfo.layoutNodes[i2];
+ if (0 < n.children.length) {
+ n.maxX = void 0;
+ n.minX = void 0;
+ n.maxY = void 0;
+ n.minY = void 0;
+ }
+ }
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n = layoutInfo.layoutNodes[i2];
+ if (0 < n.children.length || n.isLocked) {
+ continue;
+ }
+ var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature);
+ n.positionX += tempForce.x;
+ n.positionY += tempForce.y;
+ n.offsetX = 0;
+ n.offsetY = 0;
+ n.minX = n.positionX - n.width;
+ n.maxX = n.positionX + n.width;
+ n.minY = n.positionY - n.height;
+ n.maxY = n.positionY + n.height;
+ updateAncestryBoundaries(n, layoutInfo);
+ }
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n = layoutInfo.layoutNodes[i2];
+ if (0 < n.children.length && !n.isLocked) {
+ n.positionX = (n.maxX + n.minX) / 2;
+ n.positionY = (n.maxY + n.minY) / 2;
+ n.width = n.maxX - n.minX;
+ n.height = n.maxY - n.minY;
+ }
+ }
+ };
+ var limitForce = function limitForce2(forceX, forceY, max2) {
+ var force = Math.sqrt(forceX * forceX + forceY * forceY);
+ if (force > max2) {
+ var res = {
+ x: max2 * forceX / force,
+ y: max2 * forceY / force
+ };
+ } else {
+ var res = {
+ x: forceX,
+ y: forceY
+ };
+ }
+ return res;
+ };
+ var updateAncestryBoundaries = function updateAncestryBoundaries2(node, layoutInfo) {
+ var parentId = node.parentId;
+ if (null == parentId) {
+ return;
+ }
+ var p2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]];
+ var flag = false;
+ if (null == p2.maxX || node.maxX + p2.padRight > p2.maxX) {
+ p2.maxX = node.maxX + p2.padRight;
+ flag = true;
+ }
+ if (null == p2.minX || node.minX - p2.padLeft < p2.minX) {
+ p2.minX = node.minX - p2.padLeft;
+ flag = true;
+ }
+ if (null == p2.maxY || node.maxY + p2.padBottom > p2.maxY) {
+ p2.maxY = node.maxY + p2.padBottom;
+ flag = true;
+ }
+ if (null == p2.minY || node.minY - p2.padTop < p2.minY) {
+ p2.minY = node.minY - p2.padTop;
+ flag = true;
+ }
+ if (flag) {
+ return updateAncestryBoundaries2(p2, layoutInfo);
+ }
+ return;
+ };
+ var separateComponents = function separateComponents2(layoutInfo, options) {
+ var nodes2 = layoutInfo.layoutNodes;
+ var components = [];
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ var node = nodes2[i2];
+ var cid = node.cmptId;
+ var component = components[cid] = components[cid] || [];
+ component.push(node);
+ }
+ var totalA = 0;
+ for (var i2 = 0; i2 < components.length; i2++) {
+ var c = components[i2];
+ if (!c) {
+ continue;
+ }
+ c.x1 = Infinity;
+ c.x2 = -Infinity;
+ c.y1 = Infinity;
+ c.y2 = -Infinity;
+ for (var j = 0; j < c.length; j++) {
+ var n = c[j];
+ c.x1 = Math.min(c.x1, n.positionX - n.width / 2);
+ c.x2 = Math.max(c.x2, n.positionX + n.width / 2);
+ c.y1 = Math.min(c.y1, n.positionY - n.height / 2);
+ c.y2 = Math.max(c.y2, n.positionY + n.height / 2);
+ }
+ c.w = c.x2 - c.x1;
+ c.h = c.y2 - c.y1;
+ totalA += c.w * c.h;
+ }
+ components.sort(function(c1, c2) {
+ return c2.w * c2.h - c1.w * c1.h;
+ });
+ var x = 0;
+ var y = 0;
+ var usedW = 0;
+ var rowH = 0;
+ var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight;
+ for (var i2 = 0; i2 < components.length; i2++) {
+ var c = components[i2];
+ if (!c) {
+ continue;
+ }
+ for (var j = 0; j < c.length; j++) {
+ var n = c[j];
+ if (!n.isLocked) {
+ n.positionX += x - c.x1;
+ n.positionY += y - c.y1;
+ }
+ }
+ x += c.w + options.componentSpacing;
+ usedW += c.w + options.componentSpacing;
+ rowH = Math.max(rowH, c.h);
+ if (usedW > maxRowW) {
+ y += rowH + options.componentSpacing;
+ x = 0;
+ usedW = 0;
+ rowH = 0;
+ }
+ }
+ };
+ var defaults$3 = {
+ fit: true,
+ // whether to fit the viewport to the graph
+ padding: 30,
+ // padding used on fit
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: true,
+ // prevents node overlap, may overflow boundingBox if not enough space
+ avoidOverlapPadding: 10,
+ // extra spacing around nodes when avoidOverlap: true
+ nodeDimensionsIncludeLabels: false,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ spacingFactor: void 0,
+ // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
+ condense: false,
+ // uses all available space on false, uses minimal space on true
+ rows: void 0,
+ // force num of rows in the grid
+ cols: void 0,
+ // force num of columns in the grid
+ position: function position2(node) {
+ },
+ // returns { row, col } for element
+ sort: void 0,
+ // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: function animateFilter(node, i2) {
+ return true;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function transform(node, position2) {
+ return position2;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ function GridLayout(options) {
+ this.options = extend({}, defaults$3, options);
+ }
+ GridLayout.prototype.run = function() {
+ var params = this.options;
+ var options = params;
+ var cy = params.cy;
+ var eles = options.eles;
+ var nodes2 = eles.nodes().not(":parent");
+ if (options.sort) {
+ nodes2 = nodes2.sort(options.sort);
+ }
+ var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ });
+ if (bb.h === 0 || bb.w === 0) {
+ eles.nodes().layoutPositions(this, options, function(ele) {
+ return {
+ x: bb.x1,
+ y: bb.y1
+ };
+ });
+ } else {
+ var cells = nodes2.size();
+ var splits = Math.sqrt(cells * bb.h / bb.w);
+ var rows = Math.round(splits);
+ var cols = Math.round(bb.w / bb.h * splits);
+ var small = function small2(val) {
+ if (val == null) {
+ return Math.min(rows, cols);
+ } else {
+ var min2 = Math.min(rows, cols);
+ if (min2 == rows) {
+ rows = val;
+ } else {
+ cols = val;
+ }
+ }
+ };
+ var large = function large2(val) {
+ if (val == null) {
+ return Math.max(rows, cols);
+ } else {
+ var max2 = Math.max(rows, cols);
+ if (max2 == rows) {
+ rows = val;
+ } else {
+ cols = val;
+ }
+ }
+ };
+ var oRows = options.rows;
+ var oCols = options.cols != null ? options.cols : options.columns;
+ if (oRows != null && oCols != null) {
+ rows = oRows;
+ cols = oCols;
+ } else if (oRows != null && oCols == null) {
+ rows = oRows;
+ cols = Math.ceil(cells / rows);
+ } else if (oRows == null && oCols != null) {
+ cols = oCols;
+ rows = Math.ceil(cells / cols);
+ } else if (cols * rows > cells) {
+ var sm = small();
+ var lg = large();
+ if ((sm - 1) * lg >= cells) {
+ small(sm - 1);
+ } else if ((lg - 1) * sm >= cells) {
+ large(lg - 1);
+ }
+ } else {
+ while (cols * rows < cells) {
+ var _sm = small();
+ var _lg = large();
+ if ((_lg + 1) * _sm >= cells) {
+ large(_lg + 1);
+ } else {
+ small(_sm + 1);
+ }
+ }
+ }
+ var cellWidth = bb.w / cols;
+ var cellHeight = bb.h / rows;
+ if (options.condense) {
+ cellWidth = 0;
+ cellHeight = 0;
+ }
+ if (options.avoidOverlap) {
+ for (var i2 = 0; i2 < nodes2.length; i2++) {
+ var node = nodes2[i2];
+ var pos = node._private.position;
+ if (pos.x == null || pos.y == null) {
+ pos.x = 0;
+ pos.y = 0;
+ }
+ var nbb = node.layoutDimensions(options);
+ var p2 = options.avoidOverlapPadding;
+ var w = nbb.w + p2;
+ var h = nbb.h + p2;
+ cellWidth = Math.max(cellWidth, w);
+ cellHeight = Math.max(cellHeight, h);
+ }
+ }
+ var cellUsed = {};
+ var used = function used2(row2, col2) {
+ return cellUsed["c-" + row2 + "-" + col2] ? true : false;
+ };
+ var use = function use2(row2, col2) {
+ cellUsed["c-" + row2 + "-" + col2] = true;
+ };
+ var row = 0;
+ var col = 0;
+ var moveToNextCell = function moveToNextCell2() {
+ col++;
+ if (col >= cols) {
+ col = 0;
+ row++;
+ }
+ };
+ var id2manPos = {};
+ for (var _i = 0; _i < nodes2.length; _i++) {
+ var _node = nodes2[_i];
+ var rcPos = options.position(_node);
+ if (rcPos && (rcPos.row !== void 0 || rcPos.col !== void 0)) {
+ var _pos = {
+ row: rcPos.row,
+ col: rcPos.col
+ };
+ if (_pos.col === void 0) {
+ _pos.col = 0;
+ while (used(_pos.row, _pos.col)) {
+ _pos.col++;
+ }
+ } else if (_pos.row === void 0) {
+ _pos.row = 0;
+ while (used(_pos.row, _pos.col)) {
+ _pos.row++;
+ }
+ }
+ id2manPos[_node.id()] = _pos;
+ use(_pos.row, _pos.col);
+ }
+ }
+ var getPos = function getPos2(element2, i3) {
+ var x, y;
+ if (element2.locked() || element2.isParent()) {
+ return false;
+ }
+ var rcPos2 = id2manPos[element2.id()];
+ if (rcPos2) {
+ x = rcPos2.col * cellWidth + cellWidth / 2 + bb.x1;
+ y = rcPos2.row * cellHeight + cellHeight / 2 + bb.y1;
+ } else {
+ while (used(row, col)) {
+ moveToNextCell();
+ }
+ x = col * cellWidth + cellWidth / 2 + bb.x1;
+ y = row * cellHeight + cellHeight / 2 + bb.y1;
+ use(row, col);
+ moveToNextCell();
+ }
+ return {
+ x,
+ y
+ };
+ };
+ nodes2.layoutPositions(this, options, getPos);
+ }
+ return this;
+ };
+ var defaults$2 = {
+ ready: function ready() {
+ },
+ // on layoutready
+ stop: function stop() {
+ }
+ // on layoutstop
+ };
+ function NullLayout(options) {
+ this.options = extend({}, defaults$2, options);
+ }
+ NullLayout.prototype.run = function() {
+ var options = this.options;
+ var eles = options.eles;
+ var layout2 = this;
+ options.cy;
+ layout2.emit("layoutstart");
+ eles.nodes().positions(function() {
+ return {
+ x: 0,
+ y: 0
+ };
+ });
+ layout2.one("layoutready", options.ready);
+ layout2.emit("layoutready");
+ layout2.one("layoutstop", options.stop);
+ layout2.emit("layoutstop");
+ return this;
+ };
+ NullLayout.prototype.stop = function() {
+ return this;
+ };
+ var defaults$1 = {
+ positions: void 0,
+ // map of (node id) => (position obj); or function(node){ return somPos; }
+ zoom: void 0,
+ // the zoom level to set (prob want fit = false if set)
+ pan: void 0,
+ // the pan level to set (prob want fit = false if set)
+ fit: true,
+ // whether to fit to viewport
+ padding: 30,
+ // padding on fit
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: function animateFilter(node, i2) {
+ return true;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function transform(node, position2) {
+ return position2;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ function PresetLayout(options) {
+ this.options = extend({}, defaults$1, options);
+ }
+ PresetLayout.prototype.run = function() {
+ var options = this.options;
+ var eles = options.eles;
+ var nodes2 = eles.nodes();
+ var posIsFn = fn$6(options.positions);
+ function getPosition(node) {
+ if (options.positions == null) {
+ return copyPosition(node.position());
+ }
+ if (posIsFn) {
+ return options.positions(node);
+ }
+ var pos = options.positions[node._private.data.id];
+ if (pos == null) {
+ return null;
+ }
+ return pos;
+ }
+ nodes2.layoutPositions(this, options, function(node, i2) {
+ var position2 = getPosition(node);
+ if (node.locked() || position2 == null) {
+ return false;
+ }
+ return position2;
+ });
+ return this;
+ };
+ var defaults = {
+ fit: true,
+ // whether to fit to viewport
+ padding: 30,
+ // fit padding
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: function animateFilter(node, i2) {
+ return true;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function transform(node, position2) {
+ return position2;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ function RandomLayout(options) {
+ this.options = extend({}, defaults, options);
+ }
+ RandomLayout.prototype.run = function() {
+ var options = this.options;
+ var cy = options.cy;
+ var eles = options.eles;
+ var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ });
+ var getPos = function getPos2(node, i2) {
+ return {
+ x: bb.x1 + Math.round(Math.random() * bb.w),
+ y: bb.y1 + Math.round(Math.random() * bb.h)
+ };
+ };
+ eles.nodes().layoutPositions(this, options, getPos);
+ return this;
+ };
+ var layout = [{
+ name: "breadthfirst",
+ impl: BreadthFirstLayout
+ }, {
+ name: "circle",
+ impl: CircleLayout
+ }, {
+ name: "concentric",
+ impl: ConcentricLayout
+ }, {
+ name: "cose",
+ impl: CoseLayout
+ }, {
+ name: "grid",
+ impl: GridLayout
+ }, {
+ name: "null",
+ impl: NullLayout
+ }, {
+ name: "preset",
+ impl: PresetLayout
+ }, {
+ name: "random",
+ impl: RandomLayout
+ }];
+ function NullRenderer(options) {
+ this.options = options;
+ this.notifications = 0;
+ }
+ var noop = function noop2() {
+ };
+ var throwImgErr = function throwImgErr2() {
+ throw new Error("A headless instance can not render images");
+ };
+ NullRenderer.prototype = {
+ recalculateRenderedStyle: noop,
+ notify: function notify() {
+ this.notifications++;
+ },
+ init: noop,
+ isHeadless: function isHeadless() {
+ return true;
+ },
+ png: throwImgErr,
+ jpg: throwImgErr
+ };
+ var BRp$f = {};
+ BRp$f.arrowShapeWidth = 0.3;
+ BRp$f.registerArrowShapes = function() {
+ var arrowShapes = this.arrowShapes = {};
+ var renderer2 = this;
+ var bbCollide = function bbCollide2(x, y, size, angle, translation, edgeWidth, padding) {
+ var x1 = translation.x - size / 2 - padding;
+ var x2 = translation.x + size / 2 + padding;
+ var y1 = translation.y - size / 2 - padding;
+ var y2 = translation.y + size / 2 + padding;
+ var inside = x1 <= x && x <= x2 && y1 <= y && y <= y2;
+ return inside;
+ };
+ var transform = function transform2(x, y, size, angle, translation) {
+ var xRotated = x * Math.cos(angle) - y * Math.sin(angle);
+ var yRotated = x * Math.sin(angle) + y * Math.cos(angle);
+ var xScaled = xRotated * size;
+ var yScaled = yRotated * size;
+ var xTranslated = xScaled + translation.x;
+ var yTranslated = yScaled + translation.y;
+ return {
+ x: xTranslated,
+ y: yTranslated
+ };
+ };
+ var transformPoints = function transformPoints2(pts2, size, angle, translation) {
+ var retPts = [];
+ for (var i2 = 0; i2 < pts2.length; i2 += 2) {
+ var x = pts2[i2];
+ var y = pts2[i2 + 1];
+ retPts.push(transform(x, y, size, angle, translation));
+ }
+ return retPts;
+ };
+ var pointsToArr = function pointsToArr2(pts2) {
+ var ret = [];
+ for (var i2 = 0; i2 < pts2.length; i2++) {
+ var p2 = pts2[i2];
+ ret.push(p2.x, p2.y);
+ }
+ return ret;
+ };
+ var standardGap = function standardGap2(edge) {
+ return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").pfValue * 2;
+ };
+ var defineArrowShape = function defineArrowShape2(name2, defn) {
+ if (string(defn)) {
+ defn = arrowShapes[defn];
+ }
+ arrowShapes[name2] = extend({
+ name: name2,
+ points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3],
+ collide: function collide(x, y, size, angle, translation, padding) {
+ var points = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));
+ var inside = pointInsidePolygonPoints(x, y, points);
+ return inside;
+ },
+ roughCollide: bbCollide,
+ draw: function draw2(context, size, angle, translation) {
+ var points = transformPoints(this.points, size, angle, translation);
+ renderer2.arrowShapeImpl("polygon")(context, points);
+ },
+ spacing: function spacing(edge) {
+ return 0;
+ },
+ gap: standardGap
+ }, defn);
+ };
+ defineArrowShape("none", {
+ collide: falsify,
+ roughCollide: falsify,
+ draw: noop$1,
+ spacing: zeroify,
+ gap: zeroify
+ });
+ defineArrowShape("triangle", {
+ points: [-0.15, -0.3, 0, 0, 0.15, -0.3]
+ });
+ defineArrowShape("arrow", "triangle");
+ defineArrowShape("triangle-backcurve", {
+ points: arrowShapes["triangle"].points,
+ controlPoint: [0, -0.15],
+ roughCollide: bbCollide,
+ draw: function draw2(context, size, angle, translation, edgeWidth) {
+ var ptsTrans = transformPoints(this.points, size, angle, translation);
+ var ctrlPt = this.controlPoint;
+ var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size, angle, translation);
+ renderer2.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans);
+ },
+ gap: function gap(edge) {
+ return standardGap(edge) * 0.8;
+ }
+ });
+ defineArrowShape("triangle-tee", {
+ points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
+ pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4],
+ collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {
+ var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));
+ var teePts = pointsToArr(transformPoints(this.pointsTee, size + 2 * padding, angle, translation));
+ var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts);
+ return inside;
+ },
+ draw: function draw2(context, size, angle, translation, edgeWidth) {
+ var triPts = transformPoints(this.points, size, angle, translation);
+ var teePts = transformPoints(this.pointsTee, size, angle, translation);
+ renderer2.arrowShapeImpl(this.name)(context, triPts, teePts);
+ }
+ });
+ defineArrowShape("circle-triangle", {
+ radius: 0.15,
+ pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15],
+ collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {
+ var t = translation;
+ var circleInside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2);
+ var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));
+ return pointInsidePolygonPoints(x, y, triPts) || circleInside;
+ },
+ draw: function draw2(context, size, angle, translation, edgeWidth) {
+ var triPts = transformPoints(this.pointsTr, size, angle, translation);
+ renderer2.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size);
+ },
+ spacing: function spacing(edge) {
+ return renderer2.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius;
+ }
+ });
+ defineArrowShape("triangle-cross", {
+ points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
+ baseCrossLinePts: [
+ -0.15,
+ -0.4,
+ // first half of the rectangle
+ -0.15,
+ -0.4,
+ 0.15,
+ -0.4,
+ // second half of the rectangle
+ 0.15,
+ -0.4
+ ],
+ crossLinePts: function crossLinePts(size, edgeWidth) {
+ var p2 = this.baseCrossLinePts.slice();
+ var shiftFactor = edgeWidth / size;
+ var y0 = 3;
+ var y1 = 5;
+ p2[y0] = p2[y0] - shiftFactor;
+ p2[y1] = p2[y1] - shiftFactor;
+ return p2;
+ },
+ collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {
+ var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));
+ var teePts = pointsToArr(transformPoints(this.crossLinePts(size, edgeWidth), size + 2 * padding, angle, translation));
+ var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts);
+ return inside;
+ },
+ draw: function draw2(context, size, angle, translation, edgeWidth) {
+ var triPts = transformPoints(this.points, size, angle, translation);
+ var crossLinePts = transformPoints(this.crossLinePts(size, edgeWidth), size, angle, translation);
+ renderer2.arrowShapeImpl(this.name)(context, triPts, crossLinePts);
+ }
+ });
+ defineArrowShape("vee", {
+ points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15],
+ gap: function gap(edge) {
+ return standardGap(edge) * 0.525;
+ }
+ });
+ defineArrowShape("circle", {
+ radius: 0.15,
+ collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {
+ var t = translation;
+ var inside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2);
+ return inside;
+ },
+ draw: function draw2(context, size, angle, translation, edgeWidth) {
+ renderer2.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size);
+ },
+ spacing: function spacing(edge) {
+ return renderer2.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius;
+ }
+ });
+ defineArrowShape("tee", {
+ points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0],
+ spacing: function spacing(edge) {
+ return 1;
+ },
+ gap: function gap(edge) {
+ return 1;
+ }
+ });
+ defineArrowShape("square", {
+ points: [-0.15, 0, 0.15, 0, 0.15, -0.3, -0.15, -0.3]
+ });
+ defineArrowShape("diamond", {
+ points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0],
+ gap: function gap(edge) {
+ return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value;
+ }
+ });
+ defineArrowShape("chevron", {
+ points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15],
+ gap: function gap(edge) {
+ return 0.95 * edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value;
+ }
+ });
+ };
+ var BRp$e = {};
+ BRp$e.projectIntoViewport = function(clientX, clientY) {
+ var cy = this.cy;
+ var offsets = this.findContainerClientCoords();
+ var offsetLeft = offsets[0];
+ var offsetTop = offsets[1];
+ var scale = offsets[4];
+ var pan = cy.pan();
+ var zoom = cy.zoom();
+ var x = ((clientX - offsetLeft) / scale - pan.x) / zoom;
+ var y = ((clientY - offsetTop) / scale - pan.y) / zoom;
+ return [x, y];
+ };
+ BRp$e.findContainerClientCoords = function() {
+ if (this.containerBB) {
+ return this.containerBB;
+ }
+ var container = this.container;
+ var rect = container.getBoundingClientRect();
+ var style = window$1.getComputedStyle(container);
+ var styleValue = function styleValue2(name2) {
+ return parseFloat(style.getPropertyValue(name2));
+ };
+ var padding = {
+ left: styleValue("padding-left"),
+ right: styleValue("padding-right"),
+ top: styleValue("padding-top"),
+ bottom: styleValue("padding-bottom")
+ };
+ var border = {
+ left: styleValue("border-left-width"),
+ right: styleValue("border-right-width"),
+ top: styleValue("border-top-width"),
+ bottom: styleValue("border-bottom-width")
+ };
+ var clientWidth = container.clientWidth;
+ var clientHeight = container.clientHeight;
+ var paddingHor = padding.left + padding.right;
+ var paddingVer = padding.top + padding.bottom;
+ var borderHor = border.left + border.right;
+ var scale = rect.width / (clientWidth + borderHor);
+ var unscaledW = clientWidth - paddingHor;
+ var unscaledH = clientHeight - paddingVer;
+ var left = rect.left + padding.left + border.left;
+ var top = rect.top + padding.top + border.top;
+ return this.containerBB = [left, top, unscaledW, unscaledH, scale];
+ };
+ BRp$e.invalidateContainerClientCoordsCache = function() {
+ this.containerBB = null;
+ };
+ BRp$e.findNearestElement = function(x, y, interactiveElementsOnly, isTouch) {
+ return this.findNearestElements(x, y, interactiveElementsOnly, isTouch)[0];
+ };
+ BRp$e.findNearestElements = function(x, y, interactiveElementsOnly, isTouch) {
+ var self2 = this;
+ var r = this;
+ var eles = r.getCachedZSortedEles();
+ var near = [];
+ var zoom = r.cy.zoom();
+ var hasCompounds = r.cy.hasCompoundNodes();
+ var edgeThreshold = (isTouch ? 24 : 8) / zoom;
+ var nodeThreshold = (isTouch ? 8 : 2) / zoom;
+ var labelThreshold = (isTouch ? 8 : 2) / zoom;
+ var minSqDist = Infinity;
+ var nearEdge;
+ var nearNode;
+ if (interactiveElementsOnly) {
+ eles = eles.interactive;
+ }
+ function addEle(ele2, sqDist) {
+ if (ele2.isNode()) {
+ if (nearNode) {
+ return;
+ } else {
+ nearNode = ele2;
+ near.push(ele2);
+ }
+ }
+ if (ele2.isEdge() && (sqDist == null || sqDist < minSqDist)) {
+ if (nearEdge) {
+ if (nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value && nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value) {
+ for (var i3 = 0; i3 < near.length; i3++) {
+ if (near[i3].isEdge()) {
+ near[i3] = ele2;
+ nearEdge = ele2;
+ minSqDist = sqDist != null ? sqDist : minSqDist;
+ break;
+ }
+ }
+ }
+ } else {
+ near.push(ele2);
+ nearEdge = ele2;
+ minSqDist = sqDist != null ? sqDist : minSqDist;
+ }
+ }
+ }
+ function checkNode(node) {
+ var width = node.outerWidth() + 2 * nodeThreshold;
+ var height = node.outerHeight() + 2 * nodeThreshold;
+ var hw = width / 2;
+ var hh = height / 2;
+ var pos = node.position();
+ if (pos.x - hw <= x && x <= pos.x + hw && pos.y - hh <= y && y <= pos.y + hh) {
+ var shape = r.nodeShapes[self2.getNodeShape(node)];
+ if (shape.checkPoint(x, y, 0, width, height, pos.x, pos.y)) {
+ addEle(node, 0);
+ return true;
+ }
+ }
+ }
+ function checkEdge(edge) {
+ var _p = edge._private;
+ var rs = _p.rscratch;
+ var styleWidth = edge.pstyle("width").pfValue;
+ var scale = edge.pstyle("arrow-scale").value;
+ var width = styleWidth / 2 + edgeThreshold;
+ var widthSq = width * width;
+ var width2 = width * 2;
+ var src = _p.source;
+ var tgt = _p.target;
+ var sqDist;
+ if (rs.edgeType === "segments" || rs.edgeType === "straight" || rs.edgeType === "haystack") {
+ var pts2 = rs.allpts;
+ for (var i3 = 0; i3 + 3 < pts2.length; i3 += 2) {
+ if (inLineVicinity(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], width2) && widthSq > (sqDist = sqdistToFiniteLine(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3]))) {
+ addEle(edge, sqDist);
+ return true;
+ }
+ }
+ } else if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound") {
+ var pts2 = rs.allpts;
+ for (var i3 = 0; i3 + 5 < rs.allpts.length; i3 += 4) {
+ if (inBezierVicinity(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], pts2[i3 + 4], pts2[i3 + 5], width2) && widthSq > (sqDist = sqdistToQuadraticBezier(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], pts2[i3 + 4], pts2[i3 + 5]))) {
+ addEle(edge, sqDist);
+ return true;
+ }
+ }
+ }
+ var src = src || _p.source;
+ var tgt = tgt || _p.target;
+ var arSize = self2.getArrowWidth(styleWidth, scale);
+ var arrows = [{
+ name: "source",
+ x: rs.arrowStartX,
+ y: rs.arrowStartY,
+ angle: rs.srcArrowAngle
+ }, {
+ name: "target",
+ x: rs.arrowEndX,
+ y: rs.arrowEndY,
+ angle: rs.tgtArrowAngle
+ }, {
+ name: "mid-source",
+ x: rs.midX,
+ y: rs.midY,
+ angle: rs.midsrcArrowAngle
+ }, {
+ name: "mid-target",
+ x: rs.midX,
+ y: rs.midY,
+ angle: rs.midtgtArrowAngle
+ }];
+ for (var i3 = 0; i3 < arrows.length; i3++) {
+ var ar = arrows[i3];
+ var shape = r.arrowShapes[edge.pstyle(ar.name + "-arrow-shape").value];
+ var edgeWidth = edge.pstyle("width").pfValue;
+ if (shape.roughCollide(x, y, arSize, ar.angle, {
+ x: ar.x,
+ y: ar.y
+ }, edgeWidth, edgeThreshold) && shape.collide(x, y, arSize, ar.angle, {
+ x: ar.x,
+ y: ar.y
+ }, edgeWidth, edgeThreshold)) {
+ addEle(edge);
+ return true;
+ }
+ }
+ if (hasCompounds && near.length > 0) {
+ checkNode(src);
+ checkNode(tgt);
+ }
+ }
+ function preprop(obj, name2, pre) {
+ return getPrefixedProperty(obj, name2, pre);
+ }
+ function checkLabel(ele2, prefix) {
+ var _p = ele2._private;
+ var th = labelThreshold;
+ var prefixDash;
+ if (prefix) {
+ prefixDash = prefix + "-";
+ } else {
+ prefixDash = "";
+ }
+ ele2.boundingBox();
+ var bb = _p.labelBounds[prefix || "main"];
+ var text = ele2.pstyle(prefixDash + "label").value;
+ var eventsEnabled = ele2.pstyle("text-events").strValue === "yes";
+ if (!eventsEnabled || !text) {
+ return;
+ }
+ var lx = preprop(_p.rscratch, "labelX", prefix);
+ var ly = preprop(_p.rscratch, "labelY", prefix);
+ var theta = preprop(_p.rscratch, "labelAngle", prefix);
+ var ox = ele2.pstyle(prefixDash + "text-margin-x").pfValue;
+ var oy = ele2.pstyle(prefixDash + "text-margin-y").pfValue;
+ var lx1 = bb.x1 - th - ox;
+ var lx2 = bb.x2 + th - ox;
+ var ly1 = bb.y1 - th - oy;
+ var ly2 = bb.y2 + th - oy;
+ if (theta) {
+ var cos2 = Math.cos(theta);
+ var sin2 = Math.sin(theta);
+ var rotate = function rotate2(x2, y2) {
+ x2 = x2 - lx;
+ y2 = y2 - ly;
+ return {
+ x: x2 * cos2 - y2 * sin2 + lx,
+ y: x2 * sin2 + y2 * cos2 + ly
+ };
+ };
+ var px1y1 = rotate(lx1, ly1);
+ var px1y2 = rotate(lx1, ly2);
+ var px2y1 = rotate(lx2, ly1);
+ var px2y2 = rotate(lx2, ly2);
+ var points = [
+ // with the margin added after the rotation is applied
+ px1y1.x + ox,
+ px1y1.y + oy,
+ px2y1.x + ox,
+ px2y1.y + oy,
+ px2y2.x + ox,
+ px2y2.y + oy,
+ px1y2.x + ox,
+ px1y2.y + oy
+ ];
+ if (pointInsidePolygonPoints(x, y, points)) {
+ addEle(ele2);
+ return true;
+ }
+ } else {
+ if (inBoundingBox(bb, x, y)) {
+ addEle(ele2);
+ return true;
+ }
+ }
+ }
+ for (var i2 = eles.length - 1; i2 >= 0; i2--) {
+ var ele = eles[i2];
+ if (ele.isNode()) {
+ checkNode(ele) || checkLabel(ele);
+ } else {
+ checkEdge(ele) || checkLabel(ele) || checkLabel(ele, "source") || checkLabel(ele, "target");
+ }
+ }
+ return near;
+ };
+ BRp$e.getAllInBox = function(x1, y1, x2, y2) {
+ var eles = this.getCachedZSortedEles().interactive;
+ var box = [];
+ var x1c = Math.min(x1, x2);
+ var x2c = Math.max(x1, x2);
+ var y1c = Math.min(y1, y2);
+ var y2c = Math.max(y1, y2);
+ x1 = x1c;
+ x2 = x2c;
+ y1 = y1c;
+ y2 = y2c;
+ var boxBb = makeBoundingBox({
+ x1,
+ y1,
+ x2,
+ y2
+ });
+ for (var e = 0; e < eles.length; e++) {
+ var ele = eles[e];
+ if (ele.isNode()) {
+ var node = ele;
+ var nodeBb = node.boundingBox({
+ includeNodes: true,
+ includeEdges: false,
+ includeLabels: false
+ });
+ if (boundingBoxesIntersect(boxBb, nodeBb) && !boundingBoxInBoundingBox(nodeBb, boxBb)) {
+ box.push(node);
+ }
+ } else {
+ var edge = ele;
+ var _p = edge._private;
+ var rs = _p.rscratch;
+ if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) {
+ continue;
+ }
+ if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) {
+ continue;
+ }
+ if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound" || rs.edgeType === "segments" || rs.edgeType === "haystack") {
+ var pts2 = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts;
+ var allInside = true;
+ for (var i2 = 0; i2 < pts2.length; i2++) {
+ if (!pointInBoundingBox(boxBb, pts2[i2])) {
+ allInside = false;
+ break;
+ }
+ }
+ if (allInside) {
+ box.push(edge);
+ }
+ } else if (rs.edgeType === "haystack" || rs.edgeType === "straight") {
+ box.push(edge);
+ }
+ }
+ }
+ return box;
+ };
+ var BRp$d = {};
+ BRp$d.calculateArrowAngles = function(edge) {
+ var rs = edge._private.rscratch;
+ var isHaystack = rs.edgeType === "haystack";
+ var isBezier = rs.edgeType === "bezier";
+ var isMultibezier = rs.edgeType === "multibezier";
+ var isSegments = rs.edgeType === "segments";
+ var isCompound = rs.edgeType === "compound";
+ var isSelf = rs.edgeType === "self";
+ var dispX, dispY;
+ var startX, startY, endX, endY, midX, midY;
+ if (isHaystack) {
+ startX = rs.haystackPts[0];
+ startY = rs.haystackPts[1];
+ endX = rs.haystackPts[2];
+ endY = rs.haystackPts[3];
+ } else {
+ startX = rs.arrowStartX;
+ startY = rs.arrowStartY;
+ endX = rs.arrowEndX;
+ endY = rs.arrowEndY;
+ }
+ midX = rs.midX;
+ midY = rs.midY;
+ if (isSegments) {
+ dispX = startX - rs.segpts[0];
+ dispY = startY - rs.segpts[1];
+ } else if (isMultibezier || isCompound || isSelf || isBezier) {
+ var pts2 = rs.allpts;
+ var bX = qbezierAt(pts2[0], pts2[2], pts2[4], 0.1);
+ var bY = qbezierAt(pts2[1], pts2[3], pts2[5], 0.1);
+ dispX = startX - bX;
+ dispY = startY - bY;
+ } else {
+ dispX = startX - midX;
+ dispY = startY - midY;
+ }
+ rs.srcArrowAngle = getAngleFromDisp(dispX, dispY);
+ var midX = rs.midX;
+ var midY = rs.midY;
+ if (isHaystack) {
+ midX = (startX + endX) / 2;
+ midY = (startY + endY) / 2;
+ }
+ dispX = endX - startX;
+ dispY = endY - startY;
+ if (isSegments) {
+ var pts2 = rs.allpts;
+ if (pts2.length / 2 % 2 === 0) {
+ var i2 = pts2.length / 2;
+ var i1 = i2 - 2;
+ dispX = pts2[i2] - pts2[i1];
+ dispY = pts2[i2 + 1] - pts2[i1 + 1];
+ } else {
+ var i2 = pts2.length / 2 - 1;
+ var i1 = i2 - 2;
+ var i3 = i2 + 2;
+ dispX = pts2[i2] - pts2[i1];
+ dispY = pts2[i2 + 1] - pts2[i1 + 1];
+ }
+ } else if (isMultibezier || isCompound || isSelf) {
+ var pts2 = rs.allpts;
+ var cpts = rs.ctrlpts;
+ var bp0x, bp0y;
+ var bp1x, bp1y;
+ if (cpts.length / 2 % 2 === 0) {
+ var p0 = pts2.length / 2 - 1;
+ var ic = p0 + 2;
+ var p1 = ic + 2;
+ bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0);
+ bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0);
+ bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 1e-4);
+ bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 1e-4);
+ } else {
+ var ic = pts2.length / 2 - 1;
+ var p0 = ic - 2;
+ var p1 = ic + 2;
+ bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.4999);
+ bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.4999);
+ bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.5);
+ bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.5);
+ }
+ dispX = bp1x - bp0x;
+ dispY = bp1y - bp0y;
+ }
+ rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY);
+ rs.midDispX = dispX;
+ rs.midDispY = dispY;
+ dispX *= -1;
+ dispY *= -1;
+ if (isSegments) {
+ var pts2 = rs.allpts;
+ if (pts2.length / 2 % 2 === 0)
+ ;
+ else {
+ var i2 = pts2.length / 2 - 1;
+ var i3 = i2 + 2;
+ dispX = -(pts2[i3] - pts2[i2]);
+ dispY = -(pts2[i3 + 1] - pts2[i2 + 1]);
+ }
+ }
+ rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY);
+ if (isSegments) {
+ dispX = endX - rs.segpts[rs.segpts.length - 2];
+ dispY = endY - rs.segpts[rs.segpts.length - 1];
+ } else if (isMultibezier || isCompound || isSelf || isBezier) {
+ var pts2 = rs.allpts;
+ var l = pts2.length;
+ var bX = qbezierAt(pts2[l - 6], pts2[l - 4], pts2[l - 2], 0.9);
+ var bY = qbezierAt(pts2[l - 5], pts2[l - 3], pts2[l - 1], 0.9);
+ dispX = endX - bX;
+ dispY = endY - bY;
+ } else {
+ dispX = endX - midX;
+ dispY = endY - midY;
+ }
+ rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY);
+ };
+ BRp$d.getArrowWidth = BRp$d.getArrowHeight = function(edgeWidth, scale) {
+ var cache2 = this.arrowWidthCache = this.arrowWidthCache || {};
+ var cachedVal = cache2[edgeWidth + ", " + scale];
+ if (cachedVal) {
+ return cachedVal;
+ }
+ cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale;
+ cache2[edgeWidth + ", " + scale] = cachedVal;
+ return cachedVal;
+ };
+ var BRp$c = {};
+ BRp$c.findHaystackPoints = function(edges) {
+ for (var i2 = 0; i2 < edges.length; i2++) {
+ var edge = edges[i2];
+ var _p = edge._private;
+ var rs = _p.rscratch;
+ if (!rs.haystack) {
+ var angle = Math.random() * 2 * Math.PI;
+ rs.source = {
+ x: Math.cos(angle),
+ y: Math.sin(angle)
+ };
+ angle = Math.random() * 2 * Math.PI;
+ rs.target = {
+ x: Math.cos(angle),
+ y: Math.sin(angle)
+ };
+ }
+ var src = _p.source;
+ var tgt = _p.target;
+ var srcPos = src.position();
+ var tgtPos = tgt.position();
+ var srcW = src.width();
+ var tgtW = tgt.width();
+ var srcH = src.height();
+ var tgtH = tgt.height();
+ var radius = edge.pstyle("haystack-radius").value;
+ var halfRadius = radius / 2;
+ rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y];
+ rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2;
+ rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2;
+ rs.edgeType = "haystack";
+ rs.haystack = true;
+ this.storeEdgeProjections(edge);
+ this.calculateArrowAngles(edge);
+ this.recalculateEdgeLabelProjections(edge);
+ this.calculateLabelAngles(edge);
+ }
+ };
+ BRp$c.findSegmentsPoints = function(edge, pairInfo) {
+ var rs = edge._private.rscratch;
+ var posPts = pairInfo.posPts, intersectionPts = pairInfo.intersectionPts, vectorNormInverse = pairInfo.vectorNormInverse;
+ var edgeDistances = edge.pstyle("edge-distances").value;
+ var segmentWs = edge.pstyle("segment-weights");
+ var segmentDs = edge.pstyle("segment-distances");
+ var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length);
+ rs.edgeType = "segments";
+ rs.segpts = [];
+ for (var s = 0; s < segmentsN; s++) {
+ var w = segmentWs.pfValue[s];
+ var d = segmentDs.pfValue[s];
+ var w1 = 1 - w;
+ var w2 = w;
+ var midptPts = edgeDistances === "node-position" ? posPts : intersectionPts;
+ var adjustedMidpt = {
+ x: midptPts.x1 * w1 + midptPts.x2 * w2,
+ y: midptPts.y1 * w1 + midptPts.y2 * w2
+ };
+ rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d);
+ }
+ };
+ BRp$c.findLoopPoints = function(edge, pairInfo, i2, edgeIsUnbundled) {
+ var rs = edge._private.rscratch;
+ var dirCounts = pairInfo.dirCounts, srcPos = pairInfo.srcPos;
+ var ctrlptDists = edge.pstyle("control-point-distances");
+ var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
+ var loopDir = edge.pstyle("loop-direction").pfValue;
+ var loopSwp = edge.pstyle("loop-sweep").pfValue;
+ var stepSize = edge.pstyle("control-point-step-size").pfValue;
+ rs.edgeType = "self";
+ var j = i2;
+ var loopDist = stepSize;
+ if (edgeIsUnbundled) {
+ j = 0;
+ loopDist = ctrlptDist;
+ }
+ var loopAngle = loopDir - Math.PI / 2;
+ var outAngle = loopAngle - loopSwp / 2;
+ var inAngle = loopAngle + loopSwp / 2;
+ var dc = String(loopDir + "_" + loopSwp);
+ j = dirCounts[dc] === void 0 ? dirCounts[dc] = 0 : ++dirCounts[dc];
+ rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)];
+ };
+ BRp$c.findCompoundLoopPoints = function(edge, pairInfo, i2, edgeIsUnbundled) {
+ var rs = edge._private.rscratch;
+ rs.edgeType = "compound";
+ var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH;
+ var stepSize = edge.pstyle("control-point-step-size").pfValue;
+ var ctrlptDists = edge.pstyle("control-point-distances");
+ var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
+ var j = i2;
+ var loopDist = stepSize;
+ if (edgeIsUnbundled) {
+ j = 0;
+ loopDist = ctrlptDist;
+ }
+ var loopW = 50;
+ var loopaPos = {
+ x: srcPos.x - srcW / 2,
+ y: srcPos.y - srcH / 2
+ };
+ var loopbPos = {
+ x: tgtPos.x - tgtW / 2,
+ y: tgtPos.y - tgtH / 2
+ };
+ var loopPos = {
+ x: Math.min(loopaPos.x, loopbPos.x),
+ y: Math.min(loopaPos.y, loopbPos.y)
+ };
+ var minCompoundStretch = 0.5;
+ var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01));
+ var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01));
+ rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y];
+ };
+ BRp$c.findStraightEdgePoints = function(edge) {
+ edge._private.rscratch.edgeType = "straight";
+ };
+ BRp$c.findBezierPoints = function(edge, pairInfo, i2, edgeIsUnbundled, edgeIsSwapped) {
+ var rs = edge._private.rscratch;
+ var vectorNormInverse = pairInfo.vectorNormInverse, posPts = pairInfo.posPts, intersectionPts = pairInfo.intersectionPts;
+ var edgeDistances = edge.pstyle("edge-distances").value;
+ var stepSize = edge.pstyle("control-point-step-size").pfValue;
+ var ctrlptDists = edge.pstyle("control-point-distances");
+ var ctrlptWs = edge.pstyle("control-point-weights");
+ var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1;
+ var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
+ var ctrlptWeight = ctrlptWs.value[0];
+ var multi = edgeIsUnbundled;
+ rs.edgeType = multi ? "multibezier" : "bezier";
+ rs.ctrlpts = [];
+ for (var b = 0; b < bezierN; b++) {
+ var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i2) * stepSize * (edgeIsSwapped ? -1 : 1);
+ var manctrlptDist = void 0;
+ var sign = signum(normctrlptDist);
+ if (multi) {
+ ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize;
+ ctrlptWeight = ctrlptWs.value[b];
+ }
+ if (edgeIsUnbundled) {
+ manctrlptDist = ctrlptDist;
+ } else {
+ manctrlptDist = ctrlptDist !== void 0 ? sign * ctrlptDist : void 0;
+ }
+ var distanceFromMidpoint = manctrlptDist !== void 0 ? manctrlptDist : normctrlptDist;
+ var w1 = 1 - ctrlptWeight;
+ var w2 = ctrlptWeight;
+ var midptPts = edgeDistances === "node-position" ? posPts : intersectionPts;
+ var adjustedMidpt = {
+ x: midptPts.x1 * w1 + midptPts.x2 * w2,
+ y: midptPts.y1 * w1 + midptPts.y2 * w2
+ };
+ rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint);
+ }
+ };
+ BRp$c.findTaxiPoints = function(edge, pairInfo) {
+ var rs = edge._private.rscratch;
+ rs.edgeType = "segments";
+ var VERTICAL = "vertical";
+ var HORIZONTAL = "horizontal";
+ var LEFTWARD = "leftward";
+ var RIGHTWARD = "rightward";
+ var DOWNWARD = "downward";
+ var UPWARD = "upward";
+ var AUTO = "auto";
+ var posPts = pairInfo.posPts, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH;
+ var edgeDistances = edge.pstyle("edge-distances").value;
+ var dIncludesNodeBody = edgeDistances !== "node-position";
+ var taxiDir = edge.pstyle("taxi-direction").value;
+ var rawTaxiDir = taxiDir;
+ var taxiTurn = edge.pstyle("taxi-turn");
+ var turnIsPercent = taxiTurn.units === "%";
+ var taxiTurnPfVal = taxiTurn.pfValue;
+ var turnIsNegative = taxiTurnPfVal < 0;
+ var minD = edge.pstyle("taxi-turn-min-distance").pfValue;
+ var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0;
+ var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0;
+ var pdx = posPts.x2 - posPts.x1;
+ var pdy = posPts.y2 - posPts.y1;
+ var subDWH = function subDWH2(dxy, dwh) {
+ if (dxy > 0) {
+ return Math.max(dxy - dwh, 0);
+ } else {
+ return Math.min(dxy + dwh, 0);
+ }
+ };
+ var dx = subDWH(pdx, dw);
+ var dy = subDWH(pdy, dh);
+ var isExplicitDir = false;
+ if (rawTaxiDir === AUTO) {
+ taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL;
+ } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) {
+ taxiDir = VERTICAL;
+ isExplicitDir = true;
+ } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) {
+ taxiDir = HORIZONTAL;
+ isExplicitDir = true;
+ }
+ var isVert = taxiDir === VERTICAL;
+ var l = isVert ? dy : dx;
+ var pl = isVert ? pdy : pdx;
+ var sgnL = signum(pl);
+ var forcedDir = false;
+ if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) {
+ sgnL *= -1;
+ l = sgnL * Math.abs(l);
+ forcedDir = true;
+ }
+ var d;
+ if (turnIsPercent) {
+ var p2 = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal;
+ d = p2 * l;
+ } else {
+ var k = taxiTurnPfVal < 0 ? l : 0;
+ d = k + taxiTurnPfVal * sgnL;
+ }
+ var getIsTooClose = function getIsTooClose2(d2) {
+ return Math.abs(d2) < minD || Math.abs(d2) >= Math.abs(l);
+ };
+ var isTooCloseSrc = getIsTooClose(d);
+ var isTooCloseTgt = getIsTooClose(Math.abs(l) - Math.abs(d));
+ var isTooClose = isTooCloseSrc || isTooCloseTgt;
+ if (isTooClose && !forcedDir) {
+ if (isVert) {
+ var lShapeInsideSrc = Math.abs(pl) <= srcH / 2;
+ var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2;
+ if (lShapeInsideSrc) {
+ var x = (posPts.x1 + posPts.x2) / 2;
+ var y1 = posPts.y1, y2 = posPts.y2;
+ rs.segpts = [x, y1, x, y2];
+ } else if (lShapeInsideTgt) {
+ var y = (posPts.y1 + posPts.y2) / 2;
+ var x1 = posPts.x1, x2 = posPts.x2;
+ rs.segpts = [x1, y, x2, y];
+ } else {
+ rs.segpts = [posPts.x1, posPts.y2];
+ }
+ } else {
+ var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2;
+ var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2;
+ if (_lShapeInsideSrc) {
+ var _y = (posPts.y1 + posPts.y2) / 2;
+ var _x = posPts.x1, _x2 = posPts.x2;
+ rs.segpts = [_x, _y, _x2, _y];
+ } else if (_lShapeInsideTgt) {
+ var _x3 = (posPts.x1 + posPts.x2) / 2;
+ var _y2 = posPts.y1, _y3 = posPts.y2;
+ rs.segpts = [_x3, _y2, _x3, _y3];
+ } else {
+ rs.segpts = [posPts.x2, posPts.y1];
+ }
+ }
+ } else {
+ if (isVert) {
+ var _y4 = posPts.y1 + d + (dIncludesNodeBody ? srcH / 2 * sgnL : 0);
+ var _x4 = posPts.x1, _x5 = posPts.x2;
+ rs.segpts = [_x4, _y4, _x5, _y4];
+ } else {
+ var _x6 = posPts.x1 + d + (dIncludesNodeBody ? srcW / 2 * sgnL : 0);
+ var _y5 = posPts.y1, _y6 = posPts.y2;
+ rs.segpts = [_x6, _y5, _x6, _y6];
+ }
+ }
+ };
+ BRp$c.tryToCorrectInvalidPoints = function(edge, pairInfo) {
+ var rs = edge._private.rscratch;
+ if (rs.edgeType === "bezier") {
+ var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH, srcShape = pairInfo.srcShape, tgtShape = pairInfo.tgtShape;
+ var badStart = !number$1(rs.startX) || !number$1(rs.startY);
+ var badAStart = !number$1(rs.arrowStartX) || !number$1(rs.arrowStartY);
+ var badEnd = !number$1(rs.endX) || !number$1(rs.endY);
+ var badAEnd = !number$1(rs.arrowEndX) || !number$1(rs.arrowEndY);
+ var minCpADistFactor = 3;
+ var arrowW = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth;
+ var minCpADist = minCpADistFactor * arrowW;
+ var startACpDist = dist({
+ x: rs.ctrlpts[0],
+ y: rs.ctrlpts[1]
+ }, {
+ x: rs.startX,
+ y: rs.startY
+ });
+ var closeStartACp = startACpDist < minCpADist;
+ var endACpDist = dist({
+ x: rs.ctrlpts[0],
+ y: rs.ctrlpts[1]
+ }, {
+ x: rs.endX,
+ y: rs.endY
+ });
+ var closeEndACp = endACpDist < minCpADist;
+ var overlapping = false;
+ if (badStart || badAStart || closeStartACp) {
+ overlapping = true;
+ var cpD = {
+ // delta
+ x: rs.ctrlpts[0] - srcPos.x,
+ y: rs.ctrlpts[1] - srcPos.y
+ };
+ var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y);
+ var cpM = {
+ // normalised delta
+ x: cpD.x / cpL,
+ y: cpD.y / cpL
+ };
+ var radius = Math.max(srcW, srcH);
+ var cpProj = {
+ // *2 radius guarantees outside shape
+ x: rs.ctrlpts[0] + cpM.x * 2 * radius,
+ y: rs.ctrlpts[1] + cpM.y * 2 * radius
+ };
+ var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0);
+ if (closeStartACp) {
+ rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist);
+ rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist);
+ } else {
+ rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist;
+ rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist;
+ }
+ }
+ if (badEnd || badAEnd || closeEndACp) {
+ overlapping = true;
+ var _cpD = {
+ // delta
+ x: rs.ctrlpts[0] - tgtPos.x,
+ y: rs.ctrlpts[1] - tgtPos.y
+ };
+ var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y);
+ var _cpM = {
+ // normalised delta
+ x: _cpD.x / _cpL,
+ y: _cpD.y / _cpL
+ };
+ var _radius = Math.max(srcW, srcH);
+ var _cpProj = {
+ // *2 radius guarantees outside shape
+ x: rs.ctrlpts[0] + _cpM.x * 2 * _radius,
+ y: rs.ctrlpts[1] + _cpM.y * 2 * _radius
+ };
+ var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0);
+ if (closeEndACp) {
+ rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist);
+ rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist);
+ } else {
+ rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist;
+ rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist;
+ }
+ }
+ if (overlapping) {
+ this.findEndpoints(edge);
+ }
+ }
+ };
+ BRp$c.storeAllpts = function(edge) {
+ var rs = edge._private.rscratch;
+ if (rs.edgeType === "multibezier" || rs.edgeType === "bezier" || rs.edgeType === "self" || rs.edgeType === "compound") {
+ rs.allpts = [];
+ rs.allpts.push(rs.startX, rs.startY);
+ for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) {
+ rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]);
+ if (b + 3 < rs.ctrlpts.length) {
+ rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2);
+ }
+ }
+ rs.allpts.push(rs.endX, rs.endY);
+ var m, mt;
+ if (rs.ctrlpts.length / 2 % 2 === 0) {
+ m = rs.allpts.length / 2 - 1;
+ rs.midX = rs.allpts[m];
+ rs.midY = rs.allpts[m + 1];
+ } else {
+ m = rs.allpts.length / 2 - 3;
+ mt = 0.5;
+ rs.midX = qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt);
+ rs.midY = qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt);
+ }
+ } else if (rs.edgeType === "straight") {
+ rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY];
+ rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4;
+ rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4;
+ } else if (rs.edgeType === "segments") {
+ rs.allpts = [];
+ rs.allpts.push(rs.startX, rs.startY);
+ rs.allpts.push.apply(rs.allpts, rs.segpts);
+ rs.allpts.push(rs.endX, rs.endY);
+ if (rs.segpts.length % 4 === 0) {
+ var i2 = rs.segpts.length / 2;
+ var i1 = i2 - 2;
+ rs.midX = (rs.segpts[i1] + rs.segpts[i2]) / 2;
+ rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i2 + 1]) / 2;
+ } else {
+ var _i = rs.segpts.length / 2 - 1;
+ rs.midX = rs.segpts[_i];
+ rs.midY = rs.segpts[_i + 1];
+ }
+ }
+ };
+ BRp$c.checkForInvalidEdgeWarning = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ if (rs.nodesOverlap || number$1(rs.startX) && number$1(rs.startY) && number$1(rs.endX) && number$1(rs.endY)) {
+ rs.loggedErr = false;
+ } else {
+ if (!rs.loggedErr) {
+ rs.loggedErr = true;
+ warn("Edge `" + edge.id() + "` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.");
+ }
+ }
+ };
+ BRp$c.findEdgeControlPoints = function(edges) {
+ var _this = this;
+ if (!edges || edges.length === 0) {
+ return;
+ }
+ var r = this;
+ var cy = r.cy;
+ var hasCompounds = cy.hasCompoundNodes();
+ var hashTable = {
+ map: new Map$2(),
+ get: function get2(pairId2) {
+ var map2 = this.map.get(pairId2[0]);
+ if (map2 != null) {
+ return map2.get(pairId2[1]);
+ } else {
+ return null;
+ }
+ },
+ set: function set2(pairId2, val) {
+ var map2 = this.map.get(pairId2[0]);
+ if (map2 == null) {
+ map2 = new Map$2();
+ this.map.set(pairId2[0], map2);
+ }
+ map2.set(pairId2[1], val);
+ }
+ };
+ var pairIds = [];
+ var haystackEdges = [];
+ for (var i2 = 0; i2 < edges.length; i2++) {
+ var edge = edges[i2];
+ var _p = edge._private;
+ var curveStyle = edge.pstyle("curve-style").value;
+ if (edge.removed() || !edge.takesUpSpace()) {
+ continue;
+ }
+ if (curveStyle === "haystack") {
+ haystackEdges.push(edge);
+ continue;
+ }
+ var edgeIsUnbundled = curveStyle === "unbundled-bezier" || curveStyle === "segments" || curveStyle === "straight" || curveStyle === "straight-triangle" || curveStyle === "taxi";
+ var edgeIsBezier = curveStyle === "unbundled-bezier" || curveStyle === "bezier";
+ var src = _p.source;
+ var tgt = _p.target;
+ var srcIndex = src.poolIndex();
+ var tgtIndex = tgt.poolIndex();
+ var pairId = [srcIndex, tgtIndex].sort();
+ var tableEntry = hashTable.get(pairId);
+ if (tableEntry == null) {
+ tableEntry = {
+ eles: []
+ };
+ hashTable.set(pairId, tableEntry);
+ pairIds.push(pairId);
+ }
+ tableEntry.eles.push(edge);
+ if (edgeIsUnbundled) {
+ tableEntry.hasUnbundled = true;
+ }
+ if (edgeIsBezier) {
+ tableEntry.hasBezier = true;
+ }
+ }
+ var _loop = function _loop2(p3) {
+ var pairId2 = pairIds[p3];
+ var pairInfo = hashTable.get(pairId2);
+ var swappedpairInfo = void 0;
+ if (!pairInfo.hasUnbundled) {
+ var pllEdges = pairInfo.eles[0].parallelEdges().filter(function(e) {
+ return e.isBundledBezier();
+ });
+ clearArray(pairInfo.eles);
+ pllEdges.forEach(function(edge2) {
+ return pairInfo.eles.push(edge2);
+ });
+ pairInfo.eles.sort(function(edge1, edge2) {
+ return edge1.poolIndex() - edge2.poolIndex();
+ });
+ }
+ var firstEdge = pairInfo.eles[0];
+ var src2 = firstEdge.source();
+ var tgt2 = firstEdge.target();
+ if (src2.poolIndex() > tgt2.poolIndex()) {
+ var temp = src2;
+ src2 = tgt2;
+ tgt2 = temp;
+ }
+ var srcPos = pairInfo.srcPos = src2.position();
+ var tgtPos = pairInfo.tgtPos = tgt2.position();
+ var srcW = pairInfo.srcW = src2.outerWidth();
+ var srcH = pairInfo.srcH = src2.outerHeight();
+ var tgtW = pairInfo.tgtW = tgt2.outerWidth();
+ var tgtH = pairInfo.tgtH = tgt2.outerHeight();
+ var srcShape = pairInfo.srcShape = r.nodeShapes[_this.getNodeShape(src2)];
+ var tgtShape = pairInfo.tgtShape = r.nodeShapes[_this.getNodeShape(tgt2)];
+ pairInfo.dirCounts = {
+ "north": 0,
+ "west": 0,
+ "south": 0,
+ "east": 0,
+ "northwest": 0,
+ "southwest": 0,
+ "northeast": 0,
+ "southeast": 0
+ };
+ for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) {
+ var _edge = pairInfo.eles[_i2];
+ var rs = _edge[0]._private.rscratch;
+ var _curveStyle = _edge.pstyle("curve-style").value;
+ var _edgeIsUnbundled = _curveStyle === "unbundled-bezier" || _curveStyle === "segments" || _curveStyle === "taxi";
+ var edgeIsSwapped = !src2.same(_edge.source());
+ if (!pairInfo.calculatedIntersection && src2 !== tgt2 && (pairInfo.hasBezier || pairInfo.hasUnbundled)) {
+ pairInfo.calculatedIntersection = true;
+ var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0);
+ var srcIntn = pairInfo.srcIntn = srcOutside;
+ var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0);
+ var tgtIntn = pairInfo.tgtIntn = tgtOutside;
+ var intersectionPts = pairInfo.intersectionPts = {
+ x1: srcOutside[0],
+ x2: tgtOutside[0],
+ y1: srcOutside[1],
+ y2: tgtOutside[1]
+ };
+ var posPts = pairInfo.posPts = {
+ x1: srcPos.x,
+ x2: tgtPos.x,
+ y1: srcPos.y,
+ y2: tgtPos.y
+ };
+ var dy = tgtOutside[1] - srcOutside[1];
+ var dx = tgtOutside[0] - srcOutside[0];
+ var l = Math.sqrt(dx * dx + dy * dy);
+ var vector = pairInfo.vector = {
+ x: dx,
+ y: dy
+ };
+ var vectorNorm = pairInfo.vectorNorm = {
+ x: vector.x / l,
+ y: vector.y / l
+ };
+ var vectorNormInverse = {
+ x: -vectorNorm.y,
+ y: vectorNorm.x
+ };
+ pairInfo.nodesOverlap = !number$1(l) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y);
+ pairInfo.vectorNormInverse = vectorNormInverse;
+ swappedpairInfo = {
+ nodesOverlap: pairInfo.nodesOverlap,
+ dirCounts: pairInfo.dirCounts,
+ calculatedIntersection: true,
+ hasBezier: pairInfo.hasBezier,
+ hasUnbundled: pairInfo.hasUnbundled,
+ eles: pairInfo.eles,
+ srcPos: tgtPos,
+ tgtPos: srcPos,
+ srcW: tgtW,
+ srcH: tgtH,
+ tgtW: srcW,
+ tgtH: srcH,
+ srcIntn: tgtIntn,
+ tgtIntn: srcIntn,
+ srcShape: tgtShape,
+ tgtShape: srcShape,
+ posPts: {
+ x1: posPts.x2,
+ y1: posPts.y2,
+ x2: posPts.x1,
+ y2: posPts.y1
+ },
+ intersectionPts: {
+ x1: intersectionPts.x2,
+ y1: intersectionPts.y2,
+ x2: intersectionPts.x1,
+ y2: intersectionPts.y1
+ },
+ vector: {
+ x: -vector.x,
+ y: -vector.y
+ },
+ vectorNorm: {
+ x: -vectorNorm.x,
+ y: -vectorNorm.y
+ },
+ vectorNormInverse: {
+ x: -vectorNormInverse.x,
+ y: -vectorNormInverse.y
+ }
+ };
+ }
+ var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo;
+ rs.nodesOverlap = passedPairInfo.nodesOverlap;
+ rs.srcIntn = passedPairInfo.srcIntn;
+ rs.tgtIntn = passedPairInfo.tgtIntn;
+ if (hasCompounds && (src2.isParent() || src2.isChild() || tgt2.isParent() || tgt2.isChild()) && (src2.parents().anySame(tgt2) || tgt2.parents().anySame(src2) || src2.same(tgt2) && src2.isParent())) {
+ _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);
+ } else if (src2 === tgt2) {
+ _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);
+ } else if (_curveStyle === "segments") {
+ _this.findSegmentsPoints(_edge, passedPairInfo);
+ } else if (_curveStyle === "taxi") {
+ _this.findTaxiPoints(_edge, passedPairInfo);
+ } else if (_curveStyle === "straight" || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) {
+ _this.findStraightEdgePoints(_edge);
+ } else {
+ _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped);
+ }
+ _this.findEndpoints(_edge);
+ _this.tryToCorrectInvalidPoints(_edge, passedPairInfo);
+ _this.checkForInvalidEdgeWarning(_edge);
+ _this.storeAllpts(_edge);
+ _this.storeEdgeProjections(_edge);
+ _this.calculateArrowAngles(_edge);
+ _this.recalculateEdgeLabelProjections(_edge);
+ _this.calculateLabelAngles(_edge);
+ }
+ };
+ for (var p2 = 0; p2 < pairIds.length; p2++) {
+ _loop(p2);
+ }
+ this.findHaystackPoints(haystackEdges);
+ };
+ function getPts(pts2) {
+ var retPts = [];
+ if (pts2 == null) {
+ return;
+ }
+ for (var i2 = 0; i2 < pts2.length; i2 += 2) {
+ var x = pts2[i2];
+ var y = pts2[i2 + 1];
+ retPts.push({
+ x,
+ y
+ });
+ }
+ return retPts;
+ }
+ BRp$c.getSegmentPoints = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ var type = rs.edgeType;
+ if (type === "segments") {
+ this.recalculateRenderedStyle(edge);
+ return getPts(rs.segpts);
+ }
+ };
+ BRp$c.getControlPoints = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ var type = rs.edgeType;
+ if (type === "bezier" || type === "multibezier" || type === "self" || type === "compound") {
+ this.recalculateRenderedStyle(edge);
+ return getPts(rs.ctrlpts);
+ }
+ };
+ BRp$c.getEdgeMidpoint = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ this.recalculateRenderedStyle(edge);
+ return {
+ x: rs.midX,
+ y: rs.midY
+ };
+ };
+ var BRp$b = {};
+ BRp$b.manualEndptToPx = function(node, prop) {
+ var r = this;
+ var npos = node.position();
+ var w = node.outerWidth();
+ var h = node.outerHeight();
+ if (prop.value.length === 2) {
+ var p2 = [prop.pfValue[0], prop.pfValue[1]];
+ if (prop.units[0] === "%") {
+ p2[0] = p2[0] * w;
+ }
+ if (prop.units[1] === "%") {
+ p2[1] = p2[1] * h;
+ }
+ p2[0] += npos.x;
+ p2[1] += npos.y;
+ return p2;
+ } else {
+ var angle = prop.pfValue[0];
+ angle = -Math.PI / 2 + angle;
+ var l = 2 * Math.max(w, h);
+ var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l];
+ return r.nodeShapes[this.getNodeShape(node)].intersectLine(npos.x, npos.y, w, h, _p[0], _p[1], 0);
+ }
+ };
+ BRp$b.findEndpoints = function(edge) {
+ var r = this;
+ var intersect;
+ var source = edge.source()[0];
+ var target = edge.target()[0];
+ var srcPos = source.position();
+ var tgtPos = target.position();
+ var tgtArShape = edge.pstyle("target-arrow-shape").value;
+ var srcArShape = edge.pstyle("source-arrow-shape").value;
+ var tgtDist = edge.pstyle("target-distance-from-node").pfValue;
+ var srcDist = edge.pstyle("source-distance-from-node").pfValue;
+ var curveStyle = edge.pstyle("curve-style").value;
+ var rs = edge._private.rscratch;
+ var et = rs.edgeType;
+ var taxi = curveStyle === "taxi";
+ var self2 = et === "self" || et === "compound";
+ var bezier = et === "bezier" || et === "multibezier" || self2;
+ var multi = et !== "bezier";
+ var lines = et === "straight" || et === "segments";
+ var segments = et === "segments";
+ var hasEndpts = bezier || multi || lines;
+ var overrideEndpts = self2 || taxi;
+ var srcManEndpt = edge.pstyle("source-endpoint");
+ var srcManEndptVal = overrideEndpts ? "outside-to-node" : srcManEndpt.value;
+ var tgtManEndpt = edge.pstyle("target-endpoint");
+ var tgtManEndptVal = overrideEndpts ? "outside-to-node" : tgtManEndpt.value;
+ rs.srcManEndpt = srcManEndpt;
+ rs.tgtManEndpt = tgtManEndpt;
+ var p1;
+ var p2;
+ var p1_i;
+ var p2_i;
+ if (bezier) {
+ var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]];
+ var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart;
+ p1 = cpEnd;
+ p2 = cpStart;
+ } else if (lines) {
+ var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2);
+ var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2);
+ p1 = tgtArrowFromPt;
+ p2 = srcArrowFromPt;
+ }
+ if (tgtManEndptVal === "inside-to-node") {
+ intersect = [tgtPos.x, tgtPos.y];
+ } else if (tgtManEndpt.units) {
+ intersect = this.manualEndptToPx(target, tgtManEndpt);
+ } else if (tgtManEndptVal === "outside-to-line") {
+ intersect = rs.tgtIntn;
+ } else {
+ if (tgtManEndptVal === "outside-to-node" || tgtManEndptVal === "outside-to-node-or-label") {
+ p1_i = p1;
+ } else if (tgtManEndptVal === "outside-to-line" || tgtManEndptVal === "outside-to-line-or-label") {
+ p1_i = [srcPos.x, srcPos.y];
+ }
+ intersect = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0);
+ if (tgtManEndptVal === "outside-to-node-or-label" || tgtManEndptVal === "outside-to-line-or-label") {
+ var trs = target._private.rscratch;
+ var lw = trs.labelWidth;
+ var lh = trs.labelHeight;
+ var lx = trs.labelX;
+ var ly = trs.labelY;
+ var lw2 = lw / 2;
+ var lh2 = lh / 2;
+ var va = target.pstyle("text-valign").value;
+ if (va === "top") {
+ ly -= lh2;
+ } else if (va === "bottom") {
+ ly += lh2;
+ }
+ var ha = target.pstyle("text-halign").value;
+ if (ha === "left") {
+ lx -= lw2;
+ } else if (ha === "right") {
+ lx += lw2;
+ }
+ var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y);
+ if (labelIntersect.length > 0) {
+ var refPt = srcPos;
+ var intSqdist = sqdist(refPt, array2point(intersect));
+ var labIntSqdist = sqdist(refPt, array2point(labelIntersect));
+ var minSqDist = intSqdist;
+ if (labIntSqdist < intSqdist) {
+ intersect = labelIntersect;
+ minSqDist = labIntSqdist;
+ }
+ if (labelIntersect.length > 2) {
+ var labInt2SqDist = sqdist(refPt, {
+ x: labelIntersect[2],
+ y: labelIntersect[3]
+ });
+ if (labInt2SqDist < minSqDist) {
+ intersect = [labelIntersect[2], labelIntersect[3]];
+ }
+ }
+ }
+ }
+ }
+ var arrowEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist);
+ var edgeEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist);
+ rs.endX = edgeEnd[0];
+ rs.endY = edgeEnd[1];
+ rs.arrowEndX = arrowEnd[0];
+ rs.arrowEndY = arrowEnd[1];
+ if (srcManEndptVal === "inside-to-node") {
+ intersect = [srcPos.x, srcPos.y];
+ } else if (srcManEndpt.units) {
+ intersect = this.manualEndptToPx(source, srcManEndpt);
+ } else if (srcManEndptVal === "outside-to-line") {
+ intersect = rs.srcIntn;
+ } else {
+ if (srcManEndptVal === "outside-to-node" || srcManEndptVal === "outside-to-node-or-label") {
+ p2_i = p2;
+ } else if (srcManEndptVal === "outside-to-line" || srcManEndptVal === "outside-to-line-or-label") {
+ p2_i = [tgtPos.x, tgtPos.y];
+ }
+ intersect = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0);
+ if (srcManEndptVal === "outside-to-node-or-label" || srcManEndptVal === "outside-to-line-or-label") {
+ var srs = source._private.rscratch;
+ var _lw = srs.labelWidth;
+ var _lh = srs.labelHeight;
+ var _lx = srs.labelX;
+ var _ly = srs.labelY;
+ var _lw2 = _lw / 2;
+ var _lh2 = _lh / 2;
+ var _va = source.pstyle("text-valign").value;
+ if (_va === "top") {
+ _ly -= _lh2;
+ } else if (_va === "bottom") {
+ _ly += _lh2;
+ }
+ var _ha = source.pstyle("text-halign").value;
+ if (_ha === "left") {
+ _lx -= _lw2;
+ } else if (_ha === "right") {
+ _lx += _lw2;
+ }
+ var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y);
+ if (_labelIntersect.length > 0) {
+ var _refPt = tgtPos;
+ var _intSqdist = sqdist(_refPt, array2point(intersect));
+ var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect));
+ var _minSqDist = _intSqdist;
+ if (_labIntSqdist < _intSqdist) {
+ intersect = [_labelIntersect[0], _labelIntersect[1]];
+ _minSqDist = _labIntSqdist;
+ }
+ if (_labelIntersect.length > 2) {
+ var _labInt2SqDist = sqdist(_refPt, {
+ x: _labelIntersect[2],
+ y: _labelIntersect[3]
+ });
+ if (_labInt2SqDist < _minSqDist) {
+ intersect = [_labelIntersect[2], _labelIntersect[3]];
+ }
+ }
+ }
+ }
+ }
+ var arrowStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist);
+ var edgeStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist);
+ rs.startX = edgeStart[0];
+ rs.startY = edgeStart[1];
+ rs.arrowStartX = arrowStart[0];
+ rs.arrowStartY = arrowStart[1];
+ if (hasEndpts) {
+ if (!number$1(rs.startX) || !number$1(rs.startY) || !number$1(rs.endX) || !number$1(rs.endY)) {
+ rs.badLine = true;
+ } else {
+ rs.badLine = false;
+ }
+ }
+ };
+ BRp$b.getSourceEndpoint = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ this.recalculateRenderedStyle(edge);
+ switch (rs.edgeType) {
+ case "haystack":
+ return {
+ x: rs.haystackPts[0],
+ y: rs.haystackPts[1]
+ };
+ default:
+ return {
+ x: rs.arrowStartX,
+ y: rs.arrowStartY
+ };
+ }
+ };
+ BRp$b.getTargetEndpoint = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ this.recalculateRenderedStyle(edge);
+ switch (rs.edgeType) {
+ case "haystack":
+ return {
+ x: rs.haystackPts[2],
+ y: rs.haystackPts[3]
+ };
+ default:
+ return {
+ x: rs.arrowEndX,
+ y: rs.arrowEndY
+ };
+ }
+ };
+ var BRp$a = {};
+ function pushBezierPts(r, edge, pts2) {
+ var qbezierAt$1 = function qbezierAt$12(p1, p22, p3, t) {
+ return qbezierAt(p1, p22, p3, t);
+ };
+ var _p = edge._private;
+ var bpts = _p.rstyle.bezierPts;
+ for (var i2 = 0; i2 < r.bezierProjPcts.length; i2++) {
+ var p2 = r.bezierProjPcts[i2];
+ bpts.push({
+ x: qbezierAt$1(pts2[0], pts2[2], pts2[4], p2),
+ y: qbezierAt$1(pts2[1], pts2[3], pts2[5], p2)
+ });
+ }
+ }
+ BRp$a.storeEdgeProjections = function(edge) {
+ var _p = edge._private;
+ var rs = _p.rscratch;
+ var et = rs.edgeType;
+ _p.rstyle.bezierPts = null;
+ _p.rstyle.linePts = null;
+ _p.rstyle.haystackPts = null;
+ if (et === "multibezier" || et === "bezier" || et === "self" || et === "compound") {
+ _p.rstyle.bezierPts = [];
+ for (var i2 = 0; i2 + 5 < rs.allpts.length; i2 += 4) {
+ pushBezierPts(this, edge, rs.allpts.slice(i2, i2 + 6));
+ }
+ } else if (et === "segments") {
+ var lpts = _p.rstyle.linePts = [];
+ for (var i2 = 0; i2 + 1 < rs.allpts.length; i2 += 2) {
+ lpts.push({
+ x: rs.allpts[i2],
+ y: rs.allpts[i2 + 1]
+ });
+ }
+ } else if (et === "haystack") {
+ var hpts = rs.haystackPts;
+ _p.rstyle.haystackPts = [{
+ x: hpts[0],
+ y: hpts[1]
+ }, {
+ x: hpts[2],
+ y: hpts[3]
+ }];
+ }
+ _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth;
+ };
+ BRp$a.recalculateEdgeProjections = function(edges) {
+ this.findEdgeControlPoints(edges);
+ };
+ var BRp$9 = {};
+ BRp$9.recalculateNodeLabelProjection = function(node) {
+ var content = node.pstyle("label").strValue;
+ if (emptyString(content)) {
+ return;
+ }
+ var textX, textY;
+ var _p = node._private;
+ var nodeWidth = node.width();
+ var nodeHeight = node.height();
+ var padding = node.padding();
+ var nodePos = node.position();
+ var textHalign = node.pstyle("text-halign").strValue;
+ var textValign = node.pstyle("text-valign").strValue;
+ var rs = _p.rscratch;
+ var rstyle = _p.rstyle;
+ switch (textHalign) {
+ case "left":
+ textX = nodePos.x - nodeWidth / 2 - padding;
+ break;
+ case "right":
+ textX = nodePos.x + nodeWidth / 2 + padding;
+ break;
+ default:
+ textX = nodePos.x;
+ }
+ switch (textValign) {
+ case "top":
+ textY = nodePos.y - nodeHeight / 2 - padding;
+ break;
+ case "bottom":
+ textY = nodePos.y + nodeHeight / 2 + padding;
+ break;
+ default:
+ textY = nodePos.y;
+ }
+ rs.labelX = textX;
+ rs.labelY = textY;
+ rstyle.labelX = textX;
+ rstyle.labelY = textY;
+ this.calculateLabelAngles(node);
+ this.applyLabelDimensions(node);
+ };
+ var lineAngleFromDelta = function lineAngleFromDelta2(dx, dy) {
+ var angle = Math.atan(dy / dx);
+ if (dx === 0 && angle < 0) {
+ angle = angle * -1;
+ }
+ return angle;
+ };
+ var lineAngle = function lineAngle2(p0, p1) {
+ var dx = p1.x - p0.x;
+ var dy = p1.y - p0.y;
+ return lineAngleFromDelta(dx, dy);
+ };
+ var bezierAngle = function bezierAngle2(p0, p1, p2, t) {
+ var t0 = bound(0, t - 1e-3, 1);
+ var t1 = bound(0, t + 1e-3, 1);
+ var lp0 = qbezierPtAt(p0, p1, p2, t0);
+ var lp1 = qbezierPtAt(p0, p1, p2, t1);
+ return lineAngle(lp0, lp1);
+ };
+ BRp$9.recalculateEdgeLabelProjections = function(edge) {
+ var p2;
+ var _p = edge._private;
+ var rs = _p.rscratch;
+ var r = this;
+ var content = {
+ mid: edge.pstyle("label").strValue,
+ source: edge.pstyle("source-label").strValue,
+ target: edge.pstyle("target-label").strValue
+ };
+ if (content.mid || content.source || content.target)
+ ;
+ else {
+ return;
+ }
+ p2 = {
+ x: rs.midX,
+ y: rs.midY
+ };
+ var setRs = function setRs2(propName, prefix, value) {
+ setPrefixedProperty(_p.rscratch, propName, prefix, value);
+ setPrefixedProperty(_p.rstyle, propName, prefix, value);
+ };
+ setRs("labelX", null, p2.x);
+ setRs("labelY", null, p2.y);
+ var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY);
+ setRs("labelAutoAngle", null, midAngle);
+ var createControlPointInfo = function createControlPointInfo2() {
+ if (createControlPointInfo2.cache) {
+ return createControlPointInfo2.cache;
+ }
+ var ctrlpts = [];
+ for (var i2 = 0; i2 + 5 < rs.allpts.length; i2 += 4) {
+ var p0 = {
+ x: rs.allpts[i2],
+ y: rs.allpts[i2 + 1]
+ };
+ var p1 = {
+ x: rs.allpts[i2 + 2],
+ y: rs.allpts[i2 + 3]
+ };
+ var p22 = {
+ x: rs.allpts[i2 + 4],
+ y: rs.allpts[i2 + 5]
+ };
+ ctrlpts.push({
+ p0,
+ p1,
+ p2: p22,
+ startDist: 0,
+ length: 0,
+ segments: []
+ });
+ }
+ var bpts = _p.rstyle.bezierPts;
+ var nProjs = r.bezierProjPcts.length;
+ function addSegment(cp2, p02, p12, t0, t1) {
+ var length = dist(p02, p12);
+ var prevSegment = cp2.segments[cp2.segments.length - 1];
+ var segment = {
+ p0: p02,
+ p1: p12,
+ t0,
+ t1,
+ startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0,
+ length
+ };
+ cp2.segments.push(segment);
+ cp2.length += length;
+ }
+ for (var _i = 0; _i < ctrlpts.length; _i++) {
+ var cp = ctrlpts[_i];
+ var prevCp = ctrlpts[_i - 1];
+ if (prevCp) {
+ cp.startDist = prevCp.startDist + prevCp.length;
+ }
+ addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r.bezierProjPcts[0]);
+ for (var j = 0; j < nProjs - 1; j++) {
+ addSegment(cp, bpts[_i * nProjs + j], bpts[_i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]);
+ }
+ addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1);
+ }
+ return createControlPointInfo2.cache = ctrlpts;
+ };
+ var calculateEndProjection = function calculateEndProjection2(prefix) {
+ var angle;
+ var isSrc = prefix === "source";
+ if (!content[prefix]) {
+ return;
+ }
+ var offset = edge.pstyle(prefix + "-text-offset").pfValue;
+ switch (rs.edgeType) {
+ case "self":
+ case "compound":
+ case "bezier":
+ case "multibezier": {
+ var cps = createControlPointInfo();
+ var selected;
+ var startDist = 0;
+ var totalDist = 0;
+ for (var i2 = 0; i2 < cps.length; i2++) {
+ var _cp = cps[isSrc ? i2 : cps.length - 1 - i2];
+ for (var j = 0; j < _cp.segments.length; j++) {
+ var _seg = _cp.segments[isSrc ? j : _cp.segments.length - 1 - j];
+ var lastSeg = i2 === cps.length - 1 && j === _cp.segments.length - 1;
+ startDist = totalDist;
+ totalDist += _seg.length;
+ if (totalDist >= offset || lastSeg) {
+ selected = {
+ cp: _cp,
+ segment: _seg
+ };
+ break;
+ }
+ }
+ if (selected) {
+ break;
+ }
+ }
+ var cp = selected.cp;
+ var seg = selected.segment;
+ var tSegment = (offset - startDist) / seg.length;
+ var segDt = seg.t1 - seg.t0;
+ var t = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment;
+ t = bound(0, t, 1);
+ p2 = qbezierPtAt(cp.p0, cp.p1, cp.p2, t);
+ angle = bezierAngle(cp.p0, cp.p1, cp.p2, t);
+ break;
+ }
+ case "straight":
+ case "segments":
+ case "haystack": {
+ var d = 0, di, d0;
+ var p0, p1;
+ var l = rs.allpts.length;
+ for (var _i2 = 0; _i2 + 3 < l; _i2 += 2) {
+ if (isSrc) {
+ p0 = {
+ x: rs.allpts[_i2],
+ y: rs.allpts[_i2 + 1]
+ };
+ p1 = {
+ x: rs.allpts[_i2 + 2],
+ y: rs.allpts[_i2 + 3]
+ };
+ } else {
+ p0 = {
+ x: rs.allpts[l - 2 - _i2],
+ y: rs.allpts[l - 1 - _i2]
+ };
+ p1 = {
+ x: rs.allpts[l - 4 - _i2],
+ y: rs.allpts[l - 3 - _i2]
+ };
+ }
+ di = dist(p0, p1);
+ d0 = d;
+ d += di;
+ if (d >= offset) {
+ break;
+ }
+ }
+ var pD = offset - d0;
+ var _t = pD / di;
+ _t = bound(0, _t, 1);
+ p2 = lineAt(p0, p1, _t);
+ angle = lineAngle(p0, p1);
+ break;
+ }
+ }
+ setRs("labelX", prefix, p2.x);
+ setRs("labelY", prefix, p2.y);
+ setRs("labelAutoAngle", prefix, angle);
+ };
+ calculateEndProjection("source");
+ calculateEndProjection("target");
+ this.applyLabelDimensions(edge);
+ };
+ BRp$9.applyLabelDimensions = function(ele) {
+ this.applyPrefixedLabelDimensions(ele);
+ if (ele.isEdge()) {
+ this.applyPrefixedLabelDimensions(ele, "source");
+ this.applyPrefixedLabelDimensions(ele, "target");
+ }
+ };
+ BRp$9.applyPrefixedLabelDimensions = function(ele, prefix) {
+ var _p = ele._private;
+ var text = this.getLabelText(ele, prefix);
+ var labelDims = this.calculateLabelDimensions(ele, text);
+ var lineHeight = ele.pstyle("line-height").pfValue;
+ var textWrap = ele.pstyle("text-wrap").strValue;
+ var lines = getPrefixedProperty(_p.rscratch, "labelWrapCachedLines", prefix) || [];
+ var numLines = textWrap !== "wrap" ? 1 : Math.max(lines.length, 1);
+ var normPerLineHeight = labelDims.height / numLines;
+ var labelLineHeight = normPerLineHeight * lineHeight;
+ var width = labelDims.width;
+ var height = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight;
+ setPrefixedProperty(_p.rstyle, "labelWidth", prefix, width);
+ setPrefixedProperty(_p.rscratch, "labelWidth", prefix, width);
+ setPrefixedProperty(_p.rstyle, "labelHeight", prefix, height);
+ setPrefixedProperty(_p.rscratch, "labelHeight", prefix, height);
+ setPrefixedProperty(_p.rscratch, "labelLineHeight", prefix, labelLineHeight);
+ };
+ BRp$9.getLabelText = function(ele, prefix) {
+ var _p = ele._private;
+ var pfd = prefix ? prefix + "-" : "";
+ var text = ele.pstyle(pfd + "label").strValue;
+ var textTransform = ele.pstyle("text-transform").value;
+ var rscratch = function rscratch2(propName, value) {
+ if (value) {
+ setPrefixedProperty(_p.rscratch, propName, prefix, value);
+ return value;
+ } else {
+ return getPrefixedProperty(_p.rscratch, propName, prefix);
+ }
+ };
+ if (!text) {
+ return "";
+ }
+ if (textTransform == "none")
+ ;
+ else if (textTransform == "uppercase") {
+ text = text.toUpperCase();
+ } else if (textTransform == "lowercase") {
+ text = text.toLowerCase();
+ }
+ var wrapStyle = ele.pstyle("text-wrap").value;
+ if (wrapStyle === "wrap") {
+ var labelKey = rscratch("labelKey");
+ if (labelKey != null && rscratch("labelWrapKey") === labelKey) {
+ return rscratch("labelWrapCachedText");
+ }
+ var zwsp = "";
+ var lines = text.split("\n");
+ var maxW = ele.pstyle("text-max-width").pfValue;
+ var overflow = ele.pstyle("text-overflow-wrap").value;
+ var overflowAny = overflow === "anywhere";
+ var wrappedLines = [];
+ var wordsRegex = /[\s\u200b]+/;
+ var wordSeparator = overflowAny ? "" : " ";
+ for (var l = 0; l < lines.length; l++) {
+ var line = lines[l];
+ var lineDims = this.calculateLabelDimensions(ele, line);
+ var lineW = lineDims.width;
+ if (overflowAny) {
+ var processedLine = line.split("").join(zwsp);
+ line = processedLine;
+ }
+ if (lineW > maxW) {
+ var words = line.split(wordsRegex);
+ var subline = "";
+ for (var w = 0; w < words.length; w++) {
+ var word = words[w];
+ var testLine = subline.length === 0 ? word : subline + wordSeparator + word;
+ var testDims = this.calculateLabelDimensions(ele, testLine);
+ var testW = testDims.width;
+ if (testW <= maxW) {
+ subline += word + wordSeparator;
+ } else {
+ if (subline) {
+ wrappedLines.push(subline);
+ }
+ subline = word + wordSeparator;
+ }
+ }
+ if (!subline.match(/^[\s\u200b]+$/)) {
+ wrappedLines.push(subline);
+ }
+ } else {
+ wrappedLines.push(line);
+ }
+ }
+ rscratch("labelWrapCachedLines", wrappedLines);
+ text = rscratch("labelWrapCachedText", wrappedLines.join("\n"));
+ rscratch("labelWrapKey", labelKey);
+ } else if (wrapStyle === "ellipsis") {
+ var _maxW = ele.pstyle("text-max-width").pfValue;
+ var ellipsized = "";
+ var ellipsis = "…";
+ var incLastCh = false;
+ if (this.calculateLabelDimensions(ele, text).width < _maxW) {
+ return text;
+ }
+ for (var i2 = 0; i2 < text.length; i2++) {
+ var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text[i2] + ellipsis).width;
+ if (widthWithNextCh > _maxW) {
+ break;
+ }
+ ellipsized += text[i2];
+ if (i2 === text.length - 1) {
+ incLastCh = true;
+ }
+ }
+ if (!incLastCh) {
+ ellipsized += ellipsis;
+ }
+ return ellipsized;
+ }
+ return text;
+ };
+ BRp$9.getLabelJustification = function(ele) {
+ var justification = ele.pstyle("text-justification").strValue;
+ var textHalign = ele.pstyle("text-halign").strValue;
+ if (justification === "auto") {
+ if (ele.isNode()) {
+ switch (textHalign) {
+ case "left":
+ return "right";
+ case "right":
+ return "left";
+ default:
+ return "center";
+ }
+ } else {
+ return "center";
+ }
+ } else {
+ return justification;
+ }
+ };
+ BRp$9.calculateLabelDimensions = function(ele, text) {
+ var r = this;
+ var cacheKey = hashString(text, ele._private.labelDimsKey);
+ var cache2 = r.labelDimCache || (r.labelDimCache = []);
+ var existingVal = cache2[cacheKey];
+ if (existingVal != null) {
+ return existingVal;
+ }
+ var padding = 0;
+ var fStyle = ele.pstyle("font-style").strValue;
+ var size = ele.pstyle("font-size").pfValue;
+ var family = ele.pstyle("font-family").strValue;
+ var weight = ele.pstyle("font-weight").strValue;
+ var canvas = this.labelCalcCanvas;
+ var c2d = this.labelCalcCanvasContext;
+ if (!canvas) {
+ canvas = this.labelCalcCanvas = document.createElement("canvas");
+ c2d = this.labelCalcCanvasContext = canvas.getContext("2d");
+ var ds = canvas.style;
+ ds.position = "absolute";
+ ds.left = "-9999px";
+ ds.top = "-9999px";
+ ds.zIndex = "-1";
+ ds.visibility = "hidden";
+ ds.pointerEvents = "none";
+ }
+ c2d.font = "".concat(fStyle, " ").concat(weight, " ").concat(size, "px ").concat(family);
+ var width = 0;
+ var height = 0;
+ var lines = text.split("\n");
+ for (var i2 = 0; i2 < lines.length; i2++) {
+ var line = lines[i2];
+ var metrics = c2d.measureText(line);
+ var w = Math.ceil(metrics.width);
+ var h = size;
+ width = Math.max(w, width);
+ height += h;
+ }
+ width += padding;
+ height += padding;
+ return cache2[cacheKey] = {
+ width,
+ height
+ };
+ };
+ BRp$9.calculateLabelAngle = function(ele, prefix) {
+ var _p = ele._private;
+ var rs = _p.rscratch;
+ var isEdge = ele.isEdge();
+ var prefixDash = prefix ? prefix + "-" : "";
+ var rot = ele.pstyle(prefixDash + "text-rotation");
+ var rotStr = rot.strValue;
+ if (rotStr === "none") {
+ return 0;
+ } else if (isEdge && rotStr === "autorotate") {
+ return rs.labelAutoAngle;
+ } else if (rotStr === "autorotate") {
+ return 0;
+ } else {
+ return rot.pfValue;
+ }
+ };
+ BRp$9.calculateLabelAngles = function(ele) {
+ var r = this;
+ var isEdge = ele.isEdge();
+ var _p = ele._private;
+ var rs = _p.rscratch;
+ rs.labelAngle = r.calculateLabelAngle(ele);
+ if (isEdge) {
+ rs.sourceLabelAngle = r.calculateLabelAngle(ele, "source");
+ rs.targetLabelAngle = r.calculateLabelAngle(ele, "target");
+ }
+ };
+ var BRp$8 = {};
+ var TOO_SMALL_CUT_RECT = 28;
+ var warnedCutRect = false;
+ BRp$8.getNodeShape = function(node) {
+ var r = this;
+ var shape = node.pstyle("shape").value;
+ if (shape === "cutrectangle" && (node.width() < TOO_SMALL_CUT_RECT || node.height() < TOO_SMALL_CUT_RECT)) {
+ if (!warnedCutRect) {
+ warn("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead");
+ warnedCutRect = true;
+ }
+ return "rectangle";
+ }
+ if (node.isParent()) {
+ if (shape === "rectangle" || shape === "roundrectangle" || shape === "round-rectangle" || shape === "cutrectangle" || shape === "cut-rectangle" || shape === "barrel") {
+ return shape;
+ } else {
+ return "rectangle";
+ }
+ }
+ if (shape === "polygon") {
+ var points = node.pstyle("shape-polygon-points").value;
+ return r.nodeShapes.makePolygon(points).name;
+ }
+ return shape;
+ };
+ var BRp$7 = {};
+ BRp$7.registerCalculationListeners = function() {
+ var cy = this.cy;
+ var elesToUpdate = cy.collection();
+ var r = this;
+ var enqueue = function enqueue2(eles) {
+ var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ elesToUpdate.merge(eles);
+ if (dirtyStyleCaches) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var _p = ele._private;
+ var rstyle = _p.rstyle;
+ rstyle.clean = false;
+ rstyle.cleanConnected = false;
+ }
+ }
+ };
+ r.binder(cy).on("bounds.* dirty.*", function onDirtyBounds(e) {
+ var ele = e.target;
+ enqueue(ele);
+ }).on("style.* background.*", function onDirtyStyle(e) {
+ var ele = e.target;
+ enqueue(ele, false);
+ });
+ var updateEleCalcs = function updateEleCalcs2(willDraw) {
+ if (willDraw) {
+ var fns = r.onUpdateEleCalcsFns;
+ elesToUpdate.cleanStyle();
+ for (var i2 = 0; i2 < elesToUpdate.length; i2++) {
+ var ele = elesToUpdate[i2];
+ var rstyle = ele._private.rstyle;
+ if (ele.isNode() && !rstyle.cleanConnected) {
+ enqueue(ele.connectedEdges());
+ rstyle.cleanConnected = true;
+ }
+ }
+ if (fns) {
+ for (var _i = 0; _i < fns.length; _i++) {
+ var fn2 = fns[_i];
+ fn2(willDraw, elesToUpdate);
+ }
+ }
+ r.recalculateRenderedStyle(elesToUpdate);
+ elesToUpdate = cy.collection();
+ }
+ };
+ r.flushRenderedStyleQueue = function() {
+ updateEleCalcs(true);
+ };
+ r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs);
+ };
+ BRp$7.onUpdateEleCalcs = function(fn2) {
+ var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || [];
+ fns.push(fn2);
+ };
+ BRp$7.recalculateRenderedStyle = function(eles, useCache) {
+ var isCleanConnected = function isCleanConnected2(ele2) {
+ return ele2._private.rstyle.cleanConnected;
+ };
+ var edges = [];
+ var nodes2 = [];
+ if (this.destroyed) {
+ return;
+ }
+ if (useCache === void 0) {
+ useCache = true;
+ }
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var _p = ele._private;
+ var rstyle = _p.rstyle;
+ if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) {
+ rstyle.clean = false;
+ }
+ if (useCache && rstyle.clean || ele.removed()) {
+ continue;
+ }
+ if (ele.pstyle("display").value === "none") {
+ continue;
+ }
+ if (_p.group === "nodes") {
+ nodes2.push(ele);
+ } else {
+ edges.push(ele);
+ }
+ rstyle.clean = true;
+ }
+ for (var _i2 = 0; _i2 < nodes2.length; _i2++) {
+ var _ele = nodes2[_i2];
+ var _p2 = _ele._private;
+ var _rstyle = _p2.rstyle;
+ var pos = _ele.position();
+ this.recalculateNodeLabelProjection(_ele);
+ _rstyle.nodeX = pos.x;
+ _rstyle.nodeY = pos.y;
+ _rstyle.nodeW = _ele.pstyle("width").pfValue;
+ _rstyle.nodeH = _ele.pstyle("height").pfValue;
+ }
+ this.recalculateEdgeProjections(edges);
+ for (var _i3 = 0; _i3 < edges.length; _i3++) {
+ var _ele2 = edges[_i3];
+ var _p3 = _ele2._private;
+ var _rstyle2 = _p3.rstyle;
+ var rs = _p3.rscratch;
+ _rstyle2.srcX = rs.arrowStartX;
+ _rstyle2.srcY = rs.arrowStartY;
+ _rstyle2.tgtX = rs.arrowEndX;
+ _rstyle2.tgtY = rs.arrowEndY;
+ _rstyle2.midX = rs.midX;
+ _rstyle2.midY = rs.midY;
+ _rstyle2.labelAngle = rs.labelAngle;
+ _rstyle2.sourceLabelAngle = rs.sourceLabelAngle;
+ _rstyle2.targetLabelAngle = rs.targetLabelAngle;
+ }
+ };
+ var BRp$6 = {};
+ BRp$6.updateCachedGrabbedEles = function() {
+ var eles = this.cachedZSortedEles;
+ if (!eles) {
+ return;
+ }
+ eles.drag = [];
+ eles.nondrag = [];
+ var grabTargets = [];
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var rs = ele._private.rscratch;
+ if (ele.grabbed() && !ele.isParent()) {
+ grabTargets.push(ele);
+ } else if (rs.inDragLayer) {
+ eles.drag.push(ele);
+ } else {
+ eles.nondrag.push(ele);
+ }
+ }
+ for (var i2 = 0; i2 < grabTargets.length; i2++) {
+ var ele = grabTargets[i2];
+ eles.drag.push(ele);
+ }
+ };
+ BRp$6.invalidateCachedZSortedEles = function() {
+ this.cachedZSortedEles = null;
+ };
+ BRp$6.getCachedZSortedEles = function(forceRecalc) {
+ if (forceRecalc || !this.cachedZSortedEles) {
+ var eles = this.cy.mutableElements().toArray();
+ eles.sort(zIndexSort);
+ eles.interactive = eles.filter(function(ele) {
+ return ele.interactive();
+ });
+ this.cachedZSortedEles = eles;
+ this.updateCachedGrabbedEles();
+ } else {
+ eles = this.cachedZSortedEles;
+ }
+ return eles;
+ };
+ var BRp$5 = {};
+ [BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function(props) {
+ extend(BRp$5, props);
+ });
+ var BRp$4 = {};
+ BRp$4.getCachedImage = function(url, crossOrigin, onLoad) {
+ var r = this;
+ var imageCache = r.imageCache = r.imageCache || {};
+ var cache2 = imageCache[url];
+ if (cache2) {
+ if (!cache2.image.complete) {
+ cache2.image.addEventListener("load", onLoad);
+ }
+ return cache2.image;
+ } else {
+ cache2 = imageCache[url] = imageCache[url] || {};
+ var image = cache2.image = new Image();
+ image.addEventListener("load", onLoad);
+ image.addEventListener("error", function() {
+ image.error = true;
+ });
+ var dataUriPrefix = "data:";
+ var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix;
+ if (!isDataUri) {
+ image.crossOrigin = crossOrigin;
+ }
+ image.src = url;
+ return image;
+ }
+ };
+ var BRp$3 = {};
+ BRp$3.registerBinding = function(target, event2, handler, useCapture) {
+ var args = Array.prototype.slice.apply(arguments, [1]);
+ var b = this.binder(target);
+ return b.on.apply(b, args);
+ };
+ BRp$3.binder = function(tgt) {
+ var r = this;
+ var tgtIsDom = tgt === window || tgt === document || tgt === document.body || domElement(tgt);
+ if (r.supportsPassiveEvents == null) {
+ var supportsPassive = false;
+ try {
+ var opts = Object.defineProperty({}, "passive", {
+ get: function get2() {
+ supportsPassive = true;
+ return true;
+ }
+ });
+ window.addEventListener("test", null, opts);
+ } catch (err) {
+ }
+ r.supportsPassiveEvents = supportsPassive;
+ }
+ var on = function on2(event2, handler, useCapture) {
+ var args = Array.prototype.slice.call(arguments);
+ if (tgtIsDom && r.supportsPassiveEvents) {
+ args[2] = {
+ capture: useCapture != null ? useCapture : false,
+ passive: false,
+ once: false
+ };
+ }
+ r.bindings.push({
+ target: tgt,
+ args
+ });
+ (tgt.addEventListener || tgt.on).apply(tgt, args);
+ return this;
+ };
+ return {
+ on,
+ addEventListener: on,
+ addListener: on,
+ bind: on
+ };
+ };
+ BRp$3.nodeIsDraggable = function(node) {
+ return node && node.isNode() && !node.locked() && node.grabbable();
+ };
+ BRp$3.nodeIsGrabbable = function(node) {
+ return this.nodeIsDraggable(node) && node.interactive();
+ };
+ BRp$3.load = function() {
+ var r = this;
+ var isSelected = function isSelected2(ele) {
+ return ele.selected();
+ };
+ var triggerEvents = function triggerEvents2(target, names, e, position2) {
+ if (target == null) {
+ target = r.cy;
+ }
+ for (var i2 = 0; i2 < names.length; i2++) {
+ var name2 = names[i2];
+ target.emit({
+ originalEvent: e,
+ type: name2,
+ position: position2
+ });
+ }
+ };
+ var isMultSelKeyDown = function isMultSelKeyDown2(e) {
+ return e.shiftKey || e.metaKey || e.ctrlKey;
+ };
+ var allowPanningPassthrough = function allowPanningPassthrough2(down, downs) {
+ var allowPassthrough = true;
+ if (r.cy.hasCompoundNodes() && down && down.pannable()) {
+ for (var i2 = 0; downs && i2 < downs.length; i2++) {
+ var down = downs[i2];
+ if (down.isNode() && down.isParent() && !down.pannable()) {
+ allowPassthrough = false;
+ break;
+ }
+ }
+ } else {
+ allowPassthrough = true;
+ }
+ return allowPassthrough;
+ };
+ var setGrabbed = function setGrabbed2(ele) {
+ ele[0]._private.grabbed = true;
+ };
+ var setFreed = function setFreed2(ele) {
+ ele[0]._private.grabbed = false;
+ };
+ var setInDragLayer = function setInDragLayer2(ele) {
+ ele[0]._private.rscratch.inDragLayer = true;
+ };
+ var setOutDragLayer = function setOutDragLayer2(ele) {
+ ele[0]._private.rscratch.inDragLayer = false;
+ };
+ var setGrabTarget = function setGrabTarget2(ele) {
+ ele[0]._private.rscratch.isGrabTarget = true;
+ };
+ var removeGrabTarget = function removeGrabTarget2(ele) {
+ ele[0]._private.rscratch.isGrabTarget = false;
+ };
+ var addToDragList = function addToDragList2(ele, opts) {
+ var list = opts.addToList;
+ var listHasEle = list.has(ele);
+ if (!listHasEle && ele.grabbable() && !ele.locked()) {
+ list.merge(ele);
+ setGrabbed(ele);
+ }
+ };
+ var addDescendantsToDrag = function addDescendantsToDrag2(node, opts) {
+ if (!node.cy().hasCompoundNodes()) {
+ return;
+ }
+ if (opts.inDragLayer == null && opts.addToList == null) {
+ return;
+ }
+ var innerNodes = node.descendants();
+ if (opts.inDragLayer) {
+ innerNodes.forEach(setInDragLayer);
+ innerNodes.connectedEdges().forEach(setInDragLayer);
+ }
+ if (opts.addToList) {
+ addToDragList(innerNodes, opts);
+ }
+ };
+ var addNodesToDrag = function addNodesToDrag2(nodes2, opts) {
+ opts = opts || {};
+ var hasCompoundNodes = nodes2.cy().hasCompoundNodes();
+ if (opts.inDragLayer) {
+ nodes2.forEach(setInDragLayer);
+ nodes2.neighborhood().stdFilter(function(ele) {
+ return !hasCompoundNodes || ele.isEdge();
+ }).forEach(setInDragLayer);
+ }
+ if (opts.addToList) {
+ nodes2.forEach(function(ele) {
+ addToDragList(ele, opts);
+ });
+ }
+ addDescendantsToDrag(nodes2, opts);
+ updateAncestorsInDragLayer(nodes2, {
+ inDragLayer: opts.inDragLayer
+ });
+ r.updateCachedGrabbedEles();
+ };
+ var addNodeToDrag = addNodesToDrag;
+ var freeDraggedElements = function freeDraggedElements2(grabbedEles) {
+ if (!grabbedEles) {
+ return;
+ }
+ r.getCachedZSortedEles().forEach(function(ele) {
+ setFreed(ele);
+ setOutDragLayer(ele);
+ removeGrabTarget(ele);
+ });
+ r.updateCachedGrabbedEles();
+ };
+ var updateAncestorsInDragLayer = function updateAncestorsInDragLayer2(node, opts) {
+ if (opts.inDragLayer == null && opts.addToList == null) {
+ return;
+ }
+ if (!node.cy().hasCompoundNodes()) {
+ return;
+ }
+ var parent = node.ancestors().orphans();
+ if (parent.same(node)) {
+ return;
+ }
+ var nodes2 = parent.descendants().spawnSelf().merge(parent).unmerge(node).unmerge(node.descendants());
+ var edges = nodes2.connectedEdges();
+ if (opts.inDragLayer) {
+ edges.forEach(setInDragLayer);
+ nodes2.forEach(setInDragLayer);
+ }
+ if (opts.addToList) {
+ nodes2.forEach(function(ele) {
+ addToDragList(ele, opts);
+ });
+ }
+ };
+ var blurActiveDomElement = function blurActiveDomElement2() {
+ if (document.activeElement != null && document.activeElement.blur != null) {
+ document.activeElement.blur();
+ }
+ };
+ var haveMutationsApi = typeof MutationObserver !== "undefined";
+ var haveResizeObserverApi = typeof ResizeObserver !== "undefined";
+ if (haveMutationsApi) {
+ r.removeObserver = new MutationObserver(function(mutns) {
+ for (var i2 = 0; i2 < mutns.length; i2++) {
+ var mutn = mutns[i2];
+ var rNodes = mutn.removedNodes;
+ if (rNodes) {
+ for (var j = 0; j < rNodes.length; j++) {
+ var rNode = rNodes[j];
+ if (rNode === r.container) {
+ r.destroy();
+ break;
+ }
+ }
+ }
+ }
+ });
+ if (r.container.parentNode) {
+ r.removeObserver.observe(r.container.parentNode, {
+ childList: true
+ });
+ }
+ } else {
+ r.registerBinding(r.container, "DOMNodeRemoved", function(e) {
+ r.destroy();
+ });
+ }
+ var onResize = debounce_1(function() {
+ r.cy.resize();
+ }, 100);
+ if (haveMutationsApi) {
+ r.styleObserver = new MutationObserver(onResize);
+ r.styleObserver.observe(r.container, {
+ attributes: true
+ });
+ }
+ r.registerBinding(window, "resize", onResize);
+ if (haveResizeObserverApi) {
+ r.resizeObserver = new ResizeObserver(onResize);
+ r.resizeObserver.observe(r.container);
+ }
+ var forEachUp = function forEachUp2(domEle, fn2) {
+ while (domEle != null) {
+ fn2(domEle);
+ domEle = domEle.parentNode;
+ }
+ };
+ var invalidateCoords = function invalidateCoords2() {
+ r.invalidateContainerClientCoordsCache();
+ };
+ forEachUp(r.container, function(domEle) {
+ r.registerBinding(domEle, "transitionend", invalidateCoords);
+ r.registerBinding(domEle, "animationend", invalidateCoords);
+ r.registerBinding(domEle, "scroll", invalidateCoords);
+ });
+ r.registerBinding(r.container, "contextmenu", function(e) {
+ e.preventDefault();
+ });
+ var inBoxSelection = function inBoxSelection2() {
+ return r.selection[4] !== 0;
+ };
+ var eventInContainer = function eventInContainer2(e) {
+ var containerPageCoords = r.findContainerClientCoords();
+ var x = containerPageCoords[0];
+ var y = containerPageCoords[1];
+ var width = containerPageCoords[2];
+ var height = containerPageCoords[3];
+ var positions = e.touches ? e.touches : [e];
+ var atLeastOnePosInside = false;
+ for (var i2 = 0; i2 < positions.length; i2++) {
+ var p2 = positions[i2];
+ if (x <= p2.clientX && p2.clientX <= x + width && y <= p2.clientY && p2.clientY <= y + height) {
+ atLeastOnePosInside = true;
+ break;
+ }
+ }
+ if (!atLeastOnePosInside) {
+ return false;
+ }
+ var container = r.container;
+ var target = e.target;
+ var tParent = target.parentNode;
+ var containerIsTarget = false;
+ while (tParent) {
+ if (tParent === container) {
+ containerIsTarget = true;
+ break;
+ }
+ tParent = tParent.parentNode;
+ }
+ if (!containerIsTarget) {
+ return false;
+ }
+ return true;
+ };
+ r.registerBinding(r.container, "mousedown", function mousedownHandler(e) {
+ if (!eventInContainer(e)) {
+ return;
+ }
+ e.preventDefault();
+ blurActiveDomElement();
+ r.hoverData.capture = true;
+ r.hoverData.which = e.which;
+ var cy = r.cy;
+ var gpos = [e.clientX, e.clientY];
+ var pos = r.projectIntoViewport(gpos[0], gpos[1]);
+ var select2 = r.selection;
+ var nears = r.findNearestElements(pos[0], pos[1], true, false);
+ var near = nears[0];
+ var draggedElements = r.dragData.possibleDragElements;
+ r.hoverData.mdownPos = pos;
+ r.hoverData.mdownGPos = gpos;
+ var checkForTaphold = function checkForTaphold2() {
+ r.hoverData.tapholdCancelled = false;
+ clearTimeout(r.hoverData.tapholdTimeout);
+ r.hoverData.tapholdTimeout = setTimeout(function() {
+ if (r.hoverData.tapholdCancelled) {
+ return;
+ } else {
+ var ele = r.hoverData.down;
+ if (ele) {
+ ele.emit({
+ originalEvent: e,
+ type: "taphold",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ } else {
+ cy.emit({
+ originalEvent: e,
+ type: "taphold",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }
+ }
+ }, r.tapholdDuration);
+ };
+ if (e.which == 3) {
+ r.hoverData.cxtStarted = true;
+ var cxtEvt = {
+ originalEvent: e,
+ type: "cxttapstart",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ };
+ if (near) {
+ near.activate();
+ near.emit(cxtEvt);
+ r.hoverData.down = near;
+ } else {
+ cy.emit(cxtEvt);
+ }
+ r.hoverData.downTime = new Date().getTime();
+ r.hoverData.cxtDragged = false;
+ } else if (e.which == 1) {
+ if (near) {
+ near.activate();
+ }
+ {
+ if (near != null) {
+ if (r.nodeIsGrabbable(near)) {
+ var makeEvent = function makeEvent2(type) {
+ return {
+ originalEvent: e,
+ type,
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ };
+ };
+ var triggerGrab = function triggerGrab2(ele) {
+ ele.emit(makeEvent("grab"));
+ };
+ setGrabTarget(near);
+ if (!near.selected()) {
+ draggedElements = r.dragData.possibleDragElements = cy.collection();
+ addNodeToDrag(near, {
+ addToList: draggedElements
+ });
+ near.emit(makeEvent("grabon")).emit(makeEvent("grab"));
+ } else {
+ draggedElements = r.dragData.possibleDragElements = cy.collection();
+ var selectedNodes = cy.$(function(ele) {
+ return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele);
+ });
+ addNodesToDrag(selectedNodes, {
+ addToList: draggedElements
+ });
+ near.emit(makeEvent("grabon"));
+ selectedNodes.forEach(triggerGrab);
+ }
+ r.redrawHint("eles", true);
+ r.redrawHint("drag", true);
+ }
+ }
+ r.hoverData.down = near;
+ r.hoverData.downs = nears;
+ r.hoverData.downTime = new Date().getTime();
+ }
+ triggerEvents(near, ["mousedown", "tapstart", "vmousedown"], e, {
+ x: pos[0],
+ y: pos[1]
+ });
+ if (near == null) {
+ select2[4] = 1;
+ r.data.bgActivePosistion = {
+ x: pos[0],
+ y: pos[1]
+ };
+ r.redrawHint("select", true);
+ r.redraw();
+ } else if (near.pannable()) {
+ select2[4] = 1;
+ }
+ checkForTaphold();
+ }
+ select2[0] = select2[2] = pos[0];
+ select2[1] = select2[3] = pos[1];
+ }, false);
+ r.registerBinding(window, "mousemove", function mousemoveHandler(e) {
+ var capture = r.hoverData.capture;
+ if (!capture && !eventInContainer(e)) {
+ return;
+ }
+ var preventDefault = false;
+ var cy = r.cy;
+ var zoom = cy.zoom();
+ var gpos = [e.clientX, e.clientY];
+ var pos = r.projectIntoViewport(gpos[0], gpos[1]);
+ var mdownPos = r.hoverData.mdownPos;
+ var mdownGPos = r.hoverData.mdownGPos;
+ var select2 = r.selection;
+ var near = null;
+ if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) {
+ near = r.findNearestElement(pos[0], pos[1], true, false);
+ }
+ var last = r.hoverData.last;
+ var down = r.hoverData.down;
+ var disp = [pos[0] - select2[2], pos[1] - select2[3]];
+ var draggedElements = r.dragData.possibleDragElements;
+ var isOverThresholdDrag;
+ if (mdownGPos) {
+ var dx = gpos[0] - mdownGPos[0];
+ var dx2 = dx * dx;
+ var dy = gpos[1] - mdownGPos[1];
+ var dy2 = dy * dy;
+ var dist2 = dx2 + dy2;
+ r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist2 >= r.desktopTapThreshold2;
+ }
+ var multSelKeyDown = isMultSelKeyDown(e);
+ if (isOverThresholdDrag) {
+ r.hoverData.tapholdCancelled = true;
+ }
+ var updateDragDelta = function updateDragDelta2() {
+ var dragDelta2 = r.hoverData.dragDelta = r.hoverData.dragDelta || [];
+ if (dragDelta2.length === 0) {
+ dragDelta2.push(disp[0]);
+ dragDelta2.push(disp[1]);
+ } else {
+ dragDelta2[0] += disp[0];
+ dragDelta2[1] += disp[1];
+ }
+ };
+ preventDefault = true;
+ triggerEvents(near, ["mousemove", "vmousemove", "tapdrag"], e, {
+ x: pos[0],
+ y: pos[1]
+ });
+ var goIntoBoxMode = function goIntoBoxMode2() {
+ r.data.bgActivePosistion = void 0;
+ if (!r.hoverData.selecting) {
+ cy.emit({
+ originalEvent: e,
+ type: "boxstart",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }
+ select2[4] = 1;
+ r.hoverData.selecting = true;
+ r.redrawHint("select", true);
+ r.redraw();
+ };
+ if (r.hoverData.which === 3) {
+ if (isOverThresholdDrag) {
+ var cxtEvt = {
+ originalEvent: e,
+ type: "cxtdrag",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ };
+ if (down) {
+ down.emit(cxtEvt);
+ } else {
+ cy.emit(cxtEvt);
+ }
+ r.hoverData.cxtDragged = true;
+ if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) {
+ if (r.hoverData.cxtOver) {
+ r.hoverData.cxtOver.emit({
+ originalEvent: e,
+ type: "cxtdragout",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }
+ r.hoverData.cxtOver = near;
+ if (near) {
+ near.emit({
+ originalEvent: e,
+ type: "cxtdragover",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }
+ }
+ }
+ } else if (r.hoverData.dragging) {
+ preventDefault = true;
+ if (cy.panningEnabled() && cy.userPanningEnabled()) {
+ var deltaP;
+ if (r.hoverData.justStartedPan) {
+ var mdPos = r.hoverData.mdownPos;
+ deltaP = {
+ x: (pos[0] - mdPos[0]) * zoom,
+ y: (pos[1] - mdPos[1]) * zoom
+ };
+ r.hoverData.justStartedPan = false;
+ } else {
+ deltaP = {
+ x: disp[0] * zoom,
+ y: disp[1] * zoom
+ };
+ }
+ cy.panBy(deltaP);
+ cy.emit("dragpan");
+ r.hoverData.dragged = true;
+ }
+ pos = r.projectIntoViewport(e.clientX, e.clientY);
+ } else if (select2[4] == 1 && (down == null || down.pannable())) {
+ if (isOverThresholdDrag) {
+ if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) {
+ goIntoBoxMode();
+ } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) {
+ var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs);
+ if (allowPassthrough) {
+ r.hoverData.dragging = true;
+ r.hoverData.justStartedPan = true;
+ select2[4] = 0;
+ r.data.bgActivePosistion = array2point(mdownPos);
+ r.redrawHint("select", true);
+ r.redraw();
+ }
+ }
+ if (down && down.pannable() && down.active()) {
+ down.unactivate();
+ }
+ }
+ } else {
+ if (down && down.pannable() && down.active()) {
+ down.unactivate();
+ }
+ if ((!down || !down.grabbed()) && near != last) {
+ if (last) {
+ triggerEvents(last, ["mouseout", "tapdragout"], e, {
+ x: pos[0],
+ y: pos[1]
+ });
+ }
+ if (near) {
+ triggerEvents(near, ["mouseover", "tapdragover"], e, {
+ x: pos[0],
+ y: pos[1]
+ });
+ }
+ r.hoverData.last = near;
+ }
+ if (down) {
+ if (isOverThresholdDrag) {
+ if (cy.boxSelectionEnabled() && multSelKeyDown) {
+ if (down && down.grabbed()) {
+ freeDraggedElements(draggedElements);
+ down.emit("freeon");
+ draggedElements.emit("free");
+ if (r.dragData.didDrag) {
+ down.emit("dragfreeon");
+ draggedElements.emit("dragfree");
+ }
+ }
+ goIntoBoxMode();
+ } else if (down && down.grabbed() && r.nodeIsDraggable(down)) {
+ var justStartedDrag = !r.dragData.didDrag;
+ if (justStartedDrag) {
+ r.redrawHint("eles", true);
+ }
+ r.dragData.didDrag = true;
+ if (!r.hoverData.draggingEles) {
+ addNodesToDrag(draggedElements, {
+ inDragLayer: true
+ });
+ }
+ var totalShift = {
+ x: 0,
+ y: 0
+ };
+ if (number$1(disp[0]) && number$1(disp[1])) {
+ totalShift.x += disp[0];
+ totalShift.y += disp[1];
+ if (justStartedDrag) {
+ var dragDelta = r.hoverData.dragDelta;
+ if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {
+ totalShift.x += dragDelta[0];
+ totalShift.y += dragDelta[1];
+ }
+ }
+ }
+ r.hoverData.draggingEles = true;
+ draggedElements.silentShift(totalShift).emit("position drag");
+ r.redrawHint("drag", true);
+ r.redraw();
+ }
+ } else {
+ updateDragDelta();
+ }
+ }
+ preventDefault = true;
+ }
+ select2[2] = pos[0];
+ select2[3] = pos[1];
+ if (preventDefault) {
+ if (e.stopPropagation)
+ e.stopPropagation();
+ if (e.preventDefault)
+ e.preventDefault();
+ return false;
+ }
+ }, false);
+ var clickTimeout, didDoubleClick, prevClickTimeStamp;
+ r.registerBinding(window, "mouseup", function mouseupHandler(e) {
+ var capture = r.hoverData.capture;
+ if (!capture) {
+ return;
+ }
+ r.hoverData.capture = false;
+ var cy = r.cy;
+ var pos = r.projectIntoViewport(e.clientX, e.clientY);
+ var select2 = r.selection;
+ var near = r.findNearestElement(pos[0], pos[1], true, false);
+ var draggedElements = r.dragData.possibleDragElements;
+ var down = r.hoverData.down;
+ var multSelKeyDown = isMultSelKeyDown(e);
+ if (r.data.bgActivePosistion) {
+ r.redrawHint("select", true);
+ r.redraw();
+ }
+ r.hoverData.tapholdCancelled = true;
+ r.data.bgActivePosistion = void 0;
+ if (down) {
+ down.unactivate();
+ }
+ if (r.hoverData.which === 3) {
+ var cxtEvt = {
+ originalEvent: e,
+ type: "cxttapend",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ };
+ if (down) {
+ down.emit(cxtEvt);
+ } else {
+ cy.emit(cxtEvt);
+ }
+ if (!r.hoverData.cxtDragged) {
+ var cxtTap = {
+ originalEvent: e,
+ type: "cxttap",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ };
+ if (down) {
+ down.emit(cxtTap);
+ } else {
+ cy.emit(cxtTap);
+ }
+ }
+ r.hoverData.cxtDragged = false;
+ r.hoverData.which = null;
+ } else if (r.hoverData.which === 1) {
+ triggerEvents(near, ["mouseup", "tapend", "vmouseup"], e, {
+ x: pos[0],
+ y: pos[1]
+ });
+ if (!r.dragData.didDrag && // didn't move a node around
+ !r.hoverData.dragged && // didn't pan
+ !r.hoverData.selecting && // not box selection
+ !r.hoverData.isOverThresholdDrag) {
+ triggerEvents(down, ["click", "tap", "vclick"], e, {
+ x: pos[0],
+ y: pos[1]
+ });
+ didDoubleClick = false;
+ if (e.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) {
+ clickTimeout && clearTimeout(clickTimeout);
+ didDoubleClick = true;
+ prevClickTimeStamp = null;
+ triggerEvents(down, ["dblclick", "dbltap", "vdblclick"], e, {
+ x: pos[0],
+ y: pos[1]
+ });
+ } else {
+ clickTimeout = setTimeout(function() {
+ if (didDoubleClick)
+ return;
+ triggerEvents(down, ["oneclick", "onetap", "voneclick"], e, {
+ x: pos[0],
+ y: pos[1]
+ });
+ }, cy.multiClickDebounceTime());
+ prevClickTimeStamp = e.timeStamp;
+ }
+ }
+ if (down == null && !r.dragData.didDrag && !r.hoverData.selecting && !r.hoverData.dragged && !isMultSelKeyDown(e)) {
+ cy.$(isSelected).unselect(["tapunselect"]);
+ if (draggedElements.length > 0) {
+ r.redrawHint("eles", true);
+ }
+ r.dragData.possibleDragElements = draggedElements = cy.collection();
+ }
+ if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) {
+ if (near != null && near._private.selectable) {
+ if (r.hoverData.dragging)
+ ;
+ else if (cy.selectionType() === "additive" || multSelKeyDown) {
+ if (near.selected()) {
+ near.unselect(["tapunselect"]);
+ } else {
+ near.select(["tapselect"]);
+ }
+ } else {
+ if (!multSelKeyDown) {
+ cy.$(isSelected).unmerge(near).unselect(["tapunselect"]);
+ near.select(["tapselect"]);
+ }
+ }
+ r.redrawHint("eles", true);
+ }
+ }
+ if (r.hoverData.selecting) {
+ var box = cy.collection(r.getAllInBox(select2[0], select2[1], select2[2], select2[3]));
+ r.redrawHint("select", true);
+ if (box.length > 0) {
+ r.redrawHint("eles", true);
+ }
+ cy.emit({
+ type: "boxend",
+ originalEvent: e,
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ var eleWouldBeSelected = function eleWouldBeSelected2(ele) {
+ return ele.selectable() && !ele.selected();
+ };
+ if (cy.selectionType() === "additive") {
+ box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
+ } else {
+ if (!multSelKeyDown) {
+ cy.$(isSelected).unmerge(box).unselect();
+ }
+ box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
+ }
+ r.redraw();
+ }
+ if (r.hoverData.dragging) {
+ r.hoverData.dragging = false;
+ r.redrawHint("select", true);
+ r.redrawHint("eles", true);
+ r.redraw();
+ }
+ if (!select2[4]) {
+ r.redrawHint("drag", true);
+ r.redrawHint("eles", true);
+ var downWasGrabbed = down && down.grabbed();
+ freeDraggedElements(draggedElements);
+ if (downWasGrabbed) {
+ down.emit("freeon");
+ draggedElements.emit("free");
+ if (r.dragData.didDrag) {
+ down.emit("dragfreeon");
+ draggedElements.emit("dragfree");
+ }
+ }
+ }
+ }
+ select2[4] = 0;
+ r.hoverData.down = null;
+ r.hoverData.cxtStarted = false;
+ r.hoverData.draggingEles = false;
+ r.hoverData.selecting = false;
+ r.hoverData.isOverThresholdDrag = false;
+ r.dragData.didDrag = false;
+ r.hoverData.dragged = false;
+ r.hoverData.dragDelta = [];
+ r.hoverData.mdownPos = null;
+ r.hoverData.mdownGPos = null;
+ }, false);
+ var wheelHandler = function wheelHandler2(e) {
+ if (r.scrollingPage) {
+ return;
+ }
+ var cy = r.cy;
+ var zoom = cy.zoom();
+ var pan = cy.pan();
+ var pos = r.projectIntoViewport(e.clientX, e.clientY);
+ var rpos = [pos[0] * zoom + pan.x, pos[1] * zoom + pan.y];
+ if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) {
+ e.preventDefault();
+ return;
+ }
+ if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) {
+ e.preventDefault();
+ r.data.wheelZooming = true;
+ clearTimeout(r.data.wheelTimeout);
+ r.data.wheelTimeout = setTimeout(function() {
+ r.data.wheelZooming = false;
+ r.redrawHint("eles", true);
+ r.redraw();
+ }, 150);
+ var diff;
+ if (e.deltaY != null) {
+ diff = e.deltaY / -250;
+ } else if (e.wheelDeltaY != null) {
+ diff = e.wheelDeltaY / 1e3;
+ } else {
+ diff = e.wheelDelta / 1e3;
+ }
+ diff = diff * r.wheelSensitivity;
+ var needsWheelFix = e.deltaMode === 1;
+ if (needsWheelFix) {
+ diff *= 33;
+ }
+ var newZoom = cy.zoom() * Math.pow(10, diff);
+ if (e.type === "gesturechange") {
+ newZoom = r.gestureStartZoom * e.scale;
+ }
+ cy.zoom({
+ level: newZoom,
+ renderedPosition: {
+ x: rpos[0],
+ y: rpos[1]
+ }
+ });
+ cy.emit(e.type === "gesturechange" ? "pinchzoom" : "scrollzoom");
+ }
+ };
+ r.registerBinding(r.container, "wheel", wheelHandler, true);
+ r.registerBinding(window, "scroll", function scrollHandler(e) {
+ r.scrollingPage = true;
+ clearTimeout(r.scrollingPageTimeout);
+ r.scrollingPageTimeout = setTimeout(function() {
+ r.scrollingPage = false;
+ }, 250);
+ }, true);
+ r.registerBinding(r.container, "gesturestart", function gestureStartHandler(e) {
+ r.gestureStartZoom = r.cy.zoom();
+ if (!r.hasTouchStarted) {
+ e.preventDefault();
+ }
+ }, true);
+ r.registerBinding(r.container, "gesturechange", function(e) {
+ if (!r.hasTouchStarted) {
+ wheelHandler(e);
+ }
+ }, true);
+ r.registerBinding(r.container, "mouseout", function mouseOutHandler(e) {
+ var pos = r.projectIntoViewport(e.clientX, e.clientY);
+ r.cy.emit({
+ originalEvent: e,
+ type: "mouseout",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }, false);
+ r.registerBinding(r.container, "mouseover", function mouseOverHandler(e) {
+ var pos = r.projectIntoViewport(e.clientX, e.clientY);
+ r.cy.emit({
+ originalEvent: e,
+ type: "mouseover",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }, false);
+ var f1x1, f1y1, f2x1, f2y1;
+ var distance1, distance1Sq;
+ var center1, modelCenter1;
+ var offsetLeft, offsetTop;
+ var containerWidth, containerHeight;
+ var twoFingersStartInside;
+ var distance = function distance2(x1, y1, x2, y2) {
+ return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
+ };
+ var distanceSq = function distanceSq2(x1, y1, x2, y2) {
+ return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);
+ };
+ var touchstartHandler;
+ r.registerBinding(r.container, "touchstart", touchstartHandler = function touchstartHandler2(e) {
+ r.hasTouchStarted = true;
+ if (!eventInContainer(e)) {
+ return;
+ }
+ blurActiveDomElement();
+ r.touchData.capture = true;
+ r.data.bgActivePosistion = void 0;
+ var cy = r.cy;
+ var now2 = r.touchData.now;
+ var earlier = r.touchData.earlier;
+ if (e.touches[0]) {
+ var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
+ now2[0] = pos[0];
+ now2[1] = pos[1];
+ }
+ if (e.touches[1]) {
+ var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
+ now2[2] = pos[0];
+ now2[3] = pos[1];
+ }
+ if (e.touches[2]) {
+ var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
+ now2[4] = pos[0];
+ now2[5] = pos[1];
+ }
+ if (e.touches[1]) {
+ r.touchData.singleTouchMoved = true;
+ freeDraggedElements(r.dragData.touchDragEles);
+ var offsets = r.findContainerClientCoords();
+ offsetLeft = offsets[0];
+ offsetTop = offsets[1];
+ containerWidth = offsets[2];
+ containerHeight = offsets[3];
+ f1x1 = e.touches[0].clientX - offsetLeft;
+ f1y1 = e.touches[0].clientY - offsetTop;
+ f2x1 = e.touches[1].clientX - offsetLeft;
+ f2y1 = e.touches[1].clientY - offsetTop;
+ twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight;
+ var pan = cy.pan();
+ var zoom = cy.zoom();
+ distance1 = distance(f1x1, f1y1, f2x1, f2y1);
+ distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1);
+ center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2];
+ modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom];
+ var cxtDistThreshold = 200;
+ var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold;
+ if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) {
+ var near1 = r.findNearestElement(now2[0], now2[1], true, true);
+ var near2 = r.findNearestElement(now2[2], now2[3], true, true);
+ if (near1 && near1.isNode()) {
+ near1.activate().emit({
+ originalEvent: e,
+ type: "cxttapstart",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ });
+ r.touchData.start = near1;
+ } else if (near2 && near2.isNode()) {
+ near2.activate().emit({
+ originalEvent: e,
+ type: "cxttapstart",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ });
+ r.touchData.start = near2;
+ } else {
+ cy.emit({
+ originalEvent: e,
+ type: "cxttapstart",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ });
+ }
+ if (r.touchData.start) {
+ r.touchData.start._private.grabbed = false;
+ }
+ r.touchData.cxt = true;
+ r.touchData.cxtDragged = false;
+ r.data.bgActivePosistion = void 0;
+ r.redraw();
+ return;
+ }
+ }
+ if (e.touches[2]) {
+ if (cy.boxSelectionEnabled()) {
+ e.preventDefault();
+ }
+ } else if (e.touches[1])
+ ;
+ else if (e.touches[0]) {
+ var nears = r.findNearestElements(now2[0], now2[1], true, true);
+ var near = nears[0];
+ if (near != null) {
+ near.activate();
+ r.touchData.start = near;
+ r.touchData.starts = nears;
+ if (r.nodeIsGrabbable(near)) {
+ var draggedEles = r.dragData.touchDragEles = cy.collection();
+ var selectedNodes = null;
+ r.redrawHint("eles", true);
+ r.redrawHint("drag", true);
+ if (near.selected()) {
+ selectedNodes = cy.$(function(ele) {
+ return ele.selected() && r.nodeIsGrabbable(ele);
+ });
+ addNodesToDrag(selectedNodes, {
+ addToList: draggedEles
+ });
+ } else {
+ addNodeToDrag(near, {
+ addToList: draggedEles
+ });
+ }
+ setGrabTarget(near);
+ var makeEvent = function makeEvent2(type) {
+ return {
+ originalEvent: e,
+ type,
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ };
+ };
+ near.emit(makeEvent("grabon"));
+ if (selectedNodes) {
+ selectedNodes.forEach(function(n) {
+ n.emit(makeEvent("grab"));
+ });
+ } else {
+ near.emit(makeEvent("grab"));
+ }
+ }
+ }
+ triggerEvents(near, ["touchstart", "tapstart", "vmousedown"], e, {
+ x: now2[0],
+ y: now2[1]
+ });
+ if (near == null) {
+ r.data.bgActivePosistion = {
+ x: pos[0],
+ y: pos[1]
+ };
+ r.redrawHint("select", true);
+ r.redraw();
+ }
+ r.touchData.singleTouchMoved = false;
+ r.touchData.singleTouchStartTime = +new Date();
+ clearTimeout(r.touchData.tapholdTimeout);
+ r.touchData.tapholdTimeout = setTimeout(function() {
+ if (r.touchData.singleTouchMoved === false && !r.pinching && !r.touchData.selecting) {
+ triggerEvents(r.touchData.start, ["taphold"], e, {
+ x: now2[0],
+ y: now2[1]
+ });
+ }
+ }, r.tapholdDuration);
+ }
+ if (e.touches.length >= 1) {
+ var sPos = r.touchData.startPosition = [];
+ for (var i2 = 0; i2 < now2.length; i2++) {
+ sPos[i2] = earlier[i2] = now2[i2];
+ }
+ var touch0 = e.touches[0];
+ r.touchData.startGPosition = [touch0.clientX, touch0.clientY];
+ }
+ }, false);
+ var touchmoveHandler;
+ r.registerBinding(window, "touchmove", touchmoveHandler = function touchmoveHandler2(e) {
+ var capture = r.touchData.capture;
+ if (!capture && !eventInContainer(e)) {
+ return;
+ }
+ var select2 = r.selection;
+ var cy = r.cy;
+ var now2 = r.touchData.now;
+ var earlier = r.touchData.earlier;
+ var zoom = cy.zoom();
+ if (e.touches[0]) {
+ var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
+ now2[0] = pos[0];
+ now2[1] = pos[1];
+ }
+ if (e.touches[1]) {
+ var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
+ now2[2] = pos[0];
+ now2[3] = pos[1];
+ }
+ if (e.touches[2]) {
+ var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
+ now2[4] = pos[0];
+ now2[5] = pos[1];
+ }
+ var startGPos = r.touchData.startGPosition;
+ var isOverThresholdDrag;
+ if (capture && e.touches[0] && startGPos) {
+ var disp = [];
+ for (var j = 0; j < now2.length; j++) {
+ disp[j] = now2[j] - earlier[j];
+ }
+ var dx = e.touches[0].clientX - startGPos[0];
+ var dx2 = dx * dx;
+ var dy = e.touches[0].clientY - startGPos[1];
+ var dy2 = dy * dy;
+ var dist2 = dx2 + dy2;
+ isOverThresholdDrag = dist2 >= r.touchTapThreshold2;
+ }
+ if (capture && r.touchData.cxt) {
+ e.preventDefault();
+ var f1x2 = e.touches[0].clientX - offsetLeft, f1y2 = e.touches[0].clientY - offsetTop;
+ var f2x2 = e.touches[1].clientX - offsetLeft, f2y2 = e.touches[1].clientY - offsetTop;
+ var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2);
+ var factorSq = distance2Sq / distance1Sq;
+ var distThreshold = 150;
+ var distThresholdSq = distThreshold * distThreshold;
+ var factorThreshold = 1.5;
+ var factorThresholdSq = factorThreshold * factorThreshold;
+ if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) {
+ r.touchData.cxt = false;
+ r.data.bgActivePosistion = void 0;
+ r.redrawHint("select", true);
+ var cxtEvt = {
+ originalEvent: e,
+ type: "cxttapend",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ };
+ if (r.touchData.start) {
+ r.touchData.start.unactivate().emit(cxtEvt);
+ r.touchData.start = null;
+ } else {
+ cy.emit(cxtEvt);
+ }
+ }
+ }
+ if (capture && r.touchData.cxt) {
+ var cxtEvt = {
+ originalEvent: e,
+ type: "cxtdrag",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ };
+ r.data.bgActivePosistion = void 0;
+ r.redrawHint("select", true);
+ if (r.touchData.start) {
+ r.touchData.start.emit(cxtEvt);
+ } else {
+ cy.emit(cxtEvt);
+ }
+ if (r.touchData.start) {
+ r.touchData.start._private.grabbed = false;
+ }
+ r.touchData.cxtDragged = true;
+ var near = r.findNearestElement(now2[0], now2[1], true, true);
+ if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) {
+ if (r.touchData.cxtOver) {
+ r.touchData.cxtOver.emit({
+ originalEvent: e,
+ type: "cxtdragout",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ });
+ }
+ r.touchData.cxtOver = near;
+ if (near) {
+ near.emit({
+ originalEvent: e,
+ type: "cxtdragover",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ });
+ }
+ }
+ } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) {
+ e.preventDefault();
+ r.data.bgActivePosistion = void 0;
+ this.lastThreeTouch = +new Date();
+ if (!r.touchData.selecting) {
+ cy.emit({
+ originalEvent: e,
+ type: "boxstart",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ });
+ }
+ r.touchData.selecting = true;
+ r.touchData.didSelect = true;
+ select2[4] = 1;
+ if (!select2 || select2.length === 0 || select2[0] === void 0) {
+ select2[0] = (now2[0] + now2[2] + now2[4]) / 3;
+ select2[1] = (now2[1] + now2[3] + now2[5]) / 3;
+ select2[2] = (now2[0] + now2[2] + now2[4]) / 3 + 1;
+ select2[3] = (now2[1] + now2[3] + now2[5]) / 3 + 1;
+ } else {
+ select2[2] = (now2[0] + now2[2] + now2[4]) / 3;
+ select2[3] = (now2[1] + now2[3] + now2[5]) / 3;
+ }
+ r.redrawHint("select", true);
+ r.redraw();
+ } else if (capture && e.touches[1] && !r.touchData.didSelect && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) {
+ e.preventDefault();
+ r.data.bgActivePosistion = void 0;
+ r.redrawHint("select", true);
+ var draggedEles = r.dragData.touchDragEles;
+ if (draggedEles) {
+ r.redrawHint("drag", true);
+ for (var i2 = 0; i2 < draggedEles.length; i2++) {
+ var de_p = draggedEles[i2]._private;
+ de_p.grabbed = false;
+ de_p.rscratch.inDragLayer = false;
+ }
+ }
+ var _start = r.touchData.start;
+ var f1x2 = e.touches[0].clientX - offsetLeft, f1y2 = e.touches[0].clientY - offsetTop;
+ var f2x2 = e.touches[1].clientX - offsetLeft, f2y2 = e.touches[1].clientY - offsetTop;
+ var distance2 = distance(f1x2, f1y2, f2x2, f2y2);
+ var factor = distance2 / distance1;
+ if (twoFingersStartInside) {
+ var df1x = f1x2 - f1x1;
+ var df1y = f1y2 - f1y1;
+ var df2x = f2x2 - f2x1;
+ var df2y = f2y2 - f2y1;
+ var tx = (df1x + df2x) / 2;
+ var ty = (df1y + df2y) / 2;
+ var zoom1 = cy.zoom();
+ var zoom2 = zoom1 * factor;
+ var pan1 = cy.pan();
+ var ctrx = modelCenter1[0] * zoom1 + pan1.x;
+ var ctry = modelCenter1[1] * zoom1 + pan1.y;
+ var pan2 = {
+ x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx,
+ y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry
+ };
+ if (_start && _start.active()) {
+ var draggedEles = r.dragData.touchDragEles;
+ freeDraggedElements(draggedEles);
+ r.redrawHint("drag", true);
+ r.redrawHint("eles", true);
+ _start.unactivate().emit("freeon");
+ draggedEles.emit("free");
+ if (r.dragData.didDrag) {
+ _start.emit("dragfreeon");
+ draggedEles.emit("dragfree");
+ }
+ }
+ cy.viewport({
+ zoom: zoom2,
+ pan: pan2,
+ cancelOnFailedZoom: true
+ });
+ cy.emit("pinchzoom");
+ distance1 = distance2;
+ f1x1 = f1x2;
+ f1y1 = f1y2;
+ f2x1 = f2x2;
+ f2y1 = f2y2;
+ r.pinching = true;
+ }
+ if (e.touches[0]) {
+ var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
+ now2[0] = pos[0];
+ now2[1] = pos[1];
+ }
+ if (e.touches[1]) {
+ var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
+ now2[2] = pos[0];
+ now2[3] = pos[1];
+ }
+ if (e.touches[2]) {
+ var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
+ now2[4] = pos[0];
+ now2[5] = pos[1];
+ }
+ } else if (e.touches[0] && !r.touchData.didSelect) {
+ var start = r.touchData.start;
+ var last = r.touchData.last;
+ var near;
+ if (!r.hoverData.draggingEles && !r.swipePanning) {
+ near = r.findNearestElement(now2[0], now2[1], true, true);
+ }
+ if (capture && start != null) {
+ e.preventDefault();
+ }
+ if (capture && start != null && r.nodeIsDraggable(start)) {
+ if (isOverThresholdDrag) {
+ var draggedEles = r.dragData.touchDragEles;
+ var justStartedDrag = !r.dragData.didDrag;
+ if (justStartedDrag) {
+ addNodesToDrag(draggedEles, {
+ inDragLayer: true
+ });
+ }
+ r.dragData.didDrag = true;
+ var totalShift = {
+ x: 0,
+ y: 0
+ };
+ if (number$1(disp[0]) && number$1(disp[1])) {
+ totalShift.x += disp[0];
+ totalShift.y += disp[1];
+ if (justStartedDrag) {
+ r.redrawHint("eles", true);
+ var dragDelta = r.touchData.dragDelta;
+ if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {
+ totalShift.x += dragDelta[0];
+ totalShift.y += dragDelta[1];
+ }
+ }
+ }
+ r.hoverData.draggingEles = true;
+ draggedEles.silentShift(totalShift).emit("position drag");
+ r.redrawHint("drag", true);
+ if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) {
+ r.redrawHint("eles", true);
+ }
+ r.redraw();
+ } else {
+ var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || [];
+ if (dragDelta.length === 0) {
+ dragDelta.push(disp[0]);
+ dragDelta.push(disp[1]);
+ } else {
+ dragDelta[0] += disp[0];
+ dragDelta[1] += disp[1];
+ }
+ }
+ }
+ {
+ triggerEvents(start || near, ["touchmove", "tapdrag", "vmousemove"], e, {
+ x: now2[0],
+ y: now2[1]
+ });
+ if ((!start || !start.grabbed()) && near != last) {
+ if (last) {
+ last.emit({
+ originalEvent: e,
+ type: "tapdragout",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ });
+ }
+ if (near) {
+ near.emit({
+ originalEvent: e,
+ type: "tapdragover",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ });
+ }
+ }
+ r.touchData.last = near;
+ }
+ if (capture) {
+ for (var i2 = 0; i2 < now2.length; i2++) {
+ if (now2[i2] && r.touchData.startPosition[i2] && isOverThresholdDrag) {
+ r.touchData.singleTouchMoved = true;
+ }
+ }
+ }
+ if (capture && (start == null || start.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) {
+ var allowPassthrough = allowPanningPassthrough(start, r.touchData.starts);
+ if (allowPassthrough) {
+ e.preventDefault();
+ if (!r.data.bgActivePosistion) {
+ r.data.bgActivePosistion = array2point(r.touchData.startPosition);
+ }
+ if (r.swipePanning) {
+ cy.panBy({
+ x: disp[0] * zoom,
+ y: disp[1] * zoom
+ });
+ cy.emit("dragpan");
+ } else if (isOverThresholdDrag) {
+ r.swipePanning = true;
+ cy.panBy({
+ x: dx * zoom,
+ y: dy * zoom
+ });
+ cy.emit("dragpan");
+ if (start) {
+ start.unactivate();
+ r.redrawHint("select", true);
+ r.touchData.start = null;
+ }
+ }
+ }
+ var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
+ now2[0] = pos[0];
+ now2[1] = pos[1];
+ }
+ }
+ for (var j = 0; j < now2.length; j++) {
+ earlier[j] = now2[j];
+ }
+ if (capture && e.touches.length > 0 && !r.hoverData.draggingEles && !r.swipePanning && r.data.bgActivePosistion != null) {
+ r.data.bgActivePosistion = void 0;
+ r.redrawHint("select", true);
+ r.redraw();
+ }
+ }, false);
+ var touchcancelHandler;
+ r.registerBinding(window, "touchcancel", touchcancelHandler = function touchcancelHandler2(e) {
+ var start = r.touchData.start;
+ r.touchData.capture = false;
+ if (start) {
+ start.unactivate();
+ }
+ });
+ var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp;
+ r.registerBinding(window, "touchend", touchendHandler = function touchendHandler2(e) {
+ var start = r.touchData.start;
+ var capture = r.touchData.capture;
+ if (capture) {
+ if (e.touches.length === 0) {
+ r.touchData.capture = false;
+ }
+ e.preventDefault();
+ } else {
+ return;
+ }
+ var select2 = r.selection;
+ r.swipePanning = false;
+ r.hoverData.draggingEles = false;
+ var cy = r.cy;
+ var zoom = cy.zoom();
+ var now2 = r.touchData.now;
+ var earlier = r.touchData.earlier;
+ if (e.touches[0]) {
+ var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
+ now2[0] = pos[0];
+ now2[1] = pos[1];
+ }
+ if (e.touches[1]) {
+ var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
+ now2[2] = pos[0];
+ now2[3] = pos[1];
+ }
+ if (e.touches[2]) {
+ var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
+ now2[4] = pos[0];
+ now2[5] = pos[1];
+ }
+ if (start) {
+ start.unactivate();
+ }
+ var ctxTapend;
+ if (r.touchData.cxt) {
+ ctxTapend = {
+ originalEvent: e,
+ type: "cxttapend",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ };
+ if (start) {
+ start.emit(ctxTapend);
+ } else {
+ cy.emit(ctxTapend);
+ }
+ if (!r.touchData.cxtDragged) {
+ var ctxTap = {
+ originalEvent: e,
+ type: "cxttap",
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ };
+ if (start) {
+ start.emit(ctxTap);
+ } else {
+ cy.emit(ctxTap);
+ }
+ }
+ if (r.touchData.start) {
+ r.touchData.start._private.grabbed = false;
+ }
+ r.touchData.cxt = false;
+ r.touchData.start = null;
+ r.redraw();
+ return;
+ }
+ if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) {
+ r.touchData.selecting = false;
+ var box = cy.collection(r.getAllInBox(select2[0], select2[1], select2[2], select2[3]));
+ select2[0] = void 0;
+ select2[1] = void 0;
+ select2[2] = void 0;
+ select2[3] = void 0;
+ select2[4] = 0;
+ r.redrawHint("select", true);
+ cy.emit({
+ type: "boxend",
+ originalEvent: e,
+ position: {
+ x: now2[0],
+ y: now2[1]
+ }
+ });
+ var eleWouldBeSelected = function eleWouldBeSelected2(ele) {
+ return ele.selectable() && !ele.selected();
+ };
+ box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
+ if (box.nonempty()) {
+ r.redrawHint("eles", true);
+ }
+ r.redraw();
+ }
+ if (start != null) {
+ start.unactivate();
+ }
+ if (e.touches[2]) {
+ r.data.bgActivePosistion = void 0;
+ r.redrawHint("select", true);
+ } else if (e.touches[1])
+ ;
+ else if (e.touches[0])
+ ;
+ else if (!e.touches[0]) {
+ r.data.bgActivePosistion = void 0;
+ r.redrawHint("select", true);
+ var draggedEles = r.dragData.touchDragEles;
+ if (start != null) {
+ var startWasGrabbed = start._private.grabbed;
+ freeDraggedElements(draggedEles);
+ r.redrawHint("drag", true);
+ r.redrawHint("eles", true);
+ if (startWasGrabbed) {
+ start.emit("freeon");
+ draggedEles.emit("free");
+ if (r.dragData.didDrag) {
+ start.emit("dragfreeon");
+ draggedEles.emit("dragfree");
+ }
+ }
+ triggerEvents(start, ["touchend", "tapend", "vmouseup", "tapdragout"], e, {
+ x: now2[0],
+ y: now2[1]
+ });
+ start.unactivate();
+ r.touchData.start = null;
+ } else {
+ var near = r.findNearestElement(now2[0], now2[1], true, true);
+ triggerEvents(near, ["touchend", "tapend", "vmouseup", "tapdragout"], e, {
+ x: now2[0],
+ y: now2[1]
+ });
+ }
+ var dx = r.touchData.startPosition[0] - now2[0];
+ var dx2 = dx * dx;
+ var dy = r.touchData.startPosition[1] - now2[1];
+ var dy2 = dy * dy;
+ var dist2 = dx2 + dy2;
+ var rdist2 = dist2 * zoom * zoom;
+ if (!r.touchData.singleTouchMoved) {
+ if (!start) {
+ cy.$(":selected").unselect(["tapunselect"]);
+ }
+ triggerEvents(start, ["tap", "vclick"], e, {
+ x: now2[0],
+ y: now2[1]
+ });
+ didDoubleTouch = false;
+ if (e.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) {
+ touchTimeout && clearTimeout(touchTimeout);
+ didDoubleTouch = true;
+ prevTouchTimeStamp = null;
+ triggerEvents(start, ["dbltap", "vdblclick"], e, {
+ x: now2[0],
+ y: now2[1]
+ });
+ } else {
+ touchTimeout = setTimeout(function() {
+ if (didDoubleTouch)
+ return;
+ triggerEvents(start, ["onetap", "voneclick"], e, {
+ x: now2[0],
+ y: now2[1]
+ });
+ }, cy.multiClickDebounceTime());
+ prevTouchTimeStamp = e.timeStamp;
+ }
+ }
+ if (start != null && !r.dragData.didDrag && start._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching) {
+ if (cy.selectionType() === "single") {
+ cy.$(isSelected).unmerge(start).unselect(["tapunselect"]);
+ start.select(["tapselect"]);
+ } else {
+ if (start.selected()) {
+ start.unselect(["tapunselect"]);
+ } else {
+ start.select(["tapselect"]);
+ }
+ }
+ r.redrawHint("eles", true);
+ }
+ r.touchData.singleTouchMoved = true;
+ }
+ for (var j = 0; j < now2.length; j++) {
+ earlier[j] = now2[j];
+ }
+ r.dragData.didDrag = false;
+ if (e.touches.length === 0) {
+ r.touchData.dragDelta = [];
+ r.touchData.startPosition = null;
+ r.touchData.startGPosition = null;
+ r.touchData.didSelect = false;
+ }
+ if (e.touches.length < 2) {
+ if (e.touches.length === 1) {
+ r.touchData.startGPosition = [e.touches[0].clientX, e.touches[0].clientY];
+ }
+ r.pinching = false;
+ r.redrawHint("eles", true);
+ r.redraw();
+ }
+ }, false);
+ if (typeof TouchEvent === "undefined") {
+ var pointers = [];
+ var makeTouch = function makeTouch2(e) {
+ return {
+ clientX: e.clientX,
+ clientY: e.clientY,
+ force: 1,
+ identifier: e.pointerId,
+ pageX: e.pageX,
+ pageY: e.pageY,
+ radiusX: e.width / 2,
+ radiusY: e.height / 2,
+ screenX: e.screenX,
+ screenY: e.screenY,
+ target: e.target
+ };
+ };
+ var makePointer = function makePointer2(e) {
+ return {
+ event: e,
+ touch: makeTouch(e)
+ };
+ };
+ var addPointer = function addPointer2(e) {
+ pointers.push(makePointer(e));
+ };
+ var removePointer = function removePointer2(e) {
+ for (var i2 = 0; i2 < pointers.length; i2++) {
+ var p2 = pointers[i2];
+ if (p2.event.pointerId === e.pointerId) {
+ pointers.splice(i2, 1);
+ return;
+ }
+ }
+ };
+ var updatePointer = function updatePointer2(e) {
+ var p2 = pointers.filter(function(p3) {
+ return p3.event.pointerId === e.pointerId;
+ })[0];
+ p2.event = e;
+ p2.touch = makeTouch(e);
+ };
+ var addTouchesToEvent = function addTouchesToEvent2(e) {
+ e.touches = pointers.map(function(p2) {
+ return p2.touch;
+ });
+ };
+ var pointerIsMouse = function pointerIsMouse2(e) {
+ return e.pointerType === "mouse" || e.pointerType === 4;
+ };
+ r.registerBinding(r.container, "pointerdown", function(e) {
+ if (pointerIsMouse(e)) {
+ return;
+ }
+ e.preventDefault();
+ addPointer(e);
+ addTouchesToEvent(e);
+ touchstartHandler(e);
+ });
+ r.registerBinding(r.container, "pointerup", function(e) {
+ if (pointerIsMouse(e)) {
+ return;
+ }
+ removePointer(e);
+ addTouchesToEvent(e);
+ touchendHandler(e);
+ });
+ r.registerBinding(r.container, "pointercancel", function(e) {
+ if (pointerIsMouse(e)) {
+ return;
+ }
+ removePointer(e);
+ addTouchesToEvent(e);
+ touchcancelHandler(e);
+ });
+ r.registerBinding(r.container, "pointermove", function(e) {
+ if (pointerIsMouse(e)) {
+ return;
+ }
+ e.preventDefault();
+ updatePointer(e);
+ addTouchesToEvent(e);
+ touchmoveHandler(e);
+ });
+ }
+ };
+ var BRp$2 = {};
+ BRp$2.generatePolygon = function(name2, points) {
+ return this.nodeShapes[name2] = {
+ renderer: this,
+ name: name2,
+ points,
+ draw: function draw2(context, centerX, centerY, width, height) {
+ this.renderer.nodeShapeImpl("polygon", context, centerX, centerY, width, height, this.points);
+ },
+ intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {
+ return polygonIntersectLine(x, y, this.points, nodeX, nodeY, width / 2, height / 2, padding);
+ },
+ checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {
+ return pointInsidePolygon(x, y, this.points, centerX, centerY, width, height, [0, -1], padding);
+ }
+ };
+ };
+ BRp$2.generateEllipse = function() {
+ return this.nodeShapes["ellipse"] = {
+ renderer: this,
+ name: "ellipse",
+ draw: function draw2(context, centerX, centerY, width, height) {
+ this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);
+ },
+ intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {
+ return intersectLineEllipse(x, y, nodeX, nodeY, width / 2 + padding, height / 2 + padding);
+ },
+ checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {
+ return checkInEllipse(x, y, width, height, centerX, centerY, padding);
+ }
+ };
+ };
+ BRp$2.generateRoundPolygon = function(name2, points) {
+ var allPoints = new Array(points.length * 2);
+ for (var i2 = 0; i2 < points.length / 2; i2++) {
+ var sourceIndex = i2 * 2;
+ var destIndex = void 0;
+ if (i2 < points.length / 2 - 1) {
+ destIndex = (i2 + 1) * 2;
+ } else {
+ destIndex = 0;
+ }
+ allPoints[i2 * 4] = points[sourceIndex];
+ allPoints[i2 * 4 + 1] = points[sourceIndex + 1];
+ var xDest = points[destIndex] - points[sourceIndex];
+ var yDest = points[destIndex + 1] - points[sourceIndex + 1];
+ var norm = Math.sqrt(xDest * xDest + yDest * yDest);
+ allPoints[i2 * 4 + 2] = xDest / norm;
+ allPoints[i2 * 4 + 3] = yDest / norm;
+ }
+ return this.nodeShapes[name2] = {
+ renderer: this,
+ name: name2,
+ points: allPoints,
+ draw: function draw2(context, centerX, centerY, width, height) {
+ this.renderer.nodeShapeImpl("round-polygon", context, centerX, centerY, width, height, this.points);
+ },
+ intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {
+ return roundPolygonIntersectLine(x, y, this.points, nodeX, nodeY, width, height);
+ },
+ checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {
+ return pointInsideRoundPolygon(x, y, this.points, centerX, centerY, width, height);
+ }
+ };
+ };
+ BRp$2.generateRoundRectangle = function() {
+ return this.nodeShapes["round-rectangle"] = this.nodeShapes["roundrectangle"] = {
+ renderer: this,
+ name: "round-rectangle",
+ points: generateUnitNgonPointsFitToSquare(4, 0),
+ draw: function draw2(context, centerX, centerY, width, height) {
+ this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);
+ },
+ intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {
+ return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding);
+ },
+ checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {
+ var cornerRadius = getRoundRectangleRadius(width, height);
+ var diam = cornerRadius * 2;
+ if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) {
+ return true;
+ }
+ if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) {
+ return true;
+ }
+ if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY - height / 2 + cornerRadius, padding)) {
+ return true;
+ }
+ if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY - height / 2 + cornerRadius, padding)) {
+ return true;
+ }
+ if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) {
+ return true;
+ }
+ if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) {
+ return true;
+ }
+ return false;
+ }
+ };
+ };
+ BRp$2.generateCutRectangle = function() {
+ return this.nodeShapes["cut-rectangle"] = this.nodeShapes["cutrectangle"] = {
+ renderer: this,
+ name: "cut-rectangle",
+ cornerLength: getCutRectangleCornerLength(),
+ points: generateUnitNgonPointsFitToSquare(4, 0),
+ draw: function draw2(context, centerX, centerY, width, height) {
+ this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);
+ },
+ generateCutTrianglePts: function generateCutTrianglePts(width, height, centerX, centerY) {
+ var cl = this.cornerLength;
+ var hh = height / 2;
+ var hw = width / 2;
+ var xBegin = centerX - hw;
+ var xEnd = centerX + hw;
+ var yBegin = centerY - hh;
+ var yEnd = centerY + hh;
+ return {
+ topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl],
+ topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl],
+ bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl],
+ bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl]
+ };
+ },
+ intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {
+ var cPts = this.generateCutTrianglePts(width + 2 * padding, height + 2 * padding, nodeX, nodeY);
+ var pts2 = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]);
+ return polygonIntersectLine(x, y, pts2, nodeX, nodeY);
+ },
+ checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {
+ if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * this.cornerLength, [0, -1], padding)) {
+ return true;
+ }
+ if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * this.cornerLength, height, [0, -1], padding)) {
+ return true;
+ }
+ var cutTrianglePts = this.generateCutTrianglePts(width, height, centerX, centerY);
+ return pointInsidePolygonPoints(x, y, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x, y, cutTrianglePts.topRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomLeft);
+ }
+ };
+ };
+ BRp$2.generateBarrel = function() {
+ return this.nodeShapes["barrel"] = {
+ renderer: this,
+ name: "barrel",
+ points: generateUnitNgonPointsFitToSquare(4, 0),
+ draw: function draw2(context, centerX, centerY, width, height) {
+ this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);
+ },
+ intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {
+ var t0 = 0.15;
+ var t1 = 0.5;
+ var t2 = 0.85;
+ var bPts = this.generateBarrelBezierPts(width + 2 * padding, height + 2 * padding, nodeX, nodeY);
+ var approximateBarrelCurvePts = function approximateBarrelCurvePts2(pts3) {
+ var m0 = qbezierPtAt({
+ x: pts3[0],
+ y: pts3[1]
+ }, {
+ x: pts3[2],
+ y: pts3[3]
+ }, {
+ x: pts3[4],
+ y: pts3[5]
+ }, t0);
+ var m1 = qbezierPtAt({
+ x: pts3[0],
+ y: pts3[1]
+ }, {
+ x: pts3[2],
+ y: pts3[3]
+ }, {
+ x: pts3[4],
+ y: pts3[5]
+ }, t1);
+ var m2 = qbezierPtAt({
+ x: pts3[0],
+ y: pts3[1]
+ }, {
+ x: pts3[2],
+ y: pts3[3]
+ }, {
+ x: pts3[4],
+ y: pts3[5]
+ }, t2);
+ return [pts3[0], pts3[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts3[4], pts3[5]];
+ };
+ var pts2 = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft));
+ return polygonIntersectLine(x, y, pts2, nodeX, nodeY);
+ },
+ generateBarrelBezierPts: function generateBarrelBezierPts(width, height, centerX, centerY) {
+ var hh = height / 2;
+ var hw = width / 2;
+ var xBegin = centerX - hw;
+ var xEnd = centerX + hw;
+ var yBegin = centerY - hh;
+ var yEnd = centerY + hh;
+ var curveConstants = getBarrelCurveConstants(width, height);
+ var hOffset = curveConstants.heightOffset;
+ var wOffset = curveConstants.widthOffset;
+ var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width;
+ var pts2 = {
+ topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin],
+ topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset],
+ bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd],
+ bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset]
+ };
+ pts2.topLeft.isTop = true;
+ pts2.topRight.isTop = true;
+ pts2.bottomLeft.isBottom = true;
+ pts2.bottomRight.isBottom = true;
+ return pts2;
+ },
+ checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {
+ var curveConstants = getBarrelCurveConstants(width, height);
+ var hOffset = curveConstants.heightOffset;
+ var wOffset = curveConstants.widthOffset;
+ if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * hOffset, [0, -1], padding)) {
+ return true;
+ }
+ if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * wOffset, height, [0, -1], padding)) {
+ return true;
+ }
+ var barrelCurvePts = this.generateBarrelBezierPts(width, height, centerX, centerY);
+ var getCurveT = function getCurveT2(x2, y3, curvePts) {
+ var x0 = curvePts[4];
+ var x1 = curvePts[2];
+ var x22 = curvePts[0];
+ var y02 = curvePts[5];
+ var y22 = curvePts[1];
+ var xMin = Math.min(x0, x22);
+ var xMax = Math.max(x0, x22);
+ var yMin = Math.min(y02, y22);
+ var yMax = Math.max(y02, y22);
+ if (xMin <= x2 && x2 <= xMax && yMin <= y3 && y3 <= yMax) {
+ var coeff = bezierPtsToQuadCoeff(x0, x1, x22);
+ var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x2);
+ var validRoots = roots.filter(function(r) {
+ return 0 <= r && r <= 1;
+ });
+ if (validRoots.length > 0) {
+ return validRoots[0];
+ }
+ }
+ return null;
+ };
+ var curveRegions = Object.keys(barrelCurvePts);
+ for (var i2 = 0; i2 < curveRegions.length; i2++) {
+ var corner = curveRegions[i2];
+ var cornerPts = barrelCurvePts[corner];
+ var t = getCurveT(x, y, cornerPts);
+ if (t == null) {
+ continue;
+ }
+ var y0 = cornerPts[5];
+ var y1 = cornerPts[3];
+ var y2 = cornerPts[1];
+ var bezY = qbezierAt(y0, y1, y2, t);
+ if (cornerPts.isTop && bezY <= y) {
+ return true;
+ }
+ if (cornerPts.isBottom && y <= bezY) {
+ return true;
+ }
+ }
+ return false;
+ }
+ };
+ };
+ BRp$2.generateBottomRoundrectangle = function() {
+ return this.nodeShapes["bottom-round-rectangle"] = this.nodeShapes["bottomroundrectangle"] = {
+ renderer: this,
+ name: "bottom-round-rectangle",
+ points: generateUnitNgonPointsFitToSquare(4, 0),
+ draw: function draw2(context, centerX, centerY, width, height) {
+ this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);
+ },
+ intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {
+ var topStartX = nodeX - (width / 2 + padding);
+ var topStartY = nodeY - (height / 2 + padding);
+ var topEndY = topStartY;
+ var topEndX = nodeX + (width / 2 + padding);
+ var topIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);
+ if (topIntersections.length > 0) {
+ return topIntersections;
+ }
+ return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding);
+ },
+ checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {
+ var cornerRadius = getRoundRectangleRadius(width, height);
+ var diam = 2 * cornerRadius;
+ if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) {
+ return true;
+ }
+ if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) {
+ return true;
+ }
+ var outerWidth = width / 2 + 2 * padding;
+ var outerHeight = height / 2 + 2 * padding;
+ var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight];
+ if (pointInsidePolygonPoints(x, y, points)) {
+ return true;
+ }
+ if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) {
+ return true;
+ }
+ if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) {
+ return true;
+ }
+ return false;
+ }
+ };
+ };
+ BRp$2.registerNodeShapes = function() {
+ var nodeShapes = this.nodeShapes = {};
+ var renderer2 = this;
+ this.generateEllipse();
+ this.generatePolygon("triangle", generateUnitNgonPointsFitToSquare(3, 0));
+ this.generateRoundPolygon("round-triangle", generateUnitNgonPointsFitToSquare(3, 0));
+ this.generatePolygon("rectangle", generateUnitNgonPointsFitToSquare(4, 0));
+ nodeShapes["square"] = nodeShapes["rectangle"];
+ this.generateRoundRectangle();
+ this.generateCutRectangle();
+ this.generateBarrel();
+ this.generateBottomRoundrectangle();
+ {
+ var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0];
+ this.generatePolygon("diamond", diamondPoints);
+ this.generateRoundPolygon("round-diamond", diamondPoints);
+ }
+ this.generatePolygon("pentagon", generateUnitNgonPointsFitToSquare(5, 0));
+ this.generateRoundPolygon("round-pentagon", generateUnitNgonPointsFitToSquare(5, 0));
+ this.generatePolygon("hexagon", generateUnitNgonPointsFitToSquare(6, 0));
+ this.generateRoundPolygon("round-hexagon", generateUnitNgonPointsFitToSquare(6, 0));
+ this.generatePolygon("heptagon", generateUnitNgonPointsFitToSquare(7, 0));
+ this.generateRoundPolygon("round-heptagon", generateUnitNgonPointsFitToSquare(7, 0));
+ this.generatePolygon("octagon", generateUnitNgonPointsFitToSquare(8, 0));
+ this.generateRoundPolygon("round-octagon", generateUnitNgonPointsFitToSquare(8, 0));
+ var star5Points = new Array(20);
+ {
+ var outerPoints = generateUnitNgonPoints(5, 0);
+ var innerPoints = generateUnitNgonPoints(5, Math.PI / 5);
+ var innerRadius = 0.5 * (3 - Math.sqrt(5));
+ innerRadius *= 1.57;
+ for (var i2 = 0; i2 < innerPoints.length / 2; i2++) {
+ innerPoints[i2 * 2] *= innerRadius;
+ innerPoints[i2 * 2 + 1] *= innerRadius;
+ }
+ for (var i2 = 0; i2 < 20 / 4; i2++) {
+ star5Points[i2 * 4] = outerPoints[i2 * 2];
+ star5Points[i2 * 4 + 1] = outerPoints[i2 * 2 + 1];
+ star5Points[i2 * 4 + 2] = innerPoints[i2 * 2];
+ star5Points[i2 * 4 + 3] = innerPoints[i2 * 2 + 1];
+ }
+ }
+ star5Points = fitPolygonToSquare(star5Points);
+ this.generatePolygon("star", star5Points);
+ this.generatePolygon("vee", [-1, -1, 0, -0.333, 1, -1, 0, 1]);
+ this.generatePolygon("rhomboid", [-1, -1, 0.333, -1, 1, 1, -0.333, 1]);
+ this.nodeShapes["concavehexagon"] = this.generatePolygon("concave-hexagon", [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]);
+ {
+ var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1];
+ this.generatePolygon("tag", tagPoints);
+ this.generateRoundPolygon("round-tag", tagPoints);
+ }
+ nodeShapes.makePolygon = function(points) {
+ var key = points.join("$");
+ var name2 = "polygon-" + key;
+ var shape;
+ if (shape = this[name2]) {
+ return shape;
+ }
+ return renderer2.generatePolygon(name2, points);
+ };
+ };
+ var BRp$1 = {};
+ BRp$1.timeToRender = function() {
+ return this.redrawTotalTime / this.redrawCount;
+ };
+ BRp$1.redraw = function(options) {
+ options = options || staticEmptyObject();
+ var r = this;
+ if (r.averageRedrawTime === void 0) {
+ r.averageRedrawTime = 0;
+ }
+ if (r.lastRedrawTime === void 0) {
+ r.lastRedrawTime = 0;
+ }
+ if (r.lastDrawTime === void 0) {
+ r.lastDrawTime = 0;
+ }
+ r.requestedFrame = true;
+ r.renderOptions = options;
+ };
+ BRp$1.beforeRender = function(fn2, priority) {
+ if (this.destroyed) {
+ return;
+ }
+ if (priority == null) {
+ error("Priority is not optional for beforeRender");
+ }
+ var cbs = this.beforeRenderCallbacks;
+ cbs.push({
+ fn: fn2,
+ priority
+ });
+ cbs.sort(function(a, b) {
+ return b.priority - a.priority;
+ });
+ };
+ var beforeRenderCallbacks = function beforeRenderCallbacks2(r, willDraw, startTime) {
+ var cbs = r.beforeRenderCallbacks;
+ for (var i2 = 0; i2 < cbs.length; i2++) {
+ cbs[i2].fn(willDraw, startTime);
+ }
+ };
+ BRp$1.startRenderLoop = function() {
+ var r = this;
+ var cy = r.cy;
+ if (r.renderLoopStarted) {
+ return;
+ } else {
+ r.renderLoopStarted = true;
+ }
+ var renderFn = function renderFn2(requestTime) {
+ if (r.destroyed) {
+ return;
+ }
+ if (cy.batching())
+ ;
+ else if (r.requestedFrame && !r.skipFrame) {
+ beforeRenderCallbacks(r, true, requestTime);
+ var startTime = performanceNow();
+ r.render(r.renderOptions);
+ var endTime = r.lastDrawTime = performanceNow();
+ if (r.averageRedrawTime === void 0) {
+ r.averageRedrawTime = endTime - startTime;
+ }
+ if (r.redrawCount === void 0) {
+ r.redrawCount = 0;
+ }
+ r.redrawCount++;
+ if (r.redrawTotalTime === void 0) {
+ r.redrawTotalTime = 0;
+ }
+ var duration = endTime - startTime;
+ r.redrawTotalTime += duration;
+ r.lastRedrawTime = duration;
+ r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2;
+ r.requestedFrame = false;
+ } else {
+ beforeRenderCallbacks(r, false, requestTime);
+ }
+ r.skipFrame = false;
+ requestAnimationFrame2(renderFn2);
+ };
+ requestAnimationFrame2(renderFn);
+ };
+ var BaseRenderer = function BaseRenderer2(options) {
+ this.init(options);
+ };
+ var BR = BaseRenderer;
+ var BRp = BR.prototype;
+ BRp.clientFunctions = ["redrawHint", "render", "renderTo", "matchCanvasSize", "nodeShapeImpl", "arrowShapeImpl"];
+ BRp.init = function(options) {
+ var r = this;
+ r.options = options;
+ r.cy = options.cy;
+ var ctr = r.container = options.cy.container();
+ if (window$1) {
+ var document2 = window$1.document;
+ var head = document2.head;
+ var stylesheetId = "__________cytoscape_stylesheet";
+ var className = "__________cytoscape_container";
+ var stylesheetAlreadyExists = document2.getElementById(stylesheetId) != null;
+ if (ctr.className.indexOf(className) < 0) {
+ ctr.className = (ctr.className || "") + " " + className;
+ }
+ if (!stylesheetAlreadyExists) {
+ var stylesheet2 = document2.createElement("style");
+ stylesheet2.id = stylesheetId;
+ stylesheet2.innerHTML = "." + className + " { position: relative; }";
+ head.insertBefore(stylesheet2, head.children[0]);
+ }
+ var computedStyle = window$1.getComputedStyle(ctr);
+ var position2 = computedStyle.getPropertyValue("position");
+ if (position2 === "static") {
+ warn("A Cytoscape container has style position:static and so can not use UI extensions properly");
+ }
+ }
+ r.selection = [void 0, void 0, void 0, void 0, 0];
+ r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95];
+ r.hoverData = {
+ down: null,
+ last: null,
+ downTime: null,
+ triggerMode: null,
+ dragging: false,
+ initialPan: [null, null],
+ capture: false
+ };
+ r.dragData = {
+ possibleDragElements: []
+ };
+ r.touchData = {
+ start: null,
+ capture: false,
+ // These 3 fields related to tap, taphold events
+ startPosition: [null, null, null, null, null, null],
+ singleTouchStartTime: null,
+ singleTouchMoved: true,
+ now: [null, null, null, null, null, null],
+ earlier: [null, null, null, null, null, null]
+ };
+ r.redraws = 0;
+ r.showFps = options.showFps;
+ r.debug = options.debug;
+ r.hideEdgesOnViewport = options.hideEdgesOnViewport;
+ r.textureOnViewport = options.textureOnViewport;
+ r.wheelSensitivity = options.wheelSensitivity;
+ r.motionBlurEnabled = options.motionBlur;
+ r.forcedPixelRatio = number$1(options.pixelRatio) ? options.pixelRatio : null;
+ r.motionBlur = options.motionBlur;
+ r.motionBlurOpacity = options.motionBlurOpacity;
+ r.motionBlurTransparency = 1 - r.motionBlurOpacity;
+ r.motionBlurPxRatio = 1;
+ r.mbPxRBlurry = 1;
+ r.minMbLowQualFrames = 4;
+ r.fullQualityMb = false;
+ r.clearedForMotionBlur = [];
+ r.desktopTapThreshold = options.desktopTapThreshold;
+ r.desktopTapThreshold2 = options.desktopTapThreshold * options.desktopTapThreshold;
+ r.touchTapThreshold = options.touchTapThreshold;
+ r.touchTapThreshold2 = options.touchTapThreshold * options.touchTapThreshold;
+ r.tapholdDuration = 500;
+ r.bindings = [];
+ r.beforeRenderCallbacks = [];
+ r.beforeRenderPriorities = {
+ // higher priority execs before lower one
+ animations: 400,
+ eleCalcs: 300,
+ eleTxrDeq: 200,
+ lyrTxrDeq: 150,
+ lyrTxrSkip: 100
+ };
+ r.registerNodeShapes();
+ r.registerArrowShapes();
+ r.registerCalculationListeners();
+ };
+ BRp.notify = function(eventName, eles) {
+ var r = this;
+ var cy = r.cy;
+ if (this.destroyed) {
+ return;
+ }
+ if (eventName === "init") {
+ r.load();
+ return;
+ }
+ if (eventName === "destroy") {
+ r.destroy();
+ return;
+ }
+ if (eventName === "add" || eventName === "remove" || eventName === "move" && cy.hasCompoundNodes() || eventName === "load" || eventName === "zorder" || eventName === "mount") {
+ r.invalidateCachedZSortedEles();
+ }
+ if (eventName === "viewport") {
+ r.redrawHint("select", true);
+ }
+ if (eventName === "load" || eventName === "resize" || eventName === "mount") {
+ r.invalidateContainerClientCoordsCache();
+ r.matchCanvasSize(r.container);
+ }
+ r.redrawHint("eles", true);
+ r.redrawHint("drag", true);
+ this.startRenderLoop();
+ this.redraw();
+ };
+ BRp.destroy = function() {
+ var r = this;
+ r.destroyed = true;
+ r.cy.stopAnimationLoop();
+ for (var i2 = 0; i2 < r.bindings.length; i2++) {
+ var binding = r.bindings[i2];
+ var b = binding;
+ var tgt = b.target;
+ (tgt.off || tgt.removeEventListener).apply(tgt, b.args);
+ }
+ r.bindings = [];
+ r.beforeRenderCallbacks = [];
+ r.onUpdateEleCalcsFns = [];
+ if (r.removeObserver) {
+ r.removeObserver.disconnect();
+ }
+ if (r.styleObserver) {
+ r.styleObserver.disconnect();
+ }
+ if (r.resizeObserver) {
+ r.resizeObserver.disconnect();
+ }
+ if (r.labelCalcDiv) {
+ try {
+ document.body.removeChild(r.labelCalcDiv);
+ } catch (e) {
+ }
+ }
+ };
+ BRp.isHeadless = function() {
+ return false;
+ };
+ [BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function(props) {
+ extend(BRp, props);
+ });
+ var fullFpsTime = 1e3 / 60;
+ var defs = {
+ setupDequeueing: function setupDequeueing(opts) {
+ return function setupDequeueingImpl() {
+ var self2 = this;
+ var r = this.renderer;
+ if (self2.dequeueingSetup) {
+ return;
+ } else {
+ self2.dequeueingSetup = true;
+ }
+ var queueRedraw = debounce_1(function() {
+ r.redrawHint("eles", true);
+ r.redrawHint("drag", true);
+ r.redraw();
+ }, opts.deqRedrawThreshold);
+ var dequeue = function dequeue2(willDraw, frameStartTime) {
+ var startTime = performanceNow();
+ var avgRenderTime = r.averageRedrawTime;
+ var renderTime = r.lastRedrawTime;
+ var deqd = [];
+ var extent = r.cy.extent();
+ var pixelRatio = r.getPixelRatio();
+ if (!willDraw) {
+ r.flushRenderedStyleQueue();
+ }
+ while (true) {
+ var now2 = performanceNow();
+ var duration = now2 - startTime;
+ var frameDuration = now2 - frameStartTime;
+ if (renderTime < fullFpsTime) {
+ var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0);
+ if (frameDuration >= opts.deqFastCost * timeAvailable) {
+ break;
+ }
+ } else {
+ if (willDraw) {
+ if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) {
+ break;
+ }
+ } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) {
+ break;
+ }
+ }
+ var thisDeqd = opts.deq(self2, pixelRatio, extent);
+ if (thisDeqd.length > 0) {
+ for (var i2 = 0; i2 < thisDeqd.length; i2++) {
+ deqd.push(thisDeqd[i2]);
+ }
+ } else {
+ break;
+ }
+ }
+ if (deqd.length > 0) {
+ opts.onDeqd(self2, deqd);
+ if (!willDraw && opts.shouldRedraw(self2, deqd, pixelRatio, extent)) {
+ queueRedraw();
+ }
+ }
+ };
+ var priority = opts.priority || noop$1;
+ r.beforeRender(dequeue, priority(self2));
+ };
+ }
+ };
+ var ElementTextureCacheLookup = /* @__PURE__ */ function() {
+ function ElementTextureCacheLookup2(getKey2) {
+ var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : falsify;
+ _classCallCheck(this, ElementTextureCacheLookup2);
+ this.idsByKey = new Map$2();
+ this.keyForId = new Map$2();
+ this.cachesByLvl = new Map$2();
+ this.lvls = [];
+ this.getKey = getKey2;
+ this.doesEleInvalidateKey = doesEleInvalidateKey;
+ }
+ _createClass(ElementTextureCacheLookup2, [{
+ key: "getIdsFor",
+ value: function getIdsFor(key) {
+ if (key == null) {
+ error("Can not get id list for null key");
+ }
+ var idsByKey = this.idsByKey;
+ var ids = this.idsByKey.get(key);
+ if (!ids) {
+ ids = new Set$1();
+ idsByKey.set(key, ids);
+ }
+ return ids;
+ }
+ }, {
+ key: "addIdForKey",
+ value: function addIdForKey(key, id) {
+ if (key != null) {
+ this.getIdsFor(key).add(id);
+ }
+ }
+ }, {
+ key: "deleteIdForKey",
+ value: function deleteIdForKey(key, id) {
+ if (key != null) {
+ this.getIdsFor(key)["delete"](id);
+ }
+ }
+ }, {
+ key: "getNumberOfIdsForKey",
+ value: function getNumberOfIdsForKey(key) {
+ if (key == null) {
+ return 0;
+ } else {
+ return this.getIdsFor(key).size;
+ }
+ }
+ }, {
+ key: "updateKeyMappingFor",
+ value: function updateKeyMappingFor(ele) {
+ var id = ele.id();
+ var prevKey = this.keyForId.get(id);
+ var currKey = this.getKey(ele);
+ this.deleteIdForKey(prevKey, id);
+ this.addIdForKey(currKey, id);
+ this.keyForId.set(id, currKey);
+ }
+ }, {
+ key: "deleteKeyMappingFor",
+ value: function deleteKeyMappingFor(ele) {
+ var id = ele.id();
+ var prevKey = this.keyForId.get(id);
+ this.deleteIdForKey(prevKey, id);
+ this.keyForId["delete"](id);
+ }
+ }, {
+ key: "keyHasChangedFor",
+ value: function keyHasChangedFor(ele) {
+ var id = ele.id();
+ var prevKey = this.keyForId.get(id);
+ var newKey = this.getKey(ele);
+ return prevKey !== newKey;
+ }
+ }, {
+ key: "isInvalid",
+ value: function isInvalid(ele) {
+ return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele);
+ }
+ }, {
+ key: "getCachesAt",
+ value: function getCachesAt(lvl) {
+ var cachesByLvl = this.cachesByLvl, lvls = this.lvls;
+ var caches = cachesByLvl.get(lvl);
+ if (!caches) {
+ caches = new Map$2();
+ cachesByLvl.set(lvl, caches);
+ lvls.push(lvl);
+ }
+ return caches;
+ }
+ }, {
+ key: "getCache",
+ value: function getCache(key, lvl) {
+ return this.getCachesAt(lvl).get(key);
+ }
+ }, {
+ key: "get",
+ value: function get2(ele, lvl) {
+ var key = this.getKey(ele);
+ var cache2 = this.getCache(key, lvl);
+ if (cache2 != null) {
+ this.updateKeyMappingFor(ele);
+ }
+ return cache2;
+ }
+ }, {
+ key: "getForCachedKey",
+ value: function getForCachedKey(ele, lvl) {
+ var key = this.keyForId.get(ele.id());
+ var cache2 = this.getCache(key, lvl);
+ return cache2;
+ }
+ }, {
+ key: "hasCache",
+ value: function hasCache(key, lvl) {
+ return this.getCachesAt(lvl).has(key);
+ }
+ }, {
+ key: "has",
+ value: function has(ele, lvl) {
+ var key = this.getKey(ele);
+ return this.hasCache(key, lvl);
+ }
+ }, {
+ key: "setCache",
+ value: function setCache(key, lvl, cache2) {
+ cache2.key = key;
+ this.getCachesAt(lvl).set(key, cache2);
+ }
+ }, {
+ key: "set",
+ value: function set2(ele, lvl, cache2) {
+ var key = this.getKey(ele);
+ this.setCache(key, lvl, cache2);
+ this.updateKeyMappingFor(ele);
+ }
+ }, {
+ key: "deleteCache",
+ value: function deleteCache(key, lvl) {
+ this.getCachesAt(lvl)["delete"](key);
+ }
+ }, {
+ key: "delete",
+ value: function _delete(ele, lvl) {
+ var key = this.getKey(ele);
+ this.deleteCache(key, lvl);
+ }
+ }, {
+ key: "invalidateKey",
+ value: function invalidateKey(key) {
+ var _this = this;
+ this.lvls.forEach(function(lvl) {
+ return _this.deleteCache(key, lvl);
+ });
+ }
+ // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key)
+ }, {
+ key: "invalidate",
+ value: function invalidate(ele) {
+ var id = ele.id();
+ var key = this.keyForId.get(id);
+ this.deleteKeyMappingFor(ele);
+ var entireKeyInvalidated = this.doesEleInvalidateKey(ele);
+ if (entireKeyInvalidated) {
+ this.invalidateKey(key);
+ }
+ return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0;
+ }
+ }]);
+ return ElementTextureCacheLookup2;
+ }();
+ var minTxrH = 25;
+ var txrStepH = 50;
+ var minLvl$1 = -4;
+ var maxLvl$1 = 3;
+ var maxZoom$1 = 7.99;
+ var eleTxrSpacing = 8;
+ var defTxrWidth = 1024;
+ var maxTxrW = 1024;
+ var maxTxrH = 1024;
+ var minUtility = 0.2;
+ var maxFullness = 0.8;
+ var maxFullnessChecks = 10;
+ var deqCost$1 = 0.15;
+ var deqAvgCost$1 = 0.1;
+ var deqNoDrawCost$1 = 0.9;
+ var deqFastCost$1 = 0.9;
+ var deqRedrawThreshold$1 = 100;
+ var maxDeqSize$1 = 1;
+ var getTxrReasons = {
+ dequeue: "dequeue",
+ downscale: "downscale",
+ highQuality: "highQuality"
+ };
+ var initDefaults = defaults$g({
+ getKey: null,
+ doesEleInvalidateKey: falsify,
+ drawElement: null,
+ getBoundingBox: null,
+ getRotationPoint: null,
+ getRotationOffset: null,
+ isVisible: trueify,
+ allowEdgeTxrCaching: true,
+ allowParentTxrCaching: true
+ });
+ var ElementTextureCache = function ElementTextureCache2(renderer2, initOptions) {
+ var self2 = this;
+ self2.renderer = renderer2;
+ self2.onDequeues = [];
+ var opts = initDefaults(initOptions);
+ extend(self2, opts);
+ self2.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey);
+ self2.setupDequeueing();
+ };
+ var ETCp = ElementTextureCache.prototype;
+ ETCp.reasons = getTxrReasons;
+ ETCp.getTextureQueue = function(txrH) {
+ var self2 = this;
+ self2.eleImgCaches = self2.eleImgCaches || {};
+ return self2.eleImgCaches[txrH] = self2.eleImgCaches[txrH] || [];
+ };
+ ETCp.getRetiredTextureQueue = function(txrH) {
+ var self2 = this;
+ var rtxtrQs = self2.eleImgCaches.retired = self2.eleImgCaches.retired || {};
+ var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || [];
+ return rtxtrQ;
+ };
+ ETCp.getElementQueue = function() {
+ var self2 = this;
+ var q = self2.eleCacheQueue = self2.eleCacheQueue || new heap(function(a, b) {
+ return b.reqs - a.reqs;
+ });
+ return q;
+ };
+ ETCp.getElementKeyToQueue = function() {
+ var self2 = this;
+ var k2q = self2.eleKeyToCacheQueue = self2.eleKeyToCacheQueue || {};
+ return k2q;
+ };
+ ETCp.getElement = function(ele, bb, pxRatio, lvl, reason) {
+ var self2 = this;
+ var r = this.renderer;
+ var zoom = r.cy.zoom();
+ var lookup2 = this.lookup;
+ if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) {
+ return null;
+ }
+ if (!self2.allowEdgeTxrCaching && ele.isEdge() || !self2.allowParentTxrCaching && ele.isParent()) {
+ return null;
+ }
+ if (lvl == null) {
+ lvl = Math.ceil(log2(zoom * pxRatio));
+ }
+ if (lvl < minLvl$1) {
+ lvl = minLvl$1;
+ } else if (zoom >= maxZoom$1 || lvl > maxLvl$1) {
+ return null;
+ }
+ var scale = Math.pow(2, lvl);
+ var eleScaledH = bb.h * scale;
+ var eleScaledW = bb.w * scale;
+ var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale);
+ if (!this.isVisible(ele, scaledLabelShown)) {
+ return null;
+ }
+ var eleCache = lookup2.get(ele, lvl);
+ if (eleCache && eleCache.invalidated) {
+ eleCache.invalidated = false;
+ eleCache.texture.invalidatedWidth -= eleCache.width;
+ }
+ if (eleCache) {
+ return eleCache;
+ }
+ var txrH;
+ if (eleScaledH <= minTxrH) {
+ txrH = minTxrH;
+ } else if (eleScaledH <= txrStepH) {
+ txrH = txrStepH;
+ } else {
+ txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH;
+ }
+ if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) {
+ return null;
+ }
+ var txrQ = self2.getTextureQueue(txrH);
+ var txr = txrQ[txrQ.length - 2];
+ var addNewTxr = function addNewTxr2() {
+ return self2.recycleTexture(txrH, eleScaledW) || self2.addTexture(txrH, eleScaledW);
+ };
+ if (!txr) {
+ txr = txrQ[txrQ.length - 1];
+ }
+ if (!txr) {
+ txr = addNewTxr();
+ }
+ if (txr.width - txr.usedWidth < eleScaledW) {
+ txr = addNewTxr();
+ }
+ var scalableFrom = function scalableFrom2(otherCache) {
+ return otherCache && otherCache.scaledLabelShown === scaledLabelShown;
+ };
+ var deqing = reason && reason === getTxrReasons.dequeue;
+ var highQualityReq = reason && reason === getTxrReasons.highQuality;
+ var downscaleReq = reason && reason === getTxrReasons.downscale;
+ var higherCache;
+ for (var l = lvl + 1; l <= maxLvl$1; l++) {
+ var c = lookup2.get(ele, l);
+ if (c) {
+ higherCache = c;
+ break;
+ }
+ }
+ var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null;
+ var downscale = function downscale2() {
+ txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH);
+ };
+ txr.context.setTransform(1, 0, 0, 1, 0, 0);
+ txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH);
+ if (scalableFrom(oneUpCache)) {
+ downscale();
+ } else if (scalableFrom(higherCache)) {
+ if (highQualityReq) {
+ for (var _l = higherCache.level; _l > lvl; _l--) {
+ oneUpCache = self2.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale);
+ }
+ downscale();
+ } else {
+ self2.queueElement(ele, higherCache.level - 1);
+ return higherCache;
+ }
+ } else {
+ var lowerCache;
+ if (!deqing && !highQualityReq && !downscaleReq) {
+ for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) {
+ var _c = lookup2.get(ele, _l2);
+ if (_c) {
+ lowerCache = _c;
+ break;
+ }
+ }
+ }
+ if (scalableFrom(lowerCache)) {
+ self2.queueElement(ele, lvl);
+ return lowerCache;
+ }
+ txr.context.translate(txr.usedWidth, 0);
+ txr.context.scale(scale, scale);
+ this.drawElement(txr.context, ele, bb, scaledLabelShown, false);
+ txr.context.scale(1 / scale, 1 / scale);
+ txr.context.translate(-txr.usedWidth, 0);
+ }
+ eleCache = {
+ x: txr.usedWidth,
+ texture: txr,
+ level: lvl,
+ scale,
+ width: eleScaledW,
+ height: eleScaledH,
+ scaledLabelShown
+ };
+ txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing);
+ txr.eleCaches.push(eleCache);
+ lookup2.set(ele, lvl, eleCache);
+ self2.checkTextureFullness(txr);
+ return eleCache;
+ };
+ ETCp.invalidateElements = function(eles) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ this.invalidateElement(eles[i2]);
+ }
+ };
+ ETCp.invalidateElement = function(ele) {
+ var self2 = this;
+ var lookup2 = self2.lookup;
+ var caches = [];
+ var invalid = lookup2.isInvalid(ele);
+ if (!invalid) {
+ return;
+ }
+ for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) {
+ var cache2 = lookup2.getForCachedKey(ele, lvl);
+ if (cache2) {
+ caches.push(cache2);
+ }
+ }
+ var noOtherElesUseCache = lookup2.invalidate(ele);
+ if (noOtherElesUseCache) {
+ for (var i2 = 0; i2 < caches.length; i2++) {
+ var _cache = caches[i2];
+ var txr = _cache.texture;
+ txr.invalidatedWidth += _cache.width;
+ _cache.invalidated = true;
+ self2.checkTextureUtility(txr);
+ }
+ }
+ self2.removeFromQueue(ele);
+ };
+ ETCp.checkTextureUtility = function(txr) {
+ if (txr.invalidatedWidth >= minUtility * txr.width) {
+ this.retireTexture(txr);
+ }
+ };
+ ETCp.checkTextureFullness = function(txr) {
+ var self2 = this;
+ var txrQ = self2.getTextureQueue(txr.height);
+ if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) {
+ removeFromArray(txrQ, txr);
+ } else {
+ txr.fullnessChecks++;
+ }
+ };
+ ETCp.retireTexture = function(txr) {
+ var self2 = this;
+ var txrH = txr.height;
+ var txrQ = self2.getTextureQueue(txrH);
+ var lookup2 = this.lookup;
+ removeFromArray(txrQ, txr);
+ txr.retired = true;
+ var eleCaches = txr.eleCaches;
+ for (var i2 = 0; i2 < eleCaches.length; i2++) {
+ var eleCache = eleCaches[i2];
+ lookup2.deleteCache(eleCache.key, eleCache.level);
+ }
+ clearArray(eleCaches);
+ var rtxtrQ = self2.getRetiredTextureQueue(txrH);
+ rtxtrQ.push(txr);
+ };
+ ETCp.addTexture = function(txrH, minW) {
+ var self2 = this;
+ var txrQ = self2.getTextureQueue(txrH);
+ var txr = {};
+ txrQ.push(txr);
+ txr.eleCaches = [];
+ txr.height = txrH;
+ txr.width = Math.max(defTxrWidth, minW);
+ txr.usedWidth = 0;
+ txr.invalidatedWidth = 0;
+ txr.fullnessChecks = 0;
+ txr.canvas = self2.renderer.makeOffscreenCanvas(txr.width, txr.height);
+ txr.context = txr.canvas.getContext("2d");
+ return txr;
+ };
+ ETCp.recycleTexture = function(txrH, minW) {
+ var self2 = this;
+ var txrQ = self2.getTextureQueue(txrH);
+ var rtxtrQ = self2.getRetiredTextureQueue(txrH);
+ for (var i2 = 0; i2 < rtxtrQ.length; i2++) {
+ var txr = rtxtrQ[i2];
+ if (txr.width >= minW) {
+ txr.retired = false;
+ txr.usedWidth = 0;
+ txr.invalidatedWidth = 0;
+ txr.fullnessChecks = 0;
+ clearArray(txr.eleCaches);
+ txr.context.setTransform(1, 0, 0, 1, 0, 0);
+ txr.context.clearRect(0, 0, txr.width, txr.height);
+ removeFromArray(rtxtrQ, txr);
+ txrQ.push(txr);
+ return txr;
+ }
+ }
+ };
+ ETCp.queueElement = function(ele, lvl) {
+ var self2 = this;
+ var q = self2.getElementQueue();
+ var k2q = self2.getElementKeyToQueue();
+ var key = this.getKey(ele);
+ var existingReq = k2q[key];
+ if (existingReq) {
+ existingReq.level = Math.max(existingReq.level, lvl);
+ existingReq.eles.merge(ele);
+ existingReq.reqs++;
+ q.updateItem(existingReq);
+ } else {
+ var req = {
+ eles: ele.spawn().merge(ele),
+ level: lvl,
+ reqs: 1,
+ key
+ };
+ q.push(req);
+ k2q[key] = req;
+ }
+ };
+ ETCp.dequeue = function(pxRatio) {
+ var self2 = this;
+ var q = self2.getElementQueue();
+ var k2q = self2.getElementKeyToQueue();
+ var dequeued = [];
+ var lookup2 = self2.lookup;
+ for (var i2 = 0; i2 < maxDeqSize$1; i2++) {
+ if (q.size() > 0) {
+ var req = q.pop();
+ var key = req.key;
+ var ele = req.eles[0];
+ var cacheExists = lookup2.hasCache(ele, req.level);
+ k2q[key] = null;
+ if (cacheExists) {
+ continue;
+ }
+ dequeued.push(req);
+ var bb = self2.getBoundingBox(ele);
+ self2.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue);
+ } else {
+ break;
+ }
+ }
+ return dequeued;
+ };
+ ETCp.removeFromQueue = function(ele) {
+ var self2 = this;
+ var q = self2.getElementQueue();
+ var k2q = self2.getElementKeyToQueue();
+ var key = this.getKey(ele);
+ var req = k2q[key];
+ if (req != null) {
+ if (req.eles.length === 1) {
+ req.reqs = MAX_INT$1;
+ q.updateItem(req);
+ q.pop();
+ k2q[key] = null;
+ } else {
+ req.eles.unmerge(ele);
+ }
+ }
+ };
+ ETCp.onDequeue = function(fn2) {
+ this.onDequeues.push(fn2);
+ };
+ ETCp.offDequeue = function(fn2) {
+ removeFromArray(this.onDequeues, fn2);
+ };
+ ETCp.setupDequeueing = defs.setupDequeueing({
+ deqRedrawThreshold: deqRedrawThreshold$1,
+ deqCost: deqCost$1,
+ deqAvgCost: deqAvgCost$1,
+ deqNoDrawCost: deqNoDrawCost$1,
+ deqFastCost: deqFastCost$1,
+ deq: function deq(self2, pxRatio, extent) {
+ return self2.dequeue(pxRatio, extent);
+ },
+ onDeqd: function onDeqd(self2, deqd) {
+ for (var i2 = 0; i2 < self2.onDequeues.length; i2++) {
+ var fn2 = self2.onDequeues[i2];
+ fn2(deqd);
+ }
+ },
+ shouldRedraw: function shouldRedraw(self2, deqd, pxRatio, extent) {
+ for (var i2 = 0; i2 < deqd.length; i2++) {
+ var eles = deqd[i2].eles;
+ for (var j = 0; j < eles.length; j++) {
+ var bb = eles[j].boundingBox();
+ if (boundingBoxesIntersect(bb, extent)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ },
+ priority: function priority(self2) {
+ return self2.renderer.beforeRenderPriorities.eleTxrDeq;
+ }
+ });
+ var defNumLayers = 1;
+ var minLvl = -4;
+ var maxLvl = 2;
+ var maxZoom = 3.99;
+ var deqRedrawThreshold = 50;
+ var refineEleDebounceTime = 50;
+ var deqCost = 0.15;
+ var deqAvgCost = 0.1;
+ var deqNoDrawCost = 0.9;
+ var deqFastCost = 0.9;
+ var maxDeqSize = 1;
+ var invalidThreshold = 250;
+ var maxLayerArea = 4e3 * 4e3;
+ var useHighQualityEleTxrReqs = true;
+ var LayeredTextureCache = function LayeredTextureCache2(renderer2) {
+ var self2 = this;
+ var r = self2.renderer = renderer2;
+ var cy = r.cy;
+ self2.layersByLevel = {};
+ self2.firstGet = true;
+ self2.lastInvalidationTime = performanceNow() - 2 * invalidThreshold;
+ self2.skipping = false;
+ self2.eleTxrDeqs = cy.collection();
+ self2.scheduleElementRefinement = debounce_1(function() {
+ self2.refineElementTextures(self2.eleTxrDeqs);
+ self2.eleTxrDeqs.unmerge(self2.eleTxrDeqs);
+ }, refineEleDebounceTime);
+ r.beforeRender(function(willDraw, now2) {
+ if (now2 - self2.lastInvalidationTime <= invalidThreshold) {
+ self2.skipping = true;
+ } else {
+ self2.skipping = false;
+ }
+ }, r.beforeRenderPriorities.lyrTxrSkip);
+ var qSort = function qSort2(a, b) {
+ return b.reqs - a.reqs;
+ };
+ self2.layersQueue = new heap(qSort);
+ self2.setupDequeueing();
+ };
+ var LTCp = LayeredTextureCache.prototype;
+ var layerIdPool = 0;
+ var MAX_INT = Math.pow(2, 53) - 1;
+ LTCp.makeLayer = function(bb, lvl) {
+ var scale = Math.pow(2, lvl);
+ var w = Math.ceil(bb.w * scale);
+ var h = Math.ceil(bb.h * scale);
+ var canvas = this.renderer.makeOffscreenCanvas(w, h);
+ var layer = {
+ id: layerIdPool = ++layerIdPool % MAX_INT,
+ bb,
+ level: lvl,
+ width: w,
+ height: h,
+ canvas,
+ context: canvas.getContext("2d"),
+ eles: [],
+ elesQueue: [],
+ reqs: 0
+ };
+ var cxt = layer.context;
+ var dx = -layer.bb.x1;
+ var dy = -layer.bb.y1;
+ cxt.scale(scale, scale);
+ cxt.translate(dx, dy);
+ return layer;
+ };
+ LTCp.getLayers = function(eles, pxRatio, lvl) {
+ var self2 = this;
+ var r = self2.renderer;
+ var cy = r.cy;
+ var zoom = cy.zoom();
+ var firstGet = self2.firstGet;
+ self2.firstGet = false;
+ if (lvl == null) {
+ lvl = Math.ceil(log2(zoom * pxRatio));
+ if (lvl < minLvl) {
+ lvl = minLvl;
+ } else if (zoom >= maxZoom || lvl > maxLvl) {
+ return null;
+ }
+ }
+ self2.validateLayersElesOrdering(lvl, eles);
+ var layersByLvl = self2.layersByLevel;
+ var scale = Math.pow(2, lvl);
+ var layers = layersByLvl[lvl] = layersByLvl[lvl] || [];
+ var bb;
+ var lvlComplete = self2.levelIsComplete(lvl, eles);
+ var tmpLayers;
+ var checkTempLevels = function checkTempLevels2() {
+ var canUseAsTmpLvl = function canUseAsTmpLvl2(l) {
+ self2.validateLayersElesOrdering(l, eles);
+ if (self2.levelIsComplete(l, eles)) {
+ tmpLayers = layersByLvl[l];
+ return true;
+ }
+ };
+ var checkLvls = function checkLvls2(dir) {
+ if (tmpLayers) {
+ return;
+ }
+ for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) {
+ if (canUseAsTmpLvl(l)) {
+ break;
+ }
+ }
+ };
+ checkLvls(1);
+ checkLvls(-1);
+ for (var i3 = layers.length - 1; i3 >= 0; i3--) {
+ var layer2 = layers[i3];
+ if (layer2.invalid) {
+ removeFromArray(layers, layer2);
+ }
+ }
+ };
+ if (!lvlComplete) {
+ checkTempLevels();
+ } else {
+ return layers;
+ }
+ var getBb = function getBb2() {
+ if (!bb) {
+ bb = makeBoundingBox();
+ for (var i3 = 0; i3 < eles.length; i3++) {
+ updateBoundingBox(bb, eles[i3].boundingBox());
+ }
+ }
+ return bb;
+ };
+ var makeLayer = function makeLayer2(opts) {
+ opts = opts || {};
+ var after = opts.after;
+ getBb();
+ var area = bb.w * scale * (bb.h * scale);
+ if (area > maxLayerArea) {
+ return null;
+ }
+ var layer2 = self2.makeLayer(bb, lvl);
+ if (after != null) {
+ var index = layers.indexOf(after) + 1;
+ layers.splice(index, 0, layer2);
+ } else if (opts.insert === void 0 || opts.insert) {
+ layers.unshift(layer2);
+ }
+ return layer2;
+ };
+ if (self2.skipping && !firstGet) {
+ return null;
+ }
+ var layer = null;
+ var maxElesPerLayer = eles.length / defNumLayers;
+ var allowLazyQueueing = !firstGet;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var rs = ele._private.rscratch;
+ var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};
+ var existingLayer = caches[lvl];
+ if (existingLayer) {
+ layer = existingLayer;
+ continue;
+ }
+ if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) {
+ layer = makeLayer({
+ insert: true,
+ after: layer
+ });
+ if (!layer) {
+ return null;
+ }
+ }
+ if (tmpLayers || allowLazyQueueing) {
+ self2.queueLayer(layer, ele);
+ } else {
+ self2.drawEleInLayer(layer, ele, lvl, pxRatio);
+ }
+ layer.eles.push(ele);
+ caches[lvl] = layer;
+ }
+ if (tmpLayers) {
+ return tmpLayers;
+ }
+ if (allowLazyQueueing) {
+ return null;
+ }
+ return layers;
+ };
+ LTCp.getEleLevelForLayerLevel = function(lvl, pxRatio) {
+ return lvl;
+ };
+ LTCp.drawEleInLayer = function(layer, ele, lvl, pxRatio) {
+ var self2 = this;
+ var r = this.renderer;
+ var context = layer.context;
+ var bb = ele.boundingBox();
+ if (bb.w === 0 || bb.h === 0 || !ele.visible()) {
+ return;
+ }
+ lvl = self2.getEleLevelForLayerLevel(lvl, pxRatio);
+ {
+ r.setImgSmoothing(context, false);
+ }
+ {
+ r.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs);
+ }
+ {
+ r.setImgSmoothing(context, true);
+ }
+ };
+ LTCp.levelIsComplete = function(lvl, eles) {
+ var self2 = this;
+ var layers = self2.layersByLevel[lvl];
+ if (!layers || layers.length === 0) {
+ return false;
+ }
+ var numElesInLayers = 0;
+ for (var i2 = 0; i2 < layers.length; i2++) {
+ var layer = layers[i2];
+ if (layer.reqs > 0) {
+ return false;
+ }
+ if (layer.invalid) {
+ return false;
+ }
+ numElesInLayers += layer.eles.length;
+ }
+ if (numElesInLayers !== eles.length) {
+ return false;
+ }
+ return true;
+ };
+ LTCp.validateLayersElesOrdering = function(lvl, eles) {
+ var layers = this.layersByLevel[lvl];
+ if (!layers) {
+ return;
+ }
+ for (var i2 = 0; i2 < layers.length; i2++) {
+ var layer = layers[i2];
+ var offset = -1;
+ for (var j = 0; j < eles.length; j++) {
+ if (layer.eles[0] === eles[j]) {
+ offset = j;
+ break;
+ }
+ }
+ if (offset < 0) {
+ this.invalidateLayer(layer);
+ continue;
+ }
+ var o = offset;
+ for (var j = 0; j < layer.eles.length; j++) {
+ if (layer.eles[j] !== eles[o + j]) {
+ this.invalidateLayer(layer);
+ break;
+ }
+ }
+ }
+ };
+ LTCp.updateElementsInLayers = function(eles, update2) {
+ var self2 = this;
+ var isEles = element(eles[0]);
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var req = isEles ? null : eles[i2];
+ var ele = isEles ? eles[i2] : eles[i2].ele;
+ var rs = ele._private.rscratch;
+ var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};
+ for (var l = minLvl; l <= maxLvl; l++) {
+ var layer = caches[l];
+ if (!layer) {
+ continue;
+ }
+ if (req && self2.getEleLevelForLayerLevel(layer.level) !== req.level) {
+ continue;
+ }
+ update2(layer, ele, req);
+ }
+ }
+ };
+ LTCp.haveLayers = function() {
+ var self2 = this;
+ var haveLayers = false;
+ for (var l = minLvl; l <= maxLvl; l++) {
+ var layers = self2.layersByLevel[l];
+ if (layers && layers.length > 0) {
+ haveLayers = true;
+ break;
+ }
+ }
+ return haveLayers;
+ };
+ LTCp.invalidateElements = function(eles) {
+ var self2 = this;
+ if (eles.length === 0) {
+ return;
+ }
+ self2.lastInvalidationTime = performanceNow();
+ if (eles.length === 0 || !self2.haveLayers()) {
+ return;
+ }
+ self2.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) {
+ self2.invalidateLayer(layer);
+ });
+ };
+ LTCp.invalidateLayer = function(layer) {
+ this.lastInvalidationTime = performanceNow();
+ if (layer.invalid) {
+ return;
+ }
+ var lvl = layer.level;
+ var eles = layer.eles;
+ var layers = this.layersByLevel[lvl];
+ removeFromArray(layers, layer);
+ layer.elesQueue = [];
+ layer.invalid = true;
+ if (layer.replacement) {
+ layer.replacement.invalid = true;
+ }
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var caches = eles[i2]._private.rscratch.imgLayerCaches;
+ if (caches) {
+ caches[lvl] = null;
+ }
+ }
+ };
+ LTCp.refineElementTextures = function(eles) {
+ var self2 = this;
+ self2.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) {
+ var rLyr = layer.replacement;
+ if (!rLyr) {
+ rLyr = layer.replacement = self2.makeLayer(layer.bb, layer.level);
+ rLyr.replaces = layer;
+ rLyr.eles = layer.eles;
+ }
+ if (!rLyr.reqs) {
+ for (var i2 = 0; i2 < rLyr.eles.length; i2++) {
+ self2.queueLayer(rLyr, rLyr.eles[i2]);
+ }
+ }
+ });
+ };
+ LTCp.enqueueElementRefinement = function(ele) {
+ this.eleTxrDeqs.merge(ele);
+ this.scheduleElementRefinement();
+ };
+ LTCp.queueLayer = function(layer, ele) {
+ var self2 = this;
+ var q = self2.layersQueue;
+ var elesQ = layer.elesQueue;
+ var hasId = elesQ.hasId = elesQ.hasId || {};
+ if (layer.replacement) {
+ return;
+ }
+ if (ele) {
+ if (hasId[ele.id()]) {
+ return;
+ }
+ elesQ.push(ele);
+ hasId[ele.id()] = true;
+ }
+ if (layer.reqs) {
+ layer.reqs++;
+ q.updateItem(layer);
+ } else {
+ layer.reqs = 1;
+ q.push(layer);
+ }
+ };
+ LTCp.dequeue = function(pxRatio) {
+ var self2 = this;
+ var q = self2.layersQueue;
+ var deqd = [];
+ var eleDeqs = 0;
+ while (eleDeqs < maxDeqSize) {
+ if (q.size() === 0) {
+ break;
+ }
+ var layer = q.peek();
+ if (layer.replacement) {
+ q.pop();
+ continue;
+ }
+ if (layer.replaces && layer !== layer.replaces.replacement) {
+ q.pop();
+ continue;
+ }
+ if (layer.invalid) {
+ q.pop();
+ continue;
+ }
+ var ele = layer.elesQueue.shift();
+ if (ele) {
+ self2.drawEleInLayer(layer, ele, layer.level, pxRatio);
+ eleDeqs++;
+ }
+ if (deqd.length === 0) {
+ deqd.push(true);
+ }
+ if (layer.elesQueue.length === 0) {
+ q.pop();
+ layer.reqs = 0;
+ if (layer.replaces) {
+ self2.applyLayerReplacement(layer);
+ }
+ self2.requestRedraw();
+ }
+ }
+ return deqd;
+ };
+ LTCp.applyLayerReplacement = function(layer) {
+ var self2 = this;
+ var layersInLevel = self2.layersByLevel[layer.level];
+ var replaced = layer.replaces;
+ var index = layersInLevel.indexOf(replaced);
+ if (index < 0 || replaced.invalid) {
+ return;
+ }
+ layersInLevel[index] = layer;
+ for (var i2 = 0; i2 < layer.eles.length; i2++) {
+ var _p = layer.eles[i2]._private;
+ var cache2 = _p.imgLayerCaches = _p.imgLayerCaches || {};
+ if (cache2) {
+ cache2[layer.level] = layer;
+ }
+ }
+ self2.requestRedraw();
+ };
+ LTCp.requestRedraw = debounce_1(function() {
+ var r = this.renderer;
+ r.redrawHint("eles", true);
+ r.redrawHint("drag", true);
+ r.redraw();
+ }, 100);
+ LTCp.setupDequeueing = defs.setupDequeueing({
+ deqRedrawThreshold,
+ deqCost,
+ deqAvgCost,
+ deqNoDrawCost,
+ deqFastCost,
+ deq: function deq(self2, pxRatio) {
+ return self2.dequeue(pxRatio);
+ },
+ onDeqd: noop$1,
+ shouldRedraw: trueify,
+ priority: function priority(self2) {
+ return self2.renderer.beforeRenderPriorities.lyrTxrDeq;
+ }
+ });
+ var CRp$a = {};
+ var impl;
+ function polygon(context, points) {
+ for (var i2 = 0; i2 < points.length; i2++) {
+ var pt = points[i2];
+ context.lineTo(pt.x, pt.y);
+ }
+ }
+ function triangleBackcurve(context, points, controlPoint) {
+ var firstPt;
+ for (var i2 = 0; i2 < points.length; i2++) {
+ var pt = points[i2];
+ if (i2 === 0) {
+ firstPt = pt;
+ }
+ context.lineTo(pt.x, pt.y);
+ }
+ context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y);
+ }
+ function triangleTee(context, trianglePoints, teePoints) {
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ var triPts = trianglePoints;
+ for (var i2 = 0; i2 < triPts.length; i2++) {
+ var pt = triPts[i2];
+ context.lineTo(pt.x, pt.y);
+ }
+ var teePts = teePoints;
+ var firstTeePt = teePoints[0];
+ context.moveTo(firstTeePt.x, firstTeePt.y);
+ for (var i2 = 1; i2 < teePts.length; i2++) {
+ var pt = teePts[i2];
+ context.lineTo(pt.x, pt.y);
+ }
+ if (context.closePath) {
+ context.closePath();
+ }
+ }
+ function circleTriangle(context, trianglePoints, rx, ry, r) {
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ context.arc(rx, ry, r, 0, Math.PI * 2, false);
+ var triPts = trianglePoints;
+ var firstTrPt = triPts[0];
+ context.moveTo(firstTrPt.x, firstTrPt.y);
+ for (var i2 = 0; i2 < triPts.length; i2++) {
+ var pt = triPts[i2];
+ context.lineTo(pt.x, pt.y);
+ }
+ if (context.closePath) {
+ context.closePath();
+ }
+ }
+ function circle(context, rx, ry, r) {
+ context.arc(rx, ry, r, 0, Math.PI * 2, false);
+ }
+ CRp$a.arrowShapeImpl = function(name2) {
+ return (impl || (impl = {
+ "polygon": polygon,
+ "triangle-backcurve": triangleBackcurve,
+ "triangle-tee": triangleTee,
+ "circle-triangle": circleTriangle,
+ "triangle-cross": triangleTee,
+ "circle": circle
+ }))[name2];
+ };
+ var CRp$9 = {};
+ CRp$9.drawElement = function(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) {
+ var r = this;
+ if (ele.isNode()) {
+ r.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);
+ } else {
+ r.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);
+ }
+ };
+ CRp$9.drawElementOverlay = function(context, ele) {
+ var r = this;
+ if (ele.isNode()) {
+ r.drawNodeOverlay(context, ele);
+ } else {
+ r.drawEdgeOverlay(context, ele);
+ }
+ };
+ CRp$9.drawElementUnderlay = function(context, ele) {
+ var r = this;
+ if (ele.isNode()) {
+ r.drawNodeUnderlay(context, ele);
+ } else {
+ r.drawEdgeUnderlay(context, ele);
+ }
+ };
+ CRp$9.drawCachedElementPortion = function(context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity2) {
+ var r = this;
+ var bb = eleTxrCache.getBoundingBox(ele);
+ if (bb.w === 0 || bb.h === 0) {
+ return;
+ }
+ var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason);
+ if (eleCache != null) {
+ var opacity = getOpacity2(r, ele);
+ if (opacity === 0) {
+ return;
+ }
+ var theta = getRotation(r, ele);
+ var x1 = bb.x1, y1 = bb.y1, w = bb.w, h = bb.h;
+ var x, y, sx, sy, smooth;
+ if (theta !== 0) {
+ var rotPt = eleTxrCache.getRotationPoint(ele);
+ sx = rotPt.x;
+ sy = rotPt.y;
+ context.translate(sx, sy);
+ context.rotate(theta);
+ smooth = r.getImgSmoothing(context);
+ if (!smooth) {
+ r.setImgSmoothing(context, true);
+ }
+ var off = eleTxrCache.getRotationOffset(ele);
+ x = off.x;
+ y = off.y;
+ } else {
+ x = x1;
+ y = y1;
+ }
+ var oldGlobalAlpha;
+ if (opacity !== 1) {
+ oldGlobalAlpha = context.globalAlpha;
+ context.globalAlpha = oldGlobalAlpha * opacity;
+ }
+ context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x, y, w, h);
+ if (opacity !== 1) {
+ context.globalAlpha = oldGlobalAlpha;
+ }
+ if (theta !== 0) {
+ context.rotate(-theta);
+ context.translate(-sx, -sy);
+ if (!smooth) {
+ r.setImgSmoothing(context, false);
+ }
+ }
+ } else {
+ eleTxrCache.drawElement(context, ele);
+ }
+ };
+ var getZeroRotation = function getZeroRotation2() {
+ return 0;
+ };
+ var getLabelRotation = function getLabelRotation2(r, ele) {
+ return r.getTextAngle(ele, null);
+ };
+ var getSourceLabelRotation = function getSourceLabelRotation2(r, ele) {
+ return r.getTextAngle(ele, "source");
+ };
+ var getTargetLabelRotation = function getTargetLabelRotation2(r, ele) {
+ return r.getTextAngle(ele, "target");
+ };
+ var getOpacity = function getOpacity2(r, ele) {
+ return ele.effectiveOpacity();
+ };
+ var getTextOpacity = function getTextOpacity2(e, ele) {
+ return ele.pstyle("text-opacity").pfValue * ele.effectiveOpacity();
+ };
+ CRp$9.drawCachedElement = function(context, ele, pxRatio, extent, lvl, requestHighQuality) {
+ var r = this;
+ var _r$data = r.data, eleTxrCache = _r$data.eleTxrCache, lblTxrCache = _r$data.lblTxrCache, slbTxrCache = _r$data.slbTxrCache, tlbTxrCache = _r$data.tlbTxrCache;
+ var bb = ele.boundingBox();
+ var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null;
+ if (bb.w === 0 || bb.h === 0 || !ele.visible()) {
+ return;
+ }
+ if (!extent || boundingBoxesIntersect(bb, extent)) {
+ var isEdge = ele.isEdge();
+ var badLine = ele.element()._private.rscratch.badLine;
+ r.drawElementUnderlay(context, ele);
+ r.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity);
+ if (!isEdge || !badLine) {
+ r.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity);
+ }
+ if (isEdge && !badLine) {
+ r.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity);
+ r.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity);
+ }
+ r.drawElementOverlay(context, ele);
+ }
+ };
+ CRp$9.drawElements = function(context, eles) {
+ var r = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ r.drawElement(context, ele);
+ }
+ };
+ CRp$9.drawCachedElements = function(context, eles, pxRatio, extent) {
+ var r = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ r.drawCachedElement(context, ele, pxRatio, extent);
+ }
+ };
+ CRp$9.drawCachedNodes = function(context, eles, pxRatio, extent) {
+ var r = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ if (!ele.isNode()) {
+ continue;
+ }
+ r.drawCachedElement(context, ele, pxRatio, extent);
+ }
+ };
+ CRp$9.drawLayeredElements = function(context, eles, pxRatio, extent) {
+ var r = this;
+ var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio);
+ if (layers) {
+ for (var i2 = 0; i2 < layers.length; i2++) {
+ var layer = layers[i2];
+ var bb = layer.bb;
+ if (bb.w === 0 || bb.h === 0) {
+ continue;
+ }
+ context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h);
+ }
+ } else {
+ r.drawCachedElements(context, eles, pxRatio, extent);
+ }
+ };
+ var CRp$8 = {};
+ CRp$8.drawEdge = function(context, edge, shiftToOriginWithBb) {
+ var drawLabel = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
+ var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
+ var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
+ var r = this;
+ var rs = edge._private.rscratch;
+ if (shouldDrawOpacity && !edge.visible()) {
+ return;
+ }
+ if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) {
+ return;
+ }
+ var bb;
+ if (shiftToOriginWithBb) {
+ bb = shiftToOriginWithBb;
+ context.translate(-bb.x1, -bb.y1);
+ }
+ var opacity = shouldDrawOpacity ? edge.pstyle("opacity").value : 1;
+ var lineOpacity = shouldDrawOpacity ? edge.pstyle("line-opacity").value : 1;
+ var curveStyle = edge.pstyle("curve-style").value;
+ var lineStyle = edge.pstyle("line-style").value;
+ var edgeWidth = edge.pstyle("width").pfValue;
+ var lineCap = edge.pstyle("line-cap").value;
+ var effectiveLineOpacity = opacity * lineOpacity;
+ var effectiveArrowOpacity = opacity * lineOpacity;
+ var drawLine = function drawLine2() {
+ var strokeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveLineOpacity;
+ if (curveStyle === "straight-triangle") {
+ r.eleStrokeStyle(context, edge, strokeOpacity);
+ r.drawEdgeTrianglePath(edge, context, rs.allpts);
+ } else {
+ context.lineWidth = edgeWidth;
+ context.lineCap = lineCap;
+ r.eleStrokeStyle(context, edge, strokeOpacity);
+ r.drawEdgePath(edge, context, rs.allpts, lineStyle);
+ context.lineCap = "butt";
+ }
+ };
+ var drawOverlay = function drawOverlay2() {
+ if (!shouldDrawOverlay) {
+ return;
+ }
+ r.drawEdgeOverlay(context, edge);
+ };
+ var drawUnderlay = function drawUnderlay2() {
+ if (!shouldDrawOverlay) {
+ return;
+ }
+ r.drawEdgeUnderlay(context, edge);
+ };
+ var drawArrows = function drawArrows2() {
+ var arrowOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveArrowOpacity;
+ r.drawArrowheads(context, edge, arrowOpacity);
+ };
+ var drawText = function drawText2() {
+ r.drawElementText(context, edge, null, drawLabel);
+ };
+ context.lineJoin = "round";
+ var ghost = edge.pstyle("ghost").value === "yes";
+ if (ghost) {
+ var gx = edge.pstyle("ghost-offset-x").pfValue;
+ var gy = edge.pstyle("ghost-offset-y").pfValue;
+ var ghostOpacity = edge.pstyle("ghost-opacity").value;
+ var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity;
+ context.translate(gx, gy);
+ drawLine(effectiveGhostOpacity);
+ drawArrows(effectiveGhostOpacity);
+ context.translate(-gx, -gy);
+ }
+ drawUnderlay();
+ drawLine();
+ drawArrows();
+ drawOverlay();
+ drawText();
+ if (shiftToOriginWithBb) {
+ context.translate(bb.x1, bb.y1);
+ }
+ };
+ var drawEdgeOverlayUnderlay = function drawEdgeOverlayUnderlay2(overlayOrUnderlay) {
+ if (!["overlay", "underlay"].includes(overlayOrUnderlay)) {
+ throw new Error("Invalid state");
+ }
+ return function(context, edge) {
+ if (!edge.visible()) {
+ return;
+ }
+ var opacity = edge.pstyle("".concat(overlayOrUnderlay, "-opacity")).value;
+ if (opacity === 0) {
+ return;
+ }
+ var r = this;
+ var usePaths = r.usePaths();
+ var rs = edge._private.rscratch;
+ var padding = edge.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue;
+ var width = 2 * padding;
+ var color = edge.pstyle("".concat(overlayOrUnderlay, "-color")).value;
+ context.lineWidth = width;
+ if (rs.edgeType === "self" && !usePaths) {
+ context.lineCap = "butt";
+ } else {
+ context.lineCap = "round";
+ }
+ r.colorStrokeStyle(context, color[0], color[1], color[2], opacity);
+ r.drawEdgePath(edge, context, rs.allpts, "solid");
+ };
+ };
+ CRp$8.drawEdgeOverlay = drawEdgeOverlayUnderlay("overlay");
+ CRp$8.drawEdgeUnderlay = drawEdgeOverlayUnderlay("underlay");
+ CRp$8.drawEdgePath = function(edge, context, pts2, type) {
+ var rs = edge._private.rscratch;
+ var canvasCxt = context;
+ var path;
+ var pathCacheHit = false;
+ var usePaths = this.usePaths();
+ var lineDashPattern = edge.pstyle("line-dash-pattern").pfValue;
+ var lineDashOffset = edge.pstyle("line-dash-offset").pfValue;
+ if (usePaths) {
+ var pathCacheKey = pts2.join("$");
+ var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey;
+ if (keyMatches) {
+ path = context = rs.pathCache;
+ pathCacheHit = true;
+ } else {
+ path = context = new Path2D();
+ rs.pathCacheKey = pathCacheKey;
+ rs.pathCache = path;
+ }
+ }
+ if (canvasCxt.setLineDash) {
+ switch (type) {
+ case "dotted":
+ canvasCxt.setLineDash([1, 1]);
+ break;
+ case "dashed":
+ canvasCxt.setLineDash(lineDashPattern);
+ canvasCxt.lineDashOffset = lineDashOffset;
+ break;
+ case "solid":
+ canvasCxt.setLineDash([]);
+ break;
+ }
+ }
+ if (!pathCacheHit && !rs.badLine) {
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ context.moveTo(pts2[0], pts2[1]);
+ switch (rs.edgeType) {
+ case "bezier":
+ case "self":
+ case "compound":
+ case "multibezier":
+ for (var i2 = 2; i2 + 3 < pts2.length; i2 += 4) {
+ context.quadraticCurveTo(pts2[i2], pts2[i2 + 1], pts2[i2 + 2], pts2[i2 + 3]);
+ }
+ break;
+ case "straight":
+ case "segments":
+ case "haystack":
+ for (var _i = 2; _i + 1 < pts2.length; _i += 2) {
+ context.lineTo(pts2[_i], pts2[_i + 1]);
+ }
+ break;
+ }
+ }
+ context = canvasCxt;
+ if (usePaths) {
+ context.stroke(path);
+ } else {
+ context.stroke();
+ }
+ if (context.setLineDash) {
+ context.setLineDash([]);
+ }
+ };
+ CRp$8.drawEdgeTrianglePath = function(edge, context, pts2) {
+ context.fillStyle = context.strokeStyle;
+ var edgeWidth = edge.pstyle("width").pfValue;
+ for (var i2 = 0; i2 + 1 < pts2.length; i2 += 2) {
+ var vector = [pts2[i2 + 2] - pts2[i2], pts2[i2 + 3] - pts2[i2 + 1]];
+ var length = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]);
+ var normal = [vector[1] / length, -vector[0] / length];
+ var triangleHead = [normal[0] * edgeWidth / 2, normal[1] * edgeWidth / 2];
+ context.beginPath();
+ context.moveTo(pts2[i2] - triangleHead[0], pts2[i2 + 1] - triangleHead[1]);
+ context.lineTo(pts2[i2] + triangleHead[0], pts2[i2 + 1] + triangleHead[1]);
+ context.lineTo(pts2[i2 + 2], pts2[i2 + 3]);
+ context.closePath();
+ context.fill();
+ }
+ };
+ CRp$8.drawArrowheads = function(context, edge, opacity) {
+ var rs = edge._private.rscratch;
+ var isHaystack = rs.edgeType === "haystack";
+ if (!isHaystack) {
+ this.drawArrowhead(context, edge, "source", rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity);
+ }
+ this.drawArrowhead(context, edge, "mid-target", rs.midX, rs.midY, rs.midtgtArrowAngle, opacity);
+ this.drawArrowhead(context, edge, "mid-source", rs.midX, rs.midY, rs.midsrcArrowAngle, opacity);
+ if (!isHaystack) {
+ this.drawArrowhead(context, edge, "target", rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity);
+ }
+ };
+ CRp$8.drawArrowhead = function(context, edge, prefix, x, y, angle, opacity) {
+ if (isNaN(x) || x == null || isNaN(y) || y == null || isNaN(angle) || angle == null) {
+ return;
+ }
+ var self2 = this;
+ var arrowShape = edge.pstyle(prefix + "-arrow-shape").value;
+ if (arrowShape === "none") {
+ return;
+ }
+ var arrowClearFill = edge.pstyle(prefix + "-arrow-fill").value === "hollow" ? "both" : "filled";
+ var arrowFill = edge.pstyle(prefix + "-arrow-fill").value;
+ var edgeWidth = edge.pstyle("width").pfValue;
+ var edgeOpacity = edge.pstyle("opacity").value;
+ if (opacity === void 0) {
+ opacity = edgeOpacity;
+ }
+ var gco = context.globalCompositeOperation;
+ if (opacity !== 1 || arrowFill === "hollow") {
+ context.globalCompositeOperation = "destination-out";
+ self2.colorFillStyle(context, 255, 255, 255, 1);
+ self2.colorStrokeStyle(context, 255, 255, 255, 1);
+ self2.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, x, y, angle);
+ context.globalCompositeOperation = gco;
+ }
+ var color = edge.pstyle(prefix + "-arrow-color").value;
+ self2.colorFillStyle(context, color[0], color[1], color[2], opacity);
+ self2.colorStrokeStyle(context, color[0], color[1], color[2], opacity);
+ self2.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, x, y, angle);
+ };
+ CRp$8.drawArrowShape = function(edge, context, fill, edgeWidth, shape, x, y, angle) {
+ var r = this;
+ var usePaths = this.usePaths() && shape !== "triangle-cross";
+ var pathCacheHit = false;
+ var path;
+ var canvasContext = context;
+ var translation = {
+ x,
+ y
+ };
+ var scale = edge.pstyle("arrow-scale").value;
+ var size = this.getArrowWidth(edgeWidth, scale);
+ var shapeImpl = r.arrowShapes[shape];
+ if (usePaths) {
+ var cache2 = r.arrowPathCache = r.arrowPathCache || [];
+ var key = hashString(shape);
+ var cachedPath = cache2[key];
+ if (cachedPath != null) {
+ path = context = cachedPath;
+ pathCacheHit = true;
+ } else {
+ path = context = new Path2D();
+ cache2[key] = path;
+ }
+ }
+ if (!pathCacheHit) {
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ if (usePaths) {
+ shapeImpl.draw(context, 1, 0, {
+ x: 0,
+ y: 0
+ }, 1);
+ } else {
+ shapeImpl.draw(context, size, angle, translation, edgeWidth);
+ }
+ if (context.closePath) {
+ context.closePath();
+ }
+ }
+ context = canvasContext;
+ if (usePaths) {
+ context.translate(x, y);
+ context.rotate(angle);
+ context.scale(size, size);
+ }
+ if (fill === "filled" || fill === "both") {
+ if (usePaths) {
+ context.fill(path);
+ } else {
+ context.fill();
+ }
+ }
+ if (fill === "hollow" || fill === "both") {
+ context.lineWidth = (shapeImpl.matchEdgeWidth ? edgeWidth : 1) / (usePaths ? size : 1);
+ context.lineJoin = "miter";
+ if (usePaths) {
+ context.stroke(path);
+ } else {
+ context.stroke();
+ }
+ }
+ if (usePaths) {
+ context.scale(1 / size, 1 / size);
+ context.rotate(-angle);
+ context.translate(-x, -y);
+ }
+ };
+ var CRp$7 = {};
+ CRp$7.safeDrawImage = function(context, img, ix, iy, iw, ih, x, y, w, h) {
+ if (iw <= 0 || ih <= 0 || w <= 0 || h <= 0) {
+ return;
+ }
+ try {
+ context.drawImage(img, ix, iy, iw, ih, x, y, w, h);
+ } catch (e) {
+ warn(e);
+ }
+ };
+ CRp$7.drawInscribedImage = function(context, img, node, index, nodeOpacity) {
+ var r = this;
+ var pos = node.position();
+ var nodeX = pos.x;
+ var nodeY = pos.y;
+ var styleObj = node.cy().style();
+ var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj);
+ var fit = getIndexedStyle(node, "background-fit", "value", index);
+ var repeat = getIndexedStyle(node, "background-repeat", "value", index);
+ var nodeW = node.width();
+ var nodeH = node.height();
+ var paddingX2 = node.padding() * 2;
+ var nodeTW = nodeW + (getIndexedStyle(node, "background-width-relative-to", "value", index) === "inner" ? 0 : paddingX2);
+ var nodeTH = nodeH + (getIndexedStyle(node, "background-height-relative-to", "value", index) === "inner" ? 0 : paddingX2);
+ var rs = node._private.rscratch;
+ var clip = getIndexedStyle(node, "background-clip", "value", index);
+ var shouldClip = clip === "node";
+ var imgOpacity = getIndexedStyle(node, "background-image-opacity", "value", index) * nodeOpacity;
+ var smooth = getIndexedStyle(node, "background-image-smoothing", "value", index);
+ var imgW = img.width || img.cachedW;
+ var imgH = img.height || img.cachedH;
+ if (null == imgW || null == imgH) {
+ document.body.appendChild(img);
+ imgW = img.cachedW = img.width || img.offsetWidth;
+ imgH = img.cachedH = img.height || img.offsetHeight;
+ document.body.removeChild(img);
+ }
+ var w = imgW;
+ var h = imgH;
+ if (getIndexedStyle(node, "background-width", "value", index) !== "auto") {
+ if (getIndexedStyle(node, "background-width", "units", index) === "%") {
+ w = getIndexedStyle(node, "background-width", "pfValue", index) * nodeTW;
+ } else {
+ w = getIndexedStyle(node, "background-width", "pfValue", index);
+ }
+ }
+ if (getIndexedStyle(node, "background-height", "value", index) !== "auto") {
+ if (getIndexedStyle(node, "background-height", "units", index) === "%") {
+ h = getIndexedStyle(node, "background-height", "pfValue", index) * nodeTH;
+ } else {
+ h = getIndexedStyle(node, "background-height", "pfValue", index);
+ }
+ }
+ if (w === 0 || h === 0) {
+ return;
+ }
+ if (fit === "contain") {
+ var scale = Math.min(nodeTW / w, nodeTH / h);
+ w *= scale;
+ h *= scale;
+ } else if (fit === "cover") {
+ var scale = Math.max(nodeTW / w, nodeTH / h);
+ w *= scale;
+ h *= scale;
+ }
+ var x = nodeX - nodeTW / 2;
+ var posXUnits = getIndexedStyle(node, "background-position-x", "units", index);
+ var posXPfVal = getIndexedStyle(node, "background-position-x", "pfValue", index);
+ if (posXUnits === "%") {
+ x += (nodeTW - w) * posXPfVal;
+ } else {
+ x += posXPfVal;
+ }
+ var offXUnits = getIndexedStyle(node, "background-offset-x", "units", index);
+ var offXPfVal = getIndexedStyle(node, "background-offset-x", "pfValue", index);
+ if (offXUnits === "%") {
+ x += (nodeTW - w) * offXPfVal;
+ } else {
+ x += offXPfVal;
+ }
+ var y = nodeY - nodeTH / 2;
+ var posYUnits = getIndexedStyle(node, "background-position-y", "units", index);
+ var posYPfVal = getIndexedStyle(node, "background-position-y", "pfValue", index);
+ if (posYUnits === "%") {
+ y += (nodeTH - h) * posYPfVal;
+ } else {
+ y += posYPfVal;
+ }
+ var offYUnits = getIndexedStyle(node, "background-offset-y", "units", index);
+ var offYPfVal = getIndexedStyle(node, "background-offset-y", "pfValue", index);
+ if (offYUnits === "%") {
+ y += (nodeTH - h) * offYPfVal;
+ } else {
+ y += offYPfVal;
+ }
+ if (rs.pathCache) {
+ x -= nodeX;
+ y -= nodeY;
+ nodeX = 0;
+ nodeY = 0;
+ }
+ var gAlpha = context.globalAlpha;
+ context.globalAlpha = imgOpacity;
+ var smoothingEnabled = r.getImgSmoothing(context);
+ var isSmoothingSwitched = false;
+ if (smooth === "no" && smoothingEnabled) {
+ r.setImgSmoothing(context, false);
+ isSmoothingSwitched = true;
+ } else if (smooth === "yes" && !smoothingEnabled) {
+ r.setImgSmoothing(context, true);
+ isSmoothingSwitched = true;
+ }
+ if (repeat === "no-repeat") {
+ if (shouldClip) {
+ context.save();
+ if (rs.pathCache) {
+ context.clip(rs.pathCache);
+ } else {
+ r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH);
+ context.clip();
+ }
+ }
+ r.safeDrawImage(context, img, 0, 0, imgW, imgH, x, y, w, h);
+ if (shouldClip) {
+ context.restore();
+ }
+ } else {
+ var pattern = context.createPattern(img, repeat);
+ context.fillStyle = pattern;
+ r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH);
+ context.translate(x, y);
+ context.fill();
+ context.translate(-x, -y);
+ }
+ context.globalAlpha = gAlpha;
+ if (isSmoothingSwitched) {
+ r.setImgSmoothing(context, smoothingEnabled);
+ }
+ };
+ var CRp$6 = {};
+ CRp$6.eleTextBiggerThanMin = function(ele, scale) {
+ if (!scale) {
+ var zoom = ele.cy().zoom();
+ var pxRatio = this.getPixelRatio();
+ var lvl = Math.ceil(log2(zoom * pxRatio));
+ scale = Math.pow(2, lvl);
+ }
+ var computedSize = ele.pstyle("font-size").pfValue * scale;
+ var minSize = ele.pstyle("min-zoomed-font-size").pfValue;
+ if (computedSize < minSize) {
+ return false;
+ }
+ return true;
+ };
+ CRp$6.drawElementText = function(context, ele, shiftToOriginWithBb, force, prefix) {
+ var useEleOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
+ var r = this;
+ if (force == null) {
+ if (useEleOpacity && !r.eleTextBiggerThanMin(ele)) {
+ return;
+ }
+ } else if (force === false) {
+ return;
+ }
+ if (ele.isNode()) {
+ var label = ele.pstyle("label");
+ if (!label || !label.value) {
+ return;
+ }
+ var justification = r.getLabelJustification(ele);
+ context.textAlign = justification;
+ context.textBaseline = "bottom";
+ } else {
+ var badLine = ele.element()._private.rscratch.badLine;
+ var _label = ele.pstyle("label");
+ var srcLabel = ele.pstyle("source-label");
+ var tgtLabel = ele.pstyle("target-label");
+ if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) {
+ return;
+ }
+ context.textAlign = "center";
+ context.textBaseline = "bottom";
+ }
+ var applyRotation = !shiftToOriginWithBb;
+ var bb;
+ if (shiftToOriginWithBb) {
+ bb = shiftToOriginWithBb;
+ context.translate(-bb.x1, -bb.y1);
+ }
+ if (prefix == null) {
+ r.drawText(context, ele, null, applyRotation, useEleOpacity);
+ if (ele.isEdge()) {
+ r.drawText(context, ele, "source", applyRotation, useEleOpacity);
+ r.drawText(context, ele, "target", applyRotation, useEleOpacity);
+ }
+ } else {
+ r.drawText(context, ele, prefix, applyRotation, useEleOpacity);
+ }
+ if (shiftToOriginWithBb) {
+ context.translate(bb.x1, bb.y1);
+ }
+ };
+ CRp$6.getFontCache = function(context) {
+ var cache2;
+ this.fontCaches = this.fontCaches || [];
+ for (var i2 = 0; i2 < this.fontCaches.length; i2++) {
+ cache2 = this.fontCaches[i2];
+ if (cache2.context === context) {
+ return cache2;
+ }
+ }
+ cache2 = {
+ context
+ };
+ this.fontCaches.push(cache2);
+ return cache2;
+ };
+ CRp$6.setupTextStyle = function(context, ele) {
+ var useEleOpacity = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
+ var labelStyle = ele.pstyle("font-style").strValue;
+ var labelSize = ele.pstyle("font-size").pfValue + "px";
+ var labelFamily = ele.pstyle("font-family").strValue;
+ var labelWeight = ele.pstyle("font-weight").strValue;
+ var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle("text-opacity").value : 1;
+ var outlineOpacity = ele.pstyle("text-outline-opacity").value * opacity;
+ var color = ele.pstyle("color").value;
+ var outlineColor = ele.pstyle("text-outline-color").value;
+ context.font = labelStyle + " " + labelWeight + " " + labelSize + " " + labelFamily;
+ context.lineJoin = "round";
+ this.colorFillStyle(context, color[0], color[1], color[2], opacity);
+ this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity);
+ };
+ function roundRect(ctx, x, y, width, height) {
+ var radius = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 5;
+ ctx.beginPath();
+ ctx.moveTo(x + radius, y);
+ ctx.lineTo(x + width - radius, y);
+ ctx.quadraticCurveTo(x + width, y, x + width, y + radius);
+ ctx.lineTo(x + width, y + height - radius);
+ ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);
+ ctx.lineTo(x + radius, y + height);
+ ctx.quadraticCurveTo(x, y + height, x, y + height - radius);
+ ctx.lineTo(x, y + radius);
+ ctx.quadraticCurveTo(x, y, x + radius, y);
+ ctx.closePath();
+ ctx.fill();
+ }
+ CRp$6.getTextAngle = function(ele, prefix) {
+ var theta;
+ var _p = ele._private;
+ var rscratch = _p.rscratch;
+ var pdash = prefix ? prefix + "-" : "";
+ var rotation = ele.pstyle(pdash + "text-rotation");
+ var textAngle = getPrefixedProperty(rscratch, "labelAngle", prefix);
+ if (rotation.strValue === "autorotate") {
+ theta = ele.isEdge() ? textAngle : 0;
+ } else if (rotation.strValue === "none") {
+ theta = 0;
+ } else {
+ theta = rotation.pfValue;
+ }
+ return theta;
+ };
+ CRp$6.drawText = function(context, ele, prefix) {
+ var applyRotation = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
+ var useEleOpacity = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
+ var _p = ele._private;
+ var rscratch = _p.rscratch;
+ var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1;
+ if (useEleOpacity && (parentOpacity === 0 || ele.pstyle("text-opacity").value === 0)) {
+ return;
+ }
+ if (prefix === "main") {
+ prefix = null;
+ }
+ var textX = getPrefixedProperty(rscratch, "labelX", prefix);
+ var textY = getPrefixedProperty(rscratch, "labelY", prefix);
+ var orgTextX, orgTextY;
+ var text = this.getLabelText(ele, prefix);
+ if (text != null && text !== "" && !isNaN(textX) && !isNaN(textY)) {
+ this.setupTextStyle(context, ele, useEleOpacity);
+ var pdash = prefix ? prefix + "-" : "";
+ var textW = getPrefixedProperty(rscratch, "labelWidth", prefix);
+ var textH = getPrefixedProperty(rscratch, "labelHeight", prefix);
+ var marginX = ele.pstyle(pdash + "text-margin-x").pfValue;
+ var marginY = ele.pstyle(pdash + "text-margin-y").pfValue;
+ var isEdge = ele.isEdge();
+ var halign = ele.pstyle("text-halign").value;
+ var valign = ele.pstyle("text-valign").value;
+ if (isEdge) {
+ halign = "center";
+ valign = "center";
+ }
+ textX += marginX;
+ textY += marginY;
+ var theta;
+ if (!applyRotation) {
+ theta = 0;
+ } else {
+ theta = this.getTextAngle(ele, prefix);
+ }
+ if (theta !== 0) {
+ orgTextX = textX;
+ orgTextY = textY;
+ context.translate(orgTextX, orgTextY);
+ context.rotate(theta);
+ textX = 0;
+ textY = 0;
+ }
+ switch (valign) {
+ case "top":
+ break;
+ case "center":
+ textY += textH / 2;
+ break;
+ case "bottom":
+ textY += textH;
+ break;
+ }
+ var backgroundOpacity = ele.pstyle("text-background-opacity").value;
+ var borderOpacity = ele.pstyle("text-border-opacity").value;
+ var textBorderWidth = ele.pstyle("text-border-width").pfValue;
+ var backgroundPadding = ele.pstyle("text-background-padding").pfValue;
+ if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) {
+ var bgX = textX - backgroundPadding;
+ switch (halign) {
+ case "left":
+ bgX -= textW;
+ break;
+ case "center":
+ bgX -= textW / 2;
+ break;
+ }
+ var bgY = textY - textH - backgroundPadding;
+ var bgW = textW + 2 * backgroundPadding;
+ var bgH = textH + 2 * backgroundPadding;
+ if (backgroundOpacity > 0) {
+ var textFill = context.fillStyle;
+ var textBackgroundColor = ele.pstyle("text-background-color").value;
+ context.fillStyle = "rgba(" + textBackgroundColor[0] + "," + textBackgroundColor[1] + "," + textBackgroundColor[2] + "," + backgroundOpacity * parentOpacity + ")";
+ var styleShape = ele.pstyle("text-background-shape").strValue;
+ if (styleShape.indexOf("round") === 0) {
+ roundRect(context, bgX, bgY, bgW, bgH, 2);
+ } else {
+ context.fillRect(bgX, bgY, bgW, bgH);
+ }
+ context.fillStyle = textFill;
+ }
+ if (textBorderWidth > 0 && borderOpacity > 0) {
+ var textStroke = context.strokeStyle;
+ var textLineWidth = context.lineWidth;
+ var textBorderColor = ele.pstyle("text-border-color").value;
+ var textBorderStyle = ele.pstyle("text-border-style").value;
+ context.strokeStyle = "rgba(" + textBorderColor[0] + "," + textBorderColor[1] + "," + textBorderColor[2] + "," + borderOpacity * parentOpacity + ")";
+ context.lineWidth = textBorderWidth;
+ if (context.setLineDash) {
+ switch (textBorderStyle) {
+ case "dotted":
+ context.setLineDash([1, 1]);
+ break;
+ case "dashed":
+ context.setLineDash([4, 2]);
+ break;
+ case "double":
+ context.lineWidth = textBorderWidth / 4;
+ context.setLineDash([]);
+ break;
+ case "solid":
+ context.setLineDash([]);
+ break;
+ }
+ }
+ context.strokeRect(bgX, bgY, bgW, bgH);
+ if (textBorderStyle === "double") {
+ var whiteWidth = textBorderWidth / 2;
+ context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2);
+ }
+ if (context.setLineDash) {
+ context.setLineDash([]);
+ }
+ context.lineWidth = textLineWidth;
+ context.strokeStyle = textStroke;
+ }
+ }
+ var lineWidth = 2 * ele.pstyle("text-outline-width").pfValue;
+ if (lineWidth > 0) {
+ context.lineWidth = lineWidth;
+ }
+ if (ele.pstyle("text-wrap").value === "wrap") {
+ var lines = getPrefixedProperty(rscratch, "labelWrapCachedLines", prefix);
+ var lineHeight = getPrefixedProperty(rscratch, "labelLineHeight", prefix);
+ var halfTextW = textW / 2;
+ var justification = this.getLabelJustification(ele);
+ if (justification === "auto")
+ ;
+ else if (halign === "left") {
+ if (justification === "left") {
+ textX += -textW;
+ } else if (justification === "center") {
+ textX += -halfTextW;
+ }
+ } else if (halign === "center") {
+ if (justification === "left") {
+ textX += -halfTextW;
+ } else if (justification === "right") {
+ textX += halfTextW;
+ }
+ } else if (halign === "right") {
+ if (justification === "center") {
+ textX += halfTextW;
+ } else if (justification === "right") {
+ textX += textW;
+ }
+ }
+ switch (valign) {
+ case "top":
+ textY -= (lines.length - 1) * lineHeight;
+ break;
+ case "center":
+ case "bottom":
+ textY -= (lines.length - 1) * lineHeight;
+ break;
+ }
+ for (var l = 0; l < lines.length; l++) {
+ if (lineWidth > 0) {
+ context.strokeText(lines[l], textX, textY);
+ }
+ context.fillText(lines[l], textX, textY);
+ textY += lineHeight;
+ }
+ } else {
+ if (lineWidth > 0) {
+ context.strokeText(text, textX, textY);
+ }
+ context.fillText(text, textX, textY);
+ }
+ if (theta !== 0) {
+ context.rotate(-theta);
+ context.translate(-orgTextX, -orgTextY);
+ }
+ }
+ };
+ var CRp$5 = {};
+ CRp$5.drawNode = function(context, node, shiftToOriginWithBb) {
+ var drawLabel = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
+ var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
+ var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
+ var r = this;
+ var nodeWidth, nodeHeight;
+ var _p = node._private;
+ var rs = _p.rscratch;
+ var pos = node.position();
+ if (!number$1(pos.x) || !number$1(pos.y)) {
+ return;
+ }
+ if (shouldDrawOpacity && !node.visible()) {
+ return;
+ }
+ var eleOpacity = shouldDrawOpacity ? node.effectiveOpacity() : 1;
+ var usePaths = r.usePaths();
+ var path;
+ var pathCacheHit = false;
+ var padding = node.padding();
+ nodeWidth = node.width() + 2 * padding;
+ nodeHeight = node.height() + 2 * padding;
+ var bb;
+ if (shiftToOriginWithBb) {
+ bb = shiftToOriginWithBb;
+ context.translate(-bb.x1, -bb.y1);
+ }
+ var bgImgProp = node.pstyle("background-image");
+ var urls = bgImgProp.value;
+ var urlDefined = new Array(urls.length);
+ var image = new Array(urls.length);
+ var numImages = 0;
+ for (var i2 = 0; i2 < urls.length; i2++) {
+ var url = urls[i2];
+ var defd = urlDefined[i2] = url != null && url !== "none";
+ if (defd) {
+ var bgImgCrossOrigin = node.cy().style().getIndexedStyle(node, "background-image-crossorigin", "value", i2);
+ numImages++;
+ image[i2] = r.getCachedImage(url, bgImgCrossOrigin, function() {
+ _p.backgroundTimestamp = Date.now();
+ node.emitAndNotify("background");
+ });
+ }
+ }
+ var darkness = node.pstyle("background-blacken").value;
+ var borderWidth = node.pstyle("border-width").pfValue;
+ var bgOpacity = node.pstyle("background-opacity").value * eleOpacity;
+ var borderColor = node.pstyle("border-color").value;
+ var borderStyle = node.pstyle("border-style").value;
+ var borderOpacity = node.pstyle("border-opacity").value * eleOpacity;
+ context.lineJoin = "miter";
+ var setupShapeColor = function setupShapeColor2() {
+ var bgOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : bgOpacity;
+ r.eleFillStyle(context, node, bgOpy);
+ };
+ var setupBorderColor = function setupBorderColor2() {
+ var bdrOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : borderOpacity;
+ r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy);
+ };
+ var styleShape = node.pstyle("shape").strValue;
+ var shapePts = node.pstyle("shape-polygon-points").pfValue;
+ if (usePaths) {
+ context.translate(pos.x, pos.y);
+ var pathCache = r.nodePathCache = r.nodePathCache || [];
+ var key = hashStrings(styleShape === "polygon" ? styleShape + "," + shapePts.join(",") : styleShape, "" + nodeHeight, "" + nodeWidth);
+ var cachedPath = pathCache[key];
+ if (cachedPath != null) {
+ path = cachedPath;
+ pathCacheHit = true;
+ rs.pathCache = path;
+ } else {
+ path = new Path2D();
+ pathCache[key] = rs.pathCache = path;
+ }
+ }
+ var drawShape = function drawShape2() {
+ if (!pathCacheHit) {
+ var npos = pos;
+ if (usePaths) {
+ npos = {
+ x: 0,
+ y: 0
+ };
+ }
+ r.nodeShapes[r.getNodeShape(node)].draw(path || context, npos.x, npos.y, nodeWidth, nodeHeight);
+ }
+ if (usePaths) {
+ context.fill(path);
+ } else {
+ context.fill();
+ }
+ };
+ var drawImages = function drawImages2() {
+ var nodeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity;
+ var inside = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ var prevBging = _p.backgrounding;
+ var totalCompleted = 0;
+ for (var _i = 0; _i < image.length; _i++) {
+ var bgContainment = node.cy().style().getIndexedStyle(node, "background-image-containment", "value", _i);
+ if (inside && bgContainment === "over" || !inside && bgContainment === "inside") {
+ totalCompleted++;
+ continue;
+ }
+ if (urlDefined[_i] && image[_i].complete && !image[_i].error) {
+ totalCompleted++;
+ r.drawInscribedImage(context, image[_i], node, _i, nodeOpacity);
+ }
+ }
+ _p.backgrounding = !(totalCompleted === numImages);
+ if (prevBging !== _p.backgrounding) {
+ node.updateStyle(false);
+ }
+ };
+ var drawPie = function drawPie2() {
+ var redrawShape = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
+ var pieOpacity = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : eleOpacity;
+ if (r.hasPie(node)) {
+ r.drawPie(context, node, pieOpacity);
+ if (redrawShape) {
+ if (!usePaths) {
+ r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight);
+ }
+ }
+ }
+ };
+ var darken2 = function darken3() {
+ var darkenOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity;
+ var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity;
+ var c = darkness > 0 ? 0 : 255;
+ if (darkness !== 0) {
+ r.colorFillStyle(context, c, c, c, opacity);
+ if (usePaths) {
+ context.fill(path);
+ } else {
+ context.fill();
+ }
+ }
+ };
+ var drawBorder = function drawBorder2() {
+ if (borderWidth > 0) {
+ context.lineWidth = borderWidth;
+ context.lineCap = "butt";
+ if (context.setLineDash) {
+ switch (borderStyle) {
+ case "dotted":
+ context.setLineDash([1, 1]);
+ break;
+ case "dashed":
+ context.setLineDash([4, 2]);
+ break;
+ case "solid":
+ case "double":
+ context.setLineDash([]);
+ break;
+ }
+ }
+ if (usePaths) {
+ context.stroke(path);
+ } else {
+ context.stroke();
+ }
+ if (borderStyle === "double") {
+ context.lineWidth = borderWidth / 3;
+ var gco = context.globalCompositeOperation;
+ context.globalCompositeOperation = "destination-out";
+ if (usePaths) {
+ context.stroke(path);
+ } else {
+ context.stroke();
+ }
+ context.globalCompositeOperation = gco;
+ }
+ if (context.setLineDash) {
+ context.setLineDash([]);
+ }
+ }
+ };
+ var drawOverlay = function drawOverlay2() {
+ if (shouldDrawOverlay) {
+ r.drawNodeOverlay(context, node, pos, nodeWidth, nodeHeight);
+ }
+ };
+ var drawUnderlay = function drawUnderlay2() {
+ if (shouldDrawOverlay) {
+ r.drawNodeUnderlay(context, node, pos, nodeWidth, nodeHeight);
+ }
+ };
+ var drawText = function drawText2() {
+ r.drawElementText(context, node, null, drawLabel);
+ };
+ var ghost = node.pstyle("ghost").value === "yes";
+ if (ghost) {
+ var gx = node.pstyle("ghost-offset-x").pfValue;
+ var gy = node.pstyle("ghost-offset-y").pfValue;
+ var ghostOpacity = node.pstyle("ghost-opacity").value;
+ var effGhostOpacity = ghostOpacity * eleOpacity;
+ context.translate(gx, gy);
+ setupShapeColor(ghostOpacity * bgOpacity);
+ drawShape();
+ drawImages(effGhostOpacity, true);
+ setupBorderColor(ghostOpacity * borderOpacity);
+ drawBorder();
+ drawPie(darkness !== 0 || borderWidth !== 0);
+ drawImages(effGhostOpacity, false);
+ darken2(effGhostOpacity);
+ context.translate(-gx, -gy);
+ }
+ if (usePaths) {
+ context.translate(-pos.x, -pos.y);
+ }
+ drawUnderlay();
+ if (usePaths) {
+ context.translate(pos.x, pos.y);
+ }
+ setupShapeColor();
+ drawShape();
+ drawImages(eleOpacity, true);
+ setupBorderColor();
+ drawBorder();
+ drawPie(darkness !== 0 || borderWidth !== 0);
+ drawImages(eleOpacity, false);
+ darken2();
+ if (usePaths) {
+ context.translate(-pos.x, -pos.y);
+ }
+ drawText();
+ drawOverlay();
+ if (shiftToOriginWithBb) {
+ context.translate(bb.x1, bb.y1);
+ }
+ };
+ var drawNodeOverlayUnderlay = function drawNodeOverlayUnderlay2(overlayOrUnderlay) {
+ if (!["overlay", "underlay"].includes(overlayOrUnderlay)) {
+ throw new Error("Invalid state");
+ }
+ return function(context, node, pos, nodeWidth, nodeHeight) {
+ var r = this;
+ if (!node.visible()) {
+ return;
+ }
+ var padding = node.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue;
+ var opacity = node.pstyle("".concat(overlayOrUnderlay, "-opacity")).value;
+ var color = node.pstyle("".concat(overlayOrUnderlay, "-color")).value;
+ var shape = node.pstyle("".concat(overlayOrUnderlay, "-shape")).value;
+ if (opacity > 0) {
+ pos = pos || node.position();
+ if (nodeWidth == null || nodeHeight == null) {
+ var _padding = node.padding();
+ nodeWidth = node.width() + 2 * _padding;
+ nodeHeight = node.height() + 2 * _padding;
+ }
+ r.colorFillStyle(context, color[0], color[1], color[2], opacity);
+ r.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding * 2, nodeHeight + padding * 2);
+ context.fill();
+ }
+ };
+ };
+ CRp$5.drawNodeOverlay = drawNodeOverlayUnderlay("overlay");
+ CRp$5.drawNodeUnderlay = drawNodeOverlayUnderlay("underlay");
+ CRp$5.hasPie = function(node) {
+ node = node[0];
+ return node._private.hasPie;
+ };
+ CRp$5.drawPie = function(context, node, nodeOpacity, pos) {
+ node = node[0];
+ pos = pos || node.position();
+ var cyStyle = node.cy().style();
+ var pieSize = node.pstyle("pie-size");
+ var x = pos.x;
+ var y = pos.y;
+ var nodeW = node.width();
+ var nodeH = node.height();
+ var radius = Math.min(nodeW, nodeH) / 2;
+ var lastPercent = 0;
+ var usePaths = this.usePaths();
+ if (usePaths) {
+ x = 0;
+ y = 0;
+ }
+ if (pieSize.units === "%") {
+ radius = radius * pieSize.pfValue;
+ } else if (pieSize.pfValue !== void 0) {
+ radius = pieSize.pfValue / 2;
+ }
+ for (var i2 = 1; i2 <= cyStyle.pieBackgroundN; i2++) {
+ var size = node.pstyle("pie-" + i2 + "-background-size").value;
+ var color = node.pstyle("pie-" + i2 + "-background-color").value;
+ var opacity = node.pstyle("pie-" + i2 + "-background-opacity").value * nodeOpacity;
+ var percent = size / 100;
+ if (percent + lastPercent > 1) {
+ percent = 1 - lastPercent;
+ }
+ var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent;
+ var angleDelta = 2 * Math.PI * percent;
+ var angleEnd = angleStart + angleDelta;
+ if (size === 0 || lastPercent >= 1 || lastPercent + percent > 1) {
+ continue;
+ }
+ context.beginPath();
+ context.moveTo(x, y);
+ context.arc(x, y, radius, angleStart, angleEnd);
+ context.closePath();
+ this.colorFillStyle(context, color[0], color[1], color[2], opacity);
+ context.fill();
+ lastPercent += percent;
+ }
+ };
+ var CRp$4 = {};
+ var motionBlurDelay = 100;
+ CRp$4.getPixelRatio = function() {
+ var context = this.data.contexts[0];
+ if (this.forcedPixelRatio != null) {
+ return this.forcedPixelRatio;
+ }
+ var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;
+ return (window.devicePixelRatio || 1) / backingStore;
+ };
+ CRp$4.paintCache = function(context) {
+ var caches = this.paintCaches = this.paintCaches || [];
+ var needToCreateCache = true;
+ var cache2;
+ for (var i2 = 0; i2 < caches.length; i2++) {
+ cache2 = caches[i2];
+ if (cache2.context === context) {
+ needToCreateCache = false;
+ break;
+ }
+ }
+ if (needToCreateCache) {
+ cache2 = {
+ context
+ };
+ caches.push(cache2);
+ }
+ return cache2;
+ };
+ CRp$4.createGradientStyleFor = function(context, shapeStyleName, ele, fill, opacity) {
+ var gradientStyle;
+ var usePaths = this.usePaths();
+ var colors2 = ele.pstyle(shapeStyleName + "-gradient-stop-colors").value, positions = ele.pstyle(shapeStyleName + "-gradient-stop-positions").pfValue;
+ if (fill === "radial-gradient") {
+ if (ele.isEdge()) {
+ var start = ele.sourceEndpoint(), end = ele.targetEndpoint(), mid = ele.midpoint();
+ var d1 = dist(start, mid);
+ var d2 = dist(end, mid);
+ gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2));
+ } else {
+ var pos = usePaths ? {
+ x: 0,
+ y: 0
+ } : ele.position(), width = ele.paddedWidth(), height = ele.paddedHeight();
+ gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width, height));
+ }
+ } else {
+ if (ele.isEdge()) {
+ var _start = ele.sourceEndpoint(), _end = ele.targetEndpoint();
+ gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y);
+ } else {
+ var _pos = usePaths ? {
+ x: 0,
+ y: 0
+ } : ele.position(), _width = ele.paddedWidth(), _height = ele.paddedHeight(), halfWidth = _width / 2, halfHeight = _height / 2;
+ var direction = ele.pstyle("background-gradient-direction").value;
+ switch (direction) {
+ case "to-bottom":
+ gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight);
+ break;
+ case "to-top":
+ gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight);
+ break;
+ case "to-left":
+ gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y);
+ break;
+ case "to-right":
+ gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y);
+ break;
+ case "to-bottom-right":
+ case "to-right-bottom":
+ gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight);
+ break;
+ case "to-top-right":
+ case "to-right-top":
+ gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight);
+ break;
+ case "to-bottom-left":
+ case "to-left-bottom":
+ gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight);
+ break;
+ case "to-top-left":
+ case "to-left-top":
+ gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight);
+ break;
+ }
+ }
+ }
+ if (!gradientStyle)
+ return null;
+ var hasPositions = positions.length === colors2.length;
+ var length = colors2.length;
+ for (var i2 = 0; i2 < length; i2++) {
+ gradientStyle.addColorStop(hasPositions ? positions[i2] : i2 / (length - 1), "rgba(" + colors2[i2][0] + "," + colors2[i2][1] + "," + colors2[i2][2] + "," + opacity + ")");
+ }
+ return gradientStyle;
+ };
+ CRp$4.gradientFillStyle = function(context, ele, fill, opacity) {
+ var gradientStyle = this.createGradientStyleFor(context, "background", ele, fill, opacity);
+ if (!gradientStyle)
+ return null;
+ context.fillStyle = gradientStyle;
+ };
+ CRp$4.colorFillStyle = function(context, r, g, b, a) {
+ context.fillStyle = "rgba(" + r + "," + g + "," + b + "," + a + ")";
+ };
+ CRp$4.eleFillStyle = function(context, ele, opacity) {
+ var backgroundFill = ele.pstyle("background-fill").value;
+ if (backgroundFill === "linear-gradient" || backgroundFill === "radial-gradient") {
+ this.gradientFillStyle(context, ele, backgroundFill, opacity);
+ } else {
+ var backgroundColor = ele.pstyle("background-color").value;
+ this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity);
+ }
+ };
+ CRp$4.gradientStrokeStyle = function(context, ele, fill, opacity) {
+ var gradientStyle = this.createGradientStyleFor(context, "line", ele, fill, opacity);
+ if (!gradientStyle)
+ return null;
+ context.strokeStyle = gradientStyle;
+ };
+ CRp$4.colorStrokeStyle = function(context, r, g, b, a) {
+ context.strokeStyle = "rgba(" + r + "," + g + "," + b + "," + a + ")";
+ };
+ CRp$4.eleStrokeStyle = function(context, ele, opacity) {
+ var lineFill = ele.pstyle("line-fill").value;
+ if (lineFill === "linear-gradient" || lineFill === "radial-gradient") {
+ this.gradientStrokeStyle(context, ele, lineFill, opacity);
+ } else {
+ var lineColor = ele.pstyle("line-color").value;
+ this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity);
+ }
+ };
+ CRp$4.matchCanvasSize = function(container) {
+ var r = this;
+ var data2 = r.data;
+ var bb = r.findContainerClientCoords();
+ var width = bb[2];
+ var height = bb[3];
+ var pixelRatio = r.getPixelRatio();
+ var mbPxRatio = r.motionBlurPxRatio;
+ if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) {
+ pixelRatio = mbPxRatio;
+ }
+ var canvasWidth = width * pixelRatio;
+ var canvasHeight = height * pixelRatio;
+ var canvas;
+ if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) {
+ return;
+ }
+ r.fontCaches = null;
+ var canvasContainer = data2.canvasContainer;
+ canvasContainer.style.width = width + "px";
+ canvasContainer.style.height = height + "px";
+ for (var i2 = 0; i2 < r.CANVAS_LAYERS; i2++) {
+ canvas = data2.canvases[i2];
+ canvas.width = canvasWidth;
+ canvas.height = canvasHeight;
+ canvas.style.width = width + "px";
+ canvas.style.height = height + "px";
+ }
+ for (var i2 = 0; i2 < r.BUFFER_COUNT; i2++) {
+ canvas = data2.bufferCanvases[i2];
+ canvas.width = canvasWidth;
+ canvas.height = canvasHeight;
+ canvas.style.width = width + "px";
+ canvas.style.height = height + "px";
+ }
+ r.textureMult = 1;
+ if (pixelRatio <= 1) {
+ canvas = data2.bufferCanvases[r.TEXTURE_BUFFER];
+ r.textureMult = 2;
+ canvas.width = canvasWidth * r.textureMult;
+ canvas.height = canvasHeight * r.textureMult;
+ }
+ r.canvasWidth = canvasWidth;
+ r.canvasHeight = canvasHeight;
+ };
+ CRp$4.renderTo = function(cxt, zoom, pan, pxRatio) {
+ this.render({
+ forcedContext: cxt,
+ forcedZoom: zoom,
+ forcedPan: pan,
+ drawAllLayers: true,
+ forcedPxRatio: pxRatio
+ });
+ };
+ CRp$4.render = function(options) {
+ options = options || staticEmptyObject();
+ var forcedContext = options.forcedContext;
+ var drawAllLayers = options.drawAllLayers;
+ var drawOnlyNodeLayer = options.drawOnlyNodeLayer;
+ var forcedZoom = options.forcedZoom;
+ var forcedPan = options.forcedPan;
+ var r = this;
+ var pixelRatio = options.forcedPxRatio === void 0 ? this.getPixelRatio() : options.forcedPxRatio;
+ var cy = r.cy;
+ var data2 = r.data;
+ var needDraw = data2.canvasNeedsRedraw;
+ var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming);
+ var motionBlur = options.motionBlur !== void 0 ? options.motionBlur : r.motionBlur;
+ var mbPxRatio = r.motionBlurPxRatio;
+ var hasCompoundNodes = cy.hasCompoundNodes();
+ var inNodeDragGesture = r.hoverData.draggingEles;
+ var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false;
+ motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection;
+ var motionBlurFadeEffect = motionBlur;
+ if (!forcedContext) {
+ if (r.prevPxRatio !== pixelRatio) {
+ r.invalidateContainerClientCoordsCache();
+ r.matchCanvasSize(r.container);
+ r.redrawHint("eles", true);
+ r.redrawHint("drag", true);
+ }
+ r.prevPxRatio = pixelRatio;
+ }
+ if (!forcedContext && r.motionBlurTimeout) {
+ clearTimeout(r.motionBlurTimeout);
+ }
+ if (motionBlur) {
+ if (r.mbFrames == null) {
+ r.mbFrames = 0;
+ }
+ r.mbFrames++;
+ if (r.mbFrames < 3) {
+ motionBlurFadeEffect = false;
+ }
+ if (r.mbFrames > r.minMbLowQualFrames) {
+ r.motionBlurPxRatio = r.mbPxRBlurry;
+ }
+ }
+ if (r.clearingMotionBlur) {
+ r.motionBlurPxRatio = 1;
+ }
+ if (r.textureDrawLastFrame && !textureDraw) {
+ needDraw[r.NODE] = true;
+ needDraw[r.SELECT_BOX] = true;
+ }
+ var style = cy.style();
+ var zoom = cy.zoom();
+ var effectiveZoom = forcedZoom !== void 0 ? forcedZoom : zoom;
+ var pan = cy.pan();
+ var effectivePan = {
+ x: pan.x,
+ y: pan.y
+ };
+ var vp = {
+ zoom,
+ pan: {
+ x: pan.x,
+ y: pan.y
+ }
+ };
+ var prevVp = r.prevViewport;
+ var viewportIsDiff = prevVp === void 0 || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y;
+ if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) {
+ r.motionBlurPxRatio = 1;
+ }
+ if (forcedPan) {
+ effectivePan = forcedPan;
+ }
+ effectiveZoom *= pixelRatio;
+ effectivePan.x *= pixelRatio;
+ effectivePan.y *= pixelRatio;
+ var eles = r.getCachedZSortedEles();
+ function mbclear(context2, x, y, w, h) {
+ var gco = context2.globalCompositeOperation;
+ context2.globalCompositeOperation = "destination-out";
+ r.colorFillStyle(context2, 255, 255, 255, r.motionBlurTransparency);
+ context2.fillRect(x, y, w, h);
+ context2.globalCompositeOperation = gco;
+ }
+ function setContextTransform(context2, clear3) {
+ var ePan, eZoom, w, h;
+ if (!r.clearingMotionBlur && (context2 === data2.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context2 === data2.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) {
+ ePan = {
+ x: pan.x * mbPxRatio,
+ y: pan.y * mbPxRatio
+ };
+ eZoom = zoom * mbPxRatio;
+ w = r.canvasWidth * mbPxRatio;
+ h = r.canvasHeight * mbPxRatio;
+ } else {
+ ePan = effectivePan;
+ eZoom = effectiveZoom;
+ w = r.canvasWidth;
+ h = r.canvasHeight;
+ }
+ context2.setTransform(1, 0, 0, 1, 0, 0);
+ if (clear3 === "motionBlur") {
+ mbclear(context2, 0, 0, w, h);
+ } else if (!forcedContext && (clear3 === void 0 || clear3)) {
+ context2.clearRect(0, 0, w, h);
+ }
+ if (!drawAllLayers) {
+ context2.translate(ePan.x, ePan.y);
+ context2.scale(eZoom, eZoom);
+ }
+ if (forcedPan) {
+ context2.translate(forcedPan.x, forcedPan.y);
+ }
+ if (forcedZoom) {
+ context2.scale(forcedZoom, forcedZoom);
+ }
+ }
+ if (!textureDraw) {
+ r.textureDrawLastFrame = false;
+ }
+ if (textureDraw) {
+ r.textureDrawLastFrame = true;
+ if (!r.textureCache) {
+ r.textureCache = {};
+ r.textureCache.bb = cy.mutableElements().boundingBox();
+ r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER];
+ var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER];
+ cxt.setTransform(1, 0, 0, 1, 0, 0);
+ cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult);
+ r.render({
+ forcedContext: cxt,
+ drawOnlyNodeLayer: true,
+ forcedPxRatio: pixelRatio * r.textureMult
+ });
+ var vp = r.textureCache.viewport = {
+ zoom: cy.zoom(),
+ pan: cy.pan(),
+ width: r.canvasWidth,
+ height: r.canvasHeight
+ };
+ vp.mpan = {
+ x: (0 - vp.pan.x) / vp.zoom,
+ y: (0 - vp.pan.y) / vp.zoom
+ };
+ }
+ needDraw[r.DRAG] = false;
+ needDraw[r.NODE] = false;
+ var context = data2.contexts[r.NODE];
+ var texture = r.textureCache.texture;
+ var vp = r.textureCache.viewport;
+ context.setTransform(1, 0, 0, 1, 0, 0);
+ if (motionBlur) {
+ mbclear(context, 0, 0, vp.width, vp.height);
+ } else {
+ context.clearRect(0, 0, vp.width, vp.height);
+ }
+ var outsideBgColor = style.core("outside-texture-bg-color").value;
+ var outsideBgOpacity = style.core("outside-texture-bg-opacity").value;
+ r.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity);
+ context.fillRect(0, 0, vp.width, vp.height);
+ var zoom = cy.zoom();
+ setContextTransform(context, false);
+ context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);
+ context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);
+ } else if (r.textureOnViewport && !forcedContext) {
+ r.textureCache = null;
+ }
+ var extent = cy.extent();
+ var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles || r.cy.animated();
+ var hideEdges = r.hideEdgesOnViewport && vpManip;
+ var needMbClear = [];
+ needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur;
+ if (needMbClear[r.NODE]) {
+ r.clearedForMotionBlur[r.NODE] = true;
+ }
+ needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur;
+ if (needMbClear[r.DRAG]) {
+ r.clearedForMotionBlur[r.DRAG] = true;
+ }
+ if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) {
+ var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1;
+ var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data2.contexts[r.NODE]);
+ var clear2 = motionBlur && !useBuffer ? "motionBlur" : void 0;
+ setContextTransform(context, clear2);
+ if (hideEdges) {
+ r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent);
+ } else {
+ r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent);
+ }
+ if (r.debug) {
+ r.drawDebugPoints(context, eles.nondrag);
+ }
+ if (!drawAllLayers && !motionBlur) {
+ needDraw[r.NODE] = false;
+ }
+ }
+ if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) {
+ var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1;
+ var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data2.contexts[r.DRAG]);
+ setContextTransform(context, motionBlur && !useBuffer ? "motionBlur" : void 0);
+ if (hideEdges) {
+ r.drawCachedNodes(context, eles.drag, pixelRatio, extent);
+ } else {
+ r.drawCachedElements(context, eles.drag, pixelRatio, extent);
+ }
+ if (r.debug) {
+ r.drawDebugPoints(context, eles.drag);
+ }
+ if (!drawAllLayers && !motionBlur) {
+ needDraw[r.DRAG] = false;
+ }
+ }
+ if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) {
+ var context = forcedContext || data2.contexts[r.SELECT_BOX];
+ setContextTransform(context);
+ if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) {
+ var zoom = r.cy.zoom();
+ var borderWidth = style.core("selection-box-border-width").value / zoom;
+ context.lineWidth = borderWidth;
+ context.fillStyle = "rgba(" + style.core("selection-box-color").value[0] + "," + style.core("selection-box-color").value[1] + "," + style.core("selection-box-color").value[2] + "," + style.core("selection-box-opacity").value + ")";
+ context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);
+ if (borderWidth > 0) {
+ context.strokeStyle = "rgba(" + style.core("selection-box-border-color").value[0] + "," + style.core("selection-box-border-color").value[1] + "," + style.core("selection-box-border-color").value[2] + "," + style.core("selection-box-opacity").value + ")";
+ context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);
+ }
+ }
+ if (data2.bgActivePosistion && !r.hoverData.selecting) {
+ var zoom = r.cy.zoom();
+ var pos = data2.bgActivePosistion;
+ context.fillStyle = "rgba(" + style.core("active-bg-color").value[0] + "," + style.core("active-bg-color").value[1] + "," + style.core("active-bg-color").value[2] + "," + style.core("active-bg-opacity").value + ")";
+ context.beginPath();
+ context.arc(pos.x, pos.y, style.core("active-bg-size").pfValue / zoom, 0, 2 * Math.PI);
+ context.fill();
+ }
+ var timeToRender = r.lastRedrawTime;
+ if (r.showFps && timeToRender) {
+ timeToRender = Math.round(timeToRender);
+ var fps = Math.round(1e3 / timeToRender);
+ context.setTransform(1, 0, 0, 1, 0, 0);
+ context.fillStyle = "rgba(255, 0, 0, 0.75)";
+ context.strokeStyle = "rgba(255, 0, 0, 0.75)";
+ context.lineWidth = 1;
+ context.fillText("1 frame = " + timeToRender + " ms = " + fps + " fps", 0, 20);
+ var maxFps = 60;
+ context.strokeRect(0, 30, 250, 20);
+ context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20);
+ }
+ if (!drawAllLayers) {
+ needDraw[r.SELECT_BOX] = false;
+ }
+ }
+ if (motionBlur && mbPxRatio !== 1) {
+ var cxtNode = data2.contexts[r.NODE];
+ var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE];
+ var cxtDrag = data2.contexts[r.DRAG];
+ var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG];
+ var drawMotionBlur = function drawMotionBlur2(cxt2, txt, needClear) {
+ cxt2.setTransform(1, 0, 0, 1, 0, 0);
+ if (needClear || !motionBlurFadeEffect) {
+ cxt2.clearRect(0, 0, r.canvasWidth, r.canvasHeight);
+ } else {
+ mbclear(cxt2, 0, 0, r.canvasWidth, r.canvasHeight);
+ }
+ var pxr = mbPxRatio;
+ cxt2.drawImage(
+ txt,
+ // img
+ 0,
+ 0,
+ // sx, sy
+ r.canvasWidth * pxr,
+ r.canvasHeight * pxr,
+ // sw, sh
+ 0,
+ 0,
+ // x, y
+ r.canvasWidth,
+ r.canvasHeight
+ // w, h
+ );
+ };
+ if (needDraw[r.NODE] || needMbClear[r.NODE]) {
+ drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]);
+ needDraw[r.NODE] = false;
+ }
+ if (needDraw[r.DRAG] || needMbClear[r.DRAG]) {
+ drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]);
+ needDraw[r.DRAG] = false;
+ }
+ }
+ r.prevViewport = vp;
+ if (r.clearingMotionBlur) {
+ r.clearingMotionBlur = false;
+ r.motionBlurCleared = true;
+ r.motionBlur = true;
+ }
+ if (motionBlur) {
+ r.motionBlurTimeout = setTimeout(function() {
+ r.motionBlurTimeout = null;
+ r.clearedForMotionBlur[r.NODE] = false;
+ r.clearedForMotionBlur[r.DRAG] = false;
+ r.motionBlur = false;
+ r.clearingMotionBlur = !textureDraw;
+ r.mbFrames = 0;
+ needDraw[r.NODE] = true;
+ needDraw[r.DRAG] = true;
+ r.redraw();
+ }, motionBlurDelay);
+ }
+ if (!forcedContext) {
+ cy.emit("render");
+ }
+ };
+ var CRp$3 = {};
+ CRp$3.drawPolygonPath = function(context, x, y, width, height, points) {
+ var halfW = width / 2;
+ var halfH = height / 2;
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ context.moveTo(x + halfW * points[0], y + halfH * points[1]);
+ for (var i2 = 1; i2 < points.length / 2; i2++) {
+ context.lineTo(x + halfW * points[i2 * 2], y + halfH * points[i2 * 2 + 1]);
+ }
+ context.closePath();
+ };
+ CRp$3.drawRoundPolygonPath = function(context, x, y, width, height, points) {
+ var halfW = width / 2;
+ var halfH = height / 2;
+ var cornerRadius = getRoundPolygonRadius(width, height);
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ for (var _i = 0; _i < points.length / 4; _i++) {
+ var sourceUv = void 0, destUv = void 0;
+ if (_i === 0) {
+ sourceUv = points.length - 2;
+ } else {
+ sourceUv = _i * 4 - 2;
+ }
+ destUv = _i * 4 + 2;
+ var px = x + halfW * points[_i * 4];
+ var py = y + halfH * points[_i * 4 + 1];
+ var cosTheta = -points[sourceUv] * points[destUv] - points[sourceUv + 1] * points[destUv + 1];
+ var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);
+ var cp0x = px - offset * points[sourceUv];
+ var cp0y = py - offset * points[sourceUv + 1];
+ var cp1x = px + offset * points[destUv];
+ var cp1y = py + offset * points[destUv + 1];
+ if (_i === 0) {
+ context.moveTo(cp0x, cp0y);
+ } else {
+ context.lineTo(cp0x, cp0y);
+ }
+ context.arcTo(px, py, cp1x, cp1y, cornerRadius);
+ }
+ context.closePath();
+ };
+ CRp$3.drawRoundRectanglePath = function(context, x, y, width, height) {
+ var halfWidth = width / 2;
+ var halfHeight = height / 2;
+ var cornerRadius = getRoundRectangleRadius(width, height);
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ context.moveTo(x, y - halfHeight);
+ context.arcTo(x + halfWidth, y - halfHeight, x + halfWidth, y, cornerRadius);
+ context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius);
+ context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius);
+ context.arcTo(x - halfWidth, y - halfHeight, x, y - halfHeight, cornerRadius);
+ context.lineTo(x, y - halfHeight);
+ context.closePath();
+ };
+ CRp$3.drawBottomRoundRectanglePath = function(context, x, y, width, height) {
+ var halfWidth = width / 2;
+ var halfHeight = height / 2;
+ var cornerRadius = getRoundRectangleRadius(width, height);
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ context.moveTo(x, y - halfHeight);
+ context.lineTo(x + halfWidth, y - halfHeight);
+ context.lineTo(x + halfWidth, y);
+ context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius);
+ context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius);
+ context.lineTo(x - halfWidth, y - halfHeight);
+ context.lineTo(x, y - halfHeight);
+ context.closePath();
+ };
+ CRp$3.drawCutRectanglePath = function(context, x, y, width, height) {
+ var halfWidth = width / 2;
+ var halfHeight = height / 2;
+ var cornerLength = getCutRectangleCornerLength();
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ context.moveTo(x - halfWidth + cornerLength, y - halfHeight);
+ context.lineTo(x + halfWidth - cornerLength, y - halfHeight);
+ context.lineTo(x + halfWidth, y - halfHeight + cornerLength);
+ context.lineTo(x + halfWidth, y + halfHeight - cornerLength);
+ context.lineTo(x + halfWidth - cornerLength, y + halfHeight);
+ context.lineTo(x - halfWidth + cornerLength, y + halfHeight);
+ context.lineTo(x - halfWidth, y + halfHeight - cornerLength);
+ context.lineTo(x - halfWidth, y - halfHeight + cornerLength);
+ context.closePath();
+ };
+ CRp$3.drawBarrelPath = function(context, x, y, width, height) {
+ var halfWidth = width / 2;
+ var halfHeight = height / 2;
+ var xBegin = x - halfWidth;
+ var xEnd = x + halfWidth;
+ var yBegin = y - halfHeight;
+ var yEnd = y + halfHeight;
+ var barrelCurveConstants = getBarrelCurveConstants(width, height);
+ var wOffset = barrelCurveConstants.widthOffset;
+ var hOffset = barrelCurveConstants.heightOffset;
+ var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset;
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ context.moveTo(xBegin, yBegin + hOffset);
+ context.lineTo(xBegin, yEnd - hOffset);
+ context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd);
+ context.lineTo(xEnd - wOffset, yEnd);
+ context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset);
+ context.lineTo(xEnd, yBegin + hOffset);
+ context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin);
+ context.lineTo(xBegin + wOffset, yBegin);
+ context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset);
+ context.closePath();
+ };
+ var sin0 = Math.sin(0);
+ var cos0 = Math.cos(0);
+ var sin = {};
+ var cos = {};
+ var ellipseStepSize = Math.PI / 40;
+ for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) {
+ sin[i] = Math.sin(i);
+ cos[i] = Math.cos(i);
+ }
+ CRp$3.drawEllipsePath = function(context, centerX, centerY, width, height) {
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ if (context.ellipse) {
+ context.ellipse(centerX, centerY, width / 2, height / 2, 0, 0, 2 * Math.PI);
+ } else {
+ var xPos, yPos;
+ var rw = width / 2;
+ var rh = height / 2;
+ for (var i2 = 0 * Math.PI; i2 < 2 * Math.PI; i2 += ellipseStepSize) {
+ xPos = centerX - rw * sin[i2] * sin0 + rw * cos[i2] * cos0;
+ yPos = centerY + rh * cos[i2] * sin0 + rh * sin[i2] * cos0;
+ if (i2 === 0) {
+ context.moveTo(xPos, yPos);
+ } else {
+ context.lineTo(xPos, yPos);
+ }
+ }
+ }
+ context.closePath();
+ };
+ var CRp$2 = {};
+ CRp$2.createBuffer = function(w, h) {
+ var buffer = document.createElement("canvas");
+ buffer.width = w;
+ buffer.height = h;
+ return [buffer, buffer.getContext("2d")];
+ };
+ CRp$2.bufferCanvasImage = function(options) {
+ var cy = this.cy;
+ var eles = cy.mutableElements();
+ var bb = eles.boundingBox();
+ var ctrRect = this.findContainerClientCoords();
+ var width = options.full ? Math.ceil(bb.w) : ctrRect[2];
+ var height = options.full ? Math.ceil(bb.h) : ctrRect[3];
+ var specdMaxDims = number$1(options.maxWidth) || number$1(options.maxHeight);
+ var pxRatio = this.getPixelRatio();
+ var scale = 1;
+ if (options.scale !== void 0) {
+ width *= options.scale;
+ height *= options.scale;
+ scale = options.scale;
+ } else if (specdMaxDims) {
+ var maxScaleW = Infinity;
+ var maxScaleH = Infinity;
+ if (number$1(options.maxWidth)) {
+ maxScaleW = scale * options.maxWidth / width;
+ }
+ if (number$1(options.maxHeight)) {
+ maxScaleH = scale * options.maxHeight / height;
+ }
+ scale = Math.min(maxScaleW, maxScaleH);
+ width *= scale;
+ height *= scale;
+ }
+ if (!specdMaxDims) {
+ width *= pxRatio;
+ height *= pxRatio;
+ scale *= pxRatio;
+ }
+ var buffCanvas = document.createElement("canvas");
+ buffCanvas.width = width;
+ buffCanvas.height = height;
+ buffCanvas.style.width = width + "px";
+ buffCanvas.style.height = height + "px";
+ var buffCxt = buffCanvas.getContext("2d");
+ if (width > 0 && height > 0) {
+ buffCxt.clearRect(0, 0, width, height);
+ buffCxt.globalCompositeOperation = "source-over";
+ var zsortedEles = this.getCachedZSortedEles();
+ if (options.full) {
+ buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale);
+ buffCxt.scale(scale, scale);
+ this.drawElements(buffCxt, zsortedEles);
+ buffCxt.scale(1 / scale, 1 / scale);
+ buffCxt.translate(bb.x1 * scale, bb.y1 * scale);
+ } else {
+ var pan = cy.pan();
+ var translation = {
+ x: pan.x * scale,
+ y: pan.y * scale
+ };
+ scale *= cy.zoom();
+ buffCxt.translate(translation.x, translation.y);
+ buffCxt.scale(scale, scale);
+ this.drawElements(buffCxt, zsortedEles);
+ buffCxt.scale(1 / scale, 1 / scale);
+ buffCxt.translate(-translation.x, -translation.y);
+ }
+ if (options.bg) {
+ buffCxt.globalCompositeOperation = "destination-over";
+ buffCxt.fillStyle = options.bg;
+ buffCxt.rect(0, 0, width, height);
+ buffCxt.fill();
+ }
+ }
+ return buffCanvas;
+ };
+ function b64ToBlob(b64, mimeType) {
+ var bytes = atob(b64);
+ var buff = new ArrayBuffer(bytes.length);
+ var buffUint8 = new Uint8Array(buff);
+ for (var i2 = 0; i2 < bytes.length; i2++) {
+ buffUint8[i2] = bytes.charCodeAt(i2);
+ }
+ return new Blob([buff], {
+ type: mimeType
+ });
+ }
+ function b64UriToB64(b64uri) {
+ var i2 = b64uri.indexOf(",");
+ return b64uri.substr(i2 + 1);
+ }
+ function output(options, canvas, mimeType) {
+ var getB64Uri = function getB64Uri2() {
+ return canvas.toDataURL(mimeType, options.quality);
+ };
+ switch (options.output) {
+ case "blob-promise":
+ return new Promise$1(function(resolve2, reject) {
+ try {
+ canvas.toBlob(function(blob) {
+ if (blob != null) {
+ resolve2(blob);
+ } else {
+ reject(new Error("`canvas.toBlob()` sent a null value in its callback"));
+ }
+ }, mimeType, options.quality);
+ } catch (err) {
+ reject(err);
+ }
+ });
+ case "blob":
+ return b64ToBlob(b64UriToB64(getB64Uri()), mimeType);
+ case "base64":
+ return b64UriToB64(getB64Uri());
+ case "base64uri":
+ default:
+ return getB64Uri();
+ }
+ }
+ CRp$2.png = function(options) {
+ return output(options, this.bufferCanvasImage(options), "image/png");
+ };
+ CRp$2.jpg = function(options) {
+ return output(options, this.bufferCanvasImage(options), "image/jpeg");
+ };
+ var CRp$1 = {};
+ CRp$1.nodeShapeImpl = function(name2, context, centerX, centerY, width, height, points) {
+ switch (name2) {
+ case "ellipse":
+ return this.drawEllipsePath(context, centerX, centerY, width, height);
+ case "polygon":
+ return this.drawPolygonPath(context, centerX, centerY, width, height, points);
+ case "round-polygon":
+ return this.drawRoundPolygonPath(context, centerX, centerY, width, height, points);
+ case "roundrectangle":
+ case "round-rectangle":
+ return this.drawRoundRectanglePath(context, centerX, centerY, width, height);
+ case "cutrectangle":
+ case "cut-rectangle":
+ return this.drawCutRectanglePath(context, centerX, centerY, width, height);
+ case "bottomroundrectangle":
+ case "bottom-round-rectangle":
+ return this.drawBottomRoundRectanglePath(context, centerX, centerY, width, height);
+ case "barrel":
+ return this.drawBarrelPath(context, centerX, centerY, width, height);
+ }
+ };
+ var CR = CanvasRenderer;
+ var CRp = CanvasRenderer.prototype;
+ CRp.CANVAS_LAYERS = 3;
+ CRp.SELECT_BOX = 0;
+ CRp.DRAG = 1;
+ CRp.NODE = 2;
+ CRp.BUFFER_COUNT = 3;
+ CRp.TEXTURE_BUFFER = 0;
+ CRp.MOTIONBLUR_BUFFER_NODE = 1;
+ CRp.MOTIONBLUR_BUFFER_DRAG = 2;
+ function CanvasRenderer(options) {
+ var r = this;
+ r.data = {
+ canvases: new Array(CRp.CANVAS_LAYERS),
+ contexts: new Array(CRp.CANVAS_LAYERS),
+ canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS),
+ bufferCanvases: new Array(CRp.BUFFER_COUNT),
+ bufferContexts: new Array(CRp.CANVAS_LAYERS)
+ };
+ var tapHlOffAttr = "-webkit-tap-highlight-color";
+ var tapHlOffStyle = "rgba(0,0,0,0)";
+ r.data.canvasContainer = document.createElement("div");
+ var containerStyle = r.data.canvasContainer.style;
+ r.data.canvasContainer.style[tapHlOffAttr] = tapHlOffStyle;
+ containerStyle.position = "relative";
+ containerStyle.zIndex = "0";
+ containerStyle.overflow = "hidden";
+ var container = options.cy.container();
+ container.appendChild(r.data.canvasContainer);
+ container.style[tapHlOffAttr] = tapHlOffStyle;
+ var styleMap = {
+ "-webkit-user-select": "none",
+ "-moz-user-select": "-moz-none",
+ "user-select": "none",
+ "-webkit-tap-highlight-color": "rgba(0,0,0,0)",
+ "outline-style": "none"
+ };
+ if (ms()) {
+ styleMap["-ms-touch-action"] = "none";
+ styleMap["touch-action"] = "none";
+ }
+ for (var i2 = 0; i2 < CRp.CANVAS_LAYERS; i2++) {
+ var canvas = r.data.canvases[i2] = document.createElement("canvas");
+ r.data.contexts[i2] = canvas.getContext("2d");
+ Object.keys(styleMap).forEach(function(k) {
+ canvas.style[k] = styleMap[k];
+ });
+ canvas.style.position = "absolute";
+ canvas.setAttribute("data-id", "layer" + i2);
+ canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i2);
+ r.data.canvasContainer.appendChild(canvas);
+ r.data.canvasNeedsRedraw[i2] = false;
+ }
+ r.data.topCanvas = r.data.canvases[0];
+ r.data.canvases[CRp.NODE].setAttribute("data-id", "layer" + CRp.NODE + "-node");
+ r.data.canvases[CRp.SELECT_BOX].setAttribute("data-id", "layer" + CRp.SELECT_BOX + "-selectbox");
+ r.data.canvases[CRp.DRAG].setAttribute("data-id", "layer" + CRp.DRAG + "-drag");
+ for (var i2 = 0; i2 < CRp.BUFFER_COUNT; i2++) {
+ r.data.bufferCanvases[i2] = document.createElement("canvas");
+ r.data.bufferContexts[i2] = r.data.bufferCanvases[i2].getContext("2d");
+ r.data.bufferCanvases[i2].style.position = "absolute";
+ r.data.bufferCanvases[i2].setAttribute("data-id", "buffer" + i2);
+ r.data.bufferCanvases[i2].style.zIndex = String(-i2 - 1);
+ r.data.bufferCanvases[i2].style.visibility = "hidden";
+ }
+ r.pathsEnabled = true;
+ var emptyBb = makeBoundingBox();
+ var getBoxCenter = function getBoxCenter2(bb) {
+ return {
+ x: (bb.x1 + bb.x2) / 2,
+ y: (bb.y1 + bb.y2) / 2
+ };
+ };
+ var getCenterOffset = function getCenterOffset2(bb) {
+ return {
+ x: -bb.w / 2,
+ y: -bb.h / 2
+ };
+ };
+ var backgroundTimestampHasChanged = function backgroundTimestampHasChanged2(ele) {
+ var _p = ele[0]._private;
+ var same = _p.oldBackgroundTimestamp === _p.backgroundTimestamp;
+ return !same;
+ };
+ var getStyleKey = function getStyleKey2(ele) {
+ return ele[0]._private.nodeKey;
+ };
+ var getLabelKey = function getLabelKey2(ele) {
+ return ele[0]._private.labelStyleKey;
+ };
+ var getSourceLabelKey = function getSourceLabelKey2(ele) {
+ return ele[0]._private.sourceLabelStyleKey;
+ };
+ var getTargetLabelKey = function getTargetLabelKey2(ele) {
+ return ele[0]._private.targetLabelStyleKey;
+ };
+ var drawElement = function drawElement2(context, ele, bb, scaledLabelShown, useEleOpacity) {
+ return r.drawElement(context, ele, bb, false, false, useEleOpacity);
+ };
+ var drawLabel = function drawLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) {
+ return r.drawElementText(context, ele, bb, scaledLabelShown, "main", useEleOpacity);
+ };
+ var drawSourceLabel = function drawSourceLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) {
+ return r.drawElementText(context, ele, bb, scaledLabelShown, "source", useEleOpacity);
+ };
+ var drawTargetLabel = function drawTargetLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) {
+ return r.drawElementText(context, ele, bb, scaledLabelShown, "target", useEleOpacity);
+ };
+ var getElementBox = function getElementBox2(ele) {
+ ele.boundingBox();
+ return ele[0]._private.bodyBounds;
+ };
+ var getLabelBox = function getLabelBox2(ele) {
+ ele.boundingBox();
+ return ele[0]._private.labelBounds.main || emptyBb;
+ };
+ var getSourceLabelBox = function getSourceLabelBox2(ele) {
+ ele.boundingBox();
+ return ele[0]._private.labelBounds.source || emptyBb;
+ };
+ var getTargetLabelBox = function getTargetLabelBox2(ele) {
+ ele.boundingBox();
+ return ele[0]._private.labelBounds.target || emptyBb;
+ };
+ var isLabelVisibleAtScale = function isLabelVisibleAtScale2(ele, scaledLabelShown) {
+ return scaledLabelShown;
+ };
+ var getElementRotationPoint = function getElementRotationPoint2(ele) {
+ return getBoxCenter(getElementBox(ele));
+ };
+ var addTextMargin = function addTextMargin2(prefix, pt, ele) {
+ var pre = prefix ? prefix + "-" : "";
+ return {
+ x: pt.x + ele.pstyle(pre + "text-margin-x").pfValue,
+ y: pt.y + ele.pstyle(pre + "text-margin-y").pfValue
+ };
+ };
+ var getRsPt = function getRsPt2(ele, x, y) {
+ var rs = ele[0]._private.rscratch;
+ return {
+ x: rs[x],
+ y: rs[y]
+ };
+ };
+ var getLabelRotationPoint = function getLabelRotationPoint2(ele) {
+ return addTextMargin("", getRsPt(ele, "labelX", "labelY"), ele);
+ };
+ var getSourceLabelRotationPoint = function getSourceLabelRotationPoint2(ele) {
+ return addTextMargin("source", getRsPt(ele, "sourceLabelX", "sourceLabelY"), ele);
+ };
+ var getTargetLabelRotationPoint = function getTargetLabelRotationPoint2(ele) {
+ return addTextMargin("target", getRsPt(ele, "targetLabelX", "targetLabelY"), ele);
+ };
+ var getElementRotationOffset = function getElementRotationOffset2(ele) {
+ return getCenterOffset(getElementBox(ele));
+ };
+ var getSourceLabelRotationOffset = function getSourceLabelRotationOffset2(ele) {
+ return getCenterOffset(getSourceLabelBox(ele));
+ };
+ var getTargetLabelRotationOffset = function getTargetLabelRotationOffset2(ele) {
+ return getCenterOffset(getTargetLabelBox(ele));
+ };
+ var getLabelRotationOffset = function getLabelRotationOffset2(ele) {
+ var bb = getLabelBox(ele);
+ var p2 = getCenterOffset(getLabelBox(ele));
+ if (ele.isNode()) {
+ switch (ele.pstyle("text-halign").value) {
+ case "left":
+ p2.x = -bb.w;
+ break;
+ case "right":
+ p2.x = 0;
+ break;
+ }
+ switch (ele.pstyle("text-valign").value) {
+ case "top":
+ p2.y = -bb.h;
+ break;
+ case "bottom":
+ p2.y = 0;
+ break;
+ }
+ }
+ return p2;
+ };
+ var eleTxrCache = r.data.eleTxrCache = new ElementTextureCache(r, {
+ getKey: getStyleKey,
+ doesEleInvalidateKey: backgroundTimestampHasChanged,
+ drawElement,
+ getBoundingBox: getElementBox,
+ getRotationPoint: getElementRotationPoint,
+ getRotationOffset: getElementRotationOffset,
+ allowEdgeTxrCaching: false,
+ allowParentTxrCaching: false
+ });
+ var lblTxrCache = r.data.lblTxrCache = new ElementTextureCache(r, {
+ getKey: getLabelKey,
+ drawElement: drawLabel,
+ getBoundingBox: getLabelBox,
+ getRotationPoint: getLabelRotationPoint,
+ getRotationOffset: getLabelRotationOffset,
+ isVisible: isLabelVisibleAtScale
+ });
+ var slbTxrCache = r.data.slbTxrCache = new ElementTextureCache(r, {
+ getKey: getSourceLabelKey,
+ drawElement: drawSourceLabel,
+ getBoundingBox: getSourceLabelBox,
+ getRotationPoint: getSourceLabelRotationPoint,
+ getRotationOffset: getSourceLabelRotationOffset,
+ isVisible: isLabelVisibleAtScale
+ });
+ var tlbTxrCache = r.data.tlbTxrCache = new ElementTextureCache(r, {
+ getKey: getTargetLabelKey,
+ drawElement: drawTargetLabel,
+ getBoundingBox: getTargetLabelBox,
+ getRotationPoint: getTargetLabelRotationPoint,
+ getRotationOffset: getTargetLabelRotationOffset,
+ isVisible: isLabelVisibleAtScale
+ });
+ var lyrTxrCache = r.data.lyrTxrCache = new LayeredTextureCache(r);
+ r.onUpdateEleCalcs(function invalidateTextureCaches(willDraw, eles) {
+ eleTxrCache.invalidateElements(eles);
+ lblTxrCache.invalidateElements(eles);
+ slbTxrCache.invalidateElements(eles);
+ tlbTxrCache.invalidateElements(eles);
+ lyrTxrCache.invalidateElements(eles);
+ for (var _i = 0; _i < eles.length; _i++) {
+ var _p = eles[_i]._private;
+ _p.oldBackgroundTimestamp = _p.backgroundTimestamp;
+ }
+ });
+ var refineInLayers = function refineInLayers2(reqs) {
+ for (var i3 = 0; i3 < reqs.length; i3++) {
+ lyrTxrCache.enqueueElementRefinement(reqs[i3].ele);
+ }
+ };
+ eleTxrCache.onDequeue(refineInLayers);
+ lblTxrCache.onDequeue(refineInLayers);
+ slbTxrCache.onDequeue(refineInLayers);
+ tlbTxrCache.onDequeue(refineInLayers);
+ }
+ CRp.redrawHint = function(group, bool) {
+ var r = this;
+ switch (group) {
+ case "eles":
+ r.data.canvasNeedsRedraw[CRp.NODE] = bool;
+ break;
+ case "drag":
+ r.data.canvasNeedsRedraw[CRp.DRAG] = bool;
+ break;
+ case "select":
+ r.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool;
+ break;
+ }
+ };
+ var pathsImpld = typeof Path2D !== "undefined";
+ CRp.path2dEnabled = function(on) {
+ if (on === void 0) {
+ return this.pathsEnabled;
+ }
+ this.pathsEnabled = on ? true : false;
+ };
+ CRp.usePaths = function() {
+ return pathsImpld && this.pathsEnabled;
+ };
+ CRp.setImgSmoothing = function(context, bool) {
+ if (context.imageSmoothingEnabled != null) {
+ context.imageSmoothingEnabled = bool;
+ } else {
+ context.webkitImageSmoothingEnabled = bool;
+ context.mozImageSmoothingEnabled = bool;
+ context.msImageSmoothingEnabled = bool;
+ }
+ };
+ CRp.getImgSmoothing = function(context) {
+ if (context.imageSmoothingEnabled != null) {
+ return context.imageSmoothingEnabled;
+ } else {
+ return context.webkitImageSmoothingEnabled || context.mozImageSmoothingEnabled || context.msImageSmoothingEnabled;
+ }
+ };
+ CRp.makeOffscreenCanvas = function(width, height) {
+ var canvas;
+ if ((typeof OffscreenCanvas === "undefined" ? "undefined" : _typeof(OffscreenCanvas)) !== "undefined") {
+ canvas = new OffscreenCanvas(width, height);
+ } else {
+ canvas = document.createElement("canvas");
+ canvas.width = width;
+ canvas.height = height;
+ }
+ return canvas;
+ };
+ [CRp$a, CRp$9, CRp$8, CRp$7, CRp$6, CRp$5, CRp$4, CRp$3, CRp$2, CRp$1].forEach(function(props) {
+ extend(CRp, props);
+ });
+ var renderer = [{
+ name: "null",
+ impl: NullRenderer
+ }, {
+ name: "base",
+ impl: BR
+ }, {
+ name: "canvas",
+ impl: CR
+ }];
+ var incExts = [{
+ type: "layout",
+ extensions: layout
+ }, {
+ type: "renderer",
+ extensions: renderer
+ }];
+ var extensions = {};
+ var modules = {};
+ function setExtension(type, name2, registrant) {
+ var ext = registrant;
+ var overrideErr = function overrideErr2(field) {
+ warn("Can not register `" + name2 + "` for `" + type + "` since `" + field + "` already exists in the prototype and can not be overridden");
+ };
+ if (type === "core") {
+ if (Core.prototype[name2]) {
+ return overrideErr(name2);
+ } else {
+ Core.prototype[name2] = registrant;
+ }
+ } else if (type === "collection") {
+ if (Collection.prototype[name2]) {
+ return overrideErr(name2);
+ } else {
+ Collection.prototype[name2] = registrant;
+ }
+ } else if (type === "layout") {
+ var Layout2 = function Layout3(options) {
+ this.options = options;
+ registrant.call(this, options);
+ if (!plainObject(this._private)) {
+ this._private = {};
+ }
+ this._private.cy = options.cy;
+ this._private.listeners = [];
+ this.createEmitter();
+ };
+ var layoutProto = Layout2.prototype = Object.create(registrant.prototype);
+ var optLayoutFns = [];
+ for (var i2 = 0; i2 < optLayoutFns.length; i2++) {
+ var fnName = optLayoutFns[i2];
+ layoutProto[fnName] = layoutProto[fnName] || function() {
+ return this;
+ };
+ }
+ if (layoutProto.start && !layoutProto.run) {
+ layoutProto.run = function() {
+ this.start();
+ return this;
+ };
+ } else if (!layoutProto.start && layoutProto.run) {
+ layoutProto.start = function() {
+ this.run();
+ return this;
+ };
+ }
+ var regStop = registrant.prototype.stop;
+ layoutProto.stop = function() {
+ var opts = this.options;
+ if (opts && opts.animate) {
+ var anis = this.animations;
+ if (anis) {
+ for (var _i = 0; _i < anis.length; _i++) {
+ anis[_i].stop();
+ }
+ }
+ }
+ if (regStop) {
+ regStop.call(this);
+ } else {
+ this.emit("layoutstop");
+ }
+ return this;
+ };
+ if (!layoutProto.destroy) {
+ layoutProto.destroy = function() {
+ return this;
+ };
+ }
+ layoutProto.cy = function() {
+ return this._private.cy;
+ };
+ var getCy = function getCy2(layout2) {
+ return layout2._private.cy;
+ };
+ var emitterOpts = {
+ addEventFields: function addEventFields(layout2, evt) {
+ evt.layout = layout2;
+ evt.cy = getCy(layout2);
+ evt.target = layout2;
+ },
+ bubble: function bubble() {
+ return true;
+ },
+ parent: function parent(layout2) {
+ return getCy(layout2);
+ }
+ };
+ extend(layoutProto, {
+ createEmitter: function createEmitter() {
+ this._private.emitter = new Emitter(emitterOpts, this);
+ return this;
+ },
+ emitter: function emitter() {
+ return this._private.emitter;
+ },
+ on: function on(evt, cb) {
+ this.emitter().on(evt, cb);
+ return this;
+ },
+ one: function one(evt, cb) {
+ this.emitter().one(evt, cb);
+ return this;
+ },
+ once: function once(evt, cb) {
+ this.emitter().one(evt, cb);
+ return this;
+ },
+ removeListener: function removeListener(evt, cb) {
+ this.emitter().removeListener(evt, cb);
+ return this;
+ },
+ removeAllListeners: function removeAllListeners() {
+ this.emitter().removeAllListeners();
+ return this;
+ },
+ emit: function emit(evt, params) {
+ this.emitter().emit(evt, params);
+ return this;
+ }
+ });
+ define.eventAliasesOn(layoutProto);
+ ext = Layout2;
+ } else if (type === "renderer" && name2 !== "null" && name2 !== "base") {
+ var BaseRenderer2 = getExtension("renderer", "base");
+ var bProto = BaseRenderer2.prototype;
+ var RegistrantRenderer = registrant;
+ var rProto = registrant.prototype;
+ var Renderer = function Renderer2() {
+ BaseRenderer2.apply(this, arguments);
+ RegistrantRenderer.apply(this, arguments);
+ };
+ var proto = Renderer.prototype;
+ for (var pName in bProto) {
+ var pVal = bProto[pName];
+ var existsInR = rProto[pName] != null;
+ if (existsInR) {
+ return overrideErr(pName);
+ }
+ proto[pName] = pVal;
+ }
+ for (var _pName in rProto) {
+ proto[_pName] = rProto[_pName];
+ }
+ bProto.clientFunctions.forEach(function(name3) {
+ proto[name3] = proto[name3] || function() {
+ error("Renderer does not implement `renderer." + name3 + "()` on its prototype");
+ };
+ });
+ ext = Renderer;
+ } else if (type === "__proto__" || type === "constructor" || type === "prototype") {
+ return error(type + " is an illegal type to be registered, possibly lead to prototype pollutions");
+ }
+ return setMap({
+ map: extensions,
+ keys: [type, name2],
+ value: ext
+ });
+ }
+ function getExtension(type, name2) {
+ return getMap({
+ map: extensions,
+ keys: [type, name2]
+ });
+ }
+ function setModule(type, name2, moduleType, moduleName, registrant) {
+ return setMap({
+ map: modules,
+ keys: [type, name2, moduleType, moduleName],
+ value: registrant
+ });
+ }
+ function getModule(type, name2, moduleType, moduleName) {
+ return getMap({
+ map: modules,
+ keys: [type, name2, moduleType, moduleName]
+ });
+ }
+ var extension = function extension2() {
+ if (arguments.length === 2) {
+ return getExtension.apply(null, arguments);
+ } else if (arguments.length === 3) {
+ return setExtension.apply(null, arguments);
+ } else if (arguments.length === 4) {
+ return getModule.apply(null, arguments);
+ } else if (arguments.length === 5) {
+ return setModule.apply(null, arguments);
+ } else {
+ error("Invalid extension access syntax");
+ }
+ };
+ Core.prototype.extension = extension;
+ incExts.forEach(function(group) {
+ group.extensions.forEach(function(ext) {
+ setExtension(group.type, ext.name, ext.impl);
+ });
+ });
+ var Stylesheet = function Stylesheet2() {
+ if (!(this instanceof Stylesheet2)) {
+ return new Stylesheet2();
+ }
+ this.length = 0;
+ };
+ var sheetfn = Stylesheet.prototype;
+ sheetfn.instanceString = function() {
+ return "stylesheet";
+ };
+ sheetfn.selector = function(selector) {
+ var i2 = this.length++;
+ this[i2] = {
+ selector,
+ properties: []
+ };
+ return this;
+ };
+ sheetfn.css = function(name2, value) {
+ var i2 = this.length - 1;
+ if (string(name2)) {
+ this[i2].properties.push({
+ name: name2,
+ value
+ });
+ } else if (plainObject(name2)) {
+ var map = name2;
+ var propNames = Object.keys(map);
+ for (var j = 0; j < propNames.length; j++) {
+ var key = propNames[j];
+ var mapVal = map[key];
+ if (mapVal == null) {
+ continue;
+ }
+ var prop = Style.properties[key] || Style.properties[dash2camel(key)];
+ if (prop == null) {
+ continue;
+ }
+ var _name = prop.name;
+ var _value = mapVal;
+ this[i2].properties.push({
+ name: _name,
+ value: _value
+ });
+ }
+ }
+ return this;
+ };
+ sheetfn.style = sheetfn.css;
+ sheetfn.generateStyle = function(cy) {
+ var style = new Style(cy);
+ return this.appendToStyle(style);
+ };
+ sheetfn.appendToStyle = function(style) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var context = this[i2];
+ var selector = context.selector;
+ var props = context.properties;
+ style.selector(selector);
+ for (var j = 0; j < props.length; j++) {
+ var prop = props[j];
+ style.css(prop.name, prop.value);
+ }
+ }
+ return style;
+ };
+ var version = "3.23.0";
+ var cytoscape2 = function cytoscape3(options) {
+ if (options === void 0) {
+ options = {};
+ }
+ if (plainObject(options)) {
+ return new Core(options);
+ } else if (string(options)) {
+ return extension.apply(extension, arguments);
+ }
+ };
+ cytoscape2.use = function(ext) {
+ var args = Array.prototype.slice.call(arguments, 1);
+ args.unshift(cytoscape2);
+ ext.apply(null, args);
+ return this;
+ };
+ cytoscape2.warnings = function(bool) {
+ return warnings(bool);
+ };
+ cytoscape2.version = version;
+ cytoscape2.stylesheet = cytoscape2.Stylesheet = Stylesheet;
+ return cytoscape2;
+ });
+})(cytoscape_umd);
+const cytoscape$1 = cytoscape_umdExports;
+var cytoscapeCoseBilkentExports = {};
+var cytoscapeCoseBilkent = {
+ get exports() {
+ return cytoscapeCoseBilkentExports;
+ },
+ set exports(v) {
+ cytoscapeCoseBilkentExports = v;
+ }
+};
+var coseBaseExports = {};
+var coseBase = {
+ get exports() {
+ return coseBaseExports;
+ },
+ set exports(v) {
+ coseBaseExports = v;
+ }
+};
+var layoutBaseExports = {};
+var layoutBase = {
+ get exports() {
+ return layoutBaseExports;
+ },
+ set exports(v) {
+ layoutBaseExports = v;
+ }
+};
+var hasRequiredLayoutBase;
+function requireLayoutBase() {
+ if (hasRequiredLayoutBase)
+ return layoutBaseExports;
+ hasRequiredLayoutBase = 1;
+ (function(module, exports) {
+ (function webpackUniversalModuleDefinition(root, factory) {
+ module.exports = factory();
+ })(commonjsGlobal, function() {
+ return (
+ /******/
+ function(modules) {
+ var installedModules = {};
+ function __webpack_require__(moduleId) {
+ if (installedModules[moduleId]) {
+ return installedModules[moduleId].exports;
+ }
+ var module2 = installedModules[moduleId] = {
+ /******/
+ i: moduleId,
+ /******/
+ l: false,
+ /******/
+ exports: {}
+ /******/
+ };
+ modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__);
+ module2.l = true;
+ return module2.exports;
+ }
+ __webpack_require__.m = modules;
+ __webpack_require__.c = installedModules;
+ __webpack_require__.i = function(value) {
+ return value;
+ };
+ __webpack_require__.d = function(exports2, name2, getter) {
+ if (!__webpack_require__.o(exports2, name2)) {
+ Object.defineProperty(exports2, name2, {
+ /******/
+ configurable: false,
+ /******/
+ enumerable: true,
+ /******/
+ get: getter
+ /******/
+ });
+ }
+ };
+ __webpack_require__.n = function(module2) {
+ var getter = module2 && module2.__esModule ? (
+ /******/
+ function getDefault() {
+ return module2["default"];
+ }
+ ) : (
+ /******/
+ function getModuleExports() {
+ return module2;
+ }
+ );
+ __webpack_require__.d(getter, "a", getter);
+ return getter;
+ };
+ __webpack_require__.o = function(object, property) {
+ return Object.prototype.hasOwnProperty.call(object, property);
+ };
+ __webpack_require__.p = "";
+ return __webpack_require__(__webpack_require__.s = 26);
+ }([
+ /* 0 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function LayoutConstants() {
+ }
+ LayoutConstants.QUALITY = 1;
+ LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false;
+ LayoutConstants.DEFAULT_INCREMENTAL = false;
+ LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true;
+ LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false;
+ LayoutConstants.DEFAULT_ANIMATION_PERIOD = 50;
+ LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false;
+ LayoutConstants.DEFAULT_GRAPH_MARGIN = 15;
+ LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false;
+ LayoutConstants.SIMPLE_NODE_SIZE = 40;
+ LayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2;
+ LayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40;
+ LayoutConstants.MIN_EDGE_LENGTH = 1;
+ LayoutConstants.WORLD_BOUNDARY = 1e6;
+ LayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1e3;
+ LayoutConstants.WORLD_CENTER_X = 1200;
+ LayoutConstants.WORLD_CENTER_Y = 900;
+ module2.exports = LayoutConstants;
+ },
+ /* 1 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var LGraphObject = __webpack_require__(2);
+ var IGeometry = __webpack_require__(8);
+ var IMath = __webpack_require__(9);
+ function LEdge(source, target, vEdge) {
+ LGraphObject.call(this, vEdge);
+ this.isOverlapingSourceAndTarget = false;
+ this.vGraphObject = vEdge;
+ this.bendpoints = [];
+ this.source = source;
+ this.target = target;
+ }
+ LEdge.prototype = Object.create(LGraphObject.prototype);
+ for (var prop in LGraphObject) {
+ LEdge[prop] = LGraphObject[prop];
+ }
+ LEdge.prototype.getSource = function() {
+ return this.source;
+ };
+ LEdge.prototype.getTarget = function() {
+ return this.target;
+ };
+ LEdge.prototype.isInterGraph = function() {
+ return this.isInterGraph;
+ };
+ LEdge.prototype.getLength = function() {
+ return this.length;
+ };
+ LEdge.prototype.isOverlapingSourceAndTarget = function() {
+ return this.isOverlapingSourceAndTarget;
+ };
+ LEdge.prototype.getBendpoints = function() {
+ return this.bendpoints;
+ };
+ LEdge.prototype.getLca = function() {
+ return this.lca;
+ };
+ LEdge.prototype.getSourceInLca = function() {
+ return this.sourceInLca;
+ };
+ LEdge.prototype.getTargetInLca = function() {
+ return this.targetInLca;
+ };
+ LEdge.prototype.getOtherEnd = function(node) {
+ if (this.source === node) {
+ return this.target;
+ } else if (this.target === node) {
+ return this.source;
+ } else {
+ throw "Node is not incident with this edge";
+ }
+ };
+ LEdge.prototype.getOtherEndInGraph = function(node, graph) {
+ var otherEnd = this.getOtherEnd(node);
+ var root = graph.getGraphManager().getRoot();
+ while (true) {
+ if (otherEnd.getOwner() == graph) {
+ return otherEnd;
+ }
+ if (otherEnd.getOwner() == root) {
+ break;
+ }
+ otherEnd = otherEnd.getOwner().getParent();
+ }
+ return null;
+ };
+ LEdge.prototype.updateLength = function() {
+ var clipPointCoordinates = new Array(4);
+ this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates);
+ if (!this.isOverlapingSourceAndTarget) {
+ this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2];
+ this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3];
+ if (Math.abs(this.lengthX) < 1) {
+ this.lengthX = IMath.sign(this.lengthX);
+ }
+ if (Math.abs(this.lengthY) < 1) {
+ this.lengthY = IMath.sign(this.lengthY);
+ }
+ this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);
+ }
+ };
+ LEdge.prototype.updateLengthSimple = function() {
+ this.lengthX = this.target.getCenterX() - this.source.getCenterX();
+ this.lengthY = this.target.getCenterY() - this.source.getCenterY();
+ if (Math.abs(this.lengthX) < 1) {
+ this.lengthX = IMath.sign(this.lengthX);
+ }
+ if (Math.abs(this.lengthY) < 1) {
+ this.lengthY = IMath.sign(this.lengthY);
+ }
+ this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);
+ };
+ module2.exports = LEdge;
+ },
+ /* 2 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function LGraphObject(vGraphObject) {
+ this.vGraphObject = vGraphObject;
+ }
+ module2.exports = LGraphObject;
+ },
+ /* 3 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var LGraphObject = __webpack_require__(2);
+ var Integer = __webpack_require__(10);
+ var RectangleD = __webpack_require__(13);
+ var LayoutConstants = __webpack_require__(0);
+ var RandomSeed = __webpack_require__(16);
+ var PointD = __webpack_require__(4);
+ function LNode(gm, loc, size, vNode) {
+ if (size == null && vNode == null) {
+ vNode = loc;
+ }
+ LGraphObject.call(this, vNode);
+ if (gm.graphManager != null)
+ gm = gm.graphManager;
+ this.estimatedSize = Integer.MIN_VALUE;
+ this.inclusionTreeDepth = Integer.MAX_VALUE;
+ this.vGraphObject = vNode;
+ this.edges = [];
+ this.graphManager = gm;
+ if (size != null && loc != null)
+ this.rect = new RectangleD(loc.x, loc.y, size.width, size.height);
+ else
+ this.rect = new RectangleD();
+ }
+ LNode.prototype = Object.create(LGraphObject.prototype);
+ for (var prop in LGraphObject) {
+ LNode[prop] = LGraphObject[prop];
+ }
+ LNode.prototype.getEdges = function() {
+ return this.edges;
+ };
+ LNode.prototype.getChild = function() {
+ return this.child;
+ };
+ LNode.prototype.getOwner = function() {
+ return this.owner;
+ };
+ LNode.prototype.getWidth = function() {
+ return this.rect.width;
+ };
+ LNode.prototype.setWidth = function(width) {
+ this.rect.width = width;
+ };
+ LNode.prototype.getHeight = function() {
+ return this.rect.height;
+ };
+ LNode.prototype.setHeight = function(height) {
+ this.rect.height = height;
+ };
+ LNode.prototype.getCenterX = function() {
+ return this.rect.x + this.rect.width / 2;
+ };
+ LNode.prototype.getCenterY = function() {
+ return this.rect.y + this.rect.height / 2;
+ };
+ LNode.prototype.getCenter = function() {
+ return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2);
+ };
+ LNode.prototype.getLocation = function() {
+ return new PointD(this.rect.x, this.rect.y);
+ };
+ LNode.prototype.getRect = function() {
+ return this.rect;
+ };
+ LNode.prototype.getDiagonal = function() {
+ return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height);
+ };
+ LNode.prototype.getHalfTheDiagonal = function() {
+ return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2;
+ };
+ LNode.prototype.setRect = function(upperLeft, dimension) {
+ this.rect.x = upperLeft.x;
+ this.rect.y = upperLeft.y;
+ this.rect.width = dimension.width;
+ this.rect.height = dimension.height;
+ };
+ LNode.prototype.setCenter = function(cx, cy) {
+ this.rect.x = cx - this.rect.width / 2;
+ this.rect.y = cy - this.rect.height / 2;
+ };
+ LNode.prototype.setLocation = function(x, y) {
+ this.rect.x = x;
+ this.rect.y = y;
+ };
+ LNode.prototype.moveBy = function(dx, dy) {
+ this.rect.x += dx;
+ this.rect.y += dy;
+ };
+ LNode.prototype.getEdgeListToNode = function(to) {
+ var edgeList = [];
+ var self2 = this;
+ self2.edges.forEach(function(edge) {
+ if (edge.target == to) {
+ if (edge.source != self2)
+ throw "Incorrect edge source!";
+ edgeList.push(edge);
+ }
+ });
+ return edgeList;
+ };
+ LNode.prototype.getEdgesBetween = function(other) {
+ var edgeList = [];
+ var self2 = this;
+ self2.edges.forEach(function(edge) {
+ if (!(edge.source == self2 || edge.target == self2))
+ throw "Incorrect edge source and/or target";
+ if (edge.target == other || edge.source == other) {
+ edgeList.push(edge);
+ }
+ });
+ return edgeList;
+ };
+ LNode.prototype.getNeighborsList = function() {
+ var neighbors = /* @__PURE__ */ new Set();
+ var self2 = this;
+ self2.edges.forEach(function(edge) {
+ if (edge.source == self2) {
+ neighbors.add(edge.target);
+ } else {
+ if (edge.target != self2) {
+ throw "Incorrect incidency!";
+ }
+ neighbors.add(edge.source);
+ }
+ });
+ return neighbors;
+ };
+ LNode.prototype.withChildren = function() {
+ var withNeighborsList = /* @__PURE__ */ new Set();
+ var childNode;
+ var children;
+ withNeighborsList.add(this);
+ if (this.child != null) {
+ var nodes2 = this.child.getNodes();
+ for (var i = 0; i < nodes2.length; i++) {
+ childNode = nodes2[i];
+ children = childNode.withChildren();
+ children.forEach(function(node) {
+ withNeighborsList.add(node);
+ });
+ }
+ }
+ return withNeighborsList;
+ };
+ LNode.prototype.getNoOfChildren = function() {
+ var noOfChildren = 0;
+ var childNode;
+ if (this.child == null) {
+ noOfChildren = 1;
+ } else {
+ var nodes2 = this.child.getNodes();
+ for (var i = 0; i < nodes2.length; i++) {
+ childNode = nodes2[i];
+ noOfChildren += childNode.getNoOfChildren();
+ }
+ }
+ if (noOfChildren == 0) {
+ noOfChildren = 1;
+ }
+ return noOfChildren;
+ };
+ LNode.prototype.getEstimatedSize = function() {
+ if (this.estimatedSize == Integer.MIN_VALUE) {
+ throw "assert failed";
+ }
+ return this.estimatedSize;
+ };
+ LNode.prototype.calcEstimatedSize = function() {
+ if (this.child == null) {
+ return this.estimatedSize = (this.rect.width + this.rect.height) / 2;
+ } else {
+ this.estimatedSize = this.child.calcEstimatedSize();
+ this.rect.width = this.estimatedSize;
+ this.rect.height = this.estimatedSize;
+ return this.estimatedSize;
+ }
+ };
+ LNode.prototype.scatter = function() {
+ var randomCenterX;
+ var randomCenterY;
+ var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY;
+ var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY;
+ randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX;
+ var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY;
+ var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY;
+ randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY;
+ this.rect.x = randomCenterX;
+ this.rect.y = randomCenterY;
+ };
+ LNode.prototype.updateBounds = function() {
+ if (this.getChild() == null) {
+ throw "assert failed";
+ }
+ if (this.getChild().getNodes().length != 0) {
+ var childGraph = this.getChild();
+ childGraph.updateBounds(true);
+ this.rect.x = childGraph.getLeft();
+ this.rect.y = childGraph.getTop();
+ this.setWidth(childGraph.getRight() - childGraph.getLeft());
+ this.setHeight(childGraph.getBottom() - childGraph.getTop());
+ if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {
+ var width = childGraph.getRight() - childGraph.getLeft();
+ var height = childGraph.getBottom() - childGraph.getTop();
+ if (this.labelWidth > width) {
+ this.rect.x -= (this.labelWidth - width) / 2;
+ this.setWidth(this.labelWidth);
+ }
+ if (this.labelHeight > height) {
+ if (this.labelPos == "center") {
+ this.rect.y -= (this.labelHeight - height) / 2;
+ } else if (this.labelPos == "top") {
+ this.rect.y -= this.labelHeight - height;
+ }
+ this.setHeight(this.labelHeight);
+ }
+ }
+ }
+ };
+ LNode.prototype.getInclusionTreeDepth = function() {
+ if (this.inclusionTreeDepth == Integer.MAX_VALUE) {
+ throw "assert failed";
+ }
+ return this.inclusionTreeDepth;
+ };
+ LNode.prototype.transform = function(trans) {
+ var left = this.rect.x;
+ if (left > LayoutConstants.WORLD_BOUNDARY) {
+ left = LayoutConstants.WORLD_BOUNDARY;
+ } else if (left < -LayoutConstants.WORLD_BOUNDARY) {
+ left = -LayoutConstants.WORLD_BOUNDARY;
+ }
+ var top = this.rect.y;
+ if (top > LayoutConstants.WORLD_BOUNDARY) {
+ top = LayoutConstants.WORLD_BOUNDARY;
+ } else if (top < -LayoutConstants.WORLD_BOUNDARY) {
+ top = -LayoutConstants.WORLD_BOUNDARY;
+ }
+ var leftTop = new PointD(left, top);
+ var vLeftTop = trans.inverseTransformPoint(leftTop);
+ this.setLocation(vLeftTop.x, vLeftTop.y);
+ };
+ LNode.prototype.getLeft = function() {
+ return this.rect.x;
+ };
+ LNode.prototype.getRight = function() {
+ return this.rect.x + this.rect.width;
+ };
+ LNode.prototype.getTop = function() {
+ return this.rect.y;
+ };
+ LNode.prototype.getBottom = function() {
+ return this.rect.y + this.rect.height;
+ };
+ LNode.prototype.getParent = function() {
+ if (this.owner == null) {
+ return null;
+ }
+ return this.owner.getParent();
+ };
+ module2.exports = LNode;
+ },
+ /* 4 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function PointD(x, y) {
+ if (x == null && y == null) {
+ this.x = 0;
+ this.y = 0;
+ } else {
+ this.x = x;
+ this.y = y;
+ }
+ }
+ PointD.prototype.getX = function() {
+ return this.x;
+ };
+ PointD.prototype.getY = function() {
+ return this.y;
+ };
+ PointD.prototype.setX = function(x) {
+ this.x = x;
+ };
+ PointD.prototype.setY = function(y) {
+ this.y = y;
+ };
+ PointD.prototype.getDifference = function(pt) {
+ return new DimensionD(this.x - pt.x, this.y - pt.y);
+ };
+ PointD.prototype.getCopy = function() {
+ return new PointD(this.x, this.y);
+ };
+ PointD.prototype.translate = function(dim) {
+ this.x += dim.width;
+ this.y += dim.height;
+ return this;
+ };
+ module2.exports = PointD;
+ },
+ /* 5 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var LGraphObject = __webpack_require__(2);
+ var Integer = __webpack_require__(10);
+ var LayoutConstants = __webpack_require__(0);
+ var LGraphManager = __webpack_require__(6);
+ var LNode = __webpack_require__(3);
+ var LEdge = __webpack_require__(1);
+ var RectangleD = __webpack_require__(13);
+ var Point2 = __webpack_require__(12);
+ var LinkedList = __webpack_require__(11);
+ function LGraph(parent, obj2, vGraph) {
+ LGraphObject.call(this, vGraph);
+ this.estimatedSize = Integer.MIN_VALUE;
+ this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN;
+ this.edges = [];
+ this.nodes = [];
+ this.isConnected = false;
+ this.parent = parent;
+ if (obj2 != null && obj2 instanceof LGraphManager) {
+ this.graphManager = obj2;
+ } else if (obj2 != null && obj2 instanceof Layout) {
+ this.graphManager = obj2.graphManager;
+ }
+ }
+ LGraph.prototype = Object.create(LGraphObject.prototype);
+ for (var prop in LGraphObject) {
+ LGraph[prop] = LGraphObject[prop];
+ }
+ LGraph.prototype.getNodes = function() {
+ return this.nodes;
+ };
+ LGraph.prototype.getEdges = function() {
+ return this.edges;
+ };
+ LGraph.prototype.getGraphManager = function() {
+ return this.graphManager;
+ };
+ LGraph.prototype.getParent = function() {
+ return this.parent;
+ };
+ LGraph.prototype.getLeft = function() {
+ return this.left;
+ };
+ LGraph.prototype.getRight = function() {
+ return this.right;
+ };
+ LGraph.prototype.getTop = function() {
+ return this.top;
+ };
+ LGraph.prototype.getBottom = function() {
+ return this.bottom;
+ };
+ LGraph.prototype.isConnected = function() {
+ return this.isConnected;
+ };
+ LGraph.prototype.add = function(obj1, sourceNode, targetNode) {
+ if (sourceNode == null && targetNode == null) {
+ var newNode = obj1;
+ if (this.graphManager == null) {
+ throw "Graph has no graph mgr!";
+ }
+ if (this.getNodes().indexOf(newNode) > -1) {
+ throw "Node already in graph!";
+ }
+ newNode.owner = this;
+ this.getNodes().push(newNode);
+ return newNode;
+ } else {
+ var newEdge = obj1;
+ if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) {
+ throw "Source or target not in graph!";
+ }
+ if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) {
+ throw "Both owners must be this graph!";
+ }
+ if (sourceNode.owner != targetNode.owner) {
+ return null;
+ }
+ newEdge.source = sourceNode;
+ newEdge.target = targetNode;
+ newEdge.isInterGraph = false;
+ this.getEdges().push(newEdge);
+ sourceNode.edges.push(newEdge);
+ if (targetNode != sourceNode) {
+ targetNode.edges.push(newEdge);
+ }
+ return newEdge;
+ }
+ };
+ LGraph.prototype.remove = function(obj) {
+ var node = obj;
+ if (obj instanceof LNode) {
+ if (node == null) {
+ throw "Node is null!";
+ }
+ if (!(node.owner != null && node.owner == this)) {
+ throw "Owner graph is invalid!";
+ }
+ if (this.graphManager == null) {
+ throw "Owner graph manager is invalid!";
+ }
+ var edgesToBeRemoved = node.edges.slice();
+ var edge;
+ var s = edgesToBeRemoved.length;
+ for (var i = 0; i < s; i++) {
+ edge = edgesToBeRemoved[i];
+ if (edge.isInterGraph) {
+ this.graphManager.remove(edge);
+ } else {
+ edge.source.owner.remove(edge);
+ }
+ }
+ var index = this.nodes.indexOf(node);
+ if (index == -1) {
+ throw "Node not in owner node list!";
+ }
+ this.nodes.splice(index, 1);
+ } else if (obj instanceof LEdge) {
+ var edge = obj;
+ if (edge == null) {
+ throw "Edge is null!";
+ }
+ if (!(edge.source != null && edge.target != null)) {
+ throw "Source and/or target is null!";
+ }
+ if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) {
+ throw "Source and/or target owner is invalid!";
+ }
+ var sourceIndex = edge.source.edges.indexOf(edge);
+ var targetIndex = edge.target.edges.indexOf(edge);
+ if (!(sourceIndex > -1 && targetIndex > -1)) {
+ throw "Source and/or target doesn't know this edge!";
+ }
+ edge.source.edges.splice(sourceIndex, 1);
+ if (edge.target != edge.source) {
+ edge.target.edges.splice(targetIndex, 1);
+ }
+ var index = edge.source.owner.getEdges().indexOf(edge);
+ if (index == -1) {
+ throw "Not in owner's edge list!";
+ }
+ edge.source.owner.getEdges().splice(index, 1);
+ }
+ };
+ LGraph.prototype.updateLeftTop = function() {
+ var top = Integer.MAX_VALUE;
+ var left = Integer.MAX_VALUE;
+ var nodeTop;
+ var nodeLeft;
+ var margin;
+ var nodes2 = this.getNodes();
+ var s = nodes2.length;
+ for (var i = 0; i < s; i++) {
+ var lNode = nodes2[i];
+ nodeTop = lNode.getTop();
+ nodeLeft = lNode.getLeft();
+ if (top > nodeTop) {
+ top = nodeTop;
+ }
+ if (left > nodeLeft) {
+ left = nodeLeft;
+ }
+ }
+ if (top == Integer.MAX_VALUE) {
+ return null;
+ }
+ if (nodes2[0].getParent().paddingLeft != void 0) {
+ margin = nodes2[0].getParent().paddingLeft;
+ } else {
+ margin = this.margin;
+ }
+ this.left = left - margin;
+ this.top = top - margin;
+ return new Point2(this.left, this.top);
+ };
+ LGraph.prototype.updateBounds = function(recursive) {
+ var left = Integer.MAX_VALUE;
+ var right = -Integer.MAX_VALUE;
+ var top = Integer.MAX_VALUE;
+ var bottom = -Integer.MAX_VALUE;
+ var nodeLeft;
+ var nodeRight;
+ var nodeTop;
+ var nodeBottom;
+ var margin;
+ var nodes2 = this.nodes;
+ var s = nodes2.length;
+ for (var i = 0; i < s; i++) {
+ var lNode = nodes2[i];
+ if (recursive && lNode.child != null) {
+ lNode.updateBounds();
+ }
+ nodeLeft = lNode.getLeft();
+ nodeRight = lNode.getRight();
+ nodeTop = lNode.getTop();
+ nodeBottom = lNode.getBottom();
+ if (left > nodeLeft) {
+ left = nodeLeft;
+ }
+ if (right < nodeRight) {
+ right = nodeRight;
+ }
+ if (top > nodeTop) {
+ top = nodeTop;
+ }
+ if (bottom < nodeBottom) {
+ bottom = nodeBottom;
+ }
+ }
+ var boundingRect = new RectangleD(left, top, right - left, bottom - top);
+ if (left == Integer.MAX_VALUE) {
+ this.left = this.parent.getLeft();
+ this.right = this.parent.getRight();
+ this.top = this.parent.getTop();
+ this.bottom = this.parent.getBottom();
+ }
+ if (nodes2[0].getParent().paddingLeft != void 0) {
+ margin = nodes2[0].getParent().paddingLeft;
+ } else {
+ margin = this.margin;
+ }
+ this.left = boundingRect.x - margin;
+ this.right = boundingRect.x + boundingRect.width + margin;
+ this.top = boundingRect.y - margin;
+ this.bottom = boundingRect.y + boundingRect.height + margin;
+ };
+ LGraph.calculateBounds = function(nodes2) {
+ var left = Integer.MAX_VALUE;
+ var right = -Integer.MAX_VALUE;
+ var top = Integer.MAX_VALUE;
+ var bottom = -Integer.MAX_VALUE;
+ var nodeLeft;
+ var nodeRight;
+ var nodeTop;
+ var nodeBottom;
+ var s = nodes2.length;
+ for (var i = 0; i < s; i++) {
+ var lNode = nodes2[i];
+ nodeLeft = lNode.getLeft();
+ nodeRight = lNode.getRight();
+ nodeTop = lNode.getTop();
+ nodeBottom = lNode.getBottom();
+ if (left > nodeLeft) {
+ left = nodeLeft;
+ }
+ if (right < nodeRight) {
+ right = nodeRight;
+ }
+ if (top > nodeTop) {
+ top = nodeTop;
+ }
+ if (bottom < nodeBottom) {
+ bottom = nodeBottom;
+ }
+ }
+ var boundingRect = new RectangleD(left, top, right - left, bottom - top);
+ return boundingRect;
+ };
+ LGraph.prototype.getInclusionTreeDepth = function() {
+ if (this == this.graphManager.getRoot()) {
+ return 1;
+ } else {
+ return this.parent.getInclusionTreeDepth();
+ }
+ };
+ LGraph.prototype.getEstimatedSize = function() {
+ if (this.estimatedSize == Integer.MIN_VALUE) {
+ throw "assert failed";
+ }
+ return this.estimatedSize;
+ };
+ LGraph.prototype.calcEstimatedSize = function() {
+ var size = 0;
+ var nodes2 = this.nodes;
+ var s = nodes2.length;
+ for (var i = 0; i < s; i++) {
+ var lNode = nodes2[i];
+ size += lNode.calcEstimatedSize();
+ }
+ if (size == 0) {
+ this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE;
+ } else {
+ this.estimatedSize = size / Math.sqrt(this.nodes.length);
+ }
+ return this.estimatedSize;
+ };
+ LGraph.prototype.updateConnected = function() {
+ var self2 = this;
+ if (this.nodes.length == 0) {
+ this.isConnected = true;
+ return;
+ }
+ var queue = new LinkedList();
+ var visited = /* @__PURE__ */ new Set();
+ var currentNode = this.nodes[0];
+ var neighborEdges;
+ var currentNeighbor;
+ var childrenOfNode = currentNode.withChildren();
+ childrenOfNode.forEach(function(node) {
+ queue.push(node);
+ visited.add(node);
+ });
+ while (queue.length !== 0) {
+ currentNode = queue.shift();
+ neighborEdges = currentNode.getEdges();
+ var size = neighborEdges.length;
+ for (var i = 0; i < size; i++) {
+ var neighborEdge = neighborEdges[i];
+ currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this);
+ if (currentNeighbor != null && !visited.has(currentNeighbor)) {
+ var childrenOfNeighbor = currentNeighbor.withChildren();
+ childrenOfNeighbor.forEach(function(node) {
+ queue.push(node);
+ visited.add(node);
+ });
+ }
+ }
+ }
+ this.isConnected = false;
+ if (visited.size >= this.nodes.length) {
+ var noOfVisitedInThisGraph = 0;
+ visited.forEach(function(visitedNode) {
+ if (visitedNode.owner == self2) {
+ noOfVisitedInThisGraph++;
+ }
+ });
+ if (noOfVisitedInThisGraph == this.nodes.length) {
+ this.isConnected = true;
+ }
+ }
+ };
+ module2.exports = LGraph;
+ },
+ /* 6 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var LGraph;
+ var LEdge = __webpack_require__(1);
+ function LGraphManager(layout) {
+ LGraph = __webpack_require__(5);
+ this.layout = layout;
+ this.graphs = [];
+ this.edges = [];
+ }
+ LGraphManager.prototype.addRoot = function() {
+ var ngraph = this.layout.newGraph();
+ var nnode = this.layout.newNode(null);
+ var root = this.add(ngraph, nnode);
+ this.setRootGraph(root);
+ return this.rootGraph;
+ };
+ LGraphManager.prototype.add = function(newGraph, parentNode, newEdge, sourceNode, targetNode) {
+ if (newEdge == null && sourceNode == null && targetNode == null) {
+ if (newGraph == null) {
+ throw "Graph is null!";
+ }
+ if (parentNode == null) {
+ throw "Parent node is null!";
+ }
+ if (this.graphs.indexOf(newGraph) > -1) {
+ throw "Graph already in this graph mgr!";
+ }
+ this.graphs.push(newGraph);
+ if (newGraph.parent != null) {
+ throw "Already has a parent!";
+ }
+ if (parentNode.child != null) {
+ throw "Already has a child!";
+ }
+ newGraph.parent = parentNode;
+ parentNode.child = newGraph;
+ return newGraph;
+ } else {
+ targetNode = newEdge;
+ sourceNode = parentNode;
+ newEdge = newGraph;
+ var sourceGraph = sourceNode.getOwner();
+ var targetGraph = targetNode.getOwner();
+ if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) {
+ throw "Source not in this graph mgr!";
+ }
+ if (!(targetGraph != null && targetGraph.getGraphManager() == this)) {
+ throw "Target not in this graph mgr!";
+ }
+ if (sourceGraph == targetGraph) {
+ newEdge.isInterGraph = false;
+ return sourceGraph.add(newEdge, sourceNode, targetNode);
+ } else {
+ newEdge.isInterGraph = true;
+ newEdge.source = sourceNode;
+ newEdge.target = targetNode;
+ if (this.edges.indexOf(newEdge) > -1) {
+ throw "Edge already in inter-graph edge list!";
+ }
+ this.edges.push(newEdge);
+ if (!(newEdge.source != null && newEdge.target != null)) {
+ throw "Edge source and/or target is null!";
+ }
+ if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) {
+ throw "Edge already in source and/or target incidency list!";
+ }
+ newEdge.source.edges.push(newEdge);
+ newEdge.target.edges.push(newEdge);
+ return newEdge;
+ }
+ }
+ };
+ LGraphManager.prototype.remove = function(lObj) {
+ if (lObj instanceof LGraph) {
+ var graph = lObj;
+ if (graph.getGraphManager() != this) {
+ throw "Graph not in this graph mgr";
+ }
+ if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) {
+ throw "Invalid parent node!";
+ }
+ var edgesToBeRemoved = [];
+ edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges());
+ var edge;
+ var s = edgesToBeRemoved.length;
+ for (var i = 0; i < s; i++) {
+ edge = edgesToBeRemoved[i];
+ graph.remove(edge);
+ }
+ var nodesToBeRemoved = [];
+ nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes());
+ var node;
+ s = nodesToBeRemoved.length;
+ for (var i = 0; i < s; i++) {
+ node = nodesToBeRemoved[i];
+ graph.remove(node);
+ }
+ if (graph == this.rootGraph) {
+ this.setRootGraph(null);
+ }
+ var index = this.graphs.indexOf(graph);
+ this.graphs.splice(index, 1);
+ graph.parent = null;
+ } else if (lObj instanceof LEdge) {
+ edge = lObj;
+ if (edge == null) {
+ throw "Edge is null!";
+ }
+ if (!edge.isInterGraph) {
+ throw "Not an inter-graph edge!";
+ }
+ if (!(edge.source != null && edge.target != null)) {
+ throw "Source and/or target is null!";
+ }
+ if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) {
+ throw "Source and/or target doesn't know this edge!";
+ }
+ var index = edge.source.edges.indexOf(edge);
+ edge.source.edges.splice(index, 1);
+ index = edge.target.edges.indexOf(edge);
+ edge.target.edges.splice(index, 1);
+ if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) {
+ throw "Edge owner graph or owner graph manager is null!";
+ }
+ if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) {
+ throw "Not in owner graph manager's edge list!";
+ }
+ var index = edge.source.owner.getGraphManager().edges.indexOf(edge);
+ edge.source.owner.getGraphManager().edges.splice(index, 1);
+ }
+ };
+ LGraphManager.prototype.updateBounds = function() {
+ this.rootGraph.updateBounds(true);
+ };
+ LGraphManager.prototype.getGraphs = function() {
+ return this.graphs;
+ };
+ LGraphManager.prototype.getAllNodes = function() {
+ if (this.allNodes == null) {
+ var nodeList = [];
+ var graphs = this.getGraphs();
+ var s = graphs.length;
+ for (var i = 0; i < s; i++) {
+ nodeList = nodeList.concat(graphs[i].getNodes());
+ }
+ this.allNodes = nodeList;
+ }
+ return this.allNodes;
+ };
+ LGraphManager.prototype.resetAllNodes = function() {
+ this.allNodes = null;
+ };
+ LGraphManager.prototype.resetAllEdges = function() {
+ this.allEdges = null;
+ };
+ LGraphManager.prototype.resetAllNodesToApplyGravitation = function() {
+ this.allNodesToApplyGravitation = null;
+ };
+ LGraphManager.prototype.getAllEdges = function() {
+ if (this.allEdges == null) {
+ var edgeList = [];
+ var graphs = this.getGraphs();
+ graphs.length;
+ for (var i = 0; i < graphs.length; i++) {
+ edgeList = edgeList.concat(graphs[i].getEdges());
+ }
+ edgeList = edgeList.concat(this.edges);
+ this.allEdges = edgeList;
+ }
+ return this.allEdges;
+ };
+ LGraphManager.prototype.getAllNodesToApplyGravitation = function() {
+ return this.allNodesToApplyGravitation;
+ };
+ LGraphManager.prototype.setAllNodesToApplyGravitation = function(nodeList) {
+ if (this.allNodesToApplyGravitation != null) {
+ throw "assert failed";
+ }
+ this.allNodesToApplyGravitation = nodeList;
+ };
+ LGraphManager.prototype.getRoot = function() {
+ return this.rootGraph;
+ };
+ LGraphManager.prototype.setRootGraph = function(graph) {
+ if (graph.getGraphManager() != this) {
+ throw "Root not in this graph mgr!";
+ }
+ this.rootGraph = graph;
+ if (graph.parent == null) {
+ graph.parent = this.layout.newNode("Root node");
+ }
+ };
+ LGraphManager.prototype.getLayout = function() {
+ return this.layout;
+ };
+ LGraphManager.prototype.isOneAncestorOfOther = function(firstNode, secondNode) {
+ if (!(firstNode != null && secondNode != null)) {
+ throw "assert failed";
+ }
+ if (firstNode == secondNode) {
+ return true;
+ }
+ var ownerGraph = firstNode.getOwner();
+ var parentNode;
+ do {
+ parentNode = ownerGraph.getParent();
+ if (parentNode == null) {
+ break;
+ }
+ if (parentNode == secondNode) {
+ return true;
+ }
+ ownerGraph = parentNode.getOwner();
+ if (ownerGraph == null) {
+ break;
+ }
+ } while (true);
+ ownerGraph = secondNode.getOwner();
+ do {
+ parentNode = ownerGraph.getParent();
+ if (parentNode == null) {
+ break;
+ }
+ if (parentNode == firstNode) {
+ return true;
+ }
+ ownerGraph = parentNode.getOwner();
+ if (ownerGraph == null) {
+ break;
+ }
+ } while (true);
+ return false;
+ };
+ LGraphManager.prototype.calcLowestCommonAncestors = function() {
+ var edge;
+ var sourceNode;
+ var targetNode;
+ var sourceAncestorGraph;
+ var targetAncestorGraph;
+ var edges = this.getAllEdges();
+ var s = edges.length;
+ for (var i = 0; i < s; i++) {
+ edge = edges[i];
+ sourceNode = edge.source;
+ targetNode = edge.target;
+ edge.lca = null;
+ edge.sourceInLca = sourceNode;
+ edge.targetInLca = targetNode;
+ if (sourceNode == targetNode) {
+ edge.lca = sourceNode.getOwner();
+ continue;
+ }
+ sourceAncestorGraph = sourceNode.getOwner();
+ while (edge.lca == null) {
+ edge.targetInLca = targetNode;
+ targetAncestorGraph = targetNode.getOwner();
+ while (edge.lca == null) {
+ if (targetAncestorGraph == sourceAncestorGraph) {
+ edge.lca = targetAncestorGraph;
+ break;
+ }
+ if (targetAncestorGraph == this.rootGraph) {
+ break;
+ }
+ if (edge.lca != null) {
+ throw "assert failed";
+ }
+ edge.targetInLca = targetAncestorGraph.getParent();
+ targetAncestorGraph = edge.targetInLca.getOwner();
+ }
+ if (sourceAncestorGraph == this.rootGraph) {
+ break;
+ }
+ if (edge.lca == null) {
+ edge.sourceInLca = sourceAncestorGraph.getParent();
+ sourceAncestorGraph = edge.sourceInLca.getOwner();
+ }
+ }
+ if (edge.lca == null) {
+ throw "assert failed";
+ }
+ }
+ };
+ LGraphManager.prototype.calcLowestCommonAncestor = function(firstNode, secondNode) {
+ if (firstNode == secondNode) {
+ return firstNode.getOwner();
+ }
+ var firstOwnerGraph = firstNode.getOwner();
+ do {
+ if (firstOwnerGraph == null) {
+ break;
+ }
+ var secondOwnerGraph = secondNode.getOwner();
+ do {
+ if (secondOwnerGraph == null) {
+ break;
+ }
+ if (secondOwnerGraph == firstOwnerGraph) {
+ return secondOwnerGraph;
+ }
+ secondOwnerGraph = secondOwnerGraph.getParent().getOwner();
+ } while (true);
+ firstOwnerGraph = firstOwnerGraph.getParent().getOwner();
+ } while (true);
+ return firstOwnerGraph;
+ };
+ LGraphManager.prototype.calcInclusionTreeDepths = function(graph, depth) {
+ if (graph == null && depth == null) {
+ graph = this.rootGraph;
+ depth = 1;
+ }
+ var node;
+ var nodes2 = graph.getNodes();
+ var s = nodes2.length;
+ for (var i = 0; i < s; i++) {
+ node = nodes2[i];
+ node.inclusionTreeDepth = depth;
+ if (node.child != null) {
+ this.calcInclusionTreeDepths(node.child, depth + 1);
+ }
+ }
+ };
+ LGraphManager.prototype.includesInvalidEdge = function() {
+ var edge;
+ var s = this.edges.length;
+ for (var i = 0; i < s; i++) {
+ edge = this.edges[i];
+ if (this.isOneAncestorOfOther(edge.source, edge.target)) {
+ return true;
+ }
+ }
+ return false;
+ };
+ module2.exports = LGraphManager;
+ },
+ /* 7 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var LayoutConstants = __webpack_require__(0);
+ function FDLayoutConstants() {
+ }
+ for (var prop in LayoutConstants) {
+ FDLayoutConstants[prop] = LayoutConstants[prop];
+ }
+ FDLayoutConstants.MAX_ITERATIONS = 2500;
+ FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;
+ FDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45;
+ FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500;
+ FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4;
+ FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1;
+ FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8;
+ FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5;
+ FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true;
+ FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true;
+ FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3;
+ FDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33;
+ FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1e3;
+ FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5e3;
+ FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100;
+ FDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3;
+ FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10;
+ FDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100;
+ FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1;
+ FDLayoutConstants.MIN_EDGE_LENGTH = 1;
+ FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10;
+ module2.exports = FDLayoutConstants;
+ },
+ /* 8 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var Point2 = __webpack_require__(12);
+ function IGeometry() {
+ }
+ IGeometry.calcSeparationAmount = function(rectA, rectB, overlapAmount, separationBuffer) {
+ if (!rectA.intersects(rectB)) {
+ throw "assert failed";
+ }
+ var directions = new Array(2);
+ this.decideDirectionsForOverlappingNodes(rectA, rectB, directions);
+ overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x);
+ overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y);
+ if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) {
+ overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight());
+ } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) {
+ overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight());
+ }
+ if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) {
+ overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom());
+ } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) {
+ overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom());
+ }
+ var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX()));
+ if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) {
+ slope = 1;
+ }
+ var moveByY = slope * overlapAmount[0];
+ var moveByX = overlapAmount[1] / slope;
+ if (overlapAmount[0] < moveByX) {
+ moveByX = overlapAmount[0];
+ } else {
+ moveByY = overlapAmount[1];
+ }
+ overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer);
+ overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer);
+ };
+ IGeometry.decideDirectionsForOverlappingNodes = function(rectA, rectB, directions) {
+ if (rectA.getCenterX() < rectB.getCenterX()) {
+ directions[0] = -1;
+ } else {
+ directions[0] = 1;
+ }
+ if (rectA.getCenterY() < rectB.getCenterY()) {
+ directions[1] = -1;
+ } else {
+ directions[1] = 1;
+ }
+ };
+ IGeometry.getIntersection2 = function(rectA, rectB, result) {
+ var p1x = rectA.getCenterX();
+ var p1y = rectA.getCenterY();
+ var p2x = rectB.getCenterX();
+ var p2y = rectB.getCenterY();
+ if (rectA.intersects(rectB)) {
+ result[0] = p1x;
+ result[1] = p1y;
+ result[2] = p2x;
+ result[3] = p2y;
+ return true;
+ }
+ var topLeftAx = rectA.getX();
+ var topLeftAy = rectA.getY();
+ var topRightAx = rectA.getRight();
+ var bottomLeftAx = rectA.getX();
+ var bottomLeftAy = rectA.getBottom();
+ var bottomRightAx = rectA.getRight();
+ var halfWidthA = rectA.getWidthHalf();
+ var halfHeightA = rectA.getHeightHalf();
+ var topLeftBx = rectB.getX();
+ var topLeftBy = rectB.getY();
+ var topRightBx = rectB.getRight();
+ var bottomLeftBx = rectB.getX();
+ var bottomLeftBy = rectB.getBottom();
+ var bottomRightBx = rectB.getRight();
+ var halfWidthB = rectB.getWidthHalf();
+ var halfHeightB = rectB.getHeightHalf();
+ var clipPointAFound = false;
+ var clipPointBFound = false;
+ if (p1x === p2x) {
+ if (p1y > p2y) {
+ result[0] = p1x;
+ result[1] = topLeftAy;
+ result[2] = p2x;
+ result[3] = bottomLeftBy;
+ return false;
+ } else if (p1y < p2y) {
+ result[0] = p1x;
+ result[1] = bottomLeftAy;
+ result[2] = p2x;
+ result[3] = topLeftBy;
+ return false;
+ } else
+ ;
+ } else if (p1y === p2y) {
+ if (p1x > p2x) {
+ result[0] = topLeftAx;
+ result[1] = p1y;
+ result[2] = topRightBx;
+ result[3] = p2y;
+ return false;
+ } else if (p1x < p2x) {
+ result[0] = topRightAx;
+ result[1] = p1y;
+ result[2] = topLeftBx;
+ result[3] = p2y;
+ return false;
+ } else
+ ;
+ } else {
+ var slopeA = rectA.height / rectA.width;
+ var slopeB = rectB.height / rectB.width;
+ var slopePrime = (p2y - p1y) / (p2x - p1x);
+ var cardinalDirectionA = void 0;
+ var cardinalDirectionB = void 0;
+ var tempPointAx = void 0;
+ var tempPointAy = void 0;
+ var tempPointBx = void 0;
+ var tempPointBy = void 0;
+ if (-slopeA === slopePrime) {
+ if (p1x > p2x) {
+ result[0] = bottomLeftAx;
+ result[1] = bottomLeftAy;
+ clipPointAFound = true;
+ } else {
+ result[0] = topRightAx;
+ result[1] = topLeftAy;
+ clipPointAFound = true;
+ }
+ } else if (slopeA === slopePrime) {
+ if (p1x > p2x) {
+ result[0] = topLeftAx;
+ result[1] = topLeftAy;
+ clipPointAFound = true;
+ } else {
+ result[0] = bottomRightAx;
+ result[1] = bottomLeftAy;
+ clipPointAFound = true;
+ }
+ }
+ if (-slopeB === slopePrime) {
+ if (p2x > p1x) {
+ result[2] = bottomLeftBx;
+ result[3] = bottomLeftBy;
+ clipPointBFound = true;
+ } else {
+ result[2] = topRightBx;
+ result[3] = topLeftBy;
+ clipPointBFound = true;
+ }
+ } else if (slopeB === slopePrime) {
+ if (p2x > p1x) {
+ result[2] = topLeftBx;
+ result[3] = topLeftBy;
+ clipPointBFound = true;
+ } else {
+ result[2] = bottomRightBx;
+ result[3] = bottomLeftBy;
+ clipPointBFound = true;
+ }
+ }
+ if (clipPointAFound && clipPointBFound) {
+ return false;
+ }
+ if (p1x > p2x) {
+ if (p1y > p2y) {
+ cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4);
+ cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2);
+ } else {
+ cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3);
+ cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1);
+ }
+ } else {
+ if (p1y > p2y) {
+ cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1);
+ cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3);
+ } else {
+ cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2);
+ cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4);
+ }
+ }
+ if (!clipPointAFound) {
+ switch (cardinalDirectionA) {
+ case 1:
+ tempPointAy = topLeftAy;
+ tempPointAx = p1x + -halfHeightA / slopePrime;
+ result[0] = tempPointAx;
+ result[1] = tempPointAy;
+ break;
+ case 2:
+ tempPointAx = bottomRightAx;
+ tempPointAy = p1y + halfWidthA * slopePrime;
+ result[0] = tempPointAx;
+ result[1] = tempPointAy;
+ break;
+ case 3:
+ tempPointAy = bottomLeftAy;
+ tempPointAx = p1x + halfHeightA / slopePrime;
+ result[0] = tempPointAx;
+ result[1] = tempPointAy;
+ break;
+ case 4:
+ tempPointAx = bottomLeftAx;
+ tempPointAy = p1y + -halfWidthA * slopePrime;
+ result[0] = tempPointAx;
+ result[1] = tempPointAy;
+ break;
+ }
+ }
+ if (!clipPointBFound) {
+ switch (cardinalDirectionB) {
+ case 1:
+ tempPointBy = topLeftBy;
+ tempPointBx = p2x + -halfHeightB / slopePrime;
+ result[2] = tempPointBx;
+ result[3] = tempPointBy;
+ break;
+ case 2:
+ tempPointBx = bottomRightBx;
+ tempPointBy = p2y + halfWidthB * slopePrime;
+ result[2] = tempPointBx;
+ result[3] = tempPointBy;
+ break;
+ case 3:
+ tempPointBy = bottomLeftBy;
+ tempPointBx = p2x + halfHeightB / slopePrime;
+ result[2] = tempPointBx;
+ result[3] = tempPointBy;
+ break;
+ case 4:
+ tempPointBx = bottomLeftBx;
+ tempPointBy = p2y + -halfWidthB * slopePrime;
+ result[2] = tempPointBx;
+ result[3] = tempPointBy;
+ break;
+ }
+ }
+ }
+ return false;
+ };
+ IGeometry.getCardinalDirection = function(slope, slopePrime, line) {
+ if (slope > slopePrime) {
+ return line;
+ } else {
+ return 1 + line % 4;
+ }
+ };
+ IGeometry.getIntersection = function(s1, s2, f1, f2) {
+ if (f2 == null) {
+ return this.getIntersection2(s1, s2, f1);
+ }
+ var x1 = s1.x;
+ var y1 = s1.y;
+ var x2 = s2.x;
+ var y2 = s2.y;
+ var x3 = f1.x;
+ var y3 = f1.y;
+ var x4 = f2.x;
+ var y4 = f2.y;
+ var x = void 0, y = void 0;
+ var a1 = void 0, a2 = void 0, b1 = void 0, b2 = void 0, c1 = void 0, c2 = void 0;
+ var denom = void 0;
+ a1 = y2 - y1;
+ b1 = x1 - x2;
+ c1 = x2 * y1 - x1 * y2;
+ a2 = y4 - y3;
+ b2 = x3 - x4;
+ c2 = x4 * y3 - x3 * y4;
+ denom = a1 * b2 - a2 * b1;
+ if (denom === 0) {
+ return null;
+ }
+ x = (b1 * c2 - b2 * c1) / denom;
+ y = (a2 * c1 - a1 * c2) / denom;
+ return new Point2(x, y);
+ };
+ IGeometry.angleOfVector = function(Cx, Cy, Nx, Ny) {
+ var C_angle = void 0;
+ if (Cx !== Nx) {
+ C_angle = Math.atan((Ny - Cy) / (Nx - Cx));
+ if (Nx < Cx) {
+ C_angle += Math.PI;
+ } else if (Ny < Cy) {
+ C_angle += this.TWO_PI;
+ }
+ } else if (Ny < Cy) {
+ C_angle = this.ONE_AND_HALF_PI;
+ } else {
+ C_angle = this.HALF_PI;
+ }
+ return C_angle;
+ };
+ IGeometry.doIntersect = function(p1, p2, p3, p4) {
+ var a = p1.x;
+ var b = p1.y;
+ var c = p2.x;
+ var d = p2.y;
+ var p = p3.x;
+ var q = p3.y;
+ var r = p4.x;
+ var s = p4.y;
+ var det = (c - a) * (s - q) - (r - p) * (d - b);
+ if (det === 0) {
+ return false;
+ } else {
+ var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det;
+ var gamma = ((b - d) * (r - a) + (c - a) * (s - b)) / det;
+ return 0 < lambda && lambda < 1 && 0 < gamma && gamma < 1;
+ }
+ };
+ IGeometry.HALF_PI = 0.5 * Math.PI;
+ IGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI;
+ IGeometry.TWO_PI = 2 * Math.PI;
+ IGeometry.THREE_PI = 3 * Math.PI;
+ module2.exports = IGeometry;
+ },
+ /* 9 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function IMath() {
+ }
+ IMath.sign = function(value) {
+ if (value > 0) {
+ return 1;
+ } else if (value < 0) {
+ return -1;
+ } else {
+ return 0;
+ }
+ };
+ IMath.floor = function(value) {
+ return value < 0 ? Math.ceil(value) : Math.floor(value);
+ };
+ IMath.ceil = function(value) {
+ return value < 0 ? Math.floor(value) : Math.ceil(value);
+ };
+ module2.exports = IMath;
+ },
+ /* 10 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function Integer() {
+ }
+ Integer.MAX_VALUE = 2147483647;
+ Integer.MIN_VALUE = -2147483648;
+ module2.exports = Integer;
+ },
+ /* 11 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var _createClass = function() {
+ function defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor)
+ descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+ return function(Constructor, protoProps, staticProps) {
+ if (protoProps)
+ defineProperties(Constructor.prototype, protoProps);
+ if (staticProps)
+ defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
+ function _classCallCheck(instance2, Constructor) {
+ if (!(instance2 instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+ var nodeFrom = function nodeFrom2(value) {
+ return { value, next: null, prev: null };
+ };
+ var add = function add2(prev, node, next2, list) {
+ if (prev !== null) {
+ prev.next = node;
+ } else {
+ list.head = node;
+ }
+ if (next2 !== null) {
+ next2.prev = node;
+ } else {
+ list.tail = node;
+ }
+ node.prev = prev;
+ node.next = next2;
+ list.length++;
+ return node;
+ };
+ var _remove = function _remove2(node, list) {
+ var prev = node.prev, next2 = node.next;
+ if (prev !== null) {
+ prev.next = next2;
+ } else {
+ list.head = next2;
+ }
+ if (next2 !== null) {
+ next2.prev = prev;
+ } else {
+ list.tail = prev;
+ }
+ node.prev = node.next = null;
+ list.length--;
+ return node;
+ };
+ var LinkedList = function() {
+ function LinkedList2(vals) {
+ var _this = this;
+ _classCallCheck(this, LinkedList2);
+ this.length = 0;
+ this.head = null;
+ this.tail = null;
+ if (vals != null) {
+ vals.forEach(function(v) {
+ return _this.push(v);
+ });
+ }
+ }
+ _createClass(LinkedList2, [{
+ key: "size",
+ value: function size() {
+ return this.length;
+ }
+ }, {
+ key: "insertBefore",
+ value: function insertBefore(val, otherNode) {
+ return add(otherNode.prev, nodeFrom(val), otherNode, this);
+ }
+ }, {
+ key: "insertAfter",
+ value: function insertAfter(val, otherNode) {
+ return add(otherNode, nodeFrom(val), otherNode.next, this);
+ }
+ }, {
+ key: "insertNodeBefore",
+ value: function insertNodeBefore(newNode, otherNode) {
+ return add(otherNode.prev, newNode, otherNode, this);
+ }
+ }, {
+ key: "insertNodeAfter",
+ value: function insertNodeAfter(newNode, otherNode) {
+ return add(otherNode, newNode, otherNode.next, this);
+ }
+ }, {
+ key: "push",
+ value: function push(val) {
+ return add(this.tail, nodeFrom(val), null, this);
+ }
+ }, {
+ key: "unshift",
+ value: function unshift(val) {
+ return add(null, nodeFrom(val), this.head, this);
+ }
+ }, {
+ key: "remove",
+ value: function remove(node) {
+ return _remove(node, this);
+ }
+ }, {
+ key: "pop",
+ value: function pop() {
+ return _remove(this.tail, this).value;
+ }
+ }, {
+ key: "popNode",
+ value: function popNode() {
+ return _remove(this.tail, this);
+ }
+ }, {
+ key: "shift",
+ value: function shift() {
+ return _remove(this.head, this).value;
+ }
+ }, {
+ key: "shiftNode",
+ value: function shiftNode() {
+ return _remove(this.head, this);
+ }
+ }, {
+ key: "get_object_at",
+ value: function get_object_at(index) {
+ if (index <= this.length()) {
+ var i = 1;
+ var current = this.head;
+ while (i < index) {
+ current = current.next;
+ i++;
+ }
+ return current.value;
+ }
+ }
+ }, {
+ key: "set_object_at",
+ value: function set_object_at(index, value) {
+ if (index <= this.length()) {
+ var i = 1;
+ var current = this.head;
+ while (i < index) {
+ current = current.next;
+ i++;
+ }
+ current.value = value;
+ }
+ }
+ }]);
+ return LinkedList2;
+ }();
+ module2.exports = LinkedList;
+ },
+ /* 12 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function Point2(x, y, p) {
+ this.x = null;
+ this.y = null;
+ if (x == null && y == null && p == null) {
+ this.x = 0;
+ this.y = 0;
+ } else if (typeof x == "number" && typeof y == "number" && p == null) {
+ this.x = x;
+ this.y = y;
+ } else if (x.constructor.name == "Point" && y == null && p == null) {
+ p = x;
+ this.x = p.x;
+ this.y = p.y;
+ }
+ }
+ Point2.prototype.getX = function() {
+ return this.x;
+ };
+ Point2.prototype.getY = function() {
+ return this.y;
+ };
+ Point2.prototype.getLocation = function() {
+ return new Point2(this.x, this.y);
+ };
+ Point2.prototype.setLocation = function(x, y, p) {
+ if (x.constructor.name == "Point" && y == null && p == null) {
+ p = x;
+ this.setLocation(p.x, p.y);
+ } else if (typeof x == "number" && typeof y == "number" && p == null) {
+ if (parseInt(x) == x && parseInt(y) == y) {
+ this.move(x, y);
+ } else {
+ this.x = Math.floor(x + 0.5);
+ this.y = Math.floor(y + 0.5);
+ }
+ }
+ };
+ Point2.prototype.move = function(x, y) {
+ this.x = x;
+ this.y = y;
+ };
+ Point2.prototype.translate = function(dx, dy) {
+ this.x += dx;
+ this.y += dy;
+ };
+ Point2.prototype.equals = function(obj) {
+ if (obj.constructor.name == "Point") {
+ var pt = obj;
+ return this.x == pt.x && this.y == pt.y;
+ }
+ return this == obj;
+ };
+ Point2.prototype.toString = function() {
+ return new Point2().constructor.name + "[x=" + this.x + ",y=" + this.y + "]";
+ };
+ module2.exports = Point2;
+ },
+ /* 13 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function RectangleD(x, y, width, height) {
+ this.x = 0;
+ this.y = 0;
+ this.width = 0;
+ this.height = 0;
+ if (x != null && y != null && width != null && height != null) {
+ this.x = x;
+ this.y = y;
+ this.width = width;
+ this.height = height;
+ }
+ }
+ RectangleD.prototype.getX = function() {
+ return this.x;
+ };
+ RectangleD.prototype.setX = function(x) {
+ this.x = x;
+ };
+ RectangleD.prototype.getY = function() {
+ return this.y;
+ };
+ RectangleD.prototype.setY = function(y) {
+ this.y = y;
+ };
+ RectangleD.prototype.getWidth = function() {
+ return this.width;
+ };
+ RectangleD.prototype.setWidth = function(width) {
+ this.width = width;
+ };
+ RectangleD.prototype.getHeight = function() {
+ return this.height;
+ };
+ RectangleD.prototype.setHeight = function(height) {
+ this.height = height;
+ };
+ RectangleD.prototype.getRight = function() {
+ return this.x + this.width;
+ };
+ RectangleD.prototype.getBottom = function() {
+ return this.y + this.height;
+ };
+ RectangleD.prototype.intersects = function(a) {
+ if (this.getRight() < a.x) {
+ return false;
+ }
+ if (this.getBottom() < a.y) {
+ return false;
+ }
+ if (a.getRight() < this.x) {
+ return false;
+ }
+ if (a.getBottom() < this.y) {
+ return false;
+ }
+ return true;
+ };
+ RectangleD.prototype.getCenterX = function() {
+ return this.x + this.width / 2;
+ };
+ RectangleD.prototype.getMinX = function() {
+ return this.getX();
+ };
+ RectangleD.prototype.getMaxX = function() {
+ return this.getX() + this.width;
+ };
+ RectangleD.prototype.getCenterY = function() {
+ return this.y + this.height / 2;
+ };
+ RectangleD.prototype.getMinY = function() {
+ return this.getY();
+ };
+ RectangleD.prototype.getMaxY = function() {
+ return this.getY() + this.height;
+ };
+ RectangleD.prototype.getWidthHalf = function() {
+ return this.width / 2;
+ };
+ RectangleD.prototype.getHeightHalf = function() {
+ return this.height / 2;
+ };
+ module2.exports = RectangleD;
+ },
+ /* 14 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) {
+ return typeof obj;
+ } : function(obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ function UniqueIDGeneretor() {
+ }
+ UniqueIDGeneretor.lastID = 0;
+ UniqueIDGeneretor.createID = function(obj) {
+ if (UniqueIDGeneretor.isPrimitive(obj)) {
+ return obj;
+ }
+ if (obj.uniqueID != null) {
+ return obj.uniqueID;
+ }
+ obj.uniqueID = UniqueIDGeneretor.getString();
+ UniqueIDGeneretor.lastID++;
+ return obj.uniqueID;
+ };
+ UniqueIDGeneretor.getString = function(id) {
+ if (id == null)
+ id = UniqueIDGeneretor.lastID;
+ return "Object#" + id;
+ };
+ UniqueIDGeneretor.isPrimitive = function(arg) {
+ var type = typeof arg === "undefined" ? "undefined" : _typeof(arg);
+ return arg == null || type != "object" && type != "function";
+ };
+ module2.exports = UniqueIDGeneretor;
+ },
+ /* 15 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function _toConsumableArray(arr) {
+ if (Array.isArray(arr)) {
+ for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
+ arr2[i] = arr[i];
+ }
+ return arr2;
+ } else {
+ return Array.from(arr);
+ }
+ }
+ var LayoutConstants = __webpack_require__(0);
+ var LGraphManager = __webpack_require__(6);
+ var LNode = __webpack_require__(3);
+ var LEdge = __webpack_require__(1);
+ var LGraph = __webpack_require__(5);
+ var PointD = __webpack_require__(4);
+ var Transform = __webpack_require__(17);
+ var Emitter = __webpack_require__(27);
+ function Layout2(isRemoteUse) {
+ Emitter.call(this);
+ this.layoutQuality = LayoutConstants.QUALITY;
+ this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
+ this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;
+ this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;
+ this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;
+ this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;
+ this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;
+ this.edgeToDummyNodes = /* @__PURE__ */ new Map();
+ this.graphManager = new LGraphManager(this);
+ this.isLayoutFinished = false;
+ this.isSubLayout = false;
+ this.isRemoteUse = false;
+ if (isRemoteUse != null) {
+ this.isRemoteUse = isRemoteUse;
+ }
+ }
+ Layout2.RANDOM_SEED = 1;
+ Layout2.prototype = Object.create(Emitter.prototype);
+ Layout2.prototype.getGraphManager = function() {
+ return this.graphManager;
+ };
+ Layout2.prototype.getAllNodes = function() {
+ return this.graphManager.getAllNodes();
+ };
+ Layout2.prototype.getAllEdges = function() {
+ return this.graphManager.getAllEdges();
+ };
+ Layout2.prototype.getAllNodesToApplyGravitation = function() {
+ return this.graphManager.getAllNodesToApplyGravitation();
+ };
+ Layout2.prototype.newGraphManager = function() {
+ var gm = new LGraphManager(this);
+ this.graphManager = gm;
+ return gm;
+ };
+ Layout2.prototype.newGraph = function(vGraph) {
+ return new LGraph(null, this.graphManager, vGraph);
+ };
+ Layout2.prototype.newNode = function(vNode) {
+ return new LNode(this.graphManager, vNode);
+ };
+ Layout2.prototype.newEdge = function(vEdge) {
+ return new LEdge(null, null, vEdge);
+ };
+ Layout2.prototype.checkLayoutSuccess = function() {
+ return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge();
+ };
+ Layout2.prototype.runLayout = function() {
+ this.isLayoutFinished = false;
+ if (this.tilingPreLayout) {
+ this.tilingPreLayout();
+ }
+ this.initParameters();
+ var isLayoutSuccessfull;
+ if (this.checkLayoutSuccess()) {
+ isLayoutSuccessfull = false;
+ } else {
+ isLayoutSuccessfull = this.layout();
+ }
+ if (LayoutConstants.ANIMATE === "during") {
+ return false;
+ }
+ if (isLayoutSuccessfull) {
+ if (!this.isSubLayout) {
+ this.doPostLayout();
+ }
+ }
+ if (this.tilingPostLayout) {
+ this.tilingPostLayout();
+ }
+ this.isLayoutFinished = true;
+ return isLayoutSuccessfull;
+ };
+ Layout2.prototype.doPostLayout = function() {
+ if (!this.incremental) {
+ this.transform();
+ }
+ this.update();
+ };
+ Layout2.prototype.update2 = function() {
+ if (this.createBendsAsNeeded) {
+ this.createBendpointsFromDummyNodes();
+ this.graphManager.resetAllEdges();
+ }
+ if (!this.isRemoteUse) {
+ var allEdges = this.graphManager.getAllEdges();
+ for (var i = 0; i < allEdges.length; i++) {
+ allEdges[i];
+ }
+ var nodes2 = this.graphManager.getRoot().getNodes();
+ for (var i = 0; i < nodes2.length; i++) {
+ nodes2[i];
+ }
+ this.update(this.graphManager.getRoot());
+ }
+ };
+ Layout2.prototype.update = function(obj) {
+ if (obj == null) {
+ this.update2();
+ } else if (obj instanceof LNode) {
+ var node = obj;
+ if (node.getChild() != null) {
+ var nodes2 = node.getChild().getNodes();
+ for (var i = 0; i < nodes2.length; i++) {
+ update(nodes2[i]);
+ }
+ }
+ if (node.vGraphObject != null) {
+ var vNode = node.vGraphObject;
+ vNode.update(node);
+ }
+ } else if (obj instanceof LEdge) {
+ var edge = obj;
+ if (edge.vGraphObject != null) {
+ var vEdge = edge.vGraphObject;
+ vEdge.update(edge);
+ }
+ } else if (obj instanceof LGraph) {
+ var graph = obj;
+ if (graph.vGraphObject != null) {
+ var vGraph = graph.vGraphObject;
+ vGraph.update(graph);
+ }
+ }
+ };
+ Layout2.prototype.initParameters = function() {
+ if (!this.isSubLayout) {
+ this.layoutQuality = LayoutConstants.QUALITY;
+ this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;
+ this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;
+ this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;
+ this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;
+ this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
+ this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;
+ }
+ if (this.animationDuringLayout) {
+ this.animationOnLayout = false;
+ }
+ };
+ Layout2.prototype.transform = function(newLeftTop) {
+ if (newLeftTop == void 0) {
+ this.transform(new PointD(0, 0));
+ } else {
+ var trans = new Transform();
+ var leftTop = this.graphManager.getRoot().updateLeftTop();
+ if (leftTop != null) {
+ trans.setWorldOrgX(newLeftTop.x);
+ trans.setWorldOrgY(newLeftTop.y);
+ trans.setDeviceOrgX(leftTop.x);
+ trans.setDeviceOrgY(leftTop.y);
+ var nodes2 = this.getAllNodes();
+ var node;
+ for (var i = 0; i < nodes2.length; i++) {
+ node = nodes2[i];
+ node.transform(trans);
+ }
+ }
+ }
+ };
+ Layout2.prototype.positionNodesRandomly = function(graph) {
+ if (graph == void 0) {
+ this.positionNodesRandomly(this.getGraphManager().getRoot());
+ this.getGraphManager().getRoot().updateBounds(true);
+ } else {
+ var lNode;
+ var childGraph;
+ var nodes2 = graph.getNodes();
+ for (var i = 0; i < nodes2.length; i++) {
+ lNode = nodes2[i];
+ childGraph = lNode.getChild();
+ if (childGraph == null) {
+ lNode.scatter();
+ } else if (childGraph.getNodes().length == 0) {
+ lNode.scatter();
+ } else {
+ this.positionNodesRandomly(childGraph);
+ lNode.updateBounds();
+ }
+ }
+ }
+ };
+ Layout2.prototype.getFlatForest = function() {
+ var flatForest = [];
+ var isForest = true;
+ var allNodes = this.graphManager.getRoot().getNodes();
+ var isFlat = true;
+ for (var i = 0; i < allNodes.length; i++) {
+ if (allNodes[i].getChild() != null) {
+ isFlat = false;
+ }
+ }
+ if (!isFlat) {
+ return flatForest;
+ }
+ var visited = /* @__PURE__ */ new Set();
+ var toBeVisited = [];
+ var parents = /* @__PURE__ */ new Map();
+ var unProcessedNodes = [];
+ unProcessedNodes = unProcessedNodes.concat(allNodes);
+ while (unProcessedNodes.length > 0 && isForest) {
+ toBeVisited.push(unProcessedNodes[0]);
+ while (toBeVisited.length > 0 && isForest) {
+ var currentNode = toBeVisited[0];
+ toBeVisited.splice(0, 1);
+ visited.add(currentNode);
+ var neighborEdges = currentNode.getEdges();
+ for (var i = 0; i < neighborEdges.length; i++) {
+ var currentNeighbor = neighborEdges[i].getOtherEnd(currentNode);
+ if (parents.get(currentNode) != currentNeighbor) {
+ if (!visited.has(currentNeighbor)) {
+ toBeVisited.push(currentNeighbor);
+ parents.set(currentNeighbor, currentNode);
+ } else {
+ isForest = false;
+ break;
+ }
+ }
+ }
+ }
+ if (!isForest) {
+ flatForest = [];
+ } else {
+ var temp = [].concat(_toConsumableArray(visited));
+ flatForest.push(temp);
+ for (var i = 0; i < temp.length; i++) {
+ var value = temp[i];
+ var index = unProcessedNodes.indexOf(value);
+ if (index > -1) {
+ unProcessedNodes.splice(index, 1);
+ }
+ }
+ visited = /* @__PURE__ */ new Set();
+ parents = /* @__PURE__ */ new Map();
+ }
+ }
+ return flatForest;
+ };
+ Layout2.prototype.createDummyNodesForBendpoints = function(edge) {
+ var dummyNodes = [];
+ var prev = edge.source;
+ var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target);
+ for (var i = 0; i < edge.bendpoints.length; i++) {
+ var dummyNode = this.newNode(null);
+ dummyNode.setRect(new Point(0, 0), new Dimension(1, 1));
+ graph.add(dummyNode);
+ var dummyEdge = this.newEdge(null);
+ this.graphManager.add(dummyEdge, prev, dummyNode);
+ dummyNodes.add(dummyNode);
+ prev = dummyNode;
+ }
+ var dummyEdge = this.newEdge(null);
+ this.graphManager.add(dummyEdge, prev, edge.target);
+ this.edgeToDummyNodes.set(edge, dummyNodes);
+ if (edge.isInterGraph()) {
+ this.graphManager.remove(edge);
+ } else {
+ graph.remove(edge);
+ }
+ return dummyNodes;
+ };
+ Layout2.prototype.createBendpointsFromDummyNodes = function() {
+ var edges = [];
+ edges = edges.concat(this.graphManager.getAllEdges());
+ edges = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges);
+ for (var k = 0; k < edges.length; k++) {
+ var lEdge = edges[k];
+ if (lEdge.bendpoints.length > 0) {
+ var path = this.edgeToDummyNodes.get(lEdge);
+ for (var i = 0; i < path.length; i++) {
+ var dummyNode = path[i];
+ var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY());
+ var ebp = lEdge.bendpoints.get(i);
+ ebp.x = p.x;
+ ebp.y = p.y;
+ dummyNode.getOwner().remove(dummyNode);
+ }
+ this.graphManager.add(lEdge, lEdge.source, lEdge.target);
+ }
+ }
+ };
+ Layout2.transform = function(sliderValue, defaultValue, minDiv, maxMul) {
+ if (minDiv != void 0 && maxMul != void 0) {
+ var value = defaultValue;
+ if (sliderValue <= 50) {
+ var minValue = defaultValue / minDiv;
+ value -= (defaultValue - minValue) / 50 * (50 - sliderValue);
+ } else {
+ var maxValue = defaultValue * maxMul;
+ value += (maxValue - defaultValue) / 50 * (sliderValue - 50);
+ }
+ return value;
+ } else {
+ var a, b;
+ if (sliderValue <= 50) {
+ a = 9 * defaultValue / 500;
+ b = defaultValue / 10;
+ } else {
+ a = 9 * defaultValue / 50;
+ b = -8 * defaultValue;
+ }
+ return a * sliderValue + b;
+ }
+ };
+ Layout2.findCenterOfTree = function(nodes2) {
+ var list = [];
+ list = list.concat(nodes2);
+ var removedNodes = [];
+ var remainingDegrees = /* @__PURE__ */ new Map();
+ var foundCenter = false;
+ var centerNode = null;
+ if (list.length == 1 || list.length == 2) {
+ foundCenter = true;
+ centerNode = list[0];
+ }
+ for (var i = 0; i < list.length; i++) {
+ var node = list[i];
+ var degree = node.getNeighborsList().size;
+ remainingDegrees.set(node, node.getNeighborsList().size);
+ if (degree == 1) {
+ removedNodes.push(node);
+ }
+ }
+ var tempList = [];
+ tempList = tempList.concat(removedNodes);
+ while (!foundCenter) {
+ var tempList2 = [];
+ tempList2 = tempList2.concat(tempList);
+ tempList = [];
+ for (var i = 0; i < list.length; i++) {
+ var node = list[i];
+ var index = list.indexOf(node);
+ if (index >= 0) {
+ list.splice(index, 1);
+ }
+ var neighbours = node.getNeighborsList();
+ neighbours.forEach(function(neighbour) {
+ if (removedNodes.indexOf(neighbour) < 0) {
+ var otherDegree = remainingDegrees.get(neighbour);
+ var newDegree = otherDegree - 1;
+ if (newDegree == 1) {
+ tempList.push(neighbour);
+ }
+ remainingDegrees.set(neighbour, newDegree);
+ }
+ });
+ }
+ removedNodes = removedNodes.concat(tempList);
+ if (list.length == 1 || list.length == 2) {
+ foundCenter = true;
+ centerNode = list[0];
+ }
+ }
+ return centerNode;
+ };
+ Layout2.prototype.setGraphManager = function(gm) {
+ this.graphManager = gm;
+ };
+ module2.exports = Layout2;
+ },
+ /* 16 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function RandomSeed() {
+ }
+ RandomSeed.seed = 1;
+ RandomSeed.x = 0;
+ RandomSeed.nextDouble = function() {
+ RandomSeed.x = Math.sin(RandomSeed.seed++) * 1e4;
+ return RandomSeed.x - Math.floor(RandomSeed.x);
+ };
+ module2.exports = RandomSeed;
+ },
+ /* 17 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var PointD = __webpack_require__(4);
+ function Transform(x, y) {
+ this.lworldOrgX = 0;
+ this.lworldOrgY = 0;
+ this.ldeviceOrgX = 0;
+ this.ldeviceOrgY = 0;
+ this.lworldExtX = 1;
+ this.lworldExtY = 1;
+ this.ldeviceExtX = 1;
+ this.ldeviceExtY = 1;
+ }
+ Transform.prototype.getWorldOrgX = function() {
+ return this.lworldOrgX;
+ };
+ Transform.prototype.setWorldOrgX = function(wox) {
+ this.lworldOrgX = wox;
+ };
+ Transform.prototype.getWorldOrgY = function() {
+ return this.lworldOrgY;
+ };
+ Transform.prototype.setWorldOrgY = function(woy) {
+ this.lworldOrgY = woy;
+ };
+ Transform.prototype.getWorldExtX = function() {
+ return this.lworldExtX;
+ };
+ Transform.prototype.setWorldExtX = function(wex) {
+ this.lworldExtX = wex;
+ };
+ Transform.prototype.getWorldExtY = function() {
+ return this.lworldExtY;
+ };
+ Transform.prototype.setWorldExtY = function(wey) {
+ this.lworldExtY = wey;
+ };
+ Transform.prototype.getDeviceOrgX = function() {
+ return this.ldeviceOrgX;
+ };
+ Transform.prototype.setDeviceOrgX = function(dox) {
+ this.ldeviceOrgX = dox;
+ };
+ Transform.prototype.getDeviceOrgY = function() {
+ return this.ldeviceOrgY;
+ };
+ Transform.prototype.setDeviceOrgY = function(doy) {
+ this.ldeviceOrgY = doy;
+ };
+ Transform.prototype.getDeviceExtX = function() {
+ return this.ldeviceExtX;
+ };
+ Transform.prototype.setDeviceExtX = function(dex) {
+ this.ldeviceExtX = dex;
+ };
+ Transform.prototype.getDeviceExtY = function() {
+ return this.ldeviceExtY;
+ };
+ Transform.prototype.setDeviceExtY = function(dey) {
+ this.ldeviceExtY = dey;
+ };
+ Transform.prototype.transformX = function(x) {
+ var xDevice = 0;
+ var worldExtX = this.lworldExtX;
+ if (worldExtX != 0) {
+ xDevice = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / worldExtX;
+ }
+ return xDevice;
+ };
+ Transform.prototype.transformY = function(y) {
+ var yDevice = 0;
+ var worldExtY = this.lworldExtY;
+ if (worldExtY != 0) {
+ yDevice = this.ldeviceOrgY + (y - this.lworldOrgY) * this.ldeviceExtY / worldExtY;
+ }
+ return yDevice;
+ };
+ Transform.prototype.inverseTransformX = function(x) {
+ var xWorld = 0;
+ var deviceExtX = this.ldeviceExtX;
+ if (deviceExtX != 0) {
+ xWorld = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / deviceExtX;
+ }
+ return xWorld;
+ };
+ Transform.prototype.inverseTransformY = function(y) {
+ var yWorld = 0;
+ var deviceExtY = this.ldeviceExtY;
+ if (deviceExtY != 0) {
+ yWorld = this.lworldOrgY + (y - this.ldeviceOrgY) * this.lworldExtY / deviceExtY;
+ }
+ return yWorld;
+ };
+ Transform.prototype.inverseTransformPoint = function(inPoint) {
+ var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y));
+ return outPoint;
+ };
+ module2.exports = Transform;
+ },
+ /* 18 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function _toConsumableArray(arr) {
+ if (Array.isArray(arr)) {
+ for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
+ arr2[i] = arr[i];
+ }
+ return arr2;
+ } else {
+ return Array.from(arr);
+ }
+ }
+ var Layout2 = __webpack_require__(15);
+ var FDLayoutConstants = __webpack_require__(7);
+ var LayoutConstants = __webpack_require__(0);
+ var IGeometry = __webpack_require__(8);
+ var IMath = __webpack_require__(9);
+ function FDLayout() {
+ Layout2.call(this);
+ this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;
+ this.idealEdgeLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
+ this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;
+ this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;
+ this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;
+ this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;
+ this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;
+ this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;
+ this.displacementThresholdPerNode = 3 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100;
+ this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;
+ this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;
+ this.totalDisplacement = 0;
+ this.oldTotalDisplacement = 0;
+ this.maxIterations = FDLayoutConstants.MAX_ITERATIONS;
+ }
+ FDLayout.prototype = Object.create(Layout2.prototype);
+ for (var prop in Layout2) {
+ FDLayout[prop] = Layout2[prop];
+ }
+ FDLayout.prototype.initParameters = function() {
+ Layout2.prototype.initParameters.call(this, arguments);
+ this.totalIterations = 0;
+ this.notAnimatedIterations = 0;
+ this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION;
+ this.grid = [];
+ };
+ FDLayout.prototype.calcIdealEdgeLengths = function() {
+ var edge;
+ var lcaDepth;
+ var source;
+ var target;
+ var sizeOfSourceInLca;
+ var sizeOfTargetInLca;
+ var allEdges = this.getGraphManager().getAllEdges();
+ for (var i = 0; i < allEdges.length; i++) {
+ edge = allEdges[i];
+ edge.idealLength = this.idealEdgeLength;
+ if (edge.isInterGraph) {
+ source = edge.getSource();
+ target = edge.getTarget();
+ sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize();
+ sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize();
+ if (this.useSmartIdealEdgeLengthCalculation) {
+ edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE;
+ }
+ lcaDepth = edge.getLca().getInclusionTreeDepth();
+ edge.idealLength += FDLayoutConstants.DEFAULT_EDGE_LENGTH * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth);
+ }
+ }
+ };
+ FDLayout.prototype.initSpringEmbedder = function() {
+ var s = this.getAllNodes().length;
+ if (this.incremental) {
+ if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {
+ this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));
+ }
+ this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL;
+ } else {
+ if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {
+ this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));
+ } else {
+ this.coolingFactor = 1;
+ }
+ this.initialCoolingFactor = this.coolingFactor;
+ this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT;
+ }
+ this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations);
+ this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length;
+ this.repulsionRange = this.calcRepulsionRange();
+ };
+ FDLayout.prototype.calcSpringForces = function() {
+ var lEdges = this.getAllEdges();
+ var edge;
+ for (var i = 0; i < lEdges.length; i++) {
+ edge = lEdges[i];
+ this.calcSpringForce(edge, edge.idealLength);
+ }
+ };
+ FDLayout.prototype.calcRepulsionForces = function() {
+ var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
+ var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
+ var i, j;
+ var nodeA, nodeB;
+ var lNodes = this.getAllNodes();
+ var processedNodeSet;
+ if (this.useFRGridVariant) {
+ if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) {
+ this.updateGrid();
+ }
+ processedNodeSet = /* @__PURE__ */ new Set();
+ for (i = 0; i < lNodes.length; i++) {
+ nodeA = lNodes[i];
+ this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate);
+ processedNodeSet.add(nodeA);
+ }
+ } else {
+ for (i = 0; i < lNodes.length; i++) {
+ nodeA = lNodes[i];
+ for (j = i + 1; j < lNodes.length; j++) {
+ nodeB = lNodes[j];
+ if (nodeA.getOwner() != nodeB.getOwner()) {
+ continue;
+ }
+ this.calcRepulsionForce(nodeA, nodeB);
+ }
+ }
+ }
+ };
+ FDLayout.prototype.calcGravitationalForces = function() {
+ var node;
+ var lNodes = this.getAllNodesToApplyGravitation();
+ for (var i = 0; i < lNodes.length; i++) {
+ node = lNodes[i];
+ this.calcGravitationalForce(node);
+ }
+ };
+ FDLayout.prototype.moveNodes = function() {
+ var lNodes = this.getAllNodes();
+ var node;
+ for (var i = 0; i < lNodes.length; i++) {
+ node = lNodes[i];
+ node.move();
+ }
+ };
+ FDLayout.prototype.calcSpringForce = function(edge, idealLength) {
+ var sourceNode = edge.getSource();
+ var targetNode = edge.getTarget();
+ var length;
+ var springForce;
+ var springForceX;
+ var springForceY;
+ if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) {
+ edge.updateLengthSimple();
+ } else {
+ edge.updateLength();
+ if (edge.isOverlapingSourceAndTarget) {
+ return;
+ }
+ }
+ length = edge.getLength();
+ if (length == 0)
+ return;
+ springForce = this.springConstant * (length - idealLength);
+ springForceX = springForce * (edge.lengthX / length);
+ springForceY = springForce * (edge.lengthY / length);
+ sourceNode.springForceX += springForceX;
+ sourceNode.springForceY += springForceY;
+ targetNode.springForceX -= springForceX;
+ targetNode.springForceY -= springForceY;
+ };
+ FDLayout.prototype.calcRepulsionForce = function(nodeA, nodeB) {
+ var rectA = nodeA.getRect();
+ var rectB = nodeB.getRect();
+ var overlapAmount = new Array(2);
+ var clipPoints = new Array(4);
+ var distanceX;
+ var distanceY;
+ var distanceSquared;
+ var distance;
+ var repulsionForce;
+ var repulsionForceX;
+ var repulsionForceY;
+ if (rectA.intersects(rectB)) {
+ IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2);
+ repulsionForceX = 2 * overlapAmount[0];
+ repulsionForceY = 2 * overlapAmount[1];
+ var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren);
+ nodeA.repulsionForceX -= childrenConstant * repulsionForceX;
+ nodeA.repulsionForceY -= childrenConstant * repulsionForceY;
+ nodeB.repulsionForceX += childrenConstant * repulsionForceX;
+ nodeB.repulsionForceY += childrenConstant * repulsionForceY;
+ } else {
+ if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) {
+ distanceX = rectB.getCenterX() - rectA.getCenterX();
+ distanceY = rectB.getCenterY() - rectA.getCenterY();
+ } else {
+ IGeometry.getIntersection(rectA, rectB, clipPoints);
+ distanceX = clipPoints[2] - clipPoints[0];
+ distanceY = clipPoints[3] - clipPoints[1];
+ }
+ if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) {
+ distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST;
+ }
+ if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) {
+ distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST;
+ }
+ distanceSquared = distanceX * distanceX + distanceY * distanceY;
+ distance = Math.sqrt(distanceSquared);
+ repulsionForce = this.repulsionConstant * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared;
+ repulsionForceX = repulsionForce * distanceX / distance;
+ repulsionForceY = repulsionForce * distanceY / distance;
+ nodeA.repulsionForceX -= repulsionForceX;
+ nodeA.repulsionForceY -= repulsionForceY;
+ nodeB.repulsionForceX += repulsionForceX;
+ nodeB.repulsionForceY += repulsionForceY;
+ }
+ };
+ FDLayout.prototype.calcGravitationalForce = function(node) {
+ var ownerGraph;
+ var ownerCenterX;
+ var ownerCenterY;
+ var distanceX;
+ var distanceY;
+ var absDistanceX;
+ var absDistanceY;
+ var estimatedSize;
+ ownerGraph = node.getOwner();
+ ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2;
+ ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2;
+ distanceX = node.getCenterX() - ownerCenterX;
+ distanceY = node.getCenterY() - ownerCenterY;
+ absDistanceX = Math.abs(distanceX) + node.getWidth() / 2;
+ absDistanceY = Math.abs(distanceY) + node.getHeight() / 2;
+ if (node.getOwner() == this.graphManager.getRoot()) {
+ estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor;
+ if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {
+ node.gravitationForceX = -this.gravityConstant * distanceX;
+ node.gravitationForceY = -this.gravityConstant * distanceY;
+ }
+ } else {
+ estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor;
+ if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {
+ node.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant;
+ node.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant;
+ }
+ }
+ };
+ FDLayout.prototype.isConverged = function() {
+ var converged;
+ var oscilating = false;
+ if (this.totalIterations > this.maxIterations / 3) {
+ oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2;
+ }
+ converged = this.totalDisplacement < this.totalDisplacementThreshold;
+ this.oldTotalDisplacement = this.totalDisplacement;
+ return converged || oscilating;
+ };
+ FDLayout.prototype.animate = function() {
+ if (this.animationDuringLayout && !this.isSubLayout) {
+ if (this.notAnimatedIterations == this.animationPeriod) {
+ this.update();
+ this.notAnimatedIterations = 0;
+ } else {
+ this.notAnimatedIterations++;
+ }
+ }
+ };
+ FDLayout.prototype.calcNoOfChildrenForAllNodes = function() {
+ var node;
+ var allNodes = this.graphManager.getAllNodes();
+ for (var i = 0; i < allNodes.length; i++) {
+ node = allNodes[i];
+ node.noOfChildren = node.getNoOfChildren();
+ }
+ };
+ FDLayout.prototype.calcGrid = function(graph) {
+ var sizeX = 0;
+ var sizeY = 0;
+ sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange));
+ sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange));
+ var grid = new Array(sizeX);
+ for (var i = 0; i < sizeX; i++) {
+ grid[i] = new Array(sizeY);
+ }
+ for (var i = 0; i < sizeX; i++) {
+ for (var j = 0; j < sizeY; j++) {
+ grid[i][j] = new Array();
+ }
+ }
+ return grid;
+ };
+ FDLayout.prototype.addNodeToGrid = function(v, left, top) {
+ var startX = 0;
+ var finishX = 0;
+ var startY = 0;
+ var finishY = 0;
+ startX = parseInt(Math.floor((v.getRect().x - left) / this.repulsionRange));
+ finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left) / this.repulsionRange));
+ startY = parseInt(Math.floor((v.getRect().y - top) / this.repulsionRange));
+ finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top) / this.repulsionRange));
+ for (var i = startX; i <= finishX; i++) {
+ for (var j = startY; j <= finishY; j++) {
+ this.grid[i][j].push(v);
+ v.setGridCoordinates(startX, finishX, startY, finishY);
+ }
+ }
+ };
+ FDLayout.prototype.updateGrid = function() {
+ var i;
+ var nodeA;
+ var lNodes = this.getAllNodes();
+ this.grid = this.calcGrid(this.graphManager.getRoot());
+ for (i = 0; i < lNodes.length; i++) {
+ nodeA = lNodes[i];
+ this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop());
+ }
+ };
+ FDLayout.prototype.calculateRepulsionForceOfANode = function(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) {
+ if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) {
+ var surrounding = /* @__PURE__ */ new Set();
+ nodeA.surrounding = new Array();
+ var nodeB;
+ var grid = this.grid;
+ for (var i = nodeA.startX - 1; i < nodeA.finishX + 2; i++) {
+ for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) {
+ if (!(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)) {
+ for (var k = 0; k < grid[i][j].length; k++) {
+ nodeB = grid[i][j][k];
+ if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) {
+ continue;
+ }
+ if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) {
+ var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2);
+ var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2);
+ if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) {
+ surrounding.add(nodeB);
+ }
+ }
+ }
+ }
+ }
+ }
+ nodeA.surrounding = [].concat(_toConsumableArray(surrounding));
+ }
+ for (i = 0; i < nodeA.surrounding.length; i++) {
+ this.calcRepulsionForce(nodeA, nodeA.surrounding[i]);
+ }
+ };
+ FDLayout.prototype.calcRepulsionRange = function() {
+ return 0;
+ };
+ module2.exports = FDLayout;
+ },
+ /* 19 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var LEdge = __webpack_require__(1);
+ var FDLayoutConstants = __webpack_require__(7);
+ function FDLayoutEdge(source, target, vEdge) {
+ LEdge.call(this, source, target, vEdge);
+ this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
+ }
+ FDLayoutEdge.prototype = Object.create(LEdge.prototype);
+ for (var prop in LEdge) {
+ FDLayoutEdge[prop] = LEdge[prop];
+ }
+ module2.exports = FDLayoutEdge;
+ },
+ /* 20 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var LNode = __webpack_require__(3);
+ function FDLayoutNode(gm, loc, size, vNode) {
+ LNode.call(this, gm, loc, size, vNode);
+ this.springForceX = 0;
+ this.springForceY = 0;
+ this.repulsionForceX = 0;
+ this.repulsionForceY = 0;
+ this.gravitationForceX = 0;
+ this.gravitationForceY = 0;
+ this.displacementX = 0;
+ this.displacementY = 0;
+ this.startX = 0;
+ this.finishX = 0;
+ this.startY = 0;
+ this.finishY = 0;
+ this.surrounding = [];
+ }
+ FDLayoutNode.prototype = Object.create(LNode.prototype);
+ for (var prop in LNode) {
+ FDLayoutNode[prop] = LNode[prop];
+ }
+ FDLayoutNode.prototype.setGridCoordinates = function(_startX, _finishX, _startY, _finishY) {
+ this.startX = _startX;
+ this.finishX = _finishX;
+ this.startY = _startY;
+ this.finishY = _finishY;
+ };
+ module2.exports = FDLayoutNode;
+ },
+ /* 21 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function DimensionD2(width, height) {
+ this.width = 0;
+ this.height = 0;
+ if (width !== null && height !== null) {
+ this.height = height;
+ this.width = width;
+ }
+ }
+ DimensionD2.prototype.getWidth = function() {
+ return this.width;
+ };
+ DimensionD2.prototype.setWidth = function(width) {
+ this.width = width;
+ };
+ DimensionD2.prototype.getHeight = function() {
+ return this.height;
+ };
+ DimensionD2.prototype.setHeight = function(height) {
+ this.height = height;
+ };
+ module2.exports = DimensionD2;
+ },
+ /* 22 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var UniqueIDGeneretor = __webpack_require__(14);
+ function HashMap() {
+ this.map = {};
+ this.keys = [];
+ }
+ HashMap.prototype.put = function(key, value) {
+ var theId = UniqueIDGeneretor.createID(key);
+ if (!this.contains(theId)) {
+ this.map[theId] = value;
+ this.keys.push(key);
+ }
+ };
+ HashMap.prototype.contains = function(key) {
+ UniqueIDGeneretor.createID(key);
+ return this.map[key] != null;
+ };
+ HashMap.prototype.get = function(key) {
+ var theId = UniqueIDGeneretor.createID(key);
+ return this.map[theId];
+ };
+ HashMap.prototype.keySet = function() {
+ return this.keys;
+ };
+ module2.exports = HashMap;
+ },
+ /* 23 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var UniqueIDGeneretor = __webpack_require__(14);
+ function HashSet() {
+ this.set = {};
+ }
+ HashSet.prototype.add = function(obj) {
+ var theId = UniqueIDGeneretor.createID(obj);
+ if (!this.contains(theId))
+ this.set[theId] = obj;
+ };
+ HashSet.prototype.remove = function(obj) {
+ delete this.set[UniqueIDGeneretor.createID(obj)];
+ };
+ HashSet.prototype.clear = function() {
+ this.set = {};
+ };
+ HashSet.prototype.contains = function(obj) {
+ return this.set[UniqueIDGeneretor.createID(obj)] == obj;
+ };
+ HashSet.prototype.isEmpty = function() {
+ return this.size() === 0;
+ };
+ HashSet.prototype.size = function() {
+ return Object.keys(this.set).length;
+ };
+ HashSet.prototype.addAllTo = function(list) {
+ var keys = Object.keys(this.set);
+ var length = keys.length;
+ for (var i = 0; i < length; i++) {
+ list.push(this.set[keys[i]]);
+ }
+ };
+ HashSet.prototype.size = function() {
+ return Object.keys(this.set).length;
+ };
+ HashSet.prototype.addAll = function(list) {
+ var s = list.length;
+ for (var i = 0; i < s; i++) {
+ var v = list[i];
+ this.add(v);
+ }
+ };
+ module2.exports = HashSet;
+ },
+ /* 24 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var _createClass = function() {
+ function defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor)
+ descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+ return function(Constructor, protoProps, staticProps) {
+ if (protoProps)
+ defineProperties(Constructor.prototype, protoProps);
+ if (staticProps)
+ defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
+ function _classCallCheck(instance2, Constructor) {
+ if (!(instance2 instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+ var LinkedList = __webpack_require__(11);
+ var Quicksort = function() {
+ function Quicksort2(A, compareFunction) {
+ _classCallCheck(this, Quicksort2);
+ if (compareFunction !== null || compareFunction !== void 0)
+ this.compareFunction = this._defaultCompareFunction;
+ var length = void 0;
+ if (A instanceof LinkedList)
+ length = A.size();
+ else
+ length = A.length;
+ this._quicksort(A, 0, length - 1);
+ }
+ _createClass(Quicksort2, [{
+ key: "_quicksort",
+ value: function _quicksort(A, p, r) {
+ if (p < r) {
+ var q = this._partition(A, p, r);
+ this._quicksort(A, p, q);
+ this._quicksort(A, q + 1, r);
+ }
+ }
+ }, {
+ key: "_partition",
+ value: function _partition(A, p, r) {
+ var x = this._get(A, p);
+ var i = p;
+ var j = r;
+ while (true) {
+ while (this.compareFunction(x, this._get(A, j))) {
+ j--;
+ }
+ while (this.compareFunction(this._get(A, i), x)) {
+ i++;
+ }
+ if (i < j) {
+ this._swap(A, i, j);
+ i++;
+ j--;
+ } else
+ return j;
+ }
+ }
+ }, {
+ key: "_get",
+ value: function _get(object, index) {
+ if (object instanceof LinkedList)
+ return object.get_object_at(index);
+ else
+ return object[index];
+ }
+ }, {
+ key: "_set",
+ value: function _set(object, index, value) {
+ if (object instanceof LinkedList)
+ object.set_object_at(index, value);
+ else
+ object[index] = value;
+ }
+ }, {
+ key: "_swap",
+ value: function _swap(A, i, j) {
+ var temp = this._get(A, i);
+ this._set(A, i, this._get(A, j));
+ this._set(A, j, temp);
+ }
+ }, {
+ key: "_defaultCompareFunction",
+ value: function _defaultCompareFunction(a, b) {
+ return b > a;
+ }
+ }]);
+ return Quicksort2;
+ }();
+ module2.exports = Quicksort;
+ },
+ /* 25 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var _createClass = function() {
+ function defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor)
+ descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+ return function(Constructor, protoProps, staticProps) {
+ if (protoProps)
+ defineProperties(Constructor.prototype, protoProps);
+ if (staticProps)
+ defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
+ function _classCallCheck(instance2, Constructor) {
+ if (!(instance2 instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+ var NeedlemanWunsch = function() {
+ function NeedlemanWunsch2(sequence1, sequence2) {
+ var match_score = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1;
+ var mismatch_penalty = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : -1;
+ var gap_penalty = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : -1;
+ _classCallCheck(this, NeedlemanWunsch2);
+ this.sequence1 = sequence1;
+ this.sequence2 = sequence2;
+ this.match_score = match_score;
+ this.mismatch_penalty = mismatch_penalty;
+ this.gap_penalty = gap_penalty;
+ this.iMax = sequence1.length + 1;
+ this.jMax = sequence2.length + 1;
+ this.grid = new Array(this.iMax);
+ for (var i = 0; i < this.iMax; i++) {
+ this.grid[i] = new Array(this.jMax);
+ for (var j = 0; j < this.jMax; j++) {
+ this.grid[i][j] = 0;
+ }
+ }
+ this.tracebackGrid = new Array(this.iMax);
+ for (var _i = 0; _i < this.iMax; _i++) {
+ this.tracebackGrid[_i] = new Array(this.jMax);
+ for (var _j = 0; _j < this.jMax; _j++) {
+ this.tracebackGrid[_i][_j] = [null, null, null];
+ }
+ }
+ this.alignments = [];
+ this.score = -1;
+ this.computeGrids();
+ }
+ _createClass(NeedlemanWunsch2, [{
+ key: "getScore",
+ value: function getScore() {
+ return this.score;
+ }
+ }, {
+ key: "getAlignments",
+ value: function getAlignments() {
+ return this.alignments;
+ }
+ // Main dynamic programming procedure
+ }, {
+ key: "computeGrids",
+ value: function computeGrids() {
+ for (var j = 1; j < this.jMax; j++) {
+ this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty;
+ this.tracebackGrid[0][j] = [false, false, true];
+ }
+ for (var i = 1; i < this.iMax; i++) {
+ this.grid[i][0] = this.grid[i - 1][0] + this.gap_penalty;
+ this.tracebackGrid[i][0] = [false, true, false];
+ }
+ for (var _i2 = 1; _i2 < this.iMax; _i2++) {
+ for (var _j2 = 1; _j2 < this.jMax; _j2++) {
+ var diag = void 0;
+ if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1])
+ diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;
+ else
+ diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty;
+ var up = this.grid[_i2 - 1][_j2] + this.gap_penalty;
+ var left = this.grid[_i2][_j2 - 1] + this.gap_penalty;
+ var maxOf = [diag, up, left];
+ var indices = this.arrayAllMaxIndexes(maxOf);
+ this.grid[_i2][_j2] = maxOf[indices[0]];
+ this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)];
+ }
+ }
+ this.score = this.grid[this.iMax - 1][this.jMax - 1];
+ }
+ // Gets all possible valid sequence combinations
+ }, {
+ key: "alignmentTraceback",
+ value: function alignmentTraceback() {
+ var inProcessAlignments = [];
+ inProcessAlignments.push({
+ pos: [this.sequence1.length, this.sequence2.length],
+ seq1: "",
+ seq2: ""
+ });
+ while (inProcessAlignments[0]) {
+ var current = inProcessAlignments[0];
+ var directions = this.tracebackGrid[current.pos[0]][current.pos[1]];
+ if (directions[0]) {
+ inProcessAlignments.push({
+ pos: [current.pos[0] - 1, current.pos[1] - 1],
+ seq1: this.sequence1[current.pos[0] - 1] + current.seq1,
+ seq2: this.sequence2[current.pos[1] - 1] + current.seq2
+ });
+ }
+ if (directions[1]) {
+ inProcessAlignments.push({
+ pos: [current.pos[0] - 1, current.pos[1]],
+ seq1: this.sequence1[current.pos[0] - 1] + current.seq1,
+ seq2: "-" + current.seq2
+ });
+ }
+ if (directions[2]) {
+ inProcessAlignments.push({
+ pos: [current.pos[0], current.pos[1] - 1],
+ seq1: "-" + current.seq1,
+ seq2: this.sequence2[current.pos[1] - 1] + current.seq2
+ });
+ }
+ if (current.pos[0] === 0 && current.pos[1] === 0)
+ this.alignments.push({
+ sequence1: current.seq1,
+ sequence2: current.seq2
+ });
+ inProcessAlignments.shift();
+ }
+ return this.alignments;
+ }
+ // Helper Functions
+ }, {
+ key: "getAllIndexes",
+ value: function getAllIndexes(arr, val) {
+ var indexes = [], i = -1;
+ while ((i = arr.indexOf(val, i + 1)) !== -1) {
+ indexes.push(i);
+ }
+ return indexes;
+ }
+ }, {
+ key: "arrayAllMaxIndexes",
+ value: function arrayAllMaxIndexes(array) {
+ return this.getAllIndexes(array, Math.max.apply(null, array));
+ }
+ }]);
+ return NeedlemanWunsch2;
+ }();
+ module2.exports = NeedlemanWunsch;
+ },
+ /* 26 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var layoutBase2 = function layoutBase3() {
+ return;
+ };
+ layoutBase2.FDLayout = __webpack_require__(18);
+ layoutBase2.FDLayoutConstants = __webpack_require__(7);
+ layoutBase2.FDLayoutEdge = __webpack_require__(19);
+ layoutBase2.FDLayoutNode = __webpack_require__(20);
+ layoutBase2.DimensionD = __webpack_require__(21);
+ layoutBase2.HashMap = __webpack_require__(22);
+ layoutBase2.HashSet = __webpack_require__(23);
+ layoutBase2.IGeometry = __webpack_require__(8);
+ layoutBase2.IMath = __webpack_require__(9);
+ layoutBase2.Integer = __webpack_require__(10);
+ layoutBase2.Point = __webpack_require__(12);
+ layoutBase2.PointD = __webpack_require__(4);
+ layoutBase2.RandomSeed = __webpack_require__(16);
+ layoutBase2.RectangleD = __webpack_require__(13);
+ layoutBase2.Transform = __webpack_require__(17);
+ layoutBase2.UniqueIDGeneretor = __webpack_require__(14);
+ layoutBase2.Quicksort = __webpack_require__(24);
+ layoutBase2.LinkedList = __webpack_require__(11);
+ layoutBase2.LGraphObject = __webpack_require__(2);
+ layoutBase2.LGraph = __webpack_require__(5);
+ layoutBase2.LEdge = __webpack_require__(1);
+ layoutBase2.LGraphManager = __webpack_require__(6);
+ layoutBase2.LNode = __webpack_require__(3);
+ layoutBase2.Layout = __webpack_require__(15);
+ layoutBase2.LayoutConstants = __webpack_require__(0);
+ layoutBase2.NeedlemanWunsch = __webpack_require__(25);
+ module2.exports = layoutBase2;
+ },
+ /* 27 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ function Emitter() {
+ this.listeners = [];
+ }
+ var p = Emitter.prototype;
+ p.addListener = function(event, callback) {
+ this.listeners.push({
+ event,
+ callback
+ });
+ };
+ p.removeListener = function(event, callback) {
+ for (var i = this.listeners.length; i >= 0; i--) {
+ var l = this.listeners[i];
+ if (l.event === event && l.callback === callback) {
+ this.listeners.splice(i, 1);
+ }
+ }
+ };
+ p.emit = function(event, data) {
+ for (var i = 0; i < this.listeners.length; i++) {
+ var l = this.listeners[i];
+ if (event === l.event) {
+ l.callback(data);
+ }
+ }
+ };
+ module2.exports = Emitter;
+ }
+ /******/
+ ])
+ );
+ });
+ })(layoutBase);
+ return layoutBaseExports;
+}
+var hasRequiredCoseBase;
+function requireCoseBase() {
+ if (hasRequiredCoseBase)
+ return coseBaseExports;
+ hasRequiredCoseBase = 1;
+ (function(module, exports) {
+ (function webpackUniversalModuleDefinition(root, factory) {
+ module.exports = factory(requireLayoutBase());
+ })(commonjsGlobal, function(__WEBPACK_EXTERNAL_MODULE_0__) {
+ return (
+ /******/
+ function(modules) {
+ var installedModules = {};
+ function __webpack_require__(moduleId) {
+ if (installedModules[moduleId]) {
+ return installedModules[moduleId].exports;
+ }
+ var module2 = installedModules[moduleId] = {
+ /******/
+ i: moduleId,
+ /******/
+ l: false,
+ /******/
+ exports: {}
+ /******/
+ };
+ modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__);
+ module2.l = true;
+ return module2.exports;
+ }
+ __webpack_require__.m = modules;
+ __webpack_require__.c = installedModules;
+ __webpack_require__.i = function(value) {
+ return value;
+ };
+ __webpack_require__.d = function(exports2, name2, getter) {
+ if (!__webpack_require__.o(exports2, name2)) {
+ Object.defineProperty(exports2, name2, {
+ /******/
+ configurable: false,
+ /******/
+ enumerable: true,
+ /******/
+ get: getter
+ /******/
+ });
+ }
+ };
+ __webpack_require__.n = function(module2) {
+ var getter = module2 && module2.__esModule ? (
+ /******/
+ function getDefault() {
+ return module2["default"];
+ }
+ ) : (
+ /******/
+ function getModuleExports() {
+ return module2;
+ }
+ );
+ __webpack_require__.d(getter, "a", getter);
+ return getter;
+ };
+ __webpack_require__.o = function(object, property) {
+ return Object.prototype.hasOwnProperty.call(object, property);
+ };
+ __webpack_require__.p = "";
+ return __webpack_require__(__webpack_require__.s = 7);
+ }([
+ /* 0 */
+ /***/
+ function(module2, exports2) {
+ module2.exports = __WEBPACK_EXTERNAL_MODULE_0__;
+ },
+ /* 1 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;
+ function CoSEConstants() {
+ }
+ for (var prop in FDLayoutConstants) {
+ CoSEConstants[prop] = FDLayoutConstants[prop];
+ }
+ CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;
+ CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
+ CoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;
+ CoSEConstants.TILE = true;
+ CoSEConstants.TILING_PADDING_VERTICAL = 10;
+ CoSEConstants.TILING_PADDING_HORIZONTAL = 10;
+ CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false;
+ module2.exports = CoSEConstants;
+ },
+ /* 2 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var FDLayoutEdge = __webpack_require__(0).FDLayoutEdge;
+ function CoSEEdge(source, target, vEdge) {
+ FDLayoutEdge.call(this, source, target, vEdge);
+ }
+ CoSEEdge.prototype = Object.create(FDLayoutEdge.prototype);
+ for (var prop in FDLayoutEdge) {
+ CoSEEdge[prop] = FDLayoutEdge[prop];
+ }
+ module2.exports = CoSEEdge;
+ },
+ /* 3 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var LGraph = __webpack_require__(0).LGraph;
+ function CoSEGraph(parent, graphMgr, vGraph) {
+ LGraph.call(this, parent, graphMgr, vGraph);
+ }
+ CoSEGraph.prototype = Object.create(LGraph.prototype);
+ for (var prop in LGraph) {
+ CoSEGraph[prop] = LGraph[prop];
+ }
+ module2.exports = CoSEGraph;
+ },
+ /* 4 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var LGraphManager = __webpack_require__(0).LGraphManager;
+ function CoSEGraphManager(layout) {
+ LGraphManager.call(this, layout);
+ }
+ CoSEGraphManager.prototype = Object.create(LGraphManager.prototype);
+ for (var prop in LGraphManager) {
+ CoSEGraphManager[prop] = LGraphManager[prop];
+ }
+ module2.exports = CoSEGraphManager;
+ },
+ /* 5 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var FDLayoutNode = __webpack_require__(0).FDLayoutNode;
+ var IMath = __webpack_require__(0).IMath;
+ function CoSENode(gm, loc, size, vNode) {
+ FDLayoutNode.call(this, gm, loc, size, vNode);
+ }
+ CoSENode.prototype = Object.create(FDLayoutNode.prototype);
+ for (var prop in FDLayoutNode) {
+ CoSENode[prop] = FDLayoutNode[prop];
+ }
+ CoSENode.prototype.move = function() {
+ var layout = this.graphManager.getLayout();
+ this.displacementX = layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren;
+ this.displacementY = layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren;
+ if (Math.abs(this.displacementX) > layout.coolingFactor * layout.maxNodeDisplacement) {
+ this.displacementX = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementX);
+ }
+ if (Math.abs(this.displacementY) > layout.coolingFactor * layout.maxNodeDisplacement) {
+ this.displacementY = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementY);
+ }
+ if (this.child == null) {
+ this.moveBy(this.displacementX, this.displacementY);
+ } else if (this.child.getNodes().length == 0) {
+ this.moveBy(this.displacementX, this.displacementY);
+ } else {
+ this.propogateDisplacementToChildren(this.displacementX, this.displacementY);
+ }
+ layout.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY);
+ this.springForceX = 0;
+ this.springForceY = 0;
+ this.repulsionForceX = 0;
+ this.repulsionForceY = 0;
+ this.gravitationForceX = 0;
+ this.gravitationForceY = 0;
+ this.displacementX = 0;
+ this.displacementY = 0;
+ };
+ CoSENode.prototype.propogateDisplacementToChildren = function(dX, dY) {
+ var nodes2 = this.getChild().getNodes();
+ var node;
+ for (var i = 0; i < nodes2.length; i++) {
+ node = nodes2[i];
+ if (node.getChild() == null) {
+ node.moveBy(dX, dY);
+ node.displacementX += dX;
+ node.displacementY += dY;
+ } else {
+ node.propogateDisplacementToChildren(dX, dY);
+ }
+ }
+ };
+ CoSENode.prototype.setPred1 = function(pred12) {
+ this.pred1 = pred12;
+ };
+ CoSENode.prototype.getPred1 = function() {
+ return pred1;
+ };
+ CoSENode.prototype.getPred2 = function() {
+ return pred2;
+ };
+ CoSENode.prototype.setNext = function(next2) {
+ this.next = next2;
+ };
+ CoSENode.prototype.getNext = function() {
+ return next;
+ };
+ CoSENode.prototype.setProcessed = function(processed2) {
+ this.processed = processed2;
+ };
+ CoSENode.prototype.isProcessed = function() {
+ return processed;
+ };
+ module2.exports = CoSENode;
+ },
+ /* 6 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var FDLayout = __webpack_require__(0).FDLayout;
+ var CoSEGraphManager = __webpack_require__(4);
+ var CoSEGraph = __webpack_require__(3);
+ var CoSENode = __webpack_require__(5);
+ var CoSEEdge = __webpack_require__(2);
+ var CoSEConstants = __webpack_require__(1);
+ var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;
+ var LayoutConstants = __webpack_require__(0).LayoutConstants;
+ var Point2 = __webpack_require__(0).Point;
+ var PointD = __webpack_require__(0).PointD;
+ var Layout2 = __webpack_require__(0).Layout;
+ var Integer = __webpack_require__(0).Integer;
+ var IGeometry = __webpack_require__(0).IGeometry;
+ var LGraph = __webpack_require__(0).LGraph;
+ var Transform = __webpack_require__(0).Transform;
+ function CoSELayout() {
+ FDLayout.call(this);
+ this.toBeTiled = {};
+ }
+ CoSELayout.prototype = Object.create(FDLayout.prototype);
+ for (var prop in FDLayout) {
+ CoSELayout[prop] = FDLayout[prop];
+ }
+ CoSELayout.prototype.newGraphManager = function() {
+ var gm = new CoSEGraphManager(this);
+ this.graphManager = gm;
+ return gm;
+ };
+ CoSELayout.prototype.newGraph = function(vGraph) {
+ return new CoSEGraph(null, this.graphManager, vGraph);
+ };
+ CoSELayout.prototype.newNode = function(vNode) {
+ return new CoSENode(this.graphManager, vNode);
+ };
+ CoSELayout.prototype.newEdge = function(vEdge) {
+ return new CoSEEdge(null, null, vEdge);
+ };
+ CoSELayout.prototype.initParameters = function() {
+ FDLayout.prototype.initParameters.call(this, arguments);
+ if (!this.isSubLayout) {
+ if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) {
+ this.idealEdgeLength = 10;
+ } else {
+ this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH;
+ }
+ this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;
+ this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;
+ this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;
+ this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;
+ this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;
+ this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;
+ this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;
+ this.prunedNodesAll = [];
+ this.growTreeIterations = 0;
+ this.afterGrowthIterations = 0;
+ this.isTreeGrowing = false;
+ this.isGrowthFinished = false;
+ this.coolingCycle = 0;
+ this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD;
+ this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations;
+ this.coolingAdjuster = 1;
+ }
+ };
+ CoSELayout.prototype.layout = function() {
+ var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
+ if (createBendsAsNeeded) {
+ this.createBendpoints();
+ this.graphManager.resetAllEdges();
+ }
+ this.level = 0;
+ return this.classicLayout();
+ };
+ CoSELayout.prototype.classicLayout = function() {
+ this.nodesWithGravity = this.calculateNodesToApplyGravitationTo();
+ this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);
+ this.calcNoOfChildrenForAllNodes();
+ this.graphManager.calcLowestCommonAncestors();
+ this.graphManager.calcInclusionTreeDepths();
+ this.graphManager.getRoot().calcEstimatedSize();
+ this.calcIdealEdgeLengths();
+ if (!this.incremental) {
+ var forest = this.getFlatForest();
+ if (forest.length > 0) {
+ this.positionNodesRadially(forest);
+ } else {
+ this.reduceTrees();
+ this.graphManager.resetAllNodesToApplyGravitation();
+ var allNodes = new Set(this.getAllNodes());
+ var intersection = this.nodesWithGravity.filter(function(x) {
+ return allNodes.has(x);
+ });
+ this.graphManager.setAllNodesToApplyGravitation(intersection);
+ this.positionNodesRandomly();
+ }
+ } else {
+ if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) {
+ this.reduceTrees();
+ this.graphManager.resetAllNodesToApplyGravitation();
+ var allNodes = new Set(this.getAllNodes());
+ var intersection = this.nodesWithGravity.filter(function(x) {
+ return allNodes.has(x);
+ });
+ this.graphManager.setAllNodesToApplyGravitation(intersection);
+ }
+ }
+ this.initSpringEmbedder();
+ this.runSpringEmbedder();
+ return true;
+ };
+ CoSELayout.prototype.tick = function() {
+ this.totalIterations++;
+ if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) {
+ if (this.prunedNodesAll.length > 0) {
+ this.isTreeGrowing = true;
+ } else {
+ return true;
+ }
+ }
+ if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {
+ if (this.isConverged()) {
+ if (this.prunedNodesAll.length > 0) {
+ this.isTreeGrowing = true;
+ } else {
+ return true;
+ }
+ }
+ this.coolingCycle++;
+ if (this.layoutQuality == 0) {
+ this.coolingAdjuster = this.coolingCycle;
+ } else if (this.layoutQuality == 1) {
+ this.coolingAdjuster = this.coolingCycle / 3;
+ }
+ this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature);
+ this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));
+ }
+ if (this.isTreeGrowing) {
+ if (this.growTreeIterations % 10 == 0) {
+ if (this.prunedNodesAll.length > 0) {
+ this.graphManager.updateBounds();
+ this.updateGrid();
+ this.growTree(this.prunedNodesAll);
+ this.graphManager.resetAllNodesToApplyGravitation();
+ var allNodes = new Set(this.getAllNodes());
+ var intersection = this.nodesWithGravity.filter(function(x) {
+ return allNodes.has(x);
+ });
+ this.graphManager.setAllNodesToApplyGravitation(intersection);
+ this.graphManager.updateBounds();
+ this.updateGrid();
+ this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;
+ } else {
+ this.isTreeGrowing = false;
+ this.isGrowthFinished = true;
+ }
+ }
+ this.growTreeIterations++;
+ }
+ if (this.isGrowthFinished) {
+ if (this.isConverged()) {
+ return true;
+ }
+ if (this.afterGrowthIterations % 10 == 0) {
+ this.graphManager.updateBounds();
+ this.updateGrid();
+ }
+ this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100);
+ this.afterGrowthIterations++;
+ }
+ var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished;
+ var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;
+ this.totalDisplacement = 0;
+ this.graphManager.updateBounds();
+ this.calcSpringForces();
+ this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate);
+ this.calcGravitationalForces();
+ this.moveNodes();
+ this.animate();
+ return false;
+ };
+ CoSELayout.prototype.getPositionsData = function() {
+ var allNodes = this.graphManager.getAllNodes();
+ var pData = {};
+ for (var i = 0; i < allNodes.length; i++) {
+ var rect = allNodes[i].rect;
+ var id = allNodes[i].id;
+ pData[id] = {
+ id,
+ x: rect.getCenterX(),
+ y: rect.getCenterY(),
+ w: rect.width,
+ h: rect.height
+ };
+ }
+ return pData;
+ };
+ CoSELayout.prototype.runSpringEmbedder = function() {
+ this.initialAnimationPeriod = 25;
+ this.animationPeriod = this.initialAnimationPeriod;
+ var layoutEnded = false;
+ if (FDLayoutConstants.ANIMATE === "during") {
+ this.emit("layoutstarted");
+ } else {
+ while (!layoutEnded) {
+ layoutEnded = this.tick();
+ }
+ this.graphManager.updateBounds();
+ }
+ };
+ CoSELayout.prototype.calculateNodesToApplyGravitationTo = function() {
+ var nodeList = [];
+ var graph;
+ var graphs = this.graphManager.getGraphs();
+ var size = graphs.length;
+ var i;
+ for (i = 0; i < size; i++) {
+ graph = graphs[i];
+ graph.updateConnected();
+ if (!graph.isConnected) {
+ nodeList = nodeList.concat(graph.getNodes());
+ }
+ }
+ return nodeList;
+ };
+ CoSELayout.prototype.createBendpoints = function() {
+ var edges = [];
+ edges = edges.concat(this.graphManager.getAllEdges());
+ var visited = /* @__PURE__ */ new Set();
+ var i;
+ for (i = 0; i < edges.length; i++) {
+ var edge = edges[i];
+ if (!visited.has(edge)) {
+ var source = edge.getSource();
+ var target = edge.getTarget();
+ if (source == target) {
+ edge.getBendpoints().push(new PointD());
+ edge.getBendpoints().push(new PointD());
+ this.createDummyNodesForBendpoints(edge);
+ visited.add(edge);
+ } else {
+ var edgeList = [];
+ edgeList = edgeList.concat(source.getEdgeListToNode(target));
+ edgeList = edgeList.concat(target.getEdgeListToNode(source));
+ if (!visited.has(edgeList[0])) {
+ if (edgeList.length > 1) {
+ var k;
+ for (k = 0; k < edgeList.length; k++) {
+ var multiEdge = edgeList[k];
+ multiEdge.getBendpoints().push(new PointD());
+ this.createDummyNodesForBendpoints(multiEdge);
+ }
+ }
+ edgeList.forEach(function(edge2) {
+ visited.add(edge2);
+ });
+ }
+ }
+ }
+ if (visited.size == edges.length) {
+ break;
+ }
+ }
+ };
+ CoSELayout.prototype.positionNodesRadially = function(forest) {
+ var currentStartingPoint = new Point2(0, 0);
+ var numberOfColumns = Math.ceil(Math.sqrt(forest.length));
+ var height = 0;
+ var currentY = 0;
+ var currentX = 0;
+ var point = new PointD(0, 0);
+ for (var i = 0; i < forest.length; i++) {
+ if (i % numberOfColumns == 0) {
+ currentX = 0;
+ currentY = height;
+ if (i != 0) {
+ currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION;
+ }
+ height = 0;
+ }
+ var tree = forest[i];
+ var centerNode = Layout2.findCenterOfTree(tree);
+ currentStartingPoint.x = currentX;
+ currentStartingPoint.y = currentY;
+ point = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint);
+ if (point.y > height) {
+ height = Math.floor(point.y);
+ }
+ currentX = Math.floor(point.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION);
+ }
+ this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point.x / 2, LayoutConstants.WORLD_CENTER_Y - point.y / 2));
+ };
+ CoSELayout.radialLayout = function(tree, centerNode, startingPoint) {
+ var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION);
+ CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep);
+ var bounds = LGraph.calculateBounds(tree);
+ var transform = new Transform();
+ transform.setDeviceOrgX(bounds.getMinX());
+ transform.setDeviceOrgY(bounds.getMinY());
+ transform.setWorldOrgX(startingPoint.x);
+ transform.setWorldOrgY(startingPoint.y);
+ for (var i = 0; i < tree.length; i++) {
+ var node = tree[i];
+ node.transform(transform);
+ }
+ var bottomRight = new PointD(bounds.getMaxX(), bounds.getMaxY());
+ return transform.inverseTransformPoint(bottomRight);
+ };
+ CoSELayout.branchRadialLayout = function(node, parentOfNode, startAngle, endAngle, distance, radialSeparation) {
+ var halfInterval = (endAngle - startAngle + 1) / 2;
+ if (halfInterval < 0) {
+ halfInterval += 180;
+ }
+ var nodeAngle = (halfInterval + startAngle) % 360;
+ var teta = nodeAngle * IGeometry.TWO_PI / 360;
+ var x_ = distance * Math.cos(teta);
+ var y_ = distance * Math.sin(teta);
+ node.setCenter(x_, y_);
+ var neighborEdges = [];
+ neighborEdges = neighborEdges.concat(node.getEdges());
+ var childCount = neighborEdges.length;
+ if (parentOfNode != null) {
+ childCount--;
+ }
+ var branchCount = 0;
+ var incEdgesCount = neighborEdges.length;
+ var startIndex;
+ var edges = node.getEdgesBetween(parentOfNode);
+ while (edges.length > 1) {
+ var temp = edges[0];
+ edges.splice(0, 1);
+ var index = neighborEdges.indexOf(temp);
+ if (index >= 0) {
+ neighborEdges.splice(index, 1);
+ }
+ incEdgesCount--;
+ childCount--;
+ }
+ if (parentOfNode != null) {
+ startIndex = (neighborEdges.indexOf(edges[0]) + 1) % incEdgesCount;
+ } else {
+ startIndex = 0;
+ }
+ var stepAngle = Math.abs(endAngle - startAngle) / childCount;
+ for (var i = startIndex; branchCount != childCount; i = ++i % incEdgesCount) {
+ var currentNeighbor = neighborEdges[i].getOtherEnd(node);
+ if (currentNeighbor == parentOfNode) {
+ continue;
+ }
+ var childStartAngle = (startAngle + branchCount * stepAngle) % 360;
+ var childEndAngle = (childStartAngle + stepAngle) % 360;
+ CoSELayout.branchRadialLayout(currentNeighbor, node, childStartAngle, childEndAngle, distance + radialSeparation, radialSeparation);
+ branchCount++;
+ }
+ };
+ CoSELayout.maxDiagonalInTree = function(tree) {
+ var maxDiagonal = Integer.MIN_VALUE;
+ for (var i = 0; i < tree.length; i++) {
+ var node = tree[i];
+ var diagonal = node.getDiagonal();
+ if (diagonal > maxDiagonal) {
+ maxDiagonal = diagonal;
+ }
+ }
+ return maxDiagonal;
+ };
+ CoSELayout.prototype.calcRepulsionRange = function() {
+ return 2 * (this.level + 1) * this.idealEdgeLength;
+ };
+ CoSELayout.prototype.groupZeroDegreeMembers = function() {
+ var self2 = this;
+ var tempMemberGroups = {};
+ this.memberGroups = {};
+ this.idToDummyNode = {};
+ var zeroDegree = [];
+ var allNodes = this.graphManager.getAllNodes();
+ for (var i = 0; i < allNodes.length; i++) {
+ var node = allNodes[i];
+ var parent = node.getParent();
+ if (this.getNodeDegreeWithChildren(node) === 0 && (parent.id == void 0 || !this.getToBeTiled(parent))) {
+ zeroDegree.push(node);
+ }
+ }
+ for (var i = 0; i < zeroDegree.length; i++) {
+ var node = zeroDegree[i];
+ var p_id = node.getParent().id;
+ if (typeof tempMemberGroups[p_id] === "undefined")
+ tempMemberGroups[p_id] = [];
+ tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node);
+ }
+ Object.keys(tempMemberGroups).forEach(function(p_id2) {
+ if (tempMemberGroups[p_id2].length > 1) {
+ var dummyCompoundId = "DummyCompound_" + p_id2;
+ self2.memberGroups[dummyCompoundId] = tempMemberGroups[p_id2];
+ var parent2 = tempMemberGroups[p_id2][0].getParent();
+ var dummyCompound = new CoSENode(self2.graphManager);
+ dummyCompound.id = dummyCompoundId;
+ dummyCompound.paddingLeft = parent2.paddingLeft || 0;
+ dummyCompound.paddingRight = parent2.paddingRight || 0;
+ dummyCompound.paddingBottom = parent2.paddingBottom || 0;
+ dummyCompound.paddingTop = parent2.paddingTop || 0;
+ self2.idToDummyNode[dummyCompoundId] = dummyCompound;
+ var dummyParentGraph = self2.getGraphManager().add(self2.newGraph(), dummyCompound);
+ var parentGraph = parent2.getChild();
+ parentGraph.add(dummyCompound);
+ for (var i2 = 0; i2 < tempMemberGroups[p_id2].length; i2++) {
+ var node2 = tempMemberGroups[p_id2][i2];
+ parentGraph.remove(node2);
+ dummyParentGraph.add(node2);
+ }
+ }
+ });
+ };
+ CoSELayout.prototype.clearCompounds = function() {
+ var childGraphMap = {};
+ var idToNode = {};
+ this.performDFSOnCompounds();
+ for (var i = 0; i < this.compoundOrder.length; i++) {
+ idToNode[this.compoundOrder[i].id] = this.compoundOrder[i];
+ childGraphMap[this.compoundOrder[i].id] = [].concat(this.compoundOrder[i].getChild().getNodes());
+ this.graphManager.remove(this.compoundOrder[i].getChild());
+ this.compoundOrder[i].child = null;
+ }
+ this.graphManager.resetAllNodes();
+ this.tileCompoundMembers(childGraphMap, idToNode);
+ };
+ CoSELayout.prototype.clearZeroDegreeMembers = function() {
+ var self2 = this;
+ var tiledZeroDegreePack = this.tiledZeroDegreePack = [];
+ Object.keys(this.memberGroups).forEach(function(id) {
+ var compoundNode = self2.idToDummyNode[id];
+ tiledZeroDegreePack[id] = self2.tileNodes(self2.memberGroups[id], compoundNode.paddingLeft + compoundNode.paddingRight);
+ compoundNode.rect.width = tiledZeroDegreePack[id].width;
+ compoundNode.rect.height = tiledZeroDegreePack[id].height;
+ });
+ };
+ CoSELayout.prototype.repopulateCompounds = function() {
+ for (var i = this.compoundOrder.length - 1; i >= 0; i--) {
+ var lCompoundNode = this.compoundOrder[i];
+ var id = lCompoundNode.id;
+ var horizontalMargin = lCompoundNode.paddingLeft;
+ var verticalMargin = lCompoundNode.paddingTop;
+ this.adjustLocations(this.tiledMemberPack[id], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin);
+ }
+ };
+ CoSELayout.prototype.repopulateZeroDegreeMembers = function() {
+ var self2 = this;
+ var tiledPack = this.tiledZeroDegreePack;
+ Object.keys(tiledPack).forEach(function(id) {
+ var compoundNode = self2.idToDummyNode[id];
+ var horizontalMargin = compoundNode.paddingLeft;
+ var verticalMargin = compoundNode.paddingTop;
+ self2.adjustLocations(tiledPack[id], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin);
+ });
+ };
+ CoSELayout.prototype.getToBeTiled = function(node) {
+ var id = node.id;
+ if (this.toBeTiled[id] != null) {
+ return this.toBeTiled[id];
+ }
+ var childGraph = node.getChild();
+ if (childGraph == null) {
+ this.toBeTiled[id] = false;
+ return false;
+ }
+ var children = childGraph.getNodes();
+ for (var i = 0; i < children.length; i++) {
+ var theChild = children[i];
+ if (this.getNodeDegree(theChild) > 0) {
+ this.toBeTiled[id] = false;
+ return false;
+ }
+ if (theChild.getChild() == null) {
+ this.toBeTiled[theChild.id] = false;
+ continue;
+ }
+ if (!this.getToBeTiled(theChild)) {
+ this.toBeTiled[id] = false;
+ return false;
+ }
+ }
+ this.toBeTiled[id] = true;
+ return true;
+ };
+ CoSELayout.prototype.getNodeDegree = function(node) {
+ node.id;
+ var edges = node.getEdges();
+ var degree = 0;
+ for (var i = 0; i < edges.length; i++) {
+ var edge = edges[i];
+ if (edge.getSource().id !== edge.getTarget().id) {
+ degree = degree + 1;
+ }
+ }
+ return degree;
+ };
+ CoSELayout.prototype.getNodeDegreeWithChildren = function(node) {
+ var degree = this.getNodeDegree(node);
+ if (node.getChild() == null) {
+ return degree;
+ }
+ var children = node.getChild().getNodes();
+ for (var i = 0; i < children.length; i++) {
+ var child = children[i];
+ degree += this.getNodeDegreeWithChildren(child);
+ }
+ return degree;
+ };
+ CoSELayout.prototype.performDFSOnCompounds = function() {
+ this.compoundOrder = [];
+ this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());
+ };
+ CoSELayout.prototype.fillCompexOrderByDFS = function(children) {
+ for (var i = 0; i < children.length; i++) {
+ var child = children[i];
+ if (child.getChild() != null) {
+ this.fillCompexOrderByDFS(child.getChild().getNodes());
+ }
+ if (this.getToBeTiled(child)) {
+ this.compoundOrder.push(child);
+ }
+ }
+ };
+ CoSELayout.prototype.adjustLocations = function(organization, x, y, compoundHorizontalMargin, compoundVerticalMargin) {
+ x += compoundHorizontalMargin;
+ y += compoundVerticalMargin;
+ var left = x;
+ for (var i = 0; i < organization.rows.length; i++) {
+ var row = organization.rows[i];
+ x = left;
+ var maxHeight = 0;
+ for (var j = 0; j < row.length; j++) {
+ var lnode = row[j];
+ lnode.rect.x = x;
+ lnode.rect.y = y;
+ x += lnode.rect.width + organization.horizontalPadding;
+ if (lnode.rect.height > maxHeight)
+ maxHeight = lnode.rect.height;
+ }
+ y += maxHeight + organization.verticalPadding;
+ }
+ };
+ CoSELayout.prototype.tileCompoundMembers = function(childGraphMap, idToNode) {
+ var self2 = this;
+ this.tiledMemberPack = [];
+ Object.keys(childGraphMap).forEach(function(id) {
+ var compoundNode = idToNode[id];
+ self2.tiledMemberPack[id] = self2.tileNodes(childGraphMap[id], compoundNode.paddingLeft + compoundNode.paddingRight);
+ compoundNode.rect.width = self2.tiledMemberPack[id].width;
+ compoundNode.rect.height = self2.tiledMemberPack[id].height;
+ });
+ };
+ CoSELayout.prototype.tileNodes = function(nodes2, minWidth) {
+ var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;
+ var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;
+ var organization = {
+ rows: [],
+ rowWidth: [],
+ rowHeight: [],
+ width: 0,
+ height: minWidth,
+ // assume minHeight equals to minWidth
+ verticalPadding,
+ horizontalPadding
+ };
+ nodes2.sort(function(n1, n2) {
+ if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height)
+ return -1;
+ if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height)
+ return 1;
+ return 0;
+ });
+ for (var i = 0; i < nodes2.length; i++) {
+ var lNode = nodes2[i];
+ if (organization.rows.length == 0) {
+ this.insertNodeToRow(organization, lNode, 0, minWidth);
+ } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) {
+ this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth);
+ } else {
+ this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth);
+ }
+ this.shiftToLastRow(organization);
+ }
+ return organization;
+ };
+ CoSELayout.prototype.insertNodeToRow = function(organization, node, rowIndex, minWidth) {
+ var minCompoundSize = minWidth;
+ if (rowIndex == organization.rows.length) {
+ var secondDimension = [];
+ organization.rows.push(secondDimension);
+ organization.rowWidth.push(minCompoundSize);
+ organization.rowHeight.push(0);
+ }
+ var w = organization.rowWidth[rowIndex] + node.rect.width;
+ if (organization.rows[rowIndex].length > 0) {
+ w += organization.horizontalPadding;
+ }
+ organization.rowWidth[rowIndex] = w;
+ if (organization.width < w) {
+ organization.width = w;
+ }
+ var h = node.rect.height;
+ if (rowIndex > 0)
+ h += organization.verticalPadding;
+ var extraHeight = 0;
+ if (h > organization.rowHeight[rowIndex]) {
+ extraHeight = organization.rowHeight[rowIndex];
+ organization.rowHeight[rowIndex] = h;
+ extraHeight = organization.rowHeight[rowIndex] - extraHeight;
+ }
+ organization.height += extraHeight;
+ organization.rows[rowIndex].push(node);
+ };
+ CoSELayout.prototype.getShortestRowIndex = function(organization) {
+ var r = -1;
+ var min = Number.MAX_VALUE;
+ for (var i = 0; i < organization.rows.length; i++) {
+ if (organization.rowWidth[i] < min) {
+ r = i;
+ min = organization.rowWidth[i];
+ }
+ }
+ return r;
+ };
+ CoSELayout.prototype.getLongestRowIndex = function(organization) {
+ var r = -1;
+ var max = Number.MIN_VALUE;
+ for (var i = 0; i < organization.rows.length; i++) {
+ if (organization.rowWidth[i] > max) {
+ r = i;
+ max = organization.rowWidth[i];
+ }
+ }
+ return r;
+ };
+ CoSELayout.prototype.canAddHorizontal = function(organization, extraWidth, extraHeight) {
+ var sri = this.getShortestRowIndex(organization);
+ if (sri < 0) {
+ return true;
+ }
+ var min = organization.rowWidth[sri];
+ if (min + organization.horizontalPadding + extraWidth <= organization.width)
+ return true;
+ var hDiff = 0;
+ if (organization.rowHeight[sri] < extraHeight) {
+ if (sri > 0)
+ hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri];
+ }
+ var add_to_row_ratio;
+ if (organization.width - min >= extraWidth + organization.horizontalPadding) {
+ add_to_row_ratio = (organization.height + hDiff) / (min + extraWidth + organization.horizontalPadding);
+ } else {
+ add_to_row_ratio = (organization.height + hDiff) / organization.width;
+ }
+ hDiff = extraHeight + organization.verticalPadding;
+ var add_new_row_ratio;
+ if (organization.width < extraWidth) {
+ add_new_row_ratio = (organization.height + hDiff) / extraWidth;
+ } else {
+ add_new_row_ratio = (organization.height + hDiff) / organization.width;
+ }
+ if (add_new_row_ratio < 1)
+ add_new_row_ratio = 1 / add_new_row_ratio;
+ if (add_to_row_ratio < 1)
+ add_to_row_ratio = 1 / add_to_row_ratio;
+ return add_to_row_ratio < add_new_row_ratio;
+ };
+ CoSELayout.prototype.shiftToLastRow = function(organization) {
+ var longest = this.getLongestRowIndex(organization);
+ var last = organization.rowWidth.length - 1;
+ var row = organization.rows[longest];
+ var node = row[row.length - 1];
+ var diff = node.width + organization.horizontalPadding;
+ if (organization.width - organization.rowWidth[last] > diff && longest != last) {
+ row.splice(-1, 1);
+ organization.rows[last].push(node);
+ organization.rowWidth[longest] = organization.rowWidth[longest] - diff;
+ organization.rowWidth[last] = organization.rowWidth[last] + diff;
+ organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)];
+ var maxHeight = Number.MIN_VALUE;
+ for (var i = 0; i < row.length; i++) {
+ if (row[i].height > maxHeight)
+ maxHeight = row[i].height;
+ }
+ if (longest > 0)
+ maxHeight += organization.verticalPadding;
+ var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last];
+ organization.rowHeight[longest] = maxHeight;
+ if (organization.rowHeight[last] < node.height + organization.verticalPadding)
+ organization.rowHeight[last] = node.height + organization.verticalPadding;
+ var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last];
+ organization.height += finalTotal - prevTotal;
+ this.shiftToLastRow(organization);
+ }
+ };
+ CoSELayout.prototype.tilingPreLayout = function() {
+ if (CoSEConstants.TILE) {
+ this.groupZeroDegreeMembers();
+ this.clearCompounds();
+ this.clearZeroDegreeMembers();
+ }
+ };
+ CoSELayout.prototype.tilingPostLayout = function() {
+ if (CoSEConstants.TILE) {
+ this.repopulateZeroDegreeMembers();
+ this.repopulateCompounds();
+ }
+ };
+ CoSELayout.prototype.reduceTrees = function() {
+ var prunedNodesAll = [];
+ var containsLeaf = true;
+ var node;
+ while (containsLeaf) {
+ var allNodes = this.graphManager.getAllNodes();
+ var prunedNodesInStepTemp = [];
+ containsLeaf = false;
+ for (var i = 0; i < allNodes.length; i++) {
+ node = allNodes[i];
+ if (node.getEdges().length == 1 && !node.getEdges()[0].isInterGraph && node.getChild() == null) {
+ prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner()]);
+ containsLeaf = true;
+ }
+ }
+ if (containsLeaf == true) {
+ var prunedNodesInStep = [];
+ for (var j = 0; j < prunedNodesInStepTemp.length; j++) {
+ if (prunedNodesInStepTemp[j][0].getEdges().length == 1) {
+ prunedNodesInStep.push(prunedNodesInStepTemp[j]);
+ prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]);
+ }
+ }
+ prunedNodesAll.push(prunedNodesInStep);
+ this.graphManager.resetAllNodes();
+ this.graphManager.resetAllEdges();
+ }
+ }
+ this.prunedNodesAll = prunedNodesAll;
+ };
+ CoSELayout.prototype.growTree = function(prunedNodesAll) {
+ var lengthOfPrunedNodesInStep = prunedNodesAll.length;
+ var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1];
+ var nodeData;
+ for (var i = 0; i < prunedNodesInStep.length; i++) {
+ nodeData = prunedNodesInStep[i];
+ this.findPlaceforPrunedNode(nodeData);
+ nodeData[2].add(nodeData[0]);
+ nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target);
+ }
+ prunedNodesAll.splice(prunedNodesAll.length - 1, 1);
+ this.graphManager.resetAllNodes();
+ this.graphManager.resetAllEdges();
+ };
+ CoSELayout.prototype.findPlaceforPrunedNode = function(nodeData) {
+ var gridForPrunedNode;
+ var nodeToConnect;
+ var prunedNode = nodeData[0];
+ if (prunedNode == nodeData[1].source) {
+ nodeToConnect = nodeData[1].target;
+ } else {
+ nodeToConnect = nodeData[1].source;
+ }
+ var startGridX = nodeToConnect.startX;
+ var finishGridX = nodeToConnect.finishX;
+ var startGridY = nodeToConnect.startY;
+ var finishGridY = nodeToConnect.finishY;
+ var upNodeCount = 0;
+ var downNodeCount = 0;
+ var rightNodeCount = 0;
+ var leftNodeCount = 0;
+ var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount];
+ if (startGridY > 0) {
+ for (var i = startGridX; i <= finishGridX; i++) {
+ controlRegions[0] += this.grid[i][startGridY - 1].length + this.grid[i][startGridY].length - 1;
+ }
+ }
+ if (finishGridX < this.grid.length - 1) {
+ for (var i = startGridY; i <= finishGridY; i++) {
+ controlRegions[1] += this.grid[finishGridX + 1][i].length + this.grid[finishGridX][i].length - 1;
+ }
+ }
+ if (finishGridY < this.grid[0].length - 1) {
+ for (var i = startGridX; i <= finishGridX; i++) {
+ controlRegions[2] += this.grid[i][finishGridY + 1].length + this.grid[i][finishGridY].length - 1;
+ }
+ }
+ if (startGridX > 0) {
+ for (var i = startGridY; i <= finishGridY; i++) {
+ controlRegions[3] += this.grid[startGridX - 1][i].length + this.grid[startGridX][i].length - 1;
+ }
+ }
+ var min = Integer.MAX_VALUE;
+ var minCount;
+ var minIndex;
+ for (var j = 0; j < controlRegions.length; j++) {
+ if (controlRegions[j] < min) {
+ min = controlRegions[j];
+ minCount = 1;
+ minIndex = j;
+ } else if (controlRegions[j] == min) {
+ minCount++;
+ }
+ }
+ if (minCount == 3 && min == 0) {
+ if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) {
+ gridForPrunedNode = 1;
+ } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) {
+ gridForPrunedNode = 0;
+ } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {
+ gridForPrunedNode = 3;
+ } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {
+ gridForPrunedNode = 2;
+ }
+ } else if (minCount == 2 && min == 0) {
+ var random = Math.floor(Math.random() * 2);
+ if (controlRegions[0] == 0 && controlRegions[1] == 0) {
+ if (random == 0) {
+ gridForPrunedNode = 0;
+ } else {
+ gridForPrunedNode = 1;
+ }
+ } else if (controlRegions[0] == 0 && controlRegions[2] == 0) {
+ if (random == 0) {
+ gridForPrunedNode = 0;
+ } else {
+ gridForPrunedNode = 2;
+ }
+ } else if (controlRegions[0] == 0 && controlRegions[3] == 0) {
+ if (random == 0) {
+ gridForPrunedNode = 0;
+ } else {
+ gridForPrunedNode = 3;
+ }
+ } else if (controlRegions[1] == 0 && controlRegions[2] == 0) {
+ if (random == 0) {
+ gridForPrunedNode = 1;
+ } else {
+ gridForPrunedNode = 2;
+ }
+ } else if (controlRegions[1] == 0 && controlRegions[3] == 0) {
+ if (random == 0) {
+ gridForPrunedNode = 1;
+ } else {
+ gridForPrunedNode = 3;
+ }
+ } else {
+ if (random == 0) {
+ gridForPrunedNode = 2;
+ } else {
+ gridForPrunedNode = 3;
+ }
+ }
+ } else if (minCount == 4 && min == 0) {
+ var random = Math.floor(Math.random() * 4);
+ gridForPrunedNode = random;
+ } else {
+ gridForPrunedNode = minIndex;
+ }
+ if (gridForPrunedNode == 0) {
+ prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2);
+ } else if (gridForPrunedNode == 1) {
+ prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY());
+ } else if (gridForPrunedNode == 2) {
+ prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2);
+ } else {
+ prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY());
+ }
+ };
+ module2.exports = CoSELayout;
+ },
+ /* 7 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var coseBase2 = {};
+ coseBase2.layoutBase = __webpack_require__(0);
+ coseBase2.CoSEConstants = __webpack_require__(1);
+ coseBase2.CoSEEdge = __webpack_require__(2);
+ coseBase2.CoSEGraph = __webpack_require__(3);
+ coseBase2.CoSEGraphManager = __webpack_require__(4);
+ coseBase2.CoSELayout = __webpack_require__(6);
+ coseBase2.CoSENode = __webpack_require__(5);
+ module2.exports = coseBase2;
+ }
+ /******/
+ ])
+ );
+ });
+ })(coseBase);
+ return coseBaseExports;
+}
+(function(module, exports) {
+ (function webpackUniversalModuleDefinition(root, factory) {
+ module.exports = factory(requireCoseBase());
+ })(commonjsGlobal, function(__WEBPACK_EXTERNAL_MODULE_0__) {
+ return (
+ /******/
+ function(modules) {
+ var installedModules = {};
+ function __webpack_require__(moduleId) {
+ if (installedModules[moduleId]) {
+ return installedModules[moduleId].exports;
+ }
+ var module2 = installedModules[moduleId] = {
+ /******/
+ i: moduleId,
+ /******/
+ l: false,
+ /******/
+ exports: {}
+ /******/
+ };
+ modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__);
+ module2.l = true;
+ return module2.exports;
+ }
+ __webpack_require__.m = modules;
+ __webpack_require__.c = installedModules;
+ __webpack_require__.i = function(value) {
+ return value;
+ };
+ __webpack_require__.d = function(exports2, name2, getter) {
+ if (!__webpack_require__.o(exports2, name2)) {
+ Object.defineProperty(exports2, name2, {
+ /******/
+ configurable: false,
+ /******/
+ enumerable: true,
+ /******/
+ get: getter
+ /******/
+ });
+ }
+ };
+ __webpack_require__.n = function(module2) {
+ var getter = module2 && module2.__esModule ? (
+ /******/
+ function getDefault() {
+ return module2["default"];
+ }
+ ) : (
+ /******/
+ function getModuleExports() {
+ return module2;
+ }
+ );
+ __webpack_require__.d(getter, "a", getter);
+ return getter;
+ };
+ __webpack_require__.o = function(object, property) {
+ return Object.prototype.hasOwnProperty.call(object, property);
+ };
+ __webpack_require__.p = "";
+ return __webpack_require__(__webpack_require__.s = 1);
+ }([
+ /* 0 */
+ /***/
+ function(module2, exports2) {
+ module2.exports = __WEBPACK_EXTERNAL_MODULE_0__;
+ },
+ /* 1 */
+ /***/
+ function(module2, exports2, __webpack_require__) {
+ var LayoutConstants = __webpack_require__(0).layoutBase.LayoutConstants;
+ var FDLayoutConstants = __webpack_require__(0).layoutBase.FDLayoutConstants;
+ var CoSEConstants = __webpack_require__(0).CoSEConstants;
+ var CoSELayout = __webpack_require__(0).CoSELayout;
+ var CoSENode = __webpack_require__(0).CoSENode;
+ var PointD = __webpack_require__(0).layoutBase.PointD;
+ var DimensionD2 = __webpack_require__(0).layoutBase.DimensionD;
+ var defaults = {
+ // Called on `layoutready`
+ ready: function ready() {
+ },
+ // Called on `layoutstop`
+ stop: function stop() {
+ },
+ // 'draft', 'default' or 'proof"
+ // - 'draft' fast cooling rate
+ // - 'default' moderate cooling rate
+ // - "proof" slow cooling rate
+ quality: "default",
+ // include labels in node dimensions
+ nodeDimensionsIncludeLabels: false,
+ // number of ticks per frame; higher is faster but more jerky
+ refresh: 30,
+ // Whether to fit the network view after when done
+ fit: true,
+ // Padding on fit
+ padding: 10,
+ // Whether to enable incremental mode
+ randomize: true,
+ // Node repulsion (non overlapping) multiplier
+ nodeRepulsion: 4500,
+ // Ideal edge (non nested) length
+ idealEdgeLength: 50,
+ // Divisor to compute edge forces
+ edgeElasticity: 0.45,
+ // Nesting factor (multiplier) to compute ideal edge length for nested edges
+ nestingFactor: 0.1,
+ // Gravity force (constant)
+ gravity: 0.25,
+ // Maximum number of iterations to perform
+ numIter: 2500,
+ // For enabling tiling
+ tile: true,
+ // Type of layout animation. The option set is {'during', 'end', false}
+ animate: "end",
+ // Duration for animate:end
+ animationDuration: 500,
+ // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function)
+ tilingPaddingVertical: 10,
+ // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function)
+ tilingPaddingHorizontal: 10,
+ // Gravity range (constant) for compounds
+ gravityRangeCompound: 1.5,
+ // Gravity force (constant) for compounds
+ gravityCompound: 1,
+ // Gravity range (constant)
+ gravityRange: 3.8,
+ // Initial cooling factor for incremental layout
+ initialEnergyOnIncremental: 0.5
+ };
+ function extend(defaults2, options) {
+ var obj = {};
+ for (var i in defaults2) {
+ obj[i] = defaults2[i];
+ }
+ for (var i in options) {
+ obj[i] = options[i];
+ }
+ return obj;
+ }
+ function _CoSELayout(_options) {
+ this.options = extend(defaults, _options);
+ getUserOptions(this.options);
+ }
+ var getUserOptions = function getUserOptions2(options) {
+ if (options.nodeRepulsion != null)
+ CoSEConstants.DEFAULT_REPULSION_STRENGTH = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = options.nodeRepulsion;
+ if (options.idealEdgeLength != null)
+ CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options.idealEdgeLength;
+ if (options.edgeElasticity != null)
+ CoSEConstants.DEFAULT_SPRING_STRENGTH = FDLayoutConstants.DEFAULT_SPRING_STRENGTH = options.edgeElasticity;
+ if (options.nestingFactor != null)
+ CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options.nestingFactor;
+ if (options.gravity != null)
+ CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options.gravity;
+ if (options.numIter != null)
+ CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options.numIter;
+ if (options.gravityRange != null)
+ CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options.gravityRange;
+ if (options.gravityCompound != null)
+ CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options.gravityCompound;
+ if (options.gravityRangeCompound != null)
+ CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options.gravityRangeCompound;
+ if (options.initialEnergyOnIncremental != null)
+ CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options.initialEnergyOnIncremental;
+ if (options.quality == "draft")
+ LayoutConstants.QUALITY = 0;
+ else if (options.quality == "proof")
+ LayoutConstants.QUALITY = 2;
+ else
+ LayoutConstants.QUALITY = 1;
+ CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options.nodeDimensionsIncludeLabels;
+ CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options.randomize;
+ CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options.animate;
+ CoSEConstants.TILE = options.tile;
+ CoSEConstants.TILING_PADDING_VERTICAL = typeof options.tilingPaddingVertical === "function" ? options.tilingPaddingVertical.call() : options.tilingPaddingVertical;
+ CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options.tilingPaddingHorizontal === "function" ? options.tilingPaddingHorizontal.call() : options.tilingPaddingHorizontal;
+ };
+ _CoSELayout.prototype.run = function() {
+ var ready;
+ var frameId;
+ var options = this.options;
+ this.idToLNode = {};
+ var layout = this.layout = new CoSELayout();
+ var self2 = this;
+ self2.stopped = false;
+ this.cy = this.options.cy;
+ this.cy.trigger({ type: "layoutstart", layout: this });
+ var gm = layout.newGraphManager();
+ this.gm = gm;
+ var nodes2 = this.options.eles.nodes();
+ var edges = this.options.eles.edges();
+ this.root = gm.addRoot();
+ this.processChildrenList(this.root, this.getTopMostNodes(nodes2), layout);
+ for (var i = 0; i < edges.length; i++) {
+ var edge = edges[i];
+ var sourceNode = this.idToLNode[edge.data("source")];
+ var targetNode = this.idToLNode[edge.data("target")];
+ if (sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) {
+ var e1 = gm.add(layout.newEdge(), sourceNode, targetNode);
+ e1.id = edge.id();
+ }
+ }
+ var getPositions = function getPositions2(ele, i2) {
+ if (typeof ele === "number") {
+ ele = i2;
+ }
+ var theId = ele.data("id");
+ var lNode = self2.idToLNode[theId];
+ return {
+ x: lNode.getRect().getCenterX(),
+ y: lNode.getRect().getCenterY()
+ };
+ };
+ var iterateAnimated = function iterateAnimated2() {
+ var afterReposition = function afterReposition2() {
+ if (options.fit) {
+ options.cy.fit(options.eles, options.padding);
+ }
+ if (!ready) {
+ ready = true;
+ self2.cy.one("layoutready", options.ready);
+ self2.cy.trigger({ type: "layoutready", layout: self2 });
+ }
+ };
+ var ticksPerFrame = self2.options.refresh;
+ var isDone;
+ for (var i2 = 0; i2 < ticksPerFrame && !isDone; i2++) {
+ isDone = self2.stopped || self2.layout.tick();
+ }
+ if (isDone) {
+ if (layout.checkLayoutSuccess() && !layout.isSubLayout) {
+ layout.doPostLayout();
+ }
+ if (layout.tilingPostLayout) {
+ layout.tilingPostLayout();
+ }
+ layout.isLayoutFinished = true;
+ self2.options.eles.nodes().positions(getPositions);
+ afterReposition();
+ self2.cy.one("layoutstop", self2.options.stop);
+ self2.cy.trigger({ type: "layoutstop", layout: self2 });
+ if (frameId) {
+ cancelAnimationFrame(frameId);
+ }
+ ready = false;
+ return;
+ }
+ var animationData = self2.layout.getPositionsData();
+ options.eles.nodes().positions(function(ele, i3) {
+ if (typeof ele === "number") {
+ ele = i3;
+ }
+ if (!ele.isParent()) {
+ var theId = ele.id();
+ var pNode = animationData[theId];
+ var temp = ele;
+ while (pNode == null) {
+ pNode = animationData[temp.data("parent")] || animationData["DummyCompound_" + temp.data("parent")];
+ animationData[theId] = pNode;
+ temp = temp.parent()[0];
+ if (temp == void 0) {
+ break;
+ }
+ }
+ if (pNode != null) {
+ return {
+ x: pNode.x,
+ y: pNode.y
+ };
+ } else {
+ return {
+ x: ele.position("x"),
+ y: ele.position("y")
+ };
+ }
+ }
+ });
+ afterReposition();
+ frameId = requestAnimationFrame(iterateAnimated2);
+ };
+ layout.addListener("layoutstarted", function() {
+ if (self2.options.animate === "during") {
+ frameId = requestAnimationFrame(iterateAnimated);
+ }
+ });
+ layout.runLayout();
+ if (this.options.animate !== "during") {
+ self2.options.eles.nodes().not(":parent").layoutPositions(self2, self2.options, getPositions);
+ ready = false;
+ }
+ return this;
+ };
+ _CoSELayout.prototype.getTopMostNodes = function(nodes2) {
+ var nodesMap = {};
+ for (var i = 0; i < nodes2.length; i++) {
+ nodesMap[nodes2[i].id()] = true;
+ }
+ var roots = nodes2.filter(function(ele, i2) {
+ if (typeof ele === "number") {
+ ele = i2;
+ }
+ var parent = ele.parent()[0];
+ while (parent != null) {
+ if (nodesMap[parent.id()]) {
+ return false;
+ }
+ parent = parent.parent()[0];
+ }
+ return true;
+ });
+ return roots;
+ };
+ _CoSELayout.prototype.processChildrenList = function(parent, children, layout) {
+ var size = children.length;
+ for (var i = 0; i < size; i++) {
+ var theChild = children[i];
+ var children_of_children = theChild.children();
+ var theNode;
+ var dimensions = theChild.layoutDimensions({
+ nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels
+ });
+ if (theChild.outerWidth() != null && theChild.outerHeight() != null) {
+ theNode = parent.add(new CoSENode(layout.graphManager, new PointD(theChild.position("x") - dimensions.w / 2, theChild.position("y") - dimensions.h / 2), new DimensionD2(parseFloat(dimensions.w), parseFloat(dimensions.h))));
+ } else {
+ theNode = parent.add(new CoSENode(this.graphManager));
+ }
+ theNode.id = theChild.data("id");
+ theNode.paddingLeft = parseInt(theChild.css("padding"));
+ theNode.paddingTop = parseInt(theChild.css("padding"));
+ theNode.paddingRight = parseInt(theChild.css("padding"));
+ theNode.paddingBottom = parseInt(theChild.css("padding"));
+ if (this.options.nodeDimensionsIncludeLabels) {
+ if (theChild.isParent()) {
+ var labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false }).w;
+ var labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false }).h;
+ var labelPos = theChild.css("text-halign");
+ theNode.labelWidth = labelWidth;
+ theNode.labelHeight = labelHeight;
+ theNode.labelPos = labelPos;
+ }
+ }
+ this.idToLNode[theChild.data("id")] = theNode;
+ if (isNaN(theNode.rect.x)) {
+ theNode.rect.x = 0;
+ }
+ if (isNaN(theNode.rect.y)) {
+ theNode.rect.y = 0;
+ }
+ if (children_of_children != null && children_of_children.length > 0) {
+ var theNewGraph;
+ theNewGraph = layout.getGraphManager().add(layout.newGraph(), theNode);
+ this.processChildrenList(theNewGraph, children_of_children, layout);
+ }
+ }
+ };
+ _CoSELayout.prototype.stop = function() {
+ this.stopped = true;
+ return this;
+ };
+ var register = function register2(cytoscape2) {
+ cytoscape2("layout", "cose-bilkent", _CoSELayout);
+ };
+ if (typeof cytoscape !== "undefined") {
+ register(cytoscape);
+ }
+ module2.exports = register;
+ }
+ /******/
+ ])
+ );
+ });
+})(cytoscapeCoseBilkent);
+const coseBilkent = /* @__PURE__ */ getDefaultExportFromCjs(cytoscapeCoseBilkentExports);
+cytoscape$1.use(coseBilkent);
+function drawNodes(svg, mindmap, section, conf) {
+ svgDraw.drawNode(svg, mindmap, section, conf);
+ if (mindmap.children) {
+ mindmap.children.forEach((child, index) => {
+ drawNodes(svg, child, section < 0 ? index : section, conf);
+ });
+ }
+}
+function drawEdges(edgesEl, cy) {
+ cy.edges().map((edge, id) => {
+ const data = edge.data();
+ if (edge[0]._private.bodyBounds) {
+ const bounds = edge[0]._private.rscratch;
+ log.trace("Edge: ", id, data);
+ edgesEl.insert("path").attr(
+ "d",
+ `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} `
+ ).attr("class", "edge section-edge-" + data.section + " edge-depth-" + data.depth);
+ }
+ });
+}
+function addNodes(mindmap, cy, conf, level) {
+ cy.add({
+ group: "nodes",
+ data: {
+ id: mindmap.id,
+ labelText: mindmap.descr,
+ height: mindmap.height,
+ width: mindmap.width,
+ level,
+ nodeId: mindmap.id,
+ padding: mindmap.padding,
+ type: mindmap.type
+ },
+ position: {
+ x: mindmap.x,
+ y: mindmap.y
+ }
+ });
+ if (mindmap.children) {
+ mindmap.children.forEach((child) => {
+ addNodes(child, cy, conf, level + 1);
+ cy.add({
+ group: "edges",
+ data: {
+ id: `${mindmap.id}_${child.id}`,
+ source: mindmap.id,
+ target: child.id,
+ depth: level,
+ section: child.section
+ }
+ });
+ });
+ }
+}
+function layoutMindmap(node, conf) {
+ return new Promise((resolve) => {
+ const renderEl = select("body").append("div").attr("id", "cy").attr("style", "display:none");
+ const cy = cytoscape$1({
+ container: document.getElementById("cy"),
+ // container to render in
+ style: [
+ {
+ selector: "edge",
+ style: {
+ "curve-style": "bezier"
+ }
+ }
+ ]
+ });
+ renderEl.remove();
+ addNodes(node, cy, conf, 0);
+ cy.nodes().forEach(function(n) {
+ n.layoutDimensions = () => {
+ const data = n.data();
+ return { w: data.width, h: data.height };
+ };
+ });
+ cy.layout({
+ name: "cose-bilkent",
+ quality: "proof",
+ // headless: true,
+ styleEnabled: false,
+ animate: false
+ }).run();
+ cy.ready((e) => {
+ log.info("Ready", e);
+ resolve(cy);
+ });
+ });
+}
+function positionNodes(cy) {
+ cy.nodes().map((node, id) => {
+ const data = node.data();
+ data.x = node.position().x;
+ data.y = node.position().y;
+ svgDraw.positionNode(data);
+ const el = getElementById(data.nodeId);
+ log.info("Id:", id, "Position: (", node.position().x, ", ", node.position().y, ")", data);
+ el.attr(
+ "transform",
+ `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})`
+ );
+ el.attr("attr", `apa-${id})`);
+ });
+}
+const draw = async (text, id, version, diagObj) => {
+ const conf = getConfig();
+ conf.htmlLabels = false;
+ diagObj.db.clear();
+ diagObj.parser.parse(text);
+ log.debug("Rendering mindmap diagram\n" + text, diagObj.parser);
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const svg = root.select("#" + id);
+ svg.append("g");
+ const mm = diagObj.db.getMindmap();
+ const edgesElem = svg.append("g");
+ edgesElem.attr("class", "mindmap-edges");
+ const nodesElem = svg.append("g");
+ nodesElem.attr("class", "mindmap-nodes");
+ drawNodes(nodesElem, mm, -1, conf);
+ const cy = await layoutMindmap(mm, conf);
+ drawEdges(edgesElem, cy);
+ positionNodes(cy);
+ setupGraphViewbox(void 0, svg, conf.mindmap.padding, conf.mindmap.useMaxWidth);
+};
+const mindmapRenderer = {
+ draw
+};
+const genSections = (options) => {
+ let sections = "";
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
+ options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i];
+ if (isDark(options["lineColor" + i])) {
+ options["lineColor" + i] = lighten(options["lineColor" + i], 20);
+ } else {
+ options["lineColor" + i] = darken(options["lineColor" + i], 20);
+ }
+ }
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
+ const sw = "" + (17 - 3 * i);
+ sections += `
+ .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path {
+ fill: ${options["cScale" + i]};
+ }
+ .section-${i - 1} text {
+ fill: ${options["cScaleLabel" + i]};
+ }
+ .node-icon-${i - 1} {
+ font-size: 40px;
+ color: ${options["cScaleLabel" + i]};
+ }
+ .section-edge-${i - 1}{
+ stroke: ${options["cScale" + i]};
+ }
+ .edge-depth-${i - 1}{
+ stroke-width: ${sw};
+ }
+ .section-${i - 1} line {
+ stroke: ${options["cScaleInv" + i]} ;
+ stroke-width: 3;
+ }
+
+ .disabled, .disabled circle, .disabled text {
+ fill: lightgray;
+ }
+ .disabled text {
+ fill: #efefef;
+ }
+ `;
+ }
+ return sections;
+};
+const getStyles = (options) => `
+ .edge {
+ stroke-width: 3;
+ }
+ ${genSections(options)}
+ .section-root rect, .section-root path, .section-root circle, .section-root polygon {
+ fill: ${options.git0};
+ }
+ .section-root text {
+ fill: ${options.gitBranchLabel0};
+ }
+ .icon-container {
+ height:100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .edge {
+ fill: none;
+ }
+ .mindmap-node-label {
+ dy: 1em;
+ alignment-baseline: middle;
+ text-anchor: middle;
+ dominant-baseline: middle;
+ text-align: center;
+ }
+`;
+const mindmapStyles = getStyles;
+const diagram = {
+ db: mindmapDb,
+ renderer: mindmapRenderer,
+ parser: mindmapParser,
+ styles: mindmapStyles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=mindmap-definition-57c198db.js.map
diff --git a/scopegraphs-render-docs/doc/js/mindmap-definition-65b51176.js b/scopegraphs-render-docs/doc/js/mindmap-definition-65b51176.js
new file mode 100644
index 0000000..ec8d0a0
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mindmap-definition-65b51176.js
@@ -0,0 +1,1213 @@
+import { b as sanitizeText$1, g as getConfig, l as log } from "./commonDb-573409be.js";
+import { select } from "d3";
+import { s as setupGraphViewbox } from "./utils-d622194a.js";
+import { c as createText } from "./createText-1f5f8f92.js";
+import cytoscape from "cytoscape/dist/cytoscape.umd.js";
+import coseBilkent from "cytoscape-cose-bilkent";
+import { isDark, lighten, darken } from "khroma";
+import "dompurify";
+import "dayjs";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+import "./mermaidAPI-3ae0f2f0.js";
+import "stylis";
+import "lodash-es/isEmpty.js";
+import "@khanacademy/simple-markdown";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mindMap": 4, "spaceLines": 5, "SPACELINE": 6, "NL": 7, "MINDMAP": 8, "document": 9, "stop": 10, "EOF": 11, "statement": 12, "SPACELIST": 13, "node": 14, "ICON": 15, "CLASS": 16, "nodeWithId": 17, "nodeWithoutId": 18, "NODE_DSTART": 19, "NODE_DESCR": 20, "NODE_DEND": 21, "NODE_ID": 22, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" },
+ productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 6:
+ case 7:
+ return yy;
+ case 8:
+ yy.getLogger().trace("Stop NL ");
+ break;
+ case 9:
+ yy.getLogger().trace("Stop EOF ");
+ break;
+ case 11:
+ yy.getLogger().trace("Stop NL2 ");
+ break;
+ case 12:
+ yy.getLogger().trace("Stop EOF2 ");
+ break;
+ case 15:
+ yy.getLogger().info("Node: ", $$[$0].id);
+ yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);
+ break;
+ case 16:
+ yy.getLogger().trace("Icon: ", $$[$0]);
+ yy.decorateNode({ icon: $$[$0] });
+ break;
+ case 17:
+ case 21:
+ yy.decorateNode({ class: $$[$0] });
+ break;
+ case 18:
+ yy.getLogger().trace("SPACELIST");
+ break;
+ case 19:
+ yy.getLogger().trace("Node: ", $$[$0].id);
+ yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);
+ break;
+ case 20:
+ yy.decorateNode({ icon: $$[$0] });
+ break;
+ case 25:
+ yy.getLogger().trace("node found ..", $$[$0 - 2]);
+ this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
+ break;
+ case 26:
+ this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT };
+ break;
+ case 27:
+ yy.getLogger().trace("node found ..", $$[$0 - 3]);
+ this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])],
+ defaultActions: { 2: [2, 1], 6: [2, 2] },
+ parseError: function parseError2(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError2(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ yy.getLogger().trace("Found comment", yy_.yytext);
+ return 6;
+ case 1:
+ return 8;
+ case 2:
+ this.begin("CLASS");
+ break;
+ case 3:
+ this.popState();
+ return 16;
+ case 4:
+ this.popState();
+ break;
+ case 5:
+ yy.getLogger().trace("Begin icon");
+ this.begin("ICON");
+ break;
+ case 6:
+ yy.getLogger().trace("SPACELINE");
+ return 6;
+ case 7:
+ return 7;
+ case 8:
+ return 15;
+ case 9:
+ yy.getLogger().trace("end icon");
+ this.popState();
+ break;
+ case 10:
+ yy.getLogger().trace("Exploding node");
+ this.begin("NODE");
+ return 19;
+ case 11:
+ yy.getLogger().trace("Cloud");
+ this.begin("NODE");
+ return 19;
+ case 12:
+ yy.getLogger().trace("Explosion Bang");
+ this.begin("NODE");
+ return 19;
+ case 13:
+ yy.getLogger().trace("Cloud Bang");
+ this.begin("NODE");
+ return 19;
+ case 14:
+ this.begin("NODE");
+ return 19;
+ case 15:
+ this.begin("NODE");
+ return 19;
+ case 16:
+ this.begin("NODE");
+ return 19;
+ case 17:
+ this.begin("NODE");
+ return 19;
+ case 18:
+ return 13;
+ case 19:
+ return 22;
+ case 20:
+ return 11;
+ case 21:
+ this.begin("NSTR2");
+ break;
+ case 22:
+ return "NODE_DESCR";
+ case 23:
+ this.popState();
+ break;
+ case 24:
+ yy.getLogger().trace("Starting NSTR");
+ this.begin("NSTR");
+ break;
+ case 25:
+ yy.getLogger().trace("description:", yy_.yytext);
+ return "NODE_DESCR";
+ case 26:
+ this.popState();
+ break;
+ case 27:
+ this.popState();
+ yy.getLogger().trace("node end ))");
+ return "NODE_DEND";
+ case 28:
+ this.popState();
+ yy.getLogger().trace("node end )");
+ return "NODE_DEND";
+ case 29:
+ this.popState();
+ yy.getLogger().trace("node end ...", yy_.yytext);
+ return "NODE_DEND";
+ case 30:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
+ case 31:
+ this.popState();
+ yy.getLogger().trace("node end (-");
+ return "NODE_DEND";
+ case 32:
+ this.popState();
+ yy.getLogger().trace("node end (-");
+ return "NODE_DEND";
+ case 33:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
+ case 34:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
+ case 35:
+ yy.getLogger().trace("Long description:", yy_.yytext);
+ return 20;
+ case 36:
+ yy.getLogger().trace("Long description:", yy_.yytext);
+ return 20;
+ }
+ },
+ rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\-\)\{\}]+)/i, /^(?:$)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i],
+ conditions: { "CLASS": { "rules": [3, 4], "inclusive": false }, "ICON": { "rules": [8, 9], "inclusive": false }, "NSTR2": { "rules": [22, 23], "inclusive": false }, "NSTR": { "rules": [25, 26], "inclusive": false }, "NODE": { "rules": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const mindmapParser = parser;
+const sanitizeText = (text) => sanitizeText$1(text, getConfig());
+let nodes = [];
+let cnt = 0;
+let elements = {};
+const clear = () => {
+ nodes = [];
+ cnt = 0;
+ elements = {};
+};
+const getParent = function(level) {
+ for (let i = nodes.length - 1; i >= 0; i--) {
+ if (nodes[i].level < level) {
+ return nodes[i];
+ }
+ }
+ return null;
+};
+const getMindmap = () => {
+ return nodes.length > 0 ? nodes[0] : null;
+};
+const addNode = (level, id, descr, type) => {
+ log.info("addNode", level, id, descr, type);
+ const conf = getConfig();
+ const node = {
+ id: cnt++,
+ nodeId: sanitizeText(id),
+ level,
+ descr: sanitizeText(descr),
+ type,
+ children: [],
+ width: getConfig().mindmap.maxNodeWidth
+ };
+ switch (node.type) {
+ case nodeType.ROUNDED_RECT:
+ node.padding = 2 * conf.mindmap.padding;
+ break;
+ case nodeType.RECT:
+ node.padding = 2 * conf.mindmap.padding;
+ break;
+ case nodeType.HEXAGON:
+ node.padding = 2 * conf.mindmap.padding;
+ break;
+ default:
+ node.padding = conf.mindmap.padding;
+ }
+ const parent = getParent(level);
+ if (parent) {
+ parent.children.push(node);
+ nodes.push(node);
+ } else {
+ if (nodes.length === 0) {
+ nodes.push(node);
+ } else {
+ let error = new Error(
+ 'There can be only one root. No parent could be found for ("' + node.descr + '")'
+ );
+ error.hash = {
+ text: "branch " + name,
+ token: "branch " + name,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"checkout ' + name + '"']
+ };
+ throw error;
+ }
+ }
+};
+const nodeType = {
+ DEFAULT: 0,
+ NO_BORDER: 0,
+ ROUNDED_RECT: 1,
+ RECT: 2,
+ CIRCLE: 3,
+ CLOUD: 4,
+ BANG: 5,
+ HEXAGON: 6
+};
+const getType = (startStr, endStr) => {
+ log.debug("In get type", startStr, endStr);
+ switch (startStr) {
+ case "[":
+ return nodeType.RECT;
+ case "(":
+ return endStr === ")" ? nodeType.ROUNDED_RECT : nodeType.CLOUD;
+ case "((":
+ return nodeType.CIRCLE;
+ case ")":
+ return nodeType.CLOUD;
+ case "))":
+ return nodeType.BANG;
+ case "{{":
+ return nodeType.HEXAGON;
+ default:
+ return nodeType.DEFAULT;
+ }
+};
+const setElementForId = (id, element) => {
+ elements[id] = element;
+};
+const decorateNode = (decoration) => {
+ const node = nodes[nodes.length - 1];
+ if (decoration && decoration.icon) {
+ node.icon = sanitizeText(decoration.icon);
+ }
+ if (decoration && decoration.class) {
+ node.class = sanitizeText(decoration.class);
+ }
+};
+const type2Str = (type) => {
+ switch (type) {
+ case nodeType.DEFAULT:
+ return "no-border";
+ case nodeType.RECT:
+ return "rect";
+ case nodeType.ROUNDED_RECT:
+ return "rounded-rect";
+ case nodeType.CIRCLE:
+ return "circle";
+ case nodeType.CLOUD:
+ return "cloud";
+ case nodeType.BANG:
+ return "bang";
+ case nodeType.HEXAGON:
+ return "hexgon";
+ default:
+ return "no-border";
+ }
+};
+let parseError;
+const setErrorHandler = (handler) => {
+ parseError = handler;
+};
+const getLogger = () => log;
+const getNodeById = (id) => nodes[id];
+const getElementById = (id) => elements[id];
+const mindmapDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ addNode,
+ clear,
+ decorateNode,
+ getElementById,
+ getLogger,
+ getMindmap,
+ getNodeById,
+ getType,
+ nodeType,
+ get parseError() {
+ return parseError;
+ },
+ sanitizeText,
+ setElementForId,
+ setErrorHandler,
+ type2Str
+}, Symbol.toStringTag, { value: "Module" }));
+const MAX_SECTIONS = 12;
+const defaultBkg = function(elem, node, section) {
+ const rd = 5;
+ elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr(
+ "d",
+ `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`
+ );
+ elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height);
+};
+const rectBkg = function(elem, node) {
+ elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("width", node.width);
+};
+const cloudBkg = function(elem, node) {
+ const w = node.width;
+ const h = node.height;
+ const r1 = 0.15 * w;
+ const r2 = 0.25 * w;
+ const r3 = 0.35 * w;
+ const r4 = 0.2 * w;
+ elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr(
+ "d",
+ `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1}
+ a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1}
+ a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2}
+
+ a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35}
+ a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65}
+
+ a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15}
+ a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0}
+ a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15}
+
+ a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35}
+ a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65}
+
+ H0 V0 Z`
+ );
+};
+const bangBkg = function(elem, node) {
+ const w = node.width;
+ const h = node.height;
+ const r = 0.15 * w;
+ elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr(
+ "d",
+ `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1}
+ a${r},${r} 1 0,0 ${w * 0.25},${0}
+ a${r},${r} 1 0,0 ${w * 0.25},${0}
+ a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1}
+
+ a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33}
+ a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34}
+ a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33}
+
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15}
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}
+ a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15}
+
+ a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33}
+ a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34}
+ a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33}
+
+ H0 V0 Z`
+ );
+};
+const circleBkg = function(elem, node) {
+ elem.append("circle").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("r", node.width / 2);
+};
+function insertPolygonShape(parent, w, h, points, node) {
+ return parent.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d) {
+ return d.x + "," + d.y;
+ }).join(" ")
+ ).attr("transform", "translate(" + (node.width - w) / 2 + ", " + h + ")");
+}
+const hexagonBkg = function(elem, node) {
+ const h = node.height;
+ const f = 4;
+ const m = h / f;
+ const w = node.width - node.padding + 2 * m;
+ const points = [
+ { x: m, y: 0 },
+ { x: w - m, y: 0 },
+ { x: w, y: -h / 2 },
+ { x: w - m, y: -h },
+ { x: m, y: -h },
+ { x: 0, y: -h / 2 }
+ ];
+ insertPolygonShape(elem, w, h, points, node);
+};
+const roundedRectBkg = function(elem, node) {
+ elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("rx", node.padding).attr("ry", node.padding).attr("width", node.width);
+};
+const drawNode = function(elem, node, fullSection, conf) {
+ const htmlLabels = conf.htmlLabels;
+ const section = fullSection % (MAX_SECTIONS - 1);
+ const nodeElem = elem.append("g");
+ node.section = section;
+ let sectionClass = "section-" + section;
+ if (section < 0) {
+ sectionClass += " section-root";
+ }
+ nodeElem.attr("class", (node.class ? node.class + " " : "") + "mindmap-node " + sectionClass);
+ const bkgElem = nodeElem.append("g");
+ const textElem = nodeElem.append("g");
+ const description = node.descr.replace(/(
)/g, "\n");
+ createText(textElem, description, {
+ useHtmlLabels: htmlLabels,
+ width: node.width,
+ classes: "mindmap-node-label"
+ });
+ if (!htmlLabels) {
+ textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle");
+ }
+ const bbox = textElem.node().getBBox();
+ const fontSize = conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize;
+ node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;
+ node.width = bbox.width + 2 * node.padding;
+ if (node.icon) {
+ if (node.type === nodeType.CIRCLE) {
+ node.height += 50;
+ node.width += 50;
+ const icon = nodeElem.append("foreignObject").attr("height", "50px").attr("width", node.width).attr("style", "text-align: center;");
+ icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon);
+ textElem.attr(
+ "transform",
+ "translate(" + node.width / 2 + ", " + (node.height / 2 - 1.5 * node.padding) + ")"
+ );
+ } else {
+ node.width += 50;
+ const orgHeight = node.height;
+ node.height = Math.max(orgHeight, 60);
+ const heightDiff = Math.abs(node.height - orgHeight);
+ const icon = nodeElem.append("foreignObject").attr("width", "60px").attr("height", node.height).attr("style", "text-align: center;margin-top:" + heightDiff / 2 + "px;");
+ icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon);
+ textElem.attr(
+ "transform",
+ "translate(" + (25 + node.width / 2) + ", " + (heightDiff / 2 + node.padding / 2) + ")"
+ );
+ }
+ } else {
+ if (!htmlLabels) {
+ const dx = node.width / 2;
+ const dy = node.padding / 2;
+ textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
+ } else {
+ const dx = (node.width - bbox.width) / 2;
+ const dy = (node.height - bbox.height) / 2;
+ textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
+ }
+ }
+ switch (node.type) {
+ case nodeType.DEFAULT:
+ defaultBkg(bkgElem, node, section);
+ break;
+ case nodeType.ROUNDED_RECT:
+ roundedRectBkg(bkgElem, node);
+ break;
+ case nodeType.RECT:
+ rectBkg(bkgElem, node);
+ break;
+ case nodeType.CIRCLE:
+ bkgElem.attr("transform", "translate(" + node.width / 2 + ", " + +node.height / 2 + ")");
+ circleBkg(bkgElem, node);
+ break;
+ case nodeType.CLOUD:
+ cloudBkg(bkgElem, node);
+ break;
+ case nodeType.BANG:
+ bangBkg(bkgElem, node);
+ break;
+ case nodeType.HEXAGON:
+ hexagonBkg(bkgElem, node);
+ break;
+ }
+ setElementForId(node.id, nodeElem);
+ return node.height;
+};
+const drawEdge = function drawEdge2(edgesElem, mindmap, parent, depth, fullSection) {
+ const section = fullSection % (MAX_SECTIONS - 1);
+ const sx = parent.x + parent.width / 2;
+ const sy = parent.y + parent.height / 2;
+ const ex = mindmap.x + mindmap.width / 2;
+ const ey = mindmap.y + mindmap.height / 2;
+ const mx = ex > sx ? sx + Math.abs(sx - ex) / 2 : sx - Math.abs(sx - ex) / 2;
+ const my = ey > sy ? sy + Math.abs(sy - ey) / 2 : sy - Math.abs(sy - ey) / 2;
+ const qx = ex > sx ? Math.abs(sx - mx) / 2 + sx : -Math.abs(sx - mx) / 2 + sx;
+ const qy = ey > sy ? Math.abs(sy - my) / 2 + sy : -Math.abs(sy - my) / 2 + sy;
+ edgesElem.append("path").attr(
+ "d",
+ parent.direction === "TB" || parent.direction === "BT" ? `M${sx},${sy} Q${sx},${qy} ${mx},${my} T${ex},${ey}` : `M${sx},${sy} Q${qx},${sy} ${mx},${my} T${ex},${ey}`
+ ).attr("class", "edge section-edge-" + section + " edge-depth-" + depth);
+};
+const positionNode = function(node) {
+ const nodeElem = getElementById(node.id);
+ const x = node.x || 0;
+ const y = node.y || 0;
+ nodeElem.attr("transform", "translate(" + x + "," + y + ")");
+};
+const svgDraw = { drawNode, positionNode, drawEdge };
+cytoscape.use(coseBilkent);
+function drawNodes(svg, mindmap, section, conf) {
+ svgDraw.drawNode(svg, mindmap, section, conf);
+ if (mindmap.children) {
+ mindmap.children.forEach((child, index) => {
+ drawNodes(svg, child, section < 0 ? index : section, conf);
+ });
+ }
+}
+function drawEdges(edgesEl, cy) {
+ cy.edges().map((edge, id) => {
+ const data = edge.data();
+ if (edge[0]._private.bodyBounds) {
+ const bounds = edge[0]._private.rscratch;
+ log.trace("Edge: ", id, data);
+ edgesEl.insert("path").attr(
+ "d",
+ `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} `
+ ).attr("class", "edge section-edge-" + data.section + " edge-depth-" + data.depth);
+ }
+ });
+}
+function addNodes(mindmap, cy, conf, level) {
+ cy.add({
+ group: "nodes",
+ data: {
+ id: mindmap.id,
+ labelText: mindmap.descr,
+ height: mindmap.height,
+ width: mindmap.width,
+ level,
+ nodeId: mindmap.id,
+ padding: mindmap.padding,
+ type: mindmap.type
+ },
+ position: {
+ x: mindmap.x,
+ y: mindmap.y
+ }
+ });
+ if (mindmap.children) {
+ mindmap.children.forEach((child) => {
+ addNodes(child, cy, conf, level + 1);
+ cy.add({
+ group: "edges",
+ data: {
+ id: `${mindmap.id}_${child.id}`,
+ source: mindmap.id,
+ target: child.id,
+ depth: level,
+ section: child.section
+ }
+ });
+ });
+ }
+}
+function layoutMindmap(node, conf) {
+ return new Promise((resolve) => {
+ const renderEl = select("body").append("div").attr("id", "cy").attr("style", "display:none");
+ const cy = cytoscape({
+ container: document.getElementById("cy"),
+ // container to render in
+ style: [
+ {
+ selector: "edge",
+ style: {
+ "curve-style": "bezier"
+ }
+ }
+ ]
+ });
+ renderEl.remove();
+ addNodes(node, cy, conf, 0);
+ cy.nodes().forEach(function(n) {
+ n.layoutDimensions = () => {
+ const data = n.data();
+ return { w: data.width, h: data.height };
+ };
+ });
+ cy.layout({
+ name: "cose-bilkent",
+ quality: "proof",
+ // headless: true,
+ styleEnabled: false,
+ animate: false
+ }).run();
+ cy.ready((e) => {
+ log.info("Ready", e);
+ resolve(cy);
+ });
+ });
+}
+function positionNodes(cy) {
+ cy.nodes().map((node, id) => {
+ const data = node.data();
+ data.x = node.position().x;
+ data.y = node.position().y;
+ svgDraw.positionNode(data);
+ const el = getElementById(data.nodeId);
+ log.info("Id:", id, "Position: (", node.position().x, ", ", node.position().y, ")", data);
+ el.attr(
+ "transform",
+ `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})`
+ );
+ el.attr("attr", `apa-${id})`);
+ });
+}
+const draw = async (text, id, version, diagObj) => {
+ const conf = getConfig();
+ conf.htmlLabels = false;
+ diagObj.db.clear();
+ diagObj.parser.parse(text);
+ log.debug("Rendering mindmap diagram\n" + text, diagObj.parser);
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const svg = root.select("#" + id);
+ svg.append("g");
+ const mm = diagObj.db.getMindmap();
+ const edgesElem = svg.append("g");
+ edgesElem.attr("class", "mindmap-edges");
+ const nodesElem = svg.append("g");
+ nodesElem.attr("class", "mindmap-nodes");
+ drawNodes(nodesElem, mm, -1, conf);
+ const cy = await layoutMindmap(mm, conf);
+ drawEdges(edgesElem, cy);
+ positionNodes(cy);
+ setupGraphViewbox(void 0, svg, conf.mindmap.padding, conf.mindmap.useMaxWidth);
+};
+const mindmapRenderer = {
+ draw
+};
+const genSections = (options) => {
+ let sections = "";
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
+ options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i];
+ if (isDark(options["lineColor" + i])) {
+ options["lineColor" + i] = lighten(options["lineColor" + i], 20);
+ } else {
+ options["lineColor" + i] = darken(options["lineColor" + i], 20);
+ }
+ }
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
+ const sw = "" + (17 - 3 * i);
+ sections += `
+ .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path {
+ fill: ${options["cScale" + i]};
+ }
+ .section-${i - 1} text {
+ fill: ${options["cScaleLabel" + i]};
+ }
+ .node-icon-${i - 1} {
+ font-size: 40px;
+ color: ${options["cScaleLabel" + i]};
+ }
+ .section-edge-${i - 1}{
+ stroke: ${options["cScale" + i]};
+ }
+ .edge-depth-${i - 1}{
+ stroke-width: ${sw};
+ }
+ .section-${i - 1} line {
+ stroke: ${options["cScaleInv" + i]} ;
+ stroke-width: 3;
+ }
+
+ .disabled, .disabled circle, .disabled text {
+ fill: lightgray;
+ }
+ .disabled text {
+ fill: #efefef;
+ }
+ `;
+ }
+ return sections;
+};
+const getStyles = (options) => `
+ .edge {
+ stroke-width: 3;
+ }
+ ${genSections(options)}
+ .section-root rect, .section-root path, .section-root circle, .section-root polygon {
+ fill: ${options.git0};
+ }
+ .section-root text {
+ fill: ${options.gitBranchLabel0};
+ }
+ .icon-container {
+ height:100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .edge {
+ fill: none;
+ }
+ .mindmap-node-label {
+ dy: 1em;
+ alignment-baseline: middle;
+ text-anchor: middle;
+ dominant-baseline: middle;
+ text-align: center;
+ }
+`;
+const mindmapStyles = getStyles;
+const diagram = {
+ db: mindmapDb,
+ renderer: mindmapRenderer,
+ parser: mindmapParser,
+ styles: mindmapStyles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=mindmap-definition-65b51176.js.map
diff --git a/scopegraphs-render-docs/doc/js/mindmap-definition-b90592f0.js b/scopegraphs-render-docs/doc/js/mindmap-definition-b90592f0.js
new file mode 100644
index 0000000..0d4c234
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/mindmap-definition-b90592f0.js
@@ -0,0 +1,18623 @@
+import { b as yp, g as nn, l as qr, P as Ca, T as mp, h as ei, U as bp, V as Ep } from "./commonDb-41f8b4c5.js";
+import { B as wp } from "./utils-8ea37061.js";
+import { c as xp } from "./createText-23817c58.js";
+import { i as Tp } from "./is_dark-a2294536.js";
+import "./mermaidAPI-67f627de.js";
+var Ki = function() {
+ var he = function(j, Y, te, L) {
+ for (te = te || {}, L = j.length; L--; te[j[L]] = Y)
+ ;
+ return te;
+ }, fe = [1, 4], ee = [1, 13], ve = [1, 12], H = [1, 15], O = [1, 16], T = [1, 20], x = [1, 19], S = [6, 7, 8], G = [1, 26], U = [1, 24], P = [1, 25], K = [6, 7, 11], D = [1, 6, 13, 15, 16, 19, 22], V = [1, 33], _ = [1, 34], Q = [1, 6, 7, 11, 13, 15, 16, 19, 22], ne = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, mindMap: 4, spaceLines: 5, SPACELINE: 6, NL: 7, MINDMAP: 8, document: 9, stop: 10, EOF: 11, statement: 12, SPACELIST: 13, node: 14, ICON: 15, CLASS: 16, nodeWithId: 17, nodeWithoutId: 18, NODE_DSTART: 19, NODE_DESCR: 20, NODE_DEND: 21, NODE_ID: 22, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" },
+ productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]],
+ performAction: function(Y, te, L, $, k, q, ce) {
+ var pe = q.length - 1;
+ switch (k) {
+ case 6:
+ case 7:
+ return $;
+ case 8:
+ $.getLogger().trace("Stop NL ");
+ break;
+ case 9:
+ $.getLogger().trace("Stop EOF ");
+ break;
+ case 11:
+ $.getLogger().trace("Stop NL2 ");
+ break;
+ case 12:
+ $.getLogger().trace("Stop EOF2 ");
+ break;
+ case 15:
+ $.getLogger().info("Node: ", q[pe].id), $.addNode(q[pe - 1].length, q[pe].id, q[pe].descr, q[pe].type);
+ break;
+ case 16:
+ $.getLogger().trace("Icon: ", q[pe]), $.decorateNode({ icon: q[pe] });
+ break;
+ case 17:
+ case 21:
+ $.decorateNode({ class: q[pe] });
+ break;
+ case 18:
+ $.getLogger().trace("SPACELIST");
+ break;
+ case 19:
+ $.getLogger().trace("Node: ", q[pe].id), $.addNode(0, q[pe].id, q[pe].descr, q[pe].type);
+ break;
+ case 20:
+ $.decorateNode({ icon: q[pe] });
+ break;
+ case 25:
+ $.getLogger().trace("node found ..", q[pe - 2]), this.$ = { id: q[pe - 1], descr: q[pe - 1], type: $.getType(q[pe - 2], q[pe]) };
+ break;
+ case 26:
+ this.$ = { id: q[pe], descr: q[pe], type: $.nodeType.DEFAULT };
+ break;
+ case 27:
+ $.getLogger().trace("node found ..", q[pe - 3]), this.$ = { id: q[pe - 3], descr: q[pe - 1], type: $.getType(q[pe - 2], q[pe]) };
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: fe }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: fe }, { 6: ee, 7: [1, 10], 9: 9, 12: 11, 13: ve, 14: 14, 15: H, 16: O, 17: 17, 18: 18, 19: T, 22: x }, he(S, [2, 3]), { 1: [2, 2] }, he(S, [2, 4]), he(S, [2, 5]), { 1: [2, 6], 6: ee, 12: 21, 13: ve, 14: 14, 15: H, 16: O, 17: 17, 18: 18, 19: T, 22: x }, { 6: ee, 9: 22, 12: 11, 13: ve, 14: 14, 15: H, 16: O, 17: 17, 18: 18, 19: T, 22: x }, { 6: G, 7: U, 10: 23, 11: P }, he(K, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: T, 22: x }), he(K, [2, 18]), he(K, [2, 19]), he(K, [2, 20]), he(K, [2, 21]), he(K, [2, 23]), he(K, [2, 24]), he(K, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: G, 7: U, 10: 32, 11: P }, { 1: [2, 7], 6: ee, 12: 21, 13: ve, 14: 14, 15: H, 16: O, 17: 17, 18: 18, 19: T, 22: x }, he(D, [2, 14], { 7: V, 11: _ }), he(Q, [2, 8]), he(Q, [2, 9]), he(Q, [2, 10]), he(K, [2, 15]), he(K, [2, 16]), he(K, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, he(D, [2, 13], { 7: V, 11: _ }), he(Q, [2, 11]), he(Q, [2, 12]), { 21: [1, 37] }, he(K, [2, 25]), he(K, [2, 27])],
+ defaultActions: { 2: [2, 1], 6: [2, 2] },
+ parseError: function(Y, te) {
+ if (te.recoverable)
+ this.trace(Y);
+ else {
+ var L = new Error(Y);
+ throw L.hash = te, L;
+ }
+ },
+ parse: function(Y) {
+ var te = this, L = [0], $ = [], k = [null], q = [], ce = this.table, pe = "", Ae = 0, Ne = 0, _e = 2, tt = 1, ct = q.slice.call(arguments, 1), Pe = Object.create(this.lexer), $e = { yy: {} };
+ for (var Xe in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, Xe) && ($e.yy[Xe] = this.yy[Xe]);
+ Pe.setInput(Y, $e.yy), $e.yy.lexer = Pe, $e.yy.parser = this, typeof Pe.yylloc > "u" && (Pe.yylloc = {});
+ var rt = Pe.yylloc;
+ q.push(rt);
+ var lt = Pe.options && Pe.options.ranges;
+ typeof $e.yy.parseError == "function" ? this.parseError = $e.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function nt() {
+ var jt;
+ return jt = $.pop() || Pe.lex() || tt, typeof jt != "number" && (jt instanceof Array && ($ = jt, jt = $.pop()), jt = te.symbols_[jt] || jt), jt;
+ }
+ for (var je, pt, Et, kt, vt = {}, vr, qt, on, Kr; ; ) {
+ if (pt = L[L.length - 1], this.defaultActions[pt] ? Et = this.defaultActions[pt] : ((je === null || typeof je > "u") && (je = nt()), Et = ce[pt] && ce[pt][je]), typeof Et > "u" || !Et.length || !Et[0]) {
+ var Da = "";
+ Kr = [];
+ for (vr in ce[pt])
+ this.terminals_[vr] && vr > _e && Kr.push("'" + this.terminals_[vr] + "'");
+ Pe.showPosition ? Da = "Parse error on line " + (Ae + 1) + `:
+` + Pe.showPosition() + `
+Expecting ` + Kr.join(", ") + ", got '" + (this.terminals_[je] || je) + "'" : Da = "Parse error on line " + (Ae + 1) + ": Unexpected " + (je == tt ? "end of input" : "'" + (this.terminals_[je] || je) + "'"), this.parseError(Da, {
+ text: Pe.match,
+ token: this.terminals_[je] || je,
+ line: Pe.yylineno,
+ loc: rt,
+ expected: Kr
+ });
+ }
+ if (Et[0] instanceof Array && Et.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + pt + ", token: " + je);
+ switch (Et[0]) {
+ case 1:
+ L.push(je), k.push(Pe.yytext), q.push(Pe.yylloc), L.push(Et[1]), je = null, Ne = Pe.yyleng, pe = Pe.yytext, Ae = Pe.yylineno, rt = Pe.yylloc;
+ break;
+ case 2:
+ if (qt = this.productions_[Et[1]][1], vt.$ = k[k.length - qt], vt._$ = {
+ first_line: q[q.length - (qt || 1)].first_line,
+ last_line: q[q.length - 1].last_line,
+ first_column: q[q.length - (qt || 1)].first_column,
+ last_column: q[q.length - 1].last_column
+ }, lt && (vt._$.range = [
+ q[q.length - (qt || 1)].range[0],
+ q[q.length - 1].range[1]
+ ]), kt = this.performAction.apply(vt, [
+ pe,
+ Ne,
+ Ae,
+ $e.yy,
+ Et[1],
+ k,
+ q
+ ].concat(ct)), typeof kt < "u")
+ return kt;
+ qt && (L = L.slice(0, -1 * qt * 2), k = k.slice(0, -1 * qt), q = q.slice(0, -1 * qt)), L.push(this.productions_[Et[1]][0]), k.push(vt.$), q.push(vt._$), on = ce[L[L.length - 2]][L[L.length - 1]], L.push(on);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, ue = function() {
+ var j = {
+ EOF: 1,
+ parseError: function(te, L) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(te, L);
+ else
+ throw new Error(te);
+ },
+ // resets the lexer, sets new input
+ setInput: function(Y, te) {
+ return this.yy = te || this.yy || {}, this._input = Y, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var Y = this._input[0];
+ this.yytext += Y, this.yyleng++, this.offset++, this.match += Y, this.matched += Y;
+ var te = Y.match(/(?:\r\n?|\n).*/g);
+ return te ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), Y;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(Y) {
+ var te = Y.length, L = Y.split(/(?:\r\n?|\n)/g);
+ this._input = Y + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - te), this.offset -= te;
+ var $ = 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), L.length - 1 && (this.yylineno -= L.length - 1);
+ var k = 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: L ? (L.length === $.length ? this.yylloc.first_column : 0) + $[$.length - L.length].length - L[0].length : this.yylloc.first_column - te
+ }, this.options.ranges && (this.yylloc.range = [k[0], k[0] + this.yyleng - te]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(Y) {
+ this.unput(this.match.slice(Y));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var Y = this.matched.substr(0, this.matched.length - this.match.length);
+ return (Y.length > 20 ? "..." : "") + Y.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var Y = this.match;
+ return Y.length < 20 && (Y += this._input.substr(0, 20 - Y.length)), (Y.substr(0, 20) + (Y.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var Y = this.pastInput(), te = new Array(Y.length + 1).join("-");
+ return Y + this.upcomingInput() + `
+` + te + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(Y, te) {
+ var L, $, k;
+ if (this.options.backtrack_lexer && (k = {
+ 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 && (k.yylloc.range = this.yylloc.range.slice(0))), $ = Y[0].match(/(?:\r\n?|\n).*/g), $ && (this.yylineno += $.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: $ ? $[$.length - 1].length - $[$.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + Y[0].length
+ }, this.yytext += Y[0], this.match += Y[0], this.matches = Y, 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(Y[0].length), this.matched += Y[0], L = this.performAction.call(this, this.yy, this, te, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), L)
+ return L;
+ if (this._backtrack) {
+ for (var q in k)
+ this[q] = k[q];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var Y, te, L, $;
+ this._more || (this.yytext = "", this.match = "");
+ for (var k = this._currentRules(), q = 0; q < k.length; q++)
+ if (L = this._input.match(this.rules[k[q]]), L && (!te || L[0].length > te[0].length)) {
+ if (te = L, $ = q, this.options.backtrack_lexer) {
+ if (Y = this.test_match(L, k[q]), Y !== !1)
+ return Y;
+ if (this._backtrack) {
+ te = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return te ? (Y = this.test_match(te, k[$]), Y !== !1 ? Y : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var te = this.next();
+ return te || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(te) {
+ this.conditionStack.push(te);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var te = this.conditionStack.length - 1;
+ return te > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(te) {
+ return te = this.conditionStack.length - 1 - Math.abs(te || 0), te >= 0 ? this.conditionStack[te] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(te) {
+ this.begin(te);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": !0 },
+ performAction: function(te, L, $, k) {
+ switch ($) {
+ case 0:
+ return te.getLogger().trace("Found comment", L.yytext), 6;
+ case 1:
+ return 8;
+ case 2:
+ this.begin("CLASS");
+ break;
+ case 3:
+ return this.popState(), 16;
+ case 4:
+ this.popState();
+ break;
+ case 5:
+ te.getLogger().trace("Begin icon"), this.begin("ICON");
+ break;
+ case 6:
+ return te.getLogger().trace("SPACELINE"), 6;
+ case 7:
+ return 7;
+ case 8:
+ return 15;
+ case 9:
+ te.getLogger().trace("end icon"), this.popState();
+ break;
+ case 10:
+ return te.getLogger().trace("Exploding node"), this.begin("NODE"), 19;
+ case 11:
+ return te.getLogger().trace("Cloud"), this.begin("NODE"), 19;
+ case 12:
+ return te.getLogger().trace("Explosion Bang"), this.begin("NODE"), 19;
+ case 13:
+ return te.getLogger().trace("Cloud Bang"), this.begin("NODE"), 19;
+ case 14:
+ return this.begin("NODE"), 19;
+ case 15:
+ return this.begin("NODE"), 19;
+ case 16:
+ return this.begin("NODE"), 19;
+ case 17:
+ return this.begin("NODE"), 19;
+ case 18:
+ return 13;
+ case 19:
+ return 22;
+ case 20:
+ return 11;
+ case 21:
+ this.begin("NSTR2");
+ break;
+ case 22:
+ return "NODE_DESCR";
+ case 23:
+ this.popState();
+ break;
+ case 24:
+ te.getLogger().trace("Starting NSTR"), this.begin("NSTR");
+ break;
+ case 25:
+ return te.getLogger().trace("description:", L.yytext), "NODE_DESCR";
+ case 26:
+ this.popState();
+ break;
+ case 27:
+ return this.popState(), te.getLogger().trace("node end ))"), "NODE_DEND";
+ case 28:
+ return this.popState(), te.getLogger().trace("node end )"), "NODE_DEND";
+ case 29:
+ return this.popState(), te.getLogger().trace("node end ...", L.yytext), "NODE_DEND";
+ case 30:
+ return this.popState(), te.getLogger().trace("node end (("), "NODE_DEND";
+ case 31:
+ return this.popState(), te.getLogger().trace("node end (-"), "NODE_DEND";
+ case 32:
+ return this.popState(), te.getLogger().trace("node end (-"), "NODE_DEND";
+ case 33:
+ return this.popState(), te.getLogger().trace("node end (("), "NODE_DEND";
+ case 34:
+ return this.popState(), te.getLogger().trace("node end (("), "NODE_DEND";
+ case 35:
+ return te.getLogger().trace("Long description:", L.yytext), 20;
+ case 36:
+ return te.getLogger().trace("Long description:", L.yytext), 20;
+ }
+ },
+ rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\-\)\{\}]+)/i, /^(?:$)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i],
+ conditions: { CLASS: { rules: [3, 4], inclusive: !1 }, ICON: { rules: [8, 9], inclusive: !1 }, NSTR2: { rules: [22, 23], inclusive: !1 }, NSTR: { rules: [25, 26], inclusive: !1 }, NODE: { rules: [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], inclusive: !0 } }
+ };
+ return j;
+ }();
+ ne.lexer = ue;
+ function J() {
+ this.yy = {};
+ }
+ return J.prototype = ne, ne.Parser = J, new J();
+}();
+Ki.parser = Ki;
+const Cp = Ki, sn = (he) => yp(he, nn());
+let Jt = [], Uu = 0, Ji = {};
+const Dp = () => {
+ Jt = [], Uu = 0, Ji = {};
+}, Sp = function(he) {
+ for (let fe = Jt.length - 1; fe >= 0; fe--)
+ if (Jt[fe].level < he)
+ return Jt[fe];
+ return null;
+}, Lp = () => Jt.length > 0 ? Jt[0] : null, Ap = (he, fe, ee, ve) => {
+ qr.info("addNode", he, fe, ee, ve);
+ const H = nn(), O = {
+ id: Uu++,
+ nodeId: sn(fe),
+ level: he,
+ descr: sn(ee),
+ type: ve,
+ children: [],
+ width: nn().mindmap.maxNodeWidth
+ };
+ switch (O.type) {
+ case yt.ROUNDED_RECT:
+ O.padding = 2 * H.mindmap.padding;
+ break;
+ case yt.RECT:
+ O.padding = 2 * H.mindmap.padding;
+ break;
+ case yt.HEXAGON:
+ O.padding = 2 * H.mindmap.padding;
+ break;
+ default:
+ O.padding = H.mindmap.padding;
+ }
+ const T = Sp(he);
+ if (T)
+ T.children.push(O), Jt.push(O);
+ else if (Jt.length === 0)
+ Jt.push(O);
+ else {
+ let x = new Error(
+ 'There can be only one root. No parent could be found for ("' + O.descr + '")'
+ );
+ throw x.hash = {
+ text: "branch " + name,
+ token: "branch " + name,
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ['"checkout ' + name + '"']
+ }, x;
+ }
+}, yt = {
+ DEFAULT: 0,
+ NO_BORDER: 0,
+ ROUNDED_RECT: 1,
+ RECT: 2,
+ CIRCLE: 3,
+ CLOUD: 4,
+ BANG: 5,
+ HEXAGON: 6
+}, Op = (he, fe) => {
+ switch (qr.debug("In get type", he, fe), he) {
+ case "[":
+ return yt.RECT;
+ case "(":
+ return fe === ")" ? yt.ROUNDED_RECT : yt.CLOUD;
+ case "((":
+ return yt.CIRCLE;
+ case ")":
+ return yt.CLOUD;
+ case "))":
+ return yt.BANG;
+ case "{{":
+ return yt.HEXAGON;
+ default:
+ return yt.DEFAULT;
+ }
+}, Yu = (he, fe) => {
+ Ji[he] = fe;
+}, Np = (he) => {
+ const fe = Jt[Jt.length - 1];
+ he && he.icon && (fe.icon = sn(he.icon)), he && he.class && (fe.class = sn(he.class));
+}, Wr = (he) => {
+ switch (he) {
+ case yt.DEFAULT:
+ return "no-border";
+ case yt.RECT:
+ return "rect";
+ case yt.ROUNDED_RECT:
+ return "rounded-rect";
+ case yt.CIRCLE:
+ return "circle";
+ case yt.CLOUD:
+ return "cloud";
+ case yt.BANG:
+ return "bang";
+ case yt.HEXAGON:
+ return "hexgon";
+ default:
+ return "no-border";
+ }
+};
+let Hu;
+const Mp = (he) => {
+ Hu = he;
+}, Ip = () => qr, Rp = (he) => Jt[he], ji = (he) => Ji[he], kp = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ addNode: Ap,
+ clear: Dp,
+ decorateNode: Np,
+ getElementById: ji,
+ getLogger: Ip,
+ getMindmap: Lp,
+ getNodeById: Rp,
+ getType: Op,
+ nodeType: yt,
+ get parseError() {
+ return Hu;
+ },
+ sanitizeText: sn,
+ setElementForId: Yu,
+ setErrorHandler: Mp,
+ type2Str: Wr
+}, Symbol.toStringTag, { value: "Module" })), Xu = 12, Pp = function(he, fe, ee) {
+ he.append("path").attr("id", "node-" + fe.id).attr("class", "node-bkg node-" + Wr(fe.type)).attr(
+ "d",
+ `M0 ${fe.height - 5} v${-fe.height + 2 * 5} q0,-5 5,-5 h${fe.width - 2 * 5} q5,0 5,5 v${fe.height - 5} H0 Z`
+ ), he.append("line").attr("class", "node-line-" + ee).attr("x1", 0).attr("y1", fe.height).attr("x2", fe.width).attr("y2", fe.height);
+}, Bp = function(he, fe) {
+ he.append("rect").attr("id", "node-" + fe.id).attr("class", "node-bkg node-" + Wr(fe.type)).attr("height", fe.height).attr("width", fe.width);
+}, Fp = function(he, fe) {
+ const ee = fe.width, ve = fe.height, H = 0.15 * ee, O = 0.25 * ee, T = 0.35 * ee, x = 0.2 * ee;
+ he.append("path").attr("id", "node-" + fe.id).attr("class", "node-bkg node-" + Wr(fe.type)).attr(
+ "d",
+ `M0 0 a${H},${H} 0 0,1 ${ee * 0.25},${-1 * ee * 0.1}
+ a${T},${T} 1 0,1 ${ee * 0.4},${-1 * ee * 0.1}
+ a${O},${O} 1 0,1 ${ee * 0.35},${1 * ee * 0.2}
+
+ a${H},${H} 1 0,1 ${ee * 0.15},${1 * ve * 0.35}
+ a${x},${x} 1 0,1 ${-1 * ee * 0.15},${1 * ve * 0.65}
+
+ a${O},${H} 1 0,1 ${-1 * ee * 0.25},${ee * 0.15}
+ a${T},${T} 1 0,1 ${-1 * ee * 0.5},${0}
+ a${H},${H} 1 0,1 ${-1 * ee * 0.25},${-1 * ee * 0.15}
+
+ a${H},${H} 1 0,1 ${-1 * ee * 0.1},${-1 * ve * 0.35}
+ a${x},${x} 1 0,1 ${ee * 0.1},${-1 * ve * 0.65}
+
+ H0 V0 Z`
+ );
+}, zp = function(he, fe) {
+ const ee = fe.width, ve = fe.height, H = 0.15 * ee;
+ he.append("path").attr("id", "node-" + fe.id).attr("class", "node-bkg node-" + Wr(fe.type)).attr(
+ "d",
+ `M0 0 a${H},${H} 1 0,0 ${ee * 0.25},${-1 * ve * 0.1}
+ a${H},${H} 1 0,0 ${ee * 0.25},${0}
+ a${H},${H} 1 0,0 ${ee * 0.25},${0}
+ a${H},${H} 1 0,0 ${ee * 0.25},${1 * ve * 0.1}
+
+ a${H},${H} 1 0,0 ${ee * 0.15},${1 * ve * 0.33}
+ a${H * 0.8},${H * 0.8} 1 0,0 ${0},${1 * ve * 0.34}
+ a${H},${H} 1 0,0 ${-1 * ee * 0.15},${1 * ve * 0.33}
+
+ a${H},${H} 1 0,0 ${-1 * ee * 0.25},${ve * 0.15}
+ a${H},${H} 1 0,0 ${-1 * ee * 0.25},${0}
+ a${H},${H} 1 0,0 ${-1 * ee * 0.25},${0}
+ a${H},${H} 1 0,0 ${-1 * ee * 0.25},${-1 * ve * 0.15}
+
+ a${H},${H} 1 0,0 ${-1 * ee * 0.1},${-1 * ve * 0.33}
+ a${H * 0.8},${H * 0.8} 1 0,0 ${0},${-1 * ve * 0.34}
+ a${H},${H} 1 0,0 ${ee * 0.1},${-1 * ve * 0.33}
+
+ H0 V0 Z`
+ );
+}, Gp = function(he, fe) {
+ he.append("circle").attr("id", "node-" + fe.id).attr("class", "node-bkg node-" + Wr(fe.type)).attr("r", fe.width / 2);
+};
+function $p(he, fe, ee, ve, H) {
+ return he.insert("polygon", ":first-child").attr(
+ "points",
+ ve.map(function(O) {
+ return O.x + "," + O.y;
+ }).join(" ")
+ ).attr("transform", "translate(" + (H.width - fe) / 2 + ", " + ee + ")");
+}
+const Vp = function(he, fe) {
+ const ee = fe.height, H = ee / 4, O = fe.width - fe.padding + 2 * H, T = [
+ { x: H, y: 0 },
+ { x: O - H, y: 0 },
+ { x: O, y: -ee / 2 },
+ { x: O - H, y: -ee },
+ { x: H, y: -ee },
+ { x: 0, y: -ee / 2 }
+ ];
+ $p(he, O, ee, T, fe);
+}, _p = function(he, fe) {
+ he.append("rect").attr("id", "node-" + fe.id).attr("class", "node-bkg node-" + Wr(fe.type)).attr("height", fe.height).attr("rx", fe.padding).attr("ry", fe.padding).attr("width", fe.width);
+}, Up = function(he, fe, ee, ve) {
+ const H = ve.htmlLabels, O = ee % (Xu - 1), T = he.append("g");
+ fe.section = O;
+ let x = "section-" + O;
+ O < 0 && (x += " section-root"), T.attr("class", (fe.class ? fe.class + " " : "") + "mindmap-node " + x);
+ const S = T.append("g"), G = T.append("g"), U = fe.descr.replace(/(
)/g, `
+`);
+ xp(G, U, {
+ useHtmlLabels: H,
+ width: fe.width,
+ classes: "mindmap-node-label"
+ }), H || G.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle");
+ const P = G.node().getBBox(), K = ve.fontSize.replace ? ve.fontSize.replace("px", "") : ve.fontSize;
+ if (fe.height = P.height + K * 1.1 * 0.5 + fe.padding, fe.width = P.width + 2 * fe.padding, fe.icon)
+ if (fe.type === yt.CIRCLE)
+ fe.height += 50, fe.width += 50, T.append("foreignObject").attr("height", "50px").attr("width", fe.width).attr("style", "text-align: center;").append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + O + " " + fe.icon), G.attr(
+ "transform",
+ "translate(" + fe.width / 2 + ", " + (fe.height / 2 - 1.5 * fe.padding) + ")"
+ );
+ else {
+ fe.width += 50;
+ const D = fe.height;
+ fe.height = Math.max(D, 60);
+ const V = Math.abs(fe.height - D);
+ T.append("foreignObject").attr("width", "60px").attr("height", fe.height).attr("style", "text-align: center;margin-top:" + V / 2 + "px;").append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + O + " " + fe.icon), G.attr(
+ "transform",
+ "translate(" + (25 + fe.width / 2) + ", " + (V / 2 + fe.padding / 2) + ")"
+ );
+ }
+ else if (H) {
+ const D = (fe.width - P.width) / 2, V = (fe.height - P.height) / 2;
+ G.attr("transform", "translate(" + D + ", " + V + ")");
+ } else {
+ const D = fe.width / 2, V = fe.padding / 2;
+ G.attr("transform", "translate(" + D + ", " + V + ")");
+ }
+ switch (fe.type) {
+ case yt.DEFAULT:
+ Pp(S, fe, O);
+ break;
+ case yt.ROUNDED_RECT:
+ _p(S, fe);
+ break;
+ case yt.RECT:
+ Bp(S, fe);
+ break;
+ case yt.CIRCLE:
+ S.attr("transform", "translate(" + fe.width / 2 + ", " + +fe.height / 2 + ")"), Gp(S, fe);
+ break;
+ case yt.CLOUD:
+ Fp(S, fe);
+ break;
+ case yt.BANG:
+ zp(S, fe);
+ break;
+ case yt.HEXAGON:
+ Vp(S, fe);
+ break;
+ }
+ return Yu(fe.id, T), fe.height;
+}, Yp = function(fe, ee, ve, H, O) {
+ const T = O % (Xu - 1), x = ve.x + ve.width / 2, S = ve.y + ve.height / 2, G = ee.x + ee.width / 2, U = ee.y + ee.height / 2, P = G > x ? x + Math.abs(x - G) / 2 : x - Math.abs(x - G) / 2, K = U > S ? S + Math.abs(S - U) / 2 : S - Math.abs(S - U) / 2, D = G > x ? Math.abs(x - P) / 2 + x : -Math.abs(x - P) / 2 + x, V = U > S ? Math.abs(S - K) / 2 + S : -Math.abs(S - K) / 2 + S;
+ fe.append("path").attr(
+ "d",
+ ve.direction === "TB" || ve.direction === "BT" ? `M${x},${S} Q${x},${V} ${P},${K} T${G},${U}` : `M${x},${S} Q${D},${S} ${P},${K} T${G},${U}`
+ ).attr("class", "edge section-edge-" + T + " edge-depth-" + H);
+}, Hp = function(he) {
+ const fe = ji(he.id), ee = he.x || 0, ve = he.y || 0;
+ fe.attr("transform", "translate(" + ee + "," + ve + ")");
+}, qu = { drawNode: Up, positionNode: Hp, drawEdge: Yp };
+var Zi = {}, Xp = {
+ get exports() {
+ return Zi;
+ },
+ set exports(he) {
+ Zi = he;
+ }
+};
+(function(he, fe) {
+ (function(ee, ve) {
+ he.exports = ve();
+ })(Ca, function() {
+ function ee(t) {
+ return ee = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
+ return typeof e;
+ } : function(e) {
+ return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
+ }, ee(t);
+ }
+ function ve(t, e) {
+ if (!(t instanceof e))
+ throw new TypeError("Cannot call a class as a function");
+ }
+ function H(t, e) {
+ for (var r = 0; r < e.length; r++) {
+ var a = e[r];
+ a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(t, a.key, a);
+ }
+ }
+ function O(t, e, r) {
+ return e && H(t.prototype, e), r && H(t, r), Object.defineProperty(t, "prototype", {
+ writable: !1
+ }), t;
+ }
+ function T(t, e, r) {
+ return e in t ? Object.defineProperty(t, e, {
+ value: r,
+ enumerable: !0,
+ configurable: !0,
+ writable: !0
+ }) : t[e] = r, t;
+ }
+ function x(t, e) {
+ return S(t) || G(t, e) || U(t, e) || K();
+ }
+ function S(t) {
+ if (Array.isArray(t))
+ return t;
+ }
+ function G(t, e) {
+ var r = t == null ? null : typeof Symbol < "u" && t[Symbol.iterator] || t["@@iterator"];
+ if (r != null) {
+ var a = [], n = !0, i = !1, s, o;
+ try {
+ for (r = r.call(t); !(n = (s = r.next()).done) && (a.push(s.value), !(e && a.length === e)); n = !0)
+ ;
+ } catch (l) {
+ i = !0, o = l;
+ } finally {
+ try {
+ !n && r.return != null && r.return();
+ } finally {
+ if (i)
+ throw o;
+ }
+ }
+ return a;
+ }
+ }
+ function U(t, e) {
+ if (t) {
+ if (typeof t == "string")
+ return P(t, e);
+ var r = Object.prototype.toString.call(t).slice(8, -1);
+ if (r === "Object" && t.constructor && (r = t.constructor.name), r === "Map" || r === "Set")
+ return Array.from(t);
+ if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))
+ return P(t, e);
+ }
+ }
+ function P(t, e) {
+ (e == null || e > t.length) && (e = t.length);
+ for (var r = 0, a = new Array(e); r < e; r++)
+ a[r] = t[r];
+ return a;
+ }
+ function K() {
+ throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
+ }
+ var D = typeof window > "u" ? null : window, V = D ? D.navigator : null;
+ D && D.document;
+ var _ = ee(""), Q = ee({}), ne = ee(function() {
+ }), ue = typeof HTMLElement > "u" ? "undefined" : ee(HTMLElement), J = function(e) {
+ return e && e.instanceString && Y(e.instanceString) ? e.instanceString() : null;
+ }, j = function(e) {
+ return e != null && ee(e) == _;
+ }, Y = function(e) {
+ return e != null && ee(e) === ne;
+ }, te = function(e) {
+ return !pe(e) && (Array.isArray ? Array.isArray(e) : e != null && e instanceof Array);
+ }, L = function(e) {
+ return e != null && ee(e) === Q && !te(e) && e.constructor === Object;
+ }, $ = function(e) {
+ return e != null && ee(e) === Q;
+ }, k = function(e) {
+ return e != null && ee(e) === ee(1) && !isNaN(e);
+ }, q = function(e) {
+ return k(e) && Math.floor(e) === e;
+ }, ce = function(e) {
+ if (ue !== "undefined")
+ return e != null && e instanceof HTMLElement;
+ }, pe = function(e) {
+ return Ae(e) || Ne(e);
+ }, Ae = function(e) {
+ return J(e) === "collection" && e._private.single;
+ }, Ne = function(e) {
+ return J(e) === "collection" && !e._private.single;
+ }, _e = function(e) {
+ return J(e) === "core";
+ }, tt = function(e) {
+ return J(e) === "stylesheet";
+ }, ct = function(e) {
+ return J(e) === "event";
+ }, Pe = function(e) {
+ return e == null ? !0 : !!(e === "" || e.match(/^\s+$/));
+ }, $e = function(e) {
+ return typeof HTMLElement > "u" ? !1 : e instanceof HTMLElement;
+ }, Xe = function(e) {
+ return L(e) && k(e.x1) && k(e.x2) && k(e.y1) && k(e.y2);
+ }, rt = function(e) {
+ return $(e) && Y(e.then);
+ }, lt = function() {
+ return V && V.userAgent.match(/msie|trident|edge/i);
+ }, nt = function(e, r) {
+ r || (r = function() {
+ if (arguments.length === 1)
+ return arguments[0];
+ if (arguments.length === 0)
+ return "undefined";
+ for (var i = [], s = 0; s < arguments.length; s++)
+ i.push(arguments[s]);
+ return i.join("$");
+ });
+ var a = function n() {
+ var i = this, s = arguments, o, l = r.apply(i, s), u = n.cache;
+ return (o = u[l]) || (o = u[l] = e.apply(i, s)), o;
+ };
+ return a.cache = {}, a;
+ }, je = nt(function(t) {
+ return t.replace(/([A-Z])/g, function(e) {
+ return "-" + e.toLowerCase();
+ });
+ }), pt = nt(function(t) {
+ return t.replace(/(-\w)/g, function(e) {
+ return e[1].toUpperCase();
+ });
+ }), Et = nt(function(t, e) {
+ return t + e[0].toUpperCase() + e.substring(1);
+ }, function(t, e) {
+ return t + "$" + e;
+ }), kt = function(e) {
+ return Pe(e) ? e : e.charAt(0).toUpperCase() + e.substring(1);
+ }, vt = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))", vr = "rgb[a]?\\((" + vt + "[%]?)\\s*,\\s*(" + vt + "[%]?)\\s*,\\s*(" + vt + "[%]?)(?:\\s*,\\s*(" + vt + "))?\\)", qt = "rgb[a]?\\((?:" + vt + "[%]?)\\s*,\\s*(?:" + vt + "[%]?)\\s*,\\s*(?:" + vt + "[%]?)(?:\\s*,\\s*(?:" + vt + "))?\\)", on = "hsl[a]?\\((" + vt + ")\\s*,\\s*(" + vt + "[%])\\s*,\\s*(" + vt + "[%])(?:\\s*,\\s*(" + vt + "))?\\)", Kr = "hsl[a]?\\((?:" + vt + ")\\s*,\\s*(?:" + vt + "[%])\\s*,\\s*(?:" + vt + "[%])(?:\\s*,\\s*(?:" + vt + "))?\\)", Da = "\\#[0-9a-fA-F]{3}", jt = "\\#[0-9a-fA-F]{6}", es = function(e, r) {
+ return e < r ? -1 : e > r ? 1 : 0;
+ }, Qu = function(e, r) {
+ return -1 * es(e, r);
+ }, Ue = Object.assign != null ? Object.assign.bind(Object) : function(t) {
+ for (var e = arguments, r = 1; r < e.length; r++) {
+ var a = e[r];
+ if (a != null)
+ for (var n = Object.keys(a), i = 0; i < n.length; i++) {
+ var s = n[i];
+ t[s] = a[s];
+ }
+ }
+ return t;
+ }, Ju = function(e) {
+ if (!(!(e.length === 4 || e.length === 7) || e[0] !== "#")) {
+ var r = e.length === 4, a, n, i, s = 16;
+ return r ? (a = parseInt(e[1] + e[1], s), n = parseInt(e[2] + e[2], s), i = parseInt(e[3] + e[3], s)) : (a = parseInt(e[1] + e[2], s), n = parseInt(e[3] + e[4], s), i = parseInt(e[5] + e[6], s)), [a, n, i];
+ }
+ }, ju = function(e) {
+ var r, a, n, i, s, o, l, u;
+ function f(d, g, y) {
+ return y < 0 && (y += 1), y > 1 && (y -= 1), y < 1 / 6 ? d + (g - d) * 6 * y : y < 1 / 2 ? g : y < 2 / 3 ? d + (g - d) * (2 / 3 - y) * 6 : d;
+ }
+ var h = new RegExp("^" + on + "$").exec(e);
+ if (h) {
+ if (a = parseInt(h[1]), a < 0 ? a = (360 - -1 * a % 360) % 360 : a > 360 && (a = a % 360), a /= 360, n = parseFloat(h[2]), n < 0 || n > 100 || (n = n / 100, i = parseFloat(h[3]), i < 0 || i > 100) || (i = i / 100, s = h[4], s !== void 0 && (s = parseFloat(s), s < 0 || s > 1)))
+ return;
+ if (n === 0)
+ o = l = u = Math.round(i * 255);
+ else {
+ var c = i < 0.5 ? i * (1 + n) : i + n - i * n, v = 2 * i - c;
+ o = Math.round(255 * f(v, c, a + 1 / 3)), l = Math.round(255 * f(v, c, a)), u = Math.round(255 * f(v, c, a - 1 / 3));
+ }
+ r = [o, l, u, s];
+ }
+ return r;
+ }, el = function(e) {
+ var r, a = new RegExp("^" + vr + "$").exec(e);
+ if (a) {
+ r = [];
+ for (var n = [], i = 1; i <= 3; i++) {
+ var s = a[i];
+ if (s[s.length - 1] === "%" && (n[i] = !0), s = parseFloat(s), n[i] && (s = s / 100 * 255), s < 0 || s > 255)
+ return;
+ r.push(Math.floor(s));
+ }
+ var o = n[1] || n[2] || n[3], l = n[1] && n[2] && n[3];
+ if (o && !l)
+ return;
+ var u = a[4];
+ if (u !== void 0) {
+ if (u = parseFloat(u), u < 0 || u > 1)
+ return;
+ r.push(u);
+ }
+ }
+ return r;
+ }, tl = function(e) {
+ return al[e.toLowerCase()];
+ }, rl = function(e) {
+ return (te(e) ? e : null) || tl(e) || Ju(e) || el(e) || ju(e);
+ }, al = {
+ // special colour names
+ transparent: [0, 0, 0, 0],
+ // NB alpha === 0
+ // regular colours
+ aliceblue: [240, 248, 255],
+ antiquewhite: [250, 235, 215],
+ aqua: [0, 255, 255],
+ aquamarine: [127, 255, 212],
+ azure: [240, 255, 255],
+ beige: [245, 245, 220],
+ bisque: [255, 228, 196],
+ black: [0, 0, 0],
+ blanchedalmond: [255, 235, 205],
+ blue: [0, 0, 255],
+ blueviolet: [138, 43, 226],
+ brown: [165, 42, 42],
+ burlywood: [222, 184, 135],
+ cadetblue: [95, 158, 160],
+ chartreuse: [127, 255, 0],
+ chocolate: [210, 105, 30],
+ coral: [255, 127, 80],
+ cornflowerblue: [100, 149, 237],
+ cornsilk: [255, 248, 220],
+ crimson: [220, 20, 60],
+ cyan: [0, 255, 255],
+ darkblue: [0, 0, 139],
+ darkcyan: [0, 139, 139],
+ darkgoldenrod: [184, 134, 11],
+ darkgray: [169, 169, 169],
+ darkgreen: [0, 100, 0],
+ darkgrey: [169, 169, 169],
+ darkkhaki: [189, 183, 107],
+ darkmagenta: [139, 0, 139],
+ darkolivegreen: [85, 107, 47],
+ darkorange: [255, 140, 0],
+ darkorchid: [153, 50, 204],
+ darkred: [139, 0, 0],
+ darksalmon: [233, 150, 122],
+ darkseagreen: [143, 188, 143],
+ darkslateblue: [72, 61, 139],
+ darkslategray: [47, 79, 79],
+ darkslategrey: [47, 79, 79],
+ darkturquoise: [0, 206, 209],
+ darkviolet: [148, 0, 211],
+ deeppink: [255, 20, 147],
+ deepskyblue: [0, 191, 255],
+ dimgray: [105, 105, 105],
+ dimgrey: [105, 105, 105],
+ dodgerblue: [30, 144, 255],
+ firebrick: [178, 34, 34],
+ floralwhite: [255, 250, 240],
+ forestgreen: [34, 139, 34],
+ fuchsia: [255, 0, 255],
+ gainsboro: [220, 220, 220],
+ ghostwhite: [248, 248, 255],
+ gold: [255, 215, 0],
+ goldenrod: [218, 165, 32],
+ gray: [128, 128, 128],
+ grey: [128, 128, 128],
+ green: [0, 128, 0],
+ greenyellow: [173, 255, 47],
+ honeydew: [240, 255, 240],
+ hotpink: [255, 105, 180],
+ indianred: [205, 92, 92],
+ indigo: [75, 0, 130],
+ ivory: [255, 255, 240],
+ khaki: [240, 230, 140],
+ lavender: [230, 230, 250],
+ lavenderblush: [255, 240, 245],
+ lawngreen: [124, 252, 0],
+ lemonchiffon: [255, 250, 205],
+ lightblue: [173, 216, 230],
+ lightcoral: [240, 128, 128],
+ lightcyan: [224, 255, 255],
+ lightgoldenrodyellow: [250, 250, 210],
+ lightgray: [211, 211, 211],
+ lightgreen: [144, 238, 144],
+ lightgrey: [211, 211, 211],
+ lightpink: [255, 182, 193],
+ lightsalmon: [255, 160, 122],
+ lightseagreen: [32, 178, 170],
+ lightskyblue: [135, 206, 250],
+ lightslategray: [119, 136, 153],
+ lightslategrey: [119, 136, 153],
+ lightsteelblue: [176, 196, 222],
+ lightyellow: [255, 255, 224],
+ lime: [0, 255, 0],
+ limegreen: [50, 205, 50],
+ linen: [250, 240, 230],
+ magenta: [255, 0, 255],
+ maroon: [128, 0, 0],
+ mediumaquamarine: [102, 205, 170],
+ mediumblue: [0, 0, 205],
+ mediumorchid: [186, 85, 211],
+ mediumpurple: [147, 112, 219],
+ mediumseagreen: [60, 179, 113],
+ mediumslateblue: [123, 104, 238],
+ mediumspringgreen: [0, 250, 154],
+ mediumturquoise: [72, 209, 204],
+ mediumvioletred: [199, 21, 133],
+ midnightblue: [25, 25, 112],
+ mintcream: [245, 255, 250],
+ mistyrose: [255, 228, 225],
+ moccasin: [255, 228, 181],
+ navajowhite: [255, 222, 173],
+ navy: [0, 0, 128],
+ oldlace: [253, 245, 230],
+ olive: [128, 128, 0],
+ olivedrab: [107, 142, 35],
+ orange: [255, 165, 0],
+ orangered: [255, 69, 0],
+ orchid: [218, 112, 214],
+ palegoldenrod: [238, 232, 170],
+ palegreen: [152, 251, 152],
+ paleturquoise: [175, 238, 238],
+ palevioletred: [219, 112, 147],
+ papayawhip: [255, 239, 213],
+ peachpuff: [255, 218, 185],
+ peru: [205, 133, 63],
+ pink: [255, 192, 203],
+ plum: [221, 160, 221],
+ powderblue: [176, 224, 230],
+ purple: [128, 0, 128],
+ red: [255, 0, 0],
+ rosybrown: [188, 143, 143],
+ royalblue: [65, 105, 225],
+ saddlebrown: [139, 69, 19],
+ salmon: [250, 128, 114],
+ sandybrown: [244, 164, 96],
+ seagreen: [46, 139, 87],
+ seashell: [255, 245, 238],
+ sienna: [160, 82, 45],
+ silver: [192, 192, 192],
+ skyblue: [135, 206, 235],
+ slateblue: [106, 90, 205],
+ slategray: [112, 128, 144],
+ slategrey: [112, 128, 144],
+ snow: [255, 250, 250],
+ springgreen: [0, 255, 127],
+ steelblue: [70, 130, 180],
+ tan: [210, 180, 140],
+ teal: [0, 128, 128],
+ thistle: [216, 191, 216],
+ tomato: [255, 99, 71],
+ turquoise: [64, 224, 208],
+ violet: [238, 130, 238],
+ wheat: [245, 222, 179],
+ white: [255, 255, 255],
+ whitesmoke: [245, 245, 245],
+ yellow: [255, 255, 0],
+ yellowgreen: [154, 205, 50]
+ }, ts = function(e) {
+ for (var r = e.map, a = e.keys, n = a.length, i = 0; i < n; i++) {
+ var s = a[i];
+ if (L(s))
+ throw Error("Tried to set map with object key");
+ i < a.length - 1 ? (r[s] == null && (r[s] = {}), r = r[s]) : r[s] = e.value;
+ }
+ }, rs = function(e) {
+ for (var r = e.map, a = e.keys, n = a.length, i = 0; i < n; i++) {
+ var s = a[i];
+ if (L(s))
+ throw Error("Tried to get map with object key");
+ if (r = r[s], r == null)
+ return r;
+ }
+ return r;
+ };
+ function nl(t) {
+ var e = typeof t;
+ return t != null && (e == "object" || e == "function");
+ }
+ var Rr = nl, Sa = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof Ca < "u" ? Ca : typeof self < "u" ? self : {};
+ function il(t, e) {
+ return e = { exports: {} }, t(e, e.exports), e.exports;
+ }
+ var sl = typeof Sa == "object" && Sa && Sa.Object === Object && Sa, ol = sl, ul = typeof self == "object" && self && self.Object === Object && self, ll = ol || ul || Function("return this")(), un = ll, fl = function() {
+ return un.Date.now();
+ }, ai = fl, hl = /\s/;
+ function cl(t) {
+ for (var e = t.length; e-- && hl.test(t.charAt(e)); )
+ ;
+ return e;
+ }
+ var vl = cl, dl = /^\s+/;
+ function gl(t) {
+ return t && t.slice(0, vl(t) + 1).replace(dl, "");
+ }
+ var pl = gl, yl = un.Symbol, Zr = yl, as = Object.prototype, ml = as.hasOwnProperty, bl = as.toString, La = Zr ? Zr.toStringTag : void 0;
+ function El(t) {
+ var e = ml.call(t, La), r = t[La];
+ try {
+ t[La] = void 0;
+ var a = !0;
+ } catch {
+ }
+ var n = bl.call(t);
+ return a && (e ? t[La] = r : delete t[La]), n;
+ }
+ var wl = El, xl = Object.prototype, Tl = xl.toString;
+ function Cl(t) {
+ return Tl.call(t);
+ }
+ var Dl = Cl, Sl = "[object Null]", Ll = "[object Undefined]", ns = Zr ? Zr.toStringTag : void 0;
+ function Al(t) {
+ return t == null ? t === void 0 ? Ll : Sl : ns && ns in Object(t) ? wl(t) : Dl(t);
+ }
+ var is = Al;
+ function Ol(t) {
+ return t != null && typeof t == "object";
+ }
+ var Nl = Ol, Ml = "[object Symbol]";
+ function Il(t) {
+ return typeof t == "symbol" || Nl(t) && is(t) == Ml;
+ }
+ var Aa = Il, ss = 0 / 0, Rl = /^[-+]0x[0-9a-f]+$/i, kl = /^0b[01]+$/i, Pl = /^0o[0-7]+$/i, Bl = parseInt;
+ function Fl(t) {
+ if (typeof t == "number")
+ return t;
+ if (Aa(t))
+ return ss;
+ if (Rr(t)) {
+ var e = typeof t.valueOf == "function" ? t.valueOf() : t;
+ t = Rr(e) ? e + "" : e;
+ }
+ if (typeof t != "string")
+ return t === 0 ? t : +t;
+ t = pl(t);
+ var r = kl.test(t);
+ return r || Pl.test(t) ? Bl(t.slice(2), r ? 2 : 8) : Rl.test(t) ? ss : +t;
+ }
+ var os = Fl, zl = "Expected a function", Gl = Math.max, $l = Math.min;
+ function Vl(t, e, r) {
+ var a, n, i, s, o, l, u = 0, f = !1, h = !1, c = !0;
+ if (typeof t != "function")
+ throw new TypeError(zl);
+ e = os(e) || 0, Rr(r) && (f = !!r.leading, h = "maxWait" in r, i = h ? Gl(os(r.maxWait) || 0, e) : i, c = "trailing" in r ? !!r.trailing : c);
+ function v(A) {
+ var w = a, I = n;
+ return a = n = void 0, u = A, s = t.apply(I, w), s;
+ }
+ function d(A) {
+ return u = A, o = setTimeout(p, e), f ? v(A) : s;
+ }
+ function g(A) {
+ var w = A - l, I = A - u, C = e - w;
+ return h ? $l(C, i - I) : C;
+ }
+ function y(A) {
+ var w = A - l, I = A - u;
+ return l === void 0 || w >= e || w < 0 || h && I >= i;
+ }
+ function p() {
+ var A = ai();
+ if (y(A))
+ return m(A);
+ o = setTimeout(p, g(A));
+ }
+ function m(A) {
+ return o = void 0, c && a ? v(A) : (a = n = void 0, s);
+ }
+ function b() {
+ o !== void 0 && clearTimeout(o), u = 0, a = l = n = o = void 0;
+ }
+ function E() {
+ return o === void 0 ? s : m(ai());
+ }
+ function M() {
+ var A = ai(), w = y(A);
+ if (a = arguments, n = this, l = A, w) {
+ if (o === void 0)
+ return d(l);
+ if (h)
+ return clearTimeout(o), o = setTimeout(p, e), v(l);
+ }
+ return o === void 0 && (o = setTimeout(p, e)), s;
+ }
+ return M.cancel = b, M.flush = E, M;
+ }
+ var ln = Vl, ni = D ? D.performance : null, us = ni && ni.now ? function() {
+ return ni.now();
+ } : function() {
+ return Date.now();
+ }, _l = function() {
+ if (D) {
+ if (D.requestAnimationFrame)
+ return function(t) {
+ D.requestAnimationFrame(t);
+ };
+ if (D.mozRequestAnimationFrame)
+ return function(t) {
+ D.mozRequestAnimationFrame(t);
+ };
+ if (D.webkitRequestAnimationFrame)
+ return function(t) {
+ D.webkitRequestAnimationFrame(t);
+ };
+ if (D.msRequestAnimationFrame)
+ return function(t) {
+ D.msRequestAnimationFrame(t);
+ };
+ }
+ return function(t) {
+ t && setTimeout(function() {
+ t(us());
+ }, 1e3 / 60);
+ };
+ }(), fn = function(e) {
+ return _l(e);
+ }, dr = us, Qr = 9261, ls = 65599, Oa = 5381, fs = function(e) {
+ for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Qr, a = r, n; n = e.next(), !n.done; )
+ a = a * ls + n.value | 0;
+ return a;
+ }, Na = function(e) {
+ var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Qr;
+ return r * ls + e | 0;
+ }, Ma = function(e) {
+ var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Oa;
+ return (r << 5) + r + e | 0;
+ }, Ul = function(e, r) {
+ return e * 2097152 + r;
+ }, Er = function(e) {
+ return e[0] * 2097152 + e[1];
+ }, hn = function(e, r) {
+ return [Na(e[0], r[0]), Ma(e[1], r[1])];
+ }, Yl = function(e, r) {
+ var a = {
+ value: 0,
+ done: !1
+ }, n = 0, i = e.length, s = {
+ next: function() {
+ return n < i ? a.value = e[n++] : a.done = !0, a;
+ }
+ };
+ return fs(s, r);
+ }, kr = function(e, r) {
+ var a = {
+ value: 0,
+ done: !1
+ }, n = 0, i = e.length, s = {
+ next: function() {
+ return n < i ? a.value = e.charCodeAt(n++) : a.done = !0, a;
+ }
+ };
+ return fs(s, r);
+ }, hs = function() {
+ return Hl(arguments);
+ }, Hl = function(e) {
+ for (var r, a = 0; a < e.length; a++) {
+ var n = e[a];
+ a === 0 ? r = kr(n) : r = kr(n, r);
+ }
+ return r;
+ }, cs = !0, Xl = console.warn != null, ql = console.trace != null, ii = Number.MAX_SAFE_INTEGER || 9007199254740991, vs = function() {
+ return !0;
+ }, cn = function() {
+ return !1;
+ }, ds = function() {
+ return 0;
+ }, si = function() {
+ }, xt = function(e) {
+ throw new Error(e);
+ }, gs = function(e) {
+ if (e !== void 0)
+ cs = !!e;
+ else
+ return cs;
+ }, ft = function(e) {
+ gs() && (Xl ? console.warn(e) : (console.log(e), ql && console.trace()));
+ }, Wl = function(e) {
+ return Ue({}, e);
+ }, or = function(e) {
+ return e == null ? e : te(e) ? e.slice() : L(e) ? Wl(e) : e;
+ }, Kl = function(e) {
+ return e.slice();
+ }, ps = function(e, r) {
+ for (
+ // loop :)
+ r = e = "";
+ // b - result , a - numeric letiable
+ e++ < 36;
+ //
+ r += e * 51 & 52 ? (
+ // return a random number or 4
+ (e ^ 15 ? (
+ // generate a random number from 0 to 15
+ 8 ^ Math.random() * (e ^ 20 ? 16 : 4)
+ ) : 4).toString(16)
+ ) : "-"
+ )
+ ;
+ return r;
+ }, Zl = {}, ys = function() {
+ return Zl;
+ }, Lt = function(e) {
+ var r = Object.keys(e);
+ return function(a) {
+ for (var n = {}, i = 0; i < r.length; i++) {
+ var s = r[i], o = a == null ? void 0 : a[s];
+ n[s] = o === void 0 ? e[s] : o;
+ }
+ return n;
+ };
+ }, wr = function(e, r, a) {
+ for (var n = e.length - 1; n >= 0 && !(e[n] === r && (e.splice(n, 1), a)); n--)
+ ;
+ }, oi = function(e) {
+ e.splice(0, e.length);
+ }, Ql = function(e, r) {
+ for (var a = 0; a < r.length; a++) {
+ var n = r[a];
+ e.push(n);
+ }
+ }, er = function(e, r, a) {
+ return a && (r = Et(a, r)), e[r];
+ }, xr = function(e, r, a, n) {
+ a && (r = Et(a, r)), e[r] = n;
+ }, Jl = /* @__PURE__ */ function() {
+ function t() {
+ ve(this, t), this._obj = {};
+ }
+ return O(t, [{
+ key: "set",
+ value: function(r, a) {
+ return this._obj[r] = a, this;
+ }
+ }, {
+ key: "delete",
+ value: function(r) {
+ return this._obj[r] = void 0, this;
+ }
+ }, {
+ key: "clear",
+ value: function() {
+ this._obj = {};
+ }
+ }, {
+ key: "has",
+ value: function(r) {
+ return this._obj[r] !== void 0;
+ }
+ }, {
+ key: "get",
+ value: function(r) {
+ return this._obj[r];
+ }
+ }]), t;
+ }(), ur = typeof Map < "u" ? Map : Jl, jl = "undefined", ef = /* @__PURE__ */ function() {
+ function t(e) {
+ if (ve(this, t), this._obj = /* @__PURE__ */ Object.create(null), this.size = 0, e != null) {
+ var r;
+ e.instanceString != null && e.instanceString() === this.instanceString() ? r = e.toArray() : r = e;
+ for (var a = 0; a < r.length; a++)
+ this.add(r[a]);
+ }
+ }
+ return O(t, [{
+ key: "instanceString",
+ value: function() {
+ return "set";
+ }
+ }, {
+ key: "add",
+ value: function(r) {
+ var a = this._obj;
+ a[r] !== 1 && (a[r] = 1, this.size++);
+ }
+ }, {
+ key: "delete",
+ value: function(r) {
+ var a = this._obj;
+ a[r] === 1 && (a[r] = 0, this.size--);
+ }
+ }, {
+ key: "clear",
+ value: function() {
+ this._obj = /* @__PURE__ */ Object.create(null);
+ }
+ }, {
+ key: "has",
+ value: function(r) {
+ return this._obj[r] === 1;
+ }
+ }, {
+ key: "toArray",
+ value: function() {
+ var r = this;
+ return Object.keys(this._obj).filter(function(a) {
+ return r.has(a);
+ });
+ }
+ }, {
+ key: "forEach",
+ value: function(r, a) {
+ return this.toArray().forEach(r, a);
+ }
+ }]), t;
+ }(), Jr = (typeof Set > "u" ? "undefined" : ee(Set)) !== jl ? Set : ef, vn = function(e, r) {
+ var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0;
+ if (e === void 0 || r === void 0 || !_e(e)) {
+ xt("An element must have a core reference and parameters set");
+ return;
+ }
+ var n = r.group;
+ if (n == null && (r.data && r.data.source != null && r.data.target != null ? n = "edges" : n = "nodes"), n !== "nodes" && n !== "edges") {
+ xt("An element must be of type `nodes` or `edges`; you specified `" + n + "`");
+ return;
+ }
+ this.length = 1, this[0] = this;
+ var i = this._private = {
+ cy: e,
+ single: !0,
+ // indicates this is an element
+ data: r.data || {},
+ // data object
+ position: r.position || {
+ x: 0,
+ y: 0
+ },
+ // (x, y) position pair
+ autoWidth: void 0,
+ // width and height of nodes calculated by the renderer when set to special 'auto' value
+ autoHeight: void 0,
+ autoPadding: void 0,
+ compoundBoundsClean: !1,
+ // whether the compound dimensions need to be recalculated the next time dimensions are read
+ listeners: [],
+ // array of bound listeners
+ group: n,
+ // string; 'nodes' or 'edges'
+ style: {},
+ // properties as set by the style
+ rstyle: {},
+ // properties for style sent from the renderer to the core
+ styleCxts: [],
+ // applied style contexts from the styler
+ styleKeys: {},
+ // per-group keys of style property values
+ removed: !0,
+ // whether it's inside the vis; true if removed (set true here since we call restore)
+ selected: !!r.selected,
+ // whether it's selected
+ selectable: r.selectable === void 0 ? !0 : !!r.selectable,
+ // whether it's selectable
+ locked: !!r.locked,
+ // whether the element is locked (cannot be moved)
+ grabbed: !1,
+ // whether the element is grabbed by the mouse; renderer sets this privately
+ grabbable: r.grabbable === void 0 ? !0 : !!r.grabbable,
+ // whether the element can be grabbed
+ pannable: r.pannable === void 0 ? n === "edges" : !!r.pannable,
+ // whether the element has passthrough panning enabled
+ active: !1,
+ // whether the element is active from user interaction
+ classes: new Jr(),
+ // map ( className => true )
+ animation: {
+ // object for currently-running animations
+ current: [],
+ queue: []
+ },
+ rscratch: {},
+ // object in which the renderer can store information
+ scratch: r.scratch || {},
+ // scratch objects
+ edges: [],
+ // array of connected edges
+ children: [],
+ // array of children
+ parent: r.parent && r.parent.isNode() ? r.parent : null,
+ // parent ref
+ traversalCache: {},
+ // cache of output of traversal functions
+ backgrounding: !1,
+ // whether background images are loading
+ bbCache: null,
+ // cache of the current bounding box
+ bbCacheShift: {
+ x: 0,
+ y: 0
+ },
+ // shift applied to cached bb to be applied on next get
+ bodyBounds: null,
+ // bounds cache of element body, w/o overlay
+ overlayBounds: null,
+ // bounds cache of element body, including overlay
+ labelBounds: {
+ // bounds cache of labels
+ all: null,
+ source: null,
+ target: null,
+ main: null
+ },
+ arrowBounds: {
+ // bounds cache of edge arrows
+ source: null,
+ target: null,
+ "mid-source": null,
+ "mid-target": null
+ }
+ };
+ if (i.position.x == null && (i.position.x = 0), i.position.y == null && (i.position.y = 0), r.renderedPosition) {
+ var s = r.renderedPosition, o = e.pan(), l = e.zoom();
+ i.position = {
+ x: (s.x - o.x) / l,
+ y: (s.y - o.y) / l
+ };
+ }
+ var u = [];
+ te(r.classes) ? u = r.classes : j(r.classes) && (u = r.classes.split(/\s+/));
+ for (var f = 0, h = u.length; f < h; f++) {
+ var c = u[f];
+ !c || c === "" || i.classes.add(c);
+ }
+ this.createEmitter();
+ var v = r.style || r.css;
+ v && (ft("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."), this.style(v)), (a === void 0 || a) && this.restore();
+ }, ms = function(e) {
+ return e = {
+ bfs: e.bfs || !e.dfs,
+ dfs: e.dfs || !e.bfs
+ }, function(a, n, i) {
+ var s;
+ L(a) && !pe(a) && (s = a, a = s.roots || s.root, n = s.visit, i = s.directed), i = arguments.length === 2 && !Y(n) ? n : i, n = Y(n) ? n : function() {
+ };
+ for (var o = this._private.cy, l = a = j(a) ? this.filter(a) : a, u = [], f = [], h = {}, c = {}, v = {}, d = 0, g, y = this.byGroup(), p = y.nodes, m = y.edges, b = 0; b < l.length; b++) {
+ var E = l[b], M = E.id();
+ E.isNode() && (u.unshift(E), e.bfs && (v[M] = !0, f.push(E)), c[M] = 0);
+ }
+ for (var A = function() {
+ var X = e.bfs ? u.shift() : u.pop(), z = X.id();
+ if (e.dfs) {
+ if (v[z])
+ return "continue";
+ v[z] = !0, f.push(X);
+ }
+ var re = c[z], W = h[z], Z = W != null ? W.source() : null, ie = W != null ? W.target() : null, oe = W == null ? void 0 : X.same(Z) ? ie[0] : Z[0], ge = void 0;
+ if (ge = n(X, W, oe, d++, re), ge === !0)
+ return g = X, "break";
+ if (ge === !1)
+ return "break";
+ for (var se = X.connectedEdges().filter(function(ye) {
+ return (!i || ye.source().same(X)) && m.has(ye);
+ }), de = 0; de < se.length; de++) {
+ var we = se[de], Te = we.connectedNodes().filter(function(ye) {
+ return !ye.same(X) && p.has(ye);
+ }), Ee = Te.id();
+ Te.length !== 0 && !v[Ee] && (Te = Te[0], u.push(Te), e.bfs && (v[Ee] = !0, f.push(Te)), h[Ee] = we, c[Ee] = c[z] + 1);
+ }
+ }; u.length !== 0; ) {
+ var w = A();
+ if (w !== "continue" && w === "break")
+ break;
+ }
+ for (var I = o.collection(), C = 0; C < f.length; C++) {
+ var B = f[C], F = h[B.id()];
+ F != null && I.push(F), I.push(B);
+ }
+ return {
+ path: o.collection(I),
+ found: o.collection(g)
+ };
+ };
+ }, Ia = {
+ breadthFirstSearch: ms({
+ bfs: !0
+ }),
+ depthFirstSearch: ms({
+ dfs: !0
+ })
+ };
+ Ia.bfs = Ia.breadthFirstSearch, Ia.dfs = Ia.depthFirstSearch;
+ var tf = il(function(t, e) {
+ (function() {
+ var r, a, n, i, s, o, l, u, f, h, c, v, d, g, y;
+ n = Math.floor, h = Math.min, a = function(p, m) {
+ return p < m ? -1 : p > m ? 1 : 0;
+ }, f = function(p, m, b, E, M) {
+ var A;
+ if (b == null && (b = 0), M == null && (M = a), b < 0)
+ throw new Error("lo must be non-negative");
+ for (E == null && (E = p.length); b < E; )
+ A = n((b + E) / 2), M(m, p[A]) < 0 ? E = A : b = A + 1;
+ return [].splice.apply(p, [b, b - b].concat(m)), m;
+ }, o = function(p, m, b) {
+ return b == null && (b = a), p.push(m), g(p, 0, p.length - 1, b);
+ }, s = function(p, m) {
+ var b, E;
+ return m == null && (m = a), b = p.pop(), p.length ? (E = p[0], p[0] = b, y(p, 0, m)) : E = b, E;
+ }, u = function(p, m, b) {
+ var E;
+ return b == null && (b = a), E = p[0], p[0] = m, y(p, 0, b), E;
+ }, l = function(p, m, b) {
+ var E;
+ return b == null && (b = a), p.length && b(p[0], m) < 0 && (E = [p[0], m], m = E[0], p[0] = E[1], y(p, 0, b)), m;
+ }, i = function(p, m) {
+ var b, E, M, A, w, I;
+ for (m == null && (m = a), A = function() {
+ I = [];
+ for (var C = 0, B = n(p.length / 2); 0 <= B ? C < B : C > B; 0 <= B ? C++ : C--)
+ I.push(C);
+ return I;
+ }.apply(this).reverse(), w = [], E = 0, M = A.length; E < M; E++)
+ b = A[E], w.push(y(p, b, m));
+ return w;
+ }, d = function(p, m, b) {
+ var E;
+ if (b == null && (b = a), E = p.indexOf(m), E !== -1)
+ return g(p, 0, E, b), y(p, E, b);
+ }, c = function(p, m, b) {
+ var E, M, A, w, I;
+ if (b == null && (b = a), M = p.slice(0, m), !M.length)
+ return M;
+ for (i(M, b), I = p.slice(m), A = 0, w = I.length; A < w; A++)
+ E = I[A], l(M, E, b);
+ return M.sort(b).reverse();
+ }, v = function(p, m, b) {
+ var E, M, A, w, I, C, B, F, R;
+ if (b == null && (b = a), m * 10 <= p.length) {
+ if (A = p.slice(0, m).sort(b), !A.length)
+ return A;
+ for (M = A[A.length - 1], B = p.slice(m), w = 0, C = B.length; w < C; w++)
+ E = B[w], b(E, M) < 0 && (f(A, E, 0, null, b), A.pop(), M = A[A.length - 1]);
+ return A;
+ }
+ for (i(p, b), R = [], I = 0, F = h(m, p.length); 0 <= F ? I < F : I > F; 0 <= F ? ++I : --I)
+ R.push(s(p, b));
+ return R;
+ }, g = function(p, m, b, E) {
+ var M, A, w;
+ for (E == null && (E = a), M = p[b]; b > m; ) {
+ if (w = b - 1 >> 1, A = p[w], E(M, A) < 0) {
+ p[b] = A, b = w;
+ continue;
+ }
+ break;
+ }
+ return p[b] = M;
+ }, y = function(p, m, b) {
+ var E, M, A, w, I;
+ for (b == null && (b = a), M = p.length, I = m, A = p[m], E = 2 * m + 1; E < M; )
+ w = E + 1, w < M && !(b(p[E], p[w]) < 0) && (E = w), p[m] = p[E], m = E, E = 2 * m + 1;
+ return p[m] = A, g(p, I, m, b);
+ }, r = function() {
+ p.push = o, p.pop = s, p.replace = u, p.pushpop = l, p.heapify = i, p.updateItem = d, p.nlargest = c, p.nsmallest = v;
+ function p(m) {
+ this.cmp = m ?? a, this.nodes = [];
+ }
+ return p.prototype.push = function(m) {
+ return o(this.nodes, m, this.cmp);
+ }, p.prototype.pop = function() {
+ return s(this.nodes, this.cmp);
+ }, p.prototype.peek = function() {
+ return this.nodes[0];
+ }, p.prototype.contains = function(m) {
+ return this.nodes.indexOf(m) !== -1;
+ }, p.prototype.replace = function(m) {
+ return u(this.nodes, m, this.cmp);
+ }, p.prototype.pushpop = function(m) {
+ return l(this.nodes, m, this.cmp);
+ }, p.prototype.heapify = function() {
+ return i(this.nodes, this.cmp);
+ }, p.prototype.updateItem = function(m) {
+ return d(this.nodes, m, this.cmp);
+ }, p.prototype.clear = function() {
+ return this.nodes = [];
+ }, p.prototype.empty = function() {
+ return this.nodes.length === 0;
+ }, p.prototype.size = function() {
+ return this.nodes.length;
+ }, p.prototype.clone = function() {
+ var m;
+ return m = new p(), m.nodes = this.nodes.slice(0), m;
+ }, p.prototype.toArray = function() {
+ return this.nodes.slice(0);
+ }, p.prototype.insert = p.prototype.push, p.prototype.top = p.prototype.peek, p.prototype.front = p.prototype.peek, p.prototype.has = p.prototype.contains, p.prototype.copy = p.prototype.clone, p;
+ }(), function(p, m) {
+ return t.exports = m();
+ }(this, function() {
+ return r;
+ });
+ }).call(Sa);
+ }), Ra = tf, rf = Lt({
+ root: null,
+ weight: function(e) {
+ return 1;
+ },
+ directed: !1
+ }), af = {
+ dijkstra: function(e) {
+ if (!L(e)) {
+ var r = arguments;
+ e = {
+ root: r[0],
+ weight: r[1],
+ directed: r[2]
+ };
+ }
+ var a = rf(e), n = a.root, i = a.weight, s = a.directed, o = this, l = i, u = j(n) ? this.filter(n)[0] : n[0], f = {}, h = {}, c = {}, v = this.byGroup(), d = v.nodes, g = v.edges;
+ g.unmergeBy(function(re) {
+ return re.isLoop();
+ });
+ for (var y = function(W) {
+ return f[W.id()];
+ }, p = function(W, Z) {
+ f[W.id()] = Z, m.updateItem(W);
+ }, m = new Ra(function(re, W) {
+ return y(re) - y(W);
+ }), b = 0; b < d.length; b++) {
+ var E = d[b];
+ f[E.id()] = E.same(u) ? 0 : 1 / 0, m.push(E);
+ }
+ for (var M = function(W, Z) {
+ for (var ie = (s ? W.edgesTo(Z) : W.edgesWith(Z)).intersect(g), oe = 1 / 0, ge, se = 0; se < ie.length; se++) {
+ var de = ie[se], we = l(de);
+ (we < oe || !ge) && (oe = we, ge = de);
+ }
+ return {
+ edge: ge,
+ dist: oe
+ };
+ }; m.size() > 0; ) {
+ var A = m.pop(), w = y(A), I = A.id();
+ if (c[I] = w, w !== 1 / 0)
+ for (var C = A.neighborhood().intersect(d), B = 0; B < C.length; B++) {
+ var F = C[B], R = F.id(), X = M(A, F), z = w + X.dist;
+ z < y(F) && (p(F, z), h[R] = {
+ node: A,
+ edge: X.edge
+ });
+ }
+ }
+ return {
+ distanceTo: function(W) {
+ var Z = j(W) ? d.filter(W)[0] : W[0];
+ return c[Z.id()];
+ },
+ pathTo: function(W) {
+ var Z = j(W) ? d.filter(W)[0] : W[0], ie = [], oe = Z, ge = oe.id();
+ if (Z.length > 0)
+ for (ie.unshift(Z); h[ge]; ) {
+ var se = h[ge];
+ ie.unshift(se.edge), ie.unshift(se.node), oe = se.node, ge = oe.id();
+ }
+ return o.spawn(ie);
+ }
+ };
+ }
+ }, nf = {
+ // kruskal's algorithm (finds min spanning tree, assuming undirected graph)
+ // implemented from pseudocode from wikipedia
+ kruskal: function(e) {
+ e = e || function(b) {
+ return 1;
+ };
+ for (var r = this.byGroup(), a = r.nodes, n = r.edges, i = a.length, s = new Array(i), o = a, l = function(E) {
+ for (var M = 0; M < s.length; M++) {
+ var A = s[M];
+ if (A.has(E))
+ return M;
+ }
+ }, u = 0; u < i; u++)
+ s[u] = this.spawn(a[u]);
+ for (var f = n.sort(function(b, E) {
+ return e(b) - e(E);
+ }), h = 0; h < f.length; h++) {
+ var c = f[h], v = c.source()[0], d = c.target()[0], g = l(v), y = l(d), p = s[g], m = s[y];
+ g !== y && (o.merge(c), p.merge(m), s.splice(y, 1));
+ }
+ return o;
+ }
+ }, sf = Lt({
+ root: null,
+ goal: null,
+ weight: function(e) {
+ return 1;
+ },
+ heuristic: function(e) {
+ return 0;
+ },
+ directed: !1
+ }), of = {
+ // Implemented from pseudocode from wikipedia
+ aStar: function(e) {
+ var r = this.cy(), a = sf(e), n = a.root, i = a.goal, s = a.heuristic, o = a.directed, l = a.weight;
+ n = r.collection(n)[0], i = r.collection(i)[0];
+ var u = n.id(), f = i.id(), h = {}, c = {}, v = {}, d = new Ra(function(ge, se) {
+ return c[ge.id()] - c[se.id()];
+ }), g = new Jr(), y = {}, p = {}, m = function(se, de) {
+ d.push(se), g.add(de);
+ }, b, E, M = function() {
+ b = d.pop(), E = b.id(), g.delete(E);
+ }, A = function(se) {
+ return g.has(se);
+ };
+ m(n, u), h[u] = 0, c[u] = s(n);
+ for (var w = 0; d.size() > 0; ) {
+ if (M(), w++, E === f) {
+ for (var I = [], C = i, B = f, F = p[B]; I.unshift(C), F != null && I.unshift(F), C = y[B], C != null; )
+ B = C.id(), F = p[B];
+ return {
+ found: !0,
+ distance: h[E],
+ path: this.spawn(I),
+ steps: w
+ };
+ }
+ v[E] = !0;
+ for (var R = b._private.edges, X = 0; X < R.length; X++) {
+ var z = R[X];
+ if (this.hasElementWithId(z.id()) && !(o && z.data("source") !== E)) {
+ var re = z.source(), W = z.target(), Z = re.id() !== E ? re : W, ie = Z.id();
+ if (this.hasElementWithId(ie) && !v[ie]) {
+ var oe = h[E] + l(z);
+ if (!A(ie)) {
+ h[ie] = oe, c[ie] = oe + s(Z), m(Z, ie), y[ie] = b, p[ie] = z;
+ continue;
+ }
+ oe < h[ie] && (h[ie] = oe, c[ie] = oe + s(Z), y[ie] = b, p[ie] = z);
+ }
+ }
+ }
+ }
+ return {
+ found: !1,
+ distance: void 0,
+ path: void 0,
+ steps: w
+ };
+ }
+ }, uf = Lt({
+ weight: function(e) {
+ return 1;
+ },
+ directed: !1
+ }), lf = {
+ // Implemented from pseudocode from wikipedia
+ floydWarshall: function(e) {
+ for (var r = this.cy(), a = uf(e), n = a.weight, i = a.directed, s = n, o = this.byGroup(), l = o.nodes, u = o.edges, f = l.length, h = f * f, c = function(we) {
+ return l.indexOf(we);
+ }, v = function(we) {
+ return l[we];
+ }, d = new Array(h), g = 0; g < h; g++) {
+ var y = g % f, p = (g - y) / f;
+ p === y ? d[g] = 0 : d[g] = 1 / 0;
+ }
+ for (var m = new Array(h), b = new Array(h), E = 0; E < u.length; E++) {
+ var M = u[E], A = M.source()[0], w = M.target()[0];
+ if (A !== w) {
+ var I = c(A), C = c(w), B = I * f + C, F = s(M);
+ if (d[B] > F && (d[B] = F, m[B] = C, b[B] = M), !i) {
+ var R = C * f + I;
+ !i && d[R] > F && (d[R] = F, m[R] = I, b[R] = M);
+ }
+ }
+ }
+ for (var X = 0; X < f; X++)
+ for (var z = 0; z < f; z++)
+ for (var re = z * f + X, W = 0; W < f; W++) {
+ var Z = z * f + W, ie = X * f + W;
+ d[re] + d[ie] < d[Z] && (d[Z] = d[re] + d[ie], m[Z] = m[re]);
+ }
+ var oe = function(we) {
+ return (j(we) ? r.filter(we) : we)[0];
+ }, ge = function(we) {
+ return c(oe(we));
+ }, se = {
+ distance: function(we, Te) {
+ var Ee = ge(we), ye = ge(Te);
+ return d[Ee * f + ye];
+ },
+ path: function(we, Te) {
+ var Ee = ge(we), ye = ge(Te), ae = v(Ee);
+ if (Ee === ye)
+ return ae.collection();
+ if (m[Ee * f + ye] == null)
+ return r.collection();
+ var xe = r.collection(), Ce = Ee, Oe;
+ for (xe.merge(ae); Ee !== ye; )
+ Ce = Ee, Ee = m[Ee * f + ye], Oe = b[Ce * f + Ee], xe.merge(Oe), xe.merge(v(Ee));
+ return xe;
+ }
+ };
+ return se;
+ }
+ // floydWarshall
+ }, ff = Lt({
+ weight: function(e) {
+ return 1;
+ },
+ directed: !1,
+ root: null
+ }), hf = {
+ // Implemented from pseudocode from wikipedia
+ bellmanFord: function(e) {
+ var r = this, a = ff(e), n = a.weight, i = a.directed, s = a.root, o = n, l = this, u = this.cy(), f = this.byGroup(), h = f.edges, c = f.nodes, v = c.length, d = new ur(), g = !1, y = [];
+ s = u.collection(s)[0], h.unmergeBy(function(Fe) {
+ return Fe.isLoop();
+ });
+ for (var p = h.length, m = function(ke) {
+ var Ge = d.get(ke.id());
+ return Ge || (Ge = {}, d.set(ke.id(), Ge)), Ge;
+ }, b = function(ke) {
+ return (j(ke) ? u.$(ke) : ke)[0];
+ }, E = function(ke) {
+ return m(b(ke)).dist;
+ }, M = function(ke) {
+ for (var Ge = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : s, et = b(ke), We = [], Ye = et; ; ) {
+ if (Ye == null)
+ return r.spawn();
+ var Se = m(Ye), N = Se.edge, le = Se.pred;
+ if (We.unshift(Ye[0]), Ye.same(Ge) && We.length > 0)
+ break;
+ N != null && We.unshift(N), Ye = le;
+ }
+ return l.spawn(We);
+ }, A = 0; A < v; A++) {
+ var w = c[A], I = m(w);
+ w.same(s) ? I.dist = 0 : I.dist = 1 / 0, I.pred = null, I.edge = null;
+ }
+ for (var C = !1, B = function(ke, Ge, et, We, Ye, Se) {
+ var N = We.dist + Se;
+ N < Ye.dist && !et.same(We.edge) && (Ye.dist = N, Ye.pred = ke, Ye.edge = et, C = !0);
+ }, F = 1; F < v; F++) {
+ C = !1;
+ for (var R = 0; R < p; R++) {
+ var X = h[R], z = X.source(), re = X.target(), W = o(X), Z = m(z), ie = m(re);
+ B(z, re, X, Z, ie, W), i || B(re, z, X, ie, Z, W);
+ }
+ if (!C)
+ break;
+ }
+ if (C)
+ for (var oe = [], ge = 0; ge < p; ge++) {
+ var se = h[ge], de = se.source(), we = se.target(), Te = o(se), Ee = m(de).dist, ye = m(we).dist;
+ if (Ee + Te < ye || !i && ye + Te < Ee)
+ if (g || (ft("Graph contains a negative weight cycle for Bellman-Ford"), g = !0), e.findNegativeWeightCycles !== !1) {
+ var ae = [];
+ Ee + Te < ye && ae.push(de), !i && ye + Te < Ee && ae.push(we);
+ for (var xe = ae.length, Ce = 0; Ce < xe; Ce++) {
+ var Oe = ae[Ce], Ie = [Oe];
+ Ie.push(m(Oe).edge);
+ for (var He = m(Oe).pred; Ie.indexOf(He) === -1; )
+ Ie.push(He), Ie.push(m(He).edge), He = m(He).pred;
+ Ie = Ie.slice(Ie.indexOf(He));
+ for (var qe = Ie[0].id(), Re = 0, Me = 2; Me < Ie.length; Me += 2)
+ Ie[Me].id() < qe && (qe = Ie[Me].id(), Re = Me);
+ Ie = Ie.slice(Re).concat(Ie.slice(0, Re)), Ie.push(Ie[0]);
+ var Ve = Ie.map(function(Fe) {
+ return Fe.id();
+ }).join(",");
+ oe.indexOf(Ve) === -1 && (y.push(l.spawn(Ie)), oe.push(Ve));
+ }
+ } else
+ break;
+ }
+ return {
+ distanceTo: E,
+ pathTo: M,
+ hasNegativeWeightCycle: g,
+ negativeWeightCycles: y
+ };
+ }
+ // bellmanFord
+ }, cf = Math.sqrt(2), vf = function(e, r, a) {
+ a.length === 0 && xt("Karger-Stein must be run on a connected (sub)graph");
+ for (var n = a[e], i = n[1], s = n[2], o = r[i], l = r[s], u = a, f = u.length - 1; f >= 0; f--) {
+ var h = u[f], c = h[1], v = h[2];
+ (r[c] === o && r[v] === l || r[c] === l && r[v] === o) && u.splice(f, 1);
+ }
+ for (var d = 0; d < u.length; d++) {
+ var g = u[d];
+ g[1] === l ? (u[d] = g.slice(), u[d][1] = o) : g[2] === l && (u[d] = g.slice(), u[d][2] = o);
+ }
+ for (var y = 0; y < r.length; y++)
+ r[y] === l && (r[y] = o);
+ return u;
+ }, ui = function(e, r, a, n) {
+ for (; a > n; ) {
+ var i = Math.floor(Math.random() * r.length);
+ r = vf(i, e, r), a--;
+ }
+ return r;
+ }, df = {
+ // Computes the minimum cut of an undirected graph
+ // Returns the correct answer with high probability
+ kargerStein: function() {
+ var e = this, r = this.byGroup(), a = r.nodes, n = r.edges;
+ n.unmergeBy(function(ie) {
+ return ie.isLoop();
+ });
+ var i = a.length, s = n.length, o = Math.ceil(Math.pow(Math.log(i) / Math.LN2, 2)), l = Math.floor(i / cf);
+ if (i < 2) {
+ xt("At least 2 nodes are required for Karger-Stein algorithm");
+ return;
+ }
+ for (var u = [], f = 0; f < s; f++) {
+ var h = n[f];
+ u.push([f, a.indexOf(h.source()), a.indexOf(h.target())]);
+ }
+ for (var c = 1 / 0, v = [], d = new Array(i), g = new Array(i), y = new Array(i), p = function(oe, ge) {
+ for (var se = 0; se < i; se++)
+ ge[se] = oe[se];
+ }, m = 0; m <= o; m++) {
+ for (var b = 0; b < i; b++)
+ g[b] = b;
+ var E = ui(g, u.slice(), i, l), M = E.slice();
+ p(g, y);
+ var A = ui(g, E, l, 2), w = ui(y, M, l, 2);
+ A.length <= w.length && A.length < c ? (c = A.length, v = A, p(g, d)) : w.length <= A.length && w.length < c && (c = w.length, v = w, p(y, d));
+ }
+ for (var I = this.spawn(v.map(function(ie) {
+ return n[ie[0]];
+ })), C = this.spawn(), B = this.spawn(), F = d[0], R = 0; R < d.length; R++) {
+ var X = d[R], z = a[R];
+ X === F ? C.merge(z) : B.merge(z);
+ }
+ var re = function(oe) {
+ var ge = e.spawn();
+ return oe.forEach(function(se) {
+ ge.merge(se), se.connectedEdges().forEach(function(de) {
+ e.contains(de) && !I.contains(de) && ge.merge(de);
+ });
+ }), ge;
+ }, W = [re(C), re(B)], Z = {
+ cut: I,
+ components: W,
+ // n.b. partitions are included to be compatible with the old api spec
+ // (could be removed in a future major version)
+ partition1: C,
+ partition2: B
+ };
+ return Z;
+ }
+ }, gf = function(e) {
+ return {
+ x: e.x,
+ y: e.y
+ };
+ }, dn = function(e, r, a) {
+ return {
+ x: e.x * r + a.x,
+ y: e.y * r + a.y
+ };
+ }, bs = function(e, r, a) {
+ return {
+ x: (e.x - a.x) / r,
+ y: (e.y - a.y) / r
+ };
+ }, jr = function(e) {
+ return {
+ x: e[0],
+ y: e[1]
+ };
+ }, pf = function(e) {
+ for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = 1 / 0, i = r; i < a; i++) {
+ var s = e[i];
+ isFinite(s) && (n = Math.min(s, n));
+ }
+ return n;
+ }, yf = function(e) {
+ for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = -1 / 0, i = r; i < a; i++) {
+ var s = e[i];
+ isFinite(s) && (n = Math.max(s, n));
+ }
+ return n;
+ }, mf = function(e) {
+ for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = 0, i = 0, s = r; s < a; s++) {
+ var o = e[s];
+ isFinite(o) && (n += o, i++);
+ }
+ return n / i;
+ }, bf = function(e) {
+ var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, s = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0;
+ n ? e = e.slice(r, a) : (a < e.length && e.splice(a, e.length - a), r > 0 && e.splice(0, r));
+ for (var o = 0, l = e.length - 1; l >= 0; l--) {
+ var u = e[l];
+ s ? isFinite(u) || (e[l] = -1 / 0, o++) : e.splice(l, 1);
+ }
+ i && e.sort(function(c, v) {
+ return c - v;
+ });
+ var f = e.length, h = Math.floor(f / 2);
+ return f % 2 !== 0 ? e[h + 1 + o] : (e[h - 1 + o] + e[h + o]) / 2;
+ }, Ef = function(e) {
+ return Math.PI * e / 180;
+ }, gn = function(e, r) {
+ return Math.atan2(r, e) - Math.PI / 2;
+ }, li = Math.log2 || function(t) {
+ return Math.log(t) / Math.log(2);
+ }, Es = function(e) {
+ return e > 0 ? 1 : e < 0 ? -1 : 0;
+ }, Pr = function(e, r) {
+ return Math.sqrt(Br(e, r));
+ }, Br = function(e, r) {
+ var a = r.x - e.x, n = r.y - e.y;
+ return a * a + n * n;
+ }, wf = function(e) {
+ for (var r = e.length, a = 0, n = 0; n < r; n++)
+ a += e[n];
+ for (var i = 0; i < r; i++)
+ e[i] = e[i] / a;
+ return e;
+ }, St = function(e, r, a, n) {
+ return (1 - n) * (1 - n) * e + 2 * (1 - n) * n * r + n * n * a;
+ }, ea = function(e, r, a, n) {
+ return {
+ x: St(e.x, r.x, a.x, n),
+ y: St(e.y, r.y, a.y, n)
+ };
+ }, xf = function(e, r, a, n) {
+ var i = {
+ x: r.x - e.x,
+ y: r.y - e.y
+ }, s = Pr(e, r), o = {
+ x: i.x / s,
+ y: i.y / s
+ };
+ return a = a ?? 0, n = n ?? a * s, {
+ x: e.x + o.x * n,
+ y: e.y + o.y * n
+ };
+ }, ka = function(e, r, a) {
+ return Math.max(e, Math.min(a, r));
+ }, Ut = function(e) {
+ if (e == null)
+ return {
+ x1: 1 / 0,
+ y1: 1 / 0,
+ x2: -1 / 0,
+ y2: -1 / 0,
+ w: 0,
+ h: 0
+ };
+ if (e.x1 != null && e.y1 != null) {
+ if (e.x2 != null && e.y2 != null && e.x2 >= e.x1 && e.y2 >= e.y1)
+ return {
+ x1: e.x1,
+ y1: e.y1,
+ x2: e.x2,
+ y2: e.y2,
+ w: e.x2 - e.x1,
+ h: e.y2 - e.y1
+ };
+ if (e.w != null && e.h != null && e.w >= 0 && e.h >= 0)
+ return {
+ x1: e.x1,
+ y1: e.y1,
+ x2: e.x1 + e.w,
+ y2: e.y1 + e.h,
+ w: e.w,
+ h: e.h
+ };
+ }
+ }, Tf = function(e) {
+ return {
+ x1: e.x1,
+ x2: e.x2,
+ w: e.w,
+ y1: e.y1,
+ y2: e.y2,
+ h: e.h
+ };
+ }, Cf = function(e) {
+ e.x1 = 1 / 0, e.y1 = 1 / 0, e.x2 = -1 / 0, e.y2 = -1 / 0, e.w = 0, e.h = 0;
+ }, Df = function(e, r) {
+ e.x1 = Math.min(e.x1, r.x1), e.x2 = Math.max(e.x2, r.x2), e.w = e.x2 - e.x1, e.y1 = Math.min(e.y1, r.y1), e.y2 = Math.max(e.y2, r.y2), e.h = e.y2 - e.y1;
+ }, Sf = function(e, r, a) {
+ e.x1 = Math.min(e.x1, r), e.x2 = Math.max(e.x2, r), e.w = e.x2 - e.x1, e.y1 = Math.min(e.y1, a), e.y2 = Math.max(e.y2, a), e.h = e.y2 - e.y1;
+ }, pn = function(e) {
+ var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ return e.x1 -= r, e.x2 += r, e.y1 -= r, e.y2 += r, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1, e;
+ }, fi = function(e) {
+ var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [0], a, n, i, s;
+ if (r.length === 1)
+ a = n = i = s = r[0];
+ else if (r.length === 2)
+ a = i = r[0], s = n = r[1];
+ else if (r.length === 4) {
+ var o = x(r, 4);
+ a = o[0], n = o[1], i = o[2], s = o[3];
+ }
+ return e.x1 -= s, e.x2 += n, e.y1 -= a, e.y2 += i, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1, e;
+ }, ws = function(e, r) {
+ e.x1 = r.x1, e.y1 = r.y1, e.x2 = r.x2, e.y2 = r.y2, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1;
+ }, hi = function(e, r) {
+ return !(e.x1 > r.x2 || r.x1 > e.x2 || e.x2 < r.x1 || r.x2 < e.x1 || e.y2 < r.y1 || r.y2 < e.y1 || e.y1 > r.y2 || r.y1 > e.y2);
+ }, ta = function(e, r, a) {
+ return e.x1 <= r && r <= e.x2 && e.y1 <= a && a <= e.y2;
+ }, Lf = function(e, r) {
+ return ta(e, r.x, r.y);
+ }, xs = function(e, r) {
+ return ta(e, r.x1, r.y1) && ta(e, r.x2, r.y2);
+ }, Ts = function(e, r, a, n, i, s, o) {
+ var l = Fa(i, s), u = i / 2, f = s / 2, h;
+ {
+ var c = a - u + l - o, v = n - f - o, d = a + u - l + o, g = v;
+ if (h = Tr(e, r, a, n, c, v, d, g, !1), h.length > 0)
+ return h;
+ }
+ {
+ var y = a + u + o, p = n - f + l - o, m = y, b = n + f - l + o;
+ if (h = Tr(e, r, a, n, y, p, m, b, !1), h.length > 0)
+ return h;
+ }
+ {
+ var E = a - u + l - o, M = n + f + o, A = a + u - l + o, w = M;
+ if (h = Tr(e, r, a, n, E, M, A, w, !1), h.length > 0)
+ return h;
+ }
+ {
+ var I = a - u - o, C = n - f + l - o, B = I, F = n + f - l + o;
+ if (h = Tr(e, r, a, n, I, C, B, F, !1), h.length > 0)
+ return h;
+ }
+ var R;
+ {
+ var X = a - u + l, z = n - f + l;
+ if (R = Pa(e, r, a, n, X, z, l + o), R.length > 0 && R[0] <= X && R[1] <= z)
+ return [R[0], R[1]];
+ }
+ {
+ var re = a + u - l, W = n - f + l;
+ if (R = Pa(e, r, a, n, re, W, l + o), R.length > 0 && R[0] >= re && R[1] <= W)
+ return [R[0], R[1]];
+ }
+ {
+ var Z = a + u - l, ie = n + f - l;
+ if (R = Pa(e, r, a, n, Z, ie, l + o), R.length > 0 && R[0] >= Z && R[1] >= ie)
+ return [R[0], R[1]];
+ }
+ {
+ var oe = a - u + l, ge = n + f - l;
+ if (R = Pa(e, r, a, n, oe, ge, l + o), R.length > 0 && R[0] <= oe && R[1] >= ge)
+ return [R[0], R[1]];
+ }
+ return [];
+ }, Af = function(e, r, a, n, i, s, o) {
+ var l = o, u = Math.min(a, i), f = Math.max(a, i), h = Math.min(n, s), c = Math.max(n, s);
+ return u - l <= e && e <= f + l && h - l <= r && r <= c + l;
+ }, Of = function(e, r, a, n, i, s, o, l, u) {
+ var f = {
+ x1: Math.min(a, o, i) - u,
+ x2: Math.max(a, o, i) + u,
+ y1: Math.min(n, l, s) - u,
+ y2: Math.max(n, l, s) + u
+ };
+ return !(e < f.x1 || e > f.x2 || r < f.y1 || r > f.y2);
+ }, Nf = function(e, r, a, n) {
+ a -= n;
+ var i = r * r - 4 * e * a;
+ if (i < 0)
+ return [];
+ var s = Math.sqrt(i), o = 2 * e, l = (-r + s) / o, u = (-r - s) / o;
+ return [l, u];
+ }, Mf = function(e, r, a, n, i) {
+ var s = 1e-5;
+ e === 0 && (e = s), r /= e, a /= e, n /= e;
+ var o, l, u, f, h, c, v, d;
+ if (l = (3 * a - r * r) / 9, u = -(27 * n) + r * (9 * a - 2 * (r * r)), u /= 54, o = l * l * l + u * u, i[1] = 0, v = r / 3, o > 0) {
+ h = u + Math.sqrt(o), h = h < 0 ? -Math.pow(-h, 1 / 3) : Math.pow(h, 1 / 3), c = u - Math.sqrt(o), c = c < 0 ? -Math.pow(-c, 1 / 3) : Math.pow(c, 1 / 3), i[0] = -v + h + c, v += (h + c) / 2, i[4] = i[2] = -v, v = Math.sqrt(3) * (-c + h) / 2, i[3] = v, i[5] = -v;
+ return;
+ }
+ if (i[5] = i[3] = 0, o === 0) {
+ d = u < 0 ? -Math.pow(-u, 1 / 3) : Math.pow(u, 1 / 3), i[0] = -v + 2 * d, i[4] = i[2] = -(d + v);
+ return;
+ }
+ l = -l, f = l * l * l, f = Math.acos(u / Math.sqrt(f)), d = 2 * Math.sqrt(l), i[0] = -v + d * Math.cos(f / 3), i[2] = -v + d * Math.cos((f + 2 * Math.PI) / 3), i[4] = -v + d * Math.cos((f + 4 * Math.PI) / 3);
+ }, If = function(e, r, a, n, i, s, o, l) {
+ var u = 1 * a * a - 4 * a * i + 2 * a * o + 4 * i * i - 4 * i * o + o * o + n * n - 4 * n * s + 2 * n * l + 4 * s * s - 4 * s * l + l * l, f = 1 * 9 * a * i - 3 * a * a - 3 * a * o - 6 * i * i + 3 * i * o + 9 * n * s - 3 * n * n - 3 * n * l - 6 * s * s + 3 * s * l, h = 1 * 3 * a * a - 6 * a * i + a * o - a * e + 2 * i * i + 2 * i * e - o * e + 3 * n * n - 6 * n * s + n * l - n * r + 2 * s * s + 2 * s * r - l * r, c = 1 * a * i - a * a + a * e - i * e + n * s - n * n + n * r - s * r, v = [];
+ Mf(u, f, h, c, v);
+ for (var d = 1e-7, g = [], y = 0; y < 6; y += 2)
+ Math.abs(v[y + 1]) < d && v[y] >= 0 && v[y] <= 1 && g.push(v[y]);
+ g.push(1), g.push(0);
+ for (var p = -1, m, b, E, M = 0; M < g.length; M++)
+ m = Math.pow(1 - g[M], 2) * a + 2 * (1 - g[M]) * g[M] * i + g[M] * g[M] * o, b = Math.pow(1 - g[M], 2) * n + 2 * (1 - g[M]) * g[M] * s + g[M] * g[M] * l, E = Math.pow(m - e, 2) + Math.pow(b - r, 2), p >= 0 ? E < p && (p = E) : p = E;
+ return p;
+ }, Rf = function(e, r, a, n, i, s) {
+ var o = [e - a, r - n], l = [i - a, s - n], u = l[0] * l[0] + l[1] * l[1], f = o[0] * o[0] + o[1] * o[1], h = o[0] * l[0] + o[1] * l[1], c = h * h / u;
+ return h < 0 ? f : c > u ? (e - i) * (e - i) + (r - s) * (r - s) : f - c;
+ }, Yt = function(e, r, a) {
+ for (var n, i, s, o, l, u = 0, f = 0; f < a.length / 2; f++)
+ if (n = a[f * 2], i = a[f * 2 + 1], f + 1 < a.length / 2 ? (s = a[(f + 1) * 2], o = a[(f + 1) * 2 + 1]) : (s = a[(f + 1 - a.length / 2) * 2], o = a[(f + 1 - a.length / 2) * 2 + 1]), !(n == e && s == e))
+ if (n >= e && e >= s || n <= e && e <= s)
+ l = (e - n) / (s - n) * (o - i) + i, l > r && u++;
+ else
+ continue;
+ return u % 2 !== 0;
+ }, gr = function(e, r, a, n, i, s, o, l, u) {
+ var f = new Array(a.length), h;
+ l[0] != null ? (h = Math.atan(l[1] / l[0]), l[0] < 0 ? h = h + Math.PI / 2 : h = -h - Math.PI / 2) : h = l;
+ for (var c = Math.cos(-h), v = Math.sin(-h), d = 0; d < f.length / 2; d++)
+ f[d * 2] = s / 2 * (a[d * 2] * c - a[d * 2 + 1] * v), f[d * 2 + 1] = o / 2 * (a[d * 2 + 1] * c + a[d * 2] * v), f[d * 2] += n, f[d * 2 + 1] += i;
+ var g;
+ if (u > 0) {
+ var y = Ds(f, -u);
+ g = Cs(y);
+ } else
+ g = f;
+ return Yt(e, r, g);
+ }, kf = function(e, r, a, n, i, s, o) {
+ for (var l = new Array(a.length), u = s / 2, f = o / 2, h = di(s, o), c = h * h, v = 0; v < a.length / 4; v++) {
+ var d = void 0, g = void 0;
+ v === 0 ? d = a.length - 2 : d = v * 4 - 2, g = v * 4 + 2;
+ var y = n + u * a[v * 4], p = i + f * a[v * 4 + 1], m = -a[d] * a[g] - a[d + 1] * a[g + 1], b = h / Math.tan(Math.acos(m) / 2), E = y - b * a[d], M = p - b * a[d + 1], A = y + b * a[g], w = p + b * a[g + 1];
+ l[v * 4] = E, l[v * 4 + 1] = M, l[v * 4 + 2] = A, l[v * 4 + 3] = w;
+ var I = a[d + 1], C = -a[d], B = I * a[g] + C * a[g + 1];
+ B < 0 && (I *= -1, C *= -1);
+ var F = E + I * h, R = M + C * h, X = Math.pow(F - e, 2) + Math.pow(R - r, 2);
+ if (X <= c)
+ return !0;
+ }
+ return Yt(e, r, l);
+ }, Cs = function(e) {
+ for (var r = new Array(e.length / 2), a, n, i, s, o, l, u, f, h = 0; h < e.length / 4; h++) {
+ a = e[h * 4], n = e[h * 4 + 1], i = e[h * 4 + 2], s = e[h * 4 + 3], h < e.length / 4 - 1 ? (o = e[(h + 1) * 4], l = e[(h + 1) * 4 + 1], u = e[(h + 1) * 4 + 2], f = e[(h + 1) * 4 + 3]) : (o = e[0], l = e[1], u = e[2], f = e[3]);
+ var c = Tr(a, n, i, s, o, l, u, f, !0);
+ r[h * 2] = c[0], r[h * 2 + 1] = c[1];
+ }
+ return r;
+ }, Ds = function(e, r) {
+ for (var a = new Array(e.length * 2), n, i, s, o, l = 0; l < e.length / 2; l++) {
+ n = e[l * 2], i = e[l * 2 + 1], l < e.length / 2 - 1 ? (s = e[(l + 1) * 2], o = e[(l + 1) * 2 + 1]) : (s = e[0], o = e[1]);
+ var u = o - i, f = -(s - n), h = Math.sqrt(u * u + f * f), c = u / h, v = f / h;
+ a[l * 4] = n + c * r, a[l * 4 + 1] = i + v * r, a[l * 4 + 2] = s + c * r, a[l * 4 + 3] = o + v * r;
+ }
+ return a;
+ }, Pf = function(e, r, a, n, i, s) {
+ var o = a - e, l = n - r;
+ o /= i, l /= s;
+ var u = Math.sqrt(o * o + l * l), f = u - 1;
+ if (f < 0)
+ return [];
+ var h = f / u;
+ return [(a - e) * h + e, (n - r) * h + r];
+ }, Fr = function(e, r, a, n, i, s, o) {
+ return e -= i, r -= s, e /= a / 2 + o, r /= n / 2 + o, e * e + r * r <= 1;
+ }, Pa = function(e, r, a, n, i, s, o) {
+ var l = [a - e, n - r], u = [e - i, r - s], f = l[0] * l[0] + l[1] * l[1], h = 2 * (u[0] * l[0] + u[1] * l[1]), c = u[0] * u[0] + u[1] * u[1] - o * o, v = h * h - 4 * f * c;
+ if (v < 0)
+ return [];
+ var d = (-h + Math.sqrt(v)) / (2 * f), g = (-h - Math.sqrt(v)) / (2 * f), y = Math.min(d, g), p = Math.max(d, g), m = [];
+ if (y >= 0 && y <= 1 && m.push(y), p >= 0 && p <= 1 && m.push(p), m.length === 0)
+ return [];
+ var b = m[0] * l[0] + e, E = m[0] * l[1] + r;
+ if (m.length > 1) {
+ if (m[0] == m[1])
+ return [b, E];
+ var M = m[1] * l[0] + e, A = m[1] * l[1] + r;
+ return [b, E, M, A];
+ } else
+ return [b, E];
+ }, ci = function(e, r, a) {
+ return r <= e && e <= a || a <= e && e <= r ? e : e <= r && r <= a || a <= r && r <= e ? r : a;
+ }, Tr = function(e, r, a, n, i, s, o, l, u) {
+ var f = e - i, h = a - e, c = o - i, v = r - s, d = n - r, g = l - s, y = c * v - g * f, p = h * v - d * f, m = g * h - c * d;
+ if (m !== 0) {
+ var b = y / m, E = p / m, M = 1e-3, A = 0 - M, w = 1 + M;
+ return A <= b && b <= w && A <= E && E <= w ? [e + b * h, r + b * d] : u ? [e + b * h, r + b * d] : [];
+ } else
+ return y === 0 || p === 0 ? ci(e, a, o) === o ? [o, l] : ci(e, a, i) === i ? [i, s] : ci(i, o, a) === a ? [a, n] : [] : [];
+ }, Ba = function(e, r, a, n, i, s, o, l) {
+ var u = [], f, h = new Array(a.length), c = !0;
+ s == null && (c = !1);
+ var v;
+ if (c) {
+ for (var d = 0; d < h.length / 2; d++)
+ h[d * 2] = a[d * 2] * s + n, h[d * 2 + 1] = a[d * 2 + 1] * o + i;
+ if (l > 0) {
+ var g = Ds(h, -l);
+ v = Cs(g);
+ } else
+ v = h;
+ } else
+ v = a;
+ for (var y, p, m, b, E = 0; E < v.length / 2; E++)
+ y = v[E * 2], p = v[E * 2 + 1], E < v.length / 2 - 1 ? (m = v[(E + 1) * 2], b = v[(E + 1) * 2 + 1]) : (m = v[0], b = v[1]), f = Tr(e, r, n, i, y, p, m, b), f.length !== 0 && u.push(f[0], f[1]);
+ return u;
+ }, Bf = function(e, r, a, n, i, s, o, l) {
+ for (var u = [], f, h = new Array(a.length), c = s / 2, v = o / 2, d = di(s, o), g = 0; g < a.length / 4; g++) {
+ var y = void 0, p = void 0;
+ g === 0 ? y = a.length - 2 : y = g * 4 - 2, p = g * 4 + 2;
+ var m = n + c * a[g * 4], b = i + v * a[g * 4 + 1], E = -a[y] * a[p] - a[y + 1] * a[p + 1], M = d / Math.tan(Math.acos(E) / 2), A = m - M * a[y], w = b - M * a[y + 1], I = m + M * a[p], C = b + M * a[p + 1];
+ g === 0 ? (h[a.length - 2] = A, h[a.length - 1] = w) : (h[g * 4 - 2] = A, h[g * 4 - 1] = w), h[g * 4] = I, h[g * 4 + 1] = C;
+ var B = a[y + 1], F = -a[y], R = B * a[p] + F * a[p + 1];
+ R < 0 && (B *= -1, F *= -1);
+ var X = A + B * d, z = w + F * d;
+ f = Pa(e, r, n, i, X, z, d), f.length !== 0 && u.push(f[0], f[1]);
+ }
+ for (var re = 0; re < h.length / 4; re++)
+ f = Tr(e, r, n, i, h[re * 4], h[re * 4 + 1], h[re * 4 + 2], h[re * 4 + 3], !1), f.length !== 0 && u.push(f[0], f[1]);
+ if (u.length > 2) {
+ for (var W = [u[0], u[1]], Z = Math.pow(W[0] - e, 2) + Math.pow(W[1] - r, 2), ie = 1; ie < u.length / 2; ie++) {
+ var oe = Math.pow(u[ie * 2] - e, 2) + Math.pow(u[ie * 2 + 1] - r, 2);
+ oe <= Z && (W[0] = u[ie * 2], W[1] = u[ie * 2 + 1], Z = oe);
+ }
+ return W;
+ }
+ return u;
+ }, yn = function(e, r, a) {
+ var n = [e[0] - r[0], e[1] - r[1]], i = Math.sqrt(n[0] * n[0] + n[1] * n[1]), s = (i - a) / i;
+ return s < 0 && (s = 1e-5), [r[0] + s * n[0], r[1] + s * n[1]];
+ }, $t = function(e, r) {
+ var a = vi(e, r);
+ return a = Ss(a), a;
+ }, Ss = function(e) {
+ for (var r, a, n = e.length / 2, i = 1 / 0, s = 1 / 0, o = -1 / 0, l = -1 / 0, u = 0; u < n; u++)
+ r = e[2 * u], a = e[2 * u + 1], i = Math.min(i, r), o = Math.max(o, r), s = Math.min(s, a), l = Math.max(l, a);
+ for (var f = 2 / (o - i), h = 2 / (l - s), c = 0; c < n; c++)
+ r = e[2 * c] = e[2 * c] * f, a = e[2 * c + 1] = e[2 * c + 1] * h, i = Math.min(i, r), o = Math.max(o, r), s = Math.min(s, a), l = Math.max(l, a);
+ if (s < -1)
+ for (var v = 0; v < n; v++)
+ a = e[2 * v + 1] = e[2 * v + 1] + (-1 - s);
+ return e;
+ }, vi = function(e, r) {
+ var a = 1 / e * 2 * Math.PI, n = e % 2 === 0 ? Math.PI / 2 + a / 2 : Math.PI / 2;
+ n += r;
+ for (var i = new Array(e * 2), s, o = 0; o < e; o++)
+ s = o * a + n, i[2 * o] = Math.cos(s), i[2 * o + 1] = Math.sin(-s);
+ return i;
+ }, Fa = function(e, r) {
+ return Math.min(e / 4, r / 4, 8);
+ }, di = function(e, r) {
+ return Math.min(e / 10, r / 10, 8);
+ }, Ls = function() {
+ return 8;
+ }, Ff = function(e, r, a) {
+ return [e - 2 * r + a, 2 * (r - e), e];
+ }, gi = function(e, r) {
+ return {
+ heightOffset: Math.min(15, 0.05 * r),
+ widthOffset: Math.min(100, 0.25 * e),
+ ctrlPtOffsetPct: 0.05
+ };
+ }, zf = Lt({
+ dampingFactor: 0.8,
+ precision: 1e-6,
+ iterations: 200,
+ weight: function(e) {
+ return 1;
+ }
+ }), Gf = {
+ pageRank: function(e) {
+ for (var r = zf(e), a = r.dampingFactor, n = r.precision, i = r.iterations, s = r.weight, o = this._private.cy, l = this.byGroup(), u = l.nodes, f = l.edges, h = u.length, c = h * h, v = f.length, d = new Array(c), g = new Array(h), y = (1 - a) / h, p = 0; p < h; p++) {
+ for (var m = 0; m < h; m++) {
+ var b = p * h + m;
+ d[b] = 0;
+ }
+ g[p] = 0;
+ }
+ for (var E = 0; E < v; E++) {
+ var M = f[E], A = M.data("source"), w = M.data("target");
+ if (A !== w) {
+ var I = u.indexOfId(A), C = u.indexOfId(w), B = s(M), F = C * h + I;
+ d[F] += B, g[I] += B;
+ }
+ }
+ for (var R = 1 / h + y, X = 0; X < h; X++)
+ if (g[X] === 0)
+ for (var z = 0; z < h; z++) {
+ var re = z * h + X;
+ d[re] = R;
+ }
+ else
+ for (var W = 0; W < h; W++) {
+ var Z = W * h + X;
+ d[Z] = d[Z] / g[X] + y;
+ }
+ for (var ie = new Array(h), oe = new Array(h), ge, se = 0; se < h; se++)
+ ie[se] = 1;
+ for (var de = 0; de < i; de++) {
+ for (var we = 0; we < h; we++)
+ oe[we] = 0;
+ for (var Te = 0; Te < h; Te++)
+ for (var Ee = 0; Ee < h; Ee++) {
+ var ye = Te * h + Ee;
+ oe[Te] += d[ye] * ie[Ee];
+ }
+ wf(oe), ge = ie, ie = oe, oe = ge;
+ for (var ae = 0, xe = 0; xe < h; xe++) {
+ var Ce = ge[xe] - ie[xe];
+ ae += Ce * Ce;
+ }
+ if (ae < n)
+ break;
+ }
+ var Oe = {
+ rank: function(He) {
+ return He = o.collection(He)[0], ie[u.indexOf(He)];
+ }
+ };
+ return Oe;
+ }
+ // pageRank
+ }, As = Lt({
+ root: null,
+ weight: function(e) {
+ return 1;
+ },
+ directed: !1,
+ alpha: 0
+ }), ra = {
+ degreeCentralityNormalized: function(e) {
+ e = As(e);
+ var r = this.cy(), a = this.nodes(), n = a.length;
+ if (e.directed) {
+ for (var f = {}, h = {}, c = 0, v = 0, d = 0; d < n; d++) {
+ var g = a[d], y = g.id();
+ e.root = g;
+ var p = this.degreeCentrality(e);
+ c < p.indegree && (c = p.indegree), v < p.outdegree && (v = p.outdegree), f[y] = p.indegree, h[y] = p.outdegree;
+ }
+ return {
+ indegree: function(b) {
+ return c == 0 ? 0 : (j(b) && (b = r.filter(b)), f[b.id()] / c);
+ },
+ outdegree: function(b) {
+ return v === 0 ? 0 : (j(b) && (b = r.filter(b)), h[b.id()] / v);
+ }
+ };
+ } else {
+ for (var i = {}, s = 0, o = 0; o < n; o++) {
+ var l = a[o];
+ e.root = l;
+ var u = this.degreeCentrality(e);
+ s < u.degree && (s = u.degree), i[l.id()] = u.degree;
+ }
+ return {
+ degree: function(b) {
+ return s === 0 ? 0 : (j(b) && (b = r.filter(b)), i[b.id()] / s);
+ }
+ };
+ }
+ },
+ // degreeCentralityNormalized
+ // Implemented from the algorithm in Opsahl's paper
+ // "Node centrality in weighted networks: Generalizing degree and shortest paths"
+ // check the heading 2 "Degree"
+ degreeCentrality: function(e) {
+ e = As(e);
+ var r = this.cy(), a = this, n = e, i = n.root, s = n.weight, o = n.directed, l = n.alpha;
+ if (i = r.collection(i)[0], o) {
+ for (var v = i.connectedEdges(), d = v.filter(function(A) {
+ return A.target().same(i) && a.has(A);
+ }), g = v.filter(function(A) {
+ return A.source().same(i) && a.has(A);
+ }), y = d.length, p = g.length, m = 0, b = 0, E = 0; E < d.length; E++)
+ m += s(d[E]);
+ for (var M = 0; M < g.length; M++)
+ b += s(g[M]);
+ return {
+ indegree: Math.pow(y, 1 - l) * Math.pow(m, l),
+ outdegree: Math.pow(p, 1 - l) * Math.pow(b, l)
+ };
+ } else {
+ for (var u = i.connectedEdges().intersection(a), f = u.length, h = 0, c = 0; c < u.length; c++)
+ h += s(u[c]);
+ return {
+ degree: Math.pow(f, 1 - l) * Math.pow(h, l)
+ };
+ }
+ }
+ // degreeCentrality
+ };
+ ra.dc = ra.degreeCentrality, ra.dcn = ra.degreeCentralityNormalised = ra.degreeCentralityNormalized;
+ var Os = Lt({
+ harmonic: !0,
+ weight: function() {
+ return 1;
+ },
+ directed: !1,
+ root: null
+ }), aa = {
+ closenessCentralityNormalized: function(e) {
+ for (var r = Os(e), a = r.harmonic, n = r.weight, i = r.directed, s = this.cy(), o = {}, l = 0, u = this.nodes(), f = this.floydWarshall({
+ weight: n,
+ directed: i
+ }), h = 0; h < u.length; h++) {
+ for (var c = 0, v = u[h], d = 0; d < u.length; d++)
+ if (h !== d) {
+ var g = f.distance(v, u[d]);
+ a ? c += 1 / g : c += g;
+ }
+ a || (c = 1 / c), l < c && (l = c), o[v.id()] = c;
+ }
+ return {
+ closeness: function(p) {
+ return l == 0 ? 0 : (j(p) ? p = s.filter(p)[0].id() : p = p.id(), o[p] / l);
+ }
+ };
+ },
+ // Implemented from pseudocode from wikipedia
+ closenessCentrality: function(e) {
+ var r = Os(e), a = r.root, n = r.weight, i = r.directed, s = r.harmonic;
+ a = this.filter(a)[0];
+ for (var o = this.dijkstra({
+ root: a,
+ weight: n,
+ directed: i
+ }), l = 0, u = this.nodes(), f = 0; f < u.length; f++) {
+ var h = u[f];
+ if (!h.same(a)) {
+ var c = o.distanceTo(h);
+ s ? l += 1 / c : l += c;
+ }
+ }
+ return s ? l : 1 / l;
+ }
+ // closenessCentrality
+ };
+ aa.cc = aa.closenessCentrality, aa.ccn = aa.closenessCentralityNormalised = aa.closenessCentralityNormalized;
+ var $f = Lt({
+ weight: null,
+ directed: !1
+ }), pi = {
+ // Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes
+ betweennessCentrality: function(e) {
+ for (var r = $f(e), a = r.directed, n = r.weight, i = n != null, s = this.cy(), o = this.nodes(), l = {}, u = {}, f = 0, h = {
+ set: function(b, E) {
+ u[b] = E, E > f && (f = E);
+ },
+ get: function(b) {
+ return u[b];
+ }
+ }, c = 0; c < o.length; c++) {
+ var v = o[c], d = v.id();
+ a ? l[d] = v.outgoers().nodes() : l[d] = v.openNeighborhood().nodes(), h.set(d, 0);
+ }
+ for (var g = function(b) {
+ for (var E = o[b].id(), M = [], A = {}, w = {}, I = {}, C = new Ra(function(Ee, ye) {
+ return I[Ee] - I[ye];
+ }), B = 0; B < o.length; B++) {
+ var F = o[B].id();
+ A[F] = [], w[F] = 0, I[F] = 1 / 0;
+ }
+ for (w[E] = 1, I[E] = 0, C.push(E); !C.empty(); ) {
+ var R = C.pop();
+ if (M.push(R), i)
+ for (var X = 0; X < l[R].length; X++) {
+ var z = l[R][X], re = s.getElementById(R), W = void 0;
+ re.edgesTo(z).length > 0 ? W = re.edgesTo(z)[0] : W = z.edgesTo(re)[0];
+ var Z = n(W);
+ z = z.id(), I[z] > I[R] + Z && (I[z] = I[R] + Z, C.nodes.indexOf(z) < 0 ? C.push(z) : C.updateItem(z), w[z] = 0, A[z] = []), I[z] == I[R] + Z && (w[z] = w[z] + w[R], A[z].push(R));
+ }
+ else
+ for (var ie = 0; ie < l[R].length; ie++) {
+ var oe = l[R][ie].id();
+ I[oe] == 1 / 0 && (C.push(oe), I[oe] = I[R] + 1), I[oe] == I[R] + 1 && (w[oe] = w[oe] + w[R], A[oe].push(R));
+ }
+ }
+ for (var ge = {}, se = 0; se < o.length; se++)
+ ge[o[se].id()] = 0;
+ for (; M.length > 0; ) {
+ for (var de = M.pop(), we = 0; we < A[de].length; we++) {
+ var Te = A[de][we];
+ ge[Te] = ge[Te] + w[Te] / w[de] * (1 + ge[de]);
+ }
+ de != o[b].id() && h.set(de, h.get(de) + ge[de]);
+ }
+ }, y = 0; y < o.length; y++)
+ g(y);
+ var p = {
+ betweenness: function(b) {
+ var E = s.collection(b).id();
+ return h.get(E);
+ },
+ betweennessNormalized: function(b) {
+ if (f == 0)
+ return 0;
+ var E = s.collection(b).id();
+ return h.get(E) / f;
+ }
+ };
+ return p.betweennessNormalised = p.betweennessNormalized, p;
+ }
+ // betweennessCentrality
+ };
+ pi.bc = pi.betweennessCentrality;
+ var Vf = Lt({
+ expandFactor: 2,
+ // affects time of computation and cluster granularity to some extent: M * M
+ inflateFactor: 2,
+ // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j)
+ multFactor: 1,
+ // optional self loops for each node. Use a neutral value to improve cluster computations.
+ maxIterations: 20,
+ // maximum number of iterations of the MCL algorithm in a single run
+ attributes: [
+ // attributes/features used to group nodes, ie. similarity values between nodes
+ function(t) {
+ return 1;
+ }
+ ]
+ }), _f = function(e) {
+ return Vf(e);
+ }, Uf = function(e, r) {
+ for (var a = 0, n = 0; n < r.length; n++)
+ a += r[n](e);
+ return a;
+ }, Yf = function(e, r, a) {
+ for (var n = 0; n < r; n++)
+ e[n * r + n] = a;
+ }, Ns = function(e, r) {
+ for (var a, n = 0; n < r; n++) {
+ a = 0;
+ for (var i = 0; i < r; i++)
+ a += e[i * r + n];
+ for (var s = 0; s < r; s++)
+ e[s * r + n] = e[s * r + n] / a;
+ }
+ }, Hf = function(e, r, a) {
+ for (var n = new Array(a * a), i = 0; i < a; i++) {
+ for (var s = 0; s < a; s++)
+ n[i * a + s] = 0;
+ for (var o = 0; o < a; o++)
+ for (var l = 0; l < a; l++)
+ n[i * a + l] += e[i * a + o] * r[o * a + l];
+ }
+ return n;
+ }, Xf = function(e, r, a) {
+ for (var n = e.slice(0), i = 1; i < a; i++)
+ e = Hf(e, n, r);
+ return e;
+ }, qf = function(e, r, a) {
+ for (var n = new Array(r * r), i = 0; i < r * r; i++)
+ n[i] = Math.pow(e[i], a);
+ return Ns(n, r), n;
+ }, Wf = function(e, r, a, n) {
+ for (var i = 0; i < a; i++) {
+ var s = Math.round(e[i] * Math.pow(10, n)) / Math.pow(10, n), o = Math.round(r[i] * Math.pow(10, n)) / Math.pow(10, n);
+ if (s !== o)
+ return !1;
+ }
+ return !0;
+ }, Kf = function(e, r, a, n) {
+ for (var i = [], s = 0; s < r; s++) {
+ for (var o = [], l = 0; l < r; l++)
+ Math.round(e[s * r + l] * 1e3) / 1e3 > 0 && o.push(a[l]);
+ o.length !== 0 && i.push(n.collection(o));
+ }
+ return i;
+ }, Zf = function(e, r) {
+ for (var a = 0; a < e.length; a++)
+ if (!r[a] || e[a].id() !== r[a].id())
+ return !1;
+ return !0;
+ }, Qf = function(e) {
+ for (var r = 0; r < e.length; r++)
+ for (var a = 0; a < e.length; a++)
+ r != a && Zf(e[r], e[a]) && e.splice(a, 1);
+ return e;
+ }, Ms = function(e) {
+ for (var r = this.nodes(), a = this.edges(), n = this.cy(), i = _f(e), s = {}, o = 0; o < r.length; o++)
+ s[r[o].id()] = o;
+ for (var l = r.length, u = l * l, f = new Array(u), h, c = 0; c < u; c++)
+ f[c] = 0;
+ for (var v = 0; v < a.length; v++) {
+ var d = a[v], g = s[d.source().id()], y = s[d.target().id()], p = Uf(d, i.attributes);
+ f[g * l + y] += p, f[y * l + g] += p;
+ }
+ Yf(f, l, i.multFactor), Ns(f, l);
+ for (var m = !0, b = 0; m && b < i.maxIterations; )
+ m = !1, h = Xf(f, l, i.expandFactor), f = qf(h, l, i.inflateFactor), Wf(f, h, u, 4) || (m = !0), b++;
+ var E = Kf(f, l, r, n);
+ return E = Qf(E), E;
+ }, Jf = {
+ markovClustering: Ms,
+ mcl: Ms
+ }, jf = function(e) {
+ return e;
+ }, Is = function(e, r) {
+ return Math.abs(r - e);
+ }, Rs = function(e, r, a) {
+ return e + Is(r, a);
+ }, ks = function(e, r, a) {
+ return e + Math.pow(a - r, 2);
+ }, eh = function(e) {
+ return Math.sqrt(e);
+ }, th = function(e, r, a) {
+ return Math.max(e, Is(r, a));
+ }, za = function(e, r, a, n, i) {
+ for (var s = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : jf, o = n, l, u, f = 0; f < e; f++)
+ l = r(f), u = a(f), o = i(o, l, u);
+ return s(o);
+ }, na = {
+ euclidean: function(e, r, a) {
+ return e >= 2 ? za(e, r, a, 0, ks, eh) : za(e, r, a, 0, Rs);
+ },
+ squaredEuclidean: function(e, r, a) {
+ return za(e, r, a, 0, ks);
+ },
+ manhattan: function(e, r, a) {
+ return za(e, r, a, 0, Rs);
+ },
+ max: function(e, r, a) {
+ return za(e, r, a, -1 / 0, th);
+ }
+ };
+ na["squared-euclidean"] = na.squaredEuclidean, na.squaredeuclidean = na.squaredEuclidean;
+ function mn(t, e, r, a, n, i) {
+ var s;
+ return Y(t) ? s = t : s = na[t] || na.euclidean, e === 0 && Y(t) ? s(n, i) : s(e, r, a, n, i);
+ }
+ var rh = Lt({
+ k: 2,
+ m: 2,
+ sensitivityThreshold: 1e-4,
+ distance: "euclidean",
+ maxIterations: 10,
+ attributes: [],
+ testMode: !1,
+ testCentroids: null
+ }), yi = function(e) {
+ return rh(e);
+ }, bn = function(e, r, a, n, i) {
+ var s = i !== "kMedoids", o = s ? function(h) {
+ return a[h];
+ } : function(h) {
+ return n[h](a);
+ }, l = function(c) {
+ return n[c](r);
+ }, u = a, f = r;
+ return mn(e, n.length, o, l, u, f);
+ }, mi = function(e, r, a) {
+ for (var n = a.length, i = new Array(n), s = new Array(n), o = new Array(r), l = null, u = 0; u < n; u++)
+ i[u] = e.min(a[u]).value, s[u] = e.max(a[u]).value;
+ for (var f = 0; f < r; f++) {
+ l = [];
+ for (var h = 0; h < n; h++)
+ l[h] = Math.random() * (s[h] - i[h]) + i[h];
+ o[f] = l;
+ }
+ return o;
+ }, Ps = function(e, r, a, n, i) {
+ for (var s = 1 / 0, o = 0, l = 0; l < r.length; l++) {
+ var u = bn(a, e, r[l], n, i);
+ u < s && (s = u, o = l);
+ }
+ return o;
+ }, Bs = function(e, r, a) {
+ for (var n = [], i = null, s = 0; s < r.length; s++)
+ i = r[s], a[i.id()] === e && n.push(i);
+ return n;
+ }, ah = function(e, r, a) {
+ return Math.abs(r - e) <= a;
+ }, nh = function(e, r, a) {
+ for (var n = 0; n < e.length; n++)
+ for (var i = 0; i < e[n].length; i++) {
+ var s = Math.abs(e[n][i] - r[n][i]);
+ if (s > a)
+ return !1;
+ }
+ return !0;
+ }, ih = function(e, r, a) {
+ for (var n = 0; n < a; n++)
+ if (e === r[n])
+ return !0;
+ return !1;
+ }, Fs = function(e, r) {
+ var a = new Array(r);
+ if (e.length < 50)
+ for (var n = 0; n < r; n++) {
+ for (var i = e[Math.floor(Math.random() * e.length)]; ih(i, a, n); )
+ i = e[Math.floor(Math.random() * e.length)];
+ a[n] = i;
+ }
+ else
+ for (var s = 0; s < r; s++)
+ a[s] = e[Math.floor(Math.random() * e.length)];
+ return a;
+ }, zs = function(e, r, a) {
+ for (var n = 0, i = 0; i < r.length; i++)
+ n += bn("manhattan", r[i], e, a, "kMedoids");
+ return n;
+ }, sh = function(e) {
+ var r = this.cy(), a = this.nodes(), n = null, i = yi(e), s = new Array(i.k), o = {}, l;
+ i.testMode ? typeof i.testCentroids == "number" ? (i.testCentroids, l = mi(a, i.k, i.attributes)) : ee(i.testCentroids) === "object" ? l = i.testCentroids : l = mi(a, i.k, i.attributes) : l = mi(a, i.k, i.attributes);
+ for (var u = !0, f = 0; u && f < i.maxIterations; ) {
+ for (var h = 0; h < a.length; h++)
+ n = a[h], o[n.id()] = Ps(n, l, i.distance, i.attributes, "kMeans");
+ u = !1;
+ for (var c = 0; c < i.k; c++) {
+ var v = Bs(c, a, o);
+ if (v.length !== 0) {
+ for (var d = i.attributes.length, g = l[c], y = new Array(d), p = new Array(d), m = 0; m < d; m++) {
+ p[m] = 0;
+ for (var b = 0; b < v.length; b++)
+ n = v[b], p[m] += i.attributes[m](n);
+ y[m] = p[m] / v.length, ah(y[m], g[m], i.sensitivityThreshold) || (u = !0);
+ }
+ l[c] = y, s[c] = r.collection(v);
+ }
+ }
+ f++;
+ }
+ return s;
+ }, oh = function(e) {
+ var r = this.cy(), a = this.nodes(), n = null, i = yi(e), s = new Array(i.k), o, l = {}, u, f = new Array(i.k);
+ i.testMode ? typeof i.testCentroids == "number" || (ee(i.testCentroids) === "object" ? o = i.testCentroids : o = Fs(a, i.k)) : o = Fs(a, i.k);
+ for (var h = !0, c = 0; h && c < i.maxIterations; ) {
+ for (var v = 0; v < a.length; v++)
+ n = a[v], l[n.id()] = Ps(n, o, i.distance, i.attributes, "kMedoids");
+ h = !1;
+ for (var d = 0; d < o.length; d++) {
+ var g = Bs(d, a, l);
+ if (g.length !== 0) {
+ f[d] = zs(o[d], g, i.attributes);
+ for (var y = 0; y < g.length; y++)
+ u = zs(g[y], g, i.attributes), u < f[d] && (f[d] = u, o[d] = g[y], h = !0);
+ s[d] = r.collection(g);
+ }
+ }
+ c++;
+ }
+ return s;
+ }, uh = function(e, r, a, n, i) {
+ for (var s, o, l = 0; l < r.length; l++)
+ for (var u = 0; u < e.length; u++)
+ n[l][u] = Math.pow(a[l][u], i.m);
+ for (var f = 0; f < e.length; f++)
+ for (var h = 0; h < i.attributes.length; h++) {
+ s = 0, o = 0;
+ for (var c = 0; c < r.length; c++)
+ s += n[c][f] * i.attributes[h](r[c]), o += n[c][f];
+ e[f][h] = s / o;
+ }
+ }, lh = function(e, r, a, n, i) {
+ for (var s = 0; s < e.length; s++)
+ r[s] = e[s].slice();
+ for (var o, l, u, f = 2 / (i.m - 1), h = 0; h < a.length; h++)
+ for (var c = 0; c < n.length; c++) {
+ o = 0;
+ for (var v = 0; v < a.length; v++)
+ l = bn(i.distance, n[c], a[h], i.attributes, "cmeans"), u = bn(i.distance, n[c], a[v], i.attributes, "cmeans"), o += Math.pow(l / u, f);
+ e[c][h] = 1 / o;
+ }
+ }, fh = function(e, r, a, n) {
+ for (var i = new Array(a.k), s = 0; s < i.length; s++)
+ i[s] = [];
+ for (var o, l, u = 0; u < r.length; u++) {
+ o = -1 / 0, l = -1;
+ for (var f = 0; f < r[0].length; f++)
+ r[u][f] > o && (o = r[u][f], l = f);
+ i[l].push(e[u]);
+ }
+ for (var h = 0; h < i.length; h++)
+ i[h] = n.collection(i[h]);
+ return i;
+ }, Gs = function(e) {
+ var r = this.cy(), a = this.nodes(), n = yi(e), i, s, o, l, u;
+ l = new Array(a.length);
+ for (var f = 0; f < a.length; f++)
+ l[f] = new Array(n.k);
+ o = new Array(a.length);
+ for (var h = 0; h < a.length; h++)
+ o[h] = new Array(n.k);
+ for (var c = 0; c < a.length; c++) {
+ for (var v = 0, d = 0; d < n.k; d++)
+ o[c][d] = Math.random(), v += o[c][d];
+ for (var g = 0; g < n.k; g++)
+ o[c][g] = o[c][g] / v;
+ }
+ s = new Array(n.k);
+ for (var y = 0; y < n.k; y++)
+ s[y] = new Array(n.attributes.length);
+ u = new Array(a.length);
+ for (var p = 0; p < a.length; p++)
+ u[p] = new Array(n.k);
+ for (var m = !0, b = 0; m && b < n.maxIterations; )
+ m = !1, uh(s, a, o, u, n), lh(o, l, s, a, n), nh(o, l, n.sensitivityThreshold) || (m = !0), b++;
+ return i = fh(a, o, n, r), {
+ clusters: i,
+ degreeOfMembership: o
+ };
+ }, hh = {
+ kMeans: sh,
+ kMedoids: oh,
+ fuzzyCMeans: Gs,
+ fcm: Gs
+ }, ch = Lt({
+ distance: "euclidean",
+ // distance metric to compare nodes
+ linkage: "min",
+ // linkage criterion : how to determine the distance between clusters of nodes
+ mode: "threshold",
+ // mode:'threshold' => clusters must be threshold distance apart
+ threshold: 1 / 0,
+ // the distance threshold
+ // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters
+ addDendrogram: !1,
+ // whether to add the dendrogram to the graph for viz
+ dendrogramDepth: 0,
+ // depth at which dendrogram branches are merged into the returned clusters
+ attributes: []
+ // array of attr functions
+ }), vh = {
+ single: "min",
+ complete: "max"
+ }, dh = function(e) {
+ var r = ch(e), a = vh[r.linkage];
+ return a != null && (r.linkage = a), r;
+ }, $s = function(e, r, a, n, i) {
+ for (var s = 0, o = 1 / 0, l, u = i.attributes, f = function(C, B) {
+ return mn(i.distance, u.length, function(F) {
+ return u[F](C);
+ }, function(F) {
+ return u[F](B);
+ }, C, B);
+ }, h = 0; h < e.length; h++) {
+ var c = e[h].key, v = a[c][n[c]];
+ v < o && (s = c, o = v);
+ }
+ if (i.mode === "threshold" && o >= i.threshold || i.mode === "dendrogram" && e.length === 1)
+ return !1;
+ var d = r[s], g = r[n[s]], y;
+ i.mode === "dendrogram" ? y = {
+ left: d,
+ right: g,
+ key: d.key
+ } : y = {
+ value: d.value.concat(g.value),
+ key: d.key
+ }, e[d.index] = y, e.splice(g.index, 1), r[d.key] = y;
+ for (var p = 0; p < e.length; p++) {
+ var m = e[p];
+ d.key === m.key ? l = 1 / 0 : i.linkage === "min" ? (l = a[d.key][m.key], a[d.key][m.key] > a[g.key][m.key] && (l = a[g.key][m.key])) : i.linkage === "max" ? (l = a[d.key][m.key], a[d.key][m.key] < a[g.key][m.key] && (l = a[g.key][m.key])) : i.linkage === "mean" ? l = (a[d.key][m.key] * d.size + a[g.key][m.key] * g.size) / (d.size + g.size) : i.mode === "dendrogram" ? l = f(m.value, d.value) : l = f(m.value[0], d.value[0]), a[d.key][m.key] = a[m.key][d.key] = l;
+ }
+ for (var b = 0; b < e.length; b++) {
+ var E = e[b].key;
+ if (n[E] === d.key || n[E] === g.key) {
+ for (var M = E, A = 0; A < e.length; A++) {
+ var w = e[A].key;
+ a[E][w] < a[E][M] && (M = w);
+ }
+ n[E] = M;
+ }
+ e[b].index = b;
+ }
+ return d.key = g.key = d.index = g.index = null, !0;
+ }, En = function t(e, r, a) {
+ e && (e.value ? r.push(e.value) : (e.left && t(e.left, r), e.right && t(e.right, r)));
+ }, gh = function t(e, r) {
+ if (!e)
+ return "";
+ if (e.left && e.right) {
+ var a = t(e.left, r), n = t(e.right, r), i = r.add({
+ group: "nodes",
+ data: {
+ id: a + "," + n
+ }
+ });
+ return r.add({
+ group: "edges",
+ data: {
+ source: a,
+ target: i.id()
+ }
+ }), r.add({
+ group: "edges",
+ data: {
+ source: n,
+ target: i.id()
+ }
+ }), i.id();
+ } else if (e.value)
+ return e.value.id();
+ }, ph = function t(e, r, a) {
+ if (!e)
+ return [];
+ var n = [], i = [], s = [];
+ return r === 0 ? (e.left && En(e.left, n), e.right && En(e.right, i), s = n.concat(i), [a.collection(s)]) : r === 1 ? e.value ? [a.collection(e.value)] : (e.left && En(e.left, n), e.right && En(e.right, i), [a.collection(n), a.collection(i)]) : e.value ? [a.collection(e.value)] : (e.left && (n = t(e.left, r - 1, a)), e.right && (i = t(e.right, r - 1, a)), n.concat(i));
+ }, Vs = function(e) {
+ for (var r = this.cy(), a = this.nodes(), n = dh(e), i = n.attributes, s = function(b, E) {
+ return mn(n.distance, i.length, function(M) {
+ return i[M](b);
+ }, function(M) {
+ return i[M](E);
+ }, b, E);
+ }, o = [], l = [], u = [], f = [], h = 0; h < a.length; h++) {
+ var c = {
+ value: n.mode === "dendrogram" ? a[h] : [a[h]],
+ key: h,
+ index: h
+ };
+ o[h] = c, f[h] = c, l[h] = [], u[h] = 0;
+ }
+ for (var v = 0; v < o.length; v++)
+ for (var d = 0; d <= v; d++) {
+ var g = void 0;
+ n.mode === "dendrogram" ? g = v === d ? 1 / 0 : s(o[v].value, o[d].value) : g = v === d ? 1 / 0 : s(o[v].value[0], o[d].value[0]), l[v][d] = g, l[d][v] = g, g < l[v][u[v]] && (u[v] = d);
+ }
+ for (var y = $s(o, f, l, u, n); y; )
+ y = $s(o, f, l, u, n);
+ var p;
+ return n.mode === "dendrogram" ? (p = ph(o[0], n.dendrogramDepth, r), n.addDendrogram && gh(o[0], r)) : (p = new Array(o.length), o.forEach(function(m, b) {
+ m.key = m.index = null, p[b] = r.collection(m.value);
+ })), p;
+ }, yh = {
+ hierarchicalClustering: Vs,
+ hca: Vs
+ }, mh = Lt({
+ distance: "euclidean",
+ // distance metric to compare attributes between two nodes
+ preference: "median",
+ // suitability of a data point to serve as an exemplar
+ damping: 0.8,
+ // damping factor between [0.5, 1)
+ maxIterations: 1e3,
+ // max number of iterations to run
+ minIterations: 100,
+ // min number of iterations to run in order for clustering to stop
+ attributes: [
+ // functions to quantify the similarity between any two points
+ // e.g. node => node.data('weight')
+ ]
+ }), bh = function(e) {
+ var r = e.damping, a = e.preference;
+ 0.5 <= r && r < 1 || xt("Damping must range on [0.5, 1). Got: ".concat(r));
+ var n = ["median", "mean", "min", "max"];
+ return n.some(function(i) {
+ return i === a;
+ }) || k(a) || xt("Preference must be one of [".concat(n.map(function(i) {
+ return "'".concat(i, "'");
+ }).join(", "), "] or a number. Got: ").concat(a)), mh(e);
+ }, Eh = function(e, r, a, n) {
+ var i = function(o, l) {
+ return n[l](o);
+ };
+ return -mn(e, n.length, function(s) {
+ return i(r, s);
+ }, function(s) {
+ return i(a, s);
+ }, r, a);
+ }, wh = function(e, r) {
+ var a = null;
+ return r === "median" ? a = bf(e) : r === "mean" ? a = mf(e) : r === "min" ? a = pf(e) : r === "max" ? a = yf(e) : a = r, a;
+ }, xh = function(e, r, a) {
+ for (var n = [], i = 0; i < e; i++)
+ r[i * e + i] + a[i * e + i] > 0 && n.push(i);
+ return n;
+ }, _s = function(e, r, a) {
+ for (var n = [], i = 0; i < e; i++) {
+ for (var s = -1, o = -1 / 0, l = 0; l < a.length; l++) {
+ var u = a[l];
+ r[i * e + u] > o && (s = u, o = r[i * e + u]);
+ }
+ s > 0 && n.push(s);
+ }
+ for (var f = 0; f < a.length; f++)
+ n[a[f]] = a[f];
+ return n;
+ }, Th = function(e, r, a) {
+ for (var n = _s(e, r, a), i = 0; i < a.length; i++) {
+ for (var s = [], o = 0; o < n.length; o++)
+ n[o] === a[i] && s.push(o);
+ for (var l = -1, u = -1 / 0, f = 0; f < s.length; f++) {
+ for (var h = 0, c = 0; c < s.length; c++)
+ h += r[s[c] * e + s[f]];
+ h > u && (l = f, u = h);
+ }
+ a[i] = s[l];
+ }
+ return n = _s(e, r, a), n;
+ }, Us = function(e) {
+ for (var r = this.cy(), a = this.nodes(), n = bh(e), i = {}, s = 0; s < a.length; s++)
+ i[a[s].id()] = s;
+ var o, l, u, f, h, c;
+ o = a.length, l = o * o, u = new Array(l);
+ for (var v = 0; v < l; v++)
+ u[v] = -1 / 0;
+ for (var d = 0; d < o; d++)
+ for (var g = 0; g < o; g++)
+ d !== g && (u[d * o + g] = Eh(n.distance, a[d], a[g], n.attributes));
+ f = wh(u, n.preference);
+ for (var y = 0; y < o; y++)
+ u[y * o + y] = f;
+ h = new Array(l);
+ for (var p = 0; p < l; p++)
+ h[p] = 0;
+ c = new Array(l);
+ for (var m = 0; m < l; m++)
+ c[m] = 0;
+ for (var b = new Array(o), E = new Array(o), M = new Array(o), A = 0; A < o; A++)
+ b[A] = 0, E[A] = 0, M[A] = 0;
+ for (var w = new Array(o * n.minIterations), I = 0; I < w.length; I++)
+ w[I] = 0;
+ var C;
+ for (C = 0; C < n.maxIterations; C++) {
+ for (var B = 0; B < o; B++) {
+ for (var F = -1 / 0, R = -1 / 0, X = -1, z = 0, re = 0; re < o; re++)
+ b[re] = h[B * o + re], z = c[B * o + re] + u[B * o + re], z >= F ? (R = F, F = z, X = re) : z > R && (R = z);
+ for (var W = 0; W < o; W++)
+ h[B * o + W] = (1 - n.damping) * (u[B * o + W] - F) + n.damping * b[W];
+ h[B * o + X] = (1 - n.damping) * (u[B * o + X] - R) + n.damping * b[X];
+ }
+ for (var Z = 0; Z < o; Z++) {
+ for (var ie = 0, oe = 0; oe < o; oe++)
+ b[oe] = c[oe * o + Z], E[oe] = Math.max(0, h[oe * o + Z]), ie += E[oe];
+ ie -= E[Z], E[Z] = h[Z * o + Z], ie += E[Z];
+ for (var ge = 0; ge < o; ge++)
+ c[ge * o + Z] = (1 - n.damping) * Math.min(0, ie - E[ge]) + n.damping * b[ge];
+ c[Z * o + Z] = (1 - n.damping) * (ie - E[Z]) + n.damping * b[Z];
+ }
+ for (var se = 0, de = 0; de < o; de++) {
+ var we = c[de * o + de] + h[de * o + de] > 0 ? 1 : 0;
+ w[C % n.minIterations * o + de] = we, se += we;
+ }
+ if (se > 0 && (C >= n.minIterations - 1 || C == n.maxIterations - 1)) {
+ for (var Te = 0, Ee = 0; Ee < o; Ee++) {
+ M[Ee] = 0;
+ for (var ye = 0; ye < n.minIterations; ye++)
+ M[Ee] += w[ye * o + Ee];
+ (M[Ee] === 0 || M[Ee] === n.minIterations) && Te++;
+ }
+ if (Te === o)
+ break;
+ }
+ }
+ for (var ae = xh(o, h, c), xe = Th(o, u, ae), Ce = {}, Oe = 0; Oe < ae.length; Oe++)
+ Ce[ae[Oe]] = [];
+ for (var Ie = 0; Ie < a.length; Ie++) {
+ var He = i[a[Ie].id()], qe = xe[He];
+ qe != null && Ce[qe].push(a[Ie]);
+ }
+ for (var Re = new Array(ae.length), Me = 0; Me < ae.length; Me++)
+ Re[Me] = r.collection(Ce[ae[Me]]);
+ return Re;
+ }, Ch = {
+ affinityPropagation: Us,
+ ap: Us
+ }, Dh = Lt({
+ root: void 0,
+ directed: !1
+ }), Sh = {
+ hierholzer: function(e) {
+ if (!L(e)) {
+ var r = arguments;
+ e = {
+ root: r[0],
+ directed: r[1]
+ };
+ }
+ var a = Dh(e), n = a.root, i = a.directed, s = this, o = !1, l, u, f;
+ n && (f = j(n) ? this.filter(n)[0].id() : n[0].id());
+ var h = {}, c = {};
+ i ? s.forEach(function(m) {
+ var b = m.id();
+ if (m.isNode()) {
+ var E = m.indegree(!0), M = m.outdegree(!0), A = E - M, w = M - E;
+ A == 1 ? l ? o = !0 : l = b : w == 1 ? u ? o = !0 : u = b : (w > 1 || A > 1) && (o = !0), h[b] = [], m.outgoers().forEach(function(I) {
+ I.isEdge() && h[b].push(I.id());
+ });
+ } else
+ c[b] = [void 0, m.target().id()];
+ }) : s.forEach(function(m) {
+ var b = m.id();
+ if (m.isNode()) {
+ var E = m.degree(!0);
+ E % 2 && (l ? u ? o = !0 : u = b : l = b), h[b] = [], m.connectedEdges().forEach(function(M) {
+ return h[b].push(M.id());
+ });
+ } else
+ c[b] = [m.source().id(), m.target().id()];
+ });
+ var v = {
+ found: !1,
+ trail: void 0
+ };
+ if (o)
+ return v;
+ if (u && l)
+ if (i) {
+ if (f && u != f)
+ return v;
+ f = u;
+ } else {
+ if (f && u != f && l != f)
+ return v;
+ f || (f = u);
+ }
+ else
+ f || (f = s[0].id());
+ var d = function(b) {
+ for (var E = b, M = [b], A, w, I; h[E].length; )
+ A = h[E].shift(), w = c[A][0], I = c[A][1], E != I ? (h[I] = h[I].filter(function(C) {
+ return C != A;
+ }), E = I) : !i && E != w && (h[w] = h[w].filter(function(C) {
+ return C != A;
+ }), E = w), M.unshift(A), M.unshift(E);
+ return M;
+ }, g = [], y = [];
+ for (y = d(f); y.length != 1; )
+ h[y[0]].length == 0 ? (g.unshift(s.getElementById(y.shift())), g.unshift(s.getElementById(y.shift()))) : y = d(y.shift()).concat(y);
+ g.unshift(s.getElementById(y.shift()));
+ for (var p in h)
+ if (h[p].length)
+ return v;
+ return v.found = !0, v.trail = this.spawn(g, !0), v;
+ }
+ }, wn = function() {
+ var e = this, r = {}, a = 0, n = 0, i = [], s = [], o = {}, l = function(c, v) {
+ for (var d = s.length - 1, g = [], y = e.spawn(); s[d].x != c || s[d].y != v; )
+ g.push(s.pop().edge), d--;
+ g.push(s.pop().edge), g.forEach(function(p) {
+ var m = p.connectedNodes().intersection(e);
+ y.merge(p), m.forEach(function(b) {
+ var E = b.id(), M = b.connectedEdges().intersection(e);
+ y.merge(b), r[E].cutVertex ? y.merge(M.filter(function(A) {
+ return A.isLoop();
+ })) : y.merge(M);
+ });
+ }), i.push(y);
+ }, u = function h(c, v, d) {
+ c === d && (n += 1), r[v] = {
+ id: a,
+ low: a++,
+ cutVertex: !1
+ };
+ var g = e.getElementById(v).connectedEdges().intersection(e);
+ if (g.size() === 0)
+ i.push(e.spawn(e.getElementById(v)));
+ else {
+ var y, p, m, b;
+ g.forEach(function(E) {
+ y = E.source().id(), p = E.target().id(), m = y === v ? p : y, m !== d && (b = E.id(), o[b] || (o[b] = !0, s.push({
+ x: v,
+ y: m,
+ edge: E
+ })), m in r ? r[v].low = Math.min(r[v].low, r[m].id) : (h(c, m, v), r[v].low = Math.min(r[v].low, r[m].low), r[v].id <= r[m].low && (r[v].cutVertex = !0, l(v, m))));
+ });
+ }
+ };
+ e.forEach(function(h) {
+ if (h.isNode()) {
+ var c = h.id();
+ c in r || (n = 0, u(c, c), r[c].cutVertex = n > 1);
+ }
+ });
+ var f = Object.keys(r).filter(function(h) {
+ return r[h].cutVertex;
+ }).map(function(h) {
+ return e.getElementById(h);
+ });
+ return {
+ cut: e.spawn(f),
+ components: i
+ };
+ }, Lh = {
+ hopcroftTarjanBiconnected: wn,
+ htbc: wn,
+ htb: wn,
+ hopcroftTarjanBiconnectedComponents: wn
+ }, xn = function() {
+ var e = this, r = {}, a = 0, n = [], i = [], s = e.spawn(e), o = function l(u) {
+ i.push(u), r[u] = {
+ index: a,
+ low: a++,
+ explored: !1
+ };
+ var f = e.getElementById(u).connectedEdges().intersection(e);
+ if (f.forEach(function(g) {
+ var y = g.target().id();
+ y !== u && (y in r || l(y), r[y].explored || (r[u].low = Math.min(r[u].low, r[y].low)));
+ }), r[u].index === r[u].low) {
+ for (var h = e.spawn(); ; ) {
+ var c = i.pop();
+ if (h.merge(e.getElementById(c)), r[c].low = r[u].index, r[c].explored = !0, c === u)
+ break;
+ }
+ var v = h.edgesWith(h), d = h.merge(v);
+ n.push(d), s = s.difference(d);
+ }
+ };
+ return e.forEach(function(l) {
+ if (l.isNode()) {
+ var u = l.id();
+ u in r || o(u);
+ }
+ }), {
+ cut: s,
+ components: n
+ };
+ }, Ah = {
+ tarjanStronglyConnected: xn,
+ tsc: xn,
+ tscc: xn,
+ tarjanStronglyConnectedComponents: xn
+ }, Ys = {};
+ [Ia, af, nf, of, lf, hf, df, Gf, ra, aa, pi, Jf, hh, yh, Ch, Sh, Lh, Ah].forEach(function(t) {
+ Ue(Ys, t);
+ });
+ /*!
+ Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
+ Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
+ Licensed under The MIT License (http://opensource.org/licenses/MIT)
+ */
+ var Hs = 0, Xs = 1, qs = 2, pr = function t(e) {
+ if (!(this instanceof t))
+ return new t(e);
+ this.id = "Thenable/1.0.7", this.state = Hs, this.fulfillValue = void 0, this.rejectReason = void 0, this.onFulfilled = [], this.onRejected = [], this.proxy = {
+ then: this.then.bind(this)
+ }, typeof e == "function" && e.call(this, this.fulfill.bind(this), this.reject.bind(this));
+ };
+ pr.prototype = {
+ /* promise resolving methods */
+ fulfill: function(e) {
+ return Ws(this, Xs, "fulfillValue", e);
+ },
+ reject: function(e) {
+ return Ws(this, qs, "rejectReason", e);
+ },
+ /* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */
+ then: function(e, r) {
+ var a = this, n = new pr();
+ return a.onFulfilled.push(Qs(e, n, "fulfill")), a.onRejected.push(Qs(r, n, "reject")), Ks(a), n.proxy;
+ }
+ };
+ var Ws = function(e, r, a, n) {
+ return e.state === Hs && (e.state = r, e[a] = n, Ks(e)), e;
+ }, Ks = function(e) {
+ e.state === Xs ? Zs(e, "onFulfilled", e.fulfillValue) : e.state === qs && Zs(e, "onRejected", e.rejectReason);
+ }, Zs = function(e, r, a) {
+ if (e[r].length !== 0) {
+ var n = e[r];
+ e[r] = [];
+ var i = function() {
+ for (var o = 0; o < n.length; o++)
+ n[o](a);
+ };
+ typeof setImmediate == "function" ? setImmediate(i) : setTimeout(i, 0);
+ }
+ }, Qs = function(e, r, a) {
+ return function(n) {
+ if (typeof e != "function")
+ r[a].call(r, n);
+ else {
+ var i;
+ try {
+ i = e(n);
+ } catch (s) {
+ r.reject(s);
+ return;
+ }
+ Oh(r, i);
+ }
+ };
+ }, Oh = function t(e, r) {
+ if (e === r || e.proxy === r) {
+ e.reject(new TypeError("cannot resolve promise with itself"));
+ return;
+ }
+ var a;
+ if (ee(r) === "object" && r !== null || typeof r == "function")
+ try {
+ a = r.then;
+ } catch (i) {
+ e.reject(i);
+ return;
+ }
+ if (typeof a == "function") {
+ var n = !1;
+ try {
+ a.call(
+ r,
+ /* resolvePromise */
+ /* [Promises/A+ 2.3.3.3.1] */
+ function(i) {
+ n || (n = !0, i === r ? e.reject(new TypeError("circular thenable chain")) : t(e, i));
+ },
+ /* rejectPromise */
+ /* [Promises/A+ 2.3.3.3.2] */
+ function(i) {
+ n || (n = !0, e.reject(i));
+ }
+ );
+ } catch (i) {
+ n || e.reject(i);
+ }
+ return;
+ }
+ e.fulfill(r);
+ };
+ pr.all = function(t) {
+ return new pr(function(e, r) {
+ for (var a = new Array(t.length), n = 0, i = function(l, u) {
+ a[l] = u, n++, n === t.length && e(a);
+ }, s = 0; s < t.length; s++)
+ (function(o) {
+ var l = t[o], u = l != null && l.then != null;
+ if (u)
+ l.then(function(h) {
+ i(o, h);
+ }, function(h) {
+ r(h);
+ });
+ else {
+ var f = l;
+ i(o, f);
+ }
+ })(s);
+ });
+ }, pr.resolve = function(t) {
+ return new pr(function(e, r) {
+ e(t);
+ });
+ }, pr.reject = function(t) {
+ return new pr(function(e, r) {
+ r(t);
+ });
+ };
+ var ia = typeof Promise < "u" ? Promise : pr, bi = function(e, r, a) {
+ var n = _e(e), i = !n, s = this._private = Ue({
+ duration: 1e3
+ }, r, a);
+ if (s.target = e, s.style = s.style || s.css, s.started = !1, s.playing = !1, s.hooked = !1, s.applying = !1, s.progress = 0, s.completes = [], s.frames = [], s.complete && Y(s.complete) && s.completes.push(s.complete), i) {
+ var o = e.position();
+ s.startPosition = s.startPosition || {
+ x: o.x,
+ y: o.y
+ }, s.startStyle = s.startStyle || e.cy().style().getAnimationStartStyle(e, s.style);
+ }
+ if (n) {
+ var l = e.pan();
+ s.startPan = {
+ x: l.x,
+ y: l.y
+ }, s.startZoom = e.zoom();
+ }
+ this.length = 1, this[0] = this;
+ }, zr = bi.prototype;
+ Ue(zr, {
+ instanceString: function() {
+ return "animation";
+ },
+ hook: function() {
+ var e = this._private;
+ if (!e.hooked) {
+ var r, a = e.target._private.animation;
+ e.queue ? r = a.queue : r = a.current, r.push(this), pe(e.target) && e.target.cy().addToAnimationPool(e.target), e.hooked = !0;
+ }
+ return this;
+ },
+ play: function() {
+ var e = this._private;
+ return e.progress === 1 && (e.progress = 0), e.playing = !0, e.started = !1, e.stopped = !1, this.hook(), this;
+ },
+ playing: function() {
+ return this._private.playing;
+ },
+ apply: function() {
+ var e = this._private;
+ return e.applying = !0, e.started = !1, e.stopped = !1, this.hook(), this;
+ },
+ applying: function() {
+ return this._private.applying;
+ },
+ pause: function() {
+ var e = this._private;
+ return e.playing = !1, e.started = !1, this;
+ },
+ stop: function() {
+ var e = this._private;
+ return e.playing = !1, e.started = !1, e.stopped = !0, this;
+ },
+ rewind: function() {
+ return this.progress(0);
+ },
+ fastforward: function() {
+ return this.progress(1);
+ },
+ time: function(e) {
+ var r = this._private;
+ return e === void 0 ? r.progress * r.duration : this.progress(e / r.duration);
+ },
+ progress: function(e) {
+ var r = this._private, a = r.playing;
+ return e === void 0 ? r.progress : (a && this.pause(), r.progress = e, r.started = !1, a && this.play(), this);
+ },
+ completed: function() {
+ return this._private.progress === 1;
+ },
+ reverse: function() {
+ var e = this._private, r = e.playing;
+ r && this.pause(), e.progress = 1 - e.progress, e.started = !1;
+ var a = function(u, f) {
+ var h = e[u];
+ h != null && (e[u] = e[f], e[f] = h);
+ };
+ if (a("zoom", "startZoom"), a("pan", "startPan"), a("position", "startPosition"), e.style)
+ for (var n = 0; n < e.style.length; n++) {
+ var i = e.style[n], s = i.name, o = e.startStyle[s];
+ e.startStyle[s] = i, e.style[n] = o;
+ }
+ return r && this.play(), this;
+ },
+ promise: function(e) {
+ var r = this._private, a;
+ switch (e) {
+ case "frame":
+ a = r.frames;
+ break;
+ default:
+ case "complete":
+ case "completed":
+ a = r.completes;
+ }
+ return new ia(function(n, i) {
+ a.push(function() {
+ n();
+ });
+ });
+ }
+ }), zr.complete = zr.completed, zr.run = zr.play, zr.running = zr.playing;
+ var Nh = {
+ animated: function() {
+ return function() {
+ var r = this, a = r.length !== void 0, n = a ? r : [r], i = this._private.cy || this;
+ if (!i.styleEnabled())
+ return !1;
+ var s = n[0];
+ if (s)
+ return s._private.animation.current.length > 0;
+ };
+ },
+ // animated
+ clearQueue: function() {
+ return function() {
+ var r = this, a = r.length !== void 0, n = a ? r : [r], i = this._private.cy || this;
+ if (!i.styleEnabled())
+ return this;
+ for (var s = 0; s < n.length; s++) {
+ var o = n[s];
+ o._private.animation.queue = [];
+ }
+ return this;
+ };
+ },
+ // clearQueue
+ delay: function() {
+ return function(r, a) {
+ var n = this._private.cy || this;
+ return n.styleEnabled() ? this.animate({
+ delay: r,
+ duration: r,
+ complete: a
+ }) : this;
+ };
+ },
+ // delay
+ delayAnimation: function() {
+ return function(r, a) {
+ var n = this._private.cy || this;
+ return n.styleEnabled() ? this.animation({
+ delay: r,
+ duration: r,
+ complete: a
+ }) : this;
+ };
+ },
+ // delay
+ animation: function() {
+ return function(r, a) {
+ var n = this, i = n.length !== void 0, s = i ? n : [n], o = this._private.cy || this, l = !i, u = !l;
+ if (!o.styleEnabled())
+ return this;
+ var f = o.style();
+ r = Ue({}, r, a);
+ var h = Object.keys(r).length === 0;
+ if (h)
+ return new bi(s[0], r);
+ switch (r.duration === void 0 && (r.duration = 400), r.duration) {
+ case "slow":
+ r.duration = 600;
+ break;
+ case "fast":
+ r.duration = 200;
+ break;
+ }
+ if (u && (r.style = f.getPropsList(r.style || r.css), r.css = void 0), u && r.renderedPosition != null) {
+ var c = r.renderedPosition, v = o.pan(), d = o.zoom();
+ r.position = bs(c, d, v);
+ }
+ if (l && r.panBy != null) {
+ var g = r.panBy, y = o.pan();
+ r.pan = {
+ x: y.x + g.x,
+ y: y.y + g.y
+ };
+ }
+ var p = r.center || r.centre;
+ if (l && p != null) {
+ var m = o.getCenterPan(p.eles, r.zoom);
+ m != null && (r.pan = m);
+ }
+ if (l && r.fit != null) {
+ var b = r.fit, E = o.getFitViewport(b.eles || b.boundingBox, b.padding);
+ E != null && (r.pan = E.pan, r.zoom = E.zoom);
+ }
+ if (l && L(r.zoom)) {
+ var M = o.getZoomedViewport(r.zoom);
+ M != null ? (M.zoomed && (r.zoom = M.zoom), M.panned && (r.pan = M.pan)) : r.zoom = null;
+ }
+ return new bi(s[0], r);
+ };
+ },
+ // animate
+ animate: function() {
+ return function(r, a) {
+ var n = this, i = n.length !== void 0, s = i ? n : [n], o = this._private.cy || this;
+ if (!o.styleEnabled())
+ return this;
+ a && (r = Ue({}, r, a));
+ for (var l = 0; l < s.length; l++) {
+ var u = s[l], f = u.animated() && (r.queue === void 0 || r.queue), h = u.animation(r, f ? {
+ queue: !0
+ } : void 0);
+ h.play();
+ }
+ return this;
+ };
+ },
+ // animate
+ stop: function() {
+ return function(r, a) {
+ var n = this, i = n.length !== void 0, s = i ? n : [n], o = this._private.cy || this;
+ if (!o.styleEnabled())
+ return this;
+ for (var l = 0; l < s.length; l++) {
+ for (var u = s[l], f = u._private, h = f.animation.current, c = 0; c < h.length; c++) {
+ var v = h[c], d = v._private;
+ a && (d.duration = 0);
+ }
+ r && (f.animation.queue = []), a || (f.animation.current = []);
+ }
+ return o.notify("draw"), this;
+ };
+ }
+ // stop
+ }, Mh = Array.isArray, Tn = Mh, Ih = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Rh = /^\w*$/;
+ function kh(t, e) {
+ if (Tn(t))
+ return !1;
+ var r = typeof t;
+ return r == "number" || r == "symbol" || r == "boolean" || t == null || Aa(t) ? !0 : Rh.test(t) || !Ih.test(t) || e != null && t in Object(e);
+ }
+ var Ph = kh, Bh = "[object AsyncFunction]", Fh = "[object Function]", zh = "[object GeneratorFunction]", Gh = "[object Proxy]";
+ function $h(t) {
+ if (!Rr(t))
+ return !1;
+ var e = is(t);
+ return e == Fh || e == zh || e == Bh || e == Gh;
+ }
+ var Vh = $h, _h = un["__core-js_shared__"], Ei = _h, Js = function() {
+ var t = /[^.]+$/.exec(Ei && Ei.keys && Ei.keys.IE_PROTO || "");
+ return t ? "Symbol(src)_1." + t : "";
+ }();
+ function Uh(t) {
+ return !!Js && Js in t;
+ }
+ var Yh = Uh, Hh = Function.prototype, Xh = Hh.toString;
+ function qh(t) {
+ if (t != null) {
+ try {
+ return Xh.call(t);
+ } catch {
+ }
+ try {
+ return t + "";
+ } catch {
+ }
+ }
+ return "";
+ }
+ var Wh = qh, Kh = /[\\^$.*+?()[\]{}|]/g, Zh = /^\[object .+?Constructor\]$/, Qh = Function.prototype, Jh = Object.prototype, jh = Qh.toString, ec = Jh.hasOwnProperty, tc = RegExp(
+ "^" + jh.call(ec).replace(Kh, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
+ );
+ function rc(t) {
+ if (!Rr(t) || Yh(t))
+ return !1;
+ var e = Vh(t) ? tc : Zh;
+ return e.test(Wh(t));
+ }
+ var ac = rc;
+ function nc(t, e) {
+ return t == null ? void 0 : t[e];
+ }
+ var ic = nc;
+ function sc(t, e) {
+ var r = ic(t, e);
+ return ac(r) ? r : void 0;
+ }
+ var wi = sc, oc = wi(Object, "create"), Ga = oc;
+ function uc() {
+ this.__data__ = Ga ? Ga(null) : {}, this.size = 0;
+ }
+ var lc = uc;
+ function fc(t) {
+ var e = this.has(t) && delete this.__data__[t];
+ return this.size -= e ? 1 : 0, e;
+ }
+ var hc = fc, cc = "__lodash_hash_undefined__", vc = Object.prototype, dc = vc.hasOwnProperty;
+ function gc(t) {
+ var e = this.__data__;
+ if (Ga) {
+ var r = e[t];
+ return r === cc ? void 0 : r;
+ }
+ return dc.call(e, t) ? e[t] : void 0;
+ }
+ var pc = gc, yc = Object.prototype, mc = yc.hasOwnProperty;
+ function bc(t) {
+ var e = this.__data__;
+ return Ga ? e[t] !== void 0 : mc.call(e, t);
+ }
+ var Ec = bc, wc = "__lodash_hash_undefined__";
+ function xc(t, e) {
+ var r = this.__data__;
+ return this.size += this.has(t) ? 0 : 1, r[t] = Ga && e === void 0 ? wc : e, this;
+ }
+ var Tc = xc;
+ function sa(t) {
+ var e = -1, r = t == null ? 0 : t.length;
+ for (this.clear(); ++e < r; ) {
+ var a = t[e];
+ this.set(a[0], a[1]);
+ }
+ }
+ sa.prototype.clear = lc, sa.prototype.delete = hc, sa.prototype.get = pc, sa.prototype.has = Ec, sa.prototype.set = Tc;
+ var js = sa;
+ function Cc() {
+ this.__data__ = [], this.size = 0;
+ }
+ var Dc = Cc;
+ function Sc(t, e) {
+ return t === e || t !== t && e !== e;
+ }
+ var eo = Sc;
+ function Lc(t, e) {
+ for (var r = t.length; r--; )
+ if (eo(t[r][0], e))
+ return r;
+ return -1;
+ }
+ var Cn = Lc, Ac = Array.prototype, Oc = Ac.splice;
+ function Nc(t) {
+ var e = this.__data__, r = Cn(e, t);
+ if (r < 0)
+ return !1;
+ var a = e.length - 1;
+ return r == a ? e.pop() : Oc.call(e, r, 1), --this.size, !0;
+ }
+ var Mc = Nc;
+ function Ic(t) {
+ var e = this.__data__, r = Cn(e, t);
+ return r < 0 ? void 0 : e[r][1];
+ }
+ var Rc = Ic;
+ function kc(t) {
+ return Cn(this.__data__, t) > -1;
+ }
+ var Pc = kc;
+ function Bc(t, e) {
+ var r = this.__data__, a = Cn(r, t);
+ return a < 0 ? (++this.size, r.push([t, e])) : r[a][1] = e, this;
+ }
+ var Fc = Bc;
+ function oa(t) {
+ var e = -1, r = t == null ? 0 : t.length;
+ for (this.clear(); ++e < r; ) {
+ var a = t[e];
+ this.set(a[0], a[1]);
+ }
+ }
+ oa.prototype.clear = Dc, oa.prototype.delete = Mc, oa.prototype.get = Rc, oa.prototype.has = Pc, oa.prototype.set = Fc;
+ var zc = oa, Gc = wi(un, "Map"), $c = Gc;
+ function Vc() {
+ this.size = 0, this.__data__ = {
+ hash: new js(),
+ map: new ($c || zc)(),
+ string: new js()
+ };
+ }
+ var _c = Vc;
+ function Uc(t) {
+ var e = typeof t;
+ return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? t !== "__proto__" : t === null;
+ }
+ var Yc = Uc;
+ function Hc(t, e) {
+ var r = t.__data__;
+ return Yc(e) ? r[typeof e == "string" ? "string" : "hash"] : r.map;
+ }
+ var Dn = Hc;
+ function Xc(t) {
+ var e = Dn(this, t).delete(t);
+ return this.size -= e ? 1 : 0, e;
+ }
+ var qc = Xc;
+ function Wc(t) {
+ return Dn(this, t).get(t);
+ }
+ var Kc = Wc;
+ function Zc(t) {
+ return Dn(this, t).has(t);
+ }
+ var Qc = Zc;
+ function Jc(t, e) {
+ var r = Dn(this, t), a = r.size;
+ return r.set(t, e), this.size += r.size == a ? 0 : 1, this;
+ }
+ var jc = Jc;
+ function ua(t) {
+ var e = -1, r = t == null ? 0 : t.length;
+ for (this.clear(); ++e < r; ) {
+ var a = t[e];
+ this.set(a[0], a[1]);
+ }
+ }
+ ua.prototype.clear = _c, ua.prototype.delete = qc, ua.prototype.get = Kc, ua.prototype.has = Qc, ua.prototype.set = jc;
+ var to = ua, ev = "Expected a function";
+ function xi(t, e) {
+ if (typeof t != "function" || e != null && typeof e != "function")
+ throw new TypeError(ev);
+ var r = function() {
+ var a = arguments, n = e ? e.apply(this, a) : a[0], i = r.cache;
+ if (i.has(n))
+ return i.get(n);
+ var s = t.apply(this, a);
+ return r.cache = i.set(n, s) || i, s;
+ };
+ return r.cache = new (xi.Cache || to)(), r;
+ }
+ xi.Cache = to;
+ var tv = xi, rv = 500;
+ function av(t) {
+ var e = tv(t, function(a) {
+ return r.size === rv && r.clear(), a;
+ }), r = e.cache;
+ return e;
+ }
+ var nv = av, iv = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, sv = /\\(\\)?/g, ov = nv(function(t) {
+ var e = [];
+ return t.charCodeAt(0) === 46 && e.push(""), t.replace(iv, function(r, a, n, i) {
+ e.push(n ? i.replace(sv, "$1") : a || r);
+ }), e;
+ }), ro = ov;
+ function uv(t, e) {
+ for (var r = -1, a = t == null ? 0 : t.length, n = Array(a); ++r < a; )
+ n[r] = e(t[r], r, t);
+ return n;
+ }
+ var ao = uv, lv = 1 / 0, no = Zr ? Zr.prototype : void 0, io = no ? no.toString : void 0;
+ function so(t) {
+ if (typeof t == "string")
+ return t;
+ if (Tn(t))
+ return ao(t, so) + "";
+ if (Aa(t))
+ return io ? io.call(t) : "";
+ var e = t + "";
+ return e == "0" && 1 / t == -lv ? "-0" : e;
+ }
+ var fv = so;
+ function hv(t) {
+ return t == null ? "" : fv(t);
+ }
+ var oo = hv;
+ function cv(t, e) {
+ return Tn(t) ? t : Ph(t, e) ? [t] : ro(oo(t));
+ }
+ var uo = cv, vv = 1 / 0;
+ function dv(t) {
+ if (typeof t == "string" || Aa(t))
+ return t;
+ var e = t + "";
+ return e == "0" && 1 / t == -vv ? "-0" : e;
+ }
+ var Ti = dv;
+ function gv(t, e) {
+ e = uo(e, t);
+ for (var r = 0, a = e.length; t != null && r < a; )
+ t = t[Ti(e[r++])];
+ return r && r == a ? t : void 0;
+ }
+ var pv = gv;
+ function yv(t, e, r) {
+ var a = t == null ? void 0 : pv(t, e);
+ return a === void 0 ? r : a;
+ }
+ var mv = yv, bv = function() {
+ try {
+ var t = wi(Object, "defineProperty");
+ return t({}, "", {}), t;
+ } catch {
+ }
+ }(), lo = bv;
+ function Ev(t, e, r) {
+ e == "__proto__" && lo ? lo(t, e, {
+ configurable: !0,
+ enumerable: !0,
+ value: r,
+ writable: !0
+ }) : t[e] = r;
+ }
+ var wv = Ev, xv = Object.prototype, Tv = xv.hasOwnProperty;
+ function Cv(t, e, r) {
+ var a = t[e];
+ (!(Tv.call(t, e) && eo(a, r)) || r === void 0 && !(e in t)) && wv(t, e, r);
+ }
+ var Dv = Cv, Sv = 9007199254740991, Lv = /^(?:0|[1-9]\d*)$/;
+ function Av(t, e) {
+ var r = typeof t;
+ return e = e ?? Sv, !!e && (r == "number" || r != "symbol" && Lv.test(t)) && t > -1 && t % 1 == 0 && t < e;
+ }
+ var Ov = Av;
+ function Nv(t, e, r, a) {
+ if (!Rr(t))
+ return t;
+ e = uo(e, t);
+ for (var n = -1, i = e.length, s = i - 1, o = t; o != null && ++n < i; ) {
+ var l = Ti(e[n]), u = r;
+ if (l === "__proto__" || l === "constructor" || l === "prototype")
+ return t;
+ if (n != s) {
+ var f = o[l];
+ u = a ? a(f, l, o) : void 0, u === void 0 && (u = Rr(f) ? f : Ov(e[n + 1]) ? [] : {});
+ }
+ Dv(o, l, u), o = o[l];
+ }
+ return t;
+ }
+ var Mv = Nv;
+ function Iv(t, e, r) {
+ return t == null ? t : Mv(t, e, r);
+ }
+ var Rv = Iv;
+ function kv(t, e) {
+ var r = -1, a = t.length;
+ for (e || (e = Array(a)); ++r < a; )
+ e[r] = t[r];
+ return e;
+ }
+ var Pv = kv;
+ function Bv(t) {
+ return Tn(t) ? ao(t, Ti) : Aa(t) ? [t] : Pv(ro(oo(t)));
+ }
+ var Fv = Bv, zv = {
+ // access data field
+ data: function(e) {
+ var r = {
+ field: "data",
+ bindingEvent: "data",
+ allowBinding: !1,
+ allowSetting: !1,
+ allowGetting: !1,
+ settingEvent: "data",
+ settingTriggersEvent: !1,
+ triggerFnName: "trigger",
+ immutableKeys: {},
+ // key => true if immutable
+ updateStyle: !1,
+ beforeGet: function(n) {
+ },
+ beforeSet: function(n, i) {
+ },
+ onSet: function(n) {
+ },
+ canSet: function(n) {
+ return !0;
+ }
+ };
+ return e = Ue({}, r, e), function(n, i) {
+ var s = e, o = this, l = o.length !== void 0, u = l ? o : [o], f = l ? o[0] : o;
+ if (j(n)) {
+ var h = n.indexOf(".") !== -1, c = h && Fv(n);
+ if (s.allowGetting && i === void 0) {
+ var v;
+ return f && (s.beforeGet(f), c && f._private[s.field][n] === void 0 ? v = mv(f._private[s.field], c) : v = f._private[s.field][n]), v;
+ } else if (s.allowSetting && i !== void 0) {
+ var d = !s.immutableKeys[n];
+ if (d) {
+ var g = T({}, n, i);
+ s.beforeSet(o, g);
+ for (var y = 0, p = u.length; y < p; y++) {
+ var m = u[y];
+ s.canSet(m) && (c && f._private[s.field][n] === void 0 ? Rv(m._private[s.field], c, i) : m._private[s.field][n] = i);
+ }
+ s.updateStyle && o.updateStyle(), s.onSet(o), s.settingTriggersEvent && o[s.triggerFnName](s.settingEvent);
+ }
+ }
+ } else if (s.allowSetting && L(n)) {
+ var b = n, E, M, A = Object.keys(b);
+ s.beforeSet(o, b);
+ for (var w = 0; w < A.length; w++) {
+ E = A[w], M = b[E];
+ var I = !s.immutableKeys[E];
+ if (I)
+ for (var C = 0; C < u.length; C++) {
+ var B = u[C];
+ s.canSet(B) && (B._private[s.field][E] = M);
+ }
+ }
+ s.updateStyle && o.updateStyle(), s.onSet(o), s.settingTriggersEvent && o[s.triggerFnName](s.settingEvent);
+ } else if (s.allowBinding && Y(n)) {
+ var F = n;
+ o.on(s.bindingEvent, F);
+ } else if (s.allowGetting && n === void 0) {
+ var R;
+ return f && (s.beforeGet(f), R = f._private[s.field]), R;
+ }
+ return o;
+ };
+ },
+ // data
+ // remove data field
+ removeData: function(e) {
+ var r = {
+ field: "data",
+ event: "data",
+ triggerFnName: "trigger",
+ triggerEvent: !1,
+ immutableKeys: {}
+ // key => true if immutable
+ };
+ return e = Ue({}, r, e), function(n) {
+ var i = e, s = this, o = s.length !== void 0, l = o ? s : [s];
+ if (j(n)) {
+ for (var u = n.split(/\s+/), f = u.length, h = 0; h < f; h++) {
+ var c = u[h];
+ if (!Pe(c)) {
+ var v = !i.immutableKeys[c];
+ if (v)
+ for (var d = 0, g = l.length; d < g; d++)
+ l[d]._private[i.field][c] = void 0;
+ }
+ }
+ i.triggerEvent && s[i.triggerFnName](i.event);
+ } else if (n === void 0) {
+ for (var y = 0, p = l.length; y < p; y++)
+ for (var m = l[y]._private[i.field], b = Object.keys(m), E = 0; E < b.length; E++) {
+ var M = b[E], A = !i.immutableKeys[M];
+ A && (m[M] = void 0);
+ }
+ i.triggerEvent && s[i.triggerFnName](i.event);
+ }
+ return s;
+ };
+ }
+ // removeData
+ }, Gv = {
+ eventAliasesOn: function(e) {
+ var r = e;
+ r.addListener = r.listen = r.bind = r.on, r.unlisten = r.unbind = r.off = r.removeListener, r.trigger = r.emit, r.pon = r.promiseOn = function(a, n) {
+ var i = this, s = Array.prototype.slice.call(arguments, 0);
+ return new ia(function(o, l) {
+ var u = function(v) {
+ i.off.apply(i, h), o(v);
+ }, f = s.concat([u]), h = f.concat([]);
+ i.on.apply(i, f);
+ });
+ };
+ }
+ }, ht = {};
+ [Nh, zv, Gv].forEach(function(t) {
+ Ue(ht, t);
+ });
+ var $v = {
+ animate: ht.animate(),
+ animation: ht.animation(),
+ animated: ht.animated(),
+ clearQueue: ht.clearQueue(),
+ delay: ht.delay(),
+ delayAnimation: ht.delayAnimation(),
+ stop: ht.stop()
+ }, Sn = {
+ classes: function(e) {
+ var r = this;
+ if (e === void 0) {
+ var a = [];
+ return r[0]._private.classes.forEach(function(d) {
+ return a.push(d);
+ }), a;
+ } else
+ te(e) || (e = (e || "").match(/\S+/g) || []);
+ for (var n = [], i = new Jr(e), s = 0; s < r.length; s++) {
+ for (var o = r[s], l = o._private, u = l.classes, f = !1, h = 0; h < e.length; h++) {
+ var c = e[h], v = u.has(c);
+ if (!v) {
+ f = !0;
+ break;
+ }
+ }
+ f || (f = u.size !== e.length), f && (l.classes = i, n.push(o));
+ }
+ return n.length > 0 && this.spawn(n).updateStyle().emit("class"), r;
+ },
+ addClass: function(e) {
+ return this.toggleClass(e, !0);
+ },
+ hasClass: function(e) {
+ var r = this[0];
+ return r != null && r._private.classes.has(e);
+ },
+ toggleClass: function(e, r) {
+ te(e) || (e = e.match(/\S+/g) || []);
+ for (var a = this, n = r === void 0, i = [], s = 0, o = a.length; s < o; s++)
+ for (var l = a[s], u = l._private.classes, f = !1, h = 0; h < e.length; h++) {
+ var c = e[h], v = u.has(c), d = !1;
+ r || n && !v ? (u.add(c), d = !0) : (!r || n && v) && (u.delete(c), d = !0), !f && d && (i.push(l), f = !0);
+ }
+ return i.length > 0 && this.spawn(i).updateStyle().emit("class"), a;
+ },
+ removeClass: function(e) {
+ return this.toggleClass(e, !1);
+ },
+ flashClass: function(e, r) {
+ var a = this;
+ if (r == null)
+ r = 250;
+ else if (r === 0)
+ return a;
+ return a.addClass(e), setTimeout(function() {
+ a.removeClass(e);
+ }, r), a;
+ }
+ };
+ Sn.className = Sn.classNames = Sn.classes;
+ var it = {
+ metaChar: "[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",
+ // chars we need to escape in let names, etc
+ comparatorOp: "=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",
+ // binary comparison op (used in data selectors)
+ boolOp: "\\?|\\!|\\^",
+ // boolean (unary) operators (used in data selectors)
+ string: `"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,
+ // string literals (used in data selectors) -- doublequotes | singlequotes
+ number: vt,
+ // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123
+ meta: "degree|indegree|outdegree",
+ // allowed metadata fields (i.e. allowed functions to use from Collection)
+ separator: "\\s*,\\s*",
+ // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass
+ descendant: "\\s+",
+ child: "\\s+>\\s+",
+ subject: "\\$",
+ group: "node|edge|\\*",
+ directedEdge: "\\s+->\\s+",
+ undirectedEdge: "\\s+<->\\s+"
+ };
+ it.variable = "(?:[\\w-.]|(?:\\\\" + it.metaChar + "))+", it.className = "(?:[\\w-]|(?:\\\\" + it.metaChar + "))+", it.value = it.string + "|" + it.number, it.id = it.variable, function() {
+ var t, e, r;
+ for (t = it.comparatorOp.split("|"), r = 0; r < t.length; r++)
+ e = t[r], it.comparatorOp += "|@" + e;
+ for (t = it.comparatorOp.split("|"), r = 0; r < t.length; r++)
+ e = t[r], !(e.indexOf("!") >= 0) && e !== "=" && (it.comparatorOp += "|\\!" + e);
+ }();
+ var gt = function() {
+ return {
+ checks: []
+ };
+ }, Be = {
+ /** E.g. node */
+ GROUP: 0,
+ /** A collection of elements */
+ COLLECTION: 1,
+ /** A filter(ele) function */
+ FILTER: 2,
+ /** E.g. [foo > 1] */
+ DATA_COMPARE: 3,
+ /** E.g. [foo] */
+ DATA_EXIST: 4,
+ /** E.g. [?foo] */
+ DATA_BOOL: 5,
+ /** E.g. [[degree > 2]] */
+ META_COMPARE: 6,
+ /** E.g. :selected */
+ STATE: 7,
+ /** E.g. #foo */
+ ID: 8,
+ /** E.g. .foo */
+ CLASS: 9,
+ /** E.g. #foo <-> #bar */
+ UNDIRECTED_EDGE: 10,
+ /** E.g. #foo -> #bar */
+ DIRECTED_EDGE: 11,
+ /** E.g. $#foo -> #bar */
+ NODE_SOURCE: 12,
+ /** E.g. #foo -> $#bar */
+ NODE_TARGET: 13,
+ /** E.g. $#foo <-> #bar */
+ NODE_NEIGHBOR: 14,
+ /** E.g. #foo > #bar */
+ CHILD: 15,
+ /** E.g. #foo #bar */
+ DESCENDANT: 16,
+ /** E.g. $#foo > #bar */
+ PARENT: 17,
+ /** E.g. $#foo #bar */
+ ANCESTOR: 18,
+ /** E.g. #foo > $bar > #baz */
+ COMPOUND_SPLIT: 19,
+ /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */
+ TRUE: 20
+ }, Ci = [{
+ selector: ":selected",
+ matches: function(e) {
+ return e.selected();
+ }
+ }, {
+ selector: ":unselected",
+ matches: function(e) {
+ return !e.selected();
+ }
+ }, {
+ selector: ":selectable",
+ matches: function(e) {
+ return e.selectable();
+ }
+ }, {
+ selector: ":unselectable",
+ matches: function(e) {
+ return !e.selectable();
+ }
+ }, {
+ selector: ":locked",
+ matches: function(e) {
+ return e.locked();
+ }
+ }, {
+ selector: ":unlocked",
+ matches: function(e) {
+ return !e.locked();
+ }
+ }, {
+ selector: ":visible",
+ matches: function(e) {
+ return e.visible();
+ }
+ }, {
+ selector: ":hidden",
+ matches: function(e) {
+ return !e.visible();
+ }
+ }, {
+ selector: ":transparent",
+ matches: function(e) {
+ return e.transparent();
+ }
+ }, {
+ selector: ":grabbed",
+ matches: function(e) {
+ return e.grabbed();
+ }
+ }, {
+ selector: ":free",
+ matches: function(e) {
+ return !e.grabbed();
+ }
+ }, {
+ selector: ":removed",
+ matches: function(e) {
+ return e.removed();
+ }
+ }, {
+ selector: ":inside",
+ matches: function(e) {
+ return !e.removed();
+ }
+ }, {
+ selector: ":grabbable",
+ matches: function(e) {
+ return e.grabbable();
+ }
+ }, {
+ selector: ":ungrabbable",
+ matches: function(e) {
+ return !e.grabbable();
+ }
+ }, {
+ selector: ":animated",
+ matches: function(e) {
+ return e.animated();
+ }
+ }, {
+ selector: ":unanimated",
+ matches: function(e) {
+ return !e.animated();
+ }
+ }, {
+ selector: ":parent",
+ matches: function(e) {
+ return e.isParent();
+ }
+ }, {
+ selector: ":childless",
+ matches: function(e) {
+ return e.isChildless();
+ }
+ }, {
+ selector: ":child",
+ matches: function(e) {
+ return e.isChild();
+ }
+ }, {
+ selector: ":orphan",
+ matches: function(e) {
+ return e.isOrphan();
+ }
+ }, {
+ selector: ":nonorphan",
+ matches: function(e) {
+ return e.isChild();
+ }
+ }, {
+ selector: ":compound",
+ matches: function(e) {
+ return e.isNode() ? e.isParent() : e.source().isParent() || e.target().isParent();
+ }
+ }, {
+ selector: ":loop",
+ matches: function(e) {
+ return e.isLoop();
+ }
+ }, {
+ selector: ":simple",
+ matches: function(e) {
+ return e.isSimple();
+ }
+ }, {
+ selector: ":active",
+ matches: function(e) {
+ return e.active();
+ }
+ }, {
+ selector: ":inactive",
+ matches: function(e) {
+ return !e.active();
+ }
+ }, {
+ selector: ":backgrounding",
+ matches: function(e) {
+ return e.backgrounding();
+ }
+ }, {
+ selector: ":nonbackgrounding",
+ matches: function(e) {
+ return !e.backgrounding();
+ }
+ }].sort(function(t, e) {
+ return Qu(t.selector, e.selector);
+ }), Vv = function() {
+ for (var t = {}, e, r = 0; r < Ci.length; r++)
+ e = Ci[r], t[e.selector] = e.matches;
+ return t;
+ }(), _v = function(e, r) {
+ return Vv[e](r);
+ }, Uv = "(" + Ci.map(function(t) {
+ return t.selector;
+ }).join("|") + ")", la = function(e) {
+ return e.replace(new RegExp("\\\\(" + it.metaChar + ")", "g"), function(r, a) {
+ return a;
+ });
+ }, Cr = function(e, r, a) {
+ e[e.length - 1] = a;
+ }, Di = [{
+ name: "group",
+ // just used for identifying when debugging
+ query: !0,
+ regex: "(" + it.group + ")",
+ populate: function(e, r, a) {
+ var n = x(a, 1), i = n[0];
+ r.checks.push({
+ type: Be.GROUP,
+ value: i === "*" ? i : i + "s"
+ });
+ }
+ }, {
+ name: "state",
+ query: !0,
+ regex: Uv,
+ populate: function(e, r, a) {
+ var n = x(a, 1), i = n[0];
+ r.checks.push({
+ type: Be.STATE,
+ value: i
+ });
+ }
+ }, {
+ name: "id",
+ query: !0,
+ regex: "\\#(" + it.id + ")",
+ populate: function(e, r, a) {
+ var n = x(a, 1), i = n[0];
+ r.checks.push({
+ type: Be.ID,
+ value: la(i)
+ });
+ }
+ }, {
+ name: "className",
+ query: !0,
+ regex: "\\.(" + it.className + ")",
+ populate: function(e, r, a) {
+ var n = x(a, 1), i = n[0];
+ r.checks.push({
+ type: Be.CLASS,
+ value: la(i)
+ });
+ }
+ }, {
+ name: "dataExists",
+ query: !0,
+ regex: "\\[\\s*(" + it.variable + ")\\s*\\]",
+ populate: function(e, r, a) {
+ var n = x(a, 1), i = n[0];
+ r.checks.push({
+ type: Be.DATA_EXIST,
+ field: la(i)
+ });
+ }
+ }, {
+ name: "dataCompare",
+ query: !0,
+ regex: "\\[\\s*(" + it.variable + ")\\s*(" + it.comparatorOp + ")\\s*(" + it.value + ")\\s*\\]",
+ populate: function(e, r, a) {
+ var n = x(a, 3), i = n[0], s = n[1], o = n[2], l = new RegExp("^" + it.string + "$").exec(o) != null;
+ l ? o = o.substring(1, o.length - 1) : o = parseFloat(o), r.checks.push({
+ type: Be.DATA_COMPARE,
+ field: la(i),
+ operator: s,
+ value: o
+ });
+ }
+ }, {
+ name: "dataBool",
+ query: !0,
+ regex: "\\[\\s*(" + it.boolOp + ")\\s*(" + it.variable + ")\\s*\\]",
+ populate: function(e, r, a) {
+ var n = x(a, 2), i = n[0], s = n[1];
+ r.checks.push({
+ type: Be.DATA_BOOL,
+ field: la(s),
+ operator: i
+ });
+ }
+ }, {
+ name: "metaCompare",
+ query: !0,
+ regex: "\\[\\[\\s*(" + it.meta + ")\\s*(" + it.comparatorOp + ")\\s*(" + it.number + ")\\s*\\]\\]",
+ populate: function(e, r, a) {
+ var n = x(a, 3), i = n[0], s = n[1], o = n[2];
+ r.checks.push({
+ type: Be.META_COMPARE,
+ field: la(i),
+ operator: s,
+ value: parseFloat(o)
+ });
+ }
+ }, {
+ name: "nextQuery",
+ separator: !0,
+ regex: it.separator,
+ populate: function(e, r) {
+ var a = e.currentSubject, n = e.edgeCount, i = e.compoundCount, s = e[e.length - 1];
+ a != null && (s.subject = a, e.currentSubject = null), s.edgeCount = n, s.compoundCount = i, e.edgeCount = 0, e.compoundCount = 0;
+ var o = e[e.length++] = gt();
+ return o;
+ }
+ }, {
+ name: "directedEdge",
+ separator: !0,
+ regex: it.directedEdge,
+ populate: function(e, r) {
+ if (e.currentSubject == null) {
+ var a = gt(), n = r, i = gt();
+ return a.checks.push({
+ type: Be.DIRECTED_EDGE,
+ source: n,
+ target: i
+ }), Cr(e, r, a), e.edgeCount++, i;
+ } else {
+ var s = gt(), o = r, l = gt();
+ return s.checks.push({
+ type: Be.NODE_SOURCE,
+ source: o,
+ target: l
+ }), Cr(e, r, s), e.edgeCount++, l;
+ }
+ }
+ }, {
+ name: "undirectedEdge",
+ separator: !0,
+ regex: it.undirectedEdge,
+ populate: function(e, r) {
+ if (e.currentSubject == null) {
+ var a = gt(), n = r, i = gt();
+ return a.checks.push({
+ type: Be.UNDIRECTED_EDGE,
+ nodes: [n, i]
+ }), Cr(e, r, a), e.edgeCount++, i;
+ } else {
+ var s = gt(), o = r, l = gt();
+ return s.checks.push({
+ type: Be.NODE_NEIGHBOR,
+ node: o,
+ neighbor: l
+ }), Cr(e, r, s), l;
+ }
+ }
+ }, {
+ name: "child",
+ separator: !0,
+ regex: it.child,
+ populate: function(e, r) {
+ if (e.currentSubject == null) {
+ var a = gt(), n = gt(), i = e[e.length - 1];
+ return a.checks.push({
+ type: Be.CHILD,
+ parent: i,
+ child: n
+ }), Cr(e, r, a), e.compoundCount++, n;
+ } else if (e.currentSubject === r) {
+ var s = gt(), o = e[e.length - 1], l = gt(), u = gt(), f = gt(), h = gt();
+ return s.checks.push({
+ type: Be.COMPOUND_SPLIT,
+ left: o,
+ right: l,
+ subject: u
+ }), u.checks = r.checks, r.checks = [{
+ type: Be.TRUE
+ }], h.checks.push({
+ type: Be.TRUE
+ }), l.checks.push({
+ type: Be.PARENT,
+ // type is swapped on right side queries
+ parent: h,
+ child: f
+ // empty for now
+ }), Cr(e, o, s), e.currentSubject = u, e.compoundCount++, f;
+ } else {
+ var c = gt(), v = gt(), d = [{
+ type: Be.PARENT,
+ parent: c,
+ child: v
+ }];
+ return c.checks = r.checks, r.checks = d, e.compoundCount++, v;
+ }
+ }
+ }, {
+ name: "descendant",
+ separator: !0,
+ regex: it.descendant,
+ populate: function(e, r) {
+ if (e.currentSubject == null) {
+ var a = gt(), n = gt(), i = e[e.length - 1];
+ return a.checks.push({
+ type: Be.DESCENDANT,
+ ancestor: i,
+ descendant: n
+ }), Cr(e, r, a), e.compoundCount++, n;
+ } else if (e.currentSubject === r) {
+ var s = gt(), o = e[e.length - 1], l = gt(), u = gt(), f = gt(), h = gt();
+ return s.checks.push({
+ type: Be.COMPOUND_SPLIT,
+ left: o,
+ right: l,
+ subject: u
+ }), u.checks = r.checks, r.checks = [{
+ type: Be.TRUE
+ }], h.checks.push({
+ type: Be.TRUE
+ }), l.checks.push({
+ type: Be.ANCESTOR,
+ // type is swapped on right side queries
+ ancestor: h,
+ descendant: f
+ // empty for now
+ }), Cr(e, o, s), e.currentSubject = u, e.compoundCount++, f;
+ } else {
+ var c = gt(), v = gt(), d = [{
+ type: Be.ANCESTOR,
+ ancestor: c,
+ descendant: v
+ }];
+ return c.checks = r.checks, r.checks = d, e.compoundCount++, v;
+ }
+ }
+ }, {
+ name: "subject",
+ modifier: !0,
+ regex: it.subject,
+ populate: function(e, r) {
+ if (e.currentSubject != null && e.currentSubject !== r)
+ return ft("Redefinition of subject in selector `" + e.toString() + "`"), !1;
+ e.currentSubject = r;
+ var a = e[e.length - 1], n = a.checks[0], i = n == null ? null : n.type;
+ i === Be.DIRECTED_EDGE ? n.type = Be.NODE_TARGET : i === Be.UNDIRECTED_EDGE && (n.type = Be.NODE_NEIGHBOR, n.node = n.nodes[1], n.neighbor = n.nodes[0], n.nodes = null);
+ }
+ }];
+ Di.forEach(function(t) {
+ return t.regexObj = new RegExp("^" + t.regex);
+ });
+ var Yv = function(e) {
+ for (var r, a, n, i = 0; i < Di.length; i++) {
+ var s = Di[i], o = s.name, l = e.match(s.regexObj);
+ if (l != null) {
+ a = l, r = s, n = o;
+ var u = l[0];
+ e = e.substring(u.length);
+ break;
+ }
+ }
+ return {
+ expr: r,
+ match: a,
+ name: n,
+ remaining: e
+ };
+ }, Hv = function(e) {
+ var r = e.match(/^\s+/);
+ if (r) {
+ var a = r[0];
+ e = e.substring(a.length);
+ }
+ return e;
+ }, Xv = function(e) {
+ var r = this, a = r.inputText = e, n = r[0] = gt();
+ for (r.length = 1, a = Hv(a); ; ) {
+ var i = Yv(a);
+ if (i.expr == null)
+ return ft("The selector `" + e + "`is invalid"), !1;
+ var s = i.match.slice(1), o = i.expr.populate(r, n, s);
+ if (o === !1)
+ return !1;
+ if (o != null && (n = o), a = i.remaining, a.match(/^\s*$/))
+ break;
+ }
+ var l = r[r.length - 1];
+ r.currentSubject != null && (l.subject = r.currentSubject), l.edgeCount = r.edgeCount, l.compoundCount = r.compoundCount;
+ for (var u = 0; u < r.length; u++) {
+ var f = r[u];
+ if (f.compoundCount > 0 && f.edgeCount > 0)
+ return ft("The selector `" + e + "` is invalid because it uses both a compound selector and an edge selector"), !1;
+ if (f.edgeCount > 1)
+ return ft("The selector `" + e + "` is invalid because it uses multiple edge selectors"), !1;
+ f.edgeCount === 1 && ft("The selector `" + e + "` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.");
+ }
+ return !0;
+ }, qv = function() {
+ if (this.toStringCache != null)
+ return this.toStringCache;
+ for (var e = function(f) {
+ return f ?? "";
+ }, r = function(f) {
+ return j(f) ? '"' + f + '"' : e(f);
+ }, a = function(f) {
+ return " " + f + " ";
+ }, n = function(f, h) {
+ var c = f.type, v = f.value;
+ switch (c) {
+ case Be.GROUP: {
+ var d = e(v);
+ return d.substring(0, d.length - 1);
+ }
+ case Be.DATA_COMPARE: {
+ var g = f.field, y = f.operator;
+ return "[" + g + a(e(y)) + r(v) + "]";
+ }
+ case Be.DATA_BOOL: {
+ var p = f.operator, m = f.field;
+ return "[" + e(p) + m + "]";
+ }
+ case Be.DATA_EXIST: {
+ var b = f.field;
+ return "[" + b + "]";
+ }
+ case Be.META_COMPARE: {
+ var E = f.operator, M = f.field;
+ return "[[" + M + a(e(E)) + r(v) + "]]";
+ }
+ case Be.STATE:
+ return v;
+ case Be.ID:
+ return "#" + v;
+ case Be.CLASS:
+ return "." + v;
+ case Be.PARENT:
+ case Be.CHILD:
+ return i(f.parent, h) + a(">") + i(f.child, h);
+ case Be.ANCESTOR:
+ case Be.DESCENDANT:
+ return i(f.ancestor, h) + " " + i(f.descendant, h);
+ case Be.COMPOUND_SPLIT: {
+ var A = i(f.left, h), w = i(f.subject, h), I = i(f.right, h);
+ return A + (A.length > 0 ? " " : "") + w + I;
+ }
+ case Be.TRUE:
+ return "";
+ }
+ }, i = function(f, h) {
+ return f.checks.reduce(function(c, v, d) {
+ return c + (h === f && d === 0 ? "$" : "") + n(v, h);
+ }, "");
+ }, s = "", o = 0; o < this.length; o++) {
+ var l = this[o];
+ s += i(l, l.subject), this.length > 1 && o < this.length - 1 && (s += ", ");
+ }
+ return this.toStringCache = s, s;
+ }, Wv = {
+ parse: Xv,
+ toString: qv
+ }, fo = function(e, r, a) {
+ var n, i = j(e), s = k(e), o = j(a), l, u, f = !1, h = !1, c = !1;
+ switch (r.indexOf("!") >= 0 && (r = r.replace("!", ""), h = !0), r.indexOf("@") >= 0 && (r = r.replace("@", ""), f = !0), (i || o || f) && (l = !i && !s ? "" : "" + e, u = "" + a), f && (e = l = l.toLowerCase(), a = u = u.toLowerCase()), r) {
+ case "*=":
+ n = l.indexOf(u) >= 0;
+ break;
+ case "$=":
+ n = l.indexOf(u, l.length - u.length) >= 0;
+ break;
+ case "^=":
+ n = l.indexOf(u) === 0;
+ break;
+ case "=":
+ n = e === a;
+ break;
+ case ">":
+ c = !0, n = e > a;
+ break;
+ case ">=":
+ c = !0, n = e >= a;
+ break;
+ case "<":
+ c = !0, n = e < a;
+ break;
+ case "<=":
+ c = !0, n = e <= a;
+ break;
+ default:
+ n = !1;
+ break;
+ }
+ return h && (e != null || !c) && (n = !n), n;
+ }, Kv = function(e, r) {
+ switch (r) {
+ case "?":
+ return !!e;
+ case "!":
+ return !e;
+ case "^":
+ return e === void 0;
+ }
+ }, Zv = function(e) {
+ return e !== void 0;
+ }, Si = function(e, r) {
+ return e.data(r);
+ }, Qv = function(e, r) {
+ return e[r]();
+ }, Tt = [], wt = function(e, r) {
+ return e.checks.every(function(a) {
+ return Tt[a.type](a, r);
+ });
+ };
+ Tt[Be.GROUP] = function(t, e) {
+ var r = t.value;
+ return r === "*" || r === e.group();
+ }, Tt[Be.STATE] = function(t, e) {
+ var r = t.value;
+ return _v(r, e);
+ }, Tt[Be.ID] = function(t, e) {
+ var r = t.value;
+ return e.id() === r;
+ }, Tt[Be.CLASS] = function(t, e) {
+ var r = t.value;
+ return e.hasClass(r);
+ }, Tt[Be.META_COMPARE] = function(t, e) {
+ var r = t.field, a = t.operator, n = t.value;
+ return fo(Qv(e, r), a, n);
+ }, Tt[Be.DATA_COMPARE] = function(t, e) {
+ var r = t.field, a = t.operator, n = t.value;
+ return fo(Si(e, r), a, n);
+ }, Tt[Be.DATA_BOOL] = function(t, e) {
+ var r = t.field, a = t.operator;
+ return Kv(Si(e, r), a);
+ }, Tt[Be.DATA_EXIST] = function(t, e) {
+ var r = t.field;
+ return t.operator, Zv(Si(e, r));
+ }, Tt[Be.UNDIRECTED_EDGE] = function(t, e) {
+ var r = t.nodes[0], a = t.nodes[1], n = e.source(), i = e.target();
+ return wt(r, n) && wt(a, i) || wt(a, n) && wt(r, i);
+ }, Tt[Be.NODE_NEIGHBOR] = function(t, e) {
+ return wt(t.node, e) && e.neighborhood().some(function(r) {
+ return r.isNode() && wt(t.neighbor, r);
+ });
+ }, Tt[Be.DIRECTED_EDGE] = function(t, e) {
+ return wt(t.source, e.source()) && wt(t.target, e.target());
+ }, Tt[Be.NODE_SOURCE] = function(t, e) {
+ return wt(t.source, e) && e.outgoers().some(function(r) {
+ return r.isNode() && wt(t.target, r);
+ });
+ }, Tt[Be.NODE_TARGET] = function(t, e) {
+ return wt(t.target, e) && e.incomers().some(function(r) {
+ return r.isNode() && wt(t.source, r);
+ });
+ }, Tt[Be.CHILD] = function(t, e) {
+ return wt(t.child, e) && wt(t.parent, e.parent());
+ }, Tt[Be.PARENT] = function(t, e) {
+ return wt(t.parent, e) && e.children().some(function(r) {
+ return wt(t.child, r);
+ });
+ }, Tt[Be.DESCENDANT] = function(t, e) {
+ return wt(t.descendant, e) && e.ancestors().some(function(r) {
+ return wt(t.ancestor, r);
+ });
+ }, Tt[Be.ANCESTOR] = function(t, e) {
+ return wt(t.ancestor, e) && e.descendants().some(function(r) {
+ return wt(t.descendant, r);
+ });
+ }, Tt[Be.COMPOUND_SPLIT] = function(t, e) {
+ return wt(t.subject, e) && wt(t.left, e) && wt(t.right, e);
+ }, Tt[Be.TRUE] = function() {
+ return !0;
+ }, Tt[Be.COLLECTION] = function(t, e) {
+ var r = t.value;
+ return r.has(e);
+ }, Tt[Be.FILTER] = function(t, e) {
+ var r = t.value;
+ return r(e);
+ };
+ var Jv = function(e) {
+ var r = this;
+ if (r.length === 1 && r[0].checks.length === 1 && r[0].checks[0].type === Be.ID)
+ return e.getElementById(r[0].checks[0].value).collection();
+ var a = function(i) {
+ for (var s = 0; s < r.length; s++) {
+ var o = r[s];
+ if (wt(o, i))
+ return !0;
+ }
+ return !1;
+ };
+ return r.text() == null && (a = function() {
+ return !0;
+ }), e.filter(a);
+ }, jv = function(e) {
+ for (var r = this, a = 0; a < r.length; a++) {
+ var n = r[a];
+ if (wt(n, e))
+ return !0;
+ }
+ return !1;
+ }, ed = {
+ matches: jv,
+ filter: Jv
+ }, Dr = function(e) {
+ this.inputText = e, this.currentSubject = null, this.compoundCount = 0, this.edgeCount = 0, this.length = 0, e == null || j(e) && e.match(/^\s*$/) || (pe(e) ? this.addQuery({
+ checks: [{
+ type: Be.COLLECTION,
+ value: e.collection()
+ }]
+ }) : Y(e) ? this.addQuery({
+ checks: [{
+ type: Be.FILTER,
+ value: e
+ }]
+ }) : j(e) ? this.parse(e) || (this.invalid = !0) : xt("A selector must be created from a string; found "));
+ }, Sr = Dr.prototype;
+ [Wv, ed].forEach(function(t) {
+ return Ue(Sr, t);
+ }), Sr.text = function() {
+ return this.inputText;
+ }, Sr.size = function() {
+ return this.length;
+ }, Sr.eq = function(t) {
+ return this[t];
+ }, Sr.sameText = function(t) {
+ return !this.invalid && !t.invalid && this.text() === t.text();
+ }, Sr.addQuery = function(t) {
+ this[this.length++] = t;
+ }, Sr.selector = Sr.toString;
+ var Lr = {
+ allAre: function(e) {
+ var r = new Dr(e);
+ return this.every(function(a) {
+ return r.matches(a);
+ });
+ },
+ is: function(e) {
+ var r = new Dr(e);
+ return this.some(function(a) {
+ return r.matches(a);
+ });
+ },
+ some: function(e, r) {
+ for (var a = 0; a < this.length; a++) {
+ var n = r ? e.apply(r, [this[a], a, this]) : e(this[a], a, this);
+ if (n)
+ return !0;
+ }
+ return !1;
+ },
+ every: function(e, r) {
+ for (var a = 0; a < this.length; a++) {
+ var n = r ? e.apply(r, [this[a], a, this]) : e(this[a], a, this);
+ if (!n)
+ return !1;
+ }
+ return !0;
+ },
+ same: function(e) {
+ if (this === e)
+ return !0;
+ e = this.cy().collection(e);
+ var r = this.length, a = e.length;
+ return r !== a ? !1 : r === 1 ? this[0] === e[0] : this.every(function(n) {
+ return e.hasElementWithId(n.id());
+ });
+ },
+ anySame: function(e) {
+ return e = this.cy().collection(e), this.some(function(r) {
+ return e.hasElementWithId(r.id());
+ });
+ },
+ allAreNeighbors: function(e) {
+ e = this.cy().collection(e);
+ var r = this.neighborhood();
+ return e.every(function(a) {
+ return r.hasElementWithId(a.id());
+ });
+ },
+ contains: function(e) {
+ e = this.cy().collection(e);
+ var r = this;
+ return e.every(function(a) {
+ return r.hasElementWithId(a.id());
+ });
+ }
+ };
+ Lr.allAreNeighbours = Lr.allAreNeighbors, Lr.has = Lr.contains, Lr.equal = Lr.equals = Lr.same;
+ var Kt = function(e, r) {
+ return function(n, i, s, o) {
+ var l = n, u = this, f;
+ if (l == null ? f = "" : pe(l) && l.length === 1 && (f = l.id()), u.length === 1 && f) {
+ var h = u[0]._private, c = h.traversalCache = h.traversalCache || {}, v = c[r] = c[r] || [], d = kr(f), g = v[d];
+ return g || (v[d] = e.call(u, n, i, s, o));
+ } else
+ return e.call(u, n, i, s, o);
+ };
+ }, fa = {
+ parent: function(e) {
+ var r = [];
+ if (this.length === 1) {
+ var a = this[0]._private.parent;
+ if (a)
+ return a;
+ }
+ for (var n = 0; n < this.length; n++) {
+ var i = this[n], s = i._private.parent;
+ s && r.push(s);
+ }
+ return this.spawn(r, !0).filter(e);
+ },
+ parents: function(e) {
+ for (var r = [], a = this.parent(); a.nonempty(); ) {
+ for (var n = 0; n < a.length; n++) {
+ var i = a[n];
+ r.push(i);
+ }
+ a = a.parent();
+ }
+ return this.spawn(r, !0).filter(e);
+ },
+ commonAncestors: function(e) {
+ for (var r, a = 0; a < this.length; a++) {
+ var n = this[a], i = n.parents();
+ r = r || i, r = r.intersect(i);
+ }
+ return r.filter(e);
+ },
+ orphans: function(e) {
+ return this.stdFilter(function(r) {
+ return r.isOrphan();
+ }).filter(e);
+ },
+ nonorphans: function(e) {
+ return this.stdFilter(function(r) {
+ return r.isChild();
+ }).filter(e);
+ },
+ children: Kt(function(t) {
+ for (var e = [], r = 0; r < this.length; r++)
+ for (var a = this[r], n = a._private.children, i = 0; i < n.length; i++)
+ e.push(n[i]);
+ return this.spawn(e, !0).filter(t);
+ }, "children"),
+ siblings: function(e) {
+ return this.parent().children().not(this).filter(e);
+ },
+ isParent: function() {
+ var e = this[0];
+ if (e)
+ return e.isNode() && e._private.children.length !== 0;
+ },
+ isChildless: function() {
+ var e = this[0];
+ if (e)
+ return e.isNode() && e._private.children.length === 0;
+ },
+ isChild: function() {
+ var e = this[0];
+ if (e)
+ return e.isNode() && e._private.parent != null;
+ },
+ isOrphan: function() {
+ var e = this[0];
+ if (e)
+ return e.isNode() && e._private.parent == null;
+ },
+ descendants: function(e) {
+ var r = [];
+ function a(n) {
+ for (var i = 0; i < n.length; i++) {
+ var s = n[i];
+ r.push(s), s.children().nonempty() && a(s.children());
+ }
+ }
+ return a(this.children()), this.spawn(r, !0).filter(e);
+ }
+ };
+ function Li(t, e, r, a) {
+ for (var n = [], i = new Jr(), s = t.cy(), o = s.hasCompoundNodes(), l = 0; l < t.length; l++) {
+ var u = t[l];
+ r ? n.push(u) : o && a(n, i, u);
+ }
+ for (; n.length > 0; ) {
+ var f = n.shift();
+ e(f), i.add(f.id()), o && a(n, i, f);
+ }
+ return t;
+ }
+ function ho(t, e, r) {
+ if (r.isParent())
+ for (var a = r._private.children, n = 0; n < a.length; n++) {
+ var i = a[n];
+ e.has(i.id()) || t.push(i);
+ }
+ }
+ fa.forEachDown = function(t) {
+ var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
+ return Li(this, t, e, ho);
+ };
+ function co(t, e, r) {
+ if (r.isChild()) {
+ var a = r._private.parent;
+ e.has(a.id()) || t.push(a);
+ }
+ }
+ fa.forEachUp = function(t) {
+ var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
+ return Li(this, t, e, co);
+ };
+ function td(t, e, r) {
+ co(t, e, r), ho(t, e, r);
+ }
+ fa.forEachUpAndDown = function(t) {
+ var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
+ return Li(this, t, e, td);
+ }, fa.ancestors = fa.parents;
+ var $a, vo;
+ $a = vo = {
+ data: ht.data({
+ field: "data",
+ bindingEvent: "data",
+ allowBinding: !0,
+ allowSetting: !0,
+ settingEvent: "data",
+ settingTriggersEvent: !0,
+ triggerFnName: "trigger",
+ allowGetting: !0,
+ immutableKeys: {
+ id: !0,
+ source: !0,
+ target: !0,
+ parent: !0
+ },
+ updateStyle: !0
+ }),
+ removeData: ht.removeData({
+ field: "data",
+ event: "data",
+ triggerFnName: "trigger",
+ triggerEvent: !0,
+ immutableKeys: {
+ id: !0,
+ source: !0,
+ target: !0,
+ parent: !0
+ },
+ updateStyle: !0
+ }),
+ scratch: ht.data({
+ field: "scratch",
+ bindingEvent: "scratch",
+ allowBinding: !0,
+ allowSetting: !0,
+ settingEvent: "scratch",
+ settingTriggersEvent: !0,
+ triggerFnName: "trigger",
+ allowGetting: !0,
+ updateStyle: !0
+ }),
+ removeScratch: ht.removeData({
+ field: "scratch",
+ event: "scratch",
+ triggerFnName: "trigger",
+ triggerEvent: !0,
+ updateStyle: !0
+ }),
+ rscratch: ht.data({
+ field: "rscratch",
+ allowBinding: !1,
+ allowSetting: !0,
+ settingTriggersEvent: !1,
+ allowGetting: !0
+ }),
+ removeRscratch: ht.removeData({
+ field: "rscratch",
+ triggerEvent: !1
+ }),
+ id: function() {
+ var e = this[0];
+ if (e)
+ return e._private.data.id;
+ }
+ }, $a.attr = $a.data, $a.removeAttr = $a.removeData;
+ var rd = vo, Ln = {};
+ function Ai(t) {
+ return function(e) {
+ var r = this;
+ if (e === void 0 && (e = !0), r.length !== 0)
+ if (r.isNode() && !r.removed()) {
+ for (var a = 0, n = r[0], i = n._private.edges, s = 0; s < i.length; s++) {
+ var o = i[s];
+ !e && o.isLoop() || (a += t(n, o));
+ }
+ return a;
+ } else
+ return;
+ };
+ }
+ Ue(Ln, {
+ degree: Ai(function(t, e) {
+ return e.source().same(e.target()) ? 2 : 1;
+ }),
+ indegree: Ai(function(t, e) {
+ return e.target().same(t) ? 1 : 0;
+ }),
+ outdegree: Ai(function(t, e) {
+ return e.source().same(t) ? 1 : 0;
+ })
+ });
+ function ha(t, e) {
+ return function(r) {
+ for (var a, n = this.nodes(), i = 0; i < n.length; i++) {
+ var s = n[i], o = s[t](r);
+ o !== void 0 && (a === void 0 || e(o, a)) && (a = o);
+ }
+ return a;
+ };
+ }
+ Ue(Ln, {
+ minDegree: ha("degree", function(t, e) {
+ return t < e;
+ }),
+ maxDegree: ha("degree", function(t, e) {
+ return t > e;
+ }),
+ minIndegree: ha("indegree", function(t, e) {
+ return t < e;
+ }),
+ maxIndegree: ha("indegree", function(t, e) {
+ return t > e;
+ }),
+ minOutdegree: ha("outdegree", function(t, e) {
+ return t < e;
+ }),
+ maxOutdegree: ha("outdegree", function(t, e) {
+ return t > e;
+ })
+ }), Ue(Ln, {
+ totalDegree: function(e) {
+ for (var r = 0, a = this.nodes(), n = 0; n < a.length; n++)
+ r += a[n].degree(e);
+ return r;
+ }
+ });
+ var tr, go, po = function(e, r, a) {
+ for (var n = 0; n < e.length; n++) {
+ var i = e[n];
+ if (!i.locked()) {
+ var s = i._private.position, o = {
+ x: r.x != null ? r.x - s.x : 0,
+ y: r.y != null ? r.y - s.y : 0
+ };
+ i.isParent() && !(o.x === 0 && o.y === 0) && i.children().shift(o, a), i.dirtyBoundingBoxCache();
+ }
+ }
+ }, yo = {
+ field: "position",
+ bindingEvent: "position",
+ allowBinding: !0,
+ allowSetting: !0,
+ settingEvent: "position",
+ settingTriggersEvent: !0,
+ triggerFnName: "emitAndNotify",
+ allowGetting: !0,
+ validKeys: ["x", "y"],
+ beforeGet: function(e) {
+ e.updateCompoundBounds();
+ },
+ beforeSet: function(e, r) {
+ po(e, r, !1);
+ },
+ onSet: function(e) {
+ e.dirtyCompoundBoundsCache();
+ },
+ canSet: function(e) {
+ return !e.locked();
+ }
+ };
+ tr = go = {
+ position: ht.data(yo),
+ // position but no notification to renderer
+ silentPosition: ht.data(Ue({}, yo, {
+ allowBinding: !1,
+ allowSetting: !0,
+ settingTriggersEvent: !1,
+ allowGetting: !1,
+ beforeSet: function(e, r) {
+ po(e, r, !0);
+ },
+ onSet: function(e) {
+ e.dirtyCompoundBoundsCache();
+ }
+ })),
+ positions: function(e, r) {
+ if (L(e))
+ r ? this.silentPosition(e) : this.position(e);
+ else if (Y(e)) {
+ var a = e, n = this.cy();
+ n.startBatch();
+ for (var i = 0; i < this.length; i++) {
+ var s = this[i], o = void 0;
+ (o = a(s, i)) && (r ? s.silentPosition(o) : s.position(o));
+ }
+ n.endBatch();
+ }
+ return this;
+ },
+ silentPositions: function(e) {
+ return this.positions(e, !0);
+ },
+ shift: function(e, r, a) {
+ var n;
+ if (L(e) ? (n = {
+ x: k(e.x) ? e.x : 0,
+ y: k(e.y) ? e.y : 0
+ }, a = r) : j(e) && k(r) && (n = {
+ x: 0,
+ y: 0
+ }, n[e] = r), n != null) {
+ var i = this.cy();
+ i.startBatch();
+ for (var s = 0; s < this.length; s++) {
+ var o = this[s];
+ if (!(i.hasCompoundNodes() && o.isChild() && o.ancestors().anySame(this))) {
+ var l = o.position(), u = {
+ x: l.x + n.x,
+ y: l.y + n.y
+ };
+ a ? o.silentPosition(u) : o.position(u);
+ }
+ }
+ i.endBatch();
+ }
+ return this;
+ },
+ silentShift: function(e, r) {
+ return L(e) ? this.shift(e, !0) : j(e) && k(r) && this.shift(e, r, !0), this;
+ },
+ // get/set the rendered (i.e. on screen) positon of the element
+ renderedPosition: function(e, r) {
+ var a = this[0], n = this.cy(), i = n.zoom(), s = n.pan(), o = L(e) ? e : void 0, l = o !== void 0 || r !== void 0 && j(e);
+ if (a && a.isNode())
+ if (l)
+ for (var u = 0; u < this.length; u++) {
+ var f = this[u];
+ r !== void 0 ? f.position(e, (r - s[e]) / i) : o !== void 0 && f.position(bs(o, i, s));
+ }
+ else {
+ var h = a.position();
+ return o = dn(h, i, s), e === void 0 ? o : o[e];
+ }
+ else if (!l)
+ return;
+ return this;
+ },
+ // get/set the position relative to the parent
+ relativePosition: function(e, r) {
+ var a = this[0], n = this.cy(), i = L(e) ? e : void 0, s = i !== void 0 || r !== void 0 && j(e), o = n.hasCompoundNodes();
+ if (a && a.isNode())
+ if (s)
+ for (var l = 0; l < this.length; l++) {
+ var u = this[l], f = o ? u.parent() : null, h = f && f.length > 0, c = h;
+ h && (f = f[0]);
+ var v = c ? f.position() : {
+ x: 0,
+ y: 0
+ };
+ r !== void 0 ? u.position(e, r + v[e]) : i !== void 0 && u.position({
+ x: i.x + v.x,
+ y: i.y + v.y
+ });
+ }
+ else {
+ var d = a.position(), g = o ? a.parent() : null, y = g && g.length > 0, p = y;
+ y && (g = g[0]);
+ var m = p ? g.position() : {
+ x: 0,
+ y: 0
+ };
+ return i = {
+ x: d.x - m.x,
+ y: d.y - m.y
+ }, e === void 0 ? i : i[e];
+ }
+ else if (!s)
+ return;
+ return this;
+ }
+ }, tr.modelPosition = tr.point = tr.position, tr.modelPositions = tr.points = tr.positions, tr.renderedPoint = tr.renderedPosition, tr.relativePoint = tr.relativePosition;
+ var ad = go, ca, Ar;
+ ca = Ar = {}, Ar.renderedBoundingBox = function(t) {
+ var e = this.boundingBox(t), r = this.cy(), a = r.zoom(), n = r.pan(), i = e.x1 * a + n.x, s = e.x2 * a + n.x, o = e.y1 * a + n.y, l = e.y2 * a + n.y;
+ return {
+ x1: i,
+ x2: s,
+ y1: o,
+ y2: l,
+ w: s - i,
+ h: l - o
+ };
+ }, Ar.dirtyCompoundBoundsCache = function() {
+ var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, e = this.cy();
+ return !e.styleEnabled() || !e.hasCompoundNodes() ? this : (this.forEachUp(function(r) {
+ if (r.isParent()) {
+ var a = r._private;
+ a.compoundBoundsClean = !1, a.bbCache = null, t || r.emitAndNotify("bounds");
+ }
+ }), this);
+ }, Ar.updateCompoundBounds = function() {
+ var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, e = this.cy();
+ if (!e.styleEnabled() || !e.hasCompoundNodes())
+ return this;
+ if (!t && e.batching())
+ return this;
+ function r(s) {
+ if (!s.isParent())
+ return;
+ var o = s._private, l = s.children(), u = s.pstyle("compound-sizing-wrt-labels").value === "include", f = {
+ width: {
+ val: s.pstyle("min-width").pfValue,
+ left: s.pstyle("min-width-bias-left"),
+ right: s.pstyle("min-width-bias-right")
+ },
+ height: {
+ val: s.pstyle("min-height").pfValue,
+ top: s.pstyle("min-height-bias-top"),
+ bottom: s.pstyle("min-height-bias-bottom")
+ }
+ }, h = l.boundingBox({
+ includeLabels: u,
+ includeOverlays: !1,
+ // updating the compound bounds happens outside of the regular
+ // cache cycle (i.e. before fired events)
+ useCache: !1
+ }), c = o.position;
+ (h.w === 0 || h.h === 0) && (h = {
+ w: s.pstyle("width").pfValue,
+ h: s.pstyle("height").pfValue
+ }, h.x1 = c.x - h.w / 2, h.x2 = c.x + h.w / 2, h.y1 = c.y - h.h / 2, h.y2 = c.y + h.h / 2);
+ function v(C, B, F) {
+ var R = 0, X = 0, z = B + F;
+ return C > 0 && z > 0 && (R = B / z * C, X = F / z * C), {
+ biasDiff: R,
+ biasComplementDiff: X
+ };
+ }
+ function d(C, B, F, R) {
+ if (F.units === "%")
+ switch (R) {
+ case "width":
+ return C > 0 ? F.pfValue * C : 0;
+ case "height":
+ return B > 0 ? F.pfValue * B : 0;
+ case "average":
+ return C > 0 && B > 0 ? F.pfValue * (C + B) / 2 : 0;
+ case "min":
+ return C > 0 && B > 0 ? C > B ? F.pfValue * B : F.pfValue * C : 0;
+ case "max":
+ return C > 0 && B > 0 ? C > B ? F.pfValue * C : F.pfValue * B : 0;
+ default:
+ return 0;
+ }
+ else
+ return F.units === "px" ? F.pfValue : 0;
+ }
+ var g = f.width.left.value;
+ f.width.left.units === "px" && f.width.val > 0 && (g = g * 100 / f.width.val);
+ var y = f.width.right.value;
+ f.width.right.units === "px" && f.width.val > 0 && (y = y * 100 / f.width.val);
+ var p = f.height.top.value;
+ f.height.top.units === "px" && f.height.val > 0 && (p = p * 100 / f.height.val);
+ var m = f.height.bottom.value;
+ f.height.bottom.units === "px" && f.height.val > 0 && (m = m * 100 / f.height.val);
+ var b = v(f.width.val - h.w, g, y), E = b.biasDiff, M = b.biasComplementDiff, A = v(f.height.val - h.h, p, m), w = A.biasDiff, I = A.biasComplementDiff;
+ o.autoPadding = d(h.w, h.h, s.pstyle("padding"), s.pstyle("padding-relative-to").value), o.autoWidth = Math.max(h.w, f.width.val), c.x = (-E + h.x1 + h.x2 + M) / 2, o.autoHeight = Math.max(h.h, f.height.val), c.y = (-w + h.y1 + h.y2 + I) / 2;
+ }
+ for (var a = 0; a < this.length; a++) {
+ var n = this[a], i = n._private;
+ (!i.compoundBoundsClean || t) && (r(n), e.batching() || (i.compoundBoundsClean = !0));
+ }
+ return this;
+ };
+ var Zt = function(e) {
+ return e === 1 / 0 || e === -1 / 0 ? 0 : e;
+ }, rr = function(e, r, a, n, i) {
+ n - r === 0 || i - a === 0 || r == null || a == null || n == null || i == null || (e.x1 = r < e.x1 ? r : e.x1, e.x2 = n > e.x2 ? n : e.x2, e.y1 = a < e.y1 ? a : e.y1, e.y2 = i > e.y2 ? i : e.y2, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1);
+ }, Gr = function(e, r) {
+ return r == null ? e : rr(e, r.x1, r.y1, r.x2, r.y2);
+ }, Va = function(e, r, a) {
+ return er(e, r, a);
+ }, An = function(e, r, a) {
+ if (!r.cy().headless()) {
+ var n = r._private, i = n.rstyle, s = i.arrowWidth / 2, o = r.pstyle(a + "-arrow-shape").value, l, u;
+ if (o !== "none") {
+ a === "source" ? (l = i.srcX, u = i.srcY) : a === "target" ? (l = i.tgtX, u = i.tgtY) : (l = i.midX, u = i.midY);
+ var f = n.arrowBounds = n.arrowBounds || {}, h = f[a] = f[a] || {};
+ h.x1 = l - s, h.y1 = u - s, h.x2 = l + s, h.y2 = u + s, h.w = h.x2 - h.x1, h.h = h.y2 - h.y1, pn(h, 1), rr(e, h.x1, h.y1, h.x2, h.y2);
+ }
+ }
+ }, Oi = function(e, r, a) {
+ if (!r.cy().headless()) {
+ var n;
+ a ? n = a + "-" : n = "";
+ var i = r._private, s = i.rstyle, o = r.pstyle(n + "label").strValue;
+ if (o) {
+ var l = r.pstyle("text-halign"), u = r.pstyle("text-valign"), f = Va(s, "labelWidth", a), h = Va(s, "labelHeight", a), c = Va(s, "labelX", a), v = Va(s, "labelY", a), d = r.pstyle(n + "text-margin-x").pfValue, g = r.pstyle(n + "text-margin-y").pfValue, y = r.isEdge(), p = r.pstyle(n + "text-rotation"), m = r.pstyle("text-outline-width").pfValue, b = r.pstyle("text-border-width").pfValue, E = b / 2, M = r.pstyle("text-background-padding").pfValue, A = 2, w = h, I = f, C = I / 2, B = w / 2, F, R, X, z;
+ if (y)
+ F = c - C, R = c + C, X = v - B, z = v + B;
+ else {
+ switch (l.value) {
+ case "left":
+ F = c - I, R = c;
+ break;
+ case "center":
+ F = c - C, R = c + C;
+ break;
+ case "right":
+ F = c, R = c + I;
+ break;
+ }
+ switch (u.value) {
+ case "top":
+ X = v - w, z = v;
+ break;
+ case "center":
+ X = v - B, z = v + B;
+ break;
+ case "bottom":
+ X = v, z = v + w;
+ break;
+ }
+ }
+ F += d - Math.max(m, E) - M - A, R += d + Math.max(m, E) + M + A, X += g - Math.max(m, E) - M - A, z += g + Math.max(m, E) + M + A;
+ var re = a || "main", W = i.labelBounds, Z = W[re] = W[re] || {};
+ Z.x1 = F, Z.y1 = X, Z.x2 = R, Z.y2 = z, Z.w = R - F, Z.h = z - X;
+ var ie = y && p.strValue === "autorotate", oe = p.pfValue != null && p.pfValue !== 0;
+ if (ie || oe) {
+ var ge = ie ? Va(i.rstyle, "labelAngle", a) : p.pfValue, se = Math.cos(ge), de = Math.sin(ge), we = (F + R) / 2, Te = (X + z) / 2;
+ if (!y) {
+ switch (l.value) {
+ case "left":
+ we = R;
+ break;
+ case "right":
+ we = F;
+ break;
+ }
+ switch (u.value) {
+ case "top":
+ Te = z;
+ break;
+ case "bottom":
+ Te = X;
+ break;
+ }
+ }
+ var Ee = function(qe, Re) {
+ return qe = qe - we, Re = Re - Te, {
+ x: qe * se - Re * de + we,
+ y: qe * de + Re * se + Te
+ };
+ }, ye = Ee(F, X), ae = Ee(F, z), xe = Ee(R, X), Ce = Ee(R, z);
+ F = Math.min(ye.x, ae.x, xe.x, Ce.x), R = Math.max(ye.x, ae.x, xe.x, Ce.x), X = Math.min(ye.y, ae.y, xe.y, Ce.y), z = Math.max(ye.y, ae.y, xe.y, Ce.y);
+ }
+ var Oe = re + "Rot", Ie = W[Oe] = W[Oe] || {};
+ Ie.x1 = F, Ie.y1 = X, Ie.x2 = R, Ie.y2 = z, Ie.w = R - F, Ie.h = z - X, rr(e, F, X, R, z), rr(i.labelBounds.all, F, X, R, z);
+ }
+ return e;
+ }
+ }, nd = function(e, r) {
+ var a = e._private.cy, n = a.styleEnabled(), i = a.headless(), s = Ut(), o = e._private, l = e.isNode(), u = e.isEdge(), f, h, c, v, d, g, y = o.rstyle, p = l && n ? e.pstyle("bounds-expansion").pfValue : [0], m = function(Ve) {
+ return Ve.pstyle("display").value !== "none";
+ }, b = !n || m(e) && (!u || m(e.source()) && m(e.target()));
+ if (b) {
+ var E = 0, M = 0;
+ n && r.includeOverlays && (E = e.pstyle("overlay-opacity").value, E !== 0 && (M = e.pstyle("overlay-padding").value));
+ var A = 0, w = 0;
+ n && r.includeUnderlays && (A = e.pstyle("underlay-opacity").value, A !== 0 && (w = e.pstyle("underlay-padding").value));
+ var I = Math.max(M, w), C = 0, B = 0;
+ if (n && (C = e.pstyle("width").pfValue, B = C / 2), l && r.includeNodes) {
+ var F = e.position();
+ d = F.x, g = F.y;
+ var R = e.outerWidth(), X = R / 2, z = e.outerHeight(), re = z / 2;
+ f = d - X, h = d + X, c = g - re, v = g + re, rr(s, f, c, h, v);
+ } else if (u && r.includeEdges)
+ if (n && !i) {
+ var W = e.pstyle("curve-style").strValue;
+ if (f = Math.min(y.srcX, y.midX, y.tgtX), h = Math.max(y.srcX, y.midX, y.tgtX), c = Math.min(y.srcY, y.midY, y.tgtY), v = Math.max(y.srcY, y.midY, y.tgtY), f -= B, h += B, c -= B, v += B, rr(s, f, c, h, v), W === "haystack") {
+ var Z = y.haystackPts;
+ if (Z && Z.length === 2) {
+ if (f = Z[0].x, c = Z[0].y, h = Z[1].x, v = Z[1].y, f > h) {
+ var ie = f;
+ f = h, h = ie;
+ }
+ if (c > v) {
+ var oe = c;
+ c = v, v = oe;
+ }
+ rr(s, f - B, c - B, h + B, v + B);
+ }
+ } else if (W === "bezier" || W === "unbundled-bezier" || W === "segments" || W === "taxi") {
+ var ge;
+ switch (W) {
+ case "bezier":
+ case "unbundled-bezier":
+ ge = y.bezierPts;
+ break;
+ case "segments":
+ case "taxi":
+ ge = y.linePts;
+ break;
+ }
+ if (ge != null)
+ for (var se = 0; se < ge.length; se++) {
+ var de = ge[se];
+ f = de.x - B, h = de.x + B, c = de.y - B, v = de.y + B, rr(s, f, c, h, v);
+ }
+ }
+ } else {
+ var we = e.source(), Te = we.position(), Ee = e.target(), ye = Ee.position();
+ if (f = Te.x, h = ye.x, c = Te.y, v = ye.y, f > h) {
+ var ae = f;
+ f = h, h = ae;
+ }
+ if (c > v) {
+ var xe = c;
+ c = v, v = xe;
+ }
+ f -= B, h += B, c -= B, v += B, rr(s, f, c, h, v);
+ }
+ if (n && r.includeEdges && u && (An(s, e, "mid-source"), An(s, e, "mid-target"), An(s, e, "source"), An(s, e, "target")), n) {
+ var Ce = e.pstyle("ghost").value === "yes";
+ if (Ce) {
+ var Oe = e.pstyle("ghost-offset-x").pfValue, Ie = e.pstyle("ghost-offset-y").pfValue;
+ rr(s, s.x1 + Oe, s.y1 + Ie, s.x2 + Oe, s.y2 + Ie);
+ }
+ }
+ var He = o.bodyBounds = o.bodyBounds || {};
+ ws(He, s), fi(He, p), pn(He, 1), n && (f = s.x1, h = s.x2, c = s.y1, v = s.y2, rr(s, f - I, c - I, h + I, v + I));
+ var qe = o.overlayBounds = o.overlayBounds || {};
+ ws(qe, s), fi(qe, p), pn(qe, 1);
+ var Re = o.labelBounds = o.labelBounds || {};
+ Re.all != null ? Cf(Re.all) : Re.all = Ut(), n && r.includeLabels && (r.includeMainLabels && Oi(s, e, null), u && (r.includeSourceLabels && Oi(s, e, "source"), r.includeTargetLabels && Oi(s, e, "target")));
+ }
+ return s.x1 = Zt(s.x1), s.y1 = Zt(s.y1), s.x2 = Zt(s.x2), s.y2 = Zt(s.y2), s.w = Zt(s.x2 - s.x1), s.h = Zt(s.y2 - s.y1), s.w > 0 && s.h > 0 && b && (fi(s, p), pn(s, 1)), s;
+ }, mo = function(e) {
+ var r = 0, a = function(s) {
+ return (s ? 1 : 0) << r++;
+ }, n = 0;
+ return n += a(e.incudeNodes), n += a(e.includeEdges), n += a(e.includeLabels), n += a(e.includeMainLabels), n += a(e.includeSourceLabels), n += a(e.includeTargetLabels), n += a(e.includeOverlays), n;
+ }, bo = function(e) {
+ if (e.isEdge()) {
+ var r = e.source().position(), a = e.target().position(), n = function(s) {
+ return Math.round(s);
+ };
+ return Yl([n(r.x), n(r.y), n(a.x), n(a.y)]);
+ } else
+ return 0;
+ }, Eo = function(e, r) {
+ var a = e._private, n, i = e.isEdge(), s = r == null ? wo : mo(r), o = s === wo, l = bo(e), u = a.bbCachePosKey === l, f = r.useCache && u, h = function(g) {
+ return g._private.bbCache == null || g._private.styleDirty;
+ }, c = !f || h(e) || i && h(e.source()) || h(e.target());
+ if (c ? (u || e.recalculateRenderedStyle(f), n = nd(e, _a), a.bbCache = n, a.bbCachePosKey = l) : n = a.bbCache, !o) {
+ var v = e.isNode();
+ n = Ut(), (r.includeNodes && v || r.includeEdges && !v) && (r.includeOverlays ? Gr(n, a.overlayBounds) : Gr(n, a.bodyBounds)), r.includeLabels && (r.includeMainLabels && (!i || r.includeSourceLabels && r.includeTargetLabels) ? Gr(n, a.labelBounds.all) : (r.includeMainLabels && Gr(n, a.labelBounds.mainRot), r.includeSourceLabels && Gr(n, a.labelBounds.sourceRot), r.includeTargetLabels && Gr(n, a.labelBounds.targetRot))), n.w = n.x2 - n.x1, n.h = n.y2 - n.y1;
+ }
+ return n;
+ }, _a = {
+ includeNodes: !0,
+ includeEdges: !0,
+ includeLabels: !0,
+ includeMainLabels: !0,
+ includeSourceLabels: !0,
+ includeTargetLabels: !0,
+ includeOverlays: !0,
+ includeUnderlays: !0,
+ useCache: !0
+ }, wo = mo(_a), xo = Lt(_a);
+ Ar.boundingBox = function(t) {
+ var e;
+ if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (t === void 0 || t.useCache === void 0 || t.useCache === !0))
+ t === void 0 ? t = _a : t = xo(t), e = Eo(this[0], t);
+ else {
+ e = Ut(), t = t || _a;
+ var r = xo(t), a = this, n = a.cy(), i = n.styleEnabled();
+ if (i)
+ for (var s = 0; s < a.length; s++) {
+ var o = a[s], l = o._private, u = bo(o), f = l.bbCachePosKey === u, h = r.useCache && f && !l.styleDirty;
+ o.recalculateRenderedStyle(h);
+ }
+ this.updateCompoundBounds(!t.useCache);
+ for (var c = 0; c < a.length; c++) {
+ var v = a[c];
+ Gr(e, Eo(v, r));
+ }
+ }
+ return e.x1 = Zt(e.x1), e.y1 = Zt(e.y1), e.x2 = Zt(e.x2), e.y2 = Zt(e.y2), e.w = Zt(e.x2 - e.x1), e.h = Zt(e.y2 - e.y1), e;
+ }, Ar.dirtyBoundingBoxCache = function() {
+ for (var t = 0; t < this.length; t++) {
+ var e = this[t]._private;
+ e.bbCache = null, e.bbCachePosKey = null, e.bodyBounds = null, e.overlayBounds = null, e.labelBounds.all = null, e.labelBounds.source = null, e.labelBounds.target = null, e.labelBounds.main = null, e.labelBounds.sourceRot = null, e.labelBounds.targetRot = null, e.labelBounds.mainRot = null, e.arrowBounds.source = null, e.arrowBounds.target = null, e.arrowBounds["mid-source"] = null, e.arrowBounds["mid-target"] = null;
+ }
+ return this.emitAndNotify("bounds"), this;
+ }, Ar.boundingBoxAt = function(t) {
+ var e = this.nodes(), r = this.cy(), a = r.hasCompoundNodes(), n = r.collection();
+ if (a && (n = e.filter(function(u) {
+ return u.isParent();
+ }), e = e.not(n)), L(t)) {
+ var i = t;
+ t = function() {
+ return i;
+ };
+ }
+ var s = function(f, h) {
+ return f._private.bbAtOldPos = t(f, h);
+ }, o = function(f) {
+ return f._private.bbAtOldPos;
+ };
+ r.startBatch(), e.forEach(s).silentPositions(t), a && (n.dirtyCompoundBoundsCache(), n.dirtyBoundingBoxCache(), n.updateCompoundBounds(!0));
+ var l = Tf(this.boundingBox({
+ useCache: !1
+ }));
+ return e.silentPositions(o), a && (n.dirtyCompoundBoundsCache(), n.dirtyBoundingBoxCache(), n.updateCompoundBounds(!0)), r.endBatch(), l;
+ }, ca.boundingbox = ca.bb = ca.boundingBox, ca.renderedBoundingbox = ca.renderedBoundingBox;
+ var id = Ar, Ua, Ya;
+ Ua = Ya = {};
+ var To = function(e) {
+ e.uppercaseName = kt(e.name), e.autoName = "auto" + e.uppercaseName, e.labelName = "label" + e.uppercaseName, e.outerName = "outer" + e.uppercaseName, e.uppercaseOuterName = kt(e.outerName), Ua[e.name] = function() {
+ var a = this[0], n = a._private, i = n.cy, s = i._private.styleEnabled;
+ if (a)
+ if (s) {
+ if (a.isParent())
+ return a.updateCompoundBounds(), n[e.autoName] || 0;
+ var o = a.pstyle(e.name);
+ switch (o.strValue) {
+ case "label":
+ return a.recalculateRenderedStyle(), n.rstyle[e.labelName] || 0;
+ default:
+ return o.pfValue;
+ }
+ } else
+ return 1;
+ }, Ua["outer" + e.uppercaseName] = function() {
+ var a = this[0], n = a._private, i = n.cy, s = i._private.styleEnabled;
+ if (a)
+ if (s) {
+ var o = a[e.name](), l = a.pstyle("border-width").pfValue, u = 2 * a.padding();
+ return o + l + u;
+ } else
+ return 1;
+ }, Ua["rendered" + e.uppercaseName] = function() {
+ var a = this[0];
+ if (a) {
+ var n = a[e.name]();
+ return n * this.cy().zoom();
+ }
+ }, Ua["rendered" + e.uppercaseOuterName] = function() {
+ var a = this[0];
+ if (a) {
+ var n = a[e.outerName]();
+ return n * this.cy().zoom();
+ }
+ };
+ };
+ To({
+ name: "width"
+ }), To({
+ name: "height"
+ }), Ya.padding = function() {
+ var t = this[0], e = t._private;
+ return t.isParent() ? (t.updateCompoundBounds(), e.autoPadding !== void 0 ? e.autoPadding : t.pstyle("padding").pfValue) : t.pstyle("padding").pfValue;
+ }, Ya.paddedHeight = function() {
+ var t = this[0];
+ return t.height() + 2 * t.padding();
+ }, Ya.paddedWidth = function() {
+ var t = this[0];
+ return t.width() + 2 * t.padding();
+ };
+ var sd = Ya, od = function(e, r) {
+ if (e.isEdge())
+ return r(e);
+ }, ud = function(e, r) {
+ if (e.isEdge()) {
+ var a = e.cy();
+ return dn(r(e), a.zoom(), a.pan());
+ }
+ }, ld = function(e, r) {
+ if (e.isEdge()) {
+ var a = e.cy(), n = a.pan(), i = a.zoom();
+ return r(e).map(function(s) {
+ return dn(s, i, n);
+ });
+ }
+ }, fd = function(e) {
+ return e.renderer().getControlPoints(e);
+ }, hd = function(e) {
+ return e.renderer().getSegmentPoints(e);
+ }, cd = function(e) {
+ return e.renderer().getSourceEndpoint(e);
+ }, vd = function(e) {
+ return e.renderer().getTargetEndpoint(e);
+ }, dd = function(e) {
+ return e.renderer().getEdgeMidpoint(e);
+ }, Co = {
+ controlPoints: {
+ get: fd,
+ mult: !0
+ },
+ segmentPoints: {
+ get: hd,
+ mult: !0
+ },
+ sourceEndpoint: {
+ get: cd
+ },
+ targetEndpoint: {
+ get: vd
+ },
+ midpoint: {
+ get: dd
+ }
+ }, gd = function(e) {
+ return "rendered" + e[0].toUpperCase() + e.substr(1);
+ }, pd = Object.keys(Co).reduce(function(t, e) {
+ var r = Co[e], a = gd(e);
+ return t[e] = function() {
+ return od(this, r.get);
+ }, r.mult ? t[a] = function() {
+ return ld(this, r.get);
+ } : t[a] = function() {
+ return ud(this, r.get);
+ }, t;
+ }, {}), yd = Ue({}, ad, id, sd, pd);
+ /*!
+ Event object based on jQuery events, MIT license
+
+ https://jquery.org/license/
+ https://tldrlegal.com/license/mit-license
+ https://github.com/jquery/jquery/blob/master/src/event.js
+ */
+ var Do = function(e, r) {
+ this.recycle(e, r);
+ };
+ function Ha() {
+ return !1;
+ }
+ function On() {
+ return !0;
+ }
+ Do.prototype = {
+ instanceString: function() {
+ return "event";
+ },
+ recycle: function(e, r) {
+ if (this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = Ha, e != null && e.preventDefault ? (this.type = e.type, this.isDefaultPrevented = e.defaultPrevented ? On : Ha) : e != null && e.type ? r = e : this.type = e, r != null && (this.originalEvent = r.originalEvent, this.type = r.type != null ? r.type : this.type, this.cy = r.cy, this.target = r.target, this.position = r.position, this.renderedPosition = r.renderedPosition, this.namespace = r.namespace, this.layout = r.layout), this.cy != null && this.position != null && this.renderedPosition == null) {
+ var a = this.position, n = this.cy.zoom(), i = this.cy.pan();
+ this.renderedPosition = {
+ x: a.x * n + i.x,
+ y: a.y * n + i.y
+ };
+ }
+ this.timeStamp = e && e.timeStamp || Date.now();
+ },
+ preventDefault: function() {
+ this.isDefaultPrevented = On;
+ var e = this.originalEvent;
+ e && e.preventDefault && e.preventDefault();
+ },
+ stopPropagation: function() {
+ this.isPropagationStopped = On;
+ var e = this.originalEvent;
+ e && e.stopPropagation && e.stopPropagation();
+ },
+ stopImmediatePropagation: function() {
+ this.isImmediatePropagationStopped = On, this.stopPropagation();
+ },
+ isDefaultPrevented: Ha,
+ isPropagationStopped: Ha,
+ isImmediatePropagationStopped: Ha
+ };
+ var So = /^([^.]+)(\.(?:[^.]+))?$/, md = ".*", Lo = {
+ qualifierCompare: function(e, r) {
+ return e === r;
+ },
+ eventMatches: function() {
+ return !0;
+ },
+ addEventFields: function() {
+ },
+ callbackContext: function(e) {
+ return e;
+ },
+ beforeEmit: function() {
+ },
+ afterEmit: function() {
+ },
+ bubble: function() {
+ return !1;
+ },
+ parent: function() {
+ return null;
+ },
+ context: null
+ }, Ao = Object.keys(Lo), bd = {};
+ function Nn() {
+ for (var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : bd, e = arguments.length > 1 ? arguments[1] : void 0, r = 0; r < Ao.length; r++) {
+ var a = Ao[r];
+ this[a] = t[a] || Lo[a];
+ }
+ this.context = e || this.context, this.listeners = [], this.emitting = 0;
+ }
+ var Or = Nn.prototype, Oo = function(e, r, a, n, i, s, o) {
+ Y(n) && (i = n, n = null), o && (s == null ? s = o : s = Ue({}, s, o));
+ for (var l = te(a) ? a : a.split(/\s+/), u = 0; u < l.length; u++) {
+ var f = l[u];
+ if (!Pe(f)) {
+ var h = f.match(So);
+ if (h) {
+ var c = h[1], v = h[2] ? h[2] : null, d = r(e, f, c, v, n, i, s);
+ if (d === !1)
+ break;
+ }
+ }
+ }
+ }, No = function(e, r) {
+ return e.addEventFields(e.context, r), new Do(r.type, r);
+ }, Ed = function(e, r, a) {
+ if (ct(a)) {
+ r(e, a);
+ return;
+ } else if (L(a)) {
+ r(e, No(e, a));
+ return;
+ }
+ for (var n = te(a) ? a : a.split(/\s+/), i = 0; i < n.length; i++) {
+ var s = n[i];
+ if (!Pe(s)) {
+ var o = s.match(So);
+ if (o) {
+ var l = o[1], u = o[2] ? o[2] : null, f = No(e, {
+ type: l,
+ namespace: u,
+ target: e.context
+ });
+ r(e, f);
+ }
+ }
+ }
+ };
+ Or.on = Or.addListener = function(t, e, r, a, n) {
+ return Oo(this, function(i, s, o, l, u, f, h) {
+ Y(f) && i.listeners.push({
+ event: s,
+ // full event string
+ callback: f,
+ // callback to run
+ type: o,
+ // the event type (e.g. 'click')
+ namespace: l,
+ // the event namespace (e.g. ".foo")
+ qualifier: u,
+ // a restriction on whether to match this emitter
+ conf: h
+ // additional configuration
+ });
+ }, t, e, r, a, n), this;
+ }, Or.one = function(t, e, r, a) {
+ return this.on(t, e, r, a, {
+ one: !0
+ });
+ }, Or.removeListener = Or.off = function(t, e, r, a) {
+ var n = this;
+ this.emitting !== 0 && (this.listeners = Kl(this.listeners));
+ for (var i = this.listeners, s = function(u) {
+ var f = i[u];
+ Oo(n, function(h, c, v, d, g, y) {
+ if ((f.type === v || t === "*") && (!d && f.namespace !== ".*" || f.namespace === d) && (!g || h.qualifierCompare(f.qualifier, g)) && (!y || f.callback === y))
+ return i.splice(u, 1), !1;
+ }, t, e, r, a);
+ }, o = i.length - 1; o >= 0; o--)
+ s(o);
+ return this;
+ }, Or.removeAllListeners = function() {
+ return this.removeListener("*");
+ }, Or.emit = Or.trigger = function(t, e, r) {
+ var a = this.listeners, n = a.length;
+ return this.emitting++, te(e) || (e = [e]), Ed(this, function(i, s) {
+ r != null && (a = [{
+ event: s.event,
+ type: s.type,
+ namespace: s.namespace,
+ callback: r
+ }], n = a.length);
+ for (var o = function(f) {
+ var h = a[f];
+ if (h.type === s.type && (!h.namespace || h.namespace === s.namespace || h.namespace === md) && i.eventMatches(i.context, h, s)) {
+ var c = [s];
+ e != null && Ql(c, e), i.beforeEmit(i.context, h, s), h.conf && h.conf.one && (i.listeners = i.listeners.filter(function(g) {
+ return g !== h;
+ }));
+ var v = i.callbackContext(i.context, h, s), d = h.callback.apply(v, c);
+ i.afterEmit(i.context, h, s), d === !1 && (s.stopPropagation(), s.preventDefault());
+ }
+ }, l = 0; l < n; l++)
+ o(l);
+ i.bubble(i.context) && !s.isPropagationStopped() && i.parent(i.context).emit(s, e);
+ }, t), this.emitting--, this;
+ };
+ var wd = {
+ qualifierCompare: function(e, r) {
+ return e == null || r == null ? e == null && r == null : e.sameText(r);
+ },
+ eventMatches: function(e, r, a) {
+ var n = r.qualifier;
+ return n != null ? e !== a.target && Ae(a.target) && n.matches(a.target) : !0;
+ },
+ addEventFields: function(e, r) {
+ r.cy = e.cy(), r.target = e;
+ },
+ callbackContext: function(e, r, a) {
+ return r.qualifier != null ? a.target : e;
+ },
+ beforeEmit: function(e, r) {
+ r.conf && r.conf.once && r.conf.onceCollection.removeListener(r.event, r.qualifier, r.callback);
+ },
+ bubble: function() {
+ return !0;
+ },
+ parent: function(e) {
+ return e.isChild() ? e.parent() : e.cy();
+ }
+ }, Mn = function(e) {
+ return j(e) ? new Dr(e) : e;
+ }, Mo = {
+ createEmitter: function() {
+ for (var e = 0; e < this.length; e++) {
+ var r = this[e], a = r._private;
+ a.emitter || (a.emitter = new Nn(wd, r));
+ }
+ return this;
+ },
+ emitter: function() {
+ return this._private.emitter;
+ },
+ on: function(e, r, a) {
+ for (var n = Mn(r), i = 0; i < this.length; i++) {
+ var s = this[i];
+ s.emitter().on(e, n, a);
+ }
+ return this;
+ },
+ removeListener: function(e, r, a) {
+ for (var n = Mn(r), i = 0; i < this.length; i++) {
+ var s = this[i];
+ s.emitter().removeListener(e, n, a);
+ }
+ return this;
+ },
+ removeAllListeners: function() {
+ for (var e = 0; e < this.length; e++) {
+ var r = this[e];
+ r.emitter().removeAllListeners();
+ }
+ return this;
+ },
+ one: function(e, r, a) {
+ for (var n = Mn(r), i = 0; i < this.length; i++) {
+ var s = this[i];
+ s.emitter().one(e, n, a);
+ }
+ return this;
+ },
+ once: function(e, r, a) {
+ for (var n = Mn(r), i = 0; i < this.length; i++) {
+ var s = this[i];
+ s.emitter().on(e, n, a, {
+ once: !0,
+ onceCollection: this
+ });
+ }
+ },
+ emit: function(e, r) {
+ for (var a = 0; a < this.length; a++) {
+ var n = this[a];
+ n.emitter().emit(e, r);
+ }
+ return this;
+ },
+ emitAndNotify: function(e, r) {
+ if (this.length !== 0)
+ return this.cy().notify(e, this), this.emit(e, r), this;
+ }
+ };
+ ht.eventAliasesOn(Mo);
+ var Io = {
+ nodes: function(e) {
+ return this.filter(function(r) {
+ return r.isNode();
+ }).filter(e);
+ },
+ edges: function(e) {
+ return this.filter(function(r) {
+ return r.isEdge();
+ }).filter(e);
+ },
+ // internal helper to get nodes and edges as separate collections with single iteration over elements
+ byGroup: function() {
+ for (var e = this.spawn(), r = this.spawn(), a = 0; a < this.length; a++) {
+ var n = this[a];
+ n.isNode() ? e.push(n) : r.push(n);
+ }
+ return {
+ nodes: e,
+ edges: r
+ };
+ },
+ filter: function(e, r) {
+ if (e === void 0)
+ return this;
+ if (j(e) || pe(e))
+ return new Dr(e).filter(this);
+ if (Y(e)) {
+ for (var a = this.spawn(), n = this, i = 0; i < n.length; i++) {
+ var s = n[i], o = r ? e.apply(r, [s, i, n]) : e(s, i, n);
+ o && a.push(s);
+ }
+ return a;
+ }
+ return this.spawn();
+ },
+ not: function(e) {
+ if (e) {
+ j(e) && (e = this.filter(e));
+ for (var r = this.spawn(), a = 0; a < this.length; a++) {
+ var n = this[a], i = e.has(n);
+ i || r.push(n);
+ }
+ return r;
+ } else
+ return this;
+ },
+ absoluteComplement: function() {
+ var e = this.cy();
+ return e.mutableElements().not(this);
+ },
+ intersect: function(e) {
+ if (j(e)) {
+ var r = e;
+ return this.filter(r);
+ }
+ for (var a = this.spawn(), n = this, i = e, s = this.length < e.length, o = s ? n : i, l = s ? i : n, u = 0; u < o.length; u++) {
+ var f = o[u];
+ l.has(f) && a.push(f);
+ }
+ return a;
+ },
+ xor: function(e) {
+ var r = this._private.cy;
+ j(e) && (e = r.$(e));
+ var a = this.spawn(), n = this, i = e, s = function(l, u) {
+ for (var f = 0; f < l.length; f++) {
+ var h = l[f], c = h._private.data.id, v = u.hasElementWithId(c);
+ v || a.push(h);
+ }
+ };
+ return s(n, i), s(i, n), a;
+ },
+ diff: function(e) {
+ var r = this._private.cy;
+ j(e) && (e = r.$(e));
+ var a = this.spawn(), n = this.spawn(), i = this.spawn(), s = this, o = e, l = function(f, h, c) {
+ for (var v = 0; v < f.length; v++) {
+ var d = f[v], g = d._private.data.id, y = h.hasElementWithId(g);
+ y ? i.merge(d) : c.push(d);
+ }
+ };
+ return l(s, o, a), l(o, s, n), {
+ left: a,
+ right: n,
+ both: i
+ };
+ },
+ add: function(e) {
+ var r = this._private.cy;
+ if (!e)
+ return this;
+ if (j(e)) {
+ var a = e;
+ e = r.mutableElements().filter(a);
+ }
+ for (var n = this.spawnSelf(), i = 0; i < e.length; i++) {
+ var s = e[i], o = !this.has(s);
+ o && n.push(s);
+ }
+ return n;
+ },
+ // in place merge on calling collection
+ merge: function(e) {
+ var r = this._private, a = r.cy;
+ if (!e)
+ return this;
+ if (e && j(e)) {
+ var n = e;
+ e = a.mutableElements().filter(n);
+ }
+ for (var i = r.map, s = 0; s < e.length; s++) {
+ var o = e[s], l = o._private.data.id, u = !i.has(l);
+ if (u) {
+ var f = this.length++;
+ this[f] = o, i.set(l, {
+ ele: o,
+ index: f
+ });
+ }
+ }
+ return this;
+ },
+ unmergeAt: function(e) {
+ var r = this[e], a = r.id(), n = this._private, i = n.map;
+ this[e] = void 0, i.delete(a);
+ var s = e === this.length - 1;
+ if (this.length > 1 && !s) {
+ var o = this.length - 1, l = this[o], u = l._private.data.id;
+ this[o] = void 0, this[e] = l, i.set(u, {
+ ele: l,
+ index: e
+ });
+ }
+ return this.length--, this;
+ },
+ // remove single ele in place in calling collection
+ unmergeOne: function(e) {
+ e = e[0];
+ var r = this._private, a = e._private.data.id, n = r.map, i = n.get(a);
+ if (!i)
+ return this;
+ var s = i.index;
+ return this.unmergeAt(s), this;
+ },
+ // remove eles in place on calling collection
+ unmerge: function(e) {
+ var r = this._private.cy;
+ if (!e)
+ return this;
+ if (e && j(e)) {
+ var a = e;
+ e = r.mutableElements().filter(a);
+ }
+ for (var n = 0; n < e.length; n++)
+ this.unmergeOne(e[n]);
+ return this;
+ },
+ unmergeBy: function(e) {
+ for (var r = this.length - 1; r >= 0; r--) {
+ var a = this[r];
+ e(a) && this.unmergeAt(r);
+ }
+ return this;
+ },
+ map: function(e, r) {
+ for (var a = [], n = this, i = 0; i < n.length; i++) {
+ var s = n[i], o = r ? e.apply(r, [s, i, n]) : e(s, i, n);
+ a.push(o);
+ }
+ return a;
+ },
+ reduce: function(e, r) {
+ for (var a = r, n = this, i = 0; i < n.length; i++)
+ a = e(a, n[i], i, n);
+ return a;
+ },
+ max: function(e, r) {
+ for (var a = -1 / 0, n, i = this, s = 0; s < i.length; s++) {
+ var o = i[s], l = r ? e.apply(r, [o, s, i]) : e(o, s, i);
+ l > a && (a = l, n = o);
+ }
+ return {
+ value: a,
+ ele: n
+ };
+ },
+ min: function(e, r) {
+ for (var a = 1 / 0, n, i = this, s = 0; s < i.length; s++) {
+ var o = i[s], l = r ? e.apply(r, [o, s, i]) : e(o, s, i);
+ l < a && (a = l, n = o);
+ }
+ return {
+ value: a,
+ ele: n
+ };
+ }
+ }, st = Io;
+ st.u = st["|"] = st["+"] = st.union = st.or = st.add, st["\\"] = st["!"] = st["-"] = st.difference = st.relativeComplement = st.subtract = st.not, st.n = st["&"] = st["."] = st.and = st.intersection = st.intersect, st["^"] = st["(+)"] = st["(-)"] = st.symmetricDifference = st.symdiff = st.xor, st.fnFilter = st.filterFn = st.stdFilter = st.filter, st.complement = st.abscomp = st.absoluteComplement;
+ var xd = {
+ isNode: function() {
+ return this.group() === "nodes";
+ },
+ isEdge: function() {
+ return this.group() === "edges";
+ },
+ isLoop: function() {
+ return this.isEdge() && this.source()[0] === this.target()[0];
+ },
+ isSimple: function() {
+ return this.isEdge() && this.source()[0] !== this.target()[0];
+ },
+ group: function() {
+ var e = this[0];
+ if (e)
+ return e._private.group;
+ }
+ }, Ro = function(e, r) {
+ var a = e.cy(), n = a.hasCompoundNodes();
+ function i(f) {
+ var h = f.pstyle("z-compound-depth");
+ return h.value === "auto" ? n ? f.zDepth() : 0 : h.value === "bottom" ? -1 : h.value === "top" ? ii : 0;
+ }
+ var s = i(e) - i(r);
+ if (s !== 0)
+ return s;
+ function o(f) {
+ var h = f.pstyle("z-index-compare");
+ return h.value === "auto" && f.isNode() ? 1 : 0;
+ }
+ var l = o(e) - o(r);
+ if (l !== 0)
+ return l;
+ var u = e.pstyle("z-index").value - r.pstyle("z-index").value;
+ return u !== 0 ? u : e.poolIndex() - r.poolIndex();
+ }, In = {
+ forEach: function(e, r) {
+ if (Y(e))
+ for (var a = this.length, n = 0; n < a; n++) {
+ var i = this[n], s = r ? e.apply(r, [i, n, this]) : e(i, n, this);
+ if (s === !1)
+ break;
+ }
+ return this;
+ },
+ toArray: function() {
+ for (var e = [], r = 0; r < this.length; r++)
+ e.push(this[r]);
+ return e;
+ },
+ slice: function(e, r) {
+ var a = [], n = this.length;
+ r == null && (r = n), e == null && (e = 0), e < 0 && (e = n + e), r < 0 && (r = n + r);
+ for (var i = e; i >= 0 && i < r && i < n; i++)
+ a.push(this[i]);
+ return this.spawn(a);
+ },
+ size: function() {
+ return this.length;
+ },
+ eq: function(e) {
+ return this[e] || this.spawn();
+ },
+ first: function() {
+ return this[0] || this.spawn();
+ },
+ last: function() {
+ return this[this.length - 1] || this.spawn();
+ },
+ empty: function() {
+ return this.length === 0;
+ },
+ nonempty: function() {
+ return !this.empty();
+ },
+ sort: function(e) {
+ if (!Y(e))
+ return this;
+ var r = this.toArray().sort(e);
+ return this.spawn(r);
+ },
+ sortByZIndex: function() {
+ return this.sort(Ro);
+ },
+ zDepth: function() {
+ var e = this[0];
+ if (e) {
+ var r = e._private, a = r.group;
+ if (a === "nodes") {
+ var n = r.data.parent ? e.parents().size() : 0;
+ return e.isParent() ? n : ii - 1;
+ } else {
+ var i = r.source, s = r.target, o = i.zDepth(), l = s.zDepth();
+ return Math.max(o, l, 0);
+ }
+ }
+ }
+ };
+ In.each = In.forEach;
+ var Td = function() {
+ var e = "undefined", r = (typeof Symbol > "u" ? "undefined" : ee(Symbol)) != e && ee(Symbol.iterator) != e;
+ r && (In[Symbol.iterator] = function() {
+ var a = this, n = {
+ value: void 0,
+ done: !1
+ }, i = 0, s = this.length;
+ return T({
+ next: function() {
+ return i < s ? n.value = a[i++] : (n.value = void 0, n.done = !0), n;
+ }
+ }, Symbol.iterator, function() {
+ return this;
+ });
+ });
+ };
+ Td();
+ var Cd = Lt({
+ nodeDimensionsIncludeLabels: !1
+ }), Rn = {
+ // Calculates and returns node dimensions { x, y } based on options given
+ layoutDimensions: function(e) {
+ e = Cd(e);
+ var r;
+ if (!this.takesUpSpace())
+ r = {
+ w: 0,
+ h: 0
+ };
+ else if (e.nodeDimensionsIncludeLabels) {
+ var a = this.boundingBox();
+ r = {
+ w: a.w,
+ h: a.h
+ };
+ } else
+ r = {
+ w: this.outerWidth(),
+ h: this.outerHeight()
+ };
+ return (r.w === 0 || r.h === 0) && (r.w = r.h = 1), r;
+ },
+ // using standard layout options, apply position function (w/ or w/o animation)
+ layoutPositions: function(e, r, a) {
+ var n = this.nodes().filter(function(M) {
+ return !M.isParent();
+ }), i = this.cy(), s = r.eles, o = function(A) {
+ return A.id();
+ }, l = nt(a, o);
+ e.emit({
+ type: "layoutstart",
+ layout: e
+ }), e.animations = [];
+ var u = function(A, w, I) {
+ var C = {
+ x: w.x1 + w.w / 2,
+ y: w.y1 + w.h / 2
+ }, B = {
+ // scale from center of bounding box (not necessarily 0,0)
+ x: (I.x - C.x) * A,
+ y: (I.y - C.y) * A
+ };
+ return {
+ x: C.x + B.x,
+ y: C.y + B.y
+ };
+ }, f = r.spacingFactor && r.spacingFactor !== 1, h = function() {
+ if (!f)
+ return null;
+ for (var A = Ut(), w = 0; w < n.length; w++) {
+ var I = n[w], C = l(I, w);
+ Sf(A, C.x, C.y);
+ }
+ return A;
+ }, c = h(), v = nt(function(M, A) {
+ var w = l(M, A);
+ if (f) {
+ var I = Math.abs(r.spacingFactor);
+ w = u(I, c, w);
+ }
+ return r.transform != null && (w = r.transform(M, w)), w;
+ }, o);
+ if (r.animate) {
+ for (var d = 0; d < n.length; d++) {
+ var g = n[d], y = v(g, d), p = r.animateFilter == null || r.animateFilter(g, d);
+ if (p) {
+ var m = g.animation({
+ position: y,
+ duration: r.animationDuration,
+ easing: r.animationEasing
+ });
+ e.animations.push(m);
+ } else
+ g.position(y);
+ }
+ if (r.fit) {
+ var b = i.animation({
+ fit: {
+ boundingBox: s.boundingBoxAt(v),
+ padding: r.padding
+ },
+ duration: r.animationDuration,
+ easing: r.animationEasing
+ });
+ e.animations.push(b);
+ } else if (r.zoom !== void 0 && r.pan !== void 0) {
+ var E = i.animation({
+ zoom: r.zoom,
+ pan: r.pan,
+ duration: r.animationDuration,
+ easing: r.animationEasing
+ });
+ e.animations.push(E);
+ }
+ e.animations.forEach(function(M) {
+ return M.play();
+ }), e.one("layoutready", r.ready), e.emit({
+ type: "layoutready",
+ layout: e
+ }), ia.all(e.animations.map(function(M) {
+ return M.promise();
+ })).then(function() {
+ e.one("layoutstop", r.stop), e.emit({
+ type: "layoutstop",
+ layout: e
+ });
+ });
+ } else
+ n.positions(v), r.fit && i.fit(r.eles, r.padding), r.zoom != null && i.zoom(r.zoom), r.pan && i.pan(r.pan), e.one("layoutready", r.ready), e.emit({
+ type: "layoutready",
+ layout: e
+ }), e.one("layoutstop", r.stop), e.emit({
+ type: "layoutstop",
+ layout: e
+ });
+ return this;
+ },
+ layout: function(e) {
+ var r = this.cy();
+ return r.makeLayout(Ue({}, e, {
+ eles: this
+ }));
+ }
+ };
+ Rn.createLayout = Rn.makeLayout = Rn.layout;
+ function ko(t, e, r) {
+ var a = r._private, n = a.styleCache = a.styleCache || [], i;
+ return (i = n[t]) != null || (i = n[t] = e(r)), i;
+ }
+ function kn(t, e) {
+ return t = kr(t), function(a) {
+ return ko(t, e, a);
+ };
+ }
+ function Pn(t, e) {
+ t = kr(t);
+ var r = function(n) {
+ return e.call(n);
+ };
+ return function() {
+ var n = this[0];
+ if (n)
+ return ko(t, r, n);
+ };
+ }
+ var At = {
+ recalculateRenderedStyle: function(e) {
+ var r = this.cy(), a = r.renderer(), n = r.styleEnabled();
+ return a && n && a.recalculateRenderedStyle(this, e), this;
+ },
+ dirtyStyleCache: function() {
+ var e = this.cy(), r = function(i) {
+ return i._private.styleCache = null;
+ };
+ if (e.hasCompoundNodes()) {
+ var a;
+ a = this.spawnSelf().merge(this.descendants()).merge(this.parents()), a.merge(a.connectedEdges()), a.forEach(r);
+ } else
+ this.forEach(function(n) {
+ r(n), n.connectedEdges().forEach(r);
+ });
+ return this;
+ },
+ // fully updates (recalculates) the style for the elements
+ updateStyle: function(e) {
+ var r = this._private.cy;
+ if (!r.styleEnabled())
+ return this;
+ if (r.batching()) {
+ var a = r._private.batchStyleEles;
+ return a.merge(this), this;
+ }
+ var n = r.hasCompoundNodes(), i = this;
+ e = !!(e || e === void 0), n && (i = this.spawnSelf().merge(this.descendants()).merge(this.parents()));
+ var s = i;
+ return e ? s.emitAndNotify("style") : s.emit("style"), i.forEach(function(o) {
+ return o._private.styleDirty = !0;
+ }), this;
+ },
+ // private: clears dirty flag and recalculates style
+ cleanStyle: function() {
+ var e = this.cy();
+ if (e.styleEnabled())
+ for (var r = 0; r < this.length; r++) {
+ var a = this[r];
+ a._private.styleDirty && (a._private.styleDirty = !1, e.style().apply(a));
+ }
+ },
+ // get the internal parsed style object for the specified property
+ parsedStyle: function(e) {
+ var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, a = this[0], n = a.cy();
+ if (n.styleEnabled() && a) {
+ this.cleanStyle();
+ var i = a._private.style[e];
+ return i ?? (r ? n.style().getDefaultProperty(e) : null);
+ }
+ },
+ numericStyle: function(e) {
+ var r = this[0];
+ if (r.cy().styleEnabled() && r) {
+ var a = r.pstyle(e);
+ return a.pfValue !== void 0 ? a.pfValue : a.value;
+ }
+ },
+ numericStyleUnits: function(e) {
+ var r = this[0];
+ if (r.cy().styleEnabled() && r)
+ return r.pstyle(e).units;
+ },
+ // get the specified css property as a rendered value (i.e. on-screen value)
+ // or get the whole rendered style if no property specified (NB doesn't allow setting)
+ renderedStyle: function(e) {
+ var r = this.cy();
+ if (!r.styleEnabled())
+ return this;
+ var a = this[0];
+ if (a)
+ return r.style().getRenderedStyle(a, e);
+ },
+ // read the calculated css style of the element or override the style (via a bypass)
+ style: function(e, r) {
+ var a = this.cy();
+ if (!a.styleEnabled())
+ return this;
+ var n = !1, i = a.style();
+ if (L(e)) {
+ var s = e;
+ i.applyBypass(this, s, n), this.emitAndNotify("style");
+ } else if (j(e))
+ if (r === void 0) {
+ var o = this[0];
+ return o ? i.getStylePropertyValue(o, e) : void 0;
+ } else
+ i.applyBypass(this, e, r, n), this.emitAndNotify("style");
+ else if (e === void 0) {
+ var l = this[0];
+ return l ? i.getRawStyle(l) : void 0;
+ }
+ return this;
+ },
+ removeStyle: function(e) {
+ var r = this.cy();
+ if (!r.styleEnabled())
+ return this;
+ var a = !1, n = r.style(), i = this;
+ if (e === void 0)
+ for (var s = 0; s < i.length; s++) {
+ var o = i[s];
+ n.removeAllBypasses(o, a);
+ }
+ else {
+ e = e.split(/\s+/);
+ for (var l = 0; l < i.length; l++) {
+ var u = i[l];
+ n.removeBypasses(u, e, a);
+ }
+ }
+ return this.emitAndNotify("style"), this;
+ },
+ show: function() {
+ return this.css("display", "element"), this;
+ },
+ hide: function() {
+ return this.css("display", "none"), this;
+ },
+ effectiveOpacity: function() {
+ var e = this.cy();
+ if (!e.styleEnabled())
+ return 1;
+ var r = e.hasCompoundNodes(), a = this[0];
+ if (a) {
+ var n = a._private, i = a.pstyle("opacity").value;
+ if (!r)
+ return i;
+ var s = n.data.parent ? a.parents() : null;
+ if (s)
+ for (var o = 0; o < s.length; o++) {
+ var l = s[o], u = l.pstyle("opacity").value;
+ i = u * i;
+ }
+ return i;
+ }
+ },
+ transparent: function() {
+ var e = this.cy();
+ if (!e.styleEnabled())
+ return !1;
+ var r = this[0], a = r.cy().hasCompoundNodes();
+ if (r)
+ return a ? r.effectiveOpacity() === 0 : r.pstyle("opacity").value === 0;
+ },
+ backgrounding: function() {
+ var e = this.cy();
+ if (!e.styleEnabled())
+ return !1;
+ var r = this[0];
+ return !!r._private.backgrounding;
+ }
+ };
+ function Ni(t, e) {
+ var r = t._private, a = r.data.parent ? t.parents() : null;
+ if (a)
+ for (var n = 0; n < a.length; n++) {
+ var i = a[n];
+ if (!e(i))
+ return !1;
+ }
+ return !0;
+ }
+ function Mi(t) {
+ var e = t.ok, r = t.edgeOkViaNode || t.ok, a = t.parentOk || t.ok;
+ return function() {
+ var n = this.cy();
+ if (!n.styleEnabled())
+ return !0;
+ var i = this[0], s = n.hasCompoundNodes();
+ if (i) {
+ var o = i._private;
+ if (!e(i))
+ return !1;
+ if (i.isNode())
+ return !s || Ni(i, a);
+ var l = o.source, u = o.target;
+ return r(l) && (!s || Ni(l, r)) && (l === u || r(u) && (!s || Ni(u, r)));
+ }
+ };
+ }
+ var va = kn("eleTakesUpSpace", function(t) {
+ return t.pstyle("display").value === "element" && t.width() !== 0 && (t.isNode() ? t.height() !== 0 : !0);
+ });
+ At.takesUpSpace = Pn("takesUpSpace", Mi({
+ ok: va
+ }));
+ var Dd = kn("eleInteractive", function(t) {
+ return t.pstyle("events").value === "yes" && t.pstyle("visibility").value === "visible" && va(t);
+ }), Sd = kn("parentInteractive", function(t) {
+ return t.pstyle("visibility").value === "visible" && va(t);
+ });
+ At.interactive = Pn("interactive", Mi({
+ ok: Dd,
+ parentOk: Sd,
+ edgeOkViaNode: va
+ })), At.noninteractive = function() {
+ var t = this[0];
+ if (t)
+ return !t.interactive();
+ };
+ var Ld = kn("eleVisible", function(t) {
+ return t.pstyle("visibility").value === "visible" && t.pstyle("opacity").pfValue !== 0 && va(t);
+ }), Ad = va;
+ At.visible = Pn("visible", Mi({
+ ok: Ld,
+ edgeOkViaNode: Ad
+ })), At.hidden = function() {
+ var t = this[0];
+ if (t)
+ return !t.visible();
+ }, At.isBundledBezier = Pn("isBundledBezier", function() {
+ return this.cy().styleEnabled() ? !this.removed() && this.pstyle("curve-style").value === "bezier" && this.takesUpSpace() : !1;
+ }), At.bypass = At.css = At.style, At.renderedCss = At.renderedStyle, At.removeBypass = At.removeCss = At.removeStyle, At.pstyle = At.parsedStyle;
+ var Nr = {};
+ function Po(t) {
+ return function() {
+ var e = arguments, r = [];
+ if (e.length === 2) {
+ var a = e[0], n = e[1];
+ this.on(t.event, a, n);
+ } else if (e.length === 1 && Y(e[0])) {
+ var i = e[0];
+ this.on(t.event, i);
+ } else if (e.length === 0 || e.length === 1 && te(e[0])) {
+ for (var s = e.length === 1 ? e[0] : null, o = 0; o < this.length; o++) {
+ var l = this[o], u = !t.ableField || l._private[t.ableField], f = l._private[t.field] != t.value;
+ if (t.overrideAble) {
+ var h = t.overrideAble(l);
+ if (h !== void 0 && (u = h, !h))
+ return this;
+ }
+ u && (l._private[t.field] = t.value, f && r.push(l));
+ }
+ var c = this.spawn(r);
+ c.updateStyle(), c.emit(t.event), s && c.emit(s);
+ }
+ return this;
+ };
+ }
+ function da(t) {
+ Nr[t.field] = function() {
+ var e = this[0];
+ if (e) {
+ if (t.overrideField) {
+ var r = t.overrideField(e);
+ if (r !== void 0)
+ return r;
+ }
+ return e._private[t.field];
+ }
+ }, Nr[t.on] = Po({
+ event: t.on,
+ field: t.field,
+ ableField: t.ableField,
+ overrideAble: t.overrideAble,
+ value: !0
+ }), Nr[t.off] = Po({
+ event: t.off,
+ field: t.field,
+ ableField: t.ableField,
+ overrideAble: t.overrideAble,
+ value: !1
+ });
+ }
+ da({
+ field: "locked",
+ overrideField: function(e) {
+ return e.cy().autolock() ? !0 : void 0;
+ },
+ on: "lock",
+ off: "unlock"
+ }), da({
+ field: "grabbable",
+ overrideField: function(e) {
+ return e.cy().autoungrabify() || e.pannable() ? !1 : void 0;
+ },
+ on: "grabify",
+ off: "ungrabify"
+ }), da({
+ field: "selected",
+ ableField: "selectable",
+ overrideAble: function(e) {
+ return e.cy().autounselectify() ? !1 : void 0;
+ },
+ on: "select",
+ off: "unselect"
+ }), da({
+ field: "selectable",
+ overrideField: function(e) {
+ return e.cy().autounselectify() ? !1 : void 0;
+ },
+ on: "selectify",
+ off: "unselectify"
+ }), Nr.deselect = Nr.unselect, Nr.grabbed = function() {
+ var t = this[0];
+ if (t)
+ return t._private.grabbed;
+ }, da({
+ field: "active",
+ on: "activate",
+ off: "unactivate"
+ }), da({
+ field: "pannable",
+ on: "panify",
+ off: "unpanify"
+ }), Nr.inactive = function() {
+ var t = this[0];
+ if (t)
+ return !t._private.active;
+ };
+ var Pt = {}, Bo = function(e) {
+ return function(a) {
+ for (var n = this, i = [], s = 0; s < n.length; s++) {
+ var o = n[s];
+ if (o.isNode()) {
+ for (var l = !1, u = o.connectedEdges(), f = 0; f < u.length; f++) {
+ var h = u[f], c = h.source(), v = h.target();
+ if (e.noIncomingEdges && v === o && c !== o || e.noOutgoingEdges && c === o && v !== o) {
+ l = !0;
+ break;
+ }
+ }
+ l || i.push(o);
+ }
+ }
+ return this.spawn(i, !0).filter(a);
+ };
+ }, Fo = function(e) {
+ return function(r) {
+ for (var a = this, n = [], i = 0; i < a.length; i++) {
+ var s = a[i];
+ if (s.isNode())
+ for (var o = s.connectedEdges(), l = 0; l < o.length; l++) {
+ var u = o[l], f = u.source(), h = u.target();
+ e.outgoing && f === s ? (n.push(u), n.push(h)) : e.incoming && h === s && (n.push(u), n.push(f));
+ }
+ }
+ return this.spawn(n, !0).filter(r);
+ };
+ }, zo = function(e) {
+ return function(r) {
+ for (var a = this, n = [], i = {}; ; ) {
+ var s = e.outgoing ? a.outgoers() : a.incomers();
+ if (s.length === 0)
+ break;
+ for (var o = !1, l = 0; l < s.length; l++) {
+ var u = s[l], f = u.id();
+ i[f] || (i[f] = !0, n.push(u), o = !0);
+ }
+ if (!o)
+ break;
+ a = s;
+ }
+ return this.spawn(n, !0).filter(r);
+ };
+ };
+ Pt.clearTraversalCache = function() {
+ for (var t = 0; t < this.length; t++)
+ this[t]._private.traversalCache = null;
+ }, Ue(Pt, {
+ // get the root nodes in the DAG
+ roots: Bo({
+ noIncomingEdges: !0
+ }),
+ // get the leaf nodes in the DAG
+ leaves: Bo({
+ noOutgoingEdges: !0
+ }),
+ // normally called children in graph theory
+ // these nodes =edges=> outgoing nodes
+ outgoers: Kt(Fo({
+ outgoing: !0
+ }), "outgoers"),
+ // aka DAG descendants
+ successors: zo({
+ outgoing: !0
+ }),
+ // normally called parents in graph theory
+ // these nodes <=edges= incoming nodes
+ incomers: Kt(Fo({
+ incoming: !0
+ }), "incomers"),
+ // aka DAG ancestors
+ predecessors: zo({
+ incoming: !0
+ })
+ }), Ue(Pt, {
+ neighborhood: Kt(function(t) {
+ for (var e = [], r = this.nodes(), a = 0; a < r.length; a++)
+ for (var n = r[a], i = n.connectedEdges(), s = 0; s < i.length; s++) {
+ var o = i[s], l = o.source(), u = o.target(), f = n === l ? u : l;
+ f.length > 0 && e.push(f[0]), e.push(o[0]);
+ }
+ return this.spawn(e, !0).filter(t);
+ }, "neighborhood"),
+ closedNeighborhood: function(e) {
+ return this.neighborhood().add(this).filter(e);
+ },
+ openNeighborhood: function(e) {
+ return this.neighborhood(e);
+ }
+ }), Pt.neighbourhood = Pt.neighborhood, Pt.closedNeighbourhood = Pt.closedNeighborhood, Pt.openNeighbourhood = Pt.openNeighborhood, Ue(Pt, {
+ source: Kt(function(e) {
+ var r = this[0], a;
+ return r && (a = r._private.source || r.cy().collection()), a && e ? a.filter(e) : a;
+ }, "source"),
+ target: Kt(function(e) {
+ var r = this[0], a;
+ return r && (a = r._private.target || r.cy().collection()), a && e ? a.filter(e) : a;
+ }, "target"),
+ sources: Go({
+ attr: "source"
+ }),
+ targets: Go({
+ attr: "target"
+ })
+ });
+ function Go(t) {
+ return function(r) {
+ for (var a = [], n = 0; n < this.length; n++) {
+ var i = this[n], s = i._private[t.attr];
+ s && a.push(s);
+ }
+ return this.spawn(a, !0).filter(r);
+ };
+ }
+ Ue(Pt, {
+ edgesWith: Kt($o(), "edgesWith"),
+ edgesTo: Kt($o({
+ thisIsSrc: !0
+ }), "edgesTo")
+ });
+ function $o(t) {
+ return function(r) {
+ var a = [], n = this._private.cy, i = t || {};
+ j(r) && (r = n.$(r));
+ for (var s = 0; s < r.length; s++)
+ for (var o = r[s]._private.edges, l = 0; l < o.length; l++) {
+ var u = o[l], f = u._private.data, h = this.hasElementWithId(f.source) && r.hasElementWithId(f.target), c = r.hasElementWithId(f.source) && this.hasElementWithId(f.target), v = h || c;
+ v && ((i.thisIsSrc || i.thisIsTgt) && (i.thisIsSrc && !h || i.thisIsTgt && !c) || a.push(u));
+ }
+ return this.spawn(a, !0);
+ };
+ }
+ Ue(Pt, {
+ connectedEdges: Kt(function(t) {
+ for (var e = [], r = this, a = 0; a < r.length; a++) {
+ var n = r[a];
+ if (n.isNode())
+ for (var i = n._private.edges, s = 0; s < i.length; s++) {
+ var o = i[s];
+ e.push(o);
+ }
+ }
+ return this.spawn(e, !0).filter(t);
+ }, "connectedEdges"),
+ connectedNodes: Kt(function(t) {
+ for (var e = [], r = this, a = 0; a < r.length; a++) {
+ var n = r[a];
+ n.isEdge() && (e.push(n.source()[0]), e.push(n.target()[0]));
+ }
+ return this.spawn(e, !0).filter(t);
+ }, "connectedNodes"),
+ parallelEdges: Kt(Vo(), "parallelEdges"),
+ codirectedEdges: Kt(Vo({
+ codirected: !0
+ }), "codirectedEdges")
+ });
+ function Vo(t) {
+ var e = {
+ codirected: !1
+ };
+ return t = Ue({}, e, t), function(a) {
+ for (var n = [], i = this.edges(), s = t, o = 0; o < i.length; o++)
+ for (var l = i[o], u = l._private, f = u.source, h = f._private.data.id, c = u.data.target, v = f._private.edges, d = 0; d < v.length; d++) {
+ var g = v[d], y = g._private.data, p = y.target, m = y.source, b = p === c && m === h, E = h === p && c === m;
+ (s.codirected && b || !s.codirected && (b || E)) && n.push(g);
+ }
+ return this.spawn(n, !0).filter(a);
+ };
+ }
+ Ue(Pt, {
+ components: function(e) {
+ var r = this, a = r.cy(), n = a.collection(), i = e == null ? r.nodes() : e.nodes(), s = [];
+ e != null && i.empty() && (i = e.sources());
+ var o = function(f, h) {
+ n.merge(f), i.unmerge(f), h.merge(f);
+ };
+ if (i.empty())
+ return r.spawn();
+ var l = function() {
+ var f = a.collection();
+ s.push(f);
+ var h = i[0];
+ o(h, f), r.bfs({
+ directed: !1,
+ roots: h,
+ visit: function(v) {
+ return o(v, f);
+ }
+ }), f.forEach(function(c) {
+ c.connectedEdges().forEach(function(v) {
+ r.has(v) && f.has(v.source()) && f.has(v.target()) && f.merge(v);
+ });
+ });
+ };
+ do
+ l();
+ while (i.length > 0);
+ return s;
+ },
+ component: function() {
+ var e = this[0];
+ return e.cy().mutableElements().components(e)[0];
+ }
+ }), Pt.componentsOf = Pt.components;
+ var Ot = function(e, r) {
+ var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1;
+ if (e === void 0) {
+ xt("A collection must have a reference to the core");
+ return;
+ }
+ var i = new ur(), s = !1;
+ if (!r)
+ r = [];
+ else if (r.length > 0 && L(r[0]) && !Ae(r[0])) {
+ s = !0;
+ for (var o = [], l = new Jr(), u = 0, f = r.length; u < f; u++) {
+ var h = r[u];
+ h.data == null && (h.data = {});
+ var c = h.data;
+ if (c.id == null)
+ c.id = ps();
+ else if (e.hasElementWithId(c.id) || l.has(c.id))
+ continue;
+ var v = new vn(e, h, !1);
+ o.push(v), l.add(c.id);
+ }
+ r = o;
+ }
+ this.length = 0;
+ for (var d = 0, g = r.length; d < g; d++) {
+ var y = r[d][0];
+ if (y != null) {
+ var p = y._private.data.id;
+ (!a || !i.has(p)) && (a && i.set(p, {
+ index: this.length,
+ ele: y
+ }), this[this.length] = y, this.length++);
+ }
+ }
+ this._private = {
+ eles: this,
+ cy: e,
+ get map() {
+ return this.lazyMap == null && this.rebuildMap(), this.lazyMap;
+ },
+ set map(m) {
+ this.lazyMap = m;
+ },
+ rebuildMap: function() {
+ for (var b = this.lazyMap = new ur(), E = this.eles, M = 0; M < E.length; M++) {
+ var A = E[M];
+ b.set(A.id(), {
+ index: M,
+ ele: A
+ });
+ }
+ }
+ }, a && (this._private.map = i), s && !n && this.restore();
+ }, mt = vn.prototype = Ot.prototype = Object.create(Array.prototype);
+ mt.instanceString = function() {
+ return "collection";
+ }, mt.spawn = function(t, e) {
+ return new Ot(this.cy(), t, e);
+ }, mt.spawnSelf = function() {
+ return this.spawn(this);
+ }, mt.cy = function() {
+ return this._private.cy;
+ }, mt.renderer = function() {
+ return this._private.cy.renderer();
+ }, mt.element = function() {
+ return this[0];
+ }, mt.collection = function() {
+ return Ne(this) ? this : new Ot(this._private.cy, [this]);
+ }, mt.unique = function() {
+ return new Ot(this._private.cy, this, !0);
+ }, mt.hasElementWithId = function(t) {
+ return t = "" + t, this._private.map.has(t);
+ }, mt.getElementById = function(t) {
+ t = "" + t;
+ var e = this._private.cy, r = this._private.map.get(t);
+ return r ? r.ele : new Ot(e);
+ }, mt.$id = mt.getElementById, mt.poolIndex = function() {
+ var t = this._private.cy, e = t._private.elements, r = this[0]._private.data.id;
+ return e._private.map.get(r).index;
+ }, mt.indexOf = function(t) {
+ var e = t[0]._private.data.id;
+ return this._private.map.get(e).index;
+ }, mt.indexOfId = function(t) {
+ return t = "" + t, this._private.map.get(t).index;
+ }, mt.json = function(t) {
+ var e = this.element(), r = this.cy();
+ if (e == null && t)
+ return this;
+ if (e != null) {
+ var a = e._private;
+ if (L(t)) {
+ if (r.startBatch(), t.data) {
+ e.data(t.data);
+ var n = a.data;
+ if (e.isEdge()) {
+ var i = !1, s = {}, o = t.data.source, l = t.data.target;
+ o != null && o != n.source && (s.source = "" + o, i = !0), l != null && l != n.target && (s.target = "" + l, i = !0), i && (e = e.move(s));
+ } else {
+ var u = "parent" in t.data, f = t.data.parent;
+ u && (f != null || n.parent != null) && f != n.parent && (f === void 0 && (f = null), f != null && (f = "" + f), e = e.move({
+ parent: f
+ }));
+ }
+ }
+ t.position && e.position(t.position);
+ var h = function(g, y, p) {
+ var m = t[g];
+ m != null && m !== a[g] && (m ? e[y]() : e[p]());
+ };
+ return h("removed", "remove", "restore"), h("selected", "select", "unselect"), h("selectable", "selectify", "unselectify"), h("locked", "lock", "unlock"), h("grabbable", "grabify", "ungrabify"), h("pannable", "panify", "unpanify"), t.classes != null && e.classes(t.classes), r.endBatch(), this;
+ } else if (t === void 0) {
+ var c = {
+ data: or(a.data),
+ position: or(a.position),
+ group: a.group,
+ removed: a.removed,
+ selected: a.selected,
+ selectable: a.selectable,
+ locked: a.locked,
+ grabbable: a.grabbable,
+ pannable: a.pannable,
+ classes: null
+ };
+ c.classes = "";
+ var v = 0;
+ return a.classes.forEach(function(d) {
+ return c.classes += v++ === 0 ? d : " " + d;
+ }), c;
+ }
+ }
+ }, mt.jsons = function() {
+ for (var t = [], e = 0; e < this.length; e++) {
+ var r = this[e], a = r.json();
+ t.push(a);
+ }
+ return t;
+ }, mt.clone = function() {
+ for (var t = this.cy(), e = [], r = 0; r < this.length; r++) {
+ var a = this[r], n = a.json(), i = new vn(t, n, !1);
+ e.push(i);
+ }
+ return new Ot(t, e);
+ }, mt.copy = mt.clone, mt.restore = function() {
+ for (var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0, e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, r = this, a = r.cy(), n = a._private, i = [], s = [], o, l = 0, u = r.length; l < u; l++) {
+ var f = r[l];
+ e && !f.removed() || (f.isNode() ? i.push(f) : s.push(f));
+ }
+ o = i.concat(s);
+ var h, c = function() {
+ o.splice(h, 1), h--;
+ };
+ for (h = 0; h < o.length; h++) {
+ var v = o[h], d = v._private, g = d.data;
+ if (v.clearTraversalCache(), !(!e && !d.removed)) {
+ if (g.id === void 0)
+ g.id = ps();
+ else if (k(g.id))
+ g.id = "" + g.id;
+ else if (Pe(g.id) || !j(g.id)) {
+ xt("Can not create element with invalid string ID `" + g.id + "`"), c();
+ continue;
+ } else if (a.hasElementWithId(g.id)) {
+ xt("Can not create second element with ID `" + g.id + "`"), c();
+ continue;
+ }
+ }
+ var y = g.id;
+ if (v.isNode()) {
+ var p = d.position;
+ p.x == null && (p.x = 0), p.y == null && (p.y = 0);
+ }
+ if (v.isEdge()) {
+ for (var m = v, b = ["source", "target"], E = b.length, M = !1, A = 0; A < E; A++) {
+ var w = b[A], I = g[w];
+ k(I) && (I = g[w] = "" + g[w]), I == null || I === "" ? (xt("Can not create edge `" + y + "` with unspecified " + w), M = !0) : a.hasElementWithId(I) || (xt("Can not create edge `" + y + "` with nonexistant " + w + " `" + I + "`"), M = !0);
+ }
+ if (M) {
+ c();
+ continue;
+ }
+ var C = a.getElementById(g.source), B = a.getElementById(g.target);
+ C.same(B) ? C._private.edges.push(m) : (C._private.edges.push(m), B._private.edges.push(m)), m._private.source = C, m._private.target = B;
+ }
+ d.map = new ur(), d.map.set(y, {
+ ele: v,
+ index: 0
+ }), d.removed = !1, e && a.addToPool(v);
+ }
+ for (var F = 0; F < i.length; F++) {
+ var R = i[F], X = R._private.data;
+ k(X.parent) && (X.parent = "" + X.parent);
+ var z = X.parent, re = z != null;
+ if (re || R._private.parent) {
+ var W = R._private.parent ? a.collection().merge(R._private.parent) : a.getElementById(z);
+ if (W.empty())
+ X.parent = void 0;
+ else if (W[0].removed())
+ ft("Node added with missing parent, reference to parent removed"), X.parent = void 0, R._private.parent = null;
+ else {
+ for (var Z = !1, ie = W; !ie.empty(); ) {
+ if (R.same(ie)) {
+ Z = !0, X.parent = void 0;
+ break;
+ }
+ ie = ie.parent();
+ }
+ Z || (W[0]._private.children.push(R), R._private.parent = W[0], n.hasCompoundNodes = !0);
+ }
+ }
+ }
+ if (o.length > 0) {
+ for (var oe = o.length === r.length ? r : new Ot(a, o), ge = 0; ge < oe.length; ge++) {
+ var se = oe[ge];
+ se.isNode() || (se.parallelEdges().clearTraversalCache(), se.source().clearTraversalCache(), se.target().clearTraversalCache());
+ }
+ var de;
+ n.hasCompoundNodes ? de = a.collection().merge(oe).merge(oe.connectedNodes()).merge(oe.parent()) : de = oe, de.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(t), t ? oe.emitAndNotify("add") : e && oe.emit("add");
+ }
+ return r;
+ }, mt.removed = function() {
+ var t = this[0];
+ return t && t._private.removed;
+ }, mt.inside = function() {
+ var t = this[0];
+ return t && !t._private.removed;
+ }, mt.remove = function() {
+ var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0, e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, r = this, a = [], n = {}, i = r._private.cy;
+ function s(z) {
+ for (var re = z._private.edges, W = 0; W < re.length; W++)
+ l(re[W]);
+ }
+ function o(z) {
+ for (var re = z._private.children, W = 0; W < re.length; W++)
+ l(re[W]);
+ }
+ function l(z) {
+ var re = n[z.id()];
+ e && z.removed() || re || (n[z.id()] = !0, z.isNode() ? (a.push(z), s(z), o(z)) : a.unshift(z));
+ }
+ for (var u = 0, f = r.length; u < f; u++) {
+ var h = r[u];
+ l(h);
+ }
+ function c(z, re) {
+ var W = z._private.edges;
+ wr(W, re), z.clearTraversalCache();
+ }
+ function v(z) {
+ z.clearTraversalCache();
+ }
+ var d = [];
+ d.ids = {};
+ function g(z, re) {
+ re = re[0], z = z[0];
+ var W = z._private.children, Z = z.id();
+ wr(W, re), re._private.parent = null, d.ids[Z] || (d.ids[Z] = !0, d.push(z));
+ }
+ r.dirtyCompoundBoundsCache(), e && i.removeFromPool(a);
+ for (var y = 0; y < a.length; y++) {
+ var p = a[y];
+ if (p.isEdge()) {
+ var m = p.source()[0], b = p.target()[0];
+ c(m, p), c(b, p);
+ for (var E = p.parallelEdges(), M = 0; M < E.length; M++) {
+ var A = E[M];
+ v(A), A.isBundledBezier() && A.dirtyBoundingBoxCache();
+ }
+ } else {
+ var w = p.parent();
+ w.length !== 0 && g(w, p);
+ }
+ e && (p._private.removed = !0);
+ }
+ var I = i._private.elements;
+ i._private.hasCompoundNodes = !1;
+ for (var C = 0; C < I.length; C++) {
+ var B = I[C];
+ if (B.isParent()) {
+ i._private.hasCompoundNodes = !0;
+ break;
+ }
+ }
+ var F = new Ot(this.cy(), a);
+ F.size() > 0 && (t ? F.emitAndNotify("remove") : e && F.emit("remove"));
+ for (var R = 0; R < d.length; R++) {
+ var X = d[R];
+ (!e || !X.removed()) && X.updateStyle();
+ }
+ return F;
+ }, mt.move = function(t) {
+ var e = this._private.cy, r = this, a = !1, n = !1, i = function(d) {
+ return d == null ? d : "" + d;
+ };
+ if (t.source !== void 0 || t.target !== void 0) {
+ var s = i(t.source), o = i(t.target), l = s != null && e.hasElementWithId(s), u = o != null && e.hasElementWithId(o);
+ (l || u) && (e.batch(function() {
+ r.remove(a, n), r.emitAndNotify("moveout");
+ for (var v = 0; v < r.length; v++) {
+ var d = r[v], g = d._private.data;
+ d.isEdge() && (l && (g.source = s), u && (g.target = o));
+ }
+ r.restore(a, n);
+ }), r.emitAndNotify("move"));
+ } else if (t.parent !== void 0) {
+ var f = i(t.parent), h = f === null || e.hasElementWithId(f);
+ if (h) {
+ var c = f === null ? void 0 : f;
+ e.batch(function() {
+ var v = r.remove(a, n);
+ v.emitAndNotify("moveout");
+ for (var d = 0; d < r.length; d++) {
+ var g = r[d], y = g._private.data;
+ g.isNode() && (y.parent = c);
+ }
+ v.restore(a, n);
+ }), r.emitAndNotify("move");
+ }
+ }
+ return this;
+ }, [Ys, $v, Sn, Lr, fa, rd, Ln, yd, Mo, Io, xd, In, Rn, At, Nr, Pt].forEach(function(t) {
+ Ue(mt, t);
+ });
+ var Od = {
+ add: function(e) {
+ var r, a = this;
+ if (pe(e)) {
+ var n = e;
+ if (n._private.cy === a)
+ r = n.restore();
+ else {
+ for (var i = [], s = 0; s < n.length; s++) {
+ var o = n[s];
+ i.push(o.json());
+ }
+ r = new Ot(a, i);
+ }
+ } else if (te(e)) {
+ var l = e;
+ r = new Ot(a, l);
+ } else if (L(e) && (te(e.nodes) || te(e.edges))) {
+ for (var u = e, f = [], h = ["nodes", "edges"], c = 0, v = h.length; c < v; c++) {
+ var d = h[c], g = u[d];
+ if (te(g))
+ for (var y = 0, p = g.length; y < p; y++) {
+ var m = Ue({
+ group: d
+ }, g[y]);
+ f.push(m);
+ }
+ }
+ r = new Ot(a, f);
+ } else {
+ var b = e;
+ r = new vn(a, b).collection();
+ }
+ return r;
+ },
+ remove: function(e) {
+ if (!pe(e)) {
+ if (j(e)) {
+ var r = e;
+ e = this.$(r);
+ }
+ }
+ return e.remove();
+ }
+ };
+ /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */
+ function Nd(t, e, r, a) {
+ var n = 4, i = 1e-3, s = 1e-7, o = 10, l = 11, u = 1 / (l - 1), f = typeof Float32Array < "u";
+ if (arguments.length !== 4)
+ return !1;
+ for (var h = 0; h < 4; ++h)
+ if (typeof arguments[h] != "number" || isNaN(arguments[h]) || !isFinite(arguments[h]))
+ return !1;
+ t = Math.min(t, 1), r = Math.min(r, 1), t = Math.max(t, 0), r = Math.max(r, 0);
+ var c = f ? new Float32Array(l) : new Array(l);
+ function v(B, F) {
+ return 1 - 3 * F + 3 * B;
+ }
+ function d(B, F) {
+ return 3 * F - 6 * B;
+ }
+ function g(B) {
+ return 3 * B;
+ }
+ function y(B, F, R) {
+ return ((v(F, R) * B + d(F, R)) * B + g(F)) * B;
+ }
+ function p(B, F, R) {
+ return 3 * v(F, R) * B * B + 2 * d(F, R) * B + g(F);
+ }
+ function m(B, F) {
+ for (var R = 0; R < n; ++R) {
+ var X = p(F, t, r);
+ if (X === 0)
+ return F;
+ var z = y(F, t, r) - B;
+ F -= z / X;
+ }
+ return F;
+ }
+ function b() {
+ for (var B = 0; B < l; ++B)
+ c[B] = y(B * u, t, r);
+ }
+ function E(B, F, R) {
+ var X, z, re = 0;
+ do
+ z = F + (R - F) / 2, X = y(z, t, r) - B, X > 0 ? R = z : F = z;
+ while (Math.abs(X) > s && ++re < o);
+ return z;
+ }
+ function M(B) {
+ for (var F = 0, R = 1, X = l - 1; R !== X && c[R] <= B; ++R)
+ F += u;
+ --R;
+ var z = (B - c[R]) / (c[R + 1] - c[R]), re = F + z * u, W = p(re, t, r);
+ return W >= i ? m(B, re) : W === 0 ? re : E(B, F, F + u);
+ }
+ var A = !1;
+ function w() {
+ A = !0, (t !== e || r !== a) && b();
+ }
+ var I = function(F) {
+ return A || w(), t === e && r === a ? F : F === 0 ? 0 : F === 1 ? 1 : y(M(F), e, a);
+ };
+ I.getControlPoints = function() {
+ return [{
+ x: t,
+ y: e
+ }, {
+ x: r,
+ y: a
+ }];
+ };
+ var C = "generateBezier(" + [t, e, r, a] + ")";
+ return I.toString = function() {
+ return C;
+ }, I;
+ }
+ /*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */
+ var Md = function() {
+ function t(a) {
+ return -a.tension * a.x - a.friction * a.v;
+ }
+ function e(a, n, i) {
+ var s = {
+ x: a.x + i.dx * n,
+ v: a.v + i.dv * n,
+ tension: a.tension,
+ friction: a.friction
+ };
+ return {
+ dx: s.v,
+ dv: t(s)
+ };
+ }
+ function r(a, n) {
+ var i = {
+ dx: a.v,
+ dv: t(a)
+ }, s = e(a, n * 0.5, i), o = e(a, n * 0.5, s), l = e(a, n, o), u = 1 / 6 * (i.dx + 2 * (s.dx + o.dx) + l.dx), f = 1 / 6 * (i.dv + 2 * (s.dv + o.dv) + l.dv);
+ return a.x = a.x + u * n, a.v = a.v + f * n, a;
+ }
+ return function a(n, i, s) {
+ var o = {
+ x: -1,
+ v: 0,
+ tension: null,
+ friction: null
+ }, l = [0], u = 0, f = 1 / 1e4, h = 16 / 1e3, c, v, d;
+ for (n = parseFloat(n) || 500, i = parseFloat(i) || 20, s = s || null, o.tension = n, o.friction = i, c = s !== null, c ? (u = a(n, i), v = u / s * h) : v = h; d = r(d || o, v), l.push(1 + d.x), u += 16, Math.abs(d.x) > f && Math.abs(d.v) > f; )
+ ;
+ return c ? function(g) {
+ return l[g * (l.length - 1) | 0];
+ } : u;
+ };
+ }(), bt = function(e, r, a, n) {
+ var i = Nd(e, r, a, n);
+ return function(s, o, l) {
+ return s + (o - s) * i(l);
+ };
+ }, Bn = {
+ linear: function(e, r, a) {
+ return e + (r - e) * a;
+ },
+ // default easings
+ ease: bt(0.25, 0.1, 0.25, 1),
+ "ease-in": bt(0.42, 0, 1, 1),
+ "ease-out": bt(0, 0, 0.58, 1),
+ "ease-in-out": bt(0.42, 0, 0.58, 1),
+ // sine
+ "ease-in-sine": bt(0.47, 0, 0.745, 0.715),
+ "ease-out-sine": bt(0.39, 0.575, 0.565, 1),
+ "ease-in-out-sine": bt(0.445, 0.05, 0.55, 0.95),
+ // quad
+ "ease-in-quad": bt(0.55, 0.085, 0.68, 0.53),
+ "ease-out-quad": bt(0.25, 0.46, 0.45, 0.94),
+ "ease-in-out-quad": bt(0.455, 0.03, 0.515, 0.955),
+ // cubic
+ "ease-in-cubic": bt(0.55, 0.055, 0.675, 0.19),
+ "ease-out-cubic": bt(0.215, 0.61, 0.355, 1),
+ "ease-in-out-cubic": bt(0.645, 0.045, 0.355, 1),
+ // quart
+ "ease-in-quart": bt(0.895, 0.03, 0.685, 0.22),
+ "ease-out-quart": bt(0.165, 0.84, 0.44, 1),
+ "ease-in-out-quart": bt(0.77, 0, 0.175, 1),
+ // quint
+ "ease-in-quint": bt(0.755, 0.05, 0.855, 0.06),
+ "ease-out-quint": bt(0.23, 1, 0.32, 1),
+ "ease-in-out-quint": bt(0.86, 0, 0.07, 1),
+ // expo
+ "ease-in-expo": bt(0.95, 0.05, 0.795, 0.035),
+ "ease-out-expo": bt(0.19, 1, 0.22, 1),
+ "ease-in-out-expo": bt(1, 0, 0, 1),
+ // circ
+ "ease-in-circ": bt(0.6, 0.04, 0.98, 0.335),
+ "ease-out-circ": bt(0.075, 0.82, 0.165, 1),
+ "ease-in-out-circ": bt(0.785, 0.135, 0.15, 0.86),
+ // user param easings...
+ spring: function(e, r, a) {
+ if (a === 0)
+ return Bn.linear;
+ var n = Md(e, r, a);
+ return function(i, s, o) {
+ return i + (s - i) * n(o);
+ };
+ },
+ "cubic-bezier": bt
+ };
+ function _o(t, e, r, a, n) {
+ if (a === 1 || e === r)
+ return r;
+ var i = n(e, r, a);
+ return t == null || ((t.roundValue || t.color) && (i = Math.round(i)), t.min !== void 0 && (i = Math.max(i, t.min)), t.max !== void 0 && (i = Math.min(i, t.max))), i;
+ }
+ function Uo(t, e) {
+ return t.pfValue != null || t.value != null ? t.pfValue != null && (e == null || e.type.units !== "%") ? t.pfValue : t.value : t;
+ }
+ function ga(t, e, r, a, n) {
+ var i = n != null ? n.type : null;
+ r < 0 ? r = 0 : r > 1 && (r = 1);
+ var s = Uo(t, n), o = Uo(e, n);
+ if (k(s) && k(o))
+ return _o(i, s, o, r, a);
+ if (te(s) && te(o)) {
+ for (var l = [], u = 0; u < o.length; u++) {
+ var f = s[u], h = o[u];
+ if (f != null && h != null) {
+ var c = _o(i, f, h, r, a);
+ l.push(c);
+ } else
+ l.push(h);
+ }
+ return l;
+ }
+ }
+ function Id(t, e, r, a) {
+ var n = !a, i = t._private, s = e._private, o = s.easing, l = s.startTime, u = a ? t : t.cy(), f = u.style();
+ if (!s.easingImpl)
+ if (o == null)
+ s.easingImpl = Bn.linear;
+ else {
+ var h;
+ if (j(o)) {
+ var c = f.parse("transition-timing-function", o);
+ h = c.value;
+ } else
+ h = o;
+ var v, d;
+ j(h) ? (v = h, d = []) : (v = h[1], d = h.slice(2).map(function(oe) {
+ return +oe;
+ })), d.length > 0 ? (v === "spring" && d.push(s.duration), s.easingImpl = Bn[v].apply(null, d)) : s.easingImpl = Bn[v];
+ }
+ var g = s.easingImpl, y;
+ if (s.duration === 0 ? y = 1 : y = (r - l) / s.duration, s.applying && (y = s.progress), y < 0 ? y = 0 : y > 1 && (y = 1), s.delay == null) {
+ var p = s.startPosition, m = s.position;
+ if (m && n && !t.locked()) {
+ var b = {};
+ Xa(p.x, m.x) && (b.x = ga(p.x, m.x, y, g)), Xa(p.y, m.y) && (b.y = ga(p.y, m.y, y, g)), t.position(b);
+ }
+ var E = s.startPan, M = s.pan, A = i.pan, w = M != null && a;
+ w && (Xa(E.x, M.x) && (A.x = ga(E.x, M.x, y, g)), Xa(E.y, M.y) && (A.y = ga(E.y, M.y, y, g)), t.emit("pan"));
+ var I = s.startZoom, C = s.zoom, B = C != null && a;
+ B && (Xa(I, C) && (i.zoom = ka(i.minZoom, ga(I, C, y, g), i.maxZoom)), t.emit("zoom")), (w || B) && t.emit("viewport");
+ var F = s.style;
+ if (F && F.length > 0 && n) {
+ for (var R = 0; R < F.length; R++) {
+ var X = F[R], z = X.name, re = X, W = s.startStyle[z], Z = f.properties[W.name], ie = ga(W, re, y, g, Z);
+ f.overrideBypass(t, z, ie);
+ }
+ t.emit("style");
+ }
+ }
+ return s.progress = y, y;
+ }
+ function Xa(t, e) {
+ return t == null || e == null ? !1 : k(t) && k(e) ? !0 : !!(t && e);
+ }
+ function Rd(t, e, r, a) {
+ var n = e._private;
+ n.started = !0, n.startTime = r - n.progress * n.duration;
+ }
+ function Yo(t, e) {
+ var r = e._private.aniEles, a = [];
+ function n(f, h) {
+ var c = f._private, v = c.animation.current, d = c.animation.queue, g = !1;
+ if (v.length === 0) {
+ var y = d.shift();
+ y && v.push(y);
+ }
+ for (var p = function(A) {
+ for (var w = A.length - 1; w >= 0; w--) {
+ var I = A[w];
+ I();
+ }
+ A.splice(0, A.length);
+ }, m = v.length - 1; m >= 0; m--) {
+ var b = v[m], E = b._private;
+ if (E.stopped) {
+ v.splice(m, 1), E.hooked = !1, E.playing = !1, E.started = !1, p(E.frames);
+ continue;
+ }
+ !E.playing && !E.applying || (E.playing && E.applying && (E.applying = !1), E.started || Rd(f, b, t), Id(f, b, t, h), E.applying && (E.applying = !1), p(E.frames), E.step != null && E.step(t), b.completed() && (v.splice(m, 1), E.hooked = !1, E.playing = !1, E.started = !1, p(E.completes)), g = !0);
+ }
+ return !h && v.length === 0 && d.length === 0 && a.push(f), g;
+ }
+ for (var i = !1, s = 0; s < r.length; s++) {
+ var o = r[s], l = n(o);
+ i = i || l;
+ }
+ var u = n(e, !0);
+ (i || u) && (r.length > 0 ? e.notify("draw", r) : e.notify("draw")), r.unmerge(a), e.emit("step");
+ }
+ var kd = {
+ // pull in animation functions
+ animate: ht.animate(),
+ animation: ht.animation(),
+ animated: ht.animated(),
+ clearQueue: ht.clearQueue(),
+ delay: ht.delay(),
+ delayAnimation: ht.delayAnimation(),
+ stop: ht.stop(),
+ addToAnimationPool: function(e) {
+ var r = this;
+ r.styleEnabled() && r._private.aniEles.merge(e);
+ },
+ stopAnimationLoop: function() {
+ this._private.animationsRunning = !1;
+ },
+ startAnimationLoop: function() {
+ var e = this;
+ if (e._private.animationsRunning = !0, !e.styleEnabled())
+ return;
+ function r() {
+ e._private.animationsRunning && fn(function(i) {
+ Yo(i, e), r();
+ });
+ }
+ var a = e.renderer();
+ a && a.beforeRender ? a.beforeRender(function(i, s) {
+ Yo(s, e);
+ }, a.beforeRenderPriorities.animations) : r();
+ }
+ }, Pd = {
+ qualifierCompare: function(e, r) {
+ return e == null || r == null ? e == null && r == null : e.sameText(r);
+ },
+ eventMatches: function(e, r, a) {
+ var n = r.qualifier;
+ return n != null ? e !== a.target && Ae(a.target) && n.matches(a.target) : !0;
+ },
+ addEventFields: function(e, r) {
+ r.cy = e, r.target = e;
+ },
+ callbackContext: function(e, r, a) {
+ return r.qualifier != null ? a.target : e;
+ }
+ }, Fn = function(e) {
+ return j(e) ? new Dr(e) : e;
+ }, Ho = {
+ createEmitter: function() {
+ var e = this._private;
+ return e.emitter || (e.emitter = new Nn(Pd, this)), this;
+ },
+ emitter: function() {
+ return this._private.emitter;
+ },
+ on: function(e, r, a) {
+ return this.emitter().on(e, Fn(r), a), this;
+ },
+ removeListener: function(e, r, a) {
+ return this.emitter().removeListener(e, Fn(r), a), this;
+ },
+ removeAllListeners: function() {
+ return this.emitter().removeAllListeners(), this;
+ },
+ one: function(e, r, a) {
+ return this.emitter().one(e, Fn(r), a), this;
+ },
+ once: function(e, r, a) {
+ return this.emitter().one(e, Fn(r), a), this;
+ },
+ emit: function(e, r) {
+ return this.emitter().emit(e, r), this;
+ },
+ emitAndNotify: function(e, r) {
+ return this.emit(e), this.notify(e, r), this;
+ }
+ };
+ ht.eventAliasesOn(Ho);
+ var Ii = {
+ png: function(e) {
+ var r = this._private.renderer;
+ return e = e || {}, r.png(e);
+ },
+ jpg: function(e) {
+ var r = this._private.renderer;
+ return e = e || {}, e.bg = e.bg || "#fff", r.jpg(e);
+ }
+ };
+ Ii.jpeg = Ii.jpg;
+ var zn = {
+ layout: function(e) {
+ var r = this;
+ if (e == null) {
+ xt("Layout options must be specified to make a layout");
+ return;
+ }
+ if (e.name == null) {
+ xt("A `name` must be specified to make a layout");
+ return;
+ }
+ var a = e.name, n = r.extension("layout", a);
+ if (n == null) {
+ xt("No such layout `" + a + "` found. Did you forget to import it and `cytoscape.use()` it?");
+ return;
+ }
+ var i;
+ j(e.eles) ? i = r.$(e.eles) : i = e.eles != null ? e.eles : r.$();
+ var s = new n(Ue({}, e, {
+ cy: r,
+ eles: i
+ }));
+ return s;
+ }
+ };
+ zn.createLayout = zn.makeLayout = zn.layout;
+ var Bd = {
+ notify: function(e, r) {
+ var a = this._private;
+ if (this.batching()) {
+ a.batchNotifications = a.batchNotifications || {};
+ var n = a.batchNotifications[e] = a.batchNotifications[e] || this.collection();
+ r != null && n.merge(r);
+ return;
+ }
+ if (a.notificationsEnabled) {
+ var i = this.renderer();
+ this.destroyed() || !i || i.notify(e, r);
+ }
+ },
+ notifications: function(e) {
+ var r = this._private;
+ return e === void 0 ? r.notificationsEnabled : (r.notificationsEnabled = !!e, this);
+ },
+ noNotifications: function(e) {
+ this.notifications(!1), e(), this.notifications(!0);
+ },
+ batching: function() {
+ return this._private.batchCount > 0;
+ },
+ startBatch: function() {
+ var e = this._private;
+ return e.batchCount == null && (e.batchCount = 0), e.batchCount === 0 && (e.batchStyleEles = this.collection(), e.batchNotifications = {}), e.batchCount++, this;
+ },
+ endBatch: function() {
+ var e = this._private;
+ if (e.batchCount === 0)
+ return this;
+ if (e.batchCount--, e.batchCount === 0) {
+ e.batchStyleEles.updateStyle();
+ var r = this.renderer();
+ Object.keys(e.batchNotifications).forEach(function(a) {
+ var n = e.batchNotifications[a];
+ n.empty() ? r.notify(a) : r.notify(a, n);
+ });
+ }
+ return this;
+ },
+ batch: function(e) {
+ return this.startBatch(), e(), this.endBatch(), this;
+ },
+ // for backwards compatibility
+ batchData: function(e) {
+ var r = this;
+ return this.batch(function() {
+ for (var a = Object.keys(e), n = 0; n < a.length; n++) {
+ var i = a[n], s = e[i], o = r.getElementById(i);
+ o.data(s);
+ }
+ });
+ }
+ }, Fd = Lt({
+ hideEdgesOnViewport: !1,
+ textureOnViewport: !1,
+ motionBlur: !1,
+ motionBlurOpacity: 0.05,
+ pixelRatio: void 0,
+ desktopTapThreshold: 4,
+ touchTapThreshold: 8,
+ wheelSensitivity: 1,
+ debug: !1,
+ showFps: !1
+ }), Ri = {
+ renderTo: function(e, r, a, n) {
+ var i = this._private.renderer;
+ return i.renderTo(e, r, a, n), this;
+ },
+ renderer: function() {
+ return this._private.renderer;
+ },
+ forceRender: function() {
+ return this.notify("draw"), this;
+ },
+ resize: function() {
+ return this.invalidateSize(), this.emitAndNotify("resize"), this;
+ },
+ initRenderer: function(e) {
+ var r = this, a = r.extension("renderer", e.name);
+ if (a == null) {
+ xt("Can not initialise: No such renderer `".concat(e.name, "` found. Did you forget to import it and `cytoscape.use()` it?"));
+ return;
+ }
+ e.wheelSensitivity !== void 0 && ft("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");
+ var n = Fd(e);
+ n.cy = r, r._private.renderer = new a(n), this.notify("init");
+ },
+ destroyRenderer: function() {
+ var e = this;
+ e.notify("destroy");
+ var r = e.container();
+ if (r)
+ for (r._cyreg = null; r.childNodes.length > 0; )
+ r.removeChild(r.childNodes[0]);
+ e._private.renderer = null, e.mutableElements().forEach(function(a) {
+ var n = a._private;
+ n.rscratch = {}, n.rstyle = {}, n.animation.current = [], n.animation.queue = [];
+ });
+ },
+ onRender: function(e) {
+ return this.on("render", e);
+ },
+ offRender: function(e) {
+ return this.off("render", e);
+ }
+ };
+ Ri.invalidateDimensions = Ri.resize;
+ var Gn = {
+ // get a collection
+ // - empty collection on no args
+ // - collection of elements in the graph on selector arg
+ // - guarantee a returned collection when elements or collection specified
+ collection: function(e, r) {
+ return j(e) ? this.$(e) : pe(e) ? e.collection() : te(e) ? (r || (r = {}), new Ot(this, e, r.unique, r.removed)) : new Ot(this);
+ },
+ nodes: function(e) {
+ var r = this.$(function(a) {
+ return a.isNode();
+ });
+ return e ? r.filter(e) : r;
+ },
+ edges: function(e) {
+ var r = this.$(function(a) {
+ return a.isEdge();
+ });
+ return e ? r.filter(e) : r;
+ },
+ // search the graph like jQuery
+ $: function(e) {
+ var r = this._private.elements;
+ return e ? r.filter(e) : r.spawnSelf();
+ },
+ mutableElements: function() {
+ return this._private.elements;
+ }
+ };
+ Gn.elements = Gn.filter = Gn.$;
+ var Bt = {}, qa = "t", zd = "f";
+ Bt.apply = function(t) {
+ for (var e = this, r = e._private, a = r.cy, n = a.collection(), i = 0; i < t.length; i++) {
+ var s = t[i], o = e.getContextMeta(s);
+ if (!o.empty) {
+ var l = e.getContextStyle(o), u = e.applyContextStyle(o, l, s);
+ s._private.appliedInitStyle ? e.updateTransitions(s, u.diffProps) : s._private.appliedInitStyle = !0;
+ var f = e.updateStyleHints(s);
+ f && n.push(s);
+ }
+ }
+ return n;
+ }, Bt.getPropertiesDiff = function(t, e) {
+ var r = this, a = r._private.propDiffs = r._private.propDiffs || {}, n = t + "-" + e, i = a[n];
+ if (i)
+ return i;
+ for (var s = [], o = {}, l = 0; l < r.length; l++) {
+ var u = r[l], f = t[l] === qa, h = e[l] === qa, c = f !== h, v = u.mappedProperties.length > 0;
+ if (c || h && v) {
+ var d = void 0;
+ c && v || c ? d = u.properties : v && (d = u.mappedProperties);
+ for (var g = 0; g < d.length; g++) {
+ for (var y = d[g], p = y.name, m = !1, b = l + 1; b < r.length; b++) {
+ var E = r[b], M = e[b] === qa;
+ if (M && (m = E.properties[y.name] != null, m))
+ break;
+ }
+ !o[p] && !m && (o[p] = !0, s.push(p));
+ }
+ }
+ }
+ return a[n] = s, s;
+ }, Bt.getContextMeta = function(t) {
+ for (var e = this, r = "", a, n = t._private.styleCxtKey || "", i = 0; i < e.length; i++) {
+ var s = e[i], o = s.selector && s.selector.matches(t);
+ o ? r += qa : r += zd;
+ }
+ return a = e.getPropertiesDiff(n, r), t._private.styleCxtKey = r, {
+ key: r,
+ diffPropNames: a,
+ empty: a.length === 0
+ };
+ }, Bt.getContextStyle = function(t) {
+ var e = t.key, r = this, a = this._private.contextStyles = this._private.contextStyles || {};
+ if (a[e])
+ return a[e];
+ for (var n = {
+ _private: {
+ key: e
+ }
+ }, i = 0; i < r.length; i++) {
+ var s = r[i], o = e[i] === qa;
+ if (o)
+ for (var l = 0; l < s.properties.length; l++) {
+ var u = s.properties[l];
+ n[u.name] = u;
+ }
+ }
+ return a[e] = n, n;
+ }, Bt.applyContextStyle = function(t, e, r) {
+ for (var a = this, n = t.diffPropNames, i = {}, s = a.types, o = 0; o < n.length; o++) {
+ var l = n[o], u = e[l], f = r.pstyle(l);
+ if (!u)
+ if (f)
+ f.bypass ? u = {
+ name: l,
+ deleteBypassed: !0
+ } : u = {
+ name: l,
+ delete: !0
+ };
+ else
+ continue;
+ if (f !== u) {
+ if (u.mapped === s.fn && f != null && f.mapping != null && f.mapping.value === u.value) {
+ var h = f.mapping, c = h.fnValue = u.value(r);
+ if (c === h.prevFnValue)
+ continue;
+ }
+ var v = i[l] = {
+ prev: f
+ };
+ a.applyParsedProperty(r, u), v.next = r.pstyle(l), v.next && v.next.bypass && (v.next = v.next.bypassed);
+ }
+ }
+ return {
+ diffProps: i
+ };
+ }, Bt.updateStyleHints = function(t) {
+ var e = t._private, r = this, a = r.propertyGroupNames, n = r.propertyGroupKeys, i = function(Oe, Ie, He) {
+ return r.getPropertiesHash(Oe, Ie, He);
+ }, s = e.styleKey;
+ if (t.removed())
+ return !1;
+ var o = e.group === "nodes", l = t._private.style;
+ a = Object.keys(l);
+ for (var u = 0; u < n.length; u++) {
+ var f = n[u];
+ e.styleKeys[f] = [Qr, Oa];
+ }
+ for (var h = function(Oe, Ie) {
+ return e.styleKeys[Ie][0] = Na(Oe, e.styleKeys[Ie][0]);
+ }, c = function(Oe, Ie) {
+ return e.styleKeys[Ie][1] = Ma(Oe, e.styleKeys[Ie][1]);
+ }, v = function(Oe, Ie) {
+ h(Oe, Ie), c(Oe, Ie);
+ }, d = function(Oe, Ie) {
+ for (var He = 0; He < Oe.length; He++) {
+ var qe = Oe.charCodeAt(He);
+ h(qe, Ie), c(qe, Ie);
+ }
+ }, g = 2e9, y = function(Oe) {
+ return -128 < Oe && Oe < 128 && Math.floor(Oe) !== Oe ? g - (Oe * 1024 | 0) : Oe;
+ }, p = 0; p < a.length; p++) {
+ var m = a[p], b = l[m];
+ if (b != null) {
+ var E = this.properties[m], M = E.type, A = E.groupKey, w = void 0;
+ E.hashOverride != null ? w = E.hashOverride(t, b) : b.pfValue != null && (w = b.pfValue);
+ var I = E.enums == null ? b.value : null, C = w != null, B = I != null, F = C || B, R = b.units;
+ if (M.number && F && !M.multiple) {
+ var X = C ? w : I;
+ v(y(X), A), !C && R != null && d(R, A);
+ } else
+ d(b.strValue, A);
+ }
+ }
+ for (var z = [Qr, Oa], re = 0; re < n.length; re++) {
+ var W = n[re], Z = e.styleKeys[W];
+ z[0] = Na(Z[0], z[0]), z[1] = Ma(Z[1], z[1]);
+ }
+ e.styleKey = Ul(z[0], z[1]);
+ var ie = e.styleKeys;
+ e.labelDimsKey = Er(ie.labelDimensions);
+ var oe = i(t, ["label"], ie.labelDimensions);
+ if (e.labelKey = Er(oe), e.labelStyleKey = Er(hn(ie.commonLabel, oe)), !o) {
+ var ge = i(t, ["source-label"], ie.labelDimensions);
+ e.sourceLabelKey = Er(ge), e.sourceLabelStyleKey = Er(hn(ie.commonLabel, ge));
+ var se = i(t, ["target-label"], ie.labelDimensions);
+ e.targetLabelKey = Er(se), e.targetLabelStyleKey = Er(hn(ie.commonLabel, se));
+ }
+ if (o) {
+ var de = e.styleKeys, we = de.nodeBody, Te = de.nodeBorder, Ee = de.backgroundImage, ye = de.compound, ae = de.pie, xe = [we, Te, Ee, ye, ae].filter(function(Ce) {
+ return Ce != null;
+ }).reduce(hn, [Qr, Oa]);
+ e.nodeKey = Er(xe), e.hasPie = ae != null && ae[0] !== Qr && ae[1] !== Oa;
+ }
+ return s !== e.styleKey;
+ }, Bt.clearStyleHints = function(t) {
+ var e = t._private;
+ e.styleCxtKey = "", e.styleKeys = {}, e.styleKey = null, e.labelKey = null, e.labelStyleKey = null, e.sourceLabelKey = null, e.sourceLabelStyleKey = null, e.targetLabelKey = null, e.targetLabelStyleKey = null, e.nodeKey = null, e.hasPie = null;
+ }, Bt.applyParsedProperty = function(t, e) {
+ var r = this, a = e, n = t._private.style, i, s = r.types, o = r.properties[a.name].type, l = a.bypass, u = n[a.name], f = u && u.bypass, h = t._private, c = "mapping", v = function(we) {
+ return we == null ? null : we.pfValue != null ? we.pfValue : we.value;
+ }, d = function() {
+ var we = v(u), Te = v(a);
+ r.checkTriggers(t, a.name, we, Te);
+ };
+ if (a && a.name.substr(0, 3) === "pie" && ft("The pie style properties are deprecated. Create charts using background images instead."), e.name === "curve-style" && t.isEdge() && // loops must be bundled beziers
+ (e.value !== "bezier" && t.isLoop() || // edges connected to compound nodes can not be haystacks
+ e.value === "haystack" && (t.source().isParent() || t.target().isParent())) && (a = e = this.parse(e.name, "bezier", l)), a.delete)
+ return n[a.name] = void 0, d(), !0;
+ if (a.deleteBypassed)
+ return u ? u.bypass ? (u.bypassed = void 0, d(), !0) : !1 : (d(), !0);
+ if (a.deleteBypass)
+ return u ? u.bypass ? (n[a.name] = u.bypassed, d(), !0) : !1 : (d(), !0);
+ var g = function() {
+ ft("Do not assign mappings to elements without corresponding data (i.e. ele `" + t.id() + "` has no mapping for property `" + a.name + "` with data field `" + a.field + "`); try a `[" + a.field + "]` selector to limit scope to elements with `" + a.field + "` defined");
+ };
+ switch (a.mapped) {
+ case s.mapData: {
+ for (var y = a.field.split("."), p = h.data, m = 0; m < y.length && p; m++) {
+ var b = y[m];
+ p = p[b];
+ }
+ if (p == null)
+ return g(), !1;
+ var E;
+ if (k(p)) {
+ var M = a.fieldMax - a.fieldMin;
+ M === 0 ? E = 0 : E = (p - a.fieldMin) / M;
+ } else
+ return ft("Do not use continuous mappers without specifying numeric data (i.e. `" + a.field + ": " + p + "` for `" + t.id() + "` is non-numeric)"), !1;
+ if (E < 0 ? E = 0 : E > 1 && (E = 1), o.color) {
+ var A = a.valueMin[0], w = a.valueMax[0], I = a.valueMin[1], C = a.valueMax[1], B = a.valueMin[2], F = a.valueMax[2], R = a.valueMin[3] == null ? 1 : a.valueMin[3], X = a.valueMax[3] == null ? 1 : a.valueMax[3], z = [Math.round(A + (w - A) * E), Math.round(I + (C - I) * E), Math.round(B + (F - B) * E), Math.round(R + (X - R) * E)];
+ i = {
+ // colours are simple, so just create the flat property instead of expensive string parsing
+ bypass: a.bypass,
+ // we're a bypass if the mapping property is a bypass
+ name: a.name,
+ value: z,
+ strValue: "rgb(" + z[0] + ", " + z[1] + ", " + z[2] + ")"
+ };
+ } else if (o.number) {
+ var re = a.valueMin + (a.valueMax - a.valueMin) * E;
+ i = this.parse(a.name, re, a.bypass, c);
+ } else
+ return !1;
+ if (!i)
+ return g(), !1;
+ i.mapping = a, a = i;
+ break;
+ }
+ case s.data: {
+ for (var W = a.field.split("."), Z = h.data, ie = 0; ie < W.length && Z; ie++) {
+ var oe = W[ie];
+ Z = Z[oe];
+ }
+ if (Z != null && (i = this.parse(a.name, Z, a.bypass, c)), !i)
+ return g(), !1;
+ i.mapping = a, a = i;
+ break;
+ }
+ case s.fn: {
+ var ge = a.value, se = a.fnValue != null ? a.fnValue : ge(t);
+ if (a.prevFnValue = se, se == null)
+ return ft("Custom function mappers may not return null (i.e. `" + a.name + "` for ele `" + t.id() + "` is null)"), !1;
+ if (i = this.parse(a.name, se, a.bypass, c), !i)
+ return ft("Custom function mappers may not return invalid values for the property type (i.e. `" + a.name + "` for ele `" + t.id() + "` is invalid)"), !1;
+ i.mapping = or(a), a = i;
+ break;
+ }
+ case void 0:
+ break;
+ default:
+ return !1;
+ }
+ return l ? (f ? a.bypassed = u.bypassed : a.bypassed = u, n[a.name] = a) : f ? u.bypassed = a : n[a.name] = a, d(), !0;
+ }, Bt.cleanElements = function(t, e) {
+ for (var r = 0; r < t.length; r++) {
+ var a = t[r];
+ if (this.clearStyleHints(a), a.dirtyCompoundBoundsCache(), a.dirtyBoundingBoxCache(), !e)
+ a._private.style = {};
+ else
+ for (var n = a._private.style, i = Object.keys(n), s = 0; s < i.length; s++) {
+ var o = i[s], l = n[o];
+ l != null && (l.bypass ? l.bypassed = null : n[o] = null);
+ }
+ }
+ }, Bt.update = function() {
+ var t = this._private.cy, e = t.mutableElements();
+ e.updateStyle();
+ }, Bt.updateTransitions = function(t, e) {
+ var r = this, a = t._private, n = t.pstyle("transition-property").value, i = t.pstyle("transition-duration").pfValue, s = t.pstyle("transition-delay").pfValue;
+ if (n.length > 0 && i > 0) {
+ for (var o = {}, l = !1, u = 0; u < n.length; u++) {
+ var f = n[u], h = t.pstyle(f), c = e[f];
+ if (c) {
+ var v = c.prev, d = v, g = c.next != null ? c.next : h, y = !1, p = void 0, m = 1e-6;
+ d && (k(d.pfValue) && k(g.pfValue) ? (y = g.pfValue - d.pfValue, p = d.pfValue + m * y) : k(d.value) && k(g.value) ? (y = g.value - d.value, p = d.value + m * y) : te(d.value) && te(g.value) && (y = d.value[0] !== g.value[0] || d.value[1] !== g.value[1] || d.value[2] !== g.value[2], p = d.strValue), y && (o[f] = g.strValue, this.applyBypass(t, f, p), l = !0));
+ }
+ }
+ if (!l)
+ return;
+ a.transitioning = !0, new ia(function(b) {
+ s > 0 ? t.delayAnimation(s).play().promise().then(b) : b();
+ }).then(function() {
+ return t.animation({
+ style: o,
+ duration: i,
+ easing: t.pstyle("transition-timing-function").value,
+ queue: !1
+ }).play().promise();
+ }).then(function() {
+ r.removeBypasses(t, n), t.emitAndNotify("style"), a.transitioning = !1;
+ });
+ } else
+ a.transitioning && (this.removeBypasses(t, n), t.emitAndNotify("style"), a.transitioning = !1);
+ }, Bt.checkTrigger = function(t, e, r, a, n, i) {
+ var s = this.properties[e], o = n(s);
+ o != null && o(r, a) && i(s);
+ }, Bt.checkZOrderTrigger = function(t, e, r, a) {
+ var n = this;
+ this.checkTrigger(t, e, r, a, function(i) {
+ return i.triggersZOrder;
+ }, function() {
+ n._private.cy.notify("zorder", t);
+ });
+ }, Bt.checkBoundsTrigger = function(t, e, r, a) {
+ this.checkTrigger(t, e, r, a, function(n) {
+ return n.triggersBounds;
+ }, function(n) {
+ t.dirtyCompoundBoundsCache(), t.dirtyBoundingBoxCache(), // only for beziers -- so performance of other edges isn't affected
+ n.triggersBoundsOfParallelBeziers && (e === "curve-style" && (r === "bezier" || a === "bezier") || e === "display" && (r === "none" || a === "none")) && t.parallelEdges().forEach(function(i) {
+ i.isBundledBezier() && i.dirtyBoundingBoxCache();
+ });
+ });
+ }, Bt.checkTriggers = function(t, e, r, a) {
+ t.dirtyStyleCache(), this.checkZOrderTrigger(t, e, r, a), this.checkBoundsTrigger(t, e, r, a);
+ };
+ var Wa = {};
+ Wa.applyBypass = function(t, e, r, a) {
+ var n = this, i = [], s = !0;
+ if (e === "*" || e === "**") {
+ if (r !== void 0)
+ for (var o = 0; o < n.properties.length; o++) {
+ var l = n.properties[o], u = l.name, f = this.parse(u, r, !0);
+ f && i.push(f);
+ }
+ } else if (j(e)) {
+ var h = this.parse(e, r, !0);
+ h && i.push(h);
+ } else if (L(e)) {
+ var c = e;
+ a = r;
+ for (var v = Object.keys(c), d = 0; d < v.length; d++) {
+ var g = v[d], y = c[g];
+ if (y === void 0 && (y = c[pt(g)]), y !== void 0) {
+ var p = this.parse(g, y, !0);
+ p && i.push(p);
+ }
+ }
+ } else
+ return !1;
+ if (i.length === 0)
+ return !1;
+ for (var m = !1, b = 0; b < t.length; b++) {
+ for (var E = t[b], M = {}, A = void 0, w = 0; w < i.length; w++) {
+ var I = i[w];
+ if (a) {
+ var C = E.pstyle(I.name);
+ A = M[I.name] = {
+ prev: C
+ };
+ }
+ m = this.applyParsedProperty(E, or(I)) || m, a && (A.next = E.pstyle(I.name));
+ }
+ m && this.updateStyleHints(E), a && this.updateTransitions(E, M, s);
+ }
+ return m;
+ }, Wa.overrideBypass = function(t, e, r) {
+ e = je(e);
+ for (var a = 0; a < t.length; a++) {
+ var n = t[a], i = n._private.style[e], s = this.properties[e].type, o = s.color, l = s.mutiple, u = i ? i.pfValue != null ? i.pfValue : i.value : null;
+ !i || !i.bypass ? this.applyBypass(n, e, r) : (i.value = r, i.pfValue != null && (i.pfValue = r), o ? i.strValue = "rgb(" + r.join(",") + ")" : l ? i.strValue = r.join(" ") : i.strValue = "" + r, this.updateStyleHints(n)), this.checkTriggers(n, e, u, r);
+ }
+ }, Wa.removeAllBypasses = function(t, e) {
+ return this.removeBypasses(t, this.propertyNames, e);
+ }, Wa.removeBypasses = function(t, e, r) {
+ for (var a = !0, n = 0; n < t.length; n++) {
+ for (var i = t[n], s = {}, o = 0; o < e.length; o++) {
+ var l = e[o], u = this.properties[l], f = i.pstyle(u.name);
+ if (!(!f || !f.bypass)) {
+ var h = "", c = this.parse(l, h, !0), v = s[u.name] = {
+ prev: f
+ };
+ this.applyParsedProperty(i, c), v.next = i.pstyle(u.name);
+ }
+ }
+ this.updateStyleHints(i), r && this.updateTransitions(i, s, a);
+ }
+ };
+ var ki = {};
+ ki.getEmSizeInPixels = function() {
+ var t = this.containerCss("font-size");
+ return t != null ? parseFloat(t) : 1;
+ }, ki.containerCss = function(t) {
+ var e = this._private.cy, r = e.container();
+ if (D && r && D.getComputedStyle)
+ return D.getComputedStyle(r).getPropertyValue(t);
+ };
+ var lr = {};
+ lr.getRenderedStyle = function(t, e) {
+ return e ? this.getStylePropertyValue(t, e, !0) : this.getRawStyle(t, !0);
+ }, lr.getRawStyle = function(t, e) {
+ var r = this;
+ if (t = t[0], t) {
+ for (var a = {}, n = 0; n < r.properties.length; n++) {
+ var i = r.properties[n], s = r.getStylePropertyValue(t, i.name, e);
+ s != null && (a[i.name] = s, a[pt(i.name)] = s);
+ }
+ return a;
+ }
+ }, lr.getIndexedStyle = function(t, e, r, a) {
+ var n = t.pstyle(e)[r][a];
+ return n ?? t.cy().style().getDefaultProperty(e)[r][0];
+ }, lr.getStylePropertyValue = function(t, e, r) {
+ var a = this;
+ if (t = t[0], t) {
+ var n = a.properties[e];
+ n.alias && (n = n.pointsTo);
+ var i = n.type, s = t.pstyle(n.name);
+ if (s) {
+ var o = s.value, l = s.units, u = s.strValue;
+ if (r && i.number && o != null && k(o)) {
+ var f = t.cy().zoom(), h = function(y) {
+ return y * f;
+ }, c = function(y, p) {
+ return h(y) + p;
+ }, v = te(o), d = v ? l.every(function(g) {
+ return g != null;
+ }) : l != null;
+ return d ? v ? o.map(function(g, y) {
+ return c(g, l[y]);
+ }).join(" ") : c(o, l) : v ? o.map(function(g) {
+ return j(g) ? g : "" + h(g);
+ }).join(" ") : "" + h(o);
+ } else if (u != null)
+ return u;
+ }
+ return null;
+ }
+ }, lr.getAnimationStartStyle = function(t, e) {
+ for (var r = {}, a = 0; a < e.length; a++) {
+ var n = e[a], i = n.name, s = t.pstyle(i);
+ s !== void 0 && (L(s) ? s = this.parse(i, s.strValue) : s = this.parse(i, s)), s && (r[i] = s);
+ }
+ return r;
+ }, lr.getPropsList = function(t) {
+ var e = this, r = [], a = t, n = e.properties;
+ if (a)
+ for (var i = Object.keys(a), s = 0; s < i.length; s++) {
+ var o = i[s], l = a[o], u = n[o] || n[je(o)], f = this.parse(u.name, l);
+ f && r.push(f);
+ }
+ return r;
+ }, lr.getNonDefaultPropertiesHash = function(t, e, r) {
+ var a = r.slice(), n, i, s, o, l, u;
+ for (l = 0; l < e.length; l++)
+ if (n = e[l], i = t.pstyle(n, !1), i != null)
+ if (i.pfValue != null)
+ a[0] = Na(o, a[0]), a[1] = Ma(o, a[1]);
+ else
+ for (s = i.strValue, u = 0; u < s.length; u++)
+ o = s.charCodeAt(u), a[0] = Na(o, a[0]), a[1] = Ma(o, a[1]);
+ return a;
+ }, lr.getPropertiesHash = lr.getNonDefaultPropertiesHash;
+ var $n = {};
+ $n.appendFromJson = function(t) {
+ for (var e = this, r = 0; r < t.length; r++) {
+ var a = t[r], n = a.selector, i = a.style || a.css, s = Object.keys(i);
+ e.selector(n);
+ for (var o = 0; o < s.length; o++) {
+ var l = s[o], u = i[l];
+ e.css(l, u);
+ }
+ }
+ return e;
+ }, $n.fromJson = function(t) {
+ var e = this;
+ return e.resetToDefault(), e.appendFromJson(t), e;
+ }, $n.json = function() {
+ for (var t = [], e = this.defaultLength; e < this.length; e++) {
+ for (var r = this[e], a = r.selector, n = r.properties, i = {}, s = 0; s < n.length; s++) {
+ var o = n[s];
+ i[o.name] = o.strValue;
+ }
+ t.push({
+ selector: a ? a.toString() : "core",
+ style: i
+ });
+ }
+ return t;
+ };
+ var Pi = {};
+ Pi.appendFromString = function(t) {
+ var e = this, r = this, a = "" + t, n, i, s;
+ a = a.replace(/[/][*](\s|.)+?[*][/]/g, "");
+ function o() {
+ a.length > n.length ? a = a.substr(n.length) : a = "";
+ }
+ function l() {
+ i.length > s.length ? i = i.substr(s.length) : i = "";
+ }
+ for (; ; ) {
+ var u = a.match(/^\s*$/);
+ if (u)
+ break;
+ var f = a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);
+ if (!f) {
+ ft("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: " + a);
+ break;
+ }
+ n = f[0];
+ var h = f[1];
+ if (h !== "core") {
+ var c = new Dr(h);
+ if (c.invalid) {
+ ft("Skipping parsing of block: Invalid selector found in string stylesheet: " + h), o();
+ continue;
+ }
+ }
+ var v = f[2], d = !1;
+ i = v;
+ for (var g = []; ; ) {
+ var y = i.match(/^\s*$/);
+ if (y)
+ break;
+ var p = i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);
+ if (!p) {
+ ft("Skipping parsing of block: Invalid formatting of style property and value definitions found in:" + v), d = !0;
+ break;
+ }
+ s = p[0];
+ var m = p[1], b = p[2], E = e.properties[m];
+ if (!E) {
+ ft("Skipping property: Invalid property name in: " + s), l();
+ continue;
+ }
+ var M = r.parse(m, b);
+ if (!M) {
+ ft("Skipping property: Invalid property definition in: " + s), l();
+ continue;
+ }
+ g.push({
+ name: m,
+ val: b
+ }), l();
+ }
+ if (d) {
+ o();
+ break;
+ }
+ r.selector(h);
+ for (var A = 0; A < g.length; A++) {
+ var w = g[A];
+ r.css(w.name, w.val);
+ }
+ o();
+ }
+ return r;
+ }, Pi.fromString = function(t) {
+ var e = this;
+ return e.resetToDefault(), e.appendFromString(t), e;
+ };
+ var Nt = {};
+ (function() {
+ var t = vt, e = qt, r = Kr, a = Da, n = jt, i = function(xe) {
+ return "^" + xe + "\\s*\\(\\s*([\\w\\.]+)\\s*\\)$";
+ }, s = function(xe) {
+ var Ce = t + "|\\w+|" + e + "|" + r + "|" + a + "|" + n;
+ return "^" + xe + "\\s*\\(([\\w\\.]+)\\s*\\,\\s*(" + t + ")\\s*\\,\\s*(" + t + ")\\s*,\\s*(" + Ce + ")\\s*\\,\\s*(" + Ce + ")\\)$";
+ }, o = [`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`, "^(none)$", "^(.+)$"];
+ Nt.types = {
+ time: {
+ number: !0,
+ min: 0,
+ units: "s|ms",
+ implicitUnits: "ms"
+ },
+ percent: {
+ number: !0,
+ min: 0,
+ max: 100,
+ units: "%",
+ implicitUnits: "%"
+ },
+ percentages: {
+ number: !0,
+ min: 0,
+ max: 100,
+ units: "%",
+ implicitUnits: "%",
+ multiple: !0
+ },
+ zeroOneNumber: {
+ number: !0,
+ min: 0,
+ max: 1,
+ unitless: !0
+ },
+ zeroOneNumbers: {
+ number: !0,
+ min: 0,
+ max: 1,
+ unitless: !0,
+ multiple: !0
+ },
+ nOneOneNumber: {
+ number: !0,
+ min: -1,
+ max: 1,
+ unitless: !0
+ },
+ nonNegativeInt: {
+ number: !0,
+ min: 0,
+ integer: !0,
+ unitless: !0
+ },
+ position: {
+ enums: ["parent", "origin"]
+ },
+ nodeSize: {
+ number: !0,
+ min: 0,
+ enums: ["label"]
+ },
+ number: {
+ number: !0,
+ unitless: !0
+ },
+ numbers: {
+ number: !0,
+ unitless: !0,
+ multiple: !0
+ },
+ positiveNumber: {
+ number: !0,
+ unitless: !0,
+ min: 0,
+ strictMin: !0
+ },
+ size: {
+ number: !0,
+ min: 0
+ },
+ bidirectionalSize: {
+ number: !0
+ },
+ // allows negative
+ bidirectionalSizeMaybePercent: {
+ number: !0,
+ allowPercent: !0
+ },
+ // allows negative
+ bidirectionalSizes: {
+ number: !0,
+ multiple: !0
+ },
+ // allows negative
+ sizeMaybePercent: {
+ number: !0,
+ min: 0,
+ allowPercent: !0
+ },
+ axisDirection: {
+ enums: ["horizontal", "leftward", "rightward", "vertical", "upward", "downward", "auto"]
+ },
+ paddingRelativeTo: {
+ enums: ["width", "height", "average", "min", "max"]
+ },
+ bgWH: {
+ number: !0,
+ min: 0,
+ allowPercent: !0,
+ enums: ["auto"],
+ multiple: !0
+ },
+ bgPos: {
+ number: !0,
+ allowPercent: !0,
+ multiple: !0
+ },
+ bgRelativeTo: {
+ enums: ["inner", "include-padding"],
+ multiple: !0
+ },
+ bgRepeat: {
+ enums: ["repeat", "repeat-x", "repeat-y", "no-repeat"],
+ multiple: !0
+ },
+ bgFit: {
+ enums: ["none", "contain", "cover"],
+ multiple: !0
+ },
+ bgCrossOrigin: {
+ enums: ["anonymous", "use-credentials"],
+ multiple: !0
+ },
+ bgClip: {
+ enums: ["none", "node"],
+ multiple: !0
+ },
+ bgContainment: {
+ enums: ["inside", "over"],
+ multiple: !0
+ },
+ color: {
+ color: !0
+ },
+ colors: {
+ color: !0,
+ multiple: !0
+ },
+ fill: {
+ enums: ["solid", "linear-gradient", "radial-gradient"]
+ },
+ bool: {
+ enums: ["yes", "no"]
+ },
+ bools: {
+ enums: ["yes", "no"],
+ multiple: !0
+ },
+ lineStyle: {
+ enums: ["solid", "dotted", "dashed"]
+ },
+ lineCap: {
+ enums: ["butt", "round", "square"]
+ },
+ borderStyle: {
+ enums: ["solid", "dotted", "dashed", "double"]
+ },
+ curveStyle: {
+ enums: ["bezier", "unbundled-bezier", "haystack", "segments", "straight", "straight-triangle", "taxi"]
+ },
+ fontFamily: {
+ regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'
+ },
+ fontStyle: {
+ enums: ["italic", "normal", "oblique"]
+ },
+ fontWeight: {
+ enums: ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "800", "900", 100, 200, 300, 400, 500, 600, 700, 800, 900]
+ },
+ textDecoration: {
+ enums: ["none", "underline", "overline", "line-through"]
+ },
+ textTransform: {
+ enums: ["none", "uppercase", "lowercase"]
+ },
+ textWrap: {
+ enums: ["none", "wrap", "ellipsis"]
+ },
+ textOverflowWrap: {
+ enums: ["whitespace", "anywhere"]
+ },
+ textBackgroundShape: {
+ enums: ["rectangle", "roundrectangle", "round-rectangle"]
+ },
+ nodeShape: {
+ enums: ["rectangle", "roundrectangle", "round-rectangle", "cutrectangle", "cut-rectangle", "bottomroundrectangle", "bottom-round-rectangle", "barrel", "ellipse", "triangle", "round-triangle", "square", "pentagon", "round-pentagon", "hexagon", "round-hexagon", "concavehexagon", "concave-hexagon", "heptagon", "round-heptagon", "octagon", "round-octagon", "tag", "round-tag", "star", "diamond", "round-diamond", "vee", "rhomboid", "polygon"]
+ },
+ overlayShape: {
+ enums: ["roundrectangle", "round-rectangle", "ellipse"]
+ },
+ compoundIncludeLabels: {
+ enums: ["include", "exclude"]
+ },
+ arrowShape: {
+ enums: ["tee", "triangle", "triangle-tee", "circle-triangle", "triangle-cross", "triangle-backcurve", "vee", "square", "circle", "diamond", "chevron", "none"]
+ },
+ arrowFill: {
+ enums: ["filled", "hollow"]
+ },
+ display: {
+ enums: ["element", "none"]
+ },
+ visibility: {
+ enums: ["hidden", "visible"]
+ },
+ zCompoundDepth: {
+ enums: ["bottom", "orphan", "auto", "top"]
+ },
+ zIndexCompare: {
+ enums: ["auto", "manual"]
+ },
+ valign: {
+ enums: ["top", "center", "bottom"]
+ },
+ halign: {
+ enums: ["left", "center", "right"]
+ },
+ justification: {
+ enums: ["left", "center", "right", "auto"]
+ },
+ text: {
+ string: !0
+ },
+ data: {
+ mapping: !0,
+ regex: i("data")
+ },
+ layoutData: {
+ mapping: !0,
+ regex: i("layoutData")
+ },
+ scratch: {
+ mapping: !0,
+ regex: i("scratch")
+ },
+ mapData: {
+ mapping: !0,
+ regex: s("mapData")
+ },
+ mapLayoutData: {
+ mapping: !0,
+ regex: s("mapLayoutData")
+ },
+ mapScratch: {
+ mapping: !0,
+ regex: s("mapScratch")
+ },
+ fn: {
+ mapping: !0,
+ fn: !0
+ },
+ url: {
+ regexes: o,
+ singleRegexMatchValue: !0
+ },
+ urls: {
+ regexes: o,
+ singleRegexMatchValue: !0,
+ multiple: !0
+ },
+ propList: {
+ propList: !0
+ },
+ angle: {
+ number: !0,
+ units: "deg|rad",
+ implicitUnits: "rad"
+ },
+ textRotation: {
+ number: !0,
+ units: "deg|rad",
+ implicitUnits: "rad",
+ enums: ["none", "autorotate"]
+ },
+ polygonPointList: {
+ number: !0,
+ multiple: !0,
+ evenMultiple: !0,
+ min: -1,
+ max: 1,
+ unitless: !0
+ },
+ edgeDistances: {
+ enums: ["intersection", "node-position"]
+ },
+ edgeEndpoint: {
+ number: !0,
+ multiple: !0,
+ units: "%|px|em|deg|rad",
+ implicitUnits: "px",
+ enums: ["inside-to-node", "outside-to-node", "outside-to-node-or-label", "outside-to-line", "outside-to-line-or-label"],
+ singleEnum: !0,
+ validate: function(xe, Ce) {
+ switch (xe.length) {
+ case 2:
+ return Ce[0] !== "deg" && Ce[0] !== "rad" && Ce[1] !== "deg" && Ce[1] !== "rad";
+ case 1:
+ return j(xe[0]) || Ce[0] === "deg" || Ce[0] === "rad";
+ default:
+ return !1;
+ }
+ }
+ },
+ easing: {
+ regexes: ["^(spring)\\s*\\(\\s*(" + t + ")\\s*,\\s*(" + t + ")\\s*\\)$", "^(cubic-bezier)\\s*\\(\\s*(" + t + ")\\s*,\\s*(" + t + ")\\s*,\\s*(" + t + ")\\s*,\\s*(" + t + ")\\s*\\)$"],
+ enums: ["linear", "ease", "ease-in", "ease-out", "ease-in-out", "ease-in-sine", "ease-out-sine", "ease-in-out-sine", "ease-in-quad", "ease-out-quad", "ease-in-out-quad", "ease-in-cubic", "ease-out-cubic", "ease-in-out-cubic", "ease-in-quart", "ease-out-quart", "ease-in-out-quart", "ease-in-quint", "ease-out-quint", "ease-in-out-quint", "ease-in-expo", "ease-out-expo", "ease-in-out-expo", "ease-in-circ", "ease-out-circ", "ease-in-out-circ"]
+ },
+ gradientDirection: {
+ enums: [
+ "to-bottom",
+ "to-top",
+ "to-left",
+ "to-right",
+ "to-bottom-right",
+ "to-bottom-left",
+ "to-top-right",
+ "to-top-left",
+ "to-right-bottom",
+ "to-left-bottom",
+ "to-right-top",
+ "to-left-top"
+ // different order
+ ]
+ },
+ boundsExpansion: {
+ number: !0,
+ multiple: !0,
+ min: 0,
+ validate: function(xe) {
+ var Ce = xe.length;
+ return Ce === 1 || Ce === 2 || Ce === 4;
+ }
+ }
+ };
+ var l = {
+ zeroNonZero: function(xe, Ce) {
+ return (xe == null || Ce == null) && xe !== Ce || xe == 0 && Ce != 0 ? !0 : xe != 0 && Ce == 0;
+ },
+ any: function(xe, Ce) {
+ return xe != Ce;
+ },
+ emptyNonEmpty: function(xe, Ce) {
+ var Oe = Pe(xe), Ie = Pe(Ce);
+ return Oe && !Ie || !Oe && Ie;
+ }
+ }, u = Nt.types, f = [{
+ name: "label",
+ type: u.text,
+ triggersBounds: l.any,
+ triggersZOrder: l.emptyNonEmpty
+ }, {
+ name: "text-rotation",
+ type: u.textRotation,
+ triggersBounds: l.any
+ }, {
+ name: "text-margin-x",
+ type: u.bidirectionalSize,
+ triggersBounds: l.any
+ }, {
+ name: "text-margin-y",
+ type: u.bidirectionalSize,
+ triggersBounds: l.any
+ }], h = [{
+ name: "source-label",
+ type: u.text,
+ triggersBounds: l.any
+ }, {
+ name: "source-text-rotation",
+ type: u.textRotation,
+ triggersBounds: l.any
+ }, {
+ name: "source-text-margin-x",
+ type: u.bidirectionalSize,
+ triggersBounds: l.any
+ }, {
+ name: "source-text-margin-y",
+ type: u.bidirectionalSize,
+ triggersBounds: l.any
+ }, {
+ name: "source-text-offset",
+ type: u.size,
+ triggersBounds: l.any
+ }], c = [{
+ name: "target-label",
+ type: u.text,
+ triggersBounds: l.any
+ }, {
+ name: "target-text-rotation",
+ type: u.textRotation,
+ triggersBounds: l.any
+ }, {
+ name: "target-text-margin-x",
+ type: u.bidirectionalSize,
+ triggersBounds: l.any
+ }, {
+ name: "target-text-margin-y",
+ type: u.bidirectionalSize,
+ triggersBounds: l.any
+ }, {
+ name: "target-text-offset",
+ type: u.size,
+ triggersBounds: l.any
+ }], v = [{
+ name: "font-family",
+ type: u.fontFamily,
+ triggersBounds: l.any
+ }, {
+ name: "font-style",
+ type: u.fontStyle,
+ triggersBounds: l.any
+ }, {
+ name: "font-weight",
+ type: u.fontWeight,
+ triggersBounds: l.any
+ }, {
+ name: "font-size",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "text-transform",
+ type: u.textTransform,
+ triggersBounds: l.any
+ }, {
+ name: "text-wrap",
+ type: u.textWrap,
+ triggersBounds: l.any
+ }, {
+ name: "text-overflow-wrap",
+ type: u.textOverflowWrap,
+ triggersBounds: l.any
+ }, {
+ name: "text-max-width",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "text-outline-width",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "line-height",
+ type: u.positiveNumber,
+ triggersBounds: l.any
+ }], d = [{
+ name: "text-valign",
+ type: u.valign,
+ triggersBounds: l.any
+ }, {
+ name: "text-halign",
+ type: u.halign,
+ triggersBounds: l.any
+ }, {
+ name: "color",
+ type: u.color
+ }, {
+ name: "text-outline-color",
+ type: u.color
+ }, {
+ name: "text-outline-opacity",
+ type: u.zeroOneNumber
+ }, {
+ name: "text-background-color",
+ type: u.color
+ }, {
+ name: "text-background-opacity",
+ type: u.zeroOneNumber
+ }, {
+ name: "text-background-padding",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "text-border-opacity",
+ type: u.zeroOneNumber
+ }, {
+ name: "text-border-color",
+ type: u.color
+ }, {
+ name: "text-border-width",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "text-border-style",
+ type: u.borderStyle,
+ triggersBounds: l.any
+ }, {
+ name: "text-background-shape",
+ type: u.textBackgroundShape,
+ triggersBounds: l.any
+ }, {
+ name: "text-justification",
+ type: u.justification
+ }], g = [{
+ name: "events",
+ type: u.bool
+ }, {
+ name: "text-events",
+ type: u.bool
+ }], y = [{
+ name: "display",
+ type: u.display,
+ triggersZOrder: l.any,
+ triggersBounds: l.any,
+ triggersBoundsOfParallelBeziers: !0
+ }, {
+ name: "visibility",
+ type: u.visibility,
+ triggersZOrder: l.any
+ }, {
+ name: "opacity",
+ type: u.zeroOneNumber,
+ triggersZOrder: l.zeroNonZero
+ }, {
+ name: "text-opacity",
+ type: u.zeroOneNumber
+ }, {
+ name: "min-zoomed-font-size",
+ type: u.size
+ }, {
+ name: "z-compound-depth",
+ type: u.zCompoundDepth,
+ triggersZOrder: l.any
+ }, {
+ name: "z-index-compare",
+ type: u.zIndexCompare,
+ triggersZOrder: l.any
+ }, {
+ name: "z-index",
+ type: u.nonNegativeInt,
+ triggersZOrder: l.any
+ }], p = [{
+ name: "overlay-padding",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "overlay-color",
+ type: u.color
+ }, {
+ name: "overlay-opacity",
+ type: u.zeroOneNumber,
+ triggersBounds: l.zeroNonZero
+ }, {
+ name: "overlay-shape",
+ type: u.overlayShape,
+ triggersBounds: l.any
+ }], m = [{
+ name: "underlay-padding",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "underlay-color",
+ type: u.color
+ }, {
+ name: "underlay-opacity",
+ type: u.zeroOneNumber,
+ triggersBounds: l.zeroNonZero
+ }, {
+ name: "underlay-shape",
+ type: u.overlayShape,
+ triggersBounds: l.any
+ }], b = [{
+ name: "transition-property",
+ type: u.propList
+ }, {
+ name: "transition-duration",
+ type: u.time
+ }, {
+ name: "transition-delay",
+ type: u.time
+ }, {
+ name: "transition-timing-function",
+ type: u.easing
+ }], E = function(xe, Ce) {
+ return Ce.value === "label" ? -xe.poolIndex() : Ce.pfValue;
+ }, M = [{
+ name: "height",
+ type: u.nodeSize,
+ triggersBounds: l.any,
+ hashOverride: E
+ }, {
+ name: "width",
+ type: u.nodeSize,
+ triggersBounds: l.any,
+ hashOverride: E
+ }, {
+ name: "shape",
+ type: u.nodeShape,
+ triggersBounds: l.any
+ }, {
+ name: "shape-polygon-points",
+ type: u.polygonPointList,
+ triggersBounds: l.any
+ }, {
+ name: "background-color",
+ type: u.color
+ }, {
+ name: "background-fill",
+ type: u.fill
+ }, {
+ name: "background-opacity",
+ type: u.zeroOneNumber
+ }, {
+ name: "background-blacken",
+ type: u.nOneOneNumber
+ }, {
+ name: "background-gradient-stop-colors",
+ type: u.colors
+ }, {
+ name: "background-gradient-stop-positions",
+ type: u.percentages
+ }, {
+ name: "background-gradient-direction",
+ type: u.gradientDirection
+ }, {
+ name: "padding",
+ type: u.sizeMaybePercent,
+ triggersBounds: l.any
+ }, {
+ name: "padding-relative-to",
+ type: u.paddingRelativeTo,
+ triggersBounds: l.any
+ }, {
+ name: "bounds-expansion",
+ type: u.boundsExpansion,
+ triggersBounds: l.any
+ }], A = [{
+ name: "border-color",
+ type: u.color
+ }, {
+ name: "border-opacity",
+ type: u.zeroOneNumber
+ }, {
+ name: "border-width",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "border-style",
+ type: u.borderStyle
+ }], w = [{
+ name: "background-image",
+ type: u.urls
+ }, {
+ name: "background-image-crossorigin",
+ type: u.bgCrossOrigin
+ }, {
+ name: "background-image-opacity",
+ type: u.zeroOneNumbers
+ }, {
+ name: "background-image-containment",
+ type: u.bgContainment
+ }, {
+ name: "background-image-smoothing",
+ type: u.bools
+ }, {
+ name: "background-position-x",
+ type: u.bgPos
+ }, {
+ name: "background-position-y",
+ type: u.bgPos
+ }, {
+ name: "background-width-relative-to",
+ type: u.bgRelativeTo
+ }, {
+ name: "background-height-relative-to",
+ type: u.bgRelativeTo
+ }, {
+ name: "background-repeat",
+ type: u.bgRepeat
+ }, {
+ name: "background-fit",
+ type: u.bgFit
+ }, {
+ name: "background-clip",
+ type: u.bgClip
+ }, {
+ name: "background-width",
+ type: u.bgWH
+ }, {
+ name: "background-height",
+ type: u.bgWH
+ }, {
+ name: "background-offset-x",
+ type: u.bgPos
+ }, {
+ name: "background-offset-y",
+ type: u.bgPos
+ }], I = [{
+ name: "position",
+ type: u.position,
+ triggersBounds: l.any
+ }, {
+ name: "compound-sizing-wrt-labels",
+ type: u.compoundIncludeLabels,
+ triggersBounds: l.any
+ }, {
+ name: "min-width",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "min-width-bias-left",
+ type: u.sizeMaybePercent,
+ triggersBounds: l.any
+ }, {
+ name: "min-width-bias-right",
+ type: u.sizeMaybePercent,
+ triggersBounds: l.any
+ }, {
+ name: "min-height",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "min-height-bias-top",
+ type: u.sizeMaybePercent,
+ triggersBounds: l.any
+ }, {
+ name: "min-height-bias-bottom",
+ type: u.sizeMaybePercent,
+ triggersBounds: l.any
+ }], C = [{
+ name: "line-style",
+ type: u.lineStyle
+ }, {
+ name: "line-color",
+ type: u.color
+ }, {
+ name: "line-fill",
+ type: u.fill
+ }, {
+ name: "line-cap",
+ type: u.lineCap
+ }, {
+ name: "line-opacity",
+ type: u.zeroOneNumber
+ }, {
+ name: "line-dash-pattern",
+ type: u.numbers
+ }, {
+ name: "line-dash-offset",
+ type: u.number
+ }, {
+ name: "line-gradient-stop-colors",
+ type: u.colors
+ }, {
+ name: "line-gradient-stop-positions",
+ type: u.percentages
+ }, {
+ name: "curve-style",
+ type: u.curveStyle,
+ triggersBounds: l.any,
+ triggersBoundsOfParallelBeziers: !0
+ }, {
+ name: "haystack-radius",
+ type: u.zeroOneNumber,
+ triggersBounds: l.any
+ }, {
+ name: "source-endpoint",
+ type: u.edgeEndpoint,
+ triggersBounds: l.any
+ }, {
+ name: "target-endpoint",
+ type: u.edgeEndpoint,
+ triggersBounds: l.any
+ }, {
+ name: "control-point-step-size",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "control-point-distances",
+ type: u.bidirectionalSizes,
+ triggersBounds: l.any
+ }, {
+ name: "control-point-weights",
+ type: u.numbers,
+ triggersBounds: l.any
+ }, {
+ name: "segment-distances",
+ type: u.bidirectionalSizes,
+ triggersBounds: l.any
+ }, {
+ name: "segment-weights",
+ type: u.numbers,
+ triggersBounds: l.any
+ }, {
+ name: "taxi-turn",
+ type: u.bidirectionalSizeMaybePercent,
+ triggersBounds: l.any
+ }, {
+ name: "taxi-turn-min-distance",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "taxi-direction",
+ type: u.axisDirection,
+ triggersBounds: l.any
+ }, {
+ name: "edge-distances",
+ type: u.edgeDistances,
+ triggersBounds: l.any
+ }, {
+ name: "arrow-scale",
+ type: u.positiveNumber,
+ triggersBounds: l.any
+ }, {
+ name: "loop-direction",
+ type: u.angle,
+ triggersBounds: l.any
+ }, {
+ name: "loop-sweep",
+ type: u.angle,
+ triggersBounds: l.any
+ }, {
+ name: "source-distance-from-node",
+ type: u.size,
+ triggersBounds: l.any
+ }, {
+ name: "target-distance-from-node",
+ type: u.size,
+ triggersBounds: l.any
+ }], B = [{
+ name: "ghost",
+ type: u.bool,
+ triggersBounds: l.any
+ }, {
+ name: "ghost-offset-x",
+ type: u.bidirectionalSize,
+ triggersBounds: l.any
+ }, {
+ name: "ghost-offset-y",
+ type: u.bidirectionalSize,
+ triggersBounds: l.any
+ }, {
+ name: "ghost-opacity",
+ type: u.zeroOneNumber
+ }], F = [{
+ name: "selection-box-color",
+ type: u.color
+ }, {
+ name: "selection-box-opacity",
+ type: u.zeroOneNumber
+ }, {
+ name: "selection-box-border-color",
+ type: u.color
+ }, {
+ name: "selection-box-border-width",
+ type: u.size
+ }, {
+ name: "active-bg-color",
+ type: u.color
+ }, {
+ name: "active-bg-opacity",
+ type: u.zeroOneNumber
+ }, {
+ name: "active-bg-size",
+ type: u.size
+ }, {
+ name: "outside-texture-bg-color",
+ type: u.color
+ }, {
+ name: "outside-texture-bg-opacity",
+ type: u.zeroOneNumber
+ }], R = [];
+ Nt.pieBackgroundN = 16, R.push({
+ name: "pie-size",
+ type: u.sizeMaybePercent
+ });
+ for (var X = 1; X <= Nt.pieBackgroundN; X++)
+ R.push({
+ name: "pie-" + X + "-background-color",
+ type: u.color
+ }), R.push({
+ name: "pie-" + X + "-background-size",
+ type: u.percent
+ }), R.push({
+ name: "pie-" + X + "-background-opacity",
+ type: u.zeroOneNumber
+ });
+ var z = [], re = Nt.arrowPrefixes = ["source", "mid-source", "target", "mid-target"];
+ [{
+ name: "arrow-shape",
+ type: u.arrowShape,
+ triggersBounds: l.any
+ }, {
+ name: "arrow-color",
+ type: u.color
+ }, {
+ name: "arrow-fill",
+ type: u.arrowFill
+ }].forEach(function(ae) {
+ re.forEach(function(xe) {
+ var Ce = xe + "-" + ae.name, Oe = ae.type, Ie = ae.triggersBounds;
+ z.push({
+ name: Ce,
+ type: Oe,
+ triggersBounds: Ie
+ });
+ });
+ }, {});
+ var W = Nt.properties = [].concat(g, b, y, p, m, B, d, v, f, h, c, M, A, w, R, I, C, z, F), Z = Nt.propertyGroups = {
+ // common to all eles
+ behavior: g,
+ transition: b,
+ visibility: y,
+ overlay: p,
+ underlay: m,
+ ghost: B,
+ // labels
+ commonLabel: d,
+ labelDimensions: v,
+ mainLabel: f,
+ sourceLabel: h,
+ targetLabel: c,
+ // node props
+ nodeBody: M,
+ nodeBorder: A,
+ backgroundImage: w,
+ pie: R,
+ compound: I,
+ // edge props
+ edgeLine: C,
+ edgeArrow: z,
+ core: F
+ }, ie = Nt.propertyGroupNames = {}, oe = Nt.propertyGroupKeys = Object.keys(Z);
+ oe.forEach(function(ae) {
+ ie[ae] = Z[ae].map(function(xe) {
+ return xe.name;
+ }), Z[ae].forEach(function(xe) {
+ return xe.groupKey = ae;
+ });
+ });
+ var ge = Nt.aliases = [{
+ name: "content",
+ pointsTo: "label"
+ }, {
+ name: "control-point-distance",
+ pointsTo: "control-point-distances"
+ }, {
+ name: "control-point-weight",
+ pointsTo: "control-point-weights"
+ }, {
+ name: "edge-text-rotation",
+ pointsTo: "text-rotation"
+ }, {
+ name: "padding-left",
+ pointsTo: "padding"
+ }, {
+ name: "padding-right",
+ pointsTo: "padding"
+ }, {
+ name: "padding-top",
+ pointsTo: "padding"
+ }, {
+ name: "padding-bottom",
+ pointsTo: "padding"
+ }];
+ Nt.propertyNames = W.map(function(ae) {
+ return ae.name;
+ });
+ for (var se = 0; se < W.length; se++) {
+ var de = W[se];
+ W[de.name] = de;
+ }
+ for (var we = 0; we < ge.length; we++) {
+ var Te = ge[we], Ee = W[Te.pointsTo], ye = {
+ name: Te.name,
+ alias: !0,
+ pointsTo: Ee
+ };
+ W.push(ye), W[Te.name] = ye;
+ }
+ })(), Nt.getDefaultProperty = function(t) {
+ return this.getDefaultProperties()[t];
+ }, Nt.getDefaultProperties = function() {
+ var t = this._private;
+ if (t.defaultProperties != null)
+ return t.defaultProperties;
+ for (var e = Ue({
+ // core props
+ "selection-box-color": "#ddd",
+ "selection-box-opacity": 0.65,
+ "selection-box-border-color": "#aaa",
+ "selection-box-border-width": 1,
+ "active-bg-color": "black",
+ "active-bg-opacity": 0.15,
+ "active-bg-size": 30,
+ "outside-texture-bg-color": "#000",
+ "outside-texture-bg-opacity": 0.125,
+ // common node/edge props
+ events: "yes",
+ "text-events": "no",
+ "text-valign": "top",
+ "text-halign": "center",
+ "text-justification": "auto",
+ "line-height": 1,
+ color: "#000",
+ "text-outline-color": "#000",
+ "text-outline-width": 0,
+ "text-outline-opacity": 1,
+ "text-opacity": 1,
+ "text-decoration": "none",
+ "text-transform": "none",
+ "text-wrap": "none",
+ "text-overflow-wrap": "whitespace",
+ "text-max-width": 9999,
+ "text-background-color": "#000",
+ "text-background-opacity": 0,
+ "text-background-shape": "rectangle",
+ "text-background-padding": 0,
+ "text-border-opacity": 0,
+ "text-border-width": 0,
+ "text-border-style": "solid",
+ "text-border-color": "#000",
+ "font-family": "Helvetica Neue, Helvetica, sans-serif",
+ "font-style": "normal",
+ "font-weight": "normal",
+ "font-size": 16,
+ "min-zoomed-font-size": 0,
+ "text-rotation": "none",
+ "source-text-rotation": "none",
+ "target-text-rotation": "none",
+ visibility: "visible",
+ display: "element",
+ opacity: 1,
+ "z-compound-depth": "auto",
+ "z-index-compare": "auto",
+ "z-index": 0,
+ label: "",
+ "text-margin-x": 0,
+ "text-margin-y": 0,
+ "source-label": "",
+ "source-text-offset": 0,
+ "source-text-margin-x": 0,
+ "source-text-margin-y": 0,
+ "target-label": "",
+ "target-text-offset": 0,
+ "target-text-margin-x": 0,
+ "target-text-margin-y": 0,
+ "overlay-opacity": 0,
+ "overlay-color": "#000",
+ "overlay-padding": 10,
+ "overlay-shape": "round-rectangle",
+ "underlay-opacity": 0,
+ "underlay-color": "#000",
+ "underlay-padding": 10,
+ "underlay-shape": "round-rectangle",
+ "transition-property": "none",
+ "transition-duration": 0,
+ "transition-delay": 0,
+ "transition-timing-function": "linear",
+ // node props
+ "background-blacken": 0,
+ "background-color": "#999",
+ "background-fill": "solid",
+ "background-opacity": 1,
+ "background-image": "none",
+ "background-image-crossorigin": "anonymous",
+ "background-image-opacity": 1,
+ "background-image-containment": "inside",
+ "background-image-smoothing": "yes",
+ "background-position-x": "50%",
+ "background-position-y": "50%",
+ "background-offset-x": 0,
+ "background-offset-y": 0,
+ "background-width-relative-to": "include-padding",
+ "background-height-relative-to": "include-padding",
+ "background-repeat": "no-repeat",
+ "background-fit": "none",
+ "background-clip": "node",
+ "background-width": "auto",
+ "background-height": "auto",
+ "border-color": "#000",
+ "border-opacity": 1,
+ "border-width": 0,
+ "border-style": "solid",
+ height: 30,
+ width: 30,
+ shape: "ellipse",
+ "shape-polygon-points": "-1, -1, 1, -1, 1, 1, -1, 1",
+ "bounds-expansion": 0,
+ // node gradient
+ "background-gradient-direction": "to-bottom",
+ "background-gradient-stop-colors": "#999",
+ "background-gradient-stop-positions": "0%",
+ // ghost props
+ ghost: "no",
+ "ghost-offset-y": 0,
+ "ghost-offset-x": 0,
+ "ghost-opacity": 0,
+ // compound props
+ padding: 0,
+ "padding-relative-to": "width",
+ position: "origin",
+ "compound-sizing-wrt-labels": "include",
+ "min-width": 0,
+ "min-width-bias-left": 0,
+ "min-width-bias-right": 0,
+ "min-height": 0,
+ "min-height-bias-top": 0,
+ "min-height-bias-bottom": 0
+ }, {
+ // node pie bg
+ "pie-size": "100%"
+ }, [{
+ name: "pie-{{i}}-background-color",
+ value: "black"
+ }, {
+ name: "pie-{{i}}-background-size",
+ value: "0%"
+ }, {
+ name: "pie-{{i}}-background-opacity",
+ value: 1
+ }].reduce(function(l, u) {
+ for (var f = 1; f <= Nt.pieBackgroundN; f++) {
+ var h = u.name.replace("{{i}}", f), c = u.value;
+ l[h] = c;
+ }
+ return l;
+ }, {}), {
+ // edge props
+ "line-style": "solid",
+ "line-color": "#999",
+ "line-fill": "solid",
+ "line-cap": "butt",
+ "line-opacity": 1,
+ "line-gradient-stop-colors": "#999",
+ "line-gradient-stop-positions": "0%",
+ "control-point-step-size": 40,
+ "control-point-weights": 0.5,
+ "segment-weights": 0.5,
+ "segment-distances": 20,
+ "taxi-turn": "50%",
+ "taxi-turn-min-distance": 10,
+ "taxi-direction": "auto",
+ "edge-distances": "intersection",
+ "curve-style": "haystack",
+ "haystack-radius": 0,
+ "arrow-scale": 1,
+ "loop-direction": "-45deg",
+ "loop-sweep": "-90deg",
+ "source-distance-from-node": 0,
+ "target-distance-from-node": 0,
+ "source-endpoint": "outside-to-node",
+ "target-endpoint": "outside-to-node",
+ "line-dash-pattern": [6, 3],
+ "line-dash-offset": 0
+ }, [{
+ name: "arrow-shape",
+ value: "none"
+ }, {
+ name: "arrow-color",
+ value: "#999"
+ }, {
+ name: "arrow-fill",
+ value: "filled"
+ }].reduce(function(l, u) {
+ return Nt.arrowPrefixes.forEach(function(f) {
+ var h = f + "-" + u.name, c = u.value;
+ l[h] = c;
+ }), l;
+ }, {})), r = {}, a = 0; a < this.properties.length; a++) {
+ var n = this.properties[a];
+ if (!n.pointsTo) {
+ var i = n.name, s = e[i], o = this.parse(i, s);
+ r[i] = o;
+ }
+ }
+ return t.defaultProperties = r, t.defaultProperties;
+ }, Nt.addDefaultStylesheet = function() {
+ this.selector(":parent").css({
+ shape: "rectangle",
+ padding: 10,
+ "background-color": "#eee",
+ "border-color": "#ccc",
+ "border-width": 1
+ }).selector("edge").css({
+ width: 3
+ }).selector(":loop").css({
+ "curve-style": "bezier"
+ }).selector("edge:compound").css({
+ "curve-style": "bezier",
+ "source-endpoint": "outside-to-line",
+ "target-endpoint": "outside-to-line"
+ }).selector(":selected").css({
+ "background-color": "#0169D9",
+ "line-color": "#0169D9",
+ "source-arrow-color": "#0169D9",
+ "target-arrow-color": "#0169D9",
+ "mid-source-arrow-color": "#0169D9",
+ "mid-target-arrow-color": "#0169D9"
+ }).selector(":parent:selected").css({
+ "background-color": "#CCE1F9",
+ "border-color": "#aec8e5"
+ }).selector(":active").css({
+ "overlay-color": "black",
+ "overlay-padding": 10,
+ "overlay-opacity": 0.25
+ }), this.defaultLength = this.length;
+ };
+ var Vn = {};
+ Vn.parse = function(t, e, r, a) {
+ var n = this;
+ if (Y(e))
+ return n.parseImplWarn(t, e, r, a);
+ var i = a === "mapping" || a === !0 || a === !1 || a == null ? "dontcare" : a, s = r ? "t" : "f", o = "" + e, l = hs(t, o, s, i), u = n.propCache = n.propCache || [], f;
+ return (f = u[l]) || (f = u[l] = n.parseImplWarn(t, e, r, a)), (r || a === "mapping") && (f = or(f), f && (f.value = or(f.value))), f;
+ }, Vn.parseImplWarn = function(t, e, r, a) {
+ var n = this.parseImpl(t, e, r, a);
+ return !n && e != null && ft("The style property `".concat(t, ": ").concat(e, "` is invalid")), n && (n.name === "width" || n.name === "height") && e === "label" && ft("The style value of `label` is deprecated for `" + n.name + "`"), n;
+ }, Vn.parseImpl = function(t, e, r, a) {
+ var n = this;
+ t = je(t);
+ var i = n.properties[t], s = e, o = n.types;
+ if (!i || e === void 0)
+ return null;
+ i.alias && (i = i.pointsTo, t = i.name);
+ var l = j(e);
+ l && (e = e.trim());
+ var u = i.type;
+ if (!u)
+ return null;
+ if (r && (e === "" || e === null))
+ return {
+ name: t,
+ value: e,
+ bypass: !0,
+ deleteBypass: !0
+ };
+ if (Y(e))
+ return {
+ name: t,
+ value: e,
+ strValue: "fn",
+ mapped: o.fn,
+ bypass: r
+ };
+ var f, h;
+ if (!(!l || a || e.length < 7 || e[1] !== "a")) {
+ if (e.length >= 7 && e[0] === "d" && (f = new RegExp(o.data.regex).exec(e))) {
+ if (r)
+ return !1;
+ var c = o.data;
+ return {
+ name: t,
+ value: f,
+ strValue: "" + e,
+ mapped: c,
+ field: f[1],
+ bypass: r
+ };
+ } else if (e.length >= 10 && e[0] === "m" && (h = new RegExp(o.mapData.regex).exec(e))) {
+ if (r || u.multiple)
+ return !1;
+ var v = o.mapData;
+ if (!(u.color || u.number))
+ return !1;
+ var d = this.parse(t, h[4]);
+ if (!d || d.mapped)
+ return !1;
+ var g = this.parse(t, h[5]);
+ if (!g || g.mapped)
+ return !1;
+ if (d.pfValue === g.pfValue || d.strValue === g.strValue)
+ return ft("`" + t + ": " + e + "` is not a valid mapper because the output range is zero; converting to `" + t + ": " + d.strValue + "`"), this.parse(t, d.strValue);
+ if (u.color) {
+ var y = d.value, p = g.value, m = y[0] === p[0] && y[1] === p[1] && y[2] === p[2] && // optional alpha
+ (y[3] === p[3] || (y[3] == null || y[3] === 1) && (p[3] == null || p[3] === 1));
+ if (m)
+ return !1;
+ }
+ return {
+ name: t,
+ value: h,
+ strValue: "" + e,
+ mapped: v,
+ field: h[1],
+ fieldMin: parseFloat(h[2]),
+ // min & max are numeric
+ fieldMax: parseFloat(h[3]),
+ valueMin: d.value,
+ valueMax: g.value,
+ bypass: r
+ };
+ }
+ }
+ if (u.multiple && a !== "multiple") {
+ var b;
+ if (l ? b = e.split(/\s+/) : te(e) ? b = e : b = [e], u.evenMultiple && b.length % 2 !== 0)
+ return null;
+ for (var E = [], M = [], A = [], w = "", I = !1, C = 0; C < b.length; C++) {
+ var B = n.parse(t, b[C], r, "multiple");
+ I = I || j(B.value), E.push(B.value), A.push(B.pfValue != null ? B.pfValue : B.value), M.push(B.units), w += (C > 0 ? " " : "") + B.strValue;
+ }
+ return u.validate && !u.validate(E, M) ? null : u.singleEnum && I ? E.length === 1 && j(E[0]) ? {
+ name: t,
+ value: E[0],
+ strValue: E[0],
+ bypass: r
+ } : null : {
+ name: t,
+ value: E,
+ pfValue: A,
+ strValue: w,
+ bypass: r,
+ units: M
+ };
+ }
+ var F = function() {
+ for (var Ce = 0; Ce < u.enums.length; Ce++) {
+ var Oe = u.enums[Ce];
+ if (Oe === e)
+ return {
+ name: t,
+ value: e,
+ strValue: "" + e,
+ bypass: r
+ };
+ }
+ return null;
+ };
+ if (u.number) {
+ var R, X = "px";
+ if (u.units && (R = u.units), u.implicitUnits && (X = u.implicitUnits), !u.unitless)
+ if (l) {
+ var z = "px|em" + (u.allowPercent ? "|\\%" : "");
+ R && (z = R);
+ var re = e.match("^(" + vt + ")(" + z + ")?$");
+ re && (e = re[1], R = re[2] || X);
+ } else
+ (!R || u.implicitUnits) && (R = X);
+ if (e = parseFloat(e), isNaN(e) && u.enums === void 0)
+ return null;
+ if (isNaN(e) && u.enums !== void 0)
+ return e = s, F();
+ if (u.integer && !q(e) || u.min !== void 0 && (e < u.min || u.strictMin && e === u.min) || u.max !== void 0 && (e > u.max || u.strictMax && e === u.max))
+ return null;
+ var W = {
+ name: t,
+ value: e,
+ strValue: "" + e + (R || ""),
+ units: R,
+ bypass: r
+ };
+ return u.unitless || R !== "px" && R !== "em" ? W.pfValue = e : W.pfValue = R === "px" || !R ? e : this.getEmSizeInPixels() * e, (R === "ms" || R === "s") && (W.pfValue = R === "ms" ? e : 1e3 * e), (R === "deg" || R === "rad") && (W.pfValue = R === "rad" ? e : Ef(e)), R === "%" && (W.pfValue = e / 100), W;
+ } else if (u.propList) {
+ var Z = [], ie = "" + e;
+ if (ie !== "none") {
+ for (var oe = ie.split(/\s*,\s*|\s+/), ge = 0; ge < oe.length; ge++) {
+ var se = oe[ge].trim();
+ n.properties[se] ? Z.push(se) : ft("`" + se + "` is not a valid property name");
+ }
+ if (Z.length === 0)
+ return null;
+ }
+ return {
+ name: t,
+ value: Z,
+ strValue: Z.length === 0 ? "none" : Z.join(" "),
+ bypass: r
+ };
+ } else if (u.color) {
+ var de = rl(e);
+ return de ? {
+ name: t,
+ value: de,
+ pfValue: de,
+ strValue: "rgb(" + de[0] + "," + de[1] + "," + de[2] + ")",
+ // n.b. no spaces b/c of multiple support
+ bypass: r
+ } : null;
+ } else if (u.regex || u.regexes) {
+ if (u.enums) {
+ var we = F();
+ if (we)
+ return we;
+ }
+ for (var Te = u.regexes ? u.regexes : [u.regex], Ee = 0; Ee < Te.length; Ee++) {
+ var ye = new RegExp(Te[Ee]), ae = ye.exec(e);
+ if (ae)
+ return {
+ name: t,
+ value: u.singleRegexMatchValue ? ae[1] : ae,
+ strValue: "" + e,
+ bypass: r
+ };
+ }
+ return null;
+ } else
+ return u.string ? {
+ name: t,
+ value: "" + e,
+ strValue: "" + e,
+ bypass: r
+ } : u.enums ? F() : null;
+ };
+ var Ft = function t(e) {
+ if (!(this instanceof t))
+ return new t(e);
+ if (!_e(e)) {
+ xt("A style must have a core reference");
+ return;
+ }
+ this._private = {
+ cy: e,
+ coreStyle: {}
+ }, this.length = 0, this.resetToDefault();
+ }, zt = Ft.prototype;
+ zt.instanceString = function() {
+ return "style";
+ }, zt.clear = function() {
+ for (var t = this._private, e = t.cy, r = e.elements(), a = 0; a < this.length; a++)
+ this[a] = void 0;
+ return this.length = 0, t.contextStyles = {}, t.propDiffs = {}, this.cleanElements(r, !0), r.forEach(function(n) {
+ var i = n[0]._private;
+ i.styleDirty = !0, i.appliedInitStyle = !1;
+ }), this;
+ }, zt.resetToDefault = function() {
+ return this.clear(), this.addDefaultStylesheet(), this;
+ }, zt.core = function(t) {
+ return this._private.coreStyle[t] || this.getDefaultProperty(t);
+ }, zt.selector = function(t) {
+ var e = t === "core" ? null : new Dr(t), r = this.length++;
+ return this[r] = {
+ selector: e,
+ properties: [],
+ mappedProperties: [],
+ index: r
+ }, this;
+ }, zt.css = function() {
+ var t = this, e = arguments;
+ if (e.length === 1)
+ for (var r = e[0], a = 0; a < t.properties.length; a++) {
+ var n = t.properties[a], i = r[n.name];
+ i === void 0 && (i = r[pt(n.name)]), i !== void 0 && this.cssRule(n.name, i);
+ }
+ else
+ e.length === 2 && this.cssRule(e[0], e[1]);
+ return this;
+ }, zt.style = zt.css, zt.cssRule = function(t, e) {
+ var r = this.parse(t, e);
+ if (r) {
+ var a = this.length - 1;
+ this[a].properties.push(r), this[a].properties[r.name] = r, r.name.match(/pie-(\d+)-background-size/) && r.value && (this._private.hasPie = !0), r.mapped && this[a].mappedProperties.push(r);
+ var n = !this[a].selector;
+ n && (this._private.coreStyle[r.name] = r);
+ }
+ return this;
+ }, zt.append = function(t) {
+ return tt(t) ? t.appendToStyle(this) : te(t) ? this.appendFromJson(t) : j(t) && this.appendFromString(t), this;
+ }, Ft.fromJson = function(t, e) {
+ var r = new Ft(t);
+ return r.fromJson(e), r;
+ }, Ft.fromString = function(t, e) {
+ return new Ft(t).fromString(e);
+ }, [Bt, Wa, ki, lr, $n, Pi, Nt, Vn].forEach(function(t) {
+ Ue(zt, t);
+ }), Ft.types = zt.types, Ft.properties = zt.properties, Ft.propertyGroups = zt.propertyGroups, Ft.propertyGroupNames = zt.propertyGroupNames, Ft.propertyGroupKeys = zt.propertyGroupKeys;
+ var Gd = {
+ style: function(e) {
+ if (e) {
+ var r = this.setStyle(e);
+ r.update();
+ }
+ return this._private.style;
+ },
+ setStyle: function(e) {
+ var r = this._private;
+ return tt(e) ? r.style = e.generateStyle(this) : te(e) ? r.style = Ft.fromJson(this, e) : j(e) ? r.style = Ft.fromString(this, e) : r.style = Ft(this), r.style;
+ },
+ // e.g. cy.data() changed => recalc ele mappers
+ updateStyle: function() {
+ this.mutableElements().updateStyle();
+ }
+ }, $d = "single", $r = {
+ autolock: function(e) {
+ if (e !== void 0)
+ this._private.autolock = !!e;
+ else
+ return this._private.autolock;
+ return this;
+ },
+ autoungrabify: function(e) {
+ if (e !== void 0)
+ this._private.autoungrabify = !!e;
+ else
+ return this._private.autoungrabify;
+ return this;
+ },
+ autounselectify: function(e) {
+ if (e !== void 0)
+ this._private.autounselectify = !!e;
+ else
+ return this._private.autounselectify;
+ return this;
+ },
+ selectionType: function(e) {
+ var r = this._private;
+ if (r.selectionType == null && (r.selectionType = $d), e !== void 0)
+ (e === "additive" || e === "single") && (r.selectionType = e);
+ else
+ return r.selectionType;
+ return this;
+ },
+ panningEnabled: function(e) {
+ if (e !== void 0)
+ this._private.panningEnabled = !!e;
+ else
+ return this._private.panningEnabled;
+ return this;
+ },
+ userPanningEnabled: function(e) {
+ if (e !== void 0)
+ this._private.userPanningEnabled = !!e;
+ else
+ return this._private.userPanningEnabled;
+ return this;
+ },
+ zoomingEnabled: function(e) {
+ if (e !== void 0)
+ this._private.zoomingEnabled = !!e;
+ else
+ return this._private.zoomingEnabled;
+ return this;
+ },
+ userZoomingEnabled: function(e) {
+ if (e !== void 0)
+ this._private.userZoomingEnabled = !!e;
+ else
+ return this._private.userZoomingEnabled;
+ return this;
+ },
+ boxSelectionEnabled: function(e) {
+ if (e !== void 0)
+ this._private.boxSelectionEnabled = !!e;
+ else
+ return this._private.boxSelectionEnabled;
+ return this;
+ },
+ pan: function() {
+ var e = arguments, r = this._private.pan, a, n, i, s, o;
+ switch (e.length) {
+ case 0:
+ return r;
+ case 1:
+ if (j(e[0]))
+ return a = e[0], r[a];
+ if (L(e[0])) {
+ if (!this._private.panningEnabled)
+ return this;
+ i = e[0], s = i.x, o = i.y, k(s) && (r.x = s), k(o) && (r.y = o), this.emit("pan viewport");
+ }
+ break;
+ case 2:
+ if (!this._private.panningEnabled)
+ return this;
+ a = e[0], n = e[1], (a === "x" || a === "y") && k(n) && (r[a] = n), this.emit("pan viewport");
+ break;
+ }
+ return this.notify("viewport"), this;
+ },
+ panBy: function(e, r) {
+ var a = arguments, n = this._private.pan, i, s, o, l, u;
+ if (!this._private.panningEnabled)
+ return this;
+ switch (a.length) {
+ case 1:
+ L(e) && (o = a[0], l = o.x, u = o.y, k(l) && (n.x += l), k(u) && (n.y += u), this.emit("pan viewport"));
+ break;
+ case 2:
+ i = e, s = r, (i === "x" || i === "y") && k(s) && (n[i] += s), this.emit("pan viewport");
+ break;
+ }
+ return this.notify("viewport"), this;
+ },
+ fit: function(e, r) {
+ var a = this.getFitViewport(e, r);
+ if (a) {
+ var n = this._private;
+ n.zoom = a.zoom, n.pan = a.pan, this.emit("pan zoom viewport"), this.notify("viewport");
+ }
+ return this;
+ },
+ getFitViewport: function(e, r) {
+ if (k(e) && r === void 0 && (r = e, e = void 0), !(!this._private.panningEnabled || !this._private.zoomingEnabled)) {
+ var a;
+ if (j(e)) {
+ var n = e;
+ e = this.$(n);
+ } else if (Xe(e)) {
+ var i = e;
+ a = {
+ x1: i.x1,
+ y1: i.y1,
+ x2: i.x2,
+ y2: i.y2
+ }, a.w = a.x2 - a.x1, a.h = a.y2 - a.y1;
+ } else
+ pe(e) || (e = this.mutableElements());
+ if (!(pe(e) && e.empty())) {
+ a = a || e.boundingBox();
+ var s = this.width(), o = this.height(), l;
+ if (r = k(r) ? r : 0, !isNaN(s) && !isNaN(o) && s > 0 && o > 0 && !isNaN(a.w) && !isNaN(a.h) && a.w > 0 && a.h > 0) {
+ l = Math.min((s - 2 * r) / a.w, (o - 2 * r) / a.h), l = l > this._private.maxZoom ? this._private.maxZoom : l, l = l < this._private.minZoom ? this._private.minZoom : l;
+ var u = {
+ // now pan to middle
+ x: (s - l * (a.x1 + a.x2)) / 2,
+ y: (o - l * (a.y1 + a.y2)) / 2
+ };
+ return {
+ zoom: l,
+ pan: u
+ };
+ }
+ }
+ }
+ },
+ zoomRange: function(e, r) {
+ var a = this._private;
+ if (r == null) {
+ var n = e;
+ e = n.min, r = n.max;
+ }
+ return k(e) && k(r) && e <= r ? (a.minZoom = e, a.maxZoom = r) : k(e) && r === void 0 && e <= a.maxZoom ? a.minZoom = e : k(r) && e === void 0 && r >= a.minZoom && (a.maxZoom = r), this;
+ },
+ minZoom: function(e) {
+ return e === void 0 ? this._private.minZoom : this.zoomRange({
+ min: e
+ });
+ },
+ maxZoom: function(e) {
+ return e === void 0 ? this._private.maxZoom : this.zoomRange({
+ max: e
+ });
+ },
+ getZoomedViewport: function(e) {
+ var r = this._private, a = r.pan, n = r.zoom, i, s, o = !1;
+ if (r.zoomingEnabled || (o = !0), k(e) ? s = e : L(e) && (s = e.level, e.position != null ? i = dn(e.position, n, a) : e.renderedPosition != null && (i = e.renderedPosition), i != null && !r.panningEnabled && (o = !0)), s = s > r.maxZoom ? r.maxZoom : s, s = s < r.minZoom ? r.minZoom : s, o || !k(s) || s === n || i != null && (!k(i.x) || !k(i.y)))
+ return null;
+ if (i != null) {
+ var l = a, u = n, f = s, h = {
+ x: -f / u * (i.x - l.x) + i.x,
+ y: -f / u * (i.y - l.y) + i.y
+ };
+ return {
+ zoomed: !0,
+ panned: !0,
+ zoom: f,
+ pan: h
+ };
+ } else
+ return {
+ zoomed: !0,
+ panned: !1,
+ zoom: s,
+ pan: a
+ };
+ },
+ zoom: function(e) {
+ if (e === void 0)
+ return this._private.zoom;
+ var r = this.getZoomedViewport(e), a = this._private;
+ return r == null || !r.zoomed ? this : (a.zoom = r.zoom, r.panned && (a.pan.x = r.pan.x, a.pan.y = r.pan.y), this.emit("zoom" + (r.panned ? " pan" : "") + " viewport"), this.notify("viewport"), this);
+ },
+ viewport: function(e) {
+ var r = this._private, a = !0, n = !0, i = [], s = !1, o = !1;
+ if (!e)
+ return this;
+ if (k(e.zoom) || (a = !1), L(e.pan) || (n = !1), !a && !n)
+ return this;
+ if (a) {
+ var l = e.zoom;
+ l < r.minZoom || l > r.maxZoom || !r.zoomingEnabled ? s = !0 : (r.zoom = l, i.push("zoom"));
+ }
+ if (n && (!s || !e.cancelOnFailedZoom) && r.panningEnabled) {
+ var u = e.pan;
+ k(u.x) && (r.pan.x = u.x, o = !1), k(u.y) && (r.pan.y = u.y, o = !1), o || i.push("pan");
+ }
+ return i.length > 0 && (i.push("viewport"), this.emit(i.join(" ")), this.notify("viewport")), this;
+ },
+ center: function(e) {
+ var r = this.getCenterPan(e);
+ return r && (this._private.pan = r, this.emit("pan viewport"), this.notify("viewport")), this;
+ },
+ getCenterPan: function(e, r) {
+ if (this._private.panningEnabled) {
+ if (j(e)) {
+ var a = e;
+ e = this.mutableElements().filter(a);
+ } else
+ pe(e) || (e = this.mutableElements());
+ if (e.length !== 0) {
+ var n = e.boundingBox(), i = this.width(), s = this.height();
+ r = r === void 0 ? this._private.zoom : r;
+ var o = {
+ // middle
+ x: (i - r * (n.x1 + n.x2)) / 2,
+ y: (s - r * (n.y1 + n.y2)) / 2
+ };
+ return o;
+ }
+ }
+ },
+ reset: function() {
+ return !this._private.panningEnabled || !this._private.zoomingEnabled ? this : (this.viewport({
+ pan: {
+ x: 0,
+ y: 0
+ },
+ zoom: 1
+ }), this);
+ },
+ invalidateSize: function() {
+ this._private.sizeCache = null;
+ },
+ size: function() {
+ var e = this._private, r = e.container;
+ return e.sizeCache = e.sizeCache || (r ? function() {
+ var a = D.getComputedStyle(r), n = function(s) {
+ return parseFloat(a.getPropertyValue(s));
+ };
+ return {
+ width: r.clientWidth - n("padding-left") - n("padding-right"),
+ height: r.clientHeight - n("padding-top") - n("padding-bottom")
+ };
+ }() : {
+ // fallback if no container (not 0 b/c can be used for dividing etc)
+ width: 1,
+ height: 1
+ });
+ },
+ width: function() {
+ return this.size().width;
+ },
+ height: function() {
+ return this.size().height;
+ },
+ extent: function() {
+ var e = this._private.pan, r = this._private.zoom, a = this.renderedExtent(), n = {
+ x1: (a.x1 - e.x) / r,
+ x2: (a.x2 - e.x) / r,
+ y1: (a.y1 - e.y) / r,
+ y2: (a.y2 - e.y) / r
+ };
+ return n.w = n.x2 - n.x1, n.h = n.y2 - n.y1, n;
+ },
+ renderedExtent: function() {
+ var e = this.width(), r = this.height();
+ return {
+ x1: 0,
+ y1: 0,
+ x2: e,
+ y2: r,
+ w: e,
+ h: r
+ };
+ },
+ multiClickDebounceTime: function(e) {
+ if (e)
+ this._private.multiClickDebounceTime = e;
+ else
+ return this._private.multiClickDebounceTime;
+ return this;
+ }
+ };
+ $r.centre = $r.center, $r.autolockNodes = $r.autolock, $r.autoungrabifyNodes = $r.autoungrabify;
+ var Ka = {
+ data: ht.data({
+ field: "data",
+ bindingEvent: "data",
+ allowBinding: !0,
+ allowSetting: !0,
+ settingEvent: "data",
+ settingTriggersEvent: !0,
+ triggerFnName: "trigger",
+ allowGetting: !0,
+ updateStyle: !0
+ }),
+ removeData: ht.removeData({
+ field: "data",
+ event: "data",
+ triggerFnName: "trigger",
+ triggerEvent: !0,
+ updateStyle: !0
+ }),
+ scratch: ht.data({
+ field: "scratch",
+ bindingEvent: "scratch",
+ allowBinding: !0,
+ allowSetting: !0,
+ settingEvent: "scratch",
+ settingTriggersEvent: !0,
+ triggerFnName: "trigger",
+ allowGetting: !0,
+ updateStyle: !0
+ }),
+ removeScratch: ht.removeData({
+ field: "scratch",
+ event: "scratch",
+ triggerFnName: "trigger",
+ triggerEvent: !0,
+ updateStyle: !0
+ })
+ };
+ Ka.attr = Ka.data, Ka.removeAttr = Ka.removeData;
+ var Za = function(e) {
+ var r = this;
+ e = Ue({}, e);
+ var a = e.container;
+ a && !ce(a) && ce(a[0]) && (a = a[0]);
+ var n = a ? a._cyreg : null;
+ n = n || {}, n && n.cy && (n.cy.destroy(), n = {});
+ var i = n.readies = n.readies || [];
+ a && (a._cyreg = n), n.cy = r;
+ var s = D !== void 0 && a !== void 0 && !e.headless, o = e;
+ o.layout = Ue({
+ name: s ? "grid" : "null"
+ }, o.layout), o.renderer = Ue({
+ name: s ? "canvas" : "null"
+ }, o.renderer);
+ var l = function(d, g, y) {
+ return g !== void 0 ? g : y !== void 0 ? y : d;
+ }, u = this._private = {
+ container: a,
+ // html dom ele container
+ ready: !1,
+ // whether ready has been triggered
+ options: o,
+ // cached options
+ elements: new Ot(this),
+ // elements in the graph
+ listeners: [],
+ // list of listeners
+ aniEles: new Ot(this),
+ // elements being animated
+ data: o.data || {},
+ // data for the core
+ scratch: {},
+ // scratch object for core
+ layout: null,
+ renderer: null,
+ destroyed: !1,
+ // whether destroy was called
+ notificationsEnabled: !0,
+ // whether notifications are sent to the renderer
+ minZoom: 1e-50,
+ maxZoom: 1e50,
+ zoomingEnabled: l(!0, o.zoomingEnabled),
+ userZoomingEnabled: l(!0, o.userZoomingEnabled),
+ panningEnabled: l(!0, o.panningEnabled),
+ userPanningEnabled: l(!0, o.userPanningEnabled),
+ boxSelectionEnabled: l(!0, o.boxSelectionEnabled),
+ autolock: l(!1, o.autolock, o.autolockNodes),
+ autoungrabify: l(!1, o.autoungrabify, o.autoungrabifyNodes),
+ autounselectify: l(!1, o.autounselectify),
+ styleEnabled: o.styleEnabled === void 0 ? s : o.styleEnabled,
+ zoom: k(o.zoom) ? o.zoom : 1,
+ pan: {
+ x: L(o.pan) && k(o.pan.x) ? o.pan.x : 0,
+ y: L(o.pan) && k(o.pan.y) ? o.pan.y : 0
+ },
+ animation: {
+ // object for currently-running animations
+ current: [],
+ queue: []
+ },
+ hasCompoundNodes: !1,
+ multiClickDebounceTime: l(250, o.multiClickDebounceTime)
+ };
+ this.createEmitter(), this.selectionType(o.selectionType), this.zoomRange({
+ min: o.minZoom,
+ max: o.maxZoom
+ });
+ var f = function(d, g) {
+ var y = d.some(rt);
+ if (y)
+ return ia.all(d).then(g);
+ g(d);
+ };
+ u.styleEnabled && r.setStyle([]);
+ var h = Ue({}, o, o.renderer);
+ r.initRenderer(h);
+ var c = function(d, g, y) {
+ r.notifications(!1);
+ var p = r.mutableElements();
+ p.length > 0 && p.remove(), d != null && (L(d) || te(d)) && r.add(d), r.one("layoutready", function(b) {
+ r.notifications(!0), r.emit(b), r.one("load", g), r.emitAndNotify("load");
+ }).one("layoutstop", function() {
+ r.one("done", y), r.emit("done");
+ });
+ var m = Ue({}, r._private.options.layout);
+ m.eles = r.elements(), r.layout(m).run();
+ };
+ f([o.style, o.elements], function(v) {
+ var d = v[0], g = v[1];
+ u.styleEnabled && r.style().append(d), c(g, function() {
+ r.startAnimationLoop(), u.ready = !0, Y(o.ready) && r.on("ready", o.ready);
+ for (var y = 0; y < i.length; y++) {
+ var p = i[y];
+ r.on("ready", p);
+ }
+ n && (n.readies = []), r.emit("ready");
+ }, o.done);
+ });
+ }, _n = Za.prototype;
+ Ue(_n, {
+ instanceString: function() {
+ return "core";
+ },
+ isReady: function() {
+ return this._private.ready;
+ },
+ destroyed: function() {
+ return this._private.destroyed;
+ },
+ ready: function(e) {
+ return this.isReady() ? this.emitter().emit("ready", [], e) : this.on("ready", e), this;
+ },
+ destroy: function() {
+ var e = this;
+ if (!e.destroyed())
+ return e.stopAnimationLoop(), e.destroyRenderer(), this.emit("destroy"), e._private.destroyed = !0, e;
+ },
+ hasElementWithId: function(e) {
+ return this._private.elements.hasElementWithId(e);
+ },
+ getElementById: function(e) {
+ return this._private.elements.getElementById(e);
+ },
+ hasCompoundNodes: function() {
+ return this._private.hasCompoundNodes;
+ },
+ headless: function() {
+ return this._private.renderer.isHeadless();
+ },
+ styleEnabled: function() {
+ return this._private.styleEnabled;
+ },
+ addToPool: function(e) {
+ return this._private.elements.merge(e), this;
+ },
+ removeFromPool: function(e) {
+ return this._private.elements.unmerge(e), this;
+ },
+ container: function() {
+ return this._private.container || null;
+ },
+ mount: function(e) {
+ if (e != null) {
+ var r = this, a = r._private, n = a.options;
+ return !ce(e) && ce(e[0]) && (e = e[0]), r.stopAnimationLoop(), r.destroyRenderer(), a.container = e, a.styleEnabled = !0, r.invalidateSize(), r.initRenderer(Ue({}, n, n.renderer, {
+ // allow custom renderer name to be re-used, otherwise use canvas
+ name: n.renderer.name === "null" ? "canvas" : n.renderer.name
+ })), r.startAnimationLoop(), r.style(n.style), r.emit("mount"), r;
+ }
+ },
+ unmount: function() {
+ var e = this;
+ return e.stopAnimationLoop(), e.destroyRenderer(), e.initRenderer({
+ name: "null"
+ }), e.emit("unmount"), e;
+ },
+ options: function() {
+ return or(this._private.options);
+ },
+ json: function(e) {
+ var r = this, a = r._private, n = r.mutableElements(), i = function(E) {
+ return r.getElementById(E.id());
+ };
+ if (L(e)) {
+ if (r.startBatch(), e.elements) {
+ var s = {}, o = function(E, M) {
+ for (var A = [], w = [], I = 0; I < E.length; I++) {
+ var C = E[I];
+ if (!C.data.id) {
+ ft("cy.json() cannot handle elements without an ID attribute");
+ continue;
+ }
+ var B = "" + C.data.id, F = r.getElementById(B);
+ s[B] = !0, F.length !== 0 ? w.push({
+ ele: F,
+ json: C
+ }) : (M && (C.group = M), A.push(C));
+ }
+ r.add(A);
+ for (var R = 0; R < w.length; R++) {
+ var X = w[R], z = X.ele, re = X.json;
+ z.json(re);
+ }
+ };
+ if (te(e.elements))
+ o(e.elements);
+ else
+ for (var l = ["nodes", "edges"], u = 0; u < l.length; u++) {
+ var f = l[u], h = e.elements[f];
+ te(h) && o(h, f);
+ }
+ var c = r.collection();
+ n.filter(function(b) {
+ return !s[b.id()];
+ }).forEach(function(b) {
+ b.isParent() ? c.merge(b) : b.remove();
+ }), c.forEach(function(b) {
+ return b.children().move({
+ parent: null
+ });
+ }), c.forEach(function(b) {
+ return i(b).remove();
+ });
+ }
+ e.style && r.style(e.style), e.zoom != null && e.zoom !== a.zoom && r.zoom(e.zoom), e.pan && (e.pan.x !== a.pan.x || e.pan.y !== a.pan.y) && r.pan(e.pan), e.data && r.data(e.data);
+ for (var v = ["minZoom", "maxZoom", "zoomingEnabled", "userZoomingEnabled", "panningEnabled", "userPanningEnabled", "boxSelectionEnabled", "autolock", "autoungrabify", "autounselectify", "multiClickDebounceTime"], d = 0; d < v.length; d++) {
+ var g = v[d];
+ e[g] != null && r[g](e[g]);
+ }
+ return r.endBatch(), this;
+ } else {
+ var y = !!e, p = {};
+ y ? p.elements = this.elements().map(function(b) {
+ return b.json();
+ }) : (p.elements = {}, n.forEach(function(b) {
+ var E = b.group();
+ p.elements[E] || (p.elements[E] = []), p.elements[E].push(b.json());
+ })), this._private.styleEnabled && (p.style = r.style().json()), p.data = or(r.data());
+ var m = a.options;
+ return p.zoomingEnabled = a.zoomingEnabled, p.userZoomingEnabled = a.userZoomingEnabled, p.zoom = a.zoom, p.minZoom = a.minZoom, p.maxZoom = a.maxZoom, p.panningEnabled = a.panningEnabled, p.userPanningEnabled = a.userPanningEnabled, p.pan = or(a.pan), p.boxSelectionEnabled = a.boxSelectionEnabled, p.renderer = or(m.renderer), p.hideEdgesOnViewport = m.hideEdgesOnViewport, p.textureOnViewport = m.textureOnViewport, p.wheelSensitivity = m.wheelSensitivity, p.motionBlur = m.motionBlur, p.multiClickDebounceTime = m.multiClickDebounceTime, p;
+ }
+ }
+ }), _n.$id = _n.getElementById, [Od, kd, Ho, Ii, zn, Bd, Ri, Gn, Gd, $r, Ka].forEach(function(t) {
+ Ue(_n, t);
+ });
+ var Vd = {
+ fit: !0,
+ // whether to fit the viewport to the graph
+ directed: !1,
+ // whether the tree is directed downwards (or edges can point in any direction if false)
+ padding: 30,
+ // padding on fit
+ circle: !1,
+ // put depths in concentric circles if true, put depths top down if false
+ grid: !1,
+ // whether to create an even grid into which the DAG is placed (circle:false only)
+ spacingFactor: 1.75,
+ // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap)
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: !0,
+ // prevents node overlap, may overflow boundingBox if not enough space
+ nodeDimensionsIncludeLabels: !1,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ roots: void 0,
+ // the roots of the trees
+ maximal: !1,
+ // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only)
+ depthSort: void 0,
+ // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') }
+ animate: !1,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled,
+ animateFilter: function(e, r) {
+ return !0;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function(e, r) {
+ return r;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ }, pa = function(e) {
+ return e.scratch("breadthfirst");
+ }, Xo = function(e, r) {
+ return e.scratch("breadthfirst", r);
+ };
+ function qo(t) {
+ this.options = Ue({}, Vd, t);
+ }
+ qo.prototype.run = function() {
+ var t = this.options, e = t, r = t.cy, a = e.eles, n = a.nodes().filter(function(Re) {
+ return !Re.isParent();
+ }), i = a, s = e.directed, o = e.maximal || e.maximalAdjustments > 0, l = Ut(e.boundingBox ? e.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: r.width(),
+ h: r.height()
+ }), u;
+ if (pe(e.roots))
+ u = e.roots;
+ else if (te(e.roots)) {
+ for (var f = [], h = 0; h < e.roots.length; h++) {
+ var c = e.roots[h], v = r.getElementById(c);
+ f.push(v);
+ }
+ u = r.collection(f);
+ } else if (j(e.roots))
+ u = r.$(e.roots);
+ else if (s)
+ u = n.roots();
+ else {
+ var d = a.components();
+ u = r.collection();
+ for (var g = function(Me) {
+ var Ve = d[Me], Fe = Ve.maxDegree(!1), ke = Ve.filter(function(Ge) {
+ return Ge.degree(!1) === Fe;
+ });
+ u = u.add(ke);
+ }, y = 0; y < d.length; y++)
+ g(y);
+ }
+ var p = [], m = {}, b = function(Me, Ve) {
+ p[Ve] == null && (p[Ve] = []);
+ var Fe = p[Ve].length;
+ p[Ve].push(Me), Xo(Me, {
+ index: Fe,
+ depth: Ve
+ });
+ }, E = function(Me, Ve) {
+ var Fe = pa(Me), ke = Fe.depth, Ge = Fe.index;
+ p[ke][Ge] = null, b(Me, Ve);
+ };
+ i.bfs({
+ roots: u,
+ directed: e.directed,
+ visit: function(Me, Ve, Fe, ke, Ge) {
+ var et = Me[0], We = et.id();
+ b(et, Ge), m[We] = !0;
+ }
+ });
+ for (var M = [], A = 0; A < n.length; A++) {
+ var w = n[A];
+ m[w.id()] || M.push(w);
+ }
+ var I = function(Me) {
+ for (var Ve = p[Me], Fe = 0; Fe < Ve.length; Fe++) {
+ var ke = Ve[Fe];
+ if (ke == null) {
+ Ve.splice(Fe, 1), Fe--;
+ continue;
+ }
+ Xo(ke, {
+ depth: Me,
+ index: Fe
+ });
+ }
+ }, C = function() {
+ for (var Me = 0; Me < p.length; Me++)
+ I(Me);
+ }, B = function(Me, Ve) {
+ for (var Fe = pa(Me), ke = Me.incomers().filter(function(N) {
+ return N.isNode() && a.has(N);
+ }), Ge = -1, et = Me.id(), We = 0; We < ke.length; We++) {
+ var Ye = ke[We], Se = pa(Ye);
+ Ge = Math.max(Ge, Se.depth);
+ }
+ return Fe.depth <= Ge ? Ve[et] ? null : (E(Me, Ge + 1), Ve[et] = !0, !0) : !1;
+ };
+ if (s && o) {
+ var F = [], R = {}, X = function(Me) {
+ return F.push(Me);
+ }, z = function() {
+ return F.shift();
+ };
+ for (n.forEach(function(Re) {
+ return F.push(Re);
+ }); F.length > 0; ) {
+ var re = z(), W = B(re, R);
+ if (W)
+ re.outgoers().filter(function(Re) {
+ return Re.isNode() && a.has(Re);
+ }).forEach(X);
+ else if (W === null) {
+ ft("Detected double maximal shift for node `" + re.id() + "`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");
+ break;
+ }
+ }
+ }
+ C();
+ var Z = 0;
+ if (e.avoidOverlap)
+ for (var ie = 0; ie < n.length; ie++) {
+ var oe = n[ie], ge = oe.layoutDimensions(e), se = ge.w, de = ge.h;
+ Z = Math.max(Z, se, de);
+ }
+ var we = {}, Te = function(Me) {
+ if (we[Me.id()])
+ return we[Me.id()];
+ for (var Ve = pa(Me).depth, Fe = Me.neighborhood(), ke = 0, Ge = 0, et = 0; et < Fe.length; et++) {
+ var We = Fe[et];
+ if (!(We.isEdge() || We.isParent() || !n.has(We))) {
+ var Ye = pa(We);
+ if (Ye != null) {
+ var Se = Ye.index, N = Ye.depth;
+ if (!(Se == null || N == null)) {
+ var le = p[N].length;
+ N < Ve && (ke += Se / le, Ge++);
+ }
+ }
+ }
+ }
+ return Ge = Math.max(1, Ge), ke = ke / Ge, Ge === 0 && (ke = 0), we[Me.id()] = ke, ke;
+ }, Ee = function(Me, Ve) {
+ var Fe = Te(Me), ke = Te(Ve), Ge = Fe - ke;
+ return Ge === 0 ? es(Me.id(), Ve.id()) : Ge;
+ };
+ e.depthSort !== void 0 && (Ee = e.depthSort);
+ for (var ye = 0; ye < p.length; ye++)
+ p[ye].sort(Ee), I(ye);
+ for (var ae = [], xe = 0; xe < M.length; xe++)
+ ae.push(M[xe]);
+ p.unshift(ae), C();
+ for (var Ce = 0, Oe = 0; Oe < p.length; Oe++)
+ Ce = Math.max(p[Oe].length, Ce);
+ var Ie = {
+ x: l.x1 + l.w / 2,
+ y: l.x1 + l.h / 2
+ }, He = p.reduce(function(Re, Me) {
+ return Math.max(Re, Me.length);
+ }, 0), qe = function(Me) {
+ var Ve = pa(Me), Fe = Ve.depth, ke = Ve.index, Ge = p[Fe].length, et = Math.max(l.w / ((e.grid ? He : Ge) + 1), Z), We = Math.max(l.h / (p.length + 1), Z), Ye = Math.min(l.w / 2 / p.length, l.h / 2 / p.length);
+ if (Ye = Math.max(Ye, Z), e.circle) {
+ var N = Ye * Fe + Ye - (p.length > 0 && p[0].length <= 3 ? Ye / 2 : 0), le = 2 * Math.PI / p[Fe].length * ke;
+ return Fe === 0 && p[0].length === 1 && (N = 1), {
+ x: Ie.x + N * Math.cos(le),
+ y: Ie.y + N * Math.sin(le)
+ };
+ } else {
+ var Se = {
+ x: Ie.x + (ke + 1 - (Ge + 1) / 2) * et,
+ y: (Fe + 1) * We
+ };
+ return Se;
+ }
+ };
+ return a.nodes().layoutPositions(this, e, qe), this;
+ };
+ var _d = {
+ fit: !0,
+ // whether to fit the viewport to the graph
+ padding: 30,
+ // the padding on fit
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: !0,
+ // prevents node overlap, may overflow boundingBox and radius if not enough space
+ nodeDimensionsIncludeLabels: !1,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ spacingFactor: void 0,
+ // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
+ radius: void 0,
+ // the radius of the circle
+ startAngle: 3 / 2 * Math.PI,
+ // where nodes start in radians
+ sweep: void 0,
+ // how many radians should be between the first and last node (defaults to full circle)
+ clockwise: !0,
+ // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
+ sort: void 0,
+ // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
+ animate: !1,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: function(e, r) {
+ return !0;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function(e, r) {
+ return r;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ function Wo(t) {
+ this.options = Ue({}, _d, t);
+ }
+ Wo.prototype.run = function() {
+ var t = this.options, e = t, r = t.cy, a = e.eles, n = e.counterclockwise !== void 0 ? !e.counterclockwise : e.clockwise, i = a.nodes().not(":parent");
+ e.sort && (i = i.sort(e.sort));
+ for (var s = Ut(e.boundingBox ? e.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: r.width(),
+ h: r.height()
+ }), o = {
+ x: s.x1 + s.w / 2,
+ y: s.y1 + s.h / 2
+ }, l = e.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / i.length : e.sweep, u = l / Math.max(1, i.length - 1), f, h = 0, c = 0; c < i.length; c++) {
+ var v = i[c], d = v.layoutDimensions(e), g = d.w, y = d.h;
+ h = Math.max(h, g, y);
+ }
+ if (k(e.radius) ? f = e.radius : i.length <= 1 ? f = 0 : f = Math.min(s.h, s.w) / 2 - h, i.length > 1 && e.avoidOverlap) {
+ h *= 1.75;
+ var p = Math.cos(u) - Math.cos(0), m = Math.sin(u) - Math.sin(0), b = Math.sqrt(h * h / (p * p + m * m));
+ f = Math.max(b, f);
+ }
+ var E = function(A, w) {
+ var I = e.startAngle + w * u * (n ? 1 : -1), C = f * Math.cos(I), B = f * Math.sin(I), F = {
+ x: o.x + C,
+ y: o.y + B
+ };
+ return F;
+ };
+ return a.nodes().layoutPositions(this, e, E), this;
+ };
+ var Ud = {
+ fit: !0,
+ // whether to fit the viewport to the graph
+ padding: 30,
+ // the padding on fit
+ startAngle: 3 / 2 * Math.PI,
+ // where nodes start in radians
+ sweep: void 0,
+ // how many radians should be between the first and last node (defaults to full circle)
+ clockwise: !0,
+ // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
+ equidistant: !1,
+ // whether levels have an equal radial distance betwen them, may cause bounding box overflow
+ minNodeSpacing: 10,
+ // min spacing between outside of nodes (used for radius adjustment)
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: !0,
+ // prevents node overlap, may overflow boundingBox if not enough space
+ nodeDimensionsIncludeLabels: !1,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ height: void 0,
+ // height of layout area (overrides container height)
+ width: void 0,
+ // width of layout area (overrides container width)
+ spacingFactor: void 0,
+ // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
+ concentric: function(e) {
+ return e.degree();
+ },
+ levelWidth: function(e) {
+ return e.maxDegree() / 4;
+ },
+ animate: !1,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: function(e, r) {
+ return !0;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function(e, r) {
+ return r;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ function Ko(t) {
+ this.options = Ue({}, Ud, t);
+ }
+ Ko.prototype.run = function() {
+ for (var t = this.options, e = t, r = e.counterclockwise !== void 0 ? !e.counterclockwise : e.clockwise, a = t.cy, n = e.eles, i = n.nodes().not(":parent"), s = Ut(e.boundingBox ? e.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: a.width(),
+ h: a.height()
+ }), o = {
+ x: s.x1 + s.w / 2,
+ y: s.y1 + s.h / 2
+ }, l = [], u = 0, f = 0; f < i.length; f++) {
+ var h = i[f], c = void 0;
+ c = e.concentric(h), l.push({
+ value: c,
+ node: h
+ }), h._private.scratch.concentric = c;
+ }
+ i.updateStyle();
+ for (var v = 0; v < i.length; v++) {
+ var d = i[v], g = d.layoutDimensions(e);
+ u = Math.max(u, g.w, g.h);
+ }
+ l.sort(function(Re, Me) {
+ return Me.value - Re.value;
+ });
+ for (var y = e.levelWidth(i), p = [[]], m = p[0], b = 0; b < l.length; b++) {
+ var E = l[b];
+ if (m.length > 0) {
+ var M = Math.abs(m[0].value - E.value);
+ M >= y && (m = [], p.push(m));
+ }
+ m.push(E);
+ }
+ var A = u + e.minNodeSpacing;
+ if (!e.avoidOverlap) {
+ var w = p.length > 0 && p[0].length > 1, I = Math.min(s.w, s.h) / 2 - A, C = I / (p.length + w ? 1 : 0);
+ A = Math.min(A, C);
+ }
+ for (var B = 0, F = 0; F < p.length; F++) {
+ var R = p[F], X = e.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / R.length : e.sweep, z = R.dTheta = X / Math.max(1, R.length - 1);
+ if (R.length > 1 && e.avoidOverlap) {
+ var re = Math.cos(z) - Math.cos(0), W = Math.sin(z) - Math.sin(0), Z = Math.sqrt(A * A / (re * re + W * W));
+ B = Math.max(Z, B);
+ }
+ R.r = B, B += A;
+ }
+ if (e.equidistant) {
+ for (var ie = 0, oe = 0, ge = 0; ge < p.length; ge++) {
+ var se = p[ge], de = se.r - oe;
+ ie = Math.max(ie, de);
+ }
+ oe = 0;
+ for (var we = 0; we < p.length; we++) {
+ var Te = p[we];
+ we === 0 && (oe = Te.r), Te.r = oe, oe += ie;
+ }
+ }
+ for (var Ee = {}, ye = 0; ye < p.length; ye++)
+ for (var ae = p[ye], xe = ae.dTheta, Ce = ae.r, Oe = 0; Oe < ae.length; Oe++) {
+ var Ie = ae[Oe], He = e.startAngle + (r ? 1 : -1) * xe * Oe, qe = {
+ x: o.x + Ce * Math.cos(He),
+ y: o.y + Ce * Math.sin(He)
+ };
+ Ee[Ie.node.id()] = qe;
+ }
+ return n.nodes().layoutPositions(this, e, function(Re) {
+ var Me = Re.id();
+ return Ee[Me];
+ }), this;
+ };
+ var Bi, Yd = {
+ // Called on `layoutready`
+ ready: function() {
+ },
+ // Called on `layoutstop`
+ stop: function() {
+ },
+ // Whether to animate while running the layout
+ // true : Animate continuously as the layout is running
+ // false : Just show the end result
+ // 'end' : Animate with the end result, from the initial positions to the end positions
+ animate: !0,
+ // Easing of the animation for animate:'end'
+ animationEasing: void 0,
+ // The duration of the animation for animate:'end'
+ animationDuration: void 0,
+ // A function that determines whether the node should be animated
+ // All nodes animated by default on animate enabled
+ // Non-animated nodes are positioned immediately when the layout starts
+ animateFilter: function(e, r) {
+ return !0;
+ },
+ // The layout animates only after this many milliseconds for animate:true
+ // (prevents flashing on fast runs)
+ animationThreshold: 250,
+ // Number of iterations between consecutive screen positions update
+ refresh: 20,
+ // Whether to fit the network view after when done
+ fit: !0,
+ // Padding on fit
+ padding: 30,
+ // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ boundingBox: void 0,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ nodeDimensionsIncludeLabels: !1,
+ // Randomize the initial positions of the nodes (true) or use existing positions (false)
+ randomize: !1,
+ // Extra spacing between components in non-compound graphs
+ componentSpacing: 40,
+ // Node repulsion (non overlapping) multiplier
+ nodeRepulsion: function(e) {
+ return 2048;
+ },
+ // Node repulsion (overlapping) multiplier
+ nodeOverlap: 4,
+ // Ideal edge (non nested) length
+ idealEdgeLength: function(e) {
+ return 32;
+ },
+ // Divisor to compute edge forces
+ edgeElasticity: function(e) {
+ return 32;
+ },
+ // Nesting factor (multiplier) to compute ideal edge length for nested edges
+ nestingFactor: 1.2,
+ // Gravity force (constant)
+ gravity: 1,
+ // Maximum number of iterations to perform
+ numIter: 1e3,
+ // Initial temperature (maximum node displacement)
+ initialTemp: 1e3,
+ // Cooling factor (how the temperature is reduced between consecutive iterations
+ coolingFactor: 0.99,
+ // Lower temperature threshold (below this point the layout will end)
+ minTemp: 1
+ };
+ function Un(t) {
+ this.options = Ue({}, Yd, t), this.options.layout = this;
+ }
+ Un.prototype.run = function() {
+ var t = this.options, e = t.cy, r = this;
+ r.stopped = !1, (t.animate === !0 || t.animate === !1) && r.emit({
+ type: "layoutstart",
+ layout: r
+ }), t.debug === !0 ? Bi = !0 : Bi = !1;
+ var a = Hd(e, r, t);
+ Bi && Wd(a), t.randomize && Kd(a);
+ var n = dr(), i = function() {
+ Zd(a, e, t), t.fit === !0 && e.fit(t.padding);
+ }, s = function(c) {
+ return !(r.stopped || c >= t.numIter || (Qd(a, t), a.temperature = a.temperature * t.coolingFactor, a.temperature < t.minTemp));
+ }, o = function() {
+ if (t.animate === !0 || t.animate === !1)
+ i(), r.one("layoutstop", t.stop), r.emit({
+ type: "layoutstop",
+ layout: r
+ });
+ else {
+ var c = t.eles.nodes(), v = Zo(a, t, c);
+ c.layoutPositions(r, t, v);
+ }
+ }, l = 0, u = !0;
+ if (t.animate === !0) {
+ var f = function h() {
+ for (var c = 0; u && c < t.refresh; )
+ u = s(l), l++, c++;
+ if (!u)
+ Jo(a, t), o();
+ else {
+ var v = dr();
+ v - n >= t.animationThreshold && i(), fn(h);
+ }
+ };
+ f();
+ } else {
+ for (; u; )
+ u = s(l), l++;
+ Jo(a, t), o();
+ }
+ return this;
+ }, Un.prototype.stop = function() {
+ return this.stopped = !0, this.thread && this.thread.stop(), this.emit("layoutstop"), this;
+ }, Un.prototype.destroy = function() {
+ return this.thread && this.thread.stop(), this;
+ };
+ var Hd = function(e, r, a) {
+ for (var n = a.eles.edges(), i = a.eles.nodes(), s = {
+ isCompound: e.hasCompoundNodes(),
+ layoutNodes: [],
+ idToIndex: {},
+ nodeSize: i.size(),
+ graphSet: [],
+ indexToGraph: [],
+ layoutEdges: [],
+ edgeSize: n.size(),
+ temperature: a.initialTemp,
+ clientWidth: e.width(),
+ clientHeight: e.width(),
+ boundingBox: Ut(a.boundingBox ? a.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: e.width(),
+ h: e.height()
+ })
+ }, o = a.eles.components(), l = {}, u = 0; u < o.length; u++)
+ for (var f = o[u], h = 0; h < f.length; h++) {
+ var c = f[h];
+ l[c.id()] = u;
+ }
+ for (var u = 0; u < s.nodeSize; u++) {
+ var v = i[u], d = v.layoutDimensions(a), g = {};
+ g.isLocked = v.locked(), g.id = v.data("id"), g.parentId = v.data("parent"), g.cmptId = l[v.id()], g.children = [], g.positionX = v.position("x"), g.positionY = v.position("y"), g.offsetX = 0, g.offsetY = 0, g.height = d.w, g.width = d.h, g.maxX = g.positionX + g.width / 2, g.minX = g.positionX - g.width / 2, g.maxY = g.positionY + g.height / 2, g.minY = g.positionY - g.height / 2, g.padLeft = parseFloat(v.style("padding")), g.padRight = parseFloat(v.style("padding")), g.padTop = parseFloat(v.style("padding")), g.padBottom = parseFloat(v.style("padding")), g.nodeRepulsion = Y(a.nodeRepulsion) ? a.nodeRepulsion(v) : a.nodeRepulsion, s.layoutNodes.push(g), s.idToIndex[g.id] = u;
+ }
+ for (var y = [], p = 0, m = -1, b = [], u = 0; u < s.nodeSize; u++) {
+ var v = s.layoutNodes[u], E = v.parentId;
+ E != null ? s.layoutNodes[s.idToIndex[E]].children.push(v.id) : (y[++m] = v.id, b.push(v.id));
+ }
+ for (s.graphSet.push(b); p <= m; ) {
+ var M = y[p++], A = s.idToIndex[M], c = s.layoutNodes[A], w = c.children;
+ if (w.length > 0) {
+ s.graphSet.push(w);
+ for (var u = 0; u < w.length; u++)
+ y[++m] = w[u];
+ }
+ }
+ for (var u = 0; u < s.graphSet.length; u++)
+ for (var I = s.graphSet[u], h = 0; h < I.length; h++) {
+ var C = s.idToIndex[I[h]];
+ s.indexToGraph[C] = u;
+ }
+ for (var u = 0; u < s.edgeSize; u++) {
+ var B = n[u], F = {};
+ F.id = B.data("id"), F.sourceId = B.data("source"), F.targetId = B.data("target");
+ var R = Y(a.idealEdgeLength) ? a.idealEdgeLength(B) : a.idealEdgeLength, X = Y(a.edgeElasticity) ? a.edgeElasticity(B) : a.edgeElasticity, z = s.idToIndex[F.sourceId], re = s.idToIndex[F.targetId], W = s.indexToGraph[z], Z = s.indexToGraph[re];
+ if (W != Z) {
+ for (var ie = Xd(F.sourceId, F.targetId, s), oe = s.graphSet[ie], ge = 0, g = s.layoutNodes[z]; oe.indexOf(g.id) === -1; )
+ g = s.layoutNodes[s.idToIndex[g.parentId]], ge++;
+ for (g = s.layoutNodes[re]; oe.indexOf(g.id) === -1; )
+ g = s.layoutNodes[s.idToIndex[g.parentId]], ge++;
+ R *= ge * a.nestingFactor;
+ }
+ F.idealLength = R, F.elasticity = X, s.layoutEdges.push(F);
+ }
+ return s;
+ }, Xd = function(e, r, a) {
+ var n = qd(e, r, 0, a);
+ return 2 > n.count ? 0 : n.graph;
+ }, qd = function t(e, r, a, n) {
+ var i = n.graphSet[a];
+ if (-1 < i.indexOf(e) && -1 < i.indexOf(r))
+ return {
+ count: 2,
+ graph: a
+ };
+ for (var s = 0, o = 0; o < i.length; o++) {
+ var l = i[o], u = n.idToIndex[l], f = n.layoutNodes[u].children;
+ if (f.length !== 0) {
+ var h = n.indexToGraph[n.idToIndex[f[0]]], c = t(e, r, h, n);
+ if (c.count !== 0)
+ if (c.count === 1) {
+ if (s++, s === 2)
+ break;
+ } else
+ return c;
+ }
+ }
+ return {
+ count: s,
+ graph: a
+ };
+ }, Wd, Kd = function(e, r) {
+ for (var a = e.clientWidth, n = e.clientHeight, i = 0; i < e.nodeSize; i++) {
+ var s = e.layoutNodes[i];
+ s.children.length === 0 && !s.isLocked && (s.positionX = Math.random() * a, s.positionY = Math.random() * n);
+ }
+ }, Zo = function(e, r, a) {
+ var n = e.boundingBox, i = {
+ x1: 1 / 0,
+ x2: -1 / 0,
+ y1: 1 / 0,
+ y2: -1 / 0
+ };
+ return r.boundingBox && (a.forEach(function(s) {
+ var o = e.layoutNodes[e.idToIndex[s.data("id")]];
+ i.x1 = Math.min(i.x1, o.positionX), i.x2 = Math.max(i.x2, o.positionX), i.y1 = Math.min(i.y1, o.positionY), i.y2 = Math.max(i.y2, o.positionY);
+ }), i.w = i.x2 - i.x1, i.h = i.y2 - i.y1), function(s, o) {
+ var l = e.layoutNodes[e.idToIndex[s.data("id")]];
+ if (r.boundingBox) {
+ var u = (l.positionX - i.x1) / i.w, f = (l.positionY - i.y1) / i.h;
+ return {
+ x: n.x1 + u * n.w,
+ y: n.y1 + f * n.h
+ };
+ } else
+ return {
+ x: l.positionX,
+ y: l.positionY
+ };
+ };
+ }, Zd = function(e, r, a) {
+ var n = a.layout, i = a.eles.nodes(), s = Zo(e, a, i);
+ i.positions(s), e.ready !== !0 && (e.ready = !0, n.one("layoutready", a.ready), n.emit({
+ type: "layoutready",
+ layout: this
+ }));
+ }, Qd = function(e, r, a) {
+ Jd(e, r), tg(e), rg(e, r), ag(e), ng(e);
+ }, Jd = function(e, r) {
+ for (var a = 0; a < e.graphSet.length; a++)
+ for (var n = e.graphSet[a], i = n.length, s = 0; s < i; s++)
+ for (var o = e.layoutNodes[e.idToIndex[n[s]]], l = s + 1; l < i; l++) {
+ var u = e.layoutNodes[e.idToIndex[n[l]]];
+ jd(o, u, e, r);
+ }
+ }, Qo = function(e) {
+ return -e + 2 * e * Math.random();
+ }, jd = function(e, r, a, n) {
+ var i = e.cmptId, s = r.cmptId;
+ if (!(i !== s && !a.isCompound)) {
+ var o = r.positionX - e.positionX, l = r.positionY - e.positionY, u = 1;
+ o === 0 && l === 0 && (o = Qo(u), l = Qo(u));
+ var f = eg(e, r, o, l);
+ if (f > 0)
+ var h = n.nodeOverlap * f, c = Math.sqrt(o * o + l * l), v = h * o / c, d = h * l / c;
+ else
+ var g = Yn(e, o, l), y = Yn(r, -1 * o, -1 * l), p = y.x - g.x, m = y.y - g.y, b = p * p + m * m, c = Math.sqrt(b), h = (e.nodeRepulsion + r.nodeRepulsion) / b, v = h * p / c, d = h * m / c;
+ e.isLocked || (e.offsetX -= v, e.offsetY -= d), r.isLocked || (r.offsetX += v, r.offsetY += d);
+ }
+ }, eg = function(e, r, a, n) {
+ if (a > 0)
+ var i = e.maxX - r.minX;
+ else
+ var i = r.maxX - e.minX;
+ if (n > 0)
+ var s = e.maxY - r.minY;
+ else
+ var s = r.maxY - e.minY;
+ return i >= 0 && s >= 0 ? Math.sqrt(i * i + s * s) : 0;
+ }, Yn = function(e, r, a) {
+ var n = e.positionX, i = e.positionY, s = e.height || 1, o = e.width || 1, l = a / r, u = s / o, f = {};
+ return r === 0 && 0 < a || r === 0 && 0 > a ? (f.x = n, f.y = i + s / 2, f) : 0 < r && -1 * u <= l && l <= u ? (f.x = n + o / 2, f.y = i + o * a / 2 / r, f) : 0 > r && -1 * u <= l && l <= u ? (f.x = n - o / 2, f.y = i - o * a / 2 / r, f) : 0 < a && (l <= -1 * u || l >= u) ? (f.x = n + s * r / 2 / a, f.y = i + s / 2, f) : (0 > a && (l <= -1 * u || l >= u) && (f.x = n - s * r / 2 / a, f.y = i - s / 2), f);
+ }, tg = function(e, r) {
+ for (var a = 0; a < e.edgeSize; a++) {
+ var n = e.layoutEdges[a], i = e.idToIndex[n.sourceId], s = e.layoutNodes[i], o = e.idToIndex[n.targetId], l = e.layoutNodes[o], u = l.positionX - s.positionX, f = l.positionY - s.positionY;
+ if (!(u === 0 && f === 0)) {
+ var h = Yn(s, u, f), c = Yn(l, -1 * u, -1 * f), v = c.x - h.x, d = c.y - h.y, g = Math.sqrt(v * v + d * d), y = Math.pow(n.idealLength - g, 2) / n.elasticity;
+ if (g !== 0)
+ var p = y * v / g, m = y * d / g;
+ else
+ var p = 0, m = 0;
+ s.isLocked || (s.offsetX += p, s.offsetY += m), l.isLocked || (l.offsetX -= p, l.offsetY -= m);
+ }
+ }
+ }, rg = function(e, r) {
+ if (r.gravity !== 0)
+ for (var a = 1, n = 0; n < e.graphSet.length; n++) {
+ var i = e.graphSet[n], s = i.length;
+ if (n === 0)
+ var o = e.clientHeight / 2, l = e.clientWidth / 2;
+ else
+ var u = e.layoutNodes[e.idToIndex[i[0]]], f = e.layoutNodes[e.idToIndex[u.parentId]], o = f.positionX, l = f.positionY;
+ for (var h = 0; h < s; h++) {
+ var c = e.layoutNodes[e.idToIndex[i[h]]];
+ if (!c.isLocked) {
+ var v = o - c.positionX, d = l - c.positionY, g = Math.sqrt(v * v + d * d);
+ if (g > a) {
+ var y = r.gravity * v / g, p = r.gravity * d / g;
+ c.offsetX += y, c.offsetY += p;
+ }
+ }
+ }
+ }
+ }, ag = function(e, r) {
+ var a = [], n = 0, i = -1;
+ for (a.push.apply(a, e.graphSet[0]), i += e.graphSet[0].length; n <= i; ) {
+ var s = a[n++], o = e.idToIndex[s], l = e.layoutNodes[o], u = l.children;
+ if (0 < u.length && !l.isLocked) {
+ for (var f = l.offsetX, h = l.offsetY, c = 0; c < u.length; c++) {
+ var v = e.layoutNodes[e.idToIndex[u[c]]];
+ v.offsetX += f, v.offsetY += h, a[++i] = u[c];
+ }
+ l.offsetX = 0, l.offsetY = 0;
+ }
+ }
+ }, ng = function(e, r) {
+ for (var a = 0; a < e.nodeSize; a++) {
+ var n = e.layoutNodes[a];
+ 0 < n.children.length && (n.maxX = void 0, n.minX = void 0, n.maxY = void 0, n.minY = void 0);
+ }
+ for (var a = 0; a < e.nodeSize; a++) {
+ var n = e.layoutNodes[a];
+ if (!(0 < n.children.length || n.isLocked)) {
+ var i = ig(n.offsetX, n.offsetY, e.temperature);
+ n.positionX += i.x, n.positionY += i.y, n.offsetX = 0, n.offsetY = 0, n.minX = n.positionX - n.width, n.maxX = n.positionX + n.width, n.minY = n.positionY - n.height, n.maxY = n.positionY + n.height, sg(n, e);
+ }
+ }
+ for (var a = 0; a < e.nodeSize; a++) {
+ var n = e.layoutNodes[a];
+ 0 < n.children.length && !n.isLocked && (n.positionX = (n.maxX + n.minX) / 2, n.positionY = (n.maxY + n.minY) / 2, n.width = n.maxX - n.minX, n.height = n.maxY - n.minY);
+ }
+ }, ig = function(e, r, a) {
+ var n = Math.sqrt(e * e + r * r);
+ if (n > a)
+ var i = {
+ x: a * e / n,
+ y: a * r / n
+ };
+ else
+ var i = {
+ x: e,
+ y: r
+ };
+ return i;
+ }, sg = function t(e, r) {
+ var a = e.parentId;
+ if (a != null) {
+ var n = r.layoutNodes[r.idToIndex[a]], i = !1;
+ if ((n.maxX == null || e.maxX + n.padRight > n.maxX) && (n.maxX = e.maxX + n.padRight, i = !0), (n.minX == null || e.minX - n.padLeft < n.minX) && (n.minX = e.minX - n.padLeft, i = !0), (n.maxY == null || e.maxY + n.padBottom > n.maxY) && (n.maxY = e.maxY + n.padBottom, i = !0), (n.minY == null || e.minY - n.padTop < n.minY) && (n.minY = e.minY - n.padTop, i = !0), i)
+ return t(n, r);
+ }
+ }, Jo = function(e, r) {
+ for (var a = e.layoutNodes, n = [], i = 0; i < a.length; i++) {
+ var s = a[i], o = s.cmptId, l = n[o] = n[o] || [];
+ l.push(s);
+ }
+ for (var u = 0, i = 0; i < n.length; i++) {
+ var f = n[i];
+ if (f) {
+ f.x1 = 1 / 0, f.x2 = -1 / 0, f.y1 = 1 / 0, f.y2 = -1 / 0;
+ for (var h = 0; h < f.length; h++) {
+ var c = f[h];
+ f.x1 = Math.min(f.x1, c.positionX - c.width / 2), f.x2 = Math.max(f.x2, c.positionX + c.width / 2), f.y1 = Math.min(f.y1, c.positionY - c.height / 2), f.y2 = Math.max(f.y2, c.positionY + c.height / 2);
+ }
+ f.w = f.x2 - f.x1, f.h = f.y2 - f.y1, u += f.w * f.h;
+ }
+ }
+ n.sort(function(m, b) {
+ return b.w * b.h - m.w * m.h;
+ });
+ for (var v = 0, d = 0, g = 0, y = 0, p = Math.sqrt(u) * e.clientWidth / e.clientHeight, i = 0; i < n.length; i++) {
+ var f = n[i];
+ if (f) {
+ for (var h = 0; h < f.length; h++) {
+ var c = f[h];
+ c.isLocked || (c.positionX += v - f.x1, c.positionY += d - f.y1);
+ }
+ v += f.w + r.componentSpacing, g += f.w + r.componentSpacing, y = Math.max(y, f.h), g > p && (d += y + r.componentSpacing, v = 0, g = 0, y = 0);
+ }
+ }
+ }, og = {
+ fit: !0,
+ // whether to fit the viewport to the graph
+ padding: 30,
+ // padding used on fit
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: !0,
+ // prevents node overlap, may overflow boundingBox if not enough space
+ avoidOverlapPadding: 10,
+ // extra spacing around nodes when avoidOverlap: true
+ nodeDimensionsIncludeLabels: !1,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ spacingFactor: void 0,
+ // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
+ condense: !1,
+ // uses all available space on false, uses minimal space on true
+ rows: void 0,
+ // force num of rows in the grid
+ cols: void 0,
+ // force num of columns in the grid
+ position: function(e) {
+ },
+ // returns { row, col } for element
+ sort: void 0,
+ // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
+ animate: !1,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: function(e, r) {
+ return !0;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function(e, r) {
+ return r;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ function jo(t) {
+ this.options = Ue({}, og, t);
+ }
+ jo.prototype.run = function() {
+ var t = this.options, e = t, r = t.cy, a = e.eles, n = a.nodes().not(":parent");
+ e.sort && (n = n.sort(e.sort));
+ var i = Ut(e.boundingBox ? e.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: r.width(),
+ h: r.height()
+ });
+ if (i.h === 0 || i.w === 0)
+ a.nodes().layoutPositions(this, e, function(we) {
+ return {
+ x: i.x1,
+ y: i.y1
+ };
+ });
+ else {
+ var s = n.size(), o = Math.sqrt(s * i.h / i.w), l = Math.round(o), u = Math.round(i.w / i.h * o), f = function(Te) {
+ if (Te == null)
+ return Math.min(l, u);
+ var Ee = Math.min(l, u);
+ Ee == l ? l = Te : u = Te;
+ }, h = function(Te) {
+ if (Te == null)
+ return Math.max(l, u);
+ var Ee = Math.max(l, u);
+ Ee == l ? l = Te : u = Te;
+ }, c = e.rows, v = e.cols != null ? e.cols : e.columns;
+ if (c != null && v != null)
+ l = c, u = v;
+ else if (c != null && v == null)
+ l = c, u = Math.ceil(s / l);
+ else if (c == null && v != null)
+ u = v, l = Math.ceil(s / u);
+ else if (u * l > s) {
+ var d = f(), g = h();
+ (d - 1) * g >= s ? f(d - 1) : (g - 1) * d >= s && h(g - 1);
+ } else
+ for (; u * l < s; ) {
+ var y = f(), p = h();
+ (p + 1) * y >= s ? h(p + 1) : f(y + 1);
+ }
+ var m = i.w / u, b = i.h / l;
+ if (e.condense && (m = 0, b = 0), e.avoidOverlap)
+ for (var E = 0; E < n.length; E++) {
+ var M = n[E], A = M._private.position;
+ (A.x == null || A.y == null) && (A.x = 0, A.y = 0);
+ var w = M.layoutDimensions(e), I = e.avoidOverlapPadding, C = w.w + I, B = w.h + I;
+ m = Math.max(m, C), b = Math.max(b, B);
+ }
+ for (var F = {}, R = function(Te, Ee) {
+ return !!F["c-" + Te + "-" + Ee];
+ }, X = function(Te, Ee) {
+ F["c-" + Te + "-" + Ee] = !0;
+ }, z = 0, re = 0, W = function() {
+ re++, re >= u && (re = 0, z++);
+ }, Z = {}, ie = 0; ie < n.length; ie++) {
+ var oe = n[ie], ge = e.position(oe);
+ if (ge && (ge.row !== void 0 || ge.col !== void 0)) {
+ var se = {
+ row: ge.row,
+ col: ge.col
+ };
+ if (se.col === void 0)
+ for (se.col = 0; R(se.row, se.col); )
+ se.col++;
+ else if (se.row === void 0)
+ for (se.row = 0; R(se.row, se.col); )
+ se.row++;
+ Z[oe.id()] = se, X(se.row, se.col);
+ }
+ }
+ var de = function(Te, Ee) {
+ var ye, ae;
+ if (Te.locked() || Te.isParent())
+ return !1;
+ var xe = Z[Te.id()];
+ if (xe)
+ ye = xe.col * m + m / 2 + i.x1, ae = xe.row * b + b / 2 + i.y1;
+ else {
+ for (; R(z, re); )
+ W();
+ ye = re * m + m / 2 + i.x1, ae = z * b + b / 2 + i.y1, X(z, re), W();
+ }
+ return {
+ x: ye,
+ y: ae
+ };
+ };
+ n.layoutPositions(this, e, de);
+ }
+ return this;
+ };
+ var ug = {
+ ready: function() {
+ },
+ // on layoutready
+ stop: function() {
+ }
+ // on layoutstop
+ };
+ function Fi(t) {
+ this.options = Ue({}, ug, t);
+ }
+ Fi.prototype.run = function() {
+ var t = this.options, e = t.eles, r = this;
+ return t.cy, r.emit("layoutstart"), e.nodes().positions(function() {
+ return {
+ x: 0,
+ y: 0
+ };
+ }), r.one("layoutready", t.ready), r.emit("layoutready"), r.one("layoutstop", t.stop), r.emit("layoutstop"), this;
+ }, Fi.prototype.stop = function() {
+ return this;
+ };
+ var lg = {
+ positions: void 0,
+ // map of (node id) => (position obj); or function(node){ return somPos; }
+ zoom: void 0,
+ // the zoom level to set (prob want fit = false if set)
+ pan: void 0,
+ // the pan level to set (prob want fit = false if set)
+ fit: !0,
+ // whether to fit to viewport
+ padding: 30,
+ // padding on fit
+ animate: !1,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: function(e, r) {
+ return !0;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function(e, r) {
+ return r;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ function eu(t) {
+ this.options = Ue({}, lg, t);
+ }
+ eu.prototype.run = function() {
+ var t = this.options, e = t.eles, r = e.nodes(), a = Y(t.positions);
+ function n(i) {
+ if (t.positions == null)
+ return gf(i.position());
+ if (a)
+ return t.positions(i);
+ var s = t.positions[i._private.data.id];
+ return s ?? null;
+ }
+ return r.layoutPositions(this, t, function(i, s) {
+ var o = n(i);
+ return i.locked() || o == null ? !1 : o;
+ }), this;
+ };
+ var fg = {
+ fit: !0,
+ // whether to fit to viewport
+ padding: 30,
+ // fit padding
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ animate: !1,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: function(e, r) {
+ return !0;
+ },
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: function(e, r) {
+ return r;
+ }
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ function tu(t) {
+ this.options = Ue({}, fg, t);
+ }
+ tu.prototype.run = function() {
+ var t = this.options, e = t.cy, r = t.eles, a = Ut(t.boundingBox ? t.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: e.width(),
+ h: e.height()
+ }), n = function(s, o) {
+ return {
+ x: a.x1 + Math.round(Math.random() * a.w),
+ y: a.y1 + Math.round(Math.random() * a.h)
+ };
+ };
+ return r.nodes().layoutPositions(this, t, n), this;
+ };
+ var hg = [{
+ name: "breadthfirst",
+ impl: qo
+ }, {
+ name: "circle",
+ impl: Wo
+ }, {
+ name: "concentric",
+ impl: Ko
+ }, {
+ name: "cose",
+ impl: Un
+ }, {
+ name: "grid",
+ impl: jo
+ }, {
+ name: "null",
+ impl: Fi
+ }, {
+ name: "preset",
+ impl: eu
+ }, {
+ name: "random",
+ impl: tu
+ }];
+ function ru(t) {
+ this.options = t, this.notifications = 0;
+ }
+ var au = function() {
+ }, nu = function() {
+ throw new Error("A headless instance can not render images");
+ };
+ ru.prototype = {
+ recalculateRenderedStyle: au,
+ notify: function() {
+ this.notifications++;
+ },
+ init: au,
+ isHeadless: function() {
+ return !0;
+ },
+ png: nu,
+ jpg: nu
+ };
+ var zi = {};
+ zi.arrowShapeWidth = 0.3, zi.registerArrowShapes = function() {
+ var t = this.arrowShapes = {}, e = this, r = function(u, f, h, c, v, d, g) {
+ var y = v.x - h / 2 - g, p = v.x + h / 2 + g, m = v.y - h / 2 - g, b = v.y + h / 2 + g, E = y <= u && u <= p && m <= f && f <= b;
+ return E;
+ }, a = function(u, f, h, c, v) {
+ var d = u * Math.cos(c) - f * Math.sin(c), g = u * Math.sin(c) + f * Math.cos(c), y = d * h, p = g * h, m = y + v.x, b = p + v.y;
+ return {
+ x: m,
+ y: b
+ };
+ }, n = function(u, f, h, c) {
+ for (var v = [], d = 0; d < u.length; d += 2) {
+ var g = u[d], y = u[d + 1];
+ v.push(a(g, y, f, h, c));
+ }
+ return v;
+ }, i = function(u) {
+ for (var f = [], h = 0; h < u.length; h++) {
+ var c = u[h];
+ f.push(c.x, c.y);
+ }
+ return f;
+ }, s = function(u) {
+ return u.pstyle("width").pfValue * u.pstyle("arrow-scale").pfValue * 2;
+ }, o = function(u, f) {
+ j(f) && (f = t[f]), t[u] = Ue({
+ name: u,
+ points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3],
+ collide: function(c, v, d, g, y, p) {
+ var m = i(n(this.points, d + 2 * p, g, y)), b = Yt(c, v, m);
+ return b;
+ },
+ roughCollide: r,
+ draw: function(c, v, d, g) {
+ var y = n(this.points, v, d, g);
+ e.arrowShapeImpl("polygon")(c, y);
+ },
+ spacing: function(c) {
+ return 0;
+ },
+ gap: s
+ }, f);
+ };
+ o("none", {
+ collide: cn,
+ roughCollide: cn,
+ draw: si,
+ spacing: ds,
+ gap: ds
+ }), o("triangle", {
+ points: [-0.15, -0.3, 0, 0, 0.15, -0.3]
+ }), o("arrow", "triangle"), o("triangle-backcurve", {
+ points: t.triangle.points,
+ controlPoint: [0, -0.15],
+ roughCollide: r,
+ draw: function(u, f, h, c, v) {
+ var d = n(this.points, f, h, c), g = this.controlPoint, y = a(g[0], g[1], f, h, c);
+ e.arrowShapeImpl(this.name)(u, d, y);
+ },
+ gap: function(u) {
+ return s(u) * 0.8;
+ }
+ }), o("triangle-tee", {
+ points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
+ pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4],
+ collide: function(u, f, h, c, v, d, g) {
+ var y = i(n(this.points, h + 2 * g, c, v)), p = i(n(this.pointsTee, h + 2 * g, c, v)), m = Yt(u, f, y) || Yt(u, f, p);
+ return m;
+ },
+ draw: function(u, f, h, c, v) {
+ var d = n(this.points, f, h, c), g = n(this.pointsTee, f, h, c);
+ e.arrowShapeImpl(this.name)(u, d, g);
+ }
+ }), o("circle-triangle", {
+ radius: 0.15,
+ pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15],
+ collide: function(u, f, h, c, v, d, g) {
+ var y = v, p = Math.pow(y.x - u, 2) + Math.pow(y.y - f, 2) <= Math.pow((h + 2 * g) * this.radius, 2), m = i(n(this.points, h + 2 * g, c, v));
+ return Yt(u, f, m) || p;
+ },
+ draw: function(u, f, h, c, v) {
+ var d = n(this.pointsTr, f, h, c);
+ e.arrowShapeImpl(this.name)(u, d, c.x, c.y, this.radius * f);
+ },
+ spacing: function(u) {
+ return e.getArrowWidth(u.pstyle("width").pfValue, u.pstyle("arrow-scale").value) * this.radius;
+ }
+ }), o("triangle-cross", {
+ points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
+ baseCrossLinePts: [
+ -0.15,
+ -0.4,
+ // first half of the rectangle
+ -0.15,
+ -0.4,
+ 0.15,
+ -0.4,
+ // second half of the rectangle
+ 0.15,
+ -0.4
+ ],
+ crossLinePts: function(u, f) {
+ var h = this.baseCrossLinePts.slice(), c = f / u, v = 3, d = 5;
+ return h[v] = h[v] - c, h[d] = h[d] - c, h;
+ },
+ collide: function(u, f, h, c, v, d, g) {
+ var y = i(n(this.points, h + 2 * g, c, v)), p = i(n(this.crossLinePts(h, d), h + 2 * g, c, v)), m = Yt(u, f, y) || Yt(u, f, p);
+ return m;
+ },
+ draw: function(u, f, h, c, v) {
+ var d = n(this.points, f, h, c), g = n(this.crossLinePts(f, v), f, h, c);
+ e.arrowShapeImpl(this.name)(u, d, g);
+ }
+ }), o("vee", {
+ points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15],
+ gap: function(u) {
+ return s(u) * 0.525;
+ }
+ }), o("circle", {
+ radius: 0.15,
+ collide: function(u, f, h, c, v, d, g) {
+ var y = v, p = Math.pow(y.x - u, 2) + Math.pow(y.y - f, 2) <= Math.pow((h + 2 * g) * this.radius, 2);
+ return p;
+ },
+ draw: function(u, f, h, c, v) {
+ e.arrowShapeImpl(this.name)(u, c.x, c.y, this.radius * f);
+ },
+ spacing: function(u) {
+ return e.getArrowWidth(u.pstyle("width").pfValue, u.pstyle("arrow-scale").value) * this.radius;
+ }
+ }), o("tee", {
+ points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0],
+ spacing: function(u) {
+ return 1;
+ },
+ gap: function(u) {
+ return 1;
+ }
+ }), o("square", {
+ points: [-0.15, 0, 0.15, 0, 0.15, -0.3, -0.15, -0.3]
+ }), o("diamond", {
+ points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0],
+ gap: function(u) {
+ return u.pstyle("width").pfValue * u.pstyle("arrow-scale").value;
+ }
+ }), o("chevron", {
+ points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15],
+ gap: function(u) {
+ return 0.95 * u.pstyle("width").pfValue * u.pstyle("arrow-scale").value;
+ }
+ });
+ };
+ var Vr = {};
+ Vr.projectIntoViewport = function(t, e) {
+ var r = this.cy, a = this.findContainerClientCoords(), n = a[0], i = a[1], s = a[4], o = r.pan(), l = r.zoom(), u = ((t - n) / s - o.x) / l, f = ((e - i) / s - o.y) / l;
+ return [u, f];
+ }, Vr.findContainerClientCoords = function() {
+ if (this.containerBB)
+ return this.containerBB;
+ var t = this.container, e = t.getBoundingClientRect(), r = D.getComputedStyle(t), a = function(p) {
+ return parseFloat(r.getPropertyValue(p));
+ }, n = {
+ left: a("padding-left"),
+ right: a("padding-right"),
+ top: a("padding-top"),
+ bottom: a("padding-bottom")
+ }, i = {
+ left: a("border-left-width"),
+ right: a("border-right-width"),
+ top: a("border-top-width"),
+ bottom: a("border-bottom-width")
+ }, s = t.clientWidth, o = t.clientHeight, l = n.left + n.right, u = n.top + n.bottom, f = i.left + i.right, h = e.width / (s + f), c = s - l, v = o - u, d = e.left + n.left + i.left, g = e.top + n.top + i.top;
+ return this.containerBB = [d, g, c, v, h];
+ }, Vr.invalidateContainerClientCoordsCache = function() {
+ this.containerBB = null;
+ }, Vr.findNearestElement = function(t, e, r, a) {
+ return this.findNearestElements(t, e, r, a)[0];
+ }, Vr.findNearestElements = function(t, e, r, a) {
+ var n = this, i = this, s = i.getCachedZSortedEles(), o = [], l = i.cy.zoom(), u = i.cy.hasCompoundNodes(), f = (a ? 24 : 8) / l, h = (a ? 8 : 2) / l, c = (a ? 8 : 2) / l, v = 1 / 0, d, g;
+ r && (s = s.interactive);
+ function y(w, I) {
+ if (w.isNode()) {
+ if (g)
+ return;
+ g = w, o.push(w);
+ }
+ if (w.isEdge() && (I == null || I < v))
+ if (d) {
+ if (d.pstyle("z-compound-depth").value === w.pstyle("z-compound-depth").value && d.pstyle("z-compound-depth").value === w.pstyle("z-compound-depth").value) {
+ for (var C = 0; C < o.length; C++)
+ if (o[C].isEdge()) {
+ o[C] = w, d = w, v = I ?? v;
+ break;
+ }
+ }
+ } else
+ o.push(w), d = w, v = I ?? v;
+ }
+ function p(w) {
+ var I = w.outerWidth() + 2 * h, C = w.outerHeight() + 2 * h, B = I / 2, F = C / 2, R = w.position();
+ if (R.x - B <= t && t <= R.x + B && R.y - F <= e && e <= R.y + F) {
+ var X = i.nodeShapes[n.getNodeShape(w)];
+ if (X.checkPoint(t, e, 0, I, C, R.x, R.y))
+ return y(w, 0), !0;
+ }
+ }
+ function m(w) {
+ var I = w._private, C = I.rscratch, B = w.pstyle("width").pfValue, F = w.pstyle("arrow-scale").value, R = B / 2 + f, X = R * R, z = R * 2, ie = I.source, oe = I.target, re;
+ if (C.edgeType === "segments" || C.edgeType === "straight" || C.edgeType === "haystack") {
+ for (var W = C.allpts, Z = 0; Z + 3 < W.length; Z += 2)
+ if (Af(t, e, W[Z], W[Z + 1], W[Z + 2], W[Z + 3], z) && X > (re = Rf(t, e, W[Z], W[Z + 1], W[Z + 2], W[Z + 3])))
+ return y(w, re), !0;
+ } else if (C.edgeType === "bezier" || C.edgeType === "multibezier" || C.edgeType === "self" || C.edgeType === "compound") {
+ for (var W = C.allpts, Z = 0; Z + 5 < C.allpts.length; Z += 4)
+ if (Of(t, e, W[Z], W[Z + 1], W[Z + 2], W[Z + 3], W[Z + 4], W[Z + 5], z) && X > (re = If(t, e, W[Z], W[Z + 1], W[Z + 2], W[Z + 3], W[Z + 4], W[Z + 5])))
+ return y(w, re), !0;
+ }
+ for (var ie = ie || I.source, oe = oe || I.target, ge = n.getArrowWidth(B, F), se = [{
+ name: "source",
+ x: C.arrowStartX,
+ y: C.arrowStartY,
+ angle: C.srcArrowAngle
+ }, {
+ name: "target",
+ x: C.arrowEndX,
+ y: C.arrowEndY,
+ angle: C.tgtArrowAngle
+ }, {
+ name: "mid-source",
+ x: C.midX,
+ y: C.midY,
+ angle: C.midsrcArrowAngle
+ }, {
+ name: "mid-target",
+ x: C.midX,
+ y: C.midY,
+ angle: C.midtgtArrowAngle
+ }], Z = 0; Z < se.length; Z++) {
+ var de = se[Z], we = i.arrowShapes[w.pstyle(de.name + "-arrow-shape").value], Te = w.pstyle("width").pfValue;
+ if (we.roughCollide(t, e, ge, de.angle, {
+ x: de.x,
+ y: de.y
+ }, Te, f) && we.collide(t, e, ge, de.angle, {
+ x: de.x,
+ y: de.y
+ }, Te, f))
+ return y(w), !0;
+ }
+ u && o.length > 0 && (p(ie), p(oe));
+ }
+ function b(w, I, C) {
+ return er(w, I, C);
+ }
+ function E(w, I) {
+ var C = w._private, B = c, F;
+ I ? F = I + "-" : F = "", w.boundingBox();
+ var R = C.labelBounds[I || "main"], X = w.pstyle(F + "label").value, z = w.pstyle("text-events").strValue === "yes";
+ if (!(!z || !X)) {
+ var re = b(C.rscratch, "labelX", I), W = b(C.rscratch, "labelY", I), Z = b(C.rscratch, "labelAngle", I), ie = w.pstyle(F + "text-margin-x").pfValue, oe = w.pstyle(F + "text-margin-y").pfValue, ge = R.x1 - B - ie, se = R.x2 + B - ie, de = R.y1 - B - oe, we = R.y2 + B - oe;
+ if (Z) {
+ var Te = Math.cos(Z), Ee = Math.sin(Z), ye = function(qe, Re) {
+ return qe = qe - re, Re = Re - W, {
+ x: qe * Te - Re * Ee + re,
+ y: qe * Ee + Re * Te + W
+ };
+ }, ae = ye(ge, de), xe = ye(ge, we), Ce = ye(se, de), Oe = ye(se, we), Ie = [
+ // with the margin added after the rotation is applied
+ ae.x + ie,
+ ae.y + oe,
+ Ce.x + ie,
+ Ce.y + oe,
+ Oe.x + ie,
+ Oe.y + oe,
+ xe.x + ie,
+ xe.y + oe
+ ];
+ if (Yt(t, e, Ie))
+ return y(w), !0;
+ } else if (ta(R, t, e))
+ return y(w), !0;
+ }
+ }
+ for (var M = s.length - 1; M >= 0; M--) {
+ var A = s[M];
+ A.isNode() ? p(A) || E(A) : m(A) || E(A) || E(A, "source") || E(A, "target");
+ }
+ return o;
+ }, Vr.getAllInBox = function(t, e, r, a) {
+ var n = this.getCachedZSortedEles().interactive, i = [], s = Math.min(t, r), o = Math.max(t, r), l = Math.min(e, a), u = Math.max(e, a);
+ t = s, r = o, e = l, a = u;
+ for (var f = Ut({
+ x1: t,
+ y1: e,
+ x2: r,
+ y2: a
+ }), h = 0; h < n.length; h++) {
+ var c = n[h];
+ if (c.isNode()) {
+ var v = c, d = v.boundingBox({
+ includeNodes: !0,
+ includeEdges: !1,
+ includeLabels: !1
+ });
+ hi(f, d) && !xs(d, f) && i.push(v);
+ } else {
+ var g = c, y = g._private, p = y.rscratch;
+ if (p.startX != null && p.startY != null && !ta(f, p.startX, p.startY) || p.endX != null && p.endY != null && !ta(f, p.endX, p.endY))
+ continue;
+ if (p.edgeType === "bezier" || p.edgeType === "multibezier" || p.edgeType === "self" || p.edgeType === "compound" || p.edgeType === "segments" || p.edgeType === "haystack") {
+ for (var m = y.rstyle.bezierPts || y.rstyle.linePts || y.rstyle.haystackPts, b = !0, E = 0; E < m.length; E++)
+ if (!Lf(f, m[E])) {
+ b = !1;
+ break;
+ }
+ b && i.push(g);
+ } else
+ (p.edgeType === "haystack" || p.edgeType === "straight") && i.push(g);
+ }
+ }
+ return i;
+ };
+ var Hn = {};
+ Hn.calculateArrowAngles = function(t) {
+ var e = t._private.rscratch, r = e.edgeType === "haystack", a = e.edgeType === "bezier", n = e.edgeType === "multibezier", i = e.edgeType === "segments", s = e.edgeType === "compound", o = e.edgeType === "self", l, u, f, h, c, v, p, m;
+ if (r ? (f = e.haystackPts[0], h = e.haystackPts[1], c = e.haystackPts[2], v = e.haystackPts[3]) : (f = e.arrowStartX, h = e.arrowStartY, c = e.arrowEndX, v = e.arrowEndY), p = e.midX, m = e.midY, i)
+ l = f - e.segpts[0], u = h - e.segpts[1];
+ else if (n || s || o || a) {
+ var d = e.allpts, g = St(d[0], d[2], d[4], 0.1), y = St(d[1], d[3], d[5], 0.1);
+ l = f - g, u = h - y;
+ } else
+ l = f - p, u = h - m;
+ e.srcArrowAngle = gn(l, u);
+ var p = e.midX, m = e.midY;
+ if (r && (p = (f + c) / 2, m = (h + v) / 2), l = c - f, u = v - h, i) {
+ var d = e.allpts;
+ if (d.length / 2 % 2 === 0) {
+ var b = d.length / 2, E = b - 2;
+ l = d[b] - d[E], u = d[b + 1] - d[E + 1];
+ } else {
+ var b = d.length / 2 - 1, E = b - 2, M = b + 2;
+ l = d[b] - d[E], u = d[b + 1] - d[E + 1];
+ }
+ } else if (n || s || o) {
+ var d = e.allpts, A = e.ctrlpts, w, I, C, B;
+ if (A.length / 2 % 2 === 0) {
+ var F = d.length / 2 - 1, R = F + 2, X = R + 2;
+ w = St(d[F], d[R], d[X], 0), I = St(d[F + 1], d[R + 1], d[X + 1], 0), C = St(d[F], d[R], d[X], 1e-4), B = St(d[F + 1], d[R + 1], d[X + 1], 1e-4);
+ } else {
+ var R = d.length / 2 - 1, F = R - 2, X = R + 2;
+ w = St(d[F], d[R], d[X], 0.4999), I = St(d[F + 1], d[R + 1], d[X + 1], 0.4999), C = St(d[F], d[R], d[X], 0.5), B = St(d[F + 1], d[R + 1], d[X + 1], 0.5);
+ }
+ l = C - w, u = B - I;
+ }
+ if (e.midtgtArrowAngle = gn(l, u), e.midDispX = l, e.midDispY = u, l *= -1, u *= -1, i) {
+ var d = e.allpts;
+ if (d.length / 2 % 2 !== 0) {
+ var b = d.length / 2 - 1, M = b + 2;
+ l = -(d[M] - d[b]), u = -(d[M + 1] - d[b + 1]);
+ }
+ }
+ if (e.midsrcArrowAngle = gn(l, u), i)
+ l = c - e.segpts[e.segpts.length - 2], u = v - e.segpts[e.segpts.length - 1];
+ else if (n || s || o || a) {
+ var d = e.allpts, z = d.length, g = St(d[z - 6], d[z - 4], d[z - 2], 0.9), y = St(d[z - 5], d[z - 3], d[z - 1], 0.9);
+ l = c - g, u = v - y;
+ } else
+ l = c - p, u = v - m;
+ e.tgtArrowAngle = gn(l, u);
+ }, Hn.getArrowWidth = Hn.getArrowHeight = function(t, e) {
+ var r = this.arrowWidthCache = this.arrowWidthCache || {}, a = r[t + ", " + e];
+ return a || (a = Math.max(Math.pow(t * 13.37, 0.9), 29) * e, r[t + ", " + e] = a, a);
+ };
+ var Vt = {};
+ Vt.findHaystackPoints = function(t) {
+ for (var e = 0; e < t.length; e++) {
+ var r = t[e], a = r._private, n = a.rscratch;
+ if (!n.haystack) {
+ var i = Math.random() * 2 * Math.PI;
+ n.source = {
+ x: Math.cos(i),
+ y: Math.sin(i)
+ }, i = Math.random() * 2 * Math.PI, n.target = {
+ x: Math.cos(i),
+ y: Math.sin(i)
+ };
+ }
+ var s = a.source, o = a.target, l = s.position(), u = o.position(), f = s.width(), h = o.width(), c = s.height(), v = o.height(), d = r.pstyle("haystack-radius").value, g = d / 2;
+ n.haystackPts = n.allpts = [n.source.x * f * g + l.x, n.source.y * c * g + l.y, n.target.x * h * g + u.x, n.target.y * v * g + u.y], n.midX = (n.allpts[0] + n.allpts[2]) / 2, n.midY = (n.allpts[1] + n.allpts[3]) / 2, n.edgeType = "haystack", n.haystack = !0, this.storeEdgeProjections(r), this.calculateArrowAngles(r), this.recalculateEdgeLabelProjections(r), this.calculateLabelAngles(r);
+ }
+ }, Vt.findSegmentsPoints = function(t, e) {
+ var r = t._private.rscratch, a = e.posPts, n = e.intersectionPts, i = e.vectorNormInverse, s = t.pstyle("edge-distances").value, o = t.pstyle("segment-weights"), l = t.pstyle("segment-distances"), u = Math.min(o.pfValue.length, l.pfValue.length);
+ r.edgeType = "segments", r.segpts = [];
+ for (var f = 0; f < u; f++) {
+ var h = o.pfValue[f], c = l.pfValue[f], v = 1 - h, d = h, g = s === "node-position" ? a : n, y = {
+ x: g.x1 * v + g.x2 * d,
+ y: g.y1 * v + g.y2 * d
+ };
+ r.segpts.push(y.x + i.x * c, y.y + i.y * c);
+ }
+ }, Vt.findLoopPoints = function(t, e, r, a) {
+ var n = t._private.rscratch, i = e.dirCounts, s = e.srcPos, o = t.pstyle("control-point-distances"), l = o ? o.pfValue[0] : void 0, u = t.pstyle("loop-direction").pfValue, f = t.pstyle("loop-sweep").pfValue, h = t.pstyle("control-point-step-size").pfValue;
+ n.edgeType = "self";
+ var c = r, v = h;
+ a && (c = 0, v = l);
+ var d = u - Math.PI / 2, g = d - f / 2, y = d + f / 2, p = String(u + "_" + f);
+ c = i[p] === void 0 ? i[p] = 0 : ++i[p], n.ctrlpts = [s.x + Math.cos(g) * 1.4 * v * (c / 3 + 1), s.y + Math.sin(g) * 1.4 * v * (c / 3 + 1), s.x + Math.cos(y) * 1.4 * v * (c / 3 + 1), s.y + Math.sin(y) * 1.4 * v * (c / 3 + 1)];
+ }, Vt.findCompoundLoopPoints = function(t, e, r, a) {
+ var n = t._private.rscratch;
+ n.edgeType = "compound";
+ var i = e.srcPos, s = e.tgtPos, o = e.srcW, l = e.srcH, u = e.tgtW, f = e.tgtH, h = t.pstyle("control-point-step-size").pfValue, c = t.pstyle("control-point-distances"), v = c ? c.pfValue[0] : void 0, d = r, g = h;
+ a && (d = 0, g = v);
+ var y = 50, p = {
+ x: i.x - o / 2,
+ y: i.y - l / 2
+ }, m = {
+ x: s.x - u / 2,
+ y: s.y - f / 2
+ }, b = {
+ x: Math.min(p.x, m.x),
+ y: Math.min(p.y, m.y)
+ }, E = 0.5, M = Math.max(E, Math.log(o * 0.01)), A = Math.max(E, Math.log(u * 0.01));
+ n.ctrlpts = [b.x, b.y - (1 + Math.pow(y, 1.12) / 100) * g * (d / 3 + 1) * M, b.x - (1 + Math.pow(y, 1.12) / 100) * g * (d / 3 + 1) * A, b.y];
+ }, Vt.findStraightEdgePoints = function(t) {
+ t._private.rscratch.edgeType = "straight";
+ }, Vt.findBezierPoints = function(t, e, r, a, n) {
+ var i = t._private.rscratch, s = e.vectorNormInverse, o = e.posPts, l = e.intersectionPts, u = t.pstyle("edge-distances").value, f = t.pstyle("control-point-step-size").pfValue, h = t.pstyle("control-point-distances"), c = t.pstyle("control-point-weights"), v = h && c ? Math.min(h.value.length, c.value.length) : 1, d = h ? h.pfValue[0] : void 0, g = c.value[0], y = a;
+ i.edgeType = y ? "multibezier" : "bezier", i.ctrlpts = [];
+ for (var p = 0; p < v; p++) {
+ var m = (0.5 - e.eles.length / 2 + r) * f * (n ? -1 : 1), b = void 0, E = Es(m);
+ y && (d = h ? h.pfValue[p] : f, g = c.value[p]), a ? b = d : b = d !== void 0 ? E * d : void 0;
+ var M = b !== void 0 ? b : m, A = 1 - g, w = g, I = u === "node-position" ? o : l, C = {
+ x: I.x1 * A + I.x2 * w,
+ y: I.y1 * A + I.y2 * w
+ };
+ i.ctrlpts.push(C.x + s.x * M, C.y + s.y * M);
+ }
+ }, Vt.findTaxiPoints = function(t, e) {
+ var r = t._private.rscratch;
+ r.edgeType = "segments";
+ var a = "vertical", n = "horizontal", i = "leftward", s = "rightward", o = "downward", l = "upward", u = "auto", f = e.posPts, h = e.srcW, c = e.srcH, v = e.tgtW, d = e.tgtH, g = t.pstyle("edge-distances").value, y = g !== "node-position", p = t.pstyle("taxi-direction").value, m = p, b = t.pstyle("taxi-turn"), E = b.units === "%", M = b.pfValue, A = M < 0, w = t.pstyle("taxi-turn-min-distance").pfValue, I = y ? (h + v) / 2 : 0, C = y ? (c + d) / 2 : 0, B = f.x2 - f.x1, F = f.y2 - f.y1, R = function(ze, at) {
+ return ze > 0 ? Math.max(ze - at, 0) : Math.min(ze + at, 0);
+ }, X = R(B, I), z = R(F, C), re = !1;
+ m === u ? p = Math.abs(X) > Math.abs(z) ? n : a : m === l || m === o ? (p = a, re = !0) : (m === i || m === s) && (p = n, re = !0);
+ var W = p === a, Z = W ? z : X, ie = W ? F : B, oe = Es(ie), ge = !1;
+ !(re && (E || A)) && (m === o && ie < 0 || m === l && ie > 0 || m === i && ie > 0 || m === s && ie < 0) && (oe *= -1, Z = oe * Math.abs(Z), ge = !0);
+ var se;
+ if (E) {
+ var de = M < 0 ? 1 + M : M;
+ se = de * Z;
+ } else {
+ var we = M < 0 ? Z : 0;
+ se = we + M * oe;
+ }
+ var Te = function(ze) {
+ return Math.abs(ze) < w || Math.abs(ze) >= Math.abs(Z);
+ }, Ee = Te(se), ye = Te(Math.abs(Z) - Math.abs(se)), ae = Ee || ye;
+ if (ae && !ge)
+ if (W) {
+ var xe = Math.abs(ie) <= c / 2, Ce = Math.abs(B) <= v / 2;
+ if (xe) {
+ var Oe = (f.x1 + f.x2) / 2, Ie = f.y1, He = f.y2;
+ r.segpts = [Oe, Ie, Oe, He];
+ } else if (Ce) {
+ var qe = (f.y1 + f.y2) / 2, Re = f.x1, Me = f.x2;
+ r.segpts = [Re, qe, Me, qe];
+ } else
+ r.segpts = [f.x1, f.y2];
+ } else {
+ var Ve = Math.abs(ie) <= h / 2, Fe = Math.abs(F) <= d / 2;
+ if (Ve) {
+ var ke = (f.y1 + f.y2) / 2, Ge = f.x1, et = f.x2;
+ r.segpts = [Ge, ke, et, ke];
+ } else if (Fe) {
+ var We = (f.x1 + f.x2) / 2, Ye = f.y1, Se = f.y2;
+ r.segpts = [We, Ye, We, Se];
+ } else
+ r.segpts = [f.x2, f.y1];
+ }
+ else if (W) {
+ var N = f.y1 + se + (y ? c / 2 * oe : 0), le = f.x1, De = f.x2;
+ r.segpts = [le, N, De, N];
+ } else {
+ var me = f.x1 + se + (y ? h / 2 * oe : 0), be = f.y1, Ke = f.y2;
+ r.segpts = [me, be, me, Ke];
+ }
+ }, Vt.tryToCorrectInvalidPoints = function(t, e) {
+ var r = t._private.rscratch;
+ if (r.edgeType === "bezier") {
+ var a = e.srcPos, n = e.tgtPos, i = e.srcW, s = e.srcH, o = e.tgtW, l = e.tgtH, u = e.srcShape, f = e.tgtShape, h = !k(r.startX) || !k(r.startY), c = !k(r.arrowStartX) || !k(r.arrowStartY), v = !k(r.endX) || !k(r.endY), d = !k(r.arrowEndX) || !k(r.arrowEndY), g = 3, y = this.getArrowWidth(t.pstyle("width").pfValue, t.pstyle("arrow-scale").value) * this.arrowShapeWidth, p = g * y, m = Pr({
+ x: r.ctrlpts[0],
+ y: r.ctrlpts[1]
+ }, {
+ x: r.startX,
+ y: r.startY
+ }), b = m < p, E = Pr({
+ x: r.ctrlpts[0],
+ y: r.ctrlpts[1]
+ }, {
+ x: r.endX,
+ y: r.endY
+ }), M = E < p, A = !1;
+ if (h || c || b) {
+ A = !0;
+ var w = {
+ // delta
+ x: r.ctrlpts[0] - a.x,
+ y: r.ctrlpts[1] - a.y
+ }, I = Math.sqrt(w.x * w.x + w.y * w.y), C = {
+ // normalised delta
+ x: w.x / I,
+ y: w.y / I
+ }, B = Math.max(i, s), F = {
+ // *2 radius guarantees outside shape
+ x: r.ctrlpts[0] + C.x * 2 * B,
+ y: r.ctrlpts[1] + C.y * 2 * B
+ }, R = u.intersectLine(a.x, a.y, i, s, F.x, F.y, 0);
+ b ? (r.ctrlpts[0] = r.ctrlpts[0] + C.x * (p - m), r.ctrlpts[1] = r.ctrlpts[1] + C.y * (p - m)) : (r.ctrlpts[0] = R[0] + C.x * p, r.ctrlpts[1] = R[1] + C.y * p);
+ }
+ if (v || d || M) {
+ A = !0;
+ var X = {
+ // delta
+ x: r.ctrlpts[0] - n.x,
+ y: r.ctrlpts[1] - n.y
+ }, z = Math.sqrt(X.x * X.x + X.y * X.y), re = {
+ // normalised delta
+ x: X.x / z,
+ y: X.y / z
+ }, W = Math.max(i, s), Z = {
+ // *2 radius guarantees outside shape
+ x: r.ctrlpts[0] + re.x * 2 * W,
+ y: r.ctrlpts[1] + re.y * 2 * W
+ }, ie = f.intersectLine(n.x, n.y, o, l, Z.x, Z.y, 0);
+ M ? (r.ctrlpts[0] = r.ctrlpts[0] + re.x * (p - E), r.ctrlpts[1] = r.ctrlpts[1] + re.y * (p - E)) : (r.ctrlpts[0] = ie[0] + re.x * p, r.ctrlpts[1] = ie[1] + re.y * p);
+ }
+ A && this.findEndpoints(t);
+ }
+ }, Vt.storeAllpts = function(t) {
+ var e = t._private.rscratch;
+ if (e.edgeType === "multibezier" || e.edgeType === "bezier" || e.edgeType === "self" || e.edgeType === "compound") {
+ e.allpts = [], e.allpts.push(e.startX, e.startY);
+ for (var r = 0; r + 1 < e.ctrlpts.length; r += 2)
+ e.allpts.push(e.ctrlpts[r], e.ctrlpts[r + 1]), r + 3 < e.ctrlpts.length && e.allpts.push((e.ctrlpts[r] + e.ctrlpts[r + 2]) / 2, (e.ctrlpts[r + 1] + e.ctrlpts[r + 3]) / 2);
+ e.allpts.push(e.endX, e.endY);
+ var a, n;
+ e.ctrlpts.length / 2 % 2 === 0 ? (a = e.allpts.length / 2 - 1, e.midX = e.allpts[a], e.midY = e.allpts[a + 1]) : (a = e.allpts.length / 2 - 3, n = 0.5, e.midX = St(e.allpts[a], e.allpts[a + 2], e.allpts[a + 4], n), e.midY = St(e.allpts[a + 1], e.allpts[a + 3], e.allpts[a + 5], n));
+ } else if (e.edgeType === "straight")
+ e.allpts = [e.startX, e.startY, e.endX, e.endY], e.midX = (e.startX + e.endX + e.arrowStartX + e.arrowEndX) / 4, e.midY = (e.startY + e.endY + e.arrowStartY + e.arrowEndY) / 4;
+ else if (e.edgeType === "segments")
+ if (e.allpts = [], e.allpts.push(e.startX, e.startY), e.allpts.push.apply(e.allpts, e.segpts), e.allpts.push(e.endX, e.endY), e.segpts.length % 4 === 0) {
+ var i = e.segpts.length / 2, s = i - 2;
+ e.midX = (e.segpts[s] + e.segpts[i]) / 2, e.midY = (e.segpts[s + 1] + e.segpts[i + 1]) / 2;
+ } else {
+ var o = e.segpts.length / 2 - 1;
+ e.midX = e.segpts[o], e.midY = e.segpts[o + 1];
+ }
+ }, Vt.checkForInvalidEdgeWarning = function(t) {
+ var e = t[0]._private.rscratch;
+ e.nodesOverlap || k(e.startX) && k(e.startY) && k(e.endX) && k(e.endY) ? e.loggedErr = !1 : e.loggedErr || (e.loggedErr = !0, ft("Edge `" + t.id() + "` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."));
+ }, Vt.findEdgeControlPoints = function(t) {
+ var e = this;
+ if (!(!t || t.length === 0)) {
+ for (var r = this, a = r.cy, n = a.hasCompoundNodes(), i = {
+ map: new ur(),
+ get: function(w) {
+ var I = this.map.get(w[0]);
+ return I != null ? I.get(w[1]) : null;
+ },
+ set: function(w, I) {
+ var C = this.map.get(w[0]);
+ C == null && (C = new ur(), this.map.set(w[0], C)), C.set(w[1], I);
+ }
+ }, s = [], o = [], l = 0; l < t.length; l++) {
+ var u = t[l], f = u._private, h = u.pstyle("curve-style").value;
+ if (!(u.removed() || !u.takesUpSpace())) {
+ if (h === "haystack") {
+ o.push(u);
+ continue;
+ }
+ var c = h === "unbundled-bezier" || h === "segments" || h === "straight" || h === "straight-triangle" || h === "taxi", v = h === "unbundled-bezier" || h === "bezier", d = f.source, g = f.target, y = d.poolIndex(), p = g.poolIndex(), m = [y, p].sort(), b = i.get(m);
+ b == null && (b = {
+ eles: []
+ }, i.set(m, b), s.push(m)), b.eles.push(u), c && (b.hasUnbundled = !0), v && (b.hasBezier = !0);
+ }
+ }
+ for (var E = function(w) {
+ var I = s[w], C = i.get(I), B = void 0;
+ if (!C.hasUnbundled) {
+ var F = C.eles[0].parallelEdges().filter(function(Se) {
+ return Se.isBundledBezier();
+ });
+ oi(C.eles), F.forEach(function(Se) {
+ return C.eles.push(Se);
+ }), C.eles.sort(function(Se, N) {
+ return Se.poolIndex() - N.poolIndex();
+ });
+ }
+ var R = C.eles[0], X = R.source(), z = R.target();
+ if (X.poolIndex() > z.poolIndex()) {
+ var re = X;
+ X = z, z = re;
+ }
+ var W = C.srcPos = X.position(), Z = C.tgtPos = z.position(), ie = C.srcW = X.outerWidth(), oe = C.srcH = X.outerHeight(), ge = C.tgtW = z.outerWidth(), se = C.tgtH = z.outerHeight(), de = C.srcShape = r.nodeShapes[e.getNodeShape(X)], we = C.tgtShape = r.nodeShapes[e.getNodeShape(z)];
+ C.dirCounts = {
+ north: 0,
+ west: 0,
+ south: 0,
+ east: 0,
+ northwest: 0,
+ southwest: 0,
+ northeast: 0,
+ southeast: 0
+ };
+ for (var Te = 0; Te < C.eles.length; Te++) {
+ var Ee = C.eles[Te], ye = Ee[0]._private.rscratch, ae = Ee.pstyle("curve-style").value, xe = ae === "unbundled-bezier" || ae === "segments" || ae === "taxi", Ce = !X.same(Ee.source());
+ if (!C.calculatedIntersection && X !== z && (C.hasBezier || C.hasUnbundled)) {
+ C.calculatedIntersection = !0;
+ var Oe = de.intersectLine(W.x, W.y, ie, oe, Z.x, Z.y, 0), Ie = C.srcIntn = Oe, He = we.intersectLine(Z.x, Z.y, ge, se, W.x, W.y, 0), qe = C.tgtIntn = He, Re = C.intersectionPts = {
+ x1: Oe[0],
+ x2: He[0],
+ y1: Oe[1],
+ y2: He[1]
+ }, Me = C.posPts = {
+ x1: W.x,
+ x2: Z.x,
+ y1: W.y,
+ y2: Z.y
+ }, Ve = He[1] - Oe[1], Fe = He[0] - Oe[0], ke = Math.sqrt(Fe * Fe + Ve * Ve), Ge = C.vector = {
+ x: Fe,
+ y: Ve
+ }, et = C.vectorNorm = {
+ x: Ge.x / ke,
+ y: Ge.y / ke
+ }, We = {
+ x: -et.y,
+ y: et.x
+ };
+ C.nodesOverlap = !k(ke) || we.checkPoint(Oe[0], Oe[1], 0, ge, se, Z.x, Z.y) || de.checkPoint(He[0], He[1], 0, ie, oe, W.x, W.y), C.vectorNormInverse = We, B = {
+ nodesOverlap: C.nodesOverlap,
+ dirCounts: C.dirCounts,
+ calculatedIntersection: !0,
+ hasBezier: C.hasBezier,
+ hasUnbundled: C.hasUnbundled,
+ eles: C.eles,
+ srcPos: Z,
+ tgtPos: W,
+ srcW: ge,
+ srcH: se,
+ tgtW: ie,
+ tgtH: oe,
+ srcIntn: qe,
+ tgtIntn: Ie,
+ srcShape: we,
+ tgtShape: de,
+ posPts: {
+ x1: Me.x2,
+ y1: Me.y2,
+ x2: Me.x1,
+ y2: Me.y1
+ },
+ intersectionPts: {
+ x1: Re.x2,
+ y1: Re.y2,
+ x2: Re.x1,
+ y2: Re.y1
+ },
+ vector: {
+ x: -Ge.x,
+ y: -Ge.y
+ },
+ vectorNorm: {
+ x: -et.x,
+ y: -et.y
+ },
+ vectorNormInverse: {
+ x: -We.x,
+ y: -We.y
+ }
+ };
+ }
+ var Ye = Ce ? B : C;
+ ye.nodesOverlap = Ye.nodesOverlap, ye.srcIntn = Ye.srcIntn, ye.tgtIntn = Ye.tgtIntn, n && (X.isParent() || X.isChild() || z.isParent() || z.isChild()) && (X.parents().anySame(z) || z.parents().anySame(X) || X.same(z) && X.isParent()) ? e.findCompoundLoopPoints(Ee, Ye, Te, xe) : X === z ? e.findLoopPoints(Ee, Ye, Te, xe) : ae === "segments" ? e.findSegmentsPoints(Ee, Ye) : ae === "taxi" ? e.findTaxiPoints(Ee, Ye) : ae === "straight" || !xe && C.eles.length % 2 === 1 && Te === Math.floor(C.eles.length / 2) ? e.findStraightEdgePoints(Ee) : e.findBezierPoints(Ee, Ye, Te, xe, Ce), e.findEndpoints(Ee), e.tryToCorrectInvalidPoints(Ee, Ye), e.checkForInvalidEdgeWarning(Ee), e.storeAllpts(Ee), e.storeEdgeProjections(Ee), e.calculateArrowAngles(Ee), e.recalculateEdgeLabelProjections(Ee), e.calculateLabelAngles(Ee);
+ }
+ }, M = 0; M < s.length; M++)
+ E(M);
+ this.findHaystackPoints(o);
+ }
+ };
+ function iu(t) {
+ var e = [];
+ if (t != null) {
+ for (var r = 0; r < t.length; r += 2) {
+ var a = t[r], n = t[r + 1];
+ e.push({
+ x: a,
+ y: n
+ });
+ }
+ return e;
+ }
+ }
+ Vt.getSegmentPoints = function(t) {
+ var e = t[0]._private.rscratch, r = e.edgeType;
+ if (r === "segments")
+ return this.recalculateRenderedStyle(t), iu(e.segpts);
+ }, Vt.getControlPoints = function(t) {
+ var e = t[0]._private.rscratch, r = e.edgeType;
+ if (r === "bezier" || r === "multibezier" || r === "self" || r === "compound")
+ return this.recalculateRenderedStyle(t), iu(e.ctrlpts);
+ }, Vt.getEdgeMidpoint = function(t) {
+ var e = t[0]._private.rscratch;
+ return this.recalculateRenderedStyle(t), {
+ x: e.midX,
+ y: e.midY
+ };
+ };
+ var Qa = {};
+ Qa.manualEndptToPx = function(t, e) {
+ var r = this, a = t.position(), n = t.outerWidth(), i = t.outerHeight();
+ if (e.value.length === 2) {
+ var s = [e.pfValue[0], e.pfValue[1]];
+ return e.units[0] === "%" && (s[0] = s[0] * n), e.units[1] === "%" && (s[1] = s[1] * i), s[0] += a.x, s[1] += a.y, s;
+ } else {
+ var o = e.pfValue[0];
+ o = -Math.PI / 2 + o;
+ var l = 2 * Math.max(n, i), u = [a.x + Math.cos(o) * l, a.y + Math.sin(o) * l];
+ return r.nodeShapes[this.getNodeShape(t)].intersectLine(a.x, a.y, n, i, u[0], u[1], 0);
+ }
+ }, Qa.findEndpoints = function(t) {
+ var e = this, r, a = t.source()[0], n = t.target()[0], i = a.position(), s = n.position(), o = t.pstyle("target-arrow-shape").value, l = t.pstyle("source-arrow-shape").value, u = t.pstyle("target-distance-from-node").pfValue, f = t.pstyle("source-distance-from-node").pfValue, h = t.pstyle("curve-style").value, c = t._private.rscratch, v = c.edgeType, d = h === "taxi", g = v === "self" || v === "compound", y = v === "bezier" || v === "multibezier" || g, p = v !== "bezier", m = v === "straight" || v === "segments", b = v === "segments", E = y || p || m, M = g || d, A = t.pstyle("source-endpoint"), w = M ? "outside-to-node" : A.value, I = t.pstyle("target-endpoint"), C = M ? "outside-to-node" : I.value;
+ c.srcManEndpt = A, c.tgtManEndpt = I;
+ var B, F, R, X;
+ if (y) {
+ var z = [c.ctrlpts[0], c.ctrlpts[1]], re = p ? [c.ctrlpts[c.ctrlpts.length - 2], c.ctrlpts[c.ctrlpts.length - 1]] : z;
+ B = re, F = z;
+ } else if (m) {
+ var W = b ? c.segpts.slice(0, 2) : [s.x, s.y], Z = b ? c.segpts.slice(c.segpts.length - 2) : [i.x, i.y];
+ B = Z, F = W;
+ }
+ if (C === "inside-to-node")
+ r = [s.x, s.y];
+ else if (I.units)
+ r = this.manualEndptToPx(n, I);
+ else if (C === "outside-to-line")
+ r = c.tgtIntn;
+ else if (C === "outside-to-node" || C === "outside-to-node-or-label" ? R = B : (C === "outside-to-line" || C === "outside-to-line-or-label") && (R = [i.x, i.y]), r = e.nodeShapes[this.getNodeShape(n)].intersectLine(s.x, s.y, n.outerWidth(), n.outerHeight(), R[0], R[1], 0), C === "outside-to-node-or-label" || C === "outside-to-line-or-label") {
+ var ie = n._private.rscratch, oe = ie.labelWidth, ge = ie.labelHeight, se = ie.labelX, de = ie.labelY, we = oe / 2, Te = ge / 2, Ee = n.pstyle("text-valign").value;
+ Ee === "top" ? de -= Te : Ee === "bottom" && (de += Te);
+ var ye = n.pstyle("text-halign").value;
+ ye === "left" ? se -= we : ye === "right" && (se += we);
+ var ae = Ba(R[0], R[1], [se - we, de - Te, se + we, de - Te, se + we, de + Te, se - we, de + Te], s.x, s.y);
+ if (ae.length > 0) {
+ var xe = i, Ce = Br(xe, jr(r)), Oe = Br(xe, jr(ae)), Ie = Ce;
+ if (Oe < Ce && (r = ae, Ie = Oe), ae.length > 2) {
+ var He = Br(xe, {
+ x: ae[2],
+ y: ae[3]
+ });
+ He < Ie && (r = [ae[2], ae[3]]);
+ }
+ }
+ }
+ var qe = yn(r, B, e.arrowShapes[o].spacing(t) + u), Re = yn(r, B, e.arrowShapes[o].gap(t) + u);
+ if (c.endX = Re[0], c.endY = Re[1], c.arrowEndX = qe[0], c.arrowEndY = qe[1], w === "inside-to-node")
+ r = [i.x, i.y];
+ else if (A.units)
+ r = this.manualEndptToPx(a, A);
+ else if (w === "outside-to-line")
+ r = c.srcIntn;
+ else if (w === "outside-to-node" || w === "outside-to-node-or-label" ? X = F : (w === "outside-to-line" || w === "outside-to-line-or-label") && (X = [s.x, s.y]), r = e.nodeShapes[this.getNodeShape(a)].intersectLine(i.x, i.y, a.outerWidth(), a.outerHeight(), X[0], X[1], 0), w === "outside-to-node-or-label" || w === "outside-to-line-or-label") {
+ var Me = a._private.rscratch, Ve = Me.labelWidth, Fe = Me.labelHeight, ke = Me.labelX, Ge = Me.labelY, et = Ve / 2, We = Fe / 2, Ye = a.pstyle("text-valign").value;
+ Ye === "top" ? Ge -= We : Ye === "bottom" && (Ge += We);
+ var Se = a.pstyle("text-halign").value;
+ Se === "left" ? ke -= et : Se === "right" && (ke += et);
+ var N = Ba(X[0], X[1], [ke - et, Ge - We, ke + et, Ge - We, ke + et, Ge + We, ke - et, Ge + We], i.x, i.y);
+ if (N.length > 0) {
+ var le = s, De = Br(le, jr(r)), me = Br(le, jr(N)), be = De;
+ if (me < De && (r = [N[0], N[1]], be = me), N.length > 2) {
+ var Ke = Br(le, {
+ x: N[2],
+ y: N[3]
+ });
+ Ke < be && (r = [N[2], N[3]]);
+ }
+ }
+ }
+ var Le = yn(r, F, e.arrowShapes[l].spacing(t) + f), ze = yn(r, F, e.arrowShapes[l].gap(t) + f);
+ c.startX = ze[0], c.startY = ze[1], c.arrowStartX = Le[0], c.arrowStartY = Le[1], E && (!k(c.startX) || !k(c.startY) || !k(c.endX) || !k(c.endY) ? c.badLine = !0 : c.badLine = !1);
+ }, Qa.getSourceEndpoint = function(t) {
+ var e = t[0]._private.rscratch;
+ switch (this.recalculateRenderedStyle(t), e.edgeType) {
+ case "haystack":
+ return {
+ x: e.haystackPts[0],
+ y: e.haystackPts[1]
+ };
+ default:
+ return {
+ x: e.arrowStartX,
+ y: e.arrowStartY
+ };
+ }
+ }, Qa.getTargetEndpoint = function(t) {
+ var e = t[0]._private.rscratch;
+ switch (this.recalculateRenderedStyle(t), e.edgeType) {
+ case "haystack":
+ return {
+ x: e.haystackPts[2],
+ y: e.haystackPts[3]
+ };
+ default:
+ return {
+ x: e.arrowEndX,
+ y: e.arrowEndY
+ };
+ }
+ };
+ var Gi = {};
+ function cg(t, e, r) {
+ for (var a = function(u, f, h, c) {
+ return St(u, f, h, c);
+ }, n = e._private, i = n.rstyle.bezierPts, s = 0; s < t.bezierProjPcts.length; s++) {
+ var o = t.bezierProjPcts[s];
+ i.push({
+ x: a(r[0], r[2], r[4], o),
+ y: a(r[1], r[3], r[5], o)
+ });
+ }
+ }
+ Gi.storeEdgeProjections = function(t) {
+ var e = t._private, r = e.rscratch, a = r.edgeType;
+ if (e.rstyle.bezierPts = null, e.rstyle.linePts = null, e.rstyle.haystackPts = null, a === "multibezier" || a === "bezier" || a === "self" || a === "compound") {
+ e.rstyle.bezierPts = [];
+ for (var n = 0; n + 5 < r.allpts.length; n += 4)
+ cg(this, t, r.allpts.slice(n, n + 6));
+ } else if (a === "segments")
+ for (var i = e.rstyle.linePts = [], n = 0; n + 1 < r.allpts.length; n += 2)
+ i.push({
+ x: r.allpts[n],
+ y: r.allpts[n + 1]
+ });
+ else if (a === "haystack") {
+ var s = r.haystackPts;
+ e.rstyle.haystackPts = [{
+ x: s[0],
+ y: s[1]
+ }, {
+ x: s[2],
+ y: s[3]
+ }];
+ }
+ e.rstyle.arrowWidth = this.getArrowWidth(t.pstyle("width").pfValue, t.pstyle("arrow-scale").value) * this.arrowShapeWidth;
+ }, Gi.recalculateEdgeProjections = function(t) {
+ this.findEdgeControlPoints(t);
+ };
+ var fr = {};
+ fr.recalculateNodeLabelProjection = function(t) {
+ var e = t.pstyle("label").strValue;
+ if (!Pe(e)) {
+ var r, a, n = t._private, i = t.width(), s = t.height(), o = t.padding(), l = t.position(), u = t.pstyle("text-halign").strValue, f = t.pstyle("text-valign").strValue, h = n.rscratch, c = n.rstyle;
+ switch (u) {
+ case "left":
+ r = l.x - i / 2 - o;
+ break;
+ case "right":
+ r = l.x + i / 2 + o;
+ break;
+ default:
+ r = l.x;
+ }
+ switch (f) {
+ case "top":
+ a = l.y - s / 2 - o;
+ break;
+ case "bottom":
+ a = l.y + s / 2 + o;
+ break;
+ default:
+ a = l.y;
+ }
+ h.labelX = r, h.labelY = a, c.labelX = r, c.labelY = a, this.calculateLabelAngles(t), this.applyLabelDimensions(t);
+ }
+ };
+ var su = function(e, r) {
+ var a = Math.atan(r / e);
+ return e === 0 && a < 0 && (a = a * -1), a;
+ }, ou = function(e, r) {
+ var a = r.x - e.x, n = r.y - e.y;
+ return su(a, n);
+ }, vg = function(e, r, a, n) {
+ var i = ka(0, n - 1e-3, 1), s = ka(0, n + 1e-3, 1), o = ea(e, r, a, i), l = ea(e, r, a, s);
+ return ou(o, l);
+ };
+ fr.recalculateEdgeLabelProjections = function(t) {
+ var e, r = t._private, a = r.rscratch, n = this, i = {
+ mid: t.pstyle("label").strValue,
+ source: t.pstyle("source-label").strValue,
+ target: t.pstyle("target-label").strValue
+ };
+ if (i.mid || i.source || i.target) {
+ e = {
+ x: a.midX,
+ y: a.midY
+ };
+ var s = function(h, c, v) {
+ xr(r.rscratch, h, c, v), xr(r.rstyle, h, c, v);
+ };
+ s("labelX", null, e.x), s("labelY", null, e.y);
+ var o = su(a.midDispX, a.midDispY);
+ s("labelAutoAngle", null, o);
+ var l = function f() {
+ if (f.cache)
+ return f.cache;
+ for (var h = [], c = 0; c + 5 < a.allpts.length; c += 4) {
+ var v = {
+ x: a.allpts[c],
+ y: a.allpts[c + 1]
+ }, d = {
+ x: a.allpts[c + 2],
+ y: a.allpts[c + 3]
+ }, g = {
+ x: a.allpts[c + 4],
+ y: a.allpts[c + 5]
+ };
+ h.push({
+ p0: v,
+ p1: d,
+ p2: g,
+ startDist: 0,
+ length: 0,
+ segments: []
+ });
+ }
+ var y = r.rstyle.bezierPts, p = n.bezierProjPcts.length;
+ function m(w, I, C, B, F) {
+ var R = Pr(I, C), X = w.segments[w.segments.length - 1], z = {
+ p0: I,
+ p1: C,
+ t0: B,
+ t1: F,
+ startDist: X ? X.startDist + X.length : 0,
+ length: R
+ };
+ w.segments.push(z), w.length += R;
+ }
+ for (var b = 0; b < h.length; b++) {
+ var E = h[b], M = h[b - 1];
+ M && (E.startDist = M.startDist + M.length), m(E, E.p0, y[b * p], 0, n.bezierProjPcts[0]);
+ for (var A = 0; A < p - 1; A++)
+ m(E, y[b * p + A], y[b * p + A + 1], n.bezierProjPcts[A], n.bezierProjPcts[A + 1]);
+ m(E, y[b * p + p - 1], E.p2, n.bezierProjPcts[p - 1], 1);
+ }
+ return f.cache = h;
+ }, u = function(h) {
+ var c, v = h === "source";
+ if (i[h]) {
+ var d = t.pstyle(h + "-text-offset").pfValue;
+ switch (a.edgeType) {
+ case "self":
+ case "compound":
+ case "bezier":
+ case "multibezier": {
+ for (var g = l(), y, p = 0, m = 0, b = 0; b < g.length; b++) {
+ for (var E = g[v ? b : g.length - 1 - b], M = 0; M < E.segments.length; M++) {
+ var A = E.segments[v ? M : E.segments.length - 1 - M], w = b === g.length - 1 && M === E.segments.length - 1;
+ if (p = m, m += A.length, m >= d || w) {
+ y = {
+ cp: E,
+ segment: A
+ };
+ break;
+ }
+ }
+ if (y)
+ break;
+ }
+ var I = y.cp, C = y.segment, B = (d - p) / C.length, F = C.t1 - C.t0, R = v ? C.t0 + F * B : C.t1 - F * B;
+ R = ka(0, R, 1), e = ea(I.p0, I.p1, I.p2, R), c = vg(I.p0, I.p1, I.p2, R);
+ break;
+ }
+ case "straight":
+ case "segments":
+ case "haystack": {
+ for (var X = 0, z, re, W, Z, ie = a.allpts.length, oe = 0; oe + 3 < ie && (v ? (W = {
+ x: a.allpts[oe],
+ y: a.allpts[oe + 1]
+ }, Z = {
+ x: a.allpts[oe + 2],
+ y: a.allpts[oe + 3]
+ }) : (W = {
+ x: a.allpts[ie - 2 - oe],
+ y: a.allpts[ie - 1 - oe]
+ }, Z = {
+ x: a.allpts[ie - 4 - oe],
+ y: a.allpts[ie - 3 - oe]
+ }), z = Pr(W, Z), re = X, X += z, !(X >= d)); oe += 2)
+ ;
+ var ge = d - re, se = ge / z;
+ se = ka(0, se, 1), e = xf(W, Z, se), c = ou(W, Z);
+ break;
+ }
+ }
+ s("labelX", h, e.x), s("labelY", h, e.y), s("labelAutoAngle", h, c);
+ }
+ };
+ u("source"), u("target"), this.applyLabelDimensions(t);
+ }
+ }, fr.applyLabelDimensions = function(t) {
+ this.applyPrefixedLabelDimensions(t), t.isEdge() && (this.applyPrefixedLabelDimensions(t, "source"), this.applyPrefixedLabelDimensions(t, "target"));
+ }, fr.applyPrefixedLabelDimensions = function(t, e) {
+ var r = t._private, a = this.getLabelText(t, e), n = this.calculateLabelDimensions(t, a), i = t.pstyle("line-height").pfValue, s = t.pstyle("text-wrap").strValue, o = er(r.rscratch, "labelWrapCachedLines", e) || [], l = s !== "wrap" ? 1 : Math.max(o.length, 1), u = n.height / l, f = u * i, h = n.width, c = n.height + (l - 1) * (i - 1) * u;
+ xr(r.rstyle, "labelWidth", e, h), xr(r.rscratch, "labelWidth", e, h), xr(r.rstyle, "labelHeight", e, c), xr(r.rscratch, "labelHeight", e, c), xr(r.rscratch, "labelLineHeight", e, f);
+ }, fr.getLabelText = function(t, e) {
+ var r = t._private, a = e ? e + "-" : "", n = t.pstyle(a + "label").strValue, i = t.pstyle("text-transform").value, s = function(ge, se) {
+ return se ? (xr(r.rscratch, ge, e, se), se) : er(r.rscratch, ge, e);
+ };
+ if (!n)
+ return "";
+ i == "none" || (i == "uppercase" ? n = n.toUpperCase() : i == "lowercase" && (n = n.toLowerCase()));
+ var o = t.pstyle("text-wrap").value;
+ if (o === "wrap") {
+ var l = s("labelKey");
+ if (l != null && s("labelWrapKey") === l)
+ return s("labelWrapCachedText");
+ for (var u = "", f = n.split(`
+`), h = t.pstyle("text-max-width").pfValue, c = t.pstyle("text-overflow-wrap").value, v = c === "anywhere", d = [], g = /[\s\u200b]+/, y = v ? "" : " ", p = 0; p < f.length; p++) {
+ var m = f[p], b = this.calculateLabelDimensions(t, m), E = b.width;
+ if (v) {
+ var M = m.split("").join(u);
+ m = M;
+ }
+ if (E > h) {
+ for (var A = m.split(g), w = "", I = 0; I < A.length; I++) {
+ var C = A[I], B = w.length === 0 ? C : w + y + C, F = this.calculateLabelDimensions(t, B), R = F.width;
+ R <= h ? w += C + y : (w && d.push(w), w = C + y);
+ }
+ w.match(/^[\s\u200b]+$/) || d.push(w);
+ } else
+ d.push(m);
+ }
+ s("labelWrapCachedLines", d), n = s("labelWrapCachedText", d.join(`
+`)), s("labelWrapKey", l);
+ } else if (o === "ellipsis") {
+ var X = t.pstyle("text-max-width").pfValue, z = "", re = "…", W = !1;
+ if (this.calculateLabelDimensions(t, n).width < X)
+ return n;
+ for (var Z = 0; Z < n.length; Z++) {
+ var ie = this.calculateLabelDimensions(t, z + n[Z] + re).width;
+ if (ie > X)
+ break;
+ z += n[Z], Z === n.length - 1 && (W = !0);
+ }
+ return W || (z += re), z;
+ }
+ return n;
+ }, fr.getLabelJustification = function(t) {
+ var e = t.pstyle("text-justification").strValue, r = t.pstyle("text-halign").strValue;
+ if (e === "auto")
+ if (t.isNode())
+ switch (r) {
+ case "left":
+ return "right";
+ case "right":
+ return "left";
+ default:
+ return "center";
+ }
+ else
+ return "center";
+ else
+ return e;
+ }, fr.calculateLabelDimensions = function(t, e) {
+ var r = this, a = kr(e, t._private.labelDimsKey), n = r.labelDimCache || (r.labelDimCache = []), i = n[a];
+ if (i != null)
+ return i;
+ var s = 0, o = t.pstyle("font-style").strValue, l = t.pstyle("font-size").pfValue, u = t.pstyle("font-family").strValue, f = t.pstyle("font-weight").strValue, h = this.labelCalcCanvas, c = this.labelCalcCanvasContext;
+ if (!h) {
+ h = this.labelCalcCanvas = document.createElement("canvas"), c = this.labelCalcCanvasContext = h.getContext("2d");
+ var v = h.style;
+ v.position = "absolute", v.left = "-9999px", v.top = "-9999px", v.zIndex = "-1", v.visibility = "hidden", v.pointerEvents = "none";
+ }
+ c.font = "".concat(o, " ").concat(f, " ").concat(l, "px ").concat(u);
+ for (var d = 0, g = 0, y = e.split(`
+`), p = 0; p < y.length; p++) {
+ var m = y[p], b = c.measureText(m), E = Math.ceil(b.width), M = l;
+ d = Math.max(E, d), g += M;
+ }
+ return d += s, g += s, n[a] = {
+ width: d,
+ height: g
+ };
+ }, fr.calculateLabelAngle = function(t, e) {
+ var r = t._private, a = r.rscratch, n = t.isEdge(), i = e ? e + "-" : "", s = t.pstyle(i + "text-rotation"), o = s.strValue;
+ return o === "none" ? 0 : n && o === "autorotate" ? a.labelAutoAngle : o === "autorotate" ? 0 : s.pfValue;
+ }, fr.calculateLabelAngles = function(t) {
+ var e = this, r = t.isEdge(), a = t._private, n = a.rscratch;
+ n.labelAngle = e.calculateLabelAngle(t), r && (n.sourceLabelAngle = e.calculateLabelAngle(t, "source"), n.targetLabelAngle = e.calculateLabelAngle(t, "target"));
+ };
+ var uu = {}, lu = 28, fu = !1;
+ uu.getNodeShape = function(t) {
+ var e = this, r = t.pstyle("shape").value;
+ if (r === "cutrectangle" && (t.width() < lu || t.height() < lu))
+ return fu || (ft("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"), fu = !0), "rectangle";
+ if (t.isParent())
+ return r === "rectangle" || r === "roundrectangle" || r === "round-rectangle" || r === "cutrectangle" || r === "cut-rectangle" || r === "barrel" ? r : "rectangle";
+ if (r === "polygon") {
+ var a = t.pstyle("shape-polygon-points").value;
+ return e.nodeShapes.makePolygon(a).name;
+ }
+ return r;
+ };
+ var Xn = {};
+ Xn.registerCalculationListeners = function() {
+ var t = this.cy, e = t.collection(), r = this, a = function(s) {
+ var o = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
+ if (e.merge(s), o)
+ for (var l = 0; l < s.length; l++) {
+ var u = s[l], f = u._private, h = f.rstyle;
+ h.clean = !1, h.cleanConnected = !1;
+ }
+ };
+ r.binder(t).on("bounds.* dirty.*", function(s) {
+ var o = s.target;
+ a(o);
+ }).on("style.* background.*", function(s) {
+ var o = s.target;
+ a(o, !1);
+ });
+ var n = function(s) {
+ if (s) {
+ var o = r.onUpdateEleCalcsFns;
+ e.cleanStyle();
+ for (var l = 0; l < e.length; l++) {
+ var u = e[l], f = u._private.rstyle;
+ u.isNode() && !f.cleanConnected && (a(u.connectedEdges()), f.cleanConnected = !0);
+ }
+ if (o)
+ for (var h = 0; h < o.length; h++) {
+ var c = o[h];
+ c(s, e);
+ }
+ r.recalculateRenderedStyle(e), e = t.collection();
+ }
+ };
+ r.flushRenderedStyleQueue = function() {
+ n(!0);
+ }, r.beforeRender(n, r.beforeRenderPriorities.eleCalcs);
+ }, Xn.onUpdateEleCalcs = function(t) {
+ var e = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || [];
+ e.push(t);
+ }, Xn.recalculateRenderedStyle = function(t, e) {
+ var r = function(E) {
+ return E._private.rstyle.cleanConnected;
+ }, a = [], n = [];
+ if (!this.destroyed) {
+ e === void 0 && (e = !0);
+ for (var i = 0; i < t.length; i++) {
+ var s = t[i], o = s._private, l = o.rstyle;
+ s.isEdge() && (!r(s.source()) || !r(s.target())) && (l.clean = !1), !(e && l.clean || s.removed()) && s.pstyle("display").value !== "none" && (o.group === "nodes" ? n.push(s) : a.push(s), l.clean = !0);
+ }
+ for (var u = 0; u < n.length; u++) {
+ var f = n[u], h = f._private, c = h.rstyle, v = f.position();
+ this.recalculateNodeLabelProjection(f), c.nodeX = v.x, c.nodeY = v.y, c.nodeW = f.pstyle("width").pfValue, c.nodeH = f.pstyle("height").pfValue;
+ }
+ this.recalculateEdgeProjections(a);
+ for (var d = 0; d < a.length; d++) {
+ var g = a[d], y = g._private, p = y.rstyle, m = y.rscratch;
+ p.srcX = m.arrowStartX, p.srcY = m.arrowStartY, p.tgtX = m.arrowEndX, p.tgtY = m.arrowEndY, p.midX = m.midX, p.midY = m.midY, p.labelAngle = m.labelAngle, p.sourceLabelAngle = m.sourceLabelAngle, p.targetLabelAngle = m.targetLabelAngle;
+ }
+ }
+ };
+ var qn = {};
+ qn.updateCachedGrabbedEles = function() {
+ var t = this.cachedZSortedEles;
+ if (t) {
+ t.drag = [], t.nondrag = [];
+ for (var e = [], r = 0; r < t.length; r++) {
+ var a = t[r], n = a._private.rscratch;
+ a.grabbed() && !a.isParent() ? e.push(a) : n.inDragLayer ? t.drag.push(a) : t.nondrag.push(a);
+ }
+ for (var r = 0; r < e.length; r++) {
+ var a = e[r];
+ t.drag.push(a);
+ }
+ }
+ }, qn.invalidateCachedZSortedEles = function() {
+ this.cachedZSortedEles = null;
+ }, qn.getCachedZSortedEles = function(t) {
+ if (t || !this.cachedZSortedEles) {
+ var e = this.cy.mutableElements().toArray();
+ e.sort(Ro), e.interactive = e.filter(function(r) {
+ return r.interactive();
+ }), this.cachedZSortedEles = e, this.updateCachedGrabbedEles();
+ } else
+ e = this.cachedZSortedEles;
+ return e;
+ };
+ var hu = {};
+ [Vr, Hn, Vt, Qa, Gi, fr, uu, Xn, qn].forEach(function(t) {
+ Ue(hu, t);
+ });
+ var cu = {};
+ cu.getCachedImage = function(t, e, r) {
+ var a = this, n = a.imageCache = a.imageCache || {}, i = n[t];
+ if (i)
+ return i.image.complete || i.image.addEventListener("load", r), i.image;
+ i = n[t] = n[t] || {};
+ var s = i.image = new Image();
+ s.addEventListener("load", r), s.addEventListener("error", function() {
+ s.error = !0;
+ });
+ var o = "data:", l = t.substring(0, o.length).toLowerCase() === o;
+ return l || (s.crossOrigin = e), s.src = t, s;
+ };
+ var ya = {};
+ ya.registerBinding = function(t, e, r, a) {
+ var n = Array.prototype.slice.apply(arguments, [1]), i = this.binder(t);
+ return i.on.apply(i, n);
+ }, ya.binder = function(t) {
+ var e = this, r = t === window || t === document || t === document.body || $e(t);
+ if (e.supportsPassiveEvents == null) {
+ var a = !1;
+ try {
+ var n = Object.defineProperty({}, "passive", {
+ get: function() {
+ return a = !0, !0;
+ }
+ });
+ window.addEventListener("test", null, n);
+ } catch {
+ }
+ e.supportsPassiveEvents = a;
+ }
+ var i = function(o, l, u) {
+ var f = Array.prototype.slice.call(arguments);
+ return r && e.supportsPassiveEvents && (f[2] = {
+ capture: u ?? !1,
+ passive: !1,
+ once: !1
+ }), e.bindings.push({
+ target: t,
+ args: f
+ }), (t.addEventListener || t.on).apply(t, f), this;
+ };
+ return {
+ on: i,
+ addEventListener: i,
+ addListener: i,
+ bind: i
+ };
+ }, ya.nodeIsDraggable = function(t) {
+ return t && t.isNode() && !t.locked() && t.grabbable();
+ }, ya.nodeIsGrabbable = function(t) {
+ return this.nodeIsDraggable(t) && t.interactive();
+ }, ya.load = function() {
+ var t = this, e = function(N) {
+ return N.selected();
+ }, r = function(N, le, De, me) {
+ N == null && (N = t.cy);
+ for (var be = 0; be < le.length; be++) {
+ var Ke = le[be];
+ N.emit({
+ originalEvent: De,
+ type: Ke,
+ position: me
+ });
+ }
+ }, a = function(N) {
+ return N.shiftKey || N.metaKey || N.ctrlKey;
+ }, n = function(N, le) {
+ var De = !0;
+ if (t.cy.hasCompoundNodes() && N && N.pannable())
+ for (var me = 0; le && me < le.length; me++) {
+ var N = le[me];
+ if (N.isNode() && N.isParent() && !N.pannable()) {
+ De = !1;
+ break;
+ }
+ }
+ else
+ De = !0;
+ return De;
+ }, i = function(N) {
+ N[0]._private.grabbed = !0;
+ }, s = function(N) {
+ N[0]._private.grabbed = !1;
+ }, o = function(N) {
+ N[0]._private.rscratch.inDragLayer = !0;
+ }, l = function(N) {
+ N[0]._private.rscratch.inDragLayer = !1;
+ }, u = function(N) {
+ N[0]._private.rscratch.isGrabTarget = !0;
+ }, f = function(N) {
+ N[0]._private.rscratch.isGrabTarget = !1;
+ }, h = function(N, le) {
+ var De = le.addToList, me = De.has(N);
+ !me && N.grabbable() && !N.locked() && (De.merge(N), i(N));
+ }, c = function(N, le) {
+ if (N.cy().hasCompoundNodes() && !(le.inDragLayer == null && le.addToList == null)) {
+ var De = N.descendants();
+ le.inDragLayer && (De.forEach(o), De.connectedEdges().forEach(o)), le.addToList && h(De, le);
+ }
+ }, v = function(N, le) {
+ le = le || {};
+ var De = N.cy().hasCompoundNodes();
+ le.inDragLayer && (N.forEach(o), N.neighborhood().stdFilter(function(me) {
+ return !De || me.isEdge();
+ }).forEach(o)), le.addToList && N.forEach(function(me) {
+ h(me, le);
+ }), c(N, le), y(N, {
+ inDragLayer: le.inDragLayer
+ }), t.updateCachedGrabbedEles();
+ }, d = v, g = function(N) {
+ N && (t.getCachedZSortedEles().forEach(function(le) {
+ s(le), l(le), f(le);
+ }), t.updateCachedGrabbedEles());
+ }, y = function(N, le) {
+ if (!(le.inDragLayer == null && le.addToList == null) && N.cy().hasCompoundNodes()) {
+ var De = N.ancestors().orphans();
+ if (!De.same(N)) {
+ var me = De.descendants().spawnSelf().merge(De).unmerge(N).unmerge(N.descendants()), be = me.connectedEdges();
+ le.inDragLayer && (be.forEach(o), me.forEach(o)), le.addToList && me.forEach(function(Ke) {
+ h(Ke, le);
+ });
+ }
+ }
+ }, p = function() {
+ document.activeElement != null && document.activeElement.blur != null && document.activeElement.blur();
+ }, m = typeof MutationObserver < "u", b = typeof ResizeObserver < "u";
+ m ? (t.removeObserver = new MutationObserver(function(Se) {
+ for (var N = 0; N < Se.length; N++) {
+ var le = Se[N], De = le.removedNodes;
+ if (De)
+ for (var me = 0; me < De.length; me++) {
+ var be = De[me];
+ if (be === t.container) {
+ t.destroy();
+ break;
+ }
+ }
+ }
+ }), t.container.parentNode && t.removeObserver.observe(t.container.parentNode, {
+ childList: !0
+ })) : t.registerBinding(t.container, "DOMNodeRemoved", function(Se) {
+ t.destroy();
+ });
+ var E = ln(function() {
+ t.cy.resize();
+ }, 100);
+ m && (t.styleObserver = new MutationObserver(E), t.styleObserver.observe(t.container, {
+ attributes: !0
+ })), t.registerBinding(window, "resize", E), b && (t.resizeObserver = new ResizeObserver(E), t.resizeObserver.observe(t.container));
+ var M = function(N, le) {
+ for (; N != null; )
+ le(N), N = N.parentNode;
+ }, A = function() {
+ t.invalidateContainerClientCoordsCache();
+ };
+ M(t.container, function(Se) {
+ t.registerBinding(Se, "transitionend", A), t.registerBinding(Se, "animationend", A), t.registerBinding(Se, "scroll", A);
+ }), t.registerBinding(t.container, "contextmenu", function(Se) {
+ Se.preventDefault();
+ });
+ var w = function() {
+ return t.selection[4] !== 0;
+ }, I = function(N) {
+ for (var le = t.findContainerClientCoords(), De = le[0], me = le[1], be = le[2], Ke = le[3], Le = N.touches ? N.touches : [N], ze = !1, at = 0; at < Le.length; at++) {
+ var dt = Le[at];
+ if (De <= dt.clientX && dt.clientX <= De + be && me <= dt.clientY && dt.clientY <= me + Ke) {
+ ze = !0;
+ break;
+ }
+ }
+ if (!ze)
+ return !1;
+ for (var Qe = t.container, ut = N.target, Ze = ut.parentNode, Je = !1; Ze; ) {
+ if (Ze === Qe) {
+ Je = !0;
+ break;
+ }
+ Ze = Ze.parentNode;
+ }
+ return !!Je;
+ };
+ t.registerBinding(t.container, "mousedown", function(N) {
+ if (I(N)) {
+ N.preventDefault(), p(), t.hoverData.capture = !0, t.hoverData.which = N.which;
+ var le = t.cy, De = [N.clientX, N.clientY], me = t.projectIntoViewport(De[0], De[1]), be = t.selection, Ke = t.findNearestElements(me[0], me[1], !0, !1), Le = Ke[0], ze = t.dragData.possibleDragElements;
+ t.hoverData.mdownPos = me, t.hoverData.mdownGPos = De;
+ var at = function() {
+ t.hoverData.tapholdCancelled = !1, clearTimeout(t.hoverData.tapholdTimeout), t.hoverData.tapholdTimeout = setTimeout(function() {
+ if (!t.hoverData.tapholdCancelled) {
+ var Ct = t.hoverData.down;
+ Ct ? Ct.emit({
+ originalEvent: N,
+ type: "taphold",
+ position: {
+ x: me[0],
+ y: me[1]
+ }
+ }) : le.emit({
+ originalEvent: N,
+ type: "taphold",
+ position: {
+ x: me[0],
+ y: me[1]
+ }
+ });
+ }
+ }, t.tapholdDuration);
+ };
+ if (N.which == 3) {
+ t.hoverData.cxtStarted = !0;
+ var dt = {
+ originalEvent: N,
+ type: "cxttapstart",
+ position: {
+ x: me[0],
+ y: me[1]
+ }
+ };
+ Le ? (Le.activate(), Le.emit(dt), t.hoverData.down = Le) : le.emit(dt), t.hoverData.downTime = new Date().getTime(), t.hoverData.cxtDragged = !1;
+ } else if (N.which == 1) {
+ Le && Le.activate();
+ {
+ if (Le != null && t.nodeIsGrabbable(Le)) {
+ var Qe = function(Ct) {
+ return {
+ originalEvent: N,
+ type: Ct,
+ position: {
+ x: me[0],
+ y: me[1]
+ }
+ };
+ }, ut = function(Ct) {
+ Ct.emit(Qe("grab"));
+ };
+ if (u(Le), !Le.selected())
+ ze = t.dragData.possibleDragElements = le.collection(), d(Le, {
+ addToList: ze
+ }), Le.emit(Qe("grabon")).emit(Qe("grab"));
+ else {
+ ze = t.dragData.possibleDragElements = le.collection();
+ var Ze = le.$(function(Je) {
+ return Je.isNode() && Je.selected() && t.nodeIsGrabbable(Je);
+ });
+ v(Ze, {
+ addToList: ze
+ }), Le.emit(Qe("grabon")), Ze.forEach(ut);
+ }
+ t.redrawHint("eles", !0), t.redrawHint("drag", !0);
+ }
+ t.hoverData.down = Le, t.hoverData.downs = Ke, t.hoverData.downTime = new Date().getTime();
+ }
+ r(Le, ["mousedown", "tapstart", "vmousedown"], N, {
+ x: me[0],
+ y: me[1]
+ }), Le == null ? (be[4] = 1, t.data.bgActivePosistion = {
+ x: me[0],
+ y: me[1]
+ }, t.redrawHint("select", !0), t.redraw()) : Le.pannable() && (be[4] = 1), at();
+ }
+ be[0] = be[2] = me[0], be[1] = be[3] = me[1];
+ }
+ }, !1), t.registerBinding(window, "mousemove", function(N) {
+ var le = t.hoverData.capture;
+ if (!(!le && !I(N))) {
+ var De = !1, me = t.cy, be = me.zoom(), Ke = [N.clientX, N.clientY], Le = t.projectIntoViewport(Ke[0], Ke[1]), ze = t.hoverData.mdownPos, at = t.hoverData.mdownGPos, dt = t.selection, Qe = null;
+ !t.hoverData.draggingEles && !t.hoverData.dragging && !t.hoverData.selecting && (Qe = t.findNearestElement(Le[0], Le[1], !0, !1));
+ var ut = t.hoverData.last, Ze = t.hoverData.down, Je = [Le[0] - dt[2], Le[1] - dt[3]], Ct = t.dragData.possibleDragElements, It;
+ if (at) {
+ var ar = Ke[0] - at[0], nr = ar * ar, Rt = Ke[1] - at[1], Qt = Rt * Rt, _t = nr + Qt;
+ t.hoverData.isOverThresholdDrag = It = _t >= t.desktopTapThreshold2;
+ }
+ var br = a(N);
+ It && (t.hoverData.tapholdCancelled = !0);
+ var Ir = function() {
+ var cr = t.hoverData.dragDelta = t.hoverData.dragDelta || [];
+ cr.length === 0 ? (cr.push(Je[0]), cr.push(Je[1])) : (cr[0] += Je[0], cr[1] += Je[1]);
+ };
+ De = !0, r(Qe, ["mousemove", "vmousemove", "tapdrag"], N, {
+ x: Le[0],
+ y: Le[1]
+ });
+ var xa = function() {
+ t.data.bgActivePosistion = void 0, t.hoverData.selecting || me.emit({
+ originalEvent: N,
+ type: "boxstart",
+ position: {
+ x: Le[0],
+ y: Le[1]
+ }
+ }), dt[4] = 1, t.hoverData.selecting = !0, t.redrawHint("select", !0), t.redraw();
+ };
+ if (t.hoverData.which === 3) {
+ if (It) {
+ var Hr = {
+ originalEvent: N,
+ type: "cxtdrag",
+ position: {
+ x: Le[0],
+ y: Le[1]
+ }
+ };
+ Ze ? Ze.emit(Hr) : me.emit(Hr), t.hoverData.cxtDragged = !0, (!t.hoverData.cxtOver || Qe !== t.hoverData.cxtOver) && (t.hoverData.cxtOver && t.hoverData.cxtOver.emit({
+ originalEvent: N,
+ type: "cxtdragout",
+ position: {
+ x: Le[0],
+ y: Le[1]
+ }
+ }), t.hoverData.cxtOver = Qe, Qe && Qe.emit({
+ originalEvent: N,
+ type: "cxtdragover",
+ position: {
+ x: Le[0],
+ y: Le[1]
+ }
+ }));
+ }
+ } else if (t.hoverData.dragging) {
+ if (De = !0, me.panningEnabled() && me.userPanningEnabled()) {
+ var Ta;
+ if (t.hoverData.justStartedPan) {
+ var Qn = t.hoverData.mdownPos;
+ Ta = {
+ x: (Le[0] - Qn[0]) * be,
+ y: (Le[1] - Qn[1]) * be
+ }, t.hoverData.justStartedPan = !1;
+ } else
+ Ta = {
+ x: Je[0] * be,
+ y: Je[1] * be
+ };
+ me.panBy(Ta), me.emit("dragpan"), t.hoverData.dragged = !0;
+ }
+ Le = t.projectIntoViewport(N.clientX, N.clientY);
+ } else if (dt[4] == 1 && (Ze == null || Ze.pannable())) {
+ if (It) {
+ if (!t.hoverData.dragging && me.boxSelectionEnabled() && (br || !me.panningEnabled() || !me.userPanningEnabled()))
+ xa();
+ else if (!t.hoverData.selecting && me.panningEnabled() && me.userPanningEnabled()) {
+ var Xr = n(Ze, t.hoverData.downs);
+ Xr && (t.hoverData.dragging = !0, t.hoverData.justStartedPan = !0, dt[4] = 0, t.data.bgActivePosistion = jr(ze), t.redrawHint("select", !0), t.redraw());
+ }
+ Ze && Ze.pannable() && Ze.active() && Ze.unactivate();
+ }
+ } else {
+ if (Ze && Ze.pannable() && Ze.active() && Ze.unactivate(), (!Ze || !Ze.grabbed()) && Qe != ut && (ut && r(ut, ["mouseout", "tapdragout"], N, {
+ x: Le[0],
+ y: Le[1]
+ }), Qe && r(Qe, ["mouseover", "tapdragover"], N, {
+ x: Le[0],
+ y: Le[1]
+ }), t.hoverData.last = Qe), Ze)
+ if (It) {
+ if (me.boxSelectionEnabled() && br)
+ Ze && Ze.grabbed() && (g(Ct), Ze.emit("freeon"), Ct.emit("free"), t.dragData.didDrag && (Ze.emit("dragfreeon"), Ct.emit("dragfree"))), xa();
+ else if (Ze && Ze.grabbed() && t.nodeIsDraggable(Ze)) {
+ var Ht = !t.dragData.didDrag;
+ Ht && t.redrawHint("eles", !0), t.dragData.didDrag = !0, t.hoverData.draggingEles || v(Ct, {
+ inDragLayer: !0
+ });
+ var Gt = {
+ x: 0,
+ y: 0
+ };
+ if (k(Je[0]) && k(Je[1]) && (Gt.x += Je[0], Gt.y += Je[1], Ht)) {
+ var Xt = t.hoverData.dragDelta;
+ Xt && k(Xt[0]) && k(Xt[1]) && (Gt.x += Xt[0], Gt.y += Xt[1]);
+ }
+ t.hoverData.draggingEles = !0, Ct.silentShift(Gt).emit("position drag"), t.redrawHint("drag", !0), t.redraw();
+ }
+ } else
+ Ir();
+ De = !0;
+ }
+ if (dt[2] = Le[0], dt[3] = Le[1], De)
+ return N.stopPropagation && N.stopPropagation(), N.preventDefault && N.preventDefault(), !1;
+ }
+ }, !1);
+ var C, B, F;
+ t.registerBinding(window, "mouseup", function(N) {
+ var le = t.hoverData.capture;
+ if (le) {
+ t.hoverData.capture = !1;
+ var De = t.cy, me = t.projectIntoViewport(N.clientX, N.clientY), be = t.selection, Ke = t.findNearestElement(me[0], me[1], !0, !1), Le = t.dragData.possibleDragElements, ze = t.hoverData.down, at = a(N);
+ if (t.data.bgActivePosistion && (t.redrawHint("select", !0), t.redraw()), t.hoverData.tapholdCancelled = !0, t.data.bgActivePosistion = void 0, ze && ze.unactivate(), t.hoverData.which === 3) {
+ var dt = {
+ originalEvent: N,
+ type: "cxttapend",
+ position: {
+ x: me[0],
+ y: me[1]
+ }
+ };
+ if (ze ? ze.emit(dt) : De.emit(dt), !t.hoverData.cxtDragged) {
+ var Qe = {
+ originalEvent: N,
+ type: "cxttap",
+ position: {
+ x: me[0],
+ y: me[1]
+ }
+ };
+ ze ? ze.emit(Qe) : De.emit(Qe);
+ }
+ t.hoverData.cxtDragged = !1, t.hoverData.which = null;
+ } else if (t.hoverData.which === 1) {
+ if (r(Ke, ["mouseup", "tapend", "vmouseup"], N, {
+ x: me[0],
+ y: me[1]
+ }), !t.dragData.didDrag && // didn't move a node around
+ !t.hoverData.dragged && // didn't pan
+ !t.hoverData.selecting && // not box selection
+ !t.hoverData.isOverThresholdDrag && (r(ze, ["click", "tap", "vclick"], N, {
+ x: me[0],
+ y: me[1]
+ }), B = !1, N.timeStamp - F <= De.multiClickDebounceTime() ? (C && clearTimeout(C), B = !0, F = null, r(ze, ["dblclick", "dbltap", "vdblclick"], N, {
+ x: me[0],
+ y: me[1]
+ })) : (C = setTimeout(function() {
+ B || r(ze, ["oneclick", "onetap", "voneclick"], N, {
+ x: me[0],
+ y: me[1]
+ });
+ }, De.multiClickDebounceTime()), F = N.timeStamp)), ze == null && !t.dragData.didDrag && !t.hoverData.selecting && !t.hoverData.dragged && !a(N) && (De.$(e).unselect(["tapunselect"]), Le.length > 0 && t.redrawHint("eles", !0), t.dragData.possibleDragElements = Le = De.collection()), Ke == ze && !t.dragData.didDrag && !t.hoverData.selecting && Ke != null && Ke._private.selectable && (t.hoverData.dragging || (De.selectionType() === "additive" || at ? Ke.selected() ? Ke.unselect(["tapunselect"]) : Ke.select(["tapselect"]) : at || (De.$(e).unmerge(Ke).unselect(["tapunselect"]), Ke.select(["tapselect"]))), t.redrawHint("eles", !0)), t.hoverData.selecting) {
+ var ut = De.collection(t.getAllInBox(be[0], be[1], be[2], be[3]));
+ t.redrawHint("select", !0), ut.length > 0 && t.redrawHint("eles", !0), De.emit({
+ type: "boxend",
+ originalEvent: N,
+ position: {
+ x: me[0],
+ y: me[1]
+ }
+ });
+ var Ze = function(It) {
+ return It.selectable() && !It.selected();
+ };
+ De.selectionType() === "additive" || at || De.$(e).unmerge(ut).unselect(), ut.emit("box").stdFilter(Ze).select().emit("boxselect"), t.redraw();
+ }
+ if (t.hoverData.dragging && (t.hoverData.dragging = !1, t.redrawHint("select", !0), t.redrawHint("eles", !0), t.redraw()), !be[4]) {
+ t.redrawHint("drag", !0), t.redrawHint("eles", !0);
+ var Je = ze && ze.grabbed();
+ g(Le), Je && (ze.emit("freeon"), Le.emit("free"), t.dragData.didDrag && (ze.emit("dragfreeon"), Le.emit("dragfree")));
+ }
+ }
+ be[4] = 0, t.hoverData.down = null, t.hoverData.cxtStarted = !1, t.hoverData.draggingEles = !1, t.hoverData.selecting = !1, t.hoverData.isOverThresholdDrag = !1, t.dragData.didDrag = !1, t.hoverData.dragged = !1, t.hoverData.dragDelta = [], t.hoverData.mdownPos = null, t.hoverData.mdownGPos = null;
+ }
+ }, !1);
+ var R = function(N) {
+ if (!t.scrollingPage) {
+ var le = t.cy, De = le.zoom(), me = le.pan(), be = t.projectIntoViewport(N.clientX, N.clientY), Ke = [be[0] * De + me.x, be[1] * De + me.y];
+ if (t.hoverData.draggingEles || t.hoverData.dragging || t.hoverData.cxtStarted || w()) {
+ N.preventDefault();
+ return;
+ }
+ if (le.panningEnabled() && le.userPanningEnabled() && le.zoomingEnabled() && le.userZoomingEnabled()) {
+ N.preventDefault(), t.data.wheelZooming = !0, clearTimeout(t.data.wheelTimeout), t.data.wheelTimeout = setTimeout(function() {
+ t.data.wheelZooming = !1, t.redrawHint("eles", !0), t.redraw();
+ }, 150);
+ var Le;
+ N.deltaY != null ? Le = N.deltaY / -250 : N.wheelDeltaY != null ? Le = N.wheelDeltaY / 1e3 : Le = N.wheelDelta / 1e3, Le = Le * t.wheelSensitivity;
+ var ze = N.deltaMode === 1;
+ ze && (Le *= 33);
+ var at = le.zoom() * Math.pow(10, Le);
+ N.type === "gesturechange" && (at = t.gestureStartZoom * N.scale), le.zoom({
+ level: at,
+ renderedPosition: {
+ x: Ke[0],
+ y: Ke[1]
+ }
+ }), le.emit(N.type === "gesturechange" ? "pinchzoom" : "scrollzoom");
+ }
+ }
+ };
+ t.registerBinding(t.container, "wheel", R, !0), t.registerBinding(window, "scroll", function(N) {
+ t.scrollingPage = !0, clearTimeout(t.scrollingPageTimeout), t.scrollingPageTimeout = setTimeout(function() {
+ t.scrollingPage = !1;
+ }, 250);
+ }, !0), t.registerBinding(t.container, "gesturestart", function(N) {
+ t.gestureStartZoom = t.cy.zoom(), t.hasTouchStarted || N.preventDefault();
+ }, !0), t.registerBinding(t.container, "gesturechange", function(Se) {
+ t.hasTouchStarted || R(Se);
+ }, !0), t.registerBinding(t.container, "mouseout", function(N) {
+ var le = t.projectIntoViewport(N.clientX, N.clientY);
+ t.cy.emit({
+ originalEvent: N,
+ type: "mouseout",
+ position: {
+ x: le[0],
+ y: le[1]
+ }
+ });
+ }, !1), t.registerBinding(t.container, "mouseover", function(N) {
+ var le = t.projectIntoViewport(N.clientX, N.clientY);
+ t.cy.emit({
+ originalEvent: N,
+ type: "mouseover",
+ position: {
+ x: le[0],
+ y: le[1]
+ }
+ });
+ }, !1);
+ var X, z, re, W, Z, ie, oe, ge, se, de, we, Te, Ee, ye = function(N, le, De, me) {
+ return Math.sqrt((De - N) * (De - N) + (me - le) * (me - le));
+ }, ae = function(N, le, De, me) {
+ return (De - N) * (De - N) + (me - le) * (me - le);
+ }, xe;
+ t.registerBinding(t.container, "touchstart", xe = function(N) {
+ if (t.hasTouchStarted = !0, !!I(N)) {
+ p(), t.touchData.capture = !0, t.data.bgActivePosistion = void 0;
+ var le = t.cy, De = t.touchData.now, me = t.touchData.earlier;
+ if (N.touches[0]) {
+ var be = t.projectIntoViewport(N.touches[0].clientX, N.touches[0].clientY);
+ De[0] = be[0], De[1] = be[1];
+ }
+ if (N.touches[1]) {
+ var be = t.projectIntoViewport(N.touches[1].clientX, N.touches[1].clientY);
+ De[2] = be[0], De[3] = be[1];
+ }
+ if (N.touches[2]) {
+ var be = t.projectIntoViewport(N.touches[2].clientX, N.touches[2].clientY);
+ De[4] = be[0], De[5] = be[1];
+ }
+ if (N.touches[1]) {
+ t.touchData.singleTouchMoved = !0, g(t.dragData.touchDragEles);
+ var Ke = t.findContainerClientCoords();
+ se = Ke[0], de = Ke[1], we = Ke[2], Te = Ke[3], X = N.touches[0].clientX - se, z = N.touches[0].clientY - de, re = N.touches[1].clientX - se, W = N.touches[1].clientY - de, Ee = 0 <= X && X <= we && 0 <= re && re <= we && 0 <= z && z <= Te && 0 <= W && W <= Te;
+ var Le = le.pan(), ze = le.zoom();
+ Z = ye(X, z, re, W), ie = ae(X, z, re, W), oe = [(X + re) / 2, (z + W) / 2], ge = [(oe[0] - Le.x) / ze, (oe[1] - Le.y) / ze];
+ var at = 200, dt = at * at;
+ if (ie < dt && !N.touches[2]) {
+ var Qe = t.findNearestElement(De[0], De[1], !0, !0), ut = t.findNearestElement(De[2], De[3], !0, !0);
+ Qe && Qe.isNode() ? (Qe.activate().emit({
+ originalEvent: N,
+ type: "cxttapstart",
+ position: {
+ x: De[0],
+ y: De[1]
+ }
+ }), t.touchData.start = Qe) : ut && ut.isNode() ? (ut.activate().emit({
+ originalEvent: N,
+ type: "cxttapstart",
+ position: {
+ x: De[0],
+ y: De[1]
+ }
+ }), t.touchData.start = ut) : le.emit({
+ originalEvent: N,
+ type: "cxttapstart",
+ position: {
+ x: De[0],
+ y: De[1]
+ }
+ }), t.touchData.start && (t.touchData.start._private.grabbed = !1), t.touchData.cxt = !0, t.touchData.cxtDragged = !1, t.data.bgActivePosistion = void 0, t.redraw();
+ return;
+ }
+ }
+ if (N.touches[2])
+ le.boxSelectionEnabled() && N.preventDefault();
+ else if (!N.touches[1]) {
+ if (N.touches[0]) {
+ var Ze = t.findNearestElements(De[0], De[1], !0, !0), Je = Ze[0];
+ if (Je != null && (Je.activate(), t.touchData.start = Je, t.touchData.starts = Ze, t.nodeIsGrabbable(Je))) {
+ var Ct = t.dragData.touchDragEles = le.collection(), It = null;
+ t.redrawHint("eles", !0), t.redrawHint("drag", !0), Je.selected() ? (It = le.$(function(_t) {
+ return _t.selected() && t.nodeIsGrabbable(_t);
+ }), v(It, {
+ addToList: Ct
+ })) : d(Je, {
+ addToList: Ct
+ }), u(Je);
+ var ar = function(br) {
+ return {
+ originalEvent: N,
+ type: br,
+ position: {
+ x: De[0],
+ y: De[1]
+ }
+ };
+ };
+ Je.emit(ar("grabon")), It ? It.forEach(function(_t) {
+ _t.emit(ar("grab"));
+ }) : Je.emit(ar("grab"));
+ }
+ r(Je, ["touchstart", "tapstart", "vmousedown"], N, {
+ x: De[0],
+ y: De[1]
+ }), Je == null && (t.data.bgActivePosistion = {
+ x: be[0],
+ y: be[1]
+ }, t.redrawHint("select", !0), t.redraw()), t.touchData.singleTouchMoved = !1, t.touchData.singleTouchStartTime = +new Date(), clearTimeout(t.touchData.tapholdTimeout), t.touchData.tapholdTimeout = setTimeout(function() {
+ t.touchData.singleTouchMoved === !1 && !t.pinching && !t.touchData.selecting && r(t.touchData.start, ["taphold"], N, {
+ x: De[0],
+ y: De[1]
+ });
+ }, t.tapholdDuration);
+ }
+ }
+ if (N.touches.length >= 1) {
+ for (var nr = t.touchData.startPosition = [], Rt = 0; Rt < De.length; Rt++)
+ nr[Rt] = me[Rt] = De[Rt];
+ var Qt = N.touches[0];
+ t.touchData.startGPosition = [Qt.clientX, Qt.clientY];
+ }
+ }
+ }, !1);
+ var Ce;
+ t.registerBinding(window, "touchmove", Ce = function(N) {
+ var le = t.touchData.capture;
+ if (!(!le && !I(N))) {
+ var De = t.selection, me = t.cy, be = t.touchData.now, Ke = t.touchData.earlier, Le = me.zoom();
+ if (N.touches[0]) {
+ var ze = t.projectIntoViewport(N.touches[0].clientX, N.touches[0].clientY);
+ be[0] = ze[0], be[1] = ze[1];
+ }
+ if (N.touches[1]) {
+ var ze = t.projectIntoViewport(N.touches[1].clientX, N.touches[1].clientY);
+ be[2] = ze[0], be[3] = ze[1];
+ }
+ if (N.touches[2]) {
+ var ze = t.projectIntoViewport(N.touches[2].clientX, N.touches[2].clientY);
+ be[4] = ze[0], be[5] = ze[1];
+ }
+ var at = t.touchData.startGPosition, dt;
+ if (le && N.touches[0] && at) {
+ for (var Qe = [], ut = 0; ut < be.length; ut++)
+ Qe[ut] = be[ut] - Ke[ut];
+ var Ze = N.touches[0].clientX - at[0], Je = Ze * Ze, Ct = N.touches[0].clientY - at[1], It = Ct * Ct, ar = Je + It;
+ dt = ar >= t.touchTapThreshold2;
+ }
+ if (le && t.touchData.cxt) {
+ N.preventDefault();
+ var nr = N.touches[0].clientX - se, Rt = N.touches[0].clientY - de, Qt = N.touches[1].clientX - se, _t = N.touches[1].clientY - de, br = ae(nr, Rt, Qt, _t), Ir = br / ie, xa = 150, Hr = xa * xa, Ta = 1.5, Qn = Ta * Ta;
+ if (Ir >= Qn || br >= Hr) {
+ t.touchData.cxt = !1, t.data.bgActivePosistion = void 0, t.redrawHint("select", !0);
+ var Xr = {
+ originalEvent: N,
+ type: "cxttapend",
+ position: {
+ x: be[0],
+ y: be[1]
+ }
+ };
+ t.touchData.start ? (t.touchData.start.unactivate().emit(Xr), t.touchData.start = null) : me.emit(Xr);
+ }
+ }
+ if (le && t.touchData.cxt) {
+ var Xr = {
+ originalEvent: N,
+ type: "cxtdrag",
+ position: {
+ x: be[0],
+ y: be[1]
+ }
+ };
+ t.data.bgActivePosistion = void 0, t.redrawHint("select", !0), t.touchData.start ? t.touchData.start.emit(Xr) : me.emit(Xr), t.touchData.start && (t.touchData.start._private.grabbed = !1), t.touchData.cxtDragged = !0;
+ var Ht = t.findNearestElement(be[0], be[1], !0, !0);
+ (!t.touchData.cxtOver || Ht !== t.touchData.cxtOver) && (t.touchData.cxtOver && t.touchData.cxtOver.emit({
+ originalEvent: N,
+ type: "cxtdragout",
+ position: {
+ x: be[0],
+ y: be[1]
+ }
+ }), t.touchData.cxtOver = Ht, Ht && Ht.emit({
+ originalEvent: N,
+ type: "cxtdragover",
+ position: {
+ x: be[0],
+ y: be[1]
+ }
+ }));
+ } else if (le && N.touches[2] && me.boxSelectionEnabled())
+ N.preventDefault(), t.data.bgActivePosistion = void 0, this.lastThreeTouch = +new Date(), t.touchData.selecting || me.emit({
+ originalEvent: N,
+ type: "boxstart",
+ position: {
+ x: be[0],
+ y: be[1]
+ }
+ }), t.touchData.selecting = !0, t.touchData.didSelect = !0, De[4] = 1, !De || De.length === 0 || De[0] === void 0 ? (De[0] = (be[0] + be[2] + be[4]) / 3, De[1] = (be[1] + be[3] + be[5]) / 3, De[2] = (be[0] + be[2] + be[4]) / 3 + 1, De[3] = (be[1] + be[3] + be[5]) / 3 + 1) : (De[2] = (be[0] + be[2] + be[4]) / 3, De[3] = (be[1] + be[3] + be[5]) / 3), t.redrawHint("select", !0), t.redraw();
+ else if (le && N.touches[1] && !t.touchData.didSelect && me.zoomingEnabled() && me.panningEnabled() && me.userZoomingEnabled() && me.userPanningEnabled()) {
+ N.preventDefault(), t.data.bgActivePosistion = void 0, t.redrawHint("select", !0);
+ var Gt = t.dragData.touchDragEles;
+ if (Gt) {
+ t.redrawHint("drag", !0);
+ for (var Xt = 0; Xt < Gt.length; Xt++) {
+ var Jn = Gt[Xt]._private;
+ Jn.grabbed = !1, Jn.rscratch.inDragLayer = !1;
+ }
+ }
+ var cr = t.touchData.start, nr = N.touches[0].clientX - se, Rt = N.touches[0].clientY - de, Qt = N.touches[1].clientX - se, _t = N.touches[1].clientY - de, Fu = ye(nr, Rt, Qt, _t), up = Fu / Z;
+ if (Ee) {
+ var lp = nr - X, fp = Rt - z, hp = Qt - re, cp = _t - W, vp = (lp + hp) / 2, dp = (fp + cp) / 2, rn = me.zoom(), qi = rn * up, jn = me.pan(), zu = ge[0] * rn + jn.x, Gu = ge[1] * rn + jn.y, gp = {
+ x: -qi / rn * (zu - jn.x - vp) + zu,
+ y: -qi / rn * (Gu - jn.y - dp) + Gu
+ };
+ if (cr && cr.active()) {
+ var Gt = t.dragData.touchDragEles;
+ g(Gt), t.redrawHint("drag", !0), t.redrawHint("eles", !0), cr.unactivate().emit("freeon"), Gt.emit("free"), t.dragData.didDrag && (cr.emit("dragfreeon"), Gt.emit("dragfree"));
+ }
+ me.viewport({
+ zoom: qi,
+ pan: gp,
+ cancelOnFailedZoom: !0
+ }), me.emit("pinchzoom"), Z = Fu, X = nr, z = Rt, re = Qt, W = _t, t.pinching = !0;
+ }
+ if (N.touches[0]) {
+ var ze = t.projectIntoViewport(N.touches[0].clientX, N.touches[0].clientY);
+ be[0] = ze[0], be[1] = ze[1];
+ }
+ if (N.touches[1]) {
+ var ze = t.projectIntoViewport(N.touches[1].clientX, N.touches[1].clientY);
+ be[2] = ze[0], be[3] = ze[1];
+ }
+ if (N.touches[2]) {
+ var ze = t.projectIntoViewport(N.touches[2].clientX, N.touches[2].clientY);
+ be[4] = ze[0], be[5] = ze[1];
+ }
+ } else if (N.touches[0] && !t.touchData.didSelect) {
+ var ir = t.touchData.start, Wi = t.touchData.last, Ht;
+ if (!t.hoverData.draggingEles && !t.swipePanning && (Ht = t.findNearestElement(be[0], be[1], !0, !0)), le && ir != null && N.preventDefault(), le && ir != null && t.nodeIsDraggable(ir))
+ if (dt) {
+ var Gt = t.dragData.touchDragEles, $u = !t.dragData.didDrag;
+ $u && v(Gt, {
+ inDragLayer: !0
+ }), t.dragData.didDrag = !0;
+ var an = {
+ x: 0,
+ y: 0
+ };
+ if (k(Qe[0]) && k(Qe[1]) && (an.x += Qe[0], an.y += Qe[1], $u)) {
+ t.redrawHint("eles", !0);
+ var sr = t.touchData.dragDelta;
+ sr && k(sr[0]) && k(sr[1]) && (an.x += sr[0], an.y += sr[1]);
+ }
+ t.hoverData.draggingEles = !0, Gt.silentShift(an).emit("position drag"), t.redrawHint("drag", !0), t.touchData.startPosition[0] == Ke[0] && t.touchData.startPosition[1] == Ke[1] && t.redrawHint("eles", !0), t.redraw();
+ } else {
+ var sr = t.touchData.dragDelta = t.touchData.dragDelta || [];
+ sr.length === 0 ? (sr.push(Qe[0]), sr.push(Qe[1])) : (sr[0] += Qe[0], sr[1] += Qe[1]);
+ }
+ if (r(ir || Ht, ["touchmove", "tapdrag", "vmousemove"], N, {
+ x: be[0],
+ y: be[1]
+ }), (!ir || !ir.grabbed()) && Ht != Wi && (Wi && Wi.emit({
+ originalEvent: N,
+ type: "tapdragout",
+ position: {
+ x: be[0],
+ y: be[1]
+ }
+ }), Ht && Ht.emit({
+ originalEvent: N,
+ type: "tapdragover",
+ position: {
+ x: be[0],
+ y: be[1]
+ }
+ })), t.touchData.last = Ht, le)
+ for (var Xt = 0; Xt < be.length; Xt++)
+ be[Xt] && t.touchData.startPosition[Xt] && dt && (t.touchData.singleTouchMoved = !0);
+ if (le && (ir == null || ir.pannable()) && me.panningEnabled() && me.userPanningEnabled()) {
+ var pp = n(ir, t.touchData.starts);
+ pp && (N.preventDefault(), t.data.bgActivePosistion || (t.data.bgActivePosistion = jr(t.touchData.startPosition)), t.swipePanning ? (me.panBy({
+ x: Qe[0] * Le,
+ y: Qe[1] * Le
+ }), me.emit("dragpan")) : dt && (t.swipePanning = !0, me.panBy({
+ x: Ze * Le,
+ y: Ct * Le
+ }), me.emit("dragpan"), ir && (ir.unactivate(), t.redrawHint("select", !0), t.touchData.start = null)));
+ var ze = t.projectIntoViewport(N.touches[0].clientX, N.touches[0].clientY);
+ be[0] = ze[0], be[1] = ze[1];
+ }
+ }
+ for (var ut = 0; ut < be.length; ut++)
+ Ke[ut] = be[ut];
+ le && N.touches.length > 0 && !t.hoverData.draggingEles && !t.swipePanning && t.data.bgActivePosistion != null && (t.data.bgActivePosistion = void 0, t.redrawHint("select", !0), t.redraw());
+ }
+ }, !1);
+ var Oe;
+ t.registerBinding(window, "touchcancel", Oe = function(N) {
+ var le = t.touchData.start;
+ t.touchData.capture = !1, le && le.unactivate();
+ });
+ var Ie, He, qe, Re;
+ if (t.registerBinding(window, "touchend", Ie = function(N) {
+ var le = t.touchData.start, De = t.touchData.capture;
+ if (De)
+ N.touches.length === 0 && (t.touchData.capture = !1), N.preventDefault();
+ else
+ return;
+ var me = t.selection;
+ t.swipePanning = !1, t.hoverData.draggingEles = !1;
+ var be = t.cy, Ke = be.zoom(), Le = t.touchData.now, ze = t.touchData.earlier;
+ if (N.touches[0]) {
+ var at = t.projectIntoViewport(N.touches[0].clientX, N.touches[0].clientY);
+ Le[0] = at[0], Le[1] = at[1];
+ }
+ if (N.touches[1]) {
+ var at = t.projectIntoViewport(N.touches[1].clientX, N.touches[1].clientY);
+ Le[2] = at[0], Le[3] = at[1];
+ }
+ if (N.touches[2]) {
+ var at = t.projectIntoViewport(N.touches[2].clientX, N.touches[2].clientY);
+ Le[4] = at[0], Le[5] = at[1];
+ }
+ le && le.unactivate();
+ var dt;
+ if (t.touchData.cxt) {
+ if (dt = {
+ originalEvent: N,
+ type: "cxttapend",
+ position: {
+ x: Le[0],
+ y: Le[1]
+ }
+ }, le ? le.emit(dt) : be.emit(dt), !t.touchData.cxtDragged) {
+ var Qe = {
+ originalEvent: N,
+ type: "cxttap",
+ position: {
+ x: Le[0],
+ y: Le[1]
+ }
+ };
+ le ? le.emit(Qe) : be.emit(Qe);
+ }
+ t.touchData.start && (t.touchData.start._private.grabbed = !1), t.touchData.cxt = !1, t.touchData.start = null, t.redraw();
+ return;
+ }
+ if (!N.touches[2] && be.boxSelectionEnabled() && t.touchData.selecting) {
+ t.touchData.selecting = !1;
+ var ut = be.collection(t.getAllInBox(me[0], me[1], me[2], me[3]));
+ me[0] = void 0, me[1] = void 0, me[2] = void 0, me[3] = void 0, me[4] = 0, t.redrawHint("select", !0), be.emit({
+ type: "boxend",
+ originalEvent: N,
+ position: {
+ x: Le[0],
+ y: Le[1]
+ }
+ });
+ var Ze = function(Hr) {
+ return Hr.selectable() && !Hr.selected();
+ };
+ ut.emit("box").stdFilter(Ze).select().emit("boxselect"), ut.nonempty() && t.redrawHint("eles", !0), t.redraw();
+ }
+ if (le != null && le.unactivate(), N.touches[2])
+ t.data.bgActivePosistion = void 0, t.redrawHint("select", !0);
+ else if (!N.touches[1]) {
+ if (!N.touches[0]) {
+ if (!N.touches[0]) {
+ t.data.bgActivePosistion = void 0, t.redrawHint("select", !0);
+ var Je = t.dragData.touchDragEles;
+ if (le != null) {
+ var Ct = le._private.grabbed;
+ g(Je), t.redrawHint("drag", !0), t.redrawHint("eles", !0), Ct && (le.emit("freeon"), Je.emit("free"), t.dragData.didDrag && (le.emit("dragfreeon"), Je.emit("dragfree"))), r(le, ["touchend", "tapend", "vmouseup", "tapdragout"], N, {
+ x: Le[0],
+ y: Le[1]
+ }), le.unactivate(), t.touchData.start = null;
+ } else {
+ var It = t.findNearestElement(Le[0], Le[1], !0, !0);
+ r(It, ["touchend", "tapend", "vmouseup", "tapdragout"], N, {
+ x: Le[0],
+ y: Le[1]
+ });
+ }
+ var ar = t.touchData.startPosition[0] - Le[0], nr = ar * ar, Rt = t.touchData.startPosition[1] - Le[1], Qt = Rt * Rt, _t = nr + Qt, br = _t * Ke * Ke;
+ t.touchData.singleTouchMoved || (le || be.$(":selected").unselect(["tapunselect"]), r(le, ["tap", "vclick"], N, {
+ x: Le[0],
+ y: Le[1]
+ }), He = !1, N.timeStamp - Re <= be.multiClickDebounceTime() ? (qe && clearTimeout(qe), He = !0, Re = null, r(le, ["dbltap", "vdblclick"], N, {
+ x: Le[0],
+ y: Le[1]
+ })) : (qe = setTimeout(function() {
+ He || r(le, ["onetap", "voneclick"], N, {
+ x: Le[0],
+ y: Le[1]
+ });
+ }, be.multiClickDebounceTime()), Re = N.timeStamp)), le != null && !t.dragData.didDrag && le._private.selectable && br < t.touchTapThreshold2 && !t.pinching && (be.selectionType() === "single" ? (be.$(e).unmerge(le).unselect(["tapunselect"]), le.select(["tapselect"])) : le.selected() ? le.unselect(["tapunselect"]) : le.select(["tapselect"]), t.redrawHint("eles", !0)), t.touchData.singleTouchMoved = !0;
+ }
+ }
+ }
+ for (var Ir = 0; Ir < Le.length; Ir++)
+ ze[Ir] = Le[Ir];
+ t.dragData.didDrag = !1, N.touches.length === 0 && (t.touchData.dragDelta = [], t.touchData.startPosition = null, t.touchData.startGPosition = null, t.touchData.didSelect = !1), N.touches.length < 2 && (N.touches.length === 1 && (t.touchData.startGPosition = [N.touches[0].clientX, N.touches[0].clientY]), t.pinching = !1, t.redrawHint("eles", !0), t.redraw());
+ }, !1), typeof TouchEvent > "u") {
+ var Me = [], Ve = function(N) {
+ return {
+ clientX: N.clientX,
+ clientY: N.clientY,
+ force: 1,
+ identifier: N.pointerId,
+ pageX: N.pageX,
+ pageY: N.pageY,
+ radiusX: N.width / 2,
+ radiusY: N.height / 2,
+ screenX: N.screenX,
+ screenY: N.screenY,
+ target: N.target
+ };
+ }, Fe = function(N) {
+ return {
+ event: N,
+ touch: Ve(N)
+ };
+ }, ke = function(N) {
+ Me.push(Fe(N));
+ }, Ge = function(N) {
+ for (var le = 0; le < Me.length; le++) {
+ var De = Me[le];
+ if (De.event.pointerId === N.pointerId) {
+ Me.splice(le, 1);
+ return;
+ }
+ }
+ }, et = function(N) {
+ var le = Me.filter(function(De) {
+ return De.event.pointerId === N.pointerId;
+ })[0];
+ le.event = N, le.touch = Ve(N);
+ }, We = function(N) {
+ N.touches = Me.map(function(le) {
+ return le.touch;
+ });
+ }, Ye = function(N) {
+ return N.pointerType === "mouse" || N.pointerType === 4;
+ };
+ t.registerBinding(t.container, "pointerdown", function(Se) {
+ Ye(Se) || (Se.preventDefault(), ke(Se), We(Se), xe(Se));
+ }), t.registerBinding(t.container, "pointerup", function(Se) {
+ Ye(Se) || (Ge(Se), We(Se), Ie(Se));
+ }), t.registerBinding(t.container, "pointercancel", function(Se) {
+ Ye(Se) || (Ge(Se), We(Se), Oe(Se));
+ }), t.registerBinding(t.container, "pointermove", function(Se) {
+ Ye(Se) || (Se.preventDefault(), et(Se), We(Se), Ce(Se));
+ });
+ }
+ };
+ var yr = {};
+ yr.generatePolygon = function(t, e) {
+ return this.nodeShapes[t] = {
+ renderer: this,
+ name: t,
+ points: e,
+ draw: function(a, n, i, s, o) {
+ this.renderer.nodeShapeImpl("polygon", a, n, i, s, o, this.points);
+ },
+ intersectLine: function(a, n, i, s, o, l, u) {
+ return Ba(o, l, this.points, a, n, i / 2, s / 2, u);
+ },
+ checkPoint: function(a, n, i, s, o, l, u) {
+ return gr(a, n, this.points, l, u, s, o, [0, -1], i);
+ }
+ };
+ }, yr.generateEllipse = function() {
+ return this.nodeShapes.ellipse = {
+ renderer: this,
+ name: "ellipse",
+ draw: function(e, r, a, n, i) {
+ this.renderer.nodeShapeImpl(this.name, e, r, a, n, i);
+ },
+ intersectLine: function(e, r, a, n, i, s, o) {
+ return Pf(i, s, e, r, a / 2 + o, n / 2 + o);
+ },
+ checkPoint: function(e, r, a, n, i, s, o) {
+ return Fr(e, r, n, i, s, o, a);
+ }
+ };
+ }, yr.generateRoundPolygon = function(t, e) {
+ for (var r = new Array(e.length * 2), a = 0; a < e.length / 2; a++) {
+ var n = a * 2, i = void 0;
+ a < e.length / 2 - 1 ? i = (a + 1) * 2 : i = 0, r[a * 4] = e[n], r[a * 4 + 1] = e[n + 1];
+ var s = e[i] - e[n], o = e[i + 1] - e[n + 1], l = Math.sqrt(s * s + o * o);
+ r[a * 4 + 2] = s / l, r[a * 4 + 3] = o / l;
+ }
+ return this.nodeShapes[t] = {
+ renderer: this,
+ name: t,
+ points: r,
+ draw: function(f, h, c, v, d) {
+ this.renderer.nodeShapeImpl("round-polygon", f, h, c, v, d, this.points);
+ },
+ intersectLine: function(f, h, c, v, d, g, y) {
+ return Bf(d, g, this.points, f, h, c, v);
+ },
+ checkPoint: function(f, h, c, v, d, g, y) {
+ return kf(f, h, this.points, g, y, v, d);
+ }
+ };
+ }, yr.generateRoundRectangle = function() {
+ return this.nodeShapes["round-rectangle"] = this.nodeShapes.roundrectangle = {
+ renderer: this,
+ name: "round-rectangle",
+ points: $t(4, 0),
+ draw: function(e, r, a, n, i) {
+ this.renderer.nodeShapeImpl(this.name, e, r, a, n, i);
+ },
+ intersectLine: function(e, r, a, n, i, s, o) {
+ return Ts(i, s, e, r, a, n, o);
+ },
+ checkPoint: function(e, r, a, n, i, s, o) {
+ var l = Fa(n, i), u = l * 2;
+ return !!(gr(e, r, this.points, s, o, n, i - u, [0, -1], a) || gr(e, r, this.points, s, o, n - u, i, [0, -1], a) || Fr(e, r, u, u, s - n / 2 + l, o - i / 2 + l, a) || Fr(e, r, u, u, s + n / 2 - l, o - i / 2 + l, a) || Fr(e, r, u, u, s + n / 2 - l, o + i / 2 - l, a) || Fr(e, r, u, u, s - n / 2 + l, o + i / 2 - l, a));
+ }
+ };
+ }, yr.generateCutRectangle = function() {
+ return this.nodeShapes["cut-rectangle"] = this.nodeShapes.cutrectangle = {
+ renderer: this,
+ name: "cut-rectangle",
+ cornerLength: Ls(),
+ points: $t(4, 0),
+ draw: function(e, r, a, n, i) {
+ this.renderer.nodeShapeImpl(this.name, e, r, a, n, i);
+ },
+ generateCutTrianglePts: function(e, r, a, n) {
+ var i = this.cornerLength, s = r / 2, o = e / 2, l = a - o, u = a + o, f = n - s, h = n + s;
+ return {
+ topLeft: [l, f + i, l + i, f, l + i, f + i],
+ topRight: [u - i, f, u, f + i, u - i, f + i],
+ bottomRight: [u, h - i, u - i, h, u - i, h - i],
+ bottomLeft: [l + i, h, l, h - i, l + i, h - i]
+ };
+ },
+ intersectLine: function(e, r, a, n, i, s, o) {
+ var l = this.generateCutTrianglePts(a + 2 * o, n + 2 * o, e, r), u = [].concat.apply([], [l.topLeft.splice(0, 4), l.topRight.splice(0, 4), l.bottomRight.splice(0, 4), l.bottomLeft.splice(0, 4)]);
+ return Ba(i, s, u, e, r);
+ },
+ checkPoint: function(e, r, a, n, i, s, o) {
+ if (gr(e, r, this.points, s, o, n, i - 2 * this.cornerLength, [0, -1], a) || gr(e, r, this.points, s, o, n - 2 * this.cornerLength, i, [0, -1], a))
+ return !0;
+ var l = this.generateCutTrianglePts(n, i, s, o);
+ return Yt(e, r, l.topLeft) || Yt(e, r, l.topRight) || Yt(e, r, l.bottomRight) || Yt(e, r, l.bottomLeft);
+ }
+ };
+ }, yr.generateBarrel = function() {
+ return this.nodeShapes.barrel = {
+ renderer: this,
+ name: "barrel",
+ points: $t(4, 0),
+ draw: function(e, r, a, n, i) {
+ this.renderer.nodeShapeImpl(this.name, e, r, a, n, i);
+ },
+ intersectLine: function(e, r, a, n, i, s, o) {
+ var l = 0.15, u = 0.5, f = 0.85, h = this.generateBarrelBezierPts(a + 2 * o, n + 2 * o, e, r), c = function(g) {
+ var y = ea({
+ x: g[0],
+ y: g[1]
+ }, {
+ x: g[2],
+ y: g[3]
+ }, {
+ x: g[4],
+ y: g[5]
+ }, l), p = ea({
+ x: g[0],
+ y: g[1]
+ }, {
+ x: g[2],
+ y: g[3]
+ }, {
+ x: g[4],
+ y: g[5]
+ }, u), m = ea({
+ x: g[0],
+ y: g[1]
+ }, {
+ x: g[2],
+ y: g[3]
+ }, {
+ x: g[4],
+ y: g[5]
+ }, f);
+ return [g[0], g[1], y.x, y.y, p.x, p.y, m.x, m.y, g[4], g[5]];
+ }, v = [].concat(c(h.topLeft), c(h.topRight), c(h.bottomRight), c(h.bottomLeft));
+ return Ba(i, s, v, e, r);
+ },
+ generateBarrelBezierPts: function(e, r, a, n) {
+ var i = r / 2, s = e / 2, o = a - s, l = a + s, u = n - i, f = n + i, h = gi(e, r), c = h.heightOffset, v = h.widthOffset, d = h.ctrlPtOffsetPct * e, g = {
+ topLeft: [o, u + c, o + d, u, o + v, u],
+ topRight: [l - v, u, l - d, u, l, u + c],
+ bottomRight: [l, f - c, l - d, f, l - v, f],
+ bottomLeft: [o + v, f, o + d, f, o, f - c]
+ };
+ return g.topLeft.isTop = !0, g.topRight.isTop = !0, g.bottomLeft.isBottom = !0, g.bottomRight.isBottom = !0, g;
+ },
+ checkPoint: function(e, r, a, n, i, s, o) {
+ var l = gi(n, i), u = l.heightOffset, f = l.widthOffset;
+ if (gr(e, r, this.points, s, o, n, i - 2 * u, [0, -1], a) || gr(e, r, this.points, s, o, n - 2 * f, i, [0, -1], a))
+ return !0;
+ for (var h = this.generateBarrelBezierPts(n, i, s, o), c = function(w, I, C) {
+ var B = C[4], F = C[2], R = C[0], X = C[5], z = C[1], re = Math.min(B, R), W = Math.max(B, R), Z = Math.min(X, z), ie = Math.max(X, z);
+ if (re <= w && w <= W && Z <= I && I <= ie) {
+ var oe = Ff(B, F, R), ge = Nf(oe[0], oe[1], oe[2], w), se = ge.filter(function(de) {
+ return 0 <= de && de <= 1;
+ });
+ if (se.length > 0)
+ return se[0];
+ }
+ return null;
+ }, v = Object.keys(h), d = 0; d < v.length; d++) {
+ var g = v[d], y = h[g], p = c(e, r, y);
+ if (p != null) {
+ var m = y[5], b = y[3], E = y[1], M = St(m, b, E, p);
+ if (y.isTop && M <= r || y.isBottom && r <= M)
+ return !0;
+ }
+ }
+ return !1;
+ }
+ };
+ }, yr.generateBottomRoundrectangle = function() {
+ return this.nodeShapes["bottom-round-rectangle"] = this.nodeShapes.bottomroundrectangle = {
+ renderer: this,
+ name: "bottom-round-rectangle",
+ points: $t(4, 0),
+ draw: function(e, r, a, n, i) {
+ this.renderer.nodeShapeImpl(this.name, e, r, a, n, i);
+ },
+ intersectLine: function(e, r, a, n, i, s, o) {
+ var l = e - (a / 2 + o), u = r - (n / 2 + o), f = u, h = e + (a / 2 + o), c = Tr(i, s, e, r, l, u, h, f, !1);
+ return c.length > 0 ? c : Ts(i, s, e, r, a, n, o);
+ },
+ checkPoint: function(e, r, a, n, i, s, o) {
+ var l = Fa(n, i), u = 2 * l;
+ if (gr(e, r, this.points, s, o, n, i - u, [0, -1], a) || gr(e, r, this.points, s, o, n - u, i, [0, -1], a))
+ return !0;
+ var f = n / 2 + 2 * a, h = i / 2 + 2 * a, c = [s - f, o - h, s - f, o, s + f, o, s + f, o - h];
+ return !!(Yt(e, r, c) || Fr(e, r, u, u, s + n / 2 - l, o + i / 2 - l, a) || Fr(e, r, u, u, s - n / 2 + l, o + i / 2 - l, a));
+ }
+ };
+ }, yr.registerNodeShapes = function() {
+ var t = this.nodeShapes = {}, e = this;
+ this.generateEllipse(), this.generatePolygon("triangle", $t(3, 0)), this.generateRoundPolygon("round-triangle", $t(3, 0)), this.generatePolygon("rectangle", $t(4, 0)), t.square = t.rectangle, this.generateRoundRectangle(), this.generateCutRectangle(), this.generateBarrel(), this.generateBottomRoundrectangle();
+ {
+ var r = [0, 1, 1, 0, 0, -1, -1, 0];
+ this.generatePolygon("diamond", r), this.generateRoundPolygon("round-diamond", r);
+ }
+ this.generatePolygon("pentagon", $t(5, 0)), this.generateRoundPolygon("round-pentagon", $t(5, 0)), this.generatePolygon("hexagon", $t(6, 0)), this.generateRoundPolygon("round-hexagon", $t(6, 0)), this.generatePolygon("heptagon", $t(7, 0)), this.generateRoundPolygon("round-heptagon", $t(7, 0)), this.generatePolygon("octagon", $t(8, 0)), this.generateRoundPolygon("round-octagon", $t(8, 0));
+ var a = new Array(20);
+ {
+ var n = vi(5, 0), i = vi(5, Math.PI / 5), s = 0.5 * (3 - Math.sqrt(5));
+ s *= 1.57;
+ for (var o = 0; o < i.length / 2; o++)
+ i[o * 2] *= s, i[o * 2 + 1] *= s;
+ for (var o = 0; o < 20 / 4; o++)
+ a[o * 4] = n[o * 2], a[o * 4 + 1] = n[o * 2 + 1], a[o * 4 + 2] = i[o * 2], a[o * 4 + 3] = i[o * 2 + 1];
+ }
+ a = Ss(a), this.generatePolygon("star", a), this.generatePolygon("vee", [-1, -1, 0, -0.333, 1, -1, 0, 1]), this.generatePolygon("rhomboid", [-1, -1, 0.333, -1, 1, 1, -0.333, 1]), this.nodeShapes.concavehexagon = this.generatePolygon("concave-hexagon", [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]);
+ {
+ var l = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1];
+ this.generatePolygon("tag", l), this.generateRoundPolygon("round-tag", l);
+ }
+ t.makePolygon = function(u) {
+ var f = u.join("$"), h = "polygon-" + f, c;
+ return (c = this[h]) ? c : e.generatePolygon(h, u);
+ };
+ };
+ var Ja = {};
+ Ja.timeToRender = function() {
+ return this.redrawTotalTime / this.redrawCount;
+ }, Ja.redraw = function(t) {
+ t = t || ys();
+ var e = this;
+ e.averageRedrawTime === void 0 && (e.averageRedrawTime = 0), e.lastRedrawTime === void 0 && (e.lastRedrawTime = 0), e.lastDrawTime === void 0 && (e.lastDrawTime = 0), e.requestedFrame = !0, e.renderOptions = t;
+ }, Ja.beforeRender = function(t, e) {
+ if (!this.destroyed) {
+ e == null && xt("Priority is not optional for beforeRender");
+ var r = this.beforeRenderCallbacks;
+ r.push({
+ fn: t,
+ priority: e
+ }), r.sort(function(a, n) {
+ return n.priority - a.priority;
+ });
+ }
+ };
+ var vu = function(e, r, a) {
+ for (var n = e.beforeRenderCallbacks, i = 0; i < n.length; i++)
+ n[i].fn(r, a);
+ };
+ Ja.startRenderLoop = function() {
+ var t = this, e = t.cy;
+ if (!t.renderLoopStarted) {
+ t.renderLoopStarted = !0;
+ var r = function a(n) {
+ if (!t.destroyed) {
+ if (!e.batching())
+ if (t.requestedFrame && !t.skipFrame) {
+ vu(t, !0, n);
+ var i = dr();
+ t.render(t.renderOptions);
+ var s = t.lastDrawTime = dr();
+ t.averageRedrawTime === void 0 && (t.averageRedrawTime = s - i), t.redrawCount === void 0 && (t.redrawCount = 0), t.redrawCount++, t.redrawTotalTime === void 0 && (t.redrawTotalTime = 0);
+ var o = s - i;
+ t.redrawTotalTime += o, t.lastRedrawTime = o, t.averageRedrawTime = t.averageRedrawTime / 2 + o / 2, t.requestedFrame = !1;
+ } else
+ vu(t, !1, n);
+ t.skipFrame = !1, fn(a);
+ }
+ };
+ fn(r);
+ }
+ };
+ var dg = function(e) {
+ this.init(e);
+ }, du = dg, ma = du.prototype;
+ ma.clientFunctions = ["redrawHint", "render", "renderTo", "matchCanvasSize", "nodeShapeImpl", "arrowShapeImpl"], ma.init = function(t) {
+ var e = this;
+ e.options = t, e.cy = t.cy;
+ var r = e.container = t.cy.container();
+ if (D) {
+ var a = D.document, n = a.head, i = "__________cytoscape_stylesheet", s = "__________cytoscape_container", o = a.getElementById(i) != null;
+ if (r.className.indexOf(s) < 0 && (r.className = (r.className || "") + " " + s), !o) {
+ var l = a.createElement("style");
+ l.id = i, l.innerHTML = "." + s + " { position: relative; }", n.insertBefore(l, n.children[0]);
+ }
+ var u = D.getComputedStyle(r), f = u.getPropertyValue("position");
+ f === "static" && ft("A Cytoscape container has style position:static and so can not use UI extensions properly");
+ }
+ e.selection = [void 0, void 0, void 0, void 0, 0], e.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95], e.hoverData = {
+ down: null,
+ last: null,
+ downTime: null,
+ triggerMode: null,
+ dragging: !1,
+ initialPan: [null, null],
+ capture: !1
+ }, e.dragData = {
+ possibleDragElements: []
+ }, e.touchData = {
+ start: null,
+ capture: !1,
+ // These 3 fields related to tap, taphold events
+ startPosition: [null, null, null, null, null, null],
+ singleTouchStartTime: null,
+ singleTouchMoved: !0,
+ now: [null, null, null, null, null, null],
+ earlier: [null, null, null, null, null, null]
+ }, e.redraws = 0, e.showFps = t.showFps, e.debug = t.debug, e.hideEdgesOnViewport = t.hideEdgesOnViewport, e.textureOnViewport = t.textureOnViewport, e.wheelSensitivity = t.wheelSensitivity, e.motionBlurEnabled = t.motionBlur, e.forcedPixelRatio = k(t.pixelRatio) ? t.pixelRatio : null, e.motionBlur = t.motionBlur, e.motionBlurOpacity = t.motionBlurOpacity, e.motionBlurTransparency = 1 - e.motionBlurOpacity, e.motionBlurPxRatio = 1, e.mbPxRBlurry = 1, e.minMbLowQualFrames = 4, e.fullQualityMb = !1, e.clearedForMotionBlur = [], e.desktopTapThreshold = t.desktopTapThreshold, e.desktopTapThreshold2 = t.desktopTapThreshold * t.desktopTapThreshold, e.touchTapThreshold = t.touchTapThreshold, e.touchTapThreshold2 = t.touchTapThreshold * t.touchTapThreshold, e.tapholdDuration = 500, e.bindings = [], e.beforeRenderCallbacks = [], e.beforeRenderPriorities = {
+ // higher priority execs before lower one
+ animations: 400,
+ eleCalcs: 300,
+ eleTxrDeq: 200,
+ lyrTxrDeq: 150,
+ lyrTxrSkip: 100
+ }, e.registerNodeShapes(), e.registerArrowShapes(), e.registerCalculationListeners();
+ }, ma.notify = function(t, e) {
+ var r = this, a = r.cy;
+ if (!this.destroyed) {
+ if (t === "init") {
+ r.load();
+ return;
+ }
+ if (t === "destroy") {
+ r.destroy();
+ return;
+ }
+ (t === "add" || t === "remove" || t === "move" && a.hasCompoundNodes() || t === "load" || t === "zorder" || t === "mount") && r.invalidateCachedZSortedEles(), t === "viewport" && r.redrawHint("select", !0), (t === "load" || t === "resize" || t === "mount") && (r.invalidateContainerClientCoordsCache(), r.matchCanvasSize(r.container)), r.redrawHint("eles", !0), r.redrawHint("drag", !0), this.startRenderLoop(), this.redraw();
+ }
+ }, ma.destroy = function() {
+ var t = this;
+ t.destroyed = !0, t.cy.stopAnimationLoop();
+ for (var e = 0; e < t.bindings.length; e++) {
+ var r = t.bindings[e], a = r, n = a.target;
+ (n.off || n.removeEventListener).apply(n, a.args);
+ }
+ if (t.bindings = [], t.beforeRenderCallbacks = [], t.onUpdateEleCalcsFns = [], t.removeObserver && t.removeObserver.disconnect(), t.styleObserver && t.styleObserver.disconnect(), t.resizeObserver && t.resizeObserver.disconnect(), t.labelCalcDiv)
+ try {
+ document.body.removeChild(t.labelCalcDiv);
+ } catch {
+ }
+ }, ma.isHeadless = function() {
+ return !1;
+ }, [zi, hu, cu, ya, yr, Ja].forEach(function(t) {
+ Ue(ma, t);
+ });
+ var $i = 1e3 / 60, gu = {
+ setupDequeueing: function(e) {
+ return function() {
+ var a = this, n = this.renderer;
+ if (!a.dequeueingSetup) {
+ a.dequeueingSetup = !0;
+ var i = ln(function() {
+ n.redrawHint("eles", !0), n.redrawHint("drag", !0), n.redraw();
+ }, e.deqRedrawThreshold), s = function(u, f) {
+ var h = dr(), c = n.averageRedrawTime, v = n.lastRedrawTime, d = [], g = n.cy.extent(), y = n.getPixelRatio();
+ for (u || n.flushRenderedStyleQueue(); ; ) {
+ var p = dr(), m = p - h, b = p - f;
+ if (v < $i) {
+ var E = $i - (u ? c : 0);
+ if (b >= e.deqFastCost * E)
+ break;
+ } else if (u) {
+ if (m >= e.deqCost * v || m >= e.deqAvgCost * c)
+ break;
+ } else if (b >= e.deqNoDrawCost * $i)
+ break;
+ var M = e.deq(a, y, g);
+ if (M.length > 0)
+ for (var A = 0; A < M.length; A++)
+ d.push(M[A]);
+ else
+ break;
+ }
+ d.length > 0 && (e.onDeqd(a, d), !u && e.shouldRedraw(a, d, y, g) && i());
+ }, o = e.priority || si;
+ n.beforeRender(s, o(a));
+ }
+ };
+ }
+ }, gg = /* @__PURE__ */ function() {
+ function t(e) {
+ var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : cn;
+ ve(this, t), this.idsByKey = new ur(), this.keyForId = new ur(), this.cachesByLvl = new ur(), this.lvls = [], this.getKey = e, this.doesEleInvalidateKey = r;
+ }
+ return O(t, [{
+ key: "getIdsFor",
+ value: function(r) {
+ r == null && xt("Can not get id list for null key");
+ var a = this.idsByKey, n = this.idsByKey.get(r);
+ return n || (n = new Jr(), a.set(r, n)), n;
+ }
+ }, {
+ key: "addIdForKey",
+ value: function(r, a) {
+ r != null && this.getIdsFor(r).add(a);
+ }
+ }, {
+ key: "deleteIdForKey",
+ value: function(r, a) {
+ r != null && this.getIdsFor(r).delete(a);
+ }
+ }, {
+ key: "getNumberOfIdsForKey",
+ value: function(r) {
+ return r == null ? 0 : this.getIdsFor(r).size;
+ }
+ }, {
+ key: "updateKeyMappingFor",
+ value: function(r) {
+ var a = r.id(), n = this.keyForId.get(a), i = this.getKey(r);
+ this.deleteIdForKey(n, a), this.addIdForKey(i, a), this.keyForId.set(a, i);
+ }
+ }, {
+ key: "deleteKeyMappingFor",
+ value: function(r) {
+ var a = r.id(), n = this.keyForId.get(a);
+ this.deleteIdForKey(n, a), this.keyForId.delete(a);
+ }
+ }, {
+ key: "keyHasChangedFor",
+ value: function(r) {
+ var a = r.id(), n = this.keyForId.get(a), i = this.getKey(r);
+ return n !== i;
+ }
+ }, {
+ key: "isInvalid",
+ value: function(r) {
+ return this.keyHasChangedFor(r) || this.doesEleInvalidateKey(r);
+ }
+ }, {
+ key: "getCachesAt",
+ value: function(r) {
+ var a = this.cachesByLvl, n = this.lvls, i = a.get(r);
+ return i || (i = new ur(), a.set(r, i), n.push(r)), i;
+ }
+ }, {
+ key: "getCache",
+ value: function(r, a) {
+ return this.getCachesAt(a).get(r);
+ }
+ }, {
+ key: "get",
+ value: function(r, a) {
+ var n = this.getKey(r), i = this.getCache(n, a);
+ return i != null && this.updateKeyMappingFor(r), i;
+ }
+ }, {
+ key: "getForCachedKey",
+ value: function(r, a) {
+ var n = this.keyForId.get(r.id()), i = this.getCache(n, a);
+ return i;
+ }
+ }, {
+ key: "hasCache",
+ value: function(r, a) {
+ return this.getCachesAt(a).has(r);
+ }
+ }, {
+ key: "has",
+ value: function(r, a) {
+ var n = this.getKey(r);
+ return this.hasCache(n, a);
+ }
+ }, {
+ key: "setCache",
+ value: function(r, a, n) {
+ n.key = r, this.getCachesAt(a).set(r, n);
+ }
+ }, {
+ key: "set",
+ value: function(r, a, n) {
+ var i = this.getKey(r);
+ this.setCache(i, a, n), this.updateKeyMappingFor(r);
+ }
+ }, {
+ key: "deleteCache",
+ value: function(r, a) {
+ this.getCachesAt(a).delete(r);
+ }
+ }, {
+ key: "delete",
+ value: function(r, a) {
+ var n = this.getKey(r);
+ this.deleteCache(n, a);
+ }
+ }, {
+ key: "invalidateKey",
+ value: function(r) {
+ var a = this;
+ this.lvls.forEach(function(n) {
+ return a.deleteCache(r, n);
+ });
+ }
+ // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key)
+ }, {
+ key: "invalidate",
+ value: function(r) {
+ var a = r.id(), n = this.keyForId.get(a);
+ this.deleteKeyMappingFor(r);
+ var i = this.doesEleInvalidateKey(r);
+ return i && this.invalidateKey(n), i || this.getNumberOfIdsForKey(n) === 0;
+ }
+ }]), t;
+ }(), pu = 25, Wn = 50, Kn = -4, Vi = 3, pg = 7.99, yg = 8, mg = 1024, bg = 1024, Eg = 1024, wg = 0.2, xg = 0.8, Tg = 10, Cg = 0.15, Dg = 0.1, Sg = 0.9, Lg = 0.9, Ag = 100, Og = 1, ba = {
+ dequeue: "dequeue",
+ downscale: "downscale",
+ highQuality: "highQuality"
+ }, Ng = Lt({
+ getKey: null,
+ doesEleInvalidateKey: cn,
+ drawElement: null,
+ getBoundingBox: null,
+ getRotationPoint: null,
+ getRotationOffset: null,
+ isVisible: vs,
+ allowEdgeTxrCaching: !0,
+ allowParentTxrCaching: !0
+ }), ja = function(e, r) {
+ var a = this;
+ a.renderer = e, a.onDequeues = [];
+ var n = Ng(r);
+ Ue(a, n), a.lookup = new gg(n.getKey, n.doesEleInvalidateKey), a.setupDequeueing();
+ }, Dt = ja.prototype;
+ Dt.reasons = ba, Dt.getTextureQueue = function(t) {
+ var e = this;
+ return e.eleImgCaches = e.eleImgCaches || {}, e.eleImgCaches[t] = e.eleImgCaches[t] || [];
+ }, Dt.getRetiredTextureQueue = function(t) {
+ var e = this, r = e.eleImgCaches.retired = e.eleImgCaches.retired || {}, a = r[t] = r[t] || [];
+ return a;
+ }, Dt.getElementQueue = function() {
+ var t = this, e = t.eleCacheQueue = t.eleCacheQueue || new Ra(function(r, a) {
+ return a.reqs - r.reqs;
+ });
+ return e;
+ }, Dt.getElementKeyToQueue = function() {
+ var t = this, e = t.eleKeyToCacheQueue = t.eleKeyToCacheQueue || {};
+ return e;
+ }, Dt.getElement = function(t, e, r, a, n) {
+ var i = this, s = this.renderer, o = s.cy.zoom(), l = this.lookup;
+ if (!e || e.w === 0 || e.h === 0 || isNaN(e.w) || isNaN(e.h) || !t.visible() || t.removed() || !i.allowEdgeTxrCaching && t.isEdge() || !i.allowParentTxrCaching && t.isParent())
+ return null;
+ if (a == null && (a = Math.ceil(li(o * r))), a < Kn)
+ a = Kn;
+ else if (o >= pg || a > Vi)
+ return null;
+ var u = Math.pow(2, a), f = e.h * u, h = e.w * u, c = s.eleTextBiggerThanMin(t, u);
+ if (!this.isVisible(t, c))
+ return null;
+ var v = l.get(t, a);
+ if (v && v.invalidated && (v.invalidated = !1, v.texture.invalidatedWidth -= v.width), v)
+ return v;
+ var d;
+ if (f <= pu ? d = pu : f <= Wn ? d = Wn : d = Math.ceil(f / Wn) * Wn, f > Eg || h > bg)
+ return null;
+ var g = i.getTextureQueue(d), y = g[g.length - 2], p = function() {
+ return i.recycleTexture(d, h) || i.addTexture(d, h);
+ };
+ y || (y = g[g.length - 1]), y || (y = p()), y.width - y.usedWidth < h && (y = p());
+ for (var m = function(W) {
+ return W && W.scaledLabelShown === c;
+ }, b = n && n === ba.dequeue, E = n && n === ba.highQuality, M = n && n === ba.downscale, A, w = a + 1; w <= Vi; w++) {
+ var I = l.get(t, w);
+ if (I) {
+ A = I;
+ break;
+ }
+ }
+ var C = A && A.level === a + 1 ? A : null, B = function() {
+ y.context.drawImage(C.texture.canvas, C.x, 0, C.width, C.height, y.usedWidth, 0, h, f);
+ };
+ if (y.context.setTransform(1, 0, 0, 1, 0, 0), y.context.clearRect(y.usedWidth, 0, h, d), m(C))
+ B();
+ else if (m(A))
+ if (E) {
+ for (var F = A.level; F > a; F--)
+ C = i.getElement(t, e, r, F, ba.downscale);
+ B();
+ } else
+ return i.queueElement(t, A.level - 1), A;
+ else {
+ var R;
+ if (!b && !E && !M)
+ for (var X = a - 1; X >= Kn; X--) {
+ var z = l.get(t, X);
+ if (z) {
+ R = z;
+ break;
+ }
+ }
+ if (m(R))
+ return i.queueElement(t, a), R;
+ y.context.translate(y.usedWidth, 0), y.context.scale(u, u), this.drawElement(y.context, t, e, c, !1), y.context.scale(1 / u, 1 / u), y.context.translate(-y.usedWidth, 0);
+ }
+ return v = {
+ x: y.usedWidth,
+ texture: y,
+ level: a,
+ scale: u,
+ width: h,
+ height: f,
+ scaledLabelShown: c
+ }, y.usedWidth += Math.ceil(h + yg), y.eleCaches.push(v), l.set(t, a, v), i.checkTextureFullness(y), v;
+ }, Dt.invalidateElements = function(t) {
+ for (var e = 0; e < t.length; e++)
+ this.invalidateElement(t[e]);
+ }, Dt.invalidateElement = function(t) {
+ var e = this, r = e.lookup, a = [], n = r.isInvalid(t);
+ if (n) {
+ for (var i = Kn; i <= Vi; i++) {
+ var s = r.getForCachedKey(t, i);
+ s && a.push(s);
+ }
+ var o = r.invalidate(t);
+ if (o)
+ for (var l = 0; l < a.length; l++) {
+ var u = a[l], f = u.texture;
+ f.invalidatedWidth += u.width, u.invalidated = !0, e.checkTextureUtility(f);
+ }
+ e.removeFromQueue(t);
+ }
+ }, Dt.checkTextureUtility = function(t) {
+ t.invalidatedWidth >= wg * t.width && this.retireTexture(t);
+ }, Dt.checkTextureFullness = function(t) {
+ var e = this, r = e.getTextureQueue(t.height);
+ t.usedWidth / t.width > xg && t.fullnessChecks >= Tg ? wr(r, t) : t.fullnessChecks++;
+ }, Dt.retireTexture = function(t) {
+ var e = this, r = t.height, a = e.getTextureQueue(r), n = this.lookup;
+ wr(a, t), t.retired = !0;
+ for (var i = t.eleCaches, s = 0; s < i.length; s++) {
+ var o = i[s];
+ n.deleteCache(o.key, o.level);
+ }
+ oi(i);
+ var l = e.getRetiredTextureQueue(r);
+ l.push(t);
+ }, Dt.addTexture = function(t, e) {
+ var r = this, a = r.getTextureQueue(t), n = {};
+ return a.push(n), n.eleCaches = [], n.height = t, n.width = Math.max(mg, e), n.usedWidth = 0, n.invalidatedWidth = 0, n.fullnessChecks = 0, n.canvas = r.renderer.makeOffscreenCanvas(n.width, n.height), n.context = n.canvas.getContext("2d"), n;
+ }, Dt.recycleTexture = function(t, e) {
+ for (var r = this, a = r.getTextureQueue(t), n = r.getRetiredTextureQueue(t), i = 0; i < n.length; i++) {
+ var s = n[i];
+ if (s.width >= e)
+ return s.retired = !1, s.usedWidth = 0, s.invalidatedWidth = 0, s.fullnessChecks = 0, oi(s.eleCaches), s.context.setTransform(1, 0, 0, 1, 0, 0), s.context.clearRect(0, 0, s.width, s.height), wr(n, s), a.push(s), s;
+ }
+ }, Dt.queueElement = function(t, e) {
+ var r = this, a = r.getElementQueue(), n = r.getElementKeyToQueue(), i = this.getKey(t), s = n[i];
+ if (s)
+ s.level = Math.max(s.level, e), s.eles.merge(t), s.reqs++, a.updateItem(s);
+ else {
+ var o = {
+ eles: t.spawn().merge(t),
+ level: e,
+ reqs: 1,
+ key: i
+ };
+ a.push(o), n[i] = o;
+ }
+ }, Dt.dequeue = function(t) {
+ for (var e = this, r = e.getElementQueue(), a = e.getElementKeyToQueue(), n = [], i = e.lookup, s = 0; s < Og && r.size() > 0; s++) {
+ var o = r.pop(), l = o.key, u = o.eles[0], f = i.hasCache(u, o.level);
+ if (a[l] = null, f)
+ continue;
+ n.push(o);
+ var h = e.getBoundingBox(u);
+ e.getElement(u, h, t, o.level, ba.dequeue);
+ }
+ return n;
+ }, Dt.removeFromQueue = function(t) {
+ var e = this, r = e.getElementQueue(), a = e.getElementKeyToQueue(), n = this.getKey(t), i = a[n];
+ i != null && (i.eles.length === 1 ? (i.reqs = ii, r.updateItem(i), r.pop(), a[n] = null) : i.eles.unmerge(t));
+ }, Dt.onDequeue = function(t) {
+ this.onDequeues.push(t);
+ }, Dt.offDequeue = function(t) {
+ wr(this.onDequeues, t);
+ }, Dt.setupDequeueing = gu.setupDequeueing({
+ deqRedrawThreshold: Ag,
+ deqCost: Cg,
+ deqAvgCost: Dg,
+ deqNoDrawCost: Sg,
+ deqFastCost: Lg,
+ deq: function(e, r, a) {
+ return e.dequeue(r, a);
+ },
+ onDeqd: function(e, r) {
+ for (var a = 0; a < e.onDequeues.length; a++) {
+ var n = e.onDequeues[a];
+ n(r);
+ }
+ },
+ shouldRedraw: function(e, r, a, n) {
+ for (var i = 0; i < r.length; i++)
+ for (var s = r[i].eles, o = 0; o < s.length; o++) {
+ var l = s[o].boundingBox();
+ if (hi(l, n))
+ return !0;
+ }
+ return !1;
+ },
+ priority: function(e) {
+ return e.renderer.beforeRenderPriorities.eleTxrDeq;
+ }
+ });
+ var Mg = 1, en = -4, Zn = 2, Ig = 3.99, Rg = 50, kg = 50, Pg = 0.15, Bg = 0.1, Fg = 0.9, zg = 0.9, Gg = 1, yu = 250, $g = 4e3 * 4e3, Vg = !0, mu = function(e) {
+ var r = this, a = r.renderer = e, n = a.cy;
+ r.layersByLevel = {}, r.firstGet = !0, r.lastInvalidationTime = dr() - 2 * yu, r.skipping = !1, r.eleTxrDeqs = n.collection(), r.scheduleElementRefinement = ln(function() {
+ r.refineElementTextures(r.eleTxrDeqs), r.eleTxrDeqs.unmerge(r.eleTxrDeqs);
+ }, kg), a.beforeRender(function(s, o) {
+ o - r.lastInvalidationTime <= yu ? r.skipping = !0 : r.skipping = !1;
+ }, a.beforeRenderPriorities.lyrTxrSkip);
+ var i = function(o, l) {
+ return l.reqs - o.reqs;
+ };
+ r.layersQueue = new Ra(i), r.setupDequeueing();
+ }, Mt = mu.prototype, bu = 0, _g = Math.pow(2, 53) - 1;
+ Mt.makeLayer = function(t, e) {
+ var r = Math.pow(2, e), a = Math.ceil(t.w * r), n = Math.ceil(t.h * r), i = this.renderer.makeOffscreenCanvas(a, n), s = {
+ id: bu = ++bu % _g,
+ bb: t,
+ level: e,
+ width: a,
+ height: n,
+ canvas: i,
+ context: i.getContext("2d"),
+ eles: [],
+ elesQueue: [],
+ reqs: 0
+ }, o = s.context, l = -s.bb.x1, u = -s.bb.y1;
+ return o.scale(r, r), o.translate(l, u), s;
+ }, Mt.getLayers = function(t, e, r) {
+ var a = this, n = a.renderer, i = n.cy, s = i.zoom(), o = a.firstGet;
+ if (a.firstGet = !1, r == null) {
+ if (r = Math.ceil(li(s * e)), r < en)
+ r = en;
+ else if (s >= Ig || r > Zn)
+ return null;
+ }
+ a.validateLayersElesOrdering(r, t);
+ var l = a.layersByLevel, u = Math.pow(2, r), f = l[r] = l[r] || [], h, c = a.levelIsComplete(r, t), v, d = function() {
+ var B = function(re) {
+ if (a.validateLayersElesOrdering(re, t), a.levelIsComplete(re, t))
+ return v = l[re], !0;
+ }, F = function(re) {
+ if (!v)
+ for (var W = r + re; en <= W && W <= Zn && !B(W); W += re)
+ ;
+ };
+ F(1), F(-1);
+ for (var R = f.length - 1; R >= 0; R--) {
+ var X = f[R];
+ X.invalid && wr(f, X);
+ }
+ };
+ if (!c)
+ d();
+ else
+ return f;
+ var g = function() {
+ if (!h) {
+ h = Ut();
+ for (var B = 0; B < t.length; B++)
+ Df(h, t[B].boundingBox());
+ }
+ return h;
+ }, y = function(B) {
+ B = B || {};
+ var F = B.after;
+ g();
+ var R = h.w * u * (h.h * u);
+ if (R > $g)
+ return null;
+ var X = a.makeLayer(h, r);
+ if (F != null) {
+ var z = f.indexOf(F) + 1;
+ f.splice(z, 0, X);
+ } else
+ (B.insert === void 0 || B.insert) && f.unshift(X);
+ return X;
+ };
+ if (a.skipping && !o)
+ return null;
+ for (var p = null, m = t.length / Mg, b = !o, E = 0; E < t.length; E++) {
+ var M = t[E], A = M._private.rscratch, w = A.imgLayerCaches = A.imgLayerCaches || {}, I = w[r];
+ if (I) {
+ p = I;
+ continue;
+ }
+ if ((!p || p.eles.length >= m || !xs(p.bb, M.boundingBox())) && (p = y({
+ insert: !0,
+ after: p
+ }), !p))
+ return null;
+ v || b ? a.queueLayer(p, M) : a.drawEleInLayer(p, M, r, e), p.eles.push(M), w[r] = p;
+ }
+ return v || (b ? null : f);
+ }, Mt.getEleLevelForLayerLevel = function(t, e) {
+ return t;
+ }, Mt.drawEleInLayer = function(t, e, r, a) {
+ var n = this, i = this.renderer, s = t.context, o = e.boundingBox();
+ o.w === 0 || o.h === 0 || !e.visible() || (r = n.getEleLevelForLayerLevel(r, a), i.setImgSmoothing(s, !1), i.drawCachedElement(s, e, null, null, r, Vg), i.setImgSmoothing(s, !0));
+ }, Mt.levelIsComplete = function(t, e) {
+ var r = this, a = r.layersByLevel[t];
+ if (!a || a.length === 0)
+ return !1;
+ for (var n = 0, i = 0; i < a.length; i++) {
+ var s = a[i];
+ if (s.reqs > 0 || s.invalid)
+ return !1;
+ n += s.eles.length;
+ }
+ return n === e.length;
+ }, Mt.validateLayersElesOrdering = function(t, e) {
+ var r = this.layersByLevel[t];
+ if (r)
+ for (var a = 0; a < r.length; a++) {
+ for (var n = r[a], i = -1, s = 0; s < e.length; s++)
+ if (n.eles[0] === e[s]) {
+ i = s;
+ break;
+ }
+ if (i < 0) {
+ this.invalidateLayer(n);
+ continue;
+ }
+ for (var o = i, s = 0; s < n.eles.length; s++)
+ if (n.eles[s] !== e[o + s]) {
+ this.invalidateLayer(n);
+ break;
+ }
+ }
+ }, Mt.updateElementsInLayers = function(t, e) {
+ for (var r = this, a = Ae(t[0]), n = 0; n < t.length; n++)
+ for (var i = a ? null : t[n], s = a ? t[n] : t[n].ele, o = s._private.rscratch, l = o.imgLayerCaches = o.imgLayerCaches || {}, u = en; u <= Zn; u++) {
+ var f = l[u];
+ f && (i && r.getEleLevelForLayerLevel(f.level) !== i.level || e(f, s, i));
+ }
+ }, Mt.haveLayers = function() {
+ for (var t = this, e = !1, r = en; r <= Zn; r++) {
+ var a = t.layersByLevel[r];
+ if (a && a.length > 0) {
+ e = !0;
+ break;
+ }
+ }
+ return e;
+ }, Mt.invalidateElements = function(t) {
+ var e = this;
+ t.length !== 0 && (e.lastInvalidationTime = dr(), !(t.length === 0 || !e.haveLayers()) && e.updateElementsInLayers(t, function(a, n, i) {
+ e.invalidateLayer(a);
+ }));
+ }, Mt.invalidateLayer = function(t) {
+ if (this.lastInvalidationTime = dr(), !t.invalid) {
+ var e = t.level, r = t.eles, a = this.layersByLevel[e];
+ wr(a, t), t.elesQueue = [], t.invalid = !0, t.replacement && (t.replacement.invalid = !0);
+ for (var n = 0; n < r.length; n++) {
+ var i = r[n]._private.rscratch.imgLayerCaches;
+ i && (i[e] = null);
+ }
+ }
+ }, Mt.refineElementTextures = function(t) {
+ var e = this;
+ e.updateElementsInLayers(t, function(a, n, i) {
+ var s = a.replacement;
+ if (s || (s = a.replacement = e.makeLayer(a.bb, a.level), s.replaces = a, s.eles = a.eles), !s.reqs)
+ for (var o = 0; o < s.eles.length; o++)
+ e.queueLayer(s, s.eles[o]);
+ });
+ }, Mt.enqueueElementRefinement = function(t) {
+ this.eleTxrDeqs.merge(t), this.scheduleElementRefinement();
+ }, Mt.queueLayer = function(t, e) {
+ var r = this, a = r.layersQueue, n = t.elesQueue, i = n.hasId = n.hasId || {};
+ if (!t.replacement) {
+ if (e) {
+ if (i[e.id()])
+ return;
+ n.push(e), i[e.id()] = !0;
+ }
+ t.reqs ? (t.reqs++, a.updateItem(t)) : (t.reqs = 1, a.push(t));
+ }
+ }, Mt.dequeue = function(t) {
+ for (var e = this, r = e.layersQueue, a = [], n = 0; n < Gg && r.size() !== 0; ) {
+ var i = r.peek();
+ if (i.replacement) {
+ r.pop();
+ continue;
+ }
+ if (i.replaces && i !== i.replaces.replacement) {
+ r.pop();
+ continue;
+ }
+ if (i.invalid) {
+ r.pop();
+ continue;
+ }
+ var s = i.elesQueue.shift();
+ s && (e.drawEleInLayer(i, s, i.level, t), n++), a.length === 0 && a.push(!0), i.elesQueue.length === 0 && (r.pop(), i.reqs = 0, i.replaces && e.applyLayerReplacement(i), e.requestRedraw());
+ }
+ return a;
+ }, Mt.applyLayerReplacement = function(t) {
+ var e = this, r = e.layersByLevel[t.level], a = t.replaces, n = r.indexOf(a);
+ if (!(n < 0 || a.invalid)) {
+ r[n] = t;
+ for (var i = 0; i < t.eles.length; i++) {
+ var s = t.eles[i]._private, o = s.imgLayerCaches = s.imgLayerCaches || {};
+ o && (o[t.level] = t);
+ }
+ e.requestRedraw();
+ }
+ }, Mt.requestRedraw = ln(function() {
+ var t = this.renderer;
+ t.redrawHint("eles", !0), t.redrawHint("drag", !0), t.redraw();
+ }, 100), Mt.setupDequeueing = gu.setupDequeueing({
+ deqRedrawThreshold: Rg,
+ deqCost: Pg,
+ deqAvgCost: Bg,
+ deqNoDrawCost: Fg,
+ deqFastCost: zg,
+ deq: function(e, r) {
+ return e.dequeue(r);
+ },
+ onDeqd: si,
+ shouldRedraw: vs,
+ priority: function(e) {
+ return e.renderer.beforeRenderPriorities.lyrTxrDeq;
+ }
+ });
+ var Eu = {}, wu;
+ function Ug(t, e) {
+ for (var r = 0; r < e.length; r++) {
+ var a = e[r];
+ t.lineTo(a.x, a.y);
+ }
+ }
+ function Yg(t, e, r) {
+ for (var a, n = 0; n < e.length; n++) {
+ var i = e[n];
+ n === 0 && (a = i), t.lineTo(i.x, i.y);
+ }
+ t.quadraticCurveTo(r.x, r.y, a.x, a.y);
+ }
+ function xu(t, e, r) {
+ t.beginPath && t.beginPath();
+ for (var a = e, n = 0; n < a.length; n++) {
+ var i = a[n];
+ t.lineTo(i.x, i.y);
+ }
+ var s = r, o = r[0];
+ t.moveTo(o.x, o.y);
+ for (var n = 1; n < s.length; n++) {
+ var i = s[n];
+ t.lineTo(i.x, i.y);
+ }
+ t.closePath && t.closePath();
+ }
+ function Hg(t, e, r, a, n) {
+ t.beginPath && t.beginPath(), t.arc(r, a, n, 0, Math.PI * 2, !1);
+ var i = e, s = i[0];
+ t.moveTo(s.x, s.y);
+ for (var o = 0; o < i.length; o++) {
+ var l = i[o];
+ t.lineTo(l.x, l.y);
+ }
+ t.closePath && t.closePath();
+ }
+ function Xg(t, e, r, a) {
+ t.arc(e, r, a, 0, Math.PI * 2, !1);
+ }
+ Eu.arrowShapeImpl = function(t) {
+ return (wu || (wu = {
+ polygon: Ug,
+ "triangle-backcurve": Yg,
+ "triangle-tee": xu,
+ "circle-triangle": Hg,
+ "triangle-cross": xu,
+ circle: Xg
+ }))[t];
+ };
+ var hr = {};
+ hr.drawElement = function(t, e, r, a, n, i) {
+ var s = this;
+ e.isNode() ? s.drawNode(t, e, r, a, n, i) : s.drawEdge(t, e, r, a, n, i);
+ }, hr.drawElementOverlay = function(t, e) {
+ var r = this;
+ e.isNode() ? r.drawNodeOverlay(t, e) : r.drawEdgeOverlay(t, e);
+ }, hr.drawElementUnderlay = function(t, e) {
+ var r = this;
+ e.isNode() ? r.drawNodeUnderlay(t, e) : r.drawEdgeUnderlay(t, e);
+ }, hr.drawCachedElementPortion = function(t, e, r, a, n, i, s, o) {
+ var l = this, u = r.getBoundingBox(e);
+ if (!(u.w === 0 || u.h === 0)) {
+ var f = r.getElement(e, u, a, n, i);
+ if (f != null) {
+ var h = o(l, e);
+ if (h === 0)
+ return;
+ var c = s(l, e), v = u.x1, d = u.y1, g = u.w, y = u.h, p, m, b, E, M;
+ if (c !== 0) {
+ var A = r.getRotationPoint(e);
+ b = A.x, E = A.y, t.translate(b, E), t.rotate(c), M = l.getImgSmoothing(t), M || l.setImgSmoothing(t, !0);
+ var w = r.getRotationOffset(e);
+ p = w.x, m = w.y;
+ } else
+ p = v, m = d;
+ var I;
+ h !== 1 && (I = t.globalAlpha, t.globalAlpha = I * h), t.drawImage(f.texture.canvas, f.x, 0, f.width, f.height, p, m, g, y), h !== 1 && (t.globalAlpha = I), c !== 0 && (t.rotate(-c), t.translate(-b, -E), M || l.setImgSmoothing(t, !1));
+ } else
+ r.drawElement(t, e);
+ }
+ };
+ var qg = function() {
+ return 0;
+ }, Wg = function(e, r) {
+ return e.getTextAngle(r, null);
+ }, Kg = function(e, r) {
+ return e.getTextAngle(r, "source");
+ }, Zg = function(e, r) {
+ return e.getTextAngle(r, "target");
+ }, Qg = function(e, r) {
+ return r.effectiveOpacity();
+ }, _i = function(e, r) {
+ return r.pstyle("text-opacity").pfValue * r.effectiveOpacity();
+ };
+ hr.drawCachedElement = function(t, e, r, a, n, i) {
+ var s = this, o = s.data, l = o.eleTxrCache, u = o.lblTxrCache, f = o.slbTxrCache, h = o.tlbTxrCache, c = e.boundingBox(), v = i === !0 ? l.reasons.highQuality : null;
+ if (!(c.w === 0 || c.h === 0 || !e.visible()) && (!a || hi(c, a))) {
+ var d = e.isEdge(), g = e.element()._private.rscratch.badLine;
+ s.drawElementUnderlay(t, e), s.drawCachedElementPortion(t, e, l, r, n, v, qg, Qg), (!d || !g) && s.drawCachedElementPortion(t, e, u, r, n, v, Wg, _i), d && !g && (s.drawCachedElementPortion(t, e, f, r, n, v, Kg, _i), s.drawCachedElementPortion(t, e, h, r, n, v, Zg, _i)), s.drawElementOverlay(t, e);
+ }
+ }, hr.drawElements = function(t, e) {
+ for (var r = this, a = 0; a < e.length; a++) {
+ var n = e[a];
+ r.drawElement(t, n);
+ }
+ }, hr.drawCachedElements = function(t, e, r, a) {
+ for (var n = this, i = 0; i < e.length; i++) {
+ var s = e[i];
+ n.drawCachedElement(t, s, r, a);
+ }
+ }, hr.drawCachedNodes = function(t, e, r, a) {
+ for (var n = this, i = 0; i < e.length; i++) {
+ var s = e[i];
+ s.isNode() && n.drawCachedElement(t, s, r, a);
+ }
+ }, hr.drawLayeredElements = function(t, e, r, a) {
+ var n = this, i = n.data.lyrTxrCache.getLayers(e, r);
+ if (i)
+ for (var s = 0; s < i.length; s++) {
+ var o = i[s], l = o.bb;
+ l.w === 0 || l.h === 0 || t.drawImage(o.canvas, l.x1, l.y1, l.w, l.h);
+ }
+ else
+ n.drawCachedElements(t, e, r, a);
+ };
+ var mr = {};
+ mr.drawEdge = function(t, e, r) {
+ var a = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, n = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0, s = this, o = e._private.rscratch;
+ if (!(i && !e.visible()) && !(o.badLine || o.allpts == null || isNaN(o.allpts[0]))) {
+ var l;
+ r && (l = r, t.translate(-l.x1, -l.y1));
+ var u = i ? e.pstyle("opacity").value : 1, f = i ? e.pstyle("line-opacity").value : 1, h = e.pstyle("curve-style").value, c = e.pstyle("line-style").value, v = e.pstyle("width").pfValue, d = e.pstyle("line-cap").value, g = u * f, y = u * f, p = function() {
+ var R = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : g;
+ h === "straight-triangle" ? (s.eleStrokeStyle(t, e, R), s.drawEdgeTrianglePath(e, t, o.allpts)) : (t.lineWidth = v, t.lineCap = d, s.eleStrokeStyle(t, e, R), s.drawEdgePath(e, t, o.allpts, c), t.lineCap = "butt");
+ }, m = function() {
+ n && s.drawEdgeOverlay(t, e);
+ }, b = function() {
+ n && s.drawEdgeUnderlay(t, e);
+ }, E = function() {
+ var R = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : y;
+ s.drawArrowheads(t, e, R);
+ }, M = function() {
+ s.drawElementText(t, e, null, a);
+ };
+ t.lineJoin = "round";
+ var A = e.pstyle("ghost").value === "yes";
+ if (A) {
+ var w = e.pstyle("ghost-offset-x").pfValue, I = e.pstyle("ghost-offset-y").pfValue, C = e.pstyle("ghost-opacity").value, B = g * C;
+ t.translate(w, I), p(B), E(B), t.translate(-w, -I);
+ }
+ b(), p(), E(), m(), M(), r && t.translate(l.x1, l.y1);
+ }
+ };
+ var Tu = function(e) {
+ if (!["overlay", "underlay"].includes(e))
+ throw new Error("Invalid state");
+ return function(r, a) {
+ if (a.visible()) {
+ var n = a.pstyle("".concat(e, "-opacity")).value;
+ if (n !== 0) {
+ var i = this, s = i.usePaths(), o = a._private.rscratch, l = a.pstyle("".concat(e, "-padding")).pfValue, u = 2 * l, f = a.pstyle("".concat(e, "-color")).value;
+ r.lineWidth = u, o.edgeType === "self" && !s ? r.lineCap = "butt" : r.lineCap = "round", i.colorStrokeStyle(r, f[0], f[1], f[2], n), i.drawEdgePath(a, r, o.allpts, "solid");
+ }
+ }
+ };
+ };
+ mr.drawEdgeOverlay = Tu("overlay"), mr.drawEdgeUnderlay = Tu("underlay"), mr.drawEdgePath = function(t, e, r, a) {
+ var n = t._private.rscratch, i = e, s, o = !1, l = this.usePaths(), u = t.pstyle("line-dash-pattern").pfValue, f = t.pstyle("line-dash-offset").pfValue;
+ if (l) {
+ var h = r.join("$"), c = n.pathCacheKey && n.pathCacheKey === h;
+ c ? (s = e = n.pathCache, o = !0) : (s = e = new Path2D(), n.pathCacheKey = h, n.pathCache = s);
+ }
+ if (i.setLineDash)
+ switch (a) {
+ case "dotted":
+ i.setLineDash([1, 1]);
+ break;
+ case "dashed":
+ i.setLineDash(u), i.lineDashOffset = f;
+ break;
+ case "solid":
+ i.setLineDash([]);
+ break;
+ }
+ if (!o && !n.badLine)
+ switch (e.beginPath && e.beginPath(), e.moveTo(r[0], r[1]), n.edgeType) {
+ case "bezier":
+ case "self":
+ case "compound":
+ case "multibezier":
+ for (var v = 2; v + 3 < r.length; v += 4)
+ e.quadraticCurveTo(r[v], r[v + 1], r[v + 2], r[v + 3]);
+ break;
+ case "straight":
+ case "segments":
+ case "haystack":
+ for (var d = 2; d + 1 < r.length; d += 2)
+ e.lineTo(r[d], r[d + 1]);
+ break;
+ }
+ e = i, l ? e.stroke(s) : e.stroke(), e.setLineDash && e.setLineDash([]);
+ }, mr.drawEdgeTrianglePath = function(t, e, r) {
+ e.fillStyle = e.strokeStyle;
+ for (var a = t.pstyle("width").pfValue, n = 0; n + 1 < r.length; n += 2) {
+ var i = [r[n + 2] - r[n], r[n + 3] - r[n + 1]], s = Math.sqrt(i[0] * i[0] + i[1] * i[1]), o = [i[1] / s, -i[0] / s], l = [o[0] * a / 2, o[1] * a / 2];
+ e.beginPath(), e.moveTo(r[n] - l[0], r[n + 1] - l[1]), e.lineTo(r[n] + l[0], r[n + 1] + l[1]), e.lineTo(r[n + 2], r[n + 3]), e.closePath(), e.fill();
+ }
+ }, mr.drawArrowheads = function(t, e, r) {
+ var a = e._private.rscratch, n = a.edgeType === "haystack";
+ n || this.drawArrowhead(t, e, "source", a.arrowStartX, a.arrowStartY, a.srcArrowAngle, r), this.drawArrowhead(t, e, "mid-target", a.midX, a.midY, a.midtgtArrowAngle, r), this.drawArrowhead(t, e, "mid-source", a.midX, a.midY, a.midsrcArrowAngle, r), n || this.drawArrowhead(t, e, "target", a.arrowEndX, a.arrowEndY, a.tgtArrowAngle, r);
+ }, mr.drawArrowhead = function(t, e, r, a, n, i, s) {
+ if (!(isNaN(a) || a == null || isNaN(n) || n == null || isNaN(i) || i == null)) {
+ var o = this, l = e.pstyle(r + "-arrow-shape").value;
+ if (l !== "none") {
+ var u = e.pstyle(r + "-arrow-fill").value === "hollow" ? "both" : "filled", f = e.pstyle(r + "-arrow-fill").value, h = e.pstyle("width").pfValue, c = e.pstyle("opacity").value;
+ s === void 0 && (s = c);
+ var v = t.globalCompositeOperation;
+ (s !== 1 || f === "hollow") && (t.globalCompositeOperation = "destination-out", o.colorFillStyle(t, 255, 255, 255, 1), o.colorStrokeStyle(t, 255, 255, 255, 1), o.drawArrowShape(e, t, u, h, l, a, n, i), t.globalCompositeOperation = v);
+ var d = e.pstyle(r + "-arrow-color").value;
+ o.colorFillStyle(t, d[0], d[1], d[2], s), o.colorStrokeStyle(t, d[0], d[1], d[2], s), o.drawArrowShape(e, t, f, h, l, a, n, i);
+ }
+ }
+ }, mr.drawArrowShape = function(t, e, r, a, n, i, s, o) {
+ var l = this, u = this.usePaths() && n !== "triangle-cross", f = !1, h, c = e, v = {
+ x: i,
+ y: s
+ }, d = t.pstyle("arrow-scale").value, g = this.getArrowWidth(a, d), y = l.arrowShapes[n];
+ if (u) {
+ var p = l.arrowPathCache = l.arrowPathCache || [], m = kr(n), b = p[m];
+ b != null ? (h = e = b, f = !0) : (h = e = new Path2D(), p[m] = h);
+ }
+ f || (e.beginPath && e.beginPath(), u ? y.draw(e, 1, 0, {
+ x: 0,
+ y: 0
+ }, 1) : y.draw(e, g, o, v, a), e.closePath && e.closePath()), e = c, u && (e.translate(i, s), e.rotate(o), e.scale(g, g)), (r === "filled" || r === "both") && (u ? e.fill(h) : e.fill()), (r === "hollow" || r === "both") && (e.lineWidth = (y.matchEdgeWidth ? a : 1) / (u ? g : 1), e.lineJoin = "miter", u ? e.stroke(h) : e.stroke()), u && (e.scale(1 / g, 1 / g), e.rotate(-o), e.translate(-i, -s));
+ };
+ var Ui = {};
+ Ui.safeDrawImage = function(t, e, r, a, n, i, s, o, l, u) {
+ if (!(n <= 0 || i <= 0 || l <= 0 || u <= 0))
+ try {
+ t.drawImage(e, r, a, n, i, s, o, l, u);
+ } catch (f) {
+ ft(f);
+ }
+ }, Ui.drawInscribedImage = function(t, e, r, a, n) {
+ var i = this, s = r.position(), o = s.x, l = s.y, u = r.cy().style(), f = u.getIndexedStyle.bind(u), h = f(r, "background-fit", "value", a), c = f(r, "background-repeat", "value", a), v = r.width(), d = r.height(), g = r.padding() * 2, y = v + (f(r, "background-width-relative-to", "value", a) === "inner" ? 0 : g), p = d + (f(r, "background-height-relative-to", "value", a) === "inner" ? 0 : g), m = r._private.rscratch, b = f(r, "background-clip", "value", a), E = b === "node", M = f(r, "background-image-opacity", "value", a) * n, A = f(r, "background-image-smoothing", "value", a), w = e.width || e.cachedW, I = e.height || e.cachedH;
+ (w == null || I == null) && (document.body.appendChild(e), w = e.cachedW = e.width || e.offsetWidth, I = e.cachedH = e.height || e.offsetHeight, document.body.removeChild(e));
+ var C = w, B = I;
+ if (f(r, "background-width", "value", a) !== "auto" && (f(r, "background-width", "units", a) === "%" ? C = f(r, "background-width", "pfValue", a) * y : C = f(r, "background-width", "pfValue", a)), f(r, "background-height", "value", a) !== "auto" && (f(r, "background-height", "units", a) === "%" ? B = f(r, "background-height", "pfValue", a) * p : B = f(r, "background-height", "pfValue", a)), !(C === 0 || B === 0)) {
+ if (h === "contain") {
+ var F = Math.min(y / C, p / B);
+ C *= F, B *= F;
+ } else if (h === "cover") {
+ var F = Math.max(y / C, p / B);
+ C *= F, B *= F;
+ }
+ var R = o - y / 2, X = f(r, "background-position-x", "units", a), z = f(r, "background-position-x", "pfValue", a);
+ X === "%" ? R += (y - C) * z : R += z;
+ var re = f(r, "background-offset-x", "units", a), W = f(r, "background-offset-x", "pfValue", a);
+ re === "%" ? R += (y - C) * W : R += W;
+ var Z = l - p / 2, ie = f(r, "background-position-y", "units", a), oe = f(r, "background-position-y", "pfValue", a);
+ ie === "%" ? Z += (p - B) * oe : Z += oe;
+ var ge = f(r, "background-offset-y", "units", a), se = f(r, "background-offset-y", "pfValue", a);
+ ge === "%" ? Z += (p - B) * se : Z += se, m.pathCache && (R -= o, Z -= l, o = 0, l = 0);
+ var de = t.globalAlpha;
+ t.globalAlpha = M;
+ var we = i.getImgSmoothing(t), Te = !1;
+ if (A === "no" && we ? (i.setImgSmoothing(t, !1), Te = !0) : A === "yes" && !we && (i.setImgSmoothing(t, !0), Te = !0), c === "no-repeat")
+ E && (t.save(), m.pathCache ? t.clip(m.pathCache) : (i.nodeShapes[i.getNodeShape(r)].draw(t, o, l, y, p), t.clip())), i.safeDrawImage(t, e, 0, 0, w, I, R, Z, C, B), E && t.restore();
+ else {
+ var Ee = t.createPattern(e, c);
+ t.fillStyle = Ee, i.nodeShapes[i.getNodeShape(r)].draw(t, o, l, y, p), t.translate(R, Z), t.fill(), t.translate(-R, -Z);
+ }
+ t.globalAlpha = de, Te && i.setImgSmoothing(t, we);
+ }
+ };
+ var _r = {};
+ _r.eleTextBiggerThanMin = function(t, e) {
+ if (!e) {
+ var r = t.cy().zoom(), a = this.getPixelRatio(), n = Math.ceil(li(r * a));
+ e = Math.pow(2, n);
+ }
+ var i = t.pstyle("font-size").pfValue * e, s = t.pstyle("min-zoomed-font-size").pfValue;
+ return !(i < s);
+ }, _r.drawElementText = function(t, e, r, a, n) {
+ var i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0, s = this;
+ if (a == null) {
+ if (i && !s.eleTextBiggerThanMin(e))
+ return;
+ } else if (a === !1)
+ return;
+ if (e.isNode()) {
+ var o = e.pstyle("label");
+ if (!o || !o.value)
+ return;
+ var l = s.getLabelJustification(e);
+ t.textAlign = l, t.textBaseline = "bottom";
+ } else {
+ var u = e.element()._private.rscratch.badLine, f = e.pstyle("label"), h = e.pstyle("source-label"), c = e.pstyle("target-label");
+ if (u || (!f || !f.value) && (!h || !h.value) && (!c || !c.value))
+ return;
+ t.textAlign = "center", t.textBaseline = "bottom";
+ }
+ var v = !r, d;
+ r && (d = r, t.translate(-d.x1, -d.y1)), n == null ? (s.drawText(t, e, null, v, i), e.isEdge() && (s.drawText(t, e, "source", v, i), s.drawText(t, e, "target", v, i))) : s.drawText(t, e, n, v, i), r && t.translate(d.x1, d.y1);
+ }, _r.getFontCache = function(t) {
+ var e;
+ this.fontCaches = this.fontCaches || [];
+ for (var r = 0; r < this.fontCaches.length; r++)
+ if (e = this.fontCaches[r], e.context === t)
+ return e;
+ return e = {
+ context: t
+ }, this.fontCaches.push(e), e;
+ }, _r.setupTextStyle = function(t, e) {
+ var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0, a = e.pstyle("font-style").strValue, n = e.pstyle("font-size").pfValue + "px", i = e.pstyle("font-family").strValue, s = e.pstyle("font-weight").strValue, o = r ? e.effectiveOpacity() * e.pstyle("text-opacity").value : 1, l = e.pstyle("text-outline-opacity").value * o, u = e.pstyle("color").value, f = e.pstyle("text-outline-color").value;
+ t.font = a + " " + s + " " + n + " " + i, t.lineJoin = "round", this.colorFillStyle(t, u[0], u[1], u[2], o), this.colorStrokeStyle(t, f[0], f[1], f[2], l);
+ };
+ function Jg(t, e, r, a, n) {
+ var i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 5;
+ t.beginPath(), t.moveTo(e + i, r), t.lineTo(e + a - i, r), t.quadraticCurveTo(e + a, r, e + a, r + i), t.lineTo(e + a, r + n - i), t.quadraticCurveTo(e + a, r + n, e + a - i, r + n), t.lineTo(e + i, r + n), t.quadraticCurveTo(e, r + n, e, r + n - i), t.lineTo(e, r + i), t.quadraticCurveTo(e, r, e + i, r), t.closePath(), t.fill();
+ }
+ _r.getTextAngle = function(t, e) {
+ var r, a = t._private, n = a.rscratch, i = e ? e + "-" : "", s = t.pstyle(i + "text-rotation"), o = er(n, "labelAngle", e);
+ return s.strValue === "autorotate" ? r = t.isEdge() ? o : 0 : s.strValue === "none" ? r = 0 : r = s.pfValue, r;
+ }, _r.drawText = function(t, e, r) {
+ var a = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, n = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, i = e._private, s = i.rscratch, o = n ? e.effectiveOpacity() : 1;
+ if (!(n && (o === 0 || e.pstyle("text-opacity").value === 0))) {
+ r === "main" && (r = null);
+ var l = er(s, "labelX", r), u = er(s, "labelY", r), f, h, c = this.getLabelText(e, r);
+ if (c != null && c !== "" && !isNaN(l) && !isNaN(u)) {
+ this.setupTextStyle(t, e, n);
+ var v = r ? r + "-" : "", d = er(s, "labelWidth", r), g = er(s, "labelHeight", r), y = e.pstyle(v + "text-margin-x").pfValue, p = e.pstyle(v + "text-margin-y").pfValue, m = e.isEdge(), b = e.pstyle("text-halign").value, E = e.pstyle("text-valign").value;
+ m && (b = "center", E = "center"), l += y, u += p;
+ var M;
+ switch (a ? M = this.getTextAngle(e, r) : M = 0, M !== 0 && (f = l, h = u, t.translate(f, h), t.rotate(M), l = 0, u = 0), E) {
+ case "top":
+ break;
+ case "center":
+ u += g / 2;
+ break;
+ case "bottom":
+ u += g;
+ break;
+ }
+ var A = e.pstyle("text-background-opacity").value, w = e.pstyle("text-border-opacity").value, I = e.pstyle("text-border-width").pfValue, C = e.pstyle("text-background-padding").pfValue;
+ if (A > 0 || I > 0 && w > 0) {
+ var B = l - C;
+ switch (b) {
+ case "left":
+ B -= d;
+ break;
+ case "center":
+ B -= d / 2;
+ break;
+ }
+ var F = u - g - C, R = d + 2 * C, X = g + 2 * C;
+ if (A > 0) {
+ var z = t.fillStyle, re = e.pstyle("text-background-color").value;
+ t.fillStyle = "rgba(" + re[0] + "," + re[1] + "," + re[2] + "," + A * o + ")";
+ var W = e.pstyle("text-background-shape").strValue;
+ W.indexOf("round") === 0 ? Jg(t, B, F, R, X, 2) : t.fillRect(B, F, R, X), t.fillStyle = z;
+ }
+ if (I > 0 && w > 0) {
+ var Z = t.strokeStyle, ie = t.lineWidth, oe = e.pstyle("text-border-color").value, ge = e.pstyle("text-border-style").value;
+ if (t.strokeStyle = "rgba(" + oe[0] + "," + oe[1] + "," + oe[2] + "," + w * o + ")", t.lineWidth = I, t.setLineDash)
+ switch (ge) {
+ case "dotted":
+ t.setLineDash([1, 1]);
+ break;
+ case "dashed":
+ t.setLineDash([4, 2]);
+ break;
+ case "double":
+ t.lineWidth = I / 4, t.setLineDash([]);
+ break;
+ case "solid":
+ t.setLineDash([]);
+ break;
+ }
+ if (t.strokeRect(B, F, R, X), ge === "double") {
+ var se = I / 2;
+ t.strokeRect(B + se, F + se, R - se * 2, X - se * 2);
+ }
+ t.setLineDash && t.setLineDash([]), t.lineWidth = ie, t.strokeStyle = Z;
+ }
+ }
+ var de = 2 * e.pstyle("text-outline-width").pfValue;
+ if (de > 0 && (t.lineWidth = de), e.pstyle("text-wrap").value === "wrap") {
+ var we = er(s, "labelWrapCachedLines", r), Te = er(s, "labelLineHeight", r), Ee = d / 2, ye = this.getLabelJustification(e);
+ switch (ye === "auto" || (b === "left" ? ye === "left" ? l += -d : ye === "center" && (l += -Ee) : b === "center" ? ye === "left" ? l += -Ee : ye === "right" && (l += Ee) : b === "right" && (ye === "center" ? l += Ee : ye === "right" && (l += d))), E) {
+ case "top":
+ u -= (we.length - 1) * Te;
+ break;
+ case "center":
+ case "bottom":
+ u -= (we.length - 1) * Te;
+ break;
+ }
+ for (var ae = 0; ae < we.length; ae++)
+ de > 0 && t.strokeText(we[ae], l, u), t.fillText(we[ae], l, u), u += Te;
+ } else
+ de > 0 && t.strokeText(c, l, u), t.fillText(c, l, u);
+ M !== 0 && (t.rotate(-M), t.translate(-f, -h));
+ }
+ }
+ };
+ var Ea = {};
+ Ea.drawNode = function(t, e, r) {
+ var a = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, n = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0, s = this, o, l, u = e._private, f = u.rscratch, h = e.position();
+ if (!(!k(h.x) || !k(h.y)) && !(i && !e.visible())) {
+ var c = i ? e.effectiveOpacity() : 1, v = s.usePaths(), d, g = !1, y = e.padding();
+ o = e.width() + 2 * y, l = e.height() + 2 * y;
+ var p;
+ r && (p = r, t.translate(-p.x1, -p.y1));
+ for (var m = e.pstyle("background-image"), b = m.value, E = new Array(b.length), M = new Array(b.length), A = 0, w = 0; w < b.length; w++) {
+ var I = b[w], C = E[w] = I != null && I !== "none";
+ if (C) {
+ var B = e.cy().style().getIndexedStyle(e, "background-image-crossorigin", "value", w);
+ A++, M[w] = s.getCachedImage(I, B, function() {
+ u.backgroundTimestamp = Date.now(), e.emitAndNotify("background");
+ });
+ }
+ }
+ var F = e.pstyle("background-blacken").value, R = e.pstyle("border-width").pfValue, X = e.pstyle("background-opacity").value * c, z = e.pstyle("border-color").value, re = e.pstyle("border-style").value, W = e.pstyle("border-opacity").value * c;
+ t.lineJoin = "miter";
+ var Z = function() {
+ var ke = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : X;
+ s.eleFillStyle(t, e, ke);
+ }, ie = function() {
+ var ke = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : W;
+ s.colorStrokeStyle(t, z[0], z[1], z[2], ke);
+ }, oe = e.pstyle("shape").strValue, ge = e.pstyle("shape-polygon-points").pfValue;
+ if (v) {
+ t.translate(h.x, h.y);
+ var se = s.nodePathCache = s.nodePathCache || [], de = hs(oe === "polygon" ? oe + "," + ge.join(",") : oe, "" + l, "" + o), we = se[de];
+ we != null ? (d = we, g = !0, f.pathCache = d) : (d = new Path2D(), se[de] = f.pathCache = d);
+ }
+ var Te = function() {
+ if (!g) {
+ var ke = h;
+ v && (ke = {
+ x: 0,
+ y: 0
+ }), s.nodeShapes[s.getNodeShape(e)].draw(d || t, ke.x, ke.y, o, l);
+ }
+ v ? t.fill(d) : t.fill();
+ }, Ee = function() {
+ for (var ke = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : c, Ge = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, et = u.backgrounding, We = 0, Ye = 0; Ye < M.length; Ye++) {
+ var Se = e.cy().style().getIndexedStyle(e, "background-image-containment", "value", Ye);
+ if (Ge && Se === "over" || !Ge && Se === "inside") {
+ We++;
+ continue;
+ }
+ E[Ye] && M[Ye].complete && !M[Ye].error && (We++, s.drawInscribedImage(t, M[Ye], e, Ye, ke));
+ }
+ u.backgrounding = We !== A, et !== u.backgrounding && e.updateStyle(!1);
+ }, ye = function() {
+ var ke = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, Ge = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : c;
+ s.hasPie(e) && (s.drawPie(t, e, Ge), ke && (v || s.nodeShapes[s.getNodeShape(e)].draw(t, h.x, h.y, o, l)));
+ }, ae = function() {
+ var ke = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : c, Ge = (F > 0 ? F : -F) * ke, et = F > 0 ? 0 : 255;
+ F !== 0 && (s.colorFillStyle(t, et, et, et, Ge), v ? t.fill(d) : t.fill());
+ }, xe = function() {
+ if (R > 0) {
+ if (t.lineWidth = R, t.lineCap = "butt", t.setLineDash)
+ switch (re) {
+ case "dotted":
+ t.setLineDash([1, 1]);
+ break;
+ case "dashed":
+ t.setLineDash([4, 2]);
+ break;
+ case "solid":
+ case "double":
+ t.setLineDash([]);
+ break;
+ }
+ if (v ? t.stroke(d) : t.stroke(), re === "double") {
+ t.lineWidth = R / 3;
+ var ke = t.globalCompositeOperation;
+ t.globalCompositeOperation = "destination-out", v ? t.stroke(d) : t.stroke(), t.globalCompositeOperation = ke;
+ }
+ t.setLineDash && t.setLineDash([]);
+ }
+ }, Ce = function() {
+ n && s.drawNodeOverlay(t, e, h, o, l);
+ }, Oe = function() {
+ n && s.drawNodeUnderlay(t, e, h, o, l);
+ }, Ie = function() {
+ s.drawElementText(t, e, null, a);
+ }, He = e.pstyle("ghost").value === "yes";
+ if (He) {
+ var qe = e.pstyle("ghost-offset-x").pfValue, Re = e.pstyle("ghost-offset-y").pfValue, Me = e.pstyle("ghost-opacity").value, Ve = Me * c;
+ t.translate(qe, Re), Z(Me * X), Te(), Ee(Ve, !0), ie(Me * W), xe(), ye(F !== 0 || R !== 0), Ee(Ve, !1), ae(Ve), t.translate(-qe, -Re);
+ }
+ v && t.translate(-h.x, -h.y), Oe(), v && t.translate(h.x, h.y), Z(), Te(), Ee(c, !0), ie(), xe(), ye(F !== 0 || R !== 0), Ee(c, !1), ae(), v && t.translate(-h.x, -h.y), Ie(), Ce(), r && t.translate(p.x1, p.y1);
+ }
+ };
+ var Cu = function(e) {
+ if (!["overlay", "underlay"].includes(e))
+ throw new Error("Invalid state");
+ return function(r, a, n, i, s) {
+ var o = this;
+ if (a.visible()) {
+ var l = a.pstyle("".concat(e, "-padding")).pfValue, u = a.pstyle("".concat(e, "-opacity")).value, f = a.pstyle("".concat(e, "-color")).value, h = a.pstyle("".concat(e, "-shape")).value;
+ if (u > 0) {
+ if (n = n || a.position(), i == null || s == null) {
+ var c = a.padding();
+ i = a.width() + 2 * c, s = a.height() + 2 * c;
+ }
+ o.colorFillStyle(r, f[0], f[1], f[2], u), o.nodeShapes[h].draw(r, n.x, n.y, i + l * 2, s + l * 2), r.fill();
+ }
+ }
+ };
+ };
+ Ea.drawNodeOverlay = Cu("overlay"), Ea.drawNodeUnderlay = Cu("underlay"), Ea.hasPie = function(t) {
+ return t = t[0], t._private.hasPie;
+ }, Ea.drawPie = function(t, e, r, a) {
+ e = e[0], a = a || e.position();
+ var n = e.cy().style(), i = e.pstyle("pie-size"), s = a.x, o = a.y, l = e.width(), u = e.height(), f = Math.min(l, u) / 2, h = 0, c = this.usePaths();
+ c && (s = 0, o = 0), i.units === "%" ? f = f * i.pfValue : i.pfValue !== void 0 && (f = i.pfValue / 2);
+ for (var v = 1; v <= n.pieBackgroundN; v++) {
+ var d = e.pstyle("pie-" + v + "-background-size").value, g = e.pstyle("pie-" + v + "-background-color").value, y = e.pstyle("pie-" + v + "-background-opacity").value * r, p = d / 100;
+ p + h > 1 && (p = 1 - h);
+ var m = 1.5 * Math.PI + 2 * Math.PI * h, b = 2 * Math.PI * p, E = m + b;
+ d === 0 || h >= 1 || h + p > 1 || (t.beginPath(), t.moveTo(s, o), t.arc(s, o, f, m, E), t.closePath(), this.colorFillStyle(t, g[0], g[1], g[2], y), t.fill(), h += p);
+ }
+ };
+ var Wt = {}, jg = 100;
+ Wt.getPixelRatio = function() {
+ var t = this.data.contexts[0];
+ if (this.forcedPixelRatio != null)
+ return this.forcedPixelRatio;
+ var e = t.backingStorePixelRatio || t.webkitBackingStorePixelRatio || t.mozBackingStorePixelRatio || t.msBackingStorePixelRatio || t.oBackingStorePixelRatio || t.backingStorePixelRatio || 1;
+ return (window.devicePixelRatio || 1) / e;
+ }, Wt.paintCache = function(t) {
+ for (var e = this.paintCaches = this.paintCaches || [], r = !0, a, n = 0; n < e.length; n++)
+ if (a = e[n], a.context === t) {
+ r = !1;
+ break;
+ }
+ return r && (a = {
+ context: t
+ }, e.push(a)), a;
+ }, Wt.createGradientStyleFor = function(t, e, r, a, n) {
+ var i, s = this.usePaths(), o = r.pstyle(e + "-gradient-stop-colors").value, l = r.pstyle(e + "-gradient-stop-positions").pfValue;
+ if (a === "radial-gradient")
+ if (r.isEdge()) {
+ var u = r.sourceEndpoint(), f = r.targetEndpoint(), h = r.midpoint(), c = Pr(u, h), v = Pr(f, h);
+ i = t.createRadialGradient(h.x, h.y, 0, h.x, h.y, Math.max(c, v));
+ } else {
+ var d = s ? {
+ x: 0,
+ y: 0
+ } : r.position(), g = r.paddedWidth(), y = r.paddedHeight();
+ i = t.createRadialGradient(d.x, d.y, 0, d.x, d.y, Math.max(g, y));
+ }
+ else if (r.isEdge()) {
+ var p = r.sourceEndpoint(), m = r.targetEndpoint();
+ i = t.createLinearGradient(p.x, p.y, m.x, m.y);
+ } else {
+ var b = s ? {
+ x: 0,
+ y: 0
+ } : r.position(), E = r.paddedWidth(), M = r.paddedHeight(), A = E / 2, w = M / 2, I = r.pstyle("background-gradient-direction").value;
+ switch (I) {
+ case "to-bottom":
+ i = t.createLinearGradient(b.x, b.y - w, b.x, b.y + w);
+ break;
+ case "to-top":
+ i = t.createLinearGradient(b.x, b.y + w, b.x, b.y - w);
+ break;
+ case "to-left":
+ i = t.createLinearGradient(b.x + A, b.y, b.x - A, b.y);
+ break;
+ case "to-right":
+ i = t.createLinearGradient(b.x - A, b.y, b.x + A, b.y);
+ break;
+ case "to-bottom-right":
+ case "to-right-bottom":
+ i = t.createLinearGradient(b.x - A, b.y - w, b.x + A, b.y + w);
+ break;
+ case "to-top-right":
+ case "to-right-top":
+ i = t.createLinearGradient(b.x - A, b.y + w, b.x + A, b.y - w);
+ break;
+ case "to-bottom-left":
+ case "to-left-bottom":
+ i = t.createLinearGradient(b.x + A, b.y - w, b.x - A, b.y + w);
+ break;
+ case "to-top-left":
+ case "to-left-top":
+ i = t.createLinearGradient(b.x + A, b.y + w, b.x - A, b.y - w);
+ break;
+ }
+ }
+ if (!i)
+ return null;
+ for (var C = l.length === o.length, B = o.length, F = 0; F < B; F++)
+ i.addColorStop(C ? l[F] : F / (B - 1), "rgba(" + o[F][0] + "," + o[F][1] + "," + o[F][2] + "," + n + ")");
+ return i;
+ }, Wt.gradientFillStyle = function(t, e, r, a) {
+ var n = this.createGradientStyleFor(t, "background", e, r, a);
+ if (!n)
+ return null;
+ t.fillStyle = n;
+ }, Wt.colorFillStyle = function(t, e, r, a, n) {
+ t.fillStyle = "rgba(" + e + "," + r + "," + a + "," + n + ")";
+ }, Wt.eleFillStyle = function(t, e, r) {
+ var a = e.pstyle("background-fill").value;
+ if (a === "linear-gradient" || a === "radial-gradient")
+ this.gradientFillStyle(t, e, a, r);
+ else {
+ var n = e.pstyle("background-color").value;
+ this.colorFillStyle(t, n[0], n[1], n[2], r);
+ }
+ }, Wt.gradientStrokeStyle = function(t, e, r, a) {
+ var n = this.createGradientStyleFor(t, "line", e, r, a);
+ if (!n)
+ return null;
+ t.strokeStyle = n;
+ }, Wt.colorStrokeStyle = function(t, e, r, a, n) {
+ t.strokeStyle = "rgba(" + e + "," + r + "," + a + "," + n + ")";
+ }, Wt.eleStrokeStyle = function(t, e, r) {
+ var a = e.pstyle("line-fill").value;
+ if (a === "linear-gradient" || a === "radial-gradient")
+ this.gradientStrokeStyle(t, e, a, r);
+ else {
+ var n = e.pstyle("line-color").value;
+ this.colorStrokeStyle(t, n[0], n[1], n[2], r);
+ }
+ }, Wt.matchCanvasSize = function(t) {
+ var e = this, r = e.data, a = e.findContainerClientCoords(), n = a[2], i = a[3], s = e.getPixelRatio(), o = e.motionBlurPxRatio;
+ (t === e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE] || t === e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG]) && (s = o);
+ var l = n * s, u = i * s, f;
+ if (!(l === e.canvasWidth && u === e.canvasHeight)) {
+ e.fontCaches = null;
+ var h = r.canvasContainer;
+ h.style.width = n + "px", h.style.height = i + "px";
+ for (var c = 0; c < e.CANVAS_LAYERS; c++)
+ f = r.canvases[c], f.width = l, f.height = u, f.style.width = n + "px", f.style.height = i + "px";
+ for (var c = 0; c < e.BUFFER_COUNT; c++)
+ f = r.bufferCanvases[c], f.width = l, f.height = u, f.style.width = n + "px", f.style.height = i + "px";
+ e.textureMult = 1, s <= 1 && (f = r.bufferCanvases[e.TEXTURE_BUFFER], e.textureMult = 2, f.width = l * e.textureMult, f.height = u * e.textureMult), e.canvasWidth = l, e.canvasHeight = u;
+ }
+ }, Wt.renderTo = function(t, e, r, a) {
+ this.render({
+ forcedContext: t,
+ forcedZoom: e,
+ forcedPan: r,
+ drawAllLayers: !0,
+ forcedPxRatio: a
+ });
+ }, Wt.render = function(t) {
+ t = t || ys();
+ var e = t.forcedContext, r = t.drawAllLayers, a = t.drawOnlyNodeLayer, n = t.forcedZoom, i = t.forcedPan, s = this, o = t.forcedPxRatio === void 0 ? this.getPixelRatio() : t.forcedPxRatio, l = s.cy, u = s.data, f = u.canvasNeedsRedraw, h = s.textureOnViewport && !e && (s.pinching || s.hoverData.dragging || s.swipePanning || s.data.wheelZooming), c = t.motionBlur !== void 0 ? t.motionBlur : s.motionBlur, v = s.motionBlurPxRatio, d = l.hasCompoundNodes(), g = s.hoverData.draggingEles, y = !!(s.hoverData.selecting || s.touchData.selecting);
+ c = c && !e && s.motionBlurEnabled && !y;
+ var p = c;
+ e || (s.prevPxRatio !== o && (s.invalidateContainerClientCoordsCache(), s.matchCanvasSize(s.container), s.redrawHint("eles", !0), s.redrawHint("drag", !0)), s.prevPxRatio = o), !e && s.motionBlurTimeout && clearTimeout(s.motionBlurTimeout), c && (s.mbFrames == null && (s.mbFrames = 0), s.mbFrames++, s.mbFrames < 3 && (p = !1), s.mbFrames > s.minMbLowQualFrames && (s.motionBlurPxRatio = s.mbPxRBlurry)), s.clearingMotionBlur && (s.motionBlurPxRatio = 1), s.textureDrawLastFrame && !h && (f[s.NODE] = !0, f[s.SELECT_BOX] = !0);
+ var m = l.style(), b = l.zoom(), E = n !== void 0 ? n : b, M = l.pan(), A = {
+ x: M.x,
+ y: M.y
+ }, w = {
+ zoom: b,
+ pan: {
+ x: M.x,
+ y: M.y
+ }
+ }, I = s.prevViewport, C = I === void 0 || w.zoom !== I.zoom || w.pan.x !== I.pan.x || w.pan.y !== I.pan.y;
+ !C && !(g && !d) && (s.motionBlurPxRatio = 1), i && (A = i), E *= o, A.x *= o, A.y *= o;
+ var B = s.getCachedZSortedEles();
+ function F(Re, Me, Ve, Fe, ke) {
+ var Ge = Re.globalCompositeOperation;
+ Re.globalCompositeOperation = "destination-out", s.colorFillStyle(Re, 255, 255, 255, s.motionBlurTransparency), Re.fillRect(Me, Ve, Fe, ke), Re.globalCompositeOperation = Ge;
+ }
+ function R(Re, Me) {
+ var Ve, Fe, ke, Ge;
+ !s.clearingMotionBlur && (Re === u.bufferContexts[s.MOTIONBLUR_BUFFER_NODE] || Re === u.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]) ? (Ve = {
+ x: M.x * v,
+ y: M.y * v
+ }, Fe = b * v, ke = s.canvasWidth * v, Ge = s.canvasHeight * v) : (Ve = A, Fe = E, ke = s.canvasWidth, Ge = s.canvasHeight), Re.setTransform(1, 0, 0, 1, 0, 0), Me === "motionBlur" ? F(Re, 0, 0, ke, Ge) : !e && (Me === void 0 || Me) && Re.clearRect(0, 0, ke, Ge), r || (Re.translate(Ve.x, Ve.y), Re.scale(Fe, Fe)), i && Re.translate(i.x, i.y), n && Re.scale(n, n);
+ }
+ if (h || (s.textureDrawLastFrame = !1), h) {
+ if (s.textureDrawLastFrame = !0, !s.textureCache) {
+ s.textureCache = {}, s.textureCache.bb = l.mutableElements().boundingBox(), s.textureCache.texture = s.data.bufferCanvases[s.TEXTURE_BUFFER];
+ var X = s.data.bufferContexts[s.TEXTURE_BUFFER];
+ X.setTransform(1, 0, 0, 1, 0, 0), X.clearRect(0, 0, s.canvasWidth * s.textureMult, s.canvasHeight * s.textureMult), s.render({
+ forcedContext: X,
+ drawOnlyNodeLayer: !0,
+ forcedPxRatio: o * s.textureMult
+ });
+ var w = s.textureCache.viewport = {
+ zoom: l.zoom(),
+ pan: l.pan(),
+ width: s.canvasWidth,
+ height: s.canvasHeight
+ };
+ w.mpan = {
+ x: (0 - w.pan.x) / w.zoom,
+ y: (0 - w.pan.y) / w.zoom
+ };
+ }
+ f[s.DRAG] = !1, f[s.NODE] = !1;
+ var z = u.contexts[s.NODE], re = s.textureCache.texture, w = s.textureCache.viewport;
+ z.setTransform(1, 0, 0, 1, 0, 0), c ? F(z, 0, 0, w.width, w.height) : z.clearRect(0, 0, w.width, w.height);
+ var W = m.core("outside-texture-bg-color").value, Z = m.core("outside-texture-bg-opacity").value;
+ s.colorFillStyle(z, W[0], W[1], W[2], Z), z.fillRect(0, 0, w.width, w.height);
+ var b = l.zoom();
+ R(z, !1), z.clearRect(w.mpan.x, w.mpan.y, w.width / w.zoom / o, w.height / w.zoom / o), z.drawImage(re, w.mpan.x, w.mpan.y, w.width / w.zoom / o, w.height / w.zoom / o);
+ } else
+ s.textureOnViewport && !e && (s.textureCache = null);
+ var ie = l.extent(), oe = s.pinching || s.hoverData.dragging || s.swipePanning || s.data.wheelZooming || s.hoverData.draggingEles || s.cy.animated(), ge = s.hideEdgesOnViewport && oe, se = [];
+ if (se[s.NODE] = !f[s.NODE] && c && !s.clearedForMotionBlur[s.NODE] || s.clearingMotionBlur, se[s.NODE] && (s.clearedForMotionBlur[s.NODE] = !0), se[s.DRAG] = !f[s.DRAG] && c && !s.clearedForMotionBlur[s.DRAG] || s.clearingMotionBlur, se[s.DRAG] && (s.clearedForMotionBlur[s.DRAG] = !0), f[s.NODE] || r || a || se[s.NODE]) {
+ var de = c && !se[s.NODE] && v !== 1, z = e || (de ? s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE] : u.contexts[s.NODE]), we = c && !de ? "motionBlur" : void 0;
+ R(z, we), ge ? s.drawCachedNodes(z, B.nondrag, o, ie) : s.drawLayeredElements(z, B.nondrag, o, ie), s.debug && s.drawDebugPoints(z, B.nondrag), !r && !c && (f[s.NODE] = !1);
+ }
+ if (!a && (f[s.DRAG] || r || se[s.DRAG])) {
+ var de = c && !se[s.DRAG] && v !== 1, z = e || (de ? s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG] : u.contexts[s.DRAG]);
+ R(z, c && !de ? "motionBlur" : void 0), ge ? s.drawCachedNodes(z, B.drag, o, ie) : s.drawCachedElements(z, B.drag, o, ie), s.debug && s.drawDebugPoints(z, B.drag), !r && !c && (f[s.DRAG] = !1);
+ }
+ if (s.showFps || !a && f[s.SELECT_BOX] && !r) {
+ var z = e || u.contexts[s.SELECT_BOX];
+ if (R(z), s.selection[4] == 1 && (s.hoverData.selecting || s.touchData.selecting)) {
+ var b = s.cy.zoom(), Te = m.core("selection-box-border-width").value / b;
+ z.lineWidth = Te, z.fillStyle = "rgba(" + m.core("selection-box-color").value[0] + "," + m.core("selection-box-color").value[1] + "," + m.core("selection-box-color").value[2] + "," + m.core("selection-box-opacity").value + ")", z.fillRect(s.selection[0], s.selection[1], s.selection[2] - s.selection[0], s.selection[3] - s.selection[1]), Te > 0 && (z.strokeStyle = "rgba(" + m.core("selection-box-border-color").value[0] + "," + m.core("selection-box-border-color").value[1] + "," + m.core("selection-box-border-color").value[2] + "," + m.core("selection-box-opacity").value + ")", z.strokeRect(s.selection[0], s.selection[1], s.selection[2] - s.selection[0], s.selection[3] - s.selection[1]));
+ }
+ if (u.bgActivePosistion && !s.hoverData.selecting) {
+ var b = s.cy.zoom(), Ee = u.bgActivePosistion;
+ z.fillStyle = "rgba(" + m.core("active-bg-color").value[0] + "," + m.core("active-bg-color").value[1] + "," + m.core("active-bg-color").value[2] + "," + m.core("active-bg-opacity").value + ")", z.beginPath(), z.arc(Ee.x, Ee.y, m.core("active-bg-size").pfValue / b, 0, 2 * Math.PI), z.fill();
+ }
+ var ye = s.lastRedrawTime;
+ if (s.showFps && ye) {
+ ye = Math.round(ye);
+ var ae = Math.round(1e3 / ye);
+ z.setTransform(1, 0, 0, 1, 0, 0), z.fillStyle = "rgba(255, 0, 0, 0.75)", z.strokeStyle = "rgba(255, 0, 0, 0.75)", z.lineWidth = 1, z.fillText("1 frame = " + ye + " ms = " + ae + " fps", 0, 20);
+ var xe = 60;
+ z.strokeRect(0, 30, 250, 20), z.fillRect(0, 30, 250 * Math.min(ae / xe, 1), 20);
+ }
+ r || (f[s.SELECT_BOX] = !1);
+ }
+ if (c && v !== 1) {
+ var Ce = u.contexts[s.NODE], Oe = s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE], Ie = u.contexts[s.DRAG], He = s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG], qe = function(Me, Ve, Fe) {
+ Me.setTransform(1, 0, 0, 1, 0, 0), Fe || !p ? Me.clearRect(0, 0, s.canvasWidth, s.canvasHeight) : F(Me, 0, 0, s.canvasWidth, s.canvasHeight);
+ var ke = v;
+ Me.drawImage(
+ Ve,
+ // img
+ 0,
+ 0,
+ // sx, sy
+ s.canvasWidth * ke,
+ s.canvasHeight * ke,
+ // sw, sh
+ 0,
+ 0,
+ // x, y
+ s.canvasWidth,
+ s.canvasHeight
+ // w, h
+ );
+ };
+ (f[s.NODE] || se[s.NODE]) && (qe(Ce, Oe, se[s.NODE]), f[s.NODE] = !1), (f[s.DRAG] || se[s.DRAG]) && (qe(Ie, He, se[s.DRAG]), f[s.DRAG] = !1);
+ }
+ s.prevViewport = w, s.clearingMotionBlur && (s.clearingMotionBlur = !1, s.motionBlurCleared = !0, s.motionBlur = !0), c && (s.motionBlurTimeout = setTimeout(function() {
+ s.motionBlurTimeout = null, s.clearedForMotionBlur[s.NODE] = !1, s.clearedForMotionBlur[s.DRAG] = !1, s.motionBlur = !1, s.clearingMotionBlur = !h, s.mbFrames = 0, f[s.NODE] = !0, f[s.DRAG] = !0, s.redraw();
+ }, jg)), e || l.emit("render");
+ };
+ var Mr = {};
+ Mr.drawPolygonPath = function(t, e, r, a, n, i) {
+ var s = a / 2, o = n / 2;
+ t.beginPath && t.beginPath(), t.moveTo(e + s * i[0], r + o * i[1]);
+ for (var l = 1; l < i.length / 2; l++)
+ t.lineTo(e + s * i[l * 2], r + o * i[l * 2 + 1]);
+ t.closePath();
+ }, Mr.drawRoundPolygonPath = function(t, e, r, a, n, i) {
+ var s = a / 2, o = n / 2, l = di(a, n);
+ t.beginPath && t.beginPath();
+ for (var u = 0; u < i.length / 4; u++) {
+ var f = void 0, h = void 0;
+ u === 0 ? f = i.length - 2 : f = u * 4 - 2, h = u * 4 + 2;
+ var c = e + s * i[u * 4], v = r + o * i[u * 4 + 1], d = -i[f] * i[h] - i[f + 1] * i[h + 1], g = l / Math.tan(Math.acos(d) / 2), y = c - g * i[f], p = v - g * i[f + 1], m = c + g * i[h], b = v + g * i[h + 1];
+ u === 0 ? t.moveTo(y, p) : t.lineTo(y, p), t.arcTo(c, v, m, b, l);
+ }
+ t.closePath();
+ }, Mr.drawRoundRectanglePath = function(t, e, r, a, n) {
+ var i = a / 2, s = n / 2, o = Fa(a, n);
+ t.beginPath && t.beginPath(), t.moveTo(e, r - s), t.arcTo(e + i, r - s, e + i, r, o), t.arcTo(e + i, r + s, e, r + s, o), t.arcTo(e - i, r + s, e - i, r, o), t.arcTo(e - i, r - s, e, r - s, o), t.lineTo(e, r - s), t.closePath();
+ }, Mr.drawBottomRoundRectanglePath = function(t, e, r, a, n) {
+ var i = a / 2, s = n / 2, o = Fa(a, n);
+ t.beginPath && t.beginPath(), t.moveTo(e, r - s), t.lineTo(e + i, r - s), t.lineTo(e + i, r), t.arcTo(e + i, r + s, e, r + s, o), t.arcTo(e - i, r + s, e - i, r, o), t.lineTo(e - i, r - s), t.lineTo(e, r - s), t.closePath();
+ }, Mr.drawCutRectanglePath = function(t, e, r, a, n) {
+ var i = a / 2, s = n / 2, o = Ls();
+ t.beginPath && t.beginPath(), t.moveTo(e - i + o, r - s), t.lineTo(e + i - o, r - s), t.lineTo(e + i, r - s + o), t.lineTo(e + i, r + s - o), t.lineTo(e + i - o, r + s), t.lineTo(e - i + o, r + s), t.lineTo(e - i, r + s - o), t.lineTo(e - i, r - s + o), t.closePath();
+ }, Mr.drawBarrelPath = function(t, e, r, a, n) {
+ var i = a / 2, s = n / 2, o = e - i, l = e + i, u = r - s, f = r + s, h = gi(a, n), c = h.widthOffset, v = h.heightOffset, d = h.ctrlPtOffsetPct * c;
+ t.beginPath && t.beginPath(), t.moveTo(o, u + v), t.lineTo(o, f - v), t.quadraticCurveTo(o + d, f, o + c, f), t.lineTo(l - c, f), t.quadraticCurveTo(l - d, f, l, f - v), t.lineTo(l, u + v), t.quadraticCurveTo(l - d, u, l - c, u), t.lineTo(o + c, u), t.quadraticCurveTo(o + d, u, o, u + v), t.closePath();
+ };
+ for (var Du = Math.sin(0), Su = Math.cos(0), Yi = {}, Hi = {}, Lu = Math.PI / 40, wa = 0 * Math.PI; wa < 2 * Math.PI; wa += Lu)
+ Yi[wa] = Math.sin(wa), Hi[wa] = Math.cos(wa);
+ Mr.drawEllipsePath = function(t, e, r, a, n) {
+ if (t.beginPath && t.beginPath(), t.ellipse)
+ t.ellipse(e, r, a / 2, n / 2, 0, 0, 2 * Math.PI);
+ else
+ for (var i, s, o = a / 2, l = n / 2, u = 0 * Math.PI; u < 2 * Math.PI; u += Lu)
+ i = e - o * Yi[u] * Du + o * Hi[u] * Su, s = r + l * Hi[u] * Du + l * Yi[u] * Su, u === 0 ? t.moveTo(i, s) : t.lineTo(i, s);
+ t.closePath();
+ };
+ var tn = {};
+ tn.createBuffer = function(t, e) {
+ var r = document.createElement("canvas");
+ return r.width = t, r.height = e, [r, r.getContext("2d")];
+ }, tn.bufferCanvasImage = function(t) {
+ var e = this.cy, r = e.mutableElements(), a = r.boundingBox(), n = this.findContainerClientCoords(), i = t.full ? Math.ceil(a.w) : n[2], s = t.full ? Math.ceil(a.h) : n[3], o = k(t.maxWidth) || k(t.maxHeight), l = this.getPixelRatio(), u = 1;
+ if (t.scale !== void 0)
+ i *= t.scale, s *= t.scale, u = t.scale;
+ else if (o) {
+ var f = 1 / 0, h = 1 / 0;
+ k(t.maxWidth) && (f = u * t.maxWidth / i), k(t.maxHeight) && (h = u * t.maxHeight / s), u = Math.min(f, h), i *= u, s *= u;
+ }
+ o || (i *= l, s *= l, u *= l);
+ var c = document.createElement("canvas");
+ c.width = i, c.height = s, c.style.width = i + "px", c.style.height = s + "px";
+ var v = c.getContext("2d");
+ if (i > 0 && s > 0) {
+ v.clearRect(0, 0, i, s), v.globalCompositeOperation = "source-over";
+ var d = this.getCachedZSortedEles();
+ if (t.full)
+ v.translate(-a.x1 * u, -a.y1 * u), v.scale(u, u), this.drawElements(v, d), v.scale(1 / u, 1 / u), v.translate(a.x1 * u, a.y1 * u);
+ else {
+ var g = e.pan(), y = {
+ x: g.x * u,
+ y: g.y * u
+ };
+ u *= e.zoom(), v.translate(y.x, y.y), v.scale(u, u), this.drawElements(v, d), v.scale(1 / u, 1 / u), v.translate(-y.x, -y.y);
+ }
+ t.bg && (v.globalCompositeOperation = "destination-over", v.fillStyle = t.bg, v.rect(0, 0, i, s), v.fill());
+ }
+ return c;
+ };
+ function ep(t, e) {
+ for (var r = atob(t), a = new ArrayBuffer(r.length), n = new Uint8Array(a), i = 0; i < r.length; i++)
+ n[i] = r.charCodeAt(i);
+ return new Blob([a], {
+ type: e
+ });
+ }
+ function Au(t) {
+ var e = t.indexOf(",");
+ return t.substr(e + 1);
+ }
+ function Ou(t, e, r) {
+ var a = function() {
+ return e.toDataURL(r, t.quality);
+ };
+ switch (t.output) {
+ case "blob-promise":
+ return new ia(function(n, i) {
+ try {
+ e.toBlob(function(s) {
+ s != null ? n(s) : i(new Error("`canvas.toBlob()` sent a null value in its callback"));
+ }, r, t.quality);
+ } catch (s) {
+ i(s);
+ }
+ });
+ case "blob":
+ return ep(Au(a()), r);
+ case "base64":
+ return Au(a());
+ case "base64uri":
+ default:
+ return a();
+ }
+ }
+ tn.png = function(t) {
+ return Ou(t, this.bufferCanvasImage(t), "image/png");
+ }, tn.jpg = function(t) {
+ return Ou(t, this.bufferCanvasImage(t), "image/jpeg");
+ };
+ var Nu = {};
+ Nu.nodeShapeImpl = function(t, e, r, a, n, i, s) {
+ switch (t) {
+ case "ellipse":
+ return this.drawEllipsePath(e, r, a, n, i);
+ case "polygon":
+ return this.drawPolygonPath(e, r, a, n, i, s);
+ case "round-polygon":
+ return this.drawRoundPolygonPath(e, r, a, n, i, s);
+ case "roundrectangle":
+ case "round-rectangle":
+ return this.drawRoundRectanglePath(e, r, a, n, i);
+ case "cutrectangle":
+ case "cut-rectangle":
+ return this.drawCutRectanglePath(e, r, a, n, i);
+ case "bottomroundrectangle":
+ case "bottom-round-rectangle":
+ return this.drawBottomRoundRectanglePath(e, r, a, n, i);
+ case "barrel":
+ return this.drawBarrelPath(e, r, a, n, i);
+ }
+ };
+ var tp = Mu, ot = Mu.prototype;
+ ot.CANVAS_LAYERS = 3, ot.SELECT_BOX = 0, ot.DRAG = 1, ot.NODE = 2, ot.BUFFER_COUNT = 3, ot.TEXTURE_BUFFER = 0, ot.MOTIONBLUR_BUFFER_NODE = 1, ot.MOTIONBLUR_BUFFER_DRAG = 2;
+ function Mu(t) {
+ var e = this;
+ e.data = {
+ canvases: new Array(ot.CANVAS_LAYERS),
+ contexts: new Array(ot.CANVAS_LAYERS),
+ canvasNeedsRedraw: new Array(ot.CANVAS_LAYERS),
+ bufferCanvases: new Array(ot.BUFFER_COUNT),
+ bufferContexts: new Array(ot.CANVAS_LAYERS)
+ };
+ var r = "-webkit-tap-highlight-color", a = "rgba(0,0,0,0)";
+ e.data.canvasContainer = document.createElement("div");
+ var n = e.data.canvasContainer.style;
+ e.data.canvasContainer.style[r] = a, n.position = "relative", n.zIndex = "0", n.overflow = "hidden";
+ var i = t.cy.container();
+ i.appendChild(e.data.canvasContainer), i.style[r] = a;
+ var s = {
+ "-webkit-user-select": "none",
+ "-moz-user-select": "-moz-none",
+ "user-select": "none",
+ "-webkit-tap-highlight-color": "rgba(0,0,0,0)",
+ "outline-style": "none"
+ };
+ lt() && (s["-ms-touch-action"] = "none", s["touch-action"] = "none");
+ for (var o = 0; o < ot.CANVAS_LAYERS; o++) {
+ var l = e.data.canvases[o] = document.createElement("canvas");
+ e.data.contexts[o] = l.getContext("2d"), Object.keys(s).forEach(function(ye) {
+ l.style[ye] = s[ye];
+ }), l.style.position = "absolute", l.setAttribute("data-id", "layer" + o), l.style.zIndex = String(ot.CANVAS_LAYERS - o), e.data.canvasContainer.appendChild(l), e.data.canvasNeedsRedraw[o] = !1;
+ }
+ e.data.topCanvas = e.data.canvases[0], e.data.canvases[ot.NODE].setAttribute("data-id", "layer" + ot.NODE + "-node"), e.data.canvases[ot.SELECT_BOX].setAttribute("data-id", "layer" + ot.SELECT_BOX + "-selectbox"), e.data.canvases[ot.DRAG].setAttribute("data-id", "layer" + ot.DRAG + "-drag");
+ for (var o = 0; o < ot.BUFFER_COUNT; o++)
+ e.data.bufferCanvases[o] = document.createElement("canvas"), e.data.bufferContexts[o] = e.data.bufferCanvases[o].getContext("2d"), e.data.bufferCanvases[o].style.position = "absolute", e.data.bufferCanvases[o].setAttribute("data-id", "buffer" + o), e.data.bufferCanvases[o].style.zIndex = String(-o - 1), e.data.bufferCanvases[o].style.visibility = "hidden";
+ e.pathsEnabled = !0;
+ var u = Ut(), f = function(ae) {
+ return {
+ x: (ae.x1 + ae.x2) / 2,
+ y: (ae.y1 + ae.y2) / 2
+ };
+ }, h = function(ae) {
+ return {
+ x: -ae.w / 2,
+ y: -ae.h / 2
+ };
+ }, c = function(ae) {
+ var xe = ae[0]._private, Ce = xe.oldBackgroundTimestamp === xe.backgroundTimestamp;
+ return !Ce;
+ }, v = function(ae) {
+ return ae[0]._private.nodeKey;
+ }, d = function(ae) {
+ return ae[0]._private.labelStyleKey;
+ }, g = function(ae) {
+ return ae[0]._private.sourceLabelStyleKey;
+ }, y = function(ae) {
+ return ae[0]._private.targetLabelStyleKey;
+ }, p = function(ae, xe, Ce, Oe, Ie) {
+ return e.drawElement(ae, xe, Ce, !1, !1, Ie);
+ }, m = function(ae, xe, Ce, Oe, Ie) {
+ return e.drawElementText(ae, xe, Ce, Oe, "main", Ie);
+ }, b = function(ae, xe, Ce, Oe, Ie) {
+ return e.drawElementText(ae, xe, Ce, Oe, "source", Ie);
+ }, E = function(ae, xe, Ce, Oe, Ie) {
+ return e.drawElementText(ae, xe, Ce, Oe, "target", Ie);
+ }, M = function(ae) {
+ return ae.boundingBox(), ae[0]._private.bodyBounds;
+ }, A = function(ae) {
+ return ae.boundingBox(), ae[0]._private.labelBounds.main || u;
+ }, w = function(ae) {
+ return ae.boundingBox(), ae[0]._private.labelBounds.source || u;
+ }, I = function(ae) {
+ return ae.boundingBox(), ae[0]._private.labelBounds.target || u;
+ }, C = function(ae, xe) {
+ return xe;
+ }, B = function(ae) {
+ return f(M(ae));
+ }, F = function(ae, xe, Ce) {
+ var Oe = ae ? ae + "-" : "";
+ return {
+ x: xe.x + Ce.pstyle(Oe + "text-margin-x").pfValue,
+ y: xe.y + Ce.pstyle(Oe + "text-margin-y").pfValue
+ };
+ }, R = function(ae, xe, Ce) {
+ var Oe = ae[0]._private.rscratch;
+ return {
+ x: Oe[xe],
+ y: Oe[Ce]
+ };
+ }, X = function(ae) {
+ return F("", R(ae, "labelX", "labelY"), ae);
+ }, z = function(ae) {
+ return F("source", R(ae, "sourceLabelX", "sourceLabelY"), ae);
+ }, re = function(ae) {
+ return F("target", R(ae, "targetLabelX", "targetLabelY"), ae);
+ }, W = function(ae) {
+ return h(M(ae));
+ }, Z = function(ae) {
+ return h(w(ae));
+ }, ie = function(ae) {
+ return h(I(ae));
+ }, oe = function(ae) {
+ var xe = A(ae), Ce = h(A(ae));
+ if (ae.isNode()) {
+ switch (ae.pstyle("text-halign").value) {
+ case "left":
+ Ce.x = -xe.w;
+ break;
+ case "right":
+ Ce.x = 0;
+ break;
+ }
+ switch (ae.pstyle("text-valign").value) {
+ case "top":
+ Ce.y = -xe.h;
+ break;
+ case "bottom":
+ Ce.y = 0;
+ break;
+ }
+ }
+ return Ce;
+ }, ge = e.data.eleTxrCache = new ja(e, {
+ getKey: v,
+ doesEleInvalidateKey: c,
+ drawElement: p,
+ getBoundingBox: M,
+ getRotationPoint: B,
+ getRotationOffset: W,
+ allowEdgeTxrCaching: !1,
+ allowParentTxrCaching: !1
+ }), se = e.data.lblTxrCache = new ja(e, {
+ getKey: d,
+ drawElement: m,
+ getBoundingBox: A,
+ getRotationPoint: X,
+ getRotationOffset: oe,
+ isVisible: C
+ }), de = e.data.slbTxrCache = new ja(e, {
+ getKey: g,
+ drawElement: b,
+ getBoundingBox: w,
+ getRotationPoint: z,
+ getRotationOffset: Z,
+ isVisible: C
+ }), we = e.data.tlbTxrCache = new ja(e, {
+ getKey: y,
+ drawElement: E,
+ getBoundingBox: I,
+ getRotationPoint: re,
+ getRotationOffset: ie,
+ isVisible: C
+ }), Te = e.data.lyrTxrCache = new mu(e);
+ e.onUpdateEleCalcs(function(ae, xe) {
+ ge.invalidateElements(xe), se.invalidateElements(xe), de.invalidateElements(xe), we.invalidateElements(xe), Te.invalidateElements(xe);
+ for (var Ce = 0; Ce < xe.length; Ce++) {
+ var Oe = xe[Ce]._private;
+ Oe.oldBackgroundTimestamp = Oe.backgroundTimestamp;
+ }
+ });
+ var Ee = function(ae) {
+ for (var xe = 0; xe < ae.length; xe++)
+ Te.enqueueElementRefinement(ae[xe].ele);
+ };
+ ge.onDequeue(Ee), se.onDequeue(Ee), de.onDequeue(Ee), we.onDequeue(Ee);
+ }
+ ot.redrawHint = function(t, e) {
+ var r = this;
+ switch (t) {
+ case "eles":
+ r.data.canvasNeedsRedraw[ot.NODE] = e;
+ break;
+ case "drag":
+ r.data.canvasNeedsRedraw[ot.DRAG] = e;
+ break;
+ case "select":
+ r.data.canvasNeedsRedraw[ot.SELECT_BOX] = e;
+ break;
+ }
+ };
+ var rp = typeof Path2D < "u";
+ ot.path2dEnabled = function(t) {
+ if (t === void 0)
+ return this.pathsEnabled;
+ this.pathsEnabled = !!t;
+ }, ot.usePaths = function() {
+ return rp && this.pathsEnabled;
+ }, ot.setImgSmoothing = function(t, e) {
+ t.imageSmoothingEnabled != null ? t.imageSmoothingEnabled = e : (t.webkitImageSmoothingEnabled = e, t.mozImageSmoothingEnabled = e, t.msImageSmoothingEnabled = e);
+ }, ot.getImgSmoothing = function(t) {
+ return t.imageSmoothingEnabled != null ? t.imageSmoothingEnabled : t.webkitImageSmoothingEnabled || t.mozImageSmoothingEnabled || t.msImageSmoothingEnabled;
+ }, ot.makeOffscreenCanvas = function(t, e) {
+ var r;
+ return (typeof OffscreenCanvas > "u" ? "undefined" : ee(OffscreenCanvas)) !== "undefined" ? r = new OffscreenCanvas(t, e) : (r = document.createElement("canvas"), r.width = t, r.height = e), r;
+ }, [Eu, hr, mr, Ui, _r, Ea, Wt, Mr, tn, Nu].forEach(function(t) {
+ Ue(ot, t);
+ });
+ var ap = [{
+ name: "null",
+ impl: ru
+ }, {
+ name: "base",
+ impl: du
+ }, {
+ name: "canvas",
+ impl: tp
+ }], np = [{
+ type: "layout",
+ extensions: hg
+ }, {
+ type: "renderer",
+ extensions: ap
+ }], Iu = {}, Ru = {};
+ function ku(t, e, r) {
+ var a = r, n = function(I) {
+ ft("Can not register `" + e + "` for `" + t + "` since `" + I + "` already exists in the prototype and can not be overridden");
+ };
+ if (t === "core") {
+ if (Za.prototype[e])
+ return n(e);
+ Za.prototype[e] = r;
+ } else if (t === "collection") {
+ if (Ot.prototype[e])
+ return n(e);
+ Ot.prototype[e] = r;
+ } else if (t === "layout") {
+ for (var i = function(I) {
+ this.options = I, r.call(this, I), L(this._private) || (this._private = {}), this._private.cy = I.cy, this._private.listeners = [], this.createEmitter();
+ }, s = i.prototype = Object.create(r.prototype), o = [], l = 0; l < o.length; l++) {
+ var u = o[l];
+ s[u] = s[u] || function() {
+ return this;
+ };
+ }
+ s.start && !s.run ? s.run = function() {
+ return this.start(), this;
+ } : !s.start && s.run && (s.start = function() {
+ return this.run(), this;
+ });
+ var f = r.prototype.stop;
+ s.stop = function() {
+ var w = this.options;
+ if (w && w.animate) {
+ var I = this.animations;
+ if (I)
+ for (var C = 0; C < I.length; C++)
+ I[C].stop();
+ }
+ return f ? f.call(this) : this.emit("layoutstop"), this;
+ }, s.destroy || (s.destroy = function() {
+ return this;
+ }), s.cy = function() {
+ return this._private.cy;
+ };
+ var h = function(I) {
+ return I._private.cy;
+ }, c = {
+ addEventFields: function(I, C) {
+ C.layout = I, C.cy = h(I), C.target = I;
+ },
+ bubble: function() {
+ return !0;
+ },
+ parent: function(I) {
+ return h(I);
+ }
+ };
+ Ue(s, {
+ createEmitter: function() {
+ return this._private.emitter = new Nn(c, this), this;
+ },
+ emitter: function() {
+ return this._private.emitter;
+ },
+ on: function(I, C) {
+ return this.emitter().on(I, C), this;
+ },
+ one: function(I, C) {
+ return this.emitter().one(I, C), this;
+ },
+ once: function(I, C) {
+ return this.emitter().one(I, C), this;
+ },
+ removeListener: function(I, C) {
+ return this.emitter().removeListener(I, C), this;
+ },
+ removeAllListeners: function() {
+ return this.emitter().removeAllListeners(), this;
+ },
+ emit: function(I, C) {
+ return this.emitter().emit(I, C), this;
+ }
+ }), ht.eventAliasesOn(s), a = i;
+ } else if (t === "renderer" && e !== "null" && e !== "base") {
+ var v = Pu("renderer", "base"), d = v.prototype, g = r, y = r.prototype, p = function() {
+ v.apply(this, arguments), g.apply(this, arguments);
+ }, m = p.prototype;
+ for (var b in d) {
+ var E = d[b], M = y[b] != null;
+ if (M)
+ return n(b);
+ m[b] = E;
+ }
+ for (var A in y)
+ m[A] = y[A];
+ d.clientFunctions.forEach(function(w) {
+ m[w] = m[w] || function() {
+ xt("Renderer does not implement `renderer." + w + "()` on its prototype");
+ };
+ }), a = p;
+ } else if (t === "__proto__" || t === "constructor" || t === "prototype")
+ return xt(t + " is an illegal type to be registered, possibly lead to prototype pollutions");
+ return ts({
+ map: Iu,
+ keys: [t, e],
+ value: a
+ });
+ }
+ function Pu(t, e) {
+ return rs({
+ map: Iu,
+ keys: [t, e]
+ });
+ }
+ function ip(t, e, r, a, n) {
+ return ts({
+ map: Ru,
+ keys: [t, e, r, a],
+ value: n
+ });
+ }
+ function sp(t, e, r, a) {
+ return rs({
+ map: Ru,
+ keys: [t, e, r, a]
+ });
+ }
+ var Xi = function() {
+ if (arguments.length === 2)
+ return Pu.apply(null, arguments);
+ if (arguments.length === 3)
+ return ku.apply(null, arguments);
+ if (arguments.length === 4)
+ return sp.apply(null, arguments);
+ if (arguments.length === 5)
+ return ip.apply(null, arguments);
+ xt("Invalid extension access syntax");
+ };
+ Za.prototype.extension = Xi, np.forEach(function(t) {
+ t.extensions.forEach(function(e) {
+ ku(t.type, e.name, e.impl);
+ });
+ });
+ var Bu = function t() {
+ if (!(this instanceof t))
+ return new t();
+ this.length = 0;
+ }, Ur = Bu.prototype;
+ Ur.instanceString = function() {
+ return "stylesheet";
+ }, Ur.selector = function(t) {
+ var e = this.length++;
+ return this[e] = {
+ selector: t,
+ properties: []
+ }, this;
+ }, Ur.css = function(t, e) {
+ var r = this.length - 1;
+ if (j(t))
+ this[r].properties.push({
+ name: t,
+ value: e
+ });
+ else if (L(t))
+ for (var a = t, n = Object.keys(a), i = 0; i < n.length; i++) {
+ var s = n[i], o = a[s];
+ if (o != null) {
+ var l = Ft.properties[s] || Ft.properties[pt(s)];
+ if (l != null) {
+ var u = l.name, f = o;
+ this[r].properties.push({
+ name: u,
+ value: f
+ });
+ }
+ }
+ }
+ return this;
+ }, Ur.style = Ur.css, Ur.generateStyle = function(t) {
+ var e = new Ft(t);
+ return this.appendToStyle(e);
+ }, Ur.appendToStyle = function(t) {
+ for (var e = 0; e < this.length; e++) {
+ var r = this[e], a = r.selector, n = r.properties;
+ t.selector(a);
+ for (var i = 0; i < n.length; i++) {
+ var s = n[i];
+ t.css(s.name, s.value);
+ }
+ }
+ return t;
+ };
+ var op = "3.23.0", Yr = function(e) {
+ if (e === void 0 && (e = {}), L(e))
+ return new Za(e);
+ if (j(e))
+ return Xi.apply(Xi, arguments);
+ };
+ return Yr.use = function(t) {
+ var e = Array.prototype.slice.call(arguments, 1);
+ return e.unshift(Yr), t.apply(null, e), this;
+ }, Yr.warnings = function(t) {
+ return gs(t);
+ }, Yr.version = op, Yr.stylesheet = Yr.Stylesheet = Bu, Yr;
+ });
+})(Xp);
+const Wu = Zi;
+var Qi = {}, qp = {
+ get exports() {
+ return Qi;
+ },
+ set exports(he) {
+ Qi = he;
+ }
+}, ti = {}, Wp = {
+ get exports() {
+ return ti;
+ },
+ set exports(he) {
+ ti = he;
+ }
+}, ri = {}, Kp = {
+ get exports() {
+ return ri;
+ },
+ set exports(he) {
+ ri = he;
+ }
+}, Vu;
+function Zp() {
+ return Vu || (Vu = 1, function(he, fe) {
+ (function(ve, H) {
+ he.exports = H();
+ })(Ca, function() {
+ return (
+ /******/
+ function(ee) {
+ var ve = {};
+ function H(O) {
+ if (ve[O])
+ return ve[O].exports;
+ var T = ve[O] = {
+ /******/
+ i: O,
+ /******/
+ l: !1,
+ /******/
+ exports: {}
+ /******/
+ };
+ return ee[O].call(T.exports, T, T.exports, H), T.l = !0, T.exports;
+ }
+ return H.m = ee, H.c = ve, H.i = function(O) {
+ return O;
+ }, H.d = function(O, T, x) {
+ H.o(O, T) || Object.defineProperty(O, T, {
+ /******/
+ configurable: !1,
+ /******/
+ enumerable: !0,
+ /******/
+ get: x
+ /******/
+ });
+ }, H.n = function(O) {
+ var T = O && O.__esModule ? (
+ /******/
+ function() {
+ return O.default;
+ }
+ ) : (
+ /******/
+ function() {
+ return O;
+ }
+ );
+ return H.d(T, "a", T), T;
+ }, H.o = function(O, T) {
+ return Object.prototype.hasOwnProperty.call(O, T);
+ }, H.p = "", H(H.s = 26);
+ }([
+ /* 0 */
+ /***/
+ function(ee, ve, H) {
+ function O() {
+ }
+ O.QUALITY = 1, O.DEFAULT_CREATE_BENDS_AS_NEEDED = !1, O.DEFAULT_INCREMENTAL = !1, O.DEFAULT_ANIMATION_ON_LAYOUT = !0, O.DEFAULT_ANIMATION_DURING_LAYOUT = !1, O.DEFAULT_ANIMATION_PERIOD = 50, O.DEFAULT_UNIFORM_LEAF_NODE_SIZES = !1, O.DEFAULT_GRAPH_MARGIN = 15, O.NODE_DIMENSIONS_INCLUDE_LABELS = !1, O.SIMPLE_NODE_SIZE = 40, O.SIMPLE_NODE_HALF_SIZE = O.SIMPLE_NODE_SIZE / 2, O.EMPTY_COMPOUND_NODE_SIZE = 40, O.MIN_EDGE_LENGTH = 1, O.WORLD_BOUNDARY = 1e6, O.INITIAL_WORLD_BOUNDARY = O.WORLD_BOUNDARY / 1e3, O.WORLD_CENTER_X = 1200, O.WORLD_CENTER_Y = 900, ee.exports = O;
+ },
+ /* 1 */
+ /***/
+ function(ee, ve, H) {
+ var O = H(2), T = H(8), x = H(9);
+ function S(U, P, K) {
+ O.call(this, K), this.isOverlapingSourceAndTarget = !1, this.vGraphObject = K, this.bendpoints = [], this.source = U, this.target = P;
+ }
+ S.prototype = Object.create(O.prototype);
+ for (var G in O)
+ S[G] = O[G];
+ S.prototype.getSource = function() {
+ return this.source;
+ }, S.prototype.getTarget = function() {
+ return this.target;
+ }, S.prototype.isInterGraph = function() {
+ return this.isInterGraph;
+ }, S.prototype.getLength = function() {
+ return this.length;
+ }, S.prototype.isOverlapingSourceAndTarget = function() {
+ return this.isOverlapingSourceAndTarget;
+ }, S.prototype.getBendpoints = function() {
+ return this.bendpoints;
+ }, S.prototype.getLca = function() {
+ return this.lca;
+ }, S.prototype.getSourceInLca = function() {
+ return this.sourceInLca;
+ }, S.prototype.getTargetInLca = function() {
+ return this.targetInLca;
+ }, S.prototype.getOtherEnd = function(U) {
+ if (this.source === U)
+ return this.target;
+ if (this.target === U)
+ return this.source;
+ throw "Node is not incident with this edge";
+ }, S.prototype.getOtherEndInGraph = function(U, P) {
+ for (var K = this.getOtherEnd(U), D = P.getGraphManager().getRoot(); ; ) {
+ if (K.getOwner() == P)
+ return K;
+ if (K.getOwner() == D)
+ break;
+ K = K.getOwner().getParent();
+ }
+ return null;
+ }, S.prototype.updateLength = function() {
+ var U = new Array(4);
+ this.isOverlapingSourceAndTarget = T.getIntersection(this.target.getRect(), this.source.getRect(), U), this.isOverlapingSourceAndTarget || (this.lengthX = U[0] - U[2], this.lengthY = U[1] - U[3], Math.abs(this.lengthX) < 1 && (this.lengthX = x.sign(this.lengthX)), Math.abs(this.lengthY) < 1 && (this.lengthY = x.sign(this.lengthY)), this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY));
+ }, S.prototype.updateLengthSimple = function() {
+ this.lengthX = this.target.getCenterX() - this.source.getCenterX(), this.lengthY = this.target.getCenterY() - this.source.getCenterY(), Math.abs(this.lengthX) < 1 && (this.lengthX = x.sign(this.lengthX)), Math.abs(this.lengthY) < 1 && (this.lengthY = x.sign(this.lengthY)), this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);
+ }, ee.exports = S;
+ },
+ /* 2 */
+ /***/
+ function(ee, ve, H) {
+ function O(T) {
+ this.vGraphObject = T;
+ }
+ ee.exports = O;
+ },
+ /* 3 */
+ /***/
+ function(ee, ve, H) {
+ var O = H(2), T = H(10), x = H(13), S = H(0), G = H(16), U = H(4);
+ function P(D, V, _, Q) {
+ _ == null && Q == null && (Q = V), O.call(this, Q), D.graphManager != null && (D = D.graphManager), this.estimatedSize = T.MIN_VALUE, this.inclusionTreeDepth = T.MAX_VALUE, this.vGraphObject = Q, this.edges = [], this.graphManager = D, _ != null && V != null ? this.rect = new x(V.x, V.y, _.width, _.height) : this.rect = new x();
+ }
+ P.prototype = Object.create(O.prototype);
+ for (var K in O)
+ P[K] = O[K];
+ P.prototype.getEdges = function() {
+ return this.edges;
+ }, P.prototype.getChild = function() {
+ return this.child;
+ }, P.prototype.getOwner = function() {
+ return this.owner;
+ }, P.prototype.getWidth = function() {
+ return this.rect.width;
+ }, P.prototype.setWidth = function(D) {
+ this.rect.width = D;
+ }, P.prototype.getHeight = function() {
+ return this.rect.height;
+ }, P.prototype.setHeight = function(D) {
+ this.rect.height = D;
+ }, P.prototype.getCenterX = function() {
+ return this.rect.x + this.rect.width / 2;
+ }, P.prototype.getCenterY = function() {
+ return this.rect.y + this.rect.height / 2;
+ }, P.prototype.getCenter = function() {
+ return new U(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2);
+ }, P.prototype.getLocation = function() {
+ return new U(this.rect.x, this.rect.y);
+ }, P.prototype.getRect = function() {
+ return this.rect;
+ }, P.prototype.getDiagonal = function() {
+ return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height);
+ }, P.prototype.getHalfTheDiagonal = function() {
+ return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2;
+ }, P.prototype.setRect = function(D, V) {
+ this.rect.x = D.x, this.rect.y = D.y, this.rect.width = V.width, this.rect.height = V.height;
+ }, P.prototype.setCenter = function(D, V) {
+ this.rect.x = D - this.rect.width / 2, this.rect.y = V - this.rect.height / 2;
+ }, P.prototype.setLocation = function(D, V) {
+ this.rect.x = D, this.rect.y = V;
+ }, P.prototype.moveBy = function(D, V) {
+ this.rect.x += D, this.rect.y += V;
+ }, P.prototype.getEdgeListToNode = function(D) {
+ var V = [], _ = this;
+ return _.edges.forEach(function(Q) {
+ if (Q.target == D) {
+ if (Q.source != _)
+ throw "Incorrect edge source!";
+ V.push(Q);
+ }
+ }), V;
+ }, P.prototype.getEdgesBetween = function(D) {
+ var V = [], _ = this;
+ return _.edges.forEach(function(Q) {
+ if (!(Q.source == _ || Q.target == _))
+ throw "Incorrect edge source and/or target";
+ (Q.target == D || Q.source == D) && V.push(Q);
+ }), V;
+ }, P.prototype.getNeighborsList = function() {
+ var D = /* @__PURE__ */ new Set(), V = this;
+ return V.edges.forEach(function(_) {
+ if (_.source == V)
+ D.add(_.target);
+ else {
+ if (_.target != V)
+ throw "Incorrect incidency!";
+ D.add(_.source);
+ }
+ }), D;
+ }, P.prototype.withChildren = function() {
+ var D = /* @__PURE__ */ new Set(), V, _;
+ if (D.add(this), this.child != null)
+ for (var Q = this.child.getNodes(), ne = 0; ne < Q.length; ne++)
+ V = Q[ne], _ = V.withChildren(), _.forEach(function(ue) {
+ D.add(ue);
+ });
+ return D;
+ }, P.prototype.getNoOfChildren = function() {
+ var D = 0, V;
+ if (this.child == null)
+ D = 1;
+ else
+ for (var _ = this.child.getNodes(), Q = 0; Q < _.length; Q++)
+ V = _[Q], D += V.getNoOfChildren();
+ return D == 0 && (D = 1), D;
+ }, P.prototype.getEstimatedSize = function() {
+ if (this.estimatedSize == T.MIN_VALUE)
+ throw "assert failed";
+ return this.estimatedSize;
+ }, P.prototype.calcEstimatedSize = function() {
+ return this.child == null ? this.estimatedSize = (this.rect.width + this.rect.height) / 2 : (this.estimatedSize = this.child.calcEstimatedSize(), this.rect.width = this.estimatedSize, this.rect.height = this.estimatedSize, this.estimatedSize);
+ }, P.prototype.scatter = function() {
+ var D, V, _ = -S.INITIAL_WORLD_BOUNDARY, Q = S.INITIAL_WORLD_BOUNDARY;
+ D = S.WORLD_CENTER_X + G.nextDouble() * (Q - _) + _;
+ var ne = -S.INITIAL_WORLD_BOUNDARY, ue = S.INITIAL_WORLD_BOUNDARY;
+ V = S.WORLD_CENTER_Y + G.nextDouble() * (ue - ne) + ne, this.rect.x = D, this.rect.y = V;
+ }, P.prototype.updateBounds = function() {
+ if (this.getChild() == null)
+ throw "assert failed";
+ if (this.getChild().getNodes().length != 0) {
+ var D = this.getChild();
+ if (D.updateBounds(!0), this.rect.x = D.getLeft(), this.rect.y = D.getTop(), this.setWidth(D.getRight() - D.getLeft()), this.setHeight(D.getBottom() - D.getTop()), S.NODE_DIMENSIONS_INCLUDE_LABELS) {
+ var V = D.getRight() - D.getLeft(), _ = D.getBottom() - D.getTop();
+ this.labelWidth > V && (this.rect.x -= (this.labelWidth - V) / 2, this.setWidth(this.labelWidth)), this.labelHeight > _ && (this.labelPos == "center" ? this.rect.y -= (this.labelHeight - _) / 2 : this.labelPos == "top" && (this.rect.y -= this.labelHeight - _), this.setHeight(this.labelHeight));
+ }
+ }
+ }, P.prototype.getInclusionTreeDepth = function() {
+ if (this.inclusionTreeDepth == T.MAX_VALUE)
+ throw "assert failed";
+ return this.inclusionTreeDepth;
+ }, P.prototype.transform = function(D) {
+ var V = this.rect.x;
+ V > S.WORLD_BOUNDARY ? V = S.WORLD_BOUNDARY : V < -S.WORLD_BOUNDARY && (V = -S.WORLD_BOUNDARY);
+ var _ = this.rect.y;
+ _ > S.WORLD_BOUNDARY ? _ = S.WORLD_BOUNDARY : _ < -S.WORLD_BOUNDARY && (_ = -S.WORLD_BOUNDARY);
+ var Q = new U(V, _), ne = D.inverseTransformPoint(Q);
+ this.setLocation(ne.x, ne.y);
+ }, P.prototype.getLeft = function() {
+ return this.rect.x;
+ }, P.prototype.getRight = function() {
+ return this.rect.x + this.rect.width;
+ }, P.prototype.getTop = function() {
+ return this.rect.y;
+ }, P.prototype.getBottom = function() {
+ return this.rect.y + this.rect.height;
+ }, P.prototype.getParent = function() {
+ return this.owner == null ? null : this.owner.getParent();
+ }, ee.exports = P;
+ },
+ /* 4 */
+ /***/
+ function(ee, ve, H) {
+ function O(T, x) {
+ T == null && x == null ? (this.x = 0, this.y = 0) : (this.x = T, this.y = x);
+ }
+ O.prototype.getX = function() {
+ return this.x;
+ }, O.prototype.getY = function() {
+ return this.y;
+ }, O.prototype.setX = function(T) {
+ this.x = T;
+ }, O.prototype.setY = function(T) {
+ this.y = T;
+ }, O.prototype.getDifference = function(T) {
+ return new DimensionD(this.x - T.x, this.y - T.y);
+ }, O.prototype.getCopy = function() {
+ return new O(this.x, this.y);
+ }, O.prototype.translate = function(T) {
+ return this.x += T.width, this.y += T.height, this;
+ }, ee.exports = O;
+ },
+ /* 5 */
+ /***/
+ function(ee, ve, H) {
+ var O = H(2), T = H(10), x = H(0), S = H(6), G = H(3), U = H(1), P = H(13), K = H(12), D = H(11);
+ function V(Q, ne, ue) {
+ O.call(this, ue), this.estimatedSize = T.MIN_VALUE, this.margin = x.DEFAULT_GRAPH_MARGIN, this.edges = [], this.nodes = [], this.isConnected = !1, this.parent = Q, ne != null && ne instanceof S ? this.graphManager = ne : ne != null && ne instanceof Layout && (this.graphManager = ne.graphManager);
+ }
+ V.prototype = Object.create(O.prototype);
+ for (var _ in O)
+ V[_] = O[_];
+ V.prototype.getNodes = function() {
+ return this.nodes;
+ }, V.prototype.getEdges = function() {
+ return this.edges;
+ }, V.prototype.getGraphManager = function() {
+ return this.graphManager;
+ }, V.prototype.getParent = function() {
+ return this.parent;
+ }, V.prototype.getLeft = function() {
+ return this.left;
+ }, V.prototype.getRight = function() {
+ return this.right;
+ }, V.prototype.getTop = function() {
+ return this.top;
+ }, V.prototype.getBottom = function() {
+ return this.bottom;
+ }, V.prototype.isConnected = function() {
+ return this.isConnected;
+ }, V.prototype.add = function(Q, ne, ue) {
+ if (ne == null && ue == null) {
+ var J = Q;
+ if (this.graphManager == null)
+ throw "Graph has no graph mgr!";
+ if (this.getNodes().indexOf(J) > -1)
+ throw "Node already in graph!";
+ return J.owner = this, this.getNodes().push(J), J;
+ } else {
+ var j = Q;
+ if (!(this.getNodes().indexOf(ne) > -1 && this.getNodes().indexOf(ue) > -1))
+ throw "Source or target not in graph!";
+ if (!(ne.owner == ue.owner && ne.owner == this))
+ throw "Both owners must be this graph!";
+ return ne.owner != ue.owner ? null : (j.source = ne, j.target = ue, j.isInterGraph = !1, this.getEdges().push(j), ne.edges.push(j), ue != ne && ue.edges.push(j), j);
+ }
+ }, V.prototype.remove = function(Q) {
+ var ne = Q;
+ if (Q instanceof G) {
+ if (ne == null)
+ throw "Node is null!";
+ if (!(ne.owner != null && ne.owner == this))
+ throw "Owner graph is invalid!";
+ if (this.graphManager == null)
+ throw "Owner graph manager is invalid!";
+ for (var ue = ne.edges.slice(), J, j = ue.length, Y = 0; Y < j; Y++)
+ J = ue[Y], J.isInterGraph ? this.graphManager.remove(J) : J.source.owner.remove(J);
+ var te = this.nodes.indexOf(ne);
+ if (te == -1)
+ throw "Node not in owner node list!";
+ this.nodes.splice(te, 1);
+ } else if (Q instanceof U) {
+ var J = Q;
+ if (J == null)
+ throw "Edge is null!";
+ if (!(J.source != null && J.target != null))
+ throw "Source and/or target is null!";
+ if (!(J.source.owner != null && J.target.owner != null && J.source.owner == this && J.target.owner == this))
+ throw "Source and/or target owner is invalid!";
+ var L = J.source.edges.indexOf(J), $ = J.target.edges.indexOf(J);
+ if (!(L > -1 && $ > -1))
+ throw "Source and/or target doesn't know this edge!";
+ J.source.edges.splice(L, 1), J.target != J.source && J.target.edges.splice($, 1);
+ var te = J.source.owner.getEdges().indexOf(J);
+ if (te == -1)
+ throw "Not in owner's edge list!";
+ J.source.owner.getEdges().splice(te, 1);
+ }
+ }, V.prototype.updateLeftTop = function() {
+ for (var Q = T.MAX_VALUE, ne = T.MAX_VALUE, ue, J, j, Y = this.getNodes(), te = Y.length, L = 0; L < te; L++) {
+ var $ = Y[L];
+ ue = $.getTop(), J = $.getLeft(), Q > ue && (Q = ue), ne > J && (ne = J);
+ }
+ return Q == T.MAX_VALUE ? null : (Y[0].getParent().paddingLeft != null ? j = Y[0].getParent().paddingLeft : j = this.margin, this.left = ne - j, this.top = Q - j, new K(this.left, this.top));
+ }, V.prototype.updateBounds = function(Q) {
+ for (var ne = T.MAX_VALUE, ue = -T.MAX_VALUE, J = T.MAX_VALUE, j = -T.MAX_VALUE, Y, te, L, $, k, q = this.nodes, ce = q.length, pe = 0; pe < ce; pe++) {
+ var Ae = q[pe];
+ Q && Ae.child != null && Ae.updateBounds(), Y = Ae.getLeft(), te = Ae.getRight(), L = Ae.getTop(), $ = Ae.getBottom(), ne > Y && (ne = Y), ue < te && (ue = te), J > L && (J = L), j < $ && (j = $);
+ }
+ var Ne = new P(ne, J, ue - ne, j - J);
+ ne == T.MAX_VALUE && (this.left = this.parent.getLeft(), this.right = this.parent.getRight(), this.top = this.parent.getTop(), this.bottom = this.parent.getBottom()), q[0].getParent().paddingLeft != null ? k = q[0].getParent().paddingLeft : k = this.margin, this.left = Ne.x - k, this.right = Ne.x + Ne.width + k, this.top = Ne.y - k, this.bottom = Ne.y + Ne.height + k;
+ }, V.calculateBounds = function(Q) {
+ for (var ne = T.MAX_VALUE, ue = -T.MAX_VALUE, J = T.MAX_VALUE, j = -T.MAX_VALUE, Y, te, L, $, k = Q.length, q = 0; q < k; q++) {
+ var ce = Q[q];
+ Y = ce.getLeft(), te = ce.getRight(), L = ce.getTop(), $ = ce.getBottom(), ne > Y && (ne = Y), ue < te && (ue = te), J > L && (J = L), j < $ && (j = $);
+ }
+ var pe = new P(ne, J, ue - ne, j - J);
+ return pe;
+ }, V.prototype.getInclusionTreeDepth = function() {
+ return this == this.graphManager.getRoot() ? 1 : this.parent.getInclusionTreeDepth();
+ }, V.prototype.getEstimatedSize = function() {
+ if (this.estimatedSize == T.MIN_VALUE)
+ throw "assert failed";
+ return this.estimatedSize;
+ }, V.prototype.calcEstimatedSize = function() {
+ for (var Q = 0, ne = this.nodes, ue = ne.length, J = 0; J < ue; J++) {
+ var j = ne[J];
+ Q += j.calcEstimatedSize();
+ }
+ return Q == 0 ? this.estimatedSize = x.EMPTY_COMPOUND_NODE_SIZE : this.estimatedSize = Q / Math.sqrt(this.nodes.length), this.estimatedSize;
+ }, V.prototype.updateConnected = function() {
+ var Q = this;
+ if (this.nodes.length == 0) {
+ this.isConnected = !0;
+ return;
+ }
+ var ne = new D(), ue = /* @__PURE__ */ new Set(), J = this.nodes[0], j, Y, te = J.withChildren();
+ for (te.forEach(function(pe) {
+ ne.push(pe), ue.add(pe);
+ }); ne.length !== 0; ) {
+ J = ne.shift(), j = J.getEdges();
+ for (var L = j.length, $ = 0; $ < L; $++) {
+ var k = j[$];
+ if (Y = k.getOtherEndInGraph(J, this), Y != null && !ue.has(Y)) {
+ var q = Y.withChildren();
+ q.forEach(function(pe) {
+ ne.push(pe), ue.add(pe);
+ });
+ }
+ }
+ }
+ if (this.isConnected = !1, ue.size >= this.nodes.length) {
+ var ce = 0;
+ ue.forEach(function(pe) {
+ pe.owner == Q && ce++;
+ }), ce == this.nodes.length && (this.isConnected = !0);
+ }
+ }, ee.exports = V;
+ },
+ /* 6 */
+ /***/
+ function(ee, ve, H) {
+ var O, T = H(1);
+ function x(S) {
+ O = H(5), this.layout = S, this.graphs = [], this.edges = [];
+ }
+ x.prototype.addRoot = function() {
+ var S = this.layout.newGraph(), G = this.layout.newNode(null), U = this.add(S, G);
+ return this.setRootGraph(U), this.rootGraph;
+ }, x.prototype.add = function(S, G, U, P, K) {
+ if (U == null && P == null && K == null) {
+ if (S == null)
+ throw "Graph is null!";
+ if (G == null)
+ throw "Parent node is null!";
+ if (this.graphs.indexOf(S) > -1)
+ throw "Graph already in this graph mgr!";
+ if (this.graphs.push(S), S.parent != null)
+ throw "Already has a parent!";
+ if (G.child != null)
+ throw "Already has a child!";
+ return S.parent = G, G.child = S, S;
+ } else {
+ K = U, P = G, U = S;
+ var D = P.getOwner(), V = K.getOwner();
+ if (!(D != null && D.getGraphManager() == this))
+ throw "Source not in this graph mgr!";
+ if (!(V != null && V.getGraphManager() == this))
+ throw "Target not in this graph mgr!";
+ if (D == V)
+ return U.isInterGraph = !1, D.add(U, P, K);
+ if (U.isInterGraph = !0, U.source = P, U.target = K, this.edges.indexOf(U) > -1)
+ throw "Edge already in inter-graph edge list!";
+ if (this.edges.push(U), !(U.source != null && U.target != null))
+ throw "Edge source and/or target is null!";
+ if (!(U.source.edges.indexOf(U) == -1 && U.target.edges.indexOf(U) == -1))
+ throw "Edge already in source and/or target incidency list!";
+ return U.source.edges.push(U), U.target.edges.push(U), U;
+ }
+ }, x.prototype.remove = function(S) {
+ if (S instanceof O) {
+ var G = S;
+ if (G.getGraphManager() != this)
+ throw "Graph not in this graph mgr";
+ if (!(G == this.rootGraph || G.parent != null && G.parent.graphManager == this))
+ throw "Invalid parent node!";
+ var U = [];
+ U = U.concat(G.getEdges());
+ for (var P, K = U.length, D = 0; D < K; D++)
+ P = U[D], G.remove(P);
+ var V = [];
+ V = V.concat(G.getNodes());
+ var _;
+ K = V.length;
+ for (var D = 0; D < K; D++)
+ _ = V[D], G.remove(_);
+ G == this.rootGraph && this.setRootGraph(null);
+ var Q = this.graphs.indexOf(G);
+ this.graphs.splice(Q, 1), G.parent = null;
+ } else if (S instanceof T) {
+ if (P = S, P == null)
+ throw "Edge is null!";
+ if (!P.isInterGraph)
+ throw "Not an inter-graph edge!";
+ if (!(P.source != null && P.target != null))
+ throw "Source and/or target is null!";
+ if (!(P.source.edges.indexOf(P) != -1 && P.target.edges.indexOf(P) != -1))
+ throw "Source and/or target doesn't know this edge!";
+ var Q = P.source.edges.indexOf(P);
+ if (P.source.edges.splice(Q, 1), Q = P.target.edges.indexOf(P), P.target.edges.splice(Q, 1), !(P.source.owner != null && P.source.owner.getGraphManager() != null))
+ throw "Edge owner graph or owner graph manager is null!";
+ if (P.source.owner.getGraphManager().edges.indexOf(P) == -1)
+ throw "Not in owner graph manager's edge list!";
+ var Q = P.source.owner.getGraphManager().edges.indexOf(P);
+ P.source.owner.getGraphManager().edges.splice(Q, 1);
+ }
+ }, x.prototype.updateBounds = function() {
+ this.rootGraph.updateBounds(!0);
+ }, x.prototype.getGraphs = function() {
+ return this.graphs;
+ }, x.prototype.getAllNodes = function() {
+ if (this.allNodes == null) {
+ for (var S = [], G = this.getGraphs(), U = G.length, P = 0; P < U; P++)
+ S = S.concat(G[P].getNodes());
+ this.allNodes = S;
+ }
+ return this.allNodes;
+ }, x.prototype.resetAllNodes = function() {
+ this.allNodes = null;
+ }, x.prototype.resetAllEdges = function() {
+ this.allEdges = null;
+ }, x.prototype.resetAllNodesToApplyGravitation = function() {
+ this.allNodesToApplyGravitation = null;
+ }, x.prototype.getAllEdges = function() {
+ if (this.allEdges == null) {
+ var S = [], G = this.getGraphs();
+ G.length;
+ for (var U = 0; U < G.length; U++)
+ S = S.concat(G[U].getEdges());
+ S = S.concat(this.edges), this.allEdges = S;
+ }
+ return this.allEdges;
+ }, x.prototype.getAllNodesToApplyGravitation = function() {
+ return this.allNodesToApplyGravitation;
+ }, x.prototype.setAllNodesToApplyGravitation = function(S) {
+ if (this.allNodesToApplyGravitation != null)
+ throw "assert failed";
+ this.allNodesToApplyGravitation = S;
+ }, x.prototype.getRoot = function() {
+ return this.rootGraph;
+ }, x.prototype.setRootGraph = function(S) {
+ if (S.getGraphManager() != this)
+ throw "Root not in this graph mgr!";
+ this.rootGraph = S, S.parent == null && (S.parent = this.layout.newNode("Root node"));
+ }, x.prototype.getLayout = function() {
+ return this.layout;
+ }, x.prototype.isOneAncestorOfOther = function(S, G) {
+ if (!(S != null && G != null))
+ throw "assert failed";
+ if (S == G)
+ return !0;
+ var U = S.getOwner(), P;
+ do {
+ if (P = U.getParent(), P == null)
+ break;
+ if (P == G)
+ return !0;
+ if (U = P.getOwner(), U == null)
+ break;
+ } while (!0);
+ U = G.getOwner();
+ do {
+ if (P = U.getParent(), P == null)
+ break;
+ if (P == S)
+ return !0;
+ if (U = P.getOwner(), U == null)
+ break;
+ } while (!0);
+ return !1;
+ }, x.prototype.calcLowestCommonAncestors = function() {
+ for (var S, G, U, P, K, D = this.getAllEdges(), V = D.length, _ = 0; _ < V; _++) {
+ if (S = D[_], G = S.source, U = S.target, S.lca = null, S.sourceInLca = G, S.targetInLca = U, G == U) {
+ S.lca = G.getOwner();
+ continue;
+ }
+ for (P = G.getOwner(); S.lca == null; ) {
+ for (S.targetInLca = U, K = U.getOwner(); S.lca == null; ) {
+ if (K == P) {
+ S.lca = K;
+ break;
+ }
+ if (K == this.rootGraph)
+ break;
+ if (S.lca != null)
+ throw "assert failed";
+ S.targetInLca = K.getParent(), K = S.targetInLca.getOwner();
+ }
+ if (P == this.rootGraph)
+ break;
+ S.lca == null && (S.sourceInLca = P.getParent(), P = S.sourceInLca.getOwner());
+ }
+ if (S.lca == null)
+ throw "assert failed";
+ }
+ }, x.prototype.calcLowestCommonAncestor = function(S, G) {
+ if (S == G)
+ return S.getOwner();
+ var U = S.getOwner();
+ do {
+ if (U == null)
+ break;
+ var P = G.getOwner();
+ do {
+ if (P == null)
+ break;
+ if (P == U)
+ return P;
+ P = P.getParent().getOwner();
+ } while (!0);
+ U = U.getParent().getOwner();
+ } while (!0);
+ return U;
+ }, x.prototype.calcInclusionTreeDepths = function(S, G) {
+ S == null && G == null && (S = this.rootGraph, G = 1);
+ for (var U, P = S.getNodes(), K = P.length, D = 0; D < K; D++)
+ U = P[D], U.inclusionTreeDepth = G, U.child != null && this.calcInclusionTreeDepths(U.child, G + 1);
+ }, x.prototype.includesInvalidEdge = function() {
+ for (var S, G = this.edges.length, U = 0; U < G; U++)
+ if (S = this.edges[U], this.isOneAncestorOfOther(S.source, S.target))
+ return !0;
+ return !1;
+ }, ee.exports = x;
+ },
+ /* 7 */
+ /***/
+ function(ee, ve, H) {
+ var O = H(0);
+ function T() {
+ }
+ for (var x in O)
+ T[x] = O[x];
+ T.MAX_ITERATIONS = 2500, T.DEFAULT_EDGE_LENGTH = 50, T.DEFAULT_SPRING_STRENGTH = 0.45, T.DEFAULT_REPULSION_STRENGTH = 4500, T.DEFAULT_GRAVITY_STRENGTH = 0.4, T.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1, T.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8, T.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5, T.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = !0, T.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = !0, T.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3, T.COOLING_ADAPTATION_FACTOR = 0.33, T.ADAPTATION_LOWER_NODE_LIMIT = 1e3, T.ADAPTATION_UPPER_NODE_LIMIT = 5e3, T.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100, T.MAX_NODE_DISPLACEMENT = T.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3, T.MIN_REPULSION_DIST = T.DEFAULT_EDGE_LENGTH / 10, T.CONVERGENCE_CHECK_PERIOD = 100, T.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1, T.MIN_EDGE_LENGTH = 1, T.GRID_CALCULATION_CHECK_PERIOD = 10, ee.exports = T;
+ },
+ /* 8 */
+ /***/
+ function(ee, ve, H) {
+ var O = H(12);
+ function T() {
+ }
+ T.calcSeparationAmount = function(x, S, G, U) {
+ if (!x.intersects(S))
+ throw "assert failed";
+ var P = new Array(2);
+ this.decideDirectionsForOverlappingNodes(x, S, P), G[0] = Math.min(x.getRight(), S.getRight()) - Math.max(x.x, S.x), G[1] = Math.min(x.getBottom(), S.getBottom()) - Math.max(x.y, S.y), x.getX() <= S.getX() && x.getRight() >= S.getRight() ? G[0] += Math.min(S.getX() - x.getX(), x.getRight() - S.getRight()) : S.getX() <= x.getX() && S.getRight() >= x.getRight() && (G[0] += Math.min(x.getX() - S.getX(), S.getRight() - x.getRight())), x.getY() <= S.getY() && x.getBottom() >= S.getBottom() ? G[1] += Math.min(S.getY() - x.getY(), x.getBottom() - S.getBottom()) : S.getY() <= x.getY() && S.getBottom() >= x.getBottom() && (G[1] += Math.min(x.getY() - S.getY(), S.getBottom() - x.getBottom()));
+ var K = Math.abs((S.getCenterY() - x.getCenterY()) / (S.getCenterX() - x.getCenterX()));
+ S.getCenterY() === x.getCenterY() && S.getCenterX() === x.getCenterX() && (K = 1);
+ var D = K * G[0], V = G[1] / K;
+ G[0] < V ? V = G[0] : D = G[1], G[0] = -1 * P[0] * (V / 2 + U), G[1] = -1 * P[1] * (D / 2 + U);
+ }, T.decideDirectionsForOverlappingNodes = function(x, S, G) {
+ x.getCenterX() < S.getCenterX() ? G[0] = -1 : G[0] = 1, x.getCenterY() < S.getCenterY() ? G[1] = -1 : G[1] = 1;
+ }, T.getIntersection2 = function(x, S, G) {
+ var U = x.getCenterX(), P = x.getCenterY(), K = S.getCenterX(), D = S.getCenterY();
+ if (x.intersects(S))
+ return G[0] = U, G[1] = P, G[2] = K, G[3] = D, !0;
+ var V = x.getX(), _ = x.getY(), Q = x.getRight(), ne = x.getX(), ue = x.getBottom(), J = x.getRight(), j = x.getWidthHalf(), Y = x.getHeightHalf(), te = S.getX(), L = S.getY(), $ = S.getRight(), k = S.getX(), q = S.getBottom(), ce = S.getRight(), pe = S.getWidthHalf(), Ae = S.getHeightHalf(), Ne = !1, _e = !1;
+ if (U === K) {
+ if (P > D)
+ return G[0] = U, G[1] = _, G[2] = K, G[3] = q, !1;
+ if (P < D)
+ return G[0] = U, G[1] = ue, G[2] = K, G[3] = L, !1;
+ } else if (P === D) {
+ if (U > K)
+ return G[0] = V, G[1] = P, G[2] = $, G[3] = D, !1;
+ if (U < K)
+ return G[0] = Q, G[1] = P, G[2] = te, G[3] = D, !1;
+ } else {
+ var tt = x.height / x.width, ct = S.height / S.width, Pe = (D - P) / (K - U), $e = void 0, Xe = void 0, rt = void 0, lt = void 0, nt = void 0, je = void 0;
+ if (-tt === Pe ? U > K ? (G[0] = ne, G[1] = ue, Ne = !0) : (G[0] = Q, G[1] = _, Ne = !0) : tt === Pe && (U > K ? (G[0] = V, G[1] = _, Ne = !0) : (G[0] = J, G[1] = ue, Ne = !0)), -ct === Pe ? K > U ? (G[2] = k, G[3] = q, _e = !0) : (G[2] = $, G[3] = L, _e = !0) : ct === Pe && (K > U ? (G[2] = te, G[3] = L, _e = !0) : (G[2] = ce, G[3] = q, _e = !0)), Ne && _e)
+ return !1;
+ if (U > K ? P > D ? ($e = this.getCardinalDirection(tt, Pe, 4), Xe = this.getCardinalDirection(ct, Pe, 2)) : ($e = this.getCardinalDirection(-tt, Pe, 3), Xe = this.getCardinalDirection(-ct, Pe, 1)) : P > D ? ($e = this.getCardinalDirection(-tt, Pe, 1), Xe = this.getCardinalDirection(-ct, Pe, 3)) : ($e = this.getCardinalDirection(tt, Pe, 2), Xe = this.getCardinalDirection(ct, Pe, 4)), !Ne)
+ switch ($e) {
+ case 1:
+ lt = _, rt = U + -Y / Pe, G[0] = rt, G[1] = lt;
+ break;
+ case 2:
+ rt = J, lt = P + j * Pe, G[0] = rt, G[1] = lt;
+ break;
+ case 3:
+ lt = ue, rt = U + Y / Pe, G[0] = rt, G[1] = lt;
+ break;
+ case 4:
+ rt = ne, lt = P + -j * Pe, G[0] = rt, G[1] = lt;
+ break;
+ }
+ if (!_e)
+ switch (Xe) {
+ case 1:
+ je = L, nt = K + -Ae / Pe, G[2] = nt, G[3] = je;
+ break;
+ case 2:
+ nt = ce, je = D + pe * Pe, G[2] = nt, G[3] = je;
+ break;
+ case 3:
+ je = q, nt = K + Ae / Pe, G[2] = nt, G[3] = je;
+ break;
+ case 4:
+ nt = k, je = D + -pe * Pe, G[2] = nt, G[3] = je;
+ break;
+ }
+ }
+ return !1;
+ }, T.getCardinalDirection = function(x, S, G) {
+ return x > S ? G : 1 + G % 4;
+ }, T.getIntersection = function(x, S, G, U) {
+ if (U == null)
+ return this.getIntersection2(x, S, G);
+ var P = x.x, K = x.y, D = S.x, V = S.y, _ = G.x, Q = G.y, ne = U.x, ue = U.y, J = void 0, j = void 0, Y = void 0, te = void 0, L = void 0, $ = void 0, k = void 0, q = void 0, ce = void 0;
+ return Y = V - K, L = P - D, k = D * K - P * V, te = ue - Q, $ = _ - ne, q = ne * Q - _ * ue, ce = Y * $ - te * L, ce === 0 ? null : (J = (L * q - $ * k) / ce, j = (te * k - Y * q) / ce, new O(J, j));
+ }, T.angleOfVector = function(x, S, G, U) {
+ var P = void 0;
+ return x !== G ? (P = Math.atan((U - S) / (G - x)), G < x ? P += Math.PI : U < S && (P += this.TWO_PI)) : U < S ? P = this.ONE_AND_HALF_PI : P = this.HALF_PI, P;
+ }, T.doIntersect = function(x, S, G, U) {
+ var P = x.x, K = x.y, D = S.x, V = S.y, _ = G.x, Q = G.y, ne = U.x, ue = U.y, J = (D - P) * (ue - Q) - (ne - _) * (V - K);
+ if (J === 0)
+ return !1;
+ var j = ((ue - Q) * (ne - P) + (_ - ne) * (ue - K)) / J, Y = ((K - V) * (ne - P) + (D - P) * (ue - K)) / J;
+ return 0 < j && j < 1 && 0 < Y && Y < 1;
+ }, T.HALF_PI = 0.5 * Math.PI, T.ONE_AND_HALF_PI = 1.5 * Math.PI, T.TWO_PI = 2 * Math.PI, T.THREE_PI = 3 * Math.PI, ee.exports = T;
+ },
+ /* 9 */
+ /***/
+ function(ee, ve, H) {
+ function O() {
+ }
+ O.sign = function(T) {
+ return T > 0 ? 1 : T < 0 ? -1 : 0;
+ }, O.floor = function(T) {
+ return T < 0 ? Math.ceil(T) : Math.floor(T);
+ }, O.ceil = function(T) {
+ return T < 0 ? Math.floor(T) : Math.ceil(T);
+ }, ee.exports = O;
+ },
+ /* 10 */
+ /***/
+ function(ee, ve, H) {
+ function O() {
+ }
+ O.MAX_VALUE = 2147483647, O.MIN_VALUE = -2147483648, ee.exports = O;
+ },
+ /* 11 */
+ /***/
+ function(ee, ve, H) {
+ var O = function() {
+ function P(K, D) {
+ for (var V = 0; V < D.length; V++) {
+ var _ = D[V];
+ _.enumerable = _.enumerable || !1, _.configurable = !0, "value" in _ && (_.writable = !0), Object.defineProperty(K, _.key, _);
+ }
+ }
+ return function(K, D, V) {
+ return D && P(K.prototype, D), V && P(K, V), K;
+ };
+ }();
+ function T(P, K) {
+ if (!(P instanceof K))
+ throw new TypeError("Cannot call a class as a function");
+ }
+ var x = function(K) {
+ return { value: K, next: null, prev: null };
+ }, S = function(K, D, V, _) {
+ return K !== null ? K.next = D : _.head = D, V !== null ? V.prev = D : _.tail = D, D.prev = K, D.next = V, _.length++, D;
+ }, G = function(K, D) {
+ var V = K.prev, _ = K.next;
+ return V !== null ? V.next = _ : D.head = _, _ !== null ? _.prev = V : D.tail = V, K.prev = K.next = null, D.length--, K;
+ }, U = function() {
+ function P(K) {
+ var D = this;
+ T(this, P), this.length = 0, this.head = null, this.tail = null, K != null && K.forEach(function(V) {
+ return D.push(V);
+ });
+ }
+ return O(P, [{
+ key: "size",
+ value: function() {
+ return this.length;
+ }
+ }, {
+ key: "insertBefore",
+ value: function(D, V) {
+ return S(V.prev, x(D), V, this);
+ }
+ }, {
+ key: "insertAfter",
+ value: function(D, V) {
+ return S(V, x(D), V.next, this);
+ }
+ }, {
+ key: "insertNodeBefore",
+ value: function(D, V) {
+ return S(V.prev, D, V, this);
+ }
+ }, {
+ key: "insertNodeAfter",
+ value: function(D, V) {
+ return S(V, D, V.next, this);
+ }
+ }, {
+ key: "push",
+ value: function(D) {
+ return S(this.tail, x(D), null, this);
+ }
+ }, {
+ key: "unshift",
+ value: function(D) {
+ return S(null, x(D), this.head, this);
+ }
+ }, {
+ key: "remove",
+ value: function(D) {
+ return G(D, this);
+ }
+ }, {
+ key: "pop",
+ value: function() {
+ return G(this.tail, this).value;
+ }
+ }, {
+ key: "popNode",
+ value: function() {
+ return G(this.tail, this);
+ }
+ }, {
+ key: "shift",
+ value: function() {
+ return G(this.head, this).value;
+ }
+ }, {
+ key: "shiftNode",
+ value: function() {
+ return G(this.head, this);
+ }
+ }, {
+ key: "get_object_at",
+ value: function(D) {
+ if (D <= this.length()) {
+ for (var V = 1, _ = this.head; V < D; )
+ _ = _.next, V++;
+ return _.value;
+ }
+ }
+ }, {
+ key: "set_object_at",
+ value: function(D, V) {
+ if (D <= this.length()) {
+ for (var _ = 1, Q = this.head; _ < D; )
+ Q = Q.next, _++;
+ Q.value = V;
+ }
+ }
+ }]), P;
+ }();
+ ee.exports = U;
+ },
+ /* 12 */
+ /***/
+ function(ee, ve, H) {
+ function O(T, x, S) {
+ this.x = null, this.y = null, T == null && x == null && S == null ? (this.x = 0, this.y = 0) : typeof T == "number" && typeof x == "number" && S == null ? (this.x = T, this.y = x) : T.constructor.name == "Point" && x == null && S == null && (S = T, this.x = S.x, this.y = S.y);
+ }
+ O.prototype.getX = function() {
+ return this.x;
+ }, O.prototype.getY = function() {
+ return this.y;
+ }, O.prototype.getLocation = function() {
+ return new O(this.x, this.y);
+ }, O.prototype.setLocation = function(T, x, S) {
+ T.constructor.name == "Point" && x == null && S == null ? (S = T, this.setLocation(S.x, S.y)) : typeof T == "number" && typeof x == "number" && S == null && (parseInt(T) == T && parseInt(x) == x ? this.move(T, x) : (this.x = Math.floor(T + 0.5), this.y = Math.floor(x + 0.5)));
+ }, O.prototype.move = function(T, x) {
+ this.x = T, this.y = x;
+ }, O.prototype.translate = function(T, x) {
+ this.x += T, this.y += x;
+ }, O.prototype.equals = function(T) {
+ if (T.constructor.name == "Point") {
+ var x = T;
+ return this.x == x.x && this.y == x.y;
+ }
+ return this == T;
+ }, O.prototype.toString = function() {
+ return new O().constructor.name + "[x=" + this.x + ",y=" + this.y + "]";
+ }, ee.exports = O;
+ },
+ /* 13 */
+ /***/
+ function(ee, ve, H) {
+ function O(T, x, S, G) {
+ this.x = 0, this.y = 0, this.width = 0, this.height = 0, T != null && x != null && S != null && G != null && (this.x = T, this.y = x, this.width = S, this.height = G);
+ }
+ O.prototype.getX = function() {
+ return this.x;
+ }, O.prototype.setX = function(T) {
+ this.x = T;
+ }, O.prototype.getY = function() {
+ return this.y;
+ }, O.prototype.setY = function(T) {
+ this.y = T;
+ }, O.prototype.getWidth = function() {
+ return this.width;
+ }, O.prototype.setWidth = function(T) {
+ this.width = T;
+ }, O.prototype.getHeight = function() {
+ return this.height;
+ }, O.prototype.setHeight = function(T) {
+ this.height = T;
+ }, O.prototype.getRight = function() {
+ return this.x + this.width;
+ }, O.prototype.getBottom = function() {
+ return this.y + this.height;
+ }, O.prototype.intersects = function(T) {
+ return !(this.getRight() < T.x || this.getBottom() < T.y || T.getRight() < this.x || T.getBottom() < this.y);
+ }, O.prototype.getCenterX = function() {
+ return this.x + this.width / 2;
+ }, O.prototype.getMinX = function() {
+ return this.getX();
+ }, O.prototype.getMaxX = function() {
+ return this.getX() + this.width;
+ }, O.prototype.getCenterY = function() {
+ return this.y + this.height / 2;
+ }, O.prototype.getMinY = function() {
+ return this.getY();
+ }, O.prototype.getMaxY = function() {
+ return this.getY() + this.height;
+ }, O.prototype.getWidthHalf = function() {
+ return this.width / 2;
+ }, O.prototype.getHeightHalf = function() {
+ return this.height / 2;
+ }, ee.exports = O;
+ },
+ /* 14 */
+ /***/
+ function(ee, ve, H) {
+ var O = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(x) {
+ return typeof x;
+ } : function(x) {
+ return x && typeof Symbol == "function" && x.constructor === Symbol && x !== Symbol.prototype ? "symbol" : typeof x;
+ };
+ function T() {
+ }
+ T.lastID = 0, T.createID = function(x) {
+ return T.isPrimitive(x) ? x : (x.uniqueID != null || (x.uniqueID = T.getString(), T.lastID++), x.uniqueID);
+ }, T.getString = function(x) {
+ return x == null && (x = T.lastID), "Object#" + x;
+ }, T.isPrimitive = function(x) {
+ var S = typeof x > "u" ? "undefined" : O(x);
+ return x == null || S != "object" && S != "function";
+ }, ee.exports = T;
+ },
+ /* 15 */
+ /***/
+ function(ee, ve, H) {
+ function O(_) {
+ if (Array.isArray(_)) {
+ for (var Q = 0, ne = Array(_.length); Q < _.length; Q++)
+ ne[Q] = _[Q];
+ return ne;
+ } else
+ return Array.from(_);
+ }
+ var T = H(0), x = H(6), S = H(3), G = H(1), U = H(5), P = H(4), K = H(17), D = H(27);
+ function V(_) {
+ D.call(this), this.layoutQuality = T.QUALITY, this.createBendsAsNeeded = T.DEFAULT_CREATE_BENDS_AS_NEEDED, this.incremental = T.DEFAULT_INCREMENTAL, this.animationOnLayout = T.DEFAULT_ANIMATION_ON_LAYOUT, this.animationDuringLayout = T.DEFAULT_ANIMATION_DURING_LAYOUT, this.animationPeriod = T.DEFAULT_ANIMATION_PERIOD, this.uniformLeafNodeSizes = T.DEFAULT_UNIFORM_LEAF_NODE_SIZES, this.edgeToDummyNodes = /* @__PURE__ */ new Map(), this.graphManager = new x(this), this.isLayoutFinished = !1, this.isSubLayout = !1, this.isRemoteUse = !1, _ != null && (this.isRemoteUse = _);
+ }
+ V.RANDOM_SEED = 1, V.prototype = Object.create(D.prototype), V.prototype.getGraphManager = function() {
+ return this.graphManager;
+ }, V.prototype.getAllNodes = function() {
+ return this.graphManager.getAllNodes();
+ }, V.prototype.getAllEdges = function() {
+ return this.graphManager.getAllEdges();
+ }, V.prototype.getAllNodesToApplyGravitation = function() {
+ return this.graphManager.getAllNodesToApplyGravitation();
+ }, V.prototype.newGraphManager = function() {
+ var _ = new x(this);
+ return this.graphManager = _, _;
+ }, V.prototype.newGraph = function(_) {
+ return new U(null, this.graphManager, _);
+ }, V.prototype.newNode = function(_) {
+ return new S(this.graphManager, _);
+ }, V.prototype.newEdge = function(_) {
+ return new G(null, null, _);
+ }, V.prototype.checkLayoutSuccess = function() {
+ return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge();
+ }, V.prototype.runLayout = function() {
+ this.isLayoutFinished = !1, this.tilingPreLayout && this.tilingPreLayout(), this.initParameters();
+ var _;
+ return this.checkLayoutSuccess() ? _ = !1 : _ = this.layout(), T.ANIMATE === "during" ? !1 : (_ && (this.isSubLayout || this.doPostLayout()), this.tilingPostLayout && this.tilingPostLayout(), this.isLayoutFinished = !0, _);
+ }, V.prototype.doPostLayout = function() {
+ this.incremental || this.transform(), this.update();
+ }, V.prototype.update2 = function() {
+ if (this.createBendsAsNeeded && (this.createBendpointsFromDummyNodes(), this.graphManager.resetAllEdges()), !this.isRemoteUse) {
+ for (var _ = this.graphManager.getAllEdges(), Q = 0; Q < _.length; Q++)
+ _[Q];
+ for (var ne = this.graphManager.getRoot().getNodes(), Q = 0; Q < ne.length; Q++)
+ ne[Q];
+ this.update(this.graphManager.getRoot());
+ }
+ }, V.prototype.update = function(_) {
+ if (_ == null)
+ this.update2();
+ else if (_ instanceof S) {
+ var Q = _;
+ if (Q.getChild() != null)
+ for (var ne = Q.getChild().getNodes(), ue = 0; ue < ne.length; ue++)
+ update(ne[ue]);
+ if (Q.vGraphObject != null) {
+ var J = Q.vGraphObject;
+ J.update(Q);
+ }
+ } else if (_ instanceof G) {
+ var j = _;
+ if (j.vGraphObject != null) {
+ var Y = j.vGraphObject;
+ Y.update(j);
+ }
+ } else if (_ instanceof U) {
+ var te = _;
+ if (te.vGraphObject != null) {
+ var L = te.vGraphObject;
+ L.update(te);
+ }
+ }
+ }, V.prototype.initParameters = function() {
+ this.isSubLayout || (this.layoutQuality = T.QUALITY, this.animationDuringLayout = T.DEFAULT_ANIMATION_DURING_LAYOUT, this.animationPeriod = T.DEFAULT_ANIMATION_PERIOD, this.animationOnLayout = T.DEFAULT_ANIMATION_ON_LAYOUT, this.incremental = T.DEFAULT_INCREMENTAL, this.createBendsAsNeeded = T.DEFAULT_CREATE_BENDS_AS_NEEDED, this.uniformLeafNodeSizes = T.DEFAULT_UNIFORM_LEAF_NODE_SIZES), this.animationDuringLayout && (this.animationOnLayout = !1);
+ }, V.prototype.transform = function(_) {
+ if (_ == null)
+ this.transform(new P(0, 0));
+ else {
+ var Q = new K(), ne = this.graphManager.getRoot().updateLeftTop();
+ if (ne != null) {
+ Q.setWorldOrgX(_.x), Q.setWorldOrgY(_.y), Q.setDeviceOrgX(ne.x), Q.setDeviceOrgY(ne.y);
+ for (var ue = this.getAllNodes(), J, j = 0; j < ue.length; j++)
+ J = ue[j], J.transform(Q);
+ }
+ }
+ }, V.prototype.positionNodesRandomly = function(_) {
+ if (_ == null)
+ this.positionNodesRandomly(this.getGraphManager().getRoot()), this.getGraphManager().getRoot().updateBounds(!0);
+ else
+ for (var Q, ne, ue = _.getNodes(), J = 0; J < ue.length; J++)
+ Q = ue[J], ne = Q.getChild(), ne == null || ne.getNodes().length == 0 ? Q.scatter() : (this.positionNodesRandomly(ne), Q.updateBounds());
+ }, V.prototype.getFlatForest = function() {
+ for (var _ = [], Q = !0, ne = this.graphManager.getRoot().getNodes(), ue = !0, J = 0; J < ne.length; J++)
+ ne[J].getChild() != null && (ue = !1);
+ if (!ue)
+ return _;
+ var j = /* @__PURE__ */ new Set(), Y = [], te = /* @__PURE__ */ new Map(), L = [];
+ for (L = L.concat(ne); L.length > 0 && Q; ) {
+ for (Y.push(L[0]); Y.length > 0 && Q; ) {
+ var $ = Y[0];
+ Y.splice(0, 1), j.add($);
+ for (var k = $.getEdges(), J = 0; J < k.length; J++) {
+ var q = k[J].getOtherEnd($);
+ if (te.get($) != q)
+ if (!j.has(q))
+ Y.push(q), te.set(q, $);
+ else {
+ Q = !1;
+ break;
+ }
+ }
+ }
+ if (!Q)
+ _ = [];
+ else {
+ var ce = [].concat(O(j));
+ _.push(ce);
+ for (var J = 0; J < ce.length; J++) {
+ var pe = ce[J], Ae = L.indexOf(pe);
+ Ae > -1 && L.splice(Ae, 1);
+ }
+ j = /* @__PURE__ */ new Set(), te = /* @__PURE__ */ new Map();
+ }
+ }
+ return _;
+ }, V.prototype.createDummyNodesForBendpoints = function(_) {
+ for (var Q = [], ne = _.source, ue = this.graphManager.calcLowestCommonAncestor(_.source, _.target), J = 0; J < _.bendpoints.length; J++) {
+ var j = this.newNode(null);
+ j.setRect(new Point(0, 0), new Dimension(1, 1)), ue.add(j);
+ var Y = this.newEdge(null);
+ this.graphManager.add(Y, ne, j), Q.add(j), ne = j;
+ }
+ var Y = this.newEdge(null);
+ return this.graphManager.add(Y, ne, _.target), this.edgeToDummyNodes.set(_, Q), _.isInterGraph() ? this.graphManager.remove(_) : ue.remove(_), Q;
+ }, V.prototype.createBendpointsFromDummyNodes = function() {
+ var _ = [];
+ _ = _.concat(this.graphManager.getAllEdges()), _ = [].concat(O(this.edgeToDummyNodes.keys())).concat(_);
+ for (var Q = 0; Q < _.length; Q++) {
+ var ne = _[Q];
+ if (ne.bendpoints.length > 0) {
+ for (var ue = this.edgeToDummyNodes.get(ne), J = 0; J < ue.length; J++) {
+ var j = ue[J], Y = new P(j.getCenterX(), j.getCenterY()), te = ne.bendpoints.get(J);
+ te.x = Y.x, te.y = Y.y, j.getOwner().remove(j);
+ }
+ this.graphManager.add(ne, ne.source, ne.target);
+ }
+ }
+ }, V.transform = function(_, Q, ne, ue) {
+ if (ne != null && ue != null) {
+ var J = Q;
+ if (_ <= 50) {
+ var j = Q / ne;
+ J -= (Q - j) / 50 * (50 - _);
+ } else {
+ var Y = Q * ue;
+ J += (Y - Q) / 50 * (_ - 50);
+ }
+ return J;
+ } else {
+ var te, L;
+ return _ <= 50 ? (te = 9 * Q / 500, L = Q / 10) : (te = 9 * Q / 50, L = -8 * Q), te * _ + L;
+ }
+ }, V.findCenterOfTree = function(_) {
+ var Q = [];
+ Q = Q.concat(_);
+ var ne = [], ue = /* @__PURE__ */ new Map(), J = !1, j = null;
+ (Q.length == 1 || Q.length == 2) && (J = !0, j = Q[0]);
+ for (var Y = 0; Y < Q.length; Y++) {
+ var te = Q[Y], L = te.getNeighborsList().size;
+ ue.set(te, te.getNeighborsList().size), L == 1 && ne.push(te);
+ }
+ var $ = [];
+ for ($ = $.concat(ne); !J; ) {
+ var k = [];
+ k = k.concat($), $ = [];
+ for (var Y = 0; Y < Q.length; Y++) {
+ var te = Q[Y], q = Q.indexOf(te);
+ q >= 0 && Q.splice(q, 1);
+ var ce = te.getNeighborsList();
+ ce.forEach(function(Ne) {
+ if (ne.indexOf(Ne) < 0) {
+ var _e = ue.get(Ne), tt = _e - 1;
+ tt == 1 && $.push(Ne), ue.set(Ne, tt);
+ }
+ });
+ }
+ ne = ne.concat($), (Q.length == 1 || Q.length == 2) && (J = !0, j = Q[0]);
+ }
+ return j;
+ }, V.prototype.setGraphManager = function(_) {
+ this.graphManager = _;
+ }, ee.exports = V;
+ },
+ /* 16 */
+ /***/
+ function(ee, ve, H) {
+ function O() {
+ }
+ O.seed = 1, O.x = 0, O.nextDouble = function() {
+ return O.x = Math.sin(O.seed++) * 1e4, O.x - Math.floor(O.x);
+ }, ee.exports = O;
+ },
+ /* 17 */
+ /***/
+ function(ee, ve, H) {
+ var O = H(4);
+ function T(x, S) {
+ this.lworldOrgX = 0, this.lworldOrgY = 0, this.ldeviceOrgX = 0, this.ldeviceOrgY = 0, this.lworldExtX = 1, this.lworldExtY = 1, this.ldeviceExtX = 1, this.ldeviceExtY = 1;
+ }
+ T.prototype.getWorldOrgX = function() {
+ return this.lworldOrgX;
+ }, T.prototype.setWorldOrgX = function(x) {
+ this.lworldOrgX = x;
+ }, T.prototype.getWorldOrgY = function() {
+ return this.lworldOrgY;
+ }, T.prototype.setWorldOrgY = function(x) {
+ this.lworldOrgY = x;
+ }, T.prototype.getWorldExtX = function() {
+ return this.lworldExtX;
+ }, T.prototype.setWorldExtX = function(x) {
+ this.lworldExtX = x;
+ }, T.prototype.getWorldExtY = function() {
+ return this.lworldExtY;
+ }, T.prototype.setWorldExtY = function(x) {
+ this.lworldExtY = x;
+ }, T.prototype.getDeviceOrgX = function() {
+ return this.ldeviceOrgX;
+ }, T.prototype.setDeviceOrgX = function(x) {
+ this.ldeviceOrgX = x;
+ }, T.prototype.getDeviceOrgY = function() {
+ return this.ldeviceOrgY;
+ }, T.prototype.setDeviceOrgY = function(x) {
+ this.ldeviceOrgY = x;
+ }, T.prototype.getDeviceExtX = function() {
+ return this.ldeviceExtX;
+ }, T.prototype.setDeviceExtX = function(x) {
+ this.ldeviceExtX = x;
+ }, T.prototype.getDeviceExtY = function() {
+ return this.ldeviceExtY;
+ }, T.prototype.setDeviceExtY = function(x) {
+ this.ldeviceExtY = x;
+ }, T.prototype.transformX = function(x) {
+ var S = 0, G = this.lworldExtX;
+ return G != 0 && (S = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / G), S;
+ }, T.prototype.transformY = function(x) {
+ var S = 0, G = this.lworldExtY;
+ return G != 0 && (S = this.ldeviceOrgY + (x - this.lworldOrgY) * this.ldeviceExtY / G), S;
+ }, T.prototype.inverseTransformX = function(x) {
+ var S = 0, G = this.ldeviceExtX;
+ return G != 0 && (S = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / G), S;
+ }, T.prototype.inverseTransformY = function(x) {
+ var S = 0, G = this.ldeviceExtY;
+ return G != 0 && (S = this.lworldOrgY + (x - this.ldeviceOrgY) * this.lworldExtY / G), S;
+ }, T.prototype.inverseTransformPoint = function(x) {
+ var S = new O(this.inverseTransformX(x.x), this.inverseTransformY(x.y));
+ return S;
+ }, ee.exports = T;
+ },
+ /* 18 */
+ /***/
+ function(ee, ve, H) {
+ function O(D) {
+ if (Array.isArray(D)) {
+ for (var V = 0, _ = Array(D.length); V < D.length; V++)
+ _[V] = D[V];
+ return _;
+ } else
+ return Array.from(D);
+ }
+ var T = H(15), x = H(7), S = H(0), G = H(8), U = H(9);
+ function P() {
+ T.call(this), this.useSmartIdealEdgeLengthCalculation = x.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION, this.idealEdgeLength = x.DEFAULT_EDGE_LENGTH, this.springConstant = x.DEFAULT_SPRING_STRENGTH, this.repulsionConstant = x.DEFAULT_REPULSION_STRENGTH, this.gravityConstant = x.DEFAULT_GRAVITY_STRENGTH, this.compoundGravityConstant = x.DEFAULT_COMPOUND_GRAVITY_STRENGTH, this.gravityRangeFactor = x.DEFAULT_GRAVITY_RANGE_FACTOR, this.compoundGravityRangeFactor = x.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR, this.displacementThresholdPerNode = 3 * x.DEFAULT_EDGE_LENGTH / 100, this.coolingFactor = x.DEFAULT_COOLING_FACTOR_INCREMENTAL, this.initialCoolingFactor = x.DEFAULT_COOLING_FACTOR_INCREMENTAL, this.totalDisplacement = 0, this.oldTotalDisplacement = 0, this.maxIterations = x.MAX_ITERATIONS;
+ }
+ P.prototype = Object.create(T.prototype);
+ for (var K in T)
+ P[K] = T[K];
+ P.prototype.initParameters = function() {
+ T.prototype.initParameters.call(this, arguments), this.totalIterations = 0, this.notAnimatedIterations = 0, this.useFRGridVariant = x.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION, this.grid = [];
+ }, P.prototype.calcIdealEdgeLengths = function() {
+ for (var D, V, _, Q, ne, ue, J = this.getGraphManager().getAllEdges(), j = 0; j < J.length; j++)
+ D = J[j], D.idealLength = this.idealEdgeLength, D.isInterGraph && (_ = D.getSource(), Q = D.getTarget(), ne = D.getSourceInLca().getEstimatedSize(), ue = D.getTargetInLca().getEstimatedSize(), this.useSmartIdealEdgeLengthCalculation && (D.idealLength += ne + ue - 2 * S.SIMPLE_NODE_SIZE), V = D.getLca().getInclusionTreeDepth(), D.idealLength += x.DEFAULT_EDGE_LENGTH * x.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (_.getInclusionTreeDepth() + Q.getInclusionTreeDepth() - 2 * V));
+ }, P.prototype.initSpringEmbedder = function() {
+ var D = this.getAllNodes().length;
+ this.incremental ? (D > x.ADAPTATION_LOWER_NODE_LIMIT && (this.coolingFactor = Math.max(this.coolingFactor * x.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (D - x.ADAPTATION_LOWER_NODE_LIMIT) / (x.ADAPTATION_UPPER_NODE_LIMIT - x.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - x.COOLING_ADAPTATION_FACTOR))), this.maxNodeDisplacement = x.MAX_NODE_DISPLACEMENT_INCREMENTAL) : (D > x.ADAPTATION_LOWER_NODE_LIMIT ? this.coolingFactor = Math.max(x.COOLING_ADAPTATION_FACTOR, 1 - (D - x.ADAPTATION_LOWER_NODE_LIMIT) / (x.ADAPTATION_UPPER_NODE_LIMIT - x.ADAPTATION_LOWER_NODE_LIMIT) * (1 - x.COOLING_ADAPTATION_FACTOR)) : this.coolingFactor = 1, this.initialCoolingFactor = this.coolingFactor, this.maxNodeDisplacement = x.MAX_NODE_DISPLACEMENT), this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations), this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length, this.repulsionRange = this.calcRepulsionRange();
+ }, P.prototype.calcSpringForces = function() {
+ for (var D = this.getAllEdges(), V, _ = 0; _ < D.length; _++)
+ V = D[_], this.calcSpringForce(V, V.idealLength);
+ }, P.prototype.calcRepulsionForces = function() {
+ var D = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0, V = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, _, Q, ne, ue, J = this.getAllNodes(), j;
+ if (this.useFRGridVariant)
+ for (this.totalIterations % x.GRID_CALCULATION_CHECK_PERIOD == 1 && D && this.updateGrid(), j = /* @__PURE__ */ new Set(), _ = 0; _ < J.length; _++)
+ ne = J[_], this.calculateRepulsionForceOfANode(ne, j, D, V), j.add(ne);
+ else
+ for (_ = 0; _ < J.length; _++)
+ for (ne = J[_], Q = _ + 1; Q < J.length; Q++)
+ ue = J[Q], ne.getOwner() == ue.getOwner() && this.calcRepulsionForce(ne, ue);
+ }, P.prototype.calcGravitationalForces = function() {
+ for (var D, V = this.getAllNodesToApplyGravitation(), _ = 0; _ < V.length; _++)
+ D = V[_], this.calcGravitationalForce(D);
+ }, P.prototype.moveNodes = function() {
+ for (var D = this.getAllNodes(), V, _ = 0; _ < D.length; _++)
+ V = D[_], V.move();
+ }, P.prototype.calcSpringForce = function(D, V) {
+ var _ = D.getSource(), Q = D.getTarget(), ne, ue, J, j;
+ if (this.uniformLeafNodeSizes && _.getChild() == null && Q.getChild() == null)
+ D.updateLengthSimple();
+ else if (D.updateLength(), D.isOverlapingSourceAndTarget)
+ return;
+ ne = D.getLength(), ne != 0 && (ue = this.springConstant * (ne - V), J = ue * (D.lengthX / ne), j = ue * (D.lengthY / ne), _.springForceX += J, _.springForceY += j, Q.springForceX -= J, Q.springForceY -= j);
+ }, P.prototype.calcRepulsionForce = function(D, V) {
+ var _ = D.getRect(), Q = V.getRect(), ne = new Array(2), ue = new Array(4), J, j, Y, te, L, $, k;
+ if (_.intersects(Q)) {
+ G.calcSeparationAmount(_, Q, ne, x.DEFAULT_EDGE_LENGTH / 2), $ = 2 * ne[0], k = 2 * ne[1];
+ var q = D.noOfChildren * V.noOfChildren / (D.noOfChildren + V.noOfChildren);
+ D.repulsionForceX -= q * $, D.repulsionForceY -= q * k, V.repulsionForceX += q * $, V.repulsionForceY += q * k;
+ } else
+ this.uniformLeafNodeSizes && D.getChild() == null && V.getChild() == null ? (J = Q.getCenterX() - _.getCenterX(), j = Q.getCenterY() - _.getCenterY()) : (G.getIntersection(_, Q, ue), J = ue[2] - ue[0], j = ue[3] - ue[1]), Math.abs(J) < x.MIN_REPULSION_DIST && (J = U.sign(J) * x.MIN_REPULSION_DIST), Math.abs(j) < x.MIN_REPULSION_DIST && (j = U.sign(j) * x.MIN_REPULSION_DIST), Y = J * J + j * j, te = Math.sqrt(Y), L = this.repulsionConstant * D.noOfChildren * V.noOfChildren / Y, $ = L * J / te, k = L * j / te, D.repulsionForceX -= $, D.repulsionForceY -= k, V.repulsionForceX += $, V.repulsionForceY += k;
+ }, P.prototype.calcGravitationalForce = function(D) {
+ var V, _, Q, ne, ue, J, j, Y;
+ V = D.getOwner(), _ = (V.getRight() + V.getLeft()) / 2, Q = (V.getTop() + V.getBottom()) / 2, ne = D.getCenterX() - _, ue = D.getCenterY() - Q, J = Math.abs(ne) + D.getWidth() / 2, j = Math.abs(ue) + D.getHeight() / 2, D.getOwner() == this.graphManager.getRoot() ? (Y = V.getEstimatedSize() * this.gravityRangeFactor, (J > Y || j > Y) && (D.gravitationForceX = -this.gravityConstant * ne, D.gravitationForceY = -this.gravityConstant * ue)) : (Y = V.getEstimatedSize() * this.compoundGravityRangeFactor, (J > Y || j > Y) && (D.gravitationForceX = -this.gravityConstant * ne * this.compoundGravityConstant, D.gravitationForceY = -this.gravityConstant * ue * this.compoundGravityConstant));
+ }, P.prototype.isConverged = function() {
+ var D, V = !1;
+ return this.totalIterations > this.maxIterations / 3 && (V = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2), D = this.totalDisplacement < this.totalDisplacementThreshold, this.oldTotalDisplacement = this.totalDisplacement, D || V;
+ }, P.prototype.animate = function() {
+ this.animationDuringLayout && !this.isSubLayout && (this.notAnimatedIterations == this.animationPeriod ? (this.update(), this.notAnimatedIterations = 0) : this.notAnimatedIterations++);
+ }, P.prototype.calcNoOfChildrenForAllNodes = function() {
+ for (var D, V = this.graphManager.getAllNodes(), _ = 0; _ < V.length; _++)
+ D = V[_], D.noOfChildren = D.getNoOfChildren();
+ }, P.prototype.calcGrid = function(D) {
+ var V = 0, _ = 0;
+ V = parseInt(Math.ceil((D.getRight() - D.getLeft()) / this.repulsionRange)), _ = parseInt(Math.ceil((D.getBottom() - D.getTop()) / this.repulsionRange));
+ for (var Q = new Array(V), ne = 0; ne < V; ne++)
+ Q[ne] = new Array(_);
+ for (var ne = 0; ne < V; ne++)
+ for (var ue = 0; ue < _; ue++)
+ Q[ne][ue] = new Array();
+ return Q;
+ }, P.prototype.addNodeToGrid = function(D, V, _) {
+ var Q = 0, ne = 0, ue = 0, J = 0;
+ Q = parseInt(Math.floor((D.getRect().x - V) / this.repulsionRange)), ne = parseInt(Math.floor((D.getRect().width + D.getRect().x - V) / this.repulsionRange)), ue = parseInt(Math.floor((D.getRect().y - _) / this.repulsionRange)), J = parseInt(Math.floor((D.getRect().height + D.getRect().y - _) / this.repulsionRange));
+ for (var j = Q; j <= ne; j++)
+ for (var Y = ue; Y <= J; Y++)
+ this.grid[j][Y].push(D), D.setGridCoordinates(Q, ne, ue, J);
+ }, P.prototype.updateGrid = function() {
+ var D, V, _ = this.getAllNodes();
+ for (this.grid = this.calcGrid(this.graphManager.getRoot()), D = 0; D < _.length; D++)
+ V = _[D], this.addNodeToGrid(V, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop());
+ }, P.prototype.calculateRepulsionForceOfANode = function(D, V, _, Q) {
+ if (this.totalIterations % x.GRID_CALCULATION_CHECK_PERIOD == 1 && _ || Q) {
+ var ne = /* @__PURE__ */ new Set();
+ D.surrounding = new Array();
+ for (var ue, J = this.grid, j = D.startX - 1; j < D.finishX + 2; j++)
+ for (var Y = D.startY - 1; Y < D.finishY + 2; Y++)
+ if (!(j < 0 || Y < 0 || j >= J.length || Y >= J[0].length)) {
+ for (var te = 0; te < J[j][Y].length; te++)
+ if (ue = J[j][Y][te], !(D.getOwner() != ue.getOwner() || D == ue) && !V.has(ue) && !ne.has(ue)) {
+ var L = Math.abs(D.getCenterX() - ue.getCenterX()) - (D.getWidth() / 2 + ue.getWidth() / 2), $ = Math.abs(D.getCenterY() - ue.getCenterY()) - (D.getHeight() / 2 + ue.getHeight() / 2);
+ L <= this.repulsionRange && $ <= this.repulsionRange && ne.add(ue);
+ }
+ }
+ D.surrounding = [].concat(O(ne));
+ }
+ for (j = 0; j < D.surrounding.length; j++)
+ this.calcRepulsionForce(D, D.surrounding[j]);
+ }, P.prototype.calcRepulsionRange = function() {
+ return 0;
+ }, ee.exports = P;
+ },
+ /* 19 */
+ /***/
+ function(ee, ve, H) {
+ var O = H(1), T = H(7);
+ function x(G, U, P) {
+ O.call(this, G, U, P), this.idealLength = T.DEFAULT_EDGE_LENGTH;
+ }
+ x.prototype = Object.create(O.prototype);
+ for (var S in O)
+ x[S] = O[S];
+ ee.exports = x;
+ },
+ /* 20 */
+ /***/
+ function(ee, ve, H) {
+ var O = H(3);
+ function T(S, G, U, P) {
+ O.call(this, S, G, U, P), this.springForceX = 0, this.springForceY = 0, this.repulsionForceX = 0, this.repulsionForceY = 0, this.gravitationForceX = 0, this.gravitationForceY = 0, this.displacementX = 0, this.displacementY = 0, this.startX = 0, this.finishX = 0, this.startY = 0, this.finishY = 0, this.surrounding = [];
+ }
+ T.prototype = Object.create(O.prototype);
+ for (var x in O)
+ T[x] = O[x];
+ T.prototype.setGridCoordinates = function(S, G, U, P) {
+ this.startX = S, this.finishX = G, this.startY = U, this.finishY = P;
+ }, ee.exports = T;
+ },
+ /* 21 */
+ /***/
+ function(ee, ve, H) {
+ function O(T, x) {
+ this.width = 0, this.height = 0, T !== null && x !== null && (this.height = x, this.width = T);
+ }
+ O.prototype.getWidth = function() {
+ return this.width;
+ }, O.prototype.setWidth = function(T) {
+ this.width = T;
+ }, O.prototype.getHeight = function() {
+ return this.height;
+ }, O.prototype.setHeight = function(T) {
+ this.height = T;
+ }, ee.exports = O;
+ },
+ /* 22 */
+ /***/
+ function(ee, ve, H) {
+ var O = H(14);
+ function T() {
+ this.map = {}, this.keys = [];
+ }
+ T.prototype.put = function(x, S) {
+ var G = O.createID(x);
+ this.contains(G) || (this.map[G] = S, this.keys.push(x));
+ }, T.prototype.contains = function(x) {
+ return O.createID(x), this.map[x] != null;
+ }, T.prototype.get = function(x) {
+ var S = O.createID(x);
+ return this.map[S];
+ }, T.prototype.keySet = function() {
+ return this.keys;
+ }, ee.exports = T;
+ },
+ /* 23 */
+ /***/
+ function(ee, ve, H) {
+ var O = H(14);
+ function T() {
+ this.set = {};
+ }
+ T.prototype.add = function(x) {
+ var S = O.createID(x);
+ this.contains(S) || (this.set[S] = x);
+ }, T.prototype.remove = function(x) {
+ delete this.set[O.createID(x)];
+ }, T.prototype.clear = function() {
+ this.set = {};
+ }, T.prototype.contains = function(x) {
+ return this.set[O.createID(x)] == x;
+ }, T.prototype.isEmpty = function() {
+ return this.size() === 0;
+ }, T.prototype.size = function() {
+ return Object.keys(this.set).length;
+ }, T.prototype.addAllTo = function(x) {
+ for (var S = Object.keys(this.set), G = S.length, U = 0; U < G; U++)
+ x.push(this.set[S[U]]);
+ }, T.prototype.size = function() {
+ return Object.keys(this.set).length;
+ }, T.prototype.addAll = function(x) {
+ for (var S = x.length, G = 0; G < S; G++) {
+ var U = x[G];
+ this.add(U);
+ }
+ }, ee.exports = T;
+ },
+ /* 24 */
+ /***/
+ function(ee, ve, H) {
+ var O = function() {
+ function G(U, P) {
+ for (var K = 0; K < P.length; K++) {
+ var D = P[K];
+ D.enumerable = D.enumerable || !1, D.configurable = !0, "value" in D && (D.writable = !0), Object.defineProperty(U, D.key, D);
+ }
+ }
+ return function(U, P, K) {
+ return P && G(U.prototype, P), K && G(U, K), U;
+ };
+ }();
+ function T(G, U) {
+ if (!(G instanceof U))
+ throw new TypeError("Cannot call a class as a function");
+ }
+ var x = H(11), S = function() {
+ function G(U, P) {
+ T(this, G), (P !== null || P !== void 0) && (this.compareFunction = this._defaultCompareFunction);
+ var K = void 0;
+ U instanceof x ? K = U.size() : K = U.length, this._quicksort(U, 0, K - 1);
+ }
+ return O(G, [{
+ key: "_quicksort",
+ value: function(P, K, D) {
+ if (K < D) {
+ var V = this._partition(P, K, D);
+ this._quicksort(P, K, V), this._quicksort(P, V + 1, D);
+ }
+ }
+ }, {
+ key: "_partition",
+ value: function(P, K, D) {
+ for (var V = this._get(P, K), _ = K, Q = D; ; ) {
+ for (; this.compareFunction(V, this._get(P, Q)); )
+ Q--;
+ for (; this.compareFunction(this._get(P, _), V); )
+ _++;
+ if (_ < Q)
+ this._swap(P, _, Q), _++, Q--;
+ else
+ return Q;
+ }
+ }
+ }, {
+ key: "_get",
+ value: function(P, K) {
+ return P instanceof x ? P.get_object_at(K) : P[K];
+ }
+ }, {
+ key: "_set",
+ value: function(P, K, D) {
+ P instanceof x ? P.set_object_at(K, D) : P[K] = D;
+ }
+ }, {
+ key: "_swap",
+ value: function(P, K, D) {
+ var V = this._get(P, K);
+ this._set(P, K, this._get(P, D)), this._set(P, D, V);
+ }
+ }, {
+ key: "_defaultCompareFunction",
+ value: function(P, K) {
+ return K > P;
+ }
+ }]), G;
+ }();
+ ee.exports = S;
+ },
+ /* 25 */
+ /***/
+ function(ee, ve, H) {
+ var O = function() {
+ function S(G, U) {
+ for (var P = 0; P < U.length; P++) {
+ var K = U[P];
+ K.enumerable = K.enumerable || !1, K.configurable = !0, "value" in K && (K.writable = !0), Object.defineProperty(G, K.key, K);
+ }
+ }
+ return function(G, U, P) {
+ return U && S(G.prototype, U), P && S(G, P), G;
+ };
+ }();
+ function T(S, G) {
+ if (!(S instanceof G))
+ throw new TypeError("Cannot call a class as a function");
+ }
+ var x = function() {
+ function S(G, U) {
+ var P = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1, K = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : -1, D = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : -1;
+ T(this, S), this.sequence1 = G, this.sequence2 = U, this.match_score = P, this.mismatch_penalty = K, this.gap_penalty = D, this.iMax = G.length + 1, this.jMax = U.length + 1, this.grid = new Array(this.iMax);
+ for (var V = 0; V < this.iMax; V++) {
+ this.grid[V] = new Array(this.jMax);
+ for (var _ = 0; _ < this.jMax; _++)
+ this.grid[V][_] = 0;
+ }
+ this.tracebackGrid = new Array(this.iMax);
+ for (var Q = 0; Q < this.iMax; Q++) {
+ this.tracebackGrid[Q] = new Array(this.jMax);
+ for (var ne = 0; ne < this.jMax; ne++)
+ this.tracebackGrid[Q][ne] = [null, null, null];
+ }
+ this.alignments = [], this.score = -1, this.computeGrids();
+ }
+ return O(S, [{
+ key: "getScore",
+ value: function() {
+ return this.score;
+ }
+ }, {
+ key: "getAlignments",
+ value: function() {
+ return this.alignments;
+ }
+ // Main dynamic programming procedure
+ }, {
+ key: "computeGrids",
+ value: function() {
+ for (var U = 1; U < this.jMax; U++)
+ this.grid[0][U] = this.grid[0][U - 1] + this.gap_penalty, this.tracebackGrid[0][U] = [!1, !1, !0];
+ for (var P = 1; P < this.iMax; P++)
+ this.grid[P][0] = this.grid[P - 1][0] + this.gap_penalty, this.tracebackGrid[P][0] = [!1, !0, !1];
+ for (var K = 1; K < this.iMax; K++)
+ for (var D = 1; D < this.jMax; D++) {
+ var V = void 0;
+ this.sequence1[K - 1] === this.sequence2[D - 1] ? V = this.grid[K - 1][D - 1] + this.match_score : V = this.grid[K - 1][D - 1] + this.mismatch_penalty;
+ var _ = this.grid[K - 1][D] + this.gap_penalty, Q = this.grid[K][D - 1] + this.gap_penalty, ne = [V, _, Q], ue = this.arrayAllMaxIndexes(ne);
+ this.grid[K][D] = ne[ue[0]], this.tracebackGrid[K][D] = [ue.includes(0), ue.includes(1), ue.includes(2)];
+ }
+ this.score = this.grid[this.iMax - 1][this.jMax - 1];
+ }
+ // Gets all possible valid sequence combinations
+ }, {
+ key: "alignmentTraceback",
+ value: function() {
+ var U = [];
+ for (U.push({
+ pos: [this.sequence1.length, this.sequence2.length],
+ seq1: "",
+ seq2: ""
+ }); U[0]; ) {
+ var P = U[0], K = this.tracebackGrid[P.pos[0]][P.pos[1]];
+ K[0] && U.push({
+ pos: [P.pos[0] - 1, P.pos[1] - 1],
+ seq1: this.sequence1[P.pos[0] - 1] + P.seq1,
+ seq2: this.sequence2[P.pos[1] - 1] + P.seq2
+ }), K[1] && U.push({
+ pos: [P.pos[0] - 1, P.pos[1]],
+ seq1: this.sequence1[P.pos[0] - 1] + P.seq1,
+ seq2: "-" + P.seq2
+ }), K[2] && U.push({
+ pos: [P.pos[0], P.pos[1] - 1],
+ seq1: "-" + P.seq1,
+ seq2: this.sequence2[P.pos[1] - 1] + P.seq2
+ }), P.pos[0] === 0 && P.pos[1] === 0 && this.alignments.push({
+ sequence1: P.seq1,
+ sequence2: P.seq2
+ }), U.shift();
+ }
+ return this.alignments;
+ }
+ // Helper Functions
+ }, {
+ key: "getAllIndexes",
+ value: function(U, P) {
+ for (var K = [], D = -1; (D = U.indexOf(P, D + 1)) !== -1; )
+ K.push(D);
+ return K;
+ }
+ }, {
+ key: "arrayAllMaxIndexes",
+ value: function(U) {
+ return this.getAllIndexes(U, Math.max.apply(null, U));
+ }
+ }]), S;
+ }();
+ ee.exports = x;
+ },
+ /* 26 */
+ /***/
+ function(ee, ve, H) {
+ var O = function() {
+ };
+ O.FDLayout = H(18), O.FDLayoutConstants = H(7), O.FDLayoutEdge = H(19), O.FDLayoutNode = H(20), O.DimensionD = H(21), O.HashMap = H(22), O.HashSet = H(23), O.IGeometry = H(8), O.IMath = H(9), O.Integer = H(10), O.Point = H(12), O.PointD = H(4), O.RandomSeed = H(16), O.RectangleD = H(13), O.Transform = H(17), O.UniqueIDGeneretor = H(14), O.Quicksort = H(24), O.LinkedList = H(11), O.LGraphObject = H(2), O.LGraph = H(5), O.LEdge = H(1), O.LGraphManager = H(6), O.LNode = H(3), O.Layout = H(15), O.LayoutConstants = H(0), O.NeedlemanWunsch = H(25), ee.exports = O;
+ },
+ /* 27 */
+ /***/
+ function(ee, ve, H) {
+ function O() {
+ this.listeners = [];
+ }
+ var T = O.prototype;
+ T.addListener = function(x, S) {
+ this.listeners.push({
+ event: x,
+ callback: S
+ });
+ }, T.removeListener = function(x, S) {
+ for (var G = this.listeners.length; G >= 0; G--) {
+ var U = this.listeners[G];
+ U.event === x && U.callback === S && this.listeners.splice(G, 1);
+ }
+ }, T.emit = function(x, S) {
+ for (var G = 0; G < this.listeners.length; G++) {
+ var U = this.listeners[G];
+ x === U.event && U.callback(S);
+ }
+ }, ee.exports = O;
+ }
+ /******/
+ ])
+ );
+ });
+ }(Kp)), ri;
+}
+var _u;
+function Qp() {
+ return _u || (_u = 1, function(he, fe) {
+ (function(ve, H) {
+ he.exports = H(Zp());
+ })(Ca, function(ee) {
+ return (
+ /******/
+ function(ve) {
+ var H = {};
+ function O(T) {
+ if (H[T])
+ return H[T].exports;
+ var x = H[T] = {
+ /******/
+ i: T,
+ /******/
+ l: !1,
+ /******/
+ exports: {}
+ /******/
+ };
+ return ve[T].call(x.exports, x, x.exports, O), x.l = !0, x.exports;
+ }
+ return O.m = ve, O.c = H, O.i = function(T) {
+ return T;
+ }, O.d = function(T, x, S) {
+ O.o(T, x) || Object.defineProperty(T, x, {
+ /******/
+ configurable: !1,
+ /******/
+ enumerable: !0,
+ /******/
+ get: S
+ /******/
+ });
+ }, O.n = function(T) {
+ var x = T && T.__esModule ? (
+ /******/
+ function() {
+ return T.default;
+ }
+ ) : (
+ /******/
+ function() {
+ return T;
+ }
+ );
+ return O.d(x, "a", x), x;
+ }, O.o = function(T, x) {
+ return Object.prototype.hasOwnProperty.call(T, x);
+ }, O.p = "", O(O.s = 7);
+ }([
+ /* 0 */
+ /***/
+ function(ve, H) {
+ ve.exports = ee;
+ },
+ /* 1 */
+ /***/
+ function(ve, H, O) {
+ var T = O(0).FDLayoutConstants;
+ function x() {
+ }
+ for (var S in T)
+ x[S] = T[S];
+ x.DEFAULT_USE_MULTI_LEVEL_SCALING = !1, x.DEFAULT_RADIAL_SEPARATION = T.DEFAULT_EDGE_LENGTH, x.DEFAULT_COMPONENT_SEPERATION = 60, x.TILE = !0, x.TILING_PADDING_VERTICAL = 10, x.TILING_PADDING_HORIZONTAL = 10, x.TREE_REDUCTION_ON_INCREMENTAL = !1, ve.exports = x;
+ },
+ /* 2 */
+ /***/
+ function(ve, H, O) {
+ var T = O(0).FDLayoutEdge;
+ function x(G, U, P) {
+ T.call(this, G, U, P);
+ }
+ x.prototype = Object.create(T.prototype);
+ for (var S in T)
+ x[S] = T[S];
+ ve.exports = x;
+ },
+ /* 3 */
+ /***/
+ function(ve, H, O) {
+ var T = O(0).LGraph;
+ function x(G, U, P) {
+ T.call(this, G, U, P);
+ }
+ x.prototype = Object.create(T.prototype);
+ for (var S in T)
+ x[S] = T[S];
+ ve.exports = x;
+ },
+ /* 4 */
+ /***/
+ function(ve, H, O) {
+ var T = O(0).LGraphManager;
+ function x(G) {
+ T.call(this, G);
+ }
+ x.prototype = Object.create(T.prototype);
+ for (var S in T)
+ x[S] = T[S];
+ ve.exports = x;
+ },
+ /* 5 */
+ /***/
+ function(ve, H, O) {
+ var T = O(0).FDLayoutNode, x = O(0).IMath;
+ function S(U, P, K, D) {
+ T.call(this, U, P, K, D);
+ }
+ S.prototype = Object.create(T.prototype);
+ for (var G in T)
+ S[G] = T[G];
+ S.prototype.move = function() {
+ var U = this.graphManager.getLayout();
+ this.displacementX = U.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren, this.displacementY = U.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren, Math.abs(this.displacementX) > U.coolingFactor * U.maxNodeDisplacement && (this.displacementX = U.coolingFactor * U.maxNodeDisplacement * x.sign(this.displacementX)), Math.abs(this.displacementY) > U.coolingFactor * U.maxNodeDisplacement && (this.displacementY = U.coolingFactor * U.maxNodeDisplacement * x.sign(this.displacementY)), this.child == null ? this.moveBy(this.displacementX, this.displacementY) : this.child.getNodes().length == 0 ? this.moveBy(this.displacementX, this.displacementY) : this.propogateDisplacementToChildren(this.displacementX, this.displacementY), U.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY), this.springForceX = 0, this.springForceY = 0, this.repulsionForceX = 0, this.repulsionForceY = 0, this.gravitationForceX = 0, this.gravitationForceY = 0, this.displacementX = 0, this.displacementY = 0;
+ }, S.prototype.propogateDisplacementToChildren = function(U, P) {
+ for (var K = this.getChild().getNodes(), D, V = 0; V < K.length; V++)
+ D = K[V], D.getChild() == null ? (D.moveBy(U, P), D.displacementX += U, D.displacementY += P) : D.propogateDisplacementToChildren(U, P);
+ }, S.prototype.setPred1 = function(U) {
+ this.pred1 = U;
+ }, S.prototype.getPred1 = function() {
+ return pred1;
+ }, S.prototype.getPred2 = function() {
+ return pred2;
+ }, S.prototype.setNext = function(U) {
+ this.next = U;
+ }, S.prototype.getNext = function() {
+ return next;
+ }, S.prototype.setProcessed = function(U) {
+ this.processed = U;
+ }, S.prototype.isProcessed = function() {
+ return processed;
+ }, ve.exports = S;
+ },
+ /* 6 */
+ /***/
+ function(ve, H, O) {
+ var T = O(0).FDLayout, x = O(4), S = O(3), G = O(5), U = O(2), P = O(1), K = O(0).FDLayoutConstants, D = O(0).LayoutConstants, V = O(0).Point, _ = O(0).PointD, Q = O(0).Layout, ne = O(0).Integer, ue = O(0).IGeometry, J = O(0).LGraph, j = O(0).Transform;
+ function Y() {
+ T.call(this), this.toBeTiled = {};
+ }
+ Y.prototype = Object.create(T.prototype);
+ for (var te in T)
+ Y[te] = T[te];
+ Y.prototype.newGraphManager = function() {
+ var L = new x(this);
+ return this.graphManager = L, L;
+ }, Y.prototype.newGraph = function(L) {
+ return new S(null, this.graphManager, L);
+ }, Y.prototype.newNode = function(L) {
+ return new G(this.graphManager, L);
+ }, Y.prototype.newEdge = function(L) {
+ return new U(null, null, L);
+ }, Y.prototype.initParameters = function() {
+ T.prototype.initParameters.call(this, arguments), this.isSubLayout || (P.DEFAULT_EDGE_LENGTH < 10 ? this.idealEdgeLength = 10 : this.idealEdgeLength = P.DEFAULT_EDGE_LENGTH, this.useSmartIdealEdgeLengthCalculation = P.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION, this.springConstant = K.DEFAULT_SPRING_STRENGTH, this.repulsionConstant = K.DEFAULT_REPULSION_STRENGTH, this.gravityConstant = K.DEFAULT_GRAVITY_STRENGTH, this.compoundGravityConstant = K.DEFAULT_COMPOUND_GRAVITY_STRENGTH, this.gravityRangeFactor = K.DEFAULT_GRAVITY_RANGE_FACTOR, this.compoundGravityRangeFactor = K.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR, this.prunedNodesAll = [], this.growTreeIterations = 0, this.afterGrowthIterations = 0, this.isTreeGrowing = !1, this.isGrowthFinished = !1, this.coolingCycle = 0, this.maxCoolingCycle = this.maxIterations / K.CONVERGENCE_CHECK_PERIOD, this.finalTemperature = K.CONVERGENCE_CHECK_PERIOD / this.maxIterations, this.coolingAdjuster = 1);
+ }, Y.prototype.layout = function() {
+ var L = D.DEFAULT_CREATE_BENDS_AS_NEEDED;
+ return L && (this.createBendpoints(), this.graphManager.resetAllEdges()), this.level = 0, this.classicLayout();
+ }, Y.prototype.classicLayout = function() {
+ if (this.nodesWithGravity = this.calculateNodesToApplyGravitationTo(), this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity), this.calcNoOfChildrenForAllNodes(), this.graphManager.calcLowestCommonAncestors(), this.graphManager.calcInclusionTreeDepths(), this.graphManager.getRoot().calcEstimatedSize(), this.calcIdealEdgeLengths(), this.incremental) {
+ if (P.TREE_REDUCTION_ON_INCREMENTAL) {
+ this.reduceTrees(), this.graphManager.resetAllNodesToApplyGravitation();
+ var $ = new Set(this.getAllNodes()), k = this.nodesWithGravity.filter(function(pe) {
+ return $.has(pe);
+ });
+ this.graphManager.setAllNodesToApplyGravitation(k);
+ }
+ } else {
+ var L = this.getFlatForest();
+ if (L.length > 0)
+ this.positionNodesRadially(L);
+ else {
+ this.reduceTrees(), this.graphManager.resetAllNodesToApplyGravitation();
+ var $ = new Set(this.getAllNodes()), k = this.nodesWithGravity.filter(function(q) {
+ return $.has(q);
+ });
+ this.graphManager.setAllNodesToApplyGravitation(k), this.positionNodesRandomly();
+ }
+ }
+ return this.initSpringEmbedder(), this.runSpringEmbedder(), !0;
+ }, Y.prototype.tick = function() {
+ if (this.totalIterations++, this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished)
+ if (this.prunedNodesAll.length > 0)
+ this.isTreeGrowing = !0;
+ else
+ return !0;
+ if (this.totalIterations % K.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {
+ if (this.isConverged())
+ if (this.prunedNodesAll.length > 0)
+ this.isTreeGrowing = !0;
+ else
+ return !0;
+ this.coolingCycle++, this.layoutQuality == 0 ? this.coolingAdjuster = this.coolingCycle : this.layoutQuality == 1 && (this.coolingAdjuster = this.coolingCycle / 3), this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature), this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));
+ }
+ if (this.isTreeGrowing) {
+ if (this.growTreeIterations % 10 == 0)
+ if (this.prunedNodesAll.length > 0) {
+ this.graphManager.updateBounds(), this.updateGrid(), this.growTree(this.prunedNodesAll), this.graphManager.resetAllNodesToApplyGravitation();
+ var L = new Set(this.getAllNodes()), $ = this.nodesWithGravity.filter(function(ce) {
+ return L.has(ce);
+ });
+ this.graphManager.setAllNodesToApplyGravitation($), this.graphManager.updateBounds(), this.updateGrid(), this.coolingFactor = K.DEFAULT_COOLING_FACTOR_INCREMENTAL;
+ } else
+ this.isTreeGrowing = !1, this.isGrowthFinished = !0;
+ this.growTreeIterations++;
+ }
+ if (this.isGrowthFinished) {
+ if (this.isConverged())
+ return !0;
+ this.afterGrowthIterations % 10 == 0 && (this.graphManager.updateBounds(), this.updateGrid()), this.coolingFactor = K.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100), this.afterGrowthIterations++;
+ }
+ var k = !this.isTreeGrowing && !this.isGrowthFinished, q = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;
+ return this.totalDisplacement = 0, this.graphManager.updateBounds(), this.calcSpringForces(), this.calcRepulsionForces(k, q), this.calcGravitationalForces(), this.moveNodes(), this.animate(), !1;
+ }, Y.prototype.getPositionsData = function() {
+ for (var L = this.graphManager.getAllNodes(), $ = {}, k = 0; k < L.length; k++) {
+ var q = L[k].rect, ce = L[k].id;
+ $[ce] = {
+ id: ce,
+ x: q.getCenterX(),
+ y: q.getCenterY(),
+ w: q.width,
+ h: q.height
+ };
+ }
+ return $;
+ }, Y.prototype.runSpringEmbedder = function() {
+ this.initialAnimationPeriod = 25, this.animationPeriod = this.initialAnimationPeriod;
+ var L = !1;
+ if (K.ANIMATE === "during")
+ this.emit("layoutstarted");
+ else {
+ for (; !L; )
+ L = this.tick();
+ this.graphManager.updateBounds();
+ }
+ }, Y.prototype.calculateNodesToApplyGravitationTo = function() {
+ var L = [], $, k = this.graphManager.getGraphs(), q = k.length, ce;
+ for (ce = 0; ce < q; ce++)
+ $ = k[ce], $.updateConnected(), $.isConnected || (L = L.concat($.getNodes()));
+ return L;
+ }, Y.prototype.createBendpoints = function() {
+ var L = [];
+ L = L.concat(this.graphManager.getAllEdges());
+ var $ = /* @__PURE__ */ new Set(), k;
+ for (k = 0; k < L.length; k++) {
+ var q = L[k];
+ if (!$.has(q)) {
+ var ce = q.getSource(), pe = q.getTarget();
+ if (ce == pe)
+ q.getBendpoints().push(new _()), q.getBendpoints().push(new _()), this.createDummyNodesForBendpoints(q), $.add(q);
+ else {
+ var Ae = [];
+ if (Ae = Ae.concat(ce.getEdgeListToNode(pe)), Ae = Ae.concat(pe.getEdgeListToNode(ce)), !$.has(Ae[0])) {
+ if (Ae.length > 1) {
+ var Ne;
+ for (Ne = 0; Ne < Ae.length; Ne++) {
+ var _e = Ae[Ne];
+ _e.getBendpoints().push(new _()), this.createDummyNodesForBendpoints(_e);
+ }
+ }
+ Ae.forEach(function(tt) {
+ $.add(tt);
+ });
+ }
+ }
+ }
+ if ($.size == L.length)
+ break;
+ }
+ }, Y.prototype.positionNodesRadially = function(L) {
+ for (var $ = new V(0, 0), k = Math.ceil(Math.sqrt(L.length)), q = 0, ce = 0, pe = 0, Ae = new _(0, 0), Ne = 0; Ne < L.length; Ne++) {
+ Ne % k == 0 && (pe = 0, ce = q, Ne != 0 && (ce += P.DEFAULT_COMPONENT_SEPERATION), q = 0);
+ var _e = L[Ne], tt = Q.findCenterOfTree(_e);
+ $.x = pe, $.y = ce, Ae = Y.radialLayout(_e, tt, $), Ae.y > q && (q = Math.floor(Ae.y)), pe = Math.floor(Ae.x + P.DEFAULT_COMPONENT_SEPERATION);
+ }
+ this.transform(new _(D.WORLD_CENTER_X - Ae.x / 2, D.WORLD_CENTER_Y - Ae.y / 2));
+ }, Y.radialLayout = function(L, $, k) {
+ var q = Math.max(this.maxDiagonalInTree(L), P.DEFAULT_RADIAL_SEPARATION);
+ Y.branchRadialLayout($, null, 0, 359, 0, q);
+ var ce = J.calculateBounds(L), pe = new j();
+ pe.setDeviceOrgX(ce.getMinX()), pe.setDeviceOrgY(ce.getMinY()), pe.setWorldOrgX(k.x), pe.setWorldOrgY(k.y);
+ for (var Ae = 0; Ae < L.length; Ae++) {
+ var Ne = L[Ae];
+ Ne.transform(pe);
+ }
+ var _e = new _(ce.getMaxX(), ce.getMaxY());
+ return pe.inverseTransformPoint(_e);
+ }, Y.branchRadialLayout = function(L, $, k, q, ce, pe) {
+ var Ae = (q - k + 1) / 2;
+ Ae < 0 && (Ae += 180);
+ var Ne = (Ae + k) % 360, _e = Ne * ue.TWO_PI / 360, tt = ce * Math.cos(_e), ct = ce * Math.sin(_e);
+ L.setCenter(tt, ct);
+ var Pe = [];
+ Pe = Pe.concat(L.getEdges());
+ var $e = Pe.length;
+ $ != null && $e--;
+ for (var Xe = 0, rt = Pe.length, lt, nt = L.getEdgesBetween($); nt.length > 1; ) {
+ var je = nt[0];
+ nt.splice(0, 1);
+ var pt = Pe.indexOf(je);
+ pt >= 0 && Pe.splice(pt, 1), rt--, $e--;
+ }
+ $ != null ? lt = (Pe.indexOf(nt[0]) + 1) % rt : lt = 0;
+ for (var Et = Math.abs(q - k) / $e, kt = lt; Xe != $e; kt = ++kt % rt) {
+ var vt = Pe[kt].getOtherEnd(L);
+ if (vt != $) {
+ var vr = (k + Xe * Et) % 360, qt = (vr + Et) % 360;
+ Y.branchRadialLayout(vt, L, vr, qt, ce + pe, pe), Xe++;
+ }
+ }
+ }, Y.maxDiagonalInTree = function(L) {
+ for (var $ = ne.MIN_VALUE, k = 0; k < L.length; k++) {
+ var q = L[k], ce = q.getDiagonal();
+ ce > $ && ($ = ce);
+ }
+ return $;
+ }, Y.prototype.calcRepulsionRange = function() {
+ return 2 * (this.level + 1) * this.idealEdgeLength;
+ }, Y.prototype.groupZeroDegreeMembers = function() {
+ var L = this, $ = {};
+ this.memberGroups = {}, this.idToDummyNode = {};
+ for (var k = [], q = this.graphManager.getAllNodes(), ce = 0; ce < q.length; ce++) {
+ var pe = q[ce], Ae = pe.getParent();
+ this.getNodeDegreeWithChildren(pe) === 0 && (Ae.id == null || !this.getToBeTiled(Ae)) && k.push(pe);
+ }
+ for (var ce = 0; ce < k.length; ce++) {
+ var pe = k[ce], Ne = pe.getParent().id;
+ typeof $[Ne] > "u" && ($[Ne] = []), $[Ne] = $[Ne].concat(pe);
+ }
+ Object.keys($).forEach(function(_e) {
+ if ($[_e].length > 1) {
+ var tt = "DummyCompound_" + _e;
+ L.memberGroups[tt] = $[_e];
+ var ct = $[_e][0].getParent(), Pe = new G(L.graphManager);
+ Pe.id = tt, Pe.paddingLeft = ct.paddingLeft || 0, Pe.paddingRight = ct.paddingRight || 0, Pe.paddingBottom = ct.paddingBottom || 0, Pe.paddingTop = ct.paddingTop || 0, L.idToDummyNode[tt] = Pe;
+ var $e = L.getGraphManager().add(L.newGraph(), Pe), Xe = ct.getChild();
+ Xe.add(Pe);
+ for (var rt = 0; rt < $[_e].length; rt++) {
+ var lt = $[_e][rt];
+ Xe.remove(lt), $e.add(lt);
+ }
+ }
+ });
+ }, Y.prototype.clearCompounds = function() {
+ var L = {}, $ = {};
+ this.performDFSOnCompounds();
+ for (var k = 0; k < this.compoundOrder.length; k++)
+ $[this.compoundOrder[k].id] = this.compoundOrder[k], L[this.compoundOrder[k].id] = [].concat(this.compoundOrder[k].getChild().getNodes()), this.graphManager.remove(this.compoundOrder[k].getChild()), this.compoundOrder[k].child = null;
+ this.graphManager.resetAllNodes(), this.tileCompoundMembers(L, $);
+ }, Y.prototype.clearZeroDegreeMembers = function() {
+ var L = this, $ = this.tiledZeroDegreePack = [];
+ Object.keys(this.memberGroups).forEach(function(k) {
+ var q = L.idToDummyNode[k];
+ $[k] = L.tileNodes(L.memberGroups[k], q.paddingLeft + q.paddingRight), q.rect.width = $[k].width, q.rect.height = $[k].height;
+ });
+ }, Y.prototype.repopulateCompounds = function() {
+ for (var L = this.compoundOrder.length - 1; L >= 0; L--) {
+ var $ = this.compoundOrder[L], k = $.id, q = $.paddingLeft, ce = $.paddingTop;
+ this.adjustLocations(this.tiledMemberPack[k], $.rect.x, $.rect.y, q, ce);
+ }
+ }, Y.prototype.repopulateZeroDegreeMembers = function() {
+ var L = this, $ = this.tiledZeroDegreePack;
+ Object.keys($).forEach(function(k) {
+ var q = L.idToDummyNode[k], ce = q.paddingLeft, pe = q.paddingTop;
+ L.adjustLocations($[k], q.rect.x, q.rect.y, ce, pe);
+ });
+ }, Y.prototype.getToBeTiled = function(L) {
+ var $ = L.id;
+ if (this.toBeTiled[$] != null)
+ return this.toBeTiled[$];
+ var k = L.getChild();
+ if (k == null)
+ return this.toBeTiled[$] = !1, !1;
+ for (var q = k.getNodes(), ce = 0; ce < q.length; ce++) {
+ var pe = q[ce];
+ if (this.getNodeDegree(pe) > 0)
+ return this.toBeTiled[$] = !1, !1;
+ if (pe.getChild() == null) {
+ this.toBeTiled[pe.id] = !1;
+ continue;
+ }
+ if (!this.getToBeTiled(pe))
+ return this.toBeTiled[$] = !1, !1;
+ }
+ return this.toBeTiled[$] = !0, !0;
+ }, Y.prototype.getNodeDegree = function(L) {
+ L.id;
+ for (var $ = L.getEdges(), k = 0, q = 0; q < $.length; q++) {
+ var ce = $[q];
+ ce.getSource().id !== ce.getTarget().id && (k = k + 1);
+ }
+ return k;
+ }, Y.prototype.getNodeDegreeWithChildren = function(L) {
+ var $ = this.getNodeDegree(L);
+ if (L.getChild() == null)
+ return $;
+ for (var k = L.getChild().getNodes(), q = 0; q < k.length; q++) {
+ var ce = k[q];
+ $ += this.getNodeDegreeWithChildren(ce);
+ }
+ return $;
+ }, Y.prototype.performDFSOnCompounds = function() {
+ this.compoundOrder = [], this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());
+ }, Y.prototype.fillCompexOrderByDFS = function(L) {
+ for (var $ = 0; $ < L.length; $++) {
+ var k = L[$];
+ k.getChild() != null && this.fillCompexOrderByDFS(k.getChild().getNodes()), this.getToBeTiled(k) && this.compoundOrder.push(k);
+ }
+ }, Y.prototype.adjustLocations = function(L, $, k, q, ce) {
+ $ += q, k += ce;
+ for (var pe = $, Ae = 0; Ae < L.rows.length; Ae++) {
+ var Ne = L.rows[Ae];
+ $ = pe;
+ for (var _e = 0, tt = 0; tt < Ne.length; tt++) {
+ var ct = Ne[tt];
+ ct.rect.x = $, ct.rect.y = k, $ += ct.rect.width + L.horizontalPadding, ct.rect.height > _e && (_e = ct.rect.height);
+ }
+ k += _e + L.verticalPadding;
+ }
+ }, Y.prototype.tileCompoundMembers = function(L, $) {
+ var k = this;
+ this.tiledMemberPack = [], Object.keys(L).forEach(function(q) {
+ var ce = $[q];
+ k.tiledMemberPack[q] = k.tileNodes(L[q], ce.paddingLeft + ce.paddingRight), ce.rect.width = k.tiledMemberPack[q].width, ce.rect.height = k.tiledMemberPack[q].height;
+ });
+ }, Y.prototype.tileNodes = function(L, $) {
+ var k = P.TILING_PADDING_VERTICAL, q = P.TILING_PADDING_HORIZONTAL, ce = {
+ rows: [],
+ rowWidth: [],
+ rowHeight: [],
+ width: 0,
+ height: $,
+ // assume minHeight equals to minWidth
+ verticalPadding: k,
+ horizontalPadding: q
+ };
+ L.sort(function(Ne, _e) {
+ return Ne.rect.width * Ne.rect.height > _e.rect.width * _e.rect.height ? -1 : Ne.rect.width * Ne.rect.height < _e.rect.width * _e.rect.height ? 1 : 0;
+ });
+ for (var pe = 0; pe < L.length; pe++) {
+ var Ae = L[pe];
+ ce.rows.length == 0 ? this.insertNodeToRow(ce, Ae, 0, $) : this.canAddHorizontal(ce, Ae.rect.width, Ae.rect.height) ? this.insertNodeToRow(ce, Ae, this.getShortestRowIndex(ce), $) : this.insertNodeToRow(ce, Ae, ce.rows.length, $), this.shiftToLastRow(ce);
+ }
+ return ce;
+ }, Y.prototype.insertNodeToRow = function(L, $, k, q) {
+ var ce = q;
+ if (k == L.rows.length) {
+ var pe = [];
+ L.rows.push(pe), L.rowWidth.push(ce), L.rowHeight.push(0);
+ }
+ var Ae = L.rowWidth[k] + $.rect.width;
+ L.rows[k].length > 0 && (Ae += L.horizontalPadding), L.rowWidth[k] = Ae, L.width < Ae && (L.width = Ae);
+ var Ne = $.rect.height;
+ k > 0 && (Ne += L.verticalPadding);
+ var _e = 0;
+ Ne > L.rowHeight[k] && (_e = L.rowHeight[k], L.rowHeight[k] = Ne, _e = L.rowHeight[k] - _e), L.height += _e, L.rows[k].push($);
+ }, Y.prototype.getShortestRowIndex = function(L) {
+ for (var $ = -1, k = Number.MAX_VALUE, q = 0; q < L.rows.length; q++)
+ L.rowWidth[q] < k && ($ = q, k = L.rowWidth[q]);
+ return $;
+ }, Y.prototype.getLongestRowIndex = function(L) {
+ for (var $ = -1, k = Number.MIN_VALUE, q = 0; q < L.rows.length; q++)
+ L.rowWidth[q] > k && ($ = q, k = L.rowWidth[q]);
+ return $;
+ }, Y.prototype.canAddHorizontal = function(L, $, k) {
+ var q = this.getShortestRowIndex(L);
+ if (q < 0)
+ return !0;
+ var ce = L.rowWidth[q];
+ if (ce + L.horizontalPadding + $ <= L.width)
+ return !0;
+ var pe = 0;
+ L.rowHeight[q] < k && q > 0 && (pe = k + L.verticalPadding - L.rowHeight[q]);
+ var Ae;
+ L.width - ce >= $ + L.horizontalPadding ? Ae = (L.height + pe) / (ce + $ + L.horizontalPadding) : Ae = (L.height + pe) / L.width, pe = k + L.verticalPadding;
+ var Ne;
+ return L.width < $ ? Ne = (L.height + pe) / $ : Ne = (L.height + pe) / L.width, Ne < 1 && (Ne = 1 / Ne), Ae < 1 && (Ae = 1 / Ae), Ae < Ne;
+ }, Y.prototype.shiftToLastRow = function(L) {
+ var $ = this.getLongestRowIndex(L), k = L.rowWidth.length - 1, q = L.rows[$], ce = q[q.length - 1], pe = ce.width + L.horizontalPadding;
+ if (L.width - L.rowWidth[k] > pe && $ != k) {
+ q.splice(-1, 1), L.rows[k].push(ce), L.rowWidth[$] = L.rowWidth[$] - pe, L.rowWidth[k] = L.rowWidth[k] + pe, L.width = L.rowWidth[instance.getLongestRowIndex(L)];
+ for (var Ae = Number.MIN_VALUE, Ne = 0; Ne < q.length; Ne++)
+ q[Ne].height > Ae && (Ae = q[Ne].height);
+ $ > 0 && (Ae += L.verticalPadding);
+ var _e = L.rowHeight[$] + L.rowHeight[k];
+ L.rowHeight[$] = Ae, L.rowHeight[k] < ce.height + L.verticalPadding && (L.rowHeight[k] = ce.height + L.verticalPadding);
+ var tt = L.rowHeight[$] + L.rowHeight[k];
+ L.height += tt - _e, this.shiftToLastRow(L);
+ }
+ }, Y.prototype.tilingPreLayout = function() {
+ P.TILE && (this.groupZeroDegreeMembers(), this.clearCompounds(), this.clearZeroDegreeMembers());
+ }, Y.prototype.tilingPostLayout = function() {
+ P.TILE && (this.repopulateZeroDegreeMembers(), this.repopulateCompounds());
+ }, Y.prototype.reduceTrees = function() {
+ for (var L = [], $ = !0, k; $; ) {
+ var q = this.graphManager.getAllNodes(), ce = [];
+ $ = !1;
+ for (var pe = 0; pe < q.length; pe++)
+ k = q[pe], k.getEdges().length == 1 && !k.getEdges()[0].isInterGraph && k.getChild() == null && (ce.push([k, k.getEdges()[0], k.getOwner()]), $ = !0);
+ if ($ == !0) {
+ for (var Ae = [], Ne = 0; Ne < ce.length; Ne++)
+ ce[Ne][0].getEdges().length == 1 && (Ae.push(ce[Ne]), ce[Ne][0].getOwner().remove(ce[Ne][0]));
+ L.push(Ae), this.graphManager.resetAllNodes(), this.graphManager.resetAllEdges();
+ }
+ }
+ this.prunedNodesAll = L;
+ }, Y.prototype.growTree = function(L) {
+ for (var $ = L.length, k = L[$ - 1], q, ce = 0; ce < k.length; ce++)
+ q = k[ce], this.findPlaceforPrunedNode(q), q[2].add(q[0]), q[2].add(q[1], q[1].source, q[1].target);
+ L.splice(L.length - 1, 1), this.graphManager.resetAllNodes(), this.graphManager.resetAllEdges();
+ }, Y.prototype.findPlaceforPrunedNode = function(L) {
+ var $, k, q = L[0];
+ q == L[1].source ? k = L[1].target : k = L[1].source;
+ var ce = k.startX, pe = k.finishX, Ae = k.startY, Ne = k.finishY, _e = 0, tt = 0, ct = 0, Pe = 0, $e = [_e, ct, tt, Pe];
+ if (Ae > 0)
+ for (var Xe = ce; Xe <= pe; Xe++)
+ $e[0] += this.grid[Xe][Ae - 1].length + this.grid[Xe][Ae].length - 1;
+ if (pe < this.grid.length - 1)
+ for (var Xe = Ae; Xe <= Ne; Xe++)
+ $e[1] += this.grid[pe + 1][Xe].length + this.grid[pe][Xe].length - 1;
+ if (Ne < this.grid[0].length - 1)
+ for (var Xe = ce; Xe <= pe; Xe++)
+ $e[2] += this.grid[Xe][Ne + 1].length + this.grid[Xe][Ne].length - 1;
+ if (ce > 0)
+ for (var Xe = Ae; Xe <= Ne; Xe++)
+ $e[3] += this.grid[ce - 1][Xe].length + this.grid[ce][Xe].length - 1;
+ for (var rt = ne.MAX_VALUE, lt, nt, je = 0; je < $e.length; je++)
+ $e[je] < rt ? (rt = $e[je], lt = 1, nt = je) : $e[je] == rt && lt++;
+ if (lt == 3 && rt == 0)
+ $e[0] == 0 && $e[1] == 0 && $e[2] == 0 ? $ = 1 : $e[0] == 0 && $e[1] == 0 && $e[3] == 0 ? $ = 0 : $e[0] == 0 && $e[2] == 0 && $e[3] == 0 ? $ = 3 : $e[1] == 0 && $e[2] == 0 && $e[3] == 0 && ($ = 2);
+ else if (lt == 2 && rt == 0) {
+ var pt = Math.floor(Math.random() * 2);
+ $e[0] == 0 && $e[1] == 0 ? pt == 0 ? $ = 0 : $ = 1 : $e[0] == 0 && $e[2] == 0 ? pt == 0 ? $ = 0 : $ = 2 : $e[0] == 0 && $e[3] == 0 ? pt == 0 ? $ = 0 : $ = 3 : $e[1] == 0 && $e[2] == 0 ? pt == 0 ? $ = 1 : $ = 2 : $e[1] == 0 && $e[3] == 0 ? pt == 0 ? $ = 1 : $ = 3 : pt == 0 ? $ = 2 : $ = 3;
+ } else if (lt == 4 && rt == 0) {
+ var pt = Math.floor(Math.random() * 4);
+ $ = pt;
+ } else
+ $ = nt;
+ $ == 0 ? q.setCenter(k.getCenterX(), k.getCenterY() - k.getHeight() / 2 - K.DEFAULT_EDGE_LENGTH - q.getHeight() / 2) : $ == 1 ? q.setCenter(k.getCenterX() + k.getWidth() / 2 + K.DEFAULT_EDGE_LENGTH + q.getWidth() / 2, k.getCenterY()) : $ == 2 ? q.setCenter(k.getCenterX(), k.getCenterY() + k.getHeight() / 2 + K.DEFAULT_EDGE_LENGTH + q.getHeight() / 2) : q.setCenter(k.getCenterX() - k.getWidth() / 2 - K.DEFAULT_EDGE_LENGTH - q.getWidth() / 2, k.getCenterY());
+ }, ve.exports = Y;
+ },
+ /* 7 */
+ /***/
+ function(ve, H, O) {
+ var T = {};
+ T.layoutBase = O(0), T.CoSEConstants = O(1), T.CoSEEdge = O(2), T.CoSEGraph = O(3), T.CoSEGraphManager = O(4), T.CoSELayout = O(6), T.CoSENode = O(5), ve.exports = T;
+ }
+ /******/
+ ])
+ );
+ });
+ }(Wp)), ti;
+}
+(function(he, fe) {
+ (function(ve, H) {
+ he.exports = H(Qp());
+ })(Ca, function(ee) {
+ return (
+ /******/
+ function(ve) {
+ var H = {};
+ function O(T) {
+ if (H[T])
+ return H[T].exports;
+ var x = H[T] = {
+ /******/
+ i: T,
+ /******/
+ l: !1,
+ /******/
+ exports: {}
+ /******/
+ };
+ return ve[T].call(x.exports, x, x.exports, O), x.l = !0, x.exports;
+ }
+ return O.m = ve, O.c = H, O.i = function(T) {
+ return T;
+ }, O.d = function(T, x, S) {
+ O.o(T, x) || Object.defineProperty(T, x, {
+ /******/
+ configurable: !1,
+ /******/
+ enumerable: !0,
+ /******/
+ get: S
+ /******/
+ });
+ }, O.n = function(T) {
+ var x = T && T.__esModule ? (
+ /******/
+ function() {
+ return T.default;
+ }
+ ) : (
+ /******/
+ function() {
+ return T;
+ }
+ );
+ return O.d(x, "a", x), x;
+ }, O.o = function(T, x) {
+ return Object.prototype.hasOwnProperty.call(T, x);
+ }, O.p = "", O(O.s = 1);
+ }([
+ /* 0 */
+ /***/
+ function(ve, H) {
+ ve.exports = ee;
+ },
+ /* 1 */
+ /***/
+ function(ve, H, O) {
+ var T = O(0).layoutBase.LayoutConstants, x = O(0).layoutBase.FDLayoutConstants, S = O(0).CoSEConstants, G = O(0).CoSELayout, U = O(0).CoSENode, P = O(0).layoutBase.PointD, K = O(0).layoutBase.DimensionD, D = {
+ // Called on `layoutready`
+ ready: function() {
+ },
+ // Called on `layoutstop`
+ stop: function() {
+ },
+ // 'draft', 'default' or 'proof"
+ // - 'draft' fast cooling rate
+ // - 'default' moderate cooling rate
+ // - "proof" slow cooling rate
+ quality: "default",
+ // include labels in node dimensions
+ nodeDimensionsIncludeLabels: !1,
+ // number of ticks per frame; higher is faster but more jerky
+ refresh: 30,
+ // Whether to fit the network view after when done
+ fit: !0,
+ // Padding on fit
+ padding: 10,
+ // Whether to enable incremental mode
+ randomize: !0,
+ // Node repulsion (non overlapping) multiplier
+ nodeRepulsion: 4500,
+ // Ideal edge (non nested) length
+ idealEdgeLength: 50,
+ // Divisor to compute edge forces
+ edgeElasticity: 0.45,
+ // Nesting factor (multiplier) to compute ideal edge length for nested edges
+ nestingFactor: 0.1,
+ // Gravity force (constant)
+ gravity: 0.25,
+ // Maximum number of iterations to perform
+ numIter: 2500,
+ // For enabling tiling
+ tile: !0,
+ // Type of layout animation. The option set is {'during', 'end', false}
+ animate: "end",
+ // Duration for animate:end
+ animationDuration: 500,
+ // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function)
+ tilingPaddingVertical: 10,
+ // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function)
+ tilingPaddingHorizontal: 10,
+ // Gravity range (constant) for compounds
+ gravityRangeCompound: 1.5,
+ // Gravity force (constant) for compounds
+ gravityCompound: 1,
+ // Gravity range (constant)
+ gravityRange: 3.8,
+ // Initial cooling factor for incremental layout
+ initialEnergyOnIncremental: 0.5
+ };
+ function V(ue, J) {
+ var j = {};
+ for (var Y in ue)
+ j[Y] = ue[Y];
+ for (var Y in J)
+ j[Y] = J[Y];
+ return j;
+ }
+ function _(ue) {
+ this.options = V(D, ue), Q(this.options);
+ }
+ var Q = function(J) {
+ J.nodeRepulsion != null && (S.DEFAULT_REPULSION_STRENGTH = x.DEFAULT_REPULSION_STRENGTH = J.nodeRepulsion), J.idealEdgeLength != null && (S.DEFAULT_EDGE_LENGTH = x.DEFAULT_EDGE_LENGTH = J.idealEdgeLength), J.edgeElasticity != null && (S.DEFAULT_SPRING_STRENGTH = x.DEFAULT_SPRING_STRENGTH = J.edgeElasticity), J.nestingFactor != null && (S.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = x.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = J.nestingFactor), J.gravity != null && (S.DEFAULT_GRAVITY_STRENGTH = x.DEFAULT_GRAVITY_STRENGTH = J.gravity), J.numIter != null && (S.MAX_ITERATIONS = x.MAX_ITERATIONS = J.numIter), J.gravityRange != null && (S.DEFAULT_GRAVITY_RANGE_FACTOR = x.DEFAULT_GRAVITY_RANGE_FACTOR = J.gravityRange), J.gravityCompound != null && (S.DEFAULT_COMPOUND_GRAVITY_STRENGTH = x.DEFAULT_COMPOUND_GRAVITY_STRENGTH = J.gravityCompound), J.gravityRangeCompound != null && (S.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = x.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = J.gravityRangeCompound), J.initialEnergyOnIncremental != null && (S.DEFAULT_COOLING_FACTOR_INCREMENTAL = x.DEFAULT_COOLING_FACTOR_INCREMENTAL = J.initialEnergyOnIncremental), J.quality == "draft" ? T.QUALITY = 0 : J.quality == "proof" ? T.QUALITY = 2 : T.QUALITY = 1, S.NODE_DIMENSIONS_INCLUDE_LABELS = x.NODE_DIMENSIONS_INCLUDE_LABELS = T.NODE_DIMENSIONS_INCLUDE_LABELS = J.nodeDimensionsIncludeLabels, S.DEFAULT_INCREMENTAL = x.DEFAULT_INCREMENTAL = T.DEFAULT_INCREMENTAL = !J.randomize, S.ANIMATE = x.ANIMATE = T.ANIMATE = J.animate, S.TILE = J.tile, S.TILING_PADDING_VERTICAL = typeof J.tilingPaddingVertical == "function" ? J.tilingPaddingVertical.call() : J.tilingPaddingVertical, S.TILING_PADDING_HORIZONTAL = typeof J.tilingPaddingHorizontal == "function" ? J.tilingPaddingHorizontal.call() : J.tilingPaddingHorizontal;
+ };
+ _.prototype.run = function() {
+ var ue, J, j = this.options;
+ this.idToLNode = {};
+ var Y = this.layout = new G(), te = this;
+ te.stopped = !1, this.cy = this.options.cy, this.cy.trigger({ type: "layoutstart", layout: this });
+ var L = Y.newGraphManager();
+ this.gm = L;
+ var $ = this.options.eles.nodes(), k = this.options.eles.edges();
+ this.root = L.addRoot(), this.processChildrenList(this.root, this.getTopMostNodes($), Y);
+ for (var q = 0; q < k.length; q++) {
+ var ce = k[q], pe = this.idToLNode[ce.data("source")], Ae = this.idToLNode[ce.data("target")];
+ if (pe !== Ae && pe.getEdgesBetween(Ae).length == 0) {
+ var Ne = L.add(Y.newEdge(), pe, Ae);
+ Ne.id = ce.id();
+ }
+ }
+ var _e = function(Pe, $e) {
+ typeof Pe == "number" && (Pe = $e);
+ var Xe = Pe.data("id"), rt = te.idToLNode[Xe];
+ return {
+ x: rt.getRect().getCenterX(),
+ y: rt.getRect().getCenterY()
+ };
+ }, tt = function ct() {
+ for (var Pe = function() {
+ j.fit && j.cy.fit(j.eles, j.padding), ue || (ue = !0, te.cy.one("layoutready", j.ready), te.cy.trigger({ type: "layoutready", layout: te }));
+ }, $e = te.options.refresh, Xe, rt = 0; rt < $e && !Xe; rt++)
+ Xe = te.stopped || te.layout.tick();
+ if (Xe) {
+ Y.checkLayoutSuccess() && !Y.isSubLayout && Y.doPostLayout(), Y.tilingPostLayout && Y.tilingPostLayout(), Y.isLayoutFinished = !0, te.options.eles.nodes().positions(_e), Pe(), te.cy.one("layoutstop", te.options.stop), te.cy.trigger({ type: "layoutstop", layout: te }), J && cancelAnimationFrame(J), ue = !1;
+ return;
+ }
+ var lt = te.layout.getPositionsData();
+ j.eles.nodes().positions(function(nt, je) {
+ if (typeof nt == "number" && (nt = je), !nt.isParent()) {
+ for (var pt = nt.id(), Et = lt[pt], kt = nt; Et == null && (Et = lt[kt.data("parent")] || lt["DummyCompound_" + kt.data("parent")], lt[pt] = Et, kt = kt.parent()[0], kt != null); )
+ ;
+ return Et != null ? {
+ x: Et.x,
+ y: Et.y
+ } : {
+ x: nt.position("x"),
+ y: nt.position("y")
+ };
+ }
+ }), Pe(), J = requestAnimationFrame(ct);
+ };
+ return Y.addListener("layoutstarted", function() {
+ te.options.animate === "during" && (J = requestAnimationFrame(tt));
+ }), Y.runLayout(), this.options.animate !== "during" && (te.options.eles.nodes().not(":parent").layoutPositions(te, te.options, _e), ue = !1), this;
+ }, _.prototype.getTopMostNodes = function(ue) {
+ for (var J = {}, j = 0; j < ue.length; j++)
+ J[ue[j].id()] = !0;
+ var Y = ue.filter(function(te, L) {
+ typeof te == "number" && (te = L);
+ for (var $ = te.parent()[0]; $ != null; ) {
+ if (J[$.id()])
+ return !1;
+ $ = $.parent()[0];
+ }
+ return !0;
+ });
+ return Y;
+ }, _.prototype.processChildrenList = function(ue, J, j) {
+ for (var Y = J.length, te = 0; te < Y; te++) {
+ var L = J[te], $ = L.children(), k, q = L.layoutDimensions({
+ nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels
+ });
+ if (L.outerWidth() != null && L.outerHeight() != null ? k = ue.add(new U(j.graphManager, new P(L.position("x") - q.w / 2, L.position("y") - q.h / 2), new K(parseFloat(q.w), parseFloat(q.h)))) : k = ue.add(new U(this.graphManager)), k.id = L.data("id"), k.paddingLeft = parseInt(L.css("padding")), k.paddingTop = parseInt(L.css("padding")), k.paddingRight = parseInt(L.css("padding")), k.paddingBottom = parseInt(L.css("padding")), this.options.nodeDimensionsIncludeLabels && L.isParent()) {
+ var ce = L.boundingBox({ includeLabels: !0, includeNodes: !1 }).w, pe = L.boundingBox({ includeLabels: !0, includeNodes: !1 }).h, Ae = L.css("text-halign");
+ k.labelWidth = ce, k.labelHeight = pe, k.labelPos = Ae;
+ }
+ if (this.idToLNode[L.data("id")] = k, isNaN(k.rect.x) && (k.rect.x = 0), isNaN(k.rect.y) && (k.rect.y = 0), $ != null && $.length > 0) {
+ var Ne;
+ Ne = j.getGraphManager().add(j.newGraph(), k), this.processChildrenList(Ne, $, j);
+ }
+ }
+ }, _.prototype.stop = function() {
+ return this.stopped = !0, this;
+ };
+ var ne = function(J) {
+ J("layout", "cose-bilkent", _);
+ };
+ typeof cytoscape < "u" && ne(cytoscape), ve.exports = ne;
+ }
+ /******/
+ ])
+ );
+ });
+})(qp);
+const Jp = /* @__PURE__ */ mp(Qi);
+Wu.use(Jp);
+function Ku(he, fe, ee, ve) {
+ qu.drawNode(he, fe, ee, ve), fe.children && fe.children.forEach((H, O) => {
+ Ku(he, H, ee < 0 ? O : ee, ve);
+ });
+}
+function jp(he, fe) {
+ fe.edges().map((ee, ve) => {
+ const H = ee.data();
+ if (ee[0]._private.bodyBounds) {
+ const O = ee[0]._private.rscratch;
+ qr.trace("Edge: ", ve, H), he.insert("path").attr(
+ "d",
+ `M ${O.startX},${O.startY} L ${O.midX},${O.midY} L${O.endX},${O.endY} `
+ ).attr("class", "edge section-edge-" + H.section + " edge-depth-" + H.depth);
+ }
+ });
+}
+function Zu(he, fe, ee, ve) {
+ fe.add({
+ group: "nodes",
+ data: {
+ id: he.id,
+ labelText: he.descr,
+ height: he.height,
+ width: he.width,
+ level: ve,
+ nodeId: he.id,
+ padding: he.padding,
+ type: he.type
+ },
+ position: {
+ x: he.x,
+ y: he.y
+ }
+ }), he.children && he.children.forEach((H) => {
+ Zu(H, fe, ee, ve + 1), fe.add({
+ group: "edges",
+ data: {
+ id: `${he.id}_${H.id}`,
+ source: he.id,
+ target: H.id,
+ depth: ve,
+ section: H.section
+ }
+ });
+ });
+}
+function ey(he, fe) {
+ return new Promise((ee) => {
+ const ve = ei("body").append("div").attr("id", "cy").attr("style", "display:none"), H = Wu({
+ container: document.getElementById("cy"),
+ // container to render in
+ style: [
+ {
+ selector: "edge",
+ style: {
+ "curve-style": "bezier"
+ }
+ }
+ ]
+ });
+ ve.remove(), Zu(he, H, fe, 0), H.nodes().forEach(function(O) {
+ O.layoutDimensions = () => {
+ const T = O.data();
+ return { w: T.width, h: T.height };
+ };
+ }), H.layout({
+ name: "cose-bilkent",
+ quality: "proof",
+ // headless: true,
+ styleEnabled: !1,
+ animate: !1
+ }).run(), H.ready((O) => {
+ qr.info("Ready", O), ee(H);
+ });
+ });
+}
+function ty(he) {
+ he.nodes().map((fe, ee) => {
+ const ve = fe.data();
+ ve.x = fe.position().x, ve.y = fe.position().y, qu.positionNode(ve);
+ const H = ji(ve.nodeId);
+ qr.info("Id:", ee, "Position: (", fe.position().x, ", ", fe.position().y, ")", ve), H.attr(
+ "transform",
+ `translate(${fe.position().x - ve.width / 2}, ${fe.position().y - ve.height / 2})`
+ ), H.attr("attr", `apa-${ee})`);
+ });
+}
+const ry = async (he, fe, ee, ve) => {
+ const H = nn();
+ H.htmlLabels = !1, ve.db.clear(), ve.parser.parse(he), qr.debug(`Rendering mindmap diagram
+` + he, ve.parser);
+ const O = nn().securityLevel;
+ let T;
+ O === "sandbox" && (T = ei("#i" + fe));
+ const S = (O === "sandbox" ? ei(T.nodes()[0].contentDocument.body) : ei("body")).select("#" + fe);
+ S.append("g");
+ const G = ve.db.getMindmap(), U = S.append("g");
+ U.attr("class", "mindmap-edges");
+ const P = S.append("g");
+ P.attr("class", "mindmap-nodes"), Ku(P, G, -1, H);
+ const K = await ey(G, H);
+ jp(U, K), ty(K), wp(void 0, S, H.mindmap.padding, H.mindmap.useMaxWidth);
+}, ay = {
+ draw: ry
+}, ny = (he) => {
+ let fe = "";
+ for (let ee = 0; ee < he.THEME_COLOR_LIMIT; ee++)
+ he["lineColor" + ee] = he["lineColor" + ee] || he["cScaleInv" + ee], Tp(he["lineColor" + ee]) ? he["lineColor" + ee] = bp(he["lineColor" + ee], 20) : he["lineColor" + ee] = Ep(he["lineColor" + ee], 20);
+ for (let ee = 0; ee < he.THEME_COLOR_LIMIT; ee++) {
+ const ve = "" + (17 - 3 * ee);
+ fe += `
+ .section-${ee - 1} rect, .section-${ee - 1} path, .section-${ee - 1} circle, .section-${ee - 1} polygon, .section-${ee - 1} path {
+ fill: ${he["cScale" + ee]};
+ }
+ .section-${ee - 1} text {
+ fill: ${he["cScaleLabel" + ee]};
+ }
+ .node-icon-${ee - 1} {
+ font-size: 40px;
+ color: ${he["cScaleLabel" + ee]};
+ }
+ .section-edge-${ee - 1}{
+ stroke: ${he["cScale" + ee]};
+ }
+ .edge-depth-${ee - 1}{
+ stroke-width: ${ve};
+ }
+ .section-${ee - 1} line {
+ stroke: ${he["cScaleInv" + ee]} ;
+ stroke-width: 3;
+ }
+
+ .disabled, .disabled circle, .disabled text {
+ fill: lightgray;
+ }
+ .disabled text {
+ fill: #efefef;
+ }
+ `;
+ }
+ return fe;
+}, iy = (he) => `
+ .edge {
+ stroke-width: 3;
+ }
+ ${ny(he)}
+ .section-root rect, .section-root path, .section-root circle, .section-root polygon {
+ fill: ${he.git0};
+ }
+ .section-root text {
+ fill: ${he.gitBranchLabel0};
+ }
+ .icon-container {
+ height:100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .edge {
+ fill: none;
+ }
+ .mindmap-node-label {
+ dy: 1em;
+ alignment-baseline: middle;
+ text-anchor: middle;
+ dominant-baseline: middle;
+ text-align: center;
+ }
+`, sy = iy, cy = {
+ db: kp,
+ renderer: ay,
+ parser: Cp,
+ styles: sy
+};
+export {
+ cy as diagram
+};
+//# sourceMappingURL=mindmap-definition-b90592f0.js.map
diff --git a/scopegraphs-render-docs/doc/js/pieDiagram-9555168c.js b/scopegraphs-render-docs/doc/js/pieDiagram-9555168c.js
new file mode 100644
index 0000000..51946c2
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/pieDiagram-9555168c.js
@@ -0,0 +1,902 @@
+import { g as getConfig, q as setAccTitle, v as getAccTitle, y as setDiagramTitle, z as getDiagramTitle, w as getAccDescription, x as setAccDescription, f as common, l as log, A as clear$1, h as select } from "./commonDb-89160e91.js";
+import { m as mermaidAPI } from "./mermaidAPI-c841a67f.js";
+import { K as tau, v as configureSvgSize, N as parseFontSize } from "./utils-1aebe9b6.js";
+import { i as initRange } from "./init-cc95ec8e.js";
+import { a as array } from "./array-b7dcf730.js";
+import { c as constant } from "./constant-b644328d.js";
+import { d as d3arc } from "./arc-c50f0902.js";
+class InternMap extends Map {
+ constructor(entries, key = keyof) {
+ super();
+ Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: key } });
+ if (entries != null)
+ for (const [key2, value] of entries)
+ this.set(key2, value);
+ }
+ get(key) {
+ return super.get(intern_get(this, key));
+ }
+ has(key) {
+ return super.has(intern_get(this, key));
+ }
+ set(key, value) {
+ return super.set(intern_set(this, key), value);
+ }
+ delete(key) {
+ return super.delete(intern_delete(this, key));
+ }
+}
+function intern_get({ _intern, _key }, value) {
+ const key = _key(value);
+ return _intern.has(key) ? _intern.get(key) : value;
+}
+function intern_set({ _intern, _key }, value) {
+ const key = _key(value);
+ if (_intern.has(key))
+ return _intern.get(key);
+ _intern.set(key, value);
+ return value;
+}
+function intern_delete({ _intern, _key }, value) {
+ const key = _key(value);
+ if (_intern.has(key)) {
+ value = _intern.get(key);
+ _intern.delete(key);
+ }
+ return value;
+}
+function keyof(value) {
+ return value !== null && typeof value === "object" ? value.valueOf() : value;
+}
+const implicit = Symbol("implicit");
+function ordinal() {
+ var index = new InternMap(), domain = [], range = [], unknown = implicit;
+ function scale(d) {
+ let i = index.get(d);
+ if (i === void 0) {
+ if (unknown !== implicit)
+ return unknown;
+ index.set(d, i = domain.push(d) - 1);
+ }
+ return range[i % range.length];
+ }
+ scale.domain = function(_) {
+ if (!arguments.length)
+ return domain.slice();
+ domain = [], index = new InternMap();
+ for (const value of _) {
+ if (index.has(value))
+ continue;
+ index.set(value, domain.push(value) - 1);
+ }
+ return scale;
+ };
+ scale.range = function(_) {
+ return arguments.length ? (range = Array.from(_), scale) : range.slice();
+ };
+ scale.unknown = function(_) {
+ return arguments.length ? (unknown = _, scale) : unknown;
+ };
+ scale.copy = function() {
+ return ordinal(domain, range).unknown(unknown);
+ };
+ initRange.apply(scale, arguments);
+ return scale;
+}
+function descending(a, b) {
+ return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
+}
+function identity(d) {
+ return d;
+}
+function d3pie() {
+ var value = identity, sortValues = descending, sort = null, startAngle = constant(0), endAngle = constant(tau), padAngle = constant(0);
+ function pie(data) {
+ var i, n = (data = array(data)).length, j, k, sum = 0, index = new Array(n), arcs = new Array(n), a0 = +startAngle.apply(this, arguments), da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), a1, p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), pa = p * (da < 0 ? -1 : 1), v;
+ for (i = 0; i < n; ++i) {
+ if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
+ sum += v;
+ }
+ }
+ if (sortValues != null)
+ index.sort(function(i2, j2) {
+ return sortValues(arcs[i2], arcs[j2]);
+ });
+ else if (sort != null)
+ index.sort(function(i2, j2) {
+ return sort(data[i2], data[j2]);
+ });
+ for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
+ j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
+ data: data[j],
+ index: i,
+ value: v,
+ startAngle: a0,
+ endAngle: a1,
+ padAngle: p
+ };
+ }
+ return arcs;
+ }
+ pie.value = function(_) {
+ return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), pie) : value;
+ };
+ pie.sortValues = function(_) {
+ return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
+ };
+ pie.sort = function(_) {
+ return arguments.length ? (sort = _, sortValues = null, pie) : sort;
+ };
+ pie.startAngle = function(_) {
+ return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), pie) : startAngle;
+ };
+ pie.endAngle = function(_) {
+ return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), pie) : endAngle;
+ };
+ pie.padAngle = function(_) {
+ return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), pie) : padAngle;
+ };
+ return pie;
+}
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 4], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 9], $V5 = [1, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], $V6 = [2, 5], $V7 = [1, 6, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], $V8 = [26, 27, 28], $V9 = [2, 8], $Va = [1, 18], $Vb = [1, 19], $Vc = [1, 20], $Vd = [1, 21], $Ve = [1, 22], $Vf = [1, 23], $Vg = [1, 28], $Vh = [6, 26, 27, 28, 29];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "eol": 4, "directive": 5, "PIE": 6, "document": 7, "showData": 8, "line": 9, "statement": 10, "txt": 11, "value": 12, "title": 13, "title_value": 14, "acc_title": 15, "acc_title_value": 16, "acc_descr": 17, "acc_descr_value": 18, "acc_descr_multiline_value": 19, "section": 20, "openDirective": 21, "typeDirective": 22, "closeDirective": 23, ":": 24, "argDirective": 25, "NEWLINE": 26, ";": 27, "EOF": 28, "open_directive": 29, "type_directive": 30, "arg_directive": 31, "close_directive": 32, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 6: "PIE", 8: "showData", 11: "txt", 12: "value", 13: "title", 14: "title_value", 15: "acc_title", 16: "acc_title_value", 17: "acc_descr", 18: "acc_descr_value", 19: "acc_descr_multiline_value", 20: "section", 24: ":", 26: "NEWLINE", 27: ";", 28: "EOF", 29: "open_directive", 30: "type_directive", 31: "arg_directive", 32: "close_directive" },
+ productions_: [0, [3, 2], [3, 2], [3, 2], [3, 3], [7, 0], [7, 2], [9, 2], [10, 0], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [5, 3], [5, 5], [4, 1], [4, 1], [4, 1], [21, 1], [22, 1], [25, 1], [23, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 4:
+ yy.setShowData(true);
+ break;
+ case 7:
+ this.$ = $$[$0 - 1];
+ break;
+ case 9:
+ yy.addSection($$[$0 - 1], yy.cleanupValue($$[$0]));
+ break;
+ case 10:
+ this.$ = $$[$0].trim();
+ yy.setDiagramTitle(this.$);
+ break;
+ case 11:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 12:
+ case 13:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 14:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 21:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 22:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 23:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 24:
+ yy.parseDirective("}%%", "close_directive", "pie");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, { 3: 11, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, o($V5, $V6, { 7: 12, 8: [1, 13] }), o($V7, [2, 18]), o($V7, [2, 19]), o($V7, [2, 20]), { 22: 14, 30: [1, 15] }, { 30: [2, 21] }, { 1: [2, 1] }, { 1: [2, 2] }, o($V8, $V9, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 3], 11: $Va, 13: $Vb, 15: $Vc, 17: $Vd, 19: $Ve, 20: $Vf, 29: $V4 }), o($V5, $V6, { 7: 25 }), { 23: 26, 24: [1, 27], 32: $Vg }, o([24, 32], [2, 22]), o($V5, [2, 6]), { 4: 29, 26: $V1, 27: $V2, 28: $V3 }, { 12: [1, 30] }, { 14: [1, 31] }, { 16: [1, 32] }, { 18: [1, 33] }, o($V8, [2, 13]), o($V8, [2, 14]), o($V8, [2, 15]), o($V8, $V9, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 4], 11: $Va, 13: $Vb, 15: $Vc, 17: $Vd, 19: $Ve, 20: $Vf, 29: $V4 }), o($Vh, [2, 16]), { 25: 34, 31: [1, 35] }, o($Vh, [2, 24]), o($V5, [2, 7]), o($V8, [2, 9]), o($V8, [2, 10]), o($V8, [2, 11]), o($V8, [2, 12]), { 23: 36, 32: $Vg }, { 32: [2, 23] }, o($Vh, [2, 17])],
+ defaultActions: { 9: [2, 21], 10: [2, 1], 11: [2, 2], 35: [2, 23] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 29;
+ case 1:
+ this.begin("type_directive");
+ return 30;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 24;
+ case 3:
+ this.popState();
+ this.popState();
+ return 32;
+ case 4:
+ return 31;
+ case 5:
+ break;
+ case 6:
+ break;
+ case 7:
+ return 26;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ this.begin("title");
+ return 13;
+ case 11:
+ this.popState();
+ return "title_value";
+ case 12:
+ this.begin("acc_title");
+ return 15;
+ case 13:
+ this.popState();
+ return "acc_title_value";
+ case 14:
+ this.begin("acc_descr");
+ return 17;
+ case 15:
+ this.popState();
+ return "acc_descr_value";
+ case 16:
+ this.begin("acc_descr_multiline");
+ break;
+ case 17:
+ this.popState();
+ break;
+ case 18:
+ return "acc_descr_multiline_value";
+ case 19:
+ this.begin("string");
+ break;
+ case 20:
+ this.popState();
+ break;
+ case 21:
+ return "txt";
+ case 22:
+ return 6;
+ case 23:
+ return 8;
+ case 24:
+ return "value";
+ case 25:
+ return 28;
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:[\s]+)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:pie\b)/i, /^(?:showData\b)/i, /^(?::[\s]*[\d]+(?:\.[\d]+)?)/i, /^(?:$)/i],
+ conditions: { "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "title": { "rules": [11], "inclusive": false }, "string": { "rules": [20, 21], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 12, 14, 16, 19, 22, 23, 24, 25], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+let sections = {};
+let showData = false;
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const addSection = function(id, value) {
+ id = common.sanitizeText(id, getConfig());
+ if (sections[id] === void 0) {
+ sections[id] = value;
+ log.debug("Added new section :", id);
+ }
+};
+const getSections = () => sections;
+const setShowData = function(toggle) {
+ showData = toggle;
+};
+const getShowData = function() {
+ return showData;
+};
+const cleanupValue = function(value) {
+ if (value.substring(0, 1) === ":") {
+ value = value.substring(1).trim();
+ return Number(value.trim());
+ } else {
+ return Number(value.trim());
+ }
+};
+const clear = function() {
+ sections = {};
+ showData = false;
+ clear$1();
+};
+const db = {
+ parseDirective,
+ getConfig: () => getConfig().pie,
+ addSection,
+ getSections,
+ cleanupValue,
+ clear,
+ setAccTitle,
+ getAccTitle,
+ setDiagramTitle,
+ getDiagramTitle,
+ setShowData,
+ getShowData,
+ getAccDescription,
+ setAccDescription
+};
+const getStyles = (options) => `
+ .pieCircle{
+ stroke: ${options.pieStrokeColor};
+ stroke-width : ${options.pieStrokeWidth};
+ opacity : ${options.pieOpacity};
+ }
+ .pieOuterCircle{
+ stroke: ${options.pieOuterStrokeColor};
+ stroke-width: ${options.pieOuterStrokeWidth};
+ fill: none;
+ }
+ .pieTitleText {
+ text-anchor: middle;
+ font-size: ${options.pieTitleTextSize};
+ fill: ${options.pieTitleTextColor};
+ font-family: ${options.fontFamily};
+ }
+ .slice {
+ font-family: ${options.fontFamily};
+ fill: ${options.pieSectionTextColor};
+ font-size:${options.pieSectionTextSize};
+ // fill: white;
+ }
+ .legend text {
+ fill: ${options.pieLegendTextColor};
+ font-family: ${options.fontFamily};
+ font-size: ${options.pieLegendTextSize};
+ }
+`;
+const styles = getStyles;
+let conf = getConfig();
+let width;
+const height = 450;
+const draw = (txt, id, _version, diagObj) => {
+ var _a;
+ try {
+ conf = getConfig();
+ log.debug("Rendering info diagram\n" + txt);
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ diagObj.db.clear();
+ diagObj.parser.parse(txt);
+ log.debug("Parsed info diagram");
+ const elem = doc.getElementById(id);
+ width = elem.parentElement.offsetWidth;
+ if (width === void 0) {
+ width = 1200;
+ }
+ if (conf.useWidth !== void 0) {
+ width = conf.useWidth;
+ }
+ if (conf.pie.useWidth !== void 0) {
+ width = conf.pie.useWidth;
+ }
+ const diagram2 = root.select("#" + id);
+ configureSvgSize(diagram2, height, width, conf.pie.useMaxWidth);
+ elem.setAttribute("viewBox", "0 0 " + width + " " + height);
+ var margin = 40;
+ var legendRectSize = 18;
+ var legendSpacing = 4;
+ var radius = Math.min(width, height) / 2 - margin;
+ var svg = diagram2.append("g").attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
+ var data = diagObj.db.getSections();
+ var sum = 0;
+ Object.keys(data).forEach(function(key) {
+ sum += data[key];
+ });
+ const themeVariables = conf.themeVariables;
+ var myGeneratedColors = [
+ themeVariables.pie1,
+ themeVariables.pie2,
+ themeVariables.pie3,
+ themeVariables.pie4,
+ themeVariables.pie5,
+ themeVariables.pie6,
+ themeVariables.pie7,
+ themeVariables.pie8,
+ themeVariables.pie9,
+ themeVariables.pie10,
+ themeVariables.pie11,
+ themeVariables.pie12
+ ];
+ const textPosition = ((_a = conf.pie) == null ? void 0 : _a.textPosition) ?? 0.75;
+ let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth);
+ outerStrokeWidth ?? (outerStrokeWidth = 2);
+ var color = ordinal().range(myGeneratedColors);
+ var pieData = Object.entries(data).map(function(el, idx) {
+ return {
+ order: idx,
+ name: el[0],
+ value: el[1]
+ };
+ });
+ var pie = d3pie().value(function(d) {
+ return d.value;
+ }).sort(function(a, b) {
+ return a.order - b.order;
+ });
+ var dataReady = pie(pieData);
+ var arcGenerator = d3arc().innerRadius(0).outerRadius(radius);
+ var labelArcGenerator = d3arc().innerRadius(radius * textPosition).outerRadius(radius * textPosition);
+ svg.append("circle").attr("cx", 0).attr("cy", 0).attr("r", radius + outerStrokeWidth / 2).attr("class", "pieOuterCircle");
+ svg.selectAll("mySlices").data(dataReady).enter().append("path").attr("d", arcGenerator).attr("fill", function(d) {
+ return color(d.data.name);
+ }).attr("class", "pieCircle");
+ svg.selectAll("mySlices").data(dataReady).enter().append("text").text(function(d) {
+ return (d.data.value / sum * 100).toFixed(0) + "%";
+ }).attr("transform", function(d) {
+ return "translate(" + labelArcGenerator.centroid(d) + ")";
+ }).style("text-anchor", "middle").attr("class", "slice");
+ svg.append("text").text(diagObj.db.getDiagramTitle()).attr("x", 0).attr("y", -(height - 50) / 2).attr("class", "pieTitleText");
+ var legend = svg.selectAll(".legend").data(color.domain()).enter().append("g").attr("class", "legend").attr("transform", function(d, i) {
+ const height2 = legendRectSize + legendSpacing;
+ const offset = height2 * color.domain().length / 2;
+ const horizontal = 12 * legendRectSize;
+ const vertical = i * height2 - offset;
+ return "translate(" + horizontal + "," + vertical + ")";
+ });
+ legend.append("rect").attr("width", legendRectSize).attr("height", legendRectSize).style("fill", color).style("stroke", color);
+ legend.data(dataReady).append("text").attr("x", legendRectSize + legendSpacing).attr("y", legendRectSize - legendSpacing).text(function(d) {
+ if (diagObj.db.getShowData() || conf.showData || conf.pie.showData) {
+ return d.data.name + " [" + d.data.value + "]";
+ } else {
+ return d.data.name;
+ }
+ });
+ } catch (e) {
+ log.error("Error while rendering info diagram");
+ log.error(e);
+ }
+};
+const renderer = {
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db,
+ renderer,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=pieDiagram-9555168c.js.map
diff --git a/scopegraphs-render-docs/doc/js/pieDiagram-db1a8a21.js b/scopegraphs-render-docs/doc/js/pieDiagram-db1a8a21.js
new file mode 100644
index 0000000..19e26ef
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/pieDiagram-db1a8a21.js
@@ -0,0 +1,773 @@
+import { g as getConfig, o as setAccTitle, p as getAccTitle, w as setDiagramTitle, x as getDiagramTitle, q as getAccDescription, v as setAccDescription, e as common, l as log, y as clear$1 } from "./commonDb-573409be.js";
+import { m as mermaidAPI } from "./mermaidAPI-3ae0f2f0.js";
+import { select, scaleOrdinal, pie, arc } from "d3";
+import { k as configureSvgSize, x as parseFontSize } from "./utils-d622194a.js";
+import "dompurify";
+import "dayjs";
+import "khroma";
+import "stylis";
+import "lodash-es/isEmpty.js";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 4], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 9], $V5 = [1, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], $V6 = [2, 5], $V7 = [1, 6, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], $V8 = [26, 27, 28], $V9 = [2, 8], $Va = [1, 18], $Vb = [1, 19], $Vc = [1, 20], $Vd = [1, 21], $Ve = [1, 22], $Vf = [1, 23], $Vg = [1, 28], $Vh = [6, 26, 27, 28, 29];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "eol": 4, "directive": 5, "PIE": 6, "document": 7, "showData": 8, "line": 9, "statement": 10, "txt": 11, "value": 12, "title": 13, "title_value": 14, "acc_title": 15, "acc_title_value": 16, "acc_descr": 17, "acc_descr_value": 18, "acc_descr_multiline_value": 19, "section": 20, "openDirective": 21, "typeDirective": 22, "closeDirective": 23, ":": 24, "argDirective": 25, "NEWLINE": 26, ";": 27, "EOF": 28, "open_directive": 29, "type_directive": 30, "arg_directive": 31, "close_directive": 32, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 6: "PIE", 8: "showData", 11: "txt", 12: "value", 13: "title", 14: "title_value", 15: "acc_title", 16: "acc_title_value", 17: "acc_descr", 18: "acc_descr_value", 19: "acc_descr_multiline_value", 20: "section", 24: ":", 26: "NEWLINE", 27: ";", 28: "EOF", 29: "open_directive", 30: "type_directive", 31: "arg_directive", 32: "close_directive" },
+ productions_: [0, [3, 2], [3, 2], [3, 2], [3, 3], [7, 0], [7, 2], [9, 2], [10, 0], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [5, 3], [5, 5], [4, 1], [4, 1], [4, 1], [21, 1], [22, 1], [25, 1], [23, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 4:
+ yy.setShowData(true);
+ break;
+ case 7:
+ this.$ = $$[$0 - 1];
+ break;
+ case 9:
+ yy.addSection($$[$0 - 1], yy.cleanupValue($$[$0]));
+ break;
+ case 10:
+ this.$ = $$[$0].trim();
+ yy.setDiagramTitle(this.$);
+ break;
+ case 11:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 12:
+ case 13:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 14:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 21:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 22:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 23:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 24:
+ yy.parseDirective("}%%", "close_directive", "pie");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, { 3: 11, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, o($V5, $V6, { 7: 12, 8: [1, 13] }), o($V7, [2, 18]), o($V7, [2, 19]), o($V7, [2, 20]), { 22: 14, 30: [1, 15] }, { 30: [2, 21] }, { 1: [2, 1] }, { 1: [2, 2] }, o($V8, $V9, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 3], 11: $Va, 13: $Vb, 15: $Vc, 17: $Vd, 19: $Ve, 20: $Vf, 29: $V4 }), o($V5, $V6, { 7: 25 }), { 23: 26, 24: [1, 27], 32: $Vg }, o([24, 32], [2, 22]), o($V5, [2, 6]), { 4: 29, 26: $V1, 27: $V2, 28: $V3 }, { 12: [1, 30] }, { 14: [1, 31] }, { 16: [1, 32] }, { 18: [1, 33] }, o($V8, [2, 13]), o($V8, [2, 14]), o($V8, [2, 15]), o($V8, $V9, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 4], 11: $Va, 13: $Vb, 15: $Vc, 17: $Vd, 19: $Ve, 20: $Vf, 29: $V4 }), o($Vh, [2, 16]), { 25: 34, 31: [1, 35] }, o($Vh, [2, 24]), o($V5, [2, 7]), o($V8, [2, 9]), o($V8, [2, 10]), o($V8, [2, 11]), o($V8, [2, 12]), { 23: 36, 32: $Vg }, { 32: [2, 23] }, o($Vh, [2, 17])],
+ defaultActions: { 9: [2, 21], 10: [2, 1], 11: [2, 2], 35: [2, 23] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 29;
+ case 1:
+ this.begin("type_directive");
+ return 30;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 24;
+ case 3:
+ this.popState();
+ this.popState();
+ return 32;
+ case 4:
+ return 31;
+ case 5:
+ break;
+ case 6:
+ break;
+ case 7:
+ return 26;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ this.begin("title");
+ return 13;
+ case 11:
+ this.popState();
+ return "title_value";
+ case 12:
+ this.begin("acc_title");
+ return 15;
+ case 13:
+ this.popState();
+ return "acc_title_value";
+ case 14:
+ this.begin("acc_descr");
+ return 17;
+ case 15:
+ this.popState();
+ return "acc_descr_value";
+ case 16:
+ this.begin("acc_descr_multiline");
+ break;
+ case 17:
+ this.popState();
+ break;
+ case 18:
+ return "acc_descr_multiline_value";
+ case 19:
+ this.begin("string");
+ break;
+ case 20:
+ this.popState();
+ break;
+ case 21:
+ return "txt";
+ case 22:
+ return 6;
+ case 23:
+ return 8;
+ case 24:
+ return "value";
+ case 25:
+ return 28;
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:[\s]+)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:pie\b)/i, /^(?:showData\b)/i, /^(?::[\s]*[\d]+(?:\.[\d]+)?)/i, /^(?:$)/i],
+ conditions: { "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "title": { "rules": [11], "inclusive": false }, "string": { "rules": [20, 21], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 12, 14, 16, 19, 22, 23, 24, 25], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+let sections = {};
+let showData = false;
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const addSection = function(id, value) {
+ id = common.sanitizeText(id, getConfig());
+ if (sections[id] === void 0) {
+ sections[id] = value;
+ log.debug("Added new section :", id);
+ }
+};
+const getSections = () => sections;
+const setShowData = function(toggle) {
+ showData = toggle;
+};
+const getShowData = function() {
+ return showData;
+};
+const cleanupValue = function(value) {
+ if (value.substring(0, 1) === ":") {
+ value = value.substring(1).trim();
+ return Number(value.trim());
+ } else {
+ return Number(value.trim());
+ }
+};
+const clear = function() {
+ sections = {};
+ showData = false;
+ clear$1();
+};
+const db = {
+ parseDirective,
+ getConfig: () => getConfig().pie,
+ addSection,
+ getSections,
+ cleanupValue,
+ clear,
+ setAccTitle,
+ getAccTitle,
+ setDiagramTitle,
+ getDiagramTitle,
+ setShowData,
+ getShowData,
+ getAccDescription,
+ setAccDescription
+};
+const getStyles = (options) => `
+ .pieCircle{
+ stroke: ${options.pieStrokeColor};
+ stroke-width : ${options.pieStrokeWidth};
+ opacity : ${options.pieOpacity};
+ }
+ .pieOuterCircle{
+ stroke: ${options.pieOuterStrokeColor};
+ stroke-width: ${options.pieOuterStrokeWidth};
+ fill: none;
+ }
+ .pieTitleText {
+ text-anchor: middle;
+ font-size: ${options.pieTitleTextSize};
+ fill: ${options.pieTitleTextColor};
+ font-family: ${options.fontFamily};
+ }
+ .slice {
+ font-family: ${options.fontFamily};
+ fill: ${options.pieSectionTextColor};
+ font-size:${options.pieSectionTextSize};
+ // fill: white;
+ }
+ .legend text {
+ fill: ${options.pieLegendTextColor};
+ font-family: ${options.fontFamily};
+ font-size: ${options.pieLegendTextSize};
+ }
+`;
+const styles = getStyles;
+let conf = getConfig();
+let width;
+const height = 450;
+const draw = (txt, id, _version, diagObj) => {
+ var _a;
+ try {
+ conf = getConfig();
+ log.debug("Rendering info diagram\n" + txt);
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ diagObj.db.clear();
+ diagObj.parser.parse(txt);
+ log.debug("Parsed info diagram");
+ const elem = doc.getElementById(id);
+ width = elem.parentElement.offsetWidth;
+ if (width === void 0) {
+ width = 1200;
+ }
+ if (conf.useWidth !== void 0) {
+ width = conf.useWidth;
+ }
+ if (conf.pie.useWidth !== void 0) {
+ width = conf.pie.useWidth;
+ }
+ const diagram2 = root.select("#" + id);
+ configureSvgSize(diagram2, height, width, conf.pie.useMaxWidth);
+ elem.setAttribute("viewBox", "0 0 " + width + " " + height);
+ var margin = 40;
+ var legendRectSize = 18;
+ var legendSpacing = 4;
+ var radius = Math.min(width, height) / 2 - margin;
+ var svg = diagram2.append("g").attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
+ var data = diagObj.db.getSections();
+ var sum = 0;
+ Object.keys(data).forEach(function(key) {
+ sum += data[key];
+ });
+ const themeVariables = conf.themeVariables;
+ var myGeneratedColors = [
+ themeVariables.pie1,
+ themeVariables.pie2,
+ themeVariables.pie3,
+ themeVariables.pie4,
+ themeVariables.pie5,
+ themeVariables.pie6,
+ themeVariables.pie7,
+ themeVariables.pie8,
+ themeVariables.pie9,
+ themeVariables.pie10,
+ themeVariables.pie11,
+ themeVariables.pie12
+ ];
+ const textPosition = ((_a = conf.pie) == null ? void 0 : _a.textPosition) ?? 0.75;
+ let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth);
+ outerStrokeWidth ?? (outerStrokeWidth = 2);
+ var color = scaleOrdinal().range(myGeneratedColors);
+ var pieData = Object.entries(data).map(function(el, idx) {
+ return {
+ order: idx,
+ name: el[0],
+ value: el[1]
+ };
+ });
+ var pie$1 = pie().value(function(d) {
+ return d.value;
+ }).sort(function(a, b) {
+ return a.order - b.order;
+ });
+ var dataReady = pie$1(pieData);
+ var arcGenerator = arc().innerRadius(0).outerRadius(radius);
+ var labelArcGenerator = arc().innerRadius(radius * textPosition).outerRadius(radius * textPosition);
+ svg.append("circle").attr("cx", 0).attr("cy", 0).attr("r", radius + outerStrokeWidth / 2).attr("class", "pieOuterCircle");
+ svg.selectAll("mySlices").data(dataReady).enter().append("path").attr("d", arcGenerator).attr("fill", function(d) {
+ return color(d.data.name);
+ }).attr("class", "pieCircle");
+ svg.selectAll("mySlices").data(dataReady).enter().append("text").text(function(d) {
+ return (d.data.value / sum * 100).toFixed(0) + "%";
+ }).attr("transform", function(d) {
+ return "translate(" + labelArcGenerator.centroid(d) + ")";
+ }).style("text-anchor", "middle").attr("class", "slice");
+ svg.append("text").text(diagObj.db.getDiagramTitle()).attr("x", 0).attr("y", -(height - 50) / 2).attr("class", "pieTitleText");
+ var legend = svg.selectAll(".legend").data(color.domain()).enter().append("g").attr("class", "legend").attr("transform", function(d, i) {
+ const height2 = legendRectSize + legendSpacing;
+ const offset = height2 * color.domain().length / 2;
+ const horizontal = 12 * legendRectSize;
+ const vertical = i * height2 - offset;
+ return "translate(" + horizontal + "," + vertical + ")";
+ });
+ legend.append("rect").attr("width", legendRectSize).attr("height", legendRectSize).style("fill", color).style("stroke", color);
+ legend.data(dataReady).append("text").attr("x", legendRectSize + legendSpacing).attr("y", legendRectSize - legendSpacing).text(function(d) {
+ if (diagObj.db.getShowData() || conf.showData || conf.pie.showData) {
+ return d.data.name + " [" + d.data.value + "]";
+ } else {
+ return d.data.name;
+ }
+ });
+ } catch (e) {
+ log.error("Error while rendering info diagram");
+ log.error(e);
+ }
+};
+const renderer = {
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db,
+ renderer,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=pieDiagram-db1a8a21.js.map
diff --git a/scopegraphs-render-docs/doc/js/pieDiagram-ffb7c1e5.js b/scopegraphs-render-docs/doc/js/pieDiagram-ffb7c1e5.js
new file mode 100644
index 0000000..50b5b28
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/pieDiagram-ffb7c1e5.js
@@ -0,0 +1,609 @@
+import { g as U, q as gt, v as dt, y as mt, z as _t, w as vt, x as kt, f as bt, l as B, A as xt, h as it } from "./commonDb-41f8b4c5.js";
+import { m as St } from "./mermaidAPI-67f627de.js";
+import { K as nt, v as wt, N as At } from "./utils-8ea37061.js";
+import { i as Et } from "./init-f9637058.js";
+import { a as Dt } from "./array-2ff2c7a6.js";
+import { c as j } from "./constant-2fe7eae5.js";
+import { d as lt } from "./arc-f7872e1e.js";
+class ct extends Map {
+ constructor(s, c = It) {
+ if (super(), Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: c } }), s != null)
+ for (const [o, y] of s)
+ this.set(o, y);
+ }
+ get(s) {
+ return super.get(ot(this, s));
+ }
+ has(s) {
+ return super.has(ot(this, s));
+ }
+ set(s, c) {
+ return super.set(Tt(this, s), c);
+ }
+ delete(s) {
+ return super.delete($t(this, s));
+ }
+}
+function ot({ _intern: t, _key: s }, c) {
+ const o = s(c);
+ return t.has(o) ? t.get(o) : c;
+}
+function Tt({ _intern: t, _key: s }, c) {
+ const o = s(c);
+ return t.has(o) ? t.get(o) : (t.set(o, c), c);
+}
+function $t({ _intern: t, _key: s }, c) {
+ const o = s(c);
+ return t.has(o) && (c = t.get(o), t.delete(o)), c;
+}
+function It(t) {
+ return t !== null && typeof t == "object" ? t.valueOf() : t;
+}
+const ht = Symbol("implicit");
+function ut() {
+ var t = new ct(), s = [], c = [], o = ht;
+ function y(u) {
+ let h = t.get(u);
+ if (h === void 0) {
+ if (o !== ht)
+ return o;
+ t.set(u, h = s.push(u) - 1);
+ }
+ return c[h % c.length];
+ }
+ return y.domain = function(u) {
+ if (!arguments.length)
+ return s.slice();
+ s = [], t = new ct();
+ for (const h of u)
+ t.has(h) || t.set(h, s.push(h) - 1);
+ return y;
+ }, y.range = function(u) {
+ return arguments.length ? (c = Array.from(u), y) : c.slice();
+ }, y.unknown = function(u) {
+ return arguments.length ? (o = u, y) : o;
+ }, y.copy = function() {
+ return ut(s, c).unknown(o);
+ }, Et.apply(y, arguments), y;
+}
+function Vt(t, s) {
+ return s < t ? -1 : s > t ? 1 : s >= t ? 0 : NaN;
+}
+function Pt(t) {
+ return t;
+}
+function Ot() {
+ var t = Pt, s = Vt, c = null, o = j(0), y = j(nt), u = j(0);
+ function h(l) {
+ var g, m = (l = Dt(l)).length, D, C, x = 0, $ = new Array(m), w = new Array(m), A = +o.apply(this, arguments), N = Math.min(nt, Math.max(-nt, y.apply(this, arguments) - A)), W, I = Math.min(Math.abs(N) / m, u.apply(this, arguments)), V = I * (N < 0 ? -1 : 1), v;
+ for (g = 0; g < m; ++g)
+ (v = w[$[g] = g] = +t(l[g], g, l)) > 0 && (x += v);
+ for (s != null ? $.sort(function(E, k) {
+ return s(w[E], w[k]);
+ }) : c != null && $.sort(function(E, k) {
+ return c(l[E], l[k]);
+ }), g = 0, C = x ? (N - m * V) / x : 0; g < m; ++g, A = W)
+ D = $[g], v = w[D], W = A + (v > 0 ? v * C : 0) + V, w[D] = {
+ data: l[D],
+ index: g,
+ value: v,
+ startAngle: A,
+ endAngle: W,
+ padAngle: I
+ };
+ return w;
+ }
+ return h.value = function(l) {
+ return arguments.length ? (t = typeof l == "function" ? l : j(+l), h) : t;
+ }, h.sortValues = function(l) {
+ return arguments.length ? (s = l, c = null, h) : s;
+ }, h.sort = function(l) {
+ return arguments.length ? (c = l, s = null, h) : c;
+ }, h.startAngle = function(l) {
+ return arguments.length ? (o = typeof l == "function" ? l : j(+l), h) : o;
+ }, h.endAngle = function(l) {
+ return arguments.length ? (y = typeof l == "function" ? l : j(+l), h) : y;
+ }, h.padAngle = function(l) {
+ return arguments.length ? (u = typeof l == "function" ? l : j(+l), h) : u;
+ }, h;
+}
+var rt = function() {
+ var t = function(k, e, i, a) {
+ for (i = i || {}, a = k.length; a--; i[k[a]] = e)
+ ;
+ return i;
+ }, s = [1, 4], c = [1, 5], o = [1, 6], y = [1, 7], u = [1, 9], h = [1, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], l = [2, 5], g = [1, 6, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], m = [26, 27, 28], D = [2, 8], C = [1, 18], x = [1, 19], $ = [1, 20], w = [1, 21], A = [1, 22], N = [1, 23], W = [1, 28], I = [6, 26, 27, 28, 29], V = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, eol: 4, directive: 5, PIE: 6, document: 7, showData: 8, line: 9, statement: 10, txt: 11, value: 12, title: 13, title_value: 14, acc_title: 15, acc_title_value: 16, acc_descr: 17, acc_descr_value: 18, acc_descr_multiline_value: 19, section: 20, openDirective: 21, typeDirective: 22, closeDirective: 23, ":": 24, argDirective: 25, NEWLINE: 26, ";": 27, EOF: 28, open_directive: 29, type_directive: 30, arg_directive: 31, close_directive: 32, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 6: "PIE", 8: "showData", 11: "txt", 12: "value", 13: "title", 14: "title_value", 15: "acc_title", 16: "acc_title_value", 17: "acc_descr", 18: "acc_descr_value", 19: "acc_descr_multiline_value", 20: "section", 24: ":", 26: "NEWLINE", 27: ";", 28: "EOF", 29: "open_directive", 30: "type_directive", 31: "arg_directive", 32: "close_directive" },
+ productions_: [0, [3, 2], [3, 2], [3, 2], [3, 3], [7, 0], [7, 2], [9, 2], [10, 0], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [5, 3], [5, 5], [4, 1], [4, 1], [4, 1], [21, 1], [22, 1], [25, 1], [23, 1]],
+ performAction: function(e, i, a, n, f, r, p) {
+ var d = r.length - 1;
+ switch (f) {
+ case 4:
+ n.setShowData(!0);
+ break;
+ case 7:
+ this.$ = r[d - 1];
+ break;
+ case 9:
+ n.addSection(r[d - 1], n.cleanupValue(r[d]));
+ break;
+ case 10:
+ this.$ = r[d].trim(), n.setDiagramTitle(this.$);
+ break;
+ case 11:
+ this.$ = r[d].trim(), n.setAccTitle(this.$);
+ break;
+ case 12:
+ case 13:
+ this.$ = r[d].trim(), n.setAccDescription(this.$);
+ break;
+ case 14:
+ n.addSection(r[d].substr(8)), this.$ = r[d].substr(8);
+ break;
+ case 21:
+ n.parseDirective("%%{", "open_directive");
+ break;
+ case 22:
+ n.parseDirective(r[d], "type_directive");
+ break;
+ case 23:
+ r[d] = r[d].trim().replace(/'/g, '"'), n.parseDirective(r[d], "arg_directive");
+ break;
+ case 24:
+ n.parseDirective("}%%", "close_directive", "pie");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: 3, 6: s, 21: 8, 26: c, 27: o, 28: y, 29: u }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: s, 21: 8, 26: c, 27: o, 28: y, 29: u }, { 3: 11, 4: 2, 5: 3, 6: s, 21: 8, 26: c, 27: o, 28: y, 29: u }, t(h, l, { 7: 12, 8: [1, 13] }), t(g, [2, 18]), t(g, [2, 19]), t(g, [2, 20]), { 22: 14, 30: [1, 15] }, { 30: [2, 21] }, { 1: [2, 1] }, { 1: [2, 2] }, t(m, D, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 3], 11: C, 13: x, 15: $, 17: w, 19: A, 20: N, 29: u }), t(h, l, { 7: 25 }), { 23: 26, 24: [1, 27], 32: W }, t([24, 32], [2, 22]), t(h, [2, 6]), { 4: 29, 26: c, 27: o, 28: y }, { 12: [1, 30] }, { 14: [1, 31] }, { 16: [1, 32] }, { 18: [1, 33] }, t(m, [2, 13]), t(m, [2, 14]), t(m, [2, 15]), t(m, D, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 4], 11: C, 13: x, 15: $, 17: w, 19: A, 20: N, 29: u }), t(I, [2, 16]), { 25: 34, 31: [1, 35] }, t(I, [2, 24]), t(h, [2, 7]), t(m, [2, 9]), t(m, [2, 10]), t(m, [2, 11]), t(m, [2, 12]), { 23: 36, 32: W }, { 32: [2, 23] }, t(I, [2, 17])],
+ defaultActions: { 9: [2, 21], 10: [2, 1], 11: [2, 2], 35: [2, 23] },
+ parseError: function(e, i) {
+ if (i.recoverable)
+ this.trace(e);
+ else {
+ var a = new Error(e);
+ throw a.hash = i, a;
+ }
+ },
+ parse: function(e) {
+ var i = this, a = [0], n = [], f = [null], r = [], p = this.table, d = "", F = 0, q = 0, Q = 2, K = 1, ft = r.slice.call(arguments, 1), _ = Object.create(this.lexer), M = { yy: {} };
+ for (var X in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, X) && (M.yy[X] = this.yy[X]);
+ _.setInput(e, M.yy), M.yy.lexer = _, M.yy.parser = this, typeof _.yylloc > "u" && (_.yylloc = {});
+ var Z = _.yylloc;
+ r.push(Z);
+ var pt = _.options && _.options.ranges;
+ typeof M.yy.parseError == "function" ? this.parseError = M.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function yt() {
+ var O;
+ return O = n.pop() || _.lex() || K, typeof O != "number" && (O instanceof Array && (n = O, O = n.pop()), O = i.symbols_[O] || O), O;
+ }
+ for (var b, z, S, tt, R = {}, G, P, at, H; ; ) {
+ if (z = a[a.length - 1], this.defaultActions[z] ? S = this.defaultActions[z] : ((b === null || typeof b > "u") && (b = yt()), S = p[z] && p[z][b]), typeof S > "u" || !S.length || !S[0]) {
+ var et = "";
+ H = [];
+ for (G in p[z])
+ this.terminals_[G] && G > Q && H.push("'" + this.terminals_[G] + "'");
+ _.showPosition ? et = "Parse error on line " + (F + 1) + `:
+` + _.showPosition() + `
+Expecting ` + H.join(", ") + ", got '" + (this.terminals_[b] || b) + "'" : et = "Parse error on line " + (F + 1) + ": Unexpected " + (b == K ? "end of input" : "'" + (this.terminals_[b] || b) + "'"), this.parseError(et, {
+ text: _.match,
+ token: this.terminals_[b] || b,
+ line: _.yylineno,
+ loc: Z,
+ expected: H
+ });
+ }
+ if (S[0] instanceof Array && S.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + z + ", token: " + b);
+ switch (S[0]) {
+ case 1:
+ a.push(b), f.push(_.yytext), r.push(_.yylloc), a.push(S[1]), b = null, q = _.yyleng, d = _.yytext, F = _.yylineno, Z = _.yylloc;
+ break;
+ case 2:
+ if (P = this.productions_[S[1]][1], R.$ = f[f.length - P], R._$ = {
+ first_line: r[r.length - (P || 1)].first_line,
+ last_line: r[r.length - 1].last_line,
+ first_column: r[r.length - (P || 1)].first_column,
+ last_column: r[r.length - 1].last_column
+ }, pt && (R._$.range = [
+ r[r.length - (P || 1)].range[0],
+ r[r.length - 1].range[1]
+ ]), tt = this.performAction.apply(R, [
+ d,
+ q,
+ F,
+ M.yy,
+ S[1],
+ f,
+ r
+ ].concat(ft)), typeof tt < "u")
+ return tt;
+ P && (a = a.slice(0, -1 * P * 2), f = f.slice(0, -1 * P), r = r.slice(0, -1 * P)), a.push(this.productions_[S[1]][0]), f.push(R.$), r.push(R._$), at = p[a[a.length - 2]][a[a.length - 1]], a.push(at);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, v = function() {
+ var k = {
+ EOF: 1,
+ parseError: function(i, a) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(i, a);
+ else
+ throw new Error(i);
+ },
+ // resets the lexer, sets new input
+ setInput: function(e, i) {
+ return this.yy = i || this.yy || {}, this._input = e, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var e = this._input[0];
+ this.yytext += e, this.yyleng++, this.offset++, this.match += e, this.matched += e;
+ var i = e.match(/(?:\r\n?|\n).*/g);
+ return i ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), e;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(e) {
+ var i = e.length, a = e.split(/(?:\r\n?|\n)/g);
+ this._input = e + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - i), this.offset -= i;
+ var n = 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), a.length - 1 && (this.yylineno -= a.length - 1);
+ var f = 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: a ? (a.length === n.length ? this.yylloc.first_column : 0) + n[n.length - a.length].length - a[0].length : this.yylloc.first_column - i
+ }, this.options.ranges && (this.yylloc.range = [f[0], f[0] + this.yyleng - i]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(e) {
+ this.unput(this.match.slice(e));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var e = this.matched.substr(0, this.matched.length - this.match.length);
+ return (e.length > 20 ? "..." : "") + e.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var e = this.match;
+ return e.length < 20 && (e += this._input.substr(0, 20 - e.length)), (e.substr(0, 20) + (e.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var e = this.pastInput(), i = new Array(e.length + 1).join("-");
+ return e + this.upcomingInput() + `
+` + i + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(e, i) {
+ var a, n, f;
+ if (this.options.backtrack_lexer && (f = {
+ 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 && (f.yylloc.range = this.yylloc.range.slice(0))), n = e[0].match(/(?:\r\n?|\n).*/g), n && (this.yylineno += n.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: n ? n[n.length - 1].length - n[n.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + e[0].length
+ }, this.yytext += e[0], this.match += e[0], this.matches = e, 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(e[0].length), this.matched += e[0], a = this.performAction.call(this, this.yy, this, i, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), a)
+ return a;
+ if (this._backtrack) {
+ for (var r in f)
+ this[r] = f[r];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var e, i, a, n;
+ this._more || (this.yytext = "", this.match = "");
+ for (var f = this._currentRules(), r = 0; r < f.length; r++)
+ if (a = this._input.match(this.rules[f[r]]), a && (!i || a[0].length > i[0].length)) {
+ if (i = a, n = r, this.options.backtrack_lexer) {
+ if (e = this.test_match(a, f[r]), e !== !1)
+ return e;
+ if (this._backtrack) {
+ i = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return i ? (e = this.test_match(i, f[n]), e !== !1 ? e : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var i = this.next();
+ return i || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(i) {
+ this.conditionStack.push(i);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var i = this.conditionStack.length - 1;
+ return i > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(i) {
+ return i = this.conditionStack.length - 1 - Math.abs(i || 0), i >= 0 ? this.conditionStack[i] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(i) {
+ this.begin(i);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": !0 },
+ performAction: function(i, a, n, f) {
+ switch (n) {
+ case 0:
+ return this.begin("open_directive"), 29;
+ case 1:
+ return this.begin("type_directive"), 30;
+ case 2:
+ return this.popState(), this.begin("arg_directive"), 24;
+ case 3:
+ return this.popState(), this.popState(), 32;
+ case 4:
+ return 31;
+ case 5:
+ break;
+ case 6:
+ break;
+ case 7:
+ return 26;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ return this.begin("title"), 13;
+ case 11:
+ return this.popState(), "title_value";
+ case 12:
+ return this.begin("acc_title"), 15;
+ case 13:
+ return this.popState(), "acc_title_value";
+ case 14:
+ return this.begin("acc_descr"), 17;
+ case 15:
+ return this.popState(), "acc_descr_value";
+ case 16:
+ this.begin("acc_descr_multiline");
+ break;
+ case 17:
+ this.popState();
+ break;
+ case 18:
+ return "acc_descr_multiline_value";
+ case 19:
+ this.begin("string");
+ break;
+ case 20:
+ this.popState();
+ break;
+ case 21:
+ return "txt";
+ case 22:
+ return 6;
+ case 23:
+ return 8;
+ case 24:
+ return "value";
+ case 25:
+ return 28;
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:[\s]+)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:pie\b)/i, /^(?:showData\b)/i, /^(?::[\s]*[\d]+(?:\.[\d]+)?)/i, /^(?:$)/i],
+ conditions: { acc_descr_multiline: { rules: [17, 18], inclusive: !1 }, acc_descr: { rules: [15], inclusive: !1 }, acc_title: { rules: [13], inclusive: !1 }, close_directive: { rules: [], inclusive: !1 }, arg_directive: { rules: [3, 4], inclusive: !1 }, type_directive: { rules: [2, 3], inclusive: !1 }, open_directive: { rules: [1], inclusive: !1 }, title: { rules: [11], inclusive: !1 }, string: { rules: [20, 21], inclusive: !1 }, INITIAL: { rules: [0, 5, 6, 7, 8, 9, 10, 12, 14, 16, 19, 22, 23, 24, 25], inclusive: !0 } }
+ };
+ return k;
+ }();
+ V.lexer = v;
+ function E() {
+ this.yy = {};
+ }
+ return E.prototype = V, V.Parser = E, new E();
+}();
+rt.parser = rt;
+const Lt = rt;
+let J = {}, st = !1;
+const Nt = function(t, s, c) {
+ St.parseDirective(this, t, s, c);
+}, Wt = function(t, s) {
+ t = bt.sanitizeText(t, U()), J[t] === void 0 && (J[t] = s, B.debug("Added new section :", t));
+}, Ct = () => J, Ft = function(t) {
+ st = t;
+}, Mt = function() {
+ return st;
+}, zt = function(t) {
+ return t.substring(0, 1) === ":" && (t = t.substring(1).trim()), Number(t.trim());
+}, jt = function() {
+ J = {}, st = !1, xt();
+}, Rt = {
+ parseDirective: Nt,
+ getConfig: () => U().pie,
+ addSection: Wt,
+ getSections: Ct,
+ cleanupValue: zt,
+ clear: jt,
+ setAccTitle: gt,
+ getAccTitle: dt,
+ setDiagramTitle: mt,
+ getDiagramTitle: _t,
+ setShowData: Ft,
+ getShowData: Mt,
+ getAccDescription: vt,
+ setAccDescription: kt
+}, Yt = (t) => `
+ .pieCircle{
+ stroke: ${t.pieStrokeColor};
+ stroke-width : ${t.pieStrokeWidth};
+ opacity : ${t.pieOpacity};
+ }
+ .pieOuterCircle{
+ stroke: ${t.pieOuterStrokeColor};
+ stroke-width: ${t.pieOuterStrokeWidth};
+ fill: none;
+ }
+ .pieTitleText {
+ text-anchor: middle;
+ font-size: ${t.pieTitleTextSize};
+ fill: ${t.pieTitleTextColor};
+ font-family: ${t.fontFamily};
+ }
+ .slice {
+ font-family: ${t.fontFamily};
+ fill: ${t.pieSectionTextColor};
+ font-size:${t.pieSectionTextSize};
+ // fill: white;
+ }
+ .legend text {
+ fill: ${t.pieLegendTextColor};
+ font-family: ${t.fontFamily};
+ font-size: ${t.pieLegendTextSize};
+ }
+`, Bt = Yt;
+let T = U(), L;
+const Y = 450, Ut = (t, s, c, o) => {
+ var V;
+ try {
+ T = U(), B.debug(`Rendering info diagram
+` + t);
+ const v = U().securityLevel;
+ let E;
+ v === "sandbox" && (E = it("#i" + s));
+ const k = v === "sandbox" ? it(E.nodes()[0].contentDocument.body) : it("body"), e = v === "sandbox" ? E.nodes()[0].contentDocument : document;
+ o.db.clear(), o.parser.parse(t), B.debug("Parsed info diagram");
+ const i = e.getElementById(s);
+ L = i.parentElement.offsetWidth, L === void 0 && (L = 1200), T.useWidth !== void 0 && (L = T.useWidth), T.pie.useWidth !== void 0 && (L = T.pie.useWidth);
+ const a = k.select("#" + s);
+ wt(a, Y, L, T.pie.useMaxWidth), i.setAttribute("viewBox", "0 0 " + L + " " + Y);
+ var y = 40, u = 18, h = 4, l = Math.min(L, Y) / 2 - y, g = a.append("g").attr("transform", "translate(" + L / 2 + "," + Y / 2 + ")"), m = o.db.getSections(), D = 0;
+ Object.keys(m).forEach(function(p) {
+ D += m[p];
+ });
+ const n = T.themeVariables;
+ var C = [
+ n.pie1,
+ n.pie2,
+ n.pie3,
+ n.pie4,
+ n.pie5,
+ n.pie6,
+ n.pie7,
+ n.pie8,
+ n.pie9,
+ n.pie10,
+ n.pie11,
+ n.pie12
+ ];
+ const f = ((V = T.pie) == null ? void 0 : V.textPosition) ?? 0.75;
+ let [r] = At(n.pieOuterStrokeWidth);
+ r ?? (r = 2);
+ var x = ut().range(C), $ = Object.entries(m).map(function(p, d) {
+ return {
+ order: d,
+ name: p[0],
+ value: p[1]
+ };
+ }), w = Ot().value(function(p) {
+ return p.value;
+ }).sort(function(p, d) {
+ return p.order - d.order;
+ }), A = w($), N = lt().innerRadius(0).outerRadius(l), W = lt().innerRadius(l * f).outerRadius(l * f);
+ g.append("circle").attr("cx", 0).attr("cy", 0).attr("r", l + r / 2).attr("class", "pieOuterCircle"), g.selectAll("mySlices").data(A).enter().append("path").attr("d", N).attr("fill", function(p) {
+ return x(p.data.name);
+ }).attr("class", "pieCircle"), g.selectAll("mySlices").data(A).enter().append("text").text(function(p) {
+ return (p.data.value / D * 100).toFixed(0) + "%";
+ }).attr("transform", function(p) {
+ return "translate(" + W.centroid(p) + ")";
+ }).style("text-anchor", "middle").attr("class", "slice"), g.append("text").text(o.db.getDiagramTitle()).attr("x", 0).attr("y", -(Y - 50) / 2).attr("class", "pieTitleText");
+ var I = g.selectAll(".legend").data(x.domain()).enter().append("g").attr("class", "legend").attr("transform", function(p, d) {
+ const F = u + h, q = F * x.domain().length / 2, Q = 12 * u, K = d * F - q;
+ return "translate(" + Q + "," + K + ")";
+ });
+ I.append("rect").attr("width", u).attr("height", u).style("fill", x).style("stroke", x), I.data(A).append("text").attr("x", u + h).attr("y", u - h).text(function(p) {
+ return o.db.getShowData() || T.showData || T.pie.showData ? p.data.name + " [" + p.data.value + "]" : p.data.name;
+ });
+ } catch (v) {
+ B.error("Error while rendering info diagram"), B.error(v);
+ }
+}, qt = {
+ draw: Ut
+}, te = {
+ parser: Lt,
+ db: Rt,
+ renderer: qt,
+ styles: Bt
+};
+export {
+ te as diagram
+};
+//# sourceMappingURL=pieDiagram-ffb7c1e5.js.map
diff --git a/scopegraphs-render-docs/doc/js/requirementDiagram-51a5ec78.js b/scopegraphs-render-docs/doc/js/requirementDiagram-51a5ec78.js
new file mode 100644
index 0000000..f5d1860
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/requirementDiagram-51a5ec78.js
@@ -0,0 +1,796 @@
+import { g as xe, q as Fe, v as Me, x as Pe, w as Ye, l as ve, A as Ue, h as oe, f as Te } from "./commonDb-41f8b4c5.js";
+import { m as Be } from "./mermaidAPI-67f627de.js";
+import { G as Qe, l as He } from "./layout-492ec81d.js";
+import { v as We } from "./utils-8ea37061.js";
+import { l as Ke } from "./line-05ccbb85.js";
+import "./array-2ff2c7a6.js";
+import "./constant-2fe7eae5.js";
+var he = function() {
+ var e = function(q, r, s, l) {
+ for (s = s || {}, l = q.length; l--; s[q[l]] = r)
+ ;
+ return s;
+ }, t = [1, 3], a = [1, 5], c = [1, 6], d = [1, 7], u = [1, 8], p = [5, 6, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72], h = [1, 22], o = [2, 13], g = [1, 26], R = [1, 27], x = [1, 28], S = [1, 29], T = [1, 30], v = [1, 31], A = [1, 24], N = [1, 32], w = [1, 33], pe = [1, 36], F = [71, 72], fe = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 60, 62, 71, 72], _e = [1, 56], ye = [1, 57], ge = [1, 58], Ee = [1, 59], Re = [1, 60], me = [1, 61], Ie = [1, 62], O = [62, 63], M = [1, 74], P = [1, 70], Y = [1, 71], U = [1, 72], B = [1, 73], Q = [1, 75], j = [1, 79], X = [1, 80], J = [1, 77], Z = [1, 78], m = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72], re = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, directive: 4, NEWLINE: 5, RD: 6, diagram: 7, EOF: 8, openDirective: 9, typeDirective: 10, closeDirective: 11, ":": 12, argDirective: 13, acc_title: 14, acc_title_value: 15, acc_descr: 16, acc_descr_value: 17, acc_descr_multiline_value: 18, open_directive: 19, type_directive: 20, arg_directive: 21, close_directive: 22, requirementDef: 23, elementDef: 24, relationshipDef: 25, requirementType: 26, requirementName: 27, STRUCT_START: 28, requirementBody: 29, ID: 30, COLONSEP: 31, id: 32, TEXT: 33, text: 34, RISK: 35, riskLevel: 36, VERIFYMTHD: 37, verifyType: 38, STRUCT_STOP: 39, REQUIREMENT: 40, FUNCTIONAL_REQUIREMENT: 41, INTERFACE_REQUIREMENT: 42, PERFORMANCE_REQUIREMENT: 43, PHYSICAL_REQUIREMENT: 44, DESIGN_CONSTRAINT: 45, LOW_RISK: 46, MED_RISK: 47, HIGH_RISK: 48, VERIFY_ANALYSIS: 49, VERIFY_DEMONSTRATION: 50, VERIFY_INSPECTION: 51, VERIFY_TEST: 52, ELEMENT: 53, elementName: 54, elementBody: 55, TYPE: 56, type: 57, DOCREF: 58, ref: 59, END_ARROW_L: 60, relationship: 61, LINE: 62, END_ARROW_R: 63, CONTAINS: 64, COPIES: 65, DERIVES: 66, SATISFIES: 67, VERIFIES: 68, REFINES: 69, TRACES: 70, unqString: 71, qString: 72, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 5: "NEWLINE", 6: "RD", 8: "EOF", 12: ":", 14: "acc_title", 15: "acc_title_value", 16: "acc_descr", 17: "acc_descr_value", 18: "acc_descr_multiline_value", 19: "open_directive", 20: "type_directive", 21: "arg_directive", 22: "close_directive", 28: "STRUCT_START", 30: "ID", 31: "COLONSEP", 33: "TEXT", 35: "RISK", 37: "VERIFYMTHD", 39: "STRUCT_STOP", 40: "REQUIREMENT", 41: "FUNCTIONAL_REQUIREMENT", 42: "INTERFACE_REQUIREMENT", 43: "PERFORMANCE_REQUIREMENT", 44: "PHYSICAL_REQUIREMENT", 45: "DESIGN_CONSTRAINT", 46: "LOW_RISK", 47: "MED_RISK", 48: "HIGH_RISK", 49: "VERIFY_ANALYSIS", 50: "VERIFY_DEMONSTRATION", 51: "VERIFY_INSPECTION", 52: "VERIFY_TEST", 53: "ELEMENT", 56: "TYPE", 58: "DOCREF", 60: "END_ARROW_L", 62: "LINE", 63: "END_ARROW_R", 64: "CONTAINS", 65: "COPIES", 66: "DERIVES", 67: "SATISFIES", 68: "VERIFIES", 69: "REFINES", 70: "TRACES", 71: "unqString", 72: "qString" },
+ productions_: [0, [3, 3], [3, 2], [3, 4], [4, 3], [4, 5], [4, 2], [4, 2], [4, 1], [9, 1], [10, 1], [13, 1], [11, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [23, 5], [29, 5], [29, 5], [29, 5], [29, 5], [29, 2], [29, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [36, 1], [36, 1], [36, 1], [38, 1], [38, 1], [38, 1], [38, 1], [24, 5], [55, 5], [55, 5], [55, 2], [55, 1], [25, 5], [25, 5], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [27, 1], [27, 1], [32, 1], [32, 1], [34, 1], [34, 1], [54, 1], [54, 1], [57, 1], [57, 1], [59, 1], [59, 1]],
+ performAction: function(r, s, l, i, _, n, K) {
+ var f = n.length - 1;
+ switch (_) {
+ case 6:
+ this.$ = n[f].trim(), i.setAccTitle(this.$);
+ break;
+ case 7:
+ case 8:
+ this.$ = n[f].trim(), i.setAccDescription(this.$);
+ break;
+ case 9:
+ i.parseDirective("%%{", "open_directive");
+ break;
+ case 10:
+ i.parseDirective(n[f], "type_directive");
+ break;
+ case 11:
+ n[f] = n[f].trim().replace(/'/g, '"'), i.parseDirective(n[f], "arg_directive");
+ break;
+ case 12:
+ i.parseDirective("}%%", "close_directive", "pie");
+ break;
+ case 13:
+ this.$ = [];
+ break;
+ case 19:
+ i.addRequirement(n[f - 3], n[f - 4]);
+ break;
+ case 20:
+ i.setNewReqId(n[f - 2]);
+ break;
+ case 21:
+ i.setNewReqText(n[f - 2]);
+ break;
+ case 22:
+ i.setNewReqRisk(n[f - 2]);
+ break;
+ case 23:
+ i.setNewReqVerifyMethod(n[f - 2]);
+ break;
+ case 26:
+ this.$ = i.RequirementType.REQUIREMENT;
+ break;
+ case 27:
+ this.$ = i.RequirementType.FUNCTIONAL_REQUIREMENT;
+ break;
+ case 28:
+ this.$ = i.RequirementType.INTERFACE_REQUIREMENT;
+ break;
+ case 29:
+ this.$ = i.RequirementType.PERFORMANCE_REQUIREMENT;
+ break;
+ case 30:
+ this.$ = i.RequirementType.PHYSICAL_REQUIREMENT;
+ break;
+ case 31:
+ this.$ = i.RequirementType.DESIGN_CONSTRAINT;
+ break;
+ case 32:
+ this.$ = i.RiskLevel.LOW_RISK;
+ break;
+ case 33:
+ this.$ = i.RiskLevel.MED_RISK;
+ break;
+ case 34:
+ this.$ = i.RiskLevel.HIGH_RISK;
+ break;
+ case 35:
+ this.$ = i.VerifyType.VERIFY_ANALYSIS;
+ break;
+ case 36:
+ this.$ = i.VerifyType.VERIFY_DEMONSTRATION;
+ break;
+ case 37:
+ this.$ = i.VerifyType.VERIFY_INSPECTION;
+ break;
+ case 38:
+ this.$ = i.VerifyType.VERIFY_TEST;
+ break;
+ case 39:
+ i.addElement(n[f - 3]);
+ break;
+ case 40:
+ i.setNewElementType(n[f - 2]);
+ break;
+ case 41:
+ i.setNewElementDocRef(n[f - 2]);
+ break;
+ case 44:
+ i.addRelationship(n[f - 2], n[f], n[f - 4]);
+ break;
+ case 45:
+ i.addRelationship(n[f - 2], n[f - 4], n[f]);
+ break;
+ case 46:
+ this.$ = i.Relationships.CONTAINS;
+ break;
+ case 47:
+ this.$ = i.Relationships.COPIES;
+ break;
+ case 48:
+ this.$ = i.Relationships.DERIVES;
+ break;
+ case 49:
+ this.$ = i.Relationships.SATISFIES;
+ break;
+ case 50:
+ this.$ = i.Relationships.VERIFIES;
+ break;
+ case 51:
+ this.$ = i.Relationships.REFINES;
+ break;
+ case 52:
+ this.$ = i.Relationships.TRACES;
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 6: t, 9: 4, 14: a, 16: c, 18: d, 19: u }, { 1: [3] }, { 3: 10, 4: 2, 5: [1, 9], 6: t, 9: 4, 14: a, 16: c, 18: d, 19: u }, { 5: [1, 11] }, { 10: 12, 20: [1, 13] }, { 15: [1, 14] }, { 17: [1, 15] }, e(p, [2, 8]), { 20: [2, 9] }, { 3: 16, 4: 2, 6: t, 9: 4, 14: a, 16: c, 18: d, 19: u }, { 1: [2, 2] }, { 4: 21, 5: h, 7: 17, 8: o, 9: 4, 14: a, 16: c, 18: d, 19: u, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: g, 41: R, 42: x, 43: S, 44: T, 45: v, 53: A, 71: N, 72: w }, { 11: 34, 12: [1, 35], 22: pe }, e([12, 22], [2, 10]), e(p, [2, 6]), e(p, [2, 7]), { 1: [2, 1] }, { 8: [1, 37] }, { 4: 21, 5: h, 7: 38, 8: o, 9: 4, 14: a, 16: c, 18: d, 19: u, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: g, 41: R, 42: x, 43: S, 44: T, 45: v, 53: A, 71: N, 72: w }, { 4: 21, 5: h, 7: 39, 8: o, 9: 4, 14: a, 16: c, 18: d, 19: u, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: g, 41: R, 42: x, 43: S, 44: T, 45: v, 53: A, 71: N, 72: w }, { 4: 21, 5: h, 7: 40, 8: o, 9: 4, 14: a, 16: c, 18: d, 19: u, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: g, 41: R, 42: x, 43: S, 44: T, 45: v, 53: A, 71: N, 72: w }, { 4: 21, 5: h, 7: 41, 8: o, 9: 4, 14: a, 16: c, 18: d, 19: u, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: g, 41: R, 42: x, 43: S, 44: T, 45: v, 53: A, 71: N, 72: w }, { 4: 21, 5: h, 7: 42, 8: o, 9: 4, 14: a, 16: c, 18: d, 19: u, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: g, 41: R, 42: x, 43: S, 44: T, 45: v, 53: A, 71: N, 72: w }, { 27: 43, 71: [1, 44], 72: [1, 45] }, { 54: 46, 71: [1, 47], 72: [1, 48] }, { 60: [1, 49], 62: [1, 50] }, e(F, [2, 26]), e(F, [2, 27]), e(F, [2, 28]), e(F, [2, 29]), e(F, [2, 30]), e(F, [2, 31]), e(fe, [2, 55]), e(fe, [2, 56]), e(p, [2, 4]), { 13: 51, 21: [1, 52] }, e(p, [2, 12]), { 1: [2, 3] }, { 8: [2, 14] }, { 8: [2, 15] }, { 8: [2, 16] }, { 8: [2, 17] }, { 8: [2, 18] }, { 28: [1, 53] }, { 28: [2, 53] }, { 28: [2, 54] }, { 28: [1, 54] }, { 28: [2, 59] }, { 28: [2, 60] }, { 61: 55, 64: _e, 65: ye, 66: ge, 67: Ee, 68: Re, 69: me, 70: Ie }, { 61: 63, 64: _e, 65: ye, 66: ge, 67: Ee, 68: Re, 69: me, 70: Ie }, { 11: 64, 22: pe }, { 22: [2, 11] }, { 5: [1, 65] }, { 5: [1, 66] }, { 62: [1, 67] }, e(O, [2, 46]), e(O, [2, 47]), e(O, [2, 48]), e(O, [2, 49]), e(O, [2, 50]), e(O, [2, 51]), e(O, [2, 52]), { 63: [1, 68] }, e(p, [2, 5]), { 5: M, 29: 69, 30: P, 33: Y, 35: U, 37: B, 39: Q }, { 5: j, 39: X, 55: 76, 56: J, 58: Z }, { 32: 81, 71: N, 72: w }, { 32: 82, 71: N, 72: w }, e(m, [2, 19]), { 31: [1, 83] }, { 31: [1, 84] }, { 31: [1, 85] }, { 31: [1, 86] }, { 5: M, 29: 87, 30: P, 33: Y, 35: U, 37: B, 39: Q }, e(m, [2, 25]), e(m, [2, 39]), { 31: [1, 88] }, { 31: [1, 89] }, { 5: j, 39: X, 55: 90, 56: J, 58: Z }, e(m, [2, 43]), e(m, [2, 44]), e(m, [2, 45]), { 32: 91, 71: N, 72: w }, { 34: 92, 71: [1, 93], 72: [1, 94] }, { 36: 95, 46: [1, 96], 47: [1, 97], 48: [1, 98] }, { 38: 99, 49: [1, 100], 50: [1, 101], 51: [1, 102], 52: [1, 103] }, e(m, [2, 24]), { 57: 104, 71: [1, 105], 72: [1, 106] }, { 59: 107, 71: [1, 108], 72: [1, 109] }, e(m, [2, 42]), { 5: [1, 110] }, { 5: [1, 111] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: [1, 112] }, { 5: [2, 32] }, { 5: [2, 33] }, { 5: [2, 34] }, { 5: [1, 113] }, { 5: [2, 35] }, { 5: [2, 36] }, { 5: [2, 37] }, { 5: [2, 38] }, { 5: [1, 114] }, { 5: [2, 61] }, { 5: [2, 62] }, { 5: [1, 115] }, { 5: [2, 63] }, { 5: [2, 64] }, { 5: M, 29: 116, 30: P, 33: Y, 35: U, 37: B, 39: Q }, { 5: M, 29: 117, 30: P, 33: Y, 35: U, 37: B, 39: Q }, { 5: M, 29: 118, 30: P, 33: Y, 35: U, 37: B, 39: Q }, { 5: M, 29: 119, 30: P, 33: Y, 35: U, 37: B, 39: Q }, { 5: j, 39: X, 55: 120, 56: J, 58: Z }, { 5: j, 39: X, 55: 121, 56: J, 58: Z }, e(m, [2, 20]), e(m, [2, 21]), e(m, [2, 22]), e(m, [2, 23]), e(m, [2, 40]), e(m, [2, 41])],
+ defaultActions: { 8: [2, 9], 10: [2, 2], 16: [2, 1], 37: [2, 3], 38: [2, 14], 39: [2, 15], 40: [2, 16], 41: [2, 17], 42: [2, 18], 44: [2, 53], 45: [2, 54], 47: [2, 59], 48: [2, 60], 52: [2, 11], 93: [2, 57], 94: [2, 58], 96: [2, 32], 97: [2, 33], 98: [2, 34], 100: [2, 35], 101: [2, 36], 102: [2, 37], 103: [2, 38], 105: [2, 61], 106: [2, 62], 108: [2, 63], 109: [2, 64] },
+ parseError: function(r, s) {
+ if (s.recoverable)
+ this.trace(r);
+ else {
+ var l = new Error(r);
+ throw l.hash = s, l;
+ }
+ },
+ parse: function(r) {
+ var s = this, l = [0], i = [], _ = [null], n = [], K = this.table, f = "", ee = 0, be = 0, Le = 2, ke = 1, Oe = n.slice.call(arguments, 1), E = Object.create(this.lexer), C = { yy: {} };
+ for (var se in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, se) && (C.yy[se] = this.yy[se]);
+ E.setInput(r, C.yy), C.yy.lexer = E, C.yy.parser = this, typeof E.yylloc > "u" && (E.yylloc = {});
+ var ae = E.yylloc;
+ n.push(ae);
+ var Ce = E.options && E.options.ranges;
+ typeof C.yy.parseError == "function" ? this.parseError = C.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function De() {
+ var $;
+ return $ = i.pop() || E.lex() || ke, typeof $ != "number" && ($ instanceof Array && (i = $, $ = i.pop()), $ = s.symbols_[$] || $), $;
+ }
+ for (var I, D, k, le, H = {}, te, V, Se, ie; ; ) {
+ if (D = l[l.length - 1], this.defaultActions[D] ? k = this.defaultActions[D] : ((I === null || typeof I > "u") && (I = De()), k = K[D] && K[D][I]), typeof k > "u" || !k.length || !k[0]) {
+ var ce = "";
+ ie = [];
+ for (te in K[D])
+ this.terminals_[te] && te > Le && ie.push("'" + this.terminals_[te] + "'");
+ E.showPosition ? ce = "Parse error on line " + (ee + 1) + `:
+` + E.showPosition() + `
+Expecting ` + ie.join(", ") + ", got '" + (this.terminals_[I] || I) + "'" : ce = "Parse error on line " + (ee + 1) + ": Unexpected " + (I == ke ? "end of input" : "'" + (this.terminals_[I] || I) + "'"), this.parseError(ce, {
+ text: E.match,
+ token: this.terminals_[I] || I,
+ line: E.yylineno,
+ loc: ae,
+ expected: ie
+ });
+ }
+ if (k[0] instanceof Array && k.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + D + ", token: " + I);
+ switch (k[0]) {
+ case 1:
+ l.push(I), _.push(E.yytext), n.push(E.yylloc), l.push(k[1]), I = null, be = E.yyleng, f = E.yytext, ee = E.yylineno, ae = E.yylloc;
+ break;
+ case 2:
+ if (V = this.productions_[k[1]][1], H.$ = _[_.length - V], H._$ = {
+ first_line: n[n.length - (V || 1)].first_line,
+ last_line: n[n.length - 1].last_line,
+ first_column: n[n.length - (V || 1)].first_column,
+ last_column: n[n.length - 1].last_column
+ }, Ce && (H._$.range = [
+ n[n.length - (V || 1)].range[0],
+ n[n.length - 1].range[1]
+ ]), le = this.performAction.apply(H, [
+ f,
+ be,
+ ee,
+ C.yy,
+ k[1],
+ _,
+ n
+ ].concat(Oe)), typeof le < "u")
+ return le;
+ V && (l = l.slice(0, -1 * V * 2), _ = _.slice(0, -1 * V), n = n.slice(0, -1 * V)), l.push(this.productions_[k[1]][0]), _.push(H.$), n.push(H._$), Se = K[l[l.length - 2]][l[l.length - 1]], l.push(Se);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, qe = function() {
+ var q = {
+ EOF: 1,
+ parseError: function(s, l) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(s, l);
+ else
+ throw new Error(s);
+ },
+ // resets the lexer, sets new input
+ setInput: function(r, s) {
+ return this.yy = s || this.yy || {}, this._input = r, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var r = this._input[0];
+ this.yytext += r, this.yyleng++, this.offset++, this.match += r, this.matched += r;
+ var s = r.match(/(?:\r\n?|\n).*/g);
+ return s ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), r;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(r) {
+ var s = r.length, l = r.split(/(?:\r\n?|\n)/g);
+ this._input = r + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - s), this.offset -= s;
+ var i = 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), l.length - 1 && (this.yylineno -= l.length - 1);
+ var _ = 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: l ? (l.length === i.length ? this.yylloc.first_column : 0) + i[i.length - l.length].length - l[0].length : this.yylloc.first_column - s
+ }, this.options.ranges && (this.yylloc.range = [_[0], _[0] + this.yyleng - s]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(r) {
+ this.unput(this.match.slice(r));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var r = this.matched.substr(0, this.matched.length - this.match.length);
+ return (r.length > 20 ? "..." : "") + r.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var r = this.match;
+ return r.length < 20 && (r += this._input.substr(0, 20 - r.length)), (r.substr(0, 20) + (r.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var r = this.pastInput(), s = new Array(r.length + 1).join("-");
+ return r + this.upcomingInput() + `
+` + s + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(r, s) {
+ var l, i, _;
+ if (this.options.backtrack_lexer && (_ = {
+ 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 && (_.yylloc.range = this.yylloc.range.slice(0))), i = r[0].match(/(?:\r\n?|\n).*/g), i && (this.yylineno += i.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: i ? i[i.length - 1].length - i[i.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + r[0].length
+ }, this.yytext += r[0], this.match += r[0], this.matches = r, 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(r[0].length), this.matched += r[0], l = this.performAction.call(this, this.yy, this, s, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), l)
+ return l;
+ if (this._backtrack) {
+ for (var n in _)
+ this[n] = _[n];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var r, s, l, i;
+ this._more || (this.yytext = "", this.match = "");
+ for (var _ = this._currentRules(), n = 0; n < _.length; n++)
+ if (l = this._input.match(this.rules[_[n]]), l && (!s || l[0].length > s[0].length)) {
+ if (s = l, i = n, this.options.backtrack_lexer) {
+ if (r = this.test_match(l, _[n]), r !== !1)
+ return r;
+ if (this._backtrack) {
+ s = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return s ? (r = this.test_match(s, _[i]), r !== !1 ? r : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var s = this.next();
+ return s || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(s) {
+ this.conditionStack.push(s);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var s = this.conditionStack.length - 1;
+ return s > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(s) {
+ return s = this.conditionStack.length - 1 - Math.abs(s || 0), s >= 0 ? this.conditionStack[s] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(s) {
+ this.begin(s);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": !0 },
+ performAction: function(s, l, i, _) {
+ switch (i) {
+ case 0:
+ return this.begin("open_directive"), 19;
+ case 1:
+ return this.begin("type_directive"), 20;
+ case 2:
+ return this.popState(), this.begin("arg_directive"), 12;
+ case 3:
+ return this.popState(), this.popState(), 22;
+ case 4:
+ return 21;
+ case 5:
+ return "title";
+ case 6:
+ return this.begin("acc_title"), 14;
+ case 7:
+ return this.popState(), "acc_title_value";
+ case 8:
+ return this.begin("acc_descr"), 16;
+ case 9:
+ return this.popState(), "acc_descr_value";
+ case 10:
+ this.begin("acc_descr_multiline");
+ break;
+ case 11:
+ this.popState();
+ break;
+ case 12:
+ return "acc_descr_multiline_value";
+ case 13:
+ return 5;
+ case 14:
+ break;
+ case 15:
+ break;
+ case 16:
+ break;
+ case 17:
+ return 8;
+ case 18:
+ return 6;
+ case 19:
+ return 28;
+ case 20:
+ return 39;
+ case 21:
+ return 31;
+ case 22:
+ return 30;
+ case 23:
+ return 33;
+ case 24:
+ return 35;
+ case 25:
+ return 37;
+ case 26:
+ return 40;
+ case 27:
+ return 41;
+ case 28:
+ return 42;
+ case 29:
+ return 43;
+ case 30:
+ return 44;
+ case 31:
+ return 45;
+ case 32:
+ return 46;
+ case 33:
+ return 47;
+ case 34:
+ return 48;
+ case 35:
+ return 49;
+ case 36:
+ return 50;
+ case 37:
+ return 51;
+ case 38:
+ return 52;
+ case 39:
+ return 53;
+ case 40:
+ return 64;
+ case 41:
+ return 65;
+ case 42:
+ return 66;
+ case 43:
+ return 67;
+ case 44:
+ return 68;
+ case 45:
+ return 69;
+ case 46:
+ return 70;
+ case 47:
+ return 56;
+ case 48:
+ return 58;
+ case 49:
+ return 60;
+ case 50:
+ return 63;
+ case 51:
+ return 62;
+ case 52:
+ this.begin("string");
+ break;
+ case 53:
+ this.popState();
+ break;
+ case 54:
+ return "qString";
+ case 55:
+ return l.yytext = l.yytext.trim(), 71;
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\b)/i, /^(?:\{)/i, /^(?:\})/i, /^(?::)/i, /^(?:id\b)/i, /^(?:text\b)/i, /^(?:risk\b)/i, /^(?:verifyMethod\b)/i, /^(?:requirement\b)/i, /^(?:functionalRequirement\b)/i, /^(?:interfaceRequirement\b)/i, /^(?:performanceRequirement\b)/i, /^(?:physicalRequirement\b)/i, /^(?:designConstraint\b)/i, /^(?:low\b)/i, /^(?:medium\b)/i, /^(?:high\b)/i, /^(?:analysis\b)/i, /^(?:demonstration\b)/i, /^(?:inspection\b)/i, /^(?:test\b)/i, /^(?:element\b)/i, /^(?:contains\b)/i, /^(?:copies\b)/i, /^(?:derives\b)/i, /^(?:satisfies\b)/i, /^(?:verifies\b)/i, /^(?:refines\b)/i, /^(?:traces\b)/i, /^(?:type\b)/i, /^(?:docref\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[\w][^\r\n\{\<\>\-\=]*)/i],
+ conditions: { acc_descr_multiline: { rules: [11, 12], inclusive: !1 }, acc_descr: { rules: [9], inclusive: !1 }, acc_title: { rules: [7], inclusive: !1 }, close_directive: { rules: [], inclusive: !1 }, arg_directive: { rules: [3, 4], inclusive: !1 }, type_directive: { rules: [2, 3], inclusive: !1 }, open_directive: { rules: [1], inclusive: !1 }, unqString: { rules: [], inclusive: !1 }, token: { rules: [], inclusive: !1 }, string: { rules: [53, 54], inclusive: !1 }, INITIAL: { rules: [0, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 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, 55], inclusive: !0 } }
+ };
+ return q;
+ }();
+ re.lexer = qe;
+ function ne() {
+ this.yy = {};
+ }
+ return ne.prototype = re, re.Parser = ne, new ne();
+}();
+he.parser = he;
+const Ge = he;
+let de = [], b = {}, G = {}, L = {}, z = {};
+const ze = {
+ REQUIREMENT: "Requirement",
+ FUNCTIONAL_REQUIREMENT: "Functional Requirement",
+ INTERFACE_REQUIREMENT: "Interface Requirement",
+ PERFORMANCE_REQUIREMENT: "Performance Requirement",
+ PHYSICAL_REQUIREMENT: "Physical Requirement",
+ DESIGN_CONSTRAINT: "Design Constraint"
+}, je = {
+ LOW_RISK: "Low",
+ MED_RISK: "Medium",
+ HIGH_RISK: "High"
+}, Xe = {
+ VERIFY_ANALYSIS: "Analysis",
+ VERIFY_DEMONSTRATION: "Demonstration",
+ VERIFY_INSPECTION: "Inspection",
+ VERIFY_TEST: "Test"
+}, Je = {
+ CONTAINS: "contains",
+ COPIES: "copies",
+ DERIVES: "derives",
+ SATISFIES: "satisfies",
+ VERIFIES: "verifies",
+ REFINES: "refines",
+ TRACES: "traces"
+}, Ze = function(e, t, a) {
+ Be.parseDirective(this, e, t, a);
+}, et = (e, t) => (G[e] === void 0 && (G[e] = {
+ name: e,
+ type: t,
+ id: b.id,
+ text: b.text,
+ risk: b.risk,
+ verifyMethod: b.verifyMethod
+}), b = {}, G[e]), tt = () => G, it = (e) => {
+ b !== void 0 && (b.id = e);
+}, rt = (e) => {
+ b !== void 0 && (b.text = e);
+}, nt = (e) => {
+ b !== void 0 && (b.risk = e);
+}, st = (e) => {
+ b !== void 0 && (b.verifyMethod = e);
+}, at = (e) => (z[e] === void 0 && (z[e] = {
+ name: e,
+ type: L.type,
+ docRef: L.docRef
+}, ve.info("Added new requirement: ", e)), L = {}, z[e]), lt = () => z, ct = (e) => {
+ L !== void 0 && (L.type = e);
+}, ot = (e) => {
+ L !== void 0 && (L.docRef = e);
+}, ht = (e, t, a) => {
+ de.push({
+ type: e,
+ src: t,
+ dst: a
+ });
+}, ut = () => de, dt = () => {
+ de = [], b = {}, G = {}, L = {}, z = {}, Ue();
+}, pt = {
+ RequirementType: ze,
+ RiskLevel: je,
+ VerifyType: Xe,
+ Relationships: Je,
+ parseDirective: Ze,
+ getConfig: () => xe().req,
+ addRequirement: et,
+ getRequirements: tt,
+ setNewReqId: it,
+ setNewReqText: rt,
+ setNewReqRisk: nt,
+ setNewReqVerifyMethod: st,
+ setAccTitle: Fe,
+ getAccTitle: Me,
+ setAccDescription: Pe,
+ getAccDescription: Ye,
+ addElement: at,
+ getElements: lt,
+ setNewElementType: ct,
+ setNewElementDocRef: ot,
+ addRelationship: ht,
+ getRelationships: ut,
+ clear: dt
+}, ft = (e) => `
+
+ marker {
+ fill: ${e.relationColor};
+ stroke: ${e.relationColor};
+ }
+
+ marker.cross {
+ stroke: ${e.lineColor};
+ }
+
+ svg {
+ font-family: ${e.fontFamily};
+ font-size: ${e.fontSize};
+ }
+
+ .reqBox {
+ fill: ${e.requirementBackground};
+ fill-opacity: 100%;
+ stroke: ${e.requirementBorderColor};
+ stroke-width: ${e.requirementBorderSize};
+ }
+
+ .reqTitle, .reqLabel{
+ fill: ${e.requirementTextColor};
+ }
+ .reqLabelBox {
+ fill: ${e.relationLabelBackground};
+ fill-opacity: 100%;
+ }
+
+ .req-title-line {
+ stroke: ${e.requirementBorderColor};
+ stroke-width: ${e.requirementBorderSize};
+ }
+ .relationshipLine {
+ stroke: ${e.relationColor};
+ stroke-width: 1;
+ }
+ .relationshipLabel {
+ fill: ${e.relationLabelColor};
+ }
+
+`, _t = ft, ue = {
+ CONTAINS: "contains",
+ ARROW: "arrow"
+}, yt = (e, t) => {
+ let a = e.append("defs").append("marker").attr("id", ue.CONTAINS + "_line_ending").attr("refX", 0).attr("refY", t.line_height / 2).attr("markerWidth", t.line_height).attr("markerHeight", t.line_height).attr("orient", "auto").append("g");
+ a.append("circle").attr("cx", t.line_height / 2).attr("cy", t.line_height / 2).attr("r", t.line_height / 2).attr("fill", "none"), a.append("line").attr("x1", 0).attr("x2", t.line_height).attr("y1", t.line_height / 2).attr("y2", t.line_height / 2).attr("stroke-width", 1), a.append("line").attr("y1", 0).attr("y2", t.line_height).attr("x1", t.line_height / 2).attr("x2", t.line_height / 2).attr("stroke-width", 1), e.append("defs").append("marker").attr("id", ue.ARROW + "_line_ending").attr("refX", t.line_height).attr("refY", 0.5 * t.line_height).attr("markerWidth", t.line_height).attr("markerHeight", t.line_height).attr("orient", "auto").append("path").attr(
+ "d",
+ `M0,0
+ L${t.line_height},${t.line_height / 2}
+ M${t.line_height},${t.line_height / 2}
+ L0,${t.line_height}`
+ ).attr("stroke-width", 1);
+}, Ae = {
+ ReqMarkers: ue,
+ insertLineEndings: yt
+};
+let y = {}, Ne = 0;
+const we = (e, t) => e.insert("rect", "#" + t).attr("class", "req reqBox").attr("x", 0).attr("y", 0).attr("width", y.rect_min_width + "px").attr("height", y.rect_min_height + "px"), Ve = (e, t, a) => {
+ let c = y.rect_min_width / 2, d = e.append("text").attr("class", "req reqLabel reqTitle").attr("id", t).attr("x", c).attr("y", y.rect_padding).attr("dominant-baseline", "hanging"), u = 0;
+ a.forEach((g) => {
+ u == 0 ? d.append("tspan").attr("text-anchor", "middle").attr("x", y.rect_min_width / 2).attr("dy", 0).text(g) : d.append("tspan").attr("text-anchor", "middle").attr("x", y.rect_min_width / 2).attr("dy", y.line_height * 0.75).text(g), u++;
+ });
+ let p = 1.5 * y.rect_padding, h = u * y.line_height * 0.75, o = p + h;
+ return e.append("line").attr("class", "req-title-line").attr("x1", "0").attr("x2", y.rect_min_width).attr("y1", o).attr("y2", o), {
+ titleNode: d,
+ y: o
+ };
+}, $e = (e, t, a, c) => {
+ let d = e.append("text").attr("class", "req reqLabel").attr("id", t).attr("x", y.rect_padding).attr("y", c).attr("dominant-baseline", "hanging"), u = 0;
+ const p = 30;
+ let h = [];
+ return a.forEach((o) => {
+ let g = o.length;
+ for (; g > p && u < 3; ) {
+ let R = o.substring(0, p);
+ o = o.substring(p, o.length), g = o.length, h[h.length] = R, u++;
+ }
+ if (u == 3) {
+ let R = h[h.length - 1];
+ h[h.length - 1] = R.substring(0, R.length - 4) + "...";
+ } else
+ h[h.length] = o;
+ u = 0;
+ }), h.forEach((o) => {
+ d.append("tspan").attr("x", y.rect_padding).attr("dy", y.line_height).text(o);
+ }), d;
+}, gt = (e, t, a, c) => {
+ const d = t.node().getTotalLength(), u = t.node().getPointAtLength(d * 0.5), p = "rel" + Ne;
+ Ne++;
+ const o = e.append("text").attr("class", "req relationshipLabel").attr("id", p).attr("x", u.x).attr("y", u.y).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(c).node().getBBox();
+ e.insert("rect", "#" + p).attr("class", "req reqLabelBox").attr("x", u.x - o.width / 2).attr("y", u.y - o.height / 2).attr("width", o.width).attr("height", o.height).attr("fill", "white").attr("fill-opacity", "85%");
+}, Et = function(e, t, a, c, d) {
+ const u = a.edge(W(t.src), W(t.dst)), p = Ke().x(function(o) {
+ return o.x;
+ }).y(function(o) {
+ return o.y;
+ }), h = e.insert("path", "#" + c).attr("class", "er relationshipLine").attr("d", p(u.points)).attr("fill", "none");
+ t.type == d.db.Relationships.CONTAINS ? h.attr(
+ "marker-start",
+ "url(" + Te.getUrl(y.arrowMarkerAbsolute) + "#" + t.type + "_line_ending)"
+ ) : (h.attr("stroke-dasharray", "10,7"), h.attr(
+ "marker-end",
+ "url(" + Te.getUrl(y.arrowMarkerAbsolute) + "#" + Ae.ReqMarkers.ARROW + "_line_ending)"
+ )), gt(e, h, y, `<<${t.type}>>`);
+}, Rt = (e, t, a) => {
+ Object.keys(e).forEach((c) => {
+ let d = e[c];
+ c = W(c), ve.info("Added new requirement: ", c);
+ const u = a.append("g").attr("id", c), p = "req-" + c, h = we(u, p);
+ let o = Ve(u, c + "_title", [
+ `<<${d.type}>>`,
+ `${d.name}`
+ ]);
+ $e(
+ u,
+ c + "_body",
+ [
+ `Id: ${d.id}`,
+ `Text: ${d.text}`,
+ `Risk: ${d.risk}`,
+ `Verification: ${d.verifyMethod}`
+ ],
+ o.y
+ );
+ const g = h.node().getBBox();
+ t.setNode(c, {
+ width: g.width,
+ height: g.height,
+ shape: "rect",
+ id: c
+ });
+ });
+}, mt = (e, t, a) => {
+ Object.keys(e).forEach((c) => {
+ let d = e[c];
+ const u = W(c), p = a.append("g").attr("id", u), h = "element-" + u, o = we(p, h);
+ let g = Ve(p, h + "_title", ["<>", `${c}`]);
+ $e(
+ p,
+ h + "_body",
+ [`Type: ${d.type || "Not Specified"}`, `Doc Ref: ${d.docRef || "None"}`],
+ g.y
+ );
+ const R = o.node().getBBox();
+ t.setNode(u, {
+ width: R.width,
+ height: R.height,
+ shape: "rect",
+ id: u
+ });
+ });
+}, It = (e, t) => (e.forEach(function(a) {
+ let c = W(a.src), d = W(a.dst);
+ t.setEdge(c, d, { relationship: a });
+}), e), bt = function(e, t) {
+ t.nodes().forEach(function(a) {
+ a !== void 0 && t.node(a) !== void 0 && (e.select("#" + a), e.select("#" + a).attr(
+ "transform",
+ "translate(" + (t.node(a).x - t.node(a).width / 2) + "," + (t.node(a).y - t.node(a).height / 2) + " )"
+ ));
+ });
+}, W = (e) => e.replace(/\s/g, "").replace(/\./g, "_"), kt = (e, t, a, c) => {
+ y = xe().requirement, c.db.clear(), c.parser.parse(e);
+ const d = y.securityLevel;
+ let u;
+ d === "sandbox" && (u = oe("#i" + t));
+ const h = (d === "sandbox" ? oe(u.nodes()[0].contentDocument.body) : oe("body")).select(`[id='${t}']`);
+ Ae.insertLineEndings(h, y);
+ const o = new Qe({
+ multigraph: !1,
+ compound: !1,
+ directed: !0
+ }).setGraph({
+ rankdir: y.layoutDirection,
+ marginx: 20,
+ marginy: 20,
+ nodesep: 100,
+ edgesep: 100,
+ ranksep: 100
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ let g = c.db.getRequirements(), R = c.db.getElements(), x = c.db.getRelationships();
+ Rt(g, o, h), mt(R, o, h), It(x, o), He(o), bt(h, o), x.forEach(function(N) {
+ Et(h, N, o, t, c);
+ });
+ const S = y.rect_padding, T = h.node().getBBox(), v = T.width + S * 2, A = T.height + S * 2;
+ We(h, A, v, y.useMaxWidth), h.attr("viewBox", `${T.x - S} ${T.y - S} ${v} ${A}`);
+}, St = {
+ draw: kt
+}, $t = {
+ parser: Ge,
+ db: pt,
+ renderer: St,
+ styles: _t
+};
+export {
+ $t as diagram
+};
+//# sourceMappingURL=requirementDiagram-51a5ec78.js.map
diff --git a/scopegraphs-render-docs/doc/js/requirementDiagram-b9649942.js b/scopegraphs-render-docs/doc/js/requirementDiagram-b9649942.js
new file mode 100644
index 0000000..d00fa01
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/requirementDiagram-b9649942.js
@@ -0,0 +1,1134 @@
+import { g as getConfig, o as setAccTitle, p as getAccTitle, v as setAccDescription, q as getAccDescription, l as log, y as clear$1, e as common } from "./commonDb-573409be.js";
+import { m as mermaidAPI } from "./mermaidAPI-3ae0f2f0.js";
+import { select, line } from "d3";
+import { layout } from "dagre-d3-es/src/dagre/index.js";
+import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
+import { k as configureSvgSize } from "./utils-d622194a.js";
+import "dompurify";
+import "dayjs";
+import "khroma";
+import "stylis";
+import "lodash-es/isEmpty.js";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 8], $V5 = [5, 6, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72], $V6 = [1, 22], $V7 = [2, 13], $V8 = [1, 26], $V9 = [1, 27], $Va = [1, 28], $Vb = [1, 29], $Vc = [1, 30], $Vd = [1, 31], $Ve = [1, 24], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 36], $Vi = [71, 72], $Vj = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 60, 62, 71, 72], $Vk = [1, 56], $Vl = [1, 57], $Vm = [1, 58], $Vn = [1, 59], $Vo = [1, 60], $Vp = [1, 61], $Vq = [1, 62], $Vr = [62, 63], $Vs = [1, 74], $Vt = [1, 70], $Vu = [1, 71], $Vv = [1, 72], $Vw = [1, 73], $Vx = [1, 75], $Vy = [1, 79], $Vz = [1, 80], $VA = [1, 77], $VB = [1, 78], $VC = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "directive": 4, "NEWLINE": 5, "RD": 6, "diagram": 7, "EOF": 8, "openDirective": 9, "typeDirective": 10, "closeDirective": 11, ":": 12, "argDirective": 13, "acc_title": 14, "acc_title_value": 15, "acc_descr": 16, "acc_descr_value": 17, "acc_descr_multiline_value": 18, "open_directive": 19, "type_directive": 20, "arg_directive": 21, "close_directive": 22, "requirementDef": 23, "elementDef": 24, "relationshipDef": 25, "requirementType": 26, "requirementName": 27, "STRUCT_START": 28, "requirementBody": 29, "ID": 30, "COLONSEP": 31, "id": 32, "TEXT": 33, "text": 34, "RISK": 35, "riskLevel": 36, "VERIFYMTHD": 37, "verifyType": 38, "STRUCT_STOP": 39, "REQUIREMENT": 40, "FUNCTIONAL_REQUIREMENT": 41, "INTERFACE_REQUIREMENT": 42, "PERFORMANCE_REQUIREMENT": 43, "PHYSICAL_REQUIREMENT": 44, "DESIGN_CONSTRAINT": 45, "LOW_RISK": 46, "MED_RISK": 47, "HIGH_RISK": 48, "VERIFY_ANALYSIS": 49, "VERIFY_DEMONSTRATION": 50, "VERIFY_INSPECTION": 51, "VERIFY_TEST": 52, "ELEMENT": 53, "elementName": 54, "elementBody": 55, "TYPE": 56, "type": 57, "DOCREF": 58, "ref": 59, "END_ARROW_L": 60, "relationship": 61, "LINE": 62, "END_ARROW_R": 63, "CONTAINS": 64, "COPIES": 65, "DERIVES": 66, "SATISFIES": 67, "VERIFIES": 68, "REFINES": 69, "TRACES": 70, "unqString": 71, "qString": 72, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 5: "NEWLINE", 6: "RD", 8: "EOF", 12: ":", 14: "acc_title", 15: "acc_title_value", 16: "acc_descr", 17: "acc_descr_value", 18: "acc_descr_multiline_value", 19: "open_directive", 20: "type_directive", 21: "arg_directive", 22: "close_directive", 28: "STRUCT_START", 30: "ID", 31: "COLONSEP", 33: "TEXT", 35: "RISK", 37: "VERIFYMTHD", 39: "STRUCT_STOP", 40: "REQUIREMENT", 41: "FUNCTIONAL_REQUIREMENT", 42: "INTERFACE_REQUIREMENT", 43: "PERFORMANCE_REQUIREMENT", 44: "PHYSICAL_REQUIREMENT", 45: "DESIGN_CONSTRAINT", 46: "LOW_RISK", 47: "MED_RISK", 48: "HIGH_RISK", 49: "VERIFY_ANALYSIS", 50: "VERIFY_DEMONSTRATION", 51: "VERIFY_INSPECTION", 52: "VERIFY_TEST", 53: "ELEMENT", 56: "TYPE", 58: "DOCREF", 60: "END_ARROW_L", 62: "LINE", 63: "END_ARROW_R", 64: "CONTAINS", 65: "COPIES", 66: "DERIVES", 67: "SATISFIES", 68: "VERIFIES", 69: "REFINES", 70: "TRACES", 71: "unqString", 72: "qString" },
+ productions_: [0, [3, 3], [3, 2], [3, 4], [4, 3], [4, 5], [4, 2], [4, 2], [4, 1], [9, 1], [10, 1], [13, 1], [11, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [23, 5], [29, 5], [29, 5], [29, 5], [29, 5], [29, 2], [29, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [36, 1], [36, 1], [36, 1], [38, 1], [38, 1], [38, 1], [38, 1], [24, 5], [55, 5], [55, 5], [55, 2], [55, 1], [25, 5], [25, 5], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [27, 1], [27, 1], [32, 1], [32, 1], [34, 1], [34, 1], [54, 1], [54, 1], [57, 1], [57, 1], [59, 1], [59, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 6:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 7:
+ case 8:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 9:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 10:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 11:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 12:
+ yy.parseDirective("}%%", "close_directive", "pie");
+ break;
+ case 13:
+ this.$ = [];
+ break;
+ case 19:
+ yy.addRequirement($$[$0 - 3], $$[$0 - 4]);
+ break;
+ case 20:
+ yy.setNewReqId($$[$0 - 2]);
+ break;
+ case 21:
+ yy.setNewReqText($$[$0 - 2]);
+ break;
+ case 22:
+ yy.setNewReqRisk($$[$0 - 2]);
+ break;
+ case 23:
+ yy.setNewReqVerifyMethod($$[$0 - 2]);
+ break;
+ case 26:
+ this.$ = yy.RequirementType.REQUIREMENT;
+ break;
+ case 27:
+ this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT;
+ break;
+ case 28:
+ this.$ = yy.RequirementType.INTERFACE_REQUIREMENT;
+ break;
+ case 29:
+ this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT;
+ break;
+ case 30:
+ this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT;
+ break;
+ case 31:
+ this.$ = yy.RequirementType.DESIGN_CONSTRAINT;
+ break;
+ case 32:
+ this.$ = yy.RiskLevel.LOW_RISK;
+ break;
+ case 33:
+ this.$ = yy.RiskLevel.MED_RISK;
+ break;
+ case 34:
+ this.$ = yy.RiskLevel.HIGH_RISK;
+ break;
+ case 35:
+ this.$ = yy.VerifyType.VERIFY_ANALYSIS;
+ break;
+ case 36:
+ this.$ = yy.VerifyType.VERIFY_DEMONSTRATION;
+ break;
+ case 37:
+ this.$ = yy.VerifyType.VERIFY_INSPECTION;
+ break;
+ case 38:
+ this.$ = yy.VerifyType.VERIFY_TEST;
+ break;
+ case 39:
+ yy.addElement($$[$0 - 3]);
+ break;
+ case 40:
+ yy.setNewElementType($$[$0 - 2]);
+ break;
+ case 41:
+ yy.setNewElementDocRef($$[$0 - 2]);
+ break;
+ case 44:
+ yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]);
+ break;
+ case 45:
+ yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]);
+ break;
+ case 46:
+ this.$ = yy.Relationships.CONTAINS;
+ break;
+ case 47:
+ this.$ = yy.Relationships.COPIES;
+ break;
+ case 48:
+ this.$ = yy.Relationships.DERIVES;
+ break;
+ case 49:
+ this.$ = yy.Relationships.SATISFIES;
+ break;
+ case 50:
+ this.$ = yy.Relationships.VERIFIES;
+ break;
+ case 51:
+ this.$ = yy.Relationships.REFINES;
+ break;
+ case 52:
+ this.$ = yy.Relationships.TRACES;
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: [1, 9], 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 5: [1, 11] }, { 10: 12, 20: [1, 13] }, { 15: [1, 14] }, { 17: [1, 15] }, o($V5, [2, 8]), { 20: [2, 9] }, { 3: 16, 4: 2, 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 1: [2, 2] }, { 4: 21, 5: $V6, 7: 17, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 11: 34, 12: [1, 35], 22: $Vh }, o([12, 22], [2, 10]), o($V5, [2, 6]), o($V5, [2, 7]), { 1: [2, 1] }, { 8: [1, 37] }, { 4: 21, 5: $V6, 7: 38, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 39, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 40, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 41, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 42, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 27: 43, 71: [1, 44], 72: [1, 45] }, { 54: 46, 71: [1, 47], 72: [1, 48] }, { 60: [1, 49], 62: [1, 50] }, o($Vi, [2, 26]), o($Vi, [2, 27]), o($Vi, [2, 28]), o($Vi, [2, 29]), o($Vi, [2, 30]), o($Vi, [2, 31]), o($Vj, [2, 55]), o($Vj, [2, 56]), o($V5, [2, 4]), { 13: 51, 21: [1, 52] }, o($V5, [2, 12]), { 1: [2, 3] }, { 8: [2, 14] }, { 8: [2, 15] }, { 8: [2, 16] }, { 8: [2, 17] }, { 8: [2, 18] }, { 28: [1, 53] }, { 28: [2, 53] }, { 28: [2, 54] }, { 28: [1, 54] }, { 28: [2, 59] }, { 28: [2, 60] }, { 61: 55, 64: $Vk, 65: $Vl, 66: $Vm, 67: $Vn, 68: $Vo, 69: $Vp, 70: $Vq }, { 61: 63, 64: $Vk, 65: $Vl, 66: $Vm, 67: $Vn, 68: $Vo, 69: $Vp, 70: $Vq }, { 11: 64, 22: $Vh }, { 22: [2, 11] }, { 5: [1, 65] }, { 5: [1, 66] }, { 62: [1, 67] }, o($Vr, [2, 46]), o($Vr, [2, 47]), o($Vr, [2, 48]), o($Vr, [2, 49]), o($Vr, [2, 50]), o($Vr, [2, 51]), o($Vr, [2, 52]), { 63: [1, 68] }, o($V5, [2, 5]), { 5: $Vs, 29: 69, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vy, 39: $Vz, 55: 76, 56: $VA, 58: $VB }, { 32: 81, 71: $Vf, 72: $Vg }, { 32: 82, 71: $Vf, 72: $Vg }, o($VC, [2, 19]), { 31: [1, 83] }, { 31: [1, 84] }, { 31: [1, 85] }, { 31: [1, 86] }, { 5: $Vs, 29: 87, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, o($VC, [2, 25]), o($VC, [2, 39]), { 31: [1, 88] }, { 31: [1, 89] }, { 5: $Vy, 39: $Vz, 55: 90, 56: $VA, 58: $VB }, o($VC, [2, 43]), o($VC, [2, 44]), o($VC, [2, 45]), { 32: 91, 71: $Vf, 72: $Vg }, { 34: 92, 71: [1, 93], 72: [1, 94] }, { 36: 95, 46: [1, 96], 47: [1, 97], 48: [1, 98] }, { 38: 99, 49: [1, 100], 50: [1, 101], 51: [1, 102], 52: [1, 103] }, o($VC, [2, 24]), { 57: 104, 71: [1, 105], 72: [1, 106] }, { 59: 107, 71: [1, 108], 72: [1, 109] }, o($VC, [2, 42]), { 5: [1, 110] }, { 5: [1, 111] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: [1, 112] }, { 5: [2, 32] }, { 5: [2, 33] }, { 5: [2, 34] }, { 5: [1, 113] }, { 5: [2, 35] }, { 5: [2, 36] }, { 5: [2, 37] }, { 5: [2, 38] }, { 5: [1, 114] }, { 5: [2, 61] }, { 5: [2, 62] }, { 5: [1, 115] }, { 5: [2, 63] }, { 5: [2, 64] }, { 5: $Vs, 29: 116, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 117, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 118, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 119, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vy, 39: $Vz, 55: 120, 56: $VA, 58: $VB }, { 5: $Vy, 39: $Vz, 55: 121, 56: $VA, 58: $VB }, o($VC, [2, 20]), o($VC, [2, 21]), o($VC, [2, 22]), o($VC, [2, 23]), o($VC, [2, 40]), o($VC, [2, 41])],
+ defaultActions: { 8: [2, 9], 10: [2, 2], 16: [2, 1], 37: [2, 3], 38: [2, 14], 39: [2, 15], 40: [2, 16], 41: [2, 17], 42: [2, 18], 44: [2, 53], 45: [2, 54], 47: [2, 59], 48: [2, 60], 52: [2, 11], 93: [2, 57], 94: [2, 58], 96: [2, 32], 97: [2, 33], 98: [2, 34], 100: [2, 35], 101: [2, 36], 102: [2, 37], 103: [2, 38], 105: [2, 61], 106: [2, 62], 108: [2, 63], 109: [2, 64] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 19;
+ case 1:
+ this.begin("type_directive");
+ return 20;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 12;
+ case 3:
+ this.popState();
+ this.popState();
+ return 22;
+ case 4:
+ return 21;
+ case 5:
+ return "title";
+ case 6:
+ this.begin("acc_title");
+ return 14;
+ case 7:
+ this.popState();
+ return "acc_title_value";
+ case 8:
+ this.begin("acc_descr");
+ return 16;
+ case 9:
+ this.popState();
+ return "acc_descr_value";
+ case 10:
+ this.begin("acc_descr_multiline");
+ break;
+ case 11:
+ this.popState();
+ break;
+ case 12:
+ return "acc_descr_multiline_value";
+ case 13:
+ return 5;
+ case 14:
+ break;
+ case 15:
+ break;
+ case 16:
+ break;
+ case 17:
+ return 8;
+ case 18:
+ return 6;
+ case 19:
+ return 28;
+ case 20:
+ return 39;
+ case 21:
+ return 31;
+ case 22:
+ return 30;
+ case 23:
+ return 33;
+ case 24:
+ return 35;
+ case 25:
+ return 37;
+ case 26:
+ return 40;
+ case 27:
+ return 41;
+ case 28:
+ return 42;
+ case 29:
+ return 43;
+ case 30:
+ return 44;
+ case 31:
+ return 45;
+ case 32:
+ return 46;
+ case 33:
+ return 47;
+ case 34:
+ return 48;
+ case 35:
+ return 49;
+ case 36:
+ return 50;
+ case 37:
+ return 51;
+ case 38:
+ return 52;
+ case 39:
+ return 53;
+ case 40:
+ return 64;
+ case 41:
+ return 65;
+ case 42:
+ return 66;
+ case 43:
+ return 67;
+ case 44:
+ return 68;
+ case 45:
+ return 69;
+ case 46:
+ return 70;
+ case 47:
+ return 56;
+ case 48:
+ return 58;
+ case 49:
+ return 60;
+ case 50:
+ return 63;
+ case 51:
+ return 62;
+ case 52:
+ this.begin("string");
+ break;
+ case 53:
+ this.popState();
+ break;
+ case 54:
+ return "qString";
+ case 55:
+ yy_.yytext = yy_.yytext.trim();
+ return 71;
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\b)/i, /^(?:\{)/i, /^(?:\})/i, /^(?::)/i, /^(?:id\b)/i, /^(?:text\b)/i, /^(?:risk\b)/i, /^(?:verifyMethod\b)/i, /^(?:requirement\b)/i, /^(?:functionalRequirement\b)/i, /^(?:interfaceRequirement\b)/i, /^(?:performanceRequirement\b)/i, /^(?:physicalRequirement\b)/i, /^(?:designConstraint\b)/i, /^(?:low\b)/i, /^(?:medium\b)/i, /^(?:high\b)/i, /^(?:analysis\b)/i, /^(?:demonstration\b)/i, /^(?:inspection\b)/i, /^(?:test\b)/i, /^(?:element\b)/i, /^(?:contains\b)/i, /^(?:copies\b)/i, /^(?:derives\b)/i, /^(?:satisfies\b)/i, /^(?:verifies\b)/i, /^(?:refines\b)/i, /^(?:traces\b)/i, /^(?:type\b)/i, /^(?:docref\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[\w][^\r\n\{\<\>\-\=]*)/i],
+ conditions: { "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "unqString": { "rules": [], "inclusive": false }, "token": { "rules": [], "inclusive": false }, "string": { "rules": [53, 54], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 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, 55], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+let relations = [];
+let latestRequirement = {};
+let requirements = {};
+let latestElement = {};
+let elements = {};
+const RequirementType = {
+ REQUIREMENT: "Requirement",
+ FUNCTIONAL_REQUIREMENT: "Functional Requirement",
+ INTERFACE_REQUIREMENT: "Interface Requirement",
+ PERFORMANCE_REQUIREMENT: "Performance Requirement",
+ PHYSICAL_REQUIREMENT: "Physical Requirement",
+ DESIGN_CONSTRAINT: "Design Constraint"
+};
+const RiskLevel = {
+ LOW_RISK: "Low",
+ MED_RISK: "Medium",
+ HIGH_RISK: "High"
+};
+const VerifyType = {
+ VERIFY_ANALYSIS: "Analysis",
+ VERIFY_DEMONSTRATION: "Demonstration",
+ VERIFY_INSPECTION: "Inspection",
+ VERIFY_TEST: "Test"
+};
+const Relationships = {
+ CONTAINS: "contains",
+ COPIES: "copies",
+ DERIVES: "derives",
+ SATISFIES: "satisfies",
+ VERIFIES: "verifies",
+ REFINES: "refines",
+ TRACES: "traces"
+};
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const addRequirement = (name, type) => {
+ if (requirements[name] === void 0) {
+ requirements[name] = {
+ name,
+ type,
+ id: latestRequirement.id,
+ text: latestRequirement.text,
+ risk: latestRequirement.risk,
+ verifyMethod: latestRequirement.verifyMethod
+ };
+ }
+ latestRequirement = {};
+ return requirements[name];
+};
+const getRequirements = () => requirements;
+const setNewReqId = (id) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.id = id;
+ }
+};
+const setNewReqText = (text) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.text = text;
+ }
+};
+const setNewReqRisk = (risk) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.risk = risk;
+ }
+};
+const setNewReqVerifyMethod = (verifyMethod) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.verifyMethod = verifyMethod;
+ }
+};
+const addElement = (name) => {
+ if (elements[name] === void 0) {
+ elements[name] = {
+ name,
+ type: latestElement.type,
+ docRef: latestElement.docRef
+ };
+ log.info("Added new requirement: ", name);
+ }
+ latestElement = {};
+ return elements[name];
+};
+const getElements = () => elements;
+const setNewElementType = (type) => {
+ if (latestElement !== void 0) {
+ latestElement.type = type;
+ }
+};
+const setNewElementDocRef = (docRef) => {
+ if (latestElement !== void 0) {
+ latestElement.docRef = docRef;
+ }
+};
+const addRelationship = (type, src, dst) => {
+ relations.push({
+ type,
+ src,
+ dst
+ });
+};
+const getRelationships = () => relations;
+const clear = () => {
+ relations = [];
+ latestRequirement = {};
+ requirements = {};
+ latestElement = {};
+ elements = {};
+ clear$1();
+};
+const db = {
+ RequirementType,
+ RiskLevel,
+ VerifyType,
+ Relationships,
+ parseDirective,
+ getConfig: () => getConfig().req,
+ addRequirement,
+ getRequirements,
+ setNewReqId,
+ setNewReqText,
+ setNewReqRisk,
+ setNewReqVerifyMethod,
+ setAccTitle,
+ getAccTitle,
+ setAccDescription,
+ getAccDescription,
+ addElement,
+ getElements,
+ setNewElementType,
+ setNewElementDocRef,
+ addRelationship,
+ getRelationships,
+ clear
+};
+const getStyles = (options) => `
+
+ marker {
+ fill: ${options.relationColor};
+ stroke: ${options.relationColor};
+ }
+
+ marker.cross {
+ stroke: ${options.lineColor};
+ }
+
+ svg {
+ font-family: ${options.fontFamily};
+ font-size: ${options.fontSize};
+ }
+
+ .reqBox {
+ fill: ${options.requirementBackground};
+ fill-opacity: 100%;
+ stroke: ${options.requirementBorderColor};
+ stroke-width: ${options.requirementBorderSize};
+ }
+
+ .reqTitle, .reqLabel{
+ fill: ${options.requirementTextColor};
+ }
+ .reqLabelBox {
+ fill: ${options.relationLabelBackground};
+ fill-opacity: 100%;
+ }
+
+ .req-title-line {
+ stroke: ${options.requirementBorderColor};
+ stroke-width: ${options.requirementBorderSize};
+ }
+ .relationshipLine {
+ stroke: ${options.relationColor};
+ stroke-width: 1;
+ }
+ .relationshipLabel {
+ fill: ${options.relationLabelColor};
+ }
+
+`;
+const styles = getStyles;
+const ReqMarkers = {
+ CONTAINS: "contains",
+ ARROW: "arrow"
+};
+const insertLineEndings = (parentNode, conf2) => {
+ let containsNode = parentNode.append("defs").append("marker").attr("id", ReqMarkers.CONTAINS + "_line_ending").attr("refX", 0).attr("refY", conf2.line_height / 2).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("g");
+ containsNode.append("circle").attr("cx", conf2.line_height / 2).attr("cy", conf2.line_height / 2).attr("r", conf2.line_height / 2).attr("fill", "none");
+ containsNode.append("line").attr("x1", 0).attr("x2", conf2.line_height).attr("y1", conf2.line_height / 2).attr("y2", conf2.line_height / 2).attr("stroke-width", 1);
+ containsNode.append("line").attr("y1", 0).attr("y2", conf2.line_height).attr("x1", conf2.line_height / 2).attr("x2", conf2.line_height / 2).attr("stroke-width", 1);
+ parentNode.append("defs").append("marker").attr("id", ReqMarkers.ARROW + "_line_ending").attr("refX", conf2.line_height).attr("refY", 0.5 * conf2.line_height).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("path").attr(
+ "d",
+ `M0,0
+ L${conf2.line_height},${conf2.line_height / 2}
+ M${conf2.line_height},${conf2.line_height / 2}
+ L0,${conf2.line_height}`
+ ).attr("stroke-width", 1);
+};
+const markers = {
+ ReqMarkers,
+ insertLineEndings
+};
+let conf = {};
+let relCnt = 0;
+const newRectNode = (parentNode, id) => {
+ return parentNode.insert("rect", "#" + id).attr("class", "req reqBox").attr("x", 0).attr("y", 0).attr("width", conf.rect_min_width + "px").attr("height", conf.rect_min_height + "px");
+};
+const newTitleNode = (parentNode, id, txts) => {
+ let x = conf.rect_min_width / 2;
+ let title = parentNode.append("text").attr("class", "req reqLabel reqTitle").attr("id", id).attr("x", x).attr("y", conf.rect_padding).attr("dominant-baseline", "hanging");
+ let i = 0;
+ txts.forEach((textStr) => {
+ if (i == 0) {
+ title.append("tspan").attr("text-anchor", "middle").attr("x", conf.rect_min_width / 2).attr("dy", 0).text(textStr);
+ } else {
+ title.append("tspan").attr("text-anchor", "middle").attr("x", conf.rect_min_width / 2).attr("dy", conf.line_height * 0.75).text(textStr);
+ }
+ i++;
+ });
+ let yPadding = 1.5 * conf.rect_padding;
+ let linePadding = i * conf.line_height * 0.75;
+ let totalY = yPadding + linePadding;
+ parentNode.append("line").attr("class", "req-title-line").attr("x1", "0").attr("x2", conf.rect_min_width).attr("y1", totalY).attr("y2", totalY);
+ return {
+ titleNode: title,
+ y: totalY
+ };
+};
+const newBodyNode = (parentNode, id, txts, yStart) => {
+ let body = parentNode.append("text").attr("class", "req reqLabel").attr("id", id).attr("x", conf.rect_padding).attr("y", yStart).attr("dominant-baseline", "hanging");
+ let currentRow = 0;
+ const charLimit = 30;
+ let wrappedTxts = [];
+ txts.forEach((textStr) => {
+ let currentTextLen = textStr.length;
+ while (currentTextLen > charLimit && currentRow < 3) {
+ let firstPart = textStr.substring(0, charLimit);
+ textStr = textStr.substring(charLimit, textStr.length);
+ currentTextLen = textStr.length;
+ wrappedTxts[wrappedTxts.length] = firstPart;
+ currentRow++;
+ }
+ if (currentRow == 3) {
+ let lastStr = wrappedTxts[wrappedTxts.length - 1];
+ wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + "...";
+ } else {
+ wrappedTxts[wrappedTxts.length] = textStr;
+ }
+ currentRow = 0;
+ });
+ wrappedTxts.forEach((textStr) => {
+ body.append("tspan").attr("x", conf.rect_padding).attr("dy", conf.line_height).text(textStr);
+ });
+ return body;
+};
+const addEdgeLabel = (parentNode, svgPath, conf2, txt) => {
+ const len = svgPath.node().getTotalLength();
+ const labelPoint = svgPath.node().getPointAtLength(len * 0.5);
+ const labelId = "rel" + relCnt;
+ relCnt++;
+ const labelNode = parentNode.append("text").attr("class", "req relationshipLabel").attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(txt);
+ const labelBBox = labelNode.node().getBBox();
+ parentNode.insert("rect", "#" + labelId).attr("class", "req reqLabelBox").attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height).attr("fill", "white").attr("fill-opacity", "85%");
+};
+const drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {
+ const edge = g.edge(elementString(rel.src), elementString(rel.dst));
+ const lineFunction = line().x(function(d) {
+ return d.x;
+ }).y(function(d) {
+ return d.y;
+ });
+ const svgPath = svg.insert("path", "#" + insert).attr("class", "er relationshipLine").attr("d", lineFunction(edge.points)).attr("fill", "none");
+ if (rel.type == diagObj.db.Relationships.CONTAINS) {
+ svgPath.attr(
+ "marker-start",
+ "url(" + common.getUrl(conf.arrowMarkerAbsolute) + "#" + rel.type + "_line_ending)"
+ );
+ } else {
+ svgPath.attr("stroke-dasharray", "10,7");
+ svgPath.attr(
+ "marker-end",
+ "url(" + common.getUrl(conf.arrowMarkerAbsolute) + "#" + markers.ReqMarkers.ARROW + "_line_ending)"
+ );
+ }
+ addEdgeLabel(svg, svgPath, conf, `<<${rel.type}>>`);
+ return;
+};
+const drawReqs = (reqs, graph, svgNode) => {
+ Object.keys(reqs).forEach((reqName) => {
+ let req = reqs[reqName];
+ reqName = elementString(reqName);
+ log.info("Added new requirement: ", reqName);
+ const groupNode = svgNode.append("g").attr("id", reqName);
+ const textId = "req-" + reqName;
+ const rectNode = newRectNode(groupNode, textId);
+ let titleNodeInfo = newTitleNode(groupNode, reqName + "_title", [
+ `<<${req.type}>>`,
+ `${req.name}`
+ ]);
+ newBodyNode(
+ groupNode,
+ reqName + "_body",
+ [
+ `Id: ${req.id}`,
+ `Text: ${req.text}`,
+ `Risk: ${req.risk}`,
+ `Verification: ${req.verifyMethod}`
+ ],
+ titleNodeInfo.y
+ );
+ const rectBBox = rectNode.node().getBBox();
+ graph.setNode(reqName, {
+ width: rectBBox.width,
+ height: rectBBox.height,
+ shape: "rect",
+ id: reqName
+ });
+ });
+};
+const drawElements = (els, graph, svgNode) => {
+ Object.keys(els).forEach((elName) => {
+ let el = els[elName];
+ const id = elementString(elName);
+ const groupNode = svgNode.append("g").attr("id", id);
+ const textId = "element-" + id;
+ const rectNode = newRectNode(groupNode, textId);
+ let titleNodeInfo = newTitleNode(groupNode, textId + "_title", [`<>`, `${elName}`]);
+ newBodyNode(
+ groupNode,
+ textId + "_body",
+ [`Type: ${el.type || "Not Specified"}`, `Doc Ref: ${el.docRef || "None"}`],
+ titleNodeInfo.y
+ );
+ const rectBBox = rectNode.node().getBBox();
+ graph.setNode(id, {
+ width: rectBBox.width,
+ height: rectBBox.height,
+ shape: "rect",
+ id
+ });
+ });
+};
+const addRelationships = (relationships, g) => {
+ relationships.forEach(function(r) {
+ let src = elementString(r.src);
+ let dst = elementString(r.dst);
+ g.setEdge(src, dst, { relationship: r });
+ });
+ return relationships;
+};
+const adjustEntities = function(svgNode, graph) {
+ graph.nodes().forEach(function(v) {
+ if (v !== void 0 && graph.node(v) !== void 0) {
+ svgNode.select("#" + v);
+ svgNode.select("#" + v).attr(
+ "transform",
+ "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )"
+ );
+ }
+ });
+ return;
+};
+const elementString = (str) => {
+ return str.replace(/\s/g, "").replace(/\./g, "_");
+};
+const draw = (text, id, _version, diagObj) => {
+ conf = getConfig().requirement;
+ diagObj.db.clear();
+ diagObj.parser.parse(text);
+ const securityLevel = conf.securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const svg = root.select(`[id='${id}']`);
+ markers.insertLineEndings(svg, conf);
+ const g = new graphlib.Graph({
+ multigraph: false,
+ compound: false,
+ directed: true
+ }).setGraph({
+ rankdir: conf.layoutDirection,
+ marginx: 20,
+ marginy: 20,
+ nodesep: 100,
+ edgesep: 100,
+ ranksep: 100
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ let requirements2 = diagObj.db.getRequirements();
+ let elements2 = diagObj.db.getElements();
+ let relationships = diagObj.db.getRelationships();
+ drawReqs(requirements2, g, svg);
+ drawElements(elements2, g, svg);
+ addRelationships(relationships, g);
+ layout(g);
+ adjustEntities(svg, g);
+ relationships.forEach(function(rel) {
+ drawRelationshipFromLayout(svg, rel, g, id, diagObj);
+ });
+ const padding = conf.rect_padding;
+ const svgBounds = svg.node().getBBox();
+ const width = svgBounds.width + padding * 2;
+ const height = svgBounds.height + padding * 2;
+ configureSvgSize(svg, height, width, conf.useMaxWidth);
+ svg.attr("viewBox", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);
+};
+const renderer = {
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db,
+ renderer,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=requirementDiagram-b9649942.js.map
diff --git a/scopegraphs-render-docs/doc/js/requirementDiagram-ff8da15b.js b/scopegraphs-render-docs/doc/js/requirementDiagram-ff8da15b.js
new file mode 100644
index 0000000..46c4705
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/requirementDiagram-ff8da15b.js
@@ -0,0 +1,1128 @@
+import { g as getConfig, q as setAccTitle, v as getAccTitle, x as setAccDescription, w as getAccDescription, l as log, A as clear$1, h as select, f as common } from "./commonDb-89160e91.js";
+import { m as mermaidAPI } from "./mermaidAPI-c841a67f.js";
+import { G as Graph, l as layout } from "./layout-3ff13c4c.js";
+import { v as configureSvgSize } from "./utils-1aebe9b6.js";
+import { l as line } from "./line-fbe8f138.js";
+import "./array-b7dcf730.js";
+import "./constant-b644328d.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 8], $V5 = [5, 6, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72], $V6 = [1, 22], $V7 = [2, 13], $V8 = [1, 26], $V9 = [1, 27], $Va = [1, 28], $Vb = [1, 29], $Vc = [1, 30], $Vd = [1, 31], $Ve = [1, 24], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 36], $Vi = [71, 72], $Vj = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 60, 62, 71, 72], $Vk = [1, 56], $Vl = [1, 57], $Vm = [1, 58], $Vn = [1, 59], $Vo = [1, 60], $Vp = [1, 61], $Vq = [1, 62], $Vr = [62, 63], $Vs = [1, 74], $Vt = [1, 70], $Vu = [1, 71], $Vv = [1, 72], $Vw = [1, 73], $Vx = [1, 75], $Vy = [1, 79], $Vz = [1, 80], $VA = [1, 77], $VB = [1, 78], $VC = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "directive": 4, "NEWLINE": 5, "RD": 6, "diagram": 7, "EOF": 8, "openDirective": 9, "typeDirective": 10, "closeDirective": 11, ":": 12, "argDirective": 13, "acc_title": 14, "acc_title_value": 15, "acc_descr": 16, "acc_descr_value": 17, "acc_descr_multiline_value": 18, "open_directive": 19, "type_directive": 20, "arg_directive": 21, "close_directive": 22, "requirementDef": 23, "elementDef": 24, "relationshipDef": 25, "requirementType": 26, "requirementName": 27, "STRUCT_START": 28, "requirementBody": 29, "ID": 30, "COLONSEP": 31, "id": 32, "TEXT": 33, "text": 34, "RISK": 35, "riskLevel": 36, "VERIFYMTHD": 37, "verifyType": 38, "STRUCT_STOP": 39, "REQUIREMENT": 40, "FUNCTIONAL_REQUIREMENT": 41, "INTERFACE_REQUIREMENT": 42, "PERFORMANCE_REQUIREMENT": 43, "PHYSICAL_REQUIREMENT": 44, "DESIGN_CONSTRAINT": 45, "LOW_RISK": 46, "MED_RISK": 47, "HIGH_RISK": 48, "VERIFY_ANALYSIS": 49, "VERIFY_DEMONSTRATION": 50, "VERIFY_INSPECTION": 51, "VERIFY_TEST": 52, "ELEMENT": 53, "elementName": 54, "elementBody": 55, "TYPE": 56, "type": 57, "DOCREF": 58, "ref": 59, "END_ARROW_L": 60, "relationship": 61, "LINE": 62, "END_ARROW_R": 63, "CONTAINS": 64, "COPIES": 65, "DERIVES": 66, "SATISFIES": 67, "VERIFIES": 68, "REFINES": 69, "TRACES": 70, "unqString": 71, "qString": 72, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 5: "NEWLINE", 6: "RD", 8: "EOF", 12: ":", 14: "acc_title", 15: "acc_title_value", 16: "acc_descr", 17: "acc_descr_value", 18: "acc_descr_multiline_value", 19: "open_directive", 20: "type_directive", 21: "arg_directive", 22: "close_directive", 28: "STRUCT_START", 30: "ID", 31: "COLONSEP", 33: "TEXT", 35: "RISK", 37: "VERIFYMTHD", 39: "STRUCT_STOP", 40: "REQUIREMENT", 41: "FUNCTIONAL_REQUIREMENT", 42: "INTERFACE_REQUIREMENT", 43: "PERFORMANCE_REQUIREMENT", 44: "PHYSICAL_REQUIREMENT", 45: "DESIGN_CONSTRAINT", 46: "LOW_RISK", 47: "MED_RISK", 48: "HIGH_RISK", 49: "VERIFY_ANALYSIS", 50: "VERIFY_DEMONSTRATION", 51: "VERIFY_INSPECTION", 52: "VERIFY_TEST", 53: "ELEMENT", 56: "TYPE", 58: "DOCREF", 60: "END_ARROW_L", 62: "LINE", 63: "END_ARROW_R", 64: "CONTAINS", 65: "COPIES", 66: "DERIVES", 67: "SATISFIES", 68: "VERIFIES", 69: "REFINES", 70: "TRACES", 71: "unqString", 72: "qString" },
+ productions_: [0, [3, 3], [3, 2], [3, 4], [4, 3], [4, 5], [4, 2], [4, 2], [4, 1], [9, 1], [10, 1], [13, 1], [11, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [23, 5], [29, 5], [29, 5], [29, 5], [29, 5], [29, 2], [29, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [36, 1], [36, 1], [36, 1], [38, 1], [38, 1], [38, 1], [38, 1], [24, 5], [55, 5], [55, 5], [55, 2], [55, 1], [25, 5], [25, 5], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [27, 1], [27, 1], [32, 1], [32, 1], [34, 1], [34, 1], [54, 1], [54, 1], [57, 1], [57, 1], [59, 1], [59, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 6:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 7:
+ case 8:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 9:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 10:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 11:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 12:
+ yy.parseDirective("}%%", "close_directive", "pie");
+ break;
+ case 13:
+ this.$ = [];
+ break;
+ case 19:
+ yy.addRequirement($$[$0 - 3], $$[$0 - 4]);
+ break;
+ case 20:
+ yy.setNewReqId($$[$0 - 2]);
+ break;
+ case 21:
+ yy.setNewReqText($$[$0 - 2]);
+ break;
+ case 22:
+ yy.setNewReqRisk($$[$0 - 2]);
+ break;
+ case 23:
+ yy.setNewReqVerifyMethod($$[$0 - 2]);
+ break;
+ case 26:
+ this.$ = yy.RequirementType.REQUIREMENT;
+ break;
+ case 27:
+ this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT;
+ break;
+ case 28:
+ this.$ = yy.RequirementType.INTERFACE_REQUIREMENT;
+ break;
+ case 29:
+ this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT;
+ break;
+ case 30:
+ this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT;
+ break;
+ case 31:
+ this.$ = yy.RequirementType.DESIGN_CONSTRAINT;
+ break;
+ case 32:
+ this.$ = yy.RiskLevel.LOW_RISK;
+ break;
+ case 33:
+ this.$ = yy.RiskLevel.MED_RISK;
+ break;
+ case 34:
+ this.$ = yy.RiskLevel.HIGH_RISK;
+ break;
+ case 35:
+ this.$ = yy.VerifyType.VERIFY_ANALYSIS;
+ break;
+ case 36:
+ this.$ = yy.VerifyType.VERIFY_DEMONSTRATION;
+ break;
+ case 37:
+ this.$ = yy.VerifyType.VERIFY_INSPECTION;
+ break;
+ case 38:
+ this.$ = yy.VerifyType.VERIFY_TEST;
+ break;
+ case 39:
+ yy.addElement($$[$0 - 3]);
+ break;
+ case 40:
+ yy.setNewElementType($$[$0 - 2]);
+ break;
+ case 41:
+ yy.setNewElementDocRef($$[$0 - 2]);
+ break;
+ case 44:
+ yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]);
+ break;
+ case 45:
+ yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]);
+ break;
+ case 46:
+ this.$ = yy.Relationships.CONTAINS;
+ break;
+ case 47:
+ this.$ = yy.Relationships.COPIES;
+ break;
+ case 48:
+ this.$ = yy.Relationships.DERIVES;
+ break;
+ case 49:
+ this.$ = yy.Relationships.SATISFIES;
+ break;
+ case 50:
+ this.$ = yy.Relationships.VERIFIES;
+ break;
+ case 51:
+ this.$ = yy.Relationships.REFINES;
+ break;
+ case 52:
+ this.$ = yy.Relationships.TRACES;
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: [1, 9], 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 5: [1, 11] }, { 10: 12, 20: [1, 13] }, { 15: [1, 14] }, { 17: [1, 15] }, o($V5, [2, 8]), { 20: [2, 9] }, { 3: 16, 4: 2, 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 1: [2, 2] }, { 4: 21, 5: $V6, 7: 17, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 11: 34, 12: [1, 35], 22: $Vh }, o([12, 22], [2, 10]), o($V5, [2, 6]), o($V5, [2, 7]), { 1: [2, 1] }, { 8: [1, 37] }, { 4: 21, 5: $V6, 7: 38, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 39, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 40, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 41, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 42, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 27: 43, 71: [1, 44], 72: [1, 45] }, { 54: 46, 71: [1, 47], 72: [1, 48] }, { 60: [1, 49], 62: [1, 50] }, o($Vi, [2, 26]), o($Vi, [2, 27]), o($Vi, [2, 28]), o($Vi, [2, 29]), o($Vi, [2, 30]), o($Vi, [2, 31]), o($Vj, [2, 55]), o($Vj, [2, 56]), o($V5, [2, 4]), { 13: 51, 21: [1, 52] }, o($V5, [2, 12]), { 1: [2, 3] }, { 8: [2, 14] }, { 8: [2, 15] }, { 8: [2, 16] }, { 8: [2, 17] }, { 8: [2, 18] }, { 28: [1, 53] }, { 28: [2, 53] }, { 28: [2, 54] }, { 28: [1, 54] }, { 28: [2, 59] }, { 28: [2, 60] }, { 61: 55, 64: $Vk, 65: $Vl, 66: $Vm, 67: $Vn, 68: $Vo, 69: $Vp, 70: $Vq }, { 61: 63, 64: $Vk, 65: $Vl, 66: $Vm, 67: $Vn, 68: $Vo, 69: $Vp, 70: $Vq }, { 11: 64, 22: $Vh }, { 22: [2, 11] }, { 5: [1, 65] }, { 5: [1, 66] }, { 62: [1, 67] }, o($Vr, [2, 46]), o($Vr, [2, 47]), o($Vr, [2, 48]), o($Vr, [2, 49]), o($Vr, [2, 50]), o($Vr, [2, 51]), o($Vr, [2, 52]), { 63: [1, 68] }, o($V5, [2, 5]), { 5: $Vs, 29: 69, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vy, 39: $Vz, 55: 76, 56: $VA, 58: $VB }, { 32: 81, 71: $Vf, 72: $Vg }, { 32: 82, 71: $Vf, 72: $Vg }, o($VC, [2, 19]), { 31: [1, 83] }, { 31: [1, 84] }, { 31: [1, 85] }, { 31: [1, 86] }, { 5: $Vs, 29: 87, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, o($VC, [2, 25]), o($VC, [2, 39]), { 31: [1, 88] }, { 31: [1, 89] }, { 5: $Vy, 39: $Vz, 55: 90, 56: $VA, 58: $VB }, o($VC, [2, 43]), o($VC, [2, 44]), o($VC, [2, 45]), { 32: 91, 71: $Vf, 72: $Vg }, { 34: 92, 71: [1, 93], 72: [1, 94] }, { 36: 95, 46: [1, 96], 47: [1, 97], 48: [1, 98] }, { 38: 99, 49: [1, 100], 50: [1, 101], 51: [1, 102], 52: [1, 103] }, o($VC, [2, 24]), { 57: 104, 71: [1, 105], 72: [1, 106] }, { 59: 107, 71: [1, 108], 72: [1, 109] }, o($VC, [2, 42]), { 5: [1, 110] }, { 5: [1, 111] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: [1, 112] }, { 5: [2, 32] }, { 5: [2, 33] }, { 5: [2, 34] }, { 5: [1, 113] }, { 5: [2, 35] }, { 5: [2, 36] }, { 5: [2, 37] }, { 5: [2, 38] }, { 5: [1, 114] }, { 5: [2, 61] }, { 5: [2, 62] }, { 5: [1, 115] }, { 5: [2, 63] }, { 5: [2, 64] }, { 5: $Vs, 29: 116, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 117, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 118, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 119, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vy, 39: $Vz, 55: 120, 56: $VA, 58: $VB }, { 5: $Vy, 39: $Vz, 55: 121, 56: $VA, 58: $VB }, o($VC, [2, 20]), o($VC, [2, 21]), o($VC, [2, 22]), o($VC, [2, 23]), o($VC, [2, 40]), o($VC, [2, 41])],
+ defaultActions: { 8: [2, 9], 10: [2, 2], 16: [2, 1], 37: [2, 3], 38: [2, 14], 39: [2, 15], 40: [2, 16], 41: [2, 17], 42: [2, 18], 44: [2, 53], 45: [2, 54], 47: [2, 59], 48: [2, 60], 52: [2, 11], 93: [2, 57], 94: [2, 58], 96: [2, 32], 97: [2, 33], 98: [2, 34], 100: [2, 35], 101: [2, 36], 102: [2, 37], 103: [2, 38], 105: [2, 61], 106: [2, 62], 108: [2, 63], 109: [2, 64] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 19;
+ case 1:
+ this.begin("type_directive");
+ return 20;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 12;
+ case 3:
+ this.popState();
+ this.popState();
+ return 22;
+ case 4:
+ return 21;
+ case 5:
+ return "title";
+ case 6:
+ this.begin("acc_title");
+ return 14;
+ case 7:
+ this.popState();
+ return "acc_title_value";
+ case 8:
+ this.begin("acc_descr");
+ return 16;
+ case 9:
+ this.popState();
+ return "acc_descr_value";
+ case 10:
+ this.begin("acc_descr_multiline");
+ break;
+ case 11:
+ this.popState();
+ break;
+ case 12:
+ return "acc_descr_multiline_value";
+ case 13:
+ return 5;
+ case 14:
+ break;
+ case 15:
+ break;
+ case 16:
+ break;
+ case 17:
+ return 8;
+ case 18:
+ return 6;
+ case 19:
+ return 28;
+ case 20:
+ return 39;
+ case 21:
+ return 31;
+ case 22:
+ return 30;
+ case 23:
+ return 33;
+ case 24:
+ return 35;
+ case 25:
+ return 37;
+ case 26:
+ return 40;
+ case 27:
+ return 41;
+ case 28:
+ return 42;
+ case 29:
+ return 43;
+ case 30:
+ return 44;
+ case 31:
+ return 45;
+ case 32:
+ return 46;
+ case 33:
+ return 47;
+ case 34:
+ return 48;
+ case 35:
+ return 49;
+ case 36:
+ return 50;
+ case 37:
+ return 51;
+ case 38:
+ return 52;
+ case 39:
+ return 53;
+ case 40:
+ return 64;
+ case 41:
+ return 65;
+ case 42:
+ return 66;
+ case 43:
+ return 67;
+ case 44:
+ return 68;
+ case 45:
+ return 69;
+ case 46:
+ return 70;
+ case 47:
+ return 56;
+ case 48:
+ return 58;
+ case 49:
+ return 60;
+ case 50:
+ return 63;
+ case 51:
+ return 62;
+ case 52:
+ this.begin("string");
+ break;
+ case 53:
+ this.popState();
+ break;
+ case 54:
+ return "qString";
+ case 55:
+ yy_.yytext = yy_.yytext.trim();
+ return 71;
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\b)/i, /^(?:\{)/i, /^(?:\})/i, /^(?::)/i, /^(?:id\b)/i, /^(?:text\b)/i, /^(?:risk\b)/i, /^(?:verifyMethod\b)/i, /^(?:requirement\b)/i, /^(?:functionalRequirement\b)/i, /^(?:interfaceRequirement\b)/i, /^(?:performanceRequirement\b)/i, /^(?:physicalRequirement\b)/i, /^(?:designConstraint\b)/i, /^(?:low\b)/i, /^(?:medium\b)/i, /^(?:high\b)/i, /^(?:analysis\b)/i, /^(?:demonstration\b)/i, /^(?:inspection\b)/i, /^(?:test\b)/i, /^(?:element\b)/i, /^(?:contains\b)/i, /^(?:copies\b)/i, /^(?:derives\b)/i, /^(?:satisfies\b)/i, /^(?:verifies\b)/i, /^(?:refines\b)/i, /^(?:traces\b)/i, /^(?:type\b)/i, /^(?:docref\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[\w][^\r\n\{\<\>\-\=]*)/i],
+ conditions: { "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "unqString": { "rules": [], "inclusive": false }, "token": { "rules": [], "inclusive": false }, "string": { "rules": [53, 54], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 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, 55], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+let relations = [];
+let latestRequirement = {};
+let requirements = {};
+let latestElement = {};
+let elements = {};
+const RequirementType = {
+ REQUIREMENT: "Requirement",
+ FUNCTIONAL_REQUIREMENT: "Functional Requirement",
+ INTERFACE_REQUIREMENT: "Interface Requirement",
+ PERFORMANCE_REQUIREMENT: "Performance Requirement",
+ PHYSICAL_REQUIREMENT: "Physical Requirement",
+ DESIGN_CONSTRAINT: "Design Constraint"
+};
+const RiskLevel = {
+ LOW_RISK: "Low",
+ MED_RISK: "Medium",
+ HIGH_RISK: "High"
+};
+const VerifyType = {
+ VERIFY_ANALYSIS: "Analysis",
+ VERIFY_DEMONSTRATION: "Demonstration",
+ VERIFY_INSPECTION: "Inspection",
+ VERIFY_TEST: "Test"
+};
+const Relationships = {
+ CONTAINS: "contains",
+ COPIES: "copies",
+ DERIVES: "derives",
+ SATISFIES: "satisfies",
+ VERIFIES: "verifies",
+ REFINES: "refines",
+ TRACES: "traces"
+};
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const addRequirement = (name, type) => {
+ if (requirements[name] === void 0) {
+ requirements[name] = {
+ name,
+ type,
+ id: latestRequirement.id,
+ text: latestRequirement.text,
+ risk: latestRequirement.risk,
+ verifyMethod: latestRequirement.verifyMethod
+ };
+ }
+ latestRequirement = {};
+ return requirements[name];
+};
+const getRequirements = () => requirements;
+const setNewReqId = (id) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.id = id;
+ }
+};
+const setNewReqText = (text) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.text = text;
+ }
+};
+const setNewReqRisk = (risk) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.risk = risk;
+ }
+};
+const setNewReqVerifyMethod = (verifyMethod) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.verifyMethod = verifyMethod;
+ }
+};
+const addElement = (name) => {
+ if (elements[name] === void 0) {
+ elements[name] = {
+ name,
+ type: latestElement.type,
+ docRef: latestElement.docRef
+ };
+ log.info("Added new requirement: ", name);
+ }
+ latestElement = {};
+ return elements[name];
+};
+const getElements = () => elements;
+const setNewElementType = (type) => {
+ if (latestElement !== void 0) {
+ latestElement.type = type;
+ }
+};
+const setNewElementDocRef = (docRef) => {
+ if (latestElement !== void 0) {
+ latestElement.docRef = docRef;
+ }
+};
+const addRelationship = (type, src, dst) => {
+ relations.push({
+ type,
+ src,
+ dst
+ });
+};
+const getRelationships = () => relations;
+const clear = () => {
+ relations = [];
+ latestRequirement = {};
+ requirements = {};
+ latestElement = {};
+ elements = {};
+ clear$1();
+};
+const db = {
+ RequirementType,
+ RiskLevel,
+ VerifyType,
+ Relationships,
+ parseDirective,
+ getConfig: () => getConfig().req,
+ addRequirement,
+ getRequirements,
+ setNewReqId,
+ setNewReqText,
+ setNewReqRisk,
+ setNewReqVerifyMethod,
+ setAccTitle,
+ getAccTitle,
+ setAccDescription,
+ getAccDescription,
+ addElement,
+ getElements,
+ setNewElementType,
+ setNewElementDocRef,
+ addRelationship,
+ getRelationships,
+ clear
+};
+const getStyles = (options) => `
+
+ marker {
+ fill: ${options.relationColor};
+ stroke: ${options.relationColor};
+ }
+
+ marker.cross {
+ stroke: ${options.lineColor};
+ }
+
+ svg {
+ font-family: ${options.fontFamily};
+ font-size: ${options.fontSize};
+ }
+
+ .reqBox {
+ fill: ${options.requirementBackground};
+ fill-opacity: 100%;
+ stroke: ${options.requirementBorderColor};
+ stroke-width: ${options.requirementBorderSize};
+ }
+
+ .reqTitle, .reqLabel{
+ fill: ${options.requirementTextColor};
+ }
+ .reqLabelBox {
+ fill: ${options.relationLabelBackground};
+ fill-opacity: 100%;
+ }
+
+ .req-title-line {
+ stroke: ${options.requirementBorderColor};
+ stroke-width: ${options.requirementBorderSize};
+ }
+ .relationshipLine {
+ stroke: ${options.relationColor};
+ stroke-width: 1;
+ }
+ .relationshipLabel {
+ fill: ${options.relationLabelColor};
+ }
+
+`;
+const styles = getStyles;
+const ReqMarkers = {
+ CONTAINS: "contains",
+ ARROW: "arrow"
+};
+const insertLineEndings = (parentNode, conf2) => {
+ let containsNode = parentNode.append("defs").append("marker").attr("id", ReqMarkers.CONTAINS + "_line_ending").attr("refX", 0).attr("refY", conf2.line_height / 2).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("g");
+ containsNode.append("circle").attr("cx", conf2.line_height / 2).attr("cy", conf2.line_height / 2).attr("r", conf2.line_height / 2).attr("fill", "none");
+ containsNode.append("line").attr("x1", 0).attr("x2", conf2.line_height).attr("y1", conf2.line_height / 2).attr("y2", conf2.line_height / 2).attr("stroke-width", 1);
+ containsNode.append("line").attr("y1", 0).attr("y2", conf2.line_height).attr("x1", conf2.line_height / 2).attr("x2", conf2.line_height / 2).attr("stroke-width", 1);
+ parentNode.append("defs").append("marker").attr("id", ReqMarkers.ARROW + "_line_ending").attr("refX", conf2.line_height).attr("refY", 0.5 * conf2.line_height).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("path").attr(
+ "d",
+ `M0,0
+ L${conf2.line_height},${conf2.line_height / 2}
+ M${conf2.line_height},${conf2.line_height / 2}
+ L0,${conf2.line_height}`
+ ).attr("stroke-width", 1);
+};
+const markers = {
+ ReqMarkers,
+ insertLineEndings
+};
+let conf = {};
+let relCnt = 0;
+const newRectNode = (parentNode, id) => {
+ return parentNode.insert("rect", "#" + id).attr("class", "req reqBox").attr("x", 0).attr("y", 0).attr("width", conf.rect_min_width + "px").attr("height", conf.rect_min_height + "px");
+};
+const newTitleNode = (parentNode, id, txts) => {
+ let x = conf.rect_min_width / 2;
+ let title = parentNode.append("text").attr("class", "req reqLabel reqTitle").attr("id", id).attr("x", x).attr("y", conf.rect_padding).attr("dominant-baseline", "hanging");
+ let i = 0;
+ txts.forEach((textStr) => {
+ if (i == 0) {
+ title.append("tspan").attr("text-anchor", "middle").attr("x", conf.rect_min_width / 2).attr("dy", 0).text(textStr);
+ } else {
+ title.append("tspan").attr("text-anchor", "middle").attr("x", conf.rect_min_width / 2).attr("dy", conf.line_height * 0.75).text(textStr);
+ }
+ i++;
+ });
+ let yPadding = 1.5 * conf.rect_padding;
+ let linePadding = i * conf.line_height * 0.75;
+ let totalY = yPadding + linePadding;
+ parentNode.append("line").attr("class", "req-title-line").attr("x1", "0").attr("x2", conf.rect_min_width).attr("y1", totalY).attr("y2", totalY);
+ return {
+ titleNode: title,
+ y: totalY
+ };
+};
+const newBodyNode = (parentNode, id, txts, yStart) => {
+ let body = parentNode.append("text").attr("class", "req reqLabel").attr("id", id).attr("x", conf.rect_padding).attr("y", yStart).attr("dominant-baseline", "hanging");
+ let currentRow = 0;
+ const charLimit = 30;
+ let wrappedTxts = [];
+ txts.forEach((textStr) => {
+ let currentTextLen = textStr.length;
+ while (currentTextLen > charLimit && currentRow < 3) {
+ let firstPart = textStr.substring(0, charLimit);
+ textStr = textStr.substring(charLimit, textStr.length);
+ currentTextLen = textStr.length;
+ wrappedTxts[wrappedTxts.length] = firstPart;
+ currentRow++;
+ }
+ if (currentRow == 3) {
+ let lastStr = wrappedTxts[wrappedTxts.length - 1];
+ wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + "...";
+ } else {
+ wrappedTxts[wrappedTxts.length] = textStr;
+ }
+ currentRow = 0;
+ });
+ wrappedTxts.forEach((textStr) => {
+ body.append("tspan").attr("x", conf.rect_padding).attr("dy", conf.line_height).text(textStr);
+ });
+ return body;
+};
+const addEdgeLabel = (parentNode, svgPath, conf2, txt) => {
+ const len = svgPath.node().getTotalLength();
+ const labelPoint = svgPath.node().getPointAtLength(len * 0.5);
+ const labelId = "rel" + relCnt;
+ relCnt++;
+ const labelNode = parentNode.append("text").attr("class", "req relationshipLabel").attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(txt);
+ const labelBBox = labelNode.node().getBBox();
+ parentNode.insert("rect", "#" + labelId).attr("class", "req reqLabelBox").attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height).attr("fill", "white").attr("fill-opacity", "85%");
+};
+const drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {
+ const edge = g.edge(elementString(rel.src), elementString(rel.dst));
+ const lineFunction = line().x(function(d) {
+ return d.x;
+ }).y(function(d) {
+ return d.y;
+ });
+ const svgPath = svg.insert("path", "#" + insert).attr("class", "er relationshipLine").attr("d", lineFunction(edge.points)).attr("fill", "none");
+ if (rel.type == diagObj.db.Relationships.CONTAINS) {
+ svgPath.attr(
+ "marker-start",
+ "url(" + common.getUrl(conf.arrowMarkerAbsolute) + "#" + rel.type + "_line_ending)"
+ );
+ } else {
+ svgPath.attr("stroke-dasharray", "10,7");
+ svgPath.attr(
+ "marker-end",
+ "url(" + common.getUrl(conf.arrowMarkerAbsolute) + "#" + markers.ReqMarkers.ARROW + "_line_ending)"
+ );
+ }
+ addEdgeLabel(svg, svgPath, conf, `<<${rel.type}>>`);
+ return;
+};
+const drawReqs = (reqs, graph, svgNode) => {
+ Object.keys(reqs).forEach((reqName) => {
+ let req = reqs[reqName];
+ reqName = elementString(reqName);
+ log.info("Added new requirement: ", reqName);
+ const groupNode = svgNode.append("g").attr("id", reqName);
+ const textId = "req-" + reqName;
+ const rectNode = newRectNode(groupNode, textId);
+ let titleNodeInfo = newTitleNode(groupNode, reqName + "_title", [
+ `<<${req.type}>>`,
+ `${req.name}`
+ ]);
+ newBodyNode(
+ groupNode,
+ reqName + "_body",
+ [
+ `Id: ${req.id}`,
+ `Text: ${req.text}`,
+ `Risk: ${req.risk}`,
+ `Verification: ${req.verifyMethod}`
+ ],
+ titleNodeInfo.y
+ );
+ const rectBBox = rectNode.node().getBBox();
+ graph.setNode(reqName, {
+ width: rectBBox.width,
+ height: rectBBox.height,
+ shape: "rect",
+ id: reqName
+ });
+ });
+};
+const drawElements = (els, graph, svgNode) => {
+ Object.keys(els).forEach((elName) => {
+ let el = els[elName];
+ const id = elementString(elName);
+ const groupNode = svgNode.append("g").attr("id", id);
+ const textId = "element-" + id;
+ const rectNode = newRectNode(groupNode, textId);
+ let titleNodeInfo = newTitleNode(groupNode, textId + "_title", [`<>`, `${elName}`]);
+ newBodyNode(
+ groupNode,
+ textId + "_body",
+ [`Type: ${el.type || "Not Specified"}`, `Doc Ref: ${el.docRef || "None"}`],
+ titleNodeInfo.y
+ );
+ const rectBBox = rectNode.node().getBBox();
+ graph.setNode(id, {
+ width: rectBBox.width,
+ height: rectBBox.height,
+ shape: "rect",
+ id
+ });
+ });
+};
+const addRelationships = (relationships, g) => {
+ relationships.forEach(function(r) {
+ let src = elementString(r.src);
+ let dst = elementString(r.dst);
+ g.setEdge(src, dst, { relationship: r });
+ });
+ return relationships;
+};
+const adjustEntities = function(svgNode, graph) {
+ graph.nodes().forEach(function(v) {
+ if (v !== void 0 && graph.node(v) !== void 0) {
+ svgNode.select("#" + v);
+ svgNode.select("#" + v).attr(
+ "transform",
+ "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )"
+ );
+ }
+ });
+ return;
+};
+const elementString = (str) => {
+ return str.replace(/\s/g, "").replace(/\./g, "_");
+};
+const draw = (text, id, _version, diagObj) => {
+ conf = getConfig().requirement;
+ diagObj.db.clear();
+ diagObj.parser.parse(text);
+ const securityLevel = conf.securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const svg = root.select(`[id='${id}']`);
+ markers.insertLineEndings(svg, conf);
+ const g = new Graph({
+ multigraph: false,
+ compound: false,
+ directed: true
+ }).setGraph({
+ rankdir: conf.layoutDirection,
+ marginx: 20,
+ marginy: 20,
+ nodesep: 100,
+ edgesep: 100,
+ ranksep: 100
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ let requirements2 = diagObj.db.getRequirements();
+ let elements2 = diagObj.db.getElements();
+ let relationships = diagObj.db.getRelationships();
+ drawReqs(requirements2, g, svg);
+ drawElements(elements2, g, svg);
+ addRelationships(relationships, g);
+ layout(g);
+ adjustEntities(svg, g);
+ relationships.forEach(function(rel) {
+ drawRelationshipFromLayout(svg, rel, g, id, diagObj);
+ });
+ const padding = conf.rect_padding;
+ const svgBounds = svg.node().getBBox();
+ const width = svgBounds.width + padding * 2;
+ const height = svgBounds.height + padding * 2;
+ configureSvgSize(svg, height, width, conf.useMaxWidth);
+ svg.attr("viewBox", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);
+};
+const renderer = {
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db,
+ renderer,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=requirementDiagram-ff8da15b.js.map
diff --git a/scopegraphs-render-docs/doc/js/selectAll-4d781168.js b/scopegraphs-render-docs/doc/js/selectAll-4d781168.js
new file mode 100644
index 0000000..26c241e
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/selectAll-4d781168.js
@@ -0,0 +1,8 @@
+import { S as t, B as n, C as o } from "./commonDb-41f8b4c5.js";
+function a(e) {
+ return typeof e == "string" ? new t([document.querySelectorAll(e)], [document.documentElement]) : new t([o(e)], n);
+}
+export {
+ a as s
+};
+//# sourceMappingURL=selectAll-4d781168.js.map
diff --git a/scopegraphs-render-docs/doc/js/selectAll-7c7a6d44.js b/scopegraphs-render-docs/doc/js/selectAll-7c7a6d44.js
new file mode 100644
index 0000000..d08a0c3
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/selectAll-7c7a6d44.js
@@ -0,0 +1,8 @@
+import { S as Selection, B as root, C as array } from "./commonDb-89160e91.js";
+function selectAll(selector) {
+ return typeof selector === "string" ? new Selection([document.querySelectorAll(selector)], [document.documentElement]) : new Selection([array(selector)], root);
+}
+export {
+ selectAll as s
+};
+//# sourceMappingURL=selectAll-7c7a6d44.js.map
diff --git a/scopegraphs-render-docs/doc/js/sequenceDiagram-3b765acc.js b/scopegraphs-render-docs/doc/js/sequenceDiagram-3b765acc.js
new file mode 100644
index 0000000..e444a47
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/sequenceDiagram-3b765acc.js
@@ -0,0 +1,2092 @@
+import { m as be, q as we } from "./mermaidAPI-67f627de.js";
+import { v as _e, z as ke, y as Le, g as ct, q as te, x as Pe, w as Ie, A as Ne, l as K, b as Lt, f as Pt, d as ve, h as kt } from "./commonDb-41f8b4c5.js";
+import { s as It, N as ee, v as Ae, u as C } from "./utils-8ea37061.js";
+import { s as Se } from "./selectAll-4d781168.js";
+var Bt = function() {
+ var t = function(rt, m, w, k) {
+ for (w = w || {}, k = rt.length; k--; w[rt[k]] = m)
+ ;
+ return w;
+ }, e = [1, 2], s = [1, 3], n = [1, 5], i = [1, 7], a = [2, 5], o = [1, 15], l = [1, 17], u = [1, 19], h = [1, 21], T = [1, 22], y = [1, 23], p = [1, 29], x = [1, 30], b = [1, 31], L = [1, 32], v = [1, 33], M = [1, 34], I = [1, 35], B = [1, 36], V = [1, 37], z = [1, 38], G = [1, 39], Y = [1, 40], D = [1, 42], X = [1, 43], q = [1, 45], F = [1, 46], H = [1, 47], J = [1, 48], Q = [1, 49], E = [1, 50], P = [1, 53], _ = [1, 4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83], U = [4, 5, 21, 54, 56], N = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 54, 56, 57, 62, 63, 64, 65, 73, 83], Kt = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83], Gt = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 52, 54, 56, 57, 62, 63, 64, 65, 73, 83], Xt = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 54, 56, 57, 62, 63, 64, 65, 73, 83], at = [71, 72, 73], et = [1, 125], Jt = [1, 4, 5, 7, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83], Mt = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, SPACE: 4, NEWLINE: 5, directive: 6, SD: 7, document: 8, line: 9, statement: 10, box_section: 11, box_line: 12, participant_statement: 13, openDirective: 14, typeDirective: 15, closeDirective: 16, ":": 17, argDirective: 18, box: 19, restOfLine: 20, end: 21, signal: 22, autonumber: 23, NUM: 24, off: 25, activate: 26, actor: 27, deactivate: 28, note_statement: 29, links_statement: 30, link_statement: 31, properties_statement: 32, details_statement: 33, title: 34, legacy_title: 35, acc_title: 36, acc_title_value: 37, acc_descr: 38, acc_descr_value: 39, acc_descr_multiline_value: 40, loop: 41, rect: 42, opt: 43, alt: 44, else_sections: 45, par: 46, par_sections: 47, critical: 48, option_sections: 49, break: 50, option: 51, and: 52, else: 53, participant: 54, AS: 55, participant_actor: 56, note: 57, placement: 58, text2: 59, over: 60, actor_pair: 61, links: 62, link: 63, properties: 64, details: 65, spaceList: 66, ",": 67, left_of: 68, right_of: 69, signaltype: 70, "+": 71, "-": 72, ACTOR: 73, SOLID_OPEN_ARROW: 74, DOTTED_OPEN_ARROW: 75, SOLID_ARROW: 76, DOTTED_ARROW: 77, SOLID_CROSS: 78, DOTTED_CROSS: 79, SOLID_POINT: 80, DOTTED_POINT: 81, TXT: 82, open_directive: 83, type_directive: 84, arg_directive: 85, close_directive: 86, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 4: "SPACE", 5: "NEWLINE", 7: "SD", 17: ":", 19: "box", 20: "restOfLine", 21: "end", 23: "autonumber", 24: "NUM", 25: "off", 26: "activate", 28: "deactivate", 34: "title", 35: "legacy_title", 36: "acc_title", 37: "acc_title_value", 38: "acc_descr", 39: "acc_descr_value", 40: "acc_descr_multiline_value", 41: "loop", 42: "rect", 43: "opt", 44: "alt", 46: "par", 48: "critical", 50: "break", 51: "option", 52: "and", 53: "else", 54: "participant", 55: "AS", 56: "participant_actor", 57: "note", 60: "over", 62: "links", 63: "link", 64: "properties", 65: "details", 67: ",", 68: "left_of", 69: "right_of", 71: "+", 72: "-", 73: "ACTOR", 74: "SOLID_OPEN_ARROW", 75: "DOTTED_OPEN_ARROW", 76: "SOLID_ARROW", 77: "DOTTED_ARROW", 78: "SOLID_CROSS", 79: "DOTTED_CROSS", 80: "SOLID_POINT", 81: "DOTTED_POINT", 82: "TXT", 83: "open_directive", 84: "type_directive", 85: "arg_directive", 86: "close_directive" },
+ productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [11, 0], [11, 2], [12, 2], [12, 1], [12, 1], [6, 4], [6, 6], [10, 1], [10, 4], [10, 2], [10, 4], [10, 3], [10, 3], [10, 2], [10, 3], [10, 3], [10, 2], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 1], [49, 1], [49, 4], [47, 1], [47, 4], [45, 1], [45, 4], [13, 5], [13, 3], [13, 5], [13, 3], [29, 4], [29, 4], [30, 3], [31, 3], [32, 3], [33, 3], [66, 2], [66, 1], [61, 3], [61, 1], [58, 1], [58, 1], [22, 5], [22, 5], [22, 4], [27, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [59, 1], [14, 1], [15, 1], [18, 1], [16, 1]],
+ performAction: function(m, w, k, g, A, c, Tt) {
+ var d = c.length - 1;
+ switch (A) {
+ case 4:
+ return g.apply(c[d]), c[d];
+ case 5:
+ case 10:
+ this.$ = [];
+ break;
+ case 6:
+ case 11:
+ c[d - 1].push(c[d]), this.$ = c[d - 1];
+ break;
+ case 7:
+ case 8:
+ case 12:
+ case 13:
+ this.$ = c[d];
+ break;
+ case 9:
+ case 14:
+ this.$ = [];
+ break;
+ case 18:
+ c[d - 1].unshift({ type: "boxStart", boxData: g.parseBoxData(c[d - 2]) }), c[d - 1].push({ type: "boxEnd", boxText: c[d - 2] }), this.$ = c[d - 1];
+ break;
+ case 20:
+ this.$ = { type: "sequenceIndex", sequenceIndex: Number(c[d - 2]), sequenceIndexStep: Number(c[d - 1]), sequenceVisible: !0, signalType: g.LINETYPE.AUTONUMBER };
+ break;
+ case 21:
+ this.$ = { type: "sequenceIndex", sequenceIndex: Number(c[d - 1]), sequenceIndexStep: 1, sequenceVisible: !0, signalType: g.LINETYPE.AUTONUMBER };
+ break;
+ case 22:
+ this.$ = { type: "sequenceIndex", sequenceVisible: !1, signalType: g.LINETYPE.AUTONUMBER };
+ break;
+ case 23:
+ this.$ = { type: "sequenceIndex", sequenceVisible: !0, signalType: g.LINETYPE.AUTONUMBER };
+ break;
+ case 24:
+ this.$ = { type: "activeStart", signalType: g.LINETYPE.ACTIVE_START, actor: c[d - 1] };
+ break;
+ case 25:
+ this.$ = { type: "activeEnd", signalType: g.LINETYPE.ACTIVE_END, actor: c[d - 1] };
+ break;
+ case 31:
+ g.setDiagramTitle(c[d].substring(6)), this.$ = c[d].substring(6);
+ break;
+ case 32:
+ g.setDiagramTitle(c[d].substring(7)), this.$ = c[d].substring(7);
+ break;
+ case 33:
+ this.$ = c[d].trim(), g.setAccTitle(this.$);
+ break;
+ case 34:
+ case 35:
+ this.$ = c[d].trim(), g.setAccDescription(this.$);
+ break;
+ case 36:
+ c[d - 1].unshift({ type: "loopStart", loopText: g.parseMessage(c[d - 2]), signalType: g.LINETYPE.LOOP_START }), c[d - 1].push({ type: "loopEnd", loopText: c[d - 2], signalType: g.LINETYPE.LOOP_END }), this.$ = c[d - 1];
+ break;
+ case 37:
+ c[d - 1].unshift({ type: "rectStart", color: g.parseMessage(c[d - 2]), signalType: g.LINETYPE.RECT_START }), c[d - 1].push({ type: "rectEnd", color: g.parseMessage(c[d - 2]), signalType: g.LINETYPE.RECT_END }), this.$ = c[d - 1];
+ break;
+ case 38:
+ c[d - 1].unshift({ type: "optStart", optText: g.parseMessage(c[d - 2]), signalType: g.LINETYPE.OPT_START }), c[d - 1].push({ type: "optEnd", optText: g.parseMessage(c[d - 2]), signalType: g.LINETYPE.OPT_END }), this.$ = c[d - 1];
+ break;
+ case 39:
+ c[d - 1].unshift({ type: "altStart", altText: g.parseMessage(c[d - 2]), signalType: g.LINETYPE.ALT_START }), c[d - 1].push({ type: "altEnd", signalType: g.LINETYPE.ALT_END }), this.$ = c[d - 1];
+ break;
+ case 40:
+ c[d - 1].unshift({ type: "parStart", parText: g.parseMessage(c[d - 2]), signalType: g.LINETYPE.PAR_START }), c[d - 1].push({ type: "parEnd", signalType: g.LINETYPE.PAR_END }), this.$ = c[d - 1];
+ break;
+ case 41:
+ c[d - 1].unshift({ type: "criticalStart", criticalText: g.parseMessage(c[d - 2]), signalType: g.LINETYPE.CRITICAL_START }), c[d - 1].push({ type: "criticalEnd", signalType: g.LINETYPE.CRITICAL_END }), this.$ = c[d - 1];
+ break;
+ case 42:
+ c[d - 1].unshift({ type: "breakStart", breakText: g.parseMessage(c[d - 2]), signalType: g.LINETYPE.BREAK_START }), c[d - 1].push({ type: "breakEnd", optText: g.parseMessage(c[d - 2]), signalType: g.LINETYPE.BREAK_END }), this.$ = c[d - 1];
+ break;
+ case 45:
+ this.$ = c[d - 3].concat([{ type: "option", optionText: g.parseMessage(c[d - 1]), signalType: g.LINETYPE.CRITICAL_OPTION }, c[d]]);
+ break;
+ case 47:
+ this.$ = c[d - 3].concat([{ type: "and", parText: g.parseMessage(c[d - 1]), signalType: g.LINETYPE.PAR_AND }, c[d]]);
+ break;
+ case 49:
+ this.$ = c[d - 3].concat([{ type: "else", altText: g.parseMessage(c[d - 1]), signalType: g.LINETYPE.ALT_ELSE }, c[d]]);
+ break;
+ case 50:
+ c[d - 3].type = "addParticipant", c[d - 3].description = g.parseMessage(c[d - 1]), this.$ = c[d - 3];
+ break;
+ case 51:
+ c[d - 1].type = "addParticipant", this.$ = c[d - 1];
+ break;
+ case 52:
+ c[d - 3].type = "addActor", c[d - 3].description = g.parseMessage(c[d - 1]), this.$ = c[d - 3];
+ break;
+ case 53:
+ c[d - 1].type = "addActor", this.$ = c[d - 1];
+ break;
+ case 54:
+ this.$ = [c[d - 1], { type: "addNote", placement: c[d - 2], actor: c[d - 1].actor, text: c[d] }];
+ break;
+ case 55:
+ c[d - 2] = [].concat(c[d - 1], c[d - 1]).slice(0, 2), c[d - 2][0] = c[d - 2][0].actor, c[d - 2][1] = c[d - 2][1].actor, this.$ = [c[d - 1], { type: "addNote", placement: g.PLACEMENT.OVER, actor: c[d - 2].slice(0, 2), text: c[d] }];
+ break;
+ case 56:
+ this.$ = [c[d - 1], { type: "addLinks", actor: c[d - 1].actor, text: c[d] }];
+ break;
+ case 57:
+ this.$ = [c[d - 1], { type: "addALink", actor: c[d - 1].actor, text: c[d] }];
+ break;
+ case 58:
+ this.$ = [c[d - 1], { type: "addProperties", actor: c[d - 1].actor, text: c[d] }];
+ break;
+ case 59:
+ this.$ = [c[d - 1], { type: "addDetails", actor: c[d - 1].actor, text: c[d] }];
+ break;
+ case 62:
+ this.$ = [c[d - 2], c[d]];
+ break;
+ case 63:
+ this.$ = c[d];
+ break;
+ case 64:
+ this.$ = g.PLACEMENT.LEFTOF;
+ break;
+ case 65:
+ this.$ = g.PLACEMENT.RIGHTOF;
+ break;
+ case 66:
+ this.$ = [
+ c[d - 4],
+ c[d - 1],
+ { type: "addMessage", from: c[d - 4].actor, to: c[d - 1].actor, signalType: c[d - 3], msg: c[d] },
+ { type: "activeStart", signalType: g.LINETYPE.ACTIVE_START, actor: c[d - 1] }
+ ];
+ break;
+ case 67:
+ this.$ = [
+ c[d - 4],
+ c[d - 1],
+ { type: "addMessage", from: c[d - 4].actor, to: c[d - 1].actor, signalType: c[d - 3], msg: c[d] },
+ { type: "activeEnd", signalType: g.LINETYPE.ACTIVE_END, actor: c[d - 4] }
+ ];
+ break;
+ case 68:
+ this.$ = [c[d - 3], c[d - 1], { type: "addMessage", from: c[d - 3].actor, to: c[d - 1].actor, signalType: c[d - 2], msg: c[d] }];
+ break;
+ case 69:
+ this.$ = { type: "addParticipant", actor: c[d] };
+ break;
+ case 70:
+ this.$ = g.LINETYPE.SOLID_OPEN;
+ break;
+ case 71:
+ this.$ = g.LINETYPE.DOTTED_OPEN;
+ break;
+ case 72:
+ this.$ = g.LINETYPE.SOLID;
+ break;
+ case 73:
+ this.$ = g.LINETYPE.DOTTED;
+ break;
+ case 74:
+ this.$ = g.LINETYPE.SOLID_CROSS;
+ break;
+ case 75:
+ this.$ = g.LINETYPE.DOTTED_CROSS;
+ break;
+ case 76:
+ this.$ = g.LINETYPE.SOLID_POINT;
+ break;
+ case 77:
+ this.$ = g.LINETYPE.DOTTED_POINT;
+ break;
+ case 78:
+ this.$ = g.parseMessage(c[d].trim().substring(1));
+ break;
+ case 79:
+ g.parseDirective("%%{", "open_directive");
+ break;
+ case 80:
+ g.parseDirective(c[d], "type_directive");
+ break;
+ case 81:
+ c[d] = c[d].trim().replace(/'/g, '"'), g.parseDirective(c[d], "arg_directive");
+ break;
+ case 82:
+ g.parseDirective("}%%", "close_directive", "sequence");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: e, 5: s, 6: 4, 7: n, 14: 6, 83: i }, { 1: [3] }, { 3: 8, 4: e, 5: s, 6: 4, 7: n, 14: 6, 83: i }, { 3: 9, 4: e, 5: s, 6: 4, 7: n, 14: 6, 83: i }, { 3: 10, 4: e, 5: s, 6: 4, 7: n, 14: 6, 83: i }, t([1, 4, 5, 19, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 54, 56, 57, 62, 63, 64, 65, 73, 83], a, { 8: 11 }), { 15: 12, 84: [1, 13] }, { 84: [2, 79] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: o, 5: l, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: u, 22: 20, 23: h, 26: T, 27: 44, 28: y, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: p, 35: x, 36: b, 38: L, 40: v, 41: M, 42: I, 43: B, 44: V, 46: z, 48: G, 50: Y, 54: D, 56: X, 57: q, 62: F, 63: H, 64: J, 65: Q, 73: E, 83: i }, { 16: 51, 17: [1, 52], 86: P }, t([17, 86], [2, 80]), t(_, [2, 6]), { 6: 41, 10: 54, 13: 18, 14: 6, 19: u, 22: 20, 23: h, 26: T, 27: 44, 28: y, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: p, 35: x, 36: b, 38: L, 40: v, 41: M, 42: I, 43: B, 44: V, 46: z, 48: G, 50: Y, 54: D, 56: X, 57: q, 62: F, 63: H, 64: J, 65: Q, 73: E, 83: i }, t(_, [2, 8]), t(_, [2, 9]), t(_, [2, 17]), { 20: [1, 55] }, { 5: [1, 56] }, { 5: [1, 59], 24: [1, 57], 25: [1, 58] }, { 27: 60, 73: E }, { 27: 61, 73: E }, { 5: [1, 62] }, { 5: [1, 63] }, { 5: [1, 64] }, { 5: [1, 65] }, { 5: [1, 66] }, t(_, [2, 31]), t(_, [2, 32]), { 37: [1, 67] }, { 39: [1, 68] }, t(_, [2, 35]), { 20: [1, 69] }, { 20: [1, 70] }, { 20: [1, 71] }, { 20: [1, 72] }, { 20: [1, 73] }, { 20: [1, 74] }, { 20: [1, 75] }, t(_, [2, 43]), { 27: 76, 73: E }, { 27: 77, 73: E }, { 70: 78, 74: [1, 79], 75: [1, 80], 76: [1, 81], 77: [1, 82], 78: [1, 83], 79: [1, 84], 80: [1, 85], 81: [1, 86] }, { 58: 87, 60: [1, 88], 68: [1, 89], 69: [1, 90] }, { 27: 91, 73: E }, { 27: 92, 73: E }, { 27: 93, 73: E }, { 27: 94, 73: E }, t([5, 55, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82], [2, 69]), { 5: [1, 95] }, { 18: 96, 85: [1, 97] }, { 5: [2, 82] }, t(_, [2, 7]), t(U, [2, 10], { 11: 98 }), t(_, [2, 19]), { 5: [1, 100], 24: [1, 99] }, { 5: [1, 101] }, t(_, [2, 23]), { 5: [1, 102] }, { 5: [1, 103] }, t(_, [2, 26]), t(_, [2, 27]), t(_, [2, 28]), t(_, [2, 29]), t(_, [2, 30]), t(_, [2, 33]), t(_, [2, 34]), t(N, a, { 8: 104 }), t(N, a, { 8: 105 }), t(N, a, { 8: 106 }), t(Kt, a, { 45: 107, 8: 108 }), t(Gt, a, { 47: 109, 8: 110 }), t(Xt, a, { 49: 111, 8: 112 }), t(N, a, { 8: 113 }), { 5: [1, 115], 55: [1, 114] }, { 5: [1, 117], 55: [1, 116] }, { 27: 120, 71: [1, 118], 72: [1, 119], 73: E }, 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]), { 27: 121, 73: E }, { 27: 123, 61: 122, 73: E }, { 73: [2, 64] }, { 73: [2, 65] }, { 59: 124, 82: et }, { 59: 126, 82: et }, { 59: 127, 82: et }, { 59: 128, 82: et }, t(Jt, [2, 15]), { 16: 129, 86: P }, { 86: [2, 81] }, { 4: [1, 132], 5: [1, 134], 12: 131, 13: 133, 21: [1, 130], 54: D, 56: X }, { 5: [1, 135] }, t(_, [2, 21]), t(_, [2, 22]), t(_, [2, 24]), t(_, [2, 25]), { 4: o, 5: l, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: u, 21: [1, 136], 22: 20, 23: h, 26: T, 27: 44, 28: y, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: p, 35: x, 36: b, 38: L, 40: v, 41: M, 42: I, 43: B, 44: V, 46: z, 48: G, 50: Y, 54: D, 56: X, 57: q, 62: F, 63: H, 64: J, 65: Q, 73: E, 83: i }, { 4: o, 5: l, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: u, 21: [1, 137], 22: 20, 23: h, 26: T, 27: 44, 28: y, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: p, 35: x, 36: b, 38: L, 40: v, 41: M, 42: I, 43: B, 44: V, 46: z, 48: G, 50: Y, 54: D, 56: X, 57: q, 62: F, 63: H, 64: J, 65: Q, 73: E, 83: i }, { 4: o, 5: l, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: u, 21: [1, 138], 22: 20, 23: h, 26: T, 27: 44, 28: y, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: p, 35: x, 36: b, 38: L, 40: v, 41: M, 42: I, 43: B, 44: V, 46: z, 48: G, 50: Y, 54: D, 56: X, 57: q, 62: F, 63: H, 64: J, 65: Q, 73: E, 83: i }, { 21: [1, 139] }, { 4: o, 5: l, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: u, 21: [2, 48], 22: 20, 23: h, 26: T, 27: 44, 28: y, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: p, 35: x, 36: b, 38: L, 40: v, 41: M, 42: I, 43: B, 44: V, 46: z, 48: G, 50: Y, 53: [1, 140], 54: D, 56: X, 57: q, 62: F, 63: H, 64: J, 65: Q, 73: E, 83: i }, { 21: [1, 141] }, { 4: o, 5: l, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: u, 21: [2, 46], 22: 20, 23: h, 26: T, 27: 44, 28: y, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: p, 35: x, 36: b, 38: L, 40: v, 41: M, 42: I, 43: B, 44: V, 46: z, 48: G, 50: Y, 52: [1, 142], 54: D, 56: X, 57: q, 62: F, 63: H, 64: J, 65: Q, 73: E, 83: i }, { 21: [1, 143] }, { 4: o, 5: l, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: u, 21: [2, 44], 22: 20, 23: h, 26: T, 27: 44, 28: y, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: p, 35: x, 36: b, 38: L, 40: v, 41: M, 42: I, 43: B, 44: V, 46: z, 48: G, 50: Y, 51: [1, 144], 54: D, 56: X, 57: q, 62: F, 63: H, 64: J, 65: Q, 73: E, 83: i }, { 4: o, 5: l, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: u, 21: [1, 145], 22: 20, 23: h, 26: T, 27: 44, 28: y, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: p, 35: x, 36: b, 38: L, 40: v, 41: M, 42: I, 43: B, 44: V, 46: z, 48: G, 50: Y, 54: D, 56: X, 57: q, 62: F, 63: H, 64: J, 65: Q, 73: E, 83: i }, { 20: [1, 146] }, t(_, [2, 51]), { 20: [1, 147] }, t(_, [2, 53]), { 27: 148, 73: E }, { 27: 149, 73: E }, { 59: 150, 82: et }, { 59: 151, 82: et }, { 59: 152, 82: et }, { 67: [1, 153], 82: [2, 63] }, { 5: [2, 56] }, { 5: [2, 78] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: [2, 59] }, { 5: [1, 154] }, t(_, [2, 18]), t(U, [2, 11]), { 13: 155, 54: D, 56: X }, t(U, [2, 13]), t(U, [2, 14]), t(_, [2, 20]), t(_, [2, 36]), t(_, [2, 37]), t(_, [2, 38]), t(_, [2, 39]), { 20: [1, 156] }, t(_, [2, 40]), { 20: [1, 157] }, t(_, [2, 41]), { 20: [1, 158] }, t(_, [2, 42]), { 5: [1, 159] }, { 5: [1, 160] }, { 59: 161, 82: et }, { 59: 162, 82: et }, { 5: [2, 68] }, { 5: [2, 54] }, { 5: [2, 55] }, { 27: 163, 73: E }, t(Jt, [2, 16]), t(U, [2, 12]), t(Kt, a, { 8: 108, 45: 164 }), t(Gt, a, { 8: 110, 47: 165 }), t(Xt, a, { 8: 112, 49: 166 }), t(_, [2, 50]), t(_, [2, 52]), { 5: [2, 66] }, { 5: [2, 67] }, { 82: [2, 62] }, { 21: [2, 49] }, { 21: [2, 47] }, { 21: [2, 45] }],
+ defaultActions: { 7: [2, 79], 8: [2, 1], 9: [2, 2], 10: [2, 3], 53: [2, 82], 89: [2, 64], 90: [2, 65], 97: [2, 81], 124: [2, 56], 125: [2, 78], 126: [2, 57], 127: [2, 58], 128: [2, 59], 150: [2, 68], 151: [2, 54], 152: [2, 55], 161: [2, 66], 162: [2, 67], 163: [2, 62], 164: [2, 49], 165: [2, 47], 166: [2, 45] },
+ parseError: function(m, w) {
+ if (w.recoverable)
+ this.trace(m);
+ else {
+ var k = new Error(m);
+ throw k.hash = w, k;
+ }
+ },
+ parse: function(m) {
+ var w = this, k = [0], g = [], A = [null], c = [], Tt = this.table, d = "", bt = 0, Qt = 0, Te = 2, Zt = 1, ye = c.slice.call(arguments, 1), O = Object.create(this.lexer), lt = { yy: {} };
+ for (var Dt in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, Dt) && (lt.yy[Dt] = this.yy[Dt]);
+ O.setInput(m, lt.yy), lt.yy.lexer = O, lt.yy.parser = this, typeof O.yylloc > "u" && (O.yylloc = {});
+ var Vt = O.yylloc;
+ c.push(Vt);
+ var Ee = O.options && O.options.ranges;
+ typeof lt.yy.parseError == "function" ? this.parseError = lt.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function me() {
+ var it;
+ return it = g.pop() || O.lex() || Zt, typeof it != "number" && (it instanceof Array && (g = it, it = g.pop()), it = w.symbols_[it] || it), it;
+ }
+ for (var W, ht, Z, Ct, pt = {}, wt, nt, jt, _t; ; ) {
+ if (ht = k[k.length - 1], this.defaultActions[ht] ? Z = this.defaultActions[ht] : ((W === null || typeof W > "u") && (W = me()), Z = Tt[ht] && Tt[ht][W]), typeof Z > "u" || !Z.length || !Z[0]) {
+ var Ot = "";
+ _t = [];
+ for (wt in Tt[ht])
+ this.terminals_[wt] && wt > Te && _t.push("'" + this.terminals_[wt] + "'");
+ O.showPosition ? Ot = "Parse error on line " + (bt + 1) + `:
+` + O.showPosition() + `
+Expecting ` + _t.join(", ") + ", got '" + (this.terminals_[W] || W) + "'" : Ot = "Parse error on line " + (bt + 1) + ": Unexpected " + (W == Zt ? "end of input" : "'" + (this.terminals_[W] || W) + "'"), this.parseError(Ot, {
+ text: O.match,
+ token: this.terminals_[W] || W,
+ line: O.yylineno,
+ loc: Vt,
+ expected: _t
+ });
+ }
+ if (Z[0] instanceof Array && Z.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + ht + ", token: " + W);
+ switch (Z[0]) {
+ case 1:
+ k.push(W), A.push(O.yytext), c.push(O.yylloc), k.push(Z[1]), W = null, Qt = O.yyleng, d = O.yytext, bt = O.yylineno, Vt = O.yylloc;
+ break;
+ case 2:
+ if (nt = this.productions_[Z[1]][1], pt.$ = A[A.length - nt], pt._$ = {
+ first_line: c[c.length - (nt || 1)].first_line,
+ last_line: c[c.length - 1].last_line,
+ first_column: c[c.length - (nt || 1)].first_column,
+ last_column: c[c.length - 1].last_column
+ }, Ee && (pt._$.range = [
+ c[c.length - (nt || 1)].range[0],
+ c[c.length - 1].range[1]
+ ]), Ct = this.performAction.apply(pt, [
+ d,
+ Qt,
+ bt,
+ lt.yy,
+ Z[1],
+ A,
+ c
+ ].concat(ye)), typeof Ct < "u")
+ return Ct;
+ nt && (k = k.slice(0, -1 * nt * 2), A = A.slice(0, -1 * nt), c = c.slice(0, -1 * nt)), k.push(this.productions_[Z[1]][0]), A.push(pt.$), c.push(pt._$), jt = Tt[k[k.length - 2]][k[k.length - 1]], k.push(jt);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, ge = function() {
+ var rt = {
+ EOF: 1,
+ parseError: function(w, k) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(w, k);
+ else
+ throw new Error(w);
+ },
+ // resets the lexer, sets new input
+ setInput: function(m, w) {
+ return this.yy = w || this.yy || {}, this._input = m, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var m = this._input[0];
+ this.yytext += m, this.yyleng++, this.offset++, this.match += m, this.matched += m;
+ var w = m.match(/(?:\r\n?|\n).*/g);
+ return w ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), m;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(m) {
+ var w = m.length, k = m.split(/(?:\r\n?|\n)/g);
+ this._input = m + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - w), this.offset -= w;
+ var g = 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), k.length - 1 && (this.yylineno -= k.length - 1);
+ var A = 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: k ? (k.length === g.length ? this.yylloc.first_column : 0) + g[g.length - k.length].length - k[0].length : this.yylloc.first_column - w
+ }, this.options.ranges && (this.yylloc.range = [A[0], A[0] + this.yyleng - w]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(m) {
+ this.unput(this.match.slice(m));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var m = this.matched.substr(0, this.matched.length - this.match.length);
+ return (m.length > 20 ? "..." : "") + m.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var m = this.match;
+ return m.length < 20 && (m += this._input.substr(0, 20 - m.length)), (m.substr(0, 20) + (m.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var m = this.pastInput(), w = new Array(m.length + 1).join("-");
+ return m + this.upcomingInput() + `
+` + w + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(m, w) {
+ var k, g, A;
+ if (this.options.backtrack_lexer && (A = {
+ 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 && (A.yylloc.range = this.yylloc.range.slice(0))), g = m[0].match(/(?:\r\n?|\n).*/g), g && (this.yylineno += g.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: g ? g[g.length - 1].length - g[g.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + m[0].length
+ }, this.yytext += m[0], this.match += m[0], this.matches = m, 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(m[0].length), this.matched += m[0], k = this.performAction.call(this, this.yy, this, w, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), k)
+ return k;
+ if (this._backtrack) {
+ for (var c in A)
+ this[c] = A[c];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var m, w, k, g;
+ this._more || (this.yytext = "", this.match = "");
+ for (var A = this._currentRules(), c = 0; c < A.length; c++)
+ if (k = this._input.match(this.rules[A[c]]), k && (!w || k[0].length > w[0].length)) {
+ if (w = k, g = c, this.options.backtrack_lexer) {
+ if (m = this.test_match(k, A[c]), m !== !1)
+ return m;
+ if (this._backtrack) {
+ w = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return w ? (m = this.test_match(w, A[g]), m !== !1 ? m : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var w = this.next();
+ return w || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(w) {
+ this.conditionStack.push(w);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var w = this.conditionStack.length - 1;
+ return w > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(w) {
+ return w = this.conditionStack.length - 1 - Math.abs(w || 0), w >= 0 ? this.conditionStack[w] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(w) {
+ this.begin(w);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": !0 },
+ performAction: function(w, k, g, A) {
+ switch (g) {
+ case 0:
+ return this.begin("open_directive"), 83;
+ case 1:
+ return this.begin("type_directive"), 84;
+ case 2:
+ return this.popState(), this.begin("arg_directive"), 17;
+ case 3:
+ return this.popState(), this.popState(), 86;
+ case 4:
+ return 85;
+ case 5:
+ return 5;
+ case 6:
+ break;
+ case 7:
+ break;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ break;
+ case 11:
+ return 24;
+ case 12:
+ return this.begin("LINE"), 19;
+ case 13:
+ return this.begin("ID"), 54;
+ case 14:
+ return this.begin("ID"), 56;
+ case 15:
+ return k.yytext = k.yytext.trim(), this.begin("ALIAS"), 73;
+ case 16:
+ return this.popState(), this.popState(), this.begin("LINE"), 55;
+ case 17:
+ return this.popState(), this.popState(), 5;
+ case 18:
+ return this.begin("LINE"), 41;
+ case 19:
+ return this.begin("LINE"), 42;
+ case 20:
+ return this.begin("LINE"), 43;
+ case 21:
+ return this.begin("LINE"), 44;
+ case 22:
+ return this.begin("LINE"), 53;
+ case 23:
+ return this.begin("LINE"), 46;
+ case 24:
+ return this.begin("LINE"), 52;
+ case 25:
+ return this.begin("LINE"), 48;
+ case 26:
+ return this.begin("LINE"), 51;
+ case 27:
+ return this.begin("LINE"), 50;
+ case 28:
+ return this.popState(), 20;
+ case 29:
+ return 21;
+ case 30:
+ return 68;
+ case 31:
+ return 69;
+ case 32:
+ return 62;
+ case 33:
+ return 63;
+ case 34:
+ return 64;
+ case 35:
+ return 65;
+ case 36:
+ return 60;
+ case 37:
+ return 57;
+ case 38:
+ return this.begin("ID"), 26;
+ case 39:
+ return this.begin("ID"), 28;
+ case 40:
+ return 34;
+ case 41:
+ return 35;
+ case 42:
+ return this.begin("acc_title"), 36;
+ case 43:
+ return this.popState(), "acc_title_value";
+ case 44:
+ return this.begin("acc_descr"), 38;
+ case 45:
+ return this.popState(), "acc_descr_value";
+ case 46:
+ this.begin("acc_descr_multiline");
+ break;
+ case 47:
+ this.popState();
+ break;
+ case 48:
+ return "acc_descr_multiline_value";
+ case 49:
+ return 7;
+ case 50:
+ return 23;
+ case 51:
+ return 25;
+ case 52:
+ return 67;
+ case 53:
+ return 5;
+ case 54:
+ return k.yytext = k.yytext.trim(), 73;
+ case 55:
+ return 76;
+ case 56:
+ return 77;
+ case 57:
+ return 74;
+ case 58:
+ return 75;
+ case 59:
+ return 78;
+ case 60:
+ return 79;
+ case 61:
+ return 80;
+ case 62:
+ return 81;
+ case 63:
+ return 82;
+ case 64:
+ return 71;
+ case 65:
+ return 72;
+ case 66:
+ return 5;
+ case 67:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[0-9]+(?=[ \n]+))/i, /^(?:box\b)/i, /^(?:participant\b)/i, /^(?:actor\b)/i, /^(?:[^\->:\n,;]+?([\-]*[^\->:\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, /^(?:critical\b)/i, /^(?:option\b)/i, /^(?:break\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:links\b)/i, /^(?:link\b)/i, /^(?:properties\b)/i, /^(?:details\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:title:\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:sequenceDiagram\b)/i, /^(?:autonumber\b)/i, /^(?:off\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\)])/i, /^(?:--[\)])/i, /^(?::(?:(?:no)?wrap)?[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { acc_descr_multiline: { rules: [47, 48], inclusive: !1 }, acc_descr: { rules: [45], inclusive: !1 }, acc_title: { rules: [43], inclusive: !1 }, open_directive: { rules: [1, 8], inclusive: !1 }, type_directive: { rules: [2, 3, 8], inclusive: !1 }, arg_directive: { rules: [3, 4, 8], inclusive: !1 }, ID: { rules: [7, 8, 15], inclusive: !1 }, ALIAS: { rules: [7, 8, 16, 17], inclusive: !1 }, LINE: { rules: [7, 8, 28], inclusive: !1 }, INITIAL: { rules: [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67], inclusive: !0 } }
+ };
+ return rt;
+ }();
+ Mt.lexer = ge;
+ function Rt() {
+ this.yy = {};
+ }
+ return Rt.prototype = Mt, Mt.Parser = Rt, new Rt();
+}();
+Bt.parser = Bt;
+const Me = Bt;
+let yt, ot = {}, xt = [], j = [], Nt = !1, Yt, st;
+const Re = function(t, e, s) {
+ be.parseDirective(this, t, e, s);
+}, De = function(t) {
+ xt.push({
+ name: t.text,
+ wrap: t.wrap === void 0 && dt() || !!t.wrap,
+ fill: t.color,
+ actorKeys: []
+ }), st = xt.slice(-1)[0];
+}, Ft = function(t, e, s, n) {
+ let i = st;
+ const a = ot[t];
+ if (a) {
+ if (st && a.box && st !== a.box)
+ throw new Error(
+ "A same participant should only be defined in one Box: " + a.name + " can't be in '" + a.box.name + "' and in '" + st.name + "' at the same time."
+ );
+ if (i = a.box ? a.box : st, a.box = i, a && e === a.name && s == null)
+ return;
+ }
+ (s == null || s.text == null) && (s = { text: e, wrap: null, type: n }), (n == null || s.text == null) && (s = { text: e, wrap: null, type: n }), ot[t] = {
+ box: i,
+ name: e,
+ description: s.text,
+ wrap: s.wrap === void 0 && dt() || !!s.wrap,
+ prevActor: yt,
+ links: {},
+ properties: {},
+ actorCnt: null,
+ rectData: null,
+ type: n || "participant"
+ }, yt && ot[yt] && (ot[yt].nextActor = t), st && st.actorKeys.push(t), yt = t;
+}, Ve = (t) => {
+ let e, s = 0;
+ for (e = 0; e < j.length; e++)
+ j[e].type === Et.ACTIVE_START && j[e].from.actor === t && s++, j[e].type === Et.ACTIVE_END && j[e].from.actor === t && s--;
+ return s;
+}, Ce = function(t, e, s, n) {
+ j.push({
+ from: t,
+ to: e,
+ message: s.text,
+ wrap: s.wrap === void 0 && dt() || !!s.wrap,
+ answer: n
+ });
+}, R = function(t, e, s = { text: void 0, wrap: void 0 }, n) {
+ if (n === Et.ACTIVE_END && Ve(t.actor) < 1) {
+ let 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 j.push({
+ from: t,
+ to: e,
+ message: s.text,
+ wrap: s.wrap === void 0 && dt() || !!s.wrap,
+ type: n
+ }), !0;
+}, Oe = function() {
+ return xt.length > 0;
+}, Be = function() {
+ return xt.some((t) => t.name);
+}, Ye = function() {
+ return j;
+}, Fe = function() {
+ return xt;
+}, We = function() {
+ return ot;
+}, mt = function(t) {
+ return ot[t];
+}, ze = function() {
+ return Object.keys(ot);
+}, qe = function() {
+ Nt = !0;
+}, He = function() {
+ Nt = !1;
+}, Ue = () => Nt, Ke = function(t) {
+ Yt = t;
+}, dt = () => Yt !== void 0 ? Yt : ct().sequence.wrap, Ge = function() {
+ ot = {}, xt = [], j = [], Nt = !1, Ne();
+}, Xe = function(t) {
+ const e = t.trim(), s = {
+ text: e.replace(/^:?(?:no)?wrap:/, "").trim(),
+ wrap: e.match(/^:?wrap:/) !== null ? !0 : e.match(/^:?nowrap:/) !== null ? !1 : void 0
+ };
+ return K.debug("parseMessage:", s), s;
+}, Je = function(t) {
+ const e = t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);
+ let s = e != null && e[1] ? e[1].trim() : "transparent", n = e != null && e[2] ? e[2].trim() : void 0;
+ if (window && window.CSS)
+ window.CSS.supports("color", s) || (s = "transparent", n = t.trim());
+ else {
+ const a = new Option().style;
+ a.color = s, a.color !== s && (s = "transparent", n = t.trim());
+ }
+ return {
+ color: s,
+ text: n !== void 0 ? Lt(n.replace(/^:?(?:no)?wrap:/, ""), ct()) : void 0,
+ wrap: n !== void 0 ? n.match(/^:?wrap:/) !== null ? !0 : n.match(/^:?nowrap:/) !== null ? !1 : void 0 : void 0
+ };
+}, Et = {
+ 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,
+ SOLID_POINT: 24,
+ DOTTED_POINT: 25,
+ AUTONUMBER: 26,
+ CRITICAL_START: 27,
+ CRITICAL_OPTION: 28,
+ CRITICAL_END: 29,
+ BREAK_START: 30,
+ BREAK_END: 31
+}, Qe = {
+ FILLED: 0,
+ OPEN: 1
+}, Ze = {
+ LEFTOF: 0,
+ RIGHTOF: 1,
+ OVER: 2
+}, ne = function(t, e, s) {
+ s.text, s.wrap === void 0 && dt() || s.wrap;
+ const n = [].concat(t, t);
+ j.push({
+ from: n[0],
+ to: n[1],
+ message: s.text,
+ wrap: s.wrap === void 0 && dt() || !!s.wrap,
+ type: Et.NOTE,
+ placement: e
+ });
+}, ie = function(t, e) {
+ const s = mt(t);
+ try {
+ let n = Lt(e.text, ct());
+ n = n.replace(/&/g, "&"), n = n.replace(/=/g, "=");
+ const i = JSON.parse(n);
+ Ht(s, i);
+ } catch (n) {
+ K.error("error while parsing actor link text", n);
+ }
+}, je = function(t, e) {
+ const s = mt(t);
+ try {
+ const o = {};
+ let l = Lt(e.text, ct());
+ var n = l.indexOf("@");
+ l = l.replace(/&/g, "&"), l = l.replace(/=/g, "=");
+ var i = l.slice(0, n - 1).trim(), a = l.slice(n + 1).trim();
+ o[i] = a, Ht(s, o);
+ } catch (o) {
+ K.error("error while parsing actor link text", o);
+ }
+};
+function Ht(t, e) {
+ if (t.links == null)
+ t.links = e;
+ else
+ for (let s in e)
+ t.links[s] = e[s];
+}
+const se = function(t, e) {
+ const s = mt(t);
+ try {
+ let n = Lt(e.text, ct());
+ const i = JSON.parse(n);
+ ae(s, i);
+ } catch (n) {
+ K.error("error while parsing actor properties text", n);
+ }
+};
+function ae(t, e) {
+ if (t.properties == null)
+ t.properties = e;
+ else
+ for (let s in e)
+ t.properties[s] = e[s];
+}
+function $e() {
+ st = void 0;
+}
+const re = function(t, e) {
+ const s = mt(t), n = document.getElementById(e.text);
+ try {
+ const i = n.innerHTML, a = JSON.parse(i);
+ a.properties && ae(s, a.properties), a.links && Ht(s, a.links);
+ } catch (i) {
+ K.error("error while parsing actor details text", i);
+ }
+}, t0 = function(t, e) {
+ if (t !== void 0 && t.properties !== void 0)
+ return t.properties[e];
+}, oe = function(t) {
+ if (Array.isArray(t))
+ t.forEach(function(e) {
+ oe(e);
+ });
+ else
+ switch (t.type) {
+ case "sequenceIndex":
+ j.push({
+ from: void 0,
+ to: void 0,
+ message: {
+ start: t.sequenceIndex,
+ step: t.sequenceIndexStep,
+ visible: t.sequenceVisible
+ },
+ wrap: !1,
+ type: t.signalType
+ });
+ break;
+ case "addParticipant":
+ Ft(t.actor, t.actor, t.description, "participant");
+ break;
+ case "addActor":
+ Ft(t.actor, t.actor, t.description, "actor");
+ break;
+ case "activeStart":
+ R(t.actor, void 0, void 0, t.signalType);
+ break;
+ case "activeEnd":
+ R(t.actor, void 0, void 0, t.signalType);
+ break;
+ case "addNote":
+ ne(t.actor, t.placement, t.text);
+ break;
+ case "addLinks":
+ ie(t.actor, t.text);
+ break;
+ case "addALink":
+ je(t.actor, t.text);
+ break;
+ case "addProperties":
+ se(t.actor, t.text);
+ break;
+ case "addDetails":
+ re(t.actor, t.text);
+ break;
+ case "addMessage":
+ R(t.from, t.to, t.msg, t.signalType);
+ break;
+ case "boxStart":
+ De(t.boxData);
+ break;
+ case "boxEnd":
+ $e();
+ break;
+ case "loopStart":
+ R(void 0, void 0, t.loopText, t.signalType);
+ break;
+ case "loopEnd":
+ R(void 0, void 0, void 0, t.signalType);
+ break;
+ case "rectStart":
+ R(void 0, void 0, t.color, t.signalType);
+ break;
+ case "rectEnd":
+ R(void 0, void 0, void 0, t.signalType);
+ break;
+ case "optStart":
+ R(void 0, void 0, t.optText, t.signalType);
+ break;
+ case "optEnd":
+ R(void 0, void 0, void 0, t.signalType);
+ break;
+ case "altStart":
+ R(void 0, void 0, t.altText, t.signalType);
+ break;
+ case "else":
+ R(void 0, void 0, t.altText, t.signalType);
+ break;
+ case "altEnd":
+ R(void 0, void 0, void 0, t.signalType);
+ break;
+ case "setAccTitle":
+ te(t.text);
+ break;
+ case "parStart":
+ R(void 0, void 0, t.parText, t.signalType);
+ break;
+ case "and":
+ R(void 0, void 0, t.parText, t.signalType);
+ break;
+ case "parEnd":
+ R(void 0, void 0, void 0, t.signalType);
+ break;
+ case "criticalStart":
+ R(void 0, void 0, t.criticalText, t.signalType);
+ break;
+ case "option":
+ R(void 0, void 0, t.optionText, t.signalType);
+ break;
+ case "criticalEnd":
+ R(void 0, void 0, void 0, t.signalType);
+ break;
+ case "breakStart":
+ R(void 0, void 0, t.breakText, t.signalType);
+ break;
+ case "breakEnd":
+ R(void 0, void 0, void 0, t.signalType);
+ break;
+ }
+}, e0 = {
+ addActor: Ft,
+ addMessage: Ce,
+ addSignal: R,
+ addLinks: ie,
+ addDetails: re,
+ addProperties: se,
+ autoWrap: dt,
+ setWrap: Ke,
+ enableSequenceNumbers: qe,
+ disableSequenceNumbers: He,
+ showSequenceNumbers: Ue,
+ getMessages: Ye,
+ getActors: We,
+ getActor: mt,
+ getActorKeys: ze,
+ getActorProperty: t0,
+ getAccTitle: _e,
+ getBoxes: Fe,
+ getDiagramTitle: ke,
+ setDiagramTitle: Le,
+ parseDirective: Re,
+ getConfig: () => ct().sequence,
+ clear: Ge,
+ parseMessage: Xe,
+ parseBoxData: Je,
+ LINETYPE: Et,
+ ARROWTYPE: Qe,
+ PLACEMENT: Ze,
+ addNote: ne,
+ setAccTitle: te,
+ apply: oe,
+ setAccDescription: Pe,
+ getAccDescription: Ie,
+ hasAtLeastOneBox: Oe,
+ hasAtLeastOneBoxWithTitle: Be
+}, n0 = (t) => `.actor {
+ stroke: ${t.actorBorder};
+ fill: ${t.actorBkg};
+ }
+
+ text.actor > tspan {
+ fill: ${t.actorTextColor};
+ stroke: none;
+ }
+
+ .actor-line {
+ stroke: ${t.actorLineColor};
+ }
+
+ .messageLine0 {
+ stroke-width: 1.5;
+ stroke-dasharray: none;
+ stroke: ${t.signalColor};
+ }
+
+ .messageLine1 {
+ stroke-width: 1.5;
+ stroke-dasharray: 2, 2;
+ stroke: ${t.signalColor};
+ }
+
+ #arrowhead path {
+ fill: ${t.signalColor};
+ stroke: ${t.signalColor};
+ }
+
+ .sequenceNumber {
+ fill: ${t.sequenceNumberColor};
+ }
+
+ #sequencenumber {
+ fill: ${t.signalColor};
+ }
+
+ #crosshead path {
+ fill: ${t.signalColor};
+ stroke: ${t.signalColor};
+ }
+
+ .messageText {
+ fill: ${t.signalTextColor};
+ stroke: none;
+ }
+
+ .labelBox {
+ stroke: ${t.labelBoxBorderColor};
+ fill: ${t.labelBoxBkgColor};
+ }
+
+ .labelText, .labelText > tspan {
+ fill: ${t.labelTextColor};
+ stroke: none;
+ }
+
+ .loopText, .loopText > tspan {
+ fill: ${t.loopTextColor};
+ stroke: none;
+ }
+
+ .loopLine {
+ stroke-width: 2px;
+ stroke-dasharray: 2, 2;
+ stroke: ${t.labelBoxBorderColor};
+ fill: ${t.labelBoxBorderColor};
+ }
+
+ .note {
+ //stroke: #decc93;
+ stroke: ${t.noteBorderColor};
+ fill: ${t.noteBkgColor};
+ }
+
+ .noteText, .noteText > tspan {
+ fill: ${t.noteTextColor};
+ stroke: none;
+ }
+
+ .activation0 {
+ fill: ${t.activationBkgColor};
+ stroke: ${t.activationBorderColor};
+ }
+
+ .activation1 {
+ fill: ${t.activationBkgColor};
+ stroke: ${t.activationBorderColor};
+ }
+
+ .activation2 {
+ fill: ${t.activationBkgColor};
+ stroke: ${t.activationBorderColor};
+ }
+
+ .actorPopupMenu {
+ position: absolute;
+ }
+
+ .actorPopupMenuPanel {
+ position: absolute;
+ fill: ${t.actorBkg};
+ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
+ filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));
+}
+ .actor-man line {
+ stroke: ${t.actorBorder};
+ fill: ${t.actorBkg};
+ }
+ .actor-man circle, line {
+ stroke: ${t.actorBorder};
+ fill: ${t.actorBkg};
+ stroke-width: 2px;
+ }
+`, i0 = n0, vt = function(t, e) {
+ const s = t.append("rect");
+ return s.attr("x", e.x), s.attr("y", e.y), s.attr("fill", e.fill), s.attr("stroke", e.stroke), s.attr("width", e.width), s.attr("height", e.height), s.attr("rx", e.rx), s.attr("ry", e.ry), e.class !== void 0 && s.attr("class", e.class), s;
+}, ce = (t, e) => {
+ we(() => {
+ const s = document.querySelectorAll(t);
+ s.length !== 0 && (s[0].addEventListener("mouseover", function() {
+ o0("actor" + e + "_popup");
+ }), s[0].addEventListener("mouseout", function() {
+ c0("actor" + e + "_popup");
+ }));
+ });
+}, s0 = function(t, e, s, n, i) {
+ if (e.links === void 0 || e.links === null || Object.keys(e.links).length === 0)
+ return { height: 0, width: 0 };
+ const a = e.links, o = e.actorCnt, l = e.rectData;
+ var u = "none";
+ i && (u = "block !important");
+ const h = t.append("g");
+ h.attr("id", "actor" + o + "_popup"), h.attr("class", "actorPopupMenu"), h.attr("display", u), ce("#actor" + o + "_popup", o);
+ var T = "";
+ l.class !== void 0 && (T = " " + l.class);
+ let y = l.width > s ? l.width : s;
+ const p = h.append("rect");
+ if (p.attr("class", "actorPopupMenuPanel" + T), p.attr("x", l.x), p.attr("y", l.height), p.attr("fill", l.fill), p.attr("stroke", l.stroke), p.attr("width", y), p.attr("height", l.height), p.attr("rx", l.rx), p.attr("ry", l.ry), a != null) {
+ var x = 20;
+ for (let v in a) {
+ var b = h.append("a"), L = It(a[v]);
+ b.attr("xlink:href", L), b.attr("target", "_blank"), _0(n)(
+ v,
+ b,
+ l.x + 10,
+ l.height + x,
+ y,
+ 20,
+ { class: "actor" },
+ n
+ ), x += 30;
+ }
+ }
+ return p.attr("height", x), { height: l.height + x, width: y };
+}, le = function(t, e, s, n) {
+ const i = t.append("image");
+ i.attr("x", e), i.attr("y", s);
+ var a = It(n);
+ i.attr("xlink:href", a);
+}, he = function(t, e, s, n) {
+ const i = t.append("use");
+ i.attr("x", e), i.attr("y", s);
+ var a = It(n);
+ i.attr("xlink:href", "#" + a);
+}, a0 = function(t) {
+ return "var pu = document.getElementById('" + t + "'); if (pu != null) { pu.style.display = 'block'; }";
+}, r0 = function(t) {
+ return "var pu = document.getElementById('" + t + "'); if (pu != null) { pu.style.display = 'none'; }";
+}, o0 = function(t) {
+ var e = document.getElementById(t);
+ e != null && (e.style.display = "block");
+}, c0 = function(t) {
+ var e = document.getElementById(t);
+ e != null && (e.style.display = "none");
+}, gt = function(t, e) {
+ let s = 0, n = 0;
+ const i = e.text.split(Pt.lineBreakRegex), [a, o] = ee(e.fontSize);
+ let l = [], u = 0, h = () => e.y;
+ if (e.valign !== void 0 && e.textMargin !== void 0 && e.textMargin > 0)
+ switch (e.valign) {
+ case "top":
+ case "start":
+ h = () => Math.round(e.y + e.textMargin);
+ break;
+ case "middle":
+ case "center":
+ h = () => Math.round(e.y + (s + n + e.textMargin) / 2);
+ break;
+ case "bottom":
+ case "end":
+ h = () => Math.round(
+ e.y + (s + n + 2 * e.textMargin) - e.textMargin
+ );
+ break;
+ }
+ if (e.anchor !== void 0 && e.textMargin !== void 0 && e.width !== void 0)
+ switch (e.anchor) {
+ case "left":
+ case "start":
+ e.x = Math.round(e.x + e.textMargin), e.anchor = "start", e.dominantBaseline = "middle", e.alignmentBaseline = "middle";
+ break;
+ case "middle":
+ case "center":
+ e.x = Math.round(e.x + e.width / 2), e.anchor = "middle", e.dominantBaseline = "middle", e.alignmentBaseline = "middle";
+ break;
+ case "right":
+ case "end":
+ e.x = Math.round(e.x + e.width - e.textMargin), e.anchor = "end", e.dominantBaseline = "middle", e.alignmentBaseline = "middle";
+ break;
+ }
+ for (let [T, y] of i.entries()) {
+ e.textMargin !== void 0 && e.textMargin === 0 && a !== void 0 && (u = T * a);
+ const p = t.append("text");
+ if (p.attr("x", e.x), p.attr("y", h()), e.anchor !== void 0 && p.attr("text-anchor", e.anchor).attr("dominant-baseline", e.dominantBaseline).attr("alignment-baseline", e.alignmentBaseline), e.fontFamily !== void 0 && p.style("font-family", e.fontFamily), o !== void 0 && p.style("font-size", o), e.fontWeight !== void 0 && p.style("font-weight", e.fontWeight), e.fill !== void 0 && p.attr("fill", e.fill), e.class !== void 0 && p.attr("class", e.class), e.dy !== void 0 ? p.attr("dy", e.dy) : u !== 0 && p.attr("dy", u), e.tspan) {
+ const x = p.append("tspan");
+ x.attr("x", e.x), e.fill !== void 0 && x.attr("fill", e.fill), x.text(y);
+ } else
+ p.text(y);
+ e.valign !== void 0 && e.textMargin !== void 0 && e.textMargin > 0 && (n += (p._groups || p)[0][0].getBBox().height, s = n), l.push(p);
+ }
+ return l;
+}, de = function(t, e) {
+ function s(i, a, o, l, u) {
+ return i + "," + a + " " + (i + o) + "," + a + " " + (i + o) + "," + (a + l - u) + " " + (i + o - u * 1.2) + "," + (a + l) + " " + i + "," + (a + l);
+ }
+ const n = t.append("polygon");
+ return n.attr("points", s(e.x, e.y, e.width, e.height, 7)), n.attr("class", "labelBox"), e.y = e.y + e.height / 2, gt(t, e), n;
+};
+let tt = -1;
+const ue = (t, e) => {
+ t.selectAll && t.selectAll(".actor-line").attr("class", "200").attr("y2", e - 55);
+}, l0 = function(t, e, s, n) {
+ const i = e.x + e.width / 2, a = e.y + 5, o = t.append("g");
+ var l = o;
+ n || (tt++, l.append("line").attr("id", "actor" + tt).attr("x1", i).attr("y1", a).attr("x2", i).attr("y2", 2e3).attr("class", "actor-line").attr("stroke-width", "0.5px").attr("stroke", "#999"), l = o.append("g"), e.actorCnt = tt, e.links != null && (l.attr("id", "root-" + tt), ce("#root-" + tt, tt)));
+ const u = At();
+ var h = "actor";
+ e.properties != null && e.properties.class ? h = e.properties.class : u.fill = "#eaeaea", u.x = e.x, u.y = e.y, u.width = e.width, u.height = e.height, u.class = h, u.rx = 3, u.ry = 3;
+ const T = vt(l, u);
+ if (e.rectData = u, e.properties != null && e.properties.icon) {
+ const p = e.properties.icon.trim();
+ p.charAt(0) === "@" ? he(l, u.x + u.width - 20, u.y + 10, p.substr(1)) : le(l, u.x + u.width - 20, u.y + 10, p);
+ }
+ Ut(s)(
+ e.description,
+ l,
+ u.x,
+ u.y,
+ u.width,
+ u.height,
+ { class: "actor" },
+ s
+ );
+ let y = e.height;
+ if (T.node) {
+ const p = T.node().getBBox();
+ e.height = p.height, y = p.height;
+ }
+ return y;
+}, h0 = function(t, e, s, n) {
+ const i = e.x + e.width / 2, a = e.y + 80;
+ n || (tt++, t.append("line").attr("id", "actor" + tt).attr("x1", i).attr("y1", a).attr("x2", i).attr("y2", 2e3).attr("class", "actor-line").attr("stroke-width", "0.5px").attr("stroke", "#999"));
+ const o = t.append("g");
+ o.attr("class", "actor-man");
+ const l = At();
+ l.x = e.x, l.y = e.y, l.fill = "#eaeaea", l.width = e.width, l.height = e.height, l.class = "actor", l.rx = 3, l.ry = 3, o.append("line").attr("id", "actor-man-torso" + tt).attr("x1", i).attr("y1", e.y + 25).attr("x2", i).attr("y2", e.y + 45), o.append("line").attr("id", "actor-man-arms" + tt).attr("x1", i - 18).attr("y1", e.y + 33).attr("x2", i + 18).attr("y2", e.y + 33), o.append("line").attr("x1", i - 18).attr("y1", e.y + 60).attr("x2", i).attr("y2", e.y + 45), o.append("line").attr("x1", i).attr("y1", e.y + 45).attr("x2", i + 16).attr("y2", e.y + 60);
+ const u = o.append("circle");
+ u.attr("cx", e.x + e.width / 2), u.attr("cy", e.y + 10), u.attr("r", 15), u.attr("width", e.width), u.attr("height", e.height);
+ const h = o.node().getBBox();
+ return e.height = h.height, Ut(s)(
+ e.description,
+ o,
+ l.x,
+ l.y + 35,
+ l.width,
+ l.height,
+ { class: "actor" },
+ s
+ ), e.height;
+}, d0 = function(t, e, s, n) {
+ switch (e.type) {
+ case "actor":
+ return h0(t, e, s, n);
+ case "participant":
+ return l0(t, e, s, n);
+ }
+}, u0 = function(t, e, s) {
+ const i = t.append("g");
+ pe(i, e), e.name && Ut(s)(
+ e.name,
+ i,
+ e.x,
+ e.y + (e.textMaxHeight || 0) / 2,
+ e.width,
+ 0,
+ { class: "text" },
+ s
+ ), i.lower();
+}, p0 = function(t) {
+ return t.append("g");
+}, f0 = function(t, e, s, n, i) {
+ const a = At(), o = e.anchored;
+ a.x = e.startx, a.y = e.starty, a.class = "activation" + i % 3, a.width = e.stopx - e.startx, a.height = s - e.starty, vt(o, a);
+}, x0 = function(t, e, s, n) {
+ const {
+ boxMargin: i,
+ boxTextMargin: a,
+ labelBoxHeight: o,
+ labelBoxWidth: l,
+ messageFontFamily: u,
+ messageFontSize: h,
+ messageFontWeight: T
+ } = n, y = t.append("g"), p = function(L, v, M, I) {
+ return y.append("line").attr("x1", L).attr("y1", v).attr("x2", M).attr("y2", I).attr("class", "loopLine");
+ };
+ p(e.startx, e.starty, e.stopx, e.starty), p(e.stopx, e.starty, e.stopx, e.stopy), p(e.startx, e.stopy, e.stopx, e.stopy), p(e.startx, e.starty, e.startx, e.stopy), e.sections !== void 0 && e.sections.forEach(function(L) {
+ p(e.startx, L.y, e.stopx, L.y).style(
+ "stroke-dasharray",
+ "3, 3"
+ );
+ });
+ let x = Wt();
+ x.text = s, x.x = e.startx, x.y = e.starty, x.fontFamily = u, x.fontSize = h, x.fontWeight = T, x.anchor = "middle", x.valign = "middle", x.tspan = !1, x.width = l || 50, x.height = o || 20, x.textMargin = a, x.class = "labelText", de(y, x), x = Wt(), x.text = e.title, x.x = e.startx + l / 2 + (e.stopx - e.startx) / 2, x.y = e.starty + i + a, x.anchor = "middle", x.valign = "middle", x.textMargin = a, x.class = "loopText", x.fontFamily = u, x.fontSize = h, x.fontWeight = T, x.wrap = !0;
+ let b = gt(y, x);
+ return e.sectionTitles !== void 0 && e.sectionTitles.forEach(function(L, v) {
+ if (L.message) {
+ x.text = L.message, x.x = e.startx + (e.stopx - e.startx) / 2, x.y = e.sections[v].y + i + a, x.class = "loopText", x.anchor = "middle", x.valign = "middle", x.tspan = !1, x.fontFamily = u, x.fontSize = h, x.fontWeight = T, x.wrap = e.wrap, b = gt(y, x);
+ let M = Math.round(
+ b.map((I) => (I._groups || I)[0][0].getBBox().height).reduce((I, B) => I + B)
+ );
+ e.sections[v].height += M - (i + a);
+ }
+ }), e.height = Math.round(e.stopy - e.starty), y;
+}, pe = function(t, e) {
+ vt(t, {
+ x: e.startx,
+ y: e.starty,
+ width: e.stopx - e.startx,
+ height: e.stopy - e.starty,
+ fill: e.fill,
+ stroke: e.stroke,
+ class: "rect"
+ }).lower();
+}, g0 = function(t) {
+ t.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
+ );
+}, T0 = function(t) {
+ t.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
+ );
+}, y0 = function(t) {
+ t.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
+ );
+}, E0 = function(t) {
+ t.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z");
+}, m0 = function(t) {
+ t.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).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");
+}, b0 = 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);
+}, w0 = function(t) {
+ t.append("defs").append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 4).attr("refY", 5).append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1pt").attr("d", "M 1,2 L 6,7 M 6,2 L 1,7");
+}, Wt = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ anchor: void 0,
+ style: "#666",
+ width: void 0,
+ height: void 0,
+ textMargin: 0,
+ rx: 0,
+ ry: 0,
+ tspan: !0,
+ valign: void 0
+ };
+}, At = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: "#EDF2AE",
+ stroke: "#666",
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+}, Ut = function() {
+ function t(i, a, o, l, u, h, T) {
+ const y = a.append("text").attr("x", o + u / 2).attr("y", l + h / 2 + 5).style("text-anchor", "middle").text(i);
+ n(y, T);
+ }
+ function e(i, a, o, l, u, h, T, y) {
+ const { actorFontSize: p, actorFontFamily: x, actorFontWeight: b } = y, [L, v] = ee(p), M = i.split(Pt.lineBreakRegex);
+ for (let I = 0; I < M.length; I++) {
+ const B = I * L - L * (M.length - 1) / 2, V = a.append("text").attr("x", o + u / 2).attr("y", l).style("text-anchor", "middle").style("font-size", v).style("font-weight", b).style("font-family", x);
+ V.append("tspan").attr("x", o + u / 2).attr("dy", B).text(M[I]), V.attr("y", l + h / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"), n(V, T);
+ }
+ }
+ function s(i, a, o, l, u, h, T, y) {
+ const p = a.append("switch"), b = p.append("foreignObject").attr("x", o).attr("y", l).attr("width", u).attr("height", h).append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ b.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(i), e(i, p, o, l, u, h, T, y), n(b, T);
+ }
+ function n(i, a) {
+ for (const o in a)
+ a.hasOwnProperty(o) && i.attr(o, a[o]);
+ }
+ return function(i) {
+ return i.textPlacement === "fo" ? s : i.textPlacement === "old" ? t : e;
+ };
+}(), _0 = function() {
+ function t(i, a, o, l, u, h, T) {
+ const y = a.append("text").attr("x", o).attr("y", l).style("text-anchor", "start").text(i);
+ n(y, T);
+ }
+ function e(i, a, o, l, u, h, T, y) {
+ const { actorFontSize: p, actorFontFamily: x, actorFontWeight: b } = y, L = i.split(Pt.lineBreakRegex);
+ for (let v = 0; v < L.length; v++) {
+ const M = v * p - p * (L.length - 1) / 2, I = a.append("text").attr("x", o).attr("y", l).style("text-anchor", "start").style("font-size", p).style("font-weight", b).style("font-family", x);
+ I.append("tspan").attr("x", o).attr("dy", M).text(L[v]), I.attr("y", l + h / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"), n(I, T);
+ }
+ }
+ function s(i, a, o, l, u, h, T, y) {
+ const p = a.append("switch"), b = p.append("foreignObject").attr("x", o).attr("y", l).attr("width", u).attr("height", h).append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ b.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(i), e(i, p, o, l, u, h, T, y), n(b, T);
+ }
+ function n(i, a) {
+ for (const o in a)
+ a.hasOwnProperty(o) && i.attr(o, a[o]);
+ }
+ return function(i) {
+ return i.textPlacement === "fo" ? s : i.textPlacement === "old" ? t : e;
+ };
+}(), S = {
+ drawRect: vt,
+ drawText: gt,
+ drawLabel: de,
+ drawActor: d0,
+ drawBox: u0,
+ drawPopup: s0,
+ drawImage: le,
+ drawEmbeddedImage: he,
+ anchorElement: p0,
+ drawActivation: f0,
+ drawLoop: x0,
+ drawBackgroundRect: pe,
+ insertArrowHead: E0,
+ insertArrowFilledHead: m0,
+ insertSequenceNumber: b0,
+ insertArrowCrossHead: w0,
+ insertDatabaseIcon: g0,
+ insertComputerIcon: T0,
+ insertClockIcon: y0,
+ getTextObj: Wt,
+ getNoteRect: At,
+ popupMenu: a0,
+ popdownMenu: r0,
+ fixLifeLineHeights: ue,
+ sanitizeUrl: It
+};
+let r = {};
+const f = {
+ data: {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ },
+ verticalPos: 0,
+ sequenceItems: [],
+ activations: [],
+ models: {
+ getHeight: function() {
+ return Math.max.apply(
+ null,
+ this.actors.length === 0 ? [0] : this.actors.map((t) => t.height || 0)
+ ) + (this.loops.length === 0 ? 0 : this.loops.map((t) => t.height || 0).reduce((t, e) => t + e)) + (this.messages.length === 0 ? 0 : this.messages.map((t) => t.height || 0).reduce((t, e) => t + e)) + (this.notes.length === 0 ? 0 : this.notes.map((t) => t.height || 0).reduce((t, e) => t + e));
+ },
+ clear: function() {
+ this.actors = [], this.boxes = [], this.loops = [], this.messages = [], this.notes = [];
+ },
+ addBox: function(t) {
+ this.boxes.push(t);
+ },
+ addActor: function(t) {
+ this.actors.push(t);
+ },
+ addLoop: function(t) {
+ this.loops.push(t);
+ },
+ addMessage: function(t) {
+ this.messages.push(t);
+ },
+ addNote: function(t) {
+ this.notes.push(t);
+ },
+ lastActor: function() {
+ return this.actors[this.actors.length - 1];
+ },
+ lastLoop: function() {
+ return this.loops[this.loops.length - 1];
+ },
+ lastMessage: function() {
+ return this.messages[this.messages.length - 1];
+ },
+ lastNote: function() {
+ return this.notes[this.notes.length - 1];
+ },
+ actors: [],
+ boxes: [],
+ loops: [],
+ messages: [],
+ notes: []
+ },
+ init: function() {
+ this.sequenceItems = [], this.activations = [], this.models.clear(), this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ }, this.verticalPos = 0, xe(ct());
+ },
+ updateVal: function(t, e, s, n) {
+ t[e] === void 0 ? t[e] = s : t[e] = n(s, t[e]);
+ },
+ updateBounds: function(t, e, s, n) {
+ const i = this;
+ let a = 0;
+ function o(l) {
+ return function(h) {
+ a++;
+ const T = i.sequenceItems.length - a + 1;
+ i.updateVal(h, "starty", e - T * r.boxMargin, Math.min), i.updateVal(h, "stopy", n + T * r.boxMargin, Math.max), i.updateVal(f.data, "startx", t - T * r.boxMargin, Math.min), i.updateVal(f.data, "stopx", s + T * r.boxMargin, Math.max), l !== "activation" && (i.updateVal(h, "startx", t - T * r.boxMargin, Math.min), i.updateVal(h, "stopx", s + T * r.boxMargin, Math.max), i.updateVal(f.data, "starty", e - T * r.boxMargin, Math.min), i.updateVal(f.data, "stopy", n + T * r.boxMargin, Math.max));
+ };
+ }
+ this.sequenceItems.forEach(o()), this.activations.forEach(o("activation"));
+ },
+ insert: function(t, e, s, n) {
+ const i = Math.min(t, s), a = Math.max(t, s), o = Math.min(e, n), l = Math.max(e, n);
+ this.updateVal(f.data, "startx", i, Math.min), this.updateVal(f.data, "starty", o, Math.min), this.updateVal(f.data, "stopx", a, Math.max), this.updateVal(f.data, "stopy", l, Math.max), this.updateBounds(i, o, a, l);
+ },
+ newActivation: function(t, e, s) {
+ const n = s[t.from.actor], i = St(t.from.actor).length || 0, a = n.x + n.width / 2 + (i - 1) * r.activationWidth / 2;
+ this.activations.push({
+ startx: a,
+ starty: this.verticalPos + 2,
+ stopx: a + r.activationWidth,
+ stopy: void 0,
+ actor: t.from.actor,
+ anchored: S.anchorElement(e)
+ });
+ },
+ endActivation: function(t) {
+ const e = this.activations.map(function(s) {
+ return s.actor;
+ }).lastIndexOf(t.from.actor);
+ return this.activations.splice(e, 1)[0];
+ },
+ createLoop: function(t = { message: void 0, wrap: !1, width: void 0 }, e) {
+ return {
+ startx: void 0,
+ starty: this.verticalPos,
+ stopx: void 0,
+ stopy: void 0,
+ title: t.message,
+ wrap: t.wrap,
+ width: t.width,
+ height: 0,
+ fill: e
+ };
+ },
+ newLoop: function(t = { message: void 0, wrap: !1, width: void 0 }, e) {
+ this.sequenceItems.push(this.createLoop(t, e));
+ },
+ endLoop: function() {
+ return this.sequenceItems.pop();
+ },
+ addSectionToLoop: function(t) {
+ const e = this.sequenceItems.pop();
+ e.sections = e.sections || [], e.sectionTitles = e.sectionTitles || [], e.sections.push({ y: f.getVerticalPos(), height: 0 }), 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 { bounds: this.data, models: this.models };
+ }
+}, k0 = function(t, e) {
+ f.bumpVerticalPos(r.boxMargin), e.height = r.boxMargin, e.starty = f.getVerticalPos();
+ const s = S.getNoteRect();
+ s.x = e.startx, s.y = e.starty, s.width = e.width || r.width, s.class = "note";
+ const n = t.append("g"), i = S.drawRect(n, s), a = S.getTextObj();
+ a.x = e.startx, a.y = e.starty, a.width = s.width, a.dy = "1em", a.text = e.message, a.class = "noteText", a.fontFamily = r.noteFontFamily, a.fontSize = r.noteFontSize, a.fontWeight = r.noteFontWeight, a.anchor = r.noteAlign, a.textMargin = r.noteMargin, a.valign = "center";
+ const o = gt(n, a), l = Math.round(
+ o.map((u) => (u._groups || u)[0][0].getBBox().height).reduce((u, h) => u + h)
+ );
+ i.attr("height", l + 2 * r.noteMargin), e.height += l + 2 * r.noteMargin, f.bumpVerticalPos(l + 2 * r.noteMargin), e.stopy = e.starty + l + 2 * r.noteMargin, e.stopx = e.startx + s.width, f.insert(e.startx, e.starty, e.stopx, e.stopy), f.models.addNote(e);
+}, ut = (t) => ({
+ fontFamily: t.messageFontFamily,
+ fontSize: t.messageFontSize,
+ fontWeight: t.messageFontWeight
+}), ft = (t) => ({
+ fontFamily: t.noteFontFamily,
+ fontSize: t.noteFontSize,
+ fontWeight: t.noteFontWeight
+}), zt = (t) => ({
+ fontFamily: t.actorFontFamily,
+ fontSize: t.actorFontSize,
+ fontWeight: t.actorFontWeight
+});
+function L0(t, e) {
+ f.bumpVerticalPos(10);
+ const { startx: s, stopx: n, message: i } = e, a = Pt.splitBreaks(i).length, o = C.calculateTextDimensions(i, ut(r)), l = o.height / a;
+ e.height += l, f.bumpVerticalPos(l);
+ let u, h = o.height - 10;
+ const T = o.width;
+ if (s === n) {
+ u = f.getVerticalPos() + h, r.rightAngles || (h += r.boxMargin, u = f.getVerticalPos() + h), h += 30;
+ const y = Math.max(T / 2, r.width / 2);
+ f.insert(
+ s - y,
+ f.getVerticalPos() - 10 + h,
+ n + y,
+ f.getVerticalPos() + 30 + h
+ );
+ } else
+ h += r.boxMargin, u = f.getVerticalPos() + h, f.insert(s, u - 10, n, u);
+ return f.bumpVerticalPos(h), e.height += h, e.stopy = e.starty + e.height, f.insert(e.fromBounds, e.starty, e.toBounds, e.stopy), u;
+}
+const P0 = function(t, e, s, n) {
+ const { startx: i, stopx: a, starty: o, message: l, type: u, sequenceIndex: h, sequenceVisible: T } = e, y = C.calculateTextDimensions(l, ut(r)), p = S.getTextObj();
+ p.x = i, p.y = o + 10, p.width = a - i, p.class = "messageText", p.dy = "1em", p.text = l, p.fontFamily = r.messageFontFamily, p.fontSize = r.messageFontSize, p.fontWeight = r.messageFontWeight, p.anchor = r.messageAlign, p.valign = "center", p.textMargin = r.wrapPadding, p.tspan = !1, gt(t, p);
+ const x = y.width;
+ let b;
+ i === a ? r.rightAngles ? b = t.append("path").attr(
+ "d",
+ `M ${i},${s} H ${i + Math.max(r.width / 2, x / 2)} V ${s + 25} H ${i}`
+ ) : b = t.append("path").attr(
+ "d",
+ "M " + i + "," + s + " C " + (i + 60) + "," + (s - 10) + " " + (i + 60) + "," + (s + 30) + " " + i + "," + (s + 20)
+ ) : (b = t.append("line"), b.attr("x1", i), b.attr("y1", s), b.attr("x2", a), b.attr("y2", s)), u === n.db.LINETYPE.DOTTED || u === n.db.LINETYPE.DOTTED_CROSS || u === n.db.LINETYPE.DOTTED_POINT || u === n.db.LINETYPE.DOTTED_OPEN ? (b.style("stroke-dasharray", "3, 3"), b.attr("class", "messageLine1")) : b.attr("class", "messageLine0");
+ let L = "";
+ r.arrowMarkerAbsolute && (L = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, L = L.replace(/\(/g, "\\("), L = L.replace(/\)/g, "\\)")), b.attr("stroke-width", 2), b.attr("stroke", "none"), b.style("fill", "none"), (u === n.db.LINETYPE.SOLID || u === n.db.LINETYPE.DOTTED) && b.attr("marker-end", "url(" + L + "#arrowhead)"), (u === n.db.LINETYPE.SOLID_POINT || u === n.db.LINETYPE.DOTTED_POINT) && b.attr("marker-end", "url(" + L + "#filled-head)"), (u === n.db.LINETYPE.SOLID_CROSS || u === n.db.LINETYPE.DOTTED_CROSS) && b.attr("marker-end", "url(" + L + "#crosshead)"), (T || r.showSequenceNumbers) && (b.attr("marker-start", "url(" + L + "#sequencenumber)"), t.append("text").attr("x", i).attr("y", s + 4).attr("font-family", "sans-serif").attr("font-size", "12px").attr("text-anchor", "middle").attr("class", "sequenceNumber").text(h));
+}, qt = function(t, e, s, n, i, a, o) {
+ if (i.hideUnusedParticipants === !0) {
+ const y = /* @__PURE__ */ new Set();
+ a.forEach((p) => {
+ y.add(p.from), y.add(p.to);
+ }), s = s.filter((p) => y.has(p));
+ }
+ let l = 0, u = 0, h = 0, T;
+ for (const y of s) {
+ const p = e[y], x = p.box;
+ T && T != x && (o || f.models.addBox(T), u += r.boxMargin + T.margin), x && x != T && (o || (x.x = l + u, x.y = n), u += x.margin), p.width = p.width || r.width, p.height = Math.max(p.height || r.height, r.height), p.margin = p.margin || r.actorMargin, p.x = l + u, p.y = f.getVerticalPos();
+ const b = S.drawActor(t, p, r, o);
+ h = Math.max(h, b), f.insert(p.x, n, p.x + p.width, p.height), l += p.width + u, p.box && (p.box.width = l + x.margin - p.box.x), u = p.margin, T = p.box, f.models.addActor(p);
+ }
+ T && !o && f.models.addBox(T), f.bumpVerticalPos(h);
+}, fe = function(t, e, s, n) {
+ let i = 0, a = 0;
+ for (const o of s) {
+ const l = e[o], u = v0(l), h = S.drawPopup(
+ t,
+ l,
+ u,
+ r,
+ r.forceMenus,
+ n
+ );
+ h.height > i && (i = h.height), h.width + l.x > a && (a = h.width + l.x);
+ }
+ return { maxHeight: i, maxWidth: a };
+}, xe = function(t) {
+ ve(r, t), t.fontFamily && (r.actorFontFamily = r.noteFontFamily = r.messageFontFamily = t.fontFamily), t.fontSize && (r.actorFontSize = r.noteFontSize = r.messageFontSize = t.fontSize), t.fontWeight && (r.actorFontWeight = r.noteFontWeight = r.messageFontWeight = t.fontWeight);
+}, St = function(t) {
+ return f.activations.filter(function(e) {
+ return e.actor === t;
+ });
+}, $t = function(t, e) {
+ const s = e[t], n = St(t), i = n.reduce(function(o, l) {
+ return Math.min(o, l.startx);
+ }, s.x + s.width / 2), a = n.reduce(function(o, l) {
+ return Math.max(o, l.stopx);
+ }, s.x + s.width / 2);
+ return [i, a];
+};
+function $(t, e, s, n, i) {
+ f.bumpVerticalPos(s);
+ let a = n;
+ if (e.id && e.message && t[e.id]) {
+ const o = t[e.id].width, l = ut(r);
+ e.message = C.wrapLabel(`[${e.message}]`, o - 2 * r.wrapPadding, l), e.width = o, e.wrap = !0;
+ const u = C.calculateTextDimensions(e.message, l), h = Math.max(u.height, r.labelBoxHeight);
+ a = n + h, K.debug(`${h} - ${e.message}`);
+ }
+ i(e), f.bumpVerticalPos(a);
+}
+const I0 = function(t, e, s, n) {
+ const { securityLevel: i, sequence: a } = ct();
+ r = a, n.db.clear(), n.parser.parse(t);
+ let o;
+ i === "sandbox" && (o = kt("#i" + e));
+ const l = i === "sandbox" ? kt(o.nodes()[0].contentDocument.body) : kt("body"), u = i === "sandbox" ? o.nodes()[0].contentDocument : document;
+ f.init(), K.debug(n.db);
+ const h = i === "sandbox" ? l.select(`[id="${e}"]`) : kt(`[id="${e}"]`), T = n.db.getActors(), y = n.db.getBoxes(), p = n.db.getActorKeys(), x = n.db.getMessages(), b = n.db.getDiagramTitle(), L = n.db.hasAtLeastOneBox(), v = n.db.hasAtLeastOneBoxWithTitle(), M = N0(T, x, n);
+ r.height = A0(T, M, y), S.insertComputerIcon(h), S.insertDatabaseIcon(h), S.insertClockIcon(h), L && (f.bumpVerticalPos(r.boxMargin), v && f.bumpVerticalPos(y[0].textMaxHeight)), qt(h, T, p, 0, r, x, !1);
+ const I = R0(x, T, M, n);
+ S.insertArrowHead(h), S.insertArrowCrossHead(h), S.insertArrowFilledHead(h), S.insertSequenceNumber(h);
+ function B(E, P) {
+ const _ = f.endActivation(E);
+ _.starty + 18 > P && (_.starty = P - 6, P += 12), S.drawActivation(
+ h,
+ _,
+ P,
+ r,
+ St(E.from.actor).length
+ ), f.insert(_.startx, P - 10, _.stopx, P);
+ }
+ let V = 1, z = 1;
+ const G = [];
+ x.forEach(function(E) {
+ let P, _, U;
+ switch (E.type) {
+ case n.db.LINETYPE.NOTE:
+ _ = E.noteModel, k0(h, _);
+ break;
+ case n.db.LINETYPE.ACTIVE_START:
+ f.newActivation(E, h, T);
+ break;
+ case n.db.LINETYPE.ACTIVE_END:
+ B(E, f.getVerticalPos());
+ break;
+ case n.db.LINETYPE.LOOP_START:
+ $(
+ I,
+ E,
+ r.boxMargin,
+ r.boxMargin + r.boxTextMargin,
+ (N) => f.newLoop(N)
+ );
+ break;
+ case n.db.LINETYPE.LOOP_END:
+ P = f.endLoop(), S.drawLoop(h, P, "loop", r), f.bumpVerticalPos(P.stopy - f.getVerticalPos()), f.models.addLoop(P);
+ break;
+ case n.db.LINETYPE.RECT_START:
+ $(
+ I,
+ E,
+ r.boxMargin,
+ r.boxMargin,
+ (N) => f.newLoop(void 0, N.message)
+ );
+ break;
+ case n.db.LINETYPE.RECT_END:
+ P = f.endLoop(), S.drawBackgroundRect(h, P), f.models.addLoop(P), f.bumpVerticalPos(P.stopy - f.getVerticalPos());
+ break;
+ case n.db.LINETYPE.OPT_START:
+ $(
+ I,
+ E,
+ r.boxMargin,
+ r.boxMargin + r.boxTextMargin,
+ (N) => f.newLoop(N)
+ );
+ break;
+ case n.db.LINETYPE.OPT_END:
+ P = f.endLoop(), S.drawLoop(h, P, "opt", r), f.bumpVerticalPos(P.stopy - f.getVerticalPos()), f.models.addLoop(P);
+ break;
+ case n.db.LINETYPE.ALT_START:
+ $(
+ I,
+ E,
+ r.boxMargin,
+ r.boxMargin + r.boxTextMargin,
+ (N) => f.newLoop(N)
+ );
+ break;
+ case n.db.LINETYPE.ALT_ELSE:
+ $(
+ I,
+ E,
+ r.boxMargin + r.boxTextMargin,
+ r.boxMargin,
+ (N) => f.addSectionToLoop(N)
+ );
+ break;
+ case n.db.LINETYPE.ALT_END:
+ P = f.endLoop(), S.drawLoop(h, P, "alt", r), f.bumpVerticalPos(P.stopy - f.getVerticalPos()), f.models.addLoop(P);
+ break;
+ case n.db.LINETYPE.PAR_START:
+ $(
+ I,
+ E,
+ r.boxMargin,
+ r.boxMargin + r.boxTextMargin,
+ (N) => f.newLoop(N)
+ );
+ break;
+ case n.db.LINETYPE.PAR_AND:
+ $(
+ I,
+ E,
+ r.boxMargin + r.boxTextMargin,
+ r.boxMargin,
+ (N) => f.addSectionToLoop(N)
+ );
+ break;
+ case n.db.LINETYPE.PAR_END:
+ P = f.endLoop(), S.drawLoop(h, P, "par", r), f.bumpVerticalPos(P.stopy - f.getVerticalPos()), f.models.addLoop(P);
+ break;
+ case n.db.LINETYPE.AUTONUMBER:
+ V = E.message.start || V, z = E.message.step || z, E.message.visible ? n.db.enableSequenceNumbers() : n.db.disableSequenceNumbers();
+ break;
+ case n.db.LINETYPE.CRITICAL_START:
+ $(
+ I,
+ E,
+ r.boxMargin,
+ r.boxMargin + r.boxTextMargin,
+ (N) => f.newLoop(N)
+ );
+ break;
+ case n.db.LINETYPE.CRITICAL_OPTION:
+ $(
+ I,
+ E,
+ r.boxMargin + r.boxTextMargin,
+ r.boxMargin,
+ (N) => f.addSectionToLoop(N)
+ );
+ break;
+ case n.db.LINETYPE.CRITICAL_END:
+ P = f.endLoop(), S.drawLoop(h, P, "critical", r), f.bumpVerticalPos(P.stopy - f.getVerticalPos()), f.models.addLoop(P);
+ break;
+ case n.db.LINETYPE.BREAK_START:
+ $(
+ I,
+ E,
+ r.boxMargin,
+ r.boxMargin + r.boxTextMargin,
+ (N) => f.newLoop(N)
+ );
+ break;
+ case n.db.LINETYPE.BREAK_END:
+ P = f.endLoop(), S.drawLoop(h, P, "break", r), f.bumpVerticalPos(P.stopy - f.getVerticalPos()), f.models.addLoop(P);
+ break;
+ default:
+ try {
+ U = E.msgModel, U.starty = f.getVerticalPos(), U.sequenceIndex = V, U.sequenceVisible = n.db.showSequenceNumbers();
+ const N = L0(h, U);
+ G.push({ messageModel: U, lineStartY: N }), f.models.addMessage(U);
+ } catch (N) {
+ K.error("error while drawing message", N);
+ }
+ }
+ [
+ n.db.LINETYPE.SOLID_OPEN,
+ n.db.LINETYPE.DOTTED_OPEN,
+ n.db.LINETYPE.SOLID,
+ n.db.LINETYPE.DOTTED,
+ n.db.LINETYPE.SOLID_CROSS,
+ n.db.LINETYPE.DOTTED_CROSS,
+ n.db.LINETYPE.SOLID_POINT,
+ n.db.LINETYPE.DOTTED_POINT
+ ].includes(E.type) && (V = V + z);
+ }), G.forEach((E) => P0(h, E.messageModel, E.lineStartY, n)), r.mirrorActors && (f.bumpVerticalPos(r.boxMargin * 2), qt(h, T, p, f.getVerticalPos(), r, x, !0), f.bumpVerticalPos(r.boxMargin), ue(h, f.getVerticalPos())), f.models.boxes.forEach(function(E) {
+ E.height = f.getVerticalPos() - E.y, f.insert(E.x, E.y, E.x + E.width, E.height), E.startx = E.x, E.starty = E.y, E.stopx = E.startx + E.width, E.stopy = E.starty + E.height, E.stroke = "rgb(0,0,0, 0.5)", S.drawBox(h, E, r);
+ }), L && f.bumpVerticalPos(r.boxMargin);
+ const Y = fe(h, T, p, u), { bounds: D } = f.getBounds();
+ K.debug("For line height fix Querying: #" + e + " .actor-line"), Se("#" + e + " .actor-line").attr("y2", D.stopy);
+ let q = D.stopy - D.starty;
+ q < Y.maxHeight && (q = Y.maxHeight);
+ let F = q + 2 * r.diagramMarginY;
+ r.mirrorActors && (F = F - r.boxMargin + r.bottomMarginAdj);
+ let H = D.stopx - D.startx;
+ H < Y.maxWidth && (H = Y.maxWidth);
+ const J = H + 2 * r.diagramMarginX;
+ b && h.append("text").text(b).attr("x", (D.stopx - D.startx) / 2 - 2 * r.diagramMarginX).attr("y", -25), Ae(h, F, J, r.useMaxWidth);
+ const Q = b ? 40 : 0;
+ h.attr(
+ "viewBox",
+ D.startx - r.diagramMarginX + " -" + (r.diagramMarginY + Q) + " " + J + " " + (F + Q)
+ ), K.debug("models:", f.models);
+};
+function N0(t, e, s) {
+ const n = {};
+ return e.forEach(function(i) {
+ if (t[i.to] && t[i.from]) {
+ const a = t[i.to];
+ if (i.placement === s.db.PLACEMENT.LEFTOF && !a.prevActor || i.placement === s.db.PLACEMENT.RIGHTOF && !a.nextActor)
+ return;
+ const o = i.placement !== void 0, l = !o, u = o ? ft(r) : ut(r), h = i.wrap ? C.wrapLabel(i.message, r.width - 2 * r.wrapPadding, u) : i.message, y = C.calculateTextDimensions(h, u).width + 2 * r.wrapPadding;
+ l && i.from === a.nextActor ? n[i.to] = Math.max(
+ n[i.to] || 0,
+ y
+ ) : l && i.from === a.prevActor ? n[i.from] = Math.max(
+ n[i.from] || 0,
+ y
+ ) : l && i.from === i.to ? (n[i.from] = Math.max(
+ n[i.from] || 0,
+ y / 2
+ ), n[i.to] = Math.max(
+ n[i.to] || 0,
+ y / 2
+ )) : i.placement === s.db.PLACEMENT.RIGHTOF ? n[i.from] = Math.max(
+ n[i.from] || 0,
+ y
+ ) : i.placement === s.db.PLACEMENT.LEFTOF ? n[a.prevActor] = Math.max(
+ n[a.prevActor] || 0,
+ y
+ ) : i.placement === s.db.PLACEMENT.OVER && (a.prevActor && (n[a.prevActor] = Math.max(
+ n[a.prevActor] || 0,
+ y / 2
+ )), a.nextActor && (n[i.from] = Math.max(
+ n[i.from] || 0,
+ y / 2
+ )));
+ }
+ }), K.debug("maxMessageWidthPerActor:", n), n;
+}
+const v0 = function(t) {
+ let e = 0;
+ const s = zt(r);
+ for (const n in t.links) {
+ const a = C.calculateTextDimensions(n, s).width + 2 * r.wrapPadding + 2 * r.boxMargin;
+ e < a && (e = a);
+ }
+ return e;
+};
+function A0(t, e, s) {
+ let n = 0;
+ Object.keys(t).forEach((a) => {
+ const o = t[a];
+ o.wrap && (o.description = C.wrapLabel(
+ o.description,
+ r.width - 2 * r.wrapPadding,
+ zt(r)
+ ));
+ const l = C.calculateTextDimensions(o.description, zt(r));
+ o.width = o.wrap ? r.width : Math.max(r.width, l.width + 2 * r.wrapPadding), o.height = o.wrap ? Math.max(l.height, r.height) : r.height, n = Math.max(n, o.height);
+ });
+ for (const a in e) {
+ const o = t[a];
+ if (!o)
+ continue;
+ const l = t[o.nextActor];
+ if (!l) {
+ const y = e[a] + r.actorMargin - o.width / 2;
+ o.margin = Math.max(y, r.actorMargin);
+ continue;
+ }
+ const h = e[a] + r.actorMargin - o.width / 2 - l.width / 2;
+ o.margin = Math.max(h, r.actorMargin);
+ }
+ let i = 0;
+ return s.forEach((a) => {
+ const o = ut(r);
+ let l = a.actorKeys.reduce((T, y) => T += t[y].width + (t[y].margin || 0), 0);
+ l -= 2 * r.boxTextMargin, a.wrap && (a.name = C.wrapLabel(a.name, l - 2 * r.wrapPadding, o));
+ const u = C.calculateTextDimensions(a.name, o);
+ i = Math.max(u.height, i);
+ const h = Math.max(l, u.width + 2 * r.wrapPadding);
+ if (a.margin = r.boxTextMargin, l < h) {
+ const T = (h - l) / 2;
+ a.margin += T;
+ }
+ }), s.forEach((a) => a.textMaxHeight = i), Math.max(n, r.height);
+}
+const S0 = function(t, e, s) {
+ const n = e[t.from].x, i = e[t.to].x, a = t.wrap && t.message;
+ let o = C.calculateTextDimensions(
+ a ? C.wrapLabel(t.message, r.width, ft(r)) : t.message,
+ ft(r)
+ );
+ const l = {
+ width: a ? r.width : Math.max(r.width, o.width + 2 * r.noteMargin),
+ height: 0,
+ startx: e[t.from].x,
+ stopx: 0,
+ starty: 0,
+ stopy: 0,
+ message: t.message
+ };
+ return t.placement === s.db.PLACEMENT.RIGHTOF ? (l.width = a ? Math.max(r.width, o.width) : Math.max(
+ e[t.from].width / 2 + e[t.to].width / 2,
+ o.width + 2 * r.noteMargin
+ ), l.startx = n + (e[t.from].width + r.actorMargin) / 2) : t.placement === s.db.PLACEMENT.LEFTOF ? (l.width = Math.max(a ? r.width : e[t.from].width / 2 + e[t.to].width / 2, o.width + 2 * r.noteMargin), l.startx = n - l.width + (e[t.from].width - r.actorMargin) / 2) : t.to === t.from ? (o = C.calculateTextDimensions(
+ a ? C.wrapLabel(t.message, Math.max(r.width, e[t.from].width), ft(r)) : t.message,
+ ft(r)
+ ), l.width = a ? Math.max(r.width, e[t.from].width) : Math.max(e[t.from].width, r.width, o.width + 2 * r.noteMargin), l.startx = n + (e[t.from].width - l.width) / 2) : (l.width = Math.abs(n + e[t.from].width / 2 - (i + e[t.to].width / 2)) + r.actorMargin, l.startx = n < i ? n + e[t.from].width / 2 - r.actorMargin / 2 : i + e[t.to].width / 2 - r.actorMargin / 2), a && (l.message = C.wrapLabel(
+ t.message,
+ l.width - 2 * r.wrapPadding,
+ ft(r)
+ )), K.debug(
+ `NM:[${l.startx},${l.stopx},${l.starty},${l.stopy}:${l.width},${l.height}=${t.message}]`
+ ), l;
+}, M0 = function(t, e, s) {
+ let n = !1;
+ if ([
+ s.db.LINETYPE.SOLID_OPEN,
+ s.db.LINETYPE.DOTTED_OPEN,
+ s.db.LINETYPE.SOLID,
+ s.db.LINETYPE.DOTTED,
+ s.db.LINETYPE.SOLID_CROSS,
+ s.db.LINETYPE.DOTTED_CROSS,
+ s.db.LINETYPE.SOLID_POINT,
+ s.db.LINETYPE.DOTTED_POINT
+ ].includes(t.type) && (n = !0), !n)
+ return {};
+ const i = $t(t.from, e), a = $t(t.to, e), o = i[0] <= a[0] ? 1 : 0, l = i[0] < a[0] ? 0 : 1, u = [...i, ...a], h = Math.abs(a[l] - i[o]);
+ t.wrap && t.message && (t.message = C.wrapLabel(
+ t.message,
+ Math.max(h + 2 * r.wrapPadding, r.width),
+ ut(r)
+ ));
+ const T = C.calculateTextDimensions(t.message, ut(r));
+ return {
+ width: Math.max(
+ t.wrap ? 0 : T.width + 2 * r.wrapPadding,
+ h + 2 * r.wrapPadding,
+ r.width
+ ),
+ height: 0,
+ startx: i[o],
+ stopx: a[l],
+ starty: 0,
+ stopy: 0,
+ message: t.message,
+ type: t.type,
+ wrap: t.wrap,
+ fromBounds: Math.min.apply(null, u),
+ toBounds: Math.max.apply(null, u)
+ };
+}, R0 = function(t, e, s, n) {
+ const i = {}, a = [];
+ let o, l, u;
+ return t.forEach(function(h) {
+ switch (h.id = C.random({ length: 10 }), h.type) {
+ case n.db.LINETYPE.LOOP_START:
+ case n.db.LINETYPE.ALT_START:
+ case n.db.LINETYPE.OPT_START:
+ case n.db.LINETYPE.PAR_START:
+ case n.db.LINETYPE.CRITICAL_START:
+ case n.db.LINETYPE.BREAK_START:
+ a.push({
+ id: h.id,
+ msg: h.message,
+ from: Number.MAX_SAFE_INTEGER,
+ to: Number.MIN_SAFE_INTEGER,
+ width: 0
+ });
+ break;
+ case n.db.LINETYPE.ALT_ELSE:
+ case n.db.LINETYPE.PAR_AND:
+ case n.db.LINETYPE.CRITICAL_OPTION:
+ h.message && (o = a.pop(), i[o.id] = o, i[h.id] = o, a.push(o));
+ break;
+ case n.db.LINETYPE.LOOP_END:
+ case n.db.LINETYPE.ALT_END:
+ case n.db.LINETYPE.OPT_END:
+ case n.db.LINETYPE.PAR_END:
+ case n.db.LINETYPE.CRITICAL_END:
+ case n.db.LINETYPE.BREAK_END:
+ o = a.pop(), i[o.id] = o;
+ break;
+ case n.db.LINETYPE.ACTIVE_START:
+ {
+ const y = e[h.from ? h.from.actor : h.to.actor], p = St(h.from ? h.from.actor : h.to.actor).length, x = y.x + y.width / 2 + (p - 1) * r.activationWidth / 2, b = {
+ startx: x,
+ stopx: x + r.activationWidth,
+ actor: h.from.actor,
+ enabled: !0
+ };
+ f.activations.push(b);
+ }
+ break;
+ case n.db.LINETYPE.ACTIVE_END:
+ {
+ const y = f.activations.map((p) => p.actor).lastIndexOf(h.from.actor);
+ delete f.activations.splice(y, 1)[0];
+ }
+ break;
+ }
+ h.placement !== void 0 ? (l = S0(h, e, n), h.noteModel = l, a.forEach((y) => {
+ o = y, o.from = Math.min(o.from, l.startx), o.to = Math.max(o.to, l.startx + l.width), o.width = Math.max(o.width, Math.abs(o.from - o.to)) - r.labelBoxWidth;
+ })) : (u = M0(h, e, n), h.msgModel = u, u.startx && u.stopx && a.length > 0 && a.forEach((y) => {
+ if (o = y, u.startx === u.stopx) {
+ const p = e[h.from], x = e[h.to];
+ o.from = Math.min(
+ p.x - u.width / 2,
+ p.x - p.width / 2,
+ o.from
+ ), o.to = Math.max(x.x + u.width / 2, x.x + p.width / 2, o.to), o.width = Math.max(o.width, Math.abs(o.to - o.from)) - r.labelBoxWidth;
+ } else
+ o.from = Math.min(u.startx, o.from), o.to = Math.max(u.stopx, o.to), o.width = Math.max(o.width, u.width) - r.labelBoxWidth;
+ }));
+ }), f.activations = [], K.debug("Loop type widths:", i), i;
+}, D0 = {
+ bounds: f,
+ drawActors: qt,
+ drawActorsPopup: fe,
+ setConf: xe,
+ draw: I0
+}, Y0 = {
+ parser: Me,
+ db: e0,
+ renderer: D0,
+ styles: i0
+};
+export {
+ Y0 as diagram
+};
+//# sourceMappingURL=sequenceDiagram-3b765acc.js.map
diff --git a/scopegraphs-render-docs/doc/js/sequenceDiagram-446df3e4.js b/scopegraphs-render-docs/doc/js/sequenceDiagram-446df3e4.js
new file mode 100644
index 0000000..5658670
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/sequenceDiagram-446df3e4.js
@@ -0,0 +1,3149 @@
+import { m as mermaidAPI, a as addFunction } from "./mermaidAPI-3ae0f2f0.js";
+import { p as getAccTitle, x as getDiagramTitle, w as setDiagramTitle, g as getConfig, o as setAccTitle, v as setAccDescription, q as getAccDescription, y as clear$1, l as log, b as sanitizeText, e as common, d as assignWithDepth } from "./commonDb-573409be.js";
+import { select, selectAll } from "d3";
+import { x as parseFontSize, k as configureSvgSize, u as utils } from "./utils-d622194a.js";
+import { sanitizeUrl } from "@braintree/sanitize-url";
+import "stylis";
+import "dompurify";
+import "lodash-es/isEmpty.js";
+import "dayjs";
+import "khroma";
+import "lodash-es/memoize.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 7], $V4 = [2, 5], $V5 = [1, 15], $V6 = [1, 17], $V7 = [1, 19], $V8 = [1, 21], $V9 = [1, 22], $Va = [1, 23], $Vb = [1, 29], $Vc = [1, 30], $Vd = [1, 31], $Ve = [1, 32], $Vf = [1, 33], $Vg = [1, 34], $Vh = [1, 35], $Vi = [1, 36], $Vj = [1, 37], $Vk = [1, 38], $Vl = [1, 39], $Vm = [1, 40], $Vn = [1, 42], $Vo = [1, 43], $Vp = [1, 45], $Vq = [1, 46], $Vr = [1, 47], $Vs = [1, 48], $Vt = [1, 49], $Vu = [1, 50], $Vv = [1, 53], $Vw = [1, 4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83], $Vx = [4, 5, 21, 54, 56], $Vy = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 54, 56, 57, 62, 63, 64, 65, 73, 83], $Vz = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83], $VA = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 52, 54, 56, 57, 62, 63, 64, 65, 73, 83], $VB = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 54, 56, 57, 62, 63, 64, 65, 73, 83], $VC = [71, 72, 73], $VD = [1, 125], $VE = [1, 4, 5, 7, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "SPACE": 4, "NEWLINE": 5, "directive": 6, "SD": 7, "document": 8, "line": 9, "statement": 10, "box_section": 11, "box_line": 12, "participant_statement": 13, "openDirective": 14, "typeDirective": 15, "closeDirective": 16, ":": 17, "argDirective": 18, "box": 19, "restOfLine": 20, "end": 21, "signal": 22, "autonumber": 23, "NUM": 24, "off": 25, "activate": 26, "actor": 27, "deactivate": 28, "note_statement": 29, "links_statement": 30, "link_statement": 31, "properties_statement": 32, "details_statement": 33, "title": 34, "legacy_title": 35, "acc_title": 36, "acc_title_value": 37, "acc_descr": 38, "acc_descr_value": 39, "acc_descr_multiline_value": 40, "loop": 41, "rect": 42, "opt": 43, "alt": 44, "else_sections": 45, "par": 46, "par_sections": 47, "critical": 48, "option_sections": 49, "break": 50, "option": 51, "and": 52, "else": 53, "participant": 54, "AS": 55, "participant_actor": 56, "note": 57, "placement": 58, "text2": 59, "over": 60, "actor_pair": 61, "links": 62, "link": 63, "properties": 64, "details": 65, "spaceList": 66, ",": 67, "left_of": 68, "right_of": 69, "signaltype": 70, "+": 71, "-": 72, "ACTOR": 73, "SOLID_OPEN_ARROW": 74, "DOTTED_OPEN_ARROW": 75, "SOLID_ARROW": 76, "DOTTED_ARROW": 77, "SOLID_CROSS": 78, "DOTTED_CROSS": 79, "SOLID_POINT": 80, "DOTTED_POINT": 81, "TXT": 82, "open_directive": 83, "type_directive": 84, "arg_directive": 85, "close_directive": 86, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "SPACE", 5: "NEWLINE", 7: "SD", 17: ":", 19: "box", 20: "restOfLine", 21: "end", 23: "autonumber", 24: "NUM", 25: "off", 26: "activate", 28: "deactivate", 34: "title", 35: "legacy_title", 36: "acc_title", 37: "acc_title_value", 38: "acc_descr", 39: "acc_descr_value", 40: "acc_descr_multiline_value", 41: "loop", 42: "rect", 43: "opt", 44: "alt", 46: "par", 48: "critical", 50: "break", 51: "option", 52: "and", 53: "else", 54: "participant", 55: "AS", 56: "participant_actor", 57: "note", 60: "over", 62: "links", 63: "link", 64: "properties", 65: "details", 67: ",", 68: "left_of", 69: "right_of", 71: "+", 72: "-", 73: "ACTOR", 74: "SOLID_OPEN_ARROW", 75: "DOTTED_OPEN_ARROW", 76: "SOLID_ARROW", 77: "DOTTED_ARROW", 78: "SOLID_CROSS", 79: "DOTTED_CROSS", 80: "SOLID_POINT", 81: "DOTTED_POINT", 82: "TXT", 83: "open_directive", 84: "type_directive", 85: "arg_directive", 86: "close_directive" },
+ productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [11, 0], [11, 2], [12, 2], [12, 1], [12, 1], [6, 4], [6, 6], [10, 1], [10, 4], [10, 2], [10, 4], [10, 3], [10, 3], [10, 2], [10, 3], [10, 3], [10, 2], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 1], [49, 1], [49, 4], [47, 1], [47, 4], [45, 1], [45, 4], [13, 5], [13, 3], [13, 5], [13, 3], [29, 4], [29, 4], [30, 3], [31, 3], [32, 3], [33, 3], [66, 2], [66, 1], [61, 3], [61, 1], [58, 1], [58, 1], [22, 5], [22, 5], [22, 4], [27, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [59, 1], [14, 1], [15, 1], [18, 1], [16, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 4:
+ yy.apply($$[$0]);
+ return $$[$0];
+ case 5:
+ case 10:
+ this.$ = [];
+ break;
+ case 6:
+ case 11:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 7:
+ case 8:
+ case 12:
+ case 13:
+ this.$ = $$[$0];
+ break;
+ case 9:
+ case 14:
+ this.$ = [];
+ break;
+ case 18:
+ $$[$0 - 1].unshift({ type: "boxStart", boxData: yy.parseBoxData($$[$0 - 2]) });
+ $$[$0 - 1].push({ type: "boxEnd", boxText: $$[$0 - 2] });
+ this.$ = $$[$0 - 1];
+ break;
+ case 20:
+ this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 21:
+ this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 22:
+ this.$ = { type: "sequenceIndex", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 23:
+ this.$ = { type: "sequenceIndex", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 24:
+ this.$ = { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] };
+ break;
+ case 25:
+ this.$ = { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] };
+ break;
+ case 31:
+ yy.setDiagramTitle($$[$0].substring(6));
+ this.$ = $$[$0].substring(6);
+ break;
+ case 32:
+ yy.setDiagramTitle($$[$0].substring(7));
+ this.$ = $$[$0].substring(7);
+ break;
+ case 33:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 34:
+ case 35:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 36:
+ $$[$0 - 1].unshift({ type: "loopStart", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START });
+ $$[$0 - 1].push({ type: "loopEnd", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 37:
+ $$[$0 - 1].unshift({ type: "rectStart", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START });
+ $$[$0 - 1].push({ type: "rectEnd", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 38:
+ $$[$0 - 1].unshift({ type: "optStart", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START });
+ $$[$0 - 1].push({ type: "optEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 39:
+ $$[$0 - 1].unshift({ type: "altStart", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START });
+ $$[$0 - 1].push({ type: "altEnd", signalType: yy.LINETYPE.ALT_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 40:
+ $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START });
+ $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 41:
+ $$[$0 - 1].unshift({ type: "criticalStart", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START });
+ $$[$0 - 1].push({ type: "criticalEnd", signalType: yy.LINETYPE.CRITICAL_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 42:
+ $$[$0 - 1].unshift({ type: "breakStart", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START });
+ $$[$0 - 1].push({ type: "breakEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 45:
+ this.$ = $$[$0 - 3].concat([{ type: "option", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]);
+ break;
+ case 47:
+ this.$ = $$[$0 - 3].concat([{ type: "and", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]);
+ break;
+ case 49:
+ this.$ = $$[$0 - 3].concat([{ type: "else", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]);
+ break;
+ case 50:
+ $$[$0 - 3].type = "addParticipant";
+ $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);
+ this.$ = $$[$0 - 3];
+ break;
+ case 51:
+ $$[$0 - 1].type = "addParticipant";
+ this.$ = $$[$0 - 1];
+ break;
+ case 52:
+ $$[$0 - 3].type = "addActor";
+ $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);
+ this.$ = $$[$0 - 3];
+ break;
+ case 53:
+ $$[$0 - 1].type = "addActor";
+ this.$ = $$[$0 - 1];
+ break;
+ case 54:
+ this.$ = [$$[$0 - 1], { type: "addNote", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 55:
+ $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2);
+ $$[$0 - 2][0] = $$[$0 - 2][0].actor;
+ $$[$0 - 2][1] = $$[$0 - 2][1].actor;
+ this.$ = [$$[$0 - 1], { type: "addNote", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }];
+ break;
+ case 56:
+ this.$ = [$$[$0 - 1], { type: "addLinks", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 57:
+ this.$ = [$$[$0 - 1], { type: "addALink", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 58:
+ this.$ = [$$[$0 - 1], { type: "addProperties", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 59:
+ this.$ = [$$[$0 - 1], { type: "addDetails", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 62:
+ this.$ = [$$[$0 - 2], $$[$0]];
+ break;
+ case 63:
+ this.$ = $$[$0];
+ break;
+ case 64:
+ this.$ = yy.PLACEMENT.LEFTOF;
+ break;
+ case 65:
+ this.$ = yy.PLACEMENT.RIGHTOF;
+ break;
+ case 66:
+ this.$ = [
+ $$[$0 - 4],
+ $$[$0 - 1],
+ { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },
+ { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }
+ ];
+ break;
+ case 67:
+ this.$ = [
+ $$[$0 - 4],
+ $$[$0 - 1],
+ { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },
+ { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] }
+ ];
+ break;
+ case 68:
+ this.$ = [$$[$0 - 3], $$[$0 - 1], { type: "addMessage", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }];
+ break;
+ case 69:
+ this.$ = { type: "addParticipant", actor: $$[$0] };
+ break;
+ case 70:
+ this.$ = yy.LINETYPE.SOLID_OPEN;
+ break;
+ case 71:
+ this.$ = yy.LINETYPE.DOTTED_OPEN;
+ break;
+ case 72:
+ this.$ = yy.LINETYPE.SOLID;
+ break;
+ case 73:
+ this.$ = yy.LINETYPE.DOTTED;
+ break;
+ case 74:
+ this.$ = yy.LINETYPE.SOLID_CROSS;
+ break;
+ case 75:
+ this.$ = yy.LINETYPE.DOTTED_CROSS;
+ break;
+ case 76:
+ this.$ = yy.LINETYPE.SOLID_POINT;
+ break;
+ case 77:
+ this.$ = yy.LINETYPE.DOTTED_POINT;
+ break;
+ case 78:
+ this.$ = yy.parseMessage($$[$0].trim().substring(1));
+ break;
+ case 79:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 80:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 81:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 82:
+ yy.parseDirective("}%%", "close_directive", "sequence");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, { 1: [3] }, { 3: 8, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, { 3: 9, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, { 3: 10, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, o([1, 4, 5, 19, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 54, 56, 57, 62, 63, 64, 65, 73, 83], $V4, { 8: 11 }), { 15: 12, 84: [1, 13] }, { 84: [2, 79] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 16: 51, 17: [1, 52], 86: $Vv }, o([17, 86], [2, 80]), o($Vw, [2, 6]), { 6: 41, 10: 54, 13: 18, 14: 6, 19: $V7, 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, o($Vw, [2, 8]), o($Vw, [2, 9]), o($Vw, [2, 17]), { 20: [1, 55] }, { 5: [1, 56] }, { 5: [1, 59], 24: [1, 57], 25: [1, 58] }, { 27: 60, 73: $Vu }, { 27: 61, 73: $Vu }, { 5: [1, 62] }, { 5: [1, 63] }, { 5: [1, 64] }, { 5: [1, 65] }, { 5: [1, 66] }, o($Vw, [2, 31]), o($Vw, [2, 32]), { 37: [1, 67] }, { 39: [1, 68] }, o($Vw, [2, 35]), { 20: [1, 69] }, { 20: [1, 70] }, { 20: [1, 71] }, { 20: [1, 72] }, { 20: [1, 73] }, { 20: [1, 74] }, { 20: [1, 75] }, o($Vw, [2, 43]), { 27: 76, 73: $Vu }, { 27: 77, 73: $Vu }, { 70: 78, 74: [1, 79], 75: [1, 80], 76: [1, 81], 77: [1, 82], 78: [1, 83], 79: [1, 84], 80: [1, 85], 81: [1, 86] }, { 58: 87, 60: [1, 88], 68: [1, 89], 69: [1, 90] }, { 27: 91, 73: $Vu }, { 27: 92, 73: $Vu }, { 27: 93, 73: $Vu }, { 27: 94, 73: $Vu }, o([5, 55, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82], [2, 69]), { 5: [1, 95] }, { 18: 96, 85: [1, 97] }, { 5: [2, 82] }, o($Vw, [2, 7]), o($Vx, [2, 10], { 11: 98 }), o($Vw, [2, 19]), { 5: [1, 100], 24: [1, 99] }, { 5: [1, 101] }, o($Vw, [2, 23]), { 5: [1, 102] }, { 5: [1, 103] }, o($Vw, [2, 26]), o($Vw, [2, 27]), o($Vw, [2, 28]), o($Vw, [2, 29]), o($Vw, [2, 30]), o($Vw, [2, 33]), o($Vw, [2, 34]), o($Vy, $V4, { 8: 104 }), o($Vy, $V4, { 8: 105 }), o($Vy, $V4, { 8: 106 }), o($Vz, $V4, { 45: 107, 8: 108 }), o($VA, $V4, { 47: 109, 8: 110 }), o($VB, $V4, { 49: 111, 8: 112 }), o($Vy, $V4, { 8: 113 }), { 5: [1, 115], 55: [1, 114] }, { 5: [1, 117], 55: [1, 116] }, { 27: 120, 71: [1, 118], 72: [1, 119], 73: $Vu }, o($VC, [2, 70]), o($VC, [2, 71]), o($VC, [2, 72]), o($VC, [2, 73]), o($VC, [2, 74]), o($VC, [2, 75]), o($VC, [2, 76]), o($VC, [2, 77]), { 27: 121, 73: $Vu }, { 27: 123, 61: 122, 73: $Vu }, { 73: [2, 64] }, { 73: [2, 65] }, { 59: 124, 82: $VD }, { 59: 126, 82: $VD }, { 59: 127, 82: $VD }, { 59: 128, 82: $VD }, o($VE, [2, 15]), { 16: 129, 86: $Vv }, { 86: [2, 81] }, { 4: [1, 132], 5: [1, 134], 12: 131, 13: 133, 21: [1, 130], 54: $Vn, 56: $Vo }, { 5: [1, 135] }, o($Vw, [2, 21]), o($Vw, [2, 22]), o($Vw, [2, 24]), o($Vw, [2, 25]), { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 136], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 137], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 138], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 21: [1, 139] }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 48], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 53: [1, 140], 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 21: [1, 141] }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 46], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 52: [1, 142], 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 21: [1, 143] }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 44], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 51: [1, 144], 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 145], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 20: [1, 146] }, o($Vw, [2, 51]), { 20: [1, 147] }, o($Vw, [2, 53]), { 27: 148, 73: $Vu }, { 27: 149, 73: $Vu }, { 59: 150, 82: $VD }, { 59: 151, 82: $VD }, { 59: 152, 82: $VD }, { 67: [1, 153], 82: [2, 63] }, { 5: [2, 56] }, { 5: [2, 78] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: [2, 59] }, { 5: [1, 154] }, o($Vw, [2, 18]), o($Vx, [2, 11]), { 13: 155, 54: $Vn, 56: $Vo }, o($Vx, [2, 13]), o($Vx, [2, 14]), o($Vw, [2, 20]), o($Vw, [2, 36]), o($Vw, [2, 37]), o($Vw, [2, 38]), o($Vw, [2, 39]), { 20: [1, 156] }, o($Vw, [2, 40]), { 20: [1, 157] }, o($Vw, [2, 41]), { 20: [1, 158] }, o($Vw, [2, 42]), { 5: [1, 159] }, { 5: [1, 160] }, { 59: 161, 82: $VD }, { 59: 162, 82: $VD }, { 5: [2, 68] }, { 5: [2, 54] }, { 5: [2, 55] }, { 27: 163, 73: $Vu }, o($VE, [2, 16]), o($Vx, [2, 12]), o($Vz, $V4, { 8: 108, 45: 164 }), o($VA, $V4, { 8: 110, 47: 165 }), o($VB, $V4, { 8: 112, 49: 166 }), o($Vw, [2, 50]), o($Vw, [2, 52]), { 5: [2, 66] }, { 5: [2, 67] }, { 82: [2, 62] }, { 21: [2, 49] }, { 21: [2, 47] }, { 21: [2, 45] }],
+ defaultActions: { 7: [2, 79], 8: [2, 1], 9: [2, 2], 10: [2, 3], 53: [2, 82], 89: [2, 64], 90: [2, 65], 97: [2, 81], 124: [2, 56], 125: [2, 78], 126: [2, 57], 127: [2, 58], 128: [2, 59], 150: [2, 68], 151: [2, 54], 152: [2, 55], 161: [2, 66], 162: [2, 67], 163: [2, 62], 164: [2, 49], 165: [2, 47], 166: [2, 45] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 83;
+ case 1:
+ this.begin("type_directive");
+ return 84;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 17;
+ case 3:
+ this.popState();
+ this.popState();
+ return 86;
+ case 4:
+ return 85;
+ case 5:
+ return 5;
+ case 6:
+ break;
+ case 7:
+ break;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ break;
+ case 11:
+ return 24;
+ case 12:
+ this.begin("LINE");
+ return 19;
+ case 13:
+ this.begin("ID");
+ return 54;
+ case 14:
+ this.begin("ID");
+ return 56;
+ case 15:
+ yy_.yytext = yy_.yytext.trim();
+ this.begin("ALIAS");
+ return 73;
+ case 16:
+ this.popState();
+ this.popState();
+ this.begin("LINE");
+ return 55;
+ case 17:
+ this.popState();
+ this.popState();
+ return 5;
+ case 18:
+ this.begin("LINE");
+ return 41;
+ case 19:
+ this.begin("LINE");
+ return 42;
+ case 20:
+ this.begin("LINE");
+ return 43;
+ case 21:
+ this.begin("LINE");
+ return 44;
+ case 22:
+ this.begin("LINE");
+ return 53;
+ case 23:
+ this.begin("LINE");
+ return 46;
+ case 24:
+ this.begin("LINE");
+ return 52;
+ case 25:
+ this.begin("LINE");
+ return 48;
+ case 26:
+ this.begin("LINE");
+ return 51;
+ case 27:
+ this.begin("LINE");
+ return 50;
+ case 28:
+ this.popState();
+ return 20;
+ case 29:
+ return 21;
+ case 30:
+ return 68;
+ case 31:
+ return 69;
+ case 32:
+ return 62;
+ case 33:
+ return 63;
+ case 34:
+ return 64;
+ case 35:
+ return 65;
+ case 36:
+ return 60;
+ case 37:
+ return 57;
+ case 38:
+ this.begin("ID");
+ return 26;
+ case 39:
+ this.begin("ID");
+ return 28;
+ case 40:
+ return 34;
+ case 41:
+ return 35;
+ case 42:
+ this.begin("acc_title");
+ return 36;
+ case 43:
+ this.popState();
+ return "acc_title_value";
+ case 44:
+ this.begin("acc_descr");
+ return 38;
+ case 45:
+ this.popState();
+ return "acc_descr_value";
+ case 46:
+ this.begin("acc_descr_multiline");
+ break;
+ case 47:
+ this.popState();
+ break;
+ case 48:
+ return "acc_descr_multiline_value";
+ case 49:
+ return 7;
+ case 50:
+ return 23;
+ case 51:
+ return 25;
+ case 52:
+ return 67;
+ case 53:
+ return 5;
+ case 54:
+ yy_.yytext = yy_.yytext.trim();
+ return 73;
+ case 55:
+ return 76;
+ case 56:
+ return 77;
+ case 57:
+ return 74;
+ case 58:
+ return 75;
+ case 59:
+ return 78;
+ case 60:
+ return 79;
+ case 61:
+ return 80;
+ case 62:
+ return 81;
+ case 63:
+ return 82;
+ case 64:
+ return 71;
+ case 65:
+ return 72;
+ case 66:
+ return 5;
+ case 67:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[0-9]+(?=[ \n]+))/i, /^(?:box\b)/i, /^(?:participant\b)/i, /^(?:actor\b)/i, /^(?:[^\->:\n,;]+?([\-]*[^\->:\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, /^(?:critical\b)/i, /^(?:option\b)/i, /^(?:break\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:links\b)/i, /^(?:link\b)/i, /^(?:properties\b)/i, /^(?:details\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:title:\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:sequenceDiagram\b)/i, /^(?:autonumber\b)/i, /^(?:off\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\)])/i, /^(?:--[\)])/i, /^(?::(?:(?:no)?wrap)?[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "acc_descr_multiline": { "rules": [47, 48], "inclusive": false }, "acc_descr": { "rules": [45], "inclusive": false }, "acc_title": { "rules": [43], "inclusive": false }, "open_directive": { "rules": [1, 8], "inclusive": false }, "type_directive": { "rules": [2, 3, 8], "inclusive": false }, "arg_directive": { "rules": [3, 4, 8], "inclusive": false }, "ID": { "rules": [7, 8, 15], "inclusive": false }, "ALIAS": { "rules": [7, 8, 16, 17], "inclusive": false }, "LINE": { "rules": [7, 8, 28], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+let prevActor = void 0;
+let actors = {};
+let boxes = [];
+let messages = [];
+let sequenceNumbersEnabled = false;
+let wrapEnabled;
+let currentBox = void 0;
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const addBox = function(data) {
+ boxes.push({
+ name: data.text,
+ wrap: data.wrap === void 0 && autoWrap() || !!data.wrap,
+ fill: data.color,
+ actorKeys: []
+ });
+ currentBox = boxes.slice(-1)[0];
+};
+const addActor = function(id, name, description, type) {
+ let assignedBox = currentBox;
+ const old = actors[id];
+ if (old) {
+ if (currentBox && old.box && currentBox !== old.box) {
+ throw new Error(
+ "A same participant should only be defined in one Box: " + old.name + " can't be in '" + old.box.name + "' and in '" + currentBox.name + "' at the same time."
+ );
+ }
+ assignedBox = old.box ? old.box : currentBox;
+ old.box = assignedBox;
+ if (old && name === old.name && description == null) {
+ return;
+ }
+ }
+ if (description == null || description.text == null) {
+ description = { text: name, wrap: null, type };
+ }
+ if (type == null || description.text == null) {
+ description = { text: name, wrap: null, type };
+ }
+ actors[id] = {
+ box: assignedBox,
+ name,
+ description: description.text,
+ wrap: description.wrap === void 0 && autoWrap() || !!description.wrap,
+ prevActor,
+ links: {},
+ properties: {},
+ actorCnt: null,
+ rectData: null,
+ type: type || "participant"
+ };
+ if (prevActor && actors[prevActor]) {
+ actors[prevActor].nextActor = id;
+ }
+ if (currentBox) {
+ currentBox.actorKeys.push(id);
+ }
+ prevActor = id;
+};
+const activationCount = (part) => {
+ let i;
+ let count = 0;
+ for (i = 0; i < messages.length; i++) {
+ if (messages[i].type === LINETYPE.ACTIVE_START && messages[i].from.actor === part) {
+ count++;
+ }
+ if (messages[i].type === LINETYPE.ACTIVE_END && messages[i].from.actor === part) {
+ count--;
+ }
+ }
+ return count;
+};
+const addMessage = function(idFrom, idTo, message, answer) {
+ messages.push({
+ from: idFrom,
+ to: idTo,
+ message: message.text,
+ wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,
+ answer
+ });
+};
+const addSignal = function(idFrom, idTo, message = { text: void 0, wrap: void 0 }, messageType) {
+ if (messageType === LINETYPE.ACTIVE_END) {
+ const cnt = activationCount(idFrom.actor);
+ if (cnt < 1) {
+ let error = new Error("Trying to inactivate an inactive participant (" + idFrom.actor + ")");
+ error.hash = {
+ text: "->>-",
+ token: "->>-",
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["'ACTIVE_PARTICIPANT'"]
+ };
+ throw error;
+ }
+ }
+ messages.push({
+ from: idFrom,
+ to: idTo,
+ message: message.text,
+ wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,
+ type: messageType
+ });
+ return true;
+};
+const hasAtLeastOneBox = function() {
+ return boxes.length > 0;
+};
+const hasAtLeastOneBoxWithTitle = function() {
+ return boxes.some((b) => b.name);
+};
+const getMessages = function() {
+ return messages;
+};
+const getBoxes = function() {
+ return boxes;
+};
+const getActors = function() {
+ return actors;
+};
+const getActor = function(id) {
+ return actors[id];
+};
+const getActorKeys = function() {
+ return Object.keys(actors);
+};
+const enableSequenceNumbers = function() {
+ sequenceNumbersEnabled = true;
+};
+const disableSequenceNumbers = function() {
+ sequenceNumbersEnabled = false;
+};
+const showSequenceNumbers = () => sequenceNumbersEnabled;
+const setWrap = function(wrapSetting) {
+ wrapEnabled = wrapSetting;
+};
+const autoWrap = () => {
+ if (wrapEnabled !== void 0) {
+ return wrapEnabled;
+ }
+ return getConfig().sequence.wrap;
+};
+const clear = function() {
+ actors = {};
+ boxes = [];
+ messages = [];
+ sequenceNumbersEnabled = false;
+ clear$1();
+};
+const parseMessage = function(str) {
+ const _str = str.trim();
+ const message = {
+ text: _str.replace(/^:?(?:no)?wrap:/, "").trim(),
+ wrap: _str.match(/^:?wrap:/) !== null ? true : _str.match(/^:?nowrap:/) !== null ? false : void 0
+ };
+ log.debug("parseMessage:", message);
+ return message;
+};
+const parseBoxData = function(str) {
+ const match = str.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);
+ let color = match != null && match[1] ? match[1].trim() : "transparent";
+ let title = match != null && match[2] ? match[2].trim() : void 0;
+ if (window && window.CSS) {
+ if (!window.CSS.supports("color", color)) {
+ color = "transparent";
+ title = str.trim();
+ }
+ } else {
+ const style = new Option().style;
+ style.color = color;
+ if (style.color !== color) {
+ color = "transparent";
+ title = str.trim();
+ }
+ }
+ const boxData = {
+ color,
+ text: title !== void 0 ? sanitizeText(title.replace(/^:?(?:no)?wrap:/, ""), getConfig()) : void 0,
+ wrap: title !== void 0 ? title.match(/^:?wrap:/) !== null ? true : title.match(/^:?nowrap:/) !== null ? false : void 0 : void 0
+ };
+ return boxData;
+};
+const LINETYPE = {
+ 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,
+ SOLID_POINT: 24,
+ DOTTED_POINT: 25,
+ AUTONUMBER: 26,
+ CRITICAL_START: 27,
+ CRITICAL_OPTION: 28,
+ CRITICAL_END: 29,
+ BREAK_START: 30,
+ BREAK_END: 31
+};
+const ARROWTYPE = {
+ FILLED: 0,
+ OPEN: 1
+};
+const PLACEMENT = {
+ LEFTOF: 0,
+ RIGHTOF: 1,
+ OVER: 2
+};
+const addNote = function(actor, placement, message) {
+ ({
+ actor,
+ placement,
+ message: message.text,
+ wrap: message.wrap === void 0 && autoWrap() || !!message.wrap
+ });
+ const actors2 = [].concat(actor, actor);
+ messages.push({
+ from: actors2[0],
+ to: actors2[1],
+ message: message.text,
+ wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,
+ type: LINETYPE.NOTE,
+ placement
+ });
+};
+const addLinks = function(actorId, text) {
+ const actor = getActor(actorId);
+ try {
+ let sanitizedText = sanitizeText(text.text, getConfig());
+ sanitizedText = sanitizedText.replace(/&/g, "&");
+ sanitizedText = sanitizedText.replace(/=/g, "=");
+ const links = JSON.parse(sanitizedText);
+ insertLinks(actor, links);
+ } catch (e) {
+ log.error("error while parsing actor link text", e);
+ }
+};
+const addALink = function(actorId, text) {
+ const actor = getActor(actorId);
+ try {
+ const links = {};
+ let sanitizedText = sanitizeText(text.text, getConfig());
+ var sep = sanitizedText.indexOf("@");
+ sanitizedText = sanitizedText.replace(/&/g, "&");
+ sanitizedText = sanitizedText.replace(/=/g, "=");
+ var label = sanitizedText.slice(0, sep - 1).trim();
+ var link = sanitizedText.slice(sep + 1).trim();
+ links[label] = link;
+ insertLinks(actor, links);
+ } catch (e) {
+ log.error("error while parsing actor link text", e);
+ }
+};
+function insertLinks(actor, links) {
+ if (actor.links == null) {
+ actor.links = links;
+ } else {
+ for (let key in links) {
+ actor.links[key] = links[key];
+ }
+ }
+}
+const addProperties = function(actorId, text) {
+ const actor = getActor(actorId);
+ try {
+ let sanitizedText = sanitizeText(text.text, getConfig());
+ const properties = JSON.parse(sanitizedText);
+ insertProperties(actor, properties);
+ } catch (e) {
+ log.error("error while parsing actor properties text", e);
+ }
+};
+function insertProperties(actor, properties) {
+ if (actor.properties == null) {
+ actor.properties = properties;
+ } else {
+ for (let key in properties) {
+ actor.properties[key] = properties[key];
+ }
+ }
+}
+function boxEnd() {
+ currentBox = void 0;
+}
+const addDetails = function(actorId, text) {
+ const actor = getActor(actorId);
+ const elem = document.getElementById(text.text);
+ try {
+ const text2 = elem.innerHTML;
+ const details = JSON.parse(text2);
+ if (details["properties"]) {
+ insertProperties(actor, details["properties"]);
+ }
+ if (details["links"]) {
+ insertLinks(actor, details["links"]);
+ }
+ } catch (e) {
+ log.error("error while parsing actor details text", e);
+ }
+};
+const getActorProperty = function(actor, key) {
+ if (actor !== void 0 && actor.properties !== void 0) {
+ return actor.properties[key];
+ }
+ return void 0;
+};
+const apply = function(param) {
+ if (Array.isArray(param)) {
+ param.forEach(function(item) {
+ apply(item);
+ });
+ } else {
+ switch (param.type) {
+ case "sequenceIndex":
+ messages.push({
+ from: void 0,
+ to: void 0,
+ message: {
+ start: param.sequenceIndex,
+ step: param.sequenceIndexStep,
+ visible: param.sequenceVisible
+ },
+ wrap: false,
+ type: param.signalType
+ });
+ break;
+ case "addParticipant":
+ addActor(param.actor, param.actor, param.description, "participant");
+ break;
+ case "addActor":
+ addActor(param.actor, param.actor, param.description, "actor");
+ break;
+ case "activeStart":
+ addSignal(param.actor, void 0, void 0, param.signalType);
+ break;
+ case "activeEnd":
+ addSignal(param.actor, void 0, void 0, param.signalType);
+ break;
+ case "addNote":
+ addNote(param.actor, param.placement, param.text);
+ break;
+ case "addLinks":
+ addLinks(param.actor, param.text);
+ break;
+ case "addALink":
+ addALink(param.actor, param.text);
+ break;
+ case "addProperties":
+ addProperties(param.actor, param.text);
+ break;
+ case "addDetails":
+ addDetails(param.actor, param.text);
+ break;
+ case "addMessage":
+ addSignal(param.from, param.to, param.msg, param.signalType);
+ break;
+ case "boxStart":
+ addBox(param.boxData);
+ break;
+ case "boxEnd":
+ boxEnd();
+ break;
+ case "loopStart":
+ addSignal(void 0, void 0, param.loopText, param.signalType);
+ break;
+ case "loopEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "rectStart":
+ addSignal(void 0, void 0, param.color, param.signalType);
+ break;
+ case "rectEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "optStart":
+ addSignal(void 0, void 0, param.optText, param.signalType);
+ break;
+ case "optEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "altStart":
+ addSignal(void 0, void 0, param.altText, param.signalType);
+ break;
+ case "else":
+ addSignal(void 0, void 0, param.altText, param.signalType);
+ break;
+ case "altEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "setAccTitle":
+ setAccTitle(param.text);
+ break;
+ case "parStart":
+ addSignal(void 0, void 0, param.parText, param.signalType);
+ break;
+ case "and":
+ addSignal(void 0, void 0, param.parText, param.signalType);
+ break;
+ case "parEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "criticalStart":
+ addSignal(void 0, void 0, param.criticalText, param.signalType);
+ break;
+ case "option":
+ addSignal(void 0, void 0, param.optionText, param.signalType);
+ break;
+ case "criticalEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "breakStart":
+ addSignal(void 0, void 0, param.breakText, param.signalType);
+ break;
+ case "breakEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ }
+ }
+};
+const db = {
+ addActor,
+ addMessage,
+ addSignal,
+ addLinks,
+ addDetails,
+ addProperties,
+ autoWrap,
+ setWrap,
+ enableSequenceNumbers,
+ disableSequenceNumbers,
+ showSequenceNumbers,
+ getMessages,
+ getActors,
+ getActor,
+ getActorKeys,
+ getActorProperty,
+ getAccTitle,
+ getBoxes,
+ getDiagramTitle,
+ setDiagramTitle,
+ parseDirective,
+ getConfig: () => getConfig().sequence,
+ clear,
+ parseMessage,
+ parseBoxData,
+ LINETYPE,
+ ARROWTYPE,
+ PLACEMENT,
+ addNote,
+ setAccTitle,
+ apply,
+ setAccDescription,
+ getAccDescription,
+ hasAtLeastOneBox,
+ hasAtLeastOneBoxWithTitle
+};
+const getStyles = (options) => `.actor {
+ stroke: ${options.actorBorder};
+ fill: ${options.actorBkg};
+ }
+
+ text.actor > tspan {
+ fill: ${options.actorTextColor};
+ stroke: none;
+ }
+
+ .actor-line {
+ stroke: ${options.actorLineColor};
+ }
+
+ .messageLine0 {
+ stroke-width: 1.5;
+ stroke-dasharray: none;
+ stroke: ${options.signalColor};
+ }
+
+ .messageLine1 {
+ stroke-width: 1.5;
+ stroke-dasharray: 2, 2;
+ stroke: ${options.signalColor};
+ }
+
+ #arrowhead path {
+ fill: ${options.signalColor};
+ stroke: ${options.signalColor};
+ }
+
+ .sequenceNumber {
+ fill: ${options.sequenceNumberColor};
+ }
+
+ #sequencenumber {
+ fill: ${options.signalColor};
+ }
+
+ #crosshead path {
+ fill: ${options.signalColor};
+ stroke: ${options.signalColor};
+ }
+
+ .messageText {
+ fill: ${options.signalTextColor};
+ stroke: none;
+ }
+
+ .labelBox {
+ stroke: ${options.labelBoxBorderColor};
+ fill: ${options.labelBoxBkgColor};
+ }
+
+ .labelText, .labelText > tspan {
+ fill: ${options.labelTextColor};
+ stroke: none;
+ }
+
+ .loopText, .loopText > tspan {
+ fill: ${options.loopTextColor};
+ stroke: none;
+ }
+
+ .loopLine {
+ stroke-width: 2px;
+ stroke-dasharray: 2, 2;
+ stroke: ${options.labelBoxBorderColor};
+ fill: ${options.labelBoxBorderColor};
+ }
+
+ .note {
+ //stroke: #decc93;
+ stroke: ${options.noteBorderColor};
+ fill: ${options.noteBkgColor};
+ }
+
+ .noteText, .noteText > tspan {
+ fill: ${options.noteTextColor};
+ stroke: none;
+ }
+
+ .activation0 {
+ fill: ${options.activationBkgColor};
+ stroke: ${options.activationBorderColor};
+ }
+
+ .activation1 {
+ fill: ${options.activationBkgColor};
+ stroke: ${options.activationBorderColor};
+ }
+
+ .activation2 {
+ fill: ${options.activationBkgColor};
+ stroke: ${options.activationBorderColor};
+ }
+
+ .actorPopupMenu {
+ position: absolute;
+ }
+
+ .actorPopupMenuPanel {
+ position: absolute;
+ fill: ${options.actorBkg};
+ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
+ filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));
+}
+ .actor-man line {
+ stroke: ${options.actorBorder};
+ fill: ${options.actorBkg};
+ }
+ .actor-man circle, line {
+ stroke: ${options.actorBorder};
+ fill: ${options.actorBkg};
+ stroke-width: 2px;
+ }
+`;
+const styles = getStyles;
+const drawRect = function(elem, rectData) {
+ const rectElem = elem.append("rect");
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.y);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", rectData.width);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (rectData.class !== void 0) {
+ rectElem.attr("class", rectData.class);
+ }
+ return rectElem;
+};
+const addPopupInteraction = (id, actorCnt2) => {
+ addFunction(() => {
+ const arr = document.querySelectorAll(id);
+ if (arr.length === 0) {
+ return;
+ }
+ arr[0].addEventListener("mouseover", function() {
+ popupMenuUpFunc("actor" + actorCnt2 + "_popup");
+ });
+ arr[0].addEventListener("mouseout", function() {
+ popupMenuDownFunc("actor" + actorCnt2 + "_popup");
+ });
+ });
+};
+const drawPopup = function(elem, actor, minMenuWidth, textAttrs, forceMenus) {
+ if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) {
+ return { height: 0, width: 0 };
+ }
+ const links = actor.links;
+ const actorCnt2 = actor.actorCnt;
+ const rectData = actor.rectData;
+ var displayValue = "none";
+ if (forceMenus) {
+ displayValue = "block !important";
+ }
+ const g = elem.append("g");
+ g.attr("id", "actor" + actorCnt2 + "_popup");
+ g.attr("class", "actorPopupMenu");
+ g.attr("display", displayValue);
+ addPopupInteraction("#actor" + actorCnt2 + "_popup", actorCnt2);
+ var actorClass = "";
+ if (rectData.class !== void 0) {
+ actorClass = " " + rectData.class;
+ }
+ let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth;
+ const rectElem = g.append("rect");
+ rectElem.attr("class", "actorPopupMenuPanel" + actorClass);
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.height);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", menuWidth);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (links != null) {
+ var linkY = 20;
+ for (let key in links) {
+ var linkElem = g.append("a");
+ var sanitizedLink = sanitizeUrl(links[key]);
+ linkElem.attr("xlink:href", sanitizedLink);
+ linkElem.attr("target", "_blank");
+ _drawMenuItemTextCandidateFunc(textAttrs)(
+ key,
+ linkElem,
+ rectData.x + 10,
+ rectData.height + linkY,
+ menuWidth,
+ 20,
+ { class: "actor" },
+ textAttrs
+ );
+ linkY += 30;
+ }
+ }
+ rectElem.attr("height", linkY);
+ return { height: rectData.height + linkY, width: menuWidth };
+};
+const drawImage = function(elem, x, y, link) {
+ const imageElem = elem.append("image");
+ imageElem.attr("x", x);
+ imageElem.attr("y", y);
+ var sanitizedLink = sanitizeUrl(link);
+ imageElem.attr("xlink:href", sanitizedLink);
+};
+const drawEmbeddedImage = function(elem, x, y, link) {
+ const imageElem = elem.append("use");
+ imageElem.attr("x", x);
+ imageElem.attr("y", y);
+ var sanitizedLink = sanitizeUrl(link);
+ imageElem.attr("xlink:href", "#" + sanitizedLink);
+};
+const popupMenu = function(popid) {
+ return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'block'; }";
+};
+const popdownMenu = function(popid) {
+ return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'none'; }";
+};
+const popupMenuUpFunc = function(popupId) {
+ var pu = document.getElementById(popupId);
+ if (pu != null) {
+ pu.style.display = "block";
+ }
+};
+const popupMenuDownFunc = function(popupId) {
+ var pu = document.getElementById(popupId);
+ if (pu != null) {
+ pu.style.display = "none";
+ }
+};
+const drawText = function(elem, textData) {
+ let prevTextHeight = 0, textHeight = 0;
+ const lines = textData.text.split(common.lineBreakRegex);
+ const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize);
+ let textElems = [];
+ let dy = 0;
+ let yfunc = () => textData.y;
+ if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {
+ switch (textData.valign) {
+ case "top":
+ case "start":
+ yfunc = () => Math.round(textData.y + textData.textMargin);
+ break;
+ case "middle":
+ case "center":
+ yfunc = () => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);
+ break;
+ case "bottom":
+ case "end":
+ yfunc = () => Math.round(
+ textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin
+ );
+ break;
+ }
+ }
+ if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) {
+ switch (textData.anchor) {
+ case "left":
+ case "start":
+ textData.x = Math.round(textData.x + textData.textMargin);
+ textData.anchor = "start";
+ textData.dominantBaseline = "middle";
+ textData.alignmentBaseline = "middle";
+ break;
+ case "middle":
+ case "center":
+ textData.x = Math.round(textData.x + textData.width / 2);
+ textData.anchor = "middle";
+ textData.dominantBaseline = "middle";
+ textData.alignmentBaseline = "middle";
+ break;
+ case "right":
+ case "end":
+ textData.x = Math.round(textData.x + textData.width - textData.textMargin);
+ textData.anchor = "end";
+ textData.dominantBaseline = "middle";
+ textData.alignmentBaseline = "middle";
+ break;
+ }
+ }
+ for (let [i, line] of lines.entries()) {
+ if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) {
+ dy = i * _textFontSize;
+ }
+ const textElem = elem.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", yfunc());
+ if (textData.anchor !== void 0) {
+ textElem.attr("text-anchor", textData.anchor).attr("dominant-baseline", textData.dominantBaseline).attr("alignment-baseline", textData.alignmentBaseline);
+ }
+ if (textData.fontFamily !== void 0) {
+ textElem.style("font-family", textData.fontFamily);
+ }
+ if (_textFontSizePx !== void 0) {
+ textElem.style("font-size", _textFontSizePx);
+ }
+ if (textData.fontWeight !== void 0) {
+ textElem.style("font-weight", textData.fontWeight);
+ }
+ if (textData.fill !== void 0) {
+ textElem.attr("fill", textData.fill);
+ }
+ if (textData.class !== void 0) {
+ textElem.attr("class", textData.class);
+ }
+ if (textData.dy !== void 0) {
+ textElem.attr("dy", textData.dy);
+ } else if (dy !== 0) {
+ textElem.attr("dy", dy);
+ }
+ if (textData.tspan) {
+ const span = textElem.append("tspan");
+ span.attr("x", textData.x);
+ if (textData.fill !== void 0) {
+ span.attr("fill", textData.fill);
+ }
+ span.text(line);
+ } else {
+ textElem.text(line);
+ }
+ if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {
+ textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
+ prevTextHeight = textHeight;
+ }
+ textElems.push(textElem);
+ }
+ return textElems;
+};
+const drawLabel = function(elem, txtObject) {
+ function genPoints(x, y, width, height, cut) {
+ return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height);
+ }
+ const polygon = elem.append("polygon");
+ polygon.attr("points", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));
+ polygon.attr("class", "labelBox");
+ txtObject.y = txtObject.y + txtObject.height / 2;
+ drawText(elem, txtObject);
+ return polygon;
+};
+let actorCnt = -1;
+const fixLifeLineHeights = (diagram2, bounds2) => {
+ if (!diagram2.selectAll) {
+ return;
+ }
+ diagram2.selectAll(".actor-line").attr("class", "200").attr("y2", bounds2 - 55);
+};
+const drawActorTypeParticipant = function(elem, actor, conf2, isFooter) {
+ const center = actor.x + actor.width / 2;
+ const centerY = actor.y + 5;
+ const boxpluslineGroup = elem.append("g");
+ var g = boxpluslineGroup;
+ if (!isFooter) {
+ actorCnt++;
+ g.append("line").attr("id", "actor" + actorCnt).attr("x1", center).attr("y1", centerY).attr("x2", center).attr("y2", 2e3).attr("class", "actor-line").attr("stroke-width", "0.5px").attr("stroke", "#999");
+ g = boxpluslineGroup.append("g");
+ actor.actorCnt = actorCnt;
+ if (actor.links != null) {
+ g.attr("id", "root-" + actorCnt);
+ addPopupInteraction("#root-" + actorCnt, actorCnt);
+ }
+ }
+ const rect = getNoteRect();
+ var cssclass = "actor";
+ if (actor.properties != null && actor.properties["class"]) {
+ cssclass = actor.properties["class"];
+ } else {
+ rect.fill = "#eaeaea";
+ }
+ rect.x = actor.x;
+ rect.y = actor.y;
+ rect.width = actor.width;
+ rect.height = actor.height;
+ rect.class = cssclass;
+ rect.rx = 3;
+ rect.ry = 3;
+ const rectElem = drawRect(g, rect);
+ actor.rectData = rect;
+ if (actor.properties != null && actor.properties["icon"]) {
+ const iconSrc = actor.properties["icon"].trim();
+ if (iconSrc.charAt(0) === "@") {
+ drawEmbeddedImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc.substr(1));
+ } else {
+ drawImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc);
+ }
+ }
+ _drawTextCandidateFunc(conf2)(
+ actor.description,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "actor" },
+ conf2
+ );
+ let height = actor.height;
+ if (rectElem.node) {
+ const bounds2 = rectElem.node().getBBox();
+ actor.height = bounds2.height;
+ height = bounds2.height;
+ }
+ return height;
+};
+const drawActorTypeActor = function(elem, actor, conf2, isFooter) {
+ const center = actor.x + actor.width / 2;
+ const centerY = actor.y + 80;
+ if (!isFooter) {
+ actorCnt++;
+ elem.append("line").attr("id", "actor" + actorCnt).attr("x1", center).attr("y1", centerY).attr("x2", center).attr("y2", 2e3).attr("class", "actor-line").attr("stroke-width", "0.5px").attr("stroke", "#999");
+ }
+ const actElem = elem.append("g");
+ actElem.attr("class", "actor-man");
+ const rect = getNoteRect();
+ rect.x = actor.x;
+ rect.y = actor.y;
+ rect.fill = "#eaeaea";
+ rect.width = actor.width;
+ rect.height = actor.height;
+ rect.class = "actor";
+ rect.rx = 3;
+ rect.ry = 3;
+ actElem.append("line").attr("id", "actor-man-torso" + actorCnt).attr("x1", center).attr("y1", actor.y + 25).attr("x2", center).attr("y2", actor.y + 45);
+ actElem.append("line").attr("id", "actor-man-arms" + actorCnt).attr("x1", center - 18).attr("y1", actor.y + 33).attr("x2", center + 18).attr("y2", actor.y + 33);
+ actElem.append("line").attr("x1", center - 18).attr("y1", actor.y + 60).attr("x2", center).attr("y2", actor.y + 45);
+ actElem.append("line").attr("x1", center).attr("y1", actor.y + 45).attr("x2", center + 16).attr("y2", actor.y + 60);
+ const circle = actElem.append("circle");
+ circle.attr("cx", actor.x + actor.width / 2);
+ circle.attr("cy", actor.y + 10);
+ circle.attr("r", 15);
+ circle.attr("width", actor.width);
+ circle.attr("height", actor.height);
+ const bounds2 = actElem.node().getBBox();
+ actor.height = bounds2.height;
+ _drawTextCandidateFunc(conf2)(
+ actor.description,
+ actElem,
+ rect.x,
+ rect.y + 35,
+ rect.width,
+ rect.height,
+ { class: "actor" },
+ conf2
+ );
+ return actor.height;
+};
+const drawActor = function(elem, actor, conf2, isFooter) {
+ switch (actor.type) {
+ case "actor":
+ return drawActorTypeActor(elem, actor, conf2, isFooter);
+ case "participant":
+ return drawActorTypeParticipant(elem, actor, conf2, isFooter);
+ }
+};
+const drawBox = function(elem, box, conf2) {
+ const boxplustextGroup = elem.append("g");
+ const g = boxplustextGroup;
+ drawBackgroundRect(g, box);
+ if (box.name) {
+ _drawTextCandidateFunc(conf2)(
+ box.name,
+ g,
+ box.x,
+ box.y + (box.textMaxHeight || 0) / 2,
+ box.width,
+ 0,
+ { class: "text" },
+ conf2
+ );
+ }
+ g.lower();
+};
+const anchorElement = function(elem) {
+ return elem.append("g");
+};
+const drawActivation = function(elem, bounds2, verticalPos, conf2, actorActivations2) {
+ const rect = getNoteRect();
+ const g = bounds2.anchored;
+ rect.x = bounds2.startx;
+ rect.y = bounds2.starty;
+ rect.class = "activation" + actorActivations2 % 3;
+ rect.width = bounds2.stopx - bounds2.startx;
+ rect.height = verticalPos - bounds2.starty;
+ drawRect(g, rect);
+};
+const drawLoop = function(elem, loopModel, labelText, conf2) {
+ const {
+ boxMargin,
+ boxTextMargin,
+ labelBoxHeight,
+ labelBoxWidth,
+ messageFontFamily: fontFamily,
+ messageFontSize: fontSize,
+ messageFontWeight: fontWeight
+ } = conf2;
+ const g = elem.append("g");
+ const drawLoopLine = function(startx, starty, stopx, stopy) {
+ return g.append("line").attr("x1", startx).attr("y1", starty).attr("x2", stopx).attr("y2", stopy).attr("class", "loopLine");
+ };
+ drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);
+ drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);
+ drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);
+ drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);
+ if (loopModel.sections !== void 0) {
+ loopModel.sections.forEach(function(item) {
+ drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style(
+ "stroke-dasharray",
+ "3, 3"
+ );
+ });
+ }
+ let txt = getTextObj();
+ txt.text = labelText;
+ txt.x = loopModel.startx;
+ txt.y = loopModel.starty;
+ txt.fontFamily = fontFamily;
+ txt.fontSize = fontSize;
+ txt.fontWeight = fontWeight;
+ txt.anchor = "middle";
+ txt.valign = "middle";
+ txt.tspan = false;
+ txt.width = labelBoxWidth || 50;
+ txt.height = labelBoxHeight || 20;
+ txt.textMargin = boxTextMargin;
+ txt.class = "labelText";
+ drawLabel(g, txt);
+ txt = getTextObj();
+ txt.text = loopModel.title;
+ txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;
+ txt.y = loopModel.starty + boxMargin + boxTextMargin;
+ txt.anchor = "middle";
+ txt.valign = "middle";
+ txt.textMargin = boxTextMargin;
+ txt.class = "loopText";
+ txt.fontFamily = fontFamily;
+ txt.fontSize = fontSize;
+ txt.fontWeight = fontWeight;
+ txt.wrap = true;
+ let textElem = drawText(g, txt);
+ if (loopModel.sectionTitles !== void 0) {
+ loopModel.sectionTitles.forEach(function(item, idx) {
+ if (item.message) {
+ txt.text = item.message;
+ txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;
+ txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;
+ txt.class = "loopText";
+ txt.anchor = "middle";
+ txt.valign = "middle";
+ txt.tspan = false;
+ txt.fontFamily = fontFamily;
+ txt.fontSize = fontSize;
+ txt.fontWeight = fontWeight;
+ txt.wrap = loopModel.wrap;
+ textElem = drawText(g, txt);
+ let sectionHeight = Math.round(
+ textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)
+ );
+ loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);
+ }
+ });
+ }
+ loopModel.height = Math.round(loopModel.stopy - loopModel.starty);
+ return g;
+};
+const drawBackgroundRect = function(elem, bounds2) {
+ const rectElem = drawRect(elem, {
+ x: bounds2.startx,
+ y: bounds2.starty,
+ width: bounds2.stopx - bounds2.startx,
+ height: bounds2.stopy - bounds2.starty,
+ fill: bounds2.fill,
+ stroke: bounds2.stroke,
+ class: "rect"
+ });
+ rectElem.lower();
+};
+const insertDatabaseIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
+ );
+};
+const insertComputerIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
+ );
+};
+const insertClockIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
+ );
+};
+const insertArrowHead = function(elem) {
+ elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z");
+};
+const insertArrowFilledHead = function(elem) {
+ elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).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");
+};
+const insertSequenceNumber = function(elem) {
+ elem.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);
+};
+const insertArrowCrossHead = function(elem) {
+ const defs = elem.append("defs");
+ const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 4).attr("refY", 5);
+ marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1pt").attr("d", "M 1,2 L 6,7 M 6,2 L 1,7");
+};
+const getTextObj = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ anchor: void 0,
+ style: "#666",
+ width: void 0,
+ height: void 0,
+ textMargin: 0,
+ rx: 0,
+ ry: 0,
+ tspan: true,
+ valign: void 0
+ };
+};
+const getNoteRect = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: "#EDF2AE",
+ stroke: "#666",
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+};
+const _drawTextCandidateFunc = function() {
+ function byText(content, g, x, y, width, height, textAttrs) {
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text, textAttrs);
+ }
+ function byTspan(content, g, x, y, width, height, textAttrs, conf2) {
+ const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;
+ const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize);
+ const lines = content.split(common.lineBreakRegex);
+ for (let i = 0; i < lines.length; i++) {
+ const dy = i * _actorFontSize - _actorFontSize * (lines.length - 1) / 2;
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y).style("text-anchor", "middle").style("font-size", _actorFontSizePx).style("font-weight", actorFontWeight).style("font-family", actorFontFamily);
+ text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]);
+ text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text, textAttrs);
+ }
+ }
+ function byFo(content, g, x, y, width, height, textAttrs, conf2) {
+ const s = g.append("switch");
+ const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height);
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, s, x, y, width, height, textAttrs, conf2);
+ _setTextAttrs(text, textAttrs);
+ }
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (fromTextAttrsDict.hasOwnProperty(key)) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ return function(conf2) {
+ return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
+ };
+}();
+const _drawMenuItemTextCandidateFunc = function() {
+ function byText(content, g, x, y, width, height, textAttrs) {
+ const text = g.append("text").attr("x", x).attr("y", y).style("text-anchor", "start").text(content);
+ _setTextAttrs(text, textAttrs);
+ }
+ function byTspan(content, g, x, y, width, height, textAttrs, conf2) {
+ const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;
+ const lines = content.split(common.lineBreakRegex);
+ for (let i = 0; i < lines.length; i++) {
+ const dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2;
+ const text = g.append("text").attr("x", x).attr("y", y).style("text-anchor", "start").style("font-size", actorFontSize).style("font-weight", actorFontWeight).style("font-family", actorFontFamily);
+ text.append("tspan").attr("x", x).attr("dy", dy).text(lines[i]);
+ text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text, textAttrs);
+ }
+ }
+ function byFo(content, g, x, y, width, height, textAttrs, conf2) {
+ const s = g.append("switch");
+ const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height);
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, s, x, y, width, height, textAttrs, conf2);
+ _setTextAttrs(text, textAttrs);
+ }
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (fromTextAttrsDict.hasOwnProperty(key)) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ return function(conf2) {
+ return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
+ };
+}();
+const svgDraw = {
+ drawRect,
+ drawText,
+ drawLabel,
+ drawActor,
+ drawBox,
+ drawPopup,
+ drawImage,
+ drawEmbeddedImage,
+ anchorElement,
+ drawActivation,
+ drawLoop,
+ drawBackgroundRect,
+ insertArrowHead,
+ insertArrowFilledHead,
+ insertSequenceNumber,
+ insertArrowCrossHead,
+ insertDatabaseIcon,
+ insertComputerIcon,
+ insertClockIcon,
+ getTextObj,
+ getNoteRect,
+ popupMenu,
+ popdownMenu,
+ fixLifeLineHeights,
+ sanitizeUrl
+};
+let conf = {};
+const bounds = {
+ data: {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ },
+ verticalPos: 0,
+ sequenceItems: [],
+ activations: [],
+ models: {
+ getHeight: function() {
+ return Math.max.apply(
+ null,
+ this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0)
+ ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h) => acc + h));
+ },
+ clear: function() {
+ this.actors = [];
+ this.boxes = [];
+ this.loops = [];
+ this.messages = [];
+ this.notes = [];
+ },
+ addBox: function(boxModel) {
+ this.boxes.push(boxModel);
+ },
+ addActor: function(actorModel) {
+ this.actors.push(actorModel);
+ },
+ addLoop: function(loopModel) {
+ this.loops.push(loopModel);
+ },
+ addMessage: function(msgModel) {
+ this.messages.push(msgModel);
+ },
+ addNote: function(noteModel) {
+ this.notes.push(noteModel);
+ },
+ lastActor: function() {
+ return this.actors[this.actors.length - 1];
+ },
+ lastLoop: function() {
+ return this.loops[this.loops.length - 1];
+ },
+ lastMessage: function() {
+ return this.messages[this.messages.length - 1];
+ },
+ lastNote: function() {
+ return this.notes[this.notes.length - 1];
+ },
+ actors: [],
+ boxes: [],
+ loops: [],
+ messages: [],
+ notes: []
+ },
+ init: function() {
+ this.sequenceItems = [];
+ this.activations = [];
+ this.models.clear();
+ this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ };
+ this.verticalPos = 0;
+ setConf(getConfig());
+ },
+ updateVal: function(obj, key, val, fun) {
+ if (obj[key] === void 0) {
+ obj[key] = val;
+ } else {
+ obj[key] = fun(val, obj[key]);
+ }
+ },
+ updateBounds: function(startx, starty, stopx, stopy) {
+ const _self = this;
+ let cnt = 0;
+ function updateFn(type) {
+ return function updateItemBounds(item) {
+ cnt++;
+ const n = _self.sequenceItems.length - cnt + 1;
+ _self.updateVal(item, "starty", starty - n * conf.boxMargin, Math.min);
+ _self.updateVal(item, "stopy", stopy + n * conf.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "startx", startx - n * conf.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopx", stopx + n * conf.boxMargin, Math.max);
+ if (!(type === "activation")) {
+ _self.updateVal(item, "startx", startx - n * conf.boxMargin, Math.min);
+ _self.updateVal(item, "stopx", stopx + n * conf.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "starty", starty - n * conf.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopy", stopy + n * conf.boxMargin, Math.max);
+ }
+ };
+ }
+ this.sequenceItems.forEach(updateFn());
+ this.activations.forEach(updateFn("activation"));
+ },
+ insert: function(startx, starty, stopx, stopy) {
+ const _startx = Math.min(startx, stopx);
+ const _stopx = Math.max(startx, stopx);
+ const _starty = Math.min(starty, stopy);
+ const _stopy = Math.max(starty, stopy);
+ this.updateVal(bounds.data, "startx", _startx, Math.min);
+ this.updateVal(bounds.data, "starty", _starty, Math.min);
+ this.updateVal(bounds.data, "stopx", _stopx, Math.max);
+ this.updateVal(bounds.data, "stopy", _stopy, Math.max);
+ this.updateBounds(_startx, _starty, _stopx, _stopy);
+ },
+ newActivation: function(message, diagram2, actors2) {
+ const actorRect = actors2[message.from.actor];
+ const stackedSize = actorActivations(message.from.actor).length || 0;
+ const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
+ this.activations.push({
+ startx: x,
+ starty: this.verticalPos + 2,
+ stopx: x + conf.activationWidth,
+ stopy: void 0,
+ actor: message.from.actor,
+ anchored: svgDraw.anchorElement(diagram2)
+ });
+ },
+ endActivation: function(message) {
+ const lastActorActivationIdx = this.activations.map(function(activation) {
+ return activation.actor;
+ }).lastIndexOf(message.from.actor);
+ return this.activations.splice(lastActorActivationIdx, 1)[0];
+ },
+ createLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) {
+ return {
+ startx: void 0,
+ starty: this.verticalPos,
+ stopx: void 0,
+ stopy: void 0,
+ title: title.message,
+ wrap: title.wrap,
+ width: title.width,
+ height: 0,
+ fill
+ };
+ },
+ newLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) {
+ this.sequenceItems.push(this.createLoop(title, fill));
+ },
+ endLoop: function() {
+ return this.sequenceItems.pop();
+ },
+ addSectionToLoop: function(message) {
+ const loop = this.sequenceItems.pop();
+ loop.sections = loop.sections || [];
+ loop.sectionTitles = loop.sectionTitles || [];
+ loop.sections.push({ y: bounds.getVerticalPos(), height: 0 });
+ loop.sectionTitles.push(message);
+ this.sequenceItems.push(loop);
+ },
+ bumpVerticalPos: function(bump) {
+ this.verticalPos = this.verticalPos + bump;
+ this.data.stopy = this.verticalPos;
+ },
+ getVerticalPos: function() {
+ return this.verticalPos;
+ },
+ getBounds: function() {
+ return { bounds: this.data, models: this.models };
+ }
+};
+const drawNote = function(elem, noteModel) {
+ bounds.bumpVerticalPos(conf.boxMargin);
+ noteModel.height = conf.boxMargin;
+ noteModel.starty = bounds.getVerticalPos();
+ const rect = svgDraw.getNoteRect();
+ rect.x = noteModel.startx;
+ rect.y = noteModel.starty;
+ rect.width = noteModel.width || conf.width;
+ rect.class = "note";
+ const g = elem.append("g");
+ const rectElem = svgDraw.drawRect(g, rect);
+ const textObj = svgDraw.getTextObj();
+ textObj.x = noteModel.startx;
+ textObj.y = noteModel.starty;
+ textObj.width = rect.width;
+ textObj.dy = "1em";
+ textObj.text = noteModel.message;
+ textObj.class = "noteText";
+ textObj.fontFamily = conf.noteFontFamily;
+ textObj.fontSize = conf.noteFontSize;
+ textObj.fontWeight = conf.noteFontWeight;
+ textObj.anchor = conf.noteAlign;
+ textObj.textMargin = conf.noteMargin;
+ textObj.valign = "center";
+ const textElem = drawText(g, textObj);
+ const textHeight = Math.round(
+ textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)
+ );
+ rectElem.attr("height", textHeight + 2 * conf.noteMargin);
+ noteModel.height += textHeight + 2 * conf.noteMargin;
+ bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);
+ noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin;
+ noteModel.stopx = noteModel.startx + rect.width;
+ bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);
+ bounds.models.addNote(noteModel);
+};
+const messageFont = (cnf) => {
+ return {
+ fontFamily: cnf.messageFontFamily,
+ fontSize: cnf.messageFontSize,
+ fontWeight: cnf.messageFontWeight
+ };
+};
+const noteFont = (cnf) => {
+ return {
+ fontFamily: cnf.noteFontFamily,
+ fontSize: cnf.noteFontSize,
+ fontWeight: cnf.noteFontWeight
+ };
+};
+const actorFont = (cnf) => {
+ return {
+ fontFamily: cnf.actorFontFamily,
+ fontSize: cnf.actorFontSize,
+ fontWeight: cnf.actorFontWeight
+ };
+};
+function boundMessage(_diagram, msgModel) {
+ bounds.bumpVerticalPos(10);
+ const { startx, stopx, message } = msgModel;
+ const lines = common.splitBreaks(message).length;
+ const textDims = utils.calculateTextDimensions(message, messageFont(conf));
+ const lineHeight = textDims.height / lines;
+ msgModel.height += lineHeight;
+ bounds.bumpVerticalPos(lineHeight);
+ let lineStartY;
+ let totalOffset = textDims.height - 10;
+ const textWidth = textDims.width;
+ if (startx === stopx) {
+ lineStartY = bounds.getVerticalPos() + totalOffset;
+ if (!conf.rightAngles) {
+ totalOffset += conf.boxMargin;
+ lineStartY = bounds.getVerticalPos() + totalOffset;
+ }
+ totalOffset += 30;
+ const dx = Math.max(textWidth / 2, conf.width / 2);
+ bounds.insert(
+ startx - dx,
+ bounds.getVerticalPos() - 10 + totalOffset,
+ stopx + dx,
+ bounds.getVerticalPos() + 30 + totalOffset
+ );
+ } else {
+ totalOffset += conf.boxMargin;
+ lineStartY = bounds.getVerticalPos() + totalOffset;
+ bounds.insert(startx, lineStartY - 10, stopx, lineStartY);
+ }
+ bounds.bumpVerticalPos(totalOffset);
+ msgModel.height += totalOffset;
+ msgModel.stopy = msgModel.starty + msgModel.height;
+ bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);
+ return lineStartY;
+}
+const drawMessage = function(diagram2, msgModel, lineStartY, diagObj) {
+ const { startx, stopx, starty, message, type, sequenceIndex, sequenceVisible } = msgModel;
+ const textDims = utils.calculateTextDimensions(message, messageFont(conf));
+ const textObj = svgDraw.getTextObj();
+ textObj.x = startx;
+ textObj.y = starty + 10;
+ textObj.width = stopx - startx;
+ textObj.class = "messageText";
+ textObj.dy = "1em";
+ textObj.text = message;
+ textObj.fontFamily = conf.messageFontFamily;
+ textObj.fontSize = conf.messageFontSize;
+ textObj.fontWeight = conf.messageFontWeight;
+ textObj.anchor = conf.messageAlign;
+ textObj.valign = "center";
+ textObj.textMargin = conf.wrapPadding;
+ textObj.tspan = false;
+ drawText(diagram2, textObj);
+ const textWidth = textDims.width;
+ let line;
+ if (startx === stopx) {
+ if (conf.rightAngles) {
+ line = diagram2.append("path").attr(
+ "d",
+ `M ${startx},${lineStartY} H ${startx + Math.max(conf.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}`
+ );
+ } else {
+ line = diagram2.append("path").attr(
+ "d",
+ "M " + startx + "," + lineStartY + " C " + (startx + 60) + "," + (lineStartY - 10) + " " + (startx + 60) + "," + (lineStartY + 30) + " " + startx + "," + (lineStartY + 20)
+ );
+ }
+ } else {
+ line = diagram2.append("line");
+ line.attr("x1", startx);
+ line.attr("y1", lineStartY);
+ line.attr("x2", stopx);
+ line.attr("y2", lineStartY);
+ }
+ if (type === diagObj.db.LINETYPE.DOTTED || type === diagObj.db.LINETYPE.DOTTED_CROSS || type === diagObj.db.LINETYPE.DOTTED_POINT || type === diagObj.db.LINETYPE.DOTTED_OPEN) {
+ line.style("stroke-dasharray", "3, 3");
+ line.attr("class", "messageLine1");
+ } else {
+ line.attr("class", "messageLine0");
+ }
+ let url = "";
+ if (conf.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ line.attr("stroke-width", 2);
+ line.attr("stroke", "none");
+ line.style("fill", "none");
+ if (type === diagObj.db.LINETYPE.SOLID || type === diagObj.db.LINETYPE.DOTTED) {
+ line.attr("marker-end", "url(" + url + "#arrowhead)");
+ }
+ if (type === diagObj.db.LINETYPE.SOLID_POINT || type === diagObj.db.LINETYPE.DOTTED_POINT) {
+ line.attr("marker-end", "url(" + url + "#filled-head)");
+ }
+ if (type === diagObj.db.LINETYPE.SOLID_CROSS || type === diagObj.db.LINETYPE.DOTTED_CROSS) {
+ line.attr("marker-end", "url(" + url + "#crosshead)");
+ }
+ if (sequenceVisible || conf.showSequenceNumbers) {
+ line.attr("marker-start", "url(" + url + "#sequencenumber)");
+ diagram2.append("text").attr("x", startx).attr("y", lineStartY + 4).attr("font-family", "sans-serif").attr("font-size", "12px").attr("text-anchor", "middle").attr("class", "sequenceNumber").text(sequenceIndex);
+ }
+};
+const drawActors = function(diagram2, actors2, actorKeys, verticalPos, configuration, messages2, isFooter) {
+ if (configuration.hideUnusedParticipants === true) {
+ const newActors = /* @__PURE__ */ new Set();
+ messages2.forEach((message) => {
+ newActors.add(message.from);
+ newActors.add(message.to);
+ });
+ actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey));
+ }
+ let prevWidth = 0;
+ let prevMargin = 0;
+ let maxHeight = 0;
+ let prevBox = void 0;
+ for (const actorKey of actorKeys) {
+ const actor = actors2[actorKey];
+ const box = actor.box;
+ if (prevBox && prevBox != box) {
+ if (!isFooter) {
+ bounds.models.addBox(prevBox);
+ }
+ prevMargin += conf.boxMargin + prevBox.margin;
+ }
+ if (box && box != prevBox) {
+ if (!isFooter) {
+ box.x = prevWidth + prevMargin;
+ box.y = verticalPos;
+ }
+ prevMargin += box.margin;
+ }
+ actor.width = actor.width || conf.width;
+ actor.height = Math.max(actor.height || conf.height, conf.height);
+ actor.margin = actor.margin || conf.actorMargin;
+ actor.x = prevWidth + prevMargin;
+ actor.y = bounds.getVerticalPos();
+ const height = svgDraw.drawActor(diagram2, actor, conf, isFooter);
+ maxHeight = Math.max(maxHeight, height);
+ bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);
+ prevWidth += actor.width + prevMargin;
+ if (actor.box) {
+ actor.box.width = prevWidth + box.margin - actor.box.x;
+ }
+ prevMargin = actor.margin;
+ prevBox = actor.box;
+ bounds.models.addActor(actor);
+ }
+ if (prevBox && !isFooter) {
+ bounds.models.addBox(prevBox);
+ }
+ bounds.bumpVerticalPos(maxHeight);
+};
+const drawActorsPopup = function(diagram2, actors2, actorKeys, doc) {
+ let maxHeight = 0;
+ let maxWidth = 0;
+ for (const actorKey of actorKeys) {
+ const actor = actors2[actorKey];
+ const minMenuWidth = getRequiredPopupWidth(actor);
+ const menuDimensions = svgDraw.drawPopup(
+ diagram2,
+ actor,
+ minMenuWidth,
+ conf,
+ conf.forceMenus,
+ doc
+ );
+ if (menuDimensions.height > maxHeight) {
+ maxHeight = menuDimensions.height;
+ }
+ if (menuDimensions.width + actor.x > maxWidth) {
+ maxWidth = menuDimensions.width + actor.x;
+ }
+ }
+ return { maxHeight, maxWidth };
+};
+const setConf = function(cnf) {
+ assignWithDepth(conf, cnf);
+ if (cnf.fontFamily) {
+ conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily;
+ }
+ if (cnf.fontSize) {
+ conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize;
+ }
+ if (cnf.fontWeight) {
+ conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight;
+ }
+};
+const actorActivations = function(actor) {
+ return bounds.activations.filter(function(activation) {
+ return activation.actor === actor;
+ });
+};
+const activationBounds = function(actor, actors2) {
+ const actorObj = actors2[actor];
+ const activations = actorActivations(actor);
+ const left = activations.reduce(function(acc, activation) {
+ return Math.min(acc, activation.startx);
+ }, actorObj.x + actorObj.width / 2);
+ const right = activations.reduce(function(acc, activation) {
+ return Math.max(acc, activation.stopx);
+ }, actorObj.x + actorObj.width / 2);
+ return [left, right];
+};
+function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {
+ bounds.bumpVerticalPos(preMargin);
+ let heightAdjust = postMargin;
+ if (msg.id && msg.message && loopWidths[msg.id]) {
+ const loopWidth = loopWidths[msg.id].width;
+ const textConf = messageFont(conf);
+ msg.message = utils.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf.wrapPadding, textConf);
+ msg.width = loopWidth;
+ msg.wrap = true;
+ const textDims = utils.calculateTextDimensions(msg.message, textConf);
+ const totalOffset = Math.max(textDims.height, conf.labelBoxHeight);
+ heightAdjust = postMargin + totalOffset;
+ log.debug(`${totalOffset} - ${msg.message}`);
+ }
+ addLoopFn(msg);
+ bounds.bumpVerticalPos(heightAdjust);
+}
+const draw = function(_text, id, _version, diagObj) {
+ const { securityLevel, sequence } = getConfig();
+ conf = sequence;
+ diagObj.db.clear();
+ diagObj.parser.parse(_text);
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ bounds.init();
+ log.debug(diagObj.db);
+ const diagram2 = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : select(`[id="${id}"]`);
+ const actors2 = diagObj.db.getActors();
+ const boxes2 = diagObj.db.getBoxes();
+ const actorKeys = diagObj.db.getActorKeys();
+ const messages2 = diagObj.db.getMessages();
+ const title = diagObj.db.getDiagramTitle();
+ const hasBoxes = diagObj.db.hasAtLeastOneBox();
+ const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle();
+ const maxMessageWidthPerActor = getMaxMessageWidthPerActor(actors2, messages2, diagObj);
+ conf.height = calculateActorMargins(actors2, maxMessageWidthPerActor, boxes2);
+ svgDraw.insertComputerIcon(diagram2);
+ svgDraw.insertDatabaseIcon(diagram2);
+ svgDraw.insertClockIcon(diagram2);
+ if (hasBoxes) {
+ bounds.bumpVerticalPos(conf.boxMargin);
+ if (hasBoxTitles) {
+ bounds.bumpVerticalPos(boxes2[0].textMaxHeight);
+ }
+ }
+ drawActors(diagram2, actors2, actorKeys, 0, conf, messages2, false);
+ const loopWidths = calculateLoopBounds(messages2, actors2, maxMessageWidthPerActor, diagObj);
+ svgDraw.insertArrowHead(diagram2);
+ svgDraw.insertArrowCrossHead(diagram2);
+ svgDraw.insertArrowFilledHead(diagram2);
+ svgDraw.insertSequenceNumber(diagram2);
+ function activeEnd(msg, verticalPos) {
+ const activationData = bounds.endActivation(msg);
+ if (activationData.starty + 18 > verticalPos) {
+ activationData.starty = verticalPos - 6;
+ verticalPos += 12;
+ }
+ svgDraw.drawActivation(
+ diagram2,
+ activationData,
+ verticalPos,
+ conf,
+ actorActivations(msg.from.actor).length
+ );
+ bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);
+ }
+ let sequenceIndex = 1;
+ let sequenceIndexStep = 1;
+ const messagesToDraw = [];
+ messages2.forEach(function(msg) {
+ let loopModel, noteModel, msgModel;
+ switch (msg.type) {
+ case diagObj.db.LINETYPE.NOTE:
+ noteModel = msg.noteModel;
+ drawNote(diagram2, noteModel);
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_START:
+ bounds.newActivation(msg, diagram2, actors2);
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_END:
+ activeEnd(msg, bounds.getVerticalPos());
+ break;
+ case diagObj.db.LINETYPE.LOOP_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.LOOP_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "loop", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.RECT_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin,
+ (message) => bounds.newLoop(void 0, message.message)
+ );
+ break;
+ case diagObj.db.LINETYPE.RECT_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawBackgroundRect(diagram2, loopModel);
+ bounds.models.addLoop(loopModel);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ break;
+ case diagObj.db.LINETYPE.OPT_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.OPT_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "opt", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.ALT_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.ALT_ELSE:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin + conf.boxTextMargin,
+ conf.boxMargin,
+ (message) => bounds.addSectionToLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.ALT_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "alt", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.PAR_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.PAR_AND:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin + conf.boxTextMargin,
+ conf.boxMargin,
+ (message) => bounds.addSectionToLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.PAR_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "par", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.AUTONUMBER:
+ sequenceIndex = msg.message.start || sequenceIndex;
+ sequenceIndexStep = msg.message.step || sequenceIndexStep;
+ if (msg.message.visible) {
+ diagObj.db.enableSequenceNumbers();
+ } else {
+ diagObj.db.disableSequenceNumbers();
+ }
+ break;
+ case diagObj.db.LINETYPE.CRITICAL_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.CRITICAL_OPTION:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin + conf.boxTextMargin,
+ conf.boxMargin,
+ (message) => bounds.addSectionToLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.CRITICAL_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "critical", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.BREAK_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.BREAK_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "break", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ default:
+ try {
+ msgModel = msg.msgModel;
+ msgModel.starty = bounds.getVerticalPos();
+ msgModel.sequenceIndex = sequenceIndex;
+ msgModel.sequenceVisible = diagObj.db.showSequenceNumbers();
+ const lineStartY = boundMessage(diagram2, msgModel);
+ messagesToDraw.push({ messageModel: msgModel, lineStartY });
+ bounds.models.addMessage(msgModel);
+ } catch (e) {
+ log.error("error while drawing message", e);
+ }
+ }
+ if ([
+ diagObj.db.LINETYPE.SOLID_OPEN,
+ diagObj.db.LINETYPE.DOTTED_OPEN,
+ diagObj.db.LINETYPE.SOLID,
+ diagObj.db.LINETYPE.DOTTED,
+ diagObj.db.LINETYPE.SOLID_CROSS,
+ diagObj.db.LINETYPE.DOTTED_CROSS,
+ diagObj.db.LINETYPE.SOLID_POINT,
+ diagObj.db.LINETYPE.DOTTED_POINT
+ ].includes(msg.type)) {
+ sequenceIndex = sequenceIndex + sequenceIndexStep;
+ }
+ });
+ messagesToDraw.forEach((e) => drawMessage(diagram2, e.messageModel, e.lineStartY, diagObj));
+ if (conf.mirrorActors) {
+ bounds.bumpVerticalPos(conf.boxMargin * 2);
+ drawActors(diagram2, actors2, actorKeys, bounds.getVerticalPos(), conf, messages2, true);
+ bounds.bumpVerticalPos(conf.boxMargin);
+ fixLifeLineHeights(diagram2, bounds.getVerticalPos());
+ }
+ bounds.models.boxes.forEach(function(box2) {
+ box2.height = bounds.getVerticalPos() - box2.y;
+ bounds.insert(box2.x, box2.y, box2.x + box2.width, box2.height);
+ box2.startx = box2.x;
+ box2.starty = box2.y;
+ box2.stopx = box2.startx + box2.width;
+ box2.stopy = box2.starty + box2.height;
+ box2.stroke = "rgb(0,0,0, 0.5)";
+ svgDraw.drawBox(diagram2, box2, conf);
+ });
+ if (hasBoxes) {
+ bounds.bumpVerticalPos(conf.boxMargin);
+ }
+ const requiredBoxSize = drawActorsPopup(diagram2, actors2, actorKeys, doc);
+ const { bounds: box } = bounds.getBounds();
+ log.debug("For line height fix Querying: #" + id + " .actor-line");
+ const actorLines = selectAll("#" + id + " .actor-line");
+ actorLines.attr("y2", box.stopy);
+ let boxHeight = box.stopy - box.starty;
+ if (boxHeight < requiredBoxSize.maxHeight) {
+ boxHeight = requiredBoxSize.maxHeight;
+ }
+ let height = boxHeight + 2 * conf.diagramMarginY;
+ if (conf.mirrorActors) {
+ height = height - conf.boxMargin + conf.bottomMarginAdj;
+ }
+ let boxWidth = box.stopx - box.startx;
+ if (boxWidth < requiredBoxSize.maxWidth) {
+ boxWidth = requiredBoxSize.maxWidth;
+ }
+ const width = boxWidth + 2 * conf.diagramMarginX;
+ if (title) {
+ diagram2.append("text").text(title).attr("x", (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr("y", -25);
+ }
+ configureSvgSize(diagram2, height, width, conf.useMaxWidth);
+ const extraVertForTitle = title ? 40 : 0;
+ diagram2.attr(
+ "viewBox",
+ box.startx - conf.diagramMarginX + " -" + (conf.diagramMarginY + extraVertForTitle) + " " + width + " " + (height + extraVertForTitle)
+ );
+ log.debug(`models:`, bounds.models);
+};
+function getMaxMessageWidthPerActor(actors2, messages2, diagObj) {
+ const maxMessageWidthPerActor = {};
+ messages2.forEach(function(msg) {
+ if (actors2[msg.to] && actors2[msg.from]) {
+ const actor = actors2[msg.to];
+ if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) {
+ return;
+ }
+ if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) {
+ return;
+ }
+ const isNote = msg.placement !== void 0;
+ const isMessage = !isNote;
+ const textFont = isNote ? noteFont(conf) : messageFont(conf);
+ const wrappedMessage = msg.wrap ? utils.wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message;
+ const messageDimensions = utils.calculateTextDimensions(wrappedMessage, textFont);
+ const messageWidth = messageDimensions.width + 2 * conf.wrapPadding;
+ if (isMessage && msg.from === actor.nextActor) {
+ maxMessageWidthPerActor[msg.to] = Math.max(
+ maxMessageWidthPerActor[msg.to] || 0,
+ messageWidth
+ );
+ } else if (isMessage && msg.from === actor.prevActor) {
+ maxMessageWidthPerActor[msg.from] = Math.max(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth
+ );
+ } else if (isMessage && msg.from === msg.to) {
+ maxMessageWidthPerActor[msg.from] = Math.max(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth / 2
+ );
+ maxMessageWidthPerActor[msg.to] = Math.max(
+ maxMessageWidthPerActor[msg.to] || 0,
+ messageWidth / 2
+ );
+ } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
+ maxMessageWidthPerActor[msg.from] = Math.max(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth
+ );
+ } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
+ maxMessageWidthPerActor[actor.prevActor] = Math.max(
+ maxMessageWidthPerActor[actor.prevActor] || 0,
+ messageWidth
+ );
+ } else if (msg.placement === diagObj.db.PLACEMENT.OVER) {
+ if (actor.prevActor) {
+ maxMessageWidthPerActor[actor.prevActor] = Math.max(
+ maxMessageWidthPerActor[actor.prevActor] || 0,
+ messageWidth / 2
+ );
+ }
+ if (actor.nextActor) {
+ maxMessageWidthPerActor[msg.from] = Math.max(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth / 2
+ );
+ }
+ }
+ }
+ });
+ log.debug("maxMessageWidthPerActor:", maxMessageWidthPerActor);
+ return maxMessageWidthPerActor;
+}
+const getRequiredPopupWidth = function(actor) {
+ let requiredPopupWidth = 0;
+ const textFont = actorFont(conf);
+ for (const key in actor.links) {
+ const labelDimensions = utils.calculateTextDimensions(key, textFont);
+ const labelWidth = labelDimensions.width + 2 * conf.wrapPadding + 2 * conf.boxMargin;
+ if (requiredPopupWidth < labelWidth) {
+ requiredPopupWidth = labelWidth;
+ }
+ }
+ return requiredPopupWidth;
+};
+function calculateActorMargins(actors2, actorToMessageWidth, boxes2) {
+ let maxHeight = 0;
+ Object.keys(actors2).forEach((prop) => {
+ const actor = actors2[prop];
+ if (actor.wrap) {
+ actor.description = utils.wrapLabel(
+ actor.description,
+ conf.width - 2 * conf.wrapPadding,
+ actorFont(conf)
+ );
+ }
+ const actDims = utils.calculateTextDimensions(actor.description, actorFont(conf));
+ actor.width = actor.wrap ? conf.width : Math.max(conf.width, actDims.width + 2 * conf.wrapPadding);
+ actor.height = actor.wrap ? Math.max(actDims.height, conf.height) : conf.height;
+ maxHeight = Math.max(maxHeight, actor.height);
+ });
+ for (const actorKey in actorToMessageWidth) {
+ const actor = actors2[actorKey];
+ if (!actor) {
+ continue;
+ }
+ const nextActor = actors2[actor.nextActor];
+ if (!nextActor) {
+ const messageWidth2 = actorToMessageWidth[actorKey];
+ const actorWidth2 = messageWidth2 + conf.actorMargin - actor.width / 2;
+ actor.margin = Math.max(actorWidth2, conf.actorMargin);
+ continue;
+ }
+ const messageWidth = actorToMessageWidth[actorKey];
+ const actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2;
+ actor.margin = Math.max(actorWidth, conf.actorMargin);
+ }
+ let maxBoxHeight = 0;
+ boxes2.forEach((box) => {
+ const textFont = messageFont(conf);
+ let totalWidth = box.actorKeys.reduce((total, aKey) => {
+ return total += actors2[aKey].width + (actors2[aKey].margin || 0);
+ }, 0);
+ totalWidth -= 2 * conf.boxTextMargin;
+ if (box.wrap) {
+ box.name = utils.wrapLabel(box.name, totalWidth - 2 * conf.wrapPadding, textFont);
+ }
+ const boxMsgDimensions = utils.calculateTextDimensions(box.name, textFont);
+ maxBoxHeight = Math.max(boxMsgDimensions.height, maxBoxHeight);
+ const minWidth = Math.max(totalWidth, boxMsgDimensions.width + 2 * conf.wrapPadding);
+ box.margin = conf.boxTextMargin;
+ if (totalWidth < minWidth) {
+ const missing = (minWidth - totalWidth) / 2;
+ box.margin += missing;
+ }
+ });
+ boxes2.forEach((box) => box.textMaxHeight = maxBoxHeight);
+ return Math.max(maxHeight, conf.height);
+}
+const buildNoteModel = function(msg, actors2, diagObj) {
+ const startx = actors2[msg.from].x;
+ const stopx = actors2[msg.to].x;
+ const shouldWrap = msg.wrap && msg.message;
+ let textDimensions = utils.calculateTextDimensions(
+ shouldWrap ? utils.wrapLabel(msg.message, conf.width, noteFont(conf)) : msg.message,
+ noteFont(conf)
+ );
+ const noteModel = {
+ width: shouldWrap ? conf.width : Math.max(conf.width, textDimensions.width + 2 * conf.noteMargin),
+ height: 0,
+ startx: actors2[msg.from].x,
+ stopx: 0,
+ starty: 0,
+ stopy: 0,
+ message: msg.message
+ };
+ if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
+ noteModel.width = shouldWrap ? Math.max(conf.width, textDimensions.width) : Math.max(
+ actors2[msg.from].width / 2 + actors2[msg.to].width / 2,
+ textDimensions.width + 2 * conf.noteMargin
+ );
+ noteModel.startx = startx + (actors2[msg.from].width + conf.actorMargin) / 2;
+ } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
+ noteModel.width = shouldWrap ? Math.max(conf.width, textDimensions.width + 2 * conf.noteMargin) : Math.max(
+ actors2[msg.from].width / 2 + actors2[msg.to].width / 2,
+ textDimensions.width + 2 * conf.noteMargin
+ );
+ noteModel.startx = startx - noteModel.width + (actors2[msg.from].width - conf.actorMargin) / 2;
+ } else if (msg.to === msg.from) {
+ textDimensions = utils.calculateTextDimensions(
+ shouldWrap ? utils.wrapLabel(msg.message, Math.max(conf.width, actors2[msg.from].width), noteFont(conf)) : msg.message,
+ noteFont(conf)
+ );
+ noteModel.width = shouldWrap ? Math.max(conf.width, actors2[msg.from].width) : Math.max(actors2[msg.from].width, conf.width, textDimensions.width + 2 * conf.noteMargin);
+ noteModel.startx = startx + (actors2[msg.from].width - noteModel.width) / 2;
+ } else {
+ noteModel.width = Math.abs(startx + actors2[msg.from].width / 2 - (stopx + actors2[msg.to].width / 2)) + conf.actorMargin;
+ noteModel.startx = startx < stopx ? startx + actors2[msg.from].width / 2 - conf.actorMargin / 2 : stopx + actors2[msg.to].width / 2 - conf.actorMargin / 2;
+ }
+ if (shouldWrap) {
+ noteModel.message = utils.wrapLabel(
+ msg.message,
+ noteModel.width - 2 * conf.wrapPadding,
+ noteFont(conf)
+ );
+ }
+ log.debug(
+ `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]`
+ );
+ return noteModel;
+};
+const buildMessageModel = function(msg, actors2, diagObj) {
+ let process = false;
+ if ([
+ diagObj.db.LINETYPE.SOLID_OPEN,
+ diagObj.db.LINETYPE.DOTTED_OPEN,
+ diagObj.db.LINETYPE.SOLID,
+ diagObj.db.LINETYPE.DOTTED,
+ diagObj.db.LINETYPE.SOLID_CROSS,
+ diagObj.db.LINETYPE.DOTTED_CROSS,
+ diagObj.db.LINETYPE.SOLID_POINT,
+ diagObj.db.LINETYPE.DOTTED_POINT
+ ].includes(msg.type)) {
+ process = true;
+ }
+ if (!process) {
+ return {};
+ }
+ const fromBounds = activationBounds(msg.from, actors2);
+ const toBounds = activationBounds(msg.to, actors2);
+ const fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0;
+ const toIdx = fromBounds[0] < toBounds[0] ? 0 : 1;
+ const allBounds = [...fromBounds, ...toBounds];
+ const boundedWidth = Math.abs(toBounds[toIdx] - fromBounds[fromIdx]);
+ if (msg.wrap && msg.message) {
+ msg.message = utils.wrapLabel(
+ msg.message,
+ Math.max(boundedWidth + 2 * conf.wrapPadding, conf.width),
+ messageFont(conf)
+ );
+ }
+ const msgDims = utils.calculateTextDimensions(msg.message, messageFont(conf));
+ return {
+ width: Math.max(
+ msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding,
+ boundedWidth + 2 * conf.wrapPadding,
+ conf.width
+ ),
+ height: 0,
+ startx: fromBounds[fromIdx],
+ stopx: toBounds[toIdx],
+ starty: 0,
+ stopy: 0,
+ message: msg.message,
+ type: msg.type,
+ wrap: msg.wrap,
+ fromBounds: Math.min.apply(null, allBounds),
+ toBounds: Math.max.apply(null, allBounds)
+ };
+};
+const calculateLoopBounds = function(messages2, actors2, _maxWidthPerActor, diagObj) {
+ const loops = {};
+ const stack = [];
+ let current, noteModel, msgModel;
+ messages2.forEach(function(msg) {
+ msg.id = utils.random({ length: 10 });
+ switch (msg.type) {
+ case diagObj.db.LINETYPE.LOOP_START:
+ case diagObj.db.LINETYPE.ALT_START:
+ case diagObj.db.LINETYPE.OPT_START:
+ case diagObj.db.LINETYPE.PAR_START:
+ case diagObj.db.LINETYPE.CRITICAL_START:
+ case diagObj.db.LINETYPE.BREAK_START:
+ stack.push({
+ id: msg.id,
+ msg: msg.message,
+ from: Number.MAX_SAFE_INTEGER,
+ to: Number.MIN_SAFE_INTEGER,
+ width: 0
+ });
+ break;
+ case diagObj.db.LINETYPE.ALT_ELSE:
+ case diagObj.db.LINETYPE.PAR_AND:
+ case diagObj.db.LINETYPE.CRITICAL_OPTION:
+ if (msg.message) {
+ current = stack.pop();
+ loops[current.id] = current;
+ loops[msg.id] = current;
+ stack.push(current);
+ }
+ break;
+ case diagObj.db.LINETYPE.LOOP_END:
+ case diagObj.db.LINETYPE.ALT_END:
+ case diagObj.db.LINETYPE.OPT_END:
+ case diagObj.db.LINETYPE.PAR_END:
+ case diagObj.db.LINETYPE.CRITICAL_END:
+ case diagObj.db.LINETYPE.BREAK_END:
+ current = stack.pop();
+ loops[current.id] = current;
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_START:
+ {
+ const actorRect = actors2[msg.from ? msg.from.actor : msg.to.actor];
+ const stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length;
+ const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
+ const toAdd = {
+ startx: x,
+ stopx: x + conf.activationWidth,
+ actor: msg.from.actor,
+ enabled: true
+ };
+ bounds.activations.push(toAdd);
+ }
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_END:
+ {
+ const lastActorActivationIdx = bounds.activations.map((a) => a.actor).lastIndexOf(msg.from.actor);
+ delete bounds.activations.splice(lastActorActivationIdx, 1)[0];
+ }
+ break;
+ }
+ const isNote = msg.placement !== void 0;
+ if (isNote) {
+ noteModel = buildNoteModel(msg, actors2, diagObj);
+ msg.noteModel = noteModel;
+ stack.forEach((stk) => {
+ current = stk;
+ current.from = Math.min(current.from, noteModel.startx);
+ current.to = Math.max(current.to, noteModel.startx + noteModel.width);
+ current.width = Math.max(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth;
+ });
+ } else {
+ msgModel = buildMessageModel(msg, actors2, diagObj);
+ msg.msgModel = msgModel;
+ if (msgModel.startx && msgModel.stopx && stack.length > 0) {
+ stack.forEach((stk) => {
+ current = stk;
+ if (msgModel.startx === msgModel.stopx) {
+ const from = actors2[msg.from];
+ const to = actors2[msg.to];
+ current.from = Math.min(
+ from.x - msgModel.width / 2,
+ from.x - from.width / 2,
+ current.from
+ );
+ current.to = Math.max(to.x + msgModel.width / 2, to.x + from.width / 2, current.to);
+ current.width = Math.max(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth;
+ } else {
+ current.from = Math.min(msgModel.startx, current.from);
+ current.to = Math.max(msgModel.stopx, current.to);
+ current.width = Math.max(current.width, msgModel.width) - conf.labelBoxWidth;
+ }
+ });
+ }
+ }
+ });
+ bounds.activations = [];
+ log.debug("Loop type widths:", loops);
+ return loops;
+};
+const renderer = {
+ bounds,
+ drawActors,
+ drawActorsPopup,
+ setConf,
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db,
+ renderer,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=sequenceDiagram-446df3e4.js.map
diff --git a/scopegraphs-render-docs/doc/js/sequenceDiagram-a52c6980.js b/scopegraphs-render-docs/doc/js/sequenceDiagram-a52c6980.js
new file mode 100644
index 0000000..b86506d
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/sequenceDiagram-a52c6980.js
@@ -0,0 +1,3142 @@
+import { m as mermaidAPI, q as addFunction } from "./mermaidAPI-c841a67f.js";
+import { v as getAccTitle, z as getDiagramTitle, y as setDiagramTitle, g as getConfig, q as setAccTitle, x as setAccDescription, w as getAccDescription, A as clear$1, l as log, b as sanitizeText, f as common, d as assignWithDepth, h as select } from "./commonDb-89160e91.js";
+import { s as sanitizeUrl_1, N as parseFontSize, v as configureSvgSize, u as utils } from "./utils-1aebe9b6.js";
+import { s as selectAll } from "./selectAll-7c7a6d44.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 7], $V4 = [2, 5], $V5 = [1, 15], $V6 = [1, 17], $V7 = [1, 19], $V8 = [1, 21], $V9 = [1, 22], $Va = [1, 23], $Vb = [1, 29], $Vc = [1, 30], $Vd = [1, 31], $Ve = [1, 32], $Vf = [1, 33], $Vg = [1, 34], $Vh = [1, 35], $Vi = [1, 36], $Vj = [1, 37], $Vk = [1, 38], $Vl = [1, 39], $Vm = [1, 40], $Vn = [1, 42], $Vo = [1, 43], $Vp = [1, 45], $Vq = [1, 46], $Vr = [1, 47], $Vs = [1, 48], $Vt = [1, 49], $Vu = [1, 50], $Vv = [1, 53], $Vw = [1, 4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83], $Vx = [4, 5, 21, 54, 56], $Vy = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 54, 56, 57, 62, 63, 64, 65, 73, 83], $Vz = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83], $VA = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 52, 54, 56, 57, 62, 63, 64, 65, 73, 83], $VB = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 54, 56, 57, 62, 63, 64, 65, 73, 83], $VC = [71, 72, 73], $VD = [1, 125], $VE = [1, 4, 5, 7, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "SPACE": 4, "NEWLINE": 5, "directive": 6, "SD": 7, "document": 8, "line": 9, "statement": 10, "box_section": 11, "box_line": 12, "participant_statement": 13, "openDirective": 14, "typeDirective": 15, "closeDirective": 16, ":": 17, "argDirective": 18, "box": 19, "restOfLine": 20, "end": 21, "signal": 22, "autonumber": 23, "NUM": 24, "off": 25, "activate": 26, "actor": 27, "deactivate": 28, "note_statement": 29, "links_statement": 30, "link_statement": 31, "properties_statement": 32, "details_statement": 33, "title": 34, "legacy_title": 35, "acc_title": 36, "acc_title_value": 37, "acc_descr": 38, "acc_descr_value": 39, "acc_descr_multiline_value": 40, "loop": 41, "rect": 42, "opt": 43, "alt": 44, "else_sections": 45, "par": 46, "par_sections": 47, "critical": 48, "option_sections": 49, "break": 50, "option": 51, "and": 52, "else": 53, "participant": 54, "AS": 55, "participant_actor": 56, "note": 57, "placement": 58, "text2": 59, "over": 60, "actor_pair": 61, "links": 62, "link": 63, "properties": 64, "details": 65, "spaceList": 66, ",": 67, "left_of": 68, "right_of": 69, "signaltype": 70, "+": 71, "-": 72, "ACTOR": 73, "SOLID_OPEN_ARROW": 74, "DOTTED_OPEN_ARROW": 75, "SOLID_ARROW": 76, "DOTTED_ARROW": 77, "SOLID_CROSS": 78, "DOTTED_CROSS": 79, "SOLID_POINT": 80, "DOTTED_POINT": 81, "TXT": 82, "open_directive": 83, "type_directive": 84, "arg_directive": 85, "close_directive": 86, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "SPACE", 5: "NEWLINE", 7: "SD", 17: ":", 19: "box", 20: "restOfLine", 21: "end", 23: "autonumber", 24: "NUM", 25: "off", 26: "activate", 28: "deactivate", 34: "title", 35: "legacy_title", 36: "acc_title", 37: "acc_title_value", 38: "acc_descr", 39: "acc_descr_value", 40: "acc_descr_multiline_value", 41: "loop", 42: "rect", 43: "opt", 44: "alt", 46: "par", 48: "critical", 50: "break", 51: "option", 52: "and", 53: "else", 54: "participant", 55: "AS", 56: "participant_actor", 57: "note", 60: "over", 62: "links", 63: "link", 64: "properties", 65: "details", 67: ",", 68: "left_of", 69: "right_of", 71: "+", 72: "-", 73: "ACTOR", 74: "SOLID_OPEN_ARROW", 75: "DOTTED_OPEN_ARROW", 76: "SOLID_ARROW", 77: "DOTTED_ARROW", 78: "SOLID_CROSS", 79: "DOTTED_CROSS", 80: "SOLID_POINT", 81: "DOTTED_POINT", 82: "TXT", 83: "open_directive", 84: "type_directive", 85: "arg_directive", 86: "close_directive" },
+ productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [11, 0], [11, 2], [12, 2], [12, 1], [12, 1], [6, 4], [6, 6], [10, 1], [10, 4], [10, 2], [10, 4], [10, 3], [10, 3], [10, 2], [10, 3], [10, 3], [10, 2], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 1], [49, 1], [49, 4], [47, 1], [47, 4], [45, 1], [45, 4], [13, 5], [13, 3], [13, 5], [13, 3], [29, 4], [29, 4], [30, 3], [31, 3], [32, 3], [33, 3], [66, 2], [66, 1], [61, 3], [61, 1], [58, 1], [58, 1], [22, 5], [22, 5], [22, 4], [27, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [59, 1], [14, 1], [15, 1], [18, 1], [16, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 4:
+ yy.apply($$[$0]);
+ return $$[$0];
+ case 5:
+ case 10:
+ this.$ = [];
+ break;
+ case 6:
+ case 11:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 7:
+ case 8:
+ case 12:
+ case 13:
+ this.$ = $$[$0];
+ break;
+ case 9:
+ case 14:
+ this.$ = [];
+ break;
+ case 18:
+ $$[$0 - 1].unshift({ type: "boxStart", boxData: yy.parseBoxData($$[$0 - 2]) });
+ $$[$0 - 1].push({ type: "boxEnd", boxText: $$[$0 - 2] });
+ this.$ = $$[$0 - 1];
+ break;
+ case 20:
+ this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 21:
+ this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 22:
+ this.$ = { type: "sequenceIndex", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 23:
+ this.$ = { type: "sequenceIndex", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 24:
+ this.$ = { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] };
+ break;
+ case 25:
+ this.$ = { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] };
+ break;
+ case 31:
+ yy.setDiagramTitle($$[$0].substring(6));
+ this.$ = $$[$0].substring(6);
+ break;
+ case 32:
+ yy.setDiagramTitle($$[$0].substring(7));
+ this.$ = $$[$0].substring(7);
+ break;
+ case 33:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 34:
+ case 35:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 36:
+ $$[$0 - 1].unshift({ type: "loopStart", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START });
+ $$[$0 - 1].push({ type: "loopEnd", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 37:
+ $$[$0 - 1].unshift({ type: "rectStart", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START });
+ $$[$0 - 1].push({ type: "rectEnd", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 38:
+ $$[$0 - 1].unshift({ type: "optStart", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START });
+ $$[$0 - 1].push({ type: "optEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 39:
+ $$[$0 - 1].unshift({ type: "altStart", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START });
+ $$[$0 - 1].push({ type: "altEnd", signalType: yy.LINETYPE.ALT_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 40:
+ $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START });
+ $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 41:
+ $$[$0 - 1].unshift({ type: "criticalStart", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START });
+ $$[$0 - 1].push({ type: "criticalEnd", signalType: yy.LINETYPE.CRITICAL_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 42:
+ $$[$0 - 1].unshift({ type: "breakStart", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START });
+ $$[$0 - 1].push({ type: "breakEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 45:
+ this.$ = $$[$0 - 3].concat([{ type: "option", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]);
+ break;
+ case 47:
+ this.$ = $$[$0 - 3].concat([{ type: "and", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]);
+ break;
+ case 49:
+ this.$ = $$[$0 - 3].concat([{ type: "else", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]);
+ break;
+ case 50:
+ $$[$0 - 3].type = "addParticipant";
+ $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);
+ this.$ = $$[$0 - 3];
+ break;
+ case 51:
+ $$[$0 - 1].type = "addParticipant";
+ this.$ = $$[$0 - 1];
+ break;
+ case 52:
+ $$[$0 - 3].type = "addActor";
+ $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);
+ this.$ = $$[$0 - 3];
+ break;
+ case 53:
+ $$[$0 - 1].type = "addActor";
+ this.$ = $$[$0 - 1];
+ break;
+ case 54:
+ this.$ = [$$[$0 - 1], { type: "addNote", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 55:
+ $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2);
+ $$[$0 - 2][0] = $$[$0 - 2][0].actor;
+ $$[$0 - 2][1] = $$[$0 - 2][1].actor;
+ this.$ = [$$[$0 - 1], { type: "addNote", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }];
+ break;
+ case 56:
+ this.$ = [$$[$0 - 1], { type: "addLinks", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 57:
+ this.$ = [$$[$0 - 1], { type: "addALink", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 58:
+ this.$ = [$$[$0 - 1], { type: "addProperties", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 59:
+ this.$ = [$$[$0 - 1], { type: "addDetails", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 62:
+ this.$ = [$$[$0 - 2], $$[$0]];
+ break;
+ case 63:
+ this.$ = $$[$0];
+ break;
+ case 64:
+ this.$ = yy.PLACEMENT.LEFTOF;
+ break;
+ case 65:
+ this.$ = yy.PLACEMENT.RIGHTOF;
+ break;
+ case 66:
+ this.$ = [
+ $$[$0 - 4],
+ $$[$0 - 1],
+ { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },
+ { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }
+ ];
+ break;
+ case 67:
+ this.$ = [
+ $$[$0 - 4],
+ $$[$0 - 1],
+ { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },
+ { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] }
+ ];
+ break;
+ case 68:
+ this.$ = [$$[$0 - 3], $$[$0 - 1], { type: "addMessage", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }];
+ break;
+ case 69:
+ this.$ = { type: "addParticipant", actor: $$[$0] };
+ break;
+ case 70:
+ this.$ = yy.LINETYPE.SOLID_OPEN;
+ break;
+ case 71:
+ this.$ = yy.LINETYPE.DOTTED_OPEN;
+ break;
+ case 72:
+ this.$ = yy.LINETYPE.SOLID;
+ break;
+ case 73:
+ this.$ = yy.LINETYPE.DOTTED;
+ break;
+ case 74:
+ this.$ = yy.LINETYPE.SOLID_CROSS;
+ break;
+ case 75:
+ this.$ = yy.LINETYPE.DOTTED_CROSS;
+ break;
+ case 76:
+ this.$ = yy.LINETYPE.SOLID_POINT;
+ break;
+ case 77:
+ this.$ = yy.LINETYPE.DOTTED_POINT;
+ break;
+ case 78:
+ this.$ = yy.parseMessage($$[$0].trim().substring(1));
+ break;
+ case 79:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 80:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 81:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 82:
+ yy.parseDirective("}%%", "close_directive", "sequence");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, { 1: [3] }, { 3: 8, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, { 3: 9, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, { 3: 10, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, o([1, 4, 5, 19, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 54, 56, 57, 62, 63, 64, 65, 73, 83], $V4, { 8: 11 }), { 15: 12, 84: [1, 13] }, { 84: [2, 79] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 16: 51, 17: [1, 52], 86: $Vv }, o([17, 86], [2, 80]), o($Vw, [2, 6]), { 6: 41, 10: 54, 13: 18, 14: 6, 19: $V7, 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, o($Vw, [2, 8]), o($Vw, [2, 9]), o($Vw, [2, 17]), { 20: [1, 55] }, { 5: [1, 56] }, { 5: [1, 59], 24: [1, 57], 25: [1, 58] }, { 27: 60, 73: $Vu }, { 27: 61, 73: $Vu }, { 5: [1, 62] }, { 5: [1, 63] }, { 5: [1, 64] }, { 5: [1, 65] }, { 5: [1, 66] }, o($Vw, [2, 31]), o($Vw, [2, 32]), { 37: [1, 67] }, { 39: [1, 68] }, o($Vw, [2, 35]), { 20: [1, 69] }, { 20: [1, 70] }, { 20: [1, 71] }, { 20: [1, 72] }, { 20: [1, 73] }, { 20: [1, 74] }, { 20: [1, 75] }, o($Vw, [2, 43]), { 27: 76, 73: $Vu }, { 27: 77, 73: $Vu }, { 70: 78, 74: [1, 79], 75: [1, 80], 76: [1, 81], 77: [1, 82], 78: [1, 83], 79: [1, 84], 80: [1, 85], 81: [1, 86] }, { 58: 87, 60: [1, 88], 68: [1, 89], 69: [1, 90] }, { 27: 91, 73: $Vu }, { 27: 92, 73: $Vu }, { 27: 93, 73: $Vu }, { 27: 94, 73: $Vu }, o([5, 55, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82], [2, 69]), { 5: [1, 95] }, { 18: 96, 85: [1, 97] }, { 5: [2, 82] }, o($Vw, [2, 7]), o($Vx, [2, 10], { 11: 98 }), o($Vw, [2, 19]), { 5: [1, 100], 24: [1, 99] }, { 5: [1, 101] }, o($Vw, [2, 23]), { 5: [1, 102] }, { 5: [1, 103] }, o($Vw, [2, 26]), o($Vw, [2, 27]), o($Vw, [2, 28]), o($Vw, [2, 29]), o($Vw, [2, 30]), o($Vw, [2, 33]), o($Vw, [2, 34]), o($Vy, $V4, { 8: 104 }), o($Vy, $V4, { 8: 105 }), o($Vy, $V4, { 8: 106 }), o($Vz, $V4, { 45: 107, 8: 108 }), o($VA, $V4, { 47: 109, 8: 110 }), o($VB, $V4, { 49: 111, 8: 112 }), o($Vy, $V4, { 8: 113 }), { 5: [1, 115], 55: [1, 114] }, { 5: [1, 117], 55: [1, 116] }, { 27: 120, 71: [1, 118], 72: [1, 119], 73: $Vu }, o($VC, [2, 70]), o($VC, [2, 71]), o($VC, [2, 72]), o($VC, [2, 73]), o($VC, [2, 74]), o($VC, [2, 75]), o($VC, [2, 76]), o($VC, [2, 77]), { 27: 121, 73: $Vu }, { 27: 123, 61: 122, 73: $Vu }, { 73: [2, 64] }, { 73: [2, 65] }, { 59: 124, 82: $VD }, { 59: 126, 82: $VD }, { 59: 127, 82: $VD }, { 59: 128, 82: $VD }, o($VE, [2, 15]), { 16: 129, 86: $Vv }, { 86: [2, 81] }, { 4: [1, 132], 5: [1, 134], 12: 131, 13: 133, 21: [1, 130], 54: $Vn, 56: $Vo }, { 5: [1, 135] }, o($Vw, [2, 21]), o($Vw, [2, 22]), o($Vw, [2, 24]), o($Vw, [2, 25]), { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 136], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 137], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 138], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 21: [1, 139] }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 48], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 53: [1, 140], 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 21: [1, 141] }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 46], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 52: [1, 142], 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 21: [1, 143] }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 44], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 51: [1, 144], 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 145], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 20: [1, 146] }, o($Vw, [2, 51]), { 20: [1, 147] }, o($Vw, [2, 53]), { 27: 148, 73: $Vu }, { 27: 149, 73: $Vu }, { 59: 150, 82: $VD }, { 59: 151, 82: $VD }, { 59: 152, 82: $VD }, { 67: [1, 153], 82: [2, 63] }, { 5: [2, 56] }, { 5: [2, 78] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: [2, 59] }, { 5: [1, 154] }, o($Vw, [2, 18]), o($Vx, [2, 11]), { 13: 155, 54: $Vn, 56: $Vo }, o($Vx, [2, 13]), o($Vx, [2, 14]), o($Vw, [2, 20]), o($Vw, [2, 36]), o($Vw, [2, 37]), o($Vw, [2, 38]), o($Vw, [2, 39]), { 20: [1, 156] }, o($Vw, [2, 40]), { 20: [1, 157] }, o($Vw, [2, 41]), { 20: [1, 158] }, o($Vw, [2, 42]), { 5: [1, 159] }, { 5: [1, 160] }, { 59: 161, 82: $VD }, { 59: 162, 82: $VD }, { 5: [2, 68] }, { 5: [2, 54] }, { 5: [2, 55] }, { 27: 163, 73: $Vu }, o($VE, [2, 16]), o($Vx, [2, 12]), o($Vz, $V4, { 8: 108, 45: 164 }), o($VA, $V4, { 8: 110, 47: 165 }), o($VB, $V4, { 8: 112, 49: 166 }), o($Vw, [2, 50]), o($Vw, [2, 52]), { 5: [2, 66] }, { 5: [2, 67] }, { 82: [2, 62] }, { 21: [2, 49] }, { 21: [2, 47] }, { 21: [2, 45] }],
+ defaultActions: { 7: [2, 79], 8: [2, 1], 9: [2, 2], 10: [2, 3], 53: [2, 82], 89: [2, 64], 90: [2, 65], 97: [2, 81], 124: [2, 56], 125: [2, 78], 126: [2, 57], 127: [2, 58], 128: [2, 59], 150: [2, 68], 151: [2, 54], 152: [2, 55], 161: [2, 66], 162: [2, 67], 163: [2, 62], 164: [2, 49], 165: [2, 47], 166: [2, 45] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 83;
+ case 1:
+ this.begin("type_directive");
+ return 84;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 17;
+ case 3:
+ this.popState();
+ this.popState();
+ return 86;
+ case 4:
+ return 85;
+ case 5:
+ return 5;
+ case 6:
+ break;
+ case 7:
+ break;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ break;
+ case 11:
+ return 24;
+ case 12:
+ this.begin("LINE");
+ return 19;
+ case 13:
+ this.begin("ID");
+ return 54;
+ case 14:
+ this.begin("ID");
+ return 56;
+ case 15:
+ yy_.yytext = yy_.yytext.trim();
+ this.begin("ALIAS");
+ return 73;
+ case 16:
+ this.popState();
+ this.popState();
+ this.begin("LINE");
+ return 55;
+ case 17:
+ this.popState();
+ this.popState();
+ return 5;
+ case 18:
+ this.begin("LINE");
+ return 41;
+ case 19:
+ this.begin("LINE");
+ return 42;
+ case 20:
+ this.begin("LINE");
+ return 43;
+ case 21:
+ this.begin("LINE");
+ return 44;
+ case 22:
+ this.begin("LINE");
+ return 53;
+ case 23:
+ this.begin("LINE");
+ return 46;
+ case 24:
+ this.begin("LINE");
+ return 52;
+ case 25:
+ this.begin("LINE");
+ return 48;
+ case 26:
+ this.begin("LINE");
+ return 51;
+ case 27:
+ this.begin("LINE");
+ return 50;
+ case 28:
+ this.popState();
+ return 20;
+ case 29:
+ return 21;
+ case 30:
+ return 68;
+ case 31:
+ return 69;
+ case 32:
+ return 62;
+ case 33:
+ return 63;
+ case 34:
+ return 64;
+ case 35:
+ return 65;
+ case 36:
+ return 60;
+ case 37:
+ return 57;
+ case 38:
+ this.begin("ID");
+ return 26;
+ case 39:
+ this.begin("ID");
+ return 28;
+ case 40:
+ return 34;
+ case 41:
+ return 35;
+ case 42:
+ this.begin("acc_title");
+ return 36;
+ case 43:
+ this.popState();
+ return "acc_title_value";
+ case 44:
+ this.begin("acc_descr");
+ return 38;
+ case 45:
+ this.popState();
+ return "acc_descr_value";
+ case 46:
+ this.begin("acc_descr_multiline");
+ break;
+ case 47:
+ this.popState();
+ break;
+ case 48:
+ return "acc_descr_multiline_value";
+ case 49:
+ return 7;
+ case 50:
+ return 23;
+ case 51:
+ return 25;
+ case 52:
+ return 67;
+ case 53:
+ return 5;
+ case 54:
+ yy_.yytext = yy_.yytext.trim();
+ return 73;
+ case 55:
+ return 76;
+ case 56:
+ return 77;
+ case 57:
+ return 74;
+ case 58:
+ return 75;
+ case 59:
+ return 78;
+ case 60:
+ return 79;
+ case 61:
+ return 80;
+ case 62:
+ return 81;
+ case 63:
+ return 82;
+ case 64:
+ return 71;
+ case 65:
+ return 72;
+ case 66:
+ return 5;
+ case 67:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[0-9]+(?=[ \n]+))/i, /^(?:box\b)/i, /^(?:participant\b)/i, /^(?:actor\b)/i, /^(?:[^\->:\n,;]+?([\-]*[^\->:\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, /^(?:critical\b)/i, /^(?:option\b)/i, /^(?:break\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:links\b)/i, /^(?:link\b)/i, /^(?:properties\b)/i, /^(?:details\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:title:\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:sequenceDiagram\b)/i, /^(?:autonumber\b)/i, /^(?:off\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\)])/i, /^(?:--[\)])/i, /^(?::(?:(?:no)?wrap)?[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "acc_descr_multiline": { "rules": [47, 48], "inclusive": false }, "acc_descr": { "rules": [45], "inclusive": false }, "acc_title": { "rules": [43], "inclusive": false }, "open_directive": { "rules": [1, 8], "inclusive": false }, "type_directive": { "rules": [2, 3, 8], "inclusive": false }, "arg_directive": { "rules": [3, 4, 8], "inclusive": false }, "ID": { "rules": [7, 8, 15], "inclusive": false }, "ALIAS": { "rules": [7, 8, 16, 17], "inclusive": false }, "LINE": { "rules": [7, 8, 28], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+let prevActor = void 0;
+let actors = {};
+let boxes = [];
+let messages = [];
+let sequenceNumbersEnabled = false;
+let wrapEnabled;
+let currentBox = void 0;
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const addBox = function(data) {
+ boxes.push({
+ name: data.text,
+ wrap: data.wrap === void 0 && autoWrap() || !!data.wrap,
+ fill: data.color,
+ actorKeys: []
+ });
+ currentBox = boxes.slice(-1)[0];
+};
+const addActor = function(id, name, description, type) {
+ let assignedBox = currentBox;
+ const old = actors[id];
+ if (old) {
+ if (currentBox && old.box && currentBox !== old.box) {
+ throw new Error(
+ "A same participant should only be defined in one Box: " + old.name + " can't be in '" + old.box.name + "' and in '" + currentBox.name + "' at the same time."
+ );
+ }
+ assignedBox = old.box ? old.box : currentBox;
+ old.box = assignedBox;
+ if (old && name === old.name && description == null) {
+ return;
+ }
+ }
+ if (description == null || description.text == null) {
+ description = { text: name, wrap: null, type };
+ }
+ if (type == null || description.text == null) {
+ description = { text: name, wrap: null, type };
+ }
+ actors[id] = {
+ box: assignedBox,
+ name,
+ description: description.text,
+ wrap: description.wrap === void 0 && autoWrap() || !!description.wrap,
+ prevActor,
+ links: {},
+ properties: {},
+ actorCnt: null,
+ rectData: null,
+ type: type || "participant"
+ };
+ if (prevActor && actors[prevActor]) {
+ actors[prevActor].nextActor = id;
+ }
+ if (currentBox) {
+ currentBox.actorKeys.push(id);
+ }
+ prevActor = id;
+};
+const activationCount = (part) => {
+ let i;
+ let count = 0;
+ for (i = 0; i < messages.length; i++) {
+ if (messages[i].type === LINETYPE.ACTIVE_START && messages[i].from.actor === part) {
+ count++;
+ }
+ if (messages[i].type === LINETYPE.ACTIVE_END && messages[i].from.actor === part) {
+ count--;
+ }
+ }
+ return count;
+};
+const addMessage = function(idFrom, idTo, message, answer) {
+ messages.push({
+ from: idFrom,
+ to: idTo,
+ message: message.text,
+ wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,
+ answer
+ });
+};
+const addSignal = function(idFrom, idTo, message = { text: void 0, wrap: void 0 }, messageType) {
+ if (messageType === LINETYPE.ACTIVE_END) {
+ const cnt = activationCount(idFrom.actor);
+ if (cnt < 1) {
+ let error = new Error("Trying to inactivate an inactive participant (" + idFrom.actor + ")");
+ error.hash = {
+ text: "->>-",
+ token: "->>-",
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["'ACTIVE_PARTICIPANT'"]
+ };
+ throw error;
+ }
+ }
+ messages.push({
+ from: idFrom,
+ to: idTo,
+ message: message.text,
+ wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,
+ type: messageType
+ });
+ return true;
+};
+const hasAtLeastOneBox = function() {
+ return boxes.length > 0;
+};
+const hasAtLeastOneBoxWithTitle = function() {
+ return boxes.some((b) => b.name);
+};
+const getMessages = function() {
+ return messages;
+};
+const getBoxes = function() {
+ return boxes;
+};
+const getActors = function() {
+ return actors;
+};
+const getActor = function(id) {
+ return actors[id];
+};
+const getActorKeys = function() {
+ return Object.keys(actors);
+};
+const enableSequenceNumbers = function() {
+ sequenceNumbersEnabled = true;
+};
+const disableSequenceNumbers = function() {
+ sequenceNumbersEnabled = false;
+};
+const showSequenceNumbers = () => sequenceNumbersEnabled;
+const setWrap = function(wrapSetting) {
+ wrapEnabled = wrapSetting;
+};
+const autoWrap = () => {
+ if (wrapEnabled !== void 0) {
+ return wrapEnabled;
+ }
+ return getConfig().sequence.wrap;
+};
+const clear = function() {
+ actors = {};
+ boxes = [];
+ messages = [];
+ sequenceNumbersEnabled = false;
+ clear$1();
+};
+const parseMessage = function(str) {
+ const _str = str.trim();
+ const message = {
+ text: _str.replace(/^:?(?:no)?wrap:/, "").trim(),
+ wrap: _str.match(/^:?wrap:/) !== null ? true : _str.match(/^:?nowrap:/) !== null ? false : void 0
+ };
+ log.debug("parseMessage:", message);
+ return message;
+};
+const parseBoxData = function(str) {
+ const match = str.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);
+ let color = match != null && match[1] ? match[1].trim() : "transparent";
+ let title = match != null && match[2] ? match[2].trim() : void 0;
+ if (window && window.CSS) {
+ if (!window.CSS.supports("color", color)) {
+ color = "transparent";
+ title = str.trim();
+ }
+ } else {
+ const style = new Option().style;
+ style.color = color;
+ if (style.color !== color) {
+ color = "transparent";
+ title = str.trim();
+ }
+ }
+ const boxData = {
+ color,
+ text: title !== void 0 ? sanitizeText(title.replace(/^:?(?:no)?wrap:/, ""), getConfig()) : void 0,
+ wrap: title !== void 0 ? title.match(/^:?wrap:/) !== null ? true : title.match(/^:?nowrap:/) !== null ? false : void 0 : void 0
+ };
+ return boxData;
+};
+const LINETYPE = {
+ 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,
+ SOLID_POINT: 24,
+ DOTTED_POINT: 25,
+ AUTONUMBER: 26,
+ CRITICAL_START: 27,
+ CRITICAL_OPTION: 28,
+ CRITICAL_END: 29,
+ BREAK_START: 30,
+ BREAK_END: 31
+};
+const ARROWTYPE = {
+ FILLED: 0,
+ OPEN: 1
+};
+const PLACEMENT = {
+ LEFTOF: 0,
+ RIGHTOF: 1,
+ OVER: 2
+};
+const addNote = function(actor, placement, message) {
+ ({
+ actor,
+ placement,
+ message: message.text,
+ wrap: message.wrap === void 0 && autoWrap() || !!message.wrap
+ });
+ const actors2 = [].concat(actor, actor);
+ messages.push({
+ from: actors2[0],
+ to: actors2[1],
+ message: message.text,
+ wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,
+ type: LINETYPE.NOTE,
+ placement
+ });
+};
+const addLinks = function(actorId, text) {
+ const actor = getActor(actorId);
+ try {
+ let sanitizedText = sanitizeText(text.text, getConfig());
+ sanitizedText = sanitizedText.replace(/&/g, "&");
+ sanitizedText = sanitizedText.replace(/=/g, "=");
+ const links = JSON.parse(sanitizedText);
+ insertLinks(actor, links);
+ } catch (e) {
+ log.error("error while parsing actor link text", e);
+ }
+};
+const addALink = function(actorId, text) {
+ const actor = getActor(actorId);
+ try {
+ const links = {};
+ let sanitizedText = sanitizeText(text.text, getConfig());
+ var sep = sanitizedText.indexOf("@");
+ sanitizedText = sanitizedText.replace(/&/g, "&");
+ sanitizedText = sanitizedText.replace(/=/g, "=");
+ var label = sanitizedText.slice(0, sep - 1).trim();
+ var link = sanitizedText.slice(sep + 1).trim();
+ links[label] = link;
+ insertLinks(actor, links);
+ } catch (e) {
+ log.error("error while parsing actor link text", e);
+ }
+};
+function insertLinks(actor, links) {
+ if (actor.links == null) {
+ actor.links = links;
+ } else {
+ for (let key in links) {
+ actor.links[key] = links[key];
+ }
+ }
+}
+const addProperties = function(actorId, text) {
+ const actor = getActor(actorId);
+ try {
+ let sanitizedText = sanitizeText(text.text, getConfig());
+ const properties = JSON.parse(sanitizedText);
+ insertProperties(actor, properties);
+ } catch (e) {
+ log.error("error while parsing actor properties text", e);
+ }
+};
+function insertProperties(actor, properties) {
+ if (actor.properties == null) {
+ actor.properties = properties;
+ } else {
+ for (let key in properties) {
+ actor.properties[key] = properties[key];
+ }
+ }
+}
+function boxEnd() {
+ currentBox = void 0;
+}
+const addDetails = function(actorId, text) {
+ const actor = getActor(actorId);
+ const elem = document.getElementById(text.text);
+ try {
+ const text2 = elem.innerHTML;
+ const details = JSON.parse(text2);
+ if (details["properties"]) {
+ insertProperties(actor, details["properties"]);
+ }
+ if (details["links"]) {
+ insertLinks(actor, details["links"]);
+ }
+ } catch (e) {
+ log.error("error while parsing actor details text", e);
+ }
+};
+const getActorProperty = function(actor, key) {
+ if (actor !== void 0 && actor.properties !== void 0) {
+ return actor.properties[key];
+ }
+ return void 0;
+};
+const apply = function(param) {
+ if (Array.isArray(param)) {
+ param.forEach(function(item) {
+ apply(item);
+ });
+ } else {
+ switch (param.type) {
+ case "sequenceIndex":
+ messages.push({
+ from: void 0,
+ to: void 0,
+ message: {
+ start: param.sequenceIndex,
+ step: param.sequenceIndexStep,
+ visible: param.sequenceVisible
+ },
+ wrap: false,
+ type: param.signalType
+ });
+ break;
+ case "addParticipant":
+ addActor(param.actor, param.actor, param.description, "participant");
+ break;
+ case "addActor":
+ addActor(param.actor, param.actor, param.description, "actor");
+ break;
+ case "activeStart":
+ addSignal(param.actor, void 0, void 0, param.signalType);
+ break;
+ case "activeEnd":
+ addSignal(param.actor, void 0, void 0, param.signalType);
+ break;
+ case "addNote":
+ addNote(param.actor, param.placement, param.text);
+ break;
+ case "addLinks":
+ addLinks(param.actor, param.text);
+ break;
+ case "addALink":
+ addALink(param.actor, param.text);
+ break;
+ case "addProperties":
+ addProperties(param.actor, param.text);
+ break;
+ case "addDetails":
+ addDetails(param.actor, param.text);
+ break;
+ case "addMessage":
+ addSignal(param.from, param.to, param.msg, param.signalType);
+ break;
+ case "boxStart":
+ addBox(param.boxData);
+ break;
+ case "boxEnd":
+ boxEnd();
+ break;
+ case "loopStart":
+ addSignal(void 0, void 0, param.loopText, param.signalType);
+ break;
+ case "loopEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "rectStart":
+ addSignal(void 0, void 0, param.color, param.signalType);
+ break;
+ case "rectEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "optStart":
+ addSignal(void 0, void 0, param.optText, param.signalType);
+ break;
+ case "optEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "altStart":
+ addSignal(void 0, void 0, param.altText, param.signalType);
+ break;
+ case "else":
+ addSignal(void 0, void 0, param.altText, param.signalType);
+ break;
+ case "altEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "setAccTitle":
+ setAccTitle(param.text);
+ break;
+ case "parStart":
+ addSignal(void 0, void 0, param.parText, param.signalType);
+ break;
+ case "and":
+ addSignal(void 0, void 0, param.parText, param.signalType);
+ break;
+ case "parEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "criticalStart":
+ addSignal(void 0, void 0, param.criticalText, param.signalType);
+ break;
+ case "option":
+ addSignal(void 0, void 0, param.optionText, param.signalType);
+ break;
+ case "criticalEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "breakStart":
+ addSignal(void 0, void 0, param.breakText, param.signalType);
+ break;
+ case "breakEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ }
+ }
+};
+const db = {
+ addActor,
+ addMessage,
+ addSignal,
+ addLinks,
+ addDetails,
+ addProperties,
+ autoWrap,
+ setWrap,
+ enableSequenceNumbers,
+ disableSequenceNumbers,
+ showSequenceNumbers,
+ getMessages,
+ getActors,
+ getActor,
+ getActorKeys,
+ getActorProperty,
+ getAccTitle,
+ getBoxes,
+ getDiagramTitle,
+ setDiagramTitle,
+ parseDirective,
+ getConfig: () => getConfig().sequence,
+ clear,
+ parseMessage,
+ parseBoxData,
+ LINETYPE,
+ ARROWTYPE,
+ PLACEMENT,
+ addNote,
+ setAccTitle,
+ apply,
+ setAccDescription,
+ getAccDescription,
+ hasAtLeastOneBox,
+ hasAtLeastOneBoxWithTitle
+};
+const getStyles = (options) => `.actor {
+ stroke: ${options.actorBorder};
+ fill: ${options.actorBkg};
+ }
+
+ text.actor > tspan {
+ fill: ${options.actorTextColor};
+ stroke: none;
+ }
+
+ .actor-line {
+ stroke: ${options.actorLineColor};
+ }
+
+ .messageLine0 {
+ stroke-width: 1.5;
+ stroke-dasharray: none;
+ stroke: ${options.signalColor};
+ }
+
+ .messageLine1 {
+ stroke-width: 1.5;
+ stroke-dasharray: 2, 2;
+ stroke: ${options.signalColor};
+ }
+
+ #arrowhead path {
+ fill: ${options.signalColor};
+ stroke: ${options.signalColor};
+ }
+
+ .sequenceNumber {
+ fill: ${options.sequenceNumberColor};
+ }
+
+ #sequencenumber {
+ fill: ${options.signalColor};
+ }
+
+ #crosshead path {
+ fill: ${options.signalColor};
+ stroke: ${options.signalColor};
+ }
+
+ .messageText {
+ fill: ${options.signalTextColor};
+ stroke: none;
+ }
+
+ .labelBox {
+ stroke: ${options.labelBoxBorderColor};
+ fill: ${options.labelBoxBkgColor};
+ }
+
+ .labelText, .labelText > tspan {
+ fill: ${options.labelTextColor};
+ stroke: none;
+ }
+
+ .loopText, .loopText > tspan {
+ fill: ${options.loopTextColor};
+ stroke: none;
+ }
+
+ .loopLine {
+ stroke-width: 2px;
+ stroke-dasharray: 2, 2;
+ stroke: ${options.labelBoxBorderColor};
+ fill: ${options.labelBoxBorderColor};
+ }
+
+ .note {
+ //stroke: #decc93;
+ stroke: ${options.noteBorderColor};
+ fill: ${options.noteBkgColor};
+ }
+
+ .noteText, .noteText > tspan {
+ fill: ${options.noteTextColor};
+ stroke: none;
+ }
+
+ .activation0 {
+ fill: ${options.activationBkgColor};
+ stroke: ${options.activationBorderColor};
+ }
+
+ .activation1 {
+ fill: ${options.activationBkgColor};
+ stroke: ${options.activationBorderColor};
+ }
+
+ .activation2 {
+ fill: ${options.activationBkgColor};
+ stroke: ${options.activationBorderColor};
+ }
+
+ .actorPopupMenu {
+ position: absolute;
+ }
+
+ .actorPopupMenuPanel {
+ position: absolute;
+ fill: ${options.actorBkg};
+ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
+ filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));
+}
+ .actor-man line {
+ stroke: ${options.actorBorder};
+ fill: ${options.actorBkg};
+ }
+ .actor-man circle, line {
+ stroke: ${options.actorBorder};
+ fill: ${options.actorBkg};
+ stroke-width: 2px;
+ }
+`;
+const styles = getStyles;
+const drawRect = function(elem, rectData) {
+ const rectElem = elem.append("rect");
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.y);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", rectData.width);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (rectData.class !== void 0) {
+ rectElem.attr("class", rectData.class);
+ }
+ return rectElem;
+};
+const addPopupInteraction = (id, actorCnt2) => {
+ addFunction(() => {
+ const arr = document.querySelectorAll(id);
+ if (arr.length === 0) {
+ return;
+ }
+ arr[0].addEventListener("mouseover", function() {
+ popupMenuUpFunc("actor" + actorCnt2 + "_popup");
+ });
+ arr[0].addEventListener("mouseout", function() {
+ popupMenuDownFunc("actor" + actorCnt2 + "_popup");
+ });
+ });
+};
+const drawPopup = function(elem, actor, minMenuWidth, textAttrs, forceMenus) {
+ if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) {
+ return { height: 0, width: 0 };
+ }
+ const links = actor.links;
+ const actorCnt2 = actor.actorCnt;
+ const rectData = actor.rectData;
+ var displayValue = "none";
+ if (forceMenus) {
+ displayValue = "block !important";
+ }
+ const g = elem.append("g");
+ g.attr("id", "actor" + actorCnt2 + "_popup");
+ g.attr("class", "actorPopupMenu");
+ g.attr("display", displayValue);
+ addPopupInteraction("#actor" + actorCnt2 + "_popup", actorCnt2);
+ var actorClass = "";
+ if (rectData.class !== void 0) {
+ actorClass = " " + rectData.class;
+ }
+ let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth;
+ const rectElem = g.append("rect");
+ rectElem.attr("class", "actorPopupMenuPanel" + actorClass);
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.height);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", menuWidth);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (links != null) {
+ var linkY = 20;
+ for (let key in links) {
+ var linkElem = g.append("a");
+ var sanitizedLink = sanitizeUrl_1(links[key]);
+ linkElem.attr("xlink:href", sanitizedLink);
+ linkElem.attr("target", "_blank");
+ _drawMenuItemTextCandidateFunc(textAttrs)(
+ key,
+ linkElem,
+ rectData.x + 10,
+ rectData.height + linkY,
+ menuWidth,
+ 20,
+ { class: "actor" },
+ textAttrs
+ );
+ linkY += 30;
+ }
+ }
+ rectElem.attr("height", linkY);
+ return { height: rectData.height + linkY, width: menuWidth };
+};
+const drawImage = function(elem, x, y, link) {
+ const imageElem = elem.append("image");
+ imageElem.attr("x", x);
+ imageElem.attr("y", y);
+ var sanitizedLink = sanitizeUrl_1(link);
+ imageElem.attr("xlink:href", sanitizedLink);
+};
+const drawEmbeddedImage = function(elem, x, y, link) {
+ const imageElem = elem.append("use");
+ imageElem.attr("x", x);
+ imageElem.attr("y", y);
+ var sanitizedLink = sanitizeUrl_1(link);
+ imageElem.attr("xlink:href", "#" + sanitizedLink);
+};
+const popupMenu = function(popid) {
+ return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'block'; }";
+};
+const popdownMenu = function(popid) {
+ return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'none'; }";
+};
+const popupMenuUpFunc = function(popupId) {
+ var pu = document.getElementById(popupId);
+ if (pu != null) {
+ pu.style.display = "block";
+ }
+};
+const popupMenuDownFunc = function(popupId) {
+ var pu = document.getElementById(popupId);
+ if (pu != null) {
+ pu.style.display = "none";
+ }
+};
+const drawText = function(elem, textData) {
+ let prevTextHeight = 0, textHeight = 0;
+ const lines = textData.text.split(common.lineBreakRegex);
+ const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize);
+ let textElems = [];
+ let dy = 0;
+ let yfunc = () => textData.y;
+ if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {
+ switch (textData.valign) {
+ case "top":
+ case "start":
+ yfunc = () => Math.round(textData.y + textData.textMargin);
+ break;
+ case "middle":
+ case "center":
+ yfunc = () => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);
+ break;
+ case "bottom":
+ case "end":
+ yfunc = () => Math.round(
+ textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin
+ );
+ break;
+ }
+ }
+ if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) {
+ switch (textData.anchor) {
+ case "left":
+ case "start":
+ textData.x = Math.round(textData.x + textData.textMargin);
+ textData.anchor = "start";
+ textData.dominantBaseline = "middle";
+ textData.alignmentBaseline = "middle";
+ break;
+ case "middle":
+ case "center":
+ textData.x = Math.round(textData.x + textData.width / 2);
+ textData.anchor = "middle";
+ textData.dominantBaseline = "middle";
+ textData.alignmentBaseline = "middle";
+ break;
+ case "right":
+ case "end":
+ textData.x = Math.round(textData.x + textData.width - textData.textMargin);
+ textData.anchor = "end";
+ textData.dominantBaseline = "middle";
+ textData.alignmentBaseline = "middle";
+ break;
+ }
+ }
+ for (let [i, line] of lines.entries()) {
+ if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) {
+ dy = i * _textFontSize;
+ }
+ const textElem = elem.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", yfunc());
+ if (textData.anchor !== void 0) {
+ textElem.attr("text-anchor", textData.anchor).attr("dominant-baseline", textData.dominantBaseline).attr("alignment-baseline", textData.alignmentBaseline);
+ }
+ if (textData.fontFamily !== void 0) {
+ textElem.style("font-family", textData.fontFamily);
+ }
+ if (_textFontSizePx !== void 0) {
+ textElem.style("font-size", _textFontSizePx);
+ }
+ if (textData.fontWeight !== void 0) {
+ textElem.style("font-weight", textData.fontWeight);
+ }
+ if (textData.fill !== void 0) {
+ textElem.attr("fill", textData.fill);
+ }
+ if (textData.class !== void 0) {
+ textElem.attr("class", textData.class);
+ }
+ if (textData.dy !== void 0) {
+ textElem.attr("dy", textData.dy);
+ } else if (dy !== 0) {
+ textElem.attr("dy", dy);
+ }
+ if (textData.tspan) {
+ const span = textElem.append("tspan");
+ span.attr("x", textData.x);
+ if (textData.fill !== void 0) {
+ span.attr("fill", textData.fill);
+ }
+ span.text(line);
+ } else {
+ textElem.text(line);
+ }
+ if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {
+ textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
+ prevTextHeight = textHeight;
+ }
+ textElems.push(textElem);
+ }
+ return textElems;
+};
+const drawLabel = function(elem, txtObject) {
+ function genPoints(x, y, width, height, cut) {
+ return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height);
+ }
+ const polygon = elem.append("polygon");
+ polygon.attr("points", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));
+ polygon.attr("class", "labelBox");
+ txtObject.y = txtObject.y + txtObject.height / 2;
+ drawText(elem, txtObject);
+ return polygon;
+};
+let actorCnt = -1;
+const fixLifeLineHeights = (diagram2, bounds2) => {
+ if (!diagram2.selectAll) {
+ return;
+ }
+ diagram2.selectAll(".actor-line").attr("class", "200").attr("y2", bounds2 - 55);
+};
+const drawActorTypeParticipant = function(elem, actor, conf2, isFooter) {
+ const center = actor.x + actor.width / 2;
+ const centerY = actor.y + 5;
+ const boxpluslineGroup = elem.append("g");
+ var g = boxpluslineGroup;
+ if (!isFooter) {
+ actorCnt++;
+ g.append("line").attr("id", "actor" + actorCnt).attr("x1", center).attr("y1", centerY).attr("x2", center).attr("y2", 2e3).attr("class", "actor-line").attr("stroke-width", "0.5px").attr("stroke", "#999");
+ g = boxpluslineGroup.append("g");
+ actor.actorCnt = actorCnt;
+ if (actor.links != null) {
+ g.attr("id", "root-" + actorCnt);
+ addPopupInteraction("#root-" + actorCnt, actorCnt);
+ }
+ }
+ const rect = getNoteRect();
+ var cssclass = "actor";
+ if (actor.properties != null && actor.properties["class"]) {
+ cssclass = actor.properties["class"];
+ } else {
+ rect.fill = "#eaeaea";
+ }
+ rect.x = actor.x;
+ rect.y = actor.y;
+ rect.width = actor.width;
+ rect.height = actor.height;
+ rect.class = cssclass;
+ rect.rx = 3;
+ rect.ry = 3;
+ const rectElem = drawRect(g, rect);
+ actor.rectData = rect;
+ if (actor.properties != null && actor.properties["icon"]) {
+ const iconSrc = actor.properties["icon"].trim();
+ if (iconSrc.charAt(0) === "@") {
+ drawEmbeddedImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc.substr(1));
+ } else {
+ drawImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc);
+ }
+ }
+ _drawTextCandidateFunc(conf2)(
+ actor.description,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "actor" },
+ conf2
+ );
+ let height = actor.height;
+ if (rectElem.node) {
+ const bounds2 = rectElem.node().getBBox();
+ actor.height = bounds2.height;
+ height = bounds2.height;
+ }
+ return height;
+};
+const drawActorTypeActor = function(elem, actor, conf2, isFooter) {
+ const center = actor.x + actor.width / 2;
+ const centerY = actor.y + 80;
+ if (!isFooter) {
+ actorCnt++;
+ elem.append("line").attr("id", "actor" + actorCnt).attr("x1", center).attr("y1", centerY).attr("x2", center).attr("y2", 2e3).attr("class", "actor-line").attr("stroke-width", "0.5px").attr("stroke", "#999");
+ }
+ const actElem = elem.append("g");
+ actElem.attr("class", "actor-man");
+ const rect = getNoteRect();
+ rect.x = actor.x;
+ rect.y = actor.y;
+ rect.fill = "#eaeaea";
+ rect.width = actor.width;
+ rect.height = actor.height;
+ rect.class = "actor";
+ rect.rx = 3;
+ rect.ry = 3;
+ actElem.append("line").attr("id", "actor-man-torso" + actorCnt).attr("x1", center).attr("y1", actor.y + 25).attr("x2", center).attr("y2", actor.y + 45);
+ actElem.append("line").attr("id", "actor-man-arms" + actorCnt).attr("x1", center - 18).attr("y1", actor.y + 33).attr("x2", center + 18).attr("y2", actor.y + 33);
+ actElem.append("line").attr("x1", center - 18).attr("y1", actor.y + 60).attr("x2", center).attr("y2", actor.y + 45);
+ actElem.append("line").attr("x1", center).attr("y1", actor.y + 45).attr("x2", center + 16).attr("y2", actor.y + 60);
+ const circle = actElem.append("circle");
+ circle.attr("cx", actor.x + actor.width / 2);
+ circle.attr("cy", actor.y + 10);
+ circle.attr("r", 15);
+ circle.attr("width", actor.width);
+ circle.attr("height", actor.height);
+ const bounds2 = actElem.node().getBBox();
+ actor.height = bounds2.height;
+ _drawTextCandidateFunc(conf2)(
+ actor.description,
+ actElem,
+ rect.x,
+ rect.y + 35,
+ rect.width,
+ rect.height,
+ { class: "actor" },
+ conf2
+ );
+ return actor.height;
+};
+const drawActor = function(elem, actor, conf2, isFooter) {
+ switch (actor.type) {
+ case "actor":
+ return drawActorTypeActor(elem, actor, conf2, isFooter);
+ case "participant":
+ return drawActorTypeParticipant(elem, actor, conf2, isFooter);
+ }
+};
+const drawBox = function(elem, box, conf2) {
+ const boxplustextGroup = elem.append("g");
+ const g = boxplustextGroup;
+ drawBackgroundRect(g, box);
+ if (box.name) {
+ _drawTextCandidateFunc(conf2)(
+ box.name,
+ g,
+ box.x,
+ box.y + (box.textMaxHeight || 0) / 2,
+ box.width,
+ 0,
+ { class: "text" },
+ conf2
+ );
+ }
+ g.lower();
+};
+const anchorElement = function(elem) {
+ return elem.append("g");
+};
+const drawActivation = function(elem, bounds2, verticalPos, conf2, actorActivations2) {
+ const rect = getNoteRect();
+ const g = bounds2.anchored;
+ rect.x = bounds2.startx;
+ rect.y = bounds2.starty;
+ rect.class = "activation" + actorActivations2 % 3;
+ rect.width = bounds2.stopx - bounds2.startx;
+ rect.height = verticalPos - bounds2.starty;
+ drawRect(g, rect);
+};
+const drawLoop = function(elem, loopModel, labelText, conf2) {
+ const {
+ boxMargin,
+ boxTextMargin,
+ labelBoxHeight,
+ labelBoxWidth,
+ messageFontFamily: fontFamily,
+ messageFontSize: fontSize,
+ messageFontWeight: fontWeight
+ } = conf2;
+ const g = elem.append("g");
+ const drawLoopLine = function(startx, starty, stopx, stopy) {
+ return g.append("line").attr("x1", startx).attr("y1", starty).attr("x2", stopx).attr("y2", stopy).attr("class", "loopLine");
+ };
+ drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);
+ drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);
+ drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);
+ drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);
+ if (loopModel.sections !== void 0) {
+ loopModel.sections.forEach(function(item) {
+ drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style(
+ "stroke-dasharray",
+ "3, 3"
+ );
+ });
+ }
+ let txt = getTextObj();
+ txt.text = labelText;
+ txt.x = loopModel.startx;
+ txt.y = loopModel.starty;
+ txt.fontFamily = fontFamily;
+ txt.fontSize = fontSize;
+ txt.fontWeight = fontWeight;
+ txt.anchor = "middle";
+ txt.valign = "middle";
+ txt.tspan = false;
+ txt.width = labelBoxWidth || 50;
+ txt.height = labelBoxHeight || 20;
+ txt.textMargin = boxTextMargin;
+ txt.class = "labelText";
+ drawLabel(g, txt);
+ txt = getTextObj();
+ txt.text = loopModel.title;
+ txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;
+ txt.y = loopModel.starty + boxMargin + boxTextMargin;
+ txt.anchor = "middle";
+ txt.valign = "middle";
+ txt.textMargin = boxTextMargin;
+ txt.class = "loopText";
+ txt.fontFamily = fontFamily;
+ txt.fontSize = fontSize;
+ txt.fontWeight = fontWeight;
+ txt.wrap = true;
+ let textElem = drawText(g, txt);
+ if (loopModel.sectionTitles !== void 0) {
+ loopModel.sectionTitles.forEach(function(item, idx) {
+ if (item.message) {
+ txt.text = item.message;
+ txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;
+ txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;
+ txt.class = "loopText";
+ txt.anchor = "middle";
+ txt.valign = "middle";
+ txt.tspan = false;
+ txt.fontFamily = fontFamily;
+ txt.fontSize = fontSize;
+ txt.fontWeight = fontWeight;
+ txt.wrap = loopModel.wrap;
+ textElem = drawText(g, txt);
+ let sectionHeight = Math.round(
+ textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)
+ );
+ loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);
+ }
+ });
+ }
+ loopModel.height = Math.round(loopModel.stopy - loopModel.starty);
+ return g;
+};
+const drawBackgroundRect = function(elem, bounds2) {
+ const rectElem = drawRect(elem, {
+ x: bounds2.startx,
+ y: bounds2.starty,
+ width: bounds2.stopx - bounds2.startx,
+ height: bounds2.stopy - bounds2.starty,
+ fill: bounds2.fill,
+ stroke: bounds2.stroke,
+ class: "rect"
+ });
+ rectElem.lower();
+};
+const insertDatabaseIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
+ );
+};
+const insertComputerIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
+ );
+};
+const insertClockIcon = function(elem) {
+ elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
+ );
+};
+const insertArrowHead = function(elem) {
+ elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z");
+};
+const insertArrowFilledHead = function(elem) {
+ elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).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");
+};
+const insertSequenceNumber = function(elem) {
+ elem.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);
+};
+const insertArrowCrossHead = function(elem) {
+ const defs = elem.append("defs");
+ const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 4).attr("refY", 5);
+ marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1pt").attr("d", "M 1,2 L 6,7 M 6,2 L 1,7");
+};
+const getTextObj = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ anchor: void 0,
+ style: "#666",
+ width: void 0,
+ height: void 0,
+ textMargin: 0,
+ rx: 0,
+ ry: 0,
+ tspan: true,
+ valign: void 0
+ };
+};
+const getNoteRect = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: "#EDF2AE",
+ stroke: "#666",
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+};
+const _drawTextCandidateFunc = function() {
+ function byText(content, g, x, y, width, height, textAttrs) {
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text, textAttrs);
+ }
+ function byTspan(content, g, x, y, width, height, textAttrs, conf2) {
+ const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;
+ const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize);
+ const lines = content.split(common.lineBreakRegex);
+ for (let i = 0; i < lines.length; i++) {
+ const dy = i * _actorFontSize - _actorFontSize * (lines.length - 1) / 2;
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y).style("text-anchor", "middle").style("font-size", _actorFontSizePx).style("font-weight", actorFontWeight).style("font-family", actorFontFamily);
+ text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]);
+ text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text, textAttrs);
+ }
+ }
+ function byFo(content, g, x, y, width, height, textAttrs, conf2) {
+ const s = g.append("switch");
+ const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height);
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, s, x, y, width, height, textAttrs, conf2);
+ _setTextAttrs(text, textAttrs);
+ }
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (fromTextAttrsDict.hasOwnProperty(key)) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ return function(conf2) {
+ return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
+ };
+}();
+const _drawMenuItemTextCandidateFunc = function() {
+ function byText(content, g, x, y, width, height, textAttrs) {
+ const text = g.append("text").attr("x", x).attr("y", y).style("text-anchor", "start").text(content);
+ _setTextAttrs(text, textAttrs);
+ }
+ function byTspan(content, g, x, y, width, height, textAttrs, conf2) {
+ const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;
+ const lines = content.split(common.lineBreakRegex);
+ for (let i = 0; i < lines.length; i++) {
+ const dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2;
+ const text = g.append("text").attr("x", x).attr("y", y).style("text-anchor", "start").style("font-size", actorFontSize).style("font-weight", actorFontWeight).style("font-family", actorFontFamily);
+ text.append("tspan").attr("x", x).attr("dy", dy).text(lines[i]);
+ text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text, textAttrs);
+ }
+ }
+ function byFo(content, g, x, y, width, height, textAttrs, conf2) {
+ const s = g.append("switch");
+ const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height);
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, s, x, y, width, height, textAttrs, conf2);
+ _setTextAttrs(text, textAttrs);
+ }
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (fromTextAttrsDict.hasOwnProperty(key)) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ return function(conf2) {
+ return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
+ };
+}();
+const svgDraw = {
+ drawRect,
+ drawText,
+ drawLabel,
+ drawActor,
+ drawBox,
+ drawPopup,
+ drawImage,
+ drawEmbeddedImage,
+ anchorElement,
+ drawActivation,
+ drawLoop,
+ drawBackgroundRect,
+ insertArrowHead,
+ insertArrowFilledHead,
+ insertSequenceNumber,
+ insertArrowCrossHead,
+ insertDatabaseIcon,
+ insertComputerIcon,
+ insertClockIcon,
+ getTextObj,
+ getNoteRect,
+ popupMenu,
+ popdownMenu,
+ fixLifeLineHeights,
+ sanitizeUrl: sanitizeUrl_1
+};
+let conf = {};
+const bounds = {
+ data: {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ },
+ verticalPos: 0,
+ sequenceItems: [],
+ activations: [],
+ models: {
+ getHeight: function() {
+ return Math.max.apply(
+ null,
+ this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0)
+ ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h) => acc + h));
+ },
+ clear: function() {
+ this.actors = [];
+ this.boxes = [];
+ this.loops = [];
+ this.messages = [];
+ this.notes = [];
+ },
+ addBox: function(boxModel) {
+ this.boxes.push(boxModel);
+ },
+ addActor: function(actorModel) {
+ this.actors.push(actorModel);
+ },
+ addLoop: function(loopModel) {
+ this.loops.push(loopModel);
+ },
+ addMessage: function(msgModel) {
+ this.messages.push(msgModel);
+ },
+ addNote: function(noteModel) {
+ this.notes.push(noteModel);
+ },
+ lastActor: function() {
+ return this.actors[this.actors.length - 1];
+ },
+ lastLoop: function() {
+ return this.loops[this.loops.length - 1];
+ },
+ lastMessage: function() {
+ return this.messages[this.messages.length - 1];
+ },
+ lastNote: function() {
+ return this.notes[this.notes.length - 1];
+ },
+ actors: [],
+ boxes: [],
+ loops: [],
+ messages: [],
+ notes: []
+ },
+ init: function() {
+ this.sequenceItems = [];
+ this.activations = [];
+ this.models.clear();
+ this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ };
+ this.verticalPos = 0;
+ setConf(getConfig());
+ },
+ updateVal: function(obj, key, val, fun) {
+ if (obj[key] === void 0) {
+ obj[key] = val;
+ } else {
+ obj[key] = fun(val, obj[key]);
+ }
+ },
+ updateBounds: function(startx, starty, stopx, stopy) {
+ const _self = this;
+ let cnt = 0;
+ function updateFn(type) {
+ return function updateItemBounds(item) {
+ cnt++;
+ const n = _self.sequenceItems.length - cnt + 1;
+ _self.updateVal(item, "starty", starty - n * conf.boxMargin, Math.min);
+ _self.updateVal(item, "stopy", stopy + n * conf.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "startx", startx - n * conf.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopx", stopx + n * conf.boxMargin, Math.max);
+ if (!(type === "activation")) {
+ _self.updateVal(item, "startx", startx - n * conf.boxMargin, Math.min);
+ _self.updateVal(item, "stopx", stopx + n * conf.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "starty", starty - n * conf.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopy", stopy + n * conf.boxMargin, Math.max);
+ }
+ };
+ }
+ this.sequenceItems.forEach(updateFn());
+ this.activations.forEach(updateFn("activation"));
+ },
+ insert: function(startx, starty, stopx, stopy) {
+ const _startx = Math.min(startx, stopx);
+ const _stopx = Math.max(startx, stopx);
+ const _starty = Math.min(starty, stopy);
+ const _stopy = Math.max(starty, stopy);
+ this.updateVal(bounds.data, "startx", _startx, Math.min);
+ this.updateVal(bounds.data, "starty", _starty, Math.min);
+ this.updateVal(bounds.data, "stopx", _stopx, Math.max);
+ this.updateVal(bounds.data, "stopy", _stopy, Math.max);
+ this.updateBounds(_startx, _starty, _stopx, _stopy);
+ },
+ newActivation: function(message, diagram2, actors2) {
+ const actorRect = actors2[message.from.actor];
+ const stackedSize = actorActivations(message.from.actor).length || 0;
+ const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
+ this.activations.push({
+ startx: x,
+ starty: this.verticalPos + 2,
+ stopx: x + conf.activationWidth,
+ stopy: void 0,
+ actor: message.from.actor,
+ anchored: svgDraw.anchorElement(diagram2)
+ });
+ },
+ endActivation: function(message) {
+ const lastActorActivationIdx = this.activations.map(function(activation) {
+ return activation.actor;
+ }).lastIndexOf(message.from.actor);
+ return this.activations.splice(lastActorActivationIdx, 1)[0];
+ },
+ createLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) {
+ return {
+ startx: void 0,
+ starty: this.verticalPos,
+ stopx: void 0,
+ stopy: void 0,
+ title: title.message,
+ wrap: title.wrap,
+ width: title.width,
+ height: 0,
+ fill
+ };
+ },
+ newLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) {
+ this.sequenceItems.push(this.createLoop(title, fill));
+ },
+ endLoop: function() {
+ return this.sequenceItems.pop();
+ },
+ addSectionToLoop: function(message) {
+ const loop = this.sequenceItems.pop();
+ loop.sections = loop.sections || [];
+ loop.sectionTitles = loop.sectionTitles || [];
+ loop.sections.push({ y: bounds.getVerticalPos(), height: 0 });
+ loop.sectionTitles.push(message);
+ this.sequenceItems.push(loop);
+ },
+ bumpVerticalPos: function(bump) {
+ this.verticalPos = this.verticalPos + bump;
+ this.data.stopy = this.verticalPos;
+ },
+ getVerticalPos: function() {
+ return this.verticalPos;
+ },
+ getBounds: function() {
+ return { bounds: this.data, models: this.models };
+ }
+};
+const drawNote = function(elem, noteModel) {
+ bounds.bumpVerticalPos(conf.boxMargin);
+ noteModel.height = conf.boxMargin;
+ noteModel.starty = bounds.getVerticalPos();
+ const rect = svgDraw.getNoteRect();
+ rect.x = noteModel.startx;
+ rect.y = noteModel.starty;
+ rect.width = noteModel.width || conf.width;
+ rect.class = "note";
+ const g = elem.append("g");
+ const rectElem = svgDraw.drawRect(g, rect);
+ const textObj = svgDraw.getTextObj();
+ textObj.x = noteModel.startx;
+ textObj.y = noteModel.starty;
+ textObj.width = rect.width;
+ textObj.dy = "1em";
+ textObj.text = noteModel.message;
+ textObj.class = "noteText";
+ textObj.fontFamily = conf.noteFontFamily;
+ textObj.fontSize = conf.noteFontSize;
+ textObj.fontWeight = conf.noteFontWeight;
+ textObj.anchor = conf.noteAlign;
+ textObj.textMargin = conf.noteMargin;
+ textObj.valign = "center";
+ const textElem = drawText(g, textObj);
+ const textHeight = Math.round(
+ textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)
+ );
+ rectElem.attr("height", textHeight + 2 * conf.noteMargin);
+ noteModel.height += textHeight + 2 * conf.noteMargin;
+ bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);
+ noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin;
+ noteModel.stopx = noteModel.startx + rect.width;
+ bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);
+ bounds.models.addNote(noteModel);
+};
+const messageFont = (cnf) => {
+ return {
+ fontFamily: cnf.messageFontFamily,
+ fontSize: cnf.messageFontSize,
+ fontWeight: cnf.messageFontWeight
+ };
+};
+const noteFont = (cnf) => {
+ return {
+ fontFamily: cnf.noteFontFamily,
+ fontSize: cnf.noteFontSize,
+ fontWeight: cnf.noteFontWeight
+ };
+};
+const actorFont = (cnf) => {
+ return {
+ fontFamily: cnf.actorFontFamily,
+ fontSize: cnf.actorFontSize,
+ fontWeight: cnf.actorFontWeight
+ };
+};
+function boundMessage(_diagram, msgModel) {
+ bounds.bumpVerticalPos(10);
+ const { startx, stopx, message } = msgModel;
+ const lines = common.splitBreaks(message).length;
+ const textDims = utils.calculateTextDimensions(message, messageFont(conf));
+ const lineHeight = textDims.height / lines;
+ msgModel.height += lineHeight;
+ bounds.bumpVerticalPos(lineHeight);
+ let lineStartY;
+ let totalOffset = textDims.height - 10;
+ const textWidth = textDims.width;
+ if (startx === stopx) {
+ lineStartY = bounds.getVerticalPos() + totalOffset;
+ if (!conf.rightAngles) {
+ totalOffset += conf.boxMargin;
+ lineStartY = bounds.getVerticalPos() + totalOffset;
+ }
+ totalOffset += 30;
+ const dx = Math.max(textWidth / 2, conf.width / 2);
+ bounds.insert(
+ startx - dx,
+ bounds.getVerticalPos() - 10 + totalOffset,
+ stopx + dx,
+ bounds.getVerticalPos() + 30 + totalOffset
+ );
+ } else {
+ totalOffset += conf.boxMargin;
+ lineStartY = bounds.getVerticalPos() + totalOffset;
+ bounds.insert(startx, lineStartY - 10, stopx, lineStartY);
+ }
+ bounds.bumpVerticalPos(totalOffset);
+ msgModel.height += totalOffset;
+ msgModel.stopy = msgModel.starty + msgModel.height;
+ bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);
+ return lineStartY;
+}
+const drawMessage = function(diagram2, msgModel, lineStartY, diagObj) {
+ const { startx, stopx, starty, message, type, sequenceIndex, sequenceVisible } = msgModel;
+ const textDims = utils.calculateTextDimensions(message, messageFont(conf));
+ const textObj = svgDraw.getTextObj();
+ textObj.x = startx;
+ textObj.y = starty + 10;
+ textObj.width = stopx - startx;
+ textObj.class = "messageText";
+ textObj.dy = "1em";
+ textObj.text = message;
+ textObj.fontFamily = conf.messageFontFamily;
+ textObj.fontSize = conf.messageFontSize;
+ textObj.fontWeight = conf.messageFontWeight;
+ textObj.anchor = conf.messageAlign;
+ textObj.valign = "center";
+ textObj.textMargin = conf.wrapPadding;
+ textObj.tspan = false;
+ drawText(diagram2, textObj);
+ const textWidth = textDims.width;
+ let line;
+ if (startx === stopx) {
+ if (conf.rightAngles) {
+ line = diagram2.append("path").attr(
+ "d",
+ `M ${startx},${lineStartY} H ${startx + Math.max(conf.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}`
+ );
+ } else {
+ line = diagram2.append("path").attr(
+ "d",
+ "M " + startx + "," + lineStartY + " C " + (startx + 60) + "," + (lineStartY - 10) + " " + (startx + 60) + "," + (lineStartY + 30) + " " + startx + "," + (lineStartY + 20)
+ );
+ }
+ } else {
+ line = diagram2.append("line");
+ line.attr("x1", startx);
+ line.attr("y1", lineStartY);
+ line.attr("x2", stopx);
+ line.attr("y2", lineStartY);
+ }
+ if (type === diagObj.db.LINETYPE.DOTTED || type === diagObj.db.LINETYPE.DOTTED_CROSS || type === diagObj.db.LINETYPE.DOTTED_POINT || type === diagObj.db.LINETYPE.DOTTED_OPEN) {
+ line.style("stroke-dasharray", "3, 3");
+ line.attr("class", "messageLine1");
+ } else {
+ line.attr("class", "messageLine0");
+ }
+ let url = "";
+ if (conf.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ line.attr("stroke-width", 2);
+ line.attr("stroke", "none");
+ line.style("fill", "none");
+ if (type === diagObj.db.LINETYPE.SOLID || type === diagObj.db.LINETYPE.DOTTED) {
+ line.attr("marker-end", "url(" + url + "#arrowhead)");
+ }
+ if (type === diagObj.db.LINETYPE.SOLID_POINT || type === diagObj.db.LINETYPE.DOTTED_POINT) {
+ line.attr("marker-end", "url(" + url + "#filled-head)");
+ }
+ if (type === diagObj.db.LINETYPE.SOLID_CROSS || type === diagObj.db.LINETYPE.DOTTED_CROSS) {
+ line.attr("marker-end", "url(" + url + "#crosshead)");
+ }
+ if (sequenceVisible || conf.showSequenceNumbers) {
+ line.attr("marker-start", "url(" + url + "#sequencenumber)");
+ diagram2.append("text").attr("x", startx).attr("y", lineStartY + 4).attr("font-family", "sans-serif").attr("font-size", "12px").attr("text-anchor", "middle").attr("class", "sequenceNumber").text(sequenceIndex);
+ }
+};
+const drawActors = function(diagram2, actors2, actorKeys, verticalPos, configuration, messages2, isFooter) {
+ if (configuration.hideUnusedParticipants === true) {
+ const newActors = /* @__PURE__ */ new Set();
+ messages2.forEach((message) => {
+ newActors.add(message.from);
+ newActors.add(message.to);
+ });
+ actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey));
+ }
+ let prevWidth = 0;
+ let prevMargin = 0;
+ let maxHeight = 0;
+ let prevBox = void 0;
+ for (const actorKey of actorKeys) {
+ const actor = actors2[actorKey];
+ const box = actor.box;
+ if (prevBox && prevBox != box) {
+ if (!isFooter) {
+ bounds.models.addBox(prevBox);
+ }
+ prevMargin += conf.boxMargin + prevBox.margin;
+ }
+ if (box && box != prevBox) {
+ if (!isFooter) {
+ box.x = prevWidth + prevMargin;
+ box.y = verticalPos;
+ }
+ prevMargin += box.margin;
+ }
+ actor.width = actor.width || conf.width;
+ actor.height = Math.max(actor.height || conf.height, conf.height);
+ actor.margin = actor.margin || conf.actorMargin;
+ actor.x = prevWidth + prevMargin;
+ actor.y = bounds.getVerticalPos();
+ const height = svgDraw.drawActor(diagram2, actor, conf, isFooter);
+ maxHeight = Math.max(maxHeight, height);
+ bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);
+ prevWidth += actor.width + prevMargin;
+ if (actor.box) {
+ actor.box.width = prevWidth + box.margin - actor.box.x;
+ }
+ prevMargin = actor.margin;
+ prevBox = actor.box;
+ bounds.models.addActor(actor);
+ }
+ if (prevBox && !isFooter) {
+ bounds.models.addBox(prevBox);
+ }
+ bounds.bumpVerticalPos(maxHeight);
+};
+const drawActorsPopup = function(diagram2, actors2, actorKeys, doc) {
+ let maxHeight = 0;
+ let maxWidth = 0;
+ for (const actorKey of actorKeys) {
+ const actor = actors2[actorKey];
+ const minMenuWidth = getRequiredPopupWidth(actor);
+ const menuDimensions = svgDraw.drawPopup(
+ diagram2,
+ actor,
+ minMenuWidth,
+ conf,
+ conf.forceMenus,
+ doc
+ );
+ if (menuDimensions.height > maxHeight) {
+ maxHeight = menuDimensions.height;
+ }
+ if (menuDimensions.width + actor.x > maxWidth) {
+ maxWidth = menuDimensions.width + actor.x;
+ }
+ }
+ return { maxHeight, maxWidth };
+};
+const setConf = function(cnf) {
+ assignWithDepth(conf, cnf);
+ if (cnf.fontFamily) {
+ conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily;
+ }
+ if (cnf.fontSize) {
+ conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize;
+ }
+ if (cnf.fontWeight) {
+ conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight;
+ }
+};
+const actorActivations = function(actor) {
+ return bounds.activations.filter(function(activation) {
+ return activation.actor === actor;
+ });
+};
+const activationBounds = function(actor, actors2) {
+ const actorObj = actors2[actor];
+ const activations = actorActivations(actor);
+ const left = activations.reduce(function(acc, activation) {
+ return Math.min(acc, activation.startx);
+ }, actorObj.x + actorObj.width / 2);
+ const right = activations.reduce(function(acc, activation) {
+ return Math.max(acc, activation.stopx);
+ }, actorObj.x + actorObj.width / 2);
+ return [left, right];
+};
+function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {
+ bounds.bumpVerticalPos(preMargin);
+ let heightAdjust = postMargin;
+ if (msg.id && msg.message && loopWidths[msg.id]) {
+ const loopWidth = loopWidths[msg.id].width;
+ const textConf = messageFont(conf);
+ msg.message = utils.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf.wrapPadding, textConf);
+ msg.width = loopWidth;
+ msg.wrap = true;
+ const textDims = utils.calculateTextDimensions(msg.message, textConf);
+ const totalOffset = Math.max(textDims.height, conf.labelBoxHeight);
+ heightAdjust = postMargin + totalOffset;
+ log.debug(`${totalOffset} - ${msg.message}`);
+ }
+ addLoopFn(msg);
+ bounds.bumpVerticalPos(heightAdjust);
+}
+const draw = function(_text, id, _version, diagObj) {
+ const { securityLevel, sequence } = getConfig();
+ conf = sequence;
+ diagObj.db.clear();
+ diagObj.parser.parse(_text);
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ bounds.init();
+ log.debug(diagObj.db);
+ const diagram2 = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : select(`[id="${id}"]`);
+ const actors2 = diagObj.db.getActors();
+ const boxes2 = diagObj.db.getBoxes();
+ const actorKeys = diagObj.db.getActorKeys();
+ const messages2 = diagObj.db.getMessages();
+ const title = diagObj.db.getDiagramTitle();
+ const hasBoxes = diagObj.db.hasAtLeastOneBox();
+ const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle();
+ const maxMessageWidthPerActor = getMaxMessageWidthPerActor(actors2, messages2, diagObj);
+ conf.height = calculateActorMargins(actors2, maxMessageWidthPerActor, boxes2);
+ svgDraw.insertComputerIcon(diagram2);
+ svgDraw.insertDatabaseIcon(diagram2);
+ svgDraw.insertClockIcon(diagram2);
+ if (hasBoxes) {
+ bounds.bumpVerticalPos(conf.boxMargin);
+ if (hasBoxTitles) {
+ bounds.bumpVerticalPos(boxes2[0].textMaxHeight);
+ }
+ }
+ drawActors(diagram2, actors2, actorKeys, 0, conf, messages2, false);
+ const loopWidths = calculateLoopBounds(messages2, actors2, maxMessageWidthPerActor, diagObj);
+ svgDraw.insertArrowHead(diagram2);
+ svgDraw.insertArrowCrossHead(diagram2);
+ svgDraw.insertArrowFilledHead(diagram2);
+ svgDraw.insertSequenceNumber(diagram2);
+ function activeEnd(msg, verticalPos) {
+ const activationData = bounds.endActivation(msg);
+ if (activationData.starty + 18 > verticalPos) {
+ activationData.starty = verticalPos - 6;
+ verticalPos += 12;
+ }
+ svgDraw.drawActivation(
+ diagram2,
+ activationData,
+ verticalPos,
+ conf,
+ actorActivations(msg.from.actor).length
+ );
+ bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);
+ }
+ let sequenceIndex = 1;
+ let sequenceIndexStep = 1;
+ const messagesToDraw = [];
+ messages2.forEach(function(msg) {
+ let loopModel, noteModel, msgModel;
+ switch (msg.type) {
+ case diagObj.db.LINETYPE.NOTE:
+ noteModel = msg.noteModel;
+ drawNote(diagram2, noteModel);
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_START:
+ bounds.newActivation(msg, diagram2, actors2);
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_END:
+ activeEnd(msg, bounds.getVerticalPos());
+ break;
+ case diagObj.db.LINETYPE.LOOP_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.LOOP_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "loop", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.RECT_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin,
+ (message) => bounds.newLoop(void 0, message.message)
+ );
+ break;
+ case diagObj.db.LINETYPE.RECT_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawBackgroundRect(diagram2, loopModel);
+ bounds.models.addLoop(loopModel);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ break;
+ case diagObj.db.LINETYPE.OPT_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.OPT_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "opt", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.ALT_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.ALT_ELSE:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin + conf.boxTextMargin,
+ conf.boxMargin,
+ (message) => bounds.addSectionToLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.ALT_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "alt", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.PAR_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.PAR_AND:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin + conf.boxTextMargin,
+ conf.boxMargin,
+ (message) => bounds.addSectionToLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.PAR_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "par", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.AUTONUMBER:
+ sequenceIndex = msg.message.start || sequenceIndex;
+ sequenceIndexStep = msg.message.step || sequenceIndexStep;
+ if (msg.message.visible) {
+ diagObj.db.enableSequenceNumbers();
+ } else {
+ diagObj.db.disableSequenceNumbers();
+ }
+ break;
+ case diagObj.db.LINETYPE.CRITICAL_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.CRITICAL_OPTION:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin + conf.boxTextMargin,
+ conf.boxMargin,
+ (message) => bounds.addSectionToLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.CRITICAL_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "critical", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.BREAK_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf.boxMargin,
+ conf.boxMargin + conf.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.BREAK_END:
+ loopModel = bounds.endLoop();
+ svgDraw.drawLoop(diagram2, loopModel, "break", conf);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ default:
+ try {
+ msgModel = msg.msgModel;
+ msgModel.starty = bounds.getVerticalPos();
+ msgModel.sequenceIndex = sequenceIndex;
+ msgModel.sequenceVisible = diagObj.db.showSequenceNumbers();
+ const lineStartY = boundMessage(diagram2, msgModel);
+ messagesToDraw.push({ messageModel: msgModel, lineStartY });
+ bounds.models.addMessage(msgModel);
+ } catch (e) {
+ log.error("error while drawing message", e);
+ }
+ }
+ if ([
+ diagObj.db.LINETYPE.SOLID_OPEN,
+ diagObj.db.LINETYPE.DOTTED_OPEN,
+ diagObj.db.LINETYPE.SOLID,
+ diagObj.db.LINETYPE.DOTTED,
+ diagObj.db.LINETYPE.SOLID_CROSS,
+ diagObj.db.LINETYPE.DOTTED_CROSS,
+ diagObj.db.LINETYPE.SOLID_POINT,
+ diagObj.db.LINETYPE.DOTTED_POINT
+ ].includes(msg.type)) {
+ sequenceIndex = sequenceIndex + sequenceIndexStep;
+ }
+ });
+ messagesToDraw.forEach((e) => drawMessage(diagram2, e.messageModel, e.lineStartY, diagObj));
+ if (conf.mirrorActors) {
+ bounds.bumpVerticalPos(conf.boxMargin * 2);
+ drawActors(diagram2, actors2, actorKeys, bounds.getVerticalPos(), conf, messages2, true);
+ bounds.bumpVerticalPos(conf.boxMargin);
+ fixLifeLineHeights(diagram2, bounds.getVerticalPos());
+ }
+ bounds.models.boxes.forEach(function(box2) {
+ box2.height = bounds.getVerticalPos() - box2.y;
+ bounds.insert(box2.x, box2.y, box2.x + box2.width, box2.height);
+ box2.startx = box2.x;
+ box2.starty = box2.y;
+ box2.stopx = box2.startx + box2.width;
+ box2.stopy = box2.starty + box2.height;
+ box2.stroke = "rgb(0,0,0, 0.5)";
+ svgDraw.drawBox(diagram2, box2, conf);
+ });
+ if (hasBoxes) {
+ bounds.bumpVerticalPos(conf.boxMargin);
+ }
+ const requiredBoxSize = drawActorsPopup(diagram2, actors2, actorKeys, doc);
+ const { bounds: box } = bounds.getBounds();
+ log.debug("For line height fix Querying: #" + id + " .actor-line");
+ const actorLines = selectAll("#" + id + " .actor-line");
+ actorLines.attr("y2", box.stopy);
+ let boxHeight = box.stopy - box.starty;
+ if (boxHeight < requiredBoxSize.maxHeight) {
+ boxHeight = requiredBoxSize.maxHeight;
+ }
+ let height = boxHeight + 2 * conf.diagramMarginY;
+ if (conf.mirrorActors) {
+ height = height - conf.boxMargin + conf.bottomMarginAdj;
+ }
+ let boxWidth = box.stopx - box.startx;
+ if (boxWidth < requiredBoxSize.maxWidth) {
+ boxWidth = requiredBoxSize.maxWidth;
+ }
+ const width = boxWidth + 2 * conf.diagramMarginX;
+ if (title) {
+ diagram2.append("text").text(title).attr("x", (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr("y", -25);
+ }
+ configureSvgSize(diagram2, height, width, conf.useMaxWidth);
+ const extraVertForTitle = title ? 40 : 0;
+ diagram2.attr(
+ "viewBox",
+ box.startx - conf.diagramMarginX + " -" + (conf.diagramMarginY + extraVertForTitle) + " " + width + " " + (height + extraVertForTitle)
+ );
+ log.debug(`models:`, bounds.models);
+};
+function getMaxMessageWidthPerActor(actors2, messages2, diagObj) {
+ const maxMessageWidthPerActor = {};
+ messages2.forEach(function(msg) {
+ if (actors2[msg.to] && actors2[msg.from]) {
+ const actor = actors2[msg.to];
+ if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) {
+ return;
+ }
+ if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) {
+ return;
+ }
+ const isNote = msg.placement !== void 0;
+ const isMessage = !isNote;
+ const textFont = isNote ? noteFont(conf) : messageFont(conf);
+ const wrappedMessage = msg.wrap ? utils.wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message;
+ const messageDimensions = utils.calculateTextDimensions(wrappedMessage, textFont);
+ const messageWidth = messageDimensions.width + 2 * conf.wrapPadding;
+ if (isMessage && msg.from === actor.nextActor) {
+ maxMessageWidthPerActor[msg.to] = Math.max(
+ maxMessageWidthPerActor[msg.to] || 0,
+ messageWidth
+ );
+ } else if (isMessage && msg.from === actor.prevActor) {
+ maxMessageWidthPerActor[msg.from] = Math.max(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth
+ );
+ } else if (isMessage && msg.from === msg.to) {
+ maxMessageWidthPerActor[msg.from] = Math.max(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth / 2
+ );
+ maxMessageWidthPerActor[msg.to] = Math.max(
+ maxMessageWidthPerActor[msg.to] || 0,
+ messageWidth / 2
+ );
+ } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
+ maxMessageWidthPerActor[msg.from] = Math.max(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth
+ );
+ } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
+ maxMessageWidthPerActor[actor.prevActor] = Math.max(
+ maxMessageWidthPerActor[actor.prevActor] || 0,
+ messageWidth
+ );
+ } else if (msg.placement === diagObj.db.PLACEMENT.OVER) {
+ if (actor.prevActor) {
+ maxMessageWidthPerActor[actor.prevActor] = Math.max(
+ maxMessageWidthPerActor[actor.prevActor] || 0,
+ messageWidth / 2
+ );
+ }
+ if (actor.nextActor) {
+ maxMessageWidthPerActor[msg.from] = Math.max(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth / 2
+ );
+ }
+ }
+ }
+ });
+ log.debug("maxMessageWidthPerActor:", maxMessageWidthPerActor);
+ return maxMessageWidthPerActor;
+}
+const getRequiredPopupWidth = function(actor) {
+ let requiredPopupWidth = 0;
+ const textFont = actorFont(conf);
+ for (const key in actor.links) {
+ const labelDimensions = utils.calculateTextDimensions(key, textFont);
+ const labelWidth = labelDimensions.width + 2 * conf.wrapPadding + 2 * conf.boxMargin;
+ if (requiredPopupWidth < labelWidth) {
+ requiredPopupWidth = labelWidth;
+ }
+ }
+ return requiredPopupWidth;
+};
+function calculateActorMargins(actors2, actorToMessageWidth, boxes2) {
+ let maxHeight = 0;
+ Object.keys(actors2).forEach((prop) => {
+ const actor = actors2[prop];
+ if (actor.wrap) {
+ actor.description = utils.wrapLabel(
+ actor.description,
+ conf.width - 2 * conf.wrapPadding,
+ actorFont(conf)
+ );
+ }
+ const actDims = utils.calculateTextDimensions(actor.description, actorFont(conf));
+ actor.width = actor.wrap ? conf.width : Math.max(conf.width, actDims.width + 2 * conf.wrapPadding);
+ actor.height = actor.wrap ? Math.max(actDims.height, conf.height) : conf.height;
+ maxHeight = Math.max(maxHeight, actor.height);
+ });
+ for (const actorKey in actorToMessageWidth) {
+ const actor = actors2[actorKey];
+ if (!actor) {
+ continue;
+ }
+ const nextActor = actors2[actor.nextActor];
+ if (!nextActor) {
+ const messageWidth2 = actorToMessageWidth[actorKey];
+ const actorWidth2 = messageWidth2 + conf.actorMargin - actor.width / 2;
+ actor.margin = Math.max(actorWidth2, conf.actorMargin);
+ continue;
+ }
+ const messageWidth = actorToMessageWidth[actorKey];
+ const actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2;
+ actor.margin = Math.max(actorWidth, conf.actorMargin);
+ }
+ let maxBoxHeight = 0;
+ boxes2.forEach((box) => {
+ const textFont = messageFont(conf);
+ let totalWidth = box.actorKeys.reduce((total, aKey) => {
+ return total += actors2[aKey].width + (actors2[aKey].margin || 0);
+ }, 0);
+ totalWidth -= 2 * conf.boxTextMargin;
+ if (box.wrap) {
+ box.name = utils.wrapLabel(box.name, totalWidth - 2 * conf.wrapPadding, textFont);
+ }
+ const boxMsgDimensions = utils.calculateTextDimensions(box.name, textFont);
+ maxBoxHeight = Math.max(boxMsgDimensions.height, maxBoxHeight);
+ const minWidth = Math.max(totalWidth, boxMsgDimensions.width + 2 * conf.wrapPadding);
+ box.margin = conf.boxTextMargin;
+ if (totalWidth < minWidth) {
+ const missing = (minWidth - totalWidth) / 2;
+ box.margin += missing;
+ }
+ });
+ boxes2.forEach((box) => box.textMaxHeight = maxBoxHeight);
+ return Math.max(maxHeight, conf.height);
+}
+const buildNoteModel = function(msg, actors2, diagObj) {
+ const startx = actors2[msg.from].x;
+ const stopx = actors2[msg.to].x;
+ const shouldWrap = msg.wrap && msg.message;
+ let textDimensions = utils.calculateTextDimensions(
+ shouldWrap ? utils.wrapLabel(msg.message, conf.width, noteFont(conf)) : msg.message,
+ noteFont(conf)
+ );
+ const noteModel = {
+ width: shouldWrap ? conf.width : Math.max(conf.width, textDimensions.width + 2 * conf.noteMargin),
+ height: 0,
+ startx: actors2[msg.from].x,
+ stopx: 0,
+ starty: 0,
+ stopy: 0,
+ message: msg.message
+ };
+ if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
+ noteModel.width = shouldWrap ? Math.max(conf.width, textDimensions.width) : Math.max(
+ actors2[msg.from].width / 2 + actors2[msg.to].width / 2,
+ textDimensions.width + 2 * conf.noteMargin
+ );
+ noteModel.startx = startx + (actors2[msg.from].width + conf.actorMargin) / 2;
+ } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
+ noteModel.width = shouldWrap ? Math.max(conf.width, textDimensions.width + 2 * conf.noteMargin) : Math.max(
+ actors2[msg.from].width / 2 + actors2[msg.to].width / 2,
+ textDimensions.width + 2 * conf.noteMargin
+ );
+ noteModel.startx = startx - noteModel.width + (actors2[msg.from].width - conf.actorMargin) / 2;
+ } else if (msg.to === msg.from) {
+ textDimensions = utils.calculateTextDimensions(
+ shouldWrap ? utils.wrapLabel(msg.message, Math.max(conf.width, actors2[msg.from].width), noteFont(conf)) : msg.message,
+ noteFont(conf)
+ );
+ noteModel.width = shouldWrap ? Math.max(conf.width, actors2[msg.from].width) : Math.max(actors2[msg.from].width, conf.width, textDimensions.width + 2 * conf.noteMargin);
+ noteModel.startx = startx + (actors2[msg.from].width - noteModel.width) / 2;
+ } else {
+ noteModel.width = Math.abs(startx + actors2[msg.from].width / 2 - (stopx + actors2[msg.to].width / 2)) + conf.actorMargin;
+ noteModel.startx = startx < stopx ? startx + actors2[msg.from].width / 2 - conf.actorMargin / 2 : stopx + actors2[msg.to].width / 2 - conf.actorMargin / 2;
+ }
+ if (shouldWrap) {
+ noteModel.message = utils.wrapLabel(
+ msg.message,
+ noteModel.width - 2 * conf.wrapPadding,
+ noteFont(conf)
+ );
+ }
+ log.debug(
+ `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]`
+ );
+ return noteModel;
+};
+const buildMessageModel = function(msg, actors2, diagObj) {
+ let process = false;
+ if ([
+ diagObj.db.LINETYPE.SOLID_OPEN,
+ diagObj.db.LINETYPE.DOTTED_OPEN,
+ diagObj.db.LINETYPE.SOLID,
+ diagObj.db.LINETYPE.DOTTED,
+ diagObj.db.LINETYPE.SOLID_CROSS,
+ diagObj.db.LINETYPE.DOTTED_CROSS,
+ diagObj.db.LINETYPE.SOLID_POINT,
+ diagObj.db.LINETYPE.DOTTED_POINT
+ ].includes(msg.type)) {
+ process = true;
+ }
+ if (!process) {
+ return {};
+ }
+ const fromBounds = activationBounds(msg.from, actors2);
+ const toBounds = activationBounds(msg.to, actors2);
+ const fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0;
+ const toIdx = fromBounds[0] < toBounds[0] ? 0 : 1;
+ const allBounds = [...fromBounds, ...toBounds];
+ const boundedWidth = Math.abs(toBounds[toIdx] - fromBounds[fromIdx]);
+ if (msg.wrap && msg.message) {
+ msg.message = utils.wrapLabel(
+ msg.message,
+ Math.max(boundedWidth + 2 * conf.wrapPadding, conf.width),
+ messageFont(conf)
+ );
+ }
+ const msgDims = utils.calculateTextDimensions(msg.message, messageFont(conf));
+ return {
+ width: Math.max(
+ msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding,
+ boundedWidth + 2 * conf.wrapPadding,
+ conf.width
+ ),
+ height: 0,
+ startx: fromBounds[fromIdx],
+ stopx: toBounds[toIdx],
+ starty: 0,
+ stopy: 0,
+ message: msg.message,
+ type: msg.type,
+ wrap: msg.wrap,
+ fromBounds: Math.min.apply(null, allBounds),
+ toBounds: Math.max.apply(null, allBounds)
+ };
+};
+const calculateLoopBounds = function(messages2, actors2, _maxWidthPerActor, diagObj) {
+ const loops = {};
+ const stack = [];
+ let current, noteModel, msgModel;
+ messages2.forEach(function(msg) {
+ msg.id = utils.random({ length: 10 });
+ switch (msg.type) {
+ case diagObj.db.LINETYPE.LOOP_START:
+ case diagObj.db.LINETYPE.ALT_START:
+ case diagObj.db.LINETYPE.OPT_START:
+ case diagObj.db.LINETYPE.PAR_START:
+ case diagObj.db.LINETYPE.CRITICAL_START:
+ case diagObj.db.LINETYPE.BREAK_START:
+ stack.push({
+ id: msg.id,
+ msg: msg.message,
+ from: Number.MAX_SAFE_INTEGER,
+ to: Number.MIN_SAFE_INTEGER,
+ width: 0
+ });
+ break;
+ case diagObj.db.LINETYPE.ALT_ELSE:
+ case diagObj.db.LINETYPE.PAR_AND:
+ case diagObj.db.LINETYPE.CRITICAL_OPTION:
+ if (msg.message) {
+ current = stack.pop();
+ loops[current.id] = current;
+ loops[msg.id] = current;
+ stack.push(current);
+ }
+ break;
+ case diagObj.db.LINETYPE.LOOP_END:
+ case diagObj.db.LINETYPE.ALT_END:
+ case diagObj.db.LINETYPE.OPT_END:
+ case diagObj.db.LINETYPE.PAR_END:
+ case diagObj.db.LINETYPE.CRITICAL_END:
+ case diagObj.db.LINETYPE.BREAK_END:
+ current = stack.pop();
+ loops[current.id] = current;
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_START:
+ {
+ const actorRect = actors2[msg.from ? msg.from.actor : msg.to.actor];
+ const stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length;
+ const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
+ const toAdd = {
+ startx: x,
+ stopx: x + conf.activationWidth,
+ actor: msg.from.actor,
+ enabled: true
+ };
+ bounds.activations.push(toAdd);
+ }
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_END:
+ {
+ const lastActorActivationIdx = bounds.activations.map((a) => a.actor).lastIndexOf(msg.from.actor);
+ delete bounds.activations.splice(lastActorActivationIdx, 1)[0];
+ }
+ break;
+ }
+ const isNote = msg.placement !== void 0;
+ if (isNote) {
+ noteModel = buildNoteModel(msg, actors2, diagObj);
+ msg.noteModel = noteModel;
+ stack.forEach((stk) => {
+ current = stk;
+ current.from = Math.min(current.from, noteModel.startx);
+ current.to = Math.max(current.to, noteModel.startx + noteModel.width);
+ current.width = Math.max(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth;
+ });
+ } else {
+ msgModel = buildMessageModel(msg, actors2, diagObj);
+ msg.msgModel = msgModel;
+ if (msgModel.startx && msgModel.stopx && stack.length > 0) {
+ stack.forEach((stk) => {
+ current = stk;
+ if (msgModel.startx === msgModel.stopx) {
+ const from = actors2[msg.from];
+ const to = actors2[msg.to];
+ current.from = Math.min(
+ from.x - msgModel.width / 2,
+ from.x - from.width / 2,
+ current.from
+ );
+ current.to = Math.max(to.x + msgModel.width / 2, to.x + from.width / 2, current.to);
+ current.width = Math.max(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth;
+ } else {
+ current.from = Math.min(msgModel.startx, current.from);
+ current.to = Math.max(msgModel.stopx, current.to);
+ current.width = Math.max(current.width, msgModel.width) - conf.labelBoxWidth;
+ }
+ });
+ }
+ }
+ });
+ bounds.activations = [];
+ log.debug("Loop type widths:", loops);
+ return loops;
+};
+const renderer = {
+ bounds,
+ drawActors,
+ drawActorsPopup,
+ setConf,
+ draw
+};
+const diagram = {
+ parser: parser$1,
+ db,
+ renderer,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=sequenceDiagram-a52c6980.js.map
diff --git a/scopegraphs-render-docs/doc/js/setupGraphViewbox.d.ts b/scopegraphs-render-docs/doc/js/setupGraphViewbox.d.ts
new file mode 100644
index 0000000..d7d5c9e
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/setupGraphViewbox.d.ts
@@ -0,0 +1,3 @@
+export function calculateSvgSizeAttrs(height: number, width: number, useMaxWidth: boolean): Map<'height' | 'width' | 'style', string>;
+export function configureSvgSize(svgElem: SVGSVGElement, height: number, width: number, useMaxWidth: boolean): void;
+export function setupGraphViewbox(graph: any, svgElem: any, padding: any, useMaxWidth: any): void;
diff --git a/scopegraphs-render-docs/doc/js/stateDiagram-2fc945a0.js b/scopegraphs-render-docs/doc/js/stateDiagram-2fc945a0.js
new file mode 100644
index 0000000..2e97fa6
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/stateDiagram-2fc945a0.js
@@ -0,0 +1,479 @@
+import { d as db, p as parser, s as styles } from "./styles-a8f89eec.js";
+import { g as getConfig, f as common, l as log, h as select } from "./commonDb-89160e91.js";
+import { G as Graph, l as layout } from "./layout-3ff13c4c.js";
+import { G as curveBasis, u as utils, v as configureSvgSize } from "./utils-1aebe9b6.js";
+import { l as line } from "./line-fbe8f138.js";
+import "./mermaidAPI-c841a67f.js";
+import "./array-b7dcf730.js";
+import "./constant-b644328d.js";
+const idCache = {};
+const set = (key, val) => {
+ idCache[key] = val;
+};
+const get = (k) => idCache[k];
+const keys = () => Object.keys(idCache);
+const size = () => keys().length;
+const idCache$1 = {
+ get,
+ set,
+ keys,
+ size
+};
+const drawStartState = (g) => g.append("circle").attr("class", "start-state").attr("r", getConfig().state.sizeUnit).attr("cx", getConfig().state.padding + getConfig().state.sizeUnit).attr("cy", getConfig().state.padding + getConfig().state.sizeUnit);
+const drawDivider = (g) => g.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", getConfig().state.textHeight).attr("class", "divider").attr("x2", getConfig().state.textHeight * 2).attr("y1", 0).attr("y2", 0);
+const drawSimpleState = (g, stateDef) => {
+ const state = g.append("text").attr("x", 2 * getConfig().state.padding).attr("y", getConfig().state.textHeight + 2 * getConfig().state.padding).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.id);
+ const classBox = state.node().getBBox();
+ g.insert("rect", ":first-child").attr("x", getConfig().state.padding).attr("y", getConfig().state.padding).attr("width", classBox.width + 2 * getConfig().state.padding).attr("height", classBox.height + 2 * getConfig().state.padding).attr("rx", getConfig().state.radius);
+ return state;
+};
+const drawDescrState = (g, stateDef) => {
+ const addTspan = function(textEl, txt, isFirst2) {
+ const tSpan = textEl.append("tspan").attr("x", 2 * getConfig().state.padding).text(txt);
+ if (!isFirst2) {
+ tSpan.attr("dy", getConfig().state.textHeight);
+ }
+ };
+ const title = g.append("text").attr("x", 2 * getConfig().state.padding).attr("y", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.descriptions[0]);
+ const titleBox = title.node().getBBox();
+ const titleHeight = titleBox.height;
+ const description = g.append("text").attr("x", getConfig().state.padding).attr(
+ "y",
+ titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight
+ ).attr("class", "state-description");
+ let isFirst = true;
+ let isSecond = true;
+ stateDef.descriptions.forEach(function(descr) {
+ if (!isFirst) {
+ addTspan(description, descr, isSecond);
+ isSecond = false;
+ }
+ isFirst = false;
+ });
+ const descrLine = g.append("line").attr("x1", getConfig().state.padding).attr("y1", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr("y2", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr("class", "descr-divider");
+ const descrBox = description.node().getBBox();
+ const width = Math.max(descrBox.width, titleBox.width);
+ descrLine.attr("x2", width + 3 * getConfig().state.padding);
+ g.insert("rect", ":first-child").attr("x", getConfig().state.padding).attr("y", getConfig().state.padding).attr("width", width + 2 * getConfig().state.padding).attr("height", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr("rx", getConfig().state.radius);
+ return g;
+};
+const addTitleAndBox = (g, stateDef, altBkg) => {
+ const pad = getConfig().state.padding;
+ const dblPad = 2 * getConfig().state.padding;
+ const orgBox = g.node().getBBox();
+ const orgWidth = orgBox.width;
+ const orgX = orgBox.x;
+ const title = g.append("text").attr("x", 0).attr("y", getConfig().state.titleShift).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.id);
+ const titleBox = title.node().getBBox();
+ const titleWidth = titleBox.width + dblPad;
+ let width = Math.max(titleWidth, orgWidth);
+ if (width === orgWidth) {
+ width = width + dblPad;
+ }
+ let startX;
+ const graphBox = g.node().getBBox();
+ if (stateDef.doc)
+ ;
+ startX = orgX - pad;
+ if (titleWidth > orgWidth) {
+ startX = (orgWidth - width) / 2 + pad;
+ }
+ if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) {
+ startX = orgX - (titleWidth - orgWidth) / 2;
+ }
+ const lineY = 1 - getConfig().state.textHeight;
+ g.insert("rect", ":first-child").attr("x", startX).attr("y", lineY).attr("class", altBkg ? "alt-composit" : "composit").attr("width", width).attr(
+ "height",
+ graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1
+ ).attr("rx", "0");
+ title.attr("x", startX + pad);
+ if (titleWidth <= orgWidth) {
+ title.attr("x", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad);
+ }
+ g.insert("rect", ":first-child").attr("x", startX).attr(
+ "y",
+ getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding
+ ).attr("width", width).attr("height", getConfig().state.textHeight * 3).attr("rx", getConfig().state.radius);
+ g.insert("rect", ":first-child").attr("x", startX).attr(
+ "y",
+ getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding
+ ).attr("width", width).attr("height", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr("rx", getConfig().state.radius);
+ return g;
+};
+const drawEndState = (g) => {
+ g.append("circle").attr("class", "end-state-outer").attr("r", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr(
+ "cx",
+ getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding
+ ).attr(
+ "cy",
+ getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding
+ );
+ return g.append("circle").attr("class", "end-state-inner").attr("r", getConfig().state.sizeUnit).attr("cx", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr("cy", getConfig().state.padding + getConfig().state.sizeUnit + 2);
+};
+const drawForkJoinState = (g, stateDef) => {
+ let width = getConfig().state.forkWidth;
+ let height = getConfig().state.forkHeight;
+ if (stateDef.parentId) {
+ let tmp = width;
+ width = height;
+ height = tmp;
+ }
+ return g.append("rect").style("stroke", "black").style("fill", "black").attr("width", width).attr("height", height).attr("x", getConfig().state.padding).attr("y", getConfig().state.padding);
+};
+const _drawLongText = (_text, x, y, g) => {
+ let textHeight = 0;
+ const textElem = g.append("text");
+ textElem.style("text-anchor", "start");
+ textElem.attr("class", "noteText");
+ let text = _text.replace(/\r\n/g, "
");
+ text = text.replace(/\n/g, "
");
+ const lines = text.split(common.lineBreakRegex);
+ let tHeight = 1.25 * getConfig().state.noteMargin;
+ for (const line2 of lines) {
+ const txt = line2.trim();
+ if (txt.length > 0) {
+ const span = textElem.append("tspan");
+ span.text(txt);
+ if (tHeight === 0) {
+ const textBounds = span.node().getBBox();
+ tHeight += textBounds.height;
+ }
+ textHeight += tHeight;
+ span.attr("x", x + getConfig().state.noteMargin);
+ span.attr("y", y + textHeight + 1.25 * getConfig().state.noteMargin);
+ }
+ }
+ return { textWidth: textElem.node().getBBox().width, textHeight };
+};
+const drawNote = (text, g) => {
+ g.attr("class", "state-note");
+ const note = g.append("rect").attr("x", 0).attr("y", getConfig().state.padding);
+ const rectElem = g.append("g");
+ const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem);
+ note.attr("height", textHeight + 2 * getConfig().state.noteMargin);
+ note.attr("width", textWidth + getConfig().state.noteMargin * 2);
+ return note;
+};
+const drawState = function(elem, stateDef) {
+ const id = stateDef.id;
+ const stateInfo = {
+ id,
+ label: stateDef.id,
+ width: 0,
+ height: 0
+ };
+ const g = elem.append("g").attr("id", id).attr("class", "stateGroup");
+ if (stateDef.type === "start") {
+ drawStartState(g);
+ }
+ if (stateDef.type === "end") {
+ drawEndState(g);
+ }
+ if (stateDef.type === "fork" || stateDef.type === "join") {
+ drawForkJoinState(g, stateDef);
+ }
+ if (stateDef.type === "note") {
+ drawNote(stateDef.note.text, g);
+ }
+ if (stateDef.type === "divider") {
+ drawDivider(g);
+ }
+ if (stateDef.type === "default" && stateDef.descriptions.length === 0) {
+ drawSimpleState(g, stateDef);
+ }
+ if (stateDef.type === "default" && stateDef.descriptions.length > 0) {
+ drawDescrState(g, stateDef);
+ }
+ const stateBox = g.node().getBBox();
+ stateInfo.width = stateBox.width + 2 * getConfig().state.padding;
+ stateInfo.height = stateBox.height + 2 * getConfig().state.padding;
+ idCache$1.set(id, stateInfo);
+ return stateInfo;
+};
+let edgeCount = 0;
+const drawEdge = function(elem, path, relation) {
+ const getRelationType = function(type) {
+ switch (type) {
+ case db.relationType.AGGREGATION:
+ return "aggregation";
+ case db.relationType.EXTENSION:
+ return "extension";
+ case db.relationType.COMPOSITION:
+ return "composition";
+ case db.relationType.DEPENDENCY:
+ return "dependency";
+ }
+ };
+ path.points = path.points.filter((p) => !Number.isNaN(p.y));
+ const lineData = path.points;
+ const lineFunction = line().x(function(d) {
+ return d.x;
+ }).y(function(d) {
+ return d.y;
+ }).curve(curveBasis);
+ const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "transition");
+ let url = "";
+ if (getConfig().state.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ svgPath.attr(
+ "marker-end",
+ "url(" + url + "#" + getRelationType(db.relationType.DEPENDENCY) + "End)"
+ );
+ if (relation.title !== void 0) {
+ const label = elem.append("g").attr("class", "stateLabel");
+ const { x, y } = utils.calcLabelPosition(path.points);
+ const rows = common.getRows(relation.title);
+ let titleHeight = 0;
+ const titleRows = [];
+ let maxWidth = 0;
+ let minX = 0;
+ for (let i = 0; i <= rows.length; i++) {
+ const title = label.append("text").attr("text-anchor", "middle").text(rows[i]).attr("x", x).attr("y", y + titleHeight);
+ const boundstmp = title.node().getBBox();
+ maxWidth = Math.max(maxWidth, boundstmp.width);
+ minX = Math.min(minX, boundstmp.x);
+ log.info(boundstmp.x, x, y + titleHeight);
+ if (titleHeight === 0) {
+ const titleBox = title.node().getBBox();
+ titleHeight = titleBox.height;
+ log.info("Title height", titleHeight, y);
+ }
+ titleRows.push(title);
+ }
+ let boxHeight = titleHeight * rows.length;
+ if (rows.length > 1) {
+ const heightAdj = (rows.length - 1) * titleHeight * 0.5;
+ titleRows.forEach((title, i) => title.attr("y", y + i * titleHeight - heightAdj));
+ boxHeight = titleHeight * rows.length;
+ }
+ const bounds = label.node().getBBox();
+ label.insert("rect", ":first-child").attr("class", "box").attr("x", x - maxWidth / 2 - getConfig().state.padding / 2).attr("y", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr("width", maxWidth + getConfig().state.padding).attr("height", boxHeight + getConfig().state.padding);
+ log.info(bounds);
+ }
+ edgeCount++;
+};
+let conf;
+const transformationLog = {};
+const setConf = function() {
+};
+const insertMarkers = function(elem) {
+ elem.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");
+};
+const draw = function(text, id, _version, diagObj) {
+ conf = getConfig().state;
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ log.debug("Rendering diagram " + text);
+ const diagram2 = root.select(`[id='${id}']`);
+ insertMarkers(diagram2);
+ const graph = new Graph({
+ multigraph: true,
+ compound: true,
+ // acyclicer: 'greedy',
+ rankdir: "RL"
+ // ranksep: '20'
+ });
+ graph.setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const rootDoc = diagObj.db.getRootDoc();
+ renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj);
+ const padding = conf.padding;
+ const bounds = diagram2.node().getBBox();
+ const width = bounds.width + padding * 2;
+ const height = bounds.height + padding * 2;
+ const svgWidth = width * 1.75;
+ configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth);
+ diagram2.attr(
+ "viewBox",
+ `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + " " + height
+ );
+};
+const getLabelWidth = (text) => {
+ return text ? text.length * conf.fontSizeFactor : 1;
+};
+const renderDoc = (doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => {
+ const graph = new Graph({
+ compound: true,
+ multigraph: true
+ });
+ let i;
+ let edgeFreeDoc = true;
+ for (i = 0; i < doc.length; i++) {
+ if (doc[i].stmt === "relation") {
+ edgeFreeDoc = false;
+ break;
+ }
+ }
+ if (parentId) {
+ graph.setGraph({
+ rankdir: "LR",
+ multigraph: true,
+ compound: true,
+ // acyclicer: 'greedy',
+ ranker: "tight-tree",
+ ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,
+ nodeSep: edgeFreeDoc ? 1 : 50,
+ isMultiGraph: true
+ // ranksep: 5,
+ // nodesep: 1
+ });
+ } else {
+ graph.setGraph({
+ rankdir: "TB",
+ multigraph: true,
+ compound: true,
+ // isCompound: true,
+ // acyclicer: 'greedy',
+ // ranker: 'longest-path'
+ ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,
+ nodeSep: edgeFreeDoc ? 1 : 50,
+ ranker: "tight-tree",
+ // ranker: 'network-simplex'
+ isMultiGraph: true
+ });
+ }
+ graph.setDefaultEdgeLabel(function() {
+ return {};
+ });
+ diagObj.db.extract(doc);
+ const states = diagObj.db.getStates();
+ const relations = diagObj.db.getRelations();
+ const keys2 = Object.keys(states);
+ for (const key of keys2) {
+ const stateDef = states[key];
+ if (parentId) {
+ stateDef.parentId = parentId;
+ }
+ let node;
+ if (stateDef.doc) {
+ let sub = diagram2.append("g").attr("id", stateDef.id).attr("class", "stateGroup");
+ node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj);
+ {
+ sub = addTitleAndBox(sub, stateDef, altBkg);
+ let boxBounds = sub.node().getBBox();
+ node.width = boxBounds.width;
+ node.height = boxBounds.height + conf.padding / 2;
+ transformationLog[stateDef.id] = { y: conf.compositTitleSize };
+ }
+ } else {
+ node = drawState(diagram2, stateDef);
+ }
+ if (stateDef.note) {
+ const noteDef = {
+ descriptions: [],
+ id: stateDef.id + "-note",
+ note: stateDef.note,
+ type: "note"
+ };
+ const note = drawState(diagram2, noteDef);
+ if (stateDef.note.position === "left of") {
+ graph.setNode(node.id + "-note", note);
+ graph.setNode(node.id, node);
+ } else {
+ graph.setNode(node.id, node);
+ graph.setNode(node.id + "-note", note);
+ }
+ graph.setParent(node.id, node.id + "-group");
+ graph.setParent(node.id + "-note", node.id + "-group");
+ } else {
+ graph.setNode(node.id, node);
+ }
+ }
+ log.debug("Count=", graph.nodeCount(), graph);
+ let cnt = 0;
+ relations.forEach(function(relation) {
+ cnt++;
+ log.debug("Setting edge", relation);
+ graph.setEdge(
+ relation.id1,
+ relation.id2,
+ {
+ relation,
+ width: getLabelWidth(relation.title),
+ height: conf.labelHeight * common.getRows(relation.title).length,
+ labelpos: "c"
+ },
+ "id" + cnt
+ );
+ });
+ layout(graph);
+ log.debug("Graph after layout", graph.nodes());
+ const svgElem = diagram2.node();
+ graph.nodes().forEach(function(v) {
+ if (v !== void 0 && graph.node(v) !== void 0) {
+ log.warn("Node " + v + ": " + JSON.stringify(graph.node(v)));
+ root.select("#" + svgElem.id + " #" + v).attr(
+ "transform",
+ "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + " )"
+ );
+ root.select("#" + svgElem.id + " #" + v).attr("data-x-shift", graph.node(v).x - graph.node(v).width / 2);
+ const dividers = domDocument.querySelectorAll("#" + svgElem.id + " #" + v + " .divider");
+ dividers.forEach((divider) => {
+ const parent = divider.parentElement;
+ let pWidth = 0;
+ let pShift = 0;
+ if (parent) {
+ if (parent.parentElement) {
+ pWidth = parent.parentElement.getBBox().width;
+ }
+ pShift = parseInt(parent.getAttribute("data-x-shift"), 10);
+ if (Number.isNaN(pShift)) {
+ pShift = 0;
+ }
+ }
+ divider.setAttribute("x1", 0 - pShift + 8);
+ divider.setAttribute("x2", pWidth - pShift - 8);
+ });
+ } else {
+ log.debug("No Node " + v + ": " + JSON.stringify(graph.node(v)));
+ }
+ });
+ let stateBox = svgElem.getBBox();
+ graph.edges().forEach(function(e) {
+ if (e !== void 0 && graph.edge(e) !== void 0) {
+ log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e)));
+ drawEdge(diagram2, graph.edge(e), graph.edge(e).relation);
+ }
+ });
+ stateBox = svgElem.getBBox();
+ const stateInfo = {
+ id: parentId ? parentId : "root",
+ label: parentId ? parentId : "root",
+ width: 0,
+ height: 0
+ };
+ stateInfo.width = stateBox.width + 2 * conf.padding;
+ stateInfo.height = stateBox.height + 2 * conf.padding;
+ log.debug("Doc rendered", stateInfo, graph);
+ return stateInfo;
+};
+const renderer = {
+ setConf,
+ draw
+};
+const diagram = {
+ parser,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ if (!cnf.state) {
+ cnf.state = {};
+ }
+ cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ db.clear();
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=stateDiagram-2fc945a0.js.map
diff --git a/scopegraphs-render-docs/doc/js/stateDiagram-d14e810e.js b/scopegraphs-render-docs/doc/js/stateDiagram-d14e810e.js
new file mode 100644
index 0000000..e6c8e70
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/stateDiagram-d14e810e.js
@@ -0,0 +1,285 @@
+import { d as N, p as C, s as U } from "./styles-55de9f38.js";
+import { g as t, f as L, l as b, h as H } from "./commonDb-41f8b4c5.js";
+import { G as P, l as F } from "./layout-492ec81d.js";
+import { G as O, u as X, v } from "./utils-8ea37061.js";
+import { l as J } from "./line-05ccbb85.js";
+import "./mermaidAPI-67f627de.js";
+import "./array-2ff2c7a6.js";
+import "./constant-2fe7eae5.js";
+const T = {}, Y = (e, i) => {
+ T[e] = i;
+}, $ = (e) => T[e], R = () => Object.keys(T), I = () => R().length, _ = {
+ get: $,
+ set: Y,
+ keys: R,
+ size: I
+}, q = (e) => e.append("circle").attr("class", "start-state").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit).attr("cy", t().state.padding + t().state.sizeUnit), Z = (e) => e.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", t().state.textHeight).attr("class", "divider").attr("x2", t().state.textHeight * 2).attr("y1", 0).attr("y2", 0), j = (e, i) => {
+ const o = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 2 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.id), d = o.node().getBBox();
+ return e.insert("rect", ":first-child").attr("x", t().state.padding).attr("y", t().state.padding).attr("width", d.width + 2 * t().state.padding).attr("height", d.height + 2 * t().state.padding).attr("rx", t().state.radius), o;
+}, D = (e, i) => {
+ const o = function(c, m, f) {
+ const S = c.append("tspan").attr("x", 2 * t().state.padding).text(m);
+ f || S.attr("dy", t().state.textHeight);
+ }, s = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 1.3 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.descriptions[0]).node().getBBox(), g = s.height, p = e.append("text").attr("x", t().state.padding).attr(
+ "y",
+ g + t().state.padding * 0.4 + t().state.dividerMargin + t().state.textHeight
+ ).attr("class", "state-description");
+ let a = !0, r = !0;
+ i.descriptions.forEach(function(c) {
+ a || (o(p, c, r), r = !1), a = !1;
+ });
+ const w = e.append("line").attr("x1", t().state.padding).attr("y1", t().state.padding + g + t().state.dividerMargin / 2).attr("y2", t().state.padding + g + t().state.dividerMargin / 2).attr("class", "descr-divider"), x = p.node().getBBox(), l = Math.max(x.width, s.width);
+ return w.attr("x2", l + 3 * t().state.padding), e.insert("rect", ":first-child").attr("x", t().state.padding).attr("y", t().state.padding).attr("width", l + 2 * t().state.padding).attr("height", x.height + g + 2 * t().state.padding).attr("rx", t().state.radius), e;
+}, K = (e, i, o) => {
+ const d = t().state.padding, s = 2 * t().state.padding, g = e.node().getBBox(), p = g.width, a = g.x, r = e.append("text").attr("x", 0).attr("y", t().state.titleShift).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.id), x = r.node().getBBox().width + s;
+ let l = Math.max(x, p);
+ l === p && (l = l + s);
+ let c;
+ const m = e.node().getBBox();
+ i.doc, c = a - d, x > p && (c = (p - l) / 2 + d), Math.abs(a - m.x) < d && x > p && (c = a - (x - p) / 2);
+ const f = 1 - t().state.textHeight;
+ return e.insert("rect", ":first-child").attr("x", c).attr("y", f).attr("class", o ? "alt-composit" : "composit").attr("width", l).attr(
+ "height",
+ m.height + t().state.textHeight + t().state.titleShift + 1
+ ).attr("rx", "0"), r.attr("x", c + d), x <= p && r.attr("x", a + (l - s) / 2 - x / 2 + d), e.insert("rect", ":first-child").attr("x", c).attr(
+ "y",
+ t().state.titleShift - t().state.textHeight - t().state.padding
+ ).attr("width", l).attr("height", t().state.textHeight * 3).attr("rx", t().state.radius), e.insert("rect", ":first-child").attr("x", c).attr(
+ "y",
+ t().state.titleShift - t().state.textHeight - t().state.padding
+ ).attr("width", l).attr("height", m.height + 3 + 2 * t().state.textHeight).attr("rx", t().state.radius), e;
+}, Q = (e) => (e.append("circle").attr("class", "end-state-outer").attr("r", t().state.sizeUnit + t().state.miniPadding).attr(
+ "cx",
+ t().state.padding + t().state.sizeUnit + t().state.miniPadding
+).attr(
+ "cy",
+ t().state.padding + t().state.sizeUnit + t().state.miniPadding
+), e.append("circle").attr("class", "end-state-inner").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit + 2).attr("cy", t().state.padding + t().state.sizeUnit + 2)), V = (e, i) => {
+ let o = t().state.forkWidth, d = t().state.forkHeight;
+ if (i.parentId) {
+ let s = o;
+ o = d, d = s;
+ }
+ return e.append("rect").style("stroke", "black").style("fill", "black").attr("width", o).attr("height", d).attr("x", t().state.padding).attr("y", t().state.padding);
+}, tt = (e, i, o, d) => {
+ let s = 0;
+ const g = d.append("text");
+ g.style("text-anchor", "start"), g.attr("class", "noteText");
+ let p = e.replace(/\r\n/g, "
");
+ p = p.replace(/\n/g, "
");
+ const a = p.split(L.lineBreakRegex);
+ let r = 1.25 * t().state.noteMargin;
+ for (const w of a) {
+ const x = w.trim();
+ if (x.length > 0) {
+ const l = g.append("tspan");
+ if (l.text(x), r === 0) {
+ const c = l.node().getBBox();
+ r += c.height;
+ }
+ s += r, l.attr("x", i + t().state.noteMargin), l.attr("y", o + s + 1.25 * t().state.noteMargin);
+ }
+ }
+ return { textWidth: g.node().getBBox().width, textHeight: s };
+}, et = (e, i) => {
+ i.attr("class", "state-note");
+ const o = i.append("rect").attr("x", 0).attr("y", t().state.padding), d = i.append("g"), { textWidth: s, textHeight: g } = tt(e, 0, 0, d);
+ return o.attr("height", g + 2 * t().state.noteMargin), o.attr("width", s + t().state.noteMargin * 2), o;
+}, G = function(e, i) {
+ const o = i.id, d = {
+ id: o,
+ label: i.id,
+ width: 0,
+ height: 0
+ }, s = e.append("g").attr("id", o).attr("class", "stateGroup");
+ i.type === "start" && q(s), i.type === "end" && Q(s), (i.type === "fork" || i.type === "join") && V(s, i), i.type === "note" && et(i.note.text, s), i.type === "divider" && Z(s), i.type === "default" && i.descriptions.length === 0 && j(s, i), i.type === "default" && i.descriptions.length > 0 && D(s, i);
+ const g = s.node().getBBox();
+ return d.width = g.width + 2 * t().state.padding, d.height = g.height + 2 * t().state.padding, _.set(o, d), d;
+};
+let A = 0;
+const at = function(e, i, o) {
+ const d = function(r) {
+ switch (r) {
+ case N.relationType.AGGREGATION:
+ return "aggregation";
+ case N.relationType.EXTENSION:
+ return "extension";
+ case N.relationType.COMPOSITION:
+ return "composition";
+ case N.relationType.DEPENDENCY:
+ return "dependency";
+ }
+ };
+ i.points = i.points.filter((r) => !Number.isNaN(r.y));
+ const s = i.points, g = J().x(function(r) {
+ return r.x;
+ }).y(function(r) {
+ return r.y;
+ }).curve(O), p = e.append("path").attr("d", g(s)).attr("id", "edge" + A).attr("class", "transition");
+ let a = "";
+ if (t().state.arrowMarkerAbsolute && (a = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, a = a.replace(/\(/g, "\\("), a = a.replace(/\)/g, "\\)")), p.attr(
+ "marker-end",
+ "url(" + a + "#" + d(N.relationType.DEPENDENCY) + "End)"
+ ), o.title !== void 0) {
+ const r = e.append("g").attr("class", "stateLabel"), { x: w, y: x } = X.calcLabelPosition(i.points), l = L.getRows(o.title);
+ let c = 0;
+ const m = [];
+ let f = 0, S = 0;
+ for (let u = 0; u <= l.length; u++) {
+ const h = r.append("text").attr("text-anchor", "middle").text(l[u]).attr("x", w).attr("y", x + c), y = h.node().getBBox();
+ f = Math.max(f, y.width), S = Math.min(S, y.x), b.info(y.x, w, x + c), c === 0 && (c = h.node().getBBox().height, b.info("Title height", c, x)), m.push(h);
+ }
+ let E = c * l.length;
+ if (l.length > 1) {
+ const u = (l.length - 1) * c * 0.5;
+ m.forEach((h, y) => h.attr("y", x + y * c - u)), E = c * l.length;
+ }
+ const n = r.node().getBBox();
+ r.insert("rect", ":first-child").attr("class", "box").attr("x", w - f / 2 - t().state.padding / 2).attr("y", x - E / 2 - t().state.padding / 2 - 3.5).attr("width", f + t().state.padding).attr("height", E + t().state.padding), b.info(n);
+ }
+ A++;
+};
+let B;
+const z = {}, it = function() {
+}, nt = function(e) {
+ e.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");
+}, st = function(e, i, o, d) {
+ B = t().state;
+ const s = t().securityLevel;
+ let g;
+ s === "sandbox" && (g = H("#i" + i));
+ const p = s === "sandbox" ? H(g.nodes()[0].contentDocument.body) : H("body"), a = s === "sandbox" ? g.nodes()[0].contentDocument : document;
+ b.debug("Rendering diagram " + e);
+ const r = p.select(`[id='${i}']`);
+ nt(r), new P({
+ multigraph: !0,
+ compound: !0,
+ // acyclicer: 'greedy',
+ rankdir: "RL"
+ // ranksep: '20'
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const x = d.db.getRootDoc();
+ W(x, r, void 0, !1, p, a, d);
+ const l = B.padding, c = r.node().getBBox(), m = c.width + l * 2, f = c.height + l * 2, S = m * 1.75;
+ v(r, f, S, B.useMaxWidth), r.attr(
+ "viewBox",
+ `${c.x - B.padding} ${c.y - B.padding} ` + m + " " + f
+ );
+}, rt = (e) => e ? e.length * B.fontSizeFactor : 1, W = (e, i, o, d, s, g, p) => {
+ const a = new P({
+ compound: !0,
+ multigraph: !0
+ });
+ let r, w = !0;
+ for (r = 0; r < e.length; r++)
+ if (e[r].stmt === "relation") {
+ w = !1;
+ break;
+ }
+ o ? a.setGraph({
+ rankdir: "LR",
+ multigraph: !0,
+ compound: !0,
+ // acyclicer: 'greedy',
+ ranker: "tight-tree",
+ ranksep: w ? 1 : B.edgeLengthFactor,
+ nodeSep: w ? 1 : 50,
+ isMultiGraph: !0
+ // ranksep: 5,
+ // nodesep: 1
+ }) : a.setGraph({
+ rankdir: "TB",
+ multigraph: !0,
+ compound: !0,
+ // isCompound: true,
+ // acyclicer: 'greedy',
+ // ranker: 'longest-path'
+ ranksep: w ? 1 : B.edgeLengthFactor,
+ nodeSep: w ? 1 : 50,
+ ranker: "tight-tree",
+ // ranker: 'network-simplex'
+ isMultiGraph: !0
+ }), a.setDefaultEdgeLabel(function() {
+ return {};
+ }), p.db.extract(e);
+ const x = p.db.getStates(), l = p.db.getRelations(), c = Object.keys(x);
+ for (const n of c) {
+ const u = x[n];
+ o && (u.parentId = o);
+ let h;
+ if (u.doc) {
+ let y = i.append("g").attr("id", u.id).attr("class", "stateGroup");
+ h = W(u.doc, y, u.id, !d, s, g, p);
+ {
+ y = K(y, u, d);
+ let k = y.node().getBBox();
+ h.width = k.width, h.height = k.height + B.padding / 2, z[u.id] = { y: B.compositTitleSize };
+ }
+ } else
+ h = G(i, u);
+ if (u.note) {
+ const y = {
+ descriptions: [],
+ id: u.id + "-note",
+ note: u.note,
+ type: "note"
+ }, k = G(i, y);
+ u.note.position === "left of" ? (a.setNode(h.id + "-note", k), a.setNode(h.id, h)) : (a.setNode(h.id, h), a.setNode(h.id + "-note", k)), a.setParent(h.id, h.id + "-group"), a.setParent(h.id + "-note", h.id + "-group");
+ } else
+ a.setNode(h.id, h);
+ }
+ b.debug("Count=", a.nodeCount(), a);
+ let m = 0;
+ l.forEach(function(n) {
+ m++, b.debug("Setting edge", n), a.setEdge(
+ n.id1,
+ n.id2,
+ {
+ relation: n,
+ width: rt(n.title),
+ height: B.labelHeight * L.getRows(n.title).length,
+ labelpos: "c"
+ },
+ "id" + m
+ );
+ }), F(a), b.debug("Graph after layout", a.nodes());
+ const f = i.node();
+ a.nodes().forEach(function(n) {
+ n !== void 0 && a.node(n) !== void 0 ? (b.warn("Node " + n + ": " + JSON.stringify(a.node(n))), s.select("#" + f.id + " #" + n).attr(
+ "transform",
+ "translate(" + (a.node(n).x - a.node(n).width / 2) + "," + (a.node(n).y + (z[n] ? z[n].y : 0) - a.node(n).height / 2) + " )"
+ ), s.select("#" + f.id + " #" + n).attr("data-x-shift", a.node(n).x - a.node(n).width / 2), g.querySelectorAll("#" + f.id + " #" + n + " .divider").forEach((h) => {
+ const y = h.parentElement;
+ let k = 0, M = 0;
+ y && (y.parentElement && (k = y.parentElement.getBBox().width), M = parseInt(y.getAttribute("data-x-shift"), 10), Number.isNaN(M) && (M = 0)), h.setAttribute("x1", 0 - M + 8), h.setAttribute("x2", k - M - 8);
+ })) : b.debug("No Node " + n + ": " + JSON.stringify(a.node(n)));
+ });
+ let S = f.getBBox();
+ a.edges().forEach(function(n) {
+ n !== void 0 && a.edge(n) !== void 0 && (b.debug("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(a.edge(n))), at(i, a.edge(n), a.edge(n).relation));
+ }), S = f.getBBox();
+ const E = {
+ id: o || "root",
+ label: o || "root",
+ width: 0,
+ height: 0
+ };
+ return E.width = S.width + 2 * B.padding, E.height = S.height + 2 * B.padding, b.debug("Doc rendered", E, a), E;
+}, ot = {
+ setConf: it,
+ draw: st
+}, ft = {
+ parser: C,
+ db: N,
+ renderer: ot,
+ styles: U,
+ init: (e) => {
+ e.state || (e.state = {}), e.state.arrowMarkerAbsolute = e.arrowMarkerAbsolute, N.clear();
+ }
+};
+export {
+ ft as diagram
+};
+//# sourceMappingURL=stateDiagram-d14e810e.js.map
diff --git a/scopegraphs-render-docs/doc/js/stateDiagram-d53d2428.js b/scopegraphs-render-docs/doc/js/stateDiagram-d53d2428.js
new file mode 100644
index 0000000..7759a3a
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/stateDiagram-d53d2428.js
@@ -0,0 +1,485 @@
+import { d as db, p as parser, s as styles } from "./styles-47a825a5.js";
+import { line, curveBasis, select } from "d3";
+import { layout } from "dagre-d3-es/src/dagre/index.js";
+import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
+import { g as getConfig, e as common, l as log } from "./commonDb-573409be.js";
+import { u as utils, k as configureSvgSize } from "./utils-d622194a.js";
+import "./mermaidAPI-3ae0f2f0.js";
+import "stylis";
+import "dompurify";
+import "lodash-es/isEmpty.js";
+import "dayjs";
+import "khroma";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+const idCache = {};
+const set = (key, val) => {
+ idCache[key] = val;
+};
+const get = (k) => idCache[k];
+const keys = () => Object.keys(idCache);
+const size = () => keys().length;
+const idCache$1 = {
+ get,
+ set,
+ keys,
+ size
+};
+const drawStartState = (g) => g.append("circle").attr("class", "start-state").attr("r", getConfig().state.sizeUnit).attr("cx", getConfig().state.padding + getConfig().state.sizeUnit).attr("cy", getConfig().state.padding + getConfig().state.sizeUnit);
+const drawDivider = (g) => g.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", getConfig().state.textHeight).attr("class", "divider").attr("x2", getConfig().state.textHeight * 2).attr("y1", 0).attr("y2", 0);
+const drawSimpleState = (g, stateDef) => {
+ const state = g.append("text").attr("x", 2 * getConfig().state.padding).attr("y", getConfig().state.textHeight + 2 * getConfig().state.padding).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.id);
+ const classBox = state.node().getBBox();
+ g.insert("rect", ":first-child").attr("x", getConfig().state.padding).attr("y", getConfig().state.padding).attr("width", classBox.width + 2 * getConfig().state.padding).attr("height", classBox.height + 2 * getConfig().state.padding).attr("rx", getConfig().state.radius);
+ return state;
+};
+const drawDescrState = (g, stateDef) => {
+ const addTspan = function(textEl, txt, isFirst2) {
+ const tSpan = textEl.append("tspan").attr("x", 2 * getConfig().state.padding).text(txt);
+ if (!isFirst2) {
+ tSpan.attr("dy", getConfig().state.textHeight);
+ }
+ };
+ const title = g.append("text").attr("x", 2 * getConfig().state.padding).attr("y", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.descriptions[0]);
+ const titleBox = title.node().getBBox();
+ const titleHeight = titleBox.height;
+ const description = g.append("text").attr("x", getConfig().state.padding).attr(
+ "y",
+ titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight
+ ).attr("class", "state-description");
+ let isFirst = true;
+ let isSecond = true;
+ stateDef.descriptions.forEach(function(descr) {
+ if (!isFirst) {
+ addTspan(description, descr, isSecond);
+ isSecond = false;
+ }
+ isFirst = false;
+ });
+ const descrLine = g.append("line").attr("x1", getConfig().state.padding).attr("y1", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr("y2", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr("class", "descr-divider");
+ const descrBox = description.node().getBBox();
+ const width = Math.max(descrBox.width, titleBox.width);
+ descrLine.attr("x2", width + 3 * getConfig().state.padding);
+ g.insert("rect", ":first-child").attr("x", getConfig().state.padding).attr("y", getConfig().state.padding).attr("width", width + 2 * getConfig().state.padding).attr("height", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr("rx", getConfig().state.radius);
+ return g;
+};
+const addTitleAndBox = (g, stateDef, altBkg) => {
+ const pad = getConfig().state.padding;
+ const dblPad = 2 * getConfig().state.padding;
+ const orgBox = g.node().getBBox();
+ const orgWidth = orgBox.width;
+ const orgX = orgBox.x;
+ const title = g.append("text").attr("x", 0).attr("y", getConfig().state.titleShift).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.id);
+ const titleBox = title.node().getBBox();
+ const titleWidth = titleBox.width + dblPad;
+ let width = Math.max(titleWidth, orgWidth);
+ if (width === orgWidth) {
+ width = width + dblPad;
+ }
+ let startX;
+ const graphBox = g.node().getBBox();
+ if (stateDef.doc)
+ ;
+ startX = orgX - pad;
+ if (titleWidth > orgWidth) {
+ startX = (orgWidth - width) / 2 + pad;
+ }
+ if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) {
+ startX = orgX - (titleWidth - orgWidth) / 2;
+ }
+ const lineY = 1 - getConfig().state.textHeight;
+ g.insert("rect", ":first-child").attr("x", startX).attr("y", lineY).attr("class", altBkg ? "alt-composit" : "composit").attr("width", width).attr(
+ "height",
+ graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1
+ ).attr("rx", "0");
+ title.attr("x", startX + pad);
+ if (titleWidth <= orgWidth) {
+ title.attr("x", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad);
+ }
+ g.insert("rect", ":first-child").attr("x", startX).attr(
+ "y",
+ getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding
+ ).attr("width", width).attr("height", getConfig().state.textHeight * 3).attr("rx", getConfig().state.radius);
+ g.insert("rect", ":first-child").attr("x", startX).attr(
+ "y",
+ getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding
+ ).attr("width", width).attr("height", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr("rx", getConfig().state.radius);
+ return g;
+};
+const drawEndState = (g) => {
+ g.append("circle").attr("class", "end-state-outer").attr("r", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr(
+ "cx",
+ getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding
+ ).attr(
+ "cy",
+ getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding
+ );
+ return g.append("circle").attr("class", "end-state-inner").attr("r", getConfig().state.sizeUnit).attr("cx", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr("cy", getConfig().state.padding + getConfig().state.sizeUnit + 2);
+};
+const drawForkJoinState = (g, stateDef) => {
+ let width = getConfig().state.forkWidth;
+ let height = getConfig().state.forkHeight;
+ if (stateDef.parentId) {
+ let tmp = width;
+ width = height;
+ height = tmp;
+ }
+ return g.append("rect").style("stroke", "black").style("fill", "black").attr("width", width).attr("height", height).attr("x", getConfig().state.padding).attr("y", getConfig().state.padding);
+};
+const _drawLongText = (_text, x, y, g) => {
+ let textHeight = 0;
+ const textElem = g.append("text");
+ textElem.style("text-anchor", "start");
+ textElem.attr("class", "noteText");
+ let text = _text.replace(/\r\n/g, "
");
+ text = text.replace(/\n/g, "
");
+ const lines = text.split(common.lineBreakRegex);
+ let tHeight = 1.25 * getConfig().state.noteMargin;
+ for (const line2 of lines) {
+ const txt = line2.trim();
+ if (txt.length > 0) {
+ const span = textElem.append("tspan");
+ span.text(txt);
+ if (tHeight === 0) {
+ const textBounds = span.node().getBBox();
+ tHeight += textBounds.height;
+ }
+ textHeight += tHeight;
+ span.attr("x", x + getConfig().state.noteMargin);
+ span.attr("y", y + textHeight + 1.25 * getConfig().state.noteMargin);
+ }
+ }
+ return { textWidth: textElem.node().getBBox().width, textHeight };
+};
+const drawNote = (text, g) => {
+ g.attr("class", "state-note");
+ const note = g.append("rect").attr("x", 0).attr("y", getConfig().state.padding);
+ const rectElem = g.append("g");
+ const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem);
+ note.attr("height", textHeight + 2 * getConfig().state.noteMargin);
+ note.attr("width", textWidth + getConfig().state.noteMargin * 2);
+ return note;
+};
+const drawState = function(elem, stateDef) {
+ const id = stateDef.id;
+ const stateInfo = {
+ id,
+ label: stateDef.id,
+ width: 0,
+ height: 0
+ };
+ const g = elem.append("g").attr("id", id).attr("class", "stateGroup");
+ if (stateDef.type === "start") {
+ drawStartState(g);
+ }
+ if (stateDef.type === "end") {
+ drawEndState(g);
+ }
+ if (stateDef.type === "fork" || stateDef.type === "join") {
+ drawForkJoinState(g, stateDef);
+ }
+ if (stateDef.type === "note") {
+ drawNote(stateDef.note.text, g);
+ }
+ if (stateDef.type === "divider") {
+ drawDivider(g);
+ }
+ if (stateDef.type === "default" && stateDef.descriptions.length === 0) {
+ drawSimpleState(g, stateDef);
+ }
+ if (stateDef.type === "default" && stateDef.descriptions.length > 0) {
+ drawDescrState(g, stateDef);
+ }
+ const stateBox = g.node().getBBox();
+ stateInfo.width = stateBox.width + 2 * getConfig().state.padding;
+ stateInfo.height = stateBox.height + 2 * getConfig().state.padding;
+ idCache$1.set(id, stateInfo);
+ return stateInfo;
+};
+let edgeCount = 0;
+const drawEdge = function(elem, path, relation) {
+ const getRelationType = function(type) {
+ switch (type) {
+ case db.relationType.AGGREGATION:
+ return "aggregation";
+ case db.relationType.EXTENSION:
+ return "extension";
+ case db.relationType.COMPOSITION:
+ return "composition";
+ case db.relationType.DEPENDENCY:
+ return "dependency";
+ }
+ };
+ path.points = path.points.filter((p) => !Number.isNaN(p.y));
+ const lineData = path.points;
+ const lineFunction = line().x(function(d) {
+ return d.x;
+ }).y(function(d) {
+ return d.y;
+ }).curve(curveBasis);
+ const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "transition");
+ let url = "";
+ if (getConfig().state.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ svgPath.attr(
+ "marker-end",
+ "url(" + url + "#" + getRelationType(db.relationType.DEPENDENCY) + "End)"
+ );
+ if (relation.title !== void 0) {
+ const label = elem.append("g").attr("class", "stateLabel");
+ const { x, y } = utils.calcLabelPosition(path.points);
+ const rows = common.getRows(relation.title);
+ let titleHeight = 0;
+ const titleRows = [];
+ let maxWidth = 0;
+ let minX = 0;
+ for (let i = 0; i <= rows.length; i++) {
+ const title = label.append("text").attr("text-anchor", "middle").text(rows[i]).attr("x", x).attr("y", y + titleHeight);
+ const boundstmp = title.node().getBBox();
+ maxWidth = Math.max(maxWidth, boundstmp.width);
+ minX = Math.min(minX, boundstmp.x);
+ log.info(boundstmp.x, x, y + titleHeight);
+ if (titleHeight === 0) {
+ const titleBox = title.node().getBBox();
+ titleHeight = titleBox.height;
+ log.info("Title height", titleHeight, y);
+ }
+ titleRows.push(title);
+ }
+ let boxHeight = titleHeight * rows.length;
+ if (rows.length > 1) {
+ const heightAdj = (rows.length - 1) * titleHeight * 0.5;
+ titleRows.forEach((title, i) => title.attr("y", y + i * titleHeight - heightAdj));
+ boxHeight = titleHeight * rows.length;
+ }
+ const bounds = label.node().getBBox();
+ label.insert("rect", ":first-child").attr("class", "box").attr("x", x - maxWidth / 2 - getConfig().state.padding / 2).attr("y", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr("width", maxWidth + getConfig().state.padding).attr("height", boxHeight + getConfig().state.padding);
+ log.info(bounds);
+ }
+ edgeCount++;
+};
+let conf;
+const transformationLog = {};
+const setConf = function() {
+};
+const insertMarkers = function(elem) {
+ elem.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");
+};
+const draw = function(text, id, _version, diagObj) {
+ conf = getConfig().state;
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ log.debug("Rendering diagram " + text);
+ const diagram2 = root.select(`[id='${id}']`);
+ insertMarkers(diagram2);
+ const graph = new graphlib.Graph({
+ multigraph: true,
+ compound: true,
+ // acyclicer: 'greedy',
+ rankdir: "RL"
+ // ranksep: '20'
+ });
+ graph.setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const rootDoc = diagObj.db.getRootDoc();
+ renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj);
+ const padding = conf.padding;
+ const bounds = diagram2.node().getBBox();
+ const width = bounds.width + padding * 2;
+ const height = bounds.height + padding * 2;
+ const svgWidth = width * 1.75;
+ configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth);
+ diagram2.attr(
+ "viewBox",
+ `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + " " + height
+ );
+};
+const getLabelWidth = (text) => {
+ return text ? text.length * conf.fontSizeFactor : 1;
+};
+const renderDoc = (doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => {
+ const graph = new graphlib.Graph({
+ compound: true,
+ multigraph: true
+ });
+ let i;
+ let edgeFreeDoc = true;
+ for (i = 0; i < doc.length; i++) {
+ if (doc[i].stmt === "relation") {
+ edgeFreeDoc = false;
+ break;
+ }
+ }
+ if (parentId) {
+ graph.setGraph({
+ rankdir: "LR",
+ multigraph: true,
+ compound: true,
+ // acyclicer: 'greedy',
+ ranker: "tight-tree",
+ ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,
+ nodeSep: edgeFreeDoc ? 1 : 50,
+ isMultiGraph: true
+ // ranksep: 5,
+ // nodesep: 1
+ });
+ } else {
+ graph.setGraph({
+ rankdir: "TB",
+ multigraph: true,
+ compound: true,
+ // isCompound: true,
+ // acyclicer: 'greedy',
+ // ranker: 'longest-path'
+ ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,
+ nodeSep: edgeFreeDoc ? 1 : 50,
+ ranker: "tight-tree",
+ // ranker: 'network-simplex'
+ isMultiGraph: true
+ });
+ }
+ graph.setDefaultEdgeLabel(function() {
+ return {};
+ });
+ diagObj.db.extract(doc);
+ const states = diagObj.db.getStates();
+ const relations = diagObj.db.getRelations();
+ const keys2 = Object.keys(states);
+ for (const key of keys2) {
+ const stateDef = states[key];
+ if (parentId) {
+ stateDef.parentId = parentId;
+ }
+ let node;
+ if (stateDef.doc) {
+ let sub = diagram2.append("g").attr("id", stateDef.id).attr("class", "stateGroup");
+ node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj);
+ {
+ sub = addTitleAndBox(sub, stateDef, altBkg);
+ let boxBounds = sub.node().getBBox();
+ node.width = boxBounds.width;
+ node.height = boxBounds.height + conf.padding / 2;
+ transformationLog[stateDef.id] = { y: conf.compositTitleSize };
+ }
+ } else {
+ node = drawState(diagram2, stateDef);
+ }
+ if (stateDef.note) {
+ const noteDef = {
+ descriptions: [],
+ id: stateDef.id + "-note",
+ note: stateDef.note,
+ type: "note"
+ };
+ const note = drawState(diagram2, noteDef);
+ if (stateDef.note.position === "left of") {
+ graph.setNode(node.id + "-note", note);
+ graph.setNode(node.id, node);
+ } else {
+ graph.setNode(node.id, node);
+ graph.setNode(node.id + "-note", note);
+ }
+ graph.setParent(node.id, node.id + "-group");
+ graph.setParent(node.id + "-note", node.id + "-group");
+ } else {
+ graph.setNode(node.id, node);
+ }
+ }
+ log.debug("Count=", graph.nodeCount(), graph);
+ let cnt = 0;
+ relations.forEach(function(relation) {
+ cnt++;
+ log.debug("Setting edge", relation);
+ graph.setEdge(
+ relation.id1,
+ relation.id2,
+ {
+ relation,
+ width: getLabelWidth(relation.title),
+ height: conf.labelHeight * common.getRows(relation.title).length,
+ labelpos: "c"
+ },
+ "id" + cnt
+ );
+ });
+ layout(graph);
+ log.debug("Graph after layout", graph.nodes());
+ const svgElem = diagram2.node();
+ graph.nodes().forEach(function(v) {
+ if (v !== void 0 && graph.node(v) !== void 0) {
+ log.warn("Node " + v + ": " + JSON.stringify(graph.node(v)));
+ root.select("#" + svgElem.id + " #" + v).attr(
+ "transform",
+ "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + " )"
+ );
+ root.select("#" + svgElem.id + " #" + v).attr("data-x-shift", graph.node(v).x - graph.node(v).width / 2);
+ const dividers = domDocument.querySelectorAll("#" + svgElem.id + " #" + v + " .divider");
+ dividers.forEach((divider) => {
+ const parent = divider.parentElement;
+ let pWidth = 0;
+ let pShift = 0;
+ if (parent) {
+ if (parent.parentElement) {
+ pWidth = parent.parentElement.getBBox().width;
+ }
+ pShift = parseInt(parent.getAttribute("data-x-shift"), 10);
+ if (Number.isNaN(pShift)) {
+ pShift = 0;
+ }
+ }
+ divider.setAttribute("x1", 0 - pShift + 8);
+ divider.setAttribute("x2", pWidth - pShift - 8);
+ });
+ } else {
+ log.debug("No Node " + v + ": " + JSON.stringify(graph.node(v)));
+ }
+ });
+ let stateBox = svgElem.getBBox();
+ graph.edges().forEach(function(e) {
+ if (e !== void 0 && graph.edge(e) !== void 0) {
+ log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e)));
+ drawEdge(diagram2, graph.edge(e), graph.edge(e).relation);
+ }
+ });
+ stateBox = svgElem.getBBox();
+ const stateInfo = {
+ id: parentId ? parentId : "root",
+ label: parentId ? parentId : "root",
+ width: 0,
+ height: 0
+ };
+ stateInfo.width = stateBox.width + 2 * conf.padding;
+ stateInfo.height = stateBox.height + 2 * conf.padding;
+ log.debug("Doc rendered", stateInfo, graph);
+ return stateInfo;
+};
+const renderer = {
+ setConf,
+ draw
+};
+const diagram = {
+ parser,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ if (!cnf.state) {
+ cnf.state = {};
+ }
+ cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ db.clear();
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=stateDiagram-d53d2428.js.map
diff --git a/scopegraphs-render-docs/doc/js/stateDiagram-v2-660a5d6e.js b/scopegraphs-render-docs/doc/js/stateDiagram-v2-660a5d6e.js
new file mode 100644
index 0000000..cc16e7d
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/stateDiagram-v2-660a5d6e.js
@@ -0,0 +1,337 @@
+import { D as DEFAULT_DIAGRAM_DIRECTION, a as DEFAULT_STATE_TYPE, b as DIVIDER_TYPE, S as STMT_RELATION, c as STMT_STATE, e as DEFAULT_NESTED_DOC_DIR, p as parser, d as db, s as styles } from "./styles-a8f89eec.js";
+import { G as Graph } from "./layout-3ff13c4c.js";
+import { l as log, g as getConfig, h as select, f as common } from "./commonDb-89160e91.js";
+import { r as render } from "./index-c47ff54b.js";
+import { u as utils, v as configureSvgSize } from "./utils-1aebe9b6.js";
+import "./mermaidAPI-c841a67f.js";
+import "./edges-17d4be60.js";
+import "./createText-b0d5c0ec.js";
+import "./svgDraw-dd61ddfa.js";
+import "./line-fbe8f138.js";
+import "./array-b7dcf730.js";
+import "./constant-b644328d.js";
+const SHAPE_STATE = "rect";
+const SHAPE_STATE_WITH_DESC = "rectWithTitle";
+const SHAPE_START = "start";
+const SHAPE_END = "end";
+const SHAPE_DIVIDER = "divider";
+const SHAPE_GROUP = "roundedWithTitle";
+const SHAPE_NOTE = "note";
+const SHAPE_NOTEGROUP = "noteGroup";
+const CSS_DIAGRAM = "statediagram";
+const CSS_STATE = "state";
+const CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`;
+const CSS_EDGE = "transition";
+const CSS_NOTE = "note";
+const CSS_NOTE_EDGE = "note-edge";
+const CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`;
+const CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`;
+const CSS_CLUSTER = "cluster";
+const CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`;
+const CSS_CLUSTER_ALT = "cluster-alt";
+const CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`;
+const PARENT = "parent";
+const NOTE = "note";
+const DOMID_STATE = "state";
+const DOMID_TYPE_SPACER = "----";
+const NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`;
+const PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`;
+const G_EDGE_STYLE = "fill:none";
+const G_EDGE_ARROWHEADSTYLE = "fill: #333";
+const G_EDGE_LABELPOS = "c";
+const G_EDGE_LABELTYPE = "text";
+const G_EDGE_THICKNESS = "normal";
+let nodeDb = {};
+let graphItemCount = 0;
+const setConf = function(cnf) {
+ const keys = Object.keys(cnf);
+ for (const key of keys) {
+ cnf[key];
+ }
+};
+const getClasses = function(text, diagramObj) {
+ log.trace("Extracting classes");
+ diagramObj.db.clear();
+ try {
+ diagramObj.parser.parse(text);
+ diagramObj.db.extract(diagramObj.db.getRootDocV2());
+ return diagramObj.db.getClasses();
+ } catch (e) {
+ return e;
+ }
+};
+function getClassesFromDbInfo(dbInfoItem) {
+ if (dbInfoItem === void 0 || dbInfoItem === null) {
+ return "";
+ } else {
+ if (dbInfoItem.classes) {
+ return dbInfoItem.classes.join(" ");
+ } else {
+ return "";
+ }
+ }
+}
+function stateDomId(itemId = "", counter = 0, type = "", typeSpacer = DOMID_TYPE_SPACER) {
+ const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : "";
+ return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`;
+}
+const setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => {
+ const itemId = parsedItem.id;
+ const classStr = getClassesFromDbInfo(diagramStates[itemId]);
+ if (itemId !== "root") {
+ let shape = SHAPE_STATE;
+ if (parsedItem.start === true) {
+ shape = SHAPE_START;
+ }
+ if (parsedItem.start === false) {
+ shape = SHAPE_END;
+ }
+ if (parsedItem.type !== DEFAULT_STATE_TYPE) {
+ shape = parsedItem.type;
+ }
+ if (!nodeDb[itemId]) {
+ nodeDb[itemId] = {
+ id: itemId,
+ shape,
+ description: common.sanitizeText(itemId, getConfig()),
+ classes: `${classStr} ${CSS_DIAGRAM_STATE}`
+ };
+ }
+ const newNode = nodeDb[itemId];
+ if (parsedItem.description) {
+ if (Array.isArray(newNode.description)) {
+ newNode.shape = SHAPE_STATE_WITH_DESC;
+ newNode.description.push(parsedItem.description);
+ } else {
+ if (newNode.description.length > 0) {
+ newNode.shape = SHAPE_STATE_WITH_DESC;
+ if (newNode.description === itemId) {
+ newNode.description = [parsedItem.description];
+ } else {
+ newNode.description = [newNode.description, parsedItem.description];
+ }
+ } else {
+ newNode.shape = SHAPE_STATE;
+ newNode.description = parsedItem.description;
+ }
+ }
+ newNode.description = common.sanitizeTextOrArray(newNode.description, getConfig());
+ }
+ if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) {
+ newNode.shape = SHAPE_STATE;
+ }
+ if (!newNode.type && parsedItem.doc) {
+ log.info("Setting cluster for ", itemId, getDir(parsedItem));
+ newNode.type = "group";
+ newNode.dir = getDir(parsedItem);
+ newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP;
+ newNode.classes = newNode.classes + " " + CSS_DIAGRAM_CLUSTER + " " + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : "");
+ }
+ const nodeData = {
+ labelStyle: "",
+ shape: newNode.shape,
+ labelText: newNode.description,
+ // typeof newNode.description === 'object'
+ // ? newNode.description[0]
+ // : newNode.description,
+ classes: newNode.classes,
+ style: "",
+ //styles.style,
+ id: itemId,
+ dir: newNode.dir,
+ domId: stateDomId(itemId, graphItemCount),
+ type: newNode.type,
+ padding: 15
+ //getConfig().flowchart.padding
+ };
+ nodeData.centerLabel = true;
+ if (parsedItem.note) {
+ const noteData = {
+ labelStyle: "",
+ shape: SHAPE_NOTE,
+ labelText: parsedItem.note.text,
+ classes: CSS_DIAGRAM_NOTE,
+ // useHtmlLabels: false,
+ style: "",
+ // styles.style,
+ id: itemId + NOTE_ID + "-" + graphItemCount,
+ domId: stateDomId(itemId, graphItemCount, NOTE),
+ type: newNode.type,
+ padding: 15
+ //getConfig().flowchart.padding
+ };
+ const groupData = {
+ labelStyle: "",
+ shape: SHAPE_NOTEGROUP,
+ labelText: parsedItem.note.text,
+ classes: newNode.classes,
+ style: "",
+ // styles.style,
+ id: itemId + PARENT_ID,
+ domId: stateDomId(itemId, graphItemCount, PARENT),
+ type: "group",
+ padding: 0
+ //getConfig().flowchart.padding
+ };
+ graphItemCount++;
+ const parentNodeId = itemId + PARENT_ID;
+ g.setNode(parentNodeId, groupData);
+ g.setNode(noteData.id, noteData);
+ g.setNode(itemId, nodeData);
+ g.setParent(itemId, parentNodeId);
+ g.setParent(noteData.id, parentNodeId);
+ let from = itemId;
+ let to = noteData.id;
+ if (parsedItem.note.position === "left of") {
+ from = noteData.id;
+ to = itemId;
+ }
+ g.setEdge(from, to, {
+ arrowhead: "none",
+ arrowType: "",
+ style: G_EDGE_STYLE,
+ labelStyle: "",
+ classes: CSS_EDGE_NOTE_EDGE,
+ arrowheadStyle: G_EDGE_ARROWHEADSTYLE,
+ labelpos: G_EDGE_LABELPOS,
+ labelType: G_EDGE_LABELTYPE,
+ thickness: G_EDGE_THICKNESS
+ });
+ } else {
+ g.setNode(itemId, nodeData);
+ }
+ }
+ if (parent && parent.id !== "root") {
+ log.trace("Setting node ", itemId, " to be child of its parent ", parent.id);
+ g.setParent(itemId, parent.id);
+ }
+ if (parsedItem.doc) {
+ log.trace("Adding nodes children ");
+ setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag);
+ }
+};
+const setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => {
+ log.trace("items", doc);
+ doc.forEach((item) => {
+ switch (item.stmt) {
+ case STMT_STATE:
+ setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);
+ break;
+ case DEFAULT_STATE_TYPE:
+ setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);
+ break;
+ case STMT_RELATION:
+ {
+ setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag);
+ setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag);
+ const edgeData = {
+ id: "edge" + graphItemCount,
+ arrowhead: "normal",
+ arrowTypeEnd: "arrow_barb",
+ style: G_EDGE_STYLE,
+ labelStyle: "",
+ label: common.sanitizeText(item.description, getConfig()),
+ arrowheadStyle: G_EDGE_ARROWHEADSTYLE,
+ labelpos: G_EDGE_LABELPOS,
+ labelType: G_EDGE_LABELTYPE,
+ thickness: G_EDGE_THICKNESS,
+ classes: CSS_EDGE
+ };
+ g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount);
+ graphItemCount++;
+ }
+ break;
+ }
+ });
+};
+const getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {
+ let dir = defaultDir;
+ if (parsedItem.doc) {
+ for (let i = 0; i < parsedItem.doc.length; i++) {
+ const parsedItemDoc = parsedItem.doc[i];
+ if (parsedItemDoc.stmt === "dir") {
+ dir = parsedItemDoc.value;
+ }
+ }
+ }
+ return dir;
+};
+const draw = function(text, id, _version, diag) {
+ log.info("Drawing state diagram (v2)", id);
+ nodeDb = {};
+ let dir = diag.db.getDirection();
+ if (dir === void 0) {
+ dir = DEFAULT_DIAGRAM_DIRECTION;
+ }
+ const { securityLevel, state: conf } = getConfig();
+ const nodeSpacing = conf.nodeSpacing || 50;
+ const rankSpacing = conf.rankSpacing || 50;
+ log.info(diag.db.getRootDocV2());
+ diag.db.extract(diag.db.getRootDocV2());
+ log.info(diag.db.getRootDocV2());
+ const diagramStates = diag.db.getStates();
+ const g = new Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: getDir(diag.db.getRootDocV2()),
+ nodesep: nodeSpacing,
+ ranksep: rankSpacing,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ setupNode(g, void 0, diag.db.getRootDocV2(), diagramStates, diag.db, true);
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const svg = root.select(`[id="${id}"]`);
+ const element = root.select("#" + id + " g");
+ render(element, g, ["barb"], CSS_DIAGRAM, id);
+ const padding = 8;
+ utils.insertTitle(svg, "statediagramTitleText", conf.titleTopMargin, diag.db.getDiagramTitle());
+ const bounds = svg.node().getBBox();
+ const width = bounds.width + padding * 2;
+ const height = bounds.height + padding * 2;
+ svg.attr("class", CSS_DIAGRAM);
+ const svgBounds = svg.node().getBBox();
+ configureSvgSize(svg, height, width, conf.useMaxWidth);
+ const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;
+ log.debug(`viewBox ${vBox}`);
+ svg.attr("viewBox", vBox);
+ const labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
+ for (const label of labels) {
+ const dim = label.getBBox();
+ const rect = document.createElementNS("http://www.w3.org/2000/svg", SHAPE_STATE);
+ rect.setAttribute("rx", 0);
+ rect.setAttribute("ry", 0);
+ rect.setAttribute("width", dim.width);
+ rect.setAttribute("height", dim.height);
+ label.insertBefore(rect, label.firstChild);
+ }
+};
+const renderer = {
+ setConf,
+ getClasses,
+ draw
+};
+const diagram = {
+ parser,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ if (!cnf.state) {
+ cnf.state = {};
+ }
+ cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ db.clear();
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=stateDiagram-v2-660a5d6e.js.map
diff --git a/scopegraphs-render-docs/doc/js/stateDiagram-v2-9765461d.js b/scopegraphs-render-docs/doc/js/stateDiagram-v2-9765461d.js
new file mode 100644
index 0000000..6c84e28
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/stateDiagram-v2-9765461d.js
@@ -0,0 +1,345 @@
+import { D as DEFAULT_DIAGRAM_DIRECTION, a as DEFAULT_STATE_TYPE, b as DIVIDER_TYPE, S as STMT_RELATION, c as STMT_STATE, e as DEFAULT_NESTED_DOC_DIR, p as parser, d as db, s as styles } from "./styles-47a825a5.js";
+import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
+import { select } from "d3";
+import { l as log, g as getConfig, e as common } from "./commonDb-573409be.js";
+import { r as render } from "./index-5219d011.js";
+import { u as utils, k as configureSvgSize } from "./utils-d622194a.js";
+import "./mermaidAPI-3ae0f2f0.js";
+import "stylis";
+import "dompurify";
+import "lodash-es/isEmpty.js";
+import "dayjs";
+import "khroma";
+import "dagre-d3-es/src/dagre/index.js";
+import "dagre-d3-es/src/graphlib/json.js";
+import "./edges-2e77835f.js";
+import "./createText-1f5f8f92.js";
+import "@khanacademy/simple-markdown";
+import "./svgDraw-2526cba0.js";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+const SHAPE_STATE = "rect";
+const SHAPE_STATE_WITH_DESC = "rectWithTitle";
+const SHAPE_START = "start";
+const SHAPE_END = "end";
+const SHAPE_DIVIDER = "divider";
+const SHAPE_GROUP = "roundedWithTitle";
+const SHAPE_NOTE = "note";
+const SHAPE_NOTEGROUP = "noteGroup";
+const CSS_DIAGRAM = "statediagram";
+const CSS_STATE = "state";
+const CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`;
+const CSS_EDGE = "transition";
+const CSS_NOTE = "note";
+const CSS_NOTE_EDGE = "note-edge";
+const CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`;
+const CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`;
+const CSS_CLUSTER = "cluster";
+const CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`;
+const CSS_CLUSTER_ALT = "cluster-alt";
+const CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`;
+const PARENT = "parent";
+const NOTE = "note";
+const DOMID_STATE = "state";
+const DOMID_TYPE_SPACER = "----";
+const NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`;
+const PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`;
+const G_EDGE_STYLE = "fill:none";
+const G_EDGE_ARROWHEADSTYLE = "fill: #333";
+const G_EDGE_LABELPOS = "c";
+const G_EDGE_LABELTYPE = "text";
+const G_EDGE_THICKNESS = "normal";
+let nodeDb = {};
+let graphItemCount = 0;
+const setConf = function(cnf) {
+ const keys = Object.keys(cnf);
+ for (const key of keys) {
+ cnf[key];
+ }
+};
+const getClasses = function(text, diagramObj) {
+ log.trace("Extracting classes");
+ diagramObj.db.clear();
+ try {
+ diagramObj.parser.parse(text);
+ diagramObj.db.extract(diagramObj.db.getRootDocV2());
+ return diagramObj.db.getClasses();
+ } catch (e) {
+ return e;
+ }
+};
+function getClassesFromDbInfo(dbInfoItem) {
+ if (dbInfoItem === void 0 || dbInfoItem === null) {
+ return "";
+ } else {
+ if (dbInfoItem.classes) {
+ return dbInfoItem.classes.join(" ");
+ } else {
+ return "";
+ }
+ }
+}
+function stateDomId(itemId = "", counter = 0, type = "", typeSpacer = DOMID_TYPE_SPACER) {
+ const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : "";
+ return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`;
+}
+const setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => {
+ const itemId = parsedItem.id;
+ const classStr = getClassesFromDbInfo(diagramStates[itemId]);
+ if (itemId !== "root") {
+ let shape = SHAPE_STATE;
+ if (parsedItem.start === true) {
+ shape = SHAPE_START;
+ }
+ if (parsedItem.start === false) {
+ shape = SHAPE_END;
+ }
+ if (parsedItem.type !== DEFAULT_STATE_TYPE) {
+ shape = parsedItem.type;
+ }
+ if (!nodeDb[itemId]) {
+ nodeDb[itemId] = {
+ id: itemId,
+ shape,
+ description: common.sanitizeText(itemId, getConfig()),
+ classes: `${classStr} ${CSS_DIAGRAM_STATE}`
+ };
+ }
+ const newNode = nodeDb[itemId];
+ if (parsedItem.description) {
+ if (Array.isArray(newNode.description)) {
+ newNode.shape = SHAPE_STATE_WITH_DESC;
+ newNode.description.push(parsedItem.description);
+ } else {
+ if (newNode.description.length > 0) {
+ newNode.shape = SHAPE_STATE_WITH_DESC;
+ if (newNode.description === itemId) {
+ newNode.description = [parsedItem.description];
+ } else {
+ newNode.description = [newNode.description, parsedItem.description];
+ }
+ } else {
+ newNode.shape = SHAPE_STATE;
+ newNode.description = parsedItem.description;
+ }
+ }
+ newNode.description = common.sanitizeTextOrArray(newNode.description, getConfig());
+ }
+ if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) {
+ newNode.shape = SHAPE_STATE;
+ }
+ if (!newNode.type && parsedItem.doc) {
+ log.info("Setting cluster for ", itemId, getDir(parsedItem));
+ newNode.type = "group";
+ newNode.dir = getDir(parsedItem);
+ newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP;
+ newNode.classes = newNode.classes + " " + CSS_DIAGRAM_CLUSTER + " " + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : "");
+ }
+ const nodeData = {
+ labelStyle: "",
+ shape: newNode.shape,
+ labelText: newNode.description,
+ // typeof newNode.description === 'object'
+ // ? newNode.description[0]
+ // : newNode.description,
+ classes: newNode.classes,
+ style: "",
+ //styles.style,
+ id: itemId,
+ dir: newNode.dir,
+ domId: stateDomId(itemId, graphItemCount),
+ type: newNode.type,
+ padding: 15
+ //getConfig().flowchart.padding
+ };
+ nodeData.centerLabel = true;
+ if (parsedItem.note) {
+ const noteData = {
+ labelStyle: "",
+ shape: SHAPE_NOTE,
+ labelText: parsedItem.note.text,
+ classes: CSS_DIAGRAM_NOTE,
+ // useHtmlLabels: false,
+ style: "",
+ // styles.style,
+ id: itemId + NOTE_ID + "-" + graphItemCount,
+ domId: stateDomId(itemId, graphItemCount, NOTE),
+ type: newNode.type,
+ padding: 15
+ //getConfig().flowchart.padding
+ };
+ const groupData = {
+ labelStyle: "",
+ shape: SHAPE_NOTEGROUP,
+ labelText: parsedItem.note.text,
+ classes: newNode.classes,
+ style: "",
+ // styles.style,
+ id: itemId + PARENT_ID,
+ domId: stateDomId(itemId, graphItemCount, PARENT),
+ type: "group",
+ padding: 0
+ //getConfig().flowchart.padding
+ };
+ graphItemCount++;
+ const parentNodeId = itemId + PARENT_ID;
+ g.setNode(parentNodeId, groupData);
+ g.setNode(noteData.id, noteData);
+ g.setNode(itemId, nodeData);
+ g.setParent(itemId, parentNodeId);
+ g.setParent(noteData.id, parentNodeId);
+ let from = itemId;
+ let to = noteData.id;
+ if (parsedItem.note.position === "left of") {
+ from = noteData.id;
+ to = itemId;
+ }
+ g.setEdge(from, to, {
+ arrowhead: "none",
+ arrowType: "",
+ style: G_EDGE_STYLE,
+ labelStyle: "",
+ classes: CSS_EDGE_NOTE_EDGE,
+ arrowheadStyle: G_EDGE_ARROWHEADSTYLE,
+ labelpos: G_EDGE_LABELPOS,
+ labelType: G_EDGE_LABELTYPE,
+ thickness: G_EDGE_THICKNESS
+ });
+ } else {
+ g.setNode(itemId, nodeData);
+ }
+ }
+ if (parent && parent.id !== "root") {
+ log.trace("Setting node ", itemId, " to be child of its parent ", parent.id);
+ g.setParent(itemId, parent.id);
+ }
+ if (parsedItem.doc) {
+ log.trace("Adding nodes children ");
+ setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag);
+ }
+};
+const setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => {
+ log.trace("items", doc);
+ doc.forEach((item) => {
+ switch (item.stmt) {
+ case STMT_STATE:
+ setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);
+ break;
+ case DEFAULT_STATE_TYPE:
+ setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);
+ break;
+ case STMT_RELATION:
+ {
+ setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag);
+ setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag);
+ const edgeData = {
+ id: "edge" + graphItemCount,
+ arrowhead: "normal",
+ arrowTypeEnd: "arrow_barb",
+ style: G_EDGE_STYLE,
+ labelStyle: "",
+ label: common.sanitizeText(item.description, getConfig()),
+ arrowheadStyle: G_EDGE_ARROWHEADSTYLE,
+ labelpos: G_EDGE_LABELPOS,
+ labelType: G_EDGE_LABELTYPE,
+ thickness: G_EDGE_THICKNESS,
+ classes: CSS_EDGE
+ };
+ g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount);
+ graphItemCount++;
+ }
+ break;
+ }
+ });
+};
+const getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {
+ let dir = defaultDir;
+ if (parsedItem.doc) {
+ for (let i = 0; i < parsedItem.doc.length; i++) {
+ const parsedItemDoc = parsedItem.doc[i];
+ if (parsedItemDoc.stmt === "dir") {
+ dir = parsedItemDoc.value;
+ }
+ }
+ }
+ return dir;
+};
+const draw = function(text, id, _version, diag) {
+ log.info("Drawing state diagram (v2)", id);
+ nodeDb = {};
+ let dir = diag.db.getDirection();
+ if (dir === void 0) {
+ dir = DEFAULT_DIAGRAM_DIRECTION;
+ }
+ const { securityLevel, state: conf } = getConfig();
+ const nodeSpacing = conf.nodeSpacing || 50;
+ const rankSpacing = conf.rankSpacing || 50;
+ log.info(diag.db.getRootDocV2());
+ diag.db.extract(diag.db.getRootDocV2());
+ log.info(diag.db.getRootDocV2());
+ const diagramStates = diag.db.getStates();
+ const g = new graphlib.Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: getDir(diag.db.getRootDocV2()),
+ nodesep: nodeSpacing,
+ ranksep: rankSpacing,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ setupNode(g, void 0, diag.db.getRootDocV2(), diagramStates, diag.db, true);
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const svg = root.select(`[id="${id}"]`);
+ const element = root.select("#" + id + " g");
+ render(element, g, ["barb"], CSS_DIAGRAM, id);
+ const padding = 8;
+ utils.insertTitle(svg, "statediagramTitleText", conf.titleTopMargin, diag.db.getDiagramTitle());
+ const bounds = svg.node().getBBox();
+ const width = bounds.width + padding * 2;
+ const height = bounds.height + padding * 2;
+ svg.attr("class", CSS_DIAGRAM);
+ const svgBounds = svg.node().getBBox();
+ configureSvgSize(svg, height, width, conf.useMaxWidth);
+ const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;
+ log.debug(`viewBox ${vBox}`);
+ svg.attr("viewBox", vBox);
+ const labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
+ for (const label of labels) {
+ const dim = label.getBBox();
+ const rect = document.createElementNS("http://www.w3.org/2000/svg", SHAPE_STATE);
+ rect.setAttribute("rx", 0);
+ rect.setAttribute("ry", 0);
+ rect.setAttribute("width", dim.width);
+ rect.setAttribute("height", dim.height);
+ label.insertBefore(rect, label.firstChild);
+ }
+};
+const renderer = {
+ setConf,
+ getClasses,
+ draw
+};
+const diagram = {
+ parser,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ if (!cnf.state) {
+ cnf.state = {};
+ }
+ cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ db.clear();
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=stateDiagram-v2-9765461d.js.map
diff --git a/scopegraphs-render-docs/doc/js/stateDiagram-v2-c3d22c51.js b/scopegraphs-render-docs/doc/js/stateDiagram-v2-c3d22c51.js
new file mode 100644
index 0000000..973327f
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/stateDiagram-v2-c3d22c51.js
@@ -0,0 +1,199 @@
+import { D as Q, a as U, b as X, S as Z, c as j, e as I, p as tt, d as B, s as et } from "./styles-55de9f38.js";
+import { G as ot } from "./layout-492ec81d.js";
+import { l as a, g, h as x, f as G } from "./commonDb-41f8b4c5.js";
+import { r as st } from "./index-6271e032.js";
+import { u as nt, v as ct } from "./utils-8ea37061.js";
+import "./mermaidAPI-67f627de.js";
+import "./edges-de377bae.js";
+import "./createText-23817c58.js";
+import "./svgDraw-0a992cdb.js";
+import "./line-05ccbb85.js";
+import "./array-2ff2c7a6.js";
+import "./constant-2fe7eae5.js";
+const h = "rect", C = "rectWithTitle", it = "start", rt = "end", lt = "divider", at = "roundedWithTitle", dt = "note", Et = "noteGroup", u = "statediagram", St = "state", Tt = `${u}-${St}`, V = "transition", pt = "note", ut = "note-edge", _t = `${V} ${ut}`, ft = `${u}-${pt}`, Dt = "cluster", At = `${u}-${Dt}`, bt = "cluster-alt", ht = `${u}-${bt}`, Y = "parent", W = "note", yt = "state", N = "----", gt = `${N}${W}`, H = `${N}${Y}`, m = "fill:none", z = "fill: #333", q = "c", K = "text", F = "normal";
+let y = {}, E = 0;
+const Rt = function(t) {
+ const n = Object.keys(t);
+ for (const o of n)
+ t[o];
+}, xt = function(t, n) {
+ a.trace("Extracting classes"), n.db.clear();
+ try {
+ return n.parser.parse(t), n.db.extract(n.db.getRootDocV2()), n.db.getClasses();
+ } catch (o) {
+ return o;
+ }
+};
+function Ct(t) {
+ return t == null ? "" : t.classes ? t.classes.join(" ") : "";
+}
+function $(t = "", n = 0, o = "", c = N) {
+ const i = o !== null && o.length > 0 ? `${c}${o}` : "";
+ return `${yt}-${t}${i}-${n}`;
+}
+const D = (t, n, o, c, i, r) => {
+ const e = o.id, _ = Ct(c[e]);
+ if (e !== "root") {
+ let T = h;
+ o.start === !0 && (T = it), o.start === !1 && (T = rt), o.type !== U && (T = o.type), y[e] || (y[e] = {
+ id: e,
+ shape: T,
+ description: G.sanitizeText(e, g()),
+ classes: `${_} ${Tt}`
+ });
+ const s = y[e];
+ o.description && (Array.isArray(s.description) ? (s.shape = C, s.description.push(o.description)) : s.description.length > 0 ? (s.shape = C, s.description === e ? s.description = [o.description] : s.description = [s.description, o.description]) : (s.shape = h, s.description = o.description), s.description = G.sanitizeTextOrArray(s.description, g())), s.description.length === 1 && s.shape === C && (s.shape = h), !s.type && o.doc && (a.info("Setting cluster for ", e, w(o)), s.type = "group", s.dir = w(o), s.shape = o.type === X ? lt : at, s.classes = s.classes + " " + At + " " + (r ? ht : ""));
+ const p = {
+ labelStyle: "",
+ shape: s.shape,
+ labelText: s.description,
+ // typeof newNode.description === 'object'
+ // ? newNode.description[0]
+ // : newNode.description,
+ classes: s.classes,
+ style: "",
+ //styles.style,
+ id: e,
+ dir: s.dir,
+ domId: $(e, E),
+ type: s.type,
+ padding: 15
+ //getConfig().flowchart.padding
+ };
+ if (p.centerLabel = !0, o.note) {
+ const d = {
+ labelStyle: "",
+ shape: dt,
+ labelText: o.note.text,
+ classes: ft,
+ // useHtmlLabels: false,
+ style: "",
+ // styles.style,
+ id: e + gt + "-" + E,
+ domId: $(e, E, W),
+ type: s.type,
+ padding: 15
+ //getConfig().flowchart.padding
+ }, A = {
+ labelStyle: "",
+ shape: Et,
+ labelText: o.note.text,
+ classes: s.classes,
+ style: "",
+ // styles.style,
+ id: e + H,
+ domId: $(e, E, Y),
+ type: "group",
+ padding: 0
+ //getConfig().flowchart.padding
+ };
+ E++;
+ const l = e + H;
+ t.setNode(l, A), t.setNode(d.id, d), t.setNode(e, p), t.setParent(e, l), t.setParent(d.id, l);
+ let b = e, S = d.id;
+ o.note.position === "left of" && (b = d.id, S = e), t.setEdge(b, S, {
+ arrowhead: "none",
+ arrowType: "",
+ style: m,
+ labelStyle: "",
+ classes: _t,
+ arrowheadStyle: z,
+ labelpos: q,
+ labelType: K,
+ thickness: F
+ });
+ } else
+ t.setNode(e, p);
+ }
+ n && n.id !== "root" && (a.trace("Setting node ", e, " to be child of its parent ", n.id), t.setParent(e, n.id)), o.doc && (a.trace("Adding nodes children "), $t(t, o, o.doc, c, i, !r));
+}, $t = (t, n, o, c, i, r) => {
+ a.trace("items", o), o.forEach((e) => {
+ switch (e.stmt) {
+ case j:
+ D(t, n, e, c, i, r);
+ break;
+ case U:
+ D(t, n, e, c, i, r);
+ break;
+ case Z:
+ {
+ D(t, n, e.state1, c, i, r), D(t, n, e.state2, c, i, r);
+ const _ = {
+ id: "edge" + E,
+ arrowhead: "normal",
+ arrowTypeEnd: "arrow_barb",
+ style: m,
+ labelStyle: "",
+ label: G.sanitizeText(e.description, g()),
+ arrowheadStyle: z,
+ labelpos: q,
+ labelType: K,
+ thickness: F,
+ classes: V
+ };
+ t.setEdge(e.state1.id, e.state2.id, _, E), E++;
+ }
+ break;
+ }
+ });
+}, w = (t, n = I) => {
+ let o = n;
+ if (t.doc)
+ for (let c = 0; c < t.doc.length; c++) {
+ const i = t.doc[c];
+ i.stmt === "dir" && (o = i.value);
+ }
+ return o;
+}, Gt = function(t, n, o, c) {
+ a.info("Drawing state diagram (v2)", n), y = {};
+ let i = c.db.getDirection();
+ i === void 0 && (i = Q);
+ const { securityLevel: r, state: e } = g(), _ = e.nodeSpacing || 50, T = e.rankSpacing || 50;
+ a.info(c.db.getRootDocV2()), c.db.extract(c.db.getRootDocV2()), a.info(c.db.getRootDocV2());
+ const s = c.db.getStates(), p = new ot({
+ multigraph: !0,
+ compound: !0
+ }).setGraph({
+ rankdir: w(c.db.getRootDocV2()),
+ nodesep: _,
+ ranksep: T,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ D(p, void 0, c.db.getRootDocV2(), s, c.db, !0);
+ let d;
+ r === "sandbox" && (d = x("#i" + n));
+ const A = r === "sandbox" ? x(d.nodes()[0].contentDocument.body) : x("body"), l = A.select(`[id="${n}"]`), b = A.select("#" + n + " g");
+ st(b, p, ["barb"], u, n);
+ const S = 8;
+ nt.insertTitle(l, "statediagramTitleText", e.titleTopMargin, c.db.getDiagramTitle());
+ const L = l.node().getBBox(), P = L.width + S * 2, O = L.height + S * 2;
+ l.attr("class", u);
+ const k = l.node().getBBox();
+ ct(l, O, P, e.useMaxWidth);
+ const M = `${k.x - S} ${k.y - S} ${P} ${O}`;
+ a.debug(`viewBox ${M}`), l.attr("viewBox", M);
+ const J = document.querySelectorAll('[id="' + n + '"] .edgeLabel .label');
+ for (const R of J) {
+ const v = R.getBBox(), f = document.createElementNS("http://www.w3.org/2000/svg", h);
+ f.setAttribute("rx", 0), f.setAttribute("ry", 0), f.setAttribute("width", v.width), f.setAttribute("height", v.height), R.insertBefore(f, R.firstChild);
+ }
+}, wt = {
+ setConf: Rt,
+ getClasses: xt,
+ draw: Gt
+}, Wt = {
+ parser: tt,
+ db: B,
+ renderer: wt,
+ styles: et,
+ init: (t) => {
+ t.state || (t.state = {}), t.state.arrowMarkerAbsolute = t.arrowMarkerAbsolute, B.clear();
+ }
+};
+export {
+ Wt as diagram
+};
+//# sourceMappingURL=stateDiagram-v2-c3d22c51.js.map
diff --git a/scopegraphs-render-docs/doc/js/styles-123f2a17.js b/scopegraphs-render-docs/doc/js/styles-123f2a17.js
new file mode 100644
index 0000000..0040fc2
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/styles-123f2a17.js
@@ -0,0 +1,1303 @@
+import { q as setAccTitle, v as getAccTitle, w as getAccDescription, x as setAccDescription, g as getConfig, y as setDiagramTitle, z as getDiagramTitle, A as clear$1, l as log, f as common, h as select } from "./commonDb-89160e91.js";
+import { u as utils } from "./utils-1aebe9b6.js";
+import { m as mermaidAPI } from "./mermaidAPI-c841a67f.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 3], $V1 = [1, 7], $V2 = [1, 8], $V3 = [1, 9], $V4 = [1, 10], $V5 = [1, 13], $V6 = [1, 12], $V7 = [1, 16, 25], $V8 = [1, 20], $V9 = [1, 32], $Va = [1, 33], $Vb = [1, 34], $Vc = [1, 48], $Vd = [1, 39], $Ve = [1, 37], $Vf = [1, 38], $Vg = [1, 44], $Vh = [1, 45], $Vi = [1, 40], $Vj = [1, 41], $Vk = [1, 42], $Vl = [1, 43], $Vm = [1, 49], $Vn = [1, 50], $Vo = [1, 51], $Vp = [1, 52], $Vq = [16, 25], $Vr = [1, 66], $Vs = [1, 67], $Vt = [1, 68], $Vu = [1, 69], $Vv = [1, 70], $Vw = [1, 71], $Vx = [1, 72], $Vy = [1, 82], $Vz = [16, 25, 28, 29, 36, 49, 50, 64, 65, 66, 67, 68, 69, 70, 75, 77], $VA = [16, 25, 28, 29, 34, 36, 49, 50, 55, 64, 65, 66, 67, 68, 69, 70, 75, 77, 92, 93, 94, 95], $VB = [5, 8, 9, 10, 11, 16, 19, 23, 25], $VC = [29, 92, 93, 94, 95], $VD = [29, 69, 70, 92, 93, 94, 95], $VE = [29, 64, 65, 66, 67, 68, 92, 93, 94, 95], $VF = [1, 96], $VG = [16, 25, 49, 50], $VH = [16, 25, 36];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "statments": 5, "direction": 6, "directive": 7, "direction_tb": 8, "direction_bt": 9, "direction_rl": 10, "direction_lr": 11, "graphConfig": 12, "openDirective": 13, "typeDirective": 14, "closeDirective": 15, "NEWLINE": 16, ":": 17, "argDirective": 18, "open_directive": 19, "type_directive": 20, "arg_directive": 21, "close_directive": 22, "CLASS_DIAGRAM": 23, "statements": 24, "EOF": 25, "statement": 26, "classLabel": 27, "SQS": 28, "STR": 29, "SQE": 30, "className": 31, "alphaNumToken": 32, "classLiteralName": 33, "GENERICTYPE": 34, "relationStatement": 35, "LABEL": 36, "classStatement": 37, "methodStatement": 38, "annotationStatement": 39, "clickStatement": 40, "cssClassStatement": 41, "noteStatement": 42, "acc_title": 43, "acc_title_value": 44, "acc_descr": 45, "acc_descr_value": 46, "acc_descr_multiline_value": 47, "classIdentifier": 48, "STYLE_SEPARATOR": 49, "STRUCT_START": 50, "members": 51, "STRUCT_STOP": 52, "CLASS": 53, "ANNOTATION_START": 54, "ANNOTATION_END": 55, "MEMBER": 56, "SEPARATOR": 57, "relation": 58, "NOTE_FOR": 59, "noteText": 60, "NOTE": 61, "relationType": 62, "lineType": 63, "AGGREGATION": 64, "EXTENSION": 65, "COMPOSITION": 66, "DEPENDENCY": 67, "LOLLIPOP": 68, "LINE": 69, "DOTTED_LINE": 70, "CALLBACK": 71, "LINK": 72, "LINK_TARGET": 73, "CLICK": 74, "CALLBACK_NAME": 75, "CALLBACK_ARGS": 76, "HREF": 77, "CSSCLASS": 78, "commentToken": 79, "textToken": 80, "graphCodeTokens": 81, "textNoTagsToken": 82, "TAGSTART": 83, "TAGEND": 84, "==": 85, "--": 86, "PCT": 87, "DEFAULT": 88, "SPACE": 89, "MINUS": 90, "keywords": 91, "UNICODE_TEXT": 92, "NUM": 93, "ALPHA": 94, "BQUOTE_STR": 95, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 5: "statments", 8: "direction_tb", 9: "direction_bt", 10: "direction_rl", 11: "direction_lr", 16: "NEWLINE", 17: ":", 19: "open_directive", 20: "type_directive", 21: "arg_directive", 22: "close_directive", 23: "CLASS_DIAGRAM", 25: "EOF", 28: "SQS", 29: "STR", 30: "SQE", 34: "GENERICTYPE", 36: "LABEL", 43: "acc_title", 44: "acc_title_value", 45: "acc_descr", 46: "acc_descr_value", 47: "acc_descr_multiline_value", 49: "STYLE_SEPARATOR", 50: "STRUCT_START", 52: "STRUCT_STOP", 53: "CLASS", 54: "ANNOTATION_START", 55: "ANNOTATION_END", 56: "MEMBER", 57: "SEPARATOR", 59: "NOTE_FOR", 61: "NOTE", 64: "AGGREGATION", 65: "EXTENSION", 66: "COMPOSITION", 67: "DEPENDENCY", 68: "LOLLIPOP", 69: "LINE", 70: "DOTTED_LINE", 71: "CALLBACK", 72: "LINK", 73: "LINK_TARGET", 74: "CLICK", 75: "CALLBACK_NAME", 76: "CALLBACK_ARGS", 77: "HREF", 78: "CSSCLASS", 81: "graphCodeTokens", 83: "TAGSTART", 84: "TAGEND", 85: "==", 86: "--", 87: "PCT", 88: "DEFAULT", 89: "SPACE", 90: "MINUS", 91: "keywords", 92: "UNICODE_TEXT", 93: "NUM", 94: "ALPHA", 95: "BQUOTE_STR" },
+ productions_: [0, [3, 1], [3, 1], [3, 1], [3, 2], [6, 1], [6, 1], [6, 1], [6, 1], [4, 1], [7, 4], [7, 6], [13, 1], [14, 1], [18, 1], [15, 1], [12, 4], [24, 1], [24, 2], [24, 3], [27, 3], [31, 1], [31, 1], [31, 2], [31, 2], [31, 2], [26, 1], [26, 2], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 2], [26, 2], [26, 1], [37, 1], [37, 3], [37, 4], [37, 6], [48, 2], [48, 3], [39, 4], [51, 1], [51, 2], [38, 1], [38, 2], [38, 1], [38, 1], [35, 3], [35, 4], [35, 4], [35, 5], [42, 3], [42, 2], [58, 3], [58, 2], [58, 2], [58, 1], [62, 1], [62, 1], [62, 1], [62, 1], [62, 1], [63, 1], [63, 1], [40, 3], [40, 4], [40, 3], [40, 4], [40, 4], [40, 5], [40, 3], [40, 4], [40, 4], [40, 5], [40, 3], [40, 4], [40, 4], [40, 5], [41, 3], [79, 1], [79, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [82, 1], [82, 1], [82, 1], [82, 1], [32, 1], [32, 1], [32, 1], [33, 1], [60, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 5:
+ yy.setDirection("TB");
+ break;
+ case 6:
+ yy.setDirection("BT");
+ break;
+ case 7:
+ yy.setDirection("RL");
+ break;
+ case 8:
+ yy.setDirection("LR");
+ break;
+ case 12:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 13:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 14:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 15:
+ yy.parseDirective("}%%", "close_directive", "class");
+ break;
+ case 20:
+ this.$ = $$[$0 - 1];
+ break;
+ case 21:
+ case 22:
+ this.$ = $$[$0];
+ break;
+ case 23:
+ this.$ = $$[$0 - 1] + $$[$0];
+ break;
+ case 24:
+ case 25:
+ this.$ = $$[$0 - 1] + "~" + $$[$0];
+ break;
+ case 26:
+ yy.addRelation($$[$0]);
+ break;
+ case 27:
+ $$[$0 - 1].title = yy.cleanupLabel($$[$0]);
+ yy.addRelation($$[$0 - 1]);
+ break;
+ case 36:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 37:
+ case 38:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 40:
+ yy.setCssClass($$[$0 - 2], $$[$0]);
+ break;
+ case 41:
+ yy.addMembers($$[$0 - 3], $$[$0 - 1]);
+ break;
+ case 42:
+ yy.setCssClass($$[$0 - 5], $$[$0 - 3]);
+ yy.addMembers($$[$0 - 5], $$[$0 - 1]);
+ break;
+ case 43:
+ this.$ = $$[$0];
+ yy.addClass($$[$0]);
+ break;
+ case 44:
+ this.$ = $$[$0 - 1];
+ yy.addClass($$[$0 - 1]);
+ yy.setClassLabel($$[$0 - 1], $$[$0]);
+ break;
+ case 45:
+ yy.addAnnotation($$[$0], $$[$0 - 2]);
+ break;
+ case 46:
+ this.$ = [$$[$0]];
+ break;
+ case 47:
+ $$[$0].push($$[$0 - 1]);
+ this.$ = $$[$0];
+ break;
+ case 48:
+ break;
+ case 49:
+ yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0]));
+ break;
+ case 50:
+ break;
+ case 51:
+ break;
+ case 52:
+ this.$ = { "id1": $$[$0 - 2], "id2": $$[$0], relation: $$[$0 - 1], relationTitle1: "none", relationTitle2: "none" };
+ break;
+ case 53:
+ this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: "none" };
+ break;
+ case 54:
+ this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: "none", relationTitle2: $$[$0 - 1] };
+ break;
+ case 55:
+ this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] };
+ break;
+ case 56:
+ yy.addNote($$[$0], $$[$0 - 1]);
+ break;
+ case 57:
+ yy.addNote($$[$0]);
+ break;
+ case 58:
+ this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] };
+ break;
+ case 59:
+ this.$ = { type1: "none", type2: $$[$0], lineType: $$[$0 - 1] };
+ break;
+ case 60:
+ this.$ = { type1: $$[$0 - 1], type2: "none", lineType: $$[$0] };
+ break;
+ case 61:
+ this.$ = { type1: "none", type2: "none", lineType: $$[$0] };
+ break;
+ case 62:
+ this.$ = yy.relationType.AGGREGATION;
+ break;
+ case 63:
+ this.$ = yy.relationType.EXTENSION;
+ break;
+ case 64:
+ this.$ = yy.relationType.COMPOSITION;
+ break;
+ case 65:
+ this.$ = yy.relationType.DEPENDENCY;
+ break;
+ case 66:
+ this.$ = yy.relationType.LOLLIPOP;
+ break;
+ case 67:
+ this.$ = yy.lineType.LINE;
+ break;
+ case 68:
+ this.$ = yy.lineType.DOTTED_LINE;
+ break;
+ case 69:
+ case 75:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 1], $$[$0]);
+ break;
+ case 70:
+ case 76:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1]);
+ yy.setTooltip($$[$0 - 2], $$[$0]);
+ break;
+ case 71:
+ case 79:
+ this.$ = $$[$0 - 2];
+ yy.setLink($$[$0 - 1], $$[$0]);
+ break;
+ case 72:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 73:
+ case 81:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 2], $$[$0 - 1]);
+ yy.setTooltip($$[$0 - 2], $$[$0]);
+ break;
+ case 74:
+ case 82:
+ this.$ = $$[$0 - 4];
+ yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);
+ yy.setTooltip($$[$0 - 3], $$[$0 - 1]);
+ break;
+ case 77:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 78:
+ this.$ = $$[$0 - 4];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
+ yy.setTooltip($$[$0 - 3], $$[$0]);
+ break;
+ case 80:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 83:
+ yy.setCssClass($$[$0 - 1], $$[$0]);
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: $V0, 6: 4, 7: 5, 8: $V1, 9: $V2, 10: $V3, 11: $V4, 12: 6, 13: 11, 19: $V5, 23: $V6 }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 3: 14, 4: 2, 5: $V0, 6: 4, 7: 5, 8: $V1, 9: $V2, 10: $V3, 11: $V4, 12: 6, 13: 11, 19: $V5, 23: $V6 }, { 1: [2, 9] }, o($V7, [2, 5]), o($V7, [2, 6]), o($V7, [2, 7]), o($V7, [2, 8]), { 14: 15, 20: [1, 16] }, { 16: [1, 17] }, { 20: [2, 12] }, { 1: [2, 4] }, { 15: 18, 17: [1, 19], 22: $V8 }, o([17, 22], [2, 13]), { 6: 31, 7: 30, 8: $V1, 9: $V2, 10: $V3, 11: $V4, 13: 11, 19: $V5, 24: 21, 26: 22, 31: 35, 32: 46, 33: 47, 35: 23, 37: 24, 38: 25, 39: 26, 40: 27, 41: 28, 42: 29, 43: $V9, 45: $Va, 47: $Vb, 48: 36, 53: $Vc, 54: $Vd, 56: $Ve, 57: $Vf, 59: $Vg, 61: $Vh, 71: $Vi, 72: $Vj, 74: $Vk, 78: $Vl, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 16: [1, 53] }, { 18: 54, 21: [1, 55] }, { 16: [2, 15] }, { 25: [1, 56] }, { 16: [1, 57], 25: [2, 17] }, o($Vq, [2, 26], { 36: [1, 58] }), o($Vq, [2, 28]), o($Vq, [2, 29]), o($Vq, [2, 30]), o($Vq, [2, 31]), o($Vq, [2, 32]), o($Vq, [2, 33]), o($Vq, [2, 34]), o($Vq, [2, 35]), { 44: [1, 59] }, { 46: [1, 60] }, o($Vq, [2, 38]), o($Vq, [2, 48], { 58: 61, 62: 64, 63: 65, 29: [1, 62], 36: [1, 63], 64: $Vr, 65: $Vs, 66: $Vt, 67: $Vu, 68: $Vv, 69: $Vw, 70: $Vx }), o($Vq, [2, 39], { 49: [1, 73], 50: [1, 74] }), o($Vq, [2, 50]), o($Vq, [2, 51]), { 32: 75, 92: $Vm, 93: $Vn, 94: $Vo }, { 31: 76, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 31: 77, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 31: 78, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 29: [1, 79] }, { 31: 80, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 29: $Vy, 60: 81 }, o($Vz, [2, 21], { 32: 46, 33: 47, 31: 83, 34: [1, 84], 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }), o($Vz, [2, 22], { 34: [1, 85] }), { 31: 86, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, o($VA, [2, 97]), o($VA, [2, 98]), o($VA, [2, 99]), o([16, 25, 28, 29, 34, 36, 49, 50, 64, 65, 66, 67, 68, 69, 70, 75, 77], [2, 100]), o($VB, [2, 10]), { 15: 87, 22: $V8 }, { 22: [2, 14] }, { 1: [2, 16] }, { 6: 31, 7: 30, 8: $V1, 9: $V2, 10: $V3, 11: $V4, 13: 11, 19: $V5, 24: 88, 25: [2, 18], 26: 22, 31: 35, 32: 46, 33: 47, 35: 23, 37: 24, 38: 25, 39: 26, 40: 27, 41: 28, 42: 29, 43: $V9, 45: $Va, 47: $Vb, 48: 36, 53: $Vc, 54: $Vd, 56: $Ve, 57: $Vf, 59: $Vg, 61: $Vh, 71: $Vi, 72: $Vj, 74: $Vk, 78: $Vl, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, o($Vq, [2, 27]), o($Vq, [2, 36]), o($Vq, [2, 37]), { 29: [1, 90], 31: 89, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 58: 91, 62: 64, 63: 65, 64: $Vr, 65: $Vs, 66: $Vt, 67: $Vu, 68: $Vv, 69: $Vw, 70: $Vx }, o($Vq, [2, 49]), { 63: 92, 69: $Vw, 70: $Vx }, o($VC, [2, 61], { 62: 93, 64: $Vr, 65: $Vs, 66: $Vt, 67: $Vu, 68: $Vv }), o($VD, [2, 62]), o($VD, [2, 63]), o($VD, [2, 64]), o($VD, [2, 65]), o($VD, [2, 66]), o($VE, [2, 67]), o($VE, [2, 68]), { 32: 94, 92: $Vm, 93: $Vn, 94: $Vo }, { 51: 95, 56: $VF }, { 55: [1, 97] }, { 29: [1, 98] }, { 29: [1, 99] }, { 75: [1, 100], 77: [1, 101] }, { 32: 102, 92: $Vm, 93: $Vn, 94: $Vo }, { 29: $Vy, 60: 103 }, o($Vq, [2, 57]), o($Vq, [2, 101]), o($Vz, [2, 23]), o($Vz, [2, 24]), o($Vz, [2, 25]), o($VG, [2, 43], { 27: 104, 28: [1, 105] }), { 16: [1, 106] }, { 25: [2, 19] }, o($VH, [2, 52]), { 31: 107, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 29: [1, 109], 31: 108, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, o($VC, [2, 60], { 62: 110, 64: $Vr, 65: $Vs, 66: $Vt, 67: $Vu, 68: $Vv }), o($VC, [2, 59]), o($Vq, [2, 40], { 50: [1, 111] }), { 52: [1, 112] }, { 51: 113, 52: [2, 46], 56: $VF }, { 31: 114, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, o($Vq, [2, 69], { 29: [1, 115] }), o($Vq, [2, 71], { 29: [1, 117], 73: [1, 116] }), o($Vq, [2, 75], { 29: [1, 118], 76: [1, 119] }), o($Vq, [2, 79], { 29: [1, 121], 73: [1, 120] }), o($Vq, [2, 83]), o($Vq, [2, 56]), o($VG, [2, 44]), { 29: [1, 122] }, o($VB, [2, 11]), o($VH, [2, 54]), o($VH, [2, 53]), { 31: 123, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, o($VC, [2, 58]), { 51: 124, 56: $VF }, o($Vq, [2, 41]), { 52: [2, 47] }, o($Vq, [2, 45]), o($Vq, [2, 70]), o($Vq, [2, 72]), o($Vq, [2, 73], { 73: [1, 125] }), o($Vq, [2, 76]), o($Vq, [2, 77], { 29: [1, 126] }), o($Vq, [2, 80]), o($Vq, [2, 81], { 73: [1, 127] }), { 30: [1, 128] }, o($VH, [2, 55]), { 52: [1, 129] }, o($Vq, [2, 74]), o($Vq, [2, 78]), o($Vq, [2, 82]), o($VG, [2, 20]), o($Vq, [2, 42])],
+ defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 3], 6: [2, 9], 13: [2, 12], 14: [2, 4], 20: [2, 15], 55: [2, 14], 56: [2, 16], 88: [2, 19], 113: [2, 47] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: {},
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 19;
+ case 1:
+ return 8;
+ case 2:
+ return 9;
+ case 3:
+ return 10;
+ case 4:
+ return 11;
+ case 5:
+ this.begin("type_directive");
+ return 20;
+ case 6:
+ this.popState();
+ this.begin("arg_directive");
+ return 17;
+ case 7:
+ this.popState();
+ this.popState();
+ return 22;
+ case 8:
+ return 21;
+ case 9:
+ break;
+ case 10:
+ break;
+ case 11:
+ this.begin("acc_title");
+ return 43;
+ case 12:
+ this.popState();
+ return "acc_title_value";
+ case 13:
+ this.begin("acc_descr");
+ return 45;
+ case 14:
+ this.popState();
+ return "acc_descr_value";
+ case 15:
+ this.begin("acc_descr_multiline");
+ break;
+ case 16:
+ this.popState();
+ break;
+ case 17:
+ return "acc_descr_multiline_value";
+ case 18:
+ return 16;
+ case 19:
+ break;
+ case 20:
+ return 23;
+ case 21:
+ return 23;
+ case 22:
+ this.begin("struct");
+ return 50;
+ case 23:
+ return "EDGE_STATE";
+ case 24:
+ return "EOF_IN_STRUCT";
+ case 25:
+ return "OPEN_IN_STRUCT";
+ case 26:
+ this.popState();
+ return 52;
+ case 27:
+ break;
+ case 28:
+ return "MEMBER";
+ case 29:
+ return 53;
+ case 30:
+ return 78;
+ case 31:
+ return 71;
+ case 32:
+ return 72;
+ case 33:
+ return 74;
+ case 34:
+ return 59;
+ case 35:
+ return 61;
+ case 36:
+ return 54;
+ case 37:
+ return 55;
+ case 38:
+ this.begin("generic");
+ break;
+ case 39:
+ this.popState();
+ break;
+ case 40:
+ return "GENERICTYPE";
+ case 41:
+ this.begin("string");
+ break;
+ case 42:
+ this.popState();
+ break;
+ case 43:
+ return "STR";
+ case 44:
+ this.begin("bqstring");
+ break;
+ case 45:
+ this.popState();
+ break;
+ case 46:
+ return "BQUOTE_STR";
+ case 47:
+ this.begin("href");
+ break;
+ case 48:
+ this.popState();
+ break;
+ case 49:
+ return 77;
+ case 50:
+ this.begin("callback_name");
+ break;
+ case 51:
+ this.popState();
+ break;
+ case 52:
+ this.popState();
+ this.begin("callback_args");
+ break;
+ case 53:
+ return 75;
+ case 54:
+ this.popState();
+ break;
+ case 55:
+ return 76;
+ case 56:
+ return 73;
+ case 57:
+ return 73;
+ case 58:
+ return 73;
+ case 59:
+ return 73;
+ case 60:
+ return 65;
+ case 61:
+ return 65;
+ case 62:
+ return 67;
+ case 63:
+ return 67;
+ case 64:
+ return 66;
+ case 65:
+ return 64;
+ case 66:
+ return 68;
+ case 67:
+ return 69;
+ case 68:
+ return 70;
+ case 69:
+ return 36;
+ case 70:
+ return 49;
+ case 71:
+ return 90;
+ case 72:
+ return "DOT";
+ case 73:
+ return "PLUS";
+ case 74:
+ return 87;
+ case 75:
+ return "EQUALS";
+ case 76:
+ return "EQUALS";
+ case 77:
+ return 94;
+ case 78:
+ return 28;
+ case 79:
+ return 30;
+ case 80:
+ return "PUNCTUATION";
+ case 81:
+ return 93;
+ case 82:
+ return 92;
+ case 83:
+ return 89;
+ case 84:
+ return 25;
+ }
+ },
+ rules: [/^(?:%%\{)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:classDiagram-v2\b)/, /^(?:classDiagram\b)/, /^(?:[{])/, /^(?:\[\*\])/, /^(?:$)/, /^(?:[{])/, /^(?:[}])/, /^(?:[\n])/, /^(?:[^{}\n]*)/, /^(?:class\b)/, /^(?:cssClass\b)/, /^(?:callback\b)/, /^(?:link\b)/, /^(?:click\b)/, /^(?:note for\b)/, /^(?:note\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:[~])/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[`])/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:href[\s]+["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:\s*<\|)/, /^(?:\s*\|>)/, /^(?:\s*>)/, /^(?:\s*<)/, /^(?:\s*\*)/, /^(?:\s*o\b)/, /^(?:\s*\(\))/, /^(?:--)/, /^(?:\.\.)/, /^(?::{1}[^:\n;]+)/, /^(?::{3})/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\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: { "acc_descr_multiline": { "rules": [16, 17], "inclusive": false }, "acc_descr": { "rules": [14], "inclusive": false }, "acc_title": { "rules": [12], "inclusive": false }, "arg_directive": { "rules": [7, 8], "inclusive": false }, "type_directive": { "rules": [6, 7], "inclusive": false }, "open_directive": { "rules": [5], "inclusive": false }, "callback_args": { "rules": [54, 55], "inclusive": false }, "callback_name": { "rules": [51, 52, 53], "inclusive": false }, "href": { "rules": [48, 49], "inclusive": false }, "struct": { "rules": [23, 24, 25, 26, 27, 28], "inclusive": false }, "generic": { "rules": [39, 40], "inclusive": false }, "bqstring": { "rules": [45, 46], "inclusive": false }, "string": { "rules": [42, 43], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 44, 47, 50, 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], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+const MERMAID_DOM_ID_PREFIX = "classId-";
+let relations = [];
+let classes = {};
+let notes = [];
+let classCounter = 0;
+let functions = [];
+const sanitizeText = (txt) => common.sanitizeText(txt, getConfig());
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const splitClassNameAndType = function(id) {
+ let genericType = "";
+ let className = id;
+ if (id.indexOf("~") > 0) {
+ const split = id.split("~");
+ className = sanitizeText(split[0]);
+ genericType = sanitizeText(split[1]);
+ }
+ return { className, type: genericType };
+};
+const setClassLabel = function(id, label) {
+ if (label) {
+ label = sanitizeText(label);
+ }
+ const { className } = splitClassNameAndType(id);
+ classes[className].label = label;
+};
+const addClass = function(id) {
+ const classId = splitClassNameAndType(id);
+ if (classes[classId.className] !== void 0) {
+ return;
+ }
+ classes[classId.className] = {
+ id: classId.className,
+ type: classId.type,
+ label: classId.className,
+ cssClasses: [],
+ methods: [],
+ members: [],
+ annotations: [],
+ domId: MERMAID_DOM_ID_PREFIX + classId.className + "-" + classCounter
+ };
+ classCounter++;
+};
+const lookUpDomId = function(id) {
+ if (id in classes) {
+ return classes[id].domId;
+ }
+ throw new Error("Class not found: " + id);
+};
+const clear = function() {
+ relations = [];
+ classes = {};
+ notes = [];
+ functions = [];
+ functions.push(setupToolTips);
+ clear$1();
+};
+const getClass = function(id) {
+ return classes[id];
+};
+const getClasses = function() {
+ return classes;
+};
+const getRelations = function() {
+ return relations;
+};
+const getNotes = function() {
+ return notes;
+};
+const addRelation = function(relation) {
+ log.debug("Adding relation: " + JSON.stringify(relation));
+ addClass(relation.id1);
+ addClass(relation.id2);
+ relation.id1 = splitClassNameAndType(relation.id1).className;
+ relation.id2 = splitClassNameAndType(relation.id2).className;
+ relation.relationTitle1 = common.sanitizeText(
+ relation.relationTitle1.trim(),
+ getConfig()
+ );
+ relation.relationTitle2 = common.sanitizeText(
+ relation.relationTitle2.trim(),
+ getConfig()
+ );
+ relations.push(relation);
+};
+const addAnnotation = function(className, annotation) {
+ const validatedClassName = splitClassNameAndType(className).className;
+ classes[validatedClassName].annotations.push(annotation);
+};
+const addMember = function(className, member) {
+ const validatedClassName = splitClassNameAndType(className).className;
+ const theClass = classes[validatedClassName];
+ if (typeof member === "string") {
+ const memberString = member.trim();
+ if (memberString.startsWith("<<") && memberString.endsWith(">>")) {
+ theClass.annotations.push(sanitizeText(memberString.substring(2, memberString.length - 2)));
+ } else if (memberString.indexOf(")") > 0) {
+ theClass.methods.push(sanitizeText(memberString));
+ } else if (memberString) {
+ theClass.members.push(sanitizeText(memberString));
+ }
+ }
+};
+const addMembers = function(className, members) {
+ if (Array.isArray(members)) {
+ members.reverse();
+ members.forEach((member) => addMember(className, member));
+ }
+};
+const addNote = function(text, className) {
+ const note = {
+ id: `note${notes.length}`,
+ class: className,
+ text
+ };
+ notes.push(note);
+};
+const cleanupLabel = function(label) {
+ if (label.startsWith(":")) {
+ label = label.substring(1);
+ }
+ return sanitizeText(label.trim());
+};
+const setCssClass = function(ids, className) {
+ ids.split(",").forEach(function(_id) {
+ let id = _id;
+ if (_id[0].match(/\d/)) {
+ id = MERMAID_DOM_ID_PREFIX + id;
+ }
+ if (classes[id] !== void 0) {
+ classes[id].cssClasses.push(className);
+ }
+ });
+};
+const setTooltip = function(ids, tooltip) {
+ ids.split(",").forEach(function(id) {
+ if (tooltip !== void 0) {
+ classes[id].tooltip = sanitizeText(tooltip);
+ }
+ });
+};
+const getTooltip = function(id) {
+ return classes[id].tooltip;
+};
+const setLink = function(ids, linkStr, target) {
+ const config = getConfig();
+ ids.split(",").forEach(function(_id) {
+ let id = _id;
+ if (_id[0].match(/\d/)) {
+ id = MERMAID_DOM_ID_PREFIX + id;
+ }
+ if (classes[id] !== void 0) {
+ classes[id].link = utils.formatUrl(linkStr, config);
+ if (config.securityLevel === "sandbox") {
+ classes[id].linkTarget = "_top";
+ } else if (typeof target === "string") {
+ classes[id].linkTarget = sanitizeText(target);
+ } else {
+ classes[id].linkTarget = "_blank";
+ }
+ }
+ });
+ setCssClass(ids, "clickable");
+};
+const setClickEvent = function(ids, functionName, functionArgs) {
+ ids.split(",").forEach(function(id) {
+ setClickFunc(id, functionName, functionArgs);
+ classes[id].haveCallback = true;
+ });
+ setCssClass(ids, "clickable");
+};
+const setClickFunc = function(domId, functionName, functionArgs) {
+ const config = getConfig();
+ if (config.securityLevel !== "loose") {
+ return;
+ }
+ if (functionName === void 0) {
+ return;
+ }
+ const id = domId;
+ if (classes[id] !== void 0) {
+ const elemId = lookUpDomId(id);
+ let argList = [];
+ if (typeof functionArgs === "string") {
+ argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let i = 0; i < argList.length; i++) {
+ let item = argList[i].trim();
+ if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
+ item = item.substr(1, item.length - 2);
+ }
+ argList[i] = item;
+ }
+ }
+ if (argList.length === 0) {
+ argList.push(elemId);
+ }
+ functions.push(function() {
+ const elem = document.querySelector(`[id="${elemId}"]`);
+ if (elem !== null) {
+ elem.addEventListener(
+ "click",
+ function() {
+ utils.runFunc(functionName, ...argList);
+ },
+ false
+ );
+ }
+ });
+ }
+};
+const bindFunctions = function(element) {
+ functions.forEach(function(fun) {
+ fun(element);
+ });
+};
+const lineType = {
+ LINE: 0,
+ DOTTED_LINE: 1
+};
+const relationType = {
+ AGGREGATION: 0,
+ EXTENSION: 1,
+ COMPOSITION: 2,
+ DEPENDENCY: 3,
+ LOLLIPOP: 4
+};
+const setupToolTips = function(element) {
+ let tooltipElem = select(".mermaidTooltip");
+ if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
+ tooltipElem = select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0);
+ }
+ const svg = select(element).select("svg");
+ const nodes = svg.selectAll("g.node");
+ nodes.on("mouseover", function() {
+ const el = select(this);
+ const title = el.attr("title");
+ if (title === null) {
+ return;
+ }
+ const rect = this.getBoundingClientRect();
+ tooltipElem.transition().duration(200).style("opacity", ".9");
+ tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect.left + (rect.right - rect.left) / 2 + "px").style("top", window.scrollY + rect.top - 14 + document.body.scrollTop + "px");
+ tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
"));
+ el.classed("hover", true);
+ }).on("mouseout", function() {
+ tooltipElem.transition().duration(500).style("opacity", 0);
+ const el = select(this);
+ el.classed("hover", false);
+ });
+};
+functions.push(setupToolTips);
+let direction = "TB";
+const getDirection = () => direction;
+const setDirection = (dir) => {
+ direction = dir;
+};
+const db = {
+ parseDirective,
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ setAccDescription,
+ getConfig: () => getConfig().class,
+ addClass,
+ bindFunctions,
+ clear,
+ getClass,
+ getClasses,
+ getNotes,
+ addAnnotation,
+ addNote,
+ getRelations,
+ addRelation,
+ getDirection,
+ setDirection,
+ addMember,
+ addMembers,
+ cleanupLabel,
+ lineType,
+ relationType,
+ setClickEvent,
+ setCssClass,
+ setLink,
+ getTooltip,
+ setTooltip,
+ lookUpDomId,
+ setDiagramTitle,
+ getDiagramTitle,
+ setClassLabel
+};
+const getStyles = (options) => `g.classGroup text {
+ fill: ${options.nodeBorder};
+ fill: ${options.classText};
+ stroke: none;
+ font-family: ${options.fontFamily};
+ font-size: 10px;
+
+ .title {
+ font-weight: bolder;
+ }
+
+}
+
+.nodeLabel, .edgeLabel {
+ color: ${options.classText};
+}
+.edgeLabel .label rect {
+ fill: ${options.mainBkg};
+}
+.label text {
+ fill: ${options.classText};
+}
+.edgeLabel .label span {
+ background: ${options.mainBkg};
+}
+
+.classTitle {
+ font-weight: bolder;
+}
+.node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+ stroke-width: 1px;
+ }
+
+
+.divider {
+ stroke: ${options.nodeBorder};
+ stroke: 1;
+}
+
+g.clickable {
+ cursor: pointer;
+}
+
+g.classGroup rect {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+}
+
+g.classGroup line {
+ stroke: ${options.nodeBorder};
+ stroke-width: 1;
+}
+
+.classLabel .box {
+ stroke: none;
+ stroke-width: 0;
+ fill: ${options.mainBkg};
+ opacity: 0.5;
+}
+
+.classLabel .label {
+ fill: ${options.nodeBorder};
+ font-size: 10px;
+}
+
+.relation {
+ stroke: ${options.lineColor};
+ stroke-width: 1;
+ fill: none;
+}
+
+.dashed-line{
+ stroke-dasharray: 3;
+}
+
+.dotted-line{
+ stroke-dasharray: 1 2;
+}
+
+#compositionStart, .composition {
+ fill: ${options.lineColor} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#compositionEnd, .composition {
+ fill: ${options.lineColor} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#dependencyStart, .dependency {
+ fill: ${options.lineColor} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#dependencyStart, .dependency {
+ fill: ${options.lineColor} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#extensionStart, .extension {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#extensionEnd, .extension {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#aggregationStart, .aggregation {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#aggregationEnd, .aggregation {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#lollipopStart, .lollipop {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#lollipopEnd, .lollipop {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+.edgeTerminals {
+ font-size: 11px;
+}
+
+.classTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor};
+}
+`;
+const styles = getStyles;
+export {
+ db as d,
+ parser$1 as p,
+ styles as s
+};
+//# sourceMappingURL=styles-123f2a17.js.map
diff --git a/scopegraphs-render-docs/doc/js/styles-16907e1b.js b/scopegraphs-render-docs/doc/js/styles-16907e1b.js
new file mode 100644
index 0000000..61eb92d
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/styles-16907e1b.js
@@ -0,0 +1,1304 @@
+import { select } from "d3";
+import { o as setAccTitle, p as getAccTitle, q as getAccDescription, v as setAccDescription, g as getConfig, w as setDiagramTitle, x as getDiagramTitle, y as clear$1, l as log, e as common } from "./commonDb-573409be.js";
+import { u as utils } from "./utils-d622194a.js";
+import { m as mermaidAPI } from "./mermaidAPI-3ae0f2f0.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 3], $V1 = [1, 7], $V2 = [1, 8], $V3 = [1, 9], $V4 = [1, 10], $V5 = [1, 13], $V6 = [1, 12], $V7 = [1, 16, 25], $V8 = [1, 20], $V9 = [1, 32], $Va = [1, 33], $Vb = [1, 34], $Vc = [1, 48], $Vd = [1, 39], $Ve = [1, 37], $Vf = [1, 38], $Vg = [1, 44], $Vh = [1, 45], $Vi = [1, 40], $Vj = [1, 41], $Vk = [1, 42], $Vl = [1, 43], $Vm = [1, 49], $Vn = [1, 50], $Vo = [1, 51], $Vp = [1, 52], $Vq = [16, 25], $Vr = [1, 66], $Vs = [1, 67], $Vt = [1, 68], $Vu = [1, 69], $Vv = [1, 70], $Vw = [1, 71], $Vx = [1, 72], $Vy = [1, 82], $Vz = [16, 25, 28, 29, 36, 49, 50, 64, 65, 66, 67, 68, 69, 70, 75, 77], $VA = [16, 25, 28, 29, 34, 36, 49, 50, 55, 64, 65, 66, 67, 68, 69, 70, 75, 77, 92, 93, 94, 95], $VB = [5, 8, 9, 10, 11, 16, 19, 23, 25], $VC = [29, 92, 93, 94, 95], $VD = [29, 69, 70, 92, 93, 94, 95], $VE = [29, 64, 65, 66, 67, 68, 92, 93, 94, 95], $VF = [1, 96], $VG = [16, 25, 49, 50], $VH = [16, 25, 36];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "statments": 5, "direction": 6, "directive": 7, "direction_tb": 8, "direction_bt": 9, "direction_rl": 10, "direction_lr": 11, "graphConfig": 12, "openDirective": 13, "typeDirective": 14, "closeDirective": 15, "NEWLINE": 16, ":": 17, "argDirective": 18, "open_directive": 19, "type_directive": 20, "arg_directive": 21, "close_directive": 22, "CLASS_DIAGRAM": 23, "statements": 24, "EOF": 25, "statement": 26, "classLabel": 27, "SQS": 28, "STR": 29, "SQE": 30, "className": 31, "alphaNumToken": 32, "classLiteralName": 33, "GENERICTYPE": 34, "relationStatement": 35, "LABEL": 36, "classStatement": 37, "methodStatement": 38, "annotationStatement": 39, "clickStatement": 40, "cssClassStatement": 41, "noteStatement": 42, "acc_title": 43, "acc_title_value": 44, "acc_descr": 45, "acc_descr_value": 46, "acc_descr_multiline_value": 47, "classIdentifier": 48, "STYLE_SEPARATOR": 49, "STRUCT_START": 50, "members": 51, "STRUCT_STOP": 52, "CLASS": 53, "ANNOTATION_START": 54, "ANNOTATION_END": 55, "MEMBER": 56, "SEPARATOR": 57, "relation": 58, "NOTE_FOR": 59, "noteText": 60, "NOTE": 61, "relationType": 62, "lineType": 63, "AGGREGATION": 64, "EXTENSION": 65, "COMPOSITION": 66, "DEPENDENCY": 67, "LOLLIPOP": 68, "LINE": 69, "DOTTED_LINE": 70, "CALLBACK": 71, "LINK": 72, "LINK_TARGET": 73, "CLICK": 74, "CALLBACK_NAME": 75, "CALLBACK_ARGS": 76, "HREF": 77, "CSSCLASS": 78, "commentToken": 79, "textToken": 80, "graphCodeTokens": 81, "textNoTagsToken": 82, "TAGSTART": 83, "TAGEND": 84, "==": 85, "--": 86, "PCT": 87, "DEFAULT": 88, "SPACE": 89, "MINUS": 90, "keywords": 91, "UNICODE_TEXT": 92, "NUM": 93, "ALPHA": 94, "BQUOTE_STR": 95, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 5: "statments", 8: "direction_tb", 9: "direction_bt", 10: "direction_rl", 11: "direction_lr", 16: "NEWLINE", 17: ":", 19: "open_directive", 20: "type_directive", 21: "arg_directive", 22: "close_directive", 23: "CLASS_DIAGRAM", 25: "EOF", 28: "SQS", 29: "STR", 30: "SQE", 34: "GENERICTYPE", 36: "LABEL", 43: "acc_title", 44: "acc_title_value", 45: "acc_descr", 46: "acc_descr_value", 47: "acc_descr_multiline_value", 49: "STYLE_SEPARATOR", 50: "STRUCT_START", 52: "STRUCT_STOP", 53: "CLASS", 54: "ANNOTATION_START", 55: "ANNOTATION_END", 56: "MEMBER", 57: "SEPARATOR", 59: "NOTE_FOR", 61: "NOTE", 64: "AGGREGATION", 65: "EXTENSION", 66: "COMPOSITION", 67: "DEPENDENCY", 68: "LOLLIPOP", 69: "LINE", 70: "DOTTED_LINE", 71: "CALLBACK", 72: "LINK", 73: "LINK_TARGET", 74: "CLICK", 75: "CALLBACK_NAME", 76: "CALLBACK_ARGS", 77: "HREF", 78: "CSSCLASS", 81: "graphCodeTokens", 83: "TAGSTART", 84: "TAGEND", 85: "==", 86: "--", 87: "PCT", 88: "DEFAULT", 89: "SPACE", 90: "MINUS", 91: "keywords", 92: "UNICODE_TEXT", 93: "NUM", 94: "ALPHA", 95: "BQUOTE_STR" },
+ productions_: [0, [3, 1], [3, 1], [3, 1], [3, 2], [6, 1], [6, 1], [6, 1], [6, 1], [4, 1], [7, 4], [7, 6], [13, 1], [14, 1], [18, 1], [15, 1], [12, 4], [24, 1], [24, 2], [24, 3], [27, 3], [31, 1], [31, 1], [31, 2], [31, 2], [31, 2], [26, 1], [26, 2], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 2], [26, 2], [26, 1], [37, 1], [37, 3], [37, 4], [37, 6], [48, 2], [48, 3], [39, 4], [51, 1], [51, 2], [38, 1], [38, 2], [38, 1], [38, 1], [35, 3], [35, 4], [35, 4], [35, 5], [42, 3], [42, 2], [58, 3], [58, 2], [58, 2], [58, 1], [62, 1], [62, 1], [62, 1], [62, 1], [62, 1], [63, 1], [63, 1], [40, 3], [40, 4], [40, 3], [40, 4], [40, 4], [40, 5], [40, 3], [40, 4], [40, 4], [40, 5], [40, 3], [40, 4], [40, 4], [40, 5], [41, 3], [79, 1], [79, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [82, 1], [82, 1], [82, 1], [82, 1], [32, 1], [32, 1], [32, 1], [33, 1], [60, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 5:
+ yy.setDirection("TB");
+ break;
+ case 6:
+ yy.setDirection("BT");
+ break;
+ case 7:
+ yy.setDirection("RL");
+ break;
+ case 8:
+ yy.setDirection("LR");
+ break;
+ case 12:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 13:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 14:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 15:
+ yy.parseDirective("}%%", "close_directive", "class");
+ break;
+ case 20:
+ this.$ = $$[$0 - 1];
+ break;
+ case 21:
+ case 22:
+ this.$ = $$[$0];
+ break;
+ case 23:
+ this.$ = $$[$0 - 1] + $$[$0];
+ break;
+ case 24:
+ case 25:
+ this.$ = $$[$0 - 1] + "~" + $$[$0];
+ break;
+ case 26:
+ yy.addRelation($$[$0]);
+ break;
+ case 27:
+ $$[$0 - 1].title = yy.cleanupLabel($$[$0]);
+ yy.addRelation($$[$0 - 1]);
+ break;
+ case 36:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 37:
+ case 38:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 40:
+ yy.setCssClass($$[$0 - 2], $$[$0]);
+ break;
+ case 41:
+ yy.addMembers($$[$0 - 3], $$[$0 - 1]);
+ break;
+ case 42:
+ yy.setCssClass($$[$0 - 5], $$[$0 - 3]);
+ yy.addMembers($$[$0 - 5], $$[$0 - 1]);
+ break;
+ case 43:
+ this.$ = $$[$0];
+ yy.addClass($$[$0]);
+ break;
+ case 44:
+ this.$ = $$[$0 - 1];
+ yy.addClass($$[$0 - 1]);
+ yy.setClassLabel($$[$0 - 1], $$[$0]);
+ break;
+ case 45:
+ yy.addAnnotation($$[$0], $$[$0 - 2]);
+ break;
+ case 46:
+ this.$ = [$$[$0]];
+ break;
+ case 47:
+ $$[$0].push($$[$0 - 1]);
+ this.$ = $$[$0];
+ break;
+ case 48:
+ break;
+ case 49:
+ yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0]));
+ break;
+ case 50:
+ break;
+ case 51:
+ break;
+ case 52:
+ this.$ = { "id1": $$[$0 - 2], "id2": $$[$0], relation: $$[$0 - 1], relationTitle1: "none", relationTitle2: "none" };
+ break;
+ case 53:
+ this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: "none" };
+ break;
+ case 54:
+ this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: "none", relationTitle2: $$[$0 - 1] };
+ break;
+ case 55:
+ this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] };
+ break;
+ case 56:
+ yy.addNote($$[$0], $$[$0 - 1]);
+ break;
+ case 57:
+ yy.addNote($$[$0]);
+ break;
+ case 58:
+ this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] };
+ break;
+ case 59:
+ this.$ = { type1: "none", type2: $$[$0], lineType: $$[$0 - 1] };
+ break;
+ case 60:
+ this.$ = { type1: $$[$0 - 1], type2: "none", lineType: $$[$0] };
+ break;
+ case 61:
+ this.$ = { type1: "none", type2: "none", lineType: $$[$0] };
+ break;
+ case 62:
+ this.$ = yy.relationType.AGGREGATION;
+ break;
+ case 63:
+ this.$ = yy.relationType.EXTENSION;
+ break;
+ case 64:
+ this.$ = yy.relationType.COMPOSITION;
+ break;
+ case 65:
+ this.$ = yy.relationType.DEPENDENCY;
+ break;
+ case 66:
+ this.$ = yy.relationType.LOLLIPOP;
+ break;
+ case 67:
+ this.$ = yy.lineType.LINE;
+ break;
+ case 68:
+ this.$ = yy.lineType.DOTTED_LINE;
+ break;
+ case 69:
+ case 75:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 1], $$[$0]);
+ break;
+ case 70:
+ case 76:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1]);
+ yy.setTooltip($$[$0 - 2], $$[$0]);
+ break;
+ case 71:
+ case 79:
+ this.$ = $$[$0 - 2];
+ yy.setLink($$[$0 - 1], $$[$0]);
+ break;
+ case 72:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 73:
+ case 81:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 2], $$[$0 - 1]);
+ yy.setTooltip($$[$0 - 2], $$[$0]);
+ break;
+ case 74:
+ case 82:
+ this.$ = $$[$0 - 4];
+ yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);
+ yy.setTooltip($$[$0 - 3], $$[$0 - 1]);
+ break;
+ case 77:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 78:
+ this.$ = $$[$0 - 4];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
+ yy.setTooltip($$[$0 - 3], $$[$0]);
+ break;
+ case 80:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 83:
+ yy.setCssClass($$[$0 - 1], $$[$0]);
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: $V0, 6: 4, 7: 5, 8: $V1, 9: $V2, 10: $V3, 11: $V4, 12: 6, 13: 11, 19: $V5, 23: $V6 }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 3: 14, 4: 2, 5: $V0, 6: 4, 7: 5, 8: $V1, 9: $V2, 10: $V3, 11: $V4, 12: 6, 13: 11, 19: $V5, 23: $V6 }, { 1: [2, 9] }, o($V7, [2, 5]), o($V7, [2, 6]), o($V7, [2, 7]), o($V7, [2, 8]), { 14: 15, 20: [1, 16] }, { 16: [1, 17] }, { 20: [2, 12] }, { 1: [2, 4] }, { 15: 18, 17: [1, 19], 22: $V8 }, o([17, 22], [2, 13]), { 6: 31, 7: 30, 8: $V1, 9: $V2, 10: $V3, 11: $V4, 13: 11, 19: $V5, 24: 21, 26: 22, 31: 35, 32: 46, 33: 47, 35: 23, 37: 24, 38: 25, 39: 26, 40: 27, 41: 28, 42: 29, 43: $V9, 45: $Va, 47: $Vb, 48: 36, 53: $Vc, 54: $Vd, 56: $Ve, 57: $Vf, 59: $Vg, 61: $Vh, 71: $Vi, 72: $Vj, 74: $Vk, 78: $Vl, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 16: [1, 53] }, { 18: 54, 21: [1, 55] }, { 16: [2, 15] }, { 25: [1, 56] }, { 16: [1, 57], 25: [2, 17] }, o($Vq, [2, 26], { 36: [1, 58] }), o($Vq, [2, 28]), o($Vq, [2, 29]), o($Vq, [2, 30]), o($Vq, [2, 31]), o($Vq, [2, 32]), o($Vq, [2, 33]), o($Vq, [2, 34]), o($Vq, [2, 35]), { 44: [1, 59] }, { 46: [1, 60] }, o($Vq, [2, 38]), o($Vq, [2, 48], { 58: 61, 62: 64, 63: 65, 29: [1, 62], 36: [1, 63], 64: $Vr, 65: $Vs, 66: $Vt, 67: $Vu, 68: $Vv, 69: $Vw, 70: $Vx }), o($Vq, [2, 39], { 49: [1, 73], 50: [1, 74] }), o($Vq, [2, 50]), o($Vq, [2, 51]), { 32: 75, 92: $Vm, 93: $Vn, 94: $Vo }, { 31: 76, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 31: 77, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 31: 78, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 29: [1, 79] }, { 31: 80, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 29: $Vy, 60: 81 }, o($Vz, [2, 21], { 32: 46, 33: 47, 31: 83, 34: [1, 84], 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }), o($Vz, [2, 22], { 34: [1, 85] }), { 31: 86, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, o($VA, [2, 97]), o($VA, [2, 98]), o($VA, [2, 99]), o([16, 25, 28, 29, 34, 36, 49, 50, 64, 65, 66, 67, 68, 69, 70, 75, 77], [2, 100]), o($VB, [2, 10]), { 15: 87, 22: $V8 }, { 22: [2, 14] }, { 1: [2, 16] }, { 6: 31, 7: 30, 8: $V1, 9: $V2, 10: $V3, 11: $V4, 13: 11, 19: $V5, 24: 88, 25: [2, 18], 26: 22, 31: 35, 32: 46, 33: 47, 35: 23, 37: 24, 38: 25, 39: 26, 40: 27, 41: 28, 42: 29, 43: $V9, 45: $Va, 47: $Vb, 48: 36, 53: $Vc, 54: $Vd, 56: $Ve, 57: $Vf, 59: $Vg, 61: $Vh, 71: $Vi, 72: $Vj, 74: $Vk, 78: $Vl, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, o($Vq, [2, 27]), o($Vq, [2, 36]), o($Vq, [2, 37]), { 29: [1, 90], 31: 89, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 58: 91, 62: 64, 63: 65, 64: $Vr, 65: $Vs, 66: $Vt, 67: $Vu, 68: $Vv, 69: $Vw, 70: $Vx }, o($Vq, [2, 49]), { 63: 92, 69: $Vw, 70: $Vx }, o($VC, [2, 61], { 62: 93, 64: $Vr, 65: $Vs, 66: $Vt, 67: $Vu, 68: $Vv }), o($VD, [2, 62]), o($VD, [2, 63]), o($VD, [2, 64]), o($VD, [2, 65]), o($VD, [2, 66]), o($VE, [2, 67]), o($VE, [2, 68]), { 32: 94, 92: $Vm, 93: $Vn, 94: $Vo }, { 51: 95, 56: $VF }, { 55: [1, 97] }, { 29: [1, 98] }, { 29: [1, 99] }, { 75: [1, 100], 77: [1, 101] }, { 32: 102, 92: $Vm, 93: $Vn, 94: $Vo }, { 29: $Vy, 60: 103 }, o($Vq, [2, 57]), o($Vq, [2, 101]), o($Vz, [2, 23]), o($Vz, [2, 24]), o($Vz, [2, 25]), o($VG, [2, 43], { 27: 104, 28: [1, 105] }), { 16: [1, 106] }, { 25: [2, 19] }, o($VH, [2, 52]), { 31: 107, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, { 29: [1, 109], 31: 108, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, o($VC, [2, 60], { 62: 110, 64: $Vr, 65: $Vs, 66: $Vt, 67: $Vu, 68: $Vv }), o($VC, [2, 59]), o($Vq, [2, 40], { 50: [1, 111] }), { 52: [1, 112] }, { 51: 113, 52: [2, 46], 56: $VF }, { 31: 114, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, o($Vq, [2, 69], { 29: [1, 115] }), o($Vq, [2, 71], { 29: [1, 117], 73: [1, 116] }), o($Vq, [2, 75], { 29: [1, 118], 76: [1, 119] }), o($Vq, [2, 79], { 29: [1, 121], 73: [1, 120] }), o($Vq, [2, 83]), o($Vq, [2, 56]), o($VG, [2, 44]), { 29: [1, 122] }, o($VB, [2, 11]), o($VH, [2, 54]), o($VH, [2, 53]), { 31: 123, 32: 46, 33: 47, 92: $Vm, 93: $Vn, 94: $Vo, 95: $Vp }, o($VC, [2, 58]), { 51: 124, 56: $VF }, o($Vq, [2, 41]), { 52: [2, 47] }, o($Vq, [2, 45]), o($Vq, [2, 70]), o($Vq, [2, 72]), o($Vq, [2, 73], { 73: [1, 125] }), o($Vq, [2, 76]), o($Vq, [2, 77], { 29: [1, 126] }), o($Vq, [2, 80]), o($Vq, [2, 81], { 73: [1, 127] }), { 30: [1, 128] }, o($VH, [2, 55]), { 52: [1, 129] }, o($Vq, [2, 74]), o($Vq, [2, 78]), o($Vq, [2, 82]), o($VG, [2, 20]), o($Vq, [2, 42])],
+ defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 3], 6: [2, 9], 13: [2, 12], 14: [2, 4], 20: [2, 15], 55: [2, 14], 56: [2, 16], 88: [2, 19], 113: [2, 47] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: {},
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 19;
+ case 1:
+ return 8;
+ case 2:
+ return 9;
+ case 3:
+ return 10;
+ case 4:
+ return 11;
+ case 5:
+ this.begin("type_directive");
+ return 20;
+ case 6:
+ this.popState();
+ this.begin("arg_directive");
+ return 17;
+ case 7:
+ this.popState();
+ this.popState();
+ return 22;
+ case 8:
+ return 21;
+ case 9:
+ break;
+ case 10:
+ break;
+ case 11:
+ this.begin("acc_title");
+ return 43;
+ case 12:
+ this.popState();
+ return "acc_title_value";
+ case 13:
+ this.begin("acc_descr");
+ return 45;
+ case 14:
+ this.popState();
+ return "acc_descr_value";
+ case 15:
+ this.begin("acc_descr_multiline");
+ break;
+ case 16:
+ this.popState();
+ break;
+ case 17:
+ return "acc_descr_multiline_value";
+ case 18:
+ return 16;
+ case 19:
+ break;
+ case 20:
+ return 23;
+ case 21:
+ return 23;
+ case 22:
+ this.begin("struct");
+ return 50;
+ case 23:
+ return "EDGE_STATE";
+ case 24:
+ return "EOF_IN_STRUCT";
+ case 25:
+ return "OPEN_IN_STRUCT";
+ case 26:
+ this.popState();
+ return 52;
+ case 27:
+ break;
+ case 28:
+ return "MEMBER";
+ case 29:
+ return 53;
+ case 30:
+ return 78;
+ case 31:
+ return 71;
+ case 32:
+ return 72;
+ case 33:
+ return 74;
+ case 34:
+ return 59;
+ case 35:
+ return 61;
+ case 36:
+ return 54;
+ case 37:
+ return 55;
+ case 38:
+ this.begin("generic");
+ break;
+ case 39:
+ this.popState();
+ break;
+ case 40:
+ return "GENERICTYPE";
+ case 41:
+ this.begin("string");
+ break;
+ case 42:
+ this.popState();
+ break;
+ case 43:
+ return "STR";
+ case 44:
+ this.begin("bqstring");
+ break;
+ case 45:
+ this.popState();
+ break;
+ case 46:
+ return "BQUOTE_STR";
+ case 47:
+ this.begin("href");
+ break;
+ case 48:
+ this.popState();
+ break;
+ case 49:
+ return 77;
+ case 50:
+ this.begin("callback_name");
+ break;
+ case 51:
+ this.popState();
+ break;
+ case 52:
+ this.popState();
+ this.begin("callback_args");
+ break;
+ case 53:
+ return 75;
+ case 54:
+ this.popState();
+ break;
+ case 55:
+ return 76;
+ case 56:
+ return 73;
+ case 57:
+ return 73;
+ case 58:
+ return 73;
+ case 59:
+ return 73;
+ case 60:
+ return 65;
+ case 61:
+ return 65;
+ case 62:
+ return 67;
+ case 63:
+ return 67;
+ case 64:
+ return 66;
+ case 65:
+ return 64;
+ case 66:
+ return 68;
+ case 67:
+ return 69;
+ case 68:
+ return 70;
+ case 69:
+ return 36;
+ case 70:
+ return 49;
+ case 71:
+ return 90;
+ case 72:
+ return "DOT";
+ case 73:
+ return "PLUS";
+ case 74:
+ return 87;
+ case 75:
+ return "EQUALS";
+ case 76:
+ return "EQUALS";
+ case 77:
+ return 94;
+ case 78:
+ return 28;
+ case 79:
+ return 30;
+ case 80:
+ return "PUNCTUATION";
+ case 81:
+ return 93;
+ case 82:
+ return 92;
+ case 83:
+ return 89;
+ case 84:
+ return 25;
+ }
+ },
+ rules: [/^(?:%%\{)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:classDiagram-v2\b)/, /^(?:classDiagram\b)/, /^(?:[{])/, /^(?:\[\*\])/, /^(?:$)/, /^(?:[{])/, /^(?:[}])/, /^(?:[\n])/, /^(?:[^{}\n]*)/, /^(?:class\b)/, /^(?:cssClass\b)/, /^(?:callback\b)/, /^(?:link\b)/, /^(?:click\b)/, /^(?:note for\b)/, /^(?:note\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:[~])/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[`])/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:href[\s]+["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:\s*<\|)/, /^(?:\s*\|>)/, /^(?:\s*>)/, /^(?:\s*<)/, /^(?:\s*\*)/, /^(?:\s*o\b)/, /^(?:\s*\(\))/, /^(?:--)/, /^(?:\.\.)/, /^(?::{1}[^:\n;]+)/, /^(?::{3})/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\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: { "acc_descr_multiline": { "rules": [16, 17], "inclusive": false }, "acc_descr": { "rules": [14], "inclusive": false }, "acc_title": { "rules": [12], "inclusive": false }, "arg_directive": { "rules": [7, 8], "inclusive": false }, "type_directive": { "rules": [6, 7], "inclusive": false }, "open_directive": { "rules": [5], "inclusive": false }, "callback_args": { "rules": [54, 55], "inclusive": false }, "callback_name": { "rules": [51, 52, 53], "inclusive": false }, "href": { "rules": [48, 49], "inclusive": false }, "struct": { "rules": [23, 24, 25, 26, 27, 28], "inclusive": false }, "generic": { "rules": [39, 40], "inclusive": false }, "bqstring": { "rules": [45, 46], "inclusive": false }, "string": { "rules": [42, 43], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 44, 47, 50, 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], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+const MERMAID_DOM_ID_PREFIX = "classId-";
+let relations = [];
+let classes = {};
+let notes = [];
+let classCounter = 0;
+let functions = [];
+const sanitizeText = (txt) => common.sanitizeText(txt, getConfig());
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const splitClassNameAndType = function(id) {
+ let genericType = "";
+ let className = id;
+ if (id.indexOf("~") > 0) {
+ const split = id.split("~");
+ className = sanitizeText(split[0]);
+ genericType = sanitizeText(split[1]);
+ }
+ return { className, type: genericType };
+};
+const setClassLabel = function(id, label) {
+ if (label) {
+ label = sanitizeText(label);
+ }
+ const { className } = splitClassNameAndType(id);
+ classes[className].label = label;
+};
+const addClass = function(id) {
+ const classId = splitClassNameAndType(id);
+ if (classes[classId.className] !== void 0) {
+ return;
+ }
+ classes[classId.className] = {
+ id: classId.className,
+ type: classId.type,
+ label: classId.className,
+ cssClasses: [],
+ methods: [],
+ members: [],
+ annotations: [],
+ domId: MERMAID_DOM_ID_PREFIX + classId.className + "-" + classCounter
+ };
+ classCounter++;
+};
+const lookUpDomId = function(id) {
+ if (id in classes) {
+ return classes[id].domId;
+ }
+ throw new Error("Class not found: " + id);
+};
+const clear = function() {
+ relations = [];
+ classes = {};
+ notes = [];
+ functions = [];
+ functions.push(setupToolTips);
+ clear$1();
+};
+const getClass = function(id) {
+ return classes[id];
+};
+const getClasses = function() {
+ return classes;
+};
+const getRelations = function() {
+ return relations;
+};
+const getNotes = function() {
+ return notes;
+};
+const addRelation = function(relation) {
+ log.debug("Adding relation: " + JSON.stringify(relation));
+ addClass(relation.id1);
+ addClass(relation.id2);
+ relation.id1 = splitClassNameAndType(relation.id1).className;
+ relation.id2 = splitClassNameAndType(relation.id2).className;
+ relation.relationTitle1 = common.sanitizeText(
+ relation.relationTitle1.trim(),
+ getConfig()
+ );
+ relation.relationTitle2 = common.sanitizeText(
+ relation.relationTitle2.trim(),
+ getConfig()
+ );
+ relations.push(relation);
+};
+const addAnnotation = function(className, annotation) {
+ const validatedClassName = splitClassNameAndType(className).className;
+ classes[validatedClassName].annotations.push(annotation);
+};
+const addMember = function(className, member) {
+ const validatedClassName = splitClassNameAndType(className).className;
+ const theClass = classes[validatedClassName];
+ if (typeof member === "string") {
+ const memberString = member.trim();
+ if (memberString.startsWith("<<") && memberString.endsWith(">>")) {
+ theClass.annotations.push(sanitizeText(memberString.substring(2, memberString.length - 2)));
+ } else if (memberString.indexOf(")") > 0) {
+ theClass.methods.push(sanitizeText(memberString));
+ } else if (memberString) {
+ theClass.members.push(sanitizeText(memberString));
+ }
+ }
+};
+const addMembers = function(className, members) {
+ if (Array.isArray(members)) {
+ members.reverse();
+ members.forEach((member) => addMember(className, member));
+ }
+};
+const addNote = function(text, className) {
+ const note = {
+ id: `note${notes.length}`,
+ class: className,
+ text
+ };
+ notes.push(note);
+};
+const cleanupLabel = function(label) {
+ if (label.startsWith(":")) {
+ label = label.substring(1);
+ }
+ return sanitizeText(label.trim());
+};
+const setCssClass = function(ids, className) {
+ ids.split(",").forEach(function(_id) {
+ let id = _id;
+ if (_id[0].match(/\d/)) {
+ id = MERMAID_DOM_ID_PREFIX + id;
+ }
+ if (classes[id] !== void 0) {
+ classes[id].cssClasses.push(className);
+ }
+ });
+};
+const setTooltip = function(ids, tooltip) {
+ ids.split(",").forEach(function(id) {
+ if (tooltip !== void 0) {
+ classes[id].tooltip = sanitizeText(tooltip);
+ }
+ });
+};
+const getTooltip = function(id) {
+ return classes[id].tooltip;
+};
+const setLink = function(ids, linkStr, target) {
+ const config = getConfig();
+ ids.split(",").forEach(function(_id) {
+ let id = _id;
+ if (_id[0].match(/\d/)) {
+ id = MERMAID_DOM_ID_PREFIX + id;
+ }
+ if (classes[id] !== void 0) {
+ classes[id].link = utils.formatUrl(linkStr, config);
+ if (config.securityLevel === "sandbox") {
+ classes[id].linkTarget = "_top";
+ } else if (typeof target === "string") {
+ classes[id].linkTarget = sanitizeText(target);
+ } else {
+ classes[id].linkTarget = "_blank";
+ }
+ }
+ });
+ setCssClass(ids, "clickable");
+};
+const setClickEvent = function(ids, functionName, functionArgs) {
+ ids.split(",").forEach(function(id) {
+ setClickFunc(id, functionName, functionArgs);
+ classes[id].haveCallback = true;
+ });
+ setCssClass(ids, "clickable");
+};
+const setClickFunc = function(domId, functionName, functionArgs) {
+ const config = getConfig();
+ if (config.securityLevel !== "loose") {
+ return;
+ }
+ if (functionName === void 0) {
+ return;
+ }
+ const id = domId;
+ if (classes[id] !== void 0) {
+ const elemId = lookUpDomId(id);
+ let argList = [];
+ if (typeof functionArgs === "string") {
+ argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let i = 0; i < argList.length; i++) {
+ let item = argList[i].trim();
+ if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
+ item = item.substr(1, item.length - 2);
+ }
+ argList[i] = item;
+ }
+ }
+ if (argList.length === 0) {
+ argList.push(elemId);
+ }
+ functions.push(function() {
+ const elem = document.querySelector(`[id="${elemId}"]`);
+ if (elem !== null) {
+ elem.addEventListener(
+ "click",
+ function() {
+ utils.runFunc(functionName, ...argList);
+ },
+ false
+ );
+ }
+ });
+ }
+};
+const bindFunctions = function(element) {
+ functions.forEach(function(fun) {
+ fun(element);
+ });
+};
+const lineType = {
+ LINE: 0,
+ DOTTED_LINE: 1
+};
+const relationType = {
+ AGGREGATION: 0,
+ EXTENSION: 1,
+ COMPOSITION: 2,
+ DEPENDENCY: 3,
+ LOLLIPOP: 4
+};
+const setupToolTips = function(element) {
+ let tooltipElem = select(".mermaidTooltip");
+ if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
+ tooltipElem = select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0);
+ }
+ const svg = select(element).select("svg");
+ const nodes = svg.selectAll("g.node");
+ nodes.on("mouseover", function() {
+ const el = select(this);
+ const title = el.attr("title");
+ if (title === null) {
+ return;
+ }
+ const rect = this.getBoundingClientRect();
+ tooltipElem.transition().duration(200).style("opacity", ".9");
+ tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect.left + (rect.right - rect.left) / 2 + "px").style("top", window.scrollY + rect.top - 14 + document.body.scrollTop + "px");
+ tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
"));
+ el.classed("hover", true);
+ }).on("mouseout", function() {
+ tooltipElem.transition().duration(500).style("opacity", 0);
+ const el = select(this);
+ el.classed("hover", false);
+ });
+};
+functions.push(setupToolTips);
+let direction = "TB";
+const getDirection = () => direction;
+const setDirection = (dir) => {
+ direction = dir;
+};
+const db = {
+ parseDirective,
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ setAccDescription,
+ getConfig: () => getConfig().class,
+ addClass,
+ bindFunctions,
+ clear,
+ getClass,
+ getClasses,
+ getNotes,
+ addAnnotation,
+ addNote,
+ getRelations,
+ addRelation,
+ getDirection,
+ setDirection,
+ addMember,
+ addMembers,
+ cleanupLabel,
+ lineType,
+ relationType,
+ setClickEvent,
+ setCssClass,
+ setLink,
+ getTooltip,
+ setTooltip,
+ lookUpDomId,
+ setDiagramTitle,
+ getDiagramTitle,
+ setClassLabel
+};
+const getStyles = (options) => `g.classGroup text {
+ fill: ${options.nodeBorder};
+ fill: ${options.classText};
+ stroke: none;
+ font-family: ${options.fontFamily};
+ font-size: 10px;
+
+ .title {
+ font-weight: bolder;
+ }
+
+}
+
+.nodeLabel, .edgeLabel {
+ color: ${options.classText};
+}
+.edgeLabel .label rect {
+ fill: ${options.mainBkg};
+}
+.label text {
+ fill: ${options.classText};
+}
+.edgeLabel .label span {
+ background: ${options.mainBkg};
+}
+
+.classTitle {
+ font-weight: bolder;
+}
+.node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+ stroke-width: 1px;
+ }
+
+
+.divider {
+ stroke: ${options.nodeBorder};
+ stroke: 1;
+}
+
+g.clickable {
+ cursor: pointer;
+}
+
+g.classGroup rect {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+}
+
+g.classGroup line {
+ stroke: ${options.nodeBorder};
+ stroke-width: 1;
+}
+
+.classLabel .box {
+ stroke: none;
+ stroke-width: 0;
+ fill: ${options.mainBkg};
+ opacity: 0.5;
+}
+
+.classLabel .label {
+ fill: ${options.nodeBorder};
+ font-size: 10px;
+}
+
+.relation {
+ stroke: ${options.lineColor};
+ stroke-width: 1;
+ fill: none;
+}
+
+.dashed-line{
+ stroke-dasharray: 3;
+}
+
+.dotted-line{
+ stroke-dasharray: 1 2;
+}
+
+#compositionStart, .composition {
+ fill: ${options.lineColor} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#compositionEnd, .composition {
+ fill: ${options.lineColor} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#dependencyStart, .dependency {
+ fill: ${options.lineColor} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#dependencyStart, .dependency {
+ fill: ${options.lineColor} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#extensionStart, .extension {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#extensionEnd, .extension {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#aggregationStart, .aggregation {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#aggregationEnd, .aggregation {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#lollipopStart, .lollipop {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+#lollipopEnd, .lollipop {
+ fill: ${options.mainBkg} !important;
+ stroke: ${options.lineColor} !important;
+ stroke-width: 1;
+}
+
+.edgeTerminals {
+ font-size: 11px;
+}
+
+.classTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor};
+}
+`;
+const styles = getStyles;
+export {
+ db as d,
+ parser$1 as p,
+ styles as s
+};
+//# sourceMappingURL=styles-16907e1b.js.map
diff --git a/scopegraphs-render-docs/doc/js/styles-26373982.js b/scopegraphs-render-docs/doc/js/styles-26373982.js
new file mode 100644
index 0000000..1601788
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/styles-26373982.js
@@ -0,0 +1,504 @@
+import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
+import { curveLinear, select, selectAll } from "d3";
+import { f as flowDb } from "./flowDb-52e24d17.js";
+import { l as log, k as evaluate, g as getConfig, e as common } from "./commonDb-573409be.js";
+import { n as getStylesFromArray, o as interpolateToCurve, u as utils, s as setupGraphViewbox } from "./utils-d622194a.js";
+import { r as render } from "./index-5219d011.js";
+import { addHtmlLabel } from "dagre-d3-es/src/dagre-js/label/add-html-label.js";
+const conf = {};
+const setConf = function(cnf) {
+ const keys = Object.keys(cnf);
+ for (const key of keys) {
+ conf[key] = cnf[key];
+ }
+};
+const addVertices = function(vert, g, svgId, root, doc, diagObj) {
+ const svg = root.select(`[id="${svgId}"]`);
+ const keys = Object.keys(vert);
+ keys.forEach(function(id) {
+ const vertex = vert[id];
+ let classStr = "default";
+ if (vertex.classes.length > 0) {
+ classStr = vertex.classes.join(" ");
+ }
+ classStr = classStr + " flowchart-label";
+ const styles = getStylesFromArray(vertex.styles);
+ let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
+ let vertexNode;
+ log.info("vertex", vertex, vertex.labelType);
+ if (vertex.labelType === "markdown") {
+ log.info("vertex", vertex, vertex.labelType);
+ } else {
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const node = {
+ label: vertexText.replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s) => ``
+ )
+ };
+ vertexNode = addHtmlLabel(svg, node).node();
+ vertexNode.parentNode.removeChild(vertexNode);
+ } else {
+ const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("style", styles.labelStyle.replace("color:", "fill:"));
+ const rows = vertexText.split(common.lineBreakRegex);
+ for (const row of rows) {
+ const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
+ tspan.setAttribute("dy", "1em");
+ tspan.setAttribute("x", "1");
+ tspan.textContent = row;
+ svgLabel.appendChild(tspan);
+ }
+ vertexNode = svgLabel;
+ }
+ }
+ let radious = 0;
+ let _shape = "";
+ switch (vertex.type) {
+ case "round":
+ radious = 5;
+ _shape = "rect";
+ break;
+ case "square":
+ _shape = "rect";
+ break;
+ case "diamond":
+ _shape = "question";
+ break;
+ case "hexagon":
+ _shape = "hexagon";
+ break;
+ case "odd":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "lean_right":
+ _shape = "lean_right";
+ break;
+ case "lean_left":
+ _shape = "lean_left";
+ break;
+ case "trapezoid":
+ _shape = "trapezoid";
+ break;
+ case "inv_trapezoid":
+ _shape = "inv_trapezoid";
+ break;
+ case "odd_right":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "circle":
+ _shape = "circle";
+ break;
+ case "ellipse":
+ _shape = "ellipse";
+ break;
+ case "stadium":
+ _shape = "stadium";
+ break;
+ case "subroutine":
+ _shape = "subroutine";
+ break;
+ case "cylinder":
+ _shape = "cylinder";
+ break;
+ case "group":
+ _shape = "rect";
+ break;
+ case "doublecircle":
+ _shape = "doublecircle";
+ break;
+ default:
+ _shape = "rect";
+ }
+ g.setNode(vertex.id, {
+ labelStyle: styles.labelStyle,
+ shape: _shape,
+ labelText: vertexText,
+ labelType: vertex.labelType,
+ rx: radious,
+ ry: radious,
+ class: classStr,
+ style: styles.style,
+ id: vertex.id,
+ link: vertex.link,
+ linkTarget: vertex.linkTarget,
+ tooltip: diagObj.db.getTooltip(vertex.id) || "",
+ domId: diagObj.db.lookUpDomId(vertex.id),
+ haveCallback: vertex.haveCallback,
+ width: vertex.type === "group" ? 500 : void 0,
+ dir: vertex.dir,
+ type: vertex.type,
+ props: vertex.props,
+ padding: getConfig().flowchart.padding
+ });
+ log.info("setNode", {
+ labelStyle: styles.labelStyle,
+ labelType: vertex.labelType,
+ shape: _shape,
+ labelText: vertexText,
+ rx: radious,
+ ry: radious,
+ class: classStr,
+ style: styles.style,
+ id: vertex.id,
+ domId: diagObj.db.lookUpDomId(vertex.id),
+ width: vertex.type === "group" ? 500 : void 0,
+ type: vertex.type,
+ dir: vertex.dir,
+ props: vertex.props,
+ padding: getConfig().flowchart.padding
+ });
+ });
+};
+const addEdges = function(edges, g, diagObj) {
+ log.info("abc78 edges = ", edges);
+ let cnt = 0;
+ let linkIdCnt = {};
+ let defaultStyle;
+ let defaultLabelStyle;
+ if (edges.defaultStyle !== void 0) {
+ const defaultStyles = getStylesFromArray(edges.defaultStyle);
+ defaultStyle = defaultStyles.style;
+ defaultLabelStyle = defaultStyles.labelStyle;
+ }
+ edges.forEach(function(edge) {
+ cnt++;
+ var linkIdBase = "L-" + edge.start + "-" + edge.end;
+ if (linkIdCnt[linkIdBase] === void 0) {
+ linkIdCnt[linkIdBase] = 0;
+ log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
+ } else {
+ linkIdCnt[linkIdBase]++;
+ log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
+ }
+ let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase];
+ log.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]);
+ var linkNameStart = "LS-" + edge.start;
+ var linkNameEnd = "LE-" + edge.end;
+ const edgeData = { style: "", labelStyle: "" };
+ edgeData.minlen = edge.length || 1;
+ if (edge.type === "arrow_open") {
+ edgeData.arrowhead = "none";
+ } else {
+ edgeData.arrowhead = "normal";
+ }
+ edgeData.arrowTypeStart = "arrow_open";
+ edgeData.arrowTypeEnd = "arrow_open";
+ switch (edge.type) {
+ case "double_arrow_cross":
+ edgeData.arrowTypeStart = "arrow_cross";
+ case "arrow_cross":
+ edgeData.arrowTypeEnd = "arrow_cross";
+ break;
+ case "double_arrow_point":
+ edgeData.arrowTypeStart = "arrow_point";
+ case "arrow_point":
+ edgeData.arrowTypeEnd = "arrow_point";
+ break;
+ case "double_arrow_circle":
+ edgeData.arrowTypeStart = "arrow_circle";
+ case "arrow_circle":
+ edgeData.arrowTypeEnd = "arrow_circle";
+ break;
+ }
+ let style = "";
+ let labelStyle = "";
+ switch (edge.stroke) {
+ case "normal":
+ style = "fill:none;";
+ if (defaultStyle !== void 0) {
+ style = defaultStyle;
+ }
+ if (defaultLabelStyle !== void 0) {
+ labelStyle = defaultLabelStyle;
+ }
+ edgeData.thickness = "normal";
+ edgeData.pattern = "solid";
+ break;
+ case "dotted":
+ edgeData.thickness = "normal";
+ edgeData.pattern = "dotted";
+ edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
+ break;
+ case "thick":
+ edgeData.thickness = "thick";
+ edgeData.pattern = "solid";
+ edgeData.style = "stroke-width: 3.5px;fill:none;";
+ break;
+ case "invisible":
+ edgeData.thickness = "invisible";
+ edgeData.pattern = "solid";
+ edgeData.style = "stroke-width: 0;fill:none;";
+ break;
+ }
+ if (edge.style !== void 0) {
+ const styles = getStylesFromArray(edge.style);
+ style = styles.style;
+ labelStyle = styles.labelStyle;
+ }
+ edgeData.style = edgeData.style += style;
+ edgeData.labelStyle = edgeData.labelStyle += labelStyle;
+ if (edge.interpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
+ } else if (edges.defaultInterpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);
+ } else {
+ edgeData.curve = interpolateToCurve(conf.curve, curveLinear);
+ }
+ if (edge.text === void 0) {
+ if (edge.style !== void 0) {
+ edgeData.arrowheadStyle = "fill: #333";
+ }
+ } else {
+ edgeData.arrowheadStyle = "fill: #333";
+ edgeData.labelpos = "c";
+ }
+ edgeData.labelType = edge.labelType;
+ edgeData.label = edge.text.replace(common.lineBreakRegex, "\n");
+ if (edge.style === void 0) {
+ edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;";
+ }
+ edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
+ edgeData.id = linkId;
+ edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd;
+ g.setEdge(edge.start, edge.end, edgeData, cnt);
+ });
+};
+const getClasses = function(text, diagObj) {
+ log.info("Extracting classes");
+ diagObj.db.clear();
+ try {
+ diagObj.parse(text);
+ return diagObj.db.getClasses();
+ } catch (e) {
+ return;
+ }
+};
+const draw = function(text, id, _version, diagObj) {
+ log.info("Drawing flowchart");
+ diagObj.db.clear();
+ flowDb.setGen("gen-2");
+ diagObj.parser.parse(text);
+ let dir = diagObj.db.getDirection();
+ if (dir === void 0) {
+ dir = "TD";
+ }
+ const { securityLevel, flowchart: conf2 } = getConfig();
+ const nodeSpacing = conf2.nodeSpacing || 50;
+ const rankSpacing = conf2.rankSpacing || 50;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ const g = new graphlib.Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: dir,
+ nodesep: nodeSpacing,
+ ranksep: rankSpacing,
+ marginx: 0,
+ marginy: 0
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ let subG;
+ const subGraphs = diagObj.db.getSubGraphs();
+ log.info("Subgraphs - ", subGraphs);
+ for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {
+ subG = subGraphs[i2];
+ log.info("Subgraph - ", subG);
+ diagObj.db.addVertex(
+ subG.id,
+ { text: subG.title, type: subG.labelType },
+ "group",
+ void 0,
+ subG.classes,
+ subG.dir
+ );
+ }
+ const vert = diagObj.db.getVertices();
+ const edges = diagObj.db.getEdges();
+ log.info("Edges", edges);
+ let i = 0;
+ for (i = subGraphs.length - 1; i >= 0; i--) {
+ subG = subGraphs[i];
+ selectAll("cluster").append("text");
+ for (let j = 0; j < subG.nodes.length; j++) {
+ log.info("Setting up subgraphs", subG.nodes[j], subG.id);
+ g.setParent(subG.nodes[j], subG.id);
+ }
+ }
+ addVertices(vert, g, id, root, doc, diagObj);
+ addEdges(edges, g);
+ const svg = root.select(`[id="${id}"]`);
+ const element = root.select("#" + id + " g");
+ render(element, g, ["point", "circle", "cross"], "flowchart", id);
+ utils.insertTitle(svg, "flowchartTitleText", conf2.titleTopMargin, diagObj.db.getDiagramTitle());
+ setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth);
+ diagObj.db.indexNodes("subGraph" + i);
+ if (!conf2.htmlLabels) {
+ const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
+ for (const label of labels) {
+ const dim = label.getBBox();
+ const rect = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
+ rect.setAttribute("rx", 0);
+ rect.setAttribute("ry", 0);
+ rect.setAttribute("width", dim.width);
+ rect.setAttribute("height", dim.height);
+ label.insertBefore(rect, label.firstChild);
+ }
+ }
+ const keys = Object.keys(vert);
+ keys.forEach(function(key) {
+ const vertex = vert[key];
+ if (vertex.link) {
+ const node = select("#" + id + ' [id="' + key + '"]');
+ if (node) {
+ const link = doc.createElementNS("http://www.w3.org/2000/svg", "a");
+ link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" "));
+ link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link);
+ link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener");
+ if (securityLevel === "sandbox") {
+ link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top");
+ } else if (vertex.linkTarget) {
+ link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget);
+ }
+ const linkNode = node.insert(function() {
+ return link;
+ }, ":first-child");
+ const shape = node.select(".label-container");
+ if (shape) {
+ linkNode.append(function() {
+ return shape.node();
+ });
+ }
+ const label = node.select(".label");
+ if (label) {
+ linkNode.append(function() {
+ return label.node();
+ });
+ }
+ }
+ }
+ });
+};
+const flowRendererV2 = {
+ setConf,
+ addVertices,
+ addEdges,
+ getClasses,
+ draw
+};
+const getStyles = (options) => `.label {
+ font-family: ${options.fontFamily};
+ color: ${options.nodeTextColor || options.textColor};
+ }
+ .cluster-label text {
+ fill: ${options.titleColor};
+ }
+ .cluster-label span,p {
+ color: ${options.titleColor};
+ }
+
+ .label text,span,p {
+ fill: ${options.nodeTextColor || options.textColor};
+ color: ${options.nodeTextColor || options.textColor};
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+ stroke-width: 1px;
+ }
+ .flowchart-label text {
+ text-anchor: middle;
+ }
+ // .flowchart-label .text-outer-tspan {
+ // text-anchor: middle;
+ // }
+ // .flowchart-label .text-inner-tspan {
+ // text-anchor: start;
+ // }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${options.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${options.lineColor};
+ stroke-width: 2.0px;
+ }
+
+ .flowchart-link {
+ stroke: ${options.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${options.edgeLabelBackground};
+ rect {
+ opacity: 0.5;
+ background-color: ${options.edgeLabelBackground};
+ fill: ${options.edgeLabelBackground};
+ }
+ text-align: center;
+ }
+
+ .cluster rect {
+ fill: ${options.clusterBkg};
+ stroke: ${options.clusterBorder};
+ stroke-width: 1px;
+ }
+
+ .cluster text {
+ fill: ${options.titleColor};
+ }
+
+ .cluster span,p {
+ color: ${options.titleColor};
+ }
+ /* .cluster div {
+ color: ${options.titleColor};
+ } */
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: ${options.fontFamily};
+ font-size: 12px;
+ background: ${options.tertiaryColor};
+ border: 1px solid ${options.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .flowchartTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor};
+ }
+`;
+const flowStyles = getStyles;
+export {
+ flowStyles as a,
+ flowRendererV2 as f
+};
+//# sourceMappingURL=styles-26373982.js.map
diff --git a/scopegraphs-render-docs/doc/js/styles-3ce90e7a.js b/scopegraphs-render-docs/doc/js/styles-3ce90e7a.js
new file mode 100644
index 0000000..fd7b222
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/styles-3ce90e7a.js
@@ -0,0 +1,426 @@
+import { i as V, G as M } from "./layout-492ec81d.js";
+import { l as u, m as R, g as C, f as I, h as _ } from "./commonDb-41f8b4c5.js";
+import { f as q } from "./flowDb-39497bf7.js";
+import { k as F, z as N, A as $, y as E, u as U, B as H } from "./utils-8ea37061.js";
+import { r as W } from "./index-6271e032.js";
+import { s as X } from "./selectAll-4d781168.js";
+function se(e, l) {
+ return !!e.children(l).length;
+}
+function ie(e) {
+ return L(e.v) + ":" + L(e.w) + ":" + L(e.name);
+}
+var J = /:/g;
+function L(e) {
+ return e ? String(e).replace(J, "\\:") : "";
+}
+function K(e, l) {
+ l && e.attr("style", l);
+}
+function ce(e, l, c) {
+ l && e.attr("class", l).attr("class", c + " " + e.attr("class"));
+}
+function de(e, l) {
+ var c = l.graph();
+ if (V(c)) {
+ var a = c.transition;
+ if (F(a))
+ return a(e);
+ }
+ return e;
+}
+function Q(e, l) {
+ var c = e.append("foreignObject").attr("width", "100000"), a = c.append("xhtml:div");
+ a.attr("xmlns", "http://www.w3.org/1999/xhtml");
+ var i = l.label;
+ switch (typeof i) {
+ case "function":
+ a.insert(i);
+ break;
+ case "object":
+ a.insert(function() {
+ return i;
+ });
+ break;
+ default:
+ a.html(i);
+ }
+ K(a, l.labelStyle), a.style("display", "inline-block"), a.style("white-space", "nowrap");
+ var d = a.node().getBoundingClientRect();
+ return c.attr("width", d.width).attr("height", d.height), c;
+}
+const G = {}, Y = function(e) {
+ const l = Object.keys(e);
+ for (const c of l)
+ G[c] = e[c];
+}, z = function(e, l, c, a, i, d) {
+ const w = a.select(`[id="${c}"]`);
+ Object.keys(e).forEach(function(f) {
+ const r = e[f];
+ let k = "default";
+ r.classes.length > 0 && (k = r.classes.join(" ")), k = k + " flowchart-label";
+ const h = N(r.styles);
+ let t = r.text !== void 0 ? r.text : r.id, s;
+ if (u.info("vertex", r, r.labelType), r.labelType === "markdown")
+ u.info("vertex", r, r.labelType);
+ else if (R(C().flowchart.htmlLabels)) {
+ const m = {
+ label: t.replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (g) => ``
+ )
+ };
+ s = Q(w, m).node(), s.parentNode.removeChild(s);
+ } else {
+ const m = i.createElementNS("http://www.w3.org/2000/svg", "text");
+ m.setAttribute("style", h.labelStyle.replace("color:", "fill:"));
+ const g = t.split(I.lineBreakRegex);
+ for (const T of g) {
+ const v = i.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ v.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), v.setAttribute("dy", "1em"), v.setAttribute("x", "1"), v.textContent = T, m.appendChild(v);
+ }
+ s = m;
+ }
+ let p = 0, n = "";
+ switch (r.type) {
+ case "round":
+ p = 5, n = "rect";
+ break;
+ case "square":
+ n = "rect";
+ break;
+ case "diamond":
+ n = "question";
+ break;
+ case "hexagon":
+ n = "hexagon";
+ break;
+ case "odd":
+ n = "rect_left_inv_arrow";
+ break;
+ case "lean_right":
+ n = "lean_right";
+ break;
+ case "lean_left":
+ n = "lean_left";
+ break;
+ case "trapezoid":
+ n = "trapezoid";
+ break;
+ case "inv_trapezoid":
+ n = "inv_trapezoid";
+ break;
+ case "odd_right":
+ n = "rect_left_inv_arrow";
+ break;
+ case "circle":
+ n = "circle";
+ break;
+ case "ellipse":
+ n = "ellipse";
+ break;
+ case "stadium":
+ n = "stadium";
+ break;
+ case "subroutine":
+ n = "subroutine";
+ break;
+ case "cylinder":
+ n = "cylinder";
+ break;
+ case "group":
+ n = "rect";
+ break;
+ case "doublecircle":
+ n = "doublecircle";
+ break;
+ default:
+ n = "rect";
+ }
+ l.setNode(r.id, {
+ labelStyle: h.labelStyle,
+ shape: n,
+ labelText: t,
+ labelType: r.labelType,
+ rx: p,
+ ry: p,
+ class: k,
+ style: h.style,
+ id: r.id,
+ link: r.link,
+ linkTarget: r.linkTarget,
+ tooltip: d.db.getTooltip(r.id) || "",
+ domId: d.db.lookUpDomId(r.id),
+ haveCallback: r.haveCallback,
+ width: r.type === "group" ? 500 : void 0,
+ dir: r.dir,
+ type: r.type,
+ props: r.props,
+ padding: C().flowchart.padding
+ }), u.info("setNode", {
+ labelStyle: h.labelStyle,
+ labelType: r.labelType,
+ shape: n,
+ labelText: t,
+ rx: p,
+ ry: p,
+ class: k,
+ style: h.style,
+ id: r.id,
+ domId: d.db.lookUpDomId(r.id),
+ width: r.type === "group" ? 500 : void 0,
+ type: r.type,
+ dir: r.dir,
+ props: r.props,
+ padding: C().flowchart.padding
+ });
+ });
+}, P = function(e, l, c) {
+ u.info("abc78 edges = ", e);
+ let a = 0, i = {}, d, w;
+ if (e.defaultStyle !== void 0) {
+ const o = N(e.defaultStyle);
+ d = o.style, w = o.labelStyle;
+ }
+ e.forEach(function(o) {
+ a++;
+ var f = "L-" + o.start + "-" + o.end;
+ i[f] === void 0 ? (i[f] = 0, u.info("abc78 new entry", f, i[f])) : (i[f]++, u.info("abc78 new entry", f, i[f]));
+ let r = f + "-" + i[f];
+ u.info("abc78 new link id to be used is", f, r, i[f]);
+ var k = "LS-" + o.start, h = "LE-" + o.end;
+ const t = { style: "", labelStyle: "" };
+ switch (t.minlen = o.length || 1, o.type === "arrow_open" ? t.arrowhead = "none" : t.arrowhead = "normal", t.arrowTypeStart = "arrow_open", t.arrowTypeEnd = "arrow_open", o.type) {
+ case "double_arrow_cross":
+ t.arrowTypeStart = "arrow_cross";
+ case "arrow_cross":
+ t.arrowTypeEnd = "arrow_cross";
+ break;
+ case "double_arrow_point":
+ t.arrowTypeStart = "arrow_point";
+ case "arrow_point":
+ t.arrowTypeEnd = "arrow_point";
+ break;
+ case "double_arrow_circle":
+ t.arrowTypeStart = "arrow_circle";
+ case "arrow_circle":
+ t.arrowTypeEnd = "arrow_circle";
+ break;
+ }
+ let s = "", p = "";
+ switch (o.stroke) {
+ case "normal":
+ s = "fill:none;", d !== void 0 && (s = d), w !== void 0 && (p = w), t.thickness = "normal", t.pattern = "solid";
+ break;
+ case "dotted":
+ t.thickness = "normal", t.pattern = "dotted", t.style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
+ break;
+ case "thick":
+ t.thickness = "thick", t.pattern = "solid", t.style = "stroke-width: 3.5px;fill:none;";
+ break;
+ case "invisible":
+ t.thickness = "invisible", t.pattern = "solid", t.style = "stroke-width: 0;fill:none;";
+ break;
+ }
+ if (o.style !== void 0) {
+ const n = N(o.style);
+ s = n.style, p = n.labelStyle;
+ }
+ t.style = t.style += s, t.labelStyle = t.labelStyle += p, o.interpolate !== void 0 ? t.curve = $(o.interpolate, E) : e.defaultInterpolate !== void 0 ? t.curve = $(e.defaultInterpolate, E) : t.curve = $(G.curve, E), o.text === void 0 ? o.style !== void 0 && (t.arrowheadStyle = "fill: #333") : (t.arrowheadStyle = "fill: #333", t.labelpos = "c"), t.labelType = o.labelType, t.label = o.text.replace(I.lineBreakRegex, `
+`), o.style === void 0 && (t.style = t.style || "stroke: #333; stroke-width: 1.5px;fill:none;"), t.labelStyle = t.labelStyle.replace("color:", "fill:"), t.id = r, t.classes = "flowchart-link " + k + " " + h, l.setEdge(o.start, o.end, t, a);
+ });
+}, Z = function(e, l) {
+ u.info("Extracting classes"), l.db.clear();
+ try {
+ return l.parse(e), l.db.getClasses();
+ } catch {
+ return;
+ }
+}, j = function(e, l, c, a) {
+ u.info("Drawing flowchart"), a.db.clear(), q.setGen("gen-2"), a.parser.parse(e);
+ let i = a.db.getDirection();
+ i === void 0 && (i = "TD");
+ const { securityLevel: d, flowchart: w } = C(), o = w.nodeSpacing || 50, f = w.rankSpacing || 50;
+ let r;
+ d === "sandbox" && (r = _("#i" + l));
+ const k = d === "sandbox" ? _(r.nodes()[0].contentDocument.body) : _("body"), h = d === "sandbox" ? r.nodes()[0].contentDocument : document, t = new M({
+ multigraph: !0,
+ compound: !0
+ }).setGraph({
+ rankdir: i,
+ nodesep: o,
+ ranksep: f,
+ marginx: 0,
+ marginy: 0
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ let s;
+ const p = a.db.getSubGraphs();
+ u.info("Subgraphs - ", p);
+ for (let b = p.length - 1; b >= 0; b--)
+ s = p[b], u.info("Subgraph - ", s), a.db.addVertex(
+ s.id,
+ { text: s.title, type: s.labelType },
+ "group",
+ void 0,
+ s.classes,
+ s.dir
+ );
+ const n = a.db.getVertices(), m = a.db.getEdges();
+ u.info("Edges", m);
+ let g = 0;
+ for (g = p.length - 1; g >= 0; g--) {
+ s = p[g], X("cluster").append("text");
+ for (let b = 0; b < s.nodes.length; b++)
+ u.info("Setting up subgraphs", s.nodes[b], s.id), t.setParent(s.nodes[b], s.id);
+ }
+ z(n, t, l, k, h, a), P(m, t);
+ const T = k.select(`[id="${l}"]`), v = k.select("#" + l + " g");
+ if (W(v, t, ["point", "circle", "cross"], "flowchart", l), U.insertTitle(T, "flowchartTitleText", w.titleTopMargin, a.db.getDiagramTitle()), H(t, T, w.diagramPadding, w.useMaxWidth), a.db.indexNodes("subGraph" + g), !w.htmlLabels) {
+ const b = h.querySelectorAll('[id="' + l + '"] .edgeLabel .label');
+ for (const x of b) {
+ const S = x.getBBox(), y = h.createElementNS("http://www.w3.org/2000/svg", "rect");
+ y.setAttribute("rx", 0), y.setAttribute("ry", 0), y.setAttribute("width", S.width), y.setAttribute("height", S.height), x.insertBefore(y, x.firstChild);
+ }
+ }
+ Object.keys(n).forEach(function(b) {
+ const x = n[b];
+ if (x.link) {
+ const S = _("#" + l + ' [id="' + b + '"]');
+ if (S) {
+ const y = h.createElementNS("http://www.w3.org/2000/svg", "a");
+ y.setAttributeNS("http://www.w3.org/2000/svg", "class", x.classes.join(" ")), y.setAttributeNS("http://www.w3.org/2000/svg", "href", x.link), y.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener"), d === "sandbox" ? y.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top") : x.linkTarget && y.setAttributeNS("http://www.w3.org/2000/svg", "target", x.linkTarget);
+ const A = S.insert(function() {
+ return y;
+ }, ":first-child"), B = S.select(".label-container");
+ B && A.append(function() {
+ return B.node();
+ });
+ const D = S.select(".label");
+ D && A.append(function() {
+ return D.node();
+ });
+ }
+ }
+ });
+}, fe = {
+ setConf: Y,
+ addVertices: z,
+ addEdges: P,
+ getClasses: Z,
+ draw: j
+}, O = (e) => `.label {
+ font-family: ${e.fontFamily};
+ color: ${e.nodeTextColor || e.textColor};
+ }
+ .cluster-label text {
+ fill: ${e.titleColor};
+ }
+ .cluster-label span,p {
+ color: ${e.titleColor};
+ }
+
+ .label text,span,p {
+ fill: ${e.nodeTextColor || e.textColor};
+ color: ${e.nodeTextColor || e.textColor};
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${e.mainBkg};
+ stroke: ${e.nodeBorder};
+ stroke-width: 1px;
+ }
+ .flowchart-label text {
+ text-anchor: middle;
+ }
+ // .flowchart-label .text-outer-tspan {
+ // text-anchor: middle;
+ // }
+ // .flowchart-label .text-inner-tspan {
+ // text-anchor: start;
+ // }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${e.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${e.lineColor};
+ stroke-width: 2.0px;
+ }
+
+ .flowchart-link {
+ stroke: ${e.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${e.edgeLabelBackground};
+ rect {
+ opacity: 0.5;
+ background-color: ${e.edgeLabelBackground};
+ fill: ${e.edgeLabelBackground};
+ }
+ text-align: center;
+ }
+
+ .cluster rect {
+ fill: ${e.clusterBkg};
+ stroke: ${e.clusterBorder};
+ stroke-width: 1px;
+ }
+
+ .cluster text {
+ fill: ${e.titleColor};
+ }
+
+ .cluster span,p {
+ color: ${e.titleColor};
+ }
+ /* .cluster div {
+ color: ${e.titleColor};
+ } */
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: ${e.fontFamily};
+ font-size: 12px;
+ background: ${e.tertiaryColor};
+ border: 1px solid ${e.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .flowchartTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${e.textColor};
+ }
+`, pe = O;
+export {
+ K as a,
+ Q as b,
+ de as c,
+ ce as d,
+ ie as e,
+ fe as f,
+ pe as g,
+ se as i
+};
+//# sourceMappingURL=styles-3ce90e7a.js.map
diff --git a/scopegraphs-render-docs/doc/js/styles-47a825a5.js b/scopegraphs-render-docs/doc/js/styles-47a825a5.js
new file mode 100644
index 0000000..fa648a7
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/styles-47a825a5.js
@@ -0,0 +1,1400 @@
+import { g as getConfig, p as getAccTitle, o as setAccTitle, q as getAccDescription, v as setAccDescription, w as setDiagramTitle, x as getDiagramTitle, l as log, e as common, y as clear$1 } from "./commonDb-573409be.js";
+import { y as generateId } from "./utils-d622194a.js";
+import { m as mermaidAPI } from "./mermaidAPI-3ae0f2f0.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 7], $V4 = [2, 5], $V5 = [1, 15], $V6 = [1, 17], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 37], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 32], $Vi = [1, 33], $Vj = [1, 34], $Vk = [1, 35], $Vl = [1, 36], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 38], $Vr = [1, 45], $Vs = [1, 4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vt = [1, 4, 5, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vu = [1, 4, 5, 7, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vv = [4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "SPACE": 4, "NL": 5, "directive": 6, "SD": 7, "document": 8, "line": 9, "statement": 10, "classDefStatement": 11, "cssClassStatement": 12, "idStatement": 13, "DESCR": 14, "-->": 15, "HIDE_EMPTY": 16, "scale": 17, "WIDTH": 18, "COMPOSIT_STATE": 19, "STRUCT_START": 20, "STRUCT_STOP": 21, "STATE_DESCR": 22, "AS": 23, "ID": 24, "FORK": 25, "JOIN": 26, "CHOICE": 27, "CONCURRENT": 28, "note": 29, "notePosition": 30, "NOTE_TEXT": 31, "direction": 32, "acc_title": 33, "acc_title_value": 34, "acc_descr": 35, "acc_descr_value": 36, "acc_descr_multiline_value": 37, "classDef": 38, "CLASSDEF_ID": 39, "CLASSDEF_STYLEOPTS": 40, "DEFAULT": 41, "class": 42, "CLASSENTITY_IDS": 43, "STYLECLASS": 44, "openDirective": 45, "typeDirective": 46, "closeDirective": 47, ":": 48, "argDirective": 49, "direction_tb": 50, "direction_bt": 51, "direction_rl": 52, "direction_lr": 53, "eol": 54, ";": 55, "EDGE_STATE": 56, "STYLE_SEPARATOR": 57, "left_of": 58, "right_of": 59, "open_directive": 60, "type_directive": 61, "arg_directive": 62, "close_directive": 63, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "SPACE", 5: "NL", 7: "SD", 14: "DESCR", 15: "-->", 16: "HIDE_EMPTY", 17: "scale", 18: "WIDTH", 19: "COMPOSIT_STATE", 20: "STRUCT_START", 21: "STRUCT_STOP", 22: "STATE_DESCR", 23: "AS", 24: "ID", 25: "FORK", 26: "JOIN", 27: "CHOICE", 28: "CONCURRENT", 29: "note", 31: "NOTE_TEXT", 33: "acc_title", 34: "acc_title_value", 35: "acc_descr", 36: "acc_descr_value", 37: "acc_descr_multiline_value", 38: "classDef", 39: "CLASSDEF_ID", 40: "CLASSDEF_STYLEOPTS", 41: "DEFAULT", 42: "class", 43: "CLASSENTITY_IDS", 44: "STYLECLASS", 48: ":", 50: "direction_tb", 51: "direction_bt", 52: "direction_rl", 53: "direction_lr", 55: ";", 56: "EDGE_STATE", 57: "STYLE_SEPARATOR", 58: "left_of", 59: "right_of", 60: "open_directive", 61: "type_directive", 62: "arg_directive", 63: "close_directive" },
+ productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 3], [10, 4], [10, 1], [10, 2], [10, 1], [10, 4], [10, 3], [10, 6], [10, 1], [10, 1], [10, 1], [10, 1], [10, 4], [10, 4], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [11, 3], [11, 3], [12, 3], [6, 3], [6, 5], [32, 1], [32, 1], [32, 1], [32, 1], [54, 1], [54, 1], [13, 1], [13, 1], [13, 3], [13, 3], [30, 1], [30, 1], [45, 1], [46, 1], [49, 1], [47, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 4:
+ yy.setRootDoc($$[$0]);
+ return $$[$0];
+ case 5:
+ this.$ = [];
+ break;
+ case 6:
+ if ($$[$0] != "nl") {
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ }
+ break;
+ case 7:
+ case 8:
+ this.$ = $$[$0];
+ break;
+ case 9:
+ this.$ = "nl";
+ break;
+ case 12:
+ this.$ = $$[$0];
+ break;
+ case 13:
+ const stateStmt = $$[$0 - 1];
+ stateStmt.description = yy.trimColon($$[$0]);
+ this.$ = stateStmt;
+ break;
+ case 14:
+ this.$ = { stmt: "relation", state1: $$[$0 - 2], state2: $$[$0] };
+ break;
+ case 15:
+ const relDescription = yy.trimColon($$[$0]);
+ this.$ = { stmt: "relation", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription };
+ break;
+ case 19:
+ this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: "", doc: $$[$0 - 1] };
+ break;
+ case 20:
+ var id = $$[$0];
+ var description = $$[$0 - 2].trim();
+ if ($$[$0].match(":")) {
+ var parts = $$[$0].split(":");
+ id = parts[0];
+ description = [description, parts[1]];
+ }
+ this.$ = { stmt: "state", id, type: "default", description };
+ break;
+ case 21:
+ this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: $$[$0 - 5], doc: $$[$0 - 1] };
+ break;
+ case 22:
+ this.$ = { stmt: "state", id: $$[$0], type: "fork" };
+ break;
+ case 23:
+ this.$ = { stmt: "state", id: $$[$0], type: "join" };
+ break;
+ case 24:
+ this.$ = { stmt: "state", id: $$[$0], type: "choice" };
+ break;
+ case 25:
+ this.$ = { stmt: "state", id: yy.getDividerId(), type: "divider" };
+ break;
+ case 26:
+ this.$ = { stmt: "state", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } };
+ break;
+ case 30:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 31:
+ case 32:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 33:
+ case 34:
+ this.$ = { stmt: "classDef", id: $$[$0 - 1].trim(), classes: $$[$0].trim() };
+ break;
+ case 35:
+ this.$ = { stmt: "applyClass", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };
+ break;
+ case 38:
+ yy.setDirection("TB");
+ this.$ = { stmt: "dir", value: "TB" };
+ break;
+ case 39:
+ yy.setDirection("BT");
+ this.$ = { stmt: "dir", value: "BT" };
+ break;
+ case 40:
+ yy.setDirection("RL");
+ this.$ = { stmt: "dir", value: "RL" };
+ break;
+ case 41:
+ yy.setDirection("LR");
+ this.$ = { stmt: "dir", value: "LR" };
+ break;
+ case 44:
+ case 45:
+ this.$ = { stmt: "state", id: $$[$0].trim(), type: "default", description: "" };
+ break;
+ case 46:
+ this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" };
+ break;
+ case 47:
+ this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" };
+ break;
+ case 50:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 51:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 52:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 53:
+ yy.parseDirective("}%%", "close_directive", "state");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 1: [3] }, { 3: 8, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 3: 9, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 3: 10, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, o([1, 4, 5, 16, 17, 19, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $V4, { 8: 11 }), { 46: 12, 61: [1, 13] }, { 61: [2, 50] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, { 47: 43, 48: [1, 44], 63: $Vr }, o([48, 63], [2, 51]), o($Vs, [2, 6]), { 6: 30, 10: 46, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 8]), o($Vs, [2, 9]), o($Vs, [2, 10]), o($Vs, [2, 11]), o($Vs, [2, 12], { 14: [1, 47], 15: [1, 48] }), o($Vs, [2, 16]), { 18: [1, 49] }, o($Vs, [2, 18], { 20: [1, 50] }), { 23: [1, 51] }, o($Vs, [2, 22]), o($Vs, [2, 23]), o($Vs, [2, 24]), o($Vs, [2, 25]), { 30: 52, 31: [1, 53], 58: [1, 54], 59: [1, 55] }, o($Vs, [2, 28]), o($Vs, [2, 29]), { 34: [1, 56] }, { 36: [1, 57] }, o($Vs, [2, 32]), { 39: [1, 58], 41: [1, 59] }, { 43: [1, 60] }, o($Vt, [2, 44], { 57: [1, 61] }), o($Vt, [2, 45], { 57: [1, 62] }), o($Vs, [2, 38]), o($Vs, [2, 39]), o($Vs, [2, 40]), o($Vs, [2, 41]), o($Vu, [2, 36]), { 49: 63, 62: [1, 64] }, o($Vu, [2, 53]), o($Vs, [2, 7]), o($Vs, [2, 13]), { 13: 65, 24: $Vb, 56: $Vq }, o($Vs, [2, 17]), o($Vv, $V4, { 8: 66 }), { 24: [1, 67] }, { 24: [1, 68] }, { 23: [1, 69] }, { 24: [2, 48] }, { 24: [2, 49] }, o($Vs, [2, 30]), o($Vs, [2, 31]), { 40: [1, 70] }, { 40: [1, 71] }, { 44: [1, 72] }, { 24: [1, 73] }, { 24: [1, 74] }, { 47: 75, 63: $Vr }, { 63: [2, 52] }, o($Vs, [2, 14], { 14: [1, 76] }), { 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 21: [1, 77], 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 20], { 20: [1, 78] }), { 31: [1, 79] }, { 24: [1, 80] }, o($Vs, [2, 33]), o($Vs, [2, 34]), o($Vs, [2, 35]), o($Vt, [2, 46]), o($Vt, [2, 47]), o($Vu, [2, 37]), o($Vs, [2, 15]), o($Vs, [2, 19]), o($Vv, $V4, { 8: 81 }), o($Vs, [2, 26]), o($Vs, [2, 27]), { 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 21: [1, 82], 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 21])],
+ defaultActions: { 7: [2, 50], 8: [2, 1], 9: [2, 2], 10: [2, 3], 54: [2, 48], 55: [2, 49], 64: [2, 52] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ return 41;
+ case 1:
+ return 50;
+ case 2:
+ return 51;
+ case 3:
+ return 52;
+ case 4:
+ return 53;
+ case 5:
+ this.begin("open_directive");
+ return 60;
+ case 6:
+ this.begin("type_directive");
+ return 61;
+ case 7:
+ this.popState();
+ this.begin("arg_directive");
+ return 48;
+ case 8:
+ this.popState();
+ this.popState();
+ return 63;
+ case 9:
+ return 62;
+ case 10:
+ break;
+ case 11:
+ break;
+ case 12:
+ return 5;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ break;
+ case 16:
+ break;
+ case 17:
+ this.pushState("SCALE");
+ return 17;
+ case 18:
+ return 18;
+ case 19:
+ this.popState();
+ break;
+ case 20:
+ this.begin("acc_title");
+ return 33;
+ case 21:
+ this.popState();
+ return "acc_title_value";
+ case 22:
+ this.begin("acc_descr");
+ return 35;
+ case 23:
+ this.popState();
+ return "acc_descr_value";
+ case 24:
+ this.begin("acc_descr_multiline");
+ break;
+ case 25:
+ this.popState();
+ break;
+ case 26:
+ return "acc_descr_multiline_value";
+ case 27:
+ this.pushState("CLASSDEF");
+ return 38;
+ case 28:
+ this.popState();
+ this.pushState("CLASSDEFID");
+ return "DEFAULT_CLASSDEF_ID";
+ case 29:
+ this.popState();
+ this.pushState("CLASSDEFID");
+ return 39;
+ case 30:
+ this.popState();
+ return 40;
+ case 31:
+ this.pushState("CLASS");
+ return 42;
+ case 32:
+ this.popState();
+ this.pushState("CLASS_STYLE");
+ return 43;
+ case 33:
+ this.popState();
+ return 44;
+ case 34:
+ this.pushState("SCALE");
+ return 17;
+ case 35:
+ return 18;
+ case 36:
+ this.popState();
+ break;
+ case 37:
+ this.pushState("STATE");
+ break;
+ case 38:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 25;
+ case 39:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 26;
+ case 40:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -10).trim();
+ return 27;
+ case 41:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 25;
+ case 42:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 26;
+ case 43:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -10).trim();
+ return 27;
+ case 44:
+ return 50;
+ case 45:
+ return 51;
+ case 46:
+ return 52;
+ case 47:
+ return 53;
+ case 48:
+ this.pushState("STATE_STRING");
+ break;
+ case 49:
+ this.pushState("STATE_ID");
+ return "AS";
+ case 50:
+ this.popState();
+ return "ID";
+ case 51:
+ this.popState();
+ break;
+ case 52:
+ return "STATE_DESCR";
+ case 53:
+ return 19;
+ case 54:
+ this.popState();
+ break;
+ case 55:
+ this.popState();
+ this.pushState("struct");
+ return 20;
+ case 56:
+ break;
+ case 57:
+ this.popState();
+ return 21;
+ case 58:
+ break;
+ case 59:
+ this.begin("NOTE");
+ return 29;
+ case 60:
+ this.popState();
+ this.pushState("NOTE_ID");
+ return 58;
+ case 61:
+ this.popState();
+ this.pushState("NOTE_ID");
+ return 59;
+ case 62:
+ this.popState();
+ this.pushState("FLOATING_NOTE");
+ break;
+ case 63:
+ this.popState();
+ this.pushState("FLOATING_NOTE_ID");
+ return "AS";
+ case 64:
+ break;
+ case 65:
+ return "NOTE_TEXT";
+ case 66:
+ this.popState();
+ return "ID";
+ case 67:
+ this.popState();
+ this.pushState("NOTE_TEXT");
+ return 24;
+ case 68:
+ this.popState();
+ yy_.yytext = yy_.yytext.substr(2).trim();
+ return 31;
+ case 69:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 31;
+ case 70:
+ return 7;
+ case 71:
+ return 7;
+ case 72:
+ return 16;
+ case 73:
+ return 56;
+ case 74:
+ return 24;
+ case 75:
+ yy_.yytext = yy_.yytext.trim();
+ return 14;
+ case 76:
+ return 15;
+ case 77:
+ return 28;
+ case 78:
+ return 57;
+ case 79:
+ return 5;
+ case 80:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:default\b)/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:[\s]+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:classDef\s+)/i, /^(?:DEFAULT\s+)/i, /^(?:\w+\s+)/i, /^(?:[^\n]*)/i, /^(?:class\s+)/i, /^(?:(\w+)+((,\s*\w+)*))/i, /^(?:[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:state\s+)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*\[\[fork\]\])/i, /^(?:.*\[\[join\]\])/i, /^(?:.*\[\[choice\]\])/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:["])/i, /^(?:\s*as\s+)/i, /^(?:[^\n\{]*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n\s\{]+)/i, /^(?:\n)/i, /^(?:\{)/i, /^(?:%%(?!\{)[^\n]*)/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\S]*?end note\b)/i, /^(?:stateDiagram\s+)/i, /^(?:stateDiagram-v2\s+)/i, /^(?:hide empty description\b)/i, /^(?:\[\*\])/i, /^(?:[^:\n\s\-\{]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "LINE": { "rules": [14, 15], "inclusive": false }, "close_directive": { "rules": [14, 15], "inclusive": false }, "arg_directive": { "rules": [8, 9, 14, 15], "inclusive": false }, "type_directive": { "rules": [7, 8, 14, 15], "inclusive": false }, "open_directive": { "rules": [6, 14, 15], "inclusive": false }, "struct": { "rules": [14, 15, 27, 31, 37, 44, 45, 46, 47, 56, 57, 58, 59, 73, 74, 75, 76, 77], "inclusive": false }, "FLOATING_NOTE_ID": { "rules": [66], "inclusive": false }, "FLOATING_NOTE": { "rules": [63, 64, 65], "inclusive": false }, "NOTE_TEXT": { "rules": [68, 69], "inclusive": false }, "NOTE_ID": { "rules": [67], "inclusive": false }, "NOTE": { "rules": [60, 61, 62], "inclusive": false }, "CLASS_STYLE": { "rules": [33], "inclusive": false }, "CLASS": { "rules": [32], "inclusive": false }, "CLASSDEFID": { "rules": [30], "inclusive": false }, "CLASSDEF": { "rules": [28, 29], "inclusive": false }, "acc_descr_multiline": { "rules": [25, 26], "inclusive": false }, "acc_descr": { "rules": [23], "inclusive": false }, "acc_title": { "rules": [21], "inclusive": false }, "SCALE": { "rules": [18, 19, 35, 36], "inclusive": false }, "ALIAS": { "rules": [], "inclusive": false }, "STATE_ID": { "rules": [50], "inclusive": false }, "STATE_STRING": { "rules": [51, 52], "inclusive": false }, "FORK_STATE": { "rules": [], "inclusive": false }, "STATE": { "rules": [14, 15, 38, 39, 40, 41, 42, 43, 48, 49, 53, 54, 55], "inclusive": false }, "ID": { "rules": [14, 15], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 27, 31, 34, 37, 55, 59, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+const DEFAULT_DIAGRAM_DIRECTION = "LR";
+const DEFAULT_NESTED_DOC_DIR = "TB";
+const STMT_STATE = "state";
+const STMT_RELATION = "relation";
+const STMT_CLASSDEF = "classDef";
+const STMT_APPLYCLASS = "applyClass";
+const DEFAULT_STATE_TYPE = "default";
+const DIVIDER_TYPE = "divider";
+const START_NODE = "[*]";
+const START_TYPE = "start";
+const END_NODE = START_NODE;
+const END_TYPE = "end";
+const COLOR_KEYWORD = "color";
+const FILL_KEYWORD = "fill";
+const BG_FILL = "bgFill";
+const STYLECLASS_SEP = ",";
+function newClassesList() {
+ return {};
+}
+let direction = DEFAULT_DIAGRAM_DIRECTION;
+let rootDoc = [];
+let classes = newClassesList();
+const newDoc = () => {
+ return {
+ relations: [],
+ states: {},
+ documents: {}
+ };
+};
+let documents = {
+ root: newDoc()
+};
+let currentDocument = documents.root;
+let startEndCount = 0;
+let dividerCnt = 0;
+const lineType = {
+ LINE: 0,
+ DOTTED_LINE: 1
+};
+const relationType = {
+ AGGREGATION: 0,
+ EXTENSION: 1,
+ COMPOSITION: 2,
+ DEPENDENCY: 3
+};
+const clone = (o) => JSON.parse(JSON.stringify(o));
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const setRootDoc = (o) => {
+ log.info("Setting root doc", o);
+ rootDoc = o;
+};
+const getRootDoc = () => rootDoc;
+const docTranslator = (parent, node, first) => {
+ if (node.stmt === STMT_RELATION) {
+ docTranslator(parent, node.state1, true);
+ docTranslator(parent, node.state2, false);
+ } else {
+ if (node.stmt === STMT_STATE) {
+ if (node.id === "[*]") {
+ node.id = first ? parent.id + "_start" : parent.id + "_end";
+ node.start = first;
+ } else {
+ node.id = node.id.trim();
+ }
+ }
+ if (node.doc) {
+ const doc = [];
+ let currentDoc = [];
+ let i;
+ for (i = 0; i < node.doc.length; i++) {
+ if (node.doc[i].type === DIVIDER_TYPE) {
+ const newNode = clone(node.doc[i]);
+ newNode.doc = clone(currentDoc);
+ doc.push(newNode);
+ currentDoc = [];
+ } else {
+ currentDoc.push(node.doc[i]);
+ }
+ }
+ if (doc.length > 0 && currentDoc.length > 0) {
+ const newNode = {
+ stmt: STMT_STATE,
+ id: generateId(),
+ type: "divider",
+ doc: clone(currentDoc)
+ };
+ doc.push(clone(newNode));
+ node.doc = doc;
+ }
+ node.doc.forEach((docNode) => docTranslator(node, docNode, true));
+ }
+ }
+};
+const getRootDocV2 = () => {
+ docTranslator({ id: "root" }, { id: "root", doc: rootDoc }, true);
+ return { id: "root", doc: rootDoc };
+};
+const extract = (_doc) => {
+ let doc;
+ if (_doc.doc) {
+ doc = _doc.doc;
+ } else {
+ doc = _doc;
+ }
+ log.info(doc);
+ clear(true);
+ log.info("Extract", doc);
+ doc.forEach((item) => {
+ switch (item.stmt) {
+ case STMT_STATE:
+ addState(
+ item.id.trim(),
+ item.type,
+ item.doc,
+ item.description,
+ item.note,
+ item.classes,
+ item.styles,
+ item.textStyles
+ );
+ break;
+ case STMT_RELATION:
+ addRelation(item.state1, item.state2, item.description);
+ break;
+ case STMT_CLASSDEF:
+ addStyleClass(item.id.trim(), item.classes);
+ break;
+ case STMT_APPLYCLASS:
+ setCssClass(item.id.trim(), item.styleClass);
+ break;
+ }
+ });
+};
+const addState = function(id, type = DEFAULT_STATE_TYPE, doc = null, descr = null, note = null, classes2 = null, styles2 = null, textStyles = null) {
+ const trimmedId = id == null ? void 0 : id.trim();
+ if (currentDocument.states[trimmedId] === void 0) {
+ log.info("Adding state ", trimmedId, descr);
+ currentDocument.states[trimmedId] = {
+ id: trimmedId,
+ descriptions: [],
+ type,
+ doc,
+ note,
+ classes: [],
+ styles: [],
+ textStyles: []
+ };
+ } else {
+ if (!currentDocument.states[trimmedId].doc) {
+ currentDocument.states[trimmedId].doc = doc;
+ }
+ if (!currentDocument.states[trimmedId].type) {
+ currentDocument.states[trimmedId].type = type;
+ }
+ }
+ if (descr) {
+ log.info("Setting state description", trimmedId, descr);
+ if (typeof descr === "string") {
+ addDescription(trimmedId, descr.trim());
+ }
+ if (typeof descr === "object") {
+ descr.forEach((des) => addDescription(trimmedId, des.trim()));
+ }
+ }
+ if (note) {
+ currentDocument.states[trimmedId].note = note;
+ currentDocument.states[trimmedId].note.text = common.sanitizeText(
+ currentDocument.states[trimmedId].note.text,
+ getConfig()
+ );
+ }
+ if (classes2) {
+ log.info("Setting state classes", trimmedId, classes2);
+ const classesList = typeof classes2 === "string" ? [classes2] : classes2;
+ classesList.forEach((klass) => setCssClass(trimmedId, klass.trim()));
+ }
+ if (styles2) {
+ log.info("Setting state styles", trimmedId, styles2);
+ const stylesList = typeof styles2 === "string" ? [styles2] : styles2;
+ stylesList.forEach((style) => setStyle(trimmedId, style.trim()));
+ }
+ if (textStyles) {
+ log.info("Setting state styles", trimmedId, styles2);
+ const textStylesList = typeof textStyles === "string" ? [textStyles] : textStyles;
+ textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim()));
+ }
+};
+const clear = function(saveCommon) {
+ documents = {
+ root: newDoc()
+ };
+ currentDocument = documents.root;
+ startEndCount = 0;
+ classes = newClassesList();
+ if (!saveCommon) {
+ clear$1();
+ }
+};
+const getState = function(id) {
+ return currentDocument.states[id];
+};
+const getStates = function() {
+ return currentDocument.states;
+};
+const logDocuments = function() {
+ log.info("Documents = ", documents);
+};
+const getRelations = function() {
+ return currentDocument.relations;
+};
+function startIdIfNeeded(id = "") {
+ let fixedId = id;
+ if (id === START_NODE) {
+ startEndCount++;
+ fixedId = `${START_TYPE}${startEndCount}`;
+ }
+ return fixedId;
+}
+function startTypeIfNeeded(id = "", type = DEFAULT_STATE_TYPE) {
+ return id === START_NODE ? START_TYPE : type;
+}
+function endIdIfNeeded(id = "") {
+ let fixedId = id;
+ if (id === END_NODE) {
+ startEndCount++;
+ fixedId = `${END_TYPE}${startEndCount}`;
+ }
+ return fixedId;
+}
+function endTypeIfNeeded(id = "", type = DEFAULT_STATE_TYPE) {
+ return id === END_NODE ? END_TYPE : type;
+}
+function addRelationObjs(item1, item2, relationTitle) {
+ let id1 = startIdIfNeeded(item1.id.trim());
+ let type1 = startTypeIfNeeded(item1.id.trim(), item1.type);
+ let id2 = startIdIfNeeded(item2.id.trim());
+ let type2 = startTypeIfNeeded(item2.id.trim(), item2.type);
+ addState(
+ id1,
+ type1,
+ item1.doc,
+ item1.description,
+ item1.note,
+ item1.classes,
+ item1.styles,
+ item1.textStyles
+ );
+ addState(
+ id2,
+ type2,
+ item2.doc,
+ item2.description,
+ item2.note,
+ item2.classes,
+ item2.styles,
+ item2.textStyles
+ );
+ currentDocument.relations.push({
+ id1,
+ id2,
+ relationTitle: common.sanitizeText(relationTitle, getConfig())
+ });
+}
+const addRelation = function(item1, item2, title) {
+ if (typeof item1 === "object") {
+ addRelationObjs(item1, item2, title);
+ } else {
+ const id1 = startIdIfNeeded(item1.trim());
+ const type1 = startTypeIfNeeded(item1);
+ const id2 = endIdIfNeeded(item2.trim());
+ const type2 = endTypeIfNeeded(item2);
+ addState(id1, type1);
+ addState(id2, type2);
+ currentDocument.relations.push({
+ id1,
+ id2,
+ title: common.sanitizeText(title, getConfig())
+ });
+ }
+};
+const addDescription = function(id, descr) {
+ const theState = currentDocument.states[id];
+ const _descr = descr.startsWith(":") ? descr.replace(":", "").trim() : descr;
+ theState.descriptions.push(common.sanitizeText(_descr, getConfig()));
+};
+const cleanupLabel = function(label) {
+ if (label.substring(0, 1) === ":") {
+ return label.substr(2).trim();
+ } else {
+ return label.trim();
+ }
+};
+const getDividerId = () => {
+ dividerCnt++;
+ return "divider-id-" + dividerCnt;
+};
+const addStyleClass = function(id, styleAttributes = "") {
+ if (classes[id] === void 0) {
+ classes[id] = { id, styles: [], textStyles: [] };
+ }
+ const foundClass = classes[id];
+ if (styleAttributes !== void 0 && styleAttributes !== null) {
+ styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {
+ const fixedAttrib = attrib.replace(/([^;]*);/, "$1").trim();
+ if (attrib.match(COLOR_KEYWORD)) {
+ const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);
+ const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);
+ foundClass.textStyles.push(newStyle2);
+ }
+ foundClass.styles.push(fixedAttrib);
+ });
+ }
+};
+const getClasses = function() {
+ return classes;
+};
+const setCssClass = function(itemIds, cssClassName) {
+ itemIds.split(",").forEach(function(id) {
+ let foundState = getState(id);
+ if (foundState === void 0) {
+ const trimmedId = id.trim();
+ addState(trimmedId);
+ foundState = getState(trimmedId);
+ }
+ foundState.classes.push(cssClassName);
+ });
+};
+const setStyle = function(itemId, styleText) {
+ const item = getState(itemId);
+ if (item !== void 0) {
+ item.textStyles.push(styleText);
+ }
+};
+const setTextStyle = function(itemId, cssClassName) {
+ const item = getState(itemId);
+ if (item !== void 0) {
+ item.textStyles.push(cssClassName);
+ }
+};
+const getDirection = () => direction;
+const setDirection = (dir) => {
+ direction = dir;
+};
+const trimColon = (str) => str && str[0] === ":" ? str.substr(1).trim() : str.trim();
+const db = {
+ parseDirective,
+ getConfig: () => getConfig().state,
+ addState,
+ clear,
+ getState,
+ getStates,
+ getRelations,
+ getClasses,
+ getDirection,
+ addRelation,
+ getDividerId,
+ setDirection,
+ cleanupLabel,
+ lineType,
+ relationType,
+ logDocuments,
+ getRootDoc,
+ setRootDoc,
+ getRootDocV2,
+ extract,
+ trimColon,
+ getAccTitle,
+ setAccTitle,
+ getAccDescription,
+ setAccDescription,
+ addStyleClass,
+ setCssClass,
+ addDescription,
+ setDiagramTitle,
+ getDiagramTitle
+};
+const getStyles = (options) => `
+defs #statediagram-barbEnd {
+ fill: ${options.transitionColor};
+ stroke: ${options.transitionColor};
+ }
+g.stateGroup text {
+ fill: ${options.nodeBorder};
+ stroke: none;
+ font-size: 10px;
+}
+g.stateGroup text {
+ fill: ${options.textColor};
+ stroke: none;
+ font-size: 10px;
+
+}
+g.stateGroup .state-title {
+ font-weight: bolder;
+ fill: ${options.stateLabelColor};
+}
+
+g.stateGroup rect {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+}
+
+g.stateGroup line {
+ stroke: ${options.lineColor};
+ stroke-width: 1;
+}
+
+.transition {
+ stroke: ${options.transitionColor};
+ stroke-width: 1;
+ fill: none;
+}
+
+.stateGroup .composit {
+ fill: ${options.background};
+ border-bottom: 1px
+}
+
+.stateGroup .alt-composit {
+ fill: #e0e0e0;
+ border-bottom: 1px
+}
+
+.state-note {
+ stroke: ${options.noteBorderColor};
+ fill: ${options.noteBkgColor};
+
+ text {
+ fill: ${options.noteTextColor};
+ stroke: none;
+ font-size: 10px;
+ }
+}
+
+.stateLabel .box {
+ stroke: none;
+ stroke-width: 0;
+ fill: ${options.mainBkg};
+ opacity: 0.5;
+}
+
+.edgeLabel .label rect {
+ fill: ${options.labelBackgroundColor};
+ opacity: 0.5;
+}
+.edgeLabel .label text {
+ fill: ${options.transitionLabelColor || options.tertiaryTextColor};
+}
+.label div .edgeLabel {
+ color: ${options.transitionLabelColor || options.tertiaryTextColor};
+}
+
+.stateLabel text {
+ fill: ${options.stateLabelColor};
+ font-size: 10px;
+ font-weight: bold;
+}
+
+.node circle.state-start {
+ fill: ${options.specialStateColor};
+ stroke: ${options.specialStateColor};
+}
+
+.node .fork-join {
+ fill: ${options.specialStateColor};
+ stroke: ${options.specialStateColor};
+}
+
+.node circle.state-end {
+ fill: ${options.innerEndBackground};
+ stroke: ${options.background};
+ stroke-width: 1.5
+}
+.end-state-inner {
+ fill: ${options.compositeBackground || options.background};
+ // stroke: ${options.background};
+ stroke-width: 1.5
+}
+
+.node rect {
+ fill: ${options.stateBkg || options.mainBkg};
+ stroke: ${options.stateBorder || options.nodeBorder};
+ stroke-width: 1px;
+}
+.node polygon {
+ fill: ${options.mainBkg};
+ stroke: ${options.stateBorder || options.nodeBorder};;
+ stroke-width: 1px;
+}
+#statediagram-barbEnd {
+ fill: ${options.lineColor};
+}
+
+.statediagram-cluster rect {
+ fill: ${options.compositeTitleBackground};
+ stroke: ${options.stateBorder || options.nodeBorder};
+ stroke-width: 1px;
+}
+
+.cluster-label, .nodeLabel {
+ color: ${options.stateLabelColor};
+}
+
+.statediagram-cluster rect.outer {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-state .divider {
+ stroke: ${options.stateBorder || options.nodeBorder};
+}
+
+.statediagram-state .title-state {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-cluster.statediagram-cluster .inner {
+ fill: ${options.compositeBackground || options.background};
+}
+.statediagram-cluster.statediagram-cluster-alt .inner {
+ fill: ${options.altBackground ? options.altBackground : "#efefef"};
+}
+
+.statediagram-cluster .inner {
+ rx:0;
+ ry:0;
+}
+
+.statediagram-state rect.basic {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-state rect.divider {
+ stroke-dasharray: 10,10;
+ fill: ${options.altBackground ? options.altBackground : "#efefef"};
+}
+
+.note-edge {
+ stroke-dasharray: 5;
+}
+
+.statediagram-note rect {
+ fill: ${options.noteBkgColor};
+ stroke: ${options.noteBorderColor};
+ stroke-width: 1px;
+ rx: 0;
+ ry: 0;
+}
+.statediagram-note rect {
+ fill: ${options.noteBkgColor};
+ stroke: ${options.noteBorderColor};
+ stroke-width: 1px;
+ rx: 0;
+ ry: 0;
+}
+
+.statediagram-note text {
+ fill: ${options.noteTextColor};
+}
+
+.statediagram-note .nodeLabel {
+ color: ${options.noteTextColor};
+}
+.statediagram .edgeLabel {
+ color: red; // ${options.noteTextColor};
+}
+
+#dependencyStart, #dependencyEnd {
+ fill: ${options.lineColor};
+ stroke: ${options.lineColor};
+ stroke-width: 1;
+}
+
+.statediagramTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor};
+}
+`;
+const styles = getStyles;
+export {
+ DEFAULT_DIAGRAM_DIRECTION as D,
+ STMT_RELATION as S,
+ DEFAULT_STATE_TYPE as a,
+ DIVIDER_TYPE as b,
+ STMT_STATE as c,
+ db as d,
+ DEFAULT_NESTED_DOC_DIR as e,
+ parser$1 as p,
+ styles as s
+};
+//# sourceMappingURL=styles-47a825a5.js.map
diff --git a/scopegraphs-render-docs/doc/js/styles-55de9f38.js b/scopegraphs-render-docs/doc/js/styles-55de9f38.js
new file mode 100644
index 0000000..a6efe78
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/styles-55de9f38.js
@@ -0,0 +1,989 @@
+import { g as Y, v as Ht, q as Xt, w as Kt, x as Wt, y as Jt, z as qt, l as x, f as ht, A as Qt } from "./commonDb-41f8b4c5.js";
+import { a0 as Zt } from "./utils-8ea37061.js";
+import { m as te } from "./mermaidAPI-67f627de.js";
+var mt = function() {
+ var t = function(D, r, a, i) {
+ for (a = a || {}, i = D.length; i--; a[D[i]] = r)
+ ;
+ return a;
+ }, s = [1, 2], n = [1, 3], h = [1, 5], u = [1, 7], d = [2, 5], p = [1, 15], v = [1, 17], f = [1, 21], k = [1, 22], T = [1, 23], G = [1, 24], R = [1, 37], j = [1, 25], U = [1, 26], z = [1, 27], M = [1, 28], H = [1, 29], X = [1, 32], K = [1, 33], W = [1, 34], J = [1, 35], q = [1, 36], Q = [1, 39], Z = [1, 40], tt = [1, 41], et = [1, 42], w = [1, 38], Ct = [1, 45], o = [1, 4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], st = [1, 4, 5, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], ut = [1, 4, 5, 7, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], At = [4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], ft = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, SPACE: 4, NL: 5, directive: 6, SD: 7, document: 8, line: 9, statement: 10, classDefStatement: 11, cssClassStatement: 12, idStatement: 13, DESCR: 14, "-->": 15, HIDE_EMPTY: 16, scale: 17, WIDTH: 18, COMPOSIT_STATE: 19, STRUCT_START: 20, STRUCT_STOP: 21, STATE_DESCR: 22, AS: 23, ID: 24, FORK: 25, JOIN: 26, CHOICE: 27, CONCURRENT: 28, note: 29, notePosition: 30, NOTE_TEXT: 31, direction: 32, acc_title: 33, acc_title_value: 34, acc_descr: 35, acc_descr_value: 36, acc_descr_multiline_value: 37, classDef: 38, CLASSDEF_ID: 39, CLASSDEF_STYLEOPTS: 40, DEFAULT: 41, class: 42, CLASSENTITY_IDS: 43, STYLECLASS: 44, openDirective: 45, typeDirective: 46, closeDirective: 47, ":": 48, argDirective: 49, direction_tb: 50, direction_bt: 51, direction_rl: 52, direction_lr: 53, eol: 54, ";": 55, EDGE_STATE: 56, STYLE_SEPARATOR: 57, left_of: 58, right_of: 59, open_directive: 60, type_directive: 61, arg_directive: 62, close_directive: 63, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 4: "SPACE", 5: "NL", 7: "SD", 14: "DESCR", 15: "-->", 16: "HIDE_EMPTY", 17: "scale", 18: "WIDTH", 19: "COMPOSIT_STATE", 20: "STRUCT_START", 21: "STRUCT_STOP", 22: "STATE_DESCR", 23: "AS", 24: "ID", 25: "FORK", 26: "JOIN", 27: "CHOICE", 28: "CONCURRENT", 29: "note", 31: "NOTE_TEXT", 33: "acc_title", 34: "acc_title_value", 35: "acc_descr", 36: "acc_descr_value", 37: "acc_descr_multiline_value", 38: "classDef", 39: "CLASSDEF_ID", 40: "CLASSDEF_STYLEOPTS", 41: "DEFAULT", 42: "class", 43: "CLASSENTITY_IDS", 44: "STYLECLASS", 48: ":", 50: "direction_tb", 51: "direction_bt", 52: "direction_rl", 53: "direction_lr", 55: ";", 56: "EDGE_STATE", 57: "STYLE_SEPARATOR", 58: "left_of", 59: "right_of", 60: "open_directive", 61: "type_directive", 62: "arg_directive", 63: "close_directive" },
+ productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 3], [10, 4], [10, 1], [10, 2], [10, 1], [10, 4], [10, 3], [10, 6], [10, 1], [10, 1], [10, 1], [10, 1], [10, 4], [10, 4], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [11, 3], [11, 3], [12, 3], [6, 3], [6, 5], [32, 1], [32, 1], [32, 1], [32, 1], [54, 1], [54, 1], [13, 1], [13, 1], [13, 3], [13, 3], [30, 1], [30, 1], [45, 1], [46, 1], [49, 1], [47, 1]],
+ performAction: function(r, a, i, l, y, e, B) {
+ var c = e.length - 1;
+ switch (y) {
+ case 4:
+ return l.setRootDoc(e[c]), e[c];
+ case 5:
+ this.$ = [];
+ break;
+ case 6:
+ e[c] != "nl" && (e[c - 1].push(e[c]), this.$ = e[c - 1]);
+ break;
+ case 7:
+ case 8:
+ this.$ = e[c];
+ break;
+ case 9:
+ this.$ = "nl";
+ break;
+ case 12:
+ this.$ = e[c];
+ break;
+ case 13:
+ const $ = e[c - 1];
+ $.description = l.trimColon(e[c]), this.$ = $;
+ break;
+ case 14:
+ this.$ = { stmt: "relation", state1: e[c - 2], state2: e[c] };
+ break;
+ case 15:
+ const pt = l.trimColon(e[c]);
+ this.$ = { stmt: "relation", state1: e[c - 3], state2: e[c - 1], description: pt };
+ break;
+ case 19:
+ this.$ = { stmt: "state", id: e[c - 3], type: "default", description: "", doc: e[c - 1] };
+ break;
+ case 20:
+ var C = e[c], O = e[c - 2].trim();
+ if (e[c].match(":")) {
+ var it = e[c].split(":");
+ C = it[0], O = [O, it[1]];
+ }
+ this.$ = { stmt: "state", id: C, type: "default", description: O };
+ break;
+ case 21:
+ this.$ = { stmt: "state", id: e[c - 3], type: "default", description: e[c - 5], doc: e[c - 1] };
+ break;
+ case 22:
+ this.$ = { stmt: "state", id: e[c], type: "fork" };
+ break;
+ case 23:
+ this.$ = { stmt: "state", id: e[c], type: "join" };
+ break;
+ case 24:
+ this.$ = { stmt: "state", id: e[c], type: "choice" };
+ break;
+ case 25:
+ this.$ = { stmt: "state", id: l.getDividerId(), type: "divider" };
+ break;
+ case 26:
+ this.$ = { stmt: "state", id: e[c - 1].trim(), note: { position: e[c - 2].trim(), text: e[c].trim() } };
+ break;
+ case 30:
+ this.$ = e[c].trim(), l.setAccTitle(this.$);
+ break;
+ case 31:
+ case 32:
+ this.$ = e[c].trim(), l.setAccDescription(this.$);
+ break;
+ case 33:
+ case 34:
+ this.$ = { stmt: "classDef", id: e[c - 1].trim(), classes: e[c].trim() };
+ break;
+ case 35:
+ this.$ = { stmt: "applyClass", id: e[c - 1].trim(), styleClass: e[c].trim() };
+ break;
+ case 38:
+ l.setDirection("TB"), this.$ = { stmt: "dir", value: "TB" };
+ break;
+ case 39:
+ l.setDirection("BT"), this.$ = { stmt: "dir", value: "BT" };
+ break;
+ case 40:
+ l.setDirection("RL"), this.$ = { stmt: "dir", value: "RL" };
+ break;
+ case 41:
+ l.setDirection("LR"), this.$ = { stmt: "dir", value: "LR" };
+ break;
+ case 44:
+ case 45:
+ this.$ = { stmt: "state", id: e[c].trim(), type: "default", description: "" };
+ break;
+ case 46:
+ this.$ = { stmt: "state", id: e[c - 2].trim(), classes: [e[c].trim()], type: "default", description: "" };
+ break;
+ case 47:
+ this.$ = { stmt: "state", id: e[c - 2].trim(), classes: [e[c].trim()], type: "default", description: "" };
+ break;
+ case 50:
+ l.parseDirective("%%{", "open_directive");
+ break;
+ case 51:
+ l.parseDirective(e[c], "type_directive");
+ break;
+ case 52:
+ e[c] = e[c].trim().replace(/'/g, '"'), l.parseDirective(e[c], "arg_directive");
+ break;
+ case 53:
+ l.parseDirective("}%%", "close_directive", "state");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: s, 5: n, 6: 4, 7: h, 45: 6, 60: u }, { 1: [3] }, { 3: 8, 4: s, 5: n, 6: 4, 7: h, 45: 6, 60: u }, { 3: 9, 4: s, 5: n, 6: 4, 7: h, 45: 6, 60: u }, { 3: 10, 4: s, 5: n, 6: 4, 7: h, 45: 6, 60: u }, t([1, 4, 5, 16, 17, 19, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], d, { 8: 11 }), { 46: 12, 61: [1, 13] }, { 61: [2, 50] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: p, 5: v, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: f, 17: k, 19: T, 22: G, 24: R, 25: j, 26: U, 27: z, 28: M, 29: H, 32: 31, 33: X, 35: K, 37: W, 38: J, 42: q, 45: 6, 50: Q, 51: Z, 52: tt, 53: et, 56: w, 60: u }, { 47: 43, 48: [1, 44], 63: Ct }, t([48, 63], [2, 51]), t(o, [2, 6]), { 6: 30, 10: 46, 11: 18, 12: 19, 13: 20, 16: f, 17: k, 19: T, 22: G, 24: R, 25: j, 26: U, 27: z, 28: M, 29: H, 32: 31, 33: X, 35: K, 37: W, 38: J, 42: q, 45: 6, 50: Q, 51: Z, 52: tt, 53: et, 56: w, 60: u }, t(o, [2, 8]), t(o, [2, 9]), t(o, [2, 10]), t(o, [2, 11]), t(o, [2, 12], { 14: [1, 47], 15: [1, 48] }), t(o, [2, 16]), { 18: [1, 49] }, t(o, [2, 18], { 20: [1, 50] }), { 23: [1, 51] }, t(o, [2, 22]), t(o, [2, 23]), t(o, [2, 24]), t(o, [2, 25]), { 30: 52, 31: [1, 53], 58: [1, 54], 59: [1, 55] }, t(o, [2, 28]), t(o, [2, 29]), { 34: [1, 56] }, { 36: [1, 57] }, t(o, [2, 32]), { 39: [1, 58], 41: [1, 59] }, { 43: [1, 60] }, t(st, [2, 44], { 57: [1, 61] }), t(st, [2, 45], { 57: [1, 62] }), t(o, [2, 38]), t(o, [2, 39]), t(o, [2, 40]), t(o, [2, 41]), t(ut, [2, 36]), { 49: 63, 62: [1, 64] }, t(ut, [2, 53]), t(o, [2, 7]), t(o, [2, 13]), { 13: 65, 24: R, 56: w }, t(o, [2, 17]), t(At, d, { 8: 66 }), { 24: [1, 67] }, { 24: [1, 68] }, { 23: [1, 69] }, { 24: [2, 48] }, { 24: [2, 49] }, t(o, [2, 30]), t(o, [2, 31]), { 40: [1, 70] }, { 40: [1, 71] }, { 44: [1, 72] }, { 24: [1, 73] }, { 24: [1, 74] }, { 47: 75, 63: Ct }, { 63: [2, 52] }, t(o, [2, 14], { 14: [1, 76] }), { 4: p, 5: v, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: f, 17: k, 19: T, 21: [1, 77], 22: G, 24: R, 25: j, 26: U, 27: z, 28: M, 29: H, 32: 31, 33: X, 35: K, 37: W, 38: J, 42: q, 45: 6, 50: Q, 51: Z, 52: tt, 53: et, 56: w, 60: u }, t(o, [2, 20], { 20: [1, 78] }), { 31: [1, 79] }, { 24: [1, 80] }, t(o, [2, 33]), t(o, [2, 34]), t(o, [2, 35]), t(st, [2, 46]), t(st, [2, 47]), t(ut, [2, 37]), t(o, [2, 15]), t(o, [2, 19]), t(At, d, { 8: 81 }), t(o, [2, 26]), t(o, [2, 27]), { 4: p, 5: v, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: f, 17: k, 19: T, 21: [1, 82], 22: G, 24: R, 25: j, 26: U, 27: z, 28: M, 29: H, 32: 31, 33: X, 35: K, 37: W, 38: J, 42: q, 45: 6, 50: Q, 51: Z, 52: tt, 53: et, 56: w, 60: u }, t(o, [2, 21])],
+ defaultActions: { 7: [2, 50], 8: [2, 1], 9: [2, 2], 10: [2, 3], 54: [2, 48], 55: [2, 49], 64: [2, 52] },
+ parseError: function(r, a) {
+ if (a.recoverable)
+ this.trace(r);
+ else {
+ var i = new Error(r);
+ throw i.hash = a, i;
+ }
+ },
+ parse: function(r) {
+ var a = this, i = [0], l = [], y = [null], e = [], B = this.table, c = "", C = 0, O = 0, it = 2, $ = 1, pt = e.slice.call(arguments, 1), S = Object.create(this.lexer), A = { yy: {} };
+ for (var yt in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, yt) && (A.yy[yt] = this.yy[yt]);
+ S.setInput(r, A.yy), A.yy.lexer = S, A.yy.parser = this, typeof S.yylloc > "u" && (S.yylloc = {});
+ var St = S.yylloc;
+ e.push(St);
+ var zt = S.options && S.options.ranges;
+ typeof A.yy.parseError == "function" ? this.parseError = A.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function Mt() {
+ var E;
+ return E = l.pop() || S.lex() || $, typeof E != "number" && (E instanceof Array && (l = E, E = l.pop()), E = a.symbols_[E] || E), E;
+ }
+ for (var _, L, m, gt, N = {}, rt, b, Lt, nt; ; ) {
+ if (L = i[i.length - 1], this.defaultActions[L] ? m = this.defaultActions[L] : ((_ === null || typeof _ > "u") && (_ = Mt()), m = B[L] && B[L][_]), typeof m > "u" || !m.length || !m[0]) {
+ var _t = "";
+ nt = [];
+ for (rt in B[L])
+ this.terminals_[rt] && rt > it && nt.push("'" + this.terminals_[rt] + "'");
+ S.showPosition ? _t = "Parse error on line " + (C + 1) + `:
+` + S.showPosition() + `
+Expecting ` + nt.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : _t = "Parse error on line " + (C + 1) + ": Unexpected " + (_ == $ ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(_t, {
+ text: S.match,
+ token: this.terminals_[_] || _,
+ line: S.yylineno,
+ loc: St,
+ expected: nt
+ });
+ }
+ if (m[0] instanceof Array && m.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + L + ", token: " + _);
+ switch (m[0]) {
+ case 1:
+ i.push(_), y.push(S.yytext), e.push(S.yylloc), i.push(m[1]), _ = null, O = S.yyleng, c = S.yytext, C = S.yylineno, St = S.yylloc;
+ break;
+ case 2:
+ if (b = this.productions_[m[1]][1], N.$ = y[y.length - b], N._$ = {
+ first_line: e[e.length - (b || 1)].first_line,
+ last_line: e[e.length - 1].last_line,
+ first_column: e[e.length - (b || 1)].first_column,
+ last_column: e[e.length - 1].last_column
+ }, zt && (N._$.range = [
+ e[e.length - (b || 1)].range[0],
+ e[e.length - 1].range[1]
+ ]), gt = this.performAction.apply(N, [
+ c,
+ O,
+ C,
+ A.yy,
+ m[1],
+ y,
+ e
+ ].concat(pt)), typeof gt < "u")
+ return gt;
+ b && (i = i.slice(0, -1 * b * 2), y = y.slice(0, -1 * b), e = e.slice(0, -1 * b)), i.push(this.productions_[m[1]][0]), y.push(N.$), e.push(N._$), Lt = B[i[i.length - 2]][i[i.length - 1]], i.push(Lt);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, Ut = function() {
+ var D = {
+ EOF: 1,
+ parseError: function(a, i) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(a, i);
+ else
+ throw new Error(a);
+ },
+ // resets the lexer, sets new input
+ setInput: function(r, a) {
+ return this.yy = a || this.yy || {}, this._input = r, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var r = this._input[0];
+ this.yytext += r, this.yyleng++, this.offset++, this.match += r, this.matched += r;
+ var a = r.match(/(?:\r\n?|\n).*/g);
+ return a ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), r;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(r) {
+ var a = r.length, i = r.split(/(?:\r\n?|\n)/g);
+ this._input = r + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - a), this.offset -= a;
+ var l = 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), i.length - 1 && (this.yylineno -= i.length - 1);
+ var y = 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: i ? (i.length === l.length ? this.yylloc.first_column : 0) + l[l.length - i.length].length - i[0].length : this.yylloc.first_column - a
+ }, this.options.ranges && (this.yylloc.range = [y[0], y[0] + this.yyleng - a]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(r) {
+ this.unput(this.match.slice(r));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var r = this.matched.substr(0, this.matched.length - this.match.length);
+ return (r.length > 20 ? "..." : "") + r.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var r = this.match;
+ return r.length < 20 && (r += this._input.substr(0, 20 - r.length)), (r.substr(0, 20) + (r.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var r = this.pastInput(), a = new Array(r.length + 1).join("-");
+ return r + this.upcomingInput() + `
+` + a + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(r, a) {
+ var i, l, y;
+ if (this.options.backtrack_lexer && (y = {
+ 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 && (y.yylloc.range = this.yylloc.range.slice(0))), l = r[0].match(/(?:\r\n?|\n).*/g), l && (this.yylineno += l.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: l ? l[l.length - 1].length - l[l.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + r[0].length
+ }, this.yytext += r[0], this.match += r[0], this.matches = r, 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(r[0].length), this.matched += r[0], i = this.performAction.call(this, this.yy, this, a, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), i)
+ return i;
+ if (this._backtrack) {
+ for (var e in y)
+ this[e] = y[e];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var r, a, i, l;
+ this._more || (this.yytext = "", this.match = "");
+ for (var y = this._currentRules(), e = 0; e < y.length; e++)
+ if (i = this._input.match(this.rules[y[e]]), i && (!a || i[0].length > a[0].length)) {
+ if (a = i, l = e, this.options.backtrack_lexer) {
+ if (r = this.test_match(i, y[e]), r !== !1)
+ return r;
+ if (this._backtrack) {
+ a = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return a ? (r = this.test_match(a, y[l]), r !== !1 ? r : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var a = this.next();
+ return a || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(a) {
+ this.conditionStack.push(a);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var a = this.conditionStack.length - 1;
+ return a > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(a) {
+ return a = this.conditionStack.length - 1 - Math.abs(a || 0), a >= 0 ? this.conditionStack[a] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(a) {
+ this.begin(a);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": !0 },
+ performAction: function(a, i, l, y) {
+ switch (l) {
+ case 0:
+ return 41;
+ case 1:
+ return 50;
+ case 2:
+ return 51;
+ case 3:
+ return 52;
+ case 4:
+ return 53;
+ case 5:
+ return this.begin("open_directive"), 60;
+ case 6:
+ return this.begin("type_directive"), 61;
+ case 7:
+ return this.popState(), this.begin("arg_directive"), 48;
+ case 8:
+ return this.popState(), this.popState(), 63;
+ case 9:
+ return 62;
+ case 10:
+ break;
+ case 11:
+ break;
+ case 12:
+ return 5;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ break;
+ case 16:
+ break;
+ case 17:
+ return this.pushState("SCALE"), 17;
+ case 18:
+ return 18;
+ case 19:
+ this.popState();
+ break;
+ case 20:
+ return this.begin("acc_title"), 33;
+ case 21:
+ return this.popState(), "acc_title_value";
+ case 22:
+ return this.begin("acc_descr"), 35;
+ case 23:
+ return this.popState(), "acc_descr_value";
+ case 24:
+ this.begin("acc_descr_multiline");
+ break;
+ case 25:
+ this.popState();
+ break;
+ case 26:
+ return "acc_descr_multiline_value";
+ case 27:
+ return this.pushState("CLASSDEF"), 38;
+ case 28:
+ return this.popState(), this.pushState("CLASSDEFID"), "DEFAULT_CLASSDEF_ID";
+ case 29:
+ return this.popState(), this.pushState("CLASSDEFID"), 39;
+ case 30:
+ return this.popState(), 40;
+ case 31:
+ return this.pushState("CLASS"), 42;
+ case 32:
+ return this.popState(), this.pushState("CLASS_STYLE"), 43;
+ case 33:
+ return this.popState(), 44;
+ case 34:
+ return this.pushState("SCALE"), 17;
+ case 35:
+ return 18;
+ case 36:
+ this.popState();
+ break;
+ case 37:
+ this.pushState("STATE");
+ break;
+ case 38:
+ return this.popState(), i.yytext = i.yytext.slice(0, -8).trim(), 25;
+ case 39:
+ return this.popState(), i.yytext = i.yytext.slice(0, -8).trim(), 26;
+ case 40:
+ return this.popState(), i.yytext = i.yytext.slice(0, -10).trim(), 27;
+ case 41:
+ return this.popState(), i.yytext = i.yytext.slice(0, -8).trim(), 25;
+ case 42:
+ return this.popState(), i.yytext = i.yytext.slice(0, -8).trim(), 26;
+ case 43:
+ return this.popState(), i.yytext = i.yytext.slice(0, -10).trim(), 27;
+ case 44:
+ return 50;
+ case 45:
+ return 51;
+ case 46:
+ return 52;
+ case 47:
+ return 53;
+ case 48:
+ this.pushState("STATE_STRING");
+ break;
+ case 49:
+ return this.pushState("STATE_ID"), "AS";
+ case 50:
+ return this.popState(), "ID";
+ case 51:
+ this.popState();
+ break;
+ case 52:
+ return "STATE_DESCR";
+ case 53:
+ return 19;
+ case 54:
+ this.popState();
+ break;
+ case 55:
+ return this.popState(), this.pushState("struct"), 20;
+ case 56:
+ break;
+ case 57:
+ return this.popState(), 21;
+ case 58:
+ break;
+ case 59:
+ return this.begin("NOTE"), 29;
+ case 60:
+ return this.popState(), this.pushState("NOTE_ID"), 58;
+ case 61:
+ return this.popState(), this.pushState("NOTE_ID"), 59;
+ case 62:
+ this.popState(), this.pushState("FLOATING_NOTE");
+ break;
+ case 63:
+ return this.popState(), this.pushState("FLOATING_NOTE_ID"), "AS";
+ case 64:
+ break;
+ case 65:
+ return "NOTE_TEXT";
+ case 66:
+ return this.popState(), "ID";
+ case 67:
+ return this.popState(), this.pushState("NOTE_TEXT"), 24;
+ case 68:
+ return this.popState(), i.yytext = i.yytext.substr(2).trim(), 31;
+ case 69:
+ return this.popState(), i.yytext = i.yytext.slice(0, -8).trim(), 31;
+ case 70:
+ return 7;
+ case 71:
+ return 7;
+ case 72:
+ return 16;
+ case 73:
+ return 56;
+ case 74:
+ return 24;
+ case 75:
+ return i.yytext = i.yytext.trim(), 14;
+ case 76:
+ return 15;
+ case 77:
+ return 28;
+ case 78:
+ return 57;
+ case 79:
+ return 5;
+ case 80:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:default\b)/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:[\s]+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:classDef\s+)/i, /^(?:DEFAULT\s+)/i, /^(?:\w+\s+)/i, /^(?:[^\n]*)/i, /^(?:class\s+)/i, /^(?:(\w+)+((,\s*\w+)*))/i, /^(?:[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:state\s+)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*\[\[fork\]\])/i, /^(?:.*\[\[join\]\])/i, /^(?:.*\[\[choice\]\])/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:["])/i, /^(?:\s*as\s+)/i, /^(?:[^\n\{]*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n\s\{]+)/i, /^(?:\n)/i, /^(?:\{)/i, /^(?:%%(?!\{)[^\n]*)/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\S]*?end note\b)/i, /^(?:stateDiagram\s+)/i, /^(?:stateDiagram-v2\s+)/i, /^(?:hide empty description\b)/i, /^(?:\[\*\])/i, /^(?:[^:\n\s\-\{]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { LINE: { rules: [14, 15], inclusive: !1 }, close_directive: { rules: [14, 15], inclusive: !1 }, arg_directive: { rules: [8, 9, 14, 15], inclusive: !1 }, type_directive: { rules: [7, 8, 14, 15], inclusive: !1 }, open_directive: { rules: [6, 14, 15], inclusive: !1 }, struct: { rules: [14, 15, 27, 31, 37, 44, 45, 46, 47, 56, 57, 58, 59, 73, 74, 75, 76, 77], inclusive: !1 }, FLOATING_NOTE_ID: { rules: [66], inclusive: !1 }, FLOATING_NOTE: { rules: [63, 64, 65], inclusive: !1 }, NOTE_TEXT: { rules: [68, 69], inclusive: !1 }, NOTE_ID: { rules: [67], inclusive: !1 }, NOTE: { rules: [60, 61, 62], inclusive: !1 }, CLASS_STYLE: { rules: [33], inclusive: !1 }, CLASS: { rules: [32], inclusive: !1 }, CLASSDEFID: { rules: [30], inclusive: !1 }, CLASSDEF: { rules: [28, 29], inclusive: !1 }, acc_descr_multiline: { rules: [25, 26], inclusive: !1 }, acc_descr: { rules: [23], inclusive: !1 }, acc_title: { rules: [21], inclusive: !1 }, SCALE: { rules: [18, 19, 35, 36], inclusive: !1 }, ALIAS: { rules: [], inclusive: !1 }, STATE_ID: { rules: [50], inclusive: !1 }, STATE_STRING: { rules: [51, 52], inclusive: !1 }, FORK_STATE: { rules: [], inclusive: !1 }, STATE: { rules: [14, 15, 38, 39, 40, 41, 42, 43, 48, 49, 53, 54, 55], inclusive: !1 }, ID: { rules: [14, 15], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 27, 31, 34, 37, 55, 59, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80], inclusive: !0 } }
+ };
+ return D;
+ }();
+ ft.lexer = Ut;
+ function dt() {
+ this.yy = {};
+ }
+ return dt.prototype = ft, ft.Parser = dt, new dt();
+}();
+mt.parser = mt;
+const Ne = mt, ee = "LR", Re = "TB", Tt = "state", Rt = "relation", se = "classDef", ie = "applyClass", xt = "default", re = "divider", vt = "[*]", wt = "start", Bt = vt, $t = "end", It = "color", Ot = "fill", ne = "bgFill", ae = ",";
+function Pt() {
+ return {};
+}
+let Vt = ee, lt = [], P = Pt();
+const Ft = () => ({
+ relations: [],
+ states: {},
+ documents: {}
+});
+let ot = {
+ root: Ft()
+}, g = ot.root, V = 0, Nt = 0;
+const ce = {
+ LINE: 0,
+ DOTTED_LINE: 1
+}, le = {
+ AGGREGATION: 0,
+ EXTENSION: 1,
+ COMPOSITION: 2,
+ DEPENDENCY: 3
+}, at = (t) => JSON.parse(JSON.stringify(t)), oe = function(t, s, n) {
+ te.parseDirective(this, t, s, n);
+}, he = (t) => {
+ x.info("Setting root doc", t), lt = t;
+}, ue = () => lt, ct = (t, s, n) => {
+ if (s.stmt === Rt)
+ ct(t, s.state1, !0), ct(t, s.state2, !1);
+ else if (s.stmt === Tt && (s.id === "[*]" ? (s.id = n ? t.id + "_start" : t.id + "_end", s.start = n) : s.id = s.id.trim()), s.doc) {
+ const h = [];
+ let u = [], d;
+ for (d = 0; d < s.doc.length; d++)
+ if (s.doc[d].type === re) {
+ const p = at(s.doc[d]);
+ p.doc = at(u), h.push(p), u = [];
+ } else
+ u.push(s.doc[d]);
+ if (h.length > 0 && u.length > 0) {
+ const p = {
+ stmt: Tt,
+ id: Zt(),
+ type: "divider",
+ doc: at(u)
+ };
+ h.push(at(p)), s.doc = h;
+ }
+ s.doc.forEach((p) => ct(s, p, !0));
+ }
+}, fe = () => (ct({ id: "root" }, { id: "root", doc: lt }, !0), { id: "root", doc: lt }), de = (t) => {
+ let s;
+ t.doc ? s = t.doc : s = t, x.info(s), Yt(!0), x.info("Extract", s), s.forEach((n) => {
+ switch (n.stmt) {
+ case Tt:
+ I(
+ n.id.trim(),
+ n.type,
+ n.doc,
+ n.description,
+ n.note,
+ n.classes,
+ n.styles,
+ n.textStyles
+ );
+ break;
+ case Rt:
+ Gt(n.state1, n.state2, n.description);
+ break;
+ case se:
+ jt(n.id.trim(), n.classes);
+ break;
+ case ie:
+ Dt(n.id.trim(), n.styleClass);
+ break;
+ }
+ });
+}, I = function(t, s = xt, n = null, h = null, u = null, d = null, p = null, v = null) {
+ const f = t == null ? void 0 : t.trim();
+ g.states[f] === void 0 ? (x.info("Adding state ", f, h), g.states[f] = {
+ id: f,
+ descriptions: [],
+ type: s,
+ doc: n,
+ note: u,
+ classes: [],
+ styles: [],
+ textStyles: []
+ }) : (g.states[f].doc || (g.states[f].doc = n), g.states[f].type || (g.states[f].type = s)), h && (x.info("Setting state description", f, h), typeof h == "string" && Et(f, h.trim()), typeof h == "object" && h.forEach((k) => Et(f, k.trim()))), u && (g.states[f].note = u, g.states[f].note.text = ht.sanitizeText(
+ g.states[f].note.text,
+ Y()
+ )), d && (x.info("Setting state classes", f, d), (typeof d == "string" ? [d] : d).forEach((T) => Dt(f, T.trim()))), p && (x.info("Setting state styles", f, p), (typeof p == "string" ? [p] : p).forEach((T) => Ee(f, T.trim()))), v && (x.info("Setting state styles", f, p), (typeof v == "string" ? [v] : v).forEach((T) => xe(f, T.trim())));
+}, Yt = function(t) {
+ ot = {
+ root: Ft()
+ }, g = ot.root, V = 0, P = Pt(), t || Qt();
+}, F = function(t) {
+ return g.states[t];
+}, pe = function() {
+ return g.states;
+}, ye = function() {
+ x.info("Documents = ", ot);
+}, Se = function() {
+ return g.relations;
+};
+function kt(t = "") {
+ let s = t;
+ return t === vt && (V++, s = `${wt}${V}`), s;
+}
+function bt(t = "", s = xt) {
+ return t === vt ? wt : s;
+}
+function ge(t = "") {
+ let s = t;
+ return t === Bt && (V++, s = `${$t}${V}`), s;
+}
+function _e(t = "", s = xt) {
+ return t === Bt ? $t : s;
+}
+function me(t, s, n) {
+ let h = kt(t.id.trim()), u = bt(t.id.trim(), t.type), d = kt(s.id.trim()), p = bt(s.id.trim(), s.type);
+ I(
+ h,
+ u,
+ t.doc,
+ t.description,
+ t.note,
+ t.classes,
+ t.styles,
+ t.textStyles
+ ), I(
+ d,
+ p,
+ s.doc,
+ s.description,
+ s.note,
+ s.classes,
+ s.styles,
+ s.textStyles
+ ), g.relations.push({
+ id1: h,
+ id2: d,
+ relationTitle: ht.sanitizeText(n, Y())
+ });
+}
+const Gt = function(t, s, n) {
+ if (typeof t == "object")
+ me(t, s, n);
+ else {
+ const h = kt(t.trim()), u = bt(t), d = ge(s.trim()), p = _e(s);
+ I(h, u), I(d, p), g.relations.push({
+ id1: h,
+ id2: d,
+ title: ht.sanitizeText(n, Y())
+ });
+ }
+}, Et = function(t, s) {
+ const n = g.states[t], h = s.startsWith(":") ? s.replace(":", "").trim() : s;
+ n.descriptions.push(ht.sanitizeText(h, Y()));
+}, Te = function(t) {
+ return t.substring(0, 1) === ":" ? t.substr(2).trim() : t.trim();
+}, ke = () => (Nt++, "divider-id-" + Nt), jt = function(t, s = "") {
+ P[t] === void 0 && (P[t] = { id: t, styles: [], textStyles: [] });
+ const n = P[t];
+ s != null && s.split(ae).forEach((h) => {
+ const u = h.replace(/([^;]*);/, "$1").trim();
+ if (h.match(It)) {
+ const p = u.replace(Ot, ne).replace(It, Ot);
+ n.textStyles.push(p);
+ }
+ n.styles.push(u);
+ });
+}, be = function() {
+ return P;
+}, Dt = function(t, s) {
+ t.split(",").forEach(function(n) {
+ let h = F(n);
+ if (h === void 0) {
+ const u = n.trim();
+ I(u), h = F(u);
+ }
+ h.classes.push(s);
+ });
+}, Ee = function(t, s) {
+ const n = F(t);
+ n !== void 0 && n.textStyles.push(s);
+}, xe = function(t, s) {
+ const n = F(t);
+ n !== void 0 && n.textStyles.push(s);
+}, ve = () => Vt, De = (t) => {
+ Vt = t;
+}, Ce = (t) => t && t[0] === ":" ? t.substr(1).trim() : t.trim(), we = {
+ parseDirective: oe,
+ getConfig: () => Y().state,
+ addState: I,
+ clear: Yt,
+ getState: F,
+ getStates: pe,
+ getRelations: Se,
+ getClasses: be,
+ getDirection: ve,
+ addRelation: Gt,
+ getDividerId: ke,
+ setDirection: De,
+ cleanupLabel: Te,
+ lineType: ce,
+ relationType: le,
+ logDocuments: ye,
+ getRootDoc: ue,
+ setRootDoc: he,
+ getRootDocV2: fe,
+ extract: de,
+ trimColon: Ce,
+ getAccTitle: Ht,
+ setAccTitle: Xt,
+ getAccDescription: Kt,
+ setAccDescription: Wt,
+ addStyleClass: jt,
+ setCssClass: Dt,
+ addDescription: Et,
+ setDiagramTitle: Jt,
+ getDiagramTitle: qt
+}, Ae = (t) => `
+defs #statediagram-barbEnd {
+ fill: ${t.transitionColor};
+ stroke: ${t.transitionColor};
+ }
+g.stateGroup text {
+ fill: ${t.nodeBorder};
+ stroke: none;
+ font-size: 10px;
+}
+g.stateGroup text {
+ fill: ${t.textColor};
+ stroke: none;
+ font-size: 10px;
+
+}
+g.stateGroup .state-title {
+ font-weight: bolder;
+ fill: ${t.stateLabelColor};
+}
+
+g.stateGroup rect {
+ fill: ${t.mainBkg};
+ stroke: ${t.nodeBorder};
+}
+
+g.stateGroup line {
+ stroke: ${t.lineColor};
+ stroke-width: 1;
+}
+
+.transition {
+ stroke: ${t.transitionColor};
+ stroke-width: 1;
+ fill: none;
+}
+
+.stateGroup .composit {
+ fill: ${t.background};
+ border-bottom: 1px
+}
+
+.stateGroup .alt-composit {
+ fill: #e0e0e0;
+ border-bottom: 1px
+}
+
+.state-note {
+ stroke: ${t.noteBorderColor};
+ fill: ${t.noteBkgColor};
+
+ text {
+ fill: ${t.noteTextColor};
+ stroke: none;
+ font-size: 10px;
+ }
+}
+
+.stateLabel .box {
+ stroke: none;
+ stroke-width: 0;
+ fill: ${t.mainBkg};
+ opacity: 0.5;
+}
+
+.edgeLabel .label rect {
+ fill: ${t.labelBackgroundColor};
+ opacity: 0.5;
+}
+.edgeLabel .label text {
+ fill: ${t.transitionLabelColor || t.tertiaryTextColor};
+}
+.label div .edgeLabel {
+ color: ${t.transitionLabelColor || t.tertiaryTextColor};
+}
+
+.stateLabel text {
+ fill: ${t.stateLabelColor};
+ font-size: 10px;
+ font-weight: bold;
+}
+
+.node circle.state-start {
+ fill: ${t.specialStateColor};
+ stroke: ${t.specialStateColor};
+}
+
+.node .fork-join {
+ fill: ${t.specialStateColor};
+ stroke: ${t.specialStateColor};
+}
+
+.node circle.state-end {
+ fill: ${t.innerEndBackground};
+ stroke: ${t.background};
+ stroke-width: 1.5
+}
+.end-state-inner {
+ fill: ${t.compositeBackground || t.background};
+ // stroke: ${t.background};
+ stroke-width: 1.5
+}
+
+.node rect {
+ fill: ${t.stateBkg || t.mainBkg};
+ stroke: ${t.stateBorder || t.nodeBorder};
+ stroke-width: 1px;
+}
+.node polygon {
+ fill: ${t.mainBkg};
+ stroke: ${t.stateBorder || t.nodeBorder};;
+ stroke-width: 1px;
+}
+#statediagram-barbEnd {
+ fill: ${t.lineColor};
+}
+
+.statediagram-cluster rect {
+ fill: ${t.compositeTitleBackground};
+ stroke: ${t.stateBorder || t.nodeBorder};
+ stroke-width: 1px;
+}
+
+.cluster-label, .nodeLabel {
+ color: ${t.stateLabelColor};
+}
+
+.statediagram-cluster rect.outer {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-state .divider {
+ stroke: ${t.stateBorder || t.nodeBorder};
+}
+
+.statediagram-state .title-state {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-cluster.statediagram-cluster .inner {
+ fill: ${t.compositeBackground || t.background};
+}
+.statediagram-cluster.statediagram-cluster-alt .inner {
+ fill: ${t.altBackground ? t.altBackground : "#efefef"};
+}
+
+.statediagram-cluster .inner {
+ rx:0;
+ ry:0;
+}
+
+.statediagram-state rect.basic {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-state rect.divider {
+ stroke-dasharray: 10,10;
+ fill: ${t.altBackground ? t.altBackground : "#efefef"};
+}
+
+.note-edge {
+ stroke-dasharray: 5;
+}
+
+.statediagram-note rect {
+ fill: ${t.noteBkgColor};
+ stroke: ${t.noteBorderColor};
+ stroke-width: 1px;
+ rx: 0;
+ ry: 0;
+}
+.statediagram-note rect {
+ fill: ${t.noteBkgColor};
+ stroke: ${t.noteBorderColor};
+ stroke-width: 1px;
+ rx: 0;
+ ry: 0;
+}
+
+.statediagram-note text {
+ fill: ${t.noteTextColor};
+}
+
+.statediagram-note .nodeLabel {
+ color: ${t.noteTextColor};
+}
+.statediagram .edgeLabel {
+ color: red; // ${t.noteTextColor};
+}
+
+#dependencyStart, #dependencyEnd {
+ fill: ${t.lineColor};
+ stroke: ${t.lineColor};
+ stroke-width: 1;
+}
+
+.statediagramTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${t.textColor};
+}
+`, Be = Ae;
+export {
+ ee as D,
+ Rt as S,
+ xt as a,
+ re as b,
+ Tt as c,
+ we as d,
+ Re as e,
+ Ne as p,
+ Be as s
+};
+//# sourceMappingURL=styles-55de9f38.js.map
diff --git a/scopegraphs-render-docs/doc/js/styles-a8f89eec.js b/scopegraphs-render-docs/doc/js/styles-a8f89eec.js
new file mode 100644
index 0000000..aaa32cc
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/styles-a8f89eec.js
@@ -0,0 +1,1400 @@
+import { g as getConfig, v as getAccTitle, q as setAccTitle, w as getAccDescription, x as setAccDescription, y as setDiagramTitle, z as getDiagramTitle, l as log, f as common, A as clear$1 } from "./commonDb-89160e91.js";
+import { a0 as generateId } from "./utils-1aebe9b6.js";
+import { m as mermaidAPI } from "./mermaidAPI-c841a67f.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 7], $V4 = [2, 5], $V5 = [1, 15], $V6 = [1, 17], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 37], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 32], $Vi = [1, 33], $Vj = [1, 34], $Vk = [1, 35], $Vl = [1, 36], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 38], $Vr = [1, 45], $Vs = [1, 4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vt = [1, 4, 5, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vu = [1, 4, 5, 7, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vv = [4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "SPACE": 4, "NL": 5, "directive": 6, "SD": 7, "document": 8, "line": 9, "statement": 10, "classDefStatement": 11, "cssClassStatement": 12, "idStatement": 13, "DESCR": 14, "-->": 15, "HIDE_EMPTY": 16, "scale": 17, "WIDTH": 18, "COMPOSIT_STATE": 19, "STRUCT_START": 20, "STRUCT_STOP": 21, "STATE_DESCR": 22, "AS": 23, "ID": 24, "FORK": 25, "JOIN": 26, "CHOICE": 27, "CONCURRENT": 28, "note": 29, "notePosition": 30, "NOTE_TEXT": 31, "direction": 32, "acc_title": 33, "acc_title_value": 34, "acc_descr": 35, "acc_descr_value": 36, "acc_descr_multiline_value": 37, "classDef": 38, "CLASSDEF_ID": 39, "CLASSDEF_STYLEOPTS": 40, "DEFAULT": 41, "class": 42, "CLASSENTITY_IDS": 43, "STYLECLASS": 44, "openDirective": 45, "typeDirective": 46, "closeDirective": 47, ":": 48, "argDirective": 49, "direction_tb": 50, "direction_bt": 51, "direction_rl": 52, "direction_lr": 53, "eol": 54, ";": 55, "EDGE_STATE": 56, "STYLE_SEPARATOR": 57, "left_of": 58, "right_of": 59, "open_directive": 60, "type_directive": 61, "arg_directive": 62, "close_directive": 63, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "SPACE", 5: "NL", 7: "SD", 14: "DESCR", 15: "-->", 16: "HIDE_EMPTY", 17: "scale", 18: "WIDTH", 19: "COMPOSIT_STATE", 20: "STRUCT_START", 21: "STRUCT_STOP", 22: "STATE_DESCR", 23: "AS", 24: "ID", 25: "FORK", 26: "JOIN", 27: "CHOICE", 28: "CONCURRENT", 29: "note", 31: "NOTE_TEXT", 33: "acc_title", 34: "acc_title_value", 35: "acc_descr", 36: "acc_descr_value", 37: "acc_descr_multiline_value", 38: "classDef", 39: "CLASSDEF_ID", 40: "CLASSDEF_STYLEOPTS", 41: "DEFAULT", 42: "class", 43: "CLASSENTITY_IDS", 44: "STYLECLASS", 48: ":", 50: "direction_tb", 51: "direction_bt", 52: "direction_rl", 53: "direction_lr", 55: ";", 56: "EDGE_STATE", 57: "STYLE_SEPARATOR", 58: "left_of", 59: "right_of", 60: "open_directive", 61: "type_directive", 62: "arg_directive", 63: "close_directive" },
+ productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 3], [10, 4], [10, 1], [10, 2], [10, 1], [10, 4], [10, 3], [10, 6], [10, 1], [10, 1], [10, 1], [10, 1], [10, 4], [10, 4], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [11, 3], [11, 3], [12, 3], [6, 3], [6, 5], [32, 1], [32, 1], [32, 1], [32, 1], [54, 1], [54, 1], [13, 1], [13, 1], [13, 3], [13, 3], [30, 1], [30, 1], [45, 1], [46, 1], [49, 1], [47, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 4:
+ yy.setRootDoc($$[$0]);
+ return $$[$0];
+ case 5:
+ this.$ = [];
+ break;
+ case 6:
+ if ($$[$0] != "nl") {
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ }
+ break;
+ case 7:
+ case 8:
+ this.$ = $$[$0];
+ break;
+ case 9:
+ this.$ = "nl";
+ break;
+ case 12:
+ this.$ = $$[$0];
+ break;
+ case 13:
+ const stateStmt = $$[$0 - 1];
+ stateStmt.description = yy.trimColon($$[$0]);
+ this.$ = stateStmt;
+ break;
+ case 14:
+ this.$ = { stmt: "relation", state1: $$[$0 - 2], state2: $$[$0] };
+ break;
+ case 15:
+ const relDescription = yy.trimColon($$[$0]);
+ this.$ = { stmt: "relation", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription };
+ break;
+ case 19:
+ this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: "", doc: $$[$0 - 1] };
+ break;
+ case 20:
+ var id = $$[$0];
+ var description = $$[$0 - 2].trim();
+ if ($$[$0].match(":")) {
+ var parts = $$[$0].split(":");
+ id = parts[0];
+ description = [description, parts[1]];
+ }
+ this.$ = { stmt: "state", id, type: "default", description };
+ break;
+ case 21:
+ this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: $$[$0 - 5], doc: $$[$0 - 1] };
+ break;
+ case 22:
+ this.$ = { stmt: "state", id: $$[$0], type: "fork" };
+ break;
+ case 23:
+ this.$ = { stmt: "state", id: $$[$0], type: "join" };
+ break;
+ case 24:
+ this.$ = { stmt: "state", id: $$[$0], type: "choice" };
+ break;
+ case 25:
+ this.$ = { stmt: "state", id: yy.getDividerId(), type: "divider" };
+ break;
+ case 26:
+ this.$ = { stmt: "state", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } };
+ break;
+ case 30:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 31:
+ case 32:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 33:
+ case 34:
+ this.$ = { stmt: "classDef", id: $$[$0 - 1].trim(), classes: $$[$0].trim() };
+ break;
+ case 35:
+ this.$ = { stmt: "applyClass", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };
+ break;
+ case 38:
+ yy.setDirection("TB");
+ this.$ = { stmt: "dir", value: "TB" };
+ break;
+ case 39:
+ yy.setDirection("BT");
+ this.$ = { stmt: "dir", value: "BT" };
+ break;
+ case 40:
+ yy.setDirection("RL");
+ this.$ = { stmt: "dir", value: "RL" };
+ break;
+ case 41:
+ yy.setDirection("LR");
+ this.$ = { stmt: "dir", value: "LR" };
+ break;
+ case 44:
+ case 45:
+ this.$ = { stmt: "state", id: $$[$0].trim(), type: "default", description: "" };
+ break;
+ case 46:
+ this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" };
+ break;
+ case 47:
+ this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" };
+ break;
+ case 50:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 51:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 52:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 53:
+ yy.parseDirective("}%%", "close_directive", "state");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 1: [3] }, { 3: 8, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 3: 9, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 3: 10, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, o([1, 4, 5, 16, 17, 19, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $V4, { 8: 11 }), { 46: 12, 61: [1, 13] }, { 61: [2, 50] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, { 47: 43, 48: [1, 44], 63: $Vr }, o([48, 63], [2, 51]), o($Vs, [2, 6]), { 6: 30, 10: 46, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 8]), o($Vs, [2, 9]), o($Vs, [2, 10]), o($Vs, [2, 11]), o($Vs, [2, 12], { 14: [1, 47], 15: [1, 48] }), o($Vs, [2, 16]), { 18: [1, 49] }, o($Vs, [2, 18], { 20: [1, 50] }), { 23: [1, 51] }, o($Vs, [2, 22]), o($Vs, [2, 23]), o($Vs, [2, 24]), o($Vs, [2, 25]), { 30: 52, 31: [1, 53], 58: [1, 54], 59: [1, 55] }, o($Vs, [2, 28]), o($Vs, [2, 29]), { 34: [1, 56] }, { 36: [1, 57] }, o($Vs, [2, 32]), { 39: [1, 58], 41: [1, 59] }, { 43: [1, 60] }, o($Vt, [2, 44], { 57: [1, 61] }), o($Vt, [2, 45], { 57: [1, 62] }), o($Vs, [2, 38]), o($Vs, [2, 39]), o($Vs, [2, 40]), o($Vs, [2, 41]), o($Vu, [2, 36]), { 49: 63, 62: [1, 64] }, o($Vu, [2, 53]), o($Vs, [2, 7]), o($Vs, [2, 13]), { 13: 65, 24: $Vb, 56: $Vq }, o($Vs, [2, 17]), o($Vv, $V4, { 8: 66 }), { 24: [1, 67] }, { 24: [1, 68] }, { 23: [1, 69] }, { 24: [2, 48] }, { 24: [2, 49] }, o($Vs, [2, 30]), o($Vs, [2, 31]), { 40: [1, 70] }, { 40: [1, 71] }, { 44: [1, 72] }, { 24: [1, 73] }, { 24: [1, 74] }, { 47: 75, 63: $Vr }, { 63: [2, 52] }, o($Vs, [2, 14], { 14: [1, 76] }), { 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 21: [1, 77], 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 20], { 20: [1, 78] }), { 31: [1, 79] }, { 24: [1, 80] }, o($Vs, [2, 33]), o($Vs, [2, 34]), o($Vs, [2, 35]), o($Vt, [2, 46]), o($Vt, [2, 47]), o($Vu, [2, 37]), o($Vs, [2, 15]), o($Vs, [2, 19]), o($Vv, $V4, { 8: 81 }), o($Vs, [2, 26]), o($Vs, [2, 27]), { 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 21: [1, 82], 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 21])],
+ defaultActions: { 7: [2, 50], 8: [2, 1], 9: [2, 2], 10: [2, 3], 54: [2, 48], 55: [2, 49], 64: [2, 52] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ return 41;
+ case 1:
+ return 50;
+ case 2:
+ return 51;
+ case 3:
+ return 52;
+ case 4:
+ return 53;
+ case 5:
+ this.begin("open_directive");
+ return 60;
+ case 6:
+ this.begin("type_directive");
+ return 61;
+ case 7:
+ this.popState();
+ this.begin("arg_directive");
+ return 48;
+ case 8:
+ this.popState();
+ this.popState();
+ return 63;
+ case 9:
+ return 62;
+ case 10:
+ break;
+ case 11:
+ break;
+ case 12:
+ return 5;
+ case 13:
+ break;
+ case 14:
+ break;
+ case 15:
+ break;
+ case 16:
+ break;
+ case 17:
+ this.pushState("SCALE");
+ return 17;
+ case 18:
+ return 18;
+ case 19:
+ this.popState();
+ break;
+ case 20:
+ this.begin("acc_title");
+ return 33;
+ case 21:
+ this.popState();
+ return "acc_title_value";
+ case 22:
+ this.begin("acc_descr");
+ return 35;
+ case 23:
+ this.popState();
+ return "acc_descr_value";
+ case 24:
+ this.begin("acc_descr_multiline");
+ break;
+ case 25:
+ this.popState();
+ break;
+ case 26:
+ return "acc_descr_multiline_value";
+ case 27:
+ this.pushState("CLASSDEF");
+ return 38;
+ case 28:
+ this.popState();
+ this.pushState("CLASSDEFID");
+ return "DEFAULT_CLASSDEF_ID";
+ case 29:
+ this.popState();
+ this.pushState("CLASSDEFID");
+ return 39;
+ case 30:
+ this.popState();
+ return 40;
+ case 31:
+ this.pushState("CLASS");
+ return 42;
+ case 32:
+ this.popState();
+ this.pushState("CLASS_STYLE");
+ return 43;
+ case 33:
+ this.popState();
+ return 44;
+ case 34:
+ this.pushState("SCALE");
+ return 17;
+ case 35:
+ return 18;
+ case 36:
+ this.popState();
+ break;
+ case 37:
+ this.pushState("STATE");
+ break;
+ case 38:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 25;
+ case 39:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 26;
+ case 40:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -10).trim();
+ return 27;
+ case 41:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 25;
+ case 42:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 26;
+ case 43:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -10).trim();
+ return 27;
+ case 44:
+ return 50;
+ case 45:
+ return 51;
+ case 46:
+ return 52;
+ case 47:
+ return 53;
+ case 48:
+ this.pushState("STATE_STRING");
+ break;
+ case 49:
+ this.pushState("STATE_ID");
+ return "AS";
+ case 50:
+ this.popState();
+ return "ID";
+ case 51:
+ this.popState();
+ break;
+ case 52:
+ return "STATE_DESCR";
+ case 53:
+ return 19;
+ case 54:
+ this.popState();
+ break;
+ case 55:
+ this.popState();
+ this.pushState("struct");
+ return 20;
+ case 56:
+ break;
+ case 57:
+ this.popState();
+ return 21;
+ case 58:
+ break;
+ case 59:
+ this.begin("NOTE");
+ return 29;
+ case 60:
+ this.popState();
+ this.pushState("NOTE_ID");
+ return 58;
+ case 61:
+ this.popState();
+ this.pushState("NOTE_ID");
+ return 59;
+ case 62:
+ this.popState();
+ this.pushState("FLOATING_NOTE");
+ break;
+ case 63:
+ this.popState();
+ this.pushState("FLOATING_NOTE_ID");
+ return "AS";
+ case 64:
+ break;
+ case 65:
+ return "NOTE_TEXT";
+ case 66:
+ this.popState();
+ return "ID";
+ case 67:
+ this.popState();
+ this.pushState("NOTE_TEXT");
+ return 24;
+ case 68:
+ this.popState();
+ yy_.yytext = yy_.yytext.substr(2).trim();
+ return 31;
+ case 69:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 31;
+ case 70:
+ return 7;
+ case 71:
+ return 7;
+ case 72:
+ return 16;
+ case 73:
+ return 56;
+ case 74:
+ return 24;
+ case 75:
+ yy_.yytext = yy_.yytext.trim();
+ return 14;
+ case 76:
+ return 15;
+ case 77:
+ return 28;
+ case 78:
+ return 57;
+ case 79:
+ return 5;
+ case 80:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:default\b)/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:[\s]+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:classDef\s+)/i, /^(?:DEFAULT\s+)/i, /^(?:\w+\s+)/i, /^(?:[^\n]*)/i, /^(?:class\s+)/i, /^(?:(\w+)+((,\s*\w+)*))/i, /^(?:[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:state\s+)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*\[\[fork\]\])/i, /^(?:.*\[\[join\]\])/i, /^(?:.*\[\[choice\]\])/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:["])/i, /^(?:\s*as\s+)/i, /^(?:[^\n\{]*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n\s\{]+)/i, /^(?:\n)/i, /^(?:\{)/i, /^(?:%%(?!\{)[^\n]*)/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\S]*?end note\b)/i, /^(?:stateDiagram\s+)/i, /^(?:stateDiagram-v2\s+)/i, /^(?:hide empty description\b)/i, /^(?:\[\*\])/i, /^(?:[^:\n\s\-\{]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "LINE": { "rules": [14, 15], "inclusive": false }, "close_directive": { "rules": [14, 15], "inclusive": false }, "arg_directive": { "rules": [8, 9, 14, 15], "inclusive": false }, "type_directive": { "rules": [7, 8, 14, 15], "inclusive": false }, "open_directive": { "rules": [6, 14, 15], "inclusive": false }, "struct": { "rules": [14, 15, 27, 31, 37, 44, 45, 46, 47, 56, 57, 58, 59, 73, 74, 75, 76, 77], "inclusive": false }, "FLOATING_NOTE_ID": { "rules": [66], "inclusive": false }, "FLOATING_NOTE": { "rules": [63, 64, 65], "inclusive": false }, "NOTE_TEXT": { "rules": [68, 69], "inclusive": false }, "NOTE_ID": { "rules": [67], "inclusive": false }, "NOTE": { "rules": [60, 61, 62], "inclusive": false }, "CLASS_STYLE": { "rules": [33], "inclusive": false }, "CLASS": { "rules": [32], "inclusive": false }, "CLASSDEFID": { "rules": [30], "inclusive": false }, "CLASSDEF": { "rules": [28, 29], "inclusive": false }, "acc_descr_multiline": { "rules": [25, 26], "inclusive": false }, "acc_descr": { "rules": [23], "inclusive": false }, "acc_title": { "rules": [21], "inclusive": false }, "SCALE": { "rules": [18, 19, 35, 36], "inclusive": false }, "ALIAS": { "rules": [], "inclusive": false }, "STATE_ID": { "rules": [50], "inclusive": false }, "STATE_STRING": { "rules": [51, 52], "inclusive": false }, "FORK_STATE": { "rules": [], "inclusive": false }, "STATE": { "rules": [14, 15, 38, 39, 40, 41, 42, 43, 48, 49, 53, 54, 55], "inclusive": false }, "ID": { "rules": [14, 15], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 27, 31, 34, 37, 55, 59, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+const DEFAULT_DIAGRAM_DIRECTION = "LR";
+const DEFAULT_NESTED_DOC_DIR = "TB";
+const STMT_STATE = "state";
+const STMT_RELATION = "relation";
+const STMT_CLASSDEF = "classDef";
+const STMT_APPLYCLASS = "applyClass";
+const DEFAULT_STATE_TYPE = "default";
+const DIVIDER_TYPE = "divider";
+const START_NODE = "[*]";
+const START_TYPE = "start";
+const END_NODE = START_NODE;
+const END_TYPE = "end";
+const COLOR_KEYWORD = "color";
+const FILL_KEYWORD = "fill";
+const BG_FILL = "bgFill";
+const STYLECLASS_SEP = ",";
+function newClassesList() {
+ return {};
+}
+let direction = DEFAULT_DIAGRAM_DIRECTION;
+let rootDoc = [];
+let classes = newClassesList();
+const newDoc = () => {
+ return {
+ relations: [],
+ states: {},
+ documents: {}
+ };
+};
+let documents = {
+ root: newDoc()
+};
+let currentDocument = documents.root;
+let startEndCount = 0;
+let dividerCnt = 0;
+const lineType = {
+ LINE: 0,
+ DOTTED_LINE: 1
+};
+const relationType = {
+ AGGREGATION: 0,
+ EXTENSION: 1,
+ COMPOSITION: 2,
+ DEPENDENCY: 3
+};
+const clone = (o) => JSON.parse(JSON.stringify(o));
+const parseDirective = function(statement, context, type) {
+ mermaidAPI.parseDirective(this, statement, context, type);
+};
+const setRootDoc = (o) => {
+ log.info("Setting root doc", o);
+ rootDoc = o;
+};
+const getRootDoc = () => rootDoc;
+const docTranslator = (parent, node, first) => {
+ if (node.stmt === STMT_RELATION) {
+ docTranslator(parent, node.state1, true);
+ docTranslator(parent, node.state2, false);
+ } else {
+ if (node.stmt === STMT_STATE) {
+ if (node.id === "[*]") {
+ node.id = first ? parent.id + "_start" : parent.id + "_end";
+ node.start = first;
+ } else {
+ node.id = node.id.trim();
+ }
+ }
+ if (node.doc) {
+ const doc = [];
+ let currentDoc = [];
+ let i;
+ for (i = 0; i < node.doc.length; i++) {
+ if (node.doc[i].type === DIVIDER_TYPE) {
+ const newNode = clone(node.doc[i]);
+ newNode.doc = clone(currentDoc);
+ doc.push(newNode);
+ currentDoc = [];
+ } else {
+ currentDoc.push(node.doc[i]);
+ }
+ }
+ if (doc.length > 0 && currentDoc.length > 0) {
+ const newNode = {
+ stmt: STMT_STATE,
+ id: generateId(),
+ type: "divider",
+ doc: clone(currentDoc)
+ };
+ doc.push(clone(newNode));
+ node.doc = doc;
+ }
+ node.doc.forEach((docNode) => docTranslator(node, docNode, true));
+ }
+ }
+};
+const getRootDocV2 = () => {
+ docTranslator({ id: "root" }, { id: "root", doc: rootDoc }, true);
+ return { id: "root", doc: rootDoc };
+};
+const extract = (_doc) => {
+ let doc;
+ if (_doc.doc) {
+ doc = _doc.doc;
+ } else {
+ doc = _doc;
+ }
+ log.info(doc);
+ clear(true);
+ log.info("Extract", doc);
+ doc.forEach((item) => {
+ switch (item.stmt) {
+ case STMT_STATE:
+ addState(
+ item.id.trim(),
+ item.type,
+ item.doc,
+ item.description,
+ item.note,
+ item.classes,
+ item.styles,
+ item.textStyles
+ );
+ break;
+ case STMT_RELATION:
+ addRelation(item.state1, item.state2, item.description);
+ break;
+ case STMT_CLASSDEF:
+ addStyleClass(item.id.trim(), item.classes);
+ break;
+ case STMT_APPLYCLASS:
+ setCssClass(item.id.trim(), item.styleClass);
+ break;
+ }
+ });
+};
+const addState = function(id, type = DEFAULT_STATE_TYPE, doc = null, descr = null, note = null, classes2 = null, styles2 = null, textStyles = null) {
+ const trimmedId = id == null ? void 0 : id.trim();
+ if (currentDocument.states[trimmedId] === void 0) {
+ log.info("Adding state ", trimmedId, descr);
+ currentDocument.states[trimmedId] = {
+ id: trimmedId,
+ descriptions: [],
+ type,
+ doc,
+ note,
+ classes: [],
+ styles: [],
+ textStyles: []
+ };
+ } else {
+ if (!currentDocument.states[trimmedId].doc) {
+ currentDocument.states[trimmedId].doc = doc;
+ }
+ if (!currentDocument.states[trimmedId].type) {
+ currentDocument.states[trimmedId].type = type;
+ }
+ }
+ if (descr) {
+ log.info("Setting state description", trimmedId, descr);
+ if (typeof descr === "string") {
+ addDescription(trimmedId, descr.trim());
+ }
+ if (typeof descr === "object") {
+ descr.forEach((des) => addDescription(trimmedId, des.trim()));
+ }
+ }
+ if (note) {
+ currentDocument.states[trimmedId].note = note;
+ currentDocument.states[trimmedId].note.text = common.sanitizeText(
+ currentDocument.states[trimmedId].note.text,
+ getConfig()
+ );
+ }
+ if (classes2) {
+ log.info("Setting state classes", trimmedId, classes2);
+ const classesList = typeof classes2 === "string" ? [classes2] : classes2;
+ classesList.forEach((klass) => setCssClass(trimmedId, klass.trim()));
+ }
+ if (styles2) {
+ log.info("Setting state styles", trimmedId, styles2);
+ const stylesList = typeof styles2 === "string" ? [styles2] : styles2;
+ stylesList.forEach((style) => setStyle(trimmedId, style.trim()));
+ }
+ if (textStyles) {
+ log.info("Setting state styles", trimmedId, styles2);
+ const textStylesList = typeof textStyles === "string" ? [textStyles] : textStyles;
+ textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim()));
+ }
+};
+const clear = function(saveCommon) {
+ documents = {
+ root: newDoc()
+ };
+ currentDocument = documents.root;
+ startEndCount = 0;
+ classes = newClassesList();
+ if (!saveCommon) {
+ clear$1();
+ }
+};
+const getState = function(id) {
+ return currentDocument.states[id];
+};
+const getStates = function() {
+ return currentDocument.states;
+};
+const logDocuments = function() {
+ log.info("Documents = ", documents);
+};
+const getRelations = function() {
+ return currentDocument.relations;
+};
+function startIdIfNeeded(id = "") {
+ let fixedId = id;
+ if (id === START_NODE) {
+ startEndCount++;
+ fixedId = `${START_TYPE}${startEndCount}`;
+ }
+ return fixedId;
+}
+function startTypeIfNeeded(id = "", type = DEFAULT_STATE_TYPE) {
+ return id === START_NODE ? START_TYPE : type;
+}
+function endIdIfNeeded(id = "") {
+ let fixedId = id;
+ if (id === END_NODE) {
+ startEndCount++;
+ fixedId = `${END_TYPE}${startEndCount}`;
+ }
+ return fixedId;
+}
+function endTypeIfNeeded(id = "", type = DEFAULT_STATE_TYPE) {
+ return id === END_NODE ? END_TYPE : type;
+}
+function addRelationObjs(item1, item2, relationTitle) {
+ let id1 = startIdIfNeeded(item1.id.trim());
+ let type1 = startTypeIfNeeded(item1.id.trim(), item1.type);
+ let id2 = startIdIfNeeded(item2.id.trim());
+ let type2 = startTypeIfNeeded(item2.id.trim(), item2.type);
+ addState(
+ id1,
+ type1,
+ item1.doc,
+ item1.description,
+ item1.note,
+ item1.classes,
+ item1.styles,
+ item1.textStyles
+ );
+ addState(
+ id2,
+ type2,
+ item2.doc,
+ item2.description,
+ item2.note,
+ item2.classes,
+ item2.styles,
+ item2.textStyles
+ );
+ currentDocument.relations.push({
+ id1,
+ id2,
+ relationTitle: common.sanitizeText(relationTitle, getConfig())
+ });
+}
+const addRelation = function(item1, item2, title) {
+ if (typeof item1 === "object") {
+ addRelationObjs(item1, item2, title);
+ } else {
+ const id1 = startIdIfNeeded(item1.trim());
+ const type1 = startTypeIfNeeded(item1);
+ const id2 = endIdIfNeeded(item2.trim());
+ const type2 = endTypeIfNeeded(item2);
+ addState(id1, type1);
+ addState(id2, type2);
+ currentDocument.relations.push({
+ id1,
+ id2,
+ title: common.sanitizeText(title, getConfig())
+ });
+ }
+};
+const addDescription = function(id, descr) {
+ const theState = currentDocument.states[id];
+ const _descr = descr.startsWith(":") ? descr.replace(":", "").trim() : descr;
+ theState.descriptions.push(common.sanitizeText(_descr, getConfig()));
+};
+const cleanupLabel = function(label) {
+ if (label.substring(0, 1) === ":") {
+ return label.substr(2).trim();
+ } else {
+ return label.trim();
+ }
+};
+const getDividerId = () => {
+ dividerCnt++;
+ return "divider-id-" + dividerCnt;
+};
+const addStyleClass = function(id, styleAttributes = "") {
+ if (classes[id] === void 0) {
+ classes[id] = { id, styles: [], textStyles: [] };
+ }
+ const foundClass = classes[id];
+ if (styleAttributes !== void 0 && styleAttributes !== null) {
+ styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {
+ const fixedAttrib = attrib.replace(/([^;]*);/, "$1").trim();
+ if (attrib.match(COLOR_KEYWORD)) {
+ const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);
+ const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);
+ foundClass.textStyles.push(newStyle2);
+ }
+ foundClass.styles.push(fixedAttrib);
+ });
+ }
+};
+const getClasses = function() {
+ return classes;
+};
+const setCssClass = function(itemIds, cssClassName) {
+ itemIds.split(",").forEach(function(id) {
+ let foundState = getState(id);
+ if (foundState === void 0) {
+ const trimmedId = id.trim();
+ addState(trimmedId);
+ foundState = getState(trimmedId);
+ }
+ foundState.classes.push(cssClassName);
+ });
+};
+const setStyle = function(itemId, styleText) {
+ const item = getState(itemId);
+ if (item !== void 0) {
+ item.textStyles.push(styleText);
+ }
+};
+const setTextStyle = function(itemId, cssClassName) {
+ const item = getState(itemId);
+ if (item !== void 0) {
+ item.textStyles.push(cssClassName);
+ }
+};
+const getDirection = () => direction;
+const setDirection = (dir) => {
+ direction = dir;
+};
+const trimColon = (str) => str && str[0] === ":" ? str.substr(1).trim() : str.trim();
+const db = {
+ parseDirective,
+ getConfig: () => getConfig().state,
+ addState,
+ clear,
+ getState,
+ getStates,
+ getRelations,
+ getClasses,
+ getDirection,
+ addRelation,
+ getDividerId,
+ setDirection,
+ cleanupLabel,
+ lineType,
+ relationType,
+ logDocuments,
+ getRootDoc,
+ setRootDoc,
+ getRootDocV2,
+ extract,
+ trimColon,
+ getAccTitle,
+ setAccTitle,
+ getAccDescription,
+ setAccDescription,
+ addStyleClass,
+ setCssClass,
+ addDescription,
+ setDiagramTitle,
+ getDiagramTitle
+};
+const getStyles = (options) => `
+defs #statediagram-barbEnd {
+ fill: ${options.transitionColor};
+ stroke: ${options.transitionColor};
+ }
+g.stateGroup text {
+ fill: ${options.nodeBorder};
+ stroke: none;
+ font-size: 10px;
+}
+g.stateGroup text {
+ fill: ${options.textColor};
+ stroke: none;
+ font-size: 10px;
+
+}
+g.stateGroup .state-title {
+ font-weight: bolder;
+ fill: ${options.stateLabelColor};
+}
+
+g.stateGroup rect {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+}
+
+g.stateGroup line {
+ stroke: ${options.lineColor};
+ stroke-width: 1;
+}
+
+.transition {
+ stroke: ${options.transitionColor};
+ stroke-width: 1;
+ fill: none;
+}
+
+.stateGroup .composit {
+ fill: ${options.background};
+ border-bottom: 1px
+}
+
+.stateGroup .alt-composit {
+ fill: #e0e0e0;
+ border-bottom: 1px
+}
+
+.state-note {
+ stroke: ${options.noteBorderColor};
+ fill: ${options.noteBkgColor};
+
+ text {
+ fill: ${options.noteTextColor};
+ stroke: none;
+ font-size: 10px;
+ }
+}
+
+.stateLabel .box {
+ stroke: none;
+ stroke-width: 0;
+ fill: ${options.mainBkg};
+ opacity: 0.5;
+}
+
+.edgeLabel .label rect {
+ fill: ${options.labelBackgroundColor};
+ opacity: 0.5;
+}
+.edgeLabel .label text {
+ fill: ${options.transitionLabelColor || options.tertiaryTextColor};
+}
+.label div .edgeLabel {
+ color: ${options.transitionLabelColor || options.tertiaryTextColor};
+}
+
+.stateLabel text {
+ fill: ${options.stateLabelColor};
+ font-size: 10px;
+ font-weight: bold;
+}
+
+.node circle.state-start {
+ fill: ${options.specialStateColor};
+ stroke: ${options.specialStateColor};
+}
+
+.node .fork-join {
+ fill: ${options.specialStateColor};
+ stroke: ${options.specialStateColor};
+}
+
+.node circle.state-end {
+ fill: ${options.innerEndBackground};
+ stroke: ${options.background};
+ stroke-width: 1.5
+}
+.end-state-inner {
+ fill: ${options.compositeBackground || options.background};
+ // stroke: ${options.background};
+ stroke-width: 1.5
+}
+
+.node rect {
+ fill: ${options.stateBkg || options.mainBkg};
+ stroke: ${options.stateBorder || options.nodeBorder};
+ stroke-width: 1px;
+}
+.node polygon {
+ fill: ${options.mainBkg};
+ stroke: ${options.stateBorder || options.nodeBorder};;
+ stroke-width: 1px;
+}
+#statediagram-barbEnd {
+ fill: ${options.lineColor};
+}
+
+.statediagram-cluster rect {
+ fill: ${options.compositeTitleBackground};
+ stroke: ${options.stateBorder || options.nodeBorder};
+ stroke-width: 1px;
+}
+
+.cluster-label, .nodeLabel {
+ color: ${options.stateLabelColor};
+}
+
+.statediagram-cluster rect.outer {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-state .divider {
+ stroke: ${options.stateBorder || options.nodeBorder};
+}
+
+.statediagram-state .title-state {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-cluster.statediagram-cluster .inner {
+ fill: ${options.compositeBackground || options.background};
+}
+.statediagram-cluster.statediagram-cluster-alt .inner {
+ fill: ${options.altBackground ? options.altBackground : "#efefef"};
+}
+
+.statediagram-cluster .inner {
+ rx:0;
+ ry:0;
+}
+
+.statediagram-state rect.basic {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-state rect.divider {
+ stroke-dasharray: 10,10;
+ fill: ${options.altBackground ? options.altBackground : "#efefef"};
+}
+
+.note-edge {
+ stroke-dasharray: 5;
+}
+
+.statediagram-note rect {
+ fill: ${options.noteBkgColor};
+ stroke: ${options.noteBorderColor};
+ stroke-width: 1px;
+ rx: 0;
+ ry: 0;
+}
+.statediagram-note rect {
+ fill: ${options.noteBkgColor};
+ stroke: ${options.noteBorderColor};
+ stroke-width: 1px;
+ rx: 0;
+ ry: 0;
+}
+
+.statediagram-note text {
+ fill: ${options.noteTextColor};
+}
+
+.statediagram-note .nodeLabel {
+ color: ${options.noteTextColor};
+}
+.statediagram .edgeLabel {
+ color: red; // ${options.noteTextColor};
+}
+
+#dependencyStart, #dependencyEnd {
+ fill: ${options.lineColor};
+ stroke: ${options.lineColor};
+ stroke-width: 1;
+}
+
+.statediagramTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor};
+}
+`;
+const styles = getStyles;
+export {
+ DEFAULT_DIAGRAM_DIRECTION as D,
+ STMT_RELATION as S,
+ DEFAULT_STATE_TYPE as a,
+ DIVIDER_TYPE as b,
+ STMT_STATE as c,
+ db as d,
+ DEFAULT_NESTED_DOC_DIR as e,
+ parser$1 as p,
+ styles as s
+};
+//# sourceMappingURL=styles-a8f89eec.js.map
diff --git a/scopegraphs-render-docs/doc/js/styles-b64b35cd.js b/scopegraphs-render-docs/doc/js/styles-b64b35cd.js
new file mode 100644
index 0000000..e38b391
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/styles-b64b35cd.js
@@ -0,0 +1,970 @@
+import { q as Ke, v as Qe, w as je, x as Xe, g as x, y as qe, z as He, A as We, l as Je, f as ae, h as w } from "./commonDb-41f8b4c5.js";
+import { u as Oe } from "./utils-8ea37061.js";
+import { m as Ze } from "./mermaidAPI-67f627de.js";
+var le = function() {
+ var e = function(S, u, r, l) {
+ for (r = r || {}, l = S.length; l--; r[S[l]] = u)
+ ;
+ return r;
+ }, n = [1, 3], c = [1, 7], o = [1, 8], h = [1, 9], E = [1, 10], d = [1, 13], b = [1, 12], D = [1, 16, 25], fe = [1, 20], pe = [1, 32], de = [1, 33], Ee = [1, 34], Ce = [1, 48], ge = [1, 39], ke = [1, 37], me = [1, 38], Fe = [1, 44], De = [1, 45], _e = [1, 40], be = [1, 41], Be = [1, 42], ye = [1, 43], C = [1, 49], g = [1, 50], k = [1, 51], F = [1, 52], a = [16, 25], G = [1, 66], M = [1, 67], U = [1, 68], z = [1, 69], Y = [1, 70], W = [1, 71], J = [1, 72], Te = [1, 82], O = [16, 25, 28, 29, 36, 49, 50, 64, 65, 66, 67, 68, 69, 70, 75, 77], Z = [16, 25, 28, 29, 34, 36, 49, 50, 55, 64, 65, 66, 67, 68, 69, 70, 75, 77, 92, 93, 94, 95], Se = [5, 8, 9, 10, 11, 16, 19, 23, 25], K = [29, 92, 93, 94, 95], R = [29, 69, 70, 92, 93, 94, 95], ve = [29, 64, 65, 66, 67, 68, 92, 93, 94, 95], $ = [1, 96], ee = [16, 25, 49, 50], Q = [16, 25, 36], te = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, mermaidDoc: 4, statments: 5, direction: 6, directive: 7, direction_tb: 8, direction_bt: 9, direction_rl: 10, direction_lr: 11, graphConfig: 12, openDirective: 13, typeDirective: 14, closeDirective: 15, NEWLINE: 16, ":": 17, argDirective: 18, open_directive: 19, type_directive: 20, arg_directive: 21, close_directive: 22, CLASS_DIAGRAM: 23, statements: 24, EOF: 25, statement: 26, classLabel: 27, SQS: 28, STR: 29, SQE: 30, className: 31, alphaNumToken: 32, classLiteralName: 33, GENERICTYPE: 34, relationStatement: 35, LABEL: 36, classStatement: 37, methodStatement: 38, annotationStatement: 39, clickStatement: 40, cssClassStatement: 41, noteStatement: 42, acc_title: 43, acc_title_value: 44, acc_descr: 45, acc_descr_value: 46, acc_descr_multiline_value: 47, classIdentifier: 48, STYLE_SEPARATOR: 49, STRUCT_START: 50, members: 51, STRUCT_STOP: 52, CLASS: 53, ANNOTATION_START: 54, ANNOTATION_END: 55, MEMBER: 56, SEPARATOR: 57, relation: 58, NOTE_FOR: 59, noteText: 60, NOTE: 61, relationType: 62, lineType: 63, AGGREGATION: 64, EXTENSION: 65, COMPOSITION: 66, DEPENDENCY: 67, LOLLIPOP: 68, LINE: 69, DOTTED_LINE: 70, CALLBACK: 71, LINK: 72, LINK_TARGET: 73, CLICK: 74, CALLBACK_NAME: 75, CALLBACK_ARGS: 76, HREF: 77, CSSCLASS: 78, commentToken: 79, textToken: 80, graphCodeTokens: 81, textNoTagsToken: 82, TAGSTART: 83, TAGEND: 84, "==": 85, "--": 86, PCT: 87, DEFAULT: 88, SPACE: 89, MINUS: 90, keywords: 91, UNICODE_TEXT: 92, NUM: 93, ALPHA: 94, BQUOTE_STR: 95, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 5: "statments", 8: "direction_tb", 9: "direction_bt", 10: "direction_rl", 11: "direction_lr", 16: "NEWLINE", 17: ":", 19: "open_directive", 20: "type_directive", 21: "arg_directive", 22: "close_directive", 23: "CLASS_DIAGRAM", 25: "EOF", 28: "SQS", 29: "STR", 30: "SQE", 34: "GENERICTYPE", 36: "LABEL", 43: "acc_title", 44: "acc_title_value", 45: "acc_descr", 46: "acc_descr_value", 47: "acc_descr_multiline_value", 49: "STYLE_SEPARATOR", 50: "STRUCT_START", 52: "STRUCT_STOP", 53: "CLASS", 54: "ANNOTATION_START", 55: "ANNOTATION_END", 56: "MEMBER", 57: "SEPARATOR", 59: "NOTE_FOR", 61: "NOTE", 64: "AGGREGATION", 65: "EXTENSION", 66: "COMPOSITION", 67: "DEPENDENCY", 68: "LOLLIPOP", 69: "LINE", 70: "DOTTED_LINE", 71: "CALLBACK", 72: "LINK", 73: "LINK_TARGET", 74: "CLICK", 75: "CALLBACK_NAME", 76: "CALLBACK_ARGS", 77: "HREF", 78: "CSSCLASS", 81: "graphCodeTokens", 83: "TAGSTART", 84: "TAGEND", 85: "==", 86: "--", 87: "PCT", 88: "DEFAULT", 89: "SPACE", 90: "MINUS", 91: "keywords", 92: "UNICODE_TEXT", 93: "NUM", 94: "ALPHA", 95: "BQUOTE_STR" },
+ productions_: [0, [3, 1], [3, 1], [3, 1], [3, 2], [6, 1], [6, 1], [6, 1], [6, 1], [4, 1], [7, 4], [7, 6], [13, 1], [14, 1], [18, 1], [15, 1], [12, 4], [24, 1], [24, 2], [24, 3], [27, 3], [31, 1], [31, 1], [31, 2], [31, 2], [31, 2], [26, 1], [26, 2], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 2], [26, 2], [26, 1], [37, 1], [37, 3], [37, 4], [37, 6], [48, 2], [48, 3], [39, 4], [51, 1], [51, 2], [38, 1], [38, 2], [38, 1], [38, 1], [35, 3], [35, 4], [35, 4], [35, 5], [42, 3], [42, 2], [58, 3], [58, 2], [58, 2], [58, 1], [62, 1], [62, 1], [62, 1], [62, 1], [62, 1], [63, 1], [63, 1], [40, 3], [40, 4], [40, 3], [40, 4], [40, 4], [40, 5], [40, 3], [40, 4], [40, 4], [40, 5], [40, 3], [40, 4], [40, 4], [40, 5], [41, 3], [79, 1], [79, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [82, 1], [82, 1], [82, 1], [82, 1], [32, 1], [32, 1], [32, 1], [33, 1], [60, 1]],
+ performAction: function(u, r, l, i, A, t, P) {
+ var s = t.length - 1;
+ switch (A) {
+ case 5:
+ i.setDirection("TB");
+ break;
+ case 6:
+ i.setDirection("BT");
+ break;
+ case 7:
+ i.setDirection("RL");
+ break;
+ case 8:
+ i.setDirection("LR");
+ break;
+ case 12:
+ i.parseDirective("%%{", "open_directive");
+ break;
+ case 13:
+ i.parseDirective(t[s], "type_directive");
+ break;
+ case 14:
+ t[s] = t[s].trim().replace(/'/g, '"'), i.parseDirective(t[s], "arg_directive");
+ break;
+ case 15:
+ i.parseDirective("}%%", "close_directive", "class");
+ break;
+ case 20:
+ this.$ = t[s - 1];
+ break;
+ case 21:
+ case 22:
+ this.$ = t[s];
+ break;
+ case 23:
+ this.$ = t[s - 1] + t[s];
+ break;
+ case 24:
+ case 25:
+ this.$ = t[s - 1] + "~" + t[s];
+ break;
+ case 26:
+ i.addRelation(t[s]);
+ break;
+ case 27:
+ t[s - 1].title = i.cleanupLabel(t[s]), i.addRelation(t[s - 1]);
+ break;
+ case 36:
+ this.$ = t[s].trim(), i.setAccTitle(this.$);
+ break;
+ case 37:
+ case 38:
+ this.$ = t[s].trim(), i.setAccDescription(this.$);
+ break;
+ case 40:
+ i.setCssClass(t[s - 2], t[s]);
+ break;
+ case 41:
+ i.addMembers(t[s - 3], t[s - 1]);
+ break;
+ case 42:
+ i.setCssClass(t[s - 5], t[s - 3]), i.addMembers(t[s - 5], t[s - 1]);
+ break;
+ case 43:
+ this.$ = t[s], i.addClass(t[s]);
+ break;
+ case 44:
+ this.$ = t[s - 1], i.addClass(t[s - 1]), i.setClassLabel(t[s - 1], t[s]);
+ break;
+ case 45:
+ i.addAnnotation(t[s], t[s - 2]);
+ break;
+ case 46:
+ this.$ = [t[s]];
+ break;
+ case 47:
+ t[s].push(t[s - 1]), this.$ = t[s];
+ break;
+ case 48:
+ break;
+ case 49:
+ i.addMember(t[s - 1], i.cleanupLabel(t[s]));
+ break;
+ case 50:
+ break;
+ case 51:
+ break;
+ case 52:
+ this.$ = { id1: t[s - 2], id2: t[s], relation: t[s - 1], relationTitle1: "none", relationTitle2: "none" };
+ break;
+ case 53:
+ this.$ = { id1: t[s - 3], id2: t[s], relation: t[s - 1], relationTitle1: t[s - 2], relationTitle2: "none" };
+ break;
+ case 54:
+ this.$ = { id1: t[s - 3], id2: t[s], relation: t[s - 2], relationTitle1: "none", relationTitle2: t[s - 1] };
+ break;
+ case 55:
+ this.$ = { id1: t[s - 4], id2: t[s], relation: t[s - 2], relationTitle1: t[s - 3], relationTitle2: t[s - 1] };
+ break;
+ case 56:
+ i.addNote(t[s], t[s - 1]);
+ break;
+ case 57:
+ i.addNote(t[s]);
+ break;
+ case 58:
+ this.$ = { type1: t[s - 2], type2: t[s], lineType: t[s - 1] };
+ break;
+ case 59:
+ this.$ = { type1: "none", type2: t[s], lineType: t[s - 1] };
+ break;
+ case 60:
+ this.$ = { type1: t[s - 1], type2: "none", lineType: t[s] };
+ break;
+ case 61:
+ this.$ = { type1: "none", type2: "none", lineType: t[s] };
+ break;
+ case 62:
+ this.$ = i.relationType.AGGREGATION;
+ break;
+ case 63:
+ this.$ = i.relationType.EXTENSION;
+ break;
+ case 64:
+ this.$ = i.relationType.COMPOSITION;
+ break;
+ case 65:
+ this.$ = i.relationType.DEPENDENCY;
+ break;
+ case 66:
+ this.$ = i.relationType.LOLLIPOP;
+ break;
+ case 67:
+ this.$ = i.lineType.LINE;
+ break;
+ case 68:
+ this.$ = i.lineType.DOTTED_LINE;
+ break;
+ case 69:
+ case 75:
+ this.$ = t[s - 2], i.setClickEvent(t[s - 1], t[s]);
+ break;
+ case 70:
+ case 76:
+ this.$ = t[s - 3], i.setClickEvent(t[s - 2], t[s - 1]), i.setTooltip(t[s - 2], t[s]);
+ break;
+ case 71:
+ case 79:
+ this.$ = t[s - 2], i.setLink(t[s - 1], t[s]);
+ break;
+ case 72:
+ this.$ = t[s - 3], i.setLink(t[s - 2], t[s - 1], t[s]);
+ break;
+ case 73:
+ case 81:
+ this.$ = t[s - 3], i.setLink(t[s - 2], t[s - 1]), i.setTooltip(t[s - 2], t[s]);
+ break;
+ case 74:
+ case 82:
+ this.$ = t[s - 4], i.setLink(t[s - 3], t[s - 2], t[s]), i.setTooltip(t[s - 3], t[s - 1]);
+ break;
+ case 77:
+ this.$ = t[s - 3], i.setClickEvent(t[s - 2], t[s - 1], t[s]);
+ break;
+ case 78:
+ this.$ = t[s - 4], i.setClickEvent(t[s - 3], t[s - 2], t[s - 1]), i.setTooltip(t[s - 3], t[s]);
+ break;
+ case 80:
+ this.$ = t[s - 3], i.setLink(t[s - 2], t[s - 1], t[s]);
+ break;
+ case 83:
+ i.setCssClass(t[s - 1], t[s]);
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: n, 6: 4, 7: 5, 8: c, 9: o, 10: h, 11: E, 12: 6, 13: 11, 19: d, 23: b }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 3: 14, 4: 2, 5: n, 6: 4, 7: 5, 8: c, 9: o, 10: h, 11: E, 12: 6, 13: 11, 19: d, 23: b }, { 1: [2, 9] }, e(D, [2, 5]), e(D, [2, 6]), e(D, [2, 7]), e(D, [2, 8]), { 14: 15, 20: [1, 16] }, { 16: [1, 17] }, { 20: [2, 12] }, { 1: [2, 4] }, { 15: 18, 17: [1, 19], 22: fe }, e([17, 22], [2, 13]), { 6: 31, 7: 30, 8: c, 9: o, 10: h, 11: E, 13: 11, 19: d, 24: 21, 26: 22, 31: 35, 32: 46, 33: 47, 35: 23, 37: 24, 38: 25, 39: 26, 40: 27, 41: 28, 42: 29, 43: pe, 45: de, 47: Ee, 48: 36, 53: Ce, 54: ge, 56: ke, 57: me, 59: Fe, 61: De, 71: _e, 72: be, 74: Be, 78: ye, 92: C, 93: g, 94: k, 95: F }, { 16: [1, 53] }, { 18: 54, 21: [1, 55] }, { 16: [2, 15] }, { 25: [1, 56] }, { 16: [1, 57], 25: [2, 17] }, e(a, [2, 26], { 36: [1, 58] }), e(a, [2, 28]), e(a, [2, 29]), e(a, [2, 30]), e(a, [2, 31]), e(a, [2, 32]), e(a, [2, 33]), e(a, [2, 34]), e(a, [2, 35]), { 44: [1, 59] }, { 46: [1, 60] }, e(a, [2, 38]), e(a, [2, 48], { 58: 61, 62: 64, 63: 65, 29: [1, 62], 36: [1, 63], 64: G, 65: M, 66: U, 67: z, 68: Y, 69: W, 70: J }), e(a, [2, 39], { 49: [1, 73], 50: [1, 74] }), e(a, [2, 50]), e(a, [2, 51]), { 32: 75, 92: C, 93: g, 94: k }, { 31: 76, 32: 46, 33: 47, 92: C, 93: g, 94: k, 95: F }, { 31: 77, 32: 46, 33: 47, 92: C, 93: g, 94: k, 95: F }, { 31: 78, 32: 46, 33: 47, 92: C, 93: g, 94: k, 95: F }, { 29: [1, 79] }, { 31: 80, 32: 46, 33: 47, 92: C, 93: g, 94: k, 95: F }, { 29: Te, 60: 81 }, e(O, [2, 21], { 32: 46, 33: 47, 31: 83, 34: [1, 84], 92: C, 93: g, 94: k, 95: F }), e(O, [2, 22], { 34: [1, 85] }), { 31: 86, 32: 46, 33: 47, 92: C, 93: g, 94: k, 95: F }, e(Z, [2, 97]), e(Z, [2, 98]), e(Z, [2, 99]), e([16, 25, 28, 29, 34, 36, 49, 50, 64, 65, 66, 67, 68, 69, 70, 75, 77], [2, 100]), e(Se, [2, 10]), { 15: 87, 22: fe }, { 22: [2, 14] }, { 1: [2, 16] }, { 6: 31, 7: 30, 8: c, 9: o, 10: h, 11: E, 13: 11, 19: d, 24: 88, 25: [2, 18], 26: 22, 31: 35, 32: 46, 33: 47, 35: 23, 37: 24, 38: 25, 39: 26, 40: 27, 41: 28, 42: 29, 43: pe, 45: de, 47: Ee, 48: 36, 53: Ce, 54: ge, 56: ke, 57: me, 59: Fe, 61: De, 71: _e, 72: be, 74: Be, 78: ye, 92: C, 93: g, 94: k, 95: F }, e(a, [2, 27]), e(a, [2, 36]), e(a, [2, 37]), { 29: [1, 90], 31: 89, 32: 46, 33: 47, 92: C, 93: g, 94: k, 95: F }, { 58: 91, 62: 64, 63: 65, 64: G, 65: M, 66: U, 67: z, 68: Y, 69: W, 70: J }, e(a, [2, 49]), { 63: 92, 69: W, 70: J }, e(K, [2, 61], { 62: 93, 64: G, 65: M, 66: U, 67: z, 68: Y }), e(R, [2, 62]), e(R, [2, 63]), e(R, [2, 64]), e(R, [2, 65]), e(R, [2, 66]), e(ve, [2, 67]), e(ve, [2, 68]), { 32: 94, 92: C, 93: g, 94: k }, { 51: 95, 56: $ }, { 55: [1, 97] }, { 29: [1, 98] }, { 29: [1, 99] }, { 75: [1, 100], 77: [1, 101] }, { 32: 102, 92: C, 93: g, 94: k }, { 29: Te, 60: 103 }, e(a, [2, 57]), e(a, [2, 101]), e(O, [2, 23]), e(O, [2, 24]), e(O, [2, 25]), e(ee, [2, 43], { 27: 104, 28: [1, 105] }), { 16: [1, 106] }, { 25: [2, 19] }, e(Q, [2, 52]), { 31: 107, 32: 46, 33: 47, 92: C, 93: g, 94: k, 95: F }, { 29: [1, 109], 31: 108, 32: 46, 33: 47, 92: C, 93: g, 94: k, 95: F }, e(K, [2, 60], { 62: 110, 64: G, 65: M, 66: U, 67: z, 68: Y }), e(K, [2, 59]), e(a, [2, 40], { 50: [1, 111] }), { 52: [1, 112] }, { 51: 113, 52: [2, 46], 56: $ }, { 31: 114, 32: 46, 33: 47, 92: C, 93: g, 94: k, 95: F }, e(a, [2, 69], { 29: [1, 115] }), e(a, [2, 71], { 29: [1, 117], 73: [1, 116] }), e(a, [2, 75], { 29: [1, 118], 76: [1, 119] }), e(a, [2, 79], { 29: [1, 121], 73: [1, 120] }), e(a, [2, 83]), e(a, [2, 56]), e(ee, [2, 44]), { 29: [1, 122] }, e(Se, [2, 11]), e(Q, [2, 54]), e(Q, [2, 53]), { 31: 123, 32: 46, 33: 47, 92: C, 93: g, 94: k, 95: F }, e(K, [2, 58]), { 51: 124, 56: $ }, e(a, [2, 41]), { 52: [2, 47] }, e(a, [2, 45]), e(a, [2, 70]), e(a, [2, 72]), e(a, [2, 73], { 73: [1, 125] }), e(a, [2, 76]), e(a, [2, 77], { 29: [1, 126] }), e(a, [2, 80]), e(a, [2, 81], { 73: [1, 127] }), { 30: [1, 128] }, e(Q, [2, 55]), { 52: [1, 129] }, e(a, [2, 74]), e(a, [2, 78]), e(a, [2, 82]), e(ee, [2, 20]), e(a, [2, 42])],
+ defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 3], 6: [2, 9], 13: [2, 12], 14: [2, 4], 20: [2, 15], 55: [2, 14], 56: [2, 16], 88: [2, 19], 113: [2, 47] },
+ parseError: function(u, r) {
+ if (r.recoverable)
+ this.trace(u);
+ else {
+ var l = new Error(u);
+ throw l.hash = r, l;
+ }
+ },
+ parse: function(u) {
+ var r = this, l = [0], i = [], A = [null], t = [], P = this.table, s = "", j = 0, Ne = 0, Me = 2, Le = 1, Ue = t.slice.call(arguments, 1), p = Object.create(this.lexer), v = { yy: {} };
+ for (var ie in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, ie) && (v.yy[ie] = this.yy[ie]);
+ p.setInput(u, v.yy), v.yy.lexer = p, v.yy.parser = this, typeof p.yylloc > "u" && (p.yylloc = {});
+ var ue = p.yylloc;
+ t.push(ue);
+ var ze = p.options && p.options.ranges;
+ typeof v.yy.parseError == "function" ? this.parseError = v.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function Ye() {
+ var y;
+ return y = i.pop() || p.lex() || Le, typeof y != "number" && (y instanceof Array && (i = y, y = i.pop()), y = r.symbols_[y] || y), y;
+ }
+ for (var m, N, _, ne, L = {}, X, B, xe, q; ; ) {
+ if (N = l[l.length - 1], this.defaultActions[N] ? _ = this.defaultActions[N] : ((m === null || typeof m > "u") && (m = Ye()), _ = P[N] && P[N][m]), typeof _ > "u" || !_.length || !_[0]) {
+ var re = "";
+ q = [];
+ for (X in P[N])
+ this.terminals_[X] && X > Me && q.push("'" + this.terminals_[X] + "'");
+ p.showPosition ? re = "Parse error on line " + (j + 1) + `:
+` + p.showPosition() + `
+Expecting ` + q.join(", ") + ", got '" + (this.terminals_[m] || m) + "'" : re = "Parse error on line " + (j + 1) + ": Unexpected " + (m == Le ? "end of input" : "'" + (this.terminals_[m] || m) + "'"), this.parseError(re, {
+ text: p.match,
+ token: this.terminals_[m] || m,
+ line: p.yylineno,
+ loc: ue,
+ expected: q
+ });
+ }
+ if (_[0] instanceof Array && _.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + N + ", token: " + m);
+ switch (_[0]) {
+ case 1:
+ l.push(m), A.push(p.yytext), t.push(p.yylloc), l.push(_[1]), m = null, Ne = p.yyleng, s = p.yytext, j = p.yylineno, ue = p.yylloc;
+ break;
+ case 2:
+ if (B = this.productions_[_[1]][1], L.$ = A[A.length - B], L._$ = {
+ first_line: t[t.length - (B || 1)].first_line,
+ last_line: t[t.length - 1].last_line,
+ first_column: t[t.length - (B || 1)].first_column,
+ last_column: t[t.length - 1].last_column
+ }, ze && (L._$.range = [
+ t[t.length - (B || 1)].range[0],
+ t[t.length - 1].range[1]
+ ]), ne = this.performAction.apply(L, [
+ s,
+ Ne,
+ j,
+ v.yy,
+ _[1],
+ A,
+ t
+ ].concat(Ue)), typeof ne < "u")
+ return ne;
+ B && (l = l.slice(0, -1 * B * 2), A = A.slice(0, -1 * B), t = t.slice(0, -1 * B)), l.push(this.productions_[_[1]][0]), A.push(L.$), t.push(L._$), xe = P[l[l.length - 2]][l[l.length - 1]], l.push(xe);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, Ge = function() {
+ var S = {
+ EOF: 1,
+ parseError: function(r, l) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(r, l);
+ else
+ throw new Error(r);
+ },
+ // resets the lexer, sets new input
+ setInput: function(u, r) {
+ return this.yy = r || this.yy || {}, this._input = u, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var u = this._input[0];
+ this.yytext += u, this.yyleng++, this.offset++, this.match += u, this.matched += u;
+ var r = u.match(/(?:\r\n?|\n).*/g);
+ return r ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), u;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(u) {
+ var r = u.length, l = u.split(/(?:\r\n?|\n)/g);
+ this._input = u + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - r), this.offset -= r;
+ var i = 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), l.length - 1 && (this.yylineno -= l.length - 1);
+ var A = 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: l ? (l.length === i.length ? this.yylloc.first_column : 0) + i[i.length - l.length].length - l[0].length : this.yylloc.first_column - r
+ }, this.options.ranges && (this.yylloc.range = [A[0], A[0] + this.yyleng - r]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(u) {
+ this.unput(this.match.slice(u));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var u = this.matched.substr(0, this.matched.length - this.match.length);
+ return (u.length > 20 ? "..." : "") + u.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var u = this.match;
+ return u.length < 20 && (u += this._input.substr(0, 20 - u.length)), (u.substr(0, 20) + (u.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var u = this.pastInput(), r = new Array(u.length + 1).join("-");
+ return u + this.upcomingInput() + `
+` + r + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(u, r) {
+ var l, i, A;
+ if (this.options.backtrack_lexer && (A = {
+ 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 && (A.yylloc.range = this.yylloc.range.slice(0))), i = u[0].match(/(?:\r\n?|\n).*/g), i && (this.yylineno += i.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: i ? i[i.length - 1].length - i[i.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + u[0].length
+ }, this.yytext += u[0], this.match += u[0], this.matches = u, 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(u[0].length), this.matched += u[0], l = this.performAction.call(this, this.yy, this, r, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), l)
+ return l;
+ if (this._backtrack) {
+ for (var t in A)
+ this[t] = A[t];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var u, r, l, i;
+ this._more || (this.yytext = "", this.match = "");
+ for (var A = this._currentRules(), t = 0; t < A.length; t++)
+ if (l = this._input.match(this.rules[A[t]]), l && (!r || l[0].length > r[0].length)) {
+ if (r = l, i = t, this.options.backtrack_lexer) {
+ if (u = this.test_match(l, A[t]), u !== !1)
+ return u;
+ if (this._backtrack) {
+ r = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return r ? (u = this.test_match(r, A[i]), u !== !1 ? u : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var r = this.next();
+ return r || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(r) {
+ this.conditionStack.push(r);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var r = this.conditionStack.length - 1;
+ return r > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(r) {
+ return r = this.conditionStack.length - 1 - Math.abs(r || 0), r >= 0 ? this.conditionStack[r] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(r) {
+ this.begin(r);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: {},
+ performAction: function(r, l, i, A) {
+ switch (i) {
+ case 0:
+ return this.begin("open_directive"), 19;
+ case 1:
+ return 8;
+ case 2:
+ return 9;
+ case 3:
+ return 10;
+ case 4:
+ return 11;
+ case 5:
+ return this.begin("type_directive"), 20;
+ case 6:
+ return this.popState(), this.begin("arg_directive"), 17;
+ case 7:
+ return this.popState(), this.popState(), 22;
+ case 8:
+ return 21;
+ case 9:
+ break;
+ case 10:
+ break;
+ case 11:
+ return this.begin("acc_title"), 43;
+ case 12:
+ return this.popState(), "acc_title_value";
+ case 13:
+ return this.begin("acc_descr"), 45;
+ case 14:
+ return this.popState(), "acc_descr_value";
+ case 15:
+ this.begin("acc_descr_multiline");
+ break;
+ case 16:
+ this.popState();
+ break;
+ case 17:
+ return "acc_descr_multiline_value";
+ case 18:
+ return 16;
+ case 19:
+ break;
+ case 20:
+ return 23;
+ case 21:
+ return 23;
+ case 22:
+ return this.begin("struct"), 50;
+ case 23:
+ return "EDGE_STATE";
+ case 24:
+ return "EOF_IN_STRUCT";
+ case 25:
+ return "OPEN_IN_STRUCT";
+ case 26:
+ return this.popState(), 52;
+ case 27:
+ break;
+ case 28:
+ return "MEMBER";
+ case 29:
+ return 53;
+ case 30:
+ return 78;
+ case 31:
+ return 71;
+ case 32:
+ return 72;
+ case 33:
+ return 74;
+ case 34:
+ return 59;
+ case 35:
+ return 61;
+ case 36:
+ return 54;
+ case 37:
+ return 55;
+ case 38:
+ this.begin("generic");
+ break;
+ case 39:
+ this.popState();
+ break;
+ case 40:
+ return "GENERICTYPE";
+ case 41:
+ this.begin("string");
+ break;
+ case 42:
+ this.popState();
+ break;
+ case 43:
+ return "STR";
+ case 44:
+ this.begin("bqstring");
+ break;
+ case 45:
+ this.popState();
+ break;
+ case 46:
+ return "BQUOTE_STR";
+ case 47:
+ this.begin("href");
+ break;
+ case 48:
+ this.popState();
+ break;
+ case 49:
+ return 77;
+ case 50:
+ this.begin("callback_name");
+ break;
+ case 51:
+ this.popState();
+ break;
+ case 52:
+ this.popState(), this.begin("callback_args");
+ break;
+ case 53:
+ return 75;
+ case 54:
+ this.popState();
+ break;
+ case 55:
+ return 76;
+ case 56:
+ return 73;
+ case 57:
+ return 73;
+ case 58:
+ return 73;
+ case 59:
+ return 73;
+ case 60:
+ return 65;
+ case 61:
+ return 65;
+ case 62:
+ return 67;
+ case 63:
+ return 67;
+ case 64:
+ return 66;
+ case 65:
+ return 64;
+ case 66:
+ return 68;
+ case 67:
+ return 69;
+ case 68:
+ return 70;
+ case 69:
+ return 36;
+ case 70:
+ return 49;
+ case 71:
+ return 90;
+ case 72:
+ return "DOT";
+ case 73:
+ return "PLUS";
+ case 74:
+ return 87;
+ case 75:
+ return "EQUALS";
+ case 76:
+ return "EQUALS";
+ case 77:
+ return 94;
+ case 78:
+ return 28;
+ case 79:
+ return 30;
+ case 80:
+ return "PUNCTUATION";
+ case 81:
+ return 93;
+ case 82:
+ return 92;
+ case 83:
+ return 89;
+ case 84:
+ return 25;
+ }
+ },
+ rules: [/^(?:%%\{)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:classDiagram-v2\b)/, /^(?:classDiagram\b)/, /^(?:[{])/, /^(?:\[\*\])/, /^(?:$)/, /^(?:[{])/, /^(?:[}])/, /^(?:[\n])/, /^(?:[^{}\n]*)/, /^(?:class\b)/, /^(?:cssClass\b)/, /^(?:callback\b)/, /^(?:link\b)/, /^(?:click\b)/, /^(?:note for\b)/, /^(?:note\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:[~])/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[`])/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:href[\s]+["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:\s*<\|)/, /^(?:\s*\|>)/, /^(?:\s*>)/, /^(?:\s*<)/, /^(?:\s*\*)/, /^(?:\s*o\b)/, /^(?:\s*\(\))/, /^(?:--)/, /^(?:\.\.)/, /^(?::{1}[^:\n;]+)/, /^(?::{3})/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\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: { acc_descr_multiline: { rules: [16, 17], inclusive: !1 }, acc_descr: { rules: [14], inclusive: !1 }, acc_title: { rules: [12], inclusive: !1 }, arg_directive: { rules: [7, 8], inclusive: !1 }, type_directive: { rules: [6, 7], inclusive: !1 }, open_directive: { rules: [5], inclusive: !1 }, callback_args: { rules: [54, 55], inclusive: !1 }, callback_name: { rules: [51, 52, 53], inclusive: !1 }, href: { rules: [48, 49], inclusive: !1 }, struct: { rules: [23, 24, 25, 26, 27, 28], inclusive: !1 }, generic: { rules: [39, 40], inclusive: !1 }, bqstring: { rules: [45, 46], inclusive: !1 }, string: { rules: [42, 43], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 44, 47, 50, 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], inclusive: !0 } }
+ };
+ return S;
+ }();
+ te.lexer = Ge;
+ function se() {
+ this.yy = {};
+ }
+ return se.prototype = te, te.Parser = se, new se();
+}();
+le.parser = le;
+const Bt = le, oe = "classId-";
+let he = [], f = {}, H = [], Ie = 0, V = [];
+const T = (e) => ae.sanitizeText(e, x()), $e = function(e, n, c) {
+ Ze.parseDirective(this, e, n, c);
+}, I = function(e) {
+ let n = "", c = e;
+ if (e.indexOf("~") > 0) {
+ const o = e.split("~");
+ c = T(o[0]), n = T(o[1]);
+ }
+ return { className: c, type: n };
+}, et = function(e, n) {
+ n && (n = T(n));
+ const { className: c } = I(e);
+ f[c].label = n;
+}, ce = function(e) {
+ const n = I(e);
+ f[n.className] === void 0 && (f[n.className] = {
+ id: n.className,
+ type: n.type,
+ label: n.className,
+ cssClasses: [],
+ methods: [],
+ members: [],
+ annotations: [],
+ domId: oe + n.className + "-" + Ie
+ }, Ie++);
+}, Re = function(e) {
+ if (e in f)
+ return f[e].domId;
+ throw new Error("Class not found: " + e);
+}, tt = function() {
+ he = [], f = {}, H = [], V = [], V.push(we), We();
+}, st = function(e) {
+ return f[e];
+}, it = function() {
+ return f;
+}, ut = function() {
+ return he;
+}, nt = function() {
+ return H;
+}, rt = function(e) {
+ Je.debug("Adding relation: " + JSON.stringify(e)), ce(e.id1), ce(e.id2), e.id1 = I(e.id1).className, e.id2 = I(e.id2).className, e.relationTitle1 = ae.sanitizeText(
+ e.relationTitle1.trim(),
+ x()
+ ), e.relationTitle2 = ae.sanitizeText(
+ e.relationTitle2.trim(),
+ x()
+ ), he.push(e);
+}, at = function(e, n) {
+ const c = I(e).className;
+ f[c].annotations.push(n);
+}, Pe = function(e, n) {
+ const c = I(e).className, o = f[c];
+ if (typeof n == "string") {
+ const h = n.trim();
+ h.startsWith("<<") && h.endsWith(">>") ? o.annotations.push(T(h.substring(2, h.length - 2))) : h.indexOf(")") > 0 ? o.methods.push(T(h)) : h && o.members.push(T(h));
+ }
+}, lt = function(e, n) {
+ Array.isArray(n) && (n.reverse(), n.forEach((c) => Pe(e, c)));
+}, ct = function(e, n) {
+ const c = {
+ id: `note${H.length}`,
+ class: n,
+ text: e
+ };
+ H.push(c);
+}, ot = function(e) {
+ return e.startsWith(":") && (e = e.substring(1)), T(e.trim());
+}, Ae = function(e, n) {
+ e.split(",").forEach(function(c) {
+ let o = c;
+ c[0].match(/\d/) && (o = oe + o), f[o] !== void 0 && f[o].cssClasses.push(n);
+ });
+}, ht = function(e, n) {
+ e.split(",").forEach(function(c) {
+ n !== void 0 && (f[c].tooltip = T(n));
+ });
+}, At = function(e) {
+ return f[e].tooltip;
+}, ft = function(e, n, c) {
+ const o = x();
+ e.split(",").forEach(function(h) {
+ let E = h;
+ h[0].match(/\d/) && (E = oe + E), f[E] !== void 0 && (f[E].link = Oe.formatUrl(n, o), o.securityLevel === "sandbox" ? f[E].linkTarget = "_top" : typeof c == "string" ? f[E].linkTarget = T(c) : f[E].linkTarget = "_blank");
+ }), Ae(e, "clickable");
+}, pt = function(e, n, c) {
+ e.split(",").forEach(function(o) {
+ dt(o, n, c), f[o].haveCallback = !0;
+ }), Ae(e, "clickable");
+}, dt = function(e, n, c) {
+ if (x().securityLevel !== "loose" || n === void 0)
+ return;
+ const h = e;
+ if (f[h] !== void 0) {
+ const E = Re(h);
+ let d = [];
+ if (typeof c == "string") {
+ d = c.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let b = 0; b < d.length; b++) {
+ let D = d[b].trim();
+ D.charAt(0) === '"' && D.charAt(D.length - 1) === '"' && (D = D.substr(1, D.length - 2)), d[b] = D;
+ }
+ }
+ d.length === 0 && d.push(E), V.push(function() {
+ const b = document.querySelector(`[id="${E}"]`);
+ b !== null && b.addEventListener(
+ "click",
+ function() {
+ Oe.runFunc(n, ...d);
+ },
+ !1
+ );
+ });
+ }
+}, Et = function(e) {
+ V.forEach(function(n) {
+ n(e);
+ });
+}, Ct = {
+ LINE: 0,
+ DOTTED_LINE: 1
+}, gt = {
+ AGGREGATION: 0,
+ EXTENSION: 1,
+ COMPOSITION: 2,
+ DEPENDENCY: 3,
+ LOLLIPOP: 4
+}, we = function(e) {
+ let n = w(".mermaidTooltip");
+ (n._groups || n)[0][0] === null && (n = w("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0)), w(e).select("svg").selectAll("g.node").on("mouseover", function() {
+ const h = w(this);
+ if (h.attr("title") === null)
+ return;
+ const d = this.getBoundingClientRect();
+ n.transition().duration(200).style("opacity", ".9"), n.text(h.attr("title")).style("left", window.scrollX + d.left + (d.right - d.left) / 2 + "px").style("top", window.scrollY + d.top - 14 + document.body.scrollTop + "px"), n.html(n.html().replace(/<br\/>/g, "
")), h.classed("hover", !0);
+ }).on("mouseout", function() {
+ n.transition().duration(500).style("opacity", 0), w(this).classed("hover", !1);
+ });
+};
+V.push(we);
+let Ve = "TB";
+const kt = () => Ve, mt = (e) => {
+ Ve = e;
+}, yt = {
+ parseDirective: $e,
+ setAccTitle: Ke,
+ getAccTitle: Qe,
+ getAccDescription: je,
+ setAccDescription: Xe,
+ getConfig: () => x().class,
+ addClass: ce,
+ bindFunctions: Et,
+ clear: tt,
+ getClass: st,
+ getClasses: it,
+ getNotes: nt,
+ addAnnotation: at,
+ addNote: ct,
+ getRelations: ut,
+ addRelation: rt,
+ getDirection: kt,
+ setDirection: mt,
+ addMember: Pe,
+ addMembers: lt,
+ cleanupLabel: ot,
+ lineType: Ct,
+ relationType: gt,
+ setClickEvent: pt,
+ setCssClass: Ae,
+ setLink: ft,
+ getTooltip: At,
+ setTooltip: ht,
+ lookUpDomId: Re,
+ setDiagramTitle: qe,
+ getDiagramTitle: He,
+ setClassLabel: et
+}, Ft = (e) => `g.classGroup text {
+ fill: ${e.nodeBorder};
+ fill: ${e.classText};
+ stroke: none;
+ font-family: ${e.fontFamily};
+ font-size: 10px;
+
+ .title {
+ font-weight: bolder;
+ }
+
+}
+
+.nodeLabel, .edgeLabel {
+ color: ${e.classText};
+}
+.edgeLabel .label rect {
+ fill: ${e.mainBkg};
+}
+.label text {
+ fill: ${e.classText};
+}
+.edgeLabel .label span {
+ background: ${e.mainBkg};
+}
+
+.classTitle {
+ font-weight: bolder;
+}
+.node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${e.mainBkg};
+ stroke: ${e.nodeBorder};
+ stroke-width: 1px;
+ }
+
+
+.divider {
+ stroke: ${e.nodeBorder};
+ stroke: 1;
+}
+
+g.clickable {
+ cursor: pointer;
+}
+
+g.classGroup rect {
+ fill: ${e.mainBkg};
+ stroke: ${e.nodeBorder};
+}
+
+g.classGroup line {
+ stroke: ${e.nodeBorder};
+ stroke-width: 1;
+}
+
+.classLabel .box {
+ stroke: none;
+ stroke-width: 0;
+ fill: ${e.mainBkg};
+ opacity: 0.5;
+}
+
+.classLabel .label {
+ fill: ${e.nodeBorder};
+ font-size: 10px;
+}
+
+.relation {
+ stroke: ${e.lineColor};
+ stroke-width: 1;
+ fill: none;
+}
+
+.dashed-line{
+ stroke-dasharray: 3;
+}
+
+.dotted-line{
+ stroke-dasharray: 1 2;
+}
+
+#compositionStart, .composition {
+ fill: ${e.lineColor} !important;
+ stroke: ${e.lineColor} !important;
+ stroke-width: 1;
+}
+
+#compositionEnd, .composition {
+ fill: ${e.lineColor} !important;
+ stroke: ${e.lineColor} !important;
+ stroke-width: 1;
+}
+
+#dependencyStart, .dependency {
+ fill: ${e.lineColor} !important;
+ stroke: ${e.lineColor} !important;
+ stroke-width: 1;
+}
+
+#dependencyStart, .dependency {
+ fill: ${e.lineColor} !important;
+ stroke: ${e.lineColor} !important;
+ stroke-width: 1;
+}
+
+#extensionStart, .extension {
+ fill: ${e.mainBkg} !important;
+ stroke: ${e.lineColor} !important;
+ stroke-width: 1;
+}
+
+#extensionEnd, .extension {
+ fill: ${e.mainBkg} !important;
+ stroke: ${e.lineColor} !important;
+ stroke-width: 1;
+}
+
+#aggregationStart, .aggregation {
+ fill: ${e.mainBkg} !important;
+ stroke: ${e.lineColor} !important;
+ stroke-width: 1;
+}
+
+#aggregationEnd, .aggregation {
+ fill: ${e.mainBkg} !important;
+ stroke: ${e.lineColor} !important;
+ stroke-width: 1;
+}
+
+#lollipopStart, .lollipop {
+ fill: ${e.mainBkg} !important;
+ stroke: ${e.lineColor} !important;
+ stroke-width: 1;
+}
+
+#lollipopEnd, .lollipop {
+ fill: ${e.mainBkg} !important;
+ stroke: ${e.lineColor} !important;
+ stroke-width: 1;
+}
+
+.edgeTerminals {
+ font-size: 11px;
+}
+
+.classTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${e.textColor};
+}
+`, Tt = Ft;
+export {
+ yt as d,
+ Bt as p,
+ Tt as s
+};
+//# sourceMappingURL=styles-b64b35cd.js.map
diff --git a/scopegraphs-render-docs/doc/js/styles-fd236c01.js b/scopegraphs-render-docs/doc/js/styles-fd236c01.js
new file mode 100644
index 0000000..79383b4
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/styles-fd236c01.js
@@ -0,0 +1,563 @@
+import { i as isPlainObject, G as Graph } from "./layout-3ff13c4c.js";
+import { l as log, m as evaluate, g as getConfig, f as common, h as select } from "./commonDb-89160e91.js";
+import { f as flowDb } from "./flowDb-bb61b53c.js";
+import { k as isFunction, z as getStylesFromArray, A as interpolateToCurve, y as curveLinear, u as utils, B as setupGraphViewbox } from "./utils-1aebe9b6.js";
+import { r as render } from "./index-c47ff54b.js";
+import { s as selectAll } from "./selectAll-7c7a6d44.js";
+function isSubgraph(g, v) {
+ return !!g.children(v).length;
+}
+function edgeToId(e) {
+ return escapeId(e.v) + ":" + escapeId(e.w) + ":" + escapeId(e.name);
+}
+var ID_DELIM = /:/g;
+function escapeId(str) {
+ return str ? String(str).replace(ID_DELIM, "\\:") : "";
+}
+function applyStyle(dom, styleFn) {
+ if (styleFn) {
+ dom.attr("style", styleFn);
+ }
+}
+function applyClass(dom, classFn, otherClasses) {
+ if (classFn) {
+ dom.attr("class", classFn).attr("class", otherClasses + " " + dom.attr("class"));
+ }
+}
+function applyTransition(selection, g) {
+ var graph = g.graph();
+ if (isPlainObject(graph)) {
+ var transition = graph.transition;
+ if (isFunction(transition)) {
+ return transition(selection);
+ }
+ }
+ return selection;
+}
+function addHtmlLabel(root, node) {
+ var fo = root.append("foreignObject").attr("width", "100000");
+ var div = fo.append("xhtml:div");
+ div.attr("xmlns", "http://www.w3.org/1999/xhtml");
+ var label = node.label;
+ switch (typeof label) {
+ case "function":
+ div.insert(label);
+ break;
+ case "object":
+ div.insert(function() {
+ return label;
+ });
+ break;
+ default:
+ div.html(label);
+ }
+ applyStyle(div, node.labelStyle);
+ div.style("display", "inline-block");
+ div.style("white-space", "nowrap");
+ var client = div.node().getBoundingClientRect();
+ fo.attr("width", client.width).attr("height", client.height);
+ return fo;
+}
+const conf = {};
+const setConf = function(cnf) {
+ const keys = Object.keys(cnf);
+ for (const key of keys) {
+ conf[key] = cnf[key];
+ }
+};
+const addVertices = function(vert, g, svgId, root, doc, diagObj) {
+ const svg = root.select(`[id="${svgId}"]`);
+ const keys = Object.keys(vert);
+ keys.forEach(function(id) {
+ const vertex = vert[id];
+ let classStr = "default";
+ if (vertex.classes.length > 0) {
+ classStr = vertex.classes.join(" ");
+ }
+ classStr = classStr + " flowchart-label";
+ const styles = getStylesFromArray(vertex.styles);
+ let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
+ let vertexNode;
+ log.info("vertex", vertex, vertex.labelType);
+ if (vertex.labelType === "markdown") {
+ log.info("vertex", vertex, vertex.labelType);
+ } else {
+ if (evaluate(getConfig().flowchart.htmlLabels)) {
+ const node = {
+ label: vertexText.replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s) => ``
+ )
+ };
+ vertexNode = addHtmlLabel(svg, node).node();
+ vertexNode.parentNode.removeChild(vertexNode);
+ } else {
+ const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("style", styles.labelStyle.replace("color:", "fill:"));
+ const rows = vertexText.split(common.lineBreakRegex);
+ for (const row of rows) {
+ const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
+ tspan.setAttribute("dy", "1em");
+ tspan.setAttribute("x", "1");
+ tspan.textContent = row;
+ svgLabel.appendChild(tspan);
+ }
+ vertexNode = svgLabel;
+ }
+ }
+ let radious = 0;
+ let _shape = "";
+ switch (vertex.type) {
+ case "round":
+ radious = 5;
+ _shape = "rect";
+ break;
+ case "square":
+ _shape = "rect";
+ break;
+ case "diamond":
+ _shape = "question";
+ break;
+ case "hexagon":
+ _shape = "hexagon";
+ break;
+ case "odd":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "lean_right":
+ _shape = "lean_right";
+ break;
+ case "lean_left":
+ _shape = "lean_left";
+ break;
+ case "trapezoid":
+ _shape = "trapezoid";
+ break;
+ case "inv_trapezoid":
+ _shape = "inv_trapezoid";
+ break;
+ case "odd_right":
+ _shape = "rect_left_inv_arrow";
+ break;
+ case "circle":
+ _shape = "circle";
+ break;
+ case "ellipse":
+ _shape = "ellipse";
+ break;
+ case "stadium":
+ _shape = "stadium";
+ break;
+ case "subroutine":
+ _shape = "subroutine";
+ break;
+ case "cylinder":
+ _shape = "cylinder";
+ break;
+ case "group":
+ _shape = "rect";
+ break;
+ case "doublecircle":
+ _shape = "doublecircle";
+ break;
+ default:
+ _shape = "rect";
+ }
+ g.setNode(vertex.id, {
+ labelStyle: styles.labelStyle,
+ shape: _shape,
+ labelText: vertexText,
+ labelType: vertex.labelType,
+ rx: radious,
+ ry: radious,
+ class: classStr,
+ style: styles.style,
+ id: vertex.id,
+ link: vertex.link,
+ linkTarget: vertex.linkTarget,
+ tooltip: diagObj.db.getTooltip(vertex.id) || "",
+ domId: diagObj.db.lookUpDomId(vertex.id),
+ haveCallback: vertex.haveCallback,
+ width: vertex.type === "group" ? 500 : void 0,
+ dir: vertex.dir,
+ type: vertex.type,
+ props: vertex.props,
+ padding: getConfig().flowchart.padding
+ });
+ log.info("setNode", {
+ labelStyle: styles.labelStyle,
+ labelType: vertex.labelType,
+ shape: _shape,
+ labelText: vertexText,
+ rx: radious,
+ ry: radious,
+ class: classStr,
+ style: styles.style,
+ id: vertex.id,
+ domId: diagObj.db.lookUpDomId(vertex.id),
+ width: vertex.type === "group" ? 500 : void 0,
+ type: vertex.type,
+ dir: vertex.dir,
+ props: vertex.props,
+ padding: getConfig().flowchart.padding
+ });
+ });
+};
+const addEdges = function(edges, g, diagObj) {
+ log.info("abc78 edges = ", edges);
+ let cnt = 0;
+ let linkIdCnt = {};
+ let defaultStyle;
+ let defaultLabelStyle;
+ if (edges.defaultStyle !== void 0) {
+ const defaultStyles = getStylesFromArray(edges.defaultStyle);
+ defaultStyle = defaultStyles.style;
+ defaultLabelStyle = defaultStyles.labelStyle;
+ }
+ edges.forEach(function(edge) {
+ cnt++;
+ var linkIdBase = "L-" + edge.start + "-" + edge.end;
+ if (linkIdCnt[linkIdBase] === void 0) {
+ linkIdCnt[linkIdBase] = 0;
+ log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
+ } else {
+ linkIdCnt[linkIdBase]++;
+ log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
+ }
+ let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase];
+ log.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]);
+ var linkNameStart = "LS-" + edge.start;
+ var linkNameEnd = "LE-" + edge.end;
+ const edgeData = { style: "", labelStyle: "" };
+ edgeData.minlen = edge.length || 1;
+ if (edge.type === "arrow_open") {
+ edgeData.arrowhead = "none";
+ } else {
+ edgeData.arrowhead = "normal";
+ }
+ edgeData.arrowTypeStart = "arrow_open";
+ edgeData.arrowTypeEnd = "arrow_open";
+ switch (edge.type) {
+ case "double_arrow_cross":
+ edgeData.arrowTypeStart = "arrow_cross";
+ case "arrow_cross":
+ edgeData.arrowTypeEnd = "arrow_cross";
+ break;
+ case "double_arrow_point":
+ edgeData.arrowTypeStart = "arrow_point";
+ case "arrow_point":
+ edgeData.arrowTypeEnd = "arrow_point";
+ break;
+ case "double_arrow_circle":
+ edgeData.arrowTypeStart = "arrow_circle";
+ case "arrow_circle":
+ edgeData.arrowTypeEnd = "arrow_circle";
+ break;
+ }
+ let style = "";
+ let labelStyle = "";
+ switch (edge.stroke) {
+ case "normal":
+ style = "fill:none;";
+ if (defaultStyle !== void 0) {
+ style = defaultStyle;
+ }
+ if (defaultLabelStyle !== void 0) {
+ labelStyle = defaultLabelStyle;
+ }
+ edgeData.thickness = "normal";
+ edgeData.pattern = "solid";
+ break;
+ case "dotted":
+ edgeData.thickness = "normal";
+ edgeData.pattern = "dotted";
+ edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
+ break;
+ case "thick":
+ edgeData.thickness = "thick";
+ edgeData.pattern = "solid";
+ edgeData.style = "stroke-width: 3.5px;fill:none;";
+ break;
+ case "invisible":
+ edgeData.thickness = "invisible";
+ edgeData.pattern = "solid";
+ edgeData.style = "stroke-width: 0;fill:none;";
+ break;
+ }
+ if (edge.style !== void 0) {
+ const styles = getStylesFromArray(edge.style);
+ style = styles.style;
+ labelStyle = styles.labelStyle;
+ }
+ edgeData.style = edgeData.style += style;
+ edgeData.labelStyle = edgeData.labelStyle += labelStyle;
+ if (edge.interpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
+ } else if (edges.defaultInterpolate !== void 0) {
+ edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);
+ } else {
+ edgeData.curve = interpolateToCurve(conf.curve, curveLinear);
+ }
+ if (edge.text === void 0) {
+ if (edge.style !== void 0) {
+ edgeData.arrowheadStyle = "fill: #333";
+ }
+ } else {
+ edgeData.arrowheadStyle = "fill: #333";
+ edgeData.labelpos = "c";
+ }
+ edgeData.labelType = edge.labelType;
+ edgeData.label = edge.text.replace(common.lineBreakRegex, "\n");
+ if (edge.style === void 0) {
+ edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;";
+ }
+ edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
+ edgeData.id = linkId;
+ edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd;
+ g.setEdge(edge.start, edge.end, edgeData, cnt);
+ });
+};
+const getClasses = function(text, diagObj) {
+ log.info("Extracting classes");
+ diagObj.db.clear();
+ try {
+ diagObj.parse(text);
+ return diagObj.db.getClasses();
+ } catch (e) {
+ return;
+ }
+};
+const draw = function(text, id, _version, diagObj) {
+ log.info("Drawing flowchart");
+ diagObj.db.clear();
+ flowDb.setGen("gen-2");
+ diagObj.parser.parse(text);
+ let dir = diagObj.db.getDirection();
+ if (dir === void 0) {
+ dir = "TD";
+ }
+ const { securityLevel, flowchart: conf2 } = getConfig();
+ const nodeSpacing = conf2.nodeSpacing || 50;
+ const rankSpacing = conf2.rankSpacing || 50;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ const g = new Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: dir,
+ nodesep: nodeSpacing,
+ ranksep: rankSpacing,
+ marginx: 0,
+ marginy: 0
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ let subG;
+ const subGraphs = diagObj.db.getSubGraphs();
+ log.info("Subgraphs - ", subGraphs);
+ for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {
+ subG = subGraphs[i2];
+ log.info("Subgraph - ", subG);
+ diagObj.db.addVertex(
+ subG.id,
+ { text: subG.title, type: subG.labelType },
+ "group",
+ void 0,
+ subG.classes,
+ subG.dir
+ );
+ }
+ const vert = diagObj.db.getVertices();
+ const edges = diagObj.db.getEdges();
+ log.info("Edges", edges);
+ let i = 0;
+ for (i = subGraphs.length - 1; i >= 0; i--) {
+ subG = subGraphs[i];
+ selectAll("cluster").append("text");
+ for (let j = 0; j < subG.nodes.length; j++) {
+ log.info("Setting up subgraphs", subG.nodes[j], subG.id);
+ g.setParent(subG.nodes[j], subG.id);
+ }
+ }
+ addVertices(vert, g, id, root, doc, diagObj);
+ addEdges(edges, g);
+ const svg = root.select(`[id="${id}"]`);
+ const element = root.select("#" + id + " g");
+ render(element, g, ["point", "circle", "cross"], "flowchart", id);
+ utils.insertTitle(svg, "flowchartTitleText", conf2.titleTopMargin, diagObj.db.getDiagramTitle());
+ setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth);
+ diagObj.db.indexNodes("subGraph" + i);
+ if (!conf2.htmlLabels) {
+ const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
+ for (const label of labels) {
+ const dim = label.getBBox();
+ const rect = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
+ rect.setAttribute("rx", 0);
+ rect.setAttribute("ry", 0);
+ rect.setAttribute("width", dim.width);
+ rect.setAttribute("height", dim.height);
+ label.insertBefore(rect, label.firstChild);
+ }
+ }
+ const keys = Object.keys(vert);
+ keys.forEach(function(key) {
+ const vertex = vert[key];
+ if (vertex.link) {
+ const node = select("#" + id + ' [id="' + key + '"]');
+ if (node) {
+ const link = doc.createElementNS("http://www.w3.org/2000/svg", "a");
+ link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" "));
+ link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link);
+ link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener");
+ if (securityLevel === "sandbox") {
+ link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top");
+ } else if (vertex.linkTarget) {
+ link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget);
+ }
+ const linkNode = node.insert(function() {
+ return link;
+ }, ":first-child");
+ const shape = node.select(".label-container");
+ if (shape) {
+ linkNode.append(function() {
+ return shape.node();
+ });
+ }
+ const label = node.select(".label");
+ if (label) {
+ linkNode.append(function() {
+ return label.node();
+ });
+ }
+ }
+ }
+ });
+};
+const flowRendererV2 = {
+ setConf,
+ addVertices,
+ addEdges,
+ getClasses,
+ draw
+};
+const getStyles = (options) => `.label {
+ font-family: ${options.fontFamily};
+ color: ${options.nodeTextColor || options.textColor};
+ }
+ .cluster-label text {
+ fill: ${options.titleColor};
+ }
+ .cluster-label span,p {
+ color: ${options.titleColor};
+ }
+
+ .label text,span,p {
+ fill: ${options.nodeTextColor || options.textColor};
+ color: ${options.nodeTextColor || options.textColor};
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options.mainBkg};
+ stroke: ${options.nodeBorder};
+ stroke-width: 1px;
+ }
+ .flowchart-label text {
+ text-anchor: middle;
+ }
+ // .flowchart-label .text-outer-tspan {
+ // text-anchor: middle;
+ // }
+ // .flowchart-label .text-inner-tspan {
+ // text-anchor: start;
+ // }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${options.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${options.lineColor};
+ stroke-width: 2.0px;
+ }
+
+ .flowchart-link {
+ stroke: ${options.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${options.edgeLabelBackground};
+ rect {
+ opacity: 0.5;
+ background-color: ${options.edgeLabelBackground};
+ fill: ${options.edgeLabelBackground};
+ }
+ text-align: center;
+ }
+
+ .cluster rect {
+ fill: ${options.clusterBkg};
+ stroke: ${options.clusterBorder};
+ stroke-width: 1px;
+ }
+
+ .cluster text {
+ fill: ${options.titleColor};
+ }
+
+ .cluster span,p {
+ color: ${options.titleColor};
+ }
+ /* .cluster div {
+ color: ${options.titleColor};
+ } */
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: ${options.fontFamily};
+ font-size: 12px;
+ background: ${options.tertiaryColor};
+ border: 1px solid ${options.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .flowchartTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options.textColor};
+ }
+`;
+const flowStyles = getStyles;
+export {
+ applyStyle as a,
+ addHtmlLabel as b,
+ applyTransition as c,
+ applyClass as d,
+ edgeToId as e,
+ flowRendererV2 as f,
+ flowStyles as g,
+ isSubgraph as i
+};
+//# sourceMappingURL=styles-fd236c01.js.map
diff --git a/scopegraphs-render-docs/doc/js/styles.d.ts b/scopegraphs-render-docs/doc/js/styles.d.ts
new file mode 100644
index 0000000..dc24708
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/styles.d.ts
@@ -0,0 +1,11 @@
+import type { FlowChartStyleOptions } from './diagrams/flowchart/styles';
+declare const getStyles: (type: string, userStyles: string, options: {
+ fontFamily: string;
+ fontSize: string;
+ textColor: string;
+ errorBkgColor: string;
+ errorTextColor: string;
+ lineColor: string;
+} & FlowChartStyleOptions) => string;
+export declare const addStylesForDiagram: (type: string, diagramTheme: unknown) => void;
+export default getStyles;
diff --git a/scopegraphs-render-docs/doc/js/svgDraw-0a992cdb.js b/scopegraphs-render-docs/doc/js/svgDraw-0a992cdb.js
new file mode 100644
index 0000000..9c17991
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/svgDraw-0a992cdb.js
@@ -0,0 +1,177 @@
+import { l as b, D as w } from "./commonDb-41f8b4c5.js";
+import { G as C, u as S } from "./utils-8ea37061.js";
+import { l as k } from "./line-05ccbb85.js";
+let M = 0;
+const O = function(i, e, t, r, n) {
+ const a = function(o) {
+ switch (o) {
+ case n.db.relationType.AGGREGATION:
+ return "aggregation";
+ case n.db.relationType.EXTENSION:
+ return "extension";
+ case n.db.relationType.COMPOSITION:
+ return "composition";
+ case n.db.relationType.DEPENDENCY:
+ return "dependency";
+ case n.db.relationType.LOLLIPOP:
+ return "lollipop";
+ }
+ };
+ e.points = e.points.filter((o) => !Number.isNaN(o.y));
+ const l = e.points, d = k().x(function(o) {
+ return o.x;
+ }).y(function(o) {
+ return o.y;
+ }).curve(C), s = i.append("path").attr("d", d(l)).attr("id", "edge" + M).attr("class", "relation");
+ let g = "";
+ r.arrowMarkerAbsolute && (g = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, g = g.replace(/\(/g, "\\("), g = g.replace(/\)/g, "\\)")), t.relation.lineType == 1 && s.attr("class", "relation dashed-line"), t.relation.lineType == 10 && s.attr("class", "relation dotted-line"), t.relation.type1 !== "none" && s.attr(
+ "marker-start",
+ "url(" + g + "#" + a(t.relation.type1) + "Start)"
+ ), t.relation.type2 !== "none" && s.attr(
+ "marker-end",
+ "url(" + g + "#" + a(t.relation.type2) + "End)"
+ );
+ let f, c;
+ const p = e.points.length;
+ let B = S.calcLabelPosition(e.points);
+ f = B.x, c = B.y;
+ let x, v, N, m;
+ if (p % 2 !== 0 && p > 1) {
+ let o = S.calcCardinalityPosition(
+ t.relation.type1 !== "none",
+ e.points,
+ e.points[0]
+ ), u = S.calcCardinalityPosition(
+ t.relation.type2 !== "none",
+ e.points,
+ e.points[p - 1]
+ );
+ b.debug("cardinality_1_point " + JSON.stringify(o)), b.debug("cardinality_2_point " + JSON.stringify(u)), x = o.x, v = o.y, N = u.x, m = u.y;
+ }
+ if (t.title !== void 0) {
+ const o = i.append("g").attr("class", "classLabel"), u = o.append("text").attr("class", "label").attr("x", f).attr("y", c).attr("fill", "red").attr("text-anchor", "middle").text(t.title);
+ window.label = u;
+ const h = u.node().getBBox();
+ o.insert("rect", ":first-child").attr("class", "box").attr("x", h.x - r.padding / 2).attr("y", h.y - r.padding / 2).attr("width", h.width + r.padding).attr("height", h.height + r.padding);
+ }
+ b.info("Rendering relation " + JSON.stringify(t)), t.relationTitle1 !== void 0 && t.relationTitle1 !== "none" && i.append("g").attr("class", "cardinality").append("text").attr("class", "type1").attr("x", x).attr("y", v).attr("fill", "black").attr("font-size", "6").text(t.relationTitle1), t.relationTitle2 !== void 0 && t.relationTitle2 !== "none" && i.append("g").attr("class", "cardinality").append("text").attr("class", "type2").attr("x", N).attr("y", m).attr("fill", "black").attr("font-size", "6").text(t.relationTitle2), M++;
+}, P = function(i, e, t, r) {
+ b.debug("Rendering class ", e, t);
+ const n = e.id, a = {
+ id: n,
+ label: e.id,
+ width: 0,
+ height: 0
+ }, l = i.append("g").attr("id", r.db.lookUpDomId(n)).attr("class", "classGroup");
+ let d;
+ e.link ? d = l.append("svg:a").attr("xlink:href", e.link).attr("target", e.linkTarget).append("text").attr("y", t.textHeight + t.padding).attr("x", 0) : d = l.append("text").attr("y", t.textHeight + t.padding).attr("x", 0);
+ let s = !0;
+ e.annotations.forEach(function(y) {
+ const H = d.append("tspan").text("«" + y + "»");
+ s || H.attr("dy", t.textHeight), s = !1;
+ });
+ let g = e.id;
+ e.type !== void 0 && e.type !== "" && (g += "<" + e.type + ">");
+ const f = d.append("tspan").text(g).attr("class", "title");
+ s || f.attr("dy", t.textHeight);
+ const c = d.node().getBBox().height, p = l.append("line").attr("x1", 0).attr("y1", t.padding + c + t.dividerMargin / 2).attr("y2", t.padding + c + t.dividerMargin / 2), B = l.append("text").attr("x", t.padding).attr("y", c + t.dividerMargin + t.textHeight).attr("fill", "white").attr("class", "classText");
+ s = !0, e.members.forEach(function(y) {
+ _(B, y, s, t), s = !1;
+ });
+ const x = B.node().getBBox(), v = l.append("line").attr("x1", 0).attr("y1", t.padding + c + t.dividerMargin + x.height).attr("y2", t.padding + c + t.dividerMargin + x.height), N = l.append("text").attr("x", t.padding).attr("y", c + 2 * t.dividerMargin + x.height + t.textHeight).attr("fill", "white").attr("class", "classText");
+ s = !0, e.methods.forEach(function(y) {
+ _(N, y, s, t), s = !1;
+ });
+ const m = l.node().getBBox();
+ var o = " ";
+ e.cssClasses.length > 0 && (o = o + e.cssClasses.join(" "));
+ const h = l.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", m.width + 2 * t.padding).attr("height", m.height + t.padding + 0.5 * t.dividerMargin).attr("class", o).node().getBBox().width;
+ return d.node().childNodes.forEach(function(y) {
+ y.setAttribute("x", (h - y.getBBox().width) / 2);
+ }), e.tooltip && d.insert("title").text(e.tooltip), p.attr("x2", h), v.attr("x2", h), a.width = h, a.height = m.height + t.padding + 0.5 * t.dividerMargin, a;
+}, I = function(i, e, t, r) {
+ b.debug("Rendering note ", e, t);
+ const n = e.id, a = {
+ id: n,
+ text: e.text,
+ width: 0,
+ height: 0
+ }, l = i.append("g").attr("id", n).attr("class", "classGroup");
+ let d = l.append("text").attr("y", t.textHeight + t.padding).attr("x", 0);
+ const s = JSON.parse(`"${e.text}"`).split(`
+`);
+ s.forEach(function(p) {
+ b.debug(`Adding line: ${p}`), d.append("tspan").text(p).attr("class", "title").attr("dy", t.textHeight);
+ });
+ const g = l.node().getBBox(), c = l.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", g.width + 2 * t.padding).attr(
+ "height",
+ g.height + s.length * t.textHeight + t.padding + 0.5 * t.dividerMargin
+ ).node().getBBox().width;
+ return d.node().childNodes.forEach(function(p) {
+ p.setAttribute("x", (c - p.getBBox().width) / 2);
+ }), a.width = c, a.height = g.height + s.length * t.textHeight + t.padding + 0.5 * t.dividerMargin, a;
+}, T = function(i) {
+ const e = /^([#+~-])?(\w+)(~\w+~|\[])?\s+(\w+) *([$*])?$/, t = /^([#+|~-])?(\w+) *\( *(.*)\) *([$*])? *(\w*[[\]|~]*\s*\w*~?)$/;
+ let r = i.match(e), n = i.match(t);
+ return r && !n ? L(r) : n ? G(n) : R(i);
+}, L = function(i) {
+ let e = "", t = "";
+ try {
+ let r = i[1] ? i[1].trim() : "", n = i[2] ? i[2].trim() : "", a = i[3] ? w(i[3].trim()) : "", l = i[4] ? i[4].trim() : "", d = i[5] ? i[5].trim() : "";
+ t = r + n + a + " " + l, e = E(d);
+ } catch {
+ t = i;
+ }
+ return {
+ displayText: t,
+ cssStyle: e
+ };
+}, G = function(i) {
+ let e = "", t = "";
+ try {
+ let r = i[1] ? i[1].trim() : "", n = i[2] ? i[2].trim() : "", a = i[3] ? w(i[3].trim()) : "", l = i[4] ? i[4].trim() : "", d = i[5] ? " : " + w(i[5]).trim() : "";
+ t = r + n + "(" + a + ")" + d, e = E(l);
+ } catch {
+ t = i;
+ }
+ return {
+ displayText: t,
+ cssStyle: e
+ };
+}, R = function(i) {
+ let e = "", t = "", r = "", n = i.indexOf("("), a = i.indexOf(")");
+ if (n > 1 && a > n && a <= i.length) {
+ let l = "", d = "", s = i.substring(0, 1);
+ s.match(/\w/) ? d = i.substring(0, n).trim() : (s.match(/[#+~-]/) && (l = s), d = i.substring(1, n).trim());
+ const g = i.substring(n + 1, a);
+ i.substring(a + 1, 1), t = E(i.substring(a + 1, a + 2)), e = l + d + "(" + w(g.trim()) + ")", a < i.length && (r = i.substring(a + 2).trim(), r !== "" && (r = " : " + w(r), e += r));
+ } else
+ e = w(i);
+ return {
+ displayText: e,
+ cssStyle: t
+ };
+}, _ = function(i, e, t, r) {
+ let n = T(e);
+ const a = i.append("tspan").attr("x", r.padding).text(n.displayText);
+ n.cssStyle !== "" && a.attr("style", n.cssStyle), t || a.attr("dy", r.textHeight);
+}, E = function(i) {
+ switch (i) {
+ case "*":
+ return "font-style:italic;";
+ case "$":
+ return "text-decoration:underline;";
+ default:
+ return "";
+ }
+}, F = {
+ drawClass: P,
+ drawEdge: O,
+ drawNote: I,
+ parseMember: T
+};
+export {
+ T as p,
+ F as s
+};
+//# sourceMappingURL=svgDraw-0a992cdb.js.map
diff --git a/scopegraphs-render-docs/doc/js/svgDraw-2526cba0.js b/scopegraphs-render-docs/doc/js/svgDraw-2526cba0.js
new file mode 100644
index 0000000..ba342f4
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/svgDraw-2526cba0.js
@@ -0,0 +1,309 @@
+import { line, curveBasis } from "d3";
+import { u as utils } from "./utils-d622194a.js";
+import { l as log, z as parseGenericTypes } from "./commonDb-573409be.js";
+let edgeCount = 0;
+const drawEdge = function(elem, path, relation, conf, diagObj) {
+ const getRelationType = function(type) {
+ switch (type) {
+ case diagObj.db.relationType.AGGREGATION:
+ return "aggregation";
+ case diagObj.db.relationType.EXTENSION:
+ return "extension";
+ case diagObj.db.relationType.COMPOSITION:
+ return "composition";
+ case diagObj.db.relationType.DEPENDENCY:
+ return "dependency";
+ case diagObj.db.relationType.LOLLIPOP:
+ return "lollipop";
+ }
+ };
+ path.points = path.points.filter((p) => !Number.isNaN(p.y));
+ const lineData = path.points;
+ const lineFunction = line().x(function(d) {
+ return d.x;
+ }).y(function(d) {
+ return d.y;
+ }).curve(curveBasis);
+ const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "relation");
+ let url = "";
+ if (conf.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ if (relation.relation.lineType == 1) {
+ svgPath.attr("class", "relation dashed-line");
+ }
+ if (relation.relation.lineType == 10) {
+ svgPath.attr("class", "relation dotted-line");
+ }
+ if (relation.relation.type1 !== "none") {
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + getRelationType(relation.relation.type1) + "Start)"
+ );
+ }
+ if (relation.relation.type2 !== "none") {
+ svgPath.attr(
+ "marker-end",
+ "url(" + url + "#" + getRelationType(relation.relation.type2) + "End)"
+ );
+ }
+ let x, y;
+ const l = path.points.length;
+ let labelPosition = utils.calcLabelPosition(path.points);
+ x = labelPosition.x;
+ y = labelPosition.y;
+ let p1_card_x, p1_card_y;
+ let p2_card_x, p2_card_y;
+ if (l % 2 !== 0 && l > 1) {
+ let cardinality_1_point = utils.calcCardinalityPosition(
+ relation.relation.type1 !== "none",
+ path.points,
+ path.points[0]
+ );
+ let cardinality_2_point = utils.calcCardinalityPosition(
+ relation.relation.type2 !== "none",
+ path.points,
+ path.points[l - 1]
+ );
+ log.debug("cardinality_1_point " + JSON.stringify(cardinality_1_point));
+ log.debug("cardinality_2_point " + JSON.stringify(cardinality_2_point));
+ p1_card_x = cardinality_1_point.x;
+ p1_card_y = cardinality_1_point.y;
+ p2_card_x = cardinality_2_point.x;
+ p2_card_y = cardinality_2_point.y;
+ }
+ if (relation.title !== void 0) {
+ const g = elem.append("g").attr("class", "classLabel");
+ const label = g.append("text").attr("class", "label").attr("x", x).attr("y", y).attr("fill", "red").attr("text-anchor", "middle").text(relation.title);
+ window.label = label;
+ const bounds = label.node().getBBox();
+ g.insert("rect", ":first-child").attr("class", "box").attr("x", bounds.x - conf.padding / 2).attr("y", bounds.y - conf.padding / 2).attr("width", bounds.width + conf.padding).attr("height", bounds.height + conf.padding);
+ }
+ log.info("Rendering relation " + JSON.stringify(relation));
+ if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== "none") {
+ const g = elem.append("g").attr("class", "cardinality");
+ g.append("text").attr("class", "type1").attr("x", p1_card_x).attr("y", p1_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle1);
+ }
+ if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== "none") {
+ const g = elem.append("g").attr("class", "cardinality");
+ g.append("text").attr("class", "type2").attr("x", p2_card_x).attr("y", p2_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle2);
+ }
+ edgeCount++;
+};
+const drawClass = function(elem, classDef, conf, diagObj) {
+ log.debug("Rendering class ", classDef, conf);
+ const id = classDef.id;
+ const classInfo = {
+ id,
+ label: classDef.id,
+ width: 0,
+ height: 0
+ };
+ const g = elem.append("g").attr("id", diagObj.db.lookUpDomId(id)).attr("class", "classGroup");
+ let title;
+ if (classDef.link) {
+ title = g.append("svg:a").attr("xlink:href", classDef.link).attr("target", classDef.linkTarget).append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
+ } else {
+ title = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
+ }
+ let isFirst = true;
+ classDef.annotations.forEach(function(member) {
+ const titleText2 = title.append("tspan").text("«" + member + "»");
+ if (!isFirst) {
+ titleText2.attr("dy", conf.textHeight);
+ }
+ isFirst = false;
+ });
+ let classTitleString = classDef.id;
+ if (classDef.type !== void 0 && classDef.type !== "") {
+ classTitleString += "<" + classDef.type + ">";
+ }
+ const classTitle = title.append("tspan").text(classTitleString).attr("class", "title");
+ if (!isFirst) {
+ classTitle.attr("dy", conf.textHeight);
+ }
+ const titleHeight = title.node().getBBox().height;
+ const membersLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin / 2).attr("y2", conf.padding + titleHeight + conf.dividerMargin / 2);
+ const members = g.append("text").attr("x", conf.padding).attr("y", titleHeight + conf.dividerMargin + conf.textHeight).attr("fill", "white").attr("class", "classText");
+ isFirst = true;
+ classDef.members.forEach(function(member) {
+ addTspan(members, member, isFirst, conf);
+ isFirst = false;
+ });
+ const membersBox = members.node().getBBox();
+ const methodsLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr("y2", conf.padding + titleHeight + conf.dividerMargin + membersBox.height);
+ const methods = g.append("text").attr("x", conf.padding).attr("y", titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr("fill", "white").attr("class", "classText");
+ isFirst = true;
+ classDef.methods.forEach(function(method) {
+ addTspan(methods, method, isFirst, conf);
+ isFirst = false;
+ });
+ const classBox = g.node().getBBox();
+ var cssClassStr = " ";
+ if (classDef.cssClasses.length > 0) {
+ cssClassStr = cssClassStr + classDef.cssClasses.join(" ");
+ }
+ const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", classBox.width + 2 * conf.padding).attr("height", classBox.height + conf.padding + 0.5 * conf.dividerMargin).attr("class", cssClassStr);
+ const rectWidth = rect.node().getBBox().width;
+ title.node().childNodes.forEach(function(x) {
+ x.setAttribute("x", (rectWidth - x.getBBox().width) / 2);
+ });
+ if (classDef.tooltip) {
+ title.insert("title").text(classDef.tooltip);
+ }
+ membersLine.attr("x2", rectWidth);
+ methodsLine.attr("x2", rectWidth);
+ classInfo.width = rectWidth;
+ classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;
+ return classInfo;
+};
+const drawNote = function(elem, note, conf, diagObj) {
+ log.debug("Rendering note ", note, conf);
+ const id = note.id;
+ const noteInfo = {
+ id,
+ text: note.text,
+ width: 0,
+ height: 0
+ };
+ const g = elem.append("g").attr("id", id).attr("class", "classGroup");
+ let text = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
+ const lines = JSON.parse(`"${note.text}"`).split("\n");
+ lines.forEach(function(line2) {
+ log.debug(`Adding line: ${line2}`);
+ text.append("tspan").text(line2).attr("class", "title").attr("dy", conf.textHeight);
+ });
+ const noteBox = g.node().getBBox();
+ const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", noteBox.width + 2 * conf.padding).attr(
+ "height",
+ noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin
+ );
+ const rectWidth = rect.node().getBBox().width;
+ text.node().childNodes.forEach(function(x) {
+ x.setAttribute("x", (rectWidth - x.getBBox().width) / 2);
+ });
+ noteInfo.width = rectWidth;
+ noteInfo.height = noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin;
+ return noteInfo;
+};
+const parseMember = function(text) {
+ const fieldRegEx = /^([#+~-])?(\w+)(~\w+~|\[])?\s+(\w+) *([$*])?$/;
+ const methodRegEx = /^([#+|~-])?(\w+) *\( *(.*)\) *([$*])? *(\w*[[\]|~]*\s*\w*~?)$/;
+ let fieldMatch = text.match(fieldRegEx);
+ let methodMatch = text.match(methodRegEx);
+ if (fieldMatch && !methodMatch) {
+ return buildFieldDisplay(fieldMatch);
+ } else if (methodMatch) {
+ return buildMethodDisplay(methodMatch);
+ } else {
+ return buildLegacyDisplay(text);
+ }
+};
+const buildFieldDisplay = function(parsedText) {
+ let cssStyle = "";
+ let displayText = "";
+ try {
+ let visibility = parsedText[1] ? parsedText[1].trim() : "";
+ let fieldType = parsedText[2] ? parsedText[2].trim() : "";
+ let genericType = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : "";
+ let fieldName = parsedText[4] ? parsedText[4].trim() : "";
+ let classifier = parsedText[5] ? parsedText[5].trim() : "";
+ displayText = visibility + fieldType + genericType + " " + fieldName;
+ cssStyle = parseClassifier(classifier);
+ } catch (err) {
+ displayText = parsedText;
+ }
+ return {
+ displayText,
+ cssStyle
+ };
+};
+const buildMethodDisplay = function(parsedText) {
+ let cssStyle = "";
+ let displayText = "";
+ try {
+ let visibility = parsedText[1] ? parsedText[1].trim() : "";
+ let methodName = parsedText[2] ? parsedText[2].trim() : "";
+ let parameters = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : "";
+ let classifier = parsedText[4] ? parsedText[4].trim() : "";
+ let returnType = parsedText[5] ? " : " + parseGenericTypes(parsedText[5]).trim() : "";
+ displayText = visibility + methodName + "(" + parameters + ")" + returnType;
+ cssStyle = parseClassifier(classifier);
+ } catch (err) {
+ displayText = parsedText;
+ }
+ return {
+ displayText,
+ cssStyle
+ };
+};
+const buildLegacyDisplay = function(text) {
+ let displayText = "";
+ let cssStyle = "";
+ let returnType = "";
+ let methodStart = text.indexOf("(");
+ let methodEnd = text.indexOf(")");
+ if (methodStart > 1 && methodEnd > methodStart && methodEnd <= text.length) {
+ let visibility = "";
+ let methodName = "";
+ let firstChar = text.substring(0, 1);
+ if (firstChar.match(/\w/)) {
+ methodName = text.substring(0, methodStart).trim();
+ } else {
+ if (firstChar.match(/[#+~-]/)) {
+ visibility = firstChar;
+ }
+ methodName = text.substring(1, methodStart).trim();
+ }
+ const parameters = text.substring(methodStart + 1, methodEnd);
+ text.substring(methodEnd + 1, 1);
+ cssStyle = parseClassifier(text.substring(methodEnd + 1, methodEnd + 2));
+ displayText = visibility + methodName + "(" + parseGenericTypes(parameters.trim()) + ")";
+ if (methodEnd < text.length) {
+ returnType = text.substring(methodEnd + 2).trim();
+ if (returnType !== "") {
+ returnType = " : " + parseGenericTypes(returnType);
+ displayText += returnType;
+ }
+ }
+ } else {
+ displayText = parseGenericTypes(text);
+ }
+ return {
+ displayText,
+ cssStyle
+ };
+};
+const addTspan = function(textEl, txt, isFirst, conf) {
+ let member = parseMember(txt);
+ const tSpan = textEl.append("tspan").attr("x", conf.padding).text(member.displayText);
+ if (member.cssStyle !== "") {
+ tSpan.attr("style", member.cssStyle);
+ }
+ if (!isFirst) {
+ tSpan.attr("dy", conf.textHeight);
+ }
+};
+const parseClassifier = function(classifier) {
+ switch (classifier) {
+ case "*":
+ return "font-style:italic;";
+ case "$":
+ return "text-decoration:underline;";
+ default:
+ return "";
+ }
+};
+const svgDraw = {
+ drawClass,
+ drawEdge,
+ drawNote,
+ parseMember
+};
+export {
+ parseMember as p,
+ svgDraw as s
+};
+//# sourceMappingURL=svgDraw-2526cba0.js.map
diff --git a/scopegraphs-render-docs/doc/js/svgDraw-dd61ddfa.js b/scopegraphs-render-docs/doc/js/svgDraw-dd61ddfa.js
new file mode 100644
index 0000000..2f74025
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/svgDraw-dd61ddfa.js
@@ -0,0 +1,309 @@
+import { l as log, D as parseGenericTypes } from "./commonDb-89160e91.js";
+import { G as curveBasis, u as utils } from "./utils-1aebe9b6.js";
+import { l as line } from "./line-fbe8f138.js";
+let edgeCount = 0;
+const drawEdge = function(elem, path, relation, conf, diagObj) {
+ const getRelationType = function(type) {
+ switch (type) {
+ case diagObj.db.relationType.AGGREGATION:
+ return "aggregation";
+ case diagObj.db.relationType.EXTENSION:
+ return "extension";
+ case diagObj.db.relationType.COMPOSITION:
+ return "composition";
+ case diagObj.db.relationType.DEPENDENCY:
+ return "dependency";
+ case diagObj.db.relationType.LOLLIPOP:
+ return "lollipop";
+ }
+ };
+ path.points = path.points.filter((p) => !Number.isNaN(p.y));
+ const lineData = path.points;
+ const lineFunction = line().x(function(d) {
+ return d.x;
+ }).y(function(d) {
+ return d.y;
+ }).curve(curveBasis);
+ const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "relation");
+ let url = "";
+ if (conf.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ if (relation.relation.lineType == 1) {
+ svgPath.attr("class", "relation dashed-line");
+ }
+ if (relation.relation.lineType == 10) {
+ svgPath.attr("class", "relation dotted-line");
+ }
+ if (relation.relation.type1 !== "none") {
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + getRelationType(relation.relation.type1) + "Start)"
+ );
+ }
+ if (relation.relation.type2 !== "none") {
+ svgPath.attr(
+ "marker-end",
+ "url(" + url + "#" + getRelationType(relation.relation.type2) + "End)"
+ );
+ }
+ let x, y;
+ const l = path.points.length;
+ let labelPosition = utils.calcLabelPosition(path.points);
+ x = labelPosition.x;
+ y = labelPosition.y;
+ let p1_card_x, p1_card_y;
+ let p2_card_x, p2_card_y;
+ if (l % 2 !== 0 && l > 1) {
+ let cardinality_1_point = utils.calcCardinalityPosition(
+ relation.relation.type1 !== "none",
+ path.points,
+ path.points[0]
+ );
+ let cardinality_2_point = utils.calcCardinalityPosition(
+ relation.relation.type2 !== "none",
+ path.points,
+ path.points[l - 1]
+ );
+ log.debug("cardinality_1_point " + JSON.stringify(cardinality_1_point));
+ log.debug("cardinality_2_point " + JSON.stringify(cardinality_2_point));
+ p1_card_x = cardinality_1_point.x;
+ p1_card_y = cardinality_1_point.y;
+ p2_card_x = cardinality_2_point.x;
+ p2_card_y = cardinality_2_point.y;
+ }
+ if (relation.title !== void 0) {
+ const g = elem.append("g").attr("class", "classLabel");
+ const label = g.append("text").attr("class", "label").attr("x", x).attr("y", y).attr("fill", "red").attr("text-anchor", "middle").text(relation.title);
+ window.label = label;
+ const bounds = label.node().getBBox();
+ g.insert("rect", ":first-child").attr("class", "box").attr("x", bounds.x - conf.padding / 2).attr("y", bounds.y - conf.padding / 2).attr("width", bounds.width + conf.padding).attr("height", bounds.height + conf.padding);
+ }
+ log.info("Rendering relation " + JSON.stringify(relation));
+ if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== "none") {
+ const g = elem.append("g").attr("class", "cardinality");
+ g.append("text").attr("class", "type1").attr("x", p1_card_x).attr("y", p1_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle1);
+ }
+ if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== "none") {
+ const g = elem.append("g").attr("class", "cardinality");
+ g.append("text").attr("class", "type2").attr("x", p2_card_x).attr("y", p2_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle2);
+ }
+ edgeCount++;
+};
+const drawClass = function(elem, classDef, conf, diagObj) {
+ log.debug("Rendering class ", classDef, conf);
+ const id = classDef.id;
+ const classInfo = {
+ id,
+ label: classDef.id,
+ width: 0,
+ height: 0
+ };
+ const g = elem.append("g").attr("id", diagObj.db.lookUpDomId(id)).attr("class", "classGroup");
+ let title;
+ if (classDef.link) {
+ title = g.append("svg:a").attr("xlink:href", classDef.link).attr("target", classDef.linkTarget).append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
+ } else {
+ title = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
+ }
+ let isFirst = true;
+ classDef.annotations.forEach(function(member) {
+ const titleText2 = title.append("tspan").text("«" + member + "»");
+ if (!isFirst) {
+ titleText2.attr("dy", conf.textHeight);
+ }
+ isFirst = false;
+ });
+ let classTitleString = classDef.id;
+ if (classDef.type !== void 0 && classDef.type !== "") {
+ classTitleString += "<" + classDef.type + ">";
+ }
+ const classTitle = title.append("tspan").text(classTitleString).attr("class", "title");
+ if (!isFirst) {
+ classTitle.attr("dy", conf.textHeight);
+ }
+ const titleHeight = title.node().getBBox().height;
+ const membersLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin / 2).attr("y2", conf.padding + titleHeight + conf.dividerMargin / 2);
+ const members = g.append("text").attr("x", conf.padding).attr("y", titleHeight + conf.dividerMargin + conf.textHeight).attr("fill", "white").attr("class", "classText");
+ isFirst = true;
+ classDef.members.forEach(function(member) {
+ addTspan(members, member, isFirst, conf);
+ isFirst = false;
+ });
+ const membersBox = members.node().getBBox();
+ const methodsLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr("y2", conf.padding + titleHeight + conf.dividerMargin + membersBox.height);
+ const methods = g.append("text").attr("x", conf.padding).attr("y", titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr("fill", "white").attr("class", "classText");
+ isFirst = true;
+ classDef.methods.forEach(function(method) {
+ addTspan(methods, method, isFirst, conf);
+ isFirst = false;
+ });
+ const classBox = g.node().getBBox();
+ var cssClassStr = " ";
+ if (classDef.cssClasses.length > 0) {
+ cssClassStr = cssClassStr + classDef.cssClasses.join(" ");
+ }
+ const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", classBox.width + 2 * conf.padding).attr("height", classBox.height + conf.padding + 0.5 * conf.dividerMargin).attr("class", cssClassStr);
+ const rectWidth = rect.node().getBBox().width;
+ title.node().childNodes.forEach(function(x) {
+ x.setAttribute("x", (rectWidth - x.getBBox().width) / 2);
+ });
+ if (classDef.tooltip) {
+ title.insert("title").text(classDef.tooltip);
+ }
+ membersLine.attr("x2", rectWidth);
+ methodsLine.attr("x2", rectWidth);
+ classInfo.width = rectWidth;
+ classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;
+ return classInfo;
+};
+const drawNote = function(elem, note, conf, diagObj) {
+ log.debug("Rendering note ", note, conf);
+ const id = note.id;
+ const noteInfo = {
+ id,
+ text: note.text,
+ width: 0,
+ height: 0
+ };
+ const g = elem.append("g").attr("id", id).attr("class", "classGroup");
+ let text = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
+ const lines = JSON.parse(`"${note.text}"`).split("\n");
+ lines.forEach(function(line2) {
+ log.debug(`Adding line: ${line2}`);
+ text.append("tspan").text(line2).attr("class", "title").attr("dy", conf.textHeight);
+ });
+ const noteBox = g.node().getBBox();
+ const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", noteBox.width + 2 * conf.padding).attr(
+ "height",
+ noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin
+ );
+ const rectWidth = rect.node().getBBox().width;
+ text.node().childNodes.forEach(function(x) {
+ x.setAttribute("x", (rectWidth - x.getBBox().width) / 2);
+ });
+ noteInfo.width = rectWidth;
+ noteInfo.height = noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin;
+ return noteInfo;
+};
+const parseMember = function(text) {
+ const fieldRegEx = /^([#+~-])?(\w+)(~\w+~|\[])?\s+(\w+) *([$*])?$/;
+ const methodRegEx = /^([#+|~-])?(\w+) *\( *(.*)\) *([$*])? *(\w*[[\]|~]*\s*\w*~?)$/;
+ let fieldMatch = text.match(fieldRegEx);
+ let methodMatch = text.match(methodRegEx);
+ if (fieldMatch && !methodMatch) {
+ return buildFieldDisplay(fieldMatch);
+ } else if (methodMatch) {
+ return buildMethodDisplay(methodMatch);
+ } else {
+ return buildLegacyDisplay(text);
+ }
+};
+const buildFieldDisplay = function(parsedText) {
+ let cssStyle = "";
+ let displayText = "";
+ try {
+ let visibility = parsedText[1] ? parsedText[1].trim() : "";
+ let fieldType = parsedText[2] ? parsedText[2].trim() : "";
+ let genericType = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : "";
+ let fieldName = parsedText[4] ? parsedText[4].trim() : "";
+ let classifier = parsedText[5] ? parsedText[5].trim() : "";
+ displayText = visibility + fieldType + genericType + " " + fieldName;
+ cssStyle = parseClassifier(classifier);
+ } catch (err) {
+ displayText = parsedText;
+ }
+ return {
+ displayText,
+ cssStyle
+ };
+};
+const buildMethodDisplay = function(parsedText) {
+ let cssStyle = "";
+ let displayText = "";
+ try {
+ let visibility = parsedText[1] ? parsedText[1].trim() : "";
+ let methodName = parsedText[2] ? parsedText[2].trim() : "";
+ let parameters = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : "";
+ let classifier = parsedText[4] ? parsedText[4].trim() : "";
+ let returnType = parsedText[5] ? " : " + parseGenericTypes(parsedText[5]).trim() : "";
+ displayText = visibility + methodName + "(" + parameters + ")" + returnType;
+ cssStyle = parseClassifier(classifier);
+ } catch (err) {
+ displayText = parsedText;
+ }
+ return {
+ displayText,
+ cssStyle
+ };
+};
+const buildLegacyDisplay = function(text) {
+ let displayText = "";
+ let cssStyle = "";
+ let returnType = "";
+ let methodStart = text.indexOf("(");
+ let methodEnd = text.indexOf(")");
+ if (methodStart > 1 && methodEnd > methodStart && methodEnd <= text.length) {
+ let visibility = "";
+ let methodName = "";
+ let firstChar = text.substring(0, 1);
+ if (firstChar.match(/\w/)) {
+ methodName = text.substring(0, methodStart).trim();
+ } else {
+ if (firstChar.match(/[#+~-]/)) {
+ visibility = firstChar;
+ }
+ methodName = text.substring(1, methodStart).trim();
+ }
+ const parameters = text.substring(methodStart + 1, methodEnd);
+ text.substring(methodEnd + 1, 1);
+ cssStyle = parseClassifier(text.substring(methodEnd + 1, methodEnd + 2));
+ displayText = visibility + methodName + "(" + parseGenericTypes(parameters.trim()) + ")";
+ if (methodEnd < text.length) {
+ returnType = text.substring(methodEnd + 2).trim();
+ if (returnType !== "") {
+ returnType = " : " + parseGenericTypes(returnType);
+ displayText += returnType;
+ }
+ }
+ } else {
+ displayText = parseGenericTypes(text);
+ }
+ return {
+ displayText,
+ cssStyle
+ };
+};
+const addTspan = function(textEl, txt, isFirst, conf) {
+ let member = parseMember(txt);
+ const tSpan = textEl.append("tspan").attr("x", conf.padding).text(member.displayText);
+ if (member.cssStyle !== "") {
+ tSpan.attr("style", member.cssStyle);
+ }
+ if (!isFirst) {
+ tSpan.attr("dy", conf.textHeight);
+ }
+};
+const parseClassifier = function(classifier) {
+ switch (classifier) {
+ case "*":
+ return "font-style:italic;";
+ case "$":
+ return "text-decoration:underline;";
+ default:
+ return "";
+ }
+};
+const svgDraw = {
+ drawClass,
+ drawEdge,
+ drawNote,
+ parseMember
+};
+export {
+ parseMember as p,
+ svgDraw as s
+};
+//# sourceMappingURL=svgDraw-dd61ddfa.js.map
diff --git a/scopegraphs-render-docs/doc/js/timeline-definition-472c301b.js b/scopegraphs-render-docs/doc/js/timeline-definition-472c301b.js
new file mode 100644
index 0000000..ae0fa55
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/timeline-definition-472c301b.js
@@ -0,0 +1,1253 @@
+import { p as parseDirective$1, B as setupGraphViewbox } from "./utils-1aebe9b6.js";
+import { c as commonDb, A as clear$1, h as select, g as getConfig, l as log, U as lighten, V as darken } from "./commonDb-89160e91.js";
+import { d as d3arc } from "./arc-c50f0902.js";
+import { i as isDark } from "./is_dark-b77964f3.js";
+import "./constant-b644328d.js";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 27], $Vb = [4, 6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "timeline": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "title": 17, "acc_title": 18, "acc_title_value": 19, "acc_descr": 20, "acc_descr_value": 21, "acc_descr_multiline_value": 22, "section": 23, "period_statement": 24, "event_statement": 25, "period": 26, "event": 27, "open_directive": 28, "type_directive": 29, "arg_directive": 30, "close_directive": 31, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "timeline", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 26: "period", 27: "event", 28: "open_directive", 29: "type_directive", 30: "arg_directive", 31: "close_directive" },
+ productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [24, 1], [25, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return $$[$0 - 1];
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = $$[$0];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 11:
+ yy.getCommonDb().setDiagramTitle($$[$0].substr(6));
+ this.$ = $$[$0].substr(6);
+ break;
+ case 12:
+ this.$ = $$[$0].trim();
+ yy.getCommonDb().setAccTitle(this.$);
+ break;
+ case 13:
+ case 14:
+ this.$ = $$[$0].trim();
+ yy.getCommonDb().setAccDescription(this.$);
+ break;
+ case 15:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 19:
+ yy.addTask($$[$0], 0, "");
+ this.$ = $$[$0];
+ break;
+ case 20:
+ yy.addEvent($$[$0].substr(2));
+ this.$ = $$[$0];
+ break;
+ case 21:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 22:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 23:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 24:
+ yy.parseDirective("}%%", "close_directive", "timeline");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 13: 8, 29: [1, 9] }, { 29: [2, 21] }, { 6: [1, 10], 7: 22, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, { 1: [2, 2] }, { 14: 25, 15: [1, 26], 31: $Va }, o([15, 31], [2, 22]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 22, 10: 28, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 29] }, { 21: [1, 30] }, o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 20]), { 11: [1, 31] }, { 16: 32, 30: [1, 33] }, { 11: [2, 24] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($Vb, [2, 9]), { 14: 34, 31: $Va }, { 31: [2, 23] }, { 11: [1, 35] }, o($Vb, [2, 10])],
+ defaultActions: { 5: [2, 21], 7: [2, 2], 27: [2, 24], 33: [2, 23] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 28;
+ case 1:
+ this.begin("type_directive");
+ return 29;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 15;
+ case 3:
+ this.popState();
+ this.popState();
+ return 31;
+ case 4:
+ return 30;
+ case 5:
+ break;
+ case 6:
+ break;
+ case 7:
+ return 11;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ return 4;
+ case 11:
+ return 17;
+ case 12:
+ this.begin("acc_title");
+ return 18;
+ case 13:
+ this.popState();
+ return "acc_title_value";
+ case 14:
+ this.begin("acc_descr");
+ return 20;
+ case 15:
+ this.popState();
+ return "acc_descr_value";
+ case 16:
+ this.begin("acc_descr_multiline");
+ break;
+ case 17:
+ this.popState();
+ break;
+ case 18:
+ return "acc_descr_multiline_value";
+ case 19:
+ return 23;
+ case 20:
+ return 27;
+ case 21:
+ return 26;
+ case 22:
+ return 6;
+ case 23:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?::\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "open_directive": { "rules": [1], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+let currentSection = "";
+let currentTaskId = 0;
+const sections = [];
+const tasks = [];
+const rawTasks = [];
+const getCommonDb = () => commonDb;
+const parseDirective = (statement, context, type) => {
+ parseDirective$1(globalThis, statement, context, type);
+};
+const clear = function() {
+ sections.length = 0;
+ tasks.length = 0;
+ currentSection = "";
+ rawTasks.length = 0;
+ clear$1();
+};
+const addSection = function(txt) {
+ currentSection = txt;
+ sections.push(txt);
+};
+const getSections = function() {
+ return sections;
+};
+const getTasks = function() {
+ let allItemsProcessed = compileTasks();
+ const maxDepth = 100;
+ let iterationCount = 0;
+ while (!allItemsProcessed && iterationCount < maxDepth) {
+ allItemsProcessed = compileTasks();
+ iterationCount++;
+ }
+ tasks.push(...rawTasks);
+ return tasks;
+};
+const addTask = function(period, length, event) {
+ const rawTask = {
+ id: currentTaskId++,
+ section: currentSection,
+ type: currentSection,
+ task: period,
+ score: length ? length : 0,
+ //if event is defined, then add it the events array
+ events: event ? [event] : []
+ };
+ rawTasks.push(rawTask);
+};
+const addEvent = function(event) {
+ const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1);
+ currentTask.events.push(event);
+};
+const addTaskOrg = function(descr) {
+ const newTask = {
+ section: currentSection,
+ type: currentSection,
+ description: descr,
+ task: descr,
+ classes: []
+ };
+ tasks.push(newTask);
+};
+const compileTasks = function() {
+ const compileTask = function(pos) {
+ return rawTasks[pos].processed;
+ };
+ let allProcessed = true;
+ for (const [i, rawTask] of rawTasks.entries()) {
+ compileTask(i);
+ allProcessed = allProcessed && rawTask.processed;
+ }
+ return allProcessed;
+};
+const timelineDb = {
+ clear,
+ getCommonDb,
+ addSection,
+ getSections,
+ getTasks,
+ addTask,
+ addTaskOrg,
+ addEvent,
+ parseDirective
+};
+const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ addEvent,
+ addSection,
+ addTask,
+ addTaskOrg,
+ clear,
+ default: timelineDb,
+ getCommonDb,
+ getSections,
+ getTasks,
+ parseDirective
+}, Symbol.toStringTag, { value: "Module" }));
+const MAX_SECTIONS = 12;
+const drawRect = function(elem, rectData) {
+ const rectElem = elem.append("rect");
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.y);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", rectData.width);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (rectData.class !== void 0) {
+ rectElem.attr("class", rectData.class);
+ }
+ return rectElem;
+};
+const drawFace = function(element, faceData) {
+ const radius = 15;
+ const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible");
+ const face = element.append("g");
+ face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ function smile(face2) {
+ const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
+ }
+ function sad(face2) {
+ const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
+ }
+ function ambivalent(face2) {
+ face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
+ }
+ if (faceData.score > 3) {
+ smile(face);
+ } else if (faceData.score < 3) {
+ sad(face);
+ } else {
+ ambivalent(face);
+ }
+ return circleElement;
+};
+const drawCircle = function(element, circleData) {
+ const circleElement = element.append("circle");
+ circleElement.attr("cx", circleData.cx);
+ circleElement.attr("cy", circleData.cy);
+ circleElement.attr("class", "actor-" + circleData.pos);
+ circleElement.attr("fill", circleData.fill);
+ circleElement.attr("stroke", circleData.stroke);
+ circleElement.attr("r", circleData.r);
+ if (circleElement.class !== void 0) {
+ circleElement.attr("class", circleElement.class);
+ }
+ if (circleData.title !== void 0) {
+ circleElement.append("title").text(circleData.title);
+ }
+ return circleElement;
+};
+const drawText = function(elem, textData) {
+ const nText = textData.text.replace(/
/gi, " ");
+ const textElem = elem.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", textData.y);
+ textElem.attr("class", "legend");
+ textElem.style("text-anchor", textData.anchor);
+ if (textData.class !== void 0) {
+ textElem.attr("class", textData.class);
+ }
+ const span = textElem.append("tspan");
+ span.attr("x", textData.x + textData.textMargin * 2);
+ span.text(nText);
+ return textElem;
+};
+const drawLabel = function(elem, txtObject) {
+ function genPoints(x, y, width, height, cut) {
+ return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height);
+ }
+ const polygon = elem.append("polygon");
+ polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
+ polygon.attr("class", "labelBox");
+ txtObject.y = txtObject.y + txtObject.labelMargin;
+ txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
+ drawText(elem, txtObject);
+};
+const drawSection = function(elem, section, conf) {
+ const g = elem.append("g");
+ const rect = getNoteRect();
+ rect.x = section.x;
+ rect.y = section.y;
+ rect.fill = section.fill;
+ rect.width = conf.width;
+ rect.height = conf.height;
+ rect.class = "journey-section section-type-" + section.num;
+ rect.rx = 3;
+ rect.ry = 3;
+ drawRect(g, rect);
+ _drawTextCandidateFunc(conf)(
+ section.text,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "journey-section section-type-" + section.num },
+ conf,
+ section.colour
+ );
+};
+let taskCount = -1;
+const drawTask = function(elem, task, conf) {
+ const center = task.x + conf.width / 2;
+ const g = elem.append("g");
+ taskCount++;
+ const maxHeight = 300 + 5 * 30;
+ g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
+ drawFace(g, {
+ cx: center,
+ cy: 300 + (5 - task.score) * 30,
+ score: task.score
+ });
+ const rect = getNoteRect();
+ rect.x = task.x;
+ rect.y = task.y;
+ rect.fill = task.fill;
+ rect.width = conf.width;
+ rect.height = conf.height;
+ rect.class = "task task-type-" + task.num;
+ rect.rx = 3;
+ rect.ry = 3;
+ drawRect(g, rect);
+ task.x + 14;
+ _drawTextCandidateFunc(conf)(
+ task.task,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "task" },
+ conf,
+ task.colour
+ );
+};
+const drawBackgroundRect = function(elem, bounds) {
+ const rectElem = drawRect(elem, {
+ x: bounds.startx,
+ y: bounds.starty,
+ width: bounds.stopx - bounds.startx,
+ height: bounds.stopy - bounds.starty,
+ fill: bounds.fill,
+ class: "rect"
+ });
+ rectElem.lower();
+};
+const getTextObj = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ "text-anchor": "start",
+ width: 100,
+ height: 100,
+ textMargin: 0,
+ rx: 0,
+ ry: 0
+ };
+};
+const getNoteRect = function() {
+ return {
+ x: 0,
+ y: 0,
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+};
+const _drawTextCandidateFunc = function() {
+ function byText(content, g, x, y, width, height, textAttrs, colour) {
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text, textAttrs);
+ }
+ function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) {
+ const { taskFontSize, taskFontFamily } = conf;
+ const lines = content.split(/
/gi);
+ for (let i = 0; i < lines.length; i++) {
+ const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
+ text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]);
+ text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text, textAttrs);
+ }
+ }
+ function byFo(content, g, x, y, width, height, textAttrs, conf) {
+ const body = g.append("switch");
+ const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed");
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, body, x, y, width, height, textAttrs, conf);
+ _setTextAttrs(text, textAttrs);
+ }
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (key in fromTextAttrsDict) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ return function(conf) {
+ return conf.textPlacement === "fo" ? byFo : conf.textPlacement === "old" ? byText : byTspan;
+ };
+}();
+const initGraphics = function(graphics) {
+ graphics.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");
+};
+function wrap(text, width) {
+ text.each(function() {
+ var text2 = select(this), words = text2.text().split(/(\s+|
)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr("y"), dy = parseFloat(text2.attr("dy")), tspan = text2.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", dy + "em");
+ for (let j = 0; j < words.length; j++) {
+ word = words[words.length - 1 - j];
+ line.push(word);
+ tspan.text(line.join(" ").trim());
+ if (tspan.node().getComputedTextLength() > width || word === "
") {
+ line.pop();
+ tspan.text(line.join(" ").trim());
+ if (word === "
") {
+ line = [""];
+ } else {
+ line = [word];
+ }
+ tspan = text2.append("tspan").attr("x", 0).attr("y", y).attr("dy", lineHeight + "em").text(word);
+ }
+ }
+ });
+}
+const drawNode = function(elem, node, fullSection, conf) {
+ const section = fullSection % MAX_SECTIONS - 1;
+ const nodeElem = elem.append("g");
+ node.section = section;
+ nodeElem.attr(
+ "class",
+ (node.class ? node.class + " " : "") + "timeline-node " + ("section-" + section)
+ );
+ const bkgElem = nodeElem.append("g");
+ const textElem = nodeElem.append("g");
+ const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width);
+ const bbox = txt.node().getBBox();
+ const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize;
+ node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;
+ node.height = Math.max(node.height, node.maxHeight);
+ node.width = node.width + 2 * node.padding;
+ textElem.attr("transform", "translate(" + node.width / 2 + ", " + node.padding / 2 + ")");
+ defaultBkg(bkgElem, node, section);
+ return node;
+};
+const getVirtualNodeHeight = function(elem, node, conf) {
+ const textElem = elem.append("g");
+ const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width);
+ const bbox = txt.node().getBBox();
+ const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize;
+ textElem.remove();
+ return bbox.height + fontSize * 1.1 * 0.5 + node.padding;
+};
+const defaultBkg = function(elem, node, section) {
+ const rd = 5;
+ elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + node.type).attr(
+ "d",
+ `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`
+ );
+ elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height);
+};
+const svgDraw = {
+ drawRect,
+ drawCircle,
+ drawSection,
+ drawText,
+ drawLabel,
+ drawTask,
+ drawBackgroundRect,
+ getTextObj,
+ getNoteRect,
+ initGraphics,
+ drawNode,
+ getVirtualNodeHeight
+};
+const draw = function(text, id, version, diagObj) {
+ var _a, _b, _c, _d;
+ const conf = getConfig();
+ const LEFT_MARGIN = conf.leftMargin ?? 50;
+ (_b = (_a = diagObj.db).clear) == null ? void 0 : _b.call(_a);
+ diagObj.parser.parse(text + "\n");
+ log.debug("timeline", diagObj.db);
+ const securityLevel = conf.securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? (
+ // @ts-ignore d3 types are wrong
+ select(sandboxElement.nodes()[0].contentDocument.body)
+ ) : select("body");
+ const svg = root.select("#" + id);
+ svg.append("g");
+ const tasks2 = diagObj.db.getTasks();
+ const title = diagObj.db.getCommonDb().getDiagramTitle();
+ log.debug("task", tasks2);
+ svgDraw.initGraphics(svg);
+ const sections2 = diagObj.db.getSections();
+ log.debug("sections", sections2);
+ let maxSectionHeight = 0;
+ let maxTaskHeight = 0;
+ let depthY = 0;
+ let sectionBeginY = 0;
+ let masterX = 50 + LEFT_MARGIN;
+ let masterY = 50;
+ sectionBeginY = 50;
+ let sectionNumber = 0;
+ let hasSections = true;
+ sections2.forEach(function(section) {
+ const sectionNode = {
+ number: sectionNumber,
+ descr: section,
+ section: sectionNumber,
+ width: 150,
+ padding: 20,
+ maxHeight: maxSectionHeight
+ };
+ const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf);
+ log.debug("sectionHeight before draw", sectionHeight);
+ maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20);
+ });
+ let maxEventCount = 0;
+ let maxEventLineLength = 0;
+ log.debug("tasks.length", tasks2.length);
+ for (const [i, task] of tasks2.entries()) {
+ const taskNode = {
+ number: i,
+ descr: task,
+ section: task.section,
+ width: 150,
+ padding: 20,
+ maxHeight: maxTaskHeight
+ };
+ const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf);
+ log.debug("taskHeight before draw", taskHeight);
+ maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);
+ maxEventCount = Math.max(maxEventCount, task.events.length);
+ let maxEventLineLengthTemp = 0;
+ for (let j = 0; j < task.events.length; j++) {
+ const event = task.events[j];
+ const eventNode = {
+ descr: event,
+ section: task.section,
+ number: task.section,
+ width: 150,
+ padding: 20,
+ maxHeight: 50
+ };
+ maxEventLineLengthTemp += svgDraw.getVirtualNodeHeight(svg, eventNode, conf);
+ }
+ maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);
+ }
+ log.debug("maxSectionHeight before draw", maxSectionHeight);
+ log.debug("maxTaskHeight before draw", maxTaskHeight);
+ if (sections2 && sections2.length > 0) {
+ sections2.forEach((section) => {
+ const tasksForSection = tasks2.filter((task) => task.section === section);
+ const sectionNode = {
+ number: sectionNumber,
+ descr: section,
+ section: sectionNumber,
+ width: 200 * Math.max(tasksForSection.length, 1) - 50,
+ padding: 20,
+ maxHeight: maxSectionHeight
+ };
+ log.debug("sectionNode", sectionNode);
+ const sectionNodeWrapper = svg.append("g");
+ const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);
+ log.debug("sectionNode output", node);
+ sectionNodeWrapper.attr("transform", `translate(${masterX}, ${sectionBeginY})`);
+ masterY += maxSectionHeight + 50;
+ if (tasksForSection.length > 0) {
+ drawTasks(
+ svg,
+ tasksForSection,
+ sectionNumber,
+ masterX,
+ masterY,
+ maxTaskHeight,
+ conf,
+ maxEventCount,
+ maxEventLineLength,
+ maxSectionHeight,
+ false
+ );
+ }
+ masterX += 200 * Math.max(tasksForSection.length, 1);
+ masterY = sectionBeginY;
+ sectionNumber++;
+ });
+ } else {
+ hasSections = false;
+ drawTasks(
+ svg,
+ tasks2,
+ sectionNumber,
+ masterX,
+ masterY,
+ maxTaskHeight,
+ conf,
+ maxEventCount,
+ maxEventLineLength,
+ maxSectionHeight,
+ true
+ );
+ }
+ const box = svg.node().getBBox();
+ log.debug("bounds", box);
+ if (title) {
+ svg.append("text").text(title).attr("x", box.width / 2 - LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20);
+ }
+ depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;
+ const lineWrapper = svg.append("g").attr("class", "lineWrapper");
+ lineWrapper.append("line").attr("x1", LEFT_MARGIN).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
+ setupGraphViewbox(
+ void 0,
+ svg,
+ ((_c = conf.timeline) == null ? void 0 : _c.padding) ?? 50,
+ ((_d = conf.timeline) == null ? void 0 : _d.useMaxWidth) ?? false
+ );
+};
+const drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) {
+ var _a;
+ for (const task of tasks2) {
+ const taskNode = {
+ descr: task.task,
+ section: sectionColor,
+ number: sectionColor,
+ width: 150,
+ padding: 20,
+ maxHeight: maxTaskHeight
+ };
+ log.debug("taskNode", taskNode);
+ const taskWrapper = diagram2.append("g").attr("class", "taskWrapper");
+ const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf);
+ const taskHeight = node.height;
+ log.debug("taskHeight after draw", taskHeight);
+ taskWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
+ maxTaskHeight = Math.max(maxTaskHeight, taskHeight);
+ if (task.events) {
+ const lineWrapper = diagram2.append("g").attr("class", "lineWrapper");
+ let lineLength = maxTaskHeight;
+ masterY += 100;
+ lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf);
+ masterY -= 100;
+ lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr(
+ "y2",
+ masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120
+ ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5");
+ }
+ masterX = masterX + 200;
+ if (isWithoutSections && !((_a = conf.timeline) == null ? void 0 : _a.disableMulticolor)) {
+ sectionColor++;
+ }
+ }
+ masterY = masterY - 10;
+};
+const drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf) {
+ let maxEventHeight = 0;
+ const eventBeginY = masterY;
+ masterY = masterY + 100;
+ for (const event of events) {
+ const eventNode = {
+ descr: event,
+ section: sectionColor,
+ number: sectionColor,
+ width: 150,
+ padding: 20,
+ maxHeight: 50
+ };
+ log.debug("eventNode", eventNode);
+ const eventWrapper = diagram2.append("g").attr("class", "eventWrapper");
+ const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf);
+ const eventHeight = node.height;
+ maxEventHeight = maxEventHeight + eventHeight;
+ eventWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
+ masterY = masterY + 10 + eventHeight;
+ }
+ masterY = eventBeginY;
+ return maxEventHeight;
+};
+const renderer = {
+ setConf: () => {
+ },
+ draw
+};
+const genSections = (options) => {
+ let sections2 = "";
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
+ options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i];
+ if (isDark(options["lineColor" + i])) {
+ options["lineColor" + i] = lighten(options["lineColor" + i], 20);
+ } else {
+ options["lineColor" + i] = darken(options["lineColor" + i], 20);
+ }
+ }
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
+ const sw = "" + (17 - 3 * i);
+ sections2 += `
+ .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path {
+ fill: ${options["cScale" + i]};
+ }
+ .section-${i - 1} text {
+ fill: ${options["cScaleLabel" + i]};
+ }
+ .node-icon-${i - 1} {
+ font-size: 40px;
+ color: ${options["cScaleLabel" + i]};
+ }
+ .section-edge-${i - 1}{
+ stroke: ${options["cScale" + i]};
+ }
+ .edge-depth-${i - 1}{
+ stroke-width: ${sw};
+ }
+ .section-${i - 1} line {
+ stroke: ${options["cScaleInv" + i]} ;
+ stroke-width: 3;
+ }
+
+ .lineWrapper line{
+ stroke: ${options["cScaleLabel" + i]} ;
+ }
+
+ .disabled, .disabled circle, .disabled text {
+ fill: lightgray;
+ }
+ .disabled text {
+ fill: #efefef;
+ }
+ `;
+ }
+ return sections2;
+};
+const getStyles = (options) => `
+ .edge {
+ stroke-width: 3;
+ }
+ ${genSections(options)}
+ .section-root rect, .section-root path, .section-root circle {
+ fill: ${options.git0};
+ }
+ .section-root text {
+ fill: ${options.gitBranchLabel0};
+ }
+ .icon-container {
+ height:100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .edge {
+ fill: none;
+ }
+ .eventWrapper {
+ filter: brightness(120%);
+ }
+`;
+const styles = getStyles;
+const diagram = {
+ db,
+ renderer,
+ parser: parser$1,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=timeline-definition-472c301b.js.map
diff --git a/scopegraphs-render-docs/doc/js/timeline-definition-de69aca6.js b/scopegraphs-render-docs/doc/js/timeline-definition-de69aca6.js
new file mode 100644
index 0000000..408451e
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/timeline-definition-de69aca6.js
@@ -0,0 +1,1256 @@
+import { p as parseDirective$1, s as setupGraphViewbox } from "./utils-d622194a.js";
+import { c as commonDb, y as clear$1, g as getConfig, l as log } from "./commonDb-573409be.js";
+import { select, arc } from "d3";
+import { isDark, lighten, darken } from "khroma";
+import "@braintree/sanitize-url";
+import "lodash-es/memoize.js";
+import "dompurify";
+import "dayjs";
+var parser = function() {
+ var o = function(k, v, o2, l) {
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
+ ;
+ return o2;
+ }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 27], $Vb = [4, 6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28];
+ var parser2 = {
+ trace: function trace() {
+ },
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "timeline": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "title": 17, "acc_title": 18, "acc_title_value": 19, "acc_descr": 20, "acc_descr_value": 21, "acc_descr_multiline_value": 22, "section": 23, "period_statement": 24, "event_statement": 25, "period": 26, "event": 27, "open_directive": 28, "type_directive": 29, "arg_directive": 30, "close_directive": 31, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "timeline", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 26: "period", 27: "event", 28: "open_directive", 29: "type_directive", 30: "arg_directive", 31: "close_directive" },
+ productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [24, 1], [25, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return $$[$0 - 1];
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = $$[$0];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 11:
+ yy.getCommonDb().setDiagramTitle($$[$0].substr(6));
+ this.$ = $$[$0].substr(6);
+ break;
+ case 12:
+ this.$ = $$[$0].trim();
+ yy.getCommonDb().setAccTitle(this.$);
+ break;
+ case 13:
+ case 14:
+ this.$ = $$[$0].trim();
+ yy.getCommonDb().setAccDescription(this.$);
+ break;
+ case 15:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 19:
+ yy.addTask($$[$0], 0, "");
+ this.$ = $$[$0];
+ break;
+ case 20:
+ yy.addEvent($$[$0].substr(2));
+ this.$ = $$[$0];
+ break;
+ case 21:
+ yy.parseDirective("%%{", "open_directive");
+ break;
+ case 22:
+ yy.parseDirective($$[$0], "type_directive");
+ break;
+ case 23:
+ $$[$0] = $$[$0].trim().replace(/'/g, '"');
+ yy.parseDirective($$[$0], "arg_directive");
+ break;
+ case 24:
+ yy.parseDirective("}%%", "close_directive", "timeline");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 13: 8, 29: [1, 9] }, { 29: [2, 21] }, { 6: [1, 10], 7: 22, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, { 1: [2, 2] }, { 14: 25, 15: [1, 26], 31: $Va }, o([15, 31], [2, 22]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 22, 10: 28, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 29] }, { 21: [1, 30] }, o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 20]), { 11: [1, 31] }, { 16: 32, 30: [1, 33] }, { 11: [2, 24] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($Vb, [2, 9]), { 14: 34, 31: $Va }, { 31: [2, 23] }, { 11: [1, 35] }, o($Vb, [2, 10])],
+ defaultActions: { 5: [2, 21], 7: [2, 2], 27: [2, 24], 33: [2, 23] },
+ parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer2 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+ lexer2.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer2;
+ sharedState.yy.parser = this;
+ if (typeof lexer2.yylloc == "undefined") {
+ lexer2.yylloc = {};
+ }
+ var yyloc = lexer2.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer2.options && lexer2.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function lex() {
+ var token;
+ token = tstack.pop() || lexer2.lex() || EOF;
+ if (typeof token !== "number") {
+ if (token instanceof Array) {
+ tstack = token;
+ token = tstack.pop();
+ }
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ }
+ if (lexer2.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer2.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer2.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer2.yytext);
+ lstack.push(lexer2.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ {
+ yyleng = lexer2.yyleng;
+ yytext = lexer2.yytext;
+ yylineno = lexer2.yylineno;
+ yyloc = lexer2.yylloc;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ var lexer = function() {
+ var lexer2 = {
+ EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ // resets the lexer, sets new input
+ setInput: function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ 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
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = 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);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ this._more = true;
+ return this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return 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
+ });
+ }
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(n) {
+ this.unput(this.match.slice(n));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(match, indexed_rule) {
+ var token, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ 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
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false;
+ }
+ return false;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token, match, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+ // return next match that has a token
+ lex: function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+ // alias for begin(condition)
+ pushState: function pushState(condition) {
+ this.begin(condition);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function stateStackSize() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": true },
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return 28;
+ case 1:
+ this.begin("type_directive");
+ return 29;
+ case 2:
+ this.popState();
+ this.begin("arg_directive");
+ return 15;
+ case 3:
+ this.popState();
+ this.popState();
+ return 31;
+ case 4:
+ return 30;
+ case 5:
+ break;
+ case 6:
+ break;
+ case 7:
+ return 11;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ return 4;
+ case 11:
+ return 17;
+ case 12:
+ this.begin("acc_title");
+ return 18;
+ case 13:
+ this.popState();
+ return "acc_title_value";
+ case 14:
+ this.begin("acc_descr");
+ return 20;
+ case 15:
+ this.popState();
+ return "acc_descr_value";
+ case 16:
+ this.begin("acc_descr_multiline");
+ break;
+ case 17:
+ this.popState();
+ break;
+ case 18:
+ return "acc_descr_multiline_value";
+ case 19:
+ return 23;
+ case 20:
+ return 27;
+ case 21:
+ return 26;
+ case 22:
+ return 6;
+ case 23:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?::\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "open_directive": { "rules": [1], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23], "inclusive": true } }
+ };
+ return lexer2;
+ }();
+ parser2.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }
+ Parser.prototype = parser2;
+ parser2.Parser = Parser;
+ return new Parser();
+}();
+parser.parser = parser;
+const parser$1 = parser;
+let currentSection = "";
+let currentTaskId = 0;
+const sections = [];
+const tasks = [];
+const rawTasks = [];
+const getCommonDb = () => commonDb;
+const parseDirective = (statement, context, type) => {
+ parseDirective$1(globalThis, statement, context, type);
+};
+const clear = function() {
+ sections.length = 0;
+ tasks.length = 0;
+ currentSection = "";
+ rawTasks.length = 0;
+ clear$1();
+};
+const addSection = function(txt) {
+ currentSection = txt;
+ sections.push(txt);
+};
+const getSections = function() {
+ return sections;
+};
+const getTasks = function() {
+ let allItemsProcessed = compileTasks();
+ const maxDepth = 100;
+ let iterationCount = 0;
+ while (!allItemsProcessed && iterationCount < maxDepth) {
+ allItemsProcessed = compileTasks();
+ iterationCount++;
+ }
+ tasks.push(...rawTasks);
+ return tasks;
+};
+const addTask = function(period, length, event) {
+ const rawTask = {
+ id: currentTaskId++,
+ section: currentSection,
+ type: currentSection,
+ task: period,
+ score: length ? length : 0,
+ //if event is defined, then add it the events array
+ events: event ? [event] : []
+ };
+ rawTasks.push(rawTask);
+};
+const addEvent = function(event) {
+ const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1);
+ currentTask.events.push(event);
+};
+const addTaskOrg = function(descr) {
+ const newTask = {
+ section: currentSection,
+ type: currentSection,
+ description: descr,
+ task: descr,
+ classes: []
+ };
+ tasks.push(newTask);
+};
+const compileTasks = function() {
+ const compileTask = function(pos) {
+ return rawTasks[pos].processed;
+ };
+ let allProcessed = true;
+ for (const [i, rawTask] of rawTasks.entries()) {
+ compileTask(i);
+ allProcessed = allProcessed && rawTask.processed;
+ }
+ return allProcessed;
+};
+const timelineDb = {
+ clear,
+ getCommonDb,
+ addSection,
+ getSections,
+ getTasks,
+ addTask,
+ addTaskOrg,
+ addEvent,
+ parseDirective
+};
+const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ addEvent,
+ addSection,
+ addTask,
+ addTaskOrg,
+ clear,
+ default: timelineDb,
+ getCommonDb,
+ getSections,
+ getTasks,
+ parseDirective
+}, Symbol.toStringTag, { value: "Module" }));
+const MAX_SECTIONS = 12;
+const drawRect = function(elem, rectData) {
+ const rectElem = elem.append("rect");
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.y);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", rectData.width);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (rectData.class !== void 0) {
+ rectElem.attr("class", rectData.class);
+ }
+ return rectElem;
+};
+const drawFace = function(element, faceData) {
+ const radius = 15;
+ const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible");
+ const face = element.append("g");
+ face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ function smile(face2) {
+ const arc$1 = arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
+ }
+ function sad(face2) {
+ const arc$1 = arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
+ }
+ function ambivalent(face2) {
+ face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
+ }
+ if (faceData.score > 3) {
+ smile(face);
+ } else if (faceData.score < 3) {
+ sad(face);
+ } else {
+ ambivalent(face);
+ }
+ return circleElement;
+};
+const drawCircle = function(element, circleData) {
+ const circleElement = element.append("circle");
+ circleElement.attr("cx", circleData.cx);
+ circleElement.attr("cy", circleData.cy);
+ circleElement.attr("class", "actor-" + circleData.pos);
+ circleElement.attr("fill", circleData.fill);
+ circleElement.attr("stroke", circleData.stroke);
+ circleElement.attr("r", circleData.r);
+ if (circleElement.class !== void 0) {
+ circleElement.attr("class", circleElement.class);
+ }
+ if (circleData.title !== void 0) {
+ circleElement.append("title").text(circleData.title);
+ }
+ return circleElement;
+};
+const drawText = function(elem, textData) {
+ const nText = textData.text.replace(/
/gi, " ");
+ const textElem = elem.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", textData.y);
+ textElem.attr("class", "legend");
+ textElem.style("text-anchor", textData.anchor);
+ if (textData.class !== void 0) {
+ textElem.attr("class", textData.class);
+ }
+ const span = textElem.append("tspan");
+ span.attr("x", textData.x + textData.textMargin * 2);
+ span.text(nText);
+ return textElem;
+};
+const drawLabel = function(elem, txtObject) {
+ function genPoints(x, y, width, height, cut) {
+ return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height);
+ }
+ const polygon = elem.append("polygon");
+ polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
+ polygon.attr("class", "labelBox");
+ txtObject.y = txtObject.y + txtObject.labelMargin;
+ txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
+ drawText(elem, txtObject);
+};
+const drawSection = function(elem, section, conf) {
+ const g = elem.append("g");
+ const rect = getNoteRect();
+ rect.x = section.x;
+ rect.y = section.y;
+ rect.fill = section.fill;
+ rect.width = conf.width;
+ rect.height = conf.height;
+ rect.class = "journey-section section-type-" + section.num;
+ rect.rx = 3;
+ rect.ry = 3;
+ drawRect(g, rect);
+ _drawTextCandidateFunc(conf)(
+ section.text,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "journey-section section-type-" + section.num },
+ conf,
+ section.colour
+ );
+};
+let taskCount = -1;
+const drawTask = function(elem, task, conf) {
+ const center = task.x + conf.width / 2;
+ const g = elem.append("g");
+ taskCount++;
+ const maxHeight = 300 + 5 * 30;
+ g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
+ drawFace(g, {
+ cx: center,
+ cy: 300 + (5 - task.score) * 30,
+ score: task.score
+ });
+ const rect = getNoteRect();
+ rect.x = task.x;
+ rect.y = task.y;
+ rect.fill = task.fill;
+ rect.width = conf.width;
+ rect.height = conf.height;
+ rect.class = "task task-type-" + task.num;
+ rect.rx = 3;
+ rect.ry = 3;
+ drawRect(g, rect);
+ task.x + 14;
+ _drawTextCandidateFunc(conf)(
+ task.task,
+ g,
+ rect.x,
+ rect.y,
+ rect.width,
+ rect.height,
+ { class: "task" },
+ conf,
+ task.colour
+ );
+};
+const drawBackgroundRect = function(elem, bounds) {
+ const rectElem = drawRect(elem, {
+ x: bounds.startx,
+ y: bounds.starty,
+ width: bounds.stopx - bounds.startx,
+ height: bounds.stopy - bounds.starty,
+ fill: bounds.fill,
+ class: "rect"
+ });
+ rectElem.lower();
+};
+const getTextObj = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ "text-anchor": "start",
+ width: 100,
+ height: 100,
+ textMargin: 0,
+ rx: 0,
+ ry: 0
+ };
+};
+const getNoteRect = function() {
+ return {
+ x: 0,
+ y: 0,
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+};
+const _drawTextCandidateFunc = function() {
+ function byText(content, g, x, y, width, height, textAttrs, colour) {
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text, textAttrs);
+ }
+ function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) {
+ const { taskFontSize, taskFontFamily } = conf;
+ const lines = content.split(/
/gi);
+ for (let i = 0; i < lines.length; i++) {
+ const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
+ text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]);
+ text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text, textAttrs);
+ }
+ }
+ function byFo(content, g, x, y, width, height, textAttrs, conf) {
+ const body = g.append("switch");
+ const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed");
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, body, x, y, width, height, textAttrs, conf);
+ _setTextAttrs(text, textAttrs);
+ }
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (key in fromTextAttrsDict) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ return function(conf) {
+ return conf.textPlacement === "fo" ? byFo : conf.textPlacement === "old" ? byText : byTspan;
+ };
+}();
+const initGraphics = function(graphics) {
+ graphics.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");
+};
+function wrap(text, width) {
+ text.each(function() {
+ var text2 = select(this), words = text2.text().split(/(\s+|
)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr("y"), dy = parseFloat(text2.attr("dy")), tspan = text2.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", dy + "em");
+ for (let j = 0; j < words.length; j++) {
+ word = words[words.length - 1 - j];
+ line.push(word);
+ tspan.text(line.join(" ").trim());
+ if (tspan.node().getComputedTextLength() > width || word === "
") {
+ line.pop();
+ tspan.text(line.join(" ").trim());
+ if (word === "
") {
+ line = [""];
+ } else {
+ line = [word];
+ }
+ tspan = text2.append("tspan").attr("x", 0).attr("y", y).attr("dy", lineHeight + "em").text(word);
+ }
+ }
+ });
+}
+const drawNode = function(elem, node, fullSection, conf) {
+ const section = fullSection % MAX_SECTIONS - 1;
+ const nodeElem = elem.append("g");
+ node.section = section;
+ nodeElem.attr(
+ "class",
+ (node.class ? node.class + " " : "") + "timeline-node " + ("section-" + section)
+ );
+ const bkgElem = nodeElem.append("g");
+ const textElem = nodeElem.append("g");
+ const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width);
+ const bbox = txt.node().getBBox();
+ const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize;
+ node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;
+ node.height = Math.max(node.height, node.maxHeight);
+ node.width = node.width + 2 * node.padding;
+ textElem.attr("transform", "translate(" + node.width / 2 + ", " + node.padding / 2 + ")");
+ defaultBkg(bkgElem, node, section);
+ return node;
+};
+const getVirtualNodeHeight = function(elem, node, conf) {
+ const textElem = elem.append("g");
+ const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width);
+ const bbox = txt.node().getBBox();
+ const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize;
+ textElem.remove();
+ return bbox.height + fontSize * 1.1 * 0.5 + node.padding;
+};
+const defaultBkg = function(elem, node, section) {
+ const rd = 5;
+ elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + node.type).attr(
+ "d",
+ `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`
+ );
+ elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height);
+};
+const svgDraw = {
+ drawRect,
+ drawCircle,
+ drawSection,
+ drawText,
+ drawLabel,
+ drawTask,
+ drawBackgroundRect,
+ getTextObj,
+ getNoteRect,
+ initGraphics,
+ drawNode,
+ getVirtualNodeHeight
+};
+const draw = function(text, id, version, diagObj) {
+ var _a, _b, _c, _d;
+ const conf = getConfig();
+ const LEFT_MARGIN = conf.leftMargin ?? 50;
+ (_b = (_a = diagObj.db).clear) == null ? void 0 : _b.call(_a);
+ diagObj.parser.parse(text + "\n");
+ log.debug("timeline", diagObj.db);
+ const securityLevel = conf.securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? (
+ // @ts-ignore d3 types are wrong
+ select(sandboxElement.nodes()[0].contentDocument.body)
+ ) : select("body");
+ const svg = root.select("#" + id);
+ svg.append("g");
+ const tasks2 = diagObj.db.getTasks();
+ const title = diagObj.db.getCommonDb().getDiagramTitle();
+ log.debug("task", tasks2);
+ svgDraw.initGraphics(svg);
+ const sections2 = diagObj.db.getSections();
+ log.debug("sections", sections2);
+ let maxSectionHeight = 0;
+ let maxTaskHeight = 0;
+ let depthY = 0;
+ let sectionBeginY = 0;
+ let masterX = 50 + LEFT_MARGIN;
+ let masterY = 50;
+ sectionBeginY = 50;
+ let sectionNumber = 0;
+ let hasSections = true;
+ sections2.forEach(function(section) {
+ const sectionNode = {
+ number: sectionNumber,
+ descr: section,
+ section: sectionNumber,
+ width: 150,
+ padding: 20,
+ maxHeight: maxSectionHeight
+ };
+ const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf);
+ log.debug("sectionHeight before draw", sectionHeight);
+ maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20);
+ });
+ let maxEventCount = 0;
+ let maxEventLineLength = 0;
+ log.debug("tasks.length", tasks2.length);
+ for (const [i, task] of tasks2.entries()) {
+ const taskNode = {
+ number: i,
+ descr: task,
+ section: task.section,
+ width: 150,
+ padding: 20,
+ maxHeight: maxTaskHeight
+ };
+ const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf);
+ log.debug("taskHeight before draw", taskHeight);
+ maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);
+ maxEventCount = Math.max(maxEventCount, task.events.length);
+ let maxEventLineLengthTemp = 0;
+ for (let j = 0; j < task.events.length; j++) {
+ const event = task.events[j];
+ const eventNode = {
+ descr: event,
+ section: task.section,
+ number: task.section,
+ width: 150,
+ padding: 20,
+ maxHeight: 50
+ };
+ maxEventLineLengthTemp += svgDraw.getVirtualNodeHeight(svg, eventNode, conf);
+ }
+ maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);
+ }
+ log.debug("maxSectionHeight before draw", maxSectionHeight);
+ log.debug("maxTaskHeight before draw", maxTaskHeight);
+ if (sections2 && sections2.length > 0) {
+ sections2.forEach((section) => {
+ const tasksForSection = tasks2.filter((task) => task.section === section);
+ const sectionNode = {
+ number: sectionNumber,
+ descr: section,
+ section: sectionNumber,
+ width: 200 * Math.max(tasksForSection.length, 1) - 50,
+ padding: 20,
+ maxHeight: maxSectionHeight
+ };
+ log.debug("sectionNode", sectionNode);
+ const sectionNodeWrapper = svg.append("g");
+ const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);
+ log.debug("sectionNode output", node);
+ sectionNodeWrapper.attr("transform", `translate(${masterX}, ${sectionBeginY})`);
+ masterY += maxSectionHeight + 50;
+ if (tasksForSection.length > 0) {
+ drawTasks(
+ svg,
+ tasksForSection,
+ sectionNumber,
+ masterX,
+ masterY,
+ maxTaskHeight,
+ conf,
+ maxEventCount,
+ maxEventLineLength,
+ maxSectionHeight,
+ false
+ );
+ }
+ masterX += 200 * Math.max(tasksForSection.length, 1);
+ masterY = sectionBeginY;
+ sectionNumber++;
+ });
+ } else {
+ hasSections = false;
+ drawTasks(
+ svg,
+ tasks2,
+ sectionNumber,
+ masterX,
+ masterY,
+ maxTaskHeight,
+ conf,
+ maxEventCount,
+ maxEventLineLength,
+ maxSectionHeight,
+ true
+ );
+ }
+ const box = svg.node().getBBox();
+ log.debug("bounds", box);
+ if (title) {
+ svg.append("text").text(title).attr("x", box.width / 2 - LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20);
+ }
+ depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;
+ const lineWrapper = svg.append("g").attr("class", "lineWrapper");
+ lineWrapper.append("line").attr("x1", LEFT_MARGIN).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
+ setupGraphViewbox(
+ void 0,
+ svg,
+ ((_c = conf.timeline) == null ? void 0 : _c.padding) ?? 50,
+ ((_d = conf.timeline) == null ? void 0 : _d.useMaxWidth) ?? false
+ );
+};
+const drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) {
+ var _a;
+ for (const task of tasks2) {
+ const taskNode = {
+ descr: task.task,
+ section: sectionColor,
+ number: sectionColor,
+ width: 150,
+ padding: 20,
+ maxHeight: maxTaskHeight
+ };
+ log.debug("taskNode", taskNode);
+ const taskWrapper = diagram2.append("g").attr("class", "taskWrapper");
+ const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf);
+ const taskHeight = node.height;
+ log.debug("taskHeight after draw", taskHeight);
+ taskWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
+ maxTaskHeight = Math.max(maxTaskHeight, taskHeight);
+ if (task.events) {
+ const lineWrapper = diagram2.append("g").attr("class", "lineWrapper");
+ let lineLength = maxTaskHeight;
+ masterY += 100;
+ lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf);
+ masterY -= 100;
+ lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr(
+ "y2",
+ masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120
+ ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5");
+ }
+ masterX = masterX + 200;
+ if (isWithoutSections && !((_a = conf.timeline) == null ? void 0 : _a.disableMulticolor)) {
+ sectionColor++;
+ }
+ }
+ masterY = masterY - 10;
+};
+const drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf) {
+ let maxEventHeight = 0;
+ const eventBeginY = masterY;
+ masterY = masterY + 100;
+ for (const event of events) {
+ const eventNode = {
+ descr: event,
+ section: sectionColor,
+ number: sectionColor,
+ width: 150,
+ padding: 20,
+ maxHeight: 50
+ };
+ log.debug("eventNode", eventNode);
+ const eventWrapper = diagram2.append("g").attr("class", "eventWrapper");
+ const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf);
+ const eventHeight = node.height;
+ maxEventHeight = maxEventHeight + eventHeight;
+ eventWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
+ masterY = masterY + 10 + eventHeight;
+ }
+ masterY = eventBeginY;
+ return maxEventHeight;
+};
+const renderer = {
+ setConf: () => {
+ },
+ draw
+};
+const genSections = (options) => {
+ let sections2 = "";
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
+ options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i];
+ if (isDark(options["lineColor" + i])) {
+ options["lineColor" + i] = lighten(options["lineColor" + i], 20);
+ } else {
+ options["lineColor" + i] = darken(options["lineColor" + i], 20);
+ }
+ }
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
+ const sw = "" + (17 - 3 * i);
+ sections2 += `
+ .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path {
+ fill: ${options["cScale" + i]};
+ }
+ .section-${i - 1} text {
+ fill: ${options["cScaleLabel" + i]};
+ }
+ .node-icon-${i - 1} {
+ font-size: 40px;
+ color: ${options["cScaleLabel" + i]};
+ }
+ .section-edge-${i - 1}{
+ stroke: ${options["cScale" + i]};
+ }
+ .edge-depth-${i - 1}{
+ stroke-width: ${sw};
+ }
+ .section-${i - 1} line {
+ stroke: ${options["cScaleInv" + i]} ;
+ stroke-width: 3;
+ }
+
+ .lineWrapper line{
+ stroke: ${options["cScaleLabel" + i]} ;
+ }
+
+ .disabled, .disabled circle, .disabled text {
+ fill: lightgray;
+ }
+ .disabled text {
+ fill: #efefef;
+ }
+ `;
+ }
+ return sections2;
+};
+const getStyles = (options) => `
+ .edge {
+ stroke-width: 3;
+ }
+ ${genSections(options)}
+ .section-root rect, .section-root path, .section-root circle {
+ fill: ${options.git0};
+ }
+ .section-root text {
+ fill: ${options.gitBranchLabel0};
+ }
+ .icon-container {
+ height:100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .edge {
+ fill: none;
+ }
+ .eventWrapper {
+ filter: brightness(120%);
+ }
+`;
+const styles = getStyles;
+const diagram = {
+ db,
+ renderer,
+ parser: parser$1,
+ styles
+};
+export {
+ diagram
+};
+//# sourceMappingURL=timeline-definition-de69aca6.js.map
diff --git a/scopegraphs-render-docs/doc/js/timeline-definition-f3a4334c.js b/scopegraphs-render-docs/doc/js/timeline-definition-f3a4334c.js
new file mode 100644
index 0000000..427982d
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/timeline-definition-f3a4334c.js
@@ -0,0 +1,828 @@
+import { p as bt, B as kt } from "./utils-8ea37061.js";
+import { c as vt, A as wt, h as Z, g as St, l as T, U as Et, V as Tt } from "./commonDb-41f8b4c5.js";
+import { d as it } from "./arc-f7872e1e.js";
+import { i as It } from "./is_dark-a2294536.js";
+import "./constant-2fe7eae5.js";
+var Y = function() {
+ var n = function(k, r, a, h) {
+ for (a = a || {}, h = k.length; h--; a[k[h]] = r)
+ ;
+ return a;
+ }, t = [1, 2], e = [1, 5], s = [6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28], i = [1, 15], o = [1, 16], l = [1, 17], y = [1, 18], g = [1, 19], d = [1, 23], m = [1, 24], S = [1, 27], _ = [4, 6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28], b = {
+ trace: function() {
+ },
+ yy: {},
+ symbols_: { error: 2, start: 3, timeline: 4, document: 5, EOF: 6, directive: 7, line: 8, SPACE: 9, statement: 10, NEWLINE: 11, openDirective: 12, typeDirective: 13, closeDirective: 14, ":": 15, argDirective: 16, title: 17, acc_title: 18, acc_title_value: 19, acc_descr: 20, acc_descr_value: 21, acc_descr_multiline_value: 22, section: 23, period_statement: 24, event_statement: 25, period: 26, event: 27, open_directive: 28, type_directive: 29, arg_directive: 30, close_directive: 31, $accept: 0, $end: 1 },
+ terminals_: { 2: "error", 4: "timeline", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 26: "period", 27: "event", 28: "open_directive", 29: "type_directive", 30: "arg_directive", 31: "close_directive" },
+ productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [24, 1], [25, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
+ performAction: function(r, a, h, u, f, c, M) {
+ var x = c.length - 1;
+ switch (f) {
+ case 1:
+ return c[x - 1];
+ case 3:
+ this.$ = [];
+ break;
+ case 4:
+ c[x - 1].push(c[x]), this.$ = c[x - 1];
+ break;
+ case 5:
+ case 6:
+ this.$ = c[x];
+ break;
+ case 7:
+ case 8:
+ this.$ = [];
+ break;
+ case 11:
+ u.getCommonDb().setDiagramTitle(c[x].substr(6)), this.$ = c[x].substr(6);
+ break;
+ case 12:
+ this.$ = c[x].trim(), u.getCommonDb().setAccTitle(this.$);
+ break;
+ case 13:
+ case 14:
+ this.$ = c[x].trim(), u.getCommonDb().setAccDescription(this.$);
+ break;
+ case 15:
+ u.addSection(c[x].substr(8)), this.$ = c[x].substr(8);
+ break;
+ case 19:
+ u.addTask(c[x], 0, ""), this.$ = c[x];
+ break;
+ case 20:
+ u.addEvent(c[x].substr(2)), this.$ = c[x];
+ break;
+ case 21:
+ u.parseDirective("%%{", "open_directive");
+ break;
+ case 22:
+ u.parseDirective(c[x], "type_directive");
+ break;
+ case 23:
+ c[x] = c[x].trim().replace(/'/g, '"'), u.parseDirective(c[x], "arg_directive");
+ break;
+ case 24:
+ u.parseDirective("}%%", "close_directive", "timeline");
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: t, 7: 3, 12: 4, 28: e }, { 1: [3] }, n(s, [2, 3], { 5: 6 }), { 3: 7, 4: t, 7: 3, 12: 4, 28: e }, { 13: 8, 29: [1, 9] }, { 29: [2, 21] }, { 6: [1, 10], 7: 22, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: i, 18: o, 20: l, 22: y, 23: g, 24: 20, 25: 21, 26: d, 27: m, 28: e }, { 1: [2, 2] }, { 14: 25, 15: [1, 26], 31: S }, n([15, 31], [2, 22]), n(s, [2, 8], { 1: [2, 1] }), n(s, [2, 4]), { 7: 22, 10: 28, 12: 4, 17: i, 18: o, 20: l, 22: y, 23: g, 24: 20, 25: 21, 26: d, 27: m, 28: e }, n(s, [2, 6]), n(s, [2, 7]), n(s, [2, 11]), { 19: [1, 29] }, { 21: [1, 30] }, n(s, [2, 14]), n(s, [2, 15]), n(s, [2, 16]), n(s, [2, 17]), n(s, [2, 18]), n(s, [2, 19]), n(s, [2, 20]), { 11: [1, 31] }, { 16: 32, 30: [1, 33] }, { 11: [2, 24] }, n(s, [2, 5]), n(s, [2, 12]), n(s, [2, 13]), n(_, [2, 9]), { 14: 34, 31: S }, { 31: [2, 23] }, { 11: [1, 35] }, n(_, [2, 10])],
+ defaultActions: { 5: [2, 21], 7: [2, 2], 27: [2, 24], 33: [2, 23] },
+ parseError: function(r, a) {
+ if (a.recoverable)
+ this.trace(r);
+ else {
+ var h = new Error(r);
+ throw h.hash = a, h;
+ }
+ },
+ parse: function(r) {
+ var a = this, h = [0], u = [], f = [null], c = [], M = this.table, x = "", C = 0, O = 0, G = 2, j = 1, P = c.slice.call(arguments, 1), p = Object.create(this.lexer), E = { yy: {} };
+ for (var L in this.yy)
+ Object.prototype.hasOwnProperty.call(this.yy, L) && (E.yy[L] = this.yy[L]);
+ p.setInput(r, E.yy), E.yy.lexer = p, E.yy.parser = this, typeof p.yylloc > "u" && (p.yylloc = {});
+ var H = p.yylloc;
+ c.push(H);
+ var V = p.options && p.options.ranges;
+ typeof E.yy.parseError == "function" ? this.parseError = E.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
+ function et() {
+ var A;
+ return A = u.pop() || p.lex() || j, typeof A != "number" && (A instanceof Array && (u = A, A = u.pop()), A = a.symbols_[A] || A), A;
+ }
+ for (var w, z, N, Q, F = {}, U, $, nt, q; ; ) {
+ if (z = h[h.length - 1], this.defaultActions[z] ? N = this.defaultActions[z] : ((w === null || typeof w > "u") && (w = et()), N = M[z] && M[z][w]), typeof N > "u" || !N.length || !N[0]) {
+ var X = "";
+ q = [];
+ for (U in M[z])
+ this.terminals_[U] && U > G && q.push("'" + this.terminals_[U] + "'");
+ p.showPosition ? X = "Parse error on line " + (C + 1) + `:
+` + p.showPosition() + `
+Expecting ` + q.join(", ") + ", got '" + (this.terminals_[w] || w) + "'" : X = "Parse error on line " + (C + 1) + ": Unexpected " + (w == j ? "end of input" : "'" + (this.terminals_[w] || w) + "'"), this.parseError(X, {
+ text: p.match,
+ token: this.terminals_[w] || w,
+ line: p.yylineno,
+ loc: H,
+ expected: q
+ });
+ }
+ if (N[0] instanceof Array && N.length > 1)
+ throw new Error("Parse Error: multiple actions possible at state: " + z + ", token: " + w);
+ switch (N[0]) {
+ case 1:
+ h.push(w), f.push(p.yytext), c.push(p.yylloc), h.push(N[1]), w = null, O = p.yyleng, x = p.yytext, C = p.yylineno, H = p.yylloc;
+ break;
+ case 2:
+ if ($ = this.productions_[N[1]][1], F.$ = f[f.length - $], F._$ = {
+ first_line: c[c.length - ($ || 1)].first_line,
+ last_line: c[c.length - 1].last_line,
+ first_column: c[c.length - ($ || 1)].first_column,
+ last_column: c[c.length - 1].last_column
+ }, V && (F._$.range = [
+ c[c.length - ($ || 1)].range[0],
+ c[c.length - 1].range[1]
+ ]), Q = this.performAction.apply(F, [
+ x,
+ O,
+ C,
+ E.yy,
+ N[1],
+ f,
+ c
+ ].concat(P)), typeof Q < "u")
+ return Q;
+ $ && (h = h.slice(0, -1 * $ * 2), f = f.slice(0, -1 * $), c = c.slice(0, -1 * $)), h.push(this.productions_[N[1]][0]), f.push(F.$), c.push(F._$), nt = M[h[h.length - 2]][h[h.length - 1]], h.push(nt);
+ break;
+ case 3:
+ return !0;
+ }
+ }
+ return !0;
+ }
+ }, v = function() {
+ var k = {
+ EOF: 1,
+ parseError: function(a, h) {
+ if (this.yy.parser)
+ this.yy.parser.parseError(a, h);
+ else
+ throw new Error(a);
+ },
+ // resets the lexer, sets new input
+ setInput: function(r, a) {
+ return this.yy = a || this.yy || {}, this._input = r, 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;
+ },
+ // consumes and returns one char from the input
+ input: function() {
+ var r = this._input[0];
+ this.yytext += r, this.yyleng++, this.offset++, this.match += r, this.matched += r;
+ var a = r.match(/(?:\r\n?|\n).*/g);
+ return a ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), r;
+ },
+ // unshifts one char (or a string) into the input
+ unput: function(r) {
+ var a = r.length, h = r.split(/(?:\r\n?|\n)/g);
+ this._input = r + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - a), this.offset -= a;
+ var u = 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), h.length - 1 && (this.yylineno -= h.length - 1);
+ var f = 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: h ? (h.length === u.length ? this.yylloc.first_column : 0) + u[u.length - h.length].length - h[0].length : this.yylloc.first_column - a
+ }, this.options.ranges && (this.yylloc.range = [f[0], f[0] + this.yyleng - a]), this.yyleng = this.yytext.length, this;
+ },
+ // When called from action, caches matched text and appends it on next action
+ more: function() {
+ return this._more = !0, this;
+ },
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: function() {
+ if (this.options.backtrack_lexer)
+ this._backtrack = !0;
+ else
+ return 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).
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ return this;
+ },
+ // retain first n characters of the match
+ less: function(r) {
+ this.unput(this.match.slice(r));
+ },
+ // displays already matched input, i.e. for error messages
+ pastInput: function() {
+ var r = this.matched.substr(0, this.matched.length - this.match.length);
+ return (r.length > 20 ? "..." : "") + r.substr(-20).replace(/\n/g, "");
+ },
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: function() {
+ var r = this.match;
+ return r.length < 20 && (r += this._input.substr(0, 20 - r.length)), (r.substr(0, 20) + (r.length > 20 ? "..." : "")).replace(/\n/g, "");
+ },
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: function() {
+ var r = this.pastInput(), a = new Array(r.length + 1).join("-");
+ return r + this.upcomingInput() + `
+` + a + "^";
+ },
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: function(r, a) {
+ var h, u, f;
+ if (this.options.backtrack_lexer && (f = {
+ 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 && (f.yylloc.range = this.yylloc.range.slice(0))), u = r[0].match(/(?:\r\n?|\n).*/g), u && (this.yylineno += u.length), this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: u ? u[u.length - 1].length - u[u.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + r[0].length
+ }, this.yytext += r[0], this.match += r[0], this.matches = r, 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(r[0].length), this.matched += r[0], h = this.performAction.call(this, this.yy, this, a, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), h)
+ return h;
+ if (this._backtrack) {
+ for (var c in f)
+ this[c] = f[c];
+ return !1;
+ }
+ return !1;
+ },
+ // return next match in input
+ next: function() {
+ if (this.done)
+ return this.EOF;
+ this._input || (this.done = !0);
+ var r, a, h, u;
+ this._more || (this.yytext = "", this.match = "");
+ for (var f = this._currentRules(), c = 0; c < f.length; c++)
+ if (h = this._input.match(this.rules[f[c]]), h && (!a || h[0].length > a[0].length)) {
+ if (a = h, u = c, this.options.backtrack_lexer) {
+ if (r = this.test_match(h, f[c]), r !== !1)
+ return r;
+ if (this._backtrack) {
+ a = !1;
+ continue;
+ } else
+ return !1;
+ } else if (!this.options.flex)
+ break;
+ }
+ return a ? (r = this.test_match(a, f[u]), r !== !1 ? r : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
+` + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ },
+ // return next match that has a token
+ lex: function() {
+ var a = this.next();
+ return a || this.lex();
+ },
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: function(a) {
+ this.conditionStack.push(a);
+ },
+ // pop the previously active lexer condition state off the condition stack
+ popState: function() {
+ var a = this.conditionStack.length - 1;
+ return a > 0 ? this.conditionStack.pop() : this.conditionStack[0];
+ },
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _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;
+ },
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: function(a) {
+ return a = this.conditionStack.length - 1 - Math.abs(a || 0), a >= 0 ? this.conditionStack[a] : "INITIAL";
+ },
+ // alias for begin(condition)
+ pushState: function(a) {
+ this.begin(a);
+ },
+ // return the number of states currently on the stack
+ stateStackSize: function() {
+ return this.conditionStack.length;
+ },
+ options: { "case-insensitive": !0 },
+ performAction: function(a, h, u, f) {
+ switch (u) {
+ case 0:
+ return this.begin("open_directive"), 28;
+ case 1:
+ return this.begin("type_directive"), 29;
+ case 2:
+ return this.popState(), this.begin("arg_directive"), 15;
+ case 3:
+ return this.popState(), this.popState(), 31;
+ case 4:
+ return 30;
+ case 5:
+ break;
+ case 6:
+ break;
+ case 7:
+ return 11;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ return 4;
+ case 11:
+ return 17;
+ case 12:
+ return this.begin("acc_title"), 18;
+ case 13:
+ return this.popState(), "acc_title_value";
+ case 14:
+ return this.begin("acc_descr"), 20;
+ case 15:
+ return this.popState(), "acc_descr_value";
+ case 16:
+ this.begin("acc_descr_multiline");
+ break;
+ case 17:
+ this.popState();
+ break;
+ case 18:
+ return "acc_descr_multiline_value";
+ case 19:
+ return 23;
+ case 20:
+ return 27;
+ case 21:
+ return 26;
+ case 22:
+ return 6;
+ case 23:
+ return "INVALID";
+ }
+ },
+ rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?::\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { open_directive: { rules: [1], inclusive: !1 }, type_directive: { rules: [2, 3], inclusive: !1 }, arg_directive: { rules: [3, 4], inclusive: !1 }, acc_descr_multiline: { rules: [17, 18], inclusive: !1 }, acc_descr: { rules: [15], inclusive: !1 }, acc_title: { rules: [13], inclusive: !1 }, INITIAL: { rules: [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23], inclusive: !0 } }
+ };
+ return k;
+ }();
+ b.lexer = v;
+ function I() {
+ this.yy = {};
+ }
+ return I.prototype = b, b.Parser = I, new I();
+}();
+Y.parser = Y;
+const Nt = Y;
+let W = "", ct = 0;
+const D = [], J = [], B = [], lt = () => vt, ot = (n, t, e) => {
+ bt(globalThis, n, t, e);
+}, ht = function() {
+ D.length = 0, J.length = 0, W = "", B.length = 0, wt();
+}, dt = function(n) {
+ W = n, D.push(n);
+}, ut = function() {
+ return D;
+}, pt = function() {
+ let n = st();
+ const t = 100;
+ let e = 0;
+ for (; !n && e < t; )
+ n = st(), e++;
+ return J.push(...B), J;
+}, yt = function(n, t, e) {
+ const s = {
+ id: ct++,
+ section: W,
+ type: W,
+ task: n,
+ score: t || 0,
+ //if event is defined, then add it the events array
+ events: e ? [e] : []
+ };
+ B.push(s);
+}, ft = function(n) {
+ B.find((e) => e.id === ct - 1).events.push(n);
+}, gt = function(n) {
+ const t = {
+ section: W,
+ type: W,
+ description: n,
+ task: n,
+ classes: []
+ };
+ J.push(t);
+}, st = function() {
+ const n = function(e) {
+ return B[e].processed;
+ };
+ let t = !0;
+ for (const [e, s] of B.entries())
+ n(e), t = t && s.processed;
+ return t;
+}, Mt = {
+ clear: ht,
+ getCommonDb: lt,
+ addSection: dt,
+ getSections: ut,
+ getTasks: pt,
+ addTask: yt,
+ addTaskOrg: gt,
+ addEvent: ft,
+ parseDirective: ot
+}, Lt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ addEvent: ft,
+ addSection: dt,
+ addTask: yt,
+ addTaskOrg: gt,
+ clear: ht,
+ default: Mt,
+ getCommonDb: lt,
+ getSections: ut,
+ getTasks: pt,
+ parseDirective: ot
+}, Symbol.toStringTag, { value: "Module" })), $t = 12, K = function(n, t) {
+ const e = n.append("rect");
+ return e.attr("x", t.x), e.attr("y", t.y), e.attr("fill", t.fill), e.attr("stroke", t.stroke), e.attr("width", t.width), e.attr("height", t.height), e.attr("rx", t.rx), e.attr("ry", t.ry), t.class !== void 0 && e.attr("class", t.class), e;
+}, At = function(n, t) {
+ const s = n.append("circle").attr("cx", t.cx).attr("cy", t.cy).attr("class", "face").attr("r", 15).attr("stroke-width", 2).attr("overflow", "visible"), i = n.append("g");
+ i.append("circle").attr("cx", t.cx - 15 / 3).attr("cy", t.cy - 15 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"), i.append("circle").attr("cx", t.cx + 15 / 3).attr("cy", t.cy - 15 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ function o(g) {
+ const d = it().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(7.5).outerRadius(6.8181818181818175);
+ g.append("path").attr("class", "mouth").attr("d", d).attr("transform", "translate(" + t.cx + "," + (t.cy + 2) + ")");
+ }
+ function l(g) {
+ const d = it().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(7.5).outerRadius(6.8181818181818175);
+ g.append("path").attr("class", "mouth").attr("d", d).attr("transform", "translate(" + t.cx + "," + (t.cy + 7) + ")");
+ }
+ function y(g) {
+ g.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", t.cx - 5).attr("y1", t.cy + 7).attr("x2", t.cx + 5).attr("y2", t.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
+ }
+ return t.score > 3 ? o(i) : t.score < 3 ? l(i) : y(i), s;
+}, Pt = function(n, t) {
+ const e = n.append("circle");
+ return e.attr("cx", t.cx), e.attr("cy", t.cy), e.attr("class", "actor-" + t.pos), e.attr("fill", t.fill), e.attr("stroke", t.stroke), e.attr("r", t.r), e.class !== void 0 && e.attr("class", e.class), t.title !== void 0 && e.append("title").text(t.title), e;
+}, mt = function(n, t) {
+ const e = t.text.replace(/
/gi, " "), s = n.append("text");
+ s.attr("x", t.x), s.attr("y", t.y), s.attr("class", "legend"), s.style("text-anchor", t.anchor), t.class !== void 0 && s.attr("class", t.class);
+ const i = s.append("tspan");
+ return i.attr("x", t.x + t.textMargin * 2), i.text(e), s;
+}, Ht = function(n, t) {
+ function e(i, o, l, y, g) {
+ return i + "," + o + " " + (i + l) + "," + o + " " + (i + l) + "," + (o + y - g) + " " + (i + l - g * 1.2) + "," + (o + y) + " " + i + "," + (o + y);
+ }
+ const s = n.append("polygon");
+ s.attr("points", e(t.x, t.y, 50, 20, 7)), s.attr("class", "labelBox"), t.y = t.y + t.labelMargin, t.x = t.x + 0.5 * t.labelMargin, mt(n, t);
+}, Ct = function(n, t, e) {
+ const s = n.append("g"), i = tt();
+ i.x = t.x, i.y = t.y, i.fill = t.fill, i.width = e.width, i.height = e.height, i.class = "journey-section section-type-" + t.num, i.rx = 3, i.ry = 3, K(s, i), xt(e)(
+ t.text,
+ s,
+ i.x,
+ i.y,
+ i.width,
+ i.height,
+ { class: "journey-section section-type-" + t.num },
+ e,
+ t.colour
+ );
+};
+let rt = -1;
+const Vt = function(n, t, e) {
+ const s = t.x + e.width / 2, i = n.append("g");
+ rt++;
+ const o = 300 + 5 * 30;
+ i.append("line").attr("id", "task" + rt).attr("x1", s).attr("y1", t.y).attr("x2", s).attr("y2", o).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"), At(i, {
+ cx: s,
+ cy: 300 + (5 - t.score) * 30,
+ score: t.score
+ });
+ const l = tt();
+ l.x = t.x, l.y = t.y, l.fill = t.fill, l.width = e.width, l.height = e.height, l.class = "task task-type-" + t.num, l.rx = 3, l.ry = 3, K(i, l), t.x + 14, xt(e)(
+ t.task,
+ i,
+ l.x,
+ l.y,
+ l.width,
+ l.height,
+ { class: "task" },
+ e,
+ t.colour
+ );
+}, zt = function(n, t) {
+ K(n, {
+ x: t.startx,
+ y: t.starty,
+ width: t.stopx - t.startx,
+ height: t.stopy - t.starty,
+ fill: t.fill,
+ class: "rect"
+ }).lower();
+}, Rt = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ "text-anchor": "start",
+ width: 100,
+ height: 100,
+ textMargin: 0,
+ rx: 0,
+ ry: 0
+ };
+}, tt = function() {
+ return {
+ x: 0,
+ y: 0,
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+}, xt = function() {
+ function n(i, o, l, y, g, d, m, S) {
+ const _ = o.append("text").attr("x", l + g / 2).attr("y", y + d / 2 + 5).style("font-color", S).style("text-anchor", "middle").text(i);
+ s(_, m);
+ }
+ function t(i, o, l, y, g, d, m, S, _) {
+ const { taskFontSize: b, taskFontFamily: v } = S, I = i.split(/
/gi);
+ for (let k = 0; k < I.length; k++) {
+ const r = k * b - b * (I.length - 1) / 2, a = o.append("text").attr("x", l + g / 2).attr("y", y).attr("fill", _).style("text-anchor", "middle").style("font-size", b).style("font-family", v);
+ a.append("tspan").attr("x", l + g / 2).attr("dy", r).text(I[k]), a.attr("y", y + d / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"), s(a, m);
+ }
+ }
+ function e(i, o, l, y, g, d, m, S) {
+ const _ = o.append("switch"), v = _.append("foreignObject").attr("x", l).attr("y", y).attr("width", g).attr("height", d).attr("position", "fixed").append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ v.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(i), t(i, _, l, y, g, d, m, S), s(v, m);
+ }
+ function s(i, o) {
+ for (const l in o)
+ l in o && i.attr(l, o[l]);
+ }
+ return function(i) {
+ return i.textPlacement === "fo" ? e : i.textPlacement === "old" ? n : t;
+ };
+}(), Ft = function(n) {
+ n.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");
+};
+function _t(n, t) {
+ n.each(function() {
+ var e = Z(this), s = e.text().split(/(\s+|
)/).reverse(), i, o = [], l = 1.1, y = e.attr("y"), g = parseFloat(e.attr("dy")), d = e.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", g + "em");
+ for (let m = 0; m < s.length; m++)
+ i = s[s.length - 1 - m], o.push(i), d.text(o.join(" ").trim()), (d.node().getComputedTextLength() > t || i === "
") && (o.pop(), d.text(o.join(" ").trim()), i === "
" ? o = [""] : o = [i], d = e.append("tspan").attr("x", 0).attr("y", y).attr("dy", l + "em").text(i));
+ });
+}
+const Wt = function(n, t, e, s) {
+ const i = e % $t - 1, o = n.append("g");
+ t.section = i, o.attr(
+ "class",
+ (t.class ? t.class + " " : "") + "timeline-node " + ("section-" + i)
+ );
+ const l = o.append("g"), y = o.append("g"), d = y.append("text").text(t.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(_t, t.width).node().getBBox(), m = s.fontSize && s.fontSize.replace ? s.fontSize.replace("px", "") : s.fontSize;
+ return t.height = d.height + m * 1.1 * 0.5 + t.padding, t.height = Math.max(t.height, t.maxHeight), t.width = t.width + 2 * t.padding, y.attr("transform", "translate(" + t.width / 2 + ", " + t.padding / 2 + ")"), Ot(l, t, i), t;
+}, Bt = function(n, t, e) {
+ const s = n.append("g"), o = s.append("text").text(t.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(_t, t.width).node().getBBox(), l = e.fontSize && e.fontSize.replace ? e.fontSize.replace("px", "") : e.fontSize;
+ return s.remove(), o.height + l * 1.1 * 0.5 + t.padding;
+}, Ot = function(n, t, e) {
+ n.append("path").attr("id", "node-" + t.id).attr("class", "node-bkg node-" + t.type).attr(
+ "d",
+ `M0 ${t.height - 5} v${-t.height + 2 * 5} q0,-5 5,-5 h${t.width - 2 * 5} q5,0 5,5 v${t.height - 5} H0 Z`
+ ), n.append("line").attr("class", "node-line-" + e).attr("x1", 0).attr("y1", t.height).attr("x2", t.width).attr("y2", t.height);
+}, R = {
+ drawRect: K,
+ drawCircle: Pt,
+ drawSection: Ct,
+ drawText: mt,
+ drawLabel: Ht,
+ drawTask: Vt,
+ drawBackgroundRect: zt,
+ getTextObj: Rt,
+ getNoteRect: tt,
+ initGraphics: Ft,
+ drawNode: Wt,
+ getVirtualNodeHeight: Bt
+}, jt = function(n, t, e, s) {
+ var C, O, G, j;
+ const i = St(), o = i.leftMargin ?? 50;
+ (O = (C = s.db).clear) == null || O.call(C), s.parser.parse(n + `
+`), T.debug("timeline", s.db);
+ const l = i.securityLevel;
+ let y;
+ l === "sandbox" && (y = Z("#i" + t));
+ const d = (l === "sandbox" ? (
+ // @ts-ignore d3 types are wrong
+ Z(y.nodes()[0].contentDocument.body)
+ ) : Z("body")).select("#" + t);
+ d.append("g");
+ const m = s.db.getTasks(), S = s.db.getCommonDb().getDiagramTitle();
+ T.debug("task", m), R.initGraphics(d);
+ const _ = s.db.getSections();
+ T.debug("sections", _);
+ let b = 0, v = 0, I = 0, k = 0, r = 50 + o, a = 50;
+ k = 50;
+ let h = 0, u = !0;
+ _.forEach(function(P) {
+ const p = {
+ number: h,
+ descr: P,
+ section: h,
+ width: 150,
+ padding: 20,
+ maxHeight: b
+ }, E = R.getVirtualNodeHeight(d, p, i);
+ T.debug("sectionHeight before draw", E), b = Math.max(b, E + 20);
+ });
+ let f = 0, c = 0;
+ T.debug("tasks.length", m.length);
+ for (const [P, p] of m.entries()) {
+ const E = {
+ number: P,
+ descr: p,
+ section: p.section,
+ width: 150,
+ padding: 20,
+ maxHeight: v
+ }, L = R.getVirtualNodeHeight(d, E, i);
+ T.debug("taskHeight before draw", L), v = Math.max(v, L + 20), f = Math.max(f, p.events.length);
+ let H = 0;
+ for (let V = 0; V < p.events.length; V++) {
+ const w = {
+ descr: p.events[V],
+ section: p.section,
+ number: p.section,
+ width: 150,
+ padding: 20,
+ maxHeight: 50
+ };
+ H += R.getVirtualNodeHeight(d, w, i);
+ }
+ c = Math.max(c, H);
+ }
+ T.debug("maxSectionHeight before draw", b), T.debug("maxTaskHeight before draw", v), _ && _.length > 0 ? _.forEach((P) => {
+ const p = m.filter((V) => V.section === P), E = {
+ number: h,
+ descr: P,
+ section: h,
+ width: 200 * Math.max(p.length, 1) - 50,
+ padding: 20,
+ maxHeight: b
+ };
+ T.debug("sectionNode", E);
+ const L = d.append("g"), H = R.drawNode(L, E, h, i);
+ T.debug("sectionNode output", H), L.attr("transform", `translate(${r}, ${k})`), a += b + 50, p.length > 0 && at(
+ d,
+ p,
+ h,
+ r,
+ a,
+ v,
+ i,
+ f,
+ c,
+ b,
+ !1
+ ), r += 200 * Math.max(p.length, 1), a = k, h++;
+ }) : (u = !1, at(
+ d,
+ m,
+ h,
+ r,
+ a,
+ v,
+ i,
+ f,
+ c,
+ b,
+ !0
+ ));
+ const M = d.node().getBBox();
+ T.debug("bounds", M), S && d.append("text").text(S).attr("x", M.width / 2 - o).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20), I = u ? b + v + 150 : v + 100, d.append("g").attr("class", "lineWrapper").append("line").attr("x1", o).attr("y1", I).attr("x2", M.width + 3 * o).attr("y2", I).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)"), kt(
+ void 0,
+ d,
+ ((G = i.timeline) == null ? void 0 : G.padding) ?? 50,
+ ((j = i.timeline) == null ? void 0 : j.useMaxWidth) ?? !1
+ );
+}, at = function(n, t, e, s, i, o, l, y, g, d, m) {
+ var S;
+ for (const _ of t) {
+ const b = {
+ descr: _.task,
+ section: e,
+ number: e,
+ width: 150,
+ padding: 20,
+ maxHeight: o
+ };
+ T.debug("taskNode", b);
+ const v = n.append("g").attr("class", "taskWrapper"), k = R.drawNode(v, b, e, l).height;
+ if (T.debug("taskHeight after draw", k), v.attr("transform", `translate(${s}, ${i})`), o = Math.max(o, k), _.events) {
+ const r = n.append("g").attr("class", "lineWrapper");
+ let a = o;
+ i += 100, a = a + Gt(n, _.events, e, s, i, l), i -= 100, r.append("line").attr("x1", s + 190 / 2).attr("y1", i + o).attr("x2", s + 190 / 2).attr(
+ "y2",
+ i + o + (m ? o : d) + g + 120
+ ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5");
+ }
+ s = s + 200, m && !((S = l.timeline) != null && S.disableMulticolor) && e++;
+ }
+ i = i - 10;
+}, Gt = function(n, t, e, s, i, o) {
+ let l = 0;
+ const y = i;
+ i = i + 100;
+ for (const g of t) {
+ const d = {
+ descr: g,
+ section: e,
+ number: e,
+ width: 150,
+ padding: 20,
+ maxHeight: 50
+ };
+ T.debug("eventNode", d);
+ const m = n.append("g").attr("class", "eventWrapper"), _ = R.drawNode(m, d, e, o).height;
+ l = l + _, m.attr("transform", `translate(${s}, ${i})`), i = i + 10 + _;
+ }
+ return i = y, l;
+}, Ut = {
+ setConf: () => {
+ },
+ draw: jt
+}, qt = (n) => {
+ let t = "";
+ for (let e = 0; e < n.THEME_COLOR_LIMIT; e++)
+ n["lineColor" + e] = n["lineColor" + e] || n["cScaleInv" + e], It(n["lineColor" + e]) ? n["lineColor" + e] = Et(n["lineColor" + e], 20) : n["lineColor" + e] = Tt(n["lineColor" + e], 20);
+ for (let e = 0; e < n.THEME_COLOR_LIMIT; e++) {
+ const s = "" + (17 - 3 * e);
+ t += `
+ .section-${e - 1} rect, .section-${e - 1} path, .section-${e - 1} circle, .section-${e - 1} path {
+ fill: ${n["cScale" + e]};
+ }
+ .section-${e - 1} text {
+ fill: ${n["cScaleLabel" + e]};
+ }
+ .node-icon-${e - 1} {
+ font-size: 40px;
+ color: ${n["cScaleLabel" + e]};
+ }
+ .section-edge-${e - 1}{
+ stroke: ${n["cScale" + e]};
+ }
+ .edge-depth-${e - 1}{
+ stroke-width: ${s};
+ }
+ .section-${e - 1} line {
+ stroke: ${n["cScaleInv" + e]} ;
+ stroke-width: 3;
+ }
+
+ .lineWrapper line{
+ stroke: ${n["cScaleLabel" + e]} ;
+ }
+
+ .disabled, .disabled circle, .disabled text {
+ fill: lightgray;
+ }
+ .disabled text {
+ fill: #efefef;
+ }
+ `;
+ }
+ return t;
+}, Zt = (n) => `
+ .edge {
+ stroke-width: 3;
+ }
+ ${qt(n)}
+ .section-root rect, .section-root path, .section-root circle {
+ fill: ${n.git0};
+ }
+ .section-root text {
+ fill: ${n.gitBranchLabel0};
+ }
+ .icon-container {
+ height:100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .edge {
+ fill: none;
+ }
+ .eventWrapper {
+ filter: brightness(120%);
+ }
+`, Jt = Zt, te = {
+ db: Lt,
+ renderer: Ut,
+ parser: Nt,
+ styles: Jt
+};
+export {
+ te as diagram
+};
+//# sourceMappingURL=timeline-definition-f3a4334c.js.map
diff --git a/scopegraphs-render-docs/doc/js/utils-1aebe9b6.js b/scopegraphs-render-docs/doc/js/utils-1aebe9b6.js
new file mode 100644
index 0000000..d5fb1a0
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/utils-1aebe9b6.js
@@ -0,0 +1,4193 @@
+import { l as log$1, a as addDirective, s as setLogLevel$1, g as getConfig$1, b as sanitizeText$1, c as commonDb, d as assignWithDepth, e as configKeys, f as common$1, h as select } from "./commonDb-89160e91.js";
+var dist = {};
+Object.defineProperty(dist, "__esModule", { value: true });
+var sanitizeUrl_1 = dist.sanitizeUrl = void 0;
+var invalidProtocolRegex = /^([^\w]*)(javascript|data|vbscript)/im;
+var htmlEntitiesRegex = /(\w+)(^\w|;)?/g;
+var ctrlCharactersRegex = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;
+var urlSchemeRegex = /^([^:]+):/gm;
+var relativeFirstCharacters = [".", "/"];
+function isRelativeUrlWithoutProtocol(url) {
+ return relativeFirstCharacters.indexOf(url[0]) > -1;
+}
+function decodeHtmlCharacters(str2) {
+ return str2.replace(htmlEntitiesRegex, function(match, dec) {
+ return String.fromCharCode(dec);
+ });
+}
+function sanitizeUrl(url) {
+ var sanitizedUrl = decodeHtmlCharacters(url || "").replace(ctrlCharactersRegex, "").trim();
+ if (!sanitizedUrl) {
+ return "about:blank";
+ }
+ if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {
+ return sanitizedUrl;
+ }
+ var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);
+ if (!urlSchemeParseResults) {
+ return sanitizedUrl;
+ }
+ var urlScheme = urlSchemeParseResults[0];
+ if (invalidProtocolRegex.test(urlScheme)) {
+ return "about:blank";
+ }
+ return sanitizedUrl;
+}
+sanitizeUrl_1 = dist.sanitizeUrl = sanitizeUrl;
+const abs = Math.abs;
+const atan2 = Math.atan2;
+const cos = Math.cos;
+const max = Math.max;
+const min = Math.min;
+const sin = Math.sin;
+const sqrt = Math.sqrt;
+const epsilon = 1e-12;
+const pi = Math.PI;
+const halfPi = pi / 2;
+const tau = 2 * pi;
+function acos(x) {
+ return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
+}
+function asin(x) {
+ return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
+}
+function Linear(context) {
+ this._context = context;
+}
+Linear.prototype = {
+ areaStart: function() {
+ this._line = 0;
+ },
+ areaEnd: function() {
+ this._line = NaN;
+ },
+ lineStart: function() {
+ this._point = 0;
+ },
+ lineEnd: function() {
+ if (this._line || this._line !== 0 && this._point === 1)
+ this._context.closePath();
+ this._line = 1 - this._line;
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
+ break;
+ case 1:
+ this._point = 2;
+ default:
+ this._context.lineTo(x, y);
+ break;
+ }
+ }
+};
+function curveLinear(context) {
+ return new Linear(context);
+}
+class Bump {
+ constructor(context, x) {
+ this._context = context;
+ this._x = x;
+ }
+ areaStart() {
+ this._line = 0;
+ }
+ areaEnd() {
+ this._line = NaN;
+ }
+ lineStart() {
+ this._point = 0;
+ }
+ lineEnd() {
+ if (this._line || this._line !== 0 && this._point === 1)
+ this._context.closePath();
+ this._line = 1 - this._line;
+ }
+ point(x, y) {
+ x = +x, y = +y;
+ switch (this._point) {
+ case 0: {
+ this._point = 1;
+ if (this._line)
+ this._context.lineTo(x, y);
+ else
+ this._context.moveTo(x, y);
+ break;
+ }
+ case 1:
+ this._point = 2;
+ default: {
+ if (this._x)
+ this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);
+ else
+ this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);
+ break;
+ }
+ }
+ this._x0 = x, this._y0 = y;
+ }
+}
+function bumpX(context) {
+ return new Bump(context, true);
+}
+function bumpY(context) {
+ return new Bump(context, false);
+}
+function noop() {
+}
+function point$3(that, x, y) {
+ that._context.bezierCurveTo(
+ (2 * that._x0 + that._x1) / 3,
+ (2 * that._y0 + that._y1) / 3,
+ (that._x0 + 2 * that._x1) / 3,
+ (that._y0 + 2 * that._y1) / 3,
+ (that._x0 + 4 * that._x1 + x) / 6,
+ (that._y0 + 4 * that._y1 + y) / 6
+ );
+}
+function Basis(context) {
+ this._context = context;
+}
+Basis.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:
+ point$3(this, this._x1, this._y1);
+ case 2:
+ this._context.lineTo(this._x1, this._y1);
+ break;
+ }
+ if (this._line || this._line !== 0 && this._point === 1)
+ this._context.closePath();
+ this._line = 1 - this._line;
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
+ 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:
+ point$3(this, x, y);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = x;
+ this._y0 = this._y1, this._y1 = y;
+ }
+};
+function curveBasis(context) {
+ return new Basis(context);
+}
+function BasisClosed(context) {
+ this._context = context;
+}
+BasisClosed.prototype = {
+ areaStart: noop,
+ areaEnd: noop,
+ 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);
+ break;
+ }
+ }
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._x2 = x, this._y2 = y;
+ break;
+ case 1:
+ this._point = 2;
+ this._x3 = x, this._y3 = y;
+ break;
+ case 2:
+ this._point = 3;
+ this._x4 = x, this._y4 = y;
+ this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6);
+ break;
+ default:
+ point$3(this, x, y);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = x;
+ this._y0 = this._y1, this._y1 = y;
+ }
+};
+function curveBasisClosed(context) {
+ return new BasisClosed(context);
+}
+function BasisOpen(context) {
+ this._context = context;
+}
+BasisOpen.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() {
+ if (this._line || this._line !== 0 && this._point === 3)
+ this._context.closePath();
+ this._line = 1 - this._line;
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6;
+ this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);
+ break;
+ case 3:
+ this._point = 4;
+ default:
+ point$3(this, x, y);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = x;
+ this._y0 = this._y1, this._y1 = y;
+ }
+};
+function curveBasisOpen(context) {
+ return new BasisOpen(context);
+}
+function Bundle(context, beta) {
+ this._basis = new Basis(context);
+ this._beta = beta;
+}
+Bundle.prototype = {
+ lineStart: function() {
+ this._x = [];
+ this._y = [];
+ this._basis.lineStart();
+ },
+ lineEnd: function() {
+ var x = this._x, y = this._y, j = x.length - 1;
+ if (j > 0) {
+ var x0 = x[0], y0 = y[0], dx = x[j] - x0, dy = y[j] - y0, i = -1, t;
+ while (++i <= j) {
+ t = i / j;
+ this._basis.point(
+ this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
+ this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
+ );
+ }
+ }
+ this._x = this._y = null;
+ this._basis.lineEnd();
+ },
+ point: function(x, y) {
+ this._x.push(+x);
+ this._y.push(+y);
+ }
+};
+const curveBundle = function custom(beta) {
+ function bundle(context) {
+ return beta === 1 ? new Basis(context) : new Bundle(context, beta);
+ }
+ bundle.beta = function(beta2) {
+ return custom(+beta2);
+ };
+ return bundle;
+}(0.85);
+function point$2(that, x, y) {
+ that._context.bezierCurveTo(
+ that._x1 + that._k * (that._x2 - that._x0),
+ that._y1 + that._k * (that._y2 - that._y0),
+ that._x2 + that._k * (that._x1 - x),
+ that._y2 + that._k * (that._y1 - y),
+ that._x2,
+ that._y2
+ );
+}
+function Cardinal(context, tension) {
+ this._context = context;
+ this._k = (1 - tension) / 6;
+}
+Cardinal.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:
+ point$2(this, this._x1, this._y1);
+ break;
+ }
+ if (this._line || this._line !== 0 && this._point === 1)
+ this._context.closePath();
+ this._line = 1 - this._line;
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
+ break;
+ case 1:
+ this._point = 2;
+ this._x1 = x, this._y1 = y;
+ break;
+ case 2:
+ this._point = 3;
+ default:
+ point$2(this, x, y);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
+ }
+};
+const curveCardinal = function custom2(tension) {
+ function cardinal(context) {
+ return new Cardinal(context, tension);
+ }
+ cardinal.tension = function(tension2) {
+ return custom2(+tension2);
+ };
+ return cardinal;
+}(0);
+function CardinalClosed(context, tension) {
+ this._context = context;
+ this._k = (1 - tension) / 6;
+}
+CardinalClosed.prototype = {
+ areaStart: noop,
+ areaEnd: noop,
+ 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);
+ break;
+ }
+ }
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._x3 = x, this._y3 = y;
+ break;
+ case 1:
+ this._point = 2;
+ this._context.moveTo(this._x4 = x, this._y4 = y);
+ break;
+ case 2:
+ this._point = 3;
+ this._x5 = x, this._y5 = y;
+ break;
+ default:
+ point$2(this, x, y);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
+ }
+};
+const curveCardinalClosed = function custom3(tension) {
+ function cardinal(context) {
+ return new CardinalClosed(context, tension);
+ }
+ cardinal.tension = function(tension2) {
+ return custom3(+tension2);
+ };
+ return cardinal;
+}(0);
+function CardinalOpen(context, tension) {
+ this._context = context;
+ this._k = (1 - tension) / 6;
+}
+CardinalOpen.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() {
+ if (this._line || this._line !== 0 && this._point === 3)
+ this._context.closePath();
+ this._line = 1 - this._line;
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ 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:
+ point$2(this, x, y);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
+ }
+};
+const curveCardinalOpen = function custom4(tension) {
+ function cardinal(context) {
+ return new CardinalOpen(context, tension);
+ }
+ cardinal.tension = function(tension2) {
+ return custom4(+tension2);
+ };
+ return cardinal;
+}(0);
+function point$1(that, x, y) {
+ var x1 = that._x1, y1 = that._y1, x2 = that._x2, y2 = that._y2;
+ if (that._l01_a > epsilon) {
+ var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, n = 3 * that._l01_a * (that._l01_a + that._l12_a);
+ x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
+ y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
+ }
+ if (that._l23_a > epsilon) {
+ var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, m = 3 * that._l23_a * (that._l23_a + that._l12_a);
+ x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
+ y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
+ }
+ that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
+}
+function CatmullRom(context, alpha) {
+ this._context = context;
+ this._alpha = alpha;
+}
+CatmullRom.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);
+ break;
+ }
+ if (this._line || this._line !== 0 && this._point === 1)
+ this._context.closePath();
+ this._line = 1 - this._line;
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ if (this._point) {
+ var x23 = this._x2 - x, y23 = this._y2 - y;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
+ }
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ default:
+ point$1(this, x, y);
+ break;
+ }
+ 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 = x;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
+ }
+};
+const curveCatmullRom = function custom5(alpha) {
+ function catmullRom(context) {
+ return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);
+ }
+ catmullRom.alpha = function(alpha2) {
+ return custom5(+alpha2);
+ };
+ return catmullRom;
+}(0.5);
+function CatmullRomClosed(context, alpha) {
+ this._context = context;
+ this._alpha = alpha;
+}
+CatmullRomClosed.prototype = {
+ areaStart: noop,
+ areaEnd: noop,
+ 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);
+ break;
+ }
+ }
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ if (this._point) {
+ var x23 = this._x2 - x, y23 = this._y2 - y;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
+ }
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._x3 = x, this._y3 = y;
+ break;
+ case 1:
+ this._point = 2;
+ this._context.moveTo(this._x4 = x, this._y4 = y);
+ break;
+ case 2:
+ this._point = 3;
+ this._x5 = x, this._y5 = y;
+ break;
+ default:
+ point$1(this, x, y);
+ break;
+ }
+ 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 = x;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
+ }
+};
+const curveCatmullRomClosed = function custom6(alpha) {
+ function catmullRom(context) {
+ return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);
+ }
+ catmullRom.alpha = function(alpha2) {
+ return custom6(+alpha2);
+ };
+ return catmullRom;
+}(0.5);
+function CatmullRomOpen(context, alpha) {
+ this._context = context;
+ this._alpha = alpha;
+}
+CatmullRomOpen.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() {
+ if (this._line || this._line !== 0 && this._point === 3)
+ this._context.closePath();
+ this._line = 1 - this._line;
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ if (this._point) {
+ var x23 = this._x2 - x, y23 = this._y2 - y;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, 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:
+ point$1(this, x, y);
+ break;
+ }
+ 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 = x;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
+ }
+};
+const curveCatmullRomOpen = function custom7(alpha) {
+ function catmullRom(context) {
+ return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);
+ }
+ catmullRom.alpha = function(alpha2) {
+ return custom7(+alpha2);
+ };
+ return catmullRom;
+}(0.5);
+function LinearClosed(context) {
+ this._context = context;
+}
+LinearClosed.prototype = {
+ areaStart: noop,
+ areaEnd: noop,
+ lineStart: function() {
+ this._point = 0;
+ },
+ lineEnd: function() {
+ if (this._point)
+ this._context.closePath();
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ if (this._point)
+ this._context.lineTo(x, y);
+ else
+ this._point = 1, this._context.moveTo(x, y);
+ }
+};
+function curveLinearClosed(context) {
+ return new LinearClosed(context);
+}
+function sign(x) {
+ return x < 0 ? -1 : 1;
+}
+function slope3(that, x2, y2) {
+ var h0 = that._x1 - that._x0, h1 = x2 - that._x1, s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), p = (s0 * h1 + s1 * h0) / (h0 + h1);
+ return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
+}
+function slope2(that, t) {
+ var h = that._x1 - that._x0;
+ return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
+}
+function point(that, t0, t1) {
+ var x0 = that._x0, y0 = that._y0, x1 = that._x1, y1 = that._y1, dx = (x1 - x0) / 3;
+ that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
+}
+function MonotoneX(context) {
+ this._context = context;
+}
+MonotoneX.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:
+ point(this, this._t0, slope2(this, this._t0));
+ break;
+ }
+ if (this._line || this._line !== 0 && this._point === 1)
+ this._context.closePath();
+ this._line = 1 - this._line;
+ },
+ point: function(x, y) {
+ var t1 = NaN;
+ x = +x, y = +y;
+ if (x === this._x1 && y === this._y1)
+ return;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ point(this, slope2(this, t1 = slope3(this, x, y)), t1);
+ break;
+ default:
+ point(this, this._t0, t1 = slope3(this, x, y));
+ break;
+ }
+ this._x0 = this._x1, this._x1 = x;
+ this._y0 = this._y1, this._y1 = y;
+ this._t0 = t1;
+ }
+};
+function MonotoneY(context) {
+ this._context = new ReflectContext(context);
+}
+(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
+ MonotoneX.prototype.point.call(this, y, x);
+};
+function ReflectContext(context) {
+ this._context = context;
+}
+ReflectContext.prototype = {
+ moveTo: function(x, y) {
+ this._context.moveTo(y, x);
+ },
+ closePath: function() {
+ this._context.closePath();
+ },
+ lineTo: function(x, y) {
+ this._context.lineTo(y, x);
+ },
+ bezierCurveTo: function(x1, y1, x2, y2, x, y) {
+ this._context.bezierCurveTo(y1, x1, y2, x2, y, x);
+ }
+};
+function monotoneX(context) {
+ return new MonotoneX(context);
+}
+function monotoneY(context) {
+ return new MonotoneY(context);
+}
+function Natural(context) {
+ this._context = context;
+}
+Natural.prototype = {
+ areaStart: function() {
+ this._line = 0;
+ },
+ areaEnd: function() {
+ this._line = NaN;
+ },
+ lineStart: function() {
+ this._x = [];
+ this._y = [];
+ },
+ lineEnd: function() {
+ var x = this._x, y = this._y, n = x.length;
+ if (n) {
+ this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
+ if (n === 2) {
+ this._context.lineTo(x[1], y[1]);
+ } else {
+ var px = controlPoints(x), py = controlPoints(y);
+ for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
+ this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
+ }
+ }
+ }
+ if (this._line || this._line !== 0 && n === 1)
+ this._context.closePath();
+ this._line = 1 - this._line;
+ this._x = this._y = null;
+ },
+ point: function(x, y) {
+ this._x.push(+x);
+ this._y.push(+y);
+ }
+};
+function controlPoints(x) {
+ var i, n = x.length - 1, m, a = new Array(n), b = new Array(n), r = new Array(n);
+ a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
+ for (i = 1; i < n - 1; ++i)
+ a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
+ a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
+ for (i = 1; i < n; ++i)
+ m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
+ a[n - 1] = r[n - 1] / b[n - 1];
+ for (i = n - 2; i >= 0; --i)
+ a[i] = (r[i] - a[i + 1]) / b[i];
+ b[n - 1] = (x[n] + a[n - 1]) / 2;
+ for (i = 0; i < n - 1; ++i)
+ b[i] = 2 * x[i + 1] - a[i + 1];
+ return [a, b];
+}
+function curveNatural(context) {
+ return new Natural(context);
+}
+function Step(context, t) {
+ this._context = context;
+ this._t = t;
+}
+Step.prototype = {
+ areaStart: function() {
+ this._line = 0;
+ },
+ areaEnd: function() {
+ this._line = NaN;
+ },
+ lineStart: function() {
+ this._x = this._y = NaN;
+ this._point = 0;
+ },
+ lineEnd: function() {
+ if (0 < this._t && this._t < 1 && this._point === 2)
+ this._context.lineTo(this._x, this._y);
+ if (this._line || this._line !== 0 && this._point === 1)
+ this._context.closePath();
+ if (this._line >= 0)
+ this._t = 1 - this._t, this._line = 1 - this._line;
+ },
+ point: function(x, y) {
+ x = +x, y = +y;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);
+ break;
+ case 1:
+ this._point = 2;
+ default: {
+ if (this._t <= 0) {
+ this._context.lineTo(this._x, y);
+ this._context.lineTo(x, y);
+ } else {
+ var x1 = this._x * (1 - this._t) + x * this._t;
+ this._context.lineTo(x1, this._y);
+ this._context.lineTo(x1, y);
+ }
+ break;
+ }
+ }
+ this._x = x, this._y = y;
+ }
+};
+function curveStep(context) {
+ return new Step(context, 0.5);
+}
+function stepBefore(context) {
+ return new Step(context, 0);
+}
+function stepAfter(context) {
+ return new Step(context, 1);
+}
+/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
+function isNothing(subject) {
+ return typeof subject === "undefined" || subject === null;
+}
+function isObject$1(subject) {
+ return typeof subject === "object" && subject !== null;
+}
+function toArray(sequence) {
+ if (Array.isArray(sequence))
+ return sequence;
+ else if (isNothing(sequence))
+ return [];
+ return [sequence];
+}
+function extend(target, source) {
+ var index, length, key, sourceKeys;
+ if (source) {
+ sourceKeys = Object.keys(source);
+ for (index = 0, length = sourceKeys.length; index < length; index += 1) {
+ key = sourceKeys[index];
+ target[key] = source[key];
+ }
+ }
+ return target;
+}
+function repeat(string, count) {
+ var result = "", cycle;
+ for (cycle = 0; cycle < count; cycle += 1) {
+ result += string;
+ }
+ return result;
+}
+function isNegativeZero(number) {
+ return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;
+}
+var isNothing_1 = isNothing;
+var isObject_1 = isObject$1;
+var toArray_1 = toArray;
+var repeat_1 = repeat;
+var isNegativeZero_1 = isNegativeZero;
+var extend_1 = extend;
+var common = {
+ isNothing: isNothing_1,
+ isObject: isObject_1,
+ toArray: toArray_1,
+ repeat: repeat_1,
+ isNegativeZero: isNegativeZero_1,
+ extend: extend_1
+};
+function formatError(exception2, compact) {
+ var where = "", message = exception2.reason || "(unknown reason)";
+ if (!exception2.mark)
+ return message;
+ if (exception2.mark.name) {
+ where += 'in "' + exception2.mark.name + '" ';
+ }
+ where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")";
+ if (!compact && exception2.mark.snippet) {
+ where += "\n\n" + exception2.mark.snippet;
+ }
+ return message + " " + where;
+}
+function YAMLException$1(reason, mark) {
+ Error.call(this);
+ this.name = "YAMLException";
+ this.reason = reason;
+ this.mark = mark;
+ this.message = formatError(this, false);
+ if (Error.captureStackTrace) {
+ Error.captureStackTrace(this, this.constructor);
+ } else {
+ this.stack = new Error().stack || "";
+ }
+}
+YAMLException$1.prototype = Object.create(Error.prototype);
+YAMLException$1.prototype.constructor = YAMLException$1;
+YAMLException$1.prototype.toString = function toString(compact) {
+ return this.name + ": " + formatError(this, compact);
+};
+var exception = YAMLException$1;
+function getLine(buffer, lineStart, lineEnd, position, maxLineLength) {
+ var head = "";
+ var tail = "";
+ var maxHalfLength = Math.floor(maxLineLength / 2) - 1;
+ if (position - lineStart > maxHalfLength) {
+ head = " ... ";
+ lineStart = position - maxHalfLength + head.length;
+ }
+ if (lineEnd - position > maxHalfLength) {
+ tail = " ...";
+ lineEnd = position + maxHalfLength - tail.length;
+ }
+ return {
+ str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "→") + tail,
+ pos: position - lineStart + head.length
+ // relative position
+ };
+}
+function padStart(string, max2) {
+ return common.repeat(" ", max2 - string.length) + string;
+}
+function makeSnippet(mark, options) {
+ options = Object.create(options || null);
+ if (!mark.buffer)
+ return null;
+ if (!options.maxLength)
+ options.maxLength = 79;
+ if (typeof options.indent !== "number")
+ options.indent = 1;
+ if (typeof options.linesBefore !== "number")
+ options.linesBefore = 3;
+ if (typeof options.linesAfter !== "number")
+ options.linesAfter = 2;
+ var re = /\r?\n|\r|\0/g;
+ var lineStarts = [0];
+ var lineEnds = [];
+ var match;
+ var foundLineNo = -1;
+ while (match = re.exec(mark.buffer)) {
+ lineEnds.push(match.index);
+ lineStarts.push(match.index + match[0].length);
+ if (mark.position <= match.index && foundLineNo < 0) {
+ foundLineNo = lineStarts.length - 2;
+ }
+ }
+ if (foundLineNo < 0)
+ foundLineNo = lineStarts.length - 1;
+ var result = "", i, line;
+ var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;
+ var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);
+ for (i = 1; i <= options.linesBefore; i++) {
+ if (foundLineNo - i < 0)
+ break;
+ line = getLine(
+ mark.buffer,
+ lineStarts[foundLineNo - i],
+ lineEnds[foundLineNo - i],
+ mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),
+ maxLineLength
+ );
+ result = common.repeat(" ", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line.str + "\n" + result;
+ }
+ line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
+ result += common.repeat(" ", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line.str + "\n";
+ result += common.repeat("-", options.indent + lineNoLength + 3 + line.pos) + "^\n";
+ for (i = 1; i <= options.linesAfter; i++) {
+ if (foundLineNo + i >= lineEnds.length)
+ break;
+ line = getLine(
+ mark.buffer,
+ lineStarts[foundLineNo + i],
+ lineEnds[foundLineNo + i],
+ mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),
+ maxLineLength
+ );
+ result += common.repeat(" ", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line.str + "\n";
+ }
+ return result.replace(/\n$/, "");
+}
+var snippet = makeSnippet;
+var TYPE_CONSTRUCTOR_OPTIONS = [
+ "kind",
+ "multi",
+ "resolve",
+ "construct",
+ "instanceOf",
+ "predicate",
+ "represent",
+ "representName",
+ "defaultStyle",
+ "styleAliases"
+];
+var YAML_NODE_KINDS = [
+ "scalar",
+ "sequence",
+ "mapping"
+];
+function compileStyleAliases(map2) {
+ var result = {};
+ if (map2 !== null) {
+ Object.keys(map2).forEach(function(style) {
+ map2[style].forEach(function(alias) {
+ result[String(alias)] = style;
+ });
+ });
+ }
+ return result;
+}
+function Type$1(tag, options) {
+ options = options || {};
+ Object.keys(options).forEach(function(name) {
+ if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
+ throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.');
+ }
+ });
+ this.options = options;
+ this.tag = tag;
+ this.kind = options["kind"] || null;
+ this.resolve = options["resolve"] || function() {
+ return true;
+ };
+ this.construct = options["construct"] || function(data) {
+ return data;
+ };
+ this.instanceOf = options["instanceOf"] || null;
+ this.predicate = options["predicate"] || null;
+ this.represent = options["represent"] || null;
+ this.representName = options["representName"] || null;
+ this.defaultStyle = options["defaultStyle"] || null;
+ this.multi = options["multi"] || false;
+ this.styleAliases = compileStyleAliases(options["styleAliases"] || null);
+ if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
+ throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
+ }
+}
+var type = Type$1;
+function compileList(schema2, name) {
+ var result = [];
+ schema2[name].forEach(function(currentType) {
+ var newIndex = result.length;
+ result.forEach(function(previousType, previousIndex) {
+ if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {
+ newIndex = previousIndex;
+ }
+ });
+ result[newIndex] = currentType;
+ });
+ return result;
+}
+function compileMap() {
+ var result = {
+ scalar: {},
+ sequence: {},
+ mapping: {},
+ fallback: {},
+ multi: {
+ scalar: [],
+ sequence: [],
+ mapping: [],
+ fallback: []
+ }
+ }, index, length;
+ function collectType(type2) {
+ if (type2.multi) {
+ result.multi[type2.kind].push(type2);
+ result.multi["fallback"].push(type2);
+ } else {
+ result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2;
+ }
+ }
+ for (index = 0, length = arguments.length; index < length; index += 1) {
+ arguments[index].forEach(collectType);
+ }
+ return result;
+}
+function Schema$1(definition) {
+ return this.extend(definition);
+}
+Schema$1.prototype.extend = function extend2(definition) {
+ var implicit = [];
+ var explicit = [];
+ if (definition instanceof type) {
+ explicit.push(definition);
+ } else if (Array.isArray(definition)) {
+ explicit = explicit.concat(definition);
+ } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {
+ if (definition.implicit)
+ implicit = implicit.concat(definition.implicit);
+ if (definition.explicit)
+ explicit = explicit.concat(definition.explicit);
+ } else {
+ throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
+ }
+ implicit.forEach(function(type$1) {
+ if (!(type$1 instanceof type)) {
+ throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
+ }
+ if (type$1.loadKind && type$1.loadKind !== "scalar") {
+ throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
+ }
+ if (type$1.multi) {
+ throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
+ }
+ });
+ explicit.forEach(function(type$1) {
+ if (!(type$1 instanceof type)) {
+ throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
+ }
+ });
+ var result = Object.create(Schema$1.prototype);
+ result.implicit = (this.implicit || []).concat(implicit);
+ result.explicit = (this.explicit || []).concat(explicit);
+ result.compiledImplicit = compileList(result, "implicit");
+ result.compiledExplicit = compileList(result, "explicit");
+ result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);
+ return result;
+};
+var schema = Schema$1;
+var str = new type("tag:yaml.org,2002:str", {
+ kind: "scalar",
+ construct: function(data) {
+ return data !== null ? data : "";
+ }
+});
+var seq = new type("tag:yaml.org,2002:seq", {
+ kind: "sequence",
+ construct: function(data) {
+ return data !== null ? data : [];
+ }
+});
+var map = new type("tag:yaml.org,2002:map", {
+ kind: "mapping",
+ construct: function(data) {
+ return data !== null ? data : {};
+ }
+});
+var failsafe = new schema({
+ explicit: [
+ str,
+ seq,
+ map
+ ]
+});
+function resolveYamlNull(data) {
+ if (data === null)
+ return true;
+ var max2 = data.length;
+ return max2 === 1 && data === "~" || max2 === 4 && (data === "null" || data === "Null" || data === "NULL");
+}
+function constructYamlNull() {
+ return null;
+}
+function isNull(object) {
+ return object === null;
+}
+var _null = new type("tag:yaml.org,2002:null", {
+ kind: "scalar",
+ resolve: resolveYamlNull,
+ construct: constructYamlNull,
+ predicate: isNull,
+ represent: {
+ canonical: function() {
+ return "~";
+ },
+ lowercase: function() {
+ return "null";
+ },
+ uppercase: function() {
+ return "NULL";
+ },
+ camelcase: function() {
+ return "Null";
+ },
+ empty: function() {
+ return "";
+ }
+ },
+ defaultStyle: "lowercase"
+});
+function resolveYamlBoolean(data) {
+ if (data === null)
+ return false;
+ var max2 = data.length;
+ return max2 === 4 && (data === "true" || data === "True" || data === "TRUE") || max2 === 5 && (data === "false" || data === "False" || data === "FALSE");
+}
+function constructYamlBoolean(data) {
+ return data === "true" || data === "True" || data === "TRUE";
+}
+function isBoolean(object) {
+ return Object.prototype.toString.call(object) === "[object Boolean]";
+}
+var bool = new type("tag:yaml.org,2002:bool", {
+ kind: "scalar",
+ resolve: resolveYamlBoolean,
+ construct: constructYamlBoolean,
+ predicate: isBoolean,
+ represent: {
+ lowercase: function(object) {
+ return object ? "true" : "false";
+ },
+ uppercase: function(object) {
+ return object ? "TRUE" : "FALSE";
+ },
+ camelcase: function(object) {
+ return object ? "True" : "False";
+ }
+ },
+ defaultStyle: "lowercase"
+});
+function isHexCode(c) {
+ return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102;
+}
+function isOctCode(c) {
+ return 48 <= c && c <= 55;
+}
+function isDecCode(c) {
+ return 48 <= c && c <= 57;
+}
+function resolveYamlInteger(data) {
+ if (data === null)
+ return false;
+ var max2 = data.length, index = 0, hasDigits = false, ch;
+ if (!max2)
+ return false;
+ ch = data[index];
+ if (ch === "-" || ch === "+") {
+ ch = data[++index];
+ }
+ if (ch === "0") {
+ if (index + 1 === max2)
+ return true;
+ ch = data[++index];
+ if (ch === "b") {
+ index++;
+ for (; index < max2; index++) {
+ ch = data[index];
+ if (ch === "_")
+ continue;
+ if (ch !== "0" && ch !== "1")
+ return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== "_";
+ }
+ if (ch === "x") {
+ index++;
+ for (; index < max2; index++) {
+ ch = data[index];
+ if (ch === "_")
+ continue;
+ if (!isHexCode(data.charCodeAt(index)))
+ return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== "_";
+ }
+ if (ch === "o") {
+ index++;
+ for (; index < max2; index++) {
+ ch = data[index];
+ if (ch === "_")
+ continue;
+ if (!isOctCode(data.charCodeAt(index)))
+ return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== "_";
+ }
+ }
+ if (ch === "_")
+ return false;
+ for (; index < max2; index++) {
+ ch = data[index];
+ if (ch === "_")
+ continue;
+ if (!isDecCode(data.charCodeAt(index))) {
+ return false;
+ }
+ hasDigits = true;
+ }
+ if (!hasDigits || ch === "_")
+ return false;
+ return true;
+}
+function constructYamlInteger(data) {
+ var value = data, sign2 = 1, ch;
+ if (value.indexOf("_") !== -1) {
+ value = value.replace(/_/g, "");
+ }
+ ch = value[0];
+ if (ch === "-" || ch === "+") {
+ if (ch === "-")
+ sign2 = -1;
+ value = value.slice(1);
+ ch = value[0];
+ }
+ if (value === "0")
+ return 0;
+ if (ch === "0") {
+ if (value[1] === "b")
+ return sign2 * parseInt(value.slice(2), 2);
+ if (value[1] === "x")
+ return sign2 * parseInt(value.slice(2), 16);
+ if (value[1] === "o")
+ return sign2 * parseInt(value.slice(2), 8);
+ }
+ return sign2 * parseInt(value, 10);
+}
+function isInteger(object) {
+ return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object));
+}
+var int = new type("tag:yaml.org,2002:int", {
+ kind: "scalar",
+ resolve: resolveYamlInteger,
+ construct: constructYamlInteger,
+ predicate: isInteger,
+ represent: {
+ binary: function(obj) {
+ return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1);
+ },
+ octal: function(obj) {
+ return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1);
+ },
+ decimal: function(obj) {
+ return obj.toString(10);
+ },
+ /* eslint-disable max-len */
+ hexadecimal: function(obj) {
+ return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1);
+ }
+ },
+ defaultStyle: "decimal",
+ styleAliases: {
+ binary: [2, "bin"],
+ octal: [8, "oct"],
+ decimal: [10, "dec"],
+ hexadecimal: [16, "hex"]
+ }
+});
+var YAML_FLOAT_PATTERN = new RegExp(
+ // 2.5e4, 2.5 and integers
+ "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
+);
+function resolveYamlFloat(data) {
+ if (data === null)
+ return false;
+ if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`
+ // Probably should update regexp & check speed
+ data[data.length - 1] === "_") {
+ return false;
+ }
+ return true;
+}
+function constructYamlFloat(data) {
+ var value, sign2;
+ value = data.replace(/_/g, "").toLowerCase();
+ sign2 = value[0] === "-" ? -1 : 1;
+ if ("+-".indexOf(value[0]) >= 0) {
+ value = value.slice(1);
+ }
+ if (value === ".inf") {
+ return sign2 === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
+ } else if (value === ".nan") {
+ return NaN;
+ }
+ return sign2 * parseFloat(value, 10);
+}
+var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
+function representYamlFloat(object, style) {
+ var res;
+ if (isNaN(object)) {
+ switch (style) {
+ case "lowercase":
+ return ".nan";
+ case "uppercase":
+ return ".NAN";
+ case "camelcase":
+ return ".NaN";
+ }
+ } else if (Number.POSITIVE_INFINITY === object) {
+ switch (style) {
+ case "lowercase":
+ return ".inf";
+ case "uppercase":
+ return ".INF";
+ case "camelcase":
+ return ".Inf";
+ }
+ } else if (Number.NEGATIVE_INFINITY === object) {
+ switch (style) {
+ case "lowercase":
+ return "-.inf";
+ case "uppercase":
+ return "-.INF";
+ case "camelcase":
+ return "-.Inf";
+ }
+ } else if (common.isNegativeZero(object)) {
+ return "-0.0";
+ }
+ res = object.toString(10);
+ return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res;
+}
+function isFloat(object) {
+ return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object));
+}
+var float = new type("tag:yaml.org,2002:float", {
+ kind: "scalar",
+ resolve: resolveYamlFloat,
+ construct: constructYamlFloat,
+ predicate: isFloat,
+ represent: representYamlFloat,
+ defaultStyle: "lowercase"
+});
+var json = failsafe.extend({
+ implicit: [
+ _null,
+ bool,
+ int,
+ float
+ ]
+});
+var core = json;
+var YAML_DATE_REGEXP = new RegExp(
+ "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
+);
+var YAML_TIMESTAMP_REGEXP = new RegExp(
+ "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"
+);
+function resolveYamlTimestamp(data) {
+ if (data === null)
+ return false;
+ if (YAML_DATE_REGEXP.exec(data) !== null)
+ return true;
+ if (YAML_TIMESTAMP_REGEXP.exec(data) !== null)
+ return true;
+ return false;
+}
+function constructYamlTimestamp(data) {
+ var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;
+ match = YAML_DATE_REGEXP.exec(data);
+ if (match === null)
+ match = YAML_TIMESTAMP_REGEXP.exec(data);
+ if (match === null)
+ throw new Error("Date resolve error");
+ year = +match[1];
+ month = +match[2] - 1;
+ day = +match[3];
+ if (!match[4]) {
+ return new Date(Date.UTC(year, month, day));
+ }
+ hour = +match[4];
+ minute = +match[5];
+ second = +match[6];
+ if (match[7]) {
+ fraction = match[7].slice(0, 3);
+ while (fraction.length < 3) {
+ fraction += "0";
+ }
+ fraction = +fraction;
+ }
+ if (match[9]) {
+ tz_hour = +match[10];
+ tz_minute = +(match[11] || 0);
+ delta = (tz_hour * 60 + tz_minute) * 6e4;
+ if (match[9] === "-")
+ delta = -delta;
+ }
+ date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));
+ if (delta)
+ date.setTime(date.getTime() - delta);
+ return date;
+}
+function representYamlTimestamp(object) {
+ return object.toISOString();
+}
+var timestamp = new type("tag:yaml.org,2002:timestamp", {
+ kind: "scalar",
+ resolve: resolveYamlTimestamp,
+ construct: constructYamlTimestamp,
+ instanceOf: Date,
+ represent: representYamlTimestamp
+});
+function resolveYamlMerge(data) {
+ return data === "<<" || data === null;
+}
+var merge = new type("tag:yaml.org,2002:merge", {
+ kind: "scalar",
+ resolve: resolveYamlMerge
+});
+var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";
+function resolveYamlBinary(data) {
+ if (data === null)
+ return false;
+ var code, idx, bitlen = 0, max2 = data.length, map2 = BASE64_MAP;
+ for (idx = 0; idx < max2; idx++) {
+ code = map2.indexOf(data.charAt(idx));
+ if (code > 64)
+ continue;
+ if (code < 0)
+ return false;
+ bitlen += 6;
+ }
+ return bitlen % 8 === 0;
+}
+function constructYamlBinary(data) {
+ var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max2 = input.length, map2 = BASE64_MAP, bits = 0, result = [];
+ for (idx = 0; idx < max2; idx++) {
+ if (idx % 4 === 0 && idx) {
+ result.push(bits >> 16 & 255);
+ result.push(bits >> 8 & 255);
+ result.push(bits & 255);
+ }
+ bits = bits << 6 | map2.indexOf(input.charAt(idx));
+ }
+ tailbits = max2 % 4 * 6;
+ if (tailbits === 0) {
+ result.push(bits >> 16 & 255);
+ result.push(bits >> 8 & 255);
+ result.push(bits & 255);
+ } else if (tailbits === 18) {
+ result.push(bits >> 10 & 255);
+ result.push(bits >> 2 & 255);
+ } else if (tailbits === 12) {
+ result.push(bits >> 4 & 255);
+ }
+ return new Uint8Array(result);
+}
+function representYamlBinary(object) {
+ var result = "", bits = 0, idx, tail, max2 = object.length, map2 = BASE64_MAP;
+ for (idx = 0; idx < max2; idx++) {
+ if (idx % 3 === 0 && idx) {
+ result += map2[bits >> 18 & 63];
+ result += map2[bits >> 12 & 63];
+ result += map2[bits >> 6 & 63];
+ result += map2[bits & 63];
+ }
+ bits = (bits << 8) + object[idx];
+ }
+ tail = max2 % 3;
+ if (tail === 0) {
+ result += map2[bits >> 18 & 63];
+ result += map2[bits >> 12 & 63];
+ result += map2[bits >> 6 & 63];
+ result += map2[bits & 63];
+ } else if (tail === 2) {
+ result += map2[bits >> 10 & 63];
+ result += map2[bits >> 4 & 63];
+ result += map2[bits << 2 & 63];
+ result += map2[64];
+ } else if (tail === 1) {
+ result += map2[bits >> 2 & 63];
+ result += map2[bits << 4 & 63];
+ result += map2[64];
+ result += map2[64];
+ }
+ return result;
+}
+function isBinary(obj) {
+ return Object.prototype.toString.call(obj) === "[object Uint8Array]";
+}
+var binary = new type("tag:yaml.org,2002:binary", {
+ kind: "scalar",
+ resolve: resolveYamlBinary,
+ construct: constructYamlBinary,
+ predicate: isBinary,
+ represent: representYamlBinary
+});
+var _hasOwnProperty$3 = Object.prototype.hasOwnProperty;
+var _toString$2 = Object.prototype.toString;
+function resolveYamlOmap(data) {
+ if (data === null)
+ return true;
+ var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;
+ for (index = 0, length = object.length; index < length; index += 1) {
+ pair = object[index];
+ pairHasKey = false;
+ if (_toString$2.call(pair) !== "[object Object]")
+ return false;
+ for (pairKey in pair) {
+ if (_hasOwnProperty$3.call(pair, pairKey)) {
+ if (!pairHasKey)
+ pairHasKey = true;
+ else
+ return false;
+ }
+ }
+ if (!pairHasKey)
+ return false;
+ if (objectKeys.indexOf(pairKey) === -1)
+ objectKeys.push(pairKey);
+ else
+ return false;
+ }
+ return true;
+}
+function constructYamlOmap(data) {
+ return data !== null ? data : [];
+}
+var omap = new type("tag:yaml.org,2002:omap", {
+ kind: "sequence",
+ resolve: resolveYamlOmap,
+ construct: constructYamlOmap
+});
+var _toString$1 = Object.prototype.toString;
+function resolveYamlPairs(data) {
+ if (data === null)
+ return true;
+ var index, length, pair, keys, result, object = data;
+ result = new Array(object.length);
+ for (index = 0, length = object.length; index < length; index += 1) {
+ pair = object[index];
+ if (_toString$1.call(pair) !== "[object Object]")
+ return false;
+ keys = Object.keys(pair);
+ if (keys.length !== 1)
+ return false;
+ result[index] = [keys[0], pair[keys[0]]];
+ }
+ return true;
+}
+function constructYamlPairs(data) {
+ if (data === null)
+ return [];
+ var index, length, pair, keys, result, object = data;
+ result = new Array(object.length);
+ for (index = 0, length = object.length; index < length; index += 1) {
+ pair = object[index];
+ keys = Object.keys(pair);
+ result[index] = [keys[0], pair[keys[0]]];
+ }
+ return result;
+}
+var pairs = new type("tag:yaml.org,2002:pairs", {
+ kind: "sequence",
+ resolve: resolveYamlPairs,
+ construct: constructYamlPairs
+});
+var _hasOwnProperty$2 = Object.prototype.hasOwnProperty;
+function resolveYamlSet(data) {
+ if (data === null)
+ return true;
+ var key, object = data;
+ for (key in object) {
+ if (_hasOwnProperty$2.call(object, key)) {
+ if (object[key] !== null)
+ return false;
+ }
+ }
+ return true;
+}
+function constructYamlSet(data) {
+ return data !== null ? data : {};
+}
+var set = new type("tag:yaml.org,2002:set", {
+ kind: "mapping",
+ resolve: resolveYamlSet,
+ construct: constructYamlSet
+});
+var _default = core.extend({
+ implicit: [
+ timestamp,
+ merge
+ ],
+ explicit: [
+ binary,
+ omap,
+ pairs,
+ set
+ ]
+});
+var _hasOwnProperty$1 = Object.prototype.hasOwnProperty;
+var CONTEXT_FLOW_IN = 1;
+var CONTEXT_FLOW_OUT = 2;
+var CONTEXT_BLOCK_IN = 3;
+var CONTEXT_BLOCK_OUT = 4;
+var CHOMPING_CLIP = 1;
+var CHOMPING_STRIP = 2;
+var CHOMPING_KEEP = 3;
+var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
+var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/;
+var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i;
+var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
+function _class(obj) {
+ return Object.prototype.toString.call(obj);
+}
+function is_EOL(c) {
+ return c === 10 || c === 13;
+}
+function is_WHITE_SPACE(c) {
+ return c === 9 || c === 32;
+}
+function is_WS_OR_EOL(c) {
+ return c === 9 || c === 32 || c === 10 || c === 13;
+}
+function is_FLOW_INDICATOR(c) {
+ return c === 44 || c === 91 || c === 93 || c === 123 || c === 125;
+}
+function fromHexCode(c) {
+ var lc;
+ if (48 <= c && c <= 57) {
+ return c - 48;
+ }
+ lc = c | 32;
+ if (97 <= lc && lc <= 102) {
+ return lc - 97 + 10;
+ }
+ return -1;
+}
+function escapedHexLen(c) {
+ if (c === 120) {
+ return 2;
+ }
+ if (c === 117) {
+ return 4;
+ }
+ if (c === 85) {
+ return 8;
+ }
+ return 0;
+}
+function fromDecimalCode(c) {
+ if (48 <= c && c <= 57) {
+ return c - 48;
+ }
+ return -1;
+}
+function simpleEscapeSequence(c) {
+ return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? " " : c === 9 ? " " : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "
" : c === 95 ? " " : c === 76 ? "\u2028" : c === 80 ? "\u2029" : "";
+}
+function charFromCodepoint(c) {
+ if (c <= 65535) {
+ return String.fromCharCode(c);
+ }
+ return String.fromCharCode(
+ (c - 65536 >> 10) + 55296,
+ (c - 65536 & 1023) + 56320
+ );
+}
+var simpleEscapeCheck = new Array(256);
+var simpleEscapeMap = new Array(256);
+for (var i = 0; i < 256; i++) {
+ simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
+ simpleEscapeMap[i] = simpleEscapeSequence(i);
+}
+function State$1(input, options) {
+ this.input = input;
+ this.filename = options["filename"] || null;
+ this.schema = options["schema"] || _default;
+ this.onWarning = options["onWarning"] || null;
+ this.legacy = options["legacy"] || false;
+ this.json = options["json"] || false;
+ this.listener = options["listener"] || null;
+ this.implicitTypes = this.schema.compiledImplicit;
+ this.typeMap = this.schema.compiledTypeMap;
+ this.length = input.length;
+ this.position = 0;
+ this.line = 0;
+ this.lineStart = 0;
+ this.lineIndent = 0;
+ this.firstTabInLine = -1;
+ this.documents = [];
+}
+function generateError(state, message) {
+ var mark = {
+ name: state.filename,
+ buffer: state.input.slice(0, -1),
+ // omit trailing \0
+ position: state.position,
+ line: state.line,
+ column: state.position - state.lineStart
+ };
+ mark.snippet = snippet(mark);
+ return new exception(message, mark);
+}
+function throwError(state, message) {
+ throw generateError(state, message);
+}
+function throwWarning(state, message) {
+ if (state.onWarning) {
+ state.onWarning.call(null, generateError(state, message));
+ }
+}
+var directiveHandlers = {
+ YAML: function handleYamlDirective(state, name, args) {
+ var match, major, minor;
+ if (state.version !== null) {
+ throwError(state, "duplication of %YAML directive");
+ }
+ if (args.length !== 1) {
+ throwError(state, "YAML directive accepts exactly one argument");
+ }
+ match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);
+ if (match === null) {
+ throwError(state, "ill-formed argument of the YAML directive");
+ }
+ major = parseInt(match[1], 10);
+ minor = parseInt(match[2], 10);
+ if (major !== 1) {
+ throwError(state, "unacceptable YAML version of the document");
+ }
+ state.version = args[0];
+ state.checkLineBreaks = minor < 2;
+ if (minor !== 1 && minor !== 2) {
+ throwWarning(state, "unsupported YAML version of the document");
+ }
+ },
+ TAG: function handleTagDirective(state, name, args) {
+ var handle, prefix;
+ if (args.length !== 2) {
+ throwError(state, "TAG directive accepts exactly two arguments");
+ }
+ handle = args[0];
+ prefix = args[1];
+ if (!PATTERN_TAG_HANDLE.test(handle)) {
+ throwError(state, "ill-formed tag handle (first argument) of the TAG directive");
+ }
+ if (_hasOwnProperty$1.call(state.tagMap, handle)) {
+ throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle');
+ }
+ if (!PATTERN_TAG_URI.test(prefix)) {
+ throwError(state, "ill-formed tag prefix (second argument) of the TAG directive");
+ }
+ try {
+ prefix = decodeURIComponent(prefix);
+ } catch (err) {
+ throwError(state, "tag prefix is malformed: " + prefix);
+ }
+ state.tagMap[handle] = prefix;
+ }
+};
+function captureSegment(state, start, end, checkJson) {
+ var _position, _length, _character, _result;
+ if (start < end) {
+ _result = state.input.slice(start, end);
+ if (checkJson) {
+ for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
+ _character = _result.charCodeAt(_position);
+ if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {
+ throwError(state, "expected valid JSON character");
+ }
+ }
+ } else if (PATTERN_NON_PRINTABLE.test(_result)) {
+ throwError(state, "the stream contains non-printable characters");
+ }
+ state.result += _result;
+ }
+}
+function mergeMappings(state, destination, source, overridableKeys) {
+ var sourceKeys, key, index, quantity;
+ if (!common.isObject(source)) {
+ throwError(state, "cannot merge mappings; the provided source object is unacceptable");
+ }
+ sourceKeys = Object.keys(source);
+ for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
+ key = sourceKeys[index];
+ if (!_hasOwnProperty$1.call(destination, key)) {
+ destination[key] = source[key];
+ overridableKeys[key] = true;
+ }
+ }
+}
+function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {
+ var index, quantity;
+ if (Array.isArray(keyNode)) {
+ keyNode = Array.prototype.slice.call(keyNode);
+ for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
+ if (Array.isArray(keyNode[index])) {
+ throwError(state, "nested arrays are not supported inside keys");
+ }
+ if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") {
+ keyNode[index] = "[object Object]";
+ }
+ }
+ }
+ if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") {
+ keyNode = "[object Object]";
+ }
+ keyNode = String(keyNode);
+ if (_result === null) {
+ _result = {};
+ }
+ if (keyTag === "tag:yaml.org,2002:merge") {
+ if (Array.isArray(valueNode)) {
+ for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
+ mergeMappings(state, _result, valueNode[index], overridableKeys);
+ }
+ } else {
+ mergeMappings(state, _result, valueNode, overridableKeys);
+ }
+ } else {
+ if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {
+ state.line = startLine || state.line;
+ state.lineStart = startLineStart || state.lineStart;
+ state.position = startPos || state.position;
+ throwError(state, "duplicated mapping key");
+ }
+ if (keyNode === "__proto__") {
+ Object.defineProperty(_result, keyNode, {
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ value: valueNode
+ });
+ } else {
+ _result[keyNode] = valueNode;
+ }
+ delete overridableKeys[keyNode];
+ }
+ return _result;
+}
+function readLineBreak(state) {
+ var ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch === 10) {
+ state.position++;
+ } else if (ch === 13) {
+ state.position++;
+ if (state.input.charCodeAt(state.position) === 10) {
+ state.position++;
+ }
+ } else {
+ throwError(state, "a line break is expected");
+ }
+ state.line += 1;
+ state.lineStart = state.position;
+ state.firstTabInLine = -1;
+}
+function skipSeparationSpace(state, allowComments, checkIndent) {
+ var lineBreaks = 0, ch = state.input.charCodeAt(state.position);
+ while (ch !== 0) {
+ while (is_WHITE_SPACE(ch)) {
+ if (ch === 9 && state.firstTabInLine === -1) {
+ state.firstTabInLine = state.position;
+ }
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (allowComments && ch === 35) {
+ do {
+ ch = state.input.charCodeAt(++state.position);
+ } while (ch !== 10 && ch !== 13 && ch !== 0);
+ }
+ if (is_EOL(ch)) {
+ readLineBreak(state);
+ ch = state.input.charCodeAt(state.position);
+ lineBreaks++;
+ state.lineIndent = 0;
+ while (ch === 32) {
+ state.lineIndent++;
+ ch = state.input.charCodeAt(++state.position);
+ }
+ } else {
+ break;
+ }
+ }
+ if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {
+ throwWarning(state, "deficient indentation");
+ }
+ return lineBreaks;
+}
+function testDocumentSeparator(state) {
+ var _position = state.position, ch;
+ ch = state.input.charCodeAt(_position);
+ if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {
+ _position += 3;
+ ch = state.input.charCodeAt(_position);
+ if (ch === 0 || is_WS_OR_EOL(ch)) {
+ return true;
+ }
+ }
+ return false;
+}
+function writeFoldedLines(state, count) {
+ if (count === 1) {
+ state.result += " ";
+ } else if (count > 1) {
+ state.result += common.repeat("\n", count - 1);
+ }
+}
+function readPlainScalar(state, nodeIndent, withinFlowCollection) {
+ var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {
+ return false;
+ }
+ if (ch === 63 || ch === 45) {
+ following = state.input.charCodeAt(state.position + 1);
+ if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
+ return false;
+ }
+ }
+ state.kind = "scalar";
+ state.result = "";
+ captureStart = captureEnd = state.position;
+ hasPendingContent = false;
+ while (ch !== 0) {
+ if (ch === 58) {
+ following = state.input.charCodeAt(state.position + 1);
+ if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
+ break;
+ }
+ } else if (ch === 35) {
+ preceding = state.input.charCodeAt(state.position - 1);
+ if (is_WS_OR_EOL(preceding)) {
+ break;
+ }
+ } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {
+ break;
+ } else if (is_EOL(ch)) {
+ _line = state.line;
+ _lineStart = state.lineStart;
+ _lineIndent = state.lineIndent;
+ skipSeparationSpace(state, false, -1);
+ if (state.lineIndent >= nodeIndent) {
+ hasPendingContent = true;
+ ch = state.input.charCodeAt(state.position);
+ continue;
+ } else {
+ state.position = captureEnd;
+ state.line = _line;
+ state.lineStart = _lineStart;
+ state.lineIndent = _lineIndent;
+ break;
+ }
+ }
+ if (hasPendingContent) {
+ captureSegment(state, captureStart, captureEnd, false);
+ writeFoldedLines(state, state.line - _line);
+ captureStart = captureEnd = state.position;
+ hasPendingContent = false;
+ }
+ if (!is_WHITE_SPACE(ch)) {
+ captureEnd = state.position + 1;
+ }
+ ch = state.input.charCodeAt(++state.position);
+ }
+ captureSegment(state, captureStart, captureEnd, false);
+ if (state.result) {
+ return true;
+ }
+ state.kind = _kind;
+ state.result = _result;
+ return false;
+}
+function readSingleQuotedScalar(state, nodeIndent) {
+ var ch, captureStart, captureEnd;
+ ch = state.input.charCodeAt(state.position);
+ if (ch !== 39) {
+ return false;
+ }
+ state.kind = "scalar";
+ state.result = "";
+ state.position++;
+ captureStart = captureEnd = state.position;
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
+ if (ch === 39) {
+ captureSegment(state, captureStart, state.position, true);
+ ch = state.input.charCodeAt(++state.position);
+ if (ch === 39) {
+ captureStart = state.position;
+ state.position++;
+ captureEnd = state.position;
+ } else {
+ return true;
+ }
+ } else if (is_EOL(ch)) {
+ captureSegment(state, captureStart, captureEnd, true);
+ writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
+ captureStart = captureEnd = state.position;
+ } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
+ throwError(state, "unexpected end of the document within a single quoted scalar");
+ } else {
+ state.position++;
+ captureEnd = state.position;
+ }
+ }
+ throwError(state, "unexpected end of the stream within a single quoted scalar");
+}
+function readDoubleQuotedScalar(state, nodeIndent) {
+ var captureStart, captureEnd, hexLength, hexResult, tmp, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch !== 34) {
+ return false;
+ }
+ state.kind = "scalar";
+ state.result = "";
+ state.position++;
+ captureStart = captureEnd = state.position;
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
+ if (ch === 34) {
+ captureSegment(state, captureStart, state.position, true);
+ state.position++;
+ return true;
+ } else if (ch === 92) {
+ captureSegment(state, captureStart, state.position, true);
+ ch = state.input.charCodeAt(++state.position);
+ if (is_EOL(ch)) {
+ skipSeparationSpace(state, false, nodeIndent);
+ } else if (ch < 256 && simpleEscapeCheck[ch]) {
+ state.result += simpleEscapeMap[ch];
+ state.position++;
+ } else if ((tmp = escapedHexLen(ch)) > 0) {
+ hexLength = tmp;
+ hexResult = 0;
+ for (; hexLength > 0; hexLength--) {
+ ch = state.input.charCodeAt(++state.position);
+ if ((tmp = fromHexCode(ch)) >= 0) {
+ hexResult = (hexResult << 4) + tmp;
+ } else {
+ throwError(state, "expected hexadecimal character");
+ }
+ }
+ state.result += charFromCodepoint(hexResult);
+ state.position++;
+ } else {
+ throwError(state, "unknown escape sequence");
+ }
+ captureStart = captureEnd = state.position;
+ } else if (is_EOL(ch)) {
+ captureSegment(state, captureStart, captureEnd, true);
+ writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
+ captureStart = captureEnd = state.position;
+ } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
+ throwError(state, "unexpected end of the document within a double quoted scalar");
+ } else {
+ state.position++;
+ captureEnd = state.position;
+ }
+ }
+ throwError(state, "unexpected end of the stream within a double quoted scalar");
+}
+function readFlowCollection(state, nodeIndent) {
+ var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch === 91) {
+ terminator = 93;
+ isMapping = false;
+ _result = [];
+ } else if (ch === 123) {
+ terminator = 125;
+ isMapping = true;
+ _result = {};
+ } else {
+ return false;
+ }
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = _result;
+ }
+ ch = state.input.charCodeAt(++state.position);
+ while (ch !== 0) {
+ skipSeparationSpace(state, true, nodeIndent);
+ ch = state.input.charCodeAt(state.position);
+ if (ch === terminator) {
+ state.position++;
+ state.tag = _tag;
+ state.anchor = _anchor;
+ state.kind = isMapping ? "mapping" : "sequence";
+ state.result = _result;
+ return true;
+ } else if (!readNext) {
+ throwError(state, "missed comma between flow collection entries");
+ } else if (ch === 44) {
+ throwError(state, "expected the node content, but found ','");
+ }
+ keyTag = keyNode = valueNode = null;
+ isPair = isExplicitPair = false;
+ if (ch === 63) {
+ following = state.input.charCodeAt(state.position + 1);
+ if (is_WS_OR_EOL(following)) {
+ isPair = isExplicitPair = true;
+ state.position++;
+ skipSeparationSpace(state, true, nodeIndent);
+ }
+ }
+ _line = state.line;
+ _lineStart = state.lineStart;
+ _pos = state.position;
+ composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
+ keyTag = state.tag;
+ keyNode = state.result;
+ skipSeparationSpace(state, true, nodeIndent);
+ ch = state.input.charCodeAt(state.position);
+ if ((isExplicitPair || state.line === _line) && ch === 58) {
+ isPair = true;
+ ch = state.input.charCodeAt(++state.position);
+ skipSeparationSpace(state, true, nodeIndent);
+ composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
+ valueNode = state.result;
+ }
+ if (isMapping) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);
+ } else if (isPair) {
+ _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));
+ } else {
+ _result.push(keyNode);
+ }
+ skipSeparationSpace(state, true, nodeIndent);
+ ch = state.input.charCodeAt(state.position);
+ if (ch === 44) {
+ readNext = true;
+ ch = state.input.charCodeAt(++state.position);
+ } else {
+ readNext = false;
+ }
+ }
+ throwError(state, "unexpected end of the stream within a flow collection");
+}
+function readBlockScalar(state, nodeIndent) {
+ var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch === 124) {
+ folding = false;
+ } else if (ch === 62) {
+ folding = true;
+ } else {
+ return false;
+ }
+ state.kind = "scalar";
+ state.result = "";
+ while (ch !== 0) {
+ ch = state.input.charCodeAt(++state.position);
+ if (ch === 43 || ch === 45) {
+ if (CHOMPING_CLIP === chomping) {
+ chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;
+ } else {
+ throwError(state, "repeat of a chomping mode identifier");
+ }
+ } else if ((tmp = fromDecimalCode(ch)) >= 0) {
+ if (tmp === 0) {
+ throwError(state, "bad explicit indentation width of a block scalar; it cannot be less than one");
+ } else if (!detectedIndent) {
+ textIndent = nodeIndent + tmp - 1;
+ detectedIndent = true;
+ } else {
+ throwError(state, "repeat of an indentation width identifier");
+ }
+ } else {
+ break;
+ }
+ }
+ if (is_WHITE_SPACE(ch)) {
+ do {
+ ch = state.input.charCodeAt(++state.position);
+ } while (is_WHITE_SPACE(ch));
+ if (ch === 35) {
+ do {
+ ch = state.input.charCodeAt(++state.position);
+ } while (!is_EOL(ch) && ch !== 0);
+ }
+ }
+ while (ch !== 0) {
+ readLineBreak(state);
+ state.lineIndent = 0;
+ ch = state.input.charCodeAt(state.position);
+ while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) {
+ state.lineIndent++;
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (!detectedIndent && state.lineIndent > textIndent) {
+ textIndent = state.lineIndent;
+ }
+ if (is_EOL(ch)) {
+ emptyLines++;
+ continue;
+ }
+ if (state.lineIndent < textIndent) {
+ if (chomping === CHOMPING_KEEP) {
+ state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
+ } else if (chomping === CHOMPING_CLIP) {
+ if (didReadContent) {
+ state.result += "\n";
+ }
+ }
+ break;
+ }
+ if (folding) {
+ if (is_WHITE_SPACE(ch)) {
+ atMoreIndented = true;
+ state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
+ } else if (atMoreIndented) {
+ atMoreIndented = false;
+ state.result += common.repeat("\n", emptyLines + 1);
+ } else if (emptyLines === 0) {
+ if (didReadContent) {
+ state.result += " ";
+ }
+ } else {
+ state.result += common.repeat("\n", emptyLines);
+ }
+ } else {
+ state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
+ }
+ didReadContent = true;
+ detectedIndent = true;
+ emptyLines = 0;
+ captureStart = state.position;
+ while (!is_EOL(ch) && ch !== 0) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ captureSegment(state, captureStart, state.position, false);
+ }
+ return true;
+}
+function readBlockSequence(state, nodeIndent) {
+ var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch;
+ if (state.firstTabInLine !== -1)
+ return false;
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = _result;
+ }
+ ch = state.input.charCodeAt(state.position);
+ while (ch !== 0) {
+ if (state.firstTabInLine !== -1) {
+ state.position = state.firstTabInLine;
+ throwError(state, "tab characters must not be used in indentation");
+ }
+ if (ch !== 45) {
+ break;
+ }
+ following = state.input.charCodeAt(state.position + 1);
+ if (!is_WS_OR_EOL(following)) {
+ break;
+ }
+ detected = true;
+ state.position++;
+ if (skipSeparationSpace(state, true, -1)) {
+ if (state.lineIndent <= nodeIndent) {
+ _result.push(null);
+ ch = state.input.charCodeAt(state.position);
+ continue;
+ }
+ }
+ _line = state.line;
+ composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);
+ _result.push(state.result);
+ skipSeparationSpace(state, true, -1);
+ ch = state.input.charCodeAt(state.position);
+ if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {
+ throwError(state, "bad indentation of a sequence entry");
+ } else if (state.lineIndent < nodeIndent) {
+ break;
+ }
+ }
+ if (detected) {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ state.kind = "sequence";
+ state.result = _result;
+ return true;
+ }
+ return false;
+}
+function readBlockMapping(state, nodeIndent, flowIndent) {
+ var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;
+ if (state.firstTabInLine !== -1)
+ return false;
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = _result;
+ }
+ ch = state.input.charCodeAt(state.position);
+ while (ch !== 0) {
+ if (!atExplicitKey && state.firstTabInLine !== -1) {
+ state.position = state.firstTabInLine;
+ throwError(state, "tab characters must not be used in indentation");
+ }
+ following = state.input.charCodeAt(state.position + 1);
+ _line = state.line;
+ if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {
+ if (ch === 63) {
+ if (atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
+ keyTag = keyNode = valueNode = null;
+ }
+ detected = true;
+ atExplicitKey = true;
+ allowCompact = true;
+ } else if (atExplicitKey) {
+ atExplicitKey = false;
+ allowCompact = true;
+ } else {
+ throwError(state, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line");
+ }
+ state.position += 1;
+ ch = following;
+ } else {
+ _keyLine = state.line;
+ _keyLineStart = state.lineStart;
+ _keyPos = state.position;
+ if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
+ break;
+ }
+ if (state.line === _line) {
+ ch = state.input.charCodeAt(state.position);
+ while (is_WHITE_SPACE(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (ch === 58) {
+ ch = state.input.charCodeAt(++state.position);
+ if (!is_WS_OR_EOL(ch)) {
+ throwError(state, "a whitespace character is expected after the key-value separator within a block mapping");
+ }
+ if (atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
+ keyTag = keyNode = valueNode = null;
+ }
+ detected = true;
+ atExplicitKey = false;
+ allowCompact = false;
+ keyTag = state.tag;
+ keyNode = state.result;
+ } else if (detected) {
+ throwError(state, "can not read an implicit mapping pair; a colon is missed");
+ } else {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ return true;
+ }
+ } else if (detected) {
+ throwError(state, "can not read a block mapping entry; a multiline key may not be an implicit key");
+ } else {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ return true;
+ }
+ }
+ if (state.line === _line || state.lineIndent > nodeIndent) {
+ if (atExplicitKey) {
+ _keyLine = state.line;
+ _keyLineStart = state.lineStart;
+ _keyPos = state.position;
+ }
+ if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
+ if (atExplicitKey) {
+ keyNode = state.result;
+ } else {
+ valueNode = state.result;
+ }
+ }
+ if (!atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);
+ keyTag = keyNode = valueNode = null;
+ }
+ skipSeparationSpace(state, true, -1);
+ ch = state.input.charCodeAt(state.position);
+ }
+ if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {
+ throwError(state, "bad indentation of a mapping entry");
+ } else if (state.lineIndent < nodeIndent) {
+ break;
+ }
+ }
+ if (atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
+ }
+ if (detected) {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ state.kind = "mapping";
+ state.result = _result;
+ }
+ return detected;
+}
+function readTagProperty(state) {
+ var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch !== 33)
+ return false;
+ if (state.tag !== null) {
+ throwError(state, "duplication of a tag property");
+ }
+ ch = state.input.charCodeAt(++state.position);
+ if (ch === 60) {
+ isVerbatim = true;
+ ch = state.input.charCodeAt(++state.position);
+ } else if (ch === 33) {
+ isNamed = true;
+ tagHandle = "!!";
+ ch = state.input.charCodeAt(++state.position);
+ } else {
+ tagHandle = "!";
+ }
+ _position = state.position;
+ if (isVerbatim) {
+ do {
+ ch = state.input.charCodeAt(++state.position);
+ } while (ch !== 0 && ch !== 62);
+ if (state.position < state.length) {
+ tagName = state.input.slice(_position, state.position);
+ ch = state.input.charCodeAt(++state.position);
+ } else {
+ throwError(state, "unexpected end of the stream within a verbatim tag");
+ }
+ } else {
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+ if (ch === 33) {
+ if (!isNamed) {
+ tagHandle = state.input.slice(_position - 1, state.position + 1);
+ if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
+ throwError(state, "named tag handle cannot contain such characters");
+ }
+ isNamed = true;
+ _position = state.position + 1;
+ } else {
+ throwError(state, "tag suffix cannot contain exclamation marks");
+ }
+ }
+ ch = state.input.charCodeAt(++state.position);
+ }
+ tagName = state.input.slice(_position, state.position);
+ if (PATTERN_FLOW_INDICATORS.test(tagName)) {
+ throwError(state, "tag suffix cannot contain flow indicator characters");
+ }
+ }
+ if (tagName && !PATTERN_TAG_URI.test(tagName)) {
+ throwError(state, "tag name cannot contain such characters: " + tagName);
+ }
+ try {
+ tagName = decodeURIComponent(tagName);
+ } catch (err) {
+ throwError(state, "tag name is malformed: " + tagName);
+ }
+ if (isVerbatim) {
+ state.tag = tagName;
+ } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {
+ state.tag = state.tagMap[tagHandle] + tagName;
+ } else if (tagHandle === "!") {
+ state.tag = "!" + tagName;
+ } else if (tagHandle === "!!") {
+ state.tag = "tag:yaml.org,2002:" + tagName;
+ } else {
+ throwError(state, 'undeclared tag handle "' + tagHandle + '"');
+ }
+ return true;
+}
+function readAnchorProperty(state) {
+ var _position, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch !== 38)
+ return false;
+ if (state.anchor !== null) {
+ throwError(state, "duplication of an anchor property");
+ }
+ ch = state.input.charCodeAt(++state.position);
+ _position = state.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (state.position === _position) {
+ throwError(state, "name of an anchor node must contain at least one character");
+ }
+ state.anchor = state.input.slice(_position, state.position);
+ return true;
+}
+function readAlias(state) {
+ var _position, alias, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch !== 42)
+ return false;
+ ch = state.input.charCodeAt(++state.position);
+ _position = state.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (state.position === _position) {
+ throwError(state, "name of an alias node must contain at least one character");
+ }
+ alias = state.input.slice(_position, state.position);
+ if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {
+ throwError(state, 'unidentified alias "' + alias + '"');
+ }
+ state.result = state.anchorMap[alias];
+ skipSeparationSpace(state, true, -1);
+ return true;
+}
+function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {
+ var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;
+ if (state.listener !== null) {
+ state.listener("open", state);
+ }
+ state.tag = null;
+ state.anchor = null;
+ state.kind = null;
+ state.result = null;
+ allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;
+ if (allowToSeek) {
+ if (skipSeparationSpace(state, true, -1)) {
+ atNewLine = true;
+ if (state.lineIndent > parentIndent) {
+ indentStatus = 1;
+ } else if (state.lineIndent === parentIndent) {
+ indentStatus = 0;
+ } else if (state.lineIndent < parentIndent) {
+ indentStatus = -1;
+ }
+ }
+ }
+ if (indentStatus === 1) {
+ while (readTagProperty(state) || readAnchorProperty(state)) {
+ if (skipSeparationSpace(state, true, -1)) {
+ atNewLine = true;
+ allowBlockCollections = allowBlockStyles;
+ if (state.lineIndent > parentIndent) {
+ indentStatus = 1;
+ } else if (state.lineIndent === parentIndent) {
+ indentStatus = 0;
+ } else if (state.lineIndent < parentIndent) {
+ indentStatus = -1;
+ }
+ } else {
+ allowBlockCollections = false;
+ }
+ }
+ }
+ if (allowBlockCollections) {
+ allowBlockCollections = atNewLine || allowCompact;
+ }
+ if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
+ if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
+ flowIndent = parentIndent;
+ } else {
+ flowIndent = parentIndent + 1;
+ }
+ blockIndent = state.position - state.lineStart;
+ if (indentStatus === 1) {
+ if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) {
+ hasContent = true;
+ } else {
+ if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) {
+ hasContent = true;
+ } else if (readAlias(state)) {
+ hasContent = true;
+ if (state.tag !== null || state.anchor !== null) {
+ throwError(state, "alias node should not have any properties");
+ }
+ } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
+ hasContent = true;
+ if (state.tag === null) {
+ state.tag = "?";
+ }
+ }
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = state.result;
+ }
+ }
+ } else if (indentStatus === 0) {
+ hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);
+ }
+ }
+ if (state.tag === null) {
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = state.result;
+ }
+ } else if (state.tag === "?") {
+ if (state.result !== null && state.kind !== "scalar") {
+ throwError(state, 'unacceptable node kind for !> tag; it should be "scalar", not "' + state.kind + '"');
+ }
+ for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
+ type2 = state.implicitTypes[typeIndex];
+ if (type2.resolve(state.result)) {
+ state.result = type2.construct(state.result);
+ state.tag = type2.tag;
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = state.result;
+ }
+ break;
+ }
+ }
+ } else if (state.tag !== "!") {
+ if (_hasOwnProperty$1.call(state.typeMap[state.kind || "fallback"], state.tag)) {
+ type2 = state.typeMap[state.kind || "fallback"][state.tag];
+ } else {
+ type2 = null;
+ typeList = state.typeMap.multi[state.kind || "fallback"];
+ for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {
+ if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {
+ type2 = typeList[typeIndex];
+ break;
+ }
+ }
+ }
+ if (!type2) {
+ throwError(state, "unknown tag !<" + state.tag + ">");
+ }
+ if (state.result !== null && type2.kind !== state.kind) {
+ throwError(state, "unacceptable node kind for !<" + state.tag + '> tag; it should be "' + type2.kind + '", not "' + state.kind + '"');
+ }
+ if (!type2.resolve(state.result, state.tag)) {
+ throwError(state, "cannot resolve a node with !<" + state.tag + "> explicit tag");
+ } else {
+ state.result = type2.construct(state.result, state.tag);
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = state.result;
+ }
+ }
+ }
+ if (state.listener !== null) {
+ state.listener("close", state);
+ }
+ return state.tag !== null || state.anchor !== null || hasContent;
+}
+function readDocument(state) {
+ var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;
+ state.version = null;
+ state.checkLineBreaks = state.legacy;
+ state.tagMap = /* @__PURE__ */ Object.create(null);
+ state.anchorMap = /* @__PURE__ */ Object.create(null);
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
+ skipSeparationSpace(state, true, -1);
+ ch = state.input.charCodeAt(state.position);
+ if (state.lineIndent > 0 || ch !== 37) {
+ break;
+ }
+ hasDirectives = true;
+ ch = state.input.charCodeAt(++state.position);
+ _position = state.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ directiveName = state.input.slice(_position, state.position);
+ directiveArgs = [];
+ if (directiveName.length < 1) {
+ throwError(state, "directive name must not be less than one character in length");
+ }
+ while (ch !== 0) {
+ while (is_WHITE_SPACE(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (ch === 35) {
+ do {
+ ch = state.input.charCodeAt(++state.position);
+ } while (ch !== 0 && !is_EOL(ch));
+ break;
+ }
+ if (is_EOL(ch))
+ break;
+ _position = state.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ directiveArgs.push(state.input.slice(_position, state.position));
+ }
+ if (ch !== 0)
+ readLineBreak(state);
+ if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {
+ directiveHandlers[directiveName](state, directiveName, directiveArgs);
+ } else {
+ throwWarning(state, 'unknown document directive "' + directiveName + '"');
+ }
+ }
+ skipSeparationSpace(state, true, -1);
+ if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) {
+ state.position += 3;
+ skipSeparationSpace(state, true, -1);
+ } else if (hasDirectives) {
+ throwError(state, "directives end mark is expected");
+ }
+ composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
+ skipSeparationSpace(state, true, -1);
+ if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {
+ throwWarning(state, "non-ASCII line breaks are interpreted as content");
+ }
+ state.documents.push(state.result);
+ if (state.position === state.lineStart && testDocumentSeparator(state)) {
+ if (state.input.charCodeAt(state.position) === 46) {
+ state.position += 3;
+ skipSeparationSpace(state, true, -1);
+ }
+ return;
+ }
+ if (state.position < state.length - 1) {
+ throwError(state, "end of the stream or a document separator is expected");
+ } else {
+ return;
+ }
+}
+function loadDocuments(input, options) {
+ input = String(input);
+ options = options || {};
+ if (input.length !== 0) {
+ if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {
+ input += "\n";
+ }
+ if (input.charCodeAt(0) === 65279) {
+ input = input.slice(1);
+ }
+ }
+ var state = new State$1(input, options);
+ var nullpos = input.indexOf("\0");
+ if (nullpos !== -1) {
+ state.position = nullpos;
+ throwError(state, "null byte is not allowed in input");
+ }
+ state.input += "\0";
+ while (state.input.charCodeAt(state.position) === 32) {
+ state.lineIndent += 1;
+ state.position += 1;
+ }
+ while (state.position < state.length - 1) {
+ readDocument(state);
+ }
+ return state.documents;
+}
+function loadAll$1(input, iterator2, options) {
+ if (iterator2 !== null && typeof iterator2 === "object" && typeof options === "undefined") {
+ options = iterator2;
+ iterator2 = null;
+ }
+ var documents = loadDocuments(input, options);
+ if (typeof iterator2 !== "function") {
+ return documents;
+ }
+ for (var index = 0, length = documents.length; index < length; index += 1) {
+ iterator2(documents[index]);
+ }
+}
+function load$1(input, options) {
+ var documents = loadDocuments(input, options);
+ if (documents.length === 0) {
+ return void 0;
+ } else if (documents.length === 1) {
+ return documents[0];
+ }
+ throw new exception("expected a single document in the stream, but found more");
+}
+var loadAll_1 = loadAll$1;
+var load_1 = load$1;
+var loader = {
+ loadAll: loadAll_1,
+ load: load_1
+};
+var FAILSAFE_SCHEMA = failsafe;
+var load = loader.load;
+const frontMatterRegex = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;
+function extractFrontMatter(text, db) {
+ var _a, _b;
+ const matches = text.match(frontMatterRegex);
+ if (matches) {
+ const parsed = load(matches[1], {
+ // To keep things simple, only allow strings, arrays, and plain objects.
+ // https://www.yaml.org/spec/1.2/spec.html#id2802346
+ schema: FAILSAFE_SCHEMA
+ });
+ if (parsed == null ? void 0 : parsed.title) {
+ (_a = db.setDiagramTitle) == null ? void 0 : _a.call(db, parsed.title);
+ }
+ if (parsed == null ? void 0 : parsed.displayMode) {
+ (_b = db.setDisplayMode) == null ? void 0 : _b.call(db, parsed.displayMode);
+ }
+ return text.slice(matches[0].length);
+ } else {
+ return text;
+ }
+}
+const d3Attrs = function(d3Elem, attrs) {
+ for (let attr of attrs) {
+ d3Elem.attr(attr[0], attr[1]);
+ }
+};
+const calculateSvgSizeAttrs = function(height, width, useMaxWidth) {
+ let attrs = /* @__PURE__ */ new Map();
+ if (useMaxWidth) {
+ attrs.set("width", "100%");
+ attrs.set("style", `max-width: ${width}px;`);
+ } else {
+ attrs.set("height", height);
+ attrs.set("width", width);
+ }
+ return attrs;
+};
+const configureSvgSize = function(svgElem, height, width, useMaxWidth) {
+ const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);
+ d3Attrs(svgElem, attrs);
+};
+const setupGraphViewbox$1 = function(graph, svgElem, padding, useMaxWidth) {
+ const svgBounds = svgElem.node().getBBox();
+ const sWidth = svgBounds.width;
+ const sHeight = svgBounds.height;
+ log$1.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);
+ let width = 0;
+ let height = 0;
+ log$1.info(`Graph bounds: ${width}x${height}`, graph);
+ width = sWidth + padding * 2;
+ height = sHeight + padding * 2;
+ log$1.info(`Calculated bounds: ${width}x${height}`);
+ configureSvgSize(svgElem, height, width, useMaxWidth);
+ const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`;
+ svgElem.attr("viewBox", vBox);
+};
+const themes = {};
+const getStyles = (type2, userStyles, options) => {
+ let diagramStyles = "";
+ if (type2 in themes && themes[type2]) {
+ diagramStyles = themes[type2](options);
+ } else {
+ log$1.warn(`No theme found for ${type2}`);
+ }
+ return ` & {
+ font-family: ${options.fontFamily};
+ font-size: ${options.fontSize};
+ fill: ${options.textColor}
+ }
+
+ /* Classes common for multiple diagrams */
+
+ & .error-icon {
+ fill: ${options.errorBkgColor};
+ }
+ & .error-text {
+ fill: ${options.errorTextColor};
+ stroke: ${options.errorTextColor};
+ }
+
+ & .edge-thickness-normal {
+ stroke-width: 2px;
+ }
+ & .edge-thickness-thick {
+ stroke-width: 3.5px
+ }
+ & .edge-pattern-solid {
+ stroke-dasharray: 0;
+ }
+
+ & .edge-pattern-dashed{
+ stroke-dasharray: 3;
+ }
+ .edge-pattern-dotted {
+ stroke-dasharray: 2;
+ }
+
+ & .marker {
+ fill: ${options.lineColor};
+ stroke: ${options.lineColor};
+ }
+ & .marker.cross {
+ stroke: ${options.lineColor};
+ }
+
+ & svg {
+ font-family: ${options.fontFamily};
+ font-size: ${options.fontSize};
+ }
+
+ ${diagramStyles}
+
+ ${userStyles}
+`;
+};
+const addStylesForDiagram = (type2, diagramTheme) => {
+ themes[type2] = diagramTheme;
+};
+const getStyles$1 = getStyles;
+let currentDirective = {};
+const parseDirective$1 = function(p, statement, context, type2) {
+ log$1.debug("parseDirective is being called", statement, context, type2);
+ try {
+ if (statement !== void 0) {
+ statement = statement.trim();
+ switch (context) {
+ case "open_directive":
+ currentDirective = {};
+ break;
+ case "type_directive":
+ if (!currentDirective) {
+ throw new Error("currentDirective is undefined");
+ }
+ currentDirective.type = statement.toLowerCase();
+ break;
+ case "arg_directive":
+ if (!currentDirective) {
+ throw new Error("currentDirective is undefined");
+ }
+ currentDirective.args = JSON.parse(statement);
+ break;
+ case "close_directive":
+ handleDirective(p, currentDirective, type2);
+ currentDirective = void 0;
+ break;
+ }
+ }
+ } catch (error) {
+ log$1.error(
+ `Error while rendering sequenceDiagram directive: ${statement} jison context: ${context}`
+ );
+ log$1.error(error.message);
+ }
+};
+const handleDirective = function(p, directive2, type2) {
+ log$1.info(`Directive type=${directive2.type} with args:`, directive2.args);
+ switch (directive2.type) {
+ case "init":
+ case "initialize": {
+ ["config"].forEach((prop) => {
+ if (directive2.args[prop] !== void 0) {
+ if (type2 === "flowchart-v2") {
+ type2 = "flowchart";
+ }
+ directive2.args[type2] = directive2.args[prop];
+ delete directive2.args[prop];
+ }
+ });
+ log$1.info("sanitize in handleDirective", directive2.args);
+ directiveSanitizer(directive2.args);
+ log$1.info("sanitize in handleDirective (done)", directive2.args);
+ addDirective(directive2.args);
+ break;
+ }
+ case "wrap":
+ case "nowrap":
+ if (p && p["setWrap"]) {
+ p.setWrap(directive2.type === "wrap");
+ }
+ break;
+ case "themeCss":
+ log$1.warn("themeCss encountered");
+ break;
+ default:
+ log$1.warn(
+ `Unhandled directive: source: '%%{${directive2.type}: ${JSON.stringify(
+ directive2.args ? directive2.args : {}
+ )}}%%`,
+ directive2
+ );
+ break;
+ }
+};
+const log = log$1;
+const setLogLevel = setLogLevel$1;
+const getConfig = getConfig$1;
+const sanitizeText = (text) => sanitizeText$1(text, getConfig());
+const setupGraphViewbox = setupGraphViewbox$1;
+const getCommonDb = () => {
+ return commonDb;
+};
+const parseDirective = (p, statement, context, type2) => parseDirective$1(p, statement, context, type2);
+const diagrams = {};
+const registerDiagram = (id, diagram, detector) => {
+ if (diagrams[id]) {
+ throw new Error(`Diagram ${id} already registered.`);
+ }
+ diagrams[id] = diagram;
+ if (detector) {
+ addDetector(id, detector);
+ }
+ addStylesForDiagram(id, diagram.styles);
+ if (diagram.injectUtils) {
+ diagram.injectUtils(
+ log,
+ setLogLevel,
+ getConfig,
+ sanitizeText,
+ setupGraphViewbox,
+ getCommonDb(),
+ parseDirective
+ );
+ }
+};
+const getDiagram = (name) => {
+ if (name in diagrams) {
+ return diagrams[name];
+ }
+ throw new Error(`Diagram ${name} not found.`);
+};
+class UnknownDiagramError extends Error {
+ constructor(message) {
+ super(message);
+ this.name = "UnknownDiagramError";
+ }
+}
+const directive$1 = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
+const anyComment = /\s*%%.*\n/gm;
+const detectors = {};
+const detectType = function(text, config) {
+ text = text.replace(frontMatterRegex, "").replace(directive$1, "").replace(anyComment, "\n");
+ for (const [key, { detector }] of Object.entries(detectors)) {
+ const diagram = detector(text, config);
+ if (diagram) {
+ return key;
+ }
+ }
+ throw new UnknownDiagramError(
+ `No diagram type detected matching given configuration for text: ${text}`
+ );
+};
+const registerLazyLoadedDiagrams = (...diagrams2) => {
+ for (const { id, detector, loader: loader2 } of diagrams2) {
+ addDetector(id, detector, loader2);
+ }
+};
+const loadRegisteredDiagrams = async () => {
+ log$1.debug(`Loading registered diagrams`);
+ const results = await Promise.allSettled(
+ Object.entries(detectors).map(async ([key, { detector, loader: loader2 }]) => {
+ if (loader2) {
+ try {
+ getDiagram(key);
+ } catch (error) {
+ try {
+ const { diagram, id } = await loader2();
+ registerDiagram(id, diagram, detector);
+ } catch (err) {
+ log$1.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);
+ delete detectors[key];
+ throw err;
+ }
+ }
+ }
+ })
+ );
+ const failed = results.filter((result) => result.status === "rejected");
+ if (failed.length > 0) {
+ log$1.error(`Failed to load ${failed.length} external diagrams`);
+ for (const res of failed) {
+ log$1.error(res);
+ }
+ throw new Error(`Failed to load ${failed.length} external diagrams`);
+ }
+};
+const addDetector = (key, detector, loader2) => {
+ if (detectors[key]) {
+ log$1.error(`Detector with key ${key} already exists`);
+ } else {
+ detectors[key] = { detector, loader: loader2 };
+ }
+ log$1.debug(`Detector with key ${key} added${loader2 ? " with loader" : ""}`);
+};
+const getDiagramLoader = (key) => {
+ return detectors[key].loader;
+};
+var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
+const freeGlobal$1 = freeGlobal;
+var freeSelf = typeof self == "object" && self && self.Object === Object && self;
+var root = freeGlobal$1 || freeSelf || Function("return this")();
+const root$1 = root;
+var Symbol$1 = root$1.Symbol;
+const Symbol$2 = Symbol$1;
+var objectProto$4 = Object.prototype;
+var hasOwnProperty$3 = objectProto$4.hasOwnProperty;
+var nativeObjectToString$1 = objectProto$4.toString;
+var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : void 0;
+function getRawTag(value) {
+ var isOwn = hasOwnProperty$3.call(value, symToStringTag$1), tag = value[symToStringTag$1];
+ try {
+ value[symToStringTag$1] = void 0;
+ var unmasked = true;
+ } catch (e) {
+ }
+ var result = nativeObjectToString$1.call(value);
+ if (unmasked) {
+ if (isOwn) {
+ value[symToStringTag$1] = tag;
+ } else {
+ delete value[symToStringTag$1];
+ }
+ }
+ return result;
+}
+var objectProto$3 = Object.prototype;
+var nativeObjectToString = objectProto$3.toString;
+function objectToString(value) {
+ return nativeObjectToString.call(value);
+}
+var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
+var symToStringTag = Symbol$2 ? Symbol$2.toStringTag : void 0;
+function baseGetTag(value) {
+ if (value == null) {
+ return value === void 0 ? undefinedTag : nullTag;
+ }
+ return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
+}
+function isObject(value) {
+ var type2 = typeof value;
+ return value != null && (type2 == "object" || type2 == "function");
+}
+var asyncTag = "[object AsyncFunction]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
+function isFunction(value) {
+ if (!isObject(value)) {
+ return false;
+ }
+ var tag = baseGetTag(value);
+ return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
+}
+var coreJsData = root$1["__core-js_shared__"];
+const coreJsData$1 = coreJsData;
+var maskSrcKey = function() {
+ var uid = /[^.]+$/.exec(coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO || "");
+ return uid ? "Symbol(src)_1." + uid : "";
+}();
+function isMasked(func) {
+ return !!maskSrcKey && maskSrcKey in func;
+}
+var funcProto$1 = Function.prototype;
+var funcToString$1 = funcProto$1.toString;
+function toSource(func) {
+ if (func != null) {
+ try {
+ return funcToString$1.call(func);
+ } catch (e) {
+ }
+ try {
+ return func + "";
+ } catch (e) {
+ }
+ }
+ return "";
+}
+var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
+var reIsHostCtor = /^\[object .+?Constructor\]$/;
+var funcProto = Function.prototype, objectProto$2 = Object.prototype;
+var funcToString = funcProto.toString;
+var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
+var reIsNative = RegExp(
+ "^" + funcToString.call(hasOwnProperty$2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
+);
+function baseIsNative(value) {
+ if (!isObject(value) || isMasked(value)) {
+ return false;
+ }
+ var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
+ return pattern.test(toSource(value));
+}
+function getValue(object, key) {
+ return object == null ? void 0 : object[key];
+}
+function getNative(object, key) {
+ var value = getValue(object, key);
+ return baseIsNative(value) ? value : void 0;
+}
+var nativeCreate = getNative(Object, "create");
+const nativeCreate$1 = nativeCreate;
+function hashClear() {
+ this.__data__ = nativeCreate$1 ? nativeCreate$1(null) : {};
+ this.size = 0;
+}
+function hashDelete(key) {
+ var result = this.has(key) && delete this.__data__[key];
+ this.size -= result ? 1 : 0;
+ return result;
+}
+var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
+var objectProto$1 = Object.prototype;
+var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
+function hashGet(key) {
+ var data = this.__data__;
+ if (nativeCreate$1) {
+ var result = data[key];
+ return result === HASH_UNDEFINED$1 ? void 0 : result;
+ }
+ return hasOwnProperty$1.call(data, key) ? data[key] : void 0;
+}
+var objectProto = Object.prototype;
+var hasOwnProperty = objectProto.hasOwnProperty;
+function hashHas(key) {
+ var data = this.__data__;
+ return nativeCreate$1 ? data[key] !== void 0 : hasOwnProperty.call(data, key);
+}
+var HASH_UNDEFINED = "__lodash_hash_undefined__";
+function hashSet(key, value) {
+ var data = this.__data__;
+ this.size += this.has(key) ? 0 : 1;
+ data[key] = nativeCreate$1 && value === void 0 ? HASH_UNDEFINED : value;
+ return this;
+}
+function Hash(entries) {
+ var index = -1, length = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+Hash.prototype.clear = hashClear;
+Hash.prototype["delete"] = hashDelete;
+Hash.prototype.get = hashGet;
+Hash.prototype.has = hashHas;
+Hash.prototype.set = hashSet;
+function listCacheClear() {
+ this.__data__ = [];
+ this.size = 0;
+}
+function eq(value, other) {
+ return value === other || value !== value && other !== other;
+}
+function assocIndexOf(array, key) {
+ var length = array.length;
+ while (length--) {
+ if (eq(array[length][0], key)) {
+ return length;
+ }
+ }
+ return -1;
+}
+var arrayProto = Array.prototype;
+var splice = arrayProto.splice;
+function listCacheDelete(key) {
+ var data = this.__data__, index = assocIndexOf(data, key);
+ if (index < 0) {
+ return false;
+ }
+ var lastIndex = data.length - 1;
+ if (index == lastIndex) {
+ data.pop();
+ } else {
+ splice.call(data, index, 1);
+ }
+ --this.size;
+ return true;
+}
+function listCacheGet(key) {
+ var data = this.__data__, index = assocIndexOf(data, key);
+ return index < 0 ? void 0 : data[index][1];
+}
+function listCacheHas(key) {
+ return assocIndexOf(this.__data__, key) > -1;
+}
+function listCacheSet(key, value) {
+ var data = this.__data__, index = assocIndexOf(data, key);
+ if (index < 0) {
+ ++this.size;
+ data.push([key, value]);
+ } else {
+ data[index][1] = value;
+ }
+ return this;
+}
+function ListCache(entries) {
+ var index = -1, length = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+ListCache.prototype.clear = listCacheClear;
+ListCache.prototype["delete"] = listCacheDelete;
+ListCache.prototype.get = listCacheGet;
+ListCache.prototype.has = listCacheHas;
+ListCache.prototype.set = listCacheSet;
+var Map$1 = getNative(root$1, "Map");
+const Map$2 = Map$1;
+function mapCacheClear() {
+ this.size = 0;
+ this.__data__ = {
+ "hash": new Hash(),
+ "map": new (Map$2 || ListCache)(),
+ "string": new Hash()
+ };
+}
+function isKeyable(value) {
+ var type2 = typeof value;
+ return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value !== "__proto__" : value === null;
+}
+function getMapData(map2, key) {
+ var data = map2.__data__;
+ return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
+}
+function mapCacheDelete(key) {
+ var result = getMapData(this, key)["delete"](key);
+ this.size -= result ? 1 : 0;
+ return result;
+}
+function mapCacheGet(key) {
+ return getMapData(this, key).get(key);
+}
+function mapCacheHas(key) {
+ return getMapData(this, key).has(key);
+}
+function mapCacheSet(key, value) {
+ var data = getMapData(this, key), size = data.size;
+ data.set(key, value);
+ this.size += data.size == size ? 0 : 1;
+ return this;
+}
+function MapCache(entries) {
+ var index = -1, length = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+MapCache.prototype.clear = mapCacheClear;
+MapCache.prototype["delete"] = mapCacheDelete;
+MapCache.prototype.get = mapCacheGet;
+MapCache.prototype.has = mapCacheHas;
+MapCache.prototype.set = mapCacheSet;
+var FUNC_ERROR_TEXT = "Expected a function";
+function memoize(func, resolver) {
+ if (typeof func != "function" || resolver != null && typeof resolver != "function") {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ var memoized = function() {
+ var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
+ if (cache.has(key)) {
+ return cache.get(key);
+ }
+ var result = func.apply(this, args);
+ memoized.cache = cache.set(key, result) || cache;
+ return result;
+ };
+ memoized.cache = new (memoize.Cache || MapCache)();
+ return memoized;
+}
+memoize.Cache = MapCache;
+const d3CurveTypes = {
+ curveBasis,
+ curveBasisClosed,
+ curveBasisOpen,
+ curveBumpX: bumpX,
+ curveBumpY: bumpY,
+ curveBundle,
+ curveCardinalClosed,
+ curveCardinalOpen,
+ curveCardinal,
+ curveCatmullRomClosed,
+ curveCatmullRomOpen,
+ curveCatmullRom,
+ curveLinear,
+ curveLinearClosed,
+ curveMonotoneX: monotoneX,
+ curveMonotoneY: monotoneY,
+ curveNatural,
+ curveStep,
+ curveStepAfter: stepAfter,
+ curveStepBefore: stepBefore
+};
+const directive = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
+const directiveWithoutOpen = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
+const detectInit = function(text, config) {
+ const inits = detectDirective(text, /(?:init\b)|(?:initialize\b)/);
+ let results = {};
+ if (Array.isArray(inits)) {
+ const args = inits.map((init) => init.args);
+ directiveSanitizer(args);
+ results = assignWithDepth(results, [...args]);
+ } else {
+ results = inits.args;
+ }
+ if (results) {
+ let type2 = detectType(text, config);
+ ["config"].forEach((prop) => {
+ if (results[prop] !== void 0) {
+ if (type2 === "flowchart-v2") {
+ type2 = "flowchart";
+ }
+ results[type2] = results[prop];
+ delete results[prop];
+ }
+ });
+ }
+ return results;
+};
+const detectDirective = function(text, type2 = null) {
+ try {
+ const commentWithoutDirectives = new RegExp(
+ `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*
+`,
+ "ig"
+ );
+ text = text.trim().replace(commentWithoutDirectives, "").replace(/'/gm, '"');
+ log$1.debug(
+ `Detecting diagram directive${type2 !== null ? " type:" + type2 : ""} based on the text:${text}`
+ );
+ let match;
+ const result = [];
+ while ((match = directive.exec(text)) !== null) {
+ if (match.index === directive.lastIndex) {
+ directive.lastIndex++;
+ }
+ if (match && !type2 || type2 && match[1] && match[1].match(type2) || type2 && match[2] && match[2].match(type2)) {
+ const type22 = match[1] ? match[1] : match[2];
+ const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;
+ result.push({ type: type22, args });
+ }
+ }
+ if (result.length === 0) {
+ result.push({ type: text, args: null });
+ }
+ return result.length === 1 ? result[0] : result;
+ } catch (error) {
+ log$1.error(
+ `ERROR: ${error.message} - Unable to parse directive
+ ${type2 !== null ? " type:" + type2 : ""} based on the text:${text}`
+ );
+ return { type: null, args: null };
+ }
+};
+const isSubstringInArray = function(str2, arr) {
+ for (const [i, element] of arr.entries()) {
+ if (element.match(str2)) {
+ return i;
+ }
+ }
+ return -1;
+};
+function interpolateToCurve(interpolate, defaultCurve) {
+ if (!interpolate) {
+ return defaultCurve;
+ }
+ const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;
+ return d3CurveTypes[curveName] || defaultCurve;
+}
+function formatUrl(linkStr, config) {
+ const url = linkStr.trim();
+ if (url) {
+ if (config.securityLevel !== "loose") {
+ return sanitizeUrl_1(url);
+ }
+ return url;
+ }
+}
+const runFunc = (functionName, ...params) => {
+ const arrPaths = functionName.split(".");
+ const len = arrPaths.length - 1;
+ const fnName = arrPaths[len];
+ let obj = window;
+ for (let i = 0; i < len; i++) {
+ obj = obj[arrPaths[i]];
+ if (!obj) {
+ return;
+ }
+ }
+ obj[fnName](...params);
+};
+function distance(p1, p2) {
+ return p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;
+}
+function traverseEdge(points) {
+ let prevPoint;
+ let totalDistance = 0;
+ points.forEach((point2) => {
+ totalDistance += distance(point2, prevPoint);
+ prevPoint = point2;
+ });
+ let remainingDistance = totalDistance / 2;
+ let center = void 0;
+ prevPoint = void 0;
+ points.forEach((point2) => {
+ if (prevPoint && !center) {
+ const vectorDistance = distance(point2, prevPoint);
+ if (vectorDistance < remainingDistance) {
+ remainingDistance -= vectorDistance;
+ } else {
+ const distanceRatio = remainingDistance / vectorDistance;
+ if (distanceRatio <= 0) {
+ center = prevPoint;
+ }
+ if (distanceRatio >= 1) {
+ center = { x: point2.x, y: point2.y };
+ }
+ if (distanceRatio > 0 && distanceRatio < 1) {
+ center = {
+ x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point2.x,
+ y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point2.y
+ };
+ }
+ }
+ }
+ prevPoint = point2;
+ });
+ return center;
+}
+function calcLabelPosition(points) {
+ if (points.length === 1) {
+ return points[0];
+ }
+ return traverseEdge(points);
+}
+const calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {
+ let prevPoint;
+ log$1.info(`our points ${JSON.stringify(points)}`);
+ if (points[0] !== initialPosition) {
+ points = points.reverse();
+ }
+ const distanceToCardinalityPoint = 25;
+ let remainingDistance = distanceToCardinalityPoint;
+ let center;
+ prevPoint = void 0;
+ points.forEach((point2) => {
+ if (prevPoint && !center) {
+ const vectorDistance = distance(point2, prevPoint);
+ if (vectorDistance < remainingDistance) {
+ remainingDistance -= vectorDistance;
+ } else {
+ const distanceRatio = remainingDistance / vectorDistance;
+ if (distanceRatio <= 0) {
+ center = prevPoint;
+ }
+ if (distanceRatio >= 1) {
+ center = { x: point2.x, y: point2.y };
+ }
+ if (distanceRatio > 0 && distanceRatio < 1) {
+ center = {
+ x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point2.x,
+ y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point2.y
+ };
+ }
+ }
+ }
+ prevPoint = point2;
+ });
+ const d = isRelationTypePresent ? 10 : 5;
+ const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);
+ const cardinalityPosition = { x: 0, y: 0 };
+ cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;
+ cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;
+ return cardinalityPosition;
+};
+function calcTerminalLabelPosition(terminalMarkerSize, position, _points) {
+ let points = JSON.parse(JSON.stringify(_points));
+ let prevPoint;
+ log$1.info("our points", points);
+ if (position !== "start_left" && position !== "start_right") {
+ points = points.reverse();
+ }
+ points.forEach((point2) => {
+ prevPoint = point2;
+ });
+ const distanceToCardinalityPoint = 25 + terminalMarkerSize;
+ let remainingDistance = distanceToCardinalityPoint;
+ let center;
+ prevPoint = void 0;
+ points.forEach((point2) => {
+ if (prevPoint && !center) {
+ const vectorDistance = distance(point2, prevPoint);
+ if (vectorDistance < remainingDistance) {
+ remainingDistance -= vectorDistance;
+ } else {
+ const distanceRatio = remainingDistance / vectorDistance;
+ if (distanceRatio <= 0) {
+ center = prevPoint;
+ }
+ if (distanceRatio >= 1) {
+ center = { x: point2.x, y: point2.y };
+ }
+ if (distanceRatio > 0 && distanceRatio < 1) {
+ center = {
+ x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point2.x,
+ y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point2.y
+ };
+ }
+ }
+ }
+ prevPoint = point2;
+ });
+ const d = 10 + terminalMarkerSize * 0.5;
+ const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);
+ const cardinalityPosition = { x: 0, y: 0 };
+ cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;
+ cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;
+ if (position === "start_left") {
+ cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;
+ cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;
+ }
+ if (position === "end_right") {
+ cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;
+ cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;
+ }
+ if (position === "end_left") {
+ cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;
+ cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;
+ }
+ return cardinalityPosition;
+}
+function getStylesFromArray(arr) {
+ let style = "";
+ let labelStyle = "";
+ for (const element of arr) {
+ if (element !== void 0) {
+ if (element.startsWith("color:") || element.startsWith("text-align:")) {
+ labelStyle = labelStyle + element + ";";
+ } else {
+ style = style + element + ";";
+ }
+ }
+ }
+ return { style, labelStyle };
+}
+let cnt = 0;
+const generateId = () => {
+ cnt++;
+ return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt;
+};
+function makeid(length) {
+ let result = "";
+ const characters = "0123456789abcdef";
+ const charactersLength = characters.length;
+ for (let i = 0; i < length; i++) {
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
+ }
+ return result;
+}
+const random = (options) => {
+ return makeid(options.length);
+};
+const getTextObj = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ anchor: "start",
+ style: "#666",
+ width: 100,
+ height: 100,
+ textMargin: 0,
+ rx: 0,
+ ry: 0,
+ valign: void 0
+ };
+};
+const drawSimpleText = function(elem, textData) {
+ const nText = textData.text.replace(common$1.lineBreakRegex, " ");
+ const [, _fontSizePx] = parseFontSize(textData.fontSize);
+ const textElem = elem.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", textData.y);
+ textElem.style("text-anchor", textData.anchor);
+ textElem.style("font-family", textData.fontFamily);
+ textElem.style("font-size", _fontSizePx);
+ textElem.style("font-weight", textData.fontWeight);
+ textElem.attr("fill", textData.fill);
+ if (textData.class !== void 0) {
+ textElem.attr("class", textData.class);
+ }
+ const span = textElem.append("tspan");
+ span.attr("x", textData.x + textData.textMargin * 2);
+ span.attr("fill", textData.fill);
+ span.text(nText);
+ return textElem;
+};
+const wrapLabel = memoize(
+ (label, maxWidth, config) => {
+ if (!label) {
+ return label;
+ }
+ config = Object.assign(
+ { fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "
" },
+ config
+ );
+ if (common$1.lineBreakRegex.test(label)) {
+ return label;
+ }
+ const words = label.split(" ");
+ const completedLines = [];
+ let nextLine = "";
+ words.forEach((word, index) => {
+ const wordLength = calculateTextWidth(`${word} `, config);
+ const nextLineLength = calculateTextWidth(nextLine, config);
+ if (wordLength > maxWidth) {
+ const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, "-", config);
+ completedLines.push(nextLine, ...hyphenatedStrings);
+ nextLine = remainingWord;
+ } else if (nextLineLength + wordLength >= maxWidth) {
+ completedLines.push(nextLine);
+ nextLine = word;
+ } else {
+ nextLine = [nextLine, word].filter(Boolean).join(" ");
+ }
+ const currentWord = index + 1;
+ const isLastWord = currentWord === words.length;
+ if (isLastWord) {
+ completedLines.push(nextLine);
+ }
+ });
+ return completedLines.filter((line) => line !== "").join(config.joinWith);
+ },
+ (label, maxWidth, config) => `${label}${maxWidth}${config.fontSize}${config.fontWeight}${config.fontFamily}${config.joinWith}`
+);
+const breakString = memoize(
+ (word, maxWidth, hyphenCharacter = "-", config) => {
+ config = Object.assign(
+ { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 },
+ config
+ );
+ const characters = [...word];
+ const lines = [];
+ let currentLine = "";
+ characters.forEach((character, index) => {
+ const nextLine = `${currentLine}${character}`;
+ const lineWidth = calculateTextWidth(nextLine, config);
+ if (lineWidth >= maxWidth) {
+ const currentCharacter = index + 1;
+ const isLastLine = characters.length === currentCharacter;
+ const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;
+ lines.push(isLastLine ? nextLine : hyphenatedNextLine);
+ currentLine = "";
+ } else {
+ currentLine = nextLine;
+ }
+ });
+ return { hyphenatedStrings: lines, remainingWord: currentLine };
+ },
+ (word, maxWidth, hyphenCharacter = "-", config) => `${word}${maxWidth}${hyphenCharacter}${config.fontSize}${config.fontWeight}${config.fontFamily}`
+);
+function calculateTextHeight(text, config) {
+ config = Object.assign(
+ { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 15 },
+ config
+ );
+ return calculateTextDimensions(text, config).height;
+}
+function calculateTextWidth(text, config) {
+ config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, config);
+ return calculateTextDimensions(text, config).width;
+}
+const calculateTextDimensions = memoize(
+ (text, config) => {
+ config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, config);
+ const { fontSize, fontFamily, fontWeight } = config;
+ if (!text) {
+ return { width: 0, height: 0 };
+ }
+ const [, _fontSizePx] = parseFontSize(fontSize);
+ const fontFamilies = ["sans-serif", fontFamily];
+ const lines = text.split(common$1.lineBreakRegex);
+ const dims = [];
+ const body = select("body");
+ if (!body.remove) {
+ return { width: 0, height: 0, lineHeight: 0 };
+ }
+ const g = body.append("svg");
+ for (const fontFamily2 of fontFamilies) {
+ let cheight = 0;
+ const dim = { width: 0, height: 0, lineHeight: 0 };
+ for (const line of lines) {
+ const textObj = getTextObj();
+ textObj.text = line;
+ const textElem = drawSimpleText(g, textObj).style("font-size", _fontSizePx).style("font-weight", fontWeight).style("font-family", fontFamily2);
+ const bBox = (textElem._groups || textElem)[0][0].getBBox();
+ if (bBox.width === 0 && bBox.height === 0) {
+ throw new Error("svg element not in render tree");
+ }
+ dim.width = Math.round(Math.max(dim.width, bBox.width));
+ cheight = Math.round(bBox.height);
+ dim.height += cheight;
+ dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));
+ }
+ dims.push(dim);
+ }
+ g.remove();
+ const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;
+ return dims[index];
+ },
+ (text, config) => `${text}${config.fontSize}${config.fontWeight}${config.fontFamily}`
+);
+const initIdGenerator = class iterator {
+ constructor(deterministic, seed) {
+ this.deterministic = deterministic;
+ this.seed = seed;
+ this.count = seed ? seed.length : 0;
+ }
+ next() {
+ if (!this.deterministic) {
+ return Date.now();
+ }
+ return this.count++;
+ }
+};
+let decoder;
+const entityDecode = function(html) {
+ decoder = decoder || document.createElement("div");
+ html = escape(html).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";");
+ decoder.innerHTML = html;
+ return unescape(decoder.textContent);
+};
+const directiveSanitizer = (args) => {
+ log$1.debug("directiveSanitizer called with", args);
+ if (typeof args === "object") {
+ if (args.length) {
+ args.forEach((arg) => directiveSanitizer(arg));
+ } else {
+ Object.keys(args).forEach((key) => {
+ log$1.debug("Checking key", key);
+ if (key.startsWith("__")) {
+ log$1.debug("sanitize deleting __ option", key);
+ delete args[key];
+ }
+ if (key.includes("proto")) {
+ log$1.debug("sanitize deleting proto option", key);
+ delete args[key];
+ }
+ if (key.includes("constr")) {
+ log$1.debug("sanitize deleting constr option", key);
+ delete args[key];
+ }
+ if (key.includes("themeCSS")) {
+ log$1.debug("sanitizing themeCss option");
+ args[key] = sanitizeCss(args[key]);
+ }
+ if (key.includes("fontFamily")) {
+ log$1.debug("sanitizing fontFamily option");
+ args[key] = sanitizeCss(args[key]);
+ }
+ if (key.includes("altFontFamily")) {
+ log$1.debug("sanitizing altFontFamily option");
+ args[key] = sanitizeCss(args[key]);
+ }
+ if (!configKeys.includes(key)) {
+ log$1.debug("sanitize deleting option", key);
+ delete args[key];
+ } else {
+ if (typeof args[key] === "object") {
+ log$1.debug("sanitize deleting object", key);
+ directiveSanitizer(args[key]);
+ }
+ }
+ });
+ }
+ }
+ if (args.themeVariables) {
+ const kArr = Object.keys(args.themeVariables);
+ for (const k of kArr) {
+ const val = args.themeVariables[k];
+ if (val && val.match && !val.match(/^[\d "#%(),.;A-Za-z]+$/)) {
+ args.themeVariables[k] = "";
+ }
+ }
+ }
+ log$1.debug("After sanitization", args);
+};
+const sanitizeCss = (str2) => {
+ let startCnt = 0;
+ let endCnt = 0;
+ for (const element of str2) {
+ if (startCnt < endCnt) {
+ return "{ /* ERROR: Unbalanced CSS */ }";
+ }
+ if (element === "{") {
+ startCnt++;
+ } else if (element === "}") {
+ endCnt++;
+ }
+ }
+ if (startCnt !== endCnt) {
+ return "{ /* ERROR: Unbalanced CSS */ }";
+ }
+ return str2;
+};
+function isDetailedError(error) {
+ return "str" in error;
+}
+function getErrorMessage(error) {
+ if (error instanceof Error) {
+ return error.message;
+ }
+ return String(error);
+}
+const insertTitle = (parent, cssClass, titleTopMargin, title) => {
+ if (!title) {
+ return;
+ }
+ const bounds = parent.node().getBBox();
+ parent.append("text").text(title).attr("x", bounds.x + bounds.width / 2).attr("y", -titleTopMargin).attr("class", cssClass);
+};
+const parseFontSize = (fontSize) => {
+ if (typeof fontSize === "number") {
+ return [fontSize, fontSize + "px"];
+ }
+ const fontSizeNumber = parseInt(fontSize, 10);
+ if (Number.isNaN(fontSizeNumber)) {
+ return [void 0, void 0];
+ } else if (fontSize === String(fontSizeNumber)) {
+ return [fontSizeNumber, fontSize + "px"];
+ } else {
+ return [fontSizeNumber, fontSize];
+ }
+};
+const utils = {
+ assignWithDepth,
+ wrapLabel,
+ calculateTextHeight,
+ calculateTextWidth,
+ calculateTextDimensions,
+ detectInit,
+ detectDirective,
+ isSubstringInArray,
+ interpolateToCurve,
+ calcLabelPosition,
+ calcCardinalityPosition,
+ calcTerminalLabelPosition,
+ formatUrl,
+ getStylesFromArray,
+ generateId,
+ random,
+ runFunc,
+ entityDecode,
+ initIdGenerator,
+ directiveSanitizer,
+ sanitizeCss,
+ insertTitle,
+ parseFontSize
+};
+export {
+ max as $,
+ interpolateToCurve as A,
+ setupGraphViewbox$1 as B,
+ isObject as C,
+ eq as D,
+ memoize as E,
+ MapCache as F,
+ curveBasis as G,
+ random as H,
+ getConfig as I,
+ setupGraphViewbox as J,
+ tau as K,
+ ListCache as L,
+ Map$2 as M,
+ parseFontSize as N,
+ pi as O,
+ cos as P,
+ sin as Q,
+ halfPi as R,
+ Symbol$2 as S,
+ epsilon as T,
+ UnknownDiagramError as U,
+ sqrt as V,
+ min as W,
+ abs as X,
+ atan2 as Y,
+ asin as Z,
+ acos as _,
+ registerDiagram as a,
+ generateId as a0,
+ getDiagram as b,
+ getDiagramLoader as c,
+ detectType as d,
+ extractFrontMatter as e,
+ getNative as f,
+ getErrorMessage as g,
+ root$1 as h,
+ isDetailedError as i,
+ baseGetTag as j,
+ isFunction as k,
+ loadRegisteredDiagrams as l,
+ freeGlobal$1 as m,
+ directiveSanitizer as n,
+ getStyles$1 as o,
+ parseDirective$1 as p,
+ calculateTextWidth as q,
+ registerLazyLoadedDiagrams as r,
+ sanitizeUrl_1 as s,
+ toSource as t,
+ utils as u,
+ configureSvgSize as v,
+ wrapLabel as w,
+ calculateTextHeight as x,
+ curveLinear as y,
+ getStylesFromArray as z
+};
+//# sourceMappingURL=utils-1aebe9b6.js.map
diff --git a/scopegraphs-render-docs/doc/js/utils-8ea37061.js b/scopegraphs-render-docs/doc/js/utils-8ea37061.js
new file mode 100644
index 0000000..45dd8ac
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/utils-8ea37061.js
@@ -0,0 +1,2628 @@
+import { l as x, a as Se, s as Te, g as ke, b as Ee, c as Ne, d as Hi, e as Oe, f as xi, h as Fe } from "./commonDb-41f8b4c5.js";
+var gi = {};
+Object.defineProperty(gi, "__esModule", { value: !0 });
+var Gi = gi.sanitizeUrl = void 0, $e = /^([^\w]*)(javascript|data|vbscript)/im, Me = /(\w+)(^\w|;)?/g, Ie = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim, Pe = /^([^:]+):/gm, je = [".", "/"];
+function Le(i) {
+ return je.indexOf(i[0]) > -1;
+}
+function De(i) {
+ return i.replace(Me, function(e, n) {
+ return String.fromCharCode(n);
+ });
+}
+function Re(i) {
+ var e = De(i || "").replace(Ie, "").trim();
+ if (!e)
+ return "about:blank";
+ if (Le(e))
+ return e;
+ var n = e.match(Pe);
+ if (!n)
+ return e;
+ var t = n[0];
+ return $e.test(t) ? "about:blank" : e;
+}
+Gi = gi.sanitizeUrl = Re;
+const Vo = Math.abs, Xo = Math.atan2, Jo = Math.cos, Zo = Math.max, Qo = Math.min, is = Math.sin, es = Math.sqrt, Ni = 1e-12, mi = Math.PI, Oi = mi / 2, ns = 2 * mi;
+function ts(i) {
+ return i > 1 ? 0 : i < -1 ? mi : Math.acos(i);
+}
+function rs(i) {
+ return i >= 1 ? Oi : i <= -1 ? -Oi : Math.asin(i);
+}
+function qi(i) {
+ this._context = i;
+}
+qi.prototype = {
+ areaStart: function() {
+ this._line = 0;
+ },
+ areaEnd: function() {
+ this._line = NaN;
+ },
+ lineStart: function() {
+ this._point = 0;
+ },
+ lineEnd: function() {
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
+ },
+ point: function(i, e) {
+ switch (i = +i, e = +e, this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(i, e) : this._context.moveTo(i, e);
+ break;
+ case 1:
+ this._point = 2;
+ default:
+ this._context.lineTo(i, e);
+ break;
+ }
+ }
+};
+function ze(i) {
+ return new qi(i);
+}
+class Ki {
+ constructor(e, n) {
+ this._context = e, this._x = n;
+ }
+ areaStart() {
+ this._line = 0;
+ }
+ areaEnd() {
+ this._line = NaN;
+ }
+ lineStart() {
+ this._point = 0;
+ }
+ lineEnd() {
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
+ }
+ point(e, n) {
+ switch (e = +e, n = +n, this._point) {
+ case 0: {
+ this._point = 1, this._line ? this._context.lineTo(e, n) : this._context.moveTo(e, n);
+ break;
+ }
+ case 1:
+ this._point = 2;
+ default: {
+ this._x ? this._context.bezierCurveTo(this._x0 = (this._x0 + e) / 2, this._y0, this._x0, n, e, n) : this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + n) / 2, e, this._y0, e, n);
+ break;
+ }
+ }
+ this._x0 = e, this._y0 = n;
+ }
+}
+function Be(i) {
+ return new Ki(i, !0);
+}
+function Ye(i) {
+ return new Ki(i, !1);
+}
+function E() {
+}
+function K(i, e, n) {
+ i._context.bezierCurveTo(
+ (2 * i._x0 + i._x1) / 3,
+ (2 * i._y0 + i._y1) / 3,
+ (i._x0 + 2 * i._x1) / 3,
+ (i._y0 + 2 * i._y1) / 3,
+ (i._x0 + 4 * i._x1 + e) / 6,
+ (i._y0 + 4 * i._y1 + n) / 6
+ );
+}
+function ri(i) {
+ this._context = i;
+}
+ri.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:
+ K(this, this._x1, this._y1);
+ case 2:
+ this._context.lineTo(this._x1, this._y1);
+ break;
+ }
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
+ },
+ point: function(i, e) {
+ switch (i = +i, e = +e, this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(i, e) : this._context.moveTo(i, 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:
+ K(this, i, e);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = i, this._y0 = this._y1, this._y1 = e;
+ }
+};
+function We(i) {
+ return new ri(i);
+}
+function Vi(i) {
+ this._context = i;
+}
+Vi.prototype = {
+ areaStart: E,
+ areaEnd: E,
+ 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);
+ break;
+ }
+ }
+ },
+ point: function(i, e) {
+ switch (i = +i, e = +e, this._point) {
+ case 0:
+ this._point = 1, this._x2 = i, this._y2 = e;
+ break;
+ case 1:
+ this._point = 2, this._x3 = i, this._y3 = e;
+ break;
+ case 2:
+ this._point = 3, this._x4 = i, this._y4 = e, this._context.moveTo((this._x0 + 4 * this._x1 + i) / 6, (this._y0 + 4 * this._y1 + e) / 6);
+ break;
+ default:
+ K(this, i, e);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = i, this._y0 = this._y1, this._y1 = e;
+ }
+};
+function Ue(i) {
+ return new Vi(i);
+}
+function Xi(i) {
+ this._context = i;
+}
+Xi.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 || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
+ },
+ point: function(i, e) {
+ switch (i = +i, 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 + i) / 6, t = (this._y0 + 4 * this._y1 + e) / 6;
+ this._line ? this._context.lineTo(n, t) : this._context.moveTo(n, t);
+ break;
+ case 3:
+ this._point = 4;
+ default:
+ K(this, i, e);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = i, this._y0 = this._y1, this._y1 = e;
+ }
+};
+function He(i) {
+ return new Xi(i);
+}
+function Ji(i, e) {
+ this._basis = new ri(i), this._beta = e;
+}
+Ji.prototype = {
+ lineStart: function() {
+ this._x = [], this._y = [], this._basis.lineStart();
+ },
+ lineEnd: function() {
+ var i = this._x, e = this._y, n = i.length - 1;
+ if (n > 0)
+ for (var t = i[0], r = e[0], s = i[n] - t, o = e[n] - r, l = -1, a; ++l <= n; )
+ a = l / n, this._basis.point(
+ this._beta * i[l] + (1 - this._beta) * (t + a * s),
+ this._beta * e[l] + (1 - this._beta) * (r + a * o)
+ );
+ this._x = this._y = null, this._basis.lineEnd();
+ },
+ point: function(i, e) {
+ this._x.push(+i), this._y.push(+e);
+ }
+};
+const Ge = function i(e) {
+ function n(t) {
+ return e === 1 ? new ri(t) : new Ji(t, e);
+ }
+ return n.beta = function(t) {
+ return i(+t);
+ }, n;
+}(0.85);
+function V(i, e, n) {
+ i._context.bezierCurveTo(
+ i._x1 + i._k * (i._x2 - i._x0),
+ i._y1 + i._k * (i._y2 - i._y0),
+ i._x2 + i._k * (i._x1 - e),
+ i._y2 + i._k * (i._y1 - n),
+ i._x2,
+ i._y2
+ );
+}
+function yi(i, e) {
+ this._context = i, this._k = (1 - e) / 6;
+}
+yi.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:
+ V(this, this._x1, this._y1);
+ break;
+ }
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
+ },
+ point: function(i, e) {
+ switch (i = +i, e = +e, this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(i, e) : this._context.moveTo(i, e);
+ break;
+ case 1:
+ this._point = 2, this._x1 = i, this._y1 = e;
+ break;
+ case 2:
+ this._point = 3;
+ default:
+ V(this, i, e);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = i, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
+ }
+};
+const qe = function i(e) {
+ function n(t) {
+ return new yi(t, e);
+ }
+ return n.tension = function(t) {
+ return i(+t);
+ }, n;
+}(0);
+function vi(i, e) {
+ this._context = i, this._k = (1 - e) / 6;
+}
+vi.prototype = {
+ areaStart: E,
+ areaEnd: E,
+ 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);
+ break;
+ }
+ }
+ },
+ point: function(i, e) {
+ switch (i = +i, e = +e, this._point) {
+ case 0:
+ this._point = 1, this._x3 = i, this._y3 = e;
+ break;
+ case 1:
+ this._point = 2, this._context.moveTo(this._x4 = i, this._y4 = e);
+ break;
+ case 2:
+ this._point = 3, this._x5 = i, this._y5 = e;
+ break;
+ default:
+ V(this, i, e);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = i, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
+ }
+};
+const Ke = function i(e) {
+ function n(t) {
+ return new vi(t, e);
+ }
+ return n.tension = function(t) {
+ return i(+t);
+ }, n;
+}(0);
+function bi(i, e) {
+ this._context = i, this._k = (1 - e) / 6;
+}
+bi.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 || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
+ },
+ point: function(i, e) {
+ switch (i = +i, 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:
+ V(this, i, e);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = i, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
+ }
+};
+const Ve = function i(e) {
+ function n(t) {
+ return new bi(t, e);
+ }
+ return n.tension = function(t) {
+ return i(+t);
+ }, n;
+}(0);
+function wi(i, e, n) {
+ var t = i._x1, r = i._y1, s = i._x2, o = i._y2;
+ if (i._l01_a > Ni) {
+ var l = 2 * i._l01_2a + 3 * i._l01_a * i._l12_a + i._l12_2a, a = 3 * i._l01_a * (i._l01_a + i._l12_a);
+ t = (t * l - i._x0 * i._l12_2a + i._x2 * i._l01_2a) / a, r = (r * l - i._y0 * i._l12_2a + i._y2 * i._l01_2a) / a;
+ }
+ if (i._l23_a > Ni) {
+ var h = 2 * i._l23_2a + 3 * i._l23_a * i._l12_a + i._l12_2a, f = 3 * i._l23_a * (i._l23_a + i._l12_a);
+ s = (s * h + i._x1 * i._l23_2a - e * i._l12_2a) / f, o = (o * h + i._y1 * i._l23_2a - n * i._l12_2a) / f;
+ }
+ i._context.bezierCurveTo(t, r, s, o, i._x2, i._y2);
+}
+function Zi(i, e) {
+ this._context = i, this._alpha = e;
+}
+Zi.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);
+ break;
+ }
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
+ },
+ point: function(i, e) {
+ if (i = +i, e = +e, this._point) {
+ var n = this._x2 - i, t = this._y2 - e;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(n * n + t * t, this._alpha));
+ }
+ switch (this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(i, e) : this._context.moveTo(i, e);
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ default:
+ wi(this, i, e);
+ break;
+ }
+ 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 = i, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
+ }
+};
+const Xe = function i(e) {
+ function n(t) {
+ return e ? new Zi(t, e) : new yi(t, 0);
+ }
+ return n.alpha = function(t) {
+ return i(+t);
+ }, n;
+}(0.5);
+function Qi(i, e) {
+ this._context = i, this._alpha = e;
+}
+Qi.prototype = {
+ areaStart: E,
+ areaEnd: E,
+ 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);
+ break;
+ }
+ }
+ },
+ point: function(i, e) {
+ if (i = +i, e = +e, this._point) {
+ var n = this._x2 - i, t = this._y2 - e;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(n * n + t * t, this._alpha));
+ }
+ switch (this._point) {
+ case 0:
+ this._point = 1, this._x3 = i, this._y3 = e;
+ break;
+ case 1:
+ this._point = 2, this._context.moveTo(this._x4 = i, this._y4 = e);
+ break;
+ case 2:
+ this._point = 3, this._x5 = i, this._y5 = e;
+ break;
+ default:
+ wi(this, i, e);
+ break;
+ }
+ 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 = i, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
+ }
+};
+const Je = function i(e) {
+ function n(t) {
+ return e ? new Qi(t, e) : new vi(t, 0);
+ }
+ return n.alpha = function(t) {
+ return i(+t);
+ }, n;
+}(0.5);
+function ie(i, e) {
+ this._context = i, this._alpha = e;
+}
+ie.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 || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
+ },
+ point: function(i, e) {
+ if (i = +i, e = +e, this._point) {
+ var n = this._x2 - i, t = this._y2 - e;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(n * n + t * t, 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:
+ wi(this, i, e);
+ break;
+ }
+ 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 = i, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e;
+ }
+};
+const Ze = function i(e) {
+ function n(t) {
+ return e ? new ie(t, e) : new bi(t, 0);
+ }
+ return n.alpha = function(t) {
+ return i(+t);
+ }, n;
+}(0.5);
+function ee(i) {
+ this._context = i;
+}
+ee.prototype = {
+ areaStart: E,
+ areaEnd: E,
+ lineStart: function() {
+ this._point = 0;
+ },
+ lineEnd: function() {
+ this._point && this._context.closePath();
+ },
+ point: function(i, e) {
+ i = +i, e = +e, this._point ? this._context.lineTo(i, e) : (this._point = 1, this._context.moveTo(i, e));
+ }
+};
+function Qe(i) {
+ return new ee(i);
+}
+function Fi(i) {
+ return i < 0 ? -1 : 1;
+}
+function $i(i, e, n) {
+ var t = i._x1 - i._x0, r = e - i._x1, s = (i._y1 - i._y0) / (t || r < 0 && -0), o = (n - i._y1) / (r || t < 0 && -0), l = (s * r + o * t) / (t + r);
+ return (Fi(s) + Fi(o)) * Math.min(Math.abs(s), Math.abs(o), 0.5 * Math.abs(l)) || 0;
+}
+function Mi(i, e) {
+ var n = i._x1 - i._x0;
+ return n ? (3 * (i._y1 - i._y0) / n - e) / 2 : e;
+}
+function ci(i, e, n) {
+ var t = i._x0, r = i._y0, s = i._x1, o = i._y1, l = (s - t) / 3;
+ i._context.bezierCurveTo(t + l, r + l * e, s - l, o - l * n, s, o);
+}
+function X(i) {
+ this._context = i;
+}
+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:
+ ci(this, this._t0, Mi(this, this._t0));
+ break;
+ }
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
+ },
+ point: function(i, e) {
+ var n = NaN;
+ if (i = +i, e = +e, !(i === this._x1 && e === this._y1)) {
+ switch (this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(i, e) : this._context.moveTo(i, e);
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3, ci(this, Mi(this, n = $i(this, i, e)), n);
+ break;
+ default:
+ ci(this, this._t0, n = $i(this, i, e));
+ break;
+ }
+ this._x0 = this._x1, this._x1 = i, this._y0 = this._y1, this._y1 = e, this._t0 = n;
+ }
+ }
+};
+function ne(i) {
+ this._context = new te(i);
+}
+(ne.prototype = Object.create(X.prototype)).point = function(i, e) {
+ X.prototype.point.call(this, e, i);
+};
+function te(i) {
+ this._context = i;
+}
+te.prototype = {
+ moveTo: function(i, e) {
+ this._context.moveTo(e, i);
+ },
+ closePath: function() {
+ this._context.closePath();
+ },
+ lineTo: function(i, e) {
+ this._context.lineTo(e, i);
+ },
+ bezierCurveTo: function(i, e, n, t, r, s) {
+ this._context.bezierCurveTo(e, i, t, n, s, r);
+ }
+};
+function en(i) {
+ return new X(i);
+}
+function nn(i) {
+ return new ne(i);
+}
+function re(i) {
+ this._context = i;
+}
+re.prototype = {
+ areaStart: function() {
+ this._line = 0;
+ },
+ areaEnd: function() {
+ this._line = NaN;
+ },
+ lineStart: function() {
+ this._x = [], this._y = [];
+ },
+ lineEnd: function() {
+ var i = this._x, e = this._y, n = i.length;
+ if (n)
+ if (this._line ? this._context.lineTo(i[0], e[0]) : this._context.moveTo(i[0], e[0]), n === 2)
+ this._context.lineTo(i[1], e[1]);
+ else
+ for (var t = Ii(i), r = Ii(e), s = 0, o = 1; o < n; ++s, ++o)
+ this._context.bezierCurveTo(t[0][s], r[0][s], t[1][s], r[1][s], i[o], e[o]);
+ (this._line || this._line !== 0 && n === 1) && this._context.closePath(), this._line = 1 - this._line, this._x = this._y = null;
+ },
+ point: function(i, e) {
+ this._x.push(+i), this._y.push(+e);
+ }
+};
+function Ii(i) {
+ var e, n = i.length - 1, t, r = new Array(n), s = new Array(n), o = new Array(n);
+ for (r[0] = 0, s[0] = 2, o[0] = i[0] + 2 * i[1], e = 1; e < n - 1; ++e)
+ r[e] = 1, s[e] = 4, o[e] = 4 * i[e] + 2 * i[e + 1];
+ for (r[n - 1] = 2, s[n - 1] = 7, o[n - 1] = 8 * i[n - 1] + i[n], e = 1; e < n; ++e)
+ t = r[e] / s[e - 1], s[e] -= t, o[e] -= t * o[e - 1];
+ for (r[n - 1] = o[n - 1] / s[n - 1], e = n - 2; e >= 0; --e)
+ r[e] = (o[e] - r[e + 1]) / s[e];
+ for (s[n - 1] = (i[n] + r[n - 1]) / 2, e = 0; e < n - 1; ++e)
+ s[e] = 2 * i[e + 1] - r[e + 1];
+ return [r, s];
+}
+function tn(i) {
+ return new re(i);
+}
+function oi(i, e) {
+ this._context = i, this._t = e;
+}
+oi.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 && this._point === 2 && this._context.lineTo(this._x, this._y), (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line >= 0 && (this._t = 1 - this._t, this._line = 1 - this._line);
+ },
+ point: function(i, e) {
+ switch (i = +i, e = +e, this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(i, e) : this._context.moveTo(i, e);
+ break;
+ case 1:
+ this._point = 2;
+ default: {
+ if (this._t <= 0)
+ this._context.lineTo(this._x, e), this._context.lineTo(i, e);
+ else {
+ var n = this._x * (1 - this._t) + i * this._t;
+ this._context.lineTo(n, this._y), this._context.lineTo(n, e);
+ }
+ break;
+ }
+ }
+ this._x = i, this._y = e;
+ }
+};
+function rn(i) {
+ return new oi(i, 0.5);
+}
+function on(i) {
+ return new oi(i, 0);
+}
+function sn(i) {
+ return new oi(i, 1);
+}
+/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
+function oe(i) {
+ return typeof i > "u" || i === null;
+}
+function ln(i) {
+ return typeof i == "object" && i !== null;
+}
+function an(i) {
+ return Array.isArray(i) ? i : oe(i) ? [] : [i];
+}
+function cn(i, e) {
+ var n, t, r, s;
+ if (e)
+ for (s = Object.keys(e), n = 0, t = s.length; n < t; n += 1)
+ r = s[n], i[r] = e[r];
+ return i;
+}
+function hn(i, e) {
+ var n = "", t;
+ for (t = 0; t < e; t += 1)
+ n += i;
+ return n;
+}
+function un(i) {
+ return i === 0 && Number.NEGATIVE_INFINITY === 1 / i;
+}
+var fn = oe, _n = ln, pn = an, dn = hn, xn = un, gn = cn, w = {
+ isNothing: fn,
+ isObject: _n,
+ toArray: pn,
+ repeat: dn,
+ isNegativeZero: xn,
+ extend: gn
+};
+function se(i, e) {
+ var n = "", t = i.reason || "(unknown reason)";
+ return i.mark ? (i.mark.name && (n += 'in "' + i.mark.name + '" '), n += "(" + (i.mark.line + 1) + ":" + (i.mark.column + 1) + ")", !e && i.mark.snippet && (n += `
+
+` + i.mark.snippet), t + " " + n) : t;
+}
+function B(i, e) {
+ Error.call(this), this.name = "YAMLException", this.reason = i, this.mark = e, this.message = se(this, !1), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack || "";
+}
+B.prototype = Object.create(Error.prototype);
+B.prototype.constructor = B;
+B.prototype.toString = function(e) {
+ return this.name + ": " + se(this, e);
+};
+var T = B;
+function hi(i, e, n, t, r) {
+ var s = "", o = "", l = Math.floor(r / 2) - 1;
+ return t - e > l && (s = " ... ", e = t - l + s.length), n - t > l && (o = " ...", n = t + l - o.length), {
+ str: s + i.slice(e, n).replace(/\t/g, "→") + o,
+ pos: t - e + s.length
+ // relative position
+ };
+}
+function ui(i, e) {
+ return w.repeat(" ", e - i.length) + i;
+}
+function mn(i, e) {
+ if (e = Object.create(e || null), !i.buffer)
+ return null;
+ e.maxLength || (e.maxLength = 79), typeof e.indent != "number" && (e.indent = 1), typeof e.linesBefore != "number" && (e.linesBefore = 3), typeof e.linesAfter != "number" && (e.linesAfter = 2);
+ for (var n = /\r?\n|\r|\0/g, t = [0], r = [], s, o = -1; s = n.exec(i.buffer); )
+ r.push(s.index), t.push(s.index + s[0].length), i.position <= s.index && o < 0 && (o = t.length - 2);
+ o < 0 && (o = t.length - 1);
+ var l = "", a, h, f = Math.min(i.line + e.linesAfter, r.length).toString().length, c = e.maxLength - (e.indent + f + 3);
+ for (a = 1; a <= e.linesBefore && !(o - a < 0); a++)
+ h = hi(
+ i.buffer,
+ t[o - a],
+ r[o - a],
+ i.position - (t[o] - t[o - a]),
+ c
+ ), l = w.repeat(" ", e.indent) + ui((i.line - a + 1).toString(), f) + " | " + h.str + `
+` + l;
+ for (h = hi(i.buffer, t[o], r[o], i.position, c), l += w.repeat(" ", e.indent) + ui((i.line + 1).toString(), f) + " | " + h.str + `
+`, l += w.repeat("-", e.indent + f + 3 + h.pos) + `^
+`, a = 1; a <= e.linesAfter && !(o + a >= r.length); a++)
+ h = hi(
+ i.buffer,
+ t[o + a],
+ r[o + a],
+ i.position - (t[o] - t[o + a]),
+ c
+ ), l += w.repeat(" ", e.indent) + ui((i.line + a + 1).toString(), f) + " | " + h.str + `
+`;
+ return l.replace(/\n$/, "");
+}
+var yn = mn, vn = [
+ "kind",
+ "multi",
+ "resolve",
+ "construct",
+ "instanceOf",
+ "predicate",
+ "represent",
+ "representName",
+ "defaultStyle",
+ "styleAliases"
+], bn = [
+ "scalar",
+ "sequence",
+ "mapping"
+];
+function wn(i) {
+ var e = {};
+ return i !== null && Object.keys(i).forEach(function(n) {
+ i[n].forEach(function(t) {
+ e[String(t)] = n;
+ });
+ }), e;
+}
+function Cn(i, e) {
+ if (e = e || {}, Object.keys(e).forEach(function(n) {
+ if (vn.indexOf(n) === -1)
+ throw new T('Unknown option "' + n + '" is met in definition of "' + i + '" YAML type.');
+ }), this.options = e, this.tag = i, this.kind = e.kind || null, this.resolve = e.resolve || function() {
+ return !0;
+ }, this.construct = e.construct || function(n) {
+ return n;
+ }, this.instanceOf = e.instanceOf || null, this.predicate = e.predicate || null, this.represent = e.represent || null, this.representName = e.representName || null, this.defaultStyle = e.defaultStyle || null, this.multi = e.multi || !1, this.styleAliases = wn(e.styleAliases || null), bn.indexOf(this.kind) === -1)
+ throw new T('Unknown kind "' + this.kind + '" is specified for "' + i + '" YAML type.');
+}
+var b = Cn;
+function Pi(i, e) {
+ var n = [];
+ return i[e].forEach(function(t) {
+ var r = n.length;
+ n.forEach(function(s, o) {
+ s.tag === t.tag && s.kind === t.kind && s.multi === t.multi && (r = o);
+ }), n[r] = t;
+ }), n;
+}
+function An() {
+ var i = {
+ scalar: {},
+ sequence: {},
+ mapping: {},
+ fallback: {},
+ multi: {
+ scalar: [],
+ sequence: [],
+ mapping: [],
+ fallback: []
+ }
+ }, e, n;
+ function t(r) {
+ r.multi ? (i.multi[r.kind].push(r), i.multi.fallback.push(r)) : i[r.kind][r.tag] = i.fallback[r.tag] = r;
+ }
+ for (e = 0, n = arguments.length; e < n; e += 1)
+ arguments[e].forEach(t);
+ return i;
+}
+function di(i) {
+ return this.extend(i);
+}
+di.prototype.extend = function(e) {
+ var n = [], t = [];
+ if (e instanceof b)
+ t.push(e);
+ else if (Array.isArray(e))
+ t = t.concat(e);
+ else if (e && (Array.isArray(e.implicit) || Array.isArray(e.explicit)))
+ e.implicit && (n = n.concat(e.implicit)), e.explicit && (t = t.concat(e.explicit));
+ else
+ throw new T("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
+ n.forEach(function(s) {
+ if (!(s instanceof b))
+ throw new T("Specified list of YAML types (or a single Type object) contains a non-Type object.");
+ if (s.loadKind && s.loadKind !== "scalar")
+ throw new T("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
+ if (s.multi)
+ throw new T("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
+ }), t.forEach(function(s) {
+ if (!(s instanceof b))
+ throw new T("Specified list of YAML types (or a single Type object) contains a non-Type object.");
+ });
+ var r = Object.create(di.prototype);
+ return r.implicit = (this.implicit || []).concat(n), r.explicit = (this.explicit || []).concat(t), r.compiledImplicit = Pi(r, "implicit"), r.compiledExplicit = Pi(r, "explicit"), r.compiledTypeMap = An(r.compiledImplicit, r.compiledExplicit), r;
+};
+var Sn = di, Tn = new b("tag:yaml.org,2002:str", {
+ kind: "scalar",
+ construct: function(i) {
+ return i !== null ? i : "";
+ }
+}), kn = new b("tag:yaml.org,2002:seq", {
+ kind: "sequence",
+ construct: function(i) {
+ return i !== null ? i : [];
+ }
+}), En = new b("tag:yaml.org,2002:map", {
+ kind: "mapping",
+ construct: function(i) {
+ return i !== null ? i : {};
+ }
+}), le = new Sn({
+ explicit: [
+ Tn,
+ kn,
+ En
+ ]
+});
+function Nn(i) {
+ if (i === null)
+ return !0;
+ var e = i.length;
+ return e === 1 && i === "~" || e === 4 && (i === "null" || i === "Null" || i === "NULL");
+}
+function On() {
+ return null;
+}
+function Fn(i) {
+ return i === null;
+}
+var $n = new b("tag:yaml.org,2002:null", {
+ kind: "scalar",
+ resolve: Nn,
+ construct: On,
+ predicate: Fn,
+ represent: {
+ canonical: function() {
+ return "~";
+ },
+ lowercase: function() {
+ return "null";
+ },
+ uppercase: function() {
+ return "NULL";
+ },
+ camelcase: function() {
+ return "Null";
+ },
+ empty: function() {
+ return "";
+ }
+ },
+ defaultStyle: "lowercase"
+});
+function Mn(i) {
+ if (i === null)
+ return !1;
+ var e = i.length;
+ return e === 4 && (i === "true" || i === "True" || i === "TRUE") || e === 5 && (i === "false" || i === "False" || i === "FALSE");
+}
+function In(i) {
+ return i === "true" || i === "True" || i === "TRUE";
+}
+function Pn(i) {
+ return Object.prototype.toString.call(i) === "[object Boolean]";
+}
+var jn = new b("tag:yaml.org,2002:bool", {
+ kind: "scalar",
+ resolve: Mn,
+ construct: In,
+ predicate: Pn,
+ represent: {
+ lowercase: function(i) {
+ return i ? "true" : "false";
+ },
+ uppercase: function(i) {
+ return i ? "TRUE" : "FALSE";
+ },
+ camelcase: function(i) {
+ return i ? "True" : "False";
+ }
+ },
+ defaultStyle: "lowercase"
+});
+function Ln(i) {
+ return 48 <= i && i <= 57 || 65 <= i && i <= 70 || 97 <= i && i <= 102;
+}
+function Dn(i) {
+ return 48 <= i && i <= 55;
+}
+function Rn(i) {
+ return 48 <= i && i <= 57;
+}
+function zn(i) {
+ if (i === null)
+ return !1;
+ var e = i.length, n = 0, t = !1, r;
+ if (!e)
+ return !1;
+ if (r = i[n], (r === "-" || r === "+") && (r = i[++n]), r === "0") {
+ if (n + 1 === e)
+ return !0;
+ if (r = i[++n], r === "b") {
+ for (n++; n < e; n++)
+ if (r = i[n], r !== "_") {
+ if (r !== "0" && r !== "1")
+ return !1;
+ t = !0;
+ }
+ return t && r !== "_";
+ }
+ if (r === "x") {
+ for (n++; n < e; n++)
+ if (r = i[n], r !== "_") {
+ if (!Ln(i.charCodeAt(n)))
+ return !1;
+ t = !0;
+ }
+ return t && r !== "_";
+ }
+ if (r === "o") {
+ for (n++; n < e; n++)
+ if (r = i[n], r !== "_") {
+ if (!Dn(i.charCodeAt(n)))
+ return !1;
+ t = !0;
+ }
+ return t && r !== "_";
+ }
+ }
+ if (r === "_")
+ return !1;
+ for (; n < e; n++)
+ if (r = i[n], r !== "_") {
+ if (!Rn(i.charCodeAt(n)))
+ return !1;
+ t = !0;
+ }
+ return !(!t || r === "_");
+}
+function Bn(i) {
+ var e = i, n = 1, t;
+ if (e.indexOf("_") !== -1 && (e = e.replace(/_/g, "")), t = e[0], (t === "-" || t === "+") && (t === "-" && (n = -1), e = e.slice(1), t = e[0]), e === "0")
+ return 0;
+ if (t === "0") {
+ if (e[1] === "b")
+ return n * parseInt(e.slice(2), 2);
+ if (e[1] === "x")
+ return n * parseInt(e.slice(2), 16);
+ if (e[1] === "o")
+ return n * parseInt(e.slice(2), 8);
+ }
+ return n * parseInt(e, 10);
+}
+function Yn(i) {
+ return Object.prototype.toString.call(i) === "[object Number]" && i % 1 === 0 && !w.isNegativeZero(i);
+}
+var Wn = new b("tag:yaml.org,2002:int", {
+ kind: "scalar",
+ resolve: zn,
+ construct: Bn,
+ predicate: Yn,
+ represent: {
+ binary: function(i) {
+ return i >= 0 ? "0b" + i.toString(2) : "-0b" + i.toString(2).slice(1);
+ },
+ octal: function(i) {
+ return i >= 0 ? "0o" + i.toString(8) : "-0o" + i.toString(8).slice(1);
+ },
+ decimal: function(i) {
+ return i.toString(10);
+ },
+ /* eslint-disable max-len */
+ hexadecimal: function(i) {
+ return i >= 0 ? "0x" + i.toString(16).toUpperCase() : "-0x" + i.toString(16).toUpperCase().slice(1);
+ }
+ },
+ defaultStyle: "decimal",
+ styleAliases: {
+ binary: [2, "bin"],
+ octal: [8, "oct"],
+ decimal: [10, "dec"],
+ hexadecimal: [16, "hex"]
+ }
+}), Un = new RegExp(
+ // 2.5e4, 2.5 and integers
+ "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
+);
+function Hn(i) {
+ return !(i === null || !Un.test(i) || // Quick hack to not allow integers end with `_`
+ // Probably should update regexp & check speed
+ i[i.length - 1] === "_");
+}
+function Gn(i) {
+ var e, n;
+ return e = i.replace(/_/g, "").toLowerCase(), n = e[0] === "-" ? -1 : 1, "+-".indexOf(e[0]) >= 0 && (e = e.slice(1)), e === ".inf" ? n === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY : e === ".nan" ? NaN : n * parseFloat(e, 10);
+}
+var qn = /^[-+]?[0-9]+e/;
+function Kn(i, e) {
+ var n;
+ if (isNaN(i))
+ switch (e) {
+ case "lowercase":
+ return ".nan";
+ case "uppercase":
+ return ".NAN";
+ case "camelcase":
+ return ".NaN";
+ }
+ else if (Number.POSITIVE_INFINITY === i)
+ switch (e) {
+ case "lowercase":
+ return ".inf";
+ case "uppercase":
+ return ".INF";
+ case "camelcase":
+ return ".Inf";
+ }
+ else if (Number.NEGATIVE_INFINITY === i)
+ switch (e) {
+ case "lowercase":
+ return "-.inf";
+ case "uppercase":
+ return "-.INF";
+ case "camelcase":
+ return "-.Inf";
+ }
+ else if (w.isNegativeZero(i))
+ return "-0.0";
+ return n = i.toString(10), qn.test(n) ? n.replace("e", ".e") : n;
+}
+function Vn(i) {
+ return Object.prototype.toString.call(i) === "[object Number]" && (i % 1 !== 0 || w.isNegativeZero(i));
+}
+var Xn = new b("tag:yaml.org,2002:float", {
+ kind: "scalar",
+ resolve: Hn,
+ construct: Gn,
+ predicate: Vn,
+ represent: Kn,
+ defaultStyle: "lowercase"
+}), Jn = le.extend({
+ implicit: [
+ $n,
+ jn,
+ Wn,
+ Xn
+ ]
+}), Zn = Jn, ae = new RegExp(
+ "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
+), ce = new RegExp(
+ "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"
+);
+function Qn(i) {
+ return i === null ? !1 : ae.exec(i) !== null || ce.exec(i) !== null;
+}
+function it(i) {
+ var e, n, t, r, s, o, l, a = 0, h = null, f, c, p;
+ if (e = ae.exec(i), e === null && (e = ce.exec(i)), e === null)
+ throw new Error("Date resolve error");
+ if (n = +e[1], t = +e[2] - 1, r = +e[3], !e[4])
+ return new Date(Date.UTC(n, t, r));
+ if (s = +e[4], o = +e[5], l = +e[6], e[7]) {
+ for (a = e[7].slice(0, 3); a.length < 3; )
+ a += "0";
+ a = +a;
+ }
+ return e[9] && (f = +e[10], c = +(e[11] || 0), h = (f * 60 + c) * 6e4, e[9] === "-" && (h = -h)), p = new Date(Date.UTC(n, t, r, s, o, l, a)), h && p.setTime(p.getTime() - h), p;
+}
+function et(i) {
+ return i.toISOString();
+}
+var nt = new b("tag:yaml.org,2002:timestamp", {
+ kind: "scalar",
+ resolve: Qn,
+ construct: it,
+ instanceOf: Date,
+ represent: et
+});
+function tt(i) {
+ return i === "<<" || i === null;
+}
+var rt = new b("tag:yaml.org,2002:merge", {
+ kind: "scalar",
+ resolve: tt
+}), Ci = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
+\r`;
+function ot(i) {
+ if (i === null)
+ return !1;
+ var e, n, t = 0, r = i.length, s = Ci;
+ for (n = 0; n < r; n++)
+ if (e = s.indexOf(i.charAt(n)), !(e > 64)) {
+ if (e < 0)
+ return !1;
+ t += 6;
+ }
+ return t % 8 === 0;
+}
+function st(i) {
+ var e, n, t = i.replace(/[\r\n=]/g, ""), r = t.length, s = Ci, o = 0, l = [];
+ for (e = 0; e < r; e++)
+ e % 4 === 0 && e && (l.push(o >> 16 & 255), l.push(o >> 8 & 255), l.push(o & 255)), o = o << 6 | s.indexOf(t.charAt(e));
+ return n = r % 4 * 6, n === 0 ? (l.push(o >> 16 & 255), l.push(o >> 8 & 255), l.push(o & 255)) : n === 18 ? (l.push(o >> 10 & 255), l.push(o >> 2 & 255)) : n === 12 && l.push(o >> 4 & 255), new Uint8Array(l);
+}
+function lt(i) {
+ var e = "", n = 0, t, r, s = i.length, o = Ci;
+ for (t = 0; t < s; t++)
+ t % 3 === 0 && t && (e += o[n >> 18 & 63], e += o[n >> 12 & 63], e += o[n >> 6 & 63], e += o[n & 63]), n = (n << 8) + i[t];
+ return r = s % 3, r === 0 ? (e += o[n >> 18 & 63], e += o[n >> 12 & 63], e += o[n >> 6 & 63], e += o[n & 63]) : r === 2 ? (e += o[n >> 10 & 63], e += o[n >> 4 & 63], e += o[n << 2 & 63], e += o[64]) : r === 1 && (e += o[n >> 2 & 63], e += o[n << 4 & 63], e += o[64], e += o[64]), e;
+}
+function at(i) {
+ return Object.prototype.toString.call(i) === "[object Uint8Array]";
+}
+var ct = new b("tag:yaml.org,2002:binary", {
+ kind: "scalar",
+ resolve: ot,
+ construct: st,
+ predicate: at,
+ represent: lt
+}), ht = Object.prototype.hasOwnProperty, ut = Object.prototype.toString;
+function ft(i) {
+ if (i === null)
+ return !0;
+ var e = [], n, t, r, s, o, l = i;
+ for (n = 0, t = l.length; n < t; n += 1) {
+ if (r = l[n], o = !1, ut.call(r) !== "[object Object]")
+ return !1;
+ for (s in r)
+ if (ht.call(r, s))
+ if (!o)
+ o = !0;
+ else
+ return !1;
+ if (!o)
+ return !1;
+ if (e.indexOf(s) === -1)
+ e.push(s);
+ else
+ return !1;
+ }
+ return !0;
+}
+function _t(i) {
+ return i !== null ? i : [];
+}
+var pt = new b("tag:yaml.org,2002:omap", {
+ kind: "sequence",
+ resolve: ft,
+ construct: _t
+}), dt = Object.prototype.toString;
+function xt(i) {
+ if (i === null)
+ return !0;
+ var e, n, t, r, s, o = i;
+ for (s = new Array(o.length), e = 0, n = o.length; e < n; e += 1) {
+ if (t = o[e], dt.call(t) !== "[object Object]" || (r = Object.keys(t), r.length !== 1))
+ return !1;
+ s[e] = [r[0], t[r[0]]];
+ }
+ return !0;
+}
+function gt(i) {
+ if (i === null)
+ return [];
+ var e, n, t, r, s, o = i;
+ for (s = new Array(o.length), e = 0, n = o.length; e < n; e += 1)
+ t = o[e], r = Object.keys(t), s[e] = [r[0], t[r[0]]];
+ return s;
+}
+var mt = new b("tag:yaml.org,2002:pairs", {
+ kind: "sequence",
+ resolve: xt,
+ construct: gt
+}), yt = Object.prototype.hasOwnProperty;
+function vt(i) {
+ if (i === null)
+ return !0;
+ var e, n = i;
+ for (e in n)
+ if (yt.call(n, e) && n[e] !== null)
+ return !1;
+ return !0;
+}
+function bt(i) {
+ return i !== null ? i : {};
+}
+var wt = new b("tag:yaml.org,2002:set", {
+ kind: "mapping",
+ resolve: vt,
+ construct: bt
+}), Ct = Zn.extend({
+ implicit: [
+ nt,
+ rt
+ ],
+ explicit: [
+ ct,
+ pt,
+ mt,
+ wt
+ ]
+}), N = Object.prototype.hasOwnProperty, J = 1, he = 2, ue = 3, Z = 4, fi = 1, At = 2, ji = 3, St = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/, Tt = /[\x85\u2028\u2029]/, kt = /[,\[\]\{\}]/, fe = /^(?:!|!!|![a-z\-]+!)$/i, _e = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
+function Li(i) {
+ return Object.prototype.toString.call(i);
+}
+function S(i) {
+ return i === 10 || i === 13;
+}
+function F(i) {
+ return i === 9 || i === 32;
+}
+function A(i) {
+ return i === 9 || i === 32 || i === 10 || i === 13;
+}
+function P(i) {
+ return i === 44 || i === 91 || i === 93 || i === 123 || i === 125;
+}
+function Et(i) {
+ var e;
+ return 48 <= i && i <= 57 ? i - 48 : (e = i | 32, 97 <= e && e <= 102 ? e - 97 + 10 : -1);
+}
+function Nt(i) {
+ return i === 120 ? 2 : i === 117 ? 4 : i === 85 ? 8 : 0;
+}
+function Ot(i) {
+ return 48 <= i && i <= 57 ? i - 48 : -1;
+}
+function Di(i) {
+ return i === 48 ? "\0" : i === 97 ? "\x07" : i === 98 ? "\b" : i === 116 || i === 9 ? " " : i === 110 ? `
+` : i === 118 ? "\v" : i === 102 ? "\f" : i === 114 ? "\r" : i === 101 ? "\x1B" : i === 32 ? " " : i === 34 ? '"' : i === 47 ? "/" : i === 92 ? "\\" : i === 78 ? "
" : i === 95 ? " " : i === 76 ? "\u2028" : i === 80 ? "\u2029" : "";
+}
+function Ft(i) {
+ return i <= 65535 ? String.fromCharCode(i) : String.fromCharCode(
+ (i - 65536 >> 10) + 55296,
+ (i - 65536 & 1023) + 56320
+ );
+}
+var pe = new Array(256), de = new Array(256);
+for (var I = 0; I < 256; I++)
+ pe[I] = Di(I) ? 1 : 0, de[I] = Di(I);
+function $t(i, e) {
+ this.input = i, this.filename = e.filename || null, this.schema = e.schema || Ct, this.onWarning = e.onWarning || null, this.legacy = e.legacy || !1, this.json = e.json || !1, this.listener = e.listener || null, this.implicitTypes = this.schema.compiledImplicit, this.typeMap = this.schema.compiledTypeMap, this.length = i.length, this.position = 0, this.line = 0, this.lineStart = 0, this.lineIndent = 0, this.firstTabInLine = -1, this.documents = [];
+}
+function xe(i, e) {
+ var n = {
+ name: i.filename,
+ buffer: i.input.slice(0, -1),
+ // omit trailing \0
+ position: i.position,
+ line: i.line,
+ column: i.position - i.lineStart
+ };
+ return n.snippet = yn(n), new T(e, n);
+}
+function _(i, e) {
+ throw xe(i, e);
+}
+function Q(i, e) {
+ i.onWarning && i.onWarning.call(null, xe(i, e));
+}
+var Ri = {
+ YAML: function(e, n, t) {
+ var r, s, o;
+ e.version !== null && _(e, "duplication of %YAML directive"), t.length !== 1 && _(e, "YAML directive accepts exactly one argument"), r = /^([0-9]+)\.([0-9]+)$/.exec(t[0]), r === null && _(e, "ill-formed argument of the YAML directive"), s = parseInt(r[1], 10), o = parseInt(r[2], 10), s !== 1 && _(e, "unacceptable YAML version of the document"), e.version = t[0], e.checkLineBreaks = o < 2, o !== 1 && o !== 2 && Q(e, "unsupported YAML version of the document");
+ },
+ TAG: function(e, n, t) {
+ var r, s;
+ t.length !== 2 && _(e, "TAG directive accepts exactly two arguments"), r = t[0], s = t[1], fe.test(r) || _(e, "ill-formed tag handle (first argument) of the TAG directive"), N.call(e.tagMap, r) && _(e, 'there is a previously declared suffix for "' + r + '" tag handle'), _e.test(s) || _(e, "ill-formed tag prefix (second argument) of the TAG directive");
+ try {
+ s = decodeURIComponent(s);
+ } catch {
+ _(e, "tag prefix is malformed: " + s);
+ }
+ e.tagMap[r] = s;
+ }
+};
+function k(i, e, n, t) {
+ var r, s, o, l;
+ if (e < n) {
+ if (l = i.input.slice(e, n), t)
+ for (r = 0, s = l.length; r < s; r += 1)
+ o = l.charCodeAt(r), o === 9 || 32 <= o && o <= 1114111 || _(i, "expected valid JSON character");
+ else
+ St.test(l) && _(i, "the stream contains non-printable characters");
+ i.result += l;
+ }
+}
+function zi(i, e, n, t) {
+ var r, s, o, l;
+ for (w.isObject(n) || _(i, "cannot merge mappings; the provided source object is unacceptable"), r = Object.keys(n), o = 0, l = r.length; o < l; o += 1)
+ s = r[o], N.call(e, s) || (e[s] = n[s], t[s] = !0);
+}
+function j(i, e, n, t, r, s, o, l, a) {
+ var h, f;
+ if (Array.isArray(r))
+ for (r = Array.prototype.slice.call(r), h = 0, f = r.length; h < f; h += 1)
+ Array.isArray(r[h]) && _(i, "nested arrays are not supported inside keys"), typeof r == "object" && Li(r[h]) === "[object Object]" && (r[h] = "[object Object]");
+ if (typeof r == "object" && Li(r) === "[object Object]" && (r = "[object Object]"), r = String(r), e === null && (e = {}), t === "tag:yaml.org,2002:merge")
+ if (Array.isArray(s))
+ for (h = 0, f = s.length; h < f; h += 1)
+ zi(i, e, s[h], n);
+ else
+ zi(i, e, s, n);
+ else
+ !i.json && !N.call(n, r) && N.call(e, r) && (i.line = o || i.line, i.lineStart = l || i.lineStart, i.position = a || i.position, _(i, "duplicated mapping key")), r === "__proto__" ? Object.defineProperty(e, r, {
+ configurable: !0,
+ enumerable: !0,
+ writable: !0,
+ value: s
+ }) : e[r] = s, delete n[r];
+ return e;
+}
+function Ai(i) {
+ var e;
+ e = i.input.charCodeAt(i.position), e === 10 ? i.position++ : e === 13 ? (i.position++, i.input.charCodeAt(i.position) === 10 && i.position++) : _(i, "a line break is expected"), i.line += 1, i.lineStart = i.position, i.firstTabInLine = -1;
+}
+function v(i, e, n) {
+ for (var t = 0, r = i.input.charCodeAt(i.position); r !== 0; ) {
+ for (; F(r); )
+ r === 9 && i.firstTabInLine === -1 && (i.firstTabInLine = i.position), r = i.input.charCodeAt(++i.position);
+ if (e && r === 35)
+ do
+ r = i.input.charCodeAt(++i.position);
+ while (r !== 10 && r !== 13 && r !== 0);
+ if (S(r))
+ for (Ai(i), r = i.input.charCodeAt(i.position), t++, i.lineIndent = 0; r === 32; )
+ i.lineIndent++, r = i.input.charCodeAt(++i.position);
+ else
+ break;
+ }
+ return n !== -1 && t !== 0 && i.lineIndent < n && Q(i, "deficient indentation"), t;
+}
+function si(i) {
+ var e = i.position, n;
+ return n = i.input.charCodeAt(e), !!((n === 45 || n === 46) && n === i.input.charCodeAt(e + 1) && n === i.input.charCodeAt(e + 2) && (e += 3, n = i.input.charCodeAt(e), n === 0 || A(n)));
+}
+function Si(i, e) {
+ e === 1 ? i.result += " " : e > 1 && (i.result += w.repeat(`
+`, e - 1));
+}
+function Mt(i, e, n) {
+ var t, r, s, o, l, a, h, f, c = i.kind, p = i.result, u;
+ if (u = i.input.charCodeAt(i.position), A(u) || P(u) || u === 35 || u === 38 || u === 42 || u === 33 || u === 124 || u === 62 || u === 39 || u === 34 || u === 37 || u === 64 || u === 96 || (u === 63 || u === 45) && (r = i.input.charCodeAt(i.position + 1), A(r) || n && P(r)))
+ return !1;
+ for (i.kind = "scalar", i.result = "", s = o = i.position, l = !1; u !== 0; ) {
+ if (u === 58) {
+ if (r = i.input.charCodeAt(i.position + 1), A(r) || n && P(r))
+ break;
+ } else if (u === 35) {
+ if (t = i.input.charCodeAt(i.position - 1), A(t))
+ break;
+ } else {
+ if (i.position === i.lineStart && si(i) || n && P(u))
+ break;
+ if (S(u))
+ if (a = i.line, h = i.lineStart, f = i.lineIndent, v(i, !1, -1), i.lineIndent >= e) {
+ l = !0, u = i.input.charCodeAt(i.position);
+ continue;
+ } else {
+ i.position = o, i.line = a, i.lineStart = h, i.lineIndent = f;
+ break;
+ }
+ }
+ l && (k(i, s, o, !1), Si(i, i.line - a), s = o = i.position, l = !1), F(u) || (o = i.position + 1), u = i.input.charCodeAt(++i.position);
+ }
+ return k(i, s, o, !1), i.result ? !0 : (i.kind = c, i.result = p, !1);
+}
+function It(i, e) {
+ var n, t, r;
+ if (n = i.input.charCodeAt(i.position), n !== 39)
+ return !1;
+ for (i.kind = "scalar", i.result = "", i.position++, t = r = i.position; (n = i.input.charCodeAt(i.position)) !== 0; )
+ if (n === 39)
+ if (k(i, t, i.position, !0), n = i.input.charCodeAt(++i.position), n === 39)
+ t = i.position, i.position++, r = i.position;
+ else
+ return !0;
+ else
+ S(n) ? (k(i, t, r, !0), Si(i, v(i, !1, e)), t = r = i.position) : i.position === i.lineStart && si(i) ? _(i, "unexpected end of the document within a single quoted scalar") : (i.position++, r = i.position);
+ _(i, "unexpected end of the stream within a single quoted scalar");
+}
+function Pt(i, e) {
+ var n, t, r, s, o, l;
+ if (l = i.input.charCodeAt(i.position), l !== 34)
+ return !1;
+ for (i.kind = "scalar", i.result = "", i.position++, n = t = i.position; (l = i.input.charCodeAt(i.position)) !== 0; ) {
+ if (l === 34)
+ return k(i, n, i.position, !0), i.position++, !0;
+ if (l === 92) {
+ if (k(i, n, i.position, !0), l = i.input.charCodeAt(++i.position), S(l))
+ v(i, !1, e);
+ else if (l < 256 && pe[l])
+ i.result += de[l], i.position++;
+ else if ((o = Nt(l)) > 0) {
+ for (r = o, s = 0; r > 0; r--)
+ l = i.input.charCodeAt(++i.position), (o = Et(l)) >= 0 ? s = (s << 4) + o : _(i, "expected hexadecimal character");
+ i.result += Ft(s), i.position++;
+ } else
+ _(i, "unknown escape sequence");
+ n = t = i.position;
+ } else
+ S(l) ? (k(i, n, t, !0), Si(i, v(i, !1, e)), n = t = i.position) : i.position === i.lineStart && si(i) ? _(i, "unexpected end of the document within a double quoted scalar") : (i.position++, t = i.position);
+ }
+ _(i, "unexpected end of the stream within a double quoted scalar");
+}
+function jt(i, e) {
+ var n = !0, t, r, s, o = i.tag, l, a = i.anchor, h, f, c, p, u, g = /* @__PURE__ */ Object.create(null), y, m, C, d;
+ if (d = i.input.charCodeAt(i.position), d === 91)
+ f = 93, u = !1, l = [];
+ else if (d === 123)
+ f = 125, u = !0, l = {};
+ else
+ return !1;
+ for (i.anchor !== null && (i.anchorMap[i.anchor] = l), d = i.input.charCodeAt(++i.position); d !== 0; ) {
+ if (v(i, !0, e), d = i.input.charCodeAt(i.position), d === f)
+ return i.position++, i.tag = o, i.anchor = a, i.kind = u ? "mapping" : "sequence", i.result = l, !0;
+ n ? d === 44 && _(i, "expected the node content, but found ','") : _(i, "missed comma between flow collection entries"), m = y = C = null, c = p = !1, d === 63 && (h = i.input.charCodeAt(i.position + 1), A(h) && (c = p = !0, i.position++, v(i, !0, e))), t = i.line, r = i.lineStart, s = i.position, L(i, e, J, !1, !0), m = i.tag, y = i.result, v(i, !0, e), d = i.input.charCodeAt(i.position), (p || i.line === t) && d === 58 && (c = !0, d = i.input.charCodeAt(++i.position), v(i, !0, e), L(i, e, J, !1, !0), C = i.result), u ? j(i, l, g, m, y, C, t, r, s) : c ? l.push(j(i, null, g, m, y, C, t, r, s)) : l.push(y), v(i, !0, e), d = i.input.charCodeAt(i.position), d === 44 ? (n = !0, d = i.input.charCodeAt(++i.position)) : n = !1;
+ }
+ _(i, "unexpected end of the stream within a flow collection");
+}
+function Lt(i, e) {
+ var n, t, r = fi, s = !1, o = !1, l = e, a = 0, h = !1, f, c;
+ if (c = i.input.charCodeAt(i.position), c === 124)
+ t = !1;
+ else if (c === 62)
+ t = !0;
+ else
+ return !1;
+ for (i.kind = "scalar", i.result = ""; c !== 0; )
+ if (c = i.input.charCodeAt(++i.position), c === 43 || c === 45)
+ fi === r ? r = c === 43 ? ji : At : _(i, "repeat of a chomping mode identifier");
+ else if ((f = Ot(c)) >= 0)
+ f === 0 ? _(i, "bad explicit indentation width of a block scalar; it cannot be less than one") : o ? _(i, "repeat of an indentation width identifier") : (l = e + f - 1, o = !0);
+ else
+ break;
+ if (F(c)) {
+ do
+ c = i.input.charCodeAt(++i.position);
+ while (F(c));
+ if (c === 35)
+ do
+ c = i.input.charCodeAt(++i.position);
+ while (!S(c) && c !== 0);
+ }
+ for (; c !== 0; ) {
+ for (Ai(i), i.lineIndent = 0, c = i.input.charCodeAt(i.position); (!o || i.lineIndent < l) && c === 32; )
+ i.lineIndent++, c = i.input.charCodeAt(++i.position);
+ if (!o && i.lineIndent > l && (l = i.lineIndent), S(c)) {
+ a++;
+ continue;
+ }
+ if (i.lineIndent < l) {
+ r === ji ? i.result += w.repeat(`
+`, s ? 1 + a : a) : r === fi && s && (i.result += `
+`);
+ break;
+ }
+ for (t ? F(c) ? (h = !0, i.result += w.repeat(`
+`, s ? 1 + a : a)) : h ? (h = !1, i.result += w.repeat(`
+`, a + 1)) : a === 0 ? s && (i.result += " ") : i.result += w.repeat(`
+`, a) : i.result += w.repeat(`
+`, s ? 1 + a : a), s = !0, o = !0, a = 0, n = i.position; !S(c) && c !== 0; )
+ c = i.input.charCodeAt(++i.position);
+ k(i, n, i.position, !1);
+ }
+ return !0;
+}
+function Bi(i, e) {
+ var n, t = i.tag, r = i.anchor, s = [], o, l = !1, a;
+ if (i.firstTabInLine !== -1)
+ return !1;
+ for (i.anchor !== null && (i.anchorMap[i.anchor] = s), a = i.input.charCodeAt(i.position); a !== 0 && (i.firstTabInLine !== -1 && (i.position = i.firstTabInLine, _(i, "tab characters must not be used in indentation")), !(a !== 45 || (o = i.input.charCodeAt(i.position + 1), !A(o)))); ) {
+ if (l = !0, i.position++, v(i, !0, -1) && i.lineIndent <= e) {
+ s.push(null), a = i.input.charCodeAt(i.position);
+ continue;
+ }
+ if (n = i.line, L(i, e, ue, !1, !0), s.push(i.result), v(i, !0, -1), a = i.input.charCodeAt(i.position), (i.line === n || i.lineIndent > e) && a !== 0)
+ _(i, "bad indentation of a sequence entry");
+ else if (i.lineIndent < e)
+ break;
+ }
+ return l ? (i.tag = t, i.anchor = r, i.kind = "sequence", i.result = s, !0) : !1;
+}
+function Dt(i, e, n) {
+ var t, r, s, o, l, a, h = i.tag, f = i.anchor, c = {}, p = /* @__PURE__ */ Object.create(null), u = null, g = null, y = null, m = !1, C = !1, d;
+ if (i.firstTabInLine !== -1)
+ return !1;
+ for (i.anchor !== null && (i.anchorMap[i.anchor] = c), d = i.input.charCodeAt(i.position); d !== 0; ) {
+ if (!m && i.firstTabInLine !== -1 && (i.position = i.firstTabInLine, _(i, "tab characters must not be used in indentation")), t = i.input.charCodeAt(i.position + 1), s = i.line, (d === 63 || d === 58) && A(t))
+ d === 63 ? (m && (j(i, c, p, u, g, null, o, l, a), u = g = y = null), C = !0, m = !0, r = !0) : m ? (m = !1, r = !0) : _(i, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"), i.position += 1, d = t;
+ else {
+ if (o = i.line, l = i.lineStart, a = i.position, !L(i, n, he, !1, !0))
+ break;
+ if (i.line === s) {
+ for (d = i.input.charCodeAt(i.position); F(d); )
+ d = i.input.charCodeAt(++i.position);
+ if (d === 58)
+ d = i.input.charCodeAt(++i.position), A(d) || _(i, "a whitespace character is expected after the key-value separator within a block mapping"), m && (j(i, c, p, u, g, null, o, l, a), u = g = y = null), C = !0, m = !1, r = !1, u = i.tag, g = i.result;
+ else if (C)
+ _(i, "can not read an implicit mapping pair; a colon is missed");
+ else
+ return i.tag = h, i.anchor = f, !0;
+ } else if (C)
+ _(i, "can not read a block mapping entry; a multiline key may not be an implicit key");
+ else
+ return i.tag = h, i.anchor = f, !0;
+ }
+ if ((i.line === s || i.lineIndent > e) && (m && (o = i.line, l = i.lineStart, a = i.position), L(i, e, Z, !0, r) && (m ? g = i.result : y = i.result), m || (j(i, c, p, u, g, y, o, l, a), u = g = y = null), v(i, !0, -1), d = i.input.charCodeAt(i.position)), (i.line === s || i.lineIndent > e) && d !== 0)
+ _(i, "bad indentation of a mapping entry");
+ else if (i.lineIndent < e)
+ break;
+ }
+ return m && j(i, c, p, u, g, null, o, l, a), C && (i.tag = h, i.anchor = f, i.kind = "mapping", i.result = c), C;
+}
+function Rt(i) {
+ var e, n = !1, t = !1, r, s, o;
+ if (o = i.input.charCodeAt(i.position), o !== 33)
+ return !1;
+ if (i.tag !== null && _(i, "duplication of a tag property"), o = i.input.charCodeAt(++i.position), o === 60 ? (n = !0, o = i.input.charCodeAt(++i.position)) : o === 33 ? (t = !0, r = "!!", o = i.input.charCodeAt(++i.position)) : r = "!", e = i.position, n) {
+ do
+ o = i.input.charCodeAt(++i.position);
+ while (o !== 0 && o !== 62);
+ i.position < i.length ? (s = i.input.slice(e, i.position), o = i.input.charCodeAt(++i.position)) : _(i, "unexpected end of the stream within a verbatim tag");
+ } else {
+ for (; o !== 0 && !A(o); )
+ o === 33 && (t ? _(i, "tag suffix cannot contain exclamation marks") : (r = i.input.slice(e - 1, i.position + 1), fe.test(r) || _(i, "named tag handle cannot contain such characters"), t = !0, e = i.position + 1)), o = i.input.charCodeAt(++i.position);
+ s = i.input.slice(e, i.position), kt.test(s) && _(i, "tag suffix cannot contain flow indicator characters");
+ }
+ s && !_e.test(s) && _(i, "tag name cannot contain such characters: " + s);
+ try {
+ s = decodeURIComponent(s);
+ } catch {
+ _(i, "tag name is malformed: " + s);
+ }
+ return n ? i.tag = s : N.call(i.tagMap, r) ? i.tag = i.tagMap[r] + s : r === "!" ? i.tag = "!" + s : r === "!!" ? i.tag = "tag:yaml.org,2002:" + s : _(i, 'undeclared tag handle "' + r + '"'), !0;
+}
+function zt(i) {
+ var e, n;
+ if (n = i.input.charCodeAt(i.position), n !== 38)
+ return !1;
+ for (i.anchor !== null && _(i, "duplication of an anchor property"), n = i.input.charCodeAt(++i.position), e = i.position; n !== 0 && !A(n) && !P(n); )
+ n = i.input.charCodeAt(++i.position);
+ return i.position === e && _(i, "name of an anchor node must contain at least one character"), i.anchor = i.input.slice(e, i.position), !0;
+}
+function Bt(i) {
+ var e, n, t;
+ if (t = i.input.charCodeAt(i.position), t !== 42)
+ return !1;
+ for (t = i.input.charCodeAt(++i.position), e = i.position; t !== 0 && !A(t) && !P(t); )
+ t = i.input.charCodeAt(++i.position);
+ return i.position === e && _(i, "name of an alias node must contain at least one character"), n = i.input.slice(e, i.position), N.call(i.anchorMap, n) || _(i, 'unidentified alias "' + n + '"'), i.result = i.anchorMap[n], v(i, !0, -1), !0;
+}
+function L(i, e, n, t, r) {
+ var s, o, l, a = 1, h = !1, f = !1, c, p, u, g, y, m;
+ if (i.listener !== null && i.listener("open", i), i.tag = null, i.anchor = null, i.kind = null, i.result = null, s = o = l = Z === n || ue === n, t && v(i, !0, -1) && (h = !0, i.lineIndent > e ? a = 1 : i.lineIndent === e ? a = 0 : i.lineIndent < e && (a = -1)), a === 1)
+ for (; Rt(i) || zt(i); )
+ v(i, !0, -1) ? (h = !0, l = s, i.lineIndent > e ? a = 1 : i.lineIndent === e ? a = 0 : i.lineIndent < e && (a = -1)) : l = !1;
+ if (l && (l = h || r), (a === 1 || Z === n) && (J === n || he === n ? y = e : y = e + 1, m = i.position - i.lineStart, a === 1 ? l && (Bi(i, m) || Dt(i, m, y)) || jt(i, y) ? f = !0 : (o && Lt(i, y) || It(i, y) || Pt(i, y) ? f = !0 : Bt(i) ? (f = !0, (i.tag !== null || i.anchor !== null) && _(i, "alias node should not have any properties")) : Mt(i, y, J === n) && (f = !0, i.tag === null && (i.tag = "?")), i.anchor !== null && (i.anchorMap[i.anchor] = i.result)) : a === 0 && (f = l && Bi(i, m))), i.tag === null)
+ i.anchor !== null && (i.anchorMap[i.anchor] = i.result);
+ else if (i.tag === "?") {
+ for (i.result !== null && i.kind !== "scalar" && _(i, 'unacceptable node kind for !> tag; it should be "scalar", not "' + i.kind + '"'), c = 0, p = i.implicitTypes.length; c < p; c += 1)
+ if (g = i.implicitTypes[c], g.resolve(i.result)) {
+ i.result = g.construct(i.result), i.tag = g.tag, i.anchor !== null && (i.anchorMap[i.anchor] = i.result);
+ break;
+ }
+ } else if (i.tag !== "!") {
+ if (N.call(i.typeMap[i.kind || "fallback"], i.tag))
+ g = i.typeMap[i.kind || "fallback"][i.tag];
+ else
+ for (g = null, u = i.typeMap.multi[i.kind || "fallback"], c = 0, p = u.length; c < p; c += 1)
+ if (i.tag.slice(0, u[c].tag.length) === u[c].tag) {
+ g = u[c];
+ break;
+ }
+ g || _(i, "unknown tag !<" + i.tag + ">"), i.result !== null && g.kind !== i.kind && _(i, "unacceptable node kind for !<" + i.tag + '> tag; it should be "' + g.kind + '", not "' + i.kind + '"'), g.resolve(i.result, i.tag) ? (i.result = g.construct(i.result, i.tag), i.anchor !== null && (i.anchorMap[i.anchor] = i.result)) : _(i, "cannot resolve a node with !<" + i.tag + "> explicit tag");
+ }
+ return i.listener !== null && i.listener("close", i), i.tag !== null || i.anchor !== null || f;
+}
+function Yt(i) {
+ var e = i.position, n, t, r, s = !1, o;
+ for (i.version = null, i.checkLineBreaks = i.legacy, i.tagMap = /* @__PURE__ */ Object.create(null), i.anchorMap = /* @__PURE__ */ Object.create(null); (o = i.input.charCodeAt(i.position)) !== 0 && (v(i, !0, -1), o = i.input.charCodeAt(i.position), !(i.lineIndent > 0 || o !== 37)); ) {
+ for (s = !0, o = i.input.charCodeAt(++i.position), n = i.position; o !== 0 && !A(o); )
+ o = i.input.charCodeAt(++i.position);
+ for (t = i.input.slice(n, i.position), r = [], t.length < 1 && _(i, "directive name must not be less than one character in length"); o !== 0; ) {
+ for (; F(o); )
+ o = i.input.charCodeAt(++i.position);
+ if (o === 35) {
+ do
+ o = i.input.charCodeAt(++i.position);
+ while (o !== 0 && !S(o));
+ break;
+ }
+ if (S(o))
+ break;
+ for (n = i.position; o !== 0 && !A(o); )
+ o = i.input.charCodeAt(++i.position);
+ r.push(i.input.slice(n, i.position));
+ }
+ o !== 0 && Ai(i), N.call(Ri, t) ? Ri[t](i, t, r) : Q(i, 'unknown document directive "' + t + '"');
+ }
+ if (v(i, !0, -1), i.lineIndent === 0 && i.input.charCodeAt(i.position) === 45 && i.input.charCodeAt(i.position + 1) === 45 && i.input.charCodeAt(i.position + 2) === 45 ? (i.position += 3, v(i, !0, -1)) : s && _(i, "directives end mark is expected"), L(i, i.lineIndent - 1, Z, !1, !0), v(i, !0, -1), i.checkLineBreaks && Tt.test(i.input.slice(e, i.position)) && Q(i, "non-ASCII line breaks are interpreted as content"), i.documents.push(i.result), i.position === i.lineStart && si(i)) {
+ i.input.charCodeAt(i.position) === 46 && (i.position += 3, v(i, !0, -1));
+ return;
+ }
+ if (i.position < i.length - 1)
+ _(i, "end of the stream or a document separator is expected");
+ else
+ return;
+}
+function ge(i, e) {
+ i = String(i), e = e || {}, i.length !== 0 && (i.charCodeAt(i.length - 1) !== 10 && i.charCodeAt(i.length - 1) !== 13 && (i += `
+`), i.charCodeAt(0) === 65279 && (i = i.slice(1)));
+ var n = new $t(i, e), t = i.indexOf("\0");
+ for (t !== -1 && (n.position = t, _(n, "null byte is not allowed in input")), n.input += "\0"; n.input.charCodeAt(n.position) === 32; )
+ n.lineIndent += 1, n.position += 1;
+ for (; n.position < n.length - 1; )
+ Yt(n);
+ return n.documents;
+}
+function Wt(i, e, n) {
+ e !== null && typeof e == "object" && typeof n > "u" && (n = e, e = null);
+ var t = ge(i, n);
+ if (typeof e != "function")
+ return t;
+ for (var r = 0, s = t.length; r < s; r += 1)
+ e(t[r]);
+}
+function Ut(i, e) {
+ var n = ge(i, e);
+ if (n.length !== 0) {
+ if (n.length === 1)
+ return n[0];
+ throw new T("expected a single document in the stream, but found more");
+ }
+}
+var Ht = Wt, Gt = Ut, qt = {
+ loadAll: Ht,
+ load: Gt
+}, Kt = le, Vt = qt.load;
+const me = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;
+function os(i, e) {
+ var t, r;
+ const n = i.match(me);
+ if (n) {
+ const s = Vt(n[1], {
+ // To keep things simple, only allow strings, arrays, and plain objects.
+ // https://www.yaml.org/spec/1.2/spec.html#id2802346
+ schema: Kt
+ });
+ return s != null && s.title && ((t = e.setDiagramTitle) == null || t.call(e, s.title)), s != null && s.displayMode && ((r = e.setDisplayMode) == null || r.call(e, s.displayMode)), i.slice(n[0].length);
+ } else
+ return i;
+}
+const Xt = function(i, e) {
+ for (let n of e)
+ i.attr(n[0], n[1]);
+}, Jt = function(i, e, n) {
+ let t = /* @__PURE__ */ new Map();
+ return n ? (t.set("width", "100%"), t.set("style", `max-width: ${e}px;`)) : (t.set("height", i), t.set("width", e)), t;
+}, Zt = function(i, e, n, t) {
+ const r = Jt(e, n, t);
+ Xt(i, r);
+}, Qt = function(i, e, n, t) {
+ const r = e.node().getBBox(), s = r.width, o = r.height;
+ x.info(`SVG bounds: ${s}x${o}`, r);
+ let l = 0, a = 0;
+ x.info(`Graph bounds: ${l}x${a}`, i), l = s + n * 2, a = o + n * 2, x.info(`Calculated bounds: ${l}x${a}`), Zt(e, a, l, t);
+ const h = `${r.x - n} ${r.y - n} ${r.width + 2 * n} ${r.height + 2 * n}`;
+ e.attr("viewBox", h);
+}, G = {}, ir = (i, e, n) => {
+ let t = "";
+ return i in G && G[i] ? t = G[i](n) : x.warn(`No theme found for ${i}`), ` & {
+ font-family: ${n.fontFamily};
+ font-size: ${n.fontSize};
+ fill: ${n.textColor}
+ }
+
+ /* Classes common for multiple diagrams */
+
+ & .error-icon {
+ fill: ${n.errorBkgColor};
+ }
+ & .error-text {
+ fill: ${n.errorTextColor};
+ stroke: ${n.errorTextColor};
+ }
+
+ & .edge-thickness-normal {
+ stroke-width: 2px;
+ }
+ & .edge-thickness-thick {
+ stroke-width: 3.5px
+ }
+ & .edge-pattern-solid {
+ stroke-dasharray: 0;
+ }
+
+ & .edge-pattern-dashed{
+ stroke-dasharray: 3;
+ }
+ .edge-pattern-dotted {
+ stroke-dasharray: 2;
+ }
+
+ & .marker {
+ fill: ${n.lineColor};
+ stroke: ${n.lineColor};
+ }
+ & .marker.cross {
+ stroke: ${n.lineColor};
+ }
+
+ & svg {
+ font-family: ${n.fontFamily};
+ font-size: ${n.fontSize};
+ }
+
+ ${t}
+
+ ${e}
+`;
+}, er = (i, e) => {
+ G[i] = e;
+}, ss = ir;
+let O = {};
+const nr = function(i, e, n, t) {
+ x.debug("parseDirective is being called", e, n, t);
+ try {
+ if (e !== void 0)
+ switch (e = e.trim(), n) {
+ case "open_directive":
+ O = {};
+ break;
+ case "type_directive":
+ if (!O)
+ throw new Error("currentDirective is undefined");
+ O.type = e.toLowerCase();
+ break;
+ case "arg_directive":
+ if (!O)
+ throw new Error("currentDirective is undefined");
+ O.args = JSON.parse(e);
+ break;
+ case "close_directive":
+ tr(i, O, t), O = void 0;
+ break;
+ }
+ } catch (r) {
+ x.error(
+ `Error while rendering sequenceDiagram directive: ${e} jison context: ${n}`
+ ), x.error(r.message);
+ }
+}, tr = function(i, e, n) {
+ switch (x.info(`Directive type=${e.type} with args:`, e.args), e.type) {
+ case "init":
+ case "initialize": {
+ ["config"].forEach((t) => {
+ e.args[t] !== void 0 && (n === "flowchart-v2" && (n = "flowchart"), e.args[n] = e.args[t], delete e.args[t]);
+ }), x.info("sanitize in handleDirective", e.args), W(e.args), x.info("sanitize in handleDirective (done)", e.args), Se(e.args);
+ break;
+ }
+ case "wrap":
+ case "nowrap":
+ i && i.setWrap && i.setWrap(e.type === "wrap");
+ break;
+ case "themeCss":
+ x.warn("themeCss encountered");
+ break;
+ default:
+ x.warn(
+ `Unhandled directive: source: '%%{${e.type}: ${JSON.stringify(
+ e.args ? e.args : {}
+ )}}%%`,
+ e
+ );
+ break;
+ }
+}, rr = x, or = Te, ye = ke, sr = (i) => Ee(i, ye()), lr = Qt, ar = () => Ne, cr = (i, e, n, t) => nr(i, e, n, t), ii = {}, hr = (i, e, n) => {
+ if (ii[i])
+ throw new Error(`Diagram ${i} already registered.`);
+ ii[i] = e, n && ve(i, n), er(i, e.styles), e.injectUtils && e.injectUtils(
+ rr,
+ or,
+ ye,
+ sr,
+ lr,
+ ar(),
+ cr
+ );
+}, ur = (i) => {
+ if (i in ii)
+ return ii[i];
+ throw new Error(`Diagram ${i} not found.`);
+};
+class fr extends Error {
+ constructor(e) {
+ super(e), this.name = "UnknownDiagramError";
+ }
+}
+const _r = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi, pr = /\s*%%.*\n/gm, D = {}, dr = function(i, e) {
+ i = i.replace(me, "").replace(_r, "").replace(pr, `
+`);
+ for (const [n, { detector: t }] of Object.entries(D))
+ if (t(i, e))
+ return n;
+ throw new fr(
+ `No diagram type detected matching given configuration for text: ${i}`
+ );
+}, ls = (...i) => {
+ for (const { id: e, detector: n, loader: t } of i)
+ ve(e, n, t);
+}, as = async () => {
+ x.debug("Loading registered diagrams");
+ const e = (await Promise.allSettled(
+ Object.entries(D).map(async ([n, { detector: t, loader: r }]) => {
+ if (r)
+ try {
+ ur(n);
+ } catch {
+ try {
+ const { diagram: o, id: l } = await r();
+ hr(l, o, t);
+ } catch (o) {
+ throw x.error(`Failed to load external diagram with key ${n}. Removing from detectors.`), delete D[n], o;
+ }
+ }
+ })
+ )).filter((n) => n.status === "rejected");
+ if (e.length > 0) {
+ x.error(`Failed to load ${e.length} external diagrams`);
+ for (const n of e)
+ x.error(n);
+ throw new Error(`Failed to load ${e.length} external diagrams`);
+ }
+}, ve = (i, e, n) => {
+ D[i] ? x.error(`Detector with key ${i} already exists`) : D[i] = { detector: e, loader: n }, x.debug(`Detector with key ${i} added${n ? " with loader" : ""}`);
+}, cs = (i) => D[i].loader;
+var xr = typeof global == "object" && global && global.Object === Object && global;
+const gr = xr;
+var mr = typeof self == "object" && self && self.Object === Object && self, yr = gr || mr || Function("return this")();
+const Ti = yr;
+var vr = Ti.Symbol;
+const ei = vr;
+var be = Object.prototype, br = be.hasOwnProperty, wr = be.toString, z = ei ? ei.toStringTag : void 0;
+function Cr(i) {
+ var e = br.call(i, z), n = i[z];
+ try {
+ i[z] = void 0;
+ var t = !0;
+ } catch {
+ }
+ var r = wr.call(i);
+ return t && (e ? i[z] = n : delete i[z]), r;
+}
+var Ar = Object.prototype, Sr = Ar.toString;
+function Tr(i) {
+ return Sr.call(i);
+}
+var kr = "[object Null]", Er = "[object Undefined]", Yi = ei ? ei.toStringTag : void 0;
+function Nr(i) {
+ return i == null ? i === void 0 ? Er : kr : Yi && Yi in Object(i) ? Cr(i) : Tr(i);
+}
+function we(i) {
+ var e = typeof i;
+ return i != null && (e == "object" || e == "function");
+}
+var Or = "[object AsyncFunction]", Fr = "[object Function]", $r = "[object GeneratorFunction]", Mr = "[object Proxy]";
+function Ir(i) {
+ if (!we(i))
+ return !1;
+ var e = Nr(i);
+ return e == Fr || e == $r || e == Or || e == Mr;
+}
+var Pr = Ti["__core-js_shared__"];
+const _i = Pr;
+var Wi = function() {
+ var i = /[^.]+$/.exec(_i && _i.keys && _i.keys.IE_PROTO || "");
+ return i ? "Symbol(src)_1." + i : "";
+}();
+function jr(i) {
+ return !!Wi && Wi in i;
+}
+var Lr = Function.prototype, Dr = Lr.toString;
+function Rr(i) {
+ if (i != null) {
+ try {
+ return Dr.call(i);
+ } catch {
+ }
+ try {
+ return i + "";
+ } catch {
+ }
+ }
+ return "";
+}
+var zr = /[\\^$.*+?()[\]{}|]/g, Br = /^\[object .+?Constructor\]$/, Yr = Function.prototype, Wr = Object.prototype, Ur = Yr.toString, Hr = Wr.hasOwnProperty, Gr = RegExp(
+ "^" + Ur.call(Hr).replace(zr, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
+);
+function qr(i) {
+ if (!we(i) || jr(i))
+ return !1;
+ var e = Ir(i) ? Gr : Br;
+ return e.test(Rr(i));
+}
+function Kr(i, e) {
+ return i == null ? void 0 : i[e];
+}
+function Ce(i, e) {
+ var n = Kr(i, e);
+ return qr(n) ? n : void 0;
+}
+var Vr = Ce(Object, "create");
+const Y = Vr;
+function Xr() {
+ this.__data__ = Y ? Y(null) : {}, this.size = 0;
+}
+function Jr(i) {
+ var e = this.has(i) && delete this.__data__[i];
+ return this.size -= e ? 1 : 0, e;
+}
+var Zr = "__lodash_hash_undefined__", Qr = Object.prototype, io = Qr.hasOwnProperty;
+function eo(i) {
+ var e = this.__data__;
+ if (Y) {
+ var n = e[i];
+ return n === Zr ? void 0 : n;
+ }
+ return io.call(e, i) ? e[i] : void 0;
+}
+var no = Object.prototype, to = no.hasOwnProperty;
+function ro(i) {
+ var e = this.__data__;
+ return Y ? e[i] !== void 0 : to.call(e, i);
+}
+var oo = "__lodash_hash_undefined__";
+function so(i, e) {
+ var n = this.__data__;
+ return this.size += this.has(i) ? 0 : 1, n[i] = Y && e === void 0 ? oo : e, this;
+}
+function $(i) {
+ var e = -1, n = i == null ? 0 : i.length;
+ for (this.clear(); ++e < n; ) {
+ var t = i[e];
+ this.set(t[0], t[1]);
+ }
+}
+$.prototype.clear = Xr;
+$.prototype.delete = Jr;
+$.prototype.get = eo;
+$.prototype.has = ro;
+$.prototype.set = so;
+function lo() {
+ this.__data__ = [], this.size = 0;
+}
+function ao(i, e) {
+ return i === e || i !== i && e !== e;
+}
+function li(i, e) {
+ for (var n = i.length; n--; )
+ if (ao(i[n][0], e))
+ return n;
+ return -1;
+}
+var co = Array.prototype, ho = co.splice;
+function uo(i) {
+ var e = this.__data__, n = li(e, i);
+ if (n < 0)
+ return !1;
+ var t = e.length - 1;
+ return n == t ? e.pop() : ho.call(e, n, 1), --this.size, !0;
+}
+function fo(i) {
+ var e = this.__data__, n = li(e, i);
+ return n < 0 ? void 0 : e[n][1];
+}
+function _o(i) {
+ return li(this.__data__, i) > -1;
+}
+function po(i, e) {
+ var n = this.__data__, t = li(n, i);
+ return t < 0 ? (++this.size, n.push([i, e])) : n[t][1] = e, this;
+}
+function R(i) {
+ var e = -1, n = i == null ? 0 : i.length;
+ for (this.clear(); ++e < n; ) {
+ var t = i[e];
+ this.set(t[0], t[1]);
+ }
+}
+R.prototype.clear = lo;
+R.prototype.delete = uo;
+R.prototype.get = fo;
+R.prototype.has = _o;
+R.prototype.set = po;
+var xo = Ce(Ti, "Map");
+const go = xo;
+function mo() {
+ this.size = 0, this.__data__ = {
+ hash: new $(),
+ map: new (go || R)(),
+ string: new $()
+ };
+}
+function yo(i) {
+ var e = typeof i;
+ return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? i !== "__proto__" : i === null;
+}
+function ai(i, e) {
+ var n = i.__data__;
+ return yo(e) ? n[typeof e == "string" ? "string" : "hash"] : n.map;
+}
+function vo(i) {
+ var e = ai(this, i).delete(i);
+ return this.size -= e ? 1 : 0, e;
+}
+function bo(i) {
+ return ai(this, i).get(i);
+}
+function wo(i) {
+ return ai(this, i).has(i);
+}
+function Co(i, e) {
+ var n = ai(this, i), t = n.size;
+ return n.set(i, e), this.size += n.size == t ? 0 : 1, this;
+}
+function M(i) {
+ var e = -1, n = i == null ? 0 : i.length;
+ for (this.clear(); ++e < n; ) {
+ var t = i[e];
+ this.set(t[0], t[1]);
+ }
+}
+M.prototype.clear = mo;
+M.prototype.delete = vo;
+M.prototype.get = bo;
+M.prototype.has = wo;
+M.prototype.set = Co;
+var Ao = "Expected a function";
+function U(i, e) {
+ if (typeof i != "function" || e != null && typeof e != "function")
+ throw new TypeError(Ao);
+ var n = function() {
+ var t = arguments, r = e ? e.apply(this, t) : t[0], s = n.cache;
+ if (s.has(r))
+ return s.get(r);
+ var o = i.apply(this, t);
+ return n.cache = s.set(r, o) || s, o;
+ };
+ return n.cache = new (U.Cache || M)(), n;
+}
+U.Cache = M;
+const So = {
+ curveBasis: We,
+ curveBasisClosed: Ue,
+ curveBasisOpen: He,
+ curveBumpX: Be,
+ curveBumpY: Ye,
+ curveBundle: Ge,
+ curveCardinalClosed: Ke,
+ curveCardinalOpen: Ve,
+ curveCardinal: qe,
+ curveCatmullRomClosed: Je,
+ curveCatmullRomOpen: Ze,
+ curveCatmullRom: Xe,
+ curveLinear: ze,
+ curveLinearClosed: Qe,
+ curveMonotoneX: en,
+ curveMonotoneY: nn,
+ curveNatural: tn,
+ curveStep: rn,
+ curveStepAfter: sn,
+ curveStepBefore: on
+}, pi = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi, To = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi, ko = function(i, e) {
+ const n = Ae(i, /(?:init\b)|(?:initialize\b)/);
+ let t = {};
+ if (Array.isArray(n)) {
+ const r = n.map((s) => s.args);
+ W(r), t = Hi(t, [...r]);
+ } else
+ t = n.args;
+ if (t) {
+ let r = dr(i, e);
+ ["config"].forEach((s) => {
+ t[s] !== void 0 && (r === "flowchart-v2" && (r = "flowchart"), t[r] = t[s], delete t[s]);
+ });
+ }
+ return t;
+}, Ae = function(i, e = null) {
+ try {
+ const n = new RegExp(
+ `[%]{2}(?![{]${To.source})(?=[}][%]{2}).*
+`,
+ "ig"
+ );
+ i = i.trim().replace(n, "").replace(/'/gm, '"'), x.debug(
+ `Detecting diagram directive${e !== null ? " type:" + e : ""} based on the text:${i}`
+ );
+ let t;
+ const r = [];
+ for (; (t = pi.exec(i)) !== null; )
+ if (t.index === pi.lastIndex && pi.lastIndex++, t && !e || e && t[1] && t[1].match(e) || e && t[2] && t[2].match(e)) {
+ const s = t[1] ? t[1] : t[2], o = t[3] ? t[3].trim() : t[4] ? JSON.parse(t[4].trim()) : null;
+ r.push({ type: s, args: o });
+ }
+ return r.length === 0 && r.push({ type: i, args: null }), r.length === 1 ? r[0] : r;
+ } catch (n) {
+ return x.error(
+ `ERROR: ${n.message} - Unable to parse directive
+ ${e !== null ? " type:" + e : ""} based on the text:${i}`
+ ), { type: null, args: null };
+ }
+}, Eo = function(i, e) {
+ for (const [n, t] of e.entries())
+ if (t.match(i))
+ return n;
+ return -1;
+};
+function No(i, e) {
+ if (!i)
+ return e;
+ const n = `curve${i.charAt(0).toUpperCase() + i.slice(1)}`;
+ return So[n] || e;
+}
+function Oo(i, e) {
+ const n = i.trim();
+ if (n)
+ return e.securityLevel !== "loose" ? Gi(n) : n;
+}
+const Fo = (i, ...e) => {
+ const n = i.split("."), t = n.length - 1, r = n[t];
+ let s = window;
+ for (let o = 0; o < t; o++)
+ if (s = s[n[o]], !s)
+ return;
+ s[r](...e);
+};
+function ni(i, e) {
+ return i && e ? Math.sqrt(Math.pow(e.x - i.x, 2) + Math.pow(e.y - i.y, 2)) : 0;
+}
+function $o(i) {
+ let e, n = 0;
+ i.forEach((s) => {
+ n += ni(s, e), e = s;
+ });
+ let t = n / 2, r;
+ return e = void 0, i.forEach((s) => {
+ if (e && !r) {
+ const o = ni(s, e);
+ if (o < t)
+ t -= o;
+ else {
+ const l = t / o;
+ l <= 0 && (r = e), l >= 1 && (r = { x: s.x, y: s.y }), l > 0 && l < 1 && (r = {
+ x: (1 - l) * e.x + l * s.x,
+ y: (1 - l) * e.y + l * s.y
+ });
+ }
+ }
+ e = s;
+ }), r;
+}
+function Mo(i) {
+ return i.length === 1 ? i[0] : $o(i);
+}
+const Io = (i, e, n) => {
+ let t;
+ x.info(`our points ${JSON.stringify(e)}`), e[0] !== n && (e = e.reverse());
+ let s = 25, o;
+ t = void 0, e.forEach((f) => {
+ if (t && !o) {
+ const c = ni(f, t);
+ if (c < s)
+ s -= c;
+ else {
+ const p = s / c;
+ p <= 0 && (o = t), p >= 1 && (o = { x: f.x, y: f.y }), p > 0 && p < 1 && (o = {
+ x: (1 - p) * t.x + p * f.x,
+ y: (1 - p) * t.y + p * f.y
+ });
+ }
+ }
+ t = f;
+ });
+ const l = i ? 10 : 5, a = Math.atan2(e[0].y - o.y, e[0].x - o.x), h = { x: 0, y: 0 };
+ return h.x = Math.sin(a) * l + (e[0].x + o.x) / 2, h.y = -Math.cos(a) * l + (e[0].y + o.y) / 2, h;
+};
+function Po(i, e, n) {
+ let t = JSON.parse(JSON.stringify(n)), r;
+ x.info("our points", t), e !== "start_left" && e !== "start_right" && (t = t.reverse()), t.forEach((c) => {
+ r = c;
+ });
+ let o = 25 + i, l;
+ r = void 0, t.forEach((c) => {
+ if (r && !l) {
+ const p = ni(c, r);
+ if (p < o)
+ o -= p;
+ else {
+ const u = o / p;
+ u <= 0 && (l = r), u >= 1 && (l = { x: c.x, y: c.y }), u > 0 && u < 1 && (l = {
+ x: (1 - u) * r.x + u * c.x,
+ y: (1 - u) * r.y + u * c.y
+ });
+ }
+ }
+ r = c;
+ });
+ const a = 10 + i * 0.5, h = Math.atan2(t[0].y - l.y, t[0].x - l.x), f = { x: 0, y: 0 };
+ return f.x = Math.sin(h) * a + (t[0].x + l.x) / 2, f.y = -Math.cos(h) * a + (t[0].y + l.y) / 2, e === "start_left" && (f.x = Math.sin(h + Math.PI) * a + (t[0].x + l.x) / 2, f.y = -Math.cos(h + Math.PI) * a + (t[0].y + l.y) / 2), e === "end_right" && (f.x = Math.sin(h - Math.PI) * a + (t[0].x + l.x) / 2 - 5, f.y = -Math.cos(h - Math.PI) * a + (t[0].y + l.y) / 2 - 5), e === "end_left" && (f.x = Math.sin(h) * a + (t[0].x + l.x) / 2 - 5, f.y = -Math.cos(h) * a + (t[0].y + l.y) / 2 - 5), f;
+}
+function jo(i) {
+ let e = "", n = "";
+ for (const t of i)
+ t !== void 0 && (t.startsWith("color:") || t.startsWith("text-align:") ? n = n + t + ";" : e = e + t + ";");
+ return { style: e, labelStyle: n };
+}
+let Ui = 0;
+const Lo = () => (Ui++, "id-" + Math.random().toString(36).substr(2, 12) + "-" + Ui);
+function Do(i) {
+ let e = "";
+ const n = "0123456789abcdef", t = n.length;
+ for (let r = 0; r < i; r++)
+ e += n.charAt(Math.floor(Math.random() * t));
+ return e;
+}
+const Ro = (i) => Do(i.length), zo = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ anchor: "start",
+ style: "#666",
+ width: 100,
+ height: 100,
+ textMargin: 0,
+ rx: 0,
+ ry: 0,
+ valign: void 0
+ };
+}, Bo = function(i, e) {
+ const n = e.text.replace(xi.lineBreakRegex, " "), [, t] = Ei(e.fontSize), r = i.append("text");
+ r.attr("x", e.x), r.attr("y", e.y), r.style("text-anchor", e.anchor), r.style("font-family", e.fontFamily), r.style("font-size", t), r.style("font-weight", e.fontWeight), r.attr("fill", e.fill), e.class !== void 0 && r.attr("class", e.class);
+ const s = r.append("tspan");
+ return s.attr("x", e.x + e.textMargin * 2), s.attr("fill", e.fill), s.text(n), r;
+}, Yo = U(
+ (i, e, n) => {
+ if (!i || (n = Object.assign(
+ { fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "
" },
+ n
+ ), xi.lineBreakRegex.test(i)))
+ return i;
+ const t = i.split(" "), r = [];
+ let s = "";
+ return t.forEach((o, l) => {
+ const a = ti(`${o} `, n), h = ti(s, n);
+ if (a > e) {
+ const { hyphenatedStrings: p, remainingWord: u } = Wo(o, e, "-", n);
+ r.push(s, ...p), s = u;
+ } else
+ h + a >= e ? (r.push(s), s = o) : s = [s, o].filter(Boolean).join(" ");
+ l + 1 === t.length && r.push(s);
+ }), r.filter((o) => o !== "").join(n.joinWith);
+ },
+ (i, e, n) => `${i}${e}${n.fontSize}${n.fontWeight}${n.fontFamily}${n.joinWith}`
+), Wo = U(
+ (i, e, n = "-", t) => {
+ t = Object.assign(
+ { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 },
+ t
+ );
+ const r = [...i], s = [];
+ let o = "";
+ return r.forEach((l, a) => {
+ const h = `${o}${l}`;
+ if (ti(h, t) >= e) {
+ const c = a + 1, p = r.length === c, u = `${h}${n}`;
+ s.push(p ? h : u), o = "";
+ } else
+ o = h;
+ }), { hyphenatedStrings: s, remainingWord: o };
+ },
+ (i, e, n = "-", t) => `${i}${e}${n}${t.fontSize}${t.fontWeight}${t.fontFamily}`
+);
+function Uo(i, e) {
+ return e = Object.assign(
+ { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 15 },
+ e
+ ), ki(i, e).height;
+}
+function ti(i, e) {
+ return e = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, e), ki(i, e).width;
+}
+const ki = U(
+ (i, e) => {
+ e = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, e);
+ const { fontSize: n, fontFamily: t, fontWeight: r } = e;
+ if (!i)
+ return { width: 0, height: 0 };
+ const [, s] = Ei(n), o = ["sans-serif", t], l = i.split(xi.lineBreakRegex), a = [], h = Fe("body");
+ if (!h.remove)
+ return { width: 0, height: 0, lineHeight: 0 };
+ const f = h.append("svg");
+ for (const p of o) {
+ let u = 0;
+ const g = { width: 0, height: 0, lineHeight: 0 };
+ for (const y of l) {
+ const m = zo();
+ m.text = y;
+ const C = Bo(f, m).style("font-size", s).style("font-weight", r).style("font-family", p), d = (C._groups || C)[0][0].getBBox();
+ if (d.width === 0 && d.height === 0)
+ throw new Error("svg element not in render tree");
+ g.width = Math.round(Math.max(g.width, d.width)), u = Math.round(d.height), g.height += u, g.lineHeight = Math.round(Math.max(g.lineHeight, u));
+ }
+ a.push(g);
+ }
+ f.remove();
+ const c = isNaN(a[1].height) || isNaN(a[1].width) || isNaN(a[1].lineHeight) || a[0].height > a[1].height && a[0].width > a[1].width && a[0].lineHeight > a[1].lineHeight ? 0 : 1;
+ return a[c];
+ },
+ (i, e) => `${i}${e.fontSize}${e.fontWeight}${e.fontFamily}`
+), Ho = class {
+ constructor(e, n) {
+ this.deterministic = e, this.seed = n, this.count = n ? n.length : 0;
+ }
+ next() {
+ return this.deterministic ? this.count++ : Date.now();
+ }
+};
+let H;
+const Go = function(i) {
+ return H = H || document.createElement("div"), i = escape(i).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";"), H.innerHTML = i, unescape(H.textContent);
+}, W = (i) => {
+ if (x.debug("directiveSanitizer called with", i), typeof i == "object" && (i.length ? i.forEach((e) => W(e)) : Object.keys(i).forEach((e) => {
+ x.debug("Checking key", e), e.startsWith("__") && (x.debug("sanitize deleting __ option", e), delete i[e]), e.includes("proto") && (x.debug("sanitize deleting proto option", e), delete i[e]), e.includes("constr") && (x.debug("sanitize deleting constr option", e), delete i[e]), e.includes("themeCSS") && (x.debug("sanitizing themeCss option"), i[e] = q(i[e])), e.includes("fontFamily") && (x.debug("sanitizing fontFamily option"), i[e] = q(i[e])), e.includes("altFontFamily") && (x.debug("sanitizing altFontFamily option"), i[e] = q(i[e])), Oe.includes(e) ? typeof i[e] == "object" && (x.debug("sanitize deleting object", e), W(i[e])) : (x.debug("sanitize deleting option", e), delete i[e]);
+ })), i.themeVariables) {
+ const e = Object.keys(i.themeVariables);
+ for (const n of e) {
+ const t = i.themeVariables[n];
+ t && t.match && !t.match(/^[\d "#%(),.;A-Za-z]+$/) && (i.themeVariables[n] = "");
+ }
+ }
+ x.debug("After sanitization", i);
+}, q = (i) => {
+ let e = 0, n = 0;
+ for (const t of i) {
+ if (e < n)
+ return "{ /* ERROR: Unbalanced CSS */ }";
+ t === "{" ? e++ : t === "}" && n++;
+ }
+ return e !== n ? "{ /* ERROR: Unbalanced CSS */ }" : i;
+};
+function us(i) {
+ return "str" in i;
+}
+function fs(i) {
+ return i instanceof Error ? i.message : String(i);
+}
+const qo = (i, e, n, t) => {
+ if (!t)
+ return;
+ const r = i.node().getBBox();
+ i.append("text").text(t).attr("x", r.x + r.width / 2).attr("y", -n).attr("class", e);
+}, Ei = (i) => {
+ if (typeof i == "number")
+ return [i, i + "px"];
+ const e = parseInt(i, 10);
+ return Number.isNaN(e) ? [void 0, void 0] : i === String(e) ? [e, i + "px"] : [e, i];
+}, _s = {
+ assignWithDepth: Hi,
+ wrapLabel: Yo,
+ calculateTextHeight: Uo,
+ calculateTextWidth: ti,
+ calculateTextDimensions: ki,
+ detectInit: ko,
+ detectDirective: Ae,
+ isSubstringInArray: Eo,
+ interpolateToCurve: No,
+ calcLabelPosition: Mo,
+ calcCardinalityPosition: Io,
+ calcTerminalLabelPosition: Po,
+ formatUrl: Oo,
+ getStylesFromArray: jo,
+ generateId: Lo,
+ random: Ro,
+ runFunc: Fo,
+ entityDecode: Go,
+ initIdGenerator: Ho,
+ directiveSanitizer: W,
+ sanitizeCss: q,
+ insertTitle: qo,
+ parseFontSize: Ei
+};
+export {
+ Zo as $,
+ No as A,
+ Qt as B,
+ we as C,
+ ao as D,
+ U as E,
+ M as F,
+ We as G,
+ Ro as H,
+ ye as I,
+ lr as J,
+ ns as K,
+ R as L,
+ go as M,
+ Ei as N,
+ mi as O,
+ Jo as P,
+ is as Q,
+ Oi as R,
+ ei as S,
+ Ni as T,
+ fr as U,
+ es as V,
+ Qo as W,
+ Vo as X,
+ Xo as Y,
+ rs as Z,
+ ts as _,
+ hr as a,
+ Lo as a0,
+ ur as b,
+ cs as c,
+ dr as d,
+ os as e,
+ Ce as f,
+ fs as g,
+ Ti as h,
+ us as i,
+ Nr as j,
+ Ir as k,
+ as as l,
+ gr as m,
+ W as n,
+ ss as o,
+ nr as p,
+ ti as q,
+ ls as r,
+ Gi as s,
+ Rr as t,
+ _s as u,
+ Zt as v,
+ Yo as w,
+ Uo as x,
+ ze as y,
+ jo as z
+};
+//# sourceMappingURL=utils-8ea37061.js.map
diff --git a/scopegraphs-render-docs/doc/js/utils-d622194a.js b/scopegraphs-render-docs/doc/js/utils-d622194a.js
new file mode 100644
index 0000000..b71c565
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/utils-d622194a.js
@@ -0,0 +1,2930 @@
+import { sanitizeUrl } from "@braintree/sanitize-url";
+import { select, curveBasis, curveBasisClosed, curveBasisOpen, curveBumpX, curveBumpY, curveBundle, curveCardinalClosed, curveCardinalOpen, curveCardinal, curveCatmullRomClosed, curveCatmullRomOpen, curveCatmullRom, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from "d3";
+import { l as log$1, a as addDirective, s as setLogLevel$1, g as getConfig$1, b as sanitizeText$1, c as commonDb, d as assignWithDepth, e as common$1, f as configKeys } from "./commonDb-573409be.js";
+import memoize from "lodash-es/memoize.js";
+/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
+function isNothing(subject) {
+ return typeof subject === "undefined" || subject === null;
+}
+function isObject(subject) {
+ return typeof subject === "object" && subject !== null;
+}
+function toArray(sequence) {
+ if (Array.isArray(sequence))
+ return sequence;
+ else if (isNothing(sequence))
+ return [];
+ return [sequence];
+}
+function extend(target, source) {
+ var index, length, key, sourceKeys;
+ if (source) {
+ sourceKeys = Object.keys(source);
+ for (index = 0, length = sourceKeys.length; index < length; index += 1) {
+ key = sourceKeys[index];
+ target[key] = source[key];
+ }
+ }
+ return target;
+}
+function repeat(string, count) {
+ var result = "", cycle;
+ for (cycle = 0; cycle < count; cycle += 1) {
+ result += string;
+ }
+ return result;
+}
+function isNegativeZero(number) {
+ return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;
+}
+var isNothing_1 = isNothing;
+var isObject_1 = isObject;
+var toArray_1 = toArray;
+var repeat_1 = repeat;
+var isNegativeZero_1 = isNegativeZero;
+var extend_1 = extend;
+var common = {
+ isNothing: isNothing_1,
+ isObject: isObject_1,
+ toArray: toArray_1,
+ repeat: repeat_1,
+ isNegativeZero: isNegativeZero_1,
+ extend: extend_1
+};
+function formatError(exception2, compact) {
+ var where = "", message = exception2.reason || "(unknown reason)";
+ if (!exception2.mark)
+ return message;
+ if (exception2.mark.name) {
+ where += 'in "' + exception2.mark.name + '" ';
+ }
+ where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")";
+ if (!compact && exception2.mark.snippet) {
+ where += "\n\n" + exception2.mark.snippet;
+ }
+ return message + " " + where;
+}
+function YAMLException$1(reason, mark) {
+ Error.call(this);
+ this.name = "YAMLException";
+ this.reason = reason;
+ this.mark = mark;
+ this.message = formatError(this, false);
+ if (Error.captureStackTrace) {
+ Error.captureStackTrace(this, this.constructor);
+ } else {
+ this.stack = new Error().stack || "";
+ }
+}
+YAMLException$1.prototype = Object.create(Error.prototype);
+YAMLException$1.prototype.constructor = YAMLException$1;
+YAMLException$1.prototype.toString = function toString(compact) {
+ return this.name + ": " + formatError(this, compact);
+};
+var exception = YAMLException$1;
+function getLine(buffer, lineStart, lineEnd, position, maxLineLength) {
+ var head = "";
+ var tail = "";
+ var maxHalfLength = Math.floor(maxLineLength / 2) - 1;
+ if (position - lineStart > maxHalfLength) {
+ head = " ... ";
+ lineStart = position - maxHalfLength + head.length;
+ }
+ if (lineEnd - position > maxHalfLength) {
+ tail = " ...";
+ lineEnd = position + maxHalfLength - tail.length;
+ }
+ return {
+ str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "→") + tail,
+ pos: position - lineStart + head.length
+ // relative position
+ };
+}
+function padStart(string, max) {
+ return common.repeat(" ", max - string.length) + string;
+}
+function makeSnippet(mark, options) {
+ options = Object.create(options || null);
+ if (!mark.buffer)
+ return null;
+ if (!options.maxLength)
+ options.maxLength = 79;
+ if (typeof options.indent !== "number")
+ options.indent = 1;
+ if (typeof options.linesBefore !== "number")
+ options.linesBefore = 3;
+ if (typeof options.linesAfter !== "number")
+ options.linesAfter = 2;
+ var re = /\r?\n|\r|\0/g;
+ var lineStarts = [0];
+ var lineEnds = [];
+ var match;
+ var foundLineNo = -1;
+ while (match = re.exec(mark.buffer)) {
+ lineEnds.push(match.index);
+ lineStarts.push(match.index + match[0].length);
+ if (mark.position <= match.index && foundLineNo < 0) {
+ foundLineNo = lineStarts.length - 2;
+ }
+ }
+ if (foundLineNo < 0)
+ foundLineNo = lineStarts.length - 1;
+ var result = "", i, line;
+ var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;
+ var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);
+ for (i = 1; i <= options.linesBefore; i++) {
+ if (foundLineNo - i < 0)
+ break;
+ line = getLine(
+ mark.buffer,
+ lineStarts[foundLineNo - i],
+ lineEnds[foundLineNo - i],
+ mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),
+ maxLineLength
+ );
+ result = common.repeat(" ", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line.str + "\n" + result;
+ }
+ line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
+ result += common.repeat(" ", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line.str + "\n";
+ result += common.repeat("-", options.indent + lineNoLength + 3 + line.pos) + "^\n";
+ for (i = 1; i <= options.linesAfter; i++) {
+ if (foundLineNo + i >= lineEnds.length)
+ break;
+ line = getLine(
+ mark.buffer,
+ lineStarts[foundLineNo + i],
+ lineEnds[foundLineNo + i],
+ mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),
+ maxLineLength
+ );
+ result += common.repeat(" ", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line.str + "\n";
+ }
+ return result.replace(/\n$/, "");
+}
+var snippet = makeSnippet;
+var TYPE_CONSTRUCTOR_OPTIONS = [
+ "kind",
+ "multi",
+ "resolve",
+ "construct",
+ "instanceOf",
+ "predicate",
+ "represent",
+ "representName",
+ "defaultStyle",
+ "styleAliases"
+];
+var YAML_NODE_KINDS = [
+ "scalar",
+ "sequence",
+ "mapping"
+];
+function compileStyleAliases(map2) {
+ var result = {};
+ if (map2 !== null) {
+ Object.keys(map2).forEach(function(style) {
+ map2[style].forEach(function(alias) {
+ result[String(alias)] = style;
+ });
+ });
+ }
+ return result;
+}
+function Type$1(tag, options) {
+ options = options || {};
+ Object.keys(options).forEach(function(name) {
+ if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
+ throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.');
+ }
+ });
+ this.options = options;
+ this.tag = tag;
+ this.kind = options["kind"] || null;
+ this.resolve = options["resolve"] || function() {
+ return true;
+ };
+ this.construct = options["construct"] || function(data) {
+ return data;
+ };
+ this.instanceOf = options["instanceOf"] || null;
+ this.predicate = options["predicate"] || null;
+ this.represent = options["represent"] || null;
+ this.representName = options["representName"] || null;
+ this.defaultStyle = options["defaultStyle"] || null;
+ this.multi = options["multi"] || false;
+ this.styleAliases = compileStyleAliases(options["styleAliases"] || null);
+ if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
+ throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
+ }
+}
+var type = Type$1;
+function compileList(schema2, name) {
+ var result = [];
+ schema2[name].forEach(function(currentType) {
+ var newIndex = result.length;
+ result.forEach(function(previousType, previousIndex) {
+ if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {
+ newIndex = previousIndex;
+ }
+ });
+ result[newIndex] = currentType;
+ });
+ return result;
+}
+function compileMap() {
+ var result = {
+ scalar: {},
+ sequence: {},
+ mapping: {},
+ fallback: {},
+ multi: {
+ scalar: [],
+ sequence: [],
+ mapping: [],
+ fallback: []
+ }
+ }, index, length;
+ function collectType(type2) {
+ if (type2.multi) {
+ result.multi[type2.kind].push(type2);
+ result.multi["fallback"].push(type2);
+ } else {
+ result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2;
+ }
+ }
+ for (index = 0, length = arguments.length; index < length; index += 1) {
+ arguments[index].forEach(collectType);
+ }
+ return result;
+}
+function Schema$1(definition) {
+ return this.extend(definition);
+}
+Schema$1.prototype.extend = function extend2(definition) {
+ var implicit = [];
+ var explicit = [];
+ if (definition instanceof type) {
+ explicit.push(definition);
+ } else if (Array.isArray(definition)) {
+ explicit = explicit.concat(definition);
+ } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {
+ if (definition.implicit)
+ implicit = implicit.concat(definition.implicit);
+ if (definition.explicit)
+ explicit = explicit.concat(definition.explicit);
+ } else {
+ throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
+ }
+ implicit.forEach(function(type$1) {
+ if (!(type$1 instanceof type)) {
+ throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
+ }
+ if (type$1.loadKind && type$1.loadKind !== "scalar") {
+ throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
+ }
+ if (type$1.multi) {
+ throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
+ }
+ });
+ explicit.forEach(function(type$1) {
+ if (!(type$1 instanceof type)) {
+ throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
+ }
+ });
+ var result = Object.create(Schema$1.prototype);
+ result.implicit = (this.implicit || []).concat(implicit);
+ result.explicit = (this.explicit || []).concat(explicit);
+ result.compiledImplicit = compileList(result, "implicit");
+ result.compiledExplicit = compileList(result, "explicit");
+ result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);
+ return result;
+};
+var schema = Schema$1;
+var str = new type("tag:yaml.org,2002:str", {
+ kind: "scalar",
+ construct: function(data) {
+ return data !== null ? data : "";
+ }
+});
+var seq = new type("tag:yaml.org,2002:seq", {
+ kind: "sequence",
+ construct: function(data) {
+ return data !== null ? data : [];
+ }
+});
+var map = new type("tag:yaml.org,2002:map", {
+ kind: "mapping",
+ construct: function(data) {
+ return data !== null ? data : {};
+ }
+});
+var failsafe = new schema({
+ explicit: [
+ str,
+ seq,
+ map
+ ]
+});
+function resolveYamlNull(data) {
+ if (data === null)
+ return true;
+ var max = data.length;
+ return max === 1 && data === "~" || max === 4 && (data === "null" || data === "Null" || data === "NULL");
+}
+function constructYamlNull() {
+ return null;
+}
+function isNull(object) {
+ return object === null;
+}
+var _null = new type("tag:yaml.org,2002:null", {
+ kind: "scalar",
+ resolve: resolveYamlNull,
+ construct: constructYamlNull,
+ predicate: isNull,
+ represent: {
+ canonical: function() {
+ return "~";
+ },
+ lowercase: function() {
+ return "null";
+ },
+ uppercase: function() {
+ return "NULL";
+ },
+ camelcase: function() {
+ return "Null";
+ },
+ empty: function() {
+ return "";
+ }
+ },
+ defaultStyle: "lowercase"
+});
+function resolveYamlBoolean(data) {
+ if (data === null)
+ return false;
+ var max = data.length;
+ return max === 4 && (data === "true" || data === "True" || data === "TRUE") || max === 5 && (data === "false" || data === "False" || data === "FALSE");
+}
+function constructYamlBoolean(data) {
+ return data === "true" || data === "True" || data === "TRUE";
+}
+function isBoolean(object) {
+ return Object.prototype.toString.call(object) === "[object Boolean]";
+}
+var bool = new type("tag:yaml.org,2002:bool", {
+ kind: "scalar",
+ resolve: resolveYamlBoolean,
+ construct: constructYamlBoolean,
+ predicate: isBoolean,
+ represent: {
+ lowercase: function(object) {
+ return object ? "true" : "false";
+ },
+ uppercase: function(object) {
+ return object ? "TRUE" : "FALSE";
+ },
+ camelcase: function(object) {
+ return object ? "True" : "False";
+ }
+ },
+ defaultStyle: "lowercase"
+});
+function isHexCode(c) {
+ return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102;
+}
+function isOctCode(c) {
+ return 48 <= c && c <= 55;
+}
+function isDecCode(c) {
+ return 48 <= c && c <= 57;
+}
+function resolveYamlInteger(data) {
+ if (data === null)
+ return false;
+ var max = data.length, index = 0, hasDigits = false, ch;
+ if (!max)
+ return false;
+ ch = data[index];
+ if (ch === "-" || ch === "+") {
+ ch = data[++index];
+ }
+ if (ch === "0") {
+ if (index + 1 === max)
+ return true;
+ ch = data[++index];
+ if (ch === "b") {
+ index++;
+ for (; index < max; index++) {
+ ch = data[index];
+ if (ch === "_")
+ continue;
+ if (ch !== "0" && ch !== "1")
+ return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== "_";
+ }
+ if (ch === "x") {
+ index++;
+ for (; index < max; index++) {
+ ch = data[index];
+ if (ch === "_")
+ continue;
+ if (!isHexCode(data.charCodeAt(index)))
+ return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== "_";
+ }
+ if (ch === "o") {
+ index++;
+ for (; index < max; index++) {
+ ch = data[index];
+ if (ch === "_")
+ continue;
+ if (!isOctCode(data.charCodeAt(index)))
+ return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== "_";
+ }
+ }
+ if (ch === "_")
+ return false;
+ for (; index < max; index++) {
+ ch = data[index];
+ if (ch === "_")
+ continue;
+ if (!isDecCode(data.charCodeAt(index))) {
+ return false;
+ }
+ hasDigits = true;
+ }
+ if (!hasDigits || ch === "_")
+ return false;
+ return true;
+}
+function constructYamlInteger(data) {
+ var value = data, sign = 1, ch;
+ if (value.indexOf("_") !== -1) {
+ value = value.replace(/_/g, "");
+ }
+ ch = value[0];
+ if (ch === "-" || ch === "+") {
+ if (ch === "-")
+ sign = -1;
+ value = value.slice(1);
+ ch = value[0];
+ }
+ if (value === "0")
+ return 0;
+ if (ch === "0") {
+ if (value[1] === "b")
+ return sign * parseInt(value.slice(2), 2);
+ if (value[1] === "x")
+ return sign * parseInt(value.slice(2), 16);
+ if (value[1] === "o")
+ return sign * parseInt(value.slice(2), 8);
+ }
+ return sign * parseInt(value, 10);
+}
+function isInteger(object) {
+ return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object));
+}
+var int = new type("tag:yaml.org,2002:int", {
+ kind: "scalar",
+ resolve: resolveYamlInteger,
+ construct: constructYamlInteger,
+ predicate: isInteger,
+ represent: {
+ binary: function(obj) {
+ return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1);
+ },
+ octal: function(obj) {
+ return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1);
+ },
+ decimal: function(obj) {
+ return obj.toString(10);
+ },
+ /* eslint-disable max-len */
+ hexadecimal: function(obj) {
+ return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1);
+ }
+ },
+ defaultStyle: "decimal",
+ styleAliases: {
+ binary: [2, "bin"],
+ octal: [8, "oct"],
+ decimal: [10, "dec"],
+ hexadecimal: [16, "hex"]
+ }
+});
+var YAML_FLOAT_PATTERN = new RegExp(
+ // 2.5e4, 2.5 and integers
+ "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
+);
+function resolveYamlFloat(data) {
+ if (data === null)
+ return false;
+ if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`
+ // Probably should update regexp & check speed
+ data[data.length - 1] === "_") {
+ return false;
+ }
+ return true;
+}
+function constructYamlFloat(data) {
+ var value, sign;
+ value = data.replace(/_/g, "").toLowerCase();
+ sign = value[0] === "-" ? -1 : 1;
+ if ("+-".indexOf(value[0]) >= 0) {
+ value = value.slice(1);
+ }
+ if (value === ".inf") {
+ return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
+ } else if (value === ".nan") {
+ return NaN;
+ }
+ return sign * parseFloat(value, 10);
+}
+var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
+function representYamlFloat(object, style) {
+ var res;
+ if (isNaN(object)) {
+ switch (style) {
+ case "lowercase":
+ return ".nan";
+ case "uppercase":
+ return ".NAN";
+ case "camelcase":
+ return ".NaN";
+ }
+ } else if (Number.POSITIVE_INFINITY === object) {
+ switch (style) {
+ case "lowercase":
+ return ".inf";
+ case "uppercase":
+ return ".INF";
+ case "camelcase":
+ return ".Inf";
+ }
+ } else if (Number.NEGATIVE_INFINITY === object) {
+ switch (style) {
+ case "lowercase":
+ return "-.inf";
+ case "uppercase":
+ return "-.INF";
+ case "camelcase":
+ return "-.Inf";
+ }
+ } else if (common.isNegativeZero(object)) {
+ return "-0.0";
+ }
+ res = object.toString(10);
+ return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res;
+}
+function isFloat(object) {
+ return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object));
+}
+var float = new type("tag:yaml.org,2002:float", {
+ kind: "scalar",
+ resolve: resolveYamlFloat,
+ construct: constructYamlFloat,
+ predicate: isFloat,
+ represent: representYamlFloat,
+ defaultStyle: "lowercase"
+});
+var json = failsafe.extend({
+ implicit: [
+ _null,
+ bool,
+ int,
+ float
+ ]
+});
+var core = json;
+var YAML_DATE_REGEXP = new RegExp(
+ "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
+);
+var YAML_TIMESTAMP_REGEXP = new RegExp(
+ "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"
+);
+function resolveYamlTimestamp(data) {
+ if (data === null)
+ return false;
+ if (YAML_DATE_REGEXP.exec(data) !== null)
+ return true;
+ if (YAML_TIMESTAMP_REGEXP.exec(data) !== null)
+ return true;
+ return false;
+}
+function constructYamlTimestamp(data) {
+ var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;
+ match = YAML_DATE_REGEXP.exec(data);
+ if (match === null)
+ match = YAML_TIMESTAMP_REGEXP.exec(data);
+ if (match === null)
+ throw new Error("Date resolve error");
+ year = +match[1];
+ month = +match[2] - 1;
+ day = +match[3];
+ if (!match[4]) {
+ return new Date(Date.UTC(year, month, day));
+ }
+ hour = +match[4];
+ minute = +match[5];
+ second = +match[6];
+ if (match[7]) {
+ fraction = match[7].slice(0, 3);
+ while (fraction.length < 3) {
+ fraction += "0";
+ }
+ fraction = +fraction;
+ }
+ if (match[9]) {
+ tz_hour = +match[10];
+ tz_minute = +(match[11] || 0);
+ delta = (tz_hour * 60 + tz_minute) * 6e4;
+ if (match[9] === "-")
+ delta = -delta;
+ }
+ date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));
+ if (delta)
+ date.setTime(date.getTime() - delta);
+ return date;
+}
+function representYamlTimestamp(object) {
+ return object.toISOString();
+}
+var timestamp = new type("tag:yaml.org,2002:timestamp", {
+ kind: "scalar",
+ resolve: resolveYamlTimestamp,
+ construct: constructYamlTimestamp,
+ instanceOf: Date,
+ represent: representYamlTimestamp
+});
+function resolveYamlMerge(data) {
+ return data === "<<" || data === null;
+}
+var merge = new type("tag:yaml.org,2002:merge", {
+ kind: "scalar",
+ resolve: resolveYamlMerge
+});
+var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";
+function resolveYamlBinary(data) {
+ if (data === null)
+ return false;
+ var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP;
+ for (idx = 0; idx < max; idx++) {
+ code = map2.indexOf(data.charAt(idx));
+ if (code > 64)
+ continue;
+ if (code < 0)
+ return false;
+ bitlen += 6;
+ }
+ return bitlen % 8 === 0;
+}
+function constructYamlBinary(data) {
+ var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max = input.length, map2 = BASE64_MAP, bits = 0, result = [];
+ for (idx = 0; idx < max; idx++) {
+ if (idx % 4 === 0 && idx) {
+ result.push(bits >> 16 & 255);
+ result.push(bits >> 8 & 255);
+ result.push(bits & 255);
+ }
+ bits = bits << 6 | map2.indexOf(input.charAt(idx));
+ }
+ tailbits = max % 4 * 6;
+ if (tailbits === 0) {
+ result.push(bits >> 16 & 255);
+ result.push(bits >> 8 & 255);
+ result.push(bits & 255);
+ } else if (tailbits === 18) {
+ result.push(bits >> 10 & 255);
+ result.push(bits >> 2 & 255);
+ } else if (tailbits === 12) {
+ result.push(bits >> 4 & 255);
+ }
+ return new Uint8Array(result);
+}
+function representYamlBinary(object) {
+ var result = "", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP;
+ for (idx = 0; idx < max; idx++) {
+ if (idx % 3 === 0 && idx) {
+ result += map2[bits >> 18 & 63];
+ result += map2[bits >> 12 & 63];
+ result += map2[bits >> 6 & 63];
+ result += map2[bits & 63];
+ }
+ bits = (bits << 8) + object[idx];
+ }
+ tail = max % 3;
+ if (tail === 0) {
+ result += map2[bits >> 18 & 63];
+ result += map2[bits >> 12 & 63];
+ result += map2[bits >> 6 & 63];
+ result += map2[bits & 63];
+ } else if (tail === 2) {
+ result += map2[bits >> 10 & 63];
+ result += map2[bits >> 4 & 63];
+ result += map2[bits << 2 & 63];
+ result += map2[64];
+ } else if (tail === 1) {
+ result += map2[bits >> 2 & 63];
+ result += map2[bits << 4 & 63];
+ result += map2[64];
+ result += map2[64];
+ }
+ return result;
+}
+function isBinary(obj) {
+ return Object.prototype.toString.call(obj) === "[object Uint8Array]";
+}
+var binary = new type("tag:yaml.org,2002:binary", {
+ kind: "scalar",
+ resolve: resolveYamlBinary,
+ construct: constructYamlBinary,
+ predicate: isBinary,
+ represent: representYamlBinary
+});
+var _hasOwnProperty$3 = Object.prototype.hasOwnProperty;
+var _toString$2 = Object.prototype.toString;
+function resolveYamlOmap(data) {
+ if (data === null)
+ return true;
+ var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;
+ for (index = 0, length = object.length; index < length; index += 1) {
+ pair = object[index];
+ pairHasKey = false;
+ if (_toString$2.call(pair) !== "[object Object]")
+ return false;
+ for (pairKey in pair) {
+ if (_hasOwnProperty$3.call(pair, pairKey)) {
+ if (!pairHasKey)
+ pairHasKey = true;
+ else
+ return false;
+ }
+ }
+ if (!pairHasKey)
+ return false;
+ if (objectKeys.indexOf(pairKey) === -1)
+ objectKeys.push(pairKey);
+ else
+ return false;
+ }
+ return true;
+}
+function constructYamlOmap(data) {
+ return data !== null ? data : [];
+}
+var omap = new type("tag:yaml.org,2002:omap", {
+ kind: "sequence",
+ resolve: resolveYamlOmap,
+ construct: constructYamlOmap
+});
+var _toString$1 = Object.prototype.toString;
+function resolveYamlPairs(data) {
+ if (data === null)
+ return true;
+ var index, length, pair, keys, result, object = data;
+ result = new Array(object.length);
+ for (index = 0, length = object.length; index < length; index += 1) {
+ pair = object[index];
+ if (_toString$1.call(pair) !== "[object Object]")
+ return false;
+ keys = Object.keys(pair);
+ if (keys.length !== 1)
+ return false;
+ result[index] = [keys[0], pair[keys[0]]];
+ }
+ return true;
+}
+function constructYamlPairs(data) {
+ if (data === null)
+ return [];
+ var index, length, pair, keys, result, object = data;
+ result = new Array(object.length);
+ for (index = 0, length = object.length; index < length; index += 1) {
+ pair = object[index];
+ keys = Object.keys(pair);
+ result[index] = [keys[0], pair[keys[0]]];
+ }
+ return result;
+}
+var pairs = new type("tag:yaml.org,2002:pairs", {
+ kind: "sequence",
+ resolve: resolveYamlPairs,
+ construct: constructYamlPairs
+});
+var _hasOwnProperty$2 = Object.prototype.hasOwnProperty;
+function resolveYamlSet(data) {
+ if (data === null)
+ return true;
+ var key, object = data;
+ for (key in object) {
+ if (_hasOwnProperty$2.call(object, key)) {
+ if (object[key] !== null)
+ return false;
+ }
+ }
+ return true;
+}
+function constructYamlSet(data) {
+ return data !== null ? data : {};
+}
+var set = new type("tag:yaml.org,2002:set", {
+ kind: "mapping",
+ resolve: resolveYamlSet,
+ construct: constructYamlSet
+});
+var _default = core.extend({
+ implicit: [
+ timestamp,
+ merge
+ ],
+ explicit: [
+ binary,
+ omap,
+ pairs,
+ set
+ ]
+});
+var _hasOwnProperty$1 = Object.prototype.hasOwnProperty;
+var CONTEXT_FLOW_IN = 1;
+var CONTEXT_FLOW_OUT = 2;
+var CONTEXT_BLOCK_IN = 3;
+var CONTEXT_BLOCK_OUT = 4;
+var CHOMPING_CLIP = 1;
+var CHOMPING_STRIP = 2;
+var CHOMPING_KEEP = 3;
+var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
+var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/;
+var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i;
+var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
+function _class(obj) {
+ return Object.prototype.toString.call(obj);
+}
+function is_EOL(c) {
+ return c === 10 || c === 13;
+}
+function is_WHITE_SPACE(c) {
+ return c === 9 || c === 32;
+}
+function is_WS_OR_EOL(c) {
+ return c === 9 || c === 32 || c === 10 || c === 13;
+}
+function is_FLOW_INDICATOR(c) {
+ return c === 44 || c === 91 || c === 93 || c === 123 || c === 125;
+}
+function fromHexCode(c) {
+ var lc;
+ if (48 <= c && c <= 57) {
+ return c - 48;
+ }
+ lc = c | 32;
+ if (97 <= lc && lc <= 102) {
+ return lc - 97 + 10;
+ }
+ return -1;
+}
+function escapedHexLen(c) {
+ if (c === 120) {
+ return 2;
+ }
+ if (c === 117) {
+ return 4;
+ }
+ if (c === 85) {
+ return 8;
+ }
+ return 0;
+}
+function fromDecimalCode(c) {
+ if (48 <= c && c <= 57) {
+ return c - 48;
+ }
+ return -1;
+}
+function simpleEscapeSequence(c) {
+ return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? " " : c === 9 ? " " : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "
" : c === 95 ? " " : c === 76 ? "\u2028" : c === 80 ? "\u2029" : "";
+}
+function charFromCodepoint(c) {
+ if (c <= 65535) {
+ return String.fromCharCode(c);
+ }
+ return String.fromCharCode(
+ (c - 65536 >> 10) + 55296,
+ (c - 65536 & 1023) + 56320
+ );
+}
+var simpleEscapeCheck = new Array(256);
+var simpleEscapeMap = new Array(256);
+for (var i = 0; i < 256; i++) {
+ simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
+ simpleEscapeMap[i] = simpleEscapeSequence(i);
+}
+function State$1(input, options) {
+ this.input = input;
+ this.filename = options["filename"] || null;
+ this.schema = options["schema"] || _default;
+ this.onWarning = options["onWarning"] || null;
+ this.legacy = options["legacy"] || false;
+ this.json = options["json"] || false;
+ this.listener = options["listener"] || null;
+ this.implicitTypes = this.schema.compiledImplicit;
+ this.typeMap = this.schema.compiledTypeMap;
+ this.length = input.length;
+ this.position = 0;
+ this.line = 0;
+ this.lineStart = 0;
+ this.lineIndent = 0;
+ this.firstTabInLine = -1;
+ this.documents = [];
+}
+function generateError(state, message) {
+ var mark = {
+ name: state.filename,
+ buffer: state.input.slice(0, -1),
+ // omit trailing \0
+ position: state.position,
+ line: state.line,
+ column: state.position - state.lineStart
+ };
+ mark.snippet = snippet(mark);
+ return new exception(message, mark);
+}
+function throwError(state, message) {
+ throw generateError(state, message);
+}
+function throwWarning(state, message) {
+ if (state.onWarning) {
+ state.onWarning.call(null, generateError(state, message));
+ }
+}
+var directiveHandlers = {
+ YAML: function handleYamlDirective(state, name, args) {
+ var match, major, minor;
+ if (state.version !== null) {
+ throwError(state, "duplication of %YAML directive");
+ }
+ if (args.length !== 1) {
+ throwError(state, "YAML directive accepts exactly one argument");
+ }
+ match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);
+ if (match === null) {
+ throwError(state, "ill-formed argument of the YAML directive");
+ }
+ major = parseInt(match[1], 10);
+ minor = parseInt(match[2], 10);
+ if (major !== 1) {
+ throwError(state, "unacceptable YAML version of the document");
+ }
+ state.version = args[0];
+ state.checkLineBreaks = minor < 2;
+ if (minor !== 1 && minor !== 2) {
+ throwWarning(state, "unsupported YAML version of the document");
+ }
+ },
+ TAG: function handleTagDirective(state, name, args) {
+ var handle, prefix;
+ if (args.length !== 2) {
+ throwError(state, "TAG directive accepts exactly two arguments");
+ }
+ handle = args[0];
+ prefix = args[1];
+ if (!PATTERN_TAG_HANDLE.test(handle)) {
+ throwError(state, "ill-formed tag handle (first argument) of the TAG directive");
+ }
+ if (_hasOwnProperty$1.call(state.tagMap, handle)) {
+ throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle');
+ }
+ if (!PATTERN_TAG_URI.test(prefix)) {
+ throwError(state, "ill-formed tag prefix (second argument) of the TAG directive");
+ }
+ try {
+ prefix = decodeURIComponent(prefix);
+ } catch (err) {
+ throwError(state, "tag prefix is malformed: " + prefix);
+ }
+ state.tagMap[handle] = prefix;
+ }
+};
+function captureSegment(state, start, end, checkJson) {
+ var _position, _length, _character, _result;
+ if (start < end) {
+ _result = state.input.slice(start, end);
+ if (checkJson) {
+ for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
+ _character = _result.charCodeAt(_position);
+ if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {
+ throwError(state, "expected valid JSON character");
+ }
+ }
+ } else if (PATTERN_NON_PRINTABLE.test(_result)) {
+ throwError(state, "the stream contains non-printable characters");
+ }
+ state.result += _result;
+ }
+}
+function mergeMappings(state, destination, source, overridableKeys) {
+ var sourceKeys, key, index, quantity;
+ if (!common.isObject(source)) {
+ throwError(state, "cannot merge mappings; the provided source object is unacceptable");
+ }
+ sourceKeys = Object.keys(source);
+ for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
+ key = sourceKeys[index];
+ if (!_hasOwnProperty$1.call(destination, key)) {
+ destination[key] = source[key];
+ overridableKeys[key] = true;
+ }
+ }
+}
+function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {
+ var index, quantity;
+ if (Array.isArray(keyNode)) {
+ keyNode = Array.prototype.slice.call(keyNode);
+ for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
+ if (Array.isArray(keyNode[index])) {
+ throwError(state, "nested arrays are not supported inside keys");
+ }
+ if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") {
+ keyNode[index] = "[object Object]";
+ }
+ }
+ }
+ if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") {
+ keyNode = "[object Object]";
+ }
+ keyNode = String(keyNode);
+ if (_result === null) {
+ _result = {};
+ }
+ if (keyTag === "tag:yaml.org,2002:merge") {
+ if (Array.isArray(valueNode)) {
+ for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
+ mergeMappings(state, _result, valueNode[index], overridableKeys);
+ }
+ } else {
+ mergeMappings(state, _result, valueNode, overridableKeys);
+ }
+ } else {
+ if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {
+ state.line = startLine || state.line;
+ state.lineStart = startLineStart || state.lineStart;
+ state.position = startPos || state.position;
+ throwError(state, "duplicated mapping key");
+ }
+ if (keyNode === "__proto__") {
+ Object.defineProperty(_result, keyNode, {
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ value: valueNode
+ });
+ } else {
+ _result[keyNode] = valueNode;
+ }
+ delete overridableKeys[keyNode];
+ }
+ return _result;
+}
+function readLineBreak(state) {
+ var ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch === 10) {
+ state.position++;
+ } else if (ch === 13) {
+ state.position++;
+ if (state.input.charCodeAt(state.position) === 10) {
+ state.position++;
+ }
+ } else {
+ throwError(state, "a line break is expected");
+ }
+ state.line += 1;
+ state.lineStart = state.position;
+ state.firstTabInLine = -1;
+}
+function skipSeparationSpace(state, allowComments, checkIndent) {
+ var lineBreaks = 0, ch = state.input.charCodeAt(state.position);
+ while (ch !== 0) {
+ while (is_WHITE_SPACE(ch)) {
+ if (ch === 9 && state.firstTabInLine === -1) {
+ state.firstTabInLine = state.position;
+ }
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (allowComments && ch === 35) {
+ do {
+ ch = state.input.charCodeAt(++state.position);
+ } while (ch !== 10 && ch !== 13 && ch !== 0);
+ }
+ if (is_EOL(ch)) {
+ readLineBreak(state);
+ ch = state.input.charCodeAt(state.position);
+ lineBreaks++;
+ state.lineIndent = 0;
+ while (ch === 32) {
+ state.lineIndent++;
+ ch = state.input.charCodeAt(++state.position);
+ }
+ } else {
+ break;
+ }
+ }
+ if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {
+ throwWarning(state, "deficient indentation");
+ }
+ return lineBreaks;
+}
+function testDocumentSeparator(state) {
+ var _position = state.position, ch;
+ ch = state.input.charCodeAt(_position);
+ if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {
+ _position += 3;
+ ch = state.input.charCodeAt(_position);
+ if (ch === 0 || is_WS_OR_EOL(ch)) {
+ return true;
+ }
+ }
+ return false;
+}
+function writeFoldedLines(state, count) {
+ if (count === 1) {
+ state.result += " ";
+ } else if (count > 1) {
+ state.result += common.repeat("\n", count - 1);
+ }
+}
+function readPlainScalar(state, nodeIndent, withinFlowCollection) {
+ var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {
+ return false;
+ }
+ if (ch === 63 || ch === 45) {
+ following = state.input.charCodeAt(state.position + 1);
+ if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
+ return false;
+ }
+ }
+ state.kind = "scalar";
+ state.result = "";
+ captureStart = captureEnd = state.position;
+ hasPendingContent = false;
+ while (ch !== 0) {
+ if (ch === 58) {
+ following = state.input.charCodeAt(state.position + 1);
+ if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
+ break;
+ }
+ } else if (ch === 35) {
+ preceding = state.input.charCodeAt(state.position - 1);
+ if (is_WS_OR_EOL(preceding)) {
+ break;
+ }
+ } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {
+ break;
+ } else if (is_EOL(ch)) {
+ _line = state.line;
+ _lineStart = state.lineStart;
+ _lineIndent = state.lineIndent;
+ skipSeparationSpace(state, false, -1);
+ if (state.lineIndent >= nodeIndent) {
+ hasPendingContent = true;
+ ch = state.input.charCodeAt(state.position);
+ continue;
+ } else {
+ state.position = captureEnd;
+ state.line = _line;
+ state.lineStart = _lineStart;
+ state.lineIndent = _lineIndent;
+ break;
+ }
+ }
+ if (hasPendingContent) {
+ captureSegment(state, captureStart, captureEnd, false);
+ writeFoldedLines(state, state.line - _line);
+ captureStart = captureEnd = state.position;
+ hasPendingContent = false;
+ }
+ if (!is_WHITE_SPACE(ch)) {
+ captureEnd = state.position + 1;
+ }
+ ch = state.input.charCodeAt(++state.position);
+ }
+ captureSegment(state, captureStart, captureEnd, false);
+ if (state.result) {
+ return true;
+ }
+ state.kind = _kind;
+ state.result = _result;
+ return false;
+}
+function readSingleQuotedScalar(state, nodeIndent) {
+ var ch, captureStart, captureEnd;
+ ch = state.input.charCodeAt(state.position);
+ if (ch !== 39) {
+ return false;
+ }
+ state.kind = "scalar";
+ state.result = "";
+ state.position++;
+ captureStart = captureEnd = state.position;
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
+ if (ch === 39) {
+ captureSegment(state, captureStart, state.position, true);
+ ch = state.input.charCodeAt(++state.position);
+ if (ch === 39) {
+ captureStart = state.position;
+ state.position++;
+ captureEnd = state.position;
+ } else {
+ return true;
+ }
+ } else if (is_EOL(ch)) {
+ captureSegment(state, captureStart, captureEnd, true);
+ writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
+ captureStart = captureEnd = state.position;
+ } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
+ throwError(state, "unexpected end of the document within a single quoted scalar");
+ } else {
+ state.position++;
+ captureEnd = state.position;
+ }
+ }
+ throwError(state, "unexpected end of the stream within a single quoted scalar");
+}
+function readDoubleQuotedScalar(state, nodeIndent) {
+ var captureStart, captureEnd, hexLength, hexResult, tmp, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch !== 34) {
+ return false;
+ }
+ state.kind = "scalar";
+ state.result = "";
+ state.position++;
+ captureStart = captureEnd = state.position;
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
+ if (ch === 34) {
+ captureSegment(state, captureStart, state.position, true);
+ state.position++;
+ return true;
+ } else if (ch === 92) {
+ captureSegment(state, captureStart, state.position, true);
+ ch = state.input.charCodeAt(++state.position);
+ if (is_EOL(ch)) {
+ skipSeparationSpace(state, false, nodeIndent);
+ } else if (ch < 256 && simpleEscapeCheck[ch]) {
+ state.result += simpleEscapeMap[ch];
+ state.position++;
+ } else if ((tmp = escapedHexLen(ch)) > 0) {
+ hexLength = tmp;
+ hexResult = 0;
+ for (; hexLength > 0; hexLength--) {
+ ch = state.input.charCodeAt(++state.position);
+ if ((tmp = fromHexCode(ch)) >= 0) {
+ hexResult = (hexResult << 4) + tmp;
+ } else {
+ throwError(state, "expected hexadecimal character");
+ }
+ }
+ state.result += charFromCodepoint(hexResult);
+ state.position++;
+ } else {
+ throwError(state, "unknown escape sequence");
+ }
+ captureStart = captureEnd = state.position;
+ } else if (is_EOL(ch)) {
+ captureSegment(state, captureStart, captureEnd, true);
+ writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
+ captureStart = captureEnd = state.position;
+ } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
+ throwError(state, "unexpected end of the document within a double quoted scalar");
+ } else {
+ state.position++;
+ captureEnd = state.position;
+ }
+ }
+ throwError(state, "unexpected end of the stream within a double quoted scalar");
+}
+function readFlowCollection(state, nodeIndent) {
+ var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch === 91) {
+ terminator = 93;
+ isMapping = false;
+ _result = [];
+ } else if (ch === 123) {
+ terminator = 125;
+ isMapping = true;
+ _result = {};
+ } else {
+ return false;
+ }
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = _result;
+ }
+ ch = state.input.charCodeAt(++state.position);
+ while (ch !== 0) {
+ skipSeparationSpace(state, true, nodeIndent);
+ ch = state.input.charCodeAt(state.position);
+ if (ch === terminator) {
+ state.position++;
+ state.tag = _tag;
+ state.anchor = _anchor;
+ state.kind = isMapping ? "mapping" : "sequence";
+ state.result = _result;
+ return true;
+ } else if (!readNext) {
+ throwError(state, "missed comma between flow collection entries");
+ } else if (ch === 44) {
+ throwError(state, "expected the node content, but found ','");
+ }
+ keyTag = keyNode = valueNode = null;
+ isPair = isExplicitPair = false;
+ if (ch === 63) {
+ following = state.input.charCodeAt(state.position + 1);
+ if (is_WS_OR_EOL(following)) {
+ isPair = isExplicitPair = true;
+ state.position++;
+ skipSeparationSpace(state, true, nodeIndent);
+ }
+ }
+ _line = state.line;
+ _lineStart = state.lineStart;
+ _pos = state.position;
+ composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
+ keyTag = state.tag;
+ keyNode = state.result;
+ skipSeparationSpace(state, true, nodeIndent);
+ ch = state.input.charCodeAt(state.position);
+ if ((isExplicitPair || state.line === _line) && ch === 58) {
+ isPair = true;
+ ch = state.input.charCodeAt(++state.position);
+ skipSeparationSpace(state, true, nodeIndent);
+ composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
+ valueNode = state.result;
+ }
+ if (isMapping) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);
+ } else if (isPair) {
+ _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));
+ } else {
+ _result.push(keyNode);
+ }
+ skipSeparationSpace(state, true, nodeIndent);
+ ch = state.input.charCodeAt(state.position);
+ if (ch === 44) {
+ readNext = true;
+ ch = state.input.charCodeAt(++state.position);
+ } else {
+ readNext = false;
+ }
+ }
+ throwError(state, "unexpected end of the stream within a flow collection");
+}
+function readBlockScalar(state, nodeIndent) {
+ var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch === 124) {
+ folding = false;
+ } else if (ch === 62) {
+ folding = true;
+ } else {
+ return false;
+ }
+ state.kind = "scalar";
+ state.result = "";
+ while (ch !== 0) {
+ ch = state.input.charCodeAt(++state.position);
+ if (ch === 43 || ch === 45) {
+ if (CHOMPING_CLIP === chomping) {
+ chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;
+ } else {
+ throwError(state, "repeat of a chomping mode identifier");
+ }
+ } else if ((tmp = fromDecimalCode(ch)) >= 0) {
+ if (tmp === 0) {
+ throwError(state, "bad explicit indentation width of a block scalar; it cannot be less than one");
+ } else if (!detectedIndent) {
+ textIndent = nodeIndent + tmp - 1;
+ detectedIndent = true;
+ } else {
+ throwError(state, "repeat of an indentation width identifier");
+ }
+ } else {
+ break;
+ }
+ }
+ if (is_WHITE_SPACE(ch)) {
+ do {
+ ch = state.input.charCodeAt(++state.position);
+ } while (is_WHITE_SPACE(ch));
+ if (ch === 35) {
+ do {
+ ch = state.input.charCodeAt(++state.position);
+ } while (!is_EOL(ch) && ch !== 0);
+ }
+ }
+ while (ch !== 0) {
+ readLineBreak(state);
+ state.lineIndent = 0;
+ ch = state.input.charCodeAt(state.position);
+ while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) {
+ state.lineIndent++;
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (!detectedIndent && state.lineIndent > textIndent) {
+ textIndent = state.lineIndent;
+ }
+ if (is_EOL(ch)) {
+ emptyLines++;
+ continue;
+ }
+ if (state.lineIndent < textIndent) {
+ if (chomping === CHOMPING_KEEP) {
+ state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
+ } else if (chomping === CHOMPING_CLIP) {
+ if (didReadContent) {
+ state.result += "\n";
+ }
+ }
+ break;
+ }
+ if (folding) {
+ if (is_WHITE_SPACE(ch)) {
+ atMoreIndented = true;
+ state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
+ } else if (atMoreIndented) {
+ atMoreIndented = false;
+ state.result += common.repeat("\n", emptyLines + 1);
+ } else if (emptyLines === 0) {
+ if (didReadContent) {
+ state.result += " ";
+ }
+ } else {
+ state.result += common.repeat("\n", emptyLines);
+ }
+ } else {
+ state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
+ }
+ didReadContent = true;
+ detectedIndent = true;
+ emptyLines = 0;
+ captureStart = state.position;
+ while (!is_EOL(ch) && ch !== 0) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ captureSegment(state, captureStart, state.position, false);
+ }
+ return true;
+}
+function readBlockSequence(state, nodeIndent) {
+ var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch;
+ if (state.firstTabInLine !== -1)
+ return false;
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = _result;
+ }
+ ch = state.input.charCodeAt(state.position);
+ while (ch !== 0) {
+ if (state.firstTabInLine !== -1) {
+ state.position = state.firstTabInLine;
+ throwError(state, "tab characters must not be used in indentation");
+ }
+ if (ch !== 45) {
+ break;
+ }
+ following = state.input.charCodeAt(state.position + 1);
+ if (!is_WS_OR_EOL(following)) {
+ break;
+ }
+ detected = true;
+ state.position++;
+ if (skipSeparationSpace(state, true, -1)) {
+ if (state.lineIndent <= nodeIndent) {
+ _result.push(null);
+ ch = state.input.charCodeAt(state.position);
+ continue;
+ }
+ }
+ _line = state.line;
+ composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);
+ _result.push(state.result);
+ skipSeparationSpace(state, true, -1);
+ ch = state.input.charCodeAt(state.position);
+ if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {
+ throwError(state, "bad indentation of a sequence entry");
+ } else if (state.lineIndent < nodeIndent) {
+ break;
+ }
+ }
+ if (detected) {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ state.kind = "sequence";
+ state.result = _result;
+ return true;
+ }
+ return false;
+}
+function readBlockMapping(state, nodeIndent, flowIndent) {
+ var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;
+ if (state.firstTabInLine !== -1)
+ return false;
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = _result;
+ }
+ ch = state.input.charCodeAt(state.position);
+ while (ch !== 0) {
+ if (!atExplicitKey && state.firstTabInLine !== -1) {
+ state.position = state.firstTabInLine;
+ throwError(state, "tab characters must not be used in indentation");
+ }
+ following = state.input.charCodeAt(state.position + 1);
+ _line = state.line;
+ if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {
+ if (ch === 63) {
+ if (atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
+ keyTag = keyNode = valueNode = null;
+ }
+ detected = true;
+ atExplicitKey = true;
+ allowCompact = true;
+ } else if (atExplicitKey) {
+ atExplicitKey = false;
+ allowCompact = true;
+ } else {
+ throwError(state, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line");
+ }
+ state.position += 1;
+ ch = following;
+ } else {
+ _keyLine = state.line;
+ _keyLineStart = state.lineStart;
+ _keyPos = state.position;
+ if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
+ break;
+ }
+ if (state.line === _line) {
+ ch = state.input.charCodeAt(state.position);
+ while (is_WHITE_SPACE(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (ch === 58) {
+ ch = state.input.charCodeAt(++state.position);
+ if (!is_WS_OR_EOL(ch)) {
+ throwError(state, "a whitespace character is expected after the key-value separator within a block mapping");
+ }
+ if (atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
+ keyTag = keyNode = valueNode = null;
+ }
+ detected = true;
+ atExplicitKey = false;
+ allowCompact = false;
+ keyTag = state.tag;
+ keyNode = state.result;
+ } else if (detected) {
+ throwError(state, "can not read an implicit mapping pair; a colon is missed");
+ } else {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ return true;
+ }
+ } else if (detected) {
+ throwError(state, "can not read a block mapping entry; a multiline key may not be an implicit key");
+ } else {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ return true;
+ }
+ }
+ if (state.line === _line || state.lineIndent > nodeIndent) {
+ if (atExplicitKey) {
+ _keyLine = state.line;
+ _keyLineStart = state.lineStart;
+ _keyPos = state.position;
+ }
+ if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
+ if (atExplicitKey) {
+ keyNode = state.result;
+ } else {
+ valueNode = state.result;
+ }
+ }
+ if (!atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);
+ keyTag = keyNode = valueNode = null;
+ }
+ skipSeparationSpace(state, true, -1);
+ ch = state.input.charCodeAt(state.position);
+ }
+ if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {
+ throwError(state, "bad indentation of a mapping entry");
+ } else if (state.lineIndent < nodeIndent) {
+ break;
+ }
+ }
+ if (atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
+ }
+ if (detected) {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ state.kind = "mapping";
+ state.result = _result;
+ }
+ return detected;
+}
+function readTagProperty(state) {
+ var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch !== 33)
+ return false;
+ if (state.tag !== null) {
+ throwError(state, "duplication of a tag property");
+ }
+ ch = state.input.charCodeAt(++state.position);
+ if (ch === 60) {
+ isVerbatim = true;
+ ch = state.input.charCodeAt(++state.position);
+ } else if (ch === 33) {
+ isNamed = true;
+ tagHandle = "!!";
+ ch = state.input.charCodeAt(++state.position);
+ } else {
+ tagHandle = "!";
+ }
+ _position = state.position;
+ if (isVerbatim) {
+ do {
+ ch = state.input.charCodeAt(++state.position);
+ } while (ch !== 0 && ch !== 62);
+ if (state.position < state.length) {
+ tagName = state.input.slice(_position, state.position);
+ ch = state.input.charCodeAt(++state.position);
+ } else {
+ throwError(state, "unexpected end of the stream within a verbatim tag");
+ }
+ } else {
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+ if (ch === 33) {
+ if (!isNamed) {
+ tagHandle = state.input.slice(_position - 1, state.position + 1);
+ if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
+ throwError(state, "named tag handle cannot contain such characters");
+ }
+ isNamed = true;
+ _position = state.position + 1;
+ } else {
+ throwError(state, "tag suffix cannot contain exclamation marks");
+ }
+ }
+ ch = state.input.charCodeAt(++state.position);
+ }
+ tagName = state.input.slice(_position, state.position);
+ if (PATTERN_FLOW_INDICATORS.test(tagName)) {
+ throwError(state, "tag suffix cannot contain flow indicator characters");
+ }
+ }
+ if (tagName && !PATTERN_TAG_URI.test(tagName)) {
+ throwError(state, "tag name cannot contain such characters: " + tagName);
+ }
+ try {
+ tagName = decodeURIComponent(tagName);
+ } catch (err) {
+ throwError(state, "tag name is malformed: " + tagName);
+ }
+ if (isVerbatim) {
+ state.tag = tagName;
+ } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {
+ state.tag = state.tagMap[tagHandle] + tagName;
+ } else if (tagHandle === "!") {
+ state.tag = "!" + tagName;
+ } else if (tagHandle === "!!") {
+ state.tag = "tag:yaml.org,2002:" + tagName;
+ } else {
+ throwError(state, 'undeclared tag handle "' + tagHandle + '"');
+ }
+ return true;
+}
+function readAnchorProperty(state) {
+ var _position, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch !== 38)
+ return false;
+ if (state.anchor !== null) {
+ throwError(state, "duplication of an anchor property");
+ }
+ ch = state.input.charCodeAt(++state.position);
+ _position = state.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (state.position === _position) {
+ throwError(state, "name of an anchor node must contain at least one character");
+ }
+ state.anchor = state.input.slice(_position, state.position);
+ return true;
+}
+function readAlias(state) {
+ var _position, alias, ch;
+ ch = state.input.charCodeAt(state.position);
+ if (ch !== 42)
+ return false;
+ ch = state.input.charCodeAt(++state.position);
+ _position = state.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (state.position === _position) {
+ throwError(state, "name of an alias node must contain at least one character");
+ }
+ alias = state.input.slice(_position, state.position);
+ if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {
+ throwError(state, 'unidentified alias "' + alias + '"');
+ }
+ state.result = state.anchorMap[alias];
+ skipSeparationSpace(state, true, -1);
+ return true;
+}
+function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {
+ var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;
+ if (state.listener !== null) {
+ state.listener("open", state);
+ }
+ state.tag = null;
+ state.anchor = null;
+ state.kind = null;
+ state.result = null;
+ allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;
+ if (allowToSeek) {
+ if (skipSeparationSpace(state, true, -1)) {
+ atNewLine = true;
+ if (state.lineIndent > parentIndent) {
+ indentStatus = 1;
+ } else if (state.lineIndent === parentIndent) {
+ indentStatus = 0;
+ } else if (state.lineIndent < parentIndent) {
+ indentStatus = -1;
+ }
+ }
+ }
+ if (indentStatus === 1) {
+ while (readTagProperty(state) || readAnchorProperty(state)) {
+ if (skipSeparationSpace(state, true, -1)) {
+ atNewLine = true;
+ allowBlockCollections = allowBlockStyles;
+ if (state.lineIndent > parentIndent) {
+ indentStatus = 1;
+ } else if (state.lineIndent === parentIndent) {
+ indentStatus = 0;
+ } else if (state.lineIndent < parentIndent) {
+ indentStatus = -1;
+ }
+ } else {
+ allowBlockCollections = false;
+ }
+ }
+ }
+ if (allowBlockCollections) {
+ allowBlockCollections = atNewLine || allowCompact;
+ }
+ if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
+ if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
+ flowIndent = parentIndent;
+ } else {
+ flowIndent = parentIndent + 1;
+ }
+ blockIndent = state.position - state.lineStart;
+ if (indentStatus === 1) {
+ if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) {
+ hasContent = true;
+ } else {
+ if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) {
+ hasContent = true;
+ } else if (readAlias(state)) {
+ hasContent = true;
+ if (state.tag !== null || state.anchor !== null) {
+ throwError(state, "alias node should not have any properties");
+ }
+ } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
+ hasContent = true;
+ if (state.tag === null) {
+ state.tag = "?";
+ }
+ }
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = state.result;
+ }
+ }
+ } else if (indentStatus === 0) {
+ hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);
+ }
+ }
+ if (state.tag === null) {
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = state.result;
+ }
+ } else if (state.tag === "?") {
+ if (state.result !== null && state.kind !== "scalar") {
+ throwError(state, 'unacceptable node kind for !> tag; it should be "scalar", not "' + state.kind + '"');
+ }
+ for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
+ type2 = state.implicitTypes[typeIndex];
+ if (type2.resolve(state.result)) {
+ state.result = type2.construct(state.result);
+ state.tag = type2.tag;
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = state.result;
+ }
+ break;
+ }
+ }
+ } else if (state.tag !== "!") {
+ if (_hasOwnProperty$1.call(state.typeMap[state.kind || "fallback"], state.tag)) {
+ type2 = state.typeMap[state.kind || "fallback"][state.tag];
+ } else {
+ type2 = null;
+ typeList = state.typeMap.multi[state.kind || "fallback"];
+ for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {
+ if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {
+ type2 = typeList[typeIndex];
+ break;
+ }
+ }
+ }
+ if (!type2) {
+ throwError(state, "unknown tag !<" + state.tag + ">");
+ }
+ if (state.result !== null && type2.kind !== state.kind) {
+ throwError(state, "unacceptable node kind for !<" + state.tag + '> tag; it should be "' + type2.kind + '", not "' + state.kind + '"');
+ }
+ if (!type2.resolve(state.result, state.tag)) {
+ throwError(state, "cannot resolve a node with !<" + state.tag + "> explicit tag");
+ } else {
+ state.result = type2.construct(state.result, state.tag);
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = state.result;
+ }
+ }
+ }
+ if (state.listener !== null) {
+ state.listener("close", state);
+ }
+ return state.tag !== null || state.anchor !== null || hasContent;
+}
+function readDocument(state) {
+ var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;
+ state.version = null;
+ state.checkLineBreaks = state.legacy;
+ state.tagMap = /* @__PURE__ */ Object.create(null);
+ state.anchorMap = /* @__PURE__ */ Object.create(null);
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
+ skipSeparationSpace(state, true, -1);
+ ch = state.input.charCodeAt(state.position);
+ if (state.lineIndent > 0 || ch !== 37) {
+ break;
+ }
+ hasDirectives = true;
+ ch = state.input.charCodeAt(++state.position);
+ _position = state.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ directiveName = state.input.slice(_position, state.position);
+ directiveArgs = [];
+ if (directiveName.length < 1) {
+ throwError(state, "directive name must not be less than one character in length");
+ }
+ while (ch !== 0) {
+ while (is_WHITE_SPACE(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ if (ch === 35) {
+ do {
+ ch = state.input.charCodeAt(++state.position);
+ } while (ch !== 0 && !is_EOL(ch));
+ break;
+ }
+ if (is_EOL(ch))
+ break;
+ _position = state.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+ directiveArgs.push(state.input.slice(_position, state.position));
+ }
+ if (ch !== 0)
+ readLineBreak(state);
+ if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {
+ directiveHandlers[directiveName](state, directiveName, directiveArgs);
+ } else {
+ throwWarning(state, 'unknown document directive "' + directiveName + '"');
+ }
+ }
+ skipSeparationSpace(state, true, -1);
+ if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) {
+ state.position += 3;
+ skipSeparationSpace(state, true, -1);
+ } else if (hasDirectives) {
+ throwError(state, "directives end mark is expected");
+ }
+ composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
+ skipSeparationSpace(state, true, -1);
+ if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {
+ throwWarning(state, "non-ASCII line breaks are interpreted as content");
+ }
+ state.documents.push(state.result);
+ if (state.position === state.lineStart && testDocumentSeparator(state)) {
+ if (state.input.charCodeAt(state.position) === 46) {
+ state.position += 3;
+ skipSeparationSpace(state, true, -1);
+ }
+ return;
+ }
+ if (state.position < state.length - 1) {
+ throwError(state, "end of the stream or a document separator is expected");
+ } else {
+ return;
+ }
+}
+function loadDocuments(input, options) {
+ input = String(input);
+ options = options || {};
+ if (input.length !== 0) {
+ if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {
+ input += "\n";
+ }
+ if (input.charCodeAt(0) === 65279) {
+ input = input.slice(1);
+ }
+ }
+ var state = new State$1(input, options);
+ var nullpos = input.indexOf("\0");
+ if (nullpos !== -1) {
+ state.position = nullpos;
+ throwError(state, "null byte is not allowed in input");
+ }
+ state.input += "\0";
+ while (state.input.charCodeAt(state.position) === 32) {
+ state.lineIndent += 1;
+ state.position += 1;
+ }
+ while (state.position < state.length - 1) {
+ readDocument(state);
+ }
+ return state.documents;
+}
+function loadAll$1(input, iterator2, options) {
+ if (iterator2 !== null && typeof iterator2 === "object" && typeof options === "undefined") {
+ options = iterator2;
+ iterator2 = null;
+ }
+ var documents = loadDocuments(input, options);
+ if (typeof iterator2 !== "function") {
+ return documents;
+ }
+ for (var index = 0, length = documents.length; index < length; index += 1) {
+ iterator2(documents[index]);
+ }
+}
+function load$1(input, options) {
+ var documents = loadDocuments(input, options);
+ if (documents.length === 0) {
+ return void 0;
+ } else if (documents.length === 1) {
+ return documents[0];
+ }
+ throw new exception("expected a single document in the stream, but found more");
+}
+var loadAll_1 = loadAll$1;
+var load_1 = load$1;
+var loader = {
+ loadAll: loadAll_1,
+ load: load_1
+};
+var FAILSAFE_SCHEMA = failsafe;
+var load = loader.load;
+const frontMatterRegex = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;
+function extractFrontMatter(text, db) {
+ var _a, _b;
+ const matches = text.match(frontMatterRegex);
+ if (matches) {
+ const parsed = load(matches[1], {
+ // To keep things simple, only allow strings, arrays, and plain objects.
+ // https://www.yaml.org/spec/1.2/spec.html#id2802346
+ schema: FAILSAFE_SCHEMA
+ });
+ if (parsed == null ? void 0 : parsed.title) {
+ (_a = db.setDiagramTitle) == null ? void 0 : _a.call(db, parsed.title);
+ }
+ if (parsed == null ? void 0 : parsed.displayMode) {
+ (_b = db.setDisplayMode) == null ? void 0 : _b.call(db, parsed.displayMode);
+ }
+ return text.slice(matches[0].length);
+ } else {
+ return text;
+ }
+}
+const d3Attrs = function(d3Elem, attrs) {
+ for (let attr of attrs) {
+ d3Elem.attr(attr[0], attr[1]);
+ }
+};
+const calculateSvgSizeAttrs = function(height, width, useMaxWidth) {
+ let attrs = /* @__PURE__ */ new Map();
+ if (useMaxWidth) {
+ attrs.set("width", "100%");
+ attrs.set("style", `max-width: ${width}px;`);
+ } else {
+ attrs.set("height", height);
+ attrs.set("width", width);
+ }
+ return attrs;
+};
+const configureSvgSize = function(svgElem, height, width, useMaxWidth) {
+ const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);
+ d3Attrs(svgElem, attrs);
+};
+const setupGraphViewbox$1 = function(graph, svgElem, padding, useMaxWidth) {
+ const svgBounds = svgElem.node().getBBox();
+ const sWidth = svgBounds.width;
+ const sHeight = svgBounds.height;
+ log$1.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);
+ let width = 0;
+ let height = 0;
+ log$1.info(`Graph bounds: ${width}x${height}`, graph);
+ width = sWidth + padding * 2;
+ height = sHeight + padding * 2;
+ log$1.info(`Calculated bounds: ${width}x${height}`);
+ configureSvgSize(svgElem, height, width, useMaxWidth);
+ const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`;
+ svgElem.attr("viewBox", vBox);
+};
+const themes = {};
+const getStyles = (type2, userStyles, options) => {
+ let diagramStyles = "";
+ if (type2 in themes && themes[type2]) {
+ diagramStyles = themes[type2](options);
+ } else {
+ log$1.warn(`No theme found for ${type2}`);
+ }
+ return ` & {
+ font-family: ${options.fontFamily};
+ font-size: ${options.fontSize};
+ fill: ${options.textColor}
+ }
+
+ /* Classes common for multiple diagrams */
+
+ & .error-icon {
+ fill: ${options.errorBkgColor};
+ }
+ & .error-text {
+ fill: ${options.errorTextColor};
+ stroke: ${options.errorTextColor};
+ }
+
+ & .edge-thickness-normal {
+ stroke-width: 2px;
+ }
+ & .edge-thickness-thick {
+ stroke-width: 3.5px
+ }
+ & .edge-pattern-solid {
+ stroke-dasharray: 0;
+ }
+
+ & .edge-pattern-dashed{
+ stroke-dasharray: 3;
+ }
+ .edge-pattern-dotted {
+ stroke-dasharray: 2;
+ }
+
+ & .marker {
+ fill: ${options.lineColor};
+ stroke: ${options.lineColor};
+ }
+ & .marker.cross {
+ stroke: ${options.lineColor};
+ }
+
+ & svg {
+ font-family: ${options.fontFamily};
+ font-size: ${options.fontSize};
+ }
+
+ ${diagramStyles}
+
+ ${userStyles}
+`;
+};
+const addStylesForDiagram = (type2, diagramTheme) => {
+ themes[type2] = diagramTheme;
+};
+const getStyles$1 = getStyles;
+let currentDirective = {};
+const parseDirective$1 = function(p, statement, context, type2) {
+ log$1.debug("parseDirective is being called", statement, context, type2);
+ try {
+ if (statement !== void 0) {
+ statement = statement.trim();
+ switch (context) {
+ case "open_directive":
+ currentDirective = {};
+ break;
+ case "type_directive":
+ if (!currentDirective) {
+ throw new Error("currentDirective is undefined");
+ }
+ currentDirective.type = statement.toLowerCase();
+ break;
+ case "arg_directive":
+ if (!currentDirective) {
+ throw new Error("currentDirective is undefined");
+ }
+ currentDirective.args = JSON.parse(statement);
+ break;
+ case "close_directive":
+ handleDirective(p, currentDirective, type2);
+ currentDirective = void 0;
+ break;
+ }
+ }
+ } catch (error) {
+ log$1.error(
+ `Error while rendering sequenceDiagram directive: ${statement} jison context: ${context}`
+ );
+ log$1.error(error.message);
+ }
+};
+const handleDirective = function(p, directive2, type2) {
+ log$1.info(`Directive type=${directive2.type} with args:`, directive2.args);
+ switch (directive2.type) {
+ case "init":
+ case "initialize": {
+ ["config"].forEach((prop) => {
+ if (directive2.args[prop] !== void 0) {
+ if (type2 === "flowchart-v2") {
+ type2 = "flowchart";
+ }
+ directive2.args[type2] = directive2.args[prop];
+ delete directive2.args[prop];
+ }
+ });
+ log$1.info("sanitize in handleDirective", directive2.args);
+ directiveSanitizer(directive2.args);
+ log$1.info("sanitize in handleDirective (done)", directive2.args);
+ addDirective(directive2.args);
+ break;
+ }
+ case "wrap":
+ case "nowrap":
+ if (p && p["setWrap"]) {
+ p.setWrap(directive2.type === "wrap");
+ }
+ break;
+ case "themeCss":
+ log$1.warn("themeCss encountered");
+ break;
+ default:
+ log$1.warn(
+ `Unhandled directive: source: '%%{${directive2.type}: ${JSON.stringify(
+ directive2.args ? directive2.args : {}
+ )}}%%`,
+ directive2
+ );
+ break;
+ }
+};
+const log = log$1;
+const setLogLevel = setLogLevel$1;
+const getConfig = getConfig$1;
+const sanitizeText = (text) => sanitizeText$1(text, getConfig());
+const setupGraphViewbox = setupGraphViewbox$1;
+const getCommonDb = () => {
+ return commonDb;
+};
+const parseDirective = (p, statement, context, type2) => parseDirective$1(p, statement, context, type2);
+const diagrams = {};
+const registerDiagram = (id, diagram, detector) => {
+ if (diagrams[id]) {
+ throw new Error(`Diagram ${id} already registered.`);
+ }
+ diagrams[id] = diagram;
+ if (detector) {
+ addDetector(id, detector);
+ }
+ addStylesForDiagram(id, diagram.styles);
+ if (diagram.injectUtils) {
+ diagram.injectUtils(
+ log,
+ setLogLevel,
+ getConfig,
+ sanitizeText,
+ setupGraphViewbox,
+ getCommonDb(),
+ parseDirective
+ );
+ }
+};
+const getDiagram = (name) => {
+ if (name in diagrams) {
+ return diagrams[name];
+ }
+ throw new Error(`Diagram ${name} not found.`);
+};
+class UnknownDiagramError extends Error {
+ constructor(message) {
+ super(message);
+ this.name = "UnknownDiagramError";
+ }
+}
+const directive$1 = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
+const anyComment = /\s*%%.*\n/gm;
+const detectors = {};
+const detectType = function(text, config) {
+ text = text.replace(frontMatterRegex, "").replace(directive$1, "").replace(anyComment, "\n");
+ for (const [key, { detector }] of Object.entries(detectors)) {
+ const diagram = detector(text, config);
+ if (diagram) {
+ return key;
+ }
+ }
+ throw new UnknownDiagramError(
+ `No diagram type detected matching given configuration for text: ${text}`
+ );
+};
+const registerLazyLoadedDiagrams = (...diagrams2) => {
+ for (const { id, detector, loader: loader2 } of diagrams2) {
+ addDetector(id, detector, loader2);
+ }
+};
+const loadRegisteredDiagrams = async () => {
+ log$1.debug(`Loading registered diagrams`);
+ const results = await Promise.allSettled(
+ Object.entries(detectors).map(async ([key, { detector, loader: loader2 }]) => {
+ if (loader2) {
+ try {
+ getDiagram(key);
+ } catch (error) {
+ try {
+ const { diagram, id } = await loader2();
+ registerDiagram(id, diagram, detector);
+ } catch (err) {
+ log$1.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);
+ delete detectors[key];
+ throw err;
+ }
+ }
+ }
+ })
+ );
+ const failed = results.filter((result) => result.status === "rejected");
+ if (failed.length > 0) {
+ log$1.error(`Failed to load ${failed.length} external diagrams`);
+ for (const res of failed) {
+ log$1.error(res);
+ }
+ throw new Error(`Failed to load ${failed.length} external diagrams`);
+ }
+};
+const addDetector = (key, detector, loader2) => {
+ if (detectors[key]) {
+ log$1.error(`Detector with key ${key} already exists`);
+ } else {
+ detectors[key] = { detector, loader: loader2 };
+ }
+ log$1.debug(`Detector with key ${key} added${loader2 ? " with loader" : ""}`);
+};
+const getDiagramLoader = (key) => {
+ return detectors[key].loader;
+};
+const d3CurveTypes = {
+ curveBasis,
+ curveBasisClosed,
+ curveBasisOpen,
+ curveBumpX,
+ curveBumpY,
+ curveBundle,
+ curveCardinalClosed,
+ curveCardinalOpen,
+ curveCardinal,
+ curveCatmullRomClosed,
+ curveCatmullRomOpen,
+ curveCatmullRom,
+ curveLinear,
+ curveLinearClosed,
+ curveMonotoneX,
+ curveMonotoneY,
+ curveNatural,
+ curveStep,
+ curveStepAfter,
+ curveStepBefore
+};
+const directive = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
+const directiveWithoutOpen = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
+const detectInit = function(text, config) {
+ const inits = detectDirective(text, /(?:init\b)|(?:initialize\b)/);
+ let results = {};
+ if (Array.isArray(inits)) {
+ const args = inits.map((init) => init.args);
+ directiveSanitizer(args);
+ results = assignWithDepth(results, [...args]);
+ } else {
+ results = inits.args;
+ }
+ if (results) {
+ let type2 = detectType(text, config);
+ ["config"].forEach((prop) => {
+ if (results[prop] !== void 0) {
+ if (type2 === "flowchart-v2") {
+ type2 = "flowchart";
+ }
+ results[type2] = results[prop];
+ delete results[prop];
+ }
+ });
+ }
+ return results;
+};
+const detectDirective = function(text, type2 = null) {
+ try {
+ const commentWithoutDirectives = new RegExp(
+ `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*
+`,
+ "ig"
+ );
+ text = text.trim().replace(commentWithoutDirectives, "").replace(/'/gm, '"');
+ log$1.debug(
+ `Detecting diagram directive${type2 !== null ? " type:" + type2 : ""} based on the text:${text}`
+ );
+ let match;
+ const result = [];
+ while ((match = directive.exec(text)) !== null) {
+ if (match.index === directive.lastIndex) {
+ directive.lastIndex++;
+ }
+ if (match && !type2 || type2 && match[1] && match[1].match(type2) || type2 && match[2] && match[2].match(type2)) {
+ const type22 = match[1] ? match[1] : match[2];
+ const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;
+ result.push({ type: type22, args });
+ }
+ }
+ if (result.length === 0) {
+ result.push({ type: text, args: null });
+ }
+ return result.length === 1 ? result[0] : result;
+ } catch (error) {
+ log$1.error(
+ `ERROR: ${error.message} - Unable to parse directive
+ ${type2 !== null ? " type:" + type2 : ""} based on the text:${text}`
+ );
+ return { type: null, args: null };
+ }
+};
+const isSubstringInArray = function(str2, arr) {
+ for (const [i, element] of arr.entries()) {
+ if (element.match(str2)) {
+ return i;
+ }
+ }
+ return -1;
+};
+function interpolateToCurve(interpolate, defaultCurve) {
+ if (!interpolate) {
+ return defaultCurve;
+ }
+ const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;
+ return d3CurveTypes[curveName] || defaultCurve;
+}
+function formatUrl(linkStr, config) {
+ const url = linkStr.trim();
+ if (url) {
+ if (config.securityLevel !== "loose") {
+ return sanitizeUrl(url);
+ }
+ return url;
+ }
+}
+const runFunc = (functionName, ...params) => {
+ const arrPaths = functionName.split(".");
+ const len = arrPaths.length - 1;
+ const fnName = arrPaths[len];
+ let obj = window;
+ for (let i = 0; i < len; i++) {
+ obj = obj[arrPaths[i]];
+ if (!obj) {
+ return;
+ }
+ }
+ obj[fnName](...params);
+};
+function distance(p1, p2) {
+ return p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;
+}
+function traverseEdge(points) {
+ let prevPoint;
+ let totalDistance = 0;
+ points.forEach((point) => {
+ totalDistance += distance(point, prevPoint);
+ prevPoint = point;
+ });
+ let remainingDistance = totalDistance / 2;
+ let center = void 0;
+ prevPoint = void 0;
+ points.forEach((point) => {
+ if (prevPoint && !center) {
+ const vectorDistance = distance(point, prevPoint);
+ if (vectorDistance < remainingDistance) {
+ remainingDistance -= vectorDistance;
+ } else {
+ const distanceRatio = remainingDistance / vectorDistance;
+ if (distanceRatio <= 0) {
+ center = prevPoint;
+ }
+ if (distanceRatio >= 1) {
+ center = { x: point.x, y: point.y };
+ }
+ if (distanceRatio > 0 && distanceRatio < 1) {
+ center = {
+ x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,
+ y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y
+ };
+ }
+ }
+ }
+ prevPoint = point;
+ });
+ return center;
+}
+function calcLabelPosition(points) {
+ if (points.length === 1) {
+ return points[0];
+ }
+ return traverseEdge(points);
+}
+const calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {
+ let prevPoint;
+ log$1.info(`our points ${JSON.stringify(points)}`);
+ if (points[0] !== initialPosition) {
+ points = points.reverse();
+ }
+ const distanceToCardinalityPoint = 25;
+ let remainingDistance = distanceToCardinalityPoint;
+ let center;
+ prevPoint = void 0;
+ points.forEach((point) => {
+ if (prevPoint && !center) {
+ const vectorDistance = distance(point, prevPoint);
+ if (vectorDistance < remainingDistance) {
+ remainingDistance -= vectorDistance;
+ } else {
+ const distanceRatio = remainingDistance / vectorDistance;
+ if (distanceRatio <= 0) {
+ center = prevPoint;
+ }
+ if (distanceRatio >= 1) {
+ center = { x: point.x, y: point.y };
+ }
+ if (distanceRatio > 0 && distanceRatio < 1) {
+ center = {
+ x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,
+ y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y
+ };
+ }
+ }
+ }
+ prevPoint = point;
+ });
+ const d = isRelationTypePresent ? 10 : 5;
+ const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);
+ const cardinalityPosition = { x: 0, y: 0 };
+ cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;
+ cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;
+ return cardinalityPosition;
+};
+function calcTerminalLabelPosition(terminalMarkerSize, position, _points) {
+ let points = JSON.parse(JSON.stringify(_points));
+ let prevPoint;
+ log$1.info("our points", points);
+ if (position !== "start_left" && position !== "start_right") {
+ points = points.reverse();
+ }
+ points.forEach((point) => {
+ prevPoint = point;
+ });
+ const distanceToCardinalityPoint = 25 + terminalMarkerSize;
+ let remainingDistance = distanceToCardinalityPoint;
+ let center;
+ prevPoint = void 0;
+ points.forEach((point) => {
+ if (prevPoint && !center) {
+ const vectorDistance = distance(point, prevPoint);
+ if (vectorDistance < remainingDistance) {
+ remainingDistance -= vectorDistance;
+ } else {
+ const distanceRatio = remainingDistance / vectorDistance;
+ if (distanceRatio <= 0) {
+ center = prevPoint;
+ }
+ if (distanceRatio >= 1) {
+ center = { x: point.x, y: point.y };
+ }
+ if (distanceRatio > 0 && distanceRatio < 1) {
+ center = {
+ x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,
+ y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y
+ };
+ }
+ }
+ }
+ prevPoint = point;
+ });
+ const d = 10 + terminalMarkerSize * 0.5;
+ const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);
+ const cardinalityPosition = { x: 0, y: 0 };
+ cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;
+ cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;
+ if (position === "start_left") {
+ cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;
+ cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;
+ }
+ if (position === "end_right") {
+ cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;
+ cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;
+ }
+ if (position === "end_left") {
+ cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;
+ cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;
+ }
+ return cardinalityPosition;
+}
+function getStylesFromArray(arr) {
+ let style = "";
+ let labelStyle = "";
+ for (const element of arr) {
+ if (element !== void 0) {
+ if (element.startsWith("color:") || element.startsWith("text-align:")) {
+ labelStyle = labelStyle + element + ";";
+ } else {
+ style = style + element + ";";
+ }
+ }
+ }
+ return { style, labelStyle };
+}
+let cnt = 0;
+const generateId = () => {
+ cnt++;
+ return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt;
+};
+function makeid(length) {
+ let result = "";
+ const characters = "0123456789abcdef";
+ const charactersLength = characters.length;
+ for (let i = 0; i < length; i++) {
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
+ }
+ return result;
+}
+const random = (options) => {
+ return makeid(options.length);
+};
+const getTextObj = function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ anchor: "start",
+ style: "#666",
+ width: 100,
+ height: 100,
+ textMargin: 0,
+ rx: 0,
+ ry: 0,
+ valign: void 0
+ };
+};
+const drawSimpleText = function(elem, textData) {
+ const nText = textData.text.replace(common$1.lineBreakRegex, " ");
+ const [, _fontSizePx] = parseFontSize(textData.fontSize);
+ const textElem = elem.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", textData.y);
+ textElem.style("text-anchor", textData.anchor);
+ textElem.style("font-family", textData.fontFamily);
+ textElem.style("font-size", _fontSizePx);
+ textElem.style("font-weight", textData.fontWeight);
+ textElem.attr("fill", textData.fill);
+ if (textData.class !== void 0) {
+ textElem.attr("class", textData.class);
+ }
+ const span = textElem.append("tspan");
+ span.attr("x", textData.x + textData.textMargin * 2);
+ span.attr("fill", textData.fill);
+ span.text(nText);
+ return textElem;
+};
+const wrapLabel = memoize(
+ (label, maxWidth, config) => {
+ if (!label) {
+ return label;
+ }
+ config = Object.assign(
+ { fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "
" },
+ config
+ );
+ if (common$1.lineBreakRegex.test(label)) {
+ return label;
+ }
+ const words = label.split(" ");
+ const completedLines = [];
+ let nextLine = "";
+ words.forEach((word, index) => {
+ const wordLength = calculateTextWidth(`${word} `, config);
+ const nextLineLength = calculateTextWidth(nextLine, config);
+ if (wordLength > maxWidth) {
+ const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, "-", config);
+ completedLines.push(nextLine, ...hyphenatedStrings);
+ nextLine = remainingWord;
+ } else if (nextLineLength + wordLength >= maxWidth) {
+ completedLines.push(nextLine);
+ nextLine = word;
+ } else {
+ nextLine = [nextLine, word].filter(Boolean).join(" ");
+ }
+ const currentWord = index + 1;
+ const isLastWord = currentWord === words.length;
+ if (isLastWord) {
+ completedLines.push(nextLine);
+ }
+ });
+ return completedLines.filter((line) => line !== "").join(config.joinWith);
+ },
+ (label, maxWidth, config) => `${label}${maxWidth}${config.fontSize}${config.fontWeight}${config.fontFamily}${config.joinWith}`
+);
+const breakString = memoize(
+ (word, maxWidth, hyphenCharacter = "-", config) => {
+ config = Object.assign(
+ { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 },
+ config
+ );
+ const characters = [...word];
+ const lines = [];
+ let currentLine = "";
+ characters.forEach((character, index) => {
+ const nextLine = `${currentLine}${character}`;
+ const lineWidth = calculateTextWidth(nextLine, config);
+ if (lineWidth >= maxWidth) {
+ const currentCharacter = index + 1;
+ const isLastLine = characters.length === currentCharacter;
+ const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;
+ lines.push(isLastLine ? nextLine : hyphenatedNextLine);
+ currentLine = "";
+ } else {
+ currentLine = nextLine;
+ }
+ });
+ return { hyphenatedStrings: lines, remainingWord: currentLine };
+ },
+ (word, maxWidth, hyphenCharacter = "-", config) => `${word}${maxWidth}${hyphenCharacter}${config.fontSize}${config.fontWeight}${config.fontFamily}`
+);
+function calculateTextHeight(text, config) {
+ config = Object.assign(
+ { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 15 },
+ config
+ );
+ return calculateTextDimensions(text, config).height;
+}
+function calculateTextWidth(text, config) {
+ config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, config);
+ return calculateTextDimensions(text, config).width;
+}
+const calculateTextDimensions = memoize(
+ (text, config) => {
+ config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, config);
+ const { fontSize, fontFamily, fontWeight } = config;
+ if (!text) {
+ return { width: 0, height: 0 };
+ }
+ const [, _fontSizePx] = parseFontSize(fontSize);
+ const fontFamilies = ["sans-serif", fontFamily];
+ const lines = text.split(common$1.lineBreakRegex);
+ const dims = [];
+ const body = select("body");
+ if (!body.remove) {
+ return { width: 0, height: 0, lineHeight: 0 };
+ }
+ const g = body.append("svg");
+ for (const fontFamily2 of fontFamilies) {
+ let cheight = 0;
+ const dim = { width: 0, height: 0, lineHeight: 0 };
+ for (const line of lines) {
+ const textObj = getTextObj();
+ textObj.text = line;
+ const textElem = drawSimpleText(g, textObj).style("font-size", _fontSizePx).style("font-weight", fontWeight).style("font-family", fontFamily2);
+ const bBox = (textElem._groups || textElem)[0][0].getBBox();
+ if (bBox.width === 0 && bBox.height === 0) {
+ throw new Error("svg element not in render tree");
+ }
+ dim.width = Math.round(Math.max(dim.width, bBox.width));
+ cheight = Math.round(bBox.height);
+ dim.height += cheight;
+ dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));
+ }
+ dims.push(dim);
+ }
+ g.remove();
+ const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;
+ return dims[index];
+ },
+ (text, config) => `${text}${config.fontSize}${config.fontWeight}${config.fontFamily}`
+);
+const initIdGenerator = class iterator {
+ constructor(deterministic, seed) {
+ this.deterministic = deterministic;
+ this.seed = seed;
+ this.count = seed ? seed.length : 0;
+ }
+ next() {
+ if (!this.deterministic) {
+ return Date.now();
+ }
+ return this.count++;
+ }
+};
+let decoder;
+const entityDecode = function(html) {
+ decoder = decoder || document.createElement("div");
+ html = escape(html).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";");
+ decoder.innerHTML = html;
+ return unescape(decoder.textContent);
+};
+const directiveSanitizer = (args) => {
+ log$1.debug("directiveSanitizer called with", args);
+ if (typeof args === "object") {
+ if (args.length) {
+ args.forEach((arg) => directiveSanitizer(arg));
+ } else {
+ Object.keys(args).forEach((key) => {
+ log$1.debug("Checking key", key);
+ if (key.startsWith("__")) {
+ log$1.debug("sanitize deleting __ option", key);
+ delete args[key];
+ }
+ if (key.includes("proto")) {
+ log$1.debug("sanitize deleting proto option", key);
+ delete args[key];
+ }
+ if (key.includes("constr")) {
+ log$1.debug("sanitize deleting constr option", key);
+ delete args[key];
+ }
+ if (key.includes("themeCSS")) {
+ log$1.debug("sanitizing themeCss option");
+ args[key] = sanitizeCss(args[key]);
+ }
+ if (key.includes("fontFamily")) {
+ log$1.debug("sanitizing fontFamily option");
+ args[key] = sanitizeCss(args[key]);
+ }
+ if (key.includes("altFontFamily")) {
+ log$1.debug("sanitizing altFontFamily option");
+ args[key] = sanitizeCss(args[key]);
+ }
+ if (!configKeys.includes(key)) {
+ log$1.debug("sanitize deleting option", key);
+ delete args[key];
+ } else {
+ if (typeof args[key] === "object") {
+ log$1.debug("sanitize deleting object", key);
+ directiveSanitizer(args[key]);
+ }
+ }
+ });
+ }
+ }
+ if (args.themeVariables) {
+ const kArr = Object.keys(args.themeVariables);
+ for (const k of kArr) {
+ const val = args.themeVariables[k];
+ if (val && val.match && !val.match(/^[\d "#%(),.;A-Za-z]+$/)) {
+ args.themeVariables[k] = "";
+ }
+ }
+ }
+ log$1.debug("After sanitization", args);
+};
+const sanitizeCss = (str2) => {
+ let startCnt = 0;
+ let endCnt = 0;
+ for (const element of str2) {
+ if (startCnt < endCnt) {
+ return "{ /* ERROR: Unbalanced CSS */ }";
+ }
+ if (element === "{") {
+ startCnt++;
+ } else if (element === "}") {
+ endCnt++;
+ }
+ }
+ if (startCnt !== endCnt) {
+ return "{ /* ERROR: Unbalanced CSS */ }";
+ }
+ return str2;
+};
+function isDetailedError(error) {
+ return "str" in error;
+}
+function getErrorMessage(error) {
+ if (error instanceof Error) {
+ return error.message;
+ }
+ return String(error);
+}
+const insertTitle = (parent, cssClass, titleTopMargin, title) => {
+ if (!title) {
+ return;
+ }
+ const bounds = parent.node().getBBox();
+ parent.append("text").text(title).attr("x", bounds.x + bounds.width / 2).attr("y", -titleTopMargin).attr("class", cssClass);
+};
+const parseFontSize = (fontSize) => {
+ if (typeof fontSize === "number") {
+ return [fontSize, fontSize + "px"];
+ }
+ const fontSizeNumber = parseInt(fontSize, 10);
+ if (Number.isNaN(fontSizeNumber)) {
+ return [void 0, void 0];
+ } else if (fontSize === String(fontSizeNumber)) {
+ return [fontSizeNumber, fontSize + "px"];
+ } else {
+ return [fontSizeNumber, fontSize];
+ }
+};
+const utils = {
+ assignWithDepth,
+ wrapLabel,
+ calculateTextHeight,
+ calculateTextWidth,
+ calculateTextDimensions,
+ detectInit,
+ detectDirective,
+ isSubstringInArray,
+ interpolateToCurve,
+ calcLabelPosition,
+ calcCardinalityPosition,
+ calcTerminalLabelPosition,
+ formatUrl,
+ getStylesFromArray,
+ generateId,
+ random,
+ runFunc,
+ entityDecode,
+ initIdGenerator,
+ directiveSanitizer,
+ sanitizeCss,
+ insertTitle,
+ parseFontSize
+};
+export {
+ UnknownDiagramError as U,
+ registerDiagram as a,
+ getDiagram as b,
+ getDiagramLoader as c,
+ detectType as d,
+ extractFrontMatter as e,
+ directiveSanitizer as f,
+ getErrorMessage as g,
+ getStyles$1 as h,
+ isDetailedError as i,
+ calculateTextWidth as j,
+ configureSvgSize as k,
+ loadRegisteredDiagrams as l,
+ calculateTextHeight as m,
+ getStylesFromArray as n,
+ interpolateToCurve as o,
+ parseDirective$1 as p,
+ random as q,
+ registerLazyLoadedDiagrams as r,
+ setupGraphViewbox$1 as s,
+ getConfig as t,
+ utils as u,
+ setupGraphViewbox as v,
+ wrapLabel as w,
+ parseFontSize as x,
+ generateId as y
+};
+//# sourceMappingURL=utils-d622194a.js.map
diff --git a/scopegraphs-render-docs/doc/js/utils.d.ts b/scopegraphs-render-docs/doc/js/utils.d.ts
new file mode 100644
index 0000000..64be200
--- /dev/null
+++ b/scopegraphs-render-docs/doc/js/utils.d.ts
@@ -0,0 +1,299 @@
+import { CurveFactory } from 'd3';
+import { MermaidConfig } from './config.type';
+/**
+ * Detects the init config object from the text
+ *
+ * @param text - The text defining the graph. For example:
+ *
+ * ```mermaid
+ * %%{init: {"theme": "debug", "logLevel": 1 }}%%
+ * graph LR
+ * a-->b
+ * b-->c
+ * c-->d
+ * d-->e
+ * e-->f
+ * f-->g
+ * g-->h
+ * ```
+ *
+ * Or
+ *
+ * ```mermaid
+ * %%{initialize: {"theme": "dark", logLevel: "debug" }}%%
+ * graph LR
+ * a-->b
+ * b-->c
+ * c-->d
+ * d-->e
+ * e-->f
+ * f-->g
+ * g-->h
+ * ```
+ *
+ * @param config - Optional mermaid configuration object.
+ * @returns The json object representing the init passed to mermaid.initialize()
+ */
+export declare const detectInit: (text: string, config?: MermaidConfig) => MermaidConfig;
+/**
+ * Detects the directive from the text.
+ *
+ * Text can be single line or multiline. If type is null or omitted,
+ * the first directive encountered in text will be returned
+ *
+ * ```mermaid
+ * graph LR
+ * %%{someDirective}%%
+ * a-->b
+ * b-->c
+ * c-->d
+ * d-->e
+ * e-->f
+ * f-->g
+ * g-->h
+ * ```
+ *
+ * @param text - The text defining the graph
+ * @param type - The directive to return (default: `null`)
+ * @returns An object or Array representing the directive(s) matched by the input type.
+ * If a single directive was found, that directive object will be returned.
+ */
+export declare const detectDirective: (text: string, type?: string | RegExp) => {
+ type?: string | undefined;
+ args?: any;
+} | {
+ type?: string | undefined;
+ args?: any;
+}[];
+/**
+ * Detects whether a substring in present in a given array
+ *
+ * @param str - The substring to detect
+ * @param arr - The array to search
+ * @returns The array index containing the substring or -1 if not present
+ */
+export declare const isSubstringInArray: (str: string, arr: string[]) => number;
+/**
+ * Returns a d3 curve given a curve name
+ *
+ * @param interpolate - The interpolation name
+ * @param defaultCurve - The default curve to return
+ * @returns The curve factory to use
+ */
+export declare function interpolateToCurve(interpolate: string | undefined, defaultCurve: CurveFactory): CurveFactory;
+/**
+ * Formats a URL string
+ *
+ * @param linkStr - String of the URL
+ * @param config - Configuration passed to MermaidJS
+ * @returns The formatted URL or `undefined`.
+ */
+export declare function formatUrl(linkStr: string, config: MermaidConfig): string | undefined;
+/**
+ * Runs a function
+ *
+ * @param functionName - A dot separated path to the function relative to the `window`
+ * @param params - Parameters to pass to the function
+ */
+export declare const runFunc: (functionName: string, ...params: any[]) => void;
+/** A (x, y) point */
+interface Point {
+ /** The x value */
+ x: number;
+ /** The y value */
+ y: number;
+}
+/**
+ * {@inheritdoc traverseEdge}
+ */
+declare function calcLabelPosition(points: Point[]): Point;
+/**
+ * Calculates the terminal label position.
+ *
+ * @param terminalMarkerSize - Terminal marker size.
+ * @param position - Position of label relative to points.
+ * @param _points - Array of points.
+ * @returns - The `cardinalityPosition`.
+ */
+declare function calcTerminalLabelPosition(terminalMarkerSize: number, position: 'start_left' | 'start_right' | 'end_left' | 'end_right', _points: Point[]): Point;
+/**
+ * Gets styles from an array of declarations
+ *
+ * @param arr - Declarations
+ * @returns The styles grouped as strings
+ */
+export declare function getStylesFromArray(arr: string[]): {
+ style: string;
+ labelStyle: string;
+};
+export declare const generateId: () => string;
+export declare const random: (options: any) => string;
+export declare const getTextObj: () => {
+ x: number;
+ y: number;
+ fill: undefined;
+ anchor: string;
+ style: string;
+ width: number;
+ height: number;
+ textMargin: number;
+ rx: number;
+ ry: number;
+ valign: undefined;
+};
+/**
+ * Adds text to an element
+ *
+ * @param elem - SVG Element to add text to
+ * @param textData - Text options.
+ * @returns Text element with given styling and content
+ */
+export declare const drawSimpleText: (elem: SVGElement, textData: {
+ text: string;
+ x: number;
+ y: number;
+ anchor: 'start' | 'middle' | 'end';
+ fontFamily: string;
+ fontSize: string | number;
+ fontWeight: string | number;
+ fill: string;
+ class: string | undefined;
+ textMargin: number;
+}) => SVGTextElement;
+interface WrapLabelConfig {
+ fontSize: number;
+ fontFamily: string;
+ fontWeight: number;
+ joinWith: string;
+}
+export declare const wrapLabel: (label: string, maxWidth: string, config: WrapLabelConfig) => string;
+/**
+ * This calculates the text's height, taking into account the wrap breaks and both the statically
+ * configured height, width, and the length of the text (in pixels).
+ *
+ * If the wrapped text text has greater height, we extend the height, so it's value won't overflow.
+ *
+ * @param text - The text to measure
+ * @param config - The config for fontSize, fontFamily, and fontWeight all impacting the
+ * resulting size
+ * @returns The height for the given text
+ */
+export declare function calculateTextHeight(text: Parameters[0], config: Parameters[1]): ReturnType['height'];
+/**
+ * This calculates the width of the given text, font size and family.
+ *
+ * @param text - The text to calculate the width of
+ * @param config - The config for fontSize, fontFamily, and fontWeight all impacting the
+ * resulting size
+ * @returns The width for the given text
+ */
+export declare function calculateTextWidth(text: Parameters[0], config: Parameters[1]): ReturnType['width'];
+interface TextDimensionConfig {
+ fontSize?: number;
+ fontWeight?: number;
+ fontFamily?: string;
+}
+interface TextDimensions {
+ width: number;
+ height: number;
+ lineHeight?: number;
+}
+/**
+ * This calculates the dimensions of the given text, font size, font family, font weight, and
+ * margins.
+ *
+ * @param text - The text to calculate the width of
+ * @param config - The config for fontSize, fontFamily, fontWeight, and margin all impacting
+ * the resulting size
+ * @returns The dimensions for the given text
+ */
+export declare const calculateTextDimensions: (text: string, config: TextDimensionConfig) => TextDimensions;
+export declare const initIdGenerator: {
+ new (deterministic: any, seed: any): {
+ next(): number;
+ };
+};
+/**
+ * Decodes HTML, source: {@link https://github.com/shrpne/entity-decode/blob/v2.0.1/browser.js}
+ *
+ * @param html - HTML as a string
+ * @returns Unescaped HTML
+ */
+export declare const entityDecode: (html: string) => string;
+/**
+ * Sanitizes directive objects
+ *
+ * @param args - Directive's JSON
+ */
+export declare const directiveSanitizer: (args: any) => void;
+export declare const sanitizeCss: (str: any) => any;
+export interface DetailedError {
+ str: string;
+ hash: any;
+ error?: any;
+ message?: string;
+}
+/** @param error - The error to check */
+export declare function isDetailedError(error: unknown): error is DetailedError;
+/** @param error - The error to convert to an error message */
+export declare function getErrorMessage(error: unknown): string;
+/**
+ * Appends element with the given title and css class.
+ *
+ * @param parent - d3 svg object to append title to
+ * @param cssClass - CSS class for the element containing the title
+ * @param titleTopMargin - Margin in pixels between title and rest of the graph
+ * @param title - The title. If empty, returns immediately.
+ */
+export declare const insertTitle: (parent: any, cssClass: string, titleTopMargin: number, title?: string) => void;
+/**
+ * Parses a raw fontSize configuration value into a number and string value.
+ *
+ * @param fontSize - a string or number font size configuration value
+ *
+ * @returns parsed number and string style font size values, or nulls if a number value can't
+ * be parsed from an input string.
+ */
+export declare const parseFontSize: (fontSize: string | number | undefined) => [number?, string?];
+declare const _default: {
+ assignWithDepth: (dst: any, src: any, config?: {
+ depth: number;
+ clobber: boolean;
+ } | undefined) => any;
+ wrapLabel: (label: string, maxWidth: string, config: WrapLabelConfig) => string;
+ calculateTextHeight: typeof calculateTextHeight;
+ calculateTextWidth: typeof calculateTextWidth;
+ calculateTextDimensions: (text: string, config: TextDimensionConfig) => TextDimensions;
+ detectInit: (text: string, config?: MermaidConfig | undefined) => MermaidConfig;
+ detectDirective: (text: string, type?: string | RegExp) => {
+ type?: string | undefined;
+ args?: any;
+ } | {
+ type?: string | undefined;
+ args?: any;
+ }[];
+ isSubstringInArray: (str: string, arr: string[]) => number;
+ interpolateToCurve: typeof interpolateToCurve;
+ calcLabelPosition: typeof calcLabelPosition;
+ calcCardinalityPosition: (isRelationTypePresent: any, points: any, initialPosition: any) => {
+ x: number;
+ y: number;
+ };
+ calcTerminalLabelPosition: typeof calcTerminalLabelPosition;
+ formatUrl: typeof formatUrl;
+ getStylesFromArray: typeof getStylesFromArray;
+ generateId: () => string;
+ random: (options: any) => string;
+ runFunc: (functionName: string, ...params: any[]) => void;
+ entityDecode: (html: string) => string;
+ initIdGenerator: {
+ new (deterministic: any, seed: any): {
+ next(): number;
+ };
+ };
+ directiveSanitizer: (args: any) => void;
+ sanitizeCss: (str: any) => any;
+ insertTitle: (parent: any, cssClass: string, titleTopMargin: number, title?: string | undefined) => void;
+ parseFontSize: (fontSize: string | number | undefined) => [(number | undefined)?, (string | undefined)?];
+};
+export default _default;
diff --git a/scopegraphs-render-docs/scripts/package_mermaid_release.sh b/scopegraphs-render-docs/scripts/package_mermaid_release.sh
new file mode 100755
index 0000000..ddecfe6
--- /dev/null
+++ b/scopegraphs-render-docs/scripts/package_mermaid_release.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# Download and bundle mermaid module files into single Zip
+# Author: Frank Rehberger
+# Date: 2023.03.09
+# Usage: scripts/package_mermaid_release.sh doc/js https://cdn.jsdelivr.net/npm/mermaid@10/dist/ mermaid.esm.min.mjs
+
+PKG_DIR="${1:-./doc/js}"
+PKG_URL="${2:-https://cdn.jsdelivr.net/npm/mermaid@10.0.2/dist/}"
+PKG_NAME="${3:-mermaid.esm.min.mjs}"
+
+DOWNLOAD_DIR="${PKG_DIR}.dl"
+
+pkg_download() {
+ url="$1"
+
+ curl -s "$url" | grep 'href="/npm/mermaid' | grep -io '/dev/null;
+ done
+}
+
+echo "Downloading packages from $PKG_URL"
+if ! test -d "$DOWNLOAD_DIR"; then
+ mkdir -p "$DOWNLOAD_DIR"
+ ( cd "$DOWNLOAD_DIR"; pkg_download "$PKG_URL")
+fi
+
+mkdir -p "$PKG_DIR"
+echo "Creating bundle $PKG_DIR/$PKG_NAME.zip"
+PKG_FILE=$(realpath $PKG_DIR/$PKG_NAME.zip)
+( cd "$DOWNLOAD_DIR"; zip -9 -r "$PKG_FILE" *)
+echo
+echo "Bundle size"
+ls -alh "$PKG_DIR/$PKG_NAME.zip"
+
+
diff --git a/scopegraphs-render-docs/src/attrs.rs b/scopegraphs-render-docs/src/attrs.rs
new file mode 100644
index 0000000..1d7fdc1
--- /dev/null
+++ b/scopegraphs-render-docs/src/attrs.rs
@@ -0,0 +1,811 @@
+use include_dir::{include_dir, Dir};
+use itertools::Itertools;
+use proc_macro::Span;
+use proc_macro2::TokenStream;
+use proc_macro_error::{abort, emit_call_site_warning, emit_error};
+use quote::quote;
+use std::env::temp_dir;
+use std::fs::{read_to_string, write};
+use std::io::{stderr, stdout, Write};
+use std::path::Path;
+use std::path::PathBuf;
+use std::process::{Command, Stdio};
+use std::{fs, io};
+use syn::{Attribute, Ident, MetaNameValue};
+use uuid::Uuid;
+
+// embedded JS code being inserted as html script elements
+static MERMAID_JS_DIR: Dir = include_dir!("$CARGO_MANIFEST_DIR/doc/js/");
+
+// Note: relative path depends on sub-module the macro is invoked in:
+// base=document.getElementById("rustdoc-vars").attributes["data-root-path"]
+const MERMAID_JS_LOCAL: &str = "static.files.mermaid/mermaid.esm.min.mjs";
+const MERMAID_JS_LOCAL_DIR: &str = "static.files.mermaid";
+const MERMAID_JS_CDN: &str = "https://unpkg.com/mermaid@10/dist/mermaid.esm.min.mjs";
+
+const UNEXPECTED_ATTR_ERROR: &str =
+ "unexpected attribute inside a diagram definition: only #[doc] is allowed";
+
+#[derive(Clone, Default)]
+pub struct Attrs(Vec);
+
+#[derive(Clone)]
+pub enum Attr {
+ /// Attribute that is to be forwarded as-is
+ Forward(Attribute),
+ /// Doc comment that cannot be forwarded as-is
+ DocComment(Ident, String),
+ /// Diagram start token
+ DiagramStart(Ident),
+ /// Diagram entry (line)
+ DiagramEntry(Ident, String),
+ /// Diagram end token
+ DiagramEnd(Ident),
+ /// Include Anchor
+ DiagramIncludeAnchor(Ident, PathBuf),
+}
+
+impl Attr {
+ pub fn as_ident(&self) -> Option<&Ident> {
+ match self {
+ Attr::Forward(attr) => attr.path().get_ident(),
+ Attr::DocComment(ident, _) => Some(ident),
+ Attr::DiagramStart(ident) => Some(ident),
+ Attr::DiagramEntry(ident, _) => Some(ident),
+ Attr::DiagramEnd(ident) => Some(ident),
+ Attr::DiagramIncludeAnchor(ident, _) => Some(ident),
+ }
+ }
+
+ pub fn is_diagram_end(&self) -> bool {
+ matches!(self, Attr::DiagramEnd(_))
+ }
+
+ pub fn is_diagram_start(&self) -> bool {
+ matches!(self, Attr::DiagramStart(_))
+ }
+
+ pub fn expect_diagram_entry_text(&self) -> &str {
+ match self {
+ Attr::DiagramEntry(_, body) => body.as_str(),
+ _ => abort!(self.as_ident(), UNEXPECTED_ATTR_ERROR),
+ }
+ }
+}
+impl From> for Attrs {
+ fn from(attrs: Vec) -> Self {
+ let mut out = Attrs::default();
+ out.push_attrs(attrs);
+ out
+ }
+}
+
+impl quote::ToTokens for Attrs {
+ fn to_tokens(&self, tokens: &mut TokenStream) {
+ let mut attrs = self.0.iter();
+ while let Some(attr) = attrs.next() {
+ match attr {
+ Attr::Forward(attr) => attr.to_tokens(tokens),
+ Attr::DocComment(_, comment) => tokens.extend(quote! {
+ #[doc = #comment]
+ }),
+ Attr::DiagramStart(_) => {
+ let diagram = attrs
+ .by_ref()
+ .take_while(|x| !x.is_diagram_end())
+ .map(Attr::expect_diagram_entry_text)
+ .collect::>();
+
+ tokens.extend(quote! {#[doc = "```rust"]});
+ for i in &diagram {
+ tokens.extend(quote! {
+ #[doc = #i]
+ });
+ }
+ tokens.extend(quote! {#[doc = "```"]});
+
+ match generate_diagram_rustdoc(&diagram) {
+ Ok(i) => {
+ tokens.extend(i);
+ }
+ Err(e) => match e {
+ EvalError::CreateDir(i) => {
+ emit_error!(
+ Span::call_site(),
+ "failed to create temporary directory to generate mermaid files {:?}",
+ i,
+ );
+ }
+ EvalError::WriteProject(i) => {
+ emit_error!(
+ Span::call_site(),
+ "failed to write project file in temporary directory to generate mermaid files {:?}",
+ i,
+ );
+ }
+ EvalError::RunCargo(i) => {
+ emit_error!(Span::call_site(), "error while running cargo {:?}", i);
+ }
+ EvalError::ReadDir(i) => {
+ emit_error!(
+ Span::call_site(),
+ "error while looking for output files {:?}",
+ i
+ );
+ }
+ },
+ }
+ }
+ // If that happens, then the parsing stage is faulty: doc comments outside of
+ // in between Start and End tokens are to be emitted as Attr::Forward or Attr::DocComment
+ Attr::DiagramEntry(_, body) => {
+ emit_call_site_warning!("encountered an unexpected attribute that's going to be ignored, this is a bug! ({})", body);
+ }
+ Attr::DiagramEnd(_) => (),
+ Attr::DiagramIncludeAnchor(_, path) => {
+ // get cargo manifest dir
+ let manifest_dir =
+ std::env::var("CARGO_MANIFEST_DIR").unwrap_or(".".to_string());
+
+ // append path to cargo manifest dir using PathBuf
+ let path = &PathBuf::new().join(manifest_dir).join(path);
+
+ let data = match fs::read_to_string(path) {
+ Ok(data) => data,
+ Err(e) => {
+ emit_error!(
+ Span::call_site(),
+ "failed to read mermaid file from path {:?}: {}",
+ path,
+ e,
+ );
+ continue;
+ }
+ };
+ tokens.extend(generate_diagram_rustdoc(&[data.as_str()]))
+ }
+ }
+ }
+ }
+}
+
+fn place_mermaid_js() -> io::Result<()> {
+ let target_dir = std::env::var("CARGO_TARGET_DIR").unwrap_or("./target".to_string());
+ let docs_dir = Path::new(&target_dir).join("doc");
+ // extract mermaid module iff rustdoc folder exists already
+ if docs_dir.exists() {
+ let static_files_mermaid_dir = docs_dir.join(MERMAID_JS_LOCAL_DIR);
+ if static_files_mermaid_dir.exists() {
+ Ok(())
+ } else {
+ fs::create_dir_all(&static_files_mermaid_dir).unwrap();
+ MERMAID_JS_DIR.extract(static_files_mermaid_dir)?;
+ Ok(())
+ }
+ } else {
+ // no rustdocs rendering
+ Ok(())
+ }
+}
+
+const MERMAID_INIT_SCRIPT: &str = r#"
+ const mermaidModuleFile = "{mermaidModuleFile}";
+ const fallbackRemoteUrl = "{fallbackRemoteUrl}";
+ const rustdocVarsId= "rustdoc-vars";
+ const dataRootPathAttr = "data-root-path";
+
+
+ function initializeMermaid(mermaid) {
+ var amrn_mermaid_theme =
+ window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
+ ? 'dark'
+ : 'default';
+
+ mermaid.initialize({
+ 'startOnLoad':'true',
+ 'theme': amrn_mermaid_theme,
+ 'logLevel': 3 });
+ mermaid.run();
+ }
+
+ function failedToLoadWarnings() {
+ for(var elem of document.getElementsByClassName("mermaid")) {
+ elem.innerHTML =
+ `
+ ⚠ Cannot render diagram! Failed to import module from local
+ file and remote location also!
+ Either access the rustdocs via HTTP/S using a
+
+ local web server
+ , for example:
+ python3 -m http.server --directory target/doc/,
or enable local file access in your
+ Safari/Firefox/Chrome browser, for example
+ starting Chrome with flag '--allow-file-access-from-files'.
+ `;
+ }
+ }
+
+
+ // If rustdoc is read from file directly, the import of mermaid module
+ // from file will fail. In this case falling back to remote location.
+ // If neither succeeds, the mermaid markdown is replaced by notice to
+ // enable file acecss in browser.
+ try {
+ var rootPath = document
+ .getElementById(rustdocVarsId)
+ .attributes[dataRootPathAttr]
+ .value;
+ const {
+ default: mermaid,
+ } = await import(rootPath + mermaidModuleFile);
+ initializeMermaid(mermaid);
+ } catch (e) {
+ try {
+ const {
+ default: mermaid,
+ } = await import(fallbackRemoteUrl);
+ initializeMermaid(mermaid);
+ } catch (e) {
+ failedToLoadWarnings();
+ }
+ }
+"#;
+
+pub enum EvalError {
+ CreateDir(io::Error),
+ WriteProject(io::Error),
+ RunCargo(io::Error),
+ ReadDir(io::Error),
+}
+
+fn find_diagrams(path: &Path) -> Result, EvalError> {
+ let mut diagrams = Vec::new();
+
+ for entry in fs::read_dir(path).map_err(EvalError::ReadDir)? {
+ let Ok(entry) = entry else {
+ continue;
+ };
+ if let Some(true) = entry
+ .path()
+ .extension()
+ .map(|i| i.to_string_lossy() == "mmd")
+ {
+ diagrams.push(read_to_string(entry.path()).map_err(EvalError::ReadDir)?)
+ }
+ }
+
+ Ok(diagrams)
+}
+
+fn run_code(code: &str) -> Result, EvalError> {
+ let manifest_dir = PathBuf::from(
+ std::env::var("CARGO_MANIFEST_DIR").expect("$CARGO_MANIFEST_DIR is set during compilation"),
+ );
+ let target_dir = std::env::var("CARGO_TARGET_DIR").unwrap_or("./target".to_string());
+
+ // this if is so it works on docs.rs,
+ // which sets a custom target and compiles in a folder called "workdir"
+ let (sg_dir, target_dir, offline) = if manifest_dir.join("..").join("workdir").exists() {
+ (
+ manifest_dir
+ .join("..")
+ .join("workdir")
+ .to_string_lossy()
+ .to_string(),
+ "/opt/rustwide/target".to_string(),
+ true,
+ )
+ } else {
+ (
+ manifest_dir
+ .join("..")
+ .join("scopegraphs")
+ .to_string_lossy()
+ .to_string(),
+ target_dir,
+ true,
+ )
+ };
+
+ fn copy_dir_all(src: impl AsRef, dst: impl AsRef) -> io::Result<()> {
+ fs::create_dir_all(&dst)?;
+ for entry in fs::read_dir(src)? {
+ let entry = entry?;
+ let ty = entry.file_type()?;
+ if ty.is_dir() {
+ copy_dir_all(entry.path(), dst.as_ref().join(entry.file_name()))?;
+ } else {
+ fs::copy(entry.path(), dst.as_ref().join(entry.file_name()))?;
+ }
+ }
+ Ok(())
+ }
+
+ let code_hash = Uuid::new_v4().to_string();
+ let out_dir = &temp_dir().join("render-docs").join(&code_hash);
+ println!("testing in {out_dir:?}");
+
+ let sg_target_dir = temp_dir().join(format!("SG_TARGET-{}", code_hash));
+ if sg_target_dir.exists() {
+ let _ = fs::remove_dir_all(&sg_target_dir);
+ }
+ let _ = copy_dir_all(target_dir, &sg_target_dir);
+ if sg_target_dir.join("debug").exists() {
+ let _ = fs::remove_file(sg_target_dir.join("debug").join(".cargo-lock"));
+ let _ = fs::remove_file(sg_target_dir.join("debug").join(".fingerprint"));
+ let _ = fs::remove_file(sg_target_dir.join("debug").join("tmp"));
+ let _ = fs::remove_file(sg_target_dir.join("debug").join("incremental"));
+ }
+ if sg_target_dir.join("release").exists() {
+ let _ = fs::remove_file(sg_target_dir.join("release").join(".cargo-lock"));
+ let _ = fs::remove_file(sg_target_dir.join("release").join(".fingerprint"));
+ let _ = fs::remove_file(sg_target_dir.join("release").join("tmp"));
+ let _ = fs::remove_file(sg_target_dir.join("release").join("incremental"));
+ }
+
+ let cargo = PathBuf::from(std::env::var("CARGO").expect("$CARGO is set during compilation"));
+
+ if out_dir.exists() {
+ let _ = fs::remove_dir_all(out_dir);
+ }
+
+ fs::create_dir_all(out_dir).map_err(EvalError::CreateDir)?;
+ fs::create_dir_all(out_dir.join("src")).map_err(EvalError::CreateDir)?;
+
+ write(
+ out_dir.join("Cargo.toml"),
+ format!(
+ "
+[package]
+name = \"render_docs_{code_hash}\"
+edition=\"2021\"
+
+[dev-dependencies]
+scopegraphs = {{path = \"{}\"}}
+ ",
+ sg_dir
+ ),
+ )
+ .map_err(EvalError::WriteProject)?;
+ write(
+ out_dir.join("src").join("lib.rs"),
+ format!(
+ "
+/// ```rust
+{}
+/// ```
+#[allow(unused)]
+fn documented() {{}}
+ ",
+ code.lines().map(|i| format!("/// {i}")).join("\n")
+ ),
+ )
+ .map_err(EvalError::WriteProject)?;
+
+ let mut command = Command::new(cargo);
+ let command = command
+ .current_dir(out_dir)
+ .env("CARGO_TARGET_DIR", &sg_target_dir)
+ .env_remove("CARGO_MAKEFLAGS")
+ .arg("test");
+
+ let output = if offline {
+ command.arg("--offline")
+ } else {
+ command
+ }
+ .arg("--doc")
+ .arg("documented")
+ .stdout(Stdio::inherit())
+ .stderr(Stdio::inherit())
+ .output()
+ .map_err(EvalError::RunCargo)?;
+
+ if !output.status.success() {
+ stdout().write_all(&output.stdout).unwrap();
+ stderr().write_all(&output.stderr).unwrap();
+ panic!("build docs didn't work")
+ }
+
+ let _ = fs::remove_dir_all(&sg_target_dir);
+
+ find_diagrams(out_dir)
+}
+
+fn generate_diagram_rustdoc(parts: &[&str]) -> Result {
+ let code = parts.join("\n");
+ let diagrams = run_code(&code)?;
+
+ let preamble = r#""#;
+ let postamble = "
";
+
+ let mermaid_js_init = format!(
+ r#""#,
+ MERMAID_INIT_SCRIPT
+ .replace("{mermaidModuleFile}", MERMAID_JS_LOCAL)
+ .replace("{fallbackRemoteUrl}", MERMAID_JS_CDN)
+ );
+
+ let bodies: Vec<_> = diagrams
+ .into_iter()
+ .map(|diagram| format!("{preamble}\n{diagram}\n{postamble}"))
+ .collect();
+
+ place_mermaid_js().unwrap_or_else(|e| {
+ eprintln!("failed to place mermaid.js on the filesystem: {}", e);
+ });
+
+ Ok(quote! {
+ #[doc = #mermaid_js_init]
+ #(
+ #[doc = #bodies]
+ )*
+ })
+}
+
+impl Attrs {
+ pub fn push_attrs(&mut self, attrs: Vec) {
+ use syn::Expr;
+ use syn::ExprLit;
+ use syn::Lit::*;
+
+ let mut current_location = Location::OutsideDiagram;
+ let mut diagram_start_ident = None;
+
+ for attr in attrs {
+ match attr.meta.require_name_value() {
+ Ok(MetaNameValue {
+ value: Expr::Lit(ExprLit { lit: Str(s), .. }),
+ path,
+ ..
+ }) if path.is_ident("doc") => {
+ let ident = path.get_ident().unwrap();
+ for attr in split_attr_body(ident, &s.value(), &mut current_location) {
+ if attr.is_diagram_start() {
+ diagram_start_ident.replace(ident.clone());
+ }
+ self.0.push(attr);
+ }
+ }
+ _ => {
+ if let Location::InsideDiagram = current_location {
+ abort!(attr, UNEXPECTED_ATTR_ERROR)
+ } else {
+ self.0.push(Attr::Forward(attr))
+ }
+ }
+ }
+ }
+
+ if current_location.is_inside() {
+ abort!(diagram_start_ident, "diagram code block is not terminated");
+ }
+ }
+}
+
+#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+enum Location {
+ OutsideDiagram,
+ InsideDiagram,
+}
+
+impl Location {
+ fn is_inside(self) -> bool {
+ matches!(self, Location::InsideDiagram)
+ }
+}
+
+const TICKS: &str = "```";
+
+fn split_attr_body(ident: &Ident, input: &str, loc: &mut Location) -> Vec {
+ use self::Location::*;
+
+ const RUST: &str = "rust";
+
+ let mut tokens = tokenize_doc_str(input).peekable();
+
+ // Special case: empty strings outside the diagram span should be still generated
+ if tokens.peek().is_none() && !loc.is_inside() {
+ return vec![Attr::DocComment(ident.clone(), String::new())];
+ };
+
+ // To aid rustc with type inference in closures
+ #[derive(Default)]
+ struct Ctx<'a> {
+ attrs: Vec,
+ buffer: Vec<&'a str>,
+ }
+
+ let mut ctx: Ctx<'_> = Default::default();
+
+ let flush_buffer_as_doc_comment = |ctx: &mut Ctx| {
+ if !ctx.buffer.is_empty() {
+ ctx.attrs.push(Attr::DocComment(
+ ident.clone(),
+ ctx.buffer.drain(..).join(" "),
+ ));
+ }
+ };
+
+ let flush_buffer_as_diagram_entry = |ctx: &mut Ctx| {
+ let s = ctx.buffer.drain(..).join(" ");
+ if !s.trim().is_empty() {
+ ctx.attrs.push(Attr::DiagramEntry(ident.clone(), s));
+ }
+ };
+
+ while let Some(token) = tokens.next() {
+ match (*loc, token, tokens.peek()) {
+ // Detect include anchor
+ (OutsideDiagram, token, _) if token.starts_with("include_mmd!") => {
+ // cleanup
+ let path = token.trim_start_matches("include_mmd!").trim();
+ let path = path.trim_start_matches('(').trim_end_matches(')');
+ let path = path.trim_matches('"');
+ let path = PathBuf::from(path);
+ ctx.attrs
+ .push(Attr::DiagramIncludeAnchor(ident.clone(), path));
+ }
+ // Flush the buffer, then open the diagram code block
+ (OutsideDiagram, TICKS, Some(&RUST)) => {
+ tokens.next();
+ *loc = InsideDiagram;
+ flush_buffer_as_doc_comment(&mut ctx);
+ ctx.attrs.push(Attr::DiagramStart(ident.clone()));
+ }
+ // Flush the buffer, close the code block
+ (InsideDiagram, TICKS, _) => {
+ *loc = OutsideDiagram;
+ flush_buffer_as_diagram_entry(&mut ctx);
+ ctx.attrs.push(Attr::DiagramEnd(ident.clone()))
+ }
+ _ => ctx.buffer.push(token),
+ }
+ }
+
+ if !ctx.buffer.is_empty() {
+ if loc.is_inside() {
+ flush_buffer_as_diagram_entry(&mut ctx);
+ } else {
+ flush_buffer_as_doc_comment(&mut ctx);
+ };
+ }
+
+ ctx.attrs
+}
+
+fn tokenize_doc_str(input: &str) -> impl Iterator- {
+ split_inclusive(input, TICKS).flat_map(|token| {
+ // not str::split_whitespace because we don't wanna filter-out the whitespace tokens
+ token.split(' ')
+ })
+}
+
+// TODO: remove once str::split_inclusive is stable
+fn split_inclusive<'a, 'b: 'a>(input: &'a str, delim: &'b str) -> impl Iterator
- {
+ let mut tokens = vec![];
+ let mut prev = 0;
+
+ for (idx, matches) in input.match_indices(delim) {
+ tokens.extend(nonempty(&input[prev..idx]));
+
+ prev = idx + matches.len();
+
+ tokens.push(matches);
+ }
+
+ if prev < input.len() {
+ tokens.push(&input[prev..]);
+ }
+
+ tokens.into_iter()
+}
+
+fn nonempty(s: &str) -> Option<&str> {
+ if s.is_empty() {
+ None
+ } else {
+ Some(s)
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::{split_inclusive, Attr};
+ use std::fmt;
+
+ #[cfg(test)]
+ impl fmt::Debug for Attr {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ match self {
+ Attr::Forward(..) => f.write_str("Attr::Forward"),
+ Attr::DocComment(_, body) => write!(f, "Attr::DocComment({:?})", body),
+ Attr::DiagramStart(..) => f.write_str("Attr::DiagramStart"),
+ Attr::DiagramEntry(_, body) => write!(f, "Attr::DiagramEntry({:?})", body),
+ Attr::DiagramEnd(..) => f.write_str("Attr::DiagramEnd"),
+ Attr::DiagramIncludeAnchor(_, path) => {
+ write!(f, "Attr::DiagramIncludeAnchor({:?})", path)
+ }
+ }
+ }
+ }
+
+ #[cfg(test)]
+ impl Eq for Attr {}
+
+ #[cfg(test)]
+ impl PartialEq for Attr {
+ fn eq(&self, other: &Self) -> bool {
+ use std::mem::discriminant;
+ use Attr::*;
+ match (self, other) {
+ (DocComment(_, a), DocComment(_, b)) => a == b,
+ (DiagramEntry(_, a), DiagramEntry(_, b)) => a == b,
+ (a, b) => discriminant(a) == discriminant(b),
+ }
+ }
+ }
+
+ #[test]
+ fn temp_split_inclusive() {
+ let src = "```";
+ let out: Vec<_> = split_inclusive(src, "```").collect();
+ assert_eq!(&out, &["```",]);
+
+ let src = "```abcd```";
+ let out: Vec<_> = split_inclusive(src, "```").collect();
+ assert_eq!(&out, &["```", "abcd", "```"]);
+
+ let src = "left```abcd```right";
+ let out: Vec<_> = split_inclusive(src, "```").collect();
+ assert_eq!(&out, &["left", "```", "abcd", "```", "right",]);
+ }
+
+ mod split_attr_body_tests {
+ use super::super::*;
+
+ use proc_macro2::Ident;
+ use proc_macro2::Span;
+
+ use pretty_assertions::assert_eq;
+
+ fn i() -> Ident {
+ Ident::new("fake", Span::call_site())
+ }
+
+ struct TestCase<'a> {
+ ident: Ident,
+ location: Location,
+ input: &'a str,
+ expect_location: Location,
+ expect_attrs: Vec,
+ }
+
+ fn check(case: TestCase) {
+ let mut loc = case.location;
+ let attrs = split_attr_body(&case.ident, case.input, &mut loc);
+ assert_eq!(loc, case.expect_location);
+ assert_eq!(attrs, case.expect_attrs);
+ }
+
+ #[test]
+ fn one_line_one_diagram() {
+ let case = TestCase {
+ ident: i(),
+ location: Location::OutsideDiagram,
+ input: "```rust abcd```",
+ expect_location: Location::OutsideDiagram,
+ expect_attrs: vec![
+ Attr::DiagramStart(i()),
+ Attr::DiagramEntry(i(), "abcd".into()),
+ Attr::DiagramEnd(i()),
+ ],
+ };
+
+ check(case)
+ }
+
+ #[test]
+ fn one_line_multiple_diagrams() {
+ let case = TestCase {
+ ident: i(),
+ location: Location::OutsideDiagram,
+ input: "```rust abcd``` ```rust efgh``` ```rust ijkl```",
+ expect_location: Location::OutsideDiagram,
+ expect_attrs: vec![
+ Attr::DiagramStart(i()),
+ Attr::DiagramEntry(i(), "abcd".into()),
+ Attr::DiagramEnd(i()),
+ Attr::DocComment(i(), " ".into()),
+ Attr::DiagramStart(i()),
+ Attr::DiagramEntry(i(), "efgh".into()),
+ Attr::DiagramEnd(i()),
+ Attr::DocComment(i(), " ".into()),
+ Attr::DiagramStart(i()),
+ Attr::DiagramEntry(i(), "ijkl".into()),
+ Attr::DiagramEnd(i()),
+ ],
+ };
+
+ check(case)
+ }
+
+ #[test]
+ fn other_snippet() {
+ let case = TestCase {
+ ident: i(),
+ location: Location::OutsideDiagram,
+ input: "```python print()```",
+ expect_location: Location::OutsideDiagram,
+ expect_attrs: vec![Attr::DocComment(i(), "``` python print() ```".into())],
+ };
+
+ check(case)
+ }
+
+ #[test]
+ fn carry_over() {
+ let case = TestCase {
+ ident: i(),
+ location: Location::OutsideDiagram,
+ input: "left```rust abcd```right",
+ expect_location: Location::OutsideDiagram,
+ expect_attrs: vec![
+ Attr::DocComment(i(), "left".into()),
+ Attr::DiagramStart(i()),
+ Attr::DiagramEntry(i(), "abcd".into()),
+ Attr::DiagramEnd(i()),
+ Attr::DocComment(i(), "right".into()),
+ ],
+ };
+
+ check(case)
+ }
+
+ #[test]
+ fn multiline_termination() {
+ let case = TestCase {
+ ident: i(),
+ location: Location::InsideDiagram,
+ input: "abcd```",
+ expect_location: Location::OutsideDiagram,
+ expect_attrs: vec![
+ Attr::DiagramEntry(i(), "abcd".into()),
+ Attr::DiagramEnd(i()),
+ ],
+ };
+
+ check(case)
+ }
+
+ #[test]
+ fn multiline_termination_single_token() {
+ let case = TestCase {
+ ident: i(),
+ location: Location::InsideDiagram,
+ input: "```",
+ expect_location: Location::OutsideDiagram,
+ expect_attrs: vec![Attr::DiagramEnd(i())],
+ };
+
+ check(case)
+ }
+
+ #[test]
+ fn multiline_termination_carry() {
+ let case = TestCase {
+ ident: i(),
+ location: Location::InsideDiagram,
+ input: "abcd```right",
+ expect_location: Location::OutsideDiagram,
+ expect_attrs: vec![
+ Attr::DiagramEntry(i(), "abcd".into()),
+ Attr::DiagramEnd(i()),
+ Attr::DocComment(i(), "right".into()),
+ ],
+ };
+
+ check(case)
+ }
+ }
+}
diff --git a/scopegraphs-render-docs/src/lib.rs b/scopegraphs-render-docs/src/lib.rs
new file mode 100644
index 0000000..7153128
--- /dev/null
+++ b/scopegraphs-render-docs/src/lib.rs
@@ -0,0 +1,192 @@
+//! Render_scopegraph is a procedural macro extension for [rustdoc](https://doc.rust-lang.org/rustdoc/what-is-rustdoc.html),
+//! that aims to improve the visual component of Rust documentation through use of the [mermaid.js](https://mermaid-js.github.io/mermaid/#/) diagrams.
+//!
+//! > NOTE: This is a custom, heavily modified version of the [Aquamarine](https://github.com/mersinvald/aquamarine) library, distributed under the MIT license.
+//!
+//! `#[render_scopegraphs]` macro works through embedding the [mermaid.js](https://github.com/mermaid-js/mermaid) into the generated rustdoc HTML page, modifying the doc comment attributes.
+//!
+//! To inline a diagram into the documentation, use the `mermaid` snippet in a doc-string:
+//!
+//! ```rust
+//! # use scopegraphs_render_docs::render_scopegraphs;
+//! #[cfg_attr(doc, render_scopegraph)]
+//! /// ```rust
+//! /// todo!()
+//! ///
+//! /// ```
+//! pub fn example() {}
+//! ```
+//! The diagram will appear in place of the `mermaid` code block, preserving all the comments around it.
+//!
+//! You can even add multiple diagrams!
+//!
+//! To see it in action, go to the [demo crate](https://docs.rs/aquamarine-demo-crate/0.5.0/aquamarine_demo_crate/fn.example.html) docs.rs page.
+//!
+//! ### Dark-mode
+//!
+//! Aquamarine will automatically select the `dark` theme as a default, if the current `rustdoc` theme is either `ayu` or `dark`.
+//!
+//! You might need to reload the page to redraw the diagrams after changing the theme.
+//!
+//! ### Custom themes
+//!
+//! Theming is supported on per-diagram basis, through the mermaid's `%%init%%` attribute.
+//!
+//! *Note*: custom theme will override the default theme
+//!
+//! ```no_run
+//! /// ```mermaid
+//! /// %%{init: {
+//! /// 'theme': 'base',
+//! /// 'themeVariables': {
+//! /// 'primaryColor': '#ffcccc',
+//! /// 'edgeLabelBackground':'#ccccff',
+//! /// 'tertiaryColor': '#fff0f0' }}}%%
+//! /// graph TD
+//! /// A(Diagram needs to be drawn) --> B{Does it have 'init' annotation?}
+//! /// B -->|No| C(Apply default theme)
+//! /// B -->|Yes| D(Apply customized theme)
+//! /// ```
+//! # fn example() {}
+//! ```
+//! [Demo on docs.rs](https://docs.rs/aquamarine-demo-crate/0.5.0/aquamarine_demo_crate/fn.example_with_styling.html)
+//!
+//! To learn more, see the [Theming Section](https://mermaid-js.github.io/mermaid/#/theming) of the mermaid.js book
+//!
+//! ### Loading from a file
+//!
+//! When describing complex logic, a diagram can get quite big.
+//!
+//! To reduce clutter in your doc comments, you can load a diagram from file using the `include_mmd!` macro-like syntax.
+//!
+//! ```no_run
+//! /// Diagram #1
+//! /// include_mmd!("diagram_1.mmd")
+//! ///
+//! /// Diagram #2
+//! /// include_mmd!("diagram_2.mmd")
+//! # fn example() {}
+//! ```
+//! [Demo on docs.rs](https://docs.rs/aquamarine-demo-crate/0.5.0/aquamarine_demo_crate/fn.example_load_from_file.html)
+
+extern crate proc_macro;
+
+use proc_macro::TokenStream;
+use proc_macro_error::{abort, proc_macro_error};
+
+use quote::quote;
+use syn::{parse_macro_input, Attribute};
+
+mod attrs;
+mod parse;
+
+/// Aquamarine is a proc-macro that adds [Mermaid](https://mermaid-js.github.io/mermaid/#/) diagrams to rustdoc
+///
+/// To inline a diagram into the documentation, use the `mermaid` snippet:
+///
+/// ```rust
+/// # use scopegraphs_render_docs::render_scopegraphs;
+/// #[render_scopegraphs]
+/// /// ```rust
+/// /// # use scopegraphs::*;
+/// /// # use completeness::{UncheckedCompleteness};
+/// /// # use resolve::{DataWellformedness, Resolve, ResolvedPath};
+/// /// # use render::{RenderSettings, RenderScopeData, RenderScopeLabel};
+/// /// #
+/// /// # #[derive(Label, Hash, PartialEq, Eq, Debug, Clone, Copy)]
+/// /// # enum Lbl {
+/// /// # Lex,
+/// /// # Imp,
+/// /// # Def,
+/// /// # }
+/// /// # use Lbl::*;
+/// /// #
+/// /// # #[derive(Hash, PartialEq, Eq, Debug, Default, Clone)]
+/// /// # enum TData<'a> {
+/// /// # #[default]
+/// /// # NoData,
+/// /// # Data {
+/// /// # name: &'a str,
+/// /// # data: usize,
+/// /// # },
+/// /// # }
+/// /// #
+/// /// # use TData::*;
+/// /// #
+/// /// # impl RenderScopeData for TData<'_> {
+/// /// # fn render_node(&self) -> Option {
+/// /// # match self {
+/// /// # NoData => None,
+/// /// # Data {name, data} => Some(format!("{name}: {data}")),
+/// /// # }
+/// /// # }
+/// /// # }
+/// /// #
+/// /// # impl RenderScopeLabel for Lbl {
+/// /// # fn render(&self) -> String {
+/// /// # match self {
+/// /// # Lex => "lex",
+/// /// # Imp => "imp",
+/// /// # Def => "def",
+/// /// # }.to_string()
+/// /// # }
+/// /// # }
+/// /// #
+/// /// # impl<'a> TData<'a> {
+/// /// # fn matches(&self, n: &str) -> bool {
+/// /// # match self {
+/// /// # NoData => false,
+/// /// # Data { name, .. } => *name == n,
+/// /// # }
+/// /// # }
+/// /// #
+/// /// # fn matcher(n: &'a str) -> impl DataWellformedness {
+/// /// # |data: &Self| data.matches(n)
+/// /// # }
+/// /// #
+/// /// # fn from_default(name: &'a str) -> Self {
+/// /// # Data { name, data: 0 }
+/// /// # }
+/// /// # }
+/// /// # let storage = Storage::new();
+/// /// # let sg: ScopeGraph =
+/// /// # unsafe { ScopeGraph::raw(&storage) };
+/// ///
+/// /// let s0 = sg.add_scope_default();
+/// /// let s1 = sg.add_scope_default();
+/// /// sg.add_edge(s0, Lex, s1);
+/// /// sg.add_decl(s0, Def, Data { name: "x", data: 0 });
+/// /// sg.add_decl(s1, Def, Data { name: "x", data: 1 });
+/// ///
+/// /// sg.render_to("output.dot", RenderSettings::default()).unwrap();
+/// /// ```
+/// struct Foo;
+/// ```
+#[proc_macro_attribute]
+#[proc_macro_error]
+pub fn render_scopegraphs(_args: TokenStream, input: TokenStream) -> TokenStream {
+ let input = parse_macro_input!(input as parse::Input);
+
+ check_input_attrs(&input.attrs);
+
+ let attrs = attrs::Attrs::from(input.attrs);
+ let forward = input.rest;
+
+ let tokens = quote! {
+ #attrs
+ #forward
+ };
+
+ tokens.into()
+}
+
+fn check_input_attrs(input: &[Attribute]) {
+ for attr in input {
+ if attr.path().is_ident("render_scopegraph") {
+ abort!(
+ attr,
+ "multiple `render_scopegraph` attributes on one entity are illegal"
+ );
+ }
+ }
+}
diff --git a/scopegraphs-render-docs/src/parse.rs b/scopegraphs-render-docs/src/parse.rs
new file mode 100644
index 0000000..3404074
--- /dev/null
+++ b/scopegraphs-render-docs/src/parse.rs
@@ -0,0 +1,18 @@
+use proc_macro2::TokenStream;
+use syn::{
+ parse::{Parse, ParseStream},
+ Attribute,
+};
+
+pub struct Input {
+ pub attrs: Vec,
+ pub rest: TokenStream,
+}
+
+impl Parse for Input {
+ fn parse(input: ParseStream) -> syn::Result {
+ let attrs = input.call(Attribute::parse_outer)?;
+ let rest = input.parse()?;
+ Ok(Input { attrs, rest })
+ }
+}
diff --git a/scopegraphs/Cargo.toml b/scopegraphs/Cargo.toml
index 96ea91f..d56fda7 100644
--- a/scopegraphs/Cargo.toml
+++ b/scopegraphs/Cargo.toml
@@ -1,11 +1,11 @@
[package]
name = "scopegraphs"
-version = "0.2.7"
+version = "0.2.18"
edition = "2021"
license = "MIT OR Apache-2.0"
authors = [
"Aron Zwaan ",
- "Jonathan Dönszelmann "
+ "Jonathan Dönszelmann ",
]
description = "A port of scopegraphs https://pl.ewi.tudelft.nl/research/projects/scope-graphs/ to Rust"
repository = "https://github.com/metaborg/rust-scopegraphs/"
@@ -20,13 +20,17 @@ bumpalo = "3.14.0"
scopegraphs-prust-lib = { version = "0.1.0" }
log = "0.4.20"
-scopegraphs-macros = { path = "../scopegraphs-macros", version = "0.2.0" }
-scopegraphs-regular-expressions = { path = "../scopegraphs-regular-expressions", version = "0.2.0" }
+scopegraphs-macros = { path = "../scopegraphs-macros", version = "0.2" }
+scopegraphs-regular-expressions = { path = "../scopegraphs-regular-expressions", version = "0.2" }
+scopegraphs-render-docs = { path = "../scopegraphs-render-docs", version = "0.2", optional = true }
[dev-dependencies]
env_logger = "0.10.1"
ctor = "0.2.5"
-futures = { version = "0.3.30", default-features = false, features = ["alloc", "executor"] }
+futures = { version = "0.3.30", default-features = false, features = [
+ "alloc",
+ "executor",
+] }
smol = "2.0.0"
async-recursion = "1.1.1"
winnow = "0.6.8"
@@ -35,7 +39,7 @@ winnow = "0.6.8"
default = ["dot", "dynamic-regex"]
dot = ["scopegraphs-regular-expressions/dot", "scopegraphs-macros/dot"]
dynamic-regex = ["scopegraphs-regular-expressions/dynamic"]
-documentation = []
+documentation = ["dep:scopegraphs-render-docs"]
[package.metadata.playground]
features = ["documentation"]
diff --git a/scopegraphs/src/concepts/edges.rs b/scopegraphs/src/concepts/edges.rs
deleted file mode 100644
index ca4495f..0000000
--- a/scopegraphs/src/concepts/edges.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-//! In a scope graph, scopes are connected by scope edges.
-//!
-//!
diff --git a/scopegraphs/src/concepts/label_ordering.rs b/scopegraphs/src/concepts/label_ordering.rs
deleted file mode 100644
index 9d0f028..0000000
--- a/scopegraphs/src/concepts/label_ordering.rs
+++ /dev/null
@@ -1 +0,0 @@
-//!
diff --git a/scopegraphs/src/concepts/mod.rs b/scopegraphs/src/concepts/mod.rs
index 42d48b0..6b03b53 100644
--- a/scopegraphs/src/concepts/mod.rs
+++ b/scopegraphs/src/concepts/mod.rs
@@ -22,12 +22,388 @@
//!
#![cfg_attr(rustfmt, rustfmt_skip)]
-pub mod scope;
-pub mod scope_data;
-pub mod edges;
+use scopegraphs_render_docs::render_scopegraphs;
+
+
+#[render_scopegraphs]
+/// A scope, is a place in which names can live.
+/// Names, of variables, or of functions, or of types, or of modules.
+/// Anything really.
+///
+/// In a programming language, like Rust, a scope might be represented as a set of braces:
+/// ```rust
+/// {
+/// let a = 3;
+/// let b = 4;
+/// }
+/// ```
+/// The scope contains two names: `a` and `b`.
+///
+/// In scope graphs, every scope has some kind of associated [scope data](crate::concepts::scope_data),
+/// and any number of [connections](crate::concepts::edges) to other scopes (0 connections is also fine).
+///
+/// In this library, a scope is represented using the [`Scope`](crate::Scope) type.
+///
+/// In the next section, we'll talk about how to create a scope. We'll already use the names `Data` and `Lbl`,
+/// which you can read more about in the linked sections.
+///
+/// # Creating a Scope
+///
+/// To make a scope, you first need a scope graph object, and to build a scope graph, you first need a scope graph storage object:
+///
+/// ```rust
+/// # use scopegraphs::*;
+/// # use completeness::{ImplicitClose};
+/// # use resolve::{DataWellformedness, Resolve, ResolvedPath};
+/// # use render::{RenderSettings, RenderScopeData, RenderScopeLabel};
+/// #
+/// # #[derive(Label, Hash, PartialEq, Eq, Debug, Clone, Copy)]
+/// # enum Lbl {}
+/// # #[derive(Hash, PartialEq, Eq, Debug, Clone)]
+/// # enum Data {}
+/// # impl RenderScopeData for Data {}
+/// #
+/// # impl RenderScopeLabel for Lbl {
+/// # fn render(&self) -> String {
+/// # match self {
+/// # _ => todo!(),
+/// # }
+/// # }
+/// # }
+/// #
+/// let storage = Storage::new();
+///
+/// let sg: ScopeGraph> = ScopeGraph::new(&storage, ImplicitClose::default());
+/// ```
+///
+/// That's a lot of type parameters! And you'll need to type it quite a few times when using scope graphs in your project.
+/// I recommend that one of the first thing you do once you start using scope graphs is to make a type alias:
+///
+/// ```
+/// # use scopegraphs::*;
+/// # use completeness::{ImplicitClose};
+/// # use resolve::{DataWellformedness, Resolve, ResolvedPath};
+/// # use render::{RenderSettings, RenderScopeData, RenderScopeLabel};
+/// #
+/// # #[derive(Label, Hash, PartialEq, Eq, Debug, Clone, Copy)]
+/// # enum Lbl {}
+/// # #[derive(Hash, PartialEq, Eq, Debug, Clone)]
+/// # enum Data {}
+/// # impl RenderScopeData for Data {}
+/// #
+/// # impl RenderScopeLabel for Lbl {
+/// # fn render(&self) -> String {
+/// # match self {
+/// # _ => todo!(),
+/// # }
+/// # }
+/// # }
+/// #
+/// type MyScopeGraph<'s> = ScopeGraph<'s, Lbl, Data, ImplicitClose>;
+///
+/// let storage = Storage::new();
+/// let sg = MyScopeGraph::new(&storage, ImplicitClose::default());
+/// ```
+/// In these examples, I'm referring to something called [`ImplicitClose`](crate::completeness::ImplicitClose),
+/// which is an example of a [completeness strategy](crate::concepts::completeness).
+/// For now, you can just ignore that. We haven't gotten to that part yet.
+///
+/// Now, we can finally create a scope by using [`add_scope_default`](crate::ScopeGraph::add_scope_default).
+/// ```rust
+/// # use scopegraphs::*;
+/// # use completeness::{UncheckedCompleteness};
+/// # use resolve::{DataWellformedness, Resolve, ResolvedPath};
+/// # use render::{RenderSettings, RenderScopeData, RenderScopeLabel};
+/// #
+/// # #[derive(Label, Hash, PartialEq, Eq, Debug, Clone, Copy)]
+/// # enum Lbl {
+/// # Lex,
+/// # Imp,
+/// # Def,
+/// # }
+/// # use Lbl::*;
+/// #
+/// # #[derive(Hash, PartialEq, Eq, Debug, Default, Clone)]
+/// # enum TData<'a> {
+/// # #[default]
+/// # NoData,
+/// # Data {
+/// # name: &'a str,
+/// # data: usize,
+/// # },
+/// # }
+/// #
+/// # use TData::*;
+/// #
+/// # impl RenderScopeData for TData<'_> {
+/// # fn render_node(&self) -> Option {
+/// # match self {
+/// # NoData => None,
+/// # Data {name, data} => Some(format!("{name}: {data}")),
+/// # }
+/// # }
+/// # }
+/// #
+/// # impl RenderScopeLabel for Lbl {
+/// # fn render(&self) -> String {
+/// # match self {
+/// # Lex => "lex",
+/// # Imp => "imp",
+/// # Def => "def",
+/// # }.to_string()
+/// # }
+/// # }
+/// #
+/// # impl<'a> TData<'a> {
+/// # fn matches(&self, n: &str) -> bool {
+/// # match self {
+/// # NoData => false,
+/// # Data { name, .. } => *name == n,
+/// # }
+/// # }
+/// #
+/// # fn matcher(n: &'a str) -> impl DataWellformedness {
+/// # |data: &Self| data.matches(n)
+/// # }
+/// #
+/// # fn from_default(name: &'a str) -> Self {
+/// # Data { name, data: 0 }
+/// # }
+/// # }
+/// # let storage = Storage::new();
+/// # let sg: ScopeGraph =
+/// # unsafe { ScopeGraph::raw(&storage) };
+///
+/// // make a new scope, and call it s0
+/// let s0 = sg.add_scope_default();
+/// ```
+///
+/// # Visualizing a Scope Graph
+///
+/// Once we're making a lot of scope graphs in this tutorial,
+/// or when you're using this library to build something,
+/// it's useful to visualize the graph.
+/// The following example shows how to do that:
+///
+/// ```rust
+/// # use scopegraphs::*;
+/// # use completeness::{UncheckedCompleteness};
+/// # use resolve::{DataWellformedness, Resolve, ResolvedPath};
+/// # use render::{RenderSettings, RenderScopeData, RenderScopeLabel};
+/// #
+/// # #[derive(Label, Hash, PartialEq, Eq, Debug, Clone, Copy)]
+/// # enum Lbl {
+/// # Lex,
+/// # Imp,
+/// # Def,
+/// # }
+/// # use Lbl::*;
+/// #
+/// # #[derive(Hash, PartialEq, Eq, Debug, Default, Clone)]
+/// # enum TData<'a> {
+/// # #[default]
+/// # NoData,
+/// # Data {
+/// # name: &'a str,
+/// # data: usize,
+/// # },
+/// # }
+/// #
+/// # use TData::*;
+/// #
+/// # impl RenderScopeData for TData<'_> {
+/// # fn render_node(&self) -> Option {
+/// # match self {
+/// # NoData => None,
+/// # Data {name, data} => Some(format!("{name}: {data}")),
+/// # }
+/// # }
+/// # }
+/// #
+/// # impl RenderScopeLabel for Lbl {
+/// # fn render(&self) -> String {
+/// # match self {
+/// # Lex => "lex",
+/// # Imp => "imp",
+/// # Def => "def",
+/// # }.to_string()
+/// # }
+/// # }
+/// #
+/// # impl<'a> TData<'a> {
+/// # fn matches(&self, n: &str) -> bool {
+/// # match self {
+/// # NoData => false,
+/// # Data { name, .. } => *name == n,
+/// # }
+/// # }
+/// #
+/// # fn matcher(n: &'a str) -> impl DataWellformedness {
+/// # |data: &Self| data.matches(n)
+/// # }
+/// #
+/// # fn from_default(name: &'a str) -> Self {
+/// # Data { name, data: 0 }
+/// # }
+/// # }
+/// # let storage = Storage::new();
+/// # let sg: ScopeGraph =
+/// # unsafe { ScopeGraph::raw(&storage) };
+///
+/// // make a new scope, and call it s0
+/// let s0 = sg.add_scope_default();
+/// let s1 = sg.add_scope_default();
+///
+/// sg.render_to("output.mmd", RenderSettings::default()).unwrap()
+/// ```
+/// And as you can see, this renders two scopes (0 and 1), not connected by any [edges](crate::concepts::edges) yet.
+///
+/// Now that you know how to make a scope, I recommend you continue reading about [scope data](crate::concepts::scope_data)
+pub mod scope {}
+
+#[render_scopegraphs]
+/// A [scope](crate::concepts::scope) always has associated data.
+/// Scopes need data, because that's where the information is stored about what names are defined.
+/// Later on, when we start talking about [queries over scope graphs](crate::concepts::query):
+/// this data is what the query will be looking for.
+///
+/// This data is completely customizable, as the scope graph is generic over this.
+/// However, often scope data will look somewhat similar to the following:
+///
+/// ```rust
+/// # use scopegraphs::*;
+/// # use completeness::{UncheckedCompleteness};
+/// # use resolve::{DataWellformedness, Resolve, ResolvedPath};
+/// # use render::{RenderSettings, RenderScopeData, RenderScopeLabel};
+/// #[derive(Hash, PartialEq, Eq, Debug, Default, Clone)]
+/// enum Data<'a> {
+/// // some scopes don't have data
+/// #[default]
+/// NoData,
+///
+/// // in other scopes, a variable might be defined
+/// Variable {
+/// name: &'a str,
+/// },
+/// }
+/// ```
+///
+///
+/// Note: if you want some scopes to have *no* associated data, you're responsible for that.
+/// Either explicitly add a variant `NoData` as we did above, or possibly make the scope graph DATA type an `Option`.
+///
+///
+///
+/// Previously, in [scopes](crate::concepts::scope) we've seen how we can create a scope using [`add_scope_default`](crate::ScopeGraph::add_scope_default).
+/// However, that's slightly simplified. That creates a scope with **default data**.
+/// In the example data definition above, that would mean the associated data of the new scope is `NoData`.
+///
+/// For example, let's say we want to create a new scope in which a variable is defined.
+///
+/// ```rust
+/// # use scopegraphs::*;
+/// # use completeness::{UncheckedCompleteness};
+/// # use resolve::{DataWellformedness, Resolve, ResolvedPath};
+/// # use render::{RenderSettings, RenderScopeData, RenderScopeLabel};
+/// #
+/// # #[derive(Label, Hash, PartialEq, Eq, Debug, Clone, Copy)]
+/// # enum Lbl {
+/// # Lex,
+/// # Imp,
+/// # Def,
+/// # }
+/// # use Lbl::*;
+/// #
+/// # #[derive(Hash, PartialEq, Eq, Debug, Default, Clone)]
+/// # enum Data<'a> {
+/// # #[default]
+/// # NoData,
+/// # Variable {
+/// # name: &'a str,
+/// # },
+/// # }
+/// #
+/// # impl RenderScopeData for Data<'_> {
+/// # fn render_node(&self) -> Option {
+/// # Some(format!("{self:?}"))
+/// # }
+/// # }
+/// #
+/// # impl RenderScopeLabel for Lbl {
+/// # fn render(&self) -> String {
+/// # match self {
+/// # Lex => "lex",
+/// # Imp => "imp",
+/// # Def => "def",
+/// # }.to_string()
+/// # }
+/// # }
+/// #
+/// # let storage = Storage::new();
+/// # let sg: ScopeGraph =
+/// # unsafe { ScopeGraph::raw(&storage) };
+/// // make a new scope, with default data (`NoData`)
+/// let s0 = sg.add_scope_default();
+/// // the same as above
+/// let s1 = sg.add_scope(Data::NoData);
+/// // create a scope in which the variable `example` is defined
+/// let s2 = sg.add_scope(Data::Variable {name: "example"});
+///
+/// sg.render_to("output.mmd", RenderSettings::default()).unwrap()
+/// ```
+///
+///
+///
+/// Note: if you want to have multiple variable declarations in one scope, you likely do not want to simply make the Data a [`Vec`](std::vec::Vec).
+/// Instead, it's common to make declarations their own scope. We'll look at examples of this in the chapter on [edges](crate::concepts::edges)
+///
+///
+///
+/// # Visualizing Scope Data
+///
+/// Because scope data is custom, how it's rendered can also be customized.
+/// To do so, implement the [`RenderScopeData`](crate::render::RenderScopeData) trait for your scope's data.
+/// In the above examples, we've used this hidden implementation of RenderScopeData:
+///
+/// ```
+/// # use scopegraphs::*;
+/// # use completeness::{UncheckedCompleteness};
+/// # use resolve::{DataWellformedness, Resolve, ResolvedPath};
+/// # use render::{RenderSettings, RenderScopeData, RenderScopeLabel};
+/// # #[derive(Hash, PartialEq, Eq, Debug, Default, Clone)]
+/// # enum Data<'a> {
+/// # #[default]
+/// # NoData,
+/// # Variable {
+/// # name: &'a str,
+/// # },
+/// # }
+/// #
+/// impl RenderScopeData for Data<'_> {
+/// fn render_node(&self) -> Option {
+/// Some(format!("{self:?}"))
+/// }
+/// }
+/// ```
+pub mod scope_data {}
+
+#[render_scopegraphs]
+/// Edges connect [`Scopes`](crate::concepts::scope)
+pub mod edges {}
pub mod completeness;
pub mod data_wellformedness;
pub mod data_equivalence;
pub mod path_wellformedness;
-pub mod label_ordering;
+
+/// # Label Ordering
+///
+/// ```mermaid
+/// graph LR
+/// s([Source]) --> a[[aquamarine]]
+/// r[[rustdoc]] --> f([Docs w/ Mermaid!])
+/// subgraph rustc[Rust Compiler]
+/// a -. "inject mermaid.js" .-> r
+/// end
+/// ```
+pub mod label_ordering {}
diff --git a/scopegraphs/src/concepts/scope.rs b/scopegraphs/src/concepts/scope.rs
deleted file mode 100644
index 6fbb787..0000000
--- a/scopegraphs/src/concepts/scope.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-//! A scope is a node in a scope graph.
-//!
-//!
diff --git a/scopegraphs/src/render/mod.rs b/scopegraphs/src/render/mod.rs
index b21da67..e92d469 100644
--- a/scopegraphs/src/render/mod.rs
+++ b/scopegraphs/src/render/mod.rs
@@ -11,6 +11,16 @@ use std::path::Path;
mod traverse;
+/// The backend to generate a graph for
+#[derive(Default, Copy, Clone, Debug)]
+pub enum Target {
+ /// Generate graphviz dot code
+ Dot,
+ /// Generate a mermaid graph
+ #[default]
+ Mermaid,
+}
+
/// Global settings related to rendering scope graphs.
pub struct RenderSettings {
/// Whether to display label text next to edges
@@ -19,6 +29,8 @@ pub struct RenderSettings {
///
/// Defaults to the filename given to [`ScopeGraph::render_to`].
pub title: Option,
+ /// The output format to use for the visualization.
+ pub target: Target,
}
impl RenderSettings {
@@ -34,6 +46,7 @@ impl Default for RenderSettings {
Self {
show_edge_labels: true,
title: None,
+ target: Default::default(),
}
}
}
@@ -106,10 +119,14 @@ fn scope_to_node_name(s: Scope) -> String {
format!("scope_{}", s.0)
}
-fn escape_text(inp: &str) -> String {
+fn escape_text_dot(inp: &str) -> String {
inp.replace('"', "\\\"")
}
+fn escape_text_mermaid(inp: &str) -> String {
+ inp.replace('"', """)
+}
+
impl<
LABEL: Clone + RenderScopeLabel,
DATA: RenderScopeData + Clone,
@@ -120,6 +137,78 @@ impl<
///
/// Note: you can also visualize a [single regular expression this way](crate::Automaton::render)
pub fn render(&self, output: &mut W, settings: RenderSettings) -> io::Result<()> {
+ match settings.target {
+ Target::Dot => self.render_dot(output, settings),
+ Target::Mermaid => self.render_mermaid(output, settings),
+ }
+ }
+
+ fn render_mermaid(&self, output: &mut W, settings: RenderSettings) -> io::Result<()> {
+ let (mut edges, nodes) = traverse::traverse(self);
+
+ if let Some(ref i) = settings.title {
+ // title
+ writeln!(output, "---")?;
+ writeln!(output, r#"title: {}"#, escape_text_mermaid(i))?;
+ writeln!(output, "---")?;
+ }
+
+ writeln!(output, "flowchart LR")?;
+
+ // color scheme
+ // writeln!(
+ // output,
+ // r#"node [colorscheme="ylgnbu6",width="0.1",height="0.1",margin="0.01",xlp="b"]"#
+ // )?;
+
+ // straight edges
+ // writeln!(output, r#"splines=false;"#)?;
+
+ // nodes
+ for (scope, data) in nodes {
+ edges.extend(
+ data.extra_edges()
+ .into_iter()
+ .map(|to| Edge { from: scope, to }),
+ );
+ let name = scope_to_node_name(scope);
+
+ let mut attrs = Vec::new();
+
+ let label =
+ escape_text_mermaid(&data.render_node().unwrap_or_else(|| scope.0.to_string()));
+
+ if let Some(label) = data.render_node_label() {
+ attrs.push(format!(r#"[xlabel="{}"]"#, escape_text_mermaid(&label)))
+ }
+
+ attrs.push(r#"[penwidth="2.0"]"#.to_string());
+
+ // writeln!(output, r#"{name} {}"#, attrs.join(""))?
+ if data.definition() {
+ writeln!(output, r#" {name}["{label}"]"#)?;
+ } else {
+ writeln!(output, r#" {name}(("{label}"))"#)?;
+ }
+ }
+
+ // edges
+ for edge in edges {
+ let from = scope_to_node_name(edge.from);
+ let to = scope_to_node_name(edge.to.to);
+ let label = escape_text_mermaid(&edge.to.label_text);
+
+ if settings.show_edge_labels {
+ writeln!(output, r#"{from} ==>|"{label}"| {to}"#)?
+ } else {
+ writeln!(output, " {from} ==> {to}")?
+ }
+ }
+
+ Ok(())
+ }
+
+ fn render_dot(&self, output: &mut W, settings: RenderSettings) -> io::Result<()> {
let (mut edges, nodes) = traverse::traverse(self);
writeln!(output, "digraph {{")?;
@@ -133,7 +222,7 @@ impl<
if let Some(ref i) = settings.title {
// title
writeln!(output, r#"labelloc="t";"#)?;
- writeln!(output, r#"label="{}";"#, escape_text(i))?;
+ writeln!(output, r#"label="{}";"#, escape_text_dot(i))?;
}
// straight edges
@@ -155,11 +244,11 @@ impl<
} else {
attrs.push(r#"[shape="circle"]"#.to_string())
};
- let label = escape_text(&data.render_node().unwrap_or_else(|| scope.0.to_string()));
+ let label = escape_text_dot(&data.render_node().unwrap_or_else(|| scope.0.to_string()));
attrs.push(format!(r#"[label="{label}"]"#));
if let Some(label) = data.render_node_label() {
- attrs.push(format!(r#"[xlabel="{}"]"#, escape_text(&label)))
+ attrs.push(format!(r#"[xlabel="{}"]"#, escape_text_dot(&label)))
}
attrs.push(r#"[penwidth="2.0"]"#.to_string());